From 3eb54e5f63e6d9a4e8fb168c97eccf534bdad844 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Mon, 7 Mar 2005 16:19:38 +0000 Subject: 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. From-SVN: r96028 --- gcc/ChangeLog-1997 | 3969 +++++ gcc/ChangeLog-1998 | 17616 +++++++++++++++++++ gcc/ChangeLog-1999 | 21786 +++++++++++++++++++++++ gcc/ChangeLog-2000 | 32124 ++++++++++++++++++++++++++++++++++ gcc/ChangeLog-2001 | 33645 ++++++++++++++++++++++++++++++++++++ gcc/ChangeLog-2002 | 35988 ++++++++++++++++++++++++++++++++++++++ gcc/ChangeLog-2003 | 37862 ++++++++++++++++++++++++++++++++++++++++ gcc/ChangeLog-2004 | 47878 +++++++++++++++++++++++++++++++++++++++++++++++++++ gcc/ChangeLog.0 | 13011 -------------- gcc/ChangeLog.1 | 15903 ----------------- gcc/ChangeLog.10 | 16352 ------------------ gcc/ChangeLog.11 | 21016 ---------------------- gcc/ChangeLog.12 | 26890 ----------------------------- gcc/ChangeLog.2 | 14469 ---------------- gcc/ChangeLog.3 | 16860 ------------------ gcc/ChangeLog.4 | 15261 ---------------- gcc/ChangeLog.5 | 14446 ---------------- gcc/ChangeLog.6 | 19208 --------------------- gcc/ChangeLog.7 | 21543 ----------------------- gcc/ChangeLog.8 | 14448 ---------------- gcc/ChangeLog.9 | 21488 ----------------------- 21 files changed, 230868 insertions(+), 230895 deletions(-) create mode 100644 gcc/ChangeLog-1997 create mode 100644 gcc/ChangeLog-1998 create mode 100644 gcc/ChangeLog-1999 create mode 100644 gcc/ChangeLog-2000 create mode 100644 gcc/ChangeLog-2001 create mode 100644 gcc/ChangeLog-2002 create mode 100644 gcc/ChangeLog-2003 create mode 100644 gcc/ChangeLog-2004 delete mode 100644 gcc/ChangeLog.0 delete mode 100644 gcc/ChangeLog.1 delete mode 100644 gcc/ChangeLog.10 delete mode 100644 gcc/ChangeLog.11 delete mode 100644 gcc/ChangeLog.12 delete mode 100644 gcc/ChangeLog.2 delete mode 100644 gcc/ChangeLog.3 delete mode 100644 gcc/ChangeLog.4 delete mode 100644 gcc/ChangeLog.5 delete mode 100644 gcc/ChangeLog.6 delete mode 100644 gcc/ChangeLog.7 delete mode 100644 gcc/ChangeLog.8 delete mode 100644 gcc/ChangeLog.9 diff --git a/gcc/ChangeLog-1997 b/gcc/ChangeLog-1997 new file mode 100644 index 00000000000..ea16ac7e81d --- /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-1998 b/gcc/ChangeLog-1998 new file mode 100644 index 00000000000..bd2f722d1b0 --- /dev/null +++ b/gcc/ChangeLog-1998 @@ -0,0 +1,17616 @@ +Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) + + * m68k.md (adddi_dilshr32): Allow all operands to be registers too. + (adddi_dishl32): Similarly. + + * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers + for each insn in the skipped block. + + * 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. + + * i386.md (doubleword shifts): Avoid namespace pollution. + +Wed Dec 30 23:00:28 1998 David O'Brien + + * configure.in (FreeBSD ELF): Needs special crt files. + +Wed Dec 30 22:50:13 1998 Geoffrey Noer + + * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash. + +1998-12-30 Andreas Schwab + + * 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 Dec 30 22:24:00 1998 Michael Meissner + + * rs6000.md ({save,restore}_stack_function): Take 2 operands to + avoid warnings in compiling explow.c. + + (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. + +Mon Dec 28 19:26:32 1998 Gerald Pfeifer + + * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in + the future; indeed that already happens in some cases. + +Tue Dec 29 11:58:53 1998 Richard Henderson + + * 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. + + * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. + +Tue Dec 29 11:32:54 1998 Richard Kenner + + * 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. + +Tue Dec 29 11:30:10 1998 Richard Henderson + + * expr.c (init_expr_once): Kill can_handle_constant_p recognition. + * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. + + * 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 Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) + + * gengenrtl.c (gencode): Always use bzero to clear memory instead + of dangerous casts and stores. + + * Makefile.in (compare, gnucompare): Add missing else true clauses. + +Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) + + * alpha.md (builtin_longjmp): Add missing "DONE". + +Thu Dec 24 10:39:57 1998 Stan Cox + + * gcc.c (execute): Enable -pipe with win32. + +Wed Dec 23 10:27:44 1998 Nick Clifton + + * config/arm/t-arm-elf: Add multiplib option for leading + underscores. + + * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable + 'user_label_prefix' rather than macro USER_LABEL_PREFIX. + + (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]. + + * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no + leading underscore. + +Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi + + * alias.c (record_alias_subset): Remove ignored `&'. + (init_alias_once): Likewise. + + * c-lex.c (UNGETC): Cast first argument of comma expression to void. + + * config/mips/mips.c (mips_asm_file_end): Cast the result of + fwrite to `int' when comparing against one. + + * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. + (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. + + * cse.c (rehash_using_reg): Change type of variable `i' to + unsigned int. + + * dwarf2out.c (initial_return_save): Cast -1 to unsigned before + assigning it to one. + + * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. + + * final.c (final_scan_insn): Likewise for variable `i'. + (output_asm_insn): Cast a char to unsigned char when used as an + array index. + + * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when + assigning it to one. + + * loop.c (strength_reduce): Remove unused variables `count' and `temp'. + + * recog.c (preprocess_constraints): Cast a char to unsigned char + when used as an array index. + + * regmove.c (find_matches): Likewise. + + * 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. + + * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' + with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t + when comparing against one. + + * 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. + + * tree.c (get_identifier): Cast variable `len' to unsigned when + comparing against one. + (maybe_get_identifier): Likewise + +Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (rest_of_compilation): Do not set reload_completed. + * reload1.c (reload): Set reload_completed before calling + cleanup_subreg_operands. + +Tue Dec 22 23:58:31 1998 Richard Henderson + + * reload1.c (emit_reload_insns): Check `set' not null before use. + +Tue Dec 22 15:15:45 1998 Nick Clifton + + * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to + 'int'. + +Tue Dec 22 13:55:44 1998 Theodore Papadopoulo + + * halfpic.c (half_pic_encode): Delete redundant code. + +Tue Dec 22 13:02:22 1998 Michael Meissner + + * toplev.c (main): Delete handling of -dM as a preprocessor + option. + +Mon Dec 21 17:39:38 1998 Michael Meissner + + * toplev.c (main): Don't emit any warnings when using -dD, -dM, or + -dI, which are handled by the preprocessor. + +Sun Dec 20 16:13:44 1998 John F. Carr + + * configure.in: Handle Digital UNIX 5.x the same as 4.x. + * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". + +Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi + + * genattr.c (fatal): Qualify a char* with the `const' keyword. + + * 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. + +Thu Dec 17 18:21:49 1998 Rainer Orth + + * configure.in (with-fast-fixincludes): Fix whitespace. + * configure: Rebuilt. + + * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific + asm() etc. function declarations in __DECC. + +Thu Dec 17 13:57:23 1998 Nick Clifton + + * expr.c (emit_move_insn_1): Only emit a clobber if the target + is a pseudo register. + +Thu Dec 17 13:50:29 1998 Nick Clifton + + * gcse.c: Include expr.h in order to get the prototype for + get_condition() which is used in delete_null_pointer_checks(). + +Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi + + * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. + +Thu Dec 17 12:31:12 1998 Jim Wilson + + * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. + (ALL_CFLAGS): Delete SCHED_CFLAGS. + +1998-12-17 Vladimir N. Makarov + + * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of + ';'). + +1998-12-17 Michael Tiemann + + * 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. + +Thu Dec 17 08:27:03 1998 J"orn Rennecke + + * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. + +Wed Dec 16 17:30:35 1998 Nick Clifton + + * toplev.c (main): Disable optimize_size if a specific + optimization level is requested. Always set optimization + level to 2 if -Os is specified. + +Wed Dec 16 16:33:04 1998 Dave Brolley + + * 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. + +1998-12-16 Zack Weinberg + + * 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. + +Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi + + * cccp.c: Don't define MIN/MAX anymore. + * cpplib.c: Likewise. + * machmode.h: Likewise. + * system.h: Provide definitions for MIN/MAX. + +Tue Dec 15 23:47:42 1998 Zack Weinberg + + * fix-header.c: Don't define xstrdup here. + +Wed Dec 16 05:11:04 1998 J"orn Rennecke + + * loop.c (consec_sets_giv): New argument last_consec_insn. + (strength_reduce): Provide / use it. + +Wed Dec 16 17:24:07 1998 Michael Hayes + + * 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. + +Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. + + * mn10300.md (bset, bclr): Operand 0 is a read/write operand. + + * mn10200.md (abssf2, negsf2): New expanders. + + * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders. + +Tue Dec 15 11:55:30 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. + + * emit-rtl.c (subreg_realpart_p): Cope with subregs containing + multiword complex values. + +1998-12-15 Zack Weinberg + + * 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. + +1998-12-15 Zack Weinberg + + * 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. + + (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. + +1998-12-15 Zack Weinberg + + * cpphash.h (union hash_value): Remove `keydef' member, add a + `struct hashnode *aschain' member for #assert. + + * 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. + + (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. + + * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): + Removed. + + * cpphash.c (install): Use bcopy instead of an explicit loop + to copy the macro name. + + * cppexp.c (cpp_lex): Convert the result of + cpp_read_check_assertion to a `struct operation' directly; + don't go through parse_number. + +Tue Dec 15 18:27:39 1998 J"orn Rennecke + + * 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. + +Tue Dec 15 01:45:26 1998 Jason Merrill + + * 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". + +Mon Dec 14 16:23:27 1998 Jim Wilson + + * real.c (endian): Disable last change unless + HOST_BITS_PER_WIDE_INT is greater than 32. + +Mon Dec 14 17:13:36 1998 Andrew MacLeod + + * 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 Dec 14 14:09:34 1998 Nick Clifton + + * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes + after completing reload. + + * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are + deleted after reload. + +Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) + + * rtl.h (multiple_sets): Fix prototype. + * rtlanal.c (multiple_sets): Fix return type. + +Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +1998-12-13 Manfred Hollstein + + * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. + +Sun Dec 13 00:24:14 1998 J"orn Rennecke + + * 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. + + * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 + after reload. + +Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + + * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. + + * 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 Dec 12 22:13:02 1998 Mark Mitchell + + * global.c (record_conflicts): Don't use an array of shorts to + store an array of ints. + (global_conflicts): Likewise. + +Sat Dec 12 16:49:24 1998 Richard Henderson + + * alpha.c (alpha_expand_block_move): mode_for_size expects + bits, not bytes. Infer extra alignment from addressof. + +1998-12-11 Michael Meissner + + * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the + .sbss section, not .sdata. + +1998-12-11 Manfred Hollstein + + * 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. + + * 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. + +Fri Dec 11 11:02:49 1998 Stan Cox + + * 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. + +Fri Dec 11 12:56:07 1998 J"orn Rennecke + + * 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 Dec 10 16:02:06 1998 Jim Wilson + + * 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 Dec 10 15:05:59 1998 Dave Brolley + + * objc/objc-act.c (lang_init_options): Enclose cpplib related code in + #if USE_CPPLIB. + +Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi + + * collect2.h: New header file for prototypes. + + * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. + + * collect2.c: Include collect2.h. + * tlink.c: Likewise. + +Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c: Update some comments. + +Wed Dec 9 15:29:26 1998 Dave Brolley + + * 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 Dec 9 19:36:57 1998 J"orn Rennecke + + * reload1.c (reload_combine, reload_combine_note_store): + Make STORE_RUID always valid. + (reload_combine): Check if BASE is clobbered too early. + +Wed Dec 9 09:53:58 1998 Nick Clifton + + * reload.c (find_reloads): Display the insn that cannot be + reloaded. + +Wed Dec 9 12:15:26 1998 Dave Brolley + + * cccp.c (create_definition): Fix end of buffer logic. + +Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi + + * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function + pointer parameters changed to use the PARAMS() macro. + +Wed Dec 9 09:12:40 1998 Andrew MacLeod + + * 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. + +Tue Dec 8 22:04:33 1998 Jim Wilson + + * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand + only when OUTER_CODE is SET. + +Tue Dec 8 22:47:15 1998 J"orn Rennecke + + * 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. + +Tue Dec 8 22:33:18 1998 J"orn Rennecke + + * explow.c (plus_constant_wide): Don't immediately return with + result of recursive call. + +Tue Dec 8 15:32:56 1998 Andrew MacLeod + + * eh-common.h (struct eh_context): Add table_index for rethrows. + + * 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). + + * rtl.c (reg_note_name): Add strings for new reg_note enums. + + * expr.h (rethrow_libfunc): New library decl. + + * optabs.c (rethrow_libfunc): Initialize. + + * 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. + + * 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. + + * 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. + + * 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. + + * 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. + +Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) + + * reload1.c (current_function_decl): Tweak declaration. + +Tue Dec 8 10:23:52 1998 Richard Henderson + + * 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 Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. + * demangle.h: Deleted. + + * reload1.c (current_function_decl): Declare. + +Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi + + * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. + +Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi + + * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. + +1998-12-08 Ulrich Drepper + + * 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. + +Tue Dec 8 00:34:05 1998 Mike Stump + + * 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. + +Mon Dec 7 23:56:28 1998 Robert Lipe + + * configure.in (mips*-*-linux*): Handle big and little endian + systems. + * configure: Rebuilt. + +Mon Dec 7 23:14:51 1998 Mike Stump + + * emit-rtl.c: Fix typo. + +Mon Dec 7 23:07:38 1998 Nathan Sidwell + + * reload1.c (eliminate_regs): Don't do anything, if we're not + generating code. + +Mon Dec 7 15:27:09 1998 DJ Delorie + + * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. + Add comment. + * mips/mips.c (mips_select_section): Add comment. + +Mon Dec 7 17:55:06 1998 Mike Stump + + * 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. + +1998-12-07 Zack Weinberg + + * 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. + + * 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. + + * cppmain.c: s/data/opts/ when initializing cpp_reader + structure. + * c-decl.c: Likewise. + * objc/objc-act.c: Likewise. + * fix-header.c: Likewise. + +1998-12-07 Zack Weinberg + + * 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. + + Move definition of HOST_WIDE_INT here. + (cpp_parse_escape): Change prototype to match changes in + cppexp.c. + + * 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. + + * 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. + + 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). + + * 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] + +Mon Dec 7 15:38:25 1998 Dave Brolley + + * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. + +Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi + + * 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. + +Mon Dec 7 11:30:49 1998 Nick Clifton + + * final.c (output_asm_name): Use tabs to separate comments from + assembly text. + + Include instruction lengths (if defined) in output. + +Mon Dec 7 10:53:38 1998 Michael Hayes + + * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value + in the loop_info structure. + +Mon Dec 7 11:04:40 1998 Catherine Moore + + * 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. + +Mon Dec 7 16:15:51 1998 J"orn Rennecke + + * sh.c (output_far_jump): Emit braf only for TARGET_SH2. + +Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Dec 6 05:16:16 1998 Michael Hayes + + * loop.c (check_dbra_loop): New argument loop_info. Update fields + as needed. + +Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Dec 6 07:49:29 1998 Alexandre Oliva + + * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger + compressed reports are ok and preferred over URLs. + +Sun Dec 6 07:45:33 1998 Alexandre Oliva + + * invoke.texi (Warning Options): Soften the tone of -pedantic. + +Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) + + * print-rtl.c (print_rtx): Add prototype. + + * unroll.c (iteration_info): Make it static. + +Sun Dec 6 01:19:46 1998 Richard Henderson + + * alias.c (memrefs_conflict_p): A second ANDed address + disables the aligned address optimization. + +Sat Dec 5 18:48:25 1998 Richard Henderson + + * alpha.c (alpha_emit_set_const_1): Fix parenthesis error + in -c << n case. + +Sat Dec 5 15:14:52 1998 Jason Merrill + + * i960.h (BOOL_TYPE_SIZE): Define. + +Sun Dec 6 00:28:16 1998 Michael Hayes + + * 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. + +Sat Dec 5 23:52:01 1998 Michael Hayes + + * config/c4x/c4x.c (iteration_info): Delete extern. + +Fri Dec 4 20:15:57 1998 Bernd Schmidt + + * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. + + * final.c (cleanup_subreg_operands): Delete some unused code. + + * 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. + +Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) + + * except.c (set_exception_version_code): Argument is an "int". + +Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. + * configure: Rebuilt. + +Fri Dec 4 01:29:28 1998 Robert Lipe + + * configure.in (mipsel-*-linux*): New target. + * mips/linux.h: New file, based on other Linux targets. + +Thu Dec 3 11:19:50 1998 Mike Stump + + * 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. + +1998-12-03 Joseph S. Myers + + * pdp11.h: Use optimize_size for space optimizations. + * pdp11.c: Likewise. + * pdp11.md: Likewise. + + * pdp11.h (TARGET_40_PLUS): Fix typo. + +Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) + + * local-alloc.c (block_alloc): Slightly retune heuristic to widen + qty lifetimes. + +Thu Dec 3 22:30:18 1998 Michael Hayes + + * alias.c (addr_side_effect_eval): New function. + (memrefs_conflict_p): Use it. + * rtl.h (addr_side_effect_eval): Prototype it. + +1998-12-02 Joseph S. Myers + + * pdp11.md (extendsfdf2): Fix mode mismatch in SET. + +Wed Dec 2 11:23:07 1998 Jim Wilson + + * reload.c (find_reloads): When force const to memory, put result + in substed_operand not *recog_operand_loc. + +1998-12-02 Ulrich Drepper + + * c-lex.c: Fix indentation from last patch. + Remove trailing whitespace. + * real.c: Likewise. + +Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) + + * flow.c (delete_block): Call set_last_insn after we have reset + NEXT_INSN (kept_tail). + +Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) + + * mips.md (trap_if): Use "$0" for the value zero. + +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. + +Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Nov 29 22:59:40 1998 Jason Merrill + + * except.c (add_new_handler): Complain about additional handlers + after one that catches everything. + +Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (alpha*-*-netbsd): Fix typo. + * configure: Rebuilt. + +Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi + + * system.h: Include libiberty.h. + + * 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. + + * 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-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. + + * prefix.c: Remove things made redundant by libiberty.h and/or + conform to libiberty standards. + + * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid + conflicting with function `spaces' from libiberty. + + * 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. + +Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi + + * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. + +Thu Nov 26 23:45:37 1998 Michael Hayes + + * README.C4X: Updated URLs. + * config/c4x/c4x.c (c4x_address_conflict): Fix typo. + (valid_parallel_operands_5): Remove unused variable. + +Thu Nov 26 23:40:03 1998 Michael Hayes + + * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. + +1998-11-26 Manfred Hollstein + + * 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. + + * 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 + + * 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. + +Thu Sep 24 21:22:39 1998 J"orn Rennecke + + * 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. + +Thu Sep 24 18:48:43 1998 J"orn Rennecke + + * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR + reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing. + + Properly keep track of first RELOAD_FOR_X_ADDRESS also for + more than 3 such reloads. + + If there is not more than one RELOAD_FOR_X_ADDRESS, don't change + RELOAD_FOR_X_ADDR_ADDR reload. + +Thu Sep 24 17:45:55 1998 J"orn Rennecke + + * 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. + + * cse.c (cse_insn): When we are about to change a register, + remove any invalid references to it. + + (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 Sep 24 01:35:34 1998 David S. Miller + + * 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 Sep 24 01:19:02 1998 Jakub Jelinek + + * 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. + +Wed Sep 23 22:32:31 1998 Mark Mitchell + + * 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. + +Wed Sep 23 16:22:01 1998 Nick Clifton + + * 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. + + * expmed.c (extract_bit_field): Add comment from Jim Wilson. + +Wed Sep 23 13:26:02 1998 Richard Henderson + + * 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. + +Wed Sep 23 10:45:44 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (find_barrier): Revert change of Apr 23. Handle table + jumps as a single entity, taking into account the size of the + table. + +Tue Sep 22 15:13:34 1998 Alexandre Petit-Bianco + + * tree.def (SWITCH_EXPR): New tree node definition. + +Mon Sep 21 23:40:38 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 21 22:31:14 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 21 22:48:09 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in: Recognize i[34567]86-*-openbsd* and handle it like + NetBSD. + +Mon Sep 21 22:05:28 1998 Jeffrey A Law (law@cygnus.com) + + * Revert this patch. + * reload.c (find_reloads): Do not replace a pseudo with + (MEM (reg_equiv_addr)) in the initializing insn for the + pseudo. + +Mon Sep 21 20:19:41 1998 John Carr + + * final.c (final_scan_insn): Disable tracking CC across branches. + +Mon Sep 21 17:15:26 1998 Andrew MacLeod + + * 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. + +Mon Sep 21 14:10:51 1998 Jason Merrill + + * toplev.c (rest_of_compilation): Skip compiling anything with + DECL_EXTERNAL set, not just if it has DECL_INLINE as well. + +Mon Sep 21 13:51:05 1998 Jim Wilson + + * 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. + +Mon Sep 21 14:02:23 1998 Robert Lipe + + * i386.h (TARGET_SWITCHES): Improve doc for align-double. Fix + typo in no-fancy-math-387 description. + +Mon Sep 21 09:27:18 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 21 09:24:49 1998 Stan Cox + + * i386-coff.h (DBX_DEBUGGING_INFO): Added. + +Mon Sep 21 09:14:49 1998 Robert Lipe + + * i386.h (TARGET_SWITCHES): Add description fields for flags + documented in install.texi. + (TARGET_OPTIONS): Likewise. + +Mon Sep 21 01:39:03 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 21 01:53:05 1998 Felix Lee + + * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). + * cccp.c (main): Likewise. + + * 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. + +Mon Sep 21 00:52:12 1998 Per Bothner + + * Makefile.in (LIBS): Link in libiberty.a. + * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy. + +Sun Sep 20 23:28:11 1998 Richard Henderson + + * 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. + +Sun Sep 20 20:57:02 1998 Robert Lipe + + * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder + problems. + * configure: Regenerate. + +Sun Sep 20 19:01:51 1998 Richard Henderson + + * 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. + + * tree.c (new_alias_set): New function. + * tree.h (new_alias_set): Declare it. + * c-common.c (c_get_alias_set): Use it. + +Sun Sep 20 12:35:55 1998 Richard Henderson + + * fold-const.c (fold): Yet another COND_EXPR bug: when folding + to an ABS expr, convert an unsigned input to signed. + +Sun Sep 20 12:14:45 1998 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold): Fix another type in COND_EXPR handling code. + +1998-09-20 Michael Hayes + + * configure.in: Add support for c4x targets. + * 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 Sep 20 00:22:23 1998 Michael Tiemann + + * fold-const.c (fold): Fix typo in COND_EXPR handling code. + (invert_truthvalue): Enable truthvalue inversion for + floating-point operands if -ffast-math. + +Sat Sep 19 23:58:07 1998 Melissa O'Neill + + * 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. + +Sun Sep 20 00:24:24 1998 Robert Lipe + + * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define. + +1998-09-19 Torbjorn Granlund + + * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0. + (_fpadd_parts): Get sign right for 0. + +1998-09-19 Michael Hayes + + * ginclude/varargs.h: Add support for C4x target. + * ginclude/stdargs.h: Likewise. + +Sat Sep 19 12:05:09 1998 Richard Henderson + + * 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. + +Sat Sep 19 07:33:36 1998 Richard Earnshaw (rearnsha@arm.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. + + * 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. + +Sat Sep 19 01:00:32 1998 Michael Hayes (mph@elec.canterbury.ac.nz) + + * 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. + +Fri Sep 18 22:52:05 1998 Jeffrey A Law (law@cygnus.com) + + * reload.c (find_reloads): Do not replace a pseudo with + (MEM (reg_equiv_addr)) in the initializing insn for the + pseudo. + +Fri Sep 18 23:50:56 1998 David Edelsohn + + * 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. + + * ginclude/va-ppc.h (va_arg): longlong types in overflow area are + not doubleword aligned. + + * 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. + +Fri Sep 18 09:44:55 1998 Nick Clifton + + * config/m32r/m32r.h (m32r_block_immediate_operand): Add to + PREDICATE_CODES. + + * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" + patterns. + + * 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. + +Thu Sep 17 16:42:16 1998 Andrew MacLeod + + * 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 . + +Thu Sep 17 12:24:33 1998 J"orn Rennecke + + * regmove.c (copy_src_to_dest): Check that modes match. + +Wed Sep 16 22:10:42 1998 Robert Lipe + + * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF. + +Wed Sep 16 15:24:54 1998 Richard Henderson + + * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class + narrower than FLOAT_REGS. + +Wed Sep 16 17:51:00 1998 Alexandre Oliva + + * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR. + * cccp.c: Likewise. + * Makefile.in (old_gxx_include_dir): Removed. + +Wed Sep 16 12:29:22 1998 Nick Clifton + + * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match + new specification. + + * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma(). + (sh_handle_pragma): Change function arguments to match new + specification for HANDLE_PRAGMA. + +Wed Sep 16 12:43:19 1998 Kaveh R. Ghazi + + * 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. + +Wed Sep 16 14:47:43 1998 J"orn Rennecke + + * regmove.c (copy_src_to_dest): Don't copy if that requires + (a) new register(s). + +Wed Sep 16 01:29:12 1998 Bernd Schmidt + + * 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. + +Wed Sep 16 01:09:01 1998 Kamil Iskra + + * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q + condition, fix format strings. + (output_function_epilogue): Likewise. + + * m68k/m68k.c: Don't include directly. + +Wed Sep 16 00:30:56 1998 Geoff Keating + + * 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. + +Tue Sep 15 22:59:52 1998 Jeffrey A Law (law@cygnus.com) + + * rs6000.c (output_epilogue): Handle Chill. + + * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + + * 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 (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. + +Tue Sep 15 19:23:01 1998 Bernd Schmidt + + * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants, + return FLOAT_REGS. + +Tue Sep 15 19:09:06 1998 Richard Henderson + + * 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. + + * 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. + + * 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. + + * 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. + + * 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. + + * m68h.h (ARG_POINTER_CFA_OFFSET): New. + * sparc.h (ARG_POINTER_CFA_OFFSET): New. + +Tue Sep 15 19:31:58 1998 Michael Meissner + + * i960.h (CONST_COSTS): Fix thinko. Test flag, not the constant + flag bit mask. + +Tue Sep 15 14:10:54 1998 Andrew MacLeod + + * 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. + +Tue Sep 15 13:53:59 1998 Andrew MacLeod + + * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1. + +Tue Sep 15 09:59:01 1998 Mark Mitchell + + * integrate.c (copy_decl_list): Fix typo. + +Tue Sep 15 04:18:52 1998 David S. Miller + + * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length + attribute. + +Mon Sep 14 14:02:53 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 14 10:33:56 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Mon Sep 14 09:51:05 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Sep 13 22:10:18 1998 David S. Miller + + * invoke.texi (C Dialect Options): Put back missing @end itemize. + +Mon Sep 14 02:33:46 1998 Alexandre Oliva + + * configure.in: Remove usage of `!' to negate the result of a + command; some common shells do not support it. + +Sun Sep 13 19:17:35 1998 David S. Miller + + * configure.in: In sparc9-sol2 config, use 'if test' not + brackets. + * configure: Rebuilt. + + * 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. + + * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode + for operand zero. + +Sun Sep 13 09:11:59 1998 Kaveh R. Ghazi + + * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub. + + * collect2.c: Don't declare `sys_siglist' here. + (my_strsignal): Prototype and define new function. Use it in + place of `sys_siglist' hacks. + + * mips_tfile.c: Likewise. + + * configure.in (AC_CHECK_FUNCS): Check for strsignal. + (GCC_NEED_DECLARATIONS): Likewise. + + * system.h (strsignal): Prototype it, if necessary. + (sys_siglist): Declare it, if necessary. + +Sun Sep 13 04:37:28 1998 David S. Miller + + * loop.c (move_movables): While removing insn sequences, preserve + the next pointer of the most recently deleted insn when we skip + over a NOTE. + +Sun Sep 13 08:13:39 1998 Ben Elliston + + * 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. + + * 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. + + * 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. + +Sat Sep 12 11:37:19 1998 Michael Meissner + + * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines + supported with -mcpu=xxx. + +Fri Sep 11 23:55:54 1998 David S. Miller + + * 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. + + * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable. + +Fri Sep 11 22:57:55 1998 Eric Dumazet + + * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h. + +Thu Sep 10 22:02:04 1998 David S. Miller + + * glimits.h (__LONG_MAX__): Recognize __sparcv9 too. + +Thu Sep 10 21:19:10 1998 Jakub Jelinek + + * 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. + +Thu Sep 10 10:46:01 1998 Mark Mitchell + + * 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. + +Thu Sep 10 08:01:31 1998 Anthony Green + + * config/rs6000/rs6000.c (output_epilog): Add Java support. + +Thu Sep 10 14:48:59 1998 Martin von Löwis + + * invoke.texi (C++ Dialect Options): Document -fhonor-std. + +Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com) + + * reg-stack.c (straighten_stack): Do nothing if the virtual stack is + empty or has a single entry. + + * toplev.c (rest_of_compilation): Open up the dump file for reg-stack + before calling reg_to_stack. + +Thu Sep 10 00:03:34 1998 Richard Henderson + + * alpha.c (alphaev5_insn_pipe): Abort on default case. + (alphaev5_next_group): Swallow CLOBBERs and USEs. + + * c-tree.h (warn_long_long): Declare it. + +Wed Sep 9 23:31:36 1998 (Stephen L Moshier) + + * emit-rtl.c (gen_lowpart_common): Disable optimization of + initialized float-int union if the value is a NaN. + +Wed Sep 9 23:00:48 1998 Nathan Sidwell + + * c-lex.c (real_yylex): Don't warn about long long constants if + we're allowing long long + +Wed Sep 9 21:58:41 1998 Bernd Schmidt + + * 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): 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. + + * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET. + +Wed Sep 9 13:14:41 1998 Richard Henderson + + * loop.c (load_mems): Copy rtx for output mem. + +Wed Sep 9 15:16:58 1998 Gavin Romig-Koch + + * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for + mips1 or mips2 either. + +Wed Sep 9 12:31:35 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + + * Makefile.in (profile.o): Depend on insn-config.h + +Wed Sep 9 09:36:51 1998 Jim Wilson + + * iris6.h (DWARF2_UNWIND_INFO): Undef. + +Wed Sep 9 01:32:01 1998 David S. Miller + + 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. + +Wed Sep 9 01:07:30 1998 Jakub Jelinek + + * 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. + +Wed Sep 9 00:10:31 1998 Jeffrey A Law (law@cygnus.com) + + * prefix.c (update_path): Correctly handle cases where PATH is + a substring of the builtin prefix, but specifies a different + directory location. + +Tue Sep 8 23:46:04 1998 Hans-Peter Nilsson + + * 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. + +Tue Sep 8 22:56:12 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in (m68k-next-nextstep3*): Use collect2. + Similarly for x86 NeXT configurations. + * configure: Rebuilt. + +Tue Sep 8 01:38:57 1998 Nathan Sidwell + + * configure.in: Don't assume srcdir is .../gcc. + * configure: Rebuilt. + +Sat Sep 5 16:34:34 1998 John Wehle (john@feith.com) + + * 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. + +Mon Sep 7 23:38:01 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH. + * configure: Rebuilt. + +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. + +Mon Sep 7 23:30:07 1998 Kaveh R. Ghazi + + * toplev.c (print_switch_values): Make static to match prototype. + +Mon Sep 7 19:13:59 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in: If we are unable to find the "gnatbind" program, + then do not configure the ada subdir. + * configure: Rebuilt. + +Sun Sep 6 14:03:58 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Sep 6 13:28:07 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Sun Sep 6 08:54:14 1998 Kaveh R. Ghazi + + * Makefile.in (toplev.o): Depend on $(EXPR_H). + (insn-extract.o, insn-attrtab.o): Depend on toplev.h. + + * gansidecl.h: Define ATTRIBUTE_NORETURN. + + * genattrtab.c: Have insn-attrtab.c include toplev.h. + + * genextract.c: Have insn-extract.c include toplev.h. + + * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'. + + * 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'. + + * 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. + +Sat Sep 6 12:05:18 1998 John Carr + + * 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. + + * 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. + +Sun Sep 6 11:17:20 1998 Dave Love + + * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771 + linking. + +Sat Sep 5 22:05:25 1998 Richard Henderson + + * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, + not whatever we're generating now. + + * 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. + + * 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. + +Sat Sep 5 14:47:17 1998 Richard Henderson + + * 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. + +Sat Sep 5 14:23:31 1998 Torbjorn Granlund + + * m68k.md (zero_extendsidi2): Fix typo. + +Sat Sep 5 13:40:24 1998 Krister Walfridsson + + * 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. + +Sat Aug 29 13:32:58 1998 Mumit Khan + + * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define. + (PCC_BITFIELD_TYPE_MATTERS): Define to be 0. + + * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for + for exact section attributions. + + * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc + runtime. + * i386/crtdll.h (CPP_PREDEFINES): Define. + +Sat Sep 5 03:23:05 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + + * 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. + +Fri Sep 4 11:57:50 1998 Tom Tromey + + * 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. + +Fri Sep 4 10:37:07 1998 Jim Wilson + + * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. + +Fri Sep 4 02:01:05 1998 David S. Miller + + * 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. + +1998-09-03 SL Baur + + * Makefile.in: Add semicolon in BISON definition for portability. + +Thu Sep 3 13:34:41 1998 Toon Moene + + * config/nextstep.c (handle_pragma): Correct name of third + argument. + +Tue Sep 1 11:30:33 1998 Nick Clifton + + * 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. + +Thu Sep 3 18:17:34 1998 Benjamin Kosnik + + * invoke.texi (Warning Options): Add -Wnon-template-friend + documentation. + +Thu Sep 3 18:16:16 1998 Michael Meissner + + * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}. + +Thu Sep 3 18:05:16 1998 David Edelsohn + + * rs6000.md (movsf): Disable explicit secondary-reload-like + functionality if TARGET_POWERPC64. + (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like + functionality. + +Thu Sep 3 11:41:40 1998 Robert Lipe + + * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h + and term.h from fixinc.wrap. + +Thu Sep 3 09:47:31 1998 Kaveh R. Ghazi + + * 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. + + * acconfig.h (STRING_WITH_STRINGS): Add stub. + + * configure.in: Call GCC_HEADER_STRING. + + * 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. + +Wed Sep 2 23:56:29 1998 David S. Miller + + * 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. + +Thu Sep 3 00:23:21 1998 Richard Henderson + + * ginclude/va-alpha.h: Protect entire second portion of the + file against double inclusion. + +Thu Sep 3 00:37:55 1998 Ovidiu Predescu + + 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. + +Wed Sep 2 14:47:36 1998 Jim Wilson + + * jump.c (jump_optimize): In if/then/else transformations, add + another call to modified_between_p for the jump insn. + +Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com) + + * fix-header.c (symlink): Treat like readlink. + +Wed Sep 2 19:30:06 1998 J"orn Rennecke + + * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles + as FT_float. + +Wed Sep 2 10:06:07 1998 Nick Clifton + + * config/nextstep.h: Update HANDLE_PRAGMA macro. + * config/h8300/h8300.h: Update HANDLE_PRAGMA macro. + * config/i960/i960.h: Update HANDLE_PRAGMA macro. + + * 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. + +Wed Sep 2 09:25:29 1998 Nick Clifton + + * 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. + + * c-pragma.c (handle_pragma_token): Return success/failure status + of the parse. + + * c-pragma.h: Change prototype of handle_pragma_token(). + + * varasm.c (handle_pragma_weak): Only create this function if + HANDLE_PRAGMA_WEAK is defined. + + * c-common,c (decl_attributes): If defined call the expression + contained within the INSERT_ATTRIBUTES macro before adding + attributes to a decl. + + * tm.texi (HANDLE_PRAGMA): Document the new version of + HANDLE_PRAGMA, which takes three arguments. + (INSERT_ATTRIBUTES): Document this new macro. + + * LANGUAGES: Document the new version of HANDLE_PRAGMA and the + new INSERT_ATTRIBUTES macro. + +Wed Sep 2 02:03:23 1998 David S. Miller + + * 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. + +Tue Sep 1 15:55:17 1998 David S. Miller + + * config/sparc/sparc.c (finalize_pic): Don't output arbitrary + alignment, use FUNCTION_BOUNDARY instead. + (sparc_output_deferred_case_vectors): Likewise. + +Mon Aug 31 17:25:41 1998 David S. Miller + + * config/sparc/sparc.md (movsf_const_intreg): Kill warning. + (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives. + +Mon Aug 31 13:57:55 1998 Richard Henderson + + * alpha/va_list.h: New file. + * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. + +Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) + + * NEWS: Add SCO Openserver and Unixware 7 notes. + + * NEWS: Fix typos. + +Mon Aug 31 15:42:18 1998 Dave Brolley + + * varasm.c (compare_constant_1): Handle RANGE_EXPR. + (record_constant_1): Handle RANGE_EXPR. + +Mon Aug 31 10:54:03 1998 Richard Henderson + + * 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. + +Mon Aug 31 10:18:52 1998 Kaveh R. Ghazi + + * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'. + (ultrasparc_sched_init): Remove unneeded &. + +Mon Aug 31 10:47:16 1998 Andreas Schwab + + * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040 + for m68020-60, to prevent the use of fintrz. + +Sun Aug 30 22:17:20 1998 Mark Mitchell + + * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) + even in stage1. + * Makefile.in: Likewise. + * configure: Regenerated. + +Sun Aug 30 22:15:41 1998 H.J. Lu (hjl@gnu.org) + + * configure.in (gxx_include_dir): Changed to + '${prefix}/include/g++'-${libstdcxx_interface}. + * configure: Rebuilt. + +Sun Aug 30 20:19:43 1998 Hans-Peter Nilsson + + * 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. + +Sun Aug 30 17:18:43 1998 Jeffrey A Law (law@cygnus.com) + + * collect2.c (mktemp): Delete unused declaration. + + * 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. + +Sun Aug 30 16:05:45 1998 Mark Mitchell + + * convert.c (convert_to_integer): Issue an error on conversions to + incomplete types. + +Sun Aug 30 16:47:20 1998 Martin von Lvwis + + * Makefile.in: Add lang_tree_files and gencheck.h. + * configure.in: Generate them. + * gencheck.c: Include gencheck.h. + +Sat Aug 29 21:38:24 1998 David S. Miller + + * 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. + +Sat Aug 29 14:59:32 1998 Mumit Khan + + * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit + .linkonce directive after the first time. + +Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com) + + * m68k.md (beq0_di): Generate correct (and more efficient) code when + the clobbered operand overlaps with an input. + (bne0_di): Similarly. + + * Makefile.in (INSTALL): Remove "--no-header" argument. + + * NEWS: Various updates. + +Fri Aug 28 19:00:44 1998 David S. Miller + + * 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. + +Fri Aug 28 13:52:35 1998 Jim Wilson + + * 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. + +1998-08-28 Brendan Kehoe + + * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not + COMPARISON_VAL, into invariant_p. + +Fri Aug 28 15:13:25 1998 J"orn Rennecke + + * regmove.c (regclass_compatible_p): New function. + (regmove_optimize): Use it. + + Use NREGS parameter instead of calling max_reg_num. + + (fixup_match_1): Don't use code = MINUS when later tieing with + a hard register is likely. + +Fri Aug 28 14:54:07 1998 J"orn Rennecke + + * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when + COMPARISON_VAL was normalized. + +Thu Aug 27 20:10:46 1998 Jeffrey A Law (law@cygnus.com) + + * loop.c (check_dbra_loop): The loop ending comparison value + must be an invariant or we can not reverse the loop. + + * 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 (print_operand): Remove obsolete 'c' docs. + +Wed Aug 26 17:13:37 1998 Tom Tromey + + * 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 Aug 27 15:14:18 1998 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (sched_analyze_insn): Fix thinko in last change. + +Thu Aug 27 16:34:51 1998 J"orn Rennecke + + * loop.c (check_dbra_loop): Enable code for reversal + of some loops without a known constant loop end. + +Wed Aug 26 18:38:15 1998 Richard Henderson + + * haifa-sched.c (last_clock_var): New. + (schedule_block): Initialize it. + (schedule_insn): Use it to fill insn modes with issue information. + + * 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. + +Wed Aug 26 15:55:41 1998 Jim Wilson + + * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef. + * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. + + * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. + (rs6000-ibm-aix4.[12]*): Likewise. + * configure: Regenerate. + +Wed Aug 26 09:30:59 1998 Nick Clifton + + * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it + already contains the return address. + +Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com) + + * calls.c (expand_call): Use bitfield instructions to extract/deposit + word sized hunks when loading unaligned args into registers. + + * haifa-sched.c (sched_analyze_insn): Only create scheduling + barriers for LOOP, EH and SETJMP notes on the loop_notes list. + + * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too. + +Wed Aug 26 16:35:37 1998 J"orn Rennecke + + * 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. + +Wed Aug 26 11:08:44 1998 Gavin Romig-Koch + + * mips.md (lshrsi3_internal2+2): Fix type-o. + +Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi + + * 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. + * 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. + +Wed Aug 26 05:09:27 1998 Jakub Jelinek + + * 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. + +Tue Aug 25 10:57:41 1998 Mark Mitchell + + * 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. + +Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com) + + * From Alexandre: + * configure.in: Do not set thread_file to "irix" since no such + support exists yet. + + * sparc.md (float abs/neg splits): Check reload_completed before + calling alter_subreg. + +Tue Aug 25 19:17:59 1998 David S. Miller + + * 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< + + * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX + as an ordinary operand. + +Tue Aug 25 12:54:57 1998 Jason Merrill + + * tree.c (valid_machine_attribute): Don't apply attributes to both + decl and type. + +Tue Aug 25 12:23:20 1998 Richard Henderson + + * reload.c (operands_match_p): Handle rtvecs. + + * 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. + +Tue Aug 25 12:02:23 1998 Mark Mitchell + + * 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 + +Tue Aug 25 19:20:12 1998 J"orn Rennecke + + * sh.h (GIV_SORT_CRITERION): Delete. + +Tue Aug 25 13:19:46 1998 Dave Brolley + + * regclass.c (regclass): Use xmalloc/free instead of alloca. + * stupid.c (stupid_life_analysis): Likewise. + * reload1.c (reload): Likewise. + +Tue Aug 25 05:48:18 1998 Jakub Jelinek + + * 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. + +Mon Aug 24 23:31:03 1998 David S. Miller + + * 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. + +Mon Aug 24 19:45:40 1998 Jim Wilson + + * tree.def (DECL_RESULT): Correct documentation. + +Tue Aug 25 01:15:27 1998 J"orn Rennecke + + * 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. + + * reload1.c (reload_cse_regs_1): When deleting a no-op move that + loads the function result, substitute with a USE. + +Mon Aug 24 15:20:19 1998 David Edelsohn + + * 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. + +Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) + + * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. + + * h8300.h (STRIP_NAME_ENCODING): Fix typo. + + * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect + when the source and destination overlap. + + * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid + clash with global type. + +Mon Aug 24 00:53:53 1998 Jason Merrill + + * fixinc.irix: Add curses.h handling from fixinc.wrap. + + * c-common.c (combine_strings): Also set TREE_READONLY. + Change warn_write_strings to flag_const_strings. + * c-decl.c, c-tree.h: Likewise. + +Sun Aug 23 18:39:11 1998 David S. Miller + + * 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 Aug 23 11:56:08 1998 Mark Mitchell + + * extend.texi: Remove description of extension to explicit + instantiation that is now endorsed by standard C++. + +Sun Aug 23 09:39:09 1998 David S. Miller + + * 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. + +Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + +Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de) + + * loop.c (load_mems): Fix initializers. + +Fri Aug 21 23:07:46 1998 David S. Miller + + * config/sparc/sparc.md (TFmode splits): Handle destination + registers being referenced in the address correctly. + + * 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. + +Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco + + * 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. + +Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) + + * h8300.c (h8300_encode_label): Use '&' for tiny data items. + * h8300.h (TINY_DATA_NAME_P): Likewise. + (STRIP_NAME_ENCODING): Handle '&'. + + * 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. + + * remove.c (optimize_reg_copy_3): Abort instead of silently generating + bogus rtl. + + * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative. + +Thu Aug 20 17:35:20 1998 David S. Miller + + * config/sparc/sparc.md (movtf_insn_sp32): All memory operands + must be offsettable so the splits can be made. + +Thu Aug 20 13:56:53 1998 Michael Meissner + + * 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 Aug 20 13:44:20 1998 David Edelsohn + + * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. + +Thu Aug 20 13:15:11 1998 Dave Brolley + + * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for + arrays of bits. + * cpplib.c (cpp_define): Handle macros with parameters. + +Wed Aug 19 21:33:19 1998 David Edelsohn + + * 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 Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com) + + * config/arm/thumb.md (extendqisi2_insn): Cope with REG + + OFFSET addressing. + +Wed Aug 19 14:13:31 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Wed Aug 19 13:10:30 1998 Jeff Law (law@cygnus.com) + + * version.c: Bump for snapshot. + +Wed Aug 19 13:06:47 1998 Jason Merrill + + * collect2.c (extract_init_priority): Use atoi instead of strtoul. + +Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson + + * tm.texi (Misc): Fix typo "teh". + + * tm.texi (PIC): Fix typo "PPIC". + + * 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-08-19 Michael Hayes + + * regclass.c: Changed register set documentation to be consistent + with GCC behavior. + + * final.c (final_start_function): Removed redundant test for + call_fixed_regs. + +Wed Aug 19 13:28:41 1998 Mark Mitchell + + * rtl.h (rtx_function): New type. + (for_each_rtx): New function. + * rtlanal.c (for_each_rtx): Define it. + + * 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. + + * 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. + +Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (arm_override_options): Remove lie about ignoring PIC flag. + +Wed Aug 19 07:08:15 1998 David S. Miller + + * 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. + +Tue Aug 18 12:40:27 1998 Richard Henderson + + * c-common.c (decl_attributes): Issue an error if the argument + to alias is not a string. + +Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last + pending memory flush list. + + * combine.c (can_combine_p): Allow combining insns with REG_RETVAL + notes. + (try_combine): Allow combining insns with REG_LIBCALL notes. + + * 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. + + * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p + on notes. + + * Makefile.in (cplus-dem.o): Provide explicit rules for building + cplus-dem.o. + + * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED + and REG_LIVE_LENGTH as successful substitutions are made. + +Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi + + * config/sparc/sparc.c (ultra_find_type): Add empty semicolon + statement after end of loop label. + +Tue Aug 18 07:13:27 1998 David S. Miller + + * 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. + +Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling + for architecture v4. + +Mon Aug 17 21:26:38 1998 David S. Miller + + * 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. + +Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + + * 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. + + * 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. + + * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs + and VAR_DECLs. + +Mon Aug 17 10:28:52 1998 Mark Mitchell + + * stmt.c (expand_end_loop): Tidy. Allow unconditional + jumps out of the loop to be treated as part of the exit test. + +Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi + Jeff Law + + * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty. + * cplus-dem.c: Delete. + + * Makefile.in (fold-const.o): Depend on $(RTL_H). + + * fold-const.c: Include rtl.h to get the prototype for + `set_identifier_local_value'. + + * loop.c (express_from_1): Remove unused variable `tmp'. + (combine_givs): Cast the first argument of bzero to char *. + + * toplev.c (display_help): Remove unused variable `looking_for_start'. + + * c-decl.c (init_decl_processing): Remove unneeded &. + + * alpha.h (alpha_initialize_trampoline): Provide prototype. + + * except.c (set_exception_lang_code, set_exception_version_code): + Change parameter from `short' to `int' to avoid using a gcc + extension. + + * except.h (set_exception_lang_code, set_exception_version_code): + Likewise for prototypes. + + * flow.c (count_reg_references): Remove unused variables `regno' + and `i'. + + * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. + + * prefix.c (translate_name): Cast the result of `alloca'. + + * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. + +Mon Aug 17 09:23:42 1998 Andreas Schwab + + * 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. + + * m68k.c (output_move_simode_const): Use subl to move a zero into an + address register. + (output_move_[hq]imode): Likewise. + +Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com) + + * toplev.c (main): Enable -fstrict-aliasing for -O2 and above. + * invoke.texi: Corresponding changes. + +Mon Aug 17 02:03:55 1998 Richard Henderson + + * regclass.c (allocate_reg_info): Respect MIN when clearing data. + +Sun Aug 16 17:37:06 1998 David S. Miller + + * 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. + +Sun Aug 16 13:52:00 1998 David Edelsohn + + * 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. + +Sun Aug 16 01:53:21 1998 Richard Henderson + + * reload.c (find_equiv_reg): Reject equivalences separated + by a volatile instruction. + +Sun Aug 16 00:21:44 1998 Franz Sirl + + * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. + +Sat Aug 15 20:51:35 1998 Richard Henderson + + * alpha.md (movsicc): Fix mode mismatch. + +Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) + + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated + return type. + * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. + +Sat Aug 15 08:39:49 1998 David S. Miller + + * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove + write-only modifier from operand 1 constraint. + +Sat Aug 15 06:28:19 1998 David S. Miller + + * 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. + +Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + + * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. + + * m68k.md (adddi_dilshr32): One of the operands must be a register. + (adddi_dishl32): Similarly. + +Fri Aug 14 14:12:59 1998 Jason Merrill + + * 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. + +Fri Aug 14 12:58:21 1998 David S. Miller + + * 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. + +Fri Aug 14 21:52:53 1998 J"orn Rennecke + + * expr.c (store_expr): Don't optimize away load-store pair + when either source or destination have a side effect. + +Fri Aug 14 16:50:10 1998 John Carr + + * genrecog.c (add_to_sequence): Fatal error if the modes of the + operands of SET are incompatible. + + * alpha.md: Fix max and min patterns so modes of SET operands match. + +Fri Aug 14 12:22:55 1998 Ian Lance Taylor + + * configure.in: Avoid [[ by using test and changequote. + * configure: Rebuild. + +Fri Aug 14 01:22:31 1998 David S. Miller + + * rtl.def (CONSTANT_P_RTX): Fix typo in string name. + + * 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 Aug 14 00:34:34 1998 David S. Miller + + * 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. + +Fri Aug 14 01:45:06 1998 Mumit Khan + + * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define. + +Fri Aug 14 01:40:21 1998 Geoffrey Keating + + * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. + +Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating + point. + (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. + +Fri Aug 14 01:19:08 1998 Robert Lipe + + * install.texi: Various SCO OpenServer tweaks. + +Thu Aug 13 20:14:40 1998 Jim Wilson + + * 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. + + * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI. + +Thu Aug 13 17:08:11 1998 Jason Merrill + + * tree.h: De-conditionalize init_priority code. + + * mips.h (NM_FLAGS): Change from -Bp to -Bn. + * collect2.c (NM_FLAGS): Change from -p to -n. + + * configure.in: Turn on collect2 for mipstx39-elf. + Handle use_collect2=no properly. + + * 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. + + * 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. + +Thu Aug 13 16:09:53 1998 Martin von Loewis + + * expr.c (safe_from_p): Change code to ERROR_MARK only when not + accessing nodes. + +Thu Aug 13 15:24:48 1998 Jason Merrill + + * toplev.c (display_help): Add braces to shut up warnings. + * tree.c (simple_cst_equal): Likewise. + + * 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-typeck.c (initializer_constant_valid_p): Allow conversion of 0 + of any size to a pointer. + +Thu Aug 13 12:53:13 1998 Jim Wilson + + * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED. + +Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com) + + * 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. + + * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register" + optimizations. + +Wed Aug 12 12:39:16 1998 Gavin Romig-Koch + + * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for + VAR_DECL's in gp addressable sections. + +Tue Aug 11 23:02:31 1998 John Carr + + * sparc.c: Change return to ; return; in functions + returning void. + * sparc.md: Add empty semicolon statement after final label in + move expanders. + +Tue Aug 11 22:42:01 1998 David S. Miller + + * 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. + +Tue Aug 11 16:04:34 1998 John Carr + + * except.c (set_exception_lang_code, set_exception_version_code): + Use prototype-style definition if __STDC__, to match declaration + in except.h. + + * genemit.c: Change FAIL and DONE macros not to use loops. + +Tue Aug 11 12:27:03 1998 Jim Wilson + + * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use + ASM_OUTPUT_DWARF2_ADDR_CONST if defined. + + * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16. + +Tue Aug 11 18:12:53 1998 Dave Love + + * README.g77: Update from Craig. + +Tue Aug 11 04:46:01 1998 David S. Miller + + * 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. + + * 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. + +Mon Aug 10 22:57:24 1998 John Carr + + * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt + in v9 case as the latter makes the Solaris assembler crash. + +Mon Aug 10 22:39:09 1998 David S. Miller + + * 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. + +Mon Aug 10 19:02:55 1998 John Carr + + * Makefile.in (mbchar.o): Depend on mbchar.c. + +Mon Aug 10 04:28:13 1998 David S. Miller + Richard Henderson + + 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. + + * final.c (final_scan_insn): Don't output labels if target + specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations + instead. + + * 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. + +Mon Aug 10 01:21:01 1998 Richard Henderson + + * alpha.md (extxl+1,+2): New patterns to work around + combine lossage. + +Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) + + * rs6000.c (rs6000_allocate_stack_space): Fix typo which + caused bad assembly code to be generated. + +Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com) + + * netbsd.h: Fix typo. + +Mon Aug 3 00:06:42 1998 Robert Lipe + + * config.sub: Fix typo. + +Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson + + * invoke.texi (Environment Variables): Typo: Change "ascpects" + into "aspects". + (Running Protoize): Typo: Change "ther" into "other". + +Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) + + * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. + * m68k/netbsd.h: Likewise. + * ns32k/netbsd.h: Likewise. + * sparc/netbsd.h: Likewise. + +Sat Aug 1 17:59:30 1998 Richard Henderson + + * ginclude/va-alpha.h (va_list): Use a typedef, not a define. + * ginclude/va-clipper.h (va_list): Likewise. + +Fri Jul 31 20:22:02 1998 Michael Meissner + + * rs6000.c (rs6000_override_options): If big endian and -Os, use + load/store multiple instructions unless user overrides. + +Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) + + * ns32k/netbsd.h: Fix typo. + +Fri Jul 31 10:23:55 1998 Doug Evans + + * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number + labels with .debugsym if no parallel insns. + +Thu Jul 30 19:15:53 1998 Richard Henderson + + * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. + (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. + +Thu Jul 30 19:50:15 1998 David Edelsohn + + * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. + (AR_FOR_TARGET): Define. + +Thu Jul 30 12:29:12 1998 Mark Mitchell + + * 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. + +Thu Jul 30 13:08:07 1998 Ken Raeburn + + 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. + +Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) + + * i386.md (movqi): When optimizing a load of (const_int 1) into a + NON_QI_REG_P, pretend the register is SImode. + +Wed Jul 29 23:49:23 1998 Todd Vierling + + * 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. + +Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) + + * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO + or UNROLL_COMPLETELY loop that starts with a jump to its + exit code. + +Wed Jul 29 22:18:14 1998 David Edelsohn + + * 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. + +Wed Jul 29 11:47:10 1998 Nick Clifton + + * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber + constraint from second alternative. + +Tue Jul 28 23:29:04 1998 Jason Merrill + + * configure.in: Fix --without/--disable cases for local-prefix, + gxx-include-dir and checking. + +Tue Jul 28 22:01:23 1998 David S. Miller + + * configure.in (enable_haifa): Set by default for sparc64 too. + configure: Rebuilt. + +Tue Jul 28 23:29:04 1998 Jason Merrill + + * 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. + + From Antonio M. O. Neto : + * i386.c (i386_valid_type_attribute_p): Also accept + attributes for METHOD_TYPEs. + +Tue Jul 28 23:17:39 1998 Peter Gerwinski + + * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. + +Tue Jul 28 22:31:12 1998 Craig Burley + + * gcc.c: Fix commentary describing %g, %u, %U, and %O. + + * 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. + +1998-07-28 Vladimir N. Makarov + + * cse.c (cse_insn): Enable substitution inside libcall only for REG, + SUBREG, MEM. + * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. + + * 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 Jul 27 00:54:41 1998 Jason Merrill + + * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are + identical. + +Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com) + + * pa.c (move_operand): Accept CONSTANT_P_RTX. + +Mon Jul 27 17:18:52 1998 Dave Brolley + + * stor-layout.c (layout_type): Handle arrays of bits, for Chill. + + * expr.c (get_inner_reference): Handle zero-based, unsigned, array + index conversion. + +Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300.h (DEBUGGER_AUTO_OFFSET): Define. + (DEBUGGER_ARG_OFFSET): Likewise. + + * mn10300.md (movsf): Remove last change. Not needed. + +Mon Jul 27 14:22:36 1998 Dave Brolley + + * c-lex.c (yylex): Fix boundary conditions in character literal and + string literal loops. + +Mon Jul 27 11:43:54 1998 Stan Cox + + * longlong.h (count_leading_zeros): SPARClite scan instruction was + being invoked incorrectly. + + * 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 Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) + + * 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.c (output_to_reg): Add code to emulate non-popping DImode + case. + +Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com) + + * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. + +Sat Jul 25 23:29:23 1998 Gerald Pfeifer + + * Makefile.in (install-info): Only try to update the info + directory file if it exists in the first place. + +Fri Jul 24 18:58:37 1998 Klaus Espenlaub + + * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. + +Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle + CONST_DOUBLE source. + +Fri Jul 24 11:17:04 1998 Nick Clifton + + * 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. + +Thu Jul 23 18:53:20 1998 Jim Wilson + + * dbxout.c (dbxout_range_type): Only call dbxout_type_index for + already defined type. + +Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com) + + * expr.c (check_max_integer_computation_mode): Allow conversions + of constant integers to MAX_INTEGER_COMPUTATION_MODE. + (expand_expr): Likewise. + +Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco + + * expr.c (expand_expr): Expand RETURN_EXPR. + +Thu Jul 23 11:00:29 1998 Jim Wilson + + * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. + +Wed Jul 22 19:10:00 1998 Catherine Moore + + * dwarf2out.c (output_aranges): Call stripattributes + for TEXT_SECTION references. + (output_line_info): Likewise. + +Wed Jul 22 14:08:54 1998 David S. Miller + + * profile.c (branch_prob): Call allocate_reg_info after outputting + profile rtl in instrument_arcs. + +Wed Jul 22 12:47:49 1998 Jim Wilson + + * fixinc.irix (math.h): Install wrapper instead of copying. + +Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco + + * 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. + +Tue Jul 21 23:28:35 1998 Klaus Kaempf + + * cccp.c (do_include): Fix vax c style include handling. + +Tue Jul 21 13:28:19 1998 Jason Merrill + + * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays. + +Sun Jul 12 01:27:05 1998 Jason Merrill + + * 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. + +Tue Jul 21 15:49:31 1998 David Edelsohn + + * 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. + +Tue Jul 21 08:56:42 1998 Richard Henderson + + * 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. + +Tue Jul 21 08:55:09 1998 Richard Henderson + + * flow.c (regno_uninitialized): Fixed regs are never uninitialized. + +Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) + + * gcc.c (do_spec): Call "error" not "warning". + + * configure.in: Fix minor problems with gas feature detection code. + * configure: Rebuilt. + + * gcc.c (do_spec): Issue a warning for '%[]' usage. + + * Undo this change. + * gcc.c: Delete %[spec] support. + (do_spec_1, case '('): Likewise. + (do_spec_1, case '['): Call error. + +Mon Jul 20 22:34:17 1998 Richard Henderson + + * 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. + +Mon Jul 20 22:51:57 1998 Ken Raeburn + + * 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. + + * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. + + * 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. + +Mon Jul 20 16:16:38 1998 Dave Brolley + + * configure.in (enable_c_mbchar): New configure option. + (extra_cpp_objs): Always available now. + + * cexp.y (mbchar.h): #include it. + (yylex): Handle Multibyte characters in character literals. + + * 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. + + * 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. + + * Makefile.in (mbchar.o): New target. + (cccp$(exeext)): @extra_cpp_objs@ is always available. + (cppmain$(exeext)): @extra_cpp_objs@ is always available. + + * mbchar.[ch]: New files for multibyte character handling. + +Mon Jul 20 01:11:11 1998 David S. Miller + + * 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. + +Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi + + * cplus-dem.c (demangle_nested_args): Make function definition + static to match the prototype. + +Fri Jul 17 14:58:44 1998 Richard Henderson + + * alloca.c: Respect USE_C_ALLOCA. + * gencheck.c (xmalloc): Ignore __GNUC__ for definition. + * gengenrtl.c (xmalloc): Likewise. + +Fri Jul 17 14:18:14 1998 Richard Henderson + + * 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. + + * fold-const.c (operand_equal_p): Handle RTL_EXPR. + (fold): Do a complete (A*C)+(B*C) association check. + +Fri Jul 17 11:21:55 1998 Jim Wilson + + * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. + +Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300.c (MODES_TIEABLE_P): Fix typo. + +Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) + + * tree.c (valid_machine_attribute): Only create a new type variant if + there is a decl to use it. + +Thu Jul 16 14:48:04 1998 Nick Clifton + + * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have + a suffix. + +Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson + + * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may + be deleted" + +Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com) + + * mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed. + Simplify tests for clearing an address register. + (expand_prologue): Corresponding changes. + + * 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. + +Thu Jul 16 01:17:44 1998 Richard Henderson + + * loop.c (emit_iv_add_mult): Scan the entire insn list generated + for the sequence, recording base values. + +Wed Jul 15 10:49:55 1998 Richard Henderson + + * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix). + +Tue Jul 14 14:15:30 1998 Nick Clifton + + * gcc.c: Remove ANSI-C ism from --help code. + + * toplev.c: Support --help with USE_CPPLIB. + +Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com) + + * configure.in: Rework gas feature code to work with symlink based + source trees. + + * extend.texi: Clarify some issues related to local variables + assigned to explicit registers. + + * mn10300.md (mulsi): Turn into expander + pattern. + + * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a + alternative. + +Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com) + + * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h. + +Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com) + + * version.c: Bump again to distinguish mainline tree from the + egcs-1.1 branch. + +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 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. + +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. diff --git a/gcc/ChangeLog-1999 b/gcc/ChangeLog-1999 new file mode 100644 index 00000000000..add129de3d1 --- /dev/null +++ b/gcc/ChangeLog-1999 @@ -0,0 +1,21786 @@ +Fri Dec 31 19:10:31 1999 Richard Kenner + + * function.c (update_temp_slot_address): Handle case where sum of + temporary address plus offset in register is a valid address. + +1999-12-30 Herman A.J. ten Brugge + + * genrecog.c (change_state) Corrected typo. + +1999-12-30 Kaveh R. Ghazi + + * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free, + getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc, + strerror, getrlimit, setrlimit, abort): Add prototype arguments. + +1999-12-30 Bernd Schmidt + + * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE + case, expand GT comparisons correctly. Fix a comment before this + part of the code. + +1999-12-30 Gabriel Dos Reis + + * dwarfout.c: Include "frame.h" + * dwarf2out.c: Likewise. + * Makefile.in (dwarfout.o): Depend on frame.h + (dwarf2out.o): Likewise. + +1999-12-29 "Martin v. Loewis" + + Restore i386 binary compatibility in Dwarf EH info. + * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old + value of FIRST_PSEUDO_REGISTER. + * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER. + (struct frame_state): Use DWARF_FRAME_REGISTERS. + * dwarfout.c (output_reg_number): Ditto. + * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto. + (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS. + +1999-12-29 Bruce Korb + + * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK + * fixinc/fixincl.tpl(TEST_CT): Just do the existence test once + (_RE_CT): not needed + * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c + rewritten to scan the file text once only + "template<..." test added + * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c + (is_cxx_header): declaration added + * fixinc/fixtests.c(is_cxx_header): removed + (apply_fix_p_t): removed + (double_slash_test): is_cxx_header is only called once now + * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG + * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state + within the templates. + The borken spelling of "broken" was fixed. + * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages + The default level depends on FIXINC_DEBUG. + +1999-12-29 Kaveh R. Ghazi + + * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h. + Otherwise provide a declaration for atexit. + (init_dummy): Make sure dummy call to atexit is nevertheless + called with correct number of args. + + * frame.c: Update comments referring to other files. + + * libgcc2.c: Likewise. + +1999-12-29 Kaveh R. Ghazi + + * cse.c (free_element, get_element): Remove unused prototypes. + + * fold-const.c (extract_muldiv): Initialize variables `op0' and + `op1'. + + * jump.c (invert_exp): Add explicit braces to avoid ambiguous + `else' clauses. + +Wed Dec 29 12:44:54 1999 Donald Lindsay + + * configure.in,configure: case arm for mn10200-*-* now sets + float_format=i32 so that float.h will correctly claim "double" + to be 32 bits. Ran autoconf to generate configure from .in file. + +Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (conditional zero): If op1 is a register, force it into + the same register as op0. + +1999-12-28 Mark Mitchell + + * tree.h (BINFO_BASETYPES): Improve documentation. + +1999-12-28 Kaveh R. Ghazi + + * configure.in (--enable-checking): Use a more portable `for' + loop syntax. + +1999-12-28 Kaveh R. Ghazi + + * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h, + arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use. + + * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h: + Delete files. + + * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED): + Delete descriptions. + + * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h, + m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h, + m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h, + pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h, + xm-svr4.h: Remove all instances of sys_siglist handling. + +1999-12-27 Jakub Jelinek + + * config/sparc/sparc.md (cmp_zero_qi, + cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64, + cmp_zero_extendqidi2_andcc_set): New patterns. + +1999-12-28 Manfred Hollstein + + * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a. + (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define. + (fpgnulib.c, xfgnulib.c): Add rules. + * m68k/t-mot3300-gas: Likewise. + +1999-12-27 Ian Lance Taylor + + * configure.in: Avoid [[ by using test and changequote. Add + changequote required by 1999-12-14 change. + * configure: Rebuild. + +1999-12-27 Clinton Popetz + + * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix. + +1999-12-27 Christophe Jaillet + + * alias.c (nonlocal_reference_p): Add else for disjoint ifs. + * flow.c (find_use_as_address): Likewise. + * function.c (fixup_var_refs_1): Likewise. + (walk_fixup_memory_subreg, fixup_stack_1): Likewise. + * jump.c (invert_exp, redirect_exp): Likewise. + * loop.c (replace_call_address): Likewise. + (count_nonfixed_reads): Likewise. + * rtlanal.c (modified_between_p): Likewise. + (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise. + (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise. + * unroll.c (remap_split_bivs): Likewise. + +1999-12-27 Kaveh R. Ghazi + + * diagnostic.c (v_message_with_decl): Use .* format specifier + instead of building the format specifier width manually. + + * system.h (strsignal): Don't check HAVE_STRSIGNAL when + determining whether to provide a prototype. Remove the + sys_siglist clause in the conditional. + +1999-12-23 Martin v. Löwis + + * fold-const.c (operand_equal_p): Use memcmp to compare string + constants. + Suggested by D. J. Bernstein + +1999-12-17 Jakub Jelinek + + * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure + UNITS_PER_WORD and BITS_PER_WORD are compile time constants when + compiling libgcc2. + * config/mips/mips.h (TARGET_64BIT): Likewise. + * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise. + * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead + of {SI,DI}type and DIunion. Define these types to QI/HI modes on + dsps. Give routines proper names if SI/DI modes are not used. + * longlong.h: Use DWunion instead of DIunion. + +1999-12-26 Zack Weinberg + + * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING, + GC_CHECKING, GC_ALWAYS_COLLECT. + * configure.in: Allow --enable-checking with an argument + listing check modes to enable. + * config.in, configure: Rebuilt. + * ggc-page.c, ggc-simple.c: Define GGC_POISON (and + GGC_ALWAYS_VERIFY for ggc-simple.c) only if + ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if + ENABLE_GC_ALWAYS_COLLECT. + * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING + throughout. + * tree.h, tree.c: Change ENABLE_CHECKING to + ENABLE_TREE_CHECKING throughout. + +Sun Dec 26 07:48:20 1999 Richard Kenner + + * fold-const.c (fold_truthop): Properly check for FP RHS. + +1999-12-24 Mark Mitchell + + * toplev.h (note_deferall_of_defined_inline_function): Declare. + * toplev.c (note_deferral_of_defined_inline_function): New + function, split out from ... + (rest_of_compilation): ... here. Use it. + +Fri Dec 24 12:34:26 1999 Richard Kenner + + * expr.c (store_constructor): Don't call clear_storage if size is + variable. + +1999-12-24 Kaveh R. Ghazi + + * Makefile.in (toplev.o): Depend on loop.h. + + * dwarfout.c: Include tm_p.h. + + * emit-rtl.c (restore_emit_status): Mark parameter with + ATTRIBUTE_UNUSED. + + * final.c (final_scan_insn): Likewise. + + * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump, + flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find, + flow_depth_first_order_compute, flow_loop_pre_header_find, + flow_loop_tree_node_add, flow_loops_tree_build, + flow_loop_level_compute, flow_loops_level_compute, + flow_loop_outside_edge_p): Add prototypes. + (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED. + + * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack): + Mark with ATTRIBUTE_NORETURN. + + * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED. + + * local-alloc.c (no_conflict_p): Likewise. + + * loop.c (insert_bct): Hide definitions of variables with hidden + usage. + (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED. + + * regclass.c (memory_move_secondary_cost): Mark variable `mem' + with ATTRIBUTE_UNUSED. + (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED. + (reg_scan): Likewise. + + * reload.c (find_reloads): Remove unused variables `changed'. + + * reload1.c (reload_reg_class_lower): Don't unnecessarily cast + away const-ness. + (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED. + Remove unused variable `insn'. + + * toplev.c: Include loop.h. + (report_file_and_line): Remove unnecessary prototype. + + * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED. + + * unroll.c (biv_total_increment): Likewise. + +Thu Dec 23 23:15:22 1999 J"orn Rennecke + + * reload1.c (emit_input_reload_insns): Restore old behavior + wrt. 'special' reloads. + +1999-12-23 Zack Weinberg + + * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on + hash.h. (cse.c): Don't depend on hashtab.h. + + * cse.c: Don't include hashtab.h. + (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes + of dead functions. + * ggc-simple.c: Don't include hash.h. + +1999-12-22 Jason Merrill + + * dwarf2out.c (add_abstract_origin_attribute): Call + gen_abstract_function on our function context. + +Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson + + * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H. + +1999-12-23 Michael Hayes + + * config/c4x/c4x.c (c4x_address_cost): Add statement to default + case in switch. + +1999-12-22 Michael Hayes + + * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0 + constraints to "a!r". + +1999-12-21 Mark Mitchell + + * Makefile.in (calls.o): Depend on function.h. + (alias.o): Likewise. + +1999-12-21 Bernd Schmidt + + * reload1.c (emit_reload_insns): Break out code and variables into... + (input_reload_insns, other_input_address_reload_insns, + other_input_reload_insns, input_address_reload_insns, + inpaddr_address_reload_insns, output_reload_insns, + output_address_reload_insns, outaddr_address_reload_insns, + operand_reload_insns, other_operand_reload_insns, + other_output_reload_insns): ... new static variables, and... + (emit_input_reload_insns, emit_output_reload_insns, do_input_reload, + do_output_reload): ... new functions. + +Tue Dec 21 07:06:36 1999 Richard Kenner + + * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0. + +1999-12-21 Michael Hayes + + * md.texi: Add c4x constraints documentation. + +1999-12-21 Martin v. Löwis + + * config/i386/dgux.c (struct option): Rename to + lang_independent_option. + (struct m_options): Add description field. + (output_options): Rename option type, add sep declaration, output + ix86_cpu_string and ix86_arch_string only if set. + (output_file_start): Rename option type. + +Mon Dec 20 23:15:36 1999 Mike Stump + + * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on + stmp-int-hdrs. + (libgcc2.a): Similarly. + +Mon Dec 20 23:06:47 1999 David Edelsohn + + * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss + with W_TYPE_SIZE == 32. Do not fall through to POWER architecture + for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER. + +Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable. + Remove redundant initialization of "frexpon" and "expon". + +Mon Dec 20 15:00:04 1999 Richard Kenner + + * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first. + + * expr.c (store_constructor): New argument SIZE; pass to clear_storage. + (store_constructor_field, expand_expr): Pass new arg. + +1999-12-20 Mark Mitchell + + * Makefile.in (explow.o): Depend on function.h. + + * stor-layout.c (set_sizetype): Fix typo. + +1999-12-20 Bernd Schmidt + + * function.c (cfun): Renamed from current_function. All users + changed. + * function.h (cfun): Rename declaration as well. + + * reload.h (struct insn_chain): Change live_throughout and dead_or_set + to be of type regset_head, not regset. All users changed by adding + address operator. + * reload1.c (new_insn_chain): Don't allocate regsets, just clear them. + +1999-12-20 Michael Hayes + + * config/c4x/rtems.h: New file. + +1999-12-19 Bernd Schmidt + + * reload1.c (spill_failure): Take class of failed reload as argument + and print it. Caller changed. + +Sun Dec 19 07:50:42 1999 Richard Kenner + + * rs6000.h (SUBTARGET_DEFAULT): New macro. + (TARGET_SWITCHES): Allow subtargets to default switches. + * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro. + +1999-12-18 Mark Mitchell + + * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize + in a main program. + +Sat Dec 18 20:42:43 1999 Richard Henderson + + * cccp.c (main): Define __STDC_VERSION__ as necessary. + * cppinit.c (cpp_handle_option): Likewise. + + * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to + determine when to define. + +Sat Dec 18 20:34:00 1999 Richard Henderson + + * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle + cmove with mismatched test and data modes. + +Sat Dec 18 20:30:15 1999 Richard Henderson + + * c-typeck.c (c_expand_start_case): Don't warn for long switch + in system headers. + +Sat Dec 18 16:28:43 1999 Richard Kenner + + * alias.c: Minor reformatting. + * flow.c: Likewise. + * regs.h: Likewise. + * stor-layout.c: Likewise. + * fold-const.c: Likewise. + (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign. + (struct cb_args, const_binop_1, const_binop): Pass type of arg, + not arg itself. + (size_int_wide): Cache nodes even if garbage collecting. + (twoval_comparison_p): Reenable SAVE_EXPR case if operand + of SAVE_EXPR has no side effects. + * cse.c: Move a comment. + * tree.c: Minor reformatting. + (int_size_in_bytes): Return -1 if constant overflows. + +Sat Dec 18 18:30:20 1999 J"orn Rennecke + + * unroll.c (copy_loop_body): Don't treat a REG like a PLUS. + +1999-12-18 10:42 -0800 Zack Weinberg + + * objc/objc-parse.c: Regenerate. This file must be rebuilt + after any change to c-parse.in, even if objc-parse.y didn't + change. Oops. + +1999-12-18 David S. Miller + + * toplev.c (rest_of_compilation): Restore BLOCK tree + reconstruction and branch shortening changes lost in + December 18th change. + +Sat Dec 18 05:29:29 1999 Scott Bambrough + + * config/arm/linux-elf.h: Change all instances of + ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS. + * config/arm/uclinux-elf.h: Likewise. + +1999-12-18 Gabriel Dos Reis + + * toplev.c (notice, vmessage, v_message_with_file_and_line, + v_message_with_decl, file_and_line_for_asm, + 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, vnotice, count_error, + pfatal_with_name, fatal_io_error, need_error_newline, + last_error_function, last_error_tick, announce_function, + default_print_error_function, print_error_function, + report_error_function, fnotice, error_with_file_and_line, + error_with_decl, error_for_asm, error, set_fatal_function, fatal, + _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line, + warning_with_decl, warning_for_asm, warning, pedwarn, + pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to + diagnostic.c + (compile_file): Use fnotice instead of notice. Adjust call. + + * diagnostic.c: New file. + + * Makefile.in (OBJS): Include diagnostic.o + (diagnostic.o): Define dependence. + +1999-12-18 Michael Hayes + + * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0). + Tweak formatting. + +1999-12-18 Michael Hayes + + * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re. + +1999-12-17 13:21 -0800 Zack Weinberg + + * fixtests.c (is_cxx_header): New fn, split out of + double_slash_test. + (else_endif_label): Allow "#endif // comment" in C++ headers, + as determined by is_cxx_header. + * fixfixes.c (else_endif_label_fix): Update comment. + * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not + a tty. + * genfixes: Correct double thinko in commandline parsing. + * hackshell.tpl: Generate correct sh syntax for bypass + entries. + + * inclhack.def (all): Whenever an inserted preprocessor + conditional is split over multiple lines, use double + backslashes in this file so the fixed header will be readable. + + (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h + and add bypass entry for correct version of this header. + (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h. + (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h. + + (hpux8_bogus_inlines): New fix, split from... + (ultrix_atof_param) ... here. + (math_expression): Add bypass entry keyed to glibc comment + indicating the problem has been dealt with; disable + unnecessary sed operations; update commentary. + (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max, + add select and bypass entries, simplify shell operation. + (math_huge_val_ifndef): Split from math_gcc_ifndefs. + + (ip_missing_semi, rs6000_param, tinfo_cplusplus, + ultrix_atof_param): Add select entry. + (stdio_va_list, sunos_mather_decl): Add bypass entry. + (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the + comments with the fixes they describe. + + * c-parse.in (string action): Do not warn about ANSI string + concatenation in system headers. Affects C parser only. + * c-parse.y, c-parse.c, c-parse.h: Rebuild. + +1999-12-16 Jakub Jelinek + + * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if + compiling libgcc2 the macro depends always on arch cpp defines. + +Fri Dec 17 10:34:16 1999 Richard Earnshaw + + * loop.c (insert_loop_mem): Don't record MEMs from inside + EXPR_LISTs. + +Fri Dec 17 12:08:11 MET 1999 Jan Hubicka + + * regclass.c (regclass): Do not use flowgraph when not optimizing. + + * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV + notes too, create one when replacement failed, attempt to simplify + resulting notes. + (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL + or REG_EQUIV notes. + +1999-12-16 Mark Mitchell + + * crtstuff.c (__dso_handle): Declare. + (__cxa_finalize): Likewise. + (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is + non-NULL. + + * invoke.texi: Document -fuse-cxa-atexit. + + * tree.h (ptr_type_node): Document. + (const_ptr_type_node): Likewise. + +Fri Dec 17 01:32:38 MET 1999 Jan Hubicka + + * regmove.c (optimize_reg_copy_1): Ignore LOOP notes. + (optimize_reg_copy_2): Likewise. + (optimize_reg_copy_3): Likewise. + (fixup_match_2): Likewise. + (regmove_optimize): Likewise. + (fixup_match_1): Liekwise. + + * i386.md (HI to SImode promoting splitters): Rewrite. + (pushsf mem peep2): New. + (testhi to andhi peep2): Remove. + * i386.h (x86_promote_QImode): New. + (TARGET_PROMOTE_QImode): New. + (PREDICATE_CODES): Add promotable_binary_operator. + * i386.c (x86_promote_QImode0: New. + (promotable_binary_operator): New. + * i386-protos.h (promotable_binary_operator): New. + + * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify + condition. + (one_cmpl?i*): Pass "NOT" to unary_operator_ok. + +1999-12-16 Mark Mitchell + + * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H. + * function.c (insert_block_after_note): Remove. + (retrofit_block): Likewise. + (identify_blocks): Fix indentation. + (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a + NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END. + * function.h (insert_block_after_note): Remove prototype. + (retrofit_block): Likewise. + * integrate.c (expand_inline_function): Don't call + find_loop_tree_blocks. Use expand_start_bindings_and_block, not + just expand_start_bindings. Use the block_map to remap old + NOTE_BLOCKs to new ones. + (integrate_decl_tree): Keep track of remapped blocks. + * integrate.h (struct inline_remap): Add block_map. + * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set + NOTE_BLOCK on the notes. + (expand_start_bindings): Rename to ... + (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK. + (expand_end_bindings): Set NOTE_BLOCK. + * toplev.c (rest_of_compilation): In function-at-a-time-mode, + reconstruct the BLOCK tree. + * tree.h (expand_start_bindings): Macroize. Call ... + (expand_start_bindings_and_block): New function. + +1999-12-16 Jakub Jelinek + + * config/sparc/sparc.c (print_operand): Cast fprintf arguments + to match the format. + +1999-12-16 David S. Miller + + * expr.c (emit_move_insn_1): Only emit clobbers if one of + the outputs is a SUBREG. + * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th + change. + + * config/sparc/sparc.c (epilogue_renumber): Add default case + to switch stmt. + +Thu Dec 16 11:33:57 MET 1999 Jan Hubicka + + * toplev.c (rest_of_compilation): Run branch shortening after + reg-stack. + + * regclass.c (loop_depth): Remove + (scan_one_insn): Do not handle LOOP_NOTE insns. + (regclass): Go through basic blocks and set loop_cost + +Thu Dec 16 02:56:25 1999 Zack Weinberg + + * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too. + +Thu Dec 16 10:43:35 MET 1999 Jan Hubicka + + * i386.md (movqi): Use "nonimmediate_operand" for output operand. + (movstrictqi, movdi, movsf, movdf, movxf): Likewise. + (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise. + +Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com) + + * loop.c (insert_loop_mem): Ignore memory clobbers. + + * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0) + to (OP A B). + +Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com) + + * profile.c: Remove redundant #include "output.h". + + * h8300.md (HImode preinc peephole): Fix typo. + +1999-12-15 Jason Merrill + + * function.c (retrofit_block): Abort if we don't find a suitable insn. + (insert_block_after_note): Abort if we don't have a previous block. + Remove FN parameter. + * function.h: Adjust. + +1999-12-15 Mark Mitchell + + * builtins.c (expand_builtin_mathfn): Make sure not to expand the + argument more than once. + +1999-12-15 Jason Merrill + + * stmt.c (expand_decl): Expand upper bound of a dynamic array. + +1999-12-15 Jakub Jelinek + + * expr.c (emit_group_load): Use dst mode if src is VOIDmode. + +Wed Dec 15 16:11:55 MET 1999 Jan Hubicka + + * function.c (PREFERRED_STACK_BOUDNARY): Provide default value. + (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY, + update stack_alignment_needed. + (prepare_function_start): Initialize stack_alignment_needed + * function.h (struct function): Add field stack_alignment_needed. + +Wed Dec 15 14:55:24 1999 J"orn Rennecke + + * caller-save.c (insert_one_insn): Returns struct insn_chain *. + Handle live_throughout / dead_or_set instead of live_before / + live_after. + (save_call_clobbered_regs): Get register livenessinformation from + chain->live_throughout. + (add_stored_regs): New function. + (insert_restore, insert_save): Add restored / saved registers to + dead_or_set. + * global.c (reg_dies): New parameter chain. + (reg_becomes_live): Third parameter is regs_set now. + Changed all callers. + (reg_dies): New parameter chain. Changed all callers. + (build_insn_chain): Set live_throughout instead of + live_before / live_after. + * reload.h (struct insn_chain): Replace members live_before / + live_after with live_throughout / dead_or_set. + * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set + instead of live_before / live_after. + (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise. + (order_regs_for_reload, find_reg, finish_spills): Likewise. + (choose_reload_regs_init): Likewise. + * stupid.c (current_chain, find_clobbered_regs): Delete. + (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set + instead of chain->live_before / chain->live_after. + (mark_hard_ref): New function. + (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout. + +1999-12-15 David S. Miller + + * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT. + +Wed Dec 15 15:05:30 MET 1999 Jan Hubicka + + * flow.c (calculate_loop_depth): Make global, remove prototype, + rewrite to use new loop infrastructure. + (find_basic_block): Remove calculate_loop_depth call. + * toplev.c (rest_of_compilation): Call find_basic_block. + * output.h (calculate_loop_depth): Declare. + + * flow.c (dump_flow_info): Dump loop_depth. + (flow_loops_nodes_find): Increase loop_depth for basic block in the + body. + (flow_loops_find): Initialize the loop_depth for each basic block. + +1999-12-15 Jason Merrill + + * tree.c (decl_function_context): Handle virtual functions. + + * tlink.c (scan_linker_output): Don't look in demangled name when + looking for linker output keywords. + + * dwarfout.c (output_type): We can defer namespace-scope classes. + +Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com) + + * regclass.c (record_reg_classes): Update comment for merging + register class preferences in reg->reg copies. Tighten conditions + for merging register class preferences in reg->reg copies. + +Wed Dec 15 02:19:32 1999 David Edelsohn + + * rs6000.md (tablejumpdi): Generate DImode LABEL_REF. + +1999-12-14 Geoff Keating + + * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete. + (INIT_SECTION_ASM_OP): Delete. + (FINI_SECTION_ASM_OP): Delete. + (STARTFILE_SPEC): Define to hold just crtbegin.o. + +1999-12-14 Jason Merrill + + * dwarf2out.c (add_abstract_origin_attribute): Do call abort if + the abstract origin wasn't emitted. + + * dwarf2out.c (class_scope_p): New fn. + (gen_subprogram_die): Use it. + (gen_variable_die): Use it. Tweak logic. + (gen_struct_or_union_type_die): Check context_die to determine + if we're function-local. + (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE. + +1999-12-14 Bernd Schmidt + + * loop.c (check_dbra_loop): Can't reverse a biv that has + maybe_multiple set. + +1999-12-14 Nick Clifton + + * config/arm/arm.c: Add support for -mcpu=arm720 command line + switch. + +Tue Dec 14 18:13:32 1999 J"orn Rennecke + + * loop.c (strength_reduce): Fix sign of giv lifetime calculation + for givs made from biv increments. + +Tue Dec 14 08:11:27 1999 Richard Henderson + + * configure.in (alpha-osf, alpha-linux): Handle ev6[78]. + * alpha.c (override_options): Recognize -mcpu=ev67. + * alpha.h (CPP_CPU_EV67_SPEC): New. + (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it. + (EXTRA_SPECS): Update. + +Tue Dec 14 08:04:28 1999 Richard Henderson + + * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as + appropriate for -lang-c89 and -std=*. + * cppinit.c (cpp_handle_option): Likewise. + (new_pending_define): New, split out from cpp_handle_option. + * gcc.c (default_compilers): Don't define __STRICT_ANSI__ + or enable trigraphs for -ansi/-std=*. + + * ginclude/stdarg.h (__va_copy): New. + (va_copy): Don't define for C89. + +Tue Dec 14 08:37:27 CST 1999 Clinton Popetz + + * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns + for long long multiply-accumulate. + +Tue Dec 14 13:51:38 MET 1999 Jan Hubicka + + * regclass.c (scan_one_insn): Set loop_cost to 1 when + optimizing for size. + +1999-12-14 Bernd Schmidt + + * reload1.c (reload): Can't avoid select_reload_regs/finish_spills + if something changed. Back out that part of yesterday's changes. + + * loop.c (loop_max_reg): New static variable. + (loop_optimize): Initialize it. Eliminate one unnecessary call to + max_reg_num. + (scan_loop): Call reg_scan_update whenever we may have added new + registers, and update loop_max_reg. + +Tue Dec 14 12:07:29 MET 1999 Jan Hubicka + + * regclass.c (record_reg_classes): Do not do the copying preferrencing + when source does not die. + + * regclass.c (record_reg_classes): Handle INOUT operands properly. + +1999-12-14 Jakub Jelinek + + * config/sparc/linux64.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC + variants on Linux. + * config/sparc/linux.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Likewise. + * config/sparc/linux-aout.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Likewise. + + * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32. + (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64, + not %g2. + (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2 + as sparc64 block profiling register. + * config/sparc/sparc.c (sparc_override_options): Allow block + profiling with -m32. + (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block + profiling register. + * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these + macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64. + * config/sparc/sol2.h (MACHINE_STATE_*): Likewise. + + * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing + for sparc64. + * config/sparc/sparc.h: Likewise. + * config/sparc/xm-sysv4-64.h: Likewise. + * config/float-sparc.h: Likewise. + * glimits.h: Likewise. + * longlong.h: Likewise. + + * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1. + (ASM_IDENTIFY_GCC): Remove. + +1999-12-14 Bernd Schmidt + + * combine.c (combine_simplify_rtx): Don't make shared rtl. + (simplify_logical): Likewise. + +1999-12-14 Mumit Khan + + * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin. + * cppfiles.c (INO_T_EQ): Likewise. + +1999-12-14 Mumit Khan + + * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support. + * i386/mingw32.h (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + * i386/uwin.h (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + + * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition. + * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise. + +Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com) + + * combine.c (combine_simplify_rtx): Fix order of checks for + (ashiftrt foo C) -> (lt foo (const_int 0)) simplification. + +1999-12-13 Clinton Popetz + + * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out + 12/10/99 change, reapplied to merged-arm-thumb-backend-branch. + +1999-12-10 Bernd Schmidt + + * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is + defined. + * regclass.c (inv_reg_alloc_order): New array. + (regclass_init): If REG_ALLOC_ORDER is defined, initialize it. + + * reload.h (struct insn_chain): Delete fields group_size, group_mode, + counted_for_groups, counted_for_nongroups. Add fields rld and + n_reloads. + * reload.c (push_secondary_reload): Don't set nongroup field of + new reloads. + (push_reload): Likewise. + (find_reloads): Delete code to compute nongroup fields. + * reload1.c (reload_insn_firstobj): New static variable. + (pseudos_counted, spilled_pseudos): Now of type regset_head. All + users changed. + (calculate_needs, find_tworeg_group, find_group, possible_group_p, + count_possible_groups, modes_equiv_for_class_p, new_spill_reg, + dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete + functions. + (count_pseudo, select_reload_regs, copy_reloads, find_reg): New + functions. + (struct hard_reg_n_uses): Deleted. + (potential_reload_regs): Deleted. + (init_reload): Initialize spilled_pseudos and pseudos_counted. + (reload): Don't try to allocate reload registers if we already know + we have to make another pass. Call select_reload_regs. Free memory + starting with reload_firstobj when starting another pass. + Don't allocate spilled_pseudos. + (calculate_needs_all_insns): Call copy_reloads for an insn that + needs reloads; don't call calculate_needs. + (spill_cost): New static array. + (used_spill_regs_local): New static variable. + (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code + to compute potential_reload_regs. + (find_reload_regs): Completely rewritten to use find_reg. + (allocate_reload_reg): Don't test counted_for_groups or + counted_for_nongroups. Lose NOERROR arg and code to give an error; + all cllers changed. + (choose_reload_regs): Add fallback code that uses the existing + register allocation from find_reload_regs. + +Mon Dec 13 00:54:14 1999 Philippe De Muyter + + * flow.c (create_edge_list): Cast xmalloc return value. + +Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com) + + * doprnt.c: Remove incorrect comment closure. + + * cse.c: Fix a few minor whitespace goofs. + +1999-12-13 Don Bowman + + * mips/vxworks.h: Fix problem with comment termination. + (EXTRA_SECTIONS): Add in_sbss. + (EXTRA_SECTION_FUNCTIONS): Corresponding changes. + +1999-12-12 David S. Miller + + * cse.c (struct cse_reg_info): Add hash_next member, + reorder rest of struct for better packing on 64-bit + hosts. + (cse_reg_info_tree): Kill. + (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash, + REGHASH_FN): New custom pow2 hash mechanism. + (NBUCKETS): Kill. + (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to + use a pow2 hash table. + (get_cse_reg_info): Rework to use new REGHASH. + (new_basic_block): Likewise, use HASH_SIZE, and inline + free_element call. + (remove_from_table): Rework to use HASH_SIZE/HASH_MASK, + and inline free_element call. + (lookup_as_function, insert, flush_hash_table, invalidate, + remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, + invalidate_for_call, use_related_value, find_comparison_args, + fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise. + (hash_cse_reg_info, cse_reg_info_equal_p, free_element, + get_element): Kill. + +Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_basic_block): Free qty_table consistently. + +1999-12-12 David S. Miller + Jakub Jelinek + + * config/sparc/sparc.md (movtf reg/reg split): Don't generate + SUBREGs by hand, gen the appropriate hard reg directly. + (movtf reg/mem split): Likewise and alter_subreg on destination + if necessary. + (movtf mem/reg split): Similarly. + (movdf_cc_sp64): Rename from hidden pattern. + (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64. + (movtf_cc_sp64, following split): New pattern and splitter. + (movdf_cc_reg_sp64): Rename from hidden pattern. + (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require + TARGET_HARD_QUAD. + (movtf_cc_reg_sp64, following split): New pattern and splitter. + +1999-12-12 Stephen L Moshier + + * loop.c (load_mems): Don't hoist written floating point mem + if -ffloat-store. + +1999-12-12 Mark Mitchell + + * except.h (struct eh_queue): Add `next' pointer. + (struct eh_status): Make x_ehqueue a pointer. + (push_ehqueue): Declare. + (pop_ehqueue): Likewise. + * except.c (expand_eh_region_end): Adjust now that ehqueue is a + pointer. + (expand_fixup_region_end): Likewise. + (expand_leftover_cleanups): Likewise. + (push_ehqueue): Define. + (pop_ehqueue): Likewise. + (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather + than doing it inline. + (expand_start_all_catch): Adjust now that ehqueue is a + pointer. + (mark_eh_queue): Mark all level of the queue. + (mark_eh_status): Adjust now that ehqueue is a + pointer. + (init_eh_for_function): Allocate ehqueue. + (free_eh_status): Free it. + * stmt.c (expand_cleanups): Save the ehqueue around the cleanup + expansion for a fixup. + +1999-12-12 Kaveh R. Ghazi + + * gthr-single.h (__gthread_active_p): Add prototype arguments. + + * libgcc2.c (__udivmoddi4): Remove unnecessary decls. + (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg, + __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret, + function_ptr, getpagesize, __enable_execute_stack, + __enable_execute_stack, __clear_insn_cache, + __enable_execute_stack, __do_global_dtors, __do_global_ctors, + _cleanup, _exit, __default_terminate, __terminate_func, + __terminate, __empty, __throw, new_eh_context, + eh_context_initialize, eh_context_static, eh_context_specific, + get_eh_context, __get_eh_context, __get_eh_info, + init_reg_size_table, eh_threads_initialize, + __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow, + __unwinding_cleanup, throw_helper, __throw, __rethrow, + __pure_virtual): Add prototype arguments. + (__bb_exit_func): Cast a sizeof to long when comparing against one. + Cast a signed value to unsigned long when comparing against one. + (new_eh_context): Wrap in _GTHREADS macro. + (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at + declaration. + (in_reg_window): Mark parameters with __attribute__ ((__unused__)). + (throw_helper): Initialize variables `handler_p' and `pc_p'. + +1999-12-11 Kaveh R. Ghazi + + * combine.c (record_promoted_value): Remove unused variable + `links2'. + + * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'. + + * global.c (record_conflicts): Likewise for `j'. + + * genoutput.c (output_insn_data): Don't unnecessarily cast away + const-ness. + +1999-12-11 Kaveh R. Ghazi + + * i386-protos.h (output_387_binary_op, output_fix_trunc, + output_fp_compare): Constify a char*. + + * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add + static prototypes. + (override_options, ix86_comp_type_attributes, print_operand, + output_387_binary_op, output_fix_trunc, output_fp_compare): + Constify a char*. + (ix86_sched_reorder): Mark parameter `clock_var' with + ATTRIBUTE_UNUSED. + + * i386.h (DEBUG_PRINT_REG): Constify a char*. + +Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco + + * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third + operand, for use in the Java front-end. + +1999-12-10 Ben Collins + + * configure.in: Fix typo for "-64" in 64bit as check. + * configure: Rebuilt. + +1999-12-10 Jakub Jelinek + + * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where + appropriate. + +1999-12-10 Kaveh R. Ghazi + + * c-parse.in (string): With -Wtraditional, warn if ANSI string + concatenation is utilized. + + * invoke.texi (-Wtraditional): Document it. + +1999-12-10 Kaveh R. Ghazi + + * flow.c (flow_loops_dump): Avoid ANSI string concatenation. + Cast a ptrdiff_t to long and pass it to printf with %ld. + +1999-12-10 Geoff Keating + + * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no + 68881, we have no 68881 registers at all. + (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT + value in a 68881 register if it is available. + +1999-12-10 Clinton Popetz + + * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns + for long long multiply-accumulate. + +1999-12-10 Bernd Schmidt + + * loop.c (insert_loop_mem): Undo last change. + +1999-12-10 David S. Miller + + * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p): + New functions. + * config/sparc/sparc-protos.h: Add them. + * config/sparc/sparc.h: Add them to PREDICATE_CODES. + (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S + constraints which use those helpers. + (EXTRA_CONSTRAINT): Use this new macro. + * md.texi: Update sparc target constraints documentation. + * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg, + movsf_const_high, movsf_const_lo, movsf_insn): Delete. + (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0, + movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns. + (movsf high/lo_sum split): Rework for new patterns. + (movsf expander): Allow storing fp_zero to memory if ! live_g0. + +1999-12-09 Gavin Romig-Koch + + * c-common.c (c_common_nodes_and_builtins): + Create __builtin_ptrdiff_t and __builtin_size_t. + +Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com) + + * pa/elf.h (MAX_OFILE_ALIGNMENT): Define. + +Fri Dec 10 00:53:10 1999 J"orn Rennecke + + * regclass.c (globalize_reg): Re-instate test that allows + fixed registers to be declared as a variable even after functions + are defined. + +Fri Dec 10 00:52:13 MET 1999 Jan Hubicka + + * i386.md (cpu attribute): Add "athlon". + (athlon_decode): New attribute. + (Athlon scheduling units definitions): New. + (fcmp and shld patterns): Set athlon_decode to "vector". + * i386.c (athlon_cost): New. + (m_ATHLON): New. + (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, + x86_use_sahf): Set for Athlon. + (x86_use_fiop): Unset for Athlon. + (override_options): Define Athlon alignments and "athlon" name. + (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon. + * i386.h (TARGET_ATHLON): New. + (enum processor_type): Add PROCESSOR_ATHLON. + (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__" + for CPU_DEFAULT==5 + (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon. + +1999-12-09 Andreas Jaeger + + * loop.c (record_biv): Declare parameter as int. + + * config/i386/i386-protos.h: Declare long_memory_operand. + +1999-12-09 Mark Mitchell + + * tree.c (copy_node): Do zero the TREE_CHAIN, even for an + EXPR_WITH_FILE_LOCATION. + +Thu Dec 9 11:36:24 MET 1999 Jan Hubicka + + * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand + in expander. + + * flow.c (recompute_reg_usage): Use basic block info to get loop_depth. + + * combine.c (try_combine, distribute_notes): Remove REG_N_REFS + updating code. + +1999-12-09 Jakub Jelinek + + * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs + default on linux64 again. + * config/sparc/t-linux64: Add mno-app-regs and non-medlow code + models for multilibing. + * genmultilib: Accept | as alternative separator within a set in + MULTILIB_OPTIONS. + + * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define. + + * calls.c (precompute_arguments): Make sure initial_value contains + value pseudo which CSE expects. + * cse.c (struct set): New entry orig_src. + (cse_insn): Set it early on entry, use it for libcall EQUIV note + replacement. + +Wed Dec 8 22:24:15 1999 Richard Henderson + + * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns. + +1999-12-08 Bernd Schmidt + + * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops. + +1999-12-08 Jakub Jelinek + + * config/sparc/sparc.c (ultra_cmove_results_ready_p, + ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix. + + * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits + if TARGET_ARCH32. + + * longlong.h: Merge in changes from glibc. + Also don't clobber %g2 register in 32bit SPARC assembly, so that + -mno-app-regs libgcc can be compiled. + * libgcc2.c: Add defines so that the updated longlong.h + can be used in libgcc2.a. Also, make sure on most architectures + (at least on all which have optimized code in longlong.h defined + for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests. + +1999-12-08 Alexandre Oliva + + * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that + `-m EMULATION' is added to non-default LINK_ARCH_SPECs. + * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker + is GNU ld. + * configure: Rebuilt. + +Wed Dec 8 03:45:40 1999 Richard Henderson + + * alpha.c (secondary_reload_class): For !BWX, sub-simode + outputs require a register. + +1999-12-08 Brendan Kehoe + + * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi + _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to + functions like dptoul will be resolved. + (libgcc2.a): Make sure that the object files from DPBIT are named + differently (prefix `_dp') from those that would be coming from + FPBIT. + +1999-12-08 Alexandre Oliva , Jakub Jelinek + + * configure.in: When target is sparc* and tm_file contains 64, + test for 64bit support in assembler. If not supported, remove + sparc/t-sol2-64 from target-dependent Makefile fragments. + (AS_SPARC64_FLAG): Define to the assembler flag for 64bit. + (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags. + (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache. + * acconfig.h (AS_SPARC64_FLAG): Added. + * configure, config.in: Rebuilt. + * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit + support. Use AS_SPARC64_FLAG. + +1999-12-07 Jakub Jelinek + + * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers + suitable for holding OFmode values so that gcc works with complex + quad long doubles. + (hard_64bit_mode_classes): Likewise. + + * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern + so that it is actually matched. + (sethi_di_medlow): Likewise. + + * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L + as legitimate constant if -mvis. + * config/sparc/sparc.md (movtf): Likewise. + (clear_sf): Use const_double_operand. + (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns. + + * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function. + * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype. + * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_* + routines, _Qp_* cannot be handled like that now. + (INIT_TARGET_OPTABS): Likewise. + * config/sparc/sparc.md (cmptf): Accept soft float ARCH64. + (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call + sparc_emit_float_lib_cmp if ARCH64 and soft float. + (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2, + floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3, + divtf3, sqrttf3): New expanders. + (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq, + floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq, + addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from + non-_hq patterns. + + * configure.in (sparc64-*-linux*): Use posix threads if enabled. + * configure: Rebuilt. + * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no + -mcpu is given and we're doing 64bit compiles. + +Tue Dec 7 19:22:06 1999 Richard Henderson + + * loop.h (struct induction): Add multi_insn_incr. + * loop.c (basic_induction_var): New multi_insn_incr argument. + Set it if we search back through previous insns for the biv. + (record_biv): New multi_insn_incr argument; fill in struct induction. + (strength_reduce): Discard an iv with multiple bivs, any of + which require multiple insns to increment. + +1999-12-07 Martin v. Löwis + + * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std + documentation. + +1999-12-06 David S. Miller + + * combine.c (check_promoted_subreg): Do not conditionalize this upon + PROMOTE_FUNCTION_RETURN. + +Mon Dec 6 15:12:14 1999 Jim Wilson + + * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for + and handle REG_UNUSED note on insn. + + * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set + inner_mask instead of mask. + +1999-12-06 Brendan Kehoe + + * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be + zero if there was an error. + +1999-12-06 Jakub Jelinek + + * config/sparc/sparc.md (return_losum_di): Fix typo in asm + output string. + + * longlong.h: Fix clobbers in SPARC asm statements. + + * config/sparc/sparc.c (input_operand): Allow HImode and QImode + valid sethi operations when TARGET_ARCH64. + + * calls.c (save_fixed_argument_area): If save_mode is BLKmode, + always use move_by_pieces to avoid infinite recursion. + (restore_fixed_argument_area): Likewise. + + * combine.c (check_promoted_subreg, record_promoted_value): New + functions. + (combine_instructions): Use them to retain nonzero and sign bit + information after SUBREGs are eliminated by optimizations in + this pass if PROMOTE_FUNCTION_RETURN. + + * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document + .register declaration. Don't use variables with __ prefixes. + +Mon Dec 6 12:24:52 1999 Richard Kenner + + * fold-const.c (optimize_bit_field_compare): Only use one mode + for both RHS and LHS in non-constant case. + +1999-12-06 Nathan Sidwell + + * frame.c (start_fde_sort): Only allocate erratic array, if + linear one was allocated. Return allocated flag. + (fde_insert): Only insert, if there's a valid array. + (fde_end_sort): Split, sort and merge if linear and erratic + arrays exist, else just sort linear one. + (search_fdes): New function. Linear search through original fde + structure. + (frame_init): Permit multiple initializations. Cope with + memory shortages. + (find_fde): Fallback on linear search, if failed to sort array. + (__deregister_frame_info): Only free sorted array, if we + allocated it. + +1999-12-06 Jakub Jelinek + + * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro. + +1999-12-05 Jakub Jelinek + + * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi. + +1999-12-05 Mark Mitchell + + * tree.h (special_function_p): Declare. + * calls.c (special_function_p): Make it global. Don't take `name' + as a parameter. Fix typo in 1999-11-28 change. + (expand_cal): Adjust. + +1999-12-04 Mark Mitchell + + * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting. + * tree.h (EXPR_WFL_FILENAME): Define in terms of + EXPR_WFL_FILENAME_NODE. + (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than + the TREE_CHAIN. + * print-tree.c (print_note): Print TREE_PRIVATE and + TREE_PROTECTED. + + * dwarf2out.c (add_abstract_origin_attribute): Don't abort when + the original die cannot be found. + + * varray.h (varray_head_tag): Add elements_used. + (VARRAY_PUSH): New macro. + (VARRAY_POP): Likewise. + (VARRAY_TOP): Likewise. + Add variants of VARRAY_PUSH and VARRAY_POP for all varray element + types. + * varray.c (varray_init): Initialize elements_used. + * Makefile.in (BASIC_BLOCK_H): Add varray.h. + (INTEGRATE_H): New variable. + (integrate.o): Depend on INTEGRATE_H. + (unroll.o): Likewise. + + * function.h (insert_block_after_note): Declare. + * function.c (insert_block_after_note): Split out from ... + (retrofit_block): ... here. + + * stmt.c (expand_fixup): Fix typo in comment. + +Sat Dec 4 14:13:38 MET 1999 Jan Hubicka + + * regmove.c (copy_src_to_dest): Remove loop_depth parameter. + (optimize_reg_copy_1): Remove REG_N_REFS updating code. + (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise. + (regmove_optimize, fixup_match_1): Likewise. + +1999-12-05 Michael Hayes + + * flow.c (flow_loops_dump): Add missing argument when calling + flow_loop_nested_p. + +1999-12-04 Geoffrey Keating + Greg McGary + + * c-common.c (enum attrs): Add A_NO_LIMIT_STACK. + (init_attributes): Add A_NO_LIMIT_STACK. + (decl_attributes): Handle A_NO_LIMIT_STACK. + * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK. + * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]: + Handle stack bounds checking. + * flags.h (flag_stack_check): Use the word 'probe' rather than + 'check', because the flag doesn't actually cause any checking to + be done. + * function.c (expand_function_start): Set + current_function_limit_stack. + * function.h (struct function): Add limit_stack. + (current_function_limit_stack): Define. + * invoke.texi (Code Gen Options): Document new options. + * rtl.h: Declare stack_limit_rtx. + * toplev.c (stack_limit_rtx): New variable. + (decode_f_option): Handle new options -fstack-limit-register=REG, + -fstack-limit-symbol=IDENT, -fno-stack-limit. + (main): Add stack_limit_rtx as GC root. + * tree.h (DECL_NO_LIMIT_STACK): New macro. + (struct tree_decl): New member no_limit_stack. + + * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle + stack_limit_rtx. + * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx. + (conditional_trap+1): Get new mnemonic correct. + (conditional_trap+2): New pattern for DImode traps. + + * config/m68k/m68k.c (output_function_prologue): Handle + stack_limit_rtx. + * config/m68k/m68k.md (trap): New insn. + (conditional_trap): New insn. + * md.texi (Standard Names): Document `trap' and + `conditional_trap'. + * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence() + so a cc0 setter doesn't get emitted at some random place in the + function. + + * config/i960/i960.md (trap): New insn. + (conditional_trap): New expander. + (conditional_trap+1, conditional_trap+2): New insns for signed + and unsigned cases. + * config/i960/i960.c (i960_function_prologue): Use + STARTING_FRAME_OFFSET. Handle stack_limit_rtx. + +Thu Dec 2 21:22:45 1999 Greg McGary + Geoffrey Keating + + * flags.h (warn_padded, warn_packed): Add global var decls. + * toplev.c (warn_padded, warn_packed): Add global var defns. + (W_options): Add warnings `-Wpacked' and `-Wpadded'. + * stor-layout.c (layout_record): Add local variable `type' + to hold often-used TREE_TYPE (field). Add local variable + `unpacked_align' to hold alignment that would be in force + if no `packed' attribute were present. Warn if `packed' attribute + is unnecessary, or even harmful. Warn when gcc inserts padding + to satisfy alignment requirements of members. Use NULL_TREE + when checking whether var_size is set. + * invoke.texi: Document new flags. + +1999-12-03 Nathan Sidwell + + * frame.c (fde_split): Reimplement to avoid variable sized array. + +Thu Dec 2 18:59:48 1999 J"orn Rennecke + + * combine.c (try_combine): Before fixing up LOG_LINKS for the + i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL. + +1999-12-02 Gavin Romig-Koch + + * invoke.texi: Document the mips option -mno-crt0 + +1999-12-02 Mike Karr + + * cccp.c (argdata): Added free_ptr member. + (macroexpand): Initialize free_ptr of each argument. When an + argument's buffers are freed, if the argument's free_ptr corresponds + to a buffer on the input stack, then return the free_ptr to that stack + frame, otherwise, free it. + (macarg): If an argument begins and ends on the same input stack level, + then transfer the free_ptr of that buffer to the argument in case + the stack is popped during the processing of a subsequent argument. + +1999-12-02 Bernd Schmidt + + * loop.c (note_reg_stored): New function. + (struct note_reg_stored_arg): New structure. + (try_copy_prop): Change to be more conservative; only replace within + one extended basic block and stop replacing if a store to the + replacement reg is seen. + +1999-12-02 Nick Clifton + + * config/fp-bit.c: Initialize all fields of the NAN + constants. + + * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc + to HANDLE_PRAGMA. + +Wed Dec 1 18:16:38 1999 Jan Hubicka + + * i386.md (extend?f?f2): Force the input into a register, not + the output. + +1999-12-01 Jakub Jelinek + + * config/sparc/sparc.md (movsf_const_intreg): Add constraints for + regclass' sake. + (movdf_const_intreg_sp32): Likewise. Prefer the memory load + alternative because setting up 64bit constant is usually costly, + especially when reload is in progress or completed. + (movdf_const_intreg_sp64): Likewise. + (movdf_const_intreg split): Fix building up constants when + HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit. + +Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com) + + * combine.c (if_then_else_cond): Use const_true_rtx instead of + const1_rtx for return values in EQ/NE comparison against (const_int 0) + case. + + * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers. + (asm_file_start): Emit .am33 into assembly file when compiling for + the AM33. + (print_operand_address): Handle POST_INC addresses. + (can_use_return_insn, initial_offset): Check AM33 registers too. + (expand_prologue): Check & save AM33 registers too. + (expand_epilogue): Similarly. + (secondary_reload_class): Handle AM33 specific secondary reloads. + (output_tst): Emit efficient code for the AM33 too. + * mn10300.h (CPP_SPEC, TARGET_AM33): Define. + (TARGET_SWITCHES): Add -mam33 switch. + (FIRST_PSEUDO_REGISTER): Handle new AM33 registers. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise. + (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise. + (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise. + (enum reg_class, REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. + (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. + (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise. + (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise. + (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. + (HAVE_POST_INCREMENT): Define. + (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33. + (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address. + * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants. + (mulsi, andsi, iorsi, xorsi, notsi): Likewise. + (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise. + (zero_extend to SI from QI/HI): Likewise. + (sign_extend to SI from QI/HI): Likewise. + (mulsidi3, umulsidi3): New patterns for the AM33. + (tstsi with zero extension from QI/HI): Add AM33 variants. + (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too. + (return_internal_regs, store_movm): Handle new AM33 registers. + * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define. + (LIBGCC, INSTALL_LIBGCC): Likewise. + * invoke.texi: Document new flags. + +Fri Nov 26 10:59:12 CET 1999 Jan Hubicka + + * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition. + (addsi3_carry): Likewise. + (sbbsi3_cc): Add "binary_operator_ok" to the condition. + (sbbsi3_carry): Likewise. + (mulsi3): Rewrite to expander, ensure that only one operand is memory. + (mulhi3): Likewise. + (test?i_1): Ensure that only one operand is memory. + (conditional move patterns): likewise. + (shift and rotate patterns): Rewrite to expander, add + "binary_operator_ok" to the condition. + + * i386.md (QImode patterns): Remove '*' before the 'r' constraints. + * i386.h (procesor_costs): Add movzbl_load field. + (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in + non-Q registers, accept DImode registers anywhere. + (Q_CLASS_P): New. + (MEMORY_MOVE_COST): Calculate QImode moves correctly. + * i386.c (*_cost): Set value for movxbl_load field. + + * (addsi): New add to lea splitter. + (ashlsi): Likewise. + (lea to add/shift peep2): New. + +1999-12-01 Mark Salter + + * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0. + * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0. + * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0. + +Tue Nov 30 15:20:52 MET 1999 Jan Hubicka + + * i386.c (ix86_expand_move): Never add clobbers to move patterns. + * i386.md (movsi_xor): New. + (movsi_or): New. + (movsi_1, movhi_1, movqi_1): Remove. + (movsi_2): Rename to movsi_1. + (movhi_2): Rename to movhi_1. + (movqi_2): Rename to movqi_1. + (movdi_1): Remove; remove splitter. + (movdi_2): Rename to movdi_1. + (divmodsi4 splitter): Do not emit clobbers for move patterns. + (long move peep2): Do not create QI or HI mode mov0s + (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole. + + * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns, + rewrite splitters. + + * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives. + (abs?f2_if): Likewise. + +1999-11-30 Alex Samuel + + * ggc.h (ggc_test_and_set_mark): New macro. + (ggc_mark_rtx): Use ggc_test_and_set_mark. + (ggc_mark_tree): Likewise. + (ggc_mark_rtvec): Likewise. + * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. + +1999-11-30 Jason Merrill + + * dwarf2out.c (scope_die_for): Only handle types. Only search for + containing types. + (decl_scope_table): Just an array of trees now. + (push_decl_scope): Simplify. + (dwarf2out_init): Adjust. + (local_scope_p): New fn. + (gen_inlined_enumeration_type_die): Don't call scope_die_for. + (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise. + (gen_typedef_die): Likewise. + (gen_lexical_block_die): Don't call push/pop_decl_scope. + (gen_inlined_subroutine_die): Likewise. + (gen_abstract_function): Set current_function_decl temporarily. + (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration. + Handle block extern declarations. Don't call push/pop_decl_scope. + (gen_decl_die): Fix logic for block externs. + +1999-11-30 Kaveh R. Ghazi + + * calls.c (special_function_p): Remove `realloc' and add `strdup' + to the list of functions which have attribute malloc by default. + +1999-11-30 Kaveh R. Ghazi + + * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an + integer constant does not match the traditional type, limit the + warnings to cases where the base of the type is ten. + + * invoke.texi (-Wtraditional): Document it. + +Tue Nov 30 15:18:35 1999 Franz Sirl + + * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST + * rs6000.md: Only access a CONST_INT with INTVAL + +Tue Nov 30 14:21:00 1999 Richard Henderson + + * lcm.c (compute_laterin): Cast bb->aux to size_t not int. + (compute_nearerout): Likewise. + * ggc-page.c (ggc_page_print_statistics): Explicitly cast + size_t to unsigned long for formatting. + +1999-11-30 Jakub Jelinek + + * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE): + Allow the user to override call-used/fixed state of %g2-5 + registers from the command line (with the exception of %g4 for + embedded model). + (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that + there is a higher chance of having a leaf function. + (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros + for ARCH64 which has %ccr register. + * config/sparc/sparc.md (return_losum_si, return_losum_di): New + patterns. + * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return + insn accept into delay slot any insn which does not use %[ol] + registers. Accept some LO_SUM and shift left by 1 for the normal + restore case. + (output_function_epilogue): Likewise. + (epilogue_renumber): Added argument which inhibits any renumbering + and just tests if the rtx does not use any %[ol] registers. + (output_return): Reflect above change. + +1999-11-30 Jakub Jelinek + + * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg + aggregate passing for sizes <= 16 bytes. + +1999-11-30 Bernd Schmidt + + * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P. + * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code. + * reload.c (find_dummy_reload): Likewise. + (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P. + * reload1.c (reload_as_needed): Likewise. + * stupid.c (stupid_find_reg): Likewise. + * tm.texi (Obsolete Register Macros): Delete section. + * gmicro.h: Remove all traces of the two macros. + * i386.h: Likewise. + * m88k.h: Likewise. + * mips.h: Likewise. + +1999-11-30 Brendan Kehoe + + * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define. + (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags. + (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs. + * sparc.md (sparclite86x_branch, sparclite86x_shift): New function + units for the sparclite86x chip. + (flush): Revert October 14th change; add SImode specifically. + (flushdi): Copy of flush, but DImode, to avoid genrecog warnings. + * invoke.texi: Document it. + +Tue Nov 30 14:58:14 1999 Nick Clifton + + * config/mn10200/mn10200.h (PREDICATE_CODES): Add + psimode_truncation_operand. + + * config/mn10200/mn10200.c (psimode_truncation_operand): New + function. Return true if the operand is either a MEM valid + for a PSImode address or not a MEM at all. + + * config/mn10200/mn10200.md (truncsipsi2): Use + psimode_truncation_operand. + +1999-11-30 Michael Hayes + + * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions. + (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise. + (flow_loop_exits_find, flow_loop_nodes_find): Likewise. + (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise. + (flow_loop_tree_node_add, flow_loops_tree_build): Likewise. + (flow_loop_level_compute, low_loops_level_compute): Likewise. + (flow_loops_find, flow_loop_outside_edge_p): Likewise. + * basic-block.h: Protect from multiple inclusion. + (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes. + (struct loops, struct loop): Define structures. + * sbitmap.c (sbitmap_a_subset_b_p): New function. + * sbitmap.h: Protect from multiple inclusion. + (sbitmap_a_subset_b_p): Add prototype. + * Makefile.in (LOOP_H): New macro. + (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H. + +Tue Nov 30 01:34:47 1999 Philippe De Muyter + + * cppinit.c (CAT): The argument list of this macro may not contain + spaces ! + +1999-11-29 David S. Miller + + Move quantity tables and register equivalence chains into + per-qty and per-register structure arrays respectively. + * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const, + qty_const_insn, qty_comparison_code, qty_comparison_const, + qty_comparison_qty): Delete, replace with... + (qty_table): this structure table. + (reg_next_eqv, reg_prev_eqv): Delete, replace with... + (reg_eqv_table): this structure table. + (make_new_qty): Add argument MODE. Caller updated. + Update to use qty_table and reg_eqv_table. + (make_regs_eqv, delete_reg_equiv, insert_regs, + insert, exp_equiv_p, cse_rtx_varies_p, canon_reg, + fold_rtx, equiv_constant, record_jump_cond, cse_insn, + cse_process_notes, cse_main, cse_basic_block): Likewise. + +Mon Nov 29 16:56:42 1999 Richard Kenner + + * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse + operation if C is negative. + (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects. + (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive + law for some divisions if constant is negative and change other + divisions to the opposite rounding. + + * expr.c (store_constructor_field): If bit position is not multiple + of alignment of TARGET's mode, use BLKmode. + + * expr.c (expand_expr_unaligned): Add more code from full case + that is needed when OP0 is in a register. + +Mon Nov 29 18:09:39 1999 J"orn Rennecke + + * dwarfout.c (field_byte_offset): Size can be zero if there was + an error. + +1999-11-29 Bernd Schmidt + + * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE. + (associate_trees): Delete unused var TEM. + (extract_muldiv): Delete unused var CANCEL_P. + + * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT] + (target_isinf, target_isnan, target_negative): Add return types to + function definitions. + +1999-11-29 Bruce Korb + + * fixinc/fixincl.c(process): don't skip GLIBC files any more. + * fixinc/hackshell.tpl: ditto + * fixinc/fixtests.c(double_slash_test): more C++ header testing + * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach + +1999-11-29 Bernd Schmidt + + * reload.c (push_reload): When looking for a register to put into + reg_rtx, make sure all hard regs in a multi-reg register are in the + right class and nonfixed. + + * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers, + pending_read_insns, pending_write_insns, pending_read_mems, + pending_write_mems, pending_list_length, last_pending_memory_flush, + last_function_call, sched_before_next_call): Move static variables + into a structure. + (bb_ prefixed versions): Replace with single array bb_deps. + (struct deps): New structure. + (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1, + sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new + argument of type "struct deps *"; use that instead of global + variables. All callers changed. + (init_rgn_data_dependencies): Delete function. + (init_rtx_vector): Delete function. + (init_deps): New function. + + (free_pending_lists): Simplify, we always use the bb_deps array even + if only one basic block. + (compute_block_backward_dependences): Likewise. + (schedule_region): Likewise. + + (propagate_deps): New function, broken out of + compute_block_backward_dependences. + (compute_block_backward_dependences): Use it. + + * alpha.md: Delete useless patterns that tried to work around + register elimination problems. + + * unroll.c (loop_iterations): Don't abort if iteration variable + was made by loop. + + From Joern Rennecke: + * reload1.c (reloads_conflict): Reverse test comparing operand + numbers when testing for conflict between output/outaddr reloads. + +1999-11-29 David S. Miller + + * config/sparc/sparc.c (init_cumulative_args): Fix type of third + arg. + * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE. + +1999-11-28 Robert Lipe + + * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn + table from .fini into .dtor. + +1999-11-28 Anthony Green + + * tree.h (struct tree_decl): Add malloc_flag. + (DECL_IS_MALLOC): Define. + * c-common.c (attrs): Add A_MALLOC attribute. + (init_attributes): Add this attribute to the table. + (decl_attributes): Handle malloc attribute. + * calls.c (special_function_p): Check for the malloc attribute. + * extend.texi (Function Attributes): Document malloc attribute. + +Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (reload shift-add patterns): Remove. + +1999-11-28 Herman A.J. ten Brugge + + * reorg.c (dbr_schedule) Print more statistics. Corrected + problem when printing info when 3 delay slots are filled. + +1999-11-28 Jakub Jelinek + + * combine.c (setup_incoming_promotions): Pass an outgoing + regno to FUNCTION_ARG_REGNO_P which it expects. + +1999-11-28 Andreas Jaeger + + * mips/linux.h (CPP_PREDEFINES): Undefine before redefining. + +Sun Nov 28 00:48:15 1999 Philippe De Muyter + + * cccp.c (do_include): Avoid initialization of automatic variable. + + * integrate.c (mark_stores): Function definition made void, to match + previous declaration. + * regclass.c (dump_regclass): Ditto. + * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'. + +Sat Nov 27 08:38:26 1999 Richard Kenner + + * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is + known to be multiple of divisor. + + * expr.c (store_constructor): Don't clobber TARGET if CLEARED. + + * combine.c (try_combine): Add code to try to merge a set of a + two-word pseudo to a constant with a setting of one of those words + to a constant. + + * fold-const.c (negate_expr, associate_trees, extract_muldiv): New. + (split_tree): Completely rework to make more general. + (make_range, fold): Call negate_expr. + (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math. + (fold, associate): Call new split_tree and associate_trees. + (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv. + +1999-11-26 Bernd Schmidt + + * loop.c (try_copy_prop): Avoid GNU C extension. + +1999-11-25 Mark Mitchell + + * except.c (init_eh_for_function): Still zero eh_return_context, + eh_return_stack_adjust, and eh_return_handler. + + * except.h (eh_status): Adjust documentation for x_protect_list. + (begin_protect_partials): New function. + * except.c (enqueue_eh_entry): Fix formatting. + (get_first_handler): Add consistency check. + (add_partial_entry): Adjust usage of protect_list. + (emit_cleanup_handler): Save and restore ehqueue. + (expand_start_all_catch): Add comment. + (begin_protect_partials): New function. + (end_protect_partials): Adjust usage of protect_list. + (init_eh_for_function): Use xcalloc. + +1999-11-25 Kaveh R. Ghazi + + * c-common.c (check_format_info): Don't call a variadic function + with a non-literal format string. + + * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise. + + * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else, + pedantic_lvalue_warning, error_init, pedwarn_init, warning_init): + Likewise. + + * cccp.c (check_macro_name, do_xifdef, vwarning_with_line): + Likewise. + + * collect2.c (collect_wait): Likewise. + + * dbxout.c (dbxout_type): Likewise. + + * gcc.c (do_spec_1): Likewise. + + * genemit.c (gen_insn, gen_expand): Likewise. + + * genrecog.c (write_switch, write_subroutine): Likewise. + + * mips-tfile.c (catch_signal, botch): Likewise. + + * print-rtl.c (print_rtx): Likewise. + + * toplev.c (default_print_error_function, report_error_function, + _fatal_insn): Likewise. + +1999-11-25 Mark Mitchell + + * tree.c (unsave_expr_now): Handle NULL_TREE as input. + +Wed Nov 24 17:08:09 MET 1999 Jan Hubicka + + * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative + operations when needed. + * i386.md (fop_?f_comm): New. + (fop_?f_1): Do not accept commutative operands. + +1999-11-25 Andreas Jaeger + + * config/mips/mips.md (casesi_internal): Add missing brace. + +1999-11-25 Jason Merrill + + * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose. + (splice_child_die): Handle moving a child DIE from the declaration + DIE of a class to its specification. + (gen_struct_or_union_type_die): Use 'complete' consistently. + (gen_decl_die): Generate the virtual context DIE first. + Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN. + +1999-11-24 Gavin Romig-Koch + + * config/mips/mips.md (call_value_multiple_interanal1): New. + +1999-11-24 Jason Merrill + + * dwarf2out.c (free_AT, free_die): New fns. + (remove_children): Call them. + (output_line_info): Disable removal of duplicate notes. + + Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set. + * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO + means pretend the type isn't defined. + Don't defer emitting types. + (gen_type_die_for_member): New fn. + (gen_decl_die): Call it. + (splice_child_die): New fn. + (gen_member_die): Call it rather than generate duplicate dies. + + Defer emitting information for the abstract instance of an inline + until we either inline it or emit an out-of-line copy. + * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN + from output_inline_function if DECL_ABSTRACT is also set. + (block_ultimate_origin): Likewise. + (gen_abstract_function): New fn. + (gen_decl_die, gen_inlined_subroutine_die): Call it. + (gen_subprogram_die): An abstract instance is not a declaration + just because it doesn't match current_function_decl. Don't abort + because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration + has an abstract origin. + * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the + abstract instance here. + +Wed Nov 24 18:39:18 1999 Andrew Haley + + * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case + where we need to reload fpul from a system register. + +1999-11-24 Andreas Jaeger + + * config/mips/linux.h (CPP_PREDEFINES): Added. + (LINK_SPEC): Remove -Y since this is only needed on sparc. + +1999-11-24 Andreas Jaeger + + * config/mips/linux.h (TARGET_VERSION): Added. + (HANDLE_SYSV_PRAGMA): Added. + (DEFAULT_VTABLE_THUNKS): Added. + +Wed Nov 24 14:12:15 MET 1999 Jan Hubicka + + * local-alloc.c (qty): New structure and static variable. + (qty_phys_reg): Remove, all references changed to qty. + (qty_n_refs): Likewise. + (qty_min_class): Likewise. + (qty_birth): Likewise. + (qty_death): Likewise. + (qty_size): Likewise. + (qty_mode): Likewise. + (qty_n_calls_crossed): Likewise. + (qty_alternate_class): Likewise. + (qty_changes_size): Likewise. + (qty_first_reg): Likewise. + (alloc_qty): Rename variable QTY to QTYNO. + (finf_free_reg): Likewise. + (local_alloc): Allocate qty, do not allocate the removed variables. + +Wed Nov 24 17:26:05 1999 Geoffrey Keating + + * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler + when -membedded-pic is passed. + + * config/mips/mips.md (casesi): Handle 64-bit case too. + (casesi_internal_di): New insn. + + * config/mips/mips.c (embedded_pic_offset): Always make the + embedded-pic subtractions relative to the name of the current + function by use of the magic string "..CURRENT_FUNCTION". + * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen. + +1999-11-24 Geoffrey Keating + + * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO + of (const_int 0), when what we really care about is + whether it's a zero constant anyway. + (div_trap_mips16): Likewise. + +1999-11-23 Mark Mitchell + + * loop.c (loop_optimize): Always find_loop_tree_blocks and + unroll_block_trees when generating debuggable code. + + * tree.h (unsave_expr_1): New function. + (lang_unsave): New variable. + (get_callee_fndecl): New function. + * tree.c (unsave_expr_now_r): New function. + (lang_unsave): Define. + (unsave_expr_1): Likewise. + (unsave_expr_now_r): Split out from unsave_expr_now. + (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise, + call unsave_expr_now_r. + (get_callee_fndecl): Define. + + * Makefile.in (gencheck): Don't depend on lang_tree_files. + (gencheck.o): Do depend on lang_tree_files. + + * integrate.h (copy_decl_for_inlining): New declaration. + * integrate.c (copy_and_set_decl_abstract_origin): Remove. + (copy_decl_for_inlining): New function. + (integrate_parm_decls): Use it. + (integrate_decl_tree): Likewise. + +1999-11-23 Gavin Romig-Koch + + * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split + the second two from the first. + (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4. + * config/mips/mips.md (movcc,reload_incc,reload_outcc, + conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than + ISA_HAS_FP4. + * config/mips/mips.c (mips_move_1word,gen_conditional_branch, + override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than + ISA_HAS_FP4. + +Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (call_internal_symref, call_value_internal_symref): No mode + needed on the address operand. + * pa.c (call_operand_address): Check for the correct mode. + +1999-11-23 Bernd Schmidt + + * loop.c: Include "basic-block.h". + (try_copy_prop, replace_loop_reg): New functions. + (load_mems): Detect registers that just hold copies of the hoisted + mem, and call try_copy_prop to eliminate them. + * Makefile.in (loop.o): Update dependencies. + +Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson + + * Makefile.in (gencheck.o): Depend on gencheck.h. + (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h. + (insn-peep.o): Depend on except.h and function.h. + (insn-attrtab.o): Depend on RECOG_H. + (insn-output.o): Depend on toplev.h and flags.h. + (gengenrtl.o): Depend on real.h. + (gen-protos.o): Depend on cpplib.h and cpphash.h. + Unify all dependencies to be on RECOG_H rather than recog.h. + +Tue Nov 23 00:57:10 1999 Rainer Orth + + From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998: + * configure.in: Try building a bi-arch 32/64-bit compiler on + sparc-*-solaris2.7 and higher. + * configure: Rebuild. + +Mon Nov 22 23:09:44 1999 David O'Brien + + * config/freebsd.h: New, FreeBSD architecture independent file. + * config/i386/freebsd-elf.h: removed FreeBSD architecturally + independent pieces. + * config/i386/freebsd.h: include i386/perform.h via tm.h rather than + directly by i386/freebsd.h. + * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally + independent configuration file. + (*-*-freebsdelf): Include i386/perform.h via tm.h rather than + directly by i386/freebsd.h. + * configure: Rebuilt. + + * xm-i386.h: Define `__i386__' if not defined, rather than `i386' + which is in the user's namespace. + * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs. + `i386' which is not in our namespace. + +Mon Nov 22 22:58:01 1999 "R. Kelley Cook" + + * invoke.texi (ARM Options): Add in -mno-alignment-traps + +1999-11-22 Jason Merrill + + * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last. + (add_dwarf_attr, add_child_die): Just push onto the front. + (reverse_die_lists): New fn. + (add_sibling_attributes): Use it. + (push_decl_scope): Reorganize. + (add_name_and_src_coords_attributes): Don't set file and line for + an artificial decl. + (gen_subprogram_die): An artificial function doesn't need to match + file and line. + (gen_compile_unit_die): Return the generated die. Only add + AT_comp_dir if the filename is relative. + (remove_AT): Simplify loop. Also free string values. + (output_die): A DIE ref can't be null. + (output_value_format, value_format): Take a dw_attr_ref. + (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove. + (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, + AT_addr, AT_lbl): New fns. + (various): Use them. + (various): Constify. + +Mon Nov 22 23:53:50 1999 J"orn Rennecke + + * combine.c (combine_simplify_rtx): When handling a SUBREG, + take SUBREG_WORD into account. + (if_then_else_cond): Likewise. + +1999-11-22 Jason Merrill + + * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising + clause from BSD license, pursuant with + + ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change + +1999-11-22 Bernd Schmidt + + * loop.c (load_mems): Reformat slightly. + * basic-block.h (regset_head): New typedef. + (INIT_REG_SET): New macro. + +1999-11-22 Bruce Korb + + * emit-rtl.c (gen_sequence): Only return the pattern of an insn if + its code is INSN and it has no notes. + +1999-11-22 Andrew Haley + + * varasm.c (function_defined): Remove. + (make_function_rtl): Don't set function_defined. + (make_decl_rtl): Remove global register warning. + * regclass.c (no_global_reg_vars): New variable. + (globalize_reg): Warn if function has already been defined. + (regclass_init): Set no_global_reg_vars. + +Mon Nov 22 14:42:22 MET 1999 Jan Hubicka + + * regclass.c (reg_pref): New structure and static variable + (prefclass): Delete. + (altclass): Delete. + (all uses of prefclass and altclass): Use reg_pref instead. + +1999-11-21 Nick Clifton + + * invoke.texi (ARM Options): Replace -mshort-load-bytes with + -malignment-traps. + (arm.h): Replace -mshort-load-bytes with -malignment-traps. + (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. + (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. + +Sun Nov 21 17:11:13 1999 Geoffrey Keating + + * varasm.c (output_constructor): Solve problem with long long + bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1). + +Fri Nov 19 05:48:45 CET 1999 Jan Hubicka + + * global.c (allocno): New structure and static variable. + (allocno_reg): Remove, all references replaced by allocno. + (allocno_size): Likewise. + (hard_reg_conflicts): Likewise. + (hard_reg_preferences): Likewise. + (hard_reg_copy_preferences): Likewise. + (hard_reg_full_preferences): Likewise. + (regs_someone_prefers): Likewise. + (allocno_calls_crossed): Likewise. + (allocno_n_refs): Likewise. + (allocno_live_length): Likewise. + (find_reg): Rename ALLOCNO to NUM. + + * regclass.c (may_move_in_cost): Rename from may_move_cost, all + references updated. + (may_move_out_cost): New variable. + (init_reg_sets_1): Initialize may_move_out_cost. + (record_reg_classes): Use may_move_out_cost. + + * regclass.c (dump_regclass): New function. + (regclass): New parameter DUMP, call DUMP_REGCLASS. + * toplev.c (rest_of_compilation): Open lreg dump file before regclass, + pass rtl_dump_file to regclass. + * rtl.h (regclass): Update prototype. + +Fri Nov 19 06:32:19 CET 1999 Jan Hubicka + + * i386.md (neg, not and abs patterns): Revmap to use + ix86_expand_unary_operator and ix86_unary_operator_ok. + (add?f and sub?f expanders): Force operand 1 to register. + * i386.c (ix86_expand_unary_operator): Rewrite. + (ix86_unary_operator_ok): Ensure that memory operands + match real opcode. + (ix86_binary_operator_ok): Do not allow operand 1 to + come into memory and operand 0 not. + (ix86_expand_binary_operator): Ensure that + src1 is not non-matching memory. + + * i386.md (negs?2): Rewrite to expanders, new patterns and splitters + to support integer registers and memory. + (abss?2_integer): Likewise. + + * i386.h (enum reg_class): Add FLOAT_INT_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS + and GENERAL_REGS. + * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS. + (movsf): Likewise; unify 4th and 5th alternative. + (pushdf): Likewise. + (movdf_1): Likewise; rename to movdf_integer. + (pushxf): Likewise; rename to pushxf_integer; fix output template; + remove redundant splitter. + (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition. + (movdf_nointeger): New. + (movxf_nointeger): New. + (pushxf_nointeger): New. + + * i386.md (extend?f?f): Split to expander and pattern, refuse two + memory operands in patterns. + (fop*): Refuse two memory operands. + + * i386.md (ashrsi3_31): Allow cltd when optimizing for size even + on !TARGET_USE_CLTD CPUs. + +Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell + + * extend.texi: Document C++ restricted pointers and references. + +1999-11-19 Bernd Schmidt + + * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC. + (invalidate_skipped_set): Call it unconditionally. + (cse_set_around_loop): Likewise. + +Thu Nov 18 17:29:34 MST 1999 Diego Novillo + + * rtl.texi (mem): Add documentation for alias-set argument + to RTX `mem'. + +Fri Nov 18 13:39:22 CET 1999 Jan Hubicka + + * i386.h (struct_processor_costs): New fields int_load, int_store, + fp_move, fp_load and fp_store + (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of + fp->int moves + (MEMORY_MOVE_COST): New macro. + * i386.c (386_cost): Define new fields. + (i486_cost): Likewise. + (pentium_cost): Likewise. + (pentiumpro_cost): Likewise. + (k6_cost): Likewise. + +Fri Nov 19 11:11:55 1999 Greg McGary + Geoffrey Keating + + * config/m68k/m68kelf.h: Suppress '/* within comment' warning. + + * config/m68k/m68k.h (MASK_PCREL): Don't use same value as + MASK_ALIGN_INT. + + * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro. + (TARGET_STRICT_ALIGNMENT): New macro. + (TARGET_SWITCHES): Add "strict-align" and "no-strict-align". + (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT. + * invoke.texi (M680x0 Options): Document -mstrict-align. + +Thu Nov 18 11:10:03 1999 Jan Hubicka + Richard Henderson + + * i386-protos.h (split_xf, ix86_split_movdi): Remove. + (ix86_split_long_move): Declare. + * i386.c (split_xf, ix86_split_movdi): Remove. + (ix86_split_to_parts, ix86_split_long_move): New. + * i386.md (dimode move splitters): Use ix86_split_long_move. + (dfmode move splitters): Likewise. + (xfmode move splitters): Likewise. + (movsf_1): Allow F->r. + (movdf_1, movxf_1): Allow F->ro. + +1999-11-17 Mark Mitchell + + * except.h (struct eh_entry): Add goto_entry_p. + (eh_region_from_symbol): Remove prototype. + * except.c (find_func_region_from_symbol): New function. + (emit_cleanup_handler): Likewise. + (eh_region_from_symbol): Make it static. + (add_new_handler): Verify the argument. + (find_func_region): Update comment. + (expand_eh_region_end): Expand handlers here, rater than waiting + until expand_leftover_cleanups or start_all_catch. + (expand_leftover_cleanups): Don't expand here. + (expand_start_all_catch): Or here. + (expand_rethrow): Check the return value from find_func_region. + * function.c (expand_function_end): Emit the catch_clauses. + +1999-11-18 Gavin Romig-Koch + + * integrate.c (expand_inline_function): Add necessary check for NULL. + +1999-11-18 Nick Clifton + + * toplev.c (main): Correctly detect an unrecognized option. + + * cppinit.c (cpp_handle_option): Do not claim to have consumed + a -f option if it has not been recognized. + +Thu Nov 18 00:59:11 1999 Michael Gschwind + + * basic-block.h (update_life_extent): Remove trailing comma on + enumeration type list. + +1999-11-18 Herman A.J. ten Brugge + + * varasm.c (output_constructor) Solved problem with long long + bitfields. Corrected calculating this_time and shift. Also + corrected calculating mask when BITS_PER_UNIT == 32 (c4x). + +Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (split_edge): Take looping structure into account when + determining where to put the new block note. + +Wed Nov 17 20:42:43 1999 Jeff Holcomb + + * Makefile.in (ggc-none.o): Provide host specific version if + needed. + +Wed Nov 17 16:51:23 1999 Richard Henderson + + * cse.c (delete_trivially_dead_insns): Identify no-op insns + containing subregs too. + +Wed Nov 17 17:39:48 MST 1999 Diego Novillo + + * invoke.texi: Add documentation for -muninit-const-in-rodata. + * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define. + (TARGET_UNINIT_CONST_IN_RODATA): Define. + (text_section): Add switches -munint-const-in-rodata and + -mno-uninit-const-in-rodata. + (ASM_OUTPUT_COMMON): Remove. + (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized + const objects should be placed in read-only data. Otherwise declare + them in common. + +Wed Nov 17 16:38:32 1999 Richard Henderson + + * jump.c (jump_optimize_1): Revert last change. + +Wed Nov 17 15:18:30 1999 Richard Henderson + + * jump.c (jump_optimize_1): Don't try to duplicate the loop exit + test if optimizing for size. + +1999-11-17 Mark Mitchell + + * Makefile.in (toplev.o): Depend on except.h. + (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise. + +Mon Nov 15 22:45:39 CET 1999 Jan Hubicka + + * i386.md (divmodsi4): Rewrite to expander. + (*divmodsi4_nocltd): New. + (*divmodsi4_cltd): New. + (divmodsi4 splitter): Handle the case when input comes in edx. + (udivmodhi4): Do not use constraints in exander. + (ashrsi3_31): Conditionize by TARGET_USE_CLTD. + +1999-11-17 Jason Merrill + + * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1 + for the common case. + +1999-11-16 Jakub Jelinek + + * explow.c (hard_function_value): Add outgoing argument. + * expr.h (hard_function_value): Declare it. + * calls.c (expand_call, emit_library_call_value): Update callers. + * function.c (aggregate_value_p): Ditto. + (diddle_return_value): Must look at the outgoing registers + on archs with register windows. + +Mon Nov 15 20:46:45 1999 Richard Henderson + + * alpha.c (alpha_build_va_list): Use make_lang_type and + initialize TYPE_NAME for the va_list record. + + * flow.c (calculate_global_regs_live): Zero bb->aux to begin. + + * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long + for printing. + * ggc.h (struct ggc_statistics): Rearrange elements for better + packing on 64-bit hosts. + * lcm.c (compute_laterin): Store a size_t not an int in bb->aux. + (compute_nearerout): Likewise. + +Tue Nov 16 14:37:52 1999 Geoffrey Keating + + * config/rs6000/rs6000.c (first_reg_to_save): Save + PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed. + +1999-11-15 Jason Merrill + + * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table + notion of nesting to find the DIE for a type or function. + DIEs can go in limbo even if we got a context_die. + (push_decl_scope): Our context doesn't need to be in decl_scope_table. + (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test + for local type. + (gen_decl_die): Ignore NAMESPACE_DECLs for now. + (gen_type_die): Writing out the context doesn't cause member class + template instantiations to be written out as well. + +Mon Nov 15 15:33:18 1999 Richard Henderson + + * rs6000.h (ASM_OUTPUT_DEF): New. + Based on proposed addition from David Edelsohn. + +1999-11-15 Robert Lipe + Bruce Korb + + * fixinc/inclhack.def + (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features + (unixware7_byteorder_fix): added. Removes conflicts for new defs + in net/inet.h. + (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax + (svr4_endian): enabled with SVR5 + (svr4_mkdev): simplified syntax and enabled with SVR5 + +Sun Nov 14 18:49:37 1999 David O'Brien + + * configure.in: Handle libgcc2 threads support on FreeBSD platforms. + * configure: Rebuilt. + * config/t-freebsd-thread: New file. + +Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com) + + * i386.c (ix86_decompose_address): Verify the base is a REG + before trying to examine its register number. + + * basic-block.h: Remove all #defines and prototypes related to + integer lists. + (free_bb_mem, compute_preds_succs): Remove prototype. + * rtl.h (free_bb_mem): Remove prototype. + * flow.c (alloc_int_list_node); Remove function. + (add_inst_list_node, free_int_list, add_pred_succ): Likewise. + (compute_preds_succs, free_bb_mem): Likewise. + * gcse.c (gcse_main): Do not call free_bb_mem anymore. + * toplev.c (rest_of_compilation): Likewise. + * haifa-sched.c (build_control_flow): Use flow generated edge + list to build the haifa specific edge list. + (find_rgns): Use new CFG data structures instead of pred/succ lists. + (schedule_insns): Do not build pred/succ lists anymore. Instead + build the edge table. + + * basic-block.h (dump_bb_data): Remove declaration. + * flow.c (dump_bb_data): Remove function. + * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function. + (sbitmap_union_of_predsucc): Likewise. + + * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds + argument. All callers changed. + (delete_null_pointer_checks_1): No longer need to compute the + pred/succ lists. + + * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument. + All callers changed. + (pre_expr_reaches_here_p_work): Likewise. + (pre_edge_insert): No longer call pre_expr_reaches_here_p. + * lcm.c (compute_laterin): Fix initialization of LATER. + (compute_nearerout): Similarly for NEARER. + +Sun Nov 14 12:41:57 1999 Bernd Schmidt + + * cse.c (set_nonvarying_address_components): Delete unused function. + (refers_to_p): Likewise. + +Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as + needed. + +Sat Nov 13 16:20:09 1999 Michael Hayes + + * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro + definition in do while (0). + +Fri Nov 12 16:26:25 1999 Jim Wilson + + * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change. + +Fri Nov 12 12:43:49 1999 Richard Henderson + + * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT. + +Fri Nov 12 15:14:19 1999 Vladimir Makarov + + * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it. + (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto. + (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. + (INITIAL_FRAME_POINTER_OFFSET): Remove it. + + * i960.c (i960_function_prologue): Don't allocate space for g8-g11 + saved on the stack. Output more accurate stack frame statistics + into assembler file. + +1999-11-12 11:47 -0800 Zack Weinberg + + * genextract.c (record_insn_name): New function. + (get_insn_name): No longer a stub. + (main): Call record_insn_name for each insn. After each label + written, print the insn name in a comment. + +Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi + + * output.h (const_section, init_section, fini_section): Add + prototypes. + + * alpha/elf.h (const_section): Delete declaration. + + * svr4.h (const_section): Likewise. + +Fri Nov 12 08:54:22 1999 Mark Mitchell + + * tree.h (SAVE_EXPR_PERSISTENT_P): New macro. + * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially. + (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P + expressions. + * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on + variable-sized array bounds. + +Fri Nov 12 08:04:45 1999 Catherine Moore + + * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use + ASM_OUTPUT_LABEL. + +Fri Nov 12 13:31:54 1999 Bernd Schmidt + + * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode + addresses the same way GO_IF_LEGITIMATE_INDEX does. + +Fri Nov 12 12:36:04 1999 Bernd Schmidt + + * cse.c (hash_arg_in_struct): Delete. + (struct table_elt): Delete elt in_struct. + (struct set): Delete elt src_in_struct. + (merge_equiv_classes): Don't set either hash_arg_in_struct or + the corresponding in_struct elts. + (canon_hash): Likewise. + (safe_hash): Likewise. + (find_best_addr): Likewise. + (record_jump_cond): Likewise. + (cse_insn): Likewise. + +Thu Nov 11 19:45:24 1999 Jim Wilson + + * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back. + + * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large + unsigned types. + +Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (diddle_return_value): Put back check that the DECL_RTL + for the function is a register. + + * function.c (diddle_return_value): Use hard_function_value to + get an rtx suitable for use in the USE/CLOBBER insn. + + * global.c (global_conflicts): Update comments. + (record_conflicts): No need to record conflicts between pseudos here. + +1999-11-11 Bruce Korb + + * fixinc/fixincl.c: Added verbose levels for status messages + +Thu Nov 11 13:23:04 1999 Bernd Schmidt + + * jump.c (jump_optimize_1): Avoid passing an rtx that is not an + operand as argument to expand_and or expand_binop. + +Thu Nov 11 02:21:16 1999 Rodney Brown + + * xcoffout.c (xcoffout_source_file): Change ggc_add_root to + gcc_add_string_root. + +Wed Nov 10 21:24:19 1999 Jason Eckhardt + + * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4. + +Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (compute_flow_dominators): Initially put all blocks on + the worklist. + * lcm.c (compute_antinout_edge, compute_available): Similarly. + * gcse.c (compute_cprop_avinout): Remove. + (compute_cprop_data): Use compute_available. + (delete_null_pointer_checks_1): Use compute_available. + + * basic-block.h (compute_available): Returns a void now. + * gcse.c (one_classic_gcse_pass): Do not expect compute_available + to return a value anymore. + * lcm.c (compute_available, compute_antinout_edge): Revamp to use + worklists. Fix boundary cases. Compute maximal solutions. + (compute_laterin, compute_nearerout): Similarly. + + * dwarf2out.c (add_AT_location_description): Allow + (mem (plus (pseudo) (...)) too. + +Wed Nov 10 10:52:42 1999 Tom Tromey + + * gcc.c (do_spec_1): Support text between `%u' and `%O'. + +Wed Nov 10 12:43:21 1999 Philippe De Muyter + Kaveh R. Ghazi + + * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'. + + * gansidecl.h: Likewise. + + * rtl.c: Likewise. + + * rtl.h: Likewise. + + * toplev.h: Likewise. + + * tree.c: Likewise. + + * tree.h: Likewise. + + * varray.c: Likewise. + + * varray.h: Likewise. + +Wed Nov 10 10:57:22 1999 Clinton Popetz + + * gcov.c (struct arcdata): Add hits and total, remove prob. + (output_branch_counts): New. + (process_args): Set output_branch_counts if -c. + (calculate_branch_probs): Store hits and total instead of + percentage. + (output_data): Emit counts if output_branch_counts is true. + * gcov.texi (Invoking Gcov): Document -c switch.. + +Wed Nov 10 01:10:41 1999 Philippe De Muyter + + * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and + `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type. + +Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson + + * invoke.texi (C Dialect Options): Add missing builtins from + c-common.c to list. + * extend.texi (Other Builtins): Copy to this list. + +Wed Nov 10 04:58:09 1999 Alexandre Oliva + + * Makefile.in (recog.o): Use BASIC_BLOCK_H macro. + (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove + redundant bitmap.h. + +Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (compute_flow_dominators): No longer treat basic block 0 + or (n_basic_blocks - 1) specially. Clear the AUX field before + starting computation of doms/pdoms. Fix initial state for pdoms. + +Wed Nov 10 03:58:08 1999 Alexandre Oliva + + * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to + match rtl.o's: added ggc.h and toplev.h + ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h. + ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h. + ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H). + +Tue Nov 9 10:30:08 1999 Tom Tromey + + * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed + from HAVE_DOS_BASED_FILESYSTEM. + * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not + HAVE_DOS_BASED_FILESYSTEM. + (main): Likewise. + (split_directories): Only special-case DOS file names if + HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR + instead of explicit tests. Conditionalize on !VMS. + (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit + tests. Conditionalize on !VMS. + (process_command): Only use make_relative_prefix if !VMS. + (free_split_directories): Conditionalize on !VMS. + (DIR_UP): Conditionalize on !VMS. + +Wed Jun 9 16:57:11 1999 Mumit Khan + + * gcc.c (STANDARD_BINDIR_PREFIX): Provide default. + +Fri Feb 5 14:22:01 1999 Mumit Khan + + * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX + case. + +Mon Nov 8 14:16:57 1999 Michael Meissner + + * invoke.texi (Environment Variables): Document relative path + lookup. + * gcc.c (DIR_UP): If not defined, define as "..". + (standard_bindir_prefix): New static, holds target location to + install binaries. + (split_directories): New function to split a filename into + component directories. + (free_split_directories): New function, release memory allocated + by split_directories. + (make_relative_prefix): New function, make a relative pathname if + the compiler is not in the expected location. + (process_command): If GCC_EXEC_PREFIX was not specified, see if we + can figure out an appropriate prefix from argv[0]. + * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of + STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define + STANDARD_BINDIR_PREFIX. + +Wed Nov 10 11:47:54 1999 Michael Hayes + + * config/c4x/c4x-protos.h: New file. Prototypes for functions defined + in c4x.c. + * config/c4x/c4x.h: Moved prototypes to c4x.h. + * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class, + c4x_secondary_memory_needed) Delete. + (fp_zero_operand): Add mode argument. + +Thu Nov 4 15:52:35 1999 Andrew Haley + + * reload1.c (reload_reg_free_for_value_p): Don't use a register + that is in reload_reg_used. + +Tue Nov 9 16:43:00 1999 Nick Clifton + + * config/arm/arm-protos.h: New file: Prototypes for functions + defined in arm.c and pe.c. + * config/arm/arm.h: Fix compile time warnings. + * config/arm/arm.c: Fix compile time warnings. + * config/arm/pe.h: Fix compile time warnings. + * config/arm/aout.h: Fix compile time warnings. + +Tue Nov 9 14:55:44 1999 Nick Clifton + + * config/m32r/m32r-protos.h: New file: Prototypes for functions + defined in m32r.c + + * config/m32r/m32r.h: Move prototypes to m32r-protos.h + Add support for subtargets. + Add prototypes for new predicates. + Add scheduling macros. + + * config/m32r/m32r.c: Fix compile time warnings. + (int8_operand): New predicate function. + (reg_or_cmp_int16_operand): New predicate function. + (extend_operand): New predicate function. + (m32r_adjust_code): New scheduling function. + (m32r_adjust_priority): New scheduling function. + (m32r_sched_init): New scheduling function. + (m32r_sched_reorder): New scheduling function. + (m32r_sched_variable_issue): New scheduling function. + (direct_return): New codegen function. + (m32r_not_same_reg): New rtl testsing function. + + * config/m32r/m32r.md: Fix compile time warnings. + Add support for pre decrement and post increment memory + references. + Add S patterns. + Add fabs patterns. + +Mon Nov 8 22:20:13 1999 J"orn Rennecke + + * global.c (EXECUTE_IF_CONFLICT): Don't define. + (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead. + (find_reg): Likewise. + +Mon Nov 8 13:16:46 1999 Jason Eckhardt + + * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0 + to avoid assembler errors. + +Mon Nov 8 15:38:41 1999 Nick Clifton + + * config/v850/v850-protos.h: New file: Prototypes for functions + defined in v850.c + * config/v850/v850.h: Move prototypes to v850-protos.h + * config/v850/v850.c: Move prototypes to v850-protos.h + * config/v850/v850.md: Fix compile time warnings. + + * config/fr30/fr30-protos.h: New file: Prototypes for functions + defined in fr30.c + * config/fr30/fr30.h: Move prototypes to fr30-protos.h + * config/fr30/fr30.c: Fix compile time warnings. + * config/fr30/fr30.md: Fix compile time warnings. + +Mon Nov 8 07:25:37 1999 Mark Mitchell + + * tree.h (get_containing_scope): Declare it. + * tree.c (get_containing_scope): New fucntion. + (decl_function_context): Use it. + * toplev.c (rest_of_compilation): Use get_containing_scope. + +aMon Nov 8 03:03:07 1999 Alexandre Oliva + + * Makefile.in (rtl.o): Depend on toplev.h. + +Sun Nov 7 20:55:14 1999 Mark Mitchell + + * cse.c (delete_trivially_dead_insns): Replace alloca with + xmalloc/xcalloc. + * except.c (update_rethrow_references): Likewise. + (init_eh_nesting_info): Likewise. + * function.c (identify_blocks): Likewise. + * gcse.c (dump_hash_table): Likewise. + * graph.c (print_rtl_graph_with_bb): Likewise. + * loop.c (combine_movables): Likewise. + (move_movables): Likewise. + (count_loop_regs_set): Likewise. + (strength_reduce): Likewise. + * profile.c (compute_branch_probabilities): New function, split + out from ... + (branch_prob): Here. Replace alloca with xmalloc/xcalloc. + * regclass.c (regclass): Likewise. + * regmove.c (regmove_optimize): Likewise. + * toplev.c (compile_file): Likewise. + (main): Don't mess with the stack rlimit. + +Sun Nov 7 19:41:17 1999 Catherine Moore + + * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define. + (ASM_DECLARE_FUNCTION_SIZE): Conditionally define. + +Sun Nov 7 10:23:28 1999 Mark P. Mitchell + + * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns. + +Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com) + + * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change. + (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in + macro expansion. + +Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net) + + * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo. + +Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (post_dominators): Kill. + (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators. + (compute_code_hoist_data): Use compute_flow_dominators. Do not + pass in a pdom array since we do not need pdoms. + * haifa-sched.c (schedule_insns): Similarly. + * flow.c (compute_dominators): Remove dead function. + (compute_flow_dominators): Do not compute doms or pdoms if the + caller does not request them. Split up loop to build doms and + pdoms. Use a worklist to compute doms and pdoms. + * basic-block.h (compute_dominators): Remove prototype. + +Sat Nov 6 11:38:39 1999 Richard Henderson + + * haifa-sched.c (struct haifa_insn_data, h_i_d): New. + (insn_luid, insn_priority, insn_costs, insn_units): Remove. + (insn_reg_weight, insn_depend, insn_dep_count): Remove. + (insn_blockage, insn_ref_count, line_note, insn_tick): Remove. + (cant_move, fed_by_spec_load, is_load_insn): Remove. + (schedule_region): Remove unused variable. + (schedule_insns): Allocate h_i_d, and not all the separate arrays. + +Sat Nov 6 10:00:34 1999 Mark Mitchell + + * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca. + (update_equiv_regs): Likewise. + (block_alloc): Likewise. + * reg-stack.c (reg_to_stack): Likewise. + (convert_regs_2): Likewise. + * reload1.c (reload_as_needed): Likewise. + +Sat Nov 6 09:57:59 1999 Mark Mitchell + + * Makefile.in (dbxout.o): Depend on ggc.h. + (dwarf2out.o): Likewise. + (xcoffout.o): Likewise. + * dbxout.c: Include ggc.h. + (dbxout_init): Register lastfile as a root. + * dwarf2out.c: Include ggc.h. + (dwarf2out_line): Register lastfile as a root. + * xcoffout.c: Include ggc.h. + (xcoffout_source_line): Register xcoff_lastfile as a root. + +Sat Nov 6 09:52:09 1999 Richard Henderson + + * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination. + +Sat Nov 6 07:48:59 1999 Catherine Moore + + * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already + defined. + (ASM_DECLARE_FUNCTION_SIZE): Likewise. + +Fri Nov 5 18:33:39 1999 J"orn Rennecke + + * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro. + (EXECUTE_IF_CONFLICT): Likewise. + (ALLOCNO_LIVE_P): Avoid signed division. + (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise. + (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT. + (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET. + +Fri Nov 5 12:04:02 1999 Richard Henderson + + * haifa-sched.c (schedule_block): Don't crash if there's no + next insn for an interblock movement. + (add_branch_dependences): Don't allow clobber insns to move either. + +Fri Nov 5 10:18:11 1999 Richard Henderson + + * i386.c (split_xf): New. + * i386-protos.h: Declare it. + * i386.md (movxf_1): Add general regs alternatives. + (movxf_1+1): New splitter for same. + +Fri Nov 5 12:05:52 1999 Nick Clifton + + * function.c (purge_addressof_1): Add missing return values. + +Fri Nov 5 10:07:25 1999 Nick Clifton + + * function.c (is_addressof): New function. Returns true if + the given piece of RTL is an ADDRESSOF. + (purge_addressof_1): Make boolean. Return false if the + ADDRESSOFs could not be purged. + (purge_addressof): If ADDRESSOFs could not be purged from the + notes attached to an insn, remove the offending note(s), + unless they are attached to a libcall. + +1999-11-05 Andreas Jaeger + + * genoutput.c (null_operand =): Initialize all fields. + + * errors.h: Add extern to prototypes. + +Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (m68k-next-nextstep4): Handle Openstep 4.2. + * configure: Rebuilt. + +Fri Nov 5 01:24:37 1999 J"orn Rennecke + + * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division. + (mirror_conflicts): New function. + (global_alloc): Call it. + (expand_preferences): Remove redundant CONFLICTP test. + (find_reg, dump_conflicts): Likewise. + (prune_preferences): Process conflicts one word at a time. + +Fri Nov 5 01:05:21 1999 Richard Henderson + + * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP + instead of an explicit loop. + +Thu Nov 4 23:07:14 1999 Jim Wilson + + * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt, + if REG_RETVAL check succeeds, then put classp in src_elt. + +Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com) + + * function.c (pad_to_arg_alignment): Only update argument_pad + if the argument's alignment is greater than STACK_BOUNDARY. + +Thu Nov 4 16:44:53 1999 Richard Henderson + + * bitmap.h (BITMAP_XFREE): New. + * flow.c (life_analysis): Use it. + (life_analysis_1): Free blocks. + + * combine.c (undo_commit): New. + (try_combine): Use it. Don't zap undobuf.undos. + (combine_instructions): Don't zap undobuf.undos; free the + undobuf.frees list. + + * local-alloc.c (local_alloc): Free qty_phys_num_sugg. + + * stmt.c (cost_table_): New. + (estimate_case_costs): Use it instead of xmalloc. + + * toplev.c (compile_file): Reuse dumpname memory instead + of strdup'ing it. + +Thu Nov 4 16:36:44 1999 Richard Henderson + + * reg-stack.c (convert_regs_1): Initialize target_stack->top + after verifying an EH edge. + + * haifa-sched.c (init_rgn_data_dependences): Correctly + size bb_pending_lists_length when zeroing. + +Thu Nov 4 16:36:36 1999 Richard Henderson + + * function.c (diddle_return_value): New. + (expand_function_end): Use it. + * stmt.c (expand_null_return): Likewise. + (expand_value_return): Likewise. + + * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level. + + * reload1.c (reload): Don't remove return value clobbers. + +Thu Nov 4 13:33:46 1999 Richard Henderson + + * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal. + +Thu Nov 4 12:49:52 1999 Richard Henderson + + * cse.c (cse_main): Use xmalloc, not alloca. + (cse_basic_block): Likewise. + * local-alloc.c (local_alloc): Likewise. + +Thu Nov 4 14:22:12 1999 David Billinghurst + Alexandre Oliva + + * rtl.c: Include toplev.h. + (fatal): Remove declaration. + +Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (schedule_block): Fix thinko. + +1999-11-03 James McKelvey + + * fixinc/fixincl.c(create_file): Allow for systems that do not have + S_IR* defined values + +1999-11-03 Philippe De Muyter + + * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer; + call `malloc' instead. + +Wed Nov 3 23:05:14 1999 Mark Mitchell + + * flags.h (flag_renumber_insns): Declare. + * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print + renumbering table. + * rtl.h (renumber_insns): Change prototype. + * toplev.c (flag_renumber_insns): Define. + (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns. + +Wed Nov 3 15:11:27 1999 David S. Miller + + * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts + and fpsqrtd. Use them and create fdiv function unit to more + accurately represent fpu sqrt pipeline semantics on UltraSPARC. + * config/sparc/sparc.c: Account for fpsqrt{s,d} changes. + +Wed Nov 3 15:11:27 1999 Matteo Frigo + + * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to + 3 on UltraSPARC. + * config/sparc/sparc.c (ultra_schedule_insn): Insert launched + insn into ready list, do not use just a raw swap. + +Wed Nov 3 14:51:59 1999 Mark P. Mitchell + + * rtl.h (renumber_insns): New function. + (remove_unnecessary_notes): Likewise. + * emit-rtl.c (renumber_insns): Define. + (remove_unnecessary_notes): Likewise. + * toplev.c (rest_of_compilation): Remove dead code. + Use renumber_insns and remove_unnecessary_notes. + + * gcse.c (struct null_pointer_info): New type. + (get_bitmap_width): New function. + (current_block): Remove. + (nonnull_local): Likewise. + (nonnull_killed): Likewise. + (invalidate_nonnull_info): Take a null_pointer_info as input. + (delete_null_pointer_checks_1): New function. + (delete_null_pointer_checks): Use it. + + * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc. + (split_edges): Likewise. + (schedule_block): Likewise. + (compute_block_backward_dependencies): Likewise. + (schedule_region): Likewise. + (schedule_insns): Likewise. + +Wed Nov 3 15:40:23 1999 Catherine Moore + + * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default. + * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME. + * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME. + * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME. + * jump.c (delete_unreferenced_labels): Don't delete if + LABEL_ALTERNATE_NAME is set. + * print-rtl.c (print_rtx): Dump alternate name. + * rtl.def (CODE_LABEL): Change format to "iuuis00s". + * rtl.h (LABEL_ALTERNATE_NAME): Define. + * rtl.texi (LABEL_ALTERNATE_NAME): Document. + * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document. + +Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi + + * fix-header.c (recognized_extern, recognized_function): Constify + a char*. + + * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'. + (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. + (compute_available): Remove unused variable `last'. + (compute_nearerout): Remove unused variable `temp_bitmap'. + (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. + Remove unused variable `x'. + + * scan.h (recognized_function, recognized_extern): Constify a + char*. + + * simplify-rtx.c (simplify_rtx): Remove unused variable `new'. + +Wed Nov 3 10:40:53 1999 Franz Sirl + + * varasm.c (decode_rtx_const): Use XSTR to access the string + of a SYMBOL_REF. + +Wed Nov 3 10:10:58 1999 Richard Henderson + + * c-decl.c (duplicate_decls): Copy DECL_MODE too. + +Wed Nov 3 12:12:59 1999 Bernd Schmidt + + * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes. + +Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (ireg_operand): New function. + * pa.h (PREDICATE_CODES): Handle ireg_operand. + * pa.md (parallel_addb, parallel_movb): Use ireg_operand. + Fix out of date comment. + + * pa.md (negdi2): Turn into expander + anonymous pattern. + + * reload.c (find_reloads): Fix typos in recent change. + + * dwarf2out.c: Do not include ctype.h. + +Tue Nov 2 21:53:44 1999 Richard Kenner + + * regclass.c (record_reg_classes): Always use may_move_cost when + seeing how operand fits with various register classes. + +Tue Nov 2 15:38:17 1999 Richard Henderson + + * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes. + * toplev.c: Revert Nov 1 13:22 change. + +Tue Nov 2 14:21:37 1999 Jason Eckhardt + + * config/pa/pa.md (height reduction patterns): Add checks for + overlapping operands to avoid semantic-destroying splits for + height reduction patterns. + +Tue Nov 2 15:27:31 1999 Alexandre Oliva + + * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should + have been an hyphen, fixed. + * configure: Rebuilt. + +Tue Nov 2 17:04:36 1999 Nick Clifton + + * config/arm/tpe.h: Add prototypes for exported functions. + * config/arm/pe.c: Fix compile time warnings. + * config/arm/semi.h: Fix compile time warnings. + * config/arm/arm.c: Fix compile time warnings. + * config/arm/arm.h: Fix compile time warnings. + * config/arm/arm.md: Fix compile time warnings. + * config/arm/thumb.c: Fix compile time warnings. + * config/arm/thumb.h: Fix compile time warnings. + * config/arm/thumb.md: Fix compile time warnings. + +Tue Nov 2 04:10:24 1999 Jan Hubicka + + * jump.c (jump_optimize_1): Swap the incscc and the conditional mode + detection code + + * unroll.c (unroll_loop): Remove LOOP notes when loop is + completely unrolled. + +Tue Nov 2 16:57:22 1999 Bernd Schmidt + + * cse.c (simplify_plus_minus, check_fold_const): Delete declarations. + +Tue Nov 2 09:43:00 1999 Catherine Moore + + * Makefile.in (genattrtab): Don't use (HOST_RTLANAL). + * rtl.h (rtx_equal_p): Move prototype. + * rtl.c (rtx_equal_function_value_matters): Move from + rtlanal.c + (rtx_equal_p): Likewise. + * rtlanal.c (rtx_equal_function_value_matters): Delete. + (rtx_equal_p): Likewise. + +Mon Nov 1 23:21:17 1999 Jason Merrill + + * libgcc2.c (__do_global_dtors): Only do EH frame stuff if + ! HAS_INIT_SECTION. + +Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com) + + * gcc.1 (PA options): Remove obsolete -mshared-libs options. + + * pa.h (ADDR_VEC_ALIGN): Define. + + * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT + notes when presented with "if (foo) break; end_of_loop" and + the break sequence gets moved out of the loop. + + * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc. + Remove explicit zero initializations of entries within MAP. + +Mon Nov 1 18:09:14 1999 Richard Henderson + + * reg-stack.c (convert_regs_1): Handle EH edges specially. + +Mon Nov 1 15:41:01 1999 Mark P. Mitchell + + * bitmap.h (BITMAP_XMALLOC): New macro. + * flow.c (CLEAN_ALLOCA): Remove. + (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca. + (life_analysis): Likewise. + (update_life_info): Don't use CLEAN_ALLOCA. + (life_analysis_1): Use xmalloc/xcalloc instead of alloca. + (calculate_global_regs_live): Likewise. + (print_rtl_with_bb): Likewise. + (verify_flow_info): Likewise. + * global.c (global_alloc): Likewise. + (global_conflicts): Likewise. + * integrate.c (save_for_inline_nocopy): Likewise. + (expand_inline_function): Likewise. + * jump.c (jump_optimize_1): Likewise. + (duplicate_loop_exit_test): Likewise. + (thread_jumps): Likewise. + * loop.c (loop_optimize): Likewise. + (combine_givs): Likewise. + (recombine_givs): Likewise. + * reorg.c (dbr_schedule): Likewise. + * unroll.c (unroll_loop): Likewise. + + * combine.c (combine_instructions): Use xmalloc instead of alloca. + +Mon Nov 1 13:22:30 1999 Richard Henderson + + * toplev.c (rest_of_compilation): Don't optimize the CFG + when rebuilding, just before dbr. + +Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi + + * output.h (assemble_end_function, assemble_destructor, + assemble_constructor, assemble_gc_entry, assemble_global, + assemble_label, output_constant_pool) Constify a char*. + + * varasm.c (assemble_destructor, assemble_constructor, + assemble_gc_entry, assemble_end_function, assemble_global, + assemble_label, output_constant_pool): Likewise. + +Mon Nov 1 14:22:51 1999 Nick Clifton + + * config/arm/thumb.c (thumb_expand_prologue): Add comments + explaining what is goin on in this function. + +Mon Nov 1 08:03:15 1999 Richard Kenner + + * regclass.c (record_reg_classes): In matching case, recompute + costs since the direction of movement is different. + +Sun Oct 31 21:59:34 MST 1999 Diego Novillo + + * resource.c (mark_target_live_regs): For unconditional branches, + the resources found at the branch target should be added to the + resources found so far, not intersected. + +Sun Oct 31 15:48:49 1999 Philippe De Muyter + + * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for + old cpp's. + * fixinc/fixincl.c (fcntl.h) : Do not include this file twice. + (sys/mman.h): Include this file only if #HAVE_MMAP. + (run_compiles): Initialize `esac_fmt' with one old KR string, not + with automatically concatenated ANSI strings. + +Sun Oct 31 23:57:07 1999 Mark Mitchell + + * ggc-page.c (struct page_entry): Remove save_num_free_objects. + (DIV_ROUND_UP): Robustify. + (ggc_recalculate_in_use_p): New function. + (release_pages): Don't inline it. + (ggc_alloc_obj): Don't refuse to allocate objects on pages for + outer contexts. + (ggc_pop_context): Use ggc_recalculate_in_use_p. + (clear_marks): Always save in_use_p. + (sweep_pages): Use ggc_recalculate_in_use_p. + (ggc_page_print_statistics): Avoid signed/unsigned comparisons. + Release pages before counting statistics. + +Sun Oct 31 23:42:37 1999 Mark Mitchell + + * toplev.c (rest_of_compilation): Fix thinko in this change: + + Fri Oct 29 15:25:07 1999 Arnaud Charlet + + (rest_of_compilation): If inside an inlined external function, + pretend we are just being declared. + +Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (calculate_global_regs_live): Fix thinko. + + * integrate.c (expand_inline_function): Fix bugs in previous + change from Oct 28, 1999. + +Sun Oct 31 20:27:45 1999 Mark Mitchell + + * stmt.c (expand_value_return): Fix typo in this change: + + Thu Oct 28 18:06:50 1999 Richard Kenner + (expand_value_return): Correctly convert VAL when promoting function + return; support RETURN_REG being a PARALLEL. + +Sun Oct 31 20:25:42 1999 Mark P. Mitchell + + * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs. + +Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi + + * hard-reg-set.h (reg_names): Constify a char*. + + * regclass.c (reg_names): Likewise. + + * regs.h (reg_names): Likewise + + * a29k/a29k.c (reg_names): Delete declaration. + + * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*. + + * arc/arc.c (arc_save_restore, arc_output_function_prologue, + arc_output_function_epilogue): Likewise. + + * elxsi/elxsi.c (reg_names): Likewise. + + * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. + + * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move): + Likewise. + + * m88k/m88k.c (output_function_profiler): Likewise. + + * sparc/sparc.c (sparc_flat_output_function_prologue, + sparc_flat_output_function_epilogue): Likewise. + +Sun Oct 31 13:32:15 CET 1999 Marc Lehmann + + * toplev.c (rest_of_compilation): Separate the setjmp/vfork clobber + warning from -Wuninitialized and put it under -W. + * function.c (uninitialized_vars_warning): Warn only when the + corresponding flag is set. + +Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): If an insn has only a single set, SRC_EQV + is nonzero and the single set does not have an elt, then assign + it an elt. + + * simplify-rtx.c: New file. + * Makefile.in (OBJS): Add simplify-rtx.o + (simplify-rtx.o): Add dependencies. + * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes. + * cse.c: Use simplify_gen_binary intead of cse_gen_binary. + (cse_gen_binary, simplify_unary_operation): Delete. + (simplify_binary_operation, simplify_plus_minus): Likewise. + (check_fold_consts, simplify_relation_operation): Likewise. + (simplify_ternary_operation): Likewise. + (delete_trivially_dead_insns): Simplify the contents of the + REG_EQUAL note before trying to substitute it into the source + of the reg-reg copy at the end of a libcall sequence. + + * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All + references/callers changed. + + * mn10200.c (mn10200_va_arg): Force the return value into a + register. + + * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro. + + * cccp.c (macroexpand): Avoid out of range accesses for omitted + arguments. + +Sat Oct 30 22:42:50 1999 Stephen L Moshier + + * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant. + +Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold): Fix thinko when optimizing comparisons + against -0.0. + +Sat Oct 30 21:32:17 1999 David Starner + + * gcc.texi (Passes): Update front-end files to their current + location. + +Sat Oct 30 14:41:40 1999 Richard Henderson + + * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class. + (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. + (PREDICATE_CODES): Add addition_operation. + * alpha-protos.h (addition_operation): Declare. + (secondary_reload_class): Likewise. + * alpha.c (addition_operation): New. + (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS. + * alpha.md (adddi3): Turn into expander. + (*lda, *adddi_2): New. + (movsf, movdf patterns): Don't preference integer regs. + (movsi, movdi patterns): Don't preference fp regs. + +Sat Oct 30 14:38:22 1999 Richard Henderson + + * genrecog.c (write_switch): Check for duplicate CODE cases. + +Sat Oct 30 14:31:48 1999 Richard Henderson + + * ggc-common.c: Update pre-function commentary. + * ggc-page.c: Likewise. + (poison): Remove. + (poison_pages): Use memset directly. + (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages. + (ggc_collect): Poison before sweeping. + * ggc-simple.c: Update pre-function commentary. + (ggc_alloc_obj): Poison nonzeroed memory. + +Sat Oct 30 14:28:52 1999 Mark Mitchell + + * ggc-common.c (ggc_print_statistics): Make arguments to fprintf + match format string, even on 64-bit hosts. + * gcc-page.c (ggc_page_print_statistics): Likewise. + +Sat Oct 30 14:38:04 1999 Catherine Moore + + * config/i386/i386.c (ix86_cpu): Revert last patch. + * config/i386/i386.h (ix86_cpu): Ditto. + +Fri Oct 29 17:00:42 1999 Jim Wilson + + * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from + TYPE_SIZE, convert type of result to sizetype. + +Fri Oct 29 14:34:17 1999 Richard Henderson + + * flow.c (count_or_remove_death_notes): Equate NULL with the + universal set. + + * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change. + * toplev.c (rest_of_compilation): Rebuild CFG immediately before + dbr_schedule. + + * i386.c (pic_label_no): Delete. + (ix86_attr_length_default): Don't use single_set to peek + inside a parallel. + + * recog.c (peephole2_optimize): Allow recog_next_insn to index + the first insn after bb->end. + * i386.md (push mem peeps): Scratch is live after evaluation + of the memory. + (cmp mem peep): Similarly. + +Fri Oct 29 11:50:11 1999 Catherine Moore + + * calls.c (emit_library_call_value): Fix declaration of alignment_pad. + * function.c (pad_to_arg_alignment): Add missing braces. + +Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi + + * alpha/alpha-protos.h (literal_section): Add prototype. + (alpha_need_linkage, alpha_start_function,alpha_end_function): + Constify a char*. + + * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add + prototype. + (alpha_start_function, alpha_end_function, float_strings, + alpha_need_linkage): Constify a char* + + * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise. + + * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise. + + * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise. + +Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi + + * flow.c (debug_flow_info): Add prototype. + + * gcc.c (main): Likewise. + + * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work): + Likewise. + + * reload1.c (failed_reload, set_reload_reg): Likewise. + + * mips-tfile.c (main): Likewise. + (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark + with ATTRIBUTE_NORETURN. + +Fri Oct 29 18:16:03 1999 Andrew Haley + + * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if + DECL is not a memory ref. + +Fri Oct 29 09:05:34 1999 Catherine Moore + + * config/i386/i386.h (ix86_cpu): Remove extern attribute. + * config/i386/i386.c (ix86_cpu): Add extern attribute. + +Fri Oct 29 16:30:04 1999 Andrew Haley + + * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN. + * config/mips/elf64.h: ditto. + +Fri Oct 29 08:03:57 1999 Catherine Moore + + * expr.c (emit_push_insn): New argument alignment_pad. + Update all callers. Adjust stack pointer based on alignment pad. + * function.c (pad_to_arg_alignment): New argument alignment_pad. + Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY. + (locate_and_pad_parm): New argument alignment_pad. Update all + callers. + * expr.h (emit_push_insn): Update prototype. + (locate_and_pad_parm): Update prototype. + * calls.c (arg_data): Add new field alignment_pad. + (initialize_argument_information): Initialize alignment_pad. + +Fri Oct 29 02:51:35 1999 Mark Mitchell + + * except.c (free_eh_nesting_info): Free the info itself. + * function.c (free_after_compilation): Don't free NULL. + * gcse.c (alloc_pre_mem): Free the temp_bitmap, too. + (pre_edge_insert): Free inserted. + * stmt.c (free_stmt_status): Don't free NULL. + +Fri Oct 29 15:25:07 1999 Arnaud Charlet + + * gcov.c (DIR_SEPARATOR): Provide default. + (output_data): Add test for MS-DOS format absolute filename. + (fancy_abort): Correct program name. + (open_files): Open all files in binary mode. + * libgcc2.c (__bb_exit_func): Likewise. + + * profile.c (init_branch_prob): Specify binary when opening files. + + * flags.h (flag_unwind_tables): New decl. + * toplev.c (flag_unwind_table): New definition. + (f_options): Add -funwind-tables. + (decode_g_option): Clarify warning when unknown -g option is given. + (rest_of_compilation): If inside an inlined external function, + pretend we are just being declared. + + * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables. + (dwarf2out_frame_finish): Likewise. + +Fri Oct 29 07:44:26 1999 Vasco Pedro + + * fold-const.c (merge_ranges): If not in0, but in1, handle + upper bounds equal like subset case. + +Thu Oct 28 19:22:24 1999 Douglas Rupp + + * dbxout.c (dbxout_parms): Generate a second stabs line for parameters + passed in a register but moved to the stack. + +Thu Oct 28 19:12:57 1999 Sam Tardieu + + * gcc.c (pass_exit_codes, greatest_status): New variables. + (struct option_map): Add entry for "--pass-exit-codes". + (execute): Update greatest_status if error. + (display_help): Add documentation for -pass-exit-codes. + (process_command): Handle -pass-exit-codes. + (main): Look at pass_exit_codes and greatest_status on call to exit. + +Thu Oct 28 18:06:50 1999 Richard Kenner + + * reload.c (find_reloads): Refine test for no input reload + case to not includes reloads emitted after insn. + + * function.c (find_temp_slots_from_address): Handle sum involving + a register that points to a temp slot. + (update_temp_slot_address): Make recursive call if both old and + new are PLUS with a common operand. + * calls.c (expand_call): Mark temp slot for result as having + address taken. + + * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case. + + * gcc.c (process_command): Add standard_exec_prefix with "GCC" + component as well as "BINUTILS". + + * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS. + * integrate.c (copy_rtx_and_substitute): Likewise. + (expand_inline_function, integrate_parm_decls, integrate_decl_tree): + All callers changed. + * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise. + + * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use + gdb extensions, write size of type; also be more consistent + in using references when this is a subtype. + + * pa.md (extv, extzv, insv): Use define_expand to reject constant + that is out of range. + + * loop.c (unknown_constant_address_altered): New variable. + (prescan_loop): Initialize it. + (note_addr_stored): Set it for RTX_UNCHANGING_P MEM. + (invariant_p, case MEM): Remove handling for volatile and readonly; + check new variable if readonly. + (check_dbra_loop): Chdeck unknown_constant_address_altered. + + * cse.c (canon_hash, case MEM): Do not record if BLKmode. + (addr_affects_sp_p): Removed from note_mem_written and only + define #ifdef AUTO_INC_DEC. + + * alpha.c (input_operand, case ADDRESSOF): Treat as REG. + + * regclass.c (record_reg_classes): Properly handle register move + directions. + + * varasm.c (initializer_constant_valid_p, case MINUS_EXPR): + Don't think valid if both operands are invalid. + (struct constant_descriptor): New field RTL. + (mark_const_hash_entry): Mark it. + (record_constant{,_rtx}): Initialize it. + (output_constant_def): Allocate RTL in permanent obstack and + save in table. + ({record,compare}_constant_1): Modes must match for + CONSTRUCTOR of ARRAY_TYPE. + + * c-common.h (initializer_constant_valid_p): Delete decl from here. + * output.h (initializer_constant_valid_p): Move decl to here. + * c-common.c (initializer_constant_valid_p): Delete function from here. + * varasm.c (initializer_constant_valid_p): Move function to here. + + * tree.h (STRIP_SIGN_NOPS): New macro. + * fold-const.c (optimize_minmax_comparison): New function. + (invert_truthvalue, case WITH_RECORD_EXPR): New case. + (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS. + (fold, case EQ_EXPR): Call optimize_minmax_comparison and add + cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and + widening conversions. + (fold, case LE_EXPR): Rework changing unsigned to signed comparisons + to look at size of mode, not precision of type; also add missing cases. + (optimize_bit_field_compare, decode_field_reference): Don't try to + optimize COMPONENT_REF of a PLACEHOLDER_EXPR. + + * dwarf2out.c (ctype.h): Include. + (dwarf2out_set_demangle_name_func): New function. + (size_of_line_info): Deleted. + (output_line_info): Compute size of line info table from difference + of labels. + (base_type_die, add_name_attribute): Call demangle function, if any. + (field_byte_offset): Use bits per word for variable length fields. + (gen_array_type_die): Add array name. + (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline. + (dwarf2out_add_library_unit_info): New function. + + * explow.c (set_stack_check_libfunc): New function. + (stack_check_libfunc): New static variable. + (probe_stack_range): Allow front-end to set up a libfunc to call. + + * combine.c (simplify_comparison): When making comparison in wider + mode, check for having commuted an AND and a SUBREG. + (contains_muldiv): New function. + (try_combine): Call it when dividing a PARALLEL. + (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart. + (simplify_comparison, case ASHIFTRT): Recognize sign-extension of + a PLUS. + (record_value_for_reg): If TEM is a binary operation with two CLOBBERs, + use one of the CLOBBERs instead. + (if_then_else_cond): If comparing against zero, just return thing + being compared. + + * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x). + Don't generate shifts and subtract if have conditional arithmetic. + + * rtl.h (delete_barrier): New declaration. + * jump.c (jump_optimize): Set up to handle conditional call. + In conditional arithmetic case, handle CALL_INSN followed by a BARRIER. + (delete_barrier): New function. + + * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode. + + * recog.c (nonmemory_operand): Accept ADDRESSOF. + + * tree.c (build_type_attribute_variant): Push to obstack of + ttype around type_hash_canon call. + + * expr.c (placeholder_list): Move decl to file scope. + (expand_expr): Don't force access to volatile just because its + address is taken. + If ignoring reference operations, just expand the operands. + (expand_expr, case COMPONENT_REF): Propagate + EXPAND_CONST_ADDRESS to recursive call when expanding inner. + Refine test for using bitfield operations vs pointer punning. + (expand_expr, case CONVERT_EXPR): If converting to + BLKmode UNION_TYPE from BLKmode, just return inner object. + Use proper mode in store_field call. + Properly set sizes of object to store and total size in store_field + call for convert to union. + (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in + memory (like for ADDR_EXPR). Also, don't put constant in register if + we'll want it in memory. + (readonly_fields_p): New function. + (expand_expr, case INDIRECT_REF): Call it if LHS. + (expand_assignment): Handle a RESULT_DECL where + DECL_RTL is a PARALLEL. + (do_jump, case WITH_RECORD_EXPR): New case. + (get_inner_reference): Always go inside a CONVERT_EXPR + and NOP_EXPR if both modes are the same. + (store_field): Use bitfield operations if size of bitsize is not same + as size of RHS's type. + Check for bitpos not a multiple of alignment in BLKmode case. + Do block move in largest possible alignment. + (store_constructor): Set BITSIZE to -1 for variable size and properly + in case of array of BLKmode. + (expand_expr_unaligned): New function. + (do_compare_and_jump): Call it. + + * mips/iris5.h (SWITCHES_NEED_SPACES): New macro. + * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES + does not include 'o'. + + * function.c (instantiate_virtual_regs_1, case SET): Handle case where + both SET_DEST and SET_SRC reference a virtual register. + (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG. + + * integrate.c (expand_inline_function): Handle case of setting + virtual stack vars register (from built in setjmp); when parameter + lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early. + (subst_constant): Add new parm, MEMONLY. + (expand_inline_function, integrate_parm_decls): Pass new parm. + (integrate_decl_tree): Likewise. + (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P. + (try_constants): Call subst_constants twice, with MEMONLY 0 and 1. + (copy_rtx_and_substitute, case SET): Add explicit calls to + copy_rtx_and_substitute for both sides. + + * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for + constraints. + (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for + within INDEX_TYPE, instead of before. + (fixup_gotos): Use f->target_rtl, not the next insn, + since latter may be from a later fixup. + (expand_value_return): Correctly convert VAL when promoting function + return; support RETURN_REG being a PARALLEL. + (expand_return): When checking for result in regs and having + cleanup, consider PARALLEL in DECL_RTL as being in regs. + +1999-10-28 21:27 -0700 Zack Weinberg + + * cpplib.h (struct cpp_buffer: fname, nominal_fname, + last_nominal_fname): Mark const. + (struct include_hash: name, nshort, control_macro): Mark + const. + (struct macrodef: symnam): Mark const. + (struct if_stack: fname): Mark const. + (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete. + (IStable): New character-syntax array which encompasses all + the old is_foo arrays. + (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace, + is_space): New macros for interrogating IStable. + (check_macro_name): Kill last argument. All callers changed. + + * cppinit.c (initialize_char_syntax): Delete. + (is_idchar, is_idstart, is_hor_space, is_space, + trigraph_table): Delete. + (IStable): New. Initialize with clever macros to avoid + information duplication. + (builtin_array): Table of builtins to get rid of explicit list + in initialize_builtins. + (initialize_builtins): Use builtins_array. + (cpp_start_read): Call init_IStable, and set IStable['$'] if + opts->dollars_in_ident. + + * cppexp.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. + (cpp_parse_expr): Avoid 'format string is not constant' + warning. Use ISGRAPH to identify printable chars. + * cppfiles.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. + (read_and_prescan): Map trigraphs to chars with open-coded + if-else-if-... sequence, not a lookup table. + * cpphash.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. + * cpplib.c: Change all refs to is_xyz[] arrays to use new + is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused). + (check_macro_name): Remove ability to report an invalid + assertion name, which is never used. + (do_line): Constify a couple of char *'s. + * cppmain.c (main): Call cpp_cleanup before returning. + +Thu Oct 28 21:16:35 1999 Mark Mitchell + + * ggc.h (struct ggc_statistics): New type. + (ggc_get_size): New function. + (ggc_print_statistics): Likewise. + * ggc-common.c (ggc_stats): New variable. + (ggc_mark_rtx_children): Keep statistics. + (ggc_mark_tree_children): Likewise. + (ggc_print_statistics): New function. + * ggc-page.c (struct globals): Add bytes_mapped field. + (alloc_anon): Update it. + (release_pages): Likewise. + (ggc_get_size): New function. + (ggc_page_print_statistics): New function. + * ggc-simple.c (ggc_get_size): New function. + +Fri Oct 29 06:32:44 1999 Geoffrey Keating + + * flow.c (propagate_block): When the last reference to a label + before an ADDR_VEC is deleted because the reference is a dead + store, delete the ADDR_VEC. + +Thu Oct 28 12:28:50 1999 Richard Henderson + + * resource.c (find_free_register): Don't use the frame pointer + if frame_pointer_needed. + +Thu Oct 28 10:02:00 1999 Jim Wilson + + * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg. + (function_arg_pass_by_reference): Check for a NULL pointer in cum. + + * config/i960/i960.c (i960_va_start): New locals base, num. + Use INDIRECT_REF instead of ARRAY_REF on valist. + (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist. + +Thu Oct 28 09:45:48 1999 Mark Mitchell + + * gcse.c (delete_null_pointer_checks): Fix typo in previous change. + +Thu Oct 28 03:37:50 1999 Peter Gerwinski + + * tree.def (PLACEHOLDER_EXPR): Update comments. + +Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi + + * c-common.c (check_format_info): Avoid non-literal format string + warnings when `first_arg_num' is zero. + +Thu Oct 28 12:28:48 1999 Bernd Schmidt + + * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s. + +Thu Oct 28 11:05:13 1999 Richard Earnshaw + + * arm.md (casesi_insn): Add a clobber of the condition code + register. + +Mon Oct 18 21:16:06 1999 Fred Fish + + * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is + used by both cc1 and cc1plus. + +Thu Oct 28 10:00:48 1999 Nick Clifton + + * config/arm/arm.c: Initialize arm_structure_size_boundary to + DEFAULT_STRUCTURE_SIZE_BOUNDARY. + * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define + to the value 32 if it has not already been defined. + * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): + Override definition in arm.h with a value of 8. + +Thu Oct 28 03:12:02 1999 David Starner + + * c-pragma.c (push_alignment): Don't check the return value + of xmalloc. + +Thu Oct 28 03:08:38 1999 Matteo Frigo + + * sparc.h (ADJUST_COST): Fix thinko. + +Thu Oct 28 02:44:03 1999 Glen Nakamura + + * cccp.c (rescan): Fixed obp pointer handling around call to + check_expand subroutine. + +Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (delete_null_pointer_checks): Only record non-null info + for pseudos when examining stores. + + * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add + splitters for these patterns. Use "#" for output templates. + (addsi3_carryin_shift): New pattern. + +Thu Oct 28 10:20:02 1999 Geoffrey Keating + + * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG + of the function return register into a plain REG until + after function inlining is done. + +Wed Oct 27 15:21:46 1999 Richard Henderson + + * jump.c (jump_optimize_1): If we did cross-jumping, and + the data will matter, rebuild the CFG. + * reg-stack.c (reg_to_stack): Only (re)build the CFG if + not optimizing. Don't run shorten_branches. + * toplev.c (rest_of_compilation): Run shorten_branches after + reg_to_stack. + +Wed Oct 27 12:33:40 1999 Mark Mitchell + + * rtl.h (note_stores): Add additional parameter. + * rtlanal.c (reg_set_p_1): Take additional parameter. + (reg_set_last_1): Likewise. + (reg_set_p): Adjust call to note_stores. + (reg_set_last): Likewise. + (note_stores): Pass data parameter to worker function. + * alias.c (record_set): Take additional parameter. + (init_alias_analysis): Pass it. + * caller-save.c (mark_set_regs): Take additional parameter. + (save_call_clobbered_regs): Pass NULL to note_stores. + * combine.c (set_nonzero_bits_and_sign_copies): Take additional + parameter. + (record_dead_and_set_regs_1): Likewise. + (reg_dead_at_p_1): Likewise. + (combine_instructions): Adjust calls to note_stores. + (try_combine): Likewise. + (record_dead_insn): Remove. + (record_dead_and_set_regs): Adjust calls to note_stores. + (reg_dead_at_p): Likewise. + * cse.c (invalidate_skipped_set): Take additional parameter. + (cse_check_loop_start): Likewise. + (cse_check_loop_start_value): Remove. + (cse_set_around_loop): Adjust calls to note_stores. + * flow.c (notice_stack_pointer_modification): Take additional + parameter. Remove duplicate declaration. + (record_volatile_insns): Adjust calls to note_stores. + * gcse.c (record_set_info): Take additional parameter. + (record_last_set_info): Likewise. + (invalidate_nonnull_info): Likewise. + (record_set_insn): Remove. + (compute_sets): Adjust calls to note_stores. + (last_set_insn): Remove. + (compute_hash_table): Adjust calls to note_stores. + (insert_insn_end_bb): Likewise. + (delete_null_pointer_checks): Likewise. + * global.c (mark_reg_store): Take additional parameter. + (mark_reg_clobber): Likewise. + (reg_becomes_live): Likewise. + (global_conflicts): Adjust calls to note_stores. + (build_insn_chain): Likewise. + * integrate.c (note_modified_parmregs): Take additional parameter. + (mark_stores): Likewise. Make it static. + (save_for_inline_nocopy): Adjust calls to note_stores. + (try_constants): Likewise. + * integrate.h (mark_stores): Remove declaration. + * jump.c (mark_modified_reg): Take additional parameter. + (thread_jumps): Adjust calls to note_stores. + * local-alloc.c (validate_equiv_mem_from_store): Take additional + parameter. + (no_equiv): Likewise. + (reg_is_set): Likewise. + (validate_equiv_mem): Adjust calls to note_stores. + (update_equiv_regs): Likewise. + (block_alloc): Likewise. + * loop.c (note_set_pseudo_multiple_uses_retval): Remove. + (note_addr_stored): Take additional parameter. + (note_set_pseudo_multiple_uses): Likewise. + (record_initial): Likewise. + (prescan_loop): Adjust calls to note_stores. + (strength_reduce): Likewise. + (check_dbra_loop): Likewise. + * regmove.c (flags_set_1): Take additional parameter. + (mark_flags_life_zones): Adjust calls to note_stores. + * reload1.c (mark_not_eliminable): Take additional parameter. + (forget_old_reloads_1): Likewise. + (reload_cse_invalidate_rtx): Likewise. + (reload_cse_check_clobber): Likewise. + (reload_combine_note_store): Likewise. + (move2add_note_store): Likewise. + (reload): Adjust calls to note_stores. + (reload_as_needed): Likewise. + (emit_reload_insns): Likewise. + (reload_cse_regs_1): Likewise. + (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx. + (reload_combine): Adjust calls to note_stores. + * resource.c (update_live_status): Take additional parameter. + (mark_target_live_regs): Adjust calls to note_stores. + * stupid.c (find_clobbered_regs): Take additional parameter. + (stupid_life_analysis): Adjust calls to note_stores. + +Wed Oct 27 19:26:12 1999 Nick Clifton + + * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete + definition. + + * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete + definition. + + * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms + of the variable arm_structure_size_boundary. + +Wed Oct 27 02:05:58 1999 Mark P. Mitchell + + * alias.c (init_alias_analysis): Allocate reg_known_value and + reg_known_equiv_p on the heap. Likewise for new_reg_base_value + and reg_seen. + (end_alias_analysis): Free reg_known_value and reg_known_equiv_p. + * cse.c (cse_main): Call end_alias_analysis. + * haifa-sched.c (schedule_insns): Likewise. + * local-alloc. (update_equiv_regs): Likewise. + * reload1.c (reload_cse_regs): Likewise. + +Wed Oct 27 01:49:17 1999 Rainer Orth + + * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET. + * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse + mapping from MASK_FPU. + +Wed Oct 27 01:42:26 1999 Scott Christley + + * sparc.md (call): Don't bound structure return size to 0xfff. + +Wed Oct 27 00:56:59 1999 Richard Henderson + + * resource.c (mark_target_live_regs): Check that the target + insn wasn't created after compute_bb_for_insn. + +Tue Oct 26 23:15:03 1999 Mark Mitchell + + * ggc-page.c (poison_pages): Don't be overzealous. + +Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com) + + * alias.c: Update comments for ADDRESS. + (nonlocal_reference_p): Look inside the ADDRESS to determine if + it is a local memory reference. + + * c-typeck.c (build_function_call): Check that the built-in + function is of class BUILT_IN_NORMAL before trying to recongize + it as BUILT_IN_ABS. + * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA. + * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE. + +Wed Oct 27 00:14:13 1999 Robert Lipe + + * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead + of alloca. + (pre_gcse): Likewise. + (hoist_expr_reaches_here_p): Likewise. + (hoist_code): Likewise. + (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core + code to ... + (pre_expr_reaches_here_p_work): ... here. + (expr_reaches_here_p): Replace alloca with xcalloc. Move core + code to ... + (expr_reaches_here_p_work): ... here. + +Tue Oct 26 20:42:45 1999 Richard Henderson + + * resource.c (find_basic_block): Delete. + (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead. + (init_resource_info): Call compute_bb_for_insn. + +Tue Oct 26 20:21:02 1999 Richard Henderson + + * flow.c (merge_blocks_move_predecessor_nojumps): Cope + with already adjacent blocks, but no fallthru. + (merge_blocks_move_successor_nojumps): Simplify. + (debug_flow_info): New. + + * toplev.c (rest_of_compilation): Open jump1 dump file before + jump and close after, as opposed to just using dump_rtl. + +Wed Oct 27 03:09:23 1999 J"orn Rennecke + + * reload.h (earlyclobber_operand_p): Declare. + * reload.c (earlyclobber_operand_p): Don't declare. No longer static. + * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with + an earlyclobbered output conflict with RELOAD_INPUT reloads - handle + case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p. + +Tue Oct 26 18:23:38 1999 Jan Hubicka + Richard Henderson + + * emit-rtl.c (emit_block_insn_before): New. + (emit_block_insn_after): New. + * basic-block.h: Declare them. + + * bitmap.h: Protect from multiple inclusion. + + * recog.c (scratch_operand): Handle VOIDmode correctly. + + * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New. + + * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack. + * function.c (assign_parms): Likewise. + * global.c (global_conflicts): Clarify STACK_REGS commentary. + + * reg-stack.c (max_uid): Remove. + (blocks, block_begin, block_end, block_drops_in): Remove. + (block_stack_in, block_out_reg_set, block_number): Remove. + (struct block_info_def, BLOCK_INFO): New. + (enum emit_where): New. + (current_block): New. + (BLOCK_NUM): Remove. + (mark_regs_pat, record_label_references): Remove. + (record_reg_life_pat, record_reg_life, find_blocks): Remove. + (nan): New. + (goto_block_pat, print_blocks, dump_stack_info): Remove. + (reg_to_stack): Simplified test for existence of fp code. Use + flow.c code. Call shorten_branches after cross-jump opt. + (check_asm_stack_operands): Renamed from record_asm_reg_life. + Return false if the asm doesn't use stack regs. Don't do life + analysis on the asm. + (emit_pop_insn): Replace function pointer arg `when' with + enum `where'. Update all callers. + (change_stack): Likewise. Update basic block end. + (emit_swap_insn): Use current_block->head to limit reverse search + for start of block. Use emit_block_insn_after. + (subst_stack_regs_pat): Handle USE and CLOBBER patterns. + (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct + structure assignment instead of bcopy. + (print_stack): New. + (convert_regs_entry, convert_regs_exit): New. + (convert_regs_1, convert_regs_2): Split out from convert_regs. + Work on basic blocks and the CFG. + (convert_regs): Use them. + + * i386.c (output_fix_trunc): Remove code for DImode input operand + not at top-of-stack. + * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with + appropriate mode. + (fix_truncdi_1): Allow any mode scratch. + +Tue Oct 26 13:30:35 1999 Richard Henderson + + * alpha.h (TARGET_MEM_FUNCTIONS): Define here. + * linux.h, netbsd.h, vms.h: Not here. + +1999-10-26 Gavin Romig-Koch + + * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY, + ISA_HAS_FP4,ISA_HAS_CONDMOVE): New. + (GENERATE_BRANCHLIKELY,HAVE_SQRT_P, + CONDITIONAL_REGISTER_USEAGE): Use them. + * config/mips/mips.c (mips_move_1word,mips_move_2words, + gen_conditional_branch,override_options) : Use them. + * config/mips/mips.md : Use them. + +Tue Oct 26 13:09:23 1999 Richard Henderson + + * i386.md (zero_extendqihi2): Use SImode register name with andl. + +Tue Oct 26 12:35:38 1999 Richard Henderson + + * integrate.c (function_cannot_inline_p): Don't allow inlining + if setjmp is used. + +Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi + + * c-parse.in (cast_expr): Constify. + + * cccp.c (special_symbol): Likewise. + + * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise. + + * dwarf2out.c (base_type_die): Likewise. + + * global.c (allocno_compare): Likewise. + + * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise. + + * regclass.c (fix_register): Likewise. + + * rtl.h (fix_register): Likewise. + + * stupid.c (stupid_reg_compare): Likewise. + + * toplev.c (decode_f_option): Likewise. + + * tree.c (build_complex_type): Likewise. + +Tue Oct 26 18:35:25 1999 Richard Earnshaw + + * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE. + +Tue Oct 26 15:42:56 1999 Bernd Schmidt + + * reload.c (find_reloads): Compute mode and nregs fields of all + reloads. + * reload1.c (calculate_needs_all_insns): Simplify a bit. + (calculate_needs): Use precomputed mode/nregs values. + (allocate_reload_reg): Likewise. + Break out two... + (failed_reload, set_reload_reg): ... new functions. + (choose_reload_regs_init): New function, mostly broken out from... + (choose_reload_regs): ... here. Lose all the save_xxx nonsense. + Also lose one #if 0 block. + +Tue Oct 26 02:48:32 1999 Marc Espie + + * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name + substitution. + +Tue Oct 26 01:27:32 1999 Mark Mitchell + + * tree.h (BLOCK_TYPE_TAGS): Remove. + (BLOCK_END_NOTE): Likewise. + (BLOCK_LIVE_RANGE_FLAG): Likewise. + (BLOCK_LIVE_RANGE_START): Likewise. + (BLOCK_LIVE_RANGE_END): Likewise. + (tree_block): Remove live_range_flag, live_range_var_flag, and + type_tags. Remove end_note, live_range_start, and live_range_end. + (remember_end_note): Remove prototype. + * tree.c (build_block): Don't set BLOCK_TYPE_TAGS. + * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call + remember_end_note. + * ggc-common.c (ggc_mark_tree_children): Don't mark + BLOCK_TYPE_TAGS or BLOCK_END_NOTE. + * integrate.c (adjust_copied_decl_tree): Remove. + * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS. + * stmt.c (last_block_end_note): Remove. + (init_stmt): Don't add a GC root for it. + (expand_fixup): Don't set it. + (remember_end_note): Remove. + (expand_end_bindings): Don't set last_block_end_note. + +Tue Oct 26 00:41:54 1999 Bernd Schmidt + + * reload1.c (reload_reg_free_for_value_p): Show + RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER + reloads. + +Mon Oct 25 23:54:45 1999 Geoff Keating + + * expmed.c (extract_bit_field): Allow for the case of non-integer + objects that are smaller than a word (like SFmode on a 64-bit + machine). + + * loop.c (basic_induction_var): A non-integer variable which is + being set by a paradoxical subreg is probably not a biv. + +1999-10-25 Herman A.J. ten Brugge + + * prefix.c (translate_name) Check for empty prefix string. + +Mon Oct 25 23:10:45 1999 Andreas Schwab + + * Makefile.in (CPP_CROSS_NAME): New variable. + (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross + xcpp. + (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the + names of the files to be uninstalled. + +Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com) + + * collect2.c (IS_DIR_SEPARATOR): Define. + (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR. + + * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static + functions too. + + * haifa-sched.c (add_dependence): Update the true dependency + cache the first time we add a true dependence to the LOG_LINKS chain. + +Mon Oct 25 22:27:40 1999 Jim Kingdon + + * fold-const.c (fold): Fix comment. + +Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi + + * dbxout.c (lastfile, cwd, dbxout_type_method_1, + dbxout_symbol_location, dbxout_symbol_name, dbxout_init, + dbxout_start_new_source_file, dbxout_source_file, + dbxout_source_line, dbxout_finish, dbxout_type_fields, + dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol): + Constify a char*. + (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes. + (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED. + (dbxout_block): Initialize variable `blocknum'. + + * dbxout.h (dbxout_init, dbxout_finish, + dbxout_start_new_source_file, dbxout_source_file, dbxout_types, + dbxout_args, dbxout_source_line): Constify a char*. + + * dwarfout.c (dwarf_tag_name, dwarf_attr_name, + dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name, + dwarf_fund_type_name, name_attribute, stmt_list_attribute, + low_pc_attribute, high_pc_attribute, body_begin_attribute, + body_end_attribute, comp_dir_attribute, sf_names_attribute, + src_info_attribute, mac_info_attribute, producer_attribute, + lookup_filename, generate_macinfo_entry, fundamental_type_code, + dwarfout_line, dwarfout_start_new_source_file, dwarfout_define, + dwarfout_undef): Constify a char*. + (add_incomplete_type, retry_incomplete_types): Add prototypes. + + * dwarfout.h (dwarfout_define, dwarfout_undef, + dwarfout_start_new_source_file, dwarfout_line): Constify a char*. + +1999-10-25 Gavin Romig-Koch + + * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined. + (MULTILIB_ISA_DEFAULT): New. + (MULTILIB_DEFAULTS): Use it. + * config/mips/mips.c (): Remove the now unnecessary definition + of MIPS_ISA_DEFAULT. + * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now + unnecessary definition. + +Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (pic_load_addr): Add constraints to operand 1. + +1999-10-25 Bruce Korb + + * fixinc/genfixes: Provide a means for specifying -D options to + AutoGen + +Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com) + + * arm.c (arm_override_options): Correct initialization of + arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched, + arm_is_strong, and arm_is_6_or_7. + + * loop.c (note_set_pseudo_multiple_uses_retval): New variable. + (note_set_pseudo_multiple_uses): New function. + (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine + if a pseudo set in the loop exit is used elsewhere. + +Sun Oct 24 20:52:40 1999 Mark Mitchell + + * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler. + +Sun Oct 24 21:02:46 1999 Richard Henderson + + * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into + a single load-address pattern. + +Sun Oct 24 19:33:24 1999 Mark P. Mitchell + + * haifa-sched.c (schedule_insns): Don't assign LUIDs differently + depending on whether or not line-number notes are present. + +Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi + + * cccp.c (progname, file_buf, default_include, include_file, + macrodef, definition, hashval, wchar_type, user_label_prefix, + directive, out_fname, if_stack, safe_write, index0, get_lintcmd, + expand_to_temp_buffer, is_system_include, base_name, + absolute_filename, read_name_map, open_include_file, + record_control_macro, check_precompiled, check_preconditions, + pcfinclude, pass_thru_directive, create_definition, + check_macro_name, comp_def_part, collect_expansion, + check_assertion, read_token_list, assertion_install, + assertion_lookup, eval_if_expression, conditional_skip, + validate_else, skip_quoted_string, quote_string, macarg1, + error_from_errno, install, lookup, hashf, dump_defn_1, + perror_with_name, pfatal_with_name, main, trigraph_pcp, + check_white_space, rescan, handle_directive, monthnames, + special_symbol, do_include, remap_include_file, write_output, + arglist, do_assert, do_unassert, do_line, do_error, do_once, + do_ident, do_sccs, do_xifdef, skip_if_group, + output_line_directive, macroexpand, macarg, change_newlines, + initialize_builtins, make_definition): Constify a char*. + + * pcp.h (stringdef): Likewise. + +Sun Oct 24 13:29:28 1999 Richard Henderson + + * unroll.c (copy_loop_body): Examine SET_DEST of single_set + not of pattern. + +Sun Oct 24 13:14:20 1999 Graham + Richard Henderson + + * alias.c: Include ggc.h. + (reg_base_value, new_reg_base_value, reg_base_value_size): Make static. + (record_set): Verify enough room in reg_base_value. + (init_alias_analysis): Allocate reg_base_value with xcalloc. + Register it as a GC root. + (end_alias_analysis): Free reg_base_value. Remove it as a GC root. + * Makefile.in (alias.o): Depend on ggc.h. + + * unroll.c (unroll_loop): Verify the insn before a barrier + is a JUMP_INSN before checking JUMP_LABEL. + +Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi + + * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*. + * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise. + * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/mips.h (ASM_OUTPUT_ASCII): Likewise. + * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise. + +Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi + + * output.h (ctors_section, dtors_section, bss_section): Prototype. + + * alpha/alpha-interix.h (text_section): Delete prototype. + * alpha/elf.h (text_section): Likewise. + * arm/linux-elf.h (text_section): Likewise. + * arm/linux-telf.h (text_section): Likewise. + * c4x/c4x.h (text_section): Likewise. + * dsp16xx/dsp16xx.h (bss_section): Likewise. + * elfos.h (text_section): Likewise. + * i386/aix386ng.h (text_section): Likewise. + * i386/i386-interix.h (text_section): Likewise. + * i386/sco5.h (text_section): Likewise. + * i386/svr3gas.h (text_section): Likewise. + * nextstep.h (text_section): Likewise. + * psos.h (text_section): Likewise. + * ptx4.h (text_section): Likewise. + * svr3.h (text_section): Likewise. + * svr4.h (text_section, ctors_section, dtors_section): Likewise. + +Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi + + * final.c (peephole): Delete prototype. + + * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes. + (pre_insert_copies): Remove unused variable `bb'. + + * genrecog.c (debug_decision_0, debug_decision_list, main): Add + prototypes. + + * output.h (peephole): Add prototype. + +Sun Oct 24 11:35:30 1999 Mark P. Mitchell + + * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to + -O0. + +Sat Oct 23 21:13:00 1999 Mark Mitchell + + * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT + for inlined declarations. + +Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com) + + * arm.c (logical_binary_operator): New fucntion. + * arm.h (logical_binary_operator): Declare it. + (PREDICATE_CODES): Handle logical_binary_operator. + * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for + output constraints. Add appropriate splitters. + (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise. + (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise. + (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise. + +Fri Oct 22 23:46:50 1999 Bernd Schmidt + + * genoutput.c (struct operand_data): New elt eliminable. + (output_operand_data): Write it. + (scan_operands): Set it for MATCH_OPERAND, clear for other matchers. + (compare_operands): Take it into account. + * recog.h (struct insn_operand_data): New elt eliminable. + * reload1.c (check_eliminable_occurrences, elimination_effects): New + functions. + (old_asm_operands_vec, new_asm_operands_vec): Delete. + (eliminate_regs): Move code that detects changes to elimination + target regs into new function elimination_effects. + Delete one #if 0 block. + Abort for USE, CLOBBER, ASM_OPERANDS and SET. + (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs, + ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs. + Only call eliminate_regs for real operands of the insn, not for parts + of its structure or parts matched by things like match_operator. + Use elimination_effects and check_eliminable_occurrences. Use + copy_insn to duplicate the pattern when not in the final pass. + +Fri Oct 22 09:03:44 1999 Mark Mitchell + + * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld, + and fld. + +1999-10-22 Bruce Korb + + * fixinc/README: document the "mach" machine matching test + * fixinc/fixfixes.c: Implement the #else/#endif label fix + * fixinc/fixtests.c: Implement the #else/#endif label test + * fixinc/inclhack.def: utilize these tests and fixes + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + * fixinc/fixincl.sh: regen + +Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also + depend on ggc.h. + +Thu Oct 21 20:30:19 1999 Matthias Klose + + * gcc.1: Document exit codes. + +Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi + + * calls.c: Include tm_p.h later, so everything we need is defined. + * expr.c: Likewise. + * function.c: Likewise. + + * except.c: Include tm_p.h. + + * sparc.c: Likewise. + (dwarf2out_cfi_label): Don't prototype. + (check_return_regs, epilogue_renumber, + ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, + ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline, + ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask, + ultra_schedule_insn): Add static prototype. + (data_segment_operand, text_segment_operand): Call itself with the + proper number of arguments. + (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*. + + * sparc.h: Move all declarations to sparc-protos.h. + (SELECT_RTX_SECTION): Pass a missing MODE argument to + symbolic_operand. + + * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise. + + * config/svr4.h (text_section, ctors_section, dtors_section): Add + Prototypes. + (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION, + ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, + ASM_OUTPUT_ASCII): Constify a char*. + + * sparc-protos.h: New file for sparc prototypes. + +Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi + + * function.c (record_insns, contains): Always declare and define. + (record_insns): Mark with ATTRIBUTE_UNUSED. + +Thu Oct 21 13:03:49 1999 Jonathan Larmour + + * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option + to .section when outputting a .bss section to deal with multiple + .bss input sections (as happens with -fdata-sections) + Also output %progbits, not @progbits so the assembler doesn't treat as + a comment. + * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise + + * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of + thumb parts even when building with non-thumb CPUs, by forcing + thumb mode. + +Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com) + + * sparc.md (movsf_const_intreg): If splitting, length must be > 1. + (movdf_const_intreg_sp64): Similarly. + + * local-alloc.c (update_equiv_regs): Check the correct insn + for pre-existing REG_EQUIV notes. + +Wed Oct 20 20:41:46 1999 Mark Mitchell + + * cse.c (cse_end_of_basic_block): Don't return the end of a basic + block reached by a branch if we're not going to actually process + this block. + +Wed Oct 20 15:18:42 1999 Jim Wilson + + * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is + a local extern function declaration. + +Wed Oct 20 13:56:01 1999 Richard Henderson + + * i386.c (ix86_expand_prologue): Properly wrap USE around + reg for CALL_INSN_FUNCTION_USAGE. + +Thu Oct 14 18:51:37 1999 Andrew Haley + + * config/mips/mips.md (movdf_internal1a): Allow floating-point + move between GP_REGs. + +Wed Oct 20 15:36:11 1999 Andrew Haley + + * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of + the mode size when finding out if an offset is legal. + +Wed Oct 20 06:26:58 1999 Richard Henderson + + * basic-block.h (PROP_*): Move constants from ... + * flow.c: ... here. + (compute_bb_for_insn): Free the array before reallocating. + (update_life_info): New arg PROP_FLAGS; pass on to propagate_block. + (allocate_reg_life_data): Reset all reg variables collected by + propagate_block. + (get_block_head_tail): Don't convert from bb to block. + (get_bb_head_tail): New. Update all callers of get_block_head_tail. + (find_insn_reg_weight): Take block not bb. + (schedule_block): Don't set block num for moved insns. + (schedule_region): Don't update_life_info or find_insn_reg_weight. + (schedule_insns): Do it here instead. + * combine.c (combine_instructions): Invoke compute_bb_for_insn + before update_life_info. + * recog.c (split_all_insns, peephole2_optimize): Update for + new arg to update_life_info. + * rtlanal.c (remove_note): Cope with NULL note. + * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage + if we did sched1. + +Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com) + + * jump.c (jump_optimize_1): More accurately detect casesi insns. + + * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic + block records so that merge_blocks_nomove will clean up correctly. + (split_edge): Handle casesi insns. + + * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS. + +Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (call, call_value): Do not emit a blockage after restoring + the PIC register. + +Tue Oct 19 17:22:39 1999 Mark Mitchell + + * c-typeck.c (c_expand_asm_operands): Fix typo. + +Tue Oct 19 18:42:58 1999 Bernd Schmidt + + * arm.c (fpu_rhs_operand): Verify modes. + (fpu_add_operand): Likewise. + (di_operand): Likewise. + (soft_df_operand): Likewise. + +Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (arm_return_in_memory): APCS rules state that the elements + of a structure returned in a register must be 'integer-like'. + +1999-10-19 Bruce Korb + + * fixinc/Makefile.in: Change the generation rules to run `genfixes' + in the source tree when the generated targets are out of date + * fixinc/genfixes: Alter it to run individual fixes for make. + * fixinc/README: rewrite + * fixinc/inclhack.def: moved initial comments to README + +Tue Oct 19 14:01:34 1999 Nick Clifton + + * toplev.c (main): Do not generate an error message if an + unrecognized command line switch is recognizable by another + language. If extra_warnings are enabled, then generate a + warning message instead. + +Tue Oct 19 11:41:12 1999 Mumit Khan + + * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro. + (insert_pack_attributes): Delete prototype. + + * c-pragma.c (default_alignment): New static variable. + (push_alignment): Initialize to current effective alignment. + (pop_alignment): Use to set new alignment. + (insert_pack_attributes): Delete function. + (handle_pragma_token): Set default_alignment as well each time + a #pragma pack() is encountered. + +Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com) + + * reg-stack.c (stack_result): Aggregates are not returned in + stack registers. + +Tue Oct 19 01:26:48 1999 Alasdair Baird + + * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation. + +Mon Oct 18 15:19:41 1999 Richard Henderson + + * basic-block.h (set_block_num): Declare. + * flow.c (update_life_info): Don't call compute_bb_for_insn + or free_basic_block_vars. + * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0. + (insn_orig_block): Remove. + (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM. + (schedule_block): Keep BLOCK_NUM up-to-date. + (schedule_insns): Use compute_bb_for_insn. + * recog.c (split_all_insns): Likewise. + (peephole2_optimize): Likewise. + +Mon Oct 18 18:50:51 1999 Andreas Schwab + + * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word + if the pic register is used. + +Mon Oct 18 02:38:46 1999 Bernd Schmidt + + * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT. + (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of + if that tests TREE_PERMANENT. + +Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (invalidate_for_call): Do not remove memory references from + the table here. It's handled elsewhere. + + * haifa-sched.c (add_dependence): Protect references to the + true dependency cache with #ifdef INSN_SCHEDULING. + (remove_dependence): Similarly. + + * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate + to the cfg code that this is a return instruction. + * mn10300.md (return_internal): Similarly. + + * combine.c (get_last_value): If the last set of a register + is after subst_low_cuid, then we can not use it to determine + the register's last value. + +Sun Oct 17 11:02:52 1999 Mark Mitchell + + * Makefile.in: Back out previous change. + +Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). + + * haifa-sched.c (add_dependence): Only check/update the cache + if it exists. + (remove_dependence): Likewise. + (schedule_insns): Only create the true_dependency_cache if the + average number of instructions in a basic block is very large. + +Sun Oct 17 11:02:52 1999 Mark Mitchell + + * Makefile.in (ggc-common.o): Depend on genrtl.h. + (ggc-simple.o): Likewise. + (ggc-page.o): Likewise. + +Sun Oct 17 02:09:50 1999 Andrew MacLeod + + * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available): + Prototype for exported functions. + (pre_lcm, pre_rev_lcm): Remove prototypes. + * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. + (compute_available): Move to lcm.c, and change parameter order. + (one_classic_gcse_pass): Call compute_ae_kill with parameters. + (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete. + (gcse_main): No longer call compute_preds_succs. Rebuild the + set table after reach pre pass. + (pre_insert_map, pre_delete_map, edge_list): New. + (alloc_pre_mem): Allocate edge vectors. + (free_pre_mem): Delete edge vectors. + (compute_pre_data): Call new edge based lcm routines. + (process_insert_insn): New function. + (insert_insn_end_bb): Use it. + (pre_edge_insert): New function. + (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as + needed. + (pre_insert_copies): Revamp using new edge based lcm outputs. + (pre_delete): Likewise. + (one_pre_gcse_pass): Insert & remove fake edges to the exit + block. + (compute_code_hoist_vbeinout): New new edge based routines. + * lcm.c: Remove all the old LCM functions. Replace with new ones + that work with the new cfg datastructures and work with edges + instead of blocks. + +Sun Oct 17 00:44:17 1999 Bernd Schmidt + + * reload.h (struct reload): Add new fields "mode" and "nregs". + * reload1.c: Change all occurrences of reload_mode and reload_nregs + to reference the "mode" and "nregs" field within struct reload. + +Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (true_dependency_cache): New. + (add_dependence): Use the true dependency cache to avoid expensive + walks down the LOG_LINKS dependency list. Add entries to the + cache as necessary. + (remove_dependence): Remove entries from the true dependency cache + as needed. + (schedule_insns): Allocate and initialize and free the true + dependency cache. + + * haifa-sched.c (schedule_insns): Do not remove inter-block + dependencies anymore. + +Sat Oct 16 11:19:52 1999 Richard Henderson + + * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H. + * i386/t-winnt: Likewise. + +Sat Oct 16 11:11:54 1999 Richard Henderson + + * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug. + +1999-10-16 Manfred Hollstein + + * Makefile.in (LANGUAGES): Omit "proto". + (clean): Remove stale comment about removing unprotoize.c. + +Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi + + * protoize.c (safe_read, safe_write): Avoid the gcc extension of + using arithmetic on void pointers. + +Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (compute_block_forward_dependencies): Only check + for notes, deleted insns and duplicates if ENABLE_CHECKING is defined. + +Sat Oct 16 00:07:01 1999 Richard Henderson + + * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. + (expr_equiv_p): Reject memories with different alias sets. + +Fri Oct 15 15:17:29 1999 Greg McGary + + * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls. + * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags. + (f_options): Add "bounded-pointers" and "bounds-check" entries. + * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified". + (lang_init): Set default for flag_bounds_check if still "unspecified". + +Sat Oct 16 13:42:29 1999 Michael Hayes + + * config/c4x/c4x.md (HF mode patterns): Add missing modes. + +Sat Oct 16 13:37:46 1999 Michael Hayes + + * config/c4x/c4x.md (movstrqi_small): Utilize parallel move + instructions. + +Sat Oct 16 13:26:47 1999 Michael Hayes + + * config/c4x/c4x.md (*db_noclobber, + *decrement_and_branch_until_zero_noclobber): New patterns and + associated splitters. + +Sat Oct 16 13:13:15 1999 Michael Hayes + + * config/c4x/c4x.md (parallel instruction patterns): Rework + constraints to keep reload happy. + +Sat Oct 16 13:03:16 1999 Michael Hayes + + * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber, + *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber, + *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber): + Add new patterns and associated post-reload splitters. + +Sat Oct 16 12:42:12 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string. + +Sat Oct 16 12:34:44 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern + if appropriate. + * config/c4x/c4x.md (rpts_top): New pattern and splitter. + +Sat Oct 16 12:26:30 1999 Michael Hayes + + * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF + memory mode. + +Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (move_operand): Rely on memory_address_p to determine the + validity of non-indexed memory addresses. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic + operand in DFmode and SFmode when generating PA2.0 code. + +Fri Oct 15 14:25:19 1999 Richard Henderson + + * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF. + +Fri Oct 15 13:48:45 1999 Richard Henderson + + * mips.c (function_prologue): Fix argument types. + * mips.md (casesi): Use emit_jump_insn for casesi_internal. + (casesi_internal): Write to the scratch register. + +1999-10-15 11:16 -0700 Zack Weinberg + + * cppexp.c (cpp_parse_escape): Make static. Change second arg + to U_CHAR **. + (parse_charconst): Delete unnecessary cast when calling + cpp_parse_escape. + (cpplib.h): Kill prototype of cpp_parse_escape. + +Fri Oct 15 11:02:46 1999 Richard Henderson + + Based on patch from Michael Gschwind : + * unroll.c (unroll_loop): Cast return value of alloca. + * i370/i370.c: Include function.h and toplev.h. + (i370_label_scan): Remove c++ commented abort. + * i370/i370.h (HANDLE_PRAGMA): Takes three arguments. + (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept. + * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define. + * i370/xm-mvs.h, i370/xm-oe.h: Likewise. + +Fri Oct 15 03:01:01 1999 Loren Rittle + + * config/t-freebsd: Do not override USER_H. + * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_. + +Fri Oct 15 02:37:28 1999 Alastair J. Houghton + Mumit Khan + + * c-parse.in (component_decl): Support anonymous struct/union. + (%expect): Update. + * c-parse.y: Regenerate. + * c-parse.c: Likewise. + * objc/objc-parse.y: Likewise. + * objc/objc-parse.c: Likewise. + * c-decl.c (finish_struct): Don't sort the fields. + (field_decl_cmp): Delete unused function. + +Fri Oct 15 01:20:52 1999 Richard Henderson + + * sparc.md (movsf_const_intreg): Revert last constraint change. + (movdf_const_intreg_sp32): Likewise. + +Fri Oct 15 01:47:51 1999 Vladimir Makarov + + * cse.c: Include hashtab.h instead of splay-tree.h + (struct cse_reg_info): No longer use variant union. Add new + field "regno". All references changed to avoid union. + (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables. + (free_cse_reg_info): Remove. + (hash_cse_reg_info, cse_reg_info_equal_p): New functions. + (get_cse_reg_info): Revamp to use expandable hash tables instead + of splay trees. Initialize new fields in cse_reg_info structure. + (new_basic_block): Similarly. + +Thu Oct 14 23:51:56 1999 Richard Henderson + + * genrecog.c (message_with_line): Prototype. + (validate_pattern): Pass along the set for the dest, not a flag. + Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL. + Check for PC/CC0 as sources. + (nodes_identical): Check for children position match before + allowing the combination. + + * rtl.c (read_rtx): Track line number across \\\n. + +Thu Oct 14 23:50:25 1999 Richard Henderson + + * mips.h (SPECIAL_MODE_PREDICATES): New. + * mips.md (*) Use nonimmediate_operand not general_operand for outputs. + (movdi+1, movsi+1): Add output reload constraint. + (casesi_internal): Likewise. Fix commentary. + (return_internal): Use pmode_register_operand. + +Thu Oct 14 23:19:34 1999 Richard Henderson + + * 1750a.md (movstrqi): Add missing output reload constraint. + (call_value): Likewise. + * a29k.md (cpxxx patterns): Add missing match_operator mode. + (jmpfdec): Add missing inout reload constraint. + * elxsi.md (addsi patterns): Add missing output reload constraint. + (move from sp): Use @ alternates. + (call_value): No constraint on output. + * fr30.md (movsi_pop): Add missing output reload constraint. + (movsf_constant_store): Likewise. + (splits): Remove constraints. + (subsi3): Add missing mode. + * i370.md (cmpstrsi+1): Add missing output reload constraint. + (call_value): Likewise. + * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints. + * m32r.h (PREDICATE_CODES): Add seth_add3_operand. + * m32r.md (movsicc_internal): Add output reload constraint. + (movstrsi_internal): Add inout reload constraints. + * m88k.h (reg_names): Don't declare. + (SPECIAL_MODE_PREDICATES): New. + * m88k.md (*): Use register_operand not reg_or_0_operand + on destinations. + * mn10200.h (PREDICATE_CODES): New. + * ns32k.md (ffs pattern): Add output reload constraint. + * pdp11.md (sob pattern): Add inout reload constraint. + * sh.md (splits): Remove constraints. + (indirect_jump_scratch, fpu_switch): Add output reload constraint. + * v850.md (pattern_is_ok_for_epilogue): Likewise. + * vax.md (jgequ pattern): Add inout reload constraint. + +Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (djgpp): Revert previous patch. + * configure: Rebuit. + * config/i386/djgpp.h: Revert previous patch. + +Fri Oct 15 00:00:24 1999 Loren J. Rittle + + * fixinc/inclhack.def: Restore patch lost during last merge of + "no_bogosity" branch. + * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. + +Thu Oct 14 23:57:56 1999 Gavin Romig-Koch + + * fixincludes: Add a HPUX 11 fix for inttypes.h. + * fixinc/inclhack.def: Same. + * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate. + +Thu Oct 14 22:51:55 1999 Richard Henderson + + * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF + as the base of a PLUS. + +Fri Oct 15 18:36:07 1999 Michael Hayes + + * config/c4x/c4x.md: Define mode for remaining unspec operators. + * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand. + +Thu Oct 14 22:14:23 1999 Richard Henderson + + * pa.md (post_stw+1): Use pmode_register_operand. + (dcacheflush, icacheflush): Likewise. + + * i386.md (movstricthi_1): Allow r/r. + +Thu Oct 14 19:44:08 1999 Jan Hubicka + + * fold-const.c (fold): Convert (or (not arg0) (not arg1)) + to (not (and (arg0) (arg1))). Similary for and. + + * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case, + fallthrough to associate code. + Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have + bits in common. + + * combine.c (simplify_logical): Convert XOR to IOR if operands have + no bits in common; remove XOR to ROTATE conversion. + +Fri Oct 15 17:40:11 1999 Michael Hayes + + * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare. + +Fri Oct 15 17:27:17 1999 Michael Hayes + + * config/c4x/c4x.c (dst_operand): New. + (PREDICATE_CODES): Update. + * config/c4x/c4x.h (dst_operand): Declare it. + * config/c4x/c4x.md: Define mode for each unspec usage. + (move patterns): Use dst_operand predicate instead of src_operand. + (movqi_update, movqf_update): Delete. + +Thu Oct 14 18:48:54 1999 Richard Henderson + + * recog.c (pmode_register_operand): New. + * recog.h: Declare it. + * genrecog.c (pred_codes): Likewise. + (special_mode_pred_table): Likewise. + (validate_pattern): Don't warn no mode for address_operand. + + * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression + if the operand is not insn-like. + +Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com) + Sylvian Pion + + * fold-const.c (fold): Handle more simplifications allowed by IEEE. + +Thu Oct 14 17:30:14 1999 Richard Henderson + + * sparc.md (*): Use {nonimmediate,register}_operand as appropriate + instead of general_operand in a SET_DEST. Use const_double_operand + instead of an explicit test against CONST_DOUBLE. + (movsf_const_lo): Add missing register mode. + (goto_handler_and_restore): Add auxiliary test for Pmode. + (flush): Adjust to use address_operand. + (return_sf_no_fpu): Add missing output constraint. + +Thu Oct 14 17:21:26 1999 Richard Henderson + + * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand + for call return value. + (call_value_indirect_aix64, call_value_indirect_nt): Likewise. + +Thu Oct 14 13:54:25 1999 Jason Merrill + + * toplev.c (main): Only warn about options for other languages. + * collect2.c (main): Pass -w to sub-gcc. + +Thu Oct 14 16:27:50 1999 Richard Henderson + + * flow.c (propagate_block): Add call-clobbered registers to + significant too. + + * flow.c (propagate_block): Use free_EXPR_LIST_list instead of + zapping mem_set_list. + (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node. + (mark_set_1, mark_used_regs): Likewise. + +Thu Oct 14 10:51:49 1999 Richard Henderson + + * m68k.md (zero_extendsidi2): Add missing output reload constraint. + +Wed Oct 13 00:09:18 1999 Gerald Pfeifer + + * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes, + -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only + options. Also add a new item "C-only Warning Options" to the + option summary. + +1999-10-14 Gavin Romig-Koch + + * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info + from multiple calls. + +Thu Oct 14 04:54:54 1999 Richard Henderson + + * i386.md (call value patterns): Move to the end of the file. + (prologue_set_got, prologue_get_pc): Use register_operand for op 0. + +1999-10-14 Mark Elbrecht + + * configure.in (djgpp configuration): Define extra_objects.. + * configure: Rebuilt. + * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define. + (DTORS_SECTION_ASM_OP): Define. + (INIT_SECTION_ASM_OP): Define. + (FINI_SECTION_ASM_OP): Define. + (DATA_SECTION_ASM_OP): Define. + (TEXT_SECTION_ASM_OP): Define. + (EH_FRAME_SECTION_ASM_OP): Define. + (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl. + (STARTFILE_SPEC): Add crtbegin.o. + (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl + to here from LINK_COMMAND_SPEC. + (DO_GLOBAL_CTORS_BODY): Define. + (CRTSTUFF_USE_FINI_SECTION): Define + (HAS_INIT_SECTION): Delete. + +Thu Oct 14 05:08:14 1999 Andreas Schwab + + * Makefile.in (all.cross): Depend on xcpp$(exeext). + +Thu Oct 14 04:00:40 1999 Richard Henderson + + * pa.h (PREDICATE_CODES): New. + + * genrecog.c (validate_pattern): Condense the destination + non-lvalue message. + +Thu Oct 14 03:23:08 1999 Richard Henderson + + * alpha.md (call-1): Supply missing mode for operator. + (*): Add missing output reload constraints. Remove constraints + from define_splits. + + * i386.h (SPECIAL_MODE_PREDICATES): New. + * i386.md (movstricthi_1): Use nonimmediate_operand for op 0. + (movqi_1, movdi_1, movdi_2, some splits): Likewise. + (addsi_lea_3): Add missing mode for op 3. + (prologue_set_got, prologue_get_pc): Add missing modes. + (*) Add missing output reload constraints. + +Thu Oct 14 03:59:57 1999 Stephane Carrez + + * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size; + check for member bit-size overflow and use var_size if it occurs. + (layout_record): Use bitsize_int() to define the type size in bits. + Likewise for computation and assignment to DECL_FIELD_BITPOS. + (layout_decl): Likewise when assigning to DECL_SIZE. + +Thu Oct 14 02:57:05 1999 Richard Henderson + + * genrecog.c (validate_pattern): Typo last change. Verify + that output operands have output reloads. + +Thu Oct 14 01:49:54 1999 Richard Henderson + + * genrecog.c (special_mode_pred_table): New. + (NUM_SPECIAL_MODE_PREDS): New. + (find_operand): New. + (validate_pattern): New argument `insn'. Warn for assignment to + any predicate accepting non-lvalues. Conditionally warn for + match_operand without a mode. Try much harder to match source + and destination modes on a set. + * tm.texi (SPECIAL_MODE_PREDICATES): Document. + +Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs. + +Thu Oct 14 02:18:19 1999 Marc Espie + + * combine.c (simplify_logical): Recognize xor pattern that encodes + rotation. + +Wed Oct 13 23:23:45 1999 Franz Sirl + + * rs6000.c (expand_block_move): Use INTVAL, not XINT to access + alignment. + +Wed Oct 13 21:47:18 1999 Richard Henderson + + * ggc-page.c (MAP_FAILED): Provide default. + +Wed Oct 13 21:41:59 1999 Richard Henderson + + * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE. + * sparc.h (PREDICATE_CODES): Update. + +Wed Oct 13 21:18:17 1999 Richard Henderson + + * alpha.c (some_ni_operand): New. + * alpha-protos.h: Declare it. + * alpha.h (PREDICATE_CODES): Update. + * alpha.md (sXaddq reload insns): Use some_ni_operand + for SET_DEST instead of some_operand. + +Wed Oct 13 21:04:45 1999 Richard Henderson + Jim Wilson + + * genrecog.c (maybe_both_true_2): Don't compare modes of + two DT_pred tests. + (process_tree): Elide peephole2_insns. Invoke simplify_tests + after find_afterward. + (debug_decision_1): Dump next and afterward codes. + +Wed Oct 13 20:35:16 1999 Richard Henderson + + * rtl.c (dump_and_abort): Remove. + (fatal_with_file_and_line): New. + (fatal_expected_char): New. + (read_rtx_lineno, read_rtx_filename): New. + (read_skip_spaces): Track line number. + (read_name): Use fatal_with_file_and_line. + (read_rtx): Use fatal_expected_char. Track line number. + * rtl.h (read_rtx_filename, read_rtx_lineno): Declare. + + * print-rtl.c (print_rtx): Don't special case LABEL_REF argument + if it isn't a CODE_LABEL. + + * genattr.c (main): Set read_rtx_filename. + * genattrtab.c (main): Likewise. + * gencodes.c (main): Likewise. + * genconfig.c (main): Likewise. + * genemit.c (main): Likewise. + * genextract.c (main): Likewise. + * genflags.c (main): Likewise. + * genopinit.c (main): Likewise. + * genoutput.c (main): Likewise. + * genpeep.c (main): Likewise. + + * genrecog.c (decision_test.u.insn): Add `lineno'. + (pattern_lineno, error_count): New variables. + (message_with_line): New. + (add_to_sequence): Break out checking code to ... + (validate_pattern): ... here. Detect SET_DEST matching CONST_INT. + (merge_insn): Use message_with_line. + (make_insn_sequence): Use validate_pattern. Record insn lineno. + (main): Set read_rtx_filename, pattern_lineno. Exit early on error. + +Wed Oct 13 22:01:35 1999 J"orn Rennecke + + * expr.c (store_constructor): Clear union if constructor is empty. + +Wed Oct 13 15:19:04 1999 Jim Wilson + + * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change. + Add !endian checks. Change %{...} to %(...). + +Wed Oct 13 13:30:34 1999 Richard Henderson + + * i386.md (*addsi3_cc): Renamed from addcsi3. + (*addsi3_carry): Renamed from addxsi3. + (*subsi3_cc): Renamed from subcsi3. + (*subsi3_carry): Renamed from subxsi3. + (*xorqi_cc_1): Renamed from xorcqi_1. + (xorqi_cc_ext_1): Renamed from xorcqi_ext_1. + * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1. + +Wed Oct 13 13:10:46 1999 Richard Henderson + + * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H. + (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise. + +1999-10-13 Brendan Kehoe + + * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we + climb up the chain of insns. + +Wed Oct 13 10:20:58 1999 Richard Henderson + + * genrecog.c (write_subroutine): Careful for null trees. + (process_tree): Don't elide empty functions. + +Wed Oct 13 10:07:54 1999 Richard Henderson + + * Makefile.in (genrtl.o): Depend on ggc.h. + * configure.in (valloc): Probe for it. + (with-gc): Use ggc-page if valloc present. + * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable. + (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec. + (ggc_alloc_string): Moved from ggc-page.c. + * ggc-none.c (ggc_alloc_obj): New. + (ggc_alloc_rtx, ggc_alloc_rtvec): Remove. + * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP. + (struct globals): Likewise for dev_zero_fd. + (init_ggc): Likewise for it's initialization. + (ggc_allocated_p): Move careful dereference from ... + (ggc_lookup_page_table): ... here. Delete. + (lookup_page_table_entry): Don't use ggc_lookup_page_table. + (alloc_anon): Use valloc if no mmap. + (release_pages): Use free if using valloc. + (ggc_alloc_obj): Renamed from alloc_obj. + (ggc_set_mark): Renamed from mark_obj. + (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable. + (ggc_alloc_rtx, ggc_alloc_rtvec): Delete. + (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete. + (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. + (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete. + (ggc_collect): Use fp printing instead of our own rounding. + * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete. + (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete. + (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete. + (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete. + (struct ggc_string, struct ggc_any): Delete. + (offsetof): Provide default definition. + (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New. + (PTR_KEY): New. + (struct ggc_mem): New, from corpse of ggc_any. + (struct ggc_status): Delete. + (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete. + (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete. + (n_strings_collected, n_anys_collected): Delete. + (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete. + (ggc_alloc_string, ggc_alloc): Delete. + (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete. + (ggc_free_string, ggc_free_any): Delete. + (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete. + (ggc_compare_addresses, ggc_mark_string): Delete. + (ggc_mark_string_if_gcable, ggc_mark): Delete. + (search_data): Delete. + (struct globals): New. + (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New. + (tree_insert, tree_lookup): New. + (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New. + (clear_marks, sweep_objs): New. + (ggc_collect): Gut. Use clear_marks, sweep_objs. + (init_ggc): Set allocated_last_gc. + (ggc_push_context): Gut. Use G.context. + (ggc_pop_context): Likewise. + (ggc_pop_context_1): New. + (debug_ggc_tree): New. + (debug_ggc_balance, tally_leaves): New. + * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl. + (ggc_mark_string_if_gcable): Remove decl. + (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark. + (ggc_mark_rtvec_children): New. + (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New. + (ggc_mark_if_gcable): New decl. + (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl. + (ggc_alloc_tree, ggc_alloc): Likewise. + (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise. + (ggc_alloc_obj): New decl. + (ggc_alloc_rtx, ggc_alloc_rtvec): New macros. + (ggc_alloc_tree, ggc_alloc): Likewise. + (ggc_set_mark): New decl. + * rtl.h (struct rtx_def): Remove gc_mark. + (struct rtvec_def): Likewise. + * tree.h (struct tree_common): Likewise. + +Wed Oct 13 01:44:29 1999 Carol LePage + + * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines, + float_format and thread_file definitions. + * configure: Rebuilt. + +Wed Oct 13 09:25:03 1999 Niels Möller + + * extend.texi (Function Names): Document types of function names. + +Wed Oct 13 00:45:04 1999 Bernd Schmidt + + * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with + an earlyclobbered output conflict with RELOAD_INPUT reloads. + +Tue Oct 12 23:28:28 1999 J"orn Rennecke + + * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE. + +Tue Oct 12 23:19:32 1999 J"orn Rennecke + + * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS. + +Tue Oct 12 17:09:38 1999 David Edelsohn + + * collect2.c (main): Do prelimnary link on AIX if rflag. + +Tue Oct 12 09:45:19 1999 Jonathan Larmour + + * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through + __CTOR_LIST__ in opposite order, which is the correct order for sorted + constructors. + (__do_global_dtors): similarly for __DTOR_LIST__. + +Fri Oct 8 19:46:03 1999 J"orn Rennecke + Diego Novillo + + * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to + FPUL_REGS. + +Tue Oct 12 07:38:41 1999 Bruce Korb + + * fixincl/*: Merged "no_bogosity" branch + * fixincl/fixlib.h: protect against doubly defining t_bool + * fixincl/server.h: protect against doubly defining t_bool + +Mon Oct 11 20:18:41 1999 Jim Wilson + + * genoutput.c: Include toplev.h. + +Mon Oct 11 18:56:14 1999 Jim Wilson + + * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): + Undef. + * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h. + * configure: Regenerate. + +Mon Oct 11 16:07:49 1999 Richard Henderson + + * gcse.c (delete_null_pointer_checks): Returns void. + +Mon Oct 11 20:31:51 1999 Bernd Schmidt + + * rtl.c (copy_rtx): Don't use accessor macros to copy fields. + * emit-rtl.c (copy_insn_1): Likewise. + +Mon Oct 11 13:29:06 1999 Geoffrey Keating + + * config/mips/mips.c (mips_build_va_list): Correct + TREE_CHAIN setting when hard-float. + (mips_va_start): Use corrected setting. + (mips_va_arg): Likewise. Also pass a tree to build of + POSTINCREMENT_EXPR rather than a naked 'int'. + +Sun Oct 10 18:27:27 1999 Mark Mitchell + + * ggc.h (ggc_push_context): Fix comment. + (ggc_pop_context): Likewise. + (mark_string_if_gcable): Likewise. + * ggc-common.c (ggc_mark_rtx_children): Use + ggc_mark_string_if_gcable. + * ggc-page.c (ggc_lookup_page_table): New function. + (ggc_allocated_p): Likewise. + (mark_obj): Fix formatting. + (ggc_mark_string_if_gcable): New function. + * ggc-simple.c (ggc_allocated_strings): New variable. + (ggc_strings_used): Likewise. + (ggc_compare_addresses): New function. + (ggc_pop_context): Pop the `any' memory too. + (ggc_mark_string_if_gcable): New function. + (ggc_collect): Initialize and tear down ggc_allocated_strings. + +Sun Oct 10 20:05:21 1999 David Edelsohn + + * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form. + (scc patterns): Disable most SImode variants if TARGET_POWERPC64. + * rs6000.c (expand_block_move): Match movstrsi_?reg register + changes. + +Sun Oct 10 16:37:01 1999 Richard Henderson + + * haifa-sched.c (sched_reg_n_calls_crossed): Delete. + (sched_reg_live_length, sched_reg_basic_block): Delete. + (current_block_num, bb_live_regs, old_live_regs): Delete. + (dead_notes, struct sometimes): Delete. + (sched_note_set, birthing_insn_p): Delete. + (adjust_priority): Gut useless reg lifetime code. + (create_reg_dead_note, attach_deaths): Delete. + (attach_deaths_insn, new_sometimes_live): Delete. + (finish_sometimes_live): Delete. + (find_pre_sched_live, find_post_sched_live): Delete. + (update_reg_usage): Delete. + (find_insn_reg_weight): New, from corpse of find_pre_sched_live. + (schedule_insns): Delete reg lifetime code. + (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away. + (unlink_other_notes): Adjust REG_NOTE commentary. + (reemit_notes): Use REG_SAVE_NOTE. + (schedule_block): Likewise. + (schedule_region): Allocate bitmap of blocks in region. Use + count_or_remove_death_notes. Use update_life_info. + + * rtl.h (REG_SAVE_NOTE): New. + * rtl.c (reg_note_name): Update. + +Sun Oct 10 16:14:16 1999 Richard Henderson + + * combine.c (refresh_blocks, need_refresh): New. + (combine_instructions): Allocate refresh_blocks. Invoke + update_life_info if needed. + (distribute_notes): Mark refresh_blocks instead of installing + USE insns. + * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES. + * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES. + + * Makefile.in (recog.o): Depend on basic-block.h. + +Sun Oct 10 12:03:21 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Thinko last change: delete + shadowing allow_const_int variable. + +Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi + + * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing + __GNUC__ and __GNUC_MINOR__. + + * gansidecl.h: Likewise. + + * rtl.c: Likewise. + + * rtl.h: Likewise. + + * toplev.h: Likewise. + + * tree.c: Likewise. + + * tree.h: Likewise. + + * varray.c: Likewise. + + * varray.h: Likewise. + +Sun Oct 10 13:28:48 1999 Bernd Schmidt + + * loop.c (find_and_verify_loops): When looking for a BARRIER, don't + use one before a jump table. + + * rtl.def (ADDRESS): Change documentation to match reality. + * md.texi: Don't document it. + * gmicro.md (load address pattern): Use 'p' constraint, delete use + of ADDRESS rtx. + + * emit-rtl.c (copy_insn_1): Make format_ptr a const char *. + +Sun Oct 10 02:41:41 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Move allow_const_int test outside + known predicate block; default allow_const_int true. + (debug_decision_list): New. + +Sun Oct 10 00:43:08 1999 Richard Henderson + + * i386.h (CC1_SPEC): Typo -- use cc1_cpu. + +Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (gcse_main): Avoid global optimizations if we have a + large number of basic blocks and the ratio of edges to blocks + is high. + (delete_null_pointer_checks): Likewise. + +Sat Oct 9 23:16:01 1999 Ken Raeburn + + * c-common.c (check_format_info): Warn if format string isn't a + string literal. + +Sat Oct 9 23:04:02 1999 Jonathan Larmour + + * configure.in (arm*-*-*): Don't let autoconf remove brackets + * configure: regenerate + +Sat Oct 9 13:15:53 1999 Richard Henderson + + * alpha.md (extendsidi2): Turn into a splitter. Allow f/f. + If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern. + (peepholes): Re-enable. + +Sat Oct 9 12:18:16 1999 Richard Henderson + + * Makefile.in (flow.o): Depend on TREE_H. + * basic-block.h (REG_SET_EQUAL_P): New. + (XOR_REG_SET): New. + (n_edges): Declare. + (free_regset_vector): Remove declaration. + (flow_delete_insn_chain): Declare. + (enum update_life_extent): New. + (update_life_info, count_or_remove_death_notes): Declare. + * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head. + Verify register live at bb->global_live_at_start before adding USE. + * flow.c (HAVE_epilogue, HAVE_prologue): Provide default. + (CLEAN_ALLOCA): New. + (n_edges): New. + (PROP_*): New flags. + (find_basic_blocks_1): Use alloc_EXPR_LIST. + (clear_edges): Zero n_edges. + (make_edge): Increment n_edges. + (split_edge): Don't allocate bb->local_set. Increment n_edges. + (flow_delete_insn_chain): Export. + (delete_block): Decrement n_edges. + (merge_blocks_nomove): Likewise. + (life_analysis): Give life_analysis_1 PROP flags. + (verify_wide_reg_1, verify_wide_reg): New. + (verify_local_live_at_start): New. + (update_life_info): Rewrite to call into propagate_block. + (mark_reg): New. + (mark_regs_live_at_end): After reload, if epilogue as rtl, + always mark stack pointer. Conditionally mark PIC register. + After reload, mark call-saved registers, return regsiters. + (life_analysis_1): Accept PROP flags not remove_dead_code. + Call mark_regs_live_at_end before zeroing regs_ever_live. + Use calculate_global_regs_live. Copy global_live_at_end before + calling final propagate_block. Zero reg_next_use on exit. + (calculate_global_regs_live): New. + (allocate_bb_life_data): Don't allocate bb->local_set. + (init_regset_vector, free_regset_vector): Remove. + (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE. + Test flags before every operation. Warn if prologue/epilogue insn + would have been deleted. + (mark_set_regs, mark_set_1): Accept and use FLAGS. + Use alloc_EXPR_LIST. + (mark_used_regs): Accept and use FLAGS, not FINAL. + Remove special handling for RETURN. + (try_pre_increment): Use alloc_EXPR_LIST. + (dump_flow_info): Dump n_edges. + (unlink_insn_chain, split_hard_reg_notes): Remove. + (maybe_add_dead_note, maybe_add_dead_note_use): Remove. + (find_insn_with_note, new_insn_dead_notes): Remove. + (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove. + (maybe_remove_dead_notes, prepend_reg_notes): Remove. + (replace_insns): Remove. + (count_or_remove_death_notes): New. + (verify_flow_info): Abort on error after all checks. + (remove_edge): Decrement n_edges. + (remove_fake_edges): Tweak format. + * haifa-sched.c (schedule_insns): Use split_all_insns. + * output.h (update_life_info): Remove declaration. + * recog.c (split_all_insns): From the corpse of split_block_insns, + do the whole function block by block. Use update_life_info. + (recog_last_allowed_insn): New. + (recog_next_insn): Mind it. + (peephole2_optimize): Set it. Walk backwards through blocks. + Use update_life_info. + * rtl.h (update_flow_info, replace_insns): Remove declarations. + (split_all_insns): Declare. + * toplev.c (rest_of_compilation): Thread prologue before flow2. + Use split_all_insns. + + * i386.md (or -1 peep2s): Disable. + +Fri Oct 8 17:49:08 1999 Richard Henderson + + * config/mips/mips.md (movstrsi+[123]) : Combine these into + a single pattern. Scrap the 'd' versions as unnecessary. + + * config/mips/mips.md (tablejump_internal3,tablejump_mips161, + tablejump_mips162,tablejump_internal4): The operands to a + label_ref must be VOIDmode. + +Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi + + * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'. + +Fri Oct 8 11:58:34 1999 Richard Henderson + + * mips.c (mips_va_arg) [EABI]: Return addr_rtx. + +Fri Oct 8 11:58:34 1999 Richard Henderson + + * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the + cache every function if ggc_p. + +Fri Oct 8 18:46:11 1999 Bernd Schmidt + + * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1 + instead of copy_rtx. Accept sequences that contain asm statements. + * emit-rtl.c (copy_insn_1, copy_insn): New functions. + (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches, + orig_asm_operands_vector, copy_asm_operands_vector, + orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static + variables. + * rtl.h (copy_insn, copy_insn_1): Declare. + +Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi + + * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h. + + * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of + arguments to `current_file_function_operand'. + + * genrecog.c: Include hard-reg-set.h and resource.h in the + generated output file. + + * real.c: Include tm_p.h. + +Fri Oct 8 18:46:11 1999 Bernd Schmidt + + * i386.md (prologue_allocate_stack): Add '=' constraint letter on + output operand. + +Thu Oct 7 23:06:50 1999 Richard Henderson + + * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber + before the fctiwz insn. + +Thu Oct 7 22:53:00 1999 Franz Sirl + Mark Mitchell + + * tree.c (make_lang_type_fn): New function pointer. + (make_lang_type): Call it. + * tree.h (make_lang_type): Declare. + (make_lang_type_fn): Likewise. + * rs6000.c (rs6000_build_va_list): Use make_lang_type. + +Thu Oct 7 00:36:17 1999 Diego Novillo + + * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF + make sure that HIGH instructions are copied into BASE_REGS. + +Thu Oct 7 17:02:34 1999 Jason Merrill + + * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner. + +Thu Oct 7 17:01:58 1999 Greg McGary + + * c-decl.c (finish_struct): Use simpler method of + removing elements of a singly-linked list. + +Thu Oct 7 15:23:28 1999 Michael Meissner + + * alpha.md (peephole2's): Comment out peephole2's that generate + buggy code. + +Thu Oct 7 12:00:53 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Disable mode check for + wildcard matches. + +Thu Oct 7 20:14:16 1999 Bernd Schmidt + + * ggc-simple.c (init_ggc): Set empty_string. + +Thu Oct 7 01:13:15 1999 Richard Henderson + + * configure.in: Detect mmap. Add --with-gc=foo to select + garbage collector; default to page if mmap available. + * Makefile.in (GGC): Substitute. + +Wed Oct 6 23:56:30 1999 Richard Henderson + + * c-decl.c (ggc_p): Enable. + +Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi + + * flow.c (verify_flow_info): Make it extern & unconditionally define. + +1999-10-06 Brendan Kehoe + + * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc + string for little-endian-data. + +Wed Oct 6 16:10:35 1999 Michael Meissner + + * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in + case somebody tries to compile --enable-checking code with gcc + 1.34 or such. + +Wed Oct 6 12:22:50 1999 Richard Henderson + + * genrecog.c (add_to_sequence): Verify operand to label_ref is + VOIDmode. + +Wed Oct 6 10:21:15 1999 Richard Henderson + + * genconfig.c (main): Disable HAVE_conditional_arithmetic. + * jump.c (jump_optimize_1): Document why. + +Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi + + * collect2.c (scan_prog_file, scan_libraries): Prototype function + pointers and casts for `int_handler' and `quit_handler'. + + * flow.c (verify_flow_info, split_hard_reg_notes, + find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes, + remove_edge, remove_fake_successors): Add static prototypes. + (verify_flow_info): Wrap with macro ENABLE_CHECKING. + (mark_set_1): Initialize variable `regno'. + (unlink_insn_chain): Likewise for variable `curr'. + (remove_fake_edges): Remove unused variables `e', `tmp' and `last'. + + * loop.c (strength_reduce): Initialize variable + `unrolled_insn_copies'. + (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static + prototypes. Change these functions to take const PTR parameters + to avoid prototype conflict when used as the comparson argument + for qsort. + (check_dbra_loop): Initialize variable `comparison_val'. + + * reload.c (debug_reload_to_stream, debug_reload): Add prototypes. + (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED. + (find_valid_class): Initialize variable `best_class'. + (find_reloads): Call memcpy, not bcopy. + + * reload1.c (gen_mode_int, dump_needs): Add prototypes. + (hard_reg_use_compare): Don't needlessly cast away const. + (reload_reg_class_lower): Likewise. + (choose_reload_regs): Initialize variable `regno'. + +Tue Oct 5 16:34:12 1999 Paul Burchard + + * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing. + +Tue Oct 5 16:14:40 1999 Michael Meissner + + * libgcc1-test.c (toplevel): Include stddef.h to get size_t. + ({,d}discard): Add forward declarations. Declare parameter as + unused. + (main_without_main): Explicitly declare return type to be int. + (memcpy): Properly declare. + + * libgcc2.c (toplevel): If inhibit_libc is defined and not + building the trampoline support, declare malloc, free, and + atexit. + (__clear_cache): Mark arguments as potentially unused. + + * frame.c (toplevel): If inhibit_libc is defined, declare + malloc and free. + +Tue Oct 5 12:00:32 1999 Richard Henderson + + * flow.c (make_edge): Accept an optional 2D bitmap in which + to cache edge existence. Update all callers. + (make_label_edge, make_eh_edge): Pass through the edge cache. + (make_edges): Provide the cache. + +Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi + + * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify + a char*. + (local_mbtowc): Change the type of variable `i' from int to size_t. + + * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||. + (local_mbtowc, local_mblen, literal_codeset): Constify a char*. + +Tue Oct 5 11:34:52 1999 Michael Meissner + + * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes + after other includes that define the appropriate types. Include + tm_p.h for getting user prototypes. + * ggc-callbacks.c (toplevel): Ditto. + * ggc-none.c (toplevel): Ditto. + * gcc-page.c (toplevel): Ditto. + * ggc-simple.c (toplevel): Ditto. + +Mon Oct 4 16:48:16 1999 Diego Novillo + Jonathan Larmour + + * config/mips/mips.c (mips_move_2words): Split doubles if + ISA >= 3, !TARGET_64BIT, and destination is not an FP register. + +Mon Oct 4 21:47:31 1999 Richard Henderson + + * genrecog.c (struct decision_test): New. + (struct decision): Remove test-related members, sort the rest by size. + (IS_SPLIT): Simplify. + (new_decision, new_decision_test): New. + (add_to_sequence): Use them. No special handling for args of + non-MATCH codes. + (maybe_both_true): Renamed from not_both_true; return sense changed. + (maybe_both_true_1, maybe_both_true_2): New. Broken out + of maybe_both_true and adjusted for decision_test. + (position_merit): Remove. + (nodes_identical, nodes_identical_1): New, broken out of merge_trees. + (merge_accept_insn): New, broken out of merge_trees. + (merge_trees): Use them. No special case for c_test; no node + splitting; use test type instead of position_merit. + (factor_tests): New. + (simplify_tests): New. + (break_out_subroutines): Don't write code now. + (find_afterward): New. + (write_afterward, write_switch, write_cond): New. + (write_action, is_unconditional): New. + (write_node): New. Use them. + (write_tree_1): Rewrite. Use the new functions above. + (write_tree): Remove afterward processing. + (write_subroutine): Simplify function variant emission. + (write_subroutines): New. + (same_codes, clear_codes): Remove. + (same_modes, clear_modes): Remove. + (write_header): New, broken out of main. + (make_insn_sequence): Use new_decision and new_decision_test. + (process_tree): New, broken out of main. + (main): Adjust for merge_trees interface change. + Don't #define operands in the output file. + (record_insn_name): New, broken out of make_insn_sequence. + (debug_decision_2, debug_decision_1, debug_decision_0): New. + (debug_decision): New. + +1999-10-04 21:58 -0700 Zack Weinberg + + * resource.c (find_free_register): Mark class_str argument const. + * resource.h: Update prototype to match. + + * i386.h (PREDICATE_CODES): Add entry for long_memory_operand. + * i386.md: Give all anonymous insns names. + +Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent + blocks. + +Mon Oct 4 21:01:39 1999 Richard Henderson + + * toplev.c (dbr_sched_time): Unconditional. + (peephole2_time): New. + (compile_file): Add pass numbers to all of the dump file suffixes. + Dump peephole2_time. Don't dump times for non-applicable passes. + (rest_of_compilation): Add pass numbers to dump file suffixes. + Conditionalize calls to the scheduler. + * invoke.texi: Update. + +Mon Oct 4 20:25:13 1999 Anthony Green + + * flow.c (make_edges): Fix insn iteration. + (find_basic_blocks): Assign NULL_RTX, not 0, to rtx. + (find_basic_blocks_1): Fix spelling mistake. + +Mon Oct 4 16:56:11 1999 Richard Henderson + + * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that + always have side-effects. Use memset not bzero. + (make_node): Likewise. + +Mon Oct 4 16:22:20 1999 Mark Mitchell + + * stmt.c (expand_anon_union_decl): When any of the elements of the + union is addressable, so is the entire union. + +Mon Oct 4 11:38:33 1999 Richard Henderson + + * sbitmap.c (sbitmap_ones): Don't set too many bits. + + * bitmap.h (enum bitmap_bits): Add BITMAP_XOR. + * bitmap.c (bitmap_operation): Return true iff TO changed. + (bitmap_equal_p): New. + (bitmap_bit_p): Tidy arithmetic. + (debug_bitmap_file): Likewise. + +Mon Oct 4 11:28:37 1999 Richard Henderson + + * toplev.c (rest_of_compilation): Turn on cse_not_expected + before cse2 instead of after. + +Mon Oct 4 09:55:17 1999 Stan Cox + + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large + register offsets. + +Mon Oct 4 08:54:12 1999 Alexandre Oliva + + * cppinit.c (is_idchar initializer): Loosen tests to accept + gcc 2.>6 and >2. + +Mon Oct 4 02:31:20 1999 Mark Mitchell + + * mips.md: Define conditional move patterns for floating point + operands and DI mode conditions. + +Mon Oct 4 02:12:41 1999 Mark Mitchell + + * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that + always have side-effects. + +Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com) + + * mn10200.c (asm_file_start): Fix typo. + + * cppinit.c (is_idchar initializer): Tighten tests for when + to put the table into initialized memory. + + * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx, + not an array of rtunion. + * gcc-page.c (ggc_alloc_rtvec): Similarly. + * gcc-simple (ggc_free_rtvec): Similarly. + + * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead + of rtunions. + + * mbchar.h: Add missing #endif. + + * t-fr30 (LIB2FUNCS_EXTRA): Remove definition. + (FPBIT, DPBIT): Define. + +Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi + + * print-tree.c (print_node, indent_to): Remove redundant prototypes. + + * profile.c (instrument_arcs, output_gcov_string, + tablejump_entry_p): Add static prototypes. + (output_gcov_string): Constify a char*. + + * regmove.c (replacement_quality, fixup_match_2): Add static + prototypes. + + * resource.h (reg_dead_p): Add extern prototype. + + * rtl.c (trim_filename): Add static prototype. + + * scan-decls.c (skip_to_closing_brace): Likewise. + + * stmt.c (expand_decl_cleanup_no_eh): Hide definition. + (expand_end_case): Initialize variable `range'. + (emit_case_nodes): Remove unused prototype `rtx_fn'. + + * varasm.c (asm_emit_uninitialised): Add static prototype. + (asm_emit_uninitialised, assemble_variable): Mark parameter with + ATTRIBUTE_UNUSED. + +Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi + + * cpplib.c (if_directive_nameo): Add static prototype. + + * cse.c (cse_insn): Remove unused variable `p'. + + * except.c (create_rethrow_ref, push_entry, + receive_exception_label, new_eh_region_entry, find_func_region, + clear_function_eh_region, process_nestinfo): Add static prototypes. + (get_reg_for_handler): Hide definition. + (process_nestinfo): Initialize variable `extra_handlers'. + + * expr.h (expand_builtin_longjmp): Add extern prototype. + + * final.c (final_addr_vec_align, align_fuzz): Add static prototypes. + + * function.c (prepare_function_start): Likewise. + (pop_function_context_from): Mark parameter `context' with + ATTRIBUTE_UNUSED. + (push_temp_slots_for_block, flush_addressof): Hide definition. + + * gcov.c (init_arc, reverse_arcs, create_program_flow_graph, + solve_program_flow_graph, calculate_branch_probs, + function_summary, main, fancy_abort): Add prototypes. + + * gen-protos.c (add_hash, parse_fn_proto, main): Likewise. + (add_hash): Constify a char*. + + * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr, + ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr, + ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes. + + * integrate.c (expand_inline_function_eh_labelmap): Likewise. + + * lists.c (free_list, zap_lists): Likewise. + +Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi + + * alias.c (nonlocal_reference_p): Add static prototype. + + * bitmap.c (bitmap_element_allocate): Prototype args in function + pointer cast. + + * builtins.c (stabilize_va_list): Add static prototype. + (expand_builtin_va_arg): Constify a char*. + + * c-lex.c (getch, put_back, extend_token_buffer_to, + read_line_number, token_getch, token_put_back): Add static + prototypes. + + * c-parse.gperf (hash, is_reserved_word): Likewise. + + * cccp.c (is_dir_separator): Likewise. + +Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi + + * graph.h: New file to prototype functions exported by graph.c. + + * Makefile.in (graph.o, toplev.o): Depend on graph.h. + + * graph.c: Include graph.h. + + * toplev.c: Likewise. Remove redundant prototypes. + +Sat Oct 2 11:28:33 1999 Krister Walfridsson + + * invoke.texi: Removed duplicated description for -Q. + +Sat Oct 2 11:16:00 1999 Jim Kingdon + + * extend.texi: Grammar fix in __extension__ text. + +Sat Oct 2 11:06:31 1999 Richard Henderson + + * md.texi (define_peephole2): New section. + +Sat Oct 2 10:57:56 1999 Jan Hubicka + + * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0 + (mov $-1 to or peepholer): Enable for pentium when optimizing for + speed. + +Sat Oct 2 10:55:25 1999 Jan Hubicka + + * builtins.c (expand_builtin_strlen): Fix best mode searching loop. + +Sat Oct 2 10:53:22 1999 Jan Hubicka + + * i386.md (ffs expander): Emit Pentium friendly code for + TARGET_PENTIUM. + +Sat Oct 2 02:48:21 1999 Mark P. Mitchell + + * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES + for non-trees. + (build1): Likewise. + +Fri Oct 1 18:01:11 1999 Bernd Schmidt + + * i386elf.h (TARGET_DEFAULT): Use symbolic constants. + +Fri Oct 1 12:42:53 1999 Andreas Schwab + + * config/m68k/m68k.c (use_return_insn): Return false if the pic + register is in use. + +Fri Oct 1 10:56:06 1999 Bernd Schmidt + + * md.texi (No Constraints): Delete section. + * Makefile.in (genattrtab.o): Don't depend on "insn-config.h". + * final.c (final_scan_insn): We always have register constraints. + * genattrtab.c: Don't include "insn-config.h". + (write_attr_case): We always have register constraints. + * genconfig.c (register_constraint_flag): Delete. + (walk_insn_part): Don't check whether we have register constraints. + (main): Don't write out "#define REGISTER_CONSTRAINTS". + * genoutput.c (have_constraints): Delete. + (main): Don't set it. + (output_operand_data): We always have constraints. + (scan_operands): Likewise. + (compare_operands): Likewise. + * local-alloc.c (block_alloc): We always have constraints. + (requires_inout): Always compile this function. + * recog.c (extract_insn): We always have constraints. + (constrain_operands, reg_fits_class_p): Always compile these + functions. + * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS + fields. + (struct insn_operand_data): Likewise. + * regclass.c (regclass): We always have constraints. + (record_reg_classes, copy_cost, record_address_regs, + auto_inc_dec_reg_p): Always compile these functions. + * regmove.c (regmove_optimize): We always have constraints. + * reload.c (find_reloads): Likewise. + * reload1.c (reload): Likewise. + (reload_cse_simplify_operands): Likewise. + * i860.c (output_delay_insn): Likewise. + +Thu Sep 30 23:04:41 1999 Mark P. Mitchell + + * iris6.h (BUILD_VA_LIST_TYPE): Define. + +Thu Sep 30 18:44:50 1999 Franz Sirl + + * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node + for the va_list record. + +Thu Sep 30 18:34:54 1999 Jan Hubicka + + * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in + prologues. + +Thu Sep 30 18:31:36 1999 Jan Hubicka + + * alias.c: Include insn-flags.h. + * Makefile.in (alias.o): Update. + +Thu Sep 30 18:21:30 1999 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons + to LTU and GEU. Handle more cases using sbb. + +Thu Sep 30 18:18:39 1999 Jan Hubicka + + * i386.md (truncatexfdf splitters): Do not use subreg. + (fop XFmode patterns): Fix mode in operand testing. + +Thu Sep 30 18:04:13 1999 Richard Henderson + + * jump.c (jump_optimize_1): Amend last change to test only the + form of the operand, not the insn. + + * jump.c (jump_optimize_1) [conditional_move]: Use general_operand + not register_operand to determine when B may need preloading. + +Thu Sep 30 17:39:16 1999 Richard Henderson + + * alpha.md (*): Use nonimmediate not general_operand for SET_DEST. + (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC. + (call-value patterns): Move to end of file. + (*): Remove mode from label_ref in (pc) context. + (movstrqi): Use memory not general_operand for BLKmode operands. + (prologue_stack_probe_loop, builtin_longjmp): Add missing mode + to register_operand operands. + (peep2 patterns): Convert from commented-out peephole patterns. + +Thu Sep 30 14:39:17 1999 Bernd Schmidt + + * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE + to BUILT_IN_INIT_DWARF_REG_SIZES. + * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES): + Renamed from BUILT_IN_DWARF_REG_SIZE; call + expand_builtin_init_dwarf_reg_sizes. + * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size + with __builtin_init_dwarf_reg_size_table. + * dwarf2out.c (struct reg_size_range): Delete. + (expand_builtin_init_dwarf_reg_sizes): New function. + (expand_builtin_dwarf_reg_size): Delete. + * except.h (expand_builtin_init_dwarf_reg_sizes): Declare. + (expand_builtin_dwarf_reg_size): Don't declare. + * libgcc2.c (dwarf_reg_size_table_initialized): New. + (dwarf_reg_size_table): New. + (init_reg_size_table): New function. + (copy_reg): Use dwarf_reg_size_table. + (eh_context_initialize): Make sure dwarf_reg_size_table is initialized + before use. + +Thu Sep 30 05:40:34 1999 Richard Earnshaw + + * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): + Correctly build argument list to constructor and destructor functions. + +Thu Sep 30 00:13:27 1999 Dirk Zoller + + * c-tree.h (warn_float_equal): Declare. + * c-decl.c (warn_float_equal): Define. + (c_decode_option): Recognize -W[no-]float-equal. + * c-typeck.c (build_binary_op): Conditionally warn + about equality tests of floating point types. + * toplev.c (documented_lan_options): Add -W[no-]float-equal. + * invoke.texi: Add docs for -Wfloat-equal warning. + +Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com) + + * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of + generating RTL directly. + * mips.h (INIT_TARGET_OPTABS): Likewise. + * mn10200.h (INIT_TARGET_OPTABS): Likewise. + + * expr.h (init_mov_optab): Delete declaration + + * h8300.c (WORD_REG_USED): Update to avoid useless register + saves in interrupt functions and functions which never return. + + * cse.c (struct set): Delete inner_dest_loc field. + (cse_insn): Remove assignments to inner_dest_loc field. + +Wed Sep 29 16:06:20 1999 Richard Henderson + + * ggc-page.c: Don't include etc taken care of + by "system.h". Include afterward. + +Wed Sep 29 16:05:18 1999 Richard Henderson + + * rs6000.c (rs6000_encode_section_info): If ggc_p, use + ggc_alloc_string. + +Tue Sep 28 16:45:40 1999 David Edelsohn + + * xcoffout.c (xcoffout_declare_function): Add documentation. + * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not + TARGET_64BIT. Compare constant to -1, not bit pattern. + (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT. + (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix + gen_movsi typos. + +Tue Sep 28 16:43:14 1999 Nick Clifton + + * dwarf2out.c (add_abstract_origin_attribute): Abort if + origin_die is NULL. + (gen_inlined_enumeration_type_die): Do not abort if the type has + not been writeen out. + (gen_inlined_structure_type_die): Do not abort if the type has + not been writeen out. + (gen_inlined_union_type_die): Do not abort if the type has + not been writeen out. + (gen_tagged_type_instantiation_die): Do not abort if the type + has not been written out. + +Tue Sep 28 14:33:47 1999 Bernd Schmidt + + * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, + call it. + * reg-stack.c (straighten_stack): Copy hard reg set with + COPY_HARD_REG_SET. + +Tue Sep 28 01:11:05 1999 Richard Henderson + + * builtins.c (stabilize_va_list): Stabilize array type va_list + to a pointer type, not the base record type. + (expand_builtin_va_copy): Dereference the pointers explicitly; + use the correct size for the copy. + + * rs6000.c (rs6000_va_start): Dereference valist to get to the record. + (rs6000_va_arg): Likewise. + +Mon Sep 27 23:27:21 1999 Richard Henderson + + * rtl.h (struct rtx_def): Move gc_mark to align mode field. + +Mon Sep 27 23:20:29 1999 Mark Mitchell + + * tree.h (struct tree_decl): Use `bclass', not `class', in name of + field. + (DECL_BUILT_IN_CLASS): Adjust accordingly. + +Mon Sep 27 23:03:16 1999 Richard Henderson + + * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. + (init_ggc): Use it instead of a constant. + (ggc_collect): Bound allocated_last_gc by it. + +Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems + with va_list. + +Mon Sep 27 19:40:17 CEST 1999 Marc Espie + + * configure.in (mips*el-*-openbsd*): Don't duplicate default settings. + (mips*-*-openbsd*): Let big endian configuration be a fragment. + * configure: Regen. + * config/mips/openbsd.h: New, OpenBSD little endian target. + * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment. + * config/mips/xm-openbsd.h: New, OpenBSD host. + +Mon Sep 27 10:28:48 1999 Andreas Schwab + + * config/m68k/m68k.c (output_function_prologue, + output_function_epilogue): Use + current_function_uses_pic_offset_table instead of regs_ever_live + to decide whether to save/restore pic register. + (legitimize_pic_address): Don't modify regs_ever_live any more. + +Sun Sep 26 10:55:36 1999 Mark Mitchell + + * function.h (struct function): Add x_dont_save_pending_sizes_p. + * stor-layout.c (variable_size): Don't add sizes to the pending + sizes list if x_dont_save_pending_sizes_p is set. + +Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net) + + * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument + for symbolic_operand(). + * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise. + +Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi + + * combine.c (gen_rtx_combine): Add missing call to va_end(). + + * final.c (asm_fprintf): Likewise. + + * genattrtab.c (attr_rtx): Likewise. + +Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c: Update comments. + (cse_insn): When converting a conditional/computed jump into + an unconditional jump, always make sure a BARRIER immediately + follows the converted jump. Do not delete unreachable code. + (cse_basic_block): Do not delete unreachable code. + * toplev.c (rest_of_compilation): Move call to + delete_trivially_dead_insns after the conditional call to + jump_optimize. + +Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi + + * collect2.c (make_temp_file): Don't prototype. + + * gcc.c (make_temp_file): Likewise. + + * mips.c (mips_make_temp_file): Renamed from `make_temp_file'. + +Sat Sep 25 13:42:15 1999 Nick Clifton + + * varasm.c (asm_emit_uninitialised): New function: Generate + the assembler statements necessary to declare an uninitialized + variable. + (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialized + variable. + (ASM_EMIT_BSS): New macro: Emit an entry in the bss section. + (ASM_EMIT_COMMON): New macro: Emit an entry in the common + section. + (assemble_variable): Use asm_emit_uninitialised to emit an + uninitialized variable. + +Fri Sep 24 17:10:56 1999 Nick Clifton + + * combine.c (simplify_comparison): Cope with downshifting a 32 bit + constant on a 64 bit host. Patch supplied by Geoffrey Keating + . + +Fri Sep 24 10:48:10 1999 Bernd Schmidt + + * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined. + * c-common.h (builtin_function): Don't declare. + + * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than + DECL_BUILT_IN. + (pushdecl): Likewise. + (finish_decl): Likewise. + (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type + int. All callers changed. + Set the builtin's DECL_BUILT_IN_CLASS. + * tree.h (enum built_in_class): New. + (enum built_in_function): Delete NOT_BUILT_IN. + (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now + in a union. + (DECL_SET_FUNCTION_CODE): Likewise. + (DECL_BUILT_IN_CLASS): New macro. + (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS. + (struct tree_decl): Split builtin function code field into a + struct. + (builtin_function): Declare. + +Fri Sep 24 01:45:05 1999 Mark Mitchell + + * optabs.c (init_traps): Fix typo in last change. + +Fri Sep 24 01:10:11 1999 Mark Mitchell + + * toplev.c (rest_of_decl_compilation): Update comment. + +Fri Sep 24 11:57:06 1999 Geoffrey Keating + + * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol + in .sbss if appropriate. + (EXTRA_SECTION_FUNCTIONS): Add sbss. + (SBSS_SECTION_ASM_OP): New macro. + * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss. + (EXTRA_SECTIONS): Add in_sbss. + * config/mips/mips.h: Prototype sbss_section. + +Thu Sep 23 18:18:55 1999 Mark Mitchell + + * stmt.c (expand_start_bindings): Don't allow cleanup instructions + to disappear. + +Thu Sep 23 18:07:01 1999 Mark Mitchell + + * optabs.c (init_traps): Register trap_rtx as a GC root. + +Thu Sep 23 17:41:47 1999 Alexandre Oliva + + * config/mips/mips.c (function_arg_pass_by_reference): Define + unconditionally, since it's called unconditionally. + +Thu Sep 23 13:40:02 1999 Jason Merrill + + * toplev.c (documented_lang_options): Add -fshort-wchar. + * c-decl.c (c_decode_option): Likewise. + (init_decl_processing): If -fshort-wchar, use 'short unsigned int' + for wchar_t. + * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node. + * gcc.c (default_compilers): If -fshort-wchar, + override __WCHAR_TYPE__. + * tm.texi (C Dialect Options): Add -fshort-wchar. + + * dwarf2out.c (output_aranges): Use DW_AT_location to find the + symbol for a variable. + + * cpplib.h (CPP_PREPROCESSED): New macro. + * cpplib.c (handle_directive): Don't complain about `# NUMBER' if + we're seeing this input for a second time. + +Thu Sep 23 12:54:49 1999 Alex Samuel + + * emit-rtl.c (init_emit_once): Initialize modes first. + +Sun Sep 19 01:23:23 1999 Alex Samuel + + * config/i386/i386.c (pic_label_name): Change to char pointer. + (global_offset_table): New variable. + (load_pic_register): Fill global_offset_table if it hasn't + already been done. Allocate pic_label_name dynamically. + * ggc.h (empty_string): New variable. + * ggc-simple.c (empty_string): Likewise. + (init_ggc): Allocate empty_string and add as root. + * stmt.c (digit_strings): New variable. + (init_stmt): Add last_block_end_note as root. Allocate and + initialize digit_strings. + (expand_asm_operands): Use empty_string instead of string + constant. Use digit_strings instead of string constants. + * profile.c (init_arc_profiler): Allocate string with + ggc_alloc_string instead of xmalloc. + (output_func_start_profiler): Likewise. + * c-typeck.c (digest_init): Check if init is error_mark_node. + +Thu Sep 23 12:59:14 1999 Alex Samuel + Richard Henderson + + * ggc-page.c: New file. + * Makefile.in (ggc-page.o): New. + +Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com) + + * invoke.texi: Document -fdelete-null-pointer-checks + * toplev.c (flag_delete_null_pointer_checks): New. + (f_options): Add entry for -fdelete-null-pointer-checks. + (rest_of_compilation): Conditionalize null pointer check + elimination on flag_delete_null_pointer_checks. + (main): If -O2 or greater, enable -fdelete-null-pointer-checks + +1999-09-23 10:56 -0700 Zack Weinberg + + * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add + copyright notice and special exception to GPL. + +Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi + + * abi64.h (mips_function_value): Add prototype arguments. + + * mips-protos.h: New file with mips prototypes. + + * mips.c: Include "tm_p.h". + (mktemp, lookup_name): Add prototype arguments. + (extern_list, string_constant, mips_fill_delay_slot, + mips_output_external, mips_output_external_libcall, + mips_output_filename, mips_declare_object, function_prologue, + mips_expand_prologue, function_epilogue, mips16_constant, + build_mips16_function_stub, mips_output_conditional_branch): + Constify a char*. + (mips_va_start): Remove unused variable `u'. + (mips_va_arg): Cast value to unsigned when comparing against one. + (trace): Delete. + (save_restore_insns, mips_expand_prologue): Add missing arg in + call to `large_int'. + + * mips.h: Move prototypes to mips-protos.h. + (data_section, memory_address_p, rdata_section, + readonly_data_section, simple_epilogue_p, text_section): Delete + prototypes delcared elsewhere. + (mips_epilogue_delay_slots, print_options): Delete unused decls. + (trace): Delete. + (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace. + + * mips.md: Delete extra args in call to `mips_move_2words'. + + * xm-iris6.h (alloca): Add prototype argument. + + * genpeep.c: Include "tm_p.h" in generated output file. + +Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod + + * basic-block.h (find_edge_index): Change parameters. + * flow.c (verify_edge_list): Pass basic_block parameters to + find_edge_index instead of integers. + +Thu Sep 23 15:54:12 1999 Nick Clifton + + * combine.c (simplify_comparison): Use an unsigned shift to adjust + the constant. + +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 + + * install.texi (Configurations): Remove pyramid. Add fr30, i686, + i786, mn10200, mn10300, pdp11, v850. + +Thu Sep 23 07:37:13 1999 Dan Nicolaescu + + * libgcc2.c (num_digits): Add prototype with + __attribute__((const)). + (__terminate): Add prototype. + +Thu Sep 23 05:32:06 1999 Richard Henderson + + * builtins.c, dbxout.c, varasm.c: Include tm_p.h. + + * alpha/alpha.c (print_operand): Fix type of `code'. + (alpha_output_filename): Constify. + * alpha/alpha.h: Move all function declarations ... + * alpha/alpha-protos.h: ... here. New file. + * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function. + (SECTION_FUNCTION_TEMPLATE): Likewise. + +Thu Sep 23 11:15:36 1999 Bernd Schmidt + + * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p. + * expr.c (expand_expr): Likewise. + (do_jump): Likewise. + (do_store_flag): Pass ccp_store_flag to can_compare_p. + * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and + accessor macros. + (enum can_compare_purpose): New. + (can_compare_p): Adjust prototype. + (prepare_cmp_insn, prepare_operand): Declare. + * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab. + * optabs.c (cmp_available_p): Deleted. + (expand_abs): Pass ccp_jump to can_compare_p. + (can_compare_p): New arg PURPOSE. Check for combined optabs. + (prepare_cmp_insn): No longer static. Add arg PURPOSE. + Call can_compare_p rather than cmp_available_p. + (prepare_operand): No longer static. + (emit_cmp_and_jump_insn): Check for and use cbranch patterns. + (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn. + (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn + sequence to use emit_cmp_and_jump_insns. + (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab. + +Wed Sep 22 17:58:01 1999 Stan Cox + + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large + register offsets; let LEGITIMIZE_ADDRESS load it into a register. + (LEGITIMIZE_ADDRESS): Use plus_constant to avoid + (plus (reg) (const_int 0)) + * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls. + +Wed Sep 22 17:55:31 1999 David Edelsohn + + * rs6000.c (expand_block_move): DImode loads and stores require + word-aligned displacements. Increment address registers with + adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT. + +Wed Sep 22 17:35:55 1999 Michael Meissner + + * dwarf2out.c (base_type_die): Use the name __unknown__ if there + is no name for the base type, rather than segfault. If we are + writing out a complex integer type, use DW_ATE_lo_user. + + * expr.c (emit_move_insn_1): If we are copying a complex that fits + in one word or less (complex char, complex short, or on 64 bit + systems complex float) to/from a hard register, copy it through + memory instead of dying in gen_{real,imag}part. If we have a + short complex type, prevent inlining since it allocates stack + memory. + + * tree.c (build_complex_type): If we are writing dwarf2 output, + generate a name for complex integer types. + +Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod + + * basic-block.h (add_noreturn_fake_exit_edges): Use correct name. + * flow.c (remove_edge): Remove extra whitespace. + (remove_fake_edges): Fix comment. + (add_noreturn_fake_exit_edges): Use the correct name. + +Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell + + * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables. + (mostlyclean): Depend on INTL_MOSTLYCLEAN. + (clean): Depend on INTL_CLEAN. + (maintainer-clean): Adjust. + +Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi + + * configure.in (AC_PREREQ): Bump to 2.13. + (AC_C_STRINGIZE): Call this instead of using a custom macro. + + * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__. + + * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY. + + * acconfig.h (HAVE_CPP_STRINGIFY): Delete. + + * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete. + (HAVE_STRINGIZE): Define. + +Wed Sep 22 06:25:15 1999 Jim Kingdon + + * c-parse.in: save and restore warn_pointer_arith on __extension__ + along with pedantic. + (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added. + Set the type of extension to itype rather than $1 kludge. + * extend.texi (Alternate Keywords): Adjust documentation. + * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt. + +Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c, pa.h, pa.md: Support multiple assembler dialects in + most assembler templates. + + * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0 + FP loads and stores. + (following_call): Always return zero for the PA8000. + * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0 + FP loads and stores. + (LEGITIMIZE_RELOAD_ADDRESS): Similarly. + + * pa.h (BRANCH_COST): Define. + + * pa.md (return, return_internal): Use bve for PA2.0. + + * pa.md (fused multiply): Add variants which reduce height for the + fused multiply, but which still generate 2 insns. + (fnegabs): Similarly. + + * pa.md (subsi3): Turn into an expander. Create two anonymous + patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. + * pa.h (EXTRA_CONSTRAINT): Handle 'S'. + + * pa.md (floatunssisf2, floatunssidf2): Generate different RTL + for TARGET_PA_20. + (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0 + code generation. + (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise. + (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise. + + * regclass.c (init_regs): Add "top_of_stack" as a garbage + collection root. + + * flow.c (record_active_eh_regions): Terminate loop after finding + the last insn in the last basic block. + +Wed Sep 22 20:25:00 1999 Michael Hayes + + * config/c4x/c4x.md: Delete parallel instruction peepholes. + +Wed Sep 22 19:59:19 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots. + +Wed Sep 22 19:56:25 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn + splitting to not use output template. + +Wed Sep 22 19:50:12 1999 Michael Hayes + + * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start. + * config/c4x/c4x.c (c4x_va_start): New function. + +Tue Sep 21 18:40:01 1999 Jan Hubicka + + * genrecog.c (not_both_true): Handle correctly cases when called for + tests with different positions in the insn. + +Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi + + * machmode.h (HOST_PTR_PRINTF): Move from here ... + + * system.h (HOST_PTR_PRINTF): ... to here. + + * mips-tfile.c: Don't include machmode.h. + + * Makefile.in (MACHMODE_H): New variable. Update to use it. + (mips-tfile.o): Don't depend on machmode.h. + +Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi + + * haifa-sched.c (sched_analyze): Rename local variable `region' to + avoid conflicts with typedef struct `region' at the top level scope. + +Tue Sep 21 14:14:50 1999 Richard Henderson + + * basic-block.h (basic_block): Add eh_beg, eh_end. + * flow.c (entry_exit_blocks): Update. + (find_basic_blocks): Don't allocate bb_eh_end, or pass it around. + Call new functions. + (find_basic_blocks_1): Don't record eh_list at each bb. Use + lists.c functions to allocate insn lists. + (make_edges): Use eh_beg+eh_end, not the lists. Split out EH + edge creation ... + (make_eh_edge): ... here. New. + (move_stray_eh_region_notes): New. + (record_active_eh_regions): New. + (delete_unreachable_blocks): Split out block merging ... + (try_merge_blocks): ... here. New. + (merge_blocks_move_predecessor_nojumps): Remove edge arg. + Dump debugging data. + (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 + + * extend.texi (Bound member functions): Document unbound pmf + conversion. + +Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod + + * flow.c (split_edge): Handle insertion on a fallthrough edge which + has the EXIT_BLOCK as a dest. + +Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod + + * flow.c (remove_edge): New function to remove an edge from the + flow graph. + (remove_fake_successors): New function to remove fake successor edges. + (remove_fake_edges): New function to remove all fake edges from the + flow graph. + (add_fake_exit_edges): New function to add fake edges from all blocks + with no successors to the exit block. + * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add + prototypes for new functions. + +Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod + + * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): + Use Pmode to determine whether to output .dword or .word. + +Tue Sep 21 11:04:34 1999 Alex Samuel + + * tree.c (built_in_filename): New variable. + (BUILT_IN_FILENAME): New macro. + (init_tree_codes): Allocate built_in_filename. + (make_node): Use built_in_filename instead of string constant. + +Tue Sep 21 14:13:27 1999 Nick Clifton + + * configure.in: Add fr30 target. + * configure: Regenerate. + * config/fr30: New directory. + * config/fr30/crti.asm: New file. + * config/fr30/fr30.c: New file. + * config/fr30/crtn.asm: New file. + * config/fr30/fr30.h: New file. + * config/fr30/fr30.md: New file. + * config/fr30/lib1funcs.asm: New file. + * config/fr30/t-fr30: New file. + * config/fr30/xm-fr30.h: New file. + +Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (merge_blocks_move_successor_nojumps): Delete the + BARRIER at the end of the successor, not the BARRIER before + the successor. + + * pa.c (pa_add_gc_roots): Fix thinko in last change. + +Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com) + + * stmt.c (any_pending_cleanups): Don't crash when + current_function->stmt is unset. + +Tue Sep 21 00:59:49 1999 Alexandre Oliva + + * emit-rtl.c (init_emit_once): Initialize const_int_rtx before + other initializations that may use it for relative offsets. + +Mon Sep 20 21:43:25 1999 Alexandre Oliva + + * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs. + (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas. + * config/i386/sol2dbg.h: Removed. + * config/i386/sol2gas.h: New file, to enable gas work-around. + * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas. + Don't use sol2dbg.h. + * configure: Rebuilt. + +Mon Sep 20 13:29:41 1999 Mark Mitchell + + * invoke.texi (-fthis-is-variable): Remove documentation. + +Mon Sep 20 12:59:16 1999 Richard Henderson + + * basic-block.h (compute_bb_for_insn): Declare. + * flow.c (compute_bb_for_insn): Export. Don't accept the varray + to use; set size of basic_block_for_insn directly. + (find_basic_blocks): Update. + +Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi + + * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();". + +Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi + + * crtstuff.c (ON_EXIT): Delete empty macro definition. + (__do_global_ctors_aux): Call atexit(), not ON_EXIT(). + +Mon Sep 20 15:25:35 1999 Nick Clifton + + * c-decl.c (c_decode_option): Extend comment. + +Mon Sep 20 14:43:37 1999 Nick Clifton + + * toplev.c (progname): Make 'const char *' + (flag_print_mem): Move out of main. + (version_flag): Move out of main. + (filename): Move out of main. + (debug_args): Remove g prefix from options. + (documented_lang_options): Remove cpplib specific options. + (display_help): Add g prefix to debug options. + (check_lang_option): Delete this function. + (decode_d_option): New function: Decode -d... option. + (decode_f_option): New function: Decode -f... option. + (decode_W_option): New function: Decode -W... option. + (decode_g_option): New function: Decode -g... option. + (independent_decode_option): New function: Decode a language + independent command line option. + (main): Invoke lang_decode_option and then + independent_decode_option on each command line option in + turn. + +Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com) + + Revert this change. Gavin's patch to operand_equal_p is a better fix. + * fold-const.c (fold_range_test): Do not try to fold the range + test if the rhs or lhs has side effects. + + * basic-block.h (compute_flow_dominators): Declare. + + * gcse.c (alloc_code_hoist_mem): New function. + (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise. + (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise. + (hoist_code, one_code_hoisting_pass): Likewise. + (gcse_main): If optimizing for size, then hoist expressions + computed in multiple dominated basic blocks. + + * gcse.c (invalid_nonnull_info): New function. + (delete_null_pointer_checks): Likewise. + * rtl.h (delete_null_pointer_checks): Declare. + * toplev.c (rest_of_compilation): Call delete_null_pointer_checks. + + * flow.c (merge_blocks_move_predecessor_nojumps): New function. + (merge-blocks_move_successor_nojumps): Likewise. + (merge_blocks): Allow merging of some blocks, even if it requires + physical movement of the blocks, but not if it requires new jumps. + + * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file. + Callers and prototype changed. + * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes. + +Mon Sep 20 06:56:32 1999 Alexandre Oliva + + * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of + -YP when both -p and -pg are present. From i386/sol2.h. + +Mon Sep 20 10:49:05 1999 Bernd Schmidt + + * Makefile.in (distclean): Delete tm_p.h. + * configure.in: Create a new file, "tm_p.h", from a list in + "tm_p_file". For ix86 systems, set up "tm_p_file" to include + "i386/i386-protos.h". + + * alias.c: Include "tm_p.h". + * c-typeck.c: Likewise. + * calls.c: Likewise. + * cse.c: Likewise. + * emit-rtl.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * final.c: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * gcse.c: Likewise. + * global.c: Likewise. + * haifa-sched.c: Likewise. + * integrate.c: Likewise. + * jump.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * optabs.c: Likewise. + * recog.c: Likewise. + * reg-stack.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * toplev.c: Likewise. + * tree.c: Likewise. + * unroll.c: Likewise. + * genattrtab.c (main): Make generated file include "tm_p.h". + * genemit.c (main): Likewise. + * genoutput.c (main): Likewise. + * genrecog.c (main): Likewise. + + * i386.h: Delete all prototypes. + * i386.c: Include "tm_p.h". + (ix86_attr_length_default): Call constant_call_address_operand + with correct number of arguments. + * i386-protos.h: New file. + * i386.md (unnamed patterns): Call constant_call_address_operand + with correct number of arguments. + (exception_receiver): Call load_pic_register with correct number + of arguments. + +Sun Sep 19 14:18:39 1999 Richard Henderson + + * c-pragma.c (mark_align_stack): Dereference the void* properly. + +Sun Sep 19 09:03:40 1999 Mark Mitchell + + * rtl.h (insns_safe_to_move_p): New function. + * loop.c (find_and_verify_loops): Use it. + * rtlanal.c (insns_safe_to_move_p): Define it. + +Sun Sep 19 02:54:33 1999 Richard Henderson + + * c-pragma.c: Include ggc.h. + * Makefile.in (c-pragma.o): Update. + +Sat Sep 18 16:01:18 1999 Alexandre Oliva + + * config/i386/sol2.h (CPP_SPEC): Support -[p]threads + (LIB_SPEC): Likewise. + (LINK_SPEC): Do not assert -z text with -shared -mimpure-text. + Reindent -YP/-p/-pg. + Copied from config/sparc/sol2.h. + +Sat Sep 18 11:52:43 1999 Richard Henderson + + * c-pragma.c (mark_align_stack): New. + (init_pragma): New. + * c-pragma.h (init_pragma): Declare it. + * c-lex.c (init_parse): Call it. + +Sat Sep 18 15:20:38 1999 Alexandre Oliva + + * configure.in: Pick up thread library on Solaris/x86 just + like on Solaris/sparc. + * configure: Rebuilt. + +Sat Sep 18 11:15:58 1999 Alex Samuel + + * rtl.h (global_rtx_index): New enum. + (global_rtl): Change to array of rtx. + (pc_rtx, cc0_rtx): Redefine accordingly. + (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise. + (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise. + (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise. + (virtual_outgoing_args_rtx, virtual_cfa): Likewise. + (const_int_rtx): Change to array of rtx. + (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine + accordingly. + * emit-rtl.c (global_rtl): Change to array of rtx. + (const_int_rtx): Change to aray of rtx. + (gen_rtx_CONST_INT): Redefine accordingly. + (init_emit_once): Allocate and initialize global_rtl. Likewise + for const_int_rtx. Add both as GC roots. + * genattrtab.c (global_rtl): Update declaration. + +1999-09-17 Ulrich Drepper + + * Makefile (USER_H): Add iso646.h back. + +Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of + zapping the LOG_LINKS of sched_before_next_call. + + * pa.h (INSN_SETS_ARE_DELAYED): Delete. + * pa.c (insn_refs_are_delayed): Renamed from + insn_sets_and_refs_are_delayed. + +Fri Sep 17 15:19:01 1999 Mark Mitchell + + * functiion.h (struct function): Add x_whole_function_mode_p. + (retrofit_block): Declare. + * function.c (retrofit_block): New function. + (identify_blocks): Add assertions. Allow an incomplete set of + block notes if we're still generating code for the function. + * integrate.c: Include loop.h. + (expand_inline_function): Call find_loop_tree_blocks to map block + notes to blocks when in whole-function mode. Use retrofit_block + to insert new BLOCKs for the inlined function, rather than + insert_block. + * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel. + * Makefile.in (integrate.o): Depend on loop.h. + +Fri Sep 17 15:11:20 1999 Mark Mitchell + + * tree.h (warn_about_unused_variables): Declare. + * stmt.c (warn_about_unused_variables): New function, split out + from ... + (expand_end_bindings): Here. + +Fri Sep 17 15:07:37 1999 Mark Mitchell + + * stmt.c (preserve_subexpressions_p): Don't crash when + current_function->stmt is unset. + +Fri Sep 17 15:03:16 1999 Mark Mitchell + + * stmt.c (expand_start_bindings): Allow callers to pass a flag + indicating that no NOTE_INSN_BLOCK_BEG note is required. + (expand_start_target_temps): Use it. + * except.c (expand_eh_region_start_for_decl): Likewise. + * expr.c (expand_expr): Likewise. + +Fri Sep 17 15:05:27 1999 Gavin Romig-Koch + + * fold-const.c (operand_equal_p): Pay attention to side effects. + +Fri Sep 17 11:14:17 1999 Jason Merrill + + * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT. + * sparc/sunos4.h (HAVE_ON_EXIT): Remove. + + * tlink.c (scan_linker_output): Look for keywords before accepting + a mangled name in quotes. + +Thu Sep 16 16:47:08 1999 Richard Henderson + + * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero. + * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise. + +Thu Sep 16 16:35:41 1999 Richard Henderson + + * alpha.md: Revert Thu Nov 26 change that came in through the + last gcc2 merge: reinstate (plus (plus ...)) reload patterns. + Avoid earlyclobber when possible. + +Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi + + * libgcc2.c (__do_global_ctors): Call atexit with one arg. + + * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS(). + Define HAVE_ON_EXIT. + +Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi + + * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use + CTYPE_CONV in all ctype macros. + + * cccp.c (initialize_char_syntax): Use uppercase ctype macro + from system.h. + + * cexp.y (initialize_random_junk): Likewise. + + * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise. + + * i370.c (handle_pragma): Likewise. + + * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise. + + * v850.c (override_options): Likewise. + + * doprint.c (_doprnt): Likewise. + + * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files): + Likewise. + + * fixinc/server.c (load_data): Likewise. + + * fold-const.c (real_hex_to_f): Likewise. + + * genattr.c (write_upcase, gen_attr): Likewise. + + * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr, + write_upcase): Likewise. + + * genemit.c (print_code): Likewise. + + * genopinit.c (gen_insn): Likewise. + + * genpeep.c (print_code): Likewise. + + * genrecog.c (print_code): Likewise. + + * optabs.c (init_libfuncs): Likewise. + +Thu Sep 16 14:03:32 1999 Mark Mitchell + + * haifa-sched.c (sched_analyze): Keep the list of notes organized + in pairs. + (reemit_notes): Likewise. + +Thu Sep 16 11:50:52 1999 Alex Samuel + + * ggc.h (ggc_root): Move to ggc-common.c. + (roots): Remove. + (ggc_mark_rtx, ggc_mark_tree): Change to macro. + (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern. + (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise. + (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New. + * ggc-common.c (ggc_root): Move from ggc.h. + (roots): Declare, static. + (ggc_mark_rtx, ggc_mark_tree): Renamed to... + (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for + null or check/set mark bit. + (ggc_mark_roots): New. + * ggc-simple.c (ggc_collect): Call ggc_mark_roots. + +Thu Sep 16 11:37:32 1999 Richard Henderson + + * m32r.c: Include toplev.h. + (*): Add ATTRIBUTE_UNUSED as needed to arguments. + (gen_compare): Rename swap_p to must_swap to match uses. + Add default abort case. + (m32r_output_function_epilogue): Remove unused variables. + (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX. + * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally + define to empty parameter list. Update all uses. + (predicate decls): Use enum machine_mode not int. + * m32r.md (movsi): Call abort, not fatal_insn. + (zero_branch_insn, rev_zero_branch_insn): Add default abort case. + +1999-09-14 Andrew Haley + + * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0, + use $0 instead of 0. + +Thu Sep 16 10:53:36 1999 Bernd Schmidt + + * reload1.c (order_regs_for_reload): Move hard_reg_n_uses + computation out of loop over hard regs. + +Wed Sep 15 21:37:06 1999 Mark Mitchell + + * function.c (identify_blocks): Don't shadow a variable in an + outer scope. + * integrate.c (integrate_decl_tree): Don't use pushlevel, + pushdecl, or poplevel to build up the new BLOCK tree. + (expand_inline_function): Likewise. + (integrate_parm_decls): Likewise. + +Wed Sep 15 21:20:38 1999 Mark Mitchell + + * c-typeck.c (qualify_type): Merge qualifiers from both types. + +1999-09-15 Brad Lucier + + * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math + * invoke.texi: Document this change. + +Wed Sep 15 17:56:00 1999 Richard Henderson + + * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT. + Free the struct. + (mark_emit_status): Renamed from mark_emit_state. + * except.c (mark_eh_status): Renamed from mark_eh_state. + Check not null before marking. + (free_eh_status): New. + * expr.c (mark_expr_status, free_expr_status): New. + * function.c (free_machine_status): New. + (free_after_parsing): New. + (free_after_compilation): Move bits to free_after_parsing; call + free_eh_status, free_expr_status; zero the marked members of the + function state. + (prepare_function_start): No can_garbage_collect. + Call init_eh_for_function. + (expand_dummy_function_end): Free up current_function state. + (mark_function_status): Renamed from mark_function_state. + (mark_function_chain): No can_garbage_collect. Call mark_expr_status. + * function.h (struct function): No can_garbage_collect. + (free_machine_status, free_after_parsing): Declare. + (free_eh_status, free_expr_status): Declare. + * ggc.h (mark_expr_status): Declare. + * stmt.c (free_stmt_status): Free the struct. + (mark_stmt_status): Renamed from mark_stmt_state. + (init_stmt): Don't call init_eh. + (init_stmt_for_function): Don't call init_eh_for_function. + * toplev.c (compile_file): Call init_eh. + (rest_of_compilation): Free basic block info before ggc_collect. + Call free_after_parsing; conditionally call free_after_compilation. + * varasm.c (mark_varasm_status): Renamed from mark_varasm_state. + Check not null before marking. + (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct. + +Wed Sep 15 17:53:16 1999 Richard Henderson + + * c-lex.c (yylex): Initialize warn. + +Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (emit_move_sequence): Properly set the mode of the scratch + register when performing secondary reloads for the SAR register. + +Wed Sep 15 15:51:52 1999 Mark Mitchell + + * rtl.h (NOTE_BLOCK_NUMBER): Replace with ... + (NOTE_BLOCK): New macro. + (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove. + * function.h (identify_blocks): Change prototype. + * function.c (identify_blocks): Simplify. + (reorder_blocks): Likewise. + * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a + NOTE_INSN_BLOCK_{BEG,END}. + * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on + the list of saved notes if the note isn't a + NOTE_INSN_BLOCK_{BEG,END}. + (move_insn1): Use NOTE_EH_HANDLER in comment, rather than + NOTE_BLOCK_NUMBER. + (reemit_notes): Adjust recreation of notes to reflect new saved + note structure. + * print-rtl.c (print_rtx): Print the address of the BLOCK when + printing a block note. + * stmt.c (block_vector): Remove. + (find_loop_tree_blocks): Simplify. + (unroll_block_trees): Likewise. + * tree.h (reorder_block): Change prototype. + +Wed Sep 15 14:39:35 1999 Jason Merrill + + * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT. + * libgcc2.c: Lose obsolete defn of WEAK_ALIAS. + (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT. + (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl. + (atexit, exit): Simplify. + * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT. + * config/lots: Remove defns of HAVE_ATEXIT. + +Wed Sep 15 10:25:12 1999 Mark Mitchell + + * calls.c (precompute_arguments): Fix typo in comment. + * expr.c (preexpand_calls): Don't preexpand the cleanup in a + TARGET_EXPR. + +Wed Sep 15 09:59:59 1999 Mark Mitchell + + * dsp16xx.c (override_options): Fix typos in GC root registration. + +Wed Sep 15 15:23:28 1999 Philip Blundell + + * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition + from config/svr4.h. + (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise. + (FUNCTION_PROFILER): Redefine appropriately for Linux. + (CC1_SPEC): Likewise. + +Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi + + * genattr.c (main): Add extern prototype. Call return, not exit. + * genattrtab.c (main): Likewise. + * gencheck.c (main): Likewise. + * gencodes.c (main): Likewise. + * genconfig.c (main): Likewise. + * genemit.c (main): Likewise. + * genextract.c (main): Likewise. + * genflags.c (main): Likewise. + * gengenrtl.c (main): Likewise. + * genopinit.c (main): Likewise. + * genoutput.c (main): Likewise. + * genpeep.c (main): Likewise. + * genrecog.c (main): Likewise. + + * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED. + * genattrtab.c (get_insn_name): Likewise. + * gencodes.c (get_insn_name): Likewise. + * genconfig.c (get_insn_name): Likewise. + * genemit.c (get_insn_name): Likewise. + * genextract.c (get_insn_name): Likewise. + * genflags.c (get_insn_name): Likewise. + * genopinit.c (get_insn_name): Likewise. + * genpeep.c (get_insn_name): Likewise. + + * gencheck.c (usage): Add static prototype. + * genextract.c (print_path): Constify a char*. + * genopinit.c (optabs): Likewise. + * genoutput.c (operand_data, data, output_predicate_decls, + compare_operands): Likewise. + * genrecog.c (write_tree): Add default case in switch. + +Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi + + * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes. + + * print-rtl.c (get_insn_name): Remove prototype. + + * toplev.h (progname): Declare const. + + * toplev.c (init_decl_processing, init_obstacks, init_tree_codes, + init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info, + dump_sched_info, dump_local_alloc, regset_release_memory, + print_rtl, print_rtl_with_bb, rest_of_decl_compilation, + error_with_file_and_line, error_with_decl, error_for_asm, error, + fatal, warning_with_file_and_line, warning_with_decl, warning, + pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry): + Remove redundant prototypes. + + (notice, check_lang_option, report_file_and_line, vnotice, + mark_file_stack): Add static prototype. + (set_fatal_function): Add prototype. + (vnotice, report_file_and_line, set_fatal_function, + check_lang_option): Constify a char*. + (main): Prototype. Call return, not exit. + +Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi + + * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro. + + * configure.in (AC_GCC_C_LONG_DOUBLE): Call it. + + * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2. + + * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double. + +Wed Sep 15 11:04:43 1999 Bernd Schmidt + + * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it, + behave as if it's zero in all cases. + (expand_function_start): Adjust call to assign_parms. + * tree.h (assign_parms): Adjust prototype. + * objc/objc-act.c (hack_method_prototype): Adjust call to + assign_parms. + +Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to + arg_pointer_rtx fixed if the argument pointer register is + not fixed. + (NONZERO_BASE_PLUS_P): Likewise. + +Tue Sep 14 20:26:02 1999 Richard Henderson + + * rtl.def (match_insn, match_insn2): Remove match_insn; rename + match_insn2 to match_insn. + * genrecog.c (add_to_sequence): Rename MATCH_INSN2. + +Tue Sep 14 20:10:29 1999 Richard Henderson + + * Makefile.in (USER_H): Remove va-foo.h. + + * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h, + va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h, + va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h, + va-spur.h,va-v850.h}: Remove. + +Tue Sep 14 19:43:16 1999 Richard Henderson + + * sparc/sparc.md (eligible_for_return_delay): New attribute. + (in_return_delay): Use it instead of match_insn. + +Tue Sep 14 23:05:37 1999 Alexandre Oliva + + * config/alpha/va_list.h (va-alpha.h): Do not include. + (__gnuc_va_list): Typedef as in varargs.h. + +Tue Sep 14 18:14:03 1999 Richard Henderson + + * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and + DECL_LIVE_RANGE_RTL. + +Tue Sep 14 16:47:08 1999 Mark Mitchell + + * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER, + not NOTE_BLOCK_NUMBER. + (expand_eh_region_end): Likewise. + (find_exception_handler_labels): Likewise. + (scan_region): Likewise. + (exception_optimize): Likewise. + (update_rethrow_references): Likewise. + (set_insn_eh_region): Likewise. + * final.c (final_scan_insn): Likewise. + * flow.c (make_edges): Likewise. + * integrate.c (expand_inline_function): Likewise. + * print-rtl.c (print_rtx): Likewise. + +Tue Sep 14 16:30:16 1999 Richard Henderson + + * ginclude/stdarg.h, ginclude/varargs.h: Implement in + terms of builtin functions and types. + + * mips.c (mips_build_va_list): New. + (mips_va_start, mips_va_arg): New. + * mips.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. + + * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set. + (sh_build_va_list, sh_va_start, sh_va_arg): New. + * sh.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. + +Tue Sep 14 16:20:24 1999 Richard Henderson + + * recog.h (struct recog_data): Make dup_num, operand_address_p, + n_operands, n_dups, n_alternatives `char' instead of `unsigned char'. + (struct insn_data): Likewise with n_operands, n_dups, + n_alternatives, output_format. + * regclass.c (scan_one_insn): Cast n_operands to int before + arithmetic inside comparison. + +Tue Sep 14 15:13:36 1999 Richard Henderson + + * toplev.c (compile_function): Unconditionally emit nop. + +Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi + + * haifa-sched.c (actual_hazard): Move declaration of variable + `this_cost' into the scope where it is used. + +Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi + + * c-pragma.c (handle_pragma_token): Wrap variables `name' and + `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in + HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP. + + * genrecog.c (make_insn_sequence): Call memset, not bzero. + + * jump.c (find_insert_position): Don't declare or define unless + !HAVE_conditional_arithmetic. + (returnjump_p_1, delete_prior_computation): Add static prototypes. + + * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes. + + * recog.c (offsettable_address_p): Prototype function pointer. + (preprocess_constraints): Call memset, not bzero. + + * tree.c (tree_node_kind_names): Constify a char*. Make static. + (gcc_obstack_init): Don't declare. + (fix_sizetype): Add static prototype. + (gcc_obstack_init): Use prototype casts in call to _obstack_begin. + (tree_cons): Call memset, not bzero. + + * varasm.c (remove_from_pending_weak_list): Wrap declaration and + definition in macro ASM_WEAKEN_LABEL. + (mark_const_hash_entry): Add static prototype. + +Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi + + * c-lex.c (handle_generic_pragma): Remove unused variable `c'. + + * unroll.c (find_common_reg_term, subtract_reg_term, + loop_find_equiv_value): Add static prototypes. + (unroll_loop): Wrap variable `prev' in macro HAVE_cc0. + (copy_loop_body): Remove unreachable break statement. + + * sparc.c (sparc_va_arg): Remove unused variable `tmp'. + + * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes. + +Tue Sep 14 15:28:00 1999 Bernd Schmidt + + Undo some changes from the gcc2 merge: + * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code. + * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null + pointers. + + Undo this change: + Sat Oct 3 07:20:28 1998 Stephen L Moshier + * emit-rtl.c (gen_lowpart_common): Disable optimization of + initialized float-int union if the value is a NaN. + +Tue Sep 14 04:03:44 1999 Mumit Khan + + * gthr-win32.h: New file. + + * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize + shared as a valid attribute. + * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute. + * extend.texi: Document `shared' variable attribute. + +Tue Sep 14 04:01:46 1999 Loren Rittle + + * configure.in: Handle --enable-threads on FreeBSD. + * configure: Rebuit. + +Tue Sep 14 03:58:44 1999 Andreas Jaeger + + * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add + thread support. + * configure: Rebuilt. + +Tue Sep 14 03:47:23 1999 Joel Sherrill + Charles-Antoine Gauthier + Rosimildo DaSilva + + * configure.in (m68k-*-rtemscoff*): Added. + * configure.in (mips64orion-*-rtems*): Converted to ELF. + * configure.in (sparc-*-rtemsaout*): Added as alias for old + sparc-rtems configuration. + * configure.in (sparc-*-rtemself*): Added. + * configure.in (sparc-*-rtems*): Now ELF not a.out. + * config/i386/rtems.h: Added comment. + * config/sparc/rtemself.h: New file. + + * configure.in (m68k-rtemself): Added. + * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO + and DWARF_DEBUGGING_INFO. + * config/m68k/crti.s: New file. + * config/m68k/crtn.s: New file. + * config/m68k/t-crtstuff: New file. + * config/m68k/rtemself.h: New file. + + * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for + global ctor/dtor and C++ exception handling. + * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o) + for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for + ENDFILE_SPEC. + * config/i386/t-rtems-i386: New File. + +Tue Sep 14 09:47:41 1999 Andreas Schwab + + * stmt.c (expand_end_case): Return right away if the case stack is + empty. + +Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (version.c): Remove rule incorrectly brought in from + the gcc2 merge. + +Tue Sep 14 01:42:27 1999 Marc Espie + + * Makefile.in: Prepend $(SHELL) to move-if-change calls. + * msdos/top.sed: Take into account a prepended $(SHELL) to + move-if-change. + * winnt/config-nt.sed: Likewise. Kill bogus substitution. + + * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls. + +Tue Sep 14 01:38:52 1999 J"orn Rennecke + + * regmove.c (fixup_match_1): Don't change an unchanging register. + (stable_but_for_p): Renamed to: + (stable_and_no_regs_but_for_p). Reject unchanging registers too. + Changed all callers. + +Tue Sep 14 01:33:15 1999 Andreas Schwab + + * loop.c (strength_reduce): Don't call reg_used_between_p if the + insn from BL2 is after the insn from BL. + +Mon Sep 13 21:06:01 1999 Richard Henderson + + * recog.h (INSN_OUTPUT_FORMAT_*): New. + (struct insn_data): Merge `template' and `outfun' into `output'. + Add `output_format'. + * genoutput.c (INSN_OUTPUT_FORMAT_*): New. + (struct data): Remove `outfun'; add `output_format'. + (name_for_index): Remove declaration. + (output_insn_data): Handle output formats. + (process_template): Emit the bare array for @. + (gen_expand, gen_split): Set output_format to NONE. + * output.h (get_insn_template): Declare. + * final.c (get_insn_template): New. + (final_scan_insn): Use it. + * toplev.c (compile_file): Likewise. + + * c4x/c4x.c (c4x_process_after_reload): Likewise. + * i860/i860.c (output_delayed_branch): Likewise. + (output_delay_insn): Likewise. + +1999-09-13 Alexandre Oliva + + * rtl.c (obstack_alloc_rtx): Removed. + +1999-09-13 17:03 -0700 Zack Weinberg + + * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern. + +Mon Sep 13 15:21:46 1999 Richard Henderson + + * i386.c (call_insn_operand): Reject const_int. + (expander_call_insn_operand): Use call_insn_operand. + +Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi + + * gcc.c (getrusage): Wrap prototype arguments in PROTO(). + +1999-09-13 12:18 -0700 Zack Weinberg + + * config/i370/i370.md (mulsi, divsi, modsi anonymous insns): + Use DImode operation. + +1999-09-13 12:13 -0700 Zack Weinberg + + * gcc.c: Include sys/resource.h. + (report_times): New flag. + (execute): If report_times is set, calculate and report the + CPU time consumed by each subprocess. + + (rus, prus): New globals. + (option_map): Add --time. + (display_help): Document -time. + (process_command): Set report_times if -time is given. + Turn off -pipe if -time is given. + + * invoke.texi: Document new option -time. + + * configure.in: Check for getrusage. Check if we have to + prototype getrusage. + * acconfig.h: Add NEED_DECLARATION_GETRUSAGE. + * configure: Regenerate. + * config.in: Regenerate. + +Mon Sep 13 12:57:06 1999 Dave Brolley + + * cppinit.c (append_include_chain): Initialize 'next' and 'alloc' + fields. + +Mon Sep 13 10:01:33 1999 Nick Clifton + + * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as + appropriate) if FINE_GRAINED_LIBRARIES is not defined. + (nan): Return _thenan_sf or _thenan_df as appropriate. + (L_thenan_sf): Define _thenan_sf. + (L_thenan_df): Define _thenan_df. + + * Makefile.in (FPBIT_FUNCS): Add _thenan_sf. + (DPBIT_FUNCS): Add _thenan_df. + +Mon Sep 13 09:38:53 1999 Andreas Schwab + + * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and + TYPE_SIZE_UNIT. + +Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi + + * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h. + + * gcc.h: New file. + (lang_specific_driver): Don't take a function pointer parameter. + All callers changed. + + * gcc.c: Include gcc.h. + (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link, + lang_specific_extra_outfiles, fatal): Don't declare. + (multilib_defaults_raw): Constify. + (read_specs): Call memset, rather than bzero. + (main): Call return, not exit. + (lookup_compiler): Call memcpy, not bcopy. + (fatal): Make extern. + + * cppspec.c: Include gcc.h. + (lang_specific_driver): Initialize variable `quote'. Constify a + char*. All calls to the function pointer parameter now + explicitly call `fatal'. + + * gccspec.c (lang_specific_driver): Include gcc.h. + +Sun Sep 12 19:52:10 1999 Richard Earnshaw + + * arm.c (note_invalid_constants): Use recog_data.operand_type + for recog_op_type. + +Sun Sep 12 15:53:20 1999 Bernd Schmidt + + * tree.h (build_common_tree_nodes, build_common_tree_nodes_2): + Declare. + + * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg, + reload_reg_class, reload_inmode, reload_outmode, reload_optional, + reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, + reload_secondary_in_reload, reload_secondary_out_reload, + reload_secondary_in_icode, reload_secondary_out_icode, + reload_reg_rtx, reload_when_needed): Delete declarations. + (struct reload): New structure. + (rld): Declare new array. + * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg, + reload_reg_class, reload_inmode, reload_outmode, reload_optional, + reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, + reload_secondary_in_reload, reload_secondary_out_reload, + reload_secondary_in_icode, reload_secondary_out_icode, + reload_reg_rtx, reload_when_needed): Delete definitions. + (rld): New array. + (whole file): Replace uses of the deleted arrays with uses of rld. + * reload1.c (whole file): Replace uses of the deleted arrays with + uses of rld. + (choose_reload_regs): Copy in/out of save_reload_reg_rtx with + explicit loops, not with bcopy. + +Sun Sep 12 05:00:24 1999 Richard Henderson + + * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups, + insn_n_alternatives, insn_operand_constraint, insn_operand_address_p, + insn_operand_mode, insn_operand_strict_low, insn_operand_predicate, + insn_name): Delete and consolidate into new structures. + (insn_operand_predicate_fn): New. + (insn_output_fn): New. + (insn_gen_fn): New. + (struct insn_operand_data): New. + (struct insn_data): New. + (insn_data): New. + (OUT_FCN): Update for insn_data change. + * builtins.c (expand_builtin_strlen): Likewise. + (expand_builtin_memcmp): Likewise. + * combine.c (make_extraction, simplify_comparison): Likewise. + * cse.c (canon_reg, cse_insn): Likewise. + * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise. + * expmed.c (store_bit_field, extract_bit_field): Likewise. + (emit_store_flag): Likewise. + * expr.c (convert_move, emit_block_move): Likewise. + (clear_storage, emit_push_insn, expand_increment): Likewise. + (do_store_flag): Likewise. + * expr.h (GEN_FCN): Likewise. + (insn_gen_function): Die. + * final.c (final_scan_insn): Update for insn_data change. + (output_asm_name): Likewise. + * function.c (fixup_var_refs_1): Likewise. + * loop.c (check_dbra_loop): Likewise. + * optabs.c (expand_binop, expand_twoval_binop): Likewise. + (expand_unop, expand_complex_abs, emit_unop_insn): Likewise. + (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise. + (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise. + * recog.c (validate_replace_rtx_1, extract_insn): Likewise. + * regmove.c (gen_add3_insn): Likewise. + * reload.c (push_secondary_reload, combine_reloads): Likewise. + (find_reloads, find_reloads_address_1): Likewise. + (debug_reload_to_stream): Likewise. + * reload1.c (emit_reload_insns, gen_reload): Likewise. + * stmt.c (expand_end_case): Likewise. + * toplev.c (compile_file): Likewise. + + * c4x/c4x.c (c4x_process_after_reload): Likewise. + * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. + + * print-rtl.c (insn_name_ptr): Remove declaration. + (get_insn_name): Declare. + (print_rtx): Use it. + * genoutput.c (insn_name_ptr): Remove. + (next_operand_number): New. + (struct operand_data): New. + (null_operand, odata, odata_end): New. + (struct data): Use struct operand_data. + (idata, idata_end): Renamed from insn_data and end_of_insn_data. + (get_insn_name): Renamed from name_for_index. + (output_prologue): Define NO_MD_PROTOTYPES. + (output_predicate_decls): Break out from output_epilogue. + Iterate over the operands list. + (output_operand_data): Break out from output_epilogue. Emit + just the operands list. + (output_insn_data): Break out from output_epilogue. Emit just + the insn data. + (output_epilogue): Remove. + (output_get_insn_name): New. + (constraints, op_n_alternatives, predicates, address_p): Die. + (modes, strict_low, seen): Die. + (scan_operands): Take new param `d' instead of writing to + seven global variables. + (compare_operands): New. + (place_operands): New. + (validate_insn_alternatives): Update for struct data change. + (gen_insn): Don't zero or copy 7 global arrays. Update for + scan_operands; call place_operands. + (gen_peephole, gen_expand, gen_split): Likewise. + (main): Update for new output routines. + + * genattr.c (insn_name_ptr): Remove. + (get_insn_name): New function. + * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise. + * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise. + * genrecog.c: Likewise. + + * alpha.md (adddi3): Make `pattern' array static. + +Sun Sep 12 22:05:21 1999 Michael Hayes + + * config/c4x/c4x.h (c4x_rpts_cycles_string, + c4x_cpu_version_string): Constify char *. + * config/c4x/c4x.c (c4x_rpts_cycles_string, + c4x_cpu_version_string): Likewise. + +Sat Sep 11 23:28:33 1999 Richard Henderson + + * tree.c (save_tree_status): Revert 10 Sep change. + (restore_tree_status): Likewise. Call obstack_free with NULL + before freeing the obstack proper. + +Sat Sep 11 23:23:46 1999 Richard Henderson + + * cse.c (cse_main): If gc'ing, collect around cse_basic_block. + + * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into + surrounding context. + +Sat Sep 11 19:52:43 1999 Mark Mitchell + + * tree.c (type_hash_canon): Put all types in the hash-table, when + GC'ing. + +Sat Sep 11 18:37:04 1999 Richard Henderson + + * recog.h (struct recog_data, recog_data): New. + (recog_foo variables): Kill. + * recog.c (recog_operand, recog_operand_loc): Kill. + (recog_dup_loc, recog_dup_num, recog_n_operands): Kill. + (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill. + (recog_constraints, recog_op_type, recog_operand_address_p): Kill. + (recog_data): Define. + (extract_insn): Update all recog_foo references to use recog_data. + (preprocess_constraints, constrain_operands): Likewise. + * final.c (final_scan_insn, cleanup_subreg_operands): Likewise. + * genattrtab.c (main): Likewise. + * genextract.c (main): Likewise. + * genoutput.c: Likewise. + * genrecog.c (write_subroutine, main): Likewise. + * local-alloc.c (block_alloc): Likewise. + * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise. + * regclass.c (scan_one_insn, record_reg_classes): Likewise. + * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise. + * reload.c (find_reloads, find_reloads_toplev): Likewise. + * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise. + (reload_cse_simplify_operands): Likewise. + + * arc/arc.c (arc_final_prescan_insn): Likewise. + * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise. + * h8300/h8300.c (notice_update_cc): Likewise. + * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise. + * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. + * mn10200/mn10200.c (notice_update_cc): Likewise. + * mn10300/mn10300.c (notice_update_cc): Likewise. + * romp/romp.c (update_cc): Likewise. + * sparc/sparc.c (check_pic): Likewise. + * v850/v850.c (notice_update_cc): Likewise. + + * genemit.c (main): Don't declare recog_operand. + +Sat Sep 11 12:41:55 1999 Alex Samuel + + * ggc.h (rtvec_def): Forward declare. + (tree_node): Likewise. + (ggc_root): Define. + (roots): Declare. + (ggc_set_mark_rtx): Add prototype. + (ggc_set_mark_rtvec): Likewise. + (ggc_set_mark_tree): Likewise. + * ggc-simple.c (ggc_root): Don't define. + (roots): Don't declare. + (ggc_mark_rtx): Remove. + (ggc_mark_rtvec): Likewise. + (ggc_mark_tree): Likewise. + (ggc_mark_varray): Likewise. + (ggc_mark_tree_hash_table_entry): Likewise. + (ggc_mark_tree_hash_table): Likewise. + (ggc_set_mart_rtx): New function. + (ggc_set_mark_rtvec): Likewise. + (ggc_set_mark_tree): Likewise. + (ggc_add_root): Remove. + (ggc_add_rtx_root): Likewise. + (ggc_remove_tree_root): Likewise. + (ggc_add_string_root): Likewise. + (ggc_add_tree_varray_root): Likewise. + (ggc_add_tree_hash_table_root): Likewise. + (ggc_del_root): Likewise. + (ggc_mark_rtx_ptr): Likewise. + (ggc_mark_tree_ptr): Likewise. + (ggc_mark_string_ptr): Likewise. + (ggc_mark_tree_varray_ptr): Likewise. + (ggc_mark_tree_hash_table_ptr): Likewise. + * ggc-common.c: New file. + * Makefile.in (OBJS): Add ggc-common.o. + (ggc-common.o): List dependencies. + +1999-09-10 22:37 -0700 Zack Weinberg + + * cppalloc.c (xstrdup): Use memcpy. + * cpperror.c (cpp_print_containing_files): Don't use + cpp_notice. + * cpplib.c (conditional_skip): Set temp->lineno. + (do_endif): Make error message less obscure. + (if_directive_name): New function. + (cpp_get_token [case EOF]): Unwind the if stack and generate + error messages for each unterminated conditional in this file. + (parse_string): Do not behave differently if -traditional. + +Fri Sep 10 14:04:07 1999 Richard Henderson + + * builtins.c (expand_builtin_va_arg): Cope with an array-type + va_list decomposing to pointer-type. + * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields. + (rs6000_va_arg): Likewise. + +Fri Sep 10 13:21:21 1999 Jim Wilson + + * except.c (start_dynamic_handler): Compute size using + STACK_SAVEAREA_MODE. + +Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi + + * protoize.c: Remove various __STDC__ and POSIX hacks. Don't + include directory headers. Don't define strrchr. Don't provide + my_* replacement functions. Prefer PTR over `pointer_type'. + Don't prototype system functions. Don't redefine getopt. + + (shortpath, fancy_abort, notice, savestring, dupnstr, substr, + safe_read, safe_write, save_pointers, restore_pointers, + is_id_char, in_system_include_dir, directory_specified_p, + file_excluded_p, unexpand_if_needed, abspath, check_aux_info, + find_corresponding_lparen, referenced_file_is_newer, + save_def_or_dec, munge_compile_params, gen_aux_info_file, + process_aux_info_file, identify_lineno, check_source, + seek_to_line, forward_to_next_token_char, output_bytes, + output_string, output_up_to, other_variable_style_function, + find_rightmost_formals_list, do_cleaning, careful_find_l_paren, + do_processing, is_syscalls_file, rename_c_file, find_extern_def, + find_static_definition, connect_defs_and_decs, add_local_decl, + add_global_decls, needs_to_be_converted, visit_each_hash_node, + add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list, + edit_fn_declaration, edit_formals_lists, edit_fn_definition, + scan_for_missed_items, edit_file, string_list_cons): Add static + prototypes. + (standard_exec_prefix, target_machine, target_version, + default_syscalls_dir, string_list, string_list_cons, find_file, + do_cleaning): Constify a char*. + (safe_read, safe_write): Use PTR, not a char*. + (is_id_char): Take an int, not a char. + (main): Add prototype. Call return, not exit. + +Fri Sep 10 16:48:26 1999 Andrew Haley + + * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields + when comparing types. + +Fri Sep 10 08:43:32 1999 Richard Henderson + + * loop.c (basic_induction_var): Typo NULL_RTX -> NULL. + (strength_reduce): Release the varrays from the no-bivs early exit. + + * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before + the loop over the registers. + + * tree.c (save_tree_status): Set maybepermanent_firstobj NULL + for a new obstack. + (restore_tree_status): Check that instead when freeing the obstack. + +Wed Sep 8 16:12:04 1999 Andrew Haley + + * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used + as pointers. + +Fri Sep 10 11:58:55 1999 Bernd Schmidt + + * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some + operand size modifiers. + +Fri Sep 10 10:32:32 1999 Bernd Schmidt + + * c-common.c (c_common_nodes_and_builtins): Don't build + va_list_type_node. + * c-common.h (enum c_tree_index and related accesor macros): Remove + everything now declared in tree.h. + * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, + LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE, + DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults. + (error_mark_node, void_type_node, char_type_node, integer_type_node, + unsigned_type_node, ptr_type_node, va_list_type_node, + integer_zero_node, null_pointer_node, integer_one_node): Delete. + (init_decl_processing): Call build_common_tree_nodes and + build_common_tree_nodes_2 instead of building their nodes here. + Don't add roots for these nodes. + * stor-layout.c (size_zero_node, size_one_node): Delete. + (set_sizetype): Make a new node for bitsizetype each time. + * tree.c (global_trees): New variable. + (init_obstacks): Add a gc root for it. + (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, + LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, + DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults. + (build_common_tree_nodes): New function. + (fix_sizetype): New function. + (build_common_tree_nodes_2): New function. + * tree.h (enum tree_index): New. + (global_trees): Declare. + Add accessor macros for all nodes now moved to global_trees. + Delete their declarations. + +Thu Sep 9 20:15:46 1999 Richard Henderson + + * c-decl.c (finish_function): When processing a nested function, + push and pop GC context around rest_of_compilation. + +Thu Sep 9 16:42:06 1999 Richard Henderson + + * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases. + Default ix86_arch to PROCESSOR_I386. + * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo. + (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete. + (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__. + (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide + __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__. + (EXTRA_SPECS): Remove deleted specs. + +Thu Sep 9 16:03:06 1999 Richard Henderson + + * function.c (assign_stack_local_1): Allocate from + function->x_frame_offset, not frame_offset. + +Thu Sep 9 14:36:31 1999 Mark Mitchell + + * ggc.h (lang_cleanup_tree): Remove. + * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree. + * ggc-callbacks.c (lang_cleanup_tree): Remove. + + * c-decl.c (finish_struct): Use ggc_alloc to allocate + TYPE_LANG_SPECIFIC when garbage collecting. + (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. + (lang_cleanup_tree): Remove. + +Thu Sep 9 14:23:02 1999 Jason Merrill + + * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here. + * crtstuff.c: Not here. + * dwarf2out.c: Or here. + * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame + info. + +Thu Sep 9 09:40:58 1999 Mark Mitchell + + * function.h (free_after_compilation): Remove decl parameter. + (free_varasm_status0: Likewise. + (free_emit_status): Likewise. + (free_stmt_status): Likewise. + (free_after_compilation): Likewise. + (init_lang_status): New variable. + (free_lang_status): Likewise. + * emit-rtl.c (free_emit_status): Make decl parameter implicit. + * function.c (init_lang_status): New variable. + (free_lang_status): Likewise. + (push_function_context_to): Don't set function::decl here. + (free_after_copmilation): Make decl parameter implicit. Call + free_lang_status if defined. + (prepare_function_start): Call init_lang_status if defined. + (init_function_start): Set function::decl here. + * profile.c (output_func_start_profiler): Don't call pushdecl + until we've actually started the function. + * stmt.c (free_stmt_status): Make decl parameter implicit. + * toplev.c (rest_of_compilation): Don't pass decl to + free_after_compilation. + * varasm.c (free_varasm_status): Likewise. + +Thu Sep 9 17:23:19 1999 Bernd Schmidt + + * except.c (call_get_eh_context): Add root when allocating static + tree variable. + +Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw + + * arm.c: Include "ggc.h". + (arm_add_gc_roots): New function. + (arm_override_options): Call it. + (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated. + + * arm.md (define_asm_attributes): Add a pool_range attribute. + +Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell + + * extend.texi (Volatiles): New node. + +Thu Sep 9 03:37:31 1999 Richard Henderson + + * ggc-simple.c (IS_MARKED, IGNORE_MARK): New. + (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New. + (struct ggc_any): Replace `mark' with `magic_mark'. + (ggc_alloc_string): Use memcpy, not bcopy. + (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc. + (ggc_free_{rtx,rtvec,tree,string}): Mark inline. + (ggc_free_any): New. + (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string. + (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match. + (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK. + Use IS_MARKED. Use ggc_free_any. + +1999-09-09 Scott Bambrough + + * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C + +Thu Sep 9 01:55:21 1999 Richard Henderson + + * toplev.c (main): Always init_ggc. + +Wed Sep 8 23:53:22 1999 Richard Henderson + + * except.c (find_all_handler_type_matches): Free the list if + we found no matches. + + * combine.c (SUBST): Break out to a real function do_SUBST. + (SUBST_INT): Likewise. + * gcse.c (free_pre_mem): Free `temp_bitmap'. + (pre_insert): Free `inserted'. + * loop.c (basic_induction_var): Always set `location'. + + * function.c (expand_function_end): Add initial_trampoline as a root. + * rtl.h (init_varasm_once): Declare. + * toplev.c (compile_file): Call it. + * ggc-simple.c (ggc_mark_string_ptr): New. + (ggc_add_string_root): New. + (ggc_collect): Disable collection avoidance temporarily. + * ggc.h (ggc_add_string_root): Declare. + * except.c (create_rethrow_ref): Use ggc_alloc_string. + * optabs.c (init_libfuncs): Likewise. + * varasm.c (named_section): Use ggc_alloc_string. + (make_function_rtl): Likewise. + (make_decl_rtl): Likewise. + (assemble_static_space): Likewise. + (assemble_trampoline_template): Likewise. + (output_constant_def): Likewise. + (force_const_mem): Likewise. + (mark_const_hash_entry): New. + (mark_pool_sym_hash_table): New. + (mark_varasm_state): Use it. + (init_varasm_once): New. + + * expr.h (init_one_libfunc): Declare. + * optabs.c (init_one_libfunc): New. + (init_optabs): Use it. + * config/gofast.h: Likewise. + * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise. + * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise. + +Thu Sep 9 13:46:06 1999 Geoffrey Keating + + * Makefile.in (cppexp.o): Depend on cpphash.h. + * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx. + Include cpphash.h. + * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx. + * cpplib.c (do_define): Generalize to handle poisoned definitions, + redefining poisoned identifiers, etc. + (do_undef): Don't allow poisoned identifiers to be undefined. + (do_pragma): Add #pragma poison. + (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. + + * cccp.c: Add T_POISON node type. + (special_symbol): Handle `defined(xxx)' and plain `xxx' for + poisoned xxx. + (do_define): Generalize to handle poisoned definitions, + redefining poisoned identifiers, etc. + (do_undef): Don't allow poisoned identifiers to be undefined. + (do_pragma): Add #pragma poison. + (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. + + * c-pragma.c (handle_pragma_token): Ignore #pragma poison. + * c-pragma.h: Add ps_poison state. We now always have generic + pragmas. + +Wed Sep 8 20:30:42 1999 Mark Mitchell + + * ggc.h (ggc_alloc): New function. + (ggc_mark): Likewise. + * ggc-simple.c (ggc_any): New structure. + (ggc_status): Add anys. + (n_anys_collected): New variable. + (ggc_alloc): Define. + (ggc_mark): Likewise. + (ggc_collect): Collect the anys. + +Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi + + * c-decl.c (mark_binding_level): Make static to match prototype. + +Wed Sep 8 16:41:27 1999 Richard Henderson + + * flow.c (new_insn_dead_notes): Don't early out for preexisting regs. + +Wed Sep 8 16:07:52 1999 Richard Henderson + + * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC + will use into account. Expand the max width to 5. + * rtl.c: Likewise. + +Wed Sep 8 16:01:14 1999 Richard Henderson + + * ggc-simple.c (ggc_free_rtx): Poison the correct amount + for the rtx length. + +Wed Sep 8 15:23:54 1999 Richard Henderson + + * alpha.md (call value patterns): Remove the result predicates. + +Wed Sep 8 13:35:38 1999 Richard Henderson + + * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from + last change. + +Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi + + * system.h (sbrk, malloc, calloc, realloc): Backup prototypes + changed from extern char *, to extern PTR. Also fix typo in + NEED_DECLARATION_REALLOC test. + + * mips-tdump.c (malloc, calloc, realloc): Don't prototype. + +Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi + + * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL, + ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF, + ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3, + ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete. + + * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR. + + * cccp.c (pcfinclude): Likewise. + + * global.c (allocno_compare): Likewise. + + * haifa-sched.c (rank_for_schedule): Likewise. + + * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise. + + * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise. + + * stupid.c (stupid_reg_compare): Likewise. + + * tree.c (_obstack_allocated_p): Likewise. + + * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise. + +1999-09-08 Bruce Korb autogen@linuxbox.com + + * Makefile.in: Give the hapless gperf user a hint about + why "gperf -F" fails. + +Wed Sep 8 04:43:22 1999 Richard Henderson + + * lists.c: Include ggc.h. + (zap_lists): New. + (init_EXPR_INSN_LIST_cache): Install it. + + * ggc-simple.c (init_ggc): Absorb the old init. + (ggc_push_context): Use xcalloc. + (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise. + (ggc_collect): Add [rvts] tags to the collection stats. + +Wed Sep 8 11:14:25 1999 Andreas Schwab + + * cccp.c (main): Fix handling of -include and -imacros options. + +Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com) + + * cpplib.c (cpp_push_buffer): Fix order of arguments. + +Wed Sep 8 04:44:09 1999 Alexandre Oliva + + * rtl.h (obstack_alloc_rtx): Removed, it's now static in + genrtl.c. + +Wed Sep 8 00:33:43 1999 Alasdair Baird + + * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG. + * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG + and SET_DEST. Update comment. + +Wed Sep 8 18:55:17 1999 Michael Hayes + + * config/c4x/c4x.c: Include ggc.h. + (c4x_add_gc_roots): New function. + (c4x_override_options): Call c4x_add_gc_roots. + +Wed Sep 8 00:00:16 1999 Richard Henderson + + * defaults.h (TARGET_ESC): Move ... + * system.h: ... here, where Linas had it in the first place. Silly me. + +Tue Sep 7 23:46:35 1999 Linas Vepstas + + * c-common.c: Use ISGRAPH, ISLOWER, toupper. + * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c, + genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise. + * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC. + * defaults.h (TARGET_ESC): Add default. + +Tue Sep 7 23:36:59 1999 Linas Vepstas + + * configure.in: add i370-*-openedition, i370-*-mvs and + i370-*-linux targets + +Tue Sep 7 23:31:53 1999 Mark Mitchell + + * dsp16xxx.c: Include ggc.h + (override_options): Mark GC roots. + * mn10200.c: Include ggc.h. + (asm_file_start): Mark GC roots. + * tahoe.c: Include ggc.h. + (extensible_operand): Mark GC roots. + +Tue Sep 7 23:23:15 1999 Linas Vepstas + + * README: Add section discussing status of ELF ABI. + * i370.c: Fix misc spelling mistakes. + (i370_label_scan): Updated notes, exception handling. + (i370_function_prolog): Simplify ELF stack handling. + * i370.h: (FIXED_REGISTERS): Free up r12 for ELF. + (STACK_GROWS_DOWNWARD): ELF stack grows down. + (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size. + * i370.md: (movdi): Add notes. + (floatsidf2): Use stack not rtca for scratch float area. + (iorsi3): Correct operand constraints. + * x-oe: Restore TAROUTOPTS which are used by pax. + +Tue Sep 7 22:39:18 1999 Mark Mitchell + + * rs6000.c: Include ggc.h. + (rs6000_add_gc_roots): New function. + (override_options): Call it. + +Tue Sep 7 22:09:03 1999 Richard Henderson + + * alpha.h (alpha_compare): New. + (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove. + * alpha.c: Likewise for the definitions. + (alpha_emit_conditional_branch): Update for alpha_compare. + (alpha_emit_conditional_move): Likewise. + * alpha.md (cmpdf, cmpdi): Likewise. + (setcc patterns): Likewise. Zero alpha_compare after use. + (sne): Optimize (x != 0) into (0U < x). + +Tue Sep 7 21:55:02 1999 Richard Henderson + + * alpha.h (alpha_eh_epilogue_sp_ofs): Remove. + (struct machine_function): Declare; add eh_epilogue_sp_ofs. + (INIT_EXPANDERS): Remove. + * alpha.c: Include ggc.h. + (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove. + (alpha_init_machine_status, alpha_mark_machine_status): New. + (override_options): Install them. + (struct machine_function): Moved to alpha.h. + (alpha_save_machine_status, alpha_restore_machine_status): Remove. + (alpha_init_expanders): Remove. + (alpha_return_addr): Adjust to use current_function->machine. + (alpha_ra_ever_killed): Likewise. + (alpha_expand_epilogue): Likewise. + * alpha.md (eh_epilogue): Likewise. + +Wed Sep 8 14:34:42 1999 Ian Piumarta + Melissa O'Neill + Geoffrey Keating + + * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or + call-used registers (call-saved registers must still be contiguous + and end with r31, of course). + +Tue Sep 7 21:41:38 1999 Richard Henderson + + * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to. + (self_promoting_type_p): Delete. + (self_promoting_args_p): Move ... + * c-common.c: ... here. + (c_common_nodes_and_builtins): Initialize lang_type_promotes_to. + (simple_type_promotes_to): New. + * builtins.c (lang_type_promotes_to): New. + (expand_builtin_va_arg): Use it to give diagnostic for illegal types. + * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ... + * c-common.h: ... here. + (self_promoting_args_p, simple_type_promotes_to): Declare. + * c-decl.c (duplicate_decls): Use simple_type_promotes_to. + (grokdeclarator): Likewise. + * tree.h (lang_type_promotes_to): Declare. + +Tue Sep 7 17:15:21 1999 Mark Mitchell + + Add some machine-dependent GC roots. + * sparc.c: Include ggc.h. + (sparc_add_gc_roots): New function. + (mark_ultrasparc_pipeline_state): Likewise. + (override_options): Call sparc_add_gc_roots. + * pa.c: Include ggc.h. + (pa_add_gc_roots): New function. + (mark_deferred_plabels): Likewise. + (override_options): Call pa_add_gc_roots. + * mips.c: Include ggc.h. + (mips_add_gc_roots): New function. + (override_options): Use it. + +Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi + + * cpperror.c (cpp_file_line_for_message): Constify a char*. + + * cppexp.c (parse_number, parse_charconst, cpp_lex, + cpp_parse_expr): Add static prototypes. + (parse_charconst): Don't cast away const-ness. + (token): Constify a char*. + + * cppfiles.c (file_name_list, include_hash, find_include_file, + finclude, initialize_input_buffer): Constify a char*. + (file_cleanup, find_position): Add static prototypes. + + * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol, + collect_expansion): Add static prototypes. + (cpp_install, create_definition, monthnames): Constify a char*. + + * cpphash.h (cpp_install): Likewise. + + * cppinit.c (known_suffixes, default_include, + dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise. + (base_name, dump_special_to_buffer, initialize_dependency_output): + Add static prototypes. + + * cpplib.c (my_strerror): Constify a char*. + (null_underflow, null_cleanup, skip_comment, copy_comment, + copy_rest_of_line, handle_directive, pass_thru_directive, + get_directive_token, read_line_number, cpp_print_file_and_line, + v_cpp_error, v_cpp_warning, v_cpp_error_with_line, + v_cpp_warning_with_line, detect_if_not_defined, + consider_directive_while_skipping): Add static prototypes. + (pass_thru_directive, check_macro_name, cpp_expand_to_buffer, + cpp_pedwarn_with_file_and_line): Constify a char*. + + * cpplib.h (cpp_options, include_hash, progname, definition, + cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer, + check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message, + find_include_file, deps_output, include_hash): Constify a char*. + + * cppmain.c (progname): Constify. + (main): Add prototype. Use return, not exit. + + * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac, + recognized_macro, check_macro_names, read_scan_file, write_rbrac, + inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident, + check_protection): Add static prototype. + (xfree): Remove. + (progname, recognized_macrom, recognized_extern): Constify a char*. + (main): Add prototype. + + * gen-protos.c (progname): Constify a char*. + +Tue Sep 7 00:47:52 1999 Mark Mitchell + + * emit-rtl.c (free_emit_status): Take decl as a parameter. + (init_emit_once): Add more GC roots. + * except.c (mark_func_eh_entry): New function. + (mark_eh_node): Mark false_label and rethrow_label. + (init_eh): Add more GC roots. + * function.c (free_after_compilation): Take decl as a parameter. + Call free_stmt_status. + (mark_function_state): Don't assume x_parm_reg_stack_loc is + non-NULL. + * function.h (free_after_compilation): Change prototype. + (free_varasm_status): Likewise. + (free_emit_status): Likewise. + (free_stmt_status): New function. + * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc): + Remove, replacing with ... + (ggc_status): New structure. + (ggc_chain): New variable. + (init_gcc): Define. + (ggc_push_context): New function. + (ggc_pop_context): Likewise. + (ggc_alloc_rtx): Adjust for use of ggc_chain. + (ggc_alloc_rtvec): Likewise. + (ggc_alloc_tree): Likewise. + (ggc_alloc_string): Likewise. + (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO. + (ggc_mark_tree): Give language-dependent code a chance to mark + `x' nodes. + (ggc_mark_tree_varray): Handle empty arrays. + (ggc_collect): Adjust for use of ggc_chain. Clear + bytes_alloced_since_last_gc. + * ggc.h (ggc_pop_context): New function. + (ggc_push_context): Likewise. + * print-tree.c (print_node): Don't print obstacks when GC'ing. + * stmt.c (free_stmt_status): New function. + (init_stmt_for_function): Clear last_expr_value. + * toplev.c (rest_of_compilation): Always call free_after_compilation. + Conditionalize call to ggc_collect. + (main): Call init_ggc. + * tree.c (push_obstacks): Do the push, even when GC'ing. + (push_obstacks_nochange): Likewise. + (pop_obstacks): Liekwise. + * varasm.c (free_varasm_status): Take decl as a parameter. + +Tue Sep 7 08:15:49 1999 Gavin Romig-Koch + + * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro. + (MULTILIB_ENDIAN_DEFAULT) : Use the new macro. + * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro. + * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro. + +Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com) + + * pa/x-pa-mpeix: New file for the MPE port. + + * pa/quadlib.asm: New file for long double support. + + * configure.in: Add hppa1.0-*-mpeix for MPE port. + * configure: Rebuilt. + +Tue Sep 7 10:08:40 1999 Andreas Schwab + + * final.c (shorten_branches): Fix last change. + +Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete. + +Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com) + + * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for + details. + +Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi + + * c-aux-info.c (concat): Don't define. + + * cccp.c (my_strerror): Likewise. All callers changed to use + xstrerror instead. + (do_include): Call xstrdup, not xmalloc/strcpy. + (grow_outbuf): Don't check if xrealloc returns NULL, it can't. + (xmalloc, xrealloc, xcalloc, xstrdup): Don't define. + + * collect2.c (my_strsignal): Likewise. All callers changed to use + strsignal instead. + (locatelib): Call xstrdup, not xmalloc/strcpy. + + * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc. + + * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy. + + * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc. + + * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy. + + * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero. + + * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/... + + * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not + malloc/realloc. + (find_all_handler_type_matches): Likewise. Don't check return + value. + (get_new_handler, init_insn_eh_region, process_nestinfo): Call + xmalloc, not malloc. + (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero. + + * gcc.c (xstrerror, xmalloc, xrealloc): Don't define. + (init_spec): Call xcalloc, not xmalloc/bzero. + (set_spec): Call xstrdup, not save_string. + (record_temp_file): Call xstrdup, not xmalloc/strcpy. + (find_a_file): Call xstrdup, not xmalloc/strcpy. + (process_command): Call xstrdup, not save_string. + (main): Call xcalloc, not xmalloc/bzero. + + * gcov.c (xmalloc): Don't define. + (create_program_flow_graph): Call xcalloc, not xmalloc/bzero. + (scan_for_source_files): Call xstrdup, not xmalloc/strcpy. + (output_data): Call xcalloc, not xmalloc/bzero. + + * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero. + + * mips-tdump.c (xmalloc): Don't define. + (print_symbol): Call xmalloc, not malloc. + (read_tfile): Call xcalloc, not calloc. + + * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc): + Don't define. All callers of xfree/my_strsignal changed to use + free/strsignal instead. + (allocate_cluster): Call xcalloc, not calloc. + + * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/... + Fix memory leak, free allocated memory. + + * prefix.c (translate_name): Call xstrdup, not save_string. + (update_path): Likewise. + + * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy. + + * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2): + Don't define. Callers of xfree/savestring2 changed to use + free/concat instead. + + * reload1.c (reload): Call xcalloc, not xmalloc/bzero. + (init_elim_table): Likewise. + + * resource.c (init_resource_info): Likewise. + + * stupid.c (stupid_life_analysis): Likewise. + + * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define. + (open_dump_file): Call concat, not xmalloc/strcpy/... + (clean_dump_file): Likewise. + (compile_file): Call xstrdup, not xmalloc/strcpy. + +Mon Sep 6 15:04:55 1999 Richard Henderson + + * v850.h (EXPAND_BUILTIN_VA_ARG): New. + * v850.c (v850_va_arg): New. + +Tue Sep 7 09:36:01 1999 Michael Hayes + + * haifa-sched.c: Tidy comments. + +Mon Sep 6 14:30:13 1999 Bernd Schmidt + + * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o. + (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o, + $(out_object_file)): Depend on ggc.h. + * c-common.c: Include "ggc.h". + (combine_strings): If doing GC, use ggc_alloc_string. + * c-decl.c: Include "ggc.h". + (ggc_p): Define with value 0. + (mark_binding_level): New function. + (init_decl_processing): Add GC roots. + (mark_c_function_context): New function. + (lang_mark_false_label_stack): New function. + (lang_mark_tree): New function. + (lang_cleanup_tree): New function. + * c-lang.c: Include "ggc.h". + (lang_init): Call c_parse_init. + * c-lex.c: Include "ggc.h". + (check_linenum): If doing GC, don't copy filenames to permanent + obstack. + * c-parse.in: Include "ggc.h". + (c_parse_init): New function. + * c-tree.h (c_parse_init, mark_c_function_context): Declare. + * objc/Make-lang.in (objc-parse.o): Depend on ggc.h. + + * except.c (mark_eh_state): Mark more state. + * function.c (mark_function_state): Likewise. + * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version. + (ggc_alloc_string) [GGC_DUMP]: Fix typo. + * toplev.c (mark_file_stack): New function. + (compile_file): If doing GC, use ggc_alloc_string on input filename. + (main): Add root for input_file_stack. + + * i386.c: Include "ggc.h". + (ix86_mark_machine_status): New function. + (override_options): Set mark_machine_status. + +Mon Sep 6 15:26:23 1999 Bernd Schmidt + + * tree.c (copy_node): Copy node contents also if doing GC. + +Mon Sep 6 08:42:06 1999 Alexandre Oliva + + * collect2.c (scan_libraries): Fix double-thinko :-). + +Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com) + + * collect2.c (scan_libraries): Fix thinko. + + * cse.c (delete_trivially_dead_insns): Do not skip the last + insn if it is a real insn. + +Sun Sep 5 18:57:42 1999 Mark Mitchell + + * Makefile.in (ggc-simple.o): Depend on hash.h. + * ggc.h (ggc_add_tree_hash_table_root): Declare. + (ggc_mark_tree_varray): Likewise. + (ggc_mark_tree_hash_table): Likewise. + * ggc-simple.c: Include hash.h. + (ggc_mark_tree_hash_table_ptr): New function. + (ggc_mark_tree_hash_table_entry): Likewise. + (ggc_mark_tree_hash_table): Likewise. + (ggc_add_tree_hash_table_root): Likewise. + * varray.h (const_equiv_data): Use struct rtx_def *, rather than + rtx, when defining fields. + +Sun Sep 5 18:57:42 1999 Bernd Schmidt + + * profile.c (output_func_start_profiler): Remove apparently + nonsensical call to start_sequence. + +Sun Sep 5 17:34:33 1999 Richard Henderson + + * clipper/clipper.c (clipper_va_start): Fix typos. + + * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs. + * spur/spur.c (spur_build_va_list, spur_va_start): New stubs. + (spur_va_arg): New stub. + + * configure.in: Comment out pyramid. + +Sun Sep 5 19:11:01 1999 Michael Meissner + + * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these + don't conflict with the bits that win32, cygwin, and dgux + defines. + +Sun Sep 5 09:31:56 1999 Richard Henderson + Bernd Schmidt + + * integrate.c (function_cannot_inline_p): Do not inline + functions with forced labels. + +Sun Sep 5 00:35:17 1999 Richard Henderson + Bernd Schmidt + Mark Mitchell + + * Makefile.in (ggc-simple.o): Depend on varray.h. + (rtl.o): Depend on ggc.h. + (genattrtab.o): Depend on ggc.h. + (print-tree.o): Likewise. + (fold-const.o): Likewise. + * emit-rtl.c (sequence_element_free_list): Remove, and all references. + (make_insn_raw): Don't cache insns when GC'ing. + (emit_insn_before): Likewise. + (emit_insn_after): Likewise. + (emit_insn): Likewise. + (start_sequence): Use xmalloc to allocate the sequence_stack. + (end_sequence): Add free to free it. + (gen_sequence): Don't cache insns when GC'ing. + (clear_emit_caches): Don't use sequence_element_free_list. + (init_emit): Use xcalloc, not xmalloc+bzero. + * fold-const.c (size_int_wide): Kill the cache, when GC'ing. + * function.c (pop_function_context_from): Use free to free the + fixup_var_refs_queue. + (put_reg_into_stack): Allocate it with xmalloc. + * genattrtab.c: Include ggc.h. + (operate_exp): Don't use obstack_free when GC'ing. + (simplify_cond): Likewise. + (simplify_text_exp): Likewise. + (optimize_attrs): Likewise. + * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when + GC'ing. + (gencode): Generate a #include for ggc.h. + * ggc-callbacks.c (ggc_p): Define it to zero. + * ggc-none.c (ggc_p): Likewise. + * ggc-simple.c: Include varray.h. + (ggc_mark_tree_varray): New function. + (ggc_add_tree_varray_root): Likewise. + (ggc_mark_tree_varray_ptr): Likewise. + * ggc.h (ggc_p): Declare. + (varray_head_tag): Likewise. + (ggc_add_tree_varray_root): Declare. + * print-tree.c (print_node): Don't check for TREE_PERMANENT + inconsistencies when GC'ing. + * rtl.c: Include ggc.h. + (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing. + (rtx_alloc): Use ggc_alloc_rtx when GC'ing. + (rtx_free): Don't call obstack_free when GC'ing. + * toplev.c (rest_of_compilation): Call ggc_collect after every + pass, if GC'ing. + * tree.c (push_obstacks): Do nothing, if GC'ing. + (pop_obstacks_nochange): Likewise. + (pop_obstacks): Likewise. + (make_node): Use ggc_alloc_tree when GC'ing. + (copy_node): Likewise. + (get_identifier): Use ggc_alloc_string when GC'ing. + (build_string): Likewise. + (make_tree_vec): Use ggc_alloc_tree when GC'ing. + (tree_cons): Likewise. + (build1): Likewise. + (type_hash_canon): Don't call obstack_free when GC'ing. + +Sat Sep 4 21:52:32 1999 Richard Henderson + + * haifa-sched.c (schedule_block): Use next_nonnote_insn instead + of NEXT_INSN when examining speculative insns for SCHED_GROUP_P. + +Sat Sep 4 20:40:19 1999 Richard Henderson + Bernd Schmidt + Mark Mitchell + + * Makefile.in (stor-layout.o): Depend on ggc.h. + (expr.o): Depend on ggc.h. + (profile.o): Depend on ggc.h. + (stor-layout.o): Depend on ggc.h. + * emit-rtl.c (init_emit_once): Add gc roots. + * expr.c: Include ggc.h. + (emit_block_move): Add gc roots. + (clear_storage): Likewise. + * expr.h (init_stor_layout_once): New function. + * profile.c: Include ggc.h. + (init_arc_profiler): profiler_label is a root. + * scan.c (make_sstring_space): Trust xrealloc to function + correctly with first parameter NULL. + * stor-layout.c: Include ggc.h. + (set_sizetype): Add gc root. + (init_stor_layout_once): New function. + * toplev.c (compile_file): Call it. + +Sat Sep 4 19:26:25 1999 Richard Henderson + Bernd Schmidt + Mark Mitchell + + * Makefile.in (tree.o): Depend on ggc.h. + (varasm.o): Likewise. + (function.o): Likewise. + (stmt.o): Likewise. + (except.o): Likewise. + (optabs.o): Likewise. + (emit-rtl.o): Likewise. + * emit-rtl.c: Include ggc.h. + (sequence_element_free_list): Remove, and all references. + (mark_sequence): New functions. + (mark_emit_state): New function. + * except.c: Include ggc.h. + (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions. + (mark_tree_label_node): New functions. + (mark_eh_state): New function. + * function.c: Include ggc.h. + (mark_temp_slot, mark_function_chain): New functions. + (mark_function_state): New function. + (init_function_once): New function. + * function.h (init_function_once): New function. + * ggc-callbacks.c (lang_mark_false_label_stack): New function. + * ggc.h (label_node): Declare. + (eh_status, emit_status, stmt_status, varasm_status): Likewise. + (lang_mark_false_label_stack): New function. + (mark_temp_slot): Remove declaration. + (mark_function_chain): Likewise. + (mark_eh_state): Adjust prototype. + (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab): + Likewise. + * optabs.c: Include ggc.h. + (mark_optab): New function. + (init_optabs): Add gc roots. + * stmt.c: Include ggc.h. + (mark_cond_nesting, mark_loop_nesting): New functions. + (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise. + (mark_stmt_state): New function. + * toplev.c (compile_file): Call init_function_once. + * tree.c: Include ggc.h. + (type_hash): Move declaration earlier in file. + (TYPE_HASH_SIZE, type_hash_table): Likewise. + (init_obstacks): Add gc roots. + (mark_type_hash): New function. + * varasm.c: Include ggc.h. + (mark_pool_constant): New function. + (mark_varasm_state): New function. + +Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi + + * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO. + +Sat Sep 4 18:01:45 1999 Bernd Schmidt + + * c-decl.c (struct language_function): Renamed from struct c_function. + Delete elt NEXT. + (c_function_chain): Delete. + (push_c_function_context): New arg F. Don't warn about nested + functions here. Fill LANGUAGE elt of F. Delete code to update + c_function_chain. Don't call push_function_context. + (pop_c_function_context): New arg F. Restore from there instead of + from c_function_chain. Don't call pop_function_context. Clear out + LANGUAGE field of F when done. + * c-lang.c: Include "function.h" + (lang_init): Initialize save_lang_status and restore_lang_status. + * c-parse.in (nested_function, nested_function_notype): Warn about + nested functions. Call push_function_context/pop_function_context + instead of the _c_ variants. + * c-tree.h (push_c_function_context, pop_c_function_context): Update + prototype. + * Makefile.in (c-lang.o): Update dependencies. + + * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx, + regno_pointer_flag, regno_pointer_align. + (gen_reg_rtx): Use xrealloc to enlarge them. + (free_emit_status): New function. + * function.c (mark_machine_status, mark_lang_status): New variables. + (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge + in some bits from assign_stack_local. All callers changed to use new + name. + (assign_stack_local): Just call assign_stack_local_1. + (free_after_compilation): New function. + (put_reg_into_stack): Simplify to always call assign_stack_local_1. + (trampoline_address): Likewise. + (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc. + (prepare_function_start): Explicitly clear some more variables. + * function.h (struct function): New elt can_garbage_collect. + (mark_machine_status, mark_lang_status): Declare variables. + (free_after_compilation, free_emit_status, free_varasm_status, + init_varasm_status): Declare functions. + * toplev.c (rest_of_compilation): Call free_after_compilation when + done with the current function. + * varasm.c (free_varasm_status): New function. + +Sat Sep 4 17:15:13 1999 Richard Henderson + + * sparc.h (EXPAND_BUILTIN_VA_START): Define. + (EXPAND_BUILTIN_VA_ARG): Define. + * sparc.c (sparc_va_start): New. + (sparc_va_arg): New. + +Sun Sep 5 11:11:59 1999 Michael Hayes + + * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs. + +Sun Sep 5 10:13:19 1999 Michael Hayes + + * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable. + +Sat Sep 4 13:44:01 1999 Mark Mitchell + + * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o. + (OBJS): Add $(GGC). + (ggc-callbacks.o): New target. + * ggc-callbacks.c: New file. + +Sat Sep 4 22:53:13 1999 Bernd Schmidt + + * expr.h: Collapse individual optab and libfunc vars to arrays. + (optab_index, libfunc_index): New enumerations. + (optab_table, libfunc_table): New arrays. + Add accessor macros for both. + + * optabs.c (optab_table, libfunc_table): New. + Delete declarations for individual optab and libfunc vars. + +Sat Sep 4 12:57:17 1999 Richard Henderson + + * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args. + +Sat Sep 4 11:19:52 1999 Richard Henderson + + * Makefile.in (GGC, GGC_LIB): New. + (HOST_RTL): Include ggc-none.o. + (ggc-simple.o): New target. + (ggc-none.o): Likewise. + * tree.h (tree_common): Add gc_mark. + * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark. + (struct rtvec_def): Add gc_mark. + * emit-rtl.c (global_rtl): Update static initializers to contain + enough initializers. + * ggc.h, ggc-none.c, ggc-simple.c: New files. + * toplev.c (gc_time): New variable. + (all_time): New variable. + (compile_file): Print gc time. + (print_time): Calculate percentage of the whole. + +Sat Sep 4 13:11:01 1999 Bernd Schmidt + + Change obstack memory management and varasm constant pool handling so + that nested functions are treated like any other functions. + * function.c (init_machine_status): New variable. + (push_function_context_to): Set contains_functions for the outer + function. Don't call save_varasm_status. + (pop_function_context_from): Don't call restore_varasm_status. Don't + set current_function_contains_functions. + (prepare_function_start): Call init_varasm_status rather than + init_const_rtx_hash_table. Call (*init_machine_status) if the pointer + is non-null. + * function.h (struct function) Add field varasm. Delete fields + inline_obstacks, inl_emit, const_rtx_hash_table, first_pool, + last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain. + (init_machine_status): Declare. + (save_varasm_status, restore_varasm_status): Delete declarations. + (save_tree_status, restore_tree_status): Delete last argument. + * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying + code. All callers changed. + (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline, + save_constants_in_decl_trees, restore_constants, save_constants, + save_for_inline_eh_labelmap, save_for_inline_copying): Delete + functions. + (inlining): New variable. + (reg_map, label_map, insn_map, orig_asm_operands_vector, + copy_asm_operands_vector, copy_asm_constraints_vector): Delete + variables. + (save_for_inline_nocopy): Don't save constants. + Don't set inl_emit field in current_function. + (expand_inline_function): Use emit field, not inl_emit, of the inlined + function. Set new variable inlining before + calling copy_rtx_and_substitute. + (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle + constant pool references if inlining is nonzero. + Delete ADDRESS and (most of the) CONST cases. + (output_inline_function): Save and restore current_function/ + current_function_decl. Delete restore_constants code. Don't call + init_const_rtx_hash_table. + * output.h (init_const_rtx_hash_table): Don't declare. + * rtl.h (struct function): Declare. + (get_pool_constant_for_function, get_pool_mode_for_function): Declare. + * toplev.c (rest_of_compilation): Don't treat nested functions or + functions containing them specially. Delete all code to deal with + save_for_inline_copying. + * tree.c (toplev_inline_obstacks, extra_inline_obstacks, + inline_obstacks): Delete variables. + (save_tree_status): Lose arg CONTEXT. All callers changed. + Simply allocate a new function_maybepermanent_obstack for the new + function, delete all the special cases. + Don't save inline_obstacks. + (restore_tree_status): Lose arg CONTEXT. All callers changed. + Delete special handling for function_maybepermanent_obstack; simply + free it if empty. + Don't restore inline_obstacks. + (permanent_allocation): Delete code that frees inline_obstacks. + (print_inline_obstack_statistics): Delete function. + (dump_tree_statistics): Don't call it. + * varasm.c (struct varasm_status): New. + (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool, + last_pool, pool_offset, const_double_chain): Delete global + variables, replace with accessor macros. + (immed_double_const): Don't walk const_double_chain outside a + function, but don't treat nested functions specially anymore. + (immed_real_const_1): Likewise. + (clear_const_double_mem): Don't treat nested functions specially. + (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status. + (save_varasm_status, restore_varasm_status): Delete functions. + (init_varasm_status): New function. + (force_const_mem): Don't treat nested functions specially. + (find_pool_constant): Accept new arg F, search for constants in + that function's pool rather than the current one. All callers + changed. + (get_pool_constant_for_function, get_pool_mode_for_function): New + functions. + + * i386.c (init_386_machine_status): New function, mostly from + clear_386_stack_locals. + (struct machine_functions): Rename element names to avoid name + clashes. + (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor + macros, replacing global variables. + (clear_386_stack_locals, save_386_machine_status, + restore_386_machine_status): Delete functions. + (override_options): Initialize init_machine_status. + * i386.h (INIT_EXPANDERS): Delete macro. + (save_386_machine_status, restore_386_machine_status, + clear_386_stack_locals): Delete declarations. + +Sat Sep 4 16:56:28 1999 Michael Hayes + + * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init. + (doloop_begin): Simplify pattern and use emit_jump_insn. + (doloop_end): Simplify pattern, switch operand order, + and use emit_jump_insn. + +Fri Sep 3 19:02:38 1999 Bernd Schmidt + + * function.h (struct function): Add new element LANGUAGE. + (save_lang_status): Declare new variable. + (restore_lang_status): Likewise. + * function.c (save_lang_status): Define. + (restore_lang_status): Likewise. + (push_function_context_to): Call language-specific save function. + (pop_function_context_from): Call language-specific restore function. + +Fri Sep 3 01:16:18 1999 Alasdair Baird + + * i386.md (movsf_1): Check REG_P before use of REGNO. + (movdf_1): Likewise. + (movxf_1): Likewise. + (extendsfdf2): Likewise. + (extendsfxf2): Likewise. + (extenddfxf2): Likewise. + +Sat Sep 4 11:37:15 1999 Michael Hayes + + * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large + constants into memory. + (c4x_shiftable_constant): New function. + * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT. + (c4x_shiftable_constant): Declare. + * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant, + ashlqi3_noclobber): Add new patterns and associated splitters. + +Fri Sep 3 16:22:17 1999 Richard Henderson + + * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero. + * dwarf2out.c (dwarf2out_frame_init): Likewise. + * final.c (shorten_branches): Likewise. + * global.c (global_alloc): Likewise. + * haifa-sched.c (build_control_flow): Likewise. + * stmt.c (check_for_full_enumeration_handling): Likewise. + (estimate_case_costs): Likewise. + +Fri Sep 3 15:49:56 1999 Mark Mitchell + + * rtl.h (RTL_CHECKC2): Fix typo in last change. + +Fri Sep 3 15:13:34 1999 Richard Henderson + + * flow.c (propagate_block): Use XEXP not SET_DEST for a USE. + (recompute_reg_usage): Likewise. + * rtlanal.c (find_regno_fusage): Likewise. + + * rtl.c (rtl_check_failed_code1): New function. + (rtl_check_failed_code2): New. + * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args. + (RTL_CHECKC1, RTL_CHECKC2): New. + (XC*): New accessor macros. + (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them. + (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise. + (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise. + (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise. + (TRAP_*, RANGE_INFO_*): Likewise. + +Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi + + * Makefile.in (tlink.o): Don't depend on toplev.h. + + * collect2.c (c_file, o_file, export_file, import_file, ldout, + output_file, nm_file_name, ldd_file_name, strip_file_name, + c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file, + add_prefix, prefix_from_env, prefix_from_string, do_wait, + fork_execute, maybe_unlink, add_to_list, + extract_init_priority, write_list, dump_list, + dump_prefix_list, write_list_with_asm, write_c_file, + write_c_file_stat, write_c_file_glob, scan_prog_file, + scan_libraries, is_in_list, resolve_lib_name, use_import_list, + ignore_library, extract_string, notice, dump_file, target_machine, + collect_wait, collect_execute, libname, locatelib, aix_std_libs, + read_file, print_load_command): Constify a char*. + (fdopen, error, fatal, fatal_perror): Don't prototype. + (my_strerror): Remove. All callers use xstrerror instead. + (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions. + (main): Add prototype. Constify lots of char* ptrs. Change calls + to xcalloc/strcpy/strcat/... to one call to concat. + (main, scan_prog_file, scan_libraries): Use an intermediate + `const char **' to build an argv array. + (mapfile, libselect, libcompare, locatelib): Add prototypes. + + * collect2.h (collect_execute, collect_wait, dump_file, + file_exists): Constify a char*. + (ldout, c_file_name, temporary_obstack, permanent_obstack, + temporary_firstobj, vflag, debug): Add extern declarations. + (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes. + + * tlink.c: Don't include toplev.h. + (vflag, debug, ldout, c_file_name, temporary_obstack, + permanent_obstack, temporary_firstobj): Don't declare. + (tlink_execute, frob_extension, symbol_hash_lookup, + file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym, + recompile_files, read_repo_files, demangle_new_symbols, + scan_linker_output): Constify a char*. + (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc, + do_tlink): Mark parameters with ATTRIBUTE_UNUSED. + +Fri Sep 3 18:09:24 1999 Andrew Haley + + * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr + (relative) rather than jsr (absolute) subroutine call insns. + * config/m68k/m68k-coff.h: Ditto. + +Fri Sep 3 17:24:31 1999 Richard Earnshaw + + * arm.c (note_invalid_constants): No need to ignore ASMs, we can + now rework these too. + (arm_reorg): If an insn can't reach the end of the current pool, + ensure that we emit that pool before the insn. + +Fri Sep 3 09:14:32 1999 Marc Espie + + * tlink.c (scan_linker_output): Skip the initial underscore in + a mangled name if appropriate. + +Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi + + * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length, + objc_tree_code_name, synth_id_with_class_suffix, warn_with_method, + error_with_ivar, gen_declarator, create_builtin_decl, + my_build_string, generate_descriptor_table, generate_ivars_list, + generate_dispatch_table, check_protocols, TAG_GETCLASS, + TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS, + dump_base_name, lang_decode_option, build_encode_expr, + start_class, finish_class, encode_pointer, really_start_method, + gen_declaration, dump_interface, handle_class_ref, handle_impent): + Constify. + (objc_demangle, objc_printable_name, generate_struct_by_value_array): + Add static prototypes. + (build_objc_string_decl, build_selector_reference_decl, + encode_bitfield, build_class_reference_decl): Remove unused + parameter, all callers changed. + (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED. + (objc_printable_name): Likewise. Change second parameter to type int. + (init_objc): Use memcpy, not bcopy, to avoid casts. + +Thu Sep 2 21:49:52 1999 Richard Henderson + + * reload1.c (eliminate_regs_in_insn): Avoid eliminating the + reg notes on a deleted insn. + * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE. + +Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com) + + * i386.c (ix86_attr_length_default): Handle TYPE_FXCH. + +Thu Sep 2 22:00:08 1999 J"orn Rennecke + + * stmt.c (expand_asm_operands): Fix index into inout_mode when + reading it. + +Thu Sep 2 13:00:48 1999 Richard Henderson + + * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present. + * tm.texi (MD_ASM_CLOBBERS): Document it. + +Thu Sep 2 10:22:40 1999 Richard Henderson + + * dwarf2out.c (dwarf2out_line): Constify `lastfile'. + * except.c (expand_rethrow): Remove unused variable. + * expr.c (do_jump_by_parts_greater_rtx): Likewise. + * flow.c (replace_insns): Likewise. + (create_edge_list, verify_edge_list): Likewise. + * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0. + + * genemit.c (gen_expand): Only emit `operands[N]' decl if there + is special code to run. + (main): Don't define operands to emit_operand. + * genrecog.c (main): Don't emit an empty peephole2_insn function. + + * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF. + + * alpha/alpha.h (normal_memory_operand): Declare. + (reg_no_subreg_operand): Declare. + * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. + +Thu Sep 2 10:19:20 1999 Richard Henderson + + * c-parse.in (compstmt_primary_start): New, broken out of first + part of compstmt handling in primary. + (primary): Use it. Add an error clause. + (compstmt_nostart): Renamed from compstmt; remove all + initial invocations of compstmt_start. + (compstmt): New. + +Thu Sep 2 01:35:50 1999 Marc Espie + + * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if + needed. + +Thu Sep 2 00:43:59 1999 Finn Hakansson + + * combine.c (simplify_shift_const): Remove extra semicolon. + * dwarf2out.c (remove_AT): Likewise. + * expmed.c (expand_mult): Likewise. + * gcov.c (create_program_flow_graph): Likewise. + * reorg.c (mostly_true_jump): Likewise. + +Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com) + + * fold-const.c (fold_range_test): Do not try to fold the range + test if the rhs or lhs has side effects. + + * combine.c (simplify_rtx): Recognize another case of a synthesized + sign extension. + + * varasm.c (mark_constant_pool): When marking indirect references, + only look at SYMBOL_REFs. + + * except.c (expand_fixup_region_end): Do not peek at + INSN_UID (node->entry->outer_context) for flag_new_exceptions. + +Thu Sep 2 13:52:53 1999 Geoffrey Keating + + * flags.h: New variables align_loops, align_loops_log, + align_jumps, align_jumps_log, align_labels, align_labels_log, + align_functions, align_functions_log. + * toplev.c: Define them. + (f_options): Handle -falign-* when they have no argument. + (main): Add logic to set variables for -falign-functions, + -falign-jumps, -falign-labels, -falign-loops. + Make it -fsched-verbose= and -finline-limit=. + (display_help): Change help to match options. + * final.c (LABEL_ALIGN): Default to align_labels_log. + (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1. + (LOOP_ALIGN): Default to align_loops_log. + (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1. + (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log. + (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1. + * varasm.c (assemble_start_function): Handle align_functions. + + * config/sparc/sparc.h: Don't declare sparc_align_*. + Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN. + (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into + sparc.c. + (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request, + it's a promise. + * config/sparc/sparc.c: Delete sparc_align_loops, + sparc_align_jumps, sparc_align_funcs and the corresponding string + variables. + (sparc_override_options): Default align_functions on ultrasparc. + Delete -malign-* handling. + + * config/mips/mips.c (override_options): On 64-bit targets, + try to align code to 64-bit boundaries. + (print_operand): New substitution, %~, + which aligns labels to align_labels_log. + * config/mips/mips.md (div_trap_normal): Use %~. + (div_trap_mips16): Likewise. + (abssi): Likewise. + (absdi2): Likewise. + (ffssi2): Likewise. + (ffsdi2): Likewise. + (ashldi3_internal): Likewise. + (ashrdi3_internal): Likewise. + (lshrdi3_internal): Likewise. + (casesi_internal): Likewise. + +Wed Sep 1 21:13:48 1999 Richard Henderson + + Merge new ia32 backend from the branch! + + * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes. + See ChangeLog.P2 on new_ia32_branch for details. + + * rtl.h (stack_regs_mentioned_p): Delete prototype. + * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl. + * i386/win32.h (SUBTARGET_PROLOGUE): Likewise. + * i386/gas.h (ASM_FILE_START): Define. + * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update + for name change of ix86_valid_decl_attribute_p. + (i386_pe_valid_type_attribute_p): Similarly. + +Wed Sep 1 18:21:23 1999 Richard Henderson + + * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE + to step through CC modes. + +Wed Sep 1 20:18:06 1999 J"orn Rennecke + + * regmove.c (fixup_match_1): Don't move INSN in front of P if + it would end up in the shadow of a live flags regsiter. + +Wed Sep 1 11:32:00 1999 Bernd Schmidt + + * reload1.c: Fix many indentation problems. + * reload.c: Likewise. + +Tue Aug 31 22:08:03 1999 Marc Espie + + * alias.c (non_local_reference_p): Constify fmt. + +Tue Aug 31 23:19:35 1999 Michael Meissner + + * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define. + +Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (delete_trivially_dead_insns): Do not delete stores to + the internal_arg_pointer. + +Tue Aug 31 13:35:42 1999 Richard Henderson + + Merge peephole2 from new_ia32_branch: + * Makefile.in (STAGESTUFF): Add *.peephole2. + (mostlyclean): Likewise. + (recog.o): Depend on resource.h. + + * final.c (peephole): Conditionalize decl on HAVE_peephole. + (final_scan_insn): Likewise for the invocation of peephole. + * genconfig.c (main): Look for peephole and peephole2 patterns. + Emit HAVE_peephole* accordingly. + * genpeep.c (main): Conditionalize entire output on HAVE_peephole. + * flags.h (flag_peephole2): Declare. + * toplev.c: New pass peephole2. New flag -fpeephole2. + + * genattrtab.c (main): Count DEFINE_PEEPHOLE2. + * gencodes.c (main): Likewise. + * genextract.c (main): Likewise. + * genoutput.c (main): Likewise. + * genemit.c (max_operand_1): Look for the max scratch operand. + (gen_rtx_scratch): New. + (gen_exp): Use it, and pass on new arg subroutine_type. + (gen_expand): Take max scratch into account. + (gen_split): Emit peephole2 functions. + (output_peephole2_scratch): New. + (main): Include hard-reg-set.h and resource.h. Handle peephole2. + * genrecog.c (routine_type): Add PEEPHOLE2. + (IS_SPLIT): New. + (make_insn_sequence): Match outer parallel for peep2. Discard + top level scratches and dups. + (add_to_sequence): New args insn_type and top. Update all callers. + Handle toplevel peep2 matching insns. + (write_subroutine): Handle peep2. + (write_tree_1): Likewise. + (write_tree): Likewise. + (main): Likewise. + (change_state): New arg afterward. Update all callers. + Handle matching separate insns. + * recog.c (recog_next_insn): New. + (peephole2_optimize): New. + * rtl.def (DEFINE_PEEPHOLE2): New. + * resource.c (find_free_register): New argument last_insn. Use it + to find a register available through the entire span. + * resource.h (find_free_register): Update prototype. + +Tue Aug 31 11:51:06 1999 Jim Kingdon + + * i386.c (output_strlen_unroll): Don't write xops[7] + label if it wasn't set. + +1999-08-31 12:44 -0700 Zack Weinberg + + * cpplib.c (struct directive): Const-ify name pointer and + function pointer prototype. + (validate_else, 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_assert, do_unassert, + do_warning): Const-ify second arg. + (directive_table): Mark const. Reorder entries by frequency + of usage, record statistics. + +1999-08-31 12:20 -0700 Zack Weinberg + + * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and + bounds- check RTL accesses if --enable-checking. + (RTVEC_ELT): Bounds check if --enable-checking. + (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, + XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate. + (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and + GET_NUM_ELEM. + (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, + X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes. + + (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS. + (NOTE_SOURCE_FILE): Use X0STR. + (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES, + MEM_ALIAS_SET): Use X0INT. + (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK, + JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN): + Use X0EXP. + * real.h (CONST_DOUBLE_CHAIN): Use X0EXP. + * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT. + (rtl_check_failed_bounds, rtl_check_failed_type1, + rtl_check_failed_type2, rtvec_check_failed_bounds): New + functions. + (fancy_abort): Fix comment. + + * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT. + (cse_insn): Decrement LABEL_NUSES for jump target before + deleting jump insn. + * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1. + * final.c (alter_subreg): Compute regno before changing x to + REG; set REGNO(x) after changing it. + * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION + notes containing CONST_INTs. + (delete_eh_regions): Use NOTE_EH_HANDLER. + * function.c (put_reg_into_stack): Make reg a MEM before + initializing it. + (fixup_var_refs_insns): Save REG_NOTES (insn) in case we + delete insn. + (gen_mem_addressof): Make reg a MEM before initializing it. + * integrate.c (copy_rtx_and_substitute): Copy '0' slots with + X0WINT. + * local-alloc.c (update_equiv_regs): Zap REG_NOTES before + deleting an insn, not after. + (block_alloc): Only look at PATTERN(insn) if we have to, and + only if it's format class 'i'. + * loop.c (check_dbra_loop): Check bl->biv->add_val is a + CONST_INT before using its INTVAL. + * print-rtl.c (print_rtx): Use X0STR. + * regmove.c (fixup_match_1): Don't look at PATTERN of + non-class-'i' insn chain elements. + * reload.c (loc_mentioned_in_p): Take address of + in->fld[1].rtx directly. + * reload1.c (reload): Change reg to a MEM before initializing + it. + * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which + have no names. + * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo. + +Fri Aug 20 13:43:41 1999 Andrew Haley + + * config/mips/mips.c (machine_dependent_reorg): Force a + barrier to output the local constant pool if a barrier hasn't + been found at a natural point in the instruction stream. + +Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi + + * c-parse.in (language_string): Constify. + + * dwarf2out.c (language_string): Remove declaration. + + * dwarfout.c (language_string): Likewise. + + * toplev.c (language_string, init_parse, finish_parse): Likewise. + + * tree.h (language_string, init_parse, finish_parse): Declare. + + * i386/sun386.h (language_string): Remove declaration. + + * mips.h (language_string): Likewise. + + * nextstep.h (language_string): Likewise. + + * nextstep21.h (language_string): Likewise. + + * rs6000.c (language_string): Likewise. + +Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi + + * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o. + (getpwd.o): Remove target. + + * getpwd.c: Delete file. Its in libiberty now. + + * dbxout.c (getpwd): Don't prototype. + * dwarf2out.c (getpwd): Likewise + * dwarfout.c (getpwd): Likewise + * final.c (getpwd): Likewise. + * protoize.c (getpwd): Likewise. + +Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi + + * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift. + +Mon Aug 30 16:07:49 1999 Richard Henderson + + * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not + mark_set_resources. + +Mon Aug 30 12:23:53 1999 Jim Wilson + + * fixinc/Makefile.in (subdir): New. + (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP). + (Makefile): New. + +Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (copy_rtx_if_shared): A MEM which references + virtual_stack_vars_rtx or virtual_incoming_args_rtx can not + be shared. + + * invoke.texi: Fix typo. + + * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers + changed. Handle autoincrement addressing modes. + + * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer + just like we would the virtual incoming args register when + integrating. + +Sun Aug 29 23:17:54 1999 David Edelsohn + + * rs6000.h (ASM_FILE_START): Specify complete filename, including + path, in .file directive. + +Sun Aug 29 05:06:43 1999 Russ Allbery + + * gcc.texi (External Bugs): Remove obsolete note about Perl on + SunOS. + +1999-08-29 08:38 -0700 Zack Weinberg + + * stdbool.h: Make the typedef name _Bool, with bool a #defined + alias. + +Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi + + * tree.c (tree_code_name): Constify a char*. + + * tree.h (tree_code_name, decl_printable_name): Likewise. + + * function.h (struct function): Likewise. + + * toplev.c (decl_name, decl_printable_name): Likewise. + + * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise. + + * objc/objc-act.c (decl_printable_name): Remove redundant prototype. + (init_objc): Remove function pointer cast. + +Sun Aug 29 05:01:17 1999 John David Anglin + + * pa.md (interspace_jump): New pattern. + (builtin_longjmp): New expander. + +1999-08-29 Bernd Schmidt + + * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2, + _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate, + sf_to_df, df_to_sf): Fix potential problem with alias analysis. + +Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com) + + * jump.c (delete_prior_computation): Also check calls + to constant functions. Don't bother checking for a + REG_UNUSED note before adding it. + (delete_computation): Handle multi-word hard registers + when synthesizing missing REG_DEAD notes for a register + which is both set and used by an insn. + +1999-08-29 Michael Hayes + + * loop.c (this_loop_info): New variable. + (loop_has_call, loop_has_volatile, loop_has_tablejump, + loop_continue, loops_enclosed): Replace with fields in this_loop_info. + All uses updated. + (prescan_loop, strength_reduce): New argument loop_info. All callers + updated. + (scan_loop): New variable loop_info, initialize to address of + this_loop_info. + (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP. + Delete variable loop_has_multiple_exit targets and replace with + field in this_loop_info. + (find_and_verify_loops): Rename this_loop to this_loop_num. + (strength_reduce): Delete loop_iteration_info. Replace variable + loop_info with function argument of same name. + (insert_bct): Rework test for loop being completely unrolled. + + * loop.h (struct loop_info): New fields num, loops_enclosed, + has_call, has_volatile, has_tablejump, has_multiple_exit_targets, + has_indirect_jump, and cont. Redefine use of unroll_number. + (loop_unroll_number): Delete. + + * unroll.c (unroll_loop): Store loop unroll count in unroll_number + field of loop_info. + (loop_iterations): Delete variable vtop and instead use + loop_info->vtop computed in prescan_loop. + +Sun Aug 29 03:27:23 1999 Scott Weikart + + * fix-header.c (main): Do not pass a null pointer to strcmp. + +Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net) + + * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate + filenames. + * configure: Rebuilt. + +Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c (jump_optimize_1): Do not delete assignments to + internal_arg_pointer. + * cse.c (delete_trivially_dead_insns): Always consider a set of + the internal_arg_pointer live. + +Sat Aug 28 16:24:31 1999 Richard Henderson + + * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain. + (update_life_info) [REG_WAS_0]: Search the original insns rather + than the new insns for the note. Fix typos finding note_dest. + If no dest found, discard the note rather than abort. + [REG_NOALIAS]: Handle as REG_NO_CONFLICT. + (replace_insns): Remove the old insn list after update_life_info + not before. + +Sat Aug 28 16:20:12 1999 Richard Henderson + + * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling + sched_analyze_insn. + (sched_analyze_1): Let add_dependence care for not adding dups. + (sched_analyze_2): Likewise. + (add_branch_dependences): Likewise. + +Sat Aug 28 15:58:16 1999 Mumit Khan + + * i386/winnt.c (export_list): New type. + (exports_head): Rename to + (export_head): this. + (i386_pe_record_exported_symbol): Add is_data flag. + (i386_pe_asm_file_end): Emit directive for exported variables. + * i386/cygwin.h (i386_pe_record_exported_symbol): Update + prototype. + * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + +Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers. + + * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an + operand. + +Fri Aug 27 14:01:19 1999 Marc Espie + + * config/openbsd.h: Define SET_ASM_OP. + * tm.texi: cross-reference SET_ASM_OP in the index. + +1999-08-27 13:27 -0700 Zack Weinberg + + * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format + for a CONST_DOUBLE, at compile time. Initialize rtx_length + and class_narrowest_mode at compile time. Kill init_rtl. + Mark rtx_length, mode_class, mode_size, mode_unit_size, + mode_wider_mode, mode_mask_array, class_narrowest_mode, and + rtx_format as const. Kill all references to EXTRA_CC_MODES or + EXTRA_CC_NAMES. + * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for + format. + * rtl.h: Declare rtx_length and rtx_format as const. + * machmode.def: Define CC(). Use CC() to define CCmode. If + EXTRA_CC_MODES is defined, expand it here. + * machmode.h: Declare mode_class, mode_size, mode_unit_size, + mode_wider_mode, mode_mask_array, and class_narrowest_mode as + const. Kill all references to EXTRA_CC_MODES. + + * toplev.c: Don't prototype or call init_rtl. + * optabs.c: Don't call init_mov_optab. + * genemit.c: Don't generate init_mov_optab. Don't call + init_rtl. + * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT + here. + * genattr.c, genattrtab.c, gencodes.c, genconfig.c, + genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, + genrecog.c: Don't call init_rtl. + + * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h, + rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in + definition of EXTRA_CC_MODES. + + * md.texi: Kill ref to EXTRA_CC_NAMES. + * tm.texi: Document new way to define EXTRA_CC_MODES. + + * genrecog.c: Do not look up the name of a define_split. + (Unrelated bugfix.) + +Fri Aug 27 17:03:42 1999 Nick Clifton + + * config/v850/v850.md: Fix typo introduced by previous delta. + +Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi + + * gcc.c (fatal): Make definition static to match prototype. + +Fri Aug 27 10:33:35 1999 Bernd Schmidt + + * combine.c (get_last_value): Don't look for earlier sets if the last + known set is somewhere in between the insns being combined. + +Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell + + * configure.in: Don't use shell ! to negate exit codes + * configure: Regenerate + +Fri Aug 27 09:36:17 1999 Andreas Schwab + + * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for + the fact that ALIGN is measured in bits, not bytes. + +1999-08-27 00:27 -0700 Zack Weinberg + + * errors.c: New file; defines functions error, warning, and + fatal, variables have_error and progname. + * errors.h: New file; prototypes and decls for stuff in errors.c. + + * Makefile: Add rules to build errors.o and + $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit, + genopinit, genrecog, genextract, genpeep, genattr, and + genoutput with errors.o. Add errors.h to deps of genconfig.o, + gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o, + genpeep.o, genattr.o, and genoutput.o. + + * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c, + genextract.c, genpeep.c, genattr.c: Include errors.h. Don't + define or prototype fatal. Set progname at beginning of main. + * genoutput.c: Likewise, and don't define or prototype error + either. + + * c-typeck.c (c_expand_start_case): Return immediately if exp + is an ERROR_MARK. + * fold-const.c (operand_equal_p): Return immediately if arg1 + or arg0 are ERROR_MARKs. + * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore + fields of type ERROR_MARK when calculating if the record can + go in a register. + +Fri Aug 27 01:03:48 1999 Jim Kingdon + with much help from Jeffrey A Law and Richard Henderson + + * i386.md: In the 6 insns which call output_fix_trunc, + earlyclobber operands[0]. + +Fri Aug 27 01:01:51 1999 Philip Blundell + + * jump.c (duplicate_loop_exit_test): Call reg_scan_update after + creating new registers. + +1999-08-26 23:09 -0700 Zack Weinberg + + * i386.h: Declare ix86_cpu_string, ix86_arch_string, + i386_reg_alloc_order, i386_regparm_string, + i386_align_loops_string, i386_align_jumps_string, + i386_align_funcs_string, i386_preferred_stack_boundary_string, + and i386_branch_cost_string as type "const char *". + * i386.c: Define all above strings as type "const char *". + +Thu Aug 26 20:36:30 1999 Jim Wilson + + * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE + when emitting alignment padding. Emit padding byte of 0 instead of 4. + +Thu Aug 26 18:11:20 1999 Mark Mitchell + + * tree.c (array_type_nelts): Don't create RTL_EXPRs from + SAVE_EXPRs unless the SAVE_EXPRs have already been expanded. + +Thu Aug 26 19:33:23 1999 Jim Wilson + + * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition. + (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support. + (dwarf2out_line, dwarf2out_finish): Likewise. + * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documentation. + +Thu Aug 26 16:10:56 1999 Gavin Romig-Koch + + * tree.c (lang_unsave_expr_now) : Correct return type. + * tree.h (lang_unsave_expr_now) : Same. + +Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros + instead of duplicating code. + +Thu Aug 26 18:32:32 1999 Bernd Schmidt + + * gcse.c (hash_scan_insn): Don't scan obvious no-ops. + +1999-08-26 09:42 -0700 Zack Weinberg + + * tree.h: fancy_abort always takes three args. + * resource.c: Move include of system.h before toplev.h. + +Thu Aug 26 09:46:16 1999 Nick Clifton + + * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well + as SYMBOL_REFs. + +1999-08-25 22:10 -0700 Zack Weinberg + + * system.h: Don't redefine abort or trim_filename. + * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0) + or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on + whether or not __FUNCTION__ is available. + * tree.h: Duplicate rtl.h's definition of abort, for files + that don't include rtl.h. Delete all code to perform type + checking with a compiler other than GCC. + * varray.h: Delete all code to perform type checking with a + compiler other than GCC. Make VARRAY_CHECK() always evaluate + its arguments exactly once, using a statement expression. + Adjust the VARRAY_ accessor macros to match. + * toplev.h (fatal_insn, fatal_insn_not_found): Kill. + (_fatal_insn, _fatal_insn_not_found): New fns, take info on + caller's location. Define fatal_insn and fatal_insn_not_found + as macros that use _fatal_insn and _fatal_insn_not_found. + (fancy_abort, trim_filename): Kill prototypes. + + * rtl.c (trim_filename): Move here from toplev.c. + (fancy_abort): New function. + (DIR_SEPARATOR): Provide default definition. + * tree.c (tree_check_failed, tree_class_check_failed): Go + through fancy_abort. + (tree_check, tree_class_check, cst_or_constructor_check, + expr_check): Delete. + * varray.c (varray_check_failed): New function. + * toplev.c (fatal_insn, fatal_insn_not_found): Replace with + _fatal_insn and _fatal_insn_not_found. Go through + fancy_abort. + (trim_filename, fancy_abort): Delete. + + * builtins.c (expand_builtin_args_info): Report ICE with abort. + * except.c (start_catch_handler): Report ICE with error/abort + combo. + * final.c (output_operand_lossage): Likewise. + * flow.c (verify_flow_info): Likewise. + + * gcc.c: Prototype fatal. + * gengenrtl.c: Undef abort after including rtl.h not system.h. + * genattr.c, genattrtab.c, genemit.c, genextract.c, + genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c: + Don't define fancy_abort. + +Wed Aug 25 17:56:59 1999 Richard Henderson + + * optabs.c (emit_cmp_and_jump_insns): Be more thorough in + canonization. + +Wed Aug 25 15:35:55 1999 Richard Henderson + + * m88k.h (VERSION_INFO2): Kill. + (VERSION_STRING): Kill. + (TM_RCS_ID): Kill. + (VERSION_INFO1): Tidy. + (TARGET_VERSION): Update. + * m88k/dgux.h (VERSION_INFO2): Kill. + (ASM_FIRST_LINE): Adjust for death of VERSION_STRING. + * m88k/luna.h (VERSION_INFO1): Tidy. + * m88k/sysv4.h (VERSION_INFO1): Likewise. + * m88k.c (out_rcs_id, tm_rcs_id): Kill. + (output_file_start): Adjust for death of VERSION_STRING. + +1999-08-25 13:51 -0700 Jim Meyering + + * cpplib.c (detect_if_not_defined): New function. + (do_if): Use it to detect potential once-only headers. + +Wed Aug 25 14:00:18 1999 Jason Merrill + + * c-common.c (combine_strings): Always set TREE_CONSTANT. + +Wed Aug 25 15:27:22 1999 Gavin Romig-Koch + + * combine.c (nonzero_bits) : Allow single-ly set registers to be + anywere in the function only if they are pseudos and set before + being used (not live at the start of the function). + (num_sign_bit_copies) : Same. + (get_last_value_validate) : Same. + (get_last_value) : Same. + +Wed Aug 25 11:13:29 1999 Richard Henderson + + * loop.c (express_from): Try harder to unify (* c N) and (* c M) + where N and M are constant and N is an integer multiple of M. + +Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod + + * sbitmap.h (sbitmap_intersection_of_succs): Add prototype. + (sbitmap_intersection_of_preds, sbitmap_union_of_succs, + sbitmap_union_of_preds): Add prototypes. + * sbitmap.c (sbitmap_intersection_of_succs): New function to compute + the intersection of successors with the new flow graph structures. + (sbitmap_intersection_of_preds): New function to compute the + intersection of predecessors with the new flow graph structures. + (sbitmap_union_of_succs): New function to compute the union of + successors with the new flow graph structures. + (sbitmap_union_of_preds): New function to compute the union of + predecessors with the new flow graph structures. + * gcse.c (compute_rdm, compute_available): Use new sbitmap routines. + (expr_reaches_here_p): Use edge and basic_block structures instead + of s_preds and s_succs. + (compute_cprop_avinout): Use new sbitmap routines. + (pre_expr_reaches_here_p): Use edge and basic_block structures instead + of s_preds and s_succs. + * flow.c (compute_flow_dominators): Compute dominators using + edges and basic blocks instead of s_preds and s_succs. + +Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod + + * lists.c (unused_insn_list, unused_expr_list): New file for + maintaining various types of lists. New statics for maintaining a + cache of available INSN_LIST and EXPR_LIST nodes. + (free_list): Static function for freeing a list of INSN/EXPR nodes. + (alloc_INSN_LIST): Function to get a free INSN_LIST node. + (alloc_EXPR_LIST): Function to get a free EXPR_LIST node. + (init_EXPR_INSN_LIST_cache): Initialize the cache lists. + (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes. + (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes. + (free_EXPR_LIST_node): Free an individual EXPR_LIST node. + (free_INSN_LIST_node): Free an individual INSN_LIST node. + * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c + (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c + (remove_dependence, free_pending_lists): Use new global routines. + (flush_pending_lists, sched_analyze_insn): Use new global routines. + (sched_analyze, compute_block_backward_dependences): Use new routines. + (sched_analyze_1, sched_analyze_2): Use new routines. + (schedule_insns): Use new global routines. + * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function + prototypes. + (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes. + (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function + prototypes. + * toplev.c (rest_of_compilation): Initialize node cache. + * Makefile.in (OBJS): Add lists.o to list of object files. + (lists.o): Add dependencies. + +Wed Aug 25 17:31:56 1999 Nick Clifton + + * config/v850/v850.md: Fix compile time warning messages. + * config/v850/v850.c: Fix compile time warning messages. + * config/v850/v850.h: Fix compile time warning messages. + +Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi + + * genattr.c (gen_attr): Add prototype arguments for get_attr_*(). + Remove unused prototype for `init_lengths'. + +Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi + + * calls.c (emit_call_1): Mark parameter `stack_size' with + ATTRIBUTE_UNUSED. + (expand_call): Initialize variable `insn'. + (emit_library_call): Likewise for variable `high_to_save'. + (emit_library_call_value): Likewise. + (store_one_arg): Likewise for variables `lower_bound' and + `upper_bound'. + + * combine.c (try_combine): Likewise for variables `i2_code_number' + and `other_code_number'. + (find_split_point): Likewise for variables `pos', `unsignedp' and + `inner'. + (simplify_if_then_else): Likewise for variables `op' and `c1'. + (simplify_and_const_int): Remove unused variable `width'. + (merge_outer_ops): Likewise. + + * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned + HOST_WIDE_INT' when comparing against one. + (simplify_relational_operation): Likewise. + (cse_insn): Initialize variables `src_eqv_volatile', + `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'. + + * final.c (init_final): Constify parameter `filename'. + (final_start_function): Mark parameter `optimize' with + ATTRIBUTE_UNUSED. + (profile_function): Likewise for parameters `first' and `optimize'. + (output_source_line): Likewise for parameter `file'. + + * integrate.c (subst_constants): Cast a value to `size_t' when + comparing against one. + (mark_stores): Initialize variable `mode'. Cast a value to + `size_t' when comparing against one. + + * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise. + + * loop.c (move_movables): Initialize variable `first'. + (strength_reduce): Likewise for variable `increment'. + (check_dbra_loop): Likewise for variable `comparison_val'. Cast a + value to `size_t' when comparing against one. + (load_mems): Initialize variable `end_label'. + + * output.h (init_final): Constify parameter. + + * reload.c (decompose): Initialize variable `base'. + + * reload1.c (reload): Likewise for variable `is_scalar'. + (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED. + (choose_reload_regs): Initialize variable `mode'. + (emit_reload_insns): Likewise for variable `store_insn'. + (reload_cse_noop_set_p): Mark parameter `insn' with + ATTRIBUTE_UNUSED. + (reload_combine): Initialize variable `set'. + + * unroll.c (unroll_loop): Likewise for variable `local_label'. + (copy_loop_body): Cast a value to `size_t' when comparing against + one. + + * varasm.c (assemble_variable): Initialize variable `size_tree'. + (const_hash): Add an `else abort()' in an if-else-if-else sequence. + (remove_from_pending_weak_list): Mark parameter `name' with + ATTRIBUTE_UNUSED. + +Wed Aug 25 11:18:39 1999 Bernd Schmidt + + * toplev.c (rest_of_compilation): Use decl_printable_name when opening + gcse dump file. + +Wed Aug 25 10:57:12 1999 Nick Clifton + + * config/arm/telf.h (ASM_WEAKEN_LABEL): Define. + (ASM_DECLARE_FUNCTION_NAME): Define. + (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT, + ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME, + ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if + not already defined. + +Wed Aug 25 01:36:11 1999 John David Anglin + + * calls.c (emit_call_1): Use call_pop/call_value_pop for all values + of n_popped when call/call_value are not defined. + +Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com) + + * tm.texi: GNU CC -> GCC conversion. + (CC1_SPEC): Indicate it is used for all language front ends. + +Tue Aug 24 23:43:03 1999 Mark Mitchell + + * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and + NOTE_INSN_EH_REGION_END correctly. + +Tue Aug 24 23:26:44 1999 Michael Tiemann + Jeff Law + + * loop.c (strength_reduce): Automatically unroll loops if the + unrolled loop size is smaller than the rolled loop size. + + * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab + and delete comment that code should be rewritten. + +Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (find_rgns): Mark a block found during the DFS search + as reachable. + + * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error. + +Tue Aug 24 22:41:06 1999 Mumit Khan + + * fixinc/mkfixinc.sh: Don't fix uwin headers. + * i386/uwin.h (MD_STARTFILE_PREFIX): Define. + (LINK_SPEC): Add -u _main when building executables. + (ASM_DECLARE_FUNCTION): Update from Cygwin. + (ASM_FILE_END): Use the default for ix86-pe. + * i386/xm-uwin.h (HAVE_BCOPY): Undefine. + +Tue Aug 24 20:49:47 1999 Art Haas + + * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN + and ASM_CLOSE_PAREN are empty strings. + +Wed Aug 25 12:46:22 1999 Fred Fish + Geoffrey Keating + + * Makefile.in (PREPROCESSOR_DEFINES): New macro. + (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES. + (unprotoize.o): Ditto. + (test-protoize-simple): Don't define STD_PROTO_DIR. + * protoize.c: Use PARAMS rather than PROTO. Minor whitespace + changes to make 'test-protoize-simple' pass. + (STD_PROTO_DIR): Remove define. + (STANDARD_EXEC_PREFIX): Supply default define. + (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX. + (target_machine): New variable, init to DEFAULT_TARGET_MACHINE. + (target_version): New variable, init to DEFAULT_TARGET_VERSION. + (GET_ENV_PATH_LIST): New macro. + (default_syscalls_dir): No longer initialized to STD_PROTO_DIR. + (do_processing): Initialize default_syscalls_dir using new + macros. Use it to initialize syscalls_absolute_filename. + +Tue Aug 24 16:58:15 1999 Richard Henderson + + * jump.c (jump_optimize_1): Do cmov opt on any single-set; force + B into a register before emit_conditional_move. + +Tue Aug 24 15:37:03 1999 Richard Henderson + + * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e)) + as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two + multiplicand out of (+ (* a b) (* c d)). + +Tue Aug 24 11:46:10 1999 Bob Manson + Richard Henderson + + * haifa-sched.c (split_hard_reg_notes): Move to flow.c + (new_insn_dead_notes): Likewise. + (update_n_sets): Likewise. + (update_flow_info): Move to flow.c, renamed to update_life_info; + extend to handle multiple source insns. + * flow.c: Include resource.h + (unlink_insn_chain): New. + (split_hard_reg_notes): New. + (maybe_add_dead_note): New. + (maybe_add_dead_note_use): New. + (find_insn_with_note): New. + (new_insn_dead_notes): New. + (update_n_sets): New. + (sets_reg_or_subreg_1, sets_reg_or_subreg): New. + (maybe_remove_dead_notes): New. + (update_life_info): New. + (prepend_reg_notes): New. + (replace_insns): New. + * output.h (update_life_info): Declare. + * recog.c (split_block_insns): Use update_life_info. + * resource.c (find_free_register): Use reg_alloc_order, don't use + fixed regs, make sure the mode is supported, don't use new regs. + (reg_dead_p): New. + * rtl.h (replace_insns): Declare. + +Tue Aug 24 13:48:39 1999 Nathan Sidwell + + * expr.c (expand_expr): Cope with COND_EXPRs with one + non-returning branch. + +Mon Aug 23 22:28:16 1999 Mark Mitchell + + * expr.c (store_expr): Always pass down the target, even when not + doing CSE. + +1999-08-24 Nick Clifton + + * configure.in: Define target_cpu_default for v850 targets. + * configure: Regenerate + + * config/v850/v850.h (TARGET_CPU_generic): Define. + (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant + addresses are 4 byte aligned. + + * config/v850/v850.c (print_operand): Cope with 'R' format DFmode + addresses. + +Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi + + * genattr.c (function_unit_desc): Constify a char*. Add prototype. + (main): Add prototypes. + + * genattrtab.c (substitute_address, write_const_num_delay_slots, + attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype. + (write_attr_get): Emit prototypes along with function definition. + (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED. + (write_complex_function): Emit static prototype along with + function definition. + + * genemit.c (gen_split): Emit prototypes along with function + definition. + + * genoutput.c (output_epilogue): Add prototype to `insn_outfun'. + Likewise for predicates and `insn_operand_predicate'. + (process_template): Emit static prototype along with function + definition. + + * genrecog.c (make_insn_sequence): Constify a char*. Add + prototypes for get_split_*(). + (write_subroutine): Emit prototypes along with function + definition. + +Tue Aug 24 12:35:20 1999 Bernd Schmidt + + * gcse.c (find_avail_set): Follow chains of register-register copies. + Use oprs_not_set_p to guarantee that the returned value can be + substituted. + (cprop_insn): Don't verify the return value of find_avail_set with + oprs_not_set_p. + + * gcse.c (cprop_jump): New function, broken out of cprop_insn. + (cprop_cc0_jump): New function. + (cprop_insn): Break out new function cprop_jump and use it. + Also use cprop_cc0_jump for machines with CC0. + (cprop): Don't crash if cprop_insn turned the insn into a NOTE. + + * tree.h (current_function_calls_setjmp, + current_function_calls_longjmp): Delete declarations. + * dsp16xx.c: Include "function.h". + * elxsi.c: Likewise. + * gmicro.c: Likewise. + * h8300.c: Likewise. + * i370.c: Likewise. + * m32r.c: Likewise. + * mn10200.c: Likewise. + * mn10300.c: Likewise. + * ns32k.c: Likewise. + * spur.c: Likewise. + * v850.c: Likewise. + + * rtl.h (rtx_equal_function_value_matters): Declare. + * toplev.c (rtx_equal_function_value_matters): Don't declare. + * cse.c: Likewise. + * function.c: Likewise. + * emit-rtl.c: Likewise. + +Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION + call. + +1999-08-24 Herman A.J. ten Brugge + + * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn + exactly. + +Mon Aug 23 23:35:52 1999 Matthias Klose + + * cpp.texi: Add a node documenting macro varargs (copied + from extend.texi). + +1999-08-23 22:23 -0700 Zack Weinberg + + * cppspec.c: Put a null pointer at the end of the new argv. + +Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in: Remove code to select/de-select the haifa + scheduler. Every scheduled port gets haifa now. + * configure: Rebuilt. + * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs. + * sched.c Deleted. + * Makefile.in: Corresponding changes. + +Mon Aug 23 16:04:13 1999 Bernd Schmidt + + * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer. + All callers changed. + (prepare_float_lib_cmp): Likewise. + Use FLOAT_LIB_COMPARE_RETURNS_BOOL. + * expr.h (emit_float_lib_cmp): Delete declaration. + * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document. + * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define. + * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons + specially. + (cmptf): Now conditional on TARGET_HARD_QUAD. + +Fri Aug 20 17:52:27 1999 Jim Wilson + + * resource.c (mark_target_live_regs): Use + PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. + +Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi + + * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify. + + * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise. + + * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'. + +Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi + + * rtl.h (rtx_format): Constify a char*. + + * rtl.c (rtx_format): Likewise. + (copy_rtx, copy_most_rtx, read_rtx): Likewise. + (init_rtl): Use accessor macro, not `rtx_format'. + + * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a + char*. + + * caller-save.c (mark_referenced_regs): Likewise. + + * combine.c (subst, make_compound_operation, known_cond, + gen_rtx_combine, update_table_tick, get_last_value_validate, + use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise. + + * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p, + refers_to_p, canon_reg, fold_rtx, cse_process_notes, + count_reg_usage): Likewise. + + * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags): + Likewise. + + * final.c (leaf_renumber_regs_insn): Likewise. + + * flow.c (mark_used_regs, find_use_as_address, dump_flow_info, + dump_edge_info, count_reg_references): Likewise. + + * function.c (fixup_var_refs_1, walk_fixup_memory_subreg, + fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1): + Likewise. + + * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p, + oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs, + add_label_notes): Likewise. + + * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask, + clear_struct_flag, count_sub_rtxs, count_alternatives, + compares_alternatives_p, contained_in_p, walk_attr_value, + write_expr_attr_cache): Likewise. + + * genconfig.c (walk_insn_part): Likewise. + + * genemit.c (max_operand_1, gen_exp): Likewise. + + * genextract.c (walk_rtx): Likewise. + + * genflags.c (num_operands): Likewise. + + * genoutput.c (scan_operands): Likewise. + + * genpeep.c (match_rtx): Likewise. + + * genrecog.c (add_to_sequence): Likewise. + + * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths): + Likewise. + + * integrate.c (save_constants, copy_for_inline, + copy_rtx_and_substitute, subst_constants, restore_constants): + Likewise. + + * jump.c (mark_jump_label, invert_exp, redirect_exp, + rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise. + + * local-alloc.c (contains_replace_regs, memref_referenced_p): + Likewise. + + * loop.c (record_excess_regs, rtx_equal_for_loop_p, + add_label_notes, replace_call_address, count_nonfixed_reads, + invariant_p, find_single_use_in_loop, find_mem_givs, + find_life_end, maybe_eliminate_biv_1, update_reg_last_use): + Likewise. + + * print-rtl.c (reg_names, print_rtx): Likewise. + + * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. + + * reg-stack.c (stack_regs_mentioned_p, record_label_references, + record_reg_life_pat, swap_rtx_condition, goto_block_pat, + print_blocks): Likewise. + + * regclass.c (fix_register, record_address_regs, + reg_scan_mark_refs): Likewise. + + * regmove.c (stable_but_for_p): Likewise. + + * reload.c (loc_mentioned_in_p, operands_match_p, + find_reloads_toplevsubst_reg_equivs, find_reloads_address_1, + copy_replacements, refers_to_regno_for_reload_p, + refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p, + reload_when_needed_name, reg_class_names, debug_reload_to_stream): + Likewise. + + * reload1.c (eliminate_regs, scan_paradoxical_subregs, + delete_address_reloads_1, count_occurrences, + reload_cse_mem_conflict_p, reload_combine_note_use, + add_auto_inc_notes): Likewise. + + * resource.c (mark_referenced_resources, mark_set_resources): + Likewise. + + * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p, + reg_mentioned_p, regs_set_between_p, modified_between_p, + modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p, + rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p, + may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs, + jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise. + + * sched.c (sched_analyze_2, attach_deaths): Likewise. + + * stupid.c (stupid_mark_refs): Likewise. + + * unroll.c (remap_split_bivs): Likewise. + + * varasm.c (mark_constants): Likewise. + + * a29k/a29k.c (uses_local_reg_p): Likewise. + + * alpha/alpha.c (summarize_insn): Likewise. + + * arm/arm.c (symbol_mentioned_p, label_mentioned_p, + eliminate_lr2ip): Likewise. + + * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise. + + * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx, + reg_mentioned_in_mem): Likewise. + + * ns32k/ns32k.c (global_symbolic_reference_mentioned_p, + symbolic_reference_mentioned_p): Likewise. + + * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise. + + * sh/sh.c (regs_used, mark_use): Likewise. + + * vax/vax.c (vax_rtx_cost): Likewise. + +Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi + + * machmode.h (mode_name): Constify a char*. + + * rtl.c (mode_name): Likewise. + + * genopinit.c (gen_insn): Use accessor macro, not `mode_name'. + + * optabs.c (init_libfuncs): Constify a char*. + + * print-tree.c (mode_name): Remove redundant declaration. + (print_node): Use accessor macro, not `mode_name'. + + * reload1.c (dump_needs): Constify a char*. Use accessor macro, + not `mode_name'. + (new_spill_reg): Constify a char*. + + * tree.c (mode_name): Remove redundant declaration. + +Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi + + * rtl.c (rtx_name): Constify a char*. + + * rtl.h (rtx_name, fix_sched_param): Likewise. + + * gmicro/gmicro.c (rtx_name): Remove redundant declaration. + (mypr): Use accessor macro, not `rtx_name'. + + * genemit.c (print_code): Constify a char*. + + * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'. + + * genpeep.c (print_code): Constify a char*. + + * genrecog.c (print_code): Likewise. + + * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct, + end_bb): Add static prototype. + (draw_edge): Constify a char*. + (end_bb): Remove unused parameter. + + * haifa-sched.c (fix_sched_param, safe_concat, print_exp + print_block_visualization): Constify a char*. + +Fri Aug 20 15:02:10 1999 Mark Mitchell + + * c-common.c (c_get_alias_set): Update comment. + +1999-08-20 Andreas Jaeger + + * linux.h (LIB_SPEC): Added. + +Fri Aug 20 22:32:17 1999 Michael Hayes + + * config/c4x/c4x.h (STARTFILE_SPEC): Don't def. + +1999-08-19 18:43 -0700 Zack Weinberg + + * tree.c (expr_check): Fix typo in last change. + +1999-08-19 14:44 -0700 Zack Weinberg + + * rtl.def (NOTE): Change format to "iuu0n". + (ADDR_DIFF_VEC): Change format to "eEee0". + (ADDRESSOF): Change format to "eit". + + * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion. + (RTVEC_ELT): Change to match. + (XVECEXP): Use XVEC and RTVEC_ELT. + (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER, + ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT. + (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES, + CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST, + TRAP_CONDITION, TRAP_CODE): Use XEXP. + (INTVAL): Use XWINT. + (ADDRESSOF_DECL): Use XTREE. + (SET_ADDRESSOF_DECL): Delete. + (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL, + NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been + ifdefed out since 2.6 at least. + (gen_rtvec_vv): Delete prototype. + + * rtl.h (rtvec_alloc): rt->elem is now an array of rtx, + not rtunion. + (copy_most_rtx): Handle 't' format letter. + * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx. + (gen_rtvec_vv): Delete function. All callers changed to use + gen_rtvec_v instead. + * print-rtl.c (print_rtx): Move special casing of NOTEs to + the '0' format letter. + + * function.c (gen_mem_addressof): Don't use + SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF + instead. + * integrate.c (copy_rtx_and_substitute): Likewise. + Copy 't' slots with XTREE. + (subst_constants): Treat 't' slots like '[swi]' slots. + * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots. + * jump.c (rtx_equal_for_thread_p): Likewise. + * rtlanal.c (rtx_equal_p): Likewise. + * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes + only four arguments. + * gengenrtl.c (type_from_format): Provide correct types for + 'b' and 't' slots. + + + * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK): + If a recent gcc is in use (always in stage2 and beyond), use + statement expressions, so we don't make a function call unless + the check fails. Evaluate arguments exactly once. + (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1, + TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1): + Delete. + (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that + they evaluate their arguments exactly once, irrespective of + the compiler in use. + + * tree.c [ENABLE_CHECKING]: Define whichever set of functions + is used by the currently-enabled check macros. This is: + (tree_check_failed, tree_class_check_failed): For gcc. + (tree_check, tree_class_check, cst_or_constructor_check, + expr_check): For other compilers. + + * gencheck.c: Do not define any *_CHECK1 macros. + +Thu Aug 19 14:42:38 1999 Mike Stump + Mark Mitchell + + * c-common.c (c_get_alias_set): Fix support for pointers and + references. + +Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com) + + * alias.c: Include tree.h. + (nonlocal_reference_p, mark_constant_function): New functions. + * flow.c (life_analysis): Call mark_constant_function. + * rtl.h (mark_constant_function): Declare it. + +Thu Aug 19 15:02:01 1999 Nick Clifton + + * config/rs6000/rs6000.c (rs6000_override_options): Fix test for + unrecognizable switches. + +Wed Aug 18 23:31:57 1999 J"orn Rennecke + + * loop.c (recombine_givs): Set ix field after sorting. + (recombine_givs): Remove bogus index / giv lockstep looping. + +Wed Aug 18 18:20:40 1999 Bernd Schmidt + + * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition + on CODE. + (emit_store_flag_force): Use do_compare_rtx_and_jump. + (do_cmp_and_jump): Formatting fixes. + * expr.c (do_compare_and_jump): Renamed from compare; changed to call + do_compare_rtx_and_jump instead of compare_from_rtx. + (do_compare_rtx_and_jump): New function; mostly copied from + compare_from_rtx. + (do_jump_for_compare): Delete. + (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and + MIN_EXPR. + (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead + of compare/do_jump_for_compare pairs. + (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx. + (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of + compare_from_rtx/do_jump_for_compare pairs. + (do_jump_by_parts_equality): Likewise. + (do_jump_by_parts_equality_rtx): Likewise. + * expr.h (do_compare_rtx_and_jump): Declare. + * optabs.c (prepare_cmp_insn): New function, contains most of the code + that used to be in emit_cmp_insn. + (cmp_available_p): New function. + (prepare_operand): New function. + (emit_cmp_and_jump_insn_1): New function, contains some code that used + to be in emit_cmp_insn. + (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some + parameters to be pointers; don't emit final compare but modify some of + the values pointed to by the args so the caller can perform the + correct comparison. + (expand_binop): Call emit_store_flag_force with signed forms of + comparison code. + (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/ + emit_jump_insn pair. + (emit_cmp_and_jump_insn): Use prepare_cmp_insn and + emit_cmp_and_jump_insn_1. Call emit_queue. + (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL + arg. + * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a + jump sets cc0 before deleting it. + * integrate.c (expand_inline_function): Likewise. + * unroll.c (unroll_loop): Similar changes in several places. + (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0 + before deleting it. + +Wed Aug 18 06:37:44 1999 Bernd Schmidt + + * Makefile.in (insn-recog.o): Update dependencies. + * genrecog.c (main): Make generated file include "function.h". + +Sat Aug 14 00:54:57 1999 Geoffrey Keating + + * cse.c (cse_insn): Call never_reached_warning when a jump is + changed to be unconditional. + * flags.h: Declare warn_notreached. + * flow.c (delete_block): Call never_reached_warning when + a block is deleted. + * jump.c (delete_barrier_successors): Call never_reached_warning + when we delete everything after a BARRIER. + (never_reached_warning): New function. + * rtl.h: Declare never_reached_warning. + * toplev.c (warn_notreached): New variable. + (lang_independent_options): Set warn_notreached + when -Wunreachable-code. + (compile_file): We need line numbers for -Wunreachable-code. + +Tue Aug 17 22:06:11 1999 Jan Hubicka + + * haifa-sched.c (insn_unit): Fix typo on out of range test. + * sched.c (insn_unit): Likewise. + +Tue Aug 17 21:57:23 1999 Andreas Schwab + + * combine.c (distribute_notes): Handle REG_EH_RETHROW. + +Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod + + * flow.c (create_edge_list): Use xmalloc, not malloc. + +Tue Aug 17 01:40:54 1999 Loren Rittle + + * fixinc/inclhack.def (no_double_slash): Do not trash single-line + C-style comments. Do not lose the character before double slash. + +Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod + + * basic-block.h (struct edge_list): Stucture to maintain a vector + of edges. + (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, + INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list. + (create_edge_list, free_edge-List, print_edge_list, verify_edge_list): + New function prototypes. + * flow.c (create_edge_list): Function to create an edge list. + (free_edge_list): Discards memory used by an edge list. + (print_edge_list): Debug output showing an edge list. + (verify_edge_list): Internal consistency check for an edge list. + (find_edge_index): Function to find an edge index for a pred and succ. + +Mon Aug 16 11:56:36 1999 Mark Mitchell + + * tree.c (type_hash_add): Use permalloc to allocate nodes in the + hashtable. + +Mon Aug 16 17:04:15 1999 Jorn Rennecke + + * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define. + +Fri Aug 13 15:20:43 1999 Gerald Pfeifer + + * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +Fri Aug 13 10:21:28 1999 Nick Clifton + + * toplev.c (rest_of_compilation): Allow machine dependent + reorganization pass to place information into the RTL dump + file if it so wishes. + +Sun Aug 15 12:41:21 1999 Jim Wilson + + * explow.c (hard_function_value): Use VOIDmode instead of + MAX_MACHINE_MODE. + * stmt.c (expand_return): Likewise. + * stor-layout.c (get_best_mode): Likewise. + + * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output + emit call instead of emit_insn call. + +Sat Aug 14 15:04:06 1999 Mumit Khan + + * configure.in: Handle --disable/enable-win32-registry. + * install.texi: Document --disable/enable-win32-registry. + * acconfig.h (ENABLE_WIN32_REGISTRY): New macro. + (WIN32_REGISTRY_KEY): New macro. + * prefix.c: Use to enable/disable win32-specific code. + (lookup_key): Use versioned key. + * configure: Regenerate. + * config.in: Likewise. + +Fri Aug 13 17:41:55 1999 Jason Merrill + + * cpplib.c (read_line_number): New fn, split out of... + (do_line): Here. + +Fri Aug 13 14:18:27 1999 Gavin Romig-Koch + + tree.c (lang_unsave_expr_now) : New. + (unsave_expr_now): Call lang_unsave_expr_now. + tree.h (lang_unsave_expr_now) : New. + +Fri Aug 13 00:49:46 1999 Jason Merrill + + * toplev.c (flag_new_exceptions): On by default. + +1999-08-13 Michael Meissner + + * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B. + +Fri Aug 13 01:29:57 1999 Alexandre Oliva + + * dwarfout.c (fundamental_type_code): Return FT_boolean for + INTEGER_TYPE with precision==1, it's __java_boolean. + +Thu Aug 12 23:51:04 1999 J"orn Rennecke + + * global.c (prune_preferences): Move some invariants out of the + inner loop. + +Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com) + + * configure.in (alpha*-dec-osf*): Add osf5. + +Sun Aug 1 22:24:03 1999 Philip Blundell + + * configure.in: Rework handling of ARM GNU/Linux slightly. + (arm*-*-linux-gnuoldld): New target. + * configure: Regenerate. + * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and + arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete. + * config/arm/linux-oldld.h: New file. + * config/arm/linux-elf26.h: Don't include linux-elf.h. + (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC): + Don't define. + * config/arm/linux-elf.h (ASM_SPEC): Define. + (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC, + SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions + for 26-bit APCS and old linker. + (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or + `arm_elf'. + (FP_DEFAULT): Define to FP_SOFT3 for all machines. + * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__'; + don't define `arm' or `arm_elf'. + * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS, + MULTILIB_DIRNAMES): Define. Fix typo in comment. + +Thu Aug 12 10:14:47 1999 Andreas Schwab + + * rtl.texi: Fix typo. + +Wed Aug 11 23:50:57 1999 Jason Merrill + + * invoke.texi (C++ Dialect Options): Add -fms-extensions. + +Wed Aug 11 12:59:37 1999 Mark Mitchell + + * extend.texi (C++ Signatures): Remove node. + * invoke.texi: Remove discussion of -fhandle-signatures, + signature, sigof, __signature__, and __sigof__. + +Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (JAVAGC): Removed. + +Wed Aug 11 02:13:26 1999 Mumit Khan + + * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define. + +1999-08-11 Mark Elbrecht + + * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define. + +1999-08-11 Richard Earnshaw (rearnsha@arm.com) + + * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of + a register that is already known to be a pointer. + +1999-08-11 Bruce Korb + + * fixinc/inclhack.tpl: Only install assert.h conditionally. + * fixinc/inclhack.sh: Regenerated. + * fixinc/fixincl.sh: Regenerated. + +Wed Aug 11 00:34:22 1999 Joe Buck + + * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi. + Fix documentation of -ansi flag to describe its C++ behavior. + Remove bogus reference to GCC 2.9. + +Tue Aug 10 17:19:02 1999 Jim Wilson + + * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on + note if it is non-NULL. + +Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod + + * except.h (eh_nesting_info): Add new structure definition. + (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes. + (reachable_handlers, update_rethrow_references): Add function + prototypes. + * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes + a rethrow symbol instead of an integer exception region number. + * flow.c (Make_edges): Use new exception nesting routines to determine + which handlers are reachable from a CALL or asynchronous insn. + Don't add an edge for calls with a REG_EH_REGION of -1 to non-local + goto receivers. + (delete_eh_regions): Update rethrow labels, and don't delete + regions which are the target of a rethrow. + * except.c (struct func_eh_entry): Add rethrow_ref field, now we can + avoid overloading the SYMBOL_REF_USED flag. + (rethrow_symbol_map): Use new rethrow_ref field. + (rethrow_used): Use new rethrow_ref field. + (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead + of an integer. Fix formatting. + (output_exception_table_entry): Use new rethrow_ref field. + (can_throw): Check for EH_REGION_NOTE before deciding + whether a CALL can throw or not. + (scan_region): Call rethrow_used() instead of accessing data structure. + (update_rethrow_references): New function to make sure only regions + which are still targets of a rethrow are flagged as such. + (process_nestinfo): New static function to initialize a handler + list for a specific region. + (init_eh_nesting_info): New function to allocate and initialize + the list of all EH handlers reachable from all regions. + (reachable_handlers): New function to retrieve the list of handlers + reachable from a specific region and insn. + (free_eh_nesting_info): New function to dispose of a list of + reachable handlers. + +Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod + + * flow.c (split_edge): Set JUMP_LABEL field. + (commit_one_edge_insertion): Set head correctly for insert_before. + When inserting insns, update insn block numbers if allocated. + +Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi + + * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type, + retry_incomplete_types): Add static prototype. + (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING, + dwarf_tag_name, dwarf_attr_name, dwarf_form_name, + dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string, + dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line, + dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef): + Constify a char*. + + * dwarf2out.h (dwarf2out_define, dwarf2out_undef, + dwarf2out_start_source_file, dwarf2out_line): Likewise. + +Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi + + * output.h (assemble_name): Constify a char*. + + * varasm.c (UNIQUE_SECTION, assemble_start_function, + assemble_variable, assemble_name): Likewise. + + * dwarf2out.c (ASM_NAME_TO_STRING): Likewise. + + * arm/pe.c (arm_pe_unique_section): Likewise. + + * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise. + + * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise. + + * i386/interix.c (i386_pe_unique_section): Likewise. + + * i386/win32.h (STRIP_NAME_ENCODING): Likewise. + + * i386/winnt.c (i386_pe_unique_section): Likewise. + + * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. + + * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise. + + * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise. + + * pa/pa.c (output_call): Likewise. + + * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise. + + * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise. + + * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc): + Likewise. + + * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING): + Likewise. + + * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + + * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT, + STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise. + + * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise. + +Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi + + * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy. + +Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi + + * tree.h (lang_identify): Constify a char*. + (print_error_function): Add extern prototype. Constify a char*. + + * c-lang.c (lang_identify): Constify a char*. + + * objc/objc-act.c (lang_identify): Constify a char*. + +Mon Aug 9 16:21:53 1999 Bernd Schmidt + + * genpeep.c (main): Make generated file include "function.h". + * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case. + +Mon Aug 9 10:08:50 1999 Bernd Schmidt + + * Makefile.in: Update dependencies. + * alias.c: Include "function.h" + * c-decl.c: Likewise. + * caller-save.c: Likewise. + * calls.c: Likewise. + * combine.c: Likewise. + * cse.c: Likewise. + * explow.c: Likewise. + * final.c: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * optabs.c: Likewise. + * profile.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reload.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * sched.c: Likewise. + * stupid.c: Likewise. + * config/1750a/1750a.c: Likewise. + * config/a29k/a29k.c: Likewise. + * config/arc/arc.c: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/thumb.c: Likewise. + * config/c4x/c4x.c: Likewise. + * config/clipper/clipper.c: Likewise. + * config/convex/convex.c: Likewise. + * config/fx80/fx80.c: Likewise. + * config/i860/i860.c: Likewise. + * config/m68k/m68k.c: Likewise. + * config/m88k/m88k.c: Likewise. + * config/mips/mips.c: Likewise. + * config/pdp11/pdp11.c: Likewise. + * config/pyr/pyr.c: Likewise. + * config/romp/romp.c: Likewise. + * config/sh/sh.c: Likewise. + * config/tahoe/tahoe.c: Likewise. + * config/vax/vax.c: Likewise. + * config/we32k/we32k.c: Likewise. + * config/sparc/sparc.c: Include "function.h". + (mem_min_alignment): Test current_function rather than + regno_pointer_align. + * config/pa/pa.c: Likewise. + (compute_frame_size): Delete declaration of + current_function_outgoing_args_size. + * config/arc/arc.h (current_function_varargs): Delete declaration. + * config/elxsi/elxsi.h (current_function_calls_alloca): Delete + declaration. + * config/i370/i370.h (current_function_outgoing_args_size): Delete + declaration. + * config/i386/i386.h (FINALIZE_PIC): Delete declaration of + current_function_uses_pic_offset_table. + * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration + of current_function_returns_pointer. + * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise. + * config/m88k/m88k.c: Include "function.h" + (call_used_regs, current_function_pretend_args_size, + current_function_outgoing_args_size, frame_pointer_needed): Delete + declarations. + * config/m88k/m88k.h (current_function_pretend_args_size): Delete + declaration. + * config/mips/mips.h (current_function_calls_alloca): Delete + declaration. + * config/mn10200/mn10200.h (current_function_needs_context, + rtx_equal_function_value_matters): Delete declarations. + * config/ns32k/ns32k (current_function_uses_pic_offset_table, + flag_pic): Delete declarations. + * config/pa/pa.h (current_function_pretend_args_size, + current_function_decl): Delete declarations. + * config/pa/som.h (current_function_varargs): Delete declaration. + * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete + declaration. + * config/pyr/pyr.h (current_function_pretend_args_size, + current_function_args_size, current_function_calls_alloca): Delete + declarations. + * config/sh/sh.h (current_function_varargs): Delete declaration. + * config/sparc/sparc.h (current_function_outgoing_args_size, + current_function_calls_alloca, current_function_decl): Delete + declarations. + * config/spur/spur.h (current_function_pretend_args_size, + current_function_calls_alloca): Delete declarations. + * config/v850/v850.c (current_function_outgoing_args_size): Delete + declaration. + * config/vax/vms.h (current_function_name): Delete declaration. + * gcse.c: Include "function.h". + (current_function_name, current_function_calls_setjmp): Delete + declarations. + * haifa-sched.c: Include "function.h". + (forced_labels): Delete declaration. + * jump.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * genemit.c (main): Make generated file include function.h. + * genoutput.c (output_prologue): Likewise. + + * builtins.c (saveregs_value, apply_args_value): Delete variables. + * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn, + sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename, + regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align, + regno_reg_rtx, sequence_stack): Delete variables. Add accessor + macros for some of them. + (emit_filename, emit_lineno): Delete declarations. + (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access + regno_pointer_* variables through current_function. + (gen_inline_header_rtx): Delete function. + (save_emit_status): Delete function. + (set_new_last_label_num): New function. + (clear_emit_caches): New function. + (restore_emit_status): Just clear last_labelnum and call + clear_emit_caches. + (get_last_insn_anywhere): Variable sequence_stack is now accessed + through macro seq_stack. + (add_insn_after): Likewise. + (add_insn_before): Likewise. + (remove_insn): Likewise. + (pop_topmost_sequence): Likewise. + (in_sequence_p): Likewise. + (start_sequence_for_rtl_expr): Likewise. + (start_sequence): Likewise, and likewise for + sequence_rtl_expr/seq_rtl_expr. + (push_topmost_sequence): Likewise. + (end_sequence): Likewise. + (init_virtual_regs): Now takes a "struct emit_status *" argument. + All callers changed. Store into that pointer instead of globals. + (init_emit): Allocate emit elt of current_function. + Changes for sequence_rtl_expr/sequence_stack renaming. + Call clear_emit_caches instead of doing it in-line. + Access regno_pointer_* variables through current_function. + (init_emit_once) Don't clear sequence_stack. + + * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain): + Delete variables. + (arg_pointer_save_area): Delete declaration. + (finish_expr_for_function): Renamed from init_queue; no longer static. + (init_expr): Don't call init_queue. + (save_expr_status, restore_expr_status): Delete functions. + (expand_expr): Changes to reflect new layout of struct function. + Don't access current_function_check_memory_usage when current_function + is 0. + * expr.h (forced_labels, save_expr_regs, saveregs_value, + apply_args_value, current_function_calls_alloca, inhibit_defer_pop, + current_function_outgoing_args_size, current_function_arg_offset_rtx, + current_function_uses_const_pool, function_call_count, + current_function_uses_pic_offset_table, nonlocal_labels, + current_function_internal_arg_pointer, nonlocal_goto_stack_level, + current_function_check_memory_usage, nonlocal_goto_handler_slots, + pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete + declarations. + (finish_expr_for_function): Declare. + * flags.h (current_function_has_nonlocal_label, + current_function_has_nonlocal_goto, current_function_is_thunk, + current_function_has_computed_jump): Delete declarations. + * flow.c (forced_labels): Delete declaration. + * function.c (current_function_pops_args, + current_function_returns_struct, current_function_returns_pcc_struct, + current_function_needs_context, current_function_calls_setjmp, + current_function_calls_longjmp, current_function_has_nonlocal_label, + current_function_has_nonlocal_goto, current_function_is_thunk, + current_function_has_computed_jump, current_function_calls_alloca, + current_function_contains_functions, current_function_returns_pointer, + current_function_epilogue_delay_list, current_function_args_size, + current_function_pretend_args_size, current_function_arg_offset_rtx, + current_function_outgoing_args_size, current_function_varargs, + current_function_stdarg, current_function_args_info, cleanup_label, + current_function_name, current_function_uses_const_pool, + current_function_instrument_entry_exit, current_function_return_rtx, + current_function_uses_pic_offset_table, nonlocal_labels, + current_function_internal_arg_pointer, current_function_cannot_inline, + current_function_check_memory_usage, function_call_count, + nonlocal_goto_handler_slots, nonlocal_goto_handler_labels, + nonlocal_goto_stack_level, return_label, save_expr_regs, + stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots, + tail_recursion_reentry, arg_pointer_save_area, frame_offset, + context_display, trampoline_list, parm_birth_insn, invalid_stack_slot, + last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr, + temp_slot_level, var_temp_slot_level, target_temp_slot_level): + Delete variables. + (push_function_context_to): Don't save them. Don't call + save_storage_status, save_emit_status or save_expr_status. + (pop_function_context_from): Don't restore them. Don't call + restore_storage_status or restore_expr_status. + (get_func_frame_size): New function. + (get_frame_size): Use it. + (assign_outer_stack_local): Reflect some member name changes in struct + function. + (put_reg_into_stack): Likewise. + (assign_stack_temp_for_type): sequence_rtl_expr was renamed to + seq_rtl_expr. + (fixup_var_refs): Likewise. + (fix_lexical_addr): Likewise. + (trampoline_address): Likewise. + (prepare_function_start): Clear field inlinable of current_function. + (init_function_for_compilation): New function. + (expand_dummy_function_end): New function. + (expand_function_end): Call finish_expr_for_function. + * function.h (struct emit_status): New; fields moved here from struct + function and from global variables. Add accessor macros for some of + the fields. + (struct expr_status): Likewise. + (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h. + (struct function): Add fields expr and emit, inlinable, inl_emit, + original_arg_vector, original_decl_initial, inl_last_parm_insn, + inl_max_label_num. Add many comments. + Add accessor macros for all elts of struct function that no longer + have a global variable. + (cleanup_label, return_label, frame_offset, tail_recursion_label, + tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain, + stack_slot_list): Delete declarations. + (get_func_frame_size): Declare. + (save_expr_status, restore_expr_status, save_emit_status, + save_storage_status, restore_storage_status): Delete declarations. + (init_virtual_regs): Declare. + * output.h (current_function_pops_args, + current_function_returns_struct, current_function_returns_pcc_struct, + current_function_needs_context, current_function_calls_setjmp, + current_function_calls_longjmp, current_function_calls_alloca, + current_function_has_nonlocal_label, current_function_varargs, + current_function_has_computed_jump, current_function_returns_pointer, + current_function_contains_functions, current_function_args_size, + current_function_pretend_args_size, current_function_stdarg, + current_function_outgoing_args_size, current_function_args_info, + current_function_name, current_function_return_rtx, + current_function_epilogue_delay_list, + current_function_uses_const_pool, current_function_cannot_inline): + Delete declarations. + * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length, + regno_reg_rtx): Delete declaration. + (REGNO_POINTER_FLAG): Delete macro. + * stmt.c (expand_goto): Changes to reflect that some fields in struct + function were renamed. + * stor-layout.c (save_storage_status, restore_storage_status): Delete + functions. + * toplev.c: Include "function.h". + (current_function_decl): Delete declaration. + (compile_file): Call init_dummy_function_start and + expand_dummy_function_end around some initializations that need to + emit rtl. + (rest_of_compilation): Use DECL_SAVED_INSNS properly. + Call init_function_for_compilation. + * unroll.c: Include "function.h" + (unroll_loop): Access regno_pointer_* variables through + current_function. + + * tree.h (struct tree_decl): Add elt f to saved_insns member. + (DECL_SAVED_INSNS): use it. + (expand_dummy_function_end): Declare. + (init_function_for_compilation): Declare. + * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now + that it's no longer an INLINE_HEADER. + (expand_call): Likewise. + * integrate.c (finish_inline): Delete function. + (max_parm_reg, parm_reg_stack_loc): Delete declarations. + (initialize_for_inline): Delete min_labelno, max_labelno and max_reg + args. Don't generate an INLINE_HEADER rtx, just return the arg + vector. All callers changed. + (save_for_inline_copying): Create a duplicate struct emit_status to + hold the emit state for compiling the current function. Use this and + the other new fields in struct function that are for integration + instead of an INLINE_HEADER. + Use memcpy instead of bcopy. + Store the current struct function in DECL_SAVED_INSNS of fndecl. + (save_for_inline_nocopy): Similar changes, except no new emit_status + is needed here. + (expand_inline_function): Get information from function structure, + not from an inline header rtx. + (output_inline_function): Lose code to extract the necessary + information from an inline header; simply put back the function + structure into current_function. Clear its inlinable elt. + * rtl.def (INLINE_HEADER): Delete. + * rtl.h: Delete all accessors for an INLINE_HEADER. + (gen_inline_header_rtx): Delete declaration. + (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels): + Delete declarations. + (REGNO_POINTER_ALIGN): Delete. + (clear_emit_caches): Declare. + (set_new_last_label_num): Declare. + +Mon Aug 9 01:52:24 1999 Jason Merrill + + * print-tree.c (print_node): Print base for OFFSET_TYPEs. + + * except.c (expand_eh_region_start_for_decl): Always start a new block. + * stmt.c (is_eh_region): Make sure current_function is present, too. + +Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when + for 64bit PA targets. + + * pa.h (SELECT_SECTION): Define. + * som.h (SELECT_SECTION): Delete. + +Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi + + * alias.c (init_alias_analysis): Wrap call to + `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue. + +1999-08-07 Bruce Korb + + * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's + contains an asm comment with an apostrophe + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +Sat Aug 7 19:37:07 1999 Richard Henderson + + * function.c (init_function_start): Clear prologue & epilogue. + (prologue_epilogue_contains): New function. + * alias.c (init_alias_analysis): Use it. + * rtl.h (prologue_epilogue_contains): Declare it. + +Sat Aug 7 19:32:16 1999 Richard Henderson + + * jump.c (onlyjump_p): New function. + * rtl.h: Declare it. + * flow.c (delete_unreachable_blocks): Use onlyjump_p instead + of condjump_p in calling tidy_fallthru_edge and merge_blocks. + +Sat Aug 7 17:09:36 1999 Richard Henderson + + * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET + to invert loops. Simplify block scanning. + +Sat Aug 7 02:11:13 1999 Bernd Schmidt + + * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs. + (cprop_insn): Treat SYMBOL_REFs like CONST_INTs. + +1999-08-07 Jonathan Larmour + + * config/sparc/liteelf.h: New file to support sparclite-elf target + * config/sparc/t-sp86x: New file to support sparc86x targets + * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target + * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target + * configure.in: Support above target triplets + * configure: Regenerated + +Sat Aug 7 01:39:27 1999 Philippe De Muyter + + * fixinc/server.c (server_setup): Do not prefix function used as + parameter with `&'. + +Sat Aug 7 00:21:20 1999 Richard Henderson + + * alpha.md (movhi and movqi patterns): Correct predicate for !BWX. + Remove fp reg alternatives. + +Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com) + + * Makefiin (TAROUTOPTS): Kill. + (install-headers-tar): Use "xpf" for tar headerfile extraction + * i370/x-oe (TAROUTOPTS): Delete. + * m68k/x-apollo68 (TAROUTOPTS): Delete. + * m68k/x-hp320 (TAROUTOPTS): Delete. + * m68k/x-hp320g (TAROUTOPTS): Delete. + * gcc.texi: Update bug reporting text. + +1999-08-6 Herman A.J. ten Brugge + + * reg-stack.c (change_stack) Fixed problem with negative array index. + +Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com) + + * extend.texi, install.texi: Fix spelling mistakes. + + * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete. + (s-attrtab); No longer try to use pre-made insn-attrtab file. + * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and + PREMADE_ATTRTAB_MD. + * mips/t-ecoff: Likewise. + * mips/t-elf: Likewise. + * mips/t-mips: Likewise. + * mips/t-osfrose: Likewise. + * mips/t-r3900: Likewise. + * mips/t-svr3: Likewise. + * mips/t-svr4: Likewise. + * mips/t-ultrix: Likewise. + + * gcc.texi: Document recommend means to provide software floating + point libraries in libgcc.a + +1999-08-06 Jason Merrill + + * c-lex.c (yylex): We can have a number with no digits. + +Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com) + + * jump.c (delete_prior_computation): New function, broken + out of delete_computation. Check for side effects with + side_effects_p instead of FIND_REG_INC_NOTE. Handle + multi-word hard registers. + (delete_computation): Use it. Check for side effects with + side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a + missing REG_DEAD note for a register which is both set and + used by an insn. + +Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com) + + * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete. + (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise. + (ASM_FILE_START): Import _mcount with the right type. + (ASM_DECLARE_FUNCTION_NAME): Define. + (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. + * pa.c (output_function_prologue): Always emit the function's label + here. + * pa.h (TEXT_SPACE_P): Define. + (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. + (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise. + * som.h (TEXT_SPACE_P): Delete. + (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. + (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise. + +Thu Aug 5 19:29:39 1999 Jim Wilson + + * expr.c (emit_group_load): Allow src to be a CONCAT. + +Thu Aug 5 22:27:15 1999 J"orn Rennecke + + * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop. + (___mulsi3): Use '!' comment character. + +Thu Aug 5 13:34:14 1999 Bernd Schmidt + + * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *". + +Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) + + * gcc.c: Update URLs and mail addresses. + * gcc.texi: Likewise. + +Thu Aug 5 01:14:13 1999 Daniel Jacobowitz + + * rs6000.c (current_file_function_operand): Return zero for + weak functions. + (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for + weak symbols. + * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG + for weak symbols. + +Thu Aug 5 00:56:30 1999 Geoffrey Keating + + * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always + allocate space in the stack frame for the PIC register. + +Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.md (xordi3, anddi3): These patterns are not available on + the coldfire. + +Wed Aug 4 23:39:20 1999 Mark Mitchell + + * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules. + (PUT_REAL): Likewise. + +Wed Aug 4 20:45:04 1999 J"orn Rennecke + + * final.c (shorten_branches): Don't add an alignment for loops + that have no label inside. + +Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap + prototypes in macro HAVE_cmpstrsi. + + * cpplib.c (cpp_get_token): Remove unused label `op3'. + + * emit-rtl.c (operand_subword): Remove unused variable + `bits_per_word'. + + * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'. + + * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING. + +Wed Aug 4 13:29:23 1999 Zack Weinberg + + * cpphash.c (macroexpand): Delete leading whitespace when arg + is concatenated before. + (unsafe_chars): Correct test for whether + and - can extend a + token. + + * cppinit.c (cpp_start_read): Do dependencies for + -include/-imacros files also. + + * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother + tokenizing non-directive lines. + (cpp_expand_to_buffer): Temporarily disable no-output mode. + * cppmain.c: In no-output mode, just call cpp_scan_buffer for + the input file. + +Wed Aug 4 12:53:44 1999 Jason Merrill + + * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too. + + * c-lex.c: Sync with C++ frontend. + (linemode): New variable. + (parse_float): imag, conversion_errno, and type are output only. + (yylex): Adjust. Move initial '.' case into main switch. + Use linemode. + (handle_generic_pragma): Just deal with tokens. + (readescape): Use ISXDIGIT and ISGRAPH. + * c-parse.in: Add END_OF_LINE token. + + * c-lex.c (lang_init): Generalize. + (nextchar): Remove. Replace uses with UNGETC. + (skip_white_space): Handle linemode here. Optimize for cpplib. + (skip_white_space_on_line): Remove. + (extend_token_buffer_to): New fn. + (extend_token_buffer): Use it. + (read_line_number, check_newline): Just deal with tokens. + (token_getch, token_put_back): New fns. + (yylex): Use them. More cpplib optimizations. Simplify. + +Wed Aug 4 12:53:44 1999 Michael Tiemann + Jason Merrill + + * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE. + (consume_string): Make this smart about USE_CPPLIB. + (check_newline): Rewrite to be intelligent about USE_CPPLIB. + (yylex): Rewrite to be intelligent about USE_CPPLIB. + Also, clean up cases where we redundantly set token_buffer[0]. + (read_line_number): New fn. + (ignore_escape_flag): New variable. + +Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com) + + * a29k/t-a29kbare: Fix some comments. + (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c + (FPBIT, DPBIT): Define. + * a29k/t-vx29k: Likewise. + * arc/t-arc: Likewise. + * arm/t-arm-elf: Likewise. + * arm/t-bare: Likewise. + * arm/t-pe: Likewise. + * arm/t-pe-thumb: Likewise. + * arm/t-semi: Likewise. + * arm/t-thumb: Likewise. + * arm/t-thumb-elf: Likewise. + * arm/t-thumb-linux: Likewise. + * h8300/t-h8300: Likewise. + * i960/t-i960: Likewise. + * i960/t-vxworks960: Likewise. + * m32r/t-m32r: Likewise. + * mips/t-ecoff: Likewise. + * mips/t-elf: Likewise. + * mips/t-r3900: Likewise. + * pa/t-pro: Likewise. + * rs6000/t-aix43: Likewise. + * rs6000/t-beos: Likewise. + * rs6000/t-newas: Likewise. + * rs6000/t-ppccomm: Likewise. + * rs6000/t-rs6000: Likewise. + * rs6000/t-winnt: Likewise. + * rs6000/t-xnewas: Likewise. + * rs6000/t-xrs6000: Likewise. + * sh/t-sh: Likewise. + * sparc/t-elf: Likewise. + * sparc/t-sparcbare: Likewise. + * sparc/t-sparclite: Likewise. + * sparc/t-splet: Likewise. + * v850/t-v850: Likewise. + * mn10200/t-mn10200: Fix comments. + * mn10300/t-mn10300: Likewise. + + * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new + dummy operand. Allocate a new pseudo for the dummy operand. + (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes. + + * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass. + +Wed Aug 4 11:53:55 1999 Tom Tromey + + * configure: Rebuilt. + * configure.in: Removed --enable-java-gc option and JAVAGC subst. + +Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com) + + * recog.c (preproces_constraints): Zero recog_op_alt before + processing the constraints. + + * arm.c (typedef minipool_node): Renamed from pool_node. + (minipool_vector, minipool_size, minipool_vector_label): Similarly. + (add_minipool_constant): New function. + (dump_minipool): New function. + (find_barrier): Remove special case for getting the insn size of + an insn that references the constant pool. + (minipool_fixup): New structure. + (push_minipool_barrier): New function. + (push_minipool_fix): New function. + (note_invalid_constants): New function. + (add_pool_constant, dump_table, fixit, broken_move): Delete. + (arm_reorg): Rewrite code to fix up the constant pool into a + series of mini-pools embedded in the insn stream. + (arm_output_epilogue): New function, made mainly from the body + of output_func_epilogue. + (output_func_epilogue): Move insn generation part of epilogue code + to arm_output_epilogue. + * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete. + * arm.md (pool_range): New attribute. + (zero_extendqidi2): Add attribute pool_range. + (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn, + extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr, + pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend, + movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn, + movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise. + (epilogue): New expand. + (epilogue_insn): New insn. Call arm_output_epilogue. + + * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up. + * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT. + +Mon Aug 2 19:18:44 1999 Jason Merrill + + * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +1999-08-04 Mark Elbrecht + + * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define. + +Wed Aug 4 02:15:32 1999 Richard Henderson + + * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump. + +Wed Aug 4 01:48:08 1999 Jim Kingdon + + * global.c: Fix comment. + +Wed Aug 4 01:43:01 1999 Ian Lance Taylor + + * gcc.c (access_check): New static function. + (find_a_file): Use it when searching a directory list. + * collect2.c (find_a_file): Don't accept directories found when + searching a directory list. + +Wed Aug 4 01:40:43 1999 Philippe De Muyter + + * tlink.c (symbol_hash_lookup): Do not prefix functions used as + function parameters with `&'. + (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto. + +Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com) + + * flow.c (delete_unreachable_blocks): Do not call merge_blocks + or tidy_fallthru_edge if the last insn in the block is not + an unconditional jump or a simple conditional jump. + +Tue Aug 3 20:21:20 1999 J"orn Rennecke + + * Makefile.in (c-decl.o): Depends on defaults.h. + +Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for + PA1.1 and above. + (CLASS_MAX_NREGS): Likewise. + +Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Fix dumb thinko in last change. + +Tue Aug 3 10:36:13 1999 Bernd Schmidt + + * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as + "const char *". + +Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson + + * dwarf2out.c (add_location_or_const_value_attribute): Correct + test for sizes of passed and declared parameter types. + +Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi + + * fixincludes: Fix the return type of bsearch, char* -> void*. + + * fixinc/inclhack.def: Likewise. + +Mon Aug 2 18:29:32 1999 Mark Mitchell + + * invoke.texi (-fdump-translation-unit): New option. + +Mon Aug 2 17:54:19 1999 Richard Henderson + + * expr.h (PROMOTE_PROTOTYPES): Move ... + * defaults.h: ... to here. + * c-decl.c: Include defaults.h instead of expr.h. + * c-typeck.c: Include defaults.h. + +Mon Aug 2 17:10:24 1999 Mark Mitchell + + * toplev.h (errorcount): Declare. + (warningcount): Likewise. + (sorrycount): Likewise. + * c-lex.c (errorcount): Don't declare. + * dwarf2out.c (errorcount): Don't declare. + +Mon Aug 2 17:02:08 1999 Jason Merrill + + * config/libgloss.h: Add a note discouraging use with ELF. + * configure.in: Don't use libgloss.h for ELF targets. + Always use_collect2 on a.out targets. + +Mon Aug 2 16:27:42 1999 Jim Wilson + + * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt. + (force_to_mode, case ASHIFTRT): Add shiftrt label. + +Tue Aug 3 00:45:02 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, update + reg note of NEXT->insn. + +1999-08-02 Jakub Jelinek + + * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad. + +1999-08-02 Jakub Jelinek + + * c-decl.c (get_parm_info, store_parm_decls): Change all uses of + PROMOTE_PROTOTYPES, so that it tests it as a C expression. + Ensure expr.h is included. + * c-typecheck.c (convert_arguments): Ditto. + + * expr.h: Supply default for PROMOTE_PROTOTYPES (0). + + * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1. + * config/convex/convex.h: Ditto. + * config/dsp16xx/dsp16xx.h: Ditto. + * config/fx80/fx80.h: Ditto. + * config/gmicro/gmicro.h: Ditto. + * config/i370/i370.h: Ditto. + * config/i386/i386.h: Ditto. + * config/m32r/m32r.h: Ditto. + * config/m68k/m68k.h: Ditto. + * config/m88k/m88k.h: Ditto. + * config/mips/mips.h: Ditto. + * config/pa/pa.h: Ditto. + * config/pyr/pyr.h: Ditto. + * config/tahoe/tahoe.h: Ditto. + * config/we32k/we32k.h: Ditto. + + * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES + based on arch size. + + * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0. + + * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES + from comment. + + * tm.texi: Document new usage of PROMOTE_PROTOTYPES. + +1999-08-02 Richard Henderson + + * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set + for the register spill block. + (m32r_va_arg): New. + * m32r.h (EXPAND_BUILTIN_VA_ARG): New. + (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code. + + * m32r.h (INT8_P): Don't short-cut test with (unsigned). + (INT16_P, CMP_INT16_P, UINT16_P): Likewise. + (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise. + +1999-08-02 Jakub Jelinek + + * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef + MAX_WCHAR_TYPE defined in sparc.h. + * config/sparc/linuxaout.h: Likewise. + * config/sparc/linux64.h: Likewise. + Also default to -mvis if CPU is UltraSPARC. + +1999-08-02 Jakub Jelinek + + * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro. + (RTX_OK_FOR_OLO10): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable + %lo(), allow it in addresses... + (PRINT_OPERAND_ADDRESS): ... and print it appropriately. + * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo() + does not make sense. + * config/sparc/sparc.c (sparc_hard_reg_printed): New array. + (sparc_output_scratch_registers): New function. + (output_function_prologue, sparc_flat_output_function_prologue): Use + it. + * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if + defined. + * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it. + * configure.in: Add check for .register pseudo-op support in as and + check for offsetable %lo(). + * acconfig.h: Add templates for the above checks. + * configure: Regenerate. + +1999-08-02 Richard Henderson + + * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS. + * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise. + * sparc/sol2.h (TARGET_DEFAULT): Likewise. + +Mon Aug 2 23:46:45 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + +1999-08-02 Jakub Jelinek + + * config/float-sparc.h: New file. + * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1, + sparc-*-linux-gnu and sparc64-*-linux*. + +1999-08-02 Franz Sirl + + * rs6000.c (rs6000_va_list): Type is an array. + (rs6000_va_start): Don't doubly adjust for varargs. + (rs6000_va_arg): Evaluate long long GPR adjustment. + +Mon Aug 2 16:15:57 1999 David Edelsohn + + * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of + -maix64 and -maix32. + (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC, + LINK_SPEC): Change appropriately. + * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P. + (u_short_cint_operand): Likewise. + * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support + for 64-bit hosts. + * rs6000/t-aix43 (MULTILIB): Change to -m64. + + * invoke.texi (RS/6000 Submodel): Document 64-bit processor options. + +Mon Aug 2 16:15:57 1999 Geoff Keating + + * rs6000/rs6000.c (num_insns_constant_wide): Correct + for type promotion. + (add_operand): Get test correct for 64-bit HOST_WIDE_INT. + (non_add_cint_operand): Likewise. + (logical_operand): Likewise. + (non_logical_cint_operand): Likewise. + (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT. + (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT. + (rs6000_select_rtx_section): Suppress warning. + (small_data_operand): Suppress warning. + (rs6000_got_register): Suppress warning. + * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed + type, so `J' is generally the wrong constraint for a SImode value; + use `L' instead. + (andsi3_internal2): Likewise. + (andsi3_internal3): Likewise. + (iorsi3_internal1): Likewise. + (xorsi3_internal1): Likewise. + (movsi): Likewise. + (movsf_softfloat): Likewise. + (scc insns): Likewise. + (movsi+2): Preserve sign bits of SImode constant. + (floatsidf2_internal+1): Sign-extend SImode constant correctly. + (movdf+1): Sign-extend properly. + (movdi_32+1): Sign-extend properly. + (scc insns): Sign-extend properly. + + * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J, + K, L, and T. + +1999-08-02 Richard Henderson + + * alpha.c (override_options): Move ev6 alpha_tp frobbing out of + -mcpu parsing code. + (print_operand): Notice alpha_fptm not alpha_tp for sw completion. + * alpha.md (all fp insns): Likewise. + +1999-08-02 Nick Clifton + + * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not + already defined. + +Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (legitimize_pic_address): Clarify comments. Do not call the + pic_load_label generator directly. + * pa.md (pic_load_label): Clarify comments. Remove modes on operands. + No longer a named pattern. + +Mon Aug 2 09:38:10 1999 Nick Clifton + + * explow.c (force_reg): Call force_operand if X does not + satisfy general_operand. + +Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com) + + * fix-header.c (main): When testing for CONTINUED, use string + equality, not pointer equality. + +Mon Aug 2 01:27:24 1999 Dan Nicolaescu + + * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0. + +Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Fix loop which deletes insns after a jump + that has become an unconditional jump. + + * m68k.c (output_function_prologue): Fix typo in CPU32 case. + (output_function_epilogue): Similarly. + +Sun Aug 1 20:14:00 1999 Bernd Schmidt + + * tree.h (init_dummy_function_start): Declare. + +Sun Aug 1 12:55:31 1999 Bernd Schmidt + + * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value, + last_expr_type, last_expr_value, block_start_count, block_stack, + stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack, + nesting_depth, goto_fixup_chain): Delete global vars; now allocated + dynamically in stmt elt of struct function for each function. + (struct nesting): Rename function_call_count elt to n_function_calls, + target_temp_slot_level to block_target_temp_slot_level. All users + changed. + (struct stmt_status): New structure definition. + Add many accessor macros for stmt_status elements which previously + were global variables. + (init_stmt_for_function): Allocate stmt elt for current_function. + Reflect that block_start_count was renamed to + current_block_start_count. + (save_stmt_status, restore_stmt_status): Delete functions. + (preserve_subexpressions_p): Don't access loop_stack when outside + a function. + (expand_start_bindings): Reflect that block_start_count was renamed to + current_block_start_count. + (expand_fixup): Likewise. + (expand_decl): Don't access block_stack when outside a function. + (expand_decl_cleanup): Likewise. + (expand_dcc_cleanup): Likewise. + (expand_dhc_cleanup): Likewise. + (expand_anon_union_decl): Likewise. + (set_file_and_line_for_stmt): New function. + (in_control_zone_p): New function. + + * function.h (struct function): Add new elt stmt. + Delete elts block_stack, stack_block_stack, cond_stack, loop_stack, + case_stack, nesting_stack, nesting_depth, block_start_count, + last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename, + emit_lineno, goto_fixup_chain. + (save_eh_status, restore_eh_status, save_stmt_status, + restore_stmt_status): Delete declarations. + * function.c (push_function_context_to): Don't call save_stmt_status. + (pop_function_context_to): Don't call restore_stmt_status. + * tree.h (in_control_zone_p): Declare. + * rtl.h (set_file_and_line_for_stmt): Declare. + + * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno; + call set_file_and_line_for_stmt. + +Thu Jul 31 12:34:45 1999 Joe Buck + + * gcc.texi: Use terms "GNU Compiler Collection" and "GCC". + Also update copyright. + +Sat Jul 31 11:10:07 1999 Bernd Schmidt + + * c-pragma.c: Don't include "except.h". + * emit-rtl.c: Likewise. + * stor-layout.c: Likewise. + * tree.c: Likewise. + * varasm.c: Likewise. + + * flow.c: Include "function.h". + * tree.h (init_dummy_function_start): Declare new function. + + * except.h (struct eh_status): New structure. + (struct label_node, struct eh_entry): Declare even if tree.h hasn't + been included. + (eh_return_stub_label, ehstack, catchstack, ehqueue, + catch_clauses, false_label_stack, caught_return_label_stack, + protect_list, current_function_ehc): Add accessor macros for the + corresponding fields in current_function->eh; delete declarations + for all items that used to be declared here. + * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue, + catch_clauses, false_label_stack, caught_return_label_stack, + protect_list, current_function_ehc): Delete variables. + (init_eh_for_function): Allocate current_function->eh. + (save_eh_status, restore_eh_status): Delete functions. + + * function.h (struct function): Add fields next_global and eh. + Delete all exception handling related fields. + * function.c (current_function): New variable. + (all_functions): New variable. + (push_function_context_to): Don't allocate a struct function, + use current_function instead. Call init_dummy_function_start when + outside a function. Clear current_function before returning. + (pop_function_context_from): Restore current_function. + Don't free the restored struct function. + (prepare_function_start): New function. + (init_dummy_function_start): New function. + (init_function_start): Break out some code into prepare_function_start + and call it here. + + * stmt.c (save_stmt_status): Don't call save_eh_status. + (restore_stmt_status): Don't call restore_eh_status. + + * Makefile.in: Update dependencies. + +Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead + of depending on a magic constant value. Update comments. + (hppa_expand_prologue): Similarly. + + * pa.md (reload_indi, reload_outdi): Allow any register for the + original reload register. + +Fri Jul 30 19:41:35 1999 Jim Wilson + + * cccp.c (print_help): Change marcos to macros. + +1999-07-30 Richard Henderson + + * c-typeck.c (initializer_constant_valid_p): Move ... + * c-common.c (initializer_constant_valid_p): ... here. Use + FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction + of label addresses. + * c-common.h (initializer_constant_valid_p): Declare. + * c-tree.h (initializer_constant_valid_p): Remove. + +Fri Jul 30 16:33:42 1999 Mathias Froehlich + + * config/i386/sol2-c1.asm: Align the stack. + * config/i386/sol2-gc1.asm: Likewise. + +1999-07-30 Vladimir Makarov + + * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto + -Asparclite for sparc86x. + (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for + sparc86x. + (ASM_CPU_SPEC): Use -Asparclite for sparc86x. + +Fri Jul 30 14:53:56 1999 Jakub Jelinek + + * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by + the user if using the non-default arch size in BI_ARCH configuration. + * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto. + + * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set): + Fix patterns so that they actually match. + (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero. + (mulsidi3_sp64, const_mulsidi3_sp64): New patterns. + (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on + TARGET_HARD_MUL32. + (mulsidi3): Reflect this in the expand. + (smulsi3_highpart): Only on TARGET_ARCH32. + (umulsidi3_sp64, const_umulsidi3_sp64): New patterns. + (const_umulsidi3_sp32): Renamed from const_umulsidi3. + (umulsidi3): Reflect this in the expand. + (umulsi3_highpart): Only on TARGET_ARCH32. + (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32, + don't require g0 to be zero. + (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32. + ({,u}divsi3): New expands. + ({,u}divsi3_sp64): New patterns. + (after lshrdi3_v8plus): Four new patterns to help combiner + optimizing nested mixed mode shifts. + + * config/sparc/sparc.c (sparc_override_options): Use deprecated + v8 instructions if optimizing for UltraSPARC I, II, IIi, as it + speed things up. Don't use them by default on plain v9 in 64bit + mode, according to what SPAMv9 sais. + + * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves + top 32 bits of %[og][0-7] in signal handlers. + Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32. + +Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (zvdep_imm32): Renamed from zvdep_imm. + (ashlsi3): Corresponding changes. + + * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands. + +Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com) + + * pa.h (FIRST_PARM_CALLER_OFFSET): Delete. + +Thu Jul 29 19:01:58 1999 Bernd Schmidt + + * arm.h (Hint): Delete macro. + Substitute HOST_WIDE_INT for Hint in some prototypes. + * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype. + +Thu Jul 29 09:21:42 1999 Nick Clifton + + * builtins.c (expand_builtin_setjmp): Use force_operand to + make sure that the buffer address is in a suitable form to be + passed to force_reg. + +Wed Jul 28 12:50:48 1999 Geoff Keating + + * config/mips/mips.c: system.h handles MIN and MAX, don't undefine + them here. + +Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (indirect_jump): Remove mode from match_operand. Verify + proper mode in the condition string. + (icacheflush, dcacheflush): Remove modes from match_operands. + + * pa.c (emit_move_sequence): Always convert scratch_reg to the + proper mode before using it. + + * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn + pair. + + * pa.c (store_reg): Do not call add_high_const generator directly. + (load_reg, set_reg_plus_d): Likewise. + * pa.md (add_high_const): No longer a named pattern. + + * pa.c (legitimize_address): Consistently use Pmode rather than + SImode. Do not call gen_pic2_highpart directly anymore. + * pa.md (pic2_highpart): No longer a named pattern. + (pic2_lo_sum): Similarly. Reformat to make more readable. + + * pa.md (call, call_value): Use "word_mode" instead of "SImode" as + needed. + + * README: Update. + +Wed Jul 28 11:28:04 1999 Franz Sirl + + * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs. + +Wed Jul 28 11:23:48 1999 Richard Henderson + + * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set + and tag the spill mems. + (hppa_va_start): New. + (hppa_va_arg): New. + * pa.h (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + +Wed Jul 28 11:22:21 1999 Richard Henderson + + * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set + and tag the spill mems. + (mn10300_va_start): New. + (mn10300_va_arg): New. + * mn10300.h (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + +Wed Jul 28 11:20:19 1999 Richard Henderson + + * mn10200.c (mn10200_va_arg): New. + * mn10200.h (EXPAND_BUILTIN_VA_ARG): New. + +Wed Jul 28 11:19:06 1999 Richard Henderson + + * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes + rather than play with TREE_INT_CST_LOW. + +1999-07-27 Philip Blundell + + * config/arm/telf.h: Include dbxelf.h. + (CPP_PREDEFINES): Only define if not already defined. + (ASM_IDENTIFY_GCC): Likewise. + (SUBTARGET_EXTRA_SECTIONS): Likewise. + (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise. + * config/arm/thumb.h (LINK_SPEC): Only define if not already + defined. + (DBX_DEBUGGING_INFO): Don't define. + * config/arm/linux-telf.h: New file. + * config/arm/linux-tgas.h: New file. + * config/arm/t-thumb-linux: New file. + * config/arm/uclinux-elf.h: New file. + * config/arm/uclinux-telf.h: New file. + * configure.in (arm-*-uclinux, thumb-*-linux-gnu, + thumb-*-uclinux): New targets. + * configure: Regenerate. + +Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com) + + * pa.md (post_store, pre_load): New expanders. + (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively. + (post_ldwm, pre_stwm): Make these unnamed patterns since we never + need to directly generate RTL for them. + * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding + changes. + +Tue Jul 27 16:05:52 1999 David Edelsohn + + * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630. + * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630. + (rs6000_cpu): Choose between 32-bit and 64-bit default processors. + (secndary_reload_class): Make TARGET_ELF conditional compile. + (print_operand_address): Similar. + (output_toc): Print all values as hex. + (get_issue_rate): Rearrange and add RS64A and PPC630. + * rs6000.h (processor_type): Add RS64A and PPC630. + (PROCESSOR_POWERPC64): New. + (PROMOTE_MODE): Use word_mode. + (RTX_COSTS): Add RS64A and PPC630. + * rs6000.md (scheduling information): Add lmul and ldiv + representing 64-bit integer multiply and divide. Add rs64a and + PPC630 information. + (ashldi3): Add support for "rldic" instruction. + * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750. + +Tue Jul 27 15:31:53 1999 Vladimir Makarov + + * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE + instead of V8 for sparclite86x in cpu_table. + +Tue Jul 27 17:49:42 1999 Bernd Schmidt + + * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call + output_file_directive. + +Tue Jul 27 03:15:33 1999 Jason Merrill + + * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the + tree for op1, not the rtl. + +Tue Jul 27 00:18:34 1999 Richard Henderson + + * m88k.c (m88k_builtin_saveregs): Break out the constructor code + to m88k_va_start, leaving only the register spill. + (m88k_build_va_list): New. + (m88k_va_start): New. + (m88k_va_arg): New. + * m88k.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + +Mon Jul 26 19:07:11 1999 Geoff Keating + + * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs): + Rename from expand_builtin_saveregs. + * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller. + +Mon Jul 26 22:52:47 1999 Richard Henderson + + * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set + for the register spill block. + (i960_build_va_list): New. + (i960_va_start): New. + (i960_va_arg): New. + * i960.h (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * i960.md (store_multiple): Use change_address on individual mems. + +Mon Jul 26 22:43:12 1999 Richard Henderson + + * builtins.c (stabilize_va_list): Don't INDIRECT_REF through + an ARRAY_TYPE. + (std_expand_builtin_va_start): Back out one word if !stdarg_p. + (expand_builtin_va_end): Evaluate arg for side effects. + * c-common.c (c_common_nodes_and_builtins): Construct a + va_list_arg_type_node to handle array decomposition to pointer. + +Mon Jul 26 18:51:34 1999 Richard Henderson + + * except.c (st_dynamic_cleanup): Use force_operand on the + buffer's address. + +Mon Jul 26 16:43:26 1999 Richard Henderson + + * c4x.h (EXPAND_BUILTIN_VA_ARG): New. + * c4x.c (c4x_va_arg): New. + +Mon Jul 26 12:30:09 1999 Jason Merrill + + * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer + has manual_pop set. + +1999-07-26 Nathan Sidwell + + * eh-common.h (__eh_matcher): Prototype correctly. + +Mon Jul 26 17:24:51 1999 Philip Blundell + + * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define. + (TARGET_SINGLE_PIC_BASE): Likewise. + (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default + definitions. + (TARGET_CALLEE_INTERWORKING): Fix typo in comment. + (TARGET_SWITCHES): Add -m{no-}single-pic-base. + (TARGET_OPTIONS): Add -mpic-register=N. + (OUTPUT_INT_ADDR_CONST): New macro. + (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, + LEGITIMATE_PIC_OPERAND_P): Likewise. + (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC. + (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling + output_addr_const directly. + (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with + ARM port. + (thumb_pic_register, thumb_pic_register_string): Declare. + + * config/arm/thumb.c (symbol_mentioned_p): New function: Imported + from arm.c. + (label_mentioned_p): New function: Imported from arm.c. + (legitimize_pic_address): New function: Imported from arm.c. + (is_pic):New function: Imported from arm.c. + (thumb_finalize_pic):New function: Imported from arm.c. + (add_constant): Cope with PIC constants. + (fixit): Cope with PIC constants. + (output_return): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_function_prologue): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_expand_prologue): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_unexpand_epilogue): Do not treat the PIC register as live if + TARGET_SINGLE_PIC_BASE is true. + (thumb_print_operand): Accept '|'. + (thumb_override_options): Process PIC options. + + * config/arm/thumb.md (movsi): Support PIC. + (call_insn): Change "i" constraint to "X". + (call_value_insn): Likewise. + (consttable_4, consttable_8, consttable_end): Set and clear + "making_const_table" as appropriate. + (pic_load_addr, pic_add_dot_plus_four): New insns. + + * invoke.texi (Thumb Options): Fix spelling. Document new + options -msingle-pic-base and -mpic-register=. + +1999-07-26 Andrew Haley + + * config/m32r/initfini.c (__init): Use a full word immediate for + __fini: this allows it to be placed in any memory region. + + * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for + -mmodel=medium. This is OK for all memory models. + +Mon Jul 26 11:58:46 1999 Nick Clifton + + * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r. + * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r. + +Mon Jul 26 10:23:36 1999 Nick Clifton + + * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if + defined. + + * tm.texi: Document ASM_FPRINTF_EXTENSIONS. + +Sun Jul 25 23:51:59 1999 Richard Henderson + + * i860.h (EXPAND_BUILTIN_SAVEREGS): New. + (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * i860.c (output_delayed_branch): Disable. + (output_delay_insn): Likewise. + (i860_saveregs): New. + (i860_build_va_list): New. + (i860_va_start): New. + (i860_va_arg): New. + * i860.md: Disable all peepholes using output_delayed_branch. + * i860/sysv4.h (I860_SVR4_VA_LIST): New. + +Sun Jul 25 23:44:13 1999 Richard Henderson + + * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument. + (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * clipper.c (clipper_builtin_saveregs): Only dump registers. + Return the address of the save area. + (clipper_build_va_list): New. + (clipper_va_start): New. + (clipper_va_arg): New. + +Sun Jul 25 22:56:47 1999 Richard Henderson + + * arc.h (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * arc.c (arc_setup_incoming_varargs): Set alias set of + varargs save area. + (arc_va_start): New. + (arc_va_arg): New. + +Sun Jul 25 22:45:55 1999 Richard Henderson + + * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete. + (BUILD_VA_LIST_TYPE): New. + (EXPAND_BUILTIN_VA_START): New. + (EXPAND_BUILTIN_VA_ARG): New. + * alpha.c (alpha_builtin_saveregs): Delete. + (alpha_build_va_list): New. + (alpha_va_start): New. + (alpha_va_arg): New. + +Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com) + + * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in + column zero. + (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise. + (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise. + + * gcc.texi: More changes related to list conversion. + * invoke.texi: Likewise. + +Sun Jul 25 18:15:39 1999 Richard Henderson + + * builtins.c (expand_builtin_saveregs): Remove static, remove exp + and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS. + (expand_builtin_next_arg): Accept ARGLIST not EXP. + (stabilize_va_list): New function. + (std_expand_builtin_va_start): New function. + (expand_builtin_va_start): New function. + (get_varargs_alias_set): New function. + (std_expand_builtin_va_arg): New function. + (expand_builtin_va_arg): New function. + (expand_builtin_va_end): New function. + (expand_builtin_va_copy): New function. + (expand_builtin): Call them. + * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list, + __builtin_{varargs_start,stdarg_start,end,copy}. + (build_va_arg): New function. + * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete. + (build_va_arg): Declare. + * c-decl.c (ptr_type_node, va_list_type_node): New. + * c-parse.gperf (__builtin_va_arg): New. + * c-parse.in (VA_ARG): New token. + (unary_expr): Recognize it. + * expr.c (expand_expr): Expand VA_ARG_EXPR. + * expr.h (std_expand_builtin_va_start): Declare. + (std_expand_builtin_va_arg): Declare. + (expand_builtin_va_arg): Declare. + (get_varargs_alias_set): Declare. + * tree.def (VA_ARG_EXPR): New. + * tree.h (BUILT_IN_VARARGS_START): New. + (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New. + (ptr_type_node, va_list_type_node): Declare. + * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument. + * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise. + * m88k.h, m88k.c: Likewise. + * mn10300.h, mn10300.c: Likewise. + * pa.h, pa.c: Likewise. + * rs6000.h, rs6000.c: Likewise. + * sh.h, sh.c: Likewise. + * sparc.h, sparc.c: Likewise. + + * emit-rtl.c (operand_subword): Copy alias set. + (change_address): Likewise. + +Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (compute_frame_size): Scan all the used callee saved registers, + not just the first one. + +Fri Jul 23 14:09:58 1999 Philip Blundell + + * config/arm/arm.h (TARGET_SWITCHES): Add + -m{no-}single-pic-base. Correct help string for -mshort-load-words. + (TARGET_OPTIONS): Add -mpic-register=. + (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define. + (arm_pic_register_string): Declare. + (NEED_PLT_GOT): Delete, replace with ... + (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros. + (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC. + (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC. + * config/arm/arm.c (arm_override_options): Add new option + -mpic-register=N. + (arm_pic_register_string): New variable. + (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE. + (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC + register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT. + (output_return_instruction): Likewise. + * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ... + (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic. + * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT. + + * invoke.texi (ARM Options): Fix spelling. Remove duplicate + mention of -msched-prolog. Document new options -msingle-pic-base + and -mpic-register=. + +Thu Jul 22 18:23:56 1999 Richard Henderson + + * haifa-sched.c (reemit_notes): Tidy. + * sched.c (reemit_notes): Duplicate 1998-08-31 patch to + haifa's routine. + +Thu Jul 22 18:21:04 1999 Richard Henderson + + * explow.c (trunc_int_for_mode): New function. + (plus_constant_wide): Use it. + * combine.c (simplify_and_const_int): Likewise. + (merge_outer_ops): Likewise. + (simplify_shift_const): Likewise. + * cse.c (simplify_unary_operation): Likewise. + (simplify_binary_operation): Likewise. + * emit-rtl.c (operand_subword): Likewise. + * rtl.h: Declare it. + +Thu Jul 22 14:34:59 1999 Bernd Schmidt + + * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case + (use NUM_REGS instead of NUM_INTS). + +Thu Jul 22 11:25:20 1999 Bernd Schmidt + + * builtins.c: New file. + * expr.c (saveregs_value, apply_args_value): Delete definition, + moved into builtins.c. + (string_constant): No longer static. + (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin, + apply_args_size, apply_result_size, result_vector, + expand_builtin_apply_args, expand_builtin_apply, + expand_builtin_return): Delete functions, moved into builtins.c. + (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros. + * expr.h (saveregs_value, apply_args_value): Declare variables. + (expand_builtin, string_constant): Declare functions. + * Makefile.in: Update to build builtin.o. + +Wed Jul 21 00:46:58 1999 Mark P. Mitchell + + * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro. + * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it. + * dwarf2out.c (dwarf2out_init): Don't output a label to mark the + start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is + false. + * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): + Define to zero. + +1999-07-21 Michael Meissner + + * print-rtl.c (print_rtx): Print the names of the virtual + registers. + +Wed Jul 21 16:00:32 1999 Nick Clifton + + * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo + introduced in previous delta. + +Wed Jul 21 14:30:51 1999 Bernd Schmidt + + * c-lang.c (finish_file): Rename void_list_node to void_list_node_1 + to avoid name clash. + +Wed Jul 21 08:39:22 1999 Gavin Romig-Koch + + * c-lex.c (yylex) : Correct the test for overflow when lexing + integer literals. + +Tue Jul 20 18:02:42 1999 Richard Henderson + + * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa. + (adjust_priority): Always call ADJUST_PRIORITY. + (schedule_insn): Only put insns into the ready at cost 0. + (schedule_block): Remove redundant initial sort. Give clock_var + and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost + is not 0. + * tm.texi (MD_SCHED_REORDER): Update docs. + + * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE. + * sparc.c (ultra_reorder_called_this_block): Delete. + (ultrasparc_sched_init): Don't set it. + (ultrasparc_sched_reorder): Don't check it. + +Tue Jul 20 17:07:54 1999 Richard Henderson + + * rs6000.h (struct rs6000_args): Add sysv_gregno. + * rs6000.c (init_cumulative_args): Init sysv_gregno. + (function_arg_boundary): Align DFmode. + (function_arg_advance): Restructure for ABI_V4; use sysv_gregno + to get fp reg and stack overflow correct. + (function_arg): Likewise. + (function_arg_pass_by_reference): True for TFmode for ABI_V4. + (setup_incoming_varargs): Restructure for ABI_V4; use + function_arg_advance to skip final named argument. + (expand_builtin_saveregs): Properly unskip the last integer arg + when doing varargs. Adjust overflow location calculation. + + * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr + explicitly unsigned. + (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly. + (__VA_GP_REGSAVE): Similarly. + (__va_longlong_p): Delete. + (__va_arg_type_violation): New declaration. + (va_arg): Restructure. Flag promotion errors. Align double. + TFmode passed by reference. + + * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic + in the HOST_BITS_PER_WIDE_INT > 32 case. + +Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson + + * dwarf2out.c (output_abbrev_section): Terminate with a zero. + +Tue Jul 20 12:12:27 1999 Jason Merrill + + * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed. + * toplev.c (documented_lang_options): Add -fpreprocessed. + * cpplib.h (struct cpp_buffer): Add preprocessed. + * cppinit.c (cpp_handle_option): Handle -fpreprocessed. + (cpp_start_read): Don't expand macros or emit an initial #line + directive if -fpreprocessed. + +Tue Jul 20 12:12:09 1999 Michael Tiemann + + * cpplib.h (struct cpp_buffer): Added manual_pop for + better C++ tokenization. + * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop. + Also, support C++ tokenization for ->*, .*, ? operators. + * c-common.c (cpp_token): Make non-static. + +Tue Jul 20 11:24:19 1999 Bernd Schmidt + + * c-common.h: New file. + * c-common.c (permanent_obstack): Delete unused declaration. + (c_global_trees): New array. + (c_common_nodes_and_builtins): New function; split off common code + from init_decl_processing in both c-decl.c and cp/decl.c. + * c-tree.h: Delete lots of declarations of tree nodes; replaced by + c_global_trees and accessor macros defined in c-common.h. + Include c-common.h. + * c-decl.c: Delete definitions for tree nodes that were replaced by + c_global_trees. + (init_decl_processing): Build void_list_node. + Call c_common_nodes_and_builtins; delete code to generate the common + builtins here. + * objc/objc-act.c (build_module_descriptor): Rename variable + void_list_node to avoid clash with c-common.h. + + * Makefile.in: Update dependencies. + * objc/Make-lang.in: Likewise. + +Mon Jul 19 14:22:18 1999 Mark P. Mitchell + + * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define. + (UNIQUE_SECTION_P): Likewise. + (UNIQUE_SECTION): Likewise. + +1999-07-19 Linas Vepstas + + * config/i370/README: New file. + * config/i370/linux.h: New file. + * config/i370/mvs.h: New file. + * config/i370/oe.h: New file. + * config/i370/t-linux: New file. + * config/i370/t-mvs: New file. + * config/i370/t-oe: New file. + * config/i370/x-oe: New file. + * config/i370/xm-linux.h: New file. + * config/i370/xm-mvs.h: New file. + * config/i370/xm-oe.h: New file. + + * i370.c (label_node_t): Add first_ref_page, label_addr, + label_first_ref, label_last_ref members. + (mvs_need_base_reload): Renamed from mvs_label_emitted. + (MAX_MVS_LABEL_SIZE): Define. + (MAX_LONG_LABEL_SIZE): Define. + (alias_node_t, alias_anchor, alias_number): New. + (mvs_function_table): Reorder for EBCDIC. + (ascebc, ebcasc): Unconditionally define. + (i370_branch_dest, i370_branch_length): New functions. + (i370_short_branch, i370_label_scan): New functions. + (mvs_get_label): Renamed from mvs_add_label. Search for + an existing label before creating a new one. + (mvs_add_label): New function. + (mvs_get_label_page): New function. + (mvs_free_label_list): Renamed from mvs_free_label. Iterate + over the entire list. + (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR. + (mvs_check_page) [TARGET_ELF_ABI]: New function. + (mvs_add_alias, mvs_need_alias): New functions. + (mvs_get_alias, mvs_check_alias): New functions. + (handle_pragma): New function. + (mvs_function_check): New function. + (unsigned_jump_follows_p): Search harder. + (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels. + (i370_function_prolog) [TARGET_ELF_ABI]: New function. + * i370.h (TARGET_VERSION): Delete. + (CPP_SPEC, CPP_PREDEFINES): Delete. + (mvs_label_emitted): Delete. + (TARGET_EBCDIC): Delete. + (MAP_CHARACTER): Define only if TARGET_EBCDIC. + (HANDLE_PRAGMA): Define. + (HARD_REGNO_NREGS): Handle complex modes. + (HARD_REGNO_MODE_OK): Likewise. + (CLASS_MAX_NREGS): Likewise. + (RET_REG): Likewise. + (EXTRA_CONSTRAINT): Define. + (RETURN_IN_MEMORY): True for DImode. + (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT. + (FUNCTION_PROFILER): Delete. + (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P. + (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts. + (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC. + (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise. + (TARGET_VT, TARGET_FF, TARGET_CR): Likewise. + (ASM_FILE_START): Add "RMODE ANY". + (ASM_OUTPUT_EXTERNAL): Check for aliases. + (ASM_GLOBALIZE_LABEL): Likewise. + (ASM_OUTPUT_LABELREF): Likewise. + (ASM_OUTPUT_COMMON): Likewise. + (PRINT_OPERAND): Handle 'K', 'W', default. + (PRINT_OPERAND_ADDRESS): New. + (Lots of defines): Add support for TARGET_ELF_ABI. + * i370.md (attr length): New. Define for all patterns. + (*): Lots of tweeks to assembly output and constraints. + +Mon Jul 19 15:09:29 1999 David Edelsohn + + * rs6000.md (arithmetic, logical, and shift Rc combiner patterns): + Disable patterns performing SImode comparisons with SImode values + if TARGET_POWERPC64 and instruction does not sign-extend or does + not mask to narrower than SImode, i.e. where bit 31 and bit 63 may + differ for signed quantities. + (indirect_jump): Add expander to choose RTL based on TARGET_64BIT. + (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64. + (decrement_and_branch_on_count): Add 64-bit variant. + +Mon Jul 19 09:36:27 1999 Bernd Schmidt + + * final.c (output_asm_insn): When searching for the matching string + for a given dialect, don't run past the end of the list of + alternatives if there are fewer alternatives in the template than + dialects. + +1999-07-17 Alexandre Oliva + + * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org. + Removed paragraph about compression of files and size limitation, + duplicated in the FAQ. Use gcc-patches for posting patches. + * gcc.c (main): Updated URL with bug reporting instructions to + gcc.gnu.org. Removed e-mail address. + * system.h (abort): Likewise. + +1999-07-17 Kaveh R. Ghazi + + * Makefile.in (stmp-multilib-sub): Make the files extracted + from $(LIBGCC1) writable. + +Sat Jul 17 14:25:46 1999 Nick Clifton + + * config/arm/aout.h: Reformat for improved readability. + + * config/arm/arm.h: Reformat for improved readability. + Replace uses of fprintf with asm_fprintf where appropriate. + (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM + function declaration assembler actions. + (NUM_INTS): New macro: Convert from bytes to words. + (NUM_REGS): New macro: Compute number of registers required to + hold a quanitity of tyep MODE. + (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode + types. + (NUM_ARG_REGS): New macro: The number of argument registers + available. + (ARG_REGISTER): New macro: Compute the register number of the Nth + argument register. + (LAST_ARG_REGNUM): New macro: The number of the last argument + register. + (SP_REGNUM): New macro: Register number of the stack pointer. + (FP_REGNUM): New macro: Register number of the frame pointer. + (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS, + FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change + CUMULATIVE_ARGS so that it counts registers not bytes. + + * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to + TARGET_INTERWORK. + Replace uses of fprintf with asm_fprintf where appropriate. + (output_ascii_pseudo_op): Replace with version from thumb.c + + * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF. + + * config/arm/elf.h (CPP_PREDEFINES): Replace with + SUBTARGET_CPP_SPEC. + (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. + (ASM_FILE_START): Emit ASM_APP_OFF. + +Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com) + + * pa.c (compute_frame_size): Round frame according to + STACK_BOUNDARY rather than a hardwired value. + + * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD. + + * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead + of "1". + * configure: Rebuilt. + + * configure.in (hppa*-*-linux*): New configuration. + * configure: Rebuilt. + * pa.h (MAX_OFILE_ALIGNMENT): Delete. + * pa/som.h (MAX_OFILE_ALIGNMENT): Define. + * pa/pa-linux.h: New file. + * pa/t-linux: New file. + * pa/xm-linux.h: New file. + + * pa.c (hppa_legitimize_address): Change references from SImode to + either Pmode or word_mode as appropriate. + (emit_move_sequence, store_reg, load_reg): Likewise. + (set_reg_plus_d, hppa_expand_prologue): Likewise. + (output_mul_insn): Likewise. + * pa.h (PROMOTE_MODE): Likewise. + (INITIALZE_TRAMPOLINE): Likewise. + (Pmode): Define to word_mode. + + * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired + value of 4. Allocate 8 bytes for each FP register save. + (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired + value of 4. + (hppa_expand_prologue): Likewise. + * pa.h (PROMOTE_MODE): Likewise. + (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise. + (FUNCTION_ARG_BOUNDARY): Likewise. + + * invoke.texi (HPPA Options): Remove -mspace/-mno-space. + + * pa.c (out_of_line_prologue_epilogue): Delete. + (override_options): Remove -mspace related code. + (hppa_expand_prologue, hppa_expand_epilogue): Likewise. + (compute_frame_size): Only allocate space for register that + actually need to be saved. + * pa.h (MASK_SPACE, TARGET_SPACE): Delete. + (TARGET_SWITCHES): Remove -mspace, -mno-space + * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm + * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib. + * pa/ee.asm, pa/ee_fp.asm: Delete. + + * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define. + + * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler + directive in column zero. + +Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.c (output_function_prologue): Fix computation of save mask + when generating PIC code. + +Thu Jul 15 15:40:09 1999 Jim Wilson + + * tree.c (build_type_attribute_variant): Move current_obstack restore + after build_qualified_type call. + +1999-07-15 Mark Mitchell + + * configure.in: Use t-iris6, even with GNU LD. + * config/mips/iris6gld.h: Fix typo in linker spec. + * config/mips/t-iris6gld: Remove. + +Thu Jul 15 15:15:43 1999 David Edelsohn + + * rs6000.md (insv, extzv): Remove SImode dependence in named + patterns. Explicitly generate DImode RTL if PowerPC64 and + operand is DImode. + (insvdi): Reverse start and size in instruction template. + +1999-07-12 Joseph S. Myers + + * invoke.texi: Typo fixes. + +Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not + handle at this time instead of silently generating incorrect code. + (gen_imagpart): Likewise. + + * reload.c (find_reloads): Emit a USE for a pseudo register without + a hard register if we could not create an optional reload for the + pseudo. + +Wed Jul 14 23:45:48 1999 J"orn Rennecke + + * c-typeck.c (output_init_element, process_init_element): + When advancing constructor_unfilled_fields for a RECORD_TYPE, + check for nameless bit fields. + +Wed Jul 14 01:57:39 1999 Richard Henderson + + * regclass.c (scan_one_insn): Notice subregs that change the + size of their operand. + (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE. + +Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (alpha*-*-*): Include alpha/t-ieee. + * configure: Rebuilt. + * alpha/t-ieee: New file. + +Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.c (find_addr_reg): Do not select r0 as an address + register. + +Tue Jul 13 00:46:18 1999 Philippe De Muyter + + * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'. + +Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md (movsf): Do not force easy FP constants into memory. + + * expr.c (expand_expr, case PLUS_EXPR): Pass constants through + immed_double_const to ensure they are properly truncated then + sign extended. + +Mon Jul 12 10:40:01 1999 Vladimir Makarov + + * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block + always unless NO_DEBUG is used. Compile this code + unconditionally. + (replace_symbols_in_block): Compile it unconditionally. + +Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (i?86-*-elf*): New target. + * configure: Rebuilt. + * i386/i386elf.h, i386/t-i386elf: New files. + +Fri Jul 9 22:39:44 1999 Jason Merrill + + * toplev.c (main): Don't complain about saying -gdwarf. + (rest_of_compilation): Remove redundant code. + +Fri Jul 9 19:08:55 1999 Jim Wilson + + * unroll.c (unroll_loops): Don't delete named CODE_LABELs. + +Fri Jul 9 18:54:18 1999 Felix Lee + + * config/i960/i960.c (ret_label): Change asm label from "LR:" to + "Li960R:", to avoid name clash. + +Fri Jul 9 10:48:28 1999 Bernd Schmidt + + * loop.c (check_dbra_loop): When reversing a loop, delete all + REG_EQUAL notes referencing the reversed biv except those which are + for a giv based on it. + +Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com) + + * version.c: Drop "gcc-" prefix from version #. + +Thu Jul 8 18:06:30 1999 Jason Merrill + + * dwarf2out.c (dwarf2out_line): Emit a line number comment after + the label if we're being verbose. + +Thu Jul 8 14:18:46 1999 Richard Henderson + + * m68k.c (output_function_prologue): Add pic register to mask + if live and flag_pic. + (output_function_epilogue): Likewise. + +Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com) + + * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler + directives in column zero. + + * pa/elf.h (ASM_FILE_START): Define. + * pa/som.h (ASM_FILE_START): Include .level directives. + * pa/hpux10.h (ASM_FILE_START): Delete. + * pa/hpux11.h (ASM_FILE_START): Delete. + + * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss. + +Thu Jul 8 18:03:19 1999 J"orn Rennecke + + * reload1.c (choose_reload_regs): Never call remove_address_replacements + when reload_out equals reload_in. + +Thu Jul 8 16:50:14 1999 Nick Clifton + + * invoke.texi (Spec Files): New node: Describe the contents of + spec files. + +Thu Jul 8 10:28:25 1999 Craig Burley + + * invoke.texi (DEC Alpha Options): Put @end table at + beginning of line, to avoid confusing texi2html. + +Thu Jul 8 09:22:06 1999 Nick Clifton + + * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo + introduced in previous delta. + +Wed Jul 7 02:00:04 1999 Franz Sirl + + * reload1.c (gen_reload): When synthesizing a 3 operand add + sequence, improve test for when to reload OP1 into the reload + register instead of OP0. + +Wed Jul 7 01:38:03 1999 Jim Wilson + + * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes. + +1999-07-07 Manfred Hollstein + + * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line + string literal. + +Wed Jul 7 01:16:43 1999 Richard Henderson + + * ginclude/varargs.h (__builtin_va_alist_t): New typedef. + (va_dcl): Use __builtin_va_alist_t. + +Wed Jul 7 01:14:42 1999 Jason Merrill + + * dwarf2out.c (gen_struct_or_union_type_die): Only remember types + on the permanent_obstack. + * dwarfout.c (output_type): Likewise. + +Tue Jul 6 15:25:32 1999 Gavin Romig-Koch + + * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) : + Merged from c-typeck.c and cp/typeck.c. + * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : + Merged into c-common. + +Tue Jul 6 13:06:01 1999 Dave Brolley + + * c-lex.c (errorcount): Declare it. + (finish_parse): Update errorcount when using CPPLIB. + +1999-07-06 Bruce Korb + + * fixinc/inclhack.def(end_else_label): Double the backslash so + sed gets a chance to see it. + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +Fri Jul 2 18:49:51 1999 Nick Clifton + + Add framework to support armv5 architecture when it becomes + available: + + * config/arm/arm.c (FL_ARCH5): New processor capability flag. + (arm_arch5): New variable. + (all_architectures): Add armv5 line. + * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if + -march=armv5 is specified on the command line. + (arm_arch5): Export this variable. + * invoke.texi: Document new string accepted by -march= switch for + ARM ports. + + * config/arm/arm.h: Replace use of constant 12 as a register + number with IP_REGNUM. Similarly 14 and LR_REGNUM. + * config/arm/arm.c: Replace use of constant 12 as a register + number with IP_REGNUM. Similarly 14 and LR_REGNUM. + + * config/arm/elf.h: Tidy up. + * config/arm/coff.h: Tidy up. + +Thu Jul 1 19:08:13 1999 Mark P. Mitchell + + * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld. + * gcc/config/mips/t-iris6gld: New file. + * gcc/config/mips/iris6gld.h: Likewise. + +Fri Jul 2 13:23:39 1999 Gavin Romig-Koch + + * c-decl.c (widest_integer_literal_type_node, + widest_unsigned_literal_type) : New. + (init_decl_processing): Handle/use the two new types. + * c-common.c (type_for_size,type_for_mode) : Same. + * c-lex.c (yylex) : Same. + * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : + Same. + * c-tree.h (widest_integer_literal_type_node, + widest_unsigned_literal_type) : New. + +Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com) + + * dwarfout.c (field_byte_offset): Correctly compute the object's + byte offset for the first bit of a field which crosses an alignment + boundary on a !BYTES_BIG_ENDIAN target. + +Fri Jul 2 01:36:36 1999 Robert Lipe + + * fixinc.svr4: Fix by deleting protos for htons and + ntohs. + +Fri Jul 2 00:46:47 1999 Richard Henderson + Jeff Law + + * ginclude/varargs.h (va_dcl): Use word_mode for type of + __builtin_va_list. + + * except.c: Include intl.h. + (expand_eh_return): Set current_function_cannot_inline. + (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label. + * function.h (struct function): Add eh_return_stub_label. + * flow.c (delete_unreachable_blocks): Don't merge across EH edges. + * Makefile.in (except.o): Depend on intl.h. + +Fri Jul 2 00:04:23 1999 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the + same as offsettable in cases 1 and 2. + +Thu Jul 1 20:54:10 1999 Richard Henderson + + * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8). + (extlh, extwh): Likewise. + +Thu Jul 1 11:05:25 1999 Gavin Romig-Koch + + * c-lex.c (yylex): Improve 'integer constant out of range' messages. + +Wed Jun 30 16:51:41 1999 Nick Clifton + + * configure.in: Add arm-pe and thumb-pe targets. + * configure: Regenerate. + + * thumb.c (arm_naked_function_p): New function: Determines if + a function is naked (has no gcc generated prologue/epilogue). + (is_called_in_ARM_mode): Return true if the func has the + interfacearm attribute. + (output_return): Do not generate a return for naked functions. + (thumb_function_prologue): Do not generate a prologue for + naked functions. + (thumb_expand_prologue): Do not generate a prologue for naked + functions. + (thumb_expand_epilogue): Do not generate an epilogue for naked + functions. + (arm_valid_machine_decl_attribute): New function, copied from + arm.c: Permit naked and interfacearm attributes. + + * config/arm/pe.c: New file: Support code for arm-pe target. + * config/arm/pe.h: New file: Header file for arm-pe target. + * config/arm/tpe.h: New file: Header file for thumb-pe target. + * config/arm/t-thumb-pe: New file: Makefile fragment for + thumb-pe target. + +1999-07-01 Mark Kettenis + + * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if + -fPIC or -fpic is specified. + +Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com) + + * expr.c (emit_block_move): Use copy_to_mode_reg for + !TARGET_MEM_FUNCTIONS case too. + + * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as + appropriate. + * configure: Rebuilt. + (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default. + * pa.h: Include dbxelf.h. Delete various dbx/stabs related + definitions made redundant by dbxelf.h inclusion. Delete + lots of definitions related to assembly output that are + specific to the SOM object format. + * pa.c (output_function_prologue): Do not emit the function's + name for OBJ_ELF. + * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining. + * pa-pro.h: Deleted. + * som.h: New file with SOM specific definitions. + * elf.h: New file with ELF specific definitions. + + * elfos.h (const_section): Output a tab before assembler directives. + (ctors_section, dtors_section): Likewise. + (ASM_OUTPUT_SECTION_NAME): Likewise. + + * pa/pa1.h: Delete unused file. + +Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa*-hp-hpux11*): New configuration. + * configure: Rebuilt. + * pa/pa-hpux11.h: New file. + * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp + command line. + + * mips.md (leasi, leadi): New patterns. + + * expr.c (emit_block_move): Properly handle case where one of the + block move arguments has a queued increment or decrement. + (clear_storage): Similarly. Fix formatting goof. + +1999-06-28 "David O'Brien" + + * fixinc/inclhack.def(stdio_va_list): This patch Removes a + semicolon from the BSD VA_LIST replacement expression. + + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + + * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines + now use the fixincl program. + +Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com) + + * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA + case. Also make the PIC register call_used. + + * m68k.h (FINALIZE_PIC): Delete. + * m68k.c (finalize_pic): Delete. + +Mon Jun 28 05:16:35 1999 Richard Henderson + + * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles + to memory. + +Mon Jun 28 04:07:27 1999 David Edelsohn + + * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note. + +Sun Jun 27 02:39:08 1999 Richard Henderson + + * jump.c (jump_optimize_1): Validate the cmov copy to a temporary. + +Sat Jun 26 17:18:18 1999 David Edelsohn + + * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output. + +Fri Jun 25 11:33:24 1999 Richard Henderson + + * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4. + +Fri Jun 25 13:41:25 1999 David Edelsohn + + * rs6000.c (output_toc): Always use hex values for floating-point + constants. Store single-precision values in upper-half of TOC + entry in 64-bit mode. + * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64 + to final constraints. + (fix_truncdfsi2 splitter): Change pattern matching fctiwz. + (fctiwz): Improve accuracy of RTL for pattern. + +Fri Jun 25 11:26:38 1999 Gavin Romig-Koch + + * expr.c (expand_expr): Allow RTL_EXPR's through the + MAX_INTEGER_COMPUTATION_MODE checks. + +Fri Jun 25 06:06:37 1999 Richard Henderson + + * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define + such that MASK_SUPPORT_ARCH is not negative. + +Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (verify_dominator): Properly handle ADDR_VEC and + ADDR_DIFF_VEC insns that appear inside loops. + +Thu Jun 24 22:54:05 1999 David Edelsohn + Jeff Law + + * rs6000.md (movdf_hardfloat32): Revert previous patch. + Handle LO_SUM the same as offsettable in cases 1 and 2. + * rs6000.c (find_addr_reg): Revert previous patch. + +Thu Jun 24 22:43:12 1999 Philippe De Muyter + + * system.h (strstr): New external function declaration. + * acconfig.h (NEED_DECLARATION_STRSTR): New define slot. + * configure.in (GCC_NEED_DECLARATIONS): Check for strstr. + * config.in, configure: Rebuilt. + +1999-06-24 Tom Tromey + + * gcc.c (main): Read user-specified specs files after computing + additional startfile_prefixes. + +Thu Jun 24 15:00:47 1999 Mark Mitchell + + Revert these two patches: + + Thu Jun 17 21:34:24 1999 J"orn Rennecke + * loop.c (strength_reduce): When doing biv->giv conversion, update + reg note of NEXT->insn. + + Thu Jun 17 17:22:07 1999 J"orn Rennecke + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + (recombine_givs): Set ix field after sorting. + +Wed Jun 23 21:26:00 1999 J"orn Rennecke + + * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p + for the parts of an UNSPEC / UNSPEC_VOLATILE. + +1999-06-23 Bruce Korb + + *fixinc/inclhack.def: Add fix development commentary + (read_ret_type): reactivate and add selection clause + (zzz_*): tweak output file name to match what is used in hackshell.tpl + *fixinc/{fixincl.x|inclhack.sh}: regen + +Wed Jun 23 00:48:21 1999 Jason Merrill + + * expr.c (expand_expr): STRIP_NOPS before checking against + MAX_INTEGER_COMPUTATION_MODE + (check_max_integer_computation_mode): Likewise. + +Tue Jun 22 20:23:43 1999 Jim Wilson + + * md.texi (smul@var{m}3_highpart): Add missing 's' prefix. + +1999-06-22 Jim Wilson + + * expr.c (store_expr): When target is a promoted subreg, return a + promoted subreg as a result. + +Tue Jun 22 17:14:58 1999 Michael Meissner + + * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU + coding standards. + (dwarf2out_define): Mark unused parameters appropriately. + (gen_unspecified_parameters_die): Ditto. + (gen_subprogram_die): Fix signed/unsigned warnings. + (gen_variable_die): Ditto. + +1999-06-22 Bruce Korb + + * fixinc/inclhack.def(end_else_label): combined else_label + and endif_label and fixed the sed expression. + *fixinc/{fixincl.x|inclhack.sh}: regen + +Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting + 'x' when handling non-offsettable addresses + +Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com) + + * final.c (shorten_branches): Don't try to split an insn that has + been deleted. + +Mon Jun 21 12:47:39 1999 Mark Mitchell + + * config/mips/mips.c (symbolic_expression_p): New function. + (mips_select_rtx_section): Put symbolic expressions in the + data section, not the read-only data section. + +Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com) + + * rs6000.md (find_addr_reg): Handle LO_SUM addresses. + +Mon Jun 21 20:10:42 1999 Richard Henderson + + * collect2.c (main): Log frame table count. + (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. + (scan_prog_file) [COFF]: Handle frame tables. + + * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. + (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. + * alpha/elf.h: Undef them again. + * alpha/vms.h: Remove their definitions. + +Tue Jun 22 03:17:53 1999 J"orn Rennecke + + * sh.c (machine_dependent_reorg): When fixing up fp pcloads, + remove the clobber of r0 and change the REG_UNUSED note to + REG_INC. + +1999-06-21 Jakub Jelinek + + * real.c (ereal_from_double): Fix for 64-bit big endian hosts. + * emit-rtl.c (gen_lowpart_common): Add case for hosts where double + fits in HOST_WIDE_INT and one uses union to access a long constant + as double. + +Mon Jun 21 17:18:25 1999 Richard Henderson + + * sparc.c (sparc_override_options): Don't allow profiling for + code models other than medlow. + (sparc_function_profiler): New function from old FUNCTION_PROFILER + macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION. + (sparc_function_block_profiler): Likewise. Use user_label_prefix. + (sparc_block_profiler): Likewise. + (sparc_function_block_profiler_exit): Likewise. + * sparc.h (FUNCTION_PROFILER): Call new sparc.c function. + (FUNCTION_BLOCK_PROFILER): Likewise. + (BLOCK_PROFILER): Likewise. + (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. + (MCOUNT_FUNCTION): New. + * sparc/pbd.h (FUNCTION_PROFILER): Delete. + (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. + * sparc/sun4o3.h (FUNCTION_PROFILER): Delete. + (MCOUNT_FUNCTION): New. + * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete. + (BLOCK_PROFILER): Delete. + (MCOUNT_FUNCTION): New. + +Mon Jun 21 14:11:29 1999 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Fix typo in case 2. + +Mon Jun 21 12:27:17 1999 Vladimir Makarov + + * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Add the macros. + + * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Ditto. + + * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Ditto. + + * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): + Ditto. + +Mon Jun 21 14:58:42 1999 Nick Clifton + + * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu + types. + +Mon Jun 21 06:22:21 1999 Mark Elbrecht + + * i386/djgpp.h (LIB_SPEC): New. + (STARTFILE_SPEC): New. + + * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete. + +Mon Jun 21 06:19:33 1999 Philippe De Muyter + + * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in + compiler flags. + + * system.h (WSTOPSIG): New macro. + +Mon Jun 21 05:33:15 1999 Mumit Khan + + * c-pragma.c (push_alignment): Don't ignore alignments greater than + 4 bytes. + (insert_pack_attributes): Take into account member natural + alignment. + + * i386/winnt.c (exports_head): New static variable. + (i386_pe_record_exported_symbol): New function. + (i386_pe_asm_file_end): Use. + * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported + symbols to be emitted at end of assembly. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + + * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and + -iwithprefix. + +Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com) + + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced + in last change. + +Sun Jun 20 17:27:20 1999 Richard Henderson + + * haifa-sched.c (sched_analyze_1): Use free_list instead of + zapping reg_last_uses directly. + (sched_analyze_2, sched_analyze_insn): Likewise. + (sched_analyze): Likewise. Don't clear reg_last_uses on calls. + +Sun Jun 20 16:57:29 1999 David Edelsohn + + * rs6000.md (movdf_hardfloat32): Use worst case insn length + attributes for cases 1 and 2. + +Sat Jun 19 22:52:55 1999 Richard Henderson + + * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered + instead of set. + +Sat Jun 19 05:40:07 1999 Philip Blundell + + * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN. + +Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use + PIC_OFFSET_TABLE_REGNUM for general alloaction. + (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register + must be stacked if it is used for PIC accesses. + * arm.c (use_return_insn): Handle PIC register specially. + (output_return_instruction): Likewise. + (output_func_{prologue,epilogue}): Likewise. + (output_expand_prologue): Likewise. + + * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf. + (*strsi_predec): Renamed from *strqi_predec. + (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc. + (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec. + + * arm.c (arm_override_options): Remove warning about PIC code + not being supported. + +Fri Jun 18 23:47:06 1999 David Edelsohn + + * rs6000.c (find_addr_reg): New function. + * rs6000.h (find_addr_reg): Declare. + (offsettable_addr_operand): Delete. + * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads + from and stores to GPRs. + +Fri Jun 18 15:44:18 1999 Richard Henderson + + * alpha.c (alpha_expand_block_move): Use get_insns rather than + gen_sequence as argument to emit_no_conflict_block. + +Fri Jun 18 07:02 1999 Bruce Korb + + * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX + * fixinc/inclhack.def(dgux_int_varargs): script must end with \n + *fixinc/fixincl.x: regen + *fixinc/inclhack.sh: regen + +Thu Jun 17 15:06:10 PDT 1999 Don Lindsay + + * added support for -mpcrel (PC relative addressing for m68k) + based on code done by Michael Tiemann . + * invoke.texi (m68000 options): Add documentation for -mpcrel flag. + * m68k.c (print_operand_address): Handle 32-bit PIC case. + (comments for general_src_operand): Add some explanation + about EXTRA_CONSTRAINTS. + (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel. + * m68kelf.h (OVERRIDE_OPTIONS): Ditto. + (LEGITIMATE_PIC_OPERAND_P): Fix typo. + (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case. + * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o. + (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro. + (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic + if not already set. + (OVERRIDE_OPTIONS): Merge in changes from m68k.h. + * m68k.h (TARGET_PCREL): New target flag. + (TARGET_SWITCHES): Add "pcrel" as a recognized switch. + (OVERRIDE_OPTIONS): Add checks for -mpcrel. + (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that + contains a SYMBOL_REF. Relax this constraint during reload, since + we want to use the predicates, not reload's built-in concept of a + valid memory address, to control what insns need reloading. + (EXTRA_CONSTRAINT): Define constraints to accept pc-relative + operands (essentially 'g', 'm', and 's' under normal circumstances). + * m68k.c (print_operand): Cause printing of pc-relative addresses + to include pc register. + (print_operand_address): Ditto. + (general_src_operand): Accept operands that are not only + general_operands, but are also valid when used as a pc-relative + source. + (nonimmediate_src_operand): Similar, for nonimmediate_operands. + (memory_src_operand): Similar, for memory_operands. + (pcrel_address): New predicate to accept the special case of a + pc-relative address. + * m68k.md (many patterns): Rewrite common SImode, HImode, and + QImode insns to accept *_src_operand instead of *_operand where + pc-relative operands can fit. For example, a pc-relative operand + can be used as a memory source operand for addsi3, but not as a + memory destination. + * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h. + +Fri Jun 18 09:11:07 1999 Nick Clifton + + * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe + .thumb_set pseudo op to mark aliases of thumb functions. + +Wed Jun 16 18:19:13 1999 Nick Clifton + + * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in + preference to ASM_OUTPUT_DEF, if it is defined. + + * tm.texi: Document new, optional target macro + ASM_OUTPUT_DEF_FROM_DECLS. + +Thu Jun 17 15:07 1999 Bruce Korb + + * fixincludes: ISCNTL patch + * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL(). + (dgux_int_varargs): new for DG/UX + * fixinc/{fixincl.x,inclhack.sh}: Regenerated. + +Thu Jun 17 21:34:24 1999 Jeff Law + + * invoke.texi (ia32 options): Fix typo. + +Thu Jun 17 21:34:24 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, update + reg note of NEXT->insn. + +Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (move_movables): Note issues with replacing REGs with + SUBREGs. + * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly. + +Thu Jun 17 13:28:30 1999 David O'Brien + + * i386/freebsd-elf.h (LINK_SPEC): Fix typo. + + * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and + the reference to `mcount' was not correct for the ELF on FreeBSD. + +Thu Jun 17 17:22:07 1999 J"orn Rennecke + + * loop.c (strength_reduce): When doing biv->giv conversion, fix up + reg_biv_class. + + (recombine_givs): Set ix field after sorting. + +Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com) + + * emit-rtl.c (operand_subword): Tighten checks for when it is safe + to safe to extract a subword out of a REG. + +Thu Jun 17 01:45:24 1999 J"orn Rennecke + + * sh.md (mulsi3): Don't add a no-op move at the end. + +Wed Jun 16 20:29:00 1999 J"orn Rennecke + + * cse.c (cse_insn): Don't put hard register source into tables for + the last insn of a libcall. + +Wed Jun 16 19:44:33 1999 J"orn Rennecke + + * loop.c (strength_reduce): Insert sets of derived givs at every + biv increment, even if it's the only one. + +Wed Jun 16 10:33:02 1999 Jason Merrill + + * dwarfout.c (add_incomplete_type): New fn. + (output_type): Call it. + (retry_incomplete_types): New fn. + (dwarfout_finish): Call it. + + From Eric Raskin : + (output_type): Output types for bases. + +Tue Jun 15 12:51:23 1999 Alexandre Oliva + + * mips.c (mips_output_conditional_branch): Add `break' + between `default' label and `close braces'. + +Tue Jun 15 01:55:20 1999 David O'Brien + + * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library + specifications and make it realistic. + (LIB_SPEC): Likewise. + +Mon Jun 14 15:38:43 1999 Jim Wilson + + * config/mips/mips.c (mips_secondary_reload_class): Check for + (PLUS (SP) (REG)) and return appropriate register class. + * config/mips/mips.md (reload_insi): Delete predicate for operand 1. + Handle (PLUS (SP) (REG)). + (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn. + (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead + of emit_insn for tablejump. + +Mon Jun 14 17:26:40 1999 David Edelsohn + + * rs6000.c (output_prolog): RS6000_CALL_GLUE must be + asm_fprintf format string by itself. + (output_function_profiler): Likewise. + +Mon Jun 14 12:57:38 1999 David Mosberger + + * combine.c (simplify_logical, case AND): Only call + simplify_and_const_int if the mode is no wider than HOST_WIDE_INT + or the constant is positive. + +Mon Jun 14 11:43:41 1999 Nick Clifton + + * configure.in: Fix typo in rs6000-ibm-aix4 case. + * configure: Regenerate. + +Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com) + + * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not + require a sub-version #. + * configure: Rebuilt. + +1999-06-14 Robert Lipe (robertlipe@usa.net) + + * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition. + +Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell + + * c-typeck.c (process_init_element): Detect excess elements in + char array initializer. + +1999-06-14 Andreas Jaeger + + * gcc.texi: Mention gcc 2.96 instead of egcs 1.00. + +Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn + + * invoke.texi (Option Summary): Add -fpermissive flag. + +Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com) + + * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands + that require PIC code sequences. + +Wed Jun 9 16:29:01 1999 Nick Clifton + + * configure.in: Add new target: thumb-elf. + * configure: Regenerate. + * config/arm/t-thumb-elf: New file: Makefile fragment for + thumb-elf build. + * config/arm/telf.h: New file: Header file for thumb-elf + build. + +Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument. + * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide + initializers is some circumstances. + + * fixinc/inclhack.def (endif_label): Add additional selector for + more bogus stuff after #endif statements. + * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. + +Thu Jun 10 20:44:36 1999 Mumit Khan + + * i386/cygwin.h (SET_ASM_OP): Define. + +Thu Jun 10 20:37:57 1999 Mumit Khan + + * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns. + +Thu Jun 10 19:23:00 1999 J"orn Rennecke + + * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the + latter. + + * sh.md (ic_invalidate_line_i): Remove second alternative. + +Thu Jun 10 06:55 1999 Bruce Korb + + *fixinc/inclhack.def(sun_auth_proto): We do not know how to + test for the presence of valid prototypes. Delete bypass expr. + (ioctl_fix_ctrl): Correct the selection expression. + (no_double_slash): Correct quoting rules + *fixinc/fixincl.x: regen + *fixinc/inclhack.sh: regen + +Thu Jun 10 15:08:15 1999 Nick Clifton + + * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t. + +Wed Jun 9 15:57:57 1999 Franz Sirl + + * rs6000.md (movsi_got_internal_mem): Delete. + * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM. + (GOT_TOC_REGNUM): Delete. + (PIC_OFFSET_TABLE_REGNUM): Define. + (FINALIZE_PIC): Disable. + * rs6000.c (rs6000_got_register): New code for fixed pic register. + (rs6000_replace_regno): Delete. + (rs6000_finalize_pic): Likewise. + (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM. + +Wed Jun 9 19:44:26 1999 J"orn Rennecke + + * loop.c (loop_insn_first_p): Don't compare LUIDs when P + is a note; use <= for the compare; advance P while it is + a NOTE. + +Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (no_double_slash): Fix quoting for test. + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt. + + * varasm.c (remove_from_pending_weak_list): Verify t->name + is non-NULL before passing it to strcmp. + +Wed Jun 9 06:50 1999 Bruce Korb + + *fixinc/inclhack.def(sun_auth_proto): bypass the patch if + the typed arguments are not part of a comment + (ioctl_fix_ctrl): Added a purpose comment + *fixinc/fixincl.x: regenerate + *fixinc/inclhack.sh: regenerate + +Wed Jun 9 22:57:02 1999 Michael Hayes + + * invoke.texi: Add C4x invocation docs. + +Wed Jun 9 22:34:38 1999 Michael Hayes + + * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS): + Define new macros. + * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use + TARGET_EXPOSE_LDP. + (c4x_legitimize_reload_address): New function. + * config/c4x/c4x.md: Update docs. + +Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com) + + * fixincludes: Avoid removing '.'. + * fixinc/fixinc.svr4: Likewise. + * fixinc/fixinc.winnt: Likewise. + * fixinc/inclhack.tpl: Likewise. + * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt. + +1999-06-09 Kaveh R. Ghazi + + * fixinc/inclhack.def (sun_catmacro): Escape parens in the select + pattern. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. + +Wed Jun 9 03:10:34 1999 Mumit Khan + + * c-pragma.c (handle_pragma_token): Handle `#pragma pack()' + correctly. + +Tue Jun 8 13:06:15 1999 Jim Wilson + + * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000. + * configure: Regenerate. + +Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com) + + * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute + values. + +Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (avoid_bool): Also catch + "typedef [unsigned] int bool". + * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. + + * m68k/x-hp3bsd44: Delete obsolete and incorrect file. + * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44. + * configure: Rebuilt. + +Mon Jun 7 22:05:03 1999 Mark Kettenis + + * config/i386/gnu.h: Include right after , + such that we can override its definitions if necessary. + (CPP_SPEC): New define. Support processor specific predefines via + %(cpp_cpu). + (CC1_SPEC): New define. Support processor specific compiler + options via %(cc1_cpu). + (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for + -static. + +1999-06-07 Kaveh R. Ghazi + + * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace + between sed's -e flag, and the open-quote following it. + * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. + +Mon Jun 7 20:34:20 1999 Robert Lipe + Jeffrey A Law (law@cygnus.com) + + * varasm.c (assemble_start_function): Remove the function + from the pending weak decls list when we define a function. + (assemble_variable): Similarly for variables. + (weak_finish): Ignore items on the list with a NULL name. + (remove_from_ending_weak_list); New function to "remove" an item + from the pending weak declarations list. + +Mon Jun 7 19:27:07 1999 Jerry Quinn + + * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns. + +Mon Jun 7 14:07:39 1999 Dave Brolley + + * c-lex.c (GETC): Redefine to call getch. + (UNGETC): Redefine to call put_back. + (putback_buffer): New structure type. + (putback): New static structure. + (getch): New function. + (put_back): New function. + (yylex): Replace unused bytes from bad multibyte character. + +Mon Jun 7 13:33:39 1999 Dave Brolley + + * cpplib.c (do_define): Cast `alloca' return value. + (do_include, do_undef, do_pragma): Likewise. + * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return + values. + * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values. + * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value. + +Sun Jun 6 11:58:34 1999 Jakub Jelinek + + * sparc.md (abstf2): This should be an expand. + (split after abstf2_notv9): Fix mode. + (abstf2_hq_v9): New pattern. + (abstf2_v9): Only use when no hard quad. + (absdf2_v9): Fix if target is not the same as source. + (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2): + Add correct output constraints. + +Sat Jun 5 17:04:16 1999 Craig Burley + + From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100: + * invoke.texi: Clarify text vis-a-vis Intel CPUs. + +Sat Jun 5 12:11:24 1999 Mark Mitchell + + * mips.h (mips_output_conditional_branch): New function. + (mips_adjust_insn_length): Likewise. + (ASSEMBLER_SCRATCH_REGNUM): New macro. + (ADJUST_INSN_LENGTH): Likewise. + * mips.c (print_operand): Add `F' and `W' for floating-point + comparison opcodes. + (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths + are now in bytes. + (mips_adjust_insn_length): New function. + (mips_output_conditional_branch): New function. + * mips.md (length): Adjust attribute definition to handle + conditional branches. Change lengths to bytes, rather than + instructions throughout. Remove length attribute from + instructions whose length is four bytes, and rely on the default + instead. + (dslot): Fix typo in comment. + Reword conditional branch patterns to use + mips_output_conditional_branch. + +Fri Jun 4 13:30:27 1999 Rainer Orth + + * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads. + (LIB_SPEC): Likewise. + Link with -lprof1_r for -g/-pg. + +1999-06-04 Andreas Schwab + + * loop.c (check_dbra_loop): Fix change of Jan 19. + +Fri Jun 4 00:12:40 1999 Marc Espie + + * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define. + (STARTFILE_SPEC): Define, override the svr4.h version. + (ENDFILE_SPEC): Likewise. + +Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com) + + * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h + * fixinc/fixincl.x: Regenerated. + * fixinc/inclhack.sh: Regenerated. + +Fri Jun 4 05:42:23 1999 J"orn Rennecke + + * sh.c (barrier_align): Don't return early for normal branch/barrier + when optimizing for SH2. + +Thu Jun 3 22:27:50 1999 Robert Lipe + + * i386/udk.h (LINK_SPEC): Correct linker search path for + system libraries. + +Fri Jun 4 03:20:40 1999 J"orn Rennecke + + * sh.c (fixup_addr_diff_vecs): Emit braf reference label. + (braf_label_ref_operand): Delete. + * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand. + * sh.md (casesi_jump_2): Operand1 is now the inside of a + label_ref, and has no predicate. + The pattern has a predicate to guard against invalid substitutions. + (dummy_jump): Delete. + (casesi): Update use of casesi_jump_2. + +Thu Jun 3 07:48 1999 Bruce Korb + + *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression + *fixinc/fixincl.x: regenerate + *fixinc/inclhack.sh: regenerate + +Thu Jun 3 02:15:07 1999 Jason Merrill + + * dwarf2out.c (add_incomplete_type): New fn. + (gen_struct_or_union_type_die): Call it. + (retry_incomplete_types): New fn. + (dwarf2out_finish): Call it. + +Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com) + + * gcse.c (insert_insn_end_bb): Correct placement of insns when the + current block starts with a CODE_LABEL and ends with a CALL and + we can not find all the argument setup instructions for the CALL. + +Wed Jun 2 15:44:15 1999 Mark Mitchell + + Revert this change: + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. + +Wed Jun 2 21:53:05 1999 J"orn Rennecke + + * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT. + +Wed Jun 2 12:25:55 1999 Richard Henderson + + * alpha.c (override_options): Thinko in last patch. + + * alpha/osf.h (CPP_SUBTARGET_SPEC): Define. + (LIB_SPEC): Recognize -pthread. + +Wed Jun 2 08:42:55 1999 Nick Clifton + + * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronize with + definition in config/arm/coff.h + * config/arm/coff.h: Add comment about USER_LABEL_PREFIX. + +Wed Jun 2 07:07 1999 Bruce Korb + + * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark + fixes that need "file=xxx\n" prepended before invocation + (start_fixer - new): starting the fixer process is complex enough + to warrent its own routine. It prepends the "file=xxx\n" stuff. + (process): uses the new routine; omit usage of putenv() + * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT + * fixinc/fixincl.x: regenerate + +Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com) + + * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc) + and version #s (1.1 -> 2.96) as needed. + * README.g77: Kill way out of date file in the toplevel directory. + +Wed Jun 2 00:52:34 1999 David O'Brien + + * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h, + i386/freebsd-elf.h no longer requires it. Instead include svr4.h. + * configure: Rebuilt. + * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define. + (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise. + (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise. + (SWITCH_TAKES_ARG): Likewise. + * i386/freebsd.h: Remove FREEBSD_NATIVE support. + * config/t-freebsd: Moved from config/i386/ so it can used for all + FreeBSD targets. + +Mon May 31 02:22:55 1999 Philippe De Muyter + + * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o. + +Wed Jun 2 00:08:34 1999 Robert Lipe + + * configure.in (i[34567]86-*-udk*): Install headers with cpio. + * configure: Rebuilt. + +Tue Jun 1 19:06:22 1999 David Edelsohn + + * rs6000/aix41.h (RS6000_CALL_GLUE): Define. + * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise. + * rs6000/rs6000.c (rs6000_file_start): Use putc. + (rs6000_output_load_toc_table): Same. + (output_prolog, output_mi_thunk): Same. + * rs6000/rs6000.h (SELECT_SECTION): Formatting. + (ASM_GLOBALIZE_LABEL): Use putc. + +Mon May 31 15:23:23 1999 Richard Henderson + + * alpha.md (reload_*_help): New patterns and splitters. + (reload_*): Use them. + (mov[qh]i): Likewise. + +Mon May 31 11:48:07 1999 Mark Mitchell + + * cccp.c (handle_directive): Handle backslash-newlines in quoted + strings correctly. + +Mon May 31 09:36:11 1999 Cort Dougan + + * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux. + +Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com) + + * flow.c (mark_regs_live_at_end, insn_dead_p, + mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM + and HARD_FRAME_POINTER_REGNUM special treatment if reload + hasn't run or the frame pointer is needed. + * haifa-sched.c (attach_deaths): Likewise. + * sched.c (attach_deaths): Likewise. + +Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c (jump_optimize_1): Only set CAN_REACH_END if + calculate_can_reach_end returns nonzero. + + * configure.in (native gas tests): Search for an assembler in the + same manner that the installed compiler will. + * configure: Rebuilt. + * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too. + + * alias.c (find_base_term): Improve handling of addresses + constructed from binary operations. + +Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com) + + * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces. + +Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com) + + * function.h (cleanup_label, frame_offset): Declare. + (tail_recursion_label, tail_recursion_reentry): Likewise. + (arg_pointer_save_area, rtl_expr_chain): Likewise. + * stmt.c (cleanup_label, frame_offset): Delete extern declarations. + (tail_recursion_label, tail_recursion_reentry): Likewise. + (arg_pointer_save_area, rtl_expr_chain): Likewise. + +Sat May 29 19:08:10 1999 Philip Blundell + + * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already + defined. + * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define. + (MAX_OFILE_ALIGNMENT): Define. + +Fri May 28 21:40 1999 Robert Lipe + + * fixincl.c: Replace local include scheme with #includes of + gansidecl.h and system.h. + * procopen.c: Likewise. + * server.c: Likewise. + +Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com) + + * i386/t-dgux (EXTRA_PARTS): Add crti.o + (crti.o): Add build rule and dependencies. + * fixinc/fixinc.dgux: Use modified _int_varargs.h + +Fri May 28 03:41:02 1999 Franz Sirl + + * rs6000/sysv4.h (CC1_SPEC): Add support for -profile + (LIB_LINUX_SPEC): Likewise. + (LIB_LINUX_SPEC): Add support for -pthread + (CPP_OS_LINUX_SPEC): Likewise. + (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are + specified. + +Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org) + + * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for + conditional move. + (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support. + (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison + for IEEE math and CC_FCOMI. + (put_jump_code): No IEEE if CC_FCOMI is set. + +1999-05-27 Andreas Schwab + + * fold-const.c (fold_truthop): Make the field reference unsigned + when converting a single bit compare. + +Thu May 27 02:40:48 1999 J"orn Rennecke + + * loop.c (strength_reduce): Don't do biv->giv conversion on constants. + +Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com) + + * varasm.c (STRIP_NAME_ENCODING): Remove default definition. + * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm + version did. + + * reload.c (push_reload): Do not call remove_address_replacements + when presented with identical optional reloads. + +Wed May 26 14:18:05 1999 Richard Henderson + + * alpha.h (MASK_FIX, TARGET_FIX): New. + (MASK_*): Reorganize constants. + (CPP_AM_FIX_SPEC): New. + (TARGET_SWITCHES): Add FIX. + (EXTRA_SPECS): Likewise. + (CPP_CPU_EV6_SPEC): Use FIX, not CIX. + (SECONDARY_MEMORY_NEEDED): Likewise. + (REGISTER_MOVE_COST): Likewise. + * alpha.c (override_options): Add FIX support. Always use + ALPHA_TP_PROG for ev6. + * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX. + * alpha/elf.h (ASM_FILE_START): Look at FIX too. + * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX. + +Wed May 26 09:53:05 1999 Mark Mitchell + + * fold-const.c (fold): STRIP_NOPS when deciding whether or not + something is a candidate for optimize_bit_field_compare. + +Wed May 26 09:40:02 1999 Mark Mitchell + + * gcc.texi (Passes): Document branch-shortening. + * invoke.texi (Debugging Options): Document the fact that `-dp' + outputs length information for instructions. + +Wed May 26 08:49:31 1999 Nick Clifton + + * flow.c: Revert previous delta. + +Wed May 26 06:05:10 1999 Nick Clifton + + * flow.c (insn_dead_p): Check against frame_pointer_rtx not + FRAME_POINTER_REGNUM. + (mark_set_1): Ditto. + (mark_used_regs): Ditto. + +Wed May 26 02:19:31 1999 Philip Blundell + + * arm.h (NEED_PLT_GOT): Fix mistake in last change. + (GOT_PCREL): New macro. Define to 1 if not already defined. + * arm/elf.h (GOT_PCREL): Define to 0. + * arm.c (arm_finalize_pic): Take into account the setting of + GOT_PCREL. + +Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com) + + * output.h (STRIP_NAME_ENCODING): Provide default definition. + * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING. + + * flow.c (mark_set_1): Do not record BLKmode stores as dead + store elimination candidates. + +Tue May 25 08:55:57 1999 Gavin Romig-Koch + + * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if + TARGET_GAS. + +Mon May 24 20:30:08 1999 Jim Wilson + + * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h. + Add use of x-aix41-gld. + +Mon May 24 16:44:09 1999 Jakub Jelinek + + * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define. + (ASM_OUTPUT_DESTRUCTOR): Define. + +Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the + last CODE_LABEL in a loop if we have previously passed a jump + to the top of the loop. + +Mon May 24 07:56:29 1999 Nick Clifton + + * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when + applying Philip's patch. + +Mon May 24 01:02:12 1999 Mark Mitchell + + * stmt.c (expand_end_bindings): Ignore any elements of VARS that + are not VAR_DECLs. + +Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com) + + * loop.c (strength_reduce): Grow reg_single_usage as needed. + +Sun May 23 10:13:20 1999 David O'Brien + + * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic. + Also remove a useless comment. + +Sun May 23 10:05:23 1999 Jerry Quinn + + * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0. + +Sat May 22 21:02:06 1999 David Edelsohn + + * collect2.c (main): Only generate import or export file and add + to link arguments if non-empty. Use xmalloc not alloca. + (write_{export,import}_file): Delete. + (write_aix_file): New function. + (locatelib): Use xmalloc not malloc. + (GCC_OK_SYMBOL): Do not check type if aix64. + +Sat May 22 09:35:51 1999 Philip Blundell + + Based on patch by Scott Bambrough and Pat Beirne: + * config/arm/arm.c (making_const_table): New variable. + * config/arm/arm.h (making_const_table): Declare. + (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if + appropriate. + * config/arm/arm.md (consttable_4, consttable_8, consttable_end): + Keep track of when we are building the constant table. + +Sat May 22 09:34:22 1999 Philip Blundell + + * config/arm/arm.c (arm_override_options): Fix erroneous warning + message. + +Sat May 22 09:06:33 1999 Nick Clifton + + * config/arm/arm.h (NEED_PLT_GOT): Only define if not already + defined. + +Sat May 22 07:17:05 1999 Nick Clifton + + * tm.texi (FUNCTION_ARG): Correct description of a stack element + in a PARALLEL. + +Sat May 22 01:27:49 1999 Mark Mitchell + + * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE. + +Fri May 21 21:19:02 1999 Franz Sirl + + * rs6000.c (output_mi_thunk): Enable full support again. + +Fri May 21 20:09:52 1999 J"orn Rennecke + + * sh.h (BRANCH_COST): Define. + +Thu May 20 10:00:42 1999 Stephen L Moshier + + * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. + +Thu May 20 09:58:57 1999 Jan Hubicka + + * function.c (assign_stack_local): Align stack slot properly. + (assign_outer_stack_local): Likewise. + +Thu May 20 10:38:43 1999 Mark Mitchell + + * expr.h (lang_expand_constant): Declare. + * toplev.c (lang_expand_constant): Define it. + * varasm.c (output_constant): Use it. + +Thu May 20 11:28:53 1999 Kaveh R. Ghazi + + * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide): + Change function definitions to K&R style. + +Thu May 20 08:16:39 1999 Bruce Korb + + * fixinc/fixincl.c: We must not ignore SIGCLD now. + +Thu May 20 07:06:39 1999 Alexandre Oliva + + * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options + * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments + (several places): omit static initialization + (process): use single fd, since only the read fd is used + * fixinc/gnu-regex.c: define 'const' away, if not supported + * fixinc/procopen.c(several places): omit static initialization + * fixinc/server.c: define 'volitile' away, if not supported + +1999-05-20 Andreas Schwab + + * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use + asm_fprintf and %L to generate the label name. + * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels. + +Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com) + + * jump.c (can_reverse_comparison_p): Do not abort if the comparison + insn for a conditional jump can not be found. + +Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com) + + * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations + on variables in specific sections other than .sbss and .sdata. + +Wed May 19 03:56:56 1999 Mark Mitchell + + * stmt.c (expand_return): Call start_cleanup_deferral and + end_cleanup_deferral around conditional code. + +Wed May 19 08:40:08 1999 Bruce Korb + + * fixinc/fixincl.tpl: Avoid depending on ANSI C features for + filename lists. Utilizes new "krstr" AutoGen function. + * fixinc/fixincl.x: Rebuilt. + +Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz) + + * i386.c (output_float_compare): Avoid GNU-C extensions. + +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. + +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-2000 b/gcc/ChangeLog-2000 new file mode 100644 index 00000000000..536137bb657 --- /dev/null +++ b/gcc/ChangeLog-2000 @@ -0,0 +1,32124 @@ +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. + * c-common.c (ridpointers): Declare. + * c-common.h (enum rid): Declare. + (NORID): Likewise. + (ridpointers): Likewise. + * c-lex.c (ridpointers): Don't declare. + (init_lex): Initialize ridpointers. + * c-lex.h (enum rid): Don't declare. + (NORID): Likewise. + (RID_FIRST_MODIFIER): Likewise. + (ridpointers): Likewise. + +2000-06-30 J. David Anglin + + * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they + have global scope. + +2000-06-30 Martin von Loewis + + * invoke.texi (-Wreturn-type): In C++, a missing return type is + always an error. + +2000-06-30 Catherine Moore + + * c-common.c (decl_attributes): Differentiate between + types and type decls for alignment. + +2000-06-30 Nathan Sidwell + + * cpp.texi: Document #pragma GCC dependency + * cppfiles.c (open_include_file): Set date to unknown. + (_cpp_compare_file_date): New function. + (read_include_file): Set file date. + * cpphash.h (struct include_file): Add date member. + (_cpp_compare_file_date): Prototype. + * cpplib.c (parse_include): Add trail parameter. Adjust. + (do_include): Adjust parse_include call. + (do_import): Likewise. + (do_include_next): Likewise. + (gcc_pragmas): Add dependency pragma. + (do_pragma_dependency): New pragma. + +2000-06-29 Jason Merrill + + * dwarf2out.c (output_loc_operands): Don't abort on codes that have + no operands. + +2000-06-29 Jim Wilson + + * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for + a volatile mem and FR_REGS. + +2000-06-29 Mark Mitchell + + * c-common.c: Include c-common.h, not c-lex.h or c-tree.h. + * c-common.h (flag_const_strings): Declare. + (warn_format): Likewise. + (flag_traditional): Likewise. + (flag_isoc99): Likewise. + (warn_parentheses): Likewise. + (warn_conversion): Likewise. + (C_TYPE_OBJECT_P): Likewise. + (C_TYPE_INCOMPLETE_P): Likewise. + (C_TYPE_FUNCTION_P): Likewise. + (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. + (C_EXP_ORIGINAL_CODE): Likewise. + (build_unary_op): Likewise. + (build_binary_op): Likewise. + (lvalue_p): Likewise. + (default_conversion): Likewise. + (common_type): Likewise. + * c-tree.h (C_TYPE_OBJECT_P): Remove. + (C_TYPE_INCOMPLETE_P): Likewise. + (C_TYPE_FUNCTION_P): Likewise. + (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. + (C_EXP_ORIGINAL_CODE): Likewise. + (common_type): Likewise. + (default_conversion): Likewise. + (build_binary_op): Likewise. + (build_unary_op): Likewise. + (lvalue_p): Likewise. + (flag_const_strings): Likewise. + (warn_format): Likewise. + (warn_conversion): Likewise. + (flag_traditional): Likewise. + (flag_isoc99): Likewise. + (warn_parentheses): Likewise. + +2000-06-29 James E. Wilson + + * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2. + + * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the + same. Only tie XFmode with XFmode. + +2000-06-29 Zack Weinberg + + * c-decl.c, timevar.c, tlink.c: Include intl.h. + * Makefile.in: Update deps. + +2000-06-29 Andrew Haley + + * toplev.c (main): On an IA-64, make flag_unwind_tables defauit + to true. + +2000-06-29 Andrew Haley + + * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not + bytes: remove the multiply by 8. + +2000-06-29 Philipp Thomas + + * rtl.c : Revert NLS changes. + * gcc.c : Fix bug in display_help introced by my last changes. + +Wed Jun 28 21:09:33 2000 Raja R Harinath + + * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use + DECL_CONTEXT, not DECL_FIELD_CONTEXT. + +2000-06-29 Michael Hayes + + * flow.c (flow_depth_first_order_compute): Fix algorithm. + +2000-06-28 Philipp Thomas + + * c-decl.c : Mark strings for translation. + (parmlist_tags_warning): Use distinct messages instead + of conditional expressions. + * diagnostic.c (v_message_with_decl): Mark string for translation. + * gcc.c: Mark messages for translation. + (display_help): Combine messages into one string where necessary. + * mips-tfile: Add intl.h. Mark messages for translation. + * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark + messages for translation. + * timevar.c: Mark messages for translation. + * tlink.c: Likewise. + * toplev.c: Likewise. + +Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com) + + * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly. + + * alpha/alpha-interix.h: Delete redundant -Asystem(interix), + use -isystem instead of -idirafter. + * i386/i386-interix.h: Likewise. + +2000-06-28 Jason Merrill + + * dwarf2out.c (output_loc_operands): Don't support >1 byte output + unless DWARF2_DEBUGGING_INFO is defined. + (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs. + +2000-06-28 Richard Henderson + + * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH. + +2000-06-28 Jakub Jelinek + + * cpplex.c (output_line_command): Output correct #line if a header + is including itself and is not protected against multiple inclusion. + +2000-06-28 Zack Weinberg + + * cppfiles.c (open_include_file): If open(2) returns EMFILE or + ENFILE, close all cached file descriptors and try again. + (_cpp_execute_include): Keep a count of the number of times + each header is included. + (close_cached_fd): New function. + * cpphash.h (struct include_file): Rename before to + include_count; all users updated. Make include_count and sysp + unsigned short. + * cppinit.c (cpp_finish): If -H, report headers that could use + reinclude guards. + (report_missing_guard): New function. + +Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka + + * i386.md (prologue_set_got): Set length_immediate field. + (testqi_ccno_1): Add missing '@' character. + +2000-06-27 Jason Merrill + + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use + DWARF_FRAME_REGNUM. + +2000-06-27 Andrew Macleod + + * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no + unsigned macros available. + +2000-06-27 Richard Henderson + + * config/ia64/ia64.c (emit_insn_group_barriers): Special case + epilogue_deallocate_stack. + + * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit + completers for UNORDERED and ORDERED as well. + * config/ia64/ia64.md (bunordered, bordered): New. + (sunordered, sordered): New. + +Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka + + * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands. + * i386.c (ix86_attr_length_default): Kill. + (ix86_attr_length_immediate_default, ix86_attr_length_address_default): + New. + * i386-protos.h (ix86_attr_length_default): Kill + (ix86_attr_length_immediate_default, ix86_attr_length_address_default): + Add prototype + * i386.md (attribute type): Add "test". + (attribute length_prefix): Kill. + (attribute length_opcode): Kill. + (attribute i387, mode, length_immediate, length_address, prefix_data16, + prefix_rep, prefix_0f, modrm): New. + (attribute length): Compute using the new attributes. + (attribute pent_prefix): New. + (attribute pent_pair): Compute using pent_prefix. + (all insn patterns): Set mode,modrm and immediate_length attributes where + needed. + (cmpsi patterns): Compute sizes properly for test instruction. + (movsi, movhi patterns): Compute sizes properly for eax shortcuts. + (movstricthi_xor, movstrictqi_xor): New patterns. + (andsi/andhi): Use splitters to generate xor instructions. + (xorqi_ext_1): New pattern. + (movstricthi->movstricthi_xor peep2): New. + +Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka + + * i386.md (addqi_low_1): Remove. + +2000-06-27 Philipp Thomas + + * 1750a.h: Mark help strings for options/switches for translation. + * a29k.h: Likewise. + * alpha.h: Likewise. + * arm.h: Likewise. + * pe.h: Likewise. + * riscix.h: Likewise. + * c4x.h: Likewise. + * clipper.h: Likewise. + * convex.h: Likewise. + * elxsi.h: Likewise. + * fr30.h: Likewise. + * fx80.h: Likewise. + * h8300.h: Likewise. + * i370.h: Likewise. + * cygwin.h: Likewise. + * dgux.h: Likewise. + * djgpp.h: Likewise. + * i386.h: Likewise. + * osf1elf.h: Likewise. + * osfrose.h: Likewise. + * sco5.h: Likewise. + * win32.h: Likewise. + * i860.h: Likewise. + * paragon.h: Likewise. + * i960.h: Likewise. + * ia64.h: Likewise. + * m32r.h: Likewise. + * mcore.h: Likewise. + * mips.h: Likewise. + * mn10300.h: Likewise. + * ns32k.h: Likewise. + * pdp11.h: Likewise. + * pj.h: Likewise. + * aix.h: Likewise. + * aix41.h: Likewise. + * aix43.h: Likewise. + * beos.h: Likewise. + * rs6000.h: Likewise. + * sysv4.h: Likewise. + * linux.h: Likewise. + * linux64.h: Likewise. + * sp64-elf.h: Likewise. + * sparc.h: Likewise. + * splet.h: Likewise. + * v850.h: Likewise. + * convex.h (TARGET_SWITCHES): Provide descriptions and mark them + for translation. + * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES. + Properly document option and mark for translation. + * sp86x-elf.h: Likewise. + +2000-06-27 Bernd Schmidt + + Add MMX and SSE registers to i386 machine description. + * i386-protos.h (ix86_constant_alignment, ix86_data_alignment, + ix86_local_alignment): Declare. + + * i386.h (TARGET_MMX, TARGET_SSE): New. + (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, + REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER, + enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers. + (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New. + (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros. + (RETURN_IN_MEMORY): Handle MMX/SSE. + (REG_PARM_STACK_SPACE): Added so the first three TImode parameters + also get stack space. + (MUST_PASS_IN_STACK): Added TImode to the default definition. + (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words. + (MMX_REGISTER_NAMES): New. + (ALIGN_MODE_128): New macro. + (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function. + (DATA_ALIGNMENT): Likewise. + (LOCAL_ALIGNMENT): Likewise. + (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not + TARGET_MMX/TARGET_SSE. + (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros. + (REG_CLASS_FROM_LETTER): 'y' for MMX regs. + (SECONDARY_MEMORY_NEEDED): Be conservative about copying between + SSE/MMX regs and something else. + (CLASS_MAX_NREGS): 1 for SSE and MMX regs. + (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs, + 3 if moving between MMX regs and something else. + + * i386.c (reg_class): Add SSE_REGS, MMX_REGS. + (regclass_map): Add MMX/SSE registers. + (print_operand): Add code to print XMMWORD as appropriate. + (ix86_split_movdi): Abort for MMX regs. + (init_cumulative_args): Also allow SSE_REGS + (function_arg_advance, function_arg): Likewise + (print_reg): Support 'm'. Add case for TImode. + (override_options): TARGET_SSE implies TARGET_MMX. + (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment): + New functions. + + * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to + FIRST_SSE_REG. + * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in + memory. + * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise. + * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise. + +2000-06-26 Geoff Keating + + * ssa.c (struct rename_set_data): Change the name of field + 'set_dest' to 'old_reg'. Add comments. + (struct rename_context): Change the name of 'set_data' to + 'new_renames'. Add new field 'done_renames'. + (create_delayed_rename): New function. + (apply_delayed_renames): New function. + (rename_insn_1): Use the new functions. Handle CLOBBERS. Handle + SUBREGs and similar by emitting a move. + (new_registers_for_updates): Delete, functionality moved to + apply_delayed_renames. + (rename_block): Handle moves emitted by rename_insn_1 by putting + them into a SEQUENCE with the original insn. Add sanity checks + and comments. + (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially. + (rename_equivalent_regs): Expand SEQUENCEs out to individual insns. + +2000-06-26 Andrew Macleod + Jason Merrill + + * dwarf2.h (enum dwarf_call_frame_info): Add + DW_CFA_def_cfa_expression. + * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a + dw_loc_descr_struct entry. + (struct cfa_loc): New structure to track a CFA location. + (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset. + (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an + offset, plus handle DW_CFA_def_cfa_expression. + (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a + cfa_loc record. + (dwarf2out_def_cfa): Entry point maintained for compatibility. + (dwarf_cfi_name): Add DW_CFA_def_cfa_expression. + (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'. + (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'. + (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not + cfa_reg. + (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl + sequences for the new DW_CFA_def_cfa_expression record. + (dwarf2out_frame_debug): Use new variables/fields.A + (output_cfi): Handle DW_CFA_def_cfa_expression. + (output_cfa_loc): New function to generate a CFI record for + DW_CFA_def_cfa_expression. + (get_cfa_from_loc_descr): New function to get a cfa_loc record from + a dw_loc_descr sequeunce. + (build_loc_descr): Build a dw_loc_descr from a cfa_loc record. + (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr, + size_of_locs, output_loc_operands, output_loc_sequence): Move into + unwind info section. + * frame.h (frame_state): Add base_offset and indirect fields. + * frame-dwarf2.c (decode_stack_op): New function to interpret a + dw_loc_descr operation. + (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression. + (struct frame_state): Add base offset and indirect fields. + * libgcc2.c (next_stack_level): Support indirect loading for CFA. + +2000-06-26 Joseph S. Myers + + * c-decl.c (grokdeclarator): Don't warn about `long long' in C99. + Make warnings about implicit int be pedwarns in C99. Don't warn + about duplicate type qualifiers in C99. + (start_function): Make warning about implict int return type be a + pedwarn in C99. + * c-lex.c (yylex): Don't warn about `long long' in C99. + * c-typeck.c (c_expand_return): In C99, always pedwarn about + `return' with no value in function returning non-void. + +2000-06-26 Richard Henderson + + * c-typeck.c (pedwarn_c99): New. + * diagnostic.c (verror, vwarning, vpedwarn): Export. + * toplev.h: Prototype them. + +2000-06-26 J. David Anglin + + * c-typeck.c (digest_init): Return error_mark_node node when + TREE_TYPE (init) == error_mark_node. + +2000-06-26 Philipp Thomas + + * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no, + test for msgfmt without path instead. + * configure: Rebuilt. + +2000-06-25 Theodore Papadopoulo + + * gengenrtl.c (special_rtx): Fix typo in comment. + +2000-06-26 Michael Hayes + + * mklibgcc.in (LIB2FUNCS): Add missing space. + +2000-06-24 Bernd Schmidt + + * tree.h (enum tree_index): Add vector type nodes. + Add accessor macros for them. + (TYPE_REPRESENATION_TYPE): New macro. + * tree.c (build_common_tree_nodes_2): Build these nodes. + (finish_vector_type): New function. + * c-common.c (type_for_mode): Handle vector modes. + * tm.texi (VECTOR_MODE_SUPPORTED_P): Document. + + * dbxout.c (dbxout_type): Handle VECTOR_TYPEs. + * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers. + * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs. + (gen_type_die): Likewise. + * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers. + (fundamental_type_code): Likewise. + (type_is_fundamental): VECTOR_TYPEs aren't. + (output_type): Handle VECTOR_TYPEs. + +2000-06-25 Kazu Hirata + + * config/arm.c: Fix a comment typo. + * config/arm.h: Likewise. + +2000-06-25 Philipp Thomas + + * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog + compiler found. + AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no. + * configure: Rebuilt. + +2000-06-25 John David Anglin + + * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions. + +2000-06-25 Herman A.J. ten Brugge + + * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating + libgcc.a. + +2000-06-24 Marc Espie + + * collect2.c (resolve_lib_name): Move '/' check out of loop. + +2000-06-24 Dirk Duellmann + + * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0. + +2000-06-24 Jakub Jelinek + + * stmt.c (expand_decl_cleanup): Emit a dummy insn after + last_unconditional_cleanup. + +2000-06-24 Bernd Schmidt + + * tree.def (VECTOR_TYPE): New node type. + * tree.h: Adjust some comments to reflect addition of vector types. + (TYPE_VECTOR_SUBPARTS): New macro. + * stor-layout.c (layout_type): Handle VECTOR_TYPE. + * c-convert.c (convert): Likewise. + * convert.c (convert_to_integer): Handle vector modes. + (convert_to_vector): New function. + * convert.h (convert_to_vector): Declare. + * expr.c (convert_move): Handle vector modes. + * expmed.c (extract_bit_field): Don't abort for vector modes. + +2000-06-24 Marek Michalkiewicz + + * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype. + * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr): + New functions, common code moved from function_{prologue,epilogue} + and extended to support the -mtiny-stack option. + (function_prologue, function_epilogue): Use them. + Use lo8/hi8 consistently for asm output readability. + (avr_hard_regno_mode_ok): New function. + * config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack. + (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c. + (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function. + * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack. + Write SPH before SPL. + (*movqi): No need to disable interrupts for just one "out" + in alternative 5. Change length attribute from 4 to 1. + * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__): + Write SPH before SPL. + +2000-06-24 Bernd Schmidt + + * rtl.texi (Vector Operations): New node. + (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus. + (Conversions): Add ss_truncate, us_truncate. + * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER, + VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE, + US_TRUNCATE): New rtx codes. + * machmode.def: Add vector modes. + * machmode.h (enum mode_class): Add MODE_VECTOR_INT and + MODE_VECTOR_FLOAT. + (INTEGER_MODE_P): Check for MODE_VECTOR_INT. + (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT. + (VECTOR_MODE_P): New. + +2000-06-24 Nathan Sidwell + + * cpp.texi: Clarify #pragma GCC namespace. + +2000-06-24 Philipp Thomas + + * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build + all catalogs specified in ALL_LINGUAS. + * configure: Rebuilt. + +2000-06-23 Jakub Jelinek + + * config/sparc/sparc.md (reload_outdi+1): Handle + HOST_BITS_PER_WIDE_INT == 64 case correctly. + (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise. + +2000-06-23 Geoffrey Keating + + * alias.c (fixed_scalar_and_varying_struct_p): Don't examine + struct vs. scalar-ness when -fno-strict-aliasing. + +2000-06-23 Nathan Sidwell + + * cpplib.c (struct pragma_entry): New structure. + (pragma_dispatch): Pragma dispatcher. + (top_pragmas, gcc_pragmas): New static variables. + (do_pragma): Use pragma_dispatch. + (do_pragma_gcc): New pragma handler. + * cpp.texi: Update. + +2000-06-23 Jakub Jelinek + + * calls.c (compute_argument_addresses): Force stack slots into + alias set 0. + * expr.c (emit_push_insn): Force pushes into alias set 0. + +2000-06-23 Richard Henderson + + * config/ia64/ia64.md (pred_rel_mutex): Only take one register. + * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match. + +2000-06-22 Jason Merrill + + * toplev.c (compile_file): Always call timevar_print. + * Makefile.in (calls.o): Depend on TIMEVAR_H. + +2000-06-22 Nathan Sidwell + + * varasm.c (constant_descriptor): Make contents unsigned char. + (mark_const_hash_entry): Adjust. + (const_hash): Just hash the code of unknown nodes. + (compare_constant_1): Adjust for unsigned char. + Use language specific expander on unknown nodes. + (record_constant_1): Likewise. + +2000-06-21 Zack Weinberg + + * cppfiles.c (cpp_make_system_header): New function. + * cpplib.h: Prototype it. + * cpplib.c (do_line, do_pragma_system_header): Use it. + * fix-header.c (read_scan_file): Use it. + + * fix-header.c (check_macro_names): Cast second arg of + cpp_defined to const unsigned char *. + (read_scan_file): Make getchar_call const unsigned char. + +2000-06-21 Zack Weinberg + + * cppfiles.c: Include splay-tree.h, not hashtab.h. + (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete. + (destroy_include_file_node): New. + (_cpp_init_include_hash): Rename _cpp_init_include_table. + Create a splay tree, not a hash table. + (open_include_file): Look up the path in the include table, + do the multiple include optimization here, etc. + (cpp_included): Walk the path. + (find_include_file): Just walk the path calling + open_include_file, or call it directly for an absolute path. + (_cpp_fake_ihash): Rename _cpp_fake_include and update for new + scheme. + (read_include_file): Update for new scheme. Don't close the + file unless reading fails. + (_cpp_execute_include, cpp_read_file): Tweak for new scheme. + + * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete. + (struct include_file): New. + (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New + macros. + (CPP_PEDANTIC, CPP_WTRADITIONAL): Update. + Update prototypes. + + * cppinit.c: Include splay-tree.h. + (cpp_reader_init, cpp_cleanup): Update. + + * cpplib.h (struct cpp_buffer): Change ihash field to + 'struct include_file *inc'. Remove system_header_p. + (struct cpp_reader): Change all_include_files to a + struct splay_tree_s *. + + * cpplex.c: Update all references to cpp_buffer->ihash and/or + cpp_buffer->system_header_p. + (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD. + + * Makefile.in (SPLAY_TREE_H): New macro. + (cppfiles.o, cppinit.o): Update dependencies. + +Wed Jun 21 11:05:48 2000 Martin Buchholz + + * invoke.texi (g++): "g++" is not a script anymore. + +2000-06-20 J. David Anglin + + * function.c (round_down): Delete obsolete prototype. + + * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__. + +2000-06-20 Zack Weinberg + + * configure.in: Use 'test a = b' not 'test a == b'. + * configure: Regen. + + * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS). + + * Makefile.in: Remove all references to HOST_INTLLIBS. + + * cpplex.c (parse_name): Don't warn about $ in identifiers if + skipping. + +2000-06-20 Philipp Thomas + + * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later + for PA 2.0. + +Mon Jun 19 23:26:40 2000 J"orn Rennecke + + * Take REG_INC notes into account. + +2000-06-19 Zack Weinberg + + * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c. + (primary: IDENTIFIER): Just call build_external_ref. + * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: + Regenerate. + * c-lex.c (lastiddecl): Remove. + (yylex): Replace all instances of lastiddecl with local + variables. + + * c-typeck.c (build_external_ref): New function. Treat decls + with C_DECL_ANTICIPATED mostly the same as nonexistent decls. + Look up the decl from the id here. Call lookup_objc_ivar. + * c-lang.c (lookup_objc_ivar): Stub. + * objc/objc-act.c (lookup_objc_ivar): New function. + + * c-tree.h: Prototype lookup_objc_ivar and build_external_ref. + * c-lex.h: Don't declare lastiddecl. + +2000-06-19 Benjamin Chelf + + * c-common.h (IF_COND): Added documentation. + (THEN_CLAUSE): Likewise. + (ELSE_CLAUSE): Likewise. + (WHILE_COND): Likewise. + (WHILE_BODY): Likewise. + (DO_COND): Likewise. + (DO_BODY): Likewise. + (RETURN_EXPR): Likewise. + (EXPR_STMT_EXPR): Likewise. + (FOR_INIT_STMT): Likewise. + (FOR_COND): Likewise. + (FOR_EXPR): Likewise. + (FOR_BODY): Likewise. + (SWITCH_COND): Likewise. + (SWITCH_BODY): Likewise. + (CASE_LOW): Likewise. + (CASE_HIGH): Likewise. + (GOTO_DESTINATION): Likewise. + (COMPOUND_BODY): Likewise. + (ASM_CV_QUAL): Likewise. + (ASM_STRING): Likewise. + (ASM_OUTPUTS): Likewise. + (ASM_INPUTS): Likewise. + (ASM_CLOBBERS): Likewise. + (DECL_STMT_DECL): Likewise. + (STMT_EXPR_STMT): Likewise. + (LABEL_STMT_LABEL): Likewise. + + * c-common.def: Added documenetion for SRCLOC, EXPR_STMT, + COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT, + RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, + LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR. + +2000-06-19 Kaveh R. Ghazi + + * configure.in (--enable-checking): Update --help doc to reflect + new defaults. Ensure $ac_save_IFS is set before $IFS is changed. + +Sun Jun 18 21:42:15 2000 Richard Kenner + + * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK. + + * function.c (put_var_into_stack): Don't reference DECL_ fields + if input is a SAVE_EXPR. + Use set_mem_attributes in COMPLEX case. + +2000-06-18 Richard Henderson + + * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare. + (ia64_file_start): Declare. + * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0. + (GR_REGNO_P): Likewise. + * config/ia64/ia64.c: Many prototypes. + (ia64_reg_numbers): Constify. + (ia64_input_reg_names, ia64_local_reg_names): Likewise. + (ia64_section_threshold): Make unsigned. + (ia64_print_operand): Constify. + (fix_range): Constify. + (ia64_init_builtins): Don't compare signed vs unsigned. + (ia64_expand_builtin): Likewise. + + * config/ia64/ia64.h (EXTRA_CONSTRAINT): New. + (CONSTRAINT_OK_FOR_Q): New. + * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem. + (movsf_internal, movdf_internal): Likewise. + (cmovdi_internal): Rewrite so that constraints and predicates match; + simplify splitters. + (cmovsi_internal): Likewise. + + * config/ia64/ia64.h (ASM_SPEC): Add -x for gas. + (ASM_FILE_START): New. + * config/ia64/ia64.c (ia64_file_start): New. + (rtx_needs_barrier): Handle pred.rel.mutex. + (emit_predicate_relation_info): New. + * config/ia64/ia64.md (pred_rel_mutex): New. + * config/ia64/linux.h (ASM_SPEC): Define. + * config/ia64/sysv4.h (ASM_FILE_START): Define. + + * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko + filtering global register variables. + +2000-06-18 Kaveh R. Ghazi + + * c-common.c (add_c_tree_codes): Fix definition for traditional C. + +2000-06-17 Michael Meissner + + * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is + not present and there is a field after a '-'. + +2000-06-17 Bruce Korb + + * fixinc/check.tpl: finish the implementation of multiple tests + for a single fix + * fixinc/inclhack.def(ctrl_quotes_def): add a second test + (io_quotes_def): add a second test + (various): reorder `files' so that "limits.h" is never first + * fixinc/tests/base/*: update the testing output + +Sat Jun 17 10:33:59 2000 Richard Kenner + + * gcc.texi: Remove reference to stupid.c. + +2000-06-16 Benjamin Chelf + + * c-common.c (c_tree_code_type): New array. + (c_tree_code_length): Likewise. + (c_tree_code_name): Likewise. + (add_c_tree_codes): New function. + + * c-common.h (add_c_tree_codes): Declare. + (enum c_tree_code): New enum. + + * c-lex.c (init_parse): Added call to add_c_tree_codes. + +2000-06-16 Kaveh R. Ghazi + + * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify + select pattern to also match macro defs with only one argument. + +Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com) + + * i386.md: Create new [right,left] rotate and right shift + patterns to optimize shift by 1 bit for certain ia32 processors. + Update patterns which perform left shifts to optimize shift by + 1 bit for certain ia32 processors. + * i386.c (const_int_1_operand): New predicate. + * i386.h (PREDICATE_CODES): Handle const_int_1_operand. + * i386-protos.h (const_int_1_operand): Prototype. + +Wed Jun 14 23:46:26 2000 J"orn Rennecke + + * mips.c (machine_dependent_reorg): Fix braces for nested if. + +2000-06-14 Geoff Keating + + * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare + LABEL_REFs. + +2000-06-14 Richard Henderson + + * conflict.c (conflict_graph_compute): Don't look for REG_INC. + + * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit + auto-inc code. + + * print-rtl.c (print_rtx): Emit space before mem alias set. + +2000-06-14 David Edelsohn + + * rs6000.c (expand_block_move): Fix typo in earlier change. + (print_operand): Remove unused variables neg and op. + (toc_hash_mark_entry): Fix prototype. + +2000-06-14 Benjamin Chelf + + * c-common.h (IF_COND): Moved here from cp/cp-tree.h. + (THEN_CLAUSE): Likewise. + (ELSE_CLAUSE): Likewise. + (WHILE_COND): Likewise. + (WHILE_BODY): Likewise. + (DO_COND): Likewise. + (DO_BODY): Likewise. + (RETURN_EXPR): Likewise. + (EXPR_STMT_EXPR): Likewise. + (FOR_INIT_STMT): Likewise. + (FOR_COND): Likewise. + (FOR_EXPR): Likewise. + (FOR_BODY): Likewise. + (SWITCH_COND): Likewise. + (SWITCH_BODY): Likewise. + (CASE_LOW): Likewise. + (CASE_HIGH): Likewise. + (GOTO_DESTINATION): Likewise. + (COMPOUND_BODY): Likewise. + (ASM_CV_QUAL): Likewise. + (ASM_STRING): Likewise. + (ASM_OUTPUTS): Likewise. + (ASM_INPUTS): Likewise. + (ASM_CLOBBERS): Likewise. + (DECL_STMT_DECL): Likewise. + (STMT_EXPR_STMT): Likewise. + (LABEL_STMT_LABEL): Likewise. + (SCOPE_BEGIN_P): Likewise. + (SCOPE_END_P): Likewise. + (SCOPE_STMT_BLOCK): Likewise. + (SCOPE_NULLIFIED_P): Likewise. + (SCOPE_NO_CLEANUPS_P): Likewise. + (SCOPE_PARTIAL_P): Likewise. + (ASM_VOLATILE_P): Likewise. + (STMT_LINENO): Likewise. + (STMT_LINENO_FOR_FN_P): Likewise. + + * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR, + ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, + FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, + CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, + SCOPE_STMT, CASE_LABEL, STMT_EXPR. + + * gencheck.c (tree_codes[]): Added '#include "c-common.def"'. + +2000-06-14 David O'Brien + + * gcc.c (main): Quiet compiler warnings. argv is assumed to be + writable in parts of the GCC code. + + * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf + specification match cast. + +Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com) + + * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13. + * configure, config.in: Rebuilt. + * sys-protos.h: Similarly. + +Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com) + + * ifcvt.c (EDGE_COMPLEX): Move definition ... + * basic-block.h (EDGE_COMPLEX): ... here. + + * loop.c (check_dbra_loop): Specify the register when + generating REG_NONNEG notes and don't generate duplicates. + +2000-06-13 Jakub Jelinek + + * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define. + (struct tree_type, struct tree_decl): Add user_align member. + * stor-layout.c (layout_decl): Set DECL_USER_ALIGN. + (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined + and DECL_USER_ALIGN 0, cap alignment to this value. + (place_field): Likewise. + (finalize_type_size): Set TYPE_USER_ALIGN. + (layout_type): Likewise. + (initialize_sizetypes): Likewise. + * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp. + DECL_USER_ALIGN to 1. + * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN. + (xfer_tag): Set TYPE_USER_ALIGN. + (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. + (finish_enum): Likewise. + * stmt.c (expand_decl): Set DECL_USER_ALIGN. + (expand_anon_union_decl): Likewise. + * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. + (build_index_type): Set TYPE_USER_ALIGN. + (build_range_type): Likewise. + (build_common_tree_nodes_2): Likewise. + * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning. + +2000-06-13 Andreas Jaeger + + * configure.in: Use --enable-checking=misc,tree,gc by default if + no --enable-checking option is given and for + --enable-checking=yes. + * configure: Rebuilt. + +2000-06-13 Richard Henderson + + * libgcc2.c (ia64_throw_helper): Use __builtin_return_address. + (__throw): Don't pass the address of a label. + + * config/ia64/ia64.c (ia64_compute_frame_size): Use + current_function_is_leaf. + (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx + instead of reg_names[RETURN_ADDRESS_REGNUM]. + (ia64_init_machine_status): Reset return_address_pointer_rtx. + * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename + from RETURN_ADDRESS_REGNUM. Update all uses. + (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return + zero instead of null on failure. + (ELIMINABLE_REGS): Add ra->b0 elimination. + (CAN_ELIMINATE): Update accordingly. + (INITIAL_ELIMINATION_OFFSET): Likewise. + (REGISTER_NAMES): Use an illegal assembler name for + RETURN_ADDRESS_POINTER_REGNUM. + +2000-06-13 Richard Henderson + + * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS, + GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS. + (REG_CLASS_NAMES): Likewise. + (REG_CLASS_CONTENTS): Likewise. + (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove. + (HARD_REGNO_MODE_OK): Remove references to them. + (REGNO_REG_CLASS): Likewise. + (REG_CLASS_FROM_LETTER): Likewise. + (CLASS_MAX_NREGS): Likewise. + (REGISTER_MOVE_COST): Likewise. + * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise. + * config/ia64/ia64.md (*): Replace "e" constraints with "f". + (movqi_internal): Special case moves from zero. + (movhi_internal, movsi_internal): Likewise. + (movdi_internal): Likewise. Fill out "f" constraints. + (movsf_internal): Fill out "r" constraints. + (movdf_internal): Likewise. + +2000-06-13 Richard Henderson + + * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM + alive before reload. + + * haifa-sched.c (struct deps): Add in_post_call_group_p. + (add_dependence): Handle notes between SCHED_GROUP_P insns. + (remove_dependence): Always define. + (set_sched_group_p): New. + (sched_analyze_2): Use it. + (sched_analyze_insn): Don't special-case naked uses. Look for + and extend in_post_call_group_p. + (sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p. + (init_deps): Clear in_post_call_group_p. + +2000-06-13 Richard Henderson + + * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and + CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE + and hard-coded tests. + (simplify_set): Likewise. + (gen_lowpart_for_combine): Likewise. + * emit-rtl.c (gen_lowpart_common): Likewise. + * global.c (find_reg): Likewise. + * local-alloc.c (find_free_reg): Likewise. + * recog.c (register_operand): Likewise. + * regclass.c (init_reg_sets_1): Likewise. + (record_operand_costs, regclass): Likewise. + * reload.c (push_reload): Likewise. + * reload1.c (choose_reload_regs): Likewise. + * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE. + * local-alloc.c (struct qty): Rename changes_size to changes_mode. + Update all references. + * regs.h (struct reg_info_def): Likewise. + (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE. + * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document. + (CLASS_CANNOT_CHANGE_MODE_P): Likewise. + + * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename. + (CLASS_CANNOT_CHANGE_MODE_P): New. + * config/mips/mips.h: Likewise. + * config/pa/pa32-regs.h: Likewise. + * config/pa/pa64-regs.h: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/sh/sh.h: Likewise. + * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New. + (CLASS_CANNOT_CHANGE_MODE_P): New. + * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code. + * config/d30v/d30v.h: Likewise. + +2000-06-13 J. David Anglin + + * configure.in: Add AC_TYPE_GETGROUPS test. + * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups. + * configure: Rebuilt. + * config.in: Rebuilt. + +2000-06-13 Richard Henderson + + * explow.c (set_mem_attributes): Do nothing for NULL type. + +Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com) + + * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler + correctly. + +2000-06-13 James E. Wilson + + * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf. + +Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference. + +2000-06-13 Philipp Thomas + + * configure.in(ALL_LINGUAS): Changed en_UK to en_GB. + * configure: Rebuilt. + +2000-06-07 David O'Brien + + * configure.in: Adjust FreeBSD bits to match changes to config.guess. + We now default to ELF for the i386, and a.out is the special case. + * configure: Rebuilt. + +Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson + + * final.c (final_scan_insn): Delete notes between cc0 setter and + user when restarting from setter. + +2000-06-13 J. David Anglin + + * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and + cast to squelch signed/unsigned warnings. + +2000-06-13 Zack Weinberg + + * cpplib.c (handle_directive): Print non-NUL-terminated string + with %.*s. + +2000-06-12 Michael Meissner + + * ifcvt.c (dead_or_predicable): Don't do conditional execution + path if the machine needs extra support to do conditional + execution. + +Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com) + + * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC + to print the alias set. + * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly. + +2000-06-12 J. David Anglin + + * config/float-vax.h: Add GFLOAT defines. + +Mon Jun 12 9:44:00 2000 Mark Klein + + * configure.in: Update tm dependencies for MPE. + * configure: Rebuilt. + +2000-06-12 H.J. Lu + + * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size. + +2000-06-12 David Edelsohn + + * aix41.h (SUBTARGET_SWITCHES): Delete threads. + (CPP_SPEC): Change mthreads to pthread. + (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + * aix43.h (SUBTARGET_SWITCHES): Delete threads. + (CPP_SPEC): Change mthreads to pthread. + (LIB_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + * rs6000-protos.h (reg_or_arith_cint_operand): New. + * rs6000.c (reg_or_arith_cint_operand): New. + (num_insns_constant_wide): Decorate unsigned constant. + * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand. + * rs6000.md (addsi3): Use new predicate. + (subsi3, adddi3, subdi3): Likewise. + +2000-06-12 Mark Mitchell + + * c-common.c (lang_get_alias_set): Fix typo. + +2000-06-12 Richard Earnshaw + + * flow.c (mark_used_regs): Revert last change. + (life_analysis): Remove PROP_AUTOINC if running after reload. + (propagate_one_insn): PROP_AUTOINC is always off after reload. + +2000-06-11 Richard Earnshaw + + * flow.c (mark_used_regs): Don't call find_auto_inc after reload + has run. + +2000-06-11 Kaveh R. Ghazi + + * bb-reorder.c (build_scope_forest): Initialize variable + `curr_scope'. + + * calls.c (expand_call): Likewise for variables + `save_pending_stack_adjust' and `save_stack_pointer_delta'. + + * i386.c (function_arg_advance, function_arg): Cast to avoid + signed/unsigned warnings. + + * i386.h (MEMORY_MOVE_COST): Likewise. + + * ifcvt.c (cond_exec_process_if_block): Initialize variables + `else_start' and `else_end'. + + * libgcc2.h (__eh_alloc, __eh_free): Prototype. + + * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'. + +2000-06-10 Mark Mitchell + + * Makefile.in (libintl.a): Depend on intl.all. + +2000-06-09 H.J. Lu (hjl@gnu.org) + + * Makefile.in (c-parse.o): Also depend on output.h. + +2000-06-09 Rodney Brown + + * mcore-protos.h: discards const warning removal. + * mcore.c: discards const warning removal. + +2000-06-09 Kazu Hirata + + * config/h8300/lib1funcs.asm: Declare the machine architecture at + the beginning of the file. + +2000-06-09 J. David Anglin + + * real.h: Add prototype for ldexp. + +2000-06-09 Zack Weinberg + + * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename + it ggc_alloc, drop second argument, never clear returned memory. + * ggc-common.c (ggc_alloc_string): Use ggc_alloc. + (ggc_alloc_cleared): New. + * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not + ggc_alloc_obj. Remove ggc_alloc macro. + (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc. + + * rtl.c (rtvec_alloc): Clear the vector always. + (rtx_alloc): Clear the first word always. Remove dirty + obstack tricks (this routine is no longer a bottleneck). + * tree.c (make_node): Clear the new node always. + (make_tree_vec): Likewise. + (tree_cons): Clear the common structure always. + (build1): Likewise; also, clear TREE_COMPLEXITY. + * gengenrtl.c: Use puts wherever possible. Remove extra + newlines. + (gendef): Clear the first word of an RTX in the generator + function, irrespective of ggc_p. Initialize '0' slots to + NULL. + (genlegend): Don't generate obstack_alloc_rtx routine, just a + thin wrapper macro around obstack_alloc. + + * stmt.c (expand_fixup): Use ggc_alloc. + * c-typeck.c (add_pending_init): Use ggc_alloc. + * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem). + * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to + const0_rtx when it is created. + (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if + we are not in a function. + + * tree.c (tree_class_check_failed): Make second arg an int. + * tree.h: Update prototype. + +2000-06-09 Geoff Keating + + * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT + of an error_mark_node. + +Fri Jun 9 20:35:13 2000 Denis Chertykov + + * config/avr/avr.c (asm_output_section_name): bugfix. + +2000-06-09 Jason Merrill + + * timevar.def: Add TV_EXPAND. + * timevar.c (timevar_print): Update timing information. + * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining. + + * stmt.c (expand_return): Check for error_mark_node. + +2000-06-09 Kaveh R. Ghazi + + * configure.in: Also avoid wrapping auto-build.h with IN_GCC. + + * scan-types.sh (VALUE) Wrap use with double quotes to protect + variable against filename expansion when it contains "char *". + + * system.h (SSIZE_MAX): Delete backup definition. + + * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t) + instead of SSIZE_MAX. + +2000-06-09 Jakub Jelinek + + * configure.in: Check whether gas supports -relax. + * configure, config.in: Rebuilt. + * config/sparc/sparc.h (ASM_RELAX_SPEC): Define. + (EXTRA_SPECS): Add asm_relax. + (ASM_SPEC): Add %(asm_relax). + (TARGET_SWITCHES): Add -mrelax and -mno-relax. + * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC. + (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r. + (ASM_SPEC): Add %(asm_relax). + * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise. + * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION, + never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0 + instead of mov, so that gas can further optimize it. + +2000-06-08 James E. Wilson + + * dwarf2out.c (size_of_die, case dw_val_class_const): Use + size_of_sleb128. + (value_format, case dw_val_class_const): Use sdata format. + (output_die): Call output_sleb128. + +2000-06-08 James E. Wilson + + * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses + UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to + ASM_OUTPUT_DWARF_CONST_DOUBLE. + (output_die, case dw_val_class_unsigned_const): Correct call to + ASM_OUTPUT_DWARF_DATA8. + (output_die, case dw_val_class_long_long): Use + ASM_OUTPUT_DWARF_CONST_DOUBLE. + * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when + pos is zero. + + * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add. + (output_function_prologue): Fix mispelling. + (output_function_prologue, output_function_epilogue): Reorder to + match ia64.c definition order. + * config/ia64/ia64.c (ia64_expand_prologue): Add comment. + (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns. + Use r3 instead of r2 for large stack restores. + (ia64_output_end_prologue): New function. + (process_set): Emit ".restore sp" for epilogue stack restores. + * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define. + +2000-06-08 Jakub Jelinek + + * dbxout.c (dbxout_type_fields): Don't segfault on fields with + incomplete types. + +2000-06-08 Nathan Sidwell + + * frame.c (end_fde_sort): Remove extraneous erratic array test. + +2000-06-08 Denis Perchine + + * frame.c (start_fde_sort): Don't malloc (0). + +2000-06-07 Zack Weinberg + + * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on + error_mark_node. + * print-tree.c (print_node): The transparent_union_flag means + different things for unions and arrays. Do not inspect it + with TYPE_TRANSPARENT_UNION. + +2000-06-06 Jakub Jelinek + + * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef + returned NULL. + +Wed Jun 7 20:34:33 2000 Denis Chertykov + + * config/avr/avr.c (asm_output_section_name): output section + attributes. + * config/avr/libgcc.S (.text.libgcc): declare section attributes. + +2000-06-06 James E. Wilson + + * frame.h (struct unwind_info_ptr): Collapse version, flags, and length + fields into header field. + (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New + macros to access length, flags, and version info from header field. + * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here. + * config/ia64/crtend.asm (__do_frame_setup_aux): Add here. + (__do_global_ctors_aux): Fix caller. + * config/ia64/frame-ia64.c (get_unwind_record): Change parameter + prologue_flag to header. Pass to read_P_record. + (read_P_record): New argument header. Implement P4 format. + Multiply P7_T_SIZE by 16. + (execute_one_ia64_descriptor): New static local region_header. Pass to + get_unwind_record. Copy r to region_header if r is a header record. + (print_all_records): Likewise. + (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH. + (__get_personality, __get_except_table): Likewise. + * config/ia64/ia64.c (process_set): Do not divide offsets by 4. + +2000-06-06 Philipp Thomas + + * configure.in (AC_C_INLINE): Added. + * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default. + * configure: Regenerate. + +2000-06-06 Mark Mitchell + + * c-common.h (c_language_kind): New type. + (c_language): New variab.e + * c-common.c (lang_get_alias_set): Don't put structures in + nonzero alias sets in C++. + * c-decl.c (c_language): Define it. + * c-lex.c (doing_objc_thang): Remove. + * c-tree.h (doing_objc_thang): Make it a macro. + * objc/objc-act.c (lang_decode_option): Set c_language, not + doing_objc_thang. + +2000-06-06 Gabriel Dos Reis + + * diagnostic.c (output_maximum_width): Remove. + (doing_line_wrapping): Tweak. + (diagnostic_buffer): New object. + (global_output_buffer): New object. + (output_destroy_prefix): New function. + (default_initialize_buffer): Likewise. + (reshape_diagnostic_buffer): Likewise. + (initialize_diagnostics): Likewise. + (output_clear): Tweak. + (line_wrapper_printf): Adjust call to init_output_buffer. + (vline_wrapper_message_with_location): Likewise. Use + output_destroy_prefix. + (v_message_with_decl): Likewise. + + * diagnostic.h (struct output_buffer): Constify prefix. + (init_output_buffer, output_get_prefix): Constify. + (diagnostic_message_length_per_line): Likewise. + (reshape_diagnostic_buffer): Declare. + (default_initialize_buffer): Declare. + (initialize_diagnostics): Declare. + (diagnostic_buffer): Declare new obbject. + + * toplev.c: #include diagnostic.h + (display_help): Document diagnostic formatting options. + (decode_f_option): Handle diagnostic formatting options. + (main): Setup initialization for diagnostic messages outputter. + + * toplev.h (set_message_length): Remove. + + * Makefile.in (toplev.o): Depends upon diagnostic.h + + * invoke.texi : Document diagnostics formatting options. + +Tue Jun 6 19:25:32 2000 Philippe De Muyter + + * configure.in (Make the links): Typo fix : the file that must be + included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'. + * configure: File rebuilt. + +2000-06-06 Nathan Sidwell + + * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines. + (eh_context): Add alloc_mask and alloc_buffer emergency fallback + space. + * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on + emergency eh_context buffer, if malloc fails. + (__eh_free): Moved from cp/exception.cc. Release to emergency + eh_context buffer, if appropriate. + +2000-06-06 Jason Merrill + + * expr.c (store_expr): Fix typo. + +2000-06-06 Kaveh R. Ghazi + + * m68k.c (legitimize_pic_address): Move prototype ... + + * m68k-protos.h (legitimize_pic_address): ... here. + + * m68k.md (legitimize_pic_address): Delete prototypes. + (untyped_call): Invoke GEN_CALL(), not gen_call(). + + * nextstep.c: Include system.h and toplev.h. + (get_directive_line): Don't prototype. + (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify. + + * nextstep.h (handle_pragma): Prototype. + (SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of + objc_section_init ... + (EXTRA_SECTION_FUNCTIONS): ... here. + +Tue Jun 6 08:17:26 2000 Richard Kenner + + * sdbout.c (struct sdb_file): NAME now const. + (sdbout_init): input_file_name now const. + (sdbout_start_new_source_file): FILENAME now const. + * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above. + +2000-06-06 Gabriel Dos Reis + + * c-typeck.c (build_conditional_expr): Handle complex data types. + +2000-06-05 Jason Merrill + + * explow.c (maybe_set_unchanging): New function, broken out from... + (set_mem_attributes): Here. + * expr.h: Declare it. + * stmt.c (expand_decl): Call it. + +2000-06-05 Richard Henderson + + * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE + while looking for a register to inherit from. + +2000-06-05 Jason Merrill + + * Makefile.in (libgcc.ready): Lose. + (libgcc.mk): Just use mv, not move-if-change. + (LIBGCC_DEPS): New macro. + (libgcc.a): Use it. + (stmp-multilib): Likewise. + * mklibgcc.in (stmp-dirs): New target. Make everything depend on + it rather than the directories themselves. + (LIB2ADD): Depend on the list file rather than 'force'. + + * fold-const.c (fold, case COND_EXPR): Elide conversion between + cv-qualified versions of types. + +Mon Jun 5 14:06:18 2000 Richard Kenner + + * config/sparc/sparc.c (short_branch): Correct error in range + computation. + +2000-06-05 J. David Anglin + + * fixinc/inclhack.def: New include hacks for ultrix. + * (nested_ultrix): Replaced by ultrix_nested_svc. + * (ultrix_atof_param): test_text string added. + * (ultrix_ifdef): Modified select string. + +2000-06-05 Zack Weinberg + + * objc/objc-act.c (generate_method_descriptors): Register + objc_method_prototype_template as a GC root. + (comp_method_with_proto): Register function_type as a GC root. + (comp_proto_with_proto): Replace function_type1 and + function_type2 with a two-element array; register it as a GC root. + + (generate_protocols, build_protocol_initializer, + generate_protocol_list, build_category_initializer, + build_shared_structure_initializer): Do not cache cast_type + and/or cast_type2. + +2000-06-05 J. David Anglin + + * function.c (assign_parms): Add missing argument to set_mem_attributes + call. + +2000-06-05 Nathan Sidwell + + * tree.h (VOID_TYPE_P): New macro. + (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P. + * c-decl.c (grokdeclarator): Use VOID_TYPE_P. + (get_parm_info): Likewise. + (store_parm_decls): Likewise. + (combine_parm_decls): Likewise. + (finish_function): Likewise. + * c-typeck.c (build_function_call): Likewise. + (build_binary_op): Likewise. + (build_conditional_expr): Likewise. + (internal_build_compound_expr): Likewise. + (convert_for_assignment): Likewise. + * stmt.c (expend_expr_stmt): Likewise. + (warn_if_unused_value): Likewise. + (expand_return): Likewise. + * c-parse.in (primary): Likewise. + * c-parse.y, c-parse.c, c-parse.h: Regenerate. + * objc/objc-parse.y, objc/objc-parse.c: Regenerate. + +Mon Jun 5 06:46:28 2000 Richard Kenner + + * alias.c (get_alias_set): If compnent is addressable, use alias + set of component. + * c-decl.c (init_decl_processing): Don't call record_component_aliases. + (grokdeclarator): Likewise. + * c-typeck.c (common_type): Likewise. + +2000-06-04 Alex Samuel + + * Makefile.in (OBJS): Remove dyn_string.o + (dyn-string.o): Delete rule. + * dyn-string.c: Delete file + * dyn-string.h: Likewise. + +2000-06-04 Kaveh R. Ghazi + + * Makefile.in (intl.*): Honor nonzero exit codes in the intl + subdir. + +2000-06-03 Geoff Keating + + * alias.c (record_component_aliases): Don't inspect + DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures. + +Sat Jun 3 19:05:30 2000 Michael Meissner + + * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call + it with the pattern to do machine dependent work. + (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined, + use it to modify the true/false tests used in conditional + execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are + defined, invoke them if the conversion to conditional execution + was successful or not. + + * tm.texi (IFCVT_MODIFY_TESTS): Document. + (IFCVT_MODIFY_INSN): Ditto. + (IFCVT_MODIFY_FINAL): Ditto. + (IFCVT_MODIFY_CANCEL): Ditto. + +Sat Jun 3 15:26:13 2000 Matt Kraai + + * toplev.c (main): Fix misspellings of possibility and language. + +2000-06-03 Richard Henderson + + * alias.c (record_alias_subset): Initialize has_zero_child in the + superset. + +2000-06-03 Richard Earnshaw (rearnsha@arm.com) + + * arm.md (untyped_call): Use GEN_CALL macro. + +2000-06-02 Pekka Nikander + + * Makefile.in: Use $(MAKE) not "make" + +Fri Jun 2 19:31:03 2000 Richard Kenner + + * alias.c (struct alias_set_entry): New field has_zero_child. + (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase. + (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET, + do nothing. + Call record_component_aliases for aggregate types. + (record_alias_subset): Set has_zero_child. + (record_component_aliases, case ARRAY_TYPE): Do nothing if + TYPE_NONALIASES_COMPONENT. + (record_component_aliases, case RECORD_TYPE): Test + DECL_NONADDRESSABLE_P. + * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead + of TREE_ADDRESSABLE. + * calls.c (initialize_argument_information): Only test + TYPE_TRANSPARENT_UNION for UNION_TYPE. + * function.c (assign_parms): Likewise. + * integrate.c (function_cannot_inline_p): Likewise. + * stor-layout.c (finish_record_layout): Don't call + record_component_aliases. + * tree.h (struct tree_int_cst): Use struct tree_common. + (struct tree_real_cst, struct tree_string): Likewise. + (struct tree_complex, struct tree_identifier): Likewise. + (struct tree_list, struct tree_vec, struct tree_exp): Likewise. + (struct tree_block, struct tree_type, struct tree_decl): Likewise. + (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK. + (TYPE_NONALIASES_COMPONENT): New macro. + (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK. + (DECL_NONADDRESSABLE_P): New macro. + (struct tree_decl): Reorder bits for clarity of how many left; + add non_adressable. + +2000-06-02 Jason Merrill + + * Makefile.in (libgcc.a): Also depend on $(LIB2ADD). + * mklibgcc.in (force): New target. + Make LIB2ADD stuff depend on it. + +2000-06-02 Richard Henderson + + * alias.c (lang_get_alias_set): Remove. + (get_alias_set): Call it directly, not indirectly. + * c-common.c (lang_get_alias_set): Rename from c_get_alias_set. + * c-common.h (c_get_alias_set): Don't declare. + * c-decl.c (init_decl_processing): Don't set lang_get_alias_set. + * expr.h (lang_get_alias_set): Declare as function, not pointer. + +2000-06-02 Bruce Korb + + * fixinc/server.c(sig_handler): resume closing server on SIGPIPE + (server_setup): define the server's master pid + (close_server): actually do the deed IFF we are the server's master + +2000-06-02 Jakub Jelinek + + * c-common.c (c_get_alias_set): Check whether signed_type did not + return its argument before calling get_alias_set on the result. + +2000-06-02 Andrew MacLeod + + * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE. + +Fri Jun 2 00:22:52 2000 J"orn Rennecke + + * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave. + (CONDITIONAL_REGISTER_USAGE): Mac registers are call used + for TARGET_NOMACSAVE. + (NOMACSAVE_BIT): Define. + (TARGET_NOMACSAVE): Define. + (TARGET_SWITCHES): Add "nomacsave". + +2000-06-02 Toshiyasu Morita + + * sh.md (untyped_call): Remove excess parameters + +2000-06-01 Loren J. Rittle + + * fixinc/inclhack.def (osf_namespace_a): Relax expression to + match that used before the conversion to c_fix style. + * fixinc/fixincl.x: regenerate + +2000-06-01 Stan Cox + + * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix + macro argument typo. + +2000-06-01 Zack Weinberg + + * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve + error message. + * cpplib.c (parse_include): Remove support for VAX-C + "#include starlet" misfeature. + +2000-05-31 Laurynas Biveinis + + * cppfiles.c: conditionally define O_BINARY. + (open_include_file): pass O_BINARY to open(). + +2000-06-01 Richard Henderson + + * i960.c (i960_br_predict_opcode): Remove. + (i960_print_operand) [+]: Emit branch prediction hints. + (i960_function_arg): Return early for VOIDmode. + (i960_round_align): Return early for incomplete types. + * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New. + * i960.md (all conditional branches): Add "%+". + +Thu Jun 1 12:24:21 2000 Richard Kenner + + * alias.c (get_alias_set): Don't call language-specific routine more + than is needed and clean up code a bit. + * c-common.c (c_get_alias_set): All references whose type + is char get alias set 0, but character types need not. + * varasm.c (make_function_rtl): Don't call set_mem_attributes. + (make_decl_rtl): Don't call it for FUNCTION_DECL. + +2000-06-01 Bruce Korb + + * fixinc/tests/base/...: new base result files + +Thu Jun 1 09:37:35 2000 Clinton Popetz + + * config/i386/i386.c (ix86_use_fcomi_compare): Make global. + * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare. + * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we + will use FCOMI. + +2000-06-01 Richard Henderson + + * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h. + + * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing. + +2000-05-31 Richard Henderson + + * config/ia64/ia64.c (sdata_symbolic_operand): Consider small + CONSTANT_POOL_ADDRESS_P addresses for .sdata. + * config/ia64/sysv4.h (SELECT_RTX_SECTION): New. + +2000-05-31 Richard Henderson + + * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove. + * config/ia64/ia64.c (ia64_expand_prediction): Move code ... + (ia64_print_operand) [+]: ... here. Use current_output_insn. + * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New. + * config/ia64/ia64.md (all branch/call patterns): Use %+. + +2000-05-31 Richard Henderson + + * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers. + +2000-05-31 Richard Henderson + + * ifcvt.c (merge_if_block): Be prepared for JOIN to have no + remaining edges. + (find_if_block): Allow THEN with no outgoing edges. + * flow.c (merge_blocks_nomove): Remove a barrier not following + a jump as well. + +2000-05-31 Richard Henderson + + * flow.c (propagate_block): Move initialization of mem_set_list ... + (init_propagate_block_info): ... here. Also track blocks with + no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE. + +2000-05-31 Richard Henderson + + * jump.c (jump_optimize_1): Revert 05-18 change. + +2000-05-31 Mark Mitchell + + * invoke.texi: Remove documentation for -fguiding-decls. + +2000-05-31 Richard Henderson + + * configure.in: Fix typo last change. + +2000-05-31 Philipp Thomas + + * configure.in (enable-nls): Enable if build == host, i.e. when + not building a canadian cross compiler. + (enable-maintainer-mode): Added for use with i18n. + * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a + cross section of ALL_LINGUAS and LINGUAS. + * configure: Rebuild. + +2000-05-31 Bruce Korb + + * fixinc/check.tpl: rework to use test result tree + * fixinc/Makefile.in: change invocation of check script + * fixinc/check.diff: No longer needed + * fixinc/fixincl.x: regenerate + * fixinc/inclhack.def: add new tests + * fixinc/tests/base/arch/i960/archI960.h: New test result + * fixinc/tests/base/curses.h: modified test result + * fixinc/tests/base/stdio.h: ditto + * fixinc/tests/base/time.h: ditto + * fixinc/tests/base/sys/asm.h: ditto + * fixinc/tests/base/sys/stat.h: ditto + * fixinc/tests/base/sys/wait.h: ditto + +Wed May 31 13:17:20 2000 Philippe De Muyter + + * except.c (clear_function_eh_region): Do not free NULL. + +Wed May 31 08:07:52 2000 Richard Kenner + + * Makefile.in (c-decl.o): Depend on rtl.h and expr.h. + * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT. + (REG_BASE_VALUE): Remove unneeded cast to unsigned. + (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT. + (find_base_decl): New function, from c_find_base_decl in c-common.c. + (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT. + (get_alias_set): Likewise. + Major rework to do more things and allow language-specific code + to just handle special-cases. + (record_alias_subset): Args are HOST_WIDE_INT. + (record_component_alias): Local vars are HOST_WIDE_INT. + Don't handle COMPLEX_EXPR. + (get_varargs_alias_set): Moved from builtins.c. + (get_frame_alias_set): New function. + * builtins.c (expand_builtin_return_address): Use frame alias set. + (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set + for setjmp buffer. + (get_memory_rtx): Rework to use set_mem_attributes. + (get_varargs_alias_set): Deleted from here. + * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT. + (c_find_base_decl): Deleted from here. + (c_get_alias_set): Remove many cases and rework to just handle + C-specific cases. + * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT. + * c-decl.c (rtl.h, expr.h): Now included. + (init_decl_processing): Call record_component_aliases on array types. + (grokdeclarator): Likewise. + Set TREE_ADDRESSABLE for all fields that are not bitfields. + * c-typeck.c (common_type): Call record_component_aliases for array. + * caller-save.c (setup_save_areas): Rework register loop for unsigned. + Set all save areas to the frame alias set. + * calls.c (initialie_argument_information): Call set_mem_attributes. + (compute_argument_addresses, expand_call): Likewise. + * explow.c (set_mem_attributes): New function. + (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg. + * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}. + LEN and OFFSET now HOST_WIDE_INT. + (clear_by_pieces): Similar changes. + (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields. + (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT. + (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES. + (clear_by_pieces_1): Likewise. + (emit_push_insn): Call set_mem_attributes. + (expand_expr, case INDIRECT_REF): Likewise. + (expand_expr, case VAR_DECL): Call change_address. + * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and + tree_low_cst. + (get_varargs_alias_set, get_frame_alias_set): New decls. + (record_base_value, record_alias_subset, lang_get_alias_set): Likewise. + (new_alias_set, set_mem_attributes): Likewse. + * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT. + (assign_stack_temp_for_type): Likewise. + Can split slot even if alias set since can copy. + Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P. + (assign_temp): Use host_integerp and tree_low_cst. + (put_var_into_stack): Properly handle SAVE_EXPR. + (put_addressof_into_stack): Likewise. + (assign_parms): Call set_mem_attributes. + Delete #if 0 code. + (fix_lexical_address): Put reference to chain into frame alias set. + (expand_function_start): Call set_mem_attributes. + * integrate.c (expand_inline_function): Likewise. + * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES. + * regmove.c (try_apply_stack_adjustment): Likewise. + * reload.c (push_reload, make_memloc): Likewise. + * reload1.c (alter_reg): Make alias sets for spilled pseudos. + * rtl.def (MEM): Update comment. + * rtl.h (MEM_ALIAS_SET): Now uses XCWINT. + (move_by_pieces): Change length to HOST_WIDE_INT. + (record_base_value, record_alias_subset): Delete from here. + * stmt.c (expand_decl): Call set_mem_attributes. + * stor-layout.c (finish_record_layout): Call record_component_aliases.i + * toplev.c (compile_file): Call init_alias_once earlier. + * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted + from here: now in alias.c. + * tree.h (struct tree_type): alias_set is HOST_WIDE_INT. + (struct tree_decl): Likewise. + (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here. + * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes. + (output_constant_def, force_const_mem): Likewise. + + * flow.c (propagate_block): If block has no successors, stores to + frame are dead if not used. + +2000-05-31 Nathan Sidwell + + * stmt (expand_end_case): Reorder conversion sequence for jump + table to avoid extra truncations. + +Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com) + + * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn + in the block is more than just a simple conditional branch. + (noce_process_if_block): Similarly. + +Tue May 30 22:25:57 2000 Alexandre Oliva + + * optabs.c (prepare_float_lib_cmp): Protect *px and *py from + queue. + +2000-05-30 Michael Meissner + + * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH + instructions. Treat LO_SUM operations as loading the full integer + constant. + +2000-05-30 Richard Henderson + + * combine.c (get_pos_from_mask): Test exact_log2 result as signed. + +2000-05-30 Richard Henderson + + * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return. + +2000-05-30 Bruce Korb + + * fixinc/tests/*: Added expected result files for fixinc's make check + * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm + +2000-05-30 Richard Henderson + + * config/alpha/alpha.md (*setne_internal): Use match_operator + instead of working down from insn. + +2000-05-30 Kaveh R. Ghazi + + * invoke.texi (-Wtraditional): Update WRT function macros. + +Tue May 30 09:57:32 2000 Philippe De Muyter + + * except.c (free_exception_table): Do not free NULL. + +2000-05-29 Zack Weinberg + + * cpplib.c (do_if): Don't save and restore only_seen_white here. + * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white + and skipping here. + +2000-05-29 Richard Earnshaw (rearnsha@arm.com) + + * flow.c (mark_used_reg): If a register is unconditionally live, + remove any conditional death information. + +2000-05-29 Richard Henderson + + * final.c (current_output_insn): New. + (final_scan_insn): Set it. + * output.h: Declare it. + +2000-05-29 Richard Henderson + + * stor-layout.c (finalize_record_size): Fix typo. + + * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END + if nlabel is null. + +2000-05-29 Zack Weinberg + + * cpplib.h (cpp_reader): Remove if_stack. Change + potential_control_macro to a cpp_hashnode *. Add skipping flag. + * cpphash.h (struct ihash): Change control_macro to a + cpp_hashnode * and shorten name to cmacro. + Add NEVER_REINCLUDE constant. + + * cppfiles.c (redundant_include_p): Drop cpp_reader argument. + Examine the cmacro node directly, no need to call cpp_defined. + (_cpp_execute_include, read_include_file): Set cmacro to + NEVER_REINCLUDE, not U"". + * cpplex.c (cpp_push_buffer): Don't set new->if_stack. + (cpp_get_token): If pfile->skipping is true, discard text and + keep scanning until we hit a directive; don't expand macros. + + * cpplib.c (struct if_stack): Remove if_succeeded, add + was_skipping. Change control_macro to a cpp_hashnode * and + shorten name to cmacro. Remove typedef IF_STACK. + (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *. + (conditional_skip, skip_if_group, + consider_directive_while_skipping): Delete. + (push_conditional): New. + (_cpp_handle_directive): Don't process directives other than + conditionals if we are skipping. + + (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif): + Update to new scheme. + (validate_else): Skip rest of line here, unconditionally. + (_cpp_unwind_if_stack): The stack is per-buffer. Force + pfile->skipping off. + + (all): Remove `scare quotes' from error messages. + +2000-05-29 Richard Henderson + + * function.c (emit_return_into_block): New line_note arg; emit it. + (thread_prologue_and_epilogue_insns): Attempt to locate a line note + for the close brace to accompany HAVE_return. Move all line notes + following the epilogue to before the NOTE_INSN_EPILOGUE_BEG. + +2000-05-29 Richard Henderson + + * longlong.h [__alpha] (count_leading_zeros): New. + (count_trailing_zeros): New. + (COUNT_LEADING_ZEROS_0): New. + + * config/alpha/alpha.c (alpha_zero_comparison_operator): New. + (alpha_split_conditional_move): New. + * config/alpha/alpha-protos.h: Prototype them. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67. + * config/alpha/alpha.md: Update ffs cix commentary. + (*ze_and_ne): New. + (*nabssf2, *nabsdf2): New. + (*mov[qhsd]icc_internal): Use add_operand. + (if_then_else constant splitters): New. + (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New. + (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New. + +2000-05-29 Richard Henderson + + * combine.c (force_to_mode) [MINUS]: Convert subtraction from + a constant to NEG or NOT when conditions allow. + + * combine.c (combine_simplify_rtx): Don't create an if_then_else + unless both args are general_operand. Don't canonicalize plus + to ior unless it helps. + + * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; + instead track register_life_up_to_date. Toggle no_new_pseudos + around if_convert. + +2000-05-28 Geoff Keating + + * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters + so output_operand doesn't see them. + +Sun May 28 18:37:07 2000 Clinton Popetz + + * lcm.c (make_preds_opaque): Fix comment. + (optimize_mode_switching): Use NORMAL_MODE instead of + MODE_USES_IN_EXIT_BLOCK. Change leftover instance of + FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE. + Handle insertions before an existing NOTE_INSN_BASIC_BLOCK. + * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE. + (MODE_USES_IN_EXIT_BLOCK): Delete. + (MODE_AT_ENTRY) Rename to NORMAL_MODE. + * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete. + (MODE_AT_ENTRY): Rename to NORMAL_MODE. + (MODE_NEEDED): Don't look for USE. + (EPILOGUE_USES): Define. + +Sun May 28 23:26:59 2000 Philippe De Muyter + + * mklibgcc.in (all): Variable initialized to `libgcc'. + +2000-05-28 Gabriel Dos Reis + + * toplev.h (skip_leading_substring): New macro. + * toplev.c (decode_f_option): Use skip_leading_substring instead + of strncmp. + (decode_W_option): Likewise. + +2000-05-28 Nick Clifton + + * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can + modify reg_names. + +2000-05-28 Richard Henderson + + * regclass.c (record_operand_costs): Protect reg_changes_size + with CLASS_CANNOT_CHANGE_SIZE. + + * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn. + +2000-05-28 Richard Henderson + + * function.c (diddle_return_value): A pcc-style struct return + returns a pointer. + +2000-05-27 Zack Weinberg + + * cppfiles.c: Read files in, using mmap if possible, then + prescan them separately. + (read_file, read_with_read): New functions. + * cpplex.c: Don't define UCHAR_MAX. + (_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read + the file here. + + * cppinit.c (handle_option): Automatically define __cplusplus, + __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see + the respective -lang switch. + + * cpphash.h (enum node_type, struct hashnode, _cpp_lookup + prototype): Move to... + * cpplib.h: ... here. Rename struct hashnode to struct + cpp_hashnode and give it a typedef. Rename _cpp_lookup to + cpp_lookup. Add 'fe_value' slot, a union tree_node *. + +2000-05-27 Geoffrey Keating + + * config/rs6000/rs6000.md (movsi): Constify 'name'. + + * regclass.c [CLASS_CANNOT_CHANGE_SIZE] + (class_can_change_size): New variable. + (reg_changes_size): New variable. + (init_reg_sets_1): Initialize class_can_change_size. + (record_operand_costs): Remove subreg_changes_size. + Don't pass it around. Instead update reg_changes_size. + (regclass): Initialize and free reg_changes_size. If a register + changes size, don't preference it to a class that contains + registers that can't change size. + (record_reg_classes): Don't look at subreg_changes_size. + +2000-05-27 Richard Henderson + + * print-rtl.c (reg_names): Remove const. + * regclass.c (reg_names): Likewise. + * regs.h (reg_names): Likewise. + * hard-reg-set.h (reg_names): Likewise. + +2000-05-27 Richard Henderson + + * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL. + +2000-05-27 Richard Henderson + + * config/alpha/alpha.c (alpha_does_function_need_gp): Test + TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef. + (alpha_expand_prologue): Emit prologue_mcount if needed. + * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0. + * config/alpha/alpha.md (prologue_mcount): New. + * config/alpha/linux.h (FUNCTION_PROFILER): Remove. + (TARGET_PROFILING_NEEDS_GP): Undef before redefining. + * config/alpha/netbsd.h: Likewise. + +2000-05-27 Richard Henderson + + * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19 + change to config/elfos.h. + +2000-05-27 Richard Henderson + + * Makefile.in (resource.o): Depend on except.h. + * except.h (output_exception_table_data): Prototype. + * genconfig.c (gen_peephole2): Prototype. + * genemit.c (main): Include ggc.h. + * genoutput.c: Revert parts of last change: include errors.h + (main): Set progname. + * recog.c: Include hard-reg-set.h before recog.h. + * resource.c: Include except.h. + + * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect + with RTX_CODE. + (alpha_write_linkage): Protect with BUFSIZ. + (alpha_need_linkage): Update prototype. + * config/alpha/alpha.c (function_arg): Move VMS code here. + (alpha_links_base): Remove. + (alpha_links): New. + (mark_alpha_links_node, mark_alpha_links): New. + (alpha_write_one_linkage): New. + (alpha_need_linkage): Use a splay tree. Build the linkage symbol. + (alpha_write_linkage): Use splay_tree_foreach. + * config/alpha/alpha.md (call_vms): Use alpha_need_linkage + to get the linkage symbol. + (call_value_vms): Likewise. + * config/alpha/elf.h (output_file_directive): Remove decl. + (ctors_section, dtors_section): Prototype. + (sbss_section, sdata_section): Prototype. + * config/alpha/vms.h (FUNCTION_ARG): Remove. + (readonly_section, link_section, literals_section): Prototype. + (ctors_section, dtors_section): Prototype. + (vms_valid_decl_attribute_p): Remove decl. + (alpha_arg_type, alpha_arg_info_reg_val): Likewise. + +2000-05-27 Geoff Keating + + * reload.c (get_secondary_mem): Don't widen floating-point modes. + + * combine.c (subst): Honor CLASS_CANNOT_CHANGE_SIZE when + substituting the REG in a (subreg:X (reg:Y ...)). + +2000-05-28 Neil Booth + + * cpplex.c (_cpp_lex_line): Merge vertical space. Flag + first token of a line BOL. Update EOF code for this. + Remove illegal directive check - it appears in the (not + yet committed) caller. + * cpplib.h (BOL): New flag. + +2000-05-28 Neil Booth + + * cpplex.c (_cpp_init_toklist): No comment space to initialize. + (_cpp_free_toklist): No comment space to free. + (expand_comment_space): Remove. + (save_comment_space): Place the comment in the current token and + not in a separate comment space. + (_cpp_lex_line): Save comments during plain code and #define + directives only. + * cpplib.h (struct _cpp_toklist): Remove comment space. + +2000-05-28 Neil Booth + + * cppexp.c (parse_assertion): Supply extra argument to + _cpp_init_toklist. + * cpplib.c (do_assert, do_unassert): Similarly. + * cpphash.h (_cpp_init_toklist) Update. + (_cpp_expand_token_space): New. + (DUMMY_TOKEN, NO_DUMMY_TOKEN): New. + * cpplex.c (_cpp_init_toklist): New argument. + (parse_string2): New argument multiline_ok. + (spell_token): Take a const cpp_token *. + (INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used. + (SPELL_ macros): Replace with enum. + (expand_token_space): Replace with _cpp_expand_token_space. + Take COUNT argument. + (IS_DIRECTIVE): Update. + (_cpp_lex_line): Update token structure before parsing number. + Don't assume start at beginning of token list. + (save_comment): Use INIT_TOKEN_NAME. + +2000-05-27 Zack Weinberg + + * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes + -Wmissing-prototypes. + * configure: Regenerate. + * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES. + + * builtins.c, calls.c: Change all instances of gen_call_* or + gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*. + * calls.c (struct_value_size_rtx): Separate definition from + initialization to avoid unused variable warning. + + * genflags.c (gen_macro): New function. + (gen_proto): Call it for gen_call_* and gen_sibcall_*. + (gen_nonproto): Delete. + (gen_insn): Put all insns on the same obstack. + (main): Generate prototypes for everything unconditionally. + + * configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented + out check for wchar_t. + * acconfig.h: Add template for ssize_t. Remove @TOP@. + * system.h: Add infrastructure for defining missing + TYPE_MAX/TYPE_MIN macros. Use it to provide fallback + definitions of UCHAR_MAX and SSIZE_MAX. + * configure: Regenerate. + * config.in: Regenerate. + + * Makefile.in (libgcc2.ready): Rename to libgcc.ready. + Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed + headers. + (clean): No need to delete libgcc1.a, libgcc1-asm.a, + libgcc2.a, or libgcc1.null. + +2000-05-27 Richard Henderson + + * Makefile.in (recog.o): Don't depend on resource.h. + * recog.c: Don't include resource.h. + (recog_last_allowed_insn): Remove. + (recog_next_insn): Remove. + (struct peep2_insn_data): New. + (peep2_insn_data, peep2_current): New. + (peep2_next_insn): New. + (peep2_regno_dead_p, peep2_reg_dead_p): New. + (peep2_find_free_register): New. + (peephole2_optimize): Track life information by insn as we go. + * recog.h: Update declarations. + * resource.c (find_free_register, reg_dead_p): Remove. + * resource.h: Remove their declarations. + * toplev.c: Include hard-reg-set.h before recog.h. + + * genconfig.c (max_insns_per_peep2): New. + (gen_peephole2): New. + (main): Call it. + * genemit.c (output_peephole2_scratches): Generate calls to + peep2_find_free_register; adjust surrounding code. + (main): Have insn-emit.c include hard-reg-set.h before recog.h. + * genrecog.c (change_state): Don't track last_insn. + (write_action): Write into *_pmatch_len before accepting. + (write_tree): Adjust peephole2_insns and subroutines to match. + + * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p. + + * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode. + (hard_int_register_operand): New. + * config/alpha/alpha-protos.h: Declare it. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand + as needed; use peep2_reg_dead_p instead of dead_or_set_p. + +2000-05-27 Richard Henderson + + * function.c (thread_prologue_epilogue_insns): Don't move the + line note at the head of the chain. Only force a lineno note + before the end of block 0. + +2000-05-27 Richard Henderson + + * gensupport.c (collect_insn_data): Record the maximum number + of alternatives, not the last seen. + + * genoutput.c: Don't include errors.h. + (struct data): Add lineno member. + (have_error): New. + (scan_operands): Use message_with_line instead of error. + (validate_insn_alternatives): Likewise. + (gen_insn): Accept and store the pattern's line number. + (gen_peephole, gen_expand, gen_split): Likewise. + (main): Don't set progname. Pass line_no to gen_foo. + +2000-05-27 Richard Henderson + + * config/d30v/d30v.c (d30v_print_operand): Handle ':'. + * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'. + * config/d30v/d30v.md (attr predicable): New. + (all insn patterns): Mark non-predicable patterns; use %: on the rest. + (andsi3*): Unify into one pattern. + (iorsi3*, xorsi3*): Likewise. + (peephole2 patterns): Use peep2_reg_dead_p; verify not a + conditional return. + (old cond_exec patterns): Remove. + (define_cond_exec): New. + +Sat May 27 11:01:27 2000 Richard Kenner + + * tree.h (TREE_CODE_LENGTH): New macro. + * c-common.c (c_find_base_decl): Use it. + * expr.c (safe_from_p): Likewise. + * print-tree.c (print_node): Likewise. + * tree.c (make_node, copy_node, get_identifier): Likewie. + (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise. + (build, build_nt, build_parse_node, simple_cst_equal): Likewise. + * fold-const.c (make_range): Likewise. + (fold): Likewise; also use first_rtl_op. + * c-iterate.c (collect_iterators): Use first_rtl_op. + * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS. + Use IS_EXPR_CODE_CLASS. + (preexpand_calls): Likewise. + * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op + and TREE_CODE_LENGTH. + * stmt.c (warn_if_unused_value): If no operands, no unused value. + +2000-05-26 Geoffrey Keating + + * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather + than '%1(%*)'. + (movdi_internal64): Likewise. + + * config/rs6000/rs6000.md: Correct order of operands for DImode + boolean patterns. + + * config/rs6000/rs6000.c (boolean_or_operator): New function. + * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator. + * config/rs6000/rs6000.md: Use boolean_or_operator instead of + boolean_operator for the boolean patterns without NOTs. + + * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename + from reg_or_u_cint_operand. Change comment and behavior. + (logical_operand): Clean up, add assertion. + (non_logical_cint_operand): Also check for + reg_or_logical_cint_operand. + * config/rs6000/rs6000.h (PREDICATE_CODES): Update. + * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand + in the expander. + (xorsi3): Likewise. + (iordi3): Likewise. + (xordi3): Likewise. + +2000-05-26 Mark Mitchell + + * tree.h (struct record_layout_info): Rename to (struct + record_layout_info_s). + * stor-layout.c (start_record_layout): Replace + `record_layout_info' with `record_layout_info_s'. + +2000-05-26 Richard Earnshaw + + * flow.c (find_label_refs): New function. + (find_basic_blocks_1): Call it for each alternative of a call + placeholder. + +2000-05-26 Richard Earnshaw + + * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC + of get_pc. + +2000-05-25 Richard Henderson + + * config/alpha/alpha.c (alpha_comparison_operator): Don't be + so strict about DImode. + (alpha_swapped_comparison_operator): Likewise. + * config/alpha/alpha.md (*setne_internal): Name it. Allow + any integer output mode. + (*setcc_internal): Likewise. + (*setcc_swapped_internal): Likewise. + (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them. + (*mov[qhs]icc_internal): New. + (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New. + +2000-05-25 J. David Anglin + + * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified. + +2000-05-25 Richard Henderson + + * bb-reorder.c (reorder_block_def): Reorder elements for size. + Remove add_jump; add next; replace flags with visited. + (rbd_init): Remove. + (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove. + (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove. + (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove. + (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove. + (RBI): New. + (reorder_index, reorder_last_visited): Remove. + (skip_insns_after_block): Rewrite to use a switch. + (get_common_dest): Remove. + (chain_reorder_blocks): Remove. + (record_effective_endpoints): Split out from reorder_basic_blocks. + (make_reorder_chain): Likewise. Loop until all blocks are placed. + (make_reorder_chain_1): Renamed from old make_reorder_chain. + Only construct the reorder chain, do not move insns. Try harder + to tail recurse. + (label_for_bb, emit_jump_to_block_after): New. + (fixup_reorder_chain): Use them. Do bulk block movement. Examine + and adjust the jump insns appropriately. Fixup basic_block_info. + (verify_insn_chain): Always define. + (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko + in allocation size. + (make_new_scope): Don't write zeros to calloc'd space. + (build_scope_forest): Rely on xrealloc to DTRT. + (reorder_basic_blocks): Don't build loop nest. Don't fail if + profile_arc_flag. Streamline EH test. + + * flow.c (redirect_edge_succ, redirect_edge_pred): New. + * basic-block.h: Declare them. + +2000-05-25 Alexandre Oliva + + * emit-rtl.c (reset_used_decls): New function. + (unshare_all_rtl_again): Call it. + +2000-05-25 Zack Weinberg + + * cpplex.c (maybe_macroexpand): Warn about function-like + macros used in non-function context, if -Wtraditional. + +2000-05-25 Mark Mitchell + + * recog.c (peephole2_optimize): Use INSN_P. + +2000-05-25 Richard Henderson + + * ifcvt.c (seq_contains_jump): New. + (noce_try_store_flag_constants): Use it to fail conversion. + (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise. + +2000-05-25 Mark Mitchell + + * except.h (can_throw): Declare it. + * except.c (can_throw): Give it external linkage. + * resource.c (find_dead_or_set_registers): Use can_throw. + +2000-05-25 Richard Henderson + + * flow.c (mark_set_1): Don't record conditionally dead memory. + +2000-05-25 Jan Hubicka + + * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p + and pc_set at the place of simplejump_p and condjump_p. + * cse.c (record_jump_equiv): Likewise. + * emit-rtl.c (emit): Likewise. + * explow.c (find_next_ref): Likewise. + * flow.c (tidy_fallthru_edge): Likewise. + (init_propagate_block_info): Likewise. + * gcse.c (delete_null_pointer_checks): Likewise. + * ifcvt.c (cond_exec_get_condition, noce_get_condition, + dead_or_predicable): Likewise. + * integrate.c (copy_insn_list): Likewise. + * loop.c (scan_loop, verify_dominator, find_and_verify_loops, + for_each_insn_in_loop, check_dbra_loop, get_condition, + insert_bct, load_mems): Likewise. + * resource.c (find_dead_or_set_registers): Likewise. + * sibcalls.c (simplejump_p): Likewise. + * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise. + +2000-05-25 David Edelsohn + + * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move + to STRING case. Use doubleword STRING move for TARGET_POWERPC64 + when unaligned. + * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT. + (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame. + (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high. + * rs6000.md: Name various internal patterns. + +2000-05-25 Jan Hubicka + + * jump.c (invert_exp_1): Remove first argument, use pc_set + to get the expression. + (redirect_exp): Make static; redirect only the pc_set expression, + remove first argument. + (invert_exp): Remove first argument, make static. + (jump_optimize): Use any_condjump_p, any_uncondjump_p and + any_onlyjump at most places where we originaly did condjump_p + and simplejump_p. + (jump_back_p, follow_jumps, thread_jumps): Likewise. + (delete_barrier_succesors): Use pc_set. + (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update + calls of invert_exp and redirect_exp. + * rtl.h (redirect_exp, invert_exp): Remove. + * unroll.c (copy_loop_body): Use invert_jump and redirect_jump. + +2000-05-25 Richard Henderson + + * stmt.c (expand_end_bindings): Fix thinko last change. + +2000-05-25 Andrew MacLeod + Andrew Haley + + * except.c (func_eh_entry): Add emitted field. + (new_eh_region_entry): Set emitted field to 0; + (output_exception_table_entry): Only emit previously un-emitted data, + and send it to the eh_data section. + (output_exception_table): Break out common parts. Output + exception table for entire compilation unit to eh_data section. + (output_exception_table_data): Common parts of output_exception_table. + Send output to eh_data section. + (output_function_exception_table): Output exception table data for + a single function to eh_data section. + (free_exception_table): New external to free the table. + * except.h (free_exception_table): Add prototype. + (output_function_exception_table): Add prototype. + * final.c (final_end_function): Output function exception table + for IA64_UNWIND_INFO. + (final_scan_insn): Emit any unwind directives for an insn. + + * frame-dwarf2.c: New file containing all DWARF 2 specific code + from frame.c. + * frame.c: Remove all DWARF 2 specific code. + * config/ia64/frame-ia64.c: New file. + (gthread_stuff): Make all gthread available with + IA64_UNWIND_INFO. + (dwarf_fde): Define an IA64 struct for dwarf_fde. + (__register_frame_info, __register_frame): Move to common area of file. + (__register_frame_info_table, __register_frame_table): Move to common i + area. + (__deregister_frame_info, __deregister_frame): Move to common area. + (__frame_init, find_fde): New versions for IA64_UNWIND_INFO. + (read_uleb128): New version for ia64. + (get_unwind_record): Read the next IA-64 unwind record. + (read_R_record): Read a region header record. + (process_a_b_reg_code): X record helper. + (read_X_record): Read an X format record. + (read_B_record): Read a B format record. + (P3_record_types): List of record types matching the P3 format. + (P7_record_types): List of record types matching the P7 format. + (P8_record_types): List of record types matching the P8 format. + (read_P_record): Read a P format record. + (init_ia64_reg_loc): Set default fields for a register. + (init_ia64_unwind_frame): Set defaults for all register records. + (execute_one_ia64_descriptor): Execute one descriptor record. + (rse_address_add): Calculate the position of a local reg in memory. + (normalize_reg_loc): Turn a location descriptor into a memory address. + (maybe_normalize_reg_loc): Only normalize a descriptor if it falls + within a specified PC offset range. + (get_real_reg_value): Given a register location, retrieve its value. + (set_real_reg_value): Change the value of a register location. + (copy_reg_value): Copy reg values, if needed. + (copy_saved_reg_state): Copy all registers that need to be copied. + (process_state_between): Normalize all frame register records that + fall within the specified PC range. + (frame_translate): Take a processed frame description, and turn + everything into addresses. + (build_ia64_frame_state ): Find and create frame state record for a PC. + (get_personality): Get the personality routine for a given frame. + (get_except_table): Get the exception table for a given frame. + (record_name): Unwind record names for debugging. + (print_record): Print and unwind record. + (print_all_records): Print an entire unwind image. + (__ia64_backtrace): Print a backtrace. + (ia64_backtrace_helper): New function. + (__register_frame_info_aux): New function. + * config/ia64/crtend.asm (__do_frame_setup_aux): New function. + + * frame.h (enum unw_record_type): New unwind record types. + (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records. + (struct unw_r_record, unwind_record): New unwind record structs. + (struct unwind_info_ptr): Unwind information layout. + (IA64_UNW_LOC_TYPE_*): Macros for different types for location + descriptors. + (struct ia64_reg_loc): Register location description. + (struct ia64_frame_state): Location of all registers in a frame. + (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO. + * libgcc2.c (__ia64_personality_v1): Personality routine. + (__calc_caller_bsp): Calculate the bsp register for the caller's + frame. + (ia64_throw_helper): Figure out who to return to and set up the + registers. + (__throw): Throw routine. + + * output.h (assemble_eh_align, assemble_eh_label): New functions + to generate EH info where we want it. + (assemble_eh_integer): New function. + * toplev.c (compile_file): Output module level exception table for + non-ia64 targets. + (main): Set exceptions_via_longjump and flag_new_exceptions based + on IA64_UNWIND_INFO too. + + * varasm.c (assemble_eh_label): Generate a label via + ASM_OUTPUT_EH_LABEL if it has been specified. + (assemble_eh_align): Generate an alignment directive via + ASM_OUTPUT_EH_ALIGN if it has been specified. + (assemble_eh_label): Generate an integer value via + ASM_OUTPUT_EH_type if they have been specified. + * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs. + (ia64_init_builtins): Add __builtin_ia64_bsp + and __builtin_ia64_flushrs. + (ia64_expand_builtin): Add IA64_BUILTIN_BSP and + IA64_BUILTIN_FLUSHRS. + * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and + IA64_BUILTIN_FLUSHRS. + + * config/ia64/ia64.md (flushrs): New insn to flush the register + stack. Add to unspec list. + + * config/ia64/crtbegin.asm (frame_object): Change size. + (__do_frame_setup_aux): New function. + * config/ia64/crtend.asm: call __do_frame_setup_aux. + * config/ia64/t-ia64 (LIB2ADDEH): Add. + * Makefile.in (LIB2ADDEH): Add. + (LIB2ADD): Use LIB2ADDEH. + +2000-05-24 Richard Henderson + + * recog.c (offsettable_address_p): If mode size is zero, assume + BIGGEST_ALIGNMENT. + +2000-05-24 J. David Anglin + + * configure.in: Check for -Wno-long-long option support and improve + handling of warning CFLAGS for stages 1 and 2. + * Makefile.in (WARN_CFLAGS): Move definition to configure.in. + * configure: Regenerate. + +Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com) + + * gcc.texi: Remove contributor list. Instead include contrib.texi. + * contrib.texi: New file. + +Thu May 25 02:27:22 2000 J"orn Rennecke + + * loop.c (basic_induction_var): Avoid double recording of an increment. + +Thu May 25 02:19:27 2000 J"orn Rennecke + + * Back out this patch: + Tue Dec 7 19:22:06 1999 Richard Henderson + * loop.h (struct induction): Add multi_insn_incr. + * loop.c (basic_induction_var): New multi_insn_incr argument. + Set it if we search back through previous insns for the biv. + (record_biv): New multi_insn_incr argument; fill in struct induction. + (strength_reduce): Discard an iv with multiple bivs, any of + which require multiple insns to increment. + + * loop.c (check_insn_for_bivs): Remove bits copied from above patch. + +Thu May 25 02:09:10 2000 J"orn Rennecke + + * rtl.h (loc_mentioned_in_p): Declare. + * reload.c (loc_mentioned_in_p): Moved from here... + * rtlanal.c (loc_mentioned_in_p): to here. No longer static. + Fix loop increment for 'E' handling. + * loop.c (strength_reduce): When doing biv->giv conversion, + take multi-insn biv increments into account. + +2000-05-24 Jason Merrill + + * stmt.c (expand_end_bindings): Look through NOTEs to find a + BARRIER. + +2000-05-24 Mark Mitchell + + * calls.c (expand_call): Handle cleanups in tail-recursion + arguments analogously to cleanups in sibling calls. + +2000-05-24 Kaveh R. Ghazi + + * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND. + All callers changed. + +2000-05-24 Alexandre Oliva + + * expr.c (expand_assignment, store_expr, expand_expr, + expand_expr_unaligned): Set in_check_memory_usage while emitting + chkr_check_addr libcall. + +2000-05-24 Nick Clifton + + * fold-const.c (extract_muldiv): When constructing a + multiplier/divisor, do not expect const_binop to correctly + determine if overflow has occurred, so check explicitly. + +2000-05-24 Alexandre Oliva + + * c-decl.c (build_enumerator): Don't modify the value's type, + convert it. + +2000-05-24 Andreas Jaeger + + * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default. + +2000-05-24 Eric Christopher + + * configure.in: Redefine inhibit_libc conditions. + * libgcc2.c: Remove inhibit_libc conditional define. + * configure: Regenerate. + +2000-05-24 Phil Edwards + + * configure.in: For --enable-languages=LIST, check for empty LIST. + * configure: Regenerate. + +2000-05-24 Lars Brinkhoff + + * pdp11.h (STACK_BOUNDARY): Define. + +2000-05-24 Jakub Jelinek + + * ifcvt.c (if_convert): Update life info globally. + +2000-05-24 Alexandre Oliva + + * emit-rtl.c (unshare_all_decls): New function. + (unshare_all_rtl): Call it. + +2000-05-23 Nick Clifton + + * configure.in: Treat 'strongarm' as if it were 'arm' when + determining cpu type. + + * configure: Regenerate. + + * config/arm/arm.c: Change 'char *' to 'const char *' for cases + where constant strings are involved. + + * config/arm/arm.h (arm_condition_codes): Change type to 'const + char *'. + + * config/arm/arm-protos.h: Change 'char *' to 'const char *' for + cases where constant strings are involved. + +Tue May 23 15:08:31 2000 Clinton Popetz + + * config/sh/sh.c (gen_far_branch, split_branches): Update + to reflect new prototypes for redirect_jump and invert_jump. + (sh_insn_length_adjustment): Get rid of const warnings. + +2000-05-23 Kazu Hirata + + * invoke.texi (Options for Debugging Your Program or GCC): Update + the names of dump files. + +Tue May 23 13:58:52 2000 Philippe De Muyter + + * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix. + * configure: Regenerated. + +2000-05-23 Zack Weinberg + + * simplify-rtx.c (SIGN_EXTEND): New macro. + (simplify_unary_operation, simplify_binary_operation, + simplify_relational_operation): Use SIGN_EXTEND. Make low + halves of (low, high) pairs unsigned if they weren't already. + (simplify_ternary_operation): Cast INTVAL to unsigned before + comparing to a MODE_BITSIZE. + +2000-05-23 Kaveh R. Ghazi + + * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros + rewritten from the internals of gcc_AC_NEED_DECLARATION{S}. + + * configure.in (gcc_AC_CHECK_DECLS): Call this instead of + gcc_AC_NEED_DECLARATIONS. + + * dwarfout.c: Don't prototype time(). + + * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*. + + * system.h: Likewise. + + * toplev.c: Likewise. + +2000-05-23 Zack Weinberg + + * c-decl.c (pushdecl): Invert sense of test for non-global types. + +Tue May 23 18:11:42 2000 J"orn Rennecke + + * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION. + +2000-05-23 Jonathan Larmour + + * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define + +Tue May 23 06:50:29 2000 Richard Kenner + + * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler. + (alpha_start_function): Never write ..ng label if VMS or NT. + (alpha_align_insns): Remove GP_IN_USE arg. + Alignment now unsigned. + (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns. + * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand + and two define_insn's. + +2000-05-22 Richard Henderson + + * combine.c (simplify_comparison): Use trunc_int_for_mode. + +2000-05-22 Richard Henderson + + * stor-layout.c (place_field): Change rli->size to rli->offset. + +2000-05-22 Richard Henderson + + * function.c (thread_prologue_and_epilogue_insns): Make sure + existing line number notes appear after the prologue. + +Mon May 22 21:49:00 2000 Richard Kenner + + * config/alpha/alpha.c (alpha_fnname): New static variable. + (print_operand, case '~'): New case. + (alpha_expand_prologue): Emit prologue_ldgp insn if needed. + (alpha_start_function): Set alpha_fnname. + Write "ng" label if no ldgp; don't write ldgp insn. + * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'. + * config/alpha/alpha.md (prologue_ldgp): New define_insn. + +Mon May 22 11:30:48 2000 Clinton Popetz + + * jump.c (jump_optimize_1): Don't increment LABEL_NUSES + on deleted labels. + +2000-05-22 Zack Weinberg + + * varasm.c (eh_frame_section): Revert change to argument list. + +Mon May 22 13:14:03 2000 Richard Kenner + + * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value. + (gen_extend_insn, can_fix_p, can_float_p): Likewise. + + * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove + dangling "else" that causes "break" to be conditional. + Also remove unneeded code at start. + +Mon May 22 17:31:35 2000 Philippe De Muyter + + * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1. + * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto. + * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto. + +2000-05-22 Jakub Jelinek + + * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has + just one argument. + +Mon May 22 06:57:49 2000 Richard Kenner + + * alias.c (record_component_aliases): New function. + * tree.h: Clean up some declarations and comments. + (record_component_aliases): New declaration. + * tree.c (get_alias_set): If type and has alias set, use it. + +2000-05-22 Richard Henderson + + * simplify-rtx.c (simplify_ternary_operation): Try to simplify + IF_THEN_ELSE to a setcc form. + * jump.c (can_reverse_comparison_p): Be prepared for insn null. + +2000-05-21 Kaveh R. Ghazi + + * fixinc/inclhack.def (sun_malloc): Handle `calloc'. + (sun_malloc, sysz_stdtypes_for_sun): Add test_text. + +Sun May 21 16:42:31 2000 Richard Kenner + + * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is + not a PARALLEL. + +2000-05-20 Alexandre Oliva + + * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. + * config/mn10300/mn10300.c (print_operand): Likewise. + + * final.c (split_double): Right shift of negative values is not + portable. + + * ifcvt.c (if_convert): Scan and kill dead code. + + * emit-rtl.c (unshare_all_rtl): Store the copied rtx. + +2000-05-20 Zack Weinberg + + * diagnostic.c: Eliminate implicit int. + * except.c, gcc.c: Add static prototypes. + * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED. + * gensupport.c (process_rtx): Use XVEC to initialize vector + slot of 'split'. + + * print-rtl.c: If DEBUG_REGISTER_NAMES, define static + debug_reg_names instead of static reg_names. If not, define + global reg_names. + * regclass.c: Don't define global reg_names unless + DEBUG_REGISTER_NAMES is defined. + + * reload1.c (order_regs_for_reload): Remove unused variable. + * varasm.c: Include output.h after defaults.h. Define + eh_frame_section as function of no args, not of unspecified args. + + * gcc.c: Constify argbuf; arguments to store_arg, + process_command, main; elements of struct command and struct + switchstr; local variables in execute, process_command, main. + +2000-05-20 Bruce Korb + + * fixinc/inclhack.def: many applications of c_fix=format + tests + * fixinc/check.diff: regenerated + * fixinc/fixincl.x: regenerated + +Sat May 20 09:30:55 2000 Richard Kenner + + * alias.c: Clarify some comments. + (record_base_value): REGNO is unsigned. + * rtl.h (record_base_value): Likewise. + + * alias.c (aliases_everything_p): Don't special-case QImode here. + * c-common.c (c_get_alias_set): Do it here. + Handle BIT_FIELD_REF by getting alias info for arg. + Use POINTER_TYPE_P. + +2000-05-20 Alexandre Oliva + + * mklibgcc.in: Restore rule to create ${dir}. + +Sat May 20 08:45:41 2000 H.J. Lu + + * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for + GCC_FOR_TARGET used by MULTILIBS. + * mklibgcc.in: Make sure each .o file depends on the + directory it will be in. + Make the multilib directory depends libgcc. + +Sat May 20 08:29:28 2000 H.J. Lu + + * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1. + +Sat May 20 07:27:35 2000 Alexandre Oliva + + * fold-const.c (make_range): Handle degenerated intervals. + Fixes c-torture/execute/991221-1.c + +Fri May 19 18:16:31 2000 Richard Kenner + + * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0. + * reload.c (find_equiv_reg): Likewise. + * alias.c (init_alias_analysis): Likewise. + Only call prologue_epilogue_contains on insns. + * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function. + * bb-reorder.c (hard-reg-set.h): Include earlier. + * haifa-sched.c (hard-reg-set.h): Likewise. + * ifcvt.c (hard-reg-set.h): Likewise. + * local-alloc.c (hard-reg-set.h): Likewise. + * loop.c (hard-reg-set.h): Likewise. + * predict.c (hard-reg-set.h): Likewise. + * regrename.c (hard-reg-set.h): Likewise. + * flow.c (hard-reg-set.h): Likewise. + (reg_set_to_hard_reg_set): New function. + * bitmap.c (regs.h, basic-block.h): No longer include. + (bitmap.h): Now include. + * conflict.c (hard-reg-set.h): Include. + * profile.c (hard-reg-set.h): Likewise. + * print-rtl.c (hard-reg-set.h): Likewise. + * sbitmap.c (hard-reg-set.h): Likewise. + * toplev.c (hard-reg-set.h): Likewise. + * unroll.c (hard-reg-set.h, basic-block.h): Likewise. + * hard-reg-set.h (reg_names): Now constant. + * regs.h (reg_names): Likewise. + * regclass.c (reg_names): Likewise. + * loop.h (basic-block.h): No longer include. + (bitmap.h): Now include. + * reload1.c (order_regs_for_reload): Avoid loop over reg sets. + * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes. + (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise. + +2000-05-19 Jan Hubicka + Richard Henderson + + * basic-block.h (struct edge_def): New field "count". + (struct basic_block_def): Likewise. + * flow.c (entry_exit_blocks): Add count fileds. + (split_edge): Keep count information up-to-date. + (dump_edge_info, dump_flow_info): Dump count fields. + + * final.c (count_instrumented_edges): Rename to edge from arc. + (end_final): Update users. + * profile.c: Include expr.h, basic-block.h. + (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill. + (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill. + (ignore_next_note, return_label_execution_count): Kill. + (bbg_file_name, da_file_name): Kill. + (edge_info, bb_info): New structures. + (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros. + (count_instrumented_edges, total_num_edges): Rename to edge from arc. + (total_num_edges_instrumented): Likewise. + (init_arc, expand_spanning_tree): Kill. + (fill_spanning_tree, tablejump_entry_p): Kill. + (instrument_edges): Rewrite from instrument_arcs to use + commit_edge_insertions infrastructure. + (compute_branch_probabilities): Remove arguments; rewrite for + CFG infrastructure; use rtl_dump_file directly. + (branch_prob, find_spanning_tree): Likewise. + (union_groups, find_group): New. + (init_branch_prob): Make bbg_file_name and da_file_name local. + (end_branch_prob): Use rtl_dump_file directly. + (init_edge_profiler): Rename to edge from arc. + (output_arc_profiler): Kill. + (gen_edge_profiler): New. + (output_func_start_profiler): Turn off profiling. Make the + constructor static when we can. + * rtl.h (branch_prob, end_branch_prob): Update prototypes. + + * toplev.c (DFI_flow): Remove. + (DFI_cfg, DFI_life): New. + (dump_file): Update accordingly. + (compile_file): Call end_branch_prob if profile_arc_flag too. + (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge + profiling after the CFG is built. Move flow1 life analysis to + DFI_life. Always estimate remaining probabilities. + +2000-05-19 Richard Henderson + + * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. + + * flow.c (make_edges): The sibling call edge to exit is abnormal. + +2000-05-19 Richard Henderson + + * jump.c (redirect_jump): Add delete_unused argument. Don't + remove labels and code following when LABEL_NUSES goes to zero. + (invert_jump): Likewise. + (jump_optimize_1): Fix redirect/invert arguments. + (do_cross_jump, thread_jumps): Likewise. + * flow.c (split_edge): Likewise. + * reorg.c (optimize_skip): Likewise. + (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise. + * profile.c (instrument_arcs): Likewise. + * loop.c (find_and_verify_loops): Likewise. Fix indentation. + * rtl.h: Update prototypes. + +Fri May 19 12:05:13 2000 Clinton Popetz + + * ssa.c (convert_from_ssa): Tell life_analysis we need death + notes. + (make_regs_equivalent_over_bad_edges): Only look at abnormal + critical edges. + +2000-05-19 Zack Weinberg + + * cpphash.c (funlike_macroexpand): Make sure not to walk p1 + past l1 when deleting whitespace and markers. + + * cpplex.c (_cpp_scan_until): Clear AUX field of tokens. + * cpplib.c (do_unassert): Put the list to compare against on + the stack. + +2000-05-19 Bruce Korb + + * fixinc/README: cleaned up old documentation + * fixinc/check.diff: regenerated & verified on OSR5 on ix86 + * fixinc/check.tpl: compute the list of needed directories + emit "#if defined(name)" because of conflict + omit machine name differences from output differences + * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function + (machine_name): change test text to use `sed' markers + * fixinc/fixincl.x: regen + +Fri May 19 06:49:35 2000 Richard Kenner + + * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of + a CONSTRUCTOR. + +2000-05-18 Chris Demetriou + + * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update + it to match the current practice. + +2000-05-18 Mark Mitchell + + * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under. + +2000-05-18 Richard Henderson + + * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New. + * rtl.h (insn_dependant_p): Declare it. + * loop.c (strength_reduce): Use it. + +2000-05-18 Alexandre Oliva + + * config/mn10300/mn10300.c (expand_prologue, expand_epilogue): + 16-bit and 64-bit clean-up. + +2000-05-18 Mark Elbrecht + + * configure.in (*-pc-msdosdjgpp): Set float_format to none. + * configure: Rebuilt. + +2000-05-18 Zack Weinberg + + * genopinit.c: Use $ for escape sequences in optab patterns. + Remove backslashes from optab patterns. Change $A, $B, $C to + expand to (int) whatever instead of just whatever; remove + explicit (int) from all optab patterns. + + * gensupport.c (xmalloc, xrealloc, xstrdup): Provide. + * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c, + genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, + genrecog.c: Remove private copies of xmalloc, xrealloc, and + xstrdup. + +2000-05-18 Richard Henderson + + * jump.c (jump_optimize_1): Base minimum insn count during + find_cross_jump on BRANCH_COST. + +2000-05-18 Jakub Jelinek + + * print-rtl.c (print_rtx): Only print note line number as string + if between NOTE_INSN_BIAS and NOTE_INSN_MAX. + * final.c (final_scan_insn): Do nothing for note line number 0. + +2000-05-18 Jakub Jelinek + + * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE + from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from + NOTE_INSN_DELETED_LABEL. + +2000-05-18 Nick Clifton + + * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant, + uninitialized data in .rodata not .bss, and do not interpret an + error in the initialisation value as meaning that the variable + should be placed in the .bss section. + +Thu May 18 12:10:18 2000 Philippe De Muyter + + * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o', + not `$ac_cv_prog_cc_cc_c_o'. + * configure: Regenerated. + +2000-05-18 Chris Demetriou + Richard Henderson + + * c-common.h (enum c_tree_index): Add g77 type entries. + (g77_integer_type_node, g77_uinteger_type_node): New. + (g77_longint_type_node, g77_ulongint_type_node): New. + * c-decl.c (init_decl_processing): Initialize them. + +2000-05-18 Richard Henderson + + * config/h8300/h8300.md (subs patterns): Use %G to negate. + + * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT. + (small_power_of_two): Likewise; use exact_log2. + (adds_subs_operand, one_insn_adds_subs_operand): Remove. + (output_adds_subs): Remove. + (two_insn_adds_subs_operand): New. + (split_adds_subs): New. + * config/h8300/h8300-protos.h: Update. + * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT. + (CONST_OK_FOR_L): Match strict adds operands. + (CONST_OK_FOR_N): Match struct subs operands. + * config/h8300/h8300.md (adds_subs insns): Remove. + (addhi patterns): Output adds/subs directly. + (addsi_h8300h): Likewise. + (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand. + +2000-05-18 Zack Weinberg + + * cppexp.c (parse_assertion): New. + (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case. + (_cpp_parse_expr): Remove case '#'. Don't set + parsing_if_directive. + * cpphash.c (collect_objlike_expansion, + collect_funlike_expansion, collect_params, + _cpp_create_definition): The list no longer has a trailing + VSPACE token. + * cpphash.h (enum node_type): Add T_ASSERTION. + (struct hashnode): Remove aschain, add pred. + (struct predicate): New. + Update prototypes. + + * cpplex.c (expand_token_space): Handle both offset and + nonoffset lists. + (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete. + (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist, + _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens, + _cpp_equiv_toklists): New. + (_cpp_scan_line): Rename to _cpp_scan_until; add ability to + stop at any single-character token, not just newline. + (_cpp_lex_token): Remove special cases for #define and #if. + (cpp_get_token): Expect # as a separate token type. Remove + DIRECTIVE case. + (_cpp_get_directive_token): Remove DIRECTIVE case. + (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update. + + * cpplib.c (_cpp_check_directive): Set dirno and + SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags. + (_cpp_handle_directive): Run # through the same logic + as normal directives. + (do_define): Don't set parsing_define_directive. Use + _cpp_scan_until. The list does not have a VSPACE at the end. + (do_if): Save, clear, and restore only_seen_white around + _cpp_parse_expr. + (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/ + (do_assert, do_unassert): Rewrite. + + * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION. + (LIST_OFFSET): New flag. + (struct cpp_toklist): Replace dir_handler and dir_flags with + dirno and flags. + (struct cpp_reader): Remove parsing_if_directive and + parsing_define_directive. + +2000-05-18 Kaveh R. Ghazi + + * fixinc/inclhack.def (broken_cabs): Update fix to handle comments + following the cabs decl which terminate on the following line. + Add the corresponding test_text case. + +2000-05-18 Neil Booth + + * cppinit.c (cpp_reader_init): Initialize col_adjust and + default tab stop size. + (no_num, OPT_ftabstop): New. + (handle_option): Handle "ftabstop=" command-line option. + (print_help): Document it. + * cpplex.c (COLUMN): Remove. + (handle_newline): Reset col_adjust. + (skip_whitespace): Update col_adjust as tabs encountered. + (_cpp_lex_line): Update to use col_adjust. Call + skip_whitespace for all whitespace. + * cpplib.h (struct cpp_options): New member tabstop. + (struct cpp_reader): New member col_adjust. + (CPP_BUF_COL): Update. + (CPP_BUF_COLUMN): New. + * cpp.texi: Document "-ftabstop=" command line option. + +Wed May 17 18:19:41 2000 Philippe De Muyter + + * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT + files. + * configure: Rebuilt. + +Wed May 17 18:06:12 2000 John David Anglin + + * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c. + + * tree.c (build_common_tree_nodes): Do not build TI nodes unless + HOST_BITS_PER_WIDE_INT is >= 64. + +2000-05-17 Richard Henderson + + * jump.c (jump_optimize_1): Remove inactive but real insns + in jump-to-next-insn optimization. + +2000-05-17 Richard Henderson + + * toplev.c (rest_of_compilation): Don't call optimize_mode_switching + unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos. + Don't call recompute_reg_usage if no_new_pseudos is true. + * lcm.c (optimize_mode_switching): Move ifdefs outside function. + Return true if we did work; update global life information. + * basic-block.h (optimize_mode_switching): Update decl. + +2000-05-17 Neil Booth + + * cpplex.c (expand_name_space): Don't use ptrdiff_t. + +2000-05-17 Zack Weinberg + + * cpplib.c: New feature, #pragma system_header. + * cpp.texi: Document special treatment of system headers, and + the various mechanisms to get a header that special treatment. + +2000-05-17 Kaveh R. Ghazi + + * system.h (offsetof): Define at the very end, to ensure we prefer + the platform's definition if available. + +2000-05-16 Bruce Korb + + * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE + * fixinc/server.c: likewise + * fixinc/fixfixes.c( char_macro_def_fix ): fix regex + + #ifdef debugging code + use #def constant for + sub-pattern count + * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping + on C++ math namespace + +2000-05-17 Kaveh R. Ghazi + + * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix): + Don't check the return value of sprintf. Use asprintf to avoid + buffer overflows. + +Wed May 17 17:27:44 2000 Andrew Cagney + + * flags.h (warn_unused_function, warn_unused_label, + warn_unused_parameter, warn_unused_variable, warn_unused_value): + Replace ``warn_unused''. + (set_Wunused): Add declaration. + * toplev.c (set_Wunused): New function. + (warn_unused_function, warn_unused_label, warn_unused_parameter, + warn_unused_variable, warn_unused_value): New variables. + (W_options): Add -Wunused-function, -Wunused-function, + -Wunused-label, -Wunused-parameter, -Wunused-variable and + -Wunused-value. Delete -Wunused. Handled in decode_W_option. + + * toplev.c (decode_W_option): Update -Wunused flags by calling + set_Wunused. + * c-decl.c (c_decode_option): Ditto for -Wall. + + * stmt.c (expand_expr_stmt, expand_expr_stmt, + warn_about_unused_variables): Replace warn_unused with more + explicit warn_unused_value et.al. + * function.c (expand_function_end): Ditto. + * c-typeck.c (internal_build_compound_expr, + internal_build_compound_expr): Ditto. + * c-decl.c (poplevel, pop_label_level): Ditto. + * toplev.c (check_global_declarations): Replace warn_unused with + check for either warn_unused_function or warn_unused_variable. + + * gcc.1, invoke.texi (Warning Options): Document + -Wunused-function, -Wunused-function, -Wunused-label, + -Wunused-parameter, -Wunused-variable and -Wunused-value options. + +Wed May 17 10:28:12 2000 Philippe De Muyter + + * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in + $(srcdir), not in the current directory. + +2000-05-16 Richard Henderson + + * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the + assembler supports it. + (.fini, .init): Use a gp-relative indirect call. + (__do_global_dtors_aux): Preserve the gp; rebundle. + (__do_frame_setup): Likewise. + * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1. + (.init): Use a gp-relative indirect call. + (__do_global_ctors_aux): Preserve the gp. + +2000-05-16 Richard Henderson + + * flow.c (commit_one_edge_insertion): Be prepared for a return + insn to be inserted on the edge with a normal jump. + * jump.c (jump_optimize_1): Don't look to create return isns. + + * flow.c (flow_delete_insn): Don't adjust reference count of notes. + * jump.c (jump_optimize_1): Likewise. + (returnjump_p): Verify the argument is a JUMP_INSN. + * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL. + +2000-05-16 Nick Clifton + + * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace + GET_RTX_CLASS (GET_CODE ()) == 'i'. + (large_insn_p): Ditto. + (m32r_is_insn): New function: Return true if the insn contains + an executable instruction. + (m32r_adjust_insn): Use m32r_is_insn. + (m32r_sched_reorder): Use m32r_is_insn. + (m32r_sched_variable_issue): Use m32r_is_insn. + +2000-05-16 Franz Sirl + + * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like + VAR_DECL. + + * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable. + + * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux + according to given options. + +Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com) + + * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS + if X has VOIDmode either. + (LIMIT_RELOAD_CLASS): Similarly. + + * mn10200.md (indirect_jump, tablejump): Use "register_operand", + not "general_operand" to match the processor's capabilities. + +2000-05-16 Bruce Korb + + * fixinc/README: corrected return address + * fixinc/check.diff: regenerate, now that test works + * fixinc/fixfixes.c(format_fix,format_write): reformatted + (char_macro_def_fix,char_macro_use_fix): corrected and + rewrote to use regex to parse the text + * fixinc/inclhack.def: more testing + * fixinc/fixincl.x: regenerated + + * fixinc/inclhack.def: added several "test_text" attributes + changed several fixes to use `c_fix = format' + re-alphabetized the fixes + + * fixinc/check.diff: regenerate + * fixinc/fixincl.x: regenerate + * fixinc/check.tpl: added `sparc' and `netinet' to the list + of created dirs + + +2000-05-16 Alexandre Oliva + + * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove. + +2000-05-15 Richard Henderson + + * toplev.c (rest_of_compilation): Run full jump pass before + find_basic_blocks of flow2. + +2000-05-15 Richard Henderson + + * jump.c: Fix typos and clarify commentary from last change. + (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE. + (safe_to_remove_jump_p): Remove. + (condjump_label): Use pc_set. + +2000-05-15 Richard Henderson + + * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns + that get in the way after reload. + (cond_exec_process_if_block): Skip a label heading THEN block. + +2000-05-15 Richard Henderson + + * varasm.c (output_constant_pool): Abort instead of converting + (improperly) deleted labels to zero. + +2000-05-16 Neil Booth + + * cpplex.c (parse_string2): Update comment. + (cpp_lex_line): No special assertion treatment for '('. + * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT. + * cpplib.h (SYNTAX_ASSERT): Remove. + +Mon May 15 21:45:36 MET DST 2000 Jan Hubicka + + * jump.c (condjump_p): Mark as depreached. + (any_condump_p): New. + (any_uncondump_p): New. + (pc_set): New. + (safe_to_remove_jump_p): New. + * rtl.h (any_condump_p, any_uncondjump_p, pc_set + safe_to_remove_jump_p): Declare. + +Mon May 15 21:07:20 MET DST 2000 Jan Hubicka + + * calls.c: Re-install both patches reverted by last patch. + (struct arg_data): New field tail_call_reg. + (initialize_argument_information): Initialize tail_call_reg + (load_register_parameters): New argument flags, use + tail_call_reg when emiting tail call sequence. + (expand_call): Update call of load_register_parameters; + copy unadjusted_args_size to adjusted_args_size. + +Mon May 15 19:01:42 MET DST 2000 Jan Hubicka + + * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p + and bct_p parameters to flags. + * loop.h (LOOP_UNROLL, LOOP_BCT): New constants. + * rtl.h (loop_optimize): Update prototype. + * toplev.c (rest_of_compilation): Update call of loop_optimize. + +2000-05-15 Jakub Jelinek + + * calls.c (expand_call): Move expand_start_target_temps call after + start_sequence(). + +2000-05-15 Neil Booth + + * cpphash.c (trad_stringify, warn_trad_stringify, + collect_params): Make some pointers pointers to const. + * cpplex.c (auto_expand_name_space) Guaranteed to always + expand by at least one character. + (SPELL_CHAR, SPELL_NONE): Temporarily reverse order. + (struct token_spelling): Use const U_CHAR * rather than PTR. + (expand_name_space): Fix up token pointers if name space + is moved when expanding. + (INIT_NAME, cpp_scan_line, parse_name, parse_number, + parse_string2, save_comment, spell_token, cpp_output_list): + Update so the routines handle tokens with a direct pointer to + their text, rather than an offset into the token's list's namebuf. + (_cpp_lex_line): Rearrange for clarity. + + * cpplib.c (_cpp_check_directive): Similarly. + (do_define): Make SYM a pointer to const. + * cpplib.h (struct cpp_name): Replace offset with direct pointer. + (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT. + (TOK_OFFSET): Delete. + (TOK_NAME): Update. + +2000-05-14 Geoffrey Keating + + * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for + 64-bit ABI. + + * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE + into account. + (logical_u_operand): Delete. + (non_logical_cint_operand): Rewrite to take MODE into account. + (non_logical_u_cint_operand): Delete. + (boolean_operator): New function. + (print_operand): Add new %q operand. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator, + remove logical_u_operand and non_logical_u_cint_operand, + update logical_operand and non_logical_cint_operand. + * config/rs6000/rs6000.md: Rewrite the patterns for performing + logical operations to use %q. + + * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place. + (movdi): Make similar to movsi. + * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There + is no such thing as a DImode CONST_DOUBLE. + * config/rs6000/rs6000.c (output_toc): Likewise. + + * config/rs6000/rs6000.c (output_cbranch): Don't output prediction + codes when old mnemonics are in use. Print register names + for cc registers when requested. + + * optabs.c (expand_float): Don't allow mode widening that causes + double rounding. + + * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32 + flags to their current names -maix64 and -maix32. + +2000-05-14 Bruce Korb + + * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before + and/or after current text of file + * fixinc/fixlib.c(must_malloc): + * fixinc/fixlib.h(must_malloc): + reformatting + * fixinc/inclhack.def: replace the "1i" and "$a" sed commands + with usages of ``c_fix = wrap;'' + Add several tests and use the ``c_fix = format'' fixer more. + * fixinc/fixincl.x: regen + * fixinc/check.diff: regen + * fixinc/check.tpl: emit the associated header with the missing + test message + +Sun May 14 17:58:59 2000 Hans-Peter Nilsson + + * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset + variables $src and $dst. + +2000-05-13 Gabriel Dos Reis + + * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro. + (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise. + (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise. + (struct output_buffer: emitted_prefix_p, prefixing_rule): New + fields. + (set_message_prefixing_rule): Declare. + + * diagnostic.c: (current_prefixing_rule): New variable. + (set_message_prefixing_rule): Define. + (output_set_prefix): Adjust buffer->emitted_prefix_p. + (init_output_buffer): Adjust Initialization. + (output_emit_prefix): Rewrite. Take prefixing rules into account. + +Sat May 13 11:05:47 2000 Philippe De Muyter + + * ifcvt.c (if_convert): Do not free NULL. + +2000-05-12 H.J. Lu (hjl@gnu.org) + + * gthr-dce.h: Add support for libobjc. + * gthr-posix.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-vxworks.h: Likewise. + * gthr-single.h: Likewise. + * gthr-win32.h: Likewise. + +2000-05-12 Nick Clifton + + * config/fr30/fr30.c (fr30_move_double): New function: Emit code + to move a double word value. + (di_operand): New function: Return true if the operand is suitbale + for a double word move operation. + (nonimmediate_di_operand): New function: Return true if the + operand is a DImode register or MEM. + + * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and + nonimmediate_di_operand. + + * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and + nonimmediate_di_operand. + + * config/fr30/fr30.md (movdi): New pattern. Required because + other patterns generate DImode results. + (movdi_insn): New pattern. + +2000-05-12 Richard Henderson + + * config/alpha/alpha.c (struct shadow_summary): Define + bitfields as type unsigned int. + +Sat May 13 00:09:59 2000 Denis Chertykov + + * config/avr/t-avr: Added definition of FLOAT while generates + fp-bit.c + + * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in + peepholes for tst+jump = sbrs/sbrc optimization. + +Fry May 12 20:03:00 CEST 2000 Jan Hubicka + + * expr.c (emit_push_insn): Do not adjust stack pointer when + preallocating. + +Fri May 12 19:03:58 2000 Philippe De Muyter + + * ggc-simple.c (offsetof): Macro fallback definition moved from here .. + * system.h (offsetof): ... to here. + +2000-05-12 Richard Henderson + + * Makefile.in (final.o): Depend on BASIC_BLOCK_H. + * final.c (final_end_function): Use app_disable. Rearrange note + handling into a switch. Emit deleted labels. + (output_asm_label): Generate label strings for deleted labels. + * flow.c (tail_recursion_label_list): New. + (find_basic_blocks_1): Set label_value_list directly. Collect list + of tail recursion labels from call_placeholders. Don't add deleted + labels to the label value list. + (cleanup_cfg): Use free_EXPR_LIST_list. + (flow_delete_insn_chain): Turn non-removable labels into notes. + (flow_delete_block): Don't disable deleting the block because of + a non-removable label. + (tail_recursion_label_p): New. + (merge_blocks_move_predecessor_nojumps): Don't disable the merge + because of a label. + (merge_blocks_move_successor_nojumps): Likewise. Also move a + jump table. + (merge_blocks): Disable a merge because of tail recursion labels. + * ifcvt.c (merge_if_block): Don't disable a merge because of a label. + Use a more accurate measure of not merging the join block. + (find_if_block): Don't disable conversion because of a label. + (find_if_case_1, find_if_case_2): Likewise. + * jump.c (duplicate_loop_exit_test): Preserve the kind of list + element when copying. + (squeeze_notes): Also leave EH notes. + (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for + REG_LABEL notes. + (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when + deleting a label. + * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for + NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref + referring to a deleted label. Convert tail handling to a switch. + * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE + for NOTE_INSN_DELETED_LABEL. + (NOTE): Fix commentary. + * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST. + (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise. + (CODE_LABEL_NUMBER, LABEL_NAME): Update index. + (LABEL_NUSES, LABEL_REFS): Likewise. + * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL. + +2000-05-12 Bruce Korb + + * fixinc/fixfixes.c(format_write): buglet & relaxed rules + * fixinc/check.diff: updated + * fixinc/inclhack.def: corrected & added some test_text-s + * fixinc/genfixes: removed unneeded options to autogen invocation + * fixinc/fixincl.tpl: Specified the output file + * fixinc/fixfixes.c: visual appearance + * fixinc/fixincl.x: regenerate + +2000-05-12 Zack Weinberg + + * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix, + CTRL_defn_fix): Delete. + (fix_char_macro_defines, fix_char_macro_uses): Rename to + char_macro_def_fix and char_macro_use_fix, respectively. Put + them into the FIXUP_TABLE. Get the string to search for from + a c_fix_arg. + + (format_write): New function. + (format_fix): Use it. + + (FIX_PROC_HEAD): Constify text parameter. + (machine_name_fix): Constify all char *s. + * fixtests.c (skip_quote): Remove double static. + + * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes, + ctrl_use_quotes): Update for new scheme. + * fixincl.x: Regenerate. + +2000-05-12 Alexandre Oliva + + * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as + DWARF2_DEBUG. + (DWARF2_ASM_LINE_DEBUG_INFO): Define. + (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. + +2000-05-11 Robert Lipe + + * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO. + * fixincl.x: Regenerate. + +2000-05-11 Richard Henderson + + * calls.c: Revert both 05-09 patches. + +2000-05-11 Alexandre Oliva + + * config/mn10300/mn10300.c (print_operand): Print FP constants in + hexadecimal. + * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint + for FP values. + + * mklibgcc.in (EQ): Define it to an equal sign in the Makefile, + and replace any occurrences of `=' in multilib dirs with `$(EQ)'. + +2000-05-11 Jason Merrill + + * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine. + +2000-05-11 Zack Weinberg + + * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary. + +Thu May 11 22:28:05 2000 Denis Chertykov + + * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration. + * config/avr/avr.c (jump_over_one_insn_p): New function. + * config/avr/avr.md: New peepholes added. Output test and + conditional jump to "sbrc" or "sbrs" command. + +2000-05-11 Mark Elbrecht + + * cppmain.c (main): Use IS_DIR_SEPARATOR. + +2000-05-11 Jakub Jelinek + + * except.c (find_exception_handler_labels_1): New function. + (find_exception_handler_labels): Split into two functions, dive + into CALL_PLACEHOLDERs when looking for exception handler labels. + +2000-05-11 Stan Cox + + * regrename.c (replace_reg_in_block): Improve REG_DEAD handling. + * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2. + * toplev.c (rest_of_compilation): Call regrename_optimize before sched2. + +2000-05-11 Bruce Korb + + * fixinc/fixfixes.c (double_slash_fix): obsolete + (else_endif_label_fix): obsolete + (format_fix): new, unused as yet + (main): obsolete + * fixinc/fixlib.h: added fix description struct for use by format_fix + * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using + * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate + modules. Removed the vestiges of the script version. + Added support for "make check". + * fixinc/check.diff: base diff file (needs work!!) + * fixinc/check.tpl: quiet the fixup output + * fixinc/fixtests.c (main): obsolete + * fixinc/fixincl.sh: don't bother copying fixincl to .. + * fixinc/fixincl.tpl: provide for arguments to c_fix routines + +Thu May 11 11:57:02 MET DST 2000 Jan Hubicka + + * toplev.c (rest_of_compilation): Remove dead code after + combine. + +2000-05-11 Zack Weinberg + + * cpphash.c (collect_funlike_expansion): Make "# is not + followed by a macro argument name" a pedwarn, not an error. + Preserve the # in the output. Suppress the warning if lang_asm. + +Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa*64*-*-hpux11*): New target for PA64 support. + * configure: Rebuilt. + +2000-05-10 Laurynas Biveinis + + * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace. + +2000-05-10 Kazu Hirata + + * combine.c (try_combine): Fix a typo. + +Wed May 10 21:31:44 2000 Jim Wilson + + * config/ia64/ia64.md (insv): Add comment. + +2000-05-10 Richard Henderson + + * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT. + * mklibgcc.in: Rewrite to not use functions. Don't shortcut + dependencies on FPBIT and DPBIT. + +2000-05-10 Nick Clifton + + * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth + when optimising for size. + (mark_used_regs:) Ditto. + (try_pre_increment_1): Ditto. + +2000-05-10 Zack Weinberg + + * cppexp.c (lex): Use %.*s to print non-NUL-terminated string. + Make error message friendlier. + + * cpphash.h (struct hashnode): Use struct hack for name + member. + * cpphash.c (struct hashdummy): New. + (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE. + (make_HASHNODE): No need to set ->name pointer. Correct + setting of p. + (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit. + +2000-05-10 Richard Henderson + + * flow.c (find_basic_blocks_1): Remove any spare bb_note + after completion. + +2000-05-10 Bruce Korb + + * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static + +2000-05-10 Eric Schweitz + + * dwarfout.c (dwarfout_finish): Call retry_incomplete_types + after we enter .debug. + +2000-05-10 Jason Merrill + + * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the + abstract instance of a nested inline function. + + * stor-layout.c (finish_record_layout): finalize_type_size + before laying out the pending_statics. + +Wed 10 May 09:36:47 2000 Neil Booth + + * cpplex.c (spell_token): New function. + (spell_string, spell_comment, spell_name): fold into + spell_token. + (I, S): Add macros. + (E, H): Remove macros. + (save_comment): Save comment opening characters too. + (_cpp_lex_file): Update to use spell_token. Tidy up comment + handling. + * cpplib.h (I, S): Add macros. + (E, H): Remove macros. + (TTYPE_TABLE): Update entries for new speller. + (SYNTAX_ASSERT): Remove. + +Wed 10 May 09:08:30 2000 Neil Booth + + * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag + when removing escaped newlines. Reverse sense of test for + escaped newline. + +2000-05-09 Richard Henderson + + * flow.c (find_basic_blocks_1): Do not delete the first + bb_note we run across. + (create_basic_block): Use reorder_insns to move an existing + bb_note to the correct place. + +2000-05-09 Richard Henderson + + * calls.c (expand_call): Increment currently_expanding_call + before calling optimize_tail_recursion. + +Tue May 9 18:54:16 2000 Richard Kenner + + * reload1.c (reload_combine): Fix errors in last change. + +2000-05-09 Zack Weinberg + + * gcc.c (used_arg): Skip over a semicolon at the end of the + split-up loop; don't break out of it. + + * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings. + (tree.o): Depend on output.h. + + * c-decl.c (pending_invalid_xref_file, + current_function_prototype_file): Constify. + (pushdecl): Constify a local char *. + (define_label): Constify filename parameter. + * c-lex.c (init_parse): Constify parameter and return value. + * c-typeck.c (c_expand_asm_operands): Constify filename parameter. + * c-tree.h: Update prototypes. + * c-parse.in: Constify filename member of %union, and if_stmt_file. + * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y, + objc/objc-parse.c: Regenerate. + + * dwarfout.c (dwarfout_init): Constify main_input_filename parameter. + * dwarfout.h: Update prototypes. + * expr.c (expand_expr): Constify a local char *. + * flags.h: Constify main_input_filename. + * function.c (expand_function_end): Constify filename parameter. + * genrecog.c (make_insn_sequence): Use a character array for + c_test_pos. + (main): Remove unused variables. + * input.h: Constify input_filename, main_input_filename, and + file_stack.name. Update prototypes. + * output.h: Declare first_global_object_name and + weak_global_object_name here, as const char *. + * stmt.c (expand_asm_operands): Constify filename parameter. + * toplev.c (compile_file, push_srcloc, debug_start_source_file): + Constify filename parameter. + (input_filename, main_input_filename): Constify. + * toplev.h: Update prototypes. + * tree.c: Include output.h. Don't declare + first_global_object_name or weak_global_object_name. Clean up string + bashing in get_file_function_name_long. + * tree.h (struct tree_decl): Constify filename member. + (input_filename): Constify. + Update prototypes. + * varasm.c (first_global_object_name, weak_global_object_name): + Constify. + (assemble_start_function, assemble_variable): Clean up string bashing. + + * gcc.c: Constify all spec-related strings initialized, + transitively, from string constants. Constify all strings + and string variables related to multilibs. + (set_spec, read_specs): Cast argument to free to PTR. + (used_arg): Do not modify multilib_matches. Use strncmp plus + length comparison to compare multilib switches. + * genmultilib: Constify everything declared in multilib.h. + +Tue May 9 22:28:03 2000 Denis Chertykov + + * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn + as deleted. + +Tue May 9 20:52:43 2000 Denis Chertykov + + * config/avr/avr-protos.h (extra_constraint): change a type of + second argument from char to int to avoid warnings. + (asm_output_byte): Likewise. + + * config/avr/avr.c (MAX_LD_OFFSET) New macro. + (initial_elimination_offset): Handle elimination from + FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM. + (legitimate_address_p): Use MAX_LD_OFFSET. + (legitimize_address): Likewise. + (out_movqi_r_mr): Likewise. + (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'. + (out_movsi_r_mr): Use MAX_LD_OFFSET. + (out_movsi_mr_r): Likewise. + (out_movqi_mr_r): Likewise. + (out_movhi_mr_r): Likewise. + (notice_update_cc): Correct CC for the ashrqi3 with the shift + count as CONST_INT != 6. + (ashlqi3_out): Coding style modifications. Run `fatal_insn' if + shift count is a CONSTANT_P, but not a CONST_INT. + (ashlhi3_out): Coding style modifications. + (ashlsi3_out): Likewise. + (ashrhi3_out): Likewise. + (ashrsi3_out): Likewise. + (lshrhi3_out): Likewise. + (lshrsi3_out): Likewise. + (ashrqi3_out): Generate shift for any known constant count without + scratch register. Run `fatal_insn' if shift count is a CONSTANT_P, + but not a CONST_INT. + (lshrqi3_out): Coding style modifications. Run `fatal_insn' if + shift count is a CONSTANT_P, but not a CONST_INT. + (extra_constraint): change a type of + second argument from char to int to avoid warnings. + (asm_output_byte): Likewise. + (asm_file_end): Output size generated commands count as a hex + number too. + + * config/avr/avr.h (RETURN_ADDR_RTX): New macro. + + * config/avr/avr.md (addhi3): Fragment commented by &&0 is + removed. + (ashlqi3): Values of "length" attribute changed. Shift count + uses constraints 'n' instead of 'i'. + (ashrqi3): Likewise. Values of "cc" attribute changed. Generate + shifts without clobber register. + (lshrqi3): Shift count uses constraints 'n' instead of 'i'. + (call_insn): Correct test for which_alternative == 1 (was 0). + (call_value_insn): Likewise. + + * config/avr/t-avr: Remove definition of FLOAT while generates + fp-bit.c + +2000-05-09 Bruce Korb + + * fixinc/check.tpl: Template for checking fixes + * fixinc/inclhack.def: Added 'test_text' for many fixes + disable hpux8_bogus_inlines on SCO + * fixinc/fixinc.sco: Oh, yes, we don't need this any more. + +Tue May 9 16:30:27 MET DST 2000 Jan Hubicka + + * calls.c (expand_call): Reorganize somewhat in order + to avoid unnecesary recalculation inside loop and make + tail call failure code cleaner. + +Tue May 9 06:30:20 2000 Richard Kenner + + * alias.c (nonlocal_reference_p): Minor reformatting. + * reload.c (find_equiv_reg): Simplify logic for + CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and + some some reformatting. + * reload1.c (reload_combine): Don't assume everything in + CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit. + +2000-05-08 Richard Henderson + + * final.c (current_insn_predicate): New. + (final_scan_insn): Set it. + * output.h (current_insn_predicate): Declare. + + * ifcvt.c (cond_exec_process_insns): New argument prob_val. + Attach it to call insns. + (cond_exec_process_if_block): Track probability for true and + false branches. + (dead_or_predicable): Likewise. + + * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New. + (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New. + (PROB_VERY_LIKELY, PROB_ALWAYS): New. + (estimate_probability, expected_value_to_br_prob): Use them. + + * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare. + * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'. + (ia64_expand_prediction): New. + (emit_insn_group_barriers): Don't look at notes. Emit barriers + as needed after calls. + (ia64_epilogue_uses): Mark b0 used. + * config/ia64/ia64.md (beq_true, beq_false): Remove. + (bne_true, bne_false): Remove. + (eq_return, eq_not_return, ne_return, ne_not_return): Remove. + (br_true, br_false): New. Use predicate_operator and + ia64_expand_prediction. + (return_true, return_false): Likewise. + (call_internal): Use ia64_expand_prediction. Don't emit stop bit. + (call_internal1, call_value_internal): Likewise. + (call_value_internal1, call_multiple_values_internal1): Likewise. + + * config/ia64/ia64.c (ia64_direct_return): Require frame size zero. + + * config/ia64/ia64.md (extendsfdf2): Split only after reload. + +2000-05-08 Richard Henderson + + * rtlanal.c (may_trap_p): Consider old-style and volatile + asms to trap. + +Mon May 8 17:16:48 2000 Jim Wilson + + * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count. + +2000-05-08 Richard Henderson + + * config/ia64/ia64.h (predicate_operator): Declare. + + * config/ia64/ia64.md (extendsfdf2): Split the nop case out + of existence. + + * gensupport.c (process_rtx): Copy and post-process each member + of the define_insn rtvec individually. + +Mon 8 May 22:17:35 2000 Neil Booth + + * cpplex.c (spell_token): New function. + (TOKEN_LEN): Add 1 for whitespace. + (_cpp_lex_file): Update to use spell_token. + * cpplib.h (E): Remove. + (TTYPE_TABLE): Update CPP_VSPACE entry. + +2000-05-08 Richard Henderson + + * flow.c (init_propagate_block_info): Watch out for conditional + branch to next instruction, and thus one outgoing edge. + + * config/ia64/ia64.c (ia64_encode_section_info): Exit early + for global register variables; don't special case __[CD]TOR_LIST__; + mind ggc_p for string allocation. + +2000-05-08 Nick Clifton + + * config/i386/i386.h (ELIMINABLE_REGS): Fix comment. + +2000-05-08 Bruce Korb + + * fixinc/mkfixinc.sh: fixinc.sco is no longer used + i?86-*-msdosdjgpp* no longer uses fixincludes + * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated + * fixinc/inclhack.sh: deleted + * fixinc/hackshell.tpl: deleted + * fixinc/inclhack.tpl: deleted + * fixinc/Makefile.in: Remove dependencies on above + * fixinc/fixincl.sh: "DO NOT EDIT" text modified + +2000-05-08 Andreas Jaeger + + * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor + support. + +2000-05-07 Zack Weinberg + + * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed + substitutions. + +Sun 7 May 08:43:53 2000 Neil Booth + + * cpplex.c: Move new lexer definitions and prototypes + to top. Conditional include these and the code if + NEW_LEXER is defined. Rename functions whose names + clash if this code included. + +Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com) + + * rtl.def (COND_EXEC): Clarify. + + * i386.md (extendsidi2): Clobber (reg:CC 17) in the + same fashion as zero_extendsidi2. + +2000-05-06 Richard Henderson + + * config/ia64/ia64.c (predicate_operator): New. + (ia64_print_operand): Handle 'J'. + (rtx_needs_barrier): Handle COND_EXEC. + * config/ia64/ia64.h (BRANCH_COST): Define. + (PREDICATE_CODES): Update. + * config/ia64/ia64.md: Document used unspec values. + (attr predicable): New. + (movxf, movxf_internal): New. + (extendsfdf2): Don't comment out nop. + (floatdidf2): Remove. + (truncxfsf2, truncxfdf2, floatdixf2): New. + (abssi2, absdi2): Put the neg in the "true" slot. + (conditional branch instructions): Mark not predicable. + (cmov*_internal): Use predicate_operator. Split to cond_exec. + (abs*_internal): Likewise. + (alloc, set_bsp): Mark not predicable. + (barrier, insn_group_barrier, flush_cache): Likewise. + (define_cond_exec): New. + +2000-05-06 Richard Henderson + + * c-decl.c: Include "tm_p.h". + + * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness. + (fetchadd_operand, ia64_expand_fetch_and_op): Declare. + (ia64_expand_op_and_fetch): Declare. + * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace. + (setjmp_operand): Constify variables for XSTR. + (ia64_encode_section_info): Likewise. + (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed + values to int. + (ia64_asm_output_external): Constify name. + (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size. + (process_for_unwind_directive): Provide switch default. + (ia64_expand_compare_and_swap): Remove unused variables. + (ia64_expand_builtin): Likewise. + * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int + for printing. + + * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args. + (symbolic_operand, function_operand, setjmp_operand): Likewise. + (shift_count_operand, shift_32bit_count_operand): Likewise. + (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise. + (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise. + (ia64_function_arg_partial_nregs, ia64_function_value): Likewise. + (ia64_print_operand_address, ia64_secondary_reload_class): Likewise. + (ia64_expand_builtin): Likewise. + (call_multiple_values_operation): Make dest_regno unsigned. + +2000-05-06 Richard Henderson + + * rtl.def (DEFINE_COND_EXEC): New. + * md.texi: Document it. + + * gensupport.c (input_file): Remove. + (struct queue_elem): Add lineno. + (rtx_ready_queue): Remove. + (errors): New. + (predicable_default): New. + (predicable_true, predicable_false): New. + (define_attr_queue, define_attr_tail): New. + (define_insn_queue, define_insn_tail): New. + (define_cond_exec_queue, define_cond_exec_tail): New. + (other_queue, other_tail): New. + (queue_pattern): New. + (process_rtx): Add patterns to the appropriate queues. + (is_predicable, identify_predicable_attribute): New. + (n_alternatives, collect_insn_data): New. + (alter_predicate_for_insn, alter_test_for_insn): New. + (shift_output_template, alter_output_for_insn): New. + (process_one_cond_exec, process_define_cond_exec): New. + (init_md_reader): Read the entire file. Process define_cond_exec. + (read_md_rtx): Return elements from the queues. + +2000-05-06 Richard Henderson + + * flow.c (mark_set_1): Don't update conditional life info + if the register is not_dead. + +2000-05-06 Zack Weinberg + + * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h. + (mostlyclean): Also delete fixincl, fixinc.sh, and + specs.ready, and make clean in the fixinc subdir. + +2000-05-06 Richard Henderson + + * Makefile.in (gensupport.o): Compile for the host. + (host-prefix gensuuprt.o): Remove. + (genflags.o): Depend on gensupport.h and OBSTACK_H. + (genattrtab.o): Likewise. + (gencodes.o): Depend on gensupport.h. + (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise. + (genpeep.o, genattr.o, genoutput.o): Likewise. + + * gensupport.c (obstack, rtl_obstack): New. + (init_md_reader): Initialize rtl_obstack. + * gensupport.h (rtl_obstack): Declare. + (message_with_line): Declare. + + * genattr.c: Remove all traces of obstack manipulation. + * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. + * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. + + * genattrtab.c (obstack, rtl_obstack): Remove. + (main): Don't init rtl_obstack. + * genflags.c: Likewise. + + * genrecog.c (message_with_line): Move ... + * gensupport.c: ... here. + +2000-05-06 Richard Henderson + + * c-typeck.c (build_c_cast): Remove dead code. + +2000-05-06 Richard Henderson + + * flow.c (split_edge): Don't allocate global_live_at_start for + the new block unless the old blocks had them as well. + + * flow.c (mark_set_1): Respect not_dead when updating reg_live. + + * ifcvt.c (noce_process_if_block): Don't use an insn_b from + test_bb if a or b uses x. + +2000-05-06 Zack Weinberg + + * cpphash.h: Remove conditional #define of __extension__. + * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2, + RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros + (ENABLE_RTL_CHECKING only). + * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK, + CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros + (ENABLE_TREE_CHECKING only). + * varray.h: Add __extension__ to VARRAY_CHECK macro + (ENABLE_CHECKING only). + +2000-05-06 Richard Earnshaw (reanrsha@arm.com) + + Use new tail-calling mechanism on ARM. + * arm.md (sibcall, sibcall_value): New expands. + (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns. + (tailcalling peepholes): Delete. + (push_multi): Simplify. + * arm.c (lr_save_eliminated): Delete definition. + (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete. + (output_return_instruction): Remove checks on lr_save_eliminated. + (output_arm_prologue): Remove old tail-calling code. + (arm_output_epilogue): New parameter, really_return. All callers + changed. Handle tail-calling epilogues. + * arm.h (lr_save_eliminated): Delete declaration. + (frame_pointer_needed): Delete declaration. + * arm-protos.h (arm_output_epilogue): Adjust prototype. + + * arm.md (is_thumb): Examine symbol thumb_code, not expression + TARGET_ARM. + * arm.c (thumb_code): Define it. + (arm_override_options): Set it. + * arm.h (thumb_code): Declare it. + +2000-05-06 Richard Earnshaw (reanrsha@arm.com) + + * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify. + +2000-05-06 Richard Earnshaw (reanrsha@arm.com) + + * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add + bogus clobber to insns. + (load_multiple_operation, store_mulitple_operation): Don't check + for it. + * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly. + + * arm.md (and_scc, ior_scc): Add missing mode. + + * arm.md (call_value_symbol): Remove predicate from op2. + + * arm.h (SPECIAL_MODE_PREDICATES): Define. + +Sat May 6 06:25:56 2000 Richard Kenner + + * expr.c (get_subtarget): New function. + (force_operand, expand_expr, do_store_flag): Use it. + + * toplev.c (compile_file): Don't take strlen of NAME if null. + +2000-05-06 David Edelsohn + + * xcoffout.c (xcoff_current_include_file, + xcoff_current_function_file, xcoff_lastfile): Constify char *. + (xcoffout_source_file, xcoffout_source_line): Make filename 'const + char *'. + (xcoffout_declare_function): Make name 'const char *'. + (xcoffout_end_epilogue): Make fname 'const char *' + * xcoffout.h (xcoff_current_include_file, xcoff_lastfile, + xcoffout_declare_function, xcoffout_source_line): Match above. + + * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without + -maix64 is error. + * rs6000.c (print_operand): Fix lossage typo. + (output_cbranch): Remove "cr" decoration for now. + * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. + +Sat May 6 06:55:32 2000 Denis Chertykov + + * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by + constant count. + +2000-05-05 Bruce Korb + + * fixinc/genfixes: Improve the matching for make target names + +2000-05-05 Catherine Moore + + * c-common.c (decl_attributes): For TYPE_DECLs attach the + attribute to the decl. + * c-decl.c (pushdecl): Propagate the USED attribute to the + type copy. + +2000-05-05 Richard Henderson + + * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the + same way emit_group_load does. + +2000-05-05 Mark Elbrecht + + * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name. + + * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR. + (main): Likewise. + +2000-05-05 Rodney Brown + + * pa.h (FUNCTION_ARG_ADVANCE): Warning removal. + +Fri May 5 10:29:21 2000 Marc Espie + + * config/openbsd.h (LINK_SPEC): pass correct flags to ld + to support -shared, on platforms with dynamic libraries. + +Fri May 5 10:27:06 2000 Philippe De Muyter + + * system.h (S_ISBLK): Provide fallback definition. + +2000-05-05 Geoff Berry + + * extend.texi (Extended Asm): Document inability to give asm + statements access to condition codes. + +2000-05-05 Marek Michalkiewicz + + * varasm.c (asm_emit_uninitialised): Use 0, not NULL + as arg 2 of UNIQUE_SECTION. + +Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com) + + * predict.c: Remove May 4 change. + * bb-reorder.c (make_reorder_chain): Do not perform block movement + if we have predicted the branch at 50-50 probability. + +2000-05-05 Richard Henderson + + * flow.c (init_propagate_block_info): Fix merge error + in HAVE_conditional_execution code. + +Fri May 5 07:43:50 2000 Denis Chertykov + + * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal + shift cycle for unknown shift count. Also generates dec + brpl. + (ashlqi3_out): Don't generate dec + brpl which now generates by + `out_shift_with_cnt'. + (ashlhi3_out): Likewise. + (ashlsi3_out): Likewise. + (ashrqi3_out): Likewise. + (ashrhi3_out): Likewise. + (ashrsi3_out): Likewise. + (lshrqi3_out): Likewise. + (lshrhi3_out): Likewise. + (lshrsi3_out): Likewise. + +2000-05-04 Mark Elbrecht + + * gcc.c (free_split_directories): Correct typo in explanation + of make_relative_prefix. + +2000-05-04 Geoff Keating + + * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point + comparison codes to branch_comparison_operator. + +2000-05-04 Richard Henderson + + * ifcvt.c (noce_process_if_block): Always reset X in the A == B case. + +2000-05-04 Richard Henderson + + * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi. + (DPBIT_FUNCS): Remove _sf_to_usi. + (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk. + + * ifcvt.c (noce_process_if_block): Fail if A or B modified + between condition and jump. + + * libgcc2.c (near eh_context_specific): Comment #endif string. + * longlong.h: Don't use strings with embedded newlines. + +2000-05-04 Geoff Keating + + * config/rs6000/rs6000-protos.h: Add output_cbranch. + * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete. + (print_operand): Delete %t and %T codes. + (output_cbranch): New function. Support branch prediction. + * config/rs6000/rs6000.md: Use output_cbranch for + conditional branches and returns. + +2000-05-04 Jason Merrill + + * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned. + * stor-layout.c (place_field): Likewise. + * integrate.h (struct inline_remap): Make regno_pointer_align unsigned. + * expr.c (store_expr): Make align unsigned. + * explow.c (plus_constant_wide): Make low words unsigned. + * expmed.c (choose_multiplier): Likewise. + * fold-const.c (fold): Likewise. + * tree.h (build_int_2): Likewise. + * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise. + * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*. + (init_emit): Change cast to unsigned char*. + * varasm.c (compare_constant_1): Add cast to char*. + * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*. + * reload1.c (reload): Likewise. + + * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0). + +Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com) + + * predict.c (estimate_probability): If no prediction was found, then + predict the successor that is the next physical block (if such a + successor exists). + +2000-05-04 Richard Henderson + + * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place. + +2000-05-04 Kaveh R. Ghazi + + * system.h: Don't wrap with HAVE_SYS_TYPES_H. + +2000-05-04 Mumit Khan + + * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move + attribute macros from here ... + (CPP_SPEC): to here. + * i386/mingw32.h (CPP_PREDEFINES): Likewise. + (CPP_SPEC): Likewise. + * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. + + * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule. + (libgcc.a): Pass LIB1ASMSRC to libgcc.mk. + +2000-05-04 Kaveh R. Ghazi + + * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype. + + * diagnostic (vbuild_message_string, build_message_string, + build_location_prefix, output_get_prefix, init_output_buffer, + output_notice, vline_wrapper_message_with_location, + v_message_with_decl, default_print_error_function): De-constify. + (set_real_maximum_length): Prototype. + + * diagnostic.h (struct output_buffer, init_output_buffer, + output_get_prefix, output_set_prefix): De-constify. + + * function.c (init_function_start): Constify. + + * gensupport.c (remove_constraints, process_rtx): Prototype. + + * gthr-posix.h: Indent uses of #pragma. + + * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table): + Prototype. + + * predict.c (find_expected_value): Delete prototype. + (expected_value_to_br_prob): Initialize variable `ev_reg'. + + * sbitmap.h (debug_sbitmap): Prototype. + + * ssa.c (compute_coalesced_reg_partition): Prototype. + + * stor-layout.c (debug_rli): Prototype. + + * tree.h (round_down): Prototype. + (init_function_start): Constify. + +2000-05-04 Zack Weinberg + + * cpphash.h: #define __extension__ away if GCC_VERSION < 2095 + (overly conservative). Change extern inline wrappers to + static inline, define them always, use PARAMS properly. + * cpplex.c (_cpp_get_directive_token): Don't issue pedantic + whitespace warnings for \f and \v at the beginning of a line. + +Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com) + + * haifa-sched.c (schedule_insns): Free the flow edge list when it + is no longer needed + +2000-05-04 Bruce Korb + + * fixincl/inclhack.def: added broken_cabs - + Remove `extern double cabs' declarations from math.h + * fixincl/inclhack.sh: regen + * fixincl/fixincl.x: regen + * fixincl/fixincl.c: Remove BOGOSITY code + * fixincl/mkfixinc.sh: Remove code for installing "shell" version + +Thu May 4 09:45:12 2000 Richard Kenner + + * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and + MEM_ALIAS_SET. + * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET + when calling MEM_COPY_ATTRIBUTES. + * emit-rtl.c (operand_subword, change_address): Likewise. + * explow.c (stabilize): Likewise. + * expr.c (protect_from_queue, emit_move_insn_1): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P + when calling MEM_COPY_ATTRIBUTES. + (make_extraction, simplify_shift_const, gen_lowpart_for_combine): + Likewise. + * cse.c (gen_lowpart_if_possible): Likewise. + * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. + * optabs.c (gen_move_insn): Likewise. + * recog.c (validate_replace_rtx_1): Likewise. + * simplify-rtx.c (add_mem_for_addr): Likewise. + * stmt.c (expand_anon_union_decl): Likewise. + * config/arm/arm.md: Likewise. + * config/h8300/h7300.c (fix_bit_operand): Likewise. + * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise. + (block_move_no_loop, block_move_sequence): Likewise. + * config/rs6000/rs6000.c (expand_block_move_mem): Likewise. + * config/alpha/alpha.c (get_aligned_mem): Likewise. + Clear MEM_ALIAS_SET. + * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling + MEM_COPY_ATTRIBUTES. + +2000-05-03 Robert Lipe + + * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare + to suppress libgcc1. + (i[34567]86-*-sco3.2v5*) Likewise. + (i[34567]86-*-sco3.2v4*) Likewise. + (i[34567]86-*-sco) Likewise. + (i[34567]86-*-solaris2) Likewise. + (i[34567]86-*-sysv5*) Likewise. + (i[34567]86-*-sysv4*) Likewise. + (i[34567]86-*-udk*) Likewise. + (i[34567]86-*-sysv*) Likewise. + +2000-05-03 Zack Weinberg + + * cpphash.h (U): New define, to correct type of string constants. + (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper + routines, to do casts when passing unsigned strings to libc. + * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them. + + * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *. + * cpphash.c (_cpp_quote_string): Make string an U_CHAR *. + * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *. + * cpplex.c (parse_ifdef, parse_include, validate_else): Make + second argument an U_CHAR *. + + * cppinit.c (builtin_array): Make name and value U_CHAR *, add + length field, clean up initializer. + (ISTABLE): Add __extension__ to designated- + initializers version. + * cpplex.c (CHARTAB): Likewise. + + * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS + case so the file won't be empty. + +Wed May 3 21:01:46 2000 Jason Eckhardt + + * bb-reorder.c (struct reorder_block_def): Member succ removed. + (REORDER_BLOCK_SUCC): Removed. + (enum reorder_skip_type): Removed. + (skip_insns_between_block): Renamed to skip_insns_after_block. + Removed second argument. Removed dead code and cleaned up. + (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC. + (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed + second parameter to skip_insns_after_block. + +Wed May 3 13:29:54 2000 Richard Kenner + + * tree.c (staticp, case LABEL_DECL): New case. + +2000-05-03 Richard Henderson + + * Makefile.in (start.encap): Do not depend on LIBGCC1. + + * mklibgcc1.in: Fix typo last change. + +2000-05-03 Jason Merrill + + * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long. + (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional. + (GCC_CFLAGS): Use it. + (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS. + * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in, + objc/Make-lang.in: Use it. + +2000-05-03 Jason R Thorpe + + * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint. + +2000-05-03 Richard Henderson + + * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate + LIBGCC1 empty with libgcc1.null. + +Wed May 3 12:55:46 2000 Jim Wilson + + * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness + change. + +2000-05-03 Greg McGary + + * tree.h (tree_common): Add bounded_flag member. Remove + inaccurate comment about number of remaining bits. + (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P, + BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P, + MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P, + TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, + TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros. + (TYPE_QUAL_BOUNDED): New constant. + (TYPE_QUALS): Handle bounded qualifier. + (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros. + (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT, + TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH, + TYPE_AMBIENT_BOUNDEDNESS): New macros. + (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants. + (tree_type): Add pointer_depth member. Remove + inaccurate comment about number of remaining bits. + (DECL_POINTER_DEPTH): Add macro. + (tree_decl): Add pointer_depth member. + +Wed May 3 22:52:53 2000 Denis Chertykov + + * config/avr/avr-protos.h (test_hard_reg_class): Declared. + * config/avr/avr.c (ashrhi3_out): optimized shift by 15. + (lshrhi3_out): Likewise. + (ashrsi3_out): bugfix in shift by 8. + (test_hard_reg_class): New function. + * config/avr/avr.md: Bugfix inside conditions in peepholes. + (ashlhi3): removed define_expand of this pattern. + (*ashlhi3_insn): renamed to ashlhi3. + (ashlsi3): removed define_expand of this pattern. + (*ashlsi3_insn): renamed to ashlsi3. + (ashrqi3): removed define_expand of this pattern. + (*ashrqi3_insn): renamed to ashrqi3. + (ashrhi3): removed define_expand of this pattern. + (*ashrhi3_insn): renamed to ashrhi3. + (ashrsi3): removed define_expand of this pattern. + (*ashrsi3_insn): renamed to ashrsi3. + (lshrhi3): removed define_expand of this pattern. + (*lshrhi3_insn): renamed to lshrhi3. + (lshrsi3): removed define_expand of this pattern. + (*lshrsi3_insn): renamed to lshrsi3. + +2000-05-03 Rodney Brown + + * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with + inclusion of "system.h". + +Wed May 3 11:43:53 2000 Jim Wilson + + * config/ia64/ia64.c (ia64_encode_section_info): Add check for + TREE_ASM_WRITTEN. + +2000-05-03 David Mosberger + + * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp + if -mauto-pic is on. + (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if + -mconstant-gp is in effect and function-descriptors are being used + to make indirect calls. + * config/ia64/ia64.h (MASK_CONST_GP): New macro. + (MASK_AUTO_PIC): Ditto. + (TARGET_CONST_GP): Ditto. + (TARGET_AUTO_PIC): Ditto. + (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options. + (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or + -mno-pic is in effect. + (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto. + * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if + -mauto-pic is in effect. + (gprel64_offset): New pattern. + (load_gprel64): Ditto. + (call): Handle -mauto-pic like -mno-pic (don't use fptr). If + -mconstant-gp is in effect, no need to preserve gp around direct + calls. + (call_value): Ditto. + * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define. + (FUNCTION_PROFILER): Define. + * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate + @fptr() directive when -mno-pic or -mauto-pic is in effect. + (ASM_OUTPUT_DESTRUCTOR): Ditto. + +2000-05-03 Richard Henderson + + * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk. + (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets. + (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets. + (mklibgcc, libgcc.mk): New targets. + (libgcc.a): Use libgcc.mk. + (stmp-multilib): Likewise. + (stmp-multilib-sub): Remove. + (mostlyclean): Don't delete libgcc2 temp files. + * configure.in (AC_PROG_CC_C_O): Add. + (NO_MINUS_C_MINUS_O): Substitute it. + (all_outputs): Add mklibgcc. + * mklibgcc.in: New file. + +2000-05-03 Jason Merrill + + * cppexp.c (op_t): Make an int. + + * rtlanal.c (dead_or_set_regno_p): Remove unused variable. + + * varasm.c (initializer_constant_valid_p): Fix parenthesis. + + * gensupport.c (process_rtx): Fix macros used. + +2000-05-03 Richard Henderson + + * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for + call-clobbered registers of a call. + +Wed May 3 12:40:53 2000 Clinton Popetz + + * gensupport.c: New file. + * gensupport.h: New file. + * Makefile.in (HOST_RTL): Depend on gensupport. + (gensupport.o) New rule. + * genattr.c: Use gensupport for reading .md files. + * genattrtab.c: Ditto. + * gencodes.c: Ditto. + * genconfig.c: Ditto. + * genemit.c: Ditto. + * genextract.c: Ditto. + * genflags.c: Ditto. + * genopinit.c: Ditto. + * genoutput.c: Ditto. + * genpeep.c: Ditto. + * genrecog.c: Ditto. + * rtl.def (define_insn_and_split): New DEF_RTL_EXPR. + * md.texi (Insn Splitting): Document define_insn_and_split. + +Tue May 2 00:20:30 2000 Jason Eckhardt + + * flow.c (verify_flow_info): Added two more sanity checks. The + first checks that the blocks are numbered consecutively. The second + checks that n_basic_blocks is actually equal to the number of + basic blocks in the insn chain. + +2000-05-03 Zack Weinberg + + * cpplib.h: Add accessor macros for token lists. + * cpplib.c, cpphash.c, cpplex.c: Use them. + +Wed May 3 09:29:17 2000 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking + memory usage if not in a function. + * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only + return address if static. + +Wed May 3 13:14:49 MET DST 2000 Jan Hubicka + + * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest + whether address may trap. + +Tue May 2 23:38:37 2000 Jason Eckhardt + + * bb-reorder (chain_reorder_blocks): Changed code to test for + EDGE_FALLTHRU rather than making erroneous assumption that the + first outgoing edge is the fall-through edge. + +Tue May 2 18:20:31 2000 Donald Lindsay + + * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new + ABI for varargs, across all MIPS. This is incompatible because the + va_list (__builtin_va_list) structure is different, so a compilation + unit passing a va_list and a compilation unit being passed one, should + both be compiled with the same ABI. (The old structure had two + pointers, now it has three.) + +Tue May 2 19:18:43 2000 Jason Eckhardt + + * bb-reorder.c (struct reorder_block_def): Remove members end, + block_begin, and block_end. + (REORDER_BLOCK_OLD_END): Delete. + (REORDER_BLOCK_BEGIN): Delete. + (REORDER_BLOCK_END): Delete. + (chain_reorder_blocks): Remove dead code. + +Tue May 2 17:06:53 2000 Jason Eckhardt + + * bb-reorder.c (remove_scope_notes): Check for both types of scope + notes as the end of a basic block before deleting. + +2000-05-02 Mumit Khan + + * final.c (final_start_function): Fix spelling of "necessary". + +2000-05-02 Jason Merrill + + * toplev.c (debug_ignore_block): Return int. + * dwarf2out.c (dwarf2out_ignore_block): Likewise. + * toplev.h, dwarf2out.h: Adjust. + * emit-rtl.c (remove_unnecessary_notes): Test return value. + + * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary". + * toplev.c, final.c, rtl.h: Adjust. + +2000-05-02 Zack Weinberg + + * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro. + * configure.in: Look for makeinfo in the unified tree, then + for a system makeinfo which is sufficiently new. + * Makefile.in: If configure says makeinfo is too old, don't + build or install Info documentation. + +2000-05-02 Zack Weinberg + + * cpphash.c (collect_params): Fix off-by-one error. + (dump_hash_helper): Dump all four macro nodetypes. + +2000-05-02 Jakub Jelinek + + * cpphash.c (trad_stringify): Adjust p after stringification as + well. + +2000-05-02 Zack Weinberg + + * cpplib.h (CPP_POP, parse_cleanup_t): Delete. + (cpp_buffer): Remove cleanup, seen_eof, manual_pop members. + + * cppfiles.c (file_cleanup): Delete. + * cpphash.c (macro_cleanup): Delete. + (collect_objlike_expansion, collect_funlike_expansion, + macarg, scan_arguments): Remove CPP_POP case. + + * cpplex.c (null_cleanup): Delete. + (cpp_pop_buffer): Do the work that was done in the cleanups + here. Call _cpp_unwind_if_stack from here. + (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput, + cpp_scan_buffer): Run until we see CPP_EOF and the top of + stack is the buffer _below_ the one we stacked. + (cpp_get_token): Always pop an exhausted buffer. Return + CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof. + * cpplib.c (skip_if_group): Don't call cpp_get_token to + increment the line number. + (_cpp_handle_eof): Rename to _cpp_unwind_if_stack. + + * fix-header.c (read_scan_file) [parsing getchar()]: Run until + we see CPP_EOF and the top of stack is the buffer _below_ the + one we stacked. + * scan-decls.c: Likewise. + +2000-05-02 Andrew Haley + + * config/ia64/ia64.c (ia64_encode_section_info): Handle the case + where this function is called for the second time on a decl that + has had its section info changed in such a way as to move it out + of small data/bss. + * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition. + +2000-05-01 Richard Henderson + + * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before + the sequence we're moving, not to merge_bb->head. + +2000-05-01 Richard Henderson + + * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove + reference to alpha/t-linux. + (alpha*-*-linux-gnu*): Likewise. + * configure: Rebuild. + + * calls.c (expand_call): Don't emit reg notes for a sibcall. + + * flow.c (calculate_global_regs_live): Skip for_each_successor_phi + if not in SSA form. + + * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING. + +2000-05-01 Jason Merrill + + * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and + TREE_THIS_VOLATILE. + +2000-05-01 Richard Henderson + + * ifcvt.c (noce_emit_cmove): Conditionally compile call to + emit_conditional_move. + +2000-05-01 Jakub Jelinek + + * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1 + as the dynamic linker. + +2000-05-01 Zack Weinberg + + * cppfiles.c (open_include_file): Open file in blocking mode. + (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore. + Only exclude block devices and directories. + + * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now + static. Allocate the hashnode and its string in the same + block of memory. + (del_HASHNODE): Don't free h->name. + (_cpp_lookup): If there is no entry for this string, create + one, of type T_VOID. + (_cpp_lookup_slot): Delete. + * cpphash.h: Update prototypes. + + * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID, + not hp == NULL. + * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert, + do_unassert, cpp_defined): Use _cpp_lookup. Don't create a + node here, just fill in the value field properly. "Delete" + entries by setting the value field to T_VOID. Check for + hp->type == T_VOID, not hp == NULL. + + * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H). + * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include + hashtab.h. + +2000-05-01 Alexandre Oliva + + * config/mn10300/mn10300.c (print_operand_address): Do not add + zero to SP. + + * config/mn10300/mn10300.c (expand_epilogue): If SP is to be + adjusted by less than 256 bytes, use ret regardless of having any + callee-saved register to restore. + +2000-05-01 Laurynas Biveinis + + * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo. + +2000-05-01 Mark Elbrecht + + * config/i386/djgpp.h (INT_ASM_OP): Define. + (CPP_PREDEFINES): Rename MSDOS to __MSDOS__. + (ASM_WEAKEN_LABEL): Define. + (MASK_BNU210): Define. + (SUBTARGET_SWITCHES): Define. + (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define. + (MAKE_DECL_ONE_ONLY): Define. + (UNIQUE_SECTION_P, UNIQUE_SECTION): Define. + +2000-05-01 Mumit Khan + + * i386/cygwin.h (INT_ASM_OP): Define. + +Mon May 1 18:20:06 2000 Denis Chertykov + + * config/avr/avr.c (address_cost): renamed to avr_address_cost. + * config/avr/avr.h (ADDRESS_COST): use avr_address_cost. + +Mon May 1 17:50:44 2000 Denis Chertykov + + * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in + __tmp_reg__ and __zero_reg__ initialization. + +2000-04-30 Richard Henderson + + * flow.c (propagate_one_insn): Mark sets even when the insn is dead. + + * ifcvt.c (noce_process_if_block): Fail the conversion if X is + referenced bewteen the condition and the jump. Don't delete + anything but the jump. + +Sun Apr 30 22:48:24 2000 Jason Eckhardt + + * bb-reorder.c (scope_def): New struct. + (scope_forest_info): New struct. + (struct reorder_block_def): New member "scope". + (REORDER_BLOCK_SCOPE): New macro. + (relate_bbs_with_scopes): New function and prototype. + (make_new_scope): Likewise. + (build_scope_forest): Likewise. + (remove_scope_notes): Likewise. + (insert_intra_1): Likewise. + (insert_intra_bb_scope_notes): Likewise. + (insert_inter_bb_scope_notes): Likewise. + (rebuild_scope_notes): Likewise. + (free_scope_forest_1): Likewise. + (free_scope_forest): Likewise. + (dump_scope_forest): Likewise. + (dump_scope_forest_1): Likewise. + (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block. + Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new + block. + (reorder_basic_blocks): Added calls to build_scope_scope_forest + and remove_scope_notes before reordering is done. Added calls to + rebuild_scope_notes, free_scope_forest, and reorder_blocks after + after reordering is done. + +2000-40-30 Bruce Korb + + * fixinc/inclhack.def: Added definitions needed by OSR5, + removed two stale entries (defined away with OLD_CPP). + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +2000-04-30 Richard Henderson + + * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes + from the last insn in the sequence. + +2000-04-30 Zack Weinberg + + * cpplex.c (cpp_idcmp): New function. + * cpplib.h: Prototype it. + * scan_decls.c (scan_decls): Use it to inspect token names. + * fix-header.c (read_scan_file): Likewise. Set system_header_p on + the file being run through the preprocessor. + (check_macro_names): Provide length of token to cpp_defined. + + * Makefile.in: Remove stale warning message. + + * cppfiles.c (redundant_include_p): Provide length of token to + cpp_defined. + * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash + values are unsigned int. + (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length. + (_cpp_lookup_slot): Do not calculate the hash, either. + * cpphash.h: Update prototypes. + * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert): + Hashes are unsigned int. Calculate hash here, pass by value + to _cpp_lookup_slot. + +2000-04-30 Bernd Schmidt + + * simplify-rtx.c (check_value_useless): Delete function. + (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter + by hand. + (cselib_invalidate_regno): Likewise. + (cselib_invalidate_mem_1): Likewise. + (references_value_p): Recognize useless values by the fact that they + have no locations. + (discard_useless_values): Likewise. + (cselib_record_set): This may turn a useless value + into a useful one. + +2000-04-30 Richard Henderson + + * config/d30v: New port. + + * configure.in (d30v-*): Set fp format. + * configure: Rebuild. + +2000-04-30 Richard Henderson + + * ifcvt.c: New file. + * Makefile.in (OBJS): Add it. + (ifcvt.o): New target. + * jump.c (jump_optimize_1): Remove all code related to if-conversion, + and conditional arithmetic. + (find_insert_position): Remove. + * timevar.def (TV_IFCVT, TV_IFCVT2): New. + * toplev.c (DFI_ce, DFI_ce2): New. + (dump_file): Add ce and ce2 dumps. + (rest_of_compilation): Run if_convert a couple o times. Set + cse_not_expected after cse2. Don't set no_new_pseudos until + after sched1 or recompute_reg_usage. + +2000-04-30 Richard Henderson + + * config/alpha/t-crtbe (crtbegin.o): Add "-I.". + (crtend.o, crtbeginS.o, crtendS.o): Likewise. + +2000-04-30 Richard Henderson + + * flow.c (struct reg_cond_life_info): New. + (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg. + (init_propagate_block_info): Initialize them. + (free_propagate_block_info): Destruct them. + (mark_set_1): Consider conditional life before killing a register. + (mark_regno_cond_dead): New. + (free_reg_cond_life_info): New. + (flush_reg_cond_reg_1, flush_reg_cond_reg): New. + (ior_reg_cond, not_reg_cond, nand_reg_cond): New. + (mark_used_reg): Record conditional life. + + * haifa-sched.c (schedule_insns): Disable death counting + sanity check for HAVE_conditional_execution. + +2000-04-30 Richard Henderson + + * Makefile.in (TIMEVAR_H): New. + (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it. + (timevar.h): Remove rule. + +2000-04-29 Richard Henderson + + * config/alpha/crtend.asm: Use C comments instead of #. + * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden. + + * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL. + +2000-04-29 Zack Weinberg + + * cpphash.h (enum node_type: Take out T_MCONST. + (union hashval): Move into struct hashnode. + (struct hashnode): Pack tighter. Remove file, line, col + members. + * cpphash.c: Constify most of the macro-definition structures. + (struct definition): Replace by struct object_defn + and struct funct_defn. Put file, line, column information + here. All users updated to match. + (_cpp_create_definition, _cpp_macroexpand): Remove special + case for #define WORD OTHERWORD. + * cpplib.c (do_undef): Remove T_MCONST case. + + * cpphash.h: Move struct reflist, struct definition, and the + DEFINITION typedef to cpphash.c. Use 'struct definition *' in + union hashval. _cpp_free_definition takes a HASHNODE pointer. + * cpphash.c (_cpp_free_definition): Free data pointed to by + MCONST, XCONST, MACRO, and FMACRO nodes properly. + (_cpp_create_definition, del_HASHNODE): Just call + _cpp_free_definition to clear out a hashnode. + * cpplib.c (do_pragma_poison): Likewise. + +Sat Apr 29 12:25:17 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (FIRST_DATA_REGNUM, + LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM, + FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros. + (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM. + (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P, + REGNO_AM33_P): Redefine in terms of the new macros. + (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. + (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, + STRUCT_VALUE): Likewise. + (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, + ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved. + +Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka + + * regmove.c (struct record_stack_memrefs_data): New. + (record_stack_memrefs): New function. + (combine_stack_adjustments_for_block): Use it. + +Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka + + * calls.c (calls_function_1): Properly handle TREE_LIST expressions; + use special_function_p to detect alloca. + +Fri Apr 28 16:30:33 2000 Marc Espie + + * gcc.texi: Fixes for makeinfo 4.0 --html. + +2000-04-28 Zack Weinberg + + * pcp.h: Delete file. + +2000-04-28 Kazu Hirata + + * h8300.c (function_epilogue): Clean up flags when the last insn + in a function is a barrier. + +2000-04-28 Chris Demetriou + + * configure.in (sparc-hal-solaris2*): protect [] glob from + my expansion. + (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines + rather than hard-coded constants in target_cpu_default2. + * configure: Regenerate. + +2000-04-28 Jason Merrill + + * tree.c (get_callee_fndecl): Extract the initial value from + a readonly decl. + +2000-04-28 Richard Henderson + + * varasm.c (record_constant_1): Record the CODE_LABEL when + taking the address of a LABEL_REF. + +2000-04-28 Richard Henderson + Jan Hubicka + + * calls.c (combine_pending_stack_adjustment_and_call): Return the + adjustment; don't do the stack adjust. + (expand_call): Call compute_argument_block_size right before + allocating the block; update comment; don't do alignment sanity + checking for sibling call; use args_size instead of + unadjusted_args_size before args_size is adjusted. Use + combine_pending_stack_adjustment_and_call to compute stack adjust + for must_preallocate case. + + * expr.c (push_block): Remove shadow `temp' in inner scope. + +2000-04-28 Jason Merrill + + * toplev.c (rest_of_compilation): Call + note_deferral_of_defined_inline_function even if the function + can't be inlined. + +2000-04-28 Scott Bambrough + + * cpplex.c (_cpp_scan_line): Fix buffer overwrite. + +2000-04-28 Richard Henderson + + * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo. + +2000-04-28 Kaveh R. Ghazi + + * timevar.c (init_timevar): DeANSIfy function definition. + +2000-04-27 Alex Samuel + + * Makefile.in (timevar.o): Depend on flags.h. + * timevar.c (unused_stack_instances): New variable. + (timevar_push): Take a timevar_stack_def from + unused_stack_instances if available. + (timevar_pop): Push the popped timevar_stack_def onto + unused_stack_instances. + (TIMEVAR_ENABLE): New macro. + (timevar_def): Make standalone a 1-bit field. Add field used. + (get_time): Rename parameter to now. Return after clearing it if + not TIMEVAR_ENABLE. + (init_timevar): Do nothing if not TIMEVAR_ENABLE. + (timevar_pop): Likewise. + (timevar_stop): Likewise. + (timevar_push): Likewise. Mark the timing variable as used. + (timevar_start): Likewise. + (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print + timevars that were never used. + +2000-04-27 Mark Mitchell + + * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are + always TREE_READONLY. + +2000-04-27 Ulrich Drepper + + * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference + for call instruction with mode QImode. + +2000-04-27 Alex Samuel + + * Makefile.in (OBJS): Add timevar.o. + (toplev.o): Depend on timevar.h. + (ggc-simple.o): Likewise. + (ggc-page.o): Likewise. + (timevar.o): New rule. + (timevar.h): New rule. + + * timevar.h: New file. + * timevar.c: Likewise. + * timevar.def: Likewise. + + * toplev.h (gc_time, parse_time, varconst_time): Remove. + * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR + throughout. + (TIMEVAR): Remove macro. + (gc_time, parse_time, varconst_time, integration_time, jump_time, + cse_time, gcse_time, loop_time, cse2_time, branch_prob_time, + flow_time, combine_time, regmove_time, sched_time, + local_alloc_time, global_alloc_time, flow2_time, peephole2_time, + sched2_time, dbr_sched_time, reorder_blocks_time, + rename_registers_time, shorten_branch_time, stack_reg_time, + to_ssa_time, from_ssa_time, final_time, symout_time, dump_time, + all_time): Remove. + (compile_file): Don't initialize time variables. Call + init_timevar and start TV_TOTAL timer. Call timevar_print instead + of many calls to print_time. + (rest_of_compilation): Add timing for reload_cse_regs. + (get_run_time): Removed to timevar.c. + (print_time): Likewise. + (get_run_time): Implement using TV_TOTAL time variable. + (print_time): Get total run time from get_run_time. + * ggc-page.c (ggc_collect): Push and pop TV_GC instead of + computing elapsed time explicitly. + * ggc-simple.c (ggc_collect): Likewise. + (gc_time): Remove declaration. + +2000-04-27 Mark Mitchell + + * calls.c (combine_pending_stack_adjustment_and_call): New function. + (expand_call): Use it. + +2000-04-27 Jan Hubicka + + * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT + fields. + +Thu Apr 27 12:47:00 2000 Alexandre Oliva + + * config/mn10300/mn10300.md (movhi): Simplify. Prefer data + registers. + +Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka + + * function.c (epilogue_done): Pass whole insn to record_insns. + +Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka + + * cse.c (CSE_ADDRESS_COST): Remove. + (find_best_addr): Add new parameter "MODE", use address_cost instead + of CSE_ADDRESS_COST + (address_cost): New. + (fold_rtx): Update call of find_best_addr. + * rtl.h (address_cost): Declare. + * loop.c (general_induction_var): Add new parameter "MODE", use + address_cost instead of ADDRESS_COST + (init_loop): Use address_cost instead of ADDRESS_COST. + (check_insn_for_givs): Update call of general_induction_var. + (find_mem_givs): Likewise. + (consec_sets_giv): Likewise. + * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost. + * i386.c (ix86_address_cost): New. + * i386-protos.h (ix86_address_cost): Declare. + +Thu Apr 27 11:45:16 2000 Alexandre Oliva + + * config/mn10300/mn10300.md (movqi): Simplify. Prefer data + registers. + +Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka + + * expr.c (store_expr): Use clear_storage instead of direct memset + libcall. + +Thu Apr 27 10:36:51 2000 Alexandre Oliva + + * config/mn10300/mn10300.c (mn10300_address_cost): Test + ASHIFT, AND and LABEL_REF. + +Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka + + * invoke.texi (-foptimize-sibling-calls): Fix. + +Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka + + * loop.c (load_mems) Don't use hard registers for the hoisting. + + * unroll.c (unroll_loop): Avoid overflow in the n_iterations + calculation; rename const_equiv array in the preconditioning code + from loop_unroll to loop_unroll_precondition + +2000-04-27 Richard Henderson + + * flow.c (struct propagate_block_info): Remove new_dead, new_live; + add new_set. + (propagate_one_insn): Clear it. Don't update reg_live here. + (init_propagate_block_info): Update for pbi member changes. + (free_propagate_block_info): Likewise. + (mark_set_1): Know that zero_extract, sign_extract, and + strict_low_part don't kill their argument. Alter hard subregs. + Update new_set for non-CLOBBER sets. Update reg_live. + (find_auto_inc): Update reg_live, not new_dead. + (mark_used_reg): Update reg_live, not new_live. Examine new_set + to determine if the reg in question was set this insn. Only update + reg info with PROP_REG_INFO. + +2000-04-26 Richard Henderson + + * flow.c (allocate_reg_life_data): Set max_regno here ... + (life_analysis): ... not here. + + * flow.c (calculate_global_regs_live): Force stack pointer + live at end. + +2000-04-26 Richard Henderson + + * jump.c (redirect_exp_1): Rework from old redirect_exp. Never + commit change group changes. + (invert_exp_1): Similarly. + (redirect_exp, invert_exp): Use them. + (redirect_jump_1): New. + (invert_jump_1): New. + (jump_optimize_1): Remove code subsumed by condexec.c. + * rtl.h (invert_jump_1, redirect_jump_1): Declare. + +2000-04-26 Richard Henderson + + * rtlanal.c (dead_or_set_regno_p): Use find_regno_note. + + * genconfig.c (main): Set all HAVE_foo to 1. + + * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array. + +2000-04-26 Alex Samuel + + * invoke.texi: Document -fssa flag. + +2000-04-26 Richard Henderson + + * flow.c (count_reg_sets_1): Remove. + (count_reg_sets, count_reg_references): Remove. + (recompute_reg_usage): Implement with update_life_info. + Reallocate life data. + +2000-04-26 Richard Henderson + + * flow.c (update_life_info): Consider blocks null to mean the + universal set. + (calculate_global_regs_live): Likewise. + (life_analysis): Do that instead of collecting all_blocks. + +2000-04-26 Richard Henderson + + * flow.c (tidy_fallthru_edge): Don't delete the jump when it's + a still-valid conditional jump. + +2000-04-26 Richard Henderson + + * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly. + + * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability. + * flow.c (calculate_loop_depth): Remove. + * output.h (calculate_loop_depth): Don't declare. + * toplev.c (rest_of_compilation): Expand calculate_loop_depth + inline; run estimate_probability at the same time. + +2000-04-26 Neil Booth + + * cpplib.h: "~=" is not a single pp-token. + * cpplex.c: Correct commentary. + +2000-04-26 Richard Henderson + + * flow.c (mark_set_1): New arguments code and flags; update all + callers. Track regno_first and regno_last; do HARD_REGNO_NREGS + test in one place. Tidy flags tests. Don't bias REG_N_REFS by + loop_depth when optimizing for size. Do new_dead update after + emitting REG_UNUSED notes. Merge mark_set_reg code. + (mark_set_reg): Remove. + (propagate_one_insn): Use mark_set_1 for call-clobbered registers; + arrange to not emit REG_UNUSED notes. + +2000-04-26 Richard Henderson + + * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN. + * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn. + +2000-04-26 Richard Henderson + + * flow.c (propagate_one_insn): Break out from propagate_block. + (init_propagate_block_info): Likewise. + (free_propagate_block_info): Likewise. + (propagate_block): Use them. Export. + * basic-block.h: Declare them all. + +2000-04-26 Richard Henderson + + * basic-block.h (life_analysis): Declare here ... + * output.h: ... not here. + * flow.c (life_analysis): Remove nregs parameter; replace + remove_dead_code with flags. Remove ssa dead code check. + Only init alias analysis if we'll use it. + * reg-stack.c (reg_to_stack): Update life_analysis arguments. + * ssa.c (convert_to_ssa): Likewise. + (convert_from_ssa): Likewise. + * toplev.c (rest_of_compilation): Likewise. + +2000-04-26 Richard Henderson + + * flow.c (flow_delete_block): Rename from delete_block. Export. + * basic-block.h (flow_delete_block): Declare. + +2000-04-26 David S. Miller + + * optabs.c (emit_libcall_block): Verify insns with INSN_P before + taking a PATTERN of it. + +2000-04-26 + + * cpplex.c (spell_other, spell_char): Remove. + (SPELL_CHAR): New. + (token_spelling, trigraph_map): Use unsigned chars. + (_cpp_lex_line): Tidy up the switch statement. + * cpplib.h: Implement spell_char with spell_string. + (C): New. + +2000-04-26 + + * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal. + * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal. + +2000-04-26 Kaveh R. Ghazi + + * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi, + reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa, + dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save, + dwarf2out_return_save, dwarf2out_return_reg, + dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename, + add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label, + gen_compile_unit_die, dwarf2out_init): Constify a char*. + + * dwarf2out.h (dwarf2out_init): Likewise. + + * dwarfout.c (filename_entry, primary_filename, last_filename, + type_tag, output_compile_unit_die, dwarfout_init): Likewise. + + * tree.h (dwarf2out_def_cfa, dwarf2out_window_save, + dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save, + dwarf2out_return_reg): Likewise. + +2000-04-26 Andreas Jaeger + + * extend.texi (Function Attributes): Fix description of pure + attribute. + +2000-04-26 Jason Merrill + + * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT + before calling rest_of_compilation. + +2000-04-26 Andreas Jaeger + + * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in + last patch. + +2000-04-25 Richard Henderson + + * cse.c (cse_insn): Emit barrier after unconditional jump. + + * calls.c (expand_call): Disable tail call generation once + rtx_equal_function_value_matters is false. + + * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges + like EDGE_EH edges. + +2000-04-25 Jason Merrill + + * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR. + + * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs. + + * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE + is the primary DIE for a member function. + (gen_decl_die): Call set_decl_origin_self here. + * dwarfout.c (output_decl): And here. + * integrate.c (output_inline_function): Not here. + Don't clear DECL_INLINE until after calling rest_of_compilation. + (set_decl_origin_self): No longer static. + * tree.h: Add prototype. + * toplev.c (note_deferral_of_defined_inline_function): Only write + out abstract instance for actual inlines. + +2000-04-25 Alexandre Oliva + + * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return + EXTENDED_REGS only if TARGET_AM33. + * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing + SP_REGS to register allocation and reloading unless absolutely + necessary. + (movsi3): Remove special-case of adding non-constants to SP. + +2000-04-25 Kaveh R. Ghazi + + * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires + INCLUDES to search and does not provide any of its own. Also it + now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED + parameters. Also it does not call AC_DEFINE. + (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls + AC_DEFINE and provides for automatic entries for autoheader. + (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test. + + * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS + so we can pass -I flags and include gansidecl.h/system.h in this + test. + + * acconfig.h: Delete all NEED_DECLARATION_* entries. + +2000-04-25 Kaveh R. Ghazi + + * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, + ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, + ENABLE_GC_ALWAYS_COLLECT): Delete entries. + + * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, + ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, + ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE + for these macros. Clean up spacing and linewraps. + +2000-04-26 Jason Merrill + + * calls.c (expand_call): Use get_callee_fndecl. + + * print-tree.c (print_node): Print the chain of an _EXPR. + +Tue Apr 25 16:16:04 2000 Andrew MacLeod + Jim Wilson + Andrew Haley + + * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc + and gp save/restore problems. + * config/ia64/crtend.asm: Add IA-64 unwind support. + * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size + in fr_pad_size calculation. + (save_restore_insns): Move PR save area. Correct uses of + RTX_FRAME_RELATED_P. + (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P. + (ia64_expand_epilogue): Add eh_epilogue support. + (ia64_function_prologue): Emit .prologue directive. + (ia64_init_machine_status, ia64_mark_machine_status): New functions. + (ia64_override_options): Set init_machine_status and + mark_machine_status. + (rtx_needs_barrier): Handle bsp reads and writes. + (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved): + New static variables. + (process_set, process_for_unwind_directive): New functions. + * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT, + ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR, + ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New + macros. + (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section. + (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define. + (struct machine_function): Define. + * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns. + +2000-04-25 Bruce Korb + + * fixinc/Makefile.in: make the removal of old programs more + robust + * fixinc/mkfixinc.sh: use the two new targets in the Makefile: + install-bin and install-sh + +2000-04-25 Nick Clifton + + * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not + defined, define to return zero. + (function_cannot_inline_p): If a function has any target + specific attributes, then use the macro + FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide + whether it can be inlined. If it cannot, issue a suitable + explanation. + + * tm.texi: Add a new node 'Inlining' to document the new macro + FUNCTION_ATTRIBUTE_INLINABLE_P. + +2000-04-25 Zack Weinberg + + * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix + commentary. + +2000-04-25 Neil Booth + + Restore previous patch, plus the following fixes: + + * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in + flags, not CPP_OPEN_PAREN. + * cpplex.c (expand_token_space, init_token_list, + cpp_free_token_list): Put the dummy token at list->tokens[-1]. + (_cpp_lex_line, _cpp_lex_file): token list is 0-based. + +Tue Apr 25 14:06:40 2000 Alexandre Oliva + + * config/i386/freebsd.h (INT_ASM_OP): Define. + +Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka + + * loop.c (strength_reduce): Fix typo in the last checkin. + +Tue Apr 25 07:33:12 2000 Richard Kenner + + * stor-layout.c (finalize_record_size): Simplify to use existing + functions. + (compute_record_mode): No longer static. + * tree.h (compute_record_mode): New declaration. + +2000-04-25 Neil Booth + + * Revert my patch below until cause of build failures + determined. + +2000-04-25 Richard Henderson + + * combine.c (combine_instructions): Add missing argument + to try_combine. + + * toplev.c (rest_of_compilation): Delay sibcall optimization + until after emit_eh_context. + +2000-04-24 Nick Clifton + + * combine.c (combine_instructions): Do not try to combine a + sequence of insns when the second insn has been replaced by a + note. + +Mon Apr 24 17:34:18 2000 Mumit Khan + + * gcc.c (load_specs): New static function. + (read_specs): Use it. + + * gcc.c (lookup_compiler): Make multiple passes for case + insensitive filesystems. + +2000-04-24 Neil Booth + + * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE. + * cpphash.h (_cpp_check_directive): new. + * cpplex.c (handle_newline, cpp_free_token_list, + init_trigraph_map, trigraph_ok, trigraph_replace, + backslash_start, skip_block_comment, skip_line_comment, + skip_whitespace, parse_name, parse_number, parse_string, + copy_comment, _cpp_lex_line, spell_char, spell_string, + spell_comment, spell_name, spell_other, _cpp_lex_file, + _cpp_output_list): new. + (expand_name_space): take length argument. + (init_token_list): add comment list initialisation. + (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE + instead of HSPACE_BEFORE. + + * cpplib.c (_cpp_check_directive): new + * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT, + DIGRAPH, UNSIGNED_INT, TOK_NAME): new. + (HSPACE_BEFORE): delete. + (TTYPE_TABLE): rearrange. + (struct cpp_toklist): update. + +2000-04-24 Kaveh R. Ghazi + + * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR, + gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three + argument form of AC_DEFINE. + + * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER, + HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY, + WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK, + HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG, + HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise. + + * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE. + +2000-04-24 Kaveh R. Ghazi + + * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES, + deduced.h): Use -isystem, not -I, for including system headers. + +2000-04-24 Nick Clifton + + * config/fr30/fr30.md (addsi3): Do not use small add instruction if + the source register is the frame pointer or arg pointer. + (addsi3_small_int): Disallow if source register is the frame + pointer or arg pointer. + +2000-04-24 Kaveh R. Ghazi + + * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant + call to AC_MSG_RESULT. + +2000-04-24 Martin v. Löwis + + * invoke.texi: Correct grammatical errors, document + -fno-gnu-keywords as identical to -fno-asm for C++. + +2000-04-24 Kaveh R. Ghazi + + * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION, + GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT, + GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE, + AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG, + EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_. + + * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S, + GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING, + GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR, + GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with + new macros names. + +2000-04-24 Mumit Khan + + * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. + (pop_alignment): Likewise. + (handle_pragma_token): Likewise. + +2000-04-24 Robert Lipe + + * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD. + +2000-04-24 Hiroyuki Machida + + * combine.c (try_combine): Update reg_nonzero_bits of + newi2pat before newpat. + +Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka + + * loop.c (strength_reduce): Simplify test to INSN_P. + (record_giv): Attempt to simplify the add value, use CONSTANT_P + expressions instead of CONST_INT. + (express_from_1): Likewise. + +2000-04-24 Mark Mitchell + + * regs.h (reg_n_max): Don't declare. + * flow.c (reg_n_max): Don't define. + * regclass.c (renumber): Don't initialize to zero. + (regno_allocated): Likewise. + (reg_n_max): Define. + (allocate_reg_info): Don't initialize unnecessarily. + +Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com) + + * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p + and blockage_p in the newly allocated attribute. + +Sun Apr 23 20:16:49 2000 Alexandre Oliva + + * config/mn10300/mn10300.md (addsi): `inc4' on address + registers does not modify cc, but `inc' on an extended + register does. + +Sun Apr 23 16:24:35 2000 Denis Chertykov + + * reload.c (find_equiv_reg): Checks all valueno regs + as a reload_reg_p regs. + +2000-04-23 Zack Weinberg + + * cpphash.c (collect_objlike_expansion): Add sanity check. + (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If + the buffer is the empty string, return. Mark __DATE__ and + __TIME__ as XCONST nodes, not MCONST. + (_cpp_macroexpand): Avoid pushing an empty buffer. + (funlike_macroexpand): Don't pop token_buffer here. + +Sun Apr 23 18:37:53 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro. + (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros. + (REGNO_EXTENDED_P, REGNO_AM33_P): New macros. + (REGNO_OK_FOR_BASE_P): Define in terms of them. + (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise. + (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro. + (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise. + +Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka + + * loop.c (simplify_giv_expr): Be more agressive on simplifying + constant MULT givs. + +2000-04-23 Zack Weinberg + + * cpphash.h (struct definition): Move file, line, col members... + (struct hashnode): ... here. Also add 'disabled' flag. + (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and + T_IDENTITY. Remove T_DISABLED. + Update prototypes. + + * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION. + (collect_expansion): Split into collect_objlike_expansion and + collect_funlike_expansion. + (_cpp_macroexpand): Split out scan_arguments, stringify, and + funlike_macroexpand. + (_cpp_compare_defs): Rename compare_defs, make static. + (_cpp_make_hashnode): Initialize hp->disabled. + (macro_cleanup): Adjust for new token types. Clear + m->disabled. + (_cpp_create_definition): Move code here to determine what + sort of macro it is, and code to check for redefinitions, from + do_define. Implement a few simple cases without creating a + full DEFINITION. + (_cpp_macroexpand, special_symbol, _cpp_dump_definition): + Handle the simple cases. + (push_macro_expansion): Set buf->has_escapes and hp->disabled + here. + + * cppinit.c (builtin_array): Change MCONST to XCONST + everywhere. + * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here; + fix check for disabled and function-like macros. + * cpplib.c (do_define): Move most logic to + _cpp_create_definition. + (do_undef): Handle new special token types. + +Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka + + * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead + of CONSTANT_P for mult_val; always use validate_change to update insn. + +2000-04-22 Zack Weinberg + + * cpphash.c (trad_stringify, add_pat): New functions. + (collect_expansion): Restore support for -traditional syntax. + Use trad_stringify and add_pat. + (_cpp_macroexpand): Restore support for -traditional semantics. + * cpplex.c (_cpp_scan_line): Don't change space_before if we + get a COMMENT token. + (_cpp_lex_token): Provide COMMENT tokens to caller if + traditional and parsing_define_directive. + (skip_comment): Warn about // comments if -Wtraditional. + * cpplib.c (do_define): Fix typo. Create EMPTY nodes with + proper node type. + (do_undef): Don't warn about undefining EMPTY nodes. + +Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka + + * loop.c (strength_reduce): Fix biv removal code. + +2000-04-22 Richard Henderson + + * predict.c (estimate_probability): Examine both sides of + a branch for no exits. Use 90% not 50% for predict taken. + Reorg for one copy of note generation code. + +2000-04-22 Richard Henderson + + * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. + +2000-04-22 Richard Henderson + + * diagnostic.c (init_output_buffer): Don't initialize format_args. + (output_clear): Likewise. + (output_printf): Use va_copy. + (vline_wrapper_message_with_location): Likewise. + (v_message_with_decl): Likewise. + (line_wrapper_printf): VA_START infor buffer.format_args directly. + * system.h (va_copy): Provide default implementation. + +2000-04-22 Richard Henderson + + * predict.c (expected_value_to_br_prob): Don't bomb if op1 of + the collected condition is not a constant. + +2000-04-22 Gabriel Dos Reis + + * diagnostic.h: New file. + + * Makefile.in (diagnostic.o): Depends on diagnostic.h + + * diagnostic.c: Tweak. Rationalize the output logic. Adjust + various function prototypes. + (diagnostic.h): #include. + (struct output_buffer): Move into diagnostic.h. + (get_output_prefix): Rename to output_get_prefix. Export. + (init_output_buffer): Export. Break out. Adjust initialization. + (output_space_left, output_append): Export. + (output_newline): Rename to output_add_newline. Export. + (output_clear): Nullify additional output_buffer fields. + (output_puts): Rename to output_add_string. Export. + (dump_output): Rename to output_flush_on. Export. + (build_location_prefix): Constify return-type. + (emit_output_prefix): Rename to output_emit_prefix. Export. + (set_real_maximum_length): New function. + (output_set_maximum_length): Ditto + (output_clear): Ditto. + (output_add_character): Ditto. + (output_add_integer): Ditto. + (output_add_space): Ditto. + (output_format): Ditto. + (output_printf): Adjust buffer initialization. + (vline_wrapper_message_with_location): Ditto. + (v_message_with_decl): Ditto. Adjust call to output_puts + and get_output_prefix. + (default_print_error_function): Adjust buffer initialization. + +Sat Apr 22 06:45:04 2000 Richard Kenner + + * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE + of VOID_TYPE. + +Fri Apr 21 18:33:09 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead + of explicit 0. + +Fri Apr 21 18:30:00 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more + accurate data about SP moves. + +Fri Apr 21 18:28:28 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added + aliases to AM33 registers. + +Fri Apr 21 18:26:17 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16 + to all EXTENDED bitmaps. + +Fri Apr 21 18:17:12 2000 Alexandre Oliva + + * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare. + * config/mn10300/mn10300.h (ADDRESS_COST): New macro. + * config/mn10300/mn10300.c (mn10300_address_cost): New function. + +Fri Apr 21 18:11:56 2000 Alexandre Oliva + + * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when + the operand is not constant. + +Fri Apr 21 14:58:29 2000 Denis Chertykov + + * reload.c (find_equiv_reg): Checks all valueno and regno regs + as a call-clobbered regs. + +Fri Apr 21 13:30:26 2000 Richard Kenner + + * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG. + * rtl.h: Likewise. + * rtl.def: Update comment. + * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER. + * integrate.c (expand_inline_function): Likewise. + * profile.c (branch_prob): Likewise. + * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG. + * print-rtl.c (print_rtx): Likewise. + * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise. + (reemit_notes): Likewise; also use enum insn_note. + + * stor-layout.c (layout_decl): Only set DECL_MODE if not already set. + (place_field): Properly compute know and actual alignment. + + * gengenrtl.c (gencode): Write obstack_alloc_rtx function start + in proper format. + + * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL + note for REG1. + +2000-04-21 Zack Weinberg + + * cpphash.c (struct arg, struct arglist): Const-ify strings. + (warn_trad_stringify, duplicate_arg_p): New helper functions. + (collect_expansion): Rewrite to scan over a token list. + Remove -traditional support. + (collect_formal_parameters): Rename to collect_params; rewrite + to scan over a token list. + (_cpp_create_definition): Adjust to scan a token list. + (_cpp_macroexpand): Remove -traditional support. + (_cpp_compare_defs): Whitespace is now canonicalized. + (comp_def_part): Delete function. + + * cpphash.h: Update prototypes. + * cpplex.c (init_token_list): Don't set lineno if there is no + buffer. + (pedantic_whitespace): New function. + (_cpp_scan_line): Mark tokens that had hspace before. Don't + consume a newline. Use pedantic_whitespace. + (_cpp_lex_token): Remove support for -traditional macros. + (_cpp_get_define_token): Delete. + (_cpp_get_directive_token): Do the real work here. Use + pedantic_whitespace. + (_cpp_init_input_buffer): Initialize pfile->directbuf. + + * cpplib.c (get_macro_name): Delete. + (do_define): Read the entire line into pfile->directbuf, then + feed the token list to _cpp_create_definition. + * cpplib.h (HSPACE_BEFORE): new define. + (struct cpp_reader): Add a toklist member, "directbuf". + + * predict.c (estimate_probability): New heuristic: if a jump + branches around a block with no successors, predict it taken. + Disentangle control flow. + +2000-04-20 Richard Henderson + + * loop.c (emit_iv_add_mult): Revert last change. + +2000-04-20 Zack Weinberg + + * cpplib.h (enum cpp_ttype): Add token types for all + punctuators. Distinguish pp-numbers from valid C numbers. + Give some tokens better names. Initialize from macro. + (struct cpp_name, cpp_token, cpp_toklist): New data + structures. + Update prototypes. + * cpplex.c (bump_column, expand_name_space, + expand_token_space, init_token_list, cpp_output_list, + _cpp_scan_line): New functions. + (output_line_command): Add third argument, new line number. + * cpphash.h: Update prototypes. + * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new + token names. + +2000-04-20 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier. + +2000-04-20 Zack Weinberg + + * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the + object pointed to. + +Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka + + * loop.c (emit_iv_add_mult): Simplify it's input and emit + REG_EQUAL note explaining the calculated value. + + * calls.c (expand_call): Avoid unnecesary precalculation + and outgoing parameters space guarding for sibling calls. + (store_one_arg): Likewise. + +Thu Apr 20 08:01:07 2000 Richard Kenner + + * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. + (rest_of_compilation): Write sibling dump file and account + for time as jump time. + * invoke.texi: Update documentation on dump flags. + +2000-04-19 Marek Michalkiewicz + + * avr.c: #include "system.h" instead of and . + +2000-04-19 Zack Weinberg + + * cpphash.c (special_symbol): Represent an empty macro with + "\r \r " not just "\r ". + (_cpp_macroexpand): Correct condition for the foo ( ) special + case. + (unsafe_chars): Handle EOF as second argument. + (push_macro_expansion): Simplify test for removing escape at + end. Do not trim both escapes if there is no text in between. + +2000-04-19 Jim Blandy + + * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead + of PTR_SIZE, when appropriate. + +2000-04-19 Mark Mitchell + + * system.h (ONLY_INT_FIELDS): Make sure it is defined. + (USE_ENUM_BITFIELDS): Fix typo. + +Wed Apr 19 12:14:55 2000 Richard Kenner + + * stor-layout.c (place_field): Set rli->offset_align properly. + +2000-04-19 Kaveh R. Ghazi + + * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG, + INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY, + PARM_BOUNDARY): Remove unnecessary casts. + +Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka + + * calls.c (precompute_arguments): Remove must_preallocate and + args_size calls. + (expand_call): Update call of precompute_arguments. + + * loop.c (check_insn_for_bivs, for_every_insn_in_loop, + check_insn_for_givs): Break out from ... + (strength_reduce) ... here; use for_every_insn_in_loop to call + check_insn_for_givs. + * loop.h (for_every_insn_in_loop): Declare. + (loop_insn_callback): New type. + +2000-04-18 Zack Weinberg + + * cpplib.c (do_pragma_poison): Strings in the token buffer are + not nul-terminated. + +Tue Apr 18 16:04:12 2000 Jim Wilson + + * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if + flag_pic and RELOC. + +2000-04-18 Zack Weinberg + + * cccp.c, cexp.y, cexp.c, cccp.1: Removed. + + * configure.in: Delete --disable-cpplib option and all + references to cpp_main. + * configure: Regenerate. + * Makefile.in: Remove all references to CCCP, CCCP_OBJS, + @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o, + cccp.o, cccp, or cppmain. Link cppmain.o straight to + cpp$(exeext). Add --no-headers to makeinfo command line when + generating INSTALL. Install and uninstall cpp.1 manpage, not + cccp.1. + * install.texi: Delete all references to cexp.y/cexp.c. + Delete ancient instructions for compiling GCC on 3b1. + * INSTALL: Regenerate. + + * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff, + mips/t-elf, mips/t-r3900: Remove references to cccp.c. + * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to + cexp.c/cexp.y. + * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING, + which is no longer tested anywhere. + + * cppinit.c (handle_option): Don't run error message through + gettext twice. + +Tue Apr 18 14:16:47 2000 Richard Kenner + + * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot. + * cpperror.c (hashtab.h): Now include. + * cppexp.c (hashtab.h): Likewise. + * cpplex.c (hashtab.h): Likewise. + * cppfiles.c (hashtab.h): Likewise. + (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type + to htab_find_slot_with_hash. + * cpphash.c (hashtab.h): Now include. + (_cpp_lookup_slot): INSERT is now enum insert_option. + * cpphash.h (_cpp_lookup_slot): Likewise. + * cppinit.c (hashtab.h): Include earlier. + (initialize_builtins): Pass enum to htab_find_slot. + * cpplib.c (hashtab.h): Now include. + (do_define, do_undef): Pass enum type to _cpp_lookup_slot. + (do_pragma_poison, do_assert): Likewise. + * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to + htab_find_slot_with_hash. + * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise. + * tree.c (type_hash_add): Likewise. + (build1): Minor cleanup. + + * ggc-common.c: Add missing blanks. + * print-tree.c (print_node): Print DECL_OFFSET_ALIGN. + * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment. + + * stmt.c (mark_case_node): New function. + (mark_case_nesting): Call it. + + * expmed.c (emit_store_flag): If comparing two-word integer + with zero, can optimize NE, EQ, GE, and LT. + + * c-decl.c (mark_binding_level): Use 'for' instead of `while'. + * conflict.c: Minor cleanups. + * optabs.c: Add blank line + * simplify-rtx.c: Minor cleanups. + +2000-04-18 Stan Cox + + * gengenrtl.c (genlegend): Fix misspelling. + +2000-04-18 Robert Lipe + + * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that + bitfields of the host compiler are not signed quantities. + * config.in: Regenerate. + * configure: Regenerate. + * system.h (USE_ENUM_BITFIELDS): Added. + (ENUM_BITFIELDS): Added. + * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD. + (SHORT_ENUM_BUG): Deleted. + * tree.h (tree_common): Members `code', `mode', `built_in_class', + now ENUM_BITFIELD. + * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted. + (CODE_FIELD_BUG): Likewise. + * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG. + (OLD_CC): Likewise. + * config/m68k/x-ccur (X_CFLAGS): Likewise. + +2000-04-18 Mark Mitchell + + * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the + mark is active. + +2000-04-17 Zack Weinberg + + * cppexp.c (lex): Don't assume tokens are NUL terminated. + * cpplib.c (do_include, do_import, do_include_next, + read_line_number, detect_if_not_defined): Likewise. + * cpphash.c (collect_expansion): Likewise. + (special_symbol, _cpp_macroexpand): Check return from + cpp_file_buffer. + * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete + macros. Delete all uses. + + * gcc.dg/cpp-mi.c: Add two more test cases. + * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files. + +2000-04-17 Richard Henderson + + * bb-reorder.c (fixup_reorder_chain): Don't look up new block again. + (reorder_basic_blocks): If no epilogue in rtl, force last block last. + +2000-04-17 Mark Mitchell + + * function.c (expand_function_start): Use hard_function_value to + compute the RTL to use for DECL_RESULT. + +Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka + + * i386.c (athlon_cost): Fix lea, divide and XFmode move costs. + (x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall): New global variables. + (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only + alloved; fix load penalties for Athlon. + * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency, + x86_memory_mismatch_stall): Declare. + (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY, + TARGET_MEMORY_MISMATCH_STALL): New. + * i386.md (athlon scheduling parameters): Fix latencies according to + Athlon Optimization Manual. + (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to + vector. + (fsqrt instruction patterns): Set athlon_decode to direct. + (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for + PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines. + (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY + and TARGET_PARTIAL_REGISTER_STALL machines. + (pushdf_nointeger): New pattern. + (pushdf_integer): Rename from pushdf. + (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines. + (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines. + +2000-04-17 Richard Henderson + + * loop.c (canonicalize_condition): Add WANT_REG argument. + Stop the search if we match it. + * expr.h (canonicalize_condition): Update decl. + * predict.c (expected_value_to_br_prob): Use it. Track last + expected value note. + (find_expected_value): Remove. + + * reorg.c (mostly_true_jump): Always use BR_PROB if present. + +2000-04-17 Zack Weinberg + + * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]). + (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of + a plain file. + * configure.in: Call AC_FUNC_MMAP_FILE. + * configure: Regenerate. + * config.in: Regenerate. + + * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP. + * fixinc/fixincl.c: Likewise. + +2000-04-17 Richard Henderson + + * builtins.c (expand_builtin_expect): New. + (expand_builtin): Call it. + * builtins.def (BUILT_IN_EXPECT): New. + * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect. + * extend.texi: Document it. + + * predict.c (expected_value_to_br_prob): New. + (find_expected_value): New. + * basic-block.h (expected_value_to_br_prob): Declare. + * toplev.c (rest_of_compilation): Invoke it. + + * rtl.h (NOTE_EXPECTED_VALUE): New. + (NOTE_INSN_EXPECTED_VALUE): New. + * rtl.c (note_insn_name): Update. + * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special + cases; handle NOTE_INSN_EXPECTED_VALUE. + +2000-04-17 Jakub Jelinek + + * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use + leaf sibcall delay slot if flag_pic. + (output_sibcall): Always emit call for leaf sibcall if flag_pic. + +2000-04-17 Kaveh R. Ghazi + + * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto. + + * fixproto: If fix-header fails, exit with an error. + +Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka + + * cse.c (struct check_dependence_data): New. + (check_dependence): New function. + (invalidate): Use check_depdenence. + +2000-04-16 Mark Mitchell + + * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that + UNITS_PER_WORD is unsigned. + + * tree.h (struct tree_common): Remove misleading comment. + +2000-04-16 Dave Pitts + + * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole + message in quotes. Otherwise, IBM's make program treats the '#' as the + start of a comment and ignores the remainder of the line. + + * c-lex.c (yylex): Change for EBCDIC, lower case characters precede + upper case. + * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC. + * cexp.y (initialize_random_junk): Likewise. + * cppfiles.c (find_include_file): Cast alloca return value. + * cppinit.c (initialize_standard_includes): Likewise. + * cpplib.c (cpp_define, cpp_undef): Likewise. + * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT. + * final.c (output_asm_insn): Allow for holes in EBCDIC. + * fold-const.c (CHARMASK): New. + (real_hex_to_f): Use it. + * real.c (CHARMASK): New. + (etoasc, asctoeg): Use it. + (asctoeg): EBCDIC lower case characters precede upper case. + + * i370.c (mvs_add_label): Change spacing for coding conventions. + * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the + outputting case vectors. + (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT. + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check, + since vector in in the data CSECT. + (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. + * i370.md (Many patterns): Put the length in the XL directives. + (movdi): Put back STM and MVC in definition. + (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370 + pattern using the TCA. + * oe.h (CPP_SPEC): Added to allow trigraphs. + * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does + not support the "long long" type. + +2000-04-16 Mark Mitchell + + * config/mips/mips-protos.h (mips_legitimate_address_p): New + function. + (mips_reg_mode_ok_for_base_p): Likewise. + * config/mips/mips.h (REG_OK_STRICT_P): Don't define. + (REG_OK_FOR_INDEX_P): Define unconditionally. + (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p. + (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p. + * config/mips/mips.c (mips16_simple_memory_operand): Adjust now + that GET_MODE_SIZE is unsigned. + (mips_reg_mode_ok_for_base_p): Define. + (mips_legitimate_address_p): Likewise. Adjust now + that GET_MODE_SIZE is unsigned. + (block_move_loop): Make the number of bytes unsigned. + (expand_block_move): Likewise. + (function_arg): Make the loop counter unsigned to match the + boundary condition. + +2000-04-16 Richard Henderson + + * rtl.h (enum insn_note): New enumeration. Subsume + NOTE_INSN_DELETED and friends. + (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS. + * rtl.c (note_insn_name): Tweak string order. + +2000-04-15 Zack Weinberg + + * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it + to offset * 2. + + * cpplex.c (output_line_command): Remove debugging prints. + (cpp_output_tokens): Don't write out a zero-length buffer or + try to see if it has a newline in it. + (_cpp_expand_to_buffer): Copy the source buffer before pushing. + (_cpp_read_and_prescan): Move shift-down of pushback bytes to + the end of the loop. Use memmove. Don't read past the end of + the buffer. Remove trailing newlines from error messages. + +2004-04-16 Neil Booth + + * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new. + * cpplib.c: Add new syntax flags to directive table, and + supporting macros. + +2000-04-15 Ulrich Drepper + + * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once + using ret $N. + +2000-04-15 David Edelsohn + + * toplev.c (display_help): Prefix "f" to "sched-verbose=". + * haifa-sched.c: Update -fsched-verbose comments to use "=". + +Sat Apr 15 10:59:19 2000 Richard Kenner + + * Makefile.in (ggc-page.o): Now includes toplev.h. + * ggc-page.c (toplev.h): Now included. + (gc_time): Remove declaration. + (ggc_collect): TIME now long. + * toplev.c (parse_time, varasm_time, gc_time): Still global; all + others static. + * toplev.h (gc_time, parse_time, gc_time): New declarations. + + * toplev.c: Make *_time variable long to reduce chance of overflow. + (TIMEVAR): Likewise for `otime'. + (print_time): Arg is now long; compute percentage in FP and round. + * toplev.h (print_time): Arg is long. + + * tree.c: Minor whitespace changes. + + * configure.in (alpha*-*-*): Add config/alpha/t-alpha. + * configure: Rebuilt. + * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi. + (__fixunsxfDI): Renamed from __fixunsxfdi. + (__fixunsdfDI): Renamed from __fixunsdfdi. + (__fixunssfDI): Renamed from __fixunssfdi. + (__floatdisf): Use proper type in REP_BIT macro. + (__fixunsxfSI): Renamed from __fixunsxfsi. + (__fixunsdfSI): Renamed from __fixunsdfsi. + (__fixunssfSI): Renamed from __fixunssfsi. + * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4. + Change location of macros and upper-case some names as above. + * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd. + * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files. + + * varasm.c (assemble_variable): Add cast to remove warning. + (immed_real_const_1): Only use CONST[01]_RTX if not in nested function. + + * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change. + * optabs.c (emit_libcall_block): If have REG_EH_REGION, update + region number to -1. + +2000-04-15 Richard Earnshaw (rearnsah@arm.com) + + * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then + call unshare_all_rtl. + + * arm.md (movhi): REGNO_POINTER_ALIGN is now bits. + +Fri Apr 14 16:58:45 2000 Jim Wilson + + * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3): + Use .s1 not .s0 for all FP instructions. + +2000-04-14 Zack Weinberg + + * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public + interfaces. + (safe_fwrite, output_line_command): New static functions. + (cpp_expand_to_buffer): Now private to cpplib. + (cpp_scan_buffer): Take a printer. + + * cpphash.h: Update prototypes. + * cpplib.h: Update prototypes. + (cpp_printer): New. + (cpp_buffer): Remove last_nominal_fname. + (cpp_reader): Remove lineno. + + * cppmain.c: Use a cpp_printer. + * fix-header.c: No need to inhibit line commands. Call + cpp_start_read with no printer. + + * cpperror.c (cpp_notice_from_errno): Provide default name. + * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions. + (find_include_file, cpp_read_file): Use make_IHASH. + (file_cleanup): Set control_macro and clear + input_stack_listing_current here. + (_cpp_execute_include): Don't output entering-file marker. + * cpphash.c (special_symbol): Look for the line number in the + buffer, not the reader. + (_cpp_macroexpand): No need to disable line commands. + (_cpp_dump_definition): No need to generate line commands. + (dump_hash_helper): Remove excess newline from output. + * cppinit.c (dump_special_to_buffer): No need to generate line + commands. + (cpp_printer_init): New. + (cpp_start_read): Take a printer, and start it up if it's not + NULL. No need to generate line commands. + (cpp_finish): Expect no buffers stacked at all. Take a + printer argument, and flush the output buffer if it's not + NULL. + * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer. + Don't put two hashes at the beginning of an assertion. + (cpp_get_token): Don't increment pfile->lineno or emit line + commands here. Return EOF if there's no buffer when we get + EOF. + * cpplib.c (do_define, skip_if_group): + No need to disable line commands. + (_cpp_output_line_command): Delete function. + (do_line): Don't emit line commands here, but set things up so + they will be emitted if necessary. Use _cpp_fake_ihash to + make unique nominal_fnames if necessary. + (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line + with 0 for column, not -1. + (_cpp_handle_eof): Don't set the control macro here. Don't + clear input_stack_listing_current here. Don't emit line + commands. + +2000-04-14 Geoff Keating + + * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty + always, use the default SVR4 start address. + + * config/rs6000/linux.h (LINK_SPEC): Don't define. + (LINK_SHLIB_SPEC): Define. + (LINK_START_DEFAULT_SPEC): Define. + (LINK_OS_DEFAULT_SPEC): Define. + + * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros. + + * config/rs6000/eabi.asm (__eabi): Call __init rather than + __do_global_ctors to handle constructors. + * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin. + (STARTFILE_YELLOWKNIFE_SPEC): Likewise. + (STARTFILE_MVME_SPEC): Likewise. + (STARTFILE_SIM_SPEC): Likewise. + (ENDFILE_ADS_SPEC): Use crtend. + (ENDFILE_YELLOWKNIFE_SPEC): Likewise. + (ENDFILE_MVME_SPEC): Likewise. + (ENDFILE_SIM_SPEC): Likewise. + (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS. + (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS. + (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects. + (ENDFILE_LINUX_SPEC): Use crtendS for shared objects. + * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o. + (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS. + (CRTSTUFF_T_CFLAGS_S): Define. + * config/rs6000/eabi-ctors.c: Delete. + + * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte + boundary. + (__fini): Likewise. + * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame. + boundary. + (__fini): Likewise. + +Fri Apr 14 16:09:02 2000 Jim Wilson + + * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift + plus mask size is smaller or equal to the mode size. + +Fri Apr 14 18:07:30 2000 Richard Kenner + + * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK + not yet set. + + * expr.c (reload.h): Now included. + (emit_block_move): Set volatile_ok when checking for movstr. + (emit_move_1): Check for replacements in addresses in multi-word case. + * Makefile.in (expr.o): Now includes reload.h. + + * flow.c (count_basic_blocks): Remove unused var PREV_CALL. + Never have a LIBCALL end a basic block. + (find_basic_blocks_1): Likewise. + Reorganize CALL_INSN cases. + + * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change. + +Fri Apr 14 10:54:22 2000 Jim Wilson + + * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete + completers from mov.ret instruction. + +2000-04-14 Richard Henderson + + * fold-const.c (extract_muldiv): Don't distribute and widen + multiply across plus for non-sizetype unsigned types. + +2000-04-14 Richard Henderson + + * flow.c (find_auto_inc): Don't autoinc eliminable registers. + If the original source is dead in the incr insn, it's dead now. + +Fri Apr 14 07:40:32 2000 Richard Kenner + + * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to + see if DECL_BIT_FIELD needs to still be set. + + * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7. + + * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call + print_int_cst_octal with something that's not an INTEGER_CST. + + * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG + and not a SUBREG to a FLOAT rtl. + +Thu Apr 13 19:39:56 2000 Clinton Popetz + + * emit-rtl.c (try_split): Avoid infinite loop if the split + results in a sequence that contains the original insn. + +2000-04-13 Andreas Jaeger + + * config/mips/mips.c (expand_block_move): Pass alignment + argument to move_by_pieces in bits, not bytes. + + * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and + __pic__ for little endian. + +2000-04-13 Andreas Jaeger + + * config/i386/i386-protos.h: Add prototype for + uno_comparison_operator. + +Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka + + * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage. + * calls.c (ECF_PURE): New flag. + (emit_call_1): Handle ECF_PURE calls. + (initialize_argument_information): Unset ECF_PURE flag too. + (precompute_arguments): Precompute for ECF_PURE too. + (expand_call): Handle ECF_PURE calls too. + (emit_library_call_value_1): Rename no_queue argument to fn_type, + accept value of 2 as pure function. + (emit_library_call_value, emit_library_call): Rename no_queue argument + to fn_type. + * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call. + + * tree.h (DECL_IS_PURE): New macro. + (struct tree_decl): Add pure_flag. + * c-common.c (enum attrs): Add attribute "pure". + (init_attributes): Initialize attribute "pure" + (decl_attributes): Handle attribute "pure". + * extend.texi (Attribute "pure"): Document. + * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from" + in pure function. + (flags_from_decl_or_type): Support attribute "pure". + +2000-04-13 Jason Merrill + + * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate + the token except for numbers and identifiers. + +Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com) + + * i386.c (ix86_expand_binary_operator, + ix86_expand_unary_operator): Check no_new_pseudos + instead of reload_in_progress and reload_completed. + (ix86_split_ashldi, ix86_split_ashrdi, + ix86_split_lshrdi): Check no_new_pseudos instead + of reload_completed. + +2000-04-12 Jeffrey A Law (law@cygnus.com) + + * function.c (purge_addressof): Unshare any shared rtl created by + purge_addressof and its children. + +2000-04-12 Mark Mitchell + + * function.c (aggregate_value_p): VOID_TYPE nodes are never + aggregates. + +2000-04-05 Andreas Jaeger + + * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if + not compiling PIC code, add flags for mabi=64. + (SUBTARGET_CPP_SIZE_SPEC): New. + (SUBTARGET_CPP_SPEC): New. + (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default + for MIPS/Linux and lots of code needs these defines. + +Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson + + * reorg.c (fill_slots_from_thread): Check side_effects_p when + trying the "opposite arithmetic" approach. + +Wed Apr 12 20:51:20 2000 J"orn Rennecke + + * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI. + (struct sh_args): Add new field force_mem. + (INIT_CUMULATIVE_ARGS): Initialize it. + (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it. + +Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka + + * calls.c (expand_call): Do not reverse args in "equal from" field. + (emit_library_call_value_1): Emit_libcall_block for const and pure + function. + +Wed Apr 12 16:00:25 2000 J"orn Rennecke + + * reload1.c (reload_combine): Don't enable optimization for fixed + registers when encountering a BARRIER. + +Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka + + * builtins.c (expand_builtin_memcmp): Do expansion even with + !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails. + + * calls.c (expand_call): Do NO_DEFER_POP unconditionally once + stack is properly aligned; add sanity checking for aligned + stack pointer. + (expand_library_call_value_1): Add sanity checking for aligned + stack pointer. + +Wed Apr 12 07:51:54 2000 Catherine Moore + + * calls.c (emit_library_call_value_1): Change 3rd arg to + locate_and_pad_parm to disregard the setting of partial. + +Wed Apr 12 08:47:38 2000 Richard Kenner + + * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST. + + * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the + CALL_INSN from the normal case. + +Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka + + * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): + New global variables. + (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the + adjustment. + * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): + Declare, + (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4, + TARGET_ADD_ESP_8): New macros. + * i386.md: Add peep2s to convert esp adjustments to push and pop + instructions. + (pushsi_prologue, popsi_epilogue): New patterns. + +2000-04-12 Jakub Jelinek + + * real.c (toe64): Remove stale #endif from the last change. + +2000-04-12 Stephen L Moshier + + * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment. + * real.c (toe64): Revert previous change. + +2000-04-12 Jakub Jelinek + + * objc/objc-act.c: Include ggc.h. + (objc_tree_index, objc_global_trees): Convert most of the + static tree variables into a static array with previous names + as defines. + (objc_ellipsis_node): New variable. + (lang_init): Call objc_act_parse_init and c_parse_init. + Create objc_ellipsis_node. + (build_selector_translation_table): Use objc_ellipsis_node instead + of (tree)1. + (hack_method_prototype): Likewise. + (get_arg_type_list): Likewise. + (start_method_def): Likewise. + (continue_method_def): Likewise. + (gen_method_decl): Likewise. + (ggc_mark_imp_list): New function. + (ggc_mark_hash_table): New function. + (objc_act_parse_init): New function. + * objc/objc-act.h (objc_ellipsis_node): Add extern variable. + * c-parse.in (c_parse_init): For objc add roots of objc specific + local tree variables. + * objc/objc-parse.y: Rebuilt. + * objc/objc-parse.c: Rebuilt. + (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. + +Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com) + + * cse.c (delete_trivially_dead_insns): Also delete insns + that copy a register to itself where the destination is + a strict_low_part. + +2000-04-11 Richard Henderson + + * flow.c (struct propagate_block_info): Add new_dead, new_live. + (propagate_block): Initialize them. Use them in parallel instead + of one tmp variable, ie revert much of the 0408 and 0407 functional + changes, but keep the structural changes. + (mark_set_regs): Take new_dead from propagate_block_info instead. + (mark_set_1, mark_set_reg): Likewise. + (mark_used_regs): Likewise with new_live. + (mark_used_reg): Likewise. Revert 0408 change. + +2000-04-11 Nick Clifton + + * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2 + restriction. + (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction. + +2000-04-11 Alexandre Oliva + + * config/elfos.h (SELECT_SECTION): Decide whether to use a data or + const section to output a CONSTRUCTOR based on the same conditions + used for VAR_DECLs. + +Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com) + + * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64. + * pa/pa-protos.h (output_call): Add additional argument indicating + if the call is a sibling/tail call. + (compute_zdepdi_operands, output_64bit_and): Prototype new functions. + (compute_64bit_ior, cmpib_comparison_operator): Likewise. + (function_arg, function_arg_partial_nregs): Likewise + * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT. + (emit_move_sequence): Zero extend certain constants as needed + for TARGET_64BIT. + (compute_zdepdi_operands, output_64bit_and): New functions. + (output_64bit_ior, function_arg): Likewise. + (cmpib_comparison_operator, function_arg_partial_nregs): Likewise. + (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT. + (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise. + (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise. + (output_bvb): Likewise. + (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT. + (output_call): New argument 'sibcall'. Generate sibcall sequences + as needed. + (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For + (ouput_arg_descriptor): Do not emit argument descriptors for + TARGET_64BIT. + * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already + defined. + (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define. + (FUNCTION_OK_FOR_SIBALL): Define. + (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define. + (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise. + (CPP_SPEC): Use new spec infrastructure. + (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT. + (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise. + (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise. + (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise. + (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise. + (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise. + (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. + (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise. + (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise. + (FUNCTION_ARG); Call out to C code. + (FUNCTION_ARG_PARTIAL_NREGS): Likewise. + (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define. + (MIN_UNITS_PER_WORD): Likewise. + * pa/pa.md (cmpdi): New expander. + (scc patterns, movstrsi): Not available for TARGET_64BIT. + (64bit conditional arithmetic): New patterns. + (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns. + (movsicc): Not available if modes on all the operands to not match. + (movdicc): New expander and associated patterns. + (64bit branches): New patterns. + (pre_load, post_store): Generate appropriate code for TARGET_64BIT. + (pre_ldd, post_std): New patterns. + (64bit addil, load low part): New patterns. + (special movsf constant): Not available for TARGET_64BIT. + (movsf, movdf expanders): Force constants into memory. + (32bit movdf/movdi patterns): Disable for TARGET_64BIT. + (64bit movdf/movdi patterns): New patterns. + (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns + for TARGET_64BIT. + (extendqidi2, extendhidi2, extendsidi2): Similarly. + (adddi3 expander): Allow "arith_operand" for second input. + (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT. + (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT. + (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too. + (muldi3): New expander for TARGET_64BIT. + (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2) + for TARGET_64BIT. + (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable + patterns for TARGET_64BIT. + (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New + patterns for TARGET_64BIT. + (64bit bit insertion/extractions): New patterns for TARGET_64BIT. + (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT. + (sibcall_epilogue): New expander. + (casesi): Tweak for TARGET_64BIT. + (call expanders): Set & use the outgoing argument pointer. Use the + 64bit call patterns as needed. Add additional arg to output_call. + (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern. + (sibcall, sibcall_internal_symref): New expanders. + (sibcall_value, sibcall_value_internal_symref + (interspace_jump): Turn into an expander + matching patterns. + (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT. + * pa/pa64-regs.h: Eliminate trigraph sequences. + * pa/pa64-start.h (TARGET_PA_20): Fix typo. + +2000-04-11 Zack Weinberg + + * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c, + cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace + cpp_token with cpp_ttype everywhere. + * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c: + Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or + CPP_BUF_COL. Line and column numbers are unsigned int, not + long. + * cpplex.c (cpp_buf_line_and_col): Delete. + * cpplib.h (struct cpp_buffer, struct cpp_reader): Change + 'long lineno' to 'unsigned int lineno'. + (CPP_BUF_LINE, CPP_BUF_COL): New macros. + +2000-04-11 Martin v. Löwis + + * extend.texi: ISO C99 is not a draft anymore. + * invoke.texi: ISO C++ is not a draft anymore. + * cpp.texi: __cplusplus is required by the ISO standard. + + * extend.texi (-fthis-is-variable): Undocument. + * flags.h (warn_template_debugging): Remove declaration. + * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable, + -Wenum-clash, -Wtemplate-debugging): Undocument. + +2000-04-10 Nick Clifton + + * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT + integer. + (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT + integer. + (ARM_SIGN_EXTEND): Use HOST_UINT. + (STRIP_NAME_ENCODING): Prevent warnings about redefinitions. + (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions. + (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported. + (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported. + + * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT. + (arm_gen_constant): Use HOST_UINT. + (arm_canonicalize_constant): Use HOST_UINT. + (arm_reload_in_hi): Use HOST_UINT. + (arm_reload_out_hi): Use HOST_UINT. + (output_multi_immediate): Use HOST_UINT. + (int_log2): Use HOST_UINT. + (arm_poke_function_name): Use HOST_UINT. + (arm_output_epilogue): Use arm_volatile_func(). + (output_thumb_prologue): Use arm_strip_name_encoding(). + +Mon Apr 10 15:40:59 2000 Richard Kenner + + * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential + of sequence point problems. + +2000-04-10 Nathan Sidwell + + * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT): + Recomment. + * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment. + +Mon Apr 10 07:21:13 2000 Richard Kenner + + * sbitmap.h: Whitespace changes and use upper-case macro args. + (struct simple_bitmap_def): All sizes now unsigned. + (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_. + * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars. + (sbitmap_vector_alloc): Parms and local vars now unsigned. + (sbitmap_zero): Cast bzero arg to PTR. + (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned. + (sbitmap_union_of_diffs): Change loop index to unsigned and rework + loop to make structure clearer. + (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise. + (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise. + (sbitmap_a_and_b_or_c): Likewise. + (sbitmap_intersection_of_succs): Minor cleanups. + (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise. + (sbitmap_union_of_preds): Likewise. + (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned. + (debug_sbitmap): New function. + + * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE. + * c-typeck.c (convert_for_assignment): Likewise. + + * expmed.c (init_expmed): Don't free objects we make. + * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups. + + * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases. + (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field. + + * gcse.c (expr_hash_table_size): Now unsigned. + (compute_ae_gen): Local variable `i' now unsigned. + (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise. + (compute_transout, hoist_code): Likewise. + (compute_local_properties): Likewise, also hash_table_size. + (alloc_expr_hash_table): N_INSNS now unsigned. + (delete_null_pointer_checks): Mark arg F as unused. + + * regrename.c: Minor cleanups, including chang some variables + to unsigned int. + +2000-04-10 Neil Booth + + * cpplex.c (skip_block_comment): Use pointer arithmetic rather + than GETC (). + * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New. + +2000-04-10 Martin v. Löwis + + * invoke.texi (-fno-gnu-keywords): Remove classof, headof, + __classof__, and __headof__ from the list of gnu keywords. + (-ansi): Remove -foperator-names from list of implied options. + Do not call it ANSI C++. + (-foperator-names): Document as -fno-operator-names. + +2000-04-09 Zack Weinberg + + * cpphash.c (timestamp): Delete. + (del_HASHNODE): If type is T_MCONST, free value.cpval. + (special_symbol): Remove unnecessary braces. Remove + T_VERSION. Treat T_STDC like T_CONST unless + STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__ + when one is encountered, then convert them into T_MCONST + nodes. + * cppinit.c (builtin_array): version_string is T_MCONST. + __STDC__ has a "1" in its cpval. Don't have a terminator + entry. Clean up which entries are dumped. + (initialize_builtins): Only __STDC__ gets the special + -traditional treatment. Count the length of builtin_array. + Render version_string here. + * cpphash.h: Remove T_VERSION. Add T_MCONST. + * cpplib.h (struct cpp_reader): Remove timebuf. + +2000-04-09 Richard Henderson + + * genrecog.c (pred): Update comparison_operator for the unordered + operators. + + * config/i386/i386.c (no_comparison_operator): Disallow unordered + operators. + (fcmov_comparison_operator): Allow UNORDERED/ORDERED. + (uno_comparison_operator): New. + (put_condition_code): Handle UNORDERED/ORDERED. + (unsigned_comparison): Likewise. + (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare. + (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise. + (ix86_expand_fp_compare): Use them. Take scratch as argument, + update all callers. Handle all 8 unordered operators. + (ix86_expand_setcc): Lose the unordered argument, update all callers. + (ix86_expand_branch): Likewise. Don't fully expand fp branches. + * config/i386/i386.h (PREDICATE_CODES): Update. + * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare. + (ix86_expand_branch, ix86_expand_setcc): Update. + * config/i386/i386.md (sunordered, sordered): New. + (suneq, sunge, sungt, sunle, sunlt, sltgt): New. + (bunordered, bordered): New. + (buneq, bunge, bungt, bunle, bunlt, bltgt): New. + (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New. + (*fp_jcc_5, *fp_jcc_6, and splitters): New. + +2000-04-09 Philip Blundell + + * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too. + +Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com) + + * i386.md (fix_truncsfhi2, fix_truncdfhi2, + fix_truncxfhi2): New patterns. + * i386.c (output_fix_trunc): Handle converting to HImode. + +2000-04-08 Alex Samuel + + * ssa.c (convert_to_ssa): Eliminate dead code when calling + life_analysis. + (convert_from_ssa): Call compute_bb_for_insn before life_analysis. + (for_each_successor_phi): Change parameter to basic_block. + (coalesce_regs_in_successor_phi_nodes): Likewise. + (coalesce_regs_in_copies): Likewise. + (compute_coalesced_reg_partition): Use basic_block instead of index. + * rtl.h (convert_to_ssa): Delete. + (convert_from_ssa): Likewise. + (successor_phi_fn): Likewise. + (for_each_successor_phi): Likewise. + (in_ssa_form): Likewise. + * basic-block.h (convert_to_ssa): Moved from rtl.h. + (convert_from_ssa): Likewise. + (successor_phi_fn): Likewise. + (in_ssa_form): Likewise. + (for_each_successor_phi): Likewise. Change parameter to basic_block. + * flow.c (calculate_global_regs_live): Pass a basic_block to + for_each_successor_phi. + +2000-04-08 Richard Henderson + + * flow.c (mark_used_reg): Use reg_set_p to determine if a register + was modified in the current insn. + +2000-04-08 Richard Earnshaw (rearnsha@arm.com) + + * arm/thumb.md: Delete. + * arm/thumb-protos.h: Delete. + +2000-04-08 Richard Earnshaw (rearnsha@arm.com) + + Merge changes from merged-arm-thumb-backend-branch onto trunk. + + 2000-04-08 Richard Earnshaw (rearnsha@arm.com) + + * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408 + into branch. + + * arm.md (nop): Use the standard RTL expression. Don't code as a + define_expand. + (*arm_nop, *thumb_nop): Delete. + + * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining + constants. Use casts instead. + (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi, + output_multi_immediate, arm_poke_function_name): Likewise. + * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND, + MASK_RETURN_ADDDR): Likewise. + + 2000-03-31 Richard Earnshaw (rearnsha@arm.com) + + * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 + into branch. + + * arm.md (eh_epilogue): New function. + * arm.h (struct machine_function): Move to here ... + * arm.c: ... from here. + (arm_output_epilogue): Support epilogues for __builtin_eh_return. + (thumb_exit): Extra parameter eh_ofs. All callers changed. + Handle epilogues for __builtin_eh_return. Make bit-fields unsigned. + + 2000-03-30 Nick Clifton + + * config/arm/semi.h (ASM_SPEC): Restore definition. + (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. + + * config/arm/elf.h (ASM_SPEC): Restore definition. + (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. + + * config/arm/arm.h (ASM_SPEC): Remove definition. + (SUBTARGET_EXTRA_ASM_SPEC): Remove definition. + + 2000-03-26 Bernd Schmidt + + * config/arm/arm.c: Disable -fschedule-insns for Thumb. + + 2000-03-24 Nick Clifton + + Various formating tidyups, elimination of compile time + warnings and synchronisation with internal sources: + + * config/arm/arm-protos.h (assemble_align): Add prototype. + (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. + (gen_comapre_reg): Rename to arm_gen_compare_reg. + (arm_return_addr_rtx): Rename to arm_return_addr. + + * config/arm/arm.c: Include except.h. + Define shorter typenames for strict minipool_node and struct + minipool_fix. + (arm_return_in_memory): For WinCE return all structures <= 32 bits + in memory. + (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. + (gen_comapre_reg): Rename to arm_gen_compare_reg. + + * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not + already defined. + (ASM_SPEC): Define if not already defined. + (ASM_OUTPUT_DEF_FROM_DECLS): Define. + + * config/arm/arm.md: Rename references to gen_rotated_half_load to + arm_gen_rotated_half_load, and references to gen_comapre_reg to + arm_gen_compare_reg. + (indirect_jump): Only accept register operands. + (load_indirect_jump): Keep this pattern since combine can generate + it. + + * config/arm/coff.h: Include aout.h. + (MULTILIB_DEFAULTS): Only define if not already defined. + + * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition + into arm.h (so that COFF ports can support thumb based aliases). + (ASM_SPEC): Move definition into arm.h + + * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove + redundant apcs spec. + (ASM_SPEC): Move definition to arm.h + + * config/arm/semi.h (ASM_SPEC): Move definition to arm.h + + * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support + for entries in the .bss section + + 2000-03-23 Nick Clifton + + * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0 + to thumb_far_jump_used_p. + + * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a + single integer parameter. + + * config/arm/arm.c (struct machine_function): Add two new + fields, 'far_jump_used' and 'arg_pointer_live'. + (thumb_far_jump_used_p): Once the decision has been made that + far jumps might be used, always return true. + If being called from the initial elimination offset macro then + do not bother to perform the test if the arg pointer is not + being used. + (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p(). + (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p(). + + 2000-03-23 Richard Earnshaw (rearnsha@arm.com) + + * arm.c (output_return_instruction): Handle more cases where we can + return from a function with an ldr instruction. + (arm_output_epilogue): Likewise. + + * arm.c (thumb_expand_prologue): Don't clobber the frame pointer + if we need to push a large stack frame and there are no callee-saved + registers. + + * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid + in ARM code if the frame pointer has been eliminated. + + * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber + unspec_volatile arguments to avoid duplicates. + (consttable_1, consttable_2): Fixes for big-endian mode. + + * arm.md (all ARM-mode load insns): Add neg_pool_range attribute + as appropriate. + + Re-write constant pool code. + * arm.c (minipool_node, minipool_fix): New types. + (minifix): Delete type. + (arm_add_minipool_constant): Delete. + (arm_compute_minipool_offsets, arm_find_barrier, + arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise. + (get_jump_table_size): Now returns HOST_WIDE_INT. + (move_minipool_fix_forward_ref, add_minipool_forward_ref): New + functions. + (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise. + (assign_minipool_offsets, arm_print_value): Likewise. + (dump_minipool): Rewrite. + (arm_barrier_cost): New function. + (create_fix_barrier): New function. + (push_minipool_barrier): New function. + (push_minipool_fix): Record additional information about the fixup + required. + (note_invalid_constants): Remove push for (UNSPEC 3). Don't + check the mode of what needs fixing. + (arm_reorg): Rewrite. + + 2000-03-08 Nick Clifton + + * config/arm/arm.md (indirect_jump): Force constant addresses into + a register. + + 2000-03-01 Bernd Schmidt + + * config/arm/arm.md: Add splitter to turn SF moves into SI moves. + + 2000-02-24 Nick Clifton + + * config/arm/arm.c (thumb_expand_prologue): Make sure that stack + adjust is word aligned. + (thumb_expand_epilogue): Make sure that stack adjust is word + aligned. + + * config/arm/elf.h (ASM_FILE_START): Fix type of version string. + + 2000-02-24 Bernd Schmidt + + * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame + pointer relative addresses. + + 2000-02-10 Richard Earnshaw + + * arm.c (find_barrier): Find the last barrier within the allowed + range. + + 2000-02-09 Nick Clifton + + * config/arm/arm-protos.h: Replace PROTO with PARAMS. + + 2000-02-09 Nick Clifton + + * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to + ARM_FUNCTION_PROFILER. + + * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to + ARM_FUNCTION_PROFILER. + + * config/arm/linux-oldld.h: Imported from mainline sources. + + 2000-02-07 Nick Clifton + + * config/arm/lib1funcs.asm: Merge in thumb functions from + lib1thumb.asm. + + * config/arm/lib1thumb.asm: Delete. + + 2000-02-04 Nick Clifton + + * config/arm/arm.c: Sychronised with current Red hat local + sources. + * config/arm/arm.h: Ditto. + * config/arm/arm-protos.h: Ditto. + + 2000-02-02 Bernd Schmidt + + * arm.c (soft_df_operand): Reject SUBREGs containing a constant. + + * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two + byte stores. + + 2000-02-02 Nick Clifton + + * config/arm/thumb.c (thumb_exit): Additional fix for same bug. + + * config/arm/arm.md (epilogue): Fix rtl checking abort because + (return) was emited using an emit_insn() call. + + 2000-01-31 Nick Clifton + + * config/arm/arm.c (output_thumb_prologue): Fix bug generating + thumb stack frame. + (thumb_exit): Move frame pointer back into hard frame pointer + register if backtracing is being used. + + 2000-01-13 Richard Earnshaw (rearnsha@arm.com) + + * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 + into branch. + + 1999-12-15 Bernd Schmidt + + * config/arm/arm.md (neg_pool_offset): Provide default for new + attribute. + (arm_movsi_insn): Add neg_pool_offset attribute. + * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an + rtx for the insn that starts the scan and an unsigned long for its + address. Add MIN_OFFSET and PINSERTED args. All callers changed. + Change scan to ignore insns before MIN_OFFSET. Store size of inserted + instructions in *PINSERTED. + (struct minipool_fixup): Add MIN_ADDRESS elt. + (sort_fixups): Compute it. + (arm_reorg): Changes to support inserting pools before the insn to be + fixed up. + + 1999-12-08 Bernd Schmidt + + * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm". + * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm". + * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm". + + Wed Nov 3 10:04:07 1999 Nick Clifton + + * config/arm/semi.h (TARGET_VERSION): Do not define if already + defined. + (TARGET_DEFAULT): Do not define if already defined. + + Tue Nov 2 10:37:25 1999 Nick Clifton + + * config/arm/arm.md (anddi3): Allow disjoint source operands. + (iordi3): Allow disjoint source operands. + (xordi3): Allow disjoint source operands. + (negdi2): Permit construction for ARM and Thumb. + (arm_negdi2): Renamed version of old negdi2 pattern. + (thumb_negdi2): New pattern: Only permit non-overlapping + source and destination. + + Fri Oct 29 18:52:38 1999 Nick Clifton + + * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the + scratch low register so that it will not be deleted. + + Fri Oct 29 15:23:48 1999 Nick Clifton + + * config/arm/pe.h (ARM_PE): Define. + + * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow + interfacearm attribute if this is a PE toolchain. + (output_return_instruction): Do not emit anything if the function + has the naked attribute set. + (is_called_in_ARM_mode): If the function has the interfacearm + attribute then return true. + (thumb_expand_prologue): Do not generate a prologue for naked + functions. + (thumb_expand_epilogue): Do not generate an epilogie for a naked + function. + (output_thumb_prologue): Do not bother if the function is naked. + Strip PE encoding from function name before emitting. + + Thu Oct 28 11:05:13 1999 Richard Earnshaw + + * arm.md (pic_load_addr): Fix constraints. + + * arm.md (casesi_insn): Fix mis-applied patch. + + * arm.md ("core" function unit): Add rules for single- and + multi-cycle insns. + (All TARGET_THUMB patterns): Add "type" attribute information + where needed. + * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if + the following insn is a CALL. + + * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack + pointer. + * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the + ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME. + (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM. + + Wed Oct 27 14:40:48 1999 Nick Clifton + + * config/arm/linux-gas.h: oops - this file was missed out when the + branch was created... + + Tue Oct 26 17:07:38 1999 Richard Earnshaw + + * thumb.c: Deleted. Move contents to ... + * arm.c: ... here. + * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove + rule for thumb.o + * configure.in (arm*-*-*): Remove thumb.o from extra_objs list. + * configure: Regen. + + * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't + declare a prototype for asm_output_align(); + + * arm.c (thumb_condition_code): Delete. + (arm_print_operand): Always use arm_condition_code array. + + * arm.c (thumb_return_addr_rtx): Delete. + (arm_save_machine_status, arm_restore_machine_status): Delete. + (arm_init_machine_status, arm_mark_machine_status): New functions. + (arm_init_expanders): Update accordingly. + (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite. + (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx. + * arm.h (RETURN_ADDR_RTX): Call arm_return_addr(). + + Tue Oct 26 13:24:16 1999 Nick Clifton + + * configure.in : Fix arm-*-aout target to use new t-arm-aout + script. + * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout + targets. + + Tue Oct 26 11:27:12 1999 Nick Clifton + + * config/arm/thumb.c (output_thumb_prologue): Fix bug creating + stack backtrace structure. + + * config/arm/arm-protos.h: Add prototypes for functions defined in + arm/pe.h. + + * config/arm/arm.c (arm_override_options): Fix selection of + attributes of default processor. + + * config/arm/coff.h: Delete needless #include. + + * config/arm/pe.c: Delete unused code. + + * config/arm/pe.h (CPP_DEFINES): Delete + (SUBTARGET_CPP_SPEC): Define. + (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. + + * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build. + + Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com) + + * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses + updated. + (CAN_DEBUG_WITHOUT_FP): Define. + (FIXED_REGISTERS): Make r11 call-saved. + (CALL_USED_REGISTERS): Likewise. + (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME. + (FRAME_POINTER_REQUIRED): Correct logic for determining when a + frame-pointer is required. + (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME. + * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g + if the target normally needs a stack frame in non-leaf functions. + (use_return_insn): Correct logic for determining when a return + instruction can be used. + (output_return_instruction): Handle the frame-pointer register as + a normal register when not TARGET_APCS_FRAME. + (arm_output_prologue): Likewise. + (arm_output_epilogue): Likewise. + (output_func_epilogue): Likewise. + (arm_expand_prologue): Likewise. + * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME. + + * arm.c (use_return_insn): No need to check floating point regs if + TARGET_SOFT_FLOAT. + (arm_find_minipool_constant): Correct typo; use GET_CODE to get + the code of value stored in the minipool array. + (arm_add_minipool_constant): Likewise. + +2000-04-08 Kaveh R. Ghazi + + * basic-block.h (conflict_graph_enum_fn): K&R fix. + +2000-04-08 Kaveh R. Ghazi + + * tree.c (tree_expr_nonnegative_p): New function. + + * tree.h (tree_expr_nonnegative_p): Declare. + + * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to + elide some sign_compare warnings. + (build_conditional_expr): Likewise. + +Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com) + + * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo. + + * 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. + +2000-04-08 Neil Booth + + * cppexp.c (parse_charconst): Null does not end character + constants. + * cppinit.c (ISTABLE): Null character handled as whitespace. + * cpplex.c (null_warning): new function. + (skip_string): Emit warning if nulls encountered. + (_cpp_skip_hspace): Emit warning if nulls encountered. + (_cpp_lex_token): Emit warning if nulls encountered. Drop + them. + * cpp.texi: Update. + +2000-04-07 Richard Henderson + + * flow.c (loop_depth): Remove. + (reg_next_use, cc0_live, mem_set_list): Replace with ... + (struct propagate_block_info): New. + (life_analysis): Don't allocate reg_next_use. + (propagate_block_delete_insn): Break out of propagate_block. + Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED. + (propagate_block_delete_libcall): Likewise. + (propagate_block): Create a propagate_block_info struct to pass + to subroutines. Allocate one not two temporary regsets. Don't + clobber memory for const calls. Look for clobbers in + CALL_INSN_FUNCTION_USAGE. + (mark_set_regs): Recognize COND_EXEC. + (mark_set_reg): Break out of mark_set_1. + (mark_used_reg): Break out of mark_used_regs. + (mark_used_regs): Recognize COND_EXEC. + (insn_dead_p): Use propagate_block_info struct. + (libcall_dead_p, invalidate_mems_from_autoinc): Likewise. + (find_auto_inc, try_pre_increment_1): Likewise. + (print_rtl_with_bb): Dump regs live at end too. + (count_reg_sets_1): Pass in loop_depth. + (count_reg_sets, count_reg_references): Likewise. + (recompute_reg_usage): Provide it. + +2000-04-07 Richard Henderson + + * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H) + not the raw files. + +2000-04-07 Zack Weinberg + + * cpplib.c (do_elif): Skip the rest of the line if we're + not going to bother evaluating it. + (skip_if_group): Clear pfile->only_seen_white. Reorder loop + to avoid pointless calls to the lexer. + +Fri Apr 7 11:50:54 2000 Jim Wilson + + * config/ia64/ia64.c: Delete stdio.h and ctype.h includes. + +2000-04-07 Jason Merrill + + * calls.c (expand_call): emit_queue if we're trying a sibcall. + +2000-04-07 Jakub Jelinek + + * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove. + +2000-04-06 Geoff Keating + + * Makefile.in: Build crtbeginS and crtendS like crtbegin and + crtend so they can be multilibbed. + (STAGESTUFF): Remove s-crt and s-crtS. + +2000-04-07 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_conditional_move): Fail + if we discover we need a pseudo and no_new_pseudos is true. + * config/alpha/alpha.md (ne:DI insn): New. + (trunctfsf2, sne): Emit NE instead of non-canonical LTU. + +2000-04-07 Richard Henderson + + * rtl.def (COND_EXEC): New. + * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New. + * tm.texi (MAX_CONDITIONAL_EXECUTE): Document. + + * genconfig.c (have_cond_arith_flag): Remove. + (have_cond_exec_flag): New. + (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE. + (main): Print HAVE_conditional_execution. + + * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC. + (sched_analyze_insn, print_pattern): Likewise. + * reload.c (find_equiv_reg): Likewise. + * rtlanal.c (reg_referenced_p): Likewise. + (note_stores, dead_or_set_regno_p): Likewise. + (reg_overlap_mentioned_p): Rewrite to use a switch. + + * ggc.h (struct rtx_def): Forward declare. + + * print-rtl.c (debug_rtx_range): New. + * rtl.h (debug_rtx_range): Declare. + + * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New. + + * gcse.c (gcse_main): Don't rebuild the CFG here. + (delete_null_pointer_checks): Likewise. + * ssa.c (convert_to_ssa): Likewise. + * toplev.c (rest_of_compilation): Do it here instead. Combine + sequential calls to TIMEVAR. Consistently use `insns' instead of + `get_insns()'. Always split insns after reload when optimizing. + + * basic-block.h (merge_blocks_nomove): Declare. + (tidy_fallthru_edge): Declare. + * flow.c (merge_blocks_nomove): Document as merging into previous + blocks. Remove cruft from between blocks; remove all edges out of A. + (tidy_fallthru_edge): Export. + +2000-04-06 Alex Samuel + + * ssa.c (compute_conservative_reg_partition): Declare with + void arguments. + * toplev.c (clean_dump_file): Remove previously-deleted function + inadvertantly merged back in. + * conflict.c (conflict_graph_add): Use a single call to + htab_find_slot to look up and insert. + +2000-04-06 Richard Henderson + + * genrecog.c (*): Rename _last_insn to last_insn. + (make_insn_sequence): Set the position of the peephole2 C test + to be at the last insn. + +2000-04-06 Richard Henderson + + * flow.c (compute_flow_dominators): Free worklist. + +2000-04-06 Michael Matz + + * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO. + +2000-04-06 Alex Samuel + + * rtl.h (INSN_P): New macro. + (successor_phi_fn): New typedef. + (for_each_successor_phi): New prototype. + (in_ssa_form): New variable. + (PHI_NODE_P): Likewise. + * flow.c (calculate_global_regs_live): Add to new_live_at_end from + phi nodes in successors. + (mark_used_regs): Add PHI case. + (set_phi_alternative_reg): New function. + (life_analysis): Assert that dead code elimination is not selected + when in SSA form. + * toplev.c (to_ssa_time): New variable. + (from_ssa_time): Likewise. + (compile_file): Zero to_ssa_time and from_ssa_time. + Print time to convert to and from SSA. + (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. + (print_time): Compute percent fraction as integer. + * ssa.c (PHI_NODE_P): Moved to rtl.h. + (convert_to_ssa): Check if we're already in SSA. + Don't eliminate dead code in life_analysis. + Rerun flow and life analysis at bottom. + (eliminate_phi): Use canonical regnos when adding nodes. + (mark_reg_in_phi): New function. + (mark_phi_and_copy_regs): Likewise. + (convert_from_ssa): Rerun life analysis at top. + Use coalesced partition. + Check for removing a phi node at the end of the block. + (compute_coalesced_reg_partition): New function. + (coalesce_regs_in_copies): Likewise. + (coalesce_reg_in_phi): Likewise. + (coalesce_regs_in_successor_phi_nodes): Likewise. + (for_each_successor_phi): Likewise. + (rename_context): New struct. + (rename_block): Use a rename_context with rename_insn_1. When + renaming sets of a subreg, emit a copy of the entire reg first. + (rename_insn_1): Treat data as a rename_context *. Save current + insn in set_data. + (rename_set_data): Add field set_insn. + * Makefile.in (HASHTAB_H): Move up in file. + (OBSTACK_H): New macro. + (collect2.o): Use OBSTACK_H in dependencies. + (sdbout.o): Likewise. + (emit-rtl.o): Likewise. + (simplify-rtx.o): Likewise. + (fix-header.o): Likewise. + (OBJS): Add conflict.o. + (conflict.o): New rule. + * basic-block.h: Include partition.h. + (conflict_graph): New typedef. + (conflict_graph_enum_fn): Likewise. + (conflict_graph_new): New prototype. + (conflict_graph_delete): Likewise. + (conflict_graph_add): Likewise. + (conflict_graph_conflict_p): Likewise. + (conflict_graph_enum): Likewise. + (conflict_graph_merge_regs): Likewise. + (conflict_graph_print): Likewise. + (conflict_graph_compute): Likewise. + * conflict.c: New file. + +2000-04-06 Jason Merrill + + * tlink.c (read_repo_files): Don't look for .rpo info for + linker flags. + +Thu Apr 6 20:39:26 2000 J"orn Rennecke + + * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define. + +Thu Apr 6 19:34:08 2000 J"orn Rennecke + + * config/sh/lib1funcs.asm (___udivsi3_i4): + ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr + only depends on FMOVD_WORKS. + +Thu Apr 6 19:11:47 2000 J"orn Rennecke + + * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd, + make double constant 8-byte aligned. + +2000-04-06 Jakub Jelinek + + * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32, + movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64, + movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS. + (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise. + Accept storing GENERAL_REGS into offsetable memory. + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow + building a TFmode constant other than 0.0L into GENERAL_REGS. + +2000-04-06 Clinton Popetz + + * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER. + +2000-04-06 Zack Weinberg + + * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete. + (macro_cleanup): No need to cast pbuf->macro. + (collect_expansion): Use _cpp_get_define_token. Goto done if + it returns VSPACE. Remove check for trailing space after + CPP_COMMENT. + (_cpp_create_definition): Don't diddle flags here. Return + directly on error. + (unsafe_chars): Handle c1 being EOF. + (push_macro_expansion): Use unsafe_chars for both accidental-paste + checks. Don't push the buffer till after we're done with + them. + * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New. + (PEEKN, FORWARD, GETC, PEEKC): Use them. + (cpp_push_buffer): Don't set new->alimit. Set new->mark + appropriately. + (_cpp_parse_assertion): Don't NUL terminate. + (_cpp_lex_token): Fix -traditional macro handling. Don't skip + hspace before calling _cpp_parse_assertion. Remove all sets + of only_seen_white. Treat '\f' as hspace. Don't do anything + special with '\n' here. + (maybe_macroexpand): Handle T_EMPTY hash entries without + pushing a buffer at all. + (cpp_get_token): Handle clearing only_seen_white here. Handle + incrementing the line number here. Clear + potential_control_macro as well as only_seen_white, if + appropriate. + (cpp_get_non_space_token): Don't eat CPP_POP tokens. + (_cpp_get_define_token): New function, basically like + _cpp_get_directive_token was but doesn't eat horizontal space. + Don't do anything with only_seen_white here. + (_cpp_get_directive_token): Just call _cpp_get_define_token + repeatedly till it returns non-hspace. + + * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete. + (conditional_skip, skip_if_group): Return int. + (DIRECTIVE_TABLE): Change origin of all conditional directives + to "COND". + (TRAD_DIRECT_P): New macro. + (_cpp_handle_directive): Use _cpp_get_directive_token. Issue + an error for a bogus directive, unless -lang-asm. Use + TRAD_DIRECT_P. Loop calling handler functions till one returns + zero. + (get_macro_name): Don't diddle flags here. + (do_define): Diddle flags here. Use _cpp_get_directive_token. + Create T_EMPTY nodes for #define macro /* nothing */. + (do_undef): Don't copy the name. Use _cpp_get_directive_token. + Use hp->name when calling pass_thru_directive. + (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip): + Return the result of conditional_skip and/or skip_if_group. + Don't call _cpp_output_line_command. + (consider_directive_while_skipping): Use _cpp_get_directive_token. + Issue -Wtraditional warnings as appropriate. Don't complain + about unrecognized directives. If we are to stop skipping, + return the number of the directive that ended the skip. + (skip_if_group): Use _cpp_get_directive_token. Turn off macro + expansion and line commands while skipping. Return the result + of consider_directive_while_skipping, if nonzero. + (do_endif): Just set potential_control_macro here. + (validate_else): Use _cpp_get_directive_token. + (do_assert, do_unassert): Don't save pointers into the + token_buffer across calls to the lexer. Use + _cpp_get_directive_token. + + * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a + pointer, not an offset. Replace 'data', which was a generic + pointer, with 'macro', which points to a struct hashnode. + (cpp_reader): Add 'potential_control_macro' pointer. + * cpphash.h (T_UNUSED): Replace with T_EMPTY. + (CPP_BUF_GET, CPP_FORWARD): Delete. + (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros. + (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, + ACTIVE_MARK_P): Update. + (_cpp_get_define_token): New internal function. + * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno. + +2000-04-05 Benjamin Kosnik + + * configure.in: And here. + * configure: Regenerate. + * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if + --enable-libstdcxx-v3 is passed at configure time. + * config.h.in: Regenerate. + +2000-04-05 Mark Mitchell + + * final.c (final): Use xcalloc to allocate line_note_exists. + * function.c (free_after_compilation): Free the temp_slots. + (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots. + (combine_temp_slot): Free temp_slots when they get combined. + (purge_addressof): Fix typo in comment. + * stmt.c (mark_goto_fixup): Mark the fixup itself. + (expand_fixup): Allocate the fixup with ggc_alloc_obj. + + * ggc.h: Include varray.h. + (ggc_pending_trees): Declare. + (ggc_mark_tree_children): Remove declaration. + (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees. + * ggc-common.c (ggc_pending_trees): New variable. + (ggc_mark_roots): Call ggc_mark_trees. + (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all + the ggc_pending_trees. + * Makefile.in (GGC_H): New variable. Use it throughout in place + of ggc.h. + +Thu Apr 6 00:30:50 2000 J"orn Rennecke + + * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accommodate an unsigned + GET_MODE_SIZE. + +Wed Apr 5 23:17:10 2000 J"orn Rennecke + + * sh.c (sh_insn_length_adjustment): New function. + * sh-protos.h (sh_insn_length_adjustment): Declare. + * sh.h (ADJUST_INSN_LENGTH): Use it. + +Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson + + * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes + from the insn where REG_RETVAL is added. + (emit_no_conflict_block): Ditto. + + * md.texi (Standard Names): Clarify when movX is needed. + + * combine.c (simplify_comparison) [MINUS]: Do not replace + all (op (minus A B) 0) with (op A B). + +Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com) + J"orn Rennecke + + * sh.md (block_lump_real_i4): Add missing clobber of T_REG + (block_lump_real): Likewise. + +2000-04-05 Chris Demetriou + + * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the + remaining nonzero debugging masks. + +Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com) + + * basic-block.h (verify_flow_info): Declare. + (flow_loop_outside_edge_p): Declare. + * flow.c (verify_flow_info): Remove declaration. + (clear_log_links, flow_loop_outside_edge_p): Likewise. + +Wed Apr 5 09:34:26 2000 Philippe De Muyter + + * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0', + not C++ comments. + +2000-04-05 Jakub Jelinek + + * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1, + snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1, + seqdi_zero_trunc+1): Allow splits only if registers are + different. + +2000-04-04 Ulrich Drepper + + * acconfig.h: Add HAVE_GAS_HIDDEN. + * config.in: Regenerated. + * configure.in: Add test for .hidden pseudo-op in gas. + * configure: Regenerated. + * crtstuff.c: Include auto-host.h. + Emit additional .hidden pseudo-op for __dso_handle if the + assembler knows about it. + +2000-04-04 Philippe De Muyter + + * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0, + before freeing argnames. + * cpplib.c (do_ifndef): Cast return value of xstrdup. + +2000-04-05 Michael Meissner + + * config/rs6000/rs6000.c (print_operand): Patch from Jonathan + Walton to make memory references with update + work wtih -mregnames. + +2000-04-04 Kaveh R. Ghazi + + * regrename.c (regno_first_use_in): Wrap prototype in PARAMS. + (regrename_optimize): Rename variables `def_uses' and + `ext_basic_blocks' to avoid conflicts with similarly named + typedefs in traditional C. + + * calls.c (initialize_argument_information): Fix typo in previous + change. + +2000-04-04 Richard Henderson + + * regrename.c (consider_available): Test fixed_regs not + PIC_OFFSET_TABLE_REGNUM. + +2000-04-04 Geoff Keating + + * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin, + crtend. + (CRTSTUFF_T_CFLAGS_S): Delete definition. + * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin. + (ENDFILE_LINUX_SPEC): Always use crtend. + * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts. + (powerpc-*-linux-gnu): Likewise. + * configure: Regenerate. + + * config/rs6000/eabi.h: Don't include sysv4.h. + (MULTILIB_DEFAULTS): Don't define. + * config/rs6000/eabiaix.h: Don't include eabi.h. + * config/rs6000/eabile.h: Delete. + * config/rs6000/eabilesim.h: Delete. + * config/rs6000/eabisim.h: Don't include eabi.h. + * config/rs6000/linux.h: Don't include sysv4.h. + (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine. + (MULTILIB_DEFAULTS): Don't redefine. + * config/rs6000/rtems.h: Don't include eabi.h. + * config/rs6000/sol2.h: Don't include sysv4le.h. + * config/rs6000/sysv4le.h: Don't include sysv4.h. + * config/rs6000/t-ppc: Delete. + * config/rs6000/t-ppcgas: Correct comment. + * config/rs6000/t-ppcos: Correct comment. Don't build + multilibs for -fPIC, rather use -fPIC -mstrict-align + as default. + * config/rs6000/t-ppc: Delete. + * config/rs6000/vxppc.h: Don't include sysv4.h. + * config/rs6000/vxppcle.h: Delete. + * configure.in: Use multiple header files for p2pc ELF targets + powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi, + powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu, + powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv, + powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is + always available for these platforms. + +2000-04-04 Richard Henderson + + * calls.c (try_to_integrate): Initialize reg_parm_stack_space. + +2000-04-04 Stan Cox + + * Makefile.in: Add rules for regrename.o + * regrename.c: New file. + * rtl.h (regrename_optimize): Add prototype. + * toplev.c (rename_registers_dump, flag_rename_registers): New variables + (compile_file, decode_d_option): Add support for -frename-registers. + (rest_of_compilation): Call regrename_optimize. + * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS): + New macros. + +2000-04-04 Martin v. Löwis + + * Makefile (gccbug): New target. + (doc): Depend on it. + * gcc.texi (Bugs): Link subnodes. + (gccbug): New node. + * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc. + Document severities, priorities, and classes in bug form. + +2000-04-04 Zack Weinberg + + * cpplex.c (trigraph_map, speccase): Combine into single + table, chartab. + (NORMAL, NONTRI): New macros. + (_cpp_read_and_prescan): Change to use unified table. Use + is_hspace to test for whitespace. + + * dbxout.c (CONTIN): If it doesn't have to do anything, give it a + definition that doesn't provoke the "empty body in an + if-statement" warning. + +2000-04-04 Clinton Popetz + + * builtins.c (expand_builtin_strlen): Force the source to + be a memory address. + +2000-04-04 Kaveh R. Ghazi + + * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace. + +Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka + + * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE, + ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants. + (ECF_IS_CONST): Rename to ECF_CONST. + (special_function_p): Make static, change interface. + (flags_from_decl_or_type, try_to_integrate): Break out from ... + (expand_call) ... here; convert number of variables to flags. + (emit_library_call_vlue_1): Likewise. + (setjmp_call_p): New function. + (initialize_argument_information): Accepts flags as argument; + return flags. + (precompute_arguments): Likewise. + * tree.h (special_function_p): Remove. + (setjmp_call_p): Add prototype. + +2000-04-04 Jakub Jelinek + + * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin + so that addresses are offsetable by up to 16 bytes. + (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for + non-optimizing TARGET_ARCH32 in DF or DI modes because it is not + offsetable. + + * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern. + (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64. + (movsf): Don't force any constant to memory if target is integer + hard register. + Move fp_zero_operand check below the const0_rtx check. + (movtf): Likewise. Also allow fp_zero_operand for stores into + memory. + (movdf): Likewise. Also allow fp_zero_operand for stores into + memory and into integer hard registers. + (clear_df, clear_dfp, movdf_const_intreg_sp32, + movdf_const_intreg_sp64): Remove. + (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and + conditions. + (movdf_no_e_insn_v9_sp32): New pattern. + (movdf_insn_v9only): Remove. + (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns. + (movdf_insn_sp64): Remove. + (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns. + (movdf_no_e_insn_sp64): Allow storing 0.0 into memory. + (following splits): Rewrite conditions. Add two new splits + for storing 0.0 into memory and registers. + (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove. + (movtf_insn_sp32): Redo constraints and conditions. + (movtf_insn_vis_sp32): New pattern. + (movtf_no_e_insn_sp32): Redo constraints and conditions. + (movtf_insn_hq_sp64): Likewise. + (movtf_insn_hq_vis_sp64): New pattern. + (movtf_insn_sp64): Redo constraints and conditions. + (movtf_insn_vis_sp64): New pattern. + (movtf_no_e_insn_sp64): Redo constraints and conditions. + (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers + or memory. + * config/sparc/sparc.c (sparc_override_options): Assume v9 if either + -mvis or -m64 to take down the number of various reload patterns. + +Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com) + + * pa/pa-64.h: New file. + * pa/pa64-regs.h: New file. + * pa/pa64-start.h: New file. + * pa/t-pa64: New file. + * pa/xm-pa64hpux.h: New file. + +2000-04-03 Kaveh R. Ghazi + + * sparc.c (output_restore_regs): Prototype. + (sparc_emit_float_lib_cmp): Constification. + + * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise. + + * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify): + Prototype. + + * simplify-rtx.c (entry_and_rtx_equal_p): Constification. + (get_value_hash, hash_rtx): Likewise. + + * ssa.c (compute_conservative_reg_partition): Prototype. + + * tree.c (mark_hash_entry): Prototype. + +2000-04-03 Zack Weinberg + + * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING. + * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0. + * i386.md (call_value, call_value_pop): Remove unused variable 'addr'. + + * gcc.c (C specs): Pass -fno-show-column to the preprocessor. + * objc/lang-specs.h: Likewise. + +2000-04-03 Neil Booth + + * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR + and SYNTAX_ERROR2. Replace `' in messages with ''. + (op_to_str): Make re-entrant. + (_cpp_parse_expr): Implement new error macros. Use | rather + than || to logically or 2 boolean integers. Simply expression + checking we have a left operand iff needed. + +2000-04-03 Nick Clifton + + * Makefile.in (diagnostic.o): Depend upon diagnostic.c + +2000-04-03 Philip Blundell + + * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos. + +2000-04-03 Felix Lee + + * fixinc/server.c (find_shell): New function. Avoid $SHELL. + (run_shell): Use it. + +2000-04-03 Jonathan Larmour + + * Makefile.in (stmp-int-hdrs): Make include subdir here... + (stmp-fixproto): ...rather than here. + +Mon Apr 3 00:50:06 2000 Jason Eckhardt + + * pa.c (print_operand): Compute 'base' only inside the code paths + that use it. + +2000-04-03 Geoffrey Keating + + * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than + CEIL_DIV_EXPR. + +2000-04-03 Philipp Thomas + + * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo. + +Mon Apr 3 00:02:59 2000 Brad Lucier + + * Makefile.in (alias.o): Depend on $(TREE_H). + +2000-04-02 Zack Weinberg + + * cppinit.c (cpp_start_read): Turn off -Wtraditional if + processing C++. + * cpplib.c (_cpp_handle_directive): Improve warnings for + traditional C and indented directives. + + * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex, + fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap, + fixinc/inclhack.def: Indent the # of #include_next one space. + * cp/rtti.c: Un-indent #if and #endif. + + * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a + syntax error, but an error has already been printed. + * cpplex.c (_cpp_parse_assertion): Give a more specific error + message when called with nothing remaining on the line. + (_cpp_lex_token): If _cpp_parse_assertion fails, return an + OTHER token, not an ASSERTION. + * cpplib.c (do_assert): When we create a 'base' node, clear + its aschain pointer. + +2000-04-02 Neil Booth + + * cppexp.c: New typedef op_t. struct operation and struct + token updated to use it. + (op_to_str): New function. + (_cpp_parse_expr): Error messages modified to use op_to_str. + +2000-04-02 Michael Hayes + + * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node + before checking MUST_PASS_IN_STACK. + +2000-04-02 Neil Booth + + * cppexp.c: New FINISHED dummy token. Combine operator initial + flags and initial priority into a single constant. New + EQUALITY macro. New operator flag SHORT_CIRCUIT. + (_parse_cpp_expr): Implement new constants. Take left operand + checks out of reduction loop. Handle SHORT_CIRCUIT. End of + parse indicated by reducing FINISHED token. Remove new lines + from cpp_error messages. + +2000-04-01 Mark Mitchell + + * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the + permanent obstack. + +2000-04-01 Zack Weinberg + + * cpplib.c: Include symcat.h. Add 'origin' field to struct + directive. Add origin values to DIRECTIVE_TABLE. Generate + the strings and function names on the fly. Take the #sccs + entry out of the table if SCCS_DIRECTIVE is not defined. + (_cpp_handle_directive): Decide if the # was at the beginning + of the line here. Issue -pedantic warnings for extended + directives here. Warn about K+R directives with the # + indented, and C89/extended directives with the # not indented, + here. + (do_import, do_include_next, do_warning, do_ident, do_sccs, + do_assert, do_unassert): Don't issue pedantic warning here. + + * cpphash.h: Add CPP_WTRADITIONAL macro. + * cpplib.h (struct cpp_options): Rename warn_stringify to + warn_traditional; update comments. + * cppinit.c (handle_option): Set warn_traditional not + warn_stringify. + * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with + CPP_WTRADITIONAL (pfile). + * cpplex.c (_cpp_lex_token): Don't decide if directives should + be ignored in -traditional mode here. + + * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them + to initialize speccase[] and trigraph_map[]. Delete all + references to pfile->input_speccase. Always treat '?' as a + special character. Remove table-initialization code from + _cpp_init_input_buffer. + + * cpplib.h (struct cpp_reader): Remove input_speccase field. + * cppinit.c (cpp_cleanup): Don't free input_speccase. + +2000-04-01 Richard Henderson + + * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once. + (mostlyclean): Likewise. + + * toplev.c (rtl_dump, jump_opt_dump, etc): Remove. + (struct dump_file_info, enum dump_file_index, dump_file): New. + (open_dump_file): Take a dump_file_index not a suffix, and a decl + not a string. Clean out file if we haven't yet done so. Do nothing + if the dump isn't enabled. + (close_dump_file): Do nothing if the dump isn't open. Dump + graph data if requested. + (dump_rtl, clean_dump_file): Remove. + (compile_file): Don't clean the dump files. Only finalize .bp dump + if flag_test_coverage or flag_branch_probabilities. Only finalize + .combine dump if optimizing. Iterate over dump_file to finalize the + graph dumps. + (rest_of_compilation): Update for open_dump_file/close_dump_file. + Convert all uses of dump_rtl. + (decode_d_option): Iterate over dump_file to implement 'a' and to + locate pass-specific dumps. + +2000-04-01 Neil Booth + + * cppexp.c: Redefine priority constants. + (_cpp_parse_expr): Replace left and right priority scheme with + single priority logic. Move LOGICAL to same place as COMPARE. + Remove bogus check for multiple unary +/- operators. + +2000-04-01 Neil Booth + + * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed + within the switch statement. Binary operations break out of + the switch naturally. '(' tokens handled by forcing + immediate shift. ')' handled by forcing immediate reduce to + the previous '('. New error messages. + +2000-03-31 Geoff Keating + + * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low + part', it's already in use. Use %K instead. Add a return at the + end of what is now %K. + * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. + +Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka + + * builtins.c (expand_builtin_apply): Pass proper parameters to + allocate_dynamic_stack_space. + * calls.c (emit_call_1): Do not adjust stack pointer for SIB, + update stack_pointer_delta; do not update arg_size_so_far. + (compute_argument_block_size): Use stack_delta instead of + stack_pointer_pending and arg_size_so_far. + (expand_call): Add sanity checking for stack_pointer_delta; + save and restore stack_pointer_delta for SIB, use + stack_pointer_delta for alignment; do not update arg_space_so_far. + (emit_library_call_value): Use stack_pointer_delta for alignment. + (store_one_arg): Do not update arg_space_so_far. + * explow.c (adjust_stack, anti_adjust_stack): Update + stack_pointer_delta. + (allocate_dynamic_stack_space): Add sanity checking for + stack_pointer_delta. + * expr.c (init_expr, clear_pending_stack_adjust): Clear + stack_pointer_delta. + (emit_push_insn): Update stack_pointer_delta. + * function.h (struct expr_status): Add x_stack_pointer_delta; + remove x_arg_space_so_far. + (arg_space_so_far): Remove. + (stack_pointer_delta): New macro. + +2000-03-31 Zack Weinberg + + * cpplib.h: Merge struct cpp_options into struct cpp_reader. + Reorder struct cpp_options and struct cpp_reader for better + packing. Replace CPP_OPTIONS macro with CPP_OPTION which + takes two args. Change all 'char' flags to 'unsigned char'. + Move show_column flag into struct cpp_options. Don't + prototype cpp_options_init. + * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, + cppinit.c, cpplex.c, cpplib.c: + Replace CPP_OPTIONS (pfile)->whatever with + CPP_OPTION (pfile, whatever), and likewise for + opts = CPP_OPTIONS (pfile); ... opts->whatever; + + * cppinit.c (merge_include_chains): Take a cpp_reader *. + Extract CPP_OPTION (pfile, pending) and work with that + directly. + (cpp_options_init): Delete. + (cpp_reader_init): Turn on on-by-default options here. + Allocate the pending structure here. + (cl_options, enum opt_code): Define these from the same table, + kept in a large macro. Add -fshow-column and -fno-show-column + options. + + * cpperror.c (v_message): If show_column is off, don't print + the column number. + + * cppmain.c: Update for new interface. + * fix-header.c: Likewise. + +2000-03-30 Geoff Keating + + * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new + definition. + * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that + are passed to any invocation of AR_FOR_TARGET. + (AR_CREATE_FOR_TARGET): New macro. + (AR_EXTRACT_FOR_TARGET): New macro. + (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET, + AR_EXTRACT_FOR_TARGET. + (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET + in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and + `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and + AR_EXTRACT_FOR_TARGET to sub-makes. + +2000-03-31 Neil Booth + + * cppexp.c: Delete SKIP_OPERAND. Correct priority + PAREN_INNER_PRIO. + (_cpp_parse_expr): Check for multiple unary +/- operators. + Correct priorities of ':' and '?'. Treat ')' as having a + value. Ensure conditional expression is not void. + +2000-03-31 Mark Mitchell + + * alias.c (canon_rtx): Make it global. + (rtx_equal_for_memref_p): CONST_INT equality is now pointer + equality. + * cse.c (struct table_elt): Add canon_exp. + (insert): Clear it. + (invalidate): Canonicalize expressions only once. + * rtl.h (canon_rtx): Declare. + +2000-03-30 Mark Mitchell + + * Makefile.in (emit-rtl.o): Depend on HASHTAB_H. + * alias.c (reg_known_value): Add comments. + (init_alias_analysis): Likewise. + * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same + address. + (cse_basic_block): Fix typo in comment. + * emit-rtl.c: Include hashtab.h. + (const_int_htab): New variable. + (const_int_htab_hash): New function. + (const_int_htab_eq): Likewise. + (rtx_htab_mark_1): Likewise. + (rtx_htab_mark): Likewise. + (gen_rtx_CONST_INT): Cache all CONST_INTs. + (unshare_all_rtx): Fix formatting. + (init_emit_once): Initialize const_int_htab. + * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same + address. + * rtl.texi: Document the fact that all CONST_INTs with the same + value are shared. + +2000-03-30 Richard Henderson + + * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits. + +2000-03-30 Zack Weinberg + + * configure.in: Comment out --enable-c-cpplib stanza. + * configure: Regenerate. + +Thu Mar 30 06:32:51 2000 Richard Kenner + + * expr.c (store_constructor): Properly compute displacement and + alignment when offset is variable. + + * expmed.c (store_bit_field, store_fixed_bit_field): Fix more + cases of alignment in bytes. + +Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com) + + * c-parse.in (cast_expr): Move change from March 21 into c-parse.in + since it is used to generate c-parse.y. + * objc-parse.c, objc-parse.y: Regenerated. + + * function.c (expand_function_end): Pass alignment argument to + emit_block_move in bits, not bytes. + +Thu Mar 30 06:32:51 2000 Richard Kenner + + * expr.c (move_by_pieces_ninsns): Fix one more missing align + correction. + + * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits. + + * calls.c (expand_call): Pass bit alignment to mark_reg_pointer. + * explow.c (memory_address, allocate_dynamic_stack_space): Likewise. + * function.c (assign_parms): Likewise. + * integrate.c (expand_inline_function): Likewise. + * stmt.c (expand_decl): Likewise. + (copy_rtx_and_substitute): Likewise. + * expr.c (expand_expr, expand_expr_unaligned): Likewise. + (clear_by_pieces): Fix error in last change. + * emit-rtl.c (init_emit): Set known registers alignment in bits. + * function.h (regno_pointer_align): Now unsigned. + * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN + is in bits. + * config/i386/i386.c (aligned_operand): Likewise. + * config/sparc/sparc.c (mem_min_alignment): Likewise. + * config/alpha/alpha.c (aligned_memory_operand): Likewise. + (unaligned_memory_operand): Likewise. + (alpha_expand_block_move, alpha_expand_block_clear): Likewise. + Also make alignments and sizes unsigned and some whitespace cleanup. + (alpha_va_start): Do nothing if VALIST's type is error_mark_node. + + * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst. + (expand_builtin_apply): Pass alignment to emit_block_move in bits. + (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. + (expand_builtin_memset): Likewise, but to clear_storage. + * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces. + (restore_fixed_argument_area): Likewise. + (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field. + (load_register_parameters): Likewise, to emit_group_load. + (expand_call): Likewise, to emit_group_store and emit_block_move. + (emit_library_call_value_1): Likewise, to emit_block_move. + (store_one_arg): Likewise, and to emit_push_insn. + * expmed.c (extract_bit_field): Alignment is in bits, not bytes. + (extract_fixed_bit_field, extract_split_bit_field): Likewise. + * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise. + (emit_block_move, emit_group_load, emit_group_store): Likewise. + (clear_by_pieces, clear_storage, emit_push_insn): Likewise. + (expand_assigment, store_expr, store_constructor_field): Likewise. + (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise. + (store_constructor, store_field, get_inner_reference): Likewise. + Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT. + (expand_expr, case COMPONENT_REF): Likewise. + (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes + and positions; reindent code. + * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned. + * function.c (purge_addressof_1): Pass bit align to store_bit_field. + (assign_parms): Likewise to emit_group_store. + * optabs.c (prepare_cmp_insn): Alignment is in bits. + (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned. + * stmt.c (expand_value_return): Pass align in bits to emit_group_load. + (expand_return): Likewise to {extract,store}_bit_field. + * stor-layout.c (get_mode_alignment): Minor cleanup. + * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits. + * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise. + +2000-03-29 Nick Clifton + + * config/arm/arm.h: Undo effects of previous delta: + (ASM_SPEC): Do not define. + (SUBTARGET_EXTRA_ASM_SPEC): Do not define. + + * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix + typo. + +2000-03-29 Zack Weinberg + + * cppinit.c (cpp_start_read): Call initialize_dependency_output + only after reading in the primary source file. + +2000-03-29 Geoff Keating + + * c-common.c (c_common_nodes_and_builtins): The first parameter to + __builtin_va_start and __builtin_va_copy is now either a 'va_list' + or a reference to a va_list. + * builtins.c (stabilize_va_list): Simplify now we don't have to + work around C array address decay. + * c-typeck.c (convert_for_assignment): Handle assignment to + a reference parameter by taking the address of the RHS. + * ginclude/stdarg.h (va_start): Don't take address of first parameter. + (va_copy): Likewise. + (__va_copy): Likewise. + * ginclude/varargs.h (va_start): Likewise. + (__va_copy): Likewise. + +Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com) + + * i386/djgpp.h: Remove extraneous "+". + + * stmt.c (stmt_loop_nest_empty): Fix thinko in last change. + + * calls.c (expand_call): Fix typo in last change. + +2000-03-29 Jason Merrill + + * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't + been expanded. + +Wed Mar 29 15:39:10 2000 Richard Kenner + + * stor-layout.c (bit_from_pos, byte_from_pos): New functions. + (pos_from_byte, pos_from_bit, normalize_offset): Likewise. + (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them. + * tree.c (bit_position, byte_position): Likewise. + * tree.h: Declare new functions. + +2000-03-29 Nick Clifton + + * config/arm/arm.c: Minor formatting changes/ + * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not + already defined. + (ASM_SPEC): Define if not already defined. + +2000-03-29 Zack Weinberg + + * cppfiles.c (cpp_read_file): Don't pass zero-length string to + _cpp_calc_hash. + +2000-03-29 Jakub Jelinek + + * dwarf2out.c (gen_enumeration_type_die): If enum has a negative + value, don't output it as unsigned. + +Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com) + + * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL. + +2000-03-29 Kaveh R. Ghazi + + * c-common.c (c_common_nodes_and_builtins): Don't special case + cplus_mode when declaring builtin bzero/bcmp, always avoid + prototype arguments. + +2000-03-29 Bruce Korb + + * fixinc/mkfixinc.sh: Initially set the variable "fixincludes" + to a non-file + +Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka + + Convert ACCUMULATE_OUTGOING_ARGS to an expression. + * calls.c (PUSH_ARGS_REVERSED) Change to expression. + (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value. + (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS. + (save_fixed_argument_area, restore_fixed_argument_area): + conditionize by #ifdef REG_PARM_STACK_SPACE only. + (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS + to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS. + (precompute_register_parameters): Avoid #ifdefs on + ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED. + (stire_one_args): Likewise. + (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS. + (emit_library_call_value_1): Likewise. + (compute_argument_block_size): Align to STACK_BOUNDARY only for + ACCUMULATE_OUTGOING_ARGS. + * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default + value. + (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH. + (use_crosses_set_p): Likewise. + * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to + #define ACCUMULATE_OUTGOING_ARGS 1. + * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS + frames. + * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New + constants. + (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros. + (TARGET_SWITCHES): Add push-args, no-push-args, + accumulate-outgoing-args and no-accumulate-outgoing-args. + (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro. + * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default. + (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS + and PUSH_ROUNDING. + (emit_push_insn): Likewise. + * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default. + (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS. + * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default. + (STACK_DYNAMIC_OFFSET): Define correctly for both + ACCUMULATE_OUTGOING_ARGS and normal mode. + * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document. + * tm.texi (PUSH_ARGS): Document. + (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation. + +Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka + + * flags.h (flag_optimize_sibling_calls): Declare. + * calls.c (expand_call): Fail sibcall when + !flag_optimize_sibling_calls + * invoke.texi (flag_optimize_sibling_calls): Document. + * toplev.c (flag_optimize_sibling_calls): New global variable. + (f_options): Add flag_optimize_sibling_calls. + (rest_of_compilation): Conditionize + optimize_sibling_and_tail_recursive_calls by + flag_optimize_sibling_calls. + (main): Set flag_optimize_sibling_calls for -O2. + * stmt.c (expand_return): Conditionize tail recursion by + flag_optimize_sibling_calls. + +2000-03-29 Richard Henderson + + * config/i386/att.h (LOCAL_LABEL_PREFIX): Define. + (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it. + +2000-03-29 Nathan Sidwell + + * except.c (add_eh_table_entry): Mark type_info's as referenced. + +2000-03-29 Alexandre Oliva + + * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi + is given. + * config/rs6000/aix43.h (CPP_SPEC): Likewise. + * config/rs6000/rs6000.h (CPP_SPEC): Moved to... + * config/rs6000/aix.h: then modified likewise. + +2000-03-28 Richard Henderson + + * rtl.h: Redistribute enum reg_note documentation. + Kill trailing whitespace. + * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks. + Kill trailing whitespace. + +2000-03-28 Zack Weinberg + + * cppfiles.c (hash_IHASH): Just return i->hash. + (cpp_included): Set dummy.hash using _cpp_calc_hash. Use + htab_find_with_hash. + (cpp_read_file): Likewise. + (find_include_file): Likewise. Properly initialize + ih->nshort. Share ih->name and ih->nshort if possible. + * cpphash.c (_cpp_calc_hash): New function. + (hash_HASHNODE): Just return h->hash. + (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use + htab_find_with_hash. + * cpphash.h: Prototype _cpp_calc_hash. + * cppinit.c (initialize_builtins): Provide a valid hash + to _cpp_make_hashnode, using _cpp_calc_hash. + + * cpphash.c (collect_expansion): # is not a special character + in object-like macros. In -traditional mode, /**/ is not + token paste at the beginning or end of the line. + * cpplib.c (do_include, do_import, do_include_next): If + parse_include fails, return immediately. + +2000-03-28 Jason Merrill + + * config/arm/arm.md (return peepholes): Update to reflect the new + call insn patterns. + * config/arm/arm.c (arm_volatile_func): Also check + current_function_nothrow. + (output_return_instruction, output_func_prologue): Use it. + (arm_output_epilogue, arm_expand_prologue): Likewise. + +2000-03-27 Tom Tromey + + * gcc.c (handle_braces): In {x*...} case, break out of loop if + switch is found. + +Tue Mar 28 11:55:48 2000 Richard Kenner + + * expr.c (store_constructor): SIZE now signed. + For EXPR_SIZE, don't evaluate size; just needed if constant. + * fold-const.c (fold): Fix a number of cases when folded tree is + wrong type. + * function.c (flush_addressof): Reenable. + * tree.h (flush_addressof): Likewise. + * toplev.c (independent_decode_option): Look at strings_processed. + * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned. + +Tue Mar 28 08:29:46 2000 Jan Hubicka + + * sibcall.c (identify_call_return_value): Find last call in the chain; + Allow stack adjustment after function call. + + * regmove.c (struct csa_memlist): Make mem field rtx *. + (record_one_stack_ref): Accept rtx * instead of rtx as parameter. + (try_apply_stack_adjustment): Replace whole MEM rtx. + (combine_stack_adjustments_for_block): Update calls + to record_one_stack_ref. + +2000-03-28 Neil Booth + + * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with + '\\' rather than a null character, so nulls are not special. Fix + "\\\n" handling in end-of-buffer conditions. Use trigraph map to + speed trigraph conversion. + (_cpp_init_input_buffer): Initialize trigraph map. + +2000-03-27 Alan Modra + + * config/i386/i386.c (output_387_binary_op): Correct intel + mode assembly output, and add spaces after commas in AT&T + output. Correct Unixware assembler comment. Document input + constraints. Comment fp operations. Reduce profligate buffer + size. Remove extraneous abort. Localize temp var. + (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code. + (output_fix_trunc): Add spaces after commas in assembly output. + +2000-03-27 Richard Henderson + + * i386-protos.h (ix86_match_ccmode): Declare. + * i386.c (ix86_match_ccmode): New. + (ix86_expand_fp_compare): Update for pattern renames. + (ix86_expand_strlensi_unroll_1): Likewise. + * i386.h (EXTRA_CC_MODES): Add CCZ. + (SELECT_CC_MODE): Use it for EQ/NE zero. + * i386.md (cmpsi_ccz_1): New. + (cmpqi_ccz_1): New. + (*testsi_ccz_1): New. + (testqi_ccz_1): New. + (cmpsi_ccno_1): Rename from cmpsi_0. + (testsi_ccno_1): Rename from testsi_1. + (testqi_ccno_1): Rename from testqi_1. + (*testqi_ext_ccz_0): Rename from testqi_ext_0. + (testqi_ext_ccno_0): Rename from *testqi_ext_1. + (*cmphi_0): Use ix86_match_ccmode. + (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise. + (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise. + (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise. + (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise. + (*iorsi_2, *iorhi_2, *iorqi_2): Likewise. + (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise. + (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise. + (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise. + (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise. + (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise. + (appropriate peepholes): Likewise. + (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name. + (*subsi_3, *subhi_3, *subqi_3): Remove. + (*negdi2_1+1 splitter): Use CCZ for neg patterns. + (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove. + (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ. + (*neghi2_cmpz, *negqi2_cmpz): Similarly. + (x86_shift_adj_1): Use CCZ. + (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise. + +2000-03-27 Stan Cox + + * resource.h (mark_resource_type): New. + * resource.c (find_dead_or_set_registers, mark_target_live_regs, + find_free_register): Use mark_resource_type. + (mark_set_resources): Change include_delayed_effects + to mark_resource_type. + * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, + redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): + Use mark_resource_type. + +2000-03-27 Richard Henderson + + * i386.md (call_pop_0, call_value_pop_0): New. + (call_pop_1): Remove constraint from unused arg. Support sibcalls. + (call_value_pop_1): Likewise. + (call_0, call_value_0): New. + (call_1, call_value_1): Remove constraint from unused arg. + +2000-03-27 Nick Clifton + + * invoke.texi (Spec Files): Document new spec % command created by + Tom Tromey's recent patch. + +2000-03-27 Jakub Jelinek + + * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD + if not defined. + +Mon Mar 27 06:04:22 2000 Richard Kenner + + * expr.c (expand_assignment): Fix typo in last change. + + * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD. + +Sun Mar 26 20:15:26 2000 Richard Kenner + + * c-convert.c (convert): Return if output or input type is ERROR_MARK. + * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI + and DECL_INLINE if FUNCTION_DECL. + (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE. + (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK. + Use DECL_WEAK, not DECL_RESULT, to flag for already seen. + (combine_parm_decls): Likewise. + * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD. + * print-tree.c (print_node): Likewise. + Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and + DECL_TRANSPARENT_UNION on proper decl types. + Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS. + * stor-layout.c (layout_decl): Only check DECL_PACKED and + DECL_BIT_FIELD of FIELD_DECL. + * tree.h (DECL_RESULT_FLD): New macro. + + * expr.c (expand_assignment): Add code to handle variable-sized + BLKmode case. + +2000-03-26 Richard Henderson + + * calls.c (expand_call): Pass parms not original exp to + optimize_tail_recursion. Mind return value instead of looking + for a barrier. + * stmt.c (optimize_tail_recursion): Take parameter list, not entire + call_expr. Move checks for call_expr and current_function_decl ... + (expand_return): ... here. + +2000-03-26 Tom Tromey + + * gcc.c (handle_braces): Recognize `%{ + + * jump.c (jump_optimize_1): Fix typo in elide optimizations + for minimal jump pass test. + +2000-03-26 Mark Mitchell + + * integrate.c (function_cannot_inline_p): Do inline functions that + return `void'. + +Sun Mar 26 11:37:55 2000 Richard Kenner + + * stor-layout.c (layout_type, set_sizetype): early_type_list is + now a list of TREE_LIST entries, not types. + * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets. + + * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX. + * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and + int_bit_position. + * config/mips/mips.c (function_arg): Likewise; also remove cast + and make variables unsigned or HOST_WIDE_INT and use tree_low_cst. + (mips_function_value): Use int_byte_position and make HOST_WIDE_INT. + * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned. + * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned. + (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise. + (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise. + (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed. + (struct mips_arg): arg_number, arg_words, fp_arg_words, and + num_adjusts now unsigned. + (FUNCTION_ARG_BOUNDARY): Remove unneeded cast. + * config/sparc/sparc.c (struct function_arg_record_value_parms): + NREGS now unsigned. + (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT + as is BITPOS variable; use host_integerp and int_bit_position. + (function_arg_record_value_2): Likewise. + (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT. + Variable REGNO now unsigned. + (function_arg_record_value): NREGS now unsigned. + +2000-03-26 Bernd Schmidt + + * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. + +Sat Mar 25 09:12:10 2000 Richard Kenner + + * Rework fields used to describe positions of bitfields and + modify sizes to be unsigned and use HOST_WIDE_INT. + * alias.c (reg_known_value_size): Now unsigned. + * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. + (really_start_incremental_init): Use bitsize_zero_node. + (push_init_level, pop_init_level, output_init_element): Likewise. + Use bitsize_unit_node and bitsize_one_node. + (output_pending_init_elements, process_init_element): Likewise. + * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. + (make_extraction): Position and length HOST_WIDE_INT and unsigned + HOST_WIDE_INT, respectively. + (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. + (num_sign_bit_copies): Returns unsigned. + BITWIDTH now unsigned; rework arithmetic. + Remove recursive call from arg to MAX. + (combine_instructions, init_reg_last_arrays): NREGS now unsigned. + (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): + REGNO now unsigned. + (set_nonzero_bit_and_sign_copies): NUM now unsigned. + (find_split_point, expand_compound_operation, make_extraction): LEN + now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. + (make_field_assignment): Likewise. + (combine_simplify_rtx): Add cast. + (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. + (force_to_mode): WIDTH now unsigned; add cast. + (if_then_else_cond): SIZE now unsigned. + (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. + (extended_count): Now returns unsigned. + (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. + Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. + (simplify_comparison): MODE_WIDTH now unsigned. + (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. + (mark_used_regs_combine): Likewise; rework arithmetic. + (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. + (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. + (record_promoted_value): REGNO now unsigned. + (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. + (get_last_value): REGNO now unsigned. + (use_crosses_set_p): REGNO and ENDREGNO now unsigned. + (reg_dead_regno, reg_dead_endregno): Now unsigned. + (remove_death): Arg REGNO now unsigned. + (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. + (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO + now unsigned. + * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. + * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. + (struct cse_reg_info): REGNO now unsigned. + (cached_regno): Now unsigned. + (REGNO_QTY_VALID_P): Add cast. + (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. + (remove_invalid_regs): Likewise. + (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned + as are variables END and I. + (get_cse_reg_info, insert): Likewise. + (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. + (canon_hash): Likewise. + (insert_regs, lookup_for_remove): REGNO now unsigned. + (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. + New variable RN. + * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. + * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. + * emit-rtl.c (subreg_realpart_p): Add cast. + (operand_subword): Arg I is now unsigned as is var PARTWORDS. + (operand_subword_force): Arg I is now unsigned. + * except.c (eh_regs): Variable I is now unsigned. + * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. + * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; + length is unsigned HOST_WIDE_INT; likewise for internal variables. + (store_split_bit_field, extract_fixed_bit_field): Likewise. + (extract_split_bit_field, store_bit_field, extract_bit_field): + Likewise. + * expr.c (store_constructor_fields, store_constructor, store_field): + Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. + (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. + (do_jump): Likewise. + (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): + MAX_SIZE is now unsigned. + (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. + (emit_group_store): Likewise. + (emit_move_insn): I now unsigned. + (store_constructor): Use host_integerp, tree_low_cst, and + bitsize_unit_node. + (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. + Rework all calculations to use trees and new fields. + * expr.h (promoted_input_arg): Regno now unsigned. + (store_bit_field, extract_bit_field): Adjust types of pos and size. + (mark_seen_cases): Arg is HOST_WIDE_INT. + * flow.c (verify_wide_reg_1): REGNO now unsigned. + * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; + precisions and alignments are unsigned. + (optimize_bit_field_compare, fold_truthop): Likewise. + (int_const_binop): Adjust threshold for size_int_type_wide call. + (fold_convert): Likewise. + (size_int_type_wide): Make table larger and fix thinko that only + had half of table used. + (all_ones_mask_p, fold): Precisions are unsigned. + * function.c (put_reg_info_stack): REGNO is unsigned. + (instantiate_decl): Size is HOST_WIDE_INT. + (instantiate_virtual_regs): I is unsigned. + (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. + (promoted_input_arg): REGNO is unsigned. + * function.h (struct function): x_max_parm_reg is now unsigned. + * gcse.c (max_gcse_regno): Now unsigned. + (struct null_pointer_info): min_reg and max_reg now unsigned. + (lookup_set, next_set): REGNO arg now unsigned. + (compute_hash_table): REGNO and I now unsigned. + (handle_avail_expr): regnum_for_replacing now unsigned. + (cprop_insn): REGNO now unsigned. + (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. + * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. + * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. + * hard-reg-set.h (reg_class_size): Now unsigned. + * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. + * jump.c (mark_modified_reg): I now unsigned; add cast. + (rtx_equal_for_thread_p): Add cast. + * loop.c (max_reg_before_loop): Now unsigned. + (struct_movable): REGNO now unsigned. + (try_copy_prop): REGNO arg unsigned. + (regs_match_p): XN and YN now unsigned. + (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. + (strength_reduce): Likewise; NREGS also unsigned. + (first_increment_giv, last_increment_giv unsigned): Now unsigned. + * loop.h (struct iv_class): REGNO now unsigned. + (max_reg_before_loop, first_increment_giv, last_increment_giv): + Now unsigned. + * machmode.h (mode_size, mode_unit_size): Now unsigned. + (mode_for_size, smallest_mode_for_size): Pass size as unsigned. + * optabs.c (expand_binop): I and NWORDS now unsigned. + (expand_unop): I now unsigned. + * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do + print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. + * real.c (significand_size): Now returns unsigned. + * real.h (significand_size): Likewise. + * regclass.c (reg_class_size): Now unsigned. + (choose_hard_reg_mode): Both operands now unsigned. + (record_reg_classes): REGNO and NR now unsigned. + (reg_scan): NREGS now unsigned. + (reg_scan_update): old_max_regno now unsigned. + (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. + * reload.c (find_valid_class): BEST_SIZE now unsigned. + (find_dummy_reload): REGNO, NWORDS, and I now unsigned. + (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. + Likewise for variable R. + (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, + as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. + (find_equiv_reg): Add casts. + (regno_clobbered_p): Arg REGNO now unsigned. + * reload.h (struct reload): NREGS now unsigned. + (refers_to_regno_for_reload_p): Regno args are unsigned. + (regno_clobbered_p): Likewise. + * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. + (compute_use_by_pseudos): REGNO now unsigned. + (find_reg): I and J now unsigned, new variable K, and change loop + variables accordingly; THIS_NREGS now unsigned. + (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. + (spill_hard_reg): REGNO arg now unsigned; add casts. + (forget_old_reloads_1): REGNO, NR, and I now unsigned. + (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. + (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, + END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. + (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. + (choose_reload_regs): MAX_GROUP_SIZE now unsigned. + (emit_reload_insns): REGNO now unsigned. + (reload_cse_move2add): Add cast. + (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO + and rework loop. + * resource.c (mark_referenced_resources, mark_set_resources): New + variable R; REGNO and LAST_REGNO now unsigned. + (mark_target_live_regs): J and REGNO now unsigned. + * rtl.c (mode_size, mode_unit_size): Now unsigned. + * rtl.h (union rtunion_def): New field rtuint. + (XCUINT): New macro. + (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. + (operand_subword, operand_subword_force): Word number is unsigned. + (choose_hard_reg_mode): Operands are unsigned. + (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. + (find_regno_note, find_regno_fusage, replace_regs): Likewise. + (regno_use_in, combine_instructions, remove_death): Likewise. + (reg_scan, reg_scan_update): Likewise. + (extended_count): Return is unsigned. + * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, + INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. + (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. + (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. + (reg_reg_last_1): FIRS and LAST now unsigned. + (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. + (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO + now unsigned. + (find_regno_note, regno_use_in): Arg REGNO now unsigned. + (find_regno_fusage): Likewise; also var REGNOTE now unsigned. + (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. + (replace_regs): Arg NREGS now unsigned. + * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. + * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. + (simplify_binary_operation): Likewise. + (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and + THIS_LAST now unsigned. + (cselib_record_set): Add cast. + * ssa.c (ssa_max_reg_num): Now unsigned. + (rename_block): REGNO now unsigned. + * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; + sizes now unsigned. + (all_cases_count): Just return -1 not -2. + COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. + Rework tests to use trees whenever possible. + Use host_integerp and tree_low_cst. + (mark_seen_cases): COUNT arg now HOST_WIDE_INT; + Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. + (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. + * stor-layout.c (mode_for_size): SIZE arg now unsigned. + (smallest_mode_for_size): Likewise. + (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. + KNOWN_ALIGN is now an alignment, so simplify code. + Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. + (start_record_layout): Renamed from new_record_layout_info. + Update to new fields. + (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): + New functions. + (place_union_field): Renamed from layout_union_field. + Update to use new fields in rli. + (place_field): Renamed from layout_field. + Major rewrite to use new fields in rli; pass alignment to layout_decl. + (finalize_record_size): Rework to use new fields in rli and handle + union. + (compute_record_mode): Rework to simplify and to use new DECL fields. + (finalize_type_size): Make rounding more consistent. + (finish_union_layout): Deleted. + (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. + (layout_type, case RECORD_TYPE): Call new function names. + (initialize_sizetypes): Set TYPE_IS_SIZETYPE. + (set_sizetype): Set TYPE_IS_SIZETYPE earlier. + (get_best_mode): UNIT is now unsigned; remove casts. + * tree.c (bit_position): Compute from new fields. + (byte_position, int_byte_position): New functions. + (print_type_hash_statistics): Cast to remove warning. + (build_range_type): Use host_integerp and tree_low_cst to try to hash. + (build_index_type): Likewise; make subtype of sizetype. + (build_index_2_type): Pass sizetype to build_range_type. + (build_common_tree_nodes): Use size_int and bitsize_int to + initialize nodes; add bitsize_{zero,one,unit}_node. + * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. + (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. + (DECL_PACKED, DECL_BIT_FIELD): Likewise. + (DECL_FIELD_BITPOS): Deleted. + (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. + (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. + (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. + (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. + (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. + (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. + (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. + (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. + (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. + (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. + (DECL_ALIGN): Adjust to new field in union. + (DECL_OFFSET_ALIGN): New field. + (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. + (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. + (union tree_decl): Add struct for both aligns. + (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. + (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. + (struct record_layout_info): Rework fields to have offset + alignment and byte and bit position. + (start_record_layout, place_field): Renamed from old names. + (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. + (byte_position, int_byte_position): Likewise. + (get_inner_reference): Change types of position and length. + * unroll.c (unroll_loop): New variable R; use for some loops. + MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. + (calculate_giv_inc): Arg REGNO now unsigned. + (copy_loop_body): REGNO and SRC_REGNO now unsigned. + * varasm.c (assemble_variable): Clean up handling of size using + host_integerp and tree_low_cst. + (decode_addr_const): Use byte, not bit, position. + (output_constructor): bitpos and offsets are HOST_WIDE_INT; + use tree_low_cst and int_bit_position. + * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. + +Fri Mar 24 20:13:49 2000 Jason Eckhardt + + * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed. + (reorder_block_def): New members eff_head and eff_end. + (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros. + (verify_insn_chain): New function. + (skip_insns_between_block): Add code to skip deleted insns. + Check for note before using. + (chain_reorder_blocks): Replace calls to skip_insns_between_block + with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END. + Check for note before using. + (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB. + (fixup_reorder_chain): Restructure, clean up, defect removal. + (reorder_basic_blocks): Remove last_insn and references to it. + Moved insn chain verification code into a new function (see above). + Delete defective code that sets last insn. + Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for + all blocks. + +2000-03-25 Michael Hayes + + * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space. + +2000-03-24 Richard Henderson + + * tree.c (lang_safe_for_unsave): Remove. + (unsafe_for_reeval): Transmute and rename from safe_for_unsave, + allowing for two levels of unsafeness. Remove lang hook. + * tree.h: Update declarations. + * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. + Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. + Always fail sibcalls when there are pending cleanups. + +2000-03-24 Geoff Keating + + * flow.c (propagate_block): When we delete an ADDR_VEC, + also delete the BARRIER following it if there is one. + +2000-03-24 Richard Henderson + + * builtins.c (expand_builtin_bzero): Convert `length' argument + to sizetype. + +2000-03-24 Jakub Jelinek + + * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for + comparison if regno's are equal. + * calls.c (initialize_argument_informat): Add ecf_flags argument. + Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. + (expand_call): Update caller. + Avoid making a sibling call if argument size of the callee is larger + than argument size of the caller. + Call hard_function_value with outgoing set if in sibcall pass. + Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. + + * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used): + Change LEAF_REGISTERS from an array initializer to actual array + identifier. Move static global variable into the function. + (leaf_function_p): Allow SIBLING_CALL_P calls even outside of + sequences for leaf functions. + * global.c (global_alloc): Likewise. + * tm.texi (LEAF_REGISTERS): Update documentation. + + * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly + TARGET_FLAT leaf disabling hack. + (LEAF_REGISTERS): Changed from an array initializer to actual array + identifier to avoid duplication and remove the above hack. + (FUNCTION_OK_FOR_SIBCALL): Define. + * config/sparc/sparc.md (sibcall): New attr type. Use it almost + always like call attribute. + (eligible_for_sibcall_delay): New attribute. + (sibcall): New delay type. + (sibcall, sibcall_value, sibcall_epilogue): New expands. + (sibcall_symbolic_sp32, sibcall_symbolic_sp64, + sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns. + * config/sparc/sparc.c (sparc_leaf_regs): New array. + (eligible_for_sibcall_delay, output_restore_regs, output_sibcall): + New functions. + (output_function_epilogue): Move part of the code into + output_restore_regs. + (ultra_code_from_mask, ultrasparc_sched_reorder): Handle + TYPE_SIBCALL. + * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New + prototypes. + + * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change + until infrastructure is finished. + +Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com) + + * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here. + (save_parm_insns): Not here. + +2000-03-24 Kaveh R. Ghazi + + * builtins.c (expand_builtin_bzero): New function. + (expand_builtin): Handle bzero. + + * builtins.def: Add BUILT_IN_BZERO. + + * c-common.c (c_common_nodes_and_builtins): Provide builtin + prototype & function for bzero. + +2000-03-23 Michael Meissner + + * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21 + change adding TARGET_FP to the TF floating point insns, except for + trunctfsf2, which generates direct calls to truncdfsf2. + +2000-03-23 Geoff Keating + + * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition, + try to protect against middle-end changes that break binary + compatibility. + (DWARF_FRAME_REGISTERS): New definition, likewise for backend. + +2000-03-24 Michael Hayes + + * config/c4x/c4x.md (load_immed_address): Add DP reg clobber. + +Thu Mar 23 17:10:48 2000 Richard Kenner + + * calls.c (expand_call): If TARGET is passed by reference and + is readonly, write a CLOBBER. + +2000-03-23 Kaveh R. Ghazi + + * builtins.c (expand_builtin): Handle bcmp. + + * builtins.def: Add BUILT_IN_BCMP. + + * c-common.c (c_common_nodes_and_builtins): Provide builtin + prototype & function for bcmp. + +Thu Mar 23 11:34:39 2000 Jim Wilson + + * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6... + (rtx_needs_barrier, case UNSPEC_VOLATILE): to here. + * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE. + +Thu Mar 23 16:04:40 2000 Andrew Haley + + * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F') + alternative when using -fp64 -gp32. + +2000-03-22 Jason Merrill + + * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. + * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. + * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. + + * frame.h (frame_state): Revert last change. + * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. + * libgcc2.c (throw_helper): Revert last change. + +2000-03-22 Richard Henderson + + * stmt.c (expand_asm_operands): Don't promote the temporary. + +2000-03-22 Theodore Papadopoulo + + * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. + * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, + c_get_alias_set): Likewise. + * c-decl.c (duplicate_decls): Likewise. + * c-typeck.c (default_conversion,build_unary_op): Likewise. + * calls.c (initialize_argument_information): Likewise. + * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): + Likewise. + * dwarfout.c (decl_class_context,output_type): Likewise. + * expr.c (get_inner_reference): Likewise. + * fold-const.c (simple_operand_p,fold): Likewise. + * function.c (aggregate_value_p): Likewise. + * stmt.c (expand_asm_operands): Likewise. + * varasm.c (named_section): Likewise. + +2000-03-22 Jason Merrill + + Implement dwarf2 exception handling for the ARM. + * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. + (DWARF_FRAME_RETURN_COLUMN): Define. + * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach + REG_FRAME_RELATED_EXPR note. + (emit_sfm): Likewise. + (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. + * dwarf2out.c (reg_save): Handle saving a register to itself. + (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. + * except.c (eh_regs): Don't use the static chain reg if it's + callee-saved. + * frame.h (frame_state): Add cfa_saved field. + * frame.c (execute_cfa_insn): Set it. + * libgcc2.c (throw_helper): Don't adjust sp if it's restored in + the epilogue. + * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. + Now takes a parm. + (instantiate_virtual_regs): Adjust. + * tm.texi: Adjust. + * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. + * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. + * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. + + * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. + (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. + +2000-03-22 Kaveh R. Ghazi + + * builtins.def: New file. + + * Makefile.in (TREE_H): Depend on builtins.def. + + * builtins.c (built_in_names): Use builtins.def. + + * tree.h (built_in_function): Likewise. + +2000-03-22 Mark Mitchell + + * tree.c (size_in_bytes): Return size_zero_node, not + integer_zero_node. + +2000-03-22 Geoff Keating + + * config/fp-bit.c (pack_d): Correct the case when a denormal + is rounded up and stops being denormal. + +2000-03-21 Richard Henderson + + * config/alpha/alpha.c (function_arg): Check for void_type_node + before using MUST_PASS_IN_STACK. + +2000-03-21 Stephane Carrez + + * regmove.c (combine_stack_adjustments_for_block): Check that + the stack pointer is a valid memory address. + +Wed Mar 22 11:44:50 MET 2000 Jan Hubicka + + * calls.c: re-install Mar 16 emit_library_call merge. + +2000-03-21 Jakub Jelinek + + * config/sparc/sparc.c (mem_min_alignment): If not optimizing, + we cannot be sure that if reload_completed base register will + be properly aligned. + +2000-03-21 Richard Henderson + + * flow.c (delete_block): Fix typo last change. + +2000-03-21 Mark Mitchell + + * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P, + not COMPLETE_TYPE_P, to check the type of the expression. + +2000-03-21 Michael Meissner + + * config/alpha/alpha.md (floating point insns): Add TARGET_FP to + all floating point insns that just tested the macro + TARGET_HAS_XFLOATING_LIBS. + (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is + used to only use the gprs. + +2000-03-21 Nathan Sidwell + + * tree.h (COMPLETE_TYPE_P): New macro. + (COMPLETE_OR_VOID_TYPE_P): New macro. + (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro. + * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE. + * c-aux-info.c (gen_type): Use them. + * c-common.c (c_expand_expr_stmt): Likewise. + * c-decl.c (poplevel, pushdecl, start_decl, finish_decl, + grokdeclarator, grokparms, finish_struct, start_function, + store_parm_decls, combine_parm_decls): Likewise. + * c-parse.y (cast_expr): Likewise. + * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn, + c_size_in_bytes, c_alignof, build_component_ref, + build_indirect_ref, build_array_ref, convert_arguments, + build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise. + * calls.c (initialize_argument_information): Likewise. + * convert.c (convert_to_integer): Likewise. + * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise. + * dwarfout.c (location_or_const_value_attribute, + output_enumeration_type_die, output_structure_type_die, + output_union_type_die, output_type): Likewise. + * expr.c (safe_from_p, expand_expr): Likewise. + * function.c (assign_parms): Likewise. + * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise. + * tree.c (build_array_type, build_function_type, + build_method_type, build_offset_type, build_complex_type): Likewise. + * c-parse.c, c-parse.h: Regenerated. + +2000-03-21 Michael Hayes + + * config/c4x/rtems.h: Include config/rtems.h. + +Tue Mar 21 09:24:00 2000 Denis Chertykov + + * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if + decl is a FUNCTION_DECL + +Mon Mar 20 19:53:53 2000 Jim Wilson + + * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf + function uses output registers. Don't save RP for leaf functions. + Do save RP even if no epilogue. + * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers. + (CALL_USED_REGISTERS): Unmark in registers. + (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up, + to near the middle. + +2000-03-20 Geoff Keating + + * config/rs6000/rs6000.md (bunordered): New expander. + (bordered): New expander. + (buneq): New expander. + (bunge): New expander. + (bungt): New expander. + (bunle): New expander. + (bunlt): New expander. + (bltgt): New expander. + + * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons. + (ccr_bit_negated_p): New function. + (print_operand): For %C, generate appropriate cror for UNEQ, + UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p. + +2000-03-20 Andreas Jaeger + + * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else" + warning. + + * tree.h (safe_for_unsave): Prototype. + +2000-03-20 Richard Henderson + + * regmove.c (stack_memref_p): Fix typo, reorg for readability. + (combine_stack_adjustments_for_block): Don't allow sp references + in the side of a set we're not fixing up. + * toplev.c (rest_of_compilation): Run combine_stack_adjustments + after life_analysis. + +2000-03-20 Richard Henderson + + * calls.c (expand_call): Don't bother generating tail call + sequences if there are pending cleanups. Use + expand_start_target_temps/expand_end_target_temps to elide + cleanups created during sibcall expansion. + +2000-03-20 Geoff Keating + + * configure.in: Set $IFS to a value if it doesn't already have one + in the --enable-checking handling. + * configure: Regenerate. + +2000-03-20 Martin v. Löwis + + * c-parse.in (SAVE_WARN_FLAGS): Use size_int. + * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: + Regenerated. + +Mon Mar 20 11:43:15 MET 2000 Jan Hubicka + + * jump.c (delete_noop_moves): Remove code attempting to + combine stack adjustments. + +2000-03-19 Martin v. Löwis + + * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions. + * except.c (emit_cleanup_handler): Use them. + (expand_end_all_catch): Likewise. + * function.c (fixup_var_refs): Likewise. + (expand_function_end): Clear catch_clauses_last. + * rtl.h (push_to_full_sequence, end_full_sequence): Declare. + * except.h (struct eh_status): New field x_catch_clauses_last. + (catch_clauses_last): New define. + + * Makefile.in (tree.o): Depend on HASHTAB_H. + * tree.c: Include hashtab.h. + (struct type_hash): Remove next field. + (TYPE_HASH_SIZE): Remove. + (TYPE_HASH_INITIAL_SIZE): New define. + (type_hash_table): Change type to htab_t. + (type_hash_eq, type_hash_hash, print_type_hash_statistics, + mark_hash_entry): New functions. + (init_obstacks): Allocate type hash. + (type_hash_lookup): Use htab functions. + (type_hash_add, mark_type_hash): Likewise. + (dump_tree_statistics): Call print_type_hash_statistics. + +2000-03-19 Kaveh R. Ghazi + + * rs6000/t-aix41: New file. + + * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it. + +Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson + + * tm.texi (Driver): Fix typos and tweak entry for + INCLUDE_DEFAULTS. + Move misplaced STRUCT_FORCE_BLK entry ... + (Storage Layout): ... to here. + (Run-time Target): Recommend having TARGET_MASK_... helper macros. + +2000-03-19 Richard Henderson + + * flow.c (delete_block): Delete the addr_vec along with the block. + (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that + reference labels. + + * fold-const.c (extract_muldiv): Apply type check for defined + overflow to multiply as well as divide. + + * stor-layout.c (layout_decl): Don't abort on any zero sized decl. + +2000-03-18 Mark Mitchell + + * emit-rtl.c (remove_unnecessary_notes): Check that all + NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an + associated NOTE_BLOCK. + * function.h (identify_blocks): Update comments. + (reorder_blocks): Declare. + * function.c (identify_blocks): Don't take paramters. + (reorder_blocks): Don't take parameters. + * loop.h (find_loop_tree_blocks): Remove. + (unroll_block_trees): Likewise. + * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use + reorder_blocks instead of unroll_block_trees.h + * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise. + * stmt.c (find_loop_tree_blocks): Remove. + (unroll_block_trees): Likewise. + * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks + in whole-function mode. + * tree.h (reorder_blocks): Remove declaration. + + * expr.c: Include intl.h. + * Makefile.in (expr.o): Depend on intl.h. + +2000-03-18 Richard Henderson + + * expr.c (emit_move_insn_1): Clarify cannot_inline message. + +2000-03-18 Mark Mitchell + + * tree.h (tree_index): Remove enumerals for integer types. + (integer_type_kind): New type. + (integer_types): New variable. + (char_type_node): Adjust. + (signed_char_type_node): Likewise. + (unsigned_char_type_node): Likewise. + (short_integer_type_node): Likewise. + (short_unsigned_type_node): Likewise. + (integer_type_node): Likewise. + (unsigned_type_node): Likewise. + (long_integer_type_node): Likewise. + (long_unsigned_type_node): Likewise. + (long_long_integer_type_node): Likewise. + (long_long_unsigned_type_node): Likewise. + * tree.c (integer_types): New variable. + (init_obstacks): Register it as a root. + +Sat Mar 18 14:38:00 2000 Jason Eckhardt + + * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as + NEXT_INSN. Update last insn in chain. + +2000-03-17 Jason Merrill + + * dwarf2out.c (dwarf2out_decl): Don't emit anything for types + with TYPE_DECL_SUPPRESS_DEBUG set. + +2000-03-18 Richard Henderson + + * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value. + +2000-03-18 Richard Henderson + + * i386.c (call_insn_operand): Always allow SYMBOL_REF, + care for HALF_PIC_P. + (expander_call_insn_operand): Remove. + (ix86_expand_epilogue): New arg `emit_return' to control return insn. + * i386.h (PREDICATE_CODES): Update. + * i386.md (all call expanders): Remove predicates, remove special + handling for half-pic. + (*call_1, *call_value_1): Handle SIBLING_CALL_P insns. + (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove. + (sibcall_epilogue): New. + +2000-03-17 Richard Henderson + + * rtlanal.c (single_set): Reject if the parallel has anything + except SET or USE or CLOBBER. + +2000-03-17 Jeff Law + Richard Henderson + + * Makefile.in (OBJS): Add sibcall.o. + (sibcall.o): New. + * sibcall.c: New file. + * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default. + (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New. + (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'. + Emit sibcall patterns when requested. Update all callers. + (expand_call): Generate CALL_PLACEHOLDER insns when tail call + elimination seems feasable. + * final.c (leaf_function_p): Sibling calls don't discount being + a leaf function. + * flow.c (HAVE_sibcall_epilogue): Provide default. + (find_basic_blocks_1): Sibling calls don't throw. + (make_edges): Make edge from sibling call to EXIT. + (propagate_block): Don't remove sibcall_epilogue insns. + * function.c (prologue, epilogue): Turn into varrays. Update all uses. + (sibcall_epilogue): New. + (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences. + (identify_blocks_1): Likewise. Break out from ... + (identify_blocks): ... here. + (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ... + (reorder_blocks): ... here. + (init_function_for_compilation): Zap prologue/epilogue as varrays. + (record_insns): Extend a varray instead of mallocing new memory. + (contains): Read a varray not array of ints. + (sibcall_epilogue_contains): New. + (thread_prologue_and_epilogue_insns): Emit and record + sibcall_epilogue patterns. + (init_function_once): Allocate prologue/epilogue varrays. + * genflags.c (gen_insn): Treat sibcall patterns as calls. + * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns. + Broken out from ... + (save_for_inline_nocopy): ... here. + (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. + Broken out from ... + (expand_inline_function): ... here. + (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL. + (subst_constants): Handle 'n' formats. + * jump.c (jump_optimize_minimal): New. + (jump_optimize_1): New arg `minimal'; update callers. Elide most + optimizations if it's set. + * rtl.c (copy_rtx): Do copy jump & call for insns. + * rtl.h (struct rtx_def): Document use of jump and call for insns. + (SIBLING_CALL_P): New. + (sibcall_use_t): New. + * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier. + Invoke optimize_sibling_and_tail_recursive_calls. + * tree.c (lang_safe_for_unsave): New. + (safe_for_unsave): New. + * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare. + + * alpha.h (FUNCTION_OK_FOR_SIBCALL): New. + * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New. + (*sibcall_osf_1, *sibcall_value_osf_1): New. + +2000-03-17 Mark Mitchell + + * objc/objc-act.c (encode_method_prototype): Pass types, not + PARM_DECLs, to int_size_in_bytes. + +Fri Mar 17 11:51:34 2000 Jim Wilson + + * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template. + + * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again. + +Fri Mar 17 08:09:14 2000 Richard Kenner + + * Clean up usages of TREE_INT_CST_LOW. + * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst. + * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: + Regenerated. + * c-tree.h (min_precision): Move declaration to here. + * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst. + (build_unary_op, add_pending_init): Use bit_position. + (pending_init_member, process_init_element): Likewise. + (really_start_incremental_init, push_init_level, pop_init_level): + Don't make copies of nodes or modify them in place, use consistent + types when tracking positions, and use tree routines computations. + (set_init_index, output_init_element): Likewise. + (output_pending_init_elements, process_init_element): Likewise. + * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp, + tree_low_cst and int_bit_position; also minor cleanup. + (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise. + (print_cst_octal): Precision is unsigned. + (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst. + * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT. + (simple_type_align_in_bits): Result is unsigned int. + Use tree_int_low_cst and host_integerp. + (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT. + (field_byte_offset): Result is HOST_WIDE_INT. + Change types of internal variables so alignments are unsigned int, + offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT. + Use host_integerp, tree_low_cst, and int_bit_position. + (add_bit_offset_attribute): Likewise. + (add_data_member_location_attribute): Use tree_cst_low. + (add_bound_info): Use host_integerp, integer_zerop, and integer_onep. + (add_bit_size_attribute): Use tree_low_cst. + (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise. + * dwarfout.c: Similar changes to dwarf2out.c. + * expr.c (expand_expr, case ARRAY_REF): Remove redundant code. + * genoutput.c (n_occurrences): Return -1 for null string. + (strip_whitespace): Accept null string and make into function. + (scan_operands): Reflect above changes. + * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst. + (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position. + * ssa.c (rename_registers): Add missing cast of arg to bzero. + * tree.c (int_size_in_bytes): Check for too big to represent. + (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns. + * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position): + New declarations. + (min_precision): Delete from here. + * varasm.c (decode_addr_const): Use host_integerp, bit_position, + and int_bit_position. + * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT. + (encode_method_def): Likewise. + (build_ivar_list_initializer): Use int_bit_position. + (generate_shared_structures): Convert size. + (encode_type, encode_complete_bitfield): Use integer_zerop. + (encode_bitfield): Use tree_low_cst and int_bit_position. + +2000-03-17 Michael Hayes + + * config/c4x/c4x.h (CPP_SPEC): Fix typo. + +2000-03-17 Martin v. Löwis + + * call.c (special_function_p): It is only malloc if it returns + Pmode. + +2000-03-17 Michael Hayes + + * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33. + (C33_FLAG, TARGET_C3X): Add macros. + (TARGET_SWITCHES): Add -m33 option. + * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33. + +2000-03-17 Michael Hayes + + * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add. + (PARALLEL_PACK_FLAG): Delete. + (TARGET_SWITCHES): Update. + (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG. + +Thu Mar 16 18:52:32 2000 Richard Kenner + + * fold-const.c (fold): Fix a few cases when the returned result + is not of the same type as the input. + +2000-03-16 Nick Clifton + + * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time + warning. + +2000-03-16 Kaveh R. Ghazi + + * libgcc2.h: Move prototypes above macros with the same name. + Wrap some function prototypes in the conditional which indicates + whether they are supported, i.e. "BITS_PER_UNIT == 8". + +2000-03-16 Richard Henderson + + * calls.c: Revert last two changes. + +2000-03-16 Bernd Schmidt + + * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that + has exponent 0 is a zero. + + * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that + HASH may already be nonzero. Add code/mode into hash value + immediately after repeat label. + (cselib_lookup): Don't leave the hash table in an inconsistent + state before a hash lookup operation. + +Thu Mar 16 17:03:10 MET 2000 Jan Hubicka + + * i386.md (all HI and QI mode non-move patterns): Conditionize + by TARGET_[HQ]IMODE_MATH. + * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, + x86_promote_qi_regs): Declare. + (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS, + TARGET_PROMOTE_QI_REGS): New macros. + (PROMOTE_MODE): New macro. + * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, + x86_promote_qi_regs): New global variables. + +Thu Mar 16 16:50:44 MET 2000 Jan Hubicka + + * calls.c (emit_library_call_value_1): Break out from ...; handle + VOIDmode function calls too. + (emit_library_call_value): ... here. + (emit_library_call): Implement by calling emit_library_call_value_1. + +Thu Mar 16 16:01:30 MET 2000 Jan Hubicka + + * calls.c (expand_call): Do sanity checking on arg_space_so_far. + Update arg_space_so_far on stack adjustments. + (emit_library_call, emit_library_call_value): Likewise; take into + account arg_space_so_far and pending_stack_adjust when calculcating + the boundary. + +Thu Mar 16 09:02:19 2000 Jason Eckhardt + + * flow.c: Move all basic block reordering code into its own file. + (create_basic_block): Externalize. + * bb-reorder.c: New file. Copy all basic block reordering code from + flow.c to this file. + (reorder_basic_blocks): Fix fencepost error in for-loop. + (reorder_basic_blocks): Remove braces from single statement for-loops. + * basic-block.h: Add declaration for create_basic_block. + * Makefile.in: Add rules for bb-reorder.o. + +2000-03-16 Neil Booth + + * cppinit.c (handle_option): Implement #unassert directive + as -A- command line option. + (print_help): Update. + * cpptexi.c: Update. + +Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson + + * md.texi (Standard Names): Document `jump'. + +2000-03-15 Jason Merrill + + * calls.c (emit_call_1): Nothrow functions can still have nonlocal + gotos. + +2000-03-15 Geoff Keating + + Merge changes from newppc-branch onto trunk. + + 2000-03-15 Geoff Keating + + * rs6000.c (toc_hash_table): Update for new hash table functions. + (toc_hash_function): Likewise. + (toc_hash_eq): Likewise. + (toc_hash_mark_entry): Likewise. + (toc_hash_mark_table): Likewise. + (output_toc): Likewise. + (rs6000_add_gc_roots): Likewise. + + 2000-03-15 Alexandre Oliva + + * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'... + (AR_FLAGS_FOR_TARGET): here. New macro. + + 2000-03-05 Clinton Popetz + + * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size, + fpmem_operand) Delete. + (xer_operand) New. + (rs6000_reg_names, alt_reg_names): Change fpmem to xer. + (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p. + (rs6000_save_machine_status, rs6000_restore_machine_status, + rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove + references to above variables. + (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P. + * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES, + DEBUG_REGISTER_NAMES): Chagne fpmem to xer. + (FPMEM_REGNO_P, FPMEM_REGNUM): Delete. + (XER_REGNO_P, XER_REGNO): New. + (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size. + (PREDICATE_CODES): Change fpmem_operand to xer_operand. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to + XER_REGNO_P. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, + REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS. + (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS. + + 2000-02-29 Franz Sirl + + * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, + TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here... + * rs6000.h: from here. + + * rs6000-protos.h (rs6000_select_section): Provide prototype. + (rs6000_select_rtx_section): Likewise. + (rs6000_encode_section_info): Likewise. + (sdata_section): Likewise. + (sdata2_section): Likewise. + (sbss_section): Likewise. + * sysv4.h (rs6000_select_section): Delete prototype. + (rs6000_select_rtx_section): Likewise. + (rs6000_encode_section_info): Likewise. + (sdata_section): Likewise. + (sdata2_section): Likewise. + (sbss_section): Likewise. + (REG_SAVE_AREA): Delete definition duplicated in rs6000.h. + + * sysv4.h: Delete various unnecessary #undef's and put a comment + on the remaining ones. + Change various comments according to coding standard. + + 2000-02-29 Clinton Popetz + + * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, + CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define. + (CR0_REGNO_P) Remove. + * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, + setup_incoming_varargs, mtcrf_operation, print_operand, + rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): + Use the above macros. + + 2000-02-24 Clinton Popetz + + * config/rs6000/rs6000.md: Added a new alternative for each + pattern that had a 'x' alternative but no 'y' alternative. + Added a new split for each of the above patterns. + + 2000-02-18 Geoff Keating + + * aix41.h (ASM_CPU_SPEC): Delete. + (CPP_CPU_SPEC): Delete. + + * aix.h (RS6000_OUTPUT_BASENAME): Define. + (ASM_OUTPUT_LABEL): Define. + (ASM_GLOBALIZE_LABEL): Define. + (STRIP_NAME_ENCODING): Define. + * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define. + (STRIP_NAME_ENCODING): Don't define. + (ASM_OUTPUT_LABEL): Don't define. + (ASM_GLOBALIZE_LABEL): Don't define. + * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output + names, and ASM_OUTPUT_LABEL to output labels, rather than + asm_fprintf. + (ASM_OUTPUT_LABEL): Define. + (ASM_OUTPUT_INT): Use assemble_name. + (ASM_OUTPUT_DWARF_ADDR): Use assemble_name. + (STRIP_NAME_ENCODING): Don't undefine first. + (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for + ELF. + (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels + specified with 'asm' even with -fleading-underscore. + * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX. + (output_epilog): Likewise. + (output_toc): Likewise. + * tramp.asm: Handle -fleading-underscore correctly. + + * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and + -mminimal-toc. + (nonlocal_goto_receiver): Delete. + * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete. + + * rs6000.h (ASM_OUTPUT_DEF): Don't define. + (SET_ASM_OP): Define. + * sysv4.h (ASM_OUTPUT_DEF): Don't undefine. + + * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define. + (ASM_LONG): Define. + + * rs6000.c (rs6000_dll_import_ref): Delete, not used. + * rs6000-protos.h (rs6000_dll_import_ref): Delete. + + * rs6000.h: Add 'u' to more constants. + + 2000-02-18 David Edelsohn + + * rs6000.md (mfcr+shift): Delete PowerPC64 version. + + 2000-02-15 David Edelsohn + + * rs6000.c (reg_or_u_cint_operand): New function. + (logical_operand): Handle 64-bit hosts. + (logical_u_operand): New function. + (non_logical_cint_operand): Handle 64-bit hosts. + (non_logical_u_cint_operand): New function. + * rs6000.h (DATA_SECTION_ASM_OP): Add tab. + (PREDICATE_CODES): Define new functions. + * rs6000-protos.h: Declare new functions. + * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits. + (movdi_64): Bracket code intended for 64-bit hosts. Create + CONST_DOUBLE for 32-bit values. + (scc insns): Generate DImode compares. + (mfcr insns): Create DImode versions. + (sge matchers): New patterns. + + 2000-02-15 Gabriel Paubert + + * rs6000.md: Correct instructions length attributes and + constraints on unsigned compare instructions. + (*ne0): Disable for PowerPC64. + + 2000-02-11 Geoff Keating + + * rs6000.c (output_function_profiler): Use .long for a 32-bit + quantity, fix profile1.C test failure under -fPIC. + + * rs6000.c: Add 'u' to many constants to suppress warnings. + (constant_pool_expr_1): Make static. + (rs6000_emit_eh_toc_restore): Remove unused 'r2'. + * rs6000.h: Add 'u' to many constants to suppress warnings. + + * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX + for the start of the TOC, instead of LCTOC..0. + * aix.h (toc_section): Use LCTOC..1 under AIX for the start + of the TOC. + * rs6000.md (load_toc_aix_si): Use LCTOC..1. + (load_toc_aix_di): Use LCTOC..1. + + * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function. + * rs6000.c (rs6000_legitimize_address): New function from + LEGITIMIZE_ADDRESS. Only use create_TOC_reference on + symbols in the constant pool that really are TOC references. + (print_operand_address): For ELF, write TOC offsets under + -fPIC as subtractions in the insn. + (output_toc): For ELF, define symbols in TOC as normal labels, + to match RTL. + (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx. + * rs6000-protos.h (rs6000_legitimize_address): Prototype. + (create_TOC_reference): Prototype only when RTX_CODE is defined. + * rs6000.md (movsi): Only use create_TOC_reference on + symbols in the constant pool that really are TOC references. + + * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define. + * rs6000.c (rs6000_reorg): Delete. + * rs6000-protos.h (rs6000_reorg): Delete. + + 2000-02-09 Geoff Keating + + * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro. + + * aix.h (SETUP_FRAME_ADDRESSES): Define. + * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable. + [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function. + [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function. + * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore, + rs6000_aix_emit_builtin_unwind_init. + * rs6000.md (eh_epilogue) [TARGET_AIX]: Call + rs6000_emit_eh_toc_restore on AIX. + (return_eh_si): Use r2. + (return_eh_di): Use r2. + + * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH, + since we're breaking binary compatibility anyway. + + 2000-02-09 Clinton Popetz + + * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC, + constant_pool_expr_p): Declare them. + (constant_pool_expr_p): Declare it. + * config/rs6000/rs6000.c (toc_label_name): Define. + (rs6000_override_options): Set toc_label_name. + (input_operand): Allow any TOC_RELATIVE_EXPR_P. + (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1, + uses_TOC): New functions. + (print_operand): Delete old '*' case. + (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P, + and strip off rtl for TOC before calling output_addr_const. + (rs6000_emit_load_toc_table): Use toc_label_name. + * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog + the default. + (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete. + (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros. + (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P. + (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs + into explicit TOC_REGISTER offsets. + (TOC_REGISTER): New macro. + * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under + TARGET_TOC to reference TOC_REGISTER. + (load_toc_v4_PIC_1b): Add 4 to offset for toc reload. + * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call + uses_TOC before emitting label references. + + 2000-02-05 Geoff Keating + + * rs6000.md (stack_tie): Fix warning. + + * eabi-ctors.c: Use 'asm' names for the start/end variables, + to handle -fleading-underscore. + * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U. + (USER_LABEL_PREFIX): New macro. + (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L. + (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. + * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and + call-linux can use the same multilibs. + * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv + and call-linux multilibs. Do multilib with -fleading-underscore. + (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change. + (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions + to call-aix. + + * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that + have MASK_SOFT_FLOAT set. + (CPP_FLOAT_DEFAULT_SPEC): New macro. + (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of + CPP_FLOAT_DEFAULT_SPEC. + + * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'. + * rs6000.md: Whitespace change. + * sysv4.h (LINK_TARGET_SPEC): Whitespace change. + * sysv4le.h (LINK_TARGET_SPEC): Whitespace change. + + 2000-02-05 Geoff Keating + + * rs6000.md (eh_epilogue): New expander. + (eh_reg_restore): New expand/split/insn combination. + (return_eh_si): New insn. + (return_eh_di): New insn. + + * eabi-ci.asm: Put a label at the start of the .eh_frame section. + * eabi-cn.asm: Put a zero at the end of the .eh_frame section. + * eabi-ctors.c (__do_global_ctors): Register this object's + frame. Clean up. Call atexit() after the constructors. + (__do_global_dtors): Deregister this object's frame. Clean up. + Allow for recursive calls to exit(). + * rs6000.c (fixuplabelno): New variable. + * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not + TARGET_RELOCATABLE, it slows down exec() under linux. + (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE. + + * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro. + (ASM_OUTPUT_DWARF_DELTA_VAR): New macro. + (ASM_OUTPUT_DWARF_DELTA2): New macro. + (ASM_OUTPUT_DWARF_DELTA4): New macro. + (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro. + (ASM_OUTPUT_DWARF_ADDR): New macro. + (ASM_OUTPUT_DWARF_DATA4): New macro. + (ASM_OUTPUT_DWARF_DATA2): New macro. + (ASM_OUTPUT_DWARF_OFFSET4): New macro. + (ASM_OUTPUT_DWARF_OFFSET): New macro. + (UNALIGNED_INT_ASM_OP): New macro, fake definition. + + 2000-02-03 Geoff Keating + + * rs6000.c (rs6000_sr_alias_set): New variable. + (rs6000_override_options): Initialize rs6000_sr_alias_set. + (rs6000_emit_stack_tie): New function. + (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P + in a way that dwarf2out can understand. + (rs6000_frame_related): New function. + (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify + RTX_FRAME_RELATED_P in a way that dwarf2out can understand. + Use rs6000_emit_stack_tie when needed. + (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set + RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed. + * rs6000.md (stack_tie): New insn. + (return_internal_si): Allow return value to be in the count + register. + (return_internal_di): Likewise. + + * rs6000.c (output_mi_thunk): Remove unused variable `sp'. + + 2000-02-03 Geoff Keating + + * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h. + + 2000-01-31 Geoff Keating + + * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro. + + * rs6000.md (stmw): Use the right POWER opcode. + (lmw): Likewise. + + 2000-01-31 Kaveh R. Ghazi + + * rs6000-protos.h: New file. + + * rs6000.c: Include tm_p.h. Fix compile time warnings. + + * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time + warnings. + + * sysv4.h: Likewise. + + 2000-01-28 Geoff Keating + + * ../../configure.in: Delete powerpcle-*-winnt* + and powerpcle-*-pe|powerpcle-*-cygwin*. + * ../../configure: Regenerated. + * cygwin.h: Delete. + * rs6000.h (OBJECT_WINDOWS_NT): Delete. + (TARGET_WINDOWS_NT): Delete. + (ABI_NT): Delete. + (CALL_NT_DLLIMPORT): Delete. + Delete NT-specific code. + * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code. + * win-nt.h: Delete. + * t-winnt: Delete. + * nt-ci.asm: Delete. + * nt-cn.asm: Delete. + * ntstack.asm: Delete. + + 2000-01-27 Franz Sirl + + * rs6000.h (SELECT_RTX_SECTION): Move to aix.h. + (ASM_FILE_START): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (ASM_OUTPUT_LABELREF): Likewise. + (ASM_OUTPUT_SKIP): Likewise. + (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + (ASM_GENERATE_INTERNAL_LABEL): Likewise. + (ASM_OUTPUT_CASE_LABEL): Likewise. + (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + (ASM_OUTPUT_ASCII): Likewise. + + 2000-01-27 Clinton Popetz + + * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and + reload_toc_labelno for non-prologue TOC reloads. Also, don't + increment rs6000_pic_labelno here. + (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table, + and increment rs6000_pic_labelno here. + + 2000-01-24 Geoffrey Keating + + * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)])) + rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register + allocation knows (reg) is dead before the insn. + + 2000-01-21 Geoff Keating + + * rs6000.md (movsi_to_cr): Correct typo in output template. + + 2000-01-19 Geoffrey Keating + + * rs6000.c (rs6000_pic_labelno): Always define. + (rs6000_pic_func_labelno): Delete. + (lmw_operation): Check for a zero base register, + which doesn't mean what we want. + (stmw_operation): New function. + (print_operand): Define new 'l' modifier. + (rs6000_stack_info): We must save all 64 bits of the registers + if TARGET_POWERPC64. + (rs6000_output_load_toc_table): Delete. + (rs6000_emit_load_toc_table): New function. + (rs6000_allocate_stack_space): Delete. + (rs6000_emit_allocate_stack): New function. + (rs6000_emit_prologue): New function. + (output_prolog): Use rs6000_emit_prologue. + (rs6000_emit_epilogue): Change a few variable names to be + more accurate. Restore all 64 bits of the registers if + TARGET_POWERPC64. Only restore the FP registers which were used + if they are being saved/restored one-at-a-time. + (output_mi_thunk): Delete inefficient code generation. + (output_function_profiler): Don't use rs6000_output_load_toc_table. + * rs6000.h: Declare rs6000_emit_load_toc_table, + rs6000_allocate_stack_space, stmw_operation. Don't declare + rs6000_output_load_toc_table. + * rs6000.md (elf_high): Allow register 0, but discourage it + heavily. + (elf_low): Support loading into register 0. + (load_toc_aix_si): New pattern. + (load_toc_aix_di): New pattern. + (load_toc_v4_pic_si): New pattern. + (load_toc_v4_pic_di): New pattern. + (load_toc_v4_PIC_1): New pattern. + (load_toc_v4_PIC_1b): New pattern. + (load_toc_v4_PIC_2): New pattern. + (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table. + (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table. + (prologue): New expander. + (movesi_from_cr): New pattern. + (stmw): New pattern. + (save_fpregs_si): New pattern. + (save_fpregs_di): New pattern. + + 2000-01-19 Geoff Keating + + * rs6000.md (movsi): Don't use force_reg when no_new_pseudos. + (movdi): Likewise. + (movhi): Likewise. + (movqi): Likewise. + + 2000-01-19 Geoff Keating + + * rs6000.md (movsi_got): 'unspec 8' returns a SImode result, + at present. + (movsi_got_internal): Likewise. + (movsi_got_internal+1): Likewise. + (set_sp): 'unspec 7' does a SImode clobber. + + 2000-01-19 Geoff Keating + + * rs6000.md (floatsidf2): Don't use the fpmem "register", just + allocate a stack temporary. + (floatsidf2_internal): Likewise. + (floatsidf2_internal+1): Likewise. Don't do bizzare hacks + with unspec. + (floatunssidf2): Don't use the fpmem "register", just + allocate a stack temporary. + (floatunssidf2_internal): Likewise. + (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks + with unspec. + (floatsidf2_loadaddr): Delete. + (floatsidf2_store1): Delete. + (floatsidf2_store2): Delete. + (floatsidf2_load): Delete. + (fix_truncdfsi2): Don't use the fpmem "register", just + allocate a stack temporary. + (fix_truncdfsi2_internal_si): Delete. + (fix_truncdfsi2_internal_di): Delete. + (fix_truncdfsi2_internal): New insn. + (fix_truncdfsi2_internal+1): Don't use the fpmem "register". + (fix_truncdfsi2_store): Delete. + (fix_truncdfsi2_load): Delete. + (fctiwz): Produce gen_fctiwz. + + 2000-01-19 Geoffrey Keating + + * eabi.h (INVOKE__main): Define. + * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN + specially. + (rs6000_emit_prologue): Likewise. + * rs6000.h (struct rs6000_stack): Don't keep track of whether + this is the main program. + + 2000-01-19 Geoff Keating + + * rs6000.c (rs6000_va_arg): Delete some unused variables. + + 2000-01-19 Geoff Keating + + * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments + goes after the argument. + + 2000-01-12 Geoff Keating + + * rs6000.md: Document 'unspec' values used. + (epilogue): New expander. + (movesi_to_cr_one): New expander. + (movesi_to_cr and following): New pattern. + (lmw): New pattern. + (return_internal_si): New pattern. + (return_internal_di): New pattern. + (return_and_restore_fpregs_si): New pattern. + (return_and_restore_fpregs_di): New pattern. + * rs6000.h: Declare new functions. + * rs6000.c (rs6000_stack_info): Use current_function_is_leaf + rather than rs6000_calls_p. + (rs6000_makes_calls): Delete. + (lmw_operation): New function. + (mtcrf_operation): New function. + (rs6000_emit_epilogue): New function. + (output_epilog): Call rs6000_emit_epilogue and final if + !TARGET_SCHED_PROLOG, instead of writing text unconditionally. + + 2000-01-12 Geoff Keating + + * aix43.h (SUBSUBTARGET_SWITCHES): Document switches. + * aix41.h (SUBSUBTARGET_SWITCHES): Document switches. + * aix.h (SUBTARGET_SWITCHES): Document switches. + * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make + sched-prolog and sched-epilog the same. Document all the + switches. + (TARGET_OPTIONS): No longer allow -mdebug-. + + 2000-01-12 Geoff Keating + + * rs6000.h (ASM_FILE_END): Move to aix.h. + (EXTRA_SECTIONS): Move to aix.h. + (READONLY_DATA_SECTION): Move to aix.h. + (EXTRA_SECTION_FUNCTIONS): Move to aix.h. + (SELECT_SECTION): Move to aix.h. + (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h. + (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM. + (LINK_REGISTER_REGNUM): New definition. + (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM. + (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both + AIX and SVR4. + * sysv4.h: Delete the code between the inclusion of rs6000.h + and svr4.h. + (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h. + (FP_ARG_MAX_REG): Move generic definition to rs6000.h. + (RS6000_REG_SAVE): Move generic definition to rs6000.h. + (RS6000_SAVE_AREA): Move generic definition to rs6000.h. + * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode. + (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si. + (fix_truncdfsi2_internal_di): New pattern. + (fix_truncdfsi2_store): The second arg here is Pmode too. + (fix_truncdfsi2_load): The second arg here is Pmode too. + (tablejumpdi): Now that switch tables hold only SImode values, + gcc needs to know how to add them to the pc which is DImode. + * rs6000.c (rs6000_stack_info): Use symbolic name for + LINK_REGISTER_REGNUM. + (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used. + (output_toc): Delete unused variables s1 and s2. + (output_ascii): Use fputs not fprintf on a variable string. + + 2000-01-07 David Edelsohn + + * rs6000.c (processor_target_table): Add power3 as alias for 630. + * aix43.h: Revert Aug 2 change. + (HAS_INIT_SECTION): Define, not visible yet. + (LD_INIT_SWITCH): Define, not visible yet. + * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. + + 2000-01-04 Joel Sherrill (joel@OARcorp.com> + + * config/rs6000/rtems.h: Include config/rtems.h. + + 2000-01-04 David Edelsohn + + * rs6000.h (HANDLE_PRAGMA_PACK): Define. + (SLOW_UNALIGNED_ACCESS): Define. + (CASE_VECTOR_MODE): Always use 32-bit offsets. + (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. + (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op. + (toc_section): Likewise and .toc pseudo-op. + (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in + 64-bit mode. + (TEXT_SECTION_ASM_OP): Likewise. + (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use + 32-bit offsets. + + 1999-12-17 Jakub Jelinek + + * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure + UNITS_PER_WORD and BITS_PER_WORD are compile time constants when + compiling libgcc2. + + 2000-01-06 Franz Sirl + + * rs6000.h: Move more stuff from here... + * aix.h: to here. + * sysv4.h: Cleanup accordingly. + * netware.h: Likewise + + 2000-01-05 Franz Sirl + + * rs6000.h: Continue cleanup. + * aix.h: Likewise. + * lynx.h: Likewise. + * netware.h: Likewise. + * sol2.h: Likewise. + * sysv4.h: Likewise. + * win-nt.h: Likewise. + + * rs6000.h (TARGET_SWITCHES): Add descriptions. + (TARGET_OPTIONS): Likewise. + + * sysv4.h (SUBTARGET_SWITCHES): Add descriptions. + (SUBTARGET_OPTIONS): Likewise. + + * rs6000.md: Fix compile time warnings. + + 2000-01-04 Geoff Keating + + vxworks patches from the Cygnus tree originally by + Michael Meissner and Vladimir Makarov + . + * sysv4.h (SUBTARGET_SWITCHES): Add vxworks. + (ENDFILE_SPEC): Likewise. + (LIB_VXWORKS_SPEC): New macro. + (STARTFILE_VXWORKS_SPEC): New macro. + (ENDFILE_VXWORKS_SPEC): New macro. + (LINK_START_VXWORKS_SPEC): New macro. + (LINK_OS_VXWORKS_SPEC): New macro. + (CPP_OS_VXWORKS_SPEC): New macro. + (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs. + * vxppc.h: Rewrite to use proper configuration method. + * vxppcle.h: New file. + * ../../configure.in: Add powerpcle-wrs-vxworks*. + * ../../configure: Rebuilt. + + 2000-01-04 Geoff Keating + + Lots of changes to rs6000.h, sysv4.h, aix.h, + aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h, + with the aim that rs6000.h is the first header + included and the others override it. + * aix.h: New file. + + * x-aix41-gld: Remove. + * x-aix43: Remove. + * x-aix41: Remove target-specific switches, and don't specify + -Wl,-bbigtoc as we don't need it any more. + * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above. + Use t-aix43 for AIX 4.3 and above. + * ../../configure: Regenerated. + + * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling + options, that don't do anything yet. + (MASK_SCHED_PROLOG): New macro. + (MASK_SCHED_EPILOG): New macro. + (TARGET_SCHED_PROLOG): New macro. + (TARGET_SCHED_EPILOG): New macro. + + 2000-01-04 Geoff Keating + + * rs6000.c: Correct comment, the `minimal' TOCs are actually + one per translation unit, not one per function. + (output_toc): Also do duplicate constant elimination + for per-translation-unit TOCs. + + * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add + a comment explaining _exactly_ when this pattern gets used. + (builtin_setjmp_receiver): New pattern for better clarity. + (init_v4_pic): Move it into a section dealing with TOC registers. + + 1999-12-30 Geoff Keating + + * rs6000.c (toc_hash_table): New variable. + (rs6000_hash_constant): New function. + (toc_hash_function): New function. + (toc_hash_eq): New function. + (toc_hash_mark_entry): New function. + (toc_hash_mark_table): New function. + (output_toc): Don't output duplicate TOC entries in + a single file. + (rs6000_add_gc_roots): Add the hash table as a GC root. + * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43, + where they clearly shouldn't be. This may need to be fixed + later when there is a GNU ar for AIX. + * x-aix43: Don't define CLIB or AR_FOR_TARGET. + Don't define BOOT_LDFLAGS as it is now not necessary. + + 1999-12-29 Geoff Keating + + * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *' + for va_list on AIX. Use unsigned_char_type_node rather than + constructing our own version on svr4. + + 1999-12-17 Geoff Keating + + * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment, + since patently it's not. + + 1999-12-08 Geoff Keating + + * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into + define_expand/define_insn pair, and handle restore of the + SVR4 -fpic register. + +Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com) + + * acconfig.h (HAVE_GAS_WEAK): New define. + * configure.in (assembler weak support): Check for .weak support. + * config.in, configure: Rebuilt. + * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if + HAVE_GAS_WEAK is defined. + +2000-03-15 Nick Clifton + + * config/arm/arm.c (arm_output_epilogue): Do not pass %c to + asm_fprintf(). + +2000-03-15 Zack Weinberg + + * cppfiles.c (open_include_file): New function. + (find_include_file, cpp_read_file): Use it. + +2000-03-15 Jason Merrill + + * cpphash.c (dump_hash_helper): Take the slot, not the element. + +Wed Mar 15 14:28:54 2000 Jason Eckhardt + + * flow.c (verify_flow_info): Check for unconditional return. + +Wed Mar 15 11:34:27 2000 Jim Wilson + + * config/ia64/ia64.md (restore_stack_nonlocal): New. + * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop. + (__ia64_restore_stack_nonlocal): New. + * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal. + +2000-03-15 Alexandre Oliva + + * cpphash.c (collect_formal_parameters): Do not complain about + parameter names that just start with `__VA_ARGS__'. + +Wed Mar 15 13:26:58 MET 2000 Jan Hubicka + + * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and + movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines. + * i386.c (pentiumpro_cost): Set mul cost to 4. + (x86_use_movx): Set for PPro. + +Wed Mar 15 13:07:05 MET 2000 Jan Hubicka + + * i386.md (ix86_compute_frame_size): stack_alignment_needed is + STACK_BOUNDARY for empty frames now. + +2000-03-14 Mark Mitchell + + * stor-layout.c (layout_union): Remove. + (layout_union_field): New function, split out from layout_union. + (finish_union_layout): Likewise. + (layout_field): Handle unions by calling layout_union_field. + (finish_record_layout): Handle unions. + (layout_type): Combine RECORD_TYPE, UNION_TYPE, and + QUAL_UNION_TYPE handling. + +Wed Feb 23 13:00:06 CET 2000 Jan Hubicka + + * flow.c (fixup_reorder_chain): Avoid double labels in the basic block; + end of basic block is jump_insn, not barrier; use create_basic_block + instead of creating basic block by hand. + +2000-03-14 Jason Eckhardt + + * flow.c (reorder_basic_blocks): Account for barriers when writing + over NEXT_INSN (last_bb->end). + (verify_flow_info): Add check for missing barriers. + +2000-03-14 Greg McGary + + * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED. + * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED. + * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__, + __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__, + __unbounded, __unbounded__): New keywords. + * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens. + * c-parse.y, c-parse.c, c-parse.h: Regenerate. + * objc/objc-parse.y, objc/objc-parse.c: Regenerate. + +2000-03-14 Bernd Schmidt + + * cselib.h: New file. + * alias.c: Include "cselib.h". + (fixed_scalar_and_varying_struct_p): Accept the addresses of the + MEMs as two new arguments. + (get_addr): New static function. + (find_base_term): Handle VALUEs. + (memrefs_conflict_p): Likewise. + (true_dependence): Call get_addr on the addresses. + Call fixed_scalar_and_varying_struct_p with addresses that have been + passed through get_addr and canon_rtx. + (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency + with true_dependence. + Call get_addr on the addresses; don't call canon_rtx on the MEMs. + * loop.c: Include "cselib.h". + (load_mems): Process extended basic block that enters the loop with + cselib. Use that information to change initialization of the shadow + register so that a constant equivalence is seen by later passes. + * reload1.c: Include "cselib.h". + (reload_cse_invalidate_regno): Delete function. + (reload_cse_mem_conflict_p): Likewise. + (reload_cse_invalidate_mem): Likewise. + (reload_cse_invalidate_rtx): Likewise. + (reload_cse_regno_equal_p): Likewise. + (reload_cse_check_clobber): Likewise. + (reload_cse_record_set): Likewise. + (reg_values): Delete static variable. + (invalidate_regno_rtx): Likewise. + (reload_cse_delete_noop_set): New static function. + (reload_cse_simplify): New static function, broken out of + reload_cse_regs_1. + (reload_cse_noop_set_p): Delete unused argument INSN. + Just call rtx_equal_for_cselib_p on set source and destination. + (reload_cse_regs_1): Break out some code into reload_cse_simplify and + reload_cse_delete_noop_set. Delete code to keep track of values; use + cselib functions instead. Delete code to push/pop obstacks. + (reload_cse_simplify_set): Use cselib to find equivalent values. + Delete code to push/pop obstacks. + (reload_cse_simplify_operands): Likewise. + * rtl.def (VALUE): New rtx code. + * rtl.h (union rtunion_def): New elt rt_cselib. + (X0CSELIB, CSELIB_VAL_PTR): New macros. + * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h". + (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table, + unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values, + discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p, + hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash, + cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno, + cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx, + cselib_record_set, cselib_record_sets): New static functions. + (cselib_lookup, cselib_update_varray_sizes, cselib_init, + cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p, + references_value_p): New functions. + (MAX_USELESS_VALUES, REG_VALUES): New macros. + (table, cselib_current_insn, next_unknown_value, cselib_nregs, + n_useless_values, reg_values, callmem, cselib_obstack, + cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists): + New static variables. + * varray.h (union varray_data_tag): New elt te. + (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros. + * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update + dependencies. + +2000-03-14 Nick Clifton + + * gcc.c (do_spec_1): Catch the case where %* is used in a + substitution pattern, but it has not been initialized. + Issue a meaningful error message if an unrecognized operator + is encountered in a spec string. + +2000-03-14 Richard Earnshaw + + * function.c (prepare_function_start): Correctly initialize + cfun->stack_alignment_needed. + +2000-03-14 Zack Weinberg + + * cppfiles.c (find_include_file): Don't assume nshort is a + substring of name. + +Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com) + + * configure.in (hppa configurations): Add pa32-regs.h to the + list of tm files as appropriate. + * configure: Rebuilt. + * pa.c (compute_frame_size): Remove explicit knowledge about FP + register numbering. + (hppa_expand_prologue, hppa_expand_epilogue): Likewise. + (fmpyaddoperands, fmpysuboperands): Likewise. + * pa.h: Remove various definitions which depend on knowing + how registers are numbered. + * pa32-regs.h: New file with PA32 register numbering specific + definitions. + +2000-03-14 Richard Henderson + + * regmove.c (combine_stack_adjustments): New. + (stack_memref_p, single_set_for_csa): New. + (free_csa_memlist, record_one_stack_memref): New. + (try_apply_stack_adjustment): New. + (combine_stack_adjustments_for_block): New. + * rtl.h (combine_stack_adjustments): Declare. + * toplev.c (rest_of_compilation): Call it. + + * i386.md: Revert 2000-01-16 change. + +2000-03-14 Martin v. Löwis + + * gccbug.in: Add web category, gcc specific classes. + +2000-03-14 Nathan Sidwell + + * stor-layout.c (finalize_record_size): Fix typo. + +2000-03-14 Stan Shebs + + * c-typeck.c (c_alignof): Error on incomplete types. + * extend.texi (Alignment): Document this. + +2000-03-13 Zack Weinberg + + * cppfiles.c: Include mkdeps.h. + (find_include_file, read_include_file): Remove _cpp_ prefix + from name, make static. + (_cpp_execute_include): New function, broken out of + do_include. + + * cpplib.c: Don't include mkdeps.h. + (struct directive): Remove type field. Reorder entries. The + function takes only one argument. + (struct if_stack): Make type field an int. + (directive_table): Rename to dtable. Generate it, the + prototypes of the directive handlers, and the enum for the + directive numbers, from a template macro. + (do_ifndef, do_include_next, do_import): New functions. + (do_define, do_include, do_endif, do_ifdef, do_if, do_else, + do_undef, do_line, do_elif, do_error, do_pragma, do_warning, + do_ident, do_assert, do_unassert, do_sccs): Take only one + argument. + (do_sccs): Define always, but alter behavior based on + SCCS_DIRECTIVE. + (_cpp_handle_directive, consider_directive_while_skipping): + Restructure for new directive table layout. + + (pass_thru_directive): Take a directive number, not a pointer + to a struct directive. + (parse_include): New function, broken out of do_include. + (do_include, do_import, do_include_next): Use parse_include + and _cpp_execute_include. + (do_elif, do_else): Test for T_ELSE specifically when checking + for #elif/#else after #else. + (parse_ifdef): New function, broken out of do_ifdef. + (validate_else): Expect a name arg without a leading #. + (if_directive_name): Delete. + (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call + directive handlers with only one argument. + + * cpphash.h: Update prototypes. + (enum node_type): Remove entries for directives. + * Makefile.in: Update dependencies. + + * cpphash.c (dump_hash_helper): Only dump nodes of type + T_MACRO. Emit a newline after each definition. + +2000-03-14 Martin v. Löwis + + * gccbug.in: New file. + * configure.in (all_outputs): Add gccbug. + * Makefile.in (install-common): Install gccbug. + (GCCBUG_INSTALL_NAME): New variable. + * configure: Rebuilt. + +2000-03-13 Jason Merrill + + * function.c (put_var_into_stack): Use type_for_mode to calculate + part_type. Use MEM_SET_IN_STRUCT_P. + * expr.c (store_field): Handle CONCAT. + (store_constructor): Use fields_length. + * tree.c (fields_length): New fn. + * tree.h: Declare it. + +2000-03-13 Zack Weinberg + + * Makefile.in (LIBCPP_OBJS): Add cpplex.o. + (cpplex.o): New target. + * po/POTFILES.in: Add cpplex.c. + + * cpplex.c (_cpp_grow_token_buffer, null_cleanup, + cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer, + cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer, + skip_block_comment, skip_line_comment, skip_comment, + copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line, + _cpp_parse_name, skip_string, parse_string, + _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token, + _cpp_get_directive_token, find_position, + _cpp_read_and_prescan, _cpp_init_input_buffer): Move here. + (maybe_macroexpand, _cpp_lex_token): New functions. + + * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark, + parse_goto_mark): Delete. + (_cpp_handle_eof): New function. + (_cpp_handle_directive): Rename from handle_directive. + (_cpp_output_line_command): Rename from output_line_command. + (do_if, do_elif): Call _cpp_parse_expr directly. + * cppfiles.c (_cpp_read_include_file): Don't call + init_input_buffer here. + * cpphash.c (quote_string): Move here, rename _cpp_quote_string. + * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive + here; pop the token_buffer and skip the rest of the line here. + * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer + here. + + * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P): + Define here. + (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK, + CPP_GOTO_MARK): New macros. + (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line, + _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token, + _cpp_read_and_prescan, _cpp_init_input_buffer, + _cpp_grow_token_buffer, _cpp_get_directive_token, + _cpp_handle_directive, _cpp_handle_eof, + _cpp_output_line_command): Prototype them here. + * cpplib.h (enum cpp_token): Add CPP_MACRO. + (CPP_RESERVE, get_directive_token, cpp_grow_buffer, + quote_string, output_line_command): Remove. + +2000-03-13 Bernd Schmidt + + * stmt.c (expand_end_case): RANGE may be signed, and when checking + whether it is too large we must also verify that it isn't negative. + +2000-03-13 Jakub Jelinek + + * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0. + (movsi_zero_liveg0): Remove. + (movsf_insn_novis_liveg0): Remove. + (negsi2): Remove. + (negsi2_not_liveg0): Rename to negsi2. + (one_cmplsi2): Remove. + (one_cmplsi2_not_liveg0): Rename to one_cmplsi2. + (one_cmplsi2_liveg0): Remove. + * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE, + MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove. + (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if. + (PREDICATE_CODES): Remove zero_operand. + * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and + TARGET_BROKEN_SAVERESTORE. + (zero_operand): Remove. + * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0, + -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore + options. + (SUBTARGET_OVERRIDE_OPTIONS): Remove. + * config/sparc/linux-aout.h (TARGET_LIVE_G0, + TARGET_BROKEN_SAVERESTORE): Remove. + * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): + Remove. + * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): + Remove. + * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): + Remove. + + * config/sparc/sparc.md (return_df_no_fpu): New pattern. + +2000-03-13 Zack Weinberg + + * cpplib.c (do_pragma_implementation): Fix off-by-one error + truncating a string. Don't assume tokens are nul terminated. + Problem noted by Andreas Jaeger + +2000-03-13 Jason Merrill + + * dwarf2out.c (add_name_and_src_coords_attributes): Only add + DW_AT_MIPS_linkage_name for TREE_PUBLIC decls. + (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline. + +2000-03-13 Richard Earnshaw + + * stor-layout.c (new_record_layout_info): Fix typo inside ifdef + STRUCTURE_SIZE_BOUNDARY. + +2000-03-13 Mark Mitchell + + * tree.h (record_layout_info_s): New structure. + (record_layout_info): New type. + (new_record_layout_info): New function. + (layout_field): Likewise. + (finish_record_layout): Likewise. + * stor-layout.c (layout_record): Remove. + (new_record_layout_info): New function. + (layout_field): New function, broken out from layout_record. + (finalize_record_size): Likewise. + (compute_record_mode): Likewise. + (finalize_type_size): New function, broken out from layout_type. + (finish_record_layout): Likewise. + (layout_type): Use them. + +2000-03-12 Zack Weinberg + + * cpphash.c: Don't include version.h. + (special_symbol) [case T_VERSION]: Look for the string in + hp->value.cpval; don't use version_string. + * cppinit.c (initialize_builtins): Set hp->value.cpval for + __VERSION__ to version_string. + * Makefile.in (cpphash.o): Update deps. + +2000-03-12 Zack Weinberg + + Convert cpplib to use libiberty/hashtab.c. + + * cpplib.h (struct cpp_reader): Make hashtab and + all_include_files of type 'struct htab *'. Delete HASHSIZE + and ALL_INCLUDE_HASHSIZE macros. + + * cpphash.h: Update prototypes. + (struct hashnode): Remove next, prev, and bucket_hdr members. + Make length a size_t. Add hash member. + (struct ihash): Remove next member. Add hash member. Make + name a flexible array member. + + * cppfiles.c: Include hashtab.h. + (include_hash): Delete. + (IHASHSIZE): New macro. + (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions. + (cpp_included): Do the hash lookup here. + (_cpp_find_include_file): Rewrite. + (cpp_read_file): Put the "fake" hash entry into the hash + table. Honor the control_macro, if it turns out we've seen + the file before. Don't push the buffer here. + (_cpp_read_include_file): Push the buffer here. + (OMODES): New macro. Use it whenever we call open(2). + + * cpphash.c: Include hashtab.h. + (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper, + _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode, + _cpp_lookup_slot): New functions. + (HASHSIZE): new macro. + (hashf, _cpp_install, _cpp_delete_macro): Delete. + (_cpp_lookup): Use hashtab.h routines. + + * cppinit.c: Include hashtab.h. + (cpp_reader_init): Call _cpp_init_macro_hash and + _cpp_init_include_hash. Don't allocate hashtab directly. + (cpp_cleanup): Just call htab_delete on pfile->hashtab and + pfile->all_include_files. + (initialize_builtins): Use _cpp_make_hashnode and + htab_find_slot to add hash entries. + (cpp_finish): Just call _cpp_dump_macro_hash. + * cpplib.c: Include hashtab.h. + (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to + create hash entries. + (do_pragma_poison, do_assert): Likewise. + (do_include): Don't push the buffer here. Don't increment + system_include_depth unless _cpp_read_include_file succeeds. + (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot + or htab_remove_elt. + (do_pragma_implementation): Use alloca to create copy. + + * Makefile.in: Update dependencies. + +2000-03-12 Kaveh R. Ghazi + + * cppinit.c (cl_directive_handler): More K&R fixing. + +Sat Mar 11 23:54:26 2000 Jim Wilson + + * config/ia64/ia64.c (ia64_compute_frame_size): Align size to + STACK_BOUNDARY. + * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses. + +2000-03-11 Kaveh R. Ghazi + + * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth): + Change from char[] to macros. + +2000-03-12 Neil Booth + + * cppinit.c (cpp_start_read): Update indirect function + call to K&R C. + +Sat Mar 11 16:18:12 2000 Jim Wilson + + * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79 + entry. + + * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages. + +2000-03-11 Neil Booth + + * cppinit.c (struct pending option): Replace undef with a + pointer to a directive handling routine. + (struct cpp_pending): Replace separate assert_ and define_ + lists with one directive_ list. + (new_pending_define): Rename new_pending_directive. Extra + argument is the directive's handling routine. + (handle_option): Update to use new_pending_directive. + +2000-03-11 Neil Booth + + * cppfiles.c (file_cleanup, _cpp_find_include_file, + remap_filename, _cpp_read_include_file, actual_directory, + hack_vms_include_specification): Replace bcopy(), index() etc + calls. Add casts to some allocations. Make some variables + pointers to const [unsigned] char. + * cpphash.c (_cpp_install, macro_cleanup, collect_expansion, + collect_formal_parameters): Similarly. + * cppinit.c (struct pending_option, append_include_chain, + cpp_options_init, cpp_reader_init, initialize_standard_includes, + cpp_start_read, new_pending_define, handle_option): Similarly. + * cpplib.c (cpp_define, copy_comment, do_define, do_include, + do_undef, do_error, do_warning, do_pragma, do_pragma_once, + do_pragma_implementation, detect_if_not_defined, + do_ifdef, skip_if_group, cpp_get_token, parse_string, + do_assert, do_unassert): Similarly. + * cpplib.h (cpp_buffer, cpp_options): Update types. Update + function prototypes. + * mkdeps.c (deps_add_target, deps_add_dep): cast allocations. + +2000-03-10 Richard Henderson + + * builtins.c (expand_builtin_strlen): Revert last change. + Use emit_insn_before if we're at the beginning of a sequence. + +2000-03-10 Jason Merrill + + * builtins.c (expand_builtin_strlen): Make sure that we have something + at the beginning of the sequence. + + * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for + deferred inlines. + + * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs. + +2000-03-10 Richard Henderson + + * except.c (can_throw): Use INTVAL on a CONST_INT. + (reachable_handlers): Likewise. + * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise. + +2000-03-10 Andreas Jaeger + + * config/mips/linux.h: Undefine MD_EXEC_PREFIX and + MD_STARTFILE_PREFIX since those are not needed on linux. + (ASM_FILE_START): New, from mips/gnu.h. + +2000-03-09 Richard Henderson + Alex Samuel and others + + * Makefile.in (ssa.o): New rule. + (OBJS): Add ssa.o. + (STAGESTUFF): Add *.ssa and *.ussa. + (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa. + * rtl.def (PHI): New RTL expression. + * rtl.h (clear_log_links): New declaration. + (convert_to_ssa): Likewise. + (convert_from_ssa): Likewise. + * flow.c (split_edge): If the entry node falls through to the + split edge's source block, split the entry edge. + (clear_log_links): New function. + * toplev.c (ssa_dump): New variable. + (flag_ssa): Likewise. + (f_options): Add "ssa". + (compile_file): Create SSA dump files. + (rest_of_compilation): Go to and from SSA if enabled. + (decide_d_option): Handle -de for SSA dump files. + * ssa.c: New file. + +Thu Mar 9 20:01:38 2000 Jim Wilson + + * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL + same as VAR_DECL. + +2000-03-09 Benjamin Kosnik + + * config/alpha/linux.h (WCHAR_TYPE): Make consistent. + +Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com) + + * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case. + (MD_STARTFILE_PREFIX_1): New macro. + +2000-03-09 Robert Lipe + + * config/ia64/ia64.c: Include system.h. + +2000-03-09 Jason Merrill + + * except.c (nothrow_function_p): If -fno-exceptions, just return. + (init_eh_nesting_info): Likewise. + + * tree.h (struct tree_common): Rename raises_flag to nothrow_flag. + (TREE_NOTHROW): Rename from TREE_RAISES. + * toplev.c (rest_of_compilation): Set it. + * print-tree.c (print_node): Adjust. + * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES. + (stabilize_reference_1, get_unwidened, get_narrower): Likewise. + * calls.c (emit_call_1): Add 'nothrow' parm. Add + REG_EH_REGION note as appropriate. + (libfunc_nothrow): New fn. + (emit_library_call, emit_library_call_value): Use it. + (expand_call): Check TREE_NOTHROW. + + * varasm.c (make_decl_rtl): Skip initial '*' when setting + DECL_ASSEMBLER_NAME. + +2000-03-09 Andreas Jaeger + + * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define. + (TARGET_MEM_FUNCTIONS): Define. + +2000-03-09 Jason Merrill + + * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int. + + * except.c (can_throw): See through a SEQUENCE. + (nothrow_function_p): New fn. + * except.h: Declare it. + * function.c (current_function_nothrow): New var. + (prepare_function_start): Initialize it. + * output.h: Declare it. + * toplev.c (rest_of_compilation): Set it. + * dwarf2out.c (dwarf2out_begin_prologue): Use it. + +2000-03-09 Zack Weinberg + + * cpphash.c (collect_formal_parameters): strncmp returns 0 for + match. (cpp_compare_defs): Count the nul separator when + advancing over argument names. + +2000-03-09 Bernd Schmidt + + * recog.c (preprocess_constraints): Matching constraints affect + same alternative/different operand, not same operand/different + alternative. + + * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable + register and a constant specially. + +2000-03-08 Kaveh R. Ghazi + + * libgcc2.h: New file. + * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h. + +Wed Mar 8 16:19:42 2000 Jim Wilson + + * configure.in (ia64*-*-elf*, ia64*-*-linux*): New. + * configure: Regenerate. + * config/ia64: New. + +2000-03-08 Zack Weinberg + + * Makefile.in (LIBCPP_DEPS): New macro. + (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use + it to declare deps. + * cpperror.c: Include cpphash.h. + * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS + dingleberry. + (lex): Don't use CPP_WARN_UNDEF. + (_cpp_parse_expr): Return an int, the truth value. + * cppfiles.c: Include cpphash.h. + (_cpp_merge_include_chains): Move to cppinit.c and make static. + * cppinit.c (include_defaults_array): Disentangle. + (cpp_cleanup): Don't free the if stack here. + (cpp_finish): Pop off all buffers, not just one. + * cpplib.c (eval_if_expr): Return int. + (do_xifdef): Rename do_ifdef. + (handle_directive): Don't use CPP_PREPROCESSED. + (cpp_get_token): Don't use CPP_C89. + * fix-header.c: Don't use CPP_OPTIONS. + + * cpplib.h: Move U_CHAR, enum node_type, struct + file_name_list, struct ihash, is_idchar, is_idstart, + is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK, + CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC, + CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q, + CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER, + CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes + of _cpp_simplify_pathname, _cpp_find_include_file, + _cpp_read_include_file, and _cpp_parse_expr to cpphash.h. + Move struct if_stack to cpplib.c. Move struct cpp_pending to + cppinit.c. + Change all uses of U_CHAR to be unsigned char instead. + Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED. + +2000-03-08 Jason Merrill + + * dwarf2out.c (dw_fde_struct): Add 'nothrow'. + (dwarf2out_begin_prologue): Set it. + (output_call_frame_info): Don't emit EH unwind info for leaves. + + * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow + can occur outside of an EH region. + * except.c: Correct comments about rethrow behavior. + (rethrow_symbol_map): Do nothing if !flag_new_exceptions. + +2000-03-08 Andrew MacLeod + + * flow.c (make_edges): Always call make_eh_edge for calls. + +2000-03-08 Zack Weinberg + + * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete. + (struct cpp_buffer): Remove fname and underflow fields. + (struct cpp_reader): Remove get_token field. + (struct include_hash): Rename to struct ihash. Add typedef to + IHASH. + (struct if_stack): Remove fname field. + (IF_STACK_FRAME): Rename to IF_STACK. + + * cpperror.c (print_containing_files): Trust that there are no + macro buffers below the top file buffer. + * cppfiles.c: Replace all references to 'struct include_hash' + with 'IHASH'. Rename initialize_input_buffer to + init_input_buffer. Don't set or reference cpp_buffer->fname, + use buffer->ihash->name instead. + * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL + not CPP_NULL_BUFFER. + * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not + IF_STACK_FRAME, IHASH not struct include_hash. + * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove + null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not + struct include_hash, NULL not CPP_NULL_BUFFER. Remove all + references to cpp_buffer->fname (delete entirely, or use + ->ihash->name instead) and IF_STACK->fname. + (cpp_push_buffer): Don't set new->underflow. + (do_include): Use cpp_file_buffer. + + * cpphash.c (collect_formal_parameters): Remove duplicate + increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is + used as a macro argument name. Don't append "..." to namebuf + for varargs macros. After we're done scanning, go through + namebuf and make it NUL separated, not comma separated. + (_cpp_compare_defs): Remove register tag from variables. + Expect defn->argnames to be NUL separated. + (_cpp_dump_definition): Expect defn->argnames to be NUL + separated and in forward order. + * cpphash.h: Update documentation of argnames field. + +2000-03-08 Richard Henderson + + * builtins.c (expand_builtin_strlen): Be prepared for strlensi + to fail. Don't pre-expand the source operand. + + * i386.md (strlensi): Initialize eoschar and align before use. + +2000-03-08 Jason Merrill + + * expr.c (expand_expr, case ARRAY_REF): Still check for missing + CONSTRUCTOR element. + +2000-03-08 Gavin Romig-Koch + + * mips.c (mips_expand_prologue): If the last + named argument is the vararg marker "va_list", treat it as + an unnamed argument. + +2000-03-08 Clinton Popetz + + * dbxout.c (dbxout_parms): When correcting for promoted + big-endian parameters, use the mode of the DECL_RTL rather + than UNITS_PER_WORD. + +2000-03-08 Nathan Sidwell + + * c-common.h (make_fname_decl): Declare. + * c-common.c (make_fname_decl): Define. + (declare_hidden_char_array): Remove. + (declare_function_name): Use make_fname_decl. + * c-decl.c (c_make_fname_decl): New function. + (init_decl_processing): Set make_fname_decl. + +Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com) + + * cccp.c (handle_directive): Initialize backslash_newlines_p. + +2000-03-07 Philipp Thomas + + * po/POTFILES.in: Remove cppalloc.c from file list. + +2000-03-07 Steve Chamberlain + + * pj.c (pj_expand_prologue): current_function->args_info is + now current_function_args_info. + + * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX, + LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define. + +2000-03-08 Michael Hayes + + * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is + output as hexadecimal rather than the default octal. + +2000-03-07 Zack Weinberg + + * cpphash.c (special_symbol): Fix thinko in previous commit. + +2000-03-07 Neil Booth + + * cppexp.c (struct operation, left_shift, right_shift, + cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some + "int"s to "unsigned int"s. + * cpplib.c (detect_if_not_defined, do_assert, do_unassert): + Similarly. + * cpplib.h: Update for above. + * mkdeps.c (deps_init, deps_calc_target): Cast pointers + returned from allocations. + + * cppinit.c (opt_comp, parse_options): New functions. + (handle_option): Use parse_option to parse a single command + line option, that possibly takes an argument. + (cpp_handle_options): Sort the array of command line options on + first invocation (non-ASCII hosts only). + (print_help): Update. + +2000-03-07 Zack Weinberg + + * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in + backslash counting loops. Problem noted by Matt Kraai . + + * cppfiles.c (_cpp_find_include_file): Make sure ih->name is + initialized. + * cppinit.c (cpp_cleanup): Free imp->nshort also. + + * cpperror.c (cpp_print_containing_files, + cpp_print_file_and_line, v_cpp_message): Rename to + print_containing_files, print_file_and_line, and v_message. + * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename + to _cpp_parse_expr, parse_escape, and lex. + (parse_charconst): Remove broken multibyte support. + * cppfiles.c (include_hash): Make static. + (cpp_included): New function. + (merge_include_chains, find_include_file, finclude, + simplify_pathname): Rename to _cpp_merge_include_chains, + _cpp_find_include_file, _cpp_read_include_file, and + _cpp_simplify_pathname. + * cpphash.c (cpp_lookup, free_definition, delete_macro, + cpp_install, create_definition, macroexpand, compare_defs, + dump_definition): Rename to _cpp_lookup, _cpp_free_definition, + _cpp_delete_macro, _cpp_install, _cpp_create_definition, + _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition. + * cppinit.c (cpp_handle_option): Rename to handle_option, make + static. + * cpplib.c: Remove extern prototype of cpp_parse_expr. + + * cpphash.h: Update prototypes. + * cpplib.h: Likewise. Prototype _cpp_parse_expr here. + +2000-03-07 Andrew Haley + + * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change; + PTRDIFF_TYPE should be based solely on Pmode. + (SIZE_TYPE): ditto. + +2000-03-07 Kaveh R. Ghazi + + * rtl.h (rtunion_def): Constify member `rtstr'. + (emit_line_note_after, emit_line_note, emit_line_note_force, + emit_note, decode_asm_operands): Constify. + + * cse.c (canon_hash): Likewise. + + * dbxout.c (dbxout_block): Likewise. + + * diagnostic.c (file_and_line_for_asm, v_error_for_asm, + v_warning_for_asm): Likewise. + + * dwarfout.c (function_start_label): Likewise. + + * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note, + emit_line_note_force): Likewise. + + * final.c (last_filename, asm_insn_count, final_scan_insn, + output_source_line): Likewise. + + * function.h (struct emit_status): Likewise. + + * gcse.c (hash_expr_1): Likewise. + + * genattr.c (gen_attr, main): Likewise. + + * genattrtab.c (struct function_unit, current_alternative_string, + write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq, + attr_numeral, check_attr_test, check_attr_value, + convert_set_attr_alternative, convert_set_attr, + compute_alternative_mask, simplify_by_exploding, gen_attr, + gen_unit): Likewise. + + * genflags.c (gen_insn): Likewise. + + * gengenrtl.c (type_from_format): Likewise. + + * genopinit.c (gen_insn): Likewise. + + * genoutput.c (n_occurrences, process_template, process_template): + Likewise. + + * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): + Likewise. + + * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): + Likewise. + + * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable, + ggc_set_mark, ggc_get_size): Likewise. + + * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise. + + * optabs.c (init_one_libfunc): Likewise. + + * output.h (assemble_start_function): Likewise. + + * recog.c (decode_asm_operands): Likewise. + + * toplev.c (rest_of_compilation): Likewise. + + * tree.h (emit_line_note_after, emit_line_note, + emit_line_note_force): Likewise. + + * varasm.c (asm_output_bss, asm_output_aligned_bss, + asm_emit_uninitialised, assemble_start_function, + assemble_variable, const_hash, compare_constant_1, + find_pool_constant, mark_constant_pool, assemble_alias): Likewise. + + * xcoffout.h (DBX_FINISH_SYMBOL): Likewise. + + * alpha/alpha.md (call_vms, call_value_vms): Likewise. + + * arm/aof.h (ASM_OUTPUT_ASCII): Likewise. + + * arm/aout.h (ASM_OUTPUT_ASCII): Likewise. + + * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p, + arm_dllimport_name_p): Likewise. + + * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op): + Likewise. + + * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise. + + * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p, + arm_mark_dllexport, arm_mark_dllimport, + arm_pe_encode_section_info): Likewise. + + * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS, + ASM_FINISH_DECLARE_OBJECT): Likewise. + + * arm/thumb.c (thumb_function_prologue): Likewise. + + * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise. + + * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise. + + * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise. + + * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING, + ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise. + + * i386/i386-protos.h (asm_output_function_prefix): Likewise. + + * i386/i386.c (asm_output_function_prefix): Likewise. + + * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT, + ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII, + ASM_OUTPUT_SECTION_NAME): Likewise. + + * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. + + * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise. + + * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. + + * m32r/m32r.c (m32r_encode_section_info): Likewise. + + * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mcore/mcore.c (mcore_encode_section_info): Likewise. + + * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * mips/mips.h (ASM_OUTPUT_IDENT): Likewise. + + * mips/mips.md (movdi, movsi): Likewise. + + * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. + + * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, + ASM_OUTPUT_ASCII): Likewise. + + * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog, + output_mi_thunk, output_toc): Likewise. + + * rs6000/rs6000.md (movsi): Likewise. + + * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. + + * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise. + + * v850/v850.c (print_operand, print_operand_address, + v850_encode_data_area): Likewise. + +2000-03-07 Clinton Popetz + + * config/mips/mips.md (zero_extendsidi2): Always force operand + one to memory for mips16. + +Mon Mar 6 15:22:29 2000 Richard Kenner + + * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts. + (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT. + (attribute_hash_list, type_hash_canon): hashcode is now unsigned. + (type_hash_lookup, type_hash_add, type_hash_list): Likewise. + (min_precision): Result is unsigned. + (add_double, neg_double, mul_double): Low word is unsigned. + (lshift_double, rshift_double, lrotate_double): Likewise. + (rrotate_double, div_and_round_double): Likewise. + (tree_floor_log2, compare_tree_int): New functions. + (preserve_rtl_expr_temps): New declaration. + * c-common.c (declare_hidden_char_array): Use compare_tree_int. + (decl_attributes): Use tree_log2 to find alignment. + Check for TREE_INT_CST_HIGH for format args. + (min_precision): Now unsigned. + Use tree_floor_log2. + (truthvalue_conversion): Delete long-disabled code. + * c-decl.c (finish_struct): Clean up tests on field width. + (finish_function): Use compare_tree_int. + * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment. + * c-typeck.c (comptypes): Use tree_int_cst_equal. + (default_conversion, digest_init): Use compare_tree_int. + (build_binary_op): Use integer_all_onesp and compare_tree_int. + Fix type errors in forming masks. + * calls.c (initialize_argument_information): Use compare_tree_int. + * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. + * except.c (expand_eh_region_start_tree): Use compare_tree_int. + * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop. + (store_field): Use compare_tree_int. + (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT. + (expand_expr, case ARRAY_REF): Use compare_tree_int. + (do_jump, case BIT_AND_EXPR): Use tree_floor_log2. + (do_store_flag): Use compare_tree_int. + * fold-const.c (encode, decode): Low part is always unsigned. + (force_fit_type, add_double, neg_double, mul_double): Likewise. + (lshift_double, rshift_double, lrotate_double): Likewise. + (rrotate_double, div_and_round_double, int_const_binop): Likewise. + (fold_convert): Use compare_tree_int. + (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal. + (invert_truthvalue, case INTEGER_CST): Likewise. + (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW. + * mkdeps.c (deps_dummy_targets): Make I unsigned. + * rtl.h (add_double, neg_double, mul_double): Low words are unsigned. + (lshift_double, rshift_double, lrotate_double, rrotate_double): + Likewise. + * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree. + (expand_end_case): Use compare_tree_int. + (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. + * stor-layout.c (mode_for_size_tree): Use compare_tree_int. + (layout_decl): Likewise. + (layout_record, layout_union): Make sizes unsigned. + (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype. + (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int. + * tree.c (struct type_hash): hashcode is unsigned. + (build_type_attribute_variant, type_hash_list): Likewise. + (type_hash_lookup, type_hash_add, type_hash_canon): Likewise. + (attribute_hash_list, build_array_type, build_method_type): Likewise. + (build_complex_type): Likewise. + (real_value_from_int_cst): Remove unneeded casts. + (integer_all_onesp): Add casts. + (tree_floor_log2, compare_tree_int): New functions. + (build_index_type): Use tree_int_cst_sgn. + * varasm.c (assemble_variable): Use compare_tree_int. + +2000-03-06 Jason Merrill + + * cpphash.c (collect_expansion): Also catch ## at start of macro. + + * varasm.c (make_decl_rtl): Don't add a number to members of + local classes. + (make_function_rtl): Likewise. + +2000-03-06 Alexandre Oliva + + * gcse.c (compute_can_copy): Adjust if/else blocks from rth's + patch from 2000-01-28. + +2000-03-06 Clinton Popetz + + * config/sh/sh.c: (barrier_align): Handle a delay slot that is + filled with an insn from the jump target. + +2000-03-07 Michael Hayes + + * config/c4x/c4x-protos.h (c4x_global_name): Constify char *. + (c4x_external_ref): Likewise. + * config/c4x/c4x.c (struct name_list): Likewise. + +1999-12-16 Ben Collins + + * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth + argument to genmultilib. + * genmultilib: accept new MULTILIB_EXCLUSIONS option and output + the contents into the multilib.h header. + * gcc.c: Declare multilib_exclusions for the specs file. + (set_multilib_dir): Use it. + (print_multilib_info): Likewise. + * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option + to pass to genmultilib. + +2000-03-06 Kaveh R. Ghazi + + * builtins.c (built_in_class_names, built_in_names): Constify a + char*. + + * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not + int. + (_mcleanup): Ensure value matches format specifier in sprintf. + + * cpphash.c (special_symbol): Don't needlessly cast away + const-ness. + + * cppinit.c (base_name): Delete unused prototype. + + * mkdeps.c (deps_init): Make definition K&R safe. + + * tree.h (built_in_class_names, built_in_names): Constify a + char*. + +2000-03-06 Jakub Jelinek + + * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept + floating point instructions for epilogue delay. + + * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs + to gas if it supports .register pseudo. + + * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to + LONG_DOUBLE_TYPE_SIZE if not defined. + Use MAX_LONG_DOUBLE_TYPE_SIZE instead of + LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses. + * real.c: Likewise. + * gengenrtl.c: Likewise. + * print-rtl.c: Likewise. + * rtl.c: Likewise. + * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set + MASK_LONG_DOUBLE_128. + * config/sparc/sol2.h (TARGET_DEFAULT): Likewise. + * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise. + * config/sparc/linux64 (TARGET_DEFAULT): Likewise. + (SUBTARGET_SWITCHES): Define. + (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling + with -mlong-double-128. + (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. + (MAX_LONG_DOUBLE_TYPE_SIZE): Define. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. + (CC1_SPEC): Include -mlong-double-{64,128} as needed. + * config/sparc/linux.h (SUBTARGET_SWITCHES): Define. + (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling + with -mlong-double-128. + (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. + (MAX_LONG_DOUBLE_TYPE_SIZE): Define. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. + * config/sparc/sparc.h (MASK_LONG_DOUBLE_128, + TARGET_LONG_DOUBLE_128): Define. + * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove. + * config/sparc/sparc.c (sparc_override_options): Disallow 64bit + long double on TARGET_ARCH64. + +2000-03-06 Mark Mitchell + + * function.c (free_temps_for_rtl_expr): Don't free slots + that have been pushed into a higher level. + + Revert this patch: + 2000-03-05 Mark Mitchell + +2000-03-05 Mark Mitchell + + * basic-block.h (ALLOCA_REG_SET): Remove. + (INITIALIZE_REG_SET): New macro. + * flow.c (update_life_info): Use it. + (calculate_global_regs_live): Likewise. + (propagate_block): Likewise. + * global.c (build_insn_chain): Likewise. + * haifa-sched.c (schedule_region): Likewise. + +2000-03-05 Stephane Carrez + + * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer. + (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP. + (DWARF_ARANGES_PAD_SIZE): New define. + (output_aranges): Use it to pad the address range header. + (DWARF_ROUND): Fix for non power of 2 rounding. + +2000-03-05 Jason Merrill + + * mkdeps.c (deps_calc_target): Remove incorrect 'const'. + +2000-03-05 Mark Mitchell + + * tree.def (RTL_EXPR): Update documentation. + * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro. + * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE. + * function.c (preserve_rtl_expr_temp): New function. + (preserve_rtl_expr_temps): Likewise. + (preserve_rtl_expr_result): Use it. + + Revert this patch: + 2000-03-04 Mark Mitchell + +2000-03-04 Thomas Schuster + + * regmove.c (copy_src_to_dest) Do not create src->dest move + for unchanging destination. + +2000-03-04 Mark Mitchell + + * function.h (struct sequence_stack): Remove rtl_expr. + (struct emit_staus): Likewise. + (seq_rtl_expr): Remove. + * tree.h (free_temps_for_rtl_expr): Don't declare. + (start_sequence_for_rtl_expr): Likewise. + * rtl.h (preserve_rtl_expr_result): Likewise. + * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr. + (start_sequence_for_rtl_expr): Remove. + (push_topmost_sequence): Don't save sequence_rtl_expr. + (pop_topmost_sequence): Remove comment about not restoring it. + (end_sequence): Don't set seq_rtl_expr. + (init_emit): Don't initialize it. + (mark_sequence_stack): Don't mark it. + (mark_emit_status): Likewise. + * except.c (protect_with_terminate): Use + start_sequence_for_rtl_expr, not start_sequence. + * expr.c (expand_expr, case RTL_EXPR): Don't call + preserve_rtl_expr_result or free_temps_for_rtl_expr. + * function.c (assign_stack_temp_for_type): Don't set rtl_expr. + (preserve_rtl_expr_result): Remove. + (free_temps_for_rtl_expr): Likewise. + (pop_temp_slots): Likewise. + (mark_temp_slot): Don't mark the rtl_expr. + * stmt.c (expand_start_stmt_expr): Use start_sequence, not + start_sequence_for_rtl_expr. + +2000-03-04 Zack Weinberg + + * mkdeps.c, mkdeps.h: New files. + * po/POTFILES.in: Add them. + * Makefile.in (LIBCPP_OBJS): Add mkdeps.o. + (cpplib.o, cppinit.o): Depend on mkdeps.h. + (mkdeps.o): New target. + + * cppfiles.c: Delete deps_output. + * cppinit.c: Include mkdeps.h. Delete known_suffixes, + OBJECT_SUFFIX, and base_name. + (cpp_cleanup): Use deps_free. Free ihash->name when clearing + the include hash. + (initialize_dependency_output): Use deps_init, + deps_add_target, deps_calc_target, and deps_add_dep. Remove + all the unnecessary string bashing. + (cpp_finish): Use deps_write. Remove an unnecessary nesting + level. + * cpplib.c (do_include): Use deps_add_dep. + * cpplib.h (struct cpp_reader): Replace deps_buffer, + deps_allocated_size, deps_size, deps_column members with + single pointer to a struct deps. Delete prototype of + deps_output. + + * cppinit.c: Fix thinko in previous patch. + +Sat Mar 4 11:32:30 2000 Richard Kenner + + * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed. + * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise. + (mode_for_size_tree): New function. + (layout_decl, layout_type): Call it and clean up BLKmode checks. + * tree.h (mode_for_size_tree): New declaration. + + * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused. + +2000-03-04 Jason Merrill + + * stmt.c (is_body_block): Move... + * dwarfout.c, dwarf2out.c: ...from here. + * tree.h: Declare it. + * emit-rtl.c (remove_unnecessary_notes): Don't remove the body block. + * final.c (final_start_function): Do call remove_unnecessary_notes + when scheduling. + +2000-03-03 Zack Weinberg + + * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX. + + * cpplib.h (_dollar_ok): New macro. + (is_idchar, is_idstart): Use it. + (IStable): Rename to _cpp_IStable. Declare it const if + gcc >=2.7 or C99. Delete all references to FAKE_CONST. + (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace, + is_space): Update for renamed IStable. + + * cppinit.c: Delete all references to FAKE_CONST and CAT + macros. Define init_IStable as empty macro if gcc >=2.7 or + C99. Change TABLE() to ISTABLE and hardcode name of table. + (cpp_start_read): Don't change the IStable based on + dollars_in_ident. + + * cpphash.c (unsafe_chars): Add pfile argument. All callers + changed. Handle '$' for char1 correctly. + * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers. + + * cppexp.c (tokentab2): Make const. + (cpp_lex): Make toktab const. + * cppinit.c (include_defaults_array): Make const. + (initialize_standard_includes): Make default_include const. + +2000-03-03 Jason Merrill + + * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning. + (dwarf2out_decl): Functions can now have DECL_IGNORED_P. + (gen_decl_die): Likewise. + * dwarfout.c (dwarfout_file_scope_decl): Likewise. + (output_decl): Likewise. + + * varasm.c (make_function_rtl): If we change the name used in the + rtl, update DECL_ASSEMBLER_NAME accordingly. + (make_decl_rtl): Likewise. + + * toplev.c (rest_of_compilation): Tweak formatting. + + * toplev.c (rest_of_compilation): find_loop_tree_blocks before + remove_unnecessary_notes. + (debug_ignore_block): New fn. + * toplev.h: Declare it. + * emit-rtl.c (remove_unnecessary_notes): Call it. + * dwarf2out.c (dwarf2out_ignore_block): New fn. + * dwarf2out.h: Declare it. + * final.c (final_start_function): Don't call remove_unnecessary_notes + if we did insn scheduling. + +2000-03-03 Zack Weinberg + + * cppinit.c (cpp_handle_option): Set opts->pedantic directly. + * cpplib.h: Delete SET_CPP_PEDANTIC. + +Fri Mar 3 14:56:12 2000 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if + result is a RECORD_TYPE. + +2000-03-03 Jonathan Larmour + + * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added. + +2000-03-03 Richard Henderson + + * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer + addition over compliments over shifts. + +Fri Mar 3 12:49:28 2000 J"orn Rennecke + + * reload1.c (reload_combine_note_use): Handle return register USEs. + REG case: Handle multi-hard-register hard regs. + +Fri Mar 3 07:38:34 2000 Richard Kenner + + * md.texi: Document use of '*' in insn pattern name. + +2000-03-03 Jason Merrill + + * calls.c (special_function_p): operator new may not be malloc-like. + + * gcse.c (dump_hash_table): Really fix error in last change. + +2000-03-02 Denis Chertykov + + * avr.c (print_operand): Use print_operand_address instead of + output_addr_const. + * avr/libgcc.S: Cleanup code. + +2000-03-02 Richard Henderson + + * alpha.c (alpha_emit_set_const_1): Also try c + small constant. + +2000-03-02 Mark Mitchell + + * tree.h (TYPE_ALIGN_UNIT): New macro. + +2000-03-02 Clinton Popetz + + * i386.c: (constant_call_address_operand): Reject CONST_INT. + +2000-03-02 Jason Merrill + + * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set + for the buffer. + (SET_CPP_PEDANTIC): New macro. + * cpplib.c (do_include): Don't bother checking system_header_p. + (do_warning, do_ident, do_assert, do_unassert): Likewise. + * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC. + + * function.h (struct expr_status): Add x_arg_space_so_far. + (arg_space_so_far): New macro. + * expr.c (init_expr): Initialize it. + * calls.c (emit_call_1): Reset it. + (compute_argument_block_size, expand_call): Use it. + (expand_call, store_one_arg): Increment it. + +Thu Mar 2 17:27:13 2000 Richard Kenner + + * varasm.c (output_constant): Strip off a CONVERT_EXPR to + a UNION_TYPE. + +2000-03-02 Zack Weinberg + + * cppfiles.c (cpp_read_file): New function. + + * cpphash.c (collect_expansion): Make sure to reset last_token + to NORM when we hit a string. Handle trailing whitespace + properly when the expansion is empty. + (create_definition): Disable line commands while parsing the + directive line. + (dump_definition): If pfile->lineno == 0, output a line + command ahead of the dump, and add a trailing newline. + + * cppinit.c (append_include_chain): Add fifth argument, which + indicates whether or not system headers are C++ aware. + (initialize_standard_includes): New function, + broken out of read_and_prescan. Pass 'cxx_aware' value from + the include_defaults_array on to append_include_chain. + (dump_special_to_buffer): Const-ify char array. + (builtin_array): Don't dump __BASE_FILE__. + (cpp_start_read): Use cpp_read_file. Reorder code for + clarity. Don't output line commands here for -D/-A/-U + switches. Don't call deps_output for files included with + -include or -imacros. + + * cpplib.c (do_define): Don't pay any attention to the second + argument. + (cpp_expand_to_buffer): Disable line commands while scanning. + (output_line_command): Work in the file buffer. + * cpplib.h: Remove no_record_file flag from struct cpp_reader. + Fix formatting of comments. Prototype cpp_read_file. + +Thu Mar 2 13:29:46 2000 Richard Kenner + + * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink + reference the language-equivalent of sizetype. + * c-typeck.c (comptypes): Treat sizetype like its language equivalent. + * fold-const.c (size_binop, size_diffop): Put back checks. + * gcse.c (dump_hash_table): Fix minor error in last change. + * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype. + Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of + all sizetypes. + +Thu Mar 2 12:48:45 MET 2000 Jan Hubicka + + * calls.c (expand_call) Do not attempt to combine stack adjustments + with inhibit_defer_pop set. + +2000-03-01 Mark Mitchell + + * stor-layout.c (layout_decl): Allow front-ends to explicitly set + the DECL_SIZE for a FIELD_DECL. + +2000-03-01 Bruce Korb + + * fixinc/inclhack.tpl: remove unused symlinks + * fixinc/README: GCC Maintainer info + * fixinc/inclhack.sh: regen + * fixinc/fixincl.sh: regen + +2000-03-01 Zack Weinberg + + * cpphash.c (collect_expansion): Trim trailing white space + from macro definitions, but don't go past the last insertion + point. + +Wed Mar 1 12:14:31 MET 2000 Jan Hubicka + + * i386.md (mulqi3): New pattern. + +2000-02-29 Zack Weinberg + + * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New + token types. + (struct cpp_reader): Add parsing_if_directive and + parsing_define_directive flags. + (struct cpp_options): Remove output_conditionals flag. + (check_macro_name): Delete prototype. + + * cpphash.h (struct macrodef): Delete. + (struct reflist): Separate from struct definition. + (struct definition): Remove unused fields. Add column number. + (create_definition): Returns a DEFINITION *. Takes a + cpp_reader * and an int. + + * cpphash.c (SKIP_WHITE_SPACE): Delete. + (PEEKC): Copy defn from cpplib.c. + (rest_extension, REST_EXTENSION_LENGTH): Delete. + (struct arg): New. + (struct arglist): Simplify. + (collect_expansion): Rewrite. Get tokens by calling + cpp_get_token. Add more error checking. + (collect_formal_parameters): New function, broken out of + create_definition and reworked to use get_directive_token. + (create_definition): All real work is now in collect_expansion + and collect_formal_parameters. do_define handles finding the + macro name. Return a DEFINITION, not a MACRODEF. + (macroexpand): Replace bcopy with memcpy throughout. Replace + character-at-a-time copy loop with memcpy and pointer increments. + (compare-defs): d1->argnames / d2->argnames might be null. + + * cpplib.c (copy_rest_of_line): Delete function. + (skip_rest_of_line): Do all the work ourselves. + (skip_string): New function. + (parse_string): Use skip_string. + (get_macro_name): New function. + (check_macro_name): Delete. + (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q. + (cpp_skip_hspace): Use CPP_BUMP_LINE. + (handle_directive): ICE if we're called on a macro buffer. + (do_define): Determine macro name and type (funlike/objlike) + here. Expunge all uses of MACRODEF. + (cpp_push_buffer): Set line_base to NULL. + (do_undef, read_line_number): Don't worry about getting a POP token. + (eval_if_expression): Set/reset parsing_if_directive around + cpp_parse_expr. Don't clear only_seen_white. + (skip_if_group): Remove output_conditionals logic. Use + skip_rest_of_line. + (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE + tokens under appropriate conditions. + (cpp_unassert): Call do_unassert not do_assert. Oops. + + * cppexp.c (parse_defined): New function, break out of + cpp_lex. + (cpp_lex): We now get CPP_ASSERTION tokens and can check them + ourselves, with cpp_defined. + * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput. + + * gcc.dg/20000209-2.c: Turn off -pedantic-errors. + * gcc.dg/strpaste-2.c: New. + +2000-02-29 Mark Mitchell + + * fold-const.c (size_binop): Don't asert inputs are the same and + have TYPE_IS_SIZETYPE set. + (size_diffop): Likewise. + +2000-02-29 Jason Merrill + + * dwarfout.c (output_block): Output abstract blocks even if they + don't have TREE_ASM_WRITTEN set. + + * calls.c (emit_library_call): Check for null REG. + +2000-03-01 Martin von Loewis + + * c-decl.c (current_function_decl): Move to toplev.c. + (init_decl_processing): Don't add current_function_decl as a ggc + root here. + * dbxout.c (dbxout_symbol): Change return type to int. + (dbxout_symbol_location, dbxout_syms): Likewise. + (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without + any locals. Use current_function_func_begin_label if set. + * dbxout.h (dbxout_symbol, dbxout_syms): Change return type. + * dwarf2out.c (dwarf2out_begin_prologue): Set + current_function_func_begin_label. + * final.c (final_start_function): Reset it. + * toplev.c (current_function_decl): Define it here. + (current_function_func_begin_label): New variable. + (main): Add both as ggc roots. + * tree.h (current_function_func_begin_label): Declare. + +Tue Feb 29 14:07:04 2000 Richard Kenner + + * gcse.c: Cleanups throughout: mostly white-space, but also + some minor rearrangement of code. + +Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com) + + * calls.c (emit_library_call): Do not abort if FUNCTION_ARG + returns a PARALLEL. Use emit_group_load and use_group_regs + as needed. + (emit_library_call_value): Similarly. + + * pa/t-pa: Use quadlib.c instead of quadlib.asm. + * pa/quadlib.asm: Remove. + * pa/quadlib.c: New file. + + * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format. + * configure: Rebuilt. + +2000-02-29 Philip Blundell + + * config/arm/conix-elf.h: New file. + * configure.in (arm*-*-conix*): New configuration. + * configure: Regenerate. + +2000-02-28 Jason Merrill + + * dwarf2out.c (gen_block_die): Output abstract blocks even if they + don't have TREE_ASM_WRITTEN set. + +Mon Feb 28 21:07:59 2000 Richard Kenner + + * Eliminate DECL_FIELD_SIZE. + * builtins.c (built_in_class_names, built_in_names): New variables. + * c-decl.c (finish_struct): Set specified size in DECL_SIZE. + * expr.c (expand_expr, case COMPONENT_REF): Get field size from + DECL_SIZE, not DECL_FIELD_SIZE. + * print-tree.c (print_node): Remove code that prints extra blank + lines in some cases. + Properly handle inline and builtin function cases. + * stor-layout.c (layout_decl): Get specified size from DEC_SIZE. + * tree.h (built_in_class_named, built_in_names): New declarations. + (union tree_decl): Rename internal unions to u1 and u2 and change + some of their components. + Add new field built_in_class. + (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE): + Reflect above changes. + (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise. + (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted. + * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE. + (encode_field_decl): Likewise; also remove obsolete test for bitfield. + +2000-02-28 Dmitri Makarov + + * extend.texi: Document ARM's support for long/short calls. + + * invoke.texi: Document ARM's -mlong-calls command line switch. + + * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype. + (arm_encode_call_attribute): Add prototype. + (arm_set_default_type_attribute): Add prototype. + (arm_strip_name_encoding): Add prototype. + + * config/arm/arm.c (arm_init_cumulative_args): replace + initialisation og 'long_calls' field with initialisation of + 'call_cookie' field. + (enum arm_pragma_enum): New enum. + (arm_pragma_long_calls): New static variable. + (arm_process_pragma): Also process "#pragma long_calls_off". + (arm_valid_type_attribute_p): Accept short_call attribute. + (arm_comp_type_attributes): Check long/short call attributes. + (arm_encode_call_attribute): New function: Encode long_call + or short_call attribute in function name. + (arm_set_default_type_attributes): New function: Assign + default attributes to newly defined type. + (current_file_function_operand): New function: Return true if + the symbol is a function which has already been compiled. + (arm_is_longcall_p): New function: Return true if the + indicated function should be called via a long call. + (arm_get_strip_length): New function. Returns number of + prefix characters to be stripped from a function's name. + (arm_strip_name_encoding): New function. Strip prefix characters + from a function's name. + + * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field + with 'call_cookie'. + (SHORT_CALL_FAG_CHAR): Define. + (LONG_CALL_FAG_CHAR): Define. + (ENCODED_SHORT_CALL_ATTR_P): Define. + (ENCODED_LONG_CALL_ATTR_P): Define. + (ARM_NAME_ENCODING_LENGTHS): Define. + (STRIP_NAME_ENCODING): Define. + (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding. + (ARM_ENCODE_CALL_TYPE): Define. + (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE. + (ARM_DECLARE_FUNCTION_SIZE): Define. + (SET_DEFAULT_TYPE_ATTRIBUTES): Define. + + * config/arm/arm.md (call): Call arm_is_longcall_p to decide + if a long call is needed. + (call_value): Ditto. + (call_symbol): Ditto. + + * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of + ARM_DECLARE_FUNCTION_SIZE. + + * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define. + (SUBTARGET_NAME_ENCODING_LENGTHS): Define. + (ARM_STRIP_NAME_ENCODING): Undefine. + (STRIP_NAME_ENCODING): Undefine. + (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding. + (ASM_DECLARE_FUNCTION_NAME): Ditto. + (ASM_OUTPUT_COMMON): Ditto. + (ASM_DECLARE_OBJECT_NAME): Ditto. + + * config/arm/pe.c (arm_dllexport_name_p): Check for + ARM_PE_FLAG_CHAR. + (arm_dllimport_name_p): Ditto. + (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR. + (arm_mark_dllimport): Ditto. + +Mon Feb 28 22:11:12 2000 J"orn Rennecke + + * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define. + +2000-02-28 Mark Mitchell + + * xcoffout.c (xcoffout_begin_function): Fix typo in previous change. + +2000-02-28 Zack Weinberg + + * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE. + * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if + NO_BUILTIN_WCHAR_TYPE is not defined. + (CPP_WCHAR_TYPE): Delete. + * cccp.c (main): Don't change wchar_type if cplusplus. + (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE. + +2000-02-28 Nick Clifton + + * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long". + +Mon Feb 28 14:21:15 2000 Catherine Moore + + * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define. + (ASM_WEAKEN_LABEL): Define. + +Mon Feb 28 13:07:19 MET 2000 Jan Hubicka + + * expr.c (store_constructor): Do not emit USE. + * rtl.h (stupid_life_analysis): Remove. + +Mon Feb 28 07:03:27 2000 Richard Kenner + + * function.c (number_blocks): Reset next_block_index based on + what debugging format is used, not what is defined. + + * lcm.c: Minor reformatting throughout. + (reg_dies, reg_becomes_live): Properly handle multiple hard regs. + + * toplev.c (rest_of_compilation): Account for time in + optimize_mode_switching. + + * jump.c (jump_optimize_1): Don't call delete_barrier_successors + if only marking labels. + +Mon Feb 28 12:53:57 MET 2000 Jan Hubicka + + * calls.c (expand_call): Attempt to combine stack adjustments with + pending stack adjustments. + +Mon Feb 28 11:34:43 2000 J"orn Rennecke + + * loop.c (reg_in_basic_block_p): Don't abort when falling through + to the end of the function. + +2000-02-27 Mark Mitchell + + * emit-rtl.c (remove_unnecessary_notes): Remove notes for empty + blocks. + * final.c (next_block_index): Remove. + (max_block_depth): Likewise. + (pending_blocks): Likewise. + (init_final): Don't initialize them. + (final_start_function): Don't set next_block_index. Set up + BLOCK_NUMBER. + (final_scan_insn): Use BLOCK_NUMBER, not next_block_index. + * function.h (number_blocks): New function. + * function.c (get_block_vector): New function. + (identify_blocks): Use it. + (reorder_blocks): Set NOTE_BLOCK. + (number_blocks): New function. + * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag. + * tree.h (BLOCK_NUMBER): New macro. + (tree_block): Add block_num field. + * dbxout.c (next_block_number): Remove. + (dbxout_init): Don't set it. + (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN + set. Use BLOCK_NUMBER, rather than next_block_num, to determine + block numbers. + * toplev.c (rest_of_compilation): Always call + find_loop_tree_blocks. Fix indentation. + * dwarf2out.c (next_block_number): Remove. + (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, + to determine block numbers. + (gen_inlined_subroutine_die): Likewise. + (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set. + (decls_for_scope): Don't increment next_block_number. + * dwarfout.c (next_block_number): Remove. + (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, + to determine block numbers. + (output_inlined_subroutine_die): Likewise. + (output_block): Only output blocks that have TREE_ASM_WRITTEN set. + (output_decls_for_scope): Don't increment next_block_number. + * sdbout.c (next_block_number): Remove. + (sdbout_block): Use BLOCK_NUMBER. + (sdbout_begin_block): Simplify. + * xcoffout.c (next_block_number): Remove. + (xcoffout_block): Use BLOCK_NUMBER, not next_block_number. + (xcoffout_begin_block): Don't set next_block_number. + (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not + next_block_number. + +Sun Feb 27 16:40:33 2000 Richard Kenner + + * builtins.c (c_strlen): Use size_diffop and return ssizetype value. + (expand_builtin_strcpy): Pass correct type to size_binop. + (expand_builtin_strcmp): Likewise. + Clean up conditional structure. + * c-decl.c (init_decl_processing): Don't call set_sizetype twice. + (complete_array_type): Don't use size_binop for MAXINDEX. + * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT. + (c_sizeof_nowarn, c_size_in_bytes): Likewise. + (c_alignof): Use size_one_node. + (build_unary_op): Pass arg of proper type to size_binop. + (really_start_incremental_init, push_init_level): Use sizetype for + constructor{,_bit,_unfilled}_index. + (pop_init_label, output_init_element): Likewise. + (output_pending_init_elements, process_init_element): Likewise. + * calls.c (compute_argument_block_size): Field VAR is ssizetype. + * expr.c (store_expr): Use size_int. + (store_constructor): Use proper types for size_binop args. + (get_inner_reference, expand_expr, case ARRAY_REF): Likewise. + (expand_expr_unaligned): Likewise. + (string_contant): Return object of sizetype. + * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types. + (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE. + (ARGS_SIZE_TREE): Pass proper types to size_binop. + * fold-const.c (int_const_binop): Refine when size_int is called. + (fold_convert): Likewise. + (size_int_wide): Rework to take KIND as arg, only take low order + bits, handle new sizetype_tab datatype, and chain entries in + size_table. + (size_int_type_wide): New function. + (size_binop): Validate types of arguments. + (ssize_binop): Deleted. + (size_diffop): New function. + (extract_muldiv): Only fold division into multiplication for sizetypes. + * function.c (assign_parms): Use size_diffop and make sure + VAR field is of ssizetype; also pass proper type to size_binop. + (locate_and_pad_parm, pad_to_arg_alignment): Likewise. + (round_down): Deleted from here. + * store-layout.c (sizetype_tab): Now an array. + (sizetype_set, early_root_list): New variables. + (variable_size): Use size_one_node. + (round_up): Pass proper type to size_binop. + (round_down): Moved to here and corrected as above. + (layout_record): Pass proper arg types to size_binop. + (layout_type): Likewise. + If sizetype_set is zero, record the type just laid out. + (make_unsigned_type): Don't call set_sizetype; + (make_signed_type): Likewise; also, call fixup_signed_type. + (initialize_sizetypes): New function. + (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and + set name of bitsizetype to "bit_size_type". + Fix up type of sizes of all types made before call. + * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro. + * tree.c (fix_sizetype): Deleted. + (build_common_tree_nodes): Call initialize_sizetypes. + (build_common_tree_nodes_2): Don't call fix_sizetype. + * tree.h (TYPE_IS_SIZETYPE): New macro. + (initialize_sizetype): New declaration. + (enum size_type_kind): New type. + (struct sizetype_tab): Deleted. + (sizetype_tab): Now array; adjust sizetype macros. + (size_diffop, size_int_type_wide): New functions. + (size_int_wide): Change number of args and type; access macros changed. + (ssize_int, sbitsize_int): New macros. + * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int. + (ROUND_TYPE_SIZE_UNIT): New macro. + +2000-02-27 Zack Weinberg + + * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *. + +Sun Feb 27 07:44:17 2000 Richard Kenner + + * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long): + Mark as possibly unused. + + * cse.c (cse_insn): Delete dead code involving tablejump. + Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE. + + * Makefile.in (libcpp.a): Start by deleting it. + +2000-02-27 Alexandre Oliva + + * cpplib.h (enum file_change_code): Added rename_file. + * cpplib.c (do_line): If a filename is given, set file_change to + rename_file. + (output_line_command): If file_change is rename_file, always + output a # directive with the file name. + + * cpplib.c (do_pragma): Accept #pragma without consecutive token. + +2000-02-26 Mark Mitchell + + * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE + when copying a PARM_DECL or RESULT_DECL. + +2000-02-26 Kaveh R. Ghazi + + * fix-header.c (recognized_function): Also fix prototypes for + functions taking "void". + +2000-02-26 Geoff Keating + + * reload1.c (do_output_reload): Check reg_reloaded_valid before + looking at reg_reloaded_contents. + +2000-02-26 Zack Weinberg + + * Makefile.in (STMP_FIXINC): New toggle. + (LIBGCC2_DEPS): Delete all references. + (stmp-headers): Delete target. All references either deleted + or changed to stmp-int-headers. + (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO. + (LIBCPP_OBJS): Take out cppalloc.o. + (cppalloc.o): Delete target. + (stmp-int-hdrs): Depend on $(STMP_FIXINC). + (gen-protos, fix-header): Link with libiberty.a. + * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC + to empty. + + * configure.in: Remove refs to strerror. + * acconfig.h: Take out NEED_DECLARATION_STRERROR. + * system.h: Take out strerror stanza. + + * cpperror.c (my_strerror): Delete function. + (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror. + * cppmain.c (main): Call xmalloc_set_program_name first thing. + * cppalloc.c: Delete file. + * gen-protos.c: Don't provide xrealloc. + + * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use + xstrerror throughout. + +2000-02-26 Bruce Korb + + * fixinc/inclhack.def (undefine_null): the bypass pattern needs to + match for DOS headers, too. + * fixinc/inclhack.sh,fixincl.x: Regenerate. + +2000-02-26 Geoff Keating + + * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default + is right for most ELF targets. + * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define. + Let the default file use %U properly. + * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the + default. + + * config/fp-bit.c (pack_d): Properly handle rounding of denormal + numbers. + +Sat Feb 26 09:39:16 2000 Richard Kenner + + * toplev.c (documented_lang_options): Correct spelling error. + (decode_d_option, decode_f_option, main): Likewise. + + * toplev.c (print_time): Avoid SIGFPE when all_time is zero. + + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at + to tell assembler it is permitted to expand large constants. + +2000-02-25 Mumit Khan + + * protoize.c: (AUX_INFO_SUFFIX): New macro. + (aux_info_suffix): Use. + (SAVE_SUFFIX): New macro. + (save_suffix): Use. + (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null. + (gen_aux_info_file): Use aux_info_suffix instead of ".X". + (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames. + + * invoke.texi (Running Protoize): Update documentation. + +2000-02-25 Mark Elbrecht + + * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines. + +2000-02-25 John Wehle (john@feith.com) + + * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to. + +2000-02-25 Anthony Green + + * toplev.c (rest_of_compilation): Rebuild jump labels if + combine_instructions has created a new direct jump. + * combine.c (try_combine): Add new_direct_jump_p argument. Set it + when appropriate. + (combine_instructions): Call try_combine with new argument. + Return non-null value when new direct jump instruction is created. + * rtl.h: combine_instructions returns an int. + +Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com) + + * cse.c (cse_insn): Replace the PATTERN of the insn with an new + jump when changing a computed jump into a jump to a known + target. + +Fri Feb 25 19:22:44 2000 Graham Stott + + * resource.c (mark_referenced_resources): Changed use SET_DEST (...) + to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER. + + * i386.md (define_expand "clrstrsi"): Fix typo. + +Fri Feb 25 18:49:39 2000 "K. Richard Pixley" + + * rtl.texi: Fix typo. + +Fri Feb 25 20:02:35 2000 J"orn Rennecke + + * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by + UNITS_PER_WORD. Change caller initial_elimination_offset. + (rounded_frame_size): Take into account that argument pushed has + changed. Fix TARGET_ALIGN_DOUBLE problem. + +2000-02-25 Geoff Keating + + * haifa-sched.c (schedule_block): Explain the real reason + we delete REG_SAVE_NOTEs on the first insn of a block. + Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP. + +2000-02-24 Mark Mitchell + + * input.h (push_srcloc): New function. + (pop_srcloc): Likewise. + * toplev.c (push_srcloc): Define it. + (pop_srcloc): Likewise. + +2000-02-24 Richard Henderson + + * flow.c (life_analysis): When collecting reg info, clear + regs_ever_live. + +Thu Feb 24 22:06:52 2000 J"orn Rennecke + + Fix bug exposed by reload.c no longer rounding the frame + size to BIGGEST_ALIGNMENT: + * sh.c (rounded_frame_size): New function. + (sh_expand_prologue, sh_expand_epilogue): Use it. + (initial_elimination_offset): Likewise. + +Thu Feb 24 20:04:11 2000 J"orn Rennecke + + Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change: + * sh-protos.h (sh_need_epilogue): Declare. + * sh.c (sh_need_epilogue_known): New static variable. + (sh_need_epilogue): New function. + (function_epilogue): Clear need_epilogue_known. + * sh.md (return): Split into expander / insn pattern. + Make the expander conditional on ! sh_need_epilogue (). + +2000-02-24 Nathan Sidwell + + * machmode.h (get_mode_alignment): Declare. + (GET_MODE_ALIGNMENT): Call it. + * stor-layout.c (get_mode_alignment): New function. Make + sure alignment is always power of 2. + +2000-02-23 Zack Weinberg + + * i386.h: Remove useless definition of "I386" and misleading + comment above it. + +2000-02-23 Zack Weinberg + + * tree.h (TREE_SET_PERMANENT): New macro. Document conditions + under which TREE_PERMANENT will be set. + * tree.c (make_node, copy_node, make_tree_vec, tree_cons, + build1): Use TREE_SET_PERMANENT. + * print-tree.c (print_node): Don't report value of + TREE_PERMANENT if ggc_p is true. + + * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to + decide whether to give a type a new alias set. + * objc/objc-act.c (build_objc_string_object): Never copy the string. + * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective + of value of 'obstack'. + + +2000-02-24 Michael Hayes + + * config/c4x/c4x.c (c4x_process_after_reload): Split all insns. + +2000-02-23 Alexandre Oliva + + * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. + * cpplib.c (cpp_get_token): Produce them. + * cppexp.c (cpp_lex): Handle them. + +2000-02-23 Nick Clifton + + * config/arm/arm.c (arm_comp_type_attributes): Simply and + comment tests on type attributes. + +Wed Feb 23 16:42:21 2000 J"orn Rennecke + + * final.c (shorten_branches): Make value passed to LOOP_ALIGN + conform to documentation. + * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align + to check for special cases. + * sh-protos.h (sh_loop_align): Declare. + * sh.c (sh_loop_align): Define. + +2000-02-22 Andrew Haley + + * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas. + (SIZE_TYPE): Is 32 bits when using -mgp32. + (PTRDIFF_TYPE): Ditto. + +Wed Feb 23 07:26:27 2000 Richard Kenner + + * diagnostic.c (init_output_buffer): Handle case of null PREFIX. + +2000-02-23 Zack Weinberg + + * config/i386/i386.h: If IN_TARGET_LIBS is defined, make + BIGGEST_FIELD_ALIGNMENT a constant. + +2000-02-21 Jason Merrill + + * dwarf2out.c (output_line_info): Put the marker for the end of + the line number info at the actual end. + (gen_struct_or_union_type_die): Use decl_function_context + to check for local classes. + * dwarfout.c (output_type): Likewise. + +Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com) + + * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference + for arguments with a mode, but no type. + (FUNCTION_ARG_CALLEE_COPIES): Similarly. + * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm. + * pa/long_double.h: New file. + * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11 + both have 128bit wide long doubles. + * configure: Rebuilt. + +2000-02-21 Kaveh R. Ghazi + + * defaults.h (ASM_OUTPUT_ASCII): Constify a char*. + + * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain, + fixup_reorder_chain, skip_insns_between_block): Add static prototypes. + (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS. + + * haifa-sched.c (rank_for_schedule): Don't cast away const-ness. + + * integrate.c (compare_blocks, find_block): Likewise. + + * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2. + + * rtl.h (set_file_and_line_for_stmt): Constify a char*. + + * stmt.c (stmt_status, set_file_and_line_for_stmt, + expand_asm_operands): Likewise. + +Mon Feb 21 17:06:27 2000 Jason Eckhardt + + * predict.c (estimate_probability): Added the pointer heuristic to + the collection of static branch predictors. + +2000-02-21 Catherine Moore + + * config/mips/mips.h (ASM_SPEC): Add -mfix700. + * invoke.texi (-mfix7000): Document. + +2000-02-21 Gabriel Dos Reis + + * diagnostic.c (init_output_buffer): Make it possible to output at + least 32 characters if we're given a too long prefix. + +2000-02-20 Mark Mitchell + + * varasm.c (initializer_constant_valid_p): Call + lang_expand_constant to simplify the constant. + +2000-02-20 Bruce Korb + + * fixinc/inclhack.def(stdio_va_list): + typedef needs to be disabled. + * fixinc/inclhack.sh: regen + * fixinc/fixincl.x: regen + +2000-02-20 Geoff Keating + + * print-rtl.c (print_rtx): Don't print addresses when + flag_dump_unnumbered. + +2000-02-20 Kaveh R. Ghazi + + * sparc.c (sparc_output_scratch_registers): Mark parameter with + ATTRIBUTE_UNUSED. + (sparc_va_arg, sparc_flat_output_function_prologue, + sparc_flat_output_function_epilogue): Cast value to unsigned in + comparison. + (sparc_emit_float_lib_cmp): Remove unused variable `cmp'. + + * sparc.md: Add default case in switch. + +2000-02-19 Richard Henderson + + * c-typeck.c (add_pending_init): Don't abort for multiple + fields at the same offset. + (pending_init_member): Test the correct member. + +2000-02-19 Herman A.J. ten Brugge + + * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node) + instead of SImode. + (start_catch_handler) : Same. + +2000-02-19 Brad Lucier (lucier@math.purdue.edu) + + * Makefile.in: Have flow.o depend on $(EXPR_H) + +Sat Feb 19 18:43:13 2000 Richard Kenner + + * c-common.c (decl_attributes): Set DECL_SIZE_UNIT. + * c-decl.c (duplicate_decls, finish_enum): Likewise. + (finish_decl): Remove -Wlarger-than code from here. + * flags.h (id_clash_len): Now int. + (larger_than_size): Now HOST_WIDE_INT. + * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed. + Clean up checking to see if in table. + (make_bit_field_ref): Remove extra parm to bitsize_int. + * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT. + * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT. + * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size + and for computing size of decl. + * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT. + Move -Wlarger-than code to here. + (layout_record): Remove extra arg to bitsize_int. + Set TYPE_BINFO_SIZE_UNIT. + (layout_union): Remove extra arg to bitsize_int. + Use proper type for size of QUAL_UNION. + (layout_type): Remove extra arg to bitsize_int. + * toplev.c (id_clash_len): Now int. + (larger_than_size): Now HOST_WIDE_INT. + (decode_W_option): Clean up id-clash and larger-than- cases. + * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts. + (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined. + * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New. + (struct tree_decl): New field size_unit. + (size_int_wide): No HIGH operand; NUMBER is now signed. + (size_int_2): Deleted. + (size_int, bitsize_int): Don't use it and rework args. + * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT. + +Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com) + + * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call. + +2000-02-18 Geoff Keating + + * invoke.texi (Warning Options): Add an explanation of why + you might want the -Wfloat-equal flag. + +Fri Feb 18 20:08:57 2000 Richard Kenner + + * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned. + * cppinit.c (new_pending_define): Add cast to avoid warning. + * expmed.c (extract_bit_field): Likewise. + * flow.c (enum reorder_skip_type): New type. + (skip_insns_between_blcok): New it. + Rework to avoid warning about possibly undefined variable. + * function.c (assign_parms): Make thisparm_boundary unsigned. + * genrecog.c (write_switch): Cast XWINT result to int. + * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. + * mips-tfile.c (init_file): Make two versions of FDR initializer: + one for MIPS and one for Alpha. + (get_tag, copy_object): Add casts to avoid warnings. + * optabs.c (init_one_libfunc): Cast NAME to (char *). + * reload.c (find_reloads): Make TYPE enum reload_type. + * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". + * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. + * varasm.c (compare_constant_1): Add cast to avoid warning. + * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC + to (char *). + (alpha_expand_unaligned_load, alpha_expand_unaligned_store): + Cast switch operand of size to int. + (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. + * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort + in unhandled case. + +2000-02-18 Nick Clifton + + * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate + anything for an alignment of zero. + + * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate + anything for an alignment of zero. + +2000-02-18 Martin von Loewis + + * gcc.texi (Bug Reporting): Refer to bugs.html. + (Bug Lists): Likewise. + * system.h (GCCBUGURL): New preprocessor define. + * rtl.c (fancy_abort): Use it. + * gcc.c (main): Likewise. + +2000-02-18 Richard Henderson + + * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove. + (life_analysis_1): Subsume into ... + (life_analysis): ... here. Force PROP_REG_INFO off after reload. + Use update_life_info for the relaxation. + (update_life_info): Update REG_BASIC_BLOCK for registers live on + entry and regs_live_at_setjmp. + (set_noop_p): Simplify. + (notice_stack_pointer_modification_1): Renamed from s/_1//. + (record_volatile_insns): Split into ... + (delete_noop_moves): ... here, + (notice_stack_pointer_modification): ... here, + (insn_dead_p): ... and here. + (propagate_block): Don't query INSN_VOLATILE. + (mark_used_regs): Mind !PROP_REG_INFO. + * toplev.c (rest_of_compilation): Call mark_constant_function here, + not in life_analysis. + +Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com) + + * loop.c (canonicalize_condition): New function, + broken out of get_condition. + (get_condition): Use it. + * expr.h (canonicalize_condition): Prototype it. + + * tree.h (tree_int_cst_msb): Declare. + * tree.c (tree_int_cst_msb): New function. + +2000-02-17 Mark Mitchell + + * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt + isn't set. + + * invoke.texi (-fmessage-length=n): Document. + +2000-02-17 Jason Merrill + + * bitmap.c (bitmap_operation): Don't leak bitmap elements. + +2000-02-17 Mark Mitchell + + * function.c (thread_prologue_and_epilogue_insns): Put a line note + after the prologue. + +2000-02-17 Nick Clifton + + * config/arm/thumb.c: Replace includes of system headers with + #include "system.h". + +2000-02-16 Richard Henderson + + * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]: + Add crtbeginS.o and crtendS.o. + * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o. + (ENDFILE_SPEC): Use crtendS.o. + * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets. + + * alpha/crtbegin.asm (__do_frame_takedown): Merge into ... + (__do_global_dtors_aux): ... here. Call __cxa_finalize if + shared and present. + (__dso_handle): New variable. + * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime + bias to __CTOR_END__. + +2000-02-16 Richard Henderson + + * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T). + +Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson + + * longlong.h (__clz_tab): Declare as static to match definition. + +2000-02-16 Mark Elbrecht + + * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h. + (XREF_FILE_NAME): Define. + + * i386/djgpp.h (DATA_SECTION_ASM_OP): Define. + (EH_FRAME_SECTION_ASM_OP): Define. + (IDENT_ASM_OP): Define. + (TEXT_SECTION_ASM_OP): Define. + (CPP_SPEC): Define. + (CTORS_SECTION_ASM_OP): Define. + (CTOR_SECTION_FUNCTION): Use it. + (DTORS_SECTION_ASM_OP): Define. + (DTOR_SECTION_FUNCTION): Use it. + +2000-02-16 Zack Weinberg + + * reg-stack.c (emit_swap_insn): Do not put a new insn before a + NOTE_BASIC_BLOCK. + + * flow.c (dump_regset, debug_regset, dump_bb, debug_bb, + debug_bb_n): New functions. + (dump_flow_info, print_rtl_with_bb): Use dump_regset. + * basic-block.h: Prototype new functions. + +Wed Feb 16 21:07:53 2000 Denis Chertykov + + * configure.in: Add support for avr target. + * configure: Rebuilt. + + * invoke.texi: Add AVR invocation docs. + * install.texi: Add information about AVR. + * md.texi: Add AVR constraint letters description. + * extend.texi: Add description for AVR specific attributes. + +2000-02-16 Jason Merrill + + * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C". + +2000-02-16 Nick Clifton + + * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw. + (make_insn_raw): Move RTL check here. + +2000-02-16 Kaveh R. Ghazi + + * version.c: Include gansidecl.h and version.h. + + * version.h: Wrap entire file in macro __GCC_VERSION_H__. + + * configure.in (gcc_version): When setting, narrow search to + lines containing `version_string'. + + * Makefile.in (mainversion): Likewise. + (GCC_H): New variable. + (gcc.h): Delete target. + (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h. + (version.o): Depend on version.h. + (dbxout.o): Don't depend on gcc.h. + +Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson + Michael Meissner + + * md.texi (Simple Constraints): Add item about whitespace. + * genoutput.c (strip_whitespace): New. + (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call + strip_whitespace for constraints. + Test pointer using NULL, not 0. + +2000-02-16 Alexandre Oliva + + * cpplib.c (do_line): Pedwarn for #line > 32767. + + * c-lex.c (readescape): Warn about '\x', but do not reject it. + +2000-02-15 Jonathan Larmour + + * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define + to default cpp spec. + (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__. + * cpp.texi: Document __GNUC_PATCHLEVEL__. + * cpp.1: Likewise. + + * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to + default spec. + +2000-02-15 Denis Chertykov + + * configure.in: Add support for avr target. + +Wed Feb 16 03:21:43 2000 J"orn Rennecke + + * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode. + (sh_addr_diff_vec_mode): Don't declare. + * sh.c (sh_addr_diff_vec_mode): Delete. + +Wed Feb 16 01:27:52 2000 J"orn Rennecke + + * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn. + +Wed Feb 16 00:58:06 2000 J"orn Rennecke + + * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name. + (smulsi3_highpart_i): Name. + (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes. + (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise. + (smulsi3_highpart, umulsi3_highpart): Likewise. + + (mulsidi3_i, umulsidi3_i): Make rtl describe operation + correctly independent of endianness. + (mulsidi3, umulsidi3): Now define_insn. Hide details that + confuse the optimizers. + (mulsidi3+1, umulsidi3+1): New define_split. + +Tue Feb 15 23:22:26 2000 Andrew Haley + + * config/sh/sh.md: Guard insn splits against illegal registers. + * config/sh/sh.h: Correct comment about macros. + +Tue Feb 15 22:30:36 2000 J"orn Rennecke + Andrew MacLeod + + * Makefile.in (lcm.o): Depend on insn-attr.h. + * basic-block.h (optimize_mode_switching): Declare. + * lcm.c (tm_p.h, insn-attr.h): #include. + (seginfo, bb_info): New structs. + (antic, transp, comp, delete, insert) : New file-scope static variables. + (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions. + (reg_becomes_live, optimize_mode_switching): Likewise. + * tm.texi: Add description of mode switching macros. + * toplev.c (rest_of_compilation): Call optimize_mode_switching. + + * sh-protos.h (remove_dead_before_cse): Remove prototype. + (fldi_ok, fpscr_set_from_mem): New prototypes. + * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set. + (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS): + Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). + (sh_flag_remove_dead_before_cse): Remove declaration. + (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros. + (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise. + (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise. + * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). + (barrier_align): Allow for JUMP_INSNS containing a parallel. + (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set. + (fldi_ok): New function. + (get_fpscr_rtx): Add fpscr_rtx as GC root. + (emit_sf_insn): Only generate fpu switches when optimize < 1. + (emit_df_insn): Likewise. + (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete. + (sh_flag_remove_dead_before_cse): Delete. + (get_free_reg, fpscr_set_from_mem): New functions. + * sh.md (movdf, movsf): Remove no_new_pseudos code. + (return): Remove emit_fpscr_use / remove_dead_before_cse calls. + +2000-02-15 Loren Rittle + + * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD. + +2000-02-15 Kaveh R. Ghazi + + * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o, + cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h. + + * cccp.c: Include version.h and/or don't declare `version_string'. + * collect2.c: Likewise. + * alpha.c: Likewise. + * arm/aof.h: Likewise. + * arm/coff.h: Likewise. + * arm/elf.h: Likewise. + * arm/pe.h: Likewise. + * arm/tcoff.h: Likewise. + * arm/telf.h: Likewise. + * arm/tpe.h: Likewise. + * arm/vxarm.h: Likewise. + * convex/convex.c: Likewise. + * i386/dgux.c: Likewise. + * i386/sun386.h: Likewise. + * m88k/m88k.c: Likewise. + * mcore/mcore-pe.h: Likewise. + * mips/mips.h: Likewise. + * romp/romp.h: Likewise. + * sh/sh.c: Likewise. + * cpphash.c: Likewise. + * cppinit.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * gcc.c: Likewise. + * gcc.h: Likewise. + * mips-tfile.c: Likewise. + * protoize.c: Likewise. + * toplev.c: Likewise. + * tree.h: Likewise. + + * version.c (version_string): Constify a char*. + + * version.h: New file. + +2000-02-14 Nick Clifton + + * configure.in: Add mcore-elf and mcore-pe targets. + * configure: Regenerate. + + * NEWS: Add note that MCore port has been contributed. + + * invoke.texi: Document command line switches for MCore port. + * install.texi: Add MCore to list of supported targets. + +2000-02-14 Geoff Keating + + * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames, + then we will need to import the frame handling functions. + (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need + to import the frames themselves. + +Mon Feb 14 13:31:01 2000 Stan Cox + Jason Eckhardt + + * basic_block.h: Added prototype for reorder_basic_blocks. + * toplev.c: Changes to add -freorder-blocks and graph dump after + block reordering is done. + * flow.c (reorder_block_def): New structure for use during block + reordering. + (REORDER_BLOCK_*): New macros to access members of above structure. + (skip_insns_between_block, get_common_dest, chain_reorder_blocks, + make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New + functions for block reordering. + +Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson + + * gcc.texi (Passes): Fix typo. + * md.texi (Standard Names): Ditto. + * tm.texi (Storage Layout): Ditto. + +2000-02-13 Zack Weinberg + + * cpplib.c (do_define): Only free the old definition if it + actually had one. + +2000-02-13 Neil Booth + + * cppfiles.c (read_and_prescan): When emitting deferred + newlines, test speccase[] again instead of checking each + possible whitespace character in turn. When we encounter \r, + look behind for \n first, then ahead. + +2000-02-13 Zack Weinberg + + * cse.c (cse_altered): New internal flag. + (cse_insn): Set it if we changed an insn. + (cse_main): Clear cse_altered before each basic block. + Only garbage collect if cse_altered is true afterward. + +Sun Feb 13 14:12:28 2000 Rainer Orth + + * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling. + +Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com) + + * combine.c (simplify_comparison): Fix typo. + +Sun Feb 13 12:57:52 2000 Neil Booth + + * prefix.c (concat, lookup_key): Use xmalloc and xrealloc + consistently. + +2000-02-13 Michael Hayes + + * flow.c (flow_loop_tree_node_add): Use better algorithm by passing + previously inserted node instead of root node. Caller changed. + +2000-02-13 Michael Hayes + + * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete. + +2000-02-12 Kaveh R. Ghazi + + * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor, + __dereg_frame_dtor): Add prototype argument. + + * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise. + + * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise. + + * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise. + + * gthr-vxworks.h (__gthread_once): Likewise. + + * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise. + +Sat Feb 12 01:44:26 MET 2000 Jan Hubicka + + * i386.c (ix86_emit_restore_regs_using_mov): Break out from ... + (ix86_expand_epilogue): ... here. Use mov instead of add to restore + stack pointer in functions w/o saved registers, output LEAVE more often + on TARGET_USE_LEAVE machines. + +2000-02-07 Dmitri Makarov & Bernd Schmidt + + * config/arm/arm.c (arm_init_cumulative_args); New function: + Initlaise the CUMULATIE_ARGS strcuture for a function + definition. + (arm_function_arg): New function: Determine where to place a + function's argument. Also handles deciding the function's + call cookie. + (current_file_function_operand): New function: Return true if + the symbol is a function which has already been compiled. + (arm_is_long_call_p): New function: Return true if the + indicated function should be called via a long call. + (arm_valid_type_attribute_p): New function: Return true if the + attribute is a valid, arm specific, attribute. + (arm_comp_type_attribute): New function: Return true if the + two types have compatible, arm specific, attributes. + + * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a + structure. + (FUNCTION_ARG): Redefine to call arm_function_arg. + (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct + structure field. + (INIT_CUMULATIVE_ARGS): Redefine to call + arm_init_cumulative_args. + (FUNCTION_ARG_ADVANCE): Redefine to use correct structure + field. + (SETUP_INCOMING_VARARGS): Redefine to use correct structure + field. + (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled + functions. + (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION. + (VALID_MACHINE_TYPE_ATTRIBUTE): Define. + (COMP_TYPE_ATTRIBUTES): Define. + + * config/arm/arm.md (call): Call arm_is_long_call_p to decide + if a long call is needed. + (call_value): Call arm_is_long_call_p to decide if a long call + is needed. + (call_symbol): Call arm_is_long_call_p to decide if a long call + is needed. + + * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p. + +2000-02-11 Denis Chertykov + + * README.AVR: New file with information about the avr ports. + * config/avr: New directory with avr port files. + +2000-02-11 Andreas Jaeger + + * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@. + +2000-02-11 Zack Weinberg + + * cpphash.c: Fix formatting, update commentary. + (dump_definition): Take three separate arguments instead of a + MACRODEF structure argument. + * cpphash.h: Update prototype of dump_definition. + * cppinit.c (cpp_finish): Update call of dump_definition. + + * cpplib.c (do_define): Always create new hash entry with + T_MACRO type. Remove redundant check for redefinition of + poisoned identifier. Update call of dump_definition. + (do_undef): Don't call check_macro_name. Rename sym_length to + len. + (do_error, do_warning): Don't use copy_rest_of_line or + SKIP_WHITE_SPACE. + (do_warning): Don't use pedwarn for the actual warning, + only the notice about its not being in the standard. (Fixes + bug with #warning in system headers.) + (do_ident): Stricter argument checking - accept only a single + string after #ident. Also, macro-expand the line. + (do_xifdef): Use cpp_defined. De-obfuscate. + + (do_pragma): Split out specific pragma handling to separate + functions. Use get_directive_token. Update commentary. Do + not pass on #pragma once or #pragma poison to the front end. + (do_pragma_once, do_pragma_implementation, do_pragma_poison, + do_pragma_default): New. + +Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com) + + * jump.c (jump_optimize_1): The first operand in a relational + can be a CONST_INT. + * optabs.c (emit_conditional_move): Handle relationals which + have a known true/false result. + +2000-02-11 Geoff Keating + + * function.c (thread_prologue_and_epilogue_insns): Don't insert + a RETURN insn into a block which already ends with a jump. + +2000-02-11 Geoff Keating + + * haifa-sched.c (BUF_LEN): Increase a lot. + +2000-02-11 Nick Clifton + + * configure.in: Add tm_p_file specification for thumb targets. + * configure: Regenerate. + + * config/arm/thumb-protos.h: New file: Prototypes for exported + functions defined in thumb.c. + +2000-02-11 Robert Lipe + + * Makefile.in (bootstrap-lean): Remove additional files. + (bootstrap2-lean): Likewise. + (VOL_FILES): List of files for above. + +2000-02-11 Nathan Sidwell + + * cpphash.c (special_symbol): Remove spurious argument to + cpp_lookup. + +2000-02-11 Joel Sherrill (joel@OARcorp.com> + + * configure.in: (i*86-*-rtems*): Swapped elf and coff + stanzas. + * configure: Rebuilt. + +2000-02-11 Rodney Brown + + * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef. + +Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com) + + * pa.c, pa.h: Remove trigraph sequences within comments. + +Fri Feb 11 02:51:56 2000 Pavel Roskin + + * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics. + +Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu) + + * sbitmap.h: Make SBITMAP_ELT_BITS unsigned. + +2000-02-11 Michael Hayes + + * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE. + +2000-02-11 Michael Hayes + + * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label. + (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + (ASM_FILE_END): Use c4x_file_end. + * config/c4x/c4x.c (c4x_global_label): New function. + (c4x_external_ref, c4x_file_end): Likewise. + + * config/c4x/c4x-protos.h (c4x_global_label): Add prototype. + (c4x_external_ref, c4x_end_file): Likewise. + +2000-02-10 Zack Weinberg + + * cppexp.c: Don't include cpphash.h. + (parse_charconst, cpp_lex): Use cpp_defined. + (cpp_lex): Use get_directive_token throughout. Remove + unnecessary cases from switch. Move assertion-handling code + down to OTHER case. + (cpp_parse_expr): If we see '+' or '-', check the context to + determine if they are unary or binary operators. Streamline + the jumps a bit. Do not call skip_rest_of_line. + + * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace + static. Export get_directive_token. Update commentary. + (cpp_defined): New function. + (do_define): Remove reference to T_PCSTRING. Call + free_definition to release memory for old definition, when + redefining a macro. + (eval_if_expression): Set only_seen_white to 0 before calling + cpp_parse_expr. Call skip_rest_of_line after it returns. + (cpp_read_check_assertion): Don't preserve a pointer into the + token buffer across a call to cpp_get_token. + + * Makefile.in (cppexp.o): Don't depend on cpphash.h. + * cppfiles.c (redundant_include_p): Use cpp_defined. + * cpphash.c (free_definition): New function. + (delete_macro): Use it. Update commentary. + * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and + free_definition. + * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING + from enum node_type. Prototype cpp_defined and get_directive_token. + Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace. + + * fix-header.c (check_macro_names): Use cpp_defined. + (read_scan_file): Set inhibit_warnings and inhibit_errors in + the options structure. + +2000-02-10 Franz Sirl + + * c-pragma.c (maximum_field_alignment): Remove duplicate declaration. + +2000-02-10 Jason Merrill + + * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin) + rather than die->die_tag. + +Thu Feb 10 16:26:49 2000 Richard Kenner + + * combine.c (make_extraction, force_to_mode): Avoid warning on + mixed-signedness conditionals. + (make_field_assignment, nonzero_bits): Likewise. + * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned. + (store_split_bit_field, extract_split_bit_field): Likewise. + (extract_fixed_bit_field, store_bit_field, + * expr.c: Change alignment to be unsigned everywhere. + (move_by_pieces, store_constructor_field, store_constructor): + Alignment parm is unsigned. + (emit_block_move, emit_group_load, emit_group_store): Likewise. + (clear_storage, emit_push_insn, compare_from_rtx): Likewise. + (do_compare_rtx_and_jump): Likewise. + (move_by_pieces_ninsns, clear_by_pieces): Likewise. + Compare align with GET_MODE_ALIGNMENT. + (expand_expr_unaligned): Pointer to alignment is pointer to unsigned. + (get_inner_reference): Likewise. + (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts. + (expand_assignment): Local vars for alignment now unsigned. + (store_constructor, store_field, expand_expr, do_jump): Likewise. + (do_compare_and_jump): Likewise. + (store_field): Call new function expr_align. + * expr.h (emit_block_move, emit_group_load, emit_group_store): + Alignment arg now unsigned. + (clear_storage, emit_push_insn, compare_from_rtx): Likewise. + (do_compare_rtx_and_jump, store_bit_field): Likewise. + (extract_bit_field): Likewise. + * fold-const.c (add_double): Add cast to eliminate signedness warning. + * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned. + (get_best_mode): Alignment arg is unsigned. + * rtl.h (move_by_pieces): Likewise. + * store-layout.c (maximum_field_alignment, set_alignment): + Now unsigned. + (layout_decl): Alignment arg is now unsigned. + Remove unneeded casts. + (layout_record, layout_union, layout_type): Remove unneeded casts. + Local alignment variables now unsigned. + (get_best_mode): Alignment arg now unsigned. + * tree.c (expr_align): New function. + * tree.h (expr_align): Likewise. + (maximum_field_alignment, set_alignment): Now unsigned. + (get_inner_reference): Alignment argument is now pointer to unsigned. + * varasm.c (assemble_variable): Add cast to eliminate warning. + +Thu Feb 10 12:56:47 2000 Jim Wilson + + * expmed.c (store_bit_field): If op0 and fieldmode are the same size, + then store directly into op0. + + * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for + the CALL_INSN, and emit the note immediately after it. + +2000-02-10 Nick Clifton + + * config/arm/thumb.md (epilogue): Include a (return) in the + generated insn, and emit it using emit_jump_insn not + emit_insn. + +Thu Feb 10 18:28:59 MET 2000 Jan Hubicka + + * function.c (assign_temp): Change zero-sized arrays to size 1. + * integrate.c (expand_inline_function): Do not update + stack_alignment_needed + * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY, + add some sanity checking, remove optimization for function with + zero frame size. + +2000-02-10 Kaveh R. Ghazi + + * flow.c (mark_regs_live_at_end): Delete unused variables. + + * ggc-page.c (ggc_page_print_statistics): bzero -> memset. + + * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment' + in macro FRAME_GROWS_DOWNWARD. + + * stmt.c (expand_end_bindings): Delete unused variable. + + * unroll.c (iteration_info): Mark parameter `loop' with + ATTRIBUTE_UNUSED. + +2000-02-10 Alexandre Oliva + + * fixinc/server.c (load_data): Return NULL if the marker line is + not found. + (run_shell): If load_data returns NULL, retry the command once, in + a new shell. + + * configure: Rebuilt. + +2000-02-09 Bruce Korb + + * gcc/fixincludes: ** DELETED ** + * gcc/fixcpp: ** DELETED ** + * gcc/fixinc-nt.sed: ** DELETED ** + * gcc/just-fixinc: ** DELETED ** + * gcc/Makefile.in: Removed out-dated commentary + * gcc/configure.in: Removed fast-fixincludes disablement. + * MAINTAINERS(Ian Taylor) moved to "Write after approval" group. + +2000-02-09 Clinton Popetz + * function.c (thread_prologue_and_epilogue_insns): Uncomment + last change. + +2000-02-09 Richard Henderson + + * jump.c (delete_insn): Don't delete user labels at -O0. + +2000-02-09 Robert Lipe + + * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS. + Don't link with HOST_LIBS. + +2000-02-09 Zack Weinberg + + * configure.in: Correct --help text for --with-dwarf2. + Put tm-dwarf2.h after other tm files, if it's requested. + * configure: Regenerate. + * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before + defining it. + +2000-02-09 Zack Weinberg + + * cpplib.h: Provide HASHNODE typedef and forward decl of + struct hashnode only. Kill cpp_hashnode typedef. MACRODEF, + DEFINITION, struct hashnode, struct macrodef, struct + definition, scan_decls prototype, default defn of + INCLUDE_LEN_FUDGE moved elsewhere. + + * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct + definition, and struct hashnode moved here. Remove the unused + 'predefined' field from struct definition. Replace the 'args' + union with its sole member. All users updated (cpphash.c). + Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add + multiple include guard. + + * cpphash.c (hashf): Make static; use better algorithm; drop + HASHSIZE parameter; return an unsigned int. + (cpp_lookup): Drop HASH parameter. PFILE parameter is + used. Calculate HASHSIZE modulus here. + (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus + here. + (create_definition): Drop PREDEFINITION parameter. + * cpplib.c (do_define): Don't calculate a hash value here. + Don't pass (keyword == NULL) to create_definition. + + * scan.h: Prototype scan_decls here. + * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here. + * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All + callers of cpp_lookup and cpp_install updated. + + * cpphash.c (macarg): Hoist all the flag diddling out of the + function... + (macroexpand): ... and out of the loop that calls macarg. + Skip over the initial paren before macro arguments with + cpp_get_non_space_token; point may be some distance before + that paren. Abort if it's not there. + + * cpplib.c (parse_clear_mark): Delete function. + (parse_set_mark, parse_goto_mark): Make static. + (ACTIVE_MARK_P): New macro. + (skip_block_comment, skip_line_comment): Do not bump the line + if ACTIVE_MARK_P is true. + (cpp_pop_buffer): The buffer to be popped may not have an + active mark. + (cpp_get_token): When looking for the initial paren before + macro arguments, only set a mark in a file buffer, Always + return to that mark before proceeding to call macroexpand or + return a NAME token. + + * cpplib.h: Remove prototypes of parse_set_mark, + parse_clear_mark, parse_goto_mark. + (struct cpp_options): Rename 'put_out_comments' to + 'discard_comments' and invert its sense. + * cppinit.c, cpphash.c, cpplib.c: All users of + put_out_comments changed to use discard_comments, with + opposite sense. + +2000-02-09 Clinton Popetz + + * function.c (thread_prologue_and_epilogue_insns): Don't delete + the edge from a block that both jumps and falls through to the + fallthru block. + +2000-02-09 Scott Bambrough + + * config/arm/arm.md (movsi): In PIC mode, make sure that a + constant source address is legitimate. + +2000-02-09 Philip Blundell + + * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF + correctly. + + * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when + generating PIC. + (LEGITIMATE_PIC_OPERAND): Disallow references to labels. + +2000-02-09 Zack Weinberg + + * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer + ends with a newline and a NUL. Don't be so clever manipulating + strings. + +Wed Feb 9 14:18:08 MET 2000 Jan Hubicka + + * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed, + not to BIGGEST_ALIGNMENT. + +2000-02-08 Geoff Keating + + * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant. + * dwarf2out.c (dwarf_cfi_name): Print name of new constant. + (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed. + (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended. + * frame.c (execute_cfa_insn): Handle + DW_CFA_GNU_negative_offset_extended. + +2000-02-08 Richard Henderson + + * flow.c (tidy_fallthru_edges): Split out from ... + (delete_unreachable_blocks): ... here. + (find_basic_blocks): Use it. + +Tue Feb 8 15:51:50 2000 Richard Kenner + + * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY. + +2000-02-08 Zack Weinberg + + * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a. + (gen_protos.o): Don't depend on cpplib.h or cpphash.h. + (fix-header.o): Don't depend on cpphash.h. + + * scan.c (hashstr): New function. + * scan.h: Prototype it. + * fix-header.c: Don't include cpphash.h. Use hashstr. + * gen-protos.c: Don't include cpphash.h or cpplib.h. Use + hashstr. Report hash table statistics. Add private + definition of xrealloc. + +2000-02-08 Kaveh R. Ghazi + + * i386.h (TARGET_SWITCHES): Fix typo in option name. + +2000-02-08 Clinton Popetz + + * function.c (thread_prologue_and_epilogue_insns): Don't replace + jumps with returns unless they are jumps to the fallthru block. + +Tue Feb 8 07:53:55 2000 Jan Hubicka + + * i386.md (addqi3_cc): Fix constraints. + +Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson + + * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return. + +2000-02-07 Mark Mitchell + + * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a + carriage return after a macro name. + +2000-02-07 Fred Fish + + * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing + so the gcc2_compiled symbol doesn't confuse BeOS debuggers. + +2000-02-07 Zack Weinberg + + * cppfiles.c (deps_output): Count spacers in deps_column. + +2000-02-07 Neil Booth + + * cppinit.c (initialize_dependency_output): If there is no + suffix, don't try to look for known suffixes. Use strrchr. + (cpp_start_read): Remove duplicate initialization. + +Mon Feb 7 18:36:41 MET 2000 Jan Hubicka + + * calls.c (compute_argument_block_size): New argument + preferred_stack_boundary. + (expand_call): update cfun->preferred_stack_boundary, update call of + compute_argument_block_size + (emit_library_call): Increate cfun->preferred_stack_boundary + to PREFERRED_STACK_BOUNDARY + (emit_library_call_value): Likewise. + * explow.c (allocate_dynamic_stack_spave): Likewise. + * function.c (prepare_function_start): Set + cfun->preferred_stack_boundary + * function.h (struct function): Add preferred_stack_boundary field. + * integrate.c (expand_inline_function): Update + cfun->preferred_stack_boundary and cfun->stack_alignment_needed. + (copy_rtx_and_substitute): Align frame to stack_alignment_needed only. + * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary. + +2000-02-06 Zack Weinberg + + * cpplib.c (my_strerror, cpp_error, cpp_error_with_line, + cpp_error_from_errno, cpp_warning, cpp_warning_with_line, + cpp_pedwarn, cpp_pedwarn_with_line, + cpp_pedwarn_with_file_and_line): Move to cpperror.c. + (cpp_print_file_and_line, v_cpp_error, v_cpp_warning, + v_cpp_error_with_line, v_cpp_warning_with_line, + cpp_message_from_errno, cpp_perror_with_name): Delete. + + * cpperror.c (cpp_print_containing_files): Take starting + buffer as argument. + (cpp_file_line_for_message): Rename to cpp_print_file_and_line. + (v_cpp_message): Now called directly by all entry points. + Remove -1 case. + (cpp_pfatal_with_name, cpp_message): Delete. + (cpp_notice_from_errno, cpp_ice): New functions. + (cpp_notice): Is now for reporting error conditions, just + without an associated file. + (cpp_error, cpp_error_with_line): Don't do anything if + opts->inhibit_errors is on. + (cpp_pedwarn_with_file_and_line): Take column argument also. + + * cpplib.h: Update prototypes of exported functions. + (struct cpp_options): Add inhibit_errors. + + * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for + non-error messages. Include intl.h. + + * cppinit.c, cppmain.c: Likewise. Also, use + cpp_notice_from_errno instead of cpp_perror_with_name or + cpp_pfatal_with_name, and cpp_notice instead of cpp_message. + + * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to + report internal errors. + + * cpplib.c (do_define): Switch bcopy to memcpy. + Give cpp_pedwarn_with_file_and_line a dummy column argument. + + * cpplib.c (copy_rest_of_line): Revert previous change: don't + bail out early if we hit a line comment. + +2000-02-06 Richard Henderson + + * flow.c (flow_delete_insn, make_edge, remove_edge): Export. + * basic-block.h: Declare them. + * emit-rtl.h (active_insn_p): New. + (next_active_insn, prev_active_insn): Use it. + * rtl.h: Declare it. + * function.c (emit_return_into_block): New. + (thread_prologue_and_epilogue_insns): Insert return insns instead + of epilogues when possible. + * jump.c (jump_optimize_1): Remove code to insert a return insn + on the fallthru to the exit block. + + * i386.c (ix86_can_use_return_insn_p): Fail for large poped args + and for non-empty stack frames. + * i386.md (return): Expand to return-pop as needed. + +2000-02-06 Richard Henderson + + * simplify-rtx.c (simplify_relational_operation): Canonicalize + constant to op1 for testing. + +2000-02-06 Michael Hayes + + * config/c4x/c4x.md (*ldi_on_overflow): New pattern. + (fixuns_truncqfqi2): Use it. + +2000-02-06 Richard Henderson + + * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack + as a TYPE_LEA insn. + + * i386.md (widening and peepholes): Mask the constant instead of + using gen_lowpart. + +2000-02-05 Zack Weinberg + + * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump + input pointer before possibly branching off to the backslash + code. + * cpphash.c (macroexpand): Correctly delete \r escapes when + stringifying parameters. + * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment + if we can; bail out early if we hit a line comment. + (handle_directive): Treat '# 123' in an .S file just like + '# '. Discard the shifted '#' if we hit '#\n'. + Return 1 for '# not_a_directive'. + (get_directive_token): Pop macro buffers here, so that + cpp_get_token can't sneakily move past a newline. + Add sanity checks. + (cpp_get_token): goto randomchar if handle_directive returns 0. + + * cppalloc.c: Update copyright. + * cpplib.c: Merge all the static function prototypes into one + block. + * cpplib.h: Remove #if 0 block. + + * cpperror.c: Remove #ifdef EMACS block. + * cppmain.c: Likewise. + * cpphash.c: Remove #if 0 blocks. + * cppinit.c: Remove #if 0 blocks, and the -lint option. + * cpplib.c: Remove #if 0 blocks and code referencing + pcp_inside_if or for_lint. Remove duplicate error message. + Fix error messages for #else after #else or #elif. Reformat. + Remove archaic TODO list. + * cpplib.h: Remove pcp_inside_if and for_lint flags. + +2000-02-05 Zack Weinberg + + * i386/osf1elf.h: Add missing backslash to multiline string. + +2000-02-05 Kaveh R. Ghazi + + * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg. + +2000-02-05 Kaveh R. Ghazi + + * Makefile.in (c-common.o): Depend on $(EXPR_H). + + * c-common.c: Include expr.h. + + * c-pragma.c (mark_align_stack): Add prototype. + + * caller-save.c (add_stored_regs): Likewise. + + * combine.c (record_promoted_value): Likewise. + + * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro): + Likewise. + + * cppinit.c (new_pending_define): Likewise. + + * cpplib.c (skip_block_comment, skip_line_comment): Likewise. + + * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists, + AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, + AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p, + class_scope_p): Likewise. + + * dwarf2out.h (dwarf2out_set_demangle_name_func, + dwarf2out_add_library_unit_info): Likewise. + + * ggc.h (ggc_page_print_statistics): Likewise. + + * haifa-sched.c (propagate_deps): Likewise. + + * reg-stack.c (next_flags_user, record_label_references): Likewise. + + * rtl.h (set_stack_check_libfunc): Likewise. + + * toplev.h (set_fatal_function): Likewise. + + * toplev.c (set_fatal_function): Delete prototype. + + * diagnostic.c: Deconstify functions returning malloc'ed ptrs. + +2000-02-05 Geoff Keating + + * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX. + (FUNC_END): Likewise. + +2000-02-05 Michael Hayes + + * caller-save.c: Include tm_p.h. + +2000-02-05 Michael Hayes + + * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2). + +2000-02-04 Neil Booth + + * cccp.c (main): Check 'dir' for a NULL pointer before passing + it to strcmp. + +2000-02-04 Zack Weinberg + + * recog.h: Remove NO_MD_PROTOTYPES ifdefs. + * genflags.c: Use the max_operand_1 logic from genemit.c to + calculate how many arguments gen_insn prototypes have. Remove + NO_MD_PROTOTYPES ifdefs from the generated file. + * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated + file. Cast gen_insn initializers to insn_gen_fn. + * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES. + * gcc.texi: Remove documentation of NO_MD_PROTOTYPES. + +2000-02-04 Kaveh R. Ghazi + + * fixinc/Makefile.in (HDR): Add machname.h. + (clean): Likewise. + +2000-02-05 Michael Hayes + + * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ... + (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto. + (c4x_cpu_version): Ditto. + * config/c4x/c4x-protos.h: ... here. + +2000-02-04 Jason Merrill + + * dwarf2out.c (add_abstract_origin_attribute): Don't call + gen_abstract_function on our context if we're a nested function. + +2000-02-05 Michael Hayes + + * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite. + * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix. + +2000-02-04 Bruce Korb + + * fixinc/genfixes(machname.h): + Move the functionality from gen-machine.h into this file. + UNdef MN_NAME_PAT if there are no names to change. + Also, be a little kinder when AutoGen is not present. + + * fixinc/Makefile.in(machname.h): + Change the generation rule to use genfixes. + + * fixinc/fixfixes.c(machine_name): + machine_name_fix's functionality now dependent upon whether + MN_NAME_PAT is defined. + + * fixinc/fixtests.c(machine_name): + ditto. + + * fixinc/fixlib.c(mn_get_regexps): conditional on definition + of MN_NAME_PAT. + + * fixinc/fixlib.h(mn_get_regexps): + ditto + + * fixinc/gen-machine.h: DELETED + +2000-02-04 Jan Hubicka + Richard Henderson + + * i386.c (SAVE_REGS_FIRST): Remove. + (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode. + (ix86_compute_frame_size): Likewise. + (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack. + (ix86_emit_restore_regs): Remove. + (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack + when a frame pointer is in use. + (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov + instead of pop to restore a register when profitable; emit leave + when profitable. + (ix86_attr_length_default): Handle pro_epilogue_adjust_stack + as a TYPE_LEA insn. + (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU. + * i386.md (prologue_allocate_stack): Remove. + (epilogue_deallocate_stack): Remove. + (pro_epilogue_adjust_stack): New. + +2000-02-04 Richard Henderson + + * function.c (diddle_return_value): Rework to use a callback function. + Use current_function_return_rtx if it's been set up. + (do_clobber_return_reg, clobber_return_register): New. + (do_use_return_reg, use_return_register): New. + (expand_function_end): Use them. + * stmt.c (expand_null_return): Likewise. + * function.h: Declare them. + * flow.c (mark_regs_live_at_end): Use diddle_return_value. + (mark_reg): Change arguments as appropriate for callback. + * integrate.c (expand_inline_function): Revert 19 Jan change. + +Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson + + * tm.texi (Values in Registers): Fix typo: "fo" "for". + (Misc): Say the scheduler, not the Haifa scheduler. + +2000-02-04 Clinton Popetz + + * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs + when in_mem is set. Update all callers. + +2000-02-04 Richard Henderson + + * i386/openbsd.h (INT_ASM_OP): Define. + +Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson + + * tm.texi: Fix various typos. + +Thu Feb 3 17:17:32 2000 Steve Ellcey + + * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case. + (MD_STARTFILE_PREFIX_1): New macro. + +Thu Feb 3 15:08:13 MET 2000 Jan Hubicka + + * i386.md (movstrsi, clrstrsi): Support variable sized copies, align + destination when needed. + (strmovsi, strsetsi): New expander. + (strmovsi_1, strsetsi_1): New pattern. + * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP, + TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros. + (TARGET_SWITCHES) Add align-stringops and inline-all-stringops. + * invoke.texi (align-stringops, inline-all-stringops): Document. + +Wed Feb 2 23:04:47 2000 Krister Walfridsson + + * i386/netbsd.h (INT_ASM_OP): Define. + +2000-02-02 Zack Weinberg + + * cpplib.h (cpp_reader): Add new flag, no_directives. + * cpphash.c (macarg): Set it. + * cpplib.c (handle_directive): If no_directives is on and we + find a directive, issue an error and discard the line. + +Wed Feb 2 13:07:10 2000 Jim Wilson + + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for + FP constants. Add ! TARGET_FPU check for FP constants. + +2000-02-02 Clinton Popetz + + * flow.c (find_basic_blocks): Don't kill label_value_list + here. + (cleanup_cfg): Kill it here. + +Wed Feb 2 08:12:30 2000 Richard Kenner + + * expr.c (store_field): Ensure ALIGN is no stricter than the + alignment of EXP. + +2000-02-02 Richard Henderson + + * jump.c (delete_insn): Partially revert 19 Jan change; + don't convert unused code labels to notes at -O0. + +2000-02-02 Herman A.J. ten Brugge + + * toplev.c (rest_of_compilation): Run rebuild_jump_labels after + split_all_insns to recreate REG_LABEL notes for flow2 pass. + +2000-02-01 Richard Henderson + + * i386.c (general_no_elim_operand): New. + (nonmemory_no_elim_operand): New. + (ix86_expand_move): Copy eliminable operands before a push. + * i386-protos.h: Declare new functions. + * i386.h (CAN_ELIMINATE): Simplify. + (PREDICATE_CODES): Update. + * i386.md (push insns): Don't allow eliminable register operands. + +2000-02-01 Richard Henderson + + * flow.c (mark_regs_live_at_end): Follow expand_function_end and + replace BLKmode with DECL_RTL's mode. + +2000-02-01 Zack Weinberg + + * frame.c (find_fde): Convert for loop to do-while so compiler + sees it's always executed at least once. + * libgcc2.c (BBINBUFSIZE): Kill. + (__bb_init_prg): Use fgets. + (__bb_exit_trace_func): Don't paste strings. + * unroll.c (unroll_loop): Initialize unroll_type, not + unroll_number, and tweak logic to match. + + * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in + all failure paths. + (ix86_flags_dependant): Likewise. Disentangle control flow. + (ix86_sched_reorder): Break guts out to + ix86_sched_reorder_pentium and ix86_sched_reorder_ppro. + (ix86_sched_reorder_ppro): Initialize pair2 and insnp before + any possible use. + + * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't + use string concatenation. Don't save and restore esi. + + * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def. + (machname.h): Remove script to separate file. Use two-step + sequence so target is not created if script fails. + * fixinc/gen-machname.h: New file. Handle case where no non-reserved + identifiers are defined. + * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is + an empty string, machine_name doesn't need to do anything at + all. + (is_cxx_header): Add more cases to regexp. + * fixinc/fixlib.h: Update prototype. + * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of + mn_get_regexps. + * fixinc/fixincl.c: Define NO_BOGOSITY. + + * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out. + (hp_sysfile): Add missing comma. + (math_exception): Put the wrapper ifdefs at the beginning and + the end of the file. + * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate. + +2000-02-01 Richard Henderson + + * sparc.c (fp_zero_operand): Turn into a normal predicate. + Use CONST0_RTX. Update all callers. + * sparc.h, sparc-protos.h: Update accordingly. + * sparc.md (fp mov insns): Use fp_zero_operand directly + where applicable. + +Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson + + * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS + example. + +2000-02-01 Kaveh R. Ghazi + + * Makefile.in (specs.ready): New target. + (fixinc.sh): Depend on `specs.ready' instead of `specs'. + +2000-02-01 Kaveh R. Ghazi + + * fixinc.irix: Use unique filenames for writing into /tmp, + * fixinc.ptx: Likewise. + * fixinc.sco: Likewise. + * fixinc.svr4: Likewise. + * fixinc.winnt: Likewise. + +2000-02-01 Kaveh R. Ghazi + + * tsystem.h: New file. + + * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o, + s-crtS): Depend on tsystem.h. + + * crtstuff.c: Include tsystem.h. + * frame.c: Likewise. + * libgcc2.c: Likewise. + +Tue Feb 1 19:53:27 CET 2000 Jan Hubicka + + * builtins.c (expand_builtin_memset): Expand for variable sized + lengths too. + +2000-02-01 David Billinghurst + + * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based + on ABI. + +Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson + + * dwarfout.c (SHORT_TYPE_SIZE): Correct default. + + * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE. + +2000-01-31 Chandra Chavva + + * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed + case 3->2 combining (combining with splitting) in which 2 is CC0 + setter/user and 3 is user. The rest of cases 2->1 and 3->2 are + checked at the begining of the function with the aid of calling + function 'can_combine_p'. + +2000-01-31 Dave Brolley + + * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'. + +2000-01-31 Jason Merrill + + * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the + new label. + +2000-01-31 Kaveh R. Ghazi + + * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros. + + * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): + PROTO -> PARAMS. + +2000-01-30 Zack Weinberg + + * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h, + i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h, + i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h, + i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h, + i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h, + i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, + i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h, + i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h, + i386/vxi386.h, i386/win-nt.h, i386/win32.h: + Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES. + + * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h: + Add %(cpp_cpu) to CPP_SPEC. + + * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h: + Add %(cc1_cpu) to CC1_SPEC. + +2000-01-28 Ulrich Drepper + + * c-decl.c (c_decode_option): Accept optional numeric argument to + -Wformat and set warn_format. + * c-common.c: Don't emit warning about non-constant printf format + string unless warn_format > 1. + +2000-01-30 Richard Henderson + + * alpha.md (return_internal): Allow after reload only. + +2000-01-30 Richard Henderson + + * i386.c (ix86_compute_frame_size): Omit padding1 if the + local frame size is zero. + +2000-01-30 Richard Henderson + + * alpha.c (alpha_expand_epilogue): Don't emit the return insn. + * alpha.h (EPILOGUE_USES): New. Mark $26 live. + * alpha.md (return): Turn into an expander. + (return_internal): Don't use $26. + (epilogue): Emit the return insn. + +2000-01-30 Richard Henderson + + * alpha.md (negtf2, abstf2): Fix word order thinko. + (extendsftf2): New. + (trunctfsf2): Avoid intermediate rounding errors. + +2000-01-30 Zack Weinberg + + * cppfiles.c (find_position): Drop 'colp' argument, return the + new line base. + (read_and_prescan): Adjust to match. Don't ever manipulate + line or line_base except via find_position. + +2000-01-29 Zack Weinberg + + * c-parse.in: Apply Ulrich's changes from c-parse.y. + * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c: + Regenerate. + +2000-01-29 Zack Weinberg + + * cpperror.c (cpp_file_line_for_message): If 'line' is zero, + just print "". If 'filename' is null or an + empty string, print "" for the filename. + * cpplib.c (do_define): Don't print the 'location of the + previous definition' message if we're still parsing the + command line. + (cpp_pedwarn_with_file_and_line): Always call + cpp_file_line_for_message. + +2000-01-29 Mark Mitchell + + * flow.c (mark_regs_live_at_end): Fix typo. + +2000-01-28 Ulrich Drepper + + * c-common.c: Adjust variable names, comments, help strings to c99. + * c-lex.c: Likewise. + * c-parse.y: Likewise. + * c-tree.h: Likewise. + * cccp.c: Likewise. + * cpplib.h: Likewise. + * c-decl.c: Likewise. Recognize options with names "*99" as well. + * cppinit.c: Likewise. + +2000-01-29 Herman A.J. ten Brugge + + * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. + * c4x.c: Define the optab rtx values. + (c4x_add_gc_roots): Add the ggc roots for these optab rtx values. + (c4x_emit_libcall): Use new optab rtx values. + (c4x_emit_libcall3): Likewise. + (c4x_emit_libcall_mulhi): Likewise. + * c4x-protos.h: Add prototypes for optab rtx values and change + prototypes for above c4x_emit_libcall functions. + +2000-01-29 Herman A.J. ten Brugge + + * c4x.c (c4x_output_ascii): Restrict line length of output when TI + syntax is used. + (c4x_function_prologue): Use regnames intead of float_reg_names when + TI syntax is used. + (c4x_function_epilogue): Likewise. + (c4x_print_operand): Likewise. + * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine. + * c4x.md (set_high): Disable for TARGET_TI. + +2000-01-29 Herman A.J. ten Brugge + + * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading + of framepointer + constant to ADDR_REGS class. + * c4x.md (addqi3, addqi3_noclobber_reload): Update. + * c4x.c (std_or_reg_operand): New function. + * c4x-protos.h (std_or_reg_operand): Prototype it. + +2000-01-29 Herman A.J. ten Brugge + + * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same + object names as libgcc2.c. + * libgcc.S: Use newly defined names. + +Fri Jan 7 19:48:04 CET 2000 Jan Hubicka + * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New + function. + * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare. + * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro. + (FLOW_LOOP_LAST_BLOCK): Likewise. + +2000-01-21 Michael Hayes + + * basic-block.h (struct loop): New fields 'first' and 'last'. + * flow.c (flow_loops_find): Compute loop->first and loop->last. + (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG + and loop->last to check for NOTE_INSN_LOOP_END. + +Fri Jan 28 10:57:58 2000 Jason Eckhardt + + * predict.c (estimate_probability): Use the new FIRST and LAST fields + of the loop descriptor rather than HEADER and LATCH. Also added + missing break statements as well making some coding style modifications + as suggested by Michael Hayes. + +2000-01-28 Richard Henderson + + * flow.c (find_basic_blocks): Remove do_cleanup argument. + Break out that code ... + (cleanup_cfg): ... here. + (commit_one_edge_insertion): Detect a return instruction being + emitted to an edge. Emit a barrier following; clear fallthru. + (commit_edge_insertions): Verify CFG consistency. + * function.c (expand_function_start): Kill unused variable. + (expand_function_end): Likewise. + (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge + to insert the epilogue. + + * gcse.c (gcse_main): Adjust for find_basic_blocks change. + (delete_null_pointer_checks): Likewise. + * output.h: Likewise. + * reg-stack.c (reg_to_stack): Likewise. + * toplev.c (rest_of_compilation): Likewise. Run + thread_prologue_and_epilogue_insns after rebuilding the CFG. + +2000-01-28 Richard Henderson + + * Makefile.in (flow.o): Revert 24 Jan change. + * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode + FUNCTION_VALUE result to DECL_RESULT's mode. + + * haifa-sched.c (schedule_insns): Don't recompute reg info + after reload. + +2000-01-28 Zack Weinberg + + * configure.in: Make --enable-cpplib the default. + * configure: Regenerate. + * gcc.dg/990119-1.c: No longer expected to fail. + +2000-01-28 Bernd Schmidt + + * jump.c (jump_optimize_1): Delete an optimization that is also done + by merge_blocks in flow. + +2000-01-28 Kaveh R. Ghazi + + * diagnostic.c (build_message_string, output_printf, + line_wrapper_printf): Add ATTRIBUTE_PRINTF_*. + (build_location_prefix): Fix non-literal format string. + +2000-01-27 Richard Henderson + + * alpha.md (trunctfsf2): New. + +2000-01-27 Andrew Hobson + + * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH. + +2000-01-27 Zack Weinberg + + * cppinit.c (cpp_handle_option): Recognize C++ comments under + -std=gnu89. + * cpplib.c (skip_block_comment, skip_line_comment): Split code + out of... + (skip_comment) ... here. Permit C++ comments in system + headers always. Warn about C++ comments in user code under + -std=gnu89 -pedantic. + (copy_comment): Use skip_comment. + (cpp_skip_hspace, cpp_get_token): skip_comment can no longer + return EOF. + (consider_directive_while_skipping, do_else, do_endif): Call + validate_else unconditionally. + (validate_else): Check CPP_PEDANTIC here. Accept non-comment + text after the conditional in a system header. + * cpplib.h (struct cpp_buffer): Add flag + warned_cplusplus_comments. + +2000-01-27 Geoffrey Keating + + * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too. + Use unshare_all_rtl_1. + (unshare_all_rtl_again): New function. + (unshare_all_rtl_1): New function split out of unshare_all_rtl. + + * function.c (purge_addressof_1): Use unshare_all_rtl_again + rather than resetting the 'used' flags ourself. + + * toplev.c (rest_of_compilation): Add current_function_decl + to the unshare_all_rtl call. + * tree.h: Prototype unshare_all_rtl. + * rtl.h: Prototype unshare_all_rtl_again here. + +2000-01-27 Geoffrey Keating + + * genoutput.c (output_prologue): Include ggc.h in generated + files. + * Makefile.in (insn-output.o): Depends on ggc.h. + +2000-01-27 Ian Dall + Hans-Peter Nilsson + + * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete. + Remove redundant include of xm-ns32k.h. + * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions. + Remove redundant include of xm-ns32k.h. + * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine. + Remove redundant include of xm-ns32k.h. + * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions. + + * ns32k/ns32k.h: Update comment on multiply-add instructions. + (TARGET_SWITCHES): Add documentation strings. + (DWARF_FRAME_REGNUM): Override default definition. + (REG_CLASS_CONTENTS): Add comments. + (SUBSET_P): Format to reduce line length. + (SMALL_REGISTER_CLASSES): Make a run time option. + (GO_IF_NONINDEXED_ADDRESS): Reformat. + (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before + dereferencing it. Braces to avoid "ambiguous else" were misplaced. + (regclass_map): fix typo in comment. + * ns32k/ns32k.c: Add spaces before parentheses for consistant style. + Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...). + (trace, reg_or_mem_operand): Delete, unused function. + (calc_address_cost): Small offsets are cheaper than large ones. + (expand_block_move): Generate more efficient code when bytes is a + known at compile time. + * ns32k/ns32k.md: Alternate constraints for multiply-add instructions. + (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand + instead of reg_or_mem_operand. + + * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs, + not general_operand. Similarly use "=rm" or stricter, not "=g". + For input operands, use stricter constraints than "g" if not + general_operand. Similarly use stricter predicate than + "general_operand" when stricter constraints than "g" are present, + except for matching constraints. + (movstrsi): Use "memory_operand" for operands 0 and 1. + (truncsiqi2, truncsihi2, trunchiqi2): Remove. + (udivmoddisi4_internal): Use nonimmediate_operand for operand 0, + not reg_or_mem_operand. + (udivmoddisi4): Ditto. + Use nonimmediate_operand for operand 1, not reg_or_mem_operand. + Use nonimmediate_operand for operand 3, not register_operand. + (udivmoddiqi4_internal): Use register_operand for operand 1, not + reg_or_mem_operand. + +2000-01-27 Fred Fish + + * gthr-posix.h: Fix typo; compatibily -> compatibility. + * gthr-single.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-vxworks.h: Likewise. + * gthr-win32.h: Likewise. + * gthr.h: Likewise. + +2000-01-27 Zack Weinberg + + * cppinit.c: Add " (cpplib)" to end of string printed by + -v / --version. + +2000-01-27 Richard Henderson + + * alpha.c (alpha_emit_conditional_move): Use VOIDmode when + testing for a signed comparison. + (alpha_emit_floatuns): New. + * alpha-protos.h: Declare it. + * alpha.md (floatunsdisf2, floatunsdidf2): New. + (extendsfdf2): Tidy. + +2000-01-27 Jakub Jelinek + + * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but + no -g option specifying debugging format, default to -gstabs+. + +Wed Jan 26 22:19:14 1999 J"orn Rennecke + + * calls.c (special_function_p): New argument fork_or_exec. + (expand_call): When profile_arc_flag is set and the function + is in the fork_or_exec group, call __bb_fork_func first. + * libgcc2.c, _bb module (__bb_fork_func): New function. + (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock + output file. + * config/svr4.h (TARGET_HAS_F_SETLKW): Define. + * tree.h (special_function_p): Update prototype. + +2000-01-26 Richard Henderson + + * alpha.c (alpha_split_tfmode_pair): New. + * alpha-protos.h: Declare it. + * alpha.md (abstf2, negtf2): New. + (movtf insn): Add input G constraint. + (movtf splitter): Use alpha_split_tfmode_pair. + +2000-01-26 Kaveh R. Ghazi + + * i386/cygwin.h: PROTO -> PARAMS. + +2000-01-26 Jakub Jelinek + + * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle + TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons + using _Qp_cmp/_Q_cmp and testing the return value. + (print_operand): Call reverse_condition_maybe_unordered if + we are handling CCFPmode or CCFPEmode. + Handle ORDERED, UN* and LTGT comparisons. + * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32 + if not TARGET_HARD_QUAD. + (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble, + bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt): + Call sparc_emit_float_lib_cmp even on TARGET_ARCH32. + Adjust gen_b* calls so that they reflect return comparison of + sparc_emit_float_lib_cmp. + +2000-01-26 Alexandre Oliva + + * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume + incoming operands array is large enough for one more operand. + (alpha_emit_xfloating_arith): Likewise. + +2000-01-25 Zack Weinberg + + * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a + file with one line and no trailing newline. + Patch by Kaveh Ghazi . + * fixinc/fixtests.c (machine_name_test): Fix fencepost error + checking if the match is on the line. + * fixinc/gnu-regex.c: Provide regerror not __regerror. + +2000-01-25 Richard Henderson + + * sparc.c (output_cbranch): Fix accidental squashing of the + fp branch pre-delay nop. + +2000-01-25 Richard Henderson + + * tree.def (UNNE_EXPR): Remove. + * c-typeck.c (build_binary_op): Don't handle it. + * expr.c (expand_expr, do_jump, do_store_flag): Likewise. + + * rtl.def (UNNE): Remove. + (LTGT): Add. + * jump.c (reverse_condition): Update accordingly. + (swap_condition): Likewise. + (comparison_dominates_p): Handle unordered comparisons. + (reverse_condition_maybe_unordered): New. + * rtl.h (reverse_condition_maybe_unordered): Declare. + + * sparc.c (select_cc_mode): Update for UNNE/LTGT. + (output_cbranch): Use reverse_condition_maybe_unordered and LTGT. + * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs. + * sparc.md (bltgt): New. + +2000-01-25 Nick Clifton + + * emit-rtl.c (emit_insn): Only check machine class insns for + improper emission of a RETURN. + +2000-01-25 Richard Henderson + + * Makefile.in (flow.o): Depend on $(EXPR_H). + * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e. + duplicate the structure of diddle_return_value for keeping regs live. + +2000-01-26 Michael Hayes + + * loop.c (current_loop_info): Delete. + (consec_sets_invariant_p): Add loop argument, update callers. + (get_condition_for_loop): Likewise. + (count_nonfixed_reads, update_giv_derive): Likewise. + (simplify_giv_expr, general_induction_var): Likewise. + (consec_sets_giv, recombine_givs): Likewise. + (move_movables): Delete loop_start and loop_end arguments, + add loop argument, and update callers. + (find_mem_givs, check_final_value): Likewise. + (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise. + (loop_invariant_p): Rename from invariant_p, add loop argument, and + update callers. + (basic_induction_var): Add loop argument, delete loop_level argument, + and update callers. + * unroll.c (iteration_info): Delete loop_start and loop_end arguments, + add loop argument, and update callers. + (find_splittable_regs, find_splittable_givs): Likewise. + (reg_dead_after_loop, loop_find_equiv_value): Likewise. + (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise. + (biv_total_increment): Delete loop_start and loop_end arguments; + update callers. + (precondition_loop_p): Delete loop_start and loop_info arguments; + update callers. + * loop.h (get_condition_for_loop): Add loop argument. + (biv_total_increment): Delete loop_start and loop_end arguments. + (precondition_loop_p): Delete loop_start and loop_info arguments; + add loop argument. + (final_biv_value): Delete loop_start and loop_end arguments; + add loop argument. + (final_giv_value, back_branch_in_range_p): Likewise. + +2000-01-25 Gavin Romig-Koch + + * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. + +2000-01-25 Gavin Romig-Koch + + * Makefile.in (c-gperf.h) : Change the "See" pointer to + point to the new "generated_files" doc. + +2000-01-25 Clinton Popetz + + * config/fp-bit.c (_unord_f2): Fix typo. + +2000-01-25 Zack Weinberg + + * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c, + c-typeck.c, objc/objc-act.c: Remove all references to obstack + functions obsoleted by GC, such as push_obstacks_nochange, + end_temporary_allocation, savealloc, saveable_tree_cons, etc. + and code which existed only to decide whether or not to call + them. Remove now-unused NESTED argument from start_function; + all callers changed. Do not change behavior based on ggc_p. + The use of the ixp_obstack in c-iterate.c and the util_obstack + in objc/objc-act.c remain; these are not obsoleted by garbage + collection. + * c-tree.h: Update prototype for start_function. + + * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild. + +2000-01-25 Clinton Popetz + + * config/mips/mips.md (zero_extendsidi2_internal): Disable for + mips16. + +2000-01-25 Richard Henderson + + * sparc-protos.h (select_cc_mode): Declare. + * sparc.c (select_cc_mode): New. Handle unordered compares. + (output_cbranch): Always reverse via code change. Handle + unordered compares. Factor tests and string updates. + * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode. + (REVERSIBLE_CC_MODE): Also exclude CCFPmode. + * sparc.md (bunordered, bordered): New. + (bungt, bunlt, buneq, bunge, bunle): New. + +2000-01-25 Richard Henderson + + * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root. + * ggc-common.c (ggc_add_rtx_varray_root): New. + (ggc_mark_rtx_varray): New. + (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr + functions down below ggc_mark_foo. + * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare. + +2000-01-25 Richard Henderson + + * alpha.c (secondary_reload_class): Don't allocate a secondary + for integral mode memories into FLOAT_REGS. Rearrange the more + complicated memory expression inward. + +2000-01-25 Zack Weinberg + + * inclhack.def: Fixes to play nicer with FreeBSD, and + corrections to comments. + (cxx_unready): Add select expression. + (irix_sockaddr): Add bypass expression. + (machine_ansi_h_va_list): New fix. + (stdio_va_list): No need to edit _BSD_VA_LIST_. + Split out addition of "#include " to... + (stdio_stdarg_h): ... here. + (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply + to stdlib.h also. Do not munge _BSD_SIZE_T_. + (sysz_stdlib_for_sun): Delete duplicate fix for unprotected + size_t. + (ultrix_ifdef): Tighten up select expression. + + * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of + re_ct and max_mach to avoid use of shell. Make printed names + match names in inclhack.def. Use static copyright date. + Don't count c_test and test expressions as requiring regex_t + slots. Add some commentary. + * inclhack.tpl: Do not include the 'This script contains N + fixup scripts' line if PROGRAM is defined. Use static + copyright date. + +2000-01-24 Jason Merrill + + * dwarf2out.c: include "varray.h", not dyn-string.h. + (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose. + (addr_const_to_string, addr_to_string): Lose. + (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c. + (struct dw_val_struct): val_addr is now an rtx. + (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust. + (used_rtx_varray): New varray. + (dwarf2out_init): Initialize it. + (save_rtx): New fn. + (mem_loc_descriptor, add_const_value_attribute): Call it instead of + addr_to_string. + * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h, + sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST. + * Makefile.in (dwarf2out.o): Update dependencies. + +2000-01-24 Richard Henderson + + * i386.c (i386_dwarf_output_addr_const): New. + * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New. + + * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR + if defined. + * dwarfout.c (output_mem_loc_descriptor): Likewise. + * i386.c (i386_simplify_dwarf_addr): New. + * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New. + +Mon Jan 24 16:56:10 2000 Jim Wilson + + * dwarf2out.c (gen_struct_or_union_type_die): Set complete if + TYPE_STUB_DECL is NULL. + +2000-01-24 Richard Henderson + + * builtins.c (expand_tree_builtin): Move ... + * c-common.c (expand_tree_builtin): ... here. + +2000-01-25 Michael Hayes + + * loop.h (LOOP_INFO): New accessor macro. + * basic-block.h (struct loop): Rename field `info' to `aux'. + * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop). + (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise. + * unroll.c (loop_iterations, unroll_loop): Likewise. + +2000-01-24 Christopher Faylor + + * config/i386/t-cygwin: Accommodate new winsup directory layout + when searching for include files. + +2000-01-24 Richard Henderson + + * rtl.def: Add unordered fp comparisons. + * tree.def: Likewise. + * tree.h: Add ISO C 9x unordered fp comparison builtins. + + * builtins.c (expand_tree_builtin): New function. + * c-typeck.c (build_function_call): Use it. + (build_binary_op): Support unordered compares. + * c-common.c (c_common_nodes_and_builtins): Add unordered compares. + + * combine.c (known_cond): Handle reverse_condition returning UNKNOWN. + (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed. + * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing. + (record_jump_equiv): Handle reverse_condition returning UNKNOWN. + * jump.c (reverse_condition): Don't abort for UNLE etc, but + return UNKNOWN. + (swap_condition): Handle unordered compares. + (thread_jumps): Check can_reverse before reversing. + * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be + reversed for FP. + + * optabs.c (can_compare_p): New argument CODE. Verify branch or + setcc is present before acking for cmp_optab. Update all callers. + (prepare_float_lib_cmp, init_optabs): Handle UNORDERED. + * expmed.c (do_cmp_and_jump): Update for can_compare_p. + * expr.c (expand_expr): Likewise. Support unordered compares. + (do_jump, do_store_flag): Likewise. + * expr.h (enum libfunc_index): Add unordered compares. + + * Makefile.in (FPBIT_FUNCS): Add _unord_sf. + (DPBIT_FUNCS): Add _unord_df. + * config/fp-bit.c (_unord_f2): New. + * fp-test.c (main): Try unordered compare builtins. + + * alpha-protos.h (alpha_fp_comparison_operator): Declare. + * alpha.c (alpha_comparison_operator): Check mode properly. + (alpha_swapped_comparison_operator): Likewise. + (signed_comparison_operator): Likewise. + (alpha_fp_comparison_operator): New. + (alpha_emit_conditional_branch): Handle unordered compares. + * alpha.h (PREDICATE_CODES): Update. + * alpha.md (fp compares): Use alpha_fp_comparison_operator. + (bunordered, bordered): New. + +2000-01-24 Richard Henderson + + * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation. + * alpha.md (movtf): New expander, insn, and splitter. + +Mon Jan 24 19:49:47 MET 2000 Jan Hubicka + + * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of + dead registers. + +Mon Jan 24 17:37:31 MET 2000 Jan Hubicka + + * i386.h (FIRST_PSEUDO_REGISTER): Set to 21. + (FIXED_REGISTERS, CALL_USED_REGISTERS, + REG_ALLOC_ORDER): Add frame pointer + (FRAME_POINTER_REGNUM): Set to 20 + (HARD_FRAME_POINTER_REGNUM): New macro. + (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER + to HARD_FRAME_POINTER. + (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM + (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. + (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. + (HI_REGISTER_NAMES): Add "frame". + (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination. + (debug_reg): Handle FRAME_POINTER_REGNUM. + (reg_class): Add arg pointer and frame pointer to NON_Q_REGS, + GENERAL_REGS and INDEX_REGS. + * i386.c (SAVED_REGS_FIRST): new macro. + (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx + (ix86_decompose_address, memory_address_length): Likewise. + (regclass_map): Add frame pointer. + (call_insn_operand): Handle frame_pointer_rtx. + (reg_no_sp_operand): Likewise. + (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx. + (print_operand, legitimize_pic_address): Fix formating. + (ix86_compute_frame_size): Make static, update prototype, new + parameters padding1, padding2, use ix86_nsaved_regs, use + stack_alignment_needed. + (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM + to HARD_FRAME_POINTER_REGNUM conversions. + (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues. + (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues. + (print_reg): Abort on FRAME_POINTER_REGNUM + +Mon Jan 24 16:50:08 MET 2000 Jan Hubicka + + * i386.h (PREDICATE_CODES): Add aligned_operand. + * i386.c (aligned_operand): New function. + (ix86_aligned_p): Kill. + * i386.md (movhi_1): Emit mov for aligned operands. + (promoting peep2s): Use aligned_operand. + +2000-01-23 Zack Weinberg + + * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular + expression to allow underscores in macro names. + (fix_char_macro_defines): Increment scanning pointer. + +2000-01-23 Richard Henderson + + * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define. + * alpha/osf5.h: New file. + * configure.in (alpha-*-osf5): Add it to tm_file. + + * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target. + + * alpha-protos.h (alpha_emit_xfloating_arith): Declare. + (alpha_emit_xfloating_cvt, function_arg): Declare. + * alpha.c (alpha_emit_conditional_branch): Call + alpha_emit_xfloating_compare for TFmode compares. + (alpha_lookup_xfloating_lib_func): New. + (alpha_compute_xfloating_mode_arg): New. + (alpha_emit_xfloating_libcall): New. + (alpha_emit_xfloating_arith): New. + (alpha_emit_xfloating_compare): New. + (alpha_emit_xfloating_cvt): New. + (print_operand): Add default abort case. + (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE. + * alpha.h (TARGET_HAS_XFLOATING_LIBS): New. + (BIGGEST_ALIGNMENT): Increase to 128 bits. + (RETURN_IN_MEMORY): True for TF/TCmode. + (ALPHA_ARG_SIZE): TF/TCmode is passed indirect. + (FUNCTION_ARG): Move to function_arg. + (FUNCTION_ARG_PASS_BY_REFERENCE): New. + (ASM_OUTPUT_LONG_DOUBLE): New. + (ASM_OUTPUT_DOUBLE): Always output bits. + * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New. + (fix_trunctfdi2, floatditf2, floatunsditf2): New. + (extenddftf2, trunctfdf2): New. + +2000-01-23 Alexandre Oliva + + * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved... + * config/sparc/sol2.h: ... here. + +2000-01-24 Michael Hayes + + * basic-block.h (struct loops): New field `levels'. + * flow.c (flow_loops_level_compute): Traverse all outer loops. + (flow_loop_level_compute): Initialize level to 1. + (flow_loops_find): Set loops->levels. + (flow_loops_dump): Print loops->levels. + +2000-01-23 Richard Henderson + + * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS. + (throw_helper): Iterate over DWARF_FRAME_REGISTERS. + +2000-01-23 Richard Henderson + + * i386.c (dbx_register_map, svr4_dbx_register_map): New. + * i386.h (DBX_REGISTER_NUMBER): Use them. + * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise. + * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise. + * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise. + * i386/sequent.h: Kill incorrect comment. + +2000-01-23 Mark Mitchell + + * ggc-page.c (struct page_entry): Make `context_depth' an + `unsigned short'. + (struct globals): Likewise. + +2000-01-23 Clinton Popetz + + * loop.c (check_dbra_loop): When checking a loop for + reversability, check the source of any stores to ensure + they don't depend on an initial value. + +2000-01-23 Michael Hayes + + * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine. + +2000-01-22 Zack Weinberg + + * fixinc/fixincl.c: Move declarations of 'pz_fname' and + 'pz_scan' into scope of entire function. Only affects + compiles with -DDEBUG. + +2000-01-22 Alan Modra + + * config/elfos.h (UNIQUE_SECTION): Restore uninitialized data + section naming to that prior to 2000-01-07 patch. + * config/mips/elf.h (UNIQUE_SECTION): Ditto. + * config/mips/elf64.h (UNIQUE_SECTION): Ditto. + * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto. + * config/i386/interix.c (UNIQUE_SECTION): Ditto. + * config/i386/winnt.c (UNIQUE_SECTION): Ditto. + +2000-01-22 Bernd Schmidt + + * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a + constant. + +2000-01-21 Jim Wilson + + * fixinc/inclhack.tpl: Test for directory before trying to cd into it. + * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate. + +2000-01-21 Zack Weinberg + + * cpphash.c (change_newlines): Delete function. + (struct argdata): Delete 'newlines' and 'use_count' fields. + (macroexpand): Remove code referencing those fields. + +2000-01-22 Michael Hayes + + * loop.c (loops_info): New variable. + (loop_optimize): Allocate loops->array and free it on exit. + Allocate memory for loops_info and assign to each loop, + replacing alloca. + (find_and_verify_loops): Do not allocate loops->array. + +2000-01-21 Zack Weinberg + + * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'. + +2000-01-21 Jakub Jelinek + + * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new + pseudos if expanded after first flow. + (movdi_pic_label_ref): Likewise. + +2000-01-20 Richard Henderson + + * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0. + +2000-01-20 Zack Weinberg + + * Makefile.in (fixinc.sh): Depend on specs. + * fixinc/Makefile.in: Add rule to create machname.h. + (fixlib.o): Depend on machname.h. + * fixinc/fixtests.c (machine_name): New test. + * fixinc/fixfixes.c (machine_name): New fix. + * fixinc/fixlib.c (mn_get_regexps): New helper function for + the machine_name test and fix. + * fixinc/fixlib.h: Prototype it. + * fixinc/inclhack.def (machine_name): Use the C test and fix. + * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild. + + * gcc.c (do_spec_1) [case P]: Take care not to create + identifiers with three leading or trailing underscores. + + * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC. + (fixincl): Don't specify libraries twice on link line. + (gnu-regex.o): Remove special rule. + * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was + defined by config.h. Do not define _REGEX_RE_COMP. + (regcomp): Allocate and initialize a fastmap. + * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP. + +2000-01-20 Brad Lucier + + * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h. + +2000-01-19 Richard Henderson + + * flow.c (propagate_block): Replace FIRST, LAST and BNUM + arguments with BB. Update all callers. Tidy line wrapping. + +2000-01-19 Clinton Popetz + + * emit-rtl.c (try_split): Return last_insn if we split the + last_insn. + +Thu Jan 20 01:01:23 MET 2000 Jan Hubicka + + * i386-protos.h (ix86_compute_frame_size): Remove prototype. + (ix86_initial_elimination_offset): Declare. + * i386.c (ix86_nsaved_regs): Break out from ... + (ix86_can_use_return_insn_p): ... here. + (ix86_emit_save_regs): Break out from ... + (ix86_expand_prologue): ... here. + (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break + out from ... + (ix86_expand_epilogue): ... here. + (ix86_compute_frame_size): Make static, add prototype. + (ix86_initial_elimination_offset): Break out from ... + * i386.h (INITIAL_ELIMINATION_OFFSET): ... here. + +2000-01-19 Kaveh R. Ghazi + + * recog.h (OUT_FCN): Delete. + + * vax.md: Call `get_insn_template' instead of OUT_FCN. + +2000-01-19 Kaveh R. Ghazi + + * cppalloc.c: PROTO -> PARAMS. + * cpperror.c: Likewise. + * cppfiles.c: Likewise. + * cpplib.c: Likewise. + * cpplib.h: Likewise. + + * config/arm/arm-protos.h: PROTO -> PARAMS. + * config/arm/arm.c: Likewise. + * config/c4x/c4x.c: Likewise. + * config/fr30/fr30-protos.h: Likewise. + * config/nextstep.c: Likewise. + * config/pa/pa.c: Likewise. + * config/pj/pj.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/v850/v850-protos.h: Likewise. + * config/v850/v850.c: Likewise. + +2000-01-19 Kaveh R. Ghazi + + * i370-protos.h: New file. + + * i370.c: Include tm_p.h. Fix compile time warnings. + + * i370.h: Move prototypes to i370-protos.h. Fix compile time + warnings. + + * i370.md: Likewise. + +2000-01-19 Kaveh R. Ghazi + + * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS. + (target_isinf, target_isnan, eisnan): Mark parameter with + ATTRIBUTE_UNUSED. + (eiisinf): Wrap in INFINITY. + (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY. + (ibmtoe): Remove unused variable `rndsav'. + +Wed Jan 19 20:23:06 2000 J"orn Rennecke + + * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis. + (GO_IF_LEGITIMATE_ADDRESS): Added missing tab. + +2000-01-19 Zack Weinberg + + * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o. + * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes. + (fix_char_macro_defines, fix_char_macro_uses): New functions. + + * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp. + Recognize Emacs mode markers also. + * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of + C++ comments in C++ headers. Call is_cxx_header only if + necessary. + + * fixinc/inclhack.def (avoid_bool): Add select for the problem and + bypass for ncurses. + (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with... + (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes): + ... these, which use the new C fixes. + (math_exception): Escape literal '+' in bypass expression. + + * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh: + Regenerate. + +2000-01-19 Geoff Keating + + * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs + inside the MEM. + +2000-01-20 Michael Hayes + + * loop.c (loop_optimize): Allocate loop_info structure for each loop + prior to calling scan_loop. + +Wed Jan 19 19:54:38 2000 J"orn Rennecke + + * sh.c (find_barrier, gen_block_redirect): Fix indentation. + (split_branches, calc_live_regs): Likewise. + +Wed Jan 19 19:12:36 2000 J"orn Rennecke + + * sh.md (fpu_single, fp_mode): New attributes. + +2000-01-20 Michael Hayes + + * loop.c (current_loop_info): Renamed from loop_info_data + and changed to a pointer. + (loop_optimize): Allocate loop_info structure for each loop + and initialize to zero. + (scan_loop): Set current_loop_info. + + * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set + on iteration_var. + +2000-01-19 Richard Henderson + + * stupid.c: Die die die. + * Makefile.in (OBJS): Remove stupid.o. + (stupid.o): Likewise. + + * except.c (emit_eh_context): Don't emit USEs for stupid. + * explow.c (probe_stack_range): Likewise. + * flags.h (obey_regdecls): Remove. + * flow.c (find_basic_blocks): Don't run try_merge_blocks + when not optimizing. + (life_analysis): Limit data collection when not optimizing. + (mark_regs_live_at_end): Always mark the return value registers. + (mark_used_regs): Remove dummy RETURN case. + (print_rtl_with_bb): Don't consult obey_regdecls. + * function.c (use_variable, use_variable_after): Remove. + (assign_parms): Consult optimize not obey_regdecls. + (expand_function_start): Don't emit USEs for stupid. + (expand_function_end): Likewise. + * global.c (build_insn_chain): Export. + * integrate.c (expand_inline_function): Kill return-value USE + handling code. + * jump.c (jump_optimize_1): Do simple jump optimizations and + dead code elimination. + (calculate_can_reach_end): Remove check_deleted argument. + (delete_insn): Patch out insns even when not optimizing. + * local-alloc.c (block_alloc): Don't do tying when not optimizing. + * rtl.h (use_variable, use_variable_after): Remove declarations. + (build_insn_chain): Declare. + * stmt.c (expand_value_return): Don't emit USEs for stupid. + (expand_end_bindings): Likewise. + (expand_decl): Likewise. Consult optimize not obey_regdecls. + * toplev.c (obey_regdecls): Remove. + (rest_of_compilation): Don't set it. Kill stupid in favor of + flow1, local-alloc, and reload. + (main): Don't set obey_regdecls. + + * config/nextstep.c (handle_pragma): Likewise. + + * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid. + + * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid. + +2000-01-18 Kaveh R. Ghazi + + * alpha-protos.h: PROTO -> PARAMS. + * alpha.c: Likewise. + * elf.h: Likewise. + * h8300.c: Likewise. + * i386-protos.h: Likewise. + * i386.c: Likewise. + * m32r-protos.h: Likewise. + * m32r.c: Likewise. + * mips.c: Likewise. + * mips.md: Likewise. + * gmon-sol2.c: Likewise. + * sparc.c: Likewise. + +2000-01-18 Kaveh R. Ghazi + + * ns32k-protos.h: New file. + + * ns32k.c: Fix compile time warnings. + + * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time + warnings. + + * ns32k.md: Likewise. + +2000-01-18 Kaveh R. Ghazi + + * vax-protos.h: New file. + + * vax.c: Fix compile time warnings. + + * vax.h: Move prototypes to vax-protos.h. Fix compile time + warnings. + + * vax.md: Likewise. + + * vaxv.md: Likewise. + +2000-01-18 Kaveh R. Ghazi + + * romp-protos.h: New file. + + * romp.c: Fix compile time warnings. + + * romp.h: Move prototypes to romp-protos.h. Fix compile time + warnings. + + * romp.md: Likewise. + +2000-01-18 Kaveh R. Ghazi + + * we32k-protos.h: New file. + + * we32k.c: Fix compile time warnings. + + * we32k.h: Move prototypes to we32k-protos.h. Fix compile time + warnings. + +2000-01-18 Kaveh R. Ghazi + + * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. + + * except.c (eh_regs): Likewise. + + * final.c (output_operand): Likewise. + + * fold-const.c (target_isinf, target_isnan): Likewise. + +Tue Jan 18 16:19:55 MET 2000 Jan Hubicka + + * i386.h (BIGGEST_ALIGNMENT): Set to 128. + (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32) + + * i386.md (memstr): Do not use rep stosb for counts divisible by 4 + when optimize_size. + (clrstrsi): Rewrite. + (strsethi, strsetqi): New expanders. + (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns. + (cmpstrsi): Emit compare insn before cmpstrsi_1 + (cmpstrsi_nz): use flags, set type to str, prefix_length to 1. + (strlensi_1): Likewise. + (cmpstrsi_1): Likewise; do not output compare. + (strlen expander): Do not unroll when optimizing for size. + (*subsi3_carry): Rename to subsi3_carry + (addqi3_cc): New pattern. + * i386.h (processor_costs): Add move_ratio field. + (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE + * i386.c (*_cost): Set move_ratio. + (x86_unroll_strlen): Enable for Athlon, PPro and K6 too. + (x86_expand_strlensi_1): Rewrite the main loop. + +2000-01-17 Richard Henderson + + * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode. + * cse.c (find_comparison_args, fold_rtx): Likewise. + * integrate.c (subst_constants): Likewise. + * loop.c (get_condition): Likewise. + + * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs. + + * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF. + +2000-01-18 Martin v. Löwis + + * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST. + (RESTORE_WARN_FLAGS): Unpack it. + Change semantic type of extension to ttype. + * c-common.c (split_specs_attrs): Expect an INTEGER_CST. + * c-parse.y, c-parse.c, objc/objc-parse.y, + objc/objc-parse.c: Regenerate. + +2000-01-17 Zack Weinberg + + * fixinc/fixlib.c: Add copyright notice. + (compile_re): New function. + * fixinc/fixlib.h: Prototype compile_re. + + * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c: + Use compile_re to compile regular expressions. + + * fixinc/fixincl.c (egrep_test): Don't bother asking regexec + where the pattern matched. + + * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy, + use 'replace'. + (ultrix_ansi_compat): Likewise. + (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test, + add egrep test. + (interactv_add2, interactv_add3): Delete. + (x11_sprintf): Don't use filename glob. + * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh: + Regenerate. + +2000-01-17 Kaveh R. Ghazi + + * print-rtl.c: PROTO -> PARAMS. + * real.c: Likewise. + * reg-stack.c: Likewise. + * resource.c: Likewise. + * sdbout.h: Likewise. + * simplify-rtx.c: Likewise. + * stor-layout.c: Likewise. + * stupid.c: Likewise. + * xcoffout.c: Likewise. + * xcoffout.h: Likewise. + +2000-01-17 Kaveh R. Ghazi + + * toplev.c: PROTO -> PARAMS. + * toplev.h: Likewise. + * tree.c: Likewise. + * tree.h: Likewise. + * unroll.c: Likewise. + * varasm.c: Likewise. + * varray.c: Likewise. + * varray.h: Likewise. + +2000-01-17 Kaveh R. Ghazi + + * reload.c: PROTO -> PARAMS. + * reload.h: Likewise. + * reload1.c: Likewise. + * reorg.c: Likewise. + * resource.h: Likewise. + * rtl.c: Likewise. + * rtl.h: Likewise. + * rtlanal.c: Likewise. + * sbitmap.h: Likewise. + * sdbout.c: Likewise. + * stack.h: Likewise. + * stmt.c: Likewise. + * system.h: Likewise. + +2000-01-17 Kaveh R. Ghazi + + * machmode.h: PROTO -> PARAMS. + * mbchar.h: Likewise. + * mips-tdump.c: Likewise. + * mips-tfile.c: Likewise. + * optabs.c: Likewise. + * output.h: Likewise. + * prefix.c: Likewise. + * profile.c: Likewise. + * protoize.c: Likewise. + * real.h: Likewise. + * recog.c: Likewise. + * recog.h: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * regs.h: Likewise. + +2000-01-17 Kaveh R. Ghazi + + * ggc-common.c: PROTO -> PARAMS. + * ggc-page.c: Likewise. + * ggc-simple.c: Likewise. + * ggc.h: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * gthr-win32.h: Likewise. + * haifa-sched.c: Likewise. + * halfpic.h: Likewise. + * integrate.c: Likewise. + * integrate.h: Likewise. + * jump.c: Likewise. + * lcm.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. + +2000-01-17 Kaveh R. Ghazi + + * genattr.c: PROTO -> PARAMS. + * 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. + +2000-01-16 Mark Mitchell + + * tree.h (BINFO_VPTR_FIELD): Augment documentation. + +2000-01-16 Alexandre Oliva + + * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro. + * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP. + * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO. + * configure, config.in: Rebuilt. + +2000-01-16 Zack Weinberg + + * config/i386/i386.md: Add peephole to merge successive stack + adjusts. + +Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com) + + * gcse.c (insert_insn_end_bb): Use emit_block_insn_before + instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK + when walking backwards to find all the parameter loads when + the basic block ends in a call. + +2000-01-15 Michael Hayes + + * loop.c (this_loop_info): Delete. + (uid_loop): Add in place of uid_loop_num. All uses updated. + (loop_number_exit_count): Delete and replace with entry in loop + structure. All uses updated. + (loop_number_loop_starts, loop_number_loop_ends): Likewise. + (loop_number_loop_cont, loop_number_cont_dominator): Likewise. + (loop_outer_loop): Likewise. + (loop_invalid, loop_number_exit_labels): Likewise. + (loop_used_count_register): Delete and replace with entry in + loop_info structure. + (find_and_verify_loops): Add loops argument. + (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start, + loop_end, etc. arguments with loop structure pointer. All callers + changed. + (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise. + (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise. + (load_mems_and_recount_loop_regs_set, load_mems): Likewise. + (insert_bct): Likewise. + (basic_induction_var): New argument level. + * loop.h (struct loop_info): Delete fields num, loops_enclosed, + vtop, and cont. Add used_count_register. + (uid_loop): Delete declaration. + (loop_number_exit_count): Likewise. + (loop_number_loop_starts, loop_number_loop_ends): Likewise. + (loop_number_loop_cont, loop_number_cont_dominator): Likewise. + (loop_outer_loop, loop_used_count_register): Likewise. + (loop_invalid, loop_number_exit_labels): Likewise. + (unroll_loop): Replace loop_start and loop_end arguments + with loop structure pointer. + (loop_precondition_p, loop_iterations): Likewise. + Include basic-block.h. + * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments + with loop structure pointer. + (loop_precondition_p, loop_iterations): Likewise. + * basic-block.h (struct loop): New entries vtop, cont, + cont_dominator, start, end, top, scan_start, exit_labels, + exit_count. + * Makefile.in (LOOP_H): Add basic-block.h to dependencies. + +2000-01-15 Gerald Pfeifer + + * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT. + +2000-01-14 Nathan Sidwell + + * config.in: Rebuilt for 2000-01-13 change to acconfig.h. + +2000-01-14 Kaveh R. Ghazi + + * pdp11-protos.h: New file. + + * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time + warnings. + + * pdp11.md: Likewise. + + * 2bsd.h: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * mn10300-protos.h: New file. + + * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time + warnings. + + * mn10300.md: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * mn10200-protos.h: New file. + + * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time + warnings. + + * mn10200.md: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * h8300-protos.h: New file. + + * h8300.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * h8300.h: Move prototypes to h8300-protos.h. Fix compile time + warnings. + + * h8300.md: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED. + (asm_emit_uninitialised): Likewise. + +2000-01-13 Gavin Romig-Koch + + * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New. + * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE. + +2000-01-14 Clinton Popetz + + * config/mips/mips.c (override_options): Don't turn on extra + alignment for mips16. + +2000-01-14 Clinton Popetz + + * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit + eabi, and make sure queued POSTINCREMENT rtl is emitted at + the right point. + +2000-01-14 Clinton Popetz + + * builtins.c (PAD_VARARGS_DOWN): Define. + (std_expand_builtin_va_arg): Use the above macro. + * config/mips/mips.h (PAD_VARARGS_DOWN): Define. + * tm.texi (Register Arguments): Document the above macro. + +2000-01-14 Nick Clifton + + * emit-rtl.c (emit_insn): If checking is enabled, make sure + that this function has not been used to emit a jump + instruction. + + * jump.c (return_jump_1): Cope with being passed a null rtx. + +2000-01-14 Kaveh R. Ghazi + + * eh-common.h: PROTO -> PARAMS. + * emit-rtl.c: Likewise. + * errors.c: Likewise. + * errors.h: Likewise. + * except.c: Likewise. + * except.h: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * expr.h: Likewise. + * final.c: Likewise. + * fix-header.c: 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. + +2000-01-14 Kaveh R. Ghazi + + * sh-protos.h: New file. + + * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h. + Add static prototypes. Fix compile time warnings. + + * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings. + * sh.md: Likewise. + * elf.h: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * arc-protos.h: New file. + + * arc.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * arc.h: Move prototypes to arc-protos.h. Fix compile time + warnings. + + * arc.md: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * dsp16xx-protos.h: New file. + + * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time + warnings. + + * dsp16xx.md: Likewise. + +2000-01-14 Kaveh R. Ghazi + + * convex-protos.h: New file. + + * convex.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * convex.h: Move prototypes to convex-protos.h. Fix compile time + warnings. + +2000-01-14 Kaveh R. Ghazi + + * elxsi-protos.h: New file. + + * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time + warnings. + + * elxsi.md: Likewise. + +2000-01-14 Clinton Popetz + + * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant + case for moving from HI/LO/HI_LO_REG. This makes the behavior + match the comment for MIPS16. + +Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com) + + * flow.c (split_edge): Do not call set_block_for_insn if we + do not have a basic_block_for_insn structure. + + * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain + and destination functions are 32bit aligned within the trampoline. + (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes. + (TRAMPOLINE_ALIGNMENT): Define. + + * cse.c (cse_insn): When changing (set (pc) (reg)) to + (set (pc) (label_ref)), verify the change creates a valid insn. + + * fr30.c (call_operand): Tighten and rework to match rules for + call RTL expressions. + * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs. + * fr30.md (call patterns): Improve constraints. + +Thu Jan 13 23:44:03 2000 Richard Henderson + + * fr30.c (fr30_expand_epilogue): Revert last change. + Use emit_jump_insn for the return insn. + +Thu Jan 13 14:46:03 2000 Jason Eckhardt + Stan Cox + + * predict.c: New file. Preliminary infrastructure work for static + branch prediction and basic block reordering. + * basic-block.h: Add prototype for estimate_probability. + * Makefile.in: Add rules for predict.o. + +2000-01-13 Jason Merrill + + * fixincludes (va_list): Use __not_va_list__ for the dummy. + * fixinc/*: Likewise. + +2000-01-13 Kaveh R. Ghazi + + * cccp.c: PROTO -> PARAMS. + * cexp.y: Likewise. + * collect2.c: Likewise. + * combine.c: Likewise. + * convert.h: Likewise. + * cse.c: Likewise. + * dbxout.c: Likewise. + * dbxout.h: Likewise. + * diagnostic.c: Likewise. + * doprint.c: Likewise. + * dwarf2out.c: Likewise. + * dwarf2out.h: Likewise. + * dwarfout.c: Likewise. + * dwarfout.h: Likewise. + * dyn-string.h: Likewise. + +2000-01-13 Kaveh R. Ghazi + + * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in + macro conditionals guarding use. + + * dwarf2out.c: Include "tm_p.h". + + * function.c (locate_and_pad_parm): Mark parameter with + ATTRIBUTE_UNUSED. + (expand_function_end): Likewise for variable `context'. + + * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return. + +2000-01-13 Nick Clifton + + * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed + register to prevent compile time warnings. + +2000-01-13 Zack Weinberg + + * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv' + to avoid -Wtraditional warning. + +2000-01-13 Kaveh R. Ghazi + + * 1750a-protos.h: New file. + + * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time + warnings. + + * 1750a.md: Likewise. + +2000-01-13 Kaveh R. Ghazi + + * a29k-protos.h: New file. + + * a29k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * a29k.h: Move prototypes to a29k-protos.h. Fix compile time + warnings. + +2000-01-13 Kaveh R. Ghazi + + * clipper-protos.h: New file. + + * clipper.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * clipper.h: Move prototypes to clipper-protos.h. Fix compile time + warnings. + +Thu Jan 13 16:03:06 2000 J"orn Rennecke + + * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS. + +2000-01-13 Nathan Sidwell + + * configure.in (--enable-new-gxx-abi): New option. + * acconfig.h (ENABLE_NEW_GXX_ABI): New define. + * Makefile.in (GXX_ABI_FLAG): New variable. + * configure: Regenerate. + +2000-01-13 Michael Hayes + + * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. + * tm.texi (FORCE_STRUCT_BLK): Document. + * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro. + +Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson + + * config/ns32k/ns32k.md: Revert Jan 9 change. + + * genrecog.c (maybe_both_true_2): Do not compare a predicate-test + to a mode-test, if the predicate is address_operand. + +Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com) + + * combine.c (if_then_else_cond): Be careful about what kinds + of RTL expressions are passed to operand_subword. + + * flow.c (split_edge): If we have to insert a new jump, make + sure to associate it with a basic block. + + * flow.c (commit_one_edge_insertion): A block with one successor + can end in a JUMP_INSN that is not a simplejump. + +2000-01-12 Robert Lipe + + * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor". + (BUILD_VA_LIST_TYPE): Define. + (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact + with crtstuff.c. + +2000-01-12 Jason Merrill + + * cccp.c (do_pragma): Add cast to (char *). + +2000-01-12 Richard Henderson + Fred Fish + Jason Merrill + + * configure.in (i?86-*-beos{pe,elf,}*): Recognize. + * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files. + * i386/beos-elf.h, i386/beos-pe.h: New files. + + * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New. + * cross-make (SYSTEM_HEADER_DIR): Define using + CROSS_SYSTEM_HEADER_DIR. + + * gcc.c (LIBRARY_PATH_ENV): Provide default. + (process_command): Use it. + (main): Likewise. Kill trailing = from env vars. + (build_search_list): Put it back. + * collect2.c (main): Use LIBRARY_PATH_ENV. + + * configure.in (GCC_NEED_DECLARATIONS): Add environ. + * toplev.c: Use NEED_DECLARATION_ENVIRON. + + * tm.texi (Frame Layout): Document SMALL_STACK. + * c-common.c (c_common_nodes_and_builtins): Check it. + + * system.h: Undef alloca after including glibc's , + if USE_C_ALLOCA is defined. + + * gcc.c (set_input): New fn. + (main): After all input files are compiled, reset the input file + info to the first. + + * aclocal.m4 (rindex, index): If already defined, don't attempt + to redefine. + + * ginclude/varargs.h: (__va_list__): Define ifndef. + * ginclude/stdarg.h: Likewise. + + * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int + instead of unsigned char. + + * hash.h (true, false, boolean): Undef before enum. + + * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be + proper type of "HOST_WIDE_INT *", rather than their natural type of + "unsigned HOST_WIDE_INT *". + +2000-01-12 Kaveh R. Ghazi + + * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets. + + * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED. + + * regclass.c (choose_hard_reg_mode): Likewise. + + * reload.c (find_valid_class, strict_memory_address_p): Likewise. + + * reorg.c (optimize_skip): Wrap prototype in macro conditionals. + +2000-01-12 Kaveh R. Ghazi + + * c-common.c: PROTO -> PARAMS. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * c-iterate.c: Likewise. + * c-lang.c: Likewise. + * c-lex.c: Likewise. + * c-lex.h: Likewise. + * c-parse.in: Likewise. + * c-pragma.c: Likewise. + * c-pragma.h: Likewise. + * c-tree.h: Likewise. + * c-typeck.c: Likewise. + * objc/objc-act.c: Likewise. + * objc/objc-act.h: Likewise. + +2000-01-12 Kaveh R. Ghazi + + * m88k-protos.h: New file. + + * m88k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings. + + * m88k.md: Likewise. + + * tekXD88.h: Likewise. + +2000-01-12 Kaveh R. Ghazi + + * m68k-protos.h: New file. + + * m68k.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. + + * mot3300.h: Likewise. + +2000-01-12 Richard Earnshaw + + * haifa-sched.c (split_edges): Pass edgeset_size as second arg to + extract_bitlst. + (extract_bitlist): Declare bitlen. + +2000-01-12 Zack Weinberg + + * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT. + +2000-01-12 Bernd Schmidt + + * reload1.c (reload_reg_unavailable): New static variable. + (reload_reg_free_p): Test it. + (reload_reg_free_for_value_p): Test it instead of + reload_reg_used. + (choose_reload_regs_init): Compute it. + +Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com) + + * reorg.c (fill_slots_from_thread): Check modified_in_p + before replacing. + +Wed Jan 12 03:20:31 2000 John Marshall + + * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format + these nodes even if INTERNALS is not set. + +Wed Jan 12 09:39:22 2000 Nick Burrett + + * gcse.c (delete_null_pointer_checks_1): Cope when + get_condition cannot determine the condition. + +2000-01-12 Gabriel Dos Reis + + * toplev.h (set_message_length): Declare. + + * diagnostic.c (obstack_chunk_alloc): Define macro. + (obstack_chunk_free): Likewise. + (struct output_buffer): New data structure. + (vmessage): Remove. + (output_maximum_width): New variable. + (doing_line_wrapping, set_message_length, init_output_buffer, + get_output_prefix, output_space_left, emit_output_prefix, + output_newline, output_append, output_puts, dump_output, + vbuild_message_string, build_message_string, build_location_prefix, + voutput_notice, output_printf, line_wrapper_printf, + vline_wrapper_message_with_location): New functions. Implement + automatic line wrapping. + (v_message_with_decl): Make it handle automatic line wrapping. + (v_error_with_file_and_line): Likewise. + (v_warning_with_file_and_line): Likewise. + (announce_function): Likewise. + (default_print_error_function): Likewise. + +2000-01-11 16:24 -0800 Zack Weinberg + + * cpplib.h (struct cpp_options): Change lang_asm to char. + Add lang_fortran. + * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's + done in cpp_handle_option now. + (initialize_builtins): Take out special case code used only by + __STDC_VERSION__. + (cpp_handle_option): Turn off trigraphs and trigraph warnings + if -traditional. Recognize -lang-fortran and set + lang_fortran, also turn off cplusplus_comments. + (print_help): Document -lang-fortran. + * cpplib.c (handle_directive): Ignore `# 123 "file"' if + lang_asm. Ignore all directives other than `# 123 "file"' if + CPP_PREPROCESSED. + (cpp_get_token): If -traditional, don't recognize directives + unless the # is in column 1. + (parse_string): If lang_fortran or lang_asm, silently + terminate strings ('' or "") at end of line. + Remove unnecessary braces. + +2000-01-11 Alexandre Oliva + Richard Henderson + + * resource.c (mark_referenced_resources): Mark a set strict_low_part + as used. + * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set + strict_low_part when possible. + +2000-01-11 Kaveh R. Ghazi + + * alias.c: PROTO -> PARAMS. + * basic-block.h: Likewise. + * bitmap.c: Likewise. + * bitmap.h: Likewise. + * builtins.c: Likewise. + * c-aux-info.c: Likewise. + * caller-save.c: Likewise. + * calls.c: Likewise. + +2000-01-11 Kaveh R. Ghazi + + * Makefile.in (toplev.o): Depend on regs.h. + + * output.h (tdesc_section): Prototype. + + * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED. + + * sdbout.c: Include "tm_p.h". + + * toplev.c: Include "regs.h". + +Tue Jan 11 11:37:58 2000 Mike Stump + + * unroll.c (unroll_loop): Add EH support. + +2000-01-11 Kaveh R. Ghazi + + * pa-protos.h: New file. + + * pa.c: Include recog.h and tm_p.h. + (compute_zdepwi_operands, compute_movstrsi_length, + remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d, + find_addr_reg, import_milli): Add static prototypes. + (pa_cpu_string, pa_arch_string): Constify a char*. + (legitimize_pic_address): Pass argument `mode' to pic_label_operand. + (read_only_operand): Add argument `mode'. + (singlemove_string, output_move_double, output_fp_move_double, + output_block_move, output_and, output_ior, output_ascii, + remove_useless_addtr_insns, milli_names, output_mul_insn, + output_div_insn, output_mod_insn, output_arg_descriptor, + output_cbranch, output_bb, output_bvb, output_dbra, , + output_millicode_call, output_call, hppa_encode_label, + output_parallel_movb, output_parallel_addb): Constify a char*. + (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED. + (output_parallel_addb): Remove extra arg to `constrain_operands' + + * pa.h: Move all prototypes to pa-protos.h. + (pa_cpu_string, pa_arch_string): Constify a char*. + (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument. + + * pa.md: Call `function_label_operand' with mode argument. + Likewise for `read_only_operand'. + Fix nesting of parens in call to `symbolic_operand'. + +2000-01-11 Kaveh R. Ghazi + + * i860-protos.h: New file. + + * i860.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings. + + * i860.md: Likewise. + +Tue Jan 11 18:59:35 MET 2000 Jan Hubicka + + * i386.md (movstrsi expander): Rewrite. + (movstrsi_1 insn): Deleted. + (strmovhi, strmovqi expander): New expanders. + (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns. + * i386.c (x86_single_stringop): New global variable. + * i386.h (x86_single_stringop): Declare. + (TARGET_SINGLE_STRINGOP): New macro. + +2000-01-11 Clinton Popetz + + * config/mips/mips.c (mips_va_arg): For EABI, emit the queued + integer vararg POSTINCREMENT before the destination of the jump + for the hard fp case. + (function_arg_pass_by_reference): Pass a copy of CUM to + FUNCTION_ARG. + + * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check + for CONSTANT_ADDRESS_P above while loop for subreg. + +2000-01-11 Clinton Popetz + + * flow.c (propagate_block): When a prologue/epilogue insn + is marked dead, unconditionally clear libcall_is_dead and + insn_is_dead, and only dump rtl if warnings aren't being + suppressed. + +Tue Jan 11 16:26:47 MET 2000 Jan Hubicka + + * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD. + * i386.md (FIRST_PSEUDO_REGISTER): Set to 20. + (FIXED_REGISTERS): Set dirflag as fixed. + (CALL_USED_REGISTERS): Set dirflag as used. + (REG_ALLOC_ORDER): Set dirflag as last one. + (DIRFLAG_REG): New macro. + (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility. + (HI_REGISTER_NAMES): Add dirflag. + (DEBUF_PRINT_REG): Handle dirflag. + * i386.md (type attribute): New cld and str types. + (length_opcode attribute): Set cld and str to 1. + (memory attribute): Set str to unknown - it is not clear from the + patterns. + (pent_np function unit): Prefixed string operations takes 12 cycles + minimally; cld takes 2 cycles. + (ppro_uops attribute): Str is "many" and cld is "few". + (ppro_p0 unit): Handle cld here. + (k6_alux unit): Handle cld and str types. + (k6_load unit): It is ocupied by str opcodes. + (k6_store unit): It is ocupied by str opcodes. + (athlon_decode): Str is vector decoded. + (athlon_ieu): Handle str and cld. + (cld pattern): New. + (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction + (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1, + cmpstrsi_nz_1 insn): Do not output cld instruction + +Tue Jan 11 06:14:39 2000 David Starner + + * gcc.texi (G++ and GCC): Add Java and Chill. + (Bug Critera): Don't list languages. + + * gcc.texi (Incompatibilities): No longer claim most C compilers + are K&R. + + * gcc.texi (G++ and GCC): Update other front-ends list. + +Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com) + + * i386.c (ix86_expand_setcc): Fix typo. + (ix86_expand_movcc): Similarly. + + * Band-aid until haifa's bitset implementation is nuked. + * haifa-sched.c (extract_bitlst): New parameter for size of the + bitset in bits. All callers changed. Avoid looking at undefined + bits in the bitset. + (edgeset_bitsize): New variable. + (schedule_region): Initialize edgeset_bitsize. + +2000-01-10 Kaveh R. Ghazi + + * Makefile.in (optabs.o): Depend on real.h + (resource.o): Depend on insn-attr.h + + * builtins.c (result_vector): Wrap prototype in macro conditions + governing definition and use. + + * c-common.c: Include tm_p.h. + + * c-lex.c: Likewise. + + * elfos.h: Constify a char*. + + * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length. + (get_attr_length, shorten_branches, profile_after_prologue): Mark + parameter with ATTRIBUTE_UNUSED. + + * fold-const.c (exact_real_inverse): Wrap variable `i' in + CHECK_FLOAT_VALUE. + + * haifa-sched.c (schedule_insns): Mark parameter with + ATTRIBUTE_UNUSED. + + * optabs.c: Include real.h. + + * real.h (ereal_atof): Add prototype arguments. + + * resource.c: Include insn-attr.h. + + * sdbout.c (sdbout_queue_anonymous_type, + sdbout_dequeue_anonymous_types): Wrap in macro + SDB_ALLOW_FORWARD_REFERENCES. + (sdbout_init, sdbout_start_new_source_file): Mark parameter with + ATTRIBUTE_UNUSED. + + * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return. + + * stupid.c: Include tm_p.h. + + * tree.c (real_value_from_int_cst): Mark parameter with + ATTRIBUTE_UNUSED. + +2000-01-10 Kaveh R. Ghazi + + * i960-protos.h: New file. + + * i960.c: Include tm_p.h. Add static prototypes. Fix compile + time warnings. + + * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings. + +2000-01-10 Alexandre Oliva + + * combine.c (expand_field_assignment): Do not discard SUBREGs + while computing nonzero_bits. + +2000-01-09 Nick Clifton + + * config/arm/arm.c: Fix compile time warnings about signed vs + unsigned constants. + * config/arm/arm.h: Fix compile time warnings about signed vs + unsigned constants. + +2000-01-09 Philip Blundell + + * config/arm/arm.c (output_return_instruction): Use `ldr' rather + than `ldm' with only one register. + * config/arm/arm.md (push_multi): Use `str' rather than `stm' with + only one register. + + * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is + clobbered. + +Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson + + * config/ns32k/ns32k.md (load or push effective address): Operand 1 + must have SImode. + +2000-01-09 Kaveh R. Ghazi + + * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around + assignment used as truth value. + + * function.c (assign_temp): Mark parameter `dont_promote' with + ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro + PROMOTE_FOR_CALL_ONLY. + + * genrecog.c (write_subroutine): Mark variable `operands' with + ATTRIBUTE_UNUSED. + + * optabs.c (prepare_cmp_insn): Mark parameter `align' with + ATTRIBUTE_UNUSED. + + * sdbout.c (sdbout_init): Likewise for parameter `asm_file'. + (sdbout_begin_block, sdbout_end_block): Likewise for `file'. + + * toplev.c (note_deferral_of_defined_inline_function): Likewise + for `decl'. + +2000-01-09 Michael Hayes + + * config/c4x.h: Tidy up comments. + * config/c4x.c: Likewise. + +Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com) + + * fold-const.c (lshift_double, rshift_double): Handle + shifting by 2 * HOST_BITS_PER_WIDE_INT correctly. + +2000-01-08 Alexandre Oliva + + * toplev.c (rest_of_compilation): Initialize cse_not_expected as + in prepare_function_start(). + +Sat Jan 8 12:12:46 2000 Nick Clifton + + * config/v850/v850.c (expand_epilogue): Interrupt functions no + longer allocate extra stack for function calls. + +2000-01-08 Michael Hayes + + * config/c4x/c4x.md (*subqf3_set): Fix typo. + +2000-01-08 Michael Hayes + + * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0. + +2000-01-07 David Edelsohn + + * rs6000.c (processor_target_table): Add power3 as alias for 630. + * aix43.h: Revert Aug 2 change. + (HAS_INIT_SECTION): Define, not visible yet. + (LD_INIT_SWITCH): Define, not visible yet. + * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. + + * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too. + + * collect2.c (main): Expand ld2 size further. + (export_object_lst): Cast assignment to avoid warning. + (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support. + (scan_prog_file, COFF): Do not collect initialization or + finalization functions generated for entire shared object if + init/fini support present. + +2000-01-07 Nick Clifton + + * config/elfos.h: Tidy up formatting of marcos. Make sure + that .section directives are always prefixed by a tab. + + * config/svr4.h: Add #include "elfos.h" and remove duplicate + definitions. + +2000-01-07 Matt Austern + + * fold-const.c (real_hex_to_f): Remove duplicate declaration of + expon. + +Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of + crtstuff.c. + (crtbegin.o, s-crtS): Likewise. + +2000-01-06 Richard Henderson + + * alpha.md (adddi_2+1): Limit offset such that it will be + loadable with a single ldah+lda pair. + (adddi_2+2): Explicitly fail split if we can't make it work. + +2000-01-06 Mumit Khan + + * protoize.c: Conditionally include unistd.h. + (IS_SAME_PATH_CHAR): New macro. + (IS_SAME_PATH): New macro. + (CPLUS_FILE_SUFFIX): New macro. + (cplus_suffix): New static variable. + (is_abspath): New static function. + (in_system_include_dir): Handle DOS style pathnames. + (file_could_be_converted): Likewise. + (file_normally_convertible): Likewise. + (directory_specified_p): Likewise. + (file_excluded_p): Likewise. + (abspath): Likewise. + (shortpath): Likewise. + (referenced_file_is_newer): Likewise. + (save_def_or_dec): Likewise. + (do_processing): Likewise. + (main): Likewise. + (edit_file): Likewise. Use rename instead of link. + (rename_c_file): Likewise. Don't rename syscalls file. + (munge_compile_params): Define null device for DOS based systems. + (process_aux_info_file): Use binary mode if appliable. + (edit_file): Likewise. + * invoke.texi (Running Protoize): Document C++ suffixes used. + + * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and + IS_DIR_SEPARATOR macros. + * collect2.c: Likewise. + * cppinit.c: Likewise. + * dwarf2out.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * prefix.c: Likewise. + * rtl.c: Likewise. + * toplev.c: Likewise. + * system.h: And move to here. + + * prefix.c (update_path): Fix typo in variable name. + +2000-01-06 Richard Henderson + + * flow.c (mark_set_1): Use loop_depth+1 as reference weight. + (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise. + (count_reg_sets_1, count_reg_references): Likewise. + (flow_loops_level_compute): Start counting actual loop depth at 1. + (flow_loops_find): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change. + +2000-01-06 Gabriel Dos Reis + + * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to + FIRST_PSEUDO_REGISTER + * dwarf2out.c: Don't include frame.h + * dwarfout.c: Likewise + * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on + frame.h + +Thu Jan 6 13:44:59 CET 2000 Jan Hubicka + + * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of + dead registers. + + * i386.c (movsf splitter): Fix typo in my last checkin. + +2000-01-05 Nick Clifton + + * varasm.c (IN_NAMED_SECTION): Allow targets to provide their + own definition of this macro. + (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either + flag_data_sections or UNIQUE_SECTION_P are true. + + * tm.texi (UNIQUE_SECTION): Document that it can be called for + uninitialized data decls. + + * config/i386/winnt.c (i386_pe_unique_section): Cope with + being called for uninitialized data. + + * config/i386/interix.c (i386_pe_unique_section): Cope with + being called for uninitialized data. + + * config/mips/elf.h (UNIQUE_SECTION): Cope with being called + for uninitialized data. + + * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called + for uninitialized data. + + * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called + for uninitialized data. + + * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define. + (UNIQUE_SECTION_P): Always generate a unique section if + flag_data_sections is true. + (UNIQUE_SECTION): Also generate unique sections for + uninitialized data. + (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section(). + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use + named_section(). + +2000-01-06 Michael Hayes + + * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF, + SI, or DI. + +2000-01-06 Michael Hayes + + * config/c4x/c4x.md (udivqi3, divqi3): Delete. + (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise. + (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New. + (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise. + (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise. + + * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls. + +2000-01-05 11:25 -0800 Zack Weinberg + + * c-decl.c (finish_enum): Simplify code to determine minimum and + maximum values of the enum, and calculate the type. Remove check + for FUNCTION_DECLs in the values list, which cannot happen. Replace + the DECL_INITIAL of each enumeration constant with a copy converted + to the enumeration type. When updating variant types, don't bother + updating the type itself. + + * c-typeck.c (build_binary_op): Simplify conditional expressions + when weeding out spurious signed-unsigned warnings. Add new + spurious warning category: if the unsigned quantity is an enum + and its maximum value fits in signed_type(result_type). Update + commentary. + (build_conditional_expr): Warn here if one alternative is signed + and the other is unsigned. + +2000-01-05 Nick Clifton + + * config/fr30/fr30.h: Remove extraneous comments. + +2000-01-05 Bernd Schmidt + + * reload1.c (choose_reload_regs): When disabling a reload, also + set reload_spill_index to -1. + +2000-01-04 Joel Sherrill (joel@OARcorp.com> + + * configure.in (m68*-*-rtemscoff*): New target, formal name for + old m68*-*-rtems*. + (m68*-*-rtemself*): New target. + (mips64orion-*-rtems*): Remove duplicate definition of tm_file. + (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*. + (sparc*-*-rtemself*): New target. + (sparc*-*-rtems*): Now elf not a.out. + * config/i386/rtems.h: Include config/rtems.h. + * config/i386/rtemself.h: Include config/rtems.h. + * config/i960/rtems.h: Include config/rtems.h. + * config/m68k/rtems.h: Include config/rtems.h. + * config/m68k/rtemself.h: Include config/rtems.h. + * config/mips/rtems64.h: Include config/rtems.h. + * config/pa/rtems.h: Include config/rtems.h. + * config/rs6000/rtems.h: Include config/rtems.h. + * config/sh/rtems.h: Include config/rtems.h. + * config/sh/rtemself.h: Include config/rtems.h. + * config/sparc/rtems.h: Include config/rtems.h. + * config/sparc/rtemself.h: Include config/rtems.h + +Tue Jan 4 23:59:26 2000 Denis Chertykov + + * final.c (shorten_branches): Correctly compute length of + asms without operands. + +Tue Jan 4 22:55:41 2000 Steve Chamberlain + + * configure.in: Add pj target. + * configure: Regenerate. + * config/pj: New directory. + * config/pj/lib1funcs.S: New file. + * config/pj/linux.h: New file. + * config/pj/pj.c: New file. + * config/pj/pj.md: New file. + * config/pj/pjl.h: New file. + * config/pj/t-pj: New file. + * config/pj/xm-pj.h: New file + +Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com) + + * toplev.c (rest_of_compilation): Run shorten-branches before + reg-stack for now. + +2000-01-05 Michael Hayes + + * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behavior of + macros so that they're consistent with their names. + * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise. + * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise. + +2000-01-05 Michael Hayes + + * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never + modified inadvertently. + +2000-01-04 Joel Sherrill + + * configure.in (v850*-*-rtems*): New target. + * configure: Regenerate. + * config/v850/rtems.h: New file. + +2000-01-04 Mumit Khan + + * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime. + (__gthread_key_create): Likewise. + (__gthread_key_dtor): Likewise. + (__gthread_once): Fix logic. + (__gthread_key_delete): Cast away constness. + + * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option. + * invoke.texi: Document. + * i386/mingw32.h (CPP_SPEC): Use. + (LIBGCC_SPEC): Likewise. + * i386/crtdll.h (LIBGCC_SPEC): Likewise. + +2000-01-04 David Edelsohn + + * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine. + (HANDLE_PRAGMA_PACK): Undefine. + (SLOW_UNALIGNED_ACCESS): Define. + +2000-01-04 David Edelsohn + + * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters + to default definition. + (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment. + (store_fixed_bit_field): Call macro with word_mode and alignment. + (extract_bit_field): Call macro with relevant mode and alignment. + * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters + to default definition. + (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode + and alignment. + (move_by_pieces_ninsns): Likewise. + (clear_by_pieces): Likewise. + (emit_push_insn): Likewise. + (store_field): Call macro with relevant mode and alignment. + (expand_expr): Likewise. + (expand_expr_unaligned): Likewise. + + * rs6000.h (HANDLE_PRAGMA_PACK): Define. + (SLOW_UNALIGNED_ACCESS): Define. + (CASE_VECTOR_MODE): Always use 32-bit offsets. + (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. + (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op. + (toc_section): Likewise and .toc pseudo-op. + (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in + 64-bit mode. + (TEXT_SECTION_ASM_OP): Likewise. + (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use + 32-bit offsets. + + * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters. + * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise. + * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise. + * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise. + * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise. + +Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com) + + * regclass.c: Revert my Jan 4 change to loop cost computation. + +Tue Jan 4 19:22:39 MET 2000 Jan Hubicka + + * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing + compilation. + +2000-01-04 Stan Cox + + * haifa-sched.c (build_control_flow): Change unreachable simple + loop test to check if current block has only one predecessor. + (find_rgns): Initialize degree. Use dest as degree index, not src. + +2000-01-04 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strlen): Initialize variable `icode'. + + * calls.c (expand_call): Likewise for + `old_stack_arg_under_construction'. + + * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'. + + * function.c (pad_to_arg_alignment): Likewise for `save_var' and + `save_constant'. + + * gcc.c (execute): Likewise for `ut' and `st'. + + * genattrtab.c (attr_rtx): Likewise for `rt_val'. + + * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'. + + * jump.c (jump_optimize_1): Likewise for `temp2'. + + * local-alloc.c (block_alloc): Likewise for `r1'. + + * loop.c (recombine_givs): Likewise for `life_start' and `life_end'. + + * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'. + (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'. + + * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node' + and `set2'. + + * reload.c (find_reloads): Likewise for `goal_alternative_number' + and `goal_earlyclobber'. + + * scan-decls.c (scan_decls): Likewise for `prev_id_end'. + + * sdbout.c (sdbout_one_type): Likewise for `member_scl'. + + * stupid.c (stupid_life_analysis): Likewise for `chain'. + + * unroll.c (copy_loop_body): Likewise for `copy'. + + * varasm.c (output_constructor): Likewise for `byte'. + +Tue Jan 4 15:34:34 MET 2000 Jan Hubicka + + * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory + all FP constants for constant->reg moves. + (ix86_split_to_parts): Try to convert memory address into immediate + when available in the constant pool. + * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg + moves. + (LEGITIMATE_CONSTANT_P): Return 1. + * i386.md (pushsf): New splitter to convert constant pool memory + reference to immediate. + (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before + reload. + +2000-01-04 Bernd Schmidt + + * i386.md (ashlsi3_cmpno): Don't accept variables shifts. + (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno, + ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise. + (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno, + rotrhi3_cmpno, rotrqi3_cmpno): Likewise. + +2000-01-04 Martin von Löwis + + * ginclude/stdbool.h: Support compilation as C++. + +Tue Jan 4 01:35:13 2000 J"orn Rennecke + + * fold-const.c (make_range): Don't try to reverse an unbounded range. + +Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com) + + * regclass.c (regclass): Properly compute loop_cost. Adjust + comments. + + * regclass.c: Fix minor whitespace problems. + +2000-01-03 Anthony Green + + * config/i386/i386.md (builtin_setjmp_receiver): New pattern. + Restore the pic register if required. + +2000-01-03 Ulrich Drepper + + * c-common.c (format_char_info): Update comment. + (check_format_info): Recognize 'z' modifier in the same way 'Z' + was recognized. Emit warning for formats new in ISO C99 only + if flag_isoc9x is not set. + +Mon Jan 3 12:59:54 2000 Mark P. Mitchell + + * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs. + +Mon Jan 3 15:33:37 MET 2000 Jan Hubicka + + * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to + SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND. + (make_compound_operation): Choose cheaper alternative between + ZERO_EXTEND and SIGN_EXTEND when sign bit is not set. + + * regclass.c (op_costs): Remove global variable. + (record_reg_classes): New parameter "op_costs" and "reg_pref". + (record_operand_costs): Break out from ... + (scan_one_insn): ... here. + (dump_regclass): Make dumps nicer. + (regclass): Dump preferrences choosed and changes done during passes. + +2000-01-03 Jakub Jelinek + + * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC. + +2000-01-03 Jakub Jelinek + + * config/sparc/sparc.c (gen_df_reg): New function. + * config/sparc/sparc-protos.h (gen_df_reg): Add prototype. + * config/sparc/sparc.md (movtf_no_e_insn_sp64+1, + movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1, + movtf_cc_reg_sp64+1): Use it. + +2000-01-02 Mark Mitchell + + * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on + copied LABEL_DECLs. + +Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson + + * config/i386/i386.c (ix86_expand_unary_operator): Function + definition made void. + (ix86_expand_binary_operator): Update outdated preceding comment. + * config/i386/i386-protos.h (ix86_expand_unary_operator): Update + prototype. + + * config/i386/i386.c (override_options): Fix option-name typo. + +2000-01-02 Mark Mitchell + + * system.h (CEIL): Define. + * builtins.c (CEIL): Remove. + * expmed.c (CEIL): Likewise. + * expr.c (CEIL): Likewise. + * stor-layout.c (CEIL): Likewise. + +2000-01-02 Franz Sirl + + * expr.c (store_constructor_field): Fix typo introduced with last + gcc2 merge. + +2000-01-01 Mark Mitchell + + * tree.h (BINFO_N_BASETYPES): New macro. + +2000-01-01 Bernd Schmidt + + * expmed.c (emit_store_flag): Prevent losing a pending stack + adjust the same way we prevent losing queued increments. diff --git a/gcc/ChangeLog-2001 b/gcc/ChangeLog-2001 new file mode 100644 index 00000000000..c2ee9b024af --- /dev/null +++ b/gcc/ChangeLog-2001 @@ -0,0 +1,33645 @@ +2001-12-31 Richard Henderson + + * config/ia64/ia64.c (mark_reg_gr_used_mask): Mind HARD_REGNO_NREGS. + +2001-12-31 Richard Henderson + + * regrename.c (build_def_use): Don't rename asm operands that + were originally hard registers. + (copyprop_hardreg_forward_1): Likewise. + (find_oldest_value_reg): Copy ORIGINAL_REGNO from source. + * varasm.c (make_decl_rtl): Use gen_rtx_raw_REG. Set ORIGINAL_REGNO. + +2001-12-31 Douglas B Rupp + + * config/alpha/vms.h (HAS_INIT_SECTION, NEED_ATEXIT): Remove. + (NAME__MAIN, SYMBOL__MAIN): Define. + +2001-12-31 Richard Henderson + + * cfgrtl.c (delete_insn): Check for not NOTE_INSN_DELETED_LABEL + before decrementing LABEL_NUSES from a jump table. + + * final.c (alter_subreg): Assign REGNO after changing the rtx code. + + * config/alpha/alpha.c (reg_no_subreg_operand): Reject all + non-registers. + +2001-12-31 Graham Stott + + * halfpic.h: Remove foward defs of tree_node and rtx_def. + + * toplev.h: Remove forward def of tree_node, rtx_def. + + * except.h: Remove forward def of tree_node, rtx_def and + define of tree, rtx. Also remove undefs. + + * basic-block.h: Remove forward def of tree_node and + define of tree. + +2001-12-30 Richard Henderson + + * cfglayout.c (scope_def, scope_forest_info, forest, + relate_bbs_with_scopes, make_new_scope, build_scope_forest, + remove_scope_notes, insert_intra_before_1, insert_intra_1, + insert_intra_bb_scope_notes, insert_inter_bb_scope_notes, + rebuild_scope_notes, free_scope_forest_1, dump_scope_forest, + dump_scope_forest_1, get_next_bb_note, get_prev_bb_note): Remove. + (fixup_reorder_chain): Don't set scope for bb. + (insn_scopes, scope_to_insns_initialize, set_block_levels, + change_scope, scope_to_insns_finalize): New. + (cfg_layout_initialize, cfg_layout_finalize): Update to match. + * cfglayout.h (scope_def, scope): Remove. + (reorder_block_def): Remove scope member. + (scope_to_insns_initialize, scope_to_insns_finalize): Declare. + * haifa-sched.c: Revert reemit_other_notes change. + * sched-ebb.c (schedule_ebbs): Don't call remove_unnecessary_notes. + Use scope_to_insns_initialize and scope_to_insns_finalize. + * sched-rgn.c (schedule_insns): Likewise. + +2001-12-31 Graham Stott + + * c-lex.c: Include tree.h before expr.h + + * c-typeck.c: Include rtl.h earlier. + + * tree.h (STRIP_NOPS): Remove extraneous semicolon. + (STRIP_SIGN_NOPS): Likewise. + (STRIP_TYPE_NOPS): Likewise. + (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): Add Parenthesis around + macro paramater. + + * final.c (struct bb_list): Delete. + (struct bb_str): Likewise. + + * cfgloop.c (flow_loop_entry_edges_find): Fix typo. + (flow_loop_exit_edges_find): Likewise. + + * gcse.c (gcse_main): Fix typos. + (alloc_gcse_mem): Likewise. + + * function.h: Remove undefs for rtx and tree. + +2001-12-30 Richard Henderson + + * loop.c (check_dbra_loop): Fix last change: examine both + has_multiple_exit_targets and exit_count. + +2001-12-30 Richard Henderson + + * integrate.c (copy_rtx_and_substitute): Fix error last change: + we need to unconditionally create a new mem. + +2001-12-30 Hans-Peter Nilsson + + * config/mmix/mmix.md ("*call_real"): Fix typo in comment. + * config/mmix/mmix.h (EXTRA_CONSTRAINT): Pass MMIX_REG_OK_STRICT + to mmix_extra_constraint. + * config/mmix/mmix.c (mmix_secondary_reload_class): Only handle + non-global register classes. Mark now unused parameters as such. + (mmix_extra_constraint, 'U'): Use new parameter strict and call + calling memory_operand_p or strict_memory_address_p, not + address_operand. + * config/mmix/mmix-protos.h (mmix_extra_constraint): Add parameter. + +2001-12-30 Kaveh R. Ghazi + + * unroll.c: Move include files above first use of `const'. + +2001-12-30 Jakub Jelinek + + * cfgrtl.c (try_redirect_by_replacing_jump): Allow redirect_jump + to fail if target is EXIT_BLOCK_PTR, die otherwise. + (redirect_edge_and_branch): Likewise. + * cfgcleanup.c (try_forward_edge): Don't force jump redirecting + if target is EXIT_BLOCK_PTR. + +2001-12-29 David Edelsohn + + * gcc.c (init_gcc_spec): Do not link with static libgcc.a if + gcc invoked with -shared. + +2001-12-29 Graham Stott + + * config/i386/i386.c (ix86_asm_dialect): Fix enum type. + + (override_options): Delete abs macro unused. + + (output_pic_addr_const): Use ASM_ATT/ASM_INTEL enumerations + when testing ASSEMBLER_DIALECT. + + (print_reg): Likewise. + (print_operand): Likewise. + (print_operand_address): Likewise. + (print_operand): abort if ASSEMBLER_DIALECT is unknown dialect. + + * config/i386/i386.h (ix86_asm_dialect): Fix enum type. + + (FIND_BASE_TERM): Fix typo. + +Sat Dec 29 15:48:54 2001 Richard Kenner + + * expr.c (store_field): Use adjust_address, not PUT_MODE. + (expand_expr, case VIEW_CONVERT_EXPR): Likewise. + * reload1.c (eliminate_regs, case SUBREG): Likewise, but use + adjust_address_nv. + * varasm.c (make_decl_rtl): Likewise. + * integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use + replace_equiv_address_nv. + + * varasm.c (decode_addr_const, case INTEGER_CST): Call + output_constant_def instead of looking at TREE_CST_RTL. + + * expr.c (convert_move): If -fforce-mem, force FROM to not be memory. + + * stor-layout.c (layout_decl): Don't misalign field of variable size + for packed record. + + * dwarf2out.c (compute_section_prefix): Avoid cast warning. + (gen_decl_die): Only check DECL_IGNORED_P on decls. + (dwarf2out_decl): Check for DECL_IGNORED_P only when needed. + +2001-12-29 Jakub Jelinek + + * cfglayout.c (insert_intra_before_1): New. + (insert_inter_bb_scope_notes): Emit sibling block notes which don't + span multiple basic blocks. + +2001-12-29 Richard Henderson + + * loop.c (prescan_loop): Set has_multiple_exit_targets for exception + edges. Rearrange jump interpretation code to use pc_set. + (check_dbra_loop): Examine has_multiple_exit_targets not exit_count. + + * sched-deps.c (sched_analyze_insn): Set scheduling barrier for + all insns that can throw, not just if flag_non_call_exceptions. + +2001-12-29 Stan Shebs + + * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Remove. + (default_constant_string_class_name): New global. + (objc_init): Set it. + (synth_module_prologue): Use it. + + * objc/objc-act.c: Apply various cosmetic and formatting changes. + +2001-12-29 Kazu Hirata + + * config/rs6000/darwin-tramp.asm: Fix comment formatting. + * config/rs6000/freebsd.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + +2001-12-28 Stan Shebs + + * objc/objc-act.c (build_module_descriptor): Make sure the init + function is not deferred. + (build_dispatch_table_initializer): Compute the method encoding if + not already done. + +2001-12-28 Kazu Hirata + + * doc/md.texi: Add @findex define_insn_and_split. + +2001-12-28 Hans Bohem + + * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. + * config/ia64/unwind-ia64.c (uw_init_context_1): Redo sp, psp, + bsp setup. Set pri_unat_loc to something reasonable. + (uw_install_context): Add missing cast. + (unw_access_gr): Fix off-by-1 indexing error. + +2001-12-28 Kazu Hirata + + * except.c: Fix comment formatting. + * flags.h: Likewise. + * flow.c: Likewise. + * predict.c: Likewise. + * simplify-rtx.c: Likewise. + * system.h: Likewise. + * vmsdbg.h: Likewise. + * vmsdbgout.c: Likewise. + +2001-12-28 Kazu Hirata + + * config/h8300/h8300.md: Fix formatting. + +2001-12-28 Geoff Keating + + * varasm.c (record_constant_1): Correct parameter to recursive + call in default case. + +2001-12-28 Jakub Jelinek + + * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT, + ASM_OUTPUT_DWARF_PCREL): Define. + * config/sparc/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + * configure.in (HAVE_AS_SPARC_UA_PCREL): Check whether as supports + .uaword %r_disp32() and linker handles it correctly. + * configure, config.in: Rebuilt. + +2001-12-28 Jakub Jelinek + + * c-typeck.c (store_init_value): If initializing object with array + type of unknown size by a compound literal, set object's size from + compound literal size. + * doc/extend.texi (Compound Literals): Adjust documentation. + +2001-12-28 Richard Henderson + + * real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT. + (endian): Clear word 3 for INTEL_EXTENDED_IEEE_FORMAT. + (etartdouble): Invoke etoe64 for INTEL_EXTENDED_IEEE_FORMAT. + * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Don't special case + INTEL_EXTENDED_IEEE_FORMAT. + +2001-12-27 Geoff Keating + + * combine.c (try_combine): Mask off sign bits when combining + stores to the low and high parts of a two-word value. + + * expr.c (expand_expr): Don't mark memory for non-constants as + constant. + +Thu Dec 27 20:39:55 2001 Richard Kenner + + * integrate.c (copy_rtx_and_substitute, case MEM): If inlining + and not for LHS, clear RTX_UNCHANGING_P. + +2001-12-28 Philipp Thomas + + * cppfiles.c (stack_include_file): Don't translate . + +2001-12-27 Roger Sayle + + * builtins.c (expand_builtin_memcmp): Optimize memcmp built-in + when all arguments are known constant. Fixes PR opt/3508. + +2001-12-27 Kazu Hirata + + * config/h8300/h8300.md (two anonymous patterns): Remove. + +2001-12-27 Richard Henderson + + * haifa-sched.c (reemit_other_notes): New. + (schedule_block): Use it. + * sched-ebb.c (schedule_ebbs): Call remove_unnecessary_notes. + * sched-rgn.c (schedule_insns): Likewise. + * cfglayout.c (remove_scope_notes): Handle removing note at + the end of the insn chain. + * function.c (debug_find_var_in_block_tree): New. + +2001-12-27 Alan Modra + David Edelsohn + + * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Simplify. + +2001-12-27 Jakub Jelinek + + * toplev.c (independent_decode_option): Re-add -aux-info option + handling. + +Thu Dec 27 09:50:44 2001 Richard Kenner + + * integrate.c (copy_insn_notes): Don't adjust REG_EH_REGION note + if special value. + +2001-12-26 Kaveh R. Ghazi + + * collect2.c (is_ctor_dtor): Const-ify. + * m88k-protos.h (output_file_start): Likewise. + * m88k.c (m88k_lang_independent_options, output_options, + output_file_start): Likewise. + * fix-header.c (files_to_ignore, std_include_entry, include_entry, + std_include_table, main): Likewise. + * protoize.c (longopts): Likewise. + * regclass.c (int_reg_class_contents): Likewise. + * toplev.c (dump_file, f_options, W_options): Make static. + (lang_independent_options, f_options, W_options): Const-ify. + * tree-dump.c (dump_file_info): Likewise. + * unroll.c (_factor): Make static. + +Wed Dec 26 17:55:50 2001 Richard Kenner + + * config/alpha/alpha.c (alpha_align_insns): Remove warning. + + * config/sparc/sparc.md (call struct patterns): Show starting + at two words long. + +2001-12-26 David Edelsohn + + * rs6000.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add mcpu=405. + * sysv4.h (CPP_SYSV_SPEC, CPP_OS_VXWORKS_SPEC): Add mcpu=405. + +2001-12-26 DJ Delorie + + * function.c (expand_main_function): Make sure stack adjustments + happen before sjlj exception setup. + +2001-12-26 David Edelsohn + + * rs6000.md (indirect_jump): Prefer CTR over LR. + * xcoff.h (ASM_DECLARE_FUNCTION_NAME): Handle weak function. + +Tue Dec 25 12:04:47 2001 Richard Kenner + + * dwarf2out.c: Reformatting and minor code rearrangement. + +2001-12-24 Douglas B. Rupp (rupp@gnat.com) + + * configure.in (quoted_stage_prefix_set_by_configure): Generate. + * configure: Regenerated. + * Makefile.in (SUBDIR_FLAGS_TO_PASS): Use + quoted_stage_prefix_set_by_configure. + +Mon Dec 24 10:24:59 2001 Richard Kenner + + * rtl.h (in_expr_list_p): New declaration. + * rtlanal.c (in_expr_list_p): New function. + * cfgcleanup.c: Reformatting and minor code rearrangement. + * cfglayout.c, cfgloop.c, cfgrtl.c: Likewise. + +2001-12-23 Richard Henderson + + PR c/5163: + * c-decl.c (duplicate_decls): As needed, set DECL_INLINE when + we have a function body associated. Minor cleanups. + (grokdeclarator): Do not set DECL_INLINE without a function body. + +2001-12-23 Richard Henderson + + * stmt.c (resolve_operand_names): Handle operand modifiers. + +2001-12-23 Richard Henderson + + * stmt.c (parse_input_constraint): Break out from ... + (expand_asm_operands): ... here. Loop over the operands twice, + the first time only calling mark_addressable. Correct and simplify + the conditions for spilling an output operand to memory. + +2001-12-23 Richard Henderson + + * config/alpha/alpha.c (call_operand) [OSF]: Disallow virtual regs. + + * config/alpha/alpha.md (UNSPEC_SIBCALL): New. + (sibcall, sibcall_value, sibcall_osf_1_er, sibcall_osf_1): Use it. + (sibcall_value_osf_1_er, sibcall_value_osf_1): Likewise. + +2001-12-23 Joseph S. Myers + + * c-typeck.c (c_start_case): Don't strip conversions from the + controlling expression. Partially fixes PR c/2454. + +2001-12-23 Joseph S. Myers + + * Makefile.in (USER_H): Remove proto.h. + * config.gcc (c*-convex-*): Set extra_headers=proto.h. + +2001-12-23 Kaveh R. Ghazi + + * arc.c (arc_hard_regno_mode_ok): Const-ify. + * arc.h (arc_hard_regno_mode_ok): Likewise. + * i386.c (x86_64_reg_class_name): Make static. + * m68k.c (regno_reg_class): Const-ify. + * m68k.h (regno_reg_class): Likewise. + * mcore.c (reg_class_from_letter): Likewise. + * mcore.h (reg_class_from_letter): Likewise. + * sh.c (reg_class_from_letter, ashiftrt_insns, shift_insns, + ext_shift_insns, ext_shift_amounts): Likewise. + * sh.h (reg_class_from_letter): Likewise. + * sparc.c (hard_regno_mode_classes, hard_32bit_mode_classes, + hard_64bit_mode_classes): Likewise. + * sparc.h (hard_regno_mode_classes): Likewise. + + * gcc.c (modify_target): Make static. + * gengenrtl.c (defs, formats): Likewise. + * reload1.c (elim_table_1, init_elim_table): Const-ify. + * tradcpp.c (directive, directive_table, handle_directive, + skip_if_group, run_directive): Likewise. + +2001-12-23 Richard Henderson + + * calls.c (expand_call): Don't turn off ECF_LIBCALL_BLOCK for + an invalid result register; do end the sequence properly. + (emit_library_call_value_1): Likewise. + +2001-12-22 Aldy Hernandez + + * config/rs6000/rs6000.h (rs6000_builtins): Add vsldoi variants. + + * config/rs6000/rs6000.md ("altivec_vsldoi_*"): Same. + + * config/rs6000/rs6000.c: Clean up some spacing and indentation. + (altivec_init_builtins): Add tree types for builtins with 4 bit + literals. + (bdesc_3arg): Add vsldoi variants. + +2001-12-22 Kaveh R. Ghazi + + * 1750a.h (datalbl, jmplbl): Declare array size explicitly. + * a29k.h (a29k_debug_reg_map): Likewise. + * arc.h (arc_regno_reg_class): Likewise. + * c4x-protos.h (c4x_regclass_map, c4x_caller_save_map): Likewise. + * convex.h (regno_reg_class, reg_class_from_letter): Likewise. + * d30v.h (regno_reg_class, reg_class_from_letter): Likewise. + * i386.h (regclass_map): Likewise. + * m32r.h (m32r_hard_regno_mode_ok, m32r_punct_chars): Likewise. + * mcore.h (regno_reg_class): Likewise. + * mips.h (mips_print_operand_punct, mips_char_to_class): + Likewise. + * ns32k.h (regclass_map): Likewise. + * pj.h (pj_debugreg_renumber_vec): Likewise. + * s390.h (regclass_map): Likewise. + * sh.h (regno_reg_class): Likewise. + * sparc.h (sparc_regno_reg_class): Likewise. + + * hard-reg-set.h (reg_class_contents): Likewise. + * machmode.h (class_narrowest_mode): Likewise. + +2001-12-22 David Edelsohn + + * loop.c (scan_loop, move_movables, count_one_set): Do not + overlook hard registers when computing statistics. + +Sun Dec 23 00:49:37 CET 2001 Jan Hubicka + + * calls.c (ECF_LIBCALL_BLOCK): New constant. + (emit_call_1, initialize_argument_information, + precompute_arguments, expand_call, + emit_library_call_value_1): Use ECF_LIBCALL_BLOCK + instead of ECF_PURE | ECF_CONST. Honnor LCT_CONST/LCT_PURE. + +2001-12-22 Joseph S. Myers + + * config.gcc (extra_headers): Move settings to math-68881.h and + ppc-asm.h to common code for CPU types. Use math-68881.h on all + m68k targets. + (header_files): Remove unused setting. + +2001-12-22 Kaveh R. Ghazi + + * elxsi.c: Include "hard-reg-set.h" and/or don't declare + `call_used_regs' explicitly. + * i860.c: Likewise. + * m68k.c: Likewise. + * ns32k.c: Likewise. + * pa.c: Likewise. + * vax.c: Likewise. + * we32k.c: Likewise. + +Fri Dec 21 23:30:14 CET 2001 Jan Hubicka + + * i386.h (TARGET_CPU_DEFAULT_pentium_mmx): New. + (TARGET_CPU_DEFAULT_*): Renumber. + +Sat Dec 22 12:20:20 EST 2001 John Wehle (john@feith.com) + + * rtl.h (subreg_lsb): Declare. + * rtlanal.c (subreg_lsb): Implement. + +Sat Dec 22 08:59:50 2001 Richard Kenner + + * predict.c: Reformatting and minor cleanups. + * cfg.c, cfganal.c, cfgbuild.c: Likewise. + + * expr.c (expand_expr, case ADDR_EXPR): Handling taking address of + SAVE_EXPR. + * function.c (gen_mem_addressof): Add missing tests for SAVE_EXPR. + (put_addressof_into_stack): Clarify code in setting of used_p. + + * calls.c (flags_from_decl_or_type): Move ECF_SP_DEPRESSED here. + (expand_call): Delete from here. + Do pending stack adjustments if ECF_SP_DEPRESSED. + + * dwarf2out.c (save_rtx): Deleted. + (mem_loc_descriptor): Do equivalent operation. + (add_const_value_attribute, case CONST): Likewise. + (add_name_and_src_coords_attributes): Likewise. + +2001-12-21 Kazu Hirata + + * config/h8300/h8300.h: Fix comment formatting. + +Fri Dec 21 17:30:15 2001 Jeffrey A Law (law@redhat.com) + + * pa.h (CPP_SPEC): If not in ANSI mode, define _INCLUDE_LONGLONG. + (CPLUSPLUS_CPP_SPEC): Define _INCLUDE_LONGLONG. + +2001-12-21 Robert Lipe + + * system.h (PREFETCH): Explictly undefine. + +2001-12-21 Richard Henderson + + * c-parse.in (SAVE_WARN_FLAGS): Save warn_traditional. + (RESTORE_WARN_FLAGS): Restore it. + (extension): Zero warn_traditional. + +2001-12-21 Kazu Hirata + + * doc/passes.texi: Fix a typo. + +2001-12-21 Kazu Hirata + + * config/h8300/h8300.h: Fix a comment typo. + +2001-12-21 Jakub Jelinek + + * combine.c (nonzero_bits): If using reg_nonzero_bits, + we don't know anything about bits outside of X mode. + (num_sign_bit_copies): Likewise. + +2001-12-21 Nick Clifton + + * config/arm/arm.md (prefetch): Use 'a' operand code. + +2001-12-20 Kaveh R. Ghazi + + * aclocal.m4 (gcc_AC_PROG_GNAT): Run prospective ada drivers in + subshells. + * configure.in: Likewise for perl Pod::Man. + + * configure: Regenerated. + +2001-12-20 Kaveh R. Ghazi + + * builtin-attrs.def (__builtin_printf_unlocked, + __builtin_fprintf_unlocked, printf_unlocked, fprintf_unlocked): + Mark with the __printf__ attribute. + + * builtins.c (expand_builtin_fputs): Add an `unlocked' parameter + and set the replacement function depending on it. + (expand_builtin): Skip BUILT_IN_*_UNLOCKED when not optimizing. + Handle BUILT_IN_*_UNLOCKED when optimizing. + + * builtins.def (DEF_EXT_FALLBACK_BUILTIN, + DEF_EXT_FRONT_END_LIB_BUILTIN): New macros. + Declare the "unlocked" stdio functions. + + * c-common.c (c_expand_builtin_printf, c_expand_builtin_fprintf): + Add an `unlocked' parameter and set the replacement function + depending on it. + (c_expand_builtin): Handle BUILT_IN_PRINTF_UNLOCKED and + BUILT_IN_FPRINTF_UNLOCKED. + + * doc/extend.texi (printf_unlocked, fprintf_unlocked, + fputs_unlocked): Document. + +2001-12-20 Josef Zlomek + + * cfgloop.c (flow_loops_find): Use the information of the depth + first search order of the CFG correctly when finding natural loops. + +2001-12-20 Richard Henderson + + * config/alpha/alpha.md (prologue_mcount): Update for explicit relocs. + +2001-12-20 Richard Henderson + + * config/alpha/alpha.c (call_operand) [OSF]: Accept pseudos. + * config/alpha/alpha.md (call_osf, call_value_osf): Don't force + operand into $27. + +2001-12-20 Joseph S. Myers + + * configure.in (all_headers, all_lib2funcs): Remove. + * configure: Regenerate. + * Makefile.in (LANG_EXTRA_HEADERS): Remove. + (USER_H): Don't include $(LANG_EXTRA_HEADERS). + * config/alpha/t-interix (USER_H): Don't include + $(LANG_EXTRA_HEADERS). + * config/i386/t-interix: Likewise. + * config/t-openbsd: Likewise. + +2001-12-20 Andreas Jaeger + + * libgcc2.c (__bb_exit_func): Remove unused variable. + (num_digits): Remove unused function. + +2001-12-20 Alan Shieh + + * config/arm/arm.c (arm_output_epilogue): Changed IP restore + to use ldmfd instead of ldmea. + * config/arm/arm.c (arm_compute_initial_elimination_offset): + Modified to reflect behavior of arm_expand_prologue when generating + interrupt handlers + +2001-12-20 Nick Clifton + + * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): New + function. Compute which of registers r0 through r12 should be + saved onto the stack during a function's prologue. + (arm_compute_save_reg_mask): Use + arm_compute_save_reg0_reg12_mask. + (arm_compute_initial_elimination_offset): Use + arm_compute_save_reg0_reg12_mask. + + (arm_expand_prologue): Do not mark as save of the IP register + for an interrupt handler as being part of the frame creation + code. + +2001-12-20 Richard Henderson + + * varasm.c (assemble_real): Use REAL_VALUE_TO_x and assemble_integer + to emit floating point values. + (assemble_real_1): Remove. + + * 1750a/1750a.c (real_value_to_target_single): New. + (real_value_to_target_double): New. + * 1750a/1750a.h (TARGET_FLOAT_FORMAT): New. + (REAL_VALUE_TO_TARGET_SINGLE): New. + (REAL_VALUE_TO_TARGET_DOUBLE): New. + * 1750a/1750a-protos.h: Update. + + * 1750a/1750a.h, a29k/a29k.h, alpha/alpha.h, alpha/unicosmk.h, + alpha/vms.h, arc/arc.h, arm/aof.h, arm/aout.h, avr/avr.c, + avr/avr.h, c4x/c4x.h, clipper/clix.h, convex/convex.h, cris/cris.h, + d30v/d30v.h, dsp16xx/dsp16xx.c, dsp16xx/dsp16xx.h, elxsi/elxsi.h, + fr30/fr30.h, h8300/h8300.h, i370/i370.h, i386/i386.h, i386/i386elf.h, + i386/next.h, i386/ptx4-i.h, i386/sysv4.h, i860/fx2800.h, i860/i860.h, + i860/paragon.h, i860/sysv4.h, i960/i960-protos.h, i960/i960.c, + i960/i960.h, ia64/ia64.h, m32r/m32r.h, m68hc11/m68hc11.c, + m68hc11/m68hc11.h, m68k/3b1.h, m68k/altos3068.h, m68k/crds.h, + m68k/dpx2.h, m68k/hp320.h, m68k/m68k.h, m68k/mot3300.h, m68k/news.h, + m68k/next.h, m68k/next21.h, m68k/sgs.h, m68k/sun2o4.h, m68k/sun3.h, + m68k/tower-as.h, m88k/m88k.h, mcore/mcore.h, mips/mips-protos.h, + mips/mips.c, mips/mips.h, mmix/mmix-protos.h, mmix/mmix.c, + mmix/mmix.h, mn10200/mn10200.h, mn10300/mn10300.h, ns32k/encore.h, + ns32k/ns32k.h, pa/long_double.h, pa/pa.h, pdp11/pdp11.h, pj/pj.h, + romp/romp.c, romp/romp.h, rs6000/rs6000.h, s390/linux.h, sh/sh.h, + sparc/sparc.h, stormy16/stormy16.h, v850/v850.h, vax/vax.h, + vax/vaxv.h, we32k/we32k.h, doc/tm.texi: Remove ASM_OUTPUT_FLOAT, + ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE_FLOAT, + ASM_OUTPUT_SHORT_FLOAT, ASM_OUTPUT_THREE_QUARTER_FLOAT, and all + associated support routines. + +Thu Dec 20 16:58:46 CET 2001 Jan Hubicka + + * cfgcleanup.c (flow_find_cross_jump): Avoid incrementing of ninsns + if one of block does not contain jump. + (outgoing_edge_math): Revert last path; require edges to be noncomplex + nonfake to match single exit edge; require conditional jumps to not + have side effect. + +2001-12-20 Turly O'Connor + + * tm.texi (ASM_OUTPUT_OPERAND): Change documentation references to + "recog_operand" to "recog_data.operand". + * rtl.def: Likewise. + +2001-12-20 Jakub Jelinek + + * simplify-rtx.c (simplifi_binary_operation) [DIV]: If DIV has + narrower mode than op0, only return the bits in DIV's mode. + +2001-12-20 Jakub Jelinek + + * combine.c (distribute_notes): Avoid adding REG_LABEL notes + to JUMP_INSNs with JUMP_LABEL. + +2001-12-19 Aldy Hernandez + + * doc/install.texi: Add documentation for --enable-altivec. + + * config.gcc: Add support for --enable-altivec. + + * config/rs6000/altivec.h: New. + + * config/rs6000/linuxaltivec.h (SUBSUBTARGET_OVERRIDE_OPTIONS): + Define. Fix typo. + + * config/rs6000/rs6000.c (vrsave_operation): Change unspec to + unspec_volatile. + (generate_set_vrsave): Generate the unspec here instead of calling + an .md pattern. + (generate_set_vrsave): Use gen_rtvec. + (rs6000_emit_prologue): Replace call to gen_get_vrsave with + gen_rtx_SET. + + * config/rs6000/rs6000.md ("*movsi_internal1"): Add constraints + for setting special registers. + ("*set_vrsave_internal"): Use unspec_volatile. + ("set_vrsave"): Remove. + ("get_vrsave"): Remove. + + * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add vrsave to + SPECIAL_REGS. + +2001-12-19 Bruce Korb + + * gcc/fixinc/inclhack.def: Remove all the fix suppression "fixes". + (strict_ansi_not_ctd): accommodate __STDC__ == 0 tests in UW 2.1.2 + * gcc/fixinc/mkfixinc.sh(i?86-*-sysv4.2uw2*): now uses fixincl program + * gcc/fixinc/base/...: adjust for changes in fixes + +2001-12-20 Joseph S. Myers + + * po/gcc.pot: Regenerate. + + * configure.in (all_diff_excludes, diff_excludes): Remove. + * configure: Regenerate. + * Makefile.in (LANG_DIFF_EXCLUDES): Remove. + * objc/config-lang.in (diff_excludes): Remove. + +2001-12-19 Dan Nicolaescu + + * config/sparc/sparc.md (ldd peephole2s): For load peepholes pass + the destination register as a parameter to mems_ok_for_ldd_peep. + For store peepholes pass NULL_RTX. Move all volatile checks ... + * config/sparc/sparc.c (mems_ok_for_ldd_peep): ... here. Add a + register parameter, check it's not the same as base for an address. + * config/sparc/sparc-protos.h (mems_ok_for_ldd_peep): Update. + +2001-12-19 Jakub Jelinek + + * config/ia64/ia64.c (ia64_single_set): Return first set for + prologue_allocate_stack and epilogue_deallocate_stack instructions. + +2001-12-19 Dale Johannesen + + * config/rs6000/rs6000.h: LEGITIMIZE_RELOAD_ADDRESS: + redefine in terms of rs6000_legitimize_reload_address(). + * config/rs6000/rs6000-protos.h: Add this function. + * config/rs6000/rs6000.c: Add this function. Includes + handling for Darwin FP constants. + +Wed Dec 19 11:01:21 2001 Jeffrey A Law (law@redhat.com) + + * config/pa/t-hpux-shlib: New file. + * config.gcc (hpux10, hpux11): Include t-hpux-shlib in tmake_file + for 32bit hpux10 & hpux11 configurations. + +2001-12-19 Nick Clifton + + * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Pass + -mno-fpu onto gas unless -mhard-float is specified. + (MULTILIB_DEFAULTS): Include msoft-float. + + * config/arm/t-xscale-coff (EXTRA_MULTILIB_PARTS): Remove definition. + + * config/arm/coff.h (SUPPORTS_INIT_PRIORITY): Define (to false). + * config/arm/elf.h (SUPPORTS_INIT_PRIORITY): Define (to true). + +Wed Dec 19 06:12:34 2001 Douglas B. Rupp + + * dwarf2out.c (add_name_and_src_coords_attributes): Fix VMS procedure + descriptor output. + +2001-12-18 Stan Shebs + + * rs6000.h (LOCAL_ALIGNMENT): Fix parens. + +Tue Dec 18 17:02:06 2001 Richard Kenner + + * emit-rtl.c (widen_memory_access): Only call compare_tree_int + on an INTEGER_CST. + +2001-12-18 David Edelsohn + + * rs6000.c (rs6000_override_options): Only use DI ops when + TARGET_64BIT. Fix typo. + +Tue Dec 18 16:39:46 CET 2001 Jan Hubicka + + * att.h (ASM_FILE_START): Use asm_dialect. + * linux.h (ASM_FILE_START): Likewise. + * gas.h (ASM_FILE_START): Likewise. + * i386.c (ix86_debug_arg_string, ix86_debug_addr_string, + ix86_asm_string, ix86_asm_dialect): New. + (override_options): Set asm_dialect. + * i386.h (MASK_MIX_SSE_I387, MASK_INTEL_SYNTAX, MASK_DEBUG_ARG, + MASK_DEBUG_ADDR): Kill. + (MASK_64BIT, MASK_NO_RED_ZONE): renumber. + (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Use string. + (ASSEMBLER_DIALECT): Use asm_dialect. + (TARGET_SWITCHES): Undocument deprecated items; deprecate intel-syntax; + remove debug-addr and debug-arg. + (TARGET_OPTIONS): Add debug-arg, debug-addr, asm. + (asm_dialect): New enum. + (ix86_debug_arg_string, ix86_debug_addr_string, + ix86_asm_string, ix86_asm_dialect): Declare. + * invoke.texi (-mintel-syntax): Remove. + (-masm): Document. + +Tue Dec 18 16:37:42 CET 2001 Jan Hubicka + + * libgcc2.c (__bb_exit_func): Kill -ax dumping code. + +2001-12-18 Jason Merrill + + C++ ABI change: destroy value arguments in caller. + * calls.c (initialize_argument_information): Pass the address of + the TARGET_EXPR temporary rather than storing it into another. + +Tue Dec 18 07:09:06 2001 Douglas B. Rupp + + * config/alpha/xm-vms.h (INCLUDE_DEFAULTS): Add /gnu/include. + * config/alpha/vms.h (STACK_CHECK_BUILTIN): #define 0 for VMS. + +2001-12-18 Jakub Jelinek + + * config/linux.h (PREFERRED_DEBUGGING_TYPE): Remove. + * config/sparc/linux.h (PREFERRED_DEBUGGING_TYPE): Remove. + * config/sparc/linux64.h (PREFERRED_DEBUGGING_TYPE): Remove. + (CC1_SPEC): Don't default to -gstabs+ if -m32. + +2001-12-05 David O'Brien + + * elfos.h (PREFERRED_DEBUGGING_TYPE): Change to DWARF2_DEBUG. + +2001-12-18 Joseph S. Myers + + * po/gcc.pot: Regenerate. + +2001-12-18 Kazu Hirata + + * config/h8300/h8300.c: Fix comment typos. + * config/h8300/h8300.h: Fix comment formatting. + +2001-12-17 Kaveh R. Ghazi + + * machmode.h (mode_name, mode_class, mode_size, mode_unit_size, + mode_bitsize, mode_mask_array, mode_wider_mode): Set array size in + declaration to NUM_MACHINE_MODES. + (mode_size, mode_unit_size): Set array type to unsigned char. + (mode_bitsize): Set array type to unsigned short. + + * rtl.c (rtx_length): Set array type to unsigned char. + (rtx_length, rtx_name, rtx_format, rtx_class): Set array size to + NUM_RTX_CODE. + (mode_bitsize): Set array type to unsigned short. + (mode_size, mode_unit_size): Set array type to unsigned char. + (mode_name, mode_class, mode_bitsize, mode_size, mode_unit_size, + mode_wider_mode, mode_mask_array): Set array size to + NUM_MACHINE_MODES. + + * rtl.h (rtx_length, rtx_name, rtx_format, rtx_class): Set array + size in declaration to NUM_RTX_CODE. + +2001-12-17 Richard Henderson + + * config/alpha/alpha.md (unop): Encode RB as $sp. + +2001-12-17 Neil Booth + + * Makefile.in: Update dependencies. + * c-lang.c: Remove unnecessary includes. + (deferred_fns, start_cdtor, finish_cdtor, defer_fn): Move to + c-objc-common.c. + (finish_file): Move body to c_common_finish_file. + * c-objc-common.c: Include varray.h and ggc.h. + (deferred_fns, start_cdtor, finish_cdtor, defer_fn, + expand_deferred_fns, c_objc_common_finish_file): Moved from c-lang.c. + (c_objc_common_init): Initialize deferred function array. + * c-tree.h (c_objc_common_finish_file, + static_ctors, static_dtors): New. +objc: + * Make-lang.in: Update dependencies. + * objc/objc-act.c: Don't include varray.h. + (defer_fn, deferred_fns): Move to c-objc-common.c. + (objc_init): Similarly for initialization of it. + (finish_file): Move some to c-objc-common.c, use + c_objc_common_finish_file. + +2001-12-17 Aldy Hernandez + + * config/rs6000/rs6000.c: Remove is_gpr_return_reg prototype. + +2001-12-17 Neil Booth + + * doc/cppinternals.texi: Update. + +Mon Dec 17 14:21:21 2001 Jeffrey A Law (law@redhat.com) + + * expmed.c (emit_store_flag): Extract updated comparison code + from the return value of compare_from_rtx. + * expr.c (do_store_flag): Similarly. + +2001-12-17 Nick Clifton + + * caller-save.c (init_caller_save): Use MODE_BASE_REG_CLASS in + preference to BASE_REG_CLASS. + * recog.c (preprocess_constraints): Ditto. + * regclass.c (record_operand_costs, scan_one_insn, regclass, + record_reg_classes, record_address_regs): Ditto. + * regrename.c (scan_rtx_address, scan_rtx, + replace_oldest_value_addr, replace_oldest_value_mem): Ditto. + * reload.c (find_reloads, find_reloads_address, + find_reloads_address_1): Ditto. + * reload1.c (maybe_fix_stack_asms): Ditto. + * defaults.h (MODE_BASE_REG_CLASS): Provide default + definition. + * doc/tm.texi: Document MODE_BASE_REG_CLASS. + + * config/arm/arm.h (MODE_BASE_REG_CLASS): Define. + +2001-12-17 Joseph S. Myers + + * doc/install.texi2html: Use -I $SOURCEDIR. + + Separate user and internals manuals. + * Makefile.in (info, $(docdir)/gcc.info, dvi, gcc.dvi): Update + dependencies. + ($(docdir)/gccint.info, gccint.dvi): New targets. + (maintainer-clean, install-info, uninstall): Update. + * doc/.cvsignore: Add gccint.info*. + * doc/include/gcc-common.texi: New file. + * doc/gcc.texi: Use it. Adjust to be a user-only manual. Put + copyright notice in a macro. Don't include ISBN unless FSFPRINT + is defined. + * doc/gccint.texi: New file. + * doc/configfiles.texi, doc/extend.texi, doc/invoke.texi, + doc/md.texi, doc/passes.texi, doc/tm.texi, doc/trouble.texi: + Update for separate user and internals manuals. + +2001-12-17 Dale Johannesen + + * config/rs6000/rs6000.h: CPP_CPU_SPEC: add mcpu=7400. + ASM_CPU_SPEC: Ditto. + RTX_COSTS: Fix timing info for 7450 multiply. + * config/rs6000/rs6000.md: Fix timing info for 7450 imul. + Allow floats to be kept in int regs in movsf_low, + movsf_low_st (Darwin only) + +2001-12-17 Aldy Hernandez + + * config/rs6000/rs6000.c (vrsave_operation): Recognize SETs in + parallel. + (is_gpr_return_reg): New. + (rs6000_emit_prologue): Call generate_set_vrsave with additional + argument. Save only registers in the mask. Attach + REG_FRAME_RELATED_EXPR note to altivec offsets. Do not call + rs6000_frame_related when saving VRSAVE. + (rs6000_emit_epilogue): Call generate_set_vrsave with additional + argument. Restore only registers in the mask. Restore altivec + registers after we restore CR. + (generate_set_vrsave): New parameter epiloguep. Generate unspec + sets instead of clobbers for call saved registers. + (altivec_frame_fixup): New. + +2001-12-17 Richard Henderson + + * config/sparc/sparc.md (movdi_zero): Remove. + (movdi_insn_sp32_v9): New. + +2001-12-17 Richard Henderson + + * cfgcleanup.c (outgoing_edges_match): Check for insn match with + a single outgoing edge too. + +Mon Dec 17 18:27:52 CET 2001 Jan Hubicka + + * cfgrtl.c (redirect_edge_and_branch): Do simplify abnormal + edges resulting from computed jump + +Mon Dec 17 17:57:05 CET 2001 Jan Hubicka + + * Makefile.in (cfgcleanup.o): Add cselib.h dependency. + * basic-block.h (CLEANUP_THREADING): New constant. + * cfgcleanup.c: Include cselib.h + (thread_jump, mark_effect): New functions. + (try_forward_edges): Do jump threading when asked for. + * jump.c (mark_modified_reg, save_regs, num_same_regs, modified_regs, + modified_mem, thread_jumps, rtx_equal_for-thread_p): Kill. + * rtl.h (thread_jumps, rtx_equal_for_thread_p): Kill. + * toplev.c (rest_of_compilation): Do now call thread_jumps; use + CLEANUP_THREAD instead. + +2001-12-17 Kaveh R. Ghazi + + * sparc/linux.h (STARTFILE_SPEC): Fix typo in last change. + +2001-12-17 Tom Rix + + * config/rs6000/rs6000.c (expand_block_move): Fix limits on max size + of bytes. + +2001-12-17 Richard Sandiford + + * target.h (asm_out.byte_op, asm_out.aligned_op, asm_out.unaligned_op, + asm_out.integer): New fields. + * target-def.h (TARGET_ASM_BYTE_OP, TARGET_ASM_ALIGNED_[HSDT]I_OP, + TARGET_ASM_UNALIGNED_[HSDT]I_OP, TARGET_ASM_INTEGER): New initializers. + (TARGET_ASM_ALIGNED_INT_OP, TARGET_ASM_UNALIGNED_INT_OP): Collect + the individual initializers together. + (TARGET_ASM_OUT): Add the new initializers. + * output.h (assemble_integer): Return bool. + (integer_asm_op): Declare. + (default_assemble_integer): Declare. + (assemble_aligned_integer): New interface to assemble_integer. + * varasm.c (integer_asm_op): New function to select pseudo-op. + (default_assemble_integer): Default implementation of asm_out.integer. + (assemble_integer): Use the new target hook. Split objects into + words or bytes if the target hook fails. Return bool. + * doc/tm.texi (ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE, ASM_OUTPUT_SHORT, + ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_OUTPUT_QUADRUPLE_INT, + UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Undocument. + Document new target hooks. + + * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Use integer_asm_op. + * dwarf2asm.c (unaligned_integer_asm_op): Remove. + (dw2_assemble_integer): New. + (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset, + dw2_asm_output_pcrel, dw2_asm_output_addr, dw2_asm_output_addr_rtx, + dw2_asm_output_encoded_addr_rtx): Use it. + (dw2_asm_output_nstring): Use assemble_integer for the null terminator. + (dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128): Use + integer_asm_op to get the byte pseudo-op. Use assemble_integer + if it returns NULL. + * dwarf2asm.h (dw2_assemble_integer): Declare. + * dwarfout.c: Include dwarf2asm.h. Use dwarf2 functions for the + default implementation of most macros. + (output_unsigned_leb128): Use dw2_asm_output_data. + (output_signed_leb128, dwarfout_source_line): Likewise. + (output_reg_number): Use dw2_assemble_integer. + (generate_macinfo_entry): Separate the type and offset arguments. + Use assemble_integer to write the value. + (dwarfout_start_source_file): Update generate_macinfo_entry usage. + (dwarfout_end_source_file, dwarfout_define, dwarfout_undef): Likewise. + * final.c (output_addr_const): Don't put brackets round a subtracted + symbol value or ".". + * halfpic.c (half_pic_finish): Use assemble_aligned_integer. + + * config/1750a/1750a.c (assemble_integer_1750a): New, + * config/alpha/alpha.h (literal_section): Avoid ASM_OUTPUT_INT. + * config/arc/arc.c (arc_assemble_integer): New. + * config/arc/arc.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. + * config/arm/arm.c (arm_poke_function_name): Likewise. + (arm_assemble_integer): New, extracted from... + * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): ...here, now removed. + (ARM_TRAMPOLINE_TEMPLATE, ARM_FUNCTION_PROFILER): Avoid ASM_OUTPUT_INT. + (ARM_FUNCTION_PROFILER): Likewise. + * config/avr/avr-protos.h (asm_output_byte): Remove. + (asm_output_char, asm_output_short): Remove. + * config/avr/avr.c (avr_assemble_integer): New. + (asm_output_byte, asm_output_char, asm_output_short): Remove. + * config/clipper/clipper.h (ASM_LONG): Remove. + * config/dsp16xx/dsp16xx-protos.h (asm_output_long): Remove. + * config/dsp16xx/dsp16xx.c (asm_output_long): Remove. + * config/elxsi/elxsi.c (elxsi_assemble_integer): New. + * config/i370/i370.c (i370_hlasm_assemble_integer): New. + * config/i370/i370.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_SHORT. + (ASM_BYTE, ASM_SHORT, ASM_LONG): Delete. + * config/i386/att.h, (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. + * config/i386/linux.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Use + ASM_LONG instead of UNALIGNED_INT_ASM_OP. + * config/i386/sco5.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. + (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. + * config/i386/sysv4.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Use + ASM_LONG instead of UNALIGNED_INT_ASM_OP. + * config/i860/fx2800.h (ASM_FILE_END): Avoid ASM_LONG. + * config/i860/i860.c (i860_output_function_epilogue): Likewise. + * config/i860/i860.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. + (ASM_SHORT, ASM_LONG): Undefine. + * config/i860/paragon.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. + * config/i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. + * config/i960/i960.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. + * config/ia64/ia64.c (ia64_assemble_integer): New. + * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use integer_asm_op. + (ASM_OUTPUT_DWARF_PCREL): Likewise. + * config/m68hc11/m68hc11.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, + ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT): Avoid ASM_LONG. + (ASM_SHORT, ASM_LONG): Remove. + * config/m68k/m68k.h (INT_OP_GROUP): New macro. + (INT_OP_STANDARD, INT_OP_DOT_WORD, INT_OP_NO_DOT, INT_OP_DC): New + macros, the allowed values for INT_OP_GROUP. + * config/m68k/amix.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP + * config/m68k/atari.h (ASM_OUTPUT_ASCII): Likewise + * config/m68k/m68kelf.h (ASM_OUTPUT_ASCII): Likewise + * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP): Remove. + (INT_OP_GROUP): Define to INT_OP_NO_DOT. + * config/m68k/dpx2.h (ASM_LONG): Undefine. + (INT_OP_GROUP): Define to INT_OP_DC. + * config/m68k/dpx2g.h (ASM_LONG): Undefine. + * config/m68k/hp320.h (INT_OP_GROUP): Define to INT_OP_NO_DOT. + * config/m68k/lynx.h (ASM_LONG): Undefine. + * config/m68k/dpx2g.h (ASM_LONG): Undefine. + * config/m68k/m68kelf.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. + * config/m68k/m68kv4.h (ASM_OUTPUT_ASCII): Likewise. + (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_*. + * config/m68k/mot3300.h (INT_OP_GROUP): Define to INT_OP_STANDARD + for GAS and INT_OP_NO_DOT otherwise. + (ASM_CHAR, ASM_BYTE, ASM_SHORT, ASM_LONG): Remove. + (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, + ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Avoid ASM_LONG. + (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. + * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP): Remove. + (INT_OP_GROUP): Define to INT_OP_STANDARD. + (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, + ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Avoid LONG_ASM_OP. + (ASM_OUTPUT_ASCII): Avoid BYTE_ASM_OP. + * config/m68k/tower-as.h (ASM_LONG): Remove. + (INT_OP_GROUP): Define to INT_OP_NO_DOT. + * config/m88k/m88k.c (output_tdesc): Avoid ASM_LONG. + * config/m88k/m88k.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. + (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Avoid ASM_LONG. + * config/mips/iris5.h (TARGET_IRIX5): Define. + * config/mips/mips.c (mips_assemble_integer): New. + * config/mips/sni-svr4.h (ASM_LONG): Undefine. + * config/mmix/mmix-protos.h (mmix_asm_output_double_int): Remove. + * config/mmix/mmix.c (mmix_assemble_integer): New. + (mmix_asm_output_double_int): Remove. + (mmix_print_operand): Call mmix_output_octa directly. + * config/mmix/mmix.h (ASM_LONG): Remove. + * config/ns32k/ns32k.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. + * config/pa/pa.c (pa_assemble_integer): New. + (pa_override_options): Only use aligned DI ops on 64-bit targets. + Only use the unaligned ops if TARGET_GAS. + * config/pdp11/pdp11.c (pdp11_assemble_integer): New. + * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_SHORT. + * config/pj/pj.h (ASM_LONG): Undefine. + * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Undefine. + * config/rs6000/rs6000.c (rs6000_assemble_integer): New, mostly + extracted from ASM_OUTPUT_INT in sysv4.h. Use in_text_section() + and in_toc_section() rather than the in_section variable. + (rs6000_override_options): Only use DI ops when TARGET_POWERPC64. + * config/rs6000/sysv4.h (TOC_SECTION_FUNCTION): Add in_toc_section(). + (RELOCATABLE_NEEDS_FIXUP): Define. + * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Change space to tab. + * config/s390/linux.h (ASM_SHORT, ASM_LONG, ASM_QUAD): Remove. + (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use integer_asm_op + to get the word directive. + (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. + * config/s390/s390.c (s390_assemble_integer): New. + * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Use + integer_asm_op to get the word directive. + * config/sparc/sol2.h (ASM_SHORT, ASM_LONG): Remove. + * config/sparc/sparc-protos.h (output_double_int): Remove. + * config/sparc/sparc.c (output_double_int): Move to... + (sparc_assemble_integer): ...this new function. + (sparc_override_options): Only use .uaxword if TARGET_ARCH64. + * config/sparc/sparc.h (ASM_SHORT, ASM_LONG, ASM_LONGLONG): Remove. + * config/sparc/sysv4.h (ASM_LONG): Remove. + (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Avoid + ASM_LONG. + * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Use assemble_aligned_integer. + * config/we32k/we32k.h (TRAMPOLINE_TEMPLATE): Likewise. + + * config/1750a/1750a.c, config/a29k/a29k.c, config/alpha/alpha.c, + config/arc/arc.c, config/arm/arm.c, config/avr/avr.c, config/c4x/c4x.c, + config/clipper/clipper.c, config/convex/convex.c, config/cris/cris.c, + config/d30v/d30v.c, config/dsp16xx/dsp16xx.c, config/elxsi/elxsi.c, + config/fr30/fr30.c, config/h8300/h8300.c, config/i370/i370.c, + config/i386/i386.c, config/i860/i860.c, config/i960/i960.c, + config/ia64/ia64.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, + config/m68k/m68k.c, config/m88k/m88k.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/sh/sh.c, config/sparc/sparc.c, config/stormy16/stormy16.c, + config/v850/v850.c, config/vax/vax.c, config/we32k/we32k.c + (TARGET_ASM_BYTE_OP, TARGET_ASM_ALIGNED_HI_OP, + TARGET_ASM_ALIGNED_SI_OP, TARGET_ASM_ALIGNED_DI_OP, + TARGET_ASM_UNALIGNED_HI_OP, TARGET_ASM_UNALIGNED_SI_OP, + TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_INTEGER): Redefine as + appropriate. + + * config/defaults.h, config/darwin.h, config/elfos.h, config/svr3.h, + config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h, + config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, + config/clipper/clipper.h, config/convex/convex.h, config/cris/cris.h, + config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h, + config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h, + config/i386/bsd.h, config/i386/djgpp.h, config/i386/i386.h, + config/i386/sco5.h, config/i386/sol2.h, config/i386/sun386.h, + config/i860/i860.h, config/i960/i960.h, config/ia64/ia64.h, + config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/auxas.h, + config/m68k/dpx2.h, config/m68k/hp320.h, config/m68k/m68k.h, + config/m68k/mot3300.h, config/m68k/sgs.h, config/m68k/tower-as.h, + config/m88k/m88k.h, config/mcore/mcore-elf.h, config/mcore/mcore.h, + config/mips/iris5.h, config/mips/iris6.h, config/mips/mips.h, + config/mmix/mmix.h, config/mn10200/mn10200.h, config/mn10300/mn10300.h + config/ns32k/encore.h, config/ns32k/ns32k.h, config/pa/pa-64.h, + config/pa/pa.h, config/pdp11/pdp11.h, config/pj/pj.h, + config/romp/romp.h, config/rs6000/linux64.h, config/rs6000/rs6000.h, + config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/linux.h, + config/sh/sh.h, config/sparc/linux64.h, config/sparc/sol2.h, + config/sparc/sp64-elf.h, config/sparc/sparc.h, config/sparc/sysv4.h, + config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h, + config/we32k/we32k.h (ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE, ASM_BYTE_OP, + ASM_BYTE, ASM_OUTPUT_SHORT, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, + UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Undefine, where defined. + +2001-12-17 Stan Shebs + + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Define. + (STACK_BOUNDARY): Remove definition. + (CPP_PREDEFINES): Define __POWERPC__. + +2001-12-17 Gerald Pfeifer + + * doc/c-tree.texi (Trees): Only refer to GCC. + +2001-12-17 Andreas Jaeger + + * c-common.def: Fix typo in comment. + +2001-12-16 David O'Brien + + * config.gcc (sparc64-*-freebsd*): Add target. + * config/sparc/freebsd.h: New file. + * config/sparc/sparc.h (LIB_SPEC, LINK_SPEC): Don't define. + * config/sparc/sunos4.h (LIB_SPEC, LINK_SPEC): Define. + * config/sparc/sysv4.h (CPP_PREDEFINES): Undefine before defining. + +2001-12-16 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_legitimize_address): Force both + PLUS operands into registers for altivec mode. + +2001-12-16 Aldy Hernandez + + * builtins.c (apply_args_size): Change regno to unsigned. + +2001-12-16 Aldy Hernandez + + * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): Change + ALTIVEC_ARG_MAX_REG to ALTIVEC_ARG_NUM_REG. + +2001-12-16 Zack Weinberg + + * c-typeck.c (error_init, pedwarn_init, warning_init): Call + gettext on argument before printing. + + * fold-const.c (negate_expr): Always call fold on new + NEGATE_EXPR. + +2001-12-17 Joseph S. Myers + + * c-common.def (COMPOUND_LITERAL_EXPR): Contain a DECL_STMT, not + a DECL directly. + * c-common.h (COMPOUND_LITERAL_EXPR_DECL_STMT): New. + (COMPOUND_LITERAL_EXPR_DECL): Adjust definition. + * c-decl.c (build_compound_literal): Put the decl inside a + DECL_STMT. + * doc/c-tree.texi (COMPOUND_LITERAL_EXPR): Update documentation. + Fixes PR c/5105. + +2001-12-16 Aldy Hernandez + + * config.gcc: Add powerpc-*-eabisimaltivec*. + +2001-12-16 Neil Booth + + * c-common.c, c-common.h (back_end_hook): Remove. + * c-lang.c (finish_file): Remove back_end_hook. + +Sun Dec 16 13:13:01 2001 Richard Kenner + + * expr.c (highest_pow2_factor, case INTEGER_CST): Fix error in + last change. + +2001-12-16 Richard Henderson + + * toplev.c (parse_options_and_default_flags): Don't enable + flag_cprop_registers at -O1. + +2001-12-16 Kaveh R. Ghazi + + * avr.c (avr_simplify_comparision_p, adjust_insn_length, + mask_one_bit_p, output_reload_insisf): Don't use the 'U' suffix. + * avr.h (reg_class): Likewise. + * avr.md: Likewise. + * mcore.c (try_constant_tricks, mcore_byte_offset, + mcore_halfword_offset): Likewise. + * sh.c (shl_sext_kind, gen_block_redirect, split_branches): Likewise. + * v850.c (not_power_of_two_operand): Likewise. + + * clipper/clix.h (ASM_OUTPUT_ASCII): Avoid signed/unsigned + warnings. + * convex.h (ASM_OUTPUT_ASCII): Likewise. + * i370.h (ASM_OUTPUT_ASCII): Likewise. + * i386/att.h (ASM_OUTPUT_ASCII): Likewise. + * i386/i386-interix.h (ASM_OUTPUT_ASCII): Likewise. + * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. + * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. + * i386/sco5.h (ASM_OUTPUT_ASCII): Likewise. + * i386/sun386.h (ASM_OUTPUT_ASCII): Likewise. + * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. + * i860/bsd.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/3b1.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/amix.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/atari.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/crds.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/hp320.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/mot3300.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/sgs.h (ASM_OUTPUT_ASCII): Likewise. + * m68k/tower-as.h (ASM_OUTPUT_ASCII): Likewise. + * mips/bsd-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise. + * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise. + * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise. + * vax/vaxv.h (ASM_OUTPUT_ASCII): Likewise. + * we32k/we32k.h (ASM_OUTPUT_ASCII): Likewise. + + * i386/uwin.h (MD_STARTFILE_PREFIX): Avoid redefinition warnings. + * interix.h (TARGET_MEM_FUNCTIONS): Likewise. + * psos.h (CPP_PREDEFINES): Likewise. + * rs6000/linux64.h (ROUND_TYPE_ALIGN): Likewise. + * rs6000/xcoff.h (RS6000_MCOUNT, RS6000_ITRUNC, RS6000_UITRUNC, + ASM_OUTPUT_EXTERNAL): Likewise. + * sparc/liteelf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO): + Likewise. + * sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): Likewise. + * sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO): + Likewise. + * sparc/sunos4.h (SUNOS4_SHARED_LIBRARIES): Likewise. + + * c-lex.c (lex_number): Use ISXDIGIT/hex_value. + * vax/xm-vms.h (FILE_NAME_NONDIRECTORY): Use ISUPPER/TOLOWER. + * fold-const.c (real_hex_to_f): Use hex_value. + * real.c (asctoeg): Use hex_value & ISXDIGIT. + * toplev.c (toplev_main): Call hex_init. + * tradcpp.c (main): Call hex_init. + + * nextstep-protos.h: New file. + * nextstep.c: Include "rtl.h", "output.h" & "tm_p.h". + * nextstep.h (INCLUDE_DEFAULTS): Delete LOCAL_INCLUDE_DIR and + STANDARD_INCLUDE_DIR from the CROSS_COMPILE clause. + (nextstep_asm_out_constructor, nextstep_asm_out_destructor, + handle_pragma): Move prototypes to nextstep-protos.h. + * config.gcc (i[34567]86-next-*, m68k-next-nextstep2*, + m68k-next-nextstep[34]*): Append nextstep-protos.h to tm_p_file. + +2001-12-16 Craig Rodrigues + + PR other/3725 + * configure.in: Add AC_SUBST(target_alias). + * configure: Regenerated. + +2001-12-15 Richard Henderson + + * config/alpha/alpha.md (sibcall_osf_1_er): New. + (sibcall_value_osf_1_er): New. + +2001-12-15 Dan Nicolaescu + + * config/sparc/sparc.c (mems_ok_for_ldd_peep): Rename from + addrs_ok_for_ldd_peep_withmem; take MEMs as parameters, not + addrs; eliminate restriction of only using fp and sp as base + registers. + * config/sparc/sparc-protos.h: Update. + * config/sparc/sparc.md (movdi): Use TARGET_V9 not TARGET_ARCH64. + (*cmp_cc_set, *cmp_ccx_set64, *movdi_zero): New insns derived + from old define_peepholes. + Convert all the ldd/std peepholes to peephole2. + +2001-12-15 Ulrich Weigand + + * s390.md (prologue, epilogue, *return_si, *return_di): New. + s390.c (find_unused_clobbered_reg, s390_frame_info, + save_fpr, restore_fpr, s390_emit_prologue, s390_emit_epilogue): New. + s390-protos.h (s390_emit_prologue, s390_emit_epilogue): Declare. + s390.c (s390_arg_frame_offset): Use s390_frame_info. + (leaf_function_flag, cur_is_leaf_function, + save_fprs, restore_fprs, force_const_mem_late): Remove. + (s390_function_prologue, s390_function_epilogue): Mostly remove. + s390.md (lit): New. Uses ... + s390.c (s390_output_constant_pool): ... this, so adapt and make global. + s390-protos.h (s390_output_constant_pool): Declare. + s390.md (load_multiple, store_multiple): Allow use after reload. + s390.c (load_multiple_operation, store_multiple_operation): Likewise. + s390.h (INCOMING_FRAME_SP_OFFSET): Define. + s390.h (CALL_REALLY_USED_REGISTERS): Define. + config/s390/linux64.h (CALL_USED_REGISTERS): Remove, now handled ... + s390.h (CONDITIONAL_REGISTER_USAGE): ... here. + s390.c (s390_sr_alias_set): New global variable, initialized ... + (override_options): ... here. New. + s390-protos.h (override_options): Declare. + s390.h (OVERRIDE_OPTIONS): Call it. + s390.c (s390_function_profiler): New. + s390-protos.h (s390_function_profiler): Declare. + s390.h (FUNCTION_PROFILER): Call it. + s390.c (s390_profile): Remove. + + * s390.c (reg_used_in_mem_p): PC reload counts as memory access. + (addr_generation_dependency_p): Consider literal pool register loads. + (s390_adjust_priority): Do not schedule load_multiple. + s390.md (attribute "type"): Define some additional types. + (function_unit "integer"): Adapt. + (many insns): Adapt "type" attribute setting. + + * s390.c (general_s_operand, s_imm_operand): New. + (s_operand): Remove old definition, call general_s_operand instead. + s390-protos.h (s_imm_operand): Declare. + s390.c (base_n_index_p, r_or_s_operand, r_or_s_or_im8_operand, + r_or_x_or_im16_operand, r_or_im8_operand): Remove. + s390-protos.h (r_or_s_operand, r_or_s_or_im8_operand, + r_or_x_or_im16_operand, r_or_im8_operand): Likewise. + s390.h (PREDICATE_CODES): Add s_imm_operand, remove r_or_s*_operand. + s390.md (many insns): Rework insn predicates. + + * s390.c (legitimate_pic_operand_p, legitimate_constant_p): Accept all + non-symbolic constants. Reload will force them because of ... + (s390_preferred_reload_class): ... this. New. + s390-protos.h (s390_preferred_reload_class): Declare. + s390.h (PREFERRED_RELOAD_CLASS): Call it. + s390.md (movdi, movsi, movdf, movsf, *reload_la_64 splitters, + *reload_la_31 splitters): Handle constants after reload. + (many insns): no longer force all constants immediately. + s390.c (legitimate_reload_constant_p): New helper routine. + s390-protos.h (legitimate_reload_constant_p): Declare. + s390.c (print_operand): Clean up CONST_INT case, add CONST_DOUBLE case. + + * s390.h (FIRST_PSEUDO_REGISTER, FRAME_POINTER_REGNUM, + HARD_FRAME_POINTER_REGNUM, REGISTER_NAMES): Add virtual frame pointer. + (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Update. + (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Likewise. + (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. + (DWARF_FRAME_REGISTERS): Define. + s390.c (regclass_map): Add virtual frame pointer. + (legitimate_la_operand_p): Allow use of virtual frame pointer. + s390.md (*la_ccclobber, *addaddr_ccclobber): New. + (addaddr, addsi_64): Delete. + + * s390.h (HARD_REGNO_MODE_OK): Allow SImode and DImode values in + floating point registers. + (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Define. + (ADDR_FP_REGS, GENERAL_FP_REGS): New register classes. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. + + * s390.md (movti): Replace multi-insn output with splitters. + (movdi_31, movdf_31): Likewise. + (movti_ss, movdi_ss, movsi_ss, movdf_ss, movsf_ss): New. + (movdi_lhi, movdi_lli, movdi_larl, movsi_lhi, movsi_lli): New. + (movdi_64, movdi_31, movsi, movdf_64, movdf_31): Adapt. + (movdf_soft_64, movdf_soft_31, movsf_soft): Remove. + (movsf_64, movsf_31): Remove, replace by ... + (movsf): ... this. + (movqi_64): Use lhi instead of llill. + (*movstrictqi, *movstricthi): Don't use (strict_low_part (mem)). + + * s390.md (extendsidi2, *extendsidi2, extendhidi2, *extendhidi2, + extendqidi2, extendhisi2, *extendhisi2, extendqisi2, + extendqihi2 and associated splitters): Reworked. + (zero_extendsidi2, zero_extendsidi2, *zero_extendsidi2, + zero_extendhidi2, *zero_extendhidi2, zero_extendqidi2, + zero_extendqidi2, *zero_extendqidi2, zero_extendhisi2, + *zero_extendhisi2_64, zero_extendhisi2_31, zero_extendqisi2, + *zero_extendqisi2_64, *zero_extendqisi2_mem_31, + zero_extendqisi2_reg_31, zero_extendqihi2, *zero_extendqisi2_64, + zero_extendqihi2, zero_extendqihi2_64, zero_extendqihi2_31, + and associated splitters): Likewise. + (*sethighqisi, *sethighhisi, *sethighqidi_64, *sethighqidi_31 + and associated splitters): New. + (truncdisi2, truncdihi2, truncdiqi2, truncsihi2, do_truncsihi2, + *truncsihi2_64, truncsiqi2, trunchiqi2): Remove. + (ashlhi3, ashrhi3, lshrhi3, abshi3): Remove. + s390.h (PROMOTE_PROTOTYPES): Remove. + config/s390/linux64.h (PROMOTE_PROTOTYPES): Likewise. + + * s390.md (muldi3): Delete, use instead ... + (mulsidi3): ... this. + (*muldi3_64): Rename to muldi3. + (mulsi_6432): Fix template. + (divdi3, moddi3): Delete, replace by ... + (divmoddi4): ... this. + (divmodtidi3): Fix template. + (divmodtisi3): New. + (udivdi3, umoddi3): Delete, replace by ... + (udivmoddi4): ... this. + (udivmodtidi3): Fix template. + (divsi3, modsi3): Delete, replace by ... + (divmodsi4): ... this. + (divmoddisi3): Fix template. + (udivsi3, umodsi3): Adapt. + + * s390.md (anddi3): Remove SS alternative, use instead ... + (anddi3_ss, anddi3_ss_inv): ... these. + (anddi3_ni): New. + (andsi3*, andhi3*, andqi3*): Likewise. + (iordi3): Remove SS alternative, use instead ... + (iordi3_ss, iordi3_ss_inv): ... these. + (iordi3_oi): New. + (iorsi3*, iorhi3*, iorqi3*): Likewise. + (iordi3_cc, iordi3_cconly, iorsi3_cc, iorsi3_cconly): New. + (xordi3): Remove SS alternative, use instead ... + (xordi3_ss, xordi3_ss_inv): ... these. + (xordi3_oi): New. + (xorsi3*, xorhi3*, xorqi3*): Likewise. + (xordi3_cc, xordi3_cconly, xorsi3_cc, xorsi3_cconly): New. + (one_cmpldi2, one_cmplsi2, one_cmplhi2, one_cmplqi2): + Expand to XOR with -1. + (*one_cmpldi2, *one_cmplsi2, *one_cmplhi2): Remove. + (cmpdi_tm): Delete, replace by ... + (cmpdi_tm_reg, cmpdi_tm_mem): ... these. + (cmpsi_cct): Delete, replace by ... + (cmpsi_tm_reg, cmpsi_tm_mem): ... these. + (cmpdi_tm2, cmpsi_tm2): Improve. + (cmphi_tm_sub, cmpqi_tm_sub, cmpqi_tm2, cmpqi_tm): New. + s390.c (s390_single_hi, s390_extract_hi, + s390_single_qi, s390_extract_qi): New helper routines. + s390-protos.h (s390_single_hi, s390_extract_hi, + s390_single_qi, s390_extract_qi): Declare. + s390.c (tmxx_operand, const1_operand): Remove. + s390-protos.h (tmxx_operand, const1_operand): Likewise. + s390.h (PREDICATE_CODES): Likewise. + + * s390.md (sqrtdf2, sqrtsf2): New. + + * s390.h (CRT_CALL_STATIC_FUNCTION): Define. + (check_and_change_labels): Remove section-change special case. + + * s390.h (RETURN_ADDR_RTX): Fix use of __builtin_return_address + in leaf functions. Needs ... + (DYNAMIC_CHAIN_RTX): ... this. New. + + * s390.c (emit_pic_move): Don't generate pseudos if no_new_pseudos. + + * s390.md (movstrdix_64, movstrsix_31, movstrdi_64, movstrsi_31, + clrstrsi_64, clrstrsi_31, cmpstr_64, cmpstr_31): Do not clobber + input operands using a match_dup clause. + (movstrdi, movstrsi, clrstrdi, clrstrsi, cmpstrdi, cmpstrsi): Adapt. + + * s390.md (floatdidf2, floatdisf2, floatsidf2, floatsidf2_ieee, + floatsisf2, floatsisf2_ieee): Add missing CC clobber. + + * s390.md (floatsidf2_ibm): Use correct operand. + + * s390.md (fixuns_truncdfdi2, fixuns_truncdfsi2, fix_truncdfsi2, + fixuns_truncsfdi2, fixuns_truncsfsi2, floatsidf2): Remove use of + non-portable constants. + s390.c (s390_gen_rtx_const_DI): New helper routine. + s390-protos.h (s390_gen_rtx_const_DI): Declare. + + * s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Fix alignment. + + * config/s390/linux.h (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR, + ASM_OUTPUT_BYTE): Clean up assembly output. + (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGN): Remove duplicate definitions. + (ASM_OUTPUT_ASCII): Remove. + + * config/s390/t-linux (CRTSTUFF_T_CFLAGS_S): Define. + +2001-12-15 Zack Weinberg + + * unwind-dw2-fde-glibc.c: #define _Unwind_Find_FDE to itself + before including unwind-dw2-fde.c, if we are not using the + special code in this file. + +2001-12-15 Richard Henderson + + * config/alpha/alpha.h (TARGET_SWITCHES): Turn on + MASK_EXPLICIT_RELOCS if the assembler supports it. + * configure.in (HAVE_AS_EXPLICIT_RELOCS): New. + * configure, config.in: Rebuild. + +Sat Dec 15 17:53:03 2001 Richard Kenner + + * calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted + for rounded_stack_size. + +2001-12-15 Joseph S. Myers + + * c-typeck.c, config/i386/i386.h, config/mcore/mcore.h, + config/ns32k/ns32k.h, config/rs6000/sysv4.h, fold-const.c, + toplev.c, cppinit.c, cppmacro.c, gcc.c: Use "built-in" and + "bit-field" spellings in messages. + * po/gcc.pot: Regenerate. + +2001-12-15 Joseph S. Myers + + * gcc.c, config/fr30/fr30.c, config/v850/v850-c.c, toplev.c: Use + American spelling in messages. + * po/gcc.pot: Regenerate. + +2001-12-15 Kazu Hirata + + * config/h8300/h8300.md: Adjust whitespacing. Remove + constraints from expanders. Replace \@ with @. + +2001-12-15 Richard Earnshaw + + * arm/unknown-elf.h (CPP_PREDEFINES): Add a suitable default. + +2001-12-15 Ulrich Weigand + + * regrename.c (copyprop_hardreg_forward): Do not keep register + value data live across abnormal call or eh egdes. + +Sat Dec 15 08:29:45 2001 Richard Kenner + + * expr.c (highest_pow2_factor, case INTEGER_CST): Return + BIGGEST_ALIGNMENT for 0. + +Sat Dec 15 14:13:03 CET 2001 Jan Hubicka + + * predict.def (PRED_NORETURN): Make probabilities match reality. + (PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL, PRED_ERROR_RETURN): + Likewise. + +2001-12-15 Jakub Jelinek + + * configure.in: Check for ld. + (HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option. + * configure, config.in: Rebuilt. + * config.gcc: Add crtbeginT.o to extra_parts where needed. + * config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc + frame unwinding on Linux. + * config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde + frame unwinding. + * config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static. + (LINK_EH_SPEC): Define. + * config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static. + * config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define. + * config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't + iterate further if pc falls into current library, but fde was not + found. + * config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static + if using glibc. + (LINK_EH_SPEC): Define. + * config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64): + Use crtbeginT.o for -static. + (LINK_EH_SPEC): Define. + * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o. + * Makefile.in (crtbeginT.o): Add rule. + * gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh. + If neither -static-libgcc nor -shared-libgcc is passed and -shared, + use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not. + If none of the above switches are passed, use -lgcc -lgcc_eh. + (init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec. + * mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if + creating libgcc_s.so, put them into separate libgcc_eh.a instead. + * unwind-dw2-fde.c: Don't include any headers if this file + is included from other .c file. + * unwind-dw2-fde-glibc.c: New file. + * crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define. + Use it instead of EH_FRAME_SECTION_NAME where appropriate. + +2001-12-14 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memcmp): Mark parameter with + ATTRIBUTE_UNUSED. + * cfgcleanup.c (insns_match_p): Likewise. + * regrename.c (mode_change_ok): Likewise. + * gcc.c (execute): Const-ify. + +2001-12-14 Aldy Hernandez + + * c-parse.in (typename): Do not split attributes. + Remove unsupported attributes warning. + + * c-decl.c (groktypename): Apply attributes. + +2001-12-14 Richard Henderson + + * config/ia64/ia64.c (spill_restore_mem): Mark iterator + initialization as possibly dead. + +2001-12-14 Richard Henderson + + * regrename.c (mode_change_ok): New. + (find_oldest_value_reg): Use it. + +2001-12-14 Richard Henderson + + * regrename.c (struct value_data): Add max_value_regs. + (init_value_data): Initialize it. + (kill_value): Kill values that overlap the dying register. + (set_value_regno): New. + (kill_set_value, kill_autoinc_value, copy_value): Use it. + (copyprop_hardreg_forward_1): Kill earlyclobber operands + before looking at inputs. + +2001-12-14 David Edelsohn + + * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Handle + DECL_WEAK for function descriptors. + * config/rs6000/xcoff.h (HANDLE_PRAGMA_WEAK): Define if assembler + weak support present. + (ASM_WEAKEN_LABEL): Same. + +2001-12-14 Kazu Hirata + + * config/h8300/h8300.md (anonymous pattern): Add a missing + mode. + +2001-12-14 Kazu Hirata + + * config/h8300/h8300.c (h8300_adjust_insn_length): Fix a + comment typo. + +2001-12-14 Kazu Hirata + + * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): + Remove the initialization requierment. + (h8300_handle_tiny_data_attribute): Likewise. + +2001-12-14 Kazu Hirata + + * config/h8300/h8300.md (udivqi3): Remove. + (divqi3): Likewise. + (udivhi3): Likewise. + (divhi3): Likewise. + (umodqi3): Likewise. + (modqi3): Likewise. + (umodhi3): Likewise. + (modhi3): Likewise. + (udivmodqi3): New. + (divmodqi3): Likewise. + (udivmodhi3): Likewise. + (divmodhi3): Likewise. + +Sat Dec 15 01:39:12 CET 2001 Jan Hubicka + + * cfgcleanup.c (flow_find_cross_jump): Replace tests for note + by active_insn_p; count conditional jump as instruction. + +2001-12-14 DJ Delorie + Danny Smith + + * config/i386/cygwin.h (I386_PE_STRIP_ENCODING): Handle '*' + at SYM_NAME[0] or SYM_NAME[3]. + (STRIP_NAME_ENCODING): Don't check for leading '*'. + +2001-12-14 Ira Ruben + + Add -### option (displays driver-generated commands without + executing and quotes all arguments). + * doc/invoke.texi: Add -###. + * gcc.c (verbose_only_flag) - New flag. + * (execute): If -### write quoted arguments and return. + * (display_help): Print meaning of -###. + * (process_command): Handle -###. + +2001-12-14 Ira Ruben + + Fix to no allow -save-temps to clobber user's source file. + * gcc.c: Add static globals input_stat and input_stat_set. + (do_spec_1): For 'g', 'u', 'U' case with save_temps_flag + set, check that user's input file is not overwritten. + (set_input): Reset input_stat_set for each new file. + +Fri Dec 14 22:14:44 CET 2001 Jan Hubicka + + * predict.c (estimate_probability): Fix LOOP_EXIT heuristic. + +2001-12-14 Zack Weinberg + + * combine.c (record_dead_and_set_regs): Use + regs_invalidated_by_call. Don't note stores for CALL_INSNs. + +2001-12-14 Roger Sayle + + * builtins.def: Rename BUILT_IN_FSQRT to BUILT_IN_SQRT and + __builtin_fsqrt to __builtin_sqrt. + + * builtins.c (expand_builtin_mathfn,expand_builtin): Same. + * doc/extend.texi: Simplify documentation to match patch. + +Fri Dec 14 21:23:54 CET 2001 Jan Hubicka + + * config.gcc: Revamp target_cpu_default2 to strings; + support new x86 variants. + * i386.c (override_options): Default x86_cpu_string and x86_arch_string + properly; set prefetch_sse. + * i386.h (x86_prefetch_sse): Declare. + (TARGET_PREFETCH_SSE): New. + (CPP_CPU_DEFAULT_SPEC): Define according to the new macros. + (TARGET_CPU_DEFAULT_*): New. + +Thu Dec 13 21:57:13 CET 2001 Janis Johnson + Jan Hubicka + + * config/i386/i386.h (struct processor_costs): Add new members + prefetch_block and simultaneous_prefetches. + (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): New. + * config/i386/i386.c (processor_costs structs): Add values for + prefetch_block and simultaneous_prefetches. + * config/i386/i386.md (unspec values): Remove values for prefetch + operations, which now use the PREFETCH rtx code. + (prefetch_sse, prefetch_3dnow, prefetchw): Combine to use new + unified prefetch support. + +2001-12-14 Jason Merrill + + * diagnostic.c (sorry): Increment sorrycount before saving the + buffer state. + +Fri Dec 14 19:53:23 CET 2001 Jan Hubicka + + * i386.md (sqrt?f): Fix conditionals. + +Fri Dec 14 07:29:52 2001 Douglas B. Rupp + + * config.gcc (alpha64-dec-*vms*): New case. + * config/alpha/t-vms64, config/alpha/vms-crt0-64.c: New files. + * config/alpha/vms-psxcrt0-64.c, config/alpha/vms64.h: Likewise. + * config/alpha/xm-vms64.h: Likewise. + + * config/alpha/alpha.c (vms_attribute_table): Add new attributes. + (alpha_write_linkage): Test for null alpha_links. + (SECTION_VMS_GLOBAL, SECTION_VMS_INITIALIZE): New section attributes. + (vms_section_type_flags, vms_asm_named_section): Handle them. + +Fri Dec 14 12:05:14 CET 2001 Jan Hubicka + + * i386.c (ix86_fpmath, ix86_fpmath_string): New. + (override_option): Set ix86_fpmath. + * i386.h (MASK_MIX_SSE_I387): Remove. + (TARGET_SSE_MATH): New. + (TARGET_MIX_SSE_I387): Use ix86_fpmath. + (TARGET_SWITCHES): Remove "mix-sse-i387". + (fpmath_unit): New enum. + (ix86_fpmath, ix86_fpmath_string): Declare. + * i386.md (swapsf): Fix condition. + (add?f, sub?f, mul?f, div?f, sqrt?f, min?f): Use TARGET_SSE_MATH. + (fp_?f_*_nosse): New. + (fp_*): Use TARGET_SSE_MATH. + * invoke.texi (-mfpmath): Document. + (-msse2): Add. + +2001-12-14 Jason Merrill + + * dwarf2out.c (output_die): Print the string in the comment for + a DW_FORM_strp. + +2001-12-14 Richard Earnshaw + + * netbsd.h (COLLECT_SHARED_INIT_FUNC) + (COLLECT_SHARD_FINI_FUNC): Remove redundant semicolon. + * doc/tm.texi (COLLECT_SHARED_INIT_FUNC) + (COLLECT_SHARD_FINI_FUNC): Use @code where appropriate. + +2001-12-13 Richard Henderson + + * regrename.c (kill_value_regno): Simplify chain removal. + (kill_value): Kill all of HARD_REGNO_NREGS. + (kill_set_value): Use kill_value not kill_value_regno. + (kill_autoinc_value): Likewise. + (copyprop_hardreg_forward): Don't collect refresh_blocks. + Call delete_noop_moves. + +2001-12-13 Aldy Hernandez + + * attribs.c (c_common_attribute_table): Swap decl_req and type_req + for the mode attribute. + (handle_mode_attribute): Handle types, not decls. + +2001-12-13 Jason Merrill + + * c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro. + +2001-12-13 Aldy Hernandez + + * config/rs6000/rs6000.md (eh_set_lr_di): Change scratch + constraint to base register. + (eh_set_lr_si): Same. + +2001-12-13 Hans-Peter Nilsson + + * expr.c (expand_expr, case ADDR_EXPR): Don't honor + flag_force_addr for modifier != EXPAND_CONST_ADDRESS, + modifier != EXPAND_INITIALIZER and modifier != EXPAND_SUM. + +Thu Dec 13 20:30:08 2001 Richard Kenner + + * expr.c (copy_blkmode_from_reg): Add missing braces to eliminate + warning and reformat comments. + (expand_assignment): Don't pass EXPAND_WRITE if LHS is component. + (highest_pow2_factor, case INTEGER_CST): Return BIGGEST_ALIGNMENT + if overflow. + +2001-12-12 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_override_options): Add + SUBSUBTARGET_OVERRIDE_OPTIONS. + + * config/rs6000/eabialtivec.h: New file. + + * config/rs6000/linuxaltivec.h: New file. + + * config.gcc: Add powerpc-*-eabialtivec and + powerpc-*-linux-gnualtivec. + +2001-12-13 Neil Booth + + * toplev.c (process_options, parse_options_and_default_flags): + Set flag_no_inline before the post_options hook. + +2001-12-13 Richard Henderson + + * emit-rtl.c (adjust_address_1): Don't adjust address if adjust + is false. + +2001-12-13 Richard Earnshaw + + * collect2.c (COLLECT_SHARED_INIT_FUNC) + (COLLECT_SHARD_FINI_FUNC): Define default values. + (write_c_file_stat): Use them to call construtor and destructor + functions in shared libraries. + * doc/tm.texi (COLLECT_SHARED_INIT_FUNC) + (COLLECT_SHARD_FINI_FUNC): Document them. + * config/netbsd.h (COLLECT_SHARED_INIT_FUNC) + (COLLECT_SHARD_FINI_FUNC): Define. + + * config/netbsd.h (LINK_SPEC): Don't pull in estart if creating a + shared library. Pass -shared through to the linker. + * config/arm/netbsd.h (LINK_SPEC): Likewise. + + * config/arm/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -fpic. + (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, SHLIB_OBJS, SHLIB_LINK) + (SHLIB_INSTALL): Define. + +2001-12-13 Richard Earnshaw + + * arm.c (legitimize_pic_address): Handle LABEL_REFs in substantially + the same way as we handle SYMBOL_REFS. + +Thu Dec 13 07:47:24 2001 Richard Kenner + + * loop.c (remove_constant_addition): Fix prototype and whitespace. + (emit_prefetch_instructions): Remove warnings and whitespace + changes. + +Thu Dec 13 06:48:38 2001 Douglas B. Rupp + + * config/alpha/vms-cc.c (preprocess_args): Fix forward + declaration. + +Thu Dec 13 12:31:07 CET 2001 Jan Hubicka + + * predict.c (estimate_probability): Reorganize opcode heuristics. + * predict.def (PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL, + PRED_FPOPCODE): New. + + * i386.c (override_options): Recognize various CPU variants and set + SSE/MMX/3dNOW flags accordingly. + * i386.h (MASK_MMX_SET, MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, + MASK_3DNOW_A_SET): New. + (MASK_ACCUMULATE_OUTGOING_ARGS_SET): New. + (MASK_NO_ACCUMULATE_OUTGOING_ARGS): Delete. + (MASK_*): Renumber. + (TARGET_FLAGS): Use new masks. + (CPP_CPU_SPECS): Recognize new CPU variants. + * invoke.texi (-mcpu): Update documentation. + + * flags.h (flag_prefetch_loop_arrays): Declare. + * loop.h (LOOP_PREFETCH): Define new constant. + * loop.c (strength_reduce): Call emit_prefetch_instructions. + (MAX_PREFETCHES, PREFETCH_BLOCKS_BEFORE_LOOP_MAX, + PREFETCH_BLOCKS_BEFORE_LOOP_MIN, PREFETCH_BLOCKS_IN_LOOP_MIN): New + constants. + (check_store_data): New structure. + (check_store, emit_prefetch_instructions, rtx_equal_for_prefetch_p): + New functions. + * toplev.c: Include insn-flags.h. + (flag_prefetch_loop_arrays): New global variable. + (lang_independent_option): Add -fprefetch-loop-arrays. + (rest_of_compilation) Pass LOOP_PREFETCH when flag_prefetch_loop_arrays + is set. + * Makefile.in (toplev.c): Depend on insn-flags.h. + * invoke.texi (-fprefetch-loop-arrays): Document. + + * predict.c (estimate_probability): Distribute the loop exit + probability according to number of exit edges. + + * cfgcleanup.c (insns_match_p): Break out from ...; + (flow_find_cross_jump): ... here; + (outgoing_edges_match): Add parameter MODE; attempt to match everything + except for tablejumps. + (try_crossjump_to_edge): Accept complex edges. + (try_crossjump_bb): Likewise. + +2001-11-29 Corey Minyard + + * recog.c (validate_replace_rtx_1): Use simplify_gen_binary + instead of plus_constant. + * simplify-rtx.c (neg_const_int): New. + (simplify_gen_binary, simplify_plus_minus): Use it. + +2001-12-12 Roger Sayle + + * builtins.c (expand_builtin_memset, expand_builtin_memcpy, + expand_builtin_strcpy): Additional arguments TARGET and MODE. + (expand_builtin_bzero, expand_builtin_strcpy, + expand_builtin_strncpy, expand_builtin_bzero): Pass additional + TARGET and MODE parameters to the above functions. + (expand_builtin_memset, expand_builtin_memcpy): Optimize the + case where the LEN parameter is constant zero. + (expand_builtin_memcmp): No longer conditional on + HAVE_cmpstrsi. Take an additional mode parameter. Optimize + the cases where len is either constant zero or one. + Optimize to call to memcpy, even if the memcpy isn't inlined. + (expand_builtin_strncpy): Optimize to call memcpy, even if the + memcpy isn't inlined. + (expand_builtin_strcmp, expand_builtin_strncmp): Always attempt + to optimize to a call to memcmp. + (expand_builtin): expand_builtin_memcmp can always be called, + and pass the required parameters to expand_builtin_memcmp, + expand_builtin_memset, expand_builtin_memcpy and + expand_builtin_strcpy. + +2001-12-12 David O'Brien + + * config.gcc (arm-*-freebsd*): Add target. + * config/arm/freebsd.h: New file. + * config/arm/arm.h (CPP_PREDEFINES): Do not define. + (CPP_SPEC): #undef before defining. + (CPP_CPU_ARCH_SPEC): Add -Acpu=arm -Amachine=arm. + * config/arm/conix-elf.h (CPP_PREDEFINES): Remove -Acpu=arm + -Amachine=arm. + * config/arm/linux-elf.h: Likewise. + * config/arm/netbsd.h: Likewise. + * config/arm/riscix.h: Likewise. + * config/arm/riscix1-1.h: Likewise. + * config/arm/semiaof.h: Likewise. + +2001-12-12 Richard Henderson + + * regrename.c (copyprop_hardreg_forward): New optimization. + (kill_value_regno, kill_value, init_value_data, kill_clobbered_value, + kill_set_value, kill_autoinc_value, copy_value, find_oldest_value_reg, + replace_oldest_value_reg, replace_oldest_value_addr, + replace_oldest_value_mem, copyprop_hardreg_forward_1, + debug_value_data, validate_value_data): New. + * rtl.h (copyprop_hardreg_forward): Declare. + * toplev.c (flag_cprop_registers): New. + (f_options): Add -fcprop-registers + (rest_of_compilation): Invoke it. + (parse_options_and_default_flags): Set it at -O1. + * doc/invoke.texi: Document it. + +2001-12-12 Jakub Jelinek + + * dwarf2out.c (dw_val_class): Add dw_val_class_range_list. + (DEBUG_RANGES_SECTION_LABEL): Define. + (ranges_section_label): Add. + (add_AT_range_list): New. + (print_die, sizeof_die, value_format): Handle dw_val_class_range_list. + (output_loc_list): Location expression length is always 2-byte. + (output_die): Handle dw_val_class_range_list. + (gen_lexical_block_die): Call add_AT_range_list. + (dwarf2out_init): Initialize ranges_section_label. + (dwarf2out_finish): Emit ranges_section_label. + +2001-12-12 Jakub Jelinek + + * c-typeck.c (digest_init): Allow initializing + static storage duration objects with compound literals. + * doc/extend.texi (Compound literals): Document the extension. + +2001-12-12 Richard Henderson + + * emit-rtl.c (adjust_address_1): Always copy address to avoid + shared rtl. + +Wed Dec 12 07:37:52 2001 Olivier Hainque + + * stmt.c (expand_end_case): Do subtraction of lower bound as trees + to avoid overflow. + +Wed Dec 12 07:35:24 2001 Douglas B. Rupp + + * cppfiles.c (read_include_file): Set buffer size properly when + file is shorter than expected. + +Wed Dec 12 08:35:33 2001 Nicola Pero + + * objc/objc-act.c (encode_complete_bitfield): Fixed encoding + enumeral types - encode them using 'i'. + +2001-12-12 Nathan Sidwell + + * doc/extend.texi (Deprecated Features): Deprecate implicit + typename. Document that named return and initializer lists are now + removed. + +2001-12-11 Roger Sayle + + * except.c (reachable_next_level): Handle ERT_UNKNOWN to avoid + compiler warning about enumeration values not being handled. + +2001-12-11 Momchil Velikov + + * config/fp-bit.c (pack_d): Cast to ``fractype'' for long long + shifts. + +2001-12-11 Richard Henderson + + * config/alpha/alpha.h (TARGET_FIXUP_EV5_PREFETCH): New. + * config/alpha/linux.h (TARGET_FIXUP_EV5_PREFETCH): New. + * config/alpha/alpha.md (prefetch): New. + +2001-12-11 Richard Henderson + + * combine.c (simplify_and_const_int): Simplify (AND (PLUS X Y) C) + if C has only low bits set and doesn't intersect with X or Y. + +Tue Dec 11 23:58:39 EST 2001 John Wehle (john@feith.com) + + * basic-block.h (flow_preorder_transversal_compute): Declare. + * cfganal.c (flow_preorder_transversal_compute): Implement. + +Tue Dec 11 23:54:27 EST 2001 John Wehle (john@feith.com) + + * cfganal.c (flow_depth_first_order_compute): Always + increment dfsnum. + +2001-11-30 Alan Matsuoka + + * combine.c (combine_simplify_rtx) : Can't simplify + cases that use mode class MODE_CC. + +2001-12-11 Richard Henderson + + * expmed.c (expand_divmod): Ignore sdiv_pow2_cheap for modes in + which there is no divide expander. + +2001-12-11 Richard Henderson + + * except.c (sjlj_find_directly_reachable_regions): Don't + consider RNL_BLOCKED a directly reachable region. + (sjlj_assign_call_site_values): Trust directly_reachable. + (sjlj_emit_dispatch_table): Likewise. + +2001-12-11 Richard Henderson + + * config/alpha/alpha.md (divmodsi_internal_er): Split, so that + we represent the address load's dependency on the gp. + (divmoddi_internal_er): Likewise. + (divmodsi_internal_er_1, divmoddi_internal_er_1): New. + +2001-12-11 Richard Henderson + + * emit-rtl.c (widen_memory_access): New. + * expr.h (widen_memory_access): Declare it. + * config/alpha/alpha.c (get_aligned_mem): Use it. + +2001-12-11 Richard Henderson + + * combine.c (simplify_shift_const): Move SHIFT_COUNT_TRUNCATED + simplification above out of range check. + +2001-12-11 Dan Nicolaescu + + * config/sparc/sparc.md (prefetch): New. + +2001-12-11 Aldy Hernandez + + * output.h (regno_uninitialized): Make argument unsigned. + + * flow.c (regno_uninitialized): Make regno unsigned. + +2001-12-11 David O'Brien + + * elfos.h (ENDFILE_SPEC, STARTFILE_SPEC): Do not define. + * config/cris/cris.h (ENDFILE_SPEC): Define. + * config/i386/i386elf.h ((ENDFILE_SPEC, STARTFILE_SPEC): Define. + * config/pa/elf.h: Likewise. + +2001-12-11 Richard Henderson + + * objc/objc-act.c (build_string_class_template): New. + (build_objc_string_object): Call it. + +2001-12-11 Steve Ellcey + + * doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): New. + * defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): New. + * calls.c (store_unaligned_arguments_into_pseudos): Check + FUNCTION_ARG_REG_LITTLE_ENDIAN to see how structures + are passed/returned. + * expr.c (move_block_from_reg): Ditto. + (move_block_from_reg): Ditto. + (copy_blkmode_from_reg): Ditto. + * stmt.c (expand_return): Ditto. + * stor-layout.c (compute_record_mode): If + FUNCTION_ARG_REG_LITTLE_ENDIAN is set then check + MEMBER_TYPE_FORCES_BLK even if mode == VOIDmode. + * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set to true + so that Structures of one field are still treated as structures. + (FUNCTION_ARG_REG_LITTLE_ENDIAN): New, set it to true. + (FUNCTION_ARG_PADDING): Set to ia64_hpux_function_arg_padding(). + (PAD_VARARGS_DOWN): Modify from default to not pad structures down. + * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): New. + * config/ia64/ia64.c (ia64_hpux_function_arg_padding): New function + to special case handling of structure padding. + +2001-12-11 Daniel Berlin + + * sched-rgn.c (CONST_BASED_ADDRESS_P): CONST_INT -> CONSTANT_P. + (may_trap_exp): Stores only are risk if they trap, too, not just + if code == MEM. + +2001-12-11 Aldy Hernandez + + * flow.c (find_regno_partial): Indent properly. Add a default to + switch. + +2001-12-11 Neil Booth + + * c-common.c (combine_strings): Complain if concatenating + __FUNCTION__. + * c-parse.in (yylexname): Flag artificial strings. + * tree.h (TREE_ARTIFICIAL_STRING_P): New. +doc: + * extend.texi: Update. + +2001-12-11 Aldy Hernandez + + * c-common.c (type_for_mode): Handle unsigned vectors. + (type_for_mode): Remove redundant calls to TYPE_MODE. + + * tree.c (make_vector): New. + (build_common_tree_nodes_2): Use make_vector for vector types. + Add unsigned vector types. + + * tree.h (tree_index): Add unsigned types for vectors. + (unsigned_V16QI_type_node): New. + (unsigned_V4SI_type_node): New. + (unsigned_V8QI_type_node): New. + (unsigned_V8HI_type_node): New. + (unsigned_V4HI_type_node): New. + (unsigned_V2SI_type_node): New. + +2001-12-11 Stan Shebs + + * objc/objc-act.c (finish_message_expr): Fix misplaced parens in a + test of class names. + +2001-12-11 David O'Brien + + * config.gcc (m68020-*-elf*): Expand tm_file to include all needed + cpu configuration headers. + * config/h8300/elf.h: Include dbxelf.h. + * config/m68k/linux.h: Likewise. + * config/m68k/m68020-elf.h: Likewise. + * config/m68k/m68kv4.h: Likewise. + * config/sh/elf.h: Likewise. + * config/m68k/m68kemb.h: Add comment about the its purpose. + +2001-12-11 Richard Henderson + + * objc/objc-act.c (build_constructor): Cast initializer values + to the proper field types. + +2001-12-11 Jakub Jelinek + + * unwind-dw2.c (execute_cfa_program): Fix DW_CFA_restore handling. + +2001-12-10 Roger Sayle + + * builtins.c (expand_builtin): Use a switch statement to list + those functions not expanded without optimizations, instead of a + series of equality tests. + +Tue Dec 11 07:08:57 2001 Douglas B. Rupp + + * config/alpha/vms.h (LIB_SPEC): Define. + * config/alpha/xm-vms.h (INCLUDE_DEFAULTS): Don't set component field. + + * libgcc2.c (_bb): Remove ctime declaration. + + * Makefile.in (stage[1234]-start): $(LN_S) utilities in a manner + that works if LN_S = cp. + + * config/alpha/x-vms (version): Change "." to "_". + + * configure.in: Hardcode that vfork works on VMS host. + * configure: Regenerated. + +Mon Dec 10 18:37:31 2001 Douglas B. Rupp + + * gcc.c (convert_filename): Add do_obj parameter. Don't convert + unless do_obj true. + (process_command): Modify calls to convert_filename. + +2001-12-11 Rainer Orth + + * config/sparc/sol2-sld-64.h: Include dbxelf.h again. + +Mon Dec 10 15:54:27 2001 Jeffrey A Law (law@cygnus.com) + + * combine.c (known_cond): Check mode of each operand to determine + if COND is comparing floating point values. + +2001-12-10 David Edelsohn + + * rs6000.h (processor_type): Add PPC405. + (RTX_COSTS): Add PPC405. Correct rs64 and ppc630 multiply costs. + * rs6000.md: Add PPC405 information. Utilize imul2 and imul3 for + rios1, rs64, and ppc630 processors. + * rs6000.c (processor_target_table): Add PPC405. + +2001-12-10 Richard Henderson + + * config/alpha/alpha.md (unaligned_extendhidi): Call gen_lowpart + instead of hardcoding subregs into the _be and _le patterns. + +2001-12-10 Neil Booth + + * c-lex.c, c-parse.in, c-typeck.c: Revert concatenation changes. + +Mon Dec 10 09:19:11 2001 Richard Kenner + + * config/i386/i386.md (leave, leave_rex64): Adjust pattern to match + what insn does. + +2001-12-10 Joseph S. Myers + + * doc/cpp.texi: Don't condition menus on @ifinfo. Condition the + copyright notice formerly conditioned on @ifinfo on @ifnottex + instead. + +Mon Dec 10 06:15:44 2001 Richard Kenner + + * vmsdbgout.c (lookup_filename): Remove warning. + +Mon Dec 10 06:09:57 2001 Douglas B. Rupp + + * Makefile.in: Add $(OUTPUT_OPTION) to compilation rules. + + * config.gcc (alpha*-dec-vms*): Change to alpha*-dec-*vms* + (exeext, target_alias, prefix, local_prefix): Define. + * config/alpha/x-vms (USE_COLLECT2): Make empty. + * config/alpha/xm-vms.h (INCLUDE_DEFAULTS): Use Unix style + file specifications. Remove ".". + (GCC_INCLUDE_DIR): Remove redefinition (redundant). + * fixinc/mkfixinc.sh (alpha*-dec-vms*): Change to alpha*-dec-*vms* + +2001-12-09 Nathan Sidwell + + * Makefile.in (.po.gmo): Use POSIXLY_CORRECT argument ordering. + +Sun Dec 9 21:57:24 2001 Douglas B. Rupp + + * config/alpha/t-vms (EXTRA_PARTS): Append $(VMS_EXTRA_PARTS) + Add rules for building [vp]crt0.o + * config/alpha/vms.h (START_FILE_SPEC): Define. + * config/alpha/x-vms (VMS_EXTRA_PARTS): Define + * config/alpha/vms-crt0.c, config/alpha/vms-psxcrt0.c: New files. + * doc/invoke.texi: Document special Alpha/VMS options. + +Sun Dec 9 20:25:17 2001 Richard Kenner + + * hwint.h (HOST_BITS_PER_LONGLONG): Deal with __int64 type. + * vmsdbg.h (DST_SRC_COMMAND): Test for type of long long or __int64, + not GNUC. + +Sun Dec 9 20:19:32 2001 Richard Kenner + Douglas B. Rupp + + * tree.c (append_random_char): Conditionalize INO for VMS. + +2001-12-09 Richard Henderson + + * cfgcleanup.c (label_is_jump_target_p): New function. + (try_optimize_cfg): Use label_is_jump_target_p to check if label is + target of a JUMP_INSN from the preceding block. + +Sun Dec 9 18:40:07 2001 Douglas B. Rupp + + * vmsdbgout.c (lookup_filename): Assign null string instead + of null pointer to fnam. + +2001-12-09 Richard Henderson + + * config/alpha/alpha.c (alpha_align_insns): Suppress realignment + immediately after a call; insert nops before a call. + +2001-12-09 Richard Henderson + + * config/alpha/alpha.c (alpha_align_insns): Use align_functions, + not FUNCTION_BOUNDARY. + * config/alpha/alpha.h (TRAMPOLINE_ALIGNMENT): New. + * config/alpha/alpha32.h, config/alpha/vms.h: Likewise. + * config/alpha/unicosmk.h (FUNCTION_BOUNDARY): Remove. + +2001-12-09 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_function_block_profiler, + mmix_block_profiler, mmix_function_block_profiler_exit): Delete + unused functions. + * config/mmix/mmix-protos.h (mmix_function_block_profiler, + mmix_block_profiler, mmix_function_block_profiler_exit): Delete + prototypes. + + * config/cris/cris.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): + Delete obsoleted macros. + +2001-12-09 Joseph S. Myers + + * doc/cpp.texi, doc/cppinternals.texi, doc/invoke.texi, + doc/md.texi, doc/rtl.texi, doc/tm.texi: Use American spelling. + + * ChangeLog.2, ChangeLog.3, ChangeLog.5, ChangeLog, alias.c, + cfgbuild.c, expmed.c, expr.c, final.c, flow.c, fold-const.c, + function.c, config/alpha/alpha.md, config/alpha/vms-ld.c, + config/arm/arm.c, config/arm/arm.h, config/c4x/libgcc.S, + config/i370/i370.c, config/i386/i386.c, + config/i386/i386-interix.h, config/i386/i386.md, + config/i386/i386.h, config/i386/netbsd-elf.h, config/ia64/ia64.c, + config/m32r/m32r-protos.h, config/mcore/mcore.h, + config/rs6000/rs6000.h, config/sparc/linux64.h, + config/sparc/sparc.c, config/v850/v850-protos.h, + config/cris/cris.h, config/s390/s390.md, config/elfos.h: Fix + spelling errors. + +2001-12-09 Daniel Berlin + + * config/rs6000/rs6000.h (enum rs6000_builtins): Add remaining + altivec builtins (VCF?X, VCT?XS, VSEL, V*EFP, VRFI*). + + * config/rs6000/rs6000.c: Ditto. + + * config/rs6000/rs6000.md: Ditto. + +2001-12-09 Kaveh R. Ghazi + + * 1750a.md: Add default case in switch. + * alpha/vms.h (INITIAL_ELIMINATION_OFFSET): Add abort clause in + if-else statement. + * dsp16xx.c (print_operand_address): Likewise. + * i386/osf1elf.h (FUNCTION_PROFILER): Const-ify. + * ia64.md: Add missing braces. + * rs6000-protos.h (s8bit_cint_operand): Prototype. + * s390.h (INITIAL_ELIMINATION_OFFSET): Add abort clause in + if-else statement. + * stormy16.h (REG_CLASS_CONTENTS): Add missing braces. + * v850.h (OUTPUT_ADDR_CONST_EXTRA): Don't issue a `return'. + * dbxout.c (dbxout_source_file): Move a variable into the scope + where it is used. + * final.c (profile_function): Mark parameter with + ATTRIBUTE_UNUSED. + * genemit.c (gen_expand): Likewise for generated file. + * insn-addr.h (INSN_ADDRESSES_NEW): Avoid undefined behavior. + + * vmsdbg.h: Delete spurious close-comment. + (DST_HEADER): Fix typo in ENUM_BITFIELD parameter. + * vmsdbgout.c (write_modbeg): Define return type. + + * m68k/3b1.h (ASM_OUTPUT_ALIGN): Wrap in do-while(0). + * m68k/amix.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * m68k/atari.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * m68k/hp320.h (ASM_OUTPUT_ALIGN): Likewise. + * m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Likewise. + * m68k/sgs.h (ASM_OUTPUT_ALIGN): Likewise. + * m68k/tower-as.h (ASM_OUTPUT_ALIGN): Likewise. + +2001-12-08 Tom Rix + + * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete MASK_STRING. + * config/rs6000/aix51.h (NON_POWERPC_MASKS): Same. + * config/rs6000/rs6000.md (load_multiple, store_multiple): Do not use + for powerpc64. + * config/rs6000/rs6000.md (movstrsi_8reg, movstrsi_6reg, + movstrsi_4reg, movstrsi_1_reg): Add powerpc64. + * config/rs6000/rs6000.c (expand_block_move): Do not use + gen_movstrsi_2reg and powerpc64. + +2001-10-08 Aldy Hernandez + + * c-common.h (rid): Add RID_CHOOSE_EXPR and + RID_TYPES_COMPATIBLE_P. + + * c-parse.in (reswords): Add __builtin_choose_expr. + Add __builtin_types_compatible_p. + Add CHOOSE_EXPR token. + Add TYPES_COMPATIBLE_P token. + Add production for CHOOSE_EXPR. + Add production for TYPES_COMPATIBLE_P. + + * doc/extend.texi (__builtin_choose_expr): Add documentation. + (__builtin_types_compatible_p): Likewise. + +2001-12-08 David Edelsohn + + * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN + to unions. + +2001-12-08 Neil Booth + + * c-parse.in: Take string literals in assembler constructs, + not expressions. + * c-typeck.c (build_asm_stmt, simple_asm_stmt): No need to + check the strings are STRING_CSTs. + +2001-12-08 Neil Booth + + * c-lex.c (c_lex): Peek a token ahead for a string to concatenate, + using combine_strings to do the concatenation. + * c-parse.in: Replace uses of the string non-terminal with STRING. + Don't attempt string concatenation. + (OBJC_STRING): New terminal. + (string): Remove non-terminal. + (_yylex): Call combine_strings on function names. Generate + OBJC_STRING terminals; don't pass '@' on to yacc. + * c-typeck.c (simple_asm_stmt): Don't concatenate strings here. + (build_asm_stmt): Similarly. + +2001-12-08 Kaveh R. Ghazi + + * rtlanal.c (get_jump_table_offset): Delete unused variable. + +2001-12-08 Richard Earnshaw + + * arm.md (VUNSPEC_PREFETCH): Delete constant definition. + (prefetch): Rewrite using PREFETCH RTL primitive. + * arm.h (arm_builtins): Delete ARM_BUILTIN_PREFETCH). + * arm.c (arm_init_builtins): Don't initialize a builtin for + __builtin_prefetch here. + (arm_expand_builtin): Don't expand __builtin_prefetch here. + +2001-12-08 Richard Earnshaw + + * final.c (cleanup_subreg_operands): Use recog_data.operand_loc + in test for a subreg. + +2001-12-08 John David Anglin + + * rtl.c (rtx_equal_p): Check for null pointers when comparing rtx + strings. + +2001-12-07 Richard Henderson + + * doc/extend.texi: Fix typo last change. + + * c-decl.c (c_language): Remove duplicate. + +2001-12-07 Dale Johannesen + + * config/rs6000/darwin.h: Set MAX_LONG_TYPE_SIZE to 32. + * config/rs6000/rs6000.c (rs6000_emit_move): In Darwin- + specific codegen, eliminate a register copy. + (print_operand_address): Add support for Darwin's lo16(constant) + syntax. + (rs6000_machopic_legitimize_pic_address): Fix darwin-specific + generation of addresses within very large data objects. + (s8bit_cint_operand): New. + * config/rs6000/rs6000.md: Remove "iu" reference for 750/7400. + Move "mtjmpr" to correct functional unit for 750/7400/7450. + Add imul2 and imul3 insn types for multiplication by 16- and + 8-bit constants. + Change tablejump patterns to strongly discourage using LR + rather than CTR. + Add %lo16 patterns for Darwin loads and stores. + +2001-12-07 Kaveh R. Ghazi + + * alpha.md: Use (HOST_WIDE_INT)1<<63 in lieu of 0x8000000000000000. + +2001-12-07 Stephane Carrez + + * config/sparc/sparc.c (epilogue_renumber): Do not replace %fp + with %sp because it can cause the delayed instruction to load + below the stack. + +2001-12-07 Kaveh R. Ghazi + + * alpha.c (alpha_expand_unaligned_store, + alpha_expand_unaligned_store_words): Use constm1_rtx in place of + call to immed_double_const. + +2001-12-07 Aldy Hernandez + + * doc/extend.texi (Variable Attributes): Document vector_size. + + * attribs.c (c_common_attribute_table): Add vector_size. + (handle_vector_size_attribute): New. + (vector_size_helper): New. + (decl_attributes): Relayout the decl after calculating attribs. + +2001-12-07 Joseph S. Myers + + * doc/gcc.texi: Don't include install-old.texi. Adjust menu + description for Trouble section. + * doc/install-old.texi: Adjust for inclusion as chapter of new + installation manual. + * doc/install.texi, doc/include/fdl.texi, doc/install.texi2html: + Adjust to include old installation chapter as chapter of new + installation manual. + +Fri Dec 7 11:07:35 EST 2001 John Wehle (john@feith.com) + + * rtl.h (get_jump_table_offset): Declare. + * rtlanal.c (get_jump_table_offset): Implement. + +Fri Dec 7 07:06:17 2001 Richard Kenner + + * final.c (bb_head, bb_tail, bb_file_label_num, bb_func_label_num): + Deleted; were used only by BB profiler code. + (sbb_head, sbb_tail, sbb_label_num): Likewise. + (end_final): Delete now-unused vars I, PTR, and SPTR. + + * expr.c (store_field): Remove warning. + (expand_expr, case COMPONENT_REF, case VIEW_CONVERT_EXPR): Likewise. + (highest_pow2_factor, case MIN_EXPR, case MAX_EXPR): Add cases. + (highest_pow2_factor, case *_DIV_EXPR): Only can do something if + divisor constant power of 2. + (highest_pow2_factor, case COMPOUND_EXPR): Look at operand 1. + +2001-12-07 Kaveh R. Ghazi + + * alpha.c (function_arg): Cast value to HOST_WIDE_INT before + shifting. + +2001-12-06 Aldy Hernandez + + * rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): New. + (DWARF_FRAME_REGISTERS): Delete. + +2001-12-06 Janis Johnson + + * builtin-types.def (BT_FN_VOID_PTR_VAR): New. + * builtins.def (BUILT_IN_PREFETCH): Change arguments. + * builtins.c (expand_builtin_prefetch): Two arguments are now optional, + with defaults for read prefetch with high degree of locality. + * doc/extend.texi (__builtin_prefetch): Update documentation. + * doc/md.texi (prefetch): Add documentation. + +2001-12-06 Rainer Orth + + * fixinc/inclhack.def (stdio_va_list): Handle __VA_LIST__ in Tru64 + UNIX V5.1A stdio.h. + * fixinc/fixincl.x: Regenerate. + Fixes PR libf2c/4826. + +2001-12-06 Aldy Hernandez + Richard Henderson + + * doc/tm.texi (DWARF_FRAME_REGISTERS): Add documentation. + (PRE_GCC3_DWARF_FRAME_REGISTERS): Same. + + * unwind-dw2.c (__frame_state_for): Change DWARF_FRAME_REGISTERS + to PRE_GCC3_DWARF_FRAME_REGISTERS. + (frame_state): Same. + (PRE_GCC3_DWARF_FRAME_REGISTERS): Define if not already defined. + +2001-12-06 Kaveh R. Ghazi + + * langhooks.c (lhd_staticp): Mark parameter with + ATTRIBUTE_UNUSED. + +2001-12-06 H.J. Lu + + * Makefile.in (.po.gmo): Use "-test -d po || mkdir po" to + reduce noise. + (.po.pox): Likewise. + (o/$(PACKAGE).pot): Likewise. + +2001-12-06 Alexandre Oliva + + * tree.c (get_callee_fndecl): Move DECL_ABSTRACT_ORIGIN-following... + * tree-inline.c (expand_call_inline): ... here. + +2001-12-06 H.J. Lu + + * Makefile.in (.po.gmo): Use "-mkdir po" for parallel build. + (.po.pox): Likewise. + (o/$(PACKAGE).pot): Likewise. + +2001-12-06 David O'Brien + + * config.gcc: Include dbxelf.h before elfos.h. + * elfos.h: Don't include dbxelf.h, let config.gcc handle it. + +2001-12-06 Zack Weinberg + + * cppfiles.c (open_file): If we've opened a directory by + mistake, close it. + (find_include_file): Avoid turning / into // or // into ///. + +2001-12-06 Nick Clifton + + * config/arm/arm.h (STRUCT_VALUE): Suppress definition. + (STRUCT_VALUE_REGNUM): Restore definition. + +2001-12-06 Andrew MacLeod + + * flow.c (find_regno_partial): Return register, not the expression + the register is in. + +Thu Dec 6 09:24:12 2001 Richard Kenner + + * function.c (handle_epilogue_set): Check for FP setting case when + SP is set from FP in same insn. + +2001-12-06 Nick Clifton + + * config/arm/arm.c (load_multiple_sequence): Pass pointer to + RTX when calling alter_subreg(). + (store_multiple_sequence): Pass pointer to RTX when calling + alter_subreg(). + +Thu Dec 6 06:55:13 2001 Richard Kenner + + * function.c (assing_parms): Fix typo in last change. + * config/clipper.c (clipper_builtin_saveregs): Remove Checker code. + * config/m88k/m88k.c (m88k_builtin_saveregs): Likewise. + * config/pa/pa.c (hppa_builtin_saveregs): Likewise. + * config/sparc/sparc.c (sparc_builtin_saveregs): Likewise. + +2001-12-06 Alan Modra + + * config/rs6000/rs6000.c (rs6000_unique_section): Simplify and + correct code selecting section. + +Thu Dec 6 12:45:33 CET 2001 Jan Hubicka + + * final.c (count_basic_block, add_bb, add_bb_string): + Kill. + (end_final, final_start_function, final, final_scan_insn, + leaf_function_p): Kill BB profiler related code. + * flags.h (profile_block_flag): Kill. + * libgcc2.c (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE, + BB_BUCKETS, BBINBUFSIZE, bb_edge, bb_func_mode, bb_func, + __bb, bb_src, bb_dst, bb_tracefile, bb_hashbuckets, + bb_func_head, bb_callcount, bb_mode, bb_stack, bb_stacksize + reported, GOPENDECOMPRESS, GOPENCOMPRESS, gopen, gclose, + __bb_exit_trace_func, __bb_init_prg, __bb_trace_func, + __bb_trace_func_ret, __bb_init_file, __bb_trace_ret, + __bb_init_trace_func): Kill. + * toplev.c (profile_block_flag): Kill. + (indepdendent_decode_option, process_options): Kill -a related code. + * alpha.c (direct_call_operand): Likewise. + * arm.c (arm_expand_prologue, thumb_expand_prologue, + thumb_expand_epilogue): Likewise. + * c4x.c (c4x_expand_prologue, c4x_null_epilogue_p): Likewise. + * c4x.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * d30v.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * fr30.c (fr30_expand_prologue): Kill BB profiler related code. + * i386.c (ix86_can_use_return_insn_p, ix86_expand_prologue, + ix86_expand_epilogue, ix86_expand_epilogue): Kill BB profiler related + code. + (ix86_output_function_block_profiler, ix86_output_block_profiler): Kill. + * i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * fr30.c (fr30_expand_prologue): Kill BB profiler related code. + * i960.c (i960_output_function_prologue): Kill BB profiler related + code. + * ia64.c (ia64_compute_frame_size): Likewise. + * ia64.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * m32r.c (m32r_expand_prolofue): Kill BB profiler related code. + * m68hc11.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * m68k.c (m68k_output_function_epilogue): Kill BB profiler related code. + * m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * m88k.c (output_options, m88k_layout_frame, m88k_expand_prologue): + Kill BB profiler related code. + * m88k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * mips.c (mips_expand_prologue): Kill BB profiler related code. + * mmix.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * rs6000.c (rs6000_override_options): Kill BB profiler related code. + * s960.c (s390_function_prologue): Kill BB profiler related code. + * s960.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * linux-aout.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. + * linux.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. + * linux64.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. + * sol2.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. + * sparc.c (sparc_override_options, eligible_for_sibcall_delay, + sparc_nonflat_function_epilogue): Kill BB profiler related code. + (sparc_function_block_profiler, sparc_block_profiler, + sparc_function_block_profiler_exit): Kill. + * sparc.h (OVERRIDE_OPTIONS): Kill BB profiler related code. + (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * sun4o3.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. + * sunos4.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. + * stormy16.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + * doc/invoke.texi: Kill documentation of -a and -ax. + * tm.texi (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, + FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, + MACHINE_STATE_RESTORE): Kill. + +2001-10-26 Steve Christiansen + + * doc/rtl.texi: Use a table to display RTL format characters. + +2001-12-06 Bo Thorsen + + * config/i386/linux64.h (LINK_SPEC): Correct name of dynamic linker. + +Wed Dec 5 19:18:53 2001 Richard Kenner + + * function.c (keep_stack_depressed): Check global_live_at_start + of EXIT_BLOCK for temp register and verify it isn't in equiv_reg_src. + +2001-12-05 David O'Brien + + * config.gcc (powerpc-*-freebsd*): Use the proper tmake_file files, + as set by the generic FreeBSD configure framework. + +2001-12-04 Jason Merrill + + * langhooks.h (struct lang_hooks_for_tree_inlining): Add + start_inlining, end_inlining. + * tree-inline.c (expand_call_inline): Call them. + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. + (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. + (LANG_HOOKS_TREE_INLINING_INITIALIZER): Add them. + * langhooks.c (lhd_tree_inlining_start_inlining): New fn. + (lhd_tree_inlining_end_inlining): New fn. + +2001-12-05 Neil Booth + + * c-common.c (shadow_warning): New function, moved from cp/decl.c. + * c-common.h (shadow_warning): New. + * c-decl.c: Include c-common.h. + (warn_if_shadowing): New, broken out of pushdecl. + (pushdecl): Use warn_if_shadowing. + (store_parm_decls): Prevent duplicate -Wshadow warnings. + +Wed Dec 5 17:59:19 2001 Douglas B. Rupp + + * config/alpha/vms.h (SIZE_TYPE, PTRDIFF_TYPE): Remove, were disabled. + (DOLLARS_IN_IDENTIFIERS, LINK_SPEC): Remove duplicate. + (LIB_SPEC): Remove. + +Wed Dec 5 16:03:04 2001 Richard Kenner + + * doc/c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition. + (QUAL_UNION_TYPE): New type. + + * varasm.c (output_constant, case ERROR_MARK): New case. + + * attribs.c (handle_no_check_memory_usage_atribute): Deleted. + (c_com): Delete its reference. + * builtins.c: Delete memory checking code. + * calls.c, expr.c, function.c, stmt.c: Likewise. + * builtins.c (expand_builtin_arg_info): Remove reference to + EXPAND_MEMORY_USE_* modifiers. + * explow.c (expr_size): Likewise. + * expr.c (expand_expr, expand_increment): Likewise. + * expr.h (ARGS_SIZE_RTX): Likewise. + * function.c (assign_parms, expand_pending_sizeso): Likewise. + * c-decl.c (duplicate_decls): Don't handle DECL_NO_CHECK_MEMORY_USAGE. + * expr.c (in_check_memory_usage): Delete. + (get_push_address, get_memory_usage_from_modifier): Delete. + (expand_assigment): Use EXPAND_WRITE on destination. + (expand_expr): Delete ro_modifier. + * expr.h (expand_modifier): Delete EXPAND_MEMORY_* entries and + add EXPAND_WRITE. + (memory_use_mode): Delete. + * flags.h (flag_check_memory_usage): Deleted. + (flag_prefix_function_name): Likewise. + * function.c (expand_function_start): Don't set + current_function_check_memory_usage. + * function.h (check_memory_usage): Delete. + * libfuncs.h, optabs.c: Delete chkr_* stuff. + * stmt.c (expand_asm_opernd): Change EXPAND_MEMORY_USE_WO to + EXPAND_WRITE. + * toplev.c (flag_check_memory_usage): Deleted. + (flag_prefix_function_name): Likewise. + (f_options, process_options): Delete references to above. + * tree.h (DECL_NO_CHECK_MEMORY_USAGE): Deleted. + * varasm.c (CHKR_PREFIX): Deleted. + (make_decl_rtl): Remove flag_prefix_function_name handling. + (assemble_name): Likewise. + * doc/extend.texi: Remove no_check_memory_usage attribute. + * doc/invoke.texi: Remove -fcheck-memory-usage + and -fprefix-function-name. + +2001-12-05 Andreas Schwab + + * Makefile.in (STMP_FIXPROTO, STMP_FIXINC): Use substituted values + from autoconf. + +2001-12-05 Nick Clifton + + * config.gcc: Include arm/xscale-coff.h before arm/arm.h. + +2001-12-05 William Cohen + + * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Correct typo in + instruction. + +2001-12-05 Daniel Berlin + + * config/rs6000/rs6000.h (enum rs6000_builtins): Add more altivec + builtins. + + * config/rs6000/rs6000.md: Modeling of 7450 altivec changed to + better reflect reality (change from Apple's tree). + Add more of altivec instructions. + Add ftruncv4sf2 pattern. + Remove more unspecs (vector merge instructions, etc). + + * config/rs6000/rs6000.c (bdesc_3arg): New, for 3 argument altivec + builtins. + (bdesc_1arg): New, for 1 argument altivec builtins. + (altivec_expand_builtin): Handle unary and ternary ops. + (altivec_init_builtins): Ditto. + +Wed Dec 5 09:33:39 2001 Richard Kenner + + * config/alpha/vms.h (ADA_LONG_TYPE_SIZE): New macro. + * doc/tm.texi (ADA_LONG_TYPE_SIZE): Document it. + +2001-12-05 Jakub Jelinek + + * gcse.c (store_killed_in_insn): Consider pure calls + as potential store killers in addition to normal calls. + +2001-12-05 Jakub Jelinek + + * expr.c (expand_expr): When checking promoted value, use + DECL_MODE (exp) and not mode. + +2001-12-05 Jakub Jelinek + + * c-typeck.c (output_init_element): Call digest_init + just once, not in each if branch and check its return value for + error_mark_node. + +2001-12-05 Jakub Jelinek + + * c-decl.c (pushdecl): Only increase n_incomplete if pushed decl's + type is RECORD_TYPE, UNION_TYPE or ARRAY_TYPE thereof. + (finish_struct): Break the loop if n_incomplete went to 0. + For ARRAY_TYPE, if it is not TYPE_DECL, layout the decl too. + +Wed Dec 5 07:41:13 2001 Douglas B. Rupp + + * config/alpha/alpha.c (alpha_va_start): Update VMS case. + +Wed Dec 5 07:27:42 2001 Richard Kenner + Douglas B. Rupp + + * vmsdbg.h, vmsdbgout.c: Add documentation and minor cleanups. + * doc/invoke.texi: Add -gvms. + * doc/passes.texi: Add mention of vmsdbgout.c. + * doc/tm.texi: Document VMS debugging output. + +Wed Dec 5 06:26:27 2001 Richard Kenner + + * function.h (tree, rtx): Remove no-longer-needed definitions. + + * function.c (keep_stack_depressed): Refine check for register + clobbered over call. + + * expr.c (store_expr): When copying string constant into array, + use functions that update memrefs instead of computations on + addresses to better track MEMs. Also properly handle 32/64 pointers. + (expand_expr): Use TARGET even if not reg for multi-word CONSTRUCTOR. + (expand_expr, case CONSTRUCTOR): Fix errors in parms to assign_temp. + + * emit-rtl.c (component_ref_for_mem_expr): Try harder to find decl + underneath COMPONENT_REFs. + (set_mem_attributes): Also strip VIEW_CONVERT_EXPR. + +2001-12-05 Neil Booth + + * toplev.c (display_target_options): Don't print twice. + +Wed Dec 5 00:42:16 EST 2001 John Wehle (john@feith.com) + + * emit-rtl.c (set_unique_reg_note): Don't set + a REG_EQUAL or REG_EQUIV note if multiple sets + are present. + +2001-12-04 John David Anglin + + * cfgrtl.c (verify_flow_info): Allow jump table data in fallthru if + CASE_DROPS_THROUGH. + +2001-12-04 Andrew MacLeod + + * rtl.h (initialize_uninitialized_subregs): New prototype. + * toplev.c (rest_of_compilation): Call initialize_uninitialized_subregs + when optimization is on. + * flow.c (find_regno_partial): Find subregs within an expression. + (initialize_uninitialized_subregs): Initialize live on entry registers + which are used in subreg expressions. + +2001-12-04 Phil Edwards + + * Makefile.in: Add INSTALL_SCRIPT using INSTALL definition. + +2001-12-04 DJ Delorie + + * fixinc/fixincl.c (initialize): Avoid problemsome macro + parameter names (PR 3388). + +2001-12-05 Alan Modra + + * config/rs6000/rs6000.c (rs6000_legitimize_address): Fix typo. + * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Here too. + +2001-12-04 Joseph S. Myers + + * c-common.def (COMPOUND_LITERAL_EXPR): New. + * c-common.c (c_expand_expr): Handle COMPOUND_LITERAL_EXPR. + (c_staticp): New function. + * c-common.h (COMPOUND_LITERAL_EXPR_DECL): New. + (c_staticp): Declare. + * c-typeck.c (default_function_array_conversion, build_unary_op): + Don't handle CONSTRUCTOR specially. + (lvalue_p, mark_addressable): Handle COMPOUND_LITERAL_EXPR. + * c-decl.c (build_compound_literal): New function. + * c-tree.h (build_compound_literal): Declare. + * c-parse.in (primary): Use build_compound_literal. + * c-lang.c (LANG_HOOKS_STATICP): Define. + * objc/objc-lang.c (LANG_HOOKS_STATICP): Likewise. + * doc/c-tree.texi: Document COMPOUND_LITERAL_EXPR. + * doc/extend.texi: Update documentation of compound literals. + Fixes PR c/4787. + +2001-12-04 Joseph S. Myers + + * langhooks.h (struct lang_hooks): Add staticp. + * langhooks-def.h (lhd_staticp, LANG_HOOKS_STATICP): New. + (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_STATICP. + * langhooks.c (lhd_staticp): New function. + * tree.c (staticp): Call lang_hooks.staticp for language-specific + tree codes. + +2001-12-04 Neil Booth + + * cppspec.c (lang_specific_driver): Set is_cpp_driver. + * gcc.c (process_command): Ensure the cpp driver sees + --help and --target-help, and that the help is printed + exactly once. + +2001-12-04 David Edelsohn + + * config/elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Display count unsigned. + +2001-12-04 Hans-Peter Nilsson + + * config/cris/cris.h (OPTIMIZATION_OPTIONS): Don't unset + flag_strict_aliasing. Use separate assignment statements. + +2001-12-04 Zack Weinberg + + * build-make, cross-make: Delete file. + * configure.in: Set and substitute CROSS, ALL, + SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC, + HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on + whether build == host and host == target. Do not + AC_SUBST_FILE build_overrides or cross_overrides. Do not + AC_SUBST cross_defines or extra_c_flags. + * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New. + (SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX, + HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set + partially or completely with autoconf-substituted @variable@ + notation. + (INSTALL_TARGET, @cross_defines@, @cross_overrides@, + @build_overrides@, @extra_c_flags@, all.build, install-build, + install-cross-rest, install-float-h-cross): Deleted. + (install-normal): Rename to install. Delete old "install" + indirection rule. + +2001-12-04 Andrew MacLeod + + * stmt.c (expand_return): Clear destination instead of clobbering it + when setting a return value via bitsets. + +2001-12-04 Alexandre Oliva + + * tree.c (get_callee_fndecl): Only use DECL_ABSTRACT_ORIGIN if + it has DECL_SAVED_TREE. + + * c-decl.c (duplicate_decls): Revert rth's patch. If newdecl + is in a different binding level, get its abstract origin to be + olddecl. + * tree-inline.c (expand_call_inline): Move DECL_INITIAL sanity + check earlier. + * tree.c (get_callee_fndecl): Follow DECL_ABSTRACT_ORIGIN if + DECL_INITIAL is NULL. + +2001-12-04 Jakub Jelinek + + * flow.c (ior_reg_cond): Return NULL if ! add and rtx wasn't optimized. + Return correct value if one of the subexpressions was optimized to + 0 resp. 1. Optimize (x | A) | x and (x & A) | x. + (and_reg_cond): Similarly. + +2001-12-04 Jakub Jelinek + + * function.c (assign_parms): Set last_named only for last named + argument. + +2001-12-04 Joseph S. Myers + + * doc/install.texi: Use the GFDL. Include years from old install + manual in copyright notice. Include copyright and GFDL notice on + HTML index page. Include usual footer on testing.html. + * doc/install.texi2html: Build gfdl.html. Use -I + $SOURCEDIR/include. + * doc/include/fdl.texi: Adapt for use in the install manual. + +2001-12-04 Joseph S. Myers + + * doc/install.texi: Document that installed native compiler for + building cross compilers should be GCC 2.95 or later. + +2001-12-03 Eric Christopher + + * config/mips/mips.h (CALL_REALLY_USED_REGISTERS): New macro. + * config/mips/mips.md: Check TARGET_DEBUG_D_MODE before split + patterns. + +2001-12-03 Janis Johnson + + * rtl.def (PREFETCH): New rtx code. + * doc/rtl.texi (PREFETCH): Add documentation. + * function.c (instantiate_virtual_regs_1): Handle PREFETCH rtx. + * rtlanal.c (reg_referenced_p): Ditto. + * sched-vis.c (print_exp): Ditto. + * ssa-dce.c (find_inherently_necessary): Ditto. + + * config/ia64/ia64.h (SIMULTANEOUS PREFETCHES): Define. + (PREFETCH_BLOCK): Define. + * config/ia64/ia64.md (itanium_class): Add lfetch. + (prefetch, prefetch_internal): New. + + * builtin-types.def (BT_FN_VOID_PTR_INT_INT): New. + * builtins.def (BUILT_IN_PREFETCH): New. + * builtins.c (expand_builtin_expect): New. + (expand_builtin): Call it. + * doc/extend.texi: Document __builtin_prefetch. + + * config/i386/i386.md (prefetch): Rename as prefetch_sse to avoid + conflicts with new generic prefetch functionality. + * config/i386/i386.c (ix86_expand_builtin): Use new name for + prefetch_sse. + +2001-12-02 Ziemowit Laski + + * objc/Make-lang.in: Update copyright. + (OBJC_OBJS): Add objc-lang.o. + (objc-lang.o): New rule. + * objc/config-lang.in: Fix file description and update + copyright. + * objc/objc-act.c: Do not include langhooks.h and + langhooks-def.h + (lang_hooks): Move (along with LANG_HOOKS...) to objc-lang.c. + (objc_post_options): Move to objc-lang.c. + (objc_init_options): Move to objc-lang.c. + (objc_init): Make non-static. + (objc_decode_option): Make non-static. + (HASHFUNCTION): Remove macro. + (hash_func): New function. + (hash_enter): Replace HASHFUNCTION with hash_func. + (hash_lookup): Replace HASHFUNCTION with hash_func. + (maybe_objc_tree_codes): New function. + (init_objc): Move ObjC tree code initialization to + maybe_objc_tree_codes(). + * objc/objc-act.h (GCC_OBJC_ACT_H): New include guard. + (objc_init): New public prototype. + (objc_decode_option): New public prototype. + (maybe_add_objc_tree_codes): New public prototype. + * objc/objc-lang.c: New file. + (lang_hooks): Moved from objc-act.c. + (objc_post_options): Moved from objc-act.c. + (objc_init_options): Moved from objc-act.c. + +2001-12-03 Geoff Keating + + * emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension + of array elements. + +2001-12-03 Neil Booth + + PR c/4988 + * gcc.c (process_command): Don't add a preprocessor option for + --help and --target-help; cc1 is enough. + +2001-12-03 Neil Booth + + * c-decl.c (grokdeclarator): Use ISO word. + * cppinit.c: Remove leading capital from diagnostic messages, as + per GNU coding standards. + * emit-rtl.c: Similarly. + * final.c: Similarly. + * gcc.c: Similarly. + * tradcpp.c: Similarly. + * config/arm/arm.c: Similarly. + * config/arm/arm.h: Similarly. + * config/avr/avr.c: Similarly. + * config/avr/avr.h: Similarly. + * config/c4x/c4x.c: Similarly. + * config/cris/cris.c: Similarly. + * config/cris/cris.h: Similarly. + * config/d30v/d30v.c: Similarly. + * config/dsp16xx/dsp16xx.c: Similarly. + * config/dsp16xx/dsp16xx.h: Similarly. + * config/h8300/h8300.c: Similarly. + * config/i386/i386.c: Similarly. + * config/i386/xm-djgpp.h: Similarly. + * config/i960/i960.h: Similarly. + * config/m32r/m32r.c: Similarly. + * config/m68hc11/m68hc11.c: Similarly. + * config/m88k/m88k.c: Similarly. + * config/m88k/m88k.h: Similarly. + * config/mcore/mcore.c: Similarly. + * config/mcore/mcore.h: Similarly. + * config/mips/mips.c: Similarly. + * config/mmix/mmix.c: Similarly. + * config/pa/pa.c: Similarly. + * config/rs6000/rs6000.c: Similarly. + * config/rs6000/sysv4.h: Similarly. + * config/s390/s390.c: Similarly. + * config/sparc/sparc.c: Similarly. + * config/v850/v850-c.c: Similarly. + * config/v850/v850.c: Similarly. + +2001-12-03 Zack Weinberg + + * rs6000.h (RETURN_IN_MEMORY): Cast result of + int_size_in_bytes to unsigned HOST_WIDEST_INT so that -1 > 8. + +Mon Dec 3 09:18:34 2001 Jeffrey A Law (law@cygnus.com) + + * mn10200.md (negsf2): Use -0x8000 instead of 0x8000 for + bit twiddling constant. + +Mon Dec 3 16:16:37 CET 2001 Jan Hubicka + + * gcse.c (delete_null_pointer_checks_1): Do not use delete_list; + call purge_dead_edges after removing. + (delete_null_pointer_checks): Do not handle delete_list. + + * cfgbuild.c (inside_basic_block_p, control_flow_insn_p): Break out from ... + (count_basic_blocks): ... here. + (find_basic_blocks, find_bb_boundaries): Cleanup. + + * stor-layout.c (fixup_signed_type, fixup_unsigned_type): Avoid + overflow for types greater then 2 * HOST_WIDE_INT. + + * reload.c (find_reloads): Update the duplicates after swapingg. + +Mon Dec 3 13:52:19 CET 2001 Jan Hubicka + + * i386.md (movabsqi*): Use 'b' prefix instead of 'q'. + +2001-12-02 Zack Weinberg + + * config/rs6000/rs6000.h (MASK_ALTIVEC_ABI, + MASK_LONG_DOUBLE_128): Delete. + (MASK_AIX_STRUCT_RET, MASK_AIX_STRUCT_RET_SET, + TARGET_AIX_STRUCT_RET): New flags. + (TARGET_SWITCHES): Remove entries for -mlong-double-128 and + -mlong-double-64. Add entries for -m(no-)aix-struct-return + and -m(no-)svr4-struct-return. + (TARGET_OPTIONS): Add entry for -mlong-double-. + (rs6000_long_double_size_string, rs6000_long_double_type_size, + rs6000_altivec_abi): Declare. + (TARGET_LONG_DOUBLE_128, TARGET_ALTIVEC_ABI, + LONG_DOUBLE_TYPE_SIZE): Change definitions to match. + (RETURN_IN_MEMORY): If !TARGET_AIX_STRUCT_RET, return + structures of size <= 8 bytes in registers. + (PRINT_OPERAND_PUNCT_VALID_P): Take out '$' and '*'. + + * config/rs6000/rs6000.c (rs6000_long_double_size_string, + rs6000_long_double_type_size, rs6000_altivec_abi): New + globals. + (rs6000_override_options): Set rs6000_long_double_type_size + from rs6000_long_double_size_string, if nonzero. Set the + MASK_AIX_STRUCT_RET bit in target_flags from DEFAULT_ABI, if + not already set. + (rs6000_parse_abi_options): Set rs6000_altivec_abi, not a + target_flags bit. + (rs6000_init_builtins): This hook now takes no arguments. + + * config/rs6000/netbsd.h, config/rs6000/linux.h: Define + DRAFT_V4_STRUCT_RET to 1. + +2001-12-03 Joseph S. Myers + + * c-typeck.c (really_start_incremental_init, push_init_level): + Avoid constructor_max_index being other than an INTEGER_CST. + +2001-12-02 David Edelsohn + + * config/rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Display count + unsigned. + (ASM_GENERATE_INTERNAL_LABEL): Same. + (UNIQUE_SECTION): Fix typo. + +2001-12-02 Richard Henderson + + * c-decl.c (duplicate_decls): Conditionalize DECL_SAVED_TREE copy. + +2001-12-02 Richard Henderson + + * rtl.h (mem_attrs): Rename decl to expr; adjust all users. + (MEM_EXPR): Rename from MEM_DECL; adjust all users. + * emit-rtl.c (set_mem_expr): Rename from set_mem_decl. + * expr.h, final.c, reload1.c: Adjust users. + + * alias.c (nonoverlapping_component_refs_p): New. + (decl_for_component_ref, adjust_offset_for_component_ref): New. + (nonoverlapping_memrefs_p): Use them. + * emit-rtl.c (component_ref_for_mem_expr): New. + (set_mem_attributes): Use it. + (set_mem_offset): New. + * expr.c (expand_assignment): Call set_mem_attributes for + inner references; adjust the memory offset as needed. + * print-rtl.c (print_mem_expr): New. + (print_rtx): Use it. + +Sun Dec 2 09:22:25 2001 Douglas B. Rupp + + * config/x-interix3 (SYSTEM_HEADER_DIR): Put back default. + + * config/alpha/vms.h (VMS_DEBUGGING_INFO): New macro. + (PREFERRED_DEBUGGING_TYPE): Define as VMS_AND_DWARF2_DEBUG. + (ASM_SPEC): Don't redefine. + (OPTIMIZATION_OPTIONS, OVERRIDE_OPTIONS, LINK_SPEC): Define. + * config/alpha/t-vms (EXTRA_PARTS): Use; add rule for vms-dwarf2.asm. + * config/alpha/vms-dwarf2.asm: New file. + + * Makefile.in (OBJS): Add vmsdbgout.c and its rule. + * c-lex.c (init_c_lex): Test for VMS_AND_DWARF2_DEBUG. + * debug.h (gcc_debug_hooks): Add vmsdbg_debug_hooks. + (vmsdbgout_after_prologue): New declaration. + * defaults.h (VMS_DEBUGGING_INFO): Add to PREFERRED_DEBUGGING_TYPE. + * dwarf2.h (dwarf_attribute): New DW_AT_VMS_rtnbeg_pd_address. + * dwarf2out.c (dwarf2out_do_frame): Test for VMS_AND_DWARF2_DEBUG. + (dwarf2out_frame_finish): Test for VMS_AND_DWARF2_DEBUG. + (dwarf_attr_name): Use DW_AT_VMS_rtnbeg_pd_address. + (add_name_and_src_coords_attributes): Test VMS_DEBUGGING_INFO + * final.c (final_start_function): Test for VMS_AND_DWARF2_DEBUG. + Test VMS_DEBUGGING_INFO. + (final_end_function): Test for VMS_AND_DWARF2_DEBUG. + (final_scan_insn): Test for VMS_AND_DWARF2_DEBUG and VMS_DEBUG. + * flags.h (debug_info_type): Add VMS_DEBUG and VMS_AND_DWARF2_DEBUG. + * toplev.c (compile_file): Test VMS_DEBUGGING_INFO, VMS_DEBUG, and + VMS_AND_DWARF2_DEBUG. + (rest_of_type_compilation): Test for VMS_AND_DWARF2_DEBUG. + (decode_g_option): Add "vms" to debug_type_names. + (process_options): Set vmsdbg_debug_hooks if -gvms. + (lang_independent_init): Emit line number for VMS unless -g0. + * tree.c: (build_complex_type): Test for VMS_AND_DWARF2_DEBUG. + * vmsdbg.h, vmsdbgout.c: New files. + +Sun Dec 2 09:03:06 2001 Richard Kenner + + * cfgbuild.c (SET_STATE): Add cast to eliminate warning.a + +2001-12-02 Kaveh R. Ghazi + + * cfgrtl.c (purge_all_dead_edges): Initialize variable. + * dwarf2out.c (is_cxx): Prototype. + * local-alloc.c (block_alloc): Avoid 'unsigned>=0 is always true' + warning. + * objc/objc-act.c (defer_fn): Avoid signed/unsigned warning. + +Sun Dec 2 07:12:30 2001 Richard Kenner + + * libgcc2.c (__bb_exit_func): Fix line wrap problems. + +2001-12-02 Geoff Keating + + * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Simplify. + * config/rs6000/rs6000.c (rs6000_emit_move): Use adjust_address + rather than simplify_subreg. Check for volatile-ness. Check that + we're not splitting one slow operation into two slow operations. + +2001-12-02 David Edelsohn + + * emit-rtl.c (gen_lowpart_common): Cast array element to HOST_WIDE_INT + before shifting. + +2001-12-02 Neil Booth + + * c-decl.c (duplicate_decls, push_parm_decl): Remove leading + capital from diagnostics. + * c-lex.c (cb_file_change): Similarly. + * c-parse.in : Similarly. + * cfgrtl.c (verify_flow_info): Similarly. + * collect2.c: Similarly. + * cppfiles.c (find_include_file): Similarly. + * cppinit.c (cpp_handle_option): Similarly. + * cpplex.c (cpp_spell_token): Similarly. + * cppmain.c (do_preprocessing): Similarly. + * gcc.c (translate_options, process_command, do_spec1, + main, pfatal_execute): Similarly. + * genattr.c (main): Similarly. + * genattrtab.c (check_attr_test, operate_exp, simplify_test_exp, + write_test_expr, main): Similarly. + * gencodes.c (main): Similarly. + * genconfig.c (main): Similarly. + * genconstants.c (main): Similarly. + * genemit.c (main): Similarly. + * genextract.c (main): Similarly. + * genflags.c (main): Similarly. + * genopinit.c (main): Similarly. + * genoutput.c (process_template, main): Similarly. + * genpeep.c (main): Similarly. + * genrecog.c (main): Similarly. + * gensupport.c (is_predicable, identify_predicable_attribute, + alter_predicate_for_insn, init_md_reader_args, main): Similarly. + * ggc-page.c (alloc_anon): Similarly. + * mips-tfile.c (add_string, add_procedure, add_file, read_line, + parse_begin, parse_bend, parse_def, parse_end, parse_file, + parse_stabs_common, parse_stabs, write_varray, write_object, + read_seek, copy_object, main, error): Similarly. + * profile.c (compute_branch_probabilities): Similarly. + * reg-stack.c (check_asm_stack_operands): Similarly. + * reload.c (find_reloads): Similarly. + * reload1.c (spill_failure, failed_reload): Similarly. + * rtl-error.c (_fatal_insn_not_found): Similarly. + * toplev.c (read_integral_parameter, crash_signal, + decode_f_option, set_target_switch, parse_options_and_default_flags) + : Similarly. + * tradcif.y (parse_number, yylex): Similarly. + * tradcpp.c (main, fancy_abort): Similarly. + * tree.c (tree_check_failed): Similarly. + * varray.c (varray_check_failed): Similarly. + * xcoffout.c (xcoff_output_standard_types): Similarly. +objc: + * objc-act.c (get_object_ref, lookup_and_install_protocols, + build_objc_string_object, objc_declare_alias, build_ivar_chain, + finish_message_expr, build_protocol_expr, is_public, + start_class): Similarly. + +2001-12-01 Neil Booth + + * c-decl.c (duplicate_decls, parmlist_tags_warning): Remove + trailing period from diagnostics. + * c-lex.c (cb_file_change): Similarly. + * cppmacro.c (check_trad_stringification): Similarly. + * gcc.c (do_spec_1): Similarly. + * genattr.c (main): Similarly. + * genattrtab.c (main, operate_exp, make_length_attrs): Similarly. + * gencodes.c (main): Similarly. + * genconfig.c (main): Similarly. + * genconstants.c (main): Similarly. + * genemit.c (main): Similarly. + * genextract.c (main): Similarly. + * genopinit.c (main): Similarly. + * genoutput.c (main): Similarly. + * genpeep.c (main): Similarly. + * genrecog.c (main): Similarly. + * mips-tfile.c (add_file, error): Similarly. + * profile.c (init_branch_prob): Similarly. + * reload1.c (spill_failure): Similarly. + * stmt.c (parse_output_constraint): Similarly. + * varasm.c (assemble_variable): Similarly. + +2001-12-01 Kaveh R. Ghazi + + * m68k.c (init_FPA_table): Provide static prototype. + * mips/abi64.h (mips_function_value): Move prototype to ... + * mips-protos.h (mips_function_value): ... here. + * mips.c: Include halfpic.h. + * output.h (rdata_section): Prototype. + + * h8300.c (h8300_asm_named_section): Wrap with !OBJECT_FORMAT_ELF. + * m88k.c (m88k_svr3_asm_out_constructor, + m88k_svr3_asm_out_destructor): Wrap with CTOR_LIST_BEGIN && + !OBJECT_FORMAT_ELF. + * mcore.c (mcore_asm_named_section): Wrap with OBJECT_FORMAT_ELF. + * sh.c (sh_asm_named_section): Wrap with !OBJECT_FORMAT_ELF. + * sparc.c (sparc_elf_asm_named_section): Wrap with OBJECT_FORMAT_ELF. + +2001-12-01 Geoff Keating + + * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Complex + LO_SUM addresses less than word size are not legitimate, + because they lead to invalid SUBREGs. + * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise. + +2001-12-01 Olivier Hainque + + * unroll.c (loop_iterations): Give up on jumps with null JUMP_LABEL + while scanning for multiple back edges. + +2001-12-01 Franz Sirl + + * ginclude/ppc-asm.h (JUMP_TARGET): New macro. + * config/rs6000/tramp.asm: Use it. + +2001-12-01 Zack Weinberg + + * gencheck.c, gengenrtl.c: Don't define xmalloc. + * gensupport.c: Don't define xstrdup, xcalloc, xrealloc, + xmalloc. + +2001-11-30 John David Anglin + + * pa.c (output_ascii): Cast `p' to unsigned char. + +2001-11-30 Daniel Berlin + + * config/rs6000/rs6000.c (altivec_expand_builtin): add + ALTIVEC_BUILTIN_LD_INTERNAL_4sf and ALTIVEC_BUILTIN_ST_INTERNAL_4sf, + *_16qi,_8hi, rename existing V4SI ones to *_4si. + (altivec_init_builtins): Ditto. + (bdesc_2arg): Rename CODE_FOR_* to match changes in MD file. + + * config/rs6000/rs6000.md: Add attribute types vecsimple, + veccomplex, vecfloat, and vecperm, for altivec instructions. + Modify altivec patterns to use appropriate attribute type. + Modify altivec patterns to match RTL operations where appropriate + (IE no unspec where we can avoid it). + Add vector unit scheduling for ppc7450. + Rename patterns to what they are where appropriate + (altivec_vaddfp->addv4sf3, etc) + + * config/rs6000/rs6000.h (enum rs6000_builtins): Change VRS->VSR. + Pass -mppc, and define _ARCH_PPC, if -mcpu=7450 is used. + + * config/rs6000/sysv4.h: Add -mcpu=7450. + + * testsuite/gcc.dg/altivec-1.c: Update test to take into account renamed + _builtin_altivec_ld_interal function. + +2001-11-30 Kaveh R. Ghazi + + * configure.in (AC_CHECK_FUNCS): Delete strtoul, bsearch, popen, + strchr, strrchr, isascii, gettimeofday. + * config.in, configure: Regenerate. + +2001-11-30 Zoltan Hidvegi + + * unroll.c (unroll_loop): Correct special exit cases. + +2001-11-30 Stephane Carrez + + * config/sparc/sparc.c (DF_MODES_NO_S): Fix pr/3623, define to + accept DFmode and DImode only. + +2001-11-30 Aldy Hernandez + + * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Adjust for altivec. + (STACK_DYNAMIC_OFFSET): Same. + +2001-11-30 Richard Henderson + + * c-decl.c (duplicate_decls): Copy DECL_SAVED_TREE. + +2001-11-30 Aldy Hernandez + + * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): New. + (CONDITIONAL_REGISTER_USAGE): Set call_really_used_registers to + the values in call_used_registers. + +Fri Nov 30 12:48:26 2001 Jeffrey A Law (law@cygnus.com) + + * gthr-dce.h: If _DCE_THREADS is not defined, then just include + gthr-single. + +2001-11-30 Jason Merrill + + * dwarf2out.c (is_cxx): New fn. + (add_data_member_location_attribute): Check it. + * dbxout.c (dbxout_type): Only look at BINFO_VPTR_FIELD for C++. + +Fri Nov 30 08:26:57 2001 Richard Kenner + + * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Handle const1_rtx. + +2001-11-30 Daniel Berlin + + * genopinit.c (gen_insn): Handle MODE_VECTOR_INT and + MODE_VECTOR_FLOAT as allowed. + +2001-11-29 Zack Weinberg + + Purge cruft now we have build libiberty. + + * Makefile.in (OBSTACK, VFPRINTF, DOPRINT, STRSTR, + HOST_OBSTACK, HOST_VFPRINTF, HOST_DOPRINT, HOST_STRSTR, + USE_HOST_OBSTACK, USE_HOST_VFPRINTF, USE_HOST_DOPRINT, + USE_HOST_STRSTR): Delete variables. + (vfprintf.o, doprint.o, strstr.o, splay-tree.o, obstack.o, + hashtab.o, safe-ctype.o, $(HOST_PREFIX_1)obstack.o, + $(HOST_PREFIX_1)vfprintf.o, $(HOST_PREFIX_1)doprint.o, + $(HOST_PREFIX_1)strstr.o), $(HOST_PREFIX_1)): Delete rules. + (LIBIBERTY, BUILD_LIBIBERTY): New variables. + (LIBDEPS): Now just $(INTLDEPS) $(LIBIBERTY). + (LIBS): Now just $(INTLLIBS) @LIBS@ $(LIBIBERTY). + (HOST_LIBDEPS): Now just $(BUILD_LIBIBERTY). + (HOST_LIBS): Ditto. + (HOST_RTL): Remove hashtab.o safe-ctype.o. + (OBJS): Remove splay-tree.o. + (gen-protos): Depend on $(HOST_LIBS), not ../libiberty/libiberty.a. + (distclean): No need to delete splay-tree.c obstack.c + hashtab.c safe-ctype.c. + (mostlyclean): Delete build copies of print-rtl.c bitmap.c + errors.c ggc-none.c (all prefixed with $(HOST_PREFIX_1). + * aclocal.m4 (gcc_AC_FUNC_VFPRINTF_DOPRNT, gcc_AC_FUNC_STRSTR): + Delete. + * configure.in: Don't use them. + Set and substitute @FORBUILD@. + * config.in, configure: Regenerate. + * doprint.c: Move to libiberty/_doprnt.c. + * doc/configterms.texi: Document that libiberty is now built + up to three times. Fix typo. + +2001-11-30 Jason Merrill + + * dwarf2out.c (add_data_member_location_attribute): Do the + right thing for virtual bases. + * dbxout.c (dbxout_type): For a virtual base, print the offset + within the vtable. + +2001-11-29 Zoltan Hidvegi + + * doloop.c (doloop_valid_p): Check for LTU and GTU as well. + +2001-11-29 Aldy Hernandez + + * config/rs6000/rs6000.c (function_arg): Unnamed vector arguments + go in memory. + Remove unused attribute for named. + +2001-11-29 Kaveh R. Ghazi + + * genattrtab.c (attr_rtx_1): New function containing the + majority of `attr_rtx'. Move variable declarations into the + scope where they are used. Eliminate unnecessary gotos. + (attr_rtx): Now just a wrapper for `attr_rtx_1' using VA_OPEN, + VA_FIXEDARG, and VA_CLOSE. + +2001-11-30 Hans-Peter Nilsson + + * config/cris/cris.c (cris_notice_update_cc): Check first + destination also against overlap with cc_status.value2 and second + destination against overlap with cc_status.value1. For overlaps, + clear overlapped value, don't just CC_STATUS_INIT. + + * config/cris/cris.h (EXTRA_CONSTRAINT_T): Fix spacing and FIXME. + Fix typo in comment. + (LINK_SPEC): Remove whitespace at end of line. + +2001-11-29 Jakub Jelinek + + * c-lex.c (init_c_lex): Canonicalize "-" filename to "". + +2001-11-29 Jakub Jelinek + + * gcc.c (ASM_DEBUG_SPEC): Only check HAVE_AS_G*_DEBUG_FLAG + macros for the supported debugging types. + +2001-11-29 Craig Rodrigues + + PR other/4932 + * config/i386/i386.c (print_operand): Verify that the + argument to %c is a constant and not a conditional which + needs to be reversed. + +Thu Nov 29 11:12:59 2001 Geoffrey Keating (geoffk@redhat.com) + + * emit-rtl.c (gen_lowpart_common): Fix conversion of + REAL_VALUE_TYPEs to an array of target integers. Fix extraction + of low part of those arrays for 32bit and 64bit hosts. + +2001-11-29 Kaveh R. Ghazi + + * Makefile.in (insn-output.o): Depend on insn-codes.h. + +2001-11-29 Joseph S. Myers + + * configure.in (target_list): Add generated-manpages. + * configure: Regenerate. + * Makefile.in (generated-manpages): Depend on + lang.generated-manpages. + * objc/Make-lang.in (objc.generated-manpages): New dummy target. + +2001-11-29 Nick Clifton + + * config/arm/crti.asm (_init): Add .thumb_func if compiled + with -mthumb. + (_fini): Add .thumb_func if compiled with -mthumb. + +2001-11-28 Eric Christopher + + * config/mips/mips.c (override_options): Fix thinko in mips_tune + for mips32/mips64. Remove MASK_SOFT_FLOAT configuration bits. + +Thu Nov 29 00:24:15 EST 2001 John Wehle (john@feith.com) + + * alpha.md (tablejump): Use pic_offset_table_rtx + instead of gen_rtx_REG. + +Wed Nov 28 15:36:13 2001 Jeffrey A Law (law@cygnus.com) + + * expr.c (store_expr): When copying a string constant into an + array, reset the known alignment of the MEM for the section to + be cleared to BITS_PER_UNIT. + +2001-11-28 Hans-Peter Nilsson + + * config/cris/cris.c: Remove whitespace at end of line. + +Wed Nov 28 14:51:23 2001 Douglas B. Rupp + + * config.gcc (i[34567]86-*-interix3*): New case. + * config/x-interix3, config/interix3.h, config/i386/i386-interix3.h: + New files. + +2001-11-28 Richard Henderson + + * config/alpha/alpha.md (sibcall_osf_1, sibcall_value_osf_1): Use + symbolic_operand as the predicate. + +2001-11-28 Richard Henderson + + * doloop.c (doloop_modify_runtime): Properly select induction + variable; skip late entry test if biv initializer created by loop. + +Wed Nov 28 08:21:47 2001 Richard Kenner + + * tree.h (EXPR_WFL_LINECOL): Used by Java in node other than + EXPR_WITH_FILE_LOCATION, so change checks and documentation. + + * tree.h (TREE_VIA_PROTECTED): Update to show can be in TREE_VEC. + + * tree.h: Add missing checks on some macros; make formatting more + consistent. + + * stor-layout.c (put_pending_size): Look for SAVE_EXPR if not at top + level; only add to pending_sizes if find it. + + * langhooks.c (lhd_safe_from_p): Add ATTRIBUTE_UNUSED. + + * df.c (iterate_dataflow_sbitmap, iterate_dataflow_bitmap): + Add casts to remove warnings. + + * Makefile.in (OBJS): Sort alphabetically. + + * print-rtl.c (print_rtx): If RTX code is bad, just say so. + Also minor cleanups. + +Wed Nov 28 06:52:27 2001 Arnaud Charlet + + * Makefile.in (ORDINARY_FLAGS_TO_PASS): Remove STAGE_PREFIX. + (FLAGS_TO_PASS): Add STAGE_PREFIX. + (SUBDIR_FLAGS_TO_PASS): Apply PREPEND_DOTDOT_TO_RELATIVE_PATH + to STAGE_PREFIX. + +Wed Nov 28 10:42:19 CET 2001 Jan Hubicka + + * cse.c (true_dependence_in_rtx): New function. + (invalidate): Use it. + + * c-common.h (GOTO_FAKE_P): New macro. + * tree-inline.c (GOTO_FAKE_P): Set. + * c-tree.texi (GOTO_FAKE_P): Document. + + * varasm.c (assemble_variable): Set reloc to 3 for error_mark + containing pointers. + (output_addressed_constants): Check for local/external relocations. + * elfos.h (SELECT_SECTION): Classify data section. + * tm.texi (SELECT_SECTION): Update documentation. + + * cfganal.c (flow_dfs_compute_reverse_add_bb): set visited bit. + (flow_dfs_compute_reverse_execute): Add only unvisited blocks. + +2001-11-27 Kaveh R. Ghazi + + * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Also provide defaults when we have + OBJECT_FORMAT_ROSE. + +2001-11-28 Hans-Peter Nilsson + + * config/cris/cris.c: Tweak spacing for prototypes. + (LOSE_AND_RETURN): New macro. + (cris_operand_lossage): New function. + (cris_print_index, cris_print_base): Use cris_operand_lossage + rather than fatal_insn. + (cris_print_operand, cris_print_operand_address): Use + LOSE_AND_RETURN rather than fatal_insn and internal_error. + (cris_output_addr_const): Use LOSE_AND_RETURN and + output_operand_lossage rather than fatal_insn and internal_error + for valid but unexpected rtx expressions. + + * config/cris/cris.c (cris_split_movdx): Don't call alter_subreg + for a SUBREG in src or dest, abort instead. + +2001-11-28 Bryce McKinlay + + * doc/passes.texi: Remove reference to c-dump.c. Update tree inlining + doc. + +2001-11-27 Jakub Jelinek + + * gcc.c (ASM_DEBUG_SPEC): Use conditional expression rather than + preprocessor define. If only DBX_DEBUGGING_INFO or only + DWARF2_DEBUGGING_INFO is supported for the target, provide + appropriate definitions. + +2001-11-27 Neil Booth + + * Makefile.in: Update, and add c-objc-common.o dependencies. + * c-lang.c: Remove unnecessary includes. + (c_init): Move bulk of code to c_objc_common_init, and call it. + (c_tree_printer, c_missing_noreturn_ok_p, c_disregard_inline_limits, + inline_forbidden_p, c_cannot_inline_tree_fn): Move to + c-objc-common.c. + * c-objc-common.c: New. Mostly pulled from c-lang.c. + * c-tree.h (c_disregard_inline_limits, c_cannot_inline_fn, + c_objc_common_init, c_missing_noreturn_ok_p): New. + * toplev.c: Update comment. + * doc/passes.texi: Update. +objc: + * objc-act.c (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, + LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, + LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Override. + (objc_init): Update to use c_objc_common_init. + +2001-11-27 Neil Booth + + * cpphash.c (_cpp_init_hashtable): Update. + * cpphash.h (struct spec_nodes): Remove n_L. + * cpplex.c (_cpp_lex_direct): Check for prefix L separately. + +2001-11-17 Richard Henderson + + * unroll.c (loop_iterations): Move last change ... + * doloop.c (doloop_modify_runtime): ... here. + +2001-11-17 Corey Minyard + Richard Henderson + + * unroll.c (loop_iterations): Detect one situation in which we + overestimate the number of iterations. + +2001-11-27 Rainer Orth + + * gcc.c (set_input): Export. + Move declaration ... + gcc.h (set_input): ... here. + +2001-11-27 Rainer Orth + + * gcc.c (set_collect_gcc_options): New function, split out from + main. + Ignore elided switches. + (do_spec): Invoke before executing command. + (do_spec_1): Likewise. + Fixes PR other/3968. + +2001-11-27 Hans-Peter Nilsson + + * config/cris/cris.h (INT_ASM_OP): Remove. + +2001-11-27 Rainer Orth + + * config/i386/sol2.h (WINT_TYPE): Redefine. + (WINT_TYPE_SIZE): Likewise. + +2001-11-27 Kaveh R. Ghazi + + * collect2.c: Check HAVE_DUP2 instead of NO_DUP2. + (dup2): Make static and add prototype. + * m68k/plexus.h: Don't define NO_DUP2. + * configure.in (AC_CHECK_FUNCS): Add dup2. + * config.in, configure: Regenerate. + + * ia64/aix.h (REG_SIZE): Don't #undef. + * sparc.h (REG_SIZE): Delete. + * flow.c (mark_used_regs): Don't use REG_SIZE. + * regs.h (REG_SIZE): Delete. + +2001-11-27 Andreas Schwab + + * gcc.c: Fix typo PREFERRED_DEBUGGING_FORMAT -> + PREFERRED_DEBUGGING_TYPE. + +Tue Nov 27 08:21:47 2001 Richard Kenner + + * Makefile.in (c-lang.o): Depends on langhooks-def.h. + (expr.o, varasm.o): Depends on langhooks.h. + * c-common.c (c_safe_from_p): Always declare. + (c_expand_expr): Refine when declared. + * c-lang.c (c-common.h): Now include. + (LANG_HOOKS_SAFE_FROM_P): Define new hook. + (c_init): Don't set lang_safe_from_expr. + * expr.c (langhooks.h): Now include. + (lang_safe_from_p): No longer define. + (safe_from_p): Use lang hook. + (expand_expr): Set IGNORE if VOID_TYPE result of VIEW_CONVERT_EXPR too. + (expand_expr, case VIEW_CONVERT_EXPR): Pass ro_modifier down. + * expr.h (lang_expand_constant, lang_safe_from_p): Delete. + * langhooks-def.h (lhd_return_tree, lhd_safe_from_p): New decls. + (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. + * langhooks.c (lhd_return_tree, lhd_safe_from_p): New functions. + * langhooks.h (struct lang_hooks): New fields expand_constant + and safe_from_p. + * output.h (output_constant): Size arg is HOST_WIDE_INT. + * stmt.c (expand_decl_init): No longer need to expand constant + for CONST_DECL. + * stor-layout.c (put_pending_size): Don't check for SAVE_EXPR. + * toplev.c (lang_expand_constant): Delete var. + * tree.c (save_expr): Don't put another SAVE_EXPR around simple + operations on SAVE_EXPR. + * varasm.c (langhooks.h): Now include. + (compare_constant_1): Use lang_hooks, not lang_expand_constant. + (record_constant_1, output_addressed_constants): Likewise. + (initializer_constant_valid_p, output_constant): Likewise. + (output_constant_def): Process no-defer of string constant. + (output_addressed_constants, case ADDR_EXPR): Use handled_component_p. + (output_constant): Strip more conversions. + Track our size and pad for the rest. + (array_size_for_constructor): Remove code for non-byte STRING_CST. + (output_constructor): SIZE now HOST_WIDE_INT. + +2001-11-27 Richard Henderson + + * ifcvt.c (noce_try_store_flag_constants): Test for overflow + in computing DIFF. + +2001-11-27 Zack Weinberg + + * cppfiles.c (read_include_file): Add comment. + +2001-11-26 Richard Henderson + + * toplev.c (rest_of_compilation): Call free_bb_for_insn before exit. + +2001-11-26 Richard Henderson + + * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Undef. + * config/ia64/aix.h (PREFERRED_DEBUGGING_TYPE): Remove + commented out override. + +2001-11-26 Neil Booth + + * cppfiles.c (stack_include_file): Don't optimize zero-length + files. + (read_include_file): NUL-terminate read files. + * cpplex.c (handle_newline, skip_escaped_newlines, + get_effective_char, skip_whitespace, parse_identifier, + parse_identifier_slow, parse_number, parse_string, + _cpp_lex_direct): Optimize for the fact that buffers are guaranteed + NUL-terminated. + * cpplib.c (destringize_and_run, cpp_define, handle_assertion): + Be sure buffers are NUL terminated. + * cppmacro.c (warn_of_redefinition): Kill compile warning. + +2001-11-26 Neil Booth + + * c-common.c: Include tree-inline.h. + (c_language): Move separate definitions here. + (c_common_init_options, c_common_post_options): New. + (c_common_lang_init): Rename c_common_init. + * c-common.h (c_common_lang_init): Similarly. + (c_common_init_options, c_common_post_options): New. + * c-lang.c (c_post_options): Move body to c_common_post_options. + (c_init_options): Use c_common_init_options. + (c_init): Update. + * langhooks.def: Rearrange. + * langhooks.h: Rearrange, and improve comments. + * toplev.c (do_compile): New function. + (toplev_main): Use it. + (lang_independent_f_options, parse_options_and_default_flags, + process_options): Remove trailing periods. + * Makefile.in: Update. +objc: * objc-act.c (objc_post_options, objc_init_options): Use c-common.c + functions. + (ojbc_init): Update. + +2001-11-26 Richard Henderson + + * config/alpha/alpha.md (unop): Add 0 offset for some gas versions. + +2001-11-26 DJ Delorie + + * expr.c (store_constructor): Actually use the value computed + if WORD_REGISTER_OPERATIONS. + +2001-11-26 Richard Henderson + + * config/elfos.h (SELECT_SECTION): Don't check TREE_READONLY + for CONSTRUCTOR. + +2001-11-26 David Edelsohn + + * rs6000.c (output_mi_thunk): Handle minimal-toc and call + correct function on AIX. + +2001-11-26 Alexandre Oliva + + * toplev.c (process_options): Don't force + flag_optimize_sibling_calls to zero just because exceptions are + enabled. + +Mon Nov 26 12:37:05 2001 Jeffrey A Law (law@cygnus.com) + + * df.h (transfer_function_sbitmap): Use PARAMS around argument + list in function prototypes. + (transfer_function_bitmap): Likewise. + +2001-11-26 Loren J. Rittle + + * config/stormy16/stormy16.h: Remove DEFAULT_VTABLE_THUNKS. + * config/i386/netbsd-elf.h: Likewise. + +2001-11-26 David Edelsohn + + * doc/trouble.texi: Remove outdated RS/6000 comments. + +Mon Nov 26 13:49:41 CET 2001 Jan Hubicka + + * final.c (walk_alter_subreg): Fix return value. + +Mon Nov 26 11:36:20 CET 2001 Jan Hubicka + + * sparc.c (sparc_absnegfloat_split_legitimate): Do not call + alter_subreg. + * sparc.md (post-reload splitters): Do not call alter_subreg. + * cfgrtl.c (purge_dead_edges): Fix typo in previous fix. + +2001-11-25 Aldy Hernandez + + * regclass.c (choose_hard_reg_mode): Handle vector arguments. + +2001-11-26 Alan Modra + + * final.c: (insn_lengths): Make it an int *, so that large jump + tables don't overflow. + +2001-11-25 Joseph S. Myers + + * c-format.c (FMT_FLAG_DOLLAR_GAP_POINTER_OK): New. + (format_types): Use it for scanf. + (dollar_arguments_pointer_p): New. + (init_dollar_format_checking): Store details of which arguments + are pointers. + (maybe_read_dollar_number): Reallocate dollar_arguments_pointer_p. + (finish_dollar_format_checking): Take extra parameter + pointer_gap_ok. Treat unused arguments differently if + pointer_gap_ok and the unused arguments are pointers. + (check_format_info_main): Pass extra argument to + finish_dollar_format_checking. + * doc/invoke.texi (-Wno-format-extra-args): Document behavior when + unused arguments are present between used arguments with operand + numbers. + +2001-11-25 Daniel Berlin + + * df.c: Add prototypes for hybrid_search_bitmap and + hybrid_search_sbitmap. + (hybrid_search_bitmap): New function. + (hybrid_search_sbitmap): New function. + (iterative_dataflow_sbitmap): Change to use hybrid_search_sbitmap. + (iterative_dataflow_bitmap): Ditto. + +2001-11-25 Stephane Carrez + + * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize + address computations. + +2001-11-25 Stephane Carrez + + * config/m68hc11/m68hc11.c (d_register_operand): Must accept + register b (low part of d). + +2001-11-25 Stephane Carrez + + * config/m68hc11/m68hc11.h (FUNCTION_PROFILER): Fix label name + passed to mcount. + +Sun Nov 25 06:22:09 2001 Douglas B. Rupp + + * config/alpha/vms-ld.c, config/alpha/vms-cc.c: New files. + * config/alpha/x-vms: New file, to compile the above. + * config.gcc (alpha*-dec-vms*): Add x-vms. + +2001-11-24 Hans-Peter Nilsson + + * genextract.c (main): Set ro_loc for peepholes. + +Sat Nov 24 17:04:10 2001 Douglas B. Rupp + + * fix-header.c (main): Move inf_buffer termination and inf_limit + calculation to after read. + + * config/alpha/xm-vms.h (FILE_TYPE): Remove undef and baggage. + (__UNIX_FOPEN): Define. + +Sat Nov 24 16:11:00 2001 Richard Kenner + + * function.c (assign_stack_temp_for_type): Clear alias set before + setting new one. + +2001-11-23 David Edelsohn + + * rs6000.c (print_operand, case 'v'): Use HOST_WIDE_INT_PRINT_HEX + format. + * rs6000.md (cmptf): Fix typo. + +2001-11-23 Richard Sandiford + + * final.c (output_addr_const): Output PC as '.' even if !flag_pic. + * varasm.c (output_constructor): Use assemble_integer rather + than ASM_OUTPUT_BYTE. + +2001-11-23 Andreas Jaeger + + * cpplex.c (cpp_interpret_charconst): Use HOST_WIDE_INT for sign + extension. + +2001-11-23 Nick Clifton + + * config/arm/xscale-coff.h (SUBTARGET_CPU_DEFAULT): Override + default definition. + (SUBTARGET_EXTRA_ASM_SPEC): Remove previous definition. + (MULTILIB_DEFAULTS): Remove previous definition. + +2001-11-23 Neil Booth + + * cppmacro.c (warn_of_redefinition): Warn regardless of -pedantic. + * gcc.dg/cpp/mi6.c, gcc.dg/cpp/redef2.c: Update. + +2001-11-22 Kaveh R. Ghazi + + * cris.h: Revert thinko in last patch. + +2001-11-23 Joseph S. Myers + + * ChangeLog.0, ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog, + FSFChangeLog.10, c-decl.c, cppfiles.c, cppinit.c, cpplex.c, + cpplib.c, cppmain.c, cse.c, df.c, diagnostic.c, dominance.c, + dwarf2out.c, dwarfout.c, emit-rtl.c, errors.c, except.c, except.h, + explow.c, function.c, gcse.c, genrecog.c, predict.c, regmove.c, + sched-rgn.c, ssa-ccp.c, stmt.c, toplev.c: Fix spelling errors. + + * predict.c, reg-stack.c: Fix spelling errors. + +2001-10-09 Andrew Haley + + * calls.c (check_sibcall_argument_overlap): Use slot_offset for + start of stack slot. + +2001-11-22 Graham Stott + + * cfgrtl.c (try_redirect_by_replacing_jump): Fix typo, emit + replacement jump after original jump. + + (verify_flow_info): Remove redundent initialisation. + Handle reaching end of insn list before finding a BARRIER. + Only issue one missing barrier diagnostic. + +2001-11-22 Graham Stott + + * local-alloc.c (combine_regs): Handle SUBREG_REG being a MEM. + +Thu Nov 22 06:49:14 2001 Richard Kenner + + * config/i386/i386.md (leave, leave_rex64): Have RTL reflect what + insn actually does. + +2001-11-22 Nick Clifton + + * doc/invoke.texi (M32R/D Option Summary): Document -m32r switch. + Fix typo -mm32rx=> -m32rx. + + * config/arm/arm.c (arm_elf_asm_named_section): Only build for elf + targets. + + * config.gcc (xscale-coff): Add necessary header files to + tm_file variable. + +2001-11-20 Zack Weinberg + + * rs6000.c (output_cbranch): Use $, not %$, in output template. + +2001-11-21 Bryce McKinlay + + * tree-dump.c: Rename from c-dump.c. Include c-tree.h, not c-common.h. + (lang_type_quals): Declare. + (dequeue_and_dump): Use lang_hooks.tree_dump.type_quals function to + retrieve language-specific qualifiers for a type node, instead of + C_TYPE_QUALS. Likewise for lang_hooks.tree_dump.dump_tree instead of + lang_dump_tree. + * tree-dump.h: Rename from c-dump.h. + * c-common.h (C_TYPE_QUALS): Removed. + Move declarations for tree-dump.c interface to... + * tree.h: ... here. Remove lang_dump_tree. + * langhooks.h (struct lang_hooks_for_tree_dump): New. + (struct lang_hooks): Add tree_dump hooks. + * langhooks.c (lhd_tree_dump_dump_tree): New function. + (lhd_tree_dump_type_quals): New function. + * langhooks-def.h (lhd_tree_dump_dump_tree, lhd_tree_dump_type_quals): + Declare. + (LANG_HOOKS_INITIALIZER): Add tree_dump hooks. + * Makefile.in: Move tree-dump.o to language-independent back-end. + +2001-11-21 Kaveh R. Ghazi + + * 1750a.h (DBX_REGISTER_NUMBER): Don't define. + * alpha.h (DBX_REGISTER_NUMBER): Likewise. + * arc.h (DBX_REGISTER_NUMBER): Likewise. + * arm/aout.h (DBX_REGISTER_NUMBER): Likewise. + * avr.h (DBX_REGISTER_NUMBER): Likewise. + * c4x.h (DBX_REGISTER_NUMBER): Likewise. + * clipper.h (DBX_REGISTER_NUMBER): Likewise. + * convex.h (DBX_REGISTER_NUMBER): Likewise. + * cris.h (DBX_REGISTER_NUMBER): Likewise. + * dsp16xx.h (DBX_REGISTER_NUMBER): Likewise. + * elxsi.h (DBX_REGISTER_NUMBER): Likewise. + * fr30.h (DBX_REGISTER_NUMBER): Likewise. + * h8300.h (DBX_REGISTER_NUMBER): Likewise. + * i370.h (DBX_REGISTER_NUMBER): Likewise. + * i860.h (DBX_REGISTER_NUMBER): Likewise. + * i860/paragon.h (DBX_REGISTER_NUMBER): Likewise. + * i860/sysv3.h (DBX_REGISTER_NUMBER): Likewise. + * i860/sysv4.h (DBX_REGISTER_NUMBER): Likewise. + * m32r.h (DBX_REGISTER_NUMBER): Likewise. + * m68hc11.h (DBX_REGISTER_NUMBER): Likewise. + * m88k.h (DBX_REGISTER_NUMBER): Likewise. + * mcore/mcore-elf.h (DBX_REGISTER_NUMBER): Likewise. + * mcore.h (DBX_REGISTER_NUMBER): Likewise. + * mn10200.h (DBX_REGISTER_NUMBER): Likewise. + * mn10300.h (DBX_REGISTER_NUMBER): Likewise. + * pdp11.h (DBX_REGISTER_NUMBER): Likewise. + * romp.h (DBX_REGISTER_NUMBER): Likewise. + * rs6000.h (DBX_REGISTER_NUMBER): Likewise. + * rs6000/sysv4.h (DBX_REGISTER_NUMBER): Likewise. + * s390/linux.h (DBX_REGISTER_NUMBER): Likewise. + * stormy16.h (DBX_REGISTER_NUMBER): Likewise. + * v850.h (DBX_REGISTER_NUMBER): Likewise. + * vax.h (DBX_REGISTER_NUMBER): Likewise. + * we32k.h (DBX_REGISTER_NUMBER): Likewise. + + * defaults.h (DBX_REGISTER_NUMBER): Provide a default. + * doc/tm.texi (DBX_REGISTER_NUMBER): Update. + +2001-11-21 H.J. Lu + + * config/rs6000/sysv4.h (LIB_SPEC): Fix a typo. + +2001-11-21 Kaveh R. Ghazi + + * s390.c (s390_va_arg): Eliminate ALIGN parameter in call to + emit_cmp_and_jump_insns. + + * stormy16.c (xstormy16_expand_builtin_va_arg, + xstormy16_expand_casesi): Likewise. + +Wed Nov 21 17:37:16 2001 Richard Kenner + + * function.c (keep_stack_depressed): Major rework. + (handle_epilogue_set, emit_equiv_load): New functions. + (thread_prologue_and_epilogue_insns): keep_stack_depressed now + has return value. + * jump.c (returnjump_p_1): Also return 1 if SET with SET_IS_RETURN_P. + * rtl.h (SET_IS_RETURN_P): New macro. + + * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Refine slightly + and also support TREE_ADDRESSABLE. + * tree.def (VIEW_CONVERT_EXPR): Document TREE_ADDRESSABLE. + +2001-11-21 David Edelsohn + + * rs6000.md (cmptf_internal1): Replace %$ with $. + +Wed Nov 21 16:44:01 2001 Douglas B. Rupp + + * cppfiles.c (STAT_SIZE_TOO_BIG): Define. + (read_include_file): Use STAT_SIZE_TOO_BIG. + + * cppinit.c (INO_T_COPY): Define. + (INO_T_EQ): Uppercase parameters. + (append_include_chain): Use INO_T_COPY. + +2001-11-21 Richard Sandiford + + * cfg.c: Fix typos and formatting in the introductory comment. + +Wed Nov 21 12:38:37 CET 2001 Jan Hubicka + + * profile.c (compute_branch_probabilites): Compute probabilities + for entry/exit edges; estimate probabilities for zero counts. + +2001-11-21 Jakub Jelinek + + * explow.c (probe_stack_range): Use LCT_NORMAL as second argument + to emit_library_call. + * function.c (expand_main_function, expand_function_start, + expand_function_end): Likewise. + * profile.c (output_func_start_profiler): Likewise. + * stmt.c (expand_nl_goto_receivers): Use LCT_NORETURN as + second argument to emit_library_call. + * optabs.c (prepare_cmp_insn): Use LCT_CONST_MAKE_BLOCK + as second argument to emit_library_call. + * calls.c (emit_library_call): Update fn_type description. + +2001-11-21 Jakub Jelinek + + * c-decl.c (c_expand_deferred_function): Only call c_expand_body + if fndecl is still DECL_INLINE and has DECL_RESULT. + +2001-11-20 Kaveh R. Ghazi + + * clipper.c (clipper_movstr): Avoid uninitialized warning. + * i960.c (is_mask, legitimize_address): Likewise. + * m88k.c (m88k_expand_prologue): Likewise. + * m88k.md: Likewise. + * mcore.c (emit_new_cond_insn): Likewise. + * stormy16.c (xstormy16_emit_cbranch): Likewise. + +2001-11-20 Zack Weinberg + + * config.gcc: Delete powerpcle-*-solaris2* stanza. + * config/rs6000/eabi.asm, config/rs6000/rs6000.c, + config/rs6000/rs6000.h, config/rs6000/rs6000.md, + config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm, + config/rs6000/sysv4.h, config/rs6000/t-ppccomm, + config/rs6000/t-ppcos: Expunge all references to Solaris. + + * config/rs6000/sol-c0.c, config/rs6000/sol2.h: Delete. + + * config/rs6000/rs6000.md: Replace '%$' with '$' in all + output templates. + * config/rs6000/rs6000.h: Define DEFAULT_PCC_STRUCT_RETURN to 0, + and change RETURN_IN_MEMORY to just check AGGREGATE_TYPE_P. + +2001-11-20 Kaveh R. Ghazi + + * sh.md: Avoid uninitialized warnings. + * vax.c (vax_rtx_cost): Likewise. + +2001-11-15 Aldy Hernandez + + * rs6000.c (direct_return): Check if we are saving altivec + registers. + (first_altivec_reg_to_save): New. + Updated stack frame layout comments. + (rs6000_stack_info): Calculate altivec register save size. + Save link register if we saved some altivec registers. + (rs6000_stack_info): Align save size to 16 if altivec abi or + abi_darwin. + (rs6000_stack_info): Calculate altivec register offsets. + (rs6000_stack_info): Add altivec info to save_size. + (debug_stack_info): Add altivec debug info. + (rs6000_emit_prologue): Save altivec registers and vrsave. + (compute_vrsave_mask): New. + (altivec_expand_builtin): Remove unused variables. + (rs6000_parse_abi_options): Add static qualifier. + (rs6000_expand_builtin): Remove unused parameters. + (altivec_expand_builtin): Cast bdesc_2arg to get rid of warning. + (altivec_init_builtins): Same. + (is_altivec_return_reg): New. + (vrsave_operation): New. + (ALTIVEC_REG_BIT): New. + (generate_set_vrsave): New. + + * rs6000.md (get_vrsave): New. + (set_vrsave): New. + (*set_vrsave_internal): New. + + * rs6000.h (rs6000_stack): Add first_altivec_reg_save, + altivec_save_offset, vrsave_save_offset, altive_size, vrsave_size, + altivec_padding_size, vrsave_mask. + (TOTAL_ALTIVEC_REGS): New. + (EPILOGUE_USES): Add VRSAVE_REGNO. + +2001-11-20 Jeff Law + + * unroll.c (copy_loop_body): Update LABEL_NUSES for the + exit label as necessary. + +2001-11-20 Brad Kaiser + + * reload1.c (elimination_effects): Use function_invariant_p + instead of CONSTANT_P when considering register equivalences. + +2001-11-20 David O'Brien + + * config.gcc: Add FreeBSD/PowerPC target. + (powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*, + powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*, + powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*, + powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*, + powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*, + powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*): Add + freebsd-spec.h to tm_file. + (rs6000-*-lynxos*): Add lynx.h to tm_file. + * config/freebsd.h: Tidy up. + (USING_CONFIG_FREEBSD): Define. + (FBSD_SWITCH_TAKES_ARG, FBSD_WORD_SWITCH_TAKES_ARG, + FBSD_CPP_PREDEFINES, FBSD_CPP_SPEC, FBSD_STARTFILE_SPEC, + FBSD_ENDFILE_SPEC, FBSD_LIB_SPEC): Remove (moved to freebsd-spec.h). + (TARGET_HAS_F_SETLKW): Define. + (ASM_OUTPUT_IDENT): Delete, the elfos.h definition is fine. + * config/freebsd-spec.h: New file. + * config/rs6000/freebsd.h: New file. + * config/rs6000/rs6000.h (TARGET_VERSION): Do not define. + * config/rs6000/rs6000.c: Test for USING_ELFOS_H rather than + USING_SVR4_H to know when to turn on ELF support. + * config/rs6000/sysv4.h (TARGET_VERSION, CPP_PREDEFINES): Don't undef, + define only if not already defined. + Add FreeBSD support. + * config/rs6000/aix.h (TARGET_VERSION): Define. + * config/rs6000/beos.h: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/mach.h: Likewise. + * config/rs6000/lynx.h (TARGET_VERSION): Likewise. + Don't include lynx.h directly. + +2001-11-20 Graham Stott + + * unwind-dw2-fde.c (__deregister_frame_info_bases): + Fix lossage in last change return OB. + +Tue Nov 20 11:56:12 2001 Douglas B. Rupp + + * config/alpha/xm-vms.h (_POSIX_EXIT): Define. + Remove unneeded exit related macros. + +2001-11-20 David Edelsohn + + * rs6000.c (rs6000_emit_eh_toc_restore): Remove ALIGN parm. + + * rs6000.c (rs6000_emit_move): Add TFmode case. + * sysv4.h (MASK_LONG_DOUBLE_128, TARGET_LONG_DOUBLE_128, + LONG_DOUBLE_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, + LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move from here... + * rs6000.h: ... to here. + * rs6000.md (movtf, extenddftf2, extendsftf2, trunctfdf2, + trunctfsf2, floatditf2, floatsitf2, fix_trunctfdi2, + fix_trunctfsi2, negtf2, abstf2, nabstf2, cmptf): New patterns. + +Tue Nov 20 06:41:38 2001 Richard Kenner + + * emit-rtl.c (get_mem_attrs): Fix typo. + +2001-11-20 Jakub Jelinek + + * c-lang.c (finish_file): Backout 2001-11-16 + changes, instead set DECL_DEFER_OUTPUT for static inline functions + before calling c_expand_deferred_function. + +2001-11-20 Jakub Jelinek + + * unwind-dw2-fde.c (__register_frame_info_bases, __register_frame): + Don't register empty .eh_frame sections. + (__deregister_frame_info_bases, __deregister_frame): Don't + unregister them either. + +2001-11-19 Geoffrey Keating + + * configure.in (HAVE_AS_GDWARF2_DEBUG_FLAG): Define. + (HAVE_AS_GSTABS_DEBUG_FLAG): Define. + * configure: Regenerate. + * config.in: Add dummy definitions of new flags. + * toplev.c (PREFERRED_DEBUGGING_TYPE): Move definition to... + * defaults.h (PREFERRED_DEBUGGING_TYPE): ... here. + * gcc.c (ASM_DEBUG_SPEC): New macro. + (asm_debug): New static variable. + (default_compilers): Add asm_debug when assembling from + user input. + (static_specs): Add asm_debug. + +2001-11-20 Loren J. Rittle + + * config.gcc (*-*-freebsd*): Remove configuration block. + +2001-11-19 Loren J. Rittle + + bootstrap/4422 + * configure.in: Setup ability to run ./stage[1234]/xgcc in + fixinc *as if* it were a proper lang subdirectory. + * configure: Rebuilt. + +2001-11-19 Loren J. Rittle + + * config/freebsd.h: Remove DEFAULT_VTABLE_THUNKS (again). + +2001-11-19 Kaveh R. Ghazi + + * 1750a.md: Don't use hex format for a const_int. + +2001-11-19 Geoffrey Keating + + * expmed.c (extract_bit_field): Don't create invalid SUBREGs. + +2001-11-19 Zack Weinberg + + * mkconfig.sh: Undefine ENABLE_NLS if GENERATOR_FILE is + defined (prevents link errors when gettext isn't in the system + library). + +2001-11-19 DJ Delorie + + * read-rtl.c (ISDIGIT, ISSPACE): Make sure we have these. + (validate_const_int): New. + (read_rtx): Validate constant integers. + * config/i386/i386.md (pmulhrwv4hi3): Use decimal constants. + +2001-11-19 Jakub Jelinek + + * doc/hostconfig.texi (DUMPFILE_FORMAT): Move into the table. + +Mon Nov 19 16:57:44 2001 Douglas B. Rupp + + * toplev.c (DUMPFILE_FORMAT): Define default. + (open_dump_file): Use DUMPFILE_FORMAT in sprintf. + (close_dump_file, compile_file): Likewise. + * config/alpha/xm-vms.h (DUMPFILE_FORMAT): Define. + * doc/hostconfig.texi (DUMPFILE_FORMAT): Document + +2001-11-19 Jeff Law + + * gcse.c (cprop_jump): Clear JUMP_LABEL field when we create + a nop-jump. + +2000-11-19 Neil Booth + + * cppmacro.c (_cpp_backup_tokens): Revert previous check-in. + Don't fall off the base token run. + +2001-11-19 Jason Wilkins + + * Makefile.in: Use INSTALL_SCRIPT not INSTALL_PROGRAM. + +Mon Nov 19 15:13:43 2001 Richard Kenner + + * tree.def (VIEW_CONVERT_EXPR): New tree code. + * tree.h (handled_component_p): New declaration. + * alias.c (handled_component_p): Move function from here ... + * expr.c (handled_component_p): ... to here and non longer static. + (is_zeros_p, case VIEW_CONVERT_EXPR): New case. + (store_field): Remove unneeded MEM_COPY_ATTRIBUTES call. + (get_inner_reference): Handle VIEW_CONVERT_EXPR. + (expand_expr, case VAR_DECL): Clean up handling of re-layout case. + (expand_expr, case VIEW_CONVERT_EXPR): New case. + (expand_expr, cse ADDR_EXPR): No need to copy if already + BIGGEST_ALIGNMENT. + * fold-const.c (fold, case VIEW_CONVERT_EXPR): New case. + * varasm.c (initializer_constant_value_p, case VIEW_CONVERT_EXPR): New. + (output_constant): Handle VIEW_CONVERT_EXPR. + * dwarf2out.c (loc-descriptor_from_tree, add_bound_info): + Add new case for VIEW_CONVERT_EXPR. + +2001-11-19 Kaveh R. Ghazi + + * a29k/unix.h (ASM_FILE_START): Const-ify. + * i386/beos-elf.h (INCLUDE_DEFAULTS): Remove semi-colon. + * i386/isc.h (ASM_FILE_START): Const-ify. + * i386/sun386.h (ASM_FILE_START): Likewise. + * m32r.md: Likewise. + * m68k/auxas.h (ADDITIONAL_REGISTER_NAMES): Add missing brackets. + * m68k/auxgas.h ADDITIONAL_REGISTER_NAMES): Likewise. + * m68k/tower.h (REGISTER_NAMES): Remove semi-colon. + * mn10200.md: Initialize variable. + +Mon Nov 19 18:06:21 CET 2001 Jan Hubicka + + * gcse.c (try_replace_reg): Copy RTX before creating note. + + * df.h (df_ref_flags): New uenum. + (DF_REF_FLAGS): New macro. + (struct ref): Add field "flags". + * df.c (HANDLE_SUBREG): Remove. + (df_ref_create): Likewise; set flags field of ref. + (df_def_record_1): Strip down read_write subreg; remove + commented out code; set READ_WRITE flag. + (read_modify_subreg_p): New static function. + (df_uses_record): Cleanup SET handling; set READ_WRITE flag; + new argument "flags". + (df_insn_refs_record): Update call of df_uses_record. + (df_insn_modify): Avoid #if 0 around comment. + (df_dump): Dump the read/write flag. + + * predict.c (propagate_freq): Make cyclic_probability and frequency + volatile + + * i386.c (ix86_cc_mode): Accept USE. + + * cfgrtl.c (purge_dead_edges): Cleanup EDGE_ABNORMAL flag if computed + jump is turned into simplejump. + +2001-11-19 Joseph S. Myers + + * doc/fragments.texi, doc/trouble.texi: Remove links to old + installation chapter. + * doc/gcc.texi: Don't claim that this manual documents + installation. Mark Installation menu entry as being out of date. + +Mon Nov 19 07:21:35 2001 Douglas B. Rupp + + * config/alpha/xm-vms.h: Don't define macros that autoconf handles. + (SUCCESS_EXIT_CODE, FATAL_EXIT_CODE): Define for posix compatibility. + * gcc.c (exit): Remove definition for VMS; moved to xm-vms.h. + +2001-11-19 Jason Merrill + + * cppmacro.c (_cpp_backup_tokens): Pop cur_run before decrementing + cur_token, not after. + + * config/clipper/clix.h, config/h8300/elf.h, config/mips/linux.h: + Lose ASM_OUTPUT_CONSTRUCTOR. + * system.h: Poison it and INT_ASM_OP. + * c-lang.c (finish_file): Don't check for it. + * libgcc2.c (L_ctors): Check TARGET_ASM_CONSTRUCTOR instead. + +2001-11-18 Kaveh R. Ghazi + + * mmix.c (mmix_cc1_ignored_option): Const-ify. + (mmix_init_machine_status): Make static to match declaration. + (mmix_unique_section): Const-ify. + (mmix_output_quoted_string): Avoid automatic aggregate + initialization. + (mmix_output_register_setting): Likewise. + (mmix_output_shiftvalue_op_from_str): Likewise. + + * mmix.h (mmix_cc1_ignored_option): Const-ify. + (ASM_OUTPUT_BYTE): Fix format specifier warning. + (ASM_GENERATE_INTERNAL_LABEL): Likewise. + +2001-11-18 Craig Rodrigues + + PR c/4448 + * gthr-win32.h: (__gthread_objc_thread_exit): Fix variable + name __objc_thread_exit_status so that it matches the + variable defined in objc/thr.h. + +2001-11-18 Craig Rodrigues + + PR bootstrap/4020 + * mklibgcc.in: Add missing semi-colons. + * Makefile.in: Same. + +Sun Nov 18 16:47:00 2001 Richard Kenner + + * expr.c (expand_expr, case VAR_DECL): Update alignment of DECL_RTL + after re-laying out decl in incomplete case. + (expand_expr, case ADDR_EXPR): Fix typo in copy case. + +2001-11-18 Joseph S. Myers + + * doc/install-old.texi: Move some sections out to ... + * doc/collect2.texi, doc/configfiles.texi, doc/headerdirs.texi: + ... here. New files. Make into chapters rather than sections. + * doc/gcc.texi: Include the new files and add menu entries for + them. + * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. + +Sun Nov 18 14:13:52 2001 Richard Kenner + + * tree.h (TYPE_ALIGN_OK): New flag. + * emit-rtl.c (set_mem_attributes): Handle it. + * expr.c (emit_single_push_insn): Only set to alias set 0 if + doing sibcall optimization. + (expand_expr, case COMPONENT_REF): Call set_mem_attributes on case + when make temporary. + (expand_expr, case CONVERT_EXPR): Simplify convert-to-union case. + (expand_expr, case ADDR_EXPR): Abort if TYPE_ALIGN_OK and need copy. + + * sdbout.c (sdbout_symbol): Avoid warning due to &DECL_RTL. + +2001-11-18 Joseph S. Myers + + * c-decl.c (c_decode_option): Give deprecation warning for + -traditional. + * doc/invoke.texi (-traditional): Note that this option is + deprecated. + +Sun Nov 18 07:40:07 2001 Douglas B. Rupp + + * config/alpha/alpha.c (alpha_start_function, VMS): Cast shift + arg to HOST_WIDE_INT, not long. + + * config/alpha/vms.h (DIR_SEPARATOR, PREFIX). Don't define. + (HAS_INIT_SECTION): Define. + (REAL_ARITHMETIC): Don't undefine. + +2001-11-18 Egor Duda + + * config/i386/cygwin.h: Strip leading '*' from name, if any. + +2001-11-18 Neil Booth + + * Makefile.in (c-parse.o, c-common.o): Update dependencies. + * c-common.c: Include diagnostic.h. + (c_common_finish): New. + * c-common.h (c_common_finish): New. + * c-lang.c (LANG_HOOKS_FINISH): Override. + * c-parse.in: Don't include diagnostic.h. + (finish_parse): Remove. + * langhooks.h: Update comments. + * toplev.c (lang_dependent_init): New prototype. + (finalize): New. + (compile_file): Split cleanup code out to finalize. + (lang_dependent_init): Stop if lang_hooks.init fails. + (toplev_main): Update. + * tree.h (finish_parse): Remove. +objc: + * objc-act.c (LANG_HOOKS_FINISH): Override. + +Sat Nov 17 23:30:44 2001 Douglas B. Rupp + + * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms_tramp.asm. + * config/alpha/vms_tramp.asm: New file. + * config/alpha/vms-tramp.asm: Removed. + +2001-11-18 Joseph S. Myers + + * c-common.c (struct disabled_builtin, disabled_builtins, + disable_builtin_function, builtin_function_disabled_p): New. + (builtin_function_2): Check for disabled built-in functions. + * c-common.h (disable_builtin_function): Declare. + * c-decl.c (c_decode_option): Handle -fno-builtin-FUNCTION. + * doc/invoke.texi: Document -fno-builtin-FUNCTION. + * doc/extend.texi: Mention -fno-builtin-FUNCTION. + +2001-11-17 Craig Rodrigues + + PR target/4606 + * config.gcc: Remove reference to va-clipper.h. + +2001-11-17 Stan Shebs + + * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix the + AltiVec-related bitfields. + +Sat Nov 17 12:06:31 2001 Richard Kenner + + * except.c (enum eh_region_type): Add ERT_UNKNOWN. + (mark_eh_region, case ERT_UKNONW): New case. + +2001-11-17 Christopher Faylor + Corinna Vinschen + + * config/i386/cygwin.h: Search target specific include directory for + w32api stuff, if appropriate. + +Sat Nov 17 08:20:44 2001 Douglas Rupp + + * config/alpha/vms.h (REG_ALLOC_ORDER): Redefine. + +2001-11-16 Aldy Hernandez + + * config/rs6000/rs6000.md: Change all ldvx to lvx. + +2001-11-16 Alexandre Oliva + + * gensupport.c (process_rtx): Don't assume filename is the first + argument of any rtl. + +2001-11-16 John David Anglin + + * vax-protos.h (reg_was_0_p): New prototype. + * vax.md (movsi, movhi, movqi): Use reg_was_0_p. + * vax.c (follows_p, reg_was_0_p): New functions. + +2001-11-16 John David Anglin + + * vax.md (casesi): Swap arguments in "(plus:SI (pc) (mult))". Reformat. + (casesi1): Likewise. Define new pattern which arises by simplification + when operand 1 is a constant int. Correct pattern which arises by + simplification when operand 1 is zero. + +2001-11-16 David O'Brien + + * config.gcc (arm*-*-rtems*, arm-*-coff*, armel-*-coff*, + arm-*-vxworks*, arm-*-riscix1.[01]*, arm-*-riscix*, + arm-semi-aout, armel-semi-aout, arm-semi-aof, armel-semi-aof, + arm*-*-netbsd*, arm*-*-linux*, arm*-*-uclinux*, arm*-*-aout, + arm*-*-ecos-elf, arm*-*-elf, arm*-*-conix*, arm*-*-oabi, + arm-*-pe*, strongarm-*-elf*, strongarm-*-coff*, strongarm-*-pe, + xscale-*-elf, xscale-*-coff: Include various CPU headers via tm_file. + * config/arm/aof.h: Don't include arm.h. + * config/arm/aout.h: Likewise. + * config/arm/coff.h: Don't include semi.h and aout.h. + * config/arm/elf.h: Don't include aout.h. + * config/arm/netbsd.h: Don't include netbsd.h and aout.h. + (TARGET_VERSION): Undef before defining. + (ARM_OS_NAME): Likewise + (TARGET_DEFAULT): Likewise + (TARGET_MEM_FUNCTIONS): Do not need to undefine now. + * config/arm/pe.h: Don't include arm/coff.h. + * config/arm/riscix.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Use + SUBTARGET_CPP_SPEC rather than overiding the arm.h CPP_SPEC definition. + * config/arm/riscix1-1.h: Likewise. + * config/arm/rix-gas.h: Don't include riscix.h. + (DBX_CONTIN_LENGTH): Undef before defining. + * config/arm/semi.h: Don't include aout.h. + * config/arm/semiaof.h: Don't include aof.h. + * config/arm/strongarm-coff.h: Don't include coff.h. + * config/arm/strongarm-pe.h: Don't include strongarm-coff.h and pe.h. + * config/arm/vxarm.h: Don't include arm/coff.h. + * config/arm/xscale-coff.h: Don't include coff.h. + +Fri Nov 16 15:22:35 2001 Richard Kenner + + * config/pa/pa.c: Reflect changes in calling sequences of alter_reg and + emit_cmp_insn. + +2001-11-16 Andreas Jaeger + + * cfglayout.c (fixup_fallthru_exit_predecesor): Make void, rename + to .... + (fixup_fallthru_exit_predecessor): ... this. + Change callers and prototype. + +2001-11-16 Bernd Schmidt + + * config/i386/i386.c (ix86_expand_sse_comi): Generate setcc by + hand; don't use gen_setcc_2. + (ix86_expand_builtin): Fix pshufw. + * config/i386/i386.md (maskncmpv4sf3, vmmmaskncmpv4sf3): Special + case UNORDERED to emit the right assembler instruction. + (mmx_pshufw): Lose operand 2. + (cvtsi2ss): Fix representation. + From Graham Stott: + (mmx_clrdi, sse_clrti, stmxcsr, ldmxcsr): Set memory attribute. + +2001-11-16 Joseph S. Myers + + * doc/include/linux-and-gnu.texi: Remove. + * doc/gnu.texi: New. + * doc/gcc.texi: Include gnu.texi instead of linux-and-gnu.texi. + * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. + +2001-11-16 Kazu Hirata + + * config/a29k/a29k.c: Fix comment formatting. + * config/a29k/a29k.h: Likewise. + * config/arc/arc.c: Likewise. + * config/arc/arc.h: Likewise. + * config/vax/vax.c: Likewise. + * config/vax/vax.h: Likewise. + * config/we32k/we32k.c: Likewise. + * config/we32k/we32k.h: Likewise. + +2001-11-16 Jeff Law + + * unroll.c (copy_loop_body): Initialize JUMP_LABEL field after + creating a new jump insn. + +Fri Nov 13 09:06:25 2001 Richard Kenner + + * expr.c (expand_expr, case ADDR_EXPR): Refine test for when to + copy misaligned data. + * varasm.c (assemble_variable): Set alignment into MEM when changed. + +2001-11-16 Graham Stott + + * optabs.c (prepare_cmp_insn): Correct lossage in last change fix + OPALIGN type. + +2001-11-16 Olivier Hainque + + * except.c: Support for catching a list of types with a single handler + (struct eh_region): Change type and filter to lists for catch regions. + (mark_eh_region): Mark the filter list for GC also. + (expand_start_catch): Always build a list if argument not NULL and + register each type of the list through add_type_for_runtime. + (duplicate_eh_region_1): Change type into type_list for catch regions. + (assign_filter_values): Assign a filter to each type associated with a + catch region. Assign filter for NULL types in a unique entry in the + filter list. + (build_post_landing_pads): Emit compare and jump for each filter of + the list associated with a catch region. + (reachable_next_level): When the type thrown is known, stop the search + as soon as one type within a catch list matches. Also, a handler is + potentially reachable only if at least one of the types it catches + has not been previously caught. + (collect_one_action_chain): Retrieve the filter for a NULL type list + from the first filter list entry. For non NULL type lists, add an + action record for every filter assigned. + * except.h: Reflect changes in comment before expand_start_catch. + +Fri Nov 16 07:12:51 2001 Richard Kenner + + * expr.c (expand_expr, case ADDR_EXPR): Only copy for misaligned if + BLKmode. + +Fri Nov 16 06:37:05 2001 Andreas Tobler + + * config/sparc/sparc.c: Remove ALIGN arg from emit_cmp_insn. + +2001-11-16 Jakub Jelinek + + * c-lang.c (finish_file): Don't emit static inline functions if + they weren't referenced. + +2001-11-15 Stan Shebs + + * expr.c (expand_expr, case COMPONENT_REF): Fix variable ref. + +2001-11-16 Bryce McKinlay + + * config/s390/s390.md: Remove ALIGN arg from emit_cmp_and_jump_insns + call. + * config/i386/i386.md: Likewise. + +Thu Nov 15 21:40:16 2001 Richard Kenner + + * timevar.c (rtl.h): Include so get fancy abort. + +2001-11-15 Dale Johannesen + + * config/darwin.h (SELECT_RTX_SECTION): Force address + initializers into 'const' section + * config/rs6000/rs6000.c (rs6000_emit_cmove): Fix mode of + if_then_else to match result, not operands + +Thu Nov 15 17:57:48 2001 Richard Kenner + + * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. + * emit-rtl.c (change_address): Fix typo in default alignment. + (adjust_address_1): Use mode of NEW, not MODE, when setting size. + * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case. + * rtl.h (REGNO_PTR_FRAME_P): New macro. + + * expr.c (store_field): Pass tree instead of max size; callers changed. + Change handling of alignment. + Only copy to_rtx if is TARGET. + (expand_expr_unaligned): Delete; callers now use expand_expr. + (emit_cmp_insn): No longer take ALIGN parm; all callers changed. + (expand_assignment): Change handling of alignment. + Only copy to_rtx if was original. + (get_inner_reference): No longer return alginment; callers changed. + (expand_expr, case COMPONENT_REF): Change handling of alignment. + (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. + (compare_from_rtx): Delete ALIGN parm; all callers changed. + (do_compare_rtx_and_jump): Likewise. + * expr.h: Reflect above changes. + * tree.h: Likewise. + * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter + to get_inner_reference. + * builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns. + * doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise. + * optabs.c: Likewise. + (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. + (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. + * expmed.c: Remove ALIGN arg from calls to compare_from_rtx, + compare_rtx_and_jump, and emit_cmp_jump_insns. + * fold-const.c: Remove PALIGN in calls to get_inner_reference. + * function.c (assign_stack_temp_for_type): No longer static. + * optabs.h (emit_cmp_insn): Remove ALIGN parm. + (prepare_cmp_insn): Delete declaration. + * rtl.h (assign_stack_temp_for_type): Add declaration. + * config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes. + * config/clipper/clipper.c, config/h8300/h8300.c: Likewise. + * config/i386/i386.c,config/mips/mips.c: Likewise. + * config/i860/i860.c, config/ia64/ia64.c: Likewise. + * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. + +2001-11-15 Stan Shebs + + * config/rs6000/rs6000.h: Fix a comment typo. + (RTX_COSTS): Sort processor versions better. + +2001-11-15 Kazu Hirata + + * config/h8300/h8300.md: Fix insn length of bit insns. + +2001-11-15 Jason Merrill + + * dwarf2out.c (dwarf2out_finish): Don't abort because of orphan + DIEs if there were errors in the source. + + * config/alpha/alpha-interix.h, config/alpha/elf.h, + config/arm/coff.h, config/i386/djgpp.h, config/i386/i386.c, + config/i386/i386.h, config/i386/sco5.h, config/i960/i960-coff.h, + config/m68k/coff.h, config/m88k/m88k.h, config/m88k/m88k.c, + config/pa/pa64-hpux.h, config/sh/sh.h, config/sparc/litecoff.h, + config/elfos.h, config/lynx.h, config/netware.h, + config/m68hc11/m68hc11.h, config/mcore/mcore-pe.h, + config/s390/linux64.h: Remove definitions of INT_ASM_OP, change + uses to use ASM_LONG. + +2001-11-15 Alan Matsuoka + + * gensupport.c process_include : Change call to alloca to + xmalloc. + +2001-11-15 Aldy Hernandez + + * config/rs6000/rs6000.md: Use spaces instead of tabs in output + templates. + +Thu Nov 15 08:36:39 2001 Richard Kenner + + * final.c (alter_subreg): If simplify_subreg can't do anything, + handle REG ourselves and abort for others. + +2001-11-15 Richard Hodson + + * config/h8300/h8300.c (dosize): Avoid corrupting R3 in interrupt + routines. + +2001-11-15 Neil Booth + + * fix-header.c (read_scan_file): Update. + +Thu Nov 15 08:36:39 2001 Richard Kenner + + * toplev.c (toplev_main): Don't start timing until after + command-line options are parsed. + +2001-11-15 Andreas Schwab + + * config.gcc: Set STMP_FIXPROTO and FIXPROTO_DEFINES in target + makefile frag, not host makefile frag. + (m88k-dg-dguxbcs*): Add m88k/t-dgux to tmake_file. + (hppa*): Add pa/t-bsd to tmake_file where no special xmake_file is + used. + (hppa*-*-openbsd*): Don't use nonexitent pa/t-openbsd. + * config/m88k/t-dguxbcs: Remove definitions already in t-dgux. + * config/m88k/t-dgux (STMP_FIXPROTO): Define. + * config/i386/t-cygwin (STMP_FIXPROTO): Define. + * config/i386/t-dgux (STMP_FIXPROTO): Define. + * config/x-interix: Don't define STMP_FIXPROTO and + FIXPROTO_DEFINES. + * config/t-interix: New file, define STMP_FIXPROTO. + * config/i386/x-beos (STMP_FIXPROTO): Don't define here. + * config/i386/t-beos (STMP_FIXPROTO): Define here instead. + * config/t-svr4 (FIXPROTO_DEFINES): Define. + * config/arm/t-riscix (FIXPROTO_DEFINES): Define. + * config/i386/t-sco5 (FIXPROTO_DEFINES): Define. + * config/i386/t-sco5gas (FIXPROTO_DEFINES): Define. + * config/m68k/t-hp3200: Renamed from x-hp3200. + * config/i370/t-oe: Renamed from x-oe. + * config/mips/t-iris: Renamed from x-iris. + * config/pa/t-bsd: Renamed from x-pa. + * config/pa/t-pa-hpux: Renamed from x-pa-hpux. + * config/x-linux, config/i386/x-cygwin, config/i386/x-dgux, + config/m88k/x-dgux, config/x-svr4, config/arm/x-riscix, + config/i386/x-sco5, config/m68k/x-hp320g, config/mips/x-iris6, + config/rs6000/x-cygwin: Remove files. + + * configure.in: Check for target objdump and use that in eh_frame + optimization test. + * configure: Regenerated. + +2001-11-15 Jakub Jelinek + + * jump.c (squeeze_notes): Return true if no real insns were found. + * rtl.h (squeeze_notes): Adjust prototype. + * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): If + squeeze_notes finds no real instructions, abort. + (merge_blocks_move_successor_nojumps): Likewise. + * loop.c (find_and_verify_loops): Likewise. + * stmt.c (expand_end_case): Likewise. + * ifcvt.c (dead_or_predicable): Return TRUE if squeeze_notes doesn't + find any real instructions. + + * config/ia64/ia64.c (ia64_adjust_cost): Handle SUBREGs. + + * cfgcleanup.c (try_optimize_cfg): If try_simplify_condjump optimized + conditional jump, request updating life into for the block + containing it. Fix a typo which prevented life info update. + Clear blocks bitmap before using it. + +2001-11-15 Neil Booth + + * c-common.c: Include c-lex.h. + (c_common_lang_init): Change prototype. Call init_c_lex and + init_pragma from here. + * c-common.h (c_common_lang_init): Change prototype. + * c-decl.c (init_decl_processing): Rename. Call c_parse_init. + * c-lang.c (c_init): Change prototype. Update. + (c_init_options): Update. + * c-lex.c (cpp_filename): Remove. + (init_c_lex): Update. Read the main file, and get the original + file name. + (yyparse): Finish the command line options. + * c-parse.in (c_parse_init): Call init_reswords here. + (init_parse): Remove. + * c-tree.h (c_init_decl_processing): New. + * cpphash.c (_cpp_init_hashtable): After initializing the hash + table, populate it. + * cppinit.c (read_original_filename, cpp_finish_options): New. + (cpp_create_reader): New prototype. Defer hash table initialization. + (cpp_start_read): Rename cpp_read_main_file. Initialize the + hash table. Get the original filename. + * cpplib.h (cpp_create_reader): Update. + (cpp_start_read): Remove. + (cpp_read_main_file, cpp_finish_options): New. + * cppmain.c (main, do_preprocessing): Update. + * langhooks.h (struct langhooks): Update init prototype. + * toplev.c (general_init, parse_options_and_default_flags, + process_options, lang_indpendent_init, lang_dependent_init, + init_asm_output): New; perform the bulk of initialization. + (compile_file): Move most of initialization to above functions. + (debug_hooks): Initialize statically. + (set_Wunused): Relocate. + (toplev_main): Move most of initialization to other init functions. + Have a clear logic flow. + * tree.h (init_parse, init_decl_processing): Remove. +objc: + * objc-act.c (objc_init): Update prototype, combine with old + init_parse. + (objc_init_options): Update. + + +2001-11-15 Andreas Jaeger + + * cfgrtl.c (purge_all_dead_edges): Use int as argument for + portability. + * basic-block.h: Adjust prototype. + +2001-11-15 Kazu Hirata + + * config/rs6000/aix31.h: Fix comment formatting. + * config/rs6000/beos.h: Likewise. + * config/rs6000/darwin.h: Likewise. + * config/rs6000/eabi.asm: Likewise. + * config/rs6000/linux.h: Likewise. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/lynx.h: Likewise. + * config/rs6000/netbsd.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/sol2.h: Likewise. + * config/rs6000/tramp.asm: Likewise. + * config/rs6000/xcoff.h: Likewise. + * config/rs6000/xm-beos.h: Likewise. + +2001-11-14 Alan Matsuoka + + * rtl.def (INCLUDE) : Define. + * gensupport.c (init_include_reader, process_include, + save_string) : New functions to implement an include facility + in .md files. + * gensupport.h : Add prototype for init_md_reader_args. + * genattr.c genattrtab.c gencodes.c genconfig.c genemit.c + genextract.c genflags.c genopinit.c genoutput.c + genpeep.c genrecog.c: Change call to init_md_reader to + init_md_reader_args. + * md.texi: Document (include "path") and -I directives for RTL + generation tools. + +2001-11-14 DJ Delorie + + * integrate.c (get_hard_reg_initial_reg): New. + * integrate.h (get_hard_reg_initial_reg): Prototype. + * local-alloc.c (block_alloc): Don't tie pseudos that + represent call-saved hard regs' initial values. + +2001-11-14 Kaveh R. Ghazi + + * m68k/linux.h: Include not "linux.h" to avoid infinite + recursion. + +2001-11-14 Roger Sayle + + * fold-const.c (fold): Optimize strlen comparisons against zero. + +2001-11-14 David O'Brien + + * config.gcc (sparc64-wrs-vxworks*, sparc-*-netbsd*, sparc-*-openbsd*, + sparc-*-chorusos*, sparc-*-elf*, sparc-*-linux*aout*, + sparc-*-linux*libc1*, sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtems*, + sparc-*-rtemself*, sparc-hal-solaris2*, sparc-*-solaris2*, + sparc-*-sunos4.0*, sparc-*-sunos4*, sparc-*-sunos3*, sparc-*-sysv4*, + sparc-*-vxsim*, sparclite-*-aout*, sparclite-*-elf*, sparc86x-*-aout*, + sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*, sparc64-*-linux*): + Include various CPU headers via tm_file. a.out based platforms now + properly include sparc/aout.h. sol2.h usage now implies including + elfos.h, svr4.h, and sparc/sysv4.h. + * config/netbsd.h (TARGET_MEM_FUNCTIONS): Undef before defining it. + Also define to '1'. + * sparc/sparc.h (CPP_PREDEFINES, TARGET_VERSION, WORD_SWITCH_TAKES_ARG, + SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE): + Remove. They are a.out specific and belong in sparc/aout.h. + * sparc/aout.h (TARGET_VERSION, WORD_SWITCH_TAKES_ARG, SELECT_SECTION, + ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, + DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE): Define. Moved here from + sparc/sparc.h. + * sparc/litecoff.h (WORD_SWITCH_TAKES_ARG, ASM_DECLARE_FUNCTION_NAME, + TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER): Define. + Moved here from sparc/sparc.h. + * config/sparc/linux-aout.h (DEFAULT_PCC_STRUCT_RETURN): Undef before + defining. + * config/sparc/linux64.h (UNALIGNED_DOUBLE_INT_ASM_OP): Undef before + * config/sparc/lynx.h: Don't include lynx.h. + (SELECT_SECTION): Do not undef. + * config/sparc/openbsd.h: Don't include sparc/sparc.h. + * config/sparc/sol2-sld-64.h: Include sparc/sparc.h, elfos.h, svr4.h, + and sparc/sysv4.h. + * config/sparc/sol2.h: Don't include sparc/sparc.h and sparc/sysv4.h. + * config/sparc/sp64-aout.h (CPP_PREDEFINES): Don't define. Get from + sparc/aout.h now. + * config/sparc/sp64-elf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO): + Don't undef, there is no need. + * config/sparc/splet.h (CPP_PREDEFINES): Define. + * config/sparc/sun4o3.h (CPP_PREDEFINES): Likewise. + * config/sparc/sunos4.h (CPP_PREDEFINES): Likewise. + Don't include sparc/sparc.h. + * config/sparc/sysv4.h (WORD_SWITCH_TAKES_ARG, ASM_OUTPUT_SOURCE_LINE, + SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, + DATA_SECTION_ASM_OP): Don't undef, there is no need now. Don't include + elfos.h and svr4.h. + (TARGET_VERSION): Define. + * config/sparc/vxsim.h (TARGET_VERSION): Define. + +Wed Nov 14 19:46:08 CET 2001 Jan Hubicka + + * cfglayout.c (fixup_fallthru_exit_predecesor): New static function. + (cfg_layout_finalize): Use it. + * bb-reorder.c (HAVE_epilogue): Remove. + (make_reorder_chain): Do not care special placement of + last basic block. + + * predict.c (expected_value_to_br_prob): Delete the note + once transformed. + + * c-decl.c (c_expand_body): Fix TV_EXPAND nesting problem; + measure integration time separately. + +Wed Nov 14 12:30:57 2001 Richard Kenner + + * function.c (struct temp_slot): ALIGN now unsigned. + +2001-11-14 Kazu Hirata + + * config/dsp16xx/dsp16xx.c: Fix comment formatting. + * config/dsp16xx/dsp16xx.h: Likewise. + * config/dsp16xx/dsp16xx.md: Likewise. + +2001-11-14 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Reorganize the code + that deals with 7-bit shifts in HImode. + +Wed Nov 14 14:17:05 CET 2001 Jan Hubicka + + * dbxout.c (dbxout_symbol_location): Update call of alter_subreg. + * final.c (walk_alter_subreg): Take pointer; update call of alter_subreg. + (final_scan_insn): Update call of alter_subreg. + (cleanup_subreg_operands): Likewise. + (alter_subreg): Rewrite using simplify_subreg. + (output_address, output_operand): Update call of alter_subreg. + * output.h (alter_subreg): Update prototype. + * sdbout.c (sdbout_symbol): Update call of alter_subreg. + * simplify-rtx.c (simplify_subreg): Copy ORIGINAL_REGNO. + * Makefile.in (final.o): Add dependency on expr.h + +Wed Nov 14 06:37:54 2001 Richard Kenner + + * c-lang.c (finish_file): Make I unsigned to eliminate warning. + +2001-11-13 Jeff Sturm + + * doc/install.texi (sparc-*-linux*): Mention requirements for + binutils and glibc. + +2001-11-14 Joseph S. Myers + + * Makefile.in (POD2MAN): Don't include --section=1. + (manext): Rename to man1ext. All users changed. + (man7ext): New. + (man7dir): New. + (generated-manpages): Also depend on $(docdir)/gfdl.7, + $(docdir)/gpl.7, and $(docdir)/fsf-funding.7. + ($(docdir)/gcov.1, $(docdir)/cpp.1, $(docdir)/gcc.1): Include + --section=1 in calls to $(POD2MAN). + ($(docdir)/gfdl.7, $(docdir)/gpl.7, $(docdir)/fsf-funding.7): New. + (maintainer-clean, install, uninstall): Handle the new man pages. + ($(docdir)/cpp.info, cpp.dvi): Depend on fdl.texi. + (installdirs): Create man7dir. + * doc/cpp.texi: Include GFDL in this manual. In the man page, + refer to gfdl(7) for the GFDL. Apply Front Cover and Back Cover + texts to man page. Include gpl(7), gfdl(7) and fsf-funding(7) in + the SEE ALSO man page section. + * doc/gcov.texi: Apply GFDL to man page. Include gpl(7), gfdl(7) + and fsf-funding(7) in the SEE ALSO man page section. + * doc/invoke.texi: Apply GFDL to man page. Include gpl(7), + gfdl(7) and fsf-funding(7) in the SEE ALSO man page section. + * doc/include/fdl.texi, doc/include/funding.texi, + doc/include/gpl.texi: Adjust for conversion by texi2pod.pl. + * doc/.cvsignore: Add gfdl.7, gpl.7 and fsf-funding.7. + +2001-11-13 Richard Henderson + + * dwarf2asm.c (dw2_force_const_mem): Set PUBLIC or STATIC + as appropriate for the artificial decl. + +2001-11-13 Richard Henderson + + * loop.c (combine_movables): Turn off combination until + move_movables validation bugs are fixed. + +2001-11-13 DJ Delorie + + * config.gcc (powerpc|rs6000): Set default cpp options based + on --with-cpu settings. + * config/rs6000/softfloat.h: New. + +2001-11-13 Kazu Hirata + + * config/h8300/h8300.c (shift_alg_si): Use special code for + 25-bit shifts on H8S. + (get_shift_alg): Generate special code for 25-bit shifts on + H8S. + +2001-11-13 Jakub Jelinek + + * emit-rtl.c (adjust_address_1): Add ADJUST argument. + (adjust_automodify_address_1): New. + * expr.h (adjust_address, adjust_address_nv): Adjust. + (adjust_automodify_address, adjust_automodify_address_nv): Define. + (adjust_address_1): Update prototype. + (adjust_automodify_address_1): Add prototype. + * expr.c (move_by_pieces_1): Use adjust_automodify_address. + (store_by_pieces_2): Likewise. + +Tue Nov 13 05:45:40 2001 Richard Kenner + + * Makefile.in (explow.o): Now depends on ggc.h. + * explow.c (ggc.h): Include. + (set_stack_check_libfunc): Mark stack_check_libfunc as ggc root. + + * Makefile.in (expr.o): Depends on insn-attr.h. + * expr.c (insn-attr.h): New include. + (force_operand): If INSN_SCHEDULING, deal with paradoxical SUBREG + of MEM. + (highest_pow2_factor, case INTEGER_CST): Handle negative values. + (expand_expr): Remove unneeded mark_temp_addr_taken calls and + clean up related usage in ADDR_EXPR. + (expand_expr_unaligned): Likewise. + + * emit-rtl.c (change_address): Fix typo in alias setting. + +2001-11-13 Kaveh R. Ghazi + + * Makefile.in (cfgcleanup.o): Depend on insn-config.h + +2001-11-12 Craig Rodrigues + + PR bootstrap/3451 + * c-pragma.c: Rename macros BAD, BAD2, BAD_ACTION to + GCC_BAD, GCC_BAD2, GCC_BAD_ACTION. + +2001-11-12 David O'Brien + + * config.gcc (sparc-tti-*, sparc64-wrs-vxworks*, sparc-wrs-vxworks*, + sparclite-wrs-vxworks*, sparc-*-aout*, sparc-*-netbsd*, + sparc-*-chorusos*, sparc-*-linux*aout*, sparc-*-linux*libc1*, + sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtemsaout*, sparc-*-rtems*, + sparc-*-rtemself*, sparc-*-solaris2*, sparc-*-sunos3*, sparc-*-sysv4*, + sparc-*-vxsim*, sparclet-*-aout*, sparclite-*-coff*, sparclite-*-aout*, + sparc86x-*-aout*, sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*, + sparc64-*-linux*): Include various CPU headers via tm_file. + * config/svr3.h (ASM_OUTPUT_IDENT): Undef before defining it. + (SELECT_SECTION): Likewise. + (SELECT_RTX_SECTION): Likewise. + * config/sparc/sparc_bi.h: New file. + * config/sparc/aout.h: Don't include sparc/sparc.h and aoutos.h. + * config/sparc/linux-aout.h: Likewise. + * config/sparc/linux.h: Don't include sparc/sysv4.h. + * config/sparc/linux64.h: Likewise. + (SPARC_BI_ARCH): Don't define. sparc_bi.h will do it instead. + * config/sparc/lite.h: Don't include sparc/sparc.h and gofast.h. + * config/sparc/litecoff.h: Don't include sparc/lite.h, svr3.h, + and dbxcoff.h + (ASM_OUTPUT_IDENT): Do not #undef. + (SELECT_SECTION): Likewise. + (SELECT_RTX_SECTION): Likewise. + * config/sparc/liteelf.h: Don't include gofast.h. + * config/sparc/lynx-ng.h: Don't include sparc/sparc.h and lynx-ng.h. + * config/sparc/lynx.h: Don't include sparc/sparc.h. + * config/sparc/pbd.h: Likewise. + * config/sparc/netbsd.h: Don't include sparc/sparc.h and netbsd.h. + * config/sparc/rtems.h: Don't include sparc/aout.h and rtems.h. + * config/sparc/rtemself.h: Don't include rtems.h. + * config/sparc/sol2-64.h: Don't include sparc/sol2-sld-64.h. + * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Don't define, include + sparc_bi.h instead. + * config/sparc/sol2-sld.h: Don't include sparc/sol2.h. + * config/sparc/sol2.h: Include sparc/sparc.h directly. + * config/sparc/sp64-aout.h: Don't include sparc/sparc.h and aoutos.h. + * config/sparc/sp64-elf.h: Don't include sparc/sol2.h. + * config/sparc/sp86x-aout.h: Don't include sparc/sparc.h and gofast.h. + * config/sparc/sp86x-elf.h: Don't include gofast.h. + * config/sparc/splet.h: Don't include sparc/aout.h. + * config/sparc/sun4o3.h: Don't include sparc/sparc.h. + * config/sparc/sysv4.h: Don't include sparc/sparc.h directly. + * config/sparc/vxsim.h: Don't include sparc/sysv4.h. + * config/sparc/vxsparc.h: Don't include sparc/aout.h and gofast.h. + * config/sparc/vxsparc64.h: Don't include gofast.h. + (SPARC_BI_ARCH): Don't define. sparc_bi.h will do it instead. + +2001-11-12 Joseph S. Myers + + * doc/standards.texi: Mention C99 TC1. + +2001-11-12 Kaveh R. Ghazi + + * mips-protos.h (mips_output_conditional_branch): Const-ify. + * mips.c (mips_output_conditional_branch): Likewise. + +2001-11-12 Kazu Hirata + + * config/h8300/h8300.c (shift_alg_si): Use special code for + 15-bit logical shifts and 31-bit logical shifts. + (get_shift_alg): Generate special code for 15-bit and 31-bit + logical shifts. + +2001-11-12 Kazu Hirata + + * config/h8300/h8300.c (shift_alg_qi): Use rotations when + doing 6-bit logical shifts on H8S. + (shift_alg_qi): Use special code for 21-bit shifts on H8S. + (get_shift_alg): Generate special code for 21-bit shifts on + H8S. + +2001-11-12 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Remove a redundant + label. + +Mon Nov 12 11:58:26 2001 Richard Kenner + + * alias.c (nonoverlapping_memrefs_p): Only update size from memref + if both size and offset known. + +2001-11-12 David O'Brien + + * config/ia64/freebsd.h: Fix misspelling. + +2001-11-12 Joseph S. Myers + + * doc/gcc.texi: Move several chapters out to ... + * doc/configterms.texi, doc/fragments.texi, doc/hostconfig.texi, + doc/include/linux-and-gnu.texi, doc/interface.texi, + doc/makefile.texi, doc/passes.texi, doc/portability.texi: + ... here. New files. + * doc/gcc.texi, doc/contrib.texi: Move section headings into + contrib.texi. + * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. + +2001-11-12 Kazu Hirata + + * config/alpha/alpha-interix.h: Fix comment formatting. + * config/alpha/alpha.c: Likewise. + * config/alpha/alpha.h: Likewise. + * config/alpha/alpha32.h: Likewise. + * config/alpha/freebsd.h: Likewise. + * config/alpha/unicosmk.h: Likewise. + * config/alpha/vms.h: Likewise. + +2001-11-12 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Remove redundant code. + +2001-11-12 Jakub Jelinek + + * dbxout.c (dbxout_symbol_location): Avoid emitting invalid register + numbers. + +Mon Nov 12 05:18:42 2001 Richard Kenner + + * emit-rtl.c (set_mem_attributes): If making object, can set alignment + from type. + (replace_equiv_address): Call update_temp_slot_address. + + * dwarf2out.c (loc_descriptor_from_tree, case COMPOUND_EXPR): New case. + + * alias.c (nonoverlapping_memrefs_p): Handle DECL_RTL being a CONCAT. + +2001-11-12 Kazu Hirata + + * config/h8300/h8300.c (shift_alg_qi): New. + (shift_alg_hi): Likewise. + (shift_alg_si): Likewise. + (get_shift_alg): Change the type of count to unsigned int. + Use the tables. + +2001-11-11 Alexandre Oliva + + * Makefile.in (c-lang.o): Depend on $(VARRAY_H). + * c-decl.c (c_expand_body): Take argument can_defer_p. Use it + to decide whether to defer a function. + (finish_function): Adjust. + (c_expand_deferred_function): New function. + * c-lang.c (deferred_fns): New variable. + (c_init): Initialize it, and mark it as a root. + (defer_fn): New function. + (finish_file): Expand all deferred functions. + * c-tree.h (defer_fn): Declare. + (c_expand_deferred_function): Likewise. + * objc/Make-lang.in (objc-act.o): Depend on $(VARRAY_H). + * objc-act.c (deferred_fns): New variable. + (objc_init): Initialize it, and mark it as a root. + (defer_fn): New function. + (finish_file): Expand all deferred functions. + +2001-11-11 Kaveh R. Ghazi + + * alpha.c (unicosmk_special_name): Prototype. + (unicosmk_ssib_name): Delete unused variable. + * alpha/unicosmk.h (common_section, ssib_section): Prototype. + * alpha/vms.h (PREFIX): Undef before defining. + * arm/pe.h (SUBTARGET_NAME_ENCODING_LENGTHS): Likewise. + * i370/i370.c (mvs_hash_alias): Prototype. Wrap with macro + controlling usage. Const-ify. + (alias_number): Delete unused variable. + * m32r/m32r.c (m32r_sched_init): Add missing argument. + (m32r_expand_block_move): Fix uninitialized warnings. + * mn10300/mn10300.h (REGNO_IN_RANGE_P): Fix 'unsigned >=0 is + always true' warnings. + * openbsd.h (TARGET_MEM_FUNCTIONS): Don't redefine. + * sh/sh.c: Include "integrate.h". + (output_far_jump): Fix uninitialized warning. + * final.c (shorten_branches): Avoid automatic aggregate + initialization. + * integrate.c (subst_constants): Likewise. + +2001-11-11 Kazu Hirata + + * config/h8300/h8300.c (shift_alg): Remove SHIFT_MAX. + (get_shift_alg): Remove redundant code. + +2001-11-11 Kazu Hirata + + * config/pa/milli64.S: Fix comment formatting. + * config/pa/pa-64.h: Likewise. + * config/pa/pa-linux.h: Likewise. + * config/pa/pa-protos.h: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa.h: Likewise. + * config/pa/pa32-linux.h: Likewise. + * config/pa/pa32-regs.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/pa/pa64-regs.h: Likewise. + * config/pa/som.h: Likewise. + +2001-11-11 Joseph S. Myers + + * doc/gcc.texi: Move several chapters out to ... + * doc/bugreport.texi, doc/contribute.texi, doc/frontends.texi, + doc/service.texi, doc/standards.texi, doc/trouble.texi, + doc/vms.texi: ... here. New files. + * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. + +2001-11-11 Joseph S. Myers + + * ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog, + cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, + collect2.c, combine.c, config.in, configure, configure.in, + conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c, + genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c, + reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix + spelling errors. + +Sun Nov 11 05:56:01 2001 Richard Kenner + + * config/rs6000/rs6000.c (rs6000_hash_constant, toc_hash_eq): + Adjust operand number in CONST_DOUBLE. + + * expmed.c (extract_bit_field): No longer pass in alignment. + (extract_fixed_bit_field, extract_split_bit_field): Likewise. + (store_bit_field, store_fixed_bit_field, store_split_bit_field): + Likewise. + * expr.c (store_constructor, store_constructor_field): Likewise. + (store_field, emit_group_load, emit_group_store): Likewise. + * expr.h (emit_group_load, emit_group_store): Delete ALIGN parm. + (store_bit_field, extract_bit_field): Likewise. + * calls.c, expr.c, function.c: Change calls to above functions. + * ifcvt.c, stmt.c: Likewise. + + * alias.c (nonoverlapping_memrefs_p): Not overlapping if one base is + constant and one is on frame. + If know memref offset, adjust size from decl. + +2001-11-11 Kaveh R. Ghazi + + * alpha/unicosmk.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Fix + format specifier warning. + * convex.h (ASM_OUTPUT_BYTE): Likewise. + * elfos.h (ALIGN_ASM_OP): Undef before defining. + * i386/att.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier + warning. + * i386/bsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386/gas.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386-interix.h (gen_stdcall_suffix): Prototype. + * i386.h (ASM_OUTPUT_BYTE): Fix format specifier warning. + * i386elf.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_LONG_DOUBLE): Likewise. + * i386/interix.c (gen_stdcall_suffix): Const-ify. + * i386/next.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Fix format + specifier warnings. + * i386/osfrose.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386/ptx4-i.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_LONG_DOUBLE): Likewise. + * i386/sco5.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386/sequent.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386/sun386.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386/svr3dbx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * m68k/3b1.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE, + ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Likewise. + * m68k/altos3068.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise. + * m68k/amix.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL): + Likewise. + * m68k/atari.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL): + Likewise. + * m68k/crds.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Likewise. + * m68k/dpx2.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, ASM_OUTPUT_FLOAT_OPERAND): + Likewise. + * m68k/hp320.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE): + Likewise. + * m68k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE): + Likewise. + * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Delete unused variable. + * m68k/mot3300.h (ASM_OUTPUT_BYTE): Fix format specifier warning. + * m68k/news.h (PRINT_OPERAND): Likewise. + * m68k/next.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, + ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise. + * m68k/next21.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise. + * m68k/plexus.h (ASM_SPEC): Insert space between macro name and + definition. + * m68k/sgs.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_FLOAT, ASM_OUTPUT_ASCII, ASM_OUTPUT_FLOAT_OPERAND, + ASM_OUTPUT_DOUBLE_OPERAND): Fix format specifier warnings. + * m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise. + * m68k/tower-as.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, + PRINT_OPERAND): Likewise. + * m88k/m88k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE): + Likewise. + * mips/elf.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise. + * mips/elf64.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise. + * mips/iris5gas.h (PUT_SDB_SIZE): Likewise. + * mips/linux.h (ASM_DECLARE_OBJECT_NAME): Likewise. + * mips.c (mips_output_external_libcall): Mark parameter with + ATTRIBUTE_UNUSED. + (mips_asm_file_start): Move variable into the scope where it's + used. + * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise. + * mips/netbsd.h (ASM_DECLARE_OBJECT_NAME): Likewise. + * mips/sni-gas.h (PUT_SDB_SIZE): Likewise. + * ns32k/encore.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * ns32k.c (print_operand): Likewise. + * pa.c (print_operand, output_div_insn): Likewise. + * pa.h (ASM_OUTPUT_MI_THUNK, ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_BYTE, PRINT_OPERAND_ADDRESS): Likewise. + * pa/pa64-hpux.h (UNIQUE_SECTION): Const-ify. + * sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Fix format + specifier warnings. + * sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * sparc/pbd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Don't list macro arguments in undef. + * sparc/vxsim.h (ASM_GENERATE_INTERNAL_LABEL): Fix format + specifier warnings. + * svr3.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + + * sdbout.c (sdbout_end_epilogue): Mark parameter with + ATTRIBUTE_UNUSED. + * varasm.c (assemble_global): Likewise. + +2001-11-11 H.J. Lu + + * config.gcc: Add "elfos.h svr4.h" to $tm_file for Linux/mips. + +Sun Nov 11 01:26:00 CET 2001 Jan Hubicka + + * final.c (*_MAX_SKIP): Use *_max_skip variables. + * flags.h (align_loops_max_skip, align_jumps_max_skip, + align_labels_max_skip): New global variables. + * toplev.c (align_loops_max_skip, align_jumps_max_skip, + align_labels_max_skip): New global variables. + (toplev_main): Set new variables. + * i386.c (override_options): Set max_skip values. + +2001-11-10 Geoffrey Keating + + * doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF. + * final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF. + * config/stormy16/stormy16.c (xstormy16_print_operand): For '%C', + don't print an @fptr for labels either. + (xstormy16_output_addr_vec): Don't print @fptr here. + * config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro. + +Sat Nov 10 08:50:50 2001 Jeffrey A Law (law@cygnus.com) + + * ssa-ccp.c (examine_flow_edges): Use old-style definition, not + an ANSI/ISO definitino. + (ssa_const_prop): Likewise. + +2001-11-10 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_reg_names): Remove leading "v" or + altivec registers. + +2001-11-09 Kaveh R. Ghazi + + * cppexp.c (parse_number): Use ISXDIGIT/hex_value. + * cpplex.c (hex_digit_value): Use hex_p/hex_value. + * cppmain.c (general_init): Call hex_init. + * tradcif.y (parse_number): Use TOLOWER/ISXDIGIT/hex_value/hex_p. + + * config.gcc (i[34567]86-dg-dgux*): Don't set `out_file'. + + * i386/dgux.h (ASM_FILE_START): Set to the meaningful portions + of dgux.c:output_file_start(). + + * i386/dgux.c: Delete file. + +2001-11-09 Richard Henderson + + * config/alpha/alpha.c (decl_in_text_section): New. + (current_file_function_operand): Use it. + (alpha_encode_section_info, alpha_end_function): Likewise. + +2001-11-07 David O'Brien + + * config.gcc: Add FreeBSD/IA-64 target. Expand config/i64/elf.h headers. + * config/i64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove, + they are OS specific. Use CPP_CPU_SPEC rather than CPP_PREDEFINES, + so OS specific files and use CPP_PREDEFINES for their needs. + * config/i64/elf.h (TARGET_VERSION): Add. Also, move inclusion of + target headers to tm_file. + * config/ia64/aix.h (TARGET_VERSION): Likewise. + * config/ia64/hpux.h (TARGET_VERSION): Likewise. + * config/ia64/linux.h (TARGET_VERSION): Likewise. + (FUNCTION_PROFILER): Remove. + * config/ia64/ia64.h (FUNCTION_PROFILER): Update definition using the + version in config/ia64/linux.h. + * config/ia64/freebsd.h: New file. + * config/freebsd.h: Tidy up. + (_USING_CONFIG_FREEBSD): Define. + (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__. + (FBSD_CPP_SPEC): Define generic FreeBSD spec. + (FBSD_STARTFILE_SPEC): Likewise. + (FBSD_ENDFILE_SPEC): Likewise. + (FBSD_LIB_SPEC): Likewise. + (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed. + (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers + set an ELF-improper one. + +2001-11-09 John David Anglin + + * pa.c (emit_move_sequence): Use cint_ok_for_move to check whether a + constant can be loaded in a single instruction to a register. When + loading immediate constants, use PLUS instead of HIGH/LO_SUM. Use + depdi for insertion of most significant 32-bits on 64-bit hosts. + * pa.h (LEGITIMATE_CONSTANT_P): Accept constants that can be built + with ldil/ldo/depdi instruction sequence on 64-bit hosts. + * pa.md: New addmove pattern for adding constant_int to HImode + register and moving result to HImode register. Remove HImode HIGH + and LO_SUM patterns. + +2001-11-09 Neil Booth + + * Makefile.in: Update. + * c-decl.c (print_lang_decl, print_lang_type): Remove. + (print_lang_identifier): Rename c_print_identifier. + * c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New. + (print_lang_statistics, lang_print_xnode): Remove. + * c-parse.in (set_yydebug): Rename c_set_yydebug. + * c-tree.h (c_set_yydebug, c_print_identifier): New. + * langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New. + LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, + LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, + LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New members. + (lang_print_tree_hook): New. + * langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New. + * print-tree.c: Include langhooks.h. + (print_node): Update. + * toplev.c (decode_d_option): Update. + * tree.c: Include langhooks.h. + (dump_tree_statistics): Update. + * tree.h (print_lang_statistics, print_lang_decl, print_lang_type, + print_lang_identifier, set_yydebug, lang_print_xnode): Remove. +objc: + * objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER, + LANG_HOOKS_SET_YYDEBUG): Override. + (lang_print_xnode, print_lang_statistics): Remove. + +2001-11-09 Richard Henderson + + * dwarf2asm.c (dw2_force_const_mem): Invoke STRIP_NAME_ENCODING + on the symbol string. + +2001-11-09 Kaveh R. Ghazi + + * pa/elf.h (ASM_DECLARE_FUNCTION_NAME, + ASM_OUTPUT_EXTERNAL_LIBCALL): Undef before defining. + * config.gcc (hppa1.1-*-rtems*): Remove duplicate clause. + + * clipper.h (ASM_OUTPUT_REG_POP): Fix typo. + + * tlink.c (recompile_files): Copy strings passed to `putenv'. + +2001-11-09 Geoffrey Keating + + * tree.h (TYPE_VOLATILE): Trap use not on TYPEs. + (TYPE_READONLY): Likewise. + + * flow.c (insn_dead_p): Allow for AUTO_INC notes all the time. + + * config/stormy16/stormy16.h (ASM_SPEC): Revert last change, + don't pass --gdwarf2 to the assembler if the compiler will also + provide debug info. + + * config/stormy16/stormy16.c (xstormy16_expand_casesi): + Don't change INDEX. + +Fri Nov 9 17:51:09 2001 Richard Kenner + + * alias.c (nonoverlapping_memrefs_p): New function. + (true_dependence, canon_true_depenence, write_dependence_p): Call it. + + * emit-rtl.c (set_mem_attributes): Get alignments for constants. + +2001-11-09 Aldy Hernandez + + * rs6000.h (REG_CLASS_CONTENTS): Add VRSAVE bit to ALL_REGS. + (CONDITIONAL_REGISTER_USAGE): Disable AltiVec registers unless + generating altivec code. + (FIXED_REGISTERS): VRSAVE is fixed. + (CALL_USED_REGISTERS): VRSAVE is call used. + +2001-11-09 Jason Eckhardt + + * config/mips/mips.c (mips_output_conditional_branch): Do not hard + code the branch target as ".+16/.+12", but rather use labels. + +Fri Nov 9 11:27:42 2001 Jeffrey A Law (law@cygnus.com) + + * config/pa/milli64.S: Use %r25 and %r0 instead of arg1 and r0 + to work around limitations of certain versions of GAS. + + * pa.md (mulsi3): Remove PA64 hack to work around SUBREG issues. + (muldi3): Update due to SUBREG_BYTE changes. + (casesi): Similarly. + +2001-11-09 Zack Weinberg + + * doc/invoke.texi: Remove comment referring to -xf77-version. + +2001-11-09 Kazu Hirata + + * config/convex/convex.c: Fix comment formatting. + * config/convex/convex.h: Likewise. + +2001-11-08 Zack Weinberg + + * Makefile.in (.po.pox): Look both in srcdir and builddir + for $(PACKAGE).pot. + (po/$(PACKAGE).pot): Don't move-if-change the new potfile over + to the source directory. + +2001-11-09 Ben Elliston + Michael Meissner + Andrew MacLeod + Richard Henderson + Nick Clifton + Catherine Moore + + * m32r.c: Add support for m32rx processor. + * m32r.h: Ditto. + * m32r.md: Ditto. + * t-m32r: Ditto. + * m32r-protos.h: Add prototypes for m32rx functions. + * doc/invoke.texi: Document -m32rx option. + +2001-11-09 Jakub Jelinek + + * config/sparc/sparc.md (movdf): Avoid calling validize_mem during + or after reload. + +2001-11-09 Gerald Pfeifer + + * doc/install.texi2html: Use $MAKEINFO --no-split. + +2001-11-09 Andreas Schwab + + * Makefile.in ($(HOST_PREFIX_1)rtl.o, + $(HOST_PREFIX_1)print-rtl.o, $(HOST_PREFIX_1)bitmap.o, + $(HOST_PREFIX_1)vfprintf.o, $(HOST_PREFIX_1)doprint.o, + $(HOST_PREFIX_1)strstr.o, $(HOST_PREFIX_1)errors.o, + $(HOST_PREFIX_1)ggc-none.o): Update dependencies. + +2001-11-09 H.J. Lu + + * config/mips/mips.c (mips_output_function_prologues): Cast + `tsize' to long for output. + +2001-11-09 Neil Booth + + * c-lang.c (LANG_HOOKS_NAME): New. + (lang_hooks): Constify. + (c_init_options): Update. + (lang_identify): Remove. + * c-parse.in (language_string): Remove. + * dbxout.c: Include langhooks.h. + (dbxout_symbol_location): Update. + * dwarf2out.c: Include langhooks.h. + (gen_compile_unit_die): Update. + * dwarfout.c: Include langhooks.h. + (prototyped_attribute, output_compile_unit_die): Update. + * langhooks-def.h (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New members. Constify. + * stringpool.c: Don't include toplev.h. + (set_identifier_size): Remove. + * toplev.c (toplev_main): Initialize identifier size. + (print_version): Update. + * tree.h (language_string, init_lex, lang_identify, + set_identifier_size): Remove. + * Makefile.in: Update dependencies. + * config/darwin.c: Include langhooks.h. + (func_name_maybe_scoped): Update. + * config/darwin.h (ASM_END_FILE): Update. + * config/nextstep.h (ASM_END_FILE): Update. + * config/nextstep21.h (ASM_END_FILE): Update. + * config/i386/sun386.h (ASM_END_FILE): Update. + * config/rs6000/rs6000.c (ASM_END_FILE): Include langhooks.h. + (rs6000_output_function_epilogue): Update. +objc: + * objc-act.c (LANG_HOOKS_NAME): Override. + (struct lang_hooks): Constify. + (objc_init_options): Update. + (lang_identify): Remove. + +Fri Nov 9 00:25:18 EST 2001 John Wehle (john@feith.com) + + * fold-const.c (lshift_double): Honor PREC. + (rshift_double): Likewise. + +2001-11-08 Kazu Hirata + + * config/1750a/1750a.c: Fix comment formatting. + * config/1750a/1750a.h: Likewise. + +2001-11-08 Phil Edwards + + * configure.in (--enable-languages): Be more permissive about + syntax. Check for empty lists better. Warn about $LANGUAGES. + * configure: Regenerated. + +2001-11-08 Richard Henderson + + * dwarf2asm.c (dw2_force_const_mem): Fix typo. + +2001-11-08 Geoffrey Keating + + * config.gcc: Rename stormy16 to xstormy16. + * config/stormy16/stormy-abi: Likewise. + * config/stormy16/stormy16-protos.h: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/stormy16/stormy16.md: Likewise. + +2001-11-06 Geoffrey Keating + + * tree.h (TYPE_VOLATILE): Add enable-checking code. + (TYPE_READONLY): Likewise. + +Thu Nov 8 18:00:55 2001 Richard Kenner + + * reload1.c (reload): Don't delete equiv insn if can throw. + + * expr.c (emit_block_move): If X is readonly emit CLOBBER for it. + (clear_storage): Likewise, for OBJECT. + +Thu Nov 8 16:23:51 2001 Jeffrey A Law (law@cygnus.com) + + * pa.c (emit_move_sequence): Fix SUBREG expression to + use proper byte offset when extending a constant from + SImode to DImode. + +2001-11-09 Jakub Jelinek + + * cfgrtl.c (purge_dead_edges): Remove REG_EH_REGION note for insns + which cannot throw. + +Thu Nov 8 18:00:55 2001 Richard Kenner + + * explow.c (convert_memory_address, case SUBREG): Only return + inner object if SUBREG_PROMOTED_VAR_P or known to be pointer. + +2001-11-08 Richard Henderson + + * Makefile.in (GCC_FOR_TARGET): Add build_tooldir/sys-include. + (CROSS_SYSTEM_HEADER_DIR): Use build_tooldir not tooldir. + (ORDINARY_FLAGS_TO_PASS, stmp-fixinc): Likewise. + +2001-11-08 Aldy Hernandez + + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -maltivec. + +2001-11-08 Jakub Jelinek + + * dwarf2out.c (debug_str_hash): New. + (struct indirect_string_node): New. + (struct dw_val_struct): Change type of val_str to it. + (DEBUG_STR_SECTION_FLAGS): Define. + (add_AT_string): Push string into hashtable, increment reference + counter. + (AT_string): Return string from ht_identifier. + (AT_string_form): New. + (free_AT): For dw_val_class_str, just decrement reference counter. + (size_of_string): Remove. + (size_of_die): Use AT_string_form to decide what size the string + occupies in DIE. + (size_of_pubnames): Use strlen instead of size_of_string. + (value_format): Use AT_string_form for dw_val_class_str. + (output_die): Output DW_FORM_strp strings using + dw2_asm_output_offset. + (indirect_string_alloc, output_indirect_string): New. + (dwarf2out_finish): Emit .debug_str strings if there are any. + +2001-11-08 Andreas Franck + + * configure.in: Add AC_ARG_PROGRAM to support program name + transformation with --program-prefix, --program-suffix and + --program-transform-name. + * configure: Regenerated. + * Makefile.in (GCC_INSTALL_NAME, CPP_INSTALL_NAME, + PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME, + GCCBUG_INSTALL_NAME, GCC_CROSS_NAME, CPP_CROSS_NAME, + PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Handle + program_transform_name the way suggested by autoconf. + (GCC_TARGET_INSTALL_NAME): Define. + (install-driver): Use the transformed target alias name. + +2001-11-08 Richard Henderson + + * config/mips/mips.c (save_restore_insns): Remove GP from the + restore registers mask early instead of special casing it inside + the loop. + +2001-11-08 Neil Booth + + * cp/decl.c (shadow_warning): New function. + (pushdecl): Improve -Wshadow warnings. Don't give both a warning + and an error when a block scope decl shadows a parameter. + +2001-11-08 Richard Henderson + + * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST + case as well. + +2001-11-08 John David Anglin + + * pa.md (negdf2, negsf2): Use multiplication rather than subtraction + to implement floating negation on processors prior to PA 2.0. + +2001-11-08 Jakub Jelinek + + * dwarf2asm.c (mark_indirect_pool_entry, mark_indirect_pool): New. + (USE_LINKONCE_INDIRECT): Define. + (dw2_output_indirect_constant_1): Try to output indirect constants + into linkonce sections if possible. + (dw2_force_const_mem): Likewise. Register indirect_pool with GGC. + (dw2_output_indirect_constants): Likewise. + +2001-11-07 Aldy Hernandez + + * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Add vrsave. + +2001-11-07 Neil Booth + + * c-decl.c (pushdecl): Remove file and line. + * c-typeck.c (pop_init_level): Remove size. + +2001-11-07 Aldy Hernandez + + * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec + for rs6000. + + * config/rs6000/rs6000.h (MASK_ALTIVEC): New. + (TARGET_ALTIVEC): New. + (TARGET_SWITCHES): Add altivec. + (FIRST_PSEUDO_REGISTER): Change to 109. + (CALL_USED_REGISTERS): Same. + (FIRST_ALTIVEC_REGNO): New. + (LAST_ALTIVEC_REGNO): New. + (ALTIVEC_REGNO_P): New. + (UNITS_PER_ALTIVEC_WORD): New. + (ALTIVEC_VECTOR_MODE): New. + (FIXED_REGISTERS): Add altivec registers. + (REG_ALLOC_ORDER): Same. + (HARD_REGNO_NREGS): Adjust for altivec registers. + (HARD_REGNO_MODE_OK): Same. + (MODES_TIEABLE_P): Same. + (REGISTER_MOVE_COST): Same. + (REGNO_REG_CLASS): Same. + (reg_class): Add ALTIVEC_REGS. + (REG_CLASS_NAMES): Same. + (REG_CLASS_CONTENTS): Same. + (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS. + (ALTIVEC_ARG_RETURN): New. + (FUNCTION_VALUE): Handle VECTOR_TYPE. + (LIBCALL_VALUE): Handle altivec vector modes. + (VECTOR_MODE_SUPPORTED_P): New. + (ALTIVEC_ARG_MIN_REG): New. + (ALTIVEC_ARG_MAX_REG): New. + (ALTIVEC_ARG_NUM_REG): New. + (FUNCTION_VALUE_REGNO_P): Return true for altivec return register. + (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers. + (REGISTER_NAMES): Add altivec regs. + (DEBUG_REGISTER_NAMES): Same. + (ADDITIONAL_REGISTER_NAMES): Same. + (rs6000_builtins): New. + (MD_EXPAND_BUILTIN): New. + (MD_INIT_BUILTINS): New. + (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid + for AltiVec instructions. + (LEGITIMATE_LO_SUM_ADDRESS_P): Same. + (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec + registers. + (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes. + (TARGET_SWITCHES): Add no-altivec. + (DATA_ALIGNMENT): Align vectors to 128 bits. + (TARGET_OPTIONS): Add abi= option. + Add rs6000_abi_string extern. + (LOCAL_ALIGNMENT): New. + (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec. + (MASK_ALTIVEC_ABI): New. + (TARGET_ALTIVEC_ABI): New. + (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to + call-saved. + (STACK_BOUNDARY): Adjust for altivec. + (BIGGEST_ALIGNMENT): Same. + (rs6000_args): Add vregno. + (USE_ALTIVEC_FOR_ARG_P): New. + (FIXED_REGISTERS): Add vrsave register. + (CALL_USED_REGISTERS): Same. + (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info. + (VRSAVE_REGNO): New. + (reg_class): Add VRSAVE_REGS. + (REG_CLASS_NAMES): Same. + (REG_CLASS_CONTENTS): Same. + (REGNO_REG_CLASS): Same. + + * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec. + (ABI_STACK_BOUNDARY): Same. + (BIGGEST_ALIGNMENT): Same. + (ADJUST_FIELD_ALIGN): Remove undef. Define anew. + (ROUND_TYPE_ALIGN): Same. + + * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT + to 64. + + * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT + to 64. + + * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT + to 64. + + * config/rs6000/rs6000.c (rs6000_expand_builtin): New. + (altivec_expand_builtin): New. + (altivec_init_builtins): New. + (TARGET_EXPAND_BUILTIN): New. + (TARGET_INIT_BUILTINS): New. + (rs6000_init_builtins): New. + (struct builtin_description): New. + (bdesc_2arg): New. + (rs6000_reg_names): Add altivec registers. + (alt_reg_names): Same. + (secondary_reload_class): Altivec regs can hold altivec regs and + memory. + (rs6000_emit_move): Force constants into memory for AltiVec moves. + (print_operand): Add 'y' case for printing altivec memory + operands. + (rs6000_legitimize_address): Legitimize vector addresses into + [REG+REG] or [REG]. + (altivec_expand_binop_builtin): New. + New string rs6000_current_abi. + (rs6000_override_options): Call rs6000_parse_abi_options. + (rs6000_parse_abi_options): New. + (function_arg_boundary): Vector arguments must be 16 + byte aligned. + (function_arg_advance): Handle vector arguments. + (function_arg_partial_nregs): Same. + (init_cumulative_args): Same. + (function_arg): Same. + + * config/rs6000/rs6000.md (altivec_lvx): New. + (type): Add altivec attribute. + (movv4si): New. + (*movv4si_internal): New. + (movv16qi): New. + (*movv16qi_internal): New. + (movv8hi): New. + (*movv8hi_internal1): New. + (movv4sf): New. + (*movv4sf_internal1): New. + (altivec_stvx): New. + (vaddubm): New. + (vadduhm): New. + (vadduwm): New. + (vaddfp): New. + (vaddcuw): New. + (vaddubs): New. + (vaddsbs): New. + (vadduhs): New. + (vaddshs): New. + (vadduws): New. + (vaddsws): New. + (vand): New. + (vandc): New. + (vavgub): New. + (vavgsb): New. + (vavguh): New. + (vavgsh): New. + (vavguw): New. + (vavgsw): New. + (vcmpbfp): New. + (vcmpequb): New. + (vcmpequh): New. + (vcmpequw): New. + (vcmpeqfp): New. + (vcmpgefp): New. + (vcmpgtub): New. + (vcmpgtsb): New. + (vcmpgtuh): New. + (vcmpgtsh): New. + (vcmpgtuw): New. + (vcmpgtsw): New. + (vcmpgtfp): New. + (vcmpgefp): New. + (vcmpgtub): New. + (vcmpgtsb): New. + (vcmpgtuh): New. + (vcmpgtsh): New. + (vcmpgtuw): New. + (vcmpgtsw): New. + (vcmpgtfp): New. + (vmaxub): New. + (vmaxsb): New. + (vmaxuh): New. + (vmaxsh): New. + (vmaxuw): New. + (vmaxsw): New. + (vmaxfp): New. + (vmrghb): New. + (vmrghh): New. + (vmrghw): New. + (vmrglb): New. + (vmrglh): New. + (vmrglw): New. + (vminub): New. + (vminsb): New. + (vminuh): New. + (vminsh): New. + (vminuw): New. + (vminsw): New. + (vminfp): New. + (vmuleub): New. + (vmulesb): New. + (vmuleuh): New. + (vmulesh): New. + (vmuloub): New. + (vmulosb): New. + (vmulouh): New. + (vmulosh): New. + (vnor): New. + (vor): New. + (vpkuhum): New. + (vpkuwum): New. + (vpkpx): New. + (vpkuhss): New. + (vpkshss): New. + (vpkuwss): New. + (vpkswss): New. + (vpkuhus): New. + (vpkshus): New. + (vpkuwus): New. + (vpkswus): New. + (vrlb): New. + (vrlh): New. + (vrlw): New. + (vslb): New. + (vslh): New. + (vslw): New. + (vsl): New. + (vslo): New. + (vsrb): New. + (vrsh): New. + (vrsw): New. + (vsrab): New. + (vsrah): New. + (vsraw): New. + (vsr): New. + (vsro): New. + (vsububm): New. + (vsubuhm): New. + (vsubuwm): New. + (vsubfp): New. + (vsubcuw): New. + (vsububs): New. + (vsubsbs): New. + (vsubuhs): New. + (vsubshs): New. + (vsubuws): New. + (vsubsws): New. + (vsum4ubs): New. + (vsum4sbs): New. + (vsum4shs): New. + (vsum2sws): New. + (vsumsws): New. + (vxor): New. + +2001-11-07 Daniel Berlin + + * Makefile.in (df.o): Add fibheap.h to dependencies. + + * df.h: Add prototypes for transfer functions, iterative_dataflow + functions. + (enum df_flow_dir): New enum. + (enum df_confluence_op): New enum. + (struct df): Add inverse_rts_map. + + * df.c: Add sbitmap.h to the list of includes. + (df_rd_global_compute): Removed. + (df_ru_global_compute): Removed. + (df_lr_global_compute): Removed. + (df_rd_transfer_function): New function. + (df_ru_transfer_function): New function. + (df_lr_transfer_function): New function. + (df_analyse_1): allocate/compute/free df->inverse_rts_map. + Use iterative_dataflow_bitmap instead of df_*_global_compute. + (iterative_dataflow_sbitmap): New function. + (iterative_dataflow_bitmap): New function. + +2001-11-07 Joseph S. Myers + + * doc/gcc.texi: Move terminology and spelling conventions to + htdocs/codingconventions.html. + +2001-11-07 Graham Stott + + * cse.c (cse_insn): Emit BARRIER after unconditional jump. + +Wed Nov 7 13:33:34 CET 2001 Jan Hubicka + + * expmed.c (expand_mult): Force operand to register before computing + cost. + * i386.c (x86_decompose_lea): New global vairable. + * i386.h (x86_decompose_lea): Declare. + (TARGET_DECOMPOSE_LEA): New macro. + (RTX_COST): Handle leas properly. + +2001-11-06 Richard Henderson + + * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not + defined for a CONSTRUCTOR; don't check it. + +2001-11-06 Danny Smith + + * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to + test for absolute pathnames. + +2001-11-06 Olivier Hainque + + * unwind-dw2.c (execute_cfa_program): Evaluate call frame + instructions up to the target pc inclusive. + +2001-11-06 Steve Christiansen + + * loop.c (loop_regs_scan): Don't invalidate PIC register. + +2001-11-06 Eric Christopher + + * config/mips/mips.md(movdf_internal2): Add constraints for float + to general register move. + * config/mips/elf64.h: Add default ABI. + +2001-11-06 Neil Booth + + * alias.c:: Include langhooks.h. + * emit-rtl.c: Similarly. + * toplev.c: Similarly. + * tree-inline.c: Similarly. + * langhooks-def.h: New, the old langhooks.h. Give the default + hooks a common prefix. + * langhooks.h: Contents extracted from toplev.h. + * toplev.h: Move langhook stuff to langhooks.h. + * langhooks.c: Give default hooks a common prefix. + + * c-lang.c: Include langhooks-def.h. + * objc/objc-act.c: Similarly. + * Makefile.in: Update. + * objc/Make-lang.in: Update. + +2001-11-06 Joseph S. Myers + + * doc/install.texi: Document that configure options not listed in + this file are unsupported. Document --with-system-zlib. + +Tue Nov 6 09:21:34 2001 Richard Kenner + + * rtl.h (mem_for_const_double): New declaration. + * varasm.c (mem_for_const_double): New function. + * config/convex/convex.md (movdf): Use it. + * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise. + * config/m68k/linux.h, config/m68k/m68k.h: Likewise. + * config/m68k/m68kv4.h: Likewise. + + * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition + of new GP reg classes. + + * expr.c (store_field): When making temp object for unaligned + component, set it to alias set 0. + +2001-11-06 Joseph S. Myers + + * c-common.c (c_expand_expr_stmt): Apply default conversions to + non-lvalue arrays if C99. + * c-typeck.c (default_conversion): Split out code handling + array-to-pointer and function-to-pointer conversions into a + separate default_function_array_conversion function. + (default_function_array_conversion): New function. Keep track of + whether any NON_LVALUE_EXPRs were stripped. Return non-lvalue + arrays unchanged outside C99 mode instead of giving an error for + them. + (build_component_ref): Use pedantic_non_lvalue when handling + COMPOUND_EXPR. Don't handle COND_EXPR specially. + (convert_arguments): Use default_function_array_conversion. + (build_unary_op): For ADDR_EXPR, take a flag indicating whether + non-lvalues are OK. + (unary_complex_lvalue): Likewise. + (internal_build_compound_expr): Use + default_function_array_conversion. Apply default conversions to + function in compound expression. + (build_c_cast, build_modify_expr, digest_init, build_asm_stmt): + Use default_function_array_conversion. + * doc/extend.texi: Update documentation of subscripting non-lvalue + arrays. + Fixes PR c/461. + +2001-11-05 Zack Weinberg + + * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS. + (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files + corresponding to the complete set of .po and .gmo files in + the source directory's po subdir, modified by LINGUAS. Don't + look at ALL_LINGUAS. + * configure.in: Don't set ALL_LINGUAS. + * configure: Regenerate. + + * Makefile.in (.po.gmo): Don't move into source directory. + (.po.pox): Clarify comments. + (install-po): Look for .gmo files in both srcdir and objdir; + don't fail if a file is totally missing. + (distclean): rmdir ada subdirectory too. + +2001-11-05 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_select_section): Handle + CONSTRUCTORs _correctly_. + +2001-11-05 Neil Booth + + * c-decl.c (delete_block): Remove. + * c-tree.h (delete_block): Remove. + +2001-11-05 Neil Booth + + * cppexp.c (lex, parse_defined): Update warning about defined. + +2001-11-05 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_select_section): Handle + CONSTRUCTORs too. + +2001-11-05 Nick Clifton + + * config/arm/arm.c (arm_return_in_memory): Cope with + int_size_in_bytes returning -1. + + * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle + DECL being NULL. + +Mon Nov 5 16:15:25 CET 2001 Jan Hubicka + + * Makefile.in (bb-reorder.o): Add dependency on cfglayout.h; + remove unneeded dependencies; + (cfglayout.o): New. + * cfglayout.c, cfglayout.h: New files; break out from ... + * bb-reorder.c: ... here; Remove unneeded includes; + +2001-11-04 Alan Modra + + * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used. + +2001-11-04 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit + mode as well. Do not explicitly create intermediate regs. + +2001-11-04 Kaveh R. Ghazi + + * arm/aof.h (aof_text_section, aof_data_section): Don't declare. + (common_section): Delete unused variable. + (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings. + (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning. + * arm-protos.h (arm_poke_function_name, aof_add_import, + aof_delete_import): Const-ify. + * arm.c (legitimize_pic_address): Wrap variables in the macro + controlling their usage. + (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED. + (arm_poke_function_name, pic_chain, import, aof_add_import, + aof_delete_import): Const-ify. + * i386.c (ix86_osf_output_function_prologue): Const-ify. + * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE, + ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings. + * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify. + * i860/sysv3.h: Add missing comment closure. + * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon. + * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call + to symbolic_operand. + + * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*. + (i960-*-*): Set tmake_file. + (sparc86x-*-elf*): Fix typo in header name. + + * sched-rgn.c (schedule_insns): Delete unused variable. + +2001-11-04 Neil Booth + + PR c/2820 + * c-typeck.c (lookup_field): Rework to return a chain down to + the looked-up field. + (build_component_ref): Use the new lookup_field to handle + nested anonymous entities correctly. + +Sun Nov 4 11:53:31 2001 Richard Kenner + + * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64): + Change parameters to gen_rtx_CONST_DOUBLE. + (GEN_INT64, sparc_emit_set_const64): Likewise. + * config/sparc/sparc.md (movdf split): Likewise. + +2001-11-03 Geoffrey Keating + + * unroll.c (calculate_giv_inc): Use find_last_value rather + than just hoping the last instruction is the right SET. + [Fixes 990604-1.c on stormy16.] + + * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss + library at all if -T is used. + + * config/stormy16/stormy16.c (stormy16_print_operand): Avoid + some uses of uninitialized variables in error cases. + + * config/stormy16/stormy16.c (stormy16_output_shift): Don't + look at 'temp' if we won't be using it. + + * config/stormy16/stormy16.h (CONST_COSTS): Define. + (RTX_COSTS): Define. + (ADDRESS_COST): Define. + (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost. + + * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler. + + * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call + stormy16_asm_output_mi_thunk. + * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New + function. + * config/stormy16/stormy16-protos.h + (stormy16_asm_output_mi_thunk): New prototype. + +2001-11-04 Joseph S. Myers + + * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog, + FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c, + caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c, + cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c, + sched-int.h, toplev.c, config/alpha/alpha.c, + config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h, + config/cris/cris.md, config/i370/i370.md, config/i386/i386.c, + config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h, + config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md, + config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h, + config/ns32k/ns32k.md, config/rs6000/rs6000.c, + config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors. + +2001-11-03 Kaveh R. Ghazi + + * Makefile.in (dbxout.o): Depend on function.h. + * collect2.c (is_in_list): Hide unused function. + * dbxout.c: Include function.h. + (source_label_number, dbxout_source_line, dbxout_source_file, + dbxout_function_end, dbxout_begin_function): Wrap/move inside + macros controlling usage. + * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining. + * output.h (exports_section): Prototype. + + * convex.c (convex_output_function_prologue): Fix format specifier + warning. + (asm_declare_function_name): Fix signed/unsigned warning. + (print_operand): Fix format specifier warning. + * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning. + * dsp16xx-protos.h (uns_comparison_operator, + num_1600_core_shifts): Prototype. + * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h. + (frame_size, frame_pointer_offset): Delete. + (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue): + Make static. Fix format specifier warnings. + * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning. + (EXTRA_SECTION_FUNCTIONS): Prototype const_section. + * dsp16xx.md: Add default case in switches. + * fr30.h (IN_RANGE): Delete. + * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings. + * mcore-protos.h (mcore_output_cmov): Const-ify. + * mcore.c (mcore_output_cmov): Likewise. + * mcore.h (switch_to_section): Make static and prototype. + * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix + unsigned>=0 warnings. + * mn10300.h (REGNO_IN_RANGE_P): Likewise. + * rs6000-protos.h (read_only_data_section, + read_only_private_data_section): Prototype. + * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning. + * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED. + * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning. + +2001-11-03 Kaveh R. Ghazi + + * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with + ATTRIBUTE_UNUSED. + * final.c (final_scan_insn): Add brackets around body of if-stmt. + * gcc.c (convert_filename): Add static prototype. Const-ify. + Wrap variable in macros controlling its use. + * output.h (sdata_section): Add prototype. + + * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype. + (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning. + * c4x.h (INIT_SECTION_FUNCTION): Add prototype. + (ASM_FILE_START): Const-ify. + (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format + specifier warning. + * c4x.md: Don't use the 'U' integer suffix. + * clipper.md (clipper_movstr): Delete declaration. + * d30v-protos.h (d30v_move_2words): Const-ify. + (debug_stack_info): Add prototype. + * d30v.c: Include "integrate.h". + (d30v_function_arg_boundary, d30v_function_arg, + d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid + signed/unsigned warnings. + (d30v_print_operand_memory_reference, d30v_move_2words): + Const-ify. + * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript. + * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype. + * fr30.md: Const-ify. + * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype. + * i370.c (i370_label_scan, mvs_get_label): Make definition static. + (mvs_get_label_page): Hide unused static function. + * i860.c (current_function_original_name): Const-ify. + * i860/sysv3.h (current_function_original_name): Likewise. + * i860/sysv4.h (current_function_original_name): Likewise. + * i960.md: Add default case in switches. Remove unused variable. + * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining. + * m32r.md: Const-ify. + * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify. + * m68hc11.c: Include "reload.h". + (static_chain_reg, print_options, m68hc11_asm_file_start): + Const-ify. + * m68hc11.md: Delete unused variable. Const-ify. Add parens + around & in comparison. + * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining. + * mn10200.c (shift_mode): Remove trailing comma. + * mn10300-protos.h (output_tst): Const-ify. + * mn10300.c (output_tst): Likewise. + * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier + warnings. + * pa-protos.h (output_ascii): Use regular char *, not unsigned. + * pa.c (output_ascii): Likewise. + * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype. + * pdp11.md (expand_unop): Delete declarations. + * pj-protos.h (pj_output_addsi3): Const-ify. + * pj.c (pj_output_push_int, pj_output_load, pj_output_inc, + pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond, + unique_src_operand): Add prototypes. + (pj_output_store_into_lval): Make definition static. + (pj_function_incoming_arg): Don't use unary plus. + (pj_output_addsi3): Const-ify. + * romp.md (get_symref): Delete declarations. + * v850-c.c (mark_current_function_as_interrupt): Don't return + value from void function. + * v850.c: Include "integrate.h". + * v850.h (ASM_OUTPUT_LABELREF): Const-ify. + * vax-protos.h (const_section): Add prototype. + +2001-11-03 Aldy Hernandez + + * machmode.def: Add documentation for the seventh argument in + vector modes. + +2001-11-04 Hans-Peter Nilsson + + * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder + consistently. + <-mno-toplevel-symbols>: Change @code{:} to @samp{:}. + <-melf>: Don't have markup for ELF acronym. + +2001-11-03 Hans-Peter Nilsson + + * config.gcc (mmix-*-*): New target. + * doc/invoke.texi: Document MMIX options. + * doc/contrib.texi: Add note about MMIX port to my entry. + * config/mmix/t-mmix: New file. + * config/mmix/mmix.h: New file. + * config/mmix/mmix-protos.h: New file. + * config/mmix/mmix.c: New file. + * config/mmix/mmix.md: New file. + * config/mmix/crti.asm: New file. + * config/mmix/crtn.asm: New file. + +2001-11-03 Kazu Hirata + + * config/sparc/linux-aout.h: Fix comment formatting. + * config/sparc/linux.h: Likewise. + * config/sparc/linux64.h: Likewise. + * config/sparc/lynx.h: Likewise. + * config/sparc/pbd.h: Likewise. + * config/sparc/sol2-sld-64.h: Likewise. + * config/sparc/sol2.h: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sparc.md: Likewise. + * config/sparc/sunos4.h: Likewise. + * config/sparc/vxsim.h: Likewise. + * config/sparc/vxsparc.h: Likewise. + * config/sparc/vxsparc64.h: Likewise. + +Sat Nov 3 10:37:56 2001 Richard Kenner + + * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove + reference to CONST_DOUBLE_MEM in comment. + * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand. + (gen_rtx, case CONST_DOUBLE): Call it with one less operand. + (init_emit_once): Don't clear CONST_DOUBLE_MEM. + * function.c (pop_function_context_from): Don't call + restore_varasm_status. + * function.h (restore_varasm_status): Delete declaration. + * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot. + * rtl.c: Likewise. + * rtl.def (CONST_DOUBLE): Update comment. + * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number. + (CONST_DOUBLE_CHAIN): Likewise. + (CONST_DOUBLE_MEM): Delete. + (gen_rtx_CONST_DOUBLE): Update parameters. + * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT. + Remove reference to CONST_DOUBLE_MEM. + (const_alias_set): New variable. + (immed_double_const): Change call to gen_rtx_CONST_DOUBLE. + (immed_real_const_1): Adjust tests for 0, 1, and 2. + Don't set CONST_DOUBLE_MEM. + (clear_const_double_mem): Don't do anything with const_tiny_rtx. + (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST. + Put constant in const_alias_set. + (struct pool_constant): ALIGN now unsigned. + OFFSET now HOST_WIDE_INT. + Delete LABEL. + (restore_varasm_status): Deleted. + (mark_pool_constant): Mark desc->rtl. + (force_const_mem): Rework to store rtl in hash table, + not CONST_DOUBLE_MEM. + Put constant in const_alias_set. + (find_pool_constant): Check desc->rtl. + (mark_constants, mark_constant): Don't special-case CONST_DOUBLE. + (init_varasm_once): Initialize const_alias_set. + + * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call + force_const_mem. + + * reload.c (combine_reloads): Don't combine an output reload if there + are other reloads around for part of the output. + + * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a + constant expression. + (set_mem_decl): New function. + * expr.h (set_mem_decl): New declaration. + * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo. + (output_asm_operand_names): Add tab. + * reload1.c (alter_reg): Set decl of MEM from REG_DECL. + + * builtins.c (get_memory_rtx): Properly set MEM alias set and + attributes. + +2001-11-03 Joseph S. Myers + + * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi: + Use "invalid" instead of "illegal". Use @r in comments in + examples. + +2001-11-02 Neil Booth + + * c-decl.c (pushdecl): Move block inside if conditional to remove + possibility of a segfault. Lookup block-level extern + variables in enclosing scopes correctly. + + * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL. + +2001-11-02 Aldy Hernandez + + * expmed.c (store_bit_field): Use simplify_gen_subreg to make + SUBREG so we avoid SUBREGing memory. + + * expmed.c (store_bit_field): Same. + +2001-11-02 DJ Delorie + + * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that + using FP registers for DImode mem-mem moves is acceptable. + +2001-11-02 Aldy Hernandez + + * builtins.c (apply_args_size): Handle vector arguments. + (apply_result_size): Same. + + * machmode.def: Set WIDER mode field for all vector entries. + +2001-11-02 Graham Stott + + * recog.c (decode_asm_operands): Check that the SRC is ASM_OPERANDS. + +2001-11-01 Eric Christopher + + * config.gcc: Revert part of earlier patch. + * config/mips/linux.h: Ditto. + * df.c: Include tm_p.h to avoid warnings. + * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults. Adjust + #if/#endif. + * config/mips/mips.c: Define mips_abi regardless. + (mips_output_function_prologues): Add long casts for .frame + output. + (override_options): Allow use of ABI_32. + +2001-11-01 Kazu Hirata + + * config/m68hc11/m68hc11.c: Fix comment formatting. + * config/m68hc11/m68hc11.h: Likewise. + * config/m68hc11/m68hc11.md: Likewise. + +2001-11-01 Neil Booth + + * c-typeck.c (default_conversion): Retain the original expression + codes. + * gcc.dg/Wparentheses.c: New tests. + +2001-11-01 David S. Miller + + * doc/install.texi (Specific, sparc-sun-solaris2*): Bring + 64-bit SPARC description more in line with reality. + +2001-11-01 Joseph S. Myers + + * Makefile.in (GCOV_OBJS): Add version.o. + * gcov.c: Include "version.h" and . + (gcov_version_string): Remove. + (print_usage): Take a parameter to determine whether this is a + call from --help or an error message. Give fuller output that + follows the GNU Coding Standards for --help. + (print_version): New function. + (options): New. + (process_args): Use getopt_long. Support long options. Follow + GNU Coding Standards for --help and --version. + * doc/gcov.texi: Document long options. + Addresses part of PR other/704. + +2001-11-01 John David Anglin + + * pa.c (output_move_double): Fix typo in double load. + +2001-11-01 Kazu Hirata + + * config/h8300/h8300.c (h8300_encode_label): Compute a string + before passing it to ggc_alloc_string. + +2001-11-01 Kazu Hirata + + * config/m68k/3b1.h: Fix comment formatting. + * config/m68k/3b1g.h: Likewise. + * config/m68k/a-ux.h: Likewise. + * config/m68k/amix.h: Likewise. + * config/m68k/apollo68.h: Likewise. + * config/m68k/atari.h: Likewise. + * config/m68k/aux-exit.c: Likewise. + * config/m68k/ccur-GAS.h: Likewise. + * config/m68k/crds.h: Likewise. + * config/m68k/dpx2.h: Likewise. + * config/m68k/dpx2g.h: Likewise. + * config/m68k/hp310.h: Likewise. + * config/m68k/hp320.h: Likewise. + * config/m68k/isi.h: Likewise. + * config/m68k/linux.h: Likewise. + * config/m68k/lynx.h: Likewise. + * config/m68k/m68k-psos.h: Likewise. + * config/m68k/m68k.c: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m68k/m68k.md: Likewise. + * config/m68k/m68kelf.h: Likewise. + * config/m68k/m68kv4.h: Likewise. + * config/m68k/mot3300.h: Likewise. + * config/m68k/news.h: Likewise. + * config/m68k/next.h: Likewise. + * config/m68k/pbb.h: Likewise. + * config/m68k/plexus.h: Likewise. + * config/m68k/sgs.h: Likewise. + * config/m68k/sun3.h: Likewise. + * config/m68k/tower.h: Likewise. + * config/m68k/vxm68k.h: Likewise. + +2001-10-31 DJ Delorie + + * config/mips/mips.h (mips_cache_flush_func): Prototype. + (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func. + (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero. + * config/mips/mips.c (mips_cache_flush_func): New. + * doc/invoke.texi: Document the new options. + +2001-10-31 Hans-Peter Nilsson + + * config.gcc (cris-*-linux*, tm_file): Rearrange order. + * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine. + + * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting. + + * config/cris/cris.c: Include output.h after tree.h but before + target.h. + +2001-10-31 Zack Weinberg + + * Makefile.in (INTL_TARGETS, POSUB): Delete all references. + (INTL_SUBDIRS): Just intl. + (.SUFFIXES): Add .gmo .po .pox. + (native): Also depend on build-@POSUB@. + (intl.all, intl.install): Depend on config.h and things it includes. + (po-generated): New target; depend on c-parse.c and tradcif.c. + (install-normal): Also depend on install-@POSUB@. + (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables. + (build-, install-, build-po, update-po, install-po, + .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules. + + * aclocal.m4: Prefix each entry in CATALOGS with "po/" + * configure.in: Don't munge XGETTEXT. Don't generate + po/Makefile.in. + * configure: Regenerate. + + * exgettext: Delete. + * config/m68k/m68k.h: Add doc strings for -msky and -mnosky. + * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated. + +2001-10-31 Kazu Hirata + + * config/h8300/h8300.md (two anonymous patterns): New. + +2001-10-31 Aldy Hernandez + + * tree.h (tree_index): Add support for V16QI and V8HI. + (V8HI_type_node): New. + (V16QI_type_node): New. + + * tree.c (build_common_tree_nodes_2): Same. + + * c-common.c (type_for_mode): Same. + +2001-10-31 Kazu Hirata + + * config/i386/att.h: Fix comment formatting. + * config/i386/beos-elf.h: Likewise. + * config/i386/bsd.h: Likewise. + * config/i386/bsd386.h: Likewise. + * config/i386/crtdll.h: Likewise. + * config/i386/cygwin.asm: Likewise. + * config/i386/cygwin.h: Likewise. + * config/i386/djgpp.h: Likewise. + * config/i386/freebsd-aout.h: Likewise. + * config/i386/freebsd.h: Likewise. + * config/i386/gas.h: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/i386/i386-protos.h: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/i386elf.h: Likewise. + * config/i386/interix.c: Likewise. + * config/i386/isc.h: Likewise. + * config/i386/isccoff.h: Likewise. + * config/i386/iscdbx.h: Likewise. + * config/i386/linux.h: Likewise. + * config/i386/lynx.h: Likewise. + * config/i386/mingw32.h: Likewise. + * config/i386/netbsd-elf.h: Likewise. + * config/i386/next.h: Likewise. + * config/i386/osf1elf.h: Likewise. + * config/i386/osfrose.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i386/seq-gas.h: Likewise. + * config/i386/seq-sysv3.h: Likewise. + * config/i386/sequent.h: Likewise. + * config/i386/sol2.h: Likewise. + * config/i386/sun386.h: Likewise. + * config/i386/uwin.asm: Likewise. + * config/i386/uwin.h: Likewise. + * config/i386/vxi386.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i386/winnt.c: Likewise. + * config/i386/xm-cygwin.h: Likewise. + * config/i386/xm-mingw32.h: Likewise. + +2001-10-31 Kazu Hirata + + * builtins.def: Fix comment typos. + * config/alpha.c: Likewise. + * config/arm/arm.c: Likewise. + * config/avr/avr.h: Likewise. + * config/d30v/d30v.c: Likewise. + * config/d30v/d30v.h: Likewise. + * config/d30v/d30v.md: Likewise. + * config/dsp16xx/dsp16xx.c: Likewise. + * config/fr30/fr30.c: Likewise. + * config/fr30/fr30.md: Likewise. + * config/i386/i386.c: Likewise. + * config/i860/i860.c: Likewise. + * config/i960/i960.c: Likewise. + * config/ia64/ia64.c: Likewise. + * config/mips/mips.c: Likewise. + * config/pa/pa.c: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/s390/s390.c: Likewise. + * config/sparc/sparc.c: Likewise. + +2001-10-30 Kazu Hirata + + * config/mips/elf.h: Fix comment formatting. + * config/mips/elf64.h: Likewise. + * config/mips/iris5.h: Likewise. + * config/mips/iris5gas.h: Likewise. + * config/mips/iris6.h: Likewise. + * config/mips/isa3264.h: Likewise. + * config/mips/linux.h: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.h: Likewise. + * config/mips/mips.md: Likewise. + * config/mips/mips16.S: Likewise. + * config/mips/netbsd.h: Likewise. + * config/mips/osfrose.h: Likewise. + * config/mips/r3900.h: Likewise. + * config/mips/sni-svr4.h: Likewise. + * config/mips/svr4-t.h: Likewise. + * config/mips/ultrix.h: Likewise. + +2001-10-30 Daniel Berlin + + * bitmap.c (bitmap_element_free): Don't forget to update head->indx + when we update head->current. + +2001-10-30 Neil Booth + + * tree.c (id_string_size): Remove. + (dump_tree_statistics): Update. + * toplev.c (compile_file): If dumping stats, dump tree stats too. + +Tue Oct 30 19:00:43 CET 2001 Jan Hubicka + + * sched-rgn.c (schedule_insns): Fix comment. + +2001-10-30 Zack Weinberg + + * configure.in: Correct previous change: don't assume that + gas's version number _isn't_ the last thing on the line, or + isn't the only number on the line, either. + * configure: Regenerate. + +2001-10-30 Kazu Hirata + + * cfgcleanup.c: Fix a comment typo. + +2001-10-30 Kazu Hirata + + * alias.c: Fix comment formatting. + * recog.c: Likewise. + * config/cris/cris.c: Likewise. + * config/cris/cris.h: Likewise. + * config/i960/i960.c: Likewise. + * config/i960/i960.h: Likewise. + +2001-10-30 Kazu Hirata + + * config/arm/arm.c: Fix a comment typo. + * config/arm/arm.h: Likewise. + * config/ia64/ia64.c: Likewise. + +2001-10-30 Jakub Jelinek + + * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or + REG_EQUIV notes for ASM_OPERANDS. Return the new note (if any). + * rtl.h (set_unique_reg_note): Change return value. + * gcse.c (try_replace_reg): Use set_unique_reg_note. + * cse.c (cse_insn): Likewise. + * expr.c (emit_move_insn): Likewise. + * explow.c (force_reg): Likewise. + * local-alloc (update_equiv_regs): Likewise. + * loop.c (move_moveables, load_mems): Likewise. + * reload (find_reloads): Likewise. + +2001-10-30 Paolo Bonzini + + Localization fixes. + * c-decl.c (parmlist_tags_warning, start_struct, + check_for_loop_decls): Separate messages for struct, union and + enum cases to allow for languages in which they have different + genders. + * c-format.c (scanf_flag_specs): Separate short and long name of + the assignment suppression feature. + (check_format_types): Localize "pointer" and "different types" + strings. + * c-lex.c (lex_number): Localize "an unsigned long int" and + related strings. + (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on + warning message. + * c-typeck.c (build_unary_up): Separate messages for increment and + decrement cases to allow for languages in which they use different + articles. Localize the strings "increment" and "decrement" in one + case. + +Tue Oct 30 11:08:11 CET 2001 Jan Hubicka + + * lcm.c (optimize_mode_switching): Do not rebuild liveness information + when no changes has been made. + + * gcse.c (reg_set_bitmap): Turn into reg_set. + (modify_mem_list_set, canon_modify_mem_list_set) + (clear_modify_mem_tables, free_modify_mem_tables): New. + (gcse_main); Use free_modify_mem_tables. + (free_gcse_mem): Likewise; free the bitmaps. + (alloc_gcse_main): Initialize the bitmaps. + (canon_list_insert): Set canon_modify_mem_list_set. + (record_last_mem_set_info): Likewise; set modify_mem_list_set. + (compute_hash_table): Use clear_modify_mem_tables. + (reset_opr_set_tables): Likewise. + (oprs_not_set_p): reg_set_bitmap is regset. + (mark_set, mark_clobber): Likewise. + + * df.h (DF_EQUIV_NOTES): New constant. + (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes + when asked for. + + * sched-rgn.c (CHECK_DEAD_NOTES): New constant. + (init_regions, schedule_insns): Conditionalize the checking + code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info. + +Tue Oct 30 11:02:31 CET 2001 Jan Hubicka + + * i386.md (movti_rex64 splitter): Fix condition. + +2001-10-29 Zack Weinberg + + * configure.in: Do not assume that gas's version number is the + last thing on the first line of as --version output. + * configure: Regenerate. + + * tradcpp.c: Include intl.h. Rename WARNING, ERROR, FATAL to + MT_WARNING, MT_ERROR, MT_FATAL. + (main): Call gcc_init_libintl. + (v_message): Call gettext on msgid and "warning: " + * tradcif.y: Include intl.h. + (yyerror): Make parameter definition consistent with + prototype. Call gettext on msgid argument. + +2001-10-29 Kaveh R. Ghazi + + * combine.c (num_sign_bit_copies): Avoid signed/unsigned + warnings. + + * sparc/sol2.h: Include when L_trampoline is defined. + +Mon Oct 29 19:22:07 2001 Richard Kenner + + * reload1.c (eliminate_regs): Test for reg_renumber being allocated + before referencing it. + +2001-10-26 DJ Delorie + + * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to + override -G, and force -G0. + +2001-10-29 Joseph S. Myers + + * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10, + FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c, + c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c, + timevar.h, tree.h, varasm.c: Fix spelling errors and typos. + + * loop.h (struct induction): Rename ext_dependant to + ext_dependent. + * loop.c: Change all uses. + (check_ext_dependant_givs): Rename to check_ext_dependent_givs. + All callers changed. + * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter. + +2001-10-29 Joseph S. Myers + + * c-parse.in (expr_no_commas, primary), c-typeck.c + (parser_build_binary_op): Use IS_EXPR_CODE_CLASS. + +2001-10-29 David Edelsohn + + Undo assemble_name change in earlier patch. + +Mon Oct 29 21:11:40 2001 Nicola Pero + + * objc/objc-act.c (finish_message_expr): For the GNU runtime: when + determining the type of the receiver, do not check that TREE_CODE + of receiver is CALL_EXPR before calling receiver_is_class_object(). + (receiver_is_class_object): For the GNU runtime: recognize + the case that the receiver is self in a class method context. + Check that TREE_CODE of receiver is CALL_EXPR when checking that + the receiver is a call to objc_get_class. + +2001-10-29 John David Anglin + + * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero. + +Mon Oct 29 07:23:33 2001 Richard Kenner + + * Makefile.in (OBJS): Put all files in alphabetical order. + + * dwarf2out.c (add_const_value_attribute): Fix error in last + change. + +Mon Oct 29 12:43:06 CET 2001 Jan Hubicka + + * basic-block.h (purge_all_dead_edges): Add update_life_p argument. + * cfgcleanup.c (merge_blocks): Update the life flag after merging; + fix warning. + * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness. + (life_analysis): call purge_all_dead_edges after deleting noops. + (delete_noop_move): Do not purge CFG. + * toplev.c (rest_of_compilation): Update purge_all_dead_edges call. + +2001-10-28 David Edelsohn + + * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name. + * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete. + (ASM_GLOBALIZE_LABEL): Use assemble_name. + (ASM_OUTPUT_COMMON): Likewise. + * config/rs6000/rs6000.c (print_operand): Use assemble_name. + (rs6000_output_function_epilogue): Likewise. + (output_mi_thunk): Fix typo. + (rs6000_output_symbol_ref): Use assemble_name. + (output_toc): Likewise. + * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete. + * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete; + assemble_name calls STRIP_NAME_ENCODING. + (ASM_OUTPUT_LABEL): Use assemble_name. + (ASM_GLOBALIZE_LABEL): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op. Use assemble_name. + (ASM_OUTPUT_LOCAL): Likewise. + +Sun Oct 28 15:45:16 2001 Richard Kenner + + * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case. + (expand_builtin_apply, expand_builtin_return): Likewise. + (expand_builtin_va_arg, expand_builtin_va_copy): Likewise. + +2001-10-28 Joseph S. Myers + + * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4, + ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11, + c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc, + configure, configure.in, except.c, except.h, flow.c, function.c, + gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def, + predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c, + sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c, + unroll.c: Fix spelling errors. + + * doc/extend.texi, doc/invoke.texi: Fix spelling. + + * doc/gcc.texi: Document use of "dependent" and American spelling. + +Sun Oct 28 17:05:36 CET 2001 Jan Hubicka + + * expr.c (emit_group_load): Support CONCATs by storing them to memory + and reloading. + +Sun Oct 28 09:59:54 2001 Richard Kenner + + * expr.c (store_constructor_field): Only call adjust_address on MEM. + +Sun Oct 28 16:48:09 CET 2001 Jan Hubicka + + * genrecog.c (write_switch): Output if before switch for + DT_elt_zero_wide_safe. + +2001-10-28 Kaveh R. Ghazi + + * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h + * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma. + (FUNCTION_PROFILER): Const-ify. + * halfpic.c: Include "expr.h", "output.h" and "halfpic.h". + (eliminate_constant_term, assemble_name, output_addr_const): + Remove declarations. + (ptr_half_pic_address_p, half_pic_hash): Prototype. + (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare, + half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify. + * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype. + (half_pic_declare, half_pic_external): Const-ify. + * toplev.c: Include "halfpic.h". + +2001-10-28 Joseph S. Myers + + * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h, + config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe, + config/i386/i386.c, config/i386/i386-interix.h, + config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h, + config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c, + config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md, + config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c, + config/sparc/sparc.c, config/m68hc11/m68hc11.c, + config/cris/cris.c, config/cris/cris.h, config/s390/s390.c, + config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix + spelling errors. + + * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4, + ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS, + c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c, + collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h, + haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c, + regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c, + system.h, toplev.c: Fix spelling errors. + +Sat Oct 27 17:32:04 2001 Richard Kenner + + * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET. + + * dwarf2out.c (reg_number): Abort if pseudo. + (reg_loc_descriptor): Return 0 if pseudo. + (is_based_loc): Return 0 if pseudo. + (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from + recursive calls. + (concat_loc_descriptor): Return 0 if either part's descriptor is 0. + (loc_descriptor): Return 0 if can't find location and handle 0 + return from recursive calls. + (loc_descriptor_from_tree): Likewise. + Fix handling of indirect. + Also return 0 for PLACEHOLDER_EXPR. + Clean up COMPONENT_REF cases. + (add_AT_location_descriptor): Simplify, but handle 0 return from + loc_descriptor. + (add_const_value_attribute): Avoid shift count warning. + (add_bound_info): Remove test for PLACEHOLDER_EXPR here. + Set comp_unit_die as context if not in function. + + * config/mips/mips-protos.h: Break up long lines. + Remove needless #ifdef/#endif blocks. + Don't declare functions declared in file made by genpreds or recog.h. + * config/mips/mips.c (mips_output_function_prologue): TSIZE + is now HOST_WIDE_INT; delete unneeded casts. + * config/mips/mips.h: Don't use #elif. + + * expr.c (stor_constructor_field): Always call adjust_address. + Copy TARGET before changing its alias set. + (store_field): Likewise, for TO_RTX. + (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find + replacement. + (safe_from_p, case ADDR_EXPR): Properly check for conflict. + (find_placeholder): Return 0 if can't find object. + (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder + returns 0. + +Sat Oct 27 16:31:23 CEST 2001 Jan Hubicka + + * ifcvt.c (if_convert): Call clear_aux_for_blocks. + +Sat Oct 27 12:12:09 CEST 2001 Jan Hubicka + + * cfgcleanup.c (merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE. + (merge_blocks): Properly udpate life after making edge nonfallthru. + * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end. + +2001-10-26 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Remove redundant code. + +2001-10-26 Neil Booth + + * c-typeck.c (convert_arguments): When comparing for enumeral + type equality, use TYPE_MAIN_VARIANT. + * gcc.dg/Wconversion.c: New tests. + +2001-10-26 Kazu Hirata + + * s390/s390.c: Fix comment typos. + * s390/s390.h: Likewise. + * s390/s390.md: Likewise. + +2001-10-26 Alexandre Oliva + + * tree-inline.c (WALK_SUBTREE_TAIL): New macro. + (walk_tree): Use it for tail calls where appropriate. + +2001-10-26 Alexandre Oliva + + * cse.c (check_for_label_ref): Don't require REG_LABEL notes for + non-local label_refs. + +2001-10-26 Kazu Hirata + + * config/h8300/h8300.md (4 anonymous patterns): New. + +2001-10-26 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Clean up. Return the + algorithm through the shift_info structure. + (emit_a_shift): Update the use of get_shift_alg. + +2001-10-27 Daniel Berlin + + * sched-rgn.c: Remove bitset typedef. + Change bitset to sbitmap in prototypes / variable types. + Remove bbset_size. + Remove edgeset_bits. + Remove edgeset_size. + s/BITSET_ADD/SET_BIT/g + s/BITSET_INVERT/sbitmap_ones/g + s/BITSET_INTER/sbitmap_a_and_b/g + s/BITSET_UNION/sbitmap_a_or_b/g + s/BITSET_DIFFER/sbitmap_difference/g + s/bitset_member/TEST_BIT/g + (BITSET_*): Removed. + (bitset_member): Removed. + (extract_bitlst): Rewrite, now that we have sbitmaps, we can use + EXECUTE_IF_SET_IN_SBITMAP. + (split_edges): Rewrite, use sbitmap functions instead of bitset + operations. + (schedule_region): Allocate/free sbitmaps, rather than bitsets. + +2001-10-26 Andreas Schwab + + * reload1.c (emit_input_reload_insns): Fix parens in last + (undocumented) change that was supposed to change only whitespace. + +Fri Oct 26 07:18:08 2001 Richard Kenner + + * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning. + + * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for + ASM_OPERANDS. + +2001-10-26 Andreas Jaeger + + * flow.c (clear_log_links): Remove unused variable. + * cfgcleanup.c (cleanup_cfg): Likewise. + +2001-10-26 Alexandre Oliva + + * tree-inline.c (remap_decl): Don't copy size and size_unit here. + (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node. + +2001-10-26 Richard Henderson + + * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG; + rename PV_REG to R27_REG. + (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update. + (REG_CLASS_FROM_LETTER): Update. + (PREFERRED_RELOAD_CLASS): Don't widen a reg class. + * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27. + (udivsi3, modsi3, umodsi3): Likewise. + (divdi3, udivdi3, moddi3, umoddi3): Likewise. + +2001-10-26 Richard Henderson + + * cfg.c (clear_aux_for_blocks): Split out of ... + (free_aux_for_blocks): here. + (clear_aux_for_edges): Split from ... + (free_aux_for_edges): here. + * basic-block.h: Declare them. + * lcm.c (compute_antinout_edge): Use them. + (compute_laterin, compute_available, compute_nearerout): Likewise. + (optimize_mode_switching): Likewise. + +2001-10-26 Richard Henderson + + * Makefile.in (unstage*): Remove as, ld, collect-ld before + moving everything back to the main build directory. + +2001-10-26 Christopher Faylor + + * config/i386/cygwin.h: Search target specific include directory, if + appropriate. + +2001-10-25 Kaveh R. Ghazi + + * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside + of macro guards. Fix #endif comment. + + * output.h (default_exception_section, default_eh_frame_section): + Move prototypes outside of macro guard. + + * crtstuff.c: Fix #endif comment. + +Thu Oct 25 12:21:58 2001 Jeffrey A Law (law@cygnus.com) + + * doc/md.texi (movMM): Clarify semantics of storing into a + non-paradoxical SUBREG. + +2001-10-25 Zack Weinberg + + * langhooks.c (lang_hook_default_clear_binding_stack): New. + (lang_hook_default_get_alias_set): Move next to other alias + hooks. + * langhooks.h: Prototype lang_hook_default_clear_binding_stack. + (LANG_HOOKS_CLEAR_BINDING_STACK): New macro. + (LANG_HOOKS_INITIALIZER): Add it. + * toplev.h (struct lang_hooks): Add clear_binding_stack. + * toplev.c (compile_file): Call lang_hooks.clear_binding_stack + instead of a loop calling poplevel. + +2001-10-25 Nick Clifton + + * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace + occurrences of #elif with #if...#endif. + +2001-10-25 Kaveh R. Ghazi + + * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning. + +Thu Oct 25 08:46:06 2001 Richard Kenner + + * alias.c (can_address_p): No longer static. + * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed. + Return 0 if all parameters are default values. + (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P. + (adjust_address_1): Try harder to compute a size. + * expr.c (expand_assignment, store_constructor): If can't address, + set MEM_KEEP_ALIAS_SET_P. + (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P. + (store_field): Likewise. + (store_constructor): Simplify call to store_constructor_field. + * expr.h (can_address_p): New declaration. + * gensupport.c (gen_rtx_CONST_INT): New function. + * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro. + (MEM_SIZE): Get size from mode, if not set and not BLKmode. + (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P. + + * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst. + +2001-10-24 Christopher Faylor + + * config/i386/cygwin.h: Use proper path for mingw crt files when + -mno-cygwin. + +Wed Oct 24 18:43:42 2001 Richard Kenner + + * dwarf2out.c (file_info_cmp): Always return consistent results. + +2001-10-24 Roger Sayle + + * stmt.c (expand_end_case): Index jumptables from zero for + suitably small values of minval. + +2001-10-24 Jakub Jelinek + + * stor-layout.c (place_union_field): If any field was aligned with + attribute aligned, set record type's TYPE_USER_ALIGN. + (place_field): Likewise. + (finalize_record_size): Don't clear TYPE_USER_ALIGN. + (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN. + +2001-10-24 Zack Weinberg + + * c-common.h (struct c_common_identifier): Remove rid_code field. + (C_RID_CODE): Use ->node.rid_code instead of ->rid_code. + + * c-typeck.c (constructor_designated): New local flag. + (struct constructor_stack): Add "designated" field to match. + (start_init): Clear it. + (really_start_incremental_init, push_init_level): Push and + clear it. + (pop_init_level): Pop it. + (set_designator): Set it. + + (pop_init_level): Suppress "missing initializer" warnings if + constructor_designated is true. + (process_init_element): Suppress warning about union + initialization under traditional C, if constructor_designated + is true. + +Wed Oct 24 15:35:38 2001 Richard Kenner + + * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last + change. + +Wed Oct 24 13:26:12 2001 Jeffrey A Law (law@cygnus.com) + + * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition. + +2001-10-24 Dan Nicolaescu + + * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if + the node was already a set to a constant. + +Wed Oct 24 12:41:19 2001 Richard Kenner + + * emit-rtl.c (set_mem_attributes): Fix typo in last change. + * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL. + +2001-10-24 Kaveh R. Ghazi + + * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings. + (ASM_OUTPUT_ASCII): Const-ify. Fix signed/unsigned warning. + (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings. + * s390.c (s390_final_chunkify): Don't use string concatenation. + (s390_function_prologue, s390_function_epilogue): Const-ify. + * s390.h (FUNCTION_PROFILER): Remove unused variable. + +2001-10-24 Jakub Jelinek + + * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function + prototypes. + +2001-10-23 Stan Shebs + + * config/rs6000/x-darwin: Use -no-cpp-precomp instead of + -traditional-cpp in first-stage compilation. + +Tue Oct 23 21:45:40 2001 Richard Kenner + + * gensupport.c (target_flags): Add. + +Tue Oct 23 13:05:53 2001 Richard Kenner + + * darwin-protos.h (constructor_section, destructor_section, + mod_init_section, mod_term_section): Prototype. + * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs): + Const-ify. + * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME): + Likewise. + (SECTION_FUNCTION): Prototype `FUNCTION'. Delete + objc_section_init declaration. + (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init. + (objc_section_init, try_section_alias): Make static. + (alias_section): Make static and hide unused function. + (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning. + +Tue Oct 23 13:05:53 2001 Richard Kenner + + * alias.c (can_address_p): Compnonents are not addressable if + the containing type has alias set 0. + (get_alias_set): Rework to use STRIP_NOPS. + Only call front-end routine on object, type, or object with + NOPs stripped, not inner values. + Use language hook to call front-end routine. + * builtins.c (get_memory_rtx): Always call set_mem_attributes. + (expand_builtin_apply): Call set_mem_align on MEMs we make. + Don't pass alignment to emit_block_move. + (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. + (expand_builtin_memset): Likewise, but for clear_storage. + * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set + and remove C++ specific parts. + * c-common.h (c_common_get_alias_set): Add declaration. + * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro. + * calls.c (emit_call_1): Fix typo in sibcall_pop case. + (save_fixed_argument_area): Call set_mem_align. + Remove alignment in call to emit_block_move. + (emit_library_call_value_1, store_one_arg): Likewise. + (target_for_arg): Remove; disabled long ago. + * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs + once and similar cleanups. + (offset_address): Use proper introductory comment. + * expr.c (emit_block_move): Use alignment from that of MEM args, not + from explicit operand; all callers changed. + (clear_storage): Likewise. + (expand_assignment): Don't call set_mem_alias_set on to_rtx. + (store_field): Remove kludge on alias set used for to_rtx. + (highest_pow2_factor, case *_DIV_EXPR): Never return 0. + (expand_expr_unaligned): Call set_mem_attributes instead of + set_mem_alias_set. + * expr.h (emit_block_move, clear_storage): Remove ALIGN argument. + * function.c (assign_stack_temp_for_type): Set MEM alignment. + (expand_function_end): Track MEM attributes of trampolines. + * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM. + * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory + attributes from original. + * langhooks.c (lang_hook_default_get_alias_set): New function. + (hook_get_alias_set_0): New function. + * langhooks.h (hook_get_alias_set_0): New declaration. + (lang_hook_default_get_alias_set): Likewise. + (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer. + * reload1.c (alter_reg): Use adjust_address_nv. + * rtl.c (get_mode_alignment): Moved to here. + * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and + change default if unknown from 1 to BITS_PER_UNIT. + * stor-layout.c (get_mode_alignment): Remove from here. + * toplev.h (struct lang_hoks): Add get_alias_set field. + * tree.h (lang_get_alias_set): Delete declaration. + * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment. + * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise. + (ix86_va_arg): Likewise. + * config/i960/i960.c (i960_setup_incoming_varargs): Likewise. + * config/pa/pa.c (hppa_builtin_saveregs): Likewise. + * config/sparc/sparc.c (sparc_va_arg): Likewise. + * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. + (expand_block_move_mem): Remove dead code. + +2001-10-22 Neil Booth + + * c-common.c (warn_div_by_zero): New. + * c-common.h (warn_div_by_zero): New. + * c-decl.c (c_decode_option): Take it on the command line. + * c-typeck.c (build_binary_op): Warn about division by zero. + * doc/invoke.texi: Document the new command line option, fix + documentation of -Wmultichar. + * testsuite/gcc.dg/divbyzero.c: New tests. + * testsuite/gcc.dg/noncompile/20010524-1.c: Update. + +Tue Oct 23 15:30:23 CEST 2001 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op. + + * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE + to avoid update_life_info call. + * basic-block.h (CLEANUP_UPATE_LIFE): Define. + * cfgcleanup.c (bb_flags): New enum. + (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros. + (notice_new_block, update_forwarder_flag): New functions. + (try_simplify_condjump): Use FORWARDER_BLOCK_P. + (try_forward_edges): Likewise; update flags. + (merge_blocks): Likewise. + (outgoing_edges_match): Likewise. + (try_crossjump_to_edge): Likewise. + (try_optimize_cfg): Likewise; initialize and clear the flags; + recompute life info if needed. + (cleanup_cfg): No need to clear aux pointers. + +2001-10-23 Alexandre Oliva + + * config/i386/i386.c (override_options): Default to minimum + stack alignment when optimizing for code size. + * doc/invoke.texi (-mpreferred-stack-boundary): Document the + change. + + * config/i386/i386.c (override_options): Set upper limit of + -mpreferred-stack-boundary to 12. + +2001-10-22 Zack Weinberg + + * recog.c (peephole2_optimize): Add default case to switch. + +2001-10-23 Joseph S. Myers + + * doc/gcc.texi (Sending Patches): Remove. + +2001-10-22 Hans-Peter Nilsson + + * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin + fields when comparing. + +2001-10-22 Kaveh R. Ghazi + + * arm.h (HOST_INT, HOST_UINT): Delete. Remove all uses. + * arm.c (HOST_INT, HOST_UINT): Likewise. + +2001-10-22 Stan Shebs + + * config/darwin-protos.h (darwin_exception_section): Declare. + (darwin_eh_frame_section): Declare. + +Mon Oct 22 18:21:25 CEST 2001 Jan Hubicka + + * i386.md (movti_rex64): Fix mode. + +2001-10-22 Stan Shebs + + * target.h (struct gcc_target): Add asm_out.exception_section, + asm_out.eh_frame_section. + * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro. + (TARGET_ASM_EH_FRAME_SECTION): New. + (TARGET_INITIALIZER): Update. + * output.h (default_exception_section): Declare. + (default_eh_frame_section): Declare. + * dwarf2out.c: Include target.h. + (output_call_frame_info): Call target hook for eh frames. + (default_eh_frame_section): New function. + * except.c: Include target.h. + (output_function_exception_table): Call target hook for exception + section. + * varasm.c (default_exception_section): Rename from + exception_section, remove EXCEPTION_SECTION macro. + + * config/darwin.h (darwin_eh_frame_section): New function. + (EXCEPTION_SECTION): Remove. + (TARGET_ASM_EXCEPTION_SECTION): Define. + * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove. + (nextstep_exception_section): New function. + (nextstep_eh_frame_section): New function. + (TARGET_ASM_EXCEPTION_SECTION): Define. + (TARGET_ASM_EH_FRAME_SECTION): Define. + + * config/pa/som.h (EXCEPTION_SECTION): Remove. + (TARGET_ASM_EXCEPTION_SECTION): Define. + * config/rs6000/sysv4.h, config/rs6000/xcoff.h + (EXCEPTION_SECTION): Remove. + (TARGET_ASM_EXCEPTION_SECTION): Define. + * config/stormy16/stormy16.h: Remove comments referencing + EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP. + + * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and + TARGET_ASM_EH_FRAME_SECTION. + +2001-10-22 Nick Clifton + + * config/mips/mips.md (mul_acc_si): Fix precedence of conditional + terms. + + * c-format.c: Fix spelling typo in comment. + + * sched-int.h: Fix typo in GCC preamble. + +2001-10-21 Craig Rodrigues + + PR debug/4252 + * doc/invoke.texi: Remove references to -fdump-translation-unit. + +2001-10-22 Richard Henderson + + * config/i386/i386.c (ix86_expand_clear): New. + * config/i386/i386-protos.h: Declare it. + * config/i386/i386.md (setcc peep2s): Use it. + (movsi_xor): Unexport. + +2001-10-22 Richard Henderson + + * flow.c (clear_log_links): Use free_INSN_LIST_list, not + free_EXPR_LIST_list for LOG_LINKS. + +2001-10-21 Robert Lipe + + * config/i386/i386.c (sco_asm_named_section): Delete. + (sco_asm_out_constructor): Delete. + * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h. + (ASM_OUTPUT_DOUBLE_INT): Likewise. + (TARGET_ASM_CONSTRUCTOR): Delete. Use default. + (TARGET_ASM_NAMED_SECTION): Use default for ELF. + (EXCEPTION_SECTION): Delete EH scn renaming hack. + +2001-10-21 Kaveh R. Ghazi + + * c-format.c (maybe_read_dollar_number): Use safe-ctype macros + and/or fold extra calls into fewer ones. + * collect2.c (dump_file): Likewise. + * cppexp.c (parse_number): Likewise. + * cpplex.c (_cpp_lex_direct): Likewise. + * final.c (output_asm_insn, asm_fprintf): Likewise. + * fix-header.c (inf_scan_ident, main): Likewise. + * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix): + Likewise. + * fold-const.c (real_hex_to_f): Likewise. + * gen-protos.c (parse_fn_proto): Likewise. + * genattrtab.c (check_attr_test, check_attr_value): Likewise. + * genrecog.c (change_state, write_action): Likewise. + * gensupport.c (shift_output_template): Likewise. + * local-alloc.c (requires_inout): Likewise. + * mips-tfile.c (IS_ASM_IDENT): Likewise. + * protoize.c (is_id_char, main): Likewise. + * real.c (asctoeg): Likewise. + * recog.c (asm_operand_ok): Likewise. + * reload.c (find_reloads): Likewise. + * scan.c (scan_identget_token): Likewise. + * sched-vis.c (print_value): Likewise. + * stringpool.c (ggc_alloc_string): Likewise. + * toplev.c (read_integral_parameter, decode_g_option): Likewise. + * tradcif.y (parse_number, yylex, parse_escape): Likewise. + * tradcpp.c (rescan): Likewise. + * tree.c (clean_symbol_name): Likewise. + * varasm.c (decode_reg_name): Likewise. + + * alpha.h (ASM_OUTPUT_ASCII): Likewise. + * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise. + * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise. + * m88k.c (output_ascii): Likewise. + * m88k.h (OVERRIDE_OPTIONS): Likewise. + * mcore.h (REG_CLASS_FROM_LETTER): Likewise. + * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise. + * sh.h (REG_CLASS_FROM_LETTER): Likewise. + +2001-10-21 Neil Booth + + * langhooks.c (lang_hook_default_do_nothing, + lang_hook_default_decode_option): New defaults. + * langhooks.h: Make hooks unconditional and non-NULL. + * toplev.c (compile_file, toplev_main): Update. + * toplev.h: Update comments. + * objc/objc-act.c (lang_hooks): Update to new paradigm. + +2001-10-21 Kaveh R. Ghazi + + * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE. + + * system.h (IN_RANGE): New macro. + +2001-10-21 Zack Weinberg + + * aclocal.m4 (AM_WITH_NLS): Also create and substitute + INTLDEPS variable, which does not include $LIBICONV. + * Makefile.in: Use INTLDEPS in LIBDEPS. + * configure: Regenerate. + +2001-10-21 Neil Booth + + * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char. + * cpplex.c (lex_percent, lex_dot): Remove. + (get_effective_char, skip_block_comment, skip_line_comment, + parse_identifier_slow, parse_number, parse_string, save_comment, + _cpp_lex_direct): Update to do lookback freely. + (IF_NEXT_IS, BACKUP): New macros. + * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char. + * cppmacro.c (paste_tokens): Update. + +2001-10-20 Nick Clifton + + * doc/invoke.texi (i386 and x86-64 Options): Fix typo. + +2001-10-20 Hans-Peter Nilsson + + * reload1.c (reload): Check CONSTANT_P before calling + LEGITIMATE_PIC_OPERAND_P. + * config/cris/cris.c (cris_legitimate_pic_operand): Revert + workaround of 2001-10-13. + +Sat Oct 20 15:16:10 CEST 2001 Jan Hubicka + + * i386.c (split_di): Handle splitting of DFmode. + +Sat Oct 20 07:27:14 2001 Richard Kenner + + * emit-rtl.c (set_mem_attributes): Alignment is in bits. + (adjust_address_1, offset_address): Likewise. + + * final.c (output_asm_operand_names): New fcn, from output_asm_insn. + (output_asm_insn): Call it for each line output. + Don't record an operand more than once. + + * toplev.h (struct lang_hooks): HONOR_READONLY now bool. + * main.c: Include config.h and system.h, but not ansidecl.h. + * Makefile.in (main.o): Update accordingly. + +Sat Oct 20 12:05:31 CEST 2001 Jan Hubicka + + * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64. + +Sat Oct 20 12:01:07 CEST 2001 Jan Hubicka + + * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter. + * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies): + Break out from ... + (find_sub_basic_blocks): ... here; + (find_many_sub_basic_blocks): New. + * recog.c (split_all_insns): Update find_sub_basic_blocks call. + + * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4. + + * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.: + + * i386.c (split_di, split_ti): Revamp to use simplify_subreg. + + * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new. + * flow.c (update_life_info): Measure time. + * c-decl.c: Include timevar.h + (c_expand_body): Measure time. + * toplev.c (rest_of_compilation): Measure time of mode switching + separately. + * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency. + + * toplev.c (flag_asynchronous_unwind_tables): New global variable. + (lang_independent_options): Add asynchronous-unwind-tables + (toplev_main): flag_asynchronous_unwind_tables implies + flag_unwind_tables. + * flags.h (flag_asynchronous_unwind_tables): Declare. + * dwarf2out.c (dwarf2out_stack_adjust): Take into account + flag_asynchronous_unwind_tables. + (output_call_frame_info): Likewise. + * invoke.texi (-fasynchronous-unwind-tables): Document. + * i386.c (optimization_options): Enable + flag_asynchronous_unwind_tables. + + * i386.c (ix86_expand_setcc): Always expect target to be QImode. + * i386.md (s* expanders): Destination is QImode. + + * toplev.c (rest_of_compilation): Do not call clear_log_links. + * rtl.h (clear_log_links): Kill. + * flow.c (clear_log_links): Make static; accept blocks parameter; + do no clear life info. + (update_life_info): Call clear_log_links. + + * cfganal.c (forwarder_block_p): Avoid active_insn_p calls. + +2001-10-20 Neil Booth + + * cpplex.c (handle_newline, skip_escaped_newlines, + get_effective_char, skip_block_comment, skip_line_comment, + parse_identifier_slow, parse_number, parse_string, + _cpp_lex_direct): Update to do more stepping back. + (trigraph_ok): Similarly. Rename trigraph_p. + (SAVE_STATE, RESTORE_STATE): Remove. + (BUFF_SIZE_UPPER_BOUND): Tweak. Add sanity check. + + * cpplib.c (destringize): Rename destringize_and_run, and + call run_directive directly. + (_cpp_do__Pragma): Simplify. + +2001-10-19 Kaveh R. Ghazi + + * pe.c (arm_pe_unique_section): Const-ify. + * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining. + (switch_to_section): Add static prototype. + + * output.h (drectve_section): Prototype. + +2001-10-19 Franz Sirl + + * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*, + fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*, + parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*, + i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware, + i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*, + i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*, + i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1, + i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*, + i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*, + i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, + i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*, + i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*, + ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf, + mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*, + powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*, + powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*, + powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*, + powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*, + powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*, + powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*, + rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*, + sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf, + v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf, + cris-*-none, cris-*-linux*: Update ${tmfile} list. + (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*, + i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*, + mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*, + powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*, + v850-*-*): Delete superflous ${cpu_type} setting. + * config/linux.h: Delete svr4.h include. + (SET_ASM_OP): Delete. + * config/netware.h (INT_ASM_OP): Undef before define. + * config/ptx4.h: Delete elfos.h include. + (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping. + * config/svr4.h: Delete elfos.h include. Update commentary. + * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h, + config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h, + config/mn10200/mn10300.h, config/stormy16/stormy16.h, + config/v850/v850.h: Delete svr4.h include. + * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h, + config/m68k/m68kv4.h, config/m88k/sysv4.h, + config/sparc/sysv4.h: Update includes. + * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h, + config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h, + config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h, + config/m88k/dguxbcs.h: Delete includes. + * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include. + (PREFERRED_DEBUGGING_TYPE): Undef before defining it. + * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining + it. + * config/m88k/dgux.h: Delete include. + (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Undef before + defining it. + * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it. + * config/sh/elf.h: Update include. + (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, + DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes. + +2001-10-19 Catherine Moore + + * config/stormy16/stormy-abi: Updates to varargs descriptions. + * config/stormy16/stormy16.c (stormy16_build_va_list): Reverse + base and count fields. + (stormy16_expand_builtin_va_start): last_reg_count changed to + size_of_reg_args. Use count + size in first comparison. + +Fri Oct 19 15:24:39 2001 Richard Kenner + + * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro. + * toplev.h (struct lang_hooks): New field HONOR_READONLY. + * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from + TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly. + Set alignment from type if INDIRECT_REF. + (adjust_address_1, offset_address): Simplify alignment compuitation. + * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P + here; done by set_mem_attributes. + +2001-10-19 Kaveh R. Ghazi + + * Makefile.in (rtlanal.o): Depend on $(TM_P_H). + * arm-protos.h (rdata_section, zero_init_section, common_section): + Prototype. + * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify. + * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid + traditional mode stringification. + * function.c (thread_prologue_and_epilogue_insns): Wrap variable + in macros controling its use. + * rtlanal.c: Include tm_p.h. + * varasm.c (asm_output_aligned_bss): Mark parameter with + ATTRIBUTE_UNUSED. + (assemble_constant_align, assemble_start_function, assemble_align, + assemble_variable, assemble_trampoline_template, + output_constant_def_contents): Wrap potentially empty if-stmt body + in brackets. + +2001-10-19 Kaveh R. Ghazi + + * a29k-protos.h (literal_section): Prototype. + * a29k.h (ASM_FILE_START): Don't discard pointer qualifier. + * a29k.md: Ensure function pointers are prototyped. + * genattrtab.c (write_eligible_delay): Mark parameter with + ATTRIBUTE_UNUSED. + +2001-10-19 Kaveh R. Ghazi + + * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. + * 1750a.c (print_operand): Fix format specifier warning. + * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier. + * 1750a.md: Likewise. + * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC. + * genemit.c (output_add_clobbers): Mark parameter with + ATTRIBUTE_UNUSED. + * genrecog.c (write_subroutine): Likewise. + * integrate.c (expand_inline_function): Delete unused variable. + * varasm.c (remove_from_pending_weak_list): Wrap with + ASM_WEAKEN_LABEL. + +2001-10-19 Jakub Jelinek + + * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg + field is different to previous argument's neg field. + + * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT. + +Fri Oct 19 15:24:39 2001 Richard Kenner + + * final.c (get_decl_from_op): New function. + (output_asm_insn): Call it; write "*" when item with decl is address. + +2001-10-19 Janis Johnson + + * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation + about 64-bit support from the 3.0_branch version. + +2001-10-19 Zack Weinberg + + * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and + USE_INCLUDED_LIBINTL when appropriate. + * configure, config.in: Regenerate. + * Makefile.in (datadir): Set to @datadir@. + (intl.o): Also depend on $(CONFIG_H) and system.h. + + * intl.c: Factor out common gettext initialization sequence. + (gcc_init_libintl): New function. + * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL; + otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn + off NLS. Add multiple include guard. No need to #ifdef-guard + an #undef. Prototype gcc_init_libintl here. + + * collect2.c (main), cppmain.c (general_init), gcc.c (main), + gcov.c (main), protoize.c (main), toplev.c (toplev_main): + Use gcc_init_libintl. + +2001-10-19 Catherine Moore + + * config/stormy16/stormy16.h (ASM_COMMENT_START): Define. + + * config/stormy16/stormy16.c (stormy16_split_move): Make + sure that REG_INC notes are present for auto_inc operands. + +2001-10-19 Andreas Jaeger + + * configure: Regenerated. + * configure.in: Add x86_64 to switch statements. + +2001-10-18 Richard Henderson + + * config/alpha/alpha.md (sibcall_osf_1): Load destination + address into $27 explicitly. + (sibcall_value_osf_1): Likewise. + +Thu Oct 18 16:07:39 2001 Richard Kenner + + * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array. + (offset_address): New function. + (free_emit_status): Free regno_decl. + (init_emit): Pass proper number of elements to xcalloc. + Allocate regno_decl. + (mark_emit_status): Mark regno_decl values. + * expr.c (highest_pow2_factor): New function. + (expand_assigment): Use it and offset_address. + Properly handle ptr_mode vs. Pmode in offset calculation. + (store_constructor, expand_expr_unaligned): Likewise. + (expand_expr, case COMPONENT_EXPR): Likewise. + * expr.h (offset_address): New decl. + * function.h (struct emit_status): Add regno_decl. + (REGNO_DECL): New macro. + * final.c (output_asm_name): Move in file and don't conditionalize + on flag_print_asm_name. + (output_asm_insn): Only call output_asm_name if flag_print_asm_name. + Output names of operands, if known. + * function.c (assign_parms): Set REGNO_DECL. + * integrate.c (integrate_decl_tree): Likewise. + * stmt.c (expand_decl): Likewise. + * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies. + +2001-10-18 Alexandre Oliva + + * attribs.c (handle_noinline_attribute): New function. + (handle_used_attribute): Likewise. + (c_common_attribute_table): Added noinline and used. + * doc/extend.texi (Function Attributes): Document them. + * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. + Warn when merging inline with attribute noinline. + (start_decl, start_function): Warn if inline and attribute + noinline appear in the same declaration. + +2001-10-17 Neil Booth + + * config.gcc: Update c4x and i370 for C front end-specific + dependencies. + * config/c4x/c4x-c.c: New. + * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove. + (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree): + New declarations. + * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h. + (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree): + Make extern. + (c4x_init_pragma): Remove. + (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION, + c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, + c4x_pr_ignored): Move to c4x-c.c. + * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update. + * config/c4x/t-c4x: Update. + * config/i370/i370-c.c: New. + * config/i370/i370.c: Don't include c-lex.h or c-pragma.h. + (i370_pr_map): Move to i370-c.c. + * config/i370/t-i370: New. + + * doc/tm.texi: Update. + +2001-10-17 Stan Shebs + + * config/rs6000/rs6000.c: Make assorted mechanical formatting and + typo fixes throughout. + (machopic_output_stub): Remove some dead code. + +2001-10-17 Richard Earnshaw + + * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory + leak. + +Wed Oct 17 05:26:39 2001 Richard Kenner + + * Makefile.in (print-rtl.o): Depend on TREE_H. + * alias.c (get_alias_set): Make two passes over objects to first + see if inner object is access via restricted pointer. + Defer allocating alias set for restricted pointer until here. + Call find_placeholder with second arg nonzero. + Minor cleanups. + * c-common.c (c_apply_type_quals_to_decl): Defer getting alias + set for restricted pointer types. + * emit-rtl.c (set_mem_attributes): Set more attributes. + (set_mem_align, change_address, adjust_address_1): New functions. + (change_address_1): Now static. + (adjust_address, adjust_address_nv): Deleted. + (replace_equiv_address): Call change_address_1. + * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR. + (find_placeholder): Get starting point from PLIST arg. + (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg. + * expr.h (set_mem_align, change_address, adjust_address_1): New decls. + (adjust_address, adjust_address_nv): New macros. + * print-rtl.c (tree.h): New include. + (print_rtx, case MEM): Print all memory attributes. + +2001-10-17 Richard Henderson + + * config/alpha/alpha.c (direct_call_operand): Don't fall off end. + +2001-10-16 Matt Kraai + + * c-tree.texi: Eliminate duplicated word. + * cpp.texi: Likewise. + * install.texi: Likewise. + * invoke.texi: Likewise. + * tm.texi: Likewise. + +2001-10-17 Michael Collison + + * dsp16xx.c: Fix comment formatting to match GNU standards. + (dsp16xx_output_function_prologue): Change type of 'size' + parameter from 'int' to HOST_WIDE_INT. + (dsp16xx_output_function_epilogue): Change type of 'size' + parameter from 'int' to HOST_WIDE_INT. + +2001-10-16 Richard Henderson + + * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check. + * configure, config.in: Rebuild. + + * config/i386/i386.c (ix86_output_addr_vec_elt): New. + (ix86_output_addr_diff_elt): New. + * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them. + (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + (JUMP_TABLES_IN_TEXT_SECTION): New. + * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA. + * config/i386/i386-protos.h: Update. + + * config/i386/386bsd.h, config/i386/beos-elf.h, + config/i386/freebsd-aout.h, config/i386/freebsd.h, + config/i386/i386-interix.h, config/i386/i386elf.h, + config/i386/linux.h, config/i386/netbsd-elf.h, + config/i386/netbsd.h, config/i386/openbsd.h, + config/i386/ptx4-i.h, config/i386/rtemself.h, + config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h + (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove. + +2001-10-16 Florian Weimer + + * stmt.c (expand_asm_operands): Update commentary. + +2001-10-16 Stan Shebs + + * config/darwin.h (GCC_NAME): Remove, no longer used. + (NO_MATH_LIBRARY): Ditto. + (MATH_LIBRARY): Define to emptiness. + (DWARF2_DEBUGGING_INFO): Define. + (PREFERRED_DEBUGGING_TYPE): Define. + (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section. + (EXCEPTION_SECTION): Define. + (ASM_PREFERRED_EH_DATA_FORMAT): Define. + * config/darwin.c (darwin_encode_section_info): Handle case of + DECL_INITIAL being error_mark_node. + +2001-10-16 Richard Henderson + + * alpha.c (current_file_function_operand): Don't fail for profiling. + (direct_call_operand): New. + * alpha-protos.h: Declare it. + * alpha.h (EXTRA_CONSTRAINT): Use it. + (PREDICATE_CODES): Add it. + (ASM_OUTPUT_MI_THUNK): Remove. + * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove. + * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative. + +2001-10-16 Krister Walfridsson + + * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define. + (JUMP_TABLES_IN_TEXT_SECTION): Define. + +Wed Oct 17 00:21:31 CEST 2001 Jan Hubicka + + * cfg.c (free_edge): Break out from .... + (remove_edge): ... here. + (clear_edges): Use free_edge. + + * att.h (ASM_QUAD): Add comment. + * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define. + +Wed Oct 17 00:01:02 CEST 2001 Jan Hubicka + + * i386.c (split_ti): New function. + (ix86_split_to_parts): Support TImodes. + * i386.h (VALID_INT_MODE_P): Add TImode. + * i386.md (movdi splitter): Fix. + (movti): Support 64bit integer registers. + (movti_rex64): New function and splitter. + + * i386.c (*_cost): Add movsx/movzx cost. + * i386.h (struct processor_costs): Add movsx/movzx fields. + (RTX_COSTS): Handle zero/sign extend + avoid believing that + 64bit operations require split on 64bit machine. + (CONST_COST): Make large 64bit constants expensive on 64bit compilation. + + * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS. + (ix86_expand_move): Avoid pushes of memory if size does not match; + move long constants to register. + (x86_initialize_trampoline): Fix mode. + * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): + Use ASM_QUAD on 64bit. + * i386.md (test pattern): Disallow impossible constants. + (tablejump PIC expander): Fix emitting of sum. + (movdicc_rex64): Rename to movdicc. + * linux64.h (LINK_SPEC): Add missing '%'. + +2001-10-16 Alexandre Oliva + + * tree-inline.c (inlinable_function_p): Leave it up to the + front-end to turn -finline-functions into DECL_INLINE set for all + functions. + +2001-10-16 Stan Shebs + + * config/rs6000/darwin.h (ASM_COMMENT_START): Define. + +2001-10-16 Alan Modra + + * recog.c: Formatting and comment typo fixes. + + * configure.in (gcc_cv_as_bfd_srcdir): New. Use it to find gas + version in single tree build. + * configure: Regenerate. + +2001-10-15 David Edelsohn + + * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and + MODE arguments to gen_rtx and compare operand with const0_rtx. + +2001-10-15 Neil Booth + + * system.h: Poison old unused target macros. + * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove. + * config/stormy16/stormy16.c: Update references to obsolete macros. + * config/stormy16/stormy16.h: Similarly. + * config/stormy16/stormy16.md: Similarly. + * config/cris/cris.h: Similarly. + +2001-10-15 Neil Booth + + * cpplib.c (struct pragma_entry): Store the name as a hashnode. + (lookup_pragma_entry, insert_pragma_entry, do_pragma, + cpp_register_pragma): Update accordingly. + +2001-10-14 Neil Booth + + * c-pragma.h (cpp_register_pragma_space): Remove. + * cpplib.h (cpp_register_pragma_space): Remove. + * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New. + (cpp_register_pragma_space): Remove. + (cpp_register_pragma): Simplify using lookup_pragma_entry, + add sanity checks. + (do_pragma): Similarly. + (_cpp_init_internal_pragmas): Don't register namespaces. + + * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): + Don't register namespaces. + * cp/lex.c (init_cp_pragma): Similarly. + * doc/tm.texi: Update. + +2001-10-10 Craig Rodrigues + + PR c/4157 + * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES + +2001-10-13 Michael Collison + + * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and + add scheduling support. + * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code. + * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code. + * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes. + + +2001-10-13 Hans-Peter Nilsson + + * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around + missing CONSTANT_P test in core GCC. + +2001-10-12 Neil Booth + + * cppmain.c (struct printer): New member source. + (scan_translation_unit): Fix spacing at start of lines. + (cb_line_change): Update. + + * gcc.dg/cpp/spacing2.c: New test. + +2001-10-12 Hans-Peter Nilsson + + * config/cris/arit.c: Use __builtin_labs, not abs. + + * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define. + + * config/cris/cris.c (cris_target_asm_function_epilogue): Move + misplaced sprintf and fprintf argument. + +2001-10-12 Zack Weinberg + + * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40. + * configure.in, Makefile.in: Take out obsolete check-po logic. + * configure, config.in: Regenerate. + +2001-10-12 Ziemowit Laski + + * objc/objc-act.c (finish_objc): Correct precondition for emitting + symtab declarations. + +2001-10-12 Stan Shebs + + * config/rs6000/rs6000.c: Remove uses of "register" specifier in + declarations of arguments and local variables. + +2001-10-12 Christopher Faylor + + * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and + ENDFILE_SPEC definition. + +2001-10-12 Kazu Hirata + + * gthr-dce.h: Fix comment formatting. + * gthr-posix.h: Likewise. + * gthr-single.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-vxworks.h: Likewise. + * gthr-win32.h: Likewise. + +2001-10-12 Jakub Jelinek + + * final.c (output_asm_insn): Make sure assembly dialects are + terminated, not nested. Output `|' and `}' characters if they + don't appear inside assembly dialect selection. + * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64, + rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi, + rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1, + strsetsi_rex_1): Add {} braces. + +2001-10-11 Zack Weinberg + + * toplev.c (compile_file): Ignore return value from yyparse. + Always pop any nested binding levels after yyparse returns. + +2001-10-11 Richard Henderson + + * doc/c-tree.texi (Expression trees): Add VTABLE_REF. + +2001-10-11 Richard Henderson + + * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT, + fall back to add_AT_long_long for large CONST_INT. + +2001-10-11 Richard Henderson + + * config/i386/i386.md (setcc splitters): Add four splitters to + simplify compound compares that simplify_comparison can't handle. + +2001-10-11 Zack Weinberg + + * cpplex.c (digraph_spellings, token_spellings): Make static. + +2001-10-11 Franz Sirl + + * unroll.c (loop_iterations): Fixup last patch. + +2001-10-11 Richard Henderson + + * rtl.h (REG_VTABLE_REF): New. + * rtl.c (reg_note_name): Add it. + * combine.c (distribute_notes): Handle it. + * final.c (final_scan_insn): Handle it. + * tree.def (VTABLE_REF): New. + * expr.c (expand_expr): Handle it. + * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New. + * output.h: Declare them. + +2001-10-11 Richard Henderson + + * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look + for a DECL_INITIAL. + +2001-10-11 David Edelsohn + + * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only + available in 64-bit mode. + +2001-10-11 Hans-Peter Nilsson + + * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none, + cris-*-linux* cases. + * config/cris/cris-protos.h: New file. + * config/cris/cris.c: New file. + * config/cris/cris.h: New file. + * config/cris/cris.md: New file. + * config/cris/linux.h: New file. + * config/cris/aout.h: New file. + * config/cris/arit.c: New file. + * config/cris/cris_abi_symbol.c: New file. + * config/cris/mulsi3.asm: New file. + * config/cris/t-aout: New file. + * config/cris/t-cris: New file. + * config/cris/t-elfmulti: New file. + * config/cris/t-linux: New file. + * doc/invoke.texi: Add CRIS options. + * doc/install.texi (Specific): Add blurb for CRIS. + +2001-10-10 Hartmut Schirmer + + * config/float-i128.h: Make sure __STDC__VERSION__ is defined + before using it. + * config/float/i32.h: Likewise. + * config/float-i386.h: Likewise. + * config/float-i64.h: Likewise. + * config/float-m68k.h: Likewise. + * config/float-sh.h: Likewise. + * config/float-sparc.h: Likewise. + +2001-10-11 Hans-Peter Nilsson + + * doc/contrib.texi: Add note about CRIS port to my entry. + +2001-10-11 Kazu Hirata + + * basic-block.h: Fix formatting. + * bitmap.h: Likewise. + * cpplib.h: Likewise. + * c-tree.h: Likewise. + * diagnostic.h: Likewise. + * flags.h: Likewise. + * ggc.h: Likewise. + * longlong.h: Likewise. + * real.h: Likewise. + * reload.h: Likewise. + * rtl.h: Likewise. + * tree.h: Likewise. + +2001-10-10 Richard Henderson + + * c-parse.in (asm_operand): Allow named operands. + * genconfig.c (max_recog_operands): Set to 29. + * local-alloc.c (requires_inout): Skip multiple digits. + * recog.c (asm_operand_ok): Likewise. + (preprocess_constraints): Use strtoul for matching constraints. + (constrain_operands): Likewise. + * regmove.c (find_matches): Likewise. + * reload.c (find_reloads): Likewise. + * stmt.c (parse_output_constraint): Don't reject in-out + constraint on operands > 9. Reject '[' in constraint. + (expand_asm_operands): Handle named operands. Use strtoul + for matching constraints. + (check_operand_nalternatives): Split out from expand_asm_operands. + (check_unique_operand_names): New. + (resolve_operand_names, resolve_operand_name_1): New. + + * doc/extend.texi (Extended Asm): Document named operands. + * doc/md.texi (Simple Constraints): Document matching constraints + on operands > 9. + +2001-10-10 Richard Henderson + + * combine.c (try_combine): Handle a SEQUENCE of one insn. + + * i386.c (test splitter): Narrow tests vs paradoxical subregs. + (jcc splitters): Add two splitters to simplify compound compares + that simplify_comparison can't handle. + +2001-10-10 Richard Henderson + + * langhooks.c: Include langhooks.h. + * Makefile.in (langhooks.o): Depend on it. + +Wed Oct 10 23:49:06 EDT 2001 John Wehle (john@feith.com) + + * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note + should not be considered as a no-op. + * flow.c (delete_noop_moves): Handle REG_LIBCALL notes. + +2001-10-10 Stan Shebs + + * alias.c: Remove uses of "register" specifier in declarations + of arguments and local variables. + * c-common.c: Ditto. + * c-convert.c: Ditto. + * c-decl.c: Ditto. + * c-format.c: Ditto. + * c-semantics.c: Ditto. + * c-typeck.c: Ditto. + * caller-save.c: Ditto. + * calls.c: Ditto. + * cfg.c: Ditto. + * cfgbuild.c: Ditto. + * cfgrtl.c: Ditto. + * collect2.c: Ditto. + * combine.c: Ditto. + * convert.c: Ditto. + * cppexp.c: Ditto. + * cppfiles.c: Ditto. + * cse.c: Ditto. + * dbxout.c: Ditto. + * defaults.h: Ditto. + * df.c: Ditto. + * dwarf2out.c: Ditto. + * dwarfout.c: Ditto. + * emit-rtl.c: Ditto. + * explow.c: Ditto. + * expmed.c: Ditto. + * expr.c: Ditto. + * final.c: Ditto. + * fix-header.c: Ditto. + * floatlib.c: Ditto. + * flow.c: Ditto. + * fold-const.c: Ditto. + * function.c: Ditto. + * gcc.c: Ditto. + * gcse.c: Ditto. + * gen-protos.c: Ditto. + * genattrtab.c: Ditto. + * gencheck.c: Ditto. + * genconfig.c: Ditto. + * genemit.c: Ditto. + * genextract.c: Ditto. + * genflags.c: Ditto. + * gengenrtl.c: Ditto. + * genoutput.c: Ditto. + * genpeep.c: Ditto. + * genrecog.c: Ditto. + * gensupport.c: Ditto. + * global.c: Ditto. + * gmon.c: Ditto. + * graph.c: Ditto. + * haifa-sched.c: Ditto. + * hard-reg-set.h: Ditto. + * hash.c: Ditto. + * integrate.c: Ditto. + * jump.c: Ditto. + * lists.c: Ditto. + * local-alloc.c: Ditto. + * loop.c: Ditto. + * mips-tdump.c: Ditto. + * mips-tfile.c: Ditto. + * optabs.c: Ditto. + * prefix.c: Ditto. + * print-rtl.c: Ditto. + * read-rtl.c: Ditto. + * real.c: Ditto. + * recog.c: Ditto. + * reg-stack.c: Ditto. + * regclass.c: Ditto. + * regmove.c: Ditto. + * reload.c: Ditto. + * reload1.c: Ditto. + * reorg.c: Ditto. + * resource.c: Ditto. + * rtl.c: Ditto. + * rtlanal.c: Ditto. + * scan.c: Ditto. + * sched-deps.c: Ditto. + * sched-rgn.c: Ditto. + * sdbout.c: Ditto. + * simplify-rtx.c: Ditto. + * stmt.c: Ditto. + * stor-layout.c: Ditto. + * toplev.c: Ditto. + * tradcif.y: Ditto. + * tradcpp.c: Ditto. + * tree.c: Ditto. + * unroll.c: Ditto. + * varasm.c: Ditto. + * xcoffout.c: Ditto. + +2001-10-10 Richard Henderson + + * rtl.h (can_reverse_comparison_p): Remove. + +2001-10-10 Christopher Faylor + + * config/i386/cygwin.h: Avoid adding include files if -nostdinc is + used. + +2001-10-10 Danny Smith + + * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define. + (Thanks to Chris Faylor for suggesting macro name). + (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more + WIN32 defines. + (STANDARD_INCLUDE_DIR): Remove i386- from directory name. + (STANDARD_INCLUDE_COMPONENT): Change to MINGW. + (MATH_LIBRARY): Undef before definition. + (OUTPUT_QUOTED_STRING): Likewise. + * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS. + +2001-10-10 Richard Henderson + + * unwind-dw2-fde.c (fde_compare_t): Change return type to int. + (fde_unencoded_compare): Likewise. Don't use subtraction to get + a tristate comparison value. + (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise. + +2001-10-10 Franz Sirl + + PR c++/4512 + * unroll.c (loop_iterations): Ignore insns generated by loop + unrolling. + + * config.gcc (mips*-*-gnu*): Delete support. + * config/mips/gnu.h: Remove. + +2001-10-10 Kazu Hirata + + * calls.c: Fix formatting. + * c-decl.c: Likewise. + * cfgcleanup.c: Likewise. + * combine.c: Likewise. + * cppfiles.c: Likewise. + * cpplib.c: Likewise. + * cppmacro.c: Likewise. + * crtstuff.c: Likewise. + * cse.c: Likewise. + * dwarf2out.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * gcse.c: Likewise. + * genattrtab.c: Likewise. + * ggc-page.c: Likewise. + * integrate.c: Likewise. + * libgcc2.c: Likewise. + * loop.c: Likewise. + * optabs.c: Likewise. + * profile.c: Likewise. + * protoize.c: Likewise. + * real.c: Likewise. + * recog.c: Likewise. + * reload1.c: Likewise. + * reload.c: Likewise. + * reorg.c: Likewise. + * resource.c: Likewise. + * sched-rgn.c: Likewise. + * sdbout.c: Likewise. + * stmt.c: Likewise. + * toplev.c: Likewise. + * varasm.c: Likewise. + +2001-10-10 Janis Johnson , Alexandre Oliva + + * langhooks.c: Include rtl.h, insn-config.h and integrate.h. + * Makefile.in (langhooks.o): Add dependencies. + +Wed Oct 10 00:41:29 EDT 2001 John Wehle (john@feith.com) + + * rs6000.c (rs6000_emit_load_toc_table): Don't + strdup the toc label. + (create_TOC_reference): Likewise. + +2001-10-09 Danny Smith + + * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent + version default. + +2001-10-09 Danny Smith + + * config/i386/i386.c (ix86_attribute_table): Correct + min_len, max_len fields for dllimport, dllexport and shared. + +2001-10-10 Joseph S. Myers + + * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi, + doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: + Consistently use "nonzero" instead of "non-zero". + +2001-10-09 Kazu Hirata + + * acconfig.h: Fix comment formatting. + * c-dump.h: Likewise. + * c-tree.h: Likewise. + * conditions.h: Likewise. + * expr.h: Likewise. + * function.h: Likewise. + * gthr.h: Likewise. + * hwint.h: Likewise. + * integrate.h: Likewise. + * intl.h: Likewise. + * loop.h: Likewise. + * optabs.h: Likewise. + +2001-10-09 Kazu Hirata + + * c-common.h: Fix comment formatting. + * c-dump.c: Likewise. + * cfg.c: Likewise. + * diagnostic.h: Likewise. + * except.c: Likewise. + * gcc.h: Likewise. + * gcov-io.h: Likewise. + * genattrtab.c: Likewise. + * output.h: Likewise. + * predict.h: Likewise. + * reload1.c: Likewise. + * reload.h: Likewise. + * resource.h: Likewise. + * scan.h: Likewise. + * system.h: Likewise. + * tree.h: Likewise. + * tree-inline.c: Likewise. + * tsystem.h: Likewise. + * varasm.c: Likewise. + * xcoffout.h: Likewise. + +2001-10-09 Joseph S. Myers + + * doc/gcc.texi: Document preference for "nonzero" over "non-zero". + +2001-10-09 Joseph S. Myers + + * config/alpha/freebsd.h, config/alpha/lib1funcs.asm, + config/i386/i386elf.h, config/i386/netbsd-elf.h, + config/i386/netware.h, config/mcore/gfloat.h, + config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md, + config/netware.h, gccbug.in: Update FSF address. + +2001-10-09 Kazu Hirata + + * c-common.c: Fix comment typos. + * cfgrtl.c: Likewise. + * collect2.c: Likewise. + * cpplex.c: Likewise. + * doloop.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * expr.c: Likewise. + * fold-const.c: Likewise. + * gcc.c: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * global.c: Likewise. + * ifcvt.c: Likewise. + * loop.c: Likewise. + * optabs.c: Likewise. + * protoize.c: Likewise. + * regclass.c: Likewise. + * reorg.c: Likewise. + * rtl.h: Likewise. + * stmt.c: Likewise. + * tree.h: Likewise. + * doc/cpp.texi: Likewise. + * doc/c-tree.texi: Likewise. + * doc/extend.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/objc.texi: Likewise. + * doc/tm.texi: Likewise. + +2001-10-08 Richard Henderson + + * varasm.c (set_named_section_flags): Initialize "declared". + +2001-10-08 Robert Lipe + + * varasm.c (struct in_named_entry): Add declared. + (named_section_first_declaration): New function. + (default_elf_asm_named_section): Use it. + * output.h (named_section_first_declaration): New. + +2001-10-08 Richard Henderson + + * i386.md (movsi_xor): Export. + (setcc peep2): Use it when available; add an alternative to + match zero_extendhisi2_and. + +2001-10-08 Kaveh R. Ghazi + + * romp-protos.h (romp_initialize_trampoline): New function. + * romp.c (romp_initialize_trampoline): Likewise. + * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of + romp_initialize_trampoline. + +2001-10-08 Kaveh R. Ghazi + + * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'. + * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + +2001-10-08 Franz Sirl + + * unroll.c (loop_iterations): Extend check for multiple back edges. + +2001-10-08 Alexandre Oliva + + * langhooks.h: New file. + * Makefile.in (OBJS): Added langhooks.o. + (c-lang.o): Depend on langhooks.h. + (c-common.o): Don't depend on tree-inline.h. + (tree-inline.o): Depend on toplev.h. + (langhooks.o): New rule. + * c-common.c: Don't include tree-inline.h. + (c_mark_lang_decl): Mark argument c as unused. + (c_common_lang_init): Don't initialize hooks here. + * c-lang.c: Include langhooks.h, then override some macros. + (lang_hooks): Initialize with macros in langhooks.h. + (c_init): Don't initialize hooks here. + * toplev.c (struct lang_hooks_for_tree_inlining): New struct. + (struct lang_hooks): Add tree_inlining. Refer to langhooks.h. + * tree-inline.c: Include toplev.h. Don't define hook variables. + * tree-inline.h: Don't define hook types nor declare hook + variables. Move macros to... + * langhooks.c: ... new file, as functions. Adjust all callers. + +2001-10-08 Jeffrey A Law + + * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call + purge_mem_unchanging_flag on all instructions, not just on those + before NOTE_INSN_FUNCTION_BEG. + +2001-10-08 Neil Booth + + * cppmacro.c (_cpp_create_definition): Leave comments off. + + * doc/cpp.texi: Update. + +2001-10-08 DJ Delorie + + * c-decl.c (grokfield): Make sure the only unnamed fields + we're allowing are either structs or unions. + * doc/extend.texi: Add documentation for the unnamed field + extension. + +2001-10-08 Zack Weinberg + + * aclocal.m4 (gcc_AC_PROG_GNAT): New. + * configure.in: Use it. + * configure: Regenerated. + * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64, + config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS. + +2001-10-08 Neil Booth + + * cppfiles.c (open_file): Don't mark zero-length files + never-reread here. Don't output diagnostics here either. + (stack_include_file): Mark them never-reread here. + (_cpp_read_file): Update. + +2001-10-08 Richard Henderson + + * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New. + +2001-10-08 Richard Henderson + + * expr.c (store_expr): When converting a CONST_INT for storage + in a SUBREG, convert it to both SUBREG modes before stripping + the SUBREG. + +2001-10-08 Richard Henderson + + * varasm.c (restore_varasm_status): New. + * function.h: Declare it. + * function.c (pop_function_context_from): Call it. + +2001-10-08 Richard Henderson + + * c-common.h (struct c_lang_decl): Add declared_inline. + * c-tree.h (DECL_DECLARED_INLINE_P): New. + * c-lang.c (c_disregard_inline_limits): Use it. + * c-decl.c (duplicate_decls): Likewise. + (pushdecl, redeclaration_error_message): Likewise. + (pushdecl): Allocate DECL_LANG_SPECIFIC if needed. + (grokdeclarator): Likewise. Set DECL_DECLARED_INLINE_P. + Set DECL_INLINE if -finline-functions. + (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here. + +2001-10-08 Neil Booth + + * cppmacro.c (funlike_invocation_p): Move some logic to caller + in enter_macro_context. Create a padding token in its own context + if necessary when the search for '(' fails. + (enter_macro_context): Update. + +2001-10-07 Joseph S. Myers + + * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c, + genmultilib, toplev.c: Fix spelling errors of "separate" as + "seperate", and corresponding spelling errors of related words. + +2001-10-07 Kaveh R. Ghazi + + * builtins.c (expand_builtin_setjmp_receiver): Const-ify. + * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length): + Likewise. + * c-dump.c (dump_option_value_info): Likewise. + * c-format.c (format_length_info, format_char_info, + format_flag_spec, format_flag_pair, format_kind_info): Likewise. + * collect2.c (names): Likewise. + * cppdefault.h (default_include): Likewise. + * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise. + * flow.c (life_analysis): Likewise. + * gcc.c (dir_separator_str, modify_target, option_map, + target_option_translations, spec_list_1, extra_specs_1, + init_spec): Likewise. + * gcov.c (gcov_version_string): Likewise. + * genattr.c (write_units): Likewise. + * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise. + * gengenrtl.c (rtx_definition, defs): Likewise. + * genrecog.c (pred_table): Likewise. + * global.c (global_alloc): Likewise. + * lcm.c (optimize_mode_switching): Likewise. + * local-alloc.c (find_free_reg): Likewise. + * params.h (param_info): Likewise. + * predict.c (predictor_info): Likewise. + * protoize.c (unexpansion_struct): Likewise. + * real.c (bmask): Likewise. + * recog.h (insn_operand_data, insn_data): Likewise. + * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise. + * stmt.c (expand_nl_goto_receiver): Likewise. + * toplev.c (da, debug_args, lang_opt, documented_lang_options, + target_switches, target_options): Likewise. + * tradcif.y (token, tokentab2, yylex): Likewise. + * tree.h (attribute_spec): Likewise. + + * alpha.c (override_options, alpha_lookup_xfloating_lib_func): + Likewise. + * arc.c (arc_output_function_epilogue): Likewise. + * arm.c (processors, all_cores, all_architectures, + arm_override_options, isr_attribute_arg, isr_attribute_args, + arm_isr_value): Likewise. + * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc): + Likewise. + * c4x.c (c4x_int_reglist): Likewise. + * d30v.c (override_options): Likewise. + * h8300.c (shift_insn): Likewise. + * i386.c (size_cost, i386_cost, i486_cost, pentium_cost, + pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost, + ix86_expand_sse_comi, ix86_expand_sse_compare, override_options, + builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg, + ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise. + * i386.h (processor_costs, ix86_cost): Likewise. + * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise. + * m68hc11.h (processor_costs, m68hc11_cost): Likewise. + * m68k.c (codes_68881, codes_FPA): Likewise. + * m88k.c (mode_from_align, max_from_align, all_from_align, + best_from_align, m_options): Likewise. + * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise. + * mcore.c (mode_from_align): Likewise. + * mips/elf64.h (UNIQUE_SECTION): Likewise. + * mips/iris6gld.h (UNIQUE_SECTION): Likewise. + * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise. + * mips.h (mips_regno_to_class): Likewise. + * ns32k.c (scales): Likewise. + * pa.c (import_string, magic_milli): Likewise. + * rs6000.c (alt_reg_names, rs6000_override_options): Likewise. + * sparc.c (leaf_reg_remap, sparc_override_options, + reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders): + Likewise. + * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise. + +2001-10-07 Dale Johannesen + + * reload1.c (reload_reg_free_p): Teach register interference + checking that multiple output reloads are emitted in + reverse order. + reload1.c (reload_reg_reaches_end_p): Ditto. + reload1.c (reloads_conflict): Ditto. + +2001-10-07 Joseph S. Myers + + * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and + NULL_TREE inside @code. + +2001-10-07 Joseph S. Myers + + * doc/gcc.texi: Document consistent style of "32-bit", + "Objective-C", and "@code{NULL}". + +2001-10-06 Zack Weinberg + + * cpplex.c (enum spell_type): Add SPELL_NUMBER. + (cpp_token_len, cpp_spell_token, cpp_output_token, + _cpp_equiv_tokens): Handle it. + * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and + CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF. + * cppexp.c (_cpp_parse_expr): Use the correct operator code in + error messages. + +Sat Oct 6 07:42:39 2001 Richard Kenner + + * gcc.c (default_compilers): Remove .ada. + +2001-10-06 Neil Booth + + * doc/cppinternals.texi: Update. + +2001-10-06 Zack Weinberg + + * gcc.c (main): Set this_file_error if the appropriate + compiler for a language has not been installed. + +2001-10-06 Ulrich Weigand + + * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set. + +2001-10-05 Joseph S. Myers + + * gccbug.in (CATEGORIES): Add ada. + +2001-10-05 Catherine Moore + + * config/stormy16/stormy-abi: Document abi changes. + * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine. + (ICALL_REGS): New register class. + (NUM_ARGUMENT_REGISTERS): Now 6. + (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs + in registers. + (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS. + * config/stormy16.md (call_internal, call_value_internal, + indirect_jump): Use new 'z' constraint. + +2001-10-05 Neil Booth + + * doc/cppinternals.texi: Update. + +2001-10-05 Richard Henderson + + * dwarf2out.c (FRAME_BEGIN_LABEL): New. + (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and + the gas section-name-as-label feature. + +2001-10-05 Neil Booth + + * doc/cppinternals.texi: Update. + +Fri Oct 5 08:17:46 2001 Richard Kenner + + * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode + to ensure valid SImode constants. + +2001-10-05 Alexandre Oliva + + * Makefile.in (c-decl.o): Depend on tree-inline.h. + (c-lang.o): Likewise, as well as insn-config.h and integrate.h. + * c-decl.c: Include tree-inline.h. + (c_expand_body): Call optimize_inline_calls. Determine whether + a function is inlinable upfront, and only clear + DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't. + * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h. + (c_disregard_inline_limits): New function. + (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise. + (c_post_options): Enable tree inlining if inlining is enabled. + Don't inline trees when instrumenting functions. + (c_init): Initialize lang_disregard_inline_limits and + lang_cannot_inline_tree_fn. + * tree-inline.c (initialize_inlined_parameters): Handle calls + with fewer arguments than declared parameters, and fewer + parameters than passed arguments. Don't assume value is a + DECL. + (declare_return_variable): Convert return value back to the + original type, if it was promoted. + (tree_inlinable_function_p): New function. + (inlinable_function_p): Don't look at DECL_INLINE if we're + inlining all functions. Make it work with a NULL id. + Re-check DECL_UNINLINABLE after language-specific checks. + * tree-inline.h (tree_inlinable_function_p): Declare it. + * integrate.c (save_for_inline): Don't bother to prepare argvec + when not inlining. + * cse.c (check_for_label_ref): Don't check deleted labels. + + * Makefile.in (tree-inline.o): Depend on newly-included headers. + * tree-inline.c: Include headers needed for the functions moved in. + (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c. + (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. + (copy_body, initialize_inlined_parameters): Likewise. + (declare_return_variable, inlinable_function_p): Likewise. + (expand_call_inline, expand_calls_inline): Likewise. + (optimize_inline_calls, clone_body): Likewise. + (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c. + (copy_tree_r, remap_save_expr): Likewise. + +2001-10-04 Alexandre Oliva + + * Makefile.in (OBJS): Added tree-inline.o. + (c-common.o): Depend on tree-inline.h. + (tree-inline.o): New target. + * c-common.c: Include tree-inline.h. + (c_mark_lang_decl): Don't mark saved_tree. + (c_common_lang_init): Set lang_anon_aggr_type_p. + * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h. + (struct c_lang_decl): Moved saved_tree to tree_decl. + * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs. + * integrate.h (function_attribute_inlinable_p): Declare it. + * integrate.c (function_attribute_inlinable_p): Export it. + * tree-inline.c: New file. Define variables declared in... + * tree-inline.h: New file. Declare functions to be moved to + tree-inline.c. Define macros and declare types and hooks for + language-specific tree inlining. + (flag_inline_trees): Moved definition from cp/decl2.c. + * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h. + (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h. + (struct tree_decl): Moved saved_tree from c_lang_decl and + inlined_fns from C++'s lang_decl. + +2001-10-04 Loren J. Rittle + + * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which + propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS. + +2001-10-04 Neil Booth + + * doc/cppinternals.texi: Update. + +2001-10-04 Eric Christopher + + * config/mips/mips.c (init_cumulative_args): Remember to set + cum->prototype. + * config.gcc: Redo linux configuration. Add target_cpu_default + of soft-float to all mipsisa32 combinations and tx39. + * config/mips/linux.h: Remove include of mips.h. + +2001-10-03 Loren J. Rittle + + * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS, + HOST_LDFLAGS and HOST_CPPFLAGS. + +2001-10-03 Ziemowit Laski + + * c-parse.in (objc_inherit_code, objc_pq_context, + objc_public_flag): Make static. + (objc_interface_context, objc_implementation_context, + objc_method_context, objc_ivar_chain, objc_ivar_context): Move to + global tree array in objc/objc-act.[ch]. + (methoddef): Remove unnecessary code. + + * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry): + Hoist struct definitions to objc-act.h. + (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count, + cat_count): Place declaration in objc-act.h. + (objc_tree_index): Move enumeration to objc-act.h. + (objc_global_trees): Place declaration and macro accessors in + objc-act.h. + (implementation_context): Remove duplicate; use + objc_implementation_context instead: + (method_context): Remove duplicate; use objc_method_context + instead. + (objc_ellipsis_node, objc_method_prototype_template, + implemented_classes, function_type): Move global vars to + objc_global_trees. + (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE. + (build_message_expr): Move actual construction of ObjC message + send nodes to finish_message_expr. + (finish_message_expr): New routine, contains code formerly in + build_message_expr. + * objc/objc-act.h (finish_message_expr): New prototype. + (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove + declarations; these vars are now part of objc_global_trees. + (objc_tree_index, objc_global_trees): Move definitions from + objc-act.c. + * objc/objc-tree.def: Update copyright info. + +Wed Oct 3 12:22:11 EDT 2001 John Wehle (john@feith.com) + + * dwarf2asm.c (unaligned_integer_asm_op): Abort if + op is NULL. + * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use + only if TARGET_ARCH64. + +2001-10-02 Bernd Schmidt + + * doc/extend.texi: Fix some problems with previous checkin. + * doc/invoke.texi: Likewise. + +2001-10-02 Neil Booth + + * cpphash.h: Update comments. + (cpp_context): Update. + (spec_nodes): Remove n__Pragma. + * cppinit.c (cpp_create_reader): Update. + (builtin_array): Add _Pragma. + * cpplib.h: Update comments. + (NODE_DISABLED, BT_PRAGMA): New. + (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes. + * cppmacro.c (struct cpp_macro): Remove disabled. + (builtin_macro): Return int, handle _Pragma, push the new token + on the context stack. + (funlike_invocation_p): Unconstify, update. + (enter_macro_context): Handle builtins here. + (replace_args, push_token_context, push_ptoken_context): + Update for prototype changes. + (_cpp_pop_context): Update. + (cpp_get_token): Don't handle buitins, nor _Pragma here. + (cpp_sys_macro_p): Update. + (_cpp_free_definition): Clear disabled flag. + (_cpp_create_definition): Upate. + * cppmain.c: Update comments. + +Tue Oct 2 12:46:01 CEST 2001 Bo Thorsen , + Andreas Jaeger , + Jan Hubicka + + * doc/invoke.texi (i386 Options): Document x86-64 options. + (i386 and x86-64 Options): Rename i386 options section. + + * config/i386/i386.h (TARGET_UNWIND_INFO): New. + (TARGET_SWITCHES): Add -munwind-info. + (MASK_NO_UNWIND_INFO): New. + (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for + biarch compilation. + (ASM_OUTPUT_DOUBLE_INT): New. + + * config/i386/linux64.h: New spec file for Linux x86-64 support. + * config.gcc: Fix tm_file settings for x86-64. + * config/i386/x86-64.h: New file with OS independent x86-64 + definitions. + * config/i386/biarch64.h: New file used to configure compiler + to biarch/64bit compilation. + + * config/i386/i386.c: (override_options): Set flags default + for 64bit compilation. + +Tue Oct 2 12:46:01 CEST 2001 Jan Hubicka + + * i386.c (legitimize_pic_address): Add missing bits of 64bit support. + (ix86_expand_int_movcc): Optimize DImode conditional moves with + constants on x86_64. + (ix86_attr_length_immediate_default): Support MODE_DI. + * i386.md (fixdi splitter): Add missing "&& 1" in splitter + condition. + (indirect_jump, tablejump): Turn into expander. + +2001-10-02 Joseph S. Myers + + * c-common.c (c_format_attribute_table): Make format and + format_arg attributes apply to function types rather than to + decls. + (is_valid_printf_arglist): Construct an attribute list and pass + that to check_function_format rather than a name. + * c-common.h (check_function_format): Adjust prototype. + * c-decl.c (duplicate_decls): Preserve attributes from type of + built-in decl when allowing for harmless conflict in types. + * c-format.c (record_function_format, + record_international_format, function_format_list, + international_format_info, international_format_list): Remove. + (function_format_info): Remove next, name and assembler_name. + Make format_num and first_arg_num be unsigned HOST_WIDE_INT. + (decode_format_attr): New. + (handle_format_attribute): Handle receiving a type rather than a + decl. Call decode_format_attr. Store format information in a + function_format_info. + (handle_format_arg_attribute): Correct comment. Handle receiving + a type rather than a decl. Use unsigned HOST_WIDE_INT for + arg_num. + (check_format_info_recurse, check_format_info_main): Take argument + numbers as unsigned HOST_WIDE_INT. + (check_function_format): Take a list of attributes from the + function type rather than a name or assembler name. Check for + format attributes in that list and the attributes on the type of + the current function rather than looking through + function_format_list. + (check_format_info): Use unsigned HOST_WIDE_INT for argument + numbers. + (check_format_info_recurse): Take format_arg attributes from the + type of the function calls rather than using + international_format_list. Allow for multiple format_arg + attributes. + * c-typeck.c (build_function_call): Pass type attributes to + check_function_format rather than name or assembler name. Don't + require there to be a name or assembler name to check formats. + +2001-10-02 Joseph S. Myers + + * attribs.c (decl_attributes): Possibly call + insert_default_attributes to insert default attributes on + functions in a lazy manner. + * builtin-attrs.def: New file; define the default format and + format_arg attributes. + * c-common.c (c_format_attribute_table): Move to earlier in the + file. + (c_common_nodes_and_builtins): Initialize format_attribute_table. + (enum built_in_attribute, built_in_attributes, + c_attrs_initialized, c_init_attributes, + c_common_insert_default_attributes): New. + (c_common_lang_init): Don't initialize format_attribute_table. Do + call c_init_attributes. + * Makefile.in (c-common.o): Depend on builtin-attrs.def. + * c-common.h (init_function_format_info): Don't declare. + (c_common_insert_default_attributes): Declare. + * c-decl.c (implicitly_declare, builtin_function): Call + decl_attributes. + (init_decl_processing): Don't call init_function_format_info. + (insert_default_attributes): New. + * c-format.c (handle_format_attribute, + handle_format_arg_attribute): Be quiet about inappropriate + declaration when applying default attributes. + (init_function_format_info): Remove. + * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN. + (insert_default_attributes): Declare. + +2001-10-02 Joseph S. Myers + + * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94. + +2001-10-01 Jim Wilson + + * sched-deps.c (add_dependence): When elide conditional dependence, + check that insn doesn't modify cond2. + +2001-10-01 Dale Johannesen + + * config/rs6000/rs6000.h (enum processor_type): Add support + for 7400 (G4) and 7450. + (RTX_COSTS): Ditto. + * config/rs6000/rs6000.c (rs6000_override_options): Ditto. + (rs6000_issue_rate): Ditto. + (rs6000_adjust_cost): Fix cycle counts for compares. + (debug_stack_info): Fix an obvious typo. + * config/rs6000/rs6000.md: Add functional units for 7400 and 7450. + * doc/invoke.texi: Document. + * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable + for Darwin. + (PROCESSOR_DEFAULT): Ditto. + +2001-10-01 Loren J. Rittle + + * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC. + (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for + later recursive make invocation. + +2001-10-01 Hans Boehm + + * optabs.c (emit_libcall_block): When using non-call exceptions, + don't add REG_LIBCALL reg notes to trapping calls. + +2001-10-01 David Billinghurst + + * flow.c (propagate_block_delete_libcall): Remove unused first arg + (propagate_one_insn): Update for above change + +2001-10-01 David Billinghurst + + * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase, + _Unwind_GetTextRelBase): Argument is unused. + +Mon Oct 1 19:20:57 2001 Richard Kenner + + * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR. + Loop through NOPs, placeholders, and components. + Don't go through NOPs if change mode. + (record_alias_subset): Do nothing if SUBSET and SET are the same. + * emit-rtl.c (set_mem_alias_set): Enable check. + * expr.c (find_placeholder): New function. + (expand_expr, case PLACEHOLDER_EXPR): Use it. + (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need + to modify it and avoid unneeded copies. + * expr.h (expand_expr): Always define. + (find_placeholder): New declaration. + +2001-10-01 Stephane Carrez + + * config/m68hc11/m68hc11.md ("add-split"): Fix add split when + operand 2 is the stack pointer. + ("addr-peephole"): Fix address computation peephole when operand 2 + is the stack pointer. + +Mon Oct 1 09:26:41 2001 Richard Kenner + + * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set. + (ix86_setup_incoming_varargs): Likewise. + +2001-10-01 Jason Merrill + + * stor-layout.c (layout_type): Don't complain about too-large + array here. + +Mon Oct 1 06:43:41 2001 Richard Kenner + + * function.c (keep_stack_depressed): Don't use delete_insn. + + * expr.h (set_mem_alias_set): Move decl to here. + * rtl.h (mem_attrs): New typedef and struct. + (union rtunion_def): Add field for mem_attrs. + (X0MEMATTR, MEM_ATTRS): New macros. + (MEM_ALIAS_SET): Use MEM_ATTRS. + (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros. + (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS. + (set_mem_alias_set): Delete decl from here. + + * alias.c (set_mem_alias_set): Delete from here. + * emit-rtl.c (mem_attrs_htab): New variable. + (rtx_htab_mark, rtx_htab_mark_1): Deleted. + (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions. + (mem_attrs_mark, get_mem_attrs): Likewise. + (gen_rtx_MEM): Clear MEM_ATTRS. + (set_mem_attributes): Move to here. + (set_mem_alias_set): Likewise, and call get_mem_attrs. + (init_emit_once): const_int_htab now deletable htab. + Initialize mem_attrs_htab. + * explow.c (set_mem_attributes): Delete from here. + * function.c (put_var_into_stack): Clear MEM_ATTRS. + (gen_mem_addressof): Likewise; rework to use set_mem_attributes. + * ggc-common.c (ggc_mark_rtx_children, case MEM): New case. + * reload1.c (reload): Rework changing REG to MEM. + +2001-09-30 H.J. Lu + + * acconfig.h (PREFIX_INCLUDE_DIR): New variable. + * config.in: Rebuild. + +2001-09-30 Stephane Carrez + + * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints. + ("tsthi_1"): Avoid allocation in register y. + ("*movqi_68hc12"): Reorganize and fix constraints. + ("zero_extendqisi2"): Prefer d over x and y for operand 1. + ("addqi3"): Likewise. + ("addhi3"): Fix constraints. + ("*logicalhi3_zexthi"): Disparage soft registers. + +2001-09-30 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp + to tmp reg. + +2001-09-30 Stephane Carrez + + * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so + that we use setjmp/longjmp exceptions. + +2001-09-30 Neil Booth + + * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, + POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk, + struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve, + _cpp_pool_alloc, _cpp_next_chunk): Remove. + (_cpp_extend_buff, BUFF_ROOM): Update. + (_cpp_append_extend_buff): New. + (struct cpp_reader): Remove macro_pool, add a_buff. + * cppinit.c (cpp_create_reader): Initialize a_buff, instead of + macro_pool. + (cpp_destroy): Free a_buff instead of macro_pool. + * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk, + new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve, + _cpp_pool_alloc, ): Remove. + (parse_number, parse_string): Update use of _cpp_extend_buff. + (_cpp_extend_buff): Update. + (_cpp_append_extend_buff, cpp_aligned_alloc): New. + * cpplib.c (glue_header_name, parse_answer): + Update use of _cpp_extend_buff. + (cpp_register_pragma, cpp_register_pragma_space): Use + _cpp_aligned_alloc. + (do_assert, do_unassert): Check for EOL, update. + * cppmacro.c (stringify_arg, collect_args): Update to use + _cpp_extend_buff and _cpp_append_extend_buff. + (save_parameter, parse_params, alloc_expansion_token, + _cpp_create_definition): Rework memory management. + +2001-09-29 Andris Pavenis + + * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't + update md_exec_prefix. + (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point + to string constant. + +2001-09-30 Ulrich Weigand + + * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode. + (SELECT_CC_MODE): Use s390_select_ccmode. + * config/s390/s390-protos.h (s390_select_ccmode): Add. + * config/s390/s390.c (s390_select_ccmode): New. + (s390_match_ccmode): Add CCLmode. + (s390_branch_condition_mask, s390_branch_condition_mnemonic): New. + (output_branch_condition, output_inverse_branch_condition): Removed. + (print_operand): Use s390_branch_condition_mnemonic. + * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2, + subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode. + (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New. + + * config/s390/s390.c (check_and_change_labels): Preserve CC mode + when converting conditional branches to far branches. + * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si, + cmpint_di): Use CCSmode instead of CCUmode. + + * config/s390/s390.c (legitimate_la_operand_p): New. + * config/s390/s390-protos.h (legitimate_la_operand_p): Add. + * config/s390/s390.md (movsi): Convert load address patterns to + arithmetic operations when necessary. + (addaddr_picR, addaddr_picL, addaddr_picN): Removed. + (do_la): Renamed to *do_la and use legitimate_la_operand_p. + (*do_la_reg_0): Don't use before reload. + + * config/s390/s390.c (legitimize_address): Make more efficient + use of two-register addressing mode. + + * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog + with -mno-backchain in some corner cases. + + * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute. + +2001-09-29 Alexandre Oliva + + * reload.c (find_reloads): Mark new USE insns with QImode. + (find_reloads_toplev, find_reloads_address, subst_reg_equivs, + find_reloads_subreg_address): Likewise. + * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are + encountered. + * reload1.c (reload_combine_note_use): Likewise, inside USEs and + CLOBBERs. + (reload): Make sure there are no USEs with mode other than + VOIDmode. At the end, remove those marked with QImode. + +2001-09-29 Per Bothner + + * cppdefault.c (cpp_include_defaults): Also search PREFIX_INCLUDE_DIR. + * Makefile.in (includedir): Rename to local_includedir. + (includedir): Define as $(prefix)/include. + * config.in (PREFIX_INCLUDE_DIR): New variable. + * configure.in (PREFIX_INCLUDE_DIR): Test for new variable. + +2001-09-29 Bernd Schmidt + + * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and + storehps builtins. + * doc/extend.texi (Vector Extensions): New node. + * doc/invoke.texi (Machine Dependent Options): Add documentation for + i386 -mmmx, -msse, -m3dnow. + +Sat Sep 29 15:08:16 CEST 2001 Jan Hubicka + + * doc/invoke.texi (Optimize Options): Revert an accidental checkin. + +2001-09-29 Hans-Peter Nilsson + + * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn. + + * doc/invoke.texi (Optimize Options): Delete spurious @table. + +2001-09-28 Richard Henderson + + * varasm.c (assemble_integer): Bound alignment check by + BIGGEST_ALIGNMENT. + + * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails. + +2001-09-28 Rainer Orth + + * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define. + +2001-09-25 Bernd Schmidt + + Mostly from Graham Stott + * c-common.c (type_for_mode): Add support for V2SFmode. + * tree.c (build_common_tree_nodes_2): Likewise. + * tree.h (enum tree_index, global_trees): Likewise. + * config/i386/i386.c (x86_3dnow_a): New variable. + (override_options): Support 3Dnow extensions. + (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of + Athlon's version of 3Dnow. + (ix86_init_mmx_sse_builtins): Create 3Dnow builtins. + (ix86_expand_builtin): Handle them. + (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow. + * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW, + TARGET_3DNOW_A): New macros. + (TARGET_SWITCHES): Add 3Dnow switches. + (VALID_MMX_REG_MODE_3DNOW): New macro. + (VECTOR_MODE_SUPPORTED_P): Use it. + (enum ix86_builtins): Add entries for 3Dnow builtins. + * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id, + pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3, + pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw, + pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2, + pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, + pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns. + (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart, + mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, + mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence, + sfence_insn, prefetch): Make these available if TARGET_SSE or + TARGET_3DNOW_A. + +Fri Sep 28 19:18:40 CEST 2001 Jan Hubicka + + * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg, + ix86_va_start, ix86_build_va_list): Declare. + * i386.c (ix86_setup_incoming_varargs, ix86_va_arg, + ix86_va_start, ix86_build_va_list): New global functions. + * i386.md (sse_prologue_save_insn): New insn. + (sse_prologue_save): New expander. + * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START, + BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros. + +2001-09-28 Neil Booth + + * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff): + Use size_t everywhere, make definitions consistent with + prototypes. + +Fri Sep 28 14:59:34 CEST 2001 Jan Hubicka + + * gcse.c (replace_store_insn): Use delete_insn. + * loop.c (move_movables): Likewise; avoid delete_insn + from clobbering notes moved elsewhere. + (check_dbra_loop): Use delete_insn. + * ssa.c (convert_from_ssa): Likewise. + * cse.c (cse_insn): Use delete_insn. + +2001-09-28 Neil Booth + + * cpphash.h (struct cpp_buff): Make unsigned. + (_cpp_get_buff): Take length of size_t. + (_cpp_unaligned_alloc): New. + (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New. + (struct cpp_reader): Remove ident_pool. Add u_buff. + * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool. + (cpp_destroy): Destroy u_buff, not ident_pool. + * cpplex.c (parse_number, parse_string, save_comment, + cpp_token_as_text): Update to use the unaligned buffer. + (new_buff): Make unsigned. + (_cpp_unaligned_alloc): New. + * cpplib.c (glue_header_name): Update to use the unaligned buffer. + * cppmacro.c (new_number_token, builtin_macro, stringify_arg): + Similarly. + (collect_args): Make unsigned. + +2001-09-27 Zack Weinberg + + * cpplex.c (cpp_output_token): Use a putc loop for + SPELL_OPERATOR, and fwrite for SPELL_IDENT. + + * configure.in: Detect fwrite_unlocked and fprintf_unlocked. + * configure, config.in: Regenerate. + * system.h: Replace fwrite and fprintf with their unlocked + variants if available. + +2001-09-27 Richard Henderson + + * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame + in favor of .eh_frame. + +2001-09-27 Aldy Hernandez + + * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3 + to macros. + (LIBCALL_VALUE): Likewise. + +2001-09-27 Neil Booth + + * cpphash.h: Update comment. + * cpplex.c: Update comments. + (_cpp_can_paste): Remove. + * cpplib.h (_cpp_can_paste): Remove. + * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the + lexer rather than _cpp_can_paste. + +2001-09-27 Neil Booth + + * doc/cppinternals.texi: Update. + +2001-09-26 Neil Booth + + * cpphash.h (struct cpp_pool): Remove locks and locked. + (struct cpp_context): Add member buff. + (struct cpp_reader): Remove member argument_pool. + (_cpp_lock_pool, _cpp_unlock_pool): Remove. + * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead. + * cpplex.c (chunk_suitable): Remove pool argument. + (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New. + (new_buff, _cpp_extend_buff): Update. + (_cpp_get_buff): Fix silly pointer bug. Be more selective about + which buffer is returned. + (_cpp_next_chunk, _cpp_init_pool): Pool locking removed. + (_cpp_lock_pool, _cpp_unlock_pool): Remove. + * cppmacro.c (lock_pools, unlock_pools): Remove. + (push_ptoken_context): Take a _cpp_buff. + (enter_macro_context): Pool locking removed. + (replace_args): Use a _cpp_buff for the replacement list with + arguments replaced. + (push_token_context): Clear buff. + (expand_arg): Use _cpp_pop_context. + (_cpp_pop_context): Free a context's buffer, if any. + +2001-09-26 DJ Delorie + + * c-typeck.c (digest_init): Check for sizeless arrays. + +2001-09-26 Richard Henderson + + * optabs.c (init_one_libfunc): Create a dummy function type + instead of using error_mark_node. + +2001-09-26 Neil Booth + + * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff, + _cpp_extend_buff, _cpp_free_buff): New. + (struct cpp_reader): New member free_buffs. + * cppinit.c (cpp_destroy): Free buffers. + * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff, + _cpp_extend_buff, _cpp_free_buff): New. + * cpplib.h (struct cpp_options): Remove unused member. + * cppmacro.c (collect_args): New. Combines the old parse_arg + and parse_args. Use _cpp_buff for memory allocation. + (funlike_invocation_p, replace_args): Update. + +Wed Sep 26 13:20:51 CEST 2001 Jan Hubicka + + * final.c (final_scan_insn): Use delete_insn instead of delete_note. + +2001-09-25 Andrew Haley + + * except.c (sjlj_mark_call_sites): Change address inside sequence. + +2001-09-24 Andrew Haley + + * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with + glibc. + +2001-09-25 Janis Johnson + Jim Wilson + + * doc/install.texi (Specific, ia64-*-linux): Document. + +Tue Sep 25 17:13:56 CEST 2001 Jan Hubicka + + * Makefile.in (cfgrtl.o): Add. + * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, + free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, + free_aux_for_edge): Declare. + * cfg.c + (HAVE_return): Undefine. + * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, + free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, + free_aux_for_edge): New global functions. + (first_delete_block): New static variable. + (init_flow): Clear first_delete_block. + (basic_block_for_insn, label_value_list, tail_recursion_label_list, + can_delete_note_p, can_delete_label_p, commit_one_edge_insertion, + try_redirect_by_replacing_jump, last_loop_beg_note, + back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect, + delete_insn, delete_insn_chain, create_basic_block_structure, + create_basic_block, flow_delete_block, compute_bb_for_insn, + free_bb_for_insn, update_bb_for_insn, set_block_for_insn, + set_block_for_new_insns, split_block, merge_blocks_nomove, + block_label, try_redirect_by_replacing_jump, last_loop_beg_note, + redirect_edge_and_branch, force_nonfallthru_and_redirect, + force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge, + tidy_fallthru_edges, split_edge, insert_insn_on_edge, + commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb, + debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges, + purge_all_dead_edges): Move to .... + * cfgrtl.c: New file; .... Here. + + * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block. + (reroder_basic_block): Use alloc_aux_for_blocks. + * predict.c (estimate_bb_frequencies): Likewise; use + alloc_aux_for_edges. + * profile.c (compute_branch_probabilities): Likewise. + (branch_prob): Likewise. + * reg-stack.c (reg_to_stack): Likewise. + + * emit-rtl.c (emit_insns_after): Never return NULL. + + * basic-block.h (set_block_for_new_insns): Delete. + * cfgrtl.c (set_block_for_new_insns): Delete. + + * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn + calls when crossjumping. + + * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call. + * unroll.c (copy_loop_body): Use delete_insn. + + * final.c (final, final_scan_insn): Use delete_insn/delete_note. + * function.c (fixup_var_refs_insn, fixup_var_refs_1, + keep_stack_depressed): Likewise. + * gcse.c (cprop_cc0_jump): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * loop.c (scan_loop, loop_delete_insns): Likewise. + * regmove.c (try_auto_increment, fixup_match_1): Likewise. + * reload1.c (reload, calculate_needs_all_insns, reload_as_needed, + delete_output_reload, delete_address_reloads_1, + reload_cse_delete_noop_set, reload_combine, reload_cse_move2add): + Likewise. + * sibcall.c (replace_call_placeholder): Likewise. + * cse.c (cse_insn): Likewise. + +2001-09-25 Bernd Schmidt + + From Graham Stott + (def_builtin): Only define builtins appropriate for target_flags. All + callers changed. + (builtin_decsription): Add new field mask which is used to determine + when to define the builtin via the macro def_builtin. + + (bdesc_comi): Initialize new mask fields. + (bdesc_2srg): Likewise. + (bdesc_1arg): Likewise. + + * config/i386/i386.c (ix86_init_builtins): Correct return type + building v4hi_ftype_v4hi_int_int tree node. + (ix86_expand_sse_comi): Fix typo swapping operands. + Don't swap comparison condition, it is already swapped. + (ix86_expand_sse_compare): Before swapping operands + move operand 1 into new rtx and not the target rtx. + Don't swap comparison condition, it is already swapped. + Always check whether we need to create a new TARGET. + + * config/i386/i386.md: (sse_comi) Fix typos. + (sse_ucomi): Likewise. + (cvtss2si): Fix operand 0 contraint. + (cvttss2si): Likewise. + (sse_unpckhps): Fix mode for operand 2. + (sse_unpcklps): Likewise. + +2001-09-25 Graham Stott + + * sibcall.c (skip_copy_to_return_value): Tighten return value + copy check. + +2001-09-24 David Edelsohn + + * rs6000.c (lwa_operand): Address must be word aligned. + +Mon Sep 24 18:57:59 2001 Richard Kenner + + * tree.c (type_hash_marked_p): Consider as marked if debug symbol + number has been set. + (type_hash_mark): Mark type itself. + +2001-09-24 Neil Booth + + * c-lex.c (cb_def_pragma): Update. + (c_lex): Update, and skip padding. + * cppexp.c (lex, parse_defined): Update, remove unused variable. + * cpphash.h (struct toklist): Delete. + (union utoken): New. + (struct cpp_context): Update. + (struct cpp_reader): New members eof, avoid_paste. + (_cpp_temp_token): New. + * cppinit.c (cpp_create_reader): Update. + * cpplex.c (_cpp_temp_token): New. + (_cpp_lex_direct): Add PREV_WHITE when parsing args. + (cpp_output_token): Don't print leading whitespace. + (cpp_output_line): Update. + * cpplib.c (glue_header_name, parse_include, get__Pragma_string, + do_include_common, do_line, do_ident, do_pragma, + do_pragma_dependency, _cpp_do__Pragma, parse_answer, + parse_assertion): Update. + (get_token_no_padding): New. + * cpplib.h (CPP_PADDING): New. + (AVOID_LPASTE): Delete. + (struct cpp_token): New union member source. + (cpp_get_token): Update. + * cppmacro.c (macro_arg): Convert to use pointers to const tokens. + (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p, + replace_args, quote_string, stringify_arg, parse_arg, next_context, + enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput, + _cpp_backup_tokens, _cpp_create_definition): Update. + (push_arg_context): Delete. + (padding_token, push_token_context, push_ptoken_context): New. + (make_string_token, make_number_token): Update, rename. + (cpp_get_token): Update to handle tokens as pointers to const, + and insert padding appropriately. + * cppmain.c (struct printer): New member prev. + (check_multiline_token): Constify. + (do_preprocessing, cb_line_change): Update. + (scan_translation_unit): Update to handle spacing. + * scan-decls.c (get_a_token): New. + (skip_to_closing_brace, scan_decls): Update. + * fix-header.c (read_scan_file): Update. + + * doc/cpp.texi: Update. + +2001-09-24 Kaveh R. Ghazi + + * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC. Avoid + leak by passing malloc'ed pointer to reconcat, not concat. + +2001-09-24 DJ Delorie + + * varasm.c (array_size_for_constructor): Handle STRING_CSTs also. + +2001-09-24 Ulrich Weigand : + + * flow.c (delete_dead_jumptables): Delete jumptable if the only + reference is from the literal pool. + +2001-09-24 Janis Johnson + + * doc/install.texi (Final install): Request additional information + in mail about successful builds. + +2001-09-24 John David Anglin + + * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero. Use + initial value of return pointer register instead of value in frame-20. + Revise comments. + +2001-09-24 John David Anglin + + * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for + the libcall if there isn't a referenced identifier for the symbol. + +2001-09-24 John David Anglin + + * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for + non 64-bit machines. Use these as a plabel for the trampoline. + (TRAMPOLINE_SIZE): Adjust size for new words. + (INITIALIZE_TRAMPOLINE): Initialize new words. + (TRAMPOLINE_ADJUST_ADDRESS): New. Adjust address to make it a + pointer to the plabel in the trampoline. + +2001-09-24 John David Anglin + + * pa.c (function_arg): Pass floating arguments in both general and + floating registers in indirect (dynamic) calls when generating code + for the 32 bit ABI and the HP assembler. + +2001-09-24 Rainer Orth + + * doc/install.texi: Markup fixes. + Use Solaris 2, SunOS 4 as appropriate. + (Specific, *-*-solaris2*): Explain this. + Unconditionally warn against /usr/ucb tools. + Remove Sun as warning, obsolete. + Move X11 header bug workaround here, update patches. + (Specific, sparc-sun-solaris2*): Detail Sun as fix status. + (Specific, sparc-sun-solaris2.7): Update patch 106950 status. + +2001-09-23 Zack Weinberg + + * errors.h (warning, error, fatal, internal_error): Don't mark + with ATTRIBUTE_PRINTF_n. + * toplev.h (internal_error, fatal_io_error, warning, error, + pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line, + error_with_file_and_line, sorry, error_for_asm, warning_for_asm): + Likewise. + +Sun Sep 23 18:19:48 2001 Richard Kenner + + * function.c (pop_function_context_from): var_refs_queue + and temp slots now in GC memory. + (mark_function_status, free_after_compilation): Likewise; + also struct function now in GC memory. + (assign_stack_temp_for_type): struct temp_slot now in GC memory. + (combine_temp_slots): Likewise. + (schedule_fixup_var_refs): var_refs_queue now in GC memory. + (prepare_function_start): Use GC memory for struct function. + (mark_temp_slot): Deleted. + (gcc_mark_struct_function): struct function now in GC memory. + + * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust + code for division, not modulus. + + * rtl.def (MEM): Remove obsolete part of comment. + +2001-09-22 Joseph S. Myers + + * c-format.c (init_function_format_info): Check __builtin_printf + and __builtin_fprintf even if -ffreestanding. Check C99 functions + in gnu89 mode. + +Sat Sep 22 09:09:32 2001 Richard Kenner + + * c-common.c (format_attribute_table): Remove decl. + * tree.h (format_attribute_table, lang_attribute_table): New decls. + (lang_attribute_common): Likewise. + + * function.c (fix_lexical_address): Use set_mem_alias_set. + (expand_function_start): Likewise. + * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise. + + * varasm.c (output_constant): Fix unused variable warning. + + * attribs.c: New file, from c-common.c. + (attribute_tables): Now four elements. + (format_attribute_table, lang_attribute_common): New variables. + (init_attributes): Reflect above changes. + (handle_mode_attribute): Delete check for wider than uintmax. + * c-common.c: Delete parts moved to attribs.c. + (enum attrs): Deleted; unused. + (c_format_attribute_table): New variable. + (c_common_lang_init): Initialize format_attribute_table with it. + * c-common.h (decl_attributes): Remove decl. + * tree.h (decl_attribute): Move it to here. + * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o. + (attribs.o): New rule. + +2001-09-22 Andreas Jaeger + + * builtins.c (c_getstr): Remove unused variable. + +2001-09-21 Richard Henderson + + * reload1.c (reload): Use delete_insn instead of splatting + NOTE_INSN_DELETED. + +2001-09-21 Richard Henderson + + * reload.c (push_secondary_reload): Don't check for "=" in output + constraint after ""->ALL_REGS check. + +2001-09-21 Richard Henderson + + * predict.c (expected_value_to_br_prob): Use pc_set. + + * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by + ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl. + +2001-09-21 Richard Henderson + + * rtl.h (LCT_RETURNS_TWICE): New. + * calls.c (emit_call_1): Set current_function_calls_setjmp for + ECF_RETURNS_TWICE. + (emit_library_call_value_1): Map LCT_RETURNS_TWICE + to ECF_RETURNS_TWICE. + * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for + call to setjmp. + + * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc. + + * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New. + (JMP_BUF_SIZE): New. + +2001-09-21 Richard Henderson + + * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd' + to R8_REGS. + +2001-09-21 Richard Henderson + + * tree.def (FDESC_EXPR): New. + * expr.c (expand_expr): Handle it. + * varasm.c (initializer_constant_valid_p): Likewise. + (output_constant): Likewise. + * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New. + * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New. + (ASM_OUTPUT_FDESC): New. + * doc/tm.texi: Document the new macros. + +21-09-2001 Richard Earnshaw (reanrsha@arm.com) + + * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave + ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block + once merging is complete. + +Fri Sep 21 11:20:12 2001 Richard Kenner + + * integrate.c (allocate_initial_values): Eliminate unused arg warning. + +21-09-2001 Richard Earnshaw (reanrsha@arm.com) + + * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes + that would be invalid after a merge. + +Fri Sep 21 14:24:29 CEST 2001 Jan Hubicka + + * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill. + * cfg.c (delete_insn): Rename from ....; use remove_insn; do not + remove some labels. + (flow_delete_insn): This one. + (delete_insn_chain): Rename from ...; do not care labels. + (flow_delete_insn_chain): ... this one. + (flow_delete_block): Remove the insns one BB has been expunged. + (merge_blocks_nomove): Likewise. + (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care + updating BB boundaries. + (tidy_fallthru_edge): Likewise. + (commit_one_edge_insertion): Likewise. + * cfgbuild.c (find_basic_block): Likewise. + (find_basic_blocks_1): Likewise. + * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise. + (try_crossjump_to_edge): Likewise. + (try_optimize_cfg): Likewise. + * cse.c (delete_trivially_dead_insns): Likewise. + * df.c (df_insn_delete): Likewise. + * doloop.c (doloop_modify): Use delete_related_insns. + * emit-rtl.c (try_split): Likewise. + (remove_insn): Update BB boundaries. + * expect.c (connect_post_landing_pads): Use delete_related_insns. + * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care + updating BB boundaries. + (propagate_block_delete_insn): Likewise. + (propagate_block_delete_libcall): Likewise. + * function.c (delete_handlers): Use delete_related_insns. + (thread_prologue_and_epilogue_insns): Likewise. + * gcse.c (delete_null_pointer_checks): Use delete_related_insns. + * genpeep.c (gen_peephole): Use delete_related_insns. + * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating + BB boundaries. + (find_cond_trap): Likewise. + * integrate.c (save_for_inline): Use delete_related_insns. + (copy_insn_list): Likewise. + * jump.c (pruge_linie_number_notes): Likewise. + (duplicate_loop_exit_test): Likewise. + (delete_computation): Likewise. + (delete_related_insn): Rename from ...; use delete_insn + (delete_insn): ... this one. + (redirect_jump): Use delete_related_insns. + * loop.c (scan_loop): Likewise. + (move_movables): Likewise. + (find_and_verify_loops): Likewise. + (check_dbra_loop): Likewise. + * recog.c (peephole2_optimize): Likewise. + * reg-stack.c (delete_insn_for_stacker): Remove. + (move_for_stack_reg): Use delete_insn. + * regmove.c (combine_stack_adjustments_for_block): Likewise. + * reload1.c (delete_address_reloads): Use delete_related_insns. + (fixup_abnormal_edges): Use delete_insn. + * recog.c (emit_delay_sequence): Use delete_related_insns. + (delete_from-delay_slot): Likewise. + (delete_scheduled_jump): likewise. + (optimize_skip): Likewise. + (try_merge_delay_insns): Likewise. + (full_simple_delay_slots): Likewise. + (fill_slots_from_thread): Likewise. + (relax_delay_slots): Likewise. + (make_return_insns): Likewise. + (dbr_schedule): Likewise. + * rtl.h (delete_insn): Rename to delete_related_insns. + (delete_insn, delete_insn_chain): New prototypes. + * ssa-ccp (sse_fast_dce): Remove deleting of DEF, as it is done + by df_insn_delete already. + * ssa-dce.c (delete_insn_bb): Use delete_insn. + * ssa.c (convert_from_ssa): Use delete_related_insns. + * unroll.c (unroll_loop): Likewise. + (calculate_giv_inc): Likewise. + (copy_loop_body): Likewise. + + * i386-protos.h (ix86_libcall_value, ix86_function_value, + ix86_function_arg_regno_p, ix86_function_arg_boundary, + ix86_return_in_memory, ix86_function_value): Declare. + * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers): + new static valurables. + (x86_64_reg_class): New enum + (x86_64_reg_class_name): New array. + (classify_argument, examine_argument, construct_container, + merge_classes): New static functions. + (optimization_options): Enable flag_omit_frame_pointer and disable + flag_pcc_struct_return on 64bit. + (ix86_libcall_value, ix86_function_value, + ix86_function_arg_regno_p, ix86_function_arg_boundary, + ix86_return_in_memory, ix86_function_value): New global functions. + (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg. + (function_arg_advance): Handle x86_64 passing conventions. + (function_arg): Likewise. + * i386.h (FUNCTION_ARG_BOUNDARY): New macro. + (RETURN_IN_MEMORY): Move offline. + (FUNCTION_VALUE, LIBCALL_VALUE): Likewise. + (FUNCTION_VALUE_REGNO_P): New macro. + (FUNCTION_ARG_REGNO_P): Move offline. + (struct ix86_args): Add maybe_vaarg. + * next.h (FUNCTION_VALUE_REGNO_P): Delete. + * unix.h (FUNCTION_VALUE_REGNO_P): Delete. + +2001-09-21 Hartmut Penner + + * s390.md: Changed attributes for scheduling. + * s390.c: (s390_adjust_cost, s390_adjust_priority) + Changed scheduling + +2001-09-21 Joseph S. Myers + + Table-driven attributes. + * c-decl.c, config/alpha/alpha.c, config/arc/arc.c, + config/arm/arm.c, config/arm/pe.c, config/avr/avr.c, + config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h, + config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c, + config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c, + config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi, + doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c, + tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. + * tree.h (struct tree_decl): Change machine_attributes to + attributes. + * doc/c-tree.texi: Document that all attributes are now attached + to decls and types. + * c-common.c (add_attribute, attrtab, attrtab_idx, + default_valid_lang_attribute, valid_lang_attribute): Remove. + (attribute_tables, attributes_initialized, + c_common_attribute_table, default_lang_attribute_table): New + variables. + (handle_packed_attribute, handle_nocommon_attribute, + handle_common_attribute, handle_noreturn_attribute, + handle_unused_attribute, handle_const_attribute, + handle_transparent_union_attribute, handle_constructor_attribute, + handle_destructor_attribute, handle_mode_attribute, + handle_section_attribute, handle_aligned_attribute, + handle_weak_attribute, handle_alias_attribute, + handle_no_instrument_function_attribute, + handle_no_check_memory_usage_attribute, handle_malloc_attribute, + handle_no_limit_stack_attribute, handle_pure_attribute): New + functions. + (init_attributes, decl_attributes): Rewrite to implement + table-driven attributes. + * c-common.h (enum attribute_flags): Move to tree.h. + * c-format.c (decl_handle_format_attribute, + decl_handle_format_arg_attribute): Rename to + handle_format_attribute and handle_format_arg_attribute. Update + for table-driven attributes. + * c-common.h (decl_handle_format_attribute, + decl_handle_format_arg_attribute): Remove prototypes. + (handle_format_attribute, handle_format_arg_attribute): Add + prototypes. + * c-decl.c (grokdeclarator): Handle attributes nested inside + declarators. + * c-parse.in (setattrs, maybe_setattrs): Remove. + (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs. + Update to handle nested attributes properly. + (maybe_resetattrs, after_type_declarator, + parm_declarator_nostarttypename, notype_declarator, absdcl1_noea, + absdcl1_ea, direct_absdcl1): Update to handle nested attributes + properly. + (make_pointer_declarator): Update to handle nested attributes + properly. + * doc/extend.texi: Update documentation of limits of attributes + syntax. Warn about problems with attribute semantics in C++. + * target.h (struct target): Remove valid_decl_attribute and + valid_type_attribute. Add attribute_table and + function_attribute_inlinable_p. + * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, + TARGET_VALID_TYPE_ATTRIBUTE): Remove. + (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): + Add. + (TARGET_INITIALIZER): Update. + * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default + definition. + (function_attribute_inlinable_p): New function. Check for the + presence of any machine attributes before using + targetm.function_attribute_inlinable_p. + (function_cannot_inline_p): Update. + * Makefile.in (integrate.o): Update dependencies. + * doc/tm.texi: Update documentation of target attributes and + example definition of TARGET_VALID_TYPE_ATTRIBUTE. + * tree.c (default_valid_attribute_p, valid_machine_attribute): + Remove. + (default_target_attribute_table, + default_function_attribute_inlinable_p): New. + (lookup_attribute): Update comment to clarify handling of multiple + attributes with the same name. + (merge_attributes, attribute_list_contained): Allow multiple + attributes with the same name but different arguments to appear in + the same attribute list. + * tree.h (default_valid_attribute_p): Remove prototype. + (struct attribute_spec): New. + (default_target_attribute_table): Declare. + (enum attribute_flags): Move from c-common.h. Add + ATTR_FLAG_TYPE_IN_PLACE. + (default_function_attribute_inlinable_p): Declare. + * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (vms_attribute_table): New. + * config/arc/arc.c (arc_valid_decl_attribute): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (arc_attribute_table, arc_handle_interrupt_attribute): New. + * config/arm/arm.c (arm_valid_type_attribute_p, + arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p): + Remove. + (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't + define. + (TARGET_ATTRIBUTE_TABLE): Define. + (arm_attribute_table, arm_handle_fndecl_attribute, + arm_handle_isr_attribute): New. + * config/avr/avr.c (avr_valid_type_attribute, + avr_valid_decl_attribute): Remove. + (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't + define. + (TARGET_ATTRIBUTE_TABLE): Define. + (avr_attribute_table, avr_handle_progmem_attribute, + avr_handle_fndecl_attribute): New. + * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove. + (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (c4x_attribute_table, c4x_handle_fntype_attribute): New. + * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (h8300_attribute_table, h8300_handle_fndecl_attribute, + h8300_handle_eightbit_data_attribute, + h8300_handle_tiny_data_attribute): New. + * config/i386/i386-protos.h (ix86_valid_type_attribute_p, + i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p): + Remove prototypes. + (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New + declarations. + * config/i386/i386.c (ix86_valid_type_attribute_p: Remove. + (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't + define. + (TARGET_ATTRIBUTE_TABLE): Define. + (ix86_attribute_table, ix86_handle_cdecl_attribute, + ix86_handle_regparm_attribute): New. + * config/i386/winnt.c (i386_pe_valid_decl_attribute_p, + i386_pe_valid_type_attribute_p): Remove. + (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New. + * config/ia64/ia64.c (ia64_valid_type_attribute): Remove. + (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (ia64_attribute_table): New. + * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1, + interrupt_ident2, model_ident1, model_ident2): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (init_idents): Update. + (m32r_attribute_table, m32r_handle_model_attribute): New. + * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p): + Remove. + (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New. + * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (mcore_attribute_table, mcore_handle_naked_attribute): New. + * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove. + (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (ns32k_attribute_table, ns32k_handle_fntype_attribute): New. + * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove. + (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (rs6000_attribute_table, rs6000_handle_longcall_attribute): New. + * config/sh/sh.c (sh_valid_decl_attribute): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (sh_attribute_table, sh_handle_interrupt_handler_attribute, + sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): + New. + * config/stormy16/stormy16.c (stormy16_valid_type_attribute): + Remove. + (TARGET_VALID_TYPE_ATTRIBUTE): Don't define + (TARGET_ATTRIBUTE_TABLE): Define. + (stormy16_attribute_table, stormy16_handle_interrupt_attribute): + New. + * config/v850/v850.c (v850_valid_decl_attribute): Remove. + (TARGET_VALID_DECL_ATTRIBUTE): Don't define. + (TARGET_ATTRIBUTE_TABLE): Define. + (v850_attribute_table, v850_handle_interrupt_attribute, + v850_handle_data_area_attribute): New. + * config/v850/v850-c.c (mark_current_function_as_interrupt): + Return void. Call decl_attributes instead of + valid_machine_attribute. + +Fri Sep 21 01:49:41 2001 J"orn Rennecke + + * sh-protos.h (sh_pr_n_sets): Declare. + * sh.c (calc_live_regs): If the initial value for PR has been copied, + look at the copy to determine if PR needs to be saved. + sh_pr_n_sets: New function. + * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val. + (ALLOCATE_INITIAL_VALUE): Define. + + * sh.c (initial_elimination_offset): + Fix RETURN_ADDRESS_POINTER_REGNUM case. + +Fri Sep 21 01:13:56 2001 J"orn Rennecke + + * integrate.c (allocate_initial_values): New function. + * integrate.h (allocate_initial_values): Declare. + * local-alloc.c (local_alloc): Move call to allocate_reg_info from + here... + * reload1.c (reload): And initialization of reg_equiv_memory_loc + from here... + * toplev.c (rest_of_compilation): To here. + Call allocate_initial_values. + * tm.texi: add description for ALLOCATE_INITIAL_VALUE. + +Thu Sep 20 09:00:27 2001 Richard Kenner + + * ggc-page.c (ggc_marked_p): Properly convert return to boolean. + +2001-09-20 DJ Delorie + + * c-typeck.c (really_start_incremental_init): Discriminate + between zero-length arrays and flexible arrays. + (push_init_level): Detect zero-length arrays and handle them + like fixed-sized arrays. + * expr.c (store_constructor): Handle zero-length arrays and + flexible arrays correctly. + * doc/extend.texi: Update zero-length array notes. + +2001-09-20 Jim Wilson + + * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle. + (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking + for issue port conflicts. + (cycle_end_fill_slots): TYPE_L instructions take two slots. + +2001-09-20 Andrew MacLeod + + * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3 + on ia64. + +Thu Sep 20 09:00:27 2001 Richard Kenner + + * fold-const.c (hashtab.h): Include. + (int_const_binop): Remove FORSIZE arg and compute from type; all + callers changed. + Call size_int_type_wide for all single-word constants. + (size_htab_hash, size_htab_eq): New functions. + (size_int_type_wide): Rework to use hash table. + * ggc-common.c (hashtab.h): Include. + (struct d_htab_root): New struct. + (d_htab_roots): New variable. + (ggc_add_deletable_htab, ggc_htab_delete): New functions + (ggc_mark_roots): Handle deletable htabs. + * ggc-page.c (ggc_marked_p): New function. + * ggc-simple.c (ggc_marked_p): Likewise. + * ggc.h: Reformatting throughout. + (ggc_marked_p, ggc_add_deletable_htab): New declarations. + * tree.c (init_obstacks): Make type_hash_table a deletable root. + (type_hash_add): Allocate struct type_hash from GC memory. + (mark_hash_entry, mark_type_hash): Deleted. + (type_hash_marked_p, type_hash_mark): New functions. + * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h. + +Thu Sep 20 12:49:34 2001 J"orn Rennecke + + * sh.c (shiftcosts): Don't use shiftcosts array for modes wider + than SImode. + +Thu Sep 20 09:00:27 2001 Richard Kenner + + * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable + array-too-large test for signed sizetype. + +Thu Sep 20 12:19:36 CEST 2001 Jan Hubicka + + * i386.md (indirect_jump): Allow Pmode operand. + (tablejump): LIkewise; perform expansion to 64bit mode. + * i386.c (symbolic_operand): Allow 64bit PIC references. + (pic_symbolic_operand): Likewise. + (ix86_find_base_term): Strip the 64bit PIC references. + (legitimate_pic_address_disp_p): Handle 64bit PIC. + (legitimize_pic_address): Likewise. + (i386_simplify_dwarf_addr): Strip down the 64bit PIC references. + * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation. + +2001-09-19 Alexandre Petit-Bianco + + * stringpool.c (get_identifier_with_length): New function. + * tree.h (get_identifier_with_length): New prototype. + +2001-09-19 Alan Modra + David Edelsohn + + Revert: + * config/rs6000/rs6000.c (logical_operand): CONST_INTs are + already sign-extended. + + * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers. + * config/rs6000/rs6000.c (logical_operand): Always compare op as + HOST_WIDE_INT. + (rs6000_emit_set_long_const): Avoid unnecessary shift. + (output_profile_hook): Declare label_name const. + * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates + to match constraints. + +2001-09-19 Stan Shebs + + * alias.c: Fix typos in comments. + * sched-rgn.c (init_ready_list): Ditto. + * unwind-dw2.c (uw_frame_state_for): Ditto. + * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto. + * unwind.inc (_Unwind_RaiseException_Phase2): Ditto. + * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto. + +2001-09-19 Richard Henderson + + * cfg.c (force_nonfallthru_and_redirect): Handle redirecting + to the exit block. + * Makefile.in (cfg.o): Depend on TM_P_H. + +2001-09-19 Richard Henderson + + * config/alpha/alpha.c (local_symbol_p): Split out from ... + (local_symbolic_operand): ... here. + (small_symbolic_operand): Check mode. + (global_symbolic_operand): New. + (input_operand): Reject symbolics if explicit relocs. + (call_operand): Tidy. + (alpha_legitimize_address): Use movdi_er_high_g. + (alpha_expand_mov): Likewise. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New. + (UNSPEC_LDGP2, UNSPECV_PLDGP2): New. + (UNSPECV_LDGP2): Remove. + (all call patterns): Use 's' not 'i' for symbolic constraint. + (call_osf call_value_osf): Use call_operand. + (all osf call patterns): Use $gp. New peepholes for explicit relocs. + (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative. + (prologue_ldgp_1_er): Remove. + (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New. + (builtin_setjmp_receiver_er patterns): Use them. + (exception_receiver_er): Likewise. + +2001-09-19 Richard Henderson + + * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw. + + * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN + and NON_LOCAL_GOTO notes. + * recog.c (peephole2_optimize): Likewise. Handle EH_REGION; + copy over CALL_INSN_FUNCTION_USAGE. + +2001-09-18 Catherine Moore + + * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN): + Define as 0. + +2001-09-18 Ulrich Weigand : + + * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to + new-style tm_file specification. Specify correct tm_p_file, + md_file, and out_file for s390x. + + * config/s390/linux.h, linux64.h: Don't include other target + macro header files. Now handled via tm_file. + + * config/s390/linux.h, s390.h: (IEEE_FLOAT, TARGET_IEEE_FLOAT, + TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they + are defined before use. + +Tue Sep 18 09:51:11 2001 Eric Christopher + + * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf + code generation only for Gnu assembler. + +2001-09-18 Catherine Moore + + * config/stormy16 (LIB_SPEC): Remove -lnosys. + +2001-09-18 Richard Sandiford + + * config/mips/mips.c (mips_frame_set): New. + (mips_emit_frame_related_store): When storing two 32-bit FPRs, use + a parallel frame-related expression with a set for each register. + +2001-09-18 Philip Blundell + + * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel + header files. + +2001-09-17 Dale Johannesen + + * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2. + * config/rs6000/aix.h (FIXED_R2): Define. + * config/rs6000/darwin.h (FIXED_R2): Define. + * config/rs6000/sysv4.h (FIXED_R2): Define. + +2001-09-17 Jeff Sturm + + * except.c (dw2_build_landing_pads): New local + clobbers_hard_regs. Emit an ASM_INPUT as a scheduling + barrier after clobbers. Fixes c++/4012. + +2001-09-17 Kaveh R. Ghazi + + * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat. + +2001-09-17 Joseph S. Myers + + * dostage2, dostage3, listing, make-l2.com, makefile.vms, + patch-apollo-includes, vmsconfig.com: Remove obsolete files. + +2001-09-17 Kaveh R. Ghazi + + * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of + alloca/strcpy. + +2001-09-17 Neil Booth + + * cpphash.h (_cpp_lex_direct): New. + * cpplex.c (_cpp_lex_token): Update. + (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token, + and increment that pointer. + * cppmacro.c (alloc_expansion_token): New. + (lex_expansion_token): Lex macro expansion directly into + macro storage. + +2001-09-16 Brad Lucier + + * Makefile.in: Make rtl-error.o depend on $(CONFIG_H). + +Sun Sep 16 21:59:46 CEST 2001 Jan hubicka + + * basic-block.h (free_bb_for_insn): Declare. + * bb-reorder.c (label_for_bb): Use block_label. + (emit_jump_to_block_after): Remove. + (insert_intra_1): Do not update block_for_insn. + (insert_inter_bb_scope_notes): Likewise; update bb->end + * cfg.c (free_bb_for_insn): New. + (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call. + (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries. + (commit_one_edge_insertion): Likewise. + (commit_one_edge_insertion): Do not update BB boundary. + (commit_edge_insertions): Do not call compute_bb_for_insn. + * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn. + * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb. + (merge_blocks_move_successor_nojumps): Likewise. + (try_crossjump_to_edge): Do not update block_for_insn. + * combine.c (combine_instructions): Remove compute_bb_for_insn call. + * df.c (df_pattern_emit_later): Do not update BB boundary. + (df_jump_pattern_emit_after): Likewise. + (df_insn_move_before): Use emit_insn_before. + * emit-rtl.c (try_split): Emit after trial to get bb boundary updated + properly. + (add_insn_after, add_insn_before, emit_insns_after): Update BB + boundaries and basic_block_for_insn. + (reorder_insns_nobb): Rename from reorder_insns. + (reorder_insns): New. + (emit_block_insn_before, emit_block_insn_after): Kill. + * flow.c (check_function_return_warnings): Do not call + compute_bb_for_insn; Do not free basic_block_for_insn. + (attempt_auto_inc): Do not update basic_block_for_insn. + * function.c (emit_return_into_block): Likewise; + do not update BB boundaries. + * gcse.c (handle_avail_expr): Do not update basic_block_for_insn. + (insert_insn_end_bb): Use emit_insn_before; Likewise. + (pre_insert_copy_insn): Likewise. + (update_ld_motion_notes): Likewise. + (insert_insn_start_bb): Likewise. + (replace_store_insn): Likewise. + * ifcvt.c (noce_process_if_block): Likewise. + (if_convert): Do not call compute_bb_for_insn. + * lcm.c (optimize_mode_switching): Do not update BB boundaries. + Use emit_insn_before and emit_insn_after. + * recog.c (split_all_insns): Do not update BB boundaries; + Do not call compute_bb_for_insn. + (peephole2_optimize): Do not update BB boundaries. + * reg-stack.c (emit_pop_insn): Use emit_insn_after and + emit_insn_before. + (emit_swap_insn): Likewise. + (convert_regs_1): Likewise. + * reload1.c (reload): Call compute_bb_for_insn. + * rtl.h (reorder_insns_nobb): Declare. + * ssa.c (rename_equivalent_regs): Use emit_insn_before. + * toplev.c (rest_of_compilation): Call free_bb_for_insn + at places CFG is invalidated; do not call compute_bb_for_insn. + + * cfg.c (expunge_block): Invalidate BB structure. + + * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN + array. + + * cfg.c (verify_flow_info): Verify the basic_block_for_insn array. + +2001-09-16 Neil Booth + + * cpphash.h (_cpp_lex_token): Update prototype. + * cpplex.c (_cpp_lex_token): New prototype. + * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive, + lex_macro_node, read_flag, do_pragma_poison): Update. + * cppmacro.c (cpp_get_token, parse_params, + lex_expansion_token): Update. + +2001-09-16 Neil Booth + + * cppmain.c (scan_translation_unit): Don't worry about + putting a space after hashes. + * cpplib.c (directive_diagnostics): New. + (_cpp_handle_directive): Update to use directive_diagnostics. + (run_directive): Don't toggle prevent_expansion. + (do_line): Backup in case of the line extension. + * cpplib.h (cpp_lexer_pos): Remove. + * cppmacro.c (_cpp_create_definition): Precede a leading # + with whitespace. + +2001-09-15 Richard Henderson + + * c-typeck.c (comptypes): Handle zero-length arrays properly. + +2001-09-15 Roman Lechtchinsky + + * c-common.c (c_promoting_integer_type_p): Handle ?Imode types. + +2001-09-15 Neil Booth + + PR preprocessor/3571 + * tradcpp.c (handle_directive): Skip non-vertical space. + +2001-09-15 Neil Booth + + * cppmain.c (setup_callbacks): Set line callback only + if outputting preprocessed source. + +2001-09-15 Kaveh R. Ghazi + + * collect2.c (main): Const-ification. + * gcc.c (translate_options, process_command): Use xstrdup in + lieu of xmalloc/strcpy. + (main): Use concat in lieu of xmalloc/strcpy/strcat. + +2001-09-14 Roman Lechtchinsky + + * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix + example. + +2001-09-15 Neil Booth + + * scan-decls.c (scan_decls): Fix typo. + +2001-09-15 Neil Booth + + * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos. + Split mlstring_pos into mls_line and mls_col. + * cppinit.c (cpp_create_reader): Initialize line to 1. + (cpp_destroy): Free tokenruns. + (push_include): Don't update lexer_pos. + * cpplex.c (unterminated, parse_string): Update. + (lex_token): Don't update lexer_pos, update. + * cpplib.c (if_stack): Save line instead of line + col. + (start_directive, _cpp_do__Pragma, do_else, do_elif, + push_conditional, _cpp_pop_buffer): Update. + * cppmacro.c (funlike_invocation_p): Don't save lexer_pos. + (_cpp_create_definition): Update. + +2001-09-15 Eric Christopher + + * config/mips/abi64.h: Add support for MEABI. + +2001-09-15 Eric Christopher + + * config/mips/mips.md: Add unspec #2. + (reload_indi): Use. + (reload_outdi): Ditto. + (reload_outsi): Ditto. + (HILO_delay): New. + +2001-09-15 Eric Christopher + Jason Eckhardt + + * config.gcc: Add mipsisa32 target and mipsisa32-linux target. + * config/mips/isa32-linux.h: New file. + * config/mips/isa3264.h: Ditto. + * config/mips/mips-protos.h: Add mips_hard_regno_nregs. + * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h. + (output_block_mode): Support MEABI. + (function_arg): Ditto. Fix floating point arg passing. + (mips_va_start): Ditto. + (override_options): Add isas 32 and 64, meabi, mips32 and mips64 + processors. + (mips_asm_file_start): Add new section to pass abi to gdb. + (function_arg_pass_by_reference): Support MEABI. + (mips_parse_cpu): Support mips32 and mips64 processors. + * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC, + TARGET_MIPS5KC. Support isa32 and isa64. + (processor_type): Add r4kc, r5kc, r20kc. + (GENERATE_MULT3_SI): New. + (GENERATE_MULT3_DI): Ditto. + (GENERATE_MULT3): Remove. + (ISA_HAS_64BIT_REGS): Add isa == 64. + (ISA_HAS_8CC): Add mips_isa = 32 and 64. + (ISA_HAS_MADD_MSUB): New. + (ISA_HAS_CLZ_CLO): Ditto. + (ISA_HAS_DCLZ_DCLO): Ditto. + (ABI_GAS_ASM_SPEC): New. + (GAS_ASM_SPEC): Use. Add support for mips32, mips64. + (ASM_SPEC): Ditto. + (LINK_SPEC): Ditto. + (SUBTARGET_CC1_SPEC): Ditto. + (SUBTARGET_CPP_SIZE_SPEC): Ditto. + (PAD_VARARGS_DOWN): Support MEABI. + (HARD_REGNO_NREGS): Move to mips.c. + (ASM_OUTPUT_IDENT): Add #undef. + * config/mips/mips.md: Add r4kc, r5kc, r20kc. + (mulsi3): Use GENERATE_MULT3_SI. + (mulsi3_mult3): Ditto. Support mips32, mips64. + (mul_acc_si): Use ISA_HAS_MADD_MSUB. + (mul_sub_si): New pattern. + (unnamed splitters): New. + (muldi3): Use GENERATE_MULT3_DI. + (muldi3_internal2): Ditto. + (movdicc): Support mips32. + * config/mips/t-isa3264: New file. + +2001-09-15 Hans-Peter Nilsson + + * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT + || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT + || HAVE_POST_DECREMENT]: Call find_regno_note for REGs. + + * reorg.c (fill_slots_from_thread): After call to + steal_delay_list_from_target, update own_thread as new_thread may + have branched. + +2001-09-14 Neil Booth + + * cpperror.c (print_location): Take line and column, for + default positioning use the previously lexed token. + (_cpp_begin_message): Take line and column. + (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, + cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update. + * cpphash.h (_cpp_begin_message): Update prototype. + * cppinit.c (push_include): Don't set output line. + * cpplex.c (_cpp_lex_token): Callback for start of new output lines. + * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update. + (do_pragma): Kludge for front ends. Don't expand macros at all. + * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove. + (struct cpp_token): Remove output_line. + (struct cpp_callbacks): New member line_change. + * cppmacro.c (builtin_macro, paste_all_tokens, replace_args, + cpp_get_token): Preserve BOL flag. + (cpp_get_line): Remove. + (_cpp_backup_tokens): Remove useless abort(). + * cppmain.c (cb_line_change): New. + (scan_translation_unit): Don't worry about starting new lines here. + * scan-decls.c (scan_decls): Update. + * c-lex.c (c_lex, init_c_lex): Update. + (cb_line_change, src_lineno): New. + +Fri Sep 14 13:54:50 EDT 2001 John Wehle (john@feith.com) + + * tree.c (append_random_chars): Generate the random + characters in a reproducable fashion. + +2001-09-14 Richard Henderson + + * config/i386/i386.c (internal_label_prefix): New. + (internal_label_prefix_len): New. + (override_options): Set them. + (local_symbolic_operand): New. + (legitimate_pic_address_disp_p): Use it. + (legitimize_pic_address): Likewise. + +2001-09-14 Marc Espie + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Generate reference to GOT + correctly. + +2001-09-14 Roman Lechtchinsky + + * config/alpha/alpha.md (unaligned_extendhidi_be): Fix. + * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New. + +2001-09-14 Nick Clifton + + * rtlanal.c (subreg_regno_offset): Add semicolon to end of + invocation of SUBREG_REGNO_OFFSET. + + * haifa-sched.c: Fix typo in FSF copyright statement. + * sched-deps.c: Fix typo in FSF copyright statement. + * sched-ebb.c: Fix typo in FSF copyright statement. + * sched-rgn.c: Fix typo in FSF copyright statement. + * sched-vis.c: Fix typo in FSF copyright statement. + + * config.gcc: Move inclusion of arm elf specific header files + from the files themselves into the tm_file variable. Make + sure that elfos.h is included before target specific elf + headers. + * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not + already defined. + (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition. + * config/arm.arm.h (TARGET_MEM_FUNCTIONS, + ASM_OUTPUT_CASE_LABEL): Protect definition. + (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if + not already defined. + * config/arm/conix-elf.h: (USER_LABEL_PREFIX, + LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION): + Remove duplicate definition. + (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION, + (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP, + (RDATA_SECTION_FUNCTION): Remove redundant definition. + (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition. + Remove inclusion of arm/elf.h. + * config/arm/unknown-elf.h: as for conix-elf.h. + (STARTFILE_SPEC): Include crti.o and crtn.o. + * config/arm/linux-elf.h: as for conix-elf.h. + * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h. + * config/arm/strongarm-elf.h: Remove inclusion of + unknown-elf.h. + * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h. + * config/arm/unknown-elf-oabi.h: Remove inclusion of + unknown-elf.h and elf.h. + * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h. + * config/arm/linux-gas.h (DBX_DEBUGGING_INFO, + ASM_WEAKEN_LABEL): Remove redundant definition. + * config/arm/elf.h: Test for inclusion of elfos.h + (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT, + ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME, + SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION, + EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove + redundant definition. + (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME, + ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL, + ASM_OUTPUT_ALIGNED_COMMON): Protect definition. + * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o. + Add rules to build crti.o and crtn.o + * crti.asm: New file. + * crtn.asm: New file. + +2001-09-13 Neil Booth + + * c-parse.in (_yylex): Use _cpp_backup_tokens. + * cpphash.h (struct tokenrun): Add prev. + (struct lexer_state): Remove bol. + (struct cpp_reader): Remove old lookahead stuff, add lookaheads. + (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token) + : Remove. + * cppinit.c (cpp_create_reader): Don't set bol. + (cpp_destroy): Don't free lookaheads. + * cpplex.c (lex_directive): Remove. + (next_tokenrun): Update. + (_cpp_lex_token): Clean up logic. + (lex_token): Update to return a pointer to lexed token, since it + can move to the start of the buffer. Simpify newline handling. + * cpplib.c (SEEN_EOL): Update. + (skip_rest_of_line): Remove lookahead stuff. + (end_directive): Line numbers are already incremented. Revert + to start of lexed token buffer if we can. + (_cpp_handle_directive, do_pragma, do_pragma_dependency, + parse_answer): Use _cpp_backup_tokens. + (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags + instead. Don't check for EOL. + (do_include_common, do_line, do_pragma_system_header): Use + skip_rest_of_line. + * cpplib.h (BOL, _cpp_backup_tokens): New. + * cppmacro.c (save_lookahead_token, take_lookahead_token, + alloc_lookahead, free_lookahead, _cpp_free_lookaheads, + cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove. + (builtin_macro): Don't use cpp_get_line. + (cpp_get_line): Short term kludge. + (parse_arg): Handle directives in arguments here. Back up when + appropriate. Store EOF at end of argument list. + (funlike_invocation_p): Use _cpp_backup_tokens. + (push_arg_context): Account for EOF at end of list. + (cpp_get_token): Remove lookahead stuff. Update. + +2001-09-13 Kaveh R. Ghazi + + * c-parse.in (yyerror): Const-ification and/or static-ization. + * c-typeck.c (push_member_name): Likewise. + * collect2.c (main): Likewise. + * dbxout.c (dbxout_parms): Likewise. + * diagnostic.c (format_with_decl): Likewise. + * dwarf2out.c (output_ranges): Likewise. + * dwarfout.c (fundamental_type_code): Likewise. + * except.c (dw2_output_call_site_table): Likewise. + * gcc.c (do_spec_1): Likewise. + * genopinit.c (optabs): Likewise. + * objc/objc-act.c (synth_id_with_class_suffix, start_class, + gen_declaration_1, handle_impent): Likewise. + * protoize.c (default_include, in_system_include_dir, abspath): + Likewise. + * sched-vis.c (visualize_stall_cycles): Likewise. + * sdbout.c (plain_type_1, sdbout_end_function, + sdbout_end_epilogue): Likewise. + * varasm.c (decode_reg_name): Likewise. + + * 1750a.c (mod_regno_adjust): Likewise. + * alpha.c (alpha_write_one_linkage, + unicosmk_output_default_externs): Likewise. + * arm.c (arm_condition_codes): Likewise. + * arm.h (arm_condition_codes): Likewise. + * avr.c (output_movsisf, encode_section_info): Likewise. + * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL): + Likewise. + * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise. + * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise. + * m88k.c (output_function_profiler): Likewise. + * mips.c (mips_output_conditional_branch): Likewise. + * ns32k.c (ns32k_out_reg_names): Likewise. + * ns32k.h (ns32k_out_reg_names): Likewise. + * pj.c (pj_output_rval): Likewise. + * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise. + * sparc.c (sparc_flat_function_prologue, + sparc_flat_function_epilogue): Likewise. + +2001-09-13 Markus Werle + Gerald Pfeifer + + * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at + Aachen University of Technology". + +2001-09-13 Andreas Schwab + + * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for + C99. + +2001-09-13 Richard Henderson + + * config/alpha/alpha.c (small_symbolic_operand): New. + (override_options): Set MASK_SMALL_DATA based on pic/PIC. + (some_operand, input_operand): Don't handle HIGH. + (alpha_legitimize_address): Use it. Emit HIGH with PLUS gp. + (alpha_expand_mov): Likewise. + (print_operand) [H]: Just print HIGH symbol. + (print_operand_address): Handle small data. + * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New. + (TARGET_SWITCHES): Add -msmall-data/large-data. + (PIC_OFFSET_TABLE_REGNUM): New. + (PREFERRED_RELOAD_CLASS): Don't handle HIGH. + (PREDICATE_COES): Update. + * config/alpha/alpha.md (adddi_er_high): New. + (adddi_er_low): Handle small data. + * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA, + prefer .sdata to .rodata. + (SELECT_RTX_SECTION): Likewise. + +2001-09-12 Josh Martin + + * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from + defining __size_t and leaving size_t undefined. + +2001-09-12 Diego Novillo + + * basic-block.h (expunge_block): Declare. + * cfg.c (expunge_block): Remove static declaration. + +2001-09-12 Richard Henderson + + * integrate.c (copy_insn_list): Copy label name from + NOTE_INSN_DELETED_LABEL. + +2001-09-12 Kaveh R. Ghazi + + * c-common.c (c_tree_code_name): Const-ification. + * c-decl.c (c_decode_option): Likewise. + * c-typeck.c (warn_for_assignment): Likewise. + * collect2.c (libexts, is_ctor_dtor, main, ignore_library): + Likewise. + * cppinit.c (output_deps): Likewise. + * dependence.c (dependence_string, direction_string): Likewise. + * dwarf2out.c (output_ranges): Likewise. + * fixinc/fixfixes.c (emit_gnu_type): Likewise. + * fixinc/gnu-regex.c (re_error_msgid): Likewise. + * gcc.c (standard_exec_prefix, standard_exec_prefix_1, + standard_startfile_prefix, standard_startfile_prefix_1, + standard_startfile_prefix_2, tooldir_base_prefix, + standard_bindir_prefix, find_a_file): Likewise. + * genattrtab.c (make_length_attrs): Likewise. + * gencheck.c (tree_codes): Likewise. + * genemit.c (gen_split): Likewise. + * genrecog.c (special_mode_pred_table): Likewise. + * graph.c (graph_ext): Likewise. + * protoize (default_include): Likewise. + * reload.c (reload_when_needed_name): Likewise. + * sched-vis.c (visualize_stall_cycles): Likewise. + * tlink.c (recompile_files): Likewise. + * toplev.c (decode_g_option): Likewise. + * tradcpp.c (output_deps): Likewise. + * varasm.c (decode_reg_name): Likewise. + + * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code): + Const-ification. + * arm.md: Likewise. + * avr.c (avr_regnames, encode_section_info): Likewise. + * c4x.c (float_reg_names): Likewise. + * darwin.h (ASM_GLOBALIZE_LABEL): Likewise. + * elfos.h (const_section): Likewise. + * i386.c (ix86_comp_type_attributes): Likewise. + * i386/win32.h (STRIP_NAME_ENCODING): Likewise. + * ia64/aix.h (UNIQUE_SECTION): Likewise. + * ia64.c (type_names): Likewise. + * m68hc11.c (reg_class_names): Likewise. + * m88k.c (m_options): Likewise. + * mips.c (mips_output_conditional_branch, mips_unique_section): + Likewise. + * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue, + ultra_code_names): Likewise. + * sparc.h (OVERRIDE_OPTIONS): Likewise. + +2001-09-12 Jakub Jelinek + + * configure.in (gcc_cv_as_shf_merge): Fix a typo. + Use --fatal-warnings option for gas. + * configure: Rebuilt. + +2001-09-12 Roman Lechtchinsky + + * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document. + +2001-09-11 Jim Wilson + + * alias.c (clear_reg_alias_info): Only handle pseudo registers. + +2001-10-11 Matt Kraai + + * builtins.c (c_strlen): Treat an offset too large for a + HOST_WIDE_INT as out of range. + +Tue Sep 11 18:57:47 CEST 2001 Jan Hubicka + + * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags. + (EDGE_CRITICAL_P): New predicate. + * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL + handling. + (insert_insn_on_edge): Use EDGE_CRITICAL_P. + (dump_edge_info): Remove "crit". + * cfganal.c (mark_critical_edges): Kill. + * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call. + * cfgcleanup.c (cleanup_cfg): Likewise. + * profile.c (instrument_edges): Use EDGE_CRITICAL_P. + (find_spanning_tree): Likewise. + * reg-stack.c (convert_regs_1): Likewise. + * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise. + + * basic-block.h (create_basic_block_structure): New. + (create_basic_block): Update prototype. + (force_nonfallthru): New. + * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru. + * cfg.c (create_basic_block_structure): Rename from create_basic_block; + handle updating of block_for_insn, creating of empty BBs and BBs at + the end of INSN chain. + (create_basic_block): New function. + (split_block): Use create_basic_block. + (force_nonfallthru_and_redirect): Break out from ...; cleanup + (redirect_edge_and_branch_force): ... here. + (force_nonfallthru): New. + (split_edge): Rewrite to use force_nonfallthru and create_block. + * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure. + (find_basic_blocks): Free basic_block_for_insn. + * cfgcleanup.c (merge_blocks): Use force_nonfallthru. + + * cfg.c: Fix formating. + * cfgcleanup.c: Fix formating. + (merge_blocks, tail_recursion_label_p): Return bool. + (merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps): Return void. + +2001-09-11 Jakub Jelinek + + * configure.in: Check whether assembler supports section merging. + * config.in: Rebuilt. + * configure: Rebuilt. + * varasm.c (variable_section, output_constant_pool): Pass alignment + to SELECT_SECTION and SELECT_RTX_SECTION. + (mergeable_string_section): New. + (mergeable_constant_section): New. + (default_elf_asm_named_section): Output SECTION_MERGE and + SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. + * output.h (mergeable_string_section): New. + (mergeable_constant_section): New. + (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define. + * toplev.c (flag_merge_constants): New. + (f_options): Add -fmerge-constants and -fmerge-all-constants + options. + (toplev_main): Default to -fno-merge-constants if not optimizing. + * flags.h (flag_merge_constants): Add extern. + * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document. + * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third + argument. + * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): + Define if assembler has working .subsection -1 support. + (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument. + Put constant into special SHF_MERGE sections if the linker should + attempt to merge duplicates. + * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third + macro argument. + Put constant into special SHF_MERGE sections if the linker should + attempt to merge duplicates. + * config/alpha/elf.h: Likewise. + (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler + has working .subsection -1 support. + * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and + SELECT_SECTION. + * config/svr3.h: Likewise. + * config/darwin.h: Likewise. + * config/arm/aof.h: Likewise. + * config/arm/linux-elf.h: Likewise. + * config/avr/avr.h: Likewise. + * config/c4x/c4x.h: Likewise. + * config/d30v/d30v.h: Likewise. + * config/i386/dgux.h: Likewise. + * config/i386/osfrose.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i386/svr3gas.h: Likewise. + * config/ia64/aix.h: Likewise. + * config/m32r/m32r.h: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m88k/dgux.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/mcore/mcore-pe.h: Likewise. + * config/mips/mips.h: Likewise. + * config/pa/pa.h: Likewise. + * config/pa/pa-linux.h: Likewise. + * config/romp/romp.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/rs6000/xcoff.h: Likewise. + * config/s390/linux.h: Likewise. + * config/sparc/sparc.h: Likewise. + * config/sparc/sysv4.h: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/v850/v850.h: Likewise. + * config/vax/vms.h: Likewise. + * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE + and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. + * config/sparc/sparc.c (sparc_elf_asm_named_section): Use + default_elf_asm_named_section for SHF_MERGE sections. + +Tue Sep 11 17:55:54 CEST 2001 Jan Hubicka + + * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block + is OK. + +2001-09-11 Joseph S. Myers + + * c-common.c (split_specs_attrs): Allow for empty attributes with + empty TREE_PURPOSE. Fixes PR c/4294. + +Tue Sep 11 11:37:52 CEST 2001 Jan Hubicka + + * basic-block.h (cached_make_edge, make_single_succ): New. + (make_edge): Remove first parameter. + * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge. + * cfg.c (cached_make_edge): Rename from make_edge; return newly + created edge; use obstack allocation. + (make_edge, make_single_succ_edge): New. + (first_removed_edge): New static variable. + (init_flow): Initialize first_removed_edge and n_edges. + (clear_edges): Use remove_edge. + (flow_delete_block): Likewise. + (remove_edge): Add removed edges to the removed edges list. + (split_block, redirect_edge_and_branch_force, split_edge): + Use make_edge. + * cfganal.c (flow_call_edges_add): Updaet make_edge call. + (add_noreturn_fake_exit_edges): Likewise. + (connect_infinite_loops_to_exit): Liekwise. + * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks): + Use cached_make_edge. + * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge. + * profile.c (branch_prob): Update make_edge call. + * ssa-dce.c (ssa_eliminate_dead_code): Likewise. + +2001-09-11 Richard Henderson + + * config/alpha/alpha.c: Tidy formatting. + (local_symbolic_operand): Verify mode. + (alpha_sa_mask): Ignore unicos for eh_return. + (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL. + * config/alpha/alpha.md (umk divsi patterns): Remove. + (extendsfdf2): Remove unicos check. + (tablejump): Merge vms and unicos code; always use direct set + plus label_ref use. + +2001-09-11 Roman Lechtchinsky + + * config.gcc (alpha*-*-unicosmk*): New target. + + * config/alpha/alpha-protos.h (symbolic_operand, + unicosmk_add_call_info_word, unicosmk_add_extern, + unicosmk_defer_case_vector, unicosmk_unique_section, + unicosmk_output_align, unicosmk_text_section, unicosmk_data_section, + unicosmk_asm_file_start, unicosmk_asm_file_end, + unicosmk_output_common): Declare. + + * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand, + direct_return, function_arg, alpha_va_start, alpha_va_arg, + alpha_does_function_need_gp, alpha_end_function): Support Cray + Unicos/Mk. + (alpha_init_machine_status, alpha_mark_machine_status, + alpha_free_machine_status, unicosmk_output_deferred_case_vectors, + unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex, + unicosmk_asm_named_section, unicosmk_insert_attributes, + unicosmk_section_type_flags, symbolic_operand, + unicosmk_output_module_name, unicosmk_output_default_externs, + unicosmk_output_dex, unicosmk_output_externs, + unicosmk_output_addr_vec, unicosmk_ssib_name, + unicosmk_initial_elimination_offset, unicosmk_asm_file_start, + unicosmk_asm_file_end, unicosmk_output_common, + unicosmk_section_type_flags, unicosmk_unique_section, + unicosmk_add_call_info_word, unicosmk_text_section, + unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head, + unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list, + unicosmk_dex_count, unicosmk_special_name): New. + (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for + TARGET_ABI_UNICOSMK. + (get_aligned_mem, alpha_expand_unaligned_load, + alpha_expand_unaligned_store, alpha_expand_unaligned_load_words, + alpha_expand_unaligned_store_words): Support big-endian mode. + (print_operand): Likewise. New format specifier 't'. Use + TARGET_AS_SLASH_BEFORE_SUFFIX. + (alpha_is_stack_procedure): Rename from vms_is_stack_procedure. + (alpha_pv_save_size): Update with above change. + (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue, + alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray + Unicos/Mk. + + * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New. + (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK. + (TARGET_AS_SLASH_BEFORE_SUFFIX): New. + (EXTRA_CONSTRAINT): New constraint 'U'. + (PREDICATE_CODES): Add symbolic_operand. + + * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM, + UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants. + (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK. + (integer division and modulus patterns): Split in default and + Unicos/Mk versions. + (*divmodsi_internal, *divmoddi_internal): Disable for + TARGET_ABI_UNICOSMK. + (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in + little-endian and big-endian versions. + (ext, ins, msk): Likewise. + (extv, extzv, insv): Support big-endian mode. + (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK. + (call_umk, call_value_umk, *call_umk, tablejump_umk, + *tablejump_umk_internal, *call_value_umk): New. + (*movdi_nofix): Add pattern for loading an address into a register on + TARGET_ABI_UNICOSMK. + (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New. + (umk_mismatch_args, arg_home_umk): New. + (various insns): Don't use mov, fmov, nop, fnop and unop. + (realign): Support TARGET_ABI_UNICOSMK. + + * config/alpha/unicosmk.h: New file. + * config/alpha/t-unicosmk: New file. + + * fixinc/inclhack.def (unicosmk_restrict): New. + * fixinc/fixincl.x: Regenerate. + + * ginclude/stddef.h (size_t): Check for and define __SIZE_T__. + (wchar_t): Check for and define __WCHAR_T__. + +2001-09-11 Richard Sandiford + + * combine.c (simplify_shift_const): Treat shifts by the mode + size as undefined. + +2001-09-11 Neil Booth + + * cpphash.h (struct tokenrun): New. + (struct cpp_context): New member bol. + (struct cpp_reader): New members. + (_cpp_init_tokenrun): New. + * cppinit.c (cpp_create_reader): Set up the token runs. + * cpplex.c (lex_directive, lex_token, next_tokenrun): New. + (lex_token): New internalised version of _cpp_lex_token. Don't + handle directives or the multiple include optimization here any + more. Simply lex a token. + * cpplib.c (run_directive): Clear bol. + (_cpp_pop_buffer): Set bol. + * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing + arguments. + +2001-09-11 Michael Meissner + + * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and + give an error if the user uses -mfp32. + (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the + default options. + (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the + floating point register size. + (EXTRA_SPECS): Add CPP_FPR_SPEC. + + * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use + HOST_WIDE_INT_PRINT_DEC to properly print the result of + int_size_in_bytes. + * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto. + * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto. + +2001-09-11 Hans-Peter Nilsson + + * dbxout.c (dbxout_parms): Fix typo in comment. + * unroll.c (loop_find_equiv_value): Ditto. + * toplev.c (rest_of_compilation): Ditto. + * loop.c (scan_loop): Ditto. + * dwarf2out.c (struct dw_fde_struct): Ditto. + +2001-09-10 Zack Weinberg + + * cpplex.c (parse_identifier): Fast-path optimize. Avoid + copying identifier when we're just going to throw it away. + (parse_identifier_slow): New routine to handle abnormal cases. + (_cpp_lex_token): Update call site. + + * hashtable.c (ht_lookup): Don't assume that the string we've + been given is NUL-terminated. + * system.h: #define __builtin_expect(a, b) to (a) if not + GCC >=3.0. + +2001-09-10 Michael Meissner + + * config.gcc (sparc64-*-solaris2): Add alias to be compatible with + binutils, gdb. + +2001-09-10 David Edelsohn + + * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o). + +Mon Sep 10 16:26:44 2001 Richard Kenner + + * builtins.c (c_getstr): Correct thinko in last change and further + cleanup. + +2001-09-10 Tim Freeman + + * dwarf2out.c (incomplete_types, decl_scope_table): Make them + into varray's and register them as roots with the garbage + collector so they are not collected too soon. + +Mon Sep 10 14:21:26 CEST 2001 Jan Hubicka + + * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o): + New. + * basic-block.h (flow_obstack, label_value_list, + tail_recursion_label_list): Declare + (tidy_fallthru_edges): Declare. + (expunge_block, last_loop_beg_note): Delete. + (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare. + * cfg.c: New file + (basic_block_for_insn, label_value_list): Move from flow.c; make global. + (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks, + init_flow, clear_edges, can_delete_note_p, can_delete_label_p, + flow_delete_insn, flow_delete_insn_chain, create_basic_block, + expunge_block, flow_delete_block, compute_bb_for_insn, + update_bb_for_insn, set_block_for_insn, set_block_for_new_insns, + make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup, + redirect_edge_pred, split_block, marge_blocks_nomove, block_label, + try_redirect_by_replacing_jump, last_loop_beg_note, + redirect_edge_and_branch, redirect_edge_and_branch_force, + tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p, + split_edge, insert_insn_on_edge, commit_one_edge_insertion, + commit_edge_insertions, dump_flow_info, debug_flow_info, + dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb, + verify_flow_info, purge_dead_edges, purge_all_dead_edges): + Move here from flow.c + * cfganal.c: New file. + (forwarder_block_p, can_fallthru, mark_critical_edges, + mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add, + find_unreachable_blocks, create_edge_list, free_edge_list, + print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print, + flow_edge_list_print, remove_fake_successors, remove_fake_edges, + add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit, + flow_reverse_top_sort_order_compute, flow_depth_first_order_compute, + flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb, + flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish); + Move here from flow.c + * cfgbuild.c: New file + (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge, + make_edges, find_basic_blocks_1, find_basic_blocks, + find_sub_basic_blocks): Move here from flow.c + * cfgcleanup.c: New file. + (try_simplify_condjump, try_forward_edges, tail_recursion_label_p, + merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps, merge_blocks, + flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, + try_crossjump_bb, try_optimize_cfg): Move here from flow.c + (delete_unreachable_blocks, cleanup_cfg): Likewise; return true + if succeeded. + * cfgloop.c: New file + (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump, + flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find, + flow_loop_exit_edges_find, flow_loop_nodes_find, + flow_loop_pre_header_scan, flow_loop_pre_header_find, + flow_loop_tree_node_add, flow_loops_tree_build, + flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan, + flow_loops_find, flow_loops_update, flow_loop_outside_edge_p): + Move here from flow.c + * flow.c: Remove everything moved elsewhere + * output.h (cleanup_cfg): Return bool. + + * bb-reorder.c (reorder_block_def): Remove 'index'. + (insert_intra_1): Add argument BB, set block for new note. + (make_reorder_chain): Do not depdent on BB indexes. + (make_reorder_chain_1): Do not use BB indexes. + (label_for_bb): Likewise; set BB for new insn. + (emit_jump_to_block_after): Likewise. + (fixup_reorder_chain): Sanity check that all basic blocks + are chained; verify newly created insn chain; remove + undocnitional jump simplifying; Do not use BB indexes; + properly initialize count and frequency information; + dump reordered sequence. + (insert_intra_bb_scope_notes): update call of insert_intra_1. + (insert_inter_bb_scope_notes): Set block for new insn. + (reorder_basic_blocks): Dump flow info before reoredering. + +Mon Sep 10 06:47:35 2001 Richard Kenner + + * alias.c (clear_reg_alias_info): Use K&R format definition. + Avoid unsigned warning. + * builtins.c: Use "unsigned int", not "unsigned". + (target_char_cast): Use host_integerp and tree_low_cst. + (expand_builtin_args_info, expand_builtin_frame_address): Likewise. + (c_strlen): Likewise; OFFSET now HOST_WIDE_INT. + (c_getstr): Likewise. + (std_expand_builtin_va_arg): Use int_size_in_bytes. + (builtin_memcpy_read_str): Avoid unsigned warning. + (expand_builtin_memcpy): Alignments are unsigned. + (expand_builtin_strncpy, expand_builtin_memset): Likewise. + (expand_builtin_expect_jump): Use integer_zerop and integer_onep. + * predict.c (expensive_function_p): LIMIT now unsigned. + * resource.c (mark_target_live_regs): Make some vars unsigned. + * sdbout.c: Use "unsigned int", not "unsigned". + (MAKE_LINE_SAFE): Add cast to avoid unsigned warning. + (sdbout_source_line): Likewise. + (sdbout_record_type_name): Remove "const" for NAME declaration. + * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes. + +2001-09-10 Richard Sandiford + + * calls.c (store_one_arg): Expand comment. + +2001-09-10 Roman Lechtchinsky + + * calls.c (store_one_arg): Make sure that the entire argument is + pushed if STACK_PARMS_IN_REG_PARM_AREA is defined. + +2001-09-09 Richard Henderson + + * emit-rtl.c (adjust_address): Fix mode for LO_SUM. + +Sun Sep 9 10:43:17 CEST 2001 Jan Hubicka + + * loop.c (combine_givs): Fix computing of benefit once giv is combined. + +2001-09-09 Richard Henderson + + * config/alpha/alpha.c (alpha_next_sequence_number): New. + (alpha_this_literal_sequence_number): New. + (alpha_this_gpdisp_sequence_number): New. + (some_operand, input_operand): Add HIGH. + (local_symbolic_operand): New. + (alpha_encode_section_info): New. + (alpha_legitimate_address_p): Allow LO_SUM. + (alpha_legitimize_address): Generate HIGH+LO_SUM. + (alpha_expand_mov): Likewise. + (secondary_reload_class): Check memory_operand not general_operand + for FP_REGS test. + (alpha_expand_unaligned_load): Force LO_SUM addresses into a register. + (alpha_expand_unaligned_store): Likewise. + (alpha_expand_unaligned_load_words): Likewise. + (alpha_expand_unaligned_store_words): Likewise. + (alpha_expand_block_clear): Likewise. + (print_operand): Handle %#, %*, %H. + (print_operand_address): Handle LO_SUM. + (find_lo_sum): New. + (alpha_does_function_need_gp): Use it. + (alpha_expand_block_move): Fix signed compare warnings. + (alpha_sa_mask, alpha_align_insns): Likewise. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New. + (MASK_EXPLICIT_RELOCS): New. + (TARGET_SWITCHES): Add -mexplicit-relocs. + (EXTRA_CONSTRAINT): Add 'T'. + (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS. + (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion. + (ENCODE_SECTION_INFO): Out line. + (REDO_SECTION_INFO_P): New. + (STRIP_NAME_ENCODING): New. + (ASM_OUTPUT_LABELREF): New. + (PRINT_OPERAND_PUNCT_VALID_P): Add #, *. + (PREDICATE_CODES): Update. + * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er, + call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix, + movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er, + builtin_setjmp_receiver_er, exception_receiver_1_er, + call_value_osf_1_er): New patterns. + (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative. + (movqi, movhi, movsi): Add explicit $31 base register to lda. + * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs. + (FINAL_PRESCAN_INSN): New. + +Sat Sep 8 22:00:55 CEST 2001 Jan Hubicka + + * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code. + +2001-09-08 Andreas Jaeger + + * i386.h (TARGET_SWITCHES): Fix description. + +2001-09-07 David Edelsohn + + * rs6000.c (num_insns_constant): Compute number of instructions + more accurately. + + * doc/install.texi: Explain AIX exception handling work-around. + Update URL for AIX fixes. + +2001-09-07 Jim Wilson + + * alias.c (clear_reg_alias_info): New. + * flow.c (attempt_auto_inc): Call clear_reg_alias_info. + * rtl.h (clear_reg_alias_info): Declare. + +2001-09-07 Roman Lechtchinsky + + * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is + available. + (UEMUSHORT): New. Use instead of unsigned EMUSHORT. + (m16m,edivm,emulm): Change declaration to match definition. + +2001-09-07 Roman Lechtchinsky + + * reload.c (push_reload): Check for subreg_lowpart_p instead of + SUBREG_BYTE being 0 when determining if the inner part of a subreg + can be reloaded. + +2001-09-07 Roman Lechtchinsky + + * c-common.c (signed_or_unsigned_type): Handle machine mode types + which have no corresponding C type. + * fold_const.c (target_isinf,target_isnan,target_negative): Update + the representation of 64-bit doubles to work with 64-bit ints. + +2001-09-07 Aldy Hernandez + + * config/mips/mips.c (override_options): Do not override ISA when ABI + specified if MIPS_CPU_STRING_DEFAULT was specified. + +2001-09-07 Richard Henderson + + * loop.c (record_giv): Avoid simplifying MULT to ASHIFT. + (express_from_1): Wrap lines. + * rtlanal.c (commutative_operand_precedence): Rename from + operand_preference; export. + * rtl.h: Declare it. + * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling. + (simplify_binary_operation): Invoke simplify_plus_minus on + (CONST (PLUS ...)) as well. + (struct simplify_plus_minus_op_data): New. + (simplify_plus_minus_op_data_cmp): New. + (simplify_plus_minus): Use them. Avoid infinite recursion with + simplify_binary_operation wrt CONST. + +Fri Sep 7 11:52:30 2001 Kazu Hirata + + * h8300-protos.h (general_operand_dst_push): Remove. + * h8300.c (general_operand_dst_push): Likewise. + * h8300.h (OK_FOR_T): Likewise. + (EXTRA_CONSTRAINTS): Do not use OK_FOR_T. + * h8300.md (pushqi_h8300): New. + (pushqi_h8300hs): Likewise. + (pushqi): Likewise. + (pushhi_h8300): Likewise. + (pushhi_h8300hs): Likewise. + (pushhi): Likewise. + +Fri Sep 7 12:56:26 2001 Richard Kenner + + * genattrtab.c (attr_printf): First arg is unsigned. + Clean up formatting of callers. + +2001-09-06 Aldy Hernandez + + * config/mips/mips.c (override_options): Allow abi32 with 64 bit + registers. + +2001-09-07 Andreas Jaeger + + * i386.h (TARGET_SWITCHES): Fix descriptions. + +2001-09-07 Matt Kraai + + * stor-layout.c (compute_record_mode): Check DECL_SIZE is set. + +2001-09-06 Ira Ruben + + Remove OP_IDENTIFIER. + * tree.def (OP_IDENTIFIER): Remove. + * tree.c (tree_node_kind enum): Remove op_id_kind. + (tree_node_kind_names): Remove "op_identifiers". + (make_node): Remove OP_IDENTIFIER test. + (build_op_identifier): Removed because it isn't being used. + * print-tree.c (print_node): Remove OP_IDENTIFIER case. + * cp/pt.c (tsubst): Remove OP_IDENTIFIER case. + +2001-09-06 Richard Henderson + + * simplify-rtx.c (simplify_binary_operation): Revert last change. + +2001-09-06 Richard Henderson + + * simplify-rtx.c (simplify_binary_operation): Simplify contents + of CONST. + +2001-09-06 Franz Sirl + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register + number used for CR register. + +Thu Sep 6 11:16:35 2001 Jeffrey A Law (law@cygnus.com) + Joern Rennecke (amylaar@cygnus.com) + + * h8300-protos.h (h8300_return_addr_rtx): New prototype. + * h8300.c (initial_offset): Handle offset between RP and FP. + (h8300_return_addr_rtx): New function. + * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a + return register. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes. + (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise. + (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise. + (CAN_ELIMINATE, REGISTER_NAMES): + (RETURN_ADDR_RTX): Call h8300_return_addr_rtx. + +2001-09-06 Nathan Sidwell + + Remove TYPE_NONCOPIED_PARTS. + * tree.h (TYPE_NONCOPIED_PARTS): Remove. + (struct tree_type): Remove noncopied_parts. + * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO. + * expr.c (save_noncopied_parts, init_noncopied_parts): Remove. + (fixed_type_p): Remove. + (expand_expr, INIT_EXPR): Don't deal with noncopied parts. + (expand_expr, MODIFY_EXPR): Likewise. + * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS. + * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME. + +2001-09-06 Alan Modra + + * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid + compiler warnings. + (mask64_operand): Likewise. + (includes_rldic_lshift_p): Likewise. + (includes_rldicr_lshift_p): Likewise. + +2001-09-05 Ziemowit Laski + + * objc/objc-act.c (build_message_expr): If a class method cannot + be found, do not issue a warning if a corresponding instance + method exists in the root class. + +2001-09-05 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_mov): Initialize temp. + +2001-09-05 Zack Weinberg + + * function.c (ggc_mark_struct_function): Mark f->outer. + * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here... + * integrate.c (output_inline_function): ... not here. + +Wed Sep 5 17:28:49 CEST 2001 Jan Hubicka + + * profile.c (branch_prob): Call add_noreturn_fake_exit_edges. + + * i386.c (size_cost): New static variable. + (override_function): Use size_cost when -Os is specified. + + * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue + properly; Use current_function_calls_eh_return. + (ix86_expand_epilogue): Avoid dummy optimize_size tests; + use leave to avoid dependency chain. + + * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream; + get BB loop_depth instead of computing it from LOOP notes. + + * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves. + +2001-09-05 John David Anglin + + * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP): Define + +2001-09-05 Jeffrey A Law (law@cygnus.com) + Jason Merrill (jason@redhat.com) + + * stor-layout.c (layout_type): Complain if an array's size can + not be represented in a size_t. + + * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define. + +2001-09-05 David Billinghurst + + * gcc.c: (process_command) Add parentheses around assignment + used as truth value. + +2001-09-05 Richard Sandiford + + * config/mips/mips.c (save_restore_insns): Don't mark any register + save slots as unchanging if current_function_calls_eh_return. + +2001-09-05 Richard Henderson + + * config/alpha/alpha.c (alpha_legitimate_address_p): New. + * config/alpha/alpha-protos.h: Declare it. + * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file. + (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro. + (NONSTRICT_REG_OK_FP_BASE_P): Likewise. + (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro. + (REG_OK_FOR_BASE_P): Select one of the above. + +2001-09-05 Richard Sandiford + + * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead. + (crti.o): Prefix name of object file with $(T). + (crtn.o): Likewise. + +2001-09-05 David S. Miller + + * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC. + * config/sparc/linux64.h: Likewise. + +2001-09-05 Andreas Jaeger + + * doc/invoke.texi (i386 Options): -mwide-multiply is not + available anymore, remove the documentation. + (i386 Options): Fix typo, cleanup index entries. + + * prefix.c (concat): Remove, we can use the version from liberty. + +2001-09-05 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx): + New functions split out of md file expanders. + * config/alpha/alpha-protos.h: Declare them. + * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them. + +2001-09-05 Neil Booth + + * cppmacro.c (funlike_invocation_p): No need to restore context. + +2001-09-04 Richard Henderson + + * reload.c (push_reload): Export. + * reload.h (push_reload): Declare it. + + * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line. + (LEGITIMIZE_RELOAD_ADDRESS): Likewise. + * config/alpha/alpha.c (alpha_legitimize_address): New. + (alpha_legitimize_reload_address): Likewise. + * config/alpha/alpha-protos.h: Declare them. + +2001-09-04 Stan Shebs + + * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define. + * config/darwin.c (machopic_stub_name): Account for internally + generated lib calls such as memcpy. + +2001-09-04 Richard Henderson + + * unwind.h (_UA_END_OF_STACK): New flag. + * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it. + +Tue Sep 4 11:16:35 2001 Jeffrey A Law (law@cygnus.com) + + * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8. + +2001-09-04 Richard Sandiford + + * config/mips/mips.c (save_restore_insns): Change base_offset to + fp_offset in second call to mips_emit_frame_related_store. + +2001-09-04 Hans-Peter Nilsson + + * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can + sometimes be represented as a NOTE of type + NOTE_INSN_DELETED_LABEL. + (Insns): Document NOTE_INSN_DELETED_LABEL. + +2001-09-04 Nathan Sidwell + + * c-common.h (tree_dump_index): Add more comments. + * c-dump.c (dump_files): Name flags `tree' rather than `ast'. + (dump_option_value_info): New struct. + (dump_options): New array. + (dump_switch_p): Parse switch options symbolically. + * doc/invoke.texi (-fdump-ast): Rename to ... + (-fdump-tree): ... here. Document that options are symbolic, and + not all are applicable. + +2001-09-04 David S. Miller + + * config/sparc/sparc.md (define_splits): Kill constraints. + + Cleanup redundant and unused insn attributes. + * config/sparc/sparc.md (define_attr "insn"): Kill address, unary, + binary, and move. Mark ialu as default. + (commented out define_function_unit "alu"): Kill. + (define_attr "use_clobbered"): Kill. + (whole file): Kill address insn type references. Replace + all unary/binary/move references with ialu. + * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS + references. Replace TYPE_{UNARY,BINARY,MOVE} references with + TYPE_IALU. + + Simplify length insn attribute and make more judicious use + of insn attribute defaulting. + * config/sparc/sparc.md (all insns with length > one): Mark as + insn type multi if real instructions, else use default if + it is a forced splitter. + (all insns with length == one): Use default insn length. + (all insns of type ialu): Use default insn type. + + Fix erroneous insn attribute settings. + (addx): Set insn type to misc. + (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64, + const_umulsidi3_sp64): Set insn type to imul. + + Track SFmode vs DFmode insns according to UltraSPARC + scheduling rules. + * config/sparc/sparc.md ("fptype"): New attribute, default + to "single". + (all DFmode single insns): Mark as fptype "double". + +2001-09-03 Jakub Jelinek + + * loop.c (express_from_1): Fix CONSTANT_P(a) case. + +2001-09-03 Richard Henderson + + * function.h (struct function): Add arg_pointer_save_area_init. + * function.c (expand_function_end): Init arg_pointer_save_area. + (get_arg_pointer_save_area): Do not init arg_pointer_save_area + when called from a nested function. + +2001-09-02 Angela Marie Thomas + + * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode + is enabled. + +Sun Sep 2 18:37:54 CEST 2001 Jan Hubicka + + * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence. + +2001-09-01 Geoffrey Keating + + * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD. + (emit_push_insn): Use specified padding direction when + STACK_PUSH_CODE is POST_INC. + + * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0. + +2001-09-01 Kaveh R. Ghazi + + * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'. + +2001-09-01 Neil Booth + + * cppinit.c (cpp_start_read): Free the imacros list as we + traverse it. Don't free the chains before returning. + (_cpp_push_next_buffer): Only try pushing buffers if we've + completed -imacros handling. + +2001-08-31 Eric Christopher + + * gcc.c (handle_braces): Add explaination for abort. + +2001-08-30 Roman Zippel + + * expmed.c (store_bit_field): Update to patch from 2001-08-27: + move adjustment of bitpos instead. + +2001-08-31 Zack Weinberg + + * function.c: Remove all_functions. Make outer_function_chain + static. + (init_function_start): Don't add new function structure to + all_functions. + (find_function_data, push_function_context_to, + pop_function_context_from, put_var_into_stack, + trampoline_address): Update for changed structure element names. + (push_function_context_to): Disentangle. + (free_after_compilation): Also free F. + (expand_dummy_function_end): Don't free cfun here. + (put_var_into_stack): Comment why we can't use find_function_data here. + (fix_lexical_addr, trampoline_address, ): Use find_function_data. + (mark_function_chain): Split into maybe_mark_struct_function and + ggc_mark_struct_function. Export the latter. + (init_function_once): Mark from cfun and outer_function_chain; + not all_functions. + + * function.h (struct function): Kill next_global. Rename next + to outer. All users updated to match. + (all_functions, outer_function_chain): Don't declare. + + * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS. + * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS, + don't touch f->inlinable, after calling rest_of_compilation. + + * tree.h: Forward-declare struct function. Prototype + ggc_mark_struct_function. + +2001-08-31 Kazu Hirata + + * config/h8300/h8300.md (*andorhi3): Fix typos. + +2001-08-31 Kaveh R. Ghazi + + * calls.c (emit_library_call_value): Don't use a fixed + argument after VA_CLOSE, i.e. out of scope in traditional C. + + * emit-rtl.c (gen_rtvec): Likewise. + +2001-08-31 Kaveh R. Ghazi + + * Makefile.in (c-pragma.o): Depend on output.h. + (reorg.o): Depend on except.h. + + * c-pragma.c: Include output.h. + + * reorg.c: Include except.h. + + * unwind-dw2.c: Call __builtin_alloca, not alloca. + +2001-08-31 Richard Henderson + + * sched-deps.c (add_dependence): Don't elide dependency if the + conditional used by insn is modified in elem. + +2001-08-31 Nick Clifton + + * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define. + +2001-08-31 Diego Novillo + + * c-decl.c (c_decode_option): Skip '-f' prefix before calling + dump_switch_p. + +2001-08-31 Geoffrey Keating + + * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New + function. + (stormy16_asm_out_constructor): New function. + (TARGET_ASM_CONSTRUCTOR): Define. + (TARGET_ASM_DESTRUCTOR): Define. + +2001-08-31 Andreas Jaeger + + * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST. + * loop.c (add_label_notes): Likewise. + * reload.c (find_reloads): Likewise. + * config/sh/sh.c (machine_dependent_reorg): Likewise. + +2001-08-31 Jason Merrill + + * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading + code here. Take _Unwind_{W,Sw}ord*. + (read_encoded_value_with_base): Use them. + * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg + words. + (extract_cie_info): Simplify read_?leb128 handling. + (execute_stack_op, execute_cfa_program): Likewise. + * unwind-dw2-fde.c (get_cie_encoding): Likewise. + +2001-08-31 Geoffrey Keating + + * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use + the frame pointer to pop the stack if convenient. + + * config/stormy16/stormy16.c (stormy16_initialize_trampoline): + Don't use post-increment before combine. + * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use + a call-saved register. + +2001-08-31 Andreas Jaeger + + * jump.c (mark_jump_label): Revert patch from 2001-08-28, the + code was correct. + +2001-08-30 Geoffrey Keating + + * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD, + not DIV/MOD, of course. + +2001-08-30 Vladimir Makarov + + * rtl.def: Undo my patch commited 2001-08-27. + + * genattrtab.c: Ditto. + + * rtl.h: Ditto. + + * sched-int.h: Ditto. + + * target-def.h: Ditto. + + * target.h: Ditto. + + * haifa-sched.c: Ditto. + + * sched-rgn.c: Ditto. + + * sched-vis.c: Ditto. + + * Makefile.in: Ditto. + + * doc/md.texi: Ditto. + + * doc/tm.texi: Ditto. + + * doc/contrib.texi: Ditto. + + * doc/gcc.texi: Ditto. + + * genattrtab.h: Remove it. + + * genautomata.c: Remove it. + + * genattr.c: Undo my patch and Richard Henderson's patch commited + 2001-08-27. + +Thu Aug 30 19:22:15 2001 J"orn Rennecke + + * config.gcc (h8300-*-elf*): New case. + * h8300.h (CPP_SPEC): Add subtarget_cpp_spec. + (SUBTARGET_CPP_SPEC): Define. + (EXTRA_SPECS): Define. + (SUBTARGET_EXTRA_SPECS): Define. + * config/h8300/crti.asm, config/h8300/crtn.asm: New files. + * config/h8300/elf.h, config/h8300/t-elf: Likewise. + +Thu Aug 30 18:50:37 2001 J"orn Rennecke + + * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm. + (LIB2FUNCS_EXTRA): Define. + config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm . + config/h8300/fixunssfsi.c: New file. + +2001-08-30 Kazu Hirata + + * config/h8300/h8300.md (zero_extendqihi2): Changes to + define_expand to accommodate target-specific attributes. + (anonymous zero_extendqihi2 patterns): New. + +Thu Aug 30 18:10:56 2001 J"orn Rennecke + + * h8300.md (*andorhi3): New pattern. + +Thu Aug 30 16:00:31 2001 J"orn Rennecke + + * h8300.c (dosize): Fix test for "sub". + +Thu Aug 30 10:21:43 2001 J"orn Rennecke + + * c-typeck.c (pointer_diff): Try to eliminate common term before + doing conversions. + +2001-08-30 Nick Clifton + + * config/arm/arm.c (arm_compute_initial_elimination_offset): + Account for the saves of the FP registers. + + * config/arm/unknown-elf.h (TEXT_SECTION): Delete. + (TEXT_SECTION_ASM_OP): Define. + (INIT_SECTION_ASM_OP): Define. + (FINI_SECTION_ASM_OP): Define. + (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma. + (RDATA_SECTION_FUNCTION): Provide prototype. + +2001-08-29 Geoffrey Keating + + * reload1.c (move2add_note_store): Correct typo checking for + argument pushes. + +2001-08-29 Andrew MacLeod + + * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL + note should not be considered outside the libcall block. + +2001-08-29 Kaveh R. Ghazi + + * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE. + +2001-08-29 Kazu Hirata + + * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe. + +2001-08-29 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + emit_logical_op. + * config/h8300/h8300.c (emit_logical_op): New. + * config/h8300/h8300.md (andhi3): Use emit_logical_op. + (andsi3): Likewise. + (iorhi3): Likewise. + (iorsi3): Likewise. + (xorhi3): Likewise. + (xorsi3): Likewise. + +2001-08-29 John David Anglin + + * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for + comparison with rtx INTVAL. + (pa_output_function_prologue): Don't mix signed and unsigned in `?' + expression. + * pa.h (FUNCTION_ARG_SIZE): Likewise. + +2001-08-29 Kazu Hirata + + * config/h8300/lib1funcs.asm: Update the copyright. Fix + comment typos. + +2001-08-29 Kazu Hirata + + * config/h8300/h8300.md (anonymous movhi pattern): Don't move + (reg n) to (mem (pre_dec (reg n)) + (anonymous movsi pattern): Likewise. + +2001-08-29 Kazu Hirata + + * config/h8300/h8300.h (RETURN_ADDR_RTX): New. + +2001-08-29 Kazu Hirata + + * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of + several special constants. + +2001-08-29 Kazu Hirata + + * config/h8300/lib1funcs.asm: Fix comment typos. + +2001-08-29 Kaveh R. Ghazi + + * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT): + Fix format specifier warnings. + + * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof, + inet_makeaddr, semctl): Prototype. + + * mips.c (compute_frame_size): Fix signed/unsigned warnings. + (save_restore_insns): Use base_offset, not gp_offset. + + * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning. + (ASM_OUTPUT_BYTE): Fix format specifier warning. + +2001-08-29 Richard Henderson + + * bb-reorder.c (function_tail_eff_head): New. + (record_effective_endpoints): Set it. + (fixup_reorder_chain): Use it. + +2001-08-28 Kaveh R. Ghazi + + * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change. + +2001-08-28 Dale Johannesen + + * config/darwin.c (machopic_function_base_name): Add const + qualifier to a string. + (darwin_encode_section_info): Ditto. + +2001-08-28 Kaveh R. Ghazi + + * tree.c (default_valid_attribute_p): Don't use PARAMS on a + function definition. + +2001-08-28 Daniel Berlin + + * df.h (struct df): Add rts_order variable. + + * df.c (df_visit_next_rts): New function. + (df_visit_next): Renamed to df_visit_next_rc + (df_analyse_1): Allocate/compute/free rts_order as well. + (df_rd_global_compute): Use df_visit_next_rc instead of + df_visit_next. + (df_ru_global_compute): Use df_visit_next_rts instead of + df_visit_next. + + * flow.c (flow_reverse_top_sort_order_compute): New function. + + * basic-block.h: Add prototype. + +2001-08-28 Daniel Berlin + + * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable + blocks, the BB_REACHABLE is now set, rather than aux being + non-NULL. Update the test to reflect this. + +2001-08-28 Eric Christopher + + * config/mips/crtn.asm: Add comment explaining 16 byte alignment. + config/mips/crti.asm: Ditto. + +2001-08-28 Eric Christopher + Richard Henderson + + * c-pragma.h (add_weak): Move prototype from here... + * output.h (add_weak): ... to here. + * varasm.c (add_weak): Fix typo. + * config/mips/crti.asm: New file. + * config/mips/crtn.asm: Ditto. + * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef. + (CTOR_LISTS_DEFINED_EXTERNALLY): Remove. + (INVOKE__main): Ditto. + (INIT_SECTION_ASM_OP): New. + (FINI_SECTION_ASM_OP): Ditto. + (STARTFILE_SPEC): Add crti. + (ENDFILE_SPEC): Add crtn. + * config/mips/elf64.h: Same. + * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN): + Remove. + * config/mips/vxworks.h: Ditto. + * config/mips/t-elf: Support crti and crtn. + +2001-08-28 Alexandre Oliva + + * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not + INSN_LIST. + +2001-08-28 Richard Henderson + + * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos. + (one_cmplbi2 splitter): Remove redundant test. + +2001-08-28 Dale Johannesen + + * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define. + +2001-08-28 Danny Smith + + * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64. + +2001-08-28 Stan Shebs + + * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names. + (UNALIGNED_SHORT_ASM_OP): Define. + (UNALIGNED_INT_ASM_OP): Define. + +2001-08-28 Will Cohen + + * config/rs6000/rs6000.md (store_multiple): Correct RTL + generation for first set. + +2001-08-27 Roman Zippel + + * flow.c (redirect_edge_succ_nodup): Return new edge. + (try_simplify_condjump): Use new edge. + * basic-block.h (redirect_edge_succ_nodup): Update prototype. + + * cse.c (cse_basic_block): Skip note instructions. + +2001-08-27 Richard Henderson + + * combine.c (combine_simplify_rtx): Don't reverse condition + if there is no reverse for the condition. + (simplify_comparison): Don't simplify subregs from INT to FP. + + * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1, + suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1, + sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1, + bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, + bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev, + bunle_rev, bunlt_rev, bltgt_rev): New patterns. + +2001-08-27 Roman Zippel + + * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi, + bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset. + (pushqi1): New. + (adddi_dilshr32, adddi_dishl32): Only data register can be + source for mem destination. + + * expmed.c (store_bit_field): Ignore adjustment to bitpos + and use bitnum to decide about register move. + +2001-08-27 Richard Henderson + + * genattr.c (main): Emit state_t even when not doing scheduling. + +2001-08-27 Roman Zippel + Richard Henderson + + * gcse.c (reg_first_set, reg_last_set): Replace with ... + (reg_avail_info, current_bb): ... these. + (oprs_unchanged_p, record_last_reg_set_info): Use them. + (compute_hash_table): Likewise. + +2001-08-27 Roman Zippel + + * flow.c (verify_flow_info): Use checksums to verify edges. + +2001-08-27 Richard Henderson + + * genautomata.c (expand_automata): Always create a description. + +2001-08-27 Geoffrey Keating + + * optabs.c (expand_binop): Correctly handle the carry in multiword + add/subtract operations. + +2001-08-27 Fred Fish + + * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be + __SIZE_TYPE__. + +2001-08-27 Geoffrey Keating + + * reload.c (find_reloads_toplev): Back out this change: + + 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. + +2001-08-27 Vladimir Makarov + + * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET, + PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON, + AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New + RTL constructions. + + * genattr.c (main): New variable num_insn_reservations. Increase + it if there is DEFINE_INSN_RESERVATION. Output automaton based + pipeline hazard recognizer interface. + + * genattrtab.h: New file. + + * genattrtab.c: Include genattrtab.h. + (attr_printf, check_attr_test, make_internal_attr, + make_numeric_value): Move protypes into genattrtab.h. Define them + as external. + (num_dfa_decls): New global variable. + (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, + DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET, + DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION, + DEFINE_INSN_RESERVATION. Call expand_automata and write_automata. + + * genautomata.c: New file. + + * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them. + + * sched-int.h: (curr_state): Add the external definition for + automaton pipeline interface. + (haifa_insn_data): Add comments for members blockage and units. + + * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, + TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, + TARGET_SCHED_DFA_POST_CYCLE_INSN, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, + TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New + macros. + (TARGET_SCHED): Use the new macros. + + * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn, + dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn, + first_cycle_multipass_dfa_lookahead, init_dfa_bubbles, + dfa_bubble): New members in gcc_target.sched. + + * haifa-sched.c (insert_schedule_bubbles_p): New variable. + (MAX_INSN_QUEUE_INDEX): New macro for automaton interface. + (insn_queue): Redefine it as pointer to array. + (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of + INSN_QUEUE_SIZE. + (max_insn_queue_index_macro_value): New variable. + (curr_state, dfa_state_size, ready_try): New varaibles for + automaton interface. + (ready_element, ready_remove, max_issue): New function prototypes + for automaton interface. + (choose_ready): New function prototype. + (insn_unit, blockage_range): Add comments. + (unit_last_insn, unit_tick, unit_n_insns): Define them for case + FUNCTION_UNITS_SIZE == 0. + (insn_issue_delay, actual_hazard_this_instance, schedule_unit, + actual_hazard, potential_hazard): Add comments. + (insn_cost): Use cost -1 as undefined value. Remove + LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton + pipeline interface. + (ready_element, ready_remove): New functions for automaton + interface. + (schedule_insn): Add new code for automaton pipeline interface. + (queue_to_ready): Add new code for automaton pipeline interface. + Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE. + (debug_ready_list): Print newline when the queue is empty. + (max_issue): New function for automaton pipeline interface. + (choose_ready): New function. + (schedule_block): Add new code for automaton pipeline interface. + Print ready list before scheduling each insn. + (sched_init): Add new code for automaton pipeline interface. + Initiate insn cost by -1. + (sched_finish): Free the current automaton state and finalize + automaton pipeline interface. + + * sched-rgn.c: Include target.h. + (init_ready_list, new_ready, debug_dependencies): Add new code for + automaton pipeline interface. + + * sched-vis.c: Include target.h. + (get_visual_tbl_length): Add code for automaton interface. + (target_units, print_block_visualization): Add comments. + + * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB, + USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables. + (sched-rgn.o, sched-vis.o): Add new dependency file target.h. + (getruntime.o, genautomata.o): New entries. + (genattrtab.o): Add new dependency file genattrtab.h. + (genattrtab): Add new dependencies. Link it with `libm.a'. + (getruntime.o, hashtab.o): New entries for canadian cross. + + * doc/md.texi: Description of automaton based model. + + * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST): + Add comments. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, + TARGET_SCHED_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_DFA_POST_CYCLE_INSN, + TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, + TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new + hook descriptions. + (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE, + MAX_DFA_ISSUE_RATE): New macro descriptions. + + * doc/contrib.texi: Add dfa based scheduler contribution. + + * doc/gcc.texi: Add more information about genattrtab. + +2001-08-27 Diego Novillo + + * flow.c (flow_loop_dump): Do not display insn UIDs if this is not + an RTL basic block. + +2001-08-27 Richard Henderson + + * function.c (expand_function_end): Don't init arg_pointer_save_area. + (get_arg_pointer_save_area): New. Create an init it here. + (fix_lexical_addr): Use it. + * function.h: Declare it. + * builtins.c (expand_builtin_setjmp_receiver): Use it. + * stmt.c (expand_nl_goto_receiver): Use it. + +2001-08-27 Richard Henderson + + * final.c (final_scan_insn): Don't enter APP_ON mode for + empty asm strings. + + * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper + alignment for assemble_integer for DW_EH_PE_aligned. + * except.c (output_function_exception_table): Likewise. + +2001-08-26 Andreas Jaeger + + * c-tree.h: Add prototyp for c_sizeof_nowarn. + +2001-08-25 Dan Nicolaescu + + * ssa-ccp.c (ssa_const_prop): Free ssa_edges. + +2001-08-27 Alan Modra + + * config/rs6000/rs6000.c (mask_operand): Rewrite without + bit-shifting loop. + (mask64_operand): Likewise. + (rldic_operand): Delete. + (includes_lshift64_p): Delete. + (includes_rldic_lshift_p): New function. + (includes_rldicr_lshift_p): New function. + (print_operand): Don't call rldic_operand in case 'W'. + * config/rs6000/rs6000-protos.h (rldic_operand): Remove. + (includes_lshift64_p): Remove. + (includes_rldic_lshift_p): Declare. + (includes_rldicr_lshift_p): Declare. + * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand. + * config/rs6000/rs6000.md : + Replace match_operand rldic_operand predicate with + const_int_operand. Replace includes_lshift64_p condition with + includes_rldic_lshift_p. + : New. + +2001-08-27 Andreas Jaeger + + * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout. + * errors.c: Likewise. + * final.c: Likewise. + * dwarf2asm.c: Likewise. + * doprint.c (checkit): Likewise. + * diagnostic.c: Likewise. + * collect2.c: Likewise. + * calls.c: Likewise. + * c-semantics.c (build_stmt): Likewise. + * c-format.c (status_warning): Likewise. + * c-errors.c (pedwarn_c99): Likewise. + * builtins.c (validate_arglist): Likewise. + * config/pj/pj.c (pj_printf): Likewise. + * fix-header.c: Likewise. + * gcc.c: Likewise. + * gcov.c (fnotice): Likewise. + * gensupport.c (message_with_line): Likewise. + * mips-tfile.c: Likewise. + * protoize.c (notice): Likewise. + * read-rtl.c (fatal_with_file_and_line): Likewise. + * rtl-error.c: Likewise. + * tradcpp.c: Likewise. + * tree.c: Likewise. + * cp/tree.c (build_min_nt): Likewise. + (build_min): Likewise. + * cp/lex.c: Likewise. + * cp/errfn.c: Likewise. + * cp/rtti.c (create_pseudo_type_info): Likewise. + +Sun Aug 26 20:25:44 2001 Denis Chertykov + + * df.c (df_uses_record): Return after recording all uses + in ASM_OPERANDS. + +2001-08-26 Daniel Berlin + + * df.c (df_insn_modify): Realloc the INSN table here, if + necessary, here, too. + +2001-08-26 Aldy Hernandez + + * config/mips/mips.c (mips_function_value): Handle complex return + values. + +2001-08-25 Hans-Peter Nilsson + + * reload1.c (reload): Make all entries in reg_equiv_memory_loc + unshared. + * reload.c (make_memloc): Copy result if it is still + reg_equiv_memory_loc[regno] on return. + (subst_reloads) [ENABLE_CHECKING]: Check that none of + reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and + reg_equiv_mem are modified by the substitutions. + +Sat Aug 25 23:07:35 CEST 2001 Jan Hubicka + + * predict.c (expensive_function_p): New. + * rtl.h (expensive_function_p): Declare. + * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant. + (use_fast_prologue_epilogue): New static variable. + (expand_prologue): Set it; emit short prologues if unset. + (expand_epilogue): Likewise. + +2001-08-22 Geoffrey Keating + + * config.gcc: Add stormy16-*-elf case. + * config/stormy16/stormy-abi: New file. + * config/stormy16/stormy16-lib2.c: New file. + * config/stormy16/stormy16-protos.h: New file. + * config/stormy16/stormy16.c: New file. + * config/stormy16/stormy16.h: New file. + * config/stormy16/stormy16.md: New file. + * config/stormy16/t-stormy16: New file. + +Sat Aug 25 15:46:51 CEST 2001 Jan Hubicka + + * i386.h (no-accumulate-outgoing-args): Use proper mask. + +2001-08-24 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function + descriptor members are pointer size, not constant 4. + * config/rs6000/rs6000.md (define_splits): Remove more unused + constraints. + +2001-08-24 Kaveh R. Ghazi + + * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning. + +2001-08-24 Andreas Jaeger , rkl@connect.org.uk + + * cp/rtti.c (VPARAMS): Fix parameter. + +2001-08-24 Zack Weinberg + + * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv + to zero. + (mode_for_extraction): No need for #ifdefs. Add default-case abort + to switch. + (store_bit_field): Eliminate insv_bitsize variable. Put HAVE_insv + in if controlling use of insv. + (extract_bit_field): Likewise, for extv and extzv. + +Fri Aug 24 17:27:46 CEST 2001 Jan Hubicka + + * i386.md (movcc peep2): Fix load of 0. + +2001-08-24 Kaveh R. Ghazi + + * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR, + *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR. + +2001-08-23 Jason Merrill + + * c-pragma.h: Move weak_syms and weak_decls... + * varasm.c: ...here. Now static. + (declare_weak, weak_finish, remove_from_pending_weak_list): Don't + depend on HANDLE_PRAGMA_WEAK. + + * c-common.c (c_alignof, c_alignof_expr): Move here... + * c-typeck.c: ...from here. + * c-tree.h, c-common.h: Adjust. + +2001-08-23 Bernd Schmidt + + * config/ia64/ia64.c (rws_update): If !pred, set write_count + instead of incrementing it. + + * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one + asm ready, don't try to move them all into the same array element. + +Thu Aug 23 17:21:43 CEST 2001 Jan Hubicka + + * function.c (thread_prologue_and_epilogue_insns): Avoid + fallthru flag on edge to exit. + + * i386.md (trunc?fsi splitter): Conditionionize for non-sse. + + * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge + dead edges. + +2001-08-23 Lars Brinkhoff + + * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove. + * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise. + * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx): + Remove prototype. + +2001-08-23 Lars Brinkhoff + + * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h: + replace "GNU CC" with "GCC". + +2001-08-23 Richard Henderson + + * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt. + Reorganize. Handle ADDL like GR, add GR_AND_BR. Handle TFmode. + (ia64_secondary_reload_class): Need GR between AR/BR and anything. + Need GR between FR and not GR_AND_FR. + * config/ia64/ia64-protos.h (ia64_register_move_cost): Update. + * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move + AR regs before GR regs. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. + (PREFERRED_RELOAD_CLASS): Tweak for reordered classes. + (REGISTER_MOVE_COST): Update. + (MEMORY_MOVE_COST): Add GR_AND_FR_REGS. + +2001-08-23 Richard Henderson + + * regclass.c (init_reg_sets_1): Don't assume cost 2 within + a register class. + +2001-08-22 Geoffrey Keating + + * reload1.c (emit_reload_insns): Don't look for notes + on a NULL store_insn. + +2001-08-22 Kaveh R. Ghazi + + * sparc.c (uns_small_int): Don't reference a constant >32-bit. + (addrs_ok_for_ldd_peep): Fix signed/unsigned warning. + (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix + format specifier warnings. + (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED. + +2001-08-22 David Billinghurst + + * config/i386/i386-protos.h: Correct declaration of + i386_pe_asm_named_section. + +2001-08-22 John David Anglin + + * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for + variable i. + * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise. + +2001-08-22 Neil Booth + + * cpperror.c (print_location): Don't show _Pragma. + * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing + and file change callback generation here. + (stack_include_file): Update use of cpp_push_buffer. + * cpphash.h (_cpp_pop_file_buffer): Update prototype. + (struct cpp_buffer): Remove type, pfile members. + * cppinit.c (cpp_handle_option): Use free_chain. + * cpplex.c (_cpp_lex_token): Don't do -include file pushing here. + (skip_escaped_newlines, get_effective_char, lex_percent): Take + a cpp_reader rather than a cpp_buffer. + (skip_escaped_newlines, get_effective_char, skip_block_comment, + skip_line_comment, parse_string, lex_percent, lex_dot, + _cpp_lex_token): Update accordingly. + * cpplib.c (_cpp_pop_buffer): Don't do file change callback + generation here. + (cpp_push_buffer): Update prototype. + (run_directive): Update use of cpp_push_buffer. + (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef, + handle_assertion): Update use of run_directive. + * cpplib.h (enum cpp_buffer_type): Remove. + (cpp_push_buffer): Update prototype. + * fix-header.c (read_scan_file): Update. + +2001-08-22 Matt Kraai + + * gcc.c (struct prefix_list): Change prefix to const char *. + +2001-08-22 Matt Kraai + + * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn. + +2001-08-22 Jason Merrill + + * explow.c (set_mem_attributes): Avoid returning a bogus alias set + from a new MEM. + + * jump.c (squeeze_notes): Take parms by reference. Handle END being + a squeezable note. + * rtl.h: Adjust. + * ifcvt.c (dead_or_predicable): Adjust. + * loop.c (find_and_verify_loops): Adjust. + * stmt.c (expand_end_case): Adjust. + * flow.c (merge_blocks_move_successor_nojumps): Adjust. Modify the + head and end insn pointers in the basic block, not just local copies. + (merge_blocks_move_predecessor_nojumps): Likewise. + +2001-08-22 Lars Brinkhoff + + * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, + bitmap.h, builtin-types.def, builtins.c, builtins.def, + c-aux-info.c, c-common.c, c-common.def, c-common.h, + c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, + c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, + c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, + caller-save.c, calls.c, collect2.c, collect2.h, combine.c, + conditions.h, config.gcc, configure.frag, configure.in, + conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, + cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, + dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, + doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, + dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, + emit-rtl.c, errors.c, errors.h, except.c, except.h, + exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, + fixproto, flags.h, flow.c, fold-const.c, fp-test.c, + function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, + gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, + gencheck.c, gencodes.c, genconfig.c, genemit.c, + genextract.c, genflags.c, gengenrtl.c, genmultilib, + genopinit.c, genoutput.c, genpeep.c, genrecog.c, + gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, + ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, + graph.c, graph.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, haifa-sched.c, halfpic.c, halfpic.h, + hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, + integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, + libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, + machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, + mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, + mkmap-symver.awk, optabs.c, output.h, params.c, params.def, + params.h, predict.c, predict.def, predict.h, prefix.c, + prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, + read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, + regclass.c, regmove.c, regrename.c, regs.h, reload.c, + reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, + rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, + sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, + sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, + ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, + stringpool.c, system.h, timevar.c, timevar.def, timevar.h, + tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, + tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, + unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, + unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, + xcoffout.h: replace "GNU CC" with "GCC". + +2001-08-21 Richard Henderson + + * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment. + (final_scan_insn): Consider jump tables data even if we have no + independent text section if !JUMP_TABLES_IN_TEXT_SECTION. Use + ADDR_VEC_ALIGN. + * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove. + (ASM_OUTPUT_CASE_END): Remove. + (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references. + * config/ia64/ia64.md (tablejump): Decode pc-relative references. + * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. + +2001-08-21 Richard Henderson + + * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state + at barrier insns. Emit stop bits before barriers. + + * flow.c (flow_find_cross_jump): Don't consider unconditional + return insns for commoning. + + * final.c (compute_alignments): Fix typo. + + * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults. + (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise. + (store_bit_field): Use mode_for_extraction more places. + (extract_bit_field): Likewise. + +2001-08-21 Zack Weinberg + + * caller-save.c: Don't include insn-codes.h. + (reg_save_code, reg_restore_code): Make arrays of int. + All uses updated to match. + (insert_save, insert_restore): No need to initialize "code" + variable upon declaration. + * Makefile.in: update dependencies; fix typo in clean rule. + +2001-08-21 Richard Henderson + + * ifcvt.c (find_if_block): Allow join_bb as EXIT. + (merge_if_block): Handle fallout from same. + +2001-08-21 Kaveh R. Ghazi + + * builtins.c (type_to_class): Fix typo in last change. + +2001-08-21 Richard Henderson + + * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if + ia64_asm_output_label. + + * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved + copy of gp while the real gp register contains garbage. + +2001-08-21 Zack Weinberg + + * expmed.c (mode_for_extraction): New function. + (store_bit_field, extract_bit_field): Use it. + * expr.h: Prototype it and provide an enum for its first argument. + + * combine.c, function.c, recog.c: Don't include insn-codes.h. + Use mode_for_extraction rather than testing HAVE_insv/extv/extzv + and digging through the insn_data tables. + * Makefile.in: Update dependencies. + +2001-08-22 Neil Booth + + * cppfiles.c (stack_include_file): line-map.c now handles include + depth. + (handle_missing_handler): Similarly. + (_cpp_execute_include): Similarly. + (_cpp_pop_file_buffer): Similarly. + * cpphash.h (struct cpp_reader): Remove system_include_depth, + buffer_stack_depth and include_depth. + * cpplib.c (do_include_common): line-map.c now handles include depth. + (cpp_push_buffer): Similarly. + (_cpp_pop_buffer): Similarly. + * cppmacro.c (builtin_macro): Update. + * line-map.c (init_line_maps): Set depth. + (add_line_map): Increment "used" earlier. Update and use the + include depth. + (trace_include): Use the include depth. + * line-map.h (struct line_maps): New member depth. + +2001-08-21 Neil Booth + + * cppfiles.c (stack_include_file): Don't handle -H here. + * cppinit.c (cpp_start_read): Set include tracing after + cpp_post_options and after stacking the main file. + * line-map.c (trace_include): New. + (init_line_maps, add_line_map): Update. + * line-map.h (struct line_maps): New member trace_includes. + +2001-08-21 Neil Booth + + * cppfiles.c (stack_include_file): Harmonize system headerness tests. + * cppfiles.c (stack_include_file): Only stack a file if there + is something to do. Return a boolean indicating whether a + buffer was stacked or not. + (_cpp_execute_include): Similarly. + (_cpp_read_file): Similarly. + * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes. + +2001-08-21 Sam Steingold + + * tradcpp.c (rescan): define obufp_before_macroname before RECACHE + (RECACHE): keep obufp_before_macroname up to date + +2001-08-21 Zack Weinberg + + * stmt.c: Don't include insn-codes.h. + (expand_end_case): Machine specific logic moved to expr.c. + No need to worry about __builtin_classify_type. + (check_for_full_enumeration_handling, emit_case_nodes): + Kill #if 0 blocks. + + * builtins.o (expand_builtin_classify_type): Split up so code + can be shared with fold_builtin_classify_type. + (type_to_class, fold_builtin_classify_type): New functions. + (fold_builtins): Handle __builtin_classify_type. + + * expr.c (do_tablejump): Now static. + (case_values_threshold, try_casesi, try_tablejump): New; + code mostly from stmt.c (expand_end_case). + (expr.h): Update prototypes. + + * Makefile.in (stmt.o): Update dependencies. + +2001-08-21 Will Cohen + + * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local + declaration of variable i. + * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local + declaration of variable i. + +2001-08-21 Richard Henderson + + * crtstuff.c: Fix thinko last change. Move list tails to start + of CRT_END section. Tidy ifdefs. + (__EH_FRAME_BEGIN__): Always static for ELF. + (__do_global_ctors_1): Rename from __frame_dummy. + * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1 + name change; don't hide __EH_FRAME_BEGIN__. + +2001-08-21 Richard Henderson + + * gdbinit.in: Move break on exit after break on fancy_abort. + + * config/ia64/ia64.c (ia64_return_in_memory): True for variable + sized types. + +2001-08-21 Neil Booth + + * cpphash.h (_cpp_push_next_buffer): New. + * cppinit.c (do_includes): Remove. + (push_include, free_chain, _cpp_push_next_buffer): New. + (cpp_start_read): Use them to rework command line option handling. + (cpp_handle_option): Combine handling of -include and -imacros. + * cpplex.c (_cpp_lex_token): Push a new -include buffer if + appropriate. Always insert missing \n at EOF. + * cpplib.c (start_directive): Get the directive position right. + * cppmain.c (cb_file_change): Always print the first line, unless + preprocessed. + +2001-08-20 Andreas Jaeger + + * profile.c (compute_branch_probabilities): Remove extra new-line + in error message. + * flow.c (verify_flow_info): Likewise. + +2001-08-20 Diego Novillo + + * basic-block.h (basic_block): Add new field 'flags'. + (BB_REACHABLE): Define. + (expunge_block): Declare. + * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'. + (EXIT_BLOCK_PTR): Ditto. + (expunge_block): Remove static declaration. + (cleanup_cfg): Clear bb->aux on every basic block. + (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when + computing reachability. + (delete_unreachable_blocks): Delete block b if b->flags has + BB_REACHABLE unset. + +2001-08-20 Diego Novillo + + * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast. + +2001-08-20 Kaveh R. Ghazi + + * sparc.c (sparc_variable_issue): Fix typo in last change. + +2001-08-20 Richard Henderson + + * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage. + +2001-08-20 John David Anglin + + * pa.h (RETURN_IN_MEMORY): Improve comment. + +2001-08-20 Janis Johnson + + * doc/invoke.texi (Profiling options): Clarify the interactions + between -fprofile-arcs and -ftest-coverage, -fprofile-arcs. + +2001-08-20 Jeffrey Oldham + + * crtstuff.c (__do_global_ctors): Fix typo in preprocessing + command. + +2001-08-20 Matt Kraai + + * gcc.c (make_relative_prefix): Allocate a sufficiently large + buffer. + +2001-08-20 Richard Henderson + + * final.c (end_final): Fix typo last change. + +2001-08-20 Neil Booth + + * cppinit.c (init_standard_includes): The returned buffer + is already malloc-ed. + * gcc.c (add_prefix): Similarly. + * prefix.c (translate_name): Update to support clear buffer + ownership rules. + (update_path): Similarly. Be sure to free any newly allocated + key. UPDATE_PATH_HOST_CANONICALIZE takes only one argument. + (tr): New function. + * prefix.h (update_path): Update prototype and document. + * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean + up and update to new buffer ownership rules. + * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update. + +Mon Aug 20 01:44:50 CEST 2001 Jan Hubicka + + * final.c (compute_alignments): New function. + (init_insn_lengths): Do not care label_align. + (LABEL_ALIGN_AFTER_BARRIER): Default to 1. + (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0. + (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New. + (shorted_branches): Realloc label_align array; do + not call init_insn_lengths; Do not care about loop alignments. + * output.h (compute_alignments): Declare. + * toplev.c (rest_of_compilation): Call compute_alignments. + * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document. + + * predict.c (block_info_def): Add npredecesors, remove nvisited; + change visited to tovisit. + (propagate_freq): Use faster traversing algorithm. + (estimate_loops_at_level, estimate_bb_frequencies): Change visited + to tovisit; reverse meaning. + + * predict.c (struct block_info_def): Remove nvisited. + (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions. + (estimate_bb_frequencies): Call mark_dfs_back_edges. + +2001-08-19 Geoffrey Keating + + * doc/invoke.texi (MIPS Options): Document -mfused-madd. + * config/mips/mips.h (MASK_NO_FUSED_MADD): New. + (TARGET_FUSED_MADD): New. + (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd. + * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to + the multiply-add instructions. + +2001-08-19 Richard Henderson + + * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref + is aligned to pointer size. + +2001-08-19 Richard Henderson + + * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle + display markers during final schedule. + +2001-08-19 Richard Henderson + + * function.c (gen_mem_addressof): Don't call get_alias_set if no decl. + +2001-08-19 Richard Henderson + + * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and * + in the same string. + (ASM_NAME_TO_STRING): Remove. + * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and * + in the same string. Remove support for expressions. + +2001-08-19 Richard Henderson + + * config/i386/i386.md (tablejump): Make an expander; handle + pic relative addressing here. + (tablejump_1): Rename from tablejump_pic. + (casesi): Remove. + +2001-08-19 Richard Henderson + + * regclass.c (fix_register): Fix typo. + +2001-08-18 Richard Henderson + + * config/ia64/unwind-ia64.c (UNW_REG_B0): New. + (struct _Unwind_Context): Expand br_loc to hold it. + (uw_frame_state_for): Handle leaf functions better. + (uw_update_reg_address): Update for br_loc change. + +2001-08-18 Richard Henderson + + * crtstuff.c: Move list heads before code that uses them. + (__JCR_LIST__): Remove initial null. + (frame_dummy, __frame_dummy): Do java registration here ... + (__do_global_ctors_aux): ... not here. + + * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative. + (__do_global_dtors_aux): Update to match. + (__JCR_LIST__, __do_jv_register_classes): New. + (.init): Call it. + * config/ia64/crtend.asm (__JCR_END__): New. + (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__ + instead of an indirect LTOFF22 reloc. + +2001-08-18 Richard Henderson + + * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call. + * regclass.c (init_reg_sets_1): Fix typo. + * config/ia64/ia64.c (ar_pfs_reg_operand): New. + (ia64_expand_call): Pass ar.pfs to sibcall expanders. + (ia64_compute_frame_size): Make ar.unat live when in use. + (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf + for ar.pfs; remove ar.unat handling. + * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is + call-saved. + (PREDICATE_CODES): Add ar_pfs_reg_operand. + * config/ia64/ia64-protos.h: Update decls. + * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs. + (sibcall_pic): Likewise. + +2001-08-18 Richard Henderson + + * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past + pred_rel_mutex when searching for insn_group_barrier. + * config/ia64/ia64.md (cycle_display): Combine the expander + and insn patterns. + + * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop + bit before asm as needed. + +2001-08-18 Richard Henderson + + * timevar.def (TV_MACH_DEP): New. + * toplev.c (rest_of_compilation): Use it. + * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2. + +2001-08-18 Zack Weinberg + + * unwind-dw2.c (execute_stack_op): Add default aborts to + the inner switches to prevent warnings. + +2001-08-18 Richard Henderson + + * timevar.h (struct timevar_time_def): Change element type to float. + (ticks_to_msec, clocks_to_msec): Likewise. + (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float. + (get_time): Likewise. + (timevar_print): Adjust zero check and printing to match. + +2001-08-18 Zack Weinberg + + * doc/extend.texi, doc/gcc.texi, doc/install-old.texi, + doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi: + Eliminate overfull or underfull hboxes. + +2001-08-18 Zack Weinberg + + * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout. + +2001-08-18 Zack Weinberg + + * haifa-sched.c: Convert to target hooks. Macros replaced + are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT, + MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE, + MD_SCHED_FINISH, and HAVE_cycle_display. + * target-def.h (TARGET_SCHED_ADJUST_COST, + TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE, + TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT, + TARGET_SCHED_FINISH, TARGET_SCHED_REORDER, + TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY): + New hook #defines to be overridden. + (TARGET_SCHED): Bring them all together. + (TARGET_INITIALIZER): Update. + * target.h: Don't forward declare struct rtx_def. Use 'rtx' + instead of 'struct rtx_def *' throughout. + (struct sched): New set of hooks for the scheduler. + * Makefile.in (haifa-sched.o): Depend on target.h. + * doc/tm.texi: Document the new scheduler hooks, together in + their own section, instead of scattered around. + Fix a bunch of underfull/overfull hboxes. + + * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h, + ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h, + sparc.h: Don't define any of the old scheduler macros. + + * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c, + ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c, + sparc.c: Create hook functions from code extracted from + corresponding target header, or make existing hooks static, as + appropriate. Set the appropriate entries in targetm. + + * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h, + i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h, + rs6000-protos.h, s390-protos.h, sparc-protos.h: + Remove prototypes for functions which are now static. + + * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and + related gunk; the Haifa scheduler is now the only choice. + +2001-08-18 Zack Weinberg + + * optabs.h (OTI_flodiv, flodiv_optab): Kill. + * genopinit.c: Put floating point divide insns in sdiv_optab. + * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab. + * config/gofast.h, config/c4x/c4x.h, + config/ia64/hpux_longdouble.h, config/mips/mips.h, + config/pa/long_double.h, config/rs6000/sysv4.h, + config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab. + * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv. + (init_optabs): Use init_optabv for overflow-trapping optabs. + Don't init flodiv_optab. Give mov_optab, movstrict_optab, and + cmp_optab RTX codes so have_insn_for can find them. + + * optabs.c (expand_simple_binop, expand_simple_unop, + have_insn_for, gen_sub3_insn): New interfaces. + * expr.h: Prototype new functions. + (enum optab_methods): Move here from optabs.h. + + * builtins.c, combine.c, doloop.c, function.c, ifcvt.c, + loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c: + Use new functions instead of working directly with optabs. + * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, + unroll.c: Don't include optabs.h. + * caller-save.c, combine.c, function.c, stmt.c: Just include + insn-codes.h, not optabs.h. + * Makefile.in: Update dependencies. + + * combine.c (make_compound_operation, simplify_comparison): + Fix typos testing for this or that instruction. + +2001-08-18 Herman A.J. ten Brugge + + * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when + generating libgcc.a. + +2001-08-18 Kaveh R. Ghazi + + * except.c (TYPE_HASH): Delete. + + * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not + HOST_WIDE_INT. + + * tree.c (TYPE_HASH): Delete. + + * tree.h (TYPE_HASH): Define. + +2001-08-18 Graham Stott + + * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from + define_split. + (adddi3_internal_2+2): Likewise. + (eh_set_lr_di+1): Likewise. + +2001-08-17 Richard Henderson + + * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, + UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ... + * dwarf2asm.c: ... here. + * dwarfout.c: Remove them. + + * varasm.c (assemble_integer): Add align parameter. + (assemble_real, output_constant, output_constructor): Likewise. + * output.h: Update decls. + * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c, + config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c, + config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h, + config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c, + config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md: + Update all callers. + + * final.c (end_final): Abort profile block generation if we + haven't layed it out properly. + * output.h (assemble_eh_integer): Remove stale decl. + * varasm.c (assemble_zeros): Tidy; use assemble_integer. + (min_align): New. + (assemble_integer): Handle unaligned data. + (assemble_real): Abort on unaligned data. + (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does + anything useful. + (default_dtor_section_asm_out_destructor): Use assemble_align. + (default_named_section_asm_out_constructor): Likewise. + (default_ctor_section_asm_out_constructor): Likewise. + * config/darwin.c (machopic_asm_out_constructor): Likewise. + (machopic_asm_out_destructor): Likewise. + * config/nextstep.c (nextstep_asm_out_constructor): Likewise. + (nextstep_asm_out_destructor): Likewise. + * config/alpha/alpha.c (vms_asm_out_constructor): Likewise. + (vms_asm_out_destructor): Likewise. + +2001-08-17 Richard Henderson + + * config/mips/iris6.h (TARGET_IRIX6): New. + (current_section_name, current_section_flags): New. + (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New. + (MAX_OFILE_ALIGNMENT): New. + (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section. + * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove. + (copy_file_data): Split out from + (mips_asm_file_end): ... here. + (mips_asm_file_start): Remove extra .section directive. Use + tmpfile instead of mips_make_temp_file. + (mips_unique_section): Use const char * as needed for warnings. + (iris6_asm_named_section_1): Renamed from iris6_asm_named_section; + re-add align parameter. + (iris6_asm_named_section): New. + (iris_section_align_entry_eq, iris_section_align_entry_hash): New. + (iris6_asm_output_align, iris6_section_align_1): New. + (iris6_asm_file_start, iris6_asm_file_end): New. + * config/mips/mips-protos.h: Update decls. + +2001-08-17 Janis Johnson + + * doc/install.texi (Install GCC): Add links to build status pages. + (Specific): Ditto. + (Final install): Ditto; request updates for specific info + +2001-08-17 Neil Booth + + * cpperror.c (print_location): Don't take a file name; use the + line map instead. + (_cpp_begin_message): Similarly. + (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, + cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update. + (cpp_pedwarn_with_file_and_line): Remove. + * cppfiles.c (stack_include_file): Update; set filename to stdin + here when appropriate. + * cpphash.h (struct cpp_buffer): Remove nominal_fname. + (_cpp_begin_message): Don't take a file name. + * cppinit.c: Add comment. + * cpplex.c: Fix end-of-directive indicator. + * cpplib.c: Don't include intl.h. + (run_directive, do_diagnostic): Update. + (do_line): Update to not use nominal_fname. + (cpp_push_buffer): Don't take a filename. + * cpplib.h (struct ht): Remove. + (cpp_push_buffer): Don't take a filename. + (cpp_pedwarn_with_file_and_line): Remove. + * cppmacro.c (struct cpp_macro): Remove file. + (builtin_macro): Update. + (_cpp_create_definition): Update. + * cppmain.c: Correct comment. + * fix-header.c (read_scan_file): Update. + +2001-08-17 Kazu Hirata + + * sbitmap.c: Fix comment formatting. + * sched-deps.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * ssa.c: Likewise. + * ssa-ccp.c: Likewise. + * stor-layout.c: Likewise. + * timevar.c: Likewise. + * toplev.c: Likewise. + * unwind-dw2.c: Likewise. + * unwind-dw2-fde.c: Likewise. + * varasm.c: Likewise. + +2001-08-17 John David Anglin + + * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable + or larger than an integer in memory. + +2001-08-17 Zack Weinberg + + * system.h: Forward-declare struct rtx_def, struct rtvec_def, + and union tree_node. Typedef rtx, rtvec, and tree. Fix comment. + * rtl.h: Don't forward-declare union tree_node here. Don't + typedef rtx or rtvec here. Change all uses of struct rtx_def *, + struct rtvec_def *, or union tree_node * to use rtx, rtvec, + and tree respectively. + * tree.h: Don't forward-declare struct rtx_def here. Don't + typedef tree here. Change all uses of struct rtx_def *, + struct rtvec_def *, or union tree_node * to use rtx, rtvec, + and tree respectively. + +2001-08-17 Richard Henderson + + * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h, + config/mips/openbsd.h: Fix typos last change. + +2001-08-17 Gerald Pfeifer + + * doc/invoke.texi (Optimize Options): The default for + -finline-limit is 600. + +2001-08-17 Richard Henderson + + * varasm.c (text_section): Allow TEXT_SECTION to override the + printing of TEXT_SECTION_ASM_OP. + * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION. + (DATA_SECTION, BSS_SECTION): Remove. + * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME, + RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME): + Rename from s/_NAME//. + * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16. + (ASM_DECLARE_FUNCTION_NAME): Move file switching ... + (TEXT_SECTION): ... here. New. + * config/mips/elf.h (TEXT_SECTION): New; no file switching. + * config/mips/elf64.h, config/mips/netbsd.h: Likewise. + * config/mips/openbsd.h: Likewise. + * config/mips/mips.c (mips_asm_file_start): Tidy file switching test. + (mips_asm_file_end): Likewise test. + (mips_output_function_epilogue): Likewise. Switch back to data + section after emitting the function. + + * doc/tm.texi (Sections): Document TEXT_SECTION. + +2001-08-17 Richard Henderson + + * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here. + (dwarf2out_finish): Do it here. Emit .debug_loc before .debug_info. + +2001-08-17 Richard Henderson + + * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN. + * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__, + __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__): + Add aligned attribute. + +2001-08-17 Andrew Haley + + * config/sh/sh.md: Add modes to unspecs in first insn to match + those in the second. + + * Makefile.in: Fix collect2 copy for Cygwin. + +Fri Aug 17 15:48:57 CEST 2001 Jan Hubicka + + Install the proper patch. + * function.c (put_var_into_stack): Temporarily clear DECL_RTL. + (assign_params): Avoid setting DECL_RTL to unfinished RTX. + (expand_function_start): Likewise. + * stmt.c (expand_decl): Likewise. + * varasm.c (make_decl_rtx): Likewise. + +Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka + + * final.c: Undo my previous accidental checkin. + * output.h: Likewise. + * tm.texi: Likewise. + +2001-08-16 Richard Henderson + + * varasm.c (named_section_flags): Remove align parameter. + * varasm.c, dwarf2out.c: Update all callers. + * output.h: Update prototypes. + + * target.h (target.asm_out.named_section): Remove align parameter. + * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c, + config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c, + config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c, + config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c, + config/sh/sh.c, config/sparc/sparc.c: Update implementations to match. + + * varasm.c (in_named_entry_eq, in_named_entry_hash): New. + (get_named_section_flags, set_named_section_flags): New. + (named_section_flags): Use them. + (named_section): Do decl vs section flags check here... + (default_section_type_flags): ... not here. + (init_varasm_once): Create in_named_htab. + (resolve_unique_section): Mark reloc unused. + +2001-08-16 Richard Henderson + + * varasm.c (force_const_mem): Keep pool alignment in bits. + (output_constant_pool): Use assemble_align. + +2001-08-16 Zack Weinberg + + * doc/tm.texi: Remove extra @table command. + +2001-08-16 Zack Weinberg + + * final.c (shorten_branches): Clear the end of the label_align + array only if we made it larger. Break up messy expressions + for clarity. + + * diagnostic.c (internal_error): Check for error recursion + before doing ICE suppression. + + * timevar.c: Timing variables now count in milliseconds. + (init_timevar): Set up ticks_to_msec and clocks_to_msec here. + (get_time): Not here. + (timevar_print): Don't print any timer whose user, cpu, and + wall times are all zero as displayed. + * timevar.h: Update comment aboout units. Make timevar + counters unsigned. + +Thu Aug 16 17:39:45 CEST 2001 Jan Hubicka + + * function.c (put_var_into_stack): Temporarily clear DECL_RTL. + (assign_params): Avoid setting DECL_RTL to unfinished RTX. + (expand_function_start): Likewise. + * stmt.c (expand_decl): Likewise. + * varasm.c (make_decl_rtx): Likewise. + +2001-08-16 Jason Merrill + + * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN. + (finalize_record_size): Don't set TYPE_USER_ALIGN. + +2001-08-16 Matt Kraai + + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused + variables. + +2001-08-16 Andreas Jaeger + + * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame + prototype. + +Wed Aug 15 15:22:52 EDT 2001 John Wehle (john@feith.com) + + * rtl.h (only_sets_cc0_p): New prototype. + * jump.c (sets_cc0_p): Handle INSN. + (only_sets_cc0_p): New function. + * flow.c (merge_blocks_nomove): Use only_sets_cc0_p. + (tidy_fallthru_edge): Likewise. + * integrate.c (copy_insn_list): Likewise. + * unroll.c (unroll_loop): Likewise. + (copy_loop_body): Likewise. + +2001-08-15 Jason Eckhardt + + * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t". + +Wed Aug 15 14:24:22 CEST 2001 Jan Hubicka + + * predict.c (struct block_info_def): Remove nvisited. + (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions. + (estimate_bb_frequencies): Call mark_dfs_back_edges. + + * i386.c (ix86_agi_dependant): Lea causes AGI only on the Pentium + (ix86_adjust_cost): Teach scheduler that latency to load operand can + be masked. + +Wed Aug 15 12:41:32 CEST 2001 Jan Hubicka + + * predict.def: Update hitrates. + +2001-08-15 Richard Henderson + + * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT. + +Tue Aug 14 17:30:59 2001 Jeffrey A Law (law@cygnus.com) + + * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG + note from its associated jump. + +2001-08-14 Ulrich Weigand + + * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__ + also on 64-bit s390x targets. + +2001-08-14 Nick Clifton + + * config/arm/arm.c (arm_compute_initial_elimination_offset): New + function. + (arm_expand_prologue): Handled nested functions which take a + variable argument list. + * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace + macro with an invocation of + arm_compute_initial_elimination_offset. + * config/arm/arm-protos.h: Prototype + arm_compute_initial_elimination_offset. + +2001-08-14 Gerald Pfeifer + + * doc/install.texi (Specific, avr): Fix markup. + (Specific, c4x): Ditto. + +2001-08-14 Matt Kraai + + * predict.c (dump_prediction): Change `bool' parameter to `int'. + +2001-08-14 Gabriel Dos Reis + + * Makefile.in (OBJS): Add rtl-error.o + (rtl-error.o): New rule. + (diagnostic.o): Adjust dependency. + diagnostic.c (file_and_line_for_asm, diagnostic_for_asm, + error_for_asm, _fatal_insn, _fatal_insn_not_found, + warning_for_asm): Move to... + rtl-error.c: ...here. New file. + +2001-08-14 Richard Henderson + + * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame + if USING_SJLJ_EXCEPTIONS. + +2001-08-14 Steve Ellcey + + * tlink.c (scan_linker_output): Check string for unsatisfied in + addition to undefined and unresolved. + +2001-08-14 Graham Stott + + * libgcc2.c (*): Replace EH_FRAME_SECTION with + EH_FRAME_SECTION_NAME. + +Tue Aug 14 14:57:07 CEST 2001 Jan Hubicka + + * genattrtab.c (simplify_test_exp_in_temp): New function. + (simplify_test_exp): Avoid explicit use of temporary obstack. + (simplify_cond, insert_right_side, evaluate_eq_attr, + simplify_and_tree, simplify_or_tree, eliminate_known_true): + Use simplify_test_exp_in_temp. + (optimize_attrs): Iterate until expression stabilizes. + +2001-08-13 Ulrich Weigand : + + * glimits.h: Remove the __LONG_MAX__ special case for s390x. + * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES. + +2001-08-13 Richard Henderson + + * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove. + (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove. + * config/arm/conix-elf.h: Likewise. + +2001-08-13 Geoffrey Keating + + * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done + in gcc.c. + * config/rs6000/sysv4.h (LINK_SPEC): Likewise. + + * gcse.c (hash_scan_set): Expressions that are set as part of + jump instructions are not available. + +2001-08-13 Ulrich Weigand + + * config/s390/s390.c (print_operand, s390_function_prologue, + s390_va_start): Fixed HOST_WIDE_INT type mismatch. + +2001-08-13 Richard Henderson + + * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New. + * defaults.h (EH_FRAME_SECTION_NAME): Respect it. + * doc/tm.texi (Exception Region Output): Document it. + +2001-08-13 Geoffrey Keating + + * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use + DWARF2 instead of stabs by default. + +2001-08-13 David Edelsohn + + * config/rs6000/rs6000.c: Include optabs.h. + +2001-08-13 David Edelsohn + + * config/rs6000/eabi.asm: Define 64-bit versions of FPR + save/restore routines. + * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros. + +2001-08-13 Andreas Jaeger + + * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo, + the english is correct. + +2001-08-13 Zack Weinberg + + * expr.h: Split out optab- and libfunc-related code to... + * optabs.h, libfuncs.h: ... these new headers. + + * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. + (OPTABS_H): New. + (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to + dependencies. + * mkconfig.sh: Don't include insn-codes.h from config.h. + + * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether + enum insn_code is available. Move reload_in_optab and + reload_out_optab array declarations to optabs.h. + * regmove.c (gen_add3_insn): Move to optabs.c, export from + there, prototype in expr.h. + * gencodes.c: Cleanup: zap global variables, don't use + printf where puts will do, don't bother defining MAX_INSN_CODE + which nothing uses, let CODE_FOR_nothing get its value implicitly. + + * genemit.c, genopinit.c: Include optabs.h in generated file. + * genoutput.c: Include insn-codes.h in generated file. + * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, + expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, + reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, + config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, + config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, + config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: + Include optabs.h. + * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, + optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, + config/m88k/m88k.c, config/sparc/sparc.c: + Include libfuncs.h. + * reload.c: Include expr.h and optabs.h before reload.h. + * config/alpha/alpha.c: Include tree.h before reload.h. + * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, + and reload.h in that order. + * config/sparc/sparc.c: Include debug.h. + * recog.c: Include insn-codes.h. + +2001-08-13 Andreas Jaeger + + * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on + s390*linux. + +2000-08-13 Theodore Papadopoulo + + * dwarf2out.c (output_cfa_loc): Fix typo in comment. + * gcc.c (init_spec): Fix typo in comment. + * varasm.c (data_section): Fix typo in comment. + +Mon Aug 13 02:27:39 CEST 2001 Jan Hubicka + + * predict.c (dump_prediction): New argument "USED". + (combine_predictions_for_insn): Determine the used heuristics, + output the case no heuristic applied. + * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New. + +2001-08-13 Andreas Jaeger + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize + register %rip. + +2001-08-13 Kazu Hirata + + * jump.c: Fix formatting. + +2001-08-13 Kazu Hirata + + * config/h8300/h8300.md (zero_extendqihi2): Correct the insn + length. + +2001-08-12 Geoffrey Keating + + * loop.c (check_dbra_loop): Use condjump_label to compute + jump_label. + + * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around + to better document the files they're in. + +2001-08-12 Zack Weinberg + + * recog.h (struct insn_operand_data): Shrink 'mode' field + to 16 bits. + +2001-08-12 Kazu Hirata + + * gcc.c: Fix comment formatting. + * gccspec.c: Likewise. + * gcov.c: Likewise. + * gcse.c: Likewise. + * genemit.c: Likewise. + * gengenrtl.c: Likewise. + * genrecog.c: Likewise. + * gensupport.c: Likewise. + * ggc-page.c: Likewise. + * global.c: Likewise. + * graph.c: Likewise. + * ifcvt.c: Likewise. + * integrate.c: Likewise. + * lcm.c: Likewise. + * libgcc2.c: Likewise. + * loop.c: Likewise. + * mbchar.c: Likewise. + * optabs.c: Likewise. + * predict.c: Likewise. + * prefix.c: Likewise. + * profile.c: Likewise. + * protoize.c: Likewise. + * real.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * resource.c: Likewise. + * rtlanal.c: Likewise. + * rtl.c: Likewise. + +2001-08-12 Kazu Hirata + + * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how + a tree representing a constant is passed to the macro. + +2001-08-12 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New. + (rs6000_elf_asm_out_destructor): New. + * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove. + (DTORS_SECTION_ASM_OP): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors. + +2001-08-12 David Edelsohn + + Revert: + 2001-08-02 Rainer Orth + * gcc.c (set_collect_gcc_options): New function, split out from + main. + Ignore elided switches. + (do_spec_1): Invoke before executing command. + (set_input): Export. + Move declaration ... + * gcc.h (set_input): ... here. + * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input + file. + +2001-08-12 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix + thinko wrt TARGET_RELOCATABLE. + +2001-08-12 Neil Booth + + * fix-header.c (cb_file_change): Update prototype. + +2001-08-11 Zack Weinberg + + * toplev.c (set_float_handler): Make static. + * toplev.h: Don't prototype set_float_handler. + + * simplify-rtx.c: Don't include setjmp.h. + (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1): + New functions. + (simplify_unary_operation, simplify_binary_operation): Use them, + via do_float_handler. + + * fold-const.c: Don't include setjmp.h. + (exact_real_inverse_1): New function. + (exact_real_inverse): Use it, via do_float_handler. + + * varasm.c: Don't include setjmp.h. + (assemble_real_1): New function. + (assemble_real): Use it, via do_float_handler. + Call internal_error if we get a trap here. + + * c-parse.in, cse.c, cselib.c, config/i386/i386.c, + config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h. + +2001-08-11 Zack Weinberg + + * defaults.h: Define PREFERRED_STACK_BOUNDARY to + STACK_BOUNDARY if not already defined. + + * calls.c, function.c, reload1.c, explow.c: Don't default + PREFERRED_STACK_BOUNDARY. Remove all #if/#ifdef on + PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY. + + * explow.c (allocate_dynamic_stack_space): Change unsafe #if + to run-time test. + + * doc/tm.texi: Document that STACK_BOUNDARY is required; + clarify difference between it and PREFERRED_STACK_BOUNDARY. + +2001-08-11 Neil Booth + + * cppmacro.c (enter_macro_context): Push macro expansions even + if empty. + +2001-08-11 Franz Sirl + + * config/rs6000/rs6000.c: Include integrate.h to silence warning. + (rs6000_elf_section_type_flags): Actually return a value. + +2001-08-11 Ulrich Weigand + + * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux: + Clean up code: add missing comments and prototypes, fix warnings, + remove obsolete code, fix spacing to conform to coding style. + +2001-08-11 Ulrich Weigand + + * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN + and TARGET_ASM_CLOSE_PAREN. + (regclass_map): CC register belongs to class NO_REGS. + (legitimize_pic_address): Don't generate unnecessary moves + (to avoid confusing loop optimization). + (check_and_change_labels): Replace jump_long by indirect_jump. + (s390_final_chunkify): Don't start a new literal pool on section + switch in 64-bit code. + (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit. + + * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug. + (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit). + (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer + modes correctly. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS. + (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit. + (CONST_COSTS): Fixed incorrect costs. + + * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3): + Use emit_jump instead of emit_jump_insn (gen_jump). + (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting + (to avoid confusing flow analysis). + (tablejump, tablejump1, tablejump2): Removed. Replaced by casesi. + (casesi, casesi_jump): New. + (jump_long): Removed. Functionality merged into indirect_jump. + (indirect_jump): Accept address_operand, not just register_operand. + (cjump_long, icjump_long): Use same logic as indirect_jump. + (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp): + Fixed broken setjmp/longjmp handling. + (do_builtin_setjmp_setup): Removed. + + * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around + broken GNU as versions that don't accept .quad with large + negative values. Use hexadecimal output instead. + (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn. + (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE, + FUNCTION_EPILOGUE): Removed. Now in targetm. + + * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register. + + * config/s390/fixdfdi.h: Add missing copyright statement. + Fix type conflicts on 64-bit. Add missing SFmode routines. + + * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect + email address. + +2001-08-11 Richard Henderson + + * rtl.h (REG_EH_RETHROW): Remove. + * rtl.c (reg_note_name): Update. + * combine.c (distribute_notes): Don't check for it. + +2001-08-11 Richard Henderson + + * combine.c (distribute_notes): Place REG_SETJMP. + +2001-08-11 Richard Henderson + + * doc/extend.texi (Arrays and pointers implementation): Discourage + relying on sign-extension of pointers. + +2001-08-11 H.J. Lu + + * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and + in_dtors. + (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and + RDATA_SECTION_ASM_OP. + +2001-08-11 Gerald Pfeifer + + * doc/install.texi (Specific, c4x): Fix cross-reference to the + main manual to work both for info and HTML versions. + +2001-08-11 Neil Booth + Matt Kraai + + * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy. + * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix. + (struct cpp_pool): New member first. + * cppinit.c (append_include_chain): Plug memory leaks. + * cpplib.c (cpp_register_pragma, cpp_register_pragma_space): + Allocate pragma structures from the (aligned) macro pool to + avoid leaking memory. + * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first + so we don't leak memory. + * hashtable.c (ht_destroy): New. + * hashtable.h (ht_destroy): New. + +2001-08-11 Neil Booth + Franz Sirl + + * c-lex.c (map): Make const. + (cb_file_change): Update for callback passing a line map. + Don't assume we have a previous map. Remove sanity check + about popping too many files. + * cpperror.c (print_location): Make map const. + * cppfiles.c (stack_include_file): Update; line maps now hold sysp. + (cpp_make_system_header): Similarly. + (search_from): Similarly. + (_cpp_execute_include): Don't remember where we came from. + * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp. + (struct cpp_reader): Make map const. + (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update. + * cpplib.c (do_line): Update; line maps now hold sysp. + (cpp_push_buffer): Similarly. + (_cpp_do_file_change): Similarly; callback with map instead. + (cpp_get_line_maps): Constify return value. + (_cpp_pop_buffer): Update. + * cpplib.h (struct cpp_file_change): Remove. + (struct cpp_callbacks): Update. + (cpp_get_line_maps): Constify return value. + * cppmacro.c (_cpp_create_definition): Update. + * cppmain.c (struct printer): Constify map. + (maybe_print_line): Similarly. + (print_line): Similarly. Deduce flags 1 and 2 here. + (cb_file_change): Update. + * line-map.c (free_line_maps): Warn regardless. + (add_line_map): Return pointer to const. When passed NULL to_file + with LC_LEAVE, use the obvious values for the return point so the + caller doesn't have to figure them out. + (lookup_line): Return pointer to const. + (print_containing_files): Take pointer to const. + * line-map.h (struct line_map): New members reason, sysp. + (add_line_map): Return pointer to const. + (lookup_line): Similarly. + (print_containing_files): Take pointer to const. + +2001-08-10 Roman Zippel + Richard Henderson + + * regmove.c (regmove_optimize): Avoid setting a register twice in + a parallel set. + +2001-08-10 Richard Henderson + + * doc/extend.texi (Arrays and pointers implementation): Document + behavior of pointer/integer conversion. + +2001-08-10 Ulrich Weigand + + * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture. + +2001-08-10 Richard Henderson + + * doc/extend.texi (C Implementation): New chapter. + * doc/gcc.texi (Top): Link it in. + +2001-08-10 Andrew Cagney + + * doc/install.texi (Specific): Fix CVS merge botch. + +2001-08-10 Richard Henderson + + * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with + ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP. + +2001-08-10 Zack Weinberg + + * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY + if not already defined. Remove all #ifdefs on STACK_BOUNDARY; + this macro is now required. + + * cselib.c (cselib_process_insn), flow.c (propagate_block), + loop.c (find_and_verify_loops), reload.c (reload): Check + for rtx code of CALL_INSN, not CALL, when deciding if we + need to check for REG_SETJMP note. + + * gcse.c (compute_hash_table, compute_store_table): Update + the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP + logic. + + * config/avr/avr.c: Fix typo. + * config/convex/convex.c (expand_movstr): Use adjust_address. + * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen + variable. + * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address. + * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h. + Fix typo. + * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?) + Do define STACK_BOUNDARY. + * config/i370/i370.c: Include expr.h. + * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h, + config/pa/som.h, config/v850/v850.h: Take in_ctors and + in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION + and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS. + * config/m88k/m88k.c: Include c-tree.h after expr.h. + * config/pdp11/pdp11.c: Include expr.h and toplev.h. + * config/romp/romp.c: Include expr.h after tree.h. + Include toplev.h. + (output_fpop): Use xmalloc, not oballoc. + * config/we32k/we32k.c: Include expr.h. + +2001-08-10 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. + +2001-08-08 Jason Merrill + + * c-common.h (RETURN_NULLIFIED_P): Lose. + * c-semantics.c (genrtl_return_stmt): Don't check it. + +2001-08-10 Richard Sandiford + + * config/mips/mips.c (mips_add_large_offset_to_sp): New function. + (mips_annotate_frame_insn): New function. + (mips_emit_frame_related_store): New function. + (save_restore_insns): Don't mark instructions that set up the base + registers as frame-related. Add REG_FRAME_RELATED_EXPR notes to + the store instructions instead. + (mips_expand_prologue): If the stack size is moved into a temporary + register, do not mark that move as frame-related. Add a + REG_FRAME_RELATED_EXPR note to the stack adjustment instruction. + +2001-08-10 Richard Sandiford + + * config/mips/mips.c (save_restore_insns): Don't mark the RA's + stack slot as unchanging if current_function_calls_eh_return. + +2001-08-10 Richard Sandiford + + * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to + access the second half of the TFmode scratch operand. + +2001-08-10 Anthony Green + + * java/class.c (emit_register_classes): Conditionalize code on + JCR_SECTION_NAME. + +2001-08-10 Gerald Pfeifer + + * doc/install.texi (Specific, avr): Fix cross-reference to the + main manual to work both for info and HTML versions. + +2001-08-09 John David Anglin + + * stmt.c (expand_null_return_1): Remove code to generate simple returns + and "use_goto" argument. + (expand_null_return, expand_value_return): Update all callers. + * function.c (expand_function_end): Remove code to generate simple + return. + * config/vax/vax.md (epilogue): New expander for function return. + * doc/md.texi (epilogue): Remove "if defined". + +2001-08-09 Zack Weinberg + + * Makefile.in: Partially revert my previous change: + put -DGENERATOR_FILE back in HOST_CFLAGS, take it out + of the hashtab.o and safe-ctype.o rules. + +2001-08-09 Richard Henderson + + * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses. + (USE_COLLECT2): Remove duplicate definition. + * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h. + (use_collect2): Remove dead code. + * configure.in (use_collect2): Remove will_use_collect2 and + maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines. + * configure: Rebuild. + + * target.h (targetm.asm_out.constructor): New. + (targetm.asm_out.destructor, targetm.have_ctors_dtors): New. + * target-def.h (TARGET_ASM_CONSTRUCTOR): New. + (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New. + * varasm.c (in_ctors, in_dtors): New. + (assemble_constructor, assemble_destructor): Remove. + (default_stabs_asm_out_destructor): New. + (default_named_section_asm_out_destructor): New. + (dtors_section, default_dtor_section_asm_out_destructor): New. + (default_stabs_asm_out_constructor): New. + (default_named_section_asm_out_constructor): New. + (ctors_section, default_ctor_section_asm_out_constructor): New. + * output.h: Update declarations. + * c-decl.c (c_expand_body): Use target hooks instead of + assemble_constructor and assemble_destructor. + * profile.c (output_func_start_profiler): Likewise. + * objc/objc-act.c (finish_objc): Likewise. + (build_module_descriptor): Tidy. Set TREE_PUBLIC properly + for the constructor. + * objc/Make-lang.in (objc-act.o): Depend on TARGET_H. + + * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define. + (DTORS_SECTION_ASM_OP): Likewise. + (__CTOR_LIST__): Use attribute section when possible. + (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise. + + * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on + ASM_OUTPUT_CONSTRUCTOR. + + * config/darwin.c (machopic_asm_out_constructor): New. + (machopic_asm_out_destructor): New. + * config/darwin-protos.h: Update declarations. + * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/nextstep.c (nextstep_asm_out_constructor): New. + (nextstep_asm_out_destructor): New. + * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of + ASM_OUTPUT_*STRUCTOR. + * config/i386/aix386ng.h: Likewise. + + * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + * config/lynx.h: Likewise. + * config/netware.h: Likewise. + * config/psos.h: Likewise. + * config/alpha/alpha-interix.h: Likewise. + * config/alpha/elf.h: Likewise. + * config/arc/arc.h: Likewise. + * config/arm/aof.h: Likewise. + * config/arm/coff.h: Likewise. + * config/arm/elf.h: Likewise. + * config/c4x/c4x.h: Likewise. + * config/h8300/h8300.h: Likewise. + * config/i386/cygwin.h: Likewise. + * config/i386/djgpp.h: Likewise. + * config/i386/i386-coff.h: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/i386/sco5.h: Likewise. + * config/i386/vsta.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i960/i960-coff.h: Likewise. + * config/ia64/sysv4.h: Likewise. + * config/m68hc11/m68hc11.h: Likewise. + * config/m68k/coff.h: Likewise. + * config/m68k/mot3300.h: Likewise. + * config/m88k/m88k.h: Likewise. + * config/mcore/mcore-pe.h: Likewise. + * config/mcore/mcore.h: Likewise. + * config/mips/elf.h: Likewise. + * config/mips/elf64.h: Likewise. + * config/mips/iris6.h: Likewise. + * config/pa/pa64-hpux.h: Likewise. + * config/rs6000/sysv4.h: Likewise. + * config/sh/sh.h: Likewise. + * config/sparc/litecoff.h: Likewise. + + * config/svr3.h (CTORS_SECTION_ASM_OP): Remove. + (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + * config/a29k/a29k.c: Move include of tree.h. + * config/a29k/udi.h: Delete file. + * config/alpha/alpha.c (vms_asm_out_constructor): New. + (vms_asm_out_destructor): New. + * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors. + (EXTRA_SECTION_FUNCTIONS): Likewise. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/c4x/c4x.c: Move include of tree.h. + * config/clipper/clipper.c (clix_asm_out_constructor): New. + (clix_asm_out_destructor): New. + * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR): New. + * config/i386/i386.c (ix86_svr3_asm_out_constructor): New. + (sco_asm_out_constructor): New. + * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New. + * config/i386/svr3gas.h: Remove stack grows up code. + Remove code duplicated from i386/sysv3.h. + (TARGET_ASM_CONSTRUCTOR): New. + (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. + (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove. + * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR): New. + * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New. + (m68hc11_asm_out_destructor): New. + * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New. + (TARGET_ASM_DESTRUCTOR): New. + * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR. + * config/m68k/dpx2.h: Properly undef all the bits inherited from + config/svr3.h pertaining to section manipulation. + * config/m68k/dpx2g.h: Remove #if 0 code. + * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New. + * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo. + (ASM_OUTPUT_CONSTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR): New. + * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local. + (m88k_svr3_asm_out_constructor): New. + (m88k_svr3_asm_out_destructor): New. + * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code. + * config/rs6000/aix.h: Likewise. + * config/mips/rtems64.h: Don't undef removed constructor related bits. + * config/mips/vxworks.h: Likewise. + * config/rs6000/lynx.h: Likewise. + * config/sh/elf.h: Likewise. + * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New. + (DTORS_SECTION_ASM_OP): New. + * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + * config/sparc/sol2-sld-64.h: Likewise. + * config/vax/vax.c (vms_asm_out_constructor): New. + (vms_asm_out_destructor): New. + * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + + * doc/tm.texi (@node Initialization): Update. + +2001-08-09 Richard Henderson + + * config/alpha/crtbegin.asm (__JCR_LIST__): New. + (__do_global_dtors_aux): Use gp-relative static data to avoid + one dynamic relocation. + (__do_frame_setup): Register Java classes. + * config/alpha/crtend.asm (__JCR_END__): New. + +2001-08-09 Zack Weinberg + + * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE. + (CONFIG_H, TCONFIG_H, TM_P_H): Update. + (GEN, STAGESTUFF): Add new files. + (insn-constants.h, s-constants, tm-preds.h, s-preds, + genconstants, genpreds, genconstants.o, genpreds.o): New rules. + (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE. + * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h + as well as insn-codes.h and insn-flags.h in config.h; and no + extra headers in tconfig.h and hconfig.h. + + * gencodes.c: Eliminate code to generate predicate declarations + or #defines for md-file constants. + * genconstants.c, genpreds.c: New files. + + * i386.md: Re-order guard expressions such that TARGET_64BIT + comes first, when this permits better optimization. Add + TARGET_64BIT to more x86-64 patterns. Add comment explaining + why this is desirable. + +2001-08-09 Jakub Jelinek + + * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers. + (find_fde_for_dso): Remove. + (_Unwind_IteratePhdrCallback): New. + (_Unwind_FindTableEntry): Use dl_iterate_phdr. + * config/ia64/crtbegin.asm (__ia64_app_header): Remove. + +Thu Aug 9 11:30:20 2001 Richard Kenner + + * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING. + (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING. + +2001-08-09 Graham Stott + + * sched-vis.c (MAX_VISUAL_NO_UNIT): Define. + (vis_no_unit): Use it. + (visualize_no_unit): Add the insn only if room exists. + +2001-08-09 Graham Stott + + * predict.c (estimate_probability): Replace magic numbers with + appropriate enumeration. + +2001-08-09 Graham Stott + + * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro + parameter. + (EXTRACT_FLAGS): Likewise. + +2001-08-09 Aldy Hernandez + + * config/mips/mips.c (mips_legitimate_address_p): Check for + CONST_INT in last patch. + +2001-08-08 Anthony Green + + * java/class.c (emit_register_classes): Use assemble_jcr if + possible. Keep the original mechanism as a fallback. + * defaults.h (JCR_SECTION_NAME): Define if we have named section + and weak symbol support. + * crtstuff.c (__JCR_LIST__): Define. + (__JCR_END__): Define. + (_Jv_RegiserClasses): Define weak symbol if possible. + (__do_global_ctors_aux): Register classes for ELF targets with + weak symbol support. + +2001-08-08 Kazu Hirata + + * dbxout.c: Fix comment formatting. + * dependence.c: Likewise. + * df.c: Likewise. + * diagnostic.c: Likewise. + * dominance.c: Likewise. + * doprint.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * except.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + +2001-08-08 Franz Sirl + + * global.c (retry_global_alloc): Avoid shadowing allocno. + +2001-08-08 Mark Mitchell + + * except.c (remove_fixup_regions): Fix typo. + +2001-08-08 Jan van Male + + * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to + unsigned HOST_WIDE_INT to avoid warning. + * final.c (final): Cast INSN_UID to unsigned to avoid warning. + * flow.c (set_block_for_new_insns): Likewise. + +Wed Aug 8 21:08:14 CEST 2001 Jan Hubicka + + * sibcall.c (return_value_pseudo): New static variable. + (skip_copy_to_return_value): Handle return_value_pseudo. + (call_ends_block_p): Ensure that return_value_pseudo is set. + (optimize_sibling_and_tail_recursive_call): Discover the + load of pseudo return value in alternate exit block. + +Wed Aug 8 21:06:43 CEST 2001 Jan Hubicka + + * calls.c (ECF_ALWAYS_RETURN): New constant. + (emit_call_1): Add REG_ALWAYS_RETURN note if needed. + (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func. + (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN. + * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN. + * rtl.c (reg_note_name): New name. + * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN. + +2001-08-07 Aldy Hernandez + + * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses. + +2001-08-08 Jason Merrill + + * alias.c (get_alias_set): Return a previously calculated + alias set for a VAR_DECL. + * function.c (gen_mem_addressof): Calculate the alias set before + touching the RTL. + +Wed Aug 8 18:44:37 CEST 2001 Jan Hubicka + + * predict.def: Set hitrates according our experimental run. + +Wed Aug 8 18:01:58 CEST 2001 Jan Hubicka + + * i386.h (HARD_REGNO_RENAME_OK): New macro. + +2001-08-08 H.J. Lu + + * config/mips/mips.c (mips_unique_section): New. Copied from + config/mips/elf.h. + + * config/mips/mips-protos.h (mips_unique_section): New + prototype. + + * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section. + + * config/mips/little.h: New. Generic little endian mips + targets. Only mips*-*-linux* is converted to use it so far. + + * config/mips/linux.h: Include "gofast.h" and "mips/mips.h". + (WCHAR_TYPE): Defined + (WCHAR_TYPE_SIZE): Likewise. + (INIT_SUBTARGET_OPTABS): Likewise. + (BSS_SECTION_ASM_OP): Likewise. + (SBSS_SECTION_ASM_OP): Likewise. + (ASM_OUTPUT_ALIGNED_BSS): Likewise. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (UNIQUE_SECTION): Likewise. + (EXTRA_SECTIONS): Likewise. + (ASM_OUTPUT_CONSTRUCTOR): Likewise. + (ASM_OUTPUT_DESTRUCTOR): Likewise. + (ASM_OUTPUT_DEF): Likewise. + (HANDLE_SYSV_PRAGMA): Removed. + (NO_IMPLICIT_EXTERN_C): Likewise. + (TARGET_MEM_FUNCTIONS): Likewise. + (STARTFILE_SPEC): Likewise. + (ENDFILE_SPEC): Likewise. + (LIB_SPEC): Likewise. + (INVOKE__main): Likewise. + (CTOR_LIST_BEGIN): Likewise. + (CTOR_LIST_END): Likewise. + (DTOR_LIST_BEGIN): Likewise. + (DTOR_LIST_END): Likewise. + (SET_ASM_OP): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Likewise. + (ASM_OUTPUT_DEF): Likewise. + (ASM_OUTPUT_IDENT): Likewise. + + * config/mips/mips.h (ASM_SPEC): Undefine before define. + (CPLUSPLUS_CPP_SPEC): Likewise. + (ASM_APP_ON) Redefine only if not defined. + (ASM_APP_OFF): Likewise. + (ASM_OUTPUT_SOURCE_LINE): Likewise. + (ASM_OUTPUT_IDENT): Likewise. + + * config.gcc: Update tm_file for Linux/mips. + +2001-08-08 Bernd Schmidt + + * cselib.c (cselib_record_sets): If insn is predicated, turn + sources into IF_THEN_ELSEs. + + * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b): + Turn into define_insn_and_split. + + * sched-deps.c: Include "cselib.h". + (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2): + Use cselib to turn memory addresses into VALUEs. + (sched_analyze): Call cselib_init/cselib_finish if necessary. + * sched-int.h (struct sched_info): New member USE_CSELIB. + * sched-ebb.c (ebb_sched_info): Initialize it. + * sched-rgn.c (rgn_sched_info): Likewise. + * Makefile.in (sched-deps.o): Update dependencies. + + * cselib.h (cselib_subst_to_values): Declare. + * cselib.c (cselib_subst_to_values): No longer static. Allow MEMs + that have no value and autoincs to be handled by generating a new + dummy value. + +2001-08-08 Graham Stott + + * final.c (shorten_branches): Update the INSN_ADDRESSES of insns + within fixed length SEQUENCE. + +2001-08-08 Graham Stott + + * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter. + (diagnostic_prefixing_rule): Likewise. + (diagnostic_line_cutoff): Likewise. + (diagnostic_kind_count): Likewise. + +2001-08-08 Graham Stott + + * alias.c (find_base_decl): Delete redundent assignment. + +2001-08-08 Graham Stott + + * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter. + (abs): Uppercase and paranthesize macro parameter. + (MEM_DEPENDENCY): Add whitespace. + +2001-08-08 Graham Stott + + * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking + failure check for CONST_INT + +2001-08-08 Graham Stott + + * flow.c (back_edge_of_syntactic_loop_p): Add whitespace. + (libcall_dead_p): Likewise. + + (mark_used_regs): Constify fmt. + (find_use_as_address): Likewise. + +2001-08-08 Graham Stott + + * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro + parameter. + +2001-08-08 Graham Stott + + * combine.c (combine_simplify_rtx): Update comment and + remove erroneous test. + +2001-08-07 Neil Booth + + * cppinit.c (cpp_finish): Pop the final buffer without comment. + * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and + take care to avoid multiple no-newline at EOF warnings in that + case. + +Tue Aug 7 22:18:06 CEST 2001 Jan Hubicka + + * calls.c (expand_call): Do not emit INSN_SETJMP note. + (emit_library_call_value_1): Likewise. + (emit_call_1): Emit REG_SETJMP note. + * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead + of INSN_SETJMP + * cselib.c (cselib_process_insn): Likewise. + * flow.c (propagate_block): Likewise. + * loop.c (find_and_verify_loops): Likewise. + * reload.c (find_equiv_regs): Likewise. + * reload1.c (reload): Likewise. + * resource.c (mark_referenced_resources, + mark_set_resources): Likewise. + * sched-deps (sched_analyze_insn, sched_analyze): Likewise. + * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP. + * haifa-sched.c (unlink_other_notes): Likewise. + (reemit_notes): Likewise. + * sched-ebb.c (sched_ebb): Likewise. + * sched-rgc.c (sched_region): Likewise. + * rtl.c (note_insn_name): Likewise. + (reg_note_name): Add REG_SETJMP + * rtl.h (reg_note): Add REG_SETJMP. + (insn_note): Remove NOTE_INSN_SETJMP. + + * profile.c (branch_prob): Add fake edges for setjmp. + +2001-08-07 Daniel Jacobowitz + + * config.gcc: Quote target_cpu_default2 correctly for + powerpc*-*-* targets. + +2001-08-07 Neil Booth + + * cpplib.h, line-map.h: Update comments. + * cppmain.c (printer_init): Move inline. + (maybe_print_line, print_line): Take a map pointer. + (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update. + (cb_file_change): Don't use prior value of print.map. + +2001-08-07 David Edelsohn + + * doc/install.texi: Document fine-grained multilib configuration. + +Tue Aug 7 16:52:54 CEST 2001 Jan Hubicka + + * rtlanal.c (find_first_parameter_load): Call note_stores + only on the instructions. + +Tue Aug 7 14:56:16 CEST 2001 Jan Hubicka + + * alias.c (nonlocal_mentioned_p): + Rename CONST_CALL_P to CONST_OR_PURE_CALL_P + * calls.c (emit_call_1): Likewise. + * cse.c (cse_insn, invalidate_skipped_block): Likewise. + * cselib.c (cselib_process_insn): Likewise. + * df.c (df_insns_modify): Likewise. + * flow.c (need_fake_edge_p): Likewise. + (propagate_one_insn): Likewise. + * haifa-sched.c (reemit_notes): Likewise. + * integrate.c (copy_insn_list): Likewise. + * jump.c (delete_prior_computation): Likewise. + * local-alloc.c (validate_equiv_mem): Likewise. + * loop.c (scan_loop): Likewise. + * predict.c (estimate_probability): Likewise. + * reload.c (reload): Likewise. + * sched-deps (sched_analyze): Likewise. + * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P. + * gcse.c (compute_hash_table): Likewise. + (mark_call): Likewise. + (store_killed_in_insn): Likewise. + +2001-08-07 Jason Merrill + + * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P. + +2001-08-06 Richard Henderson + + * varasm.c (assemble_gc_entry): Remove. + * output.h: Likewise. + +2001-08-06 Richard Henderson + + * varasm.c (assemble_constructor): Take a symbol_ref and a + priority instead of a bare string. Move priority handling + here from cp/decl2.c. + * output.h: Update decls. + + * c-decl.c (c_expand_body): Update calls to assemble_constructor + and assemble_destructor. + * profile.c (output_func_start_profiler): Likewise. + * objc/objc-act.c (finish_objc): Likewise. + (build_module_descriptor): Return the symbol not the symbol name. + +2001-08-06 David Edelsohn + + * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace. + * config/rs6000/linux64.h (RS6000_MCOUNT): Define. + ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define. + * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace. + * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace. + * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace. + +2001-08-06 Neil Booth + + * cpperror.c (print_containing_files): Moved to line-map.c. + (print_location): line-map.c handles re-listing or otherwise. + * cpphash.h (struct lexer_state): Remove next_bol. + (struct cpp_buffer): Remove include_stack_listed. + * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer): + Remove faked buffer handling. + (_cpp_do_file_change): Tweak. + * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE. + * cppmain.c (struct printer): Remove filename. + (print_line, cb_file_change): Update accordingly. + * line-map.c: Include intl.h. + (init_line_maps): Initialize last_listed. + (free_line_maps): Sanity check, warn if ENABLED_CHECKING. + (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING. + (print_containing_files): New. + * line-map.h (struct line_maps): New member last_listed. + (print_containing_files, INCLUDED_FROM): New. + * Makefile.in: Update. + * po/POTFILES.in: Add line-map.c. + +2001-08-06 Richard Henderson + + * except.c (convert_from_eh_region_ranges_1): Never mark + USE or CLOBBER insns as throwing. + + * expr.c (store_constructor): Don't clobber memory targets. + +2001-08-06 Andreas Jaeger + + * profile.c (branch_prob): Remove unused variable insn. + + * Makefile.in (local-alloc.o): Add dependency on except.h. + + * local-alloc.c: Include except.h for can_throw_internal prototype. + +2001-08-06 Richard Henderson + + * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New. + * function.c (expand_main_function): Implement it. + * doc/tm.texi: Document it. + +2001-08-06 Stan Shebs + + * doc/install.texi: Document powerpc-*-darwin* details. + +2001-08-06 Daniel Berlin + + * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h + (ASM_CPU_SPEC): Move back to rs6000.h + #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them. + + * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro. + + * config/rs6000/linux.h: Remove vtable thunks stuff we accidently + readded. + + * config/rs6000/linux64.h: Ditto. + + * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back + to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to + nothing. + + Remove accidently readded definitions of FUNCTION_PROLOGUE, + FUNCTION_EPILOGUE, ASM_OPEN_PAREN, ASM_CLOSE_PAREN + + * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back + to rs6000.h + +2001-08-05 Richard Henderson + + * local-alloc.c (update_equiv_regs): Do not move insns that + can throw. + +2001-08-05 Jan Hubicka + + * Makefile.in (reload1.o): Add dependency on except.h + * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update + prototypes. + * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool + indicating whether edges has been cleaned up. + * reload1.c: Include except.h. + (fixup_abnormal_edges): Accept deleted insns. + * toplev.c (rest_of_compilation): Purge dead edges unconditionally + after combine. + +2001-08-06 Neil Booth + + * cpplib.c (do_line): Correct line number after pop_buffer. + +2001-08-05 Neil Booth + + PR preprocessor/3824 + * line-map.c: Update comments. + * line-map.h: Update comments. + * tradcif.y: Don't consider large numbers unsigned. + +2001-08-05 Neil Booth + + PR preprocessor/3081 + * c-lex.c (map): New. + (cb_file_change): Update map and use it. + (cb_def_pragma, cb_define, cb_undef): Use map and line. + (c_lex): Update to use map. + * cpperror.c (print_location): Move to using logical line numbers. + * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change. + (cpp_make_system_header): Similarly. + (_cpp_execute_include): Stop line numbering hacks. Store the + line we will return to. + * cpphash.h (CPP_BUF_LINE): Remove. + (struct cpp_buffer): Remove lineno and pseudo_newlines. + Add map and return_to_line. + (_cpp_do_file_change): Update. + * cppinit.c (cpp_start_read): Update line kludge. + * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines. + (trigraph_ok): Use logical line numbers for diagnostics. + (skip_block_comment): Likewise. + (skip_whitespace): Likewise. + (skip_line_comment): Use pfile->line instead. + (_cpp_lex_token): Update to use logical line numbering exclusively. + Handle BOL locally. Accept new lines in directives, but keep + pfile->line decremented. Diagnostics use logical lines. Update + directive handling. + * cpplib.c (SEEN_EOL): New. + (skip_rest_of_line, check_eol): Use it. + (end_directive): Increase line number when accepting the newline + at the end of a directive. + (run_directive): Simplify. + (do_line): Bad LC_LEAVEs become LC_RENAMEs. Update. + (_cpp_do_file_change): Update to take buffer line number as an + argument, and store the current map in the cpp_reader. Remove + line number kludges. + (_cpp_do__Pragma): Restore output position after a _Pragma. + (cpp_push_buffer): Don't set output line or lineno. + (_cpp_pop_buffer): Transfer more info from a faked buffer. + Remove line kludge. Set output_line. + * cppmacro.c (builtin_macro): Update handling of __LINE__. + (parse_arg): Use logical lines. + (save_lookahead_token): Save EOFs too now. + * cppmain.c (struct printer): Fix comments. + (printer_init): Simplify, let caller do errors. + (scan_translation_unit, check_multiline_token, dump_macro): Update. + (maybe_print_line): Simplify. + (print_line): Don't print a linemarker if -P. + (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update. + (cb_file_change): Simplify. + * line-map.h (LAST_SOURCE_LINE): Fix. + (CURRENT_LINE_MAP): New. + +2001-08-05 Bernd Schmidt + + * doloop.c (doloop_modify_runtime): Properly compute number of + iterations if loop was unrolled. + + * alias.c (rtx_equal_for_memref_p): VALUEs are only identical + if their CSELIB_VAL_PTRs are. + + * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn. + (setup_spill_pointers): Initialize it. + (spill_restore_mem): Set it. + (do_spill, do_restore): Use it to add REG_INC note. + * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed. + + * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of + asms if other insns are available. + + * config/ia64/ia64.c (condop_operator): New predicate. + * config/ia64/ia64.h (PREDICATE_CODES): Add it. + * config/ia64/ia64.md (cond_opsi2_internal and splitters): New + patterns. + + * expr.c (expand_expr, case COND_EXPR): Prefer working with a + temporary register than directly using a MEM. + +2001-08-04 Hans-Peter Nilsson + + * config/sh/sh.c (sh_asm_named_section): Fix typo in align + parameter in last change. + +2001-08-04 Zack Weinberg + + * sparc.md: Don't use #if inside C test expression. + +2001-08-04 Richard Henderson + + * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack. + +2001-08-04 Neil Booth + + * cpphash.h (struct cpp_reader): New member directive_line. + * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks. + * cpplib.c (do_define, do_undef, do_ident, do_include_common, + do_pragma): Pass line to callbacks. + (start_directive): Record line of directive. + * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma, + cb_include): Similarly. + * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma): + Similarly. + +2001-08-04 Hans-Peter Nilsson + + * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION + comment. + +Sat Aug 4 13:51:36 CEST 2001 Jan Hubicka + + * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes. + + * reload1.c (fixup_abnormal_edges): New static function. + (reload): Use it. + + * flow.c (need_fake_edge_p): New function. + (flow_call_edges_add): Fix handling of noreturn and sibling calls; + avoid call insn to be very last insn in the insn stream. + + * profile.c (branch_prob): Call flow_call_edges_add instead of + doing that by hand; cleanup cfg to re-merge basic blocks once + we are done. + +2001-08-04 Neil Booth + + * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h + are also on line-map.h. + * cppfiles.c (stack_include_file): Update. + * cpphash.h (struct cpp_buffer): New member return_at_eof. + (_cpp_pop_buffer): New. + * cppinit.c (cpp_destroy, cpp_finish): Update. + (do_includes): Mark each buffer to return at EOF. + * cpplex.c (_cpp_lex_token): Pop buffers at EOF. Continue or + return as requested. + * cpplib.c (run_directive, do_line, cpp_push_buffer): Update. + (cpp_pop_buffer): Rename _cpp_pop_buffer. Stop skipping. + * cpplib.h (cpp_pop_buffer): Remove. + (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput. + * cppmacro.c (cpp_scan_buffer_nooutput): Similarly. No need to pop + buffers. + * cppmain.c (scan_buffer): Rename scan_translation_unit. No need + to pop buffers. + (do_preprocessing): Update. + * fix-header.c (read_scan_file): Update. No need to pop buffers. + * c-parse.in (_yylex): Similarly. + * scan-decls.c (scan_decls): Similarly. + * line-map.h: Update comments. + + * objc/Make-lang.in (objc-act.o): Update dependencies. + +2001-08-04 Stephane Carrez + + * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory + and soft register for operand 0. + ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0. + +2001-08-04 Stephane Carrez + + * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft + register for operand 0. + ("bitcmpqi_z_used"): Allow memory for operand 0. + (split "bitcmpqi"): New split to handle address reg as operand 1. + +2001-08-04 Andreas Jaeger + + * gcse.c: Revert Daniel's last patch. + +2001-08-03 Zack Weinberg + + * sparc-protos.h: Add prototypes for fp_zero_operand and + reg_or_0_operand. + * sh-protos.h: Add prototype for fpul_operand. + +2001-08-04 Hans-Peter Nilsson + + * doc/extend.texi (Other Builtins): Fix typo in last change. + +2001-08-03 Richard Henderson + + * target.h (gcc_target): Add asm_out.named_section, + section_type_flags, have_named_sections. + * target-def.h (TARGET_ASM_NAMED_SECTION): New. + (TARGET_HAVE_NAMED_SECTIONS): New. + (TARGET_SECTION_TYPE_FLAGS): New. + + * Makefile.in (toplev.o): Depend on TARGET_H. + (varasm.o, dbxout.o): Likewise. + * c-common.c (decl_attributes): Check targetm.have_named_sections + instead of ifdef ASM_OUTPUT_SECTION_NAME. + * dbxout.c (dbxout_function_decl): Likewise. + (dbxout_function_end): Likewise. + * toplev.c (compile_file): Likewise. + * varasm.c (exception_section): Likewise. + * cp/decl2.c (finish_objects): Likewise. + + * defaults.h (EH_FRAME_SECTION): Remove. + (EH_FRAME_SECTION_ASM_OP): Remove. + (EH_FRAME_SECTION_NAME): New. + (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME. + (UNIQUE_SECTION_P): Remove. + * dwarf2out.c (SECTION_FORMAT): Remove. + (ASM_OUTPUT_SECTION): Remove. + (output_call_frame_info): Use named_section_flags. + (output_comp_unit, dwarf2out_start_source_file): Likewise. + (dwarf2out_end_source_file, dwarf2out_define): Likewise. + (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise. + * varasm.c (in_eh_frame, eh_frame_section): Remove. + (named_section_flags): New. + (named_section): Use it and targetm.section_type_flags. + (resolve_unique_section): New. + (assemble_start_function): Use it. + (asm_emit_uninitialised, assemble_variable): Likewise. + (default_section_type_flags): New. + (default_no_named_section, default_elf_asm_named_section): New. + (default_coff_asm_named_section, default_pe_asm_named_section): New. + * output.h: Update varasm.c decls. + (SECTION_*): New flags. + + * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP. + (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section. + + * config/elfos.h (UNIQUE_SECTION_P): Remove. + * config/alpha/elf.h, config/arm/linux-elf.h: Likewise. + * config/arm/pe.h, config/arm/unknown-elf.h: Likewise. + * config/i386/cygwin.h, config/i386/djgpp.h: Likewise. + * config/i386/i386-interix.h, config/i386/win32.h: Likewise. + * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise. + * config/mips/elf.h, config/mips/elf64.h: Likewise. + * config/mips/iris6gld.h, config/mips/mips.h: Likewise. + * config/pa/pa64-hpux.h, + + * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove. + (TARGET_ASM_NAMED_SECTION): New. + * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise. + * config/alpha/vms.h, config/arm/coff.h: Likewise. + * config/arm/conix-elf.h, config/arm/elf.h: Likewise. + * config/arm/linux-elf.h, config/arm/pe.h: Likewise. + * config/arm/unknown-elf.h, config/avr/avr.h: Likewise. + * config/c4x/c4x.h, config/h8300/h8300.h: Likewise. + * config/i386/cygwin.h, config/i386/djgpp.h: Likewise. + * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise. + * config/i386/sco5.h, config/i386/win32.h: Likewise. + * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise. + * config/mcore/mcore.h, config/mips/elf.h: Likewise. + * config/mips/elf64.h, config/mips/iris6.h: Likewise. + * config/mips/netbsd.h, config/mips/openbsd.h: Likewise. + * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise. + * config/rs6000/xcoff.h, config/sh/sh.h: Likewise. + * config/sparc/sysv4.h: Likewise. + + * config/nextstep.h: Error until named sections implemented. + + * config/a29k/a29k.c (a29k_asm_named_section): New. + * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New. + (vms_section_type_flags, vms_asm_named_section): New. + * config/arm/arm.c (arm_elf_asm_named_section): New. + * config/avr/avr.c (asm_output_section_name): Remove. + * config/avr/avr-protos.h: Update. + * config/c4x/c4x.c (c4x_asm_named_section): New. + * config/h8300/h8300.c (h8300_asm_named_section): New. + * config/i386/i386.c (sco_asm_named_section): New. + * config/i386/winnt.c (SECTION_PE_SHARED): New. + (i386_pe_section_type_flags): New. + (i386_pe_asm_named_section): New. + * config/i386/i386-protos.h: Update. + * config/m68k/m68k.c (m68k_coff_asm_named_section): New. + * config/mcore/mcore.c (mcore_asm_named_section): New. + * config/mips/mips.c (iris6_asm_named_section): New. + * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY + instead of UNIQUE_SECTION_P. + * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New. + (xcoff_asm_named_section): New. + * config/sh/sh.c (sh_asm_named_section): New. + * config/sparc/sparc.c (sparc_elf_asm_named_section): New. + + * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove. + * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove. + (EH_FRAME_SECTION_NAME): New. + (EXCEPTION_SECTION): New. + * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove. + (DEBUG_*_SECTION): Remove. + * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove. + * config/mips/iris6.h (DEBUG_*_SECTION): Remove. + (EH_FRAME_SECTION_ASM_OP): Remove. + + * doc/tm.texi (UNIQUE_SECTION_P): Remove. + (ASM_OUTPUT_SECTION_NAME): Remove. + (TARGET_ASM_NAMED_SECTION): New. + (TARGET_HAVE_NAMED_SECTIONS): New. + (TARGET_SECTION_TYPE_FLAGS): New. + (EH_FRAME_SECTION_ASM_OP): Remove. + (EH_FRAME_SECTION_NAME): New. + +2001-08-03 Zack Weinberg + + * builtins.c (fold_builtin_constant_p): Return integer_zero_node + for complex expressions when cfun == 0. + * doc/extend.texi: Document that __builtin_constant_p can be + used in data initializers as well as functions. + +2001-08-03 Alexandre Oliva + + * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare + variable I locally, instead of expecting a declaration in the + calling context. + +2001-08-03 Richard Henderson + + * except.c (collect_one_action_chain): Add an explicit cleanup + action if regions surrounding a catch were encoded entirely + within the call-site entry. + +2001-08-03 Richard Henderson + + * dbxout.c (dbxout_symbol_location): Flatten subregs first; + don't take REGNO of a non-register. + +2001-08-03 John David Anglin + + * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and + __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization. + (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1 + (__gthread_mutex_init_function): New function for mutex initialization. + +2001-08-03 Daniel Berlin + + * Makefile.in: Revert screwed up commit. + +2001-08-03 Stephane Carrez + + * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor. + * config/m68hc11/larith.asm (_exit): Split in several sub-sections + merged by linker script to get a final _exit(). + (__do_global_dtors): New for destructor handling in specific exit + section. + (__do_global_ctors): New for constructors in specific install section. + (__map_data_section): Map data sections before running constructors. + * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word. + (CTORS_SECTION_ASM_OP): Define to put in readonly section. + (DTORS_SECTION_ASM_OP): Likewise. + (CTORS_SECTION_FUNCTION): Define to force a reference to + __do_global_ctors. + (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors. + +2001-08-03 Daniel Berlin + + * ChangeLog: Fix date on previous ChangeLog entry for GCSE. + + * Makefile.in: Add df.h to gcse.c dependencies. + +2001-08-03 John David Anglin + + * varasm.c (output_constant_def_contents): Use for the length of a + string constant either its TREE_STRING_LENGTH or its int_size_in_bytes + depending on which is larger. + +2001-08-03 Daniel Berlin + + * gcse.c: Include df.h for use as a dataflow analyzer. + Remove regvec. + Declaration of reg_set_info: gone. + New df_analyzer variable used by store motion. + (reg_set_info): Deleted. + (mark_mem_regs): New function, analyze regs used by a mem. + (store_ops_ok): Use dataflow analyzer results to determine if + necessary regs are changed in the block. + (find_moveable_store): Remove check for symbol ref, we can handle + much more complex expressions now. + (compute_store_table): Remove most of the code, it's unnecessary + now that the dataflow analyzer records the info for us. + (store_killed_after): Add parameter to say whether to do the + store_ops_okay test, used to speed up testing when we already know + the answer, and just want to know if the store itself was killed. + (build_store_vector): Largely rewritten to calculate the various + vectors properly, and somewhat optimized. + (store_motion): Init the df_analyzer, get REG_DEF chains. + Also handle trapping expressions (since mems almost always trap) + (simple_mem): Redefine what a simple mem is. + +2001-08-03 DJ Delorie + + * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary + set from a constant part of the condition. + +2001-08-01 Andrew Cagney + + * mkdeps.c (deps_add_default_target): Make local variable + ``start'' a const char pointer. + * dwarf2out.c (compute_section_prefix): Localize use of ``p''. + +2001-08-03 Rainer Orth + + * doc/install.texi (Configuration): Fix markup. + (Specific, i?86-*-udk): Likewise. + (Specific, alpha*-dec-osf*): Warn against --with-gnu-as, + --with-gnu-ld. + Document --enable-threads and --enable-libgcj status. + (Specific, mips-sgi-irix*): Canonicalize triples. + (Specific, mips-sgi-irix5): Warn about problems with this config. + Mention required GNU as patch. + Native assembler problems are fixed. + (Specific, mips-sgi-irix6): Update O32 ABI support status. + Document --enable-threads and --enable-libgcj status. + +2001-08-02 Nick Clifton + + * Makefile.in, mklibgcc.in: Restore changes with fixed invocation + of mkinstalldirs. + +2001-08-03 Richard Henderson + + * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to + constant data. + +2001-08-03 Richard Henderson + + * rtlanal.c (find_first_parameter_load): Stop if we + reach a CODE_LABEL at BOUNDARY. + +2001-08-03 Richard Henderson + + * config/alpha/alpha.md (force_movdi): New insn. + * config/alpha/alpha.c (alpha_expand_prologue): Use it. + Tweek FRP marking of VMS prologue insns. + * config/alpha/vms.h (EPILOGUE_USES): New. + +2001-08-02 Richard Henderson + + * Makefile.in, mklibgcc.in: Revert mkinstalldirs change. + +2001-08-02 Lars Brinkhoff + + * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c, + simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h, + config/convex/convex.h, config/d30v/d30v.c, + config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, + config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c, + config/mips/mips.h, config/mn10200/mn10200.h, + config/mn10300/mn10300.h, config/pdp11/pdp11.md, + config/v850/v850.h, config/vax/openbsd.h, + config/vax/openbsd1.h, config/vax/ultrix.h, + config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h, + config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h, + cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi, + doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi, + doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX" + in comments and documentation. + +2001-08-03 Neil Booth + + * line-map.c: New. + * line-map.h: New. + * Makefile.in (line-map.o): New. + (LIBCPP_OBJS, LIBCPP_DEPS): Update. + * c-lex.c (cb_file_change): Update for new cpp_file_change structure. + * cpperror.c (print_containing_files): Similarly. + (print_location): Update. Don't output a space before _Pragma. + * cppfiles.c (stack_include_file): Set to line 1 immediately. + (stack_include_filee, cpp_make_system_header): Update. + (_cpp_execute_include): Get logical line number right for calling + as-yet-unterminated #include. + * cpphash.h (struct cpp_reader): Add line_maps. + (_cpp_do_file_change): Update. + * cppinit.c (cpp_create_reader): Initialize line maps. + (cpp_destroy): Destroy line maps. + (cpp_start_read): Get logical line number right. + * cpplex.c (parse_string): Only warn once for multi-line strings. + Use boolean variable for null warning. + * cpplib.c (_cpp_handle_directive): End the directive if it isn't + already. + (do_include_common): End the directive early. + (do_line): Don't warn about out-of-range lines in preprocessed + source. Update. Remove unused variables. + (_cpp_do_file_change): Update for new line mapping. + (pragma_cb): New typedef. + (cpp_register_pragma): Stop looking ahead before calling the + handler. Clean up. + (do_pragma_system_header): End directive early. + (cpp_get_line_maps): New. + (cpp_pop_buffer): Fudge logical line. Update. + * cpplib.h: Include line-map.h + (enum cpp_fc_reason): Remove. + (struct cpp_file_change): Update. + (cpp_get_line_maps): New. + * cppmain.c (struct_printer): New member map. + (cb_file_change): Update for new mappings. + * fix-header.c (cb_file_change): Similarly. + +2001-08-02 Nick Clifton + + * Makefile.in (libgcc.mk): Define mkinstalldirs. + * mklibgcc.in: Use mkinstalldirs instead of mkdir. + +2001-08-02 Lars Brinkhoff + + * config/vax/vax.c: include expr.h. + +2001-08-02 Nick Clifton + + * Makefile.in ($(srcdir)/configure): Only rebuild in + maintainer mode. + ($(srcdir)/config.in): Only define in maintainer mode. + ($(srcdir)/cstamp-h.in): Only define in maintainer mode. + +2001-08-02 David Edelsohn + + * doc/install.texi (Install GCC: Binaries): Update Bull info. + +2001-08-02 Rainer Orth + + * gcc.c (set_collect_gcc_options): New function, split out from + main. + Ignore elided switches. + (do_spec_1): Invoke before executing command. + (set_input): Export. + Move declaration ... + * gcc.h (set_input): ... here. + * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input + file. + +2001-08-02 Nathan Sidwell + + Kill -fhonor-std. + * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std + interaction. + * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std. + +2001-08-02 Richard Sandiford + + * mips.md (movdicc): Make conditional on TARGET_64BIT. Likewise + for the unnamed instructions it expands to. + +2001-08-02 Richard Henderson + + * regclass.c (call_really_used_regs): Conditionally define. + (init_reg_sets_1): Don't use it if not defined. + (fix_register): Similarly, don't set it. + +2001-08-01 Gerald Pfeifer + + * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600. + Correct comment that had been missed in the previous change. + +2001-08-01 Stan Shebs + + * config/darwin.c (machopic_stub_name): Try matching by name. + (update_stubs): New function. + (darwin_encode_section_info): Call it and update_non_lazy_ptrs + unconditionally. + +2001-08-01 Richard Henderson + + * except.c (output_function_exception_table): Use assemble_align. + * varasm.c (assemble_eh_label): Remove. + (assemble_eh_align, assemble_eh_integer): Remove. + +2001-08-01 Robert Lipe + + * dwarfout.c: Remove reference to README.DWARF. + +2001-08-01 Andrew MacLeod + + * regclass.c (call_really_used_regs): New array for registers which + are actually used by a call. + (init_reg_sets_1): Initialize regs_invalidated_by_call with the + new array. + (fix_register): Set call_really_used too. + * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize. + * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document. + +2001-08-01 Richard Henderson + + * read-rtl.c (read_name): Consider \r whitespace. + +2001-07-11 Andrew Cagney + + * config.gcc: Recognize powerpc-*-netbsd*. + + * doc/install.texi (Host/target specific installation notes for + GCC): Mention powerpc-*-netbsd*. + + * config/rs6000/netbsd.h: New file. + (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine. + (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine. + (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine. + (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine. + (TARGET_VERSION): Redefine. + + * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize + mcall-netbsd as a match for mcall-sysv. + (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext). + (ncrti.S, ncrtn.S): New targets. + ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets. + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize + "netbsd' as a V4 ABI. + (ASM_SPEC): Check for -mcall-netbsd. + (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto. + (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto. + (LIB_SPEC, ENDFILE_SPEC): Ditto. + (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define. + (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define. + (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define. + (SUBTARGET_EXTRA_SPECS): Add NetBSD specs. + + * doc/invoke.texi (Option Summary): Add -mcall-netbsd. + (RS/6000 and PowerPC Options): Mention -mcall-netbsd. + +2001-08-01 Mark Kettenis + + * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define + only if NO_BASE_OF_ENCODED_VALUE isn't defined. + * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before + including "unwind-pe.h". + +Wed Aug 1 20:01:42 CEST 2001 Jan Hubicka + + * rs6000.md (define_splits): Kill unused constraints. + +Wed Aug 1 20:02:12 CEST 2001 Graham Stott + Jan Hubicka + + * function.c (thread_prologue_and_epilogue_insns): Kill code + dealing with non-existent CFG. + +2001-08-01 Kazu Hirata + + * alias.c: Fix comment formatting. + * bitmap.c: Likewise. + * builtins.c: Likewise. + * calls.c: Likewise. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-dump.c: Likewise. + * c-lex.c: Likewise. + * collect2.c: Likewise. + * combine.c: Likewise. + * conflict.c: Likewise. + * cppfiles.c: Likewise. + * cppinit.c: Likewise. + * cpplex.c: Likewise. + * cpplib.c: Likewise. + * cppmacro.c: Likewise. + * cppspec.c: Likewise. + * c-pragma.c: Likewise. + * crtstuff.c: Likewise. + * cse.c: Likewise. + * cselib.c: Likewise. + * c-semantics.c: Likewise. + * c-typeck.c: Likewise. + +2001-08-01 H.J. Lu + + * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined. + +2001-08-01 H.J. Lu + + * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined. + +2001-08-01 Ziemowit Laski + + * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for + contextualizing Objective-C class name lookup by the lexer. + (typespec_reserved_nonattr): Disable ObjC class name lookup after + seeing a TYPESPEC. + (protocoldef): Add support for forward @protocol declarations. + (yylexname): Suppress ObjC class name lookup in certain contexts; + re-enable after lookup is complete. + (_yylex): Re-enable ObjC class name lookup when certain + punctuation marks are seen. + + * objc/objc-act.c (check_protocol_recursively): New function used + for finding circular dependencies in protocols. + (objc_declare_protocols): New function for handling forward + @protocol declarations. + (receiver_is_class_object): Detect the case when 'self' is used + inside of a class method. + (build_message_expr): Issue a warning if class method is desired + but instance method is found instead. + (conforms_to_protocol): Streamline. + (objc_comptypes): Detect the fact that 'Bar foo' conforms to + protocol Foo, even if 'Bar foo' does not. + (check_protocols): Streamline. + (start_protocol): Add checks for circular and duplicate protocol + definitions. + (encode_aggregate_within): For typedefs of structs, encode the + underlying struct. + * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor. + (objc_declare_protocols): New prototype. + +2001-08-01 Neil Booth + + * cpphash.h (struct cpp_reader): New members line, pseudo_newlines. + * cpplex.c (handle_newline): Update prototype. Maintain logical + line number. + (skip_escaped_newlines, skip_block_comment, parse_string): + Update accordingly. + (_cpp_lex_token): Update, and store token position within the token. + * cpplib.h (struct cpp_token): Add line and column entries. + * cppmacro.c (replace_args): Position stringified tokens correctly. + +2001-08-01 Andreas Jaeger + + * basic-block.h: Add prototype for last_loop_beg_note. + +2001-07-31 Alexandre Petit-Bianco + + * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of + RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in + comment. + (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL + while handling WITH_CLEANUP_EXPR node. Use second operand calling + expand_decl_cleanup. + * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is + the first RTX. + (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second + operand while calling simple_cst_equal. + * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second + operand is the cleanup expression, the third is the RTL_EXPR. + * tree.h (WITH_CLEANUP_EXPR_RTL): New macro. + +2001-07-31 Jeff Sturm + + * except.c (duplicate_eh_regions): Test n_array[i] for NULL. + +2001-07-31 matthew green + + * config.gcc (i386-*-netbsdelf): New description. + * config/i386/netbsd-elf.h: New file. + +2001-07-30 Geoffrey Keating + + * loop.c (check_dbra_loop): Use single_set to compute + jump_label. + +2001-07-31 Daniel Berlin + + PowerPC reorg and support for powerpc64-*-linux*. + + Also fixes emitting of constants on 32 bit and 64 bit + platforms. + + * config.gcc: powerpc64-*-linux* is a new target. + Things that needed aix.h now also include xcoff.h + + * config/rs6000/rs6000.h: Split XCOFF specific stuff into + xcoff.h. + Move AIX specific stuff into aix.h. + (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used + with more than just XCOFF now. + (SET_ASM_OP): Remove, now defined where needed. + (FUNCTION_PROLOGUE): New macro definition. + (FUNCTION_EPILOGUE): New macro definition. + (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition. + + * config/rs6000/xcoff.h: New file. + + * config/rs6000/linux64.h: New file. + + * config/rs6000/darwin.h: Copy needed AIX alignment definitions. + +2001-07-31 Alan Modra + + * rs6000.c (print_operand_address): Handle ELF syntax. + (output_toc): Simplify. Use DOUBLE_INT_ASM_OP. + * rs6000.md (load_toc_aix_di): Handle ELF syntax. + * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP. + +2001-07-31 David Edelsohn + + * rs6000.c (rs6000_override_options): Only disable + flag_function_sections for XCOFF. + (exact_log2_cint_operand): New predicate. + (reg_or_{add,sub}_cint64_operand): New predicates. + (add_operand): Compare CONST_INT with fewer function calls. + (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions. + (print_operand, case 'p'): Ensure positive operand. + (rs6000_emit_load_toc_table): No load_toc_v4_pic_di. + * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value. + (PREDICATE_CODES): Add new predicates. + * rs6000.md (addsi3): Split 32-bit constants more correctly. + (divsi3, modsi3): Ensure positive power-of-2. + (adddi3): Use new predicate. Split 32-bit constants more + correctly. Re-arrange splitter to handle any constant. + (subdi3): Use new predicate. + (divdi3, moddi3): Ensure positive power-of-2. + (movdi): Use rs6000_emit_set_const. + (load_toc_v4_pic_di): Delete. + +2001-07-31 Graham Stott + + * function.c (pad_below): Revert 2001-07-26 patch. + +Tue Jul 31 15:37:35 CEST 2001 Jan Hubicka + + * reg-stack (convert_regs_1): Fix best edge condition. + +Tue Jul 31 15:33:27 CEST 2001 Jan Hubicka + + * jump.c (duplicate_loop_exit_test): Better test for jumps + entering the loop; create loop pre_header. + +2001-07-31 Hartmut Penner + + * doc/install.texi: Add s390 and s390x as new targets. + * doc/invoke.texi: Add documentation of S/390 and zSeries + target options. + * doc/md.texi: Add documentation of S/390 and zSeries constraints. + +2001-07-30 Roman Zippel + + * config/m68k/m68k.md: Replace all general_operand with + nonimmediate_operand for all destinations. + * config/m68k/m68k.c (not_sp_operand): Likewise. + +Mon Jul 30 23:20:34 EDT 2001 John Wehle (john@feith.com) + + * flow.c (merge_blocks): Return 1 if an extra jump is inserted. + +2001-07-30 Richard Henderson + + * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New. + * config/mips/iris6.h (DEBUG_RANGES_SECTION): New. + +2001-07-30 Roman Zippel + + * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS): + Add missing doc strings + * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise + * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise + +Mon Jul 30 22:16:08 CEST 2001 Jan Hubicka + + * i386.c (ix86_output_main_function_alignment_hack): New function. + (TARGET_ASM_FUNCTION_PROLOGUE): Default to it. + + * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back + edges by EDGE_DFS_BACK flag. + (dump_edge_info): Add dfs_back flag. + * basic-block.h (EDGE_DFS_BACK): New constant. + (mark_dfs_back_edges): Declare. + * alias.c (loop_p): Remove. + (mark_constant_function): Use mark_dfs_back_edges. + + * reg-stack.c (block_info_def): Add predecessors counter and stack_out. + (reg_to_stack): Call mark_dfs_back_edges; count the predecessors. + (compensate_edge): Break out from ... + (convert_regs_1): ... here; do smart choosing of stack_out to copy. + (convert_regs_2): Set block_done once block is really done; + Do updating of the predecessors counts. + + * toplev.c (rest_of_compilation): Recompute block_for_insn + before post-reload cfg_cleanup. + * function.c (thread_prologue_epilogue_insns): + Call set_block_for_new_insns when emitting prologue directly. + +2001-07-30 Andreas Jaeger + + * jump.c: Add prototype for mark_modified_reg. + + * cse.c (set_live_p): Add unused attribute. + + * gcov.c (calculate_branch_probs): Use gcov_type to avoid + overflow. + (scan_for_source_files): Use long for count to avoid overflow. + (output_data): Likewise. + (output_data): Don't use string concatatenation to silence gcc + -traditional. + + * predict.c: Fix typos and grammar. + + * gcse.c (insert_insn_end_bb): Remove unused variables. + +Mon Jul 30 21:54:53 CEST 2001 Jan Hubicka + + * flow.c (mark_set_1): Use REG_FREQ_FROM_BB. + (attempt_auto_inc): LIkewise. + (mark_used_reg): Likewise. + (try_pre_increment_1): Likewise. + * regclass.c (regclass): Likewise. + * global.c (allocno_compare): Update comment; change scaling factor. + * local-alloc.c (QTY_CMP_PRI): Likewise. + * regs.h (REG_FREQ_FROM_BB): New. + (REG_FREQ_MAX): Likewise. + +2001-07-30 H.J. Lu + + * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add + -D_GNU_SOURCE. + +2001-07-30 H.J. Lu (hjl@gnu.org) + + * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined. + (ASM_DECLARE_FUNCTION_SIZE): Likewise. + (FUNCTION_NAME_ALREADY_DECLARED): Likewise. + +2001-07-30 Nick Clifton + + * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well + as -mthumb-interwork when -mcpu=arm7 is specified. + +Mon Jul 30 17:44:43 CEST 2001 Jan Hubicka + + * predict.def (noreturn, loop branch, loop exit): Mark as first + match heuristics. + +Mon Jul 30 12:52:11 CEST 2001 Jan Hubicka + + * combine.c (try_combine): Avoid barrier after noop jumps. + +2001-07-29 Neil Booth + + * cpphash.h (struct cpp_reader): Remove import_warning. + * cpplib.c (skip_rest_of_line): Don't bother turning off + macro expansion. + (parse_include): Move include handling to... + (do_include_common): ... here. Move import warning from... + (do_import): ... here. + (do_pragma_poison): Don't do a callback for poison identifiers. + * cpplib.h (struct cpp_callbacks): Don't do poison callbacks. + * cppmain.c (setup_callbacks): Similarly. + +Sun Jul 29 23:26:50 CEST 2001 Jan Hubicka + + * rtlanal.c (parms_set, find_first_parameter_load): Break out from...; + handle multiple sets. + * except.c (sjlj_mark_call_sites): .... here. + * gcse.c (insert_insn_end_bb): Use find_first_parameter_load. + +Sun Jul 29 21:38:45 CEST 2001 Jan Hubicka + + Suggested by Richard Henderson and Richard Kenner: + * combine.c (recog_for_combine): Use the fake recog + only if instruction does not match. + * rtl.h (NOOP_MOVE_INSN_CODE): New. + * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE. + + * combine.c (try_combine): Discover noop jump as direct jump. + +2001-07-29 Daniel Berlin + + * df.c (df_rd_global_compute): Add successors to worklist, not + current item. + (df_ru_global_compute): Ditto. + +2001-07-27 Daniel Berlin + + * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we + increment REG_N_SETS. + +2001-07-26 Daniel Berlin + + * sbitmap.h: New prototype for sbitmap_a_xor_b. + + * sbitmap.c (sbitmap_a_xor_b): New function. + ifdef the basic block stuff on IN_GCC. + +2001-07-29 Neil Booth + + * cppexp.c (parse_defined): Always record the macro name. + (lex): Don't worry about identifiers, or special-case + CPP_NOT here. + (_cpp_parse_expr): Figure out at the end of the routine + whether we saw a valid !defined() expression. + * cppfiles.c (stack_include_file): Update for mi_valid. + (_cpp_pop_file_buffer): Similarly. + * cpplex.c (_cpp_lex_token): Similarly. + * cpphash.h (enum mi_state, enum mi_ind, mi_state, + mi_if_not_defined, mi_lexed): Remove. + (mi_valid): New. + * cpplib.c (do_if): Simplify. + (do_endif, push_conditional, _cpp_handle_directive): Update + for renaming of mi_state to mi_valid. +doc: + * cpp.texi: Add index entries for digraphs, and add comment + that C++ refers to them as alternative tokens. + +Sun Jul 29 18:59:13 CEST 2001 Jan Hubicka + + * basic-block.h (CLEANUP_PRE_LOOP): New. + * except.c (finish_eh_generation): Update call of cleanup_cfg. + * sibcall.c (optimize_sibling_calls): Likewise. + * toplev.c (rest_of_compilation): Likewise. + * flow.c (try_forward_edges): Take argument MODE; + do not forward over loop pre-headers if CLEANUP_PRE_LOOP. + (try_optimize_cfg): Update call of try_forward_edges. + +Sun Jul 29 18:59:56 CEST 2001 Roman Zippel + Jan Hubicka + + * (validate_replace_rtx_1): Fix simplification of MINUS. + +2001-07-29 Neil Booth + + PR preprocessor/3669 + * cppinit.c (init_dependency_output): Turn off dump requests + if sending dependencies to stdout. + +2001-07-28 Richard Henderson + + * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if + not optimizing. + +2001-07-28 Golubev I. N. + + * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define. + +2001-07-28 Kazu Hirata + + * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL + is VAR_DECL first to prevent an ICE. + +2001-07-28 Richard Henderson + + * varasm.c (immed_real_const_1): Don't elide special cases for + nested functions. + (clear_const_double_mem): Clear const_tiny_rtx too. + +2001-07-28 Richard Henderson + + * dwarf2out.c (dw_val_class_offset): New. + (struct dw_ranges_struct, dw_ranges_ref): New. + (ranges_table, ranges_table_allocated): New. + (ranges_table_in_use, RANGES_TABLE_INCREMENT): New. + (add_AT_offset, add_ranges, output_ranges): New. + (print_die, output_die): Handle dw_val_class_offset. + (attr_checksum, size_of_die, value_format): Likewise. + (gen_lexical_block_die): Handle non-contiguous blocks. + (gen_block_die): Likewise. + (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit + if needed. Dump the ranges table. + * final.c (final_start_function): Remove unnecessary notes and + rebuild the block tree before numbering the blocks. + * function.c (reorder_blocks_0): Walk the existing block tree + to unmark all blocks. + (reorder_blocks_1): Create block fragments when duplicate block + notes are seen. + (reorder_fix_fragments): New. + (reorder_blocks): Call it. + * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New. + +2001-07-28 Richard Henderson + + * emit-rtl.c (adjust_address): Make a copy of the memory address. + +2001-07-28 Richard Henderson + + * flow.c (add_to_mem_set_list): New function. + (init_propagate_block_info): Use it. + (mark_set_1): Likewise. + (insn_dead_p): Canonicalize memory address for dead store + comparison. Allow wider mode stores to kill narrower mode stores. + (invalidate_mems_from_autoinc): Use invalidate_mems_from_set. + (invalidate_mems_from_set): Don't handle MEMs. + +2001-07-28 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. + +Sat Jul 28 23:35:22 CEST 2001 Jan Hubicka + + * basic-block.h (EDGE_FREQUENCY): New macro. + * bb-reorder (fixup_reorder_chain): Set counts and frequencies + for new BB/edges. + * flow.c (find_sub_basic_blocks): Likewise. + (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY + (redirect_edge_and_branch): Use EDGE_FREQUENCY. + + * predict.c (DEF_PREDICTOR): New argument FLAGS. + (HITRATE): New macro. + (PRED_FLAG_FIRST_MATCH): New constant. + (predictor_info): New field flgags. + (combine_predictions_for_insn): Use DS theory to combine + probabilities; set the edge probabilities when finished. + (estimate_probability): Avoid duplicated matches + of LOOP_BRANCH heuristics for nested loops; update comment. + * predict.def: Add flags for each prediction, set probabilities + according to B&L paper. + * predict.h (DEF_PREDICTOR): New argument FLAGS. + + * profile.c (compute_branch_probabilities): Cleanup way the edge + probabilities are computed and REG_BR_PROB notes are dropped; if + values does not match, emit error. + (init_branch_prob): Do error instead of warning when profile driven + feedback is missing or corrupt. + +2001-07-27 DJ Delorie + + * ifcvt.c (noce_get_alt_condition): If the condition is a compare + against a constant, try to adjust the compare to have the desired + constant in it so that min/max optimizations happen more often. + +Fri Jul 27 17:53:00 CEST 2001 Jan Hubicka + + * flow.c (last_loop_beg_note): New function. + (redirect_edge_and_branch): Use it. + (split_edge): Likewise. + + * alias.c (loop_p): Avoid uninitialized memory access. + + * flow.c (try_forward_edges): Avoid accessing freed memory. + + * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized + variable access. + +2001-07-26 Andrew Haley + Joern Rennecke + + * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New. + (SUBTARGET_CPP_ENDIAN_SPEC): New. + (SUBTARGET_CPP_SPEC): New. + (CPP_SPEC): Remove. + * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New. + (SUBTARGET_CPP_PTR_SPEC): New. + (CPP_DEFAULT_CPU_SPEC): New. + (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC, + SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. + (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC, + SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. + (SUBTARGET_CPP_SPEC): Define as an empty string. + +2001-07-27 Gerald Pfeifer + + * doc/install.texi (Configuration): Properly link the host + specific instructions also when generating HTML. + +Fri Jul 27 00:33:35 EDT 2001 John Wehle (john@feith.com) + + * flow.c (redirect_edge_and_branch_force): Test + target->global_live_at_start. + +2001-07-26 Richard Henderson + + * simplify-rtx.c (avoid_constant_pool_reference): Export. + * rtl.h (avoid_constant_pool_reference): Declare it. + * dwarf2out.c (add_location_or_const_value_attribute): Use it. + (add_const_value_attribute): Use add_AT_unsigned for unsigned values. + +Thu Jul 26 22:30:22 CEST 2001 Jan Hubicka + + * rtl.h (cleanup_barriers): Declare. + * jump.c (cleanup_barriers): New function. + * toplev.c (rest_of_compilation): Call cleanup_barriers + before loop optimizer and after bb_reorder. + + * flow.c (back_edge_of_syntactic_loop_p): New. + (split_edge): Use it. + +2001-07-26 Rainer Orth + + * glimits.h (_MACH_MACHLIMITS_H_): Delete. + +Thu Jul 26 22:22:21 2001 Denis Chertykov + + * cse.c (cse_process_notes): Replace any registers if the address + remains valid. + +Thu Jul 26 14:04:03 EDT 2001 John Wehle (john@feith.com) + + * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define. + (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES. + (propagate_block): Update prototype. + * flow.c (update_life_info): Simplify the CFG and + recalculate the global regs which are alive when + removing dead code during a global update. + (propagate_block): Return nonzero if an INSN is + deleted. + +2001-07-26 Rainer Orth + + * Makefile.in (LIBICONV): Define. + +2001-07-26 Catherine Moore + + * config/v850/v850.h (ENCODE_SECTION_INFO): Change order + of conditional to avoid tree checking errors. + +2001-07-26 Kazu Hirata + + * regmove.c (regmove_optimize): Don't replace a reg with + another reg of a different mode. + +2001-07-26 Andrew MacLeod + + * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to + limit length of dependency flush list. + * params.h (MAX_PENDING_LIST_LENGTH): Define. + * sched-int.h (struct deps): Add pending_flush_length field. + * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now + has 1 element in it. + (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH. + (sched_analyze): After a jump, if the pending memory flush list is too + large, flush the pending lists. + (init_deps): Initialize pending_flush_length to 0. + * doc/invoke.texi (max_pending_list_length): Document parameter. + +2001-07-26 Neil Booth + + * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate. + * dbxout.c (dbxout_global_decl): Move outside #ifdef. + * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies. + +2001-07-26 Neil Booth + + * cpphash.h (struct_lexer_state): Delete was_skipping. + Move skipping here from struct cpp_reader. + * cpplex.c (parse_identifier): Update. + (_cpp_lex_token): Don't skip tokens in a directive. + * cpplib.c (struct if_stack): Update. + (start_directive, end_directive): Don't change skipping state. + (_cpp_handle_directive): Update. + (do_ifdef, do_ifndef, do_if, do_elif): Similarly. + (do_else, do_endif): Update; only check for excess tokens if not + in a skipped conditional block. + (push_conditional): Update for new struct if_stack. + +2001-07-26 Graham Stott + + * function.c (locate_and_pad_parm): Also pad initial offset + so that the total argument size also includes the padding. + +2001-07-26 Graham Stott + + * gensupport.c (alter_output_for_insn): Correct enable checking failure + change XSTR to XTMPL. + + (process_one_cond_exec): Likewise + +2001-07-25 Richard Henderson + + * varasm.c (assemble_variable): Create DECL_RTL before setting + TREE_ASM_WRITTEN. + +Thu Jul 26 00:19:30 CEST 2001 Jan Hubicka + + * predict.c (estimate_probability): Avoid duplicated predictions. + + * loop.c (find_and_verify_loops): Grok multiple barriers. + +Wed Jul 25 18:00:05 2001 Richard Kenner + + * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'. + + * dbxout.c: Consistently use putc instead of fputc. + (print_wide_int): New function; call instead of direct fprintf. + (dbxout_type_index): Adjust calls of CHARS to be more accurate. + (dbxout_type_fields, dbxout_type_method_1): Likewise. + (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise. + (print_int_cst_octal): Likewise. + (print_octal): Show we wrote characters. + (dbxout_type): Set have_used_extensions in more places. + +2001-07-25 Catherine Moore + + * config/v850/v850.c (v850_va_arg): Use addr + instead of valist to build incr. + +Wed Jul 25 22:48:59 CEST 2001 Jan Hubicka + + * flow.c (delete_dead_jumptables): New function. + (life_analyzis): Call it. + * bb-reorder.c (skip_insns_after_block): Handle contradictory + sequences. + +2001-07-25 Richard Henderson + + * except.c (reachable_handlers): Handle a region being removed + out from under a RESX. + +2001-07-25 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_conditional_move): Always + swap GE/GT if it is an fp comparison. + +2001-07-25 Andrew Haley + + * alias.c (rtx_equal_for_memref_p): Allow strings as types in + operands. + +Wed Jul 25 08:25:01 2001 Jeffrey A Law (law@cygnus.com) + + * ssa.c (rename_insn_1): Do not wrap an assignment to a + paradoxical SUBREG inside a SEQUENCE. Fix minor formatting + glitch. + + * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can + throw an exception. + (visit_expression): When attempting to simplify an expression, + retrieve any modes for arguments before they are simplified + to constants. + +2001-07-25 Andrew MacLeod + Janis Johnson + + * stmt.c (expand_goto): A nonlocal goto can be a call too. + * builtins.c (expand_builtin_longjmp): Reverse label and static chain + pointer parameters to match documented usage of nonlocal_goto. + * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain + parameters to their correct order. + * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain + parameters to their correct order. + +2001-07-25 Andrew MacLeod + + * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well. + +2001-07-25 Jan Hubicka + Richard Henderson + + * flow.c (find_sub_basic_blocks): Fix handling of the last BB in + the sequence. + (make_edges): New argument update_p; populate the edge cache if set. + (find_basic_blocks): Update make_edges invocation. + +2001-07-24 Joel Sherrill + + * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float. + +2001-07-24 Joel Sherrill + + * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant + -Acpu and -Amachine.h. + * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise. + Corrected header to say ELF not a.out. + * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT + when given -msoft-float. + +2001-07-24 Joel Sherrill + + * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as + extra multilib parts like arm-elf. + (i960-*-coff*, i960-*-rtems): Should not use collect2. + (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and + crtfini.o as extra multilib parts. + +2001-07-24 Joel Sherrill + + * configure.in: Add rtems as a supported thread model. + * gthr-rtems.h: Add missing entry point __gthread_active_p. + * configure: Rebuilt. + +2001-07-24 Lars Brinkhoff + + * stor-layout.c (get_mode_alignment): make it work when + BITS_PER_UNIT is not a power of two. + * builtins.c (get_pointer_alignment): Likewise. + +2001-07-24 Richard Henderson + + * simplify-rtx.c (avoid_constant_pool_reference): Coerce + the retrieved constant into the expected mode. + +Wed Jul 25 01:41:27 CEST 2001 Jan Hubicka + + * flow.c (try_simplify_condjump): Avoid duplicated edges. + (verify_flow_info): Check for duplicated edges; clarify + error reporting. + + * flow.c (block_label): Update basic_block_for_insn. + (commit_edge_insertions): Call compute_bb_for_insn. + + * flow.c (purge_dead_edges): Handle conditional jumps and conditional + returns too. + + * flow.c (redirect_edge_and_branch, + try_optimize_cfg): Use redirect_edge_succ_nodup + (redirect_edge_succ_nodup): New. + * basic_block.h (redirect_edge_succ_nodup): Declare. + + * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup + after gcse. + +Wed Jul 25 00:32:49 CEST 2001 Jan Hubicka + + * flow.c (try_forward_edges): Accept fallthru edge; Update comment. + (try_crossjump_to_edge): Update commetns. + (try_crossjump_bb): Likewise. + +2001-07-24 Richard Henderson + + * combine.c (distribute_notes): Move set of need_refresh + for noop_move_p down to catch all cases. + +Tue Jul 24 20:32:44 CEST 2001 Jan Hubicka + + * recog.c (split_all_insns_noflow): New. + * rtl.h (split_all_insns_noflow): Declare. + * ia64.c (ia64_reorg): Use split_all_insns_noflow. + * m68hc11.c (m68hc11_reorg): Likewise. + * sh.c (machine_dependent_reorg): Likewise. + * toplev.c (rest_of_compilation): Likewise for last split_all_insns + call. + +2001-07-18 Andrew Haley + + * config/sh/sh.md (ashlsi3_std splitter): Split only after reload. + (ashlsi3_n splitter): Likewise. + (lshrsi3_n splitter): Likewise. + + (GOTaddr2picreg): Make const SImode. + (sym_label2reg): Likewise. + (symGOT2reg): Likewise. + (symGOTOFF2reg) Likewise. + + (casesi_worker_0): Make unspec SImode. + +2001-07-18 Andrew Haley + + * config/sh/sh.c (barrier_align): Check that an operand really is + an insn before extracting its INSN_CODE. + +2001-07-24 Andrew Haley + + * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of + dangling else. + + * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands + for SImode to prevent overflow. + +2001-07-24 Rainer Orth + + * config/mips/irix6-libc-compat.c: New file. + * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it. + * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure + passing workaround. + +2001-07-24 lars brinkhoff + + * rtl.texi (REG_POINTER): Document. + (Machine Modes): Document BImode, OImode, PQImode, PHImode, + QFmode, HFmode, TQFmode, QCmode, and HCmode. + +Tue Jul 24 10:49:40 CEST 2001 Jan Hubicka + + * flow.c (delete_noop_moves): Do not confuse libcall regions. + +2001-07-23 Richard Henderson + + * flow.c (try_simplify_condjump): Use tidy_fallthru_edge. + +2001-07-23 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + general_operand_dst_push. + * config/h8300/h8300.c (general_operand_dst_push): New. + * config/h8300/h8300.h (OK_FOR_T): New. + (EXTRA_CONSTRAINT): Use it. + * config/h8300/h8300.md (movqi_push): Remove and integrate into + the existing movqi pattern. + (movhi_push): Likewise. + + * reload.c: Fix comment typos. + +Mon Jul 23 23:34:07 CEST 2001 Jan Hubicka + + * gcse.c (cprop_insn): Update call of cprop_cc0_jump. + +2001-07-23 H.J. Lu (hjl@gnu.org) + + * doc/extend.texi: Update __builtin_return_address and + __builtin_frame_address. + +2001-07-23 Richard Henderson + + * config/i386/i386.c (ix86_expand_setcc): Don't use method 0 + before CSE. + * config/i386/i386.md: New setcc+movzbl peephole2. + +2001-07-23 Neil Booth + + * objc/Make-lang.in (objc-act.o): Depend on debug.h. + * objc/objc-act.c: Include debug.h. + (synth_module_prologue): Save and restore debug hooks too. + +2001-07-23 lars brinkhoff + + * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT + and C4X_FLOAT_FORMAT. + (BOOL_TYPE_SIZE): Document. + +Mon Jul 23 11:54:23 2001 Clinton Popetz + + * unroll.c (loop_iterations): Fix miscalculation of initial + giv offset. + +2001-07-13 Andrew Haley + + * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro. + * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro. + * config/sh/sh.c (sh_can_redirect_branch): New function. + * config/sh/sh-protos.h (sh_can_redirect_branch): Declare. + * reorg.c (steal_delay_list_from_target): Use + MD_CAN_REDIRECT_BRANCH to see if redirection is possible. + +Mon Jul 23 17:20:18 CEST 2001 Jan Hubicka + + * flow.c (try_simplify_condjump): Unlink insn chain on + fallthru edge; use can_fallthru. + +Mon Jul 23 16:03:19 CEST 2001 Jan Hubicka + + * basic-block.h (find_sub_basic_block): Declare. + * flow.c (make_edges): New arguments MIN and MAX; + (find_sub_basic_blocks): Revamp to use make_edges + and purge_dead_edges. + (find_basic_blocks): Update call of find_sub_basic_block. + + * recog.c (split_all_insns): Always expect CFG to be consistent; + call find_sub_basic_blocks in case something has changed. + * toplev.c (rest_of_compilation): Always call split_all_insns once CFG + has been built. + + * basic-block.h (delete_noop_moves): Declare. + * combine.c (combine_instructions): Call it. + (recog_for_combine): Tolerate noop moves + (distribute_notes): Force refresh when register dies at noop move. + * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns + too. + (life_analysis): Update delete_noop_moves call. + (set_noop_p): Move too ... + * rtlanal.c (noop_move_p): ... here. + * rtl.h (noop_move_p): Declare. + + * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions. + * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges + after combine. + * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block". + (cprop_jump): Likewise; call purge_dead_edges if substitution succeeded. + +2001-07-23 Hans-Peter Nilsson + + * reload.c (push_reload): Fix typo in comment. + (find_reloads_address): Ditto. + (reg_overlap_mentioned_for_reload_p): Ditto in head comment. + +2001-07-22 Richard Henderson + + * flow.c: Grammar check and clarify a lot of comments. + (try_simplify_condjump): Rename variables to be clearer. + (try_forward_edges): Skip complex and fallthru edges. + Rearrange tests to avoid duplicate checks. + (flow_find_cross_jump): Likewise. + (outgoing_edges_match): Allow match if neither branch has + probability data. Loosen probability match to 5%. + (try_crossjump_to_edge): Hoist repeated indirection into + local variables. + (try_crossjump_bb): Don't check complex edges. Eliminate + redundant crossjump tests. + (try_optimize_cfg): Fix use of bool. Reorganize cheaper + checks before more expensive checks. + +2001-07-22 Richard Henderson + + * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of + INTEGRAL_TYPE_P when folding comparisons with operand_equal_p + arguments. + +2001-07-22 Richard Henderson + + * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits. + (const_sint32_operand): Likewise. + * m68k.md (anon mulsi pattern): Use const_int_operand not + const_sint32_operand. + (umulsi3_highpart): Zero extend a constant input. + (smulsi3_highpart): Don't bother checking SImode constant. + (const_umulsi3_highpart): Give op3 DImode. + (const_smulsi3_highpart): Likewise. + +2001-07-22 Richard Henderson + + * flow.c (split_block): Make sure bb_note is included in the + new block when splitting before a label. + +Sun Jul 22 23:28:56 CEST 2001 Jan Hubicka + + * basic-block.h (redirect_edge_and_branch_force, + redirect_edge_and_branch, block_label, forwarder_block_p): Declare. + * flow.c (redirect_edge_and_branch_force, + redirect_edge_and_branch, block_label, forwarder_block_p): Make global. + (redirect_edge_and_branch_force): Fix copying of lifeness information. + (block_label): Handle EXIT_BLOCK_PTR by returning NULL. + * ifcvt.c (dead_or_predictable): Take BB as an new destination + instead of label; update CFG after transformation. + (find_if_case_1): Update call, use redirect_edge_and_branch_force + for finishing the transformation; handle even case where ELSE + does not follow THEN. + (find_if_case_2): Update call of dead_or_predictable; simplify + CFG update. + + * emit-rtl.c (split_branch_probability): New global variable. + (try_split): Take care to set split_branch_probability and + create REG_BR_PROB note for new jump insns. + * md.texi (define_split): Document new feature. + + * i386.c (ix86_split_fp_branch): Redistribute branch probability notes. + +2001-07-22 Neil Booth + + * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h. + (asm_out_file): Remove redundant declaration. + (assemble_asm): Remove old #if 0 block. + (assemble_variable): Remove end of function; debug output is + now handled with global_decl. Remove old #if 0 block. Update. + Remove saved_in_section and associated no-op code. + * Makefile.in (varasm.o): Correct dependencies. + +Sun Jul 22 17:55:11 2001 Alexandre Oliva + + * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use + the definition in defaults.h. + +Sun Jul 22 21:31:04 CEST 2001 Jan Hubicka + + * jump.c: Update comments. + (delete_barrier_successors, delete_unreferenced_labels, + delete_noop_moves, tension_vector_labels, delete_from_jump_chain, + delete_labelref_insn, redirect_tablejump, jump_optimize_1, + jump_optimize, jump_optimize_minimal): Kill. + (rebuild_jump_labels): Move code from jump_optimize_1. + (purge_line_number_notes): Likewise. + (copy_loop_headers): Likewise. + * reg-stack.c: Update comment. + * stmt.c: Likewise. + * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES, + JUMP_AFTER_REGSCAN): Kill. + * toplev.c (rest_of_compilation): Use cleanup_cfg, call + purge_line_number_notes and copy_loop_headers. + +2001-07-22 Neil Booth + Richard Henderson + + * dbxout.c (dbxout_global_decl): New. + (xcoff_debug_hooks, dbx_debug_hooks): Use it. + * sdbout.c (sdbout_finish): New. + (sdbout_debug_hooks): Use it, add comments. + (sdbout_global_decl): Defer initialized public vars to + sdbout_finish. + * varasm.c (assemble_variable): Don't output debug information + for file-scope variables. + +2001-07-22 Richard Henderson + + * config/alpha/alpha.c (get_trap_mode_suffix): New. + (get_round_mode_suffix): New. + (print_operand): Use them for [/]. Remove support for [&'`()+]. + * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update. + * config/alpha/alpha.md (attr round_suffix): New. + (attr trap_suffix): New. + (all insns): Set them appropriately. Use %/ instead of the + myriad punctuators. + +2001-07-22 Neil Booth + + * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch. + +2001-07-22 Richard Henderson + + * regrename.c (regrename_optimize): Compute nregs for each + potential target register. + +2001-07-21 Neil Booth + Richard Henderson + + * dbxout.c (dbxout_global_decl): New. + (xcoff_debug_hooks, dbx_debug_hooks): Use it. + * sdbout.c (sdbout_finish): New. + (sdbout_debug_hooks): Use it, add comments. + (sdbout_global_decl): Defer initialized public vars to + sdbout_finish. + * varasm.c (assemble_variable): Don't output debug information + for file-scope variables. + +2001-07-21 H.J. Lu (hjl@gnu.org) + + * config/mips/mips.c (mips_cpu): Moved into ... + (override_options): Here. + + * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with + mips_tune. + (mips_cpu): Removed. + +2001-07-21 Stephane Carrez + + * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand. + ("iorqi3"): Likewise. + ("xorqi3"): Likewise. + ("*addhi3"): Fix constraint to avoid reloading in a soft register. + ("*subhi3_sp): Likewise. + ("*subhi3"): Likewise. + ("extendhisi2"): Accept D, X and Y as source operand to avoid + reload problems. + +2001-07-21 Nathan Sidwell + + * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS. + * config/freebsd.h: Likewise. + * config/linux.h: Likewise. + * config/openbsd.h: Likewise. + * config/alpha/linux-elf.h: Likewise. + * config/arm/linux-elf.h: Likewise. + * config/d30v/d30v.h: Likewise. + * config/fr30/fr30.h: Likewise. + * config/ia64/aix.h: Likewise. + * config/ia64/ia64.h: Likewise. + * config/mips/linux.h: Likewise. + * config/pj/pj.h: Likewise. + * config/rs6000/linux.h: Likewise. + * config/sparc/linux.h: Likewise. + * config/sparc/linux64.h: Likewise. + +2001-07-20 Bruce Korb + + * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons + because getc() and char* may disagree on signedness. + +2001-07-20 Richard Henderson + + * doc/rtl.texi (REG_DEAD): Update for current semantics. + + * flow.c (try_redirect_by_replacing_jump): Correctly compute which + insns to delete in the presence of cc0 in a jump insn. + +Fri Jul 20 22:14:49 CEST 2001 Roman Zippel + Jan Hubicka + + * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead + of doing the change by hand. + +Fri Jul 20 21:59:42 CEST 2001 Jan Hubicka + + * rtlanal.c (set_noop_p): Return true for noop jumps. + + * expr.c (emit_single_push_insn): Add call to push expander. + * expr.h (optab_index): Add OTI_push + (push_optab): New constant. + * genopinit.c (optabs): Add push_optab. + * optabs.c (init_optab): Init push optab. + * md.texi (push??1): Document + +2001-07-20 Stephane Carrez + + * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an + expand to emit the pattern; put a REG_INC note for push/pop + instructions. + ("movdf", "movdf_internal"): Likewise. + ("movsi", "movsi_internal"): Likewise. + ("movsf", "movsf_internal"): Likewise. + ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions. + +2001-07-20 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use + gen_highpart. + +2001-07-20 Daniel Berlin + + * params.def: Change default max inline insns to 100. + +2001-07-20 Diego Novillo + + * combine.c (combine_simplify_rtx): Generate a new shift operation + when simplifying the first operand of a (neg (ashift)) expression. + +2001-07-20 Roman Lechtchinsky + + * regclass.c (N_REG_INTS): Use only 32 bits per element. + +2001-07-20 Kelley Cook + + * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug + information. Move rest into ... + (*-*-solaris): ... here. Eliminate redundant information and + reword necessary packages section. Delete 4.x assembler bug info. + (sparc-sun-*): Merge into ... + (sparc-sun-sunos*): here. + +2001-07-20 Catherine Moore + + * config/v850/v850.md (casesi): Generate LABEL_REF + with Pmode. + +Fri Jul 20 14:12:57 CEST 2001 Jan Hubicka + + * i386-protos.h (ix86_zero_extend_to_Pmode): Declare. + * i386.c (ix86_zero_extend_to_Pmode): Make global. + * i386.md (strclrsi expander): Use it. + +Fri Jul 20 13:24:16 CEST 2001 Jan Hubicka + + * integrate.c (copy_insn_list): handle + NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL. + (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL + identically as to CODE_LABEL. + + * fold-const (fold): Convert A/B/C to A/(B*C) and + A/(B/C) to (A/B)*C + + * except.c (connect_post_landing_pads): Delete the RESX insns. + +2001-07-20 Aldy Hernandez + + * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro. + + * config/mips/mips.md (nmadd/nmsub): Use macro. + +2001-07-20 Nathan Sidwell + + * cppinit.c (remove_dup_dir): Make static. + (remove_dup_dirs): Make static. Only warn about preempting a + system directory with a non-system directory. + +2001-07-19 Geoffrey Keating + + * ifcvt.c (noce_try_store_flag_constants): Correct order + of parameters to trunc_int_for_mode. + +2001-07-19 Mark Mitchell + + * reorg.c (fill_simple_delay_slots): If an instruction might throw + an exception that will be caught within this function, do not fill + its delay slot with any subsequent instruction. + +2001-07-19 Steve Ellcey + + * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition. + * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized + pointer extension instruction. + * combine.c (nonzero_bits,num_sign_bit_copies) Likewise. + * simplify-rtx.c (simplify_unary_operation) Likewise. + * explow.c (convert_memory_address) Check value of + POINTERS_EXTEND_UNSIGNED to avoid some conversions when + less than zero. + * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS, + MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support. + * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES) + Add Multilib Support. + (POINTERS_EXTEND_UNSIGNED) Define for ILP32 support. + * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES) + Add Multilib Support. + (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32 + support. + * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4. + * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle" + a 32 bit HP-UX pointer into a 64 bit HP-UX pointer. + +2001-07-19 Alexandre Oliva + + * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from + old and new operands in `<', `3' and `b'. + +2001-07-19 Neil Booth + + * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h. + (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h. + (toplev.o): Don't depend on xcoffout.h. + * c-decl.c: Include debug.h + (duplicate_decls): Use debug hook. + * dbxout.c (dbxout_source_file, dbxout_args): Make static. + (dbx_debug_hooks, xcoff_debug_hooks): Update. + (dbxout_types): Remove. + * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove. + * debug.c (do_nothing_debug_hooks): Update. + (debug_true_tree, debug_nothing_rtx): New. + * debug.h (struct rtx_def): New. + (struct gcc_debug_hooks): New hooks ignore_block, + outlining_inline_function and label. + (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init, + dwarf2out_frame_finish): New. + * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function): + Make static, update prototype. + (dwarf2_debug_hooks): Update. + * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function, + dwarf2out_frame_init, dwarf2out_frame_finish): Remove. + * dwarfout.c (dwarf_debug_hooks): Update. + * emit-rtl.c: Include debug.h. + (remove_unnecessary_notes): Use debug hook. + * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h. + (final_scan_insn): Use debug hook. + * integrate.c (output_inline_function): Use debug hook. + * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static. + (sdb_debug_hooks): Update. + * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove. + * toplev.c: Don't include xcoffout.h. + (note_outlining_of_inline_function, debug_ignore_block): Remove. + * toplev.h (note_outlining_of_inline_function, debug_ignore_block): + Remove. + * tree.h (dwarf2out_do_frame): Remove. + +2001-07-19 Catherine Moore + + * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore. + +2001-07-19 Geoffrey Keating + + * reload1.c (eliminate_regs_in_insn): When updating a set + to the frame pointer to the hardware frame pointer, perform + the update always not just when REPLACE is set. + + * reload1.c (choose_reload_regs): Don't inherit a reload + that crosses multiple registers if registers past the first + don't fit in the desired class. + + * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode + when negating constants. + +2001-07-19 Toon Moene + + * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument. + * doc/tree.texi: Ditto. + +2001-07-19 Mark Kettenis + Jakub Jelinek + + * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr. + (extract_cie_info): Handle "eh" augmentation properly, + remember eh_ptr. + (struct frame_state, __frame_state_for): New. + +2001-07-19 Rainer Orth + + * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL, + HANDLE_SYSV_PRAGMA): Define. + * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline + previous args. + (copy_object): Caller changed. + +2001-07-19 Andreas Schwab + + * configure.in (assembler dwarf2 debug_line support): Define nop + insn for m68k. + * configure: Regenerated. + +2001-07-19 Neil Booth + + * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on + dwarfout.h. + * dbxout.c (dbxout_function): Rename dbxout_function_decl, move + to conditionally compiled block. + (dbx_debug_hooks, xcoff_debug_hooks): Update. + * dbxout.h (dbxout_function): Remove. + * debug.c (do_nothing_debug_hooks): Update. + * debug.h (struct gcc_debug_hooks): New hooks function_decl, + global_decl, deferred_inline_function. + * dwarf2out.c (dwarf2_debug_hooks): Update. + (dwarf2out_global_decl): New. + * dwarfout.c: Don't include dwarfout.h. + (dwarfout_global_decl, dwarfout_function_decl, + dwarfout_deferred_inline_function): New. + (dwarf_debug_hooks): Update. + * dwarfout.h: Remove. + * final.c: Don't include dwarfout.h. + * sdbout.c (sdbout_global_decl): New. + (sdbout_debug_hooks): Update. + * toplev.c: Don't include dwarfout.h. + (check_global_declarations, rest_of_compilation): Use new debug hooks. + (note_deferral_of_defined_inline_function): Remove. + * toplev.h (note_deferral_of_defined_inline_function): Remove. + * ch/Makefile.in (lex.o): No dependence on dwarfout.h. + * ch/lex.c: Don't include dwarfout.h. + * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h. + (semantics.o, optimize.o): Depend on debug.h not dwarfout.h. + * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h. + * cp/optimize.c: Include debug.h. + (maybe_clone_body): Use debug hook. + * cp/semantics.c: Include debug.h. + (expand_body): Use debug hook. + * po/POTFILES.in: Remove dwarfout.h. + +2001-07-19 Neil Booth + + * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases. + * c-parse.in (yyerror, _yylex): Similarly. + * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr): + Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough. + Update comments. + * cpplib.h (CPP_INT, CPP_FLOAT): Remove. + * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. + +2001-07-18 Jeff Sturm + + * dwarf2out.c (dwarf2out_abstract_function): Don't emit + in-class declaration at -g1. Fixes c++/2814. + +2001-07-18 Richard Henderson + + * doc/md.texi (reload_in/out): Document restrictions in predicates + and constraints for these patterns. Document empty string matching + ALL_REGS. + +2001-07-18 Rainer Orth + + * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL. + +Wed Jul 18 20:47:36 CEST 2001 Jan Hubicka + + * cse.c: Undo my previous patch. + +2001-07-18 Tom Tromey + + For PR java/2812: + * configure: Rebuilt. + * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV + instead. + * aclocal.m4 (AM_ICONV): New macro from Bruno Haible. + +Wed Jul 18 18:46:30 CEST 2001 Richard Henderson + Jan Hubicka + + * flow.c (redirect_edge_and_branch): Bail out on complex edges. + (try_optimize_cfg): Do not remove tail recursive labels before sibcall. + * jump.c (mark_jump_label): Do not forward branches. + +Wed Jul 18 18:35:01 CEST 2001 Jan Hubicka + + * cse.c (delete_trivially_dead_insns): Delete the libcall block + when return value is unused. + +Wed Jul 18 18:28:16 CEST 2001 Jan Hubicka + + * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores. + +Wed Jul 18 12:05:29 2001 Nicola Pero + + * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value + on error. We can't blindly return the result of + pthread_mutex_trylock because it returns a positive number on + error, while we must return -1 on error. + (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar + fixes. + Reported by Stephen Brandon . + +2001-07-18 Andreas Jaeger + + * integrate.c (output_inline_function): Correct type of debug_hooks. + +2001-07-18 Toon Moene + + * combine.c (combine_simplify_rtx): DIV can be treated + associatively for floats if unsafe math optimisations are enabled. + +2001-07-17 Richard Henderson + + * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS. + +2001-07-17 Richard Henderson + + * calls.c (prepare_call_address): New parameter SIBCALLP. If true, + don't force the function address into a register. + (expand_call, emit_library_call_value_1): Update callers. + * builtins.c (expand_builtin_apply): Likewise. + * expr.h (prepare_call_address): Update decl. + +2001-07-17 Chandrakala Chavva + + * config.gcc: For *-*-chorusos triplet, get chorus.h file from + config directory. + * config/i386/chorus.h: Move up. + * config/sparc/chorus.h: Likewise. + * config/rs6000/chorus.h: Likewise. + * config/chorus.h: Moved here. + +2001-07-17 Andreas Schwab + + * configure.in (assembler eh_frame optimization): Handle big + endian. + * configure: Regenerated. + +Tue Jul 17 23:43:31 CEST 2001 Jan Hubicka + + * expr.c (epxand_expr): Convert divisions into multiplications by + reciprocals if -ffast-math. + +2001-07-17 Neil Booth + + * dbxout.c (dbxout_really_begin_function): Rename to + dbxout_begin_function. + (dbx_debug_hooks, xcoff_debug_hooks): Update. + (dbxout_begin_function): Remove. + (dbxout_function): Update. + (dbxout_source_line): Update prototype. + * dbxout.h (dbxout_begin_function): Remove. + * debug.c (do_nothing_debug_hooks): Update. + (debug_nothing_tree): Update. + (debug_nothing_charstar_rtx): Remove. + * debug.h (union tree_node): Declare. + (struct rtx_def): Remove. + (gcc_debug_hooks): New hooks begin_prologue, end_prologue, + begin_function. Change source_line prototype. + (debug_nothing_tree): New. + (debug_nothing_charstar_rtx): Delete. + (dwarf2out_begin_prologue): Moved from ... + * tree.h: ... here. + * dwarf2out.c (dwarf2_debug_hooks): Update. + (dwarf2out_begin_prologue): Update prototype. If genuine dwarf2 + debug info, call dwarf2out_source_line. + (dwarf2out_souce_line): Update prototype. + * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue. + Change prototype, make static. + (dwarfout_source_line): Update prototype. + (dwarf_debug_hooks): Update. + * dwarfout.h (dwarfout_begin_function): Remove. + * final.c (final_start_function, final_scan_insn): Use appropriate + debug hooks, update to use notice_source_line. + (output_source_line): Rename notice_source_line. Don't call the + source_line debug hook. + * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue, + make static, update prototype. + (sdbout_mark_begin_function): Rename sdbout_begin_function, update + prototype. + (sdbout_end_prologue): New. + (sdbout_source_line): Update prototype. + (sdbout_debug_hooks): Update. + (sdbout_symbol): Remove unused var. + * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function): + Delete. + * varasm.c: Include debug.h. + (assemble_start_function): Use begin_function debug_hook. + * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function, + update with prototype. + (xcoffout_source_line): Update prototype. + * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function, + update prototype. + (xcoffout_source_line): Update prototype. + +2001-07-17 Richard Henderson + + * c-typeck.c (build_binary_op): Do not shorten unsigned + right shift after sign extension. + +Tue Jul 17 16:56:05 CEST 2001 Jan Hubicka + + * combine.c (combine_simplify_rtx): Attempt to simplify + a*(b/c) as (a*b)/c for floats in unsafe_math mode. + + * simplify-rtx.c (avoid_constatn_pool_reference): New static function. + (simplify_binary_operation, simplify_unary_operation, + simplify_relational_operation): Use it. + + * combine.c (combine_simplify_rtx): Don't do associative law + on divisions; allow associative law on floats. + +2001-07-17 H.J. Lu + Rainer Orth + + * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and + ASM_OUTPUT_WEAK_ALIAS are defined. + * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible. + * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL): + Moved ... + * config/mips/iris5.h: ... here. + (HANDLE_SYSV_PRAGMA): Defined as 1. + * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS. + * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak + symbol. + +2001-07-17 Joseph S. Myers + + * c-parse.in (all_prefix_attributes): New variable. + (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros. + (maybe_resetattrs): New production. + (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl, + maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl, + notype_initdcl, nested_function, notype_nested_function, + component_decl, components, components_notype, + component_declarator, component_notype_declarator, + absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl, + ivars, mydecl, myparm): Update. Avoid prefix attributes just + after a comma being applied to more than one declarator. + * doc/extend.texi (Attribute Syntax): Update. Remove + documentation of bugs that are no longer present. + +2001-07-13 Eric Christopher + + * config/mips/mips.h: Change TUNE_MIPS* options to use + mips_tune. + (EXTRA_SPECS): Add cc1_cpu_spec. + * config/mips/mips.md (muldf3): Fix typo. + +2001-07-16 Richard Henderson + + * config/m68k/m68k.c: Include expr.h and reload.h. + (print_operand_address) [16 bit int]: Cast INTVAL to int for %d. + [general int]: Use HOST_WIDE_INT_PRINT_DEC. + +2001-07-16 Daniel Berlin + Richard Henderson + + * cse.c (set_live_p): Take INSN argument for cc0; update callers. + (insn_live_p): Fix fall off end of function. + (dead_libcall_p): Remove COUNTS argument; update callers. + (delete_trivially_dead_insns): Remove unused variables. + +2001-07-17 Andreas Jaeger + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for + x86-64 pic support. + + * lcm.c (optimize_mode_switching): Avoid warning for unused + variable if !NORMAL_MODE. + + * flow.c (try_crossjump_to_edge): Remove unused variable. + +2001-07-16 John David Anglin + + * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3 + atexit declaration in stdlib.h. + +2001-07-16 Richard Begg + + * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h + +Mon Jul 16 22:48:00 CEST 2001 Jan Hubicka + + * basic-block.h (CLEANUP_PRE_SIBCALL): New constant. + * except.c (finish_eh_generation): Update call of cleanup_cfg; + do rebuild_jump_labels instead of jump_optimize + * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise. + * toplev.c (rest_of_compulation): Likewise for -Wreturn_type. + * flow.c (try_optimize_cfg): Remove unneeded code_labels. + + * flow.c: Include timevar.h + (find_basic_block): Push/pop timevar; + (cleanup_cfg): Likewise. + * timevar.def (TV_CFG, TV_CLEANUP_CFG): New. + * Makefile: Add dependencies on timevar.h + + * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes. + (copy_insn_list): Avoid killing of BASIC_BLOCK notes. + + * rtl.h (delete_trivially_dead_insns): Add new parameter. + * toplev.c (rest_of_compilation): Update calls. + * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ... + (delete_trivially_dead_insns): ... here; accept new argument + preserve_basic_blocks; preserve basic blocks if set. + + * reg-stack.c (stack_regs_mentioned): Return 0 if + stack_regs_mentioned_data is not initialized. + (reg_to_stack): Make stack_regs_mentioned survive after the + reg-stack is completted; do not call cleanup_cfg. + * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder; + make cleanup_cfg after bb-reorder to output to debug file. + +2001-07-16 Richard Henderson + + * regclass.c (init_reg_sets): Use only 32 bits per initializer + from int_reg_class_contents. + +2001-07-16 Richard Henderson + + * hard-reg-set.h (regs_invalidated_by_call): Declare. + * regclass.c (regs_invalidated_by_call): Move from cse.c. + (init_reg_sets_1): Move initialization from cse_main. + * cse.c (regs_invalidated_by_call): Move to regclass.c. + (cse_main): Move its initialization also. + * df.c (df_insn_refs_record): Use regs_invalidated_by_call. + * flow.c (propagate_one_insn): Likewise. + * gcse.c (compute_hash_table): Likewise. + (compute_kill_rd, compute_store_table): Likewise. + * sched-deps.c (sched_analyze_1): Likewise. + +Mon Jul 16 18:07:07 2001 J"orn Rennecke + + * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of + gen_rtx_SET. + +2001-07-16 Steve Ellcey + + * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests + in if statement so we don't access undefined memory. + +2001-07-16 Daniel Berlin + + * gcse.c: Update comment at top. + Update comment on mem handling. + mem_last_set, mem_first_set, mem_set_in_block: gone. + Declaration of reg_set_info: gone. + (oprs_unchanged_p): Don't use mem_*set_* anymore. They are + pointless with load_killed_in_block_p (they are *more* + conservative then it, not less, and less accurate). + (oprs_not_set_p): Ditto. + (alloc_gcse_mem): Don't allocate mem_set_in_block + (free_gcse_mem): Don't free it, either. + (record_last_mem_set_info): Update comment in front, remove + mem_*set_* stuff. Note the reason we don't handle stores directly + here. + (compute_hash_table): Update comments to reflect reality. Remove + mem_*set_* references. + (reset_opr_set_tables): Remove mem_*set_* references. + (mark_call): Ditto. + (mark_set): Ditto. Also remove double sets of bitmaps for REG's. + (mark_clobber): Ditto (on both parts, we double set here too). + (expr_killed_p): Remove mem_set_in_block test. + (compute_transp): Remove mem_set_in_block test. + + * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal + of edge, and removal of phi alternative to dump file. + (ssa_ccp_substitute_constants): Add note about register now being + constant, and which uses were replaced in what insns to dump file. + +2001-07-16 Andreas Jaeger + + * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output + variables of type HOST_WIDEST_INT. + + * libgcc2.c (__bb_exit_func): Handle gcov_type as long long. + (__bb_exit_func): Correct type of count_max to avoid overflow. + (num_digits): Handle long long argument. + + * combine.c (gen_lowpart_for_combine): Remove unused variable. + +2001-07-16 Neil Booth + + * output.h (sdb_begin_function_line): Restore as an extern + variable. + * sdbout.c (sdb_begin_function_line): Make extern. + +2001-07-15 Richard Henderson + + * machmode.def (Pmode): Redefine if GENERATOR_FILE. + * genrecog.c (maybe_both_true_mode): New. + (maybe_both_true_2): Use it. + (write_switch): Don't put Pmode in a switch. + * rtl.c (mode arrays): Don't explicitly size them. + +Sun Jul 15 14:07:36 CEST 2001 Jan Hubicka + + * toplev.c (rest_of_compilation): Fix register_life_up_to_date + handling; move unconditional splitting before mode switching. + + * i386.md (type): Add fistp type. + (i387, length_attr, scheduling definitions): Handle this type. + (fix_trunc?f?i2): Revamp to use mode switching. + (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns. + * i386.h (fp_cw_mode): New enum + (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED, + MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros. + +Sun Jul 15 12:53:51 2001 Richard Kenner + + * Makefile.in (integrate.o): Add debug.h. + * integrate.c (debug.h): Add. + (output_inline_function): Save, reset, and restore debug_hooks. + +2001-07-15 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode + instead of COMPARE for the EQUIV expression. + +2001-07-15 Richard Henderson + + * flow.c (redirect_edge_and_branch_force): Initialize + global_live_at_start and global_live_at_end. + (allocate_bb_life_data): Export. + * basic-block.h (allocate_bb_life_data): Declare. + * toplev.c (rest_of_compilation): Call it. + +2001-07-15 Richard Henderson + + * config/alpha/alpha.c (alpha_tablejump_addr_vec): New. + (alpha_tablejump_best_label): New. + * config/alpha/alpha-protos.h: Declare them. + * config/alpha/alpha.md: Use braced strings for code blocks. + (tablejump_osf): Break out add with r29. + (tablejump_osf_internal): Remove. + (tablejump_osf_nt_internal): Rename from tablejump_nt_internal, + use alpha_tablejump_addr_vec and alpha_tablejump_best_label. + +Sun Jul 15 00:53:35 CEST 2001 Jan Hubicka + + * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies + of the movable. + + * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching. + + * i386-protos.h (ix86_split_fp_branch): Update prototype. + (ix86_fp_jump_nontrivial_p): New. + * i386.md (fp_jcc_?): Update call of split_fp_branch; + use ix86_fp_jump_nontrivial_p. + * i386.c (ix86_fp_jump_nontrivial_p): New. + (ix86_split_fp_branch): Accept code instead of rtx. + (ix86_expand_compare): Expand comparison early in case + doing so is resonably cheap. + +2001-07-15 Nick Clifton + + * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian' + not 'machine'. + (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'. + (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'. + +2001-07-15 Neil Booth + + * dbxout.c (dbxout_source_line): Make static, update prototype. + (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks. + (dbxout_init, dbxout_finish, dbxout_source_line, + dbxout_begin_block, dbxout_end_block): Update for new prototypes. + * dbxout.h (dbxout_source_line): Delete. + * debug.c (debug_nothing_file, debug_nothing_file_int, + debug_nothing_file_charstar_rtx): New. + (do_nothing_debug_hooks): Update. + (debug_nothing_void, debug_nothing_charstar_rtx, + dwarf2out_end_epilogue): New. + (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename. + * debug.h (struct rtx_def): Declare. + (gcc_debug_hooks): New hooks source_line, end_epilogue + and end_function. + (debug_nothing_void, debug_nothing_charstar_rtx, + dwarf2out_end_epilogue): New. + (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename. + * dwarf2out.c (dwarf2out_source_line): Make static, update prototype. + (dwarf2_debug_hooks): Update. + (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line, + dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes. + * dwarf2out.h (dwarf2out_source_line): Remove. + * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function): + Make static, update prototype. + (dwarfout_init, dwarfout_finish, dwarfout_source_line, + dwarfout_begin_block, dwarfout_end_block): Update for new prototypes. + (dwarf_debug_hooks): Update. + * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line, + dwarfout_end_function): Remove. + * final.c (profile_function): Use debug hooks for ending functions + and epilogues. + (output_source_line, final_end_function): Update prototype, + use debug hooks. + (final_start_function, final_scan_insn): Update. + * output.h (sdb_begin_function_line): Remove. + (final_end_function): Update prototype. + * sdbout.c (sdb_begin_function_line): Make static. + (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue. + (sdbout_source_line): New. + (sdbout_end_epilogue, sdbout_end_function): Make static, update + prototypes. + (sdb_debug_hooks): Update. + (sdbout_init, sdbout_source_line, + sdbout_begin_block, sdbout_end_block): Update for new prototypes. + * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove. + * toplev.c (compile_file, rest_of_compilation): Update. + * tree.h (dwarf2out_end_epilogue): Move to debug.h. + * xcoffout.c (xcoffout_source_line, xcoffout_begin_block, + xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function): + Update for prototype changes. + * xcoffout.h (xcoffout_source_line, xcoffout_begin_block, + xcoffout_end_block, xcoffout_end_epilogue): Update prototypes. + +2001-07-15 Richard Henderson + + * config/alpha/alpha.h (TARGET_ABI_OSF): New. + (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users. + * config/alpha/alpha-protos.h: Update TARGET_ABI_* users. + * config/alpha/alpha.c: Likewise. + * config/alpha/alpha.md: Likewise. + * config/alpha/alpha32.h: Likewise. + * config/alpha/vms.h: Likewise. + (OPEN_VMS): Remove. + +2001-07-14 Richard Henderson + + * config/alpha/alpha.md: Use define_constants for unspec values. + Substitute throughout. + +2001-07-14 Tim Josling + + * tree.def (EXPON_EXPR) remove. Never supported anyway. + +2001-07-14 John David Anglin + + * pa.md: Remove unused constraints from define_split's. + +2001-04-14 Richard Henderson + + * ifcvt.c (find_cond_trap): Test for exit block. + +Sun Jul 15 00:50:20 CEST 2001 Jan Hubicka + + Re-install recently reverted patch. + * emit-rtl.c (try_split): Update mark_jump_label call. + * flow.c (find_sub_basic_blocks): Likewise. + * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump, + jump_back_p): Kill. + (mark_all_labels): Kill second parameter. + (jump_optimize, jump_optimize_1): Kill cross_jump parameter. + (rebuild_jump_labels, jump_optimize_minimal): Update call + of jump_optimize_1. + (jump_optimize_1): Kill crossjumping code. + (mark_jump_label): Kill cross_jump parameter. + * rtl.h (mark_jump_label, jump_optimize): Update prototypes. + (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill. + * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do + splitting. + * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before + DFI_bpro. + (dump_file_info): Likewise. + (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass; + reorganize passes to do reg-stack first, bb-reorder second. + * invoke.texi (-d letters doc): Remove the jump2 pass. + +2001-07-14 Richard Henderson + + * ifcvt.c (find_cond_trap): New. + (find_if_header): Call it. + (merge_if_block): Relax existing jump sanity check. + * jump.c (jump_optimize_1): Remove conditional trap handling. + +2001-07-14 Alan Modra + + * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit + millicode. + (insn_refs_are_delayed): Correct comment. + * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise. + * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2 + instead of r31. Make associated insn !TARGET_64BIT, and + provide an additional 64-bit insn that clobbers r2. + (divsi3): Likewise. + (udivsi3): Likewise. + (modsi3): Likewise. + (umodsi3): Likewise. + +Sat Jul 14 02:58:38 CEST 2001 Jan Hubicka + + * bb-reorder.c (skip_insn_after_block): Get past the line number notes. + + * flow.c (redirect_edge_and_branch_force, split_edge, + try_crossjump_to_edge): Use set_block_for_new_insns. + * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns. + +2001-07-13 H.J. Lu (hjl@gnu.org) + + * config/elfos.h (UNIQUE_SECTION): Enable .bss section with + the correct patch. + +2001-07-13 Geoffrey Keating + + Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13. + +2001-07-13 Joseph S. Myers + + * c-common.c (decl_attributes): Take a pointer to the node to + which attributes are to be attached, and a flags argument. + * c-common.h (enum attribute_flags): New. + (decl_attributes): Update prototype. + * c-decl.c (start_decl, push_parm_decl, finish_struct, + finish_enum, start_function): Update calls to decl_attributes. + * c-parse.in (component_declarator, component_notype_declarator, + label): Update calls to decl_attributes. + +Fri Jul 13 23:04:00 2001 Denis Chertykov + + * config/avr/avr.md (strlenhi): PARALLEL keyword removed. + * config/avr/avr.c (legitimate_address_p): Return value changed + from letter to register classes. For better debugging. + +2001-07-13 Kazu Hirata + + * jump.c (reversed_comparison_code_parts): Fix comment typos. + +2001-07-13 H.J. Lu (hjl@gnu.org) + + * config/elfos.h (UNIQUE_SECTION): Enable .bss section. + +2001-07-13 Marc Espie + + * config.gcc (*-*-openbsd*): Add fragment to compile libgcc + correctly for shared configurations. + * config/t-libgcc-pic: New. + * config/{i386,m68k,sparc}/t-openbsd: New. + * config/openbsd.h: Include cpu_spec in cpp_spec where needed. + Support -shared. Support debugging libraries with -g. + * config/i386/openbsd.h: Correct ASM_COMMENT_START. Ensure dwarf2 + frame information does not emit pointer diffs. + * config/sparc/openbsd.h: Ensure dwarf2 frame information does not + emit pointer diffs. + +2001-07-13 Geoffrey Keating + + Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001. + +2001-07-13 David Edelsohn + + * combine.c (try_combine): Ensure const_int pow2 is positive. + +2001-07-13 Hartmut Penner + + * config.gcc: Add configuration for s/390. + * config/s390/s390.c: New. Subroutines for code generation. + * config/s390/s390.h: New. Definitions for s/390. + * config/s390/s390-protos.h: New. Prototypes. + * config/s390/linux.h: New. Definitions for linux for s/390. + * config/s390/linux64.h: New. Definitions for linux for zSeries. + * config/s390/t-linux: New. Makefile fragment. + * config/s390/s390.md: New. Machine description for s/390 and zSeries. + * config/s390/fixdfdi.h: New. Fix L_fix*di. + +Fri Jul 13 14:46:21 CEST 2001 Jan Hubicka + + * emit-rtl.c (try_split): Update mark_jump_label call. + * flow.c (find_sub_basic_blocks): Likewise. + * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump, + jump_back_p): Kill. + (mark_all_labels): Kill second parameter. + (jump_optimize, jump_optimize_1): Kill cross_jump parameter. + (rebuild_jump_labels, jump_optimize_minimal): Update call + of jump_optimize_1. + (jump_optimize_1): Kill crossjumping code. + (mark_jump_label): Kill cross_jump parameter. + * rtl.h (mark_jump_label, jump_optimize): Update prototypes. + (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill. + * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do + splitting. + * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before + DFI_bpro. + (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass; + reorganize passes to do reg-stack first, bb-reorder second. + * invoke.texi (-d letters doc): Remove the jump2 pass. + +2001-07-12 Steve Ellcey + + * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef. + +Thu Jul 12 17:57:16 CEST 2001 Jan Hubicka + + * flow.c (try_optimize_cfg): Delete whole chain of trivially dead + basic blocks. + (verify_flow_info): Make diagnostics prettier. + +Thu Jul 12 16:48:54 CEST 2001 Jan Hubicka + + * flow.c (find_basic_blocks_1): Do not emit NOP after call. + + * flow.c (outgoing_edges_match): Return early if condition reversal + failed. + +2001-07-06 Richard Sandiford + + * config/mips/mips.c (print_operand): Extend '%D' to memory operands. + (mips_move_2words): When splitting a move into two instructions, + prefix the second address operand with '%D'. + +2001-07-12 Neil Booth + + * Makefile.in (final.o): Depend on debug.h. + * dbxout.c (dbxout_begin_block, dbxout_end_block): New. + (dbx_debug_hooks): Add new hooks. + (xcoff_debug_hooks): New. + * debug.c (debug_nothing_file_int_int): New. + (do_nothing_debug_hooks): Update. + * debug.h (gcc_debug_hooks): New hooks begin_block and end_block. + (debug_nothing_file_int_int): New. + * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make + static, update prototype. + (dwarf2_debug_hooks): Update. + * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove. + * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make + static, update prototype. + (dwarf_debug_hooks): Update. + * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove. + * final.c: Include debug.h. + (final_scan_insn): Use debug hooks when beginning and ending blocks. + * sdbout.c (sdbout_begin_block, sdbout_end_block): Make + static, update prototype. + (sdb_debug_hooks): Update. + * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove. + * toplev.c: Distinguish between xcoff and dbx. + + * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_): + Call all debug hooks, not just dwarf ones. + +2001-07-11 Timothy Wall + + * config.gcc: Add configuration for AIX5/IA64. + * config/ia64/aix.h: New. AIX5/IA64-specific configuration. + * config/ia64/crt[in].asm: New. Generic static ctor/dtor + support prefix/suffix code. + * config/ia64/t-aix: New. Makefile fragment. + * config/ia64/unwind-aix.c: New. Unwind table entry lookup. + +2001-07-11 Kazu Hirata + + * recog.c (validate_change): Fix a comment typo. + +2001-07-11 Neil Booth + + * Makefile.in (c-lex.o): Wrap long lines. Depend on debug.h. + * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug + hooks directly. + * dbxout.c (dbx_debug_hooks): Add new hooks. + (dbxout_start_new_source_file): Rename dbxout_start_source_file, + make static. + (dbxout_resume_previous_source_file): Rename dbxout_end_source_file, + make static. + * dbxout.h (dbxout_start_new_source_file, + dbxout_resume_previous_source_file): Delete. + * debug.c (do_nothing_debug_hooks): Add new hooks. + (debug_nothing_init_finish): Rename debug_nothing_file_charstar. + (debug_nothing_int_charstar, debug_nothing_int): New. + * debug.h (gcc_debug_hooks): New hooks define, undef, + start_source_file and end_source_file. + (debug_nothing_init_finish): Rename debug_nothing_file_charstar. + (debug_nothing_int_charstar, debug_nothing_int): New. + * dwarf2out.c (dwarf2_debug_hooks): Add new hooks. Move into + the conditionally compiled section. + (dwarf2out_start_source_file, dwarf2out_end_source_file, + dwarf2out_define, dwarf2out_undef): Make static. + * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file, + dwarf2out_define, dwarf2out_undef): Remove. + * dwarfout.c (dwarf_debug_hooks): Add new hooks. + (dwarfout_start_source_file, dwarfout_end_source_file, + dwarfout_define, dwarfout_undef): Make static. + (dwarfout_start_source_file_check, + dwarfout_end_source_file_check): New. + (dwarfout_define, dwarfout_finish): Update. + * dwarfout.h (dwarfout_start_new_source_file, + dwarfout_resume_previous_source_file, dwarfout_define, + dwarfout_undef): Remove. + * sdbout.c (sdb_debug_hooks): Add new hooks. + (sdbout_start_new_source_file): Rename sdbout_start_source_file, + make static. + (sdbout_resume_previous_source_file): Rename sdbout_end_source_file, + make static, take an arg. + * sdbout.h (sdbout_start_new_source_file, + sdbout_resume_previous_source_file): Delete. + * toplev.c (debug_start_source_file, debug_end_source_file, + debug_define, debug_undef): Delete. + * toplev.h (debug_start_source_file, debug_end_source_file, + debug_define, debug_undef): Delete. + + * java/jcf-parse.c: Include debug.h. + (parse_class_file): Update to use debug hooks directly. + * java/Make-lang.in (jcf-parse.o): Depend on debug.h. + +Wed Jul 11 10:07:18 2001 Richard Kenner + + * alias.c (set_mem_alias_set): New function. + * rtl.h (set_mem_alias_set): Declare it. + * builtins.c (expand_builtin_return_addr): Call it instead of + using MEM_ALIAS_SET accessor. + (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise. + (get_memory_rtx, expand_builtin_va_arg): Likewise. + (expand_builtin_va_copy):Likewise. + * caller-save.c (setup_save_areas): Likewise. + * calls.c (compute_argument_addresses): Likewise. + * explow.c (set_mem_attributes): Likewise. + * expr.c (emit_single_push_insn, emit_push_insn): Likewise. + (expand_assignment, store_constructor_field, store_field): Likewise. + (expand_expr_unaligned): Likewise. + * function.c (assign_stack_temp_for_type): Likewise. + (put_reg_into_stack, gen_mem_addressof): Likewise. + * ifcvt.c (noce_try_cmove_arith): Likewise. + * reload1.c (reload, alter_reg): Likewise. + * config/alpha/alpha.c (get_aligned_mem): Likewise. + (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise. + (alpha_expand_unaligned_store): Likewise + (alpha_expand_unaligned_load_words): Likewise. + (alpha_expand_unaligned_store_words): Likewise. + (alpha_expand_block_clear, alpha_expand_prologue): Likewise. + (alpha_expand_epilogue): Likewise. + * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. + * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise. + * config/i386/i386.c (legitimize_pic_address): Likewise. + * config/i960/i960.c (setup_incoming_varargs): Likewise. + * config/ia64/ia64.c (spill_restore_mem): Likewise. + * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. + * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise. + * config/mips/mips.c (mips_va_arg): Likewise. + * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise. + * config/pa/pa.c (hppa_builtin_saveregs): Likewise. + * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. + (setup_incoming_varargs, rs6000_va_arg): Likewise. + (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise. + (rs6000_emit_epilogue): Likewise. + * config/sh/sh.c (sh_builtin_saveregs): Likewise. + * config/sparc/sparc.c (sparc_va_arg): Likewise. + * config/v850/v850.c (v850_va_arg): Likewise. + +Wed Jul 11 21:27:25 CEST 2001 Jan Hubicka + + * flow.c (merge_blocks_move_successor_nojumps): Do not crash + when fallthru edge is present. + (mege_blocks): Handle case where creation of jump insn + is required. + + * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP, + CLEANUP_POST_REGSTACK): New constants. + * except.c (finish_eh_generation): Update call of cleanup_cfg, + * jump.c (rtx_renumbered_equal_p): Handle 't' fields. + * output.h (cleanup_cfg): Update prototype. + * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize + * sibcall.c (optimize_sibling_and_tail_recursive_call): Update + cleanup_cfg call; kill missleading comment. + * toplev.c (rest_of_compilation): Update all cleanup_cfg calls. + * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode + parameter; control optimizations performed using it. + (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, + try_crossjump_bb): New functions. + +2001-07-11 John David Anglin + + * pa.c (pa_output_function_prologue): Delete prototype. Make function + extern. + * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to + pa_output_function_prologue. + * pa-protos.h (pa_output_function_prologue): New prototype. + +2001-07-11 John David Anglin + + * stmt.c (emit_case_nodes): Widen high and low instead of new_bound + and low to get correct sign extension in low+high test. + +2001-07-11 Janis Johnson + + * gcov.c (arcdata): Use gcov_type to fix branch percentage + for large hit count. + + * profile.c (branch_prob): Fix .bbg info for computed gotos + and C++ EH code. + +2001-07-11 Mark Mitchell + + * stmt.c (parse_output_constraint): New function, split out + from ... + (expand_asm_operands): ... here. Use parse_output_constraint. + * tree.h (parse_output_constraint): Declare it. + +2001-07-11 Richard Henderson + + * bitmap.c: Comment some functions; fiddle whitespace. + (bitmap_free): Don't export. + (bitmap_element_allocate): Use memset. + * bitmap.h (bitmap_free): Don't declare. + +2001-07-11 Daniel Berlin + + * gcse.c, lcm.c, sched-deps.c: + s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g + + * flow.c (flow_loops_find): Free dom if we found no loops, since + we aren't going to save it. + + * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are + done. + +Wed Jul 11 09:00:48 2001 Jeffrey A Law (law@cygnus.com) + + * ssa-ccp.c (ssa_fast_dce): Free worklist when completed. + +Wed Jul 11 10:07:18 2001 Richard Kenner + + * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version + #ifndef DWARF2_DEBUGGING_INFO. + +2001-07-11 Richard Sandiford + + * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes. + +2001-07-11 Richard Sandiford + + * config/mips/mips.c (gen_int_relational): Tell the caller not to + reverse a branch if a NE comparison is implemented with GTU. + +2001-07-11 Richard Sandiford + H.J. Lu + + * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for + constant addresses. + (call_internal2): Likewise. + (call_value_internal1): Likewise. + (call_value_internal2): Likewise. + (call_value_multiple_internal1): Likewise. + (call_value_multiple_internal2): Likewise. + +2001-07-10 Kazu Hirata + + * calls.c (emit_library_call_value_1): Fix a comment typo. + * dwarf2out.c (mem_loc_descriptor): Likewise. + * config/i386/i386.c (ix86_expand_aligntest): Likewise. + +2001-07-11 David Billinghurst + + * simplify-rtx.c (simplify_subreg): Fix typo in comment + +Tue Jul 10 07:27:53 2001 Richard Kenner + + * recog.c (offsettable_address_p): Handle LO_SUM case. + * config/mips/mips.c (double_memory_operand): Use adjust_address_nv + instead of plus_constant. + +2001-07-10 Stephane Carrez + + * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge, + fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS. + +Tue Jul 10 07:27:53 2001 Richard Kenner + + * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use + adjust_address_nv instead of plus_constant. + +2001-07-10 Neil Booth + + * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o, + dwarf2out.o): Depend on debug.h, wrap long lines. + * dbxout.c: Include debug.h. + (dbx_debug_hooks): New. + (dbxout_init): Make static, take just 2 args. + (dbxout_finish): Make static. + * dbxout.h (dbxout_init, dbxout_finish): Delete. + * debug.c: New file. + * debug.h: New file. + * dwarf2out.c: Include debug.h. + (dwarf2_debug_hooks): New. + (dwarf2out_init): Make static. + (dwarf2out_finish): Make static, take 2 args. + * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete. + * dwarfout.c: Include debug.h. + (dwarf_debug_hooks): New. + (dwarfout_init): Make static. + (dwarfout_finish): Make static, take 2 args. + * dwarfout.h (dwarfout_init, dwarfout_finish): Delete. + * sdbout.c: Include debug.h. + (sdb_debug_hooks): New. + (sdbout_init): Make static, take 2 args. + * sdbout.h (sdbout_init): Delete. + * toplev.c: Include debug.h. + (debug_hooks): New. + (compile_file): Set deubg_hooks based on command line options. + Use the hooks unconditionally rather than conditional compilation. + +Tue Jul 10 09:04:45 2001 Jeffrey A Law (law@cygnus.com) + + * ssa-ccp.c (first_phi_node): Remove. Replace uses with calls to + first_insn_after_basic_block_note instead. + + * df.c (df_bb_refs_unlink): #if 0 out for now. + +2001-07-10 David Billinghurst + + * diagnostic.c (finish_diagnostic): Rename to + diagnostic_finish. Make it take an 'output_buffer *'. Adjust + calls thourghout. + +2001-07-10 Jason Merrill + + * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have + .loc support. + + * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses. + (dump_file): Only pad the demangled name with spaces if the + mangled name was padded with spaces. + +2001-07-10 Bernd Schmidt + + * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru + edge detection. + +Tue Jul 10 07:27:53 2001 Richard Kenner + + * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield + extraction if no direct load if either EXPAND_CONST_ADDRESS or + EXPAND_INITIALIZER. + + * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for + whether can put offset inside LO_SUM to check mode alignment, not size. + +2001-07-10 Gabriel Dos Reis + + * doc/tm.texi (Misc): Fix thinko. + +2001-07-10 Jan van Male + + * regmove.c (replace_in_call_usage): Fix warnings. + * sched-deps.c (add_dependence): Fix warnings. + * simplify-rtx.c (simplify_subreg): Likewise. + Return NULL_RTX instead of NULL. + + * reg-stack.c (emit_swap_insn): Eliminate warnings. + (subst_asm_stack_regs): Likewise. + + * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid + warnings. + + * dwarf2out.c (output_call_frame_info): Declare i as int. + (build_abbrev_table): Declare n_alloc as int. + (dwarf2out_finish): Initialize die. + * except.c: Declare sjlj_funcdef_number as unsigned. + (connect_post_landing_pads): Declare j as unsigned. + (convert_to_eh_region_ranges): Initialize call_site. + (output_function_exception_table): Initialize tt_format_size. + * expr.c (move_by_pieces_1): Initialize to1. + (store_constructor): Initialize minelt and maxelt. + * flow.c (mark_regs_live_at_end): Declare i as unsigned. + * function.c (instantiate_decls): Avoid signed/unsigned warning. + + * c-decl.c (combine_parm_decls): Unused, remove. + * c-tree.h: Remove prototype for combine_parm_decls. + + * reload.c (push_reload): Fix warning. + (regno_clobbered_p): Likewise. + * reload1.c (replace_pseudos_in_call_usage): Likewise. + (reload_combine): Likewise. + + * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings. + * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix + warnings. + * bitmap.c (bitmap_operation): Change user. + * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. + +2001-07-10 Eric Christopher + + * config/mips/mips.c (override_options): Fix typo. + +2001-07-09 Stan Shebs + + * target.h (struct gcc_target): New fields init_builtins and + expand_builtin. + * target-def.h (TARGET_INIT_BUILTINS): New macro. + (TARGET_EXPAND_BUILTIN): New macro. + (TARGET_INITIALIZER): Add them. + * builtins.c: Include target.h. + (expand_builtin): Use targetm.expand_builtin. + (default_init_builtins): New function. + (default_expand_builtin): New function. + * expr.h (default_init_builtins): Declare. + (default_expand_builtin): Declare. + * c-common.c (c_common_nodes_and_builtins): Use + targetm.init_builtins. + * defaults.h (MD_INIT_BUILTINS): Remove. + * Makefile.in (builtins.o): Depend on target.h. + + * config/arm/arm.c (TARGET_INIT_BUILTINS): Define. + (TARGET_EXPAND_BUILTIN): Define. + * config/arm/arm.h (MD_INIT_BUILTINS): Remove. + (MD_EXPAND_BUILTIN): Remove. + + * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define. + (TARGET_EXPAND_BUILTIN): Define. + (c4x_init_builtins): Make endlink arg a local. + (c4x_print_operand): Fix typos in adjust_address usages. + * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl. + * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove. + (MD_EXPAND_BUILTIN): Remove. + + * config/i386/i386.c (TARGET_INIT_BUILTINS): Define. + (TARGET_EXPAND_BUILTIN): Define. + (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins. + (ix86_init_builtins): Call new function only if TARGET_MMX. + * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare. + * config/i386/i386.h (MD_INIT_BUILTINS): Remove. + (MD_EXPAND_BUILTIN): Remove. + + * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define. + (TARGET_EXPAND_BUILTIN): Define. + * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove. + (MD_EXPAND_BUILTIN): Remove. + + * doc/tm.texi: Document these changes. + +2001-07-09 Diego Novillo + + * basic-block.h (tree_node): Forward declare if needed. + (struct basic_block_def): Add fields 'head_tree' and 'end_tree'. + (BLOCK_HEAD_TREE): Define. + (BLOCK_END_TREE): Define. + (struct loops): Rename field 'tree' to 'tree_root'. + * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and + 'end_tree'. + (flow_loops_tree_build): Rename reference to field 'tree' to + 'tree_root'. + (flow_loops_level_compute): Ditto. + * predict.c (estimate_bb_frequencies): Ditto. + * tree.h (struct tree_common): Add field 'aux'. + +2001-07-09 Stan Shebs + + * config/darwin.c (darwin_encode_section_info): Don't mark any + DECL_EXTERNAL node as defined. + +2001-07-09 John David Anglin + + * pa.c (pa_init_machine_status, pa_mark_machine_status, + pa_free_machine_status, hppa_init_pic_save): Delete. + (hppa_pic_save_rtx): New. Use get_hard_reg_initial_val. + (hppa_profile_hook): Use hppa_pic_save_rtx. + * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX, + hppa_init_pic_save): Delete. + (hppa_pic_save_rtx): Declare. + * pa.md (call, call_value, sibcall, sibcall_value, + builtin_setjmp_receiver): Use hppa_pic_save_rtx. + +2001-07-09 Kazu Hirata + + * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi. + * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise. + +2001-07-09 Andreas Jaeger + + * output.h: Add declaration of final_forward_branch_p. + + * config/i386/i386.c (output_fix_trunc): Remove unused variable. + + * varray.c: Include errors.h for internal_error and trim_filename + declarations. + + * Makefile.in (varray.o): Add errors.h. + +2001-07-09 Toon Moene + + * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn. + * optabs.c (have_add2_insn): Check whether the add insn chosen + really accepts the operands. (have_sub2_insn): Ditto for sub insn. + * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn. + +Mon Jul 9 13:26:40 2001 Jeffrey A Law (law@cygnus.com) + + * Makefile.in (OBJS): Add ssa-ccp.o + (ssa-ccp.o): Add dependencies. + * toplev.c (DFI_ssa_ccp): New dump file enum. + (dump_file): Add entry for dumping after SSA CCP. + (flag_ssa_ccp): New flag variable. + (f_options): Add -fssa-ccp. + (rest_of_compilation): Run SSA CCP if requested. + * timevar.def (TV_SSA_CCP): New timevar. + * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes. + * doc/gcc.texi (Passes): Add documentation for SSA CCP pass. + Fix minor typo in SSA DCE documentation. + * doc/invoke.texi: Add documentation for new flag -fssa-ccp. + Add documentation for new dump option. Renumber dump files + appropriately. + +Mon Jul 9 21:36:00 CEST 2001 Jan Hubicka + + * emit-rtl.c (gen_highpart_mode): New. + * rtl.h (gen_highpart_mode): Declare. + * sparc.md (insn splitters): Use gen_highpart_mode, whenever the + operand can be VOIDmode constant. + +Mon Jul 9 17:23:10 CEST 2001 Jan Hubicka + + * flow.c (redirect_edge_and_branch_force): New. + (can_fallthru): Ensure that basic blocks are succeeding. + (try_optimize_cfg): Do not delete basic block if it is the last one. + + * flow.c (try_redirect_by_replacing_jump): Do not remove + jumps with side effects, unlink chain on fallthru edge; + set block for new jump instruction; avoid basic block to + over by line number note. + + * flow.c (try_simplify_condjump): Verify that the condjump + is not always falling through. + + Re-install patch: + * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter. + + * flow.c (forwarder_block_p): Fix for fallthru blocks. + (try_redirect_by_replacing_jump): Update properly the count + and frequency information. + +Mon Jul 9 06:41:07 2001 Richard Kenner + + * emit-rtl.c (adjust_address, adjust_address_nv): Handle an + address that is a LO_SUM specially. + * explow.c (plus_constant_wide, case LO_SUM): Deleted. + + * c-lang.c (start_cdtor): Remove extra parameter from start_function. + + * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns. + (operand_subword): Use them. + (change_address_1): Renamed from change_address; new arg VALIDATE. + * expr.h: Reflect above changes; change_address now macro. + * alias.c (canon_rtx): Use replace_equiv_address_nv instead of + making MEM. + * cselib.c (add_mem_for_addr): Likewise. + * expr.c (protect_from_queue, emit_move_insn_1): Likewise. + * regmove.c (try_apply_stack_adjustment): Likewise. + * reload.c (push_reload, make_memloc): Likewise. + * reload1.c (eliminate_regs): Likewise. + * simplify-rtx.c (simplify_replace_rtx): Likewise. + * caller-save.c (setup_save_areas): Use adjust_address_nv instead of + adjust_addess. + * combine.c (make_extraction, simplify_shift_const): Likewise. + (gen_lowpart_for_combine): Likewise. + * cse.c (gen_lowpart_if_possible): Likewise. + * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. + * expr.c (expand_expr, case COMPONENT_REF): Likewise. + * optabs.c (gen_move_insn): Likewise. + * reload1.c (alter_reg): Likewise. + * simplify-rtx.c (simplify_subreg): Likewise. + * stmt.c (expand_anon_union_decl): Likewise. + * recog.c (validate_replace_rtx_1): Likewise. + (expr.h): Include. + * Makefile.in (recog.o): Add $(EXPR_H). + * explow.c (stabilize): Call replace_equiv_address. + * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise. + * final.c (alter_subreg): OFFSET is HOST_WIDE_INT. + +2001-07-03 Andrew Haley + + * expmed.c (store_fixed_bit_field): Don't use a mode bigger than + the mode of the memory location. + +2001-07-09 Bo Thorsen + + * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support. + +2001-07-09 Neil Booth + + * final.c (output_addr_const): Use target opening and + closing parentheses. + * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN + defaults, add to TARGET_ASM_OUT. + * target.h (struct gcc_target): Add open_paren and close_paren. + * doc/md.texi: Update. + * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE, + TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and + TARGET_ASM_CLOSE_PAREN. + * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN): + Override. + * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN): + Override. + * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove. + * config/a29k/a29k.h: Similarly. + * config/alpha/alpha.h: Similarly. + * config/arc/arc.h: Similarly. + * config/arm/aof.h: Similarly. + * config/arm/aout.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/i370/i370.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. + +2001-07-09 Joseph S. Myers + + * doc/c-tree.texi: Document representation of attributes. + +2001-07-08 Joseph S. Myers + + * doc/tm.texi: Update some places for the rename of target to + targetm. Fix typo. + +2001-07-08 Joseph S. Myers + + * target.h (struct gcc_target): Add insert_attributes. + * target-def.h (TARGET_INSERT_ATTRIBUTES): Define. + (TARGET_INITIALIZER): Update. + * tree.c, tree.h (default_insert_attributes): New function. + Update comments on other default functions to refer to targetm, + not target. + * doc/tm.texi (INSERT_ATTRIBUTES): Update to document + TARGET_INSERT_ATTRIBUTES. + (SET_DEFAULT_DECL_ATTRIBUTES): Remove. + * c-common.c (decl_attributes): Use targetm.insert_attributes. + Don't use PRAGMA_INSERT_ATTRIBUTES. + * Makefile.in (c-common.o): Depend on $(TARGET_H). + * c-decl.c (start_decl, start_function): Don't call + SET_DEFAULT_DECL_ATTRIBUTES. + * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define. + * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't + declare. + * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define. + (c4x_check_attribute): Avoid modifying attribute list itself. + (c4x_set_default_attributes): Rename to c4x_insert_attributes. + Make static. + * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define. + * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't + declare. + * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define. + (sh_pragma_insert_attributes): Rename to sh_insert_attributes. + Make static. + * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define. + * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't + declare. + * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define. + (v850_set_default_decl_attr): Rename to v850_insert_attributes. + Adjust parameters. Make static. + +2001-07-08 Joseph S. Myers + + * c-common.c (decl_attributes): Only take a single attributes + parameter. + * c-common.h (decl_attributes): Update prototype. + * c-decl.c (start_decl, start_function): Only take a single + attributes parameter. Update calls to decl_attributes. + (finish_struct, finish_enum): Update calls to decl_attributes. + (push_parm_decl): Expect unified list of attributes. Update call + to decl_attributes. + * c-parse.in (fndef, initdcl, notype_initdcl, nested_function, + notype_nested_function, component_declarator, + component_notype_declarator, label): Update calls to + decl_attributes. + (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute + lists that are passed to push_parm_decl. + * c-tree.h (start_function, start_decl): Update prototypes. + * config/sh/sh-protos.h, config/sh/sh.c + (sh_pragma_insert_attributes): Only take a single attributes + parameter. + * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise. + * doc/tm.texi (INSERT_ATTRIBUTES): Update. + * objc/objc-act.c (define_decl, generate_objc_symtab_decl, + build_module_descriptor, generate_static_references, + generate_strings, build_selector_translation_table, + generate_descriptor_table, generate_protocols, + generate_ivars_list, generate_dispatch_table, + generate_protocol_list, generate_category, + generate_shared_structures, really_start_method, add_objc_decls, + generate_classref_translation_entry): Update calls to start_decl + and start_function. + (build_tmp_function_decl, start_method_def): Unify attribute lists + that are passed to push_parm_decl. + +2001-07-08 Neil Booth + + * final.c (no_asm_to_stream): New. + (final_scan_insn): Use target structures for prologue ends + and epilogue starts. + * output.h (no_asm_to_stream): New. + * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE, + TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New. + (TARGET_ASM_OUT): Update. + * target.h (struct gcc_target): New members function_end_prologue + and function_begin_epilogue. + * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused. + * config/alpha/alpha-protos.h (output_end_prologue): Delete. + * config/alpha/alpha.c (output_end_prologue): Rename to + alpha_output_function_end_prologue. Use in target struct + and make static. + * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete. + * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete. + * config/ia64/ia64.c (ia64_output_end_prologue): Rename to + ia64_output_function_end_prologue. Use in target struct + and make static. + (ia64_function_prologue, ia64_function_epilogue): Rename + mistyped prototypes. + * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete. + * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue): + Delete. + * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename + an use in target struct, make static. + * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE): + Delete. + +2001-07-08 Richard Henderson + + * stmt.c (emit_case_nodes): Convert modes properly in low+high test. + +2001-07-08 Richard Henderson + + * config/i386/i386.md: Remove constraints strings from define_split + and define_peephole2 patterns. + (eh_return_si, eh_return_di): Split eh_return_1 for modes. + (eh_return): Use them. + +2001-07-08 Richard Henderson + + * doc/tm.texi (Exception Handling): New subnode of Stack and Calling. + Document MD_FALLBACK_FRAME_STATE_FOR. + +2001-07-07 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): + Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM + elimination. + * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0. + +2001-07-07 Nick Clifton + + * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end + of the label inside NAME as opposed to just the end of NAME. + +2001-07-07 Neil Booth + + * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete. + * config/alpha/alpha.c (alpha_init_machine_status, + alpha_mark_machine_status, alpha_free_machine_status): Delete. + (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS. + (vms_valid_decl_attribute_p): Make static, conditionally compile. + * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete. + +2001-07-06 Stan Shebs + + * target.h (targetm): Rename global from "target", so as not to + conflict with local variables. + * c-decl.c: Ditto. + * c-typeck.c: Ditto. + * final.c: Ditto. + * tree.c: Ditto. + * cp/decl.c: Ditto. + * cp/decl2.c: Ditto. + * cp/typeck.c: Ditto. + * 1750a/1750a.c: Ditto. + * a29k/a29k.c: Ditto. + * arc/arc.c: Ditto. + * arm/arm.c: Ditto. + * avr/avr.c: Ditto. + * clipper/clipper.c: Ditto. + * convex/convex.c: Ditto. + * d30v/d30v.c: Ditto. + * dsp16xx/dsp16xx.c: Ditto. + * elxsi/elxsi.c: Ditto. + * fr30/fr30.c: Ditto. + * h8300/h8300.c: Ditto. + * i370/i370.c: Ditto. + * i386/i386.c: Ditto. + * i860/i860.c: Ditto. + * i960/i960.c: Ditto. + * ia64/ia64.c: Ditto. + * m32r/m32r.c: Ditto. + * m68hc11/m68hc11.c: Ditto. + * m68k/m68k.c: Ditto. + * m88k/m88k.c: Ditto. + * mips/mips.c: Ditto. + * ns32k/ns32k.c: Ditto. + * pa/pa.c: Ditto. + * pdp11/pdp11.c: Ditto. + * romp/romp.c: Ditto. + * rs6000/rs6000.c: Ditto. + * sh/sh.c: Ditto. + * sparc/sparc.c: Ditto. + * vax/vax.c: Ditto. + * we32k/we32k.c: Ditto. + * doc/tm.texi: Update the manual to match. + +2001-07-06 Richard Henderson + + * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of + DWARF2_UNWIND_INFO not just whether it is defined. + +2001-07-06 Diego Novillo + + * combine.c (combine_simplify_rtx): Also recompute 'mode' if the + call to simplify_binary_operation returns a new pattern. + +2001-07-06 Roman Lechtchinsky + + * glimits.h (__SHRT_MAX__): New. + (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX. + (SHRT_MAX): Define in terms of __SHRT_MAX__. + +2001-07-06 Jan van Male + + * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to + avoid warnings. + +2001-07-06 Richard Henderson + + * bitmap.c (bitmap_release_memory): Move adjacent to the + allocation functions. + (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing + the implementation. Binary search for the set bit. + (bitmap_union_of_diff): Allocate the temporary on the stack + instead of using xmalloc. + +2001-07-06 Richard Henderson + + * genrecog.c (validate_pattern): Warn for constraints in + define_{expand,split,peephole2}. Remove strict_low_part + before looking up match_dup. + +2001-07-06 DJ Delorie + + * doc/gcc.texi (Makefile): Rename to be a more general purpose + chapter about various build hints and history. Add section + talking about the various types of native and cross builds. + +2001-07-06 Neil Booth + + * Makefile.in (final.o): Depend on target.h. + * final.c: Include target.h. + (default_function_pro_epilogue): New. + (final_start_function): Use target structure for function prologues. + (final_end_function): Use target structure for function epilogues. + * fold-const.c (real_hex_to_f): Constify s and p. + * output.h (default_function_pro_epilogue): New. + * real.h (real_hex_to_f): Update prototype. + * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE, + TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New. + (TARGET_INITIALIZER): Update. + * target.h (gcc_target): Add struct asm_out. + * doc/tm.texi: Update. + +config: + Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and + TARGET_ASM_FUNCTION_EPILOGUE. Move macro code to functions + in cpu/cpu.c, or rename old functions consistently. Take + a HOST_WIDE INT not an int as the SIZE parameter. Remove now + redundant macros and prototypes. Make new functions static. + + * 1750a/1750a.c: Similarly. + * 1750a/1750a.h: Similarly. + * a29k/a29k-protos.h: Similarly. + * a29k/a29k.c: Similarly. + * a29k/a29k.h: Similarly. + * arc/arc-protos.h: Similarly. + * arc/arc.c: Similarly. + * arc/arc.h: Similarly. + * arm/arm-protos.h: Similarly. + * arm/arm.c: Similarly. + * arm/arm.h: Similarly. + * avr/avr-protos.h: Similarly. + * avr/avr.c: Similarly. + * avr/avr.h: Similarly. + * clipper/clipper-protos.h: Similarly. + * clipper/clipper.c: Similarly. + * clipper/clipper.h: Similarly. + * convex/convex.c: Similarly. + * convex/convex.h: Similarly. + * d30v/d30v-protos.h: Similarly. + * d30v/d30v.c: Similarly. + * d30v/d30v.h: Similarly. + * d30v/d30v.md: Similarly. + * dsp16xx/dsp16xx-protos.h: Similarly. + * dsp16xx/dsp16xx.c: Similarly. + * dsp16xx/dsp16xx.h: Similarly. + * elxsi/elxsi.c: Similarly. + * elxsi/elxsi.h: Similarly. + * fr30/fr30.c: Similarly. + * fr30/fr30.md: Similarly. + * h8300/h8300-protos.h: Similarly. + * h8300/h8300.c: Similarly. + * h8300/h8300.h: Similarly. + * i370/i370-protos.h: Similarly. + * i370/i370.c: Similarly. + * i370/i370.h: Similarly. + * i386/i386.c: Similarly. + * i386/osf1elf.h: Similarly. + * i386/osfrose.h: Similarly. + * i860/i860-protos.h: Similarly. + * i860/i860.c: Similarly. + * i860/i860.h: Similarly. + * i960/i960-protos.h: Similarly. + * i960/i960.c: Similarly. + * i960/i960.h: Similarly. + * ia64/ia64-protos.h: Similarly. + * ia64/ia64.c: Similarly. + * ia64/ia64.h: Similarly. + * m32r/m32r-protos.h: Similarly. + * m32r/m32r.c: Similarly. + * m32r/m32r.h: Similarly. + * m68hc11/m68hc11-protos.h: Similarly. + * m68hc11/m68hc11.c: Similarly. + * m68hc11/m68hc11.h: Similarly. + * m68k/crds.h: Similarly. + * m68k/dpx2.h: Similarly. + * m68k/m68k-protos.h: Similarly. + * m68k/m68k.c: Similarly. + * m68k/m68k.h: Similarly. + * m68k/news.h: Similarly. + * m88k/m88k-protos.h: Similarly. + * m88k/m88k.c: Similarly. + * m88k/m88k.h: Similarly. + * mips/mips-protos.h: Similarly. + * mips/mips.c: Similarly. + * mips/mips.h: Similarly. + * ns32k/merlin.h: Similarly. + * ns32k/ns32k.c: Similarly. + * ns32k/ns32k.h: Similarly. + * ns32k/tek6000.h: Similarly. + * pa/pa-protos.h: Similarly. + * pa/pa.c: Similarly. + * pa/pa.h: Similarly. + * pdp11/2bsd.h: Similarly. + * pdp11/pdp11-protos.h: Similarly. + * pdp11/pdp11.c: Similarly. + * pdp11/pdp11.h: Similarly. + * romp/romp-protos.h: Similarly. + * romp/romp.c: Similarly. + * romp/romp.h: Similarly. + * rs6000/rs6000-protos.h: Similarly. + * rs6000/rs6000.c: Similarly. + * rs6000/rs6000.h: Similarly. + * rs6000/sysv4.h: Similarly. + * sh/sh-protos.h: Similarly. + * sh/sh.c: Similarly. + * sh/sh.h: Similarly. + * sparc/sparc-protos.h: Similarly. + * sparc/sparc.c: Similarly. + * sparc/sparc.h: Similarly. + * vax/vax.c: Similarly. + * vax/vax.h: Similarly. + * vax/vms.h: Similarly. + * we32k/we32k.c: Similarly. + * we32k/we32k.h: Similarly. + +Fri Jul 6 11:47:59 2001 Jeffrey A Law (law@cygnus.com) + + * basic-block.h (first_insn_after_basic_block_note): Declare. + * flow.c (first_insn_after_basic_block_note): Define. Moved + from... + * ssa.c (first_insn_after_basic_block_note): Remove. + * ssa-dce.c (find_inherently_necessary): Consider BARRIERs + necessary. + (ssa_eliminate_dead_code): Properly update the CFG and PHI + nodes when we find a dead conditional branch. Insert BARRIERs + after any blocks with no successors, but which do not have + any BARRIERs. + +2001-07-06 Zack Weinberg + + * varray.c (varray_check_failed): Use internal_error. + +2001-07-05 Andrew Haley + + * Makefile.in (LIB2_DIVMOD_FUNCS): New. + (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS. + * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS. + +2001-07-02 Jason Merrill + + * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool + reference if the target constant is also a SYMBOL_REF. + +2001-07-05 Eric Christopher + + * config/mips/mips.h (MASK_MIPS3900): Remove. + (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV, + MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal. + (TARGET_MIPS3900): Change to use mips_arch. + (TARGET_MIPS4000): New. + (TARGET_MIPS4100): New. + (TARGET_MIPS4300): New. + (TARGET_SWITCHES): Change 3900 and 4650 options to NULL. + (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text + for -mipsX. + (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900. + (ISA_HAS_BRANCHLIKELY): To here. + (CC1_CPU_SPEC): New. + (CC1_SPEC): Use here. Remove 4650 and 3900 options. + (mips_arch_string): Declare. + (mips_arch): Declare. + (TARGET_OPTIONS): Add -march and -mtune. + + * config/mips/mips.c (mips_arch_string): New. + (mips_arch): New. + (override_options): Handle -march for codegen and -mtune + for scheduling. Use mips_arch. Move tx39 target default here. + (mips_parse_cpu): Move error message to override_options. + + * config/mips/r3900.h (TARGET_DEFAULT): Remove. + + * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300. + + * doc/invoke.texi (Option Summary): Add -march and -mtune entries. + (MIPS Options): Ditto. Change mcpu entry to historical text. + +2001-07-05 H.J. Lu (hjl@gnu.org) + + * config/mips/mips.c (mips_parse_cpu): New function to parse + -march=*/-mcpu=*. + +2001-07-05 Jim Wilson + + * config/ia64/lib1funcs.asm: Revert 2001-07-02 change. + * config/ia64/t-ia64: Likewise. + (LIB1ASMFUNCS): Update comment. + +2001-07-05 David Edelsohn + + * doc/install.texi (Install GCC: Binaries): Fix typo. + +2001-07-04 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory + reference using the stack pointer, adjust it since we push Y + temporarily. + ("*ashrsi3"): Likewise. + ("*lshrsi3"): Likewise. + +2001-07-05 Stephane Carrez + + * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address + when -fomit-frame-pointer is used. + +2001-07-05 Jeffrey Oldham + + * flow.c: Reverse Jan Hubicka's patch of 02July2001. + (try_redirect_by_replacing_jump): Reverse updating properly the + count and frequency information. Reverse removing cc0 setter. + (forwarder_block_p): Reverse fixing for fallthru blocks. + +2001-07-05 DJ Delorie + + * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New. + (translate_options): If the above is defined, use it to map + given options to new options. + * doc/tm.texi: Document it. + +2001-07-05 Brad Lucier + Gerald Pfeifer + + * doc/invoke.texi (Optimize Options): Document that -fgcse may + cause programs using computed gotos to run more slowly. + +2001-07-05 Rainer Orth + + * doc/install.texi (Specific): Markup, spelling and typo fixes. + Fixed sorting. + Consistently require binutils 2.11.2, not prereleases. + (Specific, decstation-*): Canonicalize as mips-dec-*. + (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement, + always necessary. + (Specific, m68k-altos): Removed reference to README.altos, deleted. + (Specific, mips-*): Reword MIPS C compiler requirements. + (Specific, powerpc*-*-*): New, mention --with-cpu once. + (Specific, sunv5): Removed, obsolete. + +2001-07-05 Nathan Sidwell + + * dwarf2out.c (output_loc_list): Use an all ones mask for + .text asm output and don't rely on long long + literals. Reformat some long lines. + +2001-07-05 Andreas Jaeger + + * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL + section. + +2001-07-04 Daniel Berlin + + * dwarf2out.c (dwarf2out_define): Update comment. + (dwarf2out_undef): Ditto. + (dwarf2out_start_source_file): Ditto. + (dwarf2out_end_source_file): Ditto. + (dwarf2out_finish): Output DW_MACINFO_end_file for primary file, + since we never call the start/end debug hook for the primary file. + +2001-07-04 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Remove an extra operand + from shll. + +2001-07-04 Nathan Sidwell + + * cppinit.c (remove_dup_dirs): Inform if a system include + directory is being reordered. + * doc/invoke.texi (Directory Options): GCC warns if you hide a + system include. + * doc/cpp.texi (Search Paths): Likewise. + * doc/gcc.texi (Interoperation): Remove information about + -I/usr/include. + +2001-07-04 Nathan Sidwell + + * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter. + (VARRAY_TOP_CHAR_PTR): Likewise. + +2001-07-04 Kaveh R. Ghazi + + * gcc.c (process_command): Don't assign elements of a const char*. + +Wed Jul 4 13:40:02 2001 Richard Kenner + + * emit-rtl.c (change_address): Don't abort if invalid address while + reload is in progress. + +2001-07-04 Daniel Berlin + + * c-lex.c (cb_file_change): Pass line number to + debug_start_source_file. + (cb_undefine): Pass correct line number to debug_undef. + + * toplev.c (debug_start_source_file): Add line number to + parameters. Pass it along to dwarf2out_start_source_file. + (decode_g_option): Stop resetting debug level back to normal when + we change debug formats, unless the current level is + none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than + 3). + + * toplev.h (debug_start_source_file): Add line number to + parameters. + + * dwarf2out.h (dwarf2out_start_source_file): Add line number to + parameters. + + * dwarf2out.c (dwarf2out_start_source_file): Add line number to + parameters. + Output debug_macinfo data for starting file if requested. + (dwarf2out_end_source_file): Output debug_macinfo data for ending + file if requested. + (dwarf2out_define): Output debug_macinfo data for defining a macro + if requested. + (dwarf2out_undef): Output debug_macinfo data for undefining a + macro if requested. + (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name. + (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label. + (macinfo_section_label): New. DWARF2 macro info section label. + (dwarf2out_init): If we want macro info, output the start label + for the section. + (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info + attribute to the compilation unit die pointing to the macro info. + +2001-07-04 Daniel Berlin + + * dwarf2out.c (new_loc_list): Move to inside #ifdef + DWARF2_DEBUGGING_INFO. + (add_loc_descr_to_loc_list): Ditto. + (output_loc_list): Ditto. + Also, fix thinko in curr not being initialized. + (gen_internal_sym): Ditto. + +Wed Jul 4 13:40:02 2001 Richard Kenner + + * emit-rtl.c (replace_equiv_address): New function. + * expr.h (replace_equiv_address): New declaration. + * explow.c (validize_mem): Call it instead of change_address and + also call if -fforce-addr and address is constant. + * expr.c: Replace more calls to change_address with adjust_address + and/or replace_equiv_address or to validize_mem. + * function.c, regmove.c, config/alpha/alpha.c: Likewise. + * config/arm/arm.md, config/clipper/clipper.md: Likewise. + * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise. + * config/i370/i370.md, config/i860/i860.md: Likewise. + * config/i960/i960.md, config/mips/mips.c: Likewise. + * config/mips/mips.md, config/pa/pa.md: Likewise. + * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.md, config/sh/sh.md: Likewise. + +2001-07-04 Kaveh R. Ghazi + + * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA. + + * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a + function. + +2001-07-04 Joseph S. Myers + + * doc/include: New directory. + * doc/fdl.texi: Move to doc/include/fdl.texi. + * doc/texinfo.tex: Move to doc/include/texinfo.tex. + * doc/include/funding.texi, doc/include/gpl.texi: New files. + * doc/gcc.texi: Use funding.texi and gpl.texi. + * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info, + $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi): + Update dependencies and use -I $(docdir)/include. + +2001-07-04 Anthony Green + + * config/v850/t-v850 (v850-c.o): Add missing dependencies. + +2001-07-04 Gerald Pfeifer + + * doc/install.texi (sparc64-*-*): Remove garbage. + +Wed Jul 4 09:07:44 2001 Jan van Male + + * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS): + Fix typo in last change to use adjust_address. + +2001-07-04 Gerald Pfeifer + + * doc/install.texi (Specific): Update information for *-*-solaris*. + +Tue Jul 3 22:33:15 2001 Richard Kenner + + * explow.c (plus_constant_wide): Reinitialize Y for restart. + +2001-07-03 Stan Shebs + + * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove + case for flag_no_mach_text_sections. + (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION. + * config/darwin.c (flag_no_mach_text_sections): Remove. + * config/darwin-protos.h (darwin_init_pragma): Remove decl. + +Tue Jul 3 15:35:52 2001 Richard Kenner + + * explow.c (plus_constant_wide, case PLUS): Call find_constant_term + and avoid checking for constant as first operand. + * recog.c (find_constant_term_loc): No longer static. + (adj_offettable_operand): Delete. + * rtl.h (adj_offsettable_operand): Delete declaration. + (find_constant_term): Add declaration. + * caller-save.c: Replace calls to adj_offsettable_operand with calls + to adjust_address. + * config/arm/arm.c, config/c4x/c4x.c: Likewise. + * config/clipper/clipper.md, config/h8300/h8300.c: Likewise. + * config/i386/i386.c, config/i386/i386.md: Likewise. + * config/i860/i860.c, config/i960/i960.c: Likewise. + * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise. + * config/m68k/m68k.c, config/m68k/m68k.md: Likewise. + * config/m88k/m88k.md, config/mcore/mcore.c: Likewise. + * config/mips/mips.c, config/mips/mips.md: Likewise. + * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise. + * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise. + * config/pa/pa.c, config/pdp11/pdp11.c: Likewise. + * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise. + * config/vax/vax.md, config/ns32k/ns32k.c: Likewise. + * config/ns32k/ns32k.md: Likewise. + +2001-07-03 Zack Weinberg + + * rtl.c (copy_rtx): Handle 'T' format letter. + * gensupport.c (collect_insn_data): Likewise. + * print-rtl.c (print_rtx): Print 'T' slots like 's'. + +2001-07-03 Nick Clifton + + * doc/invoke.texi (Directory Options): Specifiy range for in + -B option. Use 'dir' not 'foo' as example directory name. + +2001-07-03 Rainer Orth + + * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. + Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275. + +2001-07-03 Joseph S. Myers + + * doc/cppinternals.texi: Improve formatting and logical markup. + +2001-07-03 Andreas Jaeger + + * Makefile.in (insn-recog.o): Add dependency on reload.h. + + * genrecog.c (write_header): Include reload.h for prototypes in + insn-recog.c. + +2001-07-03 Neil Booth + +config: + * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE, + VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + * i386/i386-protos.h (i386_pe_valid_decl_attribute_p, + i386_pe_valid_type_attribute_p): Add. + * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets. + * i386/winnt.c (i386_valid_decl_attribute_p): Return directly. + +Mon Jul 2 21:52:19 2001 Richard Kenner + + * explow.c (plus_constant_wide, case LO_SUM): New case. + (plus_constant_for_output_wide): Delete. + * rtl.h (plus_constant_for_output): Delete. + * alias.c (canon_rtx, init_alias_analysis): Call plus_constant + instead of plus_constant_for_output. + * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise. + * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise. + * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise. + * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise. + * config/sparc/sparc.md: Likewise. + Convert some change_address calls to adjust_address. + +2001-07-03 Joseph S. Myers + + * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi, + doc/rtl.texi, doc/tm.texi: Improve formatting. Improve + documentation of -std and -Wwrite-strings. + +2001-07-02 Geoffrey Keating + + * cse.c (canon_hash): Don't register registers in very small + register classes, as extending their lifetime might cause + reload to fail. + +Mon Jul 2 23:14:00 CEST 2001 Jan Hubicka + + * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter. + + * flow.c (forwarder_block_p): Fix for fallthru blocks. + (try_redirect_by_replacing_jump): Update properly the count + and frequency information. + +Mon Jul 2 14:20:13 2001 Jeffrey A Law (law@cygnus.com) + + * toplev.c (dump_file_index): Move SSA dumps just after first + jump dump. + (dump_file): Corresponding changes. + (rest_of_compilation): Move SSA path to just after the first + jump pass. + * doc/gcc.texi (Passes): Update due to movement of SSA path. + * doc/invoke.texi: Update dump file #s as they were completely + out of date with reality. + +2001-07-02 Geoffrey Keating + + * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE. + + * expr.c (emit_move_insn_1): Deal with non-default + STACK_PUSH_CODE. + + * expr.c (emit_single_push_insn): Fix warning. + +2001-07-02 Toshiyasu Morita + + * expr.c (emit_move_insn_1): Avoid modifying + cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined. + +Mon Jul 2 15:33:31 2001 Richard Kenner + + * emit-rtl.c (adjust_address): New function. + * expr.h (adjust_address): Add declaration. + * builtins.c: Replace some calls to change_address with calls to it + or to validize_mem. + * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise. + * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise. + * config/arm/arm.c, config/convex/convex.c: Likewise. + * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise. + * config/i386/i386.c, config/i386/i386.md: Likewise. + * config/ia64/ia64.c, config/ia64/ia64.md: Likewise. + * config/m32r/m32r.c, config/m68k/m68k.md: Likewise. + * config/m88k/m88k.c, config/mips/mips.md: Likewise. + * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise. + * config/sh/sh.c, config/sparc/sparc.md: Likewise. + +2001-07-02 Jim Wilson + + * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment. + +2001-07-02 Steve Ellcey + + * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore. + * config/ia64/lib1funcs.asm: Change macro names to match t-ia64. + +2001-07-02 Zack Weinberg + + * cppinit.c (lang_defaults): New table. + (set_lang): Just read from lang_defaults into the live options + structure. + +2001-07-02 Zack Weinberg + + * Makefile.in (doc): Depend on $(GENERATED_MANPAGES). + * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1. + * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed. + +2001-07-02 Rainer Orth + + * doc/install.texi: Various spelling and markup fixes. + (Installing GCC): Component specific installation instructions are + gone. + Fix reference. + Warn about removing old install dir in the presence of shared libs. + (Configuration): Invoke with options target to match configure + --help. + Consistently refer to gas, gld pathnames. + Invert --enable-multilib documentation. + Remove references to old compiler versions. + +Mon Jul 2 12:50:51 2001 Richard Kenner + + * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags. + +2001-07-02 Rainer Orth + + * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5 + section. + (Specific, mips*-sgi-irix5): Note IDO download. + Reworded MIPS C hints. + Use GNU as instead of GAS. + Markup fixes. + Removed SGI Freeware reference, IRIX 6 only. + (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete. + Note N64 library requirement/workaround. + Update O32 hints. + Complete list of structure passing bug victims. + +2001-07-02 Gerald Pfeifer + + * doc/install.texi: Remove CVS Id. + +2001-07-02 Andreas Jaeger + + * ssa-dce.c (note_inherently_necessary_set): Add unused attribute. + (find_inherently_necessary): Remove unused variable. + +2001-07-02 Nathan Sidwell + + * c-common.h (TDI_inlined): New ast dump phase. + (dump_flag_name): New function. + * c-dump.c (dump_files): Add inlined phase. + (dump_flag_name): Define. + * doc/invoke.texi (-fdump-ast-inlined): Document. + +Mon Jul 2 06:29:36 2001 Richard Kenner + + * stor-layout.c (layout_decl): Revert change to handling of alignment + in packed types. + +Sun Jul 1 11:53:52 2001 Richard Kenner + + * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl + for FIELD_DECL. + +2001-07-01 Geoffrey Keating + + * doc/tm.texi (FUNCTION_ARG): Document that the last call + is special. + +2001-07-01 Nathan Sidwell + + * tlink.c (recompile_files): Remove COMPILER_PATH and + LIBRARY_PATH from the environment. + +2001-07-01 Zack Weinberg + + * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT, + RID_LAST_PQ. Move RID_FIRST_PQ down with the other FIRST/LAST + enumerators. + (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros. + + * c-parse.in (OBJC_STRING): Kill. + (objc_string): Decompose to [objc_string] '@' STRING. + (reswords): Take the leading '@' off all the Objective-C keywords. + (objc_rid_sans_at): Kill. + (init_reswords): Don't initialize it. + (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD. + (_yylex): Kill reconsider label. Look ahead one token after + an '@'; if we get an identifier, check whether it's an + Objective-C @-keyword. If so, return the keyword. Otherwise, + put back the token and return the '@' as a terminal. + + * cpplib.c (lex_macro_node): Remove unnecessary check for + leading '@' on identifier. Clarify control flow and commentary. + +Sun Jul 1 11:53:52 2001 Richard Kenner + + * cse.c (new_label_ref): Variable deleted. + (insert): Remove set of new_label_ref. + (check_for_label_ref): New function. + (cse_basic_block): Don't check new_label_ref; call check_for_label_ref. + +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-2002 b/gcc/ChangeLog-2002 new file mode 100644 index 00000000000..370ff0efbdd --- /dev/null +++ b/gcc/ChangeLog-2002 @@ -0,0 +1,35988 @@ +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 + -fsyntax-only. + +Fri Jun 28 17:22:37 2002 Denis Chertykov + Frank Ch. Eigler + Matthew Green + Richard Henderson + Dave Hudson + Jeff Johnston + Alan Lehotsky + Bernd Schmidt + Graham Stott + + * doc/extend.texi: Add ip2k port to description of attribute + naked. + * doc/install.texi (Specific): Add ip2k description. + * doc/install-old.texi (Configurations): Add ip2k to possible + cpu types. + * doc/md.texi: Document ip2k constraints. + * config/ip2k/crt0.S: New file. + * config/ip2k/ip2k-protos.h: New file. + * config/ip2k/ip2k.c: New file. + * config/ip2k/ip2k.h: New file. + * config/ip2k/ip2k.md: New file. + * config/ip2k/libgcc.S: New file. + * config/ip2k/t-ip2k: New file. + +2002-06-30 Hans-Peter Nilsson + + * config/mmix/mmix.md ("return"): New pattern. + * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN) + (TARGET_USE_RETURN_INSN): New macros. + (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN. + (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit. + * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing. + (MMIX_POP_ARGUMENT): New macro. + (mmix_target_asm_function_prologue): When no epilogue is executed, + just emit a blank line. Use MMIX_POP_ARGUMENT with final POP insn. + (mmix_print_operand) : New case. + (mmix_print_operand_punct_valid_p): Match '.'. + (mmix_use_simple_return): New function. + * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype. + * doc/invoke.texi (Option Summary) : Add + -msingle-exit, -mno-single-exit. + (MMIX Options): Ditto. + +2002-06-30 Aldy Hernandez + + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos. + +2002-06-30 Kaveh R. Ghazi + + * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses. + +2002-06-30 Alan Modra + + * unroll.c (loop_iterations): Handle EQ loops. + +2002-06-29 David Edelsohn + + * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR + constraint in define_expand, not splitter. + Formatting. + +2002-06-29 Aldy Hernandez + + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use + build_function_type_list instead of build_function_type. + + * config/ia64/ia64.c (ia64_init_builtins): Same. + + * config/alpha/alpha.c (alpha_init_builtins): Same. + + * config/rs6000/rs6000.c (altivec_init_builtins): Same. + + * config/arm/arm.c (arm_init_builtins): Same. + + * tree.h: Add build_function_type_list prototype. + + * tree.c (build_function_type_list): New. + +2002-06-29 Kaveh R. Ghazi + + * collect2.c (scan_prog_file): Fix typo in message. + +2002-06-28 Aaron Lehmann + + * fold-cont.c: Remove unused CHARMASK. + +2002-06-29 Neil Booth + + PR preprocessor/7150 + * cppmain.c (scan_translation_unit_trad): Simplify. + * cppmacro.c (cpp_scan_nooutput): Handle traditional case. + +2002-06-29 Neil Booth + + * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS. + Don't use CPP_PREDEFINES. + * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New. + Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES. + * config/i386/djgpp.h, config/i386/i386-coff.h, + config/i386/i386-interix.h, config/i386/i386-interix3.h, + config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h, + config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h, + config/i386/uwin.h: Similarly. + +2002-06-29 Herman A.J. ten Brugge + + * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and + flag_inline_trees to enable inlining. + +2002-06-28 Phil Edwards + + * configure.in (gcc_gxx_include_dir): Change to match versioned + C++ headers if --enable-version-specific-runtime-libs is used. + * configure: Regenerate. + +2002-06-28 Jan Hubicka + + * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move. + +2002-06-28 Stephen Clarke + + * combine.c (combine_simplify_rtx): Pass the mode of the + shift count, not the shift operation when trying to simplify + a shift on a SHIFT_COUNT_TRUNCATED target. + +2002-06-28 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to + avoid the auto increment addressing modes. + ("*subsi3"): Likewise. + (split for add/sub on address): For 68HC12 push the value on + the stack and do the operation with a pop. + +2002-06-28 Neil Booth + + * cpplib.c (_cpp_handle_directive): Move #define-specific + code to the #define handler... + (do_define): ...here. + (lex_macro_node): No longer a need to check for comments here. + +2002-06-28 Stephane Carrez + + * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define. + * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options): + Declare. + * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New, + do not reorder basic blocks at the end when optimizing for size. + +2002-06-28 Stephane Carrez + + * config/m68hc11/m68hc11.c (autoinc_mode): New function. + (m68hc11_make_autoinc_notes): New function. + (m68hc11_split_move): Be very cautious when spliting a move with + auto increment/decrement modes because this may result in incompatible + directions; add REG_INC notes to the resulting insn for CSE reg. + +2002-06-28 Stephane Carrez + + * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant + can be a valid address. + +2002-06-28 Aldy Hernandez + + * config/rs6000/rs6000.c: Remove unusued variables from last + patch. + +2002-06-27 Aldy Hernandez + + Revert: + * config/rs6000/rs6000.c (rs6000_override_options): Move + *SUBTARGET_OVERRIDE_OPTIONS before the -m options. + +2002-06-27 Aldy Hernandez + + * config/rs6000/rs6000.c (altivec_expand_builtin): Move + lvx/stv/dst builtins... + (altivec_expand_ld_builtin): ...to here. + (altivec_expand_st_builtin): ...here. + (altivec_expand_dst_builtin): ...and here (respectively). + +2002-06-28 Bob Wilson + + * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment. + +2001-06-08 Bernd Schmidt + + * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE + subregs. + * recog.c (general_operand, register_operand): Disallow them. + +2002-06-28 Neil Booth + + PR preprocessor/7138 + * cpplib.c (_cpp_handle_directive): Do traditional + preparation after setting state.angled_headers. + * cpptrad.c (scan_out_logical_line): Fix potential + quote bug. + +2002-06-27 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_override_options): Move + *SUBTARGET_OVERRIDE_OPTIONS before the -m options. + +2002-06-27 Bob Wilson + + * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's. + (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start, + zero_cost_loop_end): Remove unnecessary "parallel" from insns. + +2002-06-27 Roger Sayle + + * config/d30v/d30v.h: Remove commented out STACK_REGS #defines. + * config/stormy16/stormy16.h: Likewise. + + * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef + with #define. + +2002-06-26 Gerald Pfeifer + + * doc/install.texi (Binaries): Add Sinix/Reliant Unix. Move + Hitachi entry. Make punctuation more consistent. + +2002-06-27 Matt Kraai + + * doc/install.texi: Change ` bit' to `-bit'. + * doc/md.texi: Change `-bits' to `-bit'. + * doc/tm.texi: Change `-bits' to ` bits'. + +2002-06-27 Daniel Berlin + + * gcse.c (hoist_code): Rewrite to only get list of dominated + blocks once per BB. Also fix reversed test (by removing need for + the test at all). + +2002-06-27 Neil Booth + + * cpphash.h (_cpp_set_trad_context): Remove. + * cpplib.c (prepare_directive_trad): Do nothing for #define. + (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context. + * cpptrad.c: Update comments. + (_cpp_read_logical_line_trad): Let scan_logical_line handle + updating the current context. + (scan_logical_line): Update the current context. + (_cpp_create_trad_definition): Similarly. + (_cpp_set_trad_context): Remove. + +2002-06-27 Neil Booth + + PR preprocessor/7070 + * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF. + +2002-06-26 Bob Wilson + + * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare. + config/xtensa/xtensa.c (xtensa_return_addr): New function. + config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr. + config/xtensa/xtensa.md (fix_return_addr): New pattern. + +2002-06-26 Kaveh R. Ghazi + + * mips.c (coprocessor_operand, coprocessor2_operand, + symbolic_operand): Move prototypes from here... + * mips-protos.h (coprocessor_operand, coprocessor2_operand, + symbolic_operand): ...to here. + +Wed Jun 26 16:32:57 2002 J"orn Rennecke + + * config/sh/crt1.asm: remove _stack label definition + and sentinel value. + +2002-06-26 Kaveh R. Ghazi + + * varasm.c: Include real.h before output.h. + +2002-06-26 Aldy Hernandez + + * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to + check for TARGET_ALTIVEC. + +2002-06-26 Nathanael Nerode + + * config.gcc (vax-*-vms*): Make obselete. + +2002-06-25 Kaveh R. Ghazi + + * gcc.c (warn_std): Delete. + +2002-06-25 Loren J. Rittle + + * doc/extend.texi: Fix formatting of last checkin. + +2002-06-25 Rainer Orth + + * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading + underscore from __IEEE_FP and __IEEE_FP_INEXACT. + +2002-06-25 Aldy Hernandez + + * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document + discrepancies from motorola's documentation. + +Tue Jun 25 21:51:13 2002 J"orn Rennecke + + * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume + GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD. + + * config/sh/lib1funcs.asm (udivdi3): Make first divide step + produce a 32 bit result before normalization, then normalize with a + left shift. Compute approximative error of 2nd reciprocal + approximation in 2's complement. Fix mask generation from upper + longword of second divide stage result. + For large divisor, fix shift count used to truncate first stage + divide result; make decision if to adjust upwards based on comparison + of higher parts of normalized values. + (udivdi): Likewise. Undo normalization of result for large divisor + case. + +2002-06-25 David S. Miller + + * config/sparc/sparc.md: Change \\{t,n} to \{t,n}. + +2002-06-25 Neil Booth + + * cpplib.c (do_include_common): Revert to correct line number + if -traditional. + * cpptrad.c (scan_out_logical_line): Treat null directive as + white space. Invlidate MI optimization for non-whitespace + text outside a directive. + +2002-06-24 Kaveh R. Ghazi + + * Makefile.in (SHELL): Set to @SHELL@. + * fixinc/Makefile.in (SHELL): Likewise. + + * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2, + fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate + initialization. + +2002-06-24 Jeff Law + + * flow.c (propagate_one_insn): When removing an insn + with a REG_LIBCALL note but not the entire libcall sequence, + delete the associated REG_RETVAL note. + +Mon Jun 24 21:05:09 2002 J"orn Rennecke + + * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations. + (udivsi3): Likewise. Rewrite SH1 implementation. + (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions. + * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants. + (udivsi3_i1_media, divsi3_i1_media): Fix clobber list. + * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add. + (_moddi3): Likewise. + + * lib1funcs.asm (ic_invalidate): Add data cache line writeback. + + * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK + arguments into account for stack_regs. + +2002-06-24 Matt Kraai + + * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */' + in examples. + +2002-06-24 Art Haas + + * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'. + * doc/tm.texi (Frame Layout): Likewise. + +2002-06-20 Steve Ellcey + + * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no. + Set float_format to i128. + +2002-06-24 David S. Miller + + * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the + 32-bit ABI libfuncs to NULL. + + * config/sparc/sparc.md: Use define_insn_and_split. Use braced + strings instead of quoted strings for code blocks. + + * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift + optabs if op1 is const0_rtx. + + * Makefile.in (GTFILES): Add basic-block.h + * basic-block.h (label_value_list, tail_recursion_label_list): + Mark with GTY. + +2002-06-24 Neil Booth + + * cpptrad.c (scan_out_logical_line): Check recursing only when + we know we have a macro invocation in the function-like case. + Only call _cpp_handle_directive if we know we have a good + directive, or we want to reject a bad directive. + +2002-06-24 Alan Modra + + * doloop.c (doloop_valid_p): Correct comment. + (doloop_modify_runtime ): Simplify. + (doloop_modify_runtime ): Don't emit code when NE. + +Thu Jun 20 00:26:53 2002 Denis Chertykov + + * config.gcc: Add support for ip2k. + +2002-06-23 Jan Hubicka + Jeff Law + + * function.h (struct emit_status): Clarify potential contents + of regno_reg_rtx array. + * integrate.c (copy_rtx_and_substitute): Update comments. Make + sure entry in regno_reg_rtx is a REG before checking REG_POINTER. + + * reg-stack.c (convert_regs_exit): Push the registers to stack in + proper order. + +2002-06-22 Ulrich Weigand + + PR middle-end/6963 + * function.c (assign_stack_temp_for_type): Do not return + the same MEM rtx for multiple uses of a stack slot. + +2002-06-22 David S. Miller + + PR target/6841 target/6770 target/6719 + * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return + NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or + GENERAL_OR_EXTRA_FP_REGS. + +2002-06-22 Neil Booth + + * cpptrad.c (struct fun_macro): Add line number. + (scan_out_logical_line): Set it, and use it to report unterminated + macro invocations. + +2002-06-21 Kaveh R. Ghazi + + * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND, + VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD, + DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE, + DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT, + REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF, + REGEXP_ONEOF, check_name): Const-ify. + +2002-06-21 Matt Thomas + + * config/vax/vax.c (vax_output_function_prologue): Use + REGISTER_PREFIX. Fix some indentation. + * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[]. + (VAX_ISTREAM_SYNC): Define. + (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC. Move the + i-stream sync to the end. + (REGISTER_PREFIX): Define as "". + (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX. + +2002-06-21 Jason Thorpe + + * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete + configurations. + +2002-06-21 Kaveh R. Ghazi + + * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes, + tree_node_kind_names): Wrap in GATHER_STATISTICS macro. + +2002-06-21 Matt Thomas + + * config/vax/netbsd.h: Adjust a comment. + (TARGET_DEFAULT): Redefine as 0. + +2002-06-21 Richard Henderson + + * bb-reorder.c (make_reorder_chain_1): Search harder for the + vax casesi fallthru edge. + * cfglayout.c (cleanup_unconditional_jumps): Use + redirect_edge_succ_nodup. Do not delete ADDR_VEC insns as dead. + * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection + block after ADDR_VEC. + +2002-06-21 Rainer Orth + + * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. + +2002-06-21 Neil Booth + + * cpperror.c (cpp_error): For traditional CPP, default to + diagnostics on pfile->line. + * cpplib.c (prepare_directive_trad): Set line number for + diagnostics for #define too. + * cpptrad.c (skip_whitespace): Skip comments properly. + (_cpp_expansions_different_trad): Initialize quote2. + +2002-06-21 Hans-Peter Nilsson + + * config/mmix/mmix.md: Change GNU CC to GCC in file header comment. + * config/mmix/mmix.h: Ditto. + * config/mmix/mmix-protos.h: Ditto. + * config/mmix/mmix.c: Ditto. Fix typo in comment. + * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header + comment. Comment extra CC modes. + +2002-06-20 Jan Hubicka + + * cfglayout.c (scope_to_insns_initialize): Call set_block_levels. + (scope_to_insns_finalize): Do not call set_block_levels; handle + sequences. + (choose_inner_scope): New. + * rtl.h (choose_inner_scope): Declare. + +2002-06-20 John David Anglin + + * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to + HOST_WIDE_INT. + * pa.c (pa_asm_output_mi_thunk): Likewise. + (n_deferred_plabels): Change type to size_t. + (output_deferred_plabels, output_call): Use size_t instead of int. + +2002-06-20 Richard Henderson + + PR target/4041 + * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate + pattern and adjust constraints for coldfire. + +2002-06-20 Richard Henderson + + * explow.c (probe_stack_range): Use gen_rtx_fmt_ee. + +2002-06-20 Chris Demetriou + + * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets. + +2002-06-20 Chris Demetriou + + * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use. + +2002-06-20 Stan Shebs + + * dominance.c: Include errors.h instead of error.h. + +2002-06-20 Neil Booth + + * cppexp.c (cpp_interpret_integer): Don't force traditional + numbers to be unsigned. + * cpplib.c (prepare_directive_trad): Set line number for + diagnostics. + * cpptrad.c (scan_out_logical_line): Continue scanning out + at start of buffer. + * gcc.c (trad_capable_cpp): Use cc1 always. + +2002-06-20 Jeffrey Law + + * i386.h (TARGET_DEFAULT): Do not turn on frame pointer + elimination in leaf functions by default yet. + +2002-06-20 Richard Sandiford + + * combine.c (make_extraction): Reapply to the argument of an ASHIFT. + +2002-06-20 Rainer Orth + + * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for + multilibs. + * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. + Fixes PR other/6836. + +Thu Jun 20 19:42:21 CEST 2002 Jan Hubicka + Pavel Nejedly + + Mon Jun 10 20:42:34 CEST 2002 Jan Hubicka + + * basic-block.h: Do not include et-forest.h + (dominance_info): Declare as struct dominance-info. + * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before + deleting block. + * dominance.c (struct dominance_info): Define. + (BB_NODE, SET_BB_NODE): New macros. + (bb_hash_func, bb_eq_func): Kill. + (calculate_dominace_info, free_dominacne_info, set_immediate_dominator, + nearest_common_dominator, dominated_by_p, recount_dominator, + add_to_dominance_info, delete_from_dominance_info): update for new + representation. + (get_dominated_by, redirect_immediate_dominators): Rewrite using + enumerate_sons. + * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap, + find_if_case_1, find_if_case_2): Remove killed blocks from dominance + structure. + + * et-forest.h: Update copyright; revamp all function to operate on + nodes + (et_forest_value): Kill. + (et_forest_enumerate_sons, et_forest_node_value): New. + * et-forest.c: Update copyright. + * et-forest.h: Update copyright; revamp all function to operate on + nodes + (et_forest_value): Kill. + (et_forest_enumerate_sons, et_forest_node_value): New. + + Thu Jun 6 22:43:43 CEST 2002 Jan Hubicka + + * basic-block.h: Inlude et-forest.h + (basic_block_def): Kill dominator. + (dominance_info): New type. + (loops): Use dominace_info. + (dominace handling functions): Take dominace_info as argument + instead of bitmaps. + (create_preheader): Likewise. + * cfg.c (entry_exit_blocks): Kill dominator. + (dump_flow_info): Do not dump dominators. + * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from + dominators. + * cfgloop.c (flow_pre_header_find): Use dominacne_info. + (flow_loops_pre_header_scan, make_forwarder_block, + canonicale_loop_headers, flow_loops_find): Likewise. + * dominance.c: Include error.h + (idoms_to_doms): Kill. + (bb_hash_func, bb_eq_func): New static functions. + (debug_dominace_info): New global function. + (calculate_dominance_info): Use new et forest structure. + (free_dominace_info, get_immediate_dominator, set_immediate_dominator, + get_dominated_by, redirect_immediate_dominators, + nearest_common_dominator, dominated_by_p, verify_dominators, + recount_dominator, iterate_fix_dominators, add_to_dominace_info, + delete_from_dominance_info): New global functions. + * gcse.c (domnators): CHange to dominance_info. + (alloc_hoist_mem): Do not alloc dominators + (free_code_hoist_mem): Use free_dominance_info. + (compute_code_hoist_data): Use dominance_info. + (hoist_code): Likewise. + * ifcvt.c (post_dominators): Likewise. + (find_if_case_2, if_convert): Likewise. + * predict.c (process_note_predictions, process_note_prediction, + estimate-probability): Likewise. + * sched-rgn.c (find_rgns, init_regions): Likewise. + * ssa-dce.c (find_all_control_dependences, fint_control_depemndence, + find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise. + * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers, + find_evaluations, convert_to_ssa): Likewise. + * ssa.h (compute_dominance_frontiers): Likewise. + + Thu Jun 6 22:57:34 CEST 2002 Pavel Nejedly + + * Makefile.in (et-forest.c): Add. + * et-forest.c: New file. + * at-forest.h: New file. + +2002-06-20 Kaveh R. Ghazi + + * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit + array size calculation. + * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root): + Likewise. + + * diagnostic.c (diagnostic_kind_text): Const-ify. + * gengtype.c (lang_names): Likewise. + +Thu Jun 20 17:25:29 CEST 2002 JAn HUbicka + + * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode. + +2002-06-20 Rainer Orth + + * config/sol2.h: New file. + * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h. + (sparc64-wrs-vxworks*): Include it before sparc/sol2.h. + (sparc-*-chorusos*): Likewise. + (sparc-*-elf*): Likewise. + (sparc-*-rtems*, sparc-*-rtemself*): Likewise. + (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise. + (sparc-hal-solaris2*): Likewise. + (sparc-*-solaris2*): Likewise. + (sparclite-*-elf*): Likewise. + (sparc86x-*-elf*): Likewise. + (sparc64-*-elf*): Likewise. + + * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to + config/sol2.h. + (ASM_SPEC): Override config/sol2.h version for now. + Removed obsolete GAS_REJECTS_MINUS_S variant. + (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h. + (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise. + (TARGET_OS_CPP_BUILTINS): Likewise. + Assert system=unix. + (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC. + (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to + config/sol2.h. + (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise. + (ASM_CPU_SPEC): Define. + (SUBTARGET_EXTRA_SPECS): Define. + + * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already + in config/sparc/sol2.h. + (ASM_SPEC): Moved to config/sol2.h. + (CPP_CPU_SPEC): Simplified. + (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for + consistency. + (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC. + (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC, + STARTFILE_ARCH64_SPEC. + (STARTFILE_SPEC): Moved to config/sol2.h + (SUBTARGET_EXTRA_SPECS): Add startfile_arch. + (LINK_ARCH32_SPEC): Moved to config/sol2.h. + (LINK_ARCH64_SPEC): Simplified. + (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support. + (LINK_SPEC): Moved to config/sol2.h + + * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to + config/sol2.h. + Use BITS_PER_WORD for size. + (WINT_TYPE, WINT_TYPE_SIZE): Likewise. + (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise. + (CPP_PREDEFINES): Removed OS-specific part handled by + TARGET_OS_CPP_BUILTINS. + (CPP_SUBTARGET_SPEC): Moved to config/sol2.h. + (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS. + (ASM_SPEC): Moved to config/sol2.h. + (PREFERRED_DEBUGGING_TYPE): Likewise. + (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise. + (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise. + (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version. + (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h + + * config.gcc (i?86-*-solaris2*): Removed obsolete gas support. + * config/i386/sol2gas.h: Removed. + +Thu Jun 20 12:14:01 CEST 2002 Jan Hubicka + + * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns. + +2002-06-16 Aldy Hernandez + + * gcc.c-torture/execute/simd-1.c: New. + + * gcc.dg/simd-1.c: New. + + * doc/extend.texi (Vector Extensions): Document that we can + specify simd types not specifically supported by the hardware. + Document that simd types can be used as function arguments. + Document that signness does make a difference in SIMD types. + Misc cleanups and revisions to the vector extensions section. + + * simplify-rtx.c (simplify_subreg): Simplify subregs of vector + constants. + + * expr.c (vector_mode_valid_p): New. + + * expr.h: Add vector_mode_valid_p. + + * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default. + + * c-common.c (type_for_mode): Always build vector nodes regardless + of VECTOR_MODE_SUPPORTED_P. + (handle_mode_attribute): Error if we can't emulate a nonexisting + vector mode. + (handle_vector_size_attribute): Same. + + * optabs.c (expand_binop): Open-code vector operations. + (expand_unop): Open-code vector unops. + (expand_vector_binop): New. + (expand_vector_unop): New. + + * c-typeck.c (build_binary_op): Allow vectors in binops. + Allow vectors in conditional operatiors. + (build_unary_op): Allow vectors in unary minus. + + * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on + TARGET_ALTIVEC. + +2002-05-20 Richard Henderson + + * c-common.c (c_common_get_alias_set): Correctly handle characters. + Rearrange order of expressions; don't handle vectors here. + * alias.c (get_alias_set): Let vectors match their components. + +2002-06-19 Chris Demetriou + + * config/mips/mips.c (mips_emit_prefetch): Use hints which + match desired locality. + +2002-06-19 Dhananjay R. Deshpande + + * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define. + (h8300_insert_attributes): New. + +2002-06-19 Akim Demaille + + * c-parse.in (initelt: identifier ':' initval): Add an empty + action to fix a type clash. + (aliasdecl, classdef): Add the missing closing `;'. + Whitespace changes. + * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt + $$ = $1 type clashes. + +2002-06-19 Eric Christopher + + * config/mips/mips.c (symbol_operand): New function. + (mips_emit_prefetch): Ditto. + * config/mips/mips-protos.h: Define. + * config/mips/mips.h (ISA_HAS_PREFETCH): Define. + (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS. + (LEGITIMIZE_ADDRESS): Ditto. + * config/mips/mips.md (prefetch, prefetch_si_address, + prefetch_si, prefetch_di_address, prefetch_di): New patterns. + +2002-06-19 Eric Christopher + + * config/fp-bit.h: Add unordered defines for gofast. + +2002-06-19 Vladimir Makarov + + * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, + DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, + DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE, + REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with + checking and without it. + (decl_name, decl_mode_check_failed, regexp_name, + regexp_mode_check_failed): New functions. + (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set, + gen_presence_set, gen_absence_set, gen_automaton, + gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof, + gen_regexp_sequence, gen_reserv, gen_insn_reserv, + automaton_decl_hash, automaton_decl_eq_p): Use the macros. + (find_automaton_decl): Ditto. Set up mode of work_automaton_decl. + (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros. + (find_insn_decl): Ditto. Set up mode of work_insn_decl. + (decl_hash, decl_eq_p): Use the macros. + (find_decl): Ditto. Set up mode of work_decl. + (process_excls, process_presence_absence, process_decls, + check_automaton_usage, process_regexp, process_regexp_decls, + check_usage, loop_in_regexp, check_loops_in_regexps, + process_regexp_cycles, add_advance_cycle_insn_decl, + initiate_states, initiate_excl_sets, + initiate_presence_absence_sets, copy_insn_regexp, transform_1, + transform_2): Use the macros. + (transform_3): Ditto. Check mode before making transformations of + ALLOF. + (regexp_transform_func, transform_insn_regexps, + process_unit_to_form_the_same_automaton_unit_lists, + form_the_same_automaton_unit_lists_from_regexp, + form_the_same_automaton_unit_lists, + process_seq_for_forming_states, process_alts_for_forming_states, + create_alt_states, form_ainsn_with_same_reservs, make_automaton, + form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags, + estimate_one_automaton_bound, compare_max_occ_cycle_nums, + units_to_automata_heuristic_distr, create_ainsns, + units_to_automata_distr, create_automata): Use the macros. + (form_regexp): Ditto. Fix typo in access to fields of ALLOF. + (longest_path_length, min_issue_delay_pass_states, + output_dead_lock_vect, output_tables, output_insn_code_cases, + output_internal_insn_latency_func, output_print_reservation_func, + output_description, output_automaton_units, generate): Use the + macros. + (make_insn_alts_attr): Ditto. Check case when there are not + alternatives in the reservation. + (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr, + make_bypass_attr, form_important_insn_automata_lists, + expand_automata): Use the macros. + +2002-06-20 Tim Josling + + * Makefile.in: Clean up code to check for misspecified languages + in enable-languages. + +2002-06-19 Andrew Pinski + + * cpptrad.c (_cpp_replacement_text_len): initialize len. + +2002-06-19 Jason Merrill + + * Makefile.in (unstrap, restrap): New targets. + (bootstrap): Mention restrap. + +2002-06-19 Matt Kraai + + * except.c (ehl_free): Remove. + + * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of + builtin_define and builtin_define_std. + +2002-06-19 Ian Dall + + * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's. + (sCOND): Restrict operand class so that gcc knows how to reload them. + (bitfield_set): Merge two unnamed insn's using alternatives. + (call_value): Remove constraint on unused uperand. + (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove. + (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove. + + * longlong.h (count_trailing_zeros): Escape newline and beautify. + +2002-06-19 Mark Mitchell + + * Makefile.in (QMTEST_DIR): Simplify definition. + +2002-06-19 Nick Clifton + + * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with + #define. + +2002-06-19 Neil Booth + + * cpphash.h (struct cpp_reader): Make date and time strings. + (_cpp_builtin_macro_text, _cpp_copy_replacement_text, + _cpp_replacement_text_len): New. + * cppinit.c (cpp_create_reader): Update. + (init_builtins): Register appropriate builtins for -traditional-cpp. + * cppmacro.c (new_number_token): Remove. + (_cpp_builtin_macro_text): New. + (builtin_macro): Use it. + (cpp_macro_definition): Update to handle traditional macros. + * cppmain.c (cb_line_change): Don't do column positioning for + traditional output. + * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open. New + state ls_fun_close. + (skip_whitespace): Fix. + (maybe_start_funlike): Don't set state.parsing_args. + (scan_out_logical_line): Remove duplicate error. Use lex_state + rather than state.parsing_args. + (push_replacement_text): Handle builtins. + (_cpp_replacement_text_len, _cpp_copy_replacement_text): New. + +2002-06-18 Hans-Peter Nilsson + Kaveh R. Ghazi + + * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with + attribute __always_inline__. + +2002-06-18 Bob Wilson + + * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic + when generating the call to _mcount. + (NO_PROFILE_COUNTERS): Define. + +2002-06-18 Richard Henderson + + * print-rtl.c (print_rtx): Adjust NOTE argument numbers for + 2002-06-02 change. + +Tue Jun 18 20:53:32 2002 J"orn Rennecke + + * t-sh (MULTILIB_EXCEPTIONS): Set to ml. + config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear. + * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise. + * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise. + + * sh-protos.h (sh_pr_interrupt): Declare. + * sh.c (sh_pr_interrupt): New function. + (print_operand, calc_live_regs, sh_expand_prologue): Use it. + (sh_hard_regno_rename_ok): Likewise. + * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers. + +2002-06-18 Vladimir Makarov + + * rtl.def (DEFINE_AUTOMATON): Add description of new options + `time' and `v'. Fix incorrect description of option `w'. + + * doc/md.texi: Ditto. + + * genautomata.c (TIME_OPTION, V_OPTION): New macros. + (gen_automata_option): Process the new options. + (transform_2, transform_3): Initialize some variables. + (initiate_automaton_gen): Use the new macros. + +2002-06-18 Richard Sandiford + + * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare. + (mips_set_return_address, mips_restore_gp): Declare. + * config/mips/mips.h (struct mips_frame_info): Move to mips.c + (current_frame_info): Remove. + (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset. + * config/mips/mips.c: Remove uses of current_frame_info. + (struct mips_frame_info): Moved from mips.h. Remove 'insns_len'. + (struct machine_function): Add 'frame' and 'insns_len'. + (current_frame_info, zero_frame_info): Remove. + (mips_restore_gp, mips_set_return_address): New. + (mips_initial_elimination_offset): New. + * config/mips/mips.md (exception_receiver): Use mips_restore_gp. + (eh_return define_split): Use mips_set_return_address. + +2002-06-18 Neil Booth + + * cpplib.c (dtable): Update. + (end_directive): Decrement expansion prevention count. + Clear state.in_expression. + (prepare_directive_trad): Set state.in_expression. + Increment expansion prevention count. + * cpptrad.c (enum ls): New. + (_cpp_overlay_buffer): Set overlaid_buffer. + (_cpp_remove_overlay): Use overlaid_buffer. + (_cpp_read_logcial_line_trad): Update buffer when it might + have changed. + (scan_out_logical_line): Handle state transitions for assertions + and defined() in #if, and for funlike invocations including the + directive case. Handle '<' and '>' as a quote mechanism in + #include. Warn about unterminated macro invocations. + * cpphash.h (struct lexer_state): New member in_expression. + (struct cpp_reader): New member overlaid buffer. + +2002-06-18 Hans-Peter Nilsson + + * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype + __always_inline__. + +2002-06-18 Alan Modra + + * config/ia64/ia64.md (doloop_end_internal): Correct rtl. + + * doloop.c (doloop_optimize): Extract pattern from insn. + +2002-06-17 Matt Kraai + + * doc/extend.texi (Function Attributes): Remove `,...' from @var. + +2002-06-17 Jeff Law + + * libgcc2.c: Do not include symcat.h or machmode.h. + +2002-06-17 Richard Henderson + + PR target/6922 + * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND. + +2002-06-17 Tom Tromey + + * dwarfout.c: Include function.h. + +2002-06-17 Andreas Schwab + + * print-rtl.c (print_rtx): Print space before vector, not after. + (debug_rtx): Clear sawclose before printing. + (debug_rtx_list): Print newline after each list element. + (debug_rtx_range): Likewise. + +2002-06-17 Richard Henderson + + * function.h (struct function) [funcdef_no]: Rename profile_label_no. + (current_function_funcdef_no): Similarly. + * function.c (funcdef_no): Similarly. + (prepare_function_start): Set current_function_funcdef_no. + (expand_function_start): Don't set current_function_profile_label_no. + * dwarf2out.h (current_funcdef_number): Remove. + * dwarf2out.c (current_funcdef_number): Remove. Replace with + current_function_funcdef_no throughout. + * dwarfout.c, vmsdbgout.c: Similarly. + * except.c (sjlj_funcdef_number): Remove. + (sjlj_emit_function_enter): Use current_function_funcdef_no instead. + (output_function_exception_table): Likewise. + * final.c (profile_function): Use current_function_funcdef_no + instead of current_function_profile_label_no. + +2002-06-17 Vladimir Makarov + + * sched-ebb.c (init_ready_list): Check INSN_P first. + +Mon Jun 17 17:26:15 2002 J"orn Rennecke + + * sh.md (divsi3): Update way how to find insns in a sequence. + + * reload1.c (merge_assigned_reloads): Don't change reloads + other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS + to RELOAD_OTHER when there are conflicting input reloads. + +2002-06-17 Richard Earnshaw (rearnsha@arm.com) + + * function.c (epilogue_done): Correctly build a sequence of insns for + a sibcall epilogue. + +2002-06-17 Nick Clifton + + * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with + #define. + + * config/m32r/m32r.md: Replace gen_sequence with get_insns. + +2002-06-16 Richard Henderson + + * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead + of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. + +2002-06-16 Richard Henderson + + PR opt/6722 + * regclass.c (globalize_reg): Update regs_invalidated_by_call. + +2002-06-16 Neil Booth + + * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks. + * config/i386/i386-aout.h, config/i386/i386elf.h, + config/i386/sysv4.h: Remove CPP_PREDEFINES. + * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h, + config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h, + config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h, + config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than + CPP_PREDEFINES and part of CPP_SPEC. + * config/i386/sysv4-cpp.h: New. + +2002-06-16 Richard Henderson + + PR c/7030 + * dwarf2out.c (modified_type_die): Don't assign the qualified die + to the unqualified type. + +Sun Jun 16 22:16:10 CEST 2002 Jan Hubicka + + * i386-protos.h (x86_field_alignment): Declare. + * i386.c (x86_field_alignment): Define. + * i386.h (ADJUST_FIELD_ALIGNMENT): New. + (BIGGEST_FIELD_ALIGNMENT): Kill. + +2002-06-16 Richard Henderson + + * vax.md (casesi): Use emit_jump_insn. Tidy expander pattern. + +2002-06-16 Richard Henderson + + * c-common.c (flag_ms_extensions): Move from c++ front end. + * c-common.h (flag_ms_extensions): Declare. + * c-decl.c (c_decode_option): Add -fms-extensions. + (grokfield): Don't accept anonymous structures in ISO C mode; + accept only unnamed anonymous structures in GNU C mode; accept + Plan 9 extensions in MS mode. + * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from + SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers. + (extension): Clear flag_iso. + * doc/invoke.texi (C Dialect Options): Add -fms-extensions. + +2002-06-16 Hans-Peter Nilsson + + PR target/7042 + * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit + early if current_function_epilogue_delay_list is non-empty. + * config/cris/cris.md ("return"): Add sanity check asserting that + current_function_epilogue_delay_list is empty. + +2002-06-16 Jeff Law + + * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic + sharing of hard registers. + + * toplev.c (rest_of_compilation): Remove redundant conditional. + + * toplev.c (rest_of_compilation): Perform a simpler, less costly + cleanup of the CFG when not optimizing. + +2002-06-16 Alan Modra + + * gcc.c (main): Correct startfile_prefix_spec check. + +2002-06-12 Geoffrey Keating + + * config.gcc: Revert rth's patch of 2002-05-18. Instead, + include both darwin.o and rs6000-c.o. + +2002-06-15 Roger Sayle + + * expr.c (compare_from_rtx): Call simplify_relational_operation + on all comparisons, not just those between integer constants, + with the correct (possibly unsigned) comparison code. + (do_compare_rtx_and_jump): Likewise. + +2002-06-15 John David Anglin + + * Makefile.in (tm_defines): New configuration variable. + (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES. + Pass tm_defines in TM_DEFINES. + (cs-tm_p.h): Rename DEFINES to XM_DEFINES. Pass TM_DEFINES. + * config.gcc (tm_defines): New configuration variable. + (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and + pa-7100.h headers. Change hppa1* scheduling default to 7100LC. + * configure.in: Substitute tm_defines. + * configure: Rebuilt. + * mkconfig.sh: Rename DEFINES to XM_DEFINES. Output TM_DEFINES. + * doc/install.texi: Update. + * pa/pa-700.h: Delete file. + * pa/pa-7100.h: Delete file. + +2002-06-15 Roger Sayle + + * fold-const.c (comparison_to_compcode): New function to convert + an comparison TREE CODE into a bit-based representation. + (compcode_to_comparison): New function to convert from this bit + based representation back to a comparison TREE CODE. + (fold_truthop): Simplify (x + + * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument. + + * stor-layout.c (compute_record_mode): Remove check for + FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for + MEMBER_TYPE_FORCES_BLK. Pass new mode field to + MEMBER_TYPE_FORCES_BLK. + + * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same. + + * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same. + +2002-06-14 Jeff Sturm + + * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS. + +2002-06-14 Steve Ellcey + + * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set + USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set. + * configure, config.in: Regenerate. + +2002-06-14 Eric Botcazou + + * loop.c (check_final_value): Use v->always_executed + instead of v->always_computable. + * unroll.c (final_giv_value): Don't calculate the final + value as a function of the biv if the giv is not computed + for every loop iteration. + +2002-06-14 Eric Botcazou + + * loop.c (for_each_insn_in_loop): Fix formatting and comments. + +2002-06-14 Eric Botcazou + + PR c/6677 + * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass + the truncation down when the target type is signed. + [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR. + * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through + the conversion if the target type is a smaller type. + +2002-06-14 Richard Henderson + + * fold-const.c (fold) [compare ops]: Move X>=C / X + + * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode. + +2002-06-14 Franz Sirl + + * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE. + * sched-deps.c (add_dependence): Likewise. + (group_leader): Likewise. + * sched-rgn.c (init_ready_list): Likewise. + * doc/rtl.texi: Adjust accordingly. + +2002-06-13 Jeffrey Law + + * gcse.c (delete_null_pointer_checks_1): Inform caller if any + null pointer checks were eliminated. Update prototype. + (delete_null_pointer_checks): Similarly. + * rtl.h (delete_null_pointer_checks): Update prototype. + * toplev.c (rest_of_compilation): Only run cleanup_cfg if + delete_null_pointer_checks deletes one or more null + pointer checks. Do not run cleanup_cfg before gcse, the + CFG is accurate and optimized at that point.. + + * rs6000.c (rs6000_frame_related): Avoid unwanted sharing + of hard registers. + +2002-06-14 Ulrich Weigand + + * Makefile.in (libgcc.mk): Depend on specs. + +Fri Jun 14 12:15:11 2002 J"orn Rennecke + + * sh.md (mulsi3): Update way how to find insns in a sequence. + +Fri Jun 14 12:04:02 2002 Dhananjay R. Deshpande + + * sh.h: Define HARD_REGNO_RENAME_OK + * sh.c: sh_hard_regno_rename_ok: New. If current function has + interrupt_handler attribute, only registers saved on stack are OK. + * sh-protos.h: Declare sh_hard_regno_rename_ok. + +2002-06-14 Kaz Kojima + + * config/sh/sh.md (jump): Emit jump insn. + (call_pcrel): Get pattern of the result of gen_call_site. + (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise. + +2002-06-14 Neil Booth + + * cpphash.h (struct cpp_buffer): Remove saved_line_base. + * cpptrad.c: Update comments. + (skip_whitespace, copy_comment): Take a new parameter. + (skip_escaped_newlines): Don't duplicate escaped newline test. + (copy_comment): Different location for CUR, decide here how + to copy / replace the comment. + (skip_whitespace): Copy whitespace. + (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base. + (scan_out_logical_line): Let copy comment handle keeping or + replacing comments. + (scan_parameters, _cpp_create_trad_definition): Update. + +2002-06-13 Alan Lehotsky + + * reload.c (get_secondary_mem,find_reloads_address, + find_reloads_address_1): Pass reference to MEM to find_reloads_address + so that LEGITIMIZE_RELOAD_ADDRESS will be called. + +2002-06-13 Jessica Han + + * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New. + (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New. + * doc/tm.texi: Document them. + * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New. + (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New. + (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode. + (ASM_OUTPUT_FDESC): Likewise. + +2002-06-13 Eric Christopher + + * diagnostic.c (output_format): Fix thinko. + +Thu Jun 13 22:34:33 2002 J"orn Rennecke + + * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define. + (DWARF2_UNWIND_INFO): Define to 0. + + * config/sh/sh.c (calc_live_regs): Don't use initial_value + optimization for PR_MEDIA_REG. + +2002-06-13 Neil Booth + + * cpphash.h (_cpp_lex_identifier_trad): Remove. + * cpplib.c (end_directive): Don't skip, always remove overlay + apart from #define. + (prepare_directive_trad): Handle NULL pfile->directive. + (_cpp_handle_directive): Always call prepare_directive_trad + if traditional. + * cppmain.c (check_multiline_token): Rename account_for_newlines, + generalize inputs. + (scan_translation_unit_trad): Use it. + * cpptrad.c (skip_comment): Rename copy_comment, copy comment to + output, get escaped newline in comment close correct. + (check_output_buffer, skip_whitespace): Update. + (_cpp_lex_identifier_trad): Remove. + (scan_out_logical_line): Handle -C and comments in directives + properly. + +Thu Jun 13 20:18:38 2002 J"orn Rennecke + + * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*. + * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT. + * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros. + (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise. + (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise. + (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise. + (SELECT_SH5_COMPACT_NOFPU): Likewise. + (TARGET_SWITCHES): Use them. + (TARGET_CPU_DEFAULT): Define if not already defined. + (TARGET_DEFAULT): Use it. + (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT. + * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN. + * config/sh/t-monolib: New file. + +2002-06-13 Roger Sayle + + * toplev.c (rest_of_compilation): Simplify (and correct) the + logic of the first delete-null-pointer-checks pass. + +Thu Jun 13 18:24:17 CEST 2002 Jan Hubicka + + * i386.c (ix86_expand_movstr): Fix pasto. + +Thu Jun 13 18:18:17 CEST 2002 Jan Hubicka + + * reload.c (find_valid_class): Fix thinko in my previous patch. + +2002-06-13 Ulrich Weigand + + * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro. + * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro. + (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove. + (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64. + +2002-06-13 Gabriel Dos Reis + + * tree-inline.c (expand_call_inline): Don' mess with _DECL + fields. + +2002-06-13 Gabriel Dos Reis + + * diagnostic.c (output_format): Recognize "%H" as a format + specifier for a location_t. + (text_specifies_location): New function. + (diagnostic_set_info): Use it. + +2002-06-13 Jeffrey Law + + * emit-rtl.c (static_regno_reg_rtx): Define. + (init_emit_once): Initialize static_regno_reg_rtx. + (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead + of building new hard reg objects once per function. + (gen_rtx_REG): Try to share hard regs. + * regclass.c (init_fake_stack_mems): New function broken out from + init_regs. + * rtl.h (init_fake_stack_mems): Declare. + * toplev.c (lang_independent_init): Call init_regs before + init_emit_once. Call init_fake_stack_mems after init_emit_once. + + * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko. + + * alias.c (argument_registers): Remove. + (init_alias_once): Initialize static_reg_base_value here. Remove + initialization of argument_registers. + (init_alias_once_per_function): Remove. + (init_alias_analysis): Copy all the entries from static_reg_base_value + into new_reg_base_value all at once. + * rtl.h (init_alias_once_per_function): Remove declaration. + * function.c (prepare_function_start): Do not call + init_alias_once_per_function. + + * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of + starting a sequence and emitting an INSN. + +2002-06-13 Richard Sandiford + + * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case. + +2002-06-13 David S. Miller + + * expmed.c (init_expmed): Remove duplicate init of 'reg'. + +2002-06-13 Neil Booth + + * cpplib.c (end_directive): Handle line skipping. Only remove + the rest of the line if the directive was valid. + * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when + expanding a traditional macro. + * cpptrad.c (recursive_macro): New. + (read_logical_line_trad): Handle skipping. + (scan_out_logical_line): Continue after a successful directive. + Don't expand macros whilst skipping, or if recursing. + (_cpp_create_trad_definition): scan_out_logical_line now sets + the output current position. + +2002-06-12 Eric Christopher + + From Chris Demetriou + * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix + comment. + (ISA_HAS_MADD_MSUB): Ditto. + (ISA_HAS_NMADD_NMSUB): Ditto. + +2002-06-12 Eric Christopher + + * config.gcc: Consolidate little endian handling and + little/big endian targets. + * config/mips/elfl.h: Remove file. + * config/mips/elfl64.h: Ditto. + * config/mips/ecoffl.h: Ditto. + * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove. + +2002-06-12 Geoffrey Keating + + * gengtype.h (xvasprintf): New prototype. + (xasprintf): New prototype. + (struct outf): New. + (get_output_file): Return an outf_p. + (header_file): Is now an outf_p. + (base_files): Now are outf_p. + (oprintf): New. + * gengtype.c: Replace all output FILE * with outf_p; use oprintf + rather than stdio operations. Use xasprintf in a few places, + when appropriate. + (xvasprintf): New. + (xasprintf): New. + (struct filemap): Delete. + (files): Delete. + (output_files): New. + (oprintf): New. + (create_file): Create an outf_p. Add parameter to indicate output + file name, change all callers. + (open_base_files): Create gtype-desc.c here. + (get_output_file_with_visibility): Rewrite. + (get_output_file_name): Just look at 'name' field in struct outf. + (close_output_files): Rewrite. + +2002-06-12 Jason Thorpe + + * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT) + (MASK_G_FLOAT): Define. + (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them. + (TARGET_SWITCHES): Likewise. + (TARGET_DEFAULT): Likewise. + +2002-06-12 Daniel Jacobowitz + + * config/mips/elf.h (DWARF2_DEBUG_INFO): Define. + * config/mips/mips.c (mips_output_filename): Don't print a + ".file" directive if we are using DWARF-2. + (mips_output_function_prologue): Do not emit source file + name for TARGET_GAS. + +Wed Jun 12 16:45:13 CEST 2002 Jan Hubicka + + * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to + decide whether emit the short opcode. + * i386.h (x86_shift1): Declare. + (TARGET_SHIFT1): New macro. + * i386.c (x86_shift1): New global variable. + + * toplev.c (rest_of_compilation): Call find_basic_block pre-loop + unconditionally; make loop to rebuild CFG; kill unnecesary + find_basic_block calls; kill compute_bb_for_insn call. + * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call. + * haifa-sched.c (sched_init): Likewise. + * ssa-ccp.c (ssa_const_prop): Likewise. + * ssa-dce.c (ssa_eliminate_dead_code): Likewise. + +2002-06-11 David S. Miller + + * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if + active_insn_p. + +2002-06-11 Richard Henderson + + * c-common.c (builtin_define_type_max): New. + (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__, + __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__. + + From Joseph S. Myers: + * glimits.h: Rewrite to expect the double underscore definitions + from the compiler. + + * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h, + config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h, + config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h, + config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, + config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h, + config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h, + config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__, + __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__. + +2002-06-11 Richard Henderson + + * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New. + (ALPHA_BUILTIN_SET_THREAD_POINTER): New. + (code_for_builtns): Update. + (alpha_init_builtins): Add __builtin_thread_pointer and + __builtin_set_thread_pointer. + (alpha_expand_builtin): Handle void builtins. + * doc/extend.texi (Alpha Built-in Functions): Update. + +2002-06-11 Hans-Peter Nilsson + + PR target/6997 + * config/cris/cris.md ("sleu"): Set attribute "cc" to "none". + +2002-06-11 Zack Weinberg + + * config.gcc: Make the name of the extra-modes file adjustable + by target stanzas. + (s390x, strongarm, xscale stanzas): Use this facility. + * configure.in: Update to match. + * configure: Regenerate. + +2002-06-11 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned + max/mins as unsigned GE compares. + +2002-06-11 Jason Thorpe + + * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}. + * config/vax/bsd.h: New file. + * config/vax/netbsd.h: Add missing notice. + (CPP_PREDEFINES): Remove. + (TARGET_OS_CPP_BUILTINS): Define. + (CPP_SPEC): Use NETBSD_CPP_SPEC. + * config/vax/openbsd.h: Update copyright years. + (CPP_PREDEFINES): Remove. + (TARGET_OS_CPP_BUILTINS): Define. + * config/vax/ultrix.h: Likewise. + * config/vax/vaxv.h: Likewise. + * config/vax/vms.h: Likewise. + * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define. + (CPP_PREDEFINES, CPP_SPEC): Remove. + +Wed Jun 12 01:50:28 CEST 2002 Jan Hubicka + + * i386.md (addqi_1_slp, subqi_1_slp + (andqi_ext0, testqi_ext0): Remove unnecesary check. + (addhi*, addqi*): Simplify "dec" condition. + (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check. + (and, or, xor to QImode splitters): New. + (iorqi_ext*): New. + (xorqi_ext_0): New. + (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions. + (andqi_ext_1_rex64): New. + (ashrqi*_slp): New. + (ashlqi*_slp): New. + (lshlqi*_slp): New. + (rotrqi3*_slp): New. + (rotlqi3*_slp): New. + +2002-06-11 Geoffrey Keating + + * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including + softfloat.h. + * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete. + (CPP_ENDIAN_LITTLE_SPEC): Delete. + * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete. + * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting, + __LONG_DOUBLE_128__ setting, _CALL_* setting. + (CPP_DEFAULT_SPEC): Delete. + (CPP_FLOAT_DEFAULT_SPEC): Delete. + (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete. + (CPP_SYSV_DEFAULT_SPEC): Delete. + (CPP_ENDIAN_BIG_SPEC): Delete. + (CPP_ENDIAN_LITTLE_SPEC): Delete. + (CPP_ENDIAN_SPEC): Delete. + (CPP_SPEC): Don't include cpp_endian, cpp_cpu. + (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default, + cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default, + cpp_longdouble_default. + * config/rs6000/softfloat.h: Delete. + * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete. + (EXTRA_SPECS): Delete cpp_cpu. + (TARGET_CPU_CPP_BUILTINS): New. + * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New + prototype. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New. + * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines. + (CPP_DEFAULT_SPEC): Delete. + * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete. + * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__. + * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu. + (CPP_DEFAULT_SPEC): Delete. + * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC. + (CPLUSPLUS_CPP_SPEC): Likewise. + (CPP_CPU_SPEC): Delete. + (CPP_DEFAULT_SPEC): Delete. + * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC. + (CPLUSPLUS_CPP_SPEC): Likewise. + (CPP_CPU_SPEC): Delete. + (CPP_DEFAULT_SPEC): Delete. + * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu. + (CPP_DEFAULT_SPEC): Delete. + * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu. + (CPP_DEFAULT_SPEC): Delete. + + * doc/gty.texi: Small updates. + +2002-06-12 Gabriel Dos Reis + + * objc/objc-act.c (warn_with_ivar): Adjust calls to + diagnostic_count_error. + (warn_with_method): Likewise. + + * diagnostic.h (warnings_are_errors_message): New field of + diagnostic_context. + (diagnostic_count_error): Rename to diagnostic_count_diagnostic to + match semantics. + * diagnostic.c: Adjust calls to diagnostic_count_error through out. + (diagnostic_count_diagnostic): Make aware of other kinds of + diagnostics. + (diagnostic_initialize): Initialize warnings_are_errors_message field. + +2002-06-11 Tom Tromey + + For PR java/6520: + * fold-const.c (fold_convert): Don't modify existing tree's type. + +2002-06-11 Geoffrey Keating + + * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers. + +2002-06-11 Richard Henderson + + * caller-save.c (init_caller_save): Clear INSN_CODE each iteration. + +2002-06-11 Richard Henderson + + * defaults.h (EH_FRAME_SECTION_NAME): Don't define if + DWARF2_UNWIND_INFO is false. + +2002-06-11 Bob Wilson + + * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete. + + * config/s390/s390.c (emit_prologue): gen_store_multiple + returns an insn now, not a pattern. + +2002-06-11 Rainer Orth + + * Makefile.in (gccinstall.dvi): Pass absolute pathnames to + $(TEXI2DVI) -o. + +Tue Jun 11 21:53:37 CEST 2002 Jan Hubicka + + * i386.c (x86_promote_QImode): Set for Athlon + (x86_fast_prefix): New global variable. + (x86_arch_always_fancy_math_387): Fix formating. + * i386.h (x86_fast_prefix): Declare + (TARGET_FAST_PREFIX): define. + * i386.md (and to strict_low_part, HI to SI + promoting splitter): Use new macro. + + * i386.h (RTX_COSTS): float_extend is not for free for SSE. + +2002-06-11 Zack Weinberg + + * Makefile.in (distclean): Delete junk left in testsuite + directory, too. + +2002-06-11 Jeffrey Law + + * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the + last insn created by the splitter. + + * caller-save.c (init_caller_save): Move creation of SAVEINSN + and RESTINSN into the scope of the sequence. + + * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial + RETURN insns. + + * loop.c (loop_regs_scan): Avoid useless generation of REG objects. + + * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now, + not the pattern. So extract the pattern from the insn. + + * mips.c (embedded_pic_fnaddr_reg): Fix typo. + +2002-06-11 Ulrich Weigand + + * config/s390/s390.md (movsi): Only use floating point + register alternatives when operands are already fprs. + (movdi_31, movdi_64): Likewise. + +2002-06-11 David S. Miller + + * emit-rtl.c (try_split): Do not abort on non-INSN_P. + Only run RTX equality checks on INSN_P rtl. + +2002-06-11 Ulrich Weigand + + * config/s390/s390.md (reload_base, ltorg): Remove. + * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool, + s390_asm_output_pool_prologue, s390_pool_start_insn): Remove. + * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool, + s390_asm_output_pool_prologue): Likewise. + * s390.h (s390_pool_start_insn): Likewise. + + * s390.c (s390_output_symbolic_const): Remove support for + old-style pool chunks. + (s390_function_epilogue): Likewise. + (s390_output_constant_pool): Likewise. Also, fix incorrect + alignment for 64-bit literal pools. + (print_operand_address): Remove 'y' and 'Y' format flags. + * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for + old-style pool chunks. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. + (ASM_OUTPUT_POOL_EPILOGUE): Remove. + (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove. + + * s390.c (consttable_operand): New function. + * s390-protos.h (consttable_operand): Declare it. + * s390.h (PREDICATE_CODES): Add consttable_operand. + * s390.md (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, reload_base2): New insns. + * s390.c (struct constant, struct constant_pool): New data types. + (constant_modes, gen_consttable): New variables. + (s390_start_pool, s390_end_pool, s390_add_pool, + s390_dump_pool, s390_free_pool): New functions. + (s390_chunkify_pool): Completely reimplement literal pool + overflow handling. + + * s390.c (s390_pool_overflow): New variable. + * s390.h (s390_pool_overflow): Declare it. + * s390.md (cjump, icjump): Use it to adapt length for out-of-range + jumps in literal pool overflow situations. + + * s390.c (s390_decompose_address): Accept new-style pool chunk offsets. + (s390_frame_info): Account for possible use of RETURN_REGNUM + by new literal pool overflow code. + (s390_emit_prologue): Likewise. + +2002-06-05 David S. Miller + + Delete SEQUENCE rtl usage outside of reorg and ssa passes. + * rtl.h (gen_sequence, emit_insns, emit_insns_before, + emit_insns_before_scope, emit_insns_after, + emit_insns_after_scope): Delete declaration. + * ada/misc.c (insert_code_for): Use emit_insn* instead of + emit_insns_foo. + * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE. + (alpha_set_memflags): Fix comment. + (set_frame_related_p): Use get_insns instead of gen_sequence. + * config/alpha/alpha.md (setjmp receiver splitter): Avoid + emitting no insns. + * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of + gen_sequence. + (arm_gen_load_multiple, arm_gen_store_multiple): Likewise. + * config/fr30/fr30.c (fr30_move_double): Likewise. + * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr): + Likewise. + * config/ia64/ia64.c (spill_restore_mem): Likewise. + * config/ia64/ia64.md (conditional move spliiter): Avoid emitting + no insns. + * config/m32r/m32r.c (gen_split_move_double): Use get_insns + instead of gen_sequence. + * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise. + (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise. + * config/sh/sh.c (sh_need_epilogue): Likewise. + * config/sparc/sparc.md (current_function_calls_alloca, flat): New + attributes. + (setjmp pattern and split): Use them to avoid splitter which emits + no RTL. + * genattrtab.c (main): Emit include of function.h + * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use + get_insns instead of gen_sequence. + * config/cris/cris.c (cris_split_movdx): Likewise. + * emit-rtl.c (emit_insns*): Kill. + (try_split): Expect insn list instead of SEQUENCE. + (make_jump_insn_raw, make_call_insn_raw): Fix comments. + (emit_*insn*): Reimplement to work with INSN lists and PATTERNs. + Make them abort if a SEQUENCE is given and RTL checking is + enabled. + (emit_*_scope): Don't forget to set scope on final insn. + (gen_sequence): Move from here... + * ssa.c (gen_sequence): To here as private function. + * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix + comments. + (expand_builtin_return, expand_builtin_mathfn): Likewise. + (expand_builtin_strlen): Use get_insns instead of gen_sequence. + (expand_builtin_saveregs): Use emit_insn_foo, fix comments. + (expand_builtin_expect_jump): Use get_insns and fix comments. + * calls.c (try_to_integrate): Use emit_insn_foo. + (expand_call, emit_library_call_value_1): Likewise. + * expr.c (emit_queue): Handle insn lists instead of SEQUENCE. + (emit_move_insn_1): Use get_insns instead of gen_sequence. + (expand_expr): Use emit_insn_foo. + * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo. + * except.c (build_post_landing_pads): Likewise. + * flow.c (attempt_auto_inc): Likewise. + * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label, + expand_nl_goto_receivers, expand_decl_cleanup): Likewise. + * function.c (fixup_var_refs_insn): Use get_insns instead of + gen_sequence. + (fixup_var_refs_1): Likewise and expect insn list from gen_foo. + (fixup_memory_subreg): Use get_insns instead of gen_sequence. + (fixup_stack_1, purge_addressof_1, expand_main_function, + get_arg_pointer_save_area): Likewise. + (optimize_bit_field, instantiate_virtual_regs_1, assign_parms, + expand_function_end): Use emit_insn_foo. + (record_insns, keep_stack_depressed): Work with insn list instead + of SEQUENCE, fix comments. + * ifcvt.c (noce_emit_store_flag, noce_try_store_flag, + noce_try_store_flag_constants, noce_try_store_flag_inc, + noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith, + noce_try_minmax, noce_try_abs): Use emit_insn_foo. + (noce_process_if_block): Use get_insns instead of gen_sequence. + * optabs.c (add_equal_note): Work with insn list, fix comments. + (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo. + (expand_unop, expand_complex_abs, expand_unop_insn, + expand_no_conflict_block): Likewise. + (gen_move_insn): Use get_insns instead of gen_sequence. + (gen_cond_trap): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + (emit_initial_value_sets): Use emit_insn_foo. + * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise. + (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently + now that RTL generators give insn lists. + * sibcall.c (replace_call_placeholder): Use emit_insn_foo. + * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns + instead of gen_sequence. + (doloop_optimize): Work with insn lists instead of SEQUENCE rtl. + * explow.c (emit_stack_save, emit_stack_restore): Use get_insns + instead of gen_sequence. + * loop.c (move_movables, emit_prefetch_instructions, + gen_add_mult, check_dbra_loop, gen_load_of_final_value): + Likewise. + (loop_regs_update): Work with insn list instead of SEQUENCE rtl. + (product_cheap_p): Likewise, and add commentary about RTL wastage + here. + * lcm.c (optimize_mode_switching): Use get_insns instead of + gen_sequence. + * profile.c (gen_edge_profiler): Likewise. + * regmove.c (copy_src_to_dest): Likewise. + * reg-stack.c (compensate_edge): Likewise and fix comment. + * gcse.c (process_insert_insn): Likewise. + (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl. + * jump.c (delete_prior_computation): Update comment. + * genemit.c (gen_expand, gen_split, main): Use get_insns instead + of gen_sequence, update comments to match. + * recog.c (peephole2_optimize): Work with insn lists instead of + SEQUENCE rtl. + * sched-vis.c (print_pattern): Abort on SEQUENCE. + * unroll.c (unroll_loop, find_splittable_givs, final_giv_value): + Use get_insns instead of gen_sequence. + (copy_loop_body): Likewise and don't emit dummy NOTE. + * genrecog.c: Don't mention SEQUENCE rtl in comments. + * combine.c (try_combine): Expect insn lists from split generator. + * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by + hand. + +2002-06-11 Roger Sayle + Andreas Jaeger + + * cfgbuild.c: Update copyright years. + +2002-06-11 Andreas Schwab + + * config/m68k/m68k.h (PREDICATE_CODES): Define. + +2002-06-11 Eric Christopher + + * doc/tm.texi (Run-time Target): Add comment about flag_iso + and strict ANSI. + * config/mips/ecoff.h (CPP_PREDEFINES): Remove. + * config/mips/ecoffl.h: Ditto. + * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove. + (CPP_PREDEFINES): Ditto. + * config/mips/elfl64.h: Ditto. + * config/mips/elfl.h: Ditto. + * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0 + out until irix header consolidation. + * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace + with SUBTARGET_OS_CPP_BUILTINS. + * config/mips/iris6.h: Ditto. + (CPLUSPLUS_CPP_SPEC): Remove. + * config/mips/linux.h: Ditto. + * config/mips/netbsd.h: Ditto. + * config/mips/openbsd.h: Ditto. + * config/mips/rtems.h: Ditto. + * config/mips/rtems64.h: Ditto. + * config/mips/sni-svr4.h: Ditto. + * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, + ISA_MIPS32, ISA_MIPS64): New defines. + (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS, + ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4, + ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB, + ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use. + (TARGET_CPU_CPP_BUILTINS): Define. + (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove. + * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64. + (movdicc): Remove check for ISA_MIPS32. + (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, + sunordered_df, sunordered_sf, sordered_df, sordered_sf, + sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df, + sunge_sf, sunle_df, sunle_sf): New patterns. + +2002-06-11 Neil Booth + + * Makefile.in: Update cppmain.o. + * cpphash.h (struct cpp_reader): Move some members to a + nested structure. + (trad_line): Rename saved_line. + (_cpp_read_logical_line_trad): Update. + (_cpp_remove_overlay): New. + * cppinit.c (cpp_create_reader): No need to set saved_line. + (cpp_destroy): Update. + (cpp_read_main_file): Only overlay if compiling. + * cpplex.c (continue_after_nul): Return false if in directive. + * cpplib.c (EXPAND): New. + (directive_table, SEEN_EOL): Update. + (end_directive): Remove overlay if traditional; don't skip + line in traditional #define. + (prepare_directive_trad): New. + (_cpp_handle_directive, run_directive): Update for traditional + directives. + (lex_macro_node): Simplify, don't use lex_identifier_trad. + * cpplib.h (struct options): Add preprocess_only. + * cppmain.c: Don't include intl.h. + (cpp_preprocess_file): Set options->preprocess_only. + (scan_translation_unit_trad): Fix, and print line numbers. + * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters, + maybe_start_funlike, scan_out_logical_line, replace_args_and_push, + save_replacement_text, _cpp_create_trad_definition): Update for + variable renaming. + (_cpp_overlay_buffer): Save line number. + (_cpp_remove_overlay): Rename from restore_buff, restore line. + (_cpp_read_logical_line_trad): Don't handle overlays here. + (scan_out_logical_line): Process directives. + +2002-06-11 Danny Smith + + * gthr-win32.h: Wrap functions in extern "C". + (__gthread_key_t): Typedef as unsigned long, + not win32 DWORD. + (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE. + (__gthread_mutex_t): Typedef as void*, not win32 HANDLE. + (__gthr_win32_once, __gthr_win32_key_create, + __gthr_win32_key_delete, __gthr_win32_getspecific, + __gthr_win32_setspecific, __gthr_win32_mutex_init_function, + __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock, + __gthr_win32_mutex_unlock): Declare. + (__gthread_once,__gthread_key_create, + __gthread_key_delete, __gthread_getspecific, + __gthread_setspecific, __gthread_mutex_init_function, + __gthread_mutex_lock,__gthread_mutex_trylock, + __gthread_mutex_unlock): Call corresponding + __gthr_win32_* extern implementations if #defined + __GTHREAD_HIDE_WIN32API. + * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to + $(srcdir)/config/i386/gthr-win32.c + * config/i386/gthr-win32.c: New implementation file. + (__gthr_win32_once, __gthr_win32_key_create, + __gthr_win32_key_delete, __gthr_win32_getspecific, + __gthr_win32_setspecific, __gthr_win32_mutex_init_function, + __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock, + __gthr_win32_mutex_unlock): New functions, based on + static inlines in gthr-win32.h. + +2002-06-10 Bob Wilson + + * config/xtensa/xtensa.c (override_options): Don't warn about + using -fpic or -fPIC when PIC is enabled by default. + +2002-06-10 Roger Sayle + + * toplev.c (rest_of_compilation): Revert flag_if_conversion change. + +2002-06-10 Zack Weinberg + + * Makefile.in (MACHMODE_H): Add @extra_modes_file@. + * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def + exists, substitute its pathname as @extra_modes_file@, define + EXTRA_MODES_FILE to be an appropriate string to #include it + with, and define EXTRA_CC_MODES to 1. + + * machmode.def: Update comments. Include EXTRA_MODES_FILE if + it's defined. Get rid of redundancy in calling sequence for + CC; don't use it to define CCmode, to avoid a warning. + * libgcc2.c: Include symcat.h for the sake of machmode.def. + + * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def, + i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def, + pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def: + New files. + * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h, + pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES. + + * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for + defining extra CC modes. + +2002-06-10 Roger Sayle + Andreas Jaeger + + * cfgrtl.c (create_basic_block_structure): Remove index argument + and use last_basic_block++ instead. (create_basic_block): Update. + * cfgbuild.c (find_basic_blocks_1): Likewise. + + * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument. + * haifa-sched.c (sched_init): Update compute_bb_for_insn caller. + * sched-ebb.c (schedule_ebbs): Likewise. + * sched-rgn.c (schedule_insns): Likewise. + * ssa-ccp.c (ssa_const_prop): Likewise. + * ssa-dcs.c (ssa_eliminate_dead_code): Likewise. + * toplev.c (rest_of_compilation): Likewise. + * config/ia64/ia64.c (ia64_reorg): Likewise. + +2002-06-10 Roger Sayle + + * simplify-rtx.c (simplify_replace_rtx): Allow replacement + of matching registers. + +2002-06-10 Roger Sayle + + * toplev.c (rest_of_compilation): Disable early if-conversion pass. + * gcse.c (bypass_conditional_jumps): Fix typo in setcc test. + +2002-06-10 Hans-Peter Nilsson + + * config/mmix/mmix.h: Improve comments. + (CPP_SPEC, CPP_PREDEFINES): Don't define. + (TARGET_CPU_CPP_BUILTINS): Define. + (CANONICALIZE_COMPARISON): Don't define, replace with comment. + (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove + unused predicate. + * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid + compiler warning. + (mmix_constant_address_p): Remove another + redundant test before case. + (mmix_canonicalize_comparison): Remove unused function. + (mmix_print_operand_address): Don't test and adjust for operand in + non-canonical format. + (mmix_reg_or_8bit_or_256_operand): Remove unused predicate. + (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON. + +2002-06-10 Zack Weinberg + + * config/m32r/m32r.h: Don't define SELECT_CC_MODE. + * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode. + * config/m32r/m32r.c: Don't define m32r_select_cc_mode. + (gen_compare): Use CCmode unconditionally. + +2002-06-10 Jakub Jelinek + + PR optimization/6759 + * cse.c (cse_insn): Fold src_eqv just once, store it folded back into + the REQ_EQUAL note. + +2002-06-10 Jakub Jelinek + + PR c/6660 + * c-decl.c (grokfield): Allow user defined types if they declare + structs or unions for unnamed fields. + +2002-06-10 Jakub Jelinek + + PR c/6809 + * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. + +2002-06-10 Jakub Jelinek + + PR optimization/6842 + * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode + operand subreg cannot be simplified. + +2002-06-10 Jakub Jelinek + + * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR. + (compare_constant): Likewise. + (output_addressed_constants): Likewise. + +2002-06-10 Jakub Jelinek + + * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't + merge bb with itself. + +2002-06-10 Richard Henderson + + * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask. + (builtin_zapnot): Likewise. + + * config/alpha/ev5.md: Don't combine shift and mvi insns in one + reservation. + +2002-06-10 Eric Christopher + + * config/i386/i386.c (ix86_osf_output_function_prologue): Remove + prototype and function. + (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version. + (call_insn_operand): Remove half pic references. + (legitimate_address_p): Ditto. + * config/i386/i386.h: Remove half pic defines. + +2002-06-10 Eric Christopher + + * doc/extend.texi (Return Address): Add note explaining the side- + effects of inlining on __builtin_return_address. + +2002-06-10 Tom Tromey + + * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h. + (c-common.o): Depend on langhooks.h. + +2002-06-10 Neil Booth + + * cpphash.h (_cpp_read_logical_line_trad, + _cpp_expansions_different_trad): Update prototypes. + * cpplex.c (continue_after_nul): New. + * cppmain.c: Include cpphash.h. + (scan_translation_unit_trad): New. + (cpp_preprocess_file): Call it. + * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter + overlay. + (_cpp_expansions_different_trad): Update prototype. + +Mon Jun 10 18:02:24 2002 J"orn Rennecke + + Fix cfi generation for SH[1-4]: + + * sh.c (frame_insn): New function. + (output_stack_adjust): Add parameter emit_fn. All callers changed. + (push): Now returns rtx. Use frame_insn. + (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push + of a DF register. + * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define. + +2002-06-10 Zack Weinberg + + * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h, + and gtype-desc.c. + (mostlyclean): Delete specs.h, options.h, gencheck.h here... + (distclean): ... not here. But do delete all testsuite/*.log, + testsuite/*.sum files here. Delete mkheaders. Delete + po/*.gmo and the testsuite directory in a split tree build. + +2002-06-10 Jeffrey Law + + * alias.c (static_reg_base_value): New to hold RTL for + items allocated once per function for the aliasing code. + (init_alias_once_per_function): Initialize static_reg_base_value. + (init_alias_analysis): Avoid throw-away allocations of RTL by + using pre-computed values in static_reg_base_value. + * function.c (prepare_function_start): Call + init_alias_once_per_function appropriately. + * rtl.h (init_alias_once_per_function): Declare. + * caller-save (init_caller_save): Restructure slightly to + avoid lots of silly RTL generation. + * expr.c (init_expr_once): Likewise. + * reload1.c (reload_cse_regs_1): Allocate throw-away register + RTL object here. Pass it into children. + (reload_cse_simplify_operands): Use passed-in register RTL + object. + (reload_cse_simplify): Pass through throw-away register + RTL object. + +2002-06-10 Daniel Berlin + + * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing. + +2002-06-10 Richard Sandiford + + * gcc.c (process_command): Avoid assignment to read-only location. + Fix sizeof calculation. + +2002-06-10 Neil Booth + + * cpphash.h (struct cpp_macro): Put comments on their own lines. + (_cpp_expansions_different_trad): New. + * cppmacro.c (warn_of_redefinition): Fix for traditional case. + * cpptrad.c (canonicalize_text): New. + (scan_out_logical_line): Handle no arguments correctly. + (save_replacement_text): Commit memory when finished. + (_cpp_expansions_different_trad): New. + +2002-06-10 Tim Josling + + * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages + TREELANG and COBOL. + (lang_names): Add treelang and cobol. + (get_file_basename): Add code to support treelang and cobol as + 4th and 5th users of c-common.c. + +2002-06-09 Geoffrey Keating + + * Makefile.in (install-driver): Install driver as + $(target_alias)-gcc-$(version). + * gcc.c (spec_version): Make const. + (process_command): Handle -V and -b by using exec. + * doc/invoke.texi (Target Options): Restore -V option, + update docs for -b option. + +2002-06-10 Tim Josling + + * configure.in (remaining_languages_check): + Added check that all languages specified were found. + Exit if not found. Previous behavior was silent failure. + * configure: Regenerated. + +2002-06-10 Tim Josling + + First steps to making treelang documentation compliant, based on + instructions in sourcebuild.texi. Also add to gcc.c list of + default languages. + + * doc/contrib.texi: Add self as contributor of treelang. + + * doc/frontends.texi: Add mention of treelang. + + * doc/invoke.texi (Overall Options): Add mention of treelang. + + * doc/standards.texi: Add mention of treelang. + +2002-06-09 Hans-Peter Nilsson + + * config/cris/cris.c: Include ggc.h + +2002-06-09 Neil Booth + + * cpphash.h (_cpp_push_text_context): Update. + (_cpp_arguments_ok): New. + * cppmacro.c (_cpp_arguments_ok): New, split out from... + (collect_args): ...here. + (_cpp_push_text_context): Change inputs. + * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument, + replace_args_and_push): New. + (lex_identifier, _cpp_lex_identifier_trad, scan_parameters): + Don't use IS macros directly. + (scan_out_logical_line): Handle function-like macro argument + collection. + (push_replacement_text): Update. + (replacement_length): Remove. + (_cpp_create_trad_definition): Don't skip whitespace before + checking for '('. + +2002-06-09 Marek Michalkiewicz + + * config/avr/avr.c (avr_mcu_types): Update for new devices. + * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls. + (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices. + * config/avr/avr.md ("type" and "length" attributes): New type + "xcall", length 1 or 2 if AVR_MEGA. Use in all patterns that + output a single "call" or "rcall" insn depending on device size. + * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices. + +2002-06-09 David Edelsohn + + * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3 + synonym for 630. Add power4. Remove embedded processors. Use -m604 + assembler option. + (CPP_CPU_SPEC): Add power3 and power4. + (PROCESSOR_DEFAULT): Change to 604e. + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions. + (CPP_CPU_SPEC): Similar additions. + (enum process_type): Add POWER4. + (RTX_COSTS): Add POWER4. + (CPP_CPU_SPEC): Similar additions. + * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define. + (PROCESSOR_DEFAULT64): Define. + * config/rs6000/rs6000.c (rs6000_override_options): Add power4. + (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to + branch adjustment. + (rs6000_issue_rate): Add Power4. + * config/rs6000/rs6000.md (cpu attr): Add power4. + (iu compare): Remove 604, 604e, 620, 630. + Add basic Power4 scheduling information. + (mfcr/mtcrf): Change type attribute to cr_logical. + +2002-06-08 Kaveh R. Ghazi + + * gengtype.h (error_at_line): Use PARAMS, not VPARAMS. Add + ATTRIBUTE_PRINTF_2. + * gengtype-lex.l: Fix format specifier warning. + + * genautomata.c: Don't include ctype.h or limits.h. Use ISSPACE, + not isspace. + * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in + lieu of isspace/IDchar. + * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum. + * read-rtl.c: Likewise for ctype.h. Don't define ISDIGIT or + ISSPACE. + +2002-06-08 Zack Weinberg + + * Makefile.in (LIBCPP_OBJS): Take out version.o. + * cpphash.h (cpp_reader): Take out print_version member. + * cppinit.c: (cpp_handle_option): Don't do anything with + -version. Just set help_only for --version, --target-help. + Just set verbose option for -v. + (cpp_post_options): Don't print a version string. + +2002-06-08 Marek Michalkiewicz + + * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New. + (avr_section_type_flags): New, handle .noinit* sections. + +2002-06-08 Jason Thorpe + + * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define + and include netbsd_entry_point. + (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF. + (NETBSD_ENTRY_POINT): Define. + +2002-06-08 Jason Thorpe + + * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty + if not already defined. + (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS. + +2002-06-08 Marek Michalkiewicz + + * config/avr/avr.c (avr_regs_to_save): No need to save any registers + in a noreturn function. + (avr_output_function_prologue, avr_output_function_epilogue): + Correct function size calculation. Do not crash on empty function. + (avr_output_function_epilogue): No need for epilogue after a BARRIER. + +2002-06-08 Jason Thorpe + + * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add + netbsd_link_spec and netbsd_entry_point. + (LINK_SPEC): Use %(netbsd_link_spec). + (NETBSD_ENTRY_POINT): Define. + +2002-06-08 Jason Thorpe + + * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify + linker emulation. + (LINK_ARCH64_SPEC): Likewise. + (LINK_SPEC, NETBSD_ENTRY_POINT): Define. + (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point. + +2002-06-08 Marc Espie + + * lists.c (free_list): Fix typo in comment. + +2002-06-08 Andreas Jaeger + + * lcm.c (optimize_mode_switching): Add unused attribute for + variable. + + * sched-deps.c (sched_analyze): Remove unused variable. + +2002-06-08 Gabriel Dos Reis + + * diagnostic.def: Don't capitalize diagnostict descriptors. + +2002-06-08 Jason Thorpe + + * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point. + (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF. + (NETBSD_ENTRY_POINT): Define. + +2002-06-08 Jason Thorpe + + * config/i386/netbsd-elf.h (LINK_SPEC): Define as + NETBSD_LINK_SPEC_ELF. + (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point. + (NETBSD_ENTRY_POINT): Define. + * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec). + (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and + netbsd_entry_point. + (NETBSD_ENTRY_POINT): Define. + +2002-06-08 Jason Thorpe + + * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add + netbsd_link_spec and netbsd_entry_point. + (LINK_SPEC): Use %(netbsd_link_spec). + (NETBSD_ENTRY_POINT): Define. + +2002-06-08 Jason Thorpe + + * config/netbsd-elf.h (LINK_SPEC): Rename to... + (NETBSD_LINK_SPEC_ELF): ...this. Use %(netbsd_entry_point) + to specify program entry point. + +2002-06-07 Jeff Law + + * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form + (ne (comp x y) 0) into (comp x y) where comp is a comparison code. + Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the + comparison code comp can be reversed. + +2002-06-07 Roger Sayle + + * fold-const.c (fold) [EQ_EXPR]: Place both integer and real + constants last in comparisons. Optimize (x+1.0)>0.0 into the + equivalent x > -1.0 when -ffast-math. + +2002-06-07 Jason Thorpe + + * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}. + * config/mips/t-netbsd: New file. + +2002-06-07 Zack Weinberg + + * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W + options their own entries. + (parse_option): Clarify comment. + (cpp_handle_option): Remove 'ignore' parameter and OPT_W + special case. Replace if/strcmp chain for -W options with + use of new OPT_* entries for them. + (cpp_handle_options): Update to match. + * cpplib.h: Remove last parameter to cpp_handle_option from prototype. + * c-decl.c: Update call to cpp_handle_option. + +2002-06-07 Akim Demaille + + * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action. + Whitespace changes. + +2002-06-07 Jeffrey Law + + * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list + on empty lists. + +2002-06-07 H.J. Lu (hjl@gnu.org) + + * configure.in: Add --enable-__cxa_atexit. + * configure: Regenerated. + * config.in: Likewise. + + * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if + not defined. + +2002-06-07 Gabriel Dos Reis + + * diagnostic.c (diagnostic_build_prefix): Fix initialization. + +2002-06-07 Jason Thorpe + + * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define. + +2002-06-07 Jason Merrill + + * cppexp.c (num_equality_op): Use a temporary variable to work + around gcc 3.0.4 bug. + +2002-06-07 Gabriel Dos Reis + + * diagnostic.c (diagnostic_build_prefix): Tidy. + +2002-06-07 Neil Booth + + * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN, + scan_parameters, save_replacement_text, replacement_length): New. + (scan_out_logical_line): Take a macro and save parameters if + non-NULL. + (_cpp_logical_line_trad): Update. + (_cpp_create_trad_definition): Update to handle function-like + macros. + * cpplex.c (new_buff): Update. + (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move... + * cpphash.h: ...here. + (CPP_ALIGN2, _cpp_save_parameter): New. + * cppmacro.c (save_parameter): Rename, export. + (parse_params): Update. + +2002-06-07 Andreas Jaeger + + * config/mmix/mmix.c: Remove extra broken prototype for + mmix_init_machine_status. + +2002-06-06 Geoffrey Keating + + * gengtype.c: Add comments before all the routines. + +2002-06-07 Jason Thorpe + + * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32 + from and add t-sh64 to ${tmake_file}. + (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}. + * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove. + * config/sh/t-netbsd-sh5-32: Remove. + * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use + MULTILIB_ENDIAN. + (MULTILIB_DIRNAMES): Define. + +Thu Jun 6 23:14:46 CEST 2002 Jan Hubicka + + * i386.md (and promoting splitters): Disable QI to SImode promoting + when doing so changes immediate to be 32bit. + + * rtl.h (emit_*_scope): Declare. + * emit-rtl.c (emit_*_scope): New global functions. + (try_split): Copy scope. + * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants, + noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove, + noce_try_cmove_arith, noce_try_minmax, noce_try_abs, + noce_process_if_block, find_cond_trap): Copy scopes. + * recog.c (peephole2_optimize): likewise. + +2002-06-06 Jeffrey Law + + * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking. + +Thu Jun 6 21:06:25 2002 J"orn Rennecke + + * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'". + +2002-06-06 Rainer Orth + + * Makefile.in (TEXI_GCCINSTALL_FILES): Define. + ($(docdir)/gccinstall.info): New target. + (info): Depend on it. + (gccinstall.dvi): New target. + (dvi): Depend on it. + * doc/.cvsignore: Ignore new info files. + * doc/install.texi (@setfilename): Reflect new info filename. + +Thu Jun 6 15:57:23 2002 J"orn Rennecke + + * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P + on an UNSPEC. + +Thu Jun 6 07:17:43 2002 Nicola Pero + + PR objc/6834 + * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be + c_common_get_alias_set. + (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p. + +2002-06-06 John David Anglin + + * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New + functions. + * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare. + * avr/avr.c (avr_output_function_epilogue): Use above to determine + function size. + * pa/pa.c (pa_output_function_prologue): Likewise. + +2002-06-05 David S. Miller + + * integrate.c (subst_constants): Handle 'B' RTL format. + +2002-06-05 Eric Christopher + + * varasm.c (make_decl_rtl): Fix comment for removed + halfpic.c. + +2002-06-05 Eric Christopher + + * Makefile.in: Remove missed halfpic bits. + +2002-06-05 Eric Christopher + + * toplev.c: Remove half-pic. + * config/mips/mips.c: Ditto. + * config/mips/mips.h: Ditto. Remove unused defines. + * config/mips/openbsd.h: Update comment to reflect above. + * config/mips/mips.md: Remove half-pic constraints. + * halfpic.h: Delete. + * halfpic.c: Ditto. + +2002-06-05 Jeffrey Law + + * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it + rejects (mem (lo_sum (reg) (unspec))), but will allow + (mem (lo_sum (reg) (symbol_ref)) for PA2.0. + +2002-06-05 Neil Booth + + * cpphash.h (_cpp_create_definition): Update prototype. + (_cpp_push_text_context, _cpp_create_trad_definition): New. + ( cpp_lex_identifier_trad): New. + (_cpp_set_trad_context): New. + * cppinit.c (cpp_finish_options): Don't conditionalize builtins. + * cpplib.c (SEEN_EOL): Update. + (lex_macro_node): Update for -traditional. + (cpp_push_buffer, _cpp_pop_buffer): Similarly. + * cppmacro.c (_cpp_create_definition): Split into + create_iso_definition() and _cpp_create_trad_definition(). + (warn_of_redefinition): Update prototype; handle traditional + macros. + (_cpp_push_text_context): New. + * cpptrad.c (skip_whitespace, push_replacement_text): New. + (lex_identifier): Call ht_lookup with correct start. + (_cpp_lex_identifier_tradm _cpp_create_trad_definition, + _cpp_set_trad_context): New. + (scan_out_logical_line): Update to handle changing contexts. + +Wed Jun 5 20:42:31 2002 J"orn Rennecke + + * config.gcc (sh-*-elf*, sh64*-*-elf*): Unify. + (shl*-*-elf*): Add. + * config/sh/t-be (MULTILIB_ENDIAN): Set. + * config/sh/t-le (MULTILIB_ENDIAN): Likewise. + * t-sh (MULTILIB_ENDIAN): Set. + (MULTILIB_OPTIONS): Use it. + * t-sh64 (MULTILIB_OPTIONS): Likewise. + (MULTILIB_DIRNAMES): Likewise. + +2002-06-05 Gabriel Dos Reis + + * toplev.h (report_error_function): Remove. + + * diagnostic.h (location_t): New datatype. + (text_info): Likewise. + (diagnostic_info): Likewise. + (output_prefix): New macro. + (diagnostic_last_function_changed): Likewise. + (diagnostic_set_last_function): Likewise. + (diagnostic_last_module_changed): Likewise. + (diagnostic_set_last_module): Likewise. + (report_diagnostic): Now macro. + (diagnostic_set_info): Declare. + + * diagnostic.c (report_problematic_module): Rename to + diagnostic_repor_current_module. + (set_diagnostic_context): Remove. + (count_error): Rename to diagnostic_error_count. + (error_function_changed): Remove. + (record_last_error_function): Likewise. + (error_module_changed): Likewise. + (record_last_error_module): Likewise. + (context_as_prefix): Rename to diagnostic_build_prefix. + (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer. + (diagnostic_set_info): New function. + + * objc/objc-act.c: #include diagnostic.h + (error_with_ivar): Adjust call to count_error. + (warn_with_method): Likewise. + * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h + +2002-06-05 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_build_va_list): Use + lang_hooks.types.make_type instead of make_node; set up + __va_list_tag type decl. + (xtensa_builtin_saveregs): Remove broken use of + RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P + for saved registers; add varargs alias set. + +2002-06-05 Neil Booth + +config: + * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS. + * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than + CPP_PREDEFINES and part of CPP_SPEC. + i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h, + i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly. + +Wed Jun 5 15:20:58 CEST 2002 Jan Hubicka + + * reg-stack.c (reg_to_stack): Do not call find_basic_blocks. + +2002-06-05 Alan Modra + + * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define. + +2002-06-04 Zack Weinberg + + * gengtype-yacc.y: Make sure all rules end with a semicolon. + +2002-06-04 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix + typo in function prototype and include "ggc.h" header. + +2002-06-04 Richard Henderson + + * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs. + (print_operand) ['U']: Likewise. + (alpha_expand_unaligned_store): Correct constants for 32-bit cross. + (alpha_expand_unaligned_store_words): Likewise. + (alpha_expand_builtin_vector_binop): Fix typo. + (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk, + umulh, and cix insns. + (one_arg_builtins): Add cix builtins. + (two_arg_builtins): Add ext, ins, msk, umulh builtins. + (alpha_expand_builtin): Fix typo in arity. + * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New. + (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh, + builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll, + builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh, + builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql, + builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz, + builtin_ctlz, builtin_ctpop): New. + * doc/extend.texi (Alpha Built-in Functions): Update. + +2002-06-04 Geoffrey Keating + + * gengtype.c (write_gc_root): Don't unnecessarily prevent + global variable-length arrays being roots. + + * config.gcc (powerpc-*-darwin*): Set config_gtfiles. + * configure.in (config_gtfiles): New variable. + (all_gtfiles): Initialize from config_gtfiles. + * configure: Regenerate. + +2002-06-04 Neil Booth + +config/i386: + * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h, + i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h, + mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h, + sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h, + win32.h (CPP_SPEC): Remove cpp_cpu. + * i386.h (TARGET_CPU_CPP_BUILTINS): Use. + (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die! + +2002-06-04 Janis Johnson + + * config/ia64/ia64.c (gen_thread_pointer): Fix variable name. + +2002-06-04 Jeff Law + Michael Matz + + * sched-int.h (struct deps): New field libcall_block_tail_insn. + * sched_deps.c (init_deps): Initialize libcall_block_tail_insn. + * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn + is set, then mark the current insn as being part of a libcall + scheduling group. + (sched_analyze): Set and clear libcall_block_tail_insn appropriately. + + * haifa-sched.c (schedule_block): Do not count USE or CLOBBER + insns against the issue rate. + +Tue Jun 4 19:29:42 CEST 2002 Jan Hubicka + + * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes. + * final.c (final_scan_insn): Likewise. + * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use + NOTE_EXPECTED_VALUE instead of NOTE_RANGE. + * haifa-sched.c (unlink_other_notes): Likeewise. + (reemit_notes): Likewise. + * print-rtl.c (print_rtx): Likewise. + * sched-deps (sched-analyze): Likewise. + * rtl.c (note_insn_name): Likewise. + * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill. + (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE. + (RANGE_*): Kill. + +2002-06-04 Jason Thorpe + + * varasm.c (mark_constants): Handle RTX format 'B'. + +2002-06-04 Neil Booth + + * cpphash.h (FIRST, LAST, CUR, RLIMIT): New. + (struct cpp_context): Add traditional fields. + * cppmacro.c (paste_all_tokens, push_ptoken_context, + push_token_context, cpp_get_token, _cpp_backup_tokens): Update. + * cpptrad.c (skip_comment, lex_identifier, + _cpp_read_logical_line_trad, scan_out_logical_line): Update. + +2002-06-04 Kazu Hirata + + * gbl-ctors.h: Fix formatting. + * gcc.c: Likewise. + * gccspec.c: Likewise. + * gcov.c: Likewise. + * gcov-io.h: Likewise. + * gcse.c: Likewise. + * ggc-common.c: Likewise. + * ggc.h: Likewise. + * ggc-page.c: Likewise. + * ggc-simple.c: Likewise. + * global.c: Likewise. + * graph.h: Likewise. + * gthr-dce.h: Likewise. + * gthr.h: Likewise. + * gthr-posix.h: Likewise. + * gthr-rtems.h: Likewise. + * gthr-solaris.h: Likewise. + * gthr-win32.h: Likewise. + +2002-06-03 Geoffrey Keating + + Merge from pch-branch: + + * gengtype.h (UNION_OR_STRUCT_P): New macro. + * gengtype.c (write_gc_structure_fields): Use it. + (write_gc_root): Use it here too. + + * gengtype.c (write_gc_structure_fields): Assume that lengths + of typenames fit into an 'int'; don't pass a size_t to "%d" in + printf. + (write_gc_marker_routine_for_structure): Likewise. + (write_gc_types): Likewise. + (write_gc_root): Likewise. + + * varray.h (VARRAY_CLEAR): New. + (varray_clear): Prototype. + * varray.c (varray_clear): New. + * cselib.c (reg_values_old): New. + (used_regs_old): New. + (cselib_init): Use cached varrays if available to avoid + generating large amounts of garbage. + (cselib_finish): Don't throw away old varrays. + + * final.c (insn_addresses_): Move out of ifdef. + + * varray.c (uses_ggc): Make more varray kinds GCable. + * varray.h (union varray_data_tag): Let gengtype see + fields 'generic' and 'te'. + * reg-stack.c: Include gt-reg-stack.h, ggc.h. + (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype. + (reg_to_stack): Don't call VARRAY_FREE. + * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE. + (insn_addresses_): Use gengtype to mark. + * gengtype.c (write_gc_structure_fields): Handle arrays of generic + pointers; handle generic pointers in unused union fields. + (get_output_file_with_visibility): Include cselib.h, + insn-addr.h in gtype-desc.c. + * function.c (prologue): Use gengtype to mark. + (epilogue): Likewise. + (sibcall_epilogue): Likewise. + * dependence.c: Include gt-dependence.h, ggc.h. + (struct def_use): Use gengtype to mark. + (struct loop): Likewise. + (struct induction): Likewise. + (struct dependence): Likewise. + (def_use_chain): Likewise. + (dep_chain): Likewise. + (loop_chain): Likewise. + (induction_chain): Likewise. + (init_dependence_analysis): Don't free anything, just clear pointers. + (build_def_use): Use GGC to allocate def_use. + (add_loop): Use GGC to allocate loop. + (find_induction_variable): Use GGC to allocate induction. + (check_node_dependence): Use GGC to allocate induction, dependence. + (dump_node_dependence): Don't free varrays. + (end_dependence_analysis): Likewise. + * cselib.h (struct cselib_val_struct): Use gengtype to mark. + (struct elt_loc_list): Likewise. + (struct elt_list): Likewise. + * cselib.c: Don't include obstack.h. + (hash_table): Use gengtype to mark. + (reg_values): Use gengtype to mark. + (used_regs): Use gengtype to mark. + (cselib_obstack): Delete. + (cselib_startobj): Delete. + (empty_vals): Mark as deletable. + (empty_elt_lists): Mark as deletable. + (empty_elt_loc_lists): Mark as deletable. + (new_elt_list): Use GGC to allocate struct elt_list. + (new_elt_loc_list): Use GGC to allocate struct elt_loc_list. + (clear_table): Don't delete obstack; don't unnecessarily clear + deletable variables. + (new_cselib_val): Use GGC to allocate struct cselib_val. + (cselib_init): Don't set up obstacks. Use GGC to allocate + hash table. + (cselib_finish): Just clear variables, don't free anything. + * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H). + (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H). + (dependence.o): Add dependency on gt-dependence.h, $(GGC_H). + (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c. + (gt-reg-stack.h): New rule. + (gt-dependence.h): New rule. + (gtype-desc.o): Add cselib.h, insn-addr.h. + + * varray.c: Use only necessary headers. + (element_size): New. + (uses_ggc): New. + (varray_init): Take type, not size. Use GGC if appropriate. + (varray_grow): Update for change to struct varray_head_tag. + Use GGC if appropriate. + * varray.h (struct const_equiv_data): Use gengtype. + (enum varray_data_enum): New. + (union varray_data_tag): Use gengtype. + (struct varray_head_tag): Use gengtype. Replace size field with + enum varray_data_enum. + (varray_init): Update prototype. + (VARRAY_SCHED_INIT): Delete. + (VARRAY_*_INIT): Update for change to varray_init. + (VARRAY_SCHED): Delete. + (VARRAY_PUSH_SCHED): Delete. + (VARRAY_TOP_SCHED): Delete. + * tree.h: Update for change to length specifier. + * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE. + (clone_body): Likewise. + * ssa.h (ssa_definition): Use gengtype to mark. + * ssa.c (convert_from_ssa): Don't use VARRAY_FREE. + * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE. + * rtl.h (struct rtvec_def): Update for change to length specifier. + * integrate.c (expand_inline_function): Don't use VARRAY_FREE. + (struct initial_value_struct): Update for change to length specifier. + * ggc.h (ggc_add_rtx_varray_root): Delete prototype. + (ggc_add_tree_varray_root): Delete prototype. + (ggc_mark_rtx_varray): Delete prototype. + (ggc_mark_tree_varray): Delete prototype. + * ggc-common.c (ggc_add_rtx_varray_root): Delete. + (ggc_add_tree_varray_root): Delete. + (ggc_mark_rtx_varray): Delete. + (ggc_mark_tree_varray): Delete. + (ggc_mark_rtx_varray_ptr): Delete. + (ggc_mark_tree_varray_ptr): Delete. + * gengtype.h (enum typekind): Remove TYPE_VARRAY. + (create_varray): Delete prototype. + * gengtype.c (varrays): Delete. + (create_varray): Delete. + (adjust_field_type): Detect array of string pointers. + (process_gc_options): Remove code to handle varray_type option. + (set_gc_used_type): Remove TYPE_VARRAY case. + (output_escaped_param): New. + (write_gc_structure_fields): Use output_escaped_param on all + parameters. Handle 'skip' with 'use_param' option. Handle + arrays of strings. Remove TYPE_VARRAY handling. + (write_gc_roots): Use boolean to detect 'length' option. + * gengtype-yacc.y (VARRAY_TYPE): Delete token. + (struct_fields): Call adjust_field_type on array fields. + (type): Remove VARRAY_TYPE case. + (type_option): Likewise. + * gengtype-lex.l: Don't consider varray_type a keyword. + * function.h: Update for change to length specifier. + (free_eh_status): Delete prototype. + * function.c (free_after_compilation): Don't call free_eh_status. + (reorder_blocks): Don't use VARRAY_FREE. + * except.c (struct eh_status): Update for change to length specifier. + remove varray_type specifier. + (free_eh_status): Delete. + * dwarf2out.c: Include gt-dwarf2out.h. + (used_rtx_varray): Use gengtype to mark, move + outside ifdefs. + (incomplete_types): Likewise. + (decl_scope_table): Likewise. + (dwarf2out_init): Don't call ggc_add_tree_varray_root. + * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE. + * c-tree.h (struct lang_type): Update for change to length specifier. + * c-parse.in (yylexstring): Don't use VARRAY_FREE. + * c-objc-common.c: Include gt-c-objc-common.h. + (deferred_fns): Mark for gengtype. + (c_objc_common_init): Don't call ggc_add_tree_varray_root. + (expand_deferred_fns): Just set deferred_fns to 0 to free it. + * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h. + (gtype-desc.o): Update dependencies. + (dwarf2out.o): Add gt-dwarf2out.h. + (varray.o): Update dependencies. + (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c. + (gt-c-objc-common.h): New rule. + (gt-dwarf2out.h): New rule. + * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE. + + * doc/gty.texi (GTY Options): Correct spelling. + (GGC Roots): Likewise. + * Makefile.in (TEXI_CPP_FILES): New. + (TEXI_GCC_FILES): New. + (TEXI_GCCINT_FILES): New. + (TEXI_CPPINT_FILES): New. + ($(docdir)/cpp.info): Use new macros. + ($(docdir)/gcc.info): Likewise. + ($(docdir)/gccint.info): Likewise. + ($(docdir)/cppinternals.info): Likewise. + (cpp.dvi): Likewise. + (gcc.dvi): Likewise. + (gccint.dvi): Likewise. + (cppinternals.dvi): Likewise. + + * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi. + * doc/gccint.texi (Top): Include gty.texi. + * doc/gty.texi: New file. + + * bitmap.c: Include ggc.h, gt-bitmap.h. + (bitmap_ggc_free): New. + (bitmap_elem_to_freelist): New. + (bitmap_element_free): Use bitmap_elem_to_freelist. + (bitmap_element_allocate): Allow use of GGC. + (bitmap_clear): Use bitmap_elem_to_freelist. + (bitmap_copy): Update for change to bitmap_element_allocate. + (bitmap_set_bit): Likewise. + (bitmap_operation): Update for changes elsewhere. + (bitmap_initialize): Allow to create bitmaps that will use GGC. + * bitmap.h (struct bitmap_element_def): Use gengtype. + (struct bitmap_head_def): Likewise. Also add 'using_obstack' field. + (bitmap_initialize): Add extra parameter. + (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize. + (BITMAP_ALLOCA): Delete. + (BITMAP_XMALLOC): Update for change to bitmap_initialize. + (BITMAP_GGC_ALLOC): New. + * Makefile.in (gtype-desc.o): Add bitmap.h. + (bitmap.o): Add gt-bitmap.h, $(GGC_H). + (GTFILES): Add bitmap.c. + (gt-bitmap.h): New rule. + ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h. + * basic-block.h: Update for changes to bitmap_initialize. + * except.c (exception_handler_label_map): Move into... + (struct eh_status): Here. + (struct eh_region): Make 'aka' GCable. + (free_eh_status): Don't need to specially handle + exception_handler_label_map. + (add_ehl_entry): Update for changes to exception_handler_label_map. + (find_exception_handler_labels): Likewise. + (remove_exception_handler_label): Likewise. + (maybe_remove_eh_handler): Likewise. + (for_each_eh_label): Likewise. + (remove_eh_handler): Allocate 'aka' using GGC. + * gengtype.c (get_output_file_with_visibility): Add bitmap.h + to list of includes. + + * gengtype.c (write_gc_marker_routine_for_structure): Name + the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'. + (write_gc_types): Arrange for the tests with NULL to be inlined. + (write_gc_roots): Update uses of procedure pointers. + * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def. + + * Makefile.in (explow.o): Add dependency on gt-explow.h. + (sdbout.o): Add dependency on gt-sdbout.h. + + * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries. + (mem_attrs_htab): Likewise. + (init_emit_once): Don't call ggc_add_deletable_htab. + * fold-const.c (size_htab): Use gengtype to clear unused entries. + (size_int_type_wide): Don't call ggc_add_deletable_htab. + * gengtype.c (finish_root_table): Add LASTNAME and TNAME + parameters, use them, change callers. + (write_gc_root): Add IF_MARKED parameter, use it, change callers. + (write_gc_roots): Handle 'if_marked' option. + (main): Don't need to call set_gc_used_type any more. + * ggc.h (ggc_htab_marked_p): Delete. + (ggc_htab_mark): Delete. + (struct ggc_cache_tab): New. + (gt_ggc_cache_rtab): New declaration. + * ggc-common.c (struct d_htab_root): Delete. + (d_htab_roots): Delete. + (ggc_add_deletable_htab): Delete. + (ggc_htab_delete): Handle new htab-deleting mechanism. + (ggc_mark_roots): Use new htab-deleting mechanism. + * tree.c (type_hash_table): Use gengtype to clear unused entries. + Make static. + (init_obstacks): Don't call ggc_add_deletable_htab. + + * objc/objc-act.h (struct hashed_attribute): Use gengtype. + (struct hashed_entry): Likewise. + (nst_method_hash_list): Likewise. + (cls_method_hash_list): Likewise. + (HASH_ALLOC_LIST_SIZE): Delete. + (ATTR_ALLOC_LIST_SIZE): Delete. + * objc/objc-act.c (hash_init): Use ggc to allocate + nst_method_hash_list, cls_method_hash_list. + (hash_enter): Use ggc to allocate; allocate one entry at a time. + (hash_add_attr): Likewise. + (ggc_mark_hash_table): Delete. + (objc_act_parse_init): Delete. + (objc_init): Delete reference to objc_act_parse_init. + * tlink.c: Replace hash.h with hashtab.h. Explicitly include + obstack.h. Replace references to 'struct hash_table' with htab_t. + (struct symbol_hash_entry): Replace hash header with key field. + (struct file_hash_entry): Replace hash header with key field. + (struct demangled_hash_entry): Replace hash header with key field. + (hash_string_eq): New. + (hash_string_hash): New. + (symbol_hash_newfunc): Delete. + (symbol_hash_lookup): Modify to use htab_t. + (file_hash_newfunc): Delete. + (file_hash_lookup): Modify to use htab_t. + (demangled_hash_newfunc): Delete. + (demangled_hash_lookup): Modify to use htab_t. + (tlink_init): Modify to use htab_t. + * hash.h: Delete. + * hash.c: Delete. + * ggc.h: Delete forward structure declarations. + Delete prototypes for deleted functions. + * ggc-common.c: Don't include hash.h. + (ggc_add_tree_hash_table_root): Delete. + (ggc_mark_tree_hash_table_entry): Delete. + (ggc_mark_tree_hash_table): Delete. + (ggc_mark_tree_hash_table_ptr): Delete. + * gengtype.c (write_gc_structure_fields): Allow param_is option. + (write_gc_marker_routine_for_structure): Use visibility of + the parameter if there is one. + * function.c: Replace hash.h with hashtab.h. Replace references + to 'struct hash_table *' with htab_t. + (struct insns_for_mem_entry): Include a plain key. + (fixup_var_refs_insns_with_hash): Update to use htab_t. + (insns_for_mem_newfunc): Delete. + (insns_for_mem_hash): Update to use htab_t. + (insns_for_mem_comp): Likewise. + (insns_for_mem_walk): Likewise. + * c-lang.c: Include ggc.h. + * Makefile.in (OBJS): Remove hash.o. + (c-lang.o): Add GGC_H. + (COLLECT2_OBJS): Remove hash.o. + (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H. + (ggc-common.o): Remove hash.h. + (function.o): Remove hash.h, add HASHTAB_H. + (genautomata.o): Remove hash.h, add HASHTAB_H. + + * varasm.c (mark_const_str_htab_1): Delete. + (mark_const_str_htab): Delete. + (const_str_htab_del): Delete. + (const_str_htab): Use gengtype to mark. + (init_varasm_once): Use gengtype to mark hashtables. Use GC to + allocate them. + * tree.c (mark_tree_hashtable_entry): Delete. + (mark_tree_hashtable): Delete. + * tree.h (mark_tree_hashtable): Delete prototype. + * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL. + (ggc_mark): Likewise. + (ggc_calloc): New. + (htab_create_ggc): New. + * ggc-common.c (ggc_calloc): New. + * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT. + (struct type): Add param_struct structure. + * gengtype.c (param_structs): New. + (adjust_field_type): Handle param_is option. + (set_gc_used_type): Handle TYPE_PARAM_STRUCT. + (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c. + (write_gc_structure_fields): Add new PARAM parameter. Update + callers. Handle use_param option. Handle TYPE_PARAM_STRUCT. + (write_gc_marker_routine_for_structure): Add new PARAM parameter. + Use it to generate function name. Update callers. + (write_gc_types): Add new PARAM_STRUCTS parameter. Update callers. + Process them. + (write_gc_roots): Handle TYPE_PARAM_STRUCT. Allow param_is + option. + (main): Define PTR as pointer-to-scalar. Don't specially + mark deferred_string or ehl_map_entry. + * gengtype-yacc.y (PARAM_IS): Add new token. + (externstatic): Use adjust_field_type. + (type_option): Add PARAM_IS. + * gengtype-lex.l: Add rule for typedef of function pointers. + Add rule for PARAM_IS. + (IWORD): Add size_t. + * except.c (exception_handler_label_map): Use gengtype to mark. + (type_to_runtime_map): Likewise. + (mark_ehl_map_entry): Delete. + (mark_ehl_map): Delete. + (init_eh): Use gengtype for roots; use GC to allocate hash tables. + (t2r_mark_1): Delete. + (t2r_mark): Delete. + * Makefile.in (gtype-desc.o): Correct dependencies. + (GTFILES): Add hashtab.h. + (genautomata.o): Actually uses hashtab.h. + + * Makefile.in (stringpool.o): Add $(GGC_H). + (dwarf2asm.o): Likewise. + (GTFILES): Add hashtable.h. + * c-common.h (struct c_common_identifier): Use gengtype. + * c-decl.h (c_mark_tree): Delete. + * c-lang.c (LANG_HOOKS_MARK_TREE): Delete. + * c-tree.h (struct lang_identifier): Use gengtype. + (union lang_tree_node): New. + (c_mark_tree): Delete prototype. + * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy + dwarf2_debug_hooks. + * gengtype-lex.l (IWORD): Allow 'bool'. + (ptr_alias): Match. + * gengtype-yacc.y (ALIAS): New token. + (type_option): New rule. + (option): Use type_option. + * gengtype.c (process_gc_options): New. + (set_gc_used_type): Use it. + (write_gc_structure_fields): Add 'bitmap' parameter, change callers. + Add new variable 't' to hold the type of the field being processed. + Add more error checking. Use UNION_P when looking at 'desc' option. + Handle language-specific structures containing other + language-specific structures. + (write_gc_types): Handle 'ptr_alias' option. + (main): Don't need to specially output lang_type, lang_decl, lang_id2. + * ggc-common.c (ggc_pending_trees): Delete. + (ggc_mark_roots): Don't manipulate ggc_pending_trees. + (ggc_mark_trees): Delete. + (gt_ggc_m_tree_node): Delete. + * ggc.h (ggc_pending_trees): Delete. + (ggc_mark_tree): Make alias of gt_ggc_m_tree_node. + * hashtable.h (ht_identifier): Use gengtype. + * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete. + * langhooks.h (struct lang_hooks): Delete mark_tree. + * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks + anyway. + * system.h: Poison LANG_HOOKS_MARK_TREE. + * tree.c (tree_node_structure): New. + * tree.h (struct tree_common): Use gengtype. + (struct tree_int_cst): Likewise. + (struct tree_real_cst): Likewise. + (struct tree_string): Likewise. + (struct tree_complex): Likewise. + (struct tree_vector): Likewise. + (struct tree_identifier): Likewise. + (struct tree_list): Likewise. + (struct tree_vec): Likewise. + (struct tree_exp): Likewise. + (struct tree_block): Likewise. + (struct tree_type): Likewise. + (struct tree_decl): Likewise. + (enum tree_structure_enum): New. + (union tree_node): Use gengtype, with an alias. + (tree_node_structure): Prototype. + * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete. + + Merge to tag pch-merge-20020430. The LANG_HOOKS_FUNCTION_MARK + macro was deleted. The LANG_HOOKS_FUNCTION_FREE macro was renamed + to LANG_HOOKS_FUNCTION_FINAL. + * Makefile.in (GTFILES): Add bitmap.h. + * except.c (struct eh_region): Mark field 'aka' to be skipped. + + * config/alpha/alpha.c [TARGET_ABI_UNICOSMK] + (alpha_init_machine_status): Give proper type. + * Makefile.in (c-lang.o): Depend on gtype-c.h. + (optabs.o): Depend on gt-optabs.h. + (GTFILES): Add optabs.o. + (gt-optabs.h): Add rule. + * optabs.c: Include gt-optabs.h. + + * gengtype.c (set_gc_used_type): Correct some errors in last change. + (write_gc_structure_fields): If a field which should be NULL is + not, abort. + * c-pragma.c: Move struct align_stack and variable alignment_stack + out from the ifdef. + + * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h. + * config/xtensa/xtensa.c: Include gt-cris.h. + (struct machine_function): Use gengtype to mark. + * config/mmix/mmix.h (struct machine_function): Use gengtype + to mark. + * config/cris/t-cris: Add dependencies for gt-cris.h. + * config/cris/cris.c: Include gt-cris.h. + (struct machine_function): Use gengtype to mark. + * config/rs6000/rs6000.h (struct machine_function): Use gengtype + to mark. + * doc/tm.texi (Per-Function Data): Delete references to + mark_machine_status. + * config/ia64/ia64.c (ia64_override_options): Don't set + mark_machine_status. + * config/i386/i386.c (override_options): Likewise. + * config/d30v/d30v.c (d30v_init_expanders): Likewise. + * config/arm/arm.c (arm_init_expanders): Likewise. + * config/alpha/alpha.c (override_options): Likewise. + * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO. + * gengtype.c (set_gc_used_type): Handle 'maybe_null' option. + (write_gc_structure_fields): Don't handle 'really' option. + Handle 'maybe_null' option. + (write_gc_types): Handle 'maybe_null' option. + * function.h (struct function): Don't use "really". + (mark_machine_status): Delete declaration. + (mark_lang_status): Delete declaration. + (gt_ggc_mr_machine_function): Delete prototype. + (gt_ggc_mr_language_function): Delete prototype. + * function.c (mark_machine_status): Delete. + (mark_lang_status): Delete. + (gt_ggc_mr_machine_function): Delete. + (gt_ggc_mr_language_function): Delete. + * c-tree.h (mark_c_function_context): Delete prototype. + * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status. + * c-decl.c (struct language_function): Rename from struct + c_language_function. Update uses. Use gengtype to mark. + (mark_c_function_context): Delete. + * c-common.h (struct c_language_function): Rename from struct + language_function. + (mark_stmt_tree): Delete prototype. + (c_mark_lang_decl): Delete prototype. + (mark_c_language_function): Delete prototype. + * c-common.c (mark_stmt_tree): Delete. + (c_mark_lang_decl): Delete. + (mark_c_language_function): Delete. + + * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT. + (lang_bitmap): New typedef. Use where appropriate. + (struct type): Add gc_used field, lang_struct field. + (UNION_P): New macro. + (new_structure): New prototype. + (find_structure): Remove 'pos' parameter. Change all callers. + * gengtype-lex.l: Update for changes to find_structure. + * gengtype-yacc.y (typedef_struct): Use new_structure. + (yacc_ids): Suppress warning. + (type): Use new_structure. + * gengtype.c (string_type): Update for changes to struct type. + (find_structure): Just find a structure, don't worry about + creating one. + (new_structure): New. + (note_yacc_type): Use new_structure. + (set_gc_used_type): New. + (set_gc_used): New. + (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT. + (write_gc_types): Handle TYPE_LANG_STRUCT. + (write_gc_marker_routine_for_structure): New. + (main): Call set_gc_used. Add some calls to set_gc_used_type + for places where GCC doesn't use gengtype properly yet. + * ggc.h (gt_ggc_m_rtx_def): Don't prototype. + (gt_ggc_m_tree_node): Likewise. + + * varasm.c (copy_constant): Call expand_constant if we hit + something we can't recognize. + + * ggc-common.c (ggc_mark_rtvec_children): Delete. + (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec. + (lang_mark_false_label_stack): Delete. + * rtl.h (struct rtvec_def): Use gengtype to mark. + * ggc.h (ggc_mark_rtvec): Delete. + (gt_ggc_m_rtvec_def): Delete. + (ggc_mark_nonnull_tree): Delete. + (ggc_mark_rtvec_children): Delete prototype. + (lang_mark_false_label_stack): Delete declaration. + + * gengtype.h (note_yacc_type): Add prototype. + * gengtype.c (note_yacc_type): New function. + * gengtype-lex.l: Add lexer support for yacc files. + * gengtype-yacc.y (start): Extract union from yacc files. + (yacc_union): New rule. + (yacc_typematch): New rule. + (yacc_ids): New rule. + (enum_items): Tweak for efficiency. + (optionseq): Likewise. + + * c-common.h (struct language_function): Use gengtype. + (struct c_lang_decl): Likewise. + * c-tree.h (struct lang_decl): Likewise. + (struct lang_type): Likewise. + * c-decl.c (lang_mark_tree): Use generated marker routines to mark + tree language substructures. + + * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with + ggc_mark_tree. + * dwarf2asm.c (mark_indirect_pool_entry): Likewise. + + * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays. + + * stmt.c (struct nesting): Add discriminator. Use gengtype to + mark. Remove 'data.block.cleanup_ptr' field. + (struct stmt_status): Use usual technique to mark struct nesting. + (gt_ggc_mr_nesting_cond): Delete. + (gt_ggc_mr_nesting_loop): Delete. + (gt_ggc_mr_nesting_block): Delete. + (gt_ggc_mr_nesting_case_stmt): Delete. + (expand_start_cond): Set discriminator. + (expand_start_loop): Likewise. + (expand_start_null_loop): Likewise. + (expand_start_bindings_and_block): Set discriminator. Don't set + deleted fields. + (expand_decl_cleanup): Replace 'cleanup_ptr' with + &thisblock->data.block.cleanups. + (expand_start_case): Set discriminator. + (expand_start_case_dummy): Set discriminator. + + * ggc-callbacks.c: Remove. + + * gengtype.h (struct type): Add 'u.s.bitmap' field. + (find_structure): Add 'pos' parameter. + * gengtype-lex.l: Update callers to find_structure. + * gengtype-yacc.y: Likewise. + * gengtype.c (find_structure): Allow for structures to be defined + in multiple language backends. + (get_output_file_with_visibility): Include debug.h in gtype-desc.c. + (counter): Rename to gc_counter. + (write_gc_structure_fields): Fail when writing out fields for + an incomplete structure. Ignore arrays of scalars. Handle + 'tree_vec' special. + (write_gc_types): Reset counter for each procedure written. + + * stmt.c (add_case_node): Use GGC to allocate struct case_node. + (free_case_nodes): Delete. + (expand_end_case_type): Delete call to free_case_nodes. + + * Makefile.in (cselib.o): Include gt-.h. + (gcse.o): Likewise. + (profile.o): Likewise. + (alias.o): Likewise. + (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and + alphabetize backend files. + (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules. + * alias.c: Use gengtype for roots. + * c-common.h (struct stmt_tree_s): Use gengtype. + * c-decl.c: Use gengtype for roots. + * cselib.c: Use gengtype for roots. + * expr.c: Use gengtype for roots. + * fold-const.c: Use gengtype for roots. + * gcse.c: Use gengtype for roots. + * gengtype-lex.l: Handle typedefs of function types. + Allow for empty array bounds. + Allow processing to stop on initializers. + * gengtype-yacc.y (externstatic): Stop processing on initializers. + (semiequal): New rule. + * gengtype.c (create_file): Tidy output files. + (get_output_file_with_visibility): Fix paren warning. Fix bug + involving multiple input files mapping to one output file. + (write_gc_structure_fields): Skip arrays of scalars. + (write_gc_types): Tidy output files. + (write_gc_root): New function. + (write_gc_roots): Fix bugs, add support for roots that are + structures. + * ggc-common.c (ggc_mark_rtx_ptr): Delete. + (ggc_mark_tree_ptr): Delete. + (ggc_add_rtx_root): Delete. + (ggc_add_tree_root): Delete. + (ggc_del_root): Delete. + * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to + allocate struct initial_value_struct. + * profile.c: Use gengtype for roots. + * sdbout.c: Use gengtype for roots. + * varasm.c (mark_weak_decls): Delete unused prototype. + (mark_const_hash_entry): Delete unused function. + * config/darwin-protos.h: Use gengtype for roots. + (machopic_add_gc_roots): Delete. + * config/arm/arm.c: Use gengtype for roots. + * config/arm/arm.h: Use gengtype for roots. + * config/c4x/c4x-protos.h: Use gengtype for roots. + * config/c4x/c4x.c (c4x_add_gc_roots): Delete. + * config/d30v/d30v-protos.h: Use gengtype for roots. + * config/d30v/d30v.c (d30v_add_gc_roots): Delete. + * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots. + * config/dsp16xx/dsp16xx.h: Use gengtype for roots. + * config/ia64/ia64-protos.h: Use gengtype for roots. + * config/ia64/ia64.c (ia64_add_gc_roots): Delete. + * config/m68hc11/m68hc11-protos.h: Use gengtype for roots. + * config/m68hc11/m68hc11.c (z_reg): Make global. + (z_reg_qi): Make global. + (m68hc11_add_gc_roots): Delete. + * config/mcore/mcore-protos.h: Use gengtype for roots. + * config/mcore/mcore.c (mcore_add_gc_roots): Delete. + * config/mips/mips.c (mips_add_gc_roots): Delete. + * config/mips/mips.h: Use gengtype for roots. + * config/mmix/mmix.c (override_options): Use gengtype for roots. + * config/mmix/mmix.h: Use gengtype for roots. + * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots. + * config/mn10200/mn10200.h: Use gengtype for roots. + * config/pa/pa.c: Use gengtype for roots, marking. + (struct deferred_plabel): Use GGC, gengtype. + (pa_add_gc_roots): Delete. + (mark_deferred_plabels): Delete. + * config/pj/pj-protos.h: Use gengtype for roots. + * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define. + * config/rs6000/rs6000.c: Use gengtype for roots. Don't call + machopic_add_gc_roots. + * config/rs6000/rs6000.h: Use gengtype for roots. + * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h. + (gt-darwin.h): Add rule. + * config/sh/sh.c: Use gengtype for roots. + * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h. + (gt-sh.h): Add rule. + * config/sparc/sparc.c: Use gengtype for roots. + (sparc_add_gc_roots): Delete. + (struct ultrasparc_pipeline_state): Use GGC, gengtype. + (mark_ultrasparc_pipeline_state): Delete. + * config/sparc/sparc.h: Use gengtype for roots. + + * Makefile.in (c-parse.o): Update dependencies. + (c-common.o): Likewise. + (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in. + Add dependencies for the files they generate. + * c-common.c: Replace ggc_add_* uses with GTY annotations. + * c-common.h: Likewise. + * c-decl.c: Likewise. + (gt_ggc_mp_binding_level): Delete. + * c-lang.c: Include gtype-c.h. + * c-parse.in: Replace ggc_add_* uses with GTY annotations. Include + gt-c-parse.h. + * c-pragma.h: Replace ggc_add_* uses with GTY annotations. + (gt_ggc_mp_align_stack): Delete. + * c-tree.h: Replace ggc_add_* uses with GTY annotations. + * function.c: Replace ggc_add_* uses with GTY annotations. + (gt_ggc_mp_function): Delete. + * function.h: Replace ggc_add_* uses with GTY annotations. + * gengtype.c (lang_names): New. + (NUM_BASE_FILES): New. + (open_base_files): Create language base files. + (startswith): New. + (get_file_basename): New. + (get_base_file_bitmap): New. + (get_output_file_with_visibility): Rename from get_output_file. + Add more mappings for various C/Objc filenames. + (finish_root_table): New. + (write_gc_roots): Handle dependencies and scoping properly. + * gengtype.h: Add prototypes for new functions. + * ggc-common.c (struct deletable_root): Delete. + (deletables): Delete. + (ggc_add_deletable_root): Delete. + (ggc_mark_roots): No need to deal with deleted functionality. + * ggc.h (ggc_add_deletable_root): Delete prototype. + * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency. + (gtype-objc.h): Add rule to create. + * objc/config-lang.in (gtfiles): New. + * objc/objc-act.c: Allocate imp_list using GGC. Replace uses of + ggc_add_* with GTY markers. Include gtype-objc.h. + (ggc_mark_imp_list): Delete. + * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers. + * objc/objc-lang.c: Random Whitespace Change. + + * except.h (exception_handler_labels): Delete. + (get_exception_handler_labels): New. + * except.c (exception_handler_labels): Delete. + (struct eh_status): Add exception_handler_labels field. + (doing_eh): Don't add exception_handler_labels as root. + (free_eh_status): Don't need to free exception_handler_labels. + (get_exception_handler_labels): New. + (find_exception_handler_labels): Update for move of + exception_handler_labels. + (remove_exception_handler_label): Likewise. + * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels. + * jump.c (rebuild_jump_labels): Likewise. + * loop.c (find_and_verify_loops): Likewise. + * sched-rgn.c (is_cfg_nonregular): Likewise. + + * gengtype.c (write_gc_structure_fields): Handle variable-length + TYPE_ARRAYs. + + * varasm.c (struct weak_syms): Use GGC, gengtype. + (mark_weak_decls): Delete. + (weak_decls): Likewise. + (add_weak): Likewise. + (remove_from_pending_weak_list): Likewise. + (init_varasm_once): Likewise. + + * Makefile.in (gtype-desc.o): Add libfuncs.h dependency. + (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c, + stor-layout.c, regclass.c, and lists.c. + Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h + gt-regclass.h and gt-lists.h on s-gtype. + * emit-rtl.c: Use gengtype for roots. Include gt-emit-rtl.h. + * except.c: Use gengtype for roots. + * explow.c: Use gengtype for roots. Include gt-explow.h. + * expr.h (init_stor_layout_once): Delete prototype. + * function.c: Use gengtype for roots. + * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing. + * gengtype-yacc.y (start): Can also be an externstatic. + (externstatic): New production. + (struct_fields): Correct array bounds inversion for 2-d arrays. + * gengtype.c (variables): New variable. + (note_variable): New function. + (get_output_file): Include libfuncs.h into gtype-desc.c. + (get_output_file_name): New function. + (write_gc_structure_fields): Suppress warnings. + (write_gc_types): Make static. + (put_mangled_filename): New function. + (write_gc_roots): New function. + (main): Call write_gc_roots. + * gengtype.h (note_variable): Prototype. + (get_output_file_name): Prototype. + (write_gc_types): Delete prototype. + * ggc.h: Clean up unnecessary structure predefinitions. + (struct ggc_root_tab): Define. + (gt_ggc_m_rtx_def): Make function, not macro. + (gt_ggc_m_tree_node): Likewise. + * libfuncs.h: Use gengtype for roots. + * lists.c: Use gengtype for roots. Include gt-lists.h. + (init_EXPR_INSN_LIST_cache): Delete. + * optabs.c: Use gengtype for roots. + (gt_ggc_mp_optab): Delete. + * optabs.h: Use gengtype for roots. + * regclass.c: Use gengtype for roots. Include gt-regclass.h. + * rtl.h: Use gengtype for roots. + (init_EXPR_INSN_LIST_cache): Delete prototype. + * stor-layout.c: Use gengtype for roots. + Include gt-stor-layout.h. + (init_stor_layout_once): Delete. + * toplev.c: Use gengtype for roots. Delete calls to deleted + routines. + * tree.c: Use gengtype for roots. + * tree.h: Use gengtype for roots. + * varasm.c: Use gengtype for roots. + + * Makefile.in (GTFILES): Add @all_gtfiles@. + * configure: Regenerate. + * configure.in: Construct all_gtfiles from the gtfiles definitions + in config-lang.in. + * gengtype-yacc.y (type): Warn about duplicate structure names. + * gengtype.c (get_output_file): Handle .c files in language + subdirectories. + + * Makefile.in (GTFILES): Run gengtype on all the config files + and on the target .c file. + * except.c (mark_eh_region): Delete. + (init_eh_for_function): Use GGC on struct eh_status. + (mark_eh_status): Delete. + (free_eh_status): Use GGC. + (expand_eh_region_start): Use GGC to + (collect_eh_region_array): Allocate last_region_number using GGC. + (duplicate_eh_region_1): Use GGC to allocate struct eh_region. + (remove_eh_handler): Let GGC free struct eh_region. + (add_call_site): Use GGC to reallocate call_site_record array. + * function.c (init_machine_status): Update calling sequence. + (mark_machine_status): Likewise. + (mark_lang_status): Likewise. + (prepare_function_start): Update init_machine_status call. + (mark_function_status): Delete. + (maybe_mark_struct_function): Delete. + (ggc_mark_struct_function): Delete. + (gt_ggc_mp_function): New. + (gt_ggc_mr_machine_function): New. + (gt_ggc_mr_language_function): New. + (init_function_once): Use canonical names. + * function.h (struct function): Use gengtype. + (init_machine_status): Return the structure. + (mark_machine_status): Take a 'void *'. + (mark_lang_status): Likewise. + * ggc-common.c (ggc_mark_trees): Use canonical name for + ggc_mark_struct_function. + * tree.h (ggc_mark_struct_function): Delete prototype. + * config/alpha/alpha.c (alpha_mark_machine_status): Delete. + (alpha_init_machine_status): Likewise. + (override_options): Use canonical name for alpha_mark_machine_status. + * config/alpha/unicosmk.h (struct machine_function): Use gengtype. + * config/arm/arm.h (struct machine_function): Use gengtype. + * config/arm/arm.c (arm_mark_machine_status): Delete. + (arm_init_machine_status): Update calling sequence. + (arm_init_expanders): Use canonical name for arm_mark_machine_status. + * config/cris/cris.c (cris_init_machine_status): Update + calling sequence. + * config/d30v/d30v.h (struct machine_function): Use gengtype. + * config/d30v/d30v.c (d30v_init_machine_status): Update + calling sequence. + (d30v_mark_machine_status): Delete. + * config/i386/i386.c: Include gt-i386.h. + (struct machine_function): Use gengtype. + (ix86_init_machine_status): Update calling sequence. + (ix86_mark_machine_status): Delete. + (override_options): Use canonical namke for ix86_mark_machine_status. + * config/ia64/ia64.h (struct machine_function): Use gengtype. + * config/ia64/ia64.c (ia64_init_machine_status): Update calling + sequence. + (ia64_mark_machine_status): Delete. + (ia64_override_options): Use canonical name for + ia64_mark_machine_status. + * config/mmix/mmix.c (mmix_init_machine_status): Update calling + sequence. + * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise. + * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise. + * gengtype.c (get_output_file): Fix warning. + (main): Add prototype to suppress warning. + * tree.c: Remove tree_hash_mark prototype. + + * tree.h (init_stmt): Delete prototype. + * toplev.c (lang_independent_init): Don't call init_stmt. + * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'. + (stmt_obstack): Delete. + (POPSTACK): No need to free 'struct nesting'. + (gt_ggc_mr_nesting_cond): Use canonical names. + (gt_ggc_mr_nesting_loop): Use canonical names. + (gt_ggc_mr_nesting_block): Use canonical names. + (gt_ggc_mr_nesting_case_stmt): Use canonical names. + (mark_stmt_status): Delete. + (init_stmt): Delete. + (clear_last_expr): Clear both last_expr_type and last_expr_value. + Use it everywhere that last_expr_type was cleared. + * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root. + (zap_lists): Delete. + * ggc.h (ggc_add_deletable_root): Prototype. + (mark_stmt_status): Remove prototype. + * ggc-common.c (ggc_add_deletable_root): New. + (ggc_mark_roots): Handle deletable roots. + * function.c (ggc_mark_struct_function): Use canonical name + for mark_stmt_status. + * emit-rtl.c (free_sequence_stack): New. + (start_sequence): Use a freelist for sequences. + (end_sequence): Likewise. + (init_emit_once): Add free_sequence_stack as a deleteable root. + * c-pragma.c Include gt-c-pragma.h. + (struct align_stack): Use gengtype. + (push_alignment): Use GGC for struct align_stack. + (mark_align_stack): Delete. + (gt_ggc_mp_align_stack): New. + (init_pragma): Use canonical name for mark_align_stack. + * c-decl.c: Include gt-c-decl.h. + (struct binding_level): Use gengtype. + (make_binding_level): Use GGC; handle the freelist here. + (pop_binding_level): New. + (pushlevel): Move code into make_binding_level. + (push_label_level): Likewise. + (poplevel): Move code into pop_binding_level. + (pop_label_level): Likewise. + (mark_binding_level): Delete. + (gt_ggc_mp_binding_level): New. + (c_init_decl_processing): Use canonical name for mark_binding_level. + Add free_binding_level as deletable root. + (mark_c_function_context): Use canonical name for mark_binding_level. + * Makefile.in (c-decl.o): Add gt-c-decl.h. + (c-pragma.o): Add gt-c-pragma.h. + (GTFILES): Add c-decl.c and c-pragma.c. + (gt-c-decl.h, gt-c-pragma.h): Create using gengtype. + + * tree.c (struct type_hash): Use gengtype. + (init_obstacks): Use canonical name for type_hash_mark. + (type_hash_mark): Delete. + Include gt-tree.h. + * rtl.h (struct mem_attrs): Use gengtype. + * optabs.h (struct optab): Use gengtype. + * optabs.c (expand_binop): Squish signed/unsigned warning. + (mark_optab): Make local, use canonical name, use autogenerated + marker procedure. + (init_optabs): Use canonical name for mark_optab. + (new_optab): Use GGC to allocate optabs. + * ggc.h: Delete mark_optab prototype. + * ggc-common.c (ggc_mark_rtx_children): Use canonical name for + mem_attrs marker procedure. + * gengtype.c (get_output_file): Include headers in gtype-desc.c + explicitly rather than deducing them from file names. + (write_gc_structure_fields): Handle arrays of structures. + (main): Return nonzero exit code if errors occur during output. + * emit-rtl.c (mem_attrs_mark): Delete. + (init_emit_once): Use canonical name for mem_attrs marker procedure. + * Makefile.in (gtype-desc.o): Explicitly name dependencies. + (tree.o): Depend on gt-tree.h. + (GTFILES): Add rtl.h, optabs.h, tree.c. + (gt-tree.h): Add it to s-gtype rule. + + * .cvsignore: Ignore gengtype flex/bison generated files. + * Makefile.in (GGC_H): Add gtype-desc.h. + (OBJS): Add gtype-desc.o. + (GEN): Add gengtype. + (STAGESTUFF): Add gengtype. + (varasm.o): Add gt-varasm.h. + (stmt.o): Add gt-stmt.h. + (except.o): Add gt-except.h. + (integrate.o): Add gt-integrate.h. + (GTFILES): New. + Add new rules for new files. + * configure: Regenerate. + * configure.in: Correct defaults.h paths. + * emit-rtl.c (mark_sequence_stack): Delete. + (mark_emit_status): Delete. + (start_sequence): Allocate sequence structures using GGC. + (end_sequence): Allocate sequence structures using GGC. + * except.c: Use gengtype for various structures. Include + gt-except.h. + * expr.c (mark_expr_status): Delete. + * function.c: Use gengtype for various structures. Include + gt-function.h. + (mark_function_status): Use standard gt_ggc names for marker functions. + (ggc_mark_struct_function): Likewise. + * function.h: Use gengtype for various structures. + * gengtype-lex.l: New file. + * gengtype-yacc.y: New file. + * gengtype.c: New file. + * gengtype.h: New file. + * ggc.h: Include gtype-desc.h. Alias some marker procedures to + the standard names. Remove some now-unnecessary prototypes. + * integrate.c: Use gengtype for various structures. Include + gt-integrate.h. + (mark_hard_reg_initial_vals): Delete. + * integrate.h (mark_hard_reg_initial_vals): Delete. + * stmt.c: Use gengtype for various structures. Include + gt-stmt.h. + (mark_case_node): Delete. + (mark_goto_fixup): Delete. + (mark_stmt_status): Use standard gt_ggc names for marker functions. + * system.h: Define GTY to empty. In flex/bison files, + don't poison malloc or realloc, instead just define them to + xmalloc and xrealloc. + * varasm.c: Use gengtype for various structures. Include + gt-varasm.h. Use standard gt_ggc names for marker functions. + (mark_pool_constant): Delete. + (mark_varasm_status): Delete. + (decode_rtx_const): #if 0 out non-typesafe hack. + + * function.h (free_lang_status): Mark as obsolete. + * function.c (free_lang_status): Mark as obsolete. + * c-decl.c (push_c_function_context): Use GC to allocate and free + struct language_function. + (pop_c_function_context): Likewise. + * c-common.c (mark_c_language_function): Mark struct + language_function. + + * doc/tm.texi (Per-Function Data): Don't document free_machine_status. + Document that the machine_function structures must be allocated + using GC. Update mark_machine_status documentation. + * function.h: Don't declare free_machine_status. + * function.c (free_machine_status): Don't define. + (free_after_compilation): Don't call free_machine_status. + (ggc_mark_struct_function): Mark f->machine. Call + mark_machine_status only on non-NULL pointers. + * system.h: Poison free_machine_status. + * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on + struct machine_function. + (xtensa_free_machine_status): Delete. + (override_options): Don't set free_machine_status. + * config/rs6000/rs6000.c (rs6000_override_options): Don't set + free_machine_status. + (rs6000_init_machine_status): Use GC on struct machine_function. + (rs6000_free_machine_status): Delete. + * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct + machine_function. + (ia64_mark_machine_status): Likewise. + (ia64_free_machine_status): Delete. + (ia64_override_options): Don't set free_machine_status. + * config/i386/i386.c (override_options): Don't set + free_machine_status. + (ix86_init_machine_status): Use GC on struct machine_function. + (ix86_mark_machine_status): Likewise. + (ix86_free_machine_status): Delete. + * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct + machine_function. + (d30v_mark_machine_status): Likewise. + (d30v_free_machine_status): Delete. + (d30v_init_expanders): Don't set free_machine_status. + * config/arm/arm.c (arm_mark_machine_status): Use GC on struct + machine_function. + (arm_init_machine_status): Likewise. + (arm_free_machine_status): Delete. + (arm_init_expanders): Don't set free_machine_status. + * config/alpha/alpha.c (override_options): Don't set + free_machine_status. + (alpha_init_machine_status): Use GC on struct machine_function. + (alpha_mark_machine_status): Likewise. + (alpha_free_machine_status): Delete. + + * varasm.c (compare_constant): Fix typo. + + * varasm.c: Don't include obstack.h. + (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes. + (struct rtx_const): Give substructures names, improve formatting. + (struct constant_descriptor): Delete. + (struct constant_descriptor_tree): New, based on constant_descriptor. + (const_hash_table): Is a hash table of trees. + (mark_const_hash_entry): Is used for hashes of trees. Mark + constant_descriptor_tree structure. + (mark_const_str_htab_1): Mark deferred_string structure. + (compare_constant): Rewrite to compare trees. + (compare_constant_1): Delete. + (record_constant): Delete. + (record_constant_1): Delete. + (output_constant_def): Use struct constant_descriptor_tree. + Don't duplicate trees twice. + (struct constant_descriptor_rtx): New. + (struct pool_constant): Used for rtx constants. + (init_varasm_status): Update for change to struct varasm_status. + (mark_varasm_status): Likewise. + (free_varasm_status): Delete. + (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx. + (record_constant_rtx): Likewise. + (mem_for_const_double): Update to use struct constant_descriptor_rtx. + (force_const_mem): Likewise. + * Makefile.in (varasm.o): Doesn't depend on obstack.h. + * function.c (free_after_compilation): Don't use free_varasm_status. + * function.h: Don't prototype free_varasm_status. + + * ggc-common.c (ggc_realloc): Handle X being NULL. + + * ggc-common.c (ggc_realloc): New function. + * ggc.h: Prototype it. + * emit-rtl.c (free_emit_status): Delete. + (init_emit): Allocate emit subarrays using GC. + (gen_reg_rtx): Reallocate subarrays using GC. + (init_emit): Use GC to allocate 'struct emit_status' and its + subarrays. + (mark_emit_status): Mark structure and its subarrays. + * stmt.c (free_stmt_status): Delete. + * expr.c (free_expr_status): Delete. + * function.h: Remove prototypes for deleted functions. + * function.c (free_after_compilation): Don't use deleted functions. + Don't call free() on x_parm_reg_stack_loc. + (free_after_parsing): Don't use free_stmt_status. + (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc. + (mark_function_status): Mark x_parm_reg_stack_loc. + + * varasm.c (init_varasm_status): Use GC to allocate + 'struct varasm_status' and its fields x_const_rtx_hash_table + and x_const_rtx_sym_hash_table. + (mark_varasm_status): Mark them. + (free_varasm_status): Use GC to free them. + * expr.c (init_expr): Use GC to allocate 'struct expr_status'. + (mark_expr_status): Mark the structure itself. + (free_expr_status): Use GC to free the structure. + * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'. + (mark_stmt_status): Mark the 'struct stmt_status' itself. + (init_stmt_for_function): Allocate the structure for GC. + + * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE. + (equate_type_number_to_die): Likewise. + * tree.h (TYPE_SYMTAB_DIE): New macro. + (struct die_struct): Predeclare. + (struct tree_type): Add field symtab.die. Add a tag + to the union type of field symtab. + + * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains + 'struct rtvec_def *', not 'struct rtvec_def'. + + * function.h (original_arg_vector): Make a real rtvec. + * function.c (ggc_mark_struct_function): Adjust. + * integrate.c (expand_inline_function): Adjust. + +2002-06-04 Jason Thorpe + + * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*) + (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets. + * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN) + (TARGET_VERSION_CPU): Define according to the + default target. + (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and + TARGET_VERSION_CPU. + (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64 + if TARGET_SHMEDIA64. + (LINK_DEFAULT_CPU_EMUL): Define according to the + default target. + (SUBTARGET_LINK_EMUL_SUFFIX): Define. + (SUBTARGET_LINK_SPEC): Define. + (LINK_SPEC): Use SH_LINK_SPEC. + (ASM_SPEC): Remove. + (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT. + (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32 + and TARGET_SHMEDIA64 which abort, for now. + * config/sh/t-netbsd-sh5: New file. + * config/sh/t-netbsd-sh5-32: New file. + * config/sh/t-netbsd-sh5-64: New file. + +2002-06-03 Falk Hueffner + Richard Henderson + + * config/alpha/alpha.c (reg_or_const_int_operand): New. + (some_operand, input_operand): Accept CONST_VECTOR. + (alpha_extra_constraint): Add 'W'. + (alpha_expand_zap_mask): New. + (alpha_expand_builtin_vector_binop): New. + (enum alpha_builtin): New. + (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New. + (alpha_init_builtins, alpha_expand_builtin): New. + (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New. + * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New. + (PREDICATE_CODES): Update. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP, + UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New. + (movv8qi, movv8qi_fix, movv8qi_nofix): New. + (movv4hi, movv4hi_fix, movv4hi_nofix): New. + (movv2si, movv2si_fix, movv2si_nofix): New. + (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New. + (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New. + (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap, + builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask, + builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8, + builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8, + builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb, + pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl, + builtin_unpkbw, unpkbw): New. + * doc/extend.texi (Alpha Built-in Functions): New. + +2002-06-03 Richard Henderson + + * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on + USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME. + +2002-06-03 Richard Henderson + + * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs. + + * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX. + (const0_operand): New. + (reg_or_fp0_operand, fp0_operand): Remove. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand + and fp0_operand with reg_or_0_operand and const0_operand. + +2002-06-03 Dan Nicolaescu + + * alias.c (nonoverlapping_memrefs_p): Fix off by one error. + +2002-06-03 Roger Sayle + + * gcse.c (cprop_jump): Use single_set to get the pattern + from the setcc argument. + +2002-06-03 Gabriel Dos Reis + + * diagnostic.h (diagnostic_count): Move from output_buffer to + diagnostic_context. + (diagnostic_kind_count): Adjust definition. + +Mon Jun 3 19:11:53 CEST 2002 Jan Hubicka + + * except.c (except.c): Do not rebuild CFG. + * toplev.c (rest_of_compilation): Recompute CFG after sibcall + optimization. + +Mon Jun 3 11:53:01 CEST 2002 Jan Hubicka + + * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies. + * toplev.c: Include cfglahout.h + * Makefile.in (toplev.c): Add dependnecy. + +2002-06-03 Neil Booth + + * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New. + (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill. + (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC. + +2002-06-03 Jason Thorpe + + * config/ns32k/netbsd.h: Update copyright years. + (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Remove. + * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove. + (TARGET_CPU_CPP_BUILTINS): Define. + +2002-06-02 Kazu Hirata + + * emit-rtl.c: Fix formatting. + * errors.h: Likewise. + * except.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * expr.h: Likewise. + +2002-06-02 Kazu Hirata + + * config/h8300/elf.h: Fix formatting. + * config/h8300/rtems.h: Likewise. + +2002-06-03 Jason Thorpe + + * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove. + +2002-06-02 Tom Tromey + + * fixinc/fixincl.x: Rebuilt. + * fixinc/inclhack.def (thread_keyword): Match `*__thread'. + +2002-06-02 Neil Booth + +config/i370: + * i370.h (TARGET_CPU_CPP_BUILTINS): Use. + * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES. + * mvs.h: Similarly. + * oe.h: Similarly. + +Mon Jun 3 00:18:20 CEST 2002 Jan Hubicka + + * final.c (final): Allow notes to not have computed addresses; + kill no longer needed STACK_REGS ifdef. + +2002-06-02 Richard Henderson + + * gcse.c (bypass_conditional_jumps): Fix typo last change. + +Sun Jun 2 23:02:11 CEST 2002 Jan Hubicka + + * loop.c (emit_prefetch_instructions): Properly place the address + computation. + +Sun Jun 2 22:56:48 CEST 2002 Jan Hubicka + + * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill. + (set_block_for_insn): Turn into macro. + * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn. + * cfglayout.c (insn_scopes): Kill. + (scope_to_insns_initialize): Do not use insn_scopes. + (scope_to_insns_finalize): Likewise. + (duplicate_insn_chain): Likewise. + (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes. + * cfgrtl.c (basic_block_for_insn): Kill. + (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify. + (create_basic_block_structure): Use reorder_insns. + (compute_bb_for_insn): Do not use basic_block_for_insn. + (merge_blocks_nomove): Likewise. + (update_bb_for_insn): Likewise. + (verify_flow_info): Likewise. + (set_block_for_insn): Kill. + * combine.c (try_combine): Update gen_rtx_INSN call. + * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call. + (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear + scopes and BBs. + (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify. + (emit_note_before, emit_note_after, emit_line_note_after, emit_note): + Clear BB. + (emit_insns_after): Simplify. + (emit_copy_of_insn_after): Copy scope. + * final.c (final_start_function): Lower scopes. + * flow.c (check_function_return_warnings): Do not rely on deleted insn. + * integrate.c (copy_insn_list): Cope scopes. + * jump.c (duplicate_loop_exit_test): LIkewise; simplify. + * loop.c (loop_optimize): Do not care block notes. + * print-rtl.c (print_rtx): Print BB. + * recog.c (apply_change_group): Simplify. + * rtl.c (copy_rtx): Handle 'B'. + * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields. + * rtl.h (Field accessors): Update indexes. + * sched-ebb.c (schedule_ebbs): Do not lower notes. + * sched-rgn.c (schedule_insns): Likewise. + * toplev.c (rest_of_compilation): Lower notes. + * unroll.c (unroll_loop): Do not care scoping notes. + (copy_loop_body): Copy scopes. + +2002-06-02 Neil Booth + +config/h8300: + * elf.h: Use TARGET_OS_CPP_BUILTINS rather than + SUBTARGET_SPEC. + * rtems.h: Similarly. + * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC, + EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove. + (TARGET_CPU_CPP_BUILTINS): Use. + +2002-06-02 Richard Henderson + + * alias.c: Include target.h. + (mark_constant_function): Use targetm.binds_local_p instead + of checking TREE_PUBLIC ourselves. + * Makefile.in (alias.o): Add TARGET_H. + +2002-06-02 Neil Booth + + * c-lex.c: Update copyright and file description. + +2002-06-02 Neil Booth + + * config/fr30/fr30.h: Update to new CPP macros. + +2002-06-02 Neil Booth + + * config/dsp16xx/dsp16xx.h: Update to new CPP macros. + +2002-06-02 Neil Booth + Zack Weinberg + + * c-common.c (c_common_init): Override cpplib's default + warn_long_long setting. + * c-lex.c (lex_number): Replace with interpret_integer, + interpret_float, narrowest_unsigned_type and + narrowest_signed_type, taking advantage of the new + cpplib functionality. + * cpperror.c (_cpp_begin_message): If a warning is turned + into an error, avoid printing "warning:". + * cppexp.c (cpp_num_sign_extend): New. + * cppinit.c: Update comment. + * cpplib.h (cpp_num_sign_extend): New. + * tree.h: Update comment. + +2002-06-02 Gabriel Dos Reis + + * diagnostic.h (struct diagnostic_context): Add new member + internal_error. + (internal_error_function): Remove declaration. + * diagnostic.c (internal_error_function): Remove definition.. + (internal_error): Adjust use. + +2002-06-02 Richard Henderson + + * rtl.h (CC0_P): New. + * gcse.c (cprop_jump): Use it with single_set. Tweak dump text. + (cprop_insn): Allow any mode register; use CC0_P. CSE out single_set. + (bypass_block): Save old dest block for dump text. + (bypass_conditional_jumps): Allow any mode register; use CC0_P. + Allow only true SET insns, not single_set. + +2002-06-02 Gabriel Dos Reis + + * diagnostic.c (diagnostic_finish): Rename to output_flush. + (clear_disgnostic_info): Rename to output_clear_data. Use false + instead of 0 for boolean value. + Adjust function call throughout. + +Sun Jun 2 19:15:27 CEST 2002 Jan Hubicka + + * cfgrtl.c (commit_one_edge_insertion): Fix warning. + * gcse.c (bypass_conditional_jumps): CSE out single_set call. + +2002-06-02 Neil Booth + + * d30v.h (CPP_PREDEFINES): Replace with + (TARGET_CPU_CPP_BUILTINS): New. + +2002-06-02 Roger Sayle + + * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo. + +Sun Jun 2 12:11:52 CEST 2002 Jan Hubicka + + * gcse.c (bypass_conditional_jumps): Use single set to obtain set. + +2002-06-02 Richard Henderson + + * rtlanal.c (volatile_refs_p): Not automatically true for CALL. + +2002-06-02 Marek Michalkiewicz + + Support for C++ constructors/destructors. + * config/avr/avr.c (avr_output_function_epilogue): Jump to exit() + instead of looping if main() returns. + (asm_file_start): Output global symbols that cause .data and .bss + initialization code to be linked in, unconditionally for now. + (avr_asm_out_ctor, avr_asm_out_dtor): New functions. + * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New. + (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. + (LIBSTDCXX): New. + * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections. + (__tablejump__): New. + (__do_copy_data, __do_clear_bss): New. + (__do_global_ctors, __do_global_dtors): New. + * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss, + _ctors, _dtors. + +2002-06-02 Neil Booth + + * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New. + (CPP_SPEC, CPP_PREDEFINES): Kill. + * c4x/rtems.h (CPP_PREDEFINES): Kill. + (TARGET_OS_CPP_BUILTINS): New. + +Sat Jun 1 23:29:51 CEST 2002 Jan Hubicka + + * Makefile.in (tracer.o): New. + * params.def (TRACER_*): New options. + * rtl.h (tracer): Declare. + * timevar.def (TV_TRACER): New. + * toplev.c (dump_file_index): Add DFI_tracer. + (dump_file_info): Add tracer. + (flag_tracer): New. + (lang_indepdenent_options): Add tracer. + (rest_of_compilation): Call tracer. + * tracer.c: New file. + * invoke.texi (-ftracer): Document. + (--param tracer-*): Document. + +2002-06-01 Daniel Berlin + + * tree-inline.c (expand_call_inline): Make the statement + expression we generate have a COMPOUND_STMT. + +2002-06-01 Roger Sayle + + * gcse.c (cprop_cc0_jump): Function deleted. + (cprop_jump): Take an additional argument which is the possibly + NULL cc setting insn immediately before the conditional jump. + When a MODE_CC set is present, substitute it into the JUMP_INSN + before attempting the constant propagation. + (cprop_insn): Recognize cc setters followed by conditional jumps + as a special case. Use cprop_jump instead of cprop_cc0_jump. + (cprop_one_pass): Call bypass_conditional_jumps if altering jumps. + (find_bypass_set): New function based upon find_avail_set used by + cprop, but finds constant expressions available at the end of + basic blocks. + (bypass_block): New function. Given a basic block that begins + with a conditional jump and multiple incoming edges, perform + the jump bypass optimization. + (bypass_conditional_jumps): New function. Call bypass_block with + each suitable basic block in the CFG using a simple single pass. + +2002-06-01 Roger Sayle + + * tree.c (real_minus_onep): New function to test for -1.0. + * fold-const.c (fold) [MULT_EXPR]: Optimize -1.0*x into -x. + +2002-06-01 Roger Sayle + + * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0" + and "!p && !q" into "(p|q) == 0" under suitable conditions. + +2002-06-01 Andreas Jaeger + + * cppexp.c (cpp_classify_number): Cast precission to int for + correct printf format. + +2002-06-01 Marek Michalkiewicz + + * config/avr/avr.c (avr_mcu_types): Remove devices that were once + expected, but don't really exist: atmega83, atmega85, attiny10. + * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld + emulations for all devices. + (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10. + * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85. + +2002-06-01 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + h8300_shift_needs_scratch_p. + * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New. + * config/h8300/h8300.h (OK_FOR_R): New. + (OK_FOR_S): Likewise. + (OK_FOR_T): Likewise. + (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T. + * config/h8300/h8300.md (anonymous shift patterns): Use + constraints R, S, and T. + +Sat Jun 1 11:23:22 CEST 2002 Zdenek Dvorak + + * basic-block.h (struct basic_block_def): New field loop_father. + (BB_VISITED): New flag. + (struct loop): New field pred, removed field shared. + (struct loops): New field parray. + (LOOP_EXITS_DOMS): Removed. + (flow_loop_tree_node_add, flow_loop_tree_node_remove, + flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body, + dfs_enumerate_from, loop_preheader_edge, loop_latch_edge, + add_bb_to_loop, remove_bb_from_loops, find_common_loop, + verify_loop_structure): Declare. + * cfg.c (entry_exit_blocks): Initialize loop_father field. + * cfganal.c (dfs_enumerate_from): New function. + * cfgloop.c (HEAVY_EDGE_RATIO): New constant. + (flow_loop_entry_edges_find, flow_loop_exit_edges_find, + flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p, + flow_loop_dump, flow_loops_dump, flow_loops_free, + flow_loop_tree_node_add, flow_loop_level_compute, + flow_loops_level_compute, flow_loop_scan, flow_loops_update, + flow_loop_outside_edge_p): Modified for new infrastructure. + (make_forwarder_block, canonicalize_loop_headers, glb_enum_p, + redirect_edge_with_latch_update, flow_loop_free): New static functions. + (flow_loop_tree_node_remove, flow_bb_inside_loop_p, + get_loop_body, add_bb_to_loop, remove_bb_from_loops, + find_common_loop, verify_loop_structure, loop_latch_edge, + loop_preheader_edge): New functions. + (flow_loops_cfg_dump): Do not show dominators, as this information + does not remain up to date long. + (flow_loops_find): Store results in new format. + * predict.c (propagate_freq, estimate_probability, + estimate_loops_at_level, estimate_bb_frequencies): Use new loop + infrastructure. + +2002-06-01 Alan Lehotsky + + * except.c (nothrow_function_p): Walk epilogue delay list + checking the insn, not the chain for potential throws. + +2002-05-31 Zack Weinberg + + * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove. + (install): Refer to install-cpp directly. + (uninstall-cpp): Folded into uninstall rule. + * configure.in: Delete all code relating to --disable-cpp. + * configure: Regenerate. + * config/t-install-cpp: Delete. + +2002-05-31 Richard Henderson + + * configure.in (HAVE_AS_TLS): Add alpha tests. + * configure: Rebuild. + * config/alpha/alpha.c (TARGET_AS_TLS): New. + (alpha_tls_size, alpha_tls_size_string): New. + (overide_options): Set it. Always install machine_status hooks. + (input_operand): Accept got tls predicates. + (local_symbol_p): Merge into ... + (local_symbolic_operand): ... here. Reject tls symbols. + (global_symbolic_operand): Likewise. + (tls_symbolic_operand_1, dtp16_symbolic_operand): New. + (dtp32_symbolic_operand, gotdtp_symbolic_operand): New. + (tp16_symbolic_operand, tp32_symbolic_operand): New. + (gottp_symbolic_operand, tls_symbolic_operand_type): New. + (alpha_encode_section_info): Handle TLS symbols. + (alpha_strip_name_encoding): Likewise. + (alpha_legitimate_address_p): Likewise. + (alpha_legitimize_address): Likewise. + (alpha_expand_mov): Early exit to avoid nop moves. + (struct machine_function): Move from unicosmk.h. Add some_ld_name. + (alpha_init_machine_status, alpha_mark_machine_status, + alpha_free_machine_status): Always define. + (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New. + (print_operand, print_operand_address): Add TLS relocs. + * config/alpha/alpha.h (HAVE_AS_TLS): Default 0. + (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New. + (TARGET_SWITCHES): Add -mtls-kernel. + (alpha_tls_size, alpha_tls_size_string): New. + (TARGET_OPTIONS): Add -mtls-size=. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, + REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG. + (ASM_OUTPUT_LABELREF): Skip %. + (PRINT_OPERAND_PUNCT_VALID_P): Add &. + (PREDICATE_CODES): Update. + * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL, + UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL, + UNSPEC_TP, UNSPECV_SET_TP): New. + (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp, + adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp, + set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp, + movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New. + (call_value_osf_2_er): Accept anything as op4. + * config/alpha/alpha-protos.h: Update. + * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c. + +2002-05-31 Zack Weinberg + + * cppinit.c (append_include_chain): Always pay attention to + cxx_aware when setting new->sysp. Remove ATTRIBUTE_UNUSED + marker on argument. + +2002-05-31 Kazu Hirata + + * target.h: Fix formatting. + * timevar.h: Likewise. + * tlink.c: Likewise. + * toplev.c: Likewise. + * toplev.h: Likewise. + * tree.c: Likewise. + * tree-dump.h: Likewise. + * tree.h: Likewise. + * tree-inline.h: Likewise. + * unroll.c: Likewise. + * unwind-dw2.c: Likewise. + * unwind-dw2-fde.c: Likewise. + * unwind-dw2-fde-glibc.c: Likewise. + * unwind-dw2-fde.h: Likewise. + * unwind.h: Likewise. + * unwind-sjlj.c: Likewise. + * varasm.c: Likewise. + * varray.h: Likewise. + * vmsdbg.h: Likewise. + * vmsdbgout.c: Likewise. + * xcoffout.h: Likewise. + +2002-05-31 Igor Shevlyakov + + * expr.c (compare_from_rtx): Generate comparison between op0 and op1 + rather than cc0 and 0 in a case when HAVE_cc0 is not defined. + +2002-05-31 Matthew Woodcraft + + * gcc.c (cpp_unique_options): Remove "-d" options. + (cpp_debug_options): New spec string. + (default_compilers): Use it. + * objc/lang-specs.h: Likewise. + +2002-05-31 Nathanael Nerode + + * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with + BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature. + * gcc/mklibgcc.in: Likewise. + * gcc/config/arc/t-arc: Likewise. + * gcc/configure.in: Likewise. + * gcc/configure: Regenerate. + +2002-05-31 Stan Shebs + Turly O'Connor + + * c-decl.c (struct binding_level): Change int field n_incomplete + to tree list incomplete_list. + (clear_binding_level): Init field with NULL. + (pushdecl): Add incomplete type to list. + (mark_binding_level): Mark the incomplete list. + (finish_struct): Scan the incomplete list for types instead + of all decls in the current binding level. + +2002-05-31 John David Anglin + + * pa.c (output_millicode_call): Add missing '%' characters. + (output_call): Likewise. + +2002-05-31 David Edelsohn + + * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. + +2002-05-31 Alan Lehotsky + + * varasm.c (mark_constant_pool): Walk epilogue delay list + checking the insn, not the chain for potential constants. + +Fri May 31 12:38:43 2002 J"orn Rennecke + + * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec. + +Fri May 31 13:50:19 CEST 2002 Jan Hubicka + + * i386.c (classify_argument): Properly handle base types. + + * dwarf2out.c (expand_builin_init_dwarf_reg_sizes): + Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo + registers. + +Fri May 31 13:37:54 CEST 2002 Jan Hubicka + + * gcse.c (gcse_emit_move_after): New. + (pre_delete, hoist_store): Use it. + + * reload1.c (emit_input_reload_insns): Use constrain_operands + instead of constraint_accepts_reg_p to verify optimization. + (constraint_accepts_reg_p): Kill. + + * reload1.c (reload_cse_delete_noop_set): Kill. + (reload_cse_simplify): Use delete_insn_and_edges. + +2002-05-31 Zdenek Dvorak + + * cfgloop.c (flow_loops_find): Initialize first and last fields + correctly. + +2002-05-31 Neil Booth + + * c-common.c (builtin_define_std): Correct logic. + +2002-05-31 John David Anglin + + * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20. + (output_call): Likewise. + +2002-05-31 John David Anglin + + * pa.c: Move output.h include after tree.h include. + (pa_asm_output_mi_thunk): Constify identifier lab. + +2002-05-31 Jason Thorpe + + * config/ns32k/ns32k.h: Define named constants for the + bits in target_flags and use them. + * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants. + +2002-05-30 John David Anglin + + * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0 + architecture and pa/pa-7100.h for PA1.1 architecture, respectively. + * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select + default scheduling model. + * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000". + * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling. + * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling. + * doc/install.texi (hppa*-*-*): Document default scheduling. + +2002-05-30 John David Anglin + + * pa.c (following_call): Check TARGET_JUMP_IN_DELAY. + +2002-05-31 Jason Thorpe + + * config.gcc (ns32k-*-netbsd*): Set tm_file to + "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h" + * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h, + netbsd.h, or netbsd-aout.h. + +2002-05-31 Jason Thorpe + + * longlong.h (count_trailing_zeros): Add missing \, and clean up + whitespace in __ns32000__ case. + +2002-05-31 Aldy Hernandez + + * expr.c (expand_expr): Output partially zeroed out vectors with + output_constant_def. + +2002-05-30 Jason Thorpe + + * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh. + (sh-*-netbsdelf*) + (shl*-*-netbsdelf*): New targets. + * config/sh/netbsd-elf.h: New file. + * config/sh/t-netbsd: New file. + +2002-05-30 Richard Henderson + Eric Botcazou + + PR optimization/6822 + * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL + to unsigned int for op1 comparisons. Use gen_int_mode. + +2002-05-30 Eric Botcazou + + * expmed.c (const_mult_add_overflow_p): New. + * expr.h: Declare it. + * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it. + Don't eliminate the biv if the giv has a constant multiplier and + the rhs argument of the comparison does satisfy the predicate. + Use expand_mult_add to compute the replacement constant. + +2002-05-30 Osku Salerma + + * c-common.c (c_common_attribute_table): Add "may_alias" entry. + (c_common_get_alias_set): Handle it. + * doc/extend.texi: Document it. + +2002-05-30 Richard Henderson + + * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill. + * toplev.c (process_options): Don't check it. + * doc/tm.texi: Don't document it. + * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New. + (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill. + * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf + frame pointer optimization if current_function_profile. + +2002-05-30 Kazu Hirata + + * langhooks.c: Fix formatting. + * langhooks.h: Likewise. + * lcm.c: Likewise. + * libgcc2.c: Likewise. + * lists.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * loop.h: Likewise. + +2002-05-30 Marc Espie + + * config.gcc (sparc64-*-openbsd*): New. + * config/sparc/openbsd1-64.h: New. + * config/sparc/openbsd64.h: New. + +2002-05-30 Jeff Law + + * flow.c (propagate_one_insn): Revise yesterday's patch. Delete + a dead insn with a REG_RETVAL note when the entire libcall is not + dead and remove the associated REG_LIBCALL note at the same time. + +Thu May 30 19:54:30 2002 J"orn Rennecke + + * lcm.c (output.h): #include. + (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK + as an ordinary block. + (optimize_mode_switching): Don't pretend that the exit block is + an ordinary block, or handle sucessors of entry block specially. + Instead, split edges from entry block and to exit block, and + put a computing definition on the thus gained post-entry-block, + and a need on the pre-exit-block. + +Thu May 30 20:28:01 CEST 2002 Jan Hubicka + + * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'. + * rtl.texi: Document 'B' + +2002-05-30 Jason Thorpe + + * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute + at run-time. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__. + +2002-05-30 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return + const0_rtx instead of NULL_RTX when in error. + (altivec_expand_abs_builtin): Same. + (rs6000_expand_binop_builtin): Same. + (altivec_expand_predicate_builtin): Same. + (altivec_expand_stv_builtin): Same. + (rs6000_expand_ternop_builtin): Same. + (altivec_expand_builtin): Same. + +2002-05-29 David S. Miller + + * rtl.h (clear_emit_caches): Delete. + * integrate.c (output_inline_function): Don't call it. + * emit-rtl.c (restore_emit_status, init_emit): Likewise. + (clear_emit_caches): Delete definition. + (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise. + +2002-05-30 Hans-Peter Nilsson + + * config/mmix/mmix.c: Include real.h. + (mmix_constant_address_p): Remove redundant test before switch. + +2002-05-29 Jason Thorpe + + * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define + only if not already defined. + +2002-05-29 Kazu Hirata + + * config/h8300/h8300-protos.h: Remove prototypes for + ok_for_bclr and small_power_of_two. + * config/h8300/h8300.c (small_power_of_two): Remove. + (ok_for_blcr): Likewise. + (fix_bit_operand): Make WHAT deal with an integer instead of a + constraint character. + * config/h8300/h8300.h (CONST_OK_FOR_O): Remove. + (CONST_OK_FOR_P): Likewise. + (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or + CONST_OK_FOR_P any more. + * config/h8300/h8300.md (andqi3): Adjust to the new prototype + of fix_bit_operand. + (iorqi3): Likewise. + (xorqi3): Likewise. + +2002-05-29 Jason Thorpe + + * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Make sure this is undefined. + (CPP_SPEC): Place -D__mips=1 at the beginning of the spec, + since it is no longer in CPP_PREDEFINES. Don't -U__MIPSEL__ + or -U__MIPSEB__ before defining one or the other. Instead, + use %(subtarget_endian_default) if neither -EB nor -EL are + specified. + (SUBTARGET_EXTRA_SPECS): Define. + (SUBTARGET_CPP_SPEC): Remove __LONG64 handling. Use + %(netbsd_cpp_spec). + +2002-05-29 Hans-Peter Nilsson + + * doc/md.texi (Patterns): Note pattern condition pitfall + for unnamed insn. + +2002-05-29 Aldy Hernandez + + * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins + when TARGET_ALTIVEC. Move handling of generic unary, binary, and + ternary operations from here... + (rs6000_expand_builtin): ...to here. + New argument expandedp. + Change all instances of altivec_expand_binop_builtin to + rs6000_expand_binop_builtin. + (altivec_expand_unop_builtin): Rename to + rs6000_expand_unop_builtin. + (altivec_expand_binop_builtin): Rename to + rs6000_expand_binop_builtin. + (altivec_expand_ternop_builtin): Rename to + rs6000_expand_ternop_builtin. + +2002-05-29 Richard Henderson + + * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value. + (TARGET_BI_ARCH): Likewise. + * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value. + (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT. + (TARGET_64BIT_DEFAULT): Default to 0. + (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER. + +2002-05-29 Richard Henderson + + * config/i386/i386.c (USE_HIDDEN_LINKONCE): New. + (get_pc_thunk_name): New. + (output_set_got): Use it. + (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks + into linkonce sections. + +2002-05-29 Jason Thorpe + + * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Make sure this is undefined. + (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove. + (CPP_SUBTARGET_SPEC): Don't provide different versions for + default-32 and default-64. Just always use %(netbsd_cpp_spec). + (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and + cpp_subtarget_spec64. Add netbsd_cpp_spec. + * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Make sure this is undefined. + (SUBTARGET_EXTRA_SPECS): Define. + (CPP_SPEC): Use %(netbsd_cpp_spec). + +2002-05-29 Jeff Law + + * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon. + + * flow.c (propagate_one_insn): Do not remove a dead insn if it + contains a REG_RETVAL note. + + * haifa-sched (sched_analyze): Remove another useless clearing + of SCHED_GROUP_P I missed yesterday. + + * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c. + * pa.c (pa_asm_output_mi_thunk): New function. + * pa-protos.h (pa_asm_output_mi_thunk): Declare. + +2002-05-29 Neil Booth + Marek Michalkiewicz + + * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New. + (avr_asm_only_p): Make non-static. + (enum avr_arch): Remove. + (avr_arch_types): New. + (avr_mcu_types): Update. + (avr_override_options): Use avr_arch_types table instead of switch. + * avr.h (CPP_PREDEFINES): Die. + (avr_base_arch_macro, avr_extra_arch_macro): New. + (TARGET_CPU_CPP_BUILTINS): New. + (CPP_SPEC, EXTRA_SPECS): Simplify. + (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC, + CPP_AVR5_SPEC): Die. + +2002-05-29 Jason Thorpe + + * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use + NETBSD_OS_CPP_BUILTINS_AOUT. + (SUBTARGET_EXTRA_SPECS): Define. + (CPP_SPEC): Use %(netbsd_cpp_spec). + +2002-05-29 Richard Henderson + + * config/i386/i386.c (ix86_output_function_epilogue): New. + (TARGET_ASM_FUNCTION_EPILOGUE): New. + (pic_label_name): Remove. + (pic_labels_used): New. + (ix86_asm_file_end): Emit one pc load stub for each register used. + (output_set_got): Generate deep pc load to any register. + (ix86_select_alt_pic_regnum): New. + (ix86_save_reg): Don't save pic register if we can find a valid + call-clobbered replacement. + (ix86_expand_prologue): If we found a valid replacement, renumber + pic_offset_table_rtx. + * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at + pic_offset_table_rtx after reload. + (REAL_PIC_OFFSET_TABLE_REGNUM): New. + * config/i386/i386.md (set_got): Make insn, not expander. + (set_got_nopic, set_got_deep, set_got_nodeep): Remove. + +2002-05-29 Richard Henderson + + * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom + alignment for alloca. + +2002-05-29 Richard Henderson + + * config/i386/i386.c (output_pic_addr_const): Lowercase rip. + (print_operand_address): Only add rip for symbolic addresses + for which we do not have another relocation type. + +2002-05-29 Jason Thorpe + + * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define. + (EXTRA_SPECS): Add netbsd_cpp_spec. + (CPP_SPEC): Use %(netbsd_cpp_spec). + (CPP_PREDEFINES): Remove. + * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. + (EXTRA_SPECS): Define. + (CPP_SPEC): Use %(netbsd_cpp_spec). + (CPP_PREDEFINES): Remove. + +2002-05-29 Neil Booth + + PR preprocessor/6844 + * cppmacro.c (cpp_macro_definition): Reserve space for terminating + NUL. + +2002-05-29 Eric Christopher + + * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for + mips5/mips32/mips64 and _MIPS_ISA_MIPSXX. + +2002-05-29 Nick Clifton + + * config/fr30/fr30.md: Remove previous restriction on splits. + Enforce conformance through gen_lowpart and cont_int_operand. + * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss" + as the assembler does not support ".bss". + +2002-05-29 Jason Thorpe + + * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Remove. + (SUBTARGET_EXTRA_SPECS): Define. + (CPP_SPEC): Use %(netbsd_cpp_spec). + * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES): Remove. + (SUBTARGET_EXTRA_SPECS): Define. + (CPP_SPEC): Use %(netbsd_cpp_spec). + * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define. + (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove. + (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget. + Add netbsd_cpp_spec. + (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec). + +2002-05-29 Neil Booth + Zack Weinberg + + * cppexp.c (cpp_num): Move to cpplib.h. + (CPP_ERROR): Remove. + (interpret_float_suffix, interpret_int_suffix): New. + (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove. + (cpp_classify_number, cpp_interpret_integer): New. + (interpret_number): Remove. + (eval_token): Update to use new routines. + * cpphash.h (cpp_num_part): Move to cpplib.h. + * cppinit.c (cpp_post_options): Set warn_long_long. + * cpplib.h (struct cpp_options): Add warn_long_long. + (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID, + CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL, + CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX, + CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number, + cpp_interpret_integer): New. + +2002-05-29 Joel Sherrill + + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405. + +2002-05-29 Jason Thorpe + + * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use + NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64. + (CPP_SUBTARGET_SPEC): Define. + (SUBTARGET_EXTRA_SPECS): Define. + (CPP_SPEC): Remove. + +2002-05-29 Chris Lattner + + * ssa.c (rename_insn_1): Rename uses of undefined registers to + prevent confusion if/when the register is defined. + +2002-05-29 Hans-Peter Nilsson + + PR target/6838 + * config/cris/cris.md: Fix typos and thinkos in comments. + ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4, + second alternative. + ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto. + ("*mov_sideqi_mem"): Similar, but for operand 3. + ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto. + (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem): + Remove spurious mode specifier on operand 2. + +2002-05-29 Kazu Hirata + + * config/h8300/h8300-protos.h: Remove the prototype for + o_operand. + Add prototypes for single_one_operand and single_zero_operand. + * config/h8300/h8300.c (o_operand): Remove. + (single_one_operand): New. + (single_zero_operand): Likewise. + (print_operand): For 'V' operand, and the operand with 0xff. + For 'V' and 'W' operands, do not and the bit position with 7. + * config/h8300/h8300.md (various anonymous patterns): Replace + use of exact_log2 with single_one_operand/single_zero_operand. + +2002-05-29 Ulrich Weigand + + * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. + +2002-05-29 Ulrich Weigand + + * config/s390/s390.c (legitimate_pic_operand_p): Do not + accept symbolic LARL operands. + (s390_emit_epilogue): Do not set FRAME_RELATED_P on + epilogue insns. + +2002-05-29 Hartmut Penner + + * config/s390/s390.md (cmpstr_64/31): Mark whole + input registers as used. + +2002-05-28 Richard Henderson + + * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live, + not current_function_uses_pic_offset_table and + current_function_uses_const_pool; examine current_function_profile. + (ix86_expand_prologue): Likewise. Add pic_offset_table_rtx as + input to blockage if needed. + (ix86_expand_call): Do not set current_function_uses_pic_offset_table. + (legitimize_pic_address): Likewise. Set regs_ever_live for + pic_offset_table_rtx when invoked during reload. + * config/i386/i386.h (FINALIZE_PIC): Remove. + * config/i386/i386.md (tablejump): Reformat. Do not set + current_function_uses_pic_offset_table. + (tls_global_dynamic, tls_local_dynamic_base): Likewise. + (blockage): Accept anything as operand 0. + +2002-05-28 Jason Thorpe + + * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define + common CPP built-ins for all NetBSD a.out targets. + * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define + common CPP built-ins for all NetBSD ELF targets. + * config/netbsd.h: Add missing notice. + (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins + for all NetBSD targets. + (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins + for all NetBSD targets using an LP64 code model. + (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all + NetBSD targets. + +2002-05-28 Richard Henderson + + * flow.c (update_life_info_in_dirty_blocks): Only do a partial + update if UPDATE_LIFE_LOCAL. + +2002-05-28 Toshiyasu Morita + + * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE. + +Tue May 28 21:16:18 2002 J"orn Rennecke + Jason R. Thorpe + + config/sh reorganization to factor out endianness and coff: + + * config/sh/little.h: New file. + * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already + defined, define to 0 to select big-endian. + (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT. + (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT. + * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT. + * config/sh/t-be: New file. + * config/sh/t-le: New file. + + * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h. + (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise. + (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise. + (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise. + (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. + (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted. + (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise. + (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise. + (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and + CPP_DEFAULT_CPU_SPEC. Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL, + SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC. + (LINK_SPEC): Define to SH_LINK_SPEC. + (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define. + (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise. + (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise. + (CPP_SPEC): Reduce to %(subtarget_cpp_spec). + (TARGET_ENDIAN_DEFAULT): Define if not already defined. + * config/sh/coff.h: New file. + (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section + (TARGET_OBJFMT_CPP_BUILTINS): Define. + * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start. + (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise. + (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise. + (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise. + (PTRDIFF_TYPE): Likewise. + ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include. + (CPP_PREDEFINES): Don't define. + (TARGET_OBJFMT_CPP_BUILTINS): Define. + (LINK_SPEC): Define to SH_LINK_SPEC. + (LINK_EMUL_PREFIX): Redefine. + * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases. + (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition. + (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise. + (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise. + (TARGET_OS_CPP_BUILTINS): Define. + (TARGET_DEFAULT): Redefine. + (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise. + * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove. + (LINK_SPEC): Don't redefine. + (LINK_DEFAULT_CPU_EMUL): Redefine. + (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT. + * sh.c (sh_asm_named_section): Don't declare / define. + * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option. + * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h. + (sh64-*-elf* tm_file): Likewise. + (sh-*-rtemself* tm_file): Likewise. + (sh-*-linux* tm_file): Likewise. Add sh/little.h. + (sh-*-linux* tmake_file): Add sh/t-le. + (sh-*-rtems* tm_file): Add sh/coff.h + (sh-*-* tm_file): Likewise. + +Tue May 28 21:16:18 2002 J"orn Rennecke + + * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using + CONSTANT_POOL_ADDRESS_P. + + * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define. + +2002-05-28 David Edelsohn + Jeff Law + + * optabs.c (expand_binop): Fix nwords sign warnings. + generate pseudo for add_optab. + + * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P. + * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used. + +2002-05-28 Marc Espie + + * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN): Remove, + inherited from gas.h. + (ASM_QUAD): Undef. OpenBSD does not support it. + +2002-05-28 Danny Smith + + * doc/install.texi (binaries): Change mingw binaries + link to www.mingw.org. + +2002-05-28 Zdenek Dvorak + + * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i. + +2002-05-28 Richard Henderson + + * config/i386/i386.c (ix86_compute_frame_layout): Do not add + bottom alignment for leaf functions. + +2002-05-28 Zack Weinberg + + * config/pa/milli32.S, config/pa/lib1funcs.asm, + config/sparc/sol2-g1.asm: Delete unused files. + +2002-05-28 Richard Henderson + + * cfg.c (dump_flow_info): Print bb->index, not i, for block number. + + * flow.c (calculate_global_regs_live): Rename call_used to + invalidated_by_call. Initialize from regs_invalidated_by_call + instead of call_used_regs. + + * varasm.c (default_binds_local_p): Check TREE_PUBLIC before + DECL_EXTERNAL. + +2002-05-28 Zack Weinberg + + * tree.h: Don't include real.h. + Forward-declare struct realvaluetype. + (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not + contain it. + (TREE_REAL_CST_PTR): New accessor. + (TREE_REAL_CST): Update. + * real.h: Include machmode.h. + (realvaluetype): Make it struct realvaluetype, not a typedef. + (build_real): Prototype here. + + * tree.c: Include real.h. + (build_real): Allocate the REAL_VALUE_TYPE as a separate + object in GC memory, set TREE_REAL_CST_PTR to point to it. + (build_real_from_int_cst): Use build_real. + * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a + REAL_CST. + + * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c, + fold-const.c, print-tree.c, real.c: Include real.h. + * Makefile.in: Update dependency lists. + +2002-05-28 Zdenek Dvorak + + * basic-block.h (last_basic_block): Declare. + (expunge_block_nocompact): Declaration removed. + (compact_blocks): Declare. + * cfg.c (last_basic_block): New variable. + (expunge_block_nocompact): Removed. + (expunge_block): Do not compact basic blocks. + (compact_blocks): New. + * cfganal.c (flow_call_edges_add): Use the fact that bb indices no + longer change. + * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set + last_basic_block. + * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change + real positions of blocks. + (delete_unreachable_blocks): Simplified -- quadratic behavior now + cannot occur. + (cleanup_cfg): Compact blocks. + * cfgrtl.c (create_basic_block): Insert basic blocks to the end of + basic_block_info varray. + (flow_delete_block): Comment update. + (back_edge_of_syntactic_loop_p): Modify position check code. + (verify_flow_info): Update checking. + * flow.c (calculate_global_regs_live): Use FOR_EACH_BB. + * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed. + (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb + indices no longer change. + * lcm.c (optimize_mode_switching): Replace n_basic_blocks with + last_basic_block. + * predict.c (estimate_bb_frequencies): Remove unneccessary code. + * profile.c (branch_prob): Compact blocks. + * sched-rgn.c (find_rgns): Replace n_basic_blocks with + last_basic_block. + +2002-05-28 Kazu Hirata + + * config/h8300/h8300.md (two anonymous patterns): New. + +2002-05-28 David S. Miller + + * config/sparc/sparc.md (cpu): Tidy. + (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and + 'trap'. + (in_call_delay): Delete reference to 'return' type. + (eligible_for_return_delay, in_return_delay, define_delay + referencing those): Delete. + (rest of file): Use new type attributes as appropriate. + * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete. + * config/sparc/sparc.c (eligible_for_return_delay): Likewise. + * config/sparc/ultra1_2.md (us1_single): New reservation. + (us1_ialuX): Likewise. + * config/sparc/ultra3.md (us3_single): Likewise. + (us3_ialuX): Likewise. + (us3_imul, us3_idiv): Tweak. + +2002-05-28 Richard Henderson + + * config/alpha/alpha.c (alpha_in_small_data_p): Return false for + STRING_CST. + +2002-05-28 Richard Henderson + + * config.gcc: Obsolete mn10200. + +2002-05-28 Neil Booth + + * cppexp.c (interpret_number): Optimize for single-digit + and less-than-half-precision cases. + (num_trim, num_positive, num_div_op): Cast constants. + +2002-05-27 Bo Thorsen + + * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the + 3.1 branch. The file was made by Jakub Jelinek. + * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386 + support so multilib doesn't break. And don't define this at all + when -Dinhibit_libc is used. + (MULTILIB_DEFAULTS): Always set default to 64 bit compilation. + * config/i386/t-linux64: Implement full multilib support. Patch + originally done by Andreas Jaeger and Jakub Jelinek. + +2002-05-27 Roger Sayle + + * c-common.c: Add support for __attribute__((nothrow)) to specify + that a function cannot throw an exception (using TREE_NOTHROW). + (handle_nothrow_attribute): New function to process this attribute. + + * doc/extend.texi: Document the new nothrow function attribute. + +2002-05-27 H.J. Lu (hjl@gnu.org) + + * cppexp.c (num_trim): Use 1UL instead of 1 for long int. + (num_positive): Likewise. + (num_div_op): Likewise. + +2002-05-27 Neil Booth + + * c-common.c (c_common_init): Always use intmax_t. + +2002-05-27 Neil Booth + + * c-common.c (c_common_init): Use intmax_t for now. + +2002-05-24 Andrew Haley + + * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c + if T is a boolean type. + +2002-05-27 Zdenek Dvorak + + * basic-block.h (last_basic_block): Defined as synonym for + n_basic_blocks. + * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute, + flow_depth_first_order_compute, flow_preorder_transversal_compute, + flow_dfs_compute_reverse_init): Replaced relevant occurences of + n_basic_blocks with last_basic_block. + * cfgbuild.c (make_edges): Likewise. + * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise. + * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise. + * combine.c (combine_instructions): Likewise. + * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap, + iterative_dataflow_bitmap): Likewise. + * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree, + calc_idoms, idoms_to_doms): Likewise. + * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars): + Likewise. + * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties, + compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass, + one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p, + one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1, + delete_null_pointer_checks, compute_code_hoist_vbeinout, + hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass, + compute_store_table, build_store_vectors): Likewise. + * haifa-sched.c (sched_init): Likewise. + * ifcvt.c (if_convert): Likewise. + * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete, + pre_edge_lcm, compute_available, compute_nearerout, + compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching): + Likewise. + * predict.c (estimate_probability, process_note_prediction, + note_prediction_to_br_prob): Likewise. + * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise. + * recog.c (split_all_insns, peephole2_optimize): Likewise. + * regrename.c (copyprop_hardreg_forward): Likewise. + * resource.c (init_resource_info): Likewise. + * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info, + init_regions, schedule_insns): Likewise. + * ssa-ccp.c (ssa_const_prop): Likewise. + * ssa-dce.c (ssa_eliminate_dead_code): Likewise. + * ssa.c (compute_dominance_frontiers, + compute_iterated_dominance_frontiers, convert_to_ssa): Likewise. + + * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code) + * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector + sizes consistently. + +Mon May 27 14:28:12 CEST 2002 Jan Hubicka + + * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge): + new. + * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store, + hoist_insn_after, hoist_insn_to_edge): New. + +Mon May 27 12:14:02 CEST 2002 Jan Hubicka + + * basic-block.h (PEOP_SCAN_DEAD_STORES): New. + (PROP_FINAL): Include. + * flow.c (life_analysis, update_life_info, + init_propagate_block_info, mark_set_1, mark_used_rgs): + Support SCAN_DEAD_STORE. + +2002-05-27 Neil Booth + + * c-common.c (c_common_init): Set CPP arithmetic precision. + * cppexp.c (cpp_num_part): Move typedef ... + * cpphash.h: ...here; make unsigned HOST_WIDE_INT. + * cppinit.c (cpp_create_reader): Default to host long arithmetic. + (sanity_checks): Update. + +2002-05-26 Geoffrey Keating + + * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'. + (mkheaders): New rule. + (install-mkheaders): New rule. + * configure.in (all_outputs): Add mkheaders. + * configure: Regenerate. + * mkheaders.in: New file. + +2002-05-26 Jakub Jelinek + + * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class. + +2002-05-26 Andreas Jaeger + + * cfg.c (dump_flow_info): Remove extra argument to fprintf. + +2002-05-26 Neil Booth + + * cppexp.c (possible_sum_sign, integer_overflow, left_shift, + right_shift): Remove. + (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART, + HIGH_PART): New. + (struct op): Use cpp_num. + (num_zerop, num_eq, num_positive, num_greater_freq, num_trim, + num_part_mul, num_unary_op, num_binary_op, num_negate, + num_bitwise_op, num_inequality_op, num_equality_op, num_mul, + num_div_op, num_lshift, num_rshift, append_digit): New. + (interpret_number, parse_defined, eval_token, reduce): Update + for two-integer arithmetic. + (binary_handler): New typedef. + (optab): Update. + (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete. + (_cpp_parse_expr, reduce): Update to handle two-integers. + * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF. + +2002-05-26 Marek Michalkiewicz + + * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare. + * config/avr/avr.c (jump_over_one_insn_p): Take length of the + branch insn into account, do not assume 1. + (avr_out_sbxx_branch): New function. Optimize cases of skipping + over single word insn. Handle upper half of I/O space too. + * config/avr/avr.md (*sbrx_branch): Use it. + (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise. + (*sbix_branch, *sbix_branch_bit7): Likewise. + (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New. + Use RTL peepholes to optimize register operand sign tests. + +2002-05-26 Marek Michalkiewicz + + * config/avr/avr.c (avr_asm_only_p): New variable. + (avr_override_options): Set it here if AVR1. + (asm_file_start): Test it here, report an error if set. + +2002-05-26 Kazu Hirata + + * alias.c: Fix formatting. + * attribs.c: Likewise. + * bb-reorder.c: Likewise. + * bitmap.c: Likewise. + * bitmap.h: Likewise. + * builtins.c: Likewise. + +Sun May 26 14:00:44 CEST 2002 Jan Hubicka + + * reload.c (find_valid_class): Accept new argument DEST, + choose class accordingly. + (push_reload): Update callers. + +2002-05-26 Andreas Jaeger + + * combine.c (combine_instructions): Do not indent #if for + traditional C. + +2002-05-25 Richard Henderson + + * c-pragma.c (apply_pragma_weak): Convert value identifier to + string for decl_attributes. + (handle_pragma_weak): Call assemble_alias if we're modifying + an existing decl. + +2002-05-25 Richard Henderson + + PR target/6788 + * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation + using rtl instead of fprintf. + * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it. + * config/sparc/sparc-protos.h: Update. + +2002-05-25 Neil Booth + + * Makefile.in (C_COMMON_H): Fix. + Update other targets. + * c-common.c: Don't include c-lex.h. + (builtin_define_with_value): Make static and prototype. + (builtin_define_std): Move from c-lex.h. + * c-common.h (init_c_lex): Move from c-lex.h. + * c-decl.c: Don't include c-lex.h. + (make_pointer_declarator): Move from c-parse.in. + * c-lex.c: Don't include c-lex.h. + * c-lex.h: Remove. + * c-parse.in: Don't include c-lex.h; include c-pragma.h. + (make_pointer_declarator): Move to c-decl.c. + * c-pragma.c: Don't include c-lex.h. + * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h. + * c-tree.h (make_pointer_declarator): New. +doc: + * passes.texi, tm.texi: Update. +objc: + * Make-lang.in: Update and correct. + * objc-act.c: Don't include c-lex.h or cpplib.h. +treelang: + * treetree.c: Don't include c-lex.h. +config: + * darwin-c.c: Don't include c-lex.h. + * c4x/c4x-c.c: Don't include c-lex.h. + * c4x/t-c4x: Update. + * i370/i370-c.c: Don't include c-lex.h. + * i370/t-i370: Update. + * i960/i960-c.c: Don't include c-lex.h. + * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h. + * i960/t-960bare: Update. + * i960/t-vxworks: Update. + * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h. + * rs6000/t-darwin: Update. + * rs6000/t-rs6000-c-rule: Update. + * v850/v850-c.c: Don't include c-lex.h. + * v850/v850.c: Don't include c-lex.h or cpplib.h. + + +2002-05-25 Kazu Hirata + + * tree.def: Fix typos. + * doc/install.texi: Likewise. + +2002-05-25 Richard Henderson + + * configure.in (HAVE_AS_TLS): Add ia64 test. + * configure: Rebuild. + * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New. + (override_options): Set it. + (TARGET_HAVE_TLS): New. + (sdata_symbolic_operand): Look for 's'. + (tls_symbolic_operand): New. + (ia64_expand_load_address): Abort for tls symbols. + (gen_tls_get_addr): New. + (gen_thread_pointer): New. + (ia64_expand_move): Split out from movdi. Handle tls symbols. + (rtx_needs_barrier): Add new unspecs. + (ia64_encode_section_info): Handle tls symbols. + (ia64_strip_name_encoding): Strip two encoding chars. + * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New. + (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New. + (TARGET_OPTIONS): Add tls-size. + (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR. + * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL, + UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New. + (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move. + (movsf, movdf): Likewise. + (movdi_symbolic): Use match_scratch. Don't split if we won't + have a scratch availiable. + (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22, + add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel, + load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use + sdata_symbolic_operand. + (ASM_OUTPUT_LABELREF): Strip two characters. + +2002-05-25 Kazu Hirata + + * combine.c (simplify_set): Remove an unnecessary subreg. + +2002-05-25 Marek Michalkiewicz + + * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL. + + * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New. + +2002-05-25 Gabriel Dos Reis + + * toplev.c (output_clean_symbol_name): Fix another thinko. Gosh. + +2002-05-25 Roger Sayle + + * simplify-rtx.c (simplify_gen_relational): Simplify the RTX + (cond (compare x y) 0) into the equivalent (cond x y). + +2002-05-25 Gabriel Dos Reis + + * toplev.c (output_clean_symbol_name): Use xstrdup. Fix thinko. + +2002-05-24 Zack Weinberg + + * config.gcc: Remove all stanzas for previously obsoleted + systems. Where necessary, add explicit error stanzas to + prevent removed systems from being misidentified as something + else. Begin a fresh obsoletions list, with the systems that + were reprieved last round. + * doc/install.texi: Remove all mention of dead targets. + * fixinc/mkfixinc.sh: Likewise. + + * config/arm/arm.h: Bit 31 of target_flags is no longer + reserved. + + * config/1750a/1750a-protos.h, config/1750a/1750a.c, + config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc, + config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h, + config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare, + config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h, + config/alpha/osf12.h, config/alpha/osf2or3.h, + config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h, + config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix, + config/clipper/clipper-protos.h, config/clipper/clipper.c, + config/clipper/clipper.h, config/clipper/clipper.md, + config/clipper/clix.h, config/convex/convex-protos.h, + config/convex/convex.c, config/convex/convex.h, + config/convex/convex.md, config/convex/fixinc.convex, + config/convex/proto.h, config/elxsi/elxsi-protos.h, + config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md, + config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h, + config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h, + config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h, + config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm, + config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h, + config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h, + config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h, + config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h, + config/i386/t-dgux, config/i386/t-next, config/i386/t-osf, + config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h, + config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c, + config/i860/i860.h, config/i860/i860.md, config/i860/mach.h, + config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h, + config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h, + config/m68k/altos3068.h, config/m68k/apollo68.h, + config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm, + config/m68k/aux-crtn.asm, config/m68k/aux-exit.c, + config/m68k/aux-low.gld, config/m68k/aux-mcount.c, + config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h, + config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h, + config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h, + config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h, + config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h, + config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h, + config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h, + config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next, + config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld, + config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld, + config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h, + config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas, + config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas, + config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld, + config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h, + config/mips/dec-osf1.h, config/mips/elflorion.h, + config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h, + config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h, + config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h, + config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd, + config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas, + config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix, + config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c, + config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h, + config/ns32k/merlin.h, config/ns32k/pc532-mach.h, + config/ns32k/pc532-min.h, config/ns32k/pc532.h, + config/ns32k/sequent.h, config/ns32k/tek6000.h, + config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S, + config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c, + config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj, + config/sparc/rtems.h, config/we32k/we32k-protos.h, + config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md: + Delete file. + +2002-05-24 Richard Henderson + + * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1. + * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC. + * config/i386/i386.c (tls_model_chars): Add leading space. + (tls_symbolic_operand): Don't bias by 1. + (legitimize_address): Don't unbias by 1. + +2002-05-24 Toshiyasu Morita + + * lcm.c (optimize_mode_switching): Change bb used as indices + to bb->index. + +2002-05-24 Richard Henderson + + * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead + of update_life_info_in_dirty_blocks. + +2002-05-24 Jakub Jelinek + + PR other/6782 + * final.c (get_mem_expr_from_op): Return 0 if op is NULL. + +2002-05-24 Neil Booth + + PR preprocessor/6780 + * cppmacro.c (enter_macro_context): Clear state.angled_headers. + +2002-05-24 Jim Blandy + + * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final + entry with a type code of zero, marking the end of the compilation + unit's macro info. + +2002-05-24 Richard Henderson + + * varasm.c (asm_output_bss): Always output one byte. + * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. + +2002-05-24 Bryce McKinlay + + * tree.c (decl_type_context): Return NULL_TREE if decl's context is a + namespace. + +2002-05-24 Andreas Jaeger + + * ggc-page.c (alloc_page): Cast variables of type size_t to + unsigned long, adjust printf format string. + (ggc_alloc): Likewise. + (ggc_print_statistics): Likewise. + (ggc_print_statistics): Correct printf format string for SCALE to + use unsigned long. + +2002-05-24 Danny Smith + + * config/i386/mingw32.h (CPP_SPEC): Remove -remap. + +2002-05-23 Gabriel Dos Reis + Zack Weinberg + + * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output + quoted strings. + * dwarf2out.c (lookup_filename): Properly quote filename in .file + directive in assembly file. + * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise. + * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise. + * config/pj/pj.h (ASM_FILE_START): Likewise. + * config/rs6000/xcoff.h (ASM_FILE_START): Likewise. + * config/avr/avr.c (asm_file_end): Likewise. + * toplev.c (output_quoted_string): Handle possibly signed plain + char. + * toplev.h (output_clean_symbol_name): Declare + * toplev.c (output_clean_symbol_name): Define. + * config/alpha/alpha.c (unicosmk_output_module_name): Use it. + * config/1750a/1750a.h (ASM_FILE_START): Likewise. + +2002-05-24 Alan Modra + + * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits. + +2002-05-23 Vladimir Makarov + + * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4 + of size of unsigned. + +2002-05-23 Richard Henderson + + * configure.in (HAVE_AS_TLS): New test. + * config.in, configure: Rebuild. + * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS. + (ix86_tls_dialect_string, ix86_tls_dialect): New. + (override_options): Set it. + (tls_model_chars, tls_symbolic_operand): New. + (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New. + (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New. + (local_exec_symbolic_operand): New. + (get_pic_label_name): Merge into output_set_got. + (ix86_asm_file_end): Emit pic_label_name if defined. + (legitimate_constant_p, constant_address_p): New. + (legitimate_pic_operand_p): New. + (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF. + (legitimate_address_p): Likewise. + (ix86_encode_section_info): Rename from i386_; handle tls decls. + (ix86_strip_name_encoding): New. + (get_thread_pointer): New. + (legitimize_address): Handle tls symbols. + (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF. + Remove UNSPEC_PLT. + (struct machine_function): Add some_ld_name. + (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it. + (print_operand) [&]: Use it. Handle UNSPEC_TP. + (output_addr_const_extra): New. + (maybe_get_pool_constant): New. + (ix86_split_to_parts): Use it. + (ix86_expand_move): Handle tls symbols. + (ix86_tls_get_addr): New. + * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New. + (TARGET_OPTIONS): Add tls-dialect. + (CONSTANT_ADDRESS_P): Use new out-of-line function. + (LEGITIMATE_CONSTANT_P): Likewise. + (LEGITIMATE_PIC_OPERAND_P): Likewise. + (TARGET_STRIP_NAME_ENCODING): New. + (ASM_OUTPUT_LABELREF): New. + (PRINT_OPERAND_PUNCT_VALID_P): Add '&'. + (OUTPUT_ADDR_CONST_EXTRA): New. + (PREDICATE_CODES): Update. + (ix86_tls_dialect, ix86_tls_dialect_string): New. + * config/i386/i386.md: Regroup and renumber unspec constants. + (tls_global_dynamic_gnu, tls_global_dynamic_sun): New. + (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New. + (tls_global_dynamic, tls_local_dynamic_base): New. + (tls_local_dynamic_once): New. + * config/i386/i386-protos.h: Update. + +2002-05-23 Richard Henderson + + * genemit.c (gen_insn): Print file:lineno comment before function. + (main): likewise. + * gensupport.c (struct queue_elem): Add filename member. + (queue_pattern): Initialize it; update all callers. + (process_include): Don't free filename. + (read_md_rtx): Set read_rtx_filename. + +2002-05-23 Hans Boehm + + * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages. + +2002-05-23 Richard Henderson + + * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case. + +2002-05-23 Richard Henderson + + * doc/extend.texi (C++98 Thread-Local Edits): Update with + commentary from Mark. + +2002-05-23 Zdenek Dvorak + + * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): + Use FOR_EACH_BB macros to iterate over basic block chain. + * cfg.c (clear_edges, clear_bb_flags, dump_flow_info, + alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges): + Likewise. + * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add, + find_unreachable_blocks, create_edge_list, verify_edge_list, + remove_fake_edges, add_noreturn_fake_exit_edges, + flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute): + Likewise. + * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks, + find_sub_basic_blocks): Likewise. + * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks): + Likewise. + * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps): + Likewise. + * cfgloop.c (flow_loops_cfg_dump, flow_loops_find): + Likewise. + * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges, + commit_edge_insertions, commit_edge_insertions_watch_calls, + print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise. + * combine.c (combine_instructions, reg_dead_at_p): Likewise. + * conflict.c (conflict_graph_compute): Likewise. + * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1, + df_modified_p, df_refs_unlink, df_dump): Likewise. + * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise. + * final.c (compute_alignments): Likewise. + * flow.c (update_life_info, update_life_info_in_dirty_blocks, + delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data, + count_or_remove_death_notes): Likewise. + * gcse.c (oprs_unchanged_p, record_last_reg_set_info, + compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill, + classic_gcse, compute_transp, cprop, compute_pre_data, + compute_transpout, invalidate_nonnull_info, + delete_null_pointer_checks_1, delete_null_pointer_checks, + compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems, + compute_store_table, build_store_vectors, store_motion): Likewise. + * global.c (global_conflicts, mark_elimination): Likewise. + * graph.c (print_rtl_graph_with_bb): Likewise. + * haifa-sched.c (sched_init): Likewise. + * ifcvt.c (if_convert): Likewise. + * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete, + compute_available, compute_nearerout, compute_rev_insert_delete, + optimize_mode_switching): Likewise. + * local-alloc.c (local_alloc, update_equiv_regs): Likewise. + * predict.c (estimate_probability, note_prediction_to_br_prob, + propagate_freq, counts_to_freqs, expensive_function_p, + estimate_bb_frequencies): Likewise. + * profile.c (instrument_edges, get_exec_counts, + compute_branch_probabilities, compute_checksum, branch_prob, + find_spanning_tree): Likewise. + * recog.c (split_all_insns, peephole2_optimize): Likewise. + * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs): + Likewise. + * regclass.c (scan_one_insn, regclass): Likewise. + * regmove.c (mark_flags_life_zones, regmove_optimize, + record_stack_memrefs): Likewise. + * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise. + * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise. + * resource.c (find_basic_block): Likewise. + * sched-ebb.c (schedule_ebbs): Likewise. + * sched-rgn.c (is_cfg_nonregular, build_control_flow, + find_single_block_region, find_rgns, schedule_insns) + * sibcall.c (optimize_sibling_and_tail_recursive_call) + * ssa-ccp.c (optimize_unexecutable_edges, + ssa_ccp_df_delete_unreachable_insns): Likewise. + * ssa-dce.c (ssa_eliminate_dead_code): Likewise. + * ssa.c (find_evaluations, compute_dominance_frontiers_1, + rename_block, convert_to_ssa, compute_conservative_reg_partition, + compute_coalesced_reg_partition, rename_equivalent_regs, + convert_from_ssa): Likewise. + * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue, + process_for_unwind_directive): Likewise. + + * df.c (FOR_ALL_BBS): Removed. + * gcse.c (struct null_pointer_info): Type of current_block field + changed. + (struct reg_avail_info): Type of last_bb field changed. + * config/ia64/ia64.c (block_num): Removed. + (need_copy_state): Type changed. + (last_block): New. + +2002-05-23 Neil Booth + + * cppinit.c (mark_named_operators): Split out from init_builtins. + (cpp_finish_options): Call it from here instead. + +2002-05-23 Jason Thorpe + + * builtin-attrs.def: Update copyright years. + (ATTR_NONNULL): New attribute identifier. + (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New + attribute tree lists. + (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the + format operand. + (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use... + (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg + attribute lists. Chain the appropriate nonnull attribute. + * c-format.c (check_format_arg): Remove null format string + warning. + * testsuite/gcc.dg/format/null-1.c: New test. + +2002-05-23 Rainer Orth + + * Makefile.in (ADAC): Define. + (SYSLIBS): Define. + (.SUFFIXES): Move before language makefile fragments. + (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC. + +2002-05-23 Mark Mitchell + + * varasm.c (make_decl_rtl): Don't allow weak variables to be + placed in common. + +Thu May 23 19:43:41 CEST 2002 Jan Hubicka + + * cfg.c (dump_flow_info): Print results of + maybe_hot/probably_never_executed predicates. + * toplev.c (open_dump_file): Print function frequency. + +2002-05-23 David S. Miller + + * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use + regsets. + +2002-05-23 Jason Thorpe + + * c-common.c (warn_nonnull): Declare. + (c_common_attribute_table): Add "nonnull" attribute. + (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p, + check_nonnull_arg, get_nonnull_operand, check_function_arguments, + check_function_arguments_recurse): New functions. + * c-common.h (warn_nonnull): Declare extern. + (check_function_arguments, check_function_arguments_recurse): New + prototypes. + * c-decl.c (c_decode_option): Add -Wnonnull option. + * c-format.c (set_Wformat): Set warn_nonnull if enabling + format checking. + (format_check_context): New structure. + (check_format_info_recurse): Remove recursion and rename to... + (check_format_arg): ...this. Update comment. + (check_format_info): Use check_function_arguments_recurse. + * c-typeck.c (build_function_call): Call check_function_arguments + instead of check_function_format. + * doc/extend.texi: Document "nonnull" attribute. + * doc/invoke.texi: Docuemnt -Wnonnull option. + * testsuite/gcc.dg/nonnull-1.c: New test. + * testsuite/gcc.dg/nonnull-2.c: New test. + +2002-05-23 David S. Miller + + * basic-block.h (CLEANUP_NO_INSN_DEL): Define it. + * cfgcleanup.c (cleanup_cfg): If it is set do not + attempt to delete trivially dead insns. + * except.c (finish_eh_generation): Pass it to cleanup_cfg. + * toplev.c (rest_of_compilation): Document non-trivial aspect + the RTL before optimize_save_area_alloca is run. + +2002-05-23 Neil Booth + + * c-lex.c (indent_level): Remove. + (cb_file_change, c_lex): Remove indent level handling. + * c-lex.h (indent_level): Remove. + * input.h (struct file_stack): Remove indent_level. + * toplev.c (push_srcloc): Remove indent_level handling. + +2002-05-23 Jakub Jelinek + + PR target/6753 + * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead + of x in constraints for clarity. + (sse_mov?fcc split): abort if op2 == op3. + (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3, + sse_movsfcc_const0_4): Add earlyclobber. + (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3, + sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode. + Use Y instead of x in constraints. + +2002-05-23 Richard Henderson + + * doc/extend.texi (C99 Thread-Local Edits): New subsection. + (C++98 Thread-Local Edits): New subsection. + + * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace. + (ix86_arch): Set type to enum processor_type. + + * config/i386/i386.md (movsi_1, movdi_1_rex64): Use + LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST. + +2002-05-23 Jakub Jelinek + + * configure.in: Fix as version test for binutils 2.12.1 releases + (without dates). + * configure: Rebuilt. + +2002-05-23 Richard Henderson + + * config/i386/i386.c (get_pic_label_name): New. + (load_pic_register): Remove. + (output_set_got): New. + (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD. + * config/i386/i386.md (UNSPEC_SET_GOT): New. + (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove. + (prologue_set_got, prologue_get_pc): Remove. + (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New. + (builtin_setjmp_receiver): Use gen_set_got. + * config/i386/i386-protos.h: Update. + +Thu May 23 09:22:23 CEST 2002 Jan Hubicka + + * gcse.c (hash_expr): Do not use alias set for hashing. + +2002-05-22 Kevin Buettner + + * dbxout.c (dbxout_class_name_qualifiers): New function. + (dbxout_symbol): Output class/struct qualifiers for a .stabs entry. + +2002-05-23 Neil Booth + + * cpperror.c (_cpp_begin_message): No special casing + of CPP_FATAL_LIMIT. + * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/. + (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR. + * cpplib.c (do_include_common): Use DL_ERROR. + * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove. + (DL_ICE): Renumber. + * fix-header.c (read_scan_file): Update. + +2002-05-22 Richard Henderson + + * config/i386/i386.c (ix86_expand_call): New function, extracted + from md call patterns. Add pic_offset_table_rtx to + CALL_INSN_FUNCTION_USAGE when needed. + * config/i386/i386.md (call_pop, call): Use ix86_expand_call. + (call_value_pop, call_value, untyped_call): Likewise. + (call_exp, call_value_exp): Remove. + * config/i386/i386-protos.h: Update. + +2002-05-22 Richard Henderson + + * varasm.c (default_section_type_flags): Check for VAR_DECL + before using DECL_THREAD_LOCAL. + +2002-05-22 David Edelsohn + + * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer. + (STARTFILE_SPEC): Delete PE crt0.o. + * config/rs6000/aix51.h: Same. + * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF. + * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to + function descriptor symbol. Use RS6000_OUTPUT_BASENAME. + (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME. + * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define. + +2002-05-22 Richard Henderson + + * varasm.c (default_section_type_flags): Handle tls data and + default sections. + (default_unique_section): Handle tls sections. + +2002-05-23 Alan Modra + + * configure.in (CROSS): Define NATIVE_CROSS. + * configure: Regenerate. + * gcc.c (STARTFILE_PREFIX_SPEC): Define. + (startfile_prefix_spec): New var. + (static_specs): Add startfile_prefix_spec. + (do_spec_2): Split out from.. + (do_spec): ..here. + (main): Process startfile_prefix_spec. + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of + dynamic linker. + (STARTFILE_PREFIX_SPEC): Define. + (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without + absolute paths. + +2002-05-22 Kazu Hirata + + * cpperror.c: Fix formatting. + * cppexp.c: Likewise. + * cppfiles.c: Likewise. + * cpphash.c: Likewise. + * cpphash.h: Likewise. + * cppinit.c: Likewise. + * cpplex.c: Likewise. + * cpplib.c: Likewise. + * cppmacro.c: Likewise. + * cppmain.c: Likewise. + * cppspec.c: Likewise. + +2002-05-22 Jakub Jelinek + + * combine.c (force_to_mode): Use gen_int_mode. + Don't clear CONST_INT bits outside of mode. + +2002-05-22 Richard Henderson + + * fixinc/inclhack.def (thread_keyword): Match __thread as last arg. + * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild. + +2002-05-22 Jakub Jelinek + + PR c/6643 + * emit-rtl.c (widen_memory_access): Only call compare_tree_int + if DECL_SIZE_UNIT is INTEGER_CST. + +2002-05-22 Richard Henderson + + * flow.c (life_analysis): Delete broken reg_label check. + +2002-05-22 Richard Henderson + + * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg. + * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild. + +Wed May 22 18:39:57 2002 J"orn Rennecke + + * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c. + (embed-bb.c): New rule. + * t-sh64 (LIB2FUNCS_EXTRA): Don't change. + * config/sh/embed_bb.c: Delete. + +Wed May 22 18:25:29 2002 J"orn Rennecke + + * c-common.c (cb_register_builtins): Don't indent '#' of #define. + +2002-05-22 Kazu Hirata + + * config/h8300/h8300.md (*andorqi3): New. + +2002-05-22 Neil Booth + + PR preprocessor/6517 + * Makefile.in: Update. + * c-common.c (c_common_post_options): Add preprocessor + errors to the error count. + * c-lang.c (c_post_options): Kill. + (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. + * hooks.h: Add header guards. + * langhooks-def.h: Include hooks.h. + (LANG_HOOKS_POST_OPTIONS): Update. + * langhooks.h (struct lang_hooks): Update post_options. + * toplev.c (parse_options_and_default_flags): Update. +objc: + * objc-lang.c (objc_post_options): Kill. + (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. + +2002-05-21 Bruce Korb + + * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check + * fixinc/inclhack.def(thread_keyword): use c_fix = format. + * fixinc/fixincl.x: regen. + +2002-05-21 Kazu Hirata + + * cfgbuild.c: Fix formatting. + * cfg.c: Likewise. + * cfgcleanup.c: Likewise. + * cfglayout.c: Likewise. + * cfgloop.c: Likewise. + * cfgrtl.c: Likewise. + +2002-05-21 Richard Henderson + + * c-common.h (enum rid): Add RID_THREAD. + * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables. + (grokdeclarator): Grok __thread. + * c-parse.in (reswords): Add __thread. + (rid_to_yy): Add RID_THREAD. + + * tree.h (DECL_THREAD_LOCAL): New. + (struct tree_decl): Add thread_local_flag. + * print-tree.c (print_node): Dump DECL_THREAD_LOCAL. + * tree.c (staticp): TLS variables are not static. + + * target-def.h (TARGET_HAVE_TLS): New. + * target.h (have_tls): New. + * output.h (SECTION_TLS): New. + * varasm.c (assemble_variable): TLS variables can't be common for now. + (default_section_type_flags): Handle .tdata and .tbss. + (default_elf_asm_named_section): Handle SECTION_TLS. + (categorize_decl_for_section): Handle DECL_THREAD_LOCAL. + + * flags.h (flag_tls_default): Declare. + * toplev.c (flag_tls_default): Define. + (display_help): Display help for it. + (decode_f_option): Set it. + + * doc/extend.texi (Thread-Local): New node describing language-level + thread-local storage. + * doc/invoke.texi (-ftls-model): Document. + + * fixinc/inclhack.def (thread_keyword): New. + * fixinc/fixincl.x: Rebuild. + +2002-05-21 Jeffrey A Law + + * optabs.c (expand_binop): For double-word integer multiplies, + do not compute intermediate results into something that is + not a register (such as a SUBREG or MEM). + + * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko. + (ix86_sched_reorder): Make sure to initialize scheduling + data even when there's only one insn in the ready queue. + +2002-05-21 Vladimir Makarov + + * genautomata.c (reserv_sets_hash_value): Fix a typo. + +2002-05-21 Vladimir Makarov + + * genautomata.c (reserv_sets_hash_value): Define hash_value as + set_el_t. Transform the hash value into unsigned. + (output_cycle_reservs): Fix bug with output of repeated `nothing'. + (transform_3): Add code to process `(A,B)+(D,E)'. + +2002-05-21 NIIBE Yutaka + + * reload1.c (do_output_reload): Run delete_output_reload + only if optimizing. + +2002-05-21 Roger Sayle + + PR middle-end/6600 + * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants + larger than INTEGER_CST. (store_by_pieces_1): Use it here... + (can_store_by_pieces): ... and here to limit the largest mode used. + Add a comment to document this function. + +2002-05-21 Richard Henderson + + * flow.c (life_analysis): Fix test for deleted label. + +2002-05-21 Neil Booth + + * doc/tm.texi: Fix typo. + +2002-05-21 Zack Weinberg + + * c-common.c (c_common_init): Set options->unsigned_char from + flag_signed_char. + (cb_register_builtins): Define __STRICT_ANSI__ and + __CHAR_UNSIGNED__ here... + * cppinit.c (init_builtins): Not here. + (cpp_create_reader): unsigned_char option defaults to 0, not + !DEFAULT_SIGNED_CHAR. + (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char + and -funsigned-char. + + * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__. + * cpphash.c (_cpp_init_hashtable): Don't set it. + * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting + directly. Clarify comment. + +2002-05-21 Zdenek Dvorak + + * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to + neighboring basic blocks. Use ENTRY_BLOCK_PTR->next_bb instead of + BASIC_BLOCK (0). Use EXIT_BLOCK_PTR->prev_bb instead of + BASIC_BLOCK (n_basic_blocks - 1). + * cfganal.c (can_fallthru, flow_call_edges_add, + flow_preorder_transversal_compute): Too. + * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks, + find_sub_basic_blocks): Too. + * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too. + * cfglayout.c (skip_insns_after_block, fixup_reorder_chain, + fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too. + * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too. + * combine.c (this_basic_block): Type changed to basic_block. + (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine, + nonzero_bits, num_sign_bit_copies, get_last_value_validate, + get_last_value, distribute_notes, distribute_links): Too. + * final.c (compute_alignments): Too. + * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too. + * function.c (thread_prologue_and_epilogue_insns): Too. + * gcse.c (compute_code_hoist_vbeinout): Too. + * global.c (build_insn_chain): Too. + * ifcvt.c (find_if_block, find_cond_trap): Too. + * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too. + * regmove.c (regmove_optimize): Too. + * resource.c (find_basic_block): Too. + * sched-ebb.c (schedule_ebbs): Too. + * ssa-dce.c (find_control_dependence, find_pdom): Too. + +2002-05-21 Andreas Jaeger + + * cppinit.c (sanity_checks): Avoid printf mismatch warnings. + +2002-05-21 Richard Henderson + + * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use + unspec names, not numbers. + +2002-05-21 Joseph S. Myers + + * doc/sourcebuild.texi: Mention snapshot-README and + snapshot-index.html as needing updating for new front ends. + +2002-05-21 Kaveh R. Ghazi + + * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when + disabling checking, and avoid multiple evaluation of RTX. + +2002-05-21 Richard Earnshaw + + * bitmap.c (bitmap_find_bit): Return early if we have the correct + element cached. + +Tue May 21 10:51:54 CEST 2002 Jan Hubicka + + * profile.c (gen_edge_profiler): Set alias set before the memory is + used. + +2002-05-20 David S. Miller + + * cselib.c (max_value_regs): New. + (cselib_lookup, cselib_invalidate_regno): Initialize it when + adding new entries to the REG_VALUES table and we are dealing with + a hard register. + (clear_table): Initialize it. + (cselib_invalidate_regno): Use it to determine which hard + registers to scan when mode is not VOIDmode. + +2002-05-20 Duraid Madina + + * tradcpp.c (fixup_newlines): Use old-style function header. + +2002-05-20 Krister Walfridsson + + * reload1.c (reload_cse_simplify): Fix typo in rtx code check. + +2002-05-20 H.J. Lu (hjl@gnu.org) + + Base on suggestions from Zhang Fuxin : + + * config/mips/mips.h (DFMODE_NAN): Defined. + (SFMODE_NAN): Likewise. + +2002-05-20 Dale Johannesen + + * combine.c (cant_combine_insn_p): Back out my + previous patch. + +2002-05-20 Kazu Hirata + + * params.c: Fix formatting. + * params.h: Likewise. + * predict.c: Likewise. + * prefix.c: Likewise. + * print-rtl.c: Likewise. + * print-tree.c: Likewise. + * profile.c: Likewise. + +2002-05-20 H.J. Lu (hjl@gnu.org) + + * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine. + +2002-05-20 Nick Clifton + + * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march + switches straight on to the assembler, do not abbreviate them. + * config/arm/elf.h (ASM_SPEC): As above. + * config/arm/semi.h (ASM_SPEC): As above. + * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above. + * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass + -mcpu=xscale on to the assembler by default. + * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above. + +2002-05-20 Richard Henderson + + * cse.c (canon_hash): Reorder do_not_record test. Always + allow pic_offset_table_rtx. + +2002-05-19 Toon Moene + + * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p. + (expand_binop): Ditto (3 times). + +2002-05-19 Mark Mitchell + + * Makefile.in (distclean): Remove QMTest stuff. + (QMTEST_PATH): New variable. + (QMTESTFLAGS): Likewise. + (QMTESTRUNFLAGS): Likewise. + (QMTEST): Likewise. + (QMTEST_GPP_TESTS): Likewise. + (QMTEST_DIR): Likewise. + (QMTEST_DIR/context): New target. + (qmtest-g++): Likeise. + (qmtest-gui): Likewise. + (QMTEST_DIR/gpp-expected.qmr): Likewise. + +2002-05-19 Aldy Hernandez + + * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in + an altivec register if TARGET_ALTIVEC. + + * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P + to ALTIVEC_VECTOR_MODE. + (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned. + (rs6000_va_arg): Vectors may go in registers if they are not + altivec vectors. + +2002-05-19 Kazu Hirata + + * protoize.c: Fix formatting. + +2002-05-19 Richard Henderson + + * gensupport.c (init_include_reader): Merge into ... + (process_include): ... here. Simplify composite path creation. + Plug memory leaks. Fix file/line number tracking. Do not + process_define_cond_exec. Return void. + (process_rtx): Don't check process_include return value. + +2002-05-20 Zdenek Dvorak + + * basic_block.h (struct basic_block_def): Added prev_bb and next_bb + fields. + (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for + traversing basic block chain. + (create_basic_block_structure, create_basic_block): Declaration changed. + (link_block, unlink_block): Declare. + * cfg.c (entry_exit_blocks): Initialize new fields. + (link_block, unlink_block): New. + (expunge_block_nocompact): Unlink basic block. + (dump_flow_info): Print prev_bb/next_bb fields. + * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified. + * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified. + * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified. + * cfgrtl.c (create_basic_block_structure, create_basic_block, + split_block, force_nonfallthru_and_redirect, split_edge): Modified. + (verify_flow_info): Check that list agrees with numbering. + +2002-05-19 Neil Booth + + * c-common.c (preprocessing_asm): New macro. + * c-lex.h (builtin_define, builtin_assert): Use pfile. +doc: + * tm.texi: Update. +config/alpha: + * alpha.h (CPLUSPLUS_CPP_SPEC): Remove. + (CPP_SPEC): Simplify. + (TARGET_CPU_CPP_BUILTINS): Update. + * freebsd.h (TARGET_OS_CPP_BUILTINS): New. + (CPP_SPEC): Simplify. + * linux.h (CPLUSPLUS_CPP_SPEC): Remove. + (TARGET_OS_CPP_BUILTINS): Update. + * osf.h (CPP_XFLOAT_SPEC): Kill. + (TARGET_OS_CPP_BUILTINS): Update. + (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify. + * osf5.h (CPP_XFLOAT_SPEC): Kill. + * vms.h (CPP_SUBTARGET_SPEC): Kill. + (TARGET_OS_CPP_BUILTINS): Update. + +2002-05-19 Richard Henderson + + * varasm.c (default_binds_local_p): Fix typo. + +2002-05-19 Marek Michalkiewicz + + * config/avr/avr.c (machine_dependent_reorg): Sign extend the + CONST_INT operand to the correct mode after adding 1 to it. + +2002-05-19 Mark Mitchell + + * config.gcc (powerpc-wrs-windiss*): New target. + +2002-05-19 Franz Sirl + + * config/rs6000/rs6000.md (ashrdi3_no_power): New. + (ashrdi3): Use it. + +2002-05-18 Mark Mitchell + + * configure.in (AC_CHECK_FUNCS): Add checks for scandir and + alphasort. + * config.in: Regenerated. + * configure: Regenerated. + +2002-05-19 Richard Henderson + + * target-def.h (TARGET_BINDS_LOCAL_P): New. + * target.h (struct gcc_target): Move boolean fields to the end. + Add binds_local_p. + * varasm.c (default_binds_local_p): New. + * output.h: Declare it. + + * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook. + * config/cris/cris.c (cris_encode_section_info): Likewise. + * config/i386/i386.c (i386_encode_section_info): Likewise. + * config/ia64/ia64.c (ia64_encode_section_info): Likewise. + * config/sh/sh.c (sh_encode_section_info): Likewise. + + * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New. + (TARGET_BINDS_LOCAL_P): New. + +2002-05-19 Richard Henderson + + * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE, + FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, + MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison. + + * toplev.c (display_help): Kill -a -ax help. + + * config/1750a/1750a.h, config/alpha/alpha.h, + config/clipper/clipper.h, config/dsp16xx/dsp16xx.h, + config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h, + config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h: + (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill. + + * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill. + * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill. + + * config/i386/i386-protos.h (ix86_output_block_profiler): Kill. + (ix86_output_function_block_profiler): Kill. + * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill. + (m68hc11_function_block_profiler): Kill. + * config/m68hc11/m68hc11-protos.h: Update. + * config/m88k/m88k.c (output_block_profiler): Kill. + (output_function_block_profiler): Kill. + * config/m88k/m88k-protos.h: Update. + +2002-05-19 Richard Henderson + + * system.h (STRIP_NAME_ENCODING): Poison it. + * output.h (STRIP_NAME_ENCODING): Remove. + (default_strip_name_encoding): Declare. + * target-def.h (TARGET_STRIP_NAME_ENCODING): New. + * target.h (strip_name_encoding): New. + * varasm.c (default_strip_name_encoding): New. + + * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h, + config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c, + config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c, + config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h, + config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h, + config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h, + config/pa/pa.c, config/pa/pa.h, config/pa/som.h, + config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h, + config/v850/v850.h: Use the hook, not the macro. + + * config/darwin-protos.h, config/darwin.c, config/darwin.h, + config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c, + config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h, + config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c, + config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c, + config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h, + config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h, + config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h, + config/v850/v850.c, config/v850/v850.h: + Move STRIP_NAME_ENCODING to out-of-line function and add + TARGET_STRIP_NAME_ENCODING. + + * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h, + config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING + with TARGET_STRIP_NAME_ENCODING referencing existing function; + make function static. + + * xcoffout.c: Include target.h + * Makefile.in (xcoffout.o): Update. + + * config/avr/avr.c (avr_encode_section_info): Correct prototype. + * config/avr/avr.h (STRIP_NAME_ENCODING): Remove. + * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark + reloc argument unused. + * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New. + + * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous + STRIP_NAME_ENCODING docs. + +2002-05-19 Andreas Jaeger + + * gengenrtl.c: Add prototype for excluded_rtx. + + * real.h: Add prototype for exact_real_truncate. + +2002-05-18 Richard Henderson + + * system.h (ENCODE_SECTION_INFO): Poison it. + * target-def.h (TARGET_ENCODE_SECTION_INFO): New. + * target.h (encode_section_info): New. + * varasm.c (make_decl_rtl, output_constant_def): Use it. + * hooks.c (hook_tree_int_void): New. + * hooks.h: Declare it. + + * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c, + config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h, + config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h, + config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h, + config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h, + config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, + config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c, + config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h, + config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, + config/mcore/mcore-protos.h, config/mcore/mcore.c, + config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c, + config/mmix/mmix.h, config/rs6000/rs6000-protos.h, + config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h, + config/stormy16/stormy16.c, config/stormy16/stormy16.h: + Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO + referencing existing function. Make function static. + + * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c, + config/arc/arc.h, config/arm/arm.c, config/arm/arm.h, + config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c, + config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c, + config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c, + config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h, + config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c, + config/pa/pa.h, config/romp/romp.c, config/romp/romp.h, + config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c, + config/s390/s390.h, config/sh/sh.c, config/sh/sh.h, + config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c, + config/v850/v850.h, config/vax/vax.c, config/vax/vms.h, + config/xtensa/xtensa.c, config/xtensa/xtensa.h: + Move ENCODE_SECTION_INFO to out-of-line function and add + TARGET_ENCODE_SECTION_INFO. + + * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro. + (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. + + * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename + from SUBTARGET_* + (switch_to_section): Replace in_rdata case with in_readonly_data. + + * config/h8300/h8300.c (h8300_encode_label): Make static. + * config/h8300/h8300-protos.h: Update. + + * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename + from rs6000_encode_section_info; make static. + (rs6000_xcoff_encode_section_info): New. + + * config/v850/v850.c (v850_encode_data_area): Make static. + * config/v850/v850-protos.h: Update. + + * config/vax/vax.c: Include flags.h. + (vms_select_section): Fix typo. + + * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous + ENCODE_SECTION_INFO docs. + +2002-05-18 Richard Henderson + + * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from + REGISTER_TARGET_PRAGMAS. + * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine. + + * config.gcc: Do not use rs6000-c.c on powerpc-darwin. + +2002-05-18 Richard Henderson + + * system.h (SELECT_RTX_SECTION): Poison. + * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New. + * target.h (select_rtx_section): New. + * varasm.c (output_constant_pool): Use it. + (default_select_rtx_section, default_elf_select_rtx_section): New. + * output.h: Declare them. + + * config/darwin.h (SELECT_RTX_SECTION): Move ... + * config/darwin.c (machopic_select_rtx_section): ... here. + * config/darwin-protos.h: Update. + + * config/nextstep.h (SELECT_RTX_SECTION): Move ... + * config/nextstep.c (machopic_select_rtx_section): ... here. + (nextstep_select_section): Rename variable to avoid macro clash. + * config/nextstep-protos.h: Update. + + * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h, + config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h, + config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h, + config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h, + config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h, + config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h, + config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h, + config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h, + config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h + (SELECT_RTX_SECTION): Remove. + + * config/darwin.h, config/elfos.h, config/nextstep.h, + config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c, + config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h, + config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h, + config/sparc/lynx.h, config/xtensa/xtensa.c + (TARGET_ASM_SELECT_RTX_SECTION): New. + + * config/alpha/elf.h (SELECT_RTX_SECTION): Move ... + * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here. + * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ... + * config/ia64/ia64.c (ia64_select_rtx_section): ... here. + (ia64_aix_select_rtx_section): New. + * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before + redefining. + * config/mips/mips.c (mips_select_rtx_section): Make static. + Support ELF SHF_MERGE features. + * config/mips/mips-protos.h: Update. + * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ... + * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here. + (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section; + make static, fall back to default_elf_select_rtx_section. + * config/rs6000/rs6000-protos.h: Update. + * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ... + * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here. + * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2. + * config/romp/romp.c (romp_select_rtx_section): New. + * config/s390/s390.c (s390_select_rtx_section): New. + * config/xtensa/xtensa.c: Include output.h. Shuffle local function + declarations before target macro definition. + (xtensa_emit_call): Use static buffer. + (xtensa_select_rtx_section): New. + * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove. + (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove. + (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section. + + * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from + SELECT_RTX_SECTION docs. + +Sun May 19 00:24:23 CEST 2002 Jan Hubicka + + * i386.md (movsi/movdi): Fix template. + (sse2 patterns): Set attributes consistently. + + * i386.md (pushqi2, ashrqi_*): Fix constraint. + +2002-05-18 Toon Moene + + * optabs.c (complex_part_zero_p): New. + * (expand_cmplxdiv_straight): Use it. + * (expand_cmplxdiv_wide): Ditto. + * (expand_binop): Ditto. + +2002-05-18 Richard Henderson + + * final.c (HAVE_READONLY_DATA_SECTION): New. + (shorten_branches): Use it instead of ifdefs. + * varasm.c (enum in_section): Add in_readonly_data. + (text_section, data_section): Tidy. + (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present. + + * config/darwin.h, config/nextstep.h, config/h8300/elf.h, + config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h + (READONLY_DATA_SECTION): Don't undef. + + * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h, + config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h, + config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef. + + * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h, + config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h, + config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h, + config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove. + + * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h, + config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h, + config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, + config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h, + config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h, + config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h, + config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h, + config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from + CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP. + + * config/elfos.h, config/netware.h, config/1750a/1750a.h, + config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h, + config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h, + config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h, + config/pa/pa64-hpux.h, config/sparc/litecoff.h + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. + + * config/elfos.h, config/netware.h, config/svr3.h, + config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h, + config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, + config/h8300/h8300.h, config/i386/i386-interix.h, + config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h, + config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove. + + * config/elfos.h, config/netware.h, config/svr3.h, + config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h, + config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h, + config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h, + config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove. + + * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h, + config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h, + config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h, + config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h, + config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h, + config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h, + config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h, + config/rs6000/sysv4.h, config/v850/v850.h + (EXTRA_SECTIONS): Remove in_const/in_rdata. + (EXTRA_SECTION_FUNCTIONS): Remove accompanying function. + + * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h, + config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h, + config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h, + config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section. + * config/alpha/alpha.c (alpha_start_function): Likewise. + (alpha_write_linkage): Likewise. + * config/m32r/m32r.c (m32r_select_section): Likewise. + * config/m88k/m88k.c (m88k_select_section): Likewise. + * config/mips/mips.c (mips_select_rtx_section): Likewise. + * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise. + (rs6000_elf_select_section): Likewise. + * config/v850/v850.c (v850_select_section): Likewise. + + * config/1750a/1750a.h, config/i860/sysv3.h + (READONLY_DATA_SECTION_ASM_OP): New. + READONLY_DATA_SECTION_ASM_OP. + * config/i386/interix.c, config/i386/winnt.c + (i386_pe_unique_section): Always use .rdata prefix. + * config/pa/som.h (readonly_data): Always switch to read-only section. + (READONLY_DATA_SECTION): Predicate on flag_pic. + * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis. + * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New. + (READONLY_DATA_SECTION): Update. + +2002-05-18 Jason Thorpe + + * c-common.c (c_common_post_options): Warn if -Wformat-zero-length + is used without -Wformat. + * c-common.h (warn_format_zero_length): Declare extern. + * c-decl.c (warn_options): Add "format-zero-length". + * c-format.c (warn_format_zero_length): Declare. + (set_Wformat): Set warn_format_zero_length for -Wformat. + (check_format_info): Only warn about zero-length formats if + warn_format_zero_length is true. Include the format type + name in the warning message. + * doc/invoke.texi: Document -Wformat-zero-length. + * testsuite/gcc.dg/format/zero-length-1.c: New test. + +2002-05-18 Kazu Hirata + + * timevar.c: Fix formatting. + * tlink.c: Likewise. + * toplev.c: Likewise. + * tree-dump.c: Likewise. + * tree-inline.c: Likewise. + +2002-05-18 Neil Booth + + * cppinit.c (cpp_post_options): If preprocessed, turn off + traditional. If traditional, turn off column numbers. + * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional. + * cpptrad.c (handle_newline): Update line_base. + (skip_comment): Handle -Wcomment. + +2002-05-17 Zack Weinberg + + * cppinit.c (struct builtin): Remove unused fields. + (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill. + (operator_array): New - was second half of builtin_array. + (init_builtins): Simplify loop over builtin_array/operator_array. + +2002-05-18 Neil Booth + + * defaults.h (UNIQUE_SECTION): Remove. + * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison. + +2002-05-17 Richard Henderson + + * expr.c (init_expr_once): Don't use start/end_sequence. + Use rtx_alloc instead of emit_insn. + * toplev.c (lang_dependent_init): Run init_expr_once here ... + (lang_independent_init): ... not here. + +2002-05-17 Jason Thorpe + + * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__. + +2002-05-17 Marek Michalkiewicz + + * config/avr/avr.c (avr_regs_to_save): New function. Also check + for fixed registers, possibly used for global register variables. + (initial_elimination_offset, avr_output_function_prologue, + avr_output_function_epilogue): Move common code to avr_regs_to_save. + +2002-05-17 Neil Booth + + * Makefile.in: Update for cpptrad.c. + * cpphash.h (struct cpp_buffer): New members for buffer + overlays. + (struct cpp_reader): New members for traditional output. + (_cpp_read_logical_line, _cpp_overlay_buffer): New. + * cppinit.c (cpp_create_reader): Set trad_line. + (cpp_destroy): Free trad_out_base if used. + (cpp_read_main_file): Overlay an empty buffer if traditional. + (cpp_finish_options): Don't do builtins. + (COMMAND_LINE_OPTIONS): Add -traditional-cpp. + (cpp_handle_option): Handle it. + * cpplex.c (continue_after_nul): New. + (_cpp_lex_direct): Use handle_nul. + * cpplib.h (struct cpp_options): New traditional option. + * cpptrad.c: New file. + +2002-05-17 Neil Booth + + * c-common.c (c_common_init_options): Use C89 for Objective-C, + and set the options flag. + * cppinit.c (lang_flags): Remove objc. + (lang_defaults): Remove OBJC and OBJCXX. + (set_lang): Update. + (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++. + (cpp_handle_option): Remove -+ and -lang-objc++. + For ObjC, just set a flag. + (print_help): Update. + * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX. + +2002-05-17 Rainer Orth + + * doc/install.texi (Specific, mips-sgi-irix6): Document need to + bootstrap with -mips3. + +2002-05-17 Kazu Hirata + + * final.c: Fix formatting. + * fix-header.c: Likewise. + * flow.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + +2002-05-17 David S. Miller + + PR c/6689, PR optimization/6615 + * local-alloc.c (struct equivalence): Rename 'src' to 'src_p' + and make it a pointer to rtx. Update comments. + (update_equiv_regs): When scanning for equivalences, record + address of SET_SRC (set) in reg_equiv[].src_p. Dereference + it while making the equiv replacements. + +2002-05-17 Rainer Orth + + * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo. + +2002-05-17 kaz Kojima + + * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P + when encoding visibility into SYMBOL_REF_FLAG. + +2002-05-17 Richard Sandiford + + * expr.c (force_operand): Fix reversed move. + +2002-05-17 Kurt Wall + + * doc/install.texi (Testing): Mention two common DejaGnu warnings + that can be ignored. + +2002-05-16 Gerald Pfeifer + + * doc/install.texi (Final install): Recommend to install into a + "clean" target directory. + +2002-05-17 Richard Henderson + + * config/ia64/ia64.md: Use braced strings instead of quoted strings + for code blocks. Tidy whitespace. + +2002-05-17 Richard Henderson + + * hooks.c (hook_tree_bool_false): New. + * hooks.h: Declare it. + * target-def.h (TARGET_ASM_SELECT_SECTION): New. + (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New. + * target.h (select_section, unique_section): New. + (in_small_data_p): New. + * varasm.c (resolve_unique_section): Use hooks instead of macros. + (variable_section, output_constant_def_contents): Likewise. + (default_select_section, default_unique_section): New. + (categorize_decl_for_section, default_elf_select_section): New. + * output.h: Declare them. + + * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove. + (TARGET_ASM_SELECT_SECTION): New. + (SELECT_SECTION): Move ... + * config/darwin.c (machopic_select_section): ... here. + * config/darwin-protos.h: Update. + + * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New. + (SELECT_SECTION): Move ... + * config/nextstep.c (nextstep_select_section): ... here. + * config/nextstep-protos.h: Update. + + * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION): New. + * config/svr3.h (SELECT_SECTION): Remove. + + * config/alpha/alpha.c (unicosmk_unique_section): Make static. + (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New. + (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New. + (alpha_encode_section_info): Use it. + * config/alpha/alpha-protos.h: Update. + * config/alpha/elf.h (DO_SELECT_SECTION): Remove. + (SELECT_SECTION, UNIQUE_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION): New. + * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove. + + * config/arm/pe.h (UNIQUE_SECTION): Remove. + (TARGET_ASM_UNIQUE_SECTION): New. + + * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New. + (avr_unique_section): Rename from unique_section; make static. + * config/avr/avr-protos.h: Update. + * config/avr/avr.h (UNIQUE_SECTION): Remove. + + * config/c4x/c4x.h (SELECT_SECTION): Remove. + + * config/i386/cygwin.h (UNIQUE_SECTION): Remove. + (TARGET_ASM_UNIQUE_SECTION): New. + * config/i386/i386-interix.h: Likewise. + * config/i386/win32.h: Likewise. + * config/i386/djgpp.h (UNIQUE_SECTION): Remove. + * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro. + * config/i386/sco5.h (SELECT_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION): New. + * config/i386/svr3gas.h (SELECT_SECTION): Remove. + + * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION + instead of SELECT_SECTION. + * config/m68k/dpx2.h: Likewise. + * config/rs6000/lynx.h: Likewise. + + * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. + * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New. + (ia64_in_small_data_p): New. + (ia64_encode_section_info): Use it. Reorganize overlarge conditional. + (ia64_aix_select_section, ia64_aix_unique_section): New. + * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove. + (SELECT_SECTION, UNIQUE_SECTION): Remove. + + * config/m32r/m32r.h (SELECT_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION): New. + * config/m32r/m32r.c (m32r_select_section): Take align argument. + * config/m32r/m32r-protos.h: Update. + + * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New. + (SELECT_SECTION): Move ... + * config/m88k/m88k.c (m88k_select_section): ... here. + + * config/mcore/mcore-pe.h (SELECT_SECTION): Remove. + * config/mcore/mcore.h (UNIQUE_SECTION): Remove. + * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New. + (mcore_unique_section): Make static. + * config/mcore/mcore-protos.h: Update. + + * config/mips/elf.h (UNIQUE_SECTION): Remove. + (TARGET_ASM_UNIQUE_SECTION): New. + * config/mips/elf64.h: Likewise. + * config/mips/iris6gld.h: Likewise. + * config/mips/linux.h: Likewise. + * config/mips/mips-protos.h: Update. + * config/mips/mips.c (mips_select_section): Add align argument. + * config/mips/mips.h (SELECT_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION): New. + + * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove. + * config/mmix/mmix.c (mmix_select_section): Remove. + (mmix_unique_section): Remove. + * config/mmix/mmix-protos.h: Update. + + * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New. + (SELECT_SECTION): Move ... + * config/pa/pa.c (pa_select_section): ... here. + * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove. + + * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename + from rs6000_select_section and make static. + (rs6000_elf_unique_section): Similarly. + (rs6000_xcoff_select_section): From xcoff.h. + (rs6000_xcoff_unique_section): Likewise. + * config/rs6000/rs6000-protos.h: Update. + * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove. + (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. + * config/rs6000/xcoff.h: Likewise. + + * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New. + (SELECT_SECTION): Move ... + * config/sparc/sparc.c (sparc_aout_select_section): ... here. + + * config/v850/v850.h (SELECT_SECTION): Move ... + * config/v850/v850.c (v850_select_section): ... here. + (TARGET_ASM_SELECT_SECTION): New. + + * config/vax/vms.h (SELECT_SECTION): Move ... + * config/vax/vax.c (vms_select_section): ... here. + (TARGET_ASM_SELECT_SECTION): New. + + * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs + for the target hooks. + +2002-05-17 Nick Clifton + + * config/arm/arm.c (emit_multi_reg_push): Do not set + RTX_FRAME_RELATED_P on the SEQUENCE. + +2002-05-16 Richard Henderson + + * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before + splitting. Use split_all_insns; update_life_info_in_dirty_blocks. + +2002-05-16 Richard Henderson + + * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo. + + * config/ia64/ia64.c (saveable_obstack): Do not declare. + +2002-05-16 Richard Henderson + + * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c, + cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c, + conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c, + gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c, + local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c, + recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c, + reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c, + sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c: + Revert "Basic block renumbering removal", and two followup patches. + +2002-05-16 Jason Thorpe + + * lcm.c (optimize_mode_switching): Revert previous change. + +2002-05-16 Zdenek Dvorak + + * sched-rgn.c (schedule_insns): Initialize large_region_blocks + with only extant block numbers. + +2002-05-16 Jason Thorpe + + * lcm.c (optimize_mode_switching): Fix typo. + +2002-05-16 Zdenek Dvorak + + * flow.c (calculate_global_regs_live): Queue blocks in program order. + +2002-05-16 Rainer Orth + + * doc/install.texi (Configuration): Document PWDCMD. + +2002-05-16 Dale Johannesen + + * combine.c (cant_combine_insn_p): Reenable combinations + involving hard regs unless CLASS_LIKELY_SPILLED_P. + +2002-05-16 Neil Booth + + * c-common.c (cb_register_builtins): Handle more built-ins + here rather than in gcc.c specs. + * gcc.c (cpp_unique_options): Move many built-ins to c-common.c. + (cpp_options): Pass -O flags even when only preprocessing. + * toplev.c (set_fast_math_flags): New prototype. + (fast_math_flags_set_p): New. + (set_no_fast_math_flags): Remove. + (decode_f_option): Update. + * toplev.h (set_fast_math_flags): Update. + (fast_math_flags_set_p): New. + (set_no_fast_math_flags): Remove. +config: + * c4x/c4x.c (c4x_override_options): Update. + +2002-05-16 Zack Weinberg + + * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX): + Default-define here. + (builtin_define_with_value): Can now wrap the expansion in + quotation marks if such is wanted. + (cb_register_builtins): Update calls to builtin_define_with_value. + Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__ + here. + (c_common_init): Set options->stdc_0_in_system_headers. + * c-lex.h: Update prototype of builtin_define_with_value. + * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX + and REGISTER_PREFIX. + + * cppinit.c (VERS, ULP, C, X): Kill. + (builtin_array): Remove entries for __VERSION__, + __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and + __HAVE_BUILTIN_SETJMP__. Make __STDC__ always a builtin, not + a constant. + (init_builtins): Kill off a bunch of now-dead code. + (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and + -fno-leading-underscore. + (cpp_handle_option): Remove code to set user_label_prefix. + (cpp_post_options): Likewise. + + * cpplib.h (struct cpp_options): Remove user_label_prefix. + (stdc_0_in_system_headers): New. + * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile, + stdc_0_in_system_headers) too to decide the value of __STDC__. + + * tradcpp.c (user_label_prefix): Kill. + (main): Remove code handling -f(no-)leading-underscore. + (initialize_builtins): Don't define __REGISTER_PREFIX__ + or __USER_LABEL_PREFIX__. + (install_value): Wrap compound statement in dummy loop so the + macro works properly in an if statement. + + +2002-05-16 Janis Johnson + + * loop.h (struct loop_info): Add member has_prefetch. + * loop.c (PREFETCH_CONDITIONAL): Change default to 1. + (prescan_loop): Initialize has_prefetch. + (struct prefetch_info): Change prefetch_in_loop and + prefetch_before_loop from bit fields to ints. + (emit_prefetch_instructions): Several small fixes. + (check_dbra_loop): Don't reverse loop that uses prefetch. + +2002-05-16 Rainer Orth + + * Makefile.in: Allow for PWDCMD to override hardcoded pwd. + * configure.in: Likewise. + * fixinc/check.tpl: Likewise. + * fixinc/fixinc.dgux: Likewise. + * fixinc/fixinc.svr4: Likewise. + * fixinc/fixinc.winnt: Likewise. + * fixinc/fixincl.sh: Likewise. + * fixproto: Likewise. + * configure: Regenerate. + +2002-05-16 Zdenek Dvorak + + Basic block renumbering removal: + * basic_block.h (struct basic_block_def): Renamed index to sindex, + added prev_bb and next_bb fields. + (n_basic_blocks): Renamed to num_basic_blocks. + (last_basic_block): New, index of last basic block. + (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for + traversing basic block chain. + (BLOCK_NUM): index -> sindex. + (create_basic_block_structure, create_basic_block): Declaration changed. + (debug_num2bb): Declare. + (expunge_block_nocompact): Declaration removed. + (link_block, unlink_block, compact_blocks): Declare. + * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified. + * cfg.c (entry_exit_blocks): Initialize new fields. + (clear_edges, alloc_block, expunge_block, cached_make_edge, + redirect_edge_pred, dump_flow_info, dump_edge_info, + alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges, + free_aux_for_edges): Modified. + (link_block, unlink_block, compact_blocks, debug_num2bb): New. + (expunge_block_nocompact): Removed. + * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add, + find_unreachable_blocks, create_edge_list, print_edge_list, + verify_edge_list, flow_edge_list_print, remove_fake_successors, + remove_fake_edges, flow_reverse_top_sort_order_compute, + flow_depth_first_order_compute, flow_preorder_transversal_compute, + flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb, + flow_dfs_compute_reverse_execute): Modified. + * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1, + find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks): + Modified. + * cfgcleanup.c (try_simplify_condjump, try_forward_edges, + merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps, merge_blocks, + outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb, + try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified. + * cfglayout.c (skip_insns_after_block, label_for_bb, + record_effective_endpoints, scope_to_insns_finalize, + fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps, + fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge, + cfg_layout_duplicate_bb): Modified. + * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump, + flow_loop_entry_edges_find, flow_loop_exit_edges_find, + flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan, + flow_loops_find, flow_loop_outside_edge_p): Modified. + * cfgrtl.c (create_basic_block_structure, create_basic_block, + flow_delete_block, compute_bb_for_insn, split_block, + try_redirect_by_replacing_jump, redirect_edge_and_branch, + force_nonfallthru_and_redirect, tidy_fallthru_edge, + back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion, + commit_edge_insertions, commit_edge_insertions_watch_calls, + dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges, + purge_all_dead_edges): Modified. + * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies, + try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate, + get_last_value, reg_dead_at_p, distribute_notes, distribute_links): + Modified. + * conflict.c (conflict_graph_compute): Modified. + * df.c (FOR_ALL_BBS): Removed. + (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1, + df_modified_p, df_analyse, df_refs_unlink, df_insn_modify, + df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified. + * df.h (DF_BB_INFO, DF_REF_BBNO): Modified. + * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree, + calc_idoms, idoms_to_doms, calculate_dominance_info): Modified. + * final.c (compute_alignments, final_scan_insn): Modified. + * flow.c (verify_local_live_at_start, update_life_info, + update_life_info_in_dirty_blocks, free_basic_block_vars, + delete_noop_moves, calculate_global_regs_live, + initialize_uninitialized_subregs, allocate_bb_life_data, + regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1, + mark_used_reg, count_or_remove_death_notes): Modified. + * function.c (thread_prologue_and_epilogue_insns): Modified. + * gcse.c (struct null_pointer_info): Change typo of current_block + to basic_block. + (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets, + oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info, + compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd, + alloc_avail_expr_mem, expr_killed_p, compute_ae_kill, + expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr, + classic_gcse, one_classic_gcse_pass, compute_transp, cprop, + one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work, + pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert, + pre_delete, one_pre_gcse_pass, compute_transpout, + invalidate_nonnull_info, delete_null_pointer_checks_1, + free_code_hoist_mem, compute_code_hoist_vbeinout, + hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass, + compute_ld_motion_mems, store_ops_ok, find_moveable_store, + compute_store_table, build_store_vectors, insert_insn_start_bb, + insert_store, replace_store_insn, free_store_memory, store_motion): + Modified. + * global.c (global_alloc, global_conflicts, mark_elimination, + build_insn_chain): Modified. + * graph.c (print_rtl_graph_with_bb): Modified. + * haifa-sched.c (sched_init): Modified. + * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed. + (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2, + if_convert): Modified. + * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin, + compute_insert_delete, pre_edge_lcm, compute_available, + compute_farthest, compute_nearerout, compute_rev_insert_delete, + pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching): + Modified. + * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified. + * loop.c (loop_dump_aux): Modified. + * predict.c (combine_predictions_for_insn, estimate_probability, + last_basic_block_p, process_note_prediction, process_note_predictions, + note_prediction_to_br_prob, propagate_freq, counts_to_freqs, + expensive_function_p, estimate_bb_frequencies, + compute_function_frequency): Modified. + * print-rtl.c (print_rtx): Modified. + * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges, + get_exec_counts, compute_branch_probabilities, compute_checksum, + branch_prob, find_spanning_tree): Modified. + * recog.c (split_all_insns, peephole2_optimize): Modified. + * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge, + convert_regs_1, convert_regs_2, convert_regs): Modified. + * regclass.c (scan_one_insn, regclass): Modified. + * regmove.c (mark_flags_life_zones, regmove_optimize, + combine_stack_adjustments): Modified. + * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified. + * reload1.c (reload, reload_combine, copy_eh_notes): Modified. + * reorg.c (dbr_schedule): Modified. + * resource.c (find_basic_block, init_resource_info): Modified. + * sbitmap.c (sbitmap_intersection_of_succs, + sbitmap_intersection_of_preds, sbitmap_union_of_succs, + sbitmap_union_of_preds): Modified. + * sched-deps.c (init_dependency_caches): Modified. + * sched-ebb.c (schedule_ebbs): Modified. + * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions, + find_rgns, compute_trg_info, init_regions, schedule_insns): Modified. + * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified. + * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges, + ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns, + ssa_const_prop): Modified. + * ssa-dce.c (set_control_dependent_block_to_edge_map_, + find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified. + * ssa.c (remove_phi_alternative, find_evaluations, + compute_dominance_frontiers_1, compute_iterated_dominance_frontiers, + insert_phi_node, rename_block, convert_to_ssa, eliminate_phi, + make_regs_equivalent_over_bad_edges, + make_equivalent_phi_alternatives_equival, + compute_conservative_reg_partition, + coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition, + rename_equivalent_regs, convert_from_ssa, for_each_successor_phi): + Modified. + +2002-05-16 Mark Mitchell + + * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH. + +2002-05-16 Nick Clifton + + * config/arm/arm.c (arm_rtx_costs): Check for RTX being a + SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P. + (arm_adjust_cost): Check for RTX being a SYMBOL_REF before + calling CONSTANT_POOL_ADDRESS_P. + * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code + to decide whether to define __arm__ or __thumb. + (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a + SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P. + +2002-05-16 Neil Booth + + * config/arc/arc.h (CPP_PREDEFINES): Remove. + (CPP_SPEC): Update. + (TARGET_CPU_CPP_BUILTINS): New. + +2002-05-16 Neil Booth + + * cpphash.h (cpp_macro): Move here, and make expansion a union. + * cppmacro.c (cpp_macro): Remove. + (enter_macro_context, replace_args, warn_of_redefinition, + _cpp_create_definition, cpp_macro_definition): Update. + +2002-05-16 Jason Merrill + + * config/mips/mips.c (mips_output_external): Don't do sdata + optimization for a variable with DECL_COMDAT set. + +2002-05-15 Aldy Hernandez + + * config/rs6000/altivec.h: Cleanups for tighter typechecking. + Cleanups for accepting modifiers on pointers. + Fix predicate typos. + Allow long pointers as well as int pointers. + +2002-05-15 Richard Henderson + + * varasm.c (merge_weak): Remove special case for extern and common. + +2002-05-15 Matt Hiller + + * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if + XFAILing. + * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto. + * testsuite/gcc.c-torture/compile/920520-1.x: Ditto. + * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now. + * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto. + * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto. + * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto. + +2002-05-15 Aldy Hernandez + + * reload1.c (forget_old_reloads_1): Do not use subreg offset. + +2002-05-15 Aldy Hernandez + + * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register. + ("altivec_mfvscr"): Read from VSCR. + + Add vscr sets for the following insns: altivec_vctuxs, + altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs, + altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs, + altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs, + altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss, + altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus, + altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus, + altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs, + altivec_vsubshs, altivec_vsubuws, altivec_vsubsws, + altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs, + altivec_vsum2sws, altivec_vsumsws. + + * config/rs6000/rs6000.h: Add VSCR fixed register. + (CALL_REALLY_USED_REGISTERS): Add vscr. + (CALL_USED_REGISTERS): Same. + (FIXED_REGISTERS): Same. + (REG_ALLOC_ORDER): Same. + (reg_class): Add VSCR_REGS. + (REG_CLASS_NAMES): Same. + (REG_CLASS_CONTENTS): Same. + (VSCR_REGNO): New. + (REGISTER_NAMES): Add vscr. + (DEBUG_REGISTER_NAMES): Same. + (ADDITIONAL_REGISTER_NAMES): Same. + (FIRST_PSEUDO_REGISTER): Increment. + (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register. + +2002-05-15 Jakub Jelinek + + * fold-const.c (fold): Fix a typo. + +2002-05-15 Eric Botcazou + + * fold-const.c (fold) [LT_EXPR]: Move the transformation of a + comparison against the highest or lowest integer value before + the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)' + transformation and that of an unsigned comparison against 0 + right after. + +2002-05-15 Richard Henderson + + * varasm.c (merge_weak): Error for any weakening after definition. + Adjust weakening after use warning to catch more cases. + (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently. + * config/alpha/alpha.c (alpha_encode_section_info): Do not abort. + +Wed May 15 10:38:27 CEST 2002 Jan Hubicka + + * invoke.texi (-malign-double): Re-add lost warning. + + * i386-protos.h (x86_output_mi_thunk): Declare. + * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ... + * i386.c (x86_output_mi_thunk): ... here; handle 64bits. + + * dwarf2out.c (output_call_frame_info): Do not skip unwind info + when flag_asynchronous_unwind_tables is set. + + * flags.h (flag_reorder_functions): Declare. + * function.c (prepare_function_start): Initialize frequnecy. + * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New. + * Makefile.in (predict.o): Add dependency on target.h and params.h + * defaults.h (HOT_TEXT_SECTION_NAME, + UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros. + * predict.c (choose_function_section): New function. + (estimate_bb_frequencies): Use it. + * toplev.c (flag_reorder_functions): New global variable. + (lang_independent_options): New. + (parse_options_and_default_flags): Set. + * varasm.c (assemble_start_function): Bypass functdion alignment + for never executed functions. + * invoke.texi (-freorder-blocks, -freorder-functions): Document. + (param hot-bb-count-fraction, hot-bb-frequency-fraction): New. + * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME): + Document. + + Thu Jan 3 21:52:09 CET 2002 Jan Hubicka + + * predict.c: Inlude profile.h + (MIN_COUNT): Rename to MIN_COUNT_FRACTION + (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p): + Use the information about maximal counter in the program. + + Thu Dec 20 22:14:00 CET 2001 Jan Hubicka + + * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p, + probably_never_executed_bb_p): New functions. + * cfgcleanup.c (outgoing_edges_match): Use them. + * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros. + (maybe_hot_bb_p, probably_cold_bb_p, + probably_never_executed_bb_p): New functions. + + * function.h (function): Add new field function_frequency. + * predict.c (compute_function_frequency): New function. + (estimate_probability): Call it. + +2002-03-09 Jakub Jelinek + + PR optimization/5172, optimization/5200 + * gcse.c (gcse_main): Disable store_motion. + +2002-05-14 Zack Weinberg + + * c-parse.in (MODIFIED_WCHAR_TYPE): New macro. + (c_common_nodes_and_builtins): Use it. + (builtin_define_with_value): New function. + (cb_register_builtins): Define __SIZE_TYPE__, + __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here, + using builtin_define_with_value. Use consistent notation when + defining __GXX_WEAK__. + (WCHAR_TYPE_SIZE): Don't redefine. + (combine_strings): Don't use WCHAR_TYPE_SIZE. + + * cppdefault.h: Don't provide defaults for SIZE_TYPE, + PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE. + * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc. + * tradcpp.c (initialize_builtins): Likewise. + * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__. + + * c-lex.h (builtin_define_with_value): Prototype. + * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE, + NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE. + * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc. + + * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h, + config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h, + config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h, + config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h, + config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h, + config/sparc/linux64.h, config/sparc/netbsd-elf.h, + config/sparc/sol2-bi.h, config/sparc/sparc.h: + Do not define NO_BUILTIN_SIZE_TYPE etc. Remove all references + to __SIZE_TYPE__ etc from all spec strings. When this makes + extra specs empty, delete them. + +2002-05-14 John David Anglin + + * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling + for PA8000 or generating dwarf2 call frame information. + (output_call): Remove DO_FRAME_NOTES check from return pointer + optimization. + (following_call): Return 0 when scheduling for PA8000 or generating + dwarf2 call frame information. Revise comment. + +2002-05-14 Neil Booth + +config/alpha: + * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP + and __IEEE_FP_INEXACT as appropriate. + (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus. + (CPP_SPEC): Remove ieee defines. + * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu. + +2002-05-14 Richard Henderson + + * config/i386/i386.c (ix86_save_reg): Make regno unsigned. + (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill. + +2002-05-14 Neil Booth + + * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define. + (CPP_SPEC): Update. + (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC, + CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC, + CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC, + CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove. + (EXTRA_SPECS): Update. + * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h, + arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h, + arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and + define TARGET_OS_CPP_BUILTINS if necessary. + +2002-05-14 Neil Booth + + * gcc.c (cpp_options): Must pass -m* and -f* options + to the front end even when only preprocessing. + (cc1_options): Remove redundant -lang-c. + * tradcpp.c (main): Ignore -m options. +objc: + * lang-specs.h: Similarly. + +2002-05-14 Vladimir Makarov + + * genautomata.c (transform_3): Add code for transformation + `(A,B,...)+C -> A+C,B,...'. + +Tue May 14 12:48:22 CEST 2002 Jan Hubicka + + * final.c (end_final): Do not output profile_arcs constructor, when + no functions are instrumented. + +Tue May 14 12:38:30 CEST 2002 Jan Hubicka + + * i386.md (testsi to testqi_zext_1 splitter): Fix typo. + +2002-05-14 Gerald Pfeifer + + * doc/install.texi: Remove special markup originally required for + HTML generation with texi2html. + +2002-05-14 Andreas Schwab + + * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of + SELECT_SECTION. + (UNIQUE_SECTION): Define to get small data correctly. + + * varasm.c (resolve_unique_section): Add third parameter + flag_function_or_data_sections and use it instead of + flag_function_sections. + (assemble_start_function): Pass flag_function_sections. + (asm_emit_uninitialised): Pass flag_data_sections. + (assemble_variable): Likewise. + +2002-05-14 Richard Henderson + + * config/i386/i386.md: Use define_constants for unspec numbers. + * config/i386/i386.c: Likewise. + +2002-05-13 Neil Booth + + * doc/contrib.texi: Update my entry. + +2002-05-13 Mark Mitchell + + * fixinc/inclhack.def (winidss_valist): Limit applicability. + * fixinc/fixincl.x: Regenerated. + * fixinc/tests/base/math.h: Update. + * fixinc/tests/base/testing.h: Likewise. + +2002-05-13 Zack Weinberg + + * genattr.c (gen_attr): Don't emit a comma after the last + enumerator. + +2002-05-13 Richard Henderson + + * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created + by non-local gotos. + * recog.c (peephole2_optimize): Likewise. + +2002-05-13 Andris Pavenis + + * cppfiles.c (open_file): Change mode (DJGPP only) of redirected + input to O_BINARY. + +2002-05-13 Jeffrey A Law (law@redhat.com) + + * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx. + Update prototype and callers. + (propagate_one_insn): Stack pointer adjustments kill MEMs on + the mem_set_list which reference the stack pointer, as do + calls to constant functions as they may clobber outgoing + argument space. + + * i386.c (ia32_multipass_dfa_lookahead): Prototype. + + * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define. + (ia32_multipass_dfa_lookahead): New function. + +2002-05-13 Neil Booth + + * gcc.c (SWITCH_TAKES_ARG): Remove 'V'. + (translate_options): Remove 'V'. + (process_command): Similarly. +doc: + * invoke.texi: Remove documentation of 'V'. + +2002-05-13 Ulrich Weigand + + * config/s390/linux.h: Revert 2002-04-22 changes. + +2002-05-13 Scott Marks + + * config/fr30/fr30.md: Only allow splits of immediate loads + if the destination is a register. + +2002-05-13 Neil Booth + + * Makefile.in (c-common.o, cppinit.o): Update. + * c-common.c: Include except.h. + (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__. + Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS. + * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here. + * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS, + CPP_PREDEFINES): Handle here. +config: + * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h, + alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h, + alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define + TARGET_OS_CPP_BUILTINS. + * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define. + (CPP_SPEC, EXTRA_SPECS): Update. + (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC, + CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC, + CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC, + CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC, + CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove. +doc: + * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove. + (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define. + +2002-05-12 Zack Weinberg + + * emit-rtl.c (global_rtl): Update comment. + (const_double_htab, const_double_htab_hash, + const_double_htab_hash, lookup_const_double): New. + (const_int_htab_hash, const_int_htab_eq): Remove const + qualifiers, which cause tons of warnings with RTL checking on. + (gen_rtx_CONST_DOUBLE): Deleted. + (const_double_from_real_value): New function - bears some + resemblance to the former immed_real_const_1. + (immed_double_const): Moved here from varasm.c and + simplified. + (gen_rtx_REG): Make REGNO unsigned to squelch warnings. + (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG. + (gen_rtx): Use immed_double_const. + (init_emit_once): Initialize the const_double_htab. Use + REAL_VALUE_FROM_INT where possible. Can now use + CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx. + * varasm.c (struct varasm_status): Remove x_const_double_chain. + (const_double_chain, immed_real_const, clear_const_double_mem): Delete. + (immed_double_const, immed_real_const_1): Moved to emit-rtl.c. + (init_varasm_status, mark_varasm_status): Don't touch + x_const_double_chain. + + * output.h: Delete prototype for clear_const_double_mem. + * real.h: Make REAL_VALUE_TYPE a macro again. Remove leading + '0' slot from all CONST_DOUBLE_FORMAT definitions. Prototype + const_double_from_real_value, not immed_real_const_1, and use + it to define CONST_DOUBLE_FROM_REAL_VALUE. Define new macro + CONST_DOUBLE_ATOF. + * rtl.h (CONST_DOUBLE_CHAIN): Kill. + (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust. + (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes. + (gen_rtx_REG): Second arg is unsigned. + + * gengenrtl.c (special_rtx): Take out CONST_DOUBLE. + (excluded_rtx): New, return true for CONST_DOUBLE. + (genmacro): Write nothing for excluded codes. + * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE. + * expr.c (expand_expr): Likewise. + * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the + CONST_DOUBLE_CHAIN. + * toplev.c (rest_of_compilation): Don't call + clear_const_double_mem. + + * config/rs6000/rs6000.c (rs6000_float_const): Delete. + (rs6000_hash_constant): Remove CONST_DOUBLE special case. + (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases. + * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const. + * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF. + * config/dsp16xx/dsp16xx.md, config/mips/mips.md, + config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE. + * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const. + +2002-05-12 Kaveh R. Ghazi + + * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define. + +2002-05-12 Tom Tromey + + * tree.h (copy_node): Don't mention TREE_PERMANENT. + +2002-05-12 Zack Weinberg + + * gensupport.c (n_comma_elts): Moved here from genattrtab.c. + (scan_comma_elt): New function. Accepts whitespace in comma lists. + * gensupport.h: Prototype new routines. + * genattr.c (gen_attr): Use scan_comma_elt. Avoid unnecessary + use of printf. + * genattrtab.c (n_comma_elts): Moved to gensupport.c. + (next_comma_elt): Use scan_comma_elt. + + * config/i386/i386.md: Use new attribute notation to break up + long lines in define_attr forms. + +2002-05-12 Richard Henderson + + * expr.c (compress_float_constant): New. + (emit_move_insn): Use it. + (float_extend_from_mem): New. + (init_expr_once): Initialize it. + * real.c (exact_real_truncate): New. + + * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets + dropped into memory; penalize for size. + (RTX_COSTS): FLOAT_EXTEND is free. + * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2, + extenddfxf2, extenddftf2): Accept constants and drop them to memory. + +2002-05-12 Richard Henderson + + * profile.h (profile_info): Add missing extern to declaration. + * profile.c (profile_info): Define it. + +2002-05-11 John David Anglin + + * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers + used for DImode and TImode. + +2002-05-11 Neil Booth + + * cpplex.c (_cpp_lex_direct): When in a directive at EOF + fake a newline. + +2002-05-11 Zack Weinberg + + * config/rs6000/rs6000.c (rs6000_default_long_calls, + rs6000_longcall_switch, rs6000_set_default_type_attributes): New. + (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it. + (rs6000_override_options): Handle -m(no-)longcall. + (init_cumulative_args, output_mi_thunk): Check for both + longcall and shortcall attributes on the function. + (rs6000_attribute_table): Add "shortcall". + (rs6000_handle_longcall_attribute): Update comment. + (altivec_expand_unop_builtin, altivec_expand_binop_builtin, + altivec_expand_ternop_builtin): Add default clauses to switches + to silence warnings. + + * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and + rs6000_default_long_calls. Define REGISTER_TARGET_PRAGMAS. + (TARGET_OPTIONS): Add longcall and no-longcall. + + * config/rs6000/rs6000.md (call_nonlocal_sysv, + call_value_nonlocal_sysv): Split by alternatives. One pair + accepts only SYMBOL_REFs and rejects if CALL_LONG is set in + the call cookie. The other pair accepts only LR/CTR and has + no restriction. + + * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza): + Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to + tmake_file. + * config/rs6000/rs6000-c.c: New file. + * config/rs6000/t-rs6000-c-rule: New file. + * config/rs6000/rs6000-protos.c: Add multiple-include guard. + Prototype rs6000_pragma_longcall. + + * doc/extend.texi: Document shortcall attribute. + * doc/invoke.texi: Document -mlongcall, -mno-longcall. + +2002-05-11 John David Anglin + + * reorg.c (dbr_schedule): Remove unnecessary test. + +Sat May 11 14:34:35 CEST 2002 Jan Hubicka + + * i386.md (testsi to testqi spliters): New. + + 2002-01-14 Josef Zlomek + + cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU. + + Wed Jan 9 2002 Josef Zlomek + + * basic-block.h: New flag EDGE_CAN_FALLTHRU + * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges + that can be made fallthru. + + Mon Nov 12 16:25:53 CET 2001 Jan Hubicka + + * cfglayout.c (cleanup_unconditional_jumps): New static function. + (cfg_layout_initialize): Use it. + +2002-05-11 Marek Michalkiewicz + + * config/avr/avr.c (avr_mcu_types): Update supported devices. + * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. + * config/avr/t-avr (MULTILIB_MATCHES): Likewise. + +2002-05-11 Kazu Hirata + + * dbxout.c: Fix formatting. + * dependence.c: Likewise. + * df.c: Likewise. + * diagnostic.c: Likewise. + * doloop.c: Likewise. + * dominance.c: Likewise. + * doschk.c: Likewise. + * dwarf2asm.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + +2002-05-10 Richard Henderson + + * final.c (end_final): Tidy whitespace. Don't honor flag_pack_struct. + Convert integers constants as needed. Replace "nwords" field with + "sizeof_bb". + (final): Save profile data if cfun->arc_profile, not profile_arc_flag. + * function.h: Fix typo in comment. + * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb". + +2002-05-10 Roger Sayle + + * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127) + into the equivalent (signed char)c > 0. + +2002-05-10 Janis Johnson + + * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New. + (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS. + (struct prefetch_info): Fix spelling of member bytes_accessed. + (emit_prefetch_instructions): Make dump messages more regular; + restructure code to add more dump messages; use new macros for + heuristics. (There are no code generation changes in any of this). + +2002-05-10 David S. Miller + + * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment. + (struct rtx_def): Update unchanging flag comment. + * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description. + * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs + to be handled to INSN too. + (dbr_schedule): Likewise. + * resource.c (next_insn_no_annul): Likewise. + + * cse.c (rtx_cost): Remove multiplication by power of 2 special + casing. + +2002-05-14 Gerald Pfeifer + + * doc/install.texi (Specific, *-*-solaris2*): Update passus on + setting CONFIG_SHELL to /bin/ksh and remove alternate trick to + (possibly) work around broken /bin/sh. + +2002-05-10 Rainer Orth + + * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and + . as N64/N32 libgcc_s.so subdirs. + +2002-05-10 David S. Miller + + * config/sparc/sparc.md: Use define_constants for unspec numbers. + + * rtl.h (struct rtx_def): Document unchanging and in_struct flags + more accurately. + (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix + comment. + (INSN_FROM_TARGET_P): Valid also for CALL_INSN. + * doc/rtl.texi: Document these macros more accurately. + * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for + JUMP_INSNs and CALL_INSNs. + * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P + or INSN_FROM_TARGET_P if the code is appropriate. + +2002-05-10 Marek Michalkiewicz + + * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF + before using SYMBOL_REF_FLAG (addr). + + * config/avr/avr-protos.h (avr_io_address_p): Declare. + * config/avr/avr.c (io_address_p): Rename to avr_io_address_p. + Make non-static. Update all callers. + * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7): + New insns to clear/set/test a single bit in I/O address space. + +2002-05-09 Kaveh R. Ghazi + + * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7. + +2002-05-09 Neil Booth + + * Makefile.in: Update. + * c-common.c (flag_iso, flag_undef, cb_register_builtins, + builtin_define_std): New. + (c_common_init): Register CPP builtins callback. + * c-common.h (flag_iso, flag_undef): New. + * c-decl.c (c_decode_option): Set flag_iso and flag_undef. + * c-lex.c: Don't include target.h. + (cb_register_builtins): Move to c-common.c. + (init_c_lex): Don't register hook here. + * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New. + (cpp_define, cpp_assert): Remove. + * gcc.c (cc1_options): Pass -undef to front end. + * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove. + (TARGET_INITIALIZER): Update. + * target.h (struct cpp_reader): Don't predeclare. + (struct gcc_target): Remove cpp builtin hook. + * tree.c (default_register_cpp_builtins): Remove. +doc: + * tm.texi: Update. + +2002-05-09 Neil Booth + + * cppexp.c (_cpp_expand_op_stack): Set op_limit. + +2002-05-09 Rainer Orth + + * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define. + (SHLIB_LINK, SHLIB_INSTALL): Adjust. + +2002-05-09 Jakub Jelinek + + * config/sparc/t-linux64 (SHLIB_MAPFILES): Set. + * config/sparc/libgcc-sparc-glibc.ver: New file. + * config/cris/t-linux (SHLIB_MAPFILES): Remove. + * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags. + +2002-05-09 Jakub Jelinek + + PR target/6429 + * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc. + * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s + shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for + base multilibs. + * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above. + * config/t-slibgcc-sld (SHLIB_LINK): Likewise. + * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define. + * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define. + +2002-05-09 Richard Henderson + + * config/ia64/ia64.md: Use define_constants for unspec numbers. + * config/ia64/ia64.c: Likewise. + +2002-05-09 Richard Sandiford + + * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg. + (save_restore_insns): Likewise. + (mips_expand_prologue, mips_expand_epilogue): Update callers. + (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument. + +Thu May 9 11:50:09 2002 Jeffrey A Law (law@redhat.com) + + * athlon.md, k6.md, pentium.md, ppro.md): New files. + * i386.md: Move scheduling information into new files. + + * i386.md (type attribute): Add "rotate" for rotate insns. + (rotate insns): Set type to "rotate". + (various attributes and function units): Treat rotate like shift. + (pent_pair attribute): Only rotates by one bit position are + pairable. + (sbb insns): Explicitly set pent_pair attribute on a couple + that were missing it. + +Thu May 9 18:29:24 2002 J"orn Rennecke + + * sh.c (sh_builtin_saveregs): If starting with an odd fp register, + make sure that buffer starts on odd word address. + (sh_va_arg): Skip odd fp registers when reading a double precision + value. + +2002-05-09 Neil Booth + + * tree.h (preserve_data, object_permanent_p, type_precision): + Remove. + +2002-05-09 Neil Booth + + * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison. + * cppmacro.c (paste_all_tokens): Bad pastes are a hard error. +doc: + * cpp.texi: Update for removal of obsolete features. + +Thu May 9 07:46:18 2002 Jan Hubicka + Jeffrey A Law (law@redhat.com) + + * i386.c (ia32_use_dfa_pipeline_interface): New function. Use + the DFA interface for Pentium processors. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE. + (attr_pent_pair, ix86_pent_find_pair): Remove. + (ix86_sched_reorder_pentium): Remove. + (ix86_sched_reorder): Remove reordering for Pentium. + * i386.md (Pentium scheduling): Rewrite using DFA description. + +Thu May 9 14:55:39 CEST 2002 Jan Hubicka + + * cfganal.c (can_fallthru): Fix fast path. + * cfgrtl.c (verify_flow_info): Avoid crash on conditionals + with edges to the next block. + +Thu May 9 14:52:45 CEST 2002 Jan Hubicka + Pavel Nejedly + + * final.c (end_final): Use C trees to output data structures for profiling. + + * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h + (profile.o): New dependency profile.h + (final.o): New dependency profile.h + * profile.h: New file. New global structure profile_info. + * final.h (count_edges_instrumented_now): Declare. + (current_function_cfg_checksum): Declare. + (function_list): New structure. + (functions_head, functions_tail): New static variables. + (end_final): Emits more data, removed some -ax stuff. + (final): Stores function names and chcksums. + * gcov-io.h (__write_gcov_string): New function. + (__read_gcov_string): New function. + * gcov.c (read_profile): New function. + (create_program_flow_graph): Uses read_profile instead of reading + da_file. + (read_files): Removed da_file checking, it's done by read_profile now. + * libgcc2.c (bb_function_info): New structure. + (bb): New field in structure, removed some -ax stuff. + (__bb_exit_func): Changed structure of da_file. + * profile.c (count_edges_instrumented_now): New global variable. + (current_function_cfg_checksum): New global variable. + (max_counter_in_program): New global variable. + (get_exec_counts): New function. + (compute_checksum): New function. + (instrument_edges): Sets count_edges_instrumented_now. + (compute_branch_probabilities): Uses get_exec_counts instead of + reading da_file. + (branch_prob): Calls compute_checksum and writes extra data to bbg_file. + (init_branch_prob): Removed da_file checking, done in get_exec_counts + now. + (end_branch_prob): Removed da_file checking, done in get_exec_counts + now. + * gcov.texi: Updated information about gcov file format. + +2002-05-09 Kazu Hirata + + * sbitmap.c: Fix formatting. + * scan.c: Likewise. + * scan-decls.c: Likewise. + * sched-deps.c: Likewise. + * sched-ebb.c: Likewise. + * sched-rgn.c: Likewise. + * sched-vis.c: Likewise. + * sdbout.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * ssa.c: Likewise. + * ssa-ccp.c: Likewise. + * ssa-dce.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * stringpool.c: Likewise. + +2002-05-09 David S. Miller + + * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9. + +2002-05-07 David S. Miller + + * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero. + * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one. + * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp + library implementation clobbers the output before the inputs + are fully consumed, use stack temporary for the output. + +2002-05-09 Jason Thorpe + + * config/netbsd.h (CPP_SPEC): Remove. + * config/i386/netbsd-elf.h (CPP_SPEC): Define. + * config/i386/netbsd.h (CPP_SPEC): Define. + * config/ns32k/netbsd.h (CPP_SPEC): Define. + * config/sparc/netbsd-elf.h (CPP_SPEC): Remove. + * config/sparc/netbsd.h (CPP_SPEC): Define. + * config/vax/netbsd.h (CPP_SPEC): Define. + +2002-05-08 Kazu Hirata + + * read-rtl.c: Fix formatting. + * real.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * reload.c: Likewise. + * resource.c: Likewise. + * rtlanal.c: Likewise. + * rtl.c: Likewise. + * rtl-error.c: Likewise. + +2002-05-08 John David Anglin + + * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete. + * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete. + +2002-05-08 Bernd Schmidt + + * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to + use __SSE2__ macro instead. + * config/i386/xmmintrin.h: Likewise. + +2002-05-08 Janis Johnson + + * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name, + and use it in all invocations of these macros. Clean up comments. + * rtl.c (rtl_check_failed_flag): Add an argument for the name + of the flag access macro whose check failed. + * doc/rtl.texi (Flags): Document additional flag uses. + +2002-05-08 Robert Spier + Neil Booth + + PR preprocessor/6521 + * cppfiles.c (handle_missing_header): Don't do anything + different for <> includes. +doc: + * cppopts.texi: Update documentation for -MG. + +2002-05-08 Neil Booth + + * cpplex.c (cpp_interpret_charconst): Truncate as well as + sign-extend. +doc: + * cpp.texi: Clarify multichar charconst valuation. + +2002-05-08 Mark Mitchell + + * doc/invoke.texi: Document -mwindiss option. + +2002-05-08 Jason Merrill + + * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs. + + * dwarf2out.c (gen_type_die): Abort on broken recursion. + + PR c++/6381 + * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and + REAL_CST. + +2002-05-08 Nick Clifton + + * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/ + little-endian multilibs to override arm/thumb multilibs. + Do not build hardware floating point multilibs, nor apcs-26 + multilibs for the Thumb. + +2002-05-08 Mark Mitchell + + PR c/6569. + * varasm.c (mark_weak): New function. + (merge_weak): Use it. Do not call declare_weak. + (declare_weak): Use merge_weak. + +Wed May 8 13:12:11 CEST 2002 Jan Hubicka + + * cse.c (dead_libcall_p): Update counts. + (delete_trivially_dead_insns): Update call of dead_libcall_p. + +Wed May 8 11:08:50 CEST 2002 Jan Hubicka + + * cfglayout.c (function_tail_eff_head): Rename to ... + (function_footer): ... this one. + (unlink_insn_chain): New functions. + (label_for_bb): Only call block_label and emit debug message. + (record_effective_endpoints): Actually unlink the headers and footers. + (fixup_reorder_cahin): Re-insert the unlinked sequences. + (cfg_layout_duplicate_bb): Use duplicate_insn_chain. + * cfglayout.h (struct reorder_block_def): New fields footer/header; + remove eff_head/eff_end. + * rtl.h (set_first_insn): Declare. + * emit-rtl.c (set_first_insn): New function. + + * cfglayout.c (fixup_reorder_chain): Dump duplicated + (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge, + cfg_layout_duplicate_bb): New global function. + (duplicate_insn_chain): New static function. + * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge, + cfg_layout_duplicate_bb): Declare. + (struct reorder_block_def): Add "original" field. + * emit-rtl.c (emit_copy_of_insn_after): New function. + * rtl.h (emit_copy_of_insn_after): Declare. + + * cfglayout.c (fixup_fallthru_exit_predecessor): Kill. + (fixup_reorder_chain): properly handle edges to exit block. + +Wed May 8 11:10:31 CEST 2002 Zdenek Dvorak + Jan Hubicka + + * basic-block.h (note_prediction_to_br_prob): declare. + * c-semantics.c: Include predit.h + (expand_stmt): predict GOTO_STMT as not taken. + * cfgcleanup.c: (delete_unreachable_blocks): Make global. + (cleanup_cfg): Do not free tail_recursion_list. + * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION. + (flow_delete_block): Kill predictions past end of basic block. + * output.h (delete_unreachable_blocks): Declare. + * predict.c (predicted_by_p, process_note_predictions, + process_note_prediction, last_block_p): New function. + (estimate_probability): Bypass loop on PRED_CONTINUE; + do not handle noreturn heuristics; kill PRED_RETURN; add + PRED_EARLY_RETURN. + * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO, + PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New. + * predict.h (IS_TAKEN): New constant. + * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION. + * rtl.c (NOTE_INSN_PREDICTION): New. + * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS): + New macro. + (insn_note): add NOTE_INSN_PREDICTION. + * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build + CFG; free tail_recursion_label_list. + * stmt.c: Include predict.h; + (return_prediction): New. + (expand_value_return): Use it. + * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall. + +2002-05-08 Richard Sandiford + + * config/mips/mips.md: Name the unspecs with define_constant. + (*HILO_delay): Rename to 'hilo_delay' (no star). + (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay. + (reload_outdi, reload_outsi): Likewise. + +2002-05-07 Kazu Hirata + + * toplev.c: Fix formatting. + +2002-05-07 Janis Johnson + + * config.in (ENABLE_RTL_FLAG_CHECKING): New. + * configure.in (ac_rtlflag_checking): New. + * doc/install.texi (--enable-checking): Document RTL flag checking. + +2002-05-07 Neil Booth + + * c-common.c (c_common_init): Set options->unsigned_wchar. + * cppinit.c (cpp_create_reader): Default unsigned_wchar, + group target dependencies. + (init_builtins, cpp_handle_option): Update. + * cpplex.c (cpp_interpret_charconst): Update. + * cpplib.h (struct cpp_options): Add unsigned_wchar, rename + signed_char to unsigned_char, group target dependencies. + * defaults.h (WCHAR_UNSIGNED): Remove. + * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison. +config: + * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h, + i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h, + i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h, + i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h, + sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED. +doc: + * tm.texi: Remove MAX_CHAR_TYPE_SIZE. + +2002-05-07 Mark Mitchell + + * fixinc/inclhack.def (windiss_math1): New fix. + (windiss_math2): Likewise. + (windiss_valist): Likewise. + * fixinc/fixincl.x: Regenerated. + +2002-05-07 Andreas Jaeger + + * genautomata.c (output_internal_min_issue_delay_func): Add + ATTRIBUTE_UNUSED to avoid warning with empty dfa. + (output_internal_trans_func): Likewise. + +Tue May 7 10:06:22 2002 Jeffrey A Law (law@redhat.com) + + * pa.c (hppa_profile_hook): Use force_reg to get the address + of the profile hook into an appropriate pseudo register. + +2002-05-07 Mark Mitchell + + * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss. + (LINK_START_SPEC): Handle it. + (LINK_OS_SPEC): Likewise. + (CPP_SPEC): Likewise. + (STARTFILE_SPEC): Likewise. + (LIB_SPEC): Likewise. + (ENDFILE_SPEC): Likewise. Do not assume crtsavres.o is used on + all platforms. + (CRTSAVRES_DEFAULT_SPEC): New macro. + (LIB_WINDISS_SPEC): New macro. + (CPP_OS_WINDISS_SPEC): Likewise. + (STARTFILE_WINDISS_SPEC): Likewise. + (ENDFILE_WINDISS_SPEC): Likewise. + (LINK_START_WINDISS_SPEC): Likewise. + (LINK_OS_WINDISS_SPEC): Likewise. + * config/rs6000/windiss.h: New file. + +2002-05-07 Aldy Hernandez + + * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos. + +2002-05-06 David S. Miller + + * config/sparc/sparc.md (shift insns): Do not mask off + second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED + take care of it. + +2002-05-06 Richard Henderson + + PR c++/6212 + * expr.c (highest_pow2_factor_for_type): New. + (expand_assignment): Use it. + +2002-05-06 Aldy Hernandez + + * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to + unspec_volatile. + ("altivec_mfvscr"): Same. + +2002-05-06 Janis Johnson + + * rtl.h (struct rtx_def): Update comments. + (RTL_FLAG_CHECK[12345678]): New. (rtl_check_failed_flag): Declare. + (RTL_FLAG): New. (CLEAR_RTX_FLAGS): New. (flag access macros): Use + RTL_FLAG_CHECK macros with list of expected RTL codes. + * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro. + (rtl_check_failed_flag): New. + * reload1.c (reload): Use REG macro before changing rtx to MEM. + (reload_cse_noop_set_p): Check rtx code before using access macro. + * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code + before using access macro. + +2002-05-06 Janis Johnson + + * doc/rtl.texi (Flags): Update to reflect current usage. + +2002-05-06 Roger Sayle + + PR opt/3995 + * fold-const.c (sign_bit_p): New function. + (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and + (A & C) != 0 into A < 0, when constant C is the sign bit of A's type. + Reapply fold when converting (A & C) == C into (A & C) != 0. + (fold_binary_op_with_conditional_arg): Fix typo in comment. + +2002-05-07 Neil Booth + + * c-common.c (warn_multichar): New. + (c_common_init): Set CPP's warn_multichar. + * c-common.h (warn_multichar): New. + * c-decl.c (warn_multichar): Remove. + * c-lex.c (lex_charconst): Update. + * c-tree.h (warn_multichar): Remove. + * cppexp.c (eval_token): Sign-extend charconst value. + * cppinit.c (cpp_create_reader): Set warn_multichar. + * cpplex.c (cpp_interpret_charconst): Don't sign-extend + each character. Update prototype. Sign-extend the result. + * cpplib.h: Fix conditions. + (struct cpp_options): Add new warning flag. + (cpp_interpret_charconst): Update prototype. +doc: + * cpp.texi: Update documentation. + +2002-05-06 Vladimir Makarov + + * genautomata.c (form_the_same_automaton_unit_lists_from_regexp): + Fix typo in usage of allof instead of unit. + +2002-05-06 Richard Henderson + + * recog.c (if_test_bypass_p): Accept multiple set insns for OUT, + and any jump or call for IN. + +2002-05-06 Bernd Schmidt + + * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if + -msse2. + * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support. + +2002-05-06 Roger Sayle + + * fold-const.c (lshift-double): Cast the high word to an unsigned + HOST_WIDE_INT when extracting sign bit to avoid compiler warning. + (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to + avoid compiler warning. (fold): Remove redundant code from + BIT_AND_EXPR as integer operands are canonicalized to be arg1. + +2002-05-06 Jeff Law + + * pa-protos.h (hppa_fpstore_bypass_p): Declare. + * pa.c (pa_adjust_cost): Remove all true dependency cost + adjustments. Also remove support for non-DFA scheduling. + * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism + to adjust true dependency costs. Update various comments. + (7100lc, 7200, 7300 scheduling): Simplify by combining the + FP ALU & MPY units into a single unit. + +2002-05-06 Catherine Moore + + * config/v850/v850.c (compute_register_save_size): Make sure + to count all of the registers that will be saved. + +Mon May 6 18:03:11 CEST 2002 Jan Hubicka + + * i386.c (q_regs_operand): Use ANY_QI_REGS_P. + +2002-05-06 David S. Miller + + * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not + allow result to overlap input operands in memory. + +2002-05-06 Neil Booth + +doc: + * cpp.texi: Update multichar charconst docs. + +2002-05-06 Neil Booth + + * cpplex.c (cpp_interpret_charconst): Sign-extend each + character. Don't ignore excess characters. Treat + multicharacter character constants as signed. + (cpp_parse_escape): Clarify diagnostic. + +2002-05-05 Jakub Jelinek + + * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx, + use add instead of shift. + (ashldi3_sp64): Likewise. + (ashlsi3_const1, ashldi3_const1): Remove. + * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand. + * config/sparc/sparc.c (const1_operand): New. + +2002-05-05 Jason Thorpe + + * config.gcc (alpha*-*-netbsd*): Don't use crtstuff. + +2002-05-05 Jakub Jelinek + + PR target/6561 + * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2. + +2002-05-05 Richard Henderson + + * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but + memory latency adjustments. + (alpha_variable_issue): Remove. + (alpha_use_dfa_pipeline_interface): New. + (alpha_multipass_dfa_lookahead): New. + * config/alpha/alpha.md: Remove define_function_unit scheduling; + include new dfa scheduling. + (attr type): Add none. + (blockage): Use it. + * config/alpha/ev4.md: New. + * config/alpha/ev5.md: New. + * config/alpha/ev6.md: New. + +2002-05-05 David S. Miller + + * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL. + +2002-05-05 Kazu Hirata + + * cse.c: Fix formatting. + * emit-rtl.c: Likewise. + +2002-05-05 Vladimir Makarov + + * genautomata.c (initiate_states): Add additional guard to + initialize `units_array'. + +2002-05-05 Vladimir Makarov + + * genautomata.c (form_the_same_automaton_unit_lists_from_regexp, + process_unit_to_form_the_same_automaton_unit_lists, + form_the_same_automaton_unit_lists + check_unit_distributions_to_automata): New prototypes and + functions. + (check_automata): Rename it into `check_automata_insn_issues'. + (unit_decl): New fields `the_same_automaton_unit' and + `the_same_automaton_message_reported_p'. + (unit_decl_t): New typedef. + (the_same_automaton_lists): New gloval variable. + (unit_regexp, unit_set_el, units_array, units_cmp, + output_get_cpu_unit_code_func): Use the typedef. + (evaluate_max_reserv_cycles): Increment + `description->max_insn_reserv_cycles'. + (initiate_states): Don't increment `max_cycles_num'. + (transform_insn_regexps): Move code around transformation of + regexps from `generate'. + (generate): Remove call of `transform_insn_regexps'. + (expand_automata): Call `transform_insn_regexps' and + `check_unit_distributions_to_automata'. Check errors before + `generate'. + + * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into + automaton `ultrasparc3_1'. + +2002-05-05 Neil Booth + + * c-common.c (c_common_init): Set up CPP arithmetic. + * cppinit.c (cpp_create_reader): Default CPP arithmetic to + something reasonable for the host. + (sanity_checks): Add checks. + (cpp_read_main_file): Call sanity_checks() from here... + (cpp_post_options): ... not here. + * cpplex.c (cpp_interpret_charconst): Get max_chars right. + * cpplib.h (struct cpp_options): New member int_precision. + +2002-05-05 Franz Sirl + + * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements. + +2002-05-04 David S. Miller + + * config/sparc/linux.h, config/sparc/linux64.h + (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice. + + * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of + more RTX codes. + * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes. + + * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL + of SETs. + +2002-05-05 Tim Josling + + * treelang; New directory for new sample language treelang. + +2002-05-04 Neil Booth + + * Makefile.in (c-lex.o): Update. + * c-lex.c: Include target.h. + (cb_register_builtins): New. + (init_c_lex): Set builtins callback. + * c-lex.h (cpp_define, cpp_assert): New prototypes. + * cppinit.c (init_builtins): Use callback, including for + GXX_WEAK. + * cpplib.h (struct cpp_callbacks): New member. + * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New. + (TARGET_INITIALIZER): Update. + * target.h (struct gcc_target): New hook. + * tree.c (default_register_cpp_builtins): New. + * tree.h (default_register_cpp_builtins): New. +doc: + * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document. + +2002-05-04 Neil Booth + + * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h + (cpp_post_options): Move sanity checks to... + (sanity_checks): New. + * cpplex.c (maybe_read_ucs): Fix prototype. + (parse_string, cpp_parse_escape): Cast for %c format specifier. + * cpplib.h (cppchar_t): Use unsigned long or unsigned long long + if necessary. + +2002-05-04 Bernd Schmidt + + * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2 + builtins. Use V2DI patterns instead of TI for logical operations. + (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins. + Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps. + (ix86_expand_builtins): Change the pattern used for movntdq. + * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3, + sse2_nandv2di3): New patterns. + (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes + on operands. + (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted. + (cvtdq2pd): Correct mode on operand 1. + (sse2_umulsidi3): Describe without unspec. + (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate + machine modes. + (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec. + (ashlv2di3): Likewise, from sse2_ashlv2di3. + (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, + ashlv4si3, ashlv2di3): Use SImode for shift count. + (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti, + lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): + New patterns. + * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi): + New typedefs. + (__m128i, __m128d): New macros. + (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd, + _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd, + _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd, + _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd, + _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd, + _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd, + _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd, + _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd, + _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd, + _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd, + _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd, + _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd, + _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd, + _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps, + _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32, + _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32, + _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd, + _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd, + _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16, + _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32, + _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32, + _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64, + _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16, + _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64, + _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16, + _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16, + _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, + _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, + _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64, + _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32, + _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128, + _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32, + _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16, + _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8, + _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16, + _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd, + _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New + functions. + (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32, + _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros. + +2002-05-04 Kazu Hirata + + * dwarf2out.c: Fix formatting. + * varasm.c: Likewise. + +2002-05-04 David Edelsohn + + PR c/6543 + * config/rs6000/rs6000.md (sCC pattern and splitter): Remove + clobber and use result as temporary value. + +Sat May 4 13:20:54 CEST 2002 Jan Hubicka + + * expr.c (force_operand): Use expand_simple_* to handle more + cases. + +2002-05-04 Neil Booth + + * c-lex.c (lex_string): Let cpp_parse_escape handles truncation + and sign-extension. + (lex_charconst): Update for change in prototype of + cpp_interpret_charconst. Extend from cppchar_t to HOST_WIDE_INT + appropriately. + * cpphash.h (BITS_PER_CPPCHAR_T): New. + * cppinit.c (cpp_create_reader): Initialize them for no + change in semantics. + (cpp_post_options): Add sanity checks. + * cpplex.c (cpp_parse_escape): Handle precision, sign-extension + and truncation issues. Calculate in type cppchar_t. + (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove. + (cpp_interpret_charconst): Calculate in type cppchar_t. Handle + run-time dependent precision correctly. Return whether the + result is signed or not. + * cpplib.c (dequote_string): Use cppchar_t; update. + * cpplib.h (cppchar_signed_t): New. + struct cpp_options): New precision members. + (cpp_interpret_charconst, cpp_parse_escape): Update prototypes. + * cppexp.c (eval_token): Update. + +2002-05-03 David S. Miller + + * config/sparc/sparc-protos.h (sparc_rtx_costs): New. + * config/sparc/sparc.c (sparc_rtx_costs): New function + implementing RTX_COSTS and CONST_COSTS. + * config/sparc/sparc.h (CONST_COSTS): Delete. + (RTX_COSTS_CASES): Define. + (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do + the work. + + * config/sparc/sparc.md (DFA schedulers): Split out... + * config/sparc/cypress.md, config/sparc/hypersparc.md, + config/sparc/sparclet.md, config/sparc/supersparc.md, + config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here. + + * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef + checks on it, always defined for SPARC. + + * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): + Tweak, and add more detailed comments. + +2002-05-03 Zack Weinberg + + * Re-apply patch accidentally reverted with + DFA scheduler merge: remove all rules and variables to slurp + source files out of libiberty and rebuild them with HOST_CC. + ($(HOST_PREFIX_1)varray.o): New rule. + (genattrtab rule): Word wrap. + +2002-05-03 Jason Thorpe + + * config/i386/netbsd64.h (CPP_LP64_SPEC): Define. + (CPP_SUBTARGET_SPEC): Define. + (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and + cpp_subtarget specs. + (CPP_SPEC): Redefine to include %(cpp_subtarget). + +2002-05-03 David S. Miller + + * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete. + * target.h (struct gcc_target): Delete cycle_display member. + + * config/ia64/ia64.c (ia64_emit_insn_before): Put it back. + (rtx_needs_barrier): Delete reference to cycle_display unspec. + (ia64_sched_reorder2): Mention need for cycle display handling + once such notes exist. + +2002-05-03 Richard Henderson + + * real.c (etoasc): Strip most trailing zeros for clarity. + * sched-vis.c: Include real.h. + (print_value): Use REAL_VALUE_TO_DECIMAL as needed. + * Makefile.in (sched-vis.o): Add real.h. + +2002-05-03 David S. Miller + + * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change, + no longer needed. + +2002-05-03 Aldy Hernandez + + * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out + when we get an out of range literal. + (altivec_expand_ternop_builtin): Same. + (altivec_expand_unop_builtin): Same. + (altivec_expand_builtin): Same, for dss. + (altivec_expand_builtin): Use trees instead of rtl when + determining literal argument validity. + +2002-05-03 David S. Miller + + Delete cycle display scheduling hook. + * config/ia64/ia64.c (ia64_cycle_display, + TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete. + (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display + and use emit_insn_before instead of ia64_emit_insn_before. + * config/ia64/ia64.md (unspec usage): Delete cycle display. + (cycle_display): Delete insn pattern. + * config/sparc/sparc.md (unspec usage): Delete cycle display. + (cycle_display): Delete insn pattern. + * config/sparc/sparc.c (sparc_cycle_display, + TARGET_SCHED_CYCLE_DISPLAY): Delete. + * doc/md.texi (cycle_display): Don't mention. + * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise. + +2002-05-03 Richard Henderson + + * recog.c (store_data_bypass_p, if_test_bypass_p): New. + * recog.h: Declare them. + + * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove. + * config/sparc/sparc.md: Use store_data_bypass_p instead. + * config/sparc/sparc-protos.h: Update. + +2002-05-03 Jason Thorpe + + * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove + -D__arch64__. Add -D_LP64. + (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version + from sparc.h. + (CPP_ARCH64_SPEC): Likewise. + (NO_BUILTIN_PTRDIFF_TYPE): Undef. + (NO_BUILTIN_SIZE_TYPE): Undef. + +2002-05-03 Vladimir Makarov + + * genautomata.c (min_issue_delay_pass_states): Change return type + in the prototype. + (min_issue_delay_pass_states): Change the algorithm. + (min_issue_delay): Set up min_insn_issue_delay for the state. + (output_min_issue_delay_table): Interchange the nested loops and + and initiate min_insn_issue_delay for states. + +Fri May 3 22:59:15 CEST 2002 Jan Hubicka + + * cfgcleanup.c (try_optimize_cfg): Call merge_block only when + jump is simplejump. + +Fri May 3 22:53:37 CEST 2002 Jan Hubicka + + * i386.c (expand_movstr, expand_clrstr): Fix inline-all-stringops + sequence. + +2002-05-03 Richard Henderson + + PR opt/6534 + * ifcvt.c (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): Insert new + code before JUMP, not EARLIEST. + +2002-05-03 Joseph S. Myers + + * c-format.c (check_format_info_main): Don't check for presence of + parameter for * width until after operand number has been read, + and only check for it if format parameters are available. + Fixes PR c/6547. + +2002-05-03 Jason Thorpe + + * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64. + (LINK_SPEC): Undef before defining. + +2002-05-03 Jakub Jelinek + + PR preprocessor/6489 + * tradcpp.c (fixup_newlines): New. + (main, finclude): Use it. + +2002-05-03 Richard Sandiford + + * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section. + * config/mips/mips.c (mips_unique_section): Strip encoding from + decl name. + +2002-05-03 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper + mode. + +2002-05-03 Rainer Orth + + * doc/install.texi (Installing): Mention GCC 3.1 buildstats. + (Specific): Removed buildstats references. + (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0. + (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1. + Accomodate Solaris versions beyond 8. + (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1. + (Specific, *-*-solaris2.8): Removed, obsolete. + +2002-05-03 Jakub Jelinek + + PR target/6542 + * config/sparc/sparc.h (leaf_reg_remap): Remove const. + (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make + fill leaf_reg_remap with identity. + * config/sparc/sparc.c (leaf_reg_remap): Remove const. + +2002-05-03 Kazu Hirata + + * config/h8300/crti.asm: Remove trailing spaces. + * config/h8300/h8300.c: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + +2002-05-02 Jason Merrill + + * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c. + * c-decl.c (c_init_decl_processing): Use it. + * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE. + * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define. + * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define. + +2002-05-03 Kazu Hirata + + * regrename.c: Fix formatting. + * tree.c: Likewise. + +Fri May 3 13:34:43 CEST 2002 Jan Hubicka + + * i386.md (attribute memory): Handle compares properly. + +Fri May 3 10:51:38 CEST 2002 Jan Hubicka + + * i386.md (sse_clrsf, sse_clrsi): Set memory attribute + to none. + +2002-05-02 Kazu Hirata + + * function.c: Fix formatting. + +2002-05-02 Jan Hubicka + + * haifa-sched.c (schedule_insn): Print table of instructions and + reservations. + (sched_block): Do not print ready list at verbosity level 1. + * sched-vis.c (print_insn): Make global. + * sched-ebb.c (ebb_print_insn): Rename from... + (print_insn): ... this one. + * sched-int.h (print_insn): Declare + +2002-05-02 Richard Henderson + + * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn + emitted by cycle_display. + +2002-05-02 Loren J. Rittle + + * doc/install.texi (*-*-freebsd*): Update to latest status. + +2002-05-02 Jakub Jelinek + + PR target/6540 + * config.gcc (sparc*-*-solaris2*): Set float_format to i128. + * config/float-sparc.h: Assume 128-bit long double if + __LONG_DOUBLE_128__ is defined. + +2002-05-02 Vladimir Makarov + + * genattrtab.c (write_function_unit_info): Add a dummy element + when num_units == 0. + +2002-05-02 Herman A.J. ten Brugge + + * predict.c: (propagate_freq, estimate_bb_frequencies): Use + TYPE_MODE (double_type_node) instead of DFmode. + +Thu May 2 19:50:04 CEST 2002 Jan Hubicka + + * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed + jumps post reload. + * toplev.c (rest_of_compilation): Revert Richard's patch. + +2001-05-02 John David Anglin + + * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS. + +2002-05-02 Catherine Moore + + * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20. + +2002-05-02 Kazu Hirata + + * combine.c: Fix comment typos. + * expr.c: Likewise. + * genautomata.c: Likewise. + * stmt.c: Likewise. + * tree.h: Likewise. + +2002-05-02 Joseph S. Myers + + * doc/install.texi: State GNAT version requirements. + +2002-05-02 Nick Clifton + + * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form + of the frame pointer or arg pointer register which strict register + checking is not enabled. + +2002-05-02 Aldy Hernandez + + * gcc.dg/altivec-8.c: New. + + * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow + PRE_INC and PRE_DEC for altivec modes. + +2002-05-01 Bruce Korb + + * fixinc/check.tpl(set-writable): make sure the function exists first + * fixinc/inclhack.def(alpha_assert): fix test_text + * fixinc/tests/base/assert.h: add in missing result + +2002-05-01 Jeff Law + + * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the + 'T' constraint. + +2002-05-01 Joel Brobecker + + * dbxout.c (dbxout_type): Emit size information for range types, + as well, but only when using GDB extensions. + +2002-05-01 Richard Henderson + + * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with + target-independent gnu binutils date test. + +2002-05-01 Richard Henderson + + * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump + info before expunging the block. + +2002-05-01 Jakub Jelinek + + * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here... + (cpp_post_options): ...but here. Disable -dD, -dN and -dI when + -M -or -MM is in effect. + +2002-05-01 Zack Weinberg + + * config.gcc: Correct test of --enable-obsolete. Obsolete all + A29k configurations. + * doc/install.texi: Update to match. + +2002-05-01 Franz Sirl + + PR bootstrap/6514 + * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check + for duplicates. Always loop over whole list. + +Wed May 1 10:32:37 2002 Richard Kenner + + * reload.c (find_reloads, case 'p'): Set BADOP to 0. + +2002-05-01 Joel Sherrill + + * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly + support routines. + +2002-05-01 Joel Sherrill + + * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning. + +2002-05-01 David Edelsohn + + * rs6000.md (abssi2_nopower): Convert to define_insn_and_split. + (nabs_nopower): Same. + (floatdisf2): New pattern. + (absdi2): Convert to define_insn_and_split. + (nabsdi2): Same. + (trunctfsf2): Same. + (floatditf2): Same. + (floatsitf2): Same. + (fix_trunctfdi2): Same. + (fix_trunctfsi2): Same. + +2002-05-01 Joseph S. Myers + + * doc/install.texi: Update Texinfo version requirement + documentation. + +2002-05-01 Jakub Jelinek + + PR target/6512, PR target/5628 + * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32 + when memory is not aligned. + (movdf_insn_v9only_vis): Likewise. + * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS + temporary for EXTRA_FP_REGS DFmode load from unaligned memory. + (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly. + +2002-05-01 Aldy Hernandez + + * gcc.dg/altivec-7.c: New. + + * config/rs6000/altivec.h: Cleanup. + +2002-04-30 Aldy Hernandez + + * doc/invoke.texi (Option Summary): Add -mvrsave=. + (RS/6000 and PowerPC Options): Document -mvrsave=. + + * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global. + (rs6000_altivec_vrsave_string): Same. + (rs6000_override_options): Call rs6000_parse_vrsave_option. + (rs6000_parse_vrsave_option): New. + (rs6000_stack_info): Only generate vrsave instructions when + TARGET_ALTIVEC_VRSAVE. + + * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option. + (rs6000_altivec_vrsave_string): Define extern. + (rs6000_altivec_vrsave): Same. + (TARGET_ALTIVEC_VRSAVE): New. + +2002-04-30 Richard Henderson + + PR opt/6516 + * toplev.c (rest_of_compilation): Don't run cross-jump before + bb-reorder. + +2002-04-30 Tom Rix + + * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity + check which_alternative. + +2002-04-30 Kazu Hirata + + * cpplex.c: Fix comment formatting. + * function.c: Likewise. + * integrate.c: Likewise. + * regrename.c: Likewise. + * sibcall.c: Likewise. + * simplify-rtx.c: Likewise. + * tree-inline.c: Likewise. + +2002-04-30 John David Anglin + + * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*, + hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*, + hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*, + hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file. + * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete. + * pa/x-ada: New file. Define ADA_CFLAGS. + +2002-04-30 Hans-Peter Nilsson + + * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed + from MMIX_LAST_REGISTER_FILE_REGNUM. + (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment. + (struct machine_function): New member highest_saved_stack_register + previously static variable in mmix.c. + (MACHINE_DEPENDENT_REORG): Define. + * config/mmix/mmix.c (highest_saved_stack_register): Deleted. + (MMIX_OUTPUT_REGNO): New. + (mmix_target_asm_function_prologue): Move calculation of last used + saved-stack-register into... + (mmix_machine_dependent_reorg): New function. Update to also handle + !TARGET_ABI_GNU. + (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting + register names, simplify somewhat by new variable regno. + : Remove fixed FIXME. Always emit highest used saved + register. + (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when + emitting register names. + (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto. + (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too. + Remove fixed FIXME. + * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): + Declare. + + * config/mmix/mmix.md ("divmoddi4"): Update head comment. + +2002-04-30 Richard Henderson + + * config/sparc/sparc.c (emit_soft_tfmode_libcall, + emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt, + emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop, + emit_tfmode_cvt): New. + * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2, + trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2, + fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2, + addtf3, subtf3, multf3, divtf3, sqrttf2): Use them. + * config/sparc/sparc-protos.h: Update. + +2002-04-30 Janis Johnson + + * install.texi (Final install): Add to the list of info to include + in a report of a successful bootstrap, and add link to 3.1 list. + +Tue Apr 30 19:15:36 CEST 2002 Jan Hubicka + + * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1. + (mode): Add vector modes + (i387): Kill attribute. + (unit): New attribute. + (length_immediate): Grok new types. + (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX. + (modrm): Use "unit". + (memory): Handle MMX/SSE properly. + (scheduling descriptions): Kill uses of fop1. + (sse, mmx, fp patterns): Set type and mode properly. + +Tue Apr 30 09:31:59 2002 Jeffrey A Law (law@redhat.com) + + * pa.c (override_options): Default to PA8000 scheduling. + * doc/invoke.texi (HP-PA options): Mention newly added 7300 + scheduling parameter. + + * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine + handling of double precision multiplies. + + * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of + fpdiv and fpsqrt instructions. + (7200 & 7300 scheduling): Fix typo in handling of + store-load and store-store penalties. + +2002-04-30 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Use MIPS instead of Mips and + mips. Add two missing commas. + +2002-04-30 Paolo Carlini + + * doc/contrib.texi (Contributors): Update Paolo Carlini's + and Benjamin Kosnik's entries. + +2002-04-29 David S. Miller + + * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK, + SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III. + * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise. + * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise. + +2002-04-29 Franz Sirl + + * combine.c (find_split_point): Use gen_int_mode. + +2002-04-29 Vladimir Makarov + + Merging code from dfa-branch: + + 2002-04-24 Vladimir Makarov + + * genautomata.c (output_reserv_sets): Fix typo. + + 2002-04-23 Vladimir Makarov + + * genautomata.c (output_reserv_sets): Remove + next_cycle_output_flag. + + Thu Apr 18 08:57:06 2002 Jeffrey A Law (law@redhat.com) + + * sched-rgn.c (init_ready_list): Make the DFA code handle + USE/CLOBBER insns in the same way as the traditional + scheduler. + (new_ready): Similarly.. + + 2002-04-17 Vladimir Makarov + + * haifa-sched.c (schedule_block): Change the DFA state only after + issuing insn. + + Wed Apr 17 15:38:36 2002 Jeffrey A Law (law@redhat.com) + + * pa.c (hppa_use_dfa_pipeline_interface): New function. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. + (override_options): Add PA7300 scheduling support. + (pa_adjust_cost): Update various comments. Properly + handle anti and output dependencies when using the + DFA scheduler. + (pa_issue_rate): Add PA7300 scheduling support. + (pa_can_combine_p): Call extract_insn before calling + constrain_operands (taken from mainline tree). + * pa.h (enum processor_type): Add PROCESSOR_PA7300. + * pa.md (cpu attr): Add 7300. Rewrite pipeline + descriptions using DFA descriptions. Add PA7300 + scheduling support. + + 2002-03-30 David S. Miller + + Add UltraSPARC-III DFA scheduling support. + * config/sparc/sparc.md (define_attr type): Add fpcrmove. + Update FP conditional move on register insn patterns to use it, as + appropriate. + (define_attr cpu): Add ultrasparc3. + (define_attr us3load_type): New, update integer load patterns to + set it, as appropriate. + (define_automaton): Add ultrasparc3_0 and ultrasparc3_1. + (rest): Add UltraSPARC3 scheduling description. + * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New. + (PROCESSOR_ULTRASPARC3): New. + ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3. + ({ASM,CPP}_CPU_SPEC): Likewise. + (REGISTER_MOVE_COST): Likewise. + (RTX_COSTS): Likewise. + * config/sparc/sparc.c (sparc_override_options, + sparc_initialize_trampoline, sparc64_initialize_trampoline, + sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead, + sparc_issue_rate): Likewise. + * config/sparc/sol2.h: Likewise. + * config/sparc/sol2-sld-64.h: Likewise. + * config/sparc/linux64.h: Likewise. + + 2002-03-22 Vladimir Makarov + + * doc/md.texi: Add comments about usage the latency time for the + different dependencies and about case when two or more conditions + in different define_insn_reservations returns TRUE for an insn. + + * doc/md.texi: Add reference for automaton based pipeline + description. + + 2002-03-04 Vladimir Makarov + + * doc/passes.texi: Add missed information about genattrtab. + + 2002-03-01 Vladimir Makarov + + * genautomata.c (output_automata_list_transition_code): Check + automata_list on NULL. + + 2002-02-28 Vladimir Makarov + + * genautomata.c (output_insn_code_cases, + output_automata_list_min_issue_delay_code, + output_automata_list_transition_code, + output_automata_list_state_alts_code): Comment the functions. + + 2002-02-22 Vladimir Makarov + + * genautomata.c (automata_list_el_t): New typedef. + (get_free_automata_list_el,free_automata_list_el, + free_automata_list, automata_list_hash, automata_list_eq_p, + initiate_automata_lists, automata_list_start, automata_list_add, + automata_list_finish, finish_automata_lists, + output_insn_code_cases, output_automata_list_min_issue_delay_code, + output_automata_list_transition_code, + output_automata_list_state_alts_code, add_automaton_state, + form_important_insn_automata_lists): New functions and prototypes. + (insn_reserv_decl): Add members important_automata_list and + processed_p. + (ainsn): Add members important_p. + (automata_list_el): New structure. + (first_free_automata_list_el, current_automata_list, + automata_list_table): New global variables. + (create_ainsns): Initiate member important_p. + (output_internal_min_issue_delay_func): Generate the switch and + call output_insn_code_cases. + (output_internal_trans_func, output_internal_state_alts_func): + Ditto. + (generate): Call initiate_automata_lists. + (automaton_states): New global variable. + (expand_automata): Call form_important_insn_automata_lists. + (write_automata): Call finish_automata_lists. + + 2002-02-21 Vladimir Makarov + + * genautomata.c (add_excls, add_presence_absence): Check that + cpu units in the sets belong the same automaton. + + * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment + about that cpu units in the sets belong the same automaton. + + * doc/md.texi: Ditto. + + 2001-12-20 Naveen Sharma + Nitin Gupta + + * config/sh/sh.c (sh_use_dfa_interface): New function. + + (sh_issue_rate): New Function. + TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define. + TARGET_SCHED_ISSUE_RATE: define. + + * config/sh/sh.md: Add DFA based pipeline description for SH4. + + (define_attr insn_class): New attribute used for DFA + scheduling. + (define_insn cmpgtsi_t): Set attribute insn_class mt_group. + (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t, + cmpeqdi_t): Likewise. + + (add,addc1,addsi3,subc,subc1,*subsi3_internal, + negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class + ex_group. + (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise. + + 2001-10-03 Vladimir Makarov + + * haifa-sched.c (queue_to_ready): Remove unnecessary condition for + break. + + 2001-10-03 Vladimir Makarov + + * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro. + (output_dfa_insn_code_func): Expand dfa_insn_codes if it is + necessary. + (output_dfa_start_func): Initiate new variable insn_codes_length, + (write_automata): Output definition of the new variable. + + 2001-10-02 David S. Miller + + * haifa-sched.c (advance_one_cycle): New function. + (schedule_block): Use it. + (queue_to_ready): Use it, and also make sure to advance the DFA + state on all stall cycles, not just those where insn_queue links + are found. + + 2001-10-02 Richard Sandiford + + * haifa-sched.c (max_issue): Remove last_p argument. Only return + nonzero if the highest-priority instruction could be scheduled. + (choose_ready): Remove last argument from max_issue call. + + 2001-09-28 David S. Miller + + * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for + ultrasparc and 3 for other multi-issue sparcs. + + 2001-09-27 David S. Miller + + * config/sparc/sparc.md (cycle_display): New pattern. + * config/sparc/sparc.c (sparc_cycle_display): New. + (TARGET_SCHED_CYCLE_DISPLAY): Set it. + + 2001-09-25 David S. Miller + + Convert all of SPARC scheduling to DFA + * config/sparc/sparc.md: Kill all define_function_unit + directives and replace with DFA equivalent. + * config/sparc/sparc.c (ultrasparc_adjust_cost, + mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p, + ultra_fpmode_conflict_exists, ultra_find_type, + ultra_build_types_avail, ultra_flush_pipeline, + ultra_rescan_pipeline_state, ultrasparc_sched_reorder, + ultrasparc_variable_issue, ultrasparc_sched_init, + sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask, + ultra_schedule_insn, ultra_code_names, ultra_pipe_hist, + ultra_cur_hist, ultra_cycles_elapsed): Kill. + (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead, + ultrasparc_store_bypass_p): New. + * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p): + Declare. + + 2001-09-24 David S. Miller + + * haifa-sched.c (ready_remove): Fix thinko, we want to copy around + ready->vec[foo] not ready[foo]. + + 2001-09-07 Vladimir Makarov + + * doc/md.texi: Correct examples for define_insn_reservations + `mult' and `div'. + + 2001-09-07 Vladimir Makarov + + * genautomata.c (create_automata): Print message about creation of + each automaton. + (generate): Remove printing meease about creation of + automata. + + 2001-09-05 David S. Miller + + * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC. + * config/sparc/linux64.h: Likewise. + + 2001-08-31 Vladimir Makarov + + * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready, + schedule_block, sched_init, sched_finish): Add missed calls of + use_dfa_pipeline_interface. + + * sched-rgn.c (init_ready_list, new_ready, debug_dependencies): + Ditto. + + * sched-vis.c (get_visual_tbl_length): Ditto. + + 2001-08-27 Richard Henderson + + * genattr.c (main): Emit state_t even when not doing scheduling. + + 2001-08-27 Richard Henderson + + * genautomata.c (expand_automata): Always create a description. + + 2001-08-27 Vladimir Makarov + + * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET, + PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON, + AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New + RTL constructions. + + * genattr.c (main): New variable num_insn_reservations. Increase + it if there is DEFINE_INSN_RESERVATION. Output automaton based + pipeline hazard recognizer interface. + + * genattrtab.h: New file. + + * genattrtab.c: Include genattrtab.h. + (attr_printf, check_attr_test, make_internal_attr, + make_numeric_value): Move protypes into genattrtab.h. Define them + as external. + (num_dfa_decls): New global variable. + (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, + DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET, + DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION, + DEFINE_INSN_RESERVATION. Call expand_automata and write_automata. + + * genautomata.c: New file. + + * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them. + + * sched-int.h: (curr_state): Add the external definition for + automaton pipeline interface. + (haifa_insn_data): Add comments for members blockage and units. + + * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, + TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, + TARGET_SCHED_DFA_POST_CYCLE_INSN, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, + TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New + macros. + (TARGET_SCHED): Use the new macros. + + * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn, + dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn, + first_cycle_multipass_dfa_lookahead, init_dfa_bubbles, + dfa_bubble): New members in gcc_target.sched. + + * haifa-sched.c (insert_schedule_bubbles_p): New variable. + (MAX_INSN_QUEUE_INDEX): New macro for automaton interface. + (insn_queue): Redefine it as pointer to array. + (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of + INSN_QUEUE_SIZE. + (max_insn_queue_index_macro_value): New variable. + (curr_state, dfa_state_size, ready_try): New varaibles for + automaton interface. + (ready_element, ready_remove, max_issue): New function prototypes + for automaton interface. + (choose_ready): New function prototype. + (insn_unit, blockage_range): Add comments. + (unit_last_insn, unit_tick, unit_n_insns): Define them for case + FUNCTION_UNITS_SIZE == 0. + (insn_issue_delay, actual_hazard_this_instance, schedule_unit, + actual_hazard, potential_hazard): Add comments. + (insn_cost): Use cost -1 as undefined value. Remove + LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton + pipeline interface. + (ready_element, ready_remove): New functions for automaton + interface. + (schedule_insn): Add new code for automaton pipeline interface. + (queue_to_ready): Add new code for automaton pipeline interface. + Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE. + (debug_ready_list): Print newline when the queue is empty. + (max_issue): New function for automaton pipeline interface. + (choose_ready): New function. + (schedule_block): Add new code for automaton pipeline interface. + Print ready list before scheduling each insn. + (sched_init): Add new code for automaton pipeline interface. + Initiate insn cost by -1. + (sched_finish): Free the current automaton state and finalize + automaton pipeline interface. + + * sched-rgn.c: Include target.h. + (init_ready_list, new_ready, debug_dependencies): Add new code for + automaton pipeline interface. + + * sched-vis.c: Include target.h. + (get_visual_tbl_length): Add code for automaton interface. + (target_units, print_block_visualization): Add comments. + + * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB, + USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables. + (sched-rgn.o, sched-vis.o): Add new dependency file target.h. + (getruntime.o, genautomata.o): New entries. + (genattrtab.o): Add new dependency file genattrtab.h. + (genattrtab): Add new dependencies. Link it with `libm.a'. + (getruntime.o, hashtab.o): New entries for canadian cross. + + * doc/md.texi: Description of automaton based model. + + * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST): + Add comments. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, + TARGET_SCHED_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_DFA_POST_CYCLE_INSN, + TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, + TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new + hook descriptions. + (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE, + MAX_DFA_ISSUE_RATE): New macro descriptions. + + * doc/contrib.texi: Add dfa based scheduler contribution. + + * doc/gcc.texi: Add more information about genattrtab. + +Mon Apr 29 17:19:10 2002 Richard Kenner + + * reload1.c (eliminate_regs, case SUBREG): Fix typo in + adjust_address_nv call. + +2002-04-29 Janis Johnson + + * doc/install.texi (Testing): Provide additional information, and + a stronger encouragement, for running the testsuites. + +2002-04-29 DJ Delorie + + * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is + given in upper case. + +2002-04-29 Rainer Orth + + * fixinc/inclhack.def (solaris_widec): Include in + Solaris 2 if missing. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/widec.h: New file. + +2002-04-29 Nick Clifton + + * toplev.c (f_options): Add "profile" switch so that + -fno-profile can be used to disable -p. + +2002-04-29 Bernd Schmidt + + * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode, + UV2DImode. + * tree.c (build_common_tree_nodes_2): Likewise. + * tree.h (enum tree_index): Likewise. + (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define. + + * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2 + entries. + (init_mmx_sse_builtins): Initialize SSE2 builtins. + (ix86_expand_builtin): Add support for SSE2 builtins. + * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro. + (VALID_SSE_REG_MODE): Use it. + (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well. + (enum ix86_builtins): Add SSE2 builtins. + * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal, + movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi, + addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3, + divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3, + sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2, + vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3, + vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, + sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps, + cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi, + cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss, + cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, + ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, + subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, + mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3, + sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3, + sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, + sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, + gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, + ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3, + ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3, + sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw, + sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq, + sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd, + sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq, + sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd, + sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence, + lfence_insn): New patterns. + (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from + sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2. + +Mon Apr 29 17:03:24 CEST 2002 Jan Hubicka + + * i386.md (sse_mov?fcc*): Revert patch of Mar 14th. + +2002-04-29 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add Paolo Carlini and + Janis Johnson. + Update Richard Henderson, Jakub Jelinek, and Mark Mitchell. + Refer to Objective-C instead of ObjC, SPARC instead of sparc, + and CPU instead of cpu. + +Mon Apr 29 13:36:41 CEST 2002 Jan Hubicka + + * toplev.c (flag_if_conversion, flag_if_conversion2): New static + variables. + (lang_independent_options): Add -fif-conversion, -fif-conversion2 + (rest_of_compilation): Do if conversion only when asked for. + (parse_options_and_default_flags): Set new variables to 1 for -O1 + * invoke.texi (-fif-conversion, -fif-conversion2): Document. + +Mon Apr 29 13:02:50 CEST 2002 Jan Hubicka + + * i386.c (dbx64_register_map): Fix typo. + +Mon Apr 29 12:18:35 CEST 2002 Jan Hubicka + + * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base, + real_one_half, real_bb_freq_max): New static variables. + (debug_profile_bbauxs): Kill. + (process_note_predictions): Kill unused variable. + (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of + volatile double. + (propagate_freq): Use REAL_ARITHMETICS. + (estimate_bb_frequencies): Likevise; init new static variables. + * Makefile.in (predict.o): Add dependency on real.h + +2002-04-28 David S. Miller + + PR target/6500 + * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs. + 64-bit TARGET_V9. Do not use prefetch page, use prefetch for + several {reads,writes} instead. + * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): + Define. + +2002-04-27 David S. Miller + + PR target/6494 + * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful + of the stack bias. + + * config/sparc/linux.h, config/sparc/linux64.h: Don't bother + including signal.h and sys/ucontext.h, not needed. + +2002-04-29 Hans-Peter Nilsson + + * varasm.c (output_constant_def): Correct test for not calling + ENCODE_SECTION_INFO for INTEGER_CST. + +2002-04-29 Neil Booth + + * cppexp.c (lex): Move some code to _cpp_parse_expr, but + keep most cases as function eval_token. + (eval_token): New function. + (_cpp_parse_expr): Read token here for improved diagnostics. + Don't use op_as_text. Detect bad ':' here. + (reduce): Don't detect bad ':' here. + (op_as_text): Remove. + * cpphash.h (_cpp_test_assertion): Change prototype. + * cpplib.c (_cpp_test_assertion): Change prototype. + +2002-04-28 Richard Henderson + + PR c/5154 + * ggc-common.c (ggc_mark_rtx_children_1): Rename from... + (ggc_mark_rtx_children): New. + +2002-04-28 Jakub Jelinek + + PR target/6496 + * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump + after call peepholes for UltraSPARC. + (call + jump 64-bit peepholes): Remove. + +2002-04-28 Franz Sirl + + PR c/6497 + * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use + result as temporary value. + +2002-04-28 Jakub Jelinek + + PR c++/6396 + * toplev.c (rest_of_compilation): Only run regrename and copy + propagation if optimizing. + +2002-04-28 Jakub Jelinek + + PR optimization/6475 + * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo + register of REGNO_DECL (i). + * Makefile.in (reload1.o): Add $(TREE_H). + +2002-04-28 Neil Booth + + * cppexp.c (lex): Update to use state.skip_eval. + (struct op): Remove prio and flags members. + (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS, + SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove. + (LEFT_ASSOC): New macro. + (optab): New table of operator priorities and flags. + (SHIFT): Update. + (_cpp_parse_expr): Clean up logic. Return bool. Use a + malloc-ed parser stack. + (reduce): New; reduce the operator stack. + (_cpp_expand_op_stack): Expand the operator stack as necessary. + * cpphash.h (struct op): Predeclare. + (struct cpp_reader): New members op_stack, op_limit. + (struct lexer_state): New member skip_eval. + (_cpp_parse_expr): Update. + (_cpp_expand_op_stack): New. + * cpplib.c (do_if): Update. + * cppinit.c (cpp_create_reader): Create op stack. + (cpp_destroy): And destroy it. + * cpplib.h (CPP_LAST_CPP_OP): Correct. + (TTYPE_TABLE): Correct. + +2002-04-28 Franz Sirl + + PR c/6343 + * c-decl.c (duplicate_decls): Call merge_weak. + * c-pragma.c (apply_pragma_weak): Warn about misuse. + * output.h (merge_weak): Prototype merge_weak. + * varasm.c (merge_weak): New function. + (declare_weak): Make sure we don't give an error on VAR_DECLs. + Mark RTL with SYMBOL_REF_WEAK. + +2002-04-27 Kurt Garloff + + * tree-inline.c (inlinable_function_p): Improve heuristics + by using a smoother function to cut down allowable inlinable size. + * param.def: Add parameters max-inline-insns-single, + max-inline-slope, min-inline-insns that determine the exact + shape of the above function. + * param.h: Likewise. + +2002-04-26 Richard Henderson + + * c-parse.in (malloced_yyss, malloced_yyvs): New. + (yyoverflow): Re-add. Set them. + (free_parser_stacks): New. + * c-common.h: Declare it. + * c-lex.c (c_common_parse_file): Call it. + +2002-04-26 Richard Henderson + + * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn + for fallthru search. + +2002-04-26 Eric Christopher + + PR optimization/3700 + * config/mips/mips.c (mips_issue_rate): Define. New function. + (TARGET_SCHED_ISSUE_RATE): Use. + +2002-04-25 David S. Miller + + PR target/6422 + * reorg.c (optimize_skip): Do not allow exception causing + instructions to be considered for delay slots. + (fill_simply_delay_slots, fill_slots_from_thread): Likewise. + (relax_delay_slots): Do not try to consider exception causing + instructions as redundant. + +2002-04-26 Richard Henderson + + PR c/5225 + * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue. + +2002-04-26 Mark Mitchell + + PR bootstrap/6445 + * config/i386/i386.md (untyped_call): Return the value in a float + register if TARGET_FLOAT_RETURNS_IN_80387, not just if + TARGET_80387. + +2002-04-26 Alexandre Oliva + + * tree.c (tree_int_cst_lt): Compare constants whose types differ + in unsigned-ness correctly. + +2002-04-26 John David Anglin + + * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the + portable runtime model. + +2002-04-26 Richard Henderson + + * c-parse.in (yyoverflow): Revert. + +2002-04-26 David Edelsohn + Richard Henderson + + * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use + result as temporary value. + +2002-04-26 Richard Henderson + + PR c/3581 + * c-common.c (fix_string_type): Split out of ... + (combine_strings): ... here. Take a varray, not a tree list. + (c_expand_builtin_printf): Use fix_string_type. + * c-common.h: Update decls. + * c-parse.in (string): Remove. Update all uses to use STRING + instead, and not call combine_strings. + (yylexstring): New. + (_yylex): Use it. + * c-typeck.c (simple_asm_stmt): Don't call combine_strings. + (build_asm_stmt): Likewise. + * objc/objc-act.c (my_build_string): Use fix_string_type. + (build_objc_string_object): Build varray for combine_strings. + +2002-04-26 Bo Thorsen + + * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for + x86-64. + +2002-04-26 Neil Booth + + * cppexp.c (CPP_UMINUS, CPP_UPLUS): New. + (HAVE_NO_R_OPERAND): Remove. + (HAVE_VALUE): Remove. + (op_to_prio): Update. + (UNARY): Don't alter flags. + (_cpp_parse_expr): want_value used to indicate whether + a number or unary operator is expected next. Distinguish + unary and binary +/-. + (op_as_text): Update for unary operators. + +2002-04-25 Richard Henderson + + PR c/2161 + * c-parse.in (yyoverflow): New. + +2002-04-25 Richard Henderson + + PR c/2098 + * c-common.c (shorten_compare): Simplfy conditions leading to + the generation of a warning. + +2002-04-25 Richard Henderson + + PR c/2035 + * expmed.c (extract_bit_field): Fall through to generic code rather + than aborting on subreg special case. + +2002-04-25 David S. Miller + + * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check + for DECL being NULL. + +2002-04-25 Steve Christiansen + + * doc/md.texi (Machine Constraints): Add IA-64 constraints. + +2002-04-25 Eric Botcazou + + * c-decl.c (grokdeclarator): Remove outdated ??? note + on invalid declaration of flexible array members. + +2002-04-25 Richard Henderson + + * doc/invoke.texi: Document -gdwarf{,-2} vs debug level. + +2002-04-25 Ulrich Weigand + + * config/s390/s390.c (s390_emit_epilogue): Always restore registers + needed by the compiler, even if they are used as global regs. + +2002-04-25 Matt Hiller + + * mips.c (mips_class_max_nregs, mips_register_move_cost): New + functions. + * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls + of the corresponding functions. + * mips-protos.h (mips_class_max_nregs, mips_register_move_cost): + New prototypes. + +2002-04-25 Matt Hiller + + * config/mips/mips.h (mips_sw_reg_names): Declare as extern. + + (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro. + (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor + registers, adjust comment accordingly. + (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, + reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES, + DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries + for coprocessor registers. + (ADDITIONAL_REGISTER_NAMES): Include + ALL_COP_ADDITIONAL_REGISTER_NAMES. + + (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM, + COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM, + COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM, + COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P, + COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros. + + (mips_char_to_class): Adjust comment to include coprocessor + constraint letters. + + * config/mips/mips.c (coprocessor_operand, coprocessor2_operand): + New functions. + (mips_reg_names, mips_regno_to_class): Include coprocessor + information. + (mips_sw_reg_names): Ditto, make non-static. + (mips_move_1word): Handle moves to and from coprocessor registers. + (mips_move_2words): Handle moves to and from coprocessor + registers. + (mips_class_max_nregs, mips_register_move_cost): Handle + coprocessor register classes. + (override_options): Initialize mips_char_to_class and + mips_hard_regno_mode_ok properly for coprocessor registers. + + * config/mips/mips.md (movdi_internal, movdi_internal2, + movsi_internal1, movsi_internal2): Add constraint-sets for + coprocessor registers. + * testsuite/gcc.c-torture/mipscop-1.c: New testcase. + * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target + isn't mips. + * testsuite/gcc.c-torture/mipscop-2.c: New testcase. + * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target + isn't mips. + * testsuite/gcc.c-torture/mipscop-3.c: New testcase. + * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target + isn't mips. + * testsuite/gcc.c-torture/mipscop-4.c: New testcase. + * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target + isn't mips. + + * doc/tm.texi: Document feature. + +2002-04-25 Neil Booth + + * integrate.c (function_attribute_inlinable_p): Simplify. + Check the table pointer is not NULL. + +2002-04-25 Steven Bosscher + + * doc/c-tree.texi: Fix typo in introduction. + +2002-04-25 Neil Booth + + * c-common.h (c_common_parse_file): Update. + * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. + * c-lex.c (YYDEBUG): Get from c-lex.h. + (c_common_parse_file): Update. + * c-lex.h (YYDEBUG, yydebug): New. + * c-parse.in (YYDEBUG): Get from c-lex.h. + (c_set_yydebug): Remove. + * c-tree.h (c_set_yydebug): Remove. + * langhooks-def.h (lhd_do_nothing_i): New. + (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove. + (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_do_nothing_i): New. + (lhd_set_yydebug): Remove. + * langhooks.h (struct lang_hooks): Update. + * toplev.c (set_yydebug): New. + (compile_file): Update call to parse_file hook. + (decode_d_option): Update. +objc: + * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. + +Wed Apr 24 23:45:37 2002 J"orn Rennecke + + * loop.c (load_mems): Don't change the interface of called functions. + + * calls.c (expand_call): Take current_function_pretend_args_size + into account when setting argblock for sibcalls. + +2002-04-24 Matt Hiller + + * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS. + * c-lex.c: Ditto. + + * cpplex.c (skip_line_comment): Process comment one multibyte + character at a time rather than one char at a time, if + appropriate. + (parse_string): Process string one multibyte character at a time + rather than one char at a time, if appropriate. + * c-lex.c (lex_string): Lex and copy multibyte strings + appropriately. + * cpplib.h (cppchar_t): Change to unsigned. + +2002-04-24 Richard Henderson + + PR c/3467 + * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays + for c99. + +Wed Apr 24 21:51:54 2002 J"orn Rennecke + + * sh.c (sh_va_arg): If argument was passed by reference, + dereference the pointer. + + * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic. + + * sh.md (divsi3_i4_media): Use match_operand for input values + rather than hard registers. + (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values + unnecessarily through hard registers. Keep copies of pseudo + registers outside of the libcall sequence. + + * sh.md (casesi_shift_media): Add modes. + + * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode + values in memory. + +2002-04-24 Neil Booth + + * attribs.c (c_common_attribute_table): Move table and handlers + to c-common.c. + (format_attribute_table, lang_attribute_table, + lang_attribute_common): Remove. + (init_attributes): Replace NULL pointers with pointers to the + empty table. + (handle_packed_attribute, handle_nocommon_attribute, + handle_common_attribute, handle_noreturn_attribute, + handle_noinline_attribute, handle_always_inline_attribute, + handle_used_attribute, handle_unused_attribute, + handle_const_attribute, handle_transparent_union_attribute, + handle_constructor_attribute, handle_destructor_attribute, + handle_mode_attribute, handle_section_attribute, + handle_aligned_attribute, handle_weak_attribute, + handle_alias_attribute, handle_visibility_attribute, + handle_no_instrument_function_attribute, handle_malloc_attribute, + handle_no_limit_stack_attribute, handle_pure_attribute, + handle_deprecated_attribute, handle_vector_size_attribute, + vector_size_helper): Move to c-common.c. + * c-common.c (c_common_attribute_table, + handle_packed_attribute, handle_nocommon_attribute, + handle_common_attribute, handle_noreturn_attribute, + handle_noinline_attribute, handle_always_inline_attribute, + handle_used_attribute, handle_unused_attribute, + handle_const_attribute, handle_transparent_union_attribute, + handle_constructor_attribute, handle_destructor_attribute, + handle_mode_attribute, handle_section_attribute, + handle_aligned_attribute, handle_weak_attribute, + handle_alias_attribute, handle_visibility_attribute, + handle_no_instrument_function_attribute, handle_malloc_attribute, + handle_no_limit_stack_attribute, handle_pure_attribute, + handle_deprecated_attribute, handle_vector_size_attribute, + vector_size_helper): Move from attribs.c. + * c-common.h (c_common_attribute_table, + c_common_format_attribute_table): New. + * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, + LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine. + * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, + LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): 3 new attribute hooks. + * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL. + * target.h: Update comment. + * tree.c (default_target_attribute_table): Remove. + * tree.h (default_target_attribute_table, format_attribute_table, + lang_attribute_table, lang_attribute_common): Remove. +objc: + * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, + LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine. + +2002-04-24 Jason Merrill + + * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector. + * dwarf2out.c (dwarf_attr_name): Support it. + (gen_array_type_die): Emit it. + (lookup_type_die): No special handling for VECTOR_TYPE. + (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die. + +2002-04-24 Richard Henderson + + * config/mips/mips.md (movdi_usd): Renumber. + +2002-04-24 David S. Miller + + PR target/6420 + * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if + 32-bit SPARC and current_function_returns_struct is true. + +Wed Apr 24 13:48:25 CEST 2002 Jan Hubicka + + * loop.c (canonicalize_condition): Use gen_int_mode. + +2002-04-24 Aldy Hernandez + + * config/rs6000/altivec.h: Cleanup file. Add non individual + variants. + (vec_vaddubm): New. + (vec_vadduhm): New. + (vec_vadduwm): New. + (vec_vaddfp): New. + (vec_vaddcuw): New. + (vec_vaddubs): New. + (vec_vaddsbs): New. + (vec_vadduhs): New. + (vec_vadduws): New. + (vec_vaddsws): New. + (vec_vand): New. + (vec_vandc): New. + (vec_vavgub): New. + (vec_vavgsb): New. + (vec_vavguh): New. + (vec_vavgsh): New. + (vec_vavguw): New. + (vec_vavgsw): New. + (vec_vrfip): New. + (vec_vcmpbfp): New. + (vec_vcmpequb): New. + (vec_vcmpequh): New. + (vec_vcmpequw): New. + (vec_vcmpeqfp): New. + (vec_vcmpgefp): New. + (vec_vcmpgtub): New. + (vec_vcmpgtsb): New. + (vec_vcmpgtuh): New. + (vec_vcmpgtsh): New. + (vec_vcmpgtuw): New. + (vec_vcmpgtsw): New. + (vec_vcmpgtfp): New. + (vec_vcmpgefp): New. + (vec_vcfux): New. + (vec_vcfsx): New. + (vec_vctsxs): New. + (vec_vctuxs): New. + (vec_vexptefp): New. + (vec_vrfim): New. + (vec_lvx): New. + (vec_lvebx): New. + (vec_lvehx): New. + (vec_lde): Add vector float variant. + (vec_lvewx): New. + (vec_lvxl): New. + (vec_vlogefp): New. + (vec_vmaddfp): New. + (vec_vmhaddshs): New. + (vec_vmaxub): New. + (vec_vmaxsb): New. + (vec_vmaxuh): New. + (vec_vmaxsh): New. + (vec_vmaxuw): New. + (vec_vmaxsw): New. + (vec_vmaxsw): New. + (vec_vmaxfp): New. + (vec_vmrghb): New. + (vec_vmrghh): New. + (vec_vmrghw): New. + (vec_vmrglb): New. + (vec_vmrglh): New. + (vec_vmrglw): New. + (vec_vminub): New. + (vec_vminsb): New. + (vec_vminuh): New. + (vec_vminsh): New. + (vec_vminuw): New. + (vec_vminsw): New. + (vec_vminfp): New. + (vec_vmladduhm): New. + (vec_vmhraddshs): New. + (vec_msumubm): New. + (vec_vmsummbm): New. + (vec_vmsumuhm): New. + (vec_vmsumshm): New. + (vec_vmsumuhs): New. + (vec_vmsumshs): New. + (vec_vmuleub): New. + (vec_vmulesb): New. + (vec_vmuleuh): New. + (vec_vmulesh): New. + (vec_vmuloub): New. + (vec_mulosb): New. + (vec_vmulouh): New. + (vec_vmulosh): New. + (vec_vnmsubfp): New. + (vec_vnor): New. + (vec_vor): New. + (vec_vpkuhum): New. + (vec_vpkuwum): New. + (vec_vpkpx): New. + (vec_vpkuhus): New. + (vec_vpkshss): New. + (vec_vpkuwus): New. + (vec_vpkswss): New. + (vec_vpkshus): New. + (vec_vpkswus): New. + (vec_vperm): New. + (vec_vrefp): New. + (vec_vrlb): New. + (vec_vrlh): New. + (vec_vrlw): New. + (vec_vrfin): New. + (vec_vrsqrtefp): New. + (vec_vsel): New. + (vec_vslb): New. + (vec_vslh): New. + (vec_vslw): New. + (vec_vsldoi): New. + (vec_vsl): New. + (vec_vslo): New. + (vec_vspltb): New. + (vec_vsplth): New. + (vec_vspltw): New. + (vec_vspltisb): New. + (vec_vspltish): New. + (vec_vspltisw): New. + (vec_vsrb): New. + (vec_vsrh): New. + (vec_vsrw): New. + (vec_vsrab): New. + (vec_vsrah): New. + (vec_vsraw): New. + (vec_vsr): New. + (vec_vsro): New. + (vec_stvx): New. + (vec_stvebx): New. + (vec_stvehx): New. + (vec_stvewx): New. + (vec_stvxl): New. + (vec_vsububm): New. + (vec_vsubuhm): New. + (vec_vsubuwm): New. + (vec_vsubfp): New. + (vec_vsubcuw): New. + (vec_vsububs): New. + (vec_vsubsbs): New. + (vec_vsubuhs): New. + (vec_vsubshs): New. + (vec_vsubuws): New. + (vec_vsubsws): New. + (vec_vsum4ubs): New. + (vec_vsum4sbs): New. + (vec_vsum4shs): New. + (vec_vsum2sws): New. + (vec_vsumsws): New. + (vec_vrfiz): New. + (vec_vupkhsb): New. + (vec_vupkhpx): New. + (vec_vupkhsh): New. + (vec_vupklsb): New. + (vec_vupklpx): New. + (vec_vupklsh): New. + (vec_vxor): New. + +2002-04-23 Eric Botcazou + + PR c/5430 + * fold-const.c (split_tree): Add MINUS_LITP parameter; separate + added literals from substracted literals. + (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR. + (fold) [associate]: Preserve MINUS_EXPR if needed. + +2002-04-23 Zack Weinberg + + * doc/install.texi: Clarify which versions of alpha*-dec-osf* + are obsoleted. + +2002-04-23 Tom Tromey + + * gcc.c: Added --resource. For PR java/6314. + +2002-04-23 David O'Brien + + * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg. + * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of + these libraries. + +2002-04-23 David O'Brien + + * config/freebsd.h(OBJECT_FORMAT_ELF): Define. + +Tue Apr 23 14:24:25 CEST 2002 Jan Hubicka + + * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug + workaround. + (ix86_expand_int_movcc): Avoid x86_64 compilation chrash. + (ix86_expand_clrstr): Fix typo. + * loop.c (gen_load_of_final_value): New. + (loop_givs_rescan, strength_reduce, check_dbra_loop): + Use it. + +2002-04-23 Roger Sayle + + * builtins.c (builtin_memset_gen_str): New function. + (expand_builtin_memset): Optimize the case of constant length, but + unknown value. + +2002-04-23 Aldy Hernandez + + * config/rs6000/altivec.h (vec_step): Remove extraneous + parentheses. + (vec_ctu): Cast return. + +2002-04-23 Alan Modra + + PR target/6413 + * function.h: (struct function): Add profile_label_no field. + (current_function_profile_label_no): Define. + * function.c: (profile_label_no): New static var. + (expand_function_start): Increment it, and copy to + current_function_profile_label_no. + * output.h (profile_label_no): Delete. + * final.c (profile_label_no): Delete. + (profile_function): Use current_function_profile_label_no. + (final_end_function): Don't increment profile_label_no here. + * config/i386/i386.c (ix86_osf_output_function_prologue): Replace + profile_label_no with current_function_profile_label_no. + * config/pa/pa.c (current_function_number): Delete. + (pa_output_function_prologue): Don't output profile label here. + (hppa_profile_hook): Use label_no param rather than + current_function_number. + (FUNC_BEGIN_PROLOG_LABEL): Move to .. + * config/pa/pa.h: .. here. + (FUNCTION_PROFILER): Output profile label here. + +2002-04-22 Eric Christopher + + * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert + patch of 2002-04-09 due to binutils issues. + (FUNCTION_ARG_REGNO_P): Ensure even numbered float register. + +2002-04-22 Aldy Hernandez + + * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm' + constraint to 'o' for m=r and r=m alternatives. + ("*movv8hi_internal1"): Same. + ("*movv16qi_internal1"): Same. + ("*movv4sf_internal1"): Same. + +2002-04-22 Janis Johnson + + * rtl.h (RTX_FLAG): New macro. + * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags. + * final.c (alter_subreg): Use macro to access rtx flag. + * integrate.c (copy_rtx_and_substitute): Use new access macro. + * print-rtl.c (print_rtx): Use new access macro. + + * cse.c (insert): Check rtx code before accessing flag. + + * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P, + ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New. + (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test, + convert_const_symbol_ref, make_canonical, make_alternative_compare, + evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp, + simplify_test_exp, optimize_attrs, simplify_by_exploding, + find_and_mark_used_attributes, unmark_used_attributes, + add_values_to_cover, simplify_with_current_value, + simplify_with_current_value_aux, clear_struct_flag, walk_attr_value, + copy_rtx_unchanging, main): Use new access macros. + +2002-04-22 Tom Rix + + * expmed.c (init_expmed): Generate shifted constant once. + +2002-04-22 Zack Weinberg + + * c-lex.c (lex_charconst): Call convert to get constant in + proper type; don't just smash the type field. + Fixes PR c/6300. + + * config.gcc: Add list of obsolete configurations. Disallow + building these without --enable-obsolete. + * doc/install.texi: Document --enable-obsolete and obsoletion + policy. Mention obsoletion of individual targets in + appropriate places. + +2002-04-22 Richard Henderson + + * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New. + +2002-04-22 Mark Mitchell + + PR f/6138. + * function.c (fixup_memory_subreg): Add promoted_mode parameter. + (walk_fixup_memory_subreg): Likewise. + (fixup_var_refs_insn): Adjust accordingly. + (fixup_var_refs_1): Likewise. + +2002-04-22 Ulrich Weigand + + * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC, + LIBPATH_ARCH64_SPEC): Define. + (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64. + (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath. + (LINK_ARCH31_SPEC): Add libpath_arch31 to search path. + (LINK_ARCH64_SPEC): Add libpath_arch64 to search path. + +2002-04-22 Joel Sherrill + + * gthr-rtems.h: Correct prototypes to remove warnings. + +2002-04-22 Richard Henderson + + PR c/6344 + * alias.c (canon_true_dependence): Special case (mem:blk (scratch)). + + * gcse.c (free_insn_expr_list_list): New. + (clear_modify_mem_tables): Use it. Fix bit set usage. + (canon_list_insert): Use EXPR_LISTs for expressions. + (record_last_mem_set_info): Factor BLOCK_NUM (insn). + +2002-04-22 Neil Booth + + * cppfiles.c (_cpp_pop_file_buffer): Return void. Move + file change and include code to _cpp_pop_buffer. + * cpphash.h (struct pending_option): Predeclare. + (struct cpp_reader): New member next_include_file. + (_cpp_pop_file_buffer): Update. + (_cpp_push_next_buffer): Update, rename. + * cppinit.c (cpp_destroy): Free include chain and pending here. + (cpp_finish_options): Simplify. + (_cpp_push_next_buffer): Rename and clean up. + * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer. + Clarify. + * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here. + +2002-04-22 Aldy Hernandez + + * config/rs6000/altivec.h (vec_xor): Add variant for both args + being vector signed int. + (vec_andc): Same. + (vec_xor): Add variant for both args being vector signed char. + Remove redundant variant. + (vec_andc): Same. + +2002-04-21 David S. Miller + + * config/sparc/sparc.md (set then compare DI mode peephole2): Fix + compare mode in output RTL. + +2002-04-22 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Correct + style and formatting of previous patch. + +2002-04-22 Alan Modra + + * config/rs6000/rs6000.c (rs6000_override_options): Always clear + flag_pic for ABI_AIX. + +2002-04-21 Neil Booth + + * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar. + * cppfiles.c (read_include_file): Similarly. + * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen, + uxstrdup ustrchr, ufputs): Similarly. + * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly. + * cpplex.c (parse_slow, unescaped_terminator_p, save_comment, + cpp_ideq, parse_identifier, parse_number): Similarly. + * cpplib.c (struct directive, dequote_string, D, run_directive, + cpp_push_buffer): Similarly. + * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string, + _cpp_create_definition, check_trad_stringification, + cpp_macro_definition): Similarly. + +2002-04-21 Neil Booth + + * cppmacro.c (funlike_invocation_p): Don't step back + over CPP_EOF. + +2002-04-21 David Edelsohn + + * config/rs6000/rs6000.c (output_profile_hook): Do not increment + labelno. + +2002-04-20 Joseph S. Myers + + * doc/invoke.texi: Remove Chill references. + * doc/gcc.texi: Update last modified date. + +2002-04-20 Kazu Hirata + + * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary + push and pop. Replace add.l with add.w. + +2002-04-20 Toshiyasu Morita + + * config/h8300/lib1funcs.asm (___mulsi3): Use hardware + multiply instructions for H8/300H case. + +2002-04-20 Toshiyasu Morita + + * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2): + Bum three instructions from each routine. + +2002-04-20 Neil Booth + + * Makefile.in: Update. + * decl.c (push_c_function_context, pop_c_function_context, + mark_c_function_context): Rename for consistency. + * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere. + * c-tree.h (push_c_function_context, pop_c_function_context, + mark_c_function_context): Rename for consistency. + * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine. + * function.c (init_lang_status, save_lang_status, + restore_lang_status, mark_lang_status, free_lang_status): + Move to langhooks.h. + (push_function_context_to, pop_function_context_from, + free_after_parsing, prepare_function_start, ggc_mark_struct_function): + Update. + * function.h (init_lang_status, save_lang_status, + restore_lang_status, mark_lang_status, free_lang_status): + Move to langhooks.h. + * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT, + LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK, + LANG_HOOKS_FUNCTION_INITIALIZER): New. + (LANG_HOOKS_INITIALIZER): Update. + (lhd_do_nothing_f): New. + * langhooks.h (struct lang_hooks_for_functions): New. + (struct lang_hooks): New hooks. + * langhooks.c (lhd_do_nothing_f): New. +objc: + * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine. + +2002-04-19 David S. Miller + + * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. + * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise. + +2002-04-19 Jakub Jelinek + + PR optimization/3756 + * config/i386/i386.c (ix86_expand_int_movcc): Optimize + x = ((int) y < 0) ? cst1 : cst2. + +2002-04-19 Jakub Jelinek + + PR c/6358 + * function.c: Reapply patch for c/6358. + (expand_function_end): Copy decl_rtl's mode, not + current_function_return_rtx mode. + +2002-04-19 Joel Sherrill + + * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF + targets. + +2002-04-19 Tom Tromey + + * doc/install.texi (Specific): Update status of Solaris 2.8. + For PR libgcj/6158. + +2002-04-19 Andreas Schwab + + * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE. + (PUT_REAL): Restore old definition. + +2002-04-19 Dan Nicolaescu + Gerald Pfeifer + + * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that + binutils 2.11.2 and higher generate smaller binaries than Sun's + native tools. + +2002-04-19 Mark Mitchell + + PR c++/6352 + * toplev.c (rest_of_compilation): Do not defer functions for which + TREE_SYMBOL_REFERENCED has already been set. + +Fri Apr 19 15:53:03 CEST 2002 Jan Hubicka + + * i386.md (movsi_1, movhi_1): Force reload to use more flexible + alternative. + +2002-04-19 Neil Booth + + * builtins.c: Include langhooks.h. + (lang_type_promotes_to): Remove. + (expand_builtin_va_arg): Use new hook. + * c-common.c (c_common_nodes_and_builtins): Don't set hook. + (simple_type_promotes_to): Move to c-typeck.c. + * c-common.h (simple_type_promotes_to): Remove. + * c-decl.c (duplicate_decls, grokdeclarator): Update. + * c-format.c: Include langhooks.h. + (check_format_types): Update. + * c-tree.h (c_type_promotes_to): New. + * c-typeck.c (c_type_promotes_to): Move from c-common.c. + (type_lists_compatible_p): Update. + * langhooks-def.h (lhd_type_promotes_to): New. + (LANG_HOOKS_TYPE_PROMOTES_TO): New. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. + * langhooks.c (lhd_type_promotes_to): New. + * langhooks.h (struct lang_hooks_for_types): New hook. + * tree.h (lang_type_promotes_to): Remove. +objc: + * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. + +2002-04-18 Richard Henderson + + * function.c: Revert patch for c/6358. + +2002-04-18 Richard Henderson + + * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN + blocks. Handle multiple references to the TRAP block. Handle + non-adjacent THEN and OTHER blocks. + +2002-04-18 Richard Henderson + + * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't + crash with no type for by-mode libcalls. + + * config/ia64/ia64.md (conditional_trap): Fix predicate polarity. + +2002-04-18 Bob Wilson + + * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill, + __xtensa_nonlocal_goto): Use a syscall instructions to flush + the register windows. + +2002-04-18 Zack Weinberg + + * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as + appropriate. Document need for extended precision even when + MAX_LONG_DOUBLE_TYPE_SIZE is smaller. Define REAL_WIDTH here, + based on REAL_VALUE_TYPE_SIZE. Use REAL_WIDTH to size + REAL_VALUE_TYPE. Define CONST_DOUBLE_FORMAT here. Use #error + instead of relying on later syntax error when REAL_WIDTH > 5. + * real.c: Define NE based only on whether or not we have a + full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT). + Require sizeof(REAL_VALUE_TYPE) == 2*NE. Unconditionally + define GET_REAL and PUT_REAL as simple memcpy operations; no + need to byteswap or round. + Use #error instead of #ifdef-ing out the entire file, for + prompt error detection. + + * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here. + +2002-04-18 David S. Miller + + * config/sparc/sparc.h (BRANCH_COST): Define. + + * fold-const.c (BRANCH_COST): Don't provide default here, expr.h + does it. + +2002-04-18 Hans-Peter Nilsson + + * flow.c (update_life_info): Ignore return value of cleanup_cfg. + Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in + propagate_block calls after relaxation loop using new variable + stabilized_prop_flags. + +2002-04-18 Richard Henderson + + * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New. + (ia64_va_arg): Expect variable sized types by reference. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use + ia64_function_arg_pass_by_reference. + +2002-04-18 Richard Henderson + + * ifcvt.c: Include except.h. + (block_has_only_trap): Break out from find_cond_trap. + (find_cond_trap): Use it. Always delete the trap block. + (merge_if_block): Allow then block null. Be less simplistic about + what insns can end a block. + * Makefile.in (ifcvt.o): Depend on except.h. + + * config/ia64/ia64.md (trap, conditional_trap): New. + +2002-04-18 Jakub Jelinek + + PR c/6358 + * function.c (assign_parms): Assign hard current_function_return_rtx + register here... + (expand_function_end): ...not here. + +2002-04-18 Neil Booth + + * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. + * c-tree.h (c_incomplete_type_error): New. + * c-typeck.c (require_complete_type, build_component_ref): Update. + (incomplete_type_error): Rename. + * langhooks-def.h (lhd_incomplete_type_error): New. + (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New. + (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. + * langhooks.c (lhd_incomplete_type_error): New. + * langhooks.h (struct lang_hooks_for_types): New hook. + * tree.c (size_in_bytes): Use new hook. + * tree.h (incomplete_type_error): Remove. +objc: + * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. + +2002-04-18 Zack Weinberg + + * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT != + TARGET_FLOAT_FORMAT blocks. + +2002-04-18 Gerald Pfeifer + + * doc/install.texi (Downloading the source): Do not mention Chill + any longer, but mention Ada. + (Configuration): Do not mention Chill any longer. + +2002-04-18 Hans-Peter Nilsson + + * config/cris/cris.h (TARGET_VERSION): Remove local version number. + +Thu Apr 18 17:14:08 CEST 2002 Jan Hubicka + + * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution + in last patch. + +2002-04-18 Jakub Jelinek + + * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type) + instead of unsigned_type. + +Thu Apr 18 15:49:12 CEST 2002 Jan Hubicka + + * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check. + * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped + later. + +2002-04-18 Bernd Schmidt + + * attribs.c (vector_type_node_list): New static variable. + (handle_vector_size_attribute): Use it to avoid generating a + new type node each time we are called. + + * combine.c (subst): Avoid trying to make a vector mode subreg of + an integer constant. + (gen_lowpart_for_combine): Likewise. + +2002-04-18 Roger Sayle + Jakub Jelinek + + * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c) + for integer constant c (if x has unsigned type or sign bit is not + set in c). This folds the zero/sign extension into the bit-wise and + operation. + +2002-04-18 Jakub Jelinek + + PR middle-end/6205 + * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2, + otherwise xorps. + +2002-04-17 NIIBE Yutaka + + * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL. + +2002-04-17 Nick Clifton + + * gcc.c (read_specs): Detect and fail if an attempt is made to + rename a spec string to an already existing string. + +2002-04-17 Ulrich Weigand + + * config/s390/s390.c (legitimize_pic_address): Do not generate + illegal address constant without CONST. + +2002-04-17 Kaveh R. Ghazi + + * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64. + * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. + +2002-04-17 Ulrich Weigand + + PR optimization/6305 + * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement + to make sure previous reloads are taken into account. Generate + better code if one operand is an in-range immediate constant. + +2002-04-16 Andrew Haley + + * doc/install.texi (Building): libgcj requires GNU make. + +2002-04-17 Jakub Jelinek + + PR bootstrap/6315 + * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting + even if hard quad and register is not floating. + (movtf reg<-mem split): Disallow splitting if hard quad and + register is floating. + (movtf mem<-reg split): Likewise. + * config/sparc/sparc.c (fp_register_operand): New predicate. + * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand. + +2002-04-17 Zack Weinberg + + * Makefile.in (PROTO_OBJS): Add cppdefault.o. + (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line. + (unprotoize.o): Ditto. Build from protoize.c. Define + UNPROTOIZE on command line. + * protoize.c: Include cppdefault.h. Delete include_defaults. + (in_system_include_dir): Use cpp_include_defaults (defined in + cppdefault.o). + * unprotoize.c: Delete file. + +2002-04-17 Aldy Hernandez + + * config/rs6000/altivec.h (vec_ld): Add array variants. + (vec_lde): Same. + (vec_ldl): Same. + +2002-04-17 Alan Matsuoka + Aldy Hernandez + + * config/rs6000/altivec.h: Define __ALTIVEC__. + (bool): New. + (__pixel): New. + (pixel): New. + (vec_cfux): New. + (vec_vmaddfp): New. + (vec_vsldoi): New. + Add parentheses to all macro arguments. + +2002-04-16 Richard Henderson + + PR c++/6320 + * except.c (remove_eh_handler): Insert inner regions at beginning + of sibling chain. Refactor expressions. + +2002-04-16 Richard Henderson + + * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New. + * config/sparc/sol2-gas-bi.h: New file. + * config.gcc (sparc*-solaris): Add it as needed. + * configure.in (AS_SPARC64_FLAG): Remove check. + * config.in, configure: Regenerate. + + * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64. + +2002-04-16 Richard Henderson + + * config/mips/mips.c (override_options): Don't override N32 for + a 64-bit ISA. + + PR 6202 + * config/mips/mips.md (can_delay): Split out of existing define_delays. + (HILO_delay): Set can_delay false. + +2002-04-16 Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute + instruction addresses. + (rs6000_output_function_epilogue): Likewise. + +2002-04-16 Paolo Carlini + + * c-parse.in (poplevel, compstmt_start, + compstmt_primary_start): Add ending ';', in accordance + with POSIX. + +2002-04-16 Richard Henderson + + * config.gcc (sparcv9-solaris): Configure for 64-bit default. + Adjust tm_file order to get TARGET_DEFAULT set properly. + (sparc-solaris): Configure 2.[78] for 64-bit multilibs. + * doc/install.texi (sparc-solaris): Update. + +2002-04-16 Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of + comparison operands do not match each other or if modes of + conditions do not match result. + +2002-04-16 Hartmut Penner + + PR target/6305 + * config/s390/s390.md (mulsidi3): Set both subregs of the + multiword register. + +2002-04-16 Aldy Hernandez + + * config/rs6000/altivec.h (vec_addc): Type check. + +2002-04-16 Jakub Jelinek + + PR middle-end/6279 + * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target. + + * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET. + +2002-04-15 Richard Henderson + + * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set + call_really_used_regs too. + +2002-04-15 Richard Henderson + + * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd. + +2002-04-15 David S. Miller + + * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs + as being CLOBBERed. + +2002-04-16 Jakub Jelinek + + PR c/6290 + * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the + CONST_VECTOR is { 0, ... 0 }. + +2002-04-15 Loren J. Rittle + + * doc/install.texi (Installing GCC: Configuration): Clarify + the only supported ways to configure gcc. + +2002-04-15 Roland McGrath + + * config.gcc (alpha*-*-gnu*): New target configuration. + * config/alpha/gnu.h: New file for it. + * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define. + +2002-04-16 Mark Mitchell + + * c-common.h (STMT_EXPR_NO_SCOPE): New macro. + * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE. + * tree.h (expand_start_stmt_expr): Update prototype. + * stmt.c (expand_start_stmt_expr): Add has_scope parameter. + * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE + on the STMT_EXPR created for the inline function. + +2002-04-15 Richard Henderson + + * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h, + config/i386/linux-aout.h, config/i386/linux-oldld.h, + config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h, + config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h, + config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h, + config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h, + config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES): + Define __gnu_linux__, not gnu_linux. + * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd. + +2002-04-15 Mark Mitchell + + Remove Chill front end. + * gcc.c (default_compilers): Remove Chill entries. + * ch: Remove directory. + * doc/frontends.texi: Remove information about Chill. + * doc/sourcebuild.texi: Likewise. + * doc/standards.texi: Likewise. + +2002-04-15 Douglas B Rupp + + * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include. + (LONGLONG_STANDALONE): Define. + +2002-04-15 David S. Miller + + * config/sparc/sparc.c (sparc_emit_float_lib_cmp): + Call emit_library_call with LCT_NORMAL. + (sparc_initialize_trampoline): Use LCT_foo instead of + magic constant in emit_library_call invocations. + (sparc64_initialize_trampoline): Likewise. + (sparc_profile_hook): Likewise. + * config/sparc/sparc.md: Likewise. + + * config/sparc/sparc.c (sparc_extra_constraint_check): + Fix type of argument 'c'. + * config/sparc/sparc-protos.h (sparc_extra_constraint_check): + Likewise. + +2002-04-15 Gabriel Dos Reis + + * diagnostic.h (output_buffer_state): Redefine. + (output_format_decoder): New macro. + (output_prefixing_rule): Likewise. + (output_line_cutoff): Likewise. + (diagnostic_format_decoder): Adjust. + (diagnostic_prefixing_rule): Likewise. + (diagnostic_line_cutoff): Likewise. + (diagnostic_state): Likewise. + (diagnostic_kind_count): Likewise. + (diagnostic_buffer): Now a macro. + + * diagnostic.c (diagnostic_buffer): Remove definition. + (output_is_line_wrapping): Adjust. + (set_real_maximum_length): Likewise. + (output_set_maximum_length): Likewise. + (init_output_buffer): Likewise. + (lhd_print_error_function): Likewise. + (output_do_verbatim): Likewise. + +2002-04-14 Neil Booth + + * cpperror.c (print_location): Don't print include chain + if line == 0. + (cpp_begin_message): Update to use DL_ macros. + (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning, + cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, + cpp_notice, cpp_notice_from_errno): Remove. + (cpp_error, cpp_error_with_line): Update to take a diagnostic + level. + (cpp_errno): New. + * cppexp.c (CPP_ICE): Remove. + (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined, + lex, integer_overflow, _cpp_parse_expr): Update. + * cppfiles.c (read_include_file, find_include_file, + handle_missing_header, _cpp_read_file, remap_filename): Update. + * cpphash.h (enum error_type): Remove. + (_cpp_begin_message): Update. + * cppinit.c (append_include_chain, remove_dup_dirs, output_deps, + cpp_handle_option, cpp_post_options): Update. + * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment, + skip_whitespace, parse_identifier, parse_slow, parse_string, + _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape, + cpp_interpret_charconst): Update. + * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive, + lex_macro_node, do_undef, glue_header_name, parse_include, + do_include_common, read_flag, do_line, do_linemarker, do_ident, + cpp_register_pragma, do_pragma_once, do_pragma_system_header, + do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else, + do_elif, do_endif, parse_answer, parse_assertion, do_assert, + _cpp_pop_buffer, do_diagnostic): Update. + * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR, + DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New. + (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning, + cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, + cpp_notice, cpp_notice_from_errno): Remove. + (cpp_error, cpp_error_with_line): Update to take a diagnostic + level. + (cpp_errno): New. + * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens, + collect_args, enter_macro_context, save_parameter, parse_params, + _cpp_create_definition, check_trad_stringification, + cpp_macro_definition): Update. + * cppmain.c (cpp_preprocess_file): Update. + * fix-header.c (read_scan_file): Update. + +2002-04-14 Andreas Schwab + + * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash. + +2002-04-14 Jeroen Dobbelaere + + * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define. + +2002-04-13 Mark Mitchell + + * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__, + not gnu_hurd. + +2002-04-13 Hans-Peter Nilsson + + * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo. + +2002-04-13 Joel Sherrill + + * config/sparc/t-elf: Enable v8 multilibs. Impacts + sparc-elf and sparc-rtems targets. + +2002-04-13 Mark Mitchell + + * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is + defined, and __gnu_hurd__ wherever __GNU__ is defined. + * arm/linux-elf.h: Likewise. + * cris/aout.h: Likewise. + * cris/linux.h: Likewise. + * i370/linux.h: Likewise. + * i386/gnu.h: Likewise. + * i386/linux-aout.h: Likewise. + * i386/linux-oldld.h: Likewise. + * i386/linux.h: Likewise. + * i386/linux64.h: Likewise. + * ia64/linux.h: Likewise. + * m68k/linux-aout.h: Likewise. + * m68k/linux.h: Likewise. + * mips/linux.h: Likewise. + * pa/pa-linux.h: Likewise. + * pj/linux.h: Likewise. + * rs6000/sysv4.h: Likewise. + * s390/linux.h: Likewise. + * sh/linux.h: Likewise. + * sparc/linux-aout.h: Likewise. + * sparc/linux.h: Likewise. + * sparc/linux64.h: Likewise. + * xtensa/linux.h: Likewise. + +2002-04-13 Richard Sandiford + + * stmt.c (check_unique_operand_names): Expect operand names to + be strings rather than identifiers. Use simple_cst_equal to + compare them. + (resolve_operand_name_1): Make same identifier to string change here. + * c-parse.in (asm_operand): Convert a named operand into a string. + * cp/parse.y (asm_operand): Likewise. + +2002-04-13 Andreas Schwab + + * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu). + +2002-04-12 Mark Mitchell + + Revert these changes: + + 2002-04-06 Mark Mitchell + + PR c++/5571 + * stor-layout.c (layout_decl): Reset the RTL for the decl. + +2002-04-12 Richard Henderson + + * config.gcc (sparcv9-*-solaris2): Default to 32-bit code. + (sparc*-*-solaris): Clean up header files. + * configure.in (AS_SPARC64_FLAG): Error out if can't find it + and plan on generating 64-bit code. + * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2. + * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code. + * config/sparc/sol2-sld-64.h: Rename ... + * config/sparc/sol2-bi.h: ... here. Remove the bits that checked + for AS_SPARC64_FLAG not defined. + * config/sparc/sol2-gld-bi.h: New. + * config/sparc/sol2-sld.h: Remove. + * config/sparc/sol26-sld.h: New. + * config/sparc/sol2.h: Tidy comments. + * doc/install.texi: Document sparc-solaris configury changes. + +2002-04-12 Richard Henderson + + * recog.c (offsettable_address_p): Match the logic in adjust_address. + + * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode + in 64-bit mode only. Use only for 32-bit or MEDLOW. + +2002-04-12 Rainer Orth + + * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings. + +Fri Apr 12 15:42:59 2002 Jeffrey A Law (law@redhat.com) + + * pa.c (pa_can_combine_p): Call extract_insn before calling + constrain_operands. + +2002-04-12 Douglas B Rupp + + * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define. + (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define. + (DEFAULT_PCC_STRUCT_RETURN): Define as 0. + (CPP_PREDEFINES): Handle __declspec. + * config/i386/t-interix (USER_H): Remove. + +2002-04-12 DJ Delorie + + * integrate.c (compare_blocks): Make comparisons safe for when + sizeof(int) < sizeof(char *). + (find_block): Likewise. + +2002-04-12 Jan Hubicka + David Edelsohn + + * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT + registers. + (symbol_ref_operand): New. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand. + * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand. + +2002-04-12 Andreas Schwab + + * config/ia64/ia64.h (ASM_SPEC): Moved from here ... + * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it + overrides the definition in config/svr4.h. + +2002-04-12 Eric Norum + + * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, + config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h, + config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h, + config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h, + config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h, + config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h, + config/v850/rtems.h (*-rtems*): Cleanup pass to move common + definitions to config/rtems.h and make the targets more similar. + +Fri Apr 12 08:06:54 2002 Richard Kenner + + * expr.c (expand_assigment): Remove duplicate conversions #ifdef + POINTERS_EXTEND_UNSIGNED. + (store_constructor, expand_expr, case COMPONENT_REF): Likewise. + (store_expr): Use TYPE_MODE (sizetype), not ptr_mode. + + * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET + not specified. + +Fri Apr 12 12:11:26 2002 J"orn Rennecke + + * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG + depends on TARGET_SHMEDIA, not TARGET_SH5. + +2002-04-12 Hans-Peter Nilsson + + * function.c (fixup_var_refs_1) : + For paradoxical (subreg VAR), replace VAR, don't try the subreg. + +Fri Apr 12 10:51:38 2002 J"orn Rennecke + + * sh.c (broken_move): Constant 0. / 1. load is OK if there is + no r0 clobber. + +2002-04-12 Andreas Schwab + + * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash. + +2002-04-12 Richard Henderson + + PR bootstrap/4191 + * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef. + + * flow.c (mark_used_reg): Manage reg_cond_dead properly for + modes spanning multiple hard regs. + + * recog.c (peephole2_optimize): Rebuild jump labels as needed. + +2002-04-11 John David Anglin + + * pa.c (pa_output_function_prologue): Don't accumulate the total + number of code bytes when using TARGET_64BIT, or gas, SOM and not + the portable runtime. + (output_deferred_plabels): Handle 64bit plabels. + (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when + generating pic code using the GAS assembler for object formats that + are not SOM (ie., ELF32 and ELF64). + (output_millicode_call): Check attribute type if attribute length is 28. + Likewise use $PIC_pcrel$0. Only call get_attr_length and + dbr_sequence_length once. + (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and + dbr_sequence_length once. + * pa.h (TARGET_SOM): Define if not defined. + * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0 + with GAS and not SOM. + (jump, call_internal_reg, call_value_internal_reg): Likewise. + * som.h (OBJ_SOM): Rename to TARGET_SOM. Undefine before defining. + +2002-04-11 David O'Brien + + * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value. + (DEFAULT_PCC_STRUCT_RETURN) Do not redefine. + (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP, + DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): + elfos.h and dbxelf.h values are fine now. + * config/i386/freebsd.h, config/alpha/freebsd.h + (DEFAULT_PCC_STRUCT_RETURN): Define to 0. + +2002-04-11 David O'Brien + + * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__ + or set Acpu or Amachine. Reformat. + (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not + define. + (LINK_SPEC): Do not need to undef. + * config/ia64/elf.h (ASM_EXTRA_SPEC): Define. + * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef. + (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not + define. + * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define. + (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead. + (LINK_SPEC): Do not need to undef. + (DONT_USE_BUILTIN_SETJMP): Do not define. + * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add. + (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine. Remove -Dia64. + (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define. + Remove trailing spaces. + * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__, + __ELF__, or set Acpu or Amachine. Reformat. + (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not + define. + +2002-04-11 David O'Brien + + * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match + all other *-*-freebsd* targets. + +2002-04-11 Richard Henderson + + * config.gcc (alpha*-*-linux*ecoff): Detect and reject. + +2002-04-11 David O'Brien + + * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms): + Include {cpu}/{cpu}.h thru tm_file. + (alpha*-*-linux*ecoff): Remove target. + * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__. + (LINK_SPEC): Remove, is not OS independent. + * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__. + (LINK_SPEC): Do not need to #undef any longer. + * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef + any longer. + * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define + __ELF__. + (LINK_SPEC): Moved here from alpha/elf.h. + * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of + SUB_CPP_PREDEFINES. + * config/alpha/linux-ecoff.h: Remove. + * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__. + (CPP_SPEC): Define _POSIX_SOURCE as needed. + (CPP_SUBTARGET_SPEC): Do not define. + (LINK_SPEC): Do not need to #undef any longer. + * config/alpha/openbsd.h: Do not directly include alpha/alpha.h. + * config/alpha/vms.h: Likewise. + +2002-04-11 Richard Sandiford + + * doc/extend.texi: Remove old claim that typedefs cannot have + an alignment attribute. + +2002-04-11 Jakub Jelinek + + PR optimization/6177 + * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if + bitpos is 0 and bitsize CONCAT size. + +2002-04-11 Jakub Jelinek + + PR c/6223 + * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz. + +2002-04-10 David O'Brien + + * config/alpha/freebsd.h: Minor reformatting. + (CPP_SPEC): Define ELF and add cpp_subtarget. + (ASM_SPEC): No longer needed. + +2002-04-11 Richard Henderson + + * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative. + (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory. + (dimode mem/zero splitter): New. + +2002-04-11 Hans-Peter Nilsson + + * config/cris/cris.c (cris_override_options): Tweak error message + for PIC not implemented. + + * config/cris/cris.h: Tweak comments related to parameter-passing. + + * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here. + +2002-04-10 Richard Henderson + + * except.c (add_ehl_entry): Allow duplicates after landing pad + creation. + +2002-04-10 David Edelsohn + + * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64. + +2002-04-10 Toon Moene + + * c-decl.c (c_init_decl_processing): Move generation of + decls for g77_integer_type_node and friends from here ... + * c-common.c (c_common_nodes_and_builtins): ... to here. + +2002-04-10 Ulrich Weigand + + * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM + is only used as frame pointer when frame_pointer_needed is true. + +2002-04-10 Richard Earnshaw + + PR target/817 + * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow + for the fact that the pool entry uses two words. + (movdf_hard_insn): Similarly. Also, ADR instruction can span + 1k bytes. + (movdf_soft_insn): Similarly. + (movxf_hard_insn): Adjust neg_pool_range attribute to allow + for the fact that the pool entry uses three words. + +2002-04-10 Richard Sandiford + + * config/mips/mips.c (mips_va_arg): When using the struct version + of the EABI va_list, allow arguments in the register save area to + take up less room than a stack argument. + +2002-04-10 Richard Henderson + + * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers + if EXPAND_INITIALIZER. + +2002-04-09 Richard Henderson + + * config/alpha/alpha.md (movdi_er_maybe_g): New. + * config/alpha/alpha.c (alpha_expand_mov): Use it. + +2002-04-10 Alan Modra + + PR optimization/6233 + * rtlanal.c (pure_call_p): New function. + * rtl.h (pure_call_p): Declare. + * loop.c (prescan_loop): Use it to set has_nonconst_call. + * gcse.c (store_killed_in_insn): Use pure_call_p here too. + +2002-04-09 Eric Christopher + + * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional + information to .comm directive. + +2002-04-09 Richard Henderson + + PR c/5078 + * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers. + +2002-04-09 Richard Henderson + + * basic-block.h (flow_delete_block_noexpunge): Declare. + (expunge_block_nocompact): Declare. + * cfg.c (expunge_block_nocompact): Split out from ... + (expunge_block): ... here. + * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels. + (flow_delete_block_noexpunge): Split out from ... + (flow_delete_block): ... here. + * cfgcleanup.c (delete_unreachable_blocks): Compact while + removing dead blocks. + * except.c (exception_handler_labels): Remove. + (exception_handler_label_map): New. + (struct eh_region): Add aka member. + (mark_ehl_map_entry, mark_ehl_map, free_region): New. + (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New. + (for_each_eh_label, for_each_eh_label_1): New. + (init_eh): Register exception_handler_label_map. + (free_eh_status): Use free_region. + (find_exception_handler_labels): Use the map, not the list. + (remove_exception_handler_label): Likewise. + (maybe_remove_eh_handler): Likewise. + (remove_eh_handler): Use the region aka bitmap. + * except.h (exception_handler_labels): Remove. + (for_each_eh_label): Declare. + * jump.c (rebuild_jump_labels): Don't check exception_handler_labels. + * loop.c (invalidate_loops_containing_label): New. + (find_and_verify_loops): Use it. Use for_each_eh_label. + * sched-rgn.c (is_cfg_nonregular): Use + current_function_has_exception_handlers. + +2002-04-09 Richard Henderson + + * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b, + sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c): + Do not return changed status. + (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg, + sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg): + New functions that do return changed status. + * sbitmap.h: Update decls. + * gcse.c, lcm.c: Use _cg functions as needed. + +Tue Apr 9 19:15:57 2002 J"orn Rennecke + + * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h. + (sh64-*-elf*, sh-*-rtemself*): Likewise. + * config/sh/embed_bb.c: New file. + * config/sh/embed-elf.h: New file. + * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__ + if -m[12345]* option is given. Don't use subtarget_cpp_ptr_spec. + (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and + __PTRDIFF_TYPE__ . + (SUBTARGET_CPP_PTR_SPEC): Don't define. + (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec. + Add subtarget_asm_endian_spec. + (ASM_SPEC): Use subtarget_asm_endian_spec. + (SUBTARGET_ASM_ENDIAN_SPEC): Define. + (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5. + (WCHAR_UNSIGNED): Define. + (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define. + (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER. + (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5. + Fix value. + * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5. + (sh_adjust_cost): Likewise. + sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and + __PTRDIFF_TYPE__ . + (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define. + (WCHAR_TYPE_SIZE): Likewise. + (ASM_SPEC): Use subtarget_asm_endian_spec. + (SH_ELF_WCHAR_TYPE): #undef/ #define. + (MAX_WCHAR_TYPE_SIZE): Don't #undef. + * config/sh/elf.h (WCHAR_UNSIGNED): #undef . + (MAX_WCHAR_TYPE_SIZE): Don't #define . + (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define . + (USER_LABEL_PREFIX): Don't #undef /#define . + (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER. + * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define . + (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise. + (ASM_SPEC): Likewise. + (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define . + (CC1_SPEC): don't supply -m3 for -m4*, -m5*. + * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE. + (LIB2FUNCS_EXTRA): Define. + * t-sh64 (LIB2FUNCS_EXTRA): Define. + * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine. + (LIB1ASMFUNCS_CACHE): Define. + (LIB2FUNCS_EXTRA): Redefine empty. + +2002-04-08 Richard Henderson + + * reorg.c (get_branch_condition): Use reversed_comparison_code. + +2002-04-09 Stephane Carrez + + * config/m68hc11/larith.asm (__map_data_section): Fix condition + and optimize for size. + (__do_global_ctors): Fix pointer comparison. + (__do_global_dtors): Likewise. + +2002-04-09 David S. Miller + + * config/sparc/sparc.c (sparc_extra_constraint_check): New + function, implementing EXTRA_CONSTRAINTS. For memory constraints, + allow reloading pseudos. + * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it. + * config/sparc/sparc-protos.h: Declare it. + + * config/sparc/sparc.c (const64_is_2insns): Kill signed vs. + unsigned comparison warning. + (output_restore_regs): Mark leaf_function as unused. + +Tue Apr 9 09:35:45 2002 Richard Kenner + + * expr.c (is_aligning_offset): New function. + (expand_expr, case COMPONENT_EXPR): Call it. + +2002-04-08 David S. Miller + + PR target/6082 + * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW + + Make init_priority work on SPARC when using GNU ld. + * config/sparc/linux.h, config/sparc/linux64.h, + config/sparc/netbsd-elf.h, config/sparc/freebsd.h + (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine. + * config/sparc/sol2-gld.h: New file to do the same. + * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add + sparc/sol2-gld.h to tm_file. + + PR optimization/4328 + * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'. + * doc/md.texi: Document it. + * config/sparc/sparc.md (movdi_insn_sp64_novis, + movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis, + movdf_insn_v9only_vis, movdf_insn_sp64_novis, + movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers. + * config/sparc/sparc.c (mem_min_alignment): Fix comment. + +2002-04-08 Andreas Jaeger + + * stmt.c (expand_asm_operands): Revert last patch from Richard + Henderson. + +2002-04-08 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add John David Anglin and Loren + J. Rittle (the latter also to Testers). Update David O'Brien's entry. + +2002-04-08 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add David O'Brien. + +2002-04-08 Alan Modra + + * configure.in (auto-build.h): Use target_alias and build_alias + when running configure. + (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too. + (gcc_cv_nm, gcc_cv_objdump): Set for build != host too. + * configure: Regenerate. + +2002-04-07 David S. Miller + + * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file. + +2002-04-07 John David Anglin + + PR 5933 + * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when + generating 32-bit pic code. + +2002-04-06 Jason Thorpe + + * cppinit.c (cpp_create_reader): Initialize + discard_comments_in_macro_exp. + (COMMAND_LINE_OPTIONS): Add "-CC" option. + (cpp_handle_option): Handle "-CC" option. + * cpplex.c (save_comment): If saving a C++ comment in + a directive, convert it to a C comment. + (_cpp_lex_direct): Pass second comment start character to + save_comment to indicate comment type. + * cpplib.c (_cpp_handle_directive): If processing + a "#define" directive and discard_comments_in_macro_exp + is false, re-enable saving of comments. + (lex_macro_node): If discard_comments_in_macro_exp is false, + discard any comments before the macro identifier. + * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp + member. + * cppmacro.c (cpp_get_token): If expanding a macro while + processing a directive, discard any comments we might encounter. + (parse_params): If discard_comments_in_macro_exp is false, + ignore comments in the macro parameter list. + * gcc.c (cpp_unique_options): Add "-CC" option. + (option_map): Map "--comments-in-macros" to "-CC". + * doc/cppopts.texi: Document "-CC" option. + * f/lang-specs.h: Add "-CC" option. + * testsuite/gcc.dg/cpp/maccom1.c: New test. + * testsuite/gcc.dg/cpp/maccom2.c: New test. + * testsuite/gcc.dg/cpp/maccom3.c: New test. + * testsuite/gcc.dg/cpp/maccom4.c: New test. + * testsuite/gcc.dg/cpp/maccom5.c: New test. + * testsuite/gcc.dg/cpp/maccom6.c: New test. + +2002-04-06 John David Anglin + + PR middle-end/6180 + * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes. + +2002-04-06 Mark Mitchell + + PR c++/5571 + * stor-layout.c (layout_decl): Reset the RTL for the decl. + + PR opt/5120 + * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear + RTX_UNCHANGING_P for the functions arguments when a tail call + is made. + +2002-04-06 Jason Merrill + + * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2. + (parse_options_and_default_flags): Set them appropriately. + * c-common.c (c_common_post_options): Don't set flag_really_no_inline. + +2002-04-06 Hans-Peter Nilsson + + * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc + here. + + * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious + semicolon. + + * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size + types come in by-reference. Fix typo in comment. + +2002-04-05 David S. Miller + + * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits. + * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos, + sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*, + {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file. + +2002-04-05 David S. Miller + + * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we + are not going to emit return instructions, emit at least a nop + for the sake of sane backtraces. + +2002-04-05 Richard Henderson + + * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)). + +2002-04-05 Jakub Jeilnek + + * mklibgcc.in: Use $tmpmapfile, not tmp-$@. + +2002-04-05 Alexandre Oliva + + * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, + ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB, + ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16. + +2002-04-05 Andreas Schwab + + * c-convert.c: Include c-common.h. + * Makefile.in (c-convert.o): Updated. + +2002-04-05 Jakub Jelinek + + * mklibgcc.in: Use separate libgcc.map for each multilib. + * Makefile.in (distclean): Don't remove libgcc.map here. + +2002-04-05 Jakub Jelinek + + * Makefile.in (s-mlib): Handle --disable-multilib by separate + genmultilib invocation. + +2002-04-04 Richard Sandiford + + * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs + to avoid clash with Irix header file sys/ucontext.h. Rename gp_regs + to num_gprs for symmetry. + * config/mips/mips.c: Adjust accordingly. + +2002-04-04 Neil Booth + + * c-common.c (truthvalue_conversion): Rename, update. + * c-common.h (c_common_truthvalue_conversion): New. + * c-convert.c (convert): Update. + * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. + * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update. + * c-typeck.c (build_binary_op, build_unary_op, + build_conditional_expr): Update. + * fold-const.c (constant_boolean_node, fold): Use langhook. + * langhooks-def.h (LANGHOOK_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New hook. + * stmt.c (expand_decl_cleanup): Use langhook. + * tree.h (truthvalue_conversion): Remove. +objc: + * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. + +2002-04-05 Alan Modra + + * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o + Add rules to make null object file. + +2002-04-04 Jim Blandy + + * cppmacro.c (cpp_macro_definition): Do not emit spaces after + macro formal parameter names. + +2002-04-04 David S. Miller + + * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg. + +2002-04-04 Richard Henderson + + PR middle-end/5099 + * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok. + Support copies into and out of memory. Don't accept allows_reg + and allows_mem as gospel. + +2002-04-04 Richard Henderson + + PR opt/6165 + * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict. + (write_dependence_p): Likewise. + +2002-04-04 Richard Henderson + + * predict.c (estimate_bb_frequencies): Do frequency calculation + with a volatile temporary. + +2002-04-04 Ulrich Weigand + + * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define. + +2002-04-04 Jakub Jelinek + + PR c++/6119 + * final.c (final_start_function): Don't bump profile_label_no here... + (final_end_function): ...but here. + +2002-04-04 Jakub Jelinek + + * config/sparc/sparc.md (pic): New attribute. + (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9 + into stack slots. + (split after do_builtin_setjmp_setup): New. + +2002-04-04 Jakub Jelinek + + PR fortran/6106 + * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01 + change. + +2002-04-04 Jakub Jelinek + + * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by + UNITS_PER_WORD for zero sized aggregates. + +2002-04-03 David S. Miller + + * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new + one-character spec for this, just use %(link_gcc_c_sequence). + +2002-04-03 David S. Miller + + * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian + handling. + +2002-04-03 John David Anglin + + * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move. + (DWARF_FRAME_RETURN_COLUMN): Move. + (ASM_PREFERRED_EH_DATA_FORMAT): Define. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define. + * pa.c (except.h, predict.h): Include. + (FRP): Delete. + (store_reg_modify, set_reg_plus_d): Revise prototypes. + (output_ascii): Add cast. + (store_reg_modify): Revise to add frame notes. + (set_reg_plus_d): Likewise. + (compute_frame_size): Include space for eh data registers in frame if + the current function calls eh_return. + (hppa_expand_prologue): Ensure register %r2 is saved if the current + function calls eh_return. Save eh data registers if the current + function calls eh_return. Fix code to add frame notes. Emit + blockage to prevent insns with frame notes being scheduled in the + delay slot of calls. + (hppa_expand_epilogue): Restore eh data registers and do final stack + adjustment if the current function calls eh_return. Don't add frame + notes. + (output_call): Revise for change in length of call insn. Don't do + return pointer adjustment for an unconditional jump in the delay slot + of a call when using frame notes. + * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility. + (EH_RETURN_HANDLER_RTX): Use saved value on stack. + (ARG_POINTER_CFA_OFFSET): Define. + * pa.md (return_external_pic): New pattern. + (prologue): Correct formatting. Use return_external_pic if current + function calls eh_return. + (call_internal_symref, call_value_internal_symref, + sibcall_internal_symref, sibcall_value_internal_symref): Change default + lengths of short, long non-pic, and long pic calls to 8, 68, and 84, + respectively. + (exception_receiver): Use hppa_pic_save_rtx () to restore pic register. + + * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to + list of targets to check using "nop" insn. + * configure: Rebuilt. + +2002-04-04 Alan Modra + + * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define. + +2002-04-03 David S. Miller + + * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c + library sequence passed to the linker. + (LINK_COMMAND_SPEC): Use it. + * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as + a macro a target can use to avoid overriding LINK_COMMAND_SPEC. + * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define. + +2002-04-03 Jason Merrill + + * except.c (struct eh_status): Remove protect_list. + (begin_protect_partials, end_protect_partials): Remove. + (add_partial_entry): Remove. + * except.h: Remove prototypes. + + * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use + expand_decl_cleanup_eh. + + PR c++/5636 + * tree.h (CLEANUP_EH_ONLY): New macro. + * stmt.c (expand_decl_cleanup_eh): New fn. + (expand_cleanups): Check CLEANUP_EH_ONLY. + * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT. + Use expand_decl_cleanup_eh. + (expand_stmt): Adjust. + * c-common.h: Adjust prototype. + +2002-04-04 Hans-Peter Nilsson + + * config/cris/cris.c (cris_target_asm_function_prologue): Cast + uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings. + (cris_target_asm_function_epilogue): Ditto. + (cris_initial_frame_pointer_offset): Ditto. + (cris_simple_epilogue): Ditto. + (cris_expand_builtin_va_arg): Variable-size types come in + by-reference. + +2002-04-03 David S. Miller + + * config/sparc/crtfastmath.c (FPRS_NS): Get it right for + little-endian. + (set_fast_math): Correct 'fsr' type. + +2002-04-03 Richard Henderson + + PR opt/3569 + * langhooks.h (lang_hooks.decls.warn_unused_global): New. + * toplev.c (check_global_declarations): Use it. + * langhooks-def.h (lhd_warn_unused_global_decl): Declare. + (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. + (LANG_HOOKS_DECLS): Add it. + * langhooks.c (lhd_warn_unused_global_decl): New. + * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. + * c-objc-common.c (c_warn_unused_global_decl): New. + * c-tree.h (c_warn_unused_global_decl): Declare. + * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. + +2002-04-03 Neil Booth + + * langhooks-def.h (lhd_set_decl_assembler_name, + LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c + * langhooks.h (struct lang_hooks): New hook. + * tree.c (set_decl_assembler_name): Move to langhooks.c. + (lang_set_decl_assembler_name): Remove. + (init_obstacks): Don't set hook. + (decl_assembler_name): New function. + * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call. + (decl_assembler_name): New. + (lang_set_decl_assembler_name): Remove. + +2002-04-03 Jakub Jelinek + + * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32() + works properly with .hidden symbols. + * configure: Rebuilt. + * config.in: Rebuilt. + * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use + DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work + properly with .hidden symbols. + +2002-04-03 Jakub Jelinek + + PR middle-end/6102 + * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access + USE argument. + +2002-04-03 Richard Henderson + + PR opt/4120 + * sched-rgn.c (sets_likely_spilled): New. + (sets_likely_spilled_1): New. + (add_branch_dependences): Use it. + +2002-04-02 Richard Henderson + + PR opt/4311 + * loop.h (LOOP_FIRST_PASS): New. + * loop.c (strength_reduce): Mind it when deciding to unroll. + * toplev.c (rest_of_compilation): Set it. + +2002-04-02 David S. Miller + + * config/sparc/sparc.md (ldd peephole2s): Fix final arg to + mems_ok_for_ldd_peep when the order of the loads being examined + is reversed. + * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon + existing comment to increase comprehension of this situation. + +2002-04-02 Zack Weinberg + + * config/sh/sh.md: Don't use union real_extract. + +2002-04-02 Richard Henderson + + * libgcc2.c (__bb_exit_func): Revert 03-31 change. + +2002-04-02 David O'Brien + + * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems, + i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-, + i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1, + i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos, + i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd, + i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf, + i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix, + i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout, + i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32, + i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd, + i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems, + i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv, + i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta, + i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd): + Include as many configury headers via tm_file as possible. This + includes among others i386/unix.h, i386/bsd.h, i386/gas.h. + * config/openbsd-oldgas.h: New file. + * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h, + config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h, + config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h, + config/i386/i386-coff.h, config/i386/i386-interix.h, + config/i386/iscdbx.h, config/i386/linux-aout.h, + config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h, + config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h, + config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h, + config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h, + config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h, + config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h, + config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h, + config/i386/vxi386.h: Do not directly include configury headers. + * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h: + Directly include configury headers that are no longer automatically + included by the above headers. + * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define. + * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h, + config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h, + config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h, + config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h, + config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h, + config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h + (TARGET_VERSION): Define. + * config/i386/beos-elf.h, config/i386/freebsd.h, + config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h, + config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h, + config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h, + config/i386/sco5.h, config/i386/sysv4.h + (TARGET_VERSION): Do not need to protect. + * config/i386/freebsd64.h (TARGET_VERSION): Fix style. + * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h, + config/i386/freebsd-aout.h, config/i386/i386-aout.h, + config/i386/i386-interix.h, config/i386/linux-aout.h, + config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h, + config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h + (YES_UNDERSCORES): Do not define - not needed. + * config/i386/bsd.h, config/i386/gas.h (LPREFIX, + ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL, + USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case. + * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h + (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL, + USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case) + * config/i386/isc.h: Preserve comment from config/i386/isccoff.h. + * config/i386/isccoff.h, config/i386/v3gas.h: Remove. + +2002-04-02 Eric Botcazou + Richard Henderson + + PR c/5484 + * function.c (assign_temp): Accept either type or decl argument. + Detect variables whose size is too large to fit into an integer. + * stmt.c (expand_decl): Pass the decl, not the type. + +2002-04-02 David O'Brien + + * protoize.c: Match include directory usage with cppdefault.c. + +2002-04-03 Jeffrey A Law (law@redhat.com) + Hans-Peter Nilsson + + * combine.c (simplify_comparison): Avoid narrowing a comparison + with a paradoxical subreg when doing so would drop signficant bits. + +2002-04-02 Steve Ellcey + + * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode + if POINTERS_EXTEND_UNSIGNED is defined. + +2002-04-02 Richard Henderson + + PR opt/3967 + * local-alloc.c (contains_replace_regs): LO_SUM may contain + replace regs. + +2002-04-02 Richard Henderson + + * doc/standards.texi: Document required freestanding libc entry points. + +2002-04-02 Alan Modra + + * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and + associated splitter. Remove MQ constraint. + (ctrdi_internal4): Correct CCmode clobber. + +2002-04-02 John David Anglin + + * milli64.S ($$dyncall): New function. + * t-linux (LIB1ASMFUNCS): Revise module list. + (LIB1ASMSRC): Use pa/milli64.S. + +2002-04-02 Richard Henderson + + * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and + rename solaris_sys_varargs_h. + +Tue Apr 2 06:47:40 2002 Richard Kenner + + * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array + the same mode as its component. + +2002-04-02 Richard Henderson + + PR opt/190 + * final.c (this_is_asm_operands): Export. + * output.h (this_is_asm_operands): Declare. + * config/i386/i386.c (print_operand): Error odd asm operands. + +2002-04-02 Richard Henderson + + PR opt/420 + * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra. + +2002-04-01 Richard Henderson + + PR target/1538 + * fixinc/inclhack.def (solaris_sys_varargs_h): New. + * fixinc/fixincl.x: Rebuild. + +2002-04-01 Richard Henderson + + * config/ia64/unwind-ia64.c: Include ia64intrin.h. + (atomic_alloc, atomic_free): New. + (SIZE, MASK_FOR, PTR_IN): New. + (emergency_reg_state, emergency_reg_state_free): New. + (emergency_labeled_state, emergency_labeled_state_free): New. + (reg_state_alloced, labeled_state_alloced): New. + (alloc_reg_state, free_reg_state): New. + (alloc_label_state, free_label_state, free_label_states): New. + (push, pop, dup_state_stack, free_state_stack): Use them. + (desc_label_state): Likewise. + (uw_frame_state_for): Free label states and state stack. + (uw_update_reg_address): Eliminate warnings. + +2002-04-01 Vladimir Makarov + + * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON, + ASM_OUTPUT_ALIGNED_LOCAL): Redefine them. + +2002-04-01 Neil Booth + + * c-decl.c (grokdeclarator): Update. + * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. + * c-tree.h (c_mark_addressable): New. + * c-typeck.c (default_function_array_conversion, build_unary_op, + build_array_ref, convert_for_assignment): Update. + (mark_addressable): Rename. + * calls.c (try_to_integrate, expand_call): Use langhook. + * expr.c (expand_expr): Use langhook. + * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New hook. + * stmt.c (expand_asm_operands): Use langhook. + * tree.h (mark_addressable): Remove. +objc: + * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. + +2002-04-01 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning + in previous change. + +2002-04-01 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments + for which MUST_PASS_IN_STACK is true (e.g., variable-sized types). + +2002-04-01 Neil Booth + + * c-common.c (unsigned_conversion_warning, convert_and_check, + unsigned_type, signed_type, shorten_compare, + c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks. + (unsigned_type, signed_type, signed_or_unsigned_type): Rename. + * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type): + New. + * c-decl.c (grokdeclarator): Update. + * c-format.c (check_format_types): Update. + * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, + LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. + * c-typeck.c (build_binary_op, convert_for_assignment): Update. + * convert.c (convert_to_integer): Use new hooks. + * expmed.c (make_tree): Use new hooks. + * expr.c (store_expr): Use new hooks. + * fold-const.c (operand_equal_for_comparison_p, build_range_check, + all_ones_mask_p, unextend, fold): Use new hooks. + * langhooks.h (struct lang_hooks_for_types): New hooks. + * tree.h (signed_or_unsigned_type, signed_type, + unsigned_type): Remove. +objc: + * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, + LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. + +2002-03-31 Richard Henderson + + * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset. + (desc_frgr_mem): Fix reference to f16-f31. + +2002-03-31 Kaveh R. Ghazi + + * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2, + RTVEC_ELT): Const-ify. + * varray.h (VARRAY_CHECK): Const-ify. + * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree, + ggc_mark_rtvec, ggc_mark): Const-ify. + +2002-04-01 Neil Booth + + * diagnostic.c: Include langhooks-def.h. + * Makefile.in (diagnostic.o): Update. + +2002-03-31 Neil Booth + + * c-common.c (c_unsafe_for_reeval): Rename. + * c-common.h (c_unsafe_for_reeval): Rename. + * c-decl.c (finish_incomplete_decl): Rename. + (c_init_decl_processing): Don't set langhook. + * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL, + LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. + * c-objc-common.c (c_objc_common_init): Don't set langhook. + * c-tree.h (finish_incomplete_decl): Rename. + * langhooks-def.h (lhd_unsafe_for_reeval): New. + (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_unsafe_For_reeval): New. + * langhooks.h (struct langhooks): New hooks. + * toplev.c (incomplete_decl_finalize_hook): Remove. + (wrapup_global_declarations): Update. + * tree.c (lang_unsafe_for_reeval): Remove. + (unsafe_for_reeval): Update. + * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook): + Remove. +objc: + * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL, + LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. + +2002-03-31 Neil Booth + + * diagnostic.c (print_error_function): Remove. + (default_print_error_function): Rename. + (report_error_function): Update. + * diagnostic.h (print_error_function): Remove. + (default_print_error_function): Remove. + * langhooks-def.h (struct diagnostic_context): Predeclare. + (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct diagnostic context): Predeclare. + (struct lang_hooks): New hook. + +2002-03-31 Franz Sirl + + * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New. + (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if + !flag_pic. + (CONDITIONAL_REGISTER_USAGE): Adjust accordingly. + * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead + of PIC_OFFSET_TABLE_REGNUM thruout. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/darwin.h: Likewise. + +Sun Mar 31 14:43:24 2002 Richard Kenner + + * emit-rtl.c (adjust_address_1, offset_address): Cast value to + unsigned HOST_WIDE_INT, not unsigned int. + +2002-03-31 Jakub Jelinek + + PR middle-end/6096, middle-end/6098, middle-end/6099 + * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for + CODE_LABELs. + (fill_slots_from_thread): Likewise. + +2002-03-31 Jakub Jelinek + + * config/sparc/sparc.c (function_arg_record_value_1): Pass complex + floating fields in float regs. + (function_arg_record_value_2): Likewise. + +2002-03-31 Hans-Peter Nilsson + + * config/mmix/mmix.md (define_constants): Remove misleading + FIXME. Add MMIX_fp_rO_OFFSET. + ("nonlocal_goto_receiver"): Don't have stack-frame address of + saved rO as part of the pattern. Remove FIXME. + ("*nonlocal_goto_receiver_expanded"): Similar. Generate address + here, at output-time. + +2002-03-31 Jakub Jelinek + + PR middle-end/6100 + * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not + REG_BR_PRED. + (output_v9branch): Likewise. + +2002-03-31 Alexandre Oliva + + * gcc.c: Revert previous patch for now. + * config/i386/djgpp.h: Likewise. + +2002-03-31 Hans-Peter Nilsson + + * config/mmix/crti.asm (_init): Register _fini with atexit. + * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0". + +2002-03-31 Richard Henderson + + PR target/3997 + * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy. + (ASM_OUTPUT_DEF_FROM_DECLS): New. + +2002-03-31 Richard Henderson + + * libgcc2.c (__bb_exit_func): Make static. + + * config/alpha/alpha.md (trap): New. + +2002-03-31 Richard Henderson + + * builtins.c (expand_builtin_va_arg): Give warnings not errors for + promoted argument types; build trap. + (expand_builtin_trap): New. + (expand_builtin): Use it. + * stmt.c (expand_nl_goto_receivers): Likewise. + * expr.h (expand_builtin_trap): Declare. + * libfuncs.h (LTI_abort, abort_libfunc): New. + * optabs.c (init_optabs): Init abort_libfunc. + +2002-03-31 Alexandre Oliva + + * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here... + (LINK_COMMAND_SPEC): ... from here. + (init_gcc_specs): Duplicate it here too, omitting + shared_name in the second copy. + (init_spec): Test for duplicate + * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'. + +2002-03-30 David S. Miller + + * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise. + +2002-03-30 Roger Sayle + Richard Henderson + + * regmove.c (combine_stack_adjustments_for_block): Avoid + emitting a stack adjustment of zero bytes. Let delete_insn + update bb->head. + +2002-03-30 Richard Henderson + + * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE. + (sparc_emitting_epilogue): New. + (leaf_label, output_return, sparc_return_peephole_ok): Remove. + * config/sparc/sparc-protos.h: Update. + * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove. + (TARGET_SWITCHES): Update. + * config/sparc/sparc.md (return): Remove. + (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE. + * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, + config/sparc/liteelf.h, config/sparc/netbsd-elf.h, + config/sparc/sol2-sld-64.h, config/sparc/sol2.h, + config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, + config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, + config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): + Remove MASK_EPILOGUE. + * doc/invoke.texi: Update. + +2002-03-30 Daniel Berlin + + * dwarf2out.c (dwarf2out_define): Remove start_source_file call, + CPP will start the file for us. + +2002-03-30 Richard Henderson + + PR target/5446 + * config/ia64/ia64.c (group_barrier_needed_p): Special case + prologue_allocate_stack. + (ia64_single_set): Use insn codes for recognition of special + cases, not rtl matching. + * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out. + +Sat Mar 30 23:48:41 CET 2002 Jan Hubicka + + * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks. + +2002-03-30 Richard Henderson + + PR target/6032 + * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic + or -fomit-frame-pointer with profiling. + (SUBTARGET_OVERRIDE_OPTIONS): Remove. + (FUNCTION_PROFILER): Do nothing. + (PROFILE_HOOK): New. + * config/sparc/sparc.c (sparc_override_options): Don't check + code models for profiling. + (sparc_function_profiler): Remove. + (sparc_profile_hook): New. + * config/sparc/sparc-protos.h: Update. + +2002-03-30 Jakub Jelinek + + PR optimization/6086 + * combine.c (combine_simplify_rtx): If simplify_rtx failed because + of SUBREG of volatile MEM or because the MEM was mode dependent, + return CLOBBER instead of unmodified SUBREG. + +Sat Mar 30 14:08:55 CET 2002 Jan Hubicka + + * local-alloc.c (local_alloc): Avoid call of update_equiv_regs + when not optimizing. + + * toplev.c (rest_of_compilation): Cann mark_constant_function + only when optimizing. + + * flow.c (calculate_global_regs_live): Ensure that all AUX fields + are NULL. + + * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK. + (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it. + (try_optimize_cfg): clear all AUX fields. + + * 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. + +2002-03-29 Richard Henderson + + PR target/5672 + * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place. + +2002-03-29 Franz Sirl + + * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count + for aggregate and TFmode types. + +2002-03-29 Hans-Peter Nilsson + + * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i]. + +2002-03-29 Richard Henderson + + PR target/5886 + * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64. + * config/ia64/hpux.h, config/ia64/linux.h: Likewise. + +2002-03-29 Richard Henderson + + PR target/6041 + * config/i386/i386.c (x86_arch_always_fancy_math_387): New. + (override_options): Disable NO_FANCY_MATH_387 if the arch allows. + * config/i386/i386.h (x86_arch_always_fancy_math_387): New. + * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix + conditional. + * docs/invoke.texi: Update -mno-fancy-math-387 docs. + +2002-03-29 Dale Johannesen + + * loop.c (combine_movables): Do allow combination of pseudos. + +2002-03-29 Loren J. Rittle + + * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so. + * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it. + No functional change except ... + * config/t-slibgcc-nolc-override (SHLIB_LC): Override it. New file. + * doc/install.texi (*-*-freebsd*): Document port configuration. + +2002-03-29 Neil Booth + + * Makefile.in (convert.o, calls.o, expmed.o): Update. + * attribs.c (handle_mode_attribute, handle_vector_size_attribute): + Use new hooks. + * builtin-types.def (BT_PTRMODE): Update. + * c-common.c (type_for_size): Rename c_common_type_for_size. + (type_for_mode): Similarly. + (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins): + Use new hook. + * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New. + * c-decl.c (finish_enum, build_enumerator): Use new hooks. + * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): + Redefine. + * c-typeck.c (common_type, comptypes, default_conversion): + Use new hooks. + * calls.c: Include langhooks.h. + (emit_library_call_value_1): Use new hooks. Avoid redundant + calls. + * convert.c: Include langhooks.h + (convert_to_pointer, convert_to_integer): Use new hooks. + * except.c (init_eh): Similarly. + * expmed.c: Include langhooks.h. + (expand_mult_add): Use new hooks. + * expr.c (store_expr, store_constructor, expand_expr, do_jump, + try_casesi): Similarly. + * fold-const.c (optimize_bit_field_compare, make_range, + decode_field_reference, fold_truthop, fold): Similarly. + * function.c (assign_stack_local_1, assign_stack_temp_for_type, + put_var_into_stack): Similarly. + * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE, + LANG_HOOKS_TYPE_FOR_SIZE): New. + (LANG_HOOKS_TYPES_INITIALIZER): Update. + * langhooks.h (lang_hooks_for_types): New hooks. + * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks. + * tree.c (get_unwidened, get_narrower): Similarly. + * tree.h (type_for_mode, type_for_size): Remove. + * varasm.c (force_const_mem): Use new hooks. + * utils2.c (nonbinary_modular_operation): Update. +objc: + * objc-act.c (handle_impent): Update. + * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE): + Redefine. + +2002-03-29 Steve Ellcey + + * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New. + * config/ia64/ia64.c (basereg_operand): New. + * config/ia64/ia64-protos.h (basereg_operand): Declare. + * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand. + +2002-03-29 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct + unwind information when frame_pointer_needed. + (mmix_assemble_integer): Tweak wording in comment. + +2002-03-29 Neil Booth + + * Makefile.in (except.o): Update. + * except.c: Include langhooks.h. + (init_eh): Use langhook. + * langhooks-def.h (LANG_HOOKS_MAKE_TYPE, + LANG_HOOKS_FOR_TYPES_INITIALIZER): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (lang_hooks_for_types): New. + (struct lang_hooks): Add it. + * tree.c (make_lang_type_fn, make_lang_type): Remove. + * tree.h (make_lang_type_fn, make_lang_type): Remove. +config: + * alpha/alpha.c: Include langhooks.h. + (alpha_build_va_list): Use langhook. + * d30v/d30v.c: Include langhooks.h. + (d30v_build_va_list): Use langhook. + * i386/i386.c: Include langhooks.h. + (ix86_build_va_list): Use langhook. + * rs6000/rs6000.c (rs6000_build_va_list): Use langhook. + * s390/s390.c: Include langhooks.h. + (s390_build_va_list): Use langhook. + * stormy16/stormy16.c: Include langhooks.h. + (stormy16_build_va_list): Use langhook. + +2002-03-29 Jakub Jelinek + + PR c++/5964 + * config/sparc/sparc.md (empty_delay_slot, branch_type): New + attributes. + (length): Compute variable length for branches/calls/jumps here. + (branch, inverted_branch, normal_fp_branch, inverted_fp_branch, + normal_fpe_branch, inverted_fpe_branch): Remove length attribute, + define branch_type attribute. + (divsi3_sp32): Maximum length is 6 not 7. + (call_address_struct_value_sp32, call_symbolic_struct_value_sp32, + call_address_untyped_struct_value_sp32, + call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2. + * config/sparc/sparc.c (empty_delay_slot): New function. + * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove. + * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype. + +2002-03-29 Jakub Jelinek + + * combine.c (set_nonzero_bits_and_sign_copies): Don't call + nonzero_bits if not needed. + (nonzero_bits) [XOR]: Likewise. + (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if + reg_last_set_mode and mode are both MODE_INT, but not equal. + (record_value_for_reg): Compute reg_last_set_nonzero_bits + in nonzero_bits_mode for MODE_INT modes. + +2002-03-28 Richard Henderson + + PR target/5715 + * config/alpha/osf.h (ASM_SPEC): Don't pass any special options + to GAS. Correct drift between alternatives. + +2002-03-28 Richard Henderson + + PR target/6087 + * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence. + +2002-03-28 Alexandre Oliva + + * config/i386/freebsd.h (LINK_SPEC): Don't pass default + emulation to the linker. + +2002-03-28 Loren J. Rittle + + * config/alpha/freebsd.h (LINK_SPEC): Likewise. + * config/sparc/freebsd.h (LINK_SPEC): Likewise. + +Thu Mar 28 16:35:31 2002 Jeffrey A Law (law@redhat.com) + + * combine.c (simplify_and_const_int): Make sure to apply mask + when force_to_mode returns a constant integer. PR3311. + +2002-03-28 John David Anglin + + * pa-linux.h (LOCAL_LABEL_PREFIX): Define. + +2002-03-28 Gerald Pfeifer + + * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options + and Objective-C Dialect Options. + +2002-03-28 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE + comparison should be done vs !=0 not >0 return code. Tidy cases. + +2002-03-28 Richard Henderson + + * c-decl.c (finish_function): New arg can_defer_p. Pass it + on to c_expand_body. + * c-tree.h (finish_function): Update decl. + * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls. + +Thu Mar 28 19:13:36 CET 2002 Jan Hubicka + + * ifcvt.c (if_convert): Clear aux_for_blocks early enough. + +Thu Mar 28 13:21:53 CET 2002 Jan Hubicka + + * rtlanal.c: Include flags.h + (may_trap_p): Do not mark FP operations if trapping + if !flag_trapping_math + * Makefile.in (rtlanal.o): Add dependency on flag.h + * ifcvt.c (noce_operand_ok): Avoid the lameness. + +2002-03-27 Zack Weinberg + + * mips.md: Use dconst1, not 1.0, as first argument of + REAL_VALUE_LDEXP. Don't use union real_extract. + +2002-03-28 Alan Modra + + * configure.in (gcc_cv_as): Use $target_alias in directory searchs + rather than $target. Heed program_prefix and + program_transform_name. Search for gas in cross-compiler case too. + "test -x" rather than "test -f". + (gcc_cv_ld): Likewise. + (gcc_cv_nm): Heed program_prefix and program_transform_name. + (gcc_cv_objdump): Likewise. + * configure: Regenerate. + +2002-03-27 Neil Booth + + * Makefile.in (attribs.o): Update. + * attribs.c: Include langhooks.h. + (decl_attributes): Use langhook. + * c-decl.c (insert_default_attributes): Rename. + * c-tree.h (c_insert_default_attributes): New. + * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New hook. + * tree.h (insert_default_attributes): Remove. +objc: + * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. + +2002-03-27 Andreas Schwab + + * config/i386/i386.c (classify_argument): Also check for + QUAL_UNION_TYPE. + +2002-03-27 Rainer Orth + + * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj + any more. + +Wed Mar 27 23:19:30 CET 2002 Jan Hubicka + + * i960.md (ret): Set PC. + (nonlocal_goto): Fix expander. + * builtins.c (epxand_builin_longjmp): Check that we've emitted + some jump or call. + +Wed Mar 27 23:11:35 CET 2002 Jan Hubicka + + * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting + of libcall regions. + +Wed Mar 27 22:54:14 CET 2002 Zdenek Dvorak + + * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of + assigning to BLOCK_FOR_INSN directly. + +Wed Mar 27 22:33:05 CET 2002 Jan Hubicka + + * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround. + +2002-03-27 Neil Booth + + * c-common.c (c_expand_expr): Fix prototype. + * c-common.h (c_expand_expr): Always declare, update. + * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. + * c-objc-common.c (c_objc_common_init): No global hook. + * expr.c (expand_expr): Use langhook. + * expr.h (enum expand_modifier): Conditionally declare. + * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_expand_expr): New. + * langhooks.h (struct lang_hooks): New hook. + * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete. + (lang_independent_init): Don't default hook. +objc: + * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. + +2002-03-27 Richard Henderson + + PR target/6054 + * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for + TARGET_CONST_GP. Simplify conditions. + +2002-03-27 Richard Henderson + + * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h, + config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h, + config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define. + +2002-03-27 Danny Smith + + * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32, + TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches. + (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS): + Remove unnecessary masks. + (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit. + (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin, + -mwindows, -mdll switches and their negations. + +2002-03-27 Neil Booth + + * gcc-common.c (lang_mark_false_label_stack): Remove. + * ggc.h (lang_mark_false_label_stack): Similarly. + +2002-03-26 Vladimir Makarov + + * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__. + + * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__ + or __rtems_ is defined. + +2002-03-26 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note + if a non-trivial load was emitted. + (alpha_emit_set_const_1): Remove obsolete extension. Fix thinko + in high+extra+low case. + +2002-03-26 Richard Henderson + + * config.gcc (sparc*-solaris): Use float_format=sparc. + +2002-03-26 Richard Henderson + + * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define. + * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef. + * config/sparc/linux.h, config/sparc/linux64.h: Likewise. + * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine. + (WINT_TYPE_SIZE): Fix at 32. + +2002-03-26 Richard Henderson + + * toplev.c (rest_of_compilation): Delay emit_initial_value_sets + until after eh landing pad generation. + * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof. + * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs. + +2002-03-26 Richard Henderson + + * expr.h (ADD_PARM_SIZE): One more convert for INC. + +2002-03-26 Phil Edwards + + * gcc.c (cpp_options): Preserve relative ordering of -pedantic + and warning switches. + (cc1_options): Likewise. + +2002-03-26 Hans Boehm + + * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): + Restore more of the signal context. Set no_reg_stack_frame. + * config/ia64/unwind-ia64.c (unw_state_record): + Add no_reg_stack_frame, comments. + (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER. + (uw_update_context): Adjust bsp when unwinding from leaf, + but not signal frame. + +2002-03-26 David Edelsohn + + * config/rs6000/aix51.h (WCHAR_TYPE): Define. + +2002-03-26 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types. + +2002-03-26 Richard Earnshaw + + PR target/5621 + * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999: + "Add a pool_range attribute", which was lost during the ARM/Thumb + merge. + +2002-03-26 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from + a register into the MAC16 accumulator. + +2002-03-26 Andrew Cagney + + * doc/invoke.texi (Option Summary): Mention -Wswitch-enum. + (Warning Options): Document -Wswitch-enum. + * toplev.c (W_options): Add -Wswitch-enum. Update comment on + -Wswitch. + (warn_switch_enum): Define variables. + * flags.h (warn_switch_enum): Declare variables. + * stmt.c (expand_end_case_type): When warn_switch_enum / + -Wswitch-enum, perform switch checks. + Fix PR c/5044. + +2002-03-26 Richard Earnshaw + + * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi) + (reload_mulsi_compare0_scratch, reload_muladdsi_compare0) + (reload_muladdsi_compare0_scratch): Delete. + +2002-03-26 Loren J. Rittle + + * doc/install.texi (*-*-freebsd*): Update. + +2002-03-26 Richard Henderson + + * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype. + (SUB_PARM_SIZE): Cast DEC to ssizetype. + + * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK + types from the normal argument frame. + + * config/sparc/sparc.c (function_arg_pass_by_reference): Pass + variable sized objects by reference. + (sparc_va_arg): Receive them by reference too. + +2002-03-26 Hartmut Penner + + * config/s390/s390.c (s390_emit_epilogue): Change epilogue + code to not restoring global registers. + +2002-03-26 Neil Booth + + * Makefile.in (ggc-common.o): Update. + * c-decl.c (lang_mark_tree): Rename c_mark_tree. + * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine. + * c-tree.h (c_mark_tree): New. + * ggc-common.c: Include langhooks.h. + (gcc_mark_trees): Use new langhook. + * ggc-callbacks.c: Delete file. + * ggc.h (lang_mark_tree): Remove. + * langhooks-def.h (LANG_HOOKS_MARK_TREE): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New hook. +objc: + * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine. + +2002-03-25 Zack Weinberg + + * doc/cpp.texi: Exclude entire Top node from printed manual. + Move option index after directive index. Insert page breaks + before GFDL and concept index. Index environment variables + with command line options. + * doc/cppenv.texi: Use @vtable for environment variable list. + Add paragraph explaining semantics of empty elements in path + variables. Exclude a cross-reference to Fishkill from the + manpage. Remove an unnecessary cross-reference of the entry + right above the referer. Don't use @anchor in text that goes + into manpage. + * doc/cppopts.texi: Cross-reference the environment variables + section, not the specific environment variable, for consistency. + +2002-03-25 Richard Henderson + + * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes + anywhere in the block. Don't refer to insns that have been + removed from the chain. Iterate backward through the new insns. + Don't refer to edges that have been removed. + +2002-03-26 Alan Modra + + * combine.c (simplify_comparison ): Correct + test for overflow of constant. + +2002-03-25 Richard Earnshaw + + PR target/2623 + * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc) + (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use + these patterns on arm_archv4. + +2002-03-25 Danny Smith + + * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned + int". + +2002-03-25 Zack Weinberg + + * toplev.c: Don't include setjmp.h. Kill float_handler_set, + float_handled, float_handler, float_signal, set_float_handler, + and do_float_handler. Set handler for SIGFPE to crash_signal. + * toplev.h: Don't prototype do_float_handler. + + * c-lex.c: Fold parse_float into lex_number. Make warning + about portability of hex float constants more informative, and + don't issue it on top of a syntax error. + * fold-const.c: Fold const_binop_1 and fold_convert_1 into + their callers. + * real.h: Define REAL_VALUE_ABS here... + * simplify-rtx.c: ... not here. Fold check_fold_consts, + simplify_unary_real, simplify_binary_real, and + simplify_binary_is2orm1 into their callers. + * tree.c: Fold build_real_from_int_cst_1 into caller. + + * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE. + + * tsystem.h: Include float.h here... + * libgcc2.c: ... not here. + +2002-03-25 Nick Clifton + + Fixes for: PR bootstrap/3591, target/5676 + * config/mcore/mcore.h (CC1_SPEC): Define only if not already + defined. Do not disable exceptions or rtti. + * config/mcore/mcore-pe.h (CC1_SPEC): Define before including + mcore.h. Disable exceptions and rtti, since they are not + supported by EPOC. + +2002-03-25 Neil Booth + + * c-decl.c (maybe_build_cleanup): Remove. + * expr.c (expand_expr): Use langhook. + * langhooks-def.h (lhd_return_null_tree, + LANG_HOOKS_MAYBE_BUILD_CLEANUP): New. + (LANGHOOKS_INITIALIZER): Update. + * langhooks.c (lhd_return_null_tree): New. + * langhooks.h (struct lang_hooks): New hook. + * tree-inline.c (initialize_inlined_parameters): Use langhook. + * tree.h (maybe_build_cleanup): Remove. + +2002-03-25 Jakub Jelinek + + * regrename.c (build_def_use): Move recog_memoized + before extract_insn. + +2002-03-25 Jakub Jelinek + + PR target/6043 + * expr.c (emit_group_store): Handle storing into CONCAT. + +2002-03-25 Jakub Jelinek + + * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and + corresponding MATCH_DUP. + +2002-03-24 Richard Henderson + + * unroll.c (unroll_loop): Zero label_map. + + * gcse.c: Include except.h. + * Makefile.in (gcse.o): Update. + +2002-03-24 Richard Henderson + + * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change. + Do resolve_unique_section before shared data clause. + +2002-03-24 Richard Henderson + + * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static. + +2002-03-24 Richard Henderson + + * recog.c (peephole2_optimize): Split blocks when EH insns are + generated in the middle of a block. Do global life update if + zapped EH edges. + +2002-03-24 Richard Henderson + + * mips.c (mips_function_value): Only promote_mode for non-libcalls. + +2002-03-24 Neil Booth + + preprocessor/3951 + * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF. + * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD. + (init_dependency_output): Don't make no_output decision here. + +2002-03-24 Andrew Cagney + + * stmt.c (check_for_full_enumeration_handling): Remove tests of + warn_switch. Update description. + (expand_end_case_type): Call check_for_full_enumeration_handling + when warn_switch. + +2002-03-24 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function. + (m68hc11_split_move): Call it to see if the source and destination + operands use the same direction auto inc/dec mode, otherwise make the + source an offsetable memory operand and generate an add. + +2002-03-24 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address + register for operand 2. + ("*subsi3_zero_extendqi"): Likewise. + ("*iorhi3_gen"): Do the operation on the upper bits and then lower + bits so that it is compatible with a pop. + ("*andhi3_gen"): Likewise. + ("xorhi3"): Likewise. + +2002-03-24 Neil Booth + + * cppinit.c (cpp_handle_option): Set warn_endif_labels if + -pedantic here... + (cpp_post_options): ... not here. + +2002-03-24 Neil Booth + Aldy Hernandez + + Removal of separate preprocessor cpp0. + + * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS, + cpp0, install-common): Update. + * c-common.c (flag_preprocess_only): New. + (c_common_init): Preprocess for -E. + * c-common.h (flag_preprocess_only): New. + * c-decl.c (c_decode_option): Handle -E and -std=c++98. + * c-objc-common.c (c_init_decl_processing): Exit quickly + for NULL return from c_common_init. + * cpplib.h (cpp_preprocess_file): New. + * cppmain.c (main, general_init, pfile, progname): Remove. + (do_preprocessing): Rename cpp_preprocess_file, don't call + cpp_finish. Don't close stdout here. + (setup_callbacks): Update prototype. + * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers): + Update. + * tradcpp.c (main): Ignore -quiet. +objc: + * lang-specs.h (default_compilers): Preprocess with cc1obj. + +2002-03-24 Richard Henderson + + PR optimization/5742 + * machmode.def: Add inner mode field to complex modes. + * config/mips/mips.c (mips_function_value): Always define. Add + new argument to handle libcalls. + * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value. + (FUNCTION_VALUE): Likewise. + * config/mips/abi64.h (FUNCTION_VALUE): Remove. + * config/mips/mips-protos.h: Update. + +2002-03-23 Richard Henderson + + * config/sparc/sparc.c (sparc_emit_floatunsdi): New. + * config/sparc/sparc-protos.h: Update. + * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New. + +2002-03-23 Richard Henderson + + * config/sparc/gmon-sol2.c (internal_mcount): Assume either + _start or _init begins the text segment. + +2002-03-23 David Edelsohn + + * config/rs6000/rs6000.h (RETURN_IN_MEMORY): Cast to HOST_WIDE_INT + not HOST_WIDEST_INT. + (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes. + +2002-03-23 Richard Earnshaw + + PR java/5489 + * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the + operand argument to output_return_instruction. + * arm.c (arm_print_operand, case 'd'): If the operand is + const_true_rtx then just return. + (arm_print_operand, case 'D'): If the operand is const_true_rtx + then abort. + +2002-03-23 Andrew Cagney + + * doc/invoke.texi (Option Summary): Mention -Wswitch-default. + (Warning Options): Document -Wswitch-default. + * toplev.c (W_options): Add -Wswitch-default. Update comment on + -Wswitch. + (warn_switch_default): Define variable. + (warn_switch): Update comment. + * flags.h (warn_switch_default): Declare variable. + (warn_switch): Update comment. + * stmt.c (expand_end_case): Check for and, when + warn_switch_no_default, warn of a missing default case. + +2002-03-23 Alan Modra + + * real.h (N): Special case 128 bit doubles. + + * combine.c (simplify_comparison): When widening modes, ignore + sign extension on CONST_INTs. + +2002-03-22 Bob Wilson + + * config/xtensa/xtensa.c (print_operand): Fix incorrect mode + passed to adjust_address. Fix comment formatting. + + +2002-03-22 Zack Weinberg + + * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE. + Always make REAL_VALUE_TYPE a struct containing an array of + HOST_WIDE_INT, not a double. Tidy up the code deciding how + big it is. Don't declare or use union real_extract. + + * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1, + decode_rtx_const, output_constant_pool), config/a29k/a29k.c + (print_operand), config/arm/arm.c (output_move_double), + config/arm/arm.md (consttable_4, consttable_8), + config/romp/romp.c (output_fpops), config/s390/s390.h + (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c + (xtensa_output_literal): Don't use union real_extract. + + * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c + (sfmode_constant_to_ulong), config/ns32k/merlin.h + (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand), + config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h + (PRINT_OPERAND): Don't use local version of union + real_extract. + + * config/convex/convex.c (check_float_value), config/vax/vax.c + (vax_float_literal), config/m88k/m88k.md (divdf3), + config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2), + config/pdp11/pdp11.c (output_move_quad): Don't do host + arithmetic on target floating point quantities. + + * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c + (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT. + + * fold-const.c (fold), simplify-rtx.c (simplify_binary_real): + Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY. + + * real.c (earith): Test INFINITY rather than REAL_INFINITY; + NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef + INFINITY. + * print-rtl.c (print_rtx): Disable code which needs + floating-point emulator. + * libgcc2.c: Include float.h and use DBL_MANT_DIG, + FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than + depending on HOST_FLOAT_FORMAT to be defined properly. + + * config/1750a/1750a.c (get_double, float_label): Delete. + (print_operand): Delete huge commented-out chunk. Use + REAL_VALUE_TO_DECIMAL. + * config/1750a/1750a-protos.h: Delete prototypes of deleted + functions. + * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to + IEEE_FLOAT_FORMAT. + * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]): + Use REAL_VALUE_TO_DECIMAL as ELF version does. + * config/m88k/m88k.c (real_power_of_2_operand, + legitimize_operand): Take the REAL_VALUE_TYPE and/or union + real_extract out of the union; run the input through + REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords + from that into the union. + * config/pdp11/pdp11.c (output_move_double): Rearrange + parentheses to make automatic indenter happy. + + * doc/tm.texi (Cross-compilation): Rename node to "Floating + Point" and rewrite to describe current situation. Also adjust + documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to + match code. + * doc/rtl.texi: Adjust cross reference. + +2002-03-22 Bob Wilson + + * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove. + (xtensa_valid_move, xtensa_preferred_reload_class): Define. + * config/xtensa/xtensa.c (non_acc_reg_operand): Remove. + (xtensa_valid_move, xtensa_preferred_reload_class): Define to + prevent use of sp as a reload register. + (xtensa_emit_move_sequence): Use xtensa_valid_move instead of + non_acc_reg_operand. + * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand. + (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class. + * config/xtensa/xtensa.md (movsi_internal, movhi_internal, + movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand. + +2002-03-22 Neil Booth + + * cpphash.h (struct cpp_reader): Remove mls_line and mls_col. + * cpplex.c (unterminated): Delete. + (parse_string): No string literal may extend over multiple + lines. Suppress the error when preprocessing assembly. + * cppmain.c (scan_translation_unit): Strings are single-line. + + * doc/cpp.texi: Update to match. + +2002-03-22 Jakub Jelinek + + PR optimization/5854 + * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0. + Shut up warnings. + (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0. + (EXTRA_CONSTRAINT): Use S for non-push memory operand. + * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from + const0 if scratch register was not allocated. + (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart, + m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...) + with GEN_INT (...). + (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs. + * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...) + with GEN_INT (...) everywhere. Remove constraints in define_split + patterns. + (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't + require scratch register for setting 0 into regs/non-pushable memory. + +2002-03-22 Alexandre Oliva + + * config/mips/mips.h (MASK_RETURN_ADDR): Define. + (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define. + +2002-03-22 Phil Edwards + + * cpplib.h (struct cpp_options): New member, warn_endif_labels. + * cppinit.c (cpp_create_reader): On by default. + (cpp_handle_option): Handle -W[no-]endif-labels. + (cpp_post_options): Also enable if -pedantic. + * cpplib.c (do_else): Use it. + (do_endif): Likewise. + * doc/cppopts.texi: Document new option. + * doc/invoke.texi: Document new option. + +2002-03-22 Lars Brinkhoff + + * config/i386/i386.c, config/i386/i386.md: Change all occurences + of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...). + +2002-03-22 Alexandre Oliva + + * flow.c (calculate_global_regs_live): Clear aux fields of + ENTRY and EXIT. + +2002-03-22 Jakub Jelinek + + * config/v850/v850.c (v850_reorg): Only call alter_subreg on + REG or MEM subregs, pass rtx * instead of rtx to it. + * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass + rtx * instead of rtx to alter_subreg. + * config/m32r/m32r.c (gen_split_move_double): Likewise. + * config/pj/pj.c (pj_output_rval): Likewise. + +2002-03-22 Richard Henderson + + PR target/3177 + * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs. + (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update. + * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs. + (ia64_expand_prologue): Look at int_regs, not words, for number + of incomming int regs. + +2002-03-22 Andrew MacLeod + + * expr.c (expand_expr): A RESULT_DECL is part of a call. + +Fri Mar 22 16:30:42 CET 2002 Jan Hubicka + + * toplev.c (flag_loop_optimize, flag_crossjumping): + New static variables. + (rest_of_compilation): Conditionalize crossjumping and + loop optimizer. + (parse_options_and_default_flags): Default loop_optimize and + crossjumping. + (lang_independent_options): Add -fcrossjumping and -floop-optimize + * invoke.texi (crossjumping, loop-optimize): Document. + +2002-03-22 Richard Sandiford + + * real.c (eiisneg): Move outside #ifdef NANS. + +Fri Mar 22 12:08:36 CET 2002 Jan Hubicka + + * cfgcleanup.c (outgoing_edges_math): Fix condition; relax + frequencies match; avoid match on different loop depths. + (try_crossjump_to_bb): Kill tests that no longer brings time + savings. + * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth + updating code. + (split_edge): Likewise. + + * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized + variable. + + * Makefile.in (cfgrtl): Add insn-config.h depenendency. + * cfgrtl.c: Include insn-config.h + (split_block) Dirtify block in presence of conditional execution + +2002-03-22 Richard Sandiford + + * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine. + * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare. + (function_arg): Constify CUMULATIVE_ARGS. + (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise. + * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT. + (UNITS_PER_DOUBLE): New macro. + (SETUP_INCOMING_VARARGS): Define. Use mips_setup_incoming_varargs. + (CUMULATIVE_ARGS): Reformat. Remove num_adjusts workaround and + last_arg_fp field. Replace arg_words and fp_arg_words with gp_regs, + fp_regs and stack_words. + (EABI_FLOAT_VARARGS_P): New macro. + * config/mips/mips.c (struct mips_arg_info): New. + (mips_arg_info): New function. + (function_arg_advance): Use it. Add adjustment instructions here + rather than in function_arg. + (function_arg): Constify CUMULATIVE_ARGS. Use mips_arg_info. Check + for VOIDmode at the beginning of the function. + (function_partial_nregs): Constify CUMULATIVE_ARGS. Use mips_arg_info. + (function_arg_pass_by_reference): Likewise. + (mips_setup_incoming_varags): New, largely based on old abi64.h code. + (mips_build_va_list): Test EABI_FLOAT_VARARGS_P. + (mips_va_start): Likewise. Use the new stack_words field of + CUMULATIVE_ARGS to set up overflow area. Reformat. + (mips_va_arg): Test EABI_FLOAT_VARARGS_P. Unify EABI handling of + doubles and other types, aligning the overflow pointer for non-doubles + too. Remove some code duplication. Replace hard-coded constants. + +2002-03-22 Richard Sandiford + + * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify. + (CLASS_UNITS): Undefine. + (CLASS_MAX_NREGS): Use FP_INC. + * config/mips/mips.c (compute_frame_size): Likewise. + (override_options): Use FP_INC and UNITS_PER_FPVALUE. + +2002-03-22 Neil Booth + + * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust + prototype, and handle lexing numbers and identifiers. + (parse_identifier): Update to new form of parse_slow. + (parse_number): Fast path only, use parse_slow otherwise. + (_cpp_lex_direct): Update calls to parse_number. + +2002-03-21 DJ Delorie + + * bb-reorder.c (make_reorder_chain_1): Protect against + when redundant edges are omitted. + * predict.c (dump_prediction): Likewise. + +2002-03-21 Richard Henderson + + PR target/5996 + * fixinc/inclhack.def (solaris_stdio_tag): New. + * fixinc/fixincl.x: Regenerate. + +2002-03-21 Eric Botcazou + + PR c/5597 + * c-typeck.c (process_init_element): Flag non-static + initialization of a flexible array member as illegal. + +2002-03-22 Alan Modra + + * config/rs6000/t-linux64: New. + * config.gcc (powerpc64-*-linux* ): Drop t-ppcos and + t-ppccomm. Use t-rs6000 and t-linux64. + (powerpc64-*-gnu* ): Likewise. + * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable. + * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo. + * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc. + +2002-03-21 Aldy Hernandez + + * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check + flag_really_no_inline instead of optimize == 0. + + * c-objc-common.c (c_cannot_inline_tree_fn): Same. + + * cp/tree.c (cp_cannot_inline_tree_fn): Same. + + * flags.h (flag_really_no_inline): New. + + * c-common.c (c_common_post_options): Initialize + flag_really_no_inline. + + * toplev.c (flag_really_no_inline): New. + +2002-03-21 Jakub Jelinek + + * config/avr/avr.md (length): Fix length computation for + conditional branches. + +2002-03-21 Neil Booth + + * Makefile.in (fold-const.o, stor-layout.o, stmt.o, + sdbout.o, profile.o): Update. + * c-common.c (c_common_nodes_and_builtins): Use pushdecl + langhook. + * c-common.h (gettags): Move here from tree.h. + * c-tree.h (pushdecl, pushlevel, poplevel, set_block, + insert_block, getdecls, kept_level_p, global_bindings_p): New. + * dbxout.c (dbxout_init): Use getdecls langhook. + * expr.c (expand_expr): Use insert_block langhook. + * fold-const.c: Include langhooks.h. + (fold_range_test, fold_binary_op_with_conditional_arg, + fold): Use global_bindings_p langhook. + * integrate.c (expand_inline_function): Use insert_block langhook. + * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL, + LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P, + LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL, + LANG_HOOKS_GETDECLS): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p + langhook. + * langhooks.h (struct lang_hooks_for_decls): New. + (struct lang_hooks): Update. + * profile.c: Include langhooks.h. + (output_func_start_profiler): Use new langhooks. + * sdbout.c: Include langhooks.h. + (sdbout_init, sdbout_finish): Use getdecls langhook. + * stmt.c: Include langhooks.h. + (expand_fixup, fixup_gotos): Use new langhooks. + * stor-layout.c: Include langhooks.h. + (variable_size): Use global_bindings_p langhook. + * toplev.c (compile_file): Use getdecls langhook. + * tree-inline.c (remap_block): Use insert_block langhook. + * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags, + insert_block, getdecls, kept_level_p, global_bindings_p): Remove. + +2002-03-21 Richard Henderson + + * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic + constants in .data when -fpic. + +2002-03-21 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux + where appropriate. + +2002-03-21 Tom Tromey + + * config/i386/sol2.h (ASM_QUAD): Undef. Fixes PR bootstrap/5948. + +Thu Mar 21 09:50:48 2002 Richard Kenner + + * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse. + + * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT. + +2002-03-21 Eric Botcazou + Richard Henderson + + PR c/5354 + * c-common.c (c_expand_expr): Preserve result of a statement + expression if needed. + +2002-03-21 Jakub Jelinek + + PR bootstrap/4195 + * genrecog.c (maybe_both_true_mode): Remove. + (maybe_both_true_2, write_switch): Revert 2001-07-17 changes. + * machmode.def (Pmode): Likewise. + +Thu Mar 21 01:55:06 EST 2002 John Wehle (john@feith.com) + + * alias.c: (nonlocal_mentioned_p): Use for_each_rtx. + (nonlocal_mentioned_p_1): New function. + (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise. + (nonlocal_set_p, nonlocal_set_p_1): Likewise. + (mark_constant_function): Recognize pure functions. + * rtl.h (global_reg_mentioned_p): New prototype. + * rtlanal.c (global_reg_mentioned_p, + global_reg_mentioned_p_1): New function. + +2002-03-21 Rainer Orth + + * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64 + UNIX assert.h. + * fixinc/fixincl.x: Regenerate. + +2002-03-20 Jason Merrill + + * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0. + +2002-03-20 Michael Meissner + + * doc/invoke.texi (Optimize Options): Document that -O2 sets + -fstrict-aliasing. + +2002-03-20 Bob Wilson + + * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a + ".literal_position" directive before the constant pool. + +2002-03-20 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Update Geoffrey Keating. + Add Craig Rodrigues. + Add Brad Lucier to testers. + +2002-03-20 Jakub Jelinek + + PR target/4792 + * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode + to if_then_else. + (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise. + * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached + instead of insn_extract. + +2002-03-20 Jakub Jelinek + + PR bootstrap/4192 + * config/fr30/fr30.md (jump): Remove clobber of fixed register. + + * genemit.c (output_added_clobbers_hard_reg_p): Only output return + stmt if some case has been output. + +2002-03-20 Jakub Jelinek + + PR c/5972 + * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc, + movsfcc_1, movdfcc_1): Add %O2. + * config/i386/i386.c (print_operand): Handle %ON. + Print . before float condition codes in Sun as cmov syntax. + * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as. + * config.gcc (i[34567]86-*-solaris2*): Remove comment which is + no longer true. + +2002-03-20 Philip Blundell + + * config/arm/arm.c (arm_output_epilogue): Don't generate separate + return instruction if PC was popped. + +2002-03-20 Bob Wilson + + * config/xtensa/xtensa.md: Remove unused type attributes. + (adddi_carry, subddi_carry): Change type attribute to "multi". + +2002-03-19 Dale Johannesen + + PR optimization/5999, middle-end/5731 + * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into + multiplications by reciprocals. + +2002-03-20 Neil Booth + + * Makefile.in: Update. + * c-common.c: Include langhooks.h. + (inline_forbidden_p): Use new hook. + * diagnostic.c: Include langhooks.h. + (format_with_decl, announce_function, + default_print_error_function): Use new hook. + * dwarf2out.c (dwarf2_name): Use new hook. + * function.c: Include langhooks.h. + (init_function_start): Use new hook. + * langhooks-def.h (lhd_decl_printable_name): New. + (LANGHOOKS_DECL_PRINTABLE_NAME): New. + (LANGHOOKS_INITIALIZER): Update. + * langhooks.c (lhd_decl_printable_name): New. + * langhooks.h (struct lang_hooks): New hook. + * toplev.c (decl_name, decl_printable_name): Remove. + (open_dump_file): Use new hook. + (process_options): Remove old hook. + * tree.h (decl_printable_name): Remove. +objc: + * objc-act.c (objc_init): Remove old hook. + (objc_printable_name): Export. + * objc-act.h (objc_printable_name): New. + * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. + +2002-03-19 Jim Blandy + + * c-lex.c (cb_file_change): Pass the #inclusion's line number to + the start_source_file debug hook, not the current line number. + +2002-03-19 Richard Henderson + + * flow.c (EH_USES): Provide default. + (calculate_global_regs_live): Use it for EH edges and noreturn calls. + * doc/tm.texi (EH_USES): New. + + * config/ia64/ia64.c (ia64_eh_uses): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.h (EH_USES): New. + +2002-03-19 Richard Henderson + + * varasm.c (output_constant_def): Fix stupid typo. + +2002-03-19 Richard Henderson + + PR 5879 + * except.c (current_function_has_exception_handlers): New. + * except.h: Declare it. + * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it. + Combine tests that disable all sibcalls for the function. + +2002-03-19 Olivier Hainque + + * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO + for INTEGER_CST. + +2002-03-19 Richard Henderson + + PR 5977, 5991 + * config/ia64/ia64.c: Revert 2002-03-01 patch. + * config/ia64/ia64.h (INIT_EXPANDERS): New. + +2002-03-19 Jim Blandy + + * cppmacro.c (cpp_macro_definition): Emit a space after the macro + name, even if the replacement list contains no tokens, as required + by Dwarf. + +2002-03-19 Jason Merrill + + * varasm.c (globalize_decl): Get the name from the RTL, not + DECL_ASSEMBLER_NAME. + + * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g. + +2002-03-19 Bob Wilson + + * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3, + subdi_carry): Define. + +2002-03-19 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Only warn + about -fpic/-fPIC if extra_warnings set. + +2002-03-19 David Edelsohn + + * expr.c (expand_expr): Sign-extend CONST_INT generated from + TREE_STRING_POINTER. + * fold-const.c (fold): Delete #if 0 ARRAY_REF case. + +Tue Mar 19 14:12:32 2002 Richard Kenner + + * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP + in favor of SP if FRAME_POINTER_REQUIRED is false. + +2002-03-19 Lars Brinkhoff + + * emit-rtl.c (gen_int_mode): New function. + * rtl.h: Prototype for it. + * combine.c (make_extraction, simplify_comparison), expmed.c + (store_bit_field, expand_mult_highpart, expand_divmod), expr.c + (convert_modes, store_field), optabs.c (expand_fix), + simplify-rtx.c (neg_const_int, simplify_unary_real), + + * config/rs6000/rs6000.c, config/rs6000/rs6000.md: + Use it instead of GEN_INT (trunc_int_for_mode (...)). + +2002-03-19 Jakub Jelinek + + PR c/5656 + * langhooks.h (struct lang_hooks_for_tree_inlining): Add + convert_parm_for_inlining. + * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): + Define. + * langhooks-def.h: Likewise. + * objc/objc-lang.c: Likewise. + * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New + function. + * tree-inline.c (initialize_inlined_parameters): + Call convert_parm_for_inlining lang hook if needed. + * c-typeck.c (c_convert_parm_for_inlining): New function. + * c-tree.h (c_convert_parm_for_inlining): Add prototype. + +2002-03-18 Mark Mitchell + + * calls.c (precompute_arguments): Do not assume that temporaries + can be destroyed after expanding the argument. + (expand_call): Likewise. + +2002-03-15 Eric Christopher + + * config/mips/mips.md (movdf_internal2): Add two new move constraints. + Fix register preference on last change. + * config/mips/mips.c (mips_return_in_memory): New function. + * config/mips/mips.h (RETURN_IN_MEMORY): Use. + * config/mips/mips-protos.h: Declare. + * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above. + * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults. + +2002-03-18 Alexandre Oliva + + * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to + a register too. + (anddi3, iorsi3): Likewise. + + * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't + use %gprel for symbols that are going to be placed in linkonce + sections. + + * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate + RETURN_ADDRESS_POINTER_REGNUM to $ra. + (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is + not needed. Disregard leaf_function_p(). + (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to + mips16 frame pointer. + * config/mips/mips.md (store ra): Only to small SP offsets. + 2001-08-22 Graham Stott + * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function + return a REG rtx for the return address register. + +2002-03-18 Bob Wilson + + * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat + constant-pool addresses as "mode-dependent". + (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments. + +2002-03-18 Jakub Jelinek + + PR target/5740 + * expr.c (emit_group_load): Use extract_bit_field if + needed for CONCAT arguments. + +2002-03-18 Richard Earnshaw + + PR target/4863 + * arm.md (tablejump): Make this a define_expand. For PIC add the + offset to the base of the table. + (thumb_tablejump): Matcher for Thumb tablejump insn. + * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries + as the difference of two labels. + * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump + tables in the code. + * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. + * arm.c (get_jump_table_size): If the table is not in the text + section, return zero. + +2002-03-18 Bernd Schmidt + + * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead + of gen_rtx_SUBREG. + (arm_reload_out_hi): Use gen_lowpart instead of + gen_rtx_SUBREG to access QImode components. + * config/arm/arm.md: Disable zero_extend split for QImode + subregs in BIG_ENDIAN mode. + (storehi_bigend): Match use of least significant byte. + (storeinthi): Remove extraneous SUBREG. + Add missing construction of operands[2]. + (movhi): Use gen_lowpart in place of gen_rtx_SUBREG. + (movqi): Use gen_lowpart in place of gen_rtx_SUBREG. + Replace gen_rtx (SUBREG) with gen_rtx_SUBREG. + +2002-03-18 Aldy Hernandez + + * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to + any_operand. + +2002-03-17 Richard Henderson + + * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns + explicitly. + +2002-03-17 Hans-Peter Nilsson + + * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI + (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)). + +2002-03-17 Kaveh R. Ghazi + + * ifcvt.c (dead_or_predicable): Fix uninitialized variable. + + * predict.c (estimate_bb_frequencies): Delete unused variables. + +2002-03-17 Richard Henderson + + * config/ia64/ia64.c (ia64_attribute_table): Move before + targetm definition. Make static. + +2002-03-17 Neil Booth + + * c-common.h (yyparse, c_common_parse_file): New. + * c-lang.c: Include c-common.h. + (LANG_HOOKS_PARSE_FILE): Redefine. + * c-lex.c: Include c-common.h. + (yyparse): Rename c_common_parse_file. Call yyparse. + * c-parse.in (yyparse): Remove macro. + * c-tree.h (yyparse_1): Remove. + * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hoooks): New hook parse_file. + * toplev.c (compile_file): Use parse_file hook. + * tree.h (yyparse): Remove. + * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. + +2002-03-17 Hans-Peter Nilsson + + * config/mmix/mmix.md ("truncdfsf2"): Correct operator is + float_truncate, not fix. + ("*truncdfsf2_real"): Ditto. + ("*nonlocal_goto_receiver_expanded"): Fix output template formatting. + + * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define. + +2002-03-16 Alexandre Oliva + + * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp + (s8), but rather HARD_FRAME_POINTER_REGNUM. Add parentheses + where appropriate. Make the second reference to + leaf_function_p a function call, as intended. Reindented. + + * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16. + * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'. + + * config/mips/mips.md (addsi3, adddi3): Use scratch register to + add register to non-constant into sp. + + * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New. + * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose. + (mips16_gp_pseudo_rtx): Lose. + (INIT_EXPANDERS): Deleted. + * config/mips/mips.c (mips_init_machine_status): New. + (mips_free_machine_status): New. + (mips_mark_machine_status): New. + (override_options): Set them. + (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to... + (struct machine_function): ... new. Replaced all references. + (mips_add_gc_roots): Don't mark them. + (embedded_pic_fnaddr_reg): New, extracted from... + (embedded_pic_offset): ... here. + * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg. + (movsi): Likewise. + +2002-03-16 Neil Booth + + * cppinit.c: Revert -MD removal. + +2002-03-16 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use + soft registers by default for 68HC12. + (m68hc11_conditional_register_usage): Don't use Z register for 68HC12 + when compiling with -fomit-frame-pointer. + (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12. + (expand_epilogue): Likewise. + (m68hc11_gen_rotate): Use exg when rotating by 8. + +2002-03-16 Stephane Carrez + + * config/m68hc11/m68hc11-protos.h (ix_reg): Declare. + * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources. + (splits): Remove unused add splits. + ("*addhi3_68hc12"): Tune constraints. + ("addhi_sp"): Try to use X instead of Y in all cases and if the + constant fits in 8-bits and D is dead use abx/aby instructions. + ("*addhi3"): Remove extern declaration of ix_reg. + ("*subsi3"): Optimize and provide new split. + ("subhi3"): Cleanup. + ("*subhi3_sp"): Avoid saving X if we know it is dead. + (arith splits): For 68hc12 save the address register on the stack + and do the arithmetic operation with a pop. + +2002-03-16 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid + allocating QImode in address registers. + ("*movqi_m68hc11"): Likewise. + +Sat Mar 16 12:57:28 CET 2002 Jan HUbicka + + * cfgcleanup.c (cleanup_cfg): Fix updating of liveness. + +2002-03-16 Neil Booth + + * cppinit.c (print_help): Display -MD and -MMD. + Don't display usage string. Update assertion syntax and + typo. + (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD. + (cpp_handle_option): Update. + +2002-03-15 Chris Demetriou + + * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an + MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC, + and define it so that regardless of target CPU size, + __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms + of "int" rather than "long." + +2002-03-15 Richard Henderson + + * config/alpha/alpha.c (alpha_va_arg): Manipulate the type + size as a tree. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst. + ("tstqi" split): Avoid using memory for tstqi on address register. + (splits): Remove constraints. + ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12. + ("cmpdf", "cmpsf"): Remove since not used. + ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2. + (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case. + ("neghi2"): Tighten constraints. + ("one_cmplsi2"): Optimize and simplify split. + * config/m68hc11/larith.asm (__negsi2): Likewise for library. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints + and split of AND operation to clear the upper bits. + ("*logicalsi3_zextqi"): Likewise. + ("*logicallhi3_zexthi_ashift8"): Likewise. + ("*logicalsi3_silshr16"): Likewise. + ("logicalsi3_silshl16"): Likewise. + ("anddi3", "iordi3", "xordi3" splits): Remove constraints. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function. + (m68hc11_indirect_p): New function. + (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12. + (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of + TARGET_M6812. + (asm_print_register): Likewise. + * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare. + (m68hc11_indirect_p): Declare. + * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'. + (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New. + (TARGET_SWITCHES): New option -mrelax. + * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for + destination. + ("iorsi3", "xorsi3"): Likewise. + ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand. + ("*andhi3_mem"): New to handle destination in memory with bclr + and a scratch register. + ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise. + ("*andhi3_const"): New when operand2 is constant. + ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise. + ("*andhi3_gen"): Cleanup of the old "andhi3". + ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise. + ("xorqi3"): Update constraints. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look + for reg_equiv_memory_loc when the operand is a register that does + not get a hard register (stack location). + (tst_operand): After reload, accept all memory operand. + (symbolic_memory_operand): Fix detection of symbolic references. + * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12 + accept symbols and any constant. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC + note on the insn that sets the soft frame register. + (must_parenthesize): ix and iy are also reserved names. + (print_operand_address): One more place where parenthesis are required + to avoid confusion with register names. + (m68hc11_gen_movhi): Allow push of stack pointer. + (m68hc11_check_z_replacement): Fix handling of parallel with a + clobber. + (m68hc11_z_replacement): Must update the REG_INC notes to tell what + the replacement register is. + * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS + and D8_REGS classes. + (MODES_TIEABLE_P): All modes are tieable except QImode. + +2002-03-15 Stephane Carrez + + * config/m68hc11/larith.asm (___adddi3): Optimize saving of result. + (___subdi3): Likewise. + (__mulsi3, __mulhi32): Avoid using _.tmp scratch location. + (__map_data_section): Optimize 68hc11 case. + +2002-03-15 Stephane Carrez + + * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher + than a shift to avoid adding a register with itself. + (m68hc11_memory_move_cost): Take into account NO_REGS. + (m68hc11_register_move_cost): Update and use memory move cost + for soft registers. + (m68hc11_address_cost): Make cost of valid offset not 0 so that + it gives more opportunities to cse to optimize. + * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode. + * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update. + +2002-03-15 Mark Mitchell + + * c-common.c (statement_code_p): Handle CLEANUP_STMT. + * c-common.def (CLEANUP_STMT): New tree node. + * c-common.h (CLEANUP_DECL): New macro. + (CLEANUP_EXPR): Likewise. + * c-semantics.c (expand_stmt): Handle CLEANUP_STMT. + * expr.c (expand_expr): Tidy. + * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT. + * tree-inline.c (initialize_inlined_parameters): Clean up + new local variables. + +2002-03-15 Jakub Jelinek + + PR bootstrap/4128 + * config/sparc/sparc.c (gen_v9_scc): Move early clobber test + before movrXX only, use reg_overlap_mentioned_p. + Only special case NE if just one insn can be generated. + +2002-03-15 Jason Merrill + + * varasm.c (assemble_variable): Call resolve_unique_section before + checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL + of error_mark_node. + +2002-03-15 Richard Earnshaw + + PR target/5170 + * arm.md (split pattern for thumb shiftable immediates): Add comment + explaining non-obvious test. + +2002-03-15 Richard Earnshaw + + PR target/5712 + * arm.md (movaddr, movaddr_insn): Delete. + +2002-03-15 Jason Merrill + + * toplev.c (wrapup_global_declarations): Clarify variable handling. + -fkeep-static-consts doesn't apply to comdats. + +2002-03-14 Richard Henderson + + * c-decl.c: Include c-pragma.h. + (start_decl, start_function): Invoke maybe_apply_pragma_weak. + (finish_function): Tidy. + * c-pragma.c: Include c-common.h. + (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New. + (handle_pragma_weak): Use them. + (init_pragma): Register pending_weaks. + * c-pragma.h (maybe_apply_pragma_weak): Declare. + * print-tree.c (print_node): Print DECL_WEAK. + * varasm.c (mark_weak_decls): Remove. + (remove_from_pending_weak_list): Remove. + (add_weak): Remove. + (asm_emit_uninitialised): Call globalize_decl for weak commons. + (weak_decls): Make a tree_list. + (declare_weak): Cons weak_decls directly. + (globalize_decl): Remove weak_decls elements directly. + (weak_finish): Simplify weak_decls walk. Don't weaken unused + symbols. Don't pretend to handle aliases. + (init_varasm_once): Update weak_decls registry. + * Makefile.in: Update dependencies. + +2002-03-14 Richard Henderson + + PR target/5312 + * config/ia64/ia64.c: Include tm_p.h last. + (gen_nop_type): Remove duplicate definition. + (cycle_end_fill_slots): Set sched_data for second L slot. + (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots. + (nop_cycles_until): Fix typos. + +2002-03-15 Jakub Jelinek + + PR optimization/5891 + * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag. + +2002-03-14 David Mosberger , Hans Boehm + + * config/ia64/unwind-ia64.c: Handle copy_state and label_state + descriptors correctly. + +2002-03-14 Michael Meissner + + * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to + 100, allowing MAX_UNROLLED_INSNS to be overridden. + + * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by + --param. + + * unroll.c (params.h): Include. + (MAX_UNROLLED_INSNS): Delete, now in params.h. + + * doc/invoke.texi (--param max-unroll-insns): Document. + + * Makefile.in (unroll.o): Add $(PARAMS_H) dependency. + +2002-03-14 Richard Earnshaw + + * arm.md: Fix warnings about constraints in peepholes and splits. + +2002-03-14 Zack Weinberg + + * cpphash.h (struct lexer_state): Remove line_extension member. + * cpplib.c (dequote_string, do_linemarker): New functions. + (linemarker_dir): New data object. + (DIRECTIVE_TABLE): No longer need to interpret #line in + preprocessed source. Delete obsolete comment about return + values of handlers. + (end_directive, directive_diagnostics, _cpp_handle_directive): + Don't muck with line_extension. + (directive_diagnostics): No need to issue warnings for + linemarkers here. + (_cpp_handle_directive): Issue warnings for linemarkers here, + when appropriate. Dispatch linemarkers to do_linemarker, not + do_line. + (do_line): Code to handle linemarkers split out to do_linemarker. + Convert escape sequences in filename argument, both places. + + * cppmacro.c (quote_string): Rename cpp_quote_string and + export. All callers changed. + * cpplib.h (cpp_quote_string): Prototype. + * cppmain.c (print_line): Call cpp_quote_string on to_file + before printing it. + + * doc/cpp.texi: Document that escapes are now interpreted in + #line and in linemarkers, and that non-printing characters are + converted to octal escapes when linemarkers are generated. + +Thu Mar 14 19:04:29 CET 2002 Jan Hubicka + + * emit-rtl.c (try_split): Use delete_insns. + * recog.c (split_all_insns): Fix terminating condition. + +2002-03-14 Richard Earnshaw + Jeroen Dobbelaere + + PR target/5828 + * arm.c (arm_output_epilogue): Fix floating-point register save + adjustment when using a frame pointer. + +2002-03-14 Richard Sandiford + + * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros. + * config/mips/mips.c (compute_frame_size): Retrofit them here. + (save_restore_insns, mips_expand_epilogue): And here. + (build_mips16_call_stub): And here. + (mips_function_value): Use the new macros to decide whether a single + or complex float can be returned in floating-point registers. Return + a parallel rtx in the complex case. + +Thu Mar 14 11:03:12 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup + call after liveness analysis. + + * recog.c (split_insn): Use delete_insn_and_edges. + + * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump + instructions to have branch prediction notes. + * ia64reorg.c (ia64_reorg): Do not rebuild CFG. + +2002-03-14 Geoffrey Keating + + * configure.in: Don't pass -Wno-long-long to a ADA compiler + that doesn't support it. + * configure: Regenerate. + +2002-03-13 Jakub Jelinek + + PR target/5626 + * config/sparc/sparc.md (normal_branch, inverted_branch, + normal_fp_branch, inverted_fp_branch, normal_fpe_branch, + inverted_fp_branch): Adjust calls to output_cbranch. + Set length attribute. + (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to + output_v9branch. Set length attribute. + * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New + predicates. + (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode. + (output_cbranch): Likewise. Handle far branches. + (output_v9branch): Handle far branches. + * config/sparc/sparc-protos.h (output_cbranch, output_v9branch): + Adjust prototypes. + * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and + noov_compare64_op predicates. + +2002-03-13 Jason Merrill + + * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr + into the function and constify it. + * gthr-dce.h, gthr-solaris.h: Likewise. + +2002-03-13 David Edelsohn + + * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define. + * config/rs6000/rs6000.c (rs6000_va_arg): Use + std_expand_builtin_va_arg if not ABI_V4. + +2002-03-13 Jason Merrill + + * varasm.c (globalize_decl): New fn. + (assemble_start_function): Use it. + (asm_emit_uninitialized): Use it. + (assemble_alias): Use it. + (assemble_variable): Use it. + +2002-03-13 Hans-Peter Nilsson + + * config/cris/cris.c (cris_target_asm_function_prologue): Revert + 2002-03-12 internal visibility change. + (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding + visibility into SYMBOL_REF_FLAG. + +2002-03-13 Ulrich Weigand + + * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with + VOIDmode operand. Add compile-time optimization for constant results. + +2002-03-12 Jason Merrill + + * c-typeck.c (convert_for_assignment): Don't allow conversions + between pointers and references. Only allow lvalues to convert to + reference. + +2002-03-13 Hartmut Penner + + * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code + before prologue, to avoid scheduling problems. + +2002-03-13 Jakub Jelinek + + * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove. + (ELIMINABLE_REGS): Add sfp->sp. + (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too. + +2002-03-13 Jakub Jelinek + + PR optimization/5892 + * config/ia64/ia64.c (rotate_one_bundle): Update current packet. + +2002-03-13 Jakub Jelinek + + * loop.c (basic_induction_var): Don't call convert_modes if mode + classes are different. + +2002-03-12 Richard Henderson + + PR optimization/5901 + * function.c (reposition_prologue_and_epilogue_notes): Position + the markers after/before the last/first insn not deleted. + +2002-03-12 Richard Henderson + + PR optimization/5878 + * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h, + config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h + (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic. + + * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h, + config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set + PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic. + + * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New. + * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM. + (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK + also. Don't set it if not flag_pic. + * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM + to be INVALID_REGNUM when not used. + +2002-03-13 Aldy Hernandez + + * expmed.c (store_bit_field): Reset alias set for memory. + (extract_bit_field): Same. + +2002-03-12 Kaveh R. Ghazi + + * c-common.c (c_tree_code_type, c_tree_code_length, + c_tree_code_name, add_c_tree_codes): Delete. + * c-common.h (add_c_tree_codes): Delete. + * c-lang.c (tree_code_type, tree_code_length, tree_code_name): + Define. + * c-objc-common.c (c_objc_common_init): Don't call + add_c_tree_codes, instead set lang_unsafe_for_reeval. + * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length, + objc_tree_code_name, add_objc_tree_codes): Delete. + (objc_init): Don't call add_objc_tree_codes. + * objc/objc-lang.c (tree_code_type, tree_code_length, + tree_code_name): Define. + * toplev.c (lang_independent_init): Don't set + tree_code_length[IDENTIFIER_NODE]. + * tree.c (tree_code_type, tree_code_length, tree_code_name): + Delete definitions, moved to language front-ends. + * tree.def (IDENTIFIER_NODE): Hardwire the length. + * tree.h (tree_code_type, tree_code_length, tree_code_name): + Const-ify. + (tree_code_length): Change type to unsigned char. + +2002-03-12 Richard Henderson + + * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03 + internal visibility change. + +2002-03-12 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_expand_block_move): Use + validize_mem() instead of change_address to avoid clobbering + memory attributes. + +2002-03-12 Neil Booth + + * c-lex.h (position_after_whitespace): Remove. + +2002-03-12 Jakub Jelinek + + * c-lex.c (cb_ident, c_lex): Remove unnecessary cast. + (lex_string): Use unsigned char pointers. + +2002-03-12 Ulrich Weigand + + * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent + is not a valid memory_operand. + +2002-03-12 Bob Wilson + + * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS. + * config/xtensa/lib1funcs.asm: Fix copyright to include + special case for libgcc files. + (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0. + (__divsi3): Likewise. + (__umodsi3): Likewise. + (__modsi3): Likewise. + * config/xtensa/lib2funcs.S: Fix copyright to include + special case for libgcc files. + +2002-03-12 Tom Rix + + * collect2.c (resolve_lib_name): Move outside of + OBJECT_FORMAT_COFF ifdef. + (ignore_library): Same. + +2002-03-12 Bob Wilson + + * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define. + +2002-03-12 Bob Wilson + + * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch + to function_section before writing out the constant pool. + +2002-03-12 David Edelsohn + + * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and + zero_constant. + * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting. + +2002-03-12 Alan Modra + + * config/rs6000/rs6000.md (addsi3): Optimize sign extension. + (adddi3): Likewise. + (movdf): Likewise. + (movdi): Likewise. + (cmpsi splitter): Likewise. + (modsi3): Fail if <= 0. + * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove + redundant test when HOST_BITS_PER_WIDE_INT != 32. + (reg_or_sub_cint64_operand): Likewise. + (num_insns_constant_wide): Optimize sign extension. + (rs6000_legitimize_address): Likewise. + +2002-03-12 Andrew MacLeod + + * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2002-03-12 Andrew MacLeod + + * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in + address calculation. + +2002-03-12 Ulrich Weigand + + * config/s390/s390.md (reload_insi, reload_indi): Change mode of + scratch register to DImode / TImode. + config/s390/s390.c (s390_expand_plus_operand): Make sure scratch + register used does not overlap the target. + +2002-03-12 Kaveh R. Ghazi + + * Makefile.in (debug.o): Depend on debug.h. + * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify. + * debug.c (do_nothing_debug_hooks): Likewise. + * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks, + sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks, + dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise. + * dwarf2out.c (dwarf2_debug_hooks): Likewise. + * dwarfout.c (dwarf_debug_hooks): Likewise. + * integrate.c (output_inline_function): Likewise. + * objc/objc-act.c (synth_module_prologue): Likewise. + * sdbout.c (sdb_debug_hooks): Likewise. + * toplev.c (debug_hooks): Likewise. + * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. + +2002-03-12 Kaveh R. Ghazi + + * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h, + dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h, + m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h, + ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h, + v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete. + * defaults.h (POINTER_SIZE): Define. + * doc/tm.texi (POINTER_SIZE): Document default. + +2002-03-12 Kaveh R. Ghazi + + * mn10200.h (PTRDIFF_TYPE): Change it to a signed type. + +2002-03-11 Richard Henderson + + * toplev.c (rest_of_compilation): Call purge_all_dead_edges + if rebuild_label_notes_after_reload. + +2002-03-12 Hans-Peter Nilsson + + * config/cris/cris.c (cris_target_asm_function_prologue): Do not + emit pic register load if "internal" visibility. + (cris_print_operand): Avoid traditional-warning for 0xffffffff. + (cris_expand_builtin_va_arg): Do all computations on trees. + +2002-03-11 Richard Henderson + + * rtlanal.c: Include recog.h. + (keep_with_call_p): Fix thinko. + * Makefile.in (rtlanal.o): Update dependencies. + +2002-03-11 Chris Meyer + + * genflags.c (gen_insn): Use IS_VSPACE. + * genoutput.c (output_insn_data): Likewise. + (process_template): Likewise. + +2002-03-11 Richard Henderson + + * toplev.c (rest_of_compilation): Don't compile if we've had errors. + +2002-03-11 Neil Booth + + * Makefile.in: Update. + * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi. + Update documentation. + * doc/gcc.texi: Include cppopts.texi and cppenv.texi. + * doc/cpp.texi: Include cppopts.texi and cppenv.texi. + +2002-03-11 Zack Weinberg + + * Makefile.in: Give texi2pod its input file as a command line + argument, not on stdin. + +2002-03-11 Dan Nicolaescu + Daniel Berlin + + C++ alias analysis improvement. + * alias.c (record_component_aliases): Record aliases for base + classes too. + +2002-03-11 Ulrich Weigand + + * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register. + +2002-03-11 Douglas B Rupp + + * toplev.c (vms_fopen): Remove, not needed. + + * vmsdbgout.c (lookup_filename): Adjust creation date for GMT. + + * config/alpha/xm-vms.h (__UNIX_FWRITE): Define. + + * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space + for FP, already done later. + + * toplev.c (debug_args): Add entry for VMS_DEBUG. + * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc. + +2002-03-11 Richard Sandiford + + * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New. + (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if + LARGEST_EXPONENT_IS_NORMAL for the given mode. + (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO. + * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO. + (ediv, emul, eldexp, esqrt): Likewise. + (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise. + (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL. + (saturate): New function. + (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL. + (make_nan): Use a saturation value instead of a NaN if + LARGEST_EXPONENT_IS_NORMAL. Warn when this happens. + * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing + inputs if LARGEST_EXPONENT_IS_NORMAL. Represent subnormals as + zero if NO_DENORMALS. Only round to nearest if !ROUND_TOWARDS_ZERO. + (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL. + (_fpmul_parts, _fpdiv_parts): Only round to nearest if + !ROUND_TOWARDS_ZERO. + * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document. + (ROUND_TOWARDS_ZERO): Document. + +2002-03-11 Andreas Jaeger + + * cfg.c (dump_flow_info): Remove unused variable. + +2002-03-11 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all + computations on trees. + +2002-03-10 Richard Henderson + + PR 5693: + * reload.c (copy_replacements_1): New. + (copy_replacements): Use it to recurse through the rtx. + +2002-03-10 Richard Henderson + + * loop.c (strength_reduce): Compute number of iterations as + unsigned HOST_WIDE_INT. + +2002-03-10 Richard Henderson + + * sched-rgn.c (add_branch_dependences): Don't allow insns that throw + to move away from the end of the block. + +2002-03-10 Neil Booth + + PR preprocessor/5899 + * cppinit.c (init_dependency_output): Don't ignore -dM etc. + +2002-03-10 Kaveh R. Ghazi + + * mbchar.c (JIS_state_table, JIS_action_table): Const-ify. + + * attribs.c (decl_attributes): Fix signed/unsigned warning. + +2002-03-10 Hans-Peter Nilsson + + * config/mmix/mmix.c: Improve comments. + (mmix_target_asm_function_prologue): Drop variable + empty_stack_frame. Don't allocate unused slot above fp. + (mmix_target_asm_function_epilogue): Mirror prologue changes. + * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have + brace in first column. + (enum reg_class): Ditto. + (FIRST_PARM_OFFSET): Now 0. + (USER_LABEL_PREFIX): Remove #if 0:d definition. + +2002-03-10 Kaveh R. Ghazi + + * combine.c (make_extraction): Fix error in last change. + +2002-03-09 Kaveh R. Ghazi + + * c4x.c (c4x_fp_reglist): Const-ify. + * cris.c (cris_print_operand): Likewise. + * i386.c (ix86_va_arg): Likewise. + * ia64/unwind-ia64.c (unw_decode_table): Likewise. + * m32r.c (m32r_hard_regno_mode_ok): Likewise. + * m32r.h (m32r_hard_regno_mode_ok): Likewise. + * mcore.c (regno_reg_class, mcore_unique_section): Likewise. + * mcore.h (regno_reg_class): Likewise. + * mips.c (gen_int_relational): Likewise. + * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise. + * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise. + * pdp11.c (move_costs): Likewise. + * pj.h (INITIALIZE_TRAMPOLINE): Likewise. + * s390.c (s390_branch_condition_mnemonic, regclass_map): + Likewise. + * s390.h (regclass_map): Likewise. + * sh.c (shift_amounts): Likewise. + * sh.md (rotlsi3): Likewise. + +2002-03-09 Geoffrey Keating + + * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER. + (ne0+5): Use new clobber to generate proper shift pattern. + Patch by Michael Matz . + +2002-03-09 Andreas Schwab + + * gcc.c (validate_all_switches): Also handle `%W{...}'. + +2002-03-09 Geoffrey Keating + + * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define. + +2002-03-09 Jakub Jelinek + + PR middle-end/5877 + * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW + even for non-representable constants. + +Sat Mar 9 07:20:01 2002 Richard Kenner + + * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share. + * function.c (fixup_var_refs): Add MAY_SHARE parameter. + (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise. + (fixup_var_refs_insn, fixup_var_refs_1): Likewise. + (pop_function_context): Compute MAY_SHARE parameter for + fixup_var_refs. + (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR. + (gen_mem_addressof): Call fixup_var_refs with new parm. + + * combine.c (make_extraction): Don't make extension of CONST_INT. + +2002-03-09 Alexandre Oliva + + * config/mips/mips.c (function_arg_pass_by_reference): Force to 0 + in o32 and o64 ABIs. + * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h, + but getting fixed-size structs passed in registers regardless of + padding in o32 and o64 ABIs. + + * config/mips/mips.c (mips_va_arg): Apply big-endianness address + offset before loading address of argument passed by transparent + reference. + +2002-03-08 John David Anglin + + * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete. + +2002-03-09 Alexandre Oliva + + * config/mips/mips.c (mips_expand_prologue): Set regno of vararg + marker such that registers after it are saved. + +2002-03-08 Kaveh R. Ghazi + + * sparc.c (arith_4096_operand): Fix error in last change. + +2002-03-08 Alexandre Oliva + + * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate + defaults for MEABI. + +2002-03-08 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for + vectors. + +2002-03-08 Aldy Hernandez + + * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec. + +Fri Mar 8 21:27:49 CET 2002 Jan Hubicka + + * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been + removed; fix return value. + * combine.c (combine_instructions): Dirtify blocks where we failed to + update liveness; purge dead edges; use update_life_info_in_dirty_blocks. + * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine. + +2002-03-08 Kaveh R. Ghazi + + * gcse.c (insert_insn_end_bb): Fix typo in last change. + +Fri Mar 8 21:08:52 CET 2002 Jan Hubicka + + * recog.c (peephole2_optimize): Re-distribute EH edges. + +2002-03-08 Neil Booth + + * expr.c (expand_expr): Use unsave lang hook. + * langhooks-def.h (LANG_HOOKS_UNSAVE): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (struct lang_hooks): New hook unsave. + * tree.c (lang_unsave, lang_unsave_expr_now): Remove. + (unsave_expr_1): Remove unused lang_unsave_expr_now. + (unsave_expr_now_r): Rename lhd_unsave. Update. Return input. + (unsave_expr_now): Remove. + * tree.h (unsave_expr_now, lang_unsave, + lang_unsave_expr_now): Remove. + (lhd_unsave): New. + +2002-03-08 Andreas Jaeger + + * flow.c (propagate_block_delete_insn): Remove unused variable. + +2002-03-08 Kazu Hirata + + * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten + insn length for memory load/store. + +2002-03-08 Craig Rodrigues + + * doc/install.texi (--with-libiconv-prefix): Document. + +2002-03-08 Michael Y. Brukman + + * doc/sourcebuild.texi: Fix typo. + +2002-03-08 Jakub Jelinek + + PR c/3711 + * builtins.c (std_expand_builtin_va_arg): Do all computations on + trees. + +Fri Mar 8 06:48:45 2002 Richard Kenner + + * rtl.c (copy_most_rtx): Move from here ... + * emit-rtl.c (copy_most_rtx): ... to here. + +2002-03-08 Alexandre Oliva + + * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with + SUBTARGET_CPP_SIZE_SPEC. + * config/mips/abi64.h (LONG_MAX_SPEC): Delete. + + * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify. + +2002-03-07 Matt Hiller + + * gensupport.c (first_dir_md_include): Renamed from include; + change all references. + (last_dir_md_include): Renamed from last_include; change all + references. + (init_md_reader): Unconditionally initialize base_dir whether or + not filename is a relative path. + +2002-03-07 Alexandre Oliva + + * config/fp-bit.c (_unord_f2): Compile it in even if + US_SOFTWARE_GOFAST is enabled. + + * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as + NULL_RTX. Set all HFmode operations as NULL_RTX. + * optabs.c (prepare_float_lib_cmp) : If libfunc is + NULL_RTX, try reversing the comparison and the operands. + +2002-03-06 Ulrich Weigand + + * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP. + genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP + and MATCH_OP_DUP. + +Thu Mar 7 16:54:10 CET 2002 Jan Hubicka + + * reload1.c (reload_cse_delete_noop_set): Purge dead edges. + +Thu Mar 7 16:33:54 CET 2002 Jan Hubicka + + * basic-block.h (fixup_abnormal_edges): Declare. + * reload1.c (fixup_abnormal_edges): New function. + * reg-stack.c (convert_regs): Use it. + + * gcse.c (insert_insn_end_bb): Handle trapping insns. + + * gcse.c (hash_scan_set): Refuse instructions with EH edges. + +2002-03-07 Richard Sandiford + + * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New. + (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New. + * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New. + (HONOR_SIGN_DEPENDENT_ROUNDING): New. + * builtins.c (expand_builtin_mathfn): Use HONOR_NANS. + * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y + unless x and y could be infinite. + (expand_unordered_cmp): New, mostly split from expand_tree_builtin. + Check that the common type of both arguments is a real, even for + targets without unordered comparisons. Allow an integer argument + to be compared against a real. + (expand_tree_builtin): Use expand_unordered_cmp. + * combine.c (combine_simplify_rtx): Use the new HONOR_... macros. + * cse.c (fold_rtx): Likewise. Fix indentation. + * fold-const.c (fold_real_zero_addition_p): New. + (fold): Use it, and the new HONOR_... macros. + * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros. + * jump.c (reversed_comparison_code_parts): After searching for + the true comparison mode, use HONOR_NANS to decide whether it + can be safely reversed. + (reverse_condition_maybe_unordered): Remove IEEE check. + * simplify-rtx.c (simplify_binary_operation): Use the new macros + to decide which simplifications are valid. Allow the following + simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b), + and (a - -b) to (a + b). + (simplify_relational_operation): Use HONOR_NANS. + * doc/tm.texi: Document the MODE_HAS_... macros. + +2002-03-07 Richard Earnshaw + + * combine.c (simplify_comparison): If simplifying a logical shift + right and compare with constant, force the comparison to unsigned. + +2002-03-07 Aldy Hernandez + + * doc/invoke.texi: Add documentation for -mabi=no-altivec. + + * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add + -mabi=no-altivec + (alt_reg_names): Remove % for vrsave. + +2002-03-06 Richard Henderson + + PR optimization/5844 + * genemit.c (gen_exp): New argument used. Invoke copy_rtx + if used indicates we've already emitted one copy of an operand. + (gen_insn, gen_expand, output_add_clobbers): Supply a null used. + (gen_split): Supply a non-null used. + +2002-03-06 Ulrich Weigand + + * reload1.c (reload): Unshare all rtl after reload is done. + + * simplify-rtx.c (simplify_plus_minus): Do not abort, + but simply fail if the expression is too complex to simplify. + (simplify_gen_binary): Handle simplify_plus_minus failures. + +Wed Mar 6 20:32:09 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Do jump threading before SSA path; + consistently call delete_trivially_dead_insns after CSE and GCSE; + fix DFI_life dumping; do jump threading after liveness; do crossjumping + after liveness2; update comment in last crossjumping. + * cfgcleanup.c (try_crossjump_to_edge): Dirtify block. + +Wed Mar 6 12:27:10 2002 Jeffrey A Law (law@redhat.com) + + * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains + after completing fast dead code elimination. + + * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a + COMPARE operator. + +2002-03-06 Phil Edwards + + * version.c: Fix misplaced leading blanks on first line. + +Wed Mar 6 19:08:03 CET 2002 Jan Hubicka + + * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source. + +Wed Mar 6 18:14:43 CET 2002 Jan Hubicka + + * cfgcleanup.c (mentions_nonequal_regs): New function. + (thread_jump): Use it. + * toplev.c (rest_of_compilation): Run jump threading after + liveness. + +2002-03-06 Jakub Jelinek + + * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05 + patch. + +Wed Mar 6 11:28:19 CET 2002 Jan Hubicka + + * predict.c (estimate_bb_frequencies): Do not reload the + frequencies from notes. + +Wed Mar 6 10:59:39 CET 2002 Jan Hubicka + + * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New. + * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare + + * basic-block.h (update_life_info, update_life_info_in_dirty_blocks, + delete_noop_moves): Return indeger. + * flow.c (ndead): New variable. + (propagate_block_delete_insn): Use delete_insn_and_edges; remove + BB argument; update callers. + (propagate_block_delete_libcall): Use delete_insn_chain_and_edges. + (life_analysis): Do not call purge_all_dead_edges. + (update_life_info): Return number of deleted insns; print statistics. + (update_life_info_in_dirty_blocks): likewise. + (delete_noop_moves): Use delete_insn_and_edges; print statistics; + return number of insns deleted. + + * cse.c: Include timevar.h + (delete_trivially_dead_insns): Kill preserve_basic_blocks argument; + iterate until stabilizes; print statistics; return number of killed + insns. + * Makefile.in: (cse.o): Add timevar.h dependency + * rtl.h (delete_trivially_dead_insns): New. + * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer. + * toplev.c (rest_of_compilation): Update callers. + + * cfgcleanup.c (try_optimize_cfg): Kill blocks. + (try_optimize_cfg): Do not update liveness. + (cleanup-cfg): Loop until try_optimize_cfg and dead code + removal stabilizes; use delete_trivially_dead_insns. + + * cfgrtl.c (verify_flow_info): Sanity check outgoing edges. + +2002-03-05 Zack Weinberg + + * cppmain.c (setup_callbacks): Disable #pragma and #ident + callbacks when processing assembly language. + +2002-03-05 John David Anglin + + * pa.h (ASM_FILE_END): Define. + * som.h (ASM_FILE_END): Delete. + + * pa.c (function_arg): Don't pass floats in general registers in + indirect calls if TARGET_ELF32. + +2002-03-05 Richard Henderson + + * config/i386/i386.md (floatsidf2): Conditionalize on hard-float. + +2002-03-05 Danny Smith + + * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define. + +2002-03-05 Jakub Jelinek + + * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc + -r command line. Don't hide any symbols if not building + shared libgcc. + +Tue Mar 5 18:31:27 CET 2002 Jan Hubicka + + * cfg.c (dump_flow_info): Warn about profile mismatches. + * cfgrtl.c (verify_flow_info): Few aditional sanity checks. + (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps. + +2002-03-05 Jakub Jelinek + + * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2 + wide volatile memory by parts. + +2002-03-05 Jakub Jelinek + + * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def + is NULL. + +2002-03-05 Richard Henderson + + * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error. + +2002-03-04 Geoffrey Keating + + * toplev.c (documented_lang_options): Document more + language-specific options. + * doc/invoke.texi (Warning Options): Correct documentation for + -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers. + * c-decl.c (c_decode_option): Use a table to handle warning options. + +2002-03-05 Hans-Peter Nilsson + + * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second + parameter to mmix_encode_section_info. + (LINK_SPEC): Don't defsym __.MMIX.start..text if linking + relocatably. Always produce ELF, not mmo if linking relocatably. + * config/mmix/mmix.c (mmix_encode_section_info): If new parameter + first is nonzero, don't add symbol prefix. + * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak + prototype accordingly. + +2002-03-04 Krister Walfridsson + + * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file. + +2002-03-05 Joseph S. Myers + + * configure.in: Increase required makeinfo version to 4.1. + * configure: Regenerate. + +2002-03-04 Geoffrey Keating + + * .cvsignore: Remove *.info* and genrtl*; these files are generated + elsewhere now. + +2002-03-04 Joseph S. Myers + + * doc/include/texinfo.tex: Update to version 2002-03-01.06. + * doc/invoke.texi: Fix @math uses. + +Mon Mar 4 15:33:54 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables + removal + +2002-03-03 Aldy Hernandez + + * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian. + (powerpc-*-eabisimaltivec*): Same. + + * config/rs6000/t-ppcendian: New. + +2002-03-04 Herman A.J. ten Brugge + + * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions + nonimmediate_src_operand and nonimmediate_lsrc_operand to + disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE. + +2002-03-03 Richard Henderson + + * toplev.c (rest_of_decl_compilation): Revert last two changes. + +2002-03-03 Zack Weinberg + + * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c, + print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c, + tree.c, config/m68k/m68k.c: + Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef + REAL_ARITHMETIC blocks unconditional. Delete some further + #ifdef blocks predicated on REAL_ARITHMETIC. + * flags.h, toplev.c: Delete remaining references to + flag_pretend_float. + + * doc/invoke.texi: Remove documentation of -fpretend-float. + * doc/tm.texi: Describe the various REAL_* macros as provided by + real.h, not by the target configuration files. + + * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h, + config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h, + config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, + config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h, + config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h, + config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h, + config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h, + config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h, + config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, + config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.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/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h, + config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h, + config/xtensa/xtensa.h: + Do not define, undefine, or mention in comments any of + REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF, + REAL_VALUE_ISNAN, REAL_VALUE_ISINF, + REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE, + REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL, + REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS, + REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX, + REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT, + REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE, + REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT. + +2002-03-03 Kaveh R. Ghazi + + * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h, + convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h, + i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, + m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, + pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, + stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD): + Delete. + * defaults.h (BITS_PER_WORD): Define. + * doc/tm.texi (BITS_PER_WORD): Document default value. + + * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h, + m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c, + stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete. + +2002-03-03 Kaveh R. Ghazi + + * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in + lieu of explicit sizeof/sizeof. + * i386.c (override_options, ix86_init_mmx_sse_builtins, + ix86_expand_builtin): Likewise. + * mips.c (mips_add_gc_roots): Likewise. + * mmix.c (mmix_output_condition): Likewise. + * rs6000.c (rs6000_override_options, altivec_expand_builtin, + altivec_init_builtins): Likewise. + * sparc.c (mark_ultrasparc_pipeline_state): Likewise. + * cppexp.c (Nsuff, parse_number): Likewise. + * cppinit.c (builtin_array_end): Likewise. + * gcc.c (n_default_compilers, process_command): Likewise. + * genpreds.c (output_predicate_decls): Likewise. + * ggc-page.c (NUM_EXTRA_ORDERS): Likewise. + * lcm.c (N_ENTITIES): Likewise. + * stor-layout.c (set_sizetype): Likewise. + +2002-03-03 Richard Henderson + + * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl + for types or labels. + +2002-03-03 Richard Henderson + + * c-decl.c (start_decl): Initialized variables are not common. + +2002-03-02 Per Bothner + + * gcc.c (option_map): Suport new --bootclasspath option. + --CLASSPATH is now just an alias for --classpath. + +2002-03-02 Richard Henderson + + * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register + load if "internal" visibility. + * doc/extend.texi: Document visibility meanings. + +2002-03-02 Richard Henderson + + * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies + to functions as well. + +2002-03-02 Richard Henderson + + * attribs.c (handle_alias_attribute): Don't call assemble_alias. + (handle_visibility_attribute): Don't call assemble_visibility. + * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even + without asmspec. Invoke assemble_alias when needed. + * varasm.c (maybe_assemble_visibility): New. + (assemble_start_function, assemble_variable, assemble_alias): Use it. + +2002-03-02 Richard Henderson + + * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P; + invoke ENCODE_SECTION_INFO with first call flag. + + * config/darwin-protos.h, config/darwin.c, config/darwin.h, + config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c, + config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h, + config/arm/arm.h, config/arm/pe.c, config/arm/pe.h, + config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, + config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, + config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h, + config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h, + config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h, + config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c, + config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h, + config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, + config/m68hc11/m68hc11.h, config/m88k/m88k.h, + config/mcore/mcore-protos.h, config/mcore/mcore.c, + config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h, + config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h, + config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, + config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h, + config/sh/sh.h, config/sparc/sparc.h, + config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, + config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h, + config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes + FIRST argument. As needed, examine it and do nothing. + + * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h, + config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h, + config/mcore/mcore.h: Remove REDO_SECTION_INFO_P. + + * config/arm/t-pe (pe.o): Add dependencies. + +2002-03-02 Kaveh R. Ghazi + + * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h, + cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, + i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, + mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h, + pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h, + vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete. + * defaults.h (BITS_PER_UNIT): Define. + * doc/tm.texi (BITS_PER_UNIT): Document default value. + +2002-03-02 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + compute_a_shift_length. + * config/h8300/h8300.c (h8300_asm_insn_count): New. + (compute_a_shift_length): Likewise. + (h8300_adjust_insn_length): Do not adjust insn length of shift + insns. + * config/h8300/h8300.md (anonymous shift patterns): Use + compute_a_shift_length. + +Sat Mar 2 06:30:14 2002 Richard Kenner + + * config/sparc/sparc.c (sparc_initialize_trampoline): Use + trunc_int_for_mode. + + * emit-rtl.c (offset_address): Call update_temp_slot_address. + +2002-03-01 Kaveh R. Ghazi + + * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss. + * doc/invoke.texi (-fno-zero-initialized-in-bss): Document. + * flags.h (flag_zero_initialized_in_bss): Declare. + * toplev.c (flag_zero_initialized_in_bss): New flag. + (lang_independent_options): Add flag_zero_initialized_in_bss. + * tree.c (initializer_zerop): New function. + * tree.h (initializer_zerop): Declare. + * varasm.c (assemble_variable): If we can emit bss, put zero + initializers in the bss section. + +2002-03-02 Alan Modra + + * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't + like more than one symbol per .weak directive. + +2002-03-01 Richard Henderson + + * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not + adjust argument_pointer by pretend_args_size. + (ia64_va_start): Adjust va_start address by -pretend_args_size. + +2002-03-01 Kazu Hirata + + * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up. + +Fri Mar 1 20:59:14 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Delete dead jumptables before + loop. + * flow.c (delete_dead_jumptables): Make global. + * rtl.h (delete_dead_jumptables): Declare. + +2002-03-01 David Edelsohn + + * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete. + * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define. + * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete. + +2002-03-01 Kazu Hirata + + * config/h8300/h8300-protos.h: Fix formatting. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + +2002-03-01 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Support 16-bit + constant addresses. + * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New. + +2002-02-28 Richard Henderson + + * expmed.c (store_bit_field): Prevent generation of CONCATs; + pun complex values as integers; use gen_lowpart instead of + gen_rtx_SUBREG. + (extract_bit_field): Likewise. + +2002-03-01 Alan Modra + David Edelsohn + + * doc/tm.texi (ASM_WEAKEN_DECL): Document. + (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL. + (SUPPORTS_WEAK): Likewise. + * output.h (add_weak): Add tree param. + * varasm.c (add_weak): Likewise. Save decl. + (struct weak_syms): Add decl field. + (mark_weak_decls): New function. + (init_varasm_once): ggc_add_root mark_weak_decls. + (assemble_start_function): Use ASM_WEAKEN_DECL. + (assemble_variable): Likewise. + (assemble_alias): Likewise. + (declare_weak): Pass decl to add_weak. + (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl. + (remove_from_pending_weak_list): Declare and define for + ASM_WEAKEN_DECL. + * c-pragma.c (handle_pragma_weak): Adjust add_weak call. + * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too. + * defaults.h (SUPPORTS_WEAK): Likewise. + * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit + .weak for code sym. Do emit .size for descriptor sym. + (ASM_DECLARE_FUNCTION_SIZE): Define. + * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define. + (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here. Don't output + .lglobl unless TARGET_XCOFF. Formatting fixes. + * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit + .weak for code sym. + (HANDLE_PRAGMA_WEAK): Remove. + (ASM_WEAKEN_LABEL): Remove. + * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. + +2002-03-01 Jason Merrill + + * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros. + (TARGET_EXPR_CLEANUP): New macro. + +2002-02-28 Steve Ellcey + + * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition + to take ptr_extend into account as third type of extension. + (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit + fields used by SUBREG_PROMOTED_UNSIGNED_P. + * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro. + (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1. + * calls.c (precompute_arguments): Use new macro. + (expand_call): Ditto. + * combine.c (nonzero_bits): Ditto. + (record_promoted_value): Ditto. + * expr.c (store_expr): Ditto. + (expand_expr): Ditto. + * function.c (assign_parms): Ditto. + +2002-02-28 Alexandre Oliva + + * gcc.c (init_gcc_specs): Get -static and -static-libgcc to + override -shared and -shared-libgcc. + +2002-02-28 David O'Brien + + * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification + of "ultrasparc". + * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS. It appears + to be broken. + +2002-02-28 Richard Henderson + + * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have + 4 cycle latency from MM producers. + (ia64_internal_sched_reorder): Likewise with pipeline flush. + +2002-02-28 Jakub Jelinek + + * mklibgcc.in: Don't use GNU make extension. + +2002-02-28 Neil Booth + + * c-parse.in (STATIC): New terminal. + (scspec): New non-terminal. Update productions accordingly. + (program): Remove bogus ifc / end ifc. + (array_declarator): Simplify production using STATIC. + +2002-02-28 Jim Meyering + + * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code: + \a still means TARGET_BELL. + +2002-02-28 Richard Henderson + + * haifa-sched.c (sched_emit_insn): New. + (schedule_block): Use last_scheduled_insn to track last insn. + * sched-int.h (sched_emit_insn): Prototype. + * config/ia64/ia64.c (last_issued): Remove. + (ia64_variable_issue): Don't set it. + (nop_cycles_until): Use sched_emit_insn. + +2002-02-28 Andrew MacLeod + + * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign + extended constants. + +2002-02-28 Kazu Hirata + + * config/h8300/h8300.c: Fix formatting. + * config/h8300/h8300.h: Likewise. + +2002-02-28 Marek Michalkiewicz + + * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29 + which may overwrite the high byte of the frame pointer. + +2002-02-28 Bo Thorsen + + * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation. + (STARTFILE_SPEC): Add 64 bit files. + (ENDFILE_SPEC): Likewise. + +2002-02-28 Jason Merrill + + * c-decl.c (finish_function): Only warn about missing return + statement with -Wreturn-type. + +Don Feb 28 11:24:30 CET 2002 Jan Hubicka + + * cfgrtl.c (purge_dead_edges): Fix handling of EH edges. + + * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to + PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM + +Don Feb 28 11:07:36 CET 2002 Jan Hubicka + + * basic-block.h (BB_REACHABLE): Renumber. + (BB_DIRTY, BB_NEW): New flags. + (clear_bb_flags): Declare. + (update_life_info_in_dirty_blocks): Declare. + * cfg.c (clear_bb_flags): New function. + * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW. + * emit-rtl.c (add_insn_after, add_insn_before, remove_insn, + reorder_insns, emit_insn_after): Mark block as dirty. + * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS. + (update_life_info_in_dirty_blocks): New function. + * recog.c (apply_change_group): Dirtify block. + + * cse.c (cse_insn): Reorder emitting of jump insn to keep + cfg consistent. + * gcse.c (delete_null_pointer_checks): Likewise. + + * toplev.c (dump_file_index): Move cse2 after bp, + add DFI_null + (dump_file_info): Similary. + (rest_of_compilation): Avoid most of CFG rebuilds; + do first if converision after null pointer checks, do cse2 + after branch prediction; avoid full liveness rebuild after + initializing subregs. + * invoke.texi (-d options): Document -du, renumber. + + * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE. + (notice_new_block): Do not set BB_UPDATE_LIFE. + (try_forward_edges, merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps, merge_blocks, + try_crossjump_to_edge): Likewise. + (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks. + * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a. + * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill. + (merge_of_block): Do not use life_data_ok. + (find_if_case_1): Do not use SET_UPDATE_LIFE. + (if_convert): Use BB_DIRTY mechanizm to update life. + * lcm.c (optimize_mode_switching): Update + update_life_info_in_dirty_blocks + +2002-02-28 Neil Booth + + * Makefile.in (integrate.o): Update. + * c-decl.c (copy_lang_decl): Rename. + * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. + * integrate.c: Include langhooks.h. + (copy_decl_for_inlining): Update to use langhook. + * langhooks-def.h (lhd_do_nothing_t, + LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_do_nothing_t): New. + * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl. + * tree.h (copy_lang_decl): Remove. +objc: + * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. + +2002-02-27 Andrew MacLeod + + * dwarf2out.c (stack_adjust_offset): Add support for POST_INC, + POST_DEC, and POST_MODIFY. + +2002-02-27 Zack Weinberg + + * c-typeck.c (digest_init): Remove unused parameter; all + callers changed. + +2002-02-27 Geoffrey Keating + + * expmed.c (expand_shift): Correctly test for low part of a + subreg. + +2002-02-27 Ulrich Weigand + + * config/s390/s390.c (s390_chunkify_pool): Do not confuse + insn UIDs with insn addresses. + +2002-02-27 Zack Weinberg + + * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in, + c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h, + cppmacro.c, objc/lang-specs.h, objc/objc-act.c, + builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c, + gcc.c, toplev.c: Delete code implementing -traditional mode. + + * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi, + doc/invoke.texi, doc/standards.texi, doc/trouble.texi: + Document removal of -traditional mode for compilation, and + remove documentation only relevant to that mode. + + * config/nextstep.h, config/ptx4.h, config/svr4.h, + config/convex/convex.h, config/d30v/d30v.h, + config/i386/dgux.h, config/i386/osf1elf.h, + config/i386/osfelf.h, config/i386/osfrose.h, + config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h, + config/m68k/hp310.h, config/m88k/dgux.h, + config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c, + config/m88k/m88k.h, config/m88k/openbsd.h, + config/mips/abi64.h, config/mips/osfrose.h, + config/mips/svr4-5.h, config/mips/svr4-t.h, + config/sparc/sol2-sld-64.h, config/sparc/sol2.h, + config/stormy16/stormy16.h: Remove all references to + -traditional from target specs. Delete all mention of the + no-longer-necessary TRADITIONAL_RETURN_FLOAT macro. Also + delete a couple of commented-out definitions of + DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring + to -traditional. + + * system.h: Poison TRADITIONAL_RETURN_FLOAT. + * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro. + +2002-02-27 Zack Weinberg + + * mklibgcc.in: Don't use \n in a line subject to + interpretation by echo. + +2002-02-27 Graham Stott + + * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC): + Constify NAME. + + * loop.c (prescan_loop): Handle PARALLEL. + + * unroll.c (loop_iterations): Return 0 if the add_val for + a BIV is REG. + + * final.c (output_operand_lossage): Constify PFX_STR. + + * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE. + +Wed Feb 27 10:45:19 CET 2002 Jan Hubicka + + * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove. + * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define. + +Wed Feb 27 10:39:20 CET 2002 Jan Hubicka + + * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. + +2002-02-27 Neil Booth + + * cpplex.c (_cpp_lex_token): Handle directives in macro + arguments. + * cpplib.c (_cpp_handle_directive): Save and restore state + if parsing macro args when entering a directive. + * cppmacro.c (collect_args): No need to handle directives + in macro arguments. + (enter_macro_context, replace_args): Use the original macro + definition in case it was redefined whilst collecting arguments. +doc: + * cpp.texi: Update. + +2002-02-26 David Edelsohn + + * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete. + * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete. + * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient + method on AIX. + * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand. + (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same. + (load_toc_v4_PIC_2): Same. + +2002-02-26 Alan Modra + + * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE. + +2002-02-26 Richard Henderson + + * config/alpha/alpha.md (ashldi_se): Re-enable. + +2002-02-26 Richard Henderson + + * config/alpha/alpha.c (alpha_encode_section_info): Examine + MODULE_LOCAL_P; improve commentary. + +2002-02-26 Zack Weinberg + + * doc/cpp.texi: Clarify documentation of relationship between + #line and #include. + +2002-02-26 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype for + compute_logical_op_length. Add the prototype for + compute_logical_op_cc. + * config/h8300/h8300.c (compute_logical_op_length): Figure out + code from operands. + (compute_logical_op_cc): New. + * config/h8300/h8300.md: Combine all the logical op patterns + in HImode and SImode. Use compute_logical_op_cc. + +2002-02-26 Kelley Cook + + * config/i386/i386.c (print_operand): Don't append ATT-style + length suffixs to x87 opcodes when in Intel mode. + +2002-02-26 Ryan T. Sammartino + + * emit-rtl.c (gen_const_vector_0): Remove TYPE argument. + (init_emit_once): Update calls. + * fixinc/gnu-regex.c (_GNU_SOURCE): Remove. + (init_syntax_once): Prototype. + +2002-02-26 John David Anglin + + * pa-linux.h (LIB_SPEC): Update definition. + * pa32-linux.h (LINK_COMMAND_SPEC): Delete. + +2002-02-26 Richard Henderson + + * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers + if we emitted a stop bit. + +2002-02-26 Jakub Jelinek + + * configure.in (libgcc_visibility): Substitute. + * configure: Rebuilt. + * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global + defined symbols .hidden. + +2002-02-26 Jakub Jelinek + + * attribs.c (c_common_attribute_table): Add visibility. + (handle_visibility_attribute): New function. + * varasm.c (assemble_visibility): New function. + * output.h (assemble_visibility): Add prototype. + * tree.h (MODULE_LOCAL_P): Define. + * crtstuff.c (__dso_handle): Use visibility attribute. + * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG + for MODULE_LOCAL_P symbols too. + * config/ia64/ia64.c (ia64_encode_section_info): Handle + MODULE_LOCAL_P symbols the same way as local symbols. + Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced + into .sdata/.sbss by the user. + * doc/extend.texi (Function Attributes): Document visibility + attribute. + +2002-02-26 Jakub Jelinek + + PR debug/5770 + * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for + STRING_CST initializer spanning the whole variable without + embedded zeros. + If expand_expr returned MEM, don't use it. + +2002-02-26 Alexandre Oliva + + * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract, + generate a die for the lexical block. + +2002-02-26 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + compute_logical_op_length. + * config/h8300/h8300.c (compute_logical_op_length): New. + * config/h8300/h8300.md (anonymous logical patterns): Use + compute_logical_op_length for length. + +2002-02-26 Aldy Hernandez + + * dwarf2out.c (modified_type_die): Do not call type_main_variant + for vectors. + (gen_type_die): Same. + + * attribs.c (handle_vector_size_attribute): Set debug information. + +2002-02-26 Daniel Egger + + * config/rs6000/rs6000.md: Swap define_insn attributes to + fix incorrect generation of merge high instructions instead + of merge low. + +2002-02-26 Aldy Hernandez + + * c-typeck.c (really_start_incremental_init): Use + bitsize_zero_node for vectors. + +2002-02-26 Aldy Hernandez + + * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo. + ("*set_vrsave_internal"): Same. + +2002-02-25 Richard Henderson + + * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law + in EXPAND_SUM case. Use host_integerp/tree_low_cst. + +2002-02-25 Jakub Jelinek + + PR target/5755 + * config/i386/i386.c (ix86_return_pops_args): Only pop + fake structure return argument if it was passed on the stack. + +2002-02-25 Jason Merrill + + * attribs.c (decl_attributes): Also re-layout PARM_DECL and + RESULT_DECL. + +2002-02-25 Alexandre Oliva + + * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to + link with shared_name only. + * doc/invoke.texi (Link Options): Document new behavior. + +2002-02-25 Aldy Hernandez + + * c-typeck.c (push_init_level): Handle vectors. + +2002-02-25 Alexandre Oliva + + * config/sparc/sparc.c (const64_high_operand): Zero-extend + operands of SPARC_SETHI_P. + (input_operand): Likewise. + (sparc_emit_set_const32): Likewise. + * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64. + (SPARC_SETHI32_P): Zero-extend operand from 32 bits. + (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'. Add `N' as SETHI. + * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'. + (movdi_insn_sp64_vis): Likewise. + (movdi split, movdf split): Use SETHI32. + * doc/md.texi: Document SPARC constraints L, M and N. + +2002-02-25 Aldy Hernandez + + * config/rs6000/rs6000.md ("get_vrsave_internal"): New. + ("*set_vrsave_internal"): use mfspr for Darwin. + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Call + gen_get_vrsave_internal. + +Sun Feb 24 16:38:56 2002 Richard Kenner + + * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND. + +2002-02-24 Neil Booth + + * cpplex.c (cpp_interpret_charconst): Get signedness or + otherwise of wide character constants correct. + * cppexp.c (lex): Get signedness of wide charconsts correct. + +Sun Feb 24 07:41:31 2002 Richard Kenner + + * optabs.c (widen_operand): Only call convert_modes for + promoted SUBREG if signedness matches. + * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns. + +2002-02-23 Neil Booth + + * cpplib.c (glue_header_name): Use local buffer to build up + header name. + +2002-02-23 Neil Booth + + * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM. + +2002-02-23 Kazu Hirata + + * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and + H8/300[HS] separately. + * config/h8300/h8300.md: Remove the early clobber constraint + from bit field patterns. + +2002-02-23 Kazu Hirata + + * config/h8300/h8300.md (mulqihi3): Tighten predicates to + register_operand. + (mulhisi3): Likewise. + (umulqisi3): Likewise. + (umulhisi3): Likewise. + +2002-02-23 Neil Booth + + * cppinit.c (output_deps): Correct test for stdout output. + (init_dependency_output): Cure warning. + +Sat Feb 23 08:42:47 2002 Richard Kenner + + * expr.c (store_expr): When converting expression to promoted + equivalent type, allow using SUBREG_REG of TARGET as the target + of the expansion of EXP. + * loop.c (basic_induction_var, case SUBREG): Always look inside. + * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl. + (alpha_emit_set_const): Handle SImode when can't make new pseudos. + (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos. + * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing. + +2002-02-23 Joseph S. Myers + + * doc/contribute.texi, doc/extend.texi, doc/install.texi, + doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi, + doc/standards.texi, doc/tm.texi: Remove trailing whitespace. + +2002-02-23 Jakub Jelinek + + PR optimization/5747 + * loop.c (scan_loop): Update reg info if move_movables created new + pseudos. + +2002-02-23 David Edelsohn + + * gcc.c (init_gcc_spec): Revert last change. + +2002-02-23 David Edelsohn + + * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use + gpc_reg_operand constraint. + +2002-02-23 Alan Modra + + * config/rs6000/rs6000.c (num_insns_constant): Fix formatting. + Simplify comparison of `low'. + (add_operand): Fix formatting. + (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P. + (mask_operand): Disallow mask to wrap in 64-bit mode. + (rs6000_stack_info): Remove redundant test setting push_p. + (output_toc): Fix formatting. + * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use + cc_reg_not_cr0_operand constraint. + (booldi3, boolcdi3 splitters): Same. + +2002-02-23 Aldy Hernandez + + * config/rs6000/altivec.h: Add extra level of parentheses on casts. + +2002-02-22 David Edelsohn + + * gcc.c (init_gcc_spec): Do not link with static libgcc.a if + gcc invoked with -shared-libgcc. + +2002-02-22 Jakub Jelinek + + PR c++/5748 + * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union + decl if any of elements was TREE_USED. + +2002-02-22 Alexandre Oliva + + * config/sparc/sol2.h: Don't include sys/mman.h. + * config/sparc/sparc.c (arith_operand): Use SMALL_INT32. + (arith_4096_operand): Don't throw high bits away. + (const64_operand): Take sign extension of CONST_INTs into account. + (const64_high_operand, sparc_emit_set_const32): Likewise. + (GEN_HIGHINT64): Likewise. + (sparc_emit_set_const64_quick1): Likewise. + (const64_is_2insns): Likewise. + (print_operand): Use trunc_int_for_mode for sign extension. + * config/sparc/sparc.h (SMALL_INT32): Likewise. + * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE + chars. Assume CONST_INT is already properly sign-extended. + (movdi split): Sign-extend each SImode part. + (andsi3 split): Don't mask high bits off, so that result + remains properly sign-extend. + (iorsi3 split): Likewise. + (xorsi3 split): Likewise. + +2002-02-22 Richard Sandiford + + * fold-const.c (fold): Fix typo in comments. + +2002-02-21 Diego Novillo + + * Makefile.in (langhooks.o): Update dependencies. + +2002-02-21 Diego Novillo + + * langhooks.c: Include flags.h. + +2002-02-21 Aldy Hernandez + + * testsuite/gcc.dg/attr-alwaysinline.c: New. + + * c-common.c (c_common_post_options): Set inline trees by + default. + + * doc/extend.texi (Function Attributes): Document always_inline + attribute. + Update documentation about inlining when not optimizing. + + * cp/decl.c (duplicate_decls): Merge always_inline attribute. + + * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 + unless DECL_ALWAYS_INLINE. + + * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0 + unless DECL_ALWAYS_INLINE. + (c_disregard_inline_limits): Disregard if always_inline set. + + * langhooks.c (lhd_tree_inlining_disregard_inline_limits): + Disregard if always_inline set. + (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0 + unless DECL_ALWAYS_INLINE. + + * attribs.c (handle_always_inline_attribute): New. + (c_common_attribute_table): Add always_inline. + + * config/rs6000/altivec.h: Add prototypes for builtins + requiring the always_inline attribute. + +2002-02-21 Eric Christopher + + * expmed.c (store_bit_field): Try to simplify the subreg + before generating a new one when when the mode size of + value is less than maxmode. + +2002-02-21 Richard Henderson + + * emit-rtl.c (offset_address): Use simplify_gen_binary rather + than gen_rtx_PLUS to form the sum. + * explow.c (force_reg): Rearrange to not allocate new pseudo + when force_operand returns a register. + * expr.c (expand_assignment): Allow offset_rtx expansion to + return a sum. Do not force addresses into registers. + (expand_expr): Likewise. + * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus + to canonicalize arithmetic that didn't simpify. + (simplify_plus_minus): New argument force; update + all callers. Don't split CONST unless we can do something with it, + and wouldn't lose the constness of the operands. + + * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs + that we generated earlier. + +2002-02-21 Tom Tromey + + * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed. + (output_line_info): Use constant `1', with a long explanatory + comment. + * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison. + +Thu Feb 21 22:43:44 2002 J"orn Rennecke + + * jump.c (redirect_jump): If old label has no UID, don't try to + delete it. + +Thu Feb 21 21:17:21 2002 J"orn Rennecke + + * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG. + If input is constant, do shifts at compile time. + +2002-02-21 Joseph S. Myers + + * doc/extend.texi: Fix some more overfull hboxes. + +2002-02-21 Jakub Jelinek + + PR optimization/4994 + * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX + register moves. + +2002-02-21 Jakub Jelinek + + PR c++/4574 + * expr.h (expand_and): Add mode argument. + * expmed.c (expand_and): Add mode argument. + (expand_mult_highpart_adjust, emit_store_flag): Adjust callers. + * expr.c (store_field, expand_expr, do_store_flag): Likewise. + * except.c (expand_builtin_extract_return_addr): Likewise. + * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise. + * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise. + * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise. + Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x). + * config/c4x/c4x.md: Use GEN_INT (x) instead of + gen_rtx (CONST_INT, VOIDmode, x). + +2002-02-21 Jakub Jelinek + + PR c/4697: + * stmt.c (warn_if_unused_value): Move side effects test once more. + +2002-02-20 Torbjorn Granlund + + * config/avr/avr.md: Add more patterns for mized-mode add and subtract + (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend). + +Thu Feb 21 16:20:46 2002 Alexandre Oliva + + * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of + SUBREG or ZERO_EXTEND. + +Thu Feb 21 15:35:46 2002 J"orn Rennecke + + * sh.h (current_function_anonymous_args): Remove. + (SETUP_INCOMING_VARARGS): Don't set it - just check that one + of current_function_varargs and current_function_stdarg is set. + * sh.c (sh_expand_prologue): Check current_function_varargs / + current_function_stdarg / TARGET_SH5 instead of + current_function_anonymous_args. + + * sh64.h (TARGET_VERSION): Define. + +2002-02-20 David Edelsohn + + * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize + VRSAVE_REGNO on TARGET_ALTIVEC. + +2002-02-20 Alan Modra + + * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant + bits of SImode const_int. + (includes_rshift_p): Likewise. + (print_operand): Call mask_operand and mask64_operand with correct + mode. + (rs6000_output_function_epilogue): Pad traceback table to word. + * config/rs6000/rs6000.h (MASK_64BIT): Correct comment. + (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and + mask64_operand with correct mode. + (FUNCTION_ARG_REGNO_P): Correct parentheses. + +2002-02-20 Jakub Jelinek + + PR debug/4461 + * varasm.c (get_pool_constant_mark): New. + * rtl.h (get_pool_constant_mark): Add prototype. + * dwarf2out.c (mem_loc_descriptor): A pool constant cannot + be represented if it has not been output. + +2002-02-20 Alexandre Oliva + + * combine.c (do_SUBST): Sanity check substitutions of + CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs. + (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a + CONST_INT into its operand. + (known_cond): Likewise, for ZERO_EXTEND. + * simplify-rtx.c (simplify_unary_operation): Fix condition to + allow for simplification of wide modes. Reject CONST_INTs in + ZERO_EXTEND when their actual mode is not given. + +2002-02-20 Alexandre Oliva + + * c-decl.c (pushdecl): If no global declaration is found for an + extern declaration in block scope, try a limbo one. + +2002-02-20 Jakub Jelinek + + PR c++/4401 + * c-common.c (pointer_int_sum): Moved from... + * c-typeck.c (pointer_int_sum): ...here. + * c-common.h (pointer_int_sum): Add prototype. + +2002-02-20 Jakub Jelinek + + PR c++/5713 + * c-decl.c (duplicate_decls): Return 0 if issued error about + redeclaration. + +2002-02-20 Roger Sayle + Jakub Jelinek + + PR c/4389 + * tree.c (host_integerp): Ensure that the constant integer is + representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT + when pos is zero or nonzero respectively. Clarify comment. + * c-format.c (check_format_info_recurse): Fix host_integerp + usage; the pos argument should be zero when assigning to a + signed HOST_WIDE_INT. + +2002-02-20 Richard Henderson + + * config/i386/i386.c (ix86_expand_vector_move): Use the mode + of the operand, rather than assuming TImode. + (ix86_expand_binop_builtin): Cope with commutative patterns + using nonimmediate_operand for both operands. + (ix86_expand_timode_binop_builtin): Likewise. + (ix86_expand_store_builtin): Validate operand 1. + (ix86_expand_unop1_builtin): Likewise. + +2002-02-20 Philip Blundell + + PR 5705 + * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro. + +2002-02-20 Richard Henderson + + PR c/5615 + * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype. + +2002-02-20 Tom Tromey + + * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. + * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. + * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. + * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. + * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define + unconditionally. + +Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka + + * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look + for (const_int 0) in X not just INTVAL. + +2002-02-20 Joseph S. Myers + + * doc/extend.texi: Avoid or reduce overfull hboxes. + +2002-02-20 Diego Novillo + + * expmed.c (store_bit_field): Do not store bit fields using SUBREG + operations if the field does not start at a mode boundary. + +2001-02-20 Joel Sherrill + + * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h, + config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem(). + Also done for -Acpu and -Amachine. + +2002-02-20 Neil Booth + + * cppinit.c (init_dependency_output): Take deps output file + from -o if none given with -MF. Suppress normal output. + * gcc.c (cpp_unique_options): Have -M and -MM imply -E. + * doc/cpp.texi, doc/invoke.texi: Update. + +2002-02-19 Zack Weinberg + + * toplev.c (output_quoted_string): Write unprintable + characters with octal escapes. + +2002-02-19 David Edelsohn + + * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set + really_call_used[VRSAVE_REGNO] if not Altivec. + +2002-02-19 Alan Modra + + * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with + MODE_MASK. + (constant_pool_expr_1): Fix formatting. + (rs6000_legitimize_reload_address): Likewise. + +Tue Feb 19 20:13:57 2002 Richard Kenner + + * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx + now that we have one. + +2002-02-19 Zack Weinberg + + * tree.h (struct tree_common): Remove aux. Add unused_0 at + end of first block of bitfields (which was only seven bits); + rename dummy to unused_1; remove comment which is no longer true. + +2002-02-19 Gaute B Strokkenes + + * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo. + +2002-02-19 Philip Blundell + + PR 5399 + * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything + if generating PIC. + + PR 5054 + * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use + arm_is_longcall_p rather than inspecting call-type cookie + directly. + (call_value_insn) [TARGET_THUMB]: Likewise. + +2002-02-19 Graham Stott + + * config/i386/i386.c (ix86_expand_builtin): Fix typo. + +2002-02-19 David Edelsohn + + * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64. + ({STARTFILE,ENDFILE}_LINUX_SPEC): Define. + (FP_SAVE_INLINE): Delete. + + * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o. + * config/rs6000/eabi.asm: Remove ABI save restore routines. + * config/rs6000/t-ppccomm: Build crtsavres.o. + * config/rs6000/crtsavres.asm: New file. + +2002-02-19 Philip Blundell + + * config/arm/arm.c (use_return_insn): Don't reject interrupt + functions. + (arm_compute_save_reg_mask): Save LR for interrupt functions too. + (output_return_instruction): Allow interrupt functions to return with + ldmfd sp!, {... pc}^. Use LDR to restore any single register. + (arm_expand_prologue): Subtract 4 before stacking LR in an + interrupt function. + +2002-02-19 Philip Blundell + + * config/arm/arm.c (arm_encode_call_attribute): Operate on any + decl, not just FUNCTION_DECL. + (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF. + (arm_assemble_integer): Likewise. + * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be + marked local. + +2002-02-19 matthew green + + * config.gcc (sparc-*-netbsdelf*): Enable target. + (sparc64-*-netbsd*): New target. + * config/sparc/netbsd-elf.h: New file. + * config/sparc/t-netbsd64: New file. + +2002-02-19 Gaute B Strokkenes + + * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo. + +2002-02-19 Ryan T. Sammartino + + * doc/invoke.texi: explicitly list the style guidelines that + -Weffc++ checks for. + +Tue Feb 19 12:37:23 CET 2002 Jan Hubicka + + * regmove.c (regmove_optimize): Avoid increasing of register pressure. + +2002-02-19 Neil Booth + + PR other/5718 + * gcc.c (cpp_unique_options): Treat -o as indicating object file + only if not -E. If -E, pass -o through to the preprocessor. + +2002-02-19 Kazu Hirata + + * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal + register number with an appropriate macro. + +2002-02-19 Bryce McKinlay + + * doc/rtl.texi (Constants): Close @code tag. + +2002-02-19 Aldy Hernandez + + * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector. + ("mmx_uavgv4hi3"): Same. + ("pmulhrwv4hi3"): Same. + + * tree-inline.c (walk_tree): Handle vectors. + + * c-common.c (constant_expression_warning): Handle vectors. + (overflow_warning): Same. + + * sched-deps.c (sched_analyze_2): Handle vectors. + + * rtlanal.c (rtx_unstable_p): Handle vectors. + (rtx_varies_p): Same. + (count_occurrences): Same. + (regs_set_between_p): Same. + (modified_between_p): Same. + (modified_in_p): Same. + (volatile_insn_p): Same. + (volatile_refs_p): Same. + (side_effects_p): Same. + (may_trap_p): Same. + (inequality_comparisons_p): Same. + (replace_regs): Same. + (computed_jump_p_1): Same. + + * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th + argument. + (inner_mode_array): New. + (copy_rtx): Handle vectors. + (copy_most_rtx): Same. + (rtx_equal_p): Same. + (get_mode_alignment): Adjust for vectors. + + * resource.c (mark_referenced_resources): Handle vectors. + (mark_set_resources): Same. + + * reload1.c (eliminate_regs): Handle vectors. + (elimination_effects): Same. + (scan_paradoxical_subregs): Same. + + * reload.c (subst_reg_equivs): Handle vectors. + + * regrename.c (scan_rtx): Handle vectors. + + * regclass.c (reg_scan_mark_refs): Handle vectors. + + * recog.c (find_single_use_1): Handle vectors. + + * local-alloc.c (equiv_init_varies_p): Handle vectors. + (contains_replace_regs): Same. + (memref_referenced_p): Same. + + * integrate.c (copy_rtx_and_substitute): Handle vectors. + (subst_constants): Same. + + * genattrtab.c (attr_copy_rtx): Handle vectors. + (encode_units_mask): Same. + (clear_struct_flag): Same. + (count_sub_rtxs): Same. + + * gcse.c (want_to_gcse_p): Handle vectors. + (oprs_unchanged_p): Same. + (hash_expr_1): Same. + (oprs_not_set_p): Same. + (expr_killed_p): Same. + (compute_transp): Same. + (store_ops_ok): Same. + + * function.c (purge_addressof_1): Do not allow paradoxical subregs + of vectors. + (fixup_var_refs_1): Same. + (instantiate_virtual_regs_1): Same. + + * fold-const.c (operand_equal_p): Handle vectors. + (fold): Same. + (rtl_expr_nonnegative_p): Same. + + * flow.c (mark_used_regs): Handle vectors. + + * df.c (df_uses_record): Handle vectors. + + * cselib.c (cselib_subst_to_values): Handle vectors. + (cselib_mem_conflict_p): Same. + (hash_rtx): Same. + + * cse.c (canon_reg): Handle vectors. + (fold_rt): Same. + (cse_process_notes): Same. + (count_reg_usage): Same. + (canon_hash): Same. + + * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR. + + * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR. + + * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors. + (gen_rtx): Handle CONST_VECTOR. + (gen_const_vector_0): New. + (copy_rtx_if_shared): CONST_VECTORs can be shared. + (reset_used_flags): Same. + (copy_insn_1): Same. + (initializer_constant_valid_p): Handle VECTOR_CST. + + * doc/c-tree.texi (Expression trees): Document VECTOR_CST. + + * doc/rtl.texi (Constants): Document const_vector. + (CONST0_RTX): Update for vectors. + (RTL sharing): Same. + + * print-tree.c (print_node): Add case for VECTOR_CST. + + * tree.h (TREE_VECTOR_CST_ELTS): New. + (struct tree_vector): New. + (union tree_node): Add vector node. + (build_vector): Add prototype. + + * tree.def (VECTOR_CST): New. + + * tree.c (build_vector): New. + + * expmed.c (make_tree): Handle CONST_VECTOR. + + * rtl.h (CONSTANT_P): CONST_VECTORs are constants too. + (CONST_VECTOR_ELT): New. + (CONST_VECTOR_NUNITS): New. + + * machmode.h (GET_MODE_INNER): New. + (DEF_MACHMODE): Accept 8th arg. + + * machmode.def: Add 8th argument for vector inner mode. + Add inner vector modes for vectors. + + * rtl.def (VEC_CONST): Remove. + (CONST_VECTOR): New. + + * expr.c (clear_storage): Allow vectors. + (is_zeros_p): Handle VECTOR_CST. + + * varasm.c (output_constant_pool): Handle vectors. + (rtx_const): Add veclo and vechi fields. + (kind): Add RTX_VECTOR. + (decode_rtx_const): Add case for vector. + + * config/rs6000/rs6000-protos.h: Add zero_constant. + + * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector + constants. Force easy vector constants into memory. + (easy_vector_constant): New. + (emit_easy_vector_constant): New. + (rs6000_legitimize_reload_address): Do not generate bad reloads on + darwin. + + * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what + instruction does. + ("altivec_lvxl"): Same. + (altivec_lvebx): Same. + (altivec_lvehx): Same. + (altivec_lvewx): Same. + ("*movv4si_const0"): New. + ("*movv4sf_const0"): New. + ("*movv8hi_const0"): New. + ("*movv16qi_const0"): New. + +2002-02-18 Kazu Hirata + + * config/h8300/h8300.c (notice_update_cc): Use + cc_status.value2. + +2002-02-18 Kazu Hirata + + * config/h8300/h8300.md (divmod patterns): Change the + constraints for operands[1] to register_operand. + +2002-02-18 Kazu Hirata + + * config/h8300/h8300-protos.h: Remove the prototype for + p_operand. + * config/h8300/h8300.c (p_operand): Remove. + * config/h8300/h8300.md: Replace p_operand with + const_int_operand. + +2002-02-18 Philip Blundell + + * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in + comment. + (output_return_instruction): Allow use of LDR to unstack + return addresss even for interrupt handlers or when + interworking. If compiling for ARMv5, use interworking-safe + return instructions by default. Remove duplicated code and + lengthy "strcat" sequences. + +2002-02-18 Franz Sirl + + * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static. + (LINK_EH_SPEC): Define. + * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o. + +2002-02-18 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologue): Do not set the + frame_related flag for call-clobbered registers. + +Mon Feb 18 15:07:35 CET 2002 Jan Hubicka + + * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode. + (construct_container): Fix handling of SSE operands. + (ix86_expand_builtin): Fix handling of 64bit pointers. + (mmx_maskmovq_rex): New pattern. + +Mon Feb 18 11:55:55 CET 2002 Jan Hubicka + + * regrename.c (kill_set_value): Handle subregs properly. + +2002-02-18 David Billinghurst + + * objc/objc-act.c (handle_impent): Remove leading '*' + from objc_class_name. + +2002-02-17 Richard Henderson + + * config/alpha/alpha.c (some_small_symbolic_operand, + some_small_symbolic_operand_1, split_small_symbolic_operand, + split_small_symbolic_operand_1): Rename from *symbolic_mem_op*. + Handle small SYMBOL_REFs anywhere, not just inside memories. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + * config/alpha/alpha.md (small symbolic operand splitter): Update. + +2002-02-17 Roland McGrath + + * config.gcc (powerpc-*-gnu-gnualtivec*, + powerpc-*-gnu*, powerpc64-*-gnu*): New configurations. + * config/rs6000/gnu.h: New file. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): + Grok "gnu" in rs6000_abi_name. + (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, + CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): + Grok -mcall-gnu analogous to -mcall-linux et al. + (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC, + LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros. + (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them. + +2002-02-17 Jakub Jelinek + + PR c/3444: + * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit + shortening. + +2002-02-17 Philipp Thomas + + * config/cris/cris.h: Undefine STARTFILE_SPEC and + ENDFILE_SPEC before (re)defining them. + +2002-02-17 Kazu Hirata + + * config/h8300/h8300.c: Fix formatting. + * config/h8300/h8300.h: Likewise. + +2002-02-17 Philipp Thomas + + * doc/tm.texi: Explain why empty strings should not be + marked for translation. + +2002-02-17 Philipp Thomas + + * final.c (output_operand_lossage): Changed to accept + printf style arguments. Change calls where necessary. + * output.h (output_operand_lossage): Change declaration + accordingly. Update copyright. + * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c + config/m88k/m88k.c : Adapt all calls to output_operand_lossage. + Update copyright date where necessary. + + * config/i386/i386.c (print_operand): Likewise. Remove use of + sprintf. + + * config/cris/cris.c (cris_operand_lossage): Likewise. + Rename parameter so that exgettext recognizes it as + translatable message. + (LOSE_AND_RETURN): Rename parameter to msgid. + +2002-02-17 Kazu Hirata + + * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a + hard coded register number with an appropriate macro. + (HARD_REGNO_MODE_OK): Likewise. + (ARG_POINTER_REGNUM): Likewise. + (STATIC_CHAIN_REGNUM): Likewise. + (RETURN_ADDRESS_POINTER_REGNUM): Likewise. + * config/h8300/h8300.md (define_constants): Define more + register numbers. + +2002-02-17 Philipp Thomas + + * config/i386/i386.h: Don't mark empty strings for translation. + +2002-02-16 H.J. Lu + + * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New. + +2002-02-16 Zack Weinberg + + * cppinit.c (merge_include_chains): Check for brack being + NULL before attempting to merge it with qtail. + +2002-02-16 Andrew Cagney + + * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to + DBX_DEBUG. + +2002-02-16 John David Anglin + + * pa/t-pa, pa/t-pro, som.h: Revert last patch. + +2002-02-16 John David Anglin + + * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm. + * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. + * som.h (DO_GLOBAL_DTORS_BODY): Delete define. + +Sat Feb 16 13:48:50 2002 Richard Kenner + + * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms; + now only if !TARGET_FIX. + (*movsi_nt_vms_fix): New pattern. + +2002-02-16 Douglas B Rupp + + * config/alpha/alpha.c: Implement null frame procedure types on VMS. + (alpha_procedure_type): Replaces alpha_is_stack_procedure. + (alpha_sa_mask, alpha_sa_size): Reflect above change. + (alpha_pv_save_size, alpha_expand_prologue): Likewise. + (alpha_start_function, alpha_expand_epilogue): Likewise. + (unicosmk_gen_dsib): Likewise. + +Sat Feb 16 13:39:09 2002 Richard Kenner + + * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE. + +2002-02-16 Ulrich Weigand + + * config/s390/s390.c (pool_stop_uid, other_chunk, far_away, + check_and_change_labels, s390_final_chunkify): Delete. + (s390_split_branches, s390_chunkify_pool): New functions. + (s390_function_prologue): Call them. + + * config/s390/s390.h (S390_REL_MAX): Delete. + (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values. + + * config/s390/s390.md (cjump, icjump, jump): Fix length + attribute calculation. + + +2002-02-15 David Edelsohn + + * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete. + * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64. + +2002-02-15 John David Anglin + + * gcc.c (init_gcc_specs): Revert patch from 2002-02-15. + * config/pa/pa-linux.h (LIB_SPEC): Likewise. + * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise. + +2002-02-15 Richard Sandiford + + * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls. + +2002-02-15 Richard Sandiford + + * reload.c (find_dummy_reload): Check that an output register + is valid for its mode. + +2002-02-14 Alexandre Oliva + + * combine.c (known_cond): After replacing the REG of a SUBREG, try + to simplify it. + + * function.c (assign_parms): Demote promoted argument passed by + transparent reference. + +2001-02-14 Joel Sherrill + + * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant + -Acpu() and -Amachine() to eliminate warnings. + +2002-02-14 Ulrich Weigand + + * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New. + +2002-02-14 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype for + const_costs. + * config/h8300/h8300.c (const_costs): Treat SET as a little + more expensive operation. + * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the + reference to const_costs. + +2002-02-14 Hans-Peter Nilsson + + * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting. + +2002-02-14 Jakub Jelinek + + PR c/5503: + * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL, + use arguments from newtype. + +2002-02-13 Eric Christopher + + * config/mips/mips.c (override_options): Add check for march/mipsX + on the same command line. Fix error message in cpu processing. + Remove architecture and ISA checks. + +2002-02-14 Aldy Hernandez + + * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors. + + * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX. + +2002-02-14 Aldy Hernandez + + * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r + alternatives. + ("*movv8hi_internal1"): Same. + ("*movv16qi_internal1"): Same. + ("*movv4sf_internal1"): Same. + + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do + not push_reload for altivec modes. + +2002-02-13 Joel Sherrill + + * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across + all RTEMS targets including removal of #includes from config/*/rtems*.h + file and adding them to tm_file setting. Added xm_defines=POSIX to + many targets. + * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto. + * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto. + * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto. + * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto. + * config.gcc (m68k-*-rtems*), config/m68k/rtems.h, + config/m68k/rtemself.h: Ditto. + * config.gcc (mips*-*-rtems*), config/mips/rtems.h, + config/mips/rtems64.h: Ditto. + * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto. + * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h: + Ditto. + * config.gcc (sparc-*-rtems*), config/sparc/rtems.h, + config/sparc/rtemself.h: Ditto. + * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto. + * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved + arm-rtems stanza closer to other arm-elf targets and made arm-rtems + more like arm-elf. + * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h, + config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself + target made more similar to i386-elf. + * config/i386/t-rtems-i386: Added soft float support and multilibs. + * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to + be similar to config/m68k/t-m68kelf. + * gthr-rtems.h: Encapsulate with extern "C" for C++. + +Wed Feb 13 23:41:15 CET 2002 Jan Hubicka + + * regmove.c (kill_value): Handle subregs. + +Wed Feb 13 23:34:30 CET 2002 Jan Hubicka + + * i386.md (mul patterns): Allow memory operand to be first; + add expanders where needed; fix constraints. + (min?f_nonieee, max?f_nonieee, SSE TImode patterns): + Allow memory operand to be the first. + + * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping + operands. + +2002-02-13 Jakub Jelinek + + PR c/5681: + * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of + GET_MODE (x). + +2002-02-13 Jakub Jelinek + + PR optimization/5547: + * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify + all valid IA-32 address modes involving non-scaled %ebx and + GOT/GOTOFF as displacement. + +2002-02-13 Ulrich Weigand + + * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches + after emitting ltorg insns. + + * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0, + *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3, + *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2, + *abssf2): Fix "op_type" attribute. + +2002-02-13 Douglas B Rupp + + * mkconfig.sh: Avoid using a subshell redirect. + ($output.T): Change to $(output)T. + (ENABLE_NLS): Remove unneeded undef. + + * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define. + * config/alpha/x-vms (libsubdir): Define. + + * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle + register frame procedures. Optimize retrieving context. + + * config/alpha/t-vms (MULTILIB_OPTIONS): Define. + (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise. + * config/alpha/vms.h (ASM_FILE_START): Write .arch directive. + +Wed Feb 13 09:45:08 2002 Richard Kenner + + * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND): + Make same change as for find_base_value. + +2002-02-13 Kazu Hirata + + * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination + of QImode and SImode. + +2002-02-13 Kazu Hirata + + * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the + length computation of movsi. + * config/h8300/h8300.md (movsi_h8300hs): Correct the length. + +2002-02-13 Kazu Hirata + + * config/h8300/h8300.md (subqi3): Tighten the predicate for + operands[2] to register_operand. + +Wed Feb 13 10:35:56 CET 2002 Jan Hubicka + + * i386.md (fop_*_comm_*): allow nonimmediate in the first operand. + +2002-02-12 Aldy Hernandez + + * config/rs6000/rs6000.md: Use predicate altivec_register_operand + for altivec_lvx* and altivec_stvx*. + ("*movv4si_internal"): Add constraint for loading from GPRs. + ("*movv8hi_internal1"): Same. + ("*movv16qi_internal1"): Same. + ("*movv4sf_internal1"): Same. + + * config/rs6000/rs6000.c (altivec_register_operand): New. + + * config/rs6000/rs6000.h (PREDICATE_CODES): Add + altivec_register_operand. + +2002-02-13 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_assemble_integer) : Don't + handle SYMBOL_REF. + +2002-02-13 Stan Shebs + + * c-typeck.c (digest_init): Handle vectors. + (really_start_incremental_init): Same. + (pop_init_level): Same. + (process_init_element): Same. + + * varasm.c (output_constant): Same. + + * expr.c (clear_storage): Same. + (store_constructor): Same. + +2002-02-12 Eric Christopher + + * explow.c (hard_function_value): Add comment explaining + signed/unsigned comparison. + +2002-02-12 Jakub Jelinek + + * jump.c (never_reached_warning): Add finish argument. + If finish is NULL, stop on CODE_LABEL, otherwise stop before first + real insn after end. + * rtl.h (never_reached_warning): Adjust prototype. + * cse.c (cse_insn): Pass NULL as finish to never_reached_warning. + * cfgrtl.c (flow_delete_block): Pass b->end as finish to + never_reached_warning. + +2002-02-12 Graham Stott + + * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos. + +2002-02-12 Kazu Hirata + + * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit + logical shifts on H8/300. + (shift_alg_si): Improve several shifts on H8/300. + (get_shift_alg): Likewise. + +2002-02-12 Graham Stott + + * config/pa/pa.c (compute_movstrsi_length): Fix typos. + +Tue Feb 12 10:12:56 2002 Richard Kenner + + * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND): + Handle #ifdef POINTERS_EXTEND_UNSIGNED. + +2002-02-11 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_assemble_integer) : Handle + non-CONST_INT through default_assemble_integer. + : Likewise, for non-CONST_INT, non-SYMBOL_REF. + : Abort for CONST_DOUBLE. + +2002-02-11 John David Anglin + + * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared" + is specified. + * config/pa/pa-linux.h (LIB_SPEC): Delete. + * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete. + +2002-02-11 Andrew Haley + + * config/stormy16/stormy16.md (zero_extendqihi2): New. + +2002-02-11 Alexandre Oliva + + * regrename.c (regrename_optimize): Don't accept a + part-clobbered register if the replaced register is not part + clobbered. + + * calls.c (store_one_arg): In the non-BLKmode non-partial case, + take padding into account when computing the argument value. + + * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error. + + * combine.c (try_combine): Apply substitutions in + CALL_INSN_FUNCTION_USAGE too. + +2002-02-11 Aldy Hernandez + + * config/rs6000/rs6000.c (altivec_init_builtins): Handle + __builtin_altivec_abs*. + (bdesc_abs): New. + + * config/rs6000/rs6000.h (rs6000_builtins): Add + ALTIVEC_BUILTIN_ABS*. + + * config/rs6000/altivec.h: Use const char for builtins expecting + literals. + (vec_abs): New versions for C and C++. + (vec_abss): Same. + +2002-02-10 Kazu Hirata + + * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by + using Pmode. + +2002-02-10 Kazu Hirata + + * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the + constant definition from h8300.md. + (FRAME_POINTER_REGNUM): Likewise. + * config/h8300/h8300.md (define_constants): Add FP_REG. + +2002-02-10 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Remove redundant code. + +2002-02-10 Kazu Hirata + + * config/h8300/h8300-protos.h: Remove the prototype for byte_reg. + * config/h8300/h8300.c (byte_reg): Make it static. + +2002-02-10 Richard Henderson + + PR c/5623 + * c-typeck.c (incomplete_type_error): Handle flexible array members. + +2002-02-10 Richard Henderson + + PR c++/5624 + * tree.c (append_random_chars): Don't abort if main_input_filename + does not exist. + +2002-02-10 Hans-Peter Nilsson + + * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable. + +2002-02-10 Kazu Hirata + + * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used. + (pushhi1): Likewise. + +2002-02-10 John David Anglin + + * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand. + * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand. + +2002-02-09 David O'Brien + + * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and + remove MASK_VIS. + (ASM_CPU_DEFAULT_SPEC): Remove. Default setting is fine. + +2002-02-09 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Use sub.w to clear + a half of an SImode register on H8/300. + +Sat Feb 9 18:28:02 CET 2002 Jan Hubicka + + * i386.md (movdi_2): Add missing '!'. + +2002-02-09 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. Remove commented-out + definitions. + +2002-02-09 Kazu Hirata + + * config/h8300/h8300.md (length): Correct the distance valid + for the short branch. + +2002-02-09 Kazu Hirata + + * config/h8300/h8300.md (iorhi3): Tighten the predicates. + +2002-02-09 Alexandre Oliva + + * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered + registers in SImode. + (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as + part-clobbered. + + * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's + patch. + + Contribute sh64-elf. + 2002-02-09 Alexandre Oliva + * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to... + (sh_cannot_modify_jumps_p): New function. + 2002-02-05 Alexandre Oliva + * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to... + (sh_ms_bitfield_layout_p): New function. + 2002-02-04 Alexandre Oliva + Zack Weinberg + * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use + expand_simple_binop instead of expand_binop. + 2002-02-03 Alexandre Oliva + * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable + use of .quad and .uaquad. + * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP, + TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above. + 2002-01-24 Alexandre Oliva + * config/sh/sh.md (movdi_const, movdi_const_32bit, + movdi_const_16bit): Make sure all CONSTs have modes. + (sym2PIC): Ditto, but by adjusting all callers. + * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live + if the prologue calls the SHmedia argument decoder or register + saver. + 2002-01-24 Alexandre Oliva + * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define. + (TARGET_ASM_ALIGNED_DI_OP): Likewise. + (sh_expand_epilogue): Don't emit USE of return target register. + (prepare_move_operands): Legitimize DImode PIC addresses. + (sh_media_register_for_return): Skip tr0, used to initialize the + PIC register. + (sh_expand_prologue): Remove explicit USE of return register. + (nonpic_symbol_mentioned_p): PC is non-PIC. Don't recurse in + CONST_DOUBLEs. UNSPEC_GOTPLT is PIC. + * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete. + (OVERRIDE_OPTIONS): Don't disable PIC on SH5. + (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of + EXTRA_CONSTRAINT_T. + (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New. + (MOVI_SHORI_BASE_OPERAND_P): New. + (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New. + (EXTRA_CONSTRAINT_T): Define in terms of them. + (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT. + * config/sh/sh.md (movsi_media, movsi_media_nofpu, + movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to + alternatives supporting TARGET_REGS. + (UNSPEC_GOTPLT): New constant. + (movdi split): Move incrementing of LABEL_NUSES... + (movdi_const, movdi_const_32bit): Here. Use + MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T. + (movdi_const_16bit): New. + (call, call_value) [flag_pic]: Use GOTPLT. + (call_pop, call_value_pop): New expands. + (call_pop_compact, call_pop_rettramp): New insns. + (call_value_pop_compact, call_value_pop_rettramp): New insns. + (sibcall) [flag_pic]: Use GOT. + (builtint_setjmp_receiver): Remove bogus, unused expand. + (GOTaddr2picreg): Implement for SHcompact and SHmedia. + (*pt, *ptb, ptrel): New insns. + (sym2GOT): Handle DImode GOT. + (sym2GOTPLT, symGOTPLT2reg): New expands. + (sym2PIC): New expand. + (shcompact_return_tramp): Use GOTPLT to return trampoline. + (shcompact_return_tramp_i): Use return register explicitly. + * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't + disable flag_reorder_blocks. + 2002-01-19 Alexandre Oliva + * config/sh/sh.md (sibcall_compact): Reorder return, uses and + clobbers, for clarity. + (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and + restoring of r0 in macl as MAYBE_DEAD. + 2002-01-18 Alexandre Oliva + * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define. + * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of + alter_subreg all over. + (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after + reload, instead of emitting instructions that would require + reloading. + (casesi_load_media): Add missing modes. + 2001-11-09 Alexandre Oliva + * config/sh/sh.c (sh_expand_prologue): Mark the PIC register + as used if the argument decoder is called. + 2001-08-28 Alexandre Oliva + * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in + Pmode, then extend it to DImode if necessary. + 2001-08-28 Stephen Clarke + * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode + constants in FPU-enabled SHmedia, let them be loaded from memory. + 2001-08-28 Alexandre Oliva + * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): + Adjust whitespace in assembly output templates. + 2001-08-28 Stephen Clarke + * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust + mode of if_then_else. + 2001-08-04 Alexandre Oliva + * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in + sh.h. + 2001-07-26 Andrew Haley + Joern Rennecke + * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New. + (SUBTARGET_CPP_PTR_SPEC): New. + (SUBTARGET_CPP_SPEC): Remove. + 2001-07-06 Chandrakala Chavva + * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1): + Fix typo in previous checkin. + 2001-07-11 Chandrakala Chavva + * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations. + 2001-07-10 Chandrakala Chavva + Alexandre Oliva + * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than + what single FP register can hold for SHmedia target. + 2001-07-06 Chandrakala Chavva + Alexandre Oliva + * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1): + Do not split into SUBREG. + 2001-06-14 Alexandre Oliva + * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures + and added new functions as specified in SH5 ABI r9. + 2001-06-04 Alexandre Oliva + * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an + 8-byte boundary. + 2001-06-03 Alexandre Oliva + * config/sh/sh.c (dump_table): Add const0_rtx in calls of + gen_consttable_4 and gen_consttable_8. Emit multiple labels + and consttable_window_ends. + 2001-06-03 Graham Stott + * config/sh/sh.md (movdi split): Remove unused variable last_insn. + 2001-05-16 Alexandre Oliva + * config/sh/sh.c (print_operand): Handle floating-point pair, + vector and matrix registers. + * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer + vector modes into account. + * config/sh/sh.md (movv2sf): Split move between registers into + movdf. + (movv4sf, movv16sf): Introduce insns that get split only after + reload. + * config/sh/shmedia.h: Fix Copyright dates. + * config/sh/ushmedia.h: Likewise. Move loop counter + declarations into conditionals that uses them. + (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in + loop boundary. + * config/sh/sshmedia.h: Fix Copyright dates. + (sh_media_PUTCFG): Fix constraints. + 2001-05-12 Alexandre Oliva + * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to + ptrmemfunc_vbit_in_delta for SH5. + 2001-05-08 Alexandre Oliva + * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*. + * invoke.texi: Likewise. + 2001-04-14 Alexandre Oliva + * config/sh/lib1funcs.asm (GCC_push_shmedia_regs, + GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs, + GCC_pop_shmedia_regs_nofpu): New global symbols. + * config/sh/t-sh64 (LIB1ASMFUNCS): Add them. + * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro. + * config/sh/sh.c (calc_live_regs): Account for PR's saving in + compact function with nonlocal labels. + (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed. + (sh_expand_epilogue) [SHcompact]: Pop them when appropriate. + (initial_elimination_offset): Account for their stack space. + * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn. + * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media, + movhi_media, movdi_media, movdi_media_nofpu, movdf_media, + movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at + least one of the operands to be a register. + (movv2sf): Likewise. Renamed to movv2sf_i. + (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf): + prepare_move_operands() before emitting SHmedia insns. + 2001-04-03 Alexandre Oliva + * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]: + Don't save nor initialize r12. Don't mis-align the stack. + Pad the code with a nop. + * config/sh/crti.asm: Don't restore r12. Don't mis-align the + stack. + 2001-03-13 Alexandre Oliva + * gcc/longlong.h (__umulsidi3, count_leading_zeros) + [__SHMEDIA__]: Implement. + 2001-03-11 Alexandre Oliva + * config/sh/sh.md: Set latency of `pt' closer to reality. + (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu, + movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu): + Set move, load and store type attributes. + * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3. + * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable + profiling. + * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode. + * config/sh/sh-protos.h (sh_media_register_for_return): Declare. + * config/sh/sh.c (sh_media_register_for_return): New function. + (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available + branch-target register. + (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it. + * config/sh/sh.md (return_media_i): Use any call-clobbered + branch-target register. + (return_media): If r18 wasn't copied in the prologue, copy it + here. + * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]: + Clear class FP0_REGS. + * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied + from elf.h. + 2001-03-08 DJ Delorie + * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA. + 2001-02-09 Alexandre Oliva + * config/sh/sh.md (sibcall_compact): Set fp_mode to single. + 2001-02-07 Alexandre Oliva + * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'. + 2001-02-03 Alexandre Oliva + * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode + return value correctly for call_cookie. + 2001-02-01 Alexandre Oliva + * config/sh/crt1.asm (start): Modified so as to call + ___setup_argv_and_call_main. + 2001-01-26 Alexandre Oliva + * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in + SHmedia mode. + 2001-01-20 Alexandre Oliva + * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro. + (STRIP_NAME_ENCODING): Use it. + (ASM_OUTPUT_LABELREF): Likewise. Don't call assemble_name(). + 2001-01-19 Alexandre Oliva + * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of + prepare_scc_operands(). + * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"... + (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here. + 2001-01-17 Alexandre Oliva + * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'. + 2001-01-13 Alexandre Oliva + * config/sh/sh.md (shcompact_incoming_args): Use R0_REG. + * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants, + used in shcompact_incoming_args. + * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous + change. + * config/sh/crt1.asm (start) [SH5]: Switch to single-precision + mode. + * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr): + Adjust accordingly. + * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue): + Simplify. Adjust. Add sanity check. + * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set + FPU_SINGLE_BIT. + * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match + TARGET_SHCOMPACT. + (udivsi3, divsi3): Use them. + (force_mode_for_call): New insn. + (call, call_value, sibcall_value): Emit it before SHcompact + calls. + 2001-01-11 Alexandre Oliva + * config/sh/sh.md (call, call_value, sibcall): Make sure the + call cookie is non-NULL before taking its value. + 2001-01-10 Alexandre Oliva + * config.gcc (sh64): Set target_requires_64bit_host_wide_int. + 2001-01-09 Alexandre Oliva + * config/sh/sh.md (shcompact_incoming_args): Set argument memory + block. + * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1. + * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as + temporary for stack adjusts. Use MACL and MACH to pass + arguments to shcompact_incoming_args. + * config/sh/sh.md (shcompact_incoming_args): Adjust. Don't + clobber r1. + * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise. + (nested_trampoline): Load static chain address into r1. + * config/sh/sh.md (movdi_media splits): Fix sign-extension. + 2001-01-07 Alexandre Oliva + * config/sh/sh.md (casesi): Sign-extend the first two operands, + and use signed compares for them. + * config/sh/sh.c (dump_table): Don't emit 8-byte constants after + 4-byte ones. Instead, inter-leave them, maintaining the 8-byte + ones properly aligned. + (find_barrier): Account for extra alignment needed for 8-byte wide + constants. + (machine_dependent_reorg): Require a label for the second 4-byte + constant after an 8-byte one. + * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's + change. + 2001-01-05 Alexandre Oliva + * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset + last_float when switching float modes. + * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer + auto-increment for general-purpose registers. + * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the + result. + * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary + for stack adjust. + * config/sh/sh.c (sh_builtin_saveregs): Support using all + registers for varargs. + 2001-01-01 Alexandre Oliva + * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify. + * config/sh/sh.h (CALL_COOKIE_STACKSEQ, + CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros. + (CALL_COOKIE_INT_REG_SHIFT): Adjust. + (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK. Adjust + call_cookie accordingly. + (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK. + (SHCOMPACT_BYREF): Likewise. + (SHCOMPACT_FORCE_ON_STACK): New macro. + * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format. + (sh_builtin_saveregs): Likewise. + * config/sh/lib1funcs.asm (shcompact_call_trampoline, + shcompact_incoming_args): Use new shift values. Support + sequences of consecutive and non-consecutive pushes/pops. + * config/sh/sh.md (return): Don't explicitly use PR_REG. + 2001-01-05 Hans-Peter Nilsson + * config/sh/sh.h (TEXT_SECTION): Define. + * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP. + 2001-01-05 Alexandre Oliva + * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro. + * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for + return values on FPU-enabled SHmedia. + (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on + FPU-enabled SHmedia. + (INIT_CUMULATIVE_ARGS): Set up return trampoline only if + value is returned in a non-FP reg and is not returned by + reference. + * config/sh/sh.md (shcompact_return_tramp_i): Change type to + jump_ind. + 2000-01-04 Alexandre Oliva + * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New. + (FUNCTION_ARG_CALLEE_COPIES): Require argument to be + quad-aligned to be passed by callee-copy reference. + 2001-01-03 Alexandre Oliva + * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define. + * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine. + 2001-01-02 Alexandre Oliva + * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in + copying low-numbered FP regs to r7 and r8. + * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of + FP regs to general-purpose regs only if the copy was passed on the + stack. + * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in + copying FP reg to r9. + * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to + copy FP regs to general-purpose regs only in outgoing calls. + * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect + change from 2000-10-30. Adjust for 64-bit (or 32-bit) + HOST_WIDE_INT. + * config/sh/sh.h (struct sh_args): Document all fields. + (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments + passed partially on the stack should not consider making + sibcalls. + * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to + stack_regs only for incoming calls. When passing FP args, + make sure there are FP regs available before modifying + call_cookie. + (SHCOMPACT_BYREF): Pass double args in general-purpose + registers by reference. + 2000-12-30 Alexandre Oliva + * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't + attempt to generate sibcalls if the caller got any arguments + by reference. + * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double. + * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode + to 8-byte boundaries. + * config/sh/sh.md (shcompact_preserve_incoming_args): New insn. + * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro. + * config/sh/sh.c (sh_expand_prologue): Preserve args that will be + stored in the stack. + * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange + for the offsets to have the ISA bit set. + (shcompact_call_trampoline): Document. Swap r0 and r1, to match + invocation. Use beq instead of bgt to mark end of sequence of + loads. + (shcompact_incoming_args): Fix store of r2. Use beq instead of + bgt to mark end of sequence of stores. + * config/sh/sh.c (arith_operand): Don't check whether + CONST_OK_FOR_J for now. + * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT + instead of long for conversion. + 2000-12-29 Alexandre Oliva + * config/sh/sh.c (print_operand_address): Convert INTVAL to int + before passing it to fprintf. + 2000-12-28 Alexandre Oliva + * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit. + Call set_fpscr before reading/writing SR. + * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR. + Call set_fpscr. + * config/sh/lib1funcs.asm: Add `.align 2' directives before + SHmedia code. + (FMOVD_WORKS): Define on SH5 with FPU. + (set_fpscr): Define on SH5. Remove separate _fpscr_values + setting. + * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of + _fpscr_values. + 2000-12-28 Hans-Peter Nilsson + * config/sh/lib1funcs.asm (ct_main_table): Align contents to even + address. + (ia_main_table): Ditto. + 2000-12-27 Alexandre Oliva + * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define. + * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate + the definitions from sh.h. + * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on + TARGET_SH5. + (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined. + * config/sh/elf.h (PTRDIFF_TYPE): Likewise. + * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise. + 2000-12-26 Alexandre Oliva + * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes. + Increment LABEL_NUSES. + + * config/sh/sh.h (SIZE_TYPE): Define as conditional on + TARGET_SH5. + (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always + defined. + * config/sh/elf.h (SIZE_TYPE): Likewise. + * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise. + * config/sh/lib1funcs.asm (shcompact_call_trampoline, + shcompact_incoming_args): Load switch table addresses using + datalabel. + * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__. + (NO_BUILTIN_SIZE_TYPE): Define. + (SIZE_TYPE): Don't define. + * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__. + * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the + definition of __SH5__=32 for -m5-compact-nofpu. + * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after + ADDR_DIFF_VEC. + 2000-12-24 Alexandre Oliva + * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed. + 2000-12-23 Alexandre Oliva + * config/sh/sh.h (TARGET_CACHE32): Enable on SH5. + (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia. + (INSN_LENGTH_ALIGNMENT): Likewise. + 2000-12-22 Alexandre Oliva + * config/sh/sh.md (call, call_value, sibcall): Simplify + copying of non-branch-target register. + 2000-12-22 Alexandre Oliva + * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch. + * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia. + 2000-12-22 Alexandre Oliva + * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex + floating-point values as structs. + (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG. + (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before + general-purpose register. + (SH5_PROTOTYPED_FLOAT_ARG): New macro. + 2000-12-20 Alexandre Oliva + * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia. + * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too. + * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST. + (ENCODE_SECTION_INFO): Enclose variables and constants in + DATALABEL unspecs. + (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define. + (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off. + (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define. + * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL + only for LABEL_REFs. For SYMBOL_REFs, prepend + SH_DATALABEL_ENCODING to the symbol name. + * config/sh/sh.md (indirect_jump): Use SUBREG instead of + convert_mode(). + 2000-12-20 Alexandre Oliva + * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in + UNSPEC_DATALABEL. + * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs. + * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise. + (DATALABEL_REF_P): Don't require CONST. + (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before + REL label. + 2000-12-19 Alexandre Oliva + * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift + right. + 2000-12-18 Alexandre Oliva + * config/sh/sh.md (movsi_media, call, call_value, sibcall): + Use shallow_copy_rtx and PUT_MODE to change the mode of + SYMBOL_REFs, LABEL_REFs, CONSTs, etc. + * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs + on SHmedia using GENERAL_REGs. + * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i, + bltu_media_i): Fix reversion of conditions. + 2000-12-18 Alexandre Oliva + * config/sh/sh.md (zero_extendhidi2): Use logical shift right. + * config/sh/sh.c (output_far_jump): Save r13 in macl. + 2000-12-17 Alexandre Oliva + * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC. + 2000-12-16 Alexandre Oliva + * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5. + (GCC_nested_trampoline): Likewise. + * config/sh/sh-protos.h (gen_datalabel_ref): Declare. + * config/sh/sh.c (gen_datalabel_ref): Define. + * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5. + (INITIALIZE_TRAMPOLINE): Likewise. + (TRAMPOLINE_ADJUST_ADDRESS): Define. + (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define. + (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs. + (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs. + * config/sh/sh.md (UNSPEC_DATALABEL): New constant. + (ic_invalidate): Adjust for SH5. + (ic_invalidate_line_media, ic_invalidate_line_compact): New insns. + * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and + _nested_trampoline. + 2000-12-15 Alexandre Oliva + * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere. + (MOVE_MAX_PIECES): Set to 8 on SHmedia too. + 2000-12-14 Alexandre Oliva + * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb. + * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise. + 2000-12-14 Alexandre Oliva + * config/sh/sh.c (target_reg_operand): Match only target-branch + registers and pseudos that aren't virtual registers. + * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]: + Copy operands that don't match target_reg_operand to pseudos. + (call_media, call_value_media, sibcall_media): Use + target_reg_operand instead of target_operand. + 2000-12-13 Alexandre Oliva + * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits. + * config/sh/sh.c (target_reg_operand): Match hardware registers + other than branch-target registers. + * config/sh/sh.md (zero_extendqidi2): Input operand is %1. + * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global. + (fpscr_values) [SH5 == 32]: Define. + * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values. + * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]: + Handle function addresses coming in SUBREGs. + 2000-12-12 Alexandre Oliva + * config/sh/lib1funcs.asm (shcompact_call_trampoline, + shcompact_return_trampoline): Use datalabel where appropriate. + 2000-12-09 Alexandre Oliva + * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a + general-purpose register to copy one branch-target register to + another. + 2000-12-06 Alexandre Oliva + * config/sh/sh.c (target_operand): Accept LABEL_REFs and + SYMBOL_REFs with VOIDmode. + * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i, + bltu_media_i): New insns. + 2000-12-06 Alexandre Oliva + * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI. + (INIT_CUMULATIVE_ARGS): Likewise. + 2000-12-01 Alexandre Oliva + * machmode.def (V16SFmode): New mode. + * c-common.c (type_for_mode): Support V2SF and V16SF. + * tree.c (build_common_tree_nodes_2): Likewise. + * tree.h (tree_index): Likewise. + * calls.c (emit_call_1): Take args_so_far. Adjust all + callers. Introduce CALL_POPS_ARGS. + * tm.texi (CALL_POPS_ARGS): Document. + * config/sh/crt1.asm: Implement in SHmedia mode. + * config/sh/crti.asm, config/sh/crtn.asm: Likewise + * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags. + (DBX_REGISTER_NUMBER): Renumber registers for SH5. + * config/sh/lib1funcs.asm: Disable functions unused in SH5. + Implement divsi and udivsi in SHmedia mode. Introduce + SHcompact trampolines. + * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode + only in SHmedia64. + (regno_reg_class): Rewrite. + (fp_reg_names): Remove. + (sh_register_names, sh_additional_register_names): New. + (print_operand): Added `u'. Support SUBREGs in addresses. + Add parentheses around shifted CONSTs. + (output_file_start): Output .mode and .abi directives. + (shiftcosts, addsubcosts, multcosts): Adjust. + (output_stack_adjust): Compute alignment. Sanity-check SIZE. + (push_regs): Take array of HOST_WIDE_INTs. Adjust callers. + (calc_live_regs): Output to array of HOST_WIDE_INTs. Count + bytes, not registers. Take into account the need for the + SHcompact incoming args trampoline. Adjust all callers. + (sh_expand_prologue): Take stack_regs into account. Call + incoming args trampoline. Keep stack aligned as per SH5 ABI. + (sh_expand_epilogue): Take stack_regs into accoutn. Keep + stack aligned as per SH5 ABI. + (sh_builtin_saveregs): Support SH5 ABI. + (sh_build_va_list, sh_va_start): Likewise. + (initial_elimination_offset): Take alignment into account. + Compute location of PR according to the SH5 stack frame. + (arith_reg_operand): Reject branch-target registers. + (shmedia_6bit_operand): New. + (logical_operand): Use CONST_OK_FOR_P on SHmedia. + (target_reg_operand): Match DImode only. Accept SUBREGs. + (target_operand): New. + * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags. + (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI. Initialize + SIBCALL_REGS for SHmedia. + (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too. + (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New. + (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New. + (TARGET_SWITCHES): New SH5 flags. + (OVERRIDE_OPTIONS): Set SH5-specific options. Use + VALID_REGISTER_P to disable unsupported registers. + (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set. + (POINTER_SIZE, PARM_BOUNDARY): Adjust. + (FUNCTION_ARG_PADDING): Define. + (FASTEST_ALIGNMENT): Adjust. + (SH_REGISTER_NAMES_INITIALIZER): New. + (sh_register_names): Declare. + (DEBUG_REGISTER_NAMES): Define. + (REGISTER_NAMES): Define based on sh_register_names. + (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New. + (sh_additional_register_names): Declare. + (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia. + (FIRST_TARGET_REG, LAST_TARGET_REG): Define. + (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define. + (REGISTER_NATURAL_MODE): Define. + (FIRST_PSEUDO_REGISTER): Adjust. + (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust. + (HARD_REGNO_CALL_PART_CLOBBERED): Define. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust. + (VECTOR_MODE_SUPPORTED_P): Define. + (REG_CLASS_CONTENTS): Adjust. + (SMALL_REGISTER_CLASSES): Adjust. + (REG_ALLOC_ORDER): Adjust. + (INDEX_REG_CLASS): Adjust. + (CONST_OK_FOR_O, CONST_OK_FOR_P): New. + (CONST_OK_FOR_LETTER_P): Adjust. + (PREFERRED_RELOAD_CLASS): Adjust. + (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust. + (SECONDARY_INPUT_RELOAD_CLASS): Adjust. + (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust. + (FIRST_FP_PARM_REG): Adjust. + (CALL_POPS_ARGS): Define. + (FUNCTION_ARG_REGNO_P): Adjust. + (struct sh_args): New fields. + (GET_SH_ARG_CLASS): Adjust. + (INIT_CUMULATIVE_ARGS): Adjust. + (INIT_CUMULATIVE_INCOMING_ARGS): Define. + (FUNCTION_ARG_ADVANCE): Adjust. + (FUNCTION_ARG): Adjust. + (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define. + (FUNCTION_ARG_CALLEE_COPIES): Define. + (SH5_PROTOTYPELESS_FLOAT_ARG): Define. + (STRICT_ARGUMENT_NAMING): Define. + (PRETEND_OUTGOING_VARARGS_NAMED): Adjust. + (FUNCTION_ARG_PARTIAL_NREGS): Adjust. + (SH5_WOULD_BE_PARTIAL_NREGS): Define. + (SETUP_INCOMING_VARARGS): Adjust. + (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust. + (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust. + (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust. + (SUBREG_OK_FOR_INDEX_P): Adjust. + (EXTRA_CONSTRAINT_S): Update. + (EXTRA_CONSTRAINT_T): New. + (EXTRA_CONSTRAINT): Adjust. + (GO_IF_LEGITIMATE_INDEX): Adjust. + (GO_IF_LEGITIMATE_ADDRESS): Adjust. + (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust. + (MOVE_MAX): Adjust. + (MAX_MOVE_MAX): Define. + (Pmode): Adjust. + (CONST_COSTS): Adjust. + (REGISTER_MOVE_COST): Adjust. + (BRANCH_COST): Adjust. + (TEXT_SECTION_ASM_OP): Adjust. + (DBX_REGISTER_NUMBER): Adjust. + (ASM_OUTPUT_DOUBLE_INT): New. + (UNALIGNED_DOUBLE_INT_ASM_OP): New. + (PREDICATE_CODES): Adjust. + (PROMOTE_MODE): Adjust. + (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia. + * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber. + (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber. + (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New. + (DR0_REG, DR2_REG, DR4_REG): Renumber. + (TR0_REG, TR1_REG, TR2_REG): New. + (XD0_REG): Renumber. + (UNSPEC_COMPACT_ARGS): New. + (type): Added pt and ptabs. + (length): Default to 4 on SHmedia. Default pt length to 12 + and 20 on SHmedia32 and SHmedia64, respectively. + (pt): New function unit. + (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES. + Add whitespace between operands of SHmedia instructions. + (movdicc): Fix. + (adddi3_media, addsi3_media): Adjust constraints. + (subsi3) [SHmedia]: Force operand 1 into a register. + (udivsi3_i1_media, udivsi3_i4_media): New. + (udivsi3): Support SHmedia. + (divsi3_i1_media, divsi3_i4_media): New. + (divsi3): Support SHmedia. + (anddi3, iordi3, xordi3): Adjust constraints. + (zero_extendhidi2, zero_extendqidi2): New. + (extendsidi2, extendhidi2, extendqidi2): New. + (push, pop, push_e, push_fpul, push_4): Disable on SH5. + (pop_e, pop_fpul, pop_4): Likewise. + (movsi_media): Support FP and BT registers. + (movsi_media_nofpu): New. Adjust splits to DImode. + (lduw, ldub): Renamed to zero_extend* above. + (movqi_media): Fix typo. + (movdi_media): Support FP and BT registers. + (movdi_media_nofpu): New. Adjust splits for SHmedia32. + (movdi_const_32bit): New. + (shori_media): Require immediate operand. Use `u' for output. + (movdf_media, movsf_media): Simplified. + (movdf_media_nofpu, movsf_media_nofpu): New. + (movdf, movsf): Adjust + (movv2sf, movv2sf, movv16sf): New. + (beq_media, beq_media_i): Adjust constraints. Don't use + scratch BT register. + (bne_media, bne_media_i): Likewise. + (bgt_media, bgt_media_i): Likewise. + (bge_media, bge_media_i): Likewise. + (bgtu_media, bgtu_media_i): Likewise. + (bgeu_media, bgeu_media_i): Likewise. + (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, + bunordered): Emit jump insn. Force operands to registers when + needed. + (jump_media, jump): Simplify. + (call_compact, call_compact_rettramp): New. + (call_value_compact, call_value_compact_rettramp): New. + (call_media, call_value_media): Simplify. + (sibcall_compact, sibcall_media): New. + (call, call_value): Adjust for SHmedia and SHcompact. + (sibcall, sibcall_value, untyped_call): Likewise. + (sibcall_epilogue): Preserve r0 across epilogue for SHcompact. + (indirect_jump): Adjust for SHmedia. + (casesi_jump_media): New. + (nop): Re-enable for SHmedia. + (call_site): Restrict to SH1. + (casesi): Adjust for SHmedia. + (casesi_shift_media, casesi_load_media): New. + (return): Explicitly use PR register. Call return trampoline + on SHcompact. + (return_i): Explicitly use PR register. + (shcompact_return_tramp, shcompact_return_tramp_i): New. + (return_media): Adjust. + (shcompact_incoming_args): New. + (epilogue): Adjust. + (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust. + (movstrsi): Disable on SH5. + (fpu_switch0, fpu_switch1, movpsi): Enable on SH4. + (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU. + (subsf3, subsf3_media): Likewise. + (mulsf3, mulsf3_media, mac_media): Likewise. + (divsf3, divsf3_media): Likewise. + (floatdisf2, floatsisf2_media): Likewise. Adjust constraints. + (floatsisf2, fux_truncsfsi2): Likewise. + (fix_truncsfdi2, fix_truncsfsi2_media): Likewise. Adjust + constraints. + (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise. + (cmpunsf_media, cmpsf): Likewise. + (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise. + (abssf2, abssf2_media): Likewise. + (adddf3, adddf3_media, subdf3, subdf3_media): Likewise. + (muldf3, muldf3_media, divdf3, divdf3_media): Likewise. + (floatdidf2, floatsidf2_media): Likewise. Adjust constraints. + (floatsidf2, fix_truncdfsi2): Likewise. + (fix_truncdfdi2, fix_truncdfsi2_media): Likewise. Adjust + constraints. + (cmpeqdf_media, cmpgtdf_media): Likewise. + (cmpgedf_media, cmpundf_media, cmpdf): Likewise. + (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise. + (absdf2, absdf2_media): Likewise. + (extendsfdf2, extendsfdf2_media): Likewise. + (truncsfdf2, truncsfdf2_media): Likewise. + * config/sh/sh64.h: New file. + * config/sh/t-sh64: New file. + * config/sh/shmedia.h: New file. + * config/sh/ushmedia.h: New file. + * config/sh/sshmedia.h: New file. + * configure.in: Added sh64-*-elf. + * configure: Rebuilt. + 2000-10-10 Alexandre Oliva + * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros. + (reg_class_from_letter): Use `b' for TARGET_REGS. + (print_operand): Support `%M', `%m', `AND' and + `ASHIFTRT'. Do not precede constants with `#' on SHmedia. + (andcosts): Adjust for SHmedia. + (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue): + Likewise. + (target_reg_operand): New function. + * config/sh/sh-protos.h (target_reg_operand): Declare. + * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable + FP registers on SH5. + (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable + on SH4. + (TARGET_REGISTER_P): New macro. + (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS. + (FUNCTION_VALUE): Use DImode for promoted types on SHmedia. + (EXTRA_CONSTRAINT_S): New macro. + (EXTRA_CONSTRAINT): Adjust. + (FLOAT_TYPE_SIZE): Define to 32. + (Pmode): DImode on SHmedia. + (CONST_COSTS): Adjust for SHmedia literals. + (PREDICATE_CODES): Added target_reg_operand. + (PROMOTE_MODE): Promote signed types to DImode on SHmedia. + * config/sh/sh.md: Remove all attrs from SHmedia insns. + (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns. + (cmpdi): Accept SHmedia. + (movdicc_false, movdicc_true): New insns. + (movdicc): New expand. + (adddi3): Accept arith_operand for op2, but FAIL on SH1 if + no_new_pseudos. + (addsi3_media): Match `S' constraint. + (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns. + (negdi2): Expand for SHmedia. + (one_cmpldi2): New expand. + (zero_extendsidi2): Change from expand to insn. + (extendsidi2): Add constraints. + (movdi_media, movsi_media): Change `%x' to `%M'. Use `%m' for + LD/ST address. Fix SI immediate loading split. + (movhi_media, movqi_media, lduw, ldub): New insns. + (movhi, movqi): Accept SHmedia. + (shori_media, movdi_media): Relax input constraints. Split + symbolic constants. + (movdf_media, movsf_media): New insn. New split to movdi. + (movdf, movsf): Match on SHmedia. + (beq_media, bne_media, bgt_media, bge_media, bgtu_media, + bgeu_media): New insns and splits. New insns with `_i' suffix. + (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust. + (bunordered): New expand. + (jump_compact): Renamed from `jump'. + (jump_media): New insn. + (jump): New expand. + (call_media, call_value_media): New insns. + (call, call_value): Adjust. + (indirect_jump_compact): Renamed from `indirect_jump'. + (indirect_jump_media): New insn. + (indirect_jump): New expand. + (untyped_call, return): Accept SHmedia. + (return_media): New insn. + (prologue, epilogue, blockage): Accept SHmedia. + (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust. + (sunordered): New expand. + (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2, + cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia. + (addsf3_media, subsf3_media, mulsf3_media, mac_media, + divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2, + fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media, + cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media, + abssf2_media): New insns. + (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2, + cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia. + (adddf3_media, subdf3_media, muldf3_media, divdf3_media, + floatdidf2, floatsidf2_media, fix_truncdfdi2, + fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media, + cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media, + absdf2_media): New insns. + (extendsfdf2, truncdfsf2): Adjust for SHmedia. + (extendsfdf2_media, truncdfsf2_media): New insns. + 2000-09-14 Alexandre Oliva + * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now. + * config/sh/sh.h (CONST_OK_FOR_J): Document. + (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia. + * config/sh/sh.md (adddi3): New expand. + (adddi3_media, adddi3z_media): New insns. + (adddi3_compact): Renamed from adddi3. + (addsi3_media): Use add.l r63 to add constant zero. + (subdi3): New expand. + (subdi3_media): New insn. + (subdi3_compact): Renamed from subdi3. + (mulsidi3): New expand. + (mulsidi3_media): New insn. + (mulsidi3_compact): Renamed from mulsidi3. + (umulsidi3): New expand. + (umulsidi3_media): New insn. + (umulsidi3_compact): Renamed from umulsidi3. + (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns. + (ashlsi3, ashrsi3, lshrsi3): Use them. + (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns. + (ashldi3, ashrdi3, lshrdi3): Use them. + (zero_extendsidi2): New expand. + (extendsidi2): New insn. + (movsi_media): New insn. Split to movdi to load constants. + (movsi): Enable for shmedia. + (movdi_media): New insn. Use shori_media to load wide constants. + (short_media): New insn. + (movdi): Enable for shmedia. + 2000-09-08 Alexandre Oliva + * config/sh/sh.h (CPP_SPEC): Added `m5'. + (SUBTARGET_CPP_SPEC): Added `!m5'. + (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros. + (TARGET_SWITCHES): Added `5' and `5-compact'. Added SH1_BIT + to all other SH variants. + (TARGET_DEFAULT): Set to SH1_BIT. + (OVERRIDE_OPTIONS): Recognize sh5 CPU. + (BITS_PER_WORD): Raise to 64 on shmedia. + (MAX_BITS_PER_WORD): Change to 64. + (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD. + (INT_TYPE_SIZE): Keep as 32. + (UNITS_PER_WORD): Raise to 8 on shmedia. + (MIN_UNITS_PER_WORD): Keep as 4. + (POINTER_SIZE): Raise to 64 on shmedia. + (CONST_OK_FOR_J): New macro. + (CONST_OK_FOR_LETTER_P): Use it. + (processor_type): Add PROCESSOR_SH5. + * config/sh/sh.md: Conditionalize all expands, insns and + splits to TARGET_SH1. + (cpu): Added sh5. + (addsi3_compact): Renamed from... + (addsi3): Now an expand. + (addsi3_media, subsi3_media): New insns. + (subsi3): Don't negate constants with SHmedia. + + * hooks.c: New file. + * hooks.h: New file. + * Makefile.in (HOOKS_H): New. + (TARGET_DEF_H): Added $(HOOKS_H). + (OBJS): Added hooks.o. + (cfgcleanup.o, bb-reorder.o): Added target.h. + (hooks.o): Added dependencies. + * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to... + (TARGET_INITIALIZER): this. + * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document. + * target.h (struct gcc_target): Added cannot_modify_jumps_p. + * bb-reorder.c: Include target.h. + (reorder_basic_blocks): Skip if cannot modify jumps. + * cfgcleanup.c: Include target.h. + (try_optimize_cfg): Skip merge blocking if cannot modify jumps. + +2002-02-08 Chris Demetriou + + * config/mips/mips.md (casesi_internal, casesi_internal_di): + Protect jump delay slot instructions with .set noreorder and + .set nomacro. + +2002-02-08 Chris Demetriou + + * config/mips/mips.md (casesi_internal_di): Calculate + the index into the target offset table correctly. + +2002-02-08 Richard Henderson + + * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also. + * final.c (output_addr_const): Accept and discard SUBREG. + * varasm.c (decode_addr_const): Don't abort on unknown expressions -- + mark them unknown instead. + (simplify_subtraction): Handle RTX_UNKNOWN. + (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode. + +2002-02-08 David Edelsohn + + * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo. + +2002-02-08 Richard Henderson + + * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New. + +2002-02-08 Andreas Jaeger + + * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment. + * config/i386/t-linux64: New file. + +2002-02-08 Jakub Jelinek + + * c-common.c (c_expand_expr): Revert 2002-02-06 patch. + * c-parse.in (compstmt): Clear last_expr_type. + +2002-02-07 Richard Henderson + + * loop.c (strength_reduce): Sink final_value when not + eliminating a biv. + +2002-02-07 David O'Brien + + * config/sparc/freebsd.h: Fix mismatched spec {. + +2002-02-07 Richard Henderson + + * cfgrtl.c: Include recog.h and insn-config.h. + (keep_with_call_p): Fix general_operand invocation. + * Makefile.in (cfgrtl.o): Update dependencies. + +2002-02-07 Kazu Hirata + + * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a + comment. Accept HImode only if TARGET_H8300. + +2002-02-07 Eric Christopher + + * config/mips/crtn.asm: Cleanup #ifdefs. + +2002-02-07 Eric Christopher + + * config/mips/crti.asm: Add changes for mips16. mips16 uses + register 7 as RA instead of $31. + * config/mips/crtn.asm: Ditto. + * config/mips/mips.c (mips_move_2words): Add case for + TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64. + (compute_frame_size): Fix typo. + (save_restore_insns): Ditto. Make documentation about using + register $7 as return register more precise. + (mips_expand_epilogue): Fix comment. Add code to work around not + being able to add to the stack pointer directly. + * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number + to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the + epilogue. + +2002-02-07 Tom Rix + + * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For + immediates in ldu and stdu DS opcode field. + * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use. + * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand. + * config/rs6000/rs6000.h (PREDICATE_CODES): Same. + +2002-02-07 Jeff Sturm + + * config/sparc/sparc.c (compute_frame_size): Don't correct frame + offset for stack bias. + +2002-02-07 H.J. Lu + + * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined. + +2002-02-07 Ulrich Weigand + + * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option. + +Thu Feb 7 12:14:17 CET 2002 Jan Hubicka + + * i386-protos.h (x86_order_regs_for_local_alloc): Declare + * i386.c (x86_order_regs_for_local_alloc): New global function. + * i386.h (REG_ALLOC_ORDER): CLeanup. + (ORDER_REGS_FOR_LOCAL_ALLOC): New. + +2002-02-07 Richard Henderson + + PR optimization/2463 + * alias.c (find_base_value): Recall base values for fixed hard regs. + * loop.c (loop_regs_update): Don't use single_set on non-insns. + +2002-02-07 Alexandre Oliva + + * config/mips/mips.md (define_delay) [mips16]: Adjust required + length. + +2002-02-06 Richard Henderson + + PR c/5609 + * stmt.c (resolve_operand_name_1): Take more care with mixed + named and unnamed operands. + +2002-02-06 Janis Johnson + Jan Hubicka + + * loop.c (remove_constant_addition): Avoid clobbering a shared + CONST expression. + +2002-02-06 Ulrich Weigand + + * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment. + * config/s390/t-linux64: New file. + * config/s390/libgcc-glibc.ver: New file. + +2002-02-06 Ulrich Weigand + + * config/s390/linux64.h: Delete file. + * config/s390/s390x.h: New file. + * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h + as target header file. + * config/s390/linux.h (TARGET_VERSION): Define depending on + DEFAULT_TARGET_64BIT. + (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise. + (SIZE_TYPE, PTRDIFF_TYPE): Likewise. + (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define. + (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines. + (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines. + (EXTRA_SPEC): New define. + * config/s390/s390.h (TARGET_VERSION): Define depending on + DEFAULT_TARGET_64BIT. + (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT. + +2002-02-06 Jason Merrill + + * c-decl.c (finish_function): Warn about a non-void function with + no return statement and no abnormal exit. + (current_function_returns_abnormally): New variable. + (start_function): Clear it. + (struct c_language_function): Add returns_abnormally. + (push_c_function_context): Save it. + (pop_c_function_context): Restore it. + (builtin_function): Set TREE_THIS_VOLATILE on return fns. + (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without + an explicit return type. + * c-tree.h: Declare current_function_returns_abnormally. + (C_FUNCTION_IMPLICIT_INT): New macro. + * c-typeck.c (build_function_call): Set it. + (c_expand_return): Set current_function_returns_value even if the + value is erroneous. + +2002-02-06 Jakub Jelinek + + PR c/5420: + * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR + unsafe for reevaluation. + +2002-02-06 Jakub Jelinek + + PR c/5482: + * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not + EXPR_STMT, but COMPOUND_STMT, recurse into it. + +2002-02-06 Richard Henderson + + * cfganal.c (keep_with_call_p): Source for fixed_reg dest must + be a general_operand. Dest for function value must be a pseudo. + +2002-02-06 Nick Clifton + + * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well + as SYMBOL_REFs from the constant pool. + +2002-02-06 Alexandre Oliva + + * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters + passed by invisible reference. + +2002-02-05 Richard Henderson + + * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias. + +2002-02-06 Hans-Peter Nilsson + + Implement using "base addresses" in insn operands as default. + * config/mmix/mmix.c (mmix_conditional_register_usage): if + -mabi=gnu, modify fixed_regs to fit the GNU ABI. + (mmix_extra_constraint): Use 'R' to indicate that GETA should be + used to read the rtx value. + (mmix_target_asm_function_epilogue): Fix spacing. + (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES. + (mmix_legitimate_address): Ditto. + (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that + should be loaded with a GETA insn. Don't allocate needless extra + char for nul termination and fix misleading comment. + (mmix_print_operand_address): Handle constants if + TARGET_BASE_ADDRESSES. + (mmix_output_register_setting): Use base addressing if + TARGET_BASE_ADDRESSES and the number of insns is 3. + * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New. + * config/mmix/mmix.md ("movdi"): Change the alternative with GETA + to use R as constraint, add LDA to match s. + * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New. + (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES. + (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses. + (FIXED_REGISTERS): Make registers $231..$246 fixed by default. + (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in + order with other fixed registers. + (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with + other parameter/call-clobbered registers. + * doc/invoke.texi (Option Summary) : Add + -mbase-addresses, -mno-base-addresses. + (MMIX Options): Ditto. + +2002-02-05 John David Anglin + + * pa.h (PREDICATE_CODES): Add reg_before_reload_operand. + +2002-02-06 Aldy Hernandez + + * config/rs6000/altivec.h: Change elem to _S_elem. + +2002-02-05 Jason Thorpe + + * config/netbsd.h (WCHAR_TYPE): Define. + (WCHAR_TYPE_SIZE): Ditto. + (WINT_TYPE): Ditto. + * config/alpha/netbsd.h (WCHAR_TYPE): Remove. + (WCHAR_UNSIGNED): Ditto. + (WCHAR_TYPE_SIZE): Ditto. + (WINT_TYPE): Ditto. + * config/arm/netbsd.h: Likewise. + * config/i386/netbsd-elf.h: Likewise. + * config/i386/netbsd.h: Likewise. + * config/m68k/netbsd-elf.h: Likewise. + * config/m68k/netbsd.h: Likewise. + * config/ns32k/netbsd.h: Likewise. + * config/sparc/netbsd.h: Likewise. + * config/vax/netbsd.: Likewise. + +2002-02-05 Alexandre Oliva + + * target.h (struct gcc_target): Added ms_bitfield_layout_p. + * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New. Added to... + (TARGET_INITIALIZER): this. + * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document. + (BITFIELD_NBYTES_LIMITED): Markup fix. + * tree.h (default_ms_bitfield_layout_p): Declare. + (record_layout_info): Added prev_field. + * tree.c (default_ms_bitfield_layout_p): New fn. + * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and + PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout. + * stor-layout.c: Include target.h. + (start_record_layout): Initialize prev_field. + (place_field): Handle MS bit-field layout, and disregard + EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and + PCC_BITFIELD_TYPE_MATTERS in this case. Update prev_field. + * Makefile.in (stor-layout.o): Adjust dependencies. + +2002-02-05 Jason Merrill + + * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle. + +2002-02-05 Andreas Jaeger + + * crtstuff.c: Fix comments. + +2002-02-05 Richard Henderson + + PR fortran/3393 + * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well. + (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise. + + PR fortran/3392 + * config/mips/mips.c (function_arg): Handle TImode. + (function_arg_advance): Likewise. + +2002-02-05 Aldy Hernandez + + * config/rs6000/altivec.h (vec_step_help): Rename to + __vec_step_help. + +2002-02-05 Aldy Hernandez + + * config/rs6000/altivec.h: Fix typos. + +2002-02-05 Jason Thorpe + + * config/arm/netbsd.h: Correct a comment. + +2002-02-05 Aldy Hernandez + + * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo + building void typed builtins. + + * config/rs6000/altivec.h (vec_ld*): Fix typos. + (vec_step): Implement for C++. + +Mon Feb 4 19:23:19 2002 Richard Kenner + + * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND. + +2002-02-04 Richard Henderson + + * combine.c (nonzero_bits): Re-introduce special case for + sp/fp/ap wrt REGNO_POINTER_ALIGN. + +2002-02-05 Aldy Hernandez + + * doc/extend.texi: Warn about unsupported usage of altivec + builtins. + + * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove. + (altivec_predicate_*): New. + + * config/rs6000/altivec.h: Rewrite predicates to use new builtins. + Add C++ version of vec_*() functions. + + * config/rs6000/rs6000.c (bdesc_altivec_preds): New. + (bdesc_2arg): Remove altivec predicates. + (altivec_expand_builtin): Handle predicates. + (altivec_init_builtins): Handle predicates. + (altivec_expand_predicate_builtin): New. + +2002-02-04 John David Anglin + + * pa.c (DO_FRAME_NOTES): Move forward. + (store_reg): Revise handling of frame notes. + (load_reg): Likewise. + (set_reg_plus_d): Likewise. + (hppa_expand_prologue): Likewise. + (hppa_expand_epilogue): Likewise. + +2002-02-04 John David Anglin + + * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined. + +2002-02-04 Jakub Jelinek + + PR c/4475, c++/3780: + * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand. + * c-common.h (SWITCH_TYPE): Define. + * c-typeck.c (c_start_case): Set SWITCH_TYPE. + * stmt.c (all_cases_count): Set lastval to thisval at end of loop. + Rename spareness variable to sparseness. + (expand_end_case_type): Renamed from expand_end_case, use orig_type + if non-NULL instead of TREE_TYPE (orig_index). + * tree.h (expand_end_case_type): Renamed from expand_end_case. + (expand_end_case): Define using expand_end_case_type. + * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE + to expand_end_case_type. + * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE. + +2002-02-04 John David Anglin + + * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding. + (BIGGEST_ALIGNMENT): Change to 128. + +2002-02-04 John David Anglin + + * pa32-linux.h (LINK_COMMAND_SPEC): Define. + +2002-02-04 John David Anglin + + * pa.md (call_internal_reg_64bit): Remove unused variable. + +2002-02-04 Nick Clifton + + * config/arm/arm.h (machine_function): Add uses_anonymous_args + field. + (SETUP_INCOMING_VARARGS): Set uses_anonymous_args. + * config/arm/arm.c (current_function_anonymous_args): Delete, + replace uses with cfun->machine->uses_anonymous_args. + (arm_reorg): Do not reset uses_anonymous_args. + + * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in + any geenral register. + +2001-02-04 Bernd Schmidt s + + * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect + the entry block. + +2002-02-04 Richard Henderson + + * combine.c (force_to_mode): Remove STACK_BIAS code. + (nonzero_bits): Likewise. Replace sp/fp special case with + REGNO_POINTER_ALIGN. + + * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP. + (HARD_FRAME_POINTER_REGNUM): New. + (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update. + (FIXED_REGS, CALL_USED_REGS): Update. + (REG_ALLOC_ORDER, REGISTER_NAMES): Update. + (CONDITIONAL_REGISTER_USAGE): Update for HFP. + (HARD_REGNO_NREGS): Update for SFP. + (STACK_POINTER_OFFSET): Include bias here ... + (FIRST_PARM_OFFSET): ... not here. + (STACK_BIAS): Remove. + (INIT_EXPANDERS): New. + (STARTING_FRAME_OFFSET): Do not include bias. + (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. + (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP. + (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise. + * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP. + * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise. + * config/sparc/sparc.c (mem_min_alignment): Update for HFP. + (sparc_nonflat_function_prologue, epilogue_renumber): Likewise. + (MUST_SAVE_REGISTER): Likewise. + (sparc_flat_function_prologue): Likewise. + (sparc_flat_function_epilogue): Likewise. + (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK. + (sparc_init_modes): SFP is GENERAL_REGS. + (sparc_builtin_saveregs): SFP does not have bias applied. + +2002-02-04 Richard Henderson + + * config/alpha/alpha.c (current_function_is_thunk): Don't check + current_function_is_thunk. + (alpha_sa_mask): Distinguish between current_function_is_thunk + called from ASM_OUTPUT_MI_THUNK and not. + (alpha_does_function_need_gp): Thunks always need gp. + (alpha_start_function, alpha_output_function_end_prologue): Likewise. + (alpha_output_mi_thunk_osf): New. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New. + +2002-02-04 Richard Sandiford + + * c-typeck.c (build_c_cast): Warn when qualifiers are added to + function types, not when they're taken away. + +Mon Feb 4 09:05:58 2002 Jeffrey A Law (law@redhat.com) + + * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated + CODE_LABEL and jump table when replacing a table jump with a + simple jump. + +2002-02-04 Ulrich Weigand + + * config/s390/s390-protos.h (legitimize_la_operand, + s390_secondary_input_reload_class, s390_plus_operand, + s390_expand_plus_operand): Add prototypes. + + config/s390/s390.c (s390_secondary_input_reload_class, + s390_plus_operand, s390_expand_plus_operand): New functions. + + (struct s390_address): New member 'pointer'. + (s390_decompose_address): Compute it. + (legitimate_la_operand_p): Use it. + (legitimize_la_operand): New function. + (movti, movdi, movdf splitters): Call it. + + config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define. + (PREDICATE_CODES): Add s390_plus_operand. + + config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete. + (la_ccclobber): Allow GENERAL_REGS as output operand. + + (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0, + *reload_la_64, *reload_la_31 and splitters): Delete, replace by ... + (*la_64, *la_31, reload_indi, reload_insi): ... these. + +2002-02-04 Ulrich Weigand + + * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed + register names for regular asm () construct. + +2002-02-04 Jakub Jelinek + + * config/i386/i386.md (movsf_1): Allow moving SF values in MMX + registers. + +2002-02-04 Jakub Jelinek + + * combine.c (recog_for_combine): Create a dummy insn with PATTERN + pat for recog. + +2002-02-04 Hartmut Penner + + * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in + constant pool to be identical by string address and index. + +2002-02-04 Anthony Green + + * output.h (SECTION_OVERRIDE): Define. + * varasm.c (named_section): Obey SECTION_OVERRIDE. + +2002-02-03 Jason Thorpe + + * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match + by existing arm*-*-netbsd* (a.out) target. + (ns32k-*-netbsdelf*): Likewise. + (sparc-*-netbsdelf*): Likewise. + (vax-*-netbsdelf*): Likewise. + +2002-02-03 Danny Smith + + * gthr-win32.h: Protect against conflicting typedef for BOOL in windows + headers and libobjc headers. + +2002-02-03 Mumit Khan + + * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++. + (_mingw.h): Remove duplicate include. + +2002-02-03 Jason Thorpe + + * config.gcc: Set cpu_type to m68k for 68010, as well. + (m68010-*-netbsdelf*): New... + (m68k*-*-netbsdelf*): ...targets. + * config/m68k/netbsd-elf.h: New file. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.c (hand_list): Move inside function_arg. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.c (h8_push_ops): Move inside + h8300_init_once. + (h8_pop_ops): Likewise. + (h8_move_ops): Likewise. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.c (os_task): Make it static. + (monitor): Likewise. + (pragma_saveall): Likewise. + +2002-02-02 Alexandre Oliva + + * config/sh/sh.md (ic_invalidate_line): Make sure the immediate + constant is a valid sign-extension for Pmode. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.c: Fix formatting. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.md: Fix formatting. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.md (one_cmpl patterns): Tighten the + predicates of operands[1]. Split the patterns for each + processor variant. + +2002-02-02 Kazu Hirata + + * config/h8300/h8300.md (xor patterns): Tighten the predicates + of operands[1] to register_operand. + +2002-02-02 Neil Booth + + * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__. + * cpphash.c (_cpp_init_hashtable): Similarly. + * cppinit.c (cpp_create_reader): Default the signed_char flag. + (init_builtins): Define __CHAR_UNSIGNED__ appropriately. + (COMMAND_LINE_OPTIONS): Recognize -f{un,}signed-char. + (cpp_handle_option): Handle the new options. + * cpplex.c (cpp_interpret_charconst): Use new flag. + * cpplib.h (struct cpp_options): New member signed_char. + * gcc.c (cpp_unique_options): Remove %c spec and documentation. + (cpp_options): Handle -fsigned-char and -funsigned-char. + (static_specs): Remove signed_char_spec. + (do_spec1): Don't handle %c. + * system.h: Poison SIGNED_CHAR_SPEC. + * tradcif.y (yylex): Use flag_signed_char. + * tradcpp.h (flag_signed_char): New. + * tradcpp.c (flag_signed_char): New. + (main): Handle new command-line options. + (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate. +config: + * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove. + * avr/avr.h: Remove old comments. + * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*. + (CC1_SPEC): Pass -fsigned-char if -mic*. + (SIGNED_CHAR_SPEC): Remove. +doc: + * tm.texi (SIGNED_CHAR_SPEC): Remove documentation. + +2002-02-01 Eric Christopher + + From Daniel Jacobowitz + * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling. + * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine. + (ASM_OUTPUT_REG_POP): Ditto. + +2002-02-02 Neil Booth + + * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield + patch. + +2002-02-02 Jakub Jelinek + + * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators. + +2002-02-02 Jakub Jelinek + + PR c/5304: + * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1 + unconditionally. + +2002-02-01 Janis Johnson + + * cfganal.c: Include tm_p.h. + (keep_with_call_p): Fix the test that determines if a register holds + the return value of a call. + +2002-02-01 DJ Delorie + + * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If + we are given conflicting registers, switch to the other one we + had allocated for us. + * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2] + as TImode so we know when the "other" register is available. + +2002-02-01 David O'Brien + + * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than + sparc/sparc_bi.h. + +2002-02-01 Janis Johnson + + * cfganal.c (keep_with_call_p): New function. + (flow_call_edges_add): Prevent splitting a block between a call and + a single-set instruction that should be kept in the same block. + +2002-02-01 Craig Rodrigues + + * doc/install.texi (avr): Update outdated URL. + +2002-01-30 Andrew Haley + + * config/stormy16/stormy16.md (pushqi): New. + (popqi): New. + (pushhi): New. + (pophi): New. + (movhi): Remove stack operands. + (movqi): Likewise. + * config/stormy16/stormy16.h (PREDICATE_CODES): Add + nonimmediate_nonstack_operand. + * config/stormy16/stormy16.c (nonimmediate_nonstack_operand): + New. + * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand) + New. + +2002-01-31 Jason Merrill + + * Makefile.in (c-parse.c): Handle .output file. + * objc/Make-lang.in (objc-parse.c): Likewise. + +2002-02-01 Alexandre Oliva + + * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if + the -me[lb] option is given. Don't output the default flag + twice. + +2002-01-31 Zack Weinberg + + * c-lex.c (yyparse): Call debug_hooks->start_source_file for + the primary source file; this has not been done yet. + * c-decl.c (c_expand_body): Reset input_filename from + DECL_SOURCE_FILE (fndecl) before calling init_function_start. + +2002-01-31 Kazu Hirata + + * rtlanal.c (subreg_regno_offset): Do not use + SUBREG_REGNO_OFFSET. + * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list. + * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove. + +2002-01-31 Joseph S. Myers + + * gccbug.in: Follow GNU Coding Standards for --version. Use GCC + version rather than GNATS version in --version output. + +2002-01-31 Richard Sandiford + + * ifcvt.c (noce_process_if_block): Make a copy of the destination + when copying back from a temporary. + +2002-01-30 Richard Henderson + + * ifcvt.c (dead_or_predicable): Handling merging when other_bb + and new_dest are the same. + +2002-01-30 Richard Henderson + + PR opt/5076 + * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New. + * rtl.c (note_insn_name): Update. + * emit-rtl.c (remove_unnecessary_notes): Kill it. + * stmt.c (expand_end_loop): Kill jump opt code. Use LOOP_END_TOP_COND + to perform loop rotation. + (expand_exit_loop_top_cond): New. + * tree.h (expand_exit_loop_top_cond): Declare it. + * c-semantics.c (genrtl_while_stmt): Use it. + (genrtl_for_stmt): Likewise. + +2002-01-30 Alexandre Oliva + + * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of + arguments to 64-bit boundaries on 64-bit ABIs. + +2002-01-30 Steve Ellcey + + * loop.c (loop_invariant_p): Special case pic_offset_table_rtx. + +2002-01-31 Joseph S. Myers + + * c-decl.c (grokdeclarator): Handle type being a typedef for an + invalid type. + +2002-01-30 David O'Brien + + * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h. + * config/sparc/sparc_bi.h: Remove file. + * config/sparc/biarch64.h: New file (rename of sparc_bi.h). + +2002-01-30 Richard Henderson + + * sched-deps.c (sched_analyze): Make a call read the frame pointer. + +2002-01-30 Zack Weinberg + + * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1. + +2002-01-30 Jason Merrill + + * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes. + (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended. + (reg_save): Use DW_CFA_offset_extended_sf instead. + + * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors. + +2002-01-29 Jakub Jelinek + + * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result + in cselib_lookup. + +2002-01-29 Aldy Hernandez + + * rs6000.md ("*call_value_local32"): Remove constraints. + ("*call_value_local64"): Same. + ("*call_value_indirect_nonlocal_aix32"): Same. + ("*call_value_nonlocal_aix32"): Same. + ("*call_value_indirect_nonlocal_aix64"): Same. + ("*call_value_nonlocal_aix64"): Same. + ("*call_value_nonlocal_sysv"): Same. + +2002-01-29 Richard Henderson + + * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef. + +2002-01-29 Richard Henderson + + * expr.c (force_operand): Ignore flag_pic for detecting pic + address loads. + * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic + for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered. + * resource.c (mark_target_live_regs): Use regs_invalidated_by_call + instead of open-coded loop. + * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must + be fixed when in use. + +2002-01-29 Richard Henderson + + * sched-int.h (struct deps_reg): Add uses_length, clobbers_length. + * sched-rgn.c (propagate_deps): Update them. + * sched-deps.c (sched_analyze_insn): Update them. Flush the + clobbers list when either gets too long. + +2002-01-29 Jakub Jelinek + + * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS + and INDEX_REGS the same as GENERAL_REGS. + (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. + +2002-01-29 Neil Booth + + * tree.c (build_nonstandard_integer_type): Correct prototype. + +2002-01-29 Ulrich Weigand + + * config/s390/s390.md (movstrsico, movstrdix_64, + movstrsix_31): Remove, replace by ... + (movstrdi_short, movstrsi_short, movstrdi_long, + movstrsi_long): ... these. New. + (movstrdi, movstrsi): Adapt. + + (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64, + ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3): + Remove unnecessary CC clobber. + (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64, + *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New. + + (divmoddi4): Don't partially initialize TImode register. + +2002-01-29 Geoffrey Keating + + * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory. + +2002-01-29 Richard Henderson + + * flow.c (print_rtl_and_abort): Remove. + (print_rtl_and_abort_fcn): Remove. + (verify_local_live_at_start): Use dump_bb instead. + (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints. + (verify_wide_reg_1): Return 2 on mode test failure. + +2002-01-29 Neil Booth + + PR c/3325, c/3326, c/2511, c/3347 + * c-decl.c (enum_decl_context): Remove BITFIELD. + (grokdeclarator): Take bitfield width as an input. + Ensure bitfields are given the correct type. Perform + bitfield width validation with build_bitfield_integer_type + rather than waiting for finish_struct. + (grok_typename, grok_typename_in_parm_context, start_decl, + push_parmdecl, grokfield, start_function): Update calls to + grokdeclarator. + (build_bitfield_integer_type): New function. + (finish_struct): Move bitfield validation to grokdeclarator + and build_bitfield_integer_type. + * tree.c (build_nonstandard_integer_type): New function. + * tree.h (build_nonstandard_integer_type): New prototype. +objc: + * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge. + +2002-01-29 Jakub Jelinek + + PR other/1502: + * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero, + don't ignore unrecognized -W* options. + (cpp_handle_options): Pass 1 as last argument to cpp_handle_option. + * cpplib.h (cpp_handle_option): Adjust prototype. + * c-decl.c (c_decode_options): Pass 0 as last argument to + cpp_handle_option. + + PR c/2896: + * gcc.c (cpp_unique_options): Split from cpp_options. + (cpp_options): Source cpp_unique_options. + (default_compilers): Use cpp_unique_options instead of cpp_options + when used together with cc1_options. + (static_specs): Add cpp_unique_options. + * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options + when used together with cc1_options. + +2002-01-29 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype of + output_a_shift. + * config/h8300/h8300.c (output_a_shift): Remove an unused + argument 'insn'. Remove redundant code. + * config/h8300/h8300.md: Adust to the new prototype of + output_a_shift. + +2002-01-29 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototypes of + emit_a_rotate and expand_a_rotate. + * config/h8300/h8300.c (emit_a_rotate): Change the type of the + first argument to 'enum rtx_code'. + (expand_a_rotate): Likewise. + +2002-01-28 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype of + output_simode_bld. + * config/h8300/h8300.c (output_simode_bld): Remove an argumen + 'log2'. + * config/h8300/h8300.md: Adjust to the new prototype. + +2002-01-28 Kazu Hirata + + * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove + redundant code. + +2002-01-28 John David Anglin + + * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM + is a fixed register before returning pic_offset_table_rtx. + * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx + when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined. + +2002-01-28 Jason Merrill + + * dwarf2.h: Sync with src version. + +2002-01-28 Paul Koning + + * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace + BT_FN_VOID_PTR_VAR. + * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const. + * doc/extend.texi (__builtin_prefetch): Update documentation: + first argument is now const void ptr. + +2002-01-28 Kazu Hirata + + * config/h8300/h8300-protos.h: Remove an unused prototype. + +2002-01-28 Roman Zippel + + * toplev.c (lang_independent_init): Round up identifier size. + +2002-01-28 Richard Earnshaw + + * config.gcc: Revert previous change. + +2002-01-28 Andris Pavenis + + * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION + +2002-01-28 Richard Earnshaw + + * config.gcc (*-*-netbsdelf*): Set up generic parameters. + (*-*-netbsd*): Always use collect2. Remove collect2 settings from + other non-elf netbsd config frags. + * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since + collect2 will does that. + * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that + shared-lib frobbing will work. + +2002-01-28 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. + * config/h8300/h8300.md: Likewise. + +2002-01-28 Loren J. Rittle + + * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on + the old, removed AAA_standards fix. + * fixinc/fixincl.x: Rebuilt. + +2002-01-28 Hans-Peter Nilsson + + * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit + atexit call in crtbegin, hooked in after call to frame_dummy; + register EH before registering __fini__start. + +2002-01-28 Aldy Hernandez + + * config/rs6000/altivec.h: Remove spurious semicolons. + +2002-01-27 Kazu Hirata + + * config/h8300/h8300.md: Replace dead bit extraction patterns + with ones that work. + +Sun Jan 27 13:23:40 2002 Richard Kenner + + * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode + if not STRICT_ALIGNMENT. + * rtl.h (MEM_ALIGN): Likewise. + +2002-01-27 Craig Rodrigues + + * doc/invoke.texi (-fdump-translation-unit): Revert this + patch: 2001-10-21 Craig Rodrigues + +2002-01-27 Kazu Hirata + + * config/h8300/h8300.md (define_constants): New. + (anonymous patterns) Use defined constants appropriately. + +2002-01-27 Kazu Hirata + + * config/h8300/h8300.c (function_arg): Remove redundant code. + +2002-01-26 Richard Henderson + + * sched-deps.c (reg_pending_uses_head): New. + (reg_pending_barrier): Rename from reg_pending_sets_all. + (find_insn_list): Don't mark inline. + (find_insn_mem_list): Remove. + (add_dependence_list, add_dependence_list_and_free): New. + (flush_pending_lists): Replace only_write param with separate + for_read and for_write parameters. Update all callers. Use + add_dependence_list_and_free. + (sched_analyze_1): Do not add reg dependencies here; just set + the pending bits. Use add_dependence_list. + (sched_analyze_2): Likewise. + (sched_analyze_insn): Replace schedule_barrier_found with + reg_pending_barrier. Add all dependencies for pending reg + uses, sets, and clobbers. + (sched_analyze): Don't add reg dependencies for calls, just + set pending bits. Use regs_invalidated_by_call. Treat + sched_before_next_call as a normal list, not a fake insn. + (init_deps): No funny init for sched_before_next_call. + (free_deps): Free pending mems lists. Don't zero reg_last. + (init_deps_global): Init reg_pending_uses. + (finish_deps_global): Free it. + * sched-int.h (deps): Make in_post_call_group_p boolean. Update docs. + (find_insn_mem_list): Remove. + * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New. + (propagate_deps): Use them. Zero temp mem lists. + +2002-01-26 Richard Henderson + + * Makefile.in (CRTSTUFF_CFLAGS): New. + (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it. + * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain + crtstuff.c instead of alpha assembly version. + * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the + entire dummy function sequence. Use FORCE_CODE_SECTION_ALIGN + not FORCE_{INIT,FINI}_SECTION_ALIGN. + (__do_global_dtors_aux): Mark used. + (frame_dummy, __do_global_ctors_aux): Mark used. + (fini_dummy, init_dummy): Remove. + + * config/alpha/crtbegin.asm: Remove file. + * config/alpha/crtend.asm: Remove file. + * config/alpha/t-crtbe: Remove file. + * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New. + (LINK_EH_SPEC): New. + + * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old + FORCE_INIT_SECTION_ALIGN hack. Register __fini_start before + calling constructors. + * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef. + + * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New. + * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old + CRT_END_INIT_DUMMY hack. + * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace + FORCE_{INIT,FINI}_SECTION_ALIGN. + + * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace + FORCE_{INIT,FINI}_SECTION_ALIGN. + + * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new + invocation sequence. + * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise. + + * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update. + (FORCE_CODE_SECTION_ALIGN): New. + +2002-01-26 Richard Henderson + + * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT. + +2002-01-26 Richard Henderson + + * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too. + (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs. + +2002-01-26 Kazu Hirata + + * config/h8300/h8300.md: Remove bit extraction patterns that + cannot be triggered. + Restrict each bit extraction pattern to a variant on which the + pattern is tested. + +2002-01-26 Joseph S. Myers + + * doc/include/texinfo.tex: Update to version 2002-01-04.07. + +2002-01-26 Kazu Hirata + + * config/h8300/h8300.md: Remove bit test patterns that cannot + be triggered. + Restrict each bit test pattern to a variant on which the + pattern is tested. + +2002-01-26 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strncat): Remove redundant check for + INTEGER_CST. + +2002-01-25 David O'Brien + + * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide + default setting. + * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override + existing setting. + +2002-01-25 Geoffrey Keating + + * dbxout.c (dbxout_init): Use assemble_name rather than just + stripping off the first character. + (dbxout_source_file): Likewise. + +2002-01-25 DJ Delorie + + * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare + using rtx_equal_p, not by comparing pointers. + +2002-01-25 Steve Ellcey + + * emit-rtl.c (gen_rtx_REG): Always return the same rtx + for PIC_OFFSET_TABLE_REGNUM. + (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx. + +2002-01-25 David O'Brien + + * config.gcc (x86_64-*-freebsd*): New target. + (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its + value. + (i[34567]86-*-freebsd*): Don't include svr4.h. + * config/i386/freebsd64.h: New file. + +2002-01-25 Douglas B Rupp + + * config/alpha/x-vms (version): Make static. + + * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error + in previous checkin. + + * Makefile.in (install-headers-cp): New target. + * config.gcc (alpha-dec-*vms*): Install headers with + install-headers-cp + +Fri Jan 25 22:42:49 CET 2002 Jan Hubicka + + * unroll.c (unroll_loop): Lower final_value to nonmemory operand; + avoid it's copies. + +Fri Jan 25 08:26:19 2002 Richard Kenner + + * builtins.c (expand_builtin_strncpy): Use integer_zerop instead + of compare_tree_int. + (expand_builtin_strncat): Likewise. + * c-decl.c (finish_struct): Use tree_low_cst. + * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT. + * tree.c (compare_tree_int): Likewise. + +2002-01-25 Ulrich Weigand + + * reload1.c (eliminate_regs_in_insn): Recognize frame pointer + adjustments even if they are implemented by more than two insns. + +Fri Jan 25 20:43:56 CET 2002 Jan Hubicka + + * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg. + * df.h (struct ref): Kill B. + (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN. + + * basic-block.h (PROP_EQUAL_NOTES): New flag. + * flow.c (propagate_one_insn): Use it. + (mark_used_regs): Handle NIL. + +2002-01-25 Geoffrey Keating + + * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM + to help folding. + +2002-01-25 David Edelsohn + + * rs6000.md (prefetch): Make address V4SI mode so that the address + is restricted to legitimate form for instruction. + +2002-01-25 Bob Wilson + + * doc/install.texi (xtensa-*-elf): New target. + (xtensa-*-linux*): New target. + * doc/contrib.texi: Add myself. + +2002-01-25 Nick Clifton + + * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general + purpose register to hold an SImode (or smaller) value. + +2002-01-25 Jakub Jelinek + + * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame* + registry only. + * crtstuff.c: Likewise. + +2002-01-25 Kazu Hirata + + * config/h8300/h8300.md (negation patterns): Tighten + predicates to register_operand. + +2002-01-24 Aldy Hernandez + + * loop.c (emit_prefetch_instructions): Use the prefetch insn's + mode, not Pmode. + + * builtins.c (expand_builtin_prefetch): Same. + +2002-01-24 Alexandre Oliva + + * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have + modes. + +2002-01-24 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Remove support for + operand character 'A'. + * config/h8300/h8300.md (three anonymous patterns): Replace + operand character 'A' with either 'T' or 'S'. + +2002-01-24 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Remove support for + operand character 'U'. + +2002-01-24 Andris Pavenis + + * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR. + +2002-01-24 Nick Clifton + + * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode + values to be assigned to the stack pointer. + +2002-01-14 Hartmut Penner + + * emit_rtl.c (gen_lowpart_common): Conversion from const_int + to const_double needs to be done right for big-endian systems. + +2002-01-24 Jason Merrill + + PR c++/2432 + * config/sparc/sparc.md (call-jump peepholes): Pass the right insn + to can_throw_internal. + +2002-01-23 Richard Henderson + + * fold-const.c (fold): Change UINT_MAX test to check vs precision + rather than TYPE_MAX_VALUE. Fix indentation and a bogus negation. + +2002-01-24 Alexandre Oliva + + * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands. + (symGOT2reg): Use them, then set as GOT value as unchanging. + (symGOTOFF2reg): Set REG_EQUAL note. Use a different pseudo + as a temporary, if possible. + (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC. Emit + sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2). + +2002-01-23 Kazu Hirata + + * config/h8300/h8300.md: Fix xorqi and xorqi so that they will + accept to accept 0x80 as operands[2]. + +2002-01-24 Alexandre Oliva + + * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode. + +2002-01-23 Richard Henderson + + * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo. + +2002-01-23 Aldy Hernandez + + * c-parse.in (parmlist_or_identifiers): Add maybe_attribute. + (parmlist_or_identifiers_1): Verify that only a parmlist follows + an attribute. + +2002-01-23 Richard Henderson + + * expr.c (move_by_pieces_1): Extend size before negation. + + * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060. + (MULTILIB_MATCHES): Remove 68040 and 68060 aliases. + (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060. + * config/m68k/t-m68kelf: Likewise. + +2002-01-23 Bob Wilson + + * config/xtensa/elf.h: New file. + * config/xtensa/lib1funcs.asm: New file. + * config/xtensa/lib2funcs.S: New file. + * config/xtensa/linux.h: New file. + * config/xtensa/t-xtensa: New file. + * config/xtensa/xtensa-config.h: New file. + * config/xtensa/xtensa-protos.h: New file. + * config/xtensa/xtensa.c: New file. + * config/xtensa/xtensa.h: New file. + * config/xtensa/xtensa.md: New file. + * config.gcc (xtensa-*-elf*): New target. + (xtensa-*-linux*): New target. + * cse.c (canon_hash): Compare rtx pointers instead of register + numbers. This is required for the Xtensa port. + * integrate.c (copy_insn_list): Handle case where the static + chain is in memory and the memory address has to be copied to + a register. + * doc/invoke.texi (Option Summary): Add Xtensa options. + (Xtensa Options): New node. + * doc/md.texi (Machine Constraints): Add Xtensa machine constraints. + +2002-01-23 Zack Weinberg + + * diagnostic.c (internal_error): Do ICE suppression only + when ENABLE_CHECKING is not defined. + + * c-typeck.c (require_complete_type): Return error_mark_node + if type is error_mark_node. + +2002-01-23 Janis Johnson + + * toplev.c (process_options): Disable -fprefetch-loop-arrays with + -Os and issue a warning. + +2002-01-23 Zack Weinberg + + * doc/fragments.texi, doc/hostconfig.texi: Update to reflect + current (lack of) need for host configuration by hand. + + * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross + references. Documentation of some target macros moved from + hostconfig.texi to tm.texi. + +2002-01-23 Will Cohen + + * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently + defined. + +2002-01-23 Kazu Hirata + + * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an + operand[3]. + +2002-01-23 Jason Merrill + + * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF. + + * function.c (assign_parms): Don't put args of inline functions + into registers when not optimizing. + +2002-01-23 Nick Clifton + + * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant. + (prologue_use): New pattern. + * config/arm/arm.c (expand_prologue): Use gen_prologue_use in + preference to gen_rtx_USE. + (thumb_expand_prologue): Use gen_prologue_use in preference to + gen_rtx_USE. + (thumb_expand_epilogue): Use gen_prologue_use in preference to + gen_rtx_USE. + +2002-01-23 Hans-Peter Nilsson + + * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0. + +2002-01-23 Neil Booth + + PR c/3504 + * doc/extend.texi: Correct documentation of __alignof__. + +2002-01-22 Zack Weinberg + + * params.h: Rename arguments of DEFPARAM so that it will be + recognized as a translation keyword. + +2002-01-22 Aldy Hernandez + + * extend.texi: Document altivec functions. + Fix N-bit adjectives in X86 builtin documentation. + +2002-01-22 Alexandre Oliva + + * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and + auto_inc_dec values. + +2002-01-22 Richard Earnshaw + + * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space + after backslash. + (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line. + +2002-01-22 Alexandre Oliva + + * config/i386/freebsd-aout.h (ASM_QUAD): Undefine. + +2002-01-22 Richard Henderson + + * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use + copy_insn not copy_rtx. + +2002-01-23 Alan Modra + + * combine.c (simplify_and_const_int): Don't trunc_int_for_mode + "nonzero" as that might add "1" bits. Ensure "constop" is + properly sign extened. + (force_to_mode): Tweak for sign extended constop. + +2002-01-22 Richard Henderson + + * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use + for_each_rtx instead of assuming we're already looking at the MEM. + (split_small_symbolic_mem_operand): Likewise. + * config/alpha/alpha.h (PREDICATE_CODES): Update. + * config/alpha/alpha.md (small symbolic memory splitters): Update. + +2002-01-22 Richard Henderson + + * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse + sequence number for the literal. + (divmoddi_internal_er): Likewise. + +2002-01-22 Craig Rodrigues + + PR java/4972 + * aclocal.m4 (AM_ICONV): Put linking flags for libiconv + in LIBICONV variable. + * configure: Regenerated. + +2002-01-22 Krister Walfridsson + + * dependence.c (build_def_use): Remove array_idx. + + * dwarfout.c (last_filename): Remove. + (output_compile_unit_die): Remove last_filename. + +2002-01-22 Roger Sayle + Richard Henderson + + PR opt/3640 + * fold-const.c (fold): Optimize unsigned comparisons against + UINT_MAX (and similar unsigned constants). + +2002-01-22 Janis Johnson + + * Makefile.in (loop.o): Depend on OPTABS_H. + * loop.c (emit_prefetch_instructions): Check the prefetch operand + against the predicate. + + PR target/5379 + * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint + for the address operand. + +2002-01-22 Richard Henderson + + * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove. + +2002-01-22 Craig Rodrigues + + PR other/5450 + * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU + preprocessor flags. + +2002-01-22 Jason Thorpe + + * config.gcc (x86_64-*-netbsd*): New target. + * config/i386/netbsd64.h: New file. + +2002-01-22 Aldy Hernandez + + * regrename.c (kill_value): Fix typo. + +2002-01-22 Aldy Hernandez + + * doc/tm.texi: Remove STARTING_FRAME_PHASE. + + * config/rs6000/rs6000.h: Same. + + * function.c (instantiate_virtual_regs): Remove + STARTING_FRAME_PHASE. + (assign_stack_local_1): Same. + Calculate frame phase. + +2002-01-22 Nick Clifton + + * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno' + variable declaration to outer scope in order to simplify + future extensions. + (HARD_REGNO_MODE_OK): Replace macro body with a with a call to + arm_hard_regno_mode_ok. + * config/arm/arm-protos.h: Add a prototype for + arm_hard_regno_mode_ok. + * config/arm/arm.c (soft_df_operand): Remove now redundant + check for DImode values using IP_REGNUM. + (nonimmediate_soft_df_operand): Remove now redundant check for + DImode values using IP_REGNUM. + (arm_hard_regno_mode_ok): New function. New check: make sure + that DImode values are not stored in IP_REGNUM. + + * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD + note with a USE. + (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE. + +2002-01-22 Jason Merrill + + * c-semantics.c (genrtl_compound_stmt): Only check nesting + consistency if this COMPOUND_STMT is scoped. + +2002-01-22 Kazu Hirata + + * predict.c: Fix formatting. + * print-tree.c: Likewise. + * protoize.c: Likewise. + * real.h: Likewise. + * rtl.h: Likewise. + * sbitmap.h: Likewise. + * scan.c: Likewise. + * sched-deps.c: Likewise. + * sched-vis.c: Likewise. + * sdbout.c: Likewise. + * sibcall.c: Likewise. + * ssa.c: Likewise. + * ssa-ccp.c: Likewise. + * ssa-dce.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * system.h: Likewise. + +Tue Jan 22 06:26:33 2002 Richard Kenner + + * tree.c (int_fits_type_p): If bounds of a subtype are variable, see + if fits in bounds of base type. + + * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls. + (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New. + (add_bound_info, default): If can't find a context, make a + SAVE_EXPR. + (dwarf2out_finish): Check for SAVE_EXPR in node->created_for. + +2002-01-22 Hans-Peter Nilsson + + * c-typeck.c (parser_build_binary_op): If result from + build_binary_op is ERROR_MARK just return error_mark_node without + further processing. + +2002-01-21 Jason Thorpe + + * config/netbsd.h (TARGET_HAS_F_SETLKW): define. + Split a.out-specific bits into... + * config/netbsd-aout.h: ...this. + * config/netbsd-elf.h: New file. + * config/alpha/netbsd-elf.h: Remove. + * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target. + * config/i386/netbsd-elf.h (LIB_SPEC): Remove. + (STARTFILE_SPEC): Remove redundant definition. + (ENDFILE_SPEC): Likewise. + (LINK_SPEC): Likewise. + (CPP_SPEC): Likewise. + (ASM_SPEC): Likewise. + (LIB_SPEC): Likewise. + (SWITCH_TAKES_ARG): Likewise. + (TARGET_MEM_FUNCTIONS): Likewise. + (CPP_PREDEFINES): Redefine. + (ASM_FINAL_SPEC): Remove redefinition. + (ASM_COMMENT_START): Redefine. + (FUNCTION_PROFILER): Define. + (TARGET_VERSION): Redefine. + Comment and formatting cleanup. + * config/i386/netbsd.h: Include . + * config/m68k/netbsd.h: Include . + * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target, + big- or little-endian. + * config/ns32k/netbsd.h: Include . + * config.gcc (*-*-netbsd*): Add definitions common to all + NetBSD configs. + (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and + gnu_ld definitions. Add netbsd-elf.h to and remove + alpha/netbsd-elf.h from tm_file. Remove alpha/t-crtfm from + tmake_file, and don't lose previous tmake_file contents. + (arm*-*-netbsd*): Add netbsd-aout.h to tm_file. + (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and + gnu_ld definitions. Add netbsd-elf.h to tm_file. + (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*. + (mipsel-*-netbsd*): Rename this to... + (mips*-*-netbsd*): ...this. Add elfos.h to tm_file. Add + mips/little.h to tm_file for mips*el-*. + (powerpc-*-netbsd*): Remove redundant xm_defines definition. + (sparc-*-netbsd*): Add netbsd-aout.h to tm_file. + (vax-*-netbsd*): Add netbsd-aout.h to tm_file. + +2002-01-21 John David Anglin + + * pa-protos.h (reg_before_reload_operand): New function prototype. + * pa.c (reg_before_reload_operand): New function implementation. + * pa.md (decrement_and_branch_until_zero, movb): Use it. Change "!*m" + contraints to "*m". + +2002-01-21 Franz Sirl + + * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP. + +2002-01-21 John David Anglin + + * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin". + (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/". + (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/". + (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections. + (ENDFILE_SPEC): Undefine. + (STARTFILE_SPEC): Redefine for PA. + +2002-01-21 Franz Sirl + + * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC. + +2002-01-21 Daniel Jacobowitz + + * config.gcc: Add entries to supported PowerPC --with-cpu + types. + +2002-01-21 Jakub Jelinek + + * config/i386/i386.c (ix86_function_arg_regno_p): Never return + true for 64-bit mode only SSE registers in 32-bit mode. + +2002-01-21 Kazu Hirata + + * unwind-dw2.c: Fix formatting. + * unwind-dw2-fde.c: Likewise. + * unwind-dw2-fde.h: Likewise. + * unwind-pe.h: Likewise. + * varasm.c: Likewise. + * varray.h: Likewise. + +2002-01-21 Hans-Peter Nilsson + + Remove workaround for register stack overwrite bug in mmix. + * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove + support for TARGET_REG_STACK_FILL_BUG. + * config/mmix/mmix.h: Remove member has_call_without_parameters. + (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG): + Delete. + (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG. + (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and + -mno-reg-stack-fill-bug-workaround. + * config/mmix/mmix.md ("call", "call_value"): Don't set struct + machine member has_call_without_parameters. + * doc/invoke.texi (Option Summary) : Remove + -mreg-stack-fill-bug-workaround and + -mno-reg-stack-fill-bug-workaround. + (MMIX Options): Ditto. + +2002-01-21 Kazu Hirata + + * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX + as appropriate. + Remove redundant code. + +2002-01-21 Joseph S. Myers + + * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h, + config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, + config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h, + config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h, + config/stormy16/stormy16.h, config/v850/v850.h: Remove commented + out target macro definitions and non-target-specific comments + mostly taken from old versions of the manual. + +2002-01-20 Kazu Hirata + + * config/h8300/h8300.h: Fix comment formatting. + * config/ia64/aix.h: Likewise. + * config/ia64/ia64-protos.h: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ia64/ia64intrin.h: Likewise. + * config/ia64/linux.h: Likewise. + * config/ia64/unwind-aix.c: Likewise. + * config/ia64/unwind-ia64.c: Likewise. + +2002-01-20 Kazu Hirata + + * config/h8300/h8300.c: Revise comments about shift code. + +2002-01-20 Kazu Hirata + + * config/h8300/h8300.c (function_arg): Update a comment. + +2002-01-20 Kazu Hirata + + * config/h8300/h8300.md: Update the comments at the beginning + of the file. + +2002-01-20 Kazu Hirata + + * config/i370/i370.c: Fix comment formatting. + * config/i370/i370.h: Likewise. + * config/i370/i370.md: Likewise. + * config/i370/linux.h: Likewise. + +Sun Jan 20 18:40:14 2002 Richard Kenner + + * reg-stack.c (subst_stack_regs): Properly check for deleted insn. + + * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases. + (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL + in incomplete case. + +2002-01-20 Graham Stott + + * cfgloop.c (flow_loop_preheader_scan): Fix typo. + +2002-01-19 John David Anglin + + * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file. + +2002-01-19 Tom Rix + + * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts. + +2002-01-18 Aldy Hernandez + + * doc/tm.texi (STARTING_FRAME_PHASE): Document. + + * function.c (assign_stack_local_1): Adjust x_frame_offset with + STARTING_FRAME_PHASE. + (STARTING_FRAME_PHASE): New. + (instantiate_virtual_regs): Check saneness of + STARTING_FRAME_PHASE. + + * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New. + +2002-01-19 Alexandre Oliva + + * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls. + +2002-01-18 Craig Rodrigues + + * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot + be used for bootstrapping GCC 3.0. + +2002-01-18 Kazu Hirata + + * config/h8300/h8300.md: Fix an insn length. + +2002-01-18 Kazu Hirata + + * bitmap.h: Fix comment formatting. + * combine.c: Likewise. + * cppfiles.c: Likewise. + * c-pragma.h: Likewise. + * c-typeck.c: Likewise. + * df.c: Likewise. + * dwarf2out.c: Likewise. + * function.c: Likewise. + * gcc.c: Likewise. + * genattrtab.c: Likewise. + * gthr-win32.h: Likewise. + * haifa-sched.c: Likewise. + * predict.c: Likewise. + * rtlanal.c: Likewise. + * rtl.h: Likewise. + * unwind-dw2-fde.h: Likewise. + * unwind-pe.h: Likewise. + * vmsdbgout.c: Likewise. + +Thu Jan 17 15:28:26 2002 Richard Kenner + + * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE + if type_required and passed decl. + +2002-01-17 Aldy Hernandez + + * config.gcc (cpu_type): Include altivec.h in powerpc + extra_headers. + Same for darwin. + + * config/rs6000/altivec.h: New. + +2002-01-17 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Update assembler and exception + handling information. + * doc/trouble.texi (Interoperation): Add libstdc++ information + for AIX. + (Misunderstandings): Add template instantiation and static template + member information for AIX. + +2002-01-17 Jason Merrill + + * dbxout.c (dbxout_type): Support const and volatile. + + * except.c (add_partial_entry): Remove backwards compatibility code. + (end_protect_partials): Likewise. + +2002-01-17 Jakub Jelinek + + * config/ia64/ia64.md (prologue_use): New. + * config/ia64/ia64.c (ia64_expand_prologue): Use + gen_prologue_use instead of gen_rtx_USE. + (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way + as CODE_FOR_pred_rel_mutex. + (ia64_sched_reorder2): Likewise. + +2002-01-16 Eric Christopher + + * config/mips/r3900.h: Reformat. + (SUBTARGET_CPP_SIZE_SPEC): Remove. + * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto. + * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "". + (SUBTARGET_CPP_SIZE_SPEC): Rewrite. + * config/mips/t-elf: Remove mips3 multilib. + +2002-01-16 H.J. Lu + + * config/mips/linux.h: Include "mips/abi64.h". + +2002-01-16 H.J. Lu + + * config/mips/t-linux: New. + + * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*. + + * config/mips/linux.h: Don't include "gofast.h". + (INIT_SUBTARGET_OPTABS): Removed. + +2002-01-16 Kazu Hirata + + * config/h8300/h8300-protos.h: Replace emit_a_shift with + output_a_shift. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.md: Likewise. + +2002-01-16 Kazu Hirata + + * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of + spaces after an opcode name. + (pushqi1_h8300hs): Likewise. + (pushhi1_h8300hs): Likewise. + +2002-01-16 Kazu Hirata + + * doc/extend.texi: Replace "option" with "attribute" + appropriately. + +2002-01-16 Jakub Jelinek + + * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into + (and:DI () (const_int -8)). + (split_small_symbolic_mem_operand): Split + (mem (and:DI () (const_int -8)). + +2002-01-16 Jakub Jelinek + + PR target/5309: + * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the + same way as TYPE_IMUL. + (ultrasparc_sched_reorder): Likewise. + * config/sparc/sparc.md (type): Add comment to update + ultrasparc_sched_reorder when making changes. + +2002-01-16 Kazu Hirata + + * doc/invoke.texi: Change the dump file name of block + reordering pass from 28.bbro to 29.bbro. + Mention -dk option. + +Wed Jan 16 17:54:22 CET 2002 Jan Hubicka + + * i386.md (minsf splitter): Fix pasto. + +2002-01-16 Nick Clifton + + * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note + to frame pointer initialisation instruction. + (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer + initialisation instruction. + (soft_df_operand): Do not accept the IP register. + (nonimmediate_soft_df_operand): Do not accept the IP register. + +2002-01-16 Jakub Jelinek + + PR target/5357: + * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and + MASK_V8 being both set. + +2002-01-16 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologue): Do not emit USE + insn for GOT register; add REG_MAYBE_DEAD notes instead. + config/s390/s390.md (call, call_value): Add GOT register to + CALL_INSN_FUNCTION_USAGE where needed. + (call_exp, call_value_exp): New. + +2002-01-16 Nick Clifton + + * config/arm/arm.c: General formatting tidy up. + +2002-01-16 Graham Stott + + * calls.c (try_to_integrate): Use "(size_t)" intermediate + cast and when casting an integer literal to "rtx" pointer. + (expand_call): Likewise. + * flow.c (try_pre_increment): Likewise. + (find_use_as_address): Likewise. + * integrate.c (expand_iline_function): Likewise. + * regmove.c (try_auto_increment): Likewise. + +2002-01-16 Graham Stott + + * sched-rgn.c (passed): Use sbitmap_free. + (header): Likewise. + (inner): Likewise. + (in_queue): Likewise. + (in_stack): Likewise. + +2002-01-15 Eric Christopher + + * flow.c (propagate_one_insn): Change to use fatal_insn. + +2002-01-15 Kazu Hirata + + * expmed.c (extract_fixed_bit_field): Remove unused code. + * system.h: Poison SLOW_ZERO_EXTEND. + * doc/tm.texi: Remove. + * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove. + * config/arm/arm.h: Likewise. + * config/avr/avr.h: Likewise. + * config/clipper/clipper.h: Likewise. + * config/convex/convex.h: Likewise. + * config/d30v/d30v.h: Likewise. + * config/dsp16xx/dsp16xx.h: Likewise. + * config/elxsi/elxsi.h: Likewise. + * config/fr30/fr30.h: Likewise. + * config/h8300/h8300.h: Likewise. + * config/i370/i370.h: Likewise. + * config/i386/i386.h: Likewise. + * config/m68k/m68k.h: Likewise. + * config/mips/mips.h: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/pdp11/pdp11.h: Likewise. + * config/pj/pj.h: Likewise. + * config/s390/s390.h: Likewise. + * config/sh/sh.h: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/v850/v850.h: Likewise. + * config/vax/vax.h: Likewise. + * config/we32k/we32k.h: Likewise. + +2002-01-15 Aldy Hernandez + + * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx. + (altivec_lvsl): Change constraint to b. + (altivec_lvsr): Same. + (altivec_lvebx): Same. + (altivec_lvehx): Same. + (altivec_lvewx): Same. + (altivec_lvxl): Same. + (altivec_lvx): Same. + (altivec_stvx): Add parallel. + (altivec_stvxl): Same. + (altivec_stvehx): Same. + (altivec_stvebx): Same. + (altivec_stvebx): Same. + +2002-01-15 Aldy Hernandez + + * config.gcc: Change altivec.h to altivec-defs.h. + + * config/rs6000/altivec.h: Delete. + + * config/rs6000/altivec-defs.h: Add. + +2002-01-15 John David Anglin + + * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV + and UMOD modes. + + * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size + less than or equal to eight bytes. + + * vax.md (andsi3): Remove constraints and change SET destination + operand type to nonimmediate_operand. + (andhi3, andqi3): Likewise. Don't clear high order bits of operand 1 + when it is a CONST_INT. + +2002-01-15 Jason Merrill + + * c-common.def (FILE_STMT): New code. + * c-common.c (statement_code_p): It's a statement. + * c-common.h (stmt_tree_s): Add x_last_filename. + (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros. + (last_expr_filename): New macro. + * c-semantics.c (begin_stmt_tree): Initialize it. + (add_stmt): If the filename changed, also insert a + FILE_STMT. + (expand_stmt): Handle seeing one. + +2002-01-15 Eric Christopher + + * flow.c (propagate_one_insn): Add error message and print out + insn for debugging. + +2002-01-15 Joseph S. Myers + + * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN, + ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison. + * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to + TRAMPOLINE_ALIGNMENT. + * config/arm/arm.h, config/mcore/mcore.h: Likewise. Change value + to be in bits. + * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to + PCC_BITFIELD_TYPE_MATTERS. + * config/interix.h (STDC_VALUE): Remove. Use + STDC_0_IN_SYSTEM_HEADERS. + * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h + (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC, + ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove. + +2002-01-15 Craig Rodrigues + + * doc/install.texi (hppa*-hp-hpux11): --enable-threads does + not work on this platform currently. + +2002-01-15 Joseph S. Myers + + * c-typeck.c (build_unary_op): Don't wrap msgid argument of + readonly_warning in _(). + +2002-01-15 Douglas B Rupp + + * gcc.c (delete_if_ordinary): Backout previous change. + +2002-01-15 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Remove support for + unused operand characters. + + * read-rtl.c: Fix formatting. + * real.c: Likewise. + * recog.c: Likewise. + * regclass.c: Likewise. + * regmove.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * rtlanal.c: Likewise. + +2002-01-15 Kazu Hirata + + * config/i386/i386.c: Fix formatting. + +2002-01-15 Jakub Jelinek + + * c-typeck.c (process_init_element): Don't save_expr + COMPOUND_LITERAL_EXPR if just its initializer will be used. + +2002-01-15 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not + emit optional traceback table if optimize_size or TARGET_ELF. + * config/rs6000/rs6000.md (prefetch): New. + +2002-01-15 Andreas Jaeger + + * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h. + +2002-01-15 Kazu Hirata + + * mips-tfile.c: Fix formatting. + +Tue Jan 15 00:56:11 CET 2002 Jan Hubicka + + * unroll.c (final_reg_note_copy): Fix previous commit. + +2002-01-14 Kazu Hirata + + * config/h8300/h8300-protos.h: Remove the prototype for + eq_operator. + * config/h8300/h8300.c (eq_operator): Remove. + +2002-01-14 Richard Henderson + + * config/i386/i386.md (prefetch): Tidy. + (prefetch_3dnow): Fix locality operand. + +2002-01-14 Richard Henderson + + * config/mips/mips.h (HI_AND_FP_REGS): New register class. + (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode. + +2002-01-14 Hans-Peter Nilsson + + * reload1.c (reload_combine): Pass reg_sum replacement through + copy_rtx in loop performing multiple changes. + +2002-01-14 Jakub Jelinek + + * except.c (remove_unreachable_regions): New. + (free_eh_status): Clear exception_handler_labels. + (convert_from_eh_region_ranges): Call remove_unreachable_regions. + (find_exception_handler_labels): Don't add the same label more than + once. + (remove_exception_handler_label): Don't die if + find_exception_handler_labels hasn't been called for the current + function yet. + +Mon Jan 14 21:26:13 CET 2002 Jan Hubicka + + * toplev.c (rest_of_compilation): Rebuild jump labels after + gcse. + +2002-01-14 Joseph S. Myers + + * doc/extend.texi: Move documentation of X86 built-in functions + here. + * doc/invoke.texi: From here. + * doc/sourcebuild.texi: Document location of documentation for + machine built-in functions. + +2002-01-13 Christopher Faylor + + * cppfiles.c (TEST_THRESHOLD): New macro. + (SHOULD_MMAP): Ditto. + (read_include_file): Use SHOULD_MMAP macro to decide when mmap should + be used. + +Mon Jan 14 20:23:34 CET 2002 Jan Hubicka + + * unroll.c (final_reg_note_copy): Properly handle + REG_LABEL + (unroll_loops): Fix LOOP_CONDITION heuristics. + +2002-01-14 Geoffrey Keating + + * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option. + * doc/md.texi (Machine Constraints): Use @minus{} where appropriate. + +Mon Jan 14 20:18:19 CET 2002 Jan Hubicka + + * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite + threaded loop. + +2002-01-14 Tom Rix + + * config/rs6000/rs6000.md: Fix typo with sradi. + +2002-01-14 Ulrich Weigand + + * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64, + movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates. + (clrstrdi, clrstrsi): Adapt callers. + + (extendsidi2, zero_extendsidi2): Remove no-conflict blocks. + + (movti splitter): Never use register 0 as base register. + +2002-01-14 Hartmut Penner + + * combine.c (simplify_shift_const): Always generate new rtx + for shift expression instead of reusing given expression. + +Mon Jan 14 07:08:55 2002 Richard Kenner + + * config/alpha/alpha.c (alpha_expand_mov): Don't call + alpha_legitimize_address unless mode is Pmode. + +2002-01-13 Geoffrey Keating + + * doc/md.texi (Modifiers): Document the '*' constraint for the + user. + + * doc/md.texi (Machine Constraints): Add constraints for xstormy16. + * doc/extend.texi (Function Attributes): 'interrupt' is valid + for xstormy16 too. + +2002-01-13 Richard Henderson + + * reload.c (find_reloads): Use a hard reg destination as reload reg + for an input reload of the source. + +2002-01-13 Gerald Pfeifer + + * doc/install.texi (Binaries): Make link to ftp.writtenword.com + more generic. + +Sun Jan 13 07:23:01 2002 Douglas B Rupp + + * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2. + * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2. + + * config/alpha/x-vms (USE_COLLECT2): Set to empty. + +Sun Jan 13 06:55:31 2002 Richard Kenner + + * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case. + +2002-01-12 Tom Rix + + * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for + TARGET_POWERPC64. + +2002-01-12 Richard Henderson + + * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A. + + * doc/invoke.texi: Update Alpha options. + + * doc/invoke.texi: Update i386 built-in function lists. + +Sat Jan 12 17:38:11 CET 2002 Jan Hubicka + + * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note + referencing outside. + +Sat Jan 12 08:54:51 2002 Richard Kenner + + * diagnostic.c (warn_deprecated_use): Rework to lower indentation. + * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for + offsets, and change line folding. + * optabs.c (expand_binop): Remove warnings. + * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning. + +2002-01-12 Graham Stott + + * attribs.c (handle_deprecated_attribute): constify WHAT. + * diagnostic.c (warn_deprecated_use): Add braces, fixes + dangling else warning and constify WHAT. + * except.h (struct function, struct inline_remap): Move + struct tag forward defs before all prototypes. + (duplicate_eh_regions): Whitespace. + +2002-01-12 Nick Clifton + + * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use + MODE_BASE_REG_CLASS. + (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS. + +2002-01-12 Richard Henderson + + * config/i386/i386.c (override_options): If SSE, enable sse prefetch. + (ix86_expand_vector_move): New. + (bdesc_2arg): Remove andps, andnps, orps, xorps. + (ix86_init_mmx_sse_builtins): Make static. Remove composite builtins. + Remove old prefetch builtins. Special case the logicals removed above. + (ix86_expand_builtin): Likewise. + (safe_vector_operand): Use V4SFmode, not TImode. + (ix86_expand_store_builtin): Remove shuffle arg. Update callers. + (ix86_expand_timode_binop_builtin): New. + * config/i386/i386-protos.h: Update. + * config/i386/i386.h (enum ix86_builtins): Update. + * config/i386/i386.md: Correct predicates on MMX/SSE patterns. + Use ix86_expand_vector_move in vector move expanders. + (movti_internal, movti_rex64): Add xorps alternative. + (sse_clrv4sf): Rename and adjust from sse_clrti. + (prefetch): Don't work so hard. + (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC. + * config/i386/xmmintrin.h (__m128): Use V4SFmode. + (_mm_getcsr, _mm_setcsr): Fix typo in builtin name. + +2002-01-11 Richard Henderson + + * config/i386/mmintrin.h: New file. + * config/i386/xmmintrin.h: New file. + * config.gcc (i?86-*-*): Add extra_headers. + * simplify-rtx.c (simplify_unary_operation): Handle saturating + truncation codes. + (simplify_binary_operation): Handle saturating arithmetic codes. + * config/i386/i386.c (ix86_expand_sse_comi): Return the full result, + not the lowpart subreg. + (ix86_expand_builtin): Return a TImode dummy register instead of 0 + on error. + * config/i386/i386.md (mmx_clrdi): Override memory attribute. + +2002-01-12 Michael Hayes + + * conflict.c (conflict_graph_compute): Free regsets when finished. + * ssa.c (compute_coalesced_reg_partition): Likewise. + +2002-01-12 Herman A.J. ten Brugge + + * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED + every where we allocate a register. + +2002-01-12 Michael Hayes + + * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free. + * lcm.c (compute_earliest, compute_farthest): Likewise. + +2002-01-11 Janis Johnson + + * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET. + +2002-01-11 Janis Johnson + + * doc/rtl.texi (Insns): Fix 2 typos. + +2002-01-11 Joseph S. Myers + + * doc/invoke.texi: Avoid overfull hboxes. Add summary of D30V + options. Use @table @gcctabopt for MMIX options. Add index + entries for MMIX options. Start new paragraph with first + heading of the machine-dependent options. + +2002-01-11 Craig Rodrigues + + PR other/5299 + * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments. + * combine.c (force_to_mode): Same. + * reload1.c (clear_reload_reg_in_use): Same. + +2002-01-11 Nick Clifton + + * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder' + and 'subtargets'. + +2002-01-11 Andreas Jaeger , + Brad Lucier + + * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong + mcpu. + +Fri Jan 11 07:35:12 2002 Douglas B Rupp + + * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors. + Protect with IN_LIBGCC. + (LINK_EH_SPEC): Add required trailing space. + +Fri Jan 11 09:25:05 2002 Nicola Pero + + * c-tree.h: Move function declarations so that they are listed + under the filename which contains them. + (check_identifier, finish_decl_top_level, + lookup_name_current_level_global, shadow_record_fields): Remove. + +2002-01-11 Andreas Jaeger + + * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated + march. + +2002-01-10 Richard Henderson + + * config/alpha/alpha.c (print_operand): Add 'J'. + * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a + new operand with the sequence number for the lituse. When splitting + the insns, use gen_movdi_er_high_g and generate a sequence number. + (gen_movdi_er_high_g): Print the sequence number if nonzero. + +2002-01-10 Aldy Hernandez + + * config/rs6000/rs6000.c (altivec_init_builtins): Add support for + lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx, + stvxl. + (altivec_expand_builtin): Same. + (altivec_expand_stv_builtin): New. + + * config/rs6000/rs6000.h (rs6000_builtins): Same. + + * config/rs6000/rs6000.md ("altivec_lvebx"): New. + ("altivec_lvehx"): New. + ("altivec_lvewx"): New. + ("altivec_lvxl"): New. + ("altivec_lvx"): New. + ("altivec_stvx"): New. + ("altivec_stvebx"): New. + ("altivec_stvehx"): New. + ("altivec_stvewx"): New. + ("altivec_stvxl"): New. + +2002-01-10 Richard Henderson + + * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet. + * reload1.c (delete_output_reload): Zap spill_reg_store. Take + care not to delete instructions twice. + +2002-01-10 Zack Weinberg + + * toplev.c: Don't declare environ (it's not used anywhere). + * configure.in: Don't check for declaration of environ. + * config/i386/xm-mingw32.h: Don't #define environ. + * config.in, configure: Regenerate. + +2002-01-10 Zack Weinberg + + * configure.in: Set stage1_cflags for powerpc-*-darwin*. + * configure: Regenerate. + + * config/interix.h: Set DO_GLOBAL_CTORS_BODY and + DO_GLOBAL_DTORS_BODY here, not in xm-interix.h. + * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in + alpha/xm-vms.h. + * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and + LIMITS_H_TEST here, not in m68k/x-next. + * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and + SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h. + + * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL, + LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR. + * config/alpha/x-vms: Don't set USE_COLLECT2. Add comments. + + * config/i386/x-djgpp: Renamed i386/t-djgpp. + * config/m88k/x-dolph: Renamed m88k/t-dolph. + * config/m88k/x-texXD88: Renamed m88k/t-texXD88. + * config/pa/x-pa-mpeix: Renamed pa/t-mpeix. Update for + replacement of quadlib.asm with quadlib.c. + + * config/x-interix3, config/xm-interix.h, config/i386/x-beos, + config/i386/xm-osf1elf.h, config/rs6000/x-darwin, + config/rs6000/xm-beos.h: Delete file. + + * config.gcc: Update to match above changes. + +2002-01-10 Kazu Hirata + + * config/h8300/h8300.h: Fix comment typos. + * config/h8300/h8300.md: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + +2002-01-10 Dale Johannesen + + PR optimization/5269 + * unroll.c (precondition_loop_p): Make *increment be the correct + sign when n_iterations known, to avoid confusing caller. + +2002-01-10 Kazu Hirata + + * doc/extend.texi (deprecated): Fix a typo. + +Thu Jan 10 22:35:54 CET 2002 Jan Hubicka + + * basic-block.h (update_br_prob_note): Declare. + * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note. + (try_forward_edges): Care negative frequencies and update note. + (outgoing_edges_match): Tweek conditional merging heuristics. + (try_crossjump_to_edge): use update_br_prob_note. + * cfglayout.c (fixup_reorder_chain): Likewise. + * cfrtl.c (update_br_prob_note): New. + * ifcvt.c (dead_or_predicable): Call update_br_prob_note. + + * i386.c (ix86_decompose_address): Return -1 if address contains + shift. + (legitimate_address_p): Require ix86_decompose_address to return 1. + + * gcse.c (hash_scan_set): Use CONSTANT_INSN_P. + (cprop_insn): Likewise. + +2002-01-10 Kazu Hirata + + * toplev.c: Fix formatting. + * tree.c: Likewise. + * tree-dump.c: Likewise. + * unroll.c: Likewise. + * unwind-dw2.c: Likewise. + * unwind-dw2-fde.c: Likewise. + * unwind-dw2-fde-glibc.c: Likewise. + * unwind-sjlj.c: Likewise. + +2002-01-10 Joseph S. Myers + + * doc/invoke.texi: Document PDP-11 options. + +2002-01-10 Kazu Hirata + + * config/h8300/h8300.h: Fix formatting. + +2002-01-10 Ira Ruben + + Add __attribute__ ((deprecated)). + * extend.texi: Document __attribute__ ((deprecated)). + * invoke.texi: Document -Wno-deprecated-declarations. + * testsuite/g++.dg/other/deprecated.C: New C++ test. + * testsuite/gcc.dg/deprecated.c: New C test. + * attribs.c (enum attrs): Declare handle_deprecated_attribute(). + (c_common_attribute_table): Add "deprecated" entry. + (handle_deprecated_attribute): New function. + * c-decl.c (deprecated_states): New enum. + deprecated_state: State of "deprecated" handling. + (start_decl): Set deprecated_state based on attributes. + (grokdeclarator): Test for deprecated uses, propagate attribute. + * c-typeck.c (build_component_ref): Test for deprecated fields. + (build_external_ref): Test for deprecated primaries. + * diagnostic.c (warn_deprecated_use) New function to issue + warnings about __attribute__ ((depricated)) references. + * flags.h (warn_deprecated_decl): Extern declared for + -W[no-]deprecated-declarations option. + * print-tree.c (print_node): Show deprecated flag status. + * toplev.c (warn_deprecated_decl): Defined. + (W_options): Added "deprecated-declaration". + * toplev.h (warn_deprecated_use): Extern declared. + * tree.h (struct tree_common): Define deprecated_flag. + (TREE_DEPRECATED): New macro to access flag. + * cp/call.c (build_call): Test for deprecated calls. + * cp/class.c (add_implicitly_declared_members): Set global + flag to tell grokdeclarator to not issue deprecated warnings. + * cp/cp-tree.h: Add extern for adding_implicit_members. + * cp/decl.c (deprecated_states): New enum. + (start_decl): Set deprecated_state based on attributes. + (grokdeclarator): Test for deprecated uses, propagate attribute. + * cp/lex.c (do_identifier): Test for deprecated primaries. + * cp/typeck.c (build_component_ref): Test for deprecated fields. + +2002-01-10 Ira Ruben + + Fix to assign attributes to inline member functions. + * cp/decl.c (start_method): Handle attrlist. + +2002-01-10 Kazu Hirata + + * combine.c (expand_field_assignment): Use subreg_lsb(). + +2002-01-10 David Edelsohn + + * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC, + POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY. + (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY. + Recurse for any operand of AND as long as constant is nonzero. + +2002-01-10 Kazu Hirata + + * config/h8300/h8300.md: Remove constraints from expanders. + +2002-01-10 Kazu Hirata + + * varasm.c: Fix formatting. + * varray.c: Likewise. + * vmsdbgout.c: Likewise. + * xcoffout.c: Likewise. + +Thu Jan 10 17:19:12 CET 2002 Jan Hubicka + + * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges; + update edge probabilities to match. + +2002-01-10 Joseph S. Myers + + * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional + dependencies. + * doc/languages.texi, doc/sourcebuild.texi: New files. + * doc/configfiles.texi: Make a subsubsection. Update. + * doc/configterms.texi: Add @node. Remove warning that this isn't + instructions for building GCC. + * doc/makefile.texi: Make a subsection. + * doc/gccint.texi: Update. + +Thu Jan 10 16:39:58 CET 2002 Jan Hubicka + + * i386.md (sse_mov?fcc_const0_?): Fix constraints. + +Thu Jan 10 12:45:50 2002 Nicola Pero + + * doc/cpp.texi: Document the __OBJC__ preprocessor macro. + +Thu Jan 10 11:19:18 CET 2002 Jan Hubicka + + * optabs.c (expand_fix): Look for wider integer modes first. + + * i386.md (mov?f): Avoid the fake const double trick for medium + memory model. + (min?f*/max?f*): Prohibit memory operands for i387 variant. + (fop_df_4): Disable for SSE compilation. + +2002-01-10 Graham Stott + + * dwarf2out.c (indirect_string_alloc, output_indirect_string): + Move prototype into DWARF2_DEBUGGING_INFO conditional block. + +2002-01-10 Richard Henderson + + * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative. + +2002-01-10 Richard Henderson + + * regrename.c (find_oldest_value_reg): Fix typo in mode change check. + (copyprop_hardreg_forward_1): Likewise. Use mode_change_ok. + +2002-01-10 Kazu Hirata + + * combine.c (can_combine_p): Fix a comment typo. + +2002-01-09 Zack Weinberg + + * Makefile.in (s-gencheck, s-options, s-specs): Handle an + empty list correctly. Change loop index $t to $f for + consistency with rest of Makefile. + +2002-01-08 Aldy Hernandez + + * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall, + mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst. + + * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for + mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt. + (altivec_init_builtins): Same. + (altivec_expand_unop_builtin): Return NULL_RTX on error. + (altivec_expand_binop_builtin): Same. + (altivec_expand_ternop_builtin): Same. + (bdesc_dst): New. + + * config/rs6000/rs6000.md ("altivec_mtvscr"): New. + ("altivec_vctuxs"): Fix typo. + ("altivec_vnmsubfp"): Same. + ("altivec_dssall"): New. + ("altivec_mfvscr"): New. + ("altivec_dss"): New. + ("altivec_lvsl"): New. + ("altivec_lvsr"): New. + ("altivec_dstt"): New. + ("altivec_dstst"): New. + ("altivec_dststt"): New. + ("altivec_dst"): New. + + * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall, + mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst. + +2002-01-09 Richard Henderson + + * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc. + +2002-01-10 Hans-Peter Nilsson + + * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused + function. + * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't + prototype. + * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro. + +2002-01-09 Kazu Hirata + + * read-rtl.c: Fix formatting. + * real.c: Likewise. + * regclass.c: Likewise. + * regrename.c: Likewise. + * reg-stack.c: Likewise. + * reload1.c: Likewise. + * reload.c: Likewise. + * rtl.c: Likewise. + +2002-01-09 Kazu Hirata + + * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST + to extract items in the expr_list chain. + +2002-01-09 Richard Henderson + + * config/vax/vax.c (vax_rtx_cost): Never abort. + + * config/vax/vax.h (REAL_ARITHMETIC): Define. + +2002-01-09 Jan Hubicka + + * gcse.c (cprop_jump): Delete insn if simplified jump is no-op. + +2002-01-09 Richard Henderson + + * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode. + Unify code from various alternatives. + +2002-01-09 Richard Henderson + + * regrename.c (copy_value): Ignore the copy if the source register + is present in the value chain with a narrower mode. + +2002-01-09 Herman A.J. ten Brugge + + * real.c (c4xtoe, toc4x): Do some special conversion on long doubles + for the c4x target. Also improve layout. + +2002-01-09 Richard Henderson + + * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test. + * config/m32r/m32r.md (and ior xor splitters): Swap operands + to match insn patterns. + +2002-01-09 Richard Henderson + + * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG. + (copyprop_hardreg_forward_1): Likewise. + +2002-01-09 John David Anglin + + * pa.md (decrement_and_branch_until_zero): Change predicate for + operand 0 from register_operand to reg_or_nonsymb_mem_operand. + +2002-01-09 Bryce McKinlay + + * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_ + gets undefined. For Darwin. + +2002-01-09 Herman A.J. ten Brugge + + * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing. + +2002-01-09 Michael Hayes + + * config/c4x/c4x/md: Remove extraneous constraints from define_splits. + +2002-01-08 Richard Henderson + + * regrename.c (copy_value): Ignore overlapping copies. + +2002-01-08 Richard Henderson + + * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx + as needed to avoid shared structure. + +2002-01-08 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on + H8/300H and H8S. + +2002-01-08 Joseph S. Myers + + * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR, + LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove + documentation of obsolete macros. + * system.h: Poison these macros. + * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h, + config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, + config/c4x/c4x.h, config/clipper/clipper.h, + config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h, + config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h, + config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h, + config/i386/i386.h, config/i860/i860.h, config/i960/i960.h, + config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h, + config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h, + config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, + config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h, + config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h, + config/rs6000/rs6000.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/we32k/we32k.h: Remove + definitions and commented out definitions of obsolete macros. + * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms + of MAX_INT_TYPE_SIZE. + +2002-01-08 Ulrich Weigand + + * config/s390/s390.c (s390_preferred_reload_class): Never + return ADDR_REGS if it isn't a subset of the given class. + * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just + FP_REGS, but all superclasses as well. + + * config/s390/s390.c (s390_function_profiler): Fix thinko. + + * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem, + cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare + must not be a const_int. + +2002-01-08 Richard Henderson + + * Makefile.in (toplev.o): Depend on options.h. + (gcc.o): Depend on specs.h. + +2002-01-08 Jakub Jelinek + + * expr.c (store_expr): Convert VOIDmode constants back to target's + mode. + +2002-01-08 Gerald Pfeifer + + * doc/invoke.texi: Markup gcc as @command. Refer to + http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead + of http://gcc.gnu.org/thanks.html. + +2002-01-08 Dale Johannesen + + * config/rs6000/rs6000.md: Add missing int register + target case to movdf_low. + +2002-01-08 Zack Weinberg + + * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or + except.h. Remove commands to define USING_SJLJ_EXCEPTIONS. + (cppinit.o): Depend on except.h. + (gencheck.h, options.h, specs.h, s-gencheck, s-options, + s-specs): New rules. + + * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION. + Don't create specs.h/options.h/gencheck.h here. Remove + unnecessary variable settings from last argument of AC_OUTPUT. + * config.in, configure: Regenerate. + * intl.c: Hardcode package name as "gcc". + + * cppinit.c: Include except.h. + (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when + appropriate. + * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c: + Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if + (!)USING_SJLJ_EXCEPTIONS. + * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__. + +2002-01-08 Joseph S. Myers + + * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END, + ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP, + OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove + documentation of obsolete macros. + * system.h: Poison these macros. + * config/d30v/d30v.h, config/ns32k/encore.h, + config/stormy16/stormy16.h: Remove definitions and commented out + definitions of obsolete macros. + +Tue Jan 8 15:56:41 2002 Nicola Pero + + * objc/objc-act.c (handle_class_ref): Mark the declaration of + %sobjc_class_ref_%s as used - to prevent unwanted compiler + warnings. + +2002-01-08 Ulrich Weigand + + * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove. + * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR + to insn adjusting stack/frame pointer. + * config/s390/s390.md (reload_la_64, reload_la_31): Do not + accept operands that cause the insn to be non-splittable. + +2002-01-08 Graham Stott + + * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter. + (C_TYPE_FIELDS_VOLATILE): Likewise. + (C_TYPE_BEING_DEFINED): Likewise. + (C_IS_RESERVED_WORD): Likewise. + (C_TYPE_VARIABLE_SIZE): Likewise. + (C_DECL_VARIABLE_SIZE): Likewise. + (C_MISSING_PROTOTYPE_WARNED): Likewise. + (C_SET_EXP_ORIGINAL_CODE): Likewise. + (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove + parenthesis. + (C_DECL_ANTICIPATED): Likewise. + (c_build_type_variant): Add parenthesis. + +2002-01-08 Joseph S. Myers + + * gcc.c (option_map): Remove --version. + (process_command): Handle -fversion following the GNU Coding + Standards. Partially addresses PR other/704. + +2002-01-08 Graham Stott + + * combine.c (combine_instructions): Fix typo. + +2002-01-08 Graham Stott + + * debug.h: Use "tree" and "rtx" throughout. + + * debug.c: Likewise. + +2002-01-08 Nick Clifton + + * dbxout.c (dbxout_symbol_location): If a symbol ref is in the + constant pool, use the pool's version of the symbol instead. + +2002-01-07 Richard Henderson + + * regrename.c (find_oldest_value_reg): Ignore the value chain if + the original register was copied in a mode with a fewer number of + hard registers than the desired mode. + (copyprop_hardreg_forward_1): Likewise. + (debug_value_data): Fix loop test. + * toplev.c (parse_options_and_default_flags): Reenable + -fcprop-registers at -O1. + +2002-01-07 Aldy Hernandez + + * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates. + (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi. + + * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec + predicates. + + * config/rs6000/rs6000.md: Add altivec predicate patterns. + +2002-01-07 John David Anglin + + * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define. + (pa_output_function_prologue): Output local label at the beginning of + the prologue when profiling. + (hppa_profile_hook): Use the local label rather than the function label. + * pa.h (PROFILE_BEFORE_PROLOGUE): Define. + +2002-01-07 Aldy Hernandez + + * config/rs6000/rs6000.c (print_operand): Remove extra space. + (altivec_expand_unop_builtin): Fix thinko. + (altivec_expand_binop_builtin): Same. + (altivec_expand_ternop_builtin): Same. + (altivec_expand_builtin): Same. + +2002-01-07 Richard Henderson + + * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag. + +2002-01-07 Jason Merrill + + * unwind-dw2.c (execute_cfa_program): Use < again. + +2002-01-07 Jakub Jelinek + + * predict.c (combine_predictions_for_insn): Avoid division by zero. + +2002-01-07 Jakub Jelinek + + * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT. + Don't allow -1 - x -> ~x simplifications in the first pass. + +2002-01-07 Aldy Hernandez + + * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid + arguments. + (altivec_expand_binop_builtin): Same. + (altivec_expand_unop_builtin): Same. + (print_operand): Fix typo. + (bdesc_1arg): Add vupk* variants. + + * rs6000.h (rs6000_builtins): Add vupk* enums. + + * rs6000.md: Add altivec_vupk* variants. + +2002-01-07 Joseph S. Myers + + * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi, + doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright + and last update dates. + +2002-01-07 Janis Johnson + + * doc/rtl.texi (Flags): Clean up documentation of RTL flags + +2002-01-07 Marek Michalkiewicz + + * config/avr/avr.c (avr_mcu_types): Add new MCU types. + * config/avr/avr.h (CPP_SPEC): Likewise. + (LINK_SPEC): Likewise. + (CRT_BINUTILS_SPECS): Likewise. + * config/avr/t-avr (MULTILIB_MATCHES): Likewise. + * doc/invoke.texi (AVR Options): Document them. + +Mon Jan 7 11:59:34 CET 2002 Jan Hubicka + + * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and + LABEL_NUSES. + +2002-01-07 Graham Stott + + * config/i386/i386.h: Update copyright date. + (HALF_PIC_PTR): Add parenthesis. + (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap. + (CONSTANT_ALIGNMENT): Add parenthesis. + (DATA_ALIGNMENT): Likewise. + (LOCAL_ALIGNMENT): Likewise. + (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap. + (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap. + (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0). + (HARD_REGNO_NREGS): Add paranethesis. + (VALID_SSE_REG_MODE): Whitespace. + (VALID_MMX_REG_MODE): Whitespace. + (VALID_FP_MODE_P): Uppercase macros parameter and whitespace. + (ix86_hard_regno_mode_ok): Add parenthesis. + (HARD_REGNO_CALLER_SAVE_MODE): Whitespace. + (RETURN_IN_MEMORY): Whitespace. + (N_REG_CLASSES): Add parenthesis. + (INTEGER_CLASS_P): Add parenthesis and wrap. + (FLOAT_CLASS_P): Likewise. + (SSE_CLASS_P): Likewise. + (MMX_CLASS_P): Likewise. + (MAYBE_INTEGER_CLASS_P): Likewise. + (MAYBE_FLOAT_CLASS_P): Likewise. + (MAYBE_SSE_CLASS_P): Likewise. + (MAYBE_MMX_CLASS_P): Likewise. + (Q_CLASS_P): Likewise. + (GENERAL_REGNO_P): Uppercase macro parameter. + (REX_INT_REGNO_P): Uppercase macro parameter and wrap. + (FP_REGNO_P): Likewise. + (ANY_FP_REGNO_P): Uppercase macro parameter. + (SSE_REGNO_P): Likewise. + (SSE_REGNO): Likewise. + (SSE_REG_P): Likewise. + (SSE_FLOAT_MODE_P): Likewise. + (MMX_REGNO_P): Likewise. + (MMX_REG_P):Likewise. + (STACK_REG_P): Likewise. + (NON_STACK_REG_P): Likewise. + (STACK_TOP_P): Likewise. + (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis. + (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace. + (SECONDARY_MEMORY_NEEDED): Likewise. + (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace. + (MD_ASM_CLOBBERS): Whitespace and wrap. + (MUST_PASS_IN_STACK): Whitespace and wrap. + (RETURN_POPS_ARGS): Add parenthesis. + (INIT_CUMULATIVE_ARGS): Likewise. + (FUNCTION_ARG): Likewise. + (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace. + (SETUP_INCOMING_VARARGS): Likewise. + (BUILD_VA_LIST_TYPE): Add parenthesis. + (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add + parenthsis. + (EXPAND_BUILTIN_VA_ARG): Likewise. + (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis. + (INITIALIZE_TRAMPOLINE): Add parenthesis. + (INITIAL_ELIMINATION_OFFSET): Likewise. + (REGNO_OK_FOR_INDEX_P): Add parenthesis. + (REGNO_OK_FOR_BASE_P): Likewise. + (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap. + (REGNO_OK_FOR_DIREG_P): Likewise. + (REG_OK_FOR_INDEX_P): Whitespace. + (REG_OK_FOR_BASE_P): Whitespace. + (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add + parenthesis. + (FIND_BASE_TERM): Fix typo. + (LEGITIMIZE_ADDRESS): Wrap in { .. } while (0) and add parenthesis. + (REWRITE_ADDRESS): Uppercase macro parameter and whitespace. + (SYMBOLIC_CONST; Whitespace. + (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in { .. } while (0) and wrap. + (ENCODE_SECTION_INFO): Whitespace. + (FINALIZE_PIC): Remove do { ... } while (0). + (PROMOTE_MODE): Wrap in do { ... } while (0). + (CONST_COSTS): Whitespace. + (RTX_COSTS): Add paramethesis, whitespace and wrap. + (REGISTER_MOVE_COST): Add parenthesis. + (MEMORY_MOVE_COST): Likewise. + (EXTRA_CC_MODES): Whitespace. + (SELECT_CC_MODE): Add parenthesis and whitespace. + (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis. + (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace. + (ASM_OUTPUT_LABEL): Add paramethesis. + (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace. + (ASM_OUTPUT_REG_POP): Likewise. + (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis. + (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. + + * config/i386/i386.c: Update copyright. + (CHECK_STACK_LIMIT): Add parenthesis. + (AT_BP): Uppercase macro parameter. + (x86_64_int_parameter_registers): Constify. + (x86_64_int_return_registers): Likewise. + (ix86_compare_op0): Use rtx. + (construct_container): Constify INTREG parameter. + (function_arg): Use rtx. + + * diagnostic.h: Update copyright date. + (output_buffer_state): Add parenthesis. + (output_buffer_format_args): Likewise. + + * combine.c (combine_instructions): Replace XEXP (links, 0) + with link. + +2002-01-06 H.J. Lu + + * cfgcleanup.c (thread_jump): Fix 2 typos. + +2002-01-06 Aldy Hernandez + + * config.gcc: Add support for --enable-altivec. + +2002-01-06 Craig Rodrigues + + * emit-rtl.c (gen_highpart): Add check for NULL_RTX. + +2002-01-06 Jakub Jelinek + + * objc/objc-act.c (handle_impent): Use assemble_variable to emit + __objc_class_name_*. + +2002-01-06 Craig Rodrigues + + * doc/install.texi (sparcv9-*-solaris2*): Add documentation. + +2002-01-06 Richard Henderson + + * reorg.c (emit_delay_sequence): Remove death notes, not merely + nop them out. Increment label reference count for REG_LABEL. + (fill_slots_from_thread): Frob label reference count around + delete_related_insns. + +2002-01-05 Richard Henderson + + * cfgcleanup.c (try_forward_edges): Detect infinite loops while + jump threading. + +2002-01-05 Richard Henderson + + * c-decl.c (c_expand_body): Don't call outlining_inline_function. + * integrate.c (output_inline_function): Likewise. + * toplev.c (rest_of_compilation): Do it here instead. Move call + to remove_unnecessary_notes after emitting abstract instance. + Force an emitted nested function to have its parent emited as well. + * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking + for null. + (rtl_for_decl_location): Do not look at reload data structures + before reload has run. + +2002-01-05 Kazu Hirata + + * cse.c: Fix formatting. + * dwarf2asm.c: Likewise. + * dwarf2out.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * function.c: Likewise. + * gcov.c: Likewise. + * gencheck.c: Likewise. + * genrecog.c: Likewise. + * ggc-common.c: Likewise. + * ggc-page.c: Likewise. + * global.c: Likewise. + +2002-01-05 Kazu Hirata + + * combine.c: Fix formatting. + +2002-01-05 Craig Rodrigues + + PR middle-end/1557 + * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove. + +2002-01-05 David Edelsohn + + * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define + as 1 for __powerpc64__ as well. + + * config/rs6000/t-aix43 (T_ADAFLAGS): Define. + + * alias.c (find_base_value, PLUS/MINUS): If we found a base, + return it. + +2002-01-05 Daniel Berlin + + * lcm.c: Revert change, due to performance regression it causes on + SPEC because it's slightly more conservative (sigh, I hate + edge-based LCM). + +Sat Jan 5 11:52:05 CET 2002 Jan Hubicka + + * cfgcleanup.c (try_forward_edges): Allow multiple jump threading. + +2002-01-05 Neil Booth + + * doc/cppinternals.texi: Update. + +2002-01-05 Hans-Peter Nilsson + + * doc/invoke.texi (Option Summary) : Document + -mbranch-predict, -mreg-stack-fill-bug-workaround and their + negatives. + (MMIX Options): Ditto. Fix item/itemx typo for -mno-zero-extend. + * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework + kludge for pre-october-14th mmix versions to handle new-found bug + with PUSHJ/PUSHGO and the register stack. + * config/mmix/mmix.h (struct machine_function): Rename member + has_call_value_without_parameters to has_call_without_parameters. + All referers changed. + (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT + TARGET_MASK_BRANCH_PREDICT): New macros. + (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround, + -mno-reg-stack-fill-bug-workaround. + * config/mmix/mmix.md ("call"): Set struct machine member + has_call_without_parameters. + +Sat Jan 5 02:20:22 CET 2002 Jan Hubicka + + * cfgcleanup.c (thread_jump): Fix handling of reversed branches. + +Sat Jan 5 01:35:29 CET 2002 Jan Hubicka + + * cfgcleanup.c: Include tm_p.h + (mark_effect): Fix handling of hard register; fix handling of SET + +2002-01-04 Kazu Hirata + + * config/h8300/h8300.md (anonymous patterns): Check that + operands are registers before using REGNO on them. + +2002-01-03 Roland McGrath + + * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu. + +2002-01-04 Jakub Jelinek + + * tree.h (expand_expr_stmt_value): Add maybe_last argument. + * c-common.h (genrtl_expr_stmt_value): Likewise. + * stmt.c (expand_expr_stmt): Pass 1 as maybe_last. + (expand_expr_stmt_value): Add maybe_last argument. + Don't warn about statement with no effect if it is the last statement + in expression statement. + * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last. + (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to + expand_expr_stmt_value. + (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to + genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope. + * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1 + as maybe_last to expand_expr_stmt_value. + +Fri Jan 4 11:45:05 2002 Jeffrey A Law (law@redhat.com) + + * c-common.c (c_expand_start_cond): Expect the IF_STMT node to + be passed in, do not build it. + (c_begin_if_stmt): New function. + (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise. + * c-common.h (c_expand_start_cond): Update prototype. + (c_begin_if_stmt): Prototype new function. + (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise. + * c-parse.in (if_prefix): Use c_begin_if_stmt, + c_begin_while_stmt and c_finish_while_stmt_cond. + +2002-01-04 William Cohen + + * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag. + * config/pa/pa-linux.h (ASM_FILE_START): Likewise. + * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise. + * config/pa/som.h (ASM_FILE_START): Likewise. + +2002-01-04 Daniel Berlin + + * lcm.c: Include df.h. + Add available_transfer_function prototype. + (compute_available): Rework to use iterative dataflow framework. + (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict + with bb_info in df.h + (available_transfer_function): New function. + + * Makefile.in (lcm.o): add df.h to dependencies. + +2002-01-04 Richard Henderson + + * config/alpha/alpha.c (some_operand): Accept HIGH. + (input_operand): Likewise; accept simple references to globals. + (alpha_const_ok_for_letter_p): New, outlined from alpha.h. + (alpha_const_double_ok_for_letter_p): Likewise. + (alpha_extra_constraint): Likewise. + (alpha_preferred_reload_class): Likewise. Do not force + symbolic constants to memory. + (alpha_legitimate_address_p): Accept simple references + to small_symbolic_operand. + (alpha_legitimize_address): New arg scratch. Be prepared to be + called when no_new_pseudos. Emit simple symbolic references. + Split integers into low, high, and rest. + (alpha_expand_mov): Use alpha_legitimize_address. + (some_small_symbolic_mem_operand): New. + (split_small_symbolic_mem_operand): New. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line. + (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. + (EXTRA_CONSTRAINT): Likewise. + (PREFERRED_RELOAD_CLASS): Likewise. + (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change. + (PREDICATE_CODES): Update. + * config/alpha/alpha.md: New post-reload splitters to convert + simplfied symbolic operands to the form that references $29. + (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g. + (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand. + +2002-01-03 Richard Henderson + + * local-alloc.c (function_invariant_p): Update commentary. + +2002-01-04 H.J. Lu + + * toplev.c (rest_of_compilation): Fix a typo when calling + cleanup_cfg. + +2002-01-03 Kazu Hirata + + * c-common.c: Fix formatting. + * diagnostic.c: Likewise. + * doloop.c: Likewise. + * dwarf2out.c: Likewise. + +2002-01-03 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead + of 'neg.w' when xoring with 0x0000ffff or 0xffff0000. + +2002-01-03 Neil Booth + + * cpperror.c: Update comments and copyright. + * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c, + cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly. + +2002-01-03 John David Anglin + + * collect2.c (main): Use strcmp when testing for "-shared". + +2002-01-03 Neil Booth + + * cppmacro.c: Don't include intl.h. Update comments. + (new_number_token): Allocate enough buffer for 64-bit unsigned + integers; update prototype. + * cppmain.c: Update comments. + +2002-01-03 William Cohen + + * function.h (struct function): Add profile. + (current_function_profile): New. + doc/extend.texi: Update documentation. + * final.c (final_start_function): Use current_function_profile + instead of profile_flag. + (profile_after_prologue): Likewise. + * function.c (expand_function_start): Likewise. + (expand_function_start): Likewise. + * config/alpha/alpha.c (direct_call_operand): + (alpha_does_function_need_gp): Likewise. + (alpha_expand_prologue): Likewise. + * config/arm/arm.c (arm_expand_prologue): Likewise. + thumb_expand_prologue: Likewise. + * config/d30v/d30v.c (d30v_stack_info): Likewise. + * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise. + (fr30_expand_prologue): Likewise. + * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise. + * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise. + * config/i386/i386.h (FINALIZE_PIC): Likewise. + * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise. + * config/i960/i960.c (i960_output_function_prologue): Likewise. + * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. + * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise. + (m32r_expand_prologue): Likewise. + * config/m88k/m88k.c (m88k_layout_frame): Likewise. + (m88k_expand_prologue): Likewise. + * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise. + * config/mips/mips.c (compute_frame_size): Likewise. + (mips_expand_prologue): Likewise. + (mips_can_use_return_insn): Likewise. + * config/pa/elf.h (ASM_FILE_START): Likewise. + * config/pa/pa-linux.h (ASM_FILE_START): Likewise. + * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise. + * config/pa/som.h (ASM_FILE_START): Likewise. + * config/romp/romp.c (romp_using_r14): Likewise. + * config/rs6000/rs6000.c (first_reg_to_save): Likewise. + (rs6000_stack_info): Likewise. + * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise. + * config/rs6000/xcoff.h (ASM_FILE_START): Likewise. + * config/v850/v850.c (compute_register_save_size): Likewise. + +2002-01-03 Jakub Jelinek + + * simplify-rtx.c (simplify_binary_operation) [DIV]: If + gen_lowpart_common fails, use gen_lowpart_SUBREG. + +2002-01-03 Turly O'Connor + + * darwin.c (machopic_output_possible_stub_label): Don't generate + stub routines for pseudo-stubs which we've just defined. + +2002-01-03 Kazu Hirata + + * builtins.c: Fix formatting. + * c-typeck.c: Likewise. + * combine.c: Likewise. + * expr.c: Likewise. + * loop.c: Likewise. + +2002-01-03 Andreas Schwab + + * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool + and return true if _cpp_push_next_buffer pushed a new include + file. + * cpplib.c (_cpp_pop_buffer): Only call obstack_free if + _cpp_pop_file_buffer did not push a new file. + * cpphash.h (_cpp_pop_file_buffer): Update declaration. + +2002-01-02 Eric Christopher + + * final.c (final_scan_insn): Change 0 -> NULL_RTX in + FIND_REG_INC_NOTE call. Update copyright. + * loop.c (canonicalize_condition): Ditto. + * reorg.c (delete_scheduled_jump): Ditto. + +2002-01-03 Kazu Hirata + + * gcse.c: Fix formatting. + +2002-01-03 Graham Stott + + * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h + forward defs for struct tags rtx_def, union_tree, rtvec_def + also output corresponding typedefs for rtx, tree, and rtvec. + + * system.h: Move forward defs for struct tags rtx_def, union_tree, + rtvec_def along with corresponding typedefs for rtx, tree, and + rtvec to config.h, hconfig.h, tconfig.h. + +2002-01-03 Graham Stott + + * tree.h: Update copyright date. + (IS_EXPR_CODE_CLASS): Add parenthesis. + (TREE_SET_CODE): Add whitespace. + (TREE_CHECK): Add parenthesis. + (TREE_CLASS_CODE): Add parenthesis and wrap long line. + (CST_OR_CONSTRUCTOR_CHECK): + (EXPR_CHECK): Add parenthis, whitespace and wrap line. + (TREE_SYMBOL_REFERENCED): Whitespace. + (INT_CST_LT): Likewise. + (INT_CST_LT_UNSIGNED): Likewise. + (tree_real_cst): Unwrap comment. + (tree_string): Likewise. + (tree_complex): Likewise. + (IDENTIFIER_POINTER): correct cast. + (SAVE_EXPR_CONTEXT): Whitespace. + (EXPR_WFL_FILENAME_NODE): Likewise. + (EXPR_WFL_FILENAME): Remove parenthesis. + (DECL_ORIGIN): Add parenthesis. + (DECL_FROM_INLINE): Use NULL_TREE. + (build_int_2): Whitespace. + (build_type_variant): Add parenthesis. + + * gcc/jcf-parse.c: Update copyright date. + (yyparse): Constify resource_filename. + +2002-01-03 Graham Stott + + * rtl.h: Update copyright date. + (RTL_CHECK1): Wrap long line. + (RTL_CHECK2): Likewise. + (RTL_CHECKC1): Wrap long line and whitespace. + (RTL_CHECKC2): Likewise. + (XWINT): Whitespace. + (XINT): Likewise. + (XSTR): Likewise. + (XEXP): Likewise. + (XVEC): Likewise. + (XMODE): Likewise. + (XBITMAP): Likewise. + (XTREE): Likewise. + (XBBDEF): Likewise. + (XTMPL): Likewise. + (X0WINT): Likewise. + (X0INT):Likewise. + (X0UINT): Likewise. + (X0STR): Likewise. + (X0EXP): Likewise. + (X0VEC): Likewise. + (X0MODE): Likewise. + (X0BITMAP): Likewise. + (X0TREE): Likewise. + (X0BBDEF): Likewise. + (X0ADVFLAGS): Likewise. + (X0CSELIB): Likewise. + (X0MEMATTR): Likewise. + (XCWINT): Likewise. + (XCINT): Likewise. + (XCUINT): Likewise. + (XCSTR): Likewise. + (XCEXP): Likewise. + (XCVEC): Likewise. + (XCMODE): Likewise. + (XCBITMAP): Likewise. + (XCTREE): Likewise. + (XCBBDEF): Likewise. + (XCADVFLAGS): Likewise. + (XCCSELIB): Likewise. + (XC2EXP): Likewise. + (INSN_UID): Likewise. + (PREV_INSN): Likewise. + (PATTERN): Likewise. + (INSN_CODE): Likewise. + (PUT_REG_NOTE_KIND): Likewise. + (CODE_LABEL_NUMBER): Likewise. + (NOTE_SOURCE_FILE): Likewise. + (NOTE_BLOCK): Likewise. + (NOTE_EH_HANDLER): Likewise. + (NOTE_RANGE_INFO): Likewise. + (NOTE_LIVE_INFO): Likewise. + (NOTE_BASIC_BLOCK): Likewise. + (NOTE_EXPECTED_VALUE): Likewise. + (NOTE_LINE_NUMBER): Likewise. + (LABEL_NAME): Likewise. + (LABEL_NUSES): Likewise. + (LABEL_ALTERNATE_NAME): Likewise. + (ADDRESSOF_DECL): Likewise. + (JUMP_LABEL): Likewise. + (LABEL_NEXTREF): Likewise. + (REGNO): Likewise. + (ORIGINAL_REGNO: Likewise. + (HARD_REGISTER_NUM_P): Add parenthesis. + (SUBREG_REG): Whitespace. + (SUBREG_BYTE): Likewise. + (ASM_OPERANDS_TEMPLATE): Remove parenthesis. + (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise. + (ASM_OPERANDS_OUTPUT_IDX): Likewise. + (ASM_OPERANDS_INPUT_VEC): Likewise. + (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise. + (ASM_OPERANDS_INPUT): Likewise. + (ASM_OPERANDS_INPUT_LENGTH): Likewise. + (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise. + (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise. + (ASM_OPERANDS_INPUT_MODE): Likewise. + (ASM_OPERANDS_SOURCE_FILE): Likewise. + (ASM_OPERANDS_SOURCE_LINE): Likewise. + (MEM_SET_IN_STRUCT_P): Minor reformat. + (TRAP_CONDITION): Whitespace. + (TRAP_CODE): Likewise. + (COND_EXEC_TEST): Likewise. + (COND_EXEC_CODE): Likewise. + (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis. + (PHI_NODE_P): Add parenthesis. + (plus_constant): Whitespace and add parenthesis. + +2002-01-03 Kazu Hirata + + * config/avr/avr.c: Fix comment typos. + * config/c4x/c4x.md: Likewise. + * config/dsp16xx/dsp16xx.h: Likewise. + * config/dsp16xx/dsp16xx.md: Likewise. + * config/i386/i386.md: Likewise. + * config/ia64/ia64.c: Likewise. + * config/m32r/m32r.h: Likewise. + * config/m68hc11/m68hc11.md: Likewise. + * config/mmix/mmix.c: Likewise. + * config/mn10200/mn10200.c: Likewise. + * config/romp/romp.c: Likewise. + * config/sh/sh.c: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/stormy16/stormy16.md: Likewise. + +2002-01-03 Graham Stott + + * loop.h: Update copyright date. + (LOOP_MOVABLES): Fix typo. + (LOOP_REGS): Likewise. + (LOOP_IVS): Likewise. + +2002-01-03 Graham Stott + + * cppinit.c: Update copyright date. + Don't include output.h + * Makefile.in: Update copyright date. + Update dependency. + +2002-01-02 Craig Rodrigues + + PR c/5226 + * invoke.texi (-mthreads): Remove from documented RS/6000 options. + (-pthread) Add to RS/6000 options. + +2002-01-02 Kazu Hirata + + * except.c: Fix comment typos. + * loop.c: Likewise. + * varasm.c: Likewise. + * doc/tm.texi: Fix a typo. + +2002-01-02 Jakub Jelinek + + * c-typeck.c (output_init_element): Allow initializing static storage + duration objects with compound literals. + +2002-01-02 Richard Henderson + + * objc/objc-act.c (hack_method_prototype): Clear current_function_decl + after abusing it. + +2002-01-02 Kaveh R. Ghazi + + * gcc.c (default_compilers): Const-ify. + * mips-tdump.c (stab_names): Likewise. + * mips-tfile.c (map_coff_types, map_coff_storage, + map_coff_sym_type, map_coff_derived_type, stabs_symbol, + pseudo_ops_t, pseudo_ops): Likewise. + * protoize.c (default_include): Likewise + + * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness. + (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify. + Add array size in declaration. + (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi, + emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm, + esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe, + etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe, + eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc, + efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm, + c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens, + emtens, make_nan): Const-ify. + (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan, + DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify. + +2002-01-02 Joseph S. Myers + + * config.gcc (ia64-*-*): Set extra_headers. + (alpha*-dec-osf*): Likewise. Don't use alpha/t-osf. + * config/alpha/t-osf: Remove. + * config/ia64/t-ia64 (EXTRA_HEADERS): Remove. + +2002-01-02 David Edelsohn + + * config/rs6000/t-aix43: Revert previous change. + +2002-01-02 Jason Merrill + + * c-decl.c (c_expand_body): Call outlining_inline_function when + emitting an inline function out of line. + +2002-01-02 Richard Henderson + + * dwarf2out.c (limbo_die_node): Add created_for member. + (new_die): New argument created_for. Update all callers. + (mark_limbo_die_list): New. + (dwarf2out_init): Register limbo_die_list as a root. + (dwarf2out_finish): Force insert limbo dies into their function + context. + +2002-01-02 Nathan Sidwell + + PR c++/5089 + * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts. + +2002-01-02 Kazu Hirata + + * config/h8300/fixunssfsi.c: Update copyright. + Fix comment typos. + Fix formatting. + * config/h8300/h8300.c: Update copyright. + Eliminate warnings. + +2002-01-02 Kazu Hirata + + * config/romp/romp.c: Fix comment formatting. + * config/romp/romp.h: Likewise. + * config/romp/romp.md: Likewise. + * config/s390/s390.c: Likewise. + * config/stormy16/stormy16.c: Likewise. + * config/stormy16/stormy16.h: Likewise. + +2002-01-02 Alexandre Oliva + + * c-common.h (genrtl_expr_stmt_value): Declare. + * c-semantics.c (genrtl_goto_stmt): Redirect to... + (genrtl_goto_stmt_value): ... this new function. Pass new + argument down to expand_expr_stmt_value, taking + TREE_ADDRESSABLE into account. + * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a + STMT_EXPR as addressable, i.e., one whose result we want. + * expr.c (expand_expr): Don't save expression statement value + of labeled_blocks or loop_exprs. + * stmt.c (expand_expr_stmt): Redirect to... + (expand_expr_stmt_value): ... this new function. Use new + argument to tell whether to save expression value. + (expand_end_stmt_expr): Reset last_expr_type and + last_expr_value if we don't have either. + * tree-inline.c (declare_return_variable): Mark its use + statement as addressable. + * tree.h: Document new use of TREE_ADDRESSABLE. + (expand_expr_stmt_value): Declare. + +2002-01-01 Tom Rix + + * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by + rs6000_emit_allocate_stack. + +2002-01-01 Joseph S. Myers + + * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of + ${srcdir}/ginclude/ to every entry in extra_headers. + * configure: Regenerate. + * ginclude/math-3300.h: Rename to config/m68k/math-3300.h. + * ginclude/math-68881.h: Rename to config/m68k/math-68881.h. + * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h. + * ginclude/proto.h: Rename to config/convex/proto.h. + +Tue Jan 1 17:12:56 2002 Richard Kenner + + * attribs.c (handle_vector_size_attribute): Use host_integerp + and tree_int_cst; remove warnings. + * caller-save.c (insert_restore): Add cast to get rid of warning. + (insert_save): Likewise. + * emit-rtl.c (adjust_address_1, offset_address): Likewise. + * regmove.c (find_matches): Add temporary var to kill a warning. + +2002-01-01 Douglas B Rupp + + * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX, + LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define. + * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o + (vms-dwarf2eh.o): Add Makefile rule. + * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o. + * config/alpha/vms-dwarf2eh.asm: New file. + + * gcc.c (delete_if_ordinary): Delete all versions. + +2002-01-01 Hans-Peter Nilsson + + * config/mmix/mmix.md: Update FIXME to not mention + define_constants. + (MMIX_rJ_REGNUM): New define_constants constant. + ("movqi", "movsi", "movdi", "*movdicc_real_foldable", + "*movdicc_real"): Adjust contraints formatting. + ("*bCC_foldable"): Add %+ for P in output format and delete FIXME + for branch prediction. + ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in + output template. + ("*call_real", "*call_value_real", "nonlocal_goto_receiver", + "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of + number. Delete related FIXMEs. + * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change + from number to MMIX_rJ_REGNUM. + (TARGET_MASK_BRANCH_PREDICT): New. + (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT. + (TARGET_SWITCHES): Update comment. Correct -mno-toplevel-symbols + value. Add -mbranch-predict and -mno-branch-predict. + (TARGET_VERSION): Drop date. + (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number. + * config/mmix/mmix.c (mmix_encode_section_info): Correct condition + for finding out global symbols. + (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. diff --git a/gcc/ChangeLog-2003 b/gcc/ChangeLog-2003 new file mode 100644 index 00000000000..8d2e12da9e9 --- /dev/null +++ b/gcc/ChangeLog-2003 @@ -0,0 +1,37862 @@ +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 + * libgcc2.c (__subvsi3): Remove simplification that would not work + when subtracting -0x80000000. + (__subvdi3): Remove simplification that would return a wrong result. + (__mulvsi3): Fix overflow check. + (__absvdi2): Fix simplification that would return a wrong result. + (__mulvdi3): Fix overflow check. + +2003-06-30 Jeff Law + + * stmt.c (any_pending_cleanups): Lose argument THIS_CONTOUR, it + was always passed in the value '1'. Simplify body appropriately. + * tree.h (any_pending_cleanups): Corresponding changes. + * calls.c: (expand_call): Corresponding changes. + +2003-06-30 Kazu Hirata + + * combine.c (distribute_notes): Don't bother REG_WAS_0. + * cse.c (cse_insn): Likewise. + * final.c (final_scan_insn): Likewise. + * jump.c (duplicate_loop_exit_test): Likewise. + * rtl.c (reg_note_name): Remove REG_WAS_0. + * rtl.h (REG_WAS_0): Remove. + * unroll.c (final_reg_note_copy): Don't bother REG_WAS_0. + * config/avr/avr.c (output_movqi): Don't use reg_was_0. + (output_movhi): Likewise. + (output_movsisf): Likewise. + (reg_was_0): Remove. + * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't use + REG_WAS_0. + (m68hc11_gen_movqi): Likewise. + * config/vax/vax-protos.h: Remove the prototype for + reg_was_0_p. + * config/vax/vax.c (follows_p): Remove. + (reg_was_0_p): Likewise. + * config/vax/vax.md (movsi): Don't use reg_was_0_p. + (movhi): Likewise. + (movqi): Likewise. + * doc/rtl.texi (REG_WAS_0): Remove. + +2003-06-30 Mark Mitchell + + * config/rs6000/spe.h (__ev_set_spefscr_frmc): Set the flag. + +2003-06-30 Bob Wilson + + * config/xtensa/lib1funcs.asm: Use "xtensa-config.h" from + top-level include directory. + * config/xtensa/lib2funcs.S: Likewise. + * config/xtensa/xtensa.h: Likewise. + * config/xtensa/xtensa-config.h: Remove. + * doc/install.texi: Update location of "xtensa-config.h" header. + +2003-06-30 Ulrich Weigand + + * config/s390/s390.c (s390_extra_constraint): New function. + * config/s390/s390-protos.h (s390_extra_constraint): Declare it. + * config/s390/s390.h (EXTRA_CONSTRAINT): Use it. + * config/s390/s390.c (q_constraint): Remove. + * config/s390/s390-protos.h (q_constraint): Likewise. + * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'R', 'S', 'T'. + (EXTRA_ADDRESS_CONSTRAINT): Define. + + * config/s390/s390.c (larl_operand): Refuse out-of-range operands. + (DISP_IN_RANGE, s390_short_displacement): New. + (legitimate_reload_operand_p): Support long displacements. + (s390_decompose_address): Likewise. + (legitimize_pic_address): Likewise. + (legitimize_address): Likewise. + (s390_fixup_clobbered_return_reg): Likewise. + (s390_emit_prologue, s390_emit_epilogue): Likewise. + (s390_output_mi_thunk): Likewise. + + * config/s390/s390.md (attr "op_type"): Add "RXY", "RSY", "SIY". + (attr "atype", attr "length"): Add defaults for new op_types. + (all insns): Change op_type attribute where appropriate. + + ("*movdi_lay", "*movsi_lay", "*extendqidi2", "*extendqisi2"): New insns. + ("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", *tmqi_mem", + "*tstsi", "*tstsi_cconly", "*tsthiCCT", "*tsthiCCT_cconly", + "*tsthi", "*tsthi_cconly", "*tstqiCCT", "*tstqiCCT_cconly", + "*tstqi", "*tstqi_cconly", "*cmpsi_ccs_sign", "*cmpsi_ccs", + "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu", "*cli", + "movti", "*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64", + "movqi", "*movstrictqi", "*movstricthi", "movstrictsi", + "*movdf_64", "*movdf_31", "*movsf", + "*load_multiple_si", "*store_multiple_di", + "*sethighqisi", "*sethighhisi", "*sethighqidi_31", "*extendhisi2", + "*la_64", "*la_31", "*la_31_and", "force_la_31", + "*addsi3_carry1_cc", *addsi3_carry1_cconly", + "*addsi3_carry2_cc", *addsi3_carry2_cconly", + "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", + "*addsi3_sign", "*addsi3_sub", "addsi3", + "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc", + "*subsi3_cconly", "*subsi3_sign", "*subsi3_sub", "subsi3", + "mulsi3" + "*andsi3_cc", "*andsi3_cconly", "andsi3", + "*andqi3_ss", "*andqi3_ss_inv", + "*iorsi3_cc", "*iorsi3_cconly", "iorsi3", + "*iorqi3_ss", "*iorqi3_ss_inv", + "*xorsi3_cc", "*xorsi3_cconly", "xorsi3", + "*xorqi3_ss", "*xorqi3_ss_inv", + "*tls_load_31"): Add alternatives for long-displacement instructions. + + ("*cmpdf_ccs", "*cmpdf_ccs_ibm", "*cmpsf_ccs", "*cmpsf_ccs_ibm", + "*load_multiple_di", "*store_multiple_di", + "*sethighqidi_64", "*zero_extendhisi2_31", + "truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm", + "adddf3", "*adddf3", "*adddf3_ibm", + "addsf3", "*addsf3", "*addsf3_ibm", + "subdf3", "*subdf3", "*subdf3_ibm", + "subsf3", "*subsf3", "*subsf3_ibm", + "mulsi_6432", "divmoddisi3", + "muldf3", "*muldf3", "*muldf3_ibm", + "mulsf3", "*mulsf3", "*mulsf3_ibm", + "divdf3", "*divdf3", "*divdf3_ibm", + "divsf3", "div*sf3", "*divsf3_ibm", + "sqrtdf2", "sqrtsf2", + "*cjump_long", "*icjump_long", "indirect_jump", "casesi_jump", + "*doloop_si_long", "*doloop_di_long", "bas_64", "bas_31", + "bas_r_64", "bas_r_31", "bas_tls_31", "bas_tls_64"): Adapt memory + and address constraints for instructions that do not accept long + displacements. + +2003-06-30 Hartmut Penner + Ulrich Weigand + + * config/s390/2084.md: New file. + * config/s390/s390.md: Include it. + * config/s390/s390.c (s390_adjust_priority): New function. + (TARGET_SCHED_ADJUST_PRIORITY): Define. + (s390_first_cycle_multipass_dfa_lookahead): New function. + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define. + (s390_sched_reorder2): New function. + (TARGET_SCHED_REORDER2): Define. + (s390_adjust_cost): Support PROCESSOR_2084_Z990 cpu type. + (s390_issue_rate): Likewise. + +Mon Jun 30 23:47:33 CEST 2003 Jan Hubicka + + * Makefile.in (GTFILES): Add cgraph.h. + * cgraph.c (known_decls): Remove. + (cgraph_hash, cgraph_nodes, cgraph_nodes_queue, + cgraph_varpool_hash, cgraph_varpool_nodes_queue): GTYize. + (cgraph_node): Do not allocate known_decls; use polutate hashtable. + (cgraph_varpool_node): Likewise; add next pointer. + (cgraph_varpool_nodes): New static variable. + * cgraph.h (cgraph_local_info, cgraph_global_info, cgraph_rtl_info, + cgraph_node, cgraph_edge, cgraph_varpool_node, cgraph_nodes, cgraph_n_nodes, + cgraph_varpool_n_nodes, cgraph_varpool_nodes_queue): GTYize. + * gengtype.c (open_base_files): Include cgraph.h + +2003-06-30 Volker Reichelt + + * Changelog: Remove ">>>>>>>" from previous change. + +2003-06-30 Volker Reichelt + + * config/cris/cris.c: Fix spelling for "testcase". + * config/cris/cris.h: Likewise. + * config/cris/cris.md: Likewise. + * config/mmix/crti.asm: Likewise. + * config/mmix/mmix.h: Likewise. + * config/mmix/mmix.md: Likewise. + +2003-06-30 Kazu Hirata + + * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Make it always + 1. + +2003-06-30 Ulrich Weigand + + * config.gcc [s390*-*-*]: Support --with-arch, --with-tune, and + --with-mode configure options. + * config/s390/s390.h (OPTION_DEFAULT_SPECS): Define. + (DRIVER_SELF_SPECS): Define. + * config/s390/linux.h (ASM_SPEC): Pass architecture mode and cpu + architecture to assembler. + (LINK_SPEC): Merge 31-bit and 64-bit variants. + (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC, EXTRA_SPECS): Remove. + * config/s390/s390.c (override_options): New default rules for + architecture mode and cpu architecture selection. + * doc/invoke.texi (-mesa, -mzarch, -march, -mtune): Document + new default rules. + + * config/s390/s390.h (enum processor_type): Add PROCESSOR_2084_Z990. + * config/s390/s390.md (attr "cpu"): Add "z990" processor type. + * config/s390/s390.c (override_options): Add "z990" to + processor_alias_table. + * doc/invoke.texi (-march): Document "z990" processor type. + + * config/s390/s390.c (s390_tune_flags, s390_arch_flags): New variables. + * config/s390/s390.h (s390_tune_flags, s390_arch_flags): Declare. + (enum processor_flags, TARGET_CPU_IEEE_FLOAT, TARGET_CPU_ZARCH, + TARGET_CPU_LONG_DISPLACEMENT, TARGET_LONG_DISPLACEMENT): New. + * config/s390/s390.c (override_options): Replace enum pta_flags by + enum processor_flags. Fill in s390_tune_flags and s390_arch_flags. + + * config/s390/s390.c (s390_cpu): Rename to ... + (s390_tune): ... this. + * config/s390/s390.h (s390_cpu, s390_tune): Likewise. + * config/s390/s390.c (s390_issue_rate, override_options): Likewise. + * config/s390/s390.md (attr "cpu"): Likewise. + +2003-06-30 Neil Booth + + * c-common.c (enum c_language_kind, flag_objc): Remove. + (fix_string_type, check_case_value, c_common_nodes_and_builtins, + c_add_case_label, finish_label_addr_expr, boolean_increment): + Use c_dialect_ macros. + * c-common.h (enum c_language_kind): Extend. + (c_dialect_cxx, c_dialect_objc): New. + (flag_objc): Remove. + (c_common_init_options): Update prototype. + * c-cppbuiltin.c (define__GNUC__, c_cpp_builtins): Use c_dialect_ + macros. + * c-decl.c (finsih_decl, grokfield, finish_struct): Use c_dialect_ + macros. + * c-format.c (C_STD_VER, C_STD_NAME): Similarly. + * c-lang.c (c_init_options): Remove. + (c_language): Define. + (LANG_HOOKS_INIT_OPTIONS): Use common hook. + * c-lex.c (lex_charconst): Use c_dialect_ macros. + * c-opts.c (lang_flags): Make function-local. + (c_common_init_options): Use c_dialect_ macros. Handle + C++ diagnostic requirements. + (c_common_handle_option, c_common_post_options): Use flag_cxx. + * c-parse.in (init_reswords): Use c_dialect_objc (). + * c-pch.c (get_ident): Use c_language. + * c-pretty-print.c (pp_c_bool_literal): Use c_dialect_ macros. + * c-typeck.c (comptypes, build_c_cast): Similarly. + * objc/objc-lang.c (c_language): Define. + (LANG_HOOKS_INIT_OPTIONS): Use common hook. + (objc_init_options): Remove. + +2003-06-30 Kazu Hirata + + * config/alpha/alpha.h (FUNCTION_ARG_PADDING): Remove. + * config/alpha/unicosmk.h: Don't #undef FUNCTION_ARG_PADDING. + +2003-06-30 Wolfgang Bangerth + + * doc/sourcebuild.texi: Don't reference gnats.html any more. + +2003-06-30 Kazu Hirata + + * config/h8300/h8300.c (compute_mov_length): Fix length of + mov:SF on H8/300. + +2003-06-30 Nick Clifton + + * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Make defintion + constant. + +Mon Jun 30 15:36:29 CEST 2003 Jan Hubicka + + (fyl2x_sfxf3, fyl2x_dfxf3, fscale_sfxf3, fscale_dfxf3): Fix condition. + +2003-06-30 Hartmut Penner + + * config/rs6000/rs6000.c (rs6000_split_altivec_in_gprs): New function. + (altivec_in_gprs_p): New function. + + * config/rs6000/rs6000-protos (rs6000_split_altivec_in_gprs): New + prototype. + (altivec_in_gprs_p): New prototype. + + * config/rs6000/altivec.md (*movv4si_internal): Change + multi-assembler alternative to '#'. Add postreload splitter to + handle this cases. + (*movv4hi_internal): Likewise. + (*movv4qi_internal): Likewise. + (*movv4sf_internal): Likewise. + +2003-06-30 Jason Merrill + + * defaults.h (PUSH_ARGS_REVERSED): Define default here. + * calls.c: Not here. + +2003-06-30 Ben Elliston + + * config/arm/arm.c (arm_rtx_costs): Remove #if 0 block. + (bad_signed_byte_operand): Likewise. + (arm_output_epilogue): Likewise. + (arm_final_prescan_insn): Likewise. + +2003-06-30 Rainer Orth + + * cfgrtl.c (mark_killed_regs): Cast HARD_REGNO_NREGS to int. + +2003-06-30 Rainer Orth + + * c-pch.c (c_common_write_pch): Flush asm_out_file to allow for + subsequent writes. + +Mon Jun 30 10:03:02 CEST 2003 Jan Hubicka + + * cfgrtl.c (verify_flow_info): Accept degenerated condjumps + in cfglayout mode. + +Mon Jun 30 09:52:39 CEST 2003 Jan Hubicka + + * i386.c (standard_80387_constant_p): Accept TFmode constants too. + (init_ext_80387_constants): Likewise. + (standard_80387_constant_rtx): Likewise. + * i386.md (atanxf): Disable for TARGET_128BIT_LONG_LONG + (atantf): Disable for !TARGET_128BIT_LONG_LONG + (fyl2x_sfxf3, fyl2x_dfxf3): Accept TFmode operands. + (fyl2x_xfxf3, fyl2x_tfxf3): Enable/disable as needed. + (fscale_sfxf3, fscale_dfxf3): Accept TFmode operands. + (fscale_xfxf3, fscale_tfxf3): Enable/disable as needed. + (frndinttf2): New. + (f2xm1tf2): New. + (exp?f2): Use expsf2_tf when needed. + (exp?f2_tf): New. + (exptf): New. + +2003-06-29 Uwe Stieber + + * config.gcc (sh*-*-kaos*): Put tm_file setting in separate case + statement from tmake_file set. + +2003-06-29 James E Wilson + + * reload.c (find_reloads): Change push_reloads to push_reload in + comment. + * reload1.c (eliminate_regs): Likewise. + (dump_needs): Delete prototype for deleted function. + +2003-06-29 Kaveh R. Ghazi + + * builtin-attrs.def (gcc_diag, gcc_cdiag, gcc_cxxdiag): New + format attributes. + * c-format.c (enum format_type): Add gcc_diag_format_type, + gcc_cdiag_format_type, and gcc_cxxdiag_format_type. + (gcc_diag_length_specs, gcc_cdiag_length_specs, + gcc_cxxdiag_length_specs, gcc_diag_flag_pairs, + gcc_cdiag_flag_pairs, gcc_cxxdiag_flag_pairs, gcc_diag_flag_specs, + gcc_cdiag_flag_specs, gcc_cxxdiag_flag_specs, gcc_diag_char_table, + gcc_cdiag_char_table, gcc_cxxdiag_char_table): New. + (format_types_orig): Add new data. + (find_char_info_specifier_index, init_dynamic_diag_info): New + functions. + (handle_format_attribute): Update to handle new format attributes. + +2003-06-29 Dara Hazeghi + + * doc/install.texi: Remove install documentation for obsoleted targets + i?86-*-sco, i?86-*-sco3.2v4, powerpcle-*-pe, powerpcle-*-winnt, + arm-*-aof. + Update information about IA64 toolchain, AIX make requirements, + and binutils for m68k-*-hpux and *-*-linuxaout targets. + +Mon Jun 30 00:50:43 CEST 2003 Jan Hubicka + + * regmove.c (regmove_optimize): Don't try to make src and dst match + when they are in different modes. + +Sun Jun 29 23:06:32 CEST 2003 Jan Hubicka + + * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid + busy work when builtin is not supported by the backend. + +2003-06-29 Zdenek Dvorak + + * loop.c (count_one_set): Fix detection of registers set in more + than one basic block. + +2003-06-29 Andreas Jaeger + + * target-def.h: Remove usage of OBJECT_FORMAT_ROSE. + * system.h: Poison OBJ_FORMAT_ROSE. + * doc/tm.texi (Macros for Initialization): Remove documentatin of + OBJECT_FORMAT_ROSE. + * config/rs6000/lynx.h: Remove undef of OBJECT_FORMAT_ROSE. + * collect2.c: Remove usage of OBJECT_FORMAT_ROSE. + +2003-06-29 John David Anglin + + * pa.c (update_total_code_bytes): New function. + (last_address): Number of bytes output for a function and its + associated thunks. + (compute_frame_size): Use BITS_PER_UNIT. + (pa_output_function_epilogue): Compute last_address. Use + update_total_code_bytes. + (output_lbranch): Handle long branch on portable runtime. + (attr_length_millicode_call, attr_length_call, + attr_length_indirect_call): Only use total_code_bytes for calls in + the text section. + (output_call): Only use an indirect call sequence when the target is + not local. + (pa_asm_output_mi_thunk): Handle updating of total_code_bytes. Improve + test to determine when an IA-relative branch can be used. Add various + long branch sequences. Avoid using an indirect branch on all ports + except SOM. + +2003-06-29 Ulrich Weigand + + * expr.c (clear_by_pieces): Fix prototype. + +2003-06-29 Andreas Jaeger + + * cse.c: Convert prototypes to ISO C90. + * cselib.c: Likewise. + * cselib.h: Likewise. + * dbxout.c: Likewise. + * debug.c: Likewise. + * df.c: Likewise. + * df.h: Likewise. + * dojump.c: Likewise. + * doloop.c: Likewise. + * dominance.c: Likewise. + * dwarf2asm.c: Likewise. + * dwarf2out.c: Likewise. + * dwarf2out.h: Likewise. + * dwarfout.c: Likewise. + * except.c: Likewise. + * except.h: Likewise. + * emit-rtl.c: Likewise. + * et-forest.c: Likewise. + * et-forest.h: Likewise. + * except.c: Likewise. + * explow.c: Likewise. + * expmed.c: Likewise. + * expr.c: Likewise. + * expr.h: Likewise. + +2003-06-29 Kazu Hirata + + * alloc-pool.c: Fix comment formatting. + * bitmap.c: Likewise. + * bitmap.h: Likewise. + * bt-load.c: Likewise. + * builtins.c: Likewise. + * caller-save.c: Likewise. + * cfganal.c: Likewise. + * cfgrtl.c: Likewise. + * collect2.c: Likewise. + * cse.c: Likewise. + * df.c: Likewise. + * diagnostic.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * expmed.c: Likewise. + * final.c: Likewise. + * flags.h: Likewise. + * fold-const.c: Likewise. + * gcc.c: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * genattrtab.c: Likewise. + * genautomata.c: Likewise. + * libgcov.c: Likewise. + * mips-tfile.c: Likewise. + * optabs.c: Likewise. + * prefix.c: Likewise. + * rtlanal.c: Likewise. + * stmt.c: Likewise. + * stor-layout.c: Likewise. + * toplev.c: Likewise. + * varasm.c: Likewise. + * vmsdbgout.c: Likewise. + +2003-06-29 Kazu Hirata + + * expr.c (emit_single_push_insn): If padding is needed + downward, adjust the stack pointer first, and then store the + data into the stack location using an offset. + +2003-06-29 Andreas Jaeger + + * collect2.h: Convert prototypes to ISO C90. + * collect2.c: Likewise. + * conflict.c: Likewise. + * coverage.c: Likewise. + * convert.h: Likewise. + * convert.c: Likewise. + +2003-06-29 Nathan Sidwell + + * c-decl.c (c_init_decl_processing): Use a location_t. Set input + filename to . + * tree.c (make_node): Just copy the current location. + +2003-06-29 Eric Botcazou + + PR optimization/11210 + * fold-const (decode_field_reference): Revert 2003-06-26 patch. + +2003-06-29 Neil Booth + + * toplev.c (flag_dummy): Remove. + (f_options): Restore flag pointers. + +2003-06-29 David Edelsohn + + * config/rs6000/rs6000.c (processor_target_table): Add 970. + * config.gcc: Add 970. + +2003-06-29 Kazu Hirata + + * dwarf2out.c (add_AT_string): Replace ggc_alloc_string (X, + -1) with ggc_strdup. + * stmt.c (expand_asm_operands): Likewise. + * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise. + +2003-06-28 Kazu Hirata + + * config/ip2k/ip2k.c (ip2k_reorg): Use INSN_P instead of its + definition. + +2003-06-29 Franz Sirl + + * opts.c: Include insn-attr.h. + * Makefile.in (opts.o): Depend on INSN_ATTR_H. + +2003-06-27 J"orn Rennecke + + * flow.c (propagate_one_insn): Use proper test for a register + being part of the return value. + +2003-06-28 Kazu Hirata + + * config/avr/avr.c: Fix a comment typo. + +2003-06-28 Kazu Hirata + + * config/avr/avr-protos.h: Replace avr_simplify_comparision_p + with avr_simplify_comparison_p. + * config/avr/avr.c: Likewise. + +2003-06-28 Kazu Hirata + + * builtins.c: Follow spelling conventions. + * cgraph.c: Likewise. + * cpplex.c: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/iwmmxt.md: Likewise. + * config/c4x/c4x-modes.def: Likewise. + * config/c4x/c4x.c: Likewise. + * config/c4x/c4x.h: Likewise. + * config/c4x/c4x.md: Likewise. + * config/i386/i386-interix.h: Likewise. + * config/mips/mips.h: Likewise. + +2003-06-28 Neil Booth + + * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Predicate + __mc68020__ on TARGET_68020. + +2003-06-28 Kazu Hirata + + * config/h8300/h8300.c: Fix a comment typo. + +2003-06-28 Nathan Sidwell + + * c-parse.in (yylexstring): Use a location_t. + + * diagnostic.h (diagnostic_set_info): Replace file and lineno + parameters with a location_t. + * diagnostic.c (diagnostic_set_info): Replace file and lineno + parameters with a location_t. + (inform, warning, pedwarn, error, sorry, fatal_error, + internal_error, warning_with_decl, pedwarn_with_decl, + error_with_decl): Adjust. + * c-error.c (pedwarn_c99): Adjust. + * c-format.c (status_warning): Adjust. + * rtl-error.c (file_and_line_for_asm): Rename to ... + (location_for_asm): Return a location_t. + (diagnostic_for_asm): Adjust. + +2003-06-28 Neil Booth + + * cpptrad.c (skip_macro_block_comment): New. + (copy_comment): Use it if appropriate. + +2003-06-28 Kazu Hirata + + * gcse.c (compute_ld_motion_mems): Use INSN_P instead of its + definition. + (store_killed_in_insn): Likewise. + * print-rtl.c (print_rtx): Likewise. + * config/frv/frv.c (frv_final_prescan_insn): Likewise. + * config/m68hc11/m68hc11.c (dead_register_here): Likewise. + (m68hc11_reassign_regs): Likewise. + (m68hc11_reorg): Likewise. + +2003-06-28 Gabriel Dos Reis + + * diagnostic.c (output_integer_with_precision): New macro. + (output_format): Use it. Handle more format specifiers. + (output_long_decimal): Remove. + (output_unsigned_decimal): Likewise. + (output_long_unsigned_decimal): Likewise. + (output_octal): Likewise. + (output_long_octal): Likewise. + (output_hexadecimal): Likewise. + (output_long_hexadecimal): Likewise. + (output_long_long_decimal): Likewise. + +2003-06-28 Andreas Schwab + + * config/ia64/ia64.md: Follow recent emit_note API change. + +2003-06-28 Nathan Sidwell + + * c-parse.in (%union): Replace filename & lineno with location. + (save_filename, save_lineno): Remove. + (save_location): New. + (fndef, old_style_parm_decls_1, lineno_datadecl, lineno_decl, + nested_function, notype_nested_function, if_prefix, lineno_stmt, + lineno_label, label): Adjust. + +2003-06-28 Jakub Jelinek + + * builtins.c (c_strlen): Add only_value argument. + Handle COND_EXPR and COMPOUND_EXPR. + (expand_builtin_strlen): Optimize also strlen (i++ ? "foo" : "bar"). + Adjust c_strlen callers. + (expand_builtin_strcpy, expand_builtin_strncpy, + expand_builtin_strcmp, expand_builtin_strncmp, + expand_builtin_fputs, expand_builtin_sprintf, + fold_builtin): Adjust c_strlen callers. + +2003-06-28 Josef Zlomek + + * bb-reorder.c (find_traces_1_round): Do not send basic block + to next round when we are in the last round. + +2003-06-28 Neil Booth + + * Makefile.in: Update. + * opts.c: Include tm_p.h. + (handle_options): Make static. + (decode_options): Copied from toplev.c. + * opts.h (decode_options): New. + * toplev.c (parse_options_and_default_flags): Move most to opts.c, + some to... + (general_init): ...here. + (toplev_main): Use decode_options instead. + * toplev.h (save_argc, save_argv): New. + +2003-06-28 Kazu Hirata + + * explow.c (find_next_ref): Remove. + * rtl.h: Remove the prototype for find_next_ref. + +2003-06-27 Roger Sayle + + * config/alpha/alpha.md (anonymous define_split): Adjust emit_note + call to match recent API change. + +2003-06-27 Zack Weinberg + + * dbxout.c (flag_debug_only_used_symbols): Delete redundant + declaration. + + * c-format.c (check_format_string, get_constant) + * cfgrtl.c (rtl_split_edge): + Mark the definition static, matching the forward declaration. + +2003-06-27 Gunther Nikl + + * unwind-c.c (PERSONALITY_FUNCTION): Delete duplicate define. + + PR target/11014 + * config/m68k/m68k.c (m68k_output_mi_thunk): Use correct assembly + syntax for MIT / MOTOROLA. + + PR other/10240 + * configure.in: Removed $(XCFLAGS) from BUILD_CFLAGS for build != host. + * configure: Rebuilt. + +2003-06-27 Chris Demetriou + + * config/mips/mips.c (mips_build_va_list): Make padding in + va_list structure explicit to avoid -Wpadded warnings. + +2003-06-27 Ulrich Weigand + + * config/s390/s390.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define. + * config/s390/s390.c (s390_secondary_output_reload_class): New function. + * config/s390/s390-protos.h (s390_secondary_output_reload_class): + Declare it. + * config/s390/s390.md ("reload_outti", "reload_outdi", + "reload_outdf"): New expanders. + + * config/s390/s390.md ("movti" + splitters): Handle non-offsettable + memory operands as source. + ("movdi" + splitters): Likewise. + ("movdf" + splitters): Likewise. + * config/s390/s390.c (s390_split_ok_p): New function. + * config/s390/s390-protos.h (s390_split_ok_p): Declare it. + +2003-06-27 Kazu Hirata + + * combine.c (force_to_mode): Replace the equality comparison + of INTVALs with a pointer equality comparison. + (simplify_comparison): Likewise. + +2003-06-27 Kazu Hirata + + * jump.c (rtx_renumbered_equal_p): Replace an expression that + is known to be 0 with 0. + +2003-06-27 Kazu Hirata + + * gcse.c (expr_equiv_p): Replace expressions that are known to + be 0 with 0. + +2003-06-27 Kazu Hirata + + * cse.c (fold_rtx): Replace the equality comparison of INTVALs + with a pointer equality comparison. + +2003-06-27 Kazu Hirata + + * rtlanal.c (reg_mentioned_p): Return 0 earlier if REG and IN + are known to be not equivalent. + +2003-06-27 Richard Henderson + + * config/alpha/alpha.c (function_arg): Don't pass small aggregates + in floating point registers. Validate that we don't receive complex + values here. Use #elif. + (return_in_memory, function_value): New. + (alpha_va_arg): Handle complex values as two arguments. + * config/alpha/alpha.h (RETURN_IN_MEMORY): Use return_in_memory. + (FUNCTION_VALUE, LIBCALL_VALUE): Use function_value. + (SPLIT_COMPLEX_ARGS): New. + * config/alpha/alpha-protos.h: Update. + +2003-06-27 Ulrich Weigand + + * ggc-page.c (inverse_table): Change type of mult to size_t. + (compute_inverse): Compute inverse using size_t, not unsigned int. + Compute inverse also for sizes larger than half a machine page. + +Fri Jun 27 18:36:12 CEST 2003 Jan Hubicka + + * toplev.c (rest_of_decl_compilation): Only varpoolize argument + when called before cgraph_optimize. + +2003-06-27 Zack Weinberg + + * config/darwin.h, config/elfos.h, config/i960/i960-coff.h + * config/m68k/coff.h: ASM_FILE_START_FILE_DIRECTIVE should + be TARGET_ASM_FILE_START_FILE_DIRECTIVE. + +Fri Jun 27 17:41:16 CEST 2003 Jan Hubicka + + * cgraph.c (cgraph_node, cgraph_varpool_node): Avoid re-initializing + of known_decls. + +2003-06-27 Hans-Peter Nilsson + + * defaults.h (REGISTER_MOVE_COST): Define default here. + * regclass.c: Don't define default REGISTER_MOVE_COST here. + * reload.c, reload1.c: Ditto. + +2003-06-27 Richard Earnshaw + + * flags.h: Really install previous change. + +2003-06-27 Nathan Sidwell + + * rtl.h (emit_note): Remove FILE parameter. + * emit-rtl.c (emit_line_note): Adjust emit_note call. + (emit_note): Remove FILE parameter. Adjust. + * builtins.c (expand_builtin_expect): Adjust emit_note call. + * c-semantics.c (genrtl_scope_stmt): Likewise. + (expand_stmt): Likewise. + * cfglayout.c (reemit_insn_block_notes): Likewise. + (duplicate_insn_chain): Likewise. + * except.c (expand_eh_region_start, expand_eh_region_end, + sjlj_emit_function_enter): Likewise. + * explow.c (probe_stack_range): Likewise. + * expr.c (emit_block_move_via_loop): Likewise. + * function.c (init_function_start, expand_function_start, + expand_function_end, thread_prologue_and_epilogue_insns): Likewise. + * integrate.c (expand_inline_function, copy_insn_list): Likewise. + * reg-stack.c (compensate_edge): Likewise. + * reload1.c (reload): Likewise. + * rtlanal.c (hoist_insn_to_edge): Likewise. + * stmt.c (expand_fixup, expand_start_loop, expand_start_null_loop, + expand_loop_continue_here, expand_end_loop, expand_continue_loop, + expand_exit_loop_top_cond, expand_value_return, + expand_start_bindings_and_block, expand_end_bindings, + expand_decl_cleanup, expand_start_case): Likewise. + * unroll.c (copy_loop_body + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise. + * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. + * config/rs6000/rs6000.c (rs6000_emit_eh_toc_restore, + rs6000_emit_allocate_stack, rs6000_output_function_prologue, + rs6000_output_function_epilogue, rs6000_output_mi_thunk): Likewise. + * config/sh/sh.c (sh_output_mi_thunk): Likewise. + * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. + +2003-06-27 Nathan Sidwell + + * c-tree.h (grokfield): Remove unused filename and line parameters. + * c-decl.c (grokfield): Remove unused filename and line parameters. + * c-parse.in (component_decl): Adjust field grokking rules, adjust + grokfield calls. + (component_declarator): Likewise. + (component_notype_declarator): Likewise. + * objc/objc-act.c (build_module_descriptor): Adjust grokfield + calls. + (build_protocol_template, build_method_prototype_list_template, + build_method_prototype_template, build_category_template, + build_selector_template, build_class_template, + build_super_template, build_ivar_template, + build_ivar_list_template, build_method_list_template, + build_method_template, add_instance_variable): Likewise. + +2003-06-27 Kazu Hirata + + * stmt.c (do_jump_if_equal): Return 0 earlier if OP1 and + OP2 are known to be not equivalent. + +2003-06-26 Devang Patel + + * final.c (debug_flush_symbol_queue): New function. + (debug_queue_symbol): New function. + (debug_free_queue): New function. + (debug_nesting): New variable. + (symbol_queue): New variable. + (symbol_queue_index): Same. + (symbol_queue_size): Same. + * debug.h (debug_flush_symbol_queue): New. + (debug_queue_symbol): New. + (debug_free_queue): New. + (debug_nesting): New. + (symbol_queue_index): New. + * dbxout.c (DBXOUT_DECR_NESTING): New macro. + (DBXOUT_DECR_NESTING_AND_RETURN): New macro. + (dbxout_init): Delay symbol output. + (dbxout_global_decl): Save, set and reset TREE_USED bit around + dbxout_symbol() call. + (dbxout_begin_function): Same. + (dbxout_finish): Free symbol queue. + (dbxout_type): Put appropriate symbols in queue. + (dbxout_symbol): Put info for symbol's type in queue. + Decrement/Increment nesting counts flush symbol queue appropriately. + (dbxout_parms): Increment dbxout nesting. + (dbxout_reg_parms): Same. + * flags.h (flag_debug_only_used_symbols): New. + * toplev.c (flag_debug_only_used_symbols): New variable. + (lang_independent_options): Add entries for new option + -feliminate-unused-debug-symbols. + * common.opt: Add entry for -feliminate-unused-debug-symbols. + * opts.c (common_handle_options): Same. + * config/rs6000/darwin.h (CC1_SPEC): Interpret -gused as + -feliminate-unused-debug-symbols. + * doc/invoke.texi (Debugging Options): Document + -feliminate-unused-debug-symbols. + +2003-06-26 Roger Sayle + Jakub Jelinek + + * builtins.c (expand_builtin_sprintf): Use c_getstr and strlen to + obtain the format string instead of using TREE_STRING_POINTER and + TREE_STRING_LENGTH. Only optimize sprintf(dst,"%s",src) when the + return value is unused or the length of src is a known constant. + +2003-06-26 Richard Henderson + + * config/ia64/ia64.h (REGISTER_NAMES): R0 is really AP. + +2003-06-26 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_call): Don't add ar.pfs for sibcalls. + (ia64_split_call): Only load descriptor for GP register inputs. + (ia64_expand_epilogue): Check current_frame_info.mask not + current_function_is_leaf to restore ar.pfs. + +2003-06-26 Richard Henderson + + * emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE + instead of replacing it. + +2003-06-26 Richard Henderson + + * flow.c (propagate_one_insn): Kill function return value + registers across tail calls. + + * flow.c (propagate_one_insn): Preserve live-at-end registers + across tail calls. + +2003-06-26 J"orn Rennecke + + * reload.c (can_reload_into): New function. + (push_reload): Use it. + +2003-06-26 Kazu Hirata + + * config/h8300/h8300.c (compute_a_rotate_length): Fix the + references to the amount of a rotation. + +2003-06-26 Nathanael Nerode + + * config/sh/coff.h: Don't include dbxcoff.h. + * config.gcc: List it here. + +2003-06-26 Kazu Hirata + + * postreload.c (reload_cse_simplify_set): Call cselib_lookup + earlier. Don't check if SRC is a constant. + +2003-06-26 Kazu Hirata + + * Makefile.in (OBJS): Add postreload.o. + Remove cselib.h from the dependency list for reload1.o. + Add a dependency list for postreload.o. + * reload.h: Change the comment for the prototype of + reload_cse_regs. + * reload1.c: Don't include cselib.h. + (reload_cse_regs): Move to postreload.c + (reload_cse_regs_1): Likewise. + (reload_cse_noop_set_p): Likewise. + (reload_cse_simplify_set): Likewise. + (reload_cse_simplify_operands): Likewise. + (RELOAD_COMBINE_MAX_USES): Likewise. + (reload_combine_ruid): Likewise. + (LABEL_LIVE): Likewise. + (reload_combine): Likewise. + (reload_combine_note_use): Likewise. + (reload_combine_note_store): Likewise. + (reg_set_luid): Likewise. + (reg_offset): Likewise. + (reg_base_reg): Likewise. + (reg_mode): Likewise. + (move2add_luid): Likewise. + (move2add_last_label_luid): Likewise. + (MODES_OK_FOR_MOVE2ADD): Likewise. + (reload_cse_move2add): Likewise. + (move2add_note_store): Likewise. + (reload_cse_simplify): Likewise. + * postreload.c: New. + +2003-06-26 Kazu Hirata + + * config/avr/avr.c (final_prescan_insn): Remove support for + -mrtl. + * config/avr/avr.h (MASK_RTL_DUMP): Remove. + (TARGET_RTL_DUMP): Likewise. + (TARGET_SWITCHES): Remove -mrtl. + +2003-06-26 Kazu Hirata + + * config/h8300/h8300-protos.h: Change emit_a_rotate to + output_a_rotate. Add a prototype for compute_a_rotate_length. + * config/h8300/h8300.c (emit_a_rotate): Change to + output_a_rotate. + (compute_a_rotate_length): New. + (h8300_adjust_insn_length): Remove. + * config/h8300/h8300.h (ADJUST_INSN_LENGTH): Remove. + * config/h8300/h8300.md (adjust_length): Remove. + (*rotlqi3_1): Use output_a_rotate and compute_a_rotate_length. + (*rotlhi3_1): Likewise. + (*rotlsi3_1): Likewise. + +2003-06-26 Roger Sayle + Richard Henderson + + * builtins.c (expand_builtin_mathfn): Always stabilize the argument + list against re-evaluation. If expand_unop fails, call expand_call + with the stabilized argument list rather than return NULL_RTX. + (expand_builtin_mathfn2): Likewise, always stabilize the argument + list, and call expand_call ourselves if expand_binop fails. + +2003-06-26 Eric Botcazou + + PR optimization/11210 + * fold-const (decode_field_reference): Strip only NOPs that + don't affect the sign. + +2003-06-26 Dhananjay Deshpande + + * gcc/config/sh/sh.md (push_fpscr): Enable for TARGET_SH2E. + (pop_fpscr, fpu_switch): Likewise. + +2003-06-26 Zdenek Dvorak + + * value-prof.c: New. + * value-prof.h: New. + * Makefile.in (value-prof.o): New. + (LIBGCOV): Add _gcov_merge_single and _gcov_merge_delta + (profile.o): Add value-prof.h and tree.h dependency. + * flags.h (flag_profile_values): Declare. + * gcov-io.h (GCOV_COUNTERS, GCOV_COUNTER_NAMES, GCOV_MERGE_FUNCTIONS): + Add new counters. + (GCOV_COUNTER_V_INTERVAL, GCOV_COUNTER_V_POW2, GCOV_COUNTER_V_SINGLE, + GCOV_COUNTER_V_DELTA): New counter sections. + (__gcov_merge_single, __gcov_merge_delta): Declare. + * flow.c (mark_used_regs): Set subregs_of_mode only when the + structure is initialized. + * libgcov.c (__gcov_merge_single, __gcov_merge_delta): New functions. + * profile.c: Include value-prof.h and tree.h. + (gen_interval_profiler, gen_pow2_profiler, gen_one_value_profiler, + gen_const_delta_profiler, instrument_values): New static functions. + (get_exec_counts): Fix comment. + (branch_prob): Invoke instrument_values. + * toplev.c (flag_profile_values): New flag. + * doc/invoke.texi (-fprofile-values): Document. + +2003-06-26 Zdenek Dvorak + + * Makefile.in (cfgrtl.o): Add expr.h dependency. + * cfgrtl.c: Include expr.h. + (mark_killed_regs, safe_insert_insn_on_edge): New + functions. + * config/i386/i386.h (AVOID_CCMODE_COPIES): Define. + * basic-block.h (safe_insert_insn_on_edge): Declare. + +2003-06-26 Neil Booth + + * c-opts.c (missing_arg): Make non-static. + (c_common_handle_option): Don't check for missing arguments. + * opts.c (handle_option): Check for missing arguments. + +2003-06-26 David Edelsohn + + * config/rs6000/power4.md (power4-veccomplex): Correct latency. + +2003-06-25 Loren James Rittle + + * configure.in (ld_vers): Portability [sed]. + * configure: Regenerate with autoconf213. + +2003-06-25 H.J. Lu + + * doc/extend.texi: Document new builtin functions for Intel + Prescott New Intrunctions. + + * doc/invoke.texi: Document new command-line options, -mpni and + -mno-pni, for Intel Prescott New Intrunctions. + + * config.gcc (extra_headers): Add pmmintrin.h for i[34567]86-*-*. + + * config/i386/i386.c (override_options): Turn on MASK_SSE2 + for -mpni. Turn on MASK_SSE for -msse2. + (bdesc_2arg): Add PNI builtins with 2 args. + (bdesc_1arg): Add PNI builtins with 1 arg. + (ix86_init_mmx_sse_builtins): Handle PNI builtins. + (ix86_expand_builtin): Likewise. + + * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, + MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT, + MASK_TLS_DIRECT_SEG_REFS): Renumbered. + (TARGET_PNI): New. + (TARGET_SWITCHES): Don't enable MASK_SSE for -msse2 here. Add + -mpni and -mno-pni. + (TARGET_CPU_CPP_BUILTINS): Defined __PNI__ for PNI. + (ix86_builtins): Add PNI builtins. + (config/i386/i386.md): Add PNI patterns. + + * config/i386/pmmintrin.h: New file. + +2003-06-25 Kazu Hirata + + * config/h8300/h8300.md (call): Fix the insn lengths. + (call_value): Likewise. + +Thu Jun 26 00:13:35 CEST 2003 Jan Hubicka + + * c-common.c (handle_used_attribute): Use mark_referenced. + * varasm.c (mark_referenced): Break out from ... + (assemble_name): ... here. + * tree.h (mark_referenced): Declare. + +2003-06-25 Wolfgang Bangerth + + * gccbug.in: Add PCH to list of categories. + +2003-06-25 Martin Schaffner + + * cppfiles.c: Clarify comments. + * cpphash.h: Likewise. + * cpplib.h: Likewise. + * cppmacro.c: Likewise. + * mkdeps.h: Likewise. + +2003-06-25 Neil Booth + + * c-opts.c (complain_wrong_lang, write_langs): Remove. + (c_common_handle_option): Complaints about wrong language are + handled in opts.c now. + * opts.c (complain_wrong_lang, write_langs, handle_options): New. + (find_opt): Fix thinko. + (handle_option): Update prototype. Complain about switches for + a different front end. + * opts.h (lang_names, handle_options): New. + (handle_option): Remove. + * opts.sh: Write out language names array. + * toplev.c (parse_options_and_default_flags): Use handle_options. + +2003-06-25 H.J. Lu + + * config/i386/i386.c (MASK_SSE1): Removed. + (MASK_SSE164): Removed. + (MASK_SSE264): Removed. + (bdesc_2arg): Replace MASK_SSE1 with MASK_SSE. Replace + MASK_SSE164 with MASK_SSE | MASK_64BIT. Replace MASK_SSE264 + with MASK_SSE2 | MASK_64BIT. + (bdesc_1arg): Likewise. + (ix86_init_mmx_sse_builtins): Likewise. + + * config/i386/i386.h (TARGET_SSE): Remove MASK_SSE2. + (TARGET_SWITCHES): Enable both MASK_SSE and MASK_SSE2 for + -msse2. + +2003-06-25 Kaveh R. Ghazi + + * hwint.h (HOST_WIDE_INT_PRINT, HOST_WIDE_INT_PRINT_C): New macros. + (HOST_WIDE_INT_PRINT_DEC_SPACE, + HOST_WIDE_INT_PRINT_UNSIGNED_SPACE, + HOST_WIDEST_INT_PRINT_DEC_SPACE, + HOST_WIDEST_INT_PRINT_UNSIGNED_SPACE): Delete. + (HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_DEC_C, + HOST_WIDE_INT_PRINT_UNSIGNED, HOST_WIDE_INT_PRINT_HEX): Define in + terms of HOST_WIDE_INT_PRINT and possibly HOST_WIDE_INT_PRINT_C. + + * final.c (asm_fprintf): Use HOST_WIDE_INT_PRINT. + * ra-debug.c (dump_static_insn_cost): Likewise. + +2003-06-26 Nick Clifton + + * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead + of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. + Replace occurances of '???' with 'XXX' incase they are + mistaken for trigraphs. + (THUMB_PRINT_OPERAND_ADDRESS): abort if a compound address + does not have a register for the first operand. + +2003-06-25 Dhananjay Deshpande + + * config/sh/sh.c (sh_register_move_cost): + Add case for moving between MAC_REGS. + +2003-06-25 Zack Weinberg + + PR 10178 + * langhooks.h (struct lang_hooks): Add no_body_blocks bool. + * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): New; default false. + * c-lang.c, objc/objc-lang.c: Override LANG_HOOKS_NO_BODY_BLOCKS + to true. + * stmt.c (is_body_block): If lang_hooks.no_body_blocks, always + return 0. + +2003-06-25 Kaveh R. Ghazi + + * Makefile.in (bt-load.o): Depend on $(TM_P_H). + * bt-load.c: Include "tm_p.h". + +2003-06-25 Kazu Hirata + + * config/h8300/h8300.c (compute_mov_length): Adjust for the + new optimization. + * config/h8300/h8300.md (*movsi_h8300): Optimize the load of + an SImode constant whose upper and lower are the same. + +Wed Jun 25 11:31:59 CEST 2003 Jan Hubicka + + * varasm.c (assemble_name): Mark needed variables even when + global info is ready. + +2003-06-24 Jerry Quinn + + PR other/11280 + * gcc/doc/invoke.texi (Optimization Options): Remove -Os from + -freorder-functions description. + +2003-06-25 Josef Zlomek + + * dwarf2out.c (gen_field_die): Return if type of decl is error mark. + +2003-06-25 Neil Booth + + * opts.c (common_handle_option): Add missing break;s. + +2003-06-24 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + compute_mov_length. + * config/h8300/h8300.c (compute_mov_length): New. + * config/h8300/h8300.md (*movqi_h8300): Use it. + (*movqi_h8300hs): Likewise. + (movstrictqi): Likewise. + (*movhi_h8300): Likewise. + (*movhi_h8300hs): Likewise. + (movstricthi): Likewise. + (*movsi_h8300): Likewise. + (*movsf_h8300): Likewise. + (*movsi_h8300hs): Likewise. + (*movsf_h8300hs): Likewise. + +2003-06-24 Kazu Hirata + + * jump.c (next_nondeleted_insn): Remove. + * rtl.h: Remove the prototype for next_nondeleted_insn. + +2003-06-24 Roger Sayle + + PR optimization/11311 + * builtins.c (powi_cost): Fix typo. The number of multiplications + required is the number to reduce the argument, result, plus the + cost of calculating the residual, val [not n, the original value]. + +2003-06-24 Roger Sayle + + * config/alpha/osf5.h (TARGET_C99_FUNCTIONS): Define. + +2003-06-24 Richard Henderson + (blame to: Loren James Rittle ) + + * real.h (ieee_extended_intel_96_round_53_format): New. + * real.c (ieee_extended_intel_96_round_53_format): New. + * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Use it + for XFmode and TFmode. + +2003-06-24 Kazu Hirata + + * config/h8300/h8300.md (4 anonymous patterns): Give internal + names. + (movsi_h8300): Change the name to *movsi_h8300. + (movsi_h8300hs): Change the name to *movsi_h8300hs. + (movsf_h8300): Change the name to *movsf_h8300. + (movsf_h8300hs): Change the name to *movsf_h8300hs. + +2003-06-24 Jakub Jelinek + + * builtins.c (expand_builtin_strcpy): Don't evaluate side-effects in + src twice. + +2003-06-24 J"orn Rennecke + + Back out these patches: + 2003-06-02 J"orn Rennecke + * sh.h (OLD_ARG_MODE): New macro. + (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it. + (FUNCTION_ARG_1): Break out of: + (FUNCTION_ARG). Use OLD_ARG_MODE. + 2003-06-06 J"orn Rennecke + * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode + of the generated register. + + * sh.h (FUNCTION_ARG_SCmode_WART): Define. + (FUNCTION_ARG): Unless FUNCTION_ARG_SCmode_WART is defined and + an even number of floating point regs are in use, use the same + sequence of argument passing registers for SCmode as would be + used for two SFmode values. + * sh.c (sh_va_arg): If FUNCTION_ARG_SCmode_WART is defined, + swap real / imaginary parts in incoming SCmode values passed + in registers. + +2003-06-24 Falk Hueffner + + PR target/11260 + * config/alpha/alpha.md (sqrtdf2): Fix operand substitution. + +Tue Jun 24 18:49:33 CEST 2003 Jan Hubicka + + * Makefile.in (cgraph.o): Depend on output.h, not depend on + tree-inline.h + * cgraph.c: Do not include tree-inline.h; include output.h + (known_fns): Rename to ... + (known_decls): ... this one; update all uses. + (cgraph_varpool_hash): New static variable. + (cgraph_varpool_n_nodes, cgraph_varpool_nodes_queue): New global + variables. + (cgraph_varpool_hash_node, eq_cgraph_varpool_node, cgraph_varpool_node, + cgraph_varpool_node_for_identifier, cgraph_varpool_mark_needed_node, + cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls): + New functions. + * cgraph.h (cgraph_varpool_node): New structure. + (cgraph_varpool_n_nodes, cgraph_varpool_nodes_queue): Declare. + (cgraph_varpool_node, cgraph_varpool_node_for_identifier, + cgraph_varpool_finalize_decl, cgraph_varpool_mark_needed_node, + cgraph_varpool_asemble_pending_decls): Declare. + * cgraphunit.c (record_call_1): Notice variable references. + (cgraph_finalize_compilation_unit): Assemble pending variables. + * toplev.c (wrapup_global_declarations): Use varpool. + (compile_file): Assemble pending declarations. + (rest_of_decl_compilation): Use varpool in unit-at-a-time mode. + * varasm.c (assemble_name): Notice varpool references. + +Tue Jun 24 13:52:11 CEST 2003 Jan Hubicka + + * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): New macro. + * langhooks.h (lang_hooks_for_decls): Add prepare_assemble_variable. + * varasm.c (assemble_variable): Call prepare_assemble_variable. + +2003-06-23 Roger Sayle + + * builtins.c (expand_builtin): Use expand_builtin_pow to expand + calls for pow, powf, powl and their __builtin_ variants. + (expand_builtin_pow): If the second argument is a constant + integer and compiling with -ffast-math, use expand_powi to + generate RTL if powi_cost is less than POWI_MAX_MULTS. + (powi_cost): New function to return the number of multiplications + necessary to evaluate an Nth power, for integer constant N. + (expand_powi): New function to expand the RTL for evaluating + the Nth power of a floating point value, for integer constant N. + + * doc/tm.texi (POWI_MAX_MULTS): Document new target macro. + +Mon Jun 23 23:07:35 CEST 2003 Jan Hubicka + + * cgraph.c (cgraph_nodes_queue): Declare. + (eq_node): Take identifier as p2. + (cgraph_node): Update htab_find_slot_with_hash call. + (cgraph_node_for_identifier): New. + (cgraph_mark_needed_node): Move here from cgraphunit.c. + * cgraph.h (cgraph_nodes_queue): Declare. + (cgraph_node_for_identifier): Declare. + * cgraphunit.c (cgraph_finalize_function): Collect entry points here + instead of in cgraph_finalize_compilation_unit; constructors and + destructors are entry points. + (cgraph_finalize_compilation_unit): Reorganize debug outout; + examine nested functions after lowerng; call collect_functions hook. + (cgraph_mark_local_functions): DECL_COMDAT functions are not local. + (cgraph_finalize_compilation_unit): Do not collect entry points. + * varasm.c: Include cgraph.h + (assemble_name): Mark referenced identifier as needed. + + * cgraphunit.c (record_call_1): Use get_callee_fndecl. + +2003-06-23 Jakub Jelinek + + * config/i386/i386.c (x86_output_mi_thunk): Don't pass MEM to %P0, + just SYMBOL_REF. + * config/s390/s390.c (s390_output_mi_thunk): Avoid .plt in -m31 + mode, as it requires pic register loaded. + + * varasm.c (resolve_unique_section): Remove prototype. No longer + static. + * tree.h (resolve_unique_section): New prototype. + +2003-06-23 Andreas Schwab + + PR debug/9905 + * dwarf2out.c (loc_descriptor_from_tree): Handle MODIFY_EXPR by + recursing through first argument. + +2003-06-23 Kazu Hirata + + * ChangeLog.1: Fix a typo. + * cfgrtl.c: Fix comment typos. + * dwarf2out.c: Likewise. + * expmed.c: Likewise. + * genrecog.c: Likewise. + * jump.c: Likewise. + * rtlanal.c: Likewise. + * ssa-dce.c: Likewise. + * toplev.c: Likewise. + +2003-06-23 Kazu Hirata + + * doc/extend.texi: Fix typos. + * doc/md.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-06-23 Kazu Hirata + + * basic-block.h: Fix comment formatting. + * bt-load.c: Likewise. + * builtins.c: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-format.c: Likewise. + * coverage.c: Likewise. + * cpplib.h: Likewise. + * cpppch.c: Likewise. + * dbxout.c: Likewise. + * diagnostic.c: Likewise. + * dwarf2out.c: Likewise. + * expr.c: Likewise. + * fold-const.c: Likewise. + * function.c: Likewise. + * gcc.c: Likewise. + * gcov-io.c: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * profile.c: Likewise. + * real.h: Likewise. + * sched-deps.c: Likewise. + +2003-06-23 Roger Sayle + Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add a note on testing and + remove duplicates from testers list. + +2003-06-23 Nick Clifton + + * read-rtl.c (read_braced_string): Check for EOF. If + encountered issue an error message. + +2003-06-23 Kazu Hirata + + * doc/invoke.texi: Document dump options, dT and dW. + +2003-06-23 Kazu Hirata + + * genrecog.c (pred_table): Remove the entry for + mode_independent_operand. + * recog.c (next_insns_test_no_inequality): Remove. + (mode_independent_operand): Likewise. + * recog.h: Remove the prototype for mode_independent_operand. + +2003-06-22 Kazu Hirata + + * config/h8300/h8300.c (output_simode_bld): Use rotxl.l to + store into bit 0. + * config/h8300/h8300.md (*extzv_1_r_h8300hs): Change cc of the + second alternative to set_znv. + (*extzv_1_r_inv_h8300hs): Likewise. + +2003-06-23 Hans-Peter Nilsson + + * configure.in (in_tree_gas): Find out here whether GAS is ELF, + set in_tree_gas_is_elf accordingly. + (in_tree_ld): Find out whether LD emulation is ELF, set + in_tree_ld_is_elf accordingly. + (gcc_cv_as_subsections, gcc_cv_as_hidden, gcc_cv_as_leb128) + (gcc_cv_as_eh_frame, gcc_cv_as_shf_merge) + (gcc_cv_as_dwarf2_debug_line, gcc_cv_as_gdwarf2_flag) + (gcc_cv_as_gstabs_flag): Use $in_tree_gas_is_elf instead of + grepping gas/Makefile. + (gcc_cv_ld_ro_rw_mix, gcc_cv_ld_eh_frame_hdr, gcc_cv_ld_pie): Use + $in_tree_ld_is_elf instead of grepping ld/Makefile. + * configure: Regenerate. + +2003-06-22 Roger Sayle + + * builtins.c (expand_builtin_mathfn_2): Use tree_cons to build + up the stabilized argument list, not build_tree_list. + (expand_builtin_strcpy): Construct new argument list manually + instead of using chainon to modify the original argument list. + (expand_builtin_stpcpy): Construct new argument list manually + instead of using copy_list and chainon. + (expand_builtin_sprintf): New function. Optimize calls to + sprintf when the format is "%s" or doesn't contain a '%'. + (expand_builtin): Expand BUILT_IN_SPRINTF using the new function + expand_builtin_sprintf. + +2003-06-22 Andreas Schwab + + * function.c (set_insn_locators): Mark as unused. + +2003-06-22 Neil Booth + + * common.opt: Add -finline-limit. + * opts.c (common_handle_options): Handle it. + * opts.sh: Temporary kludge for -finline-limit. + * toplev.c (decode_f_option, independent_decode_option): Die. + (parse_options_and_default_flags): No independent_decode_option. + +2003-06-22 Andreas Jaeger + + * calls.c (emit_call_1): Readd lost ATTRIBUTE_UNUSED. + +2003-06-22 Kazu Hirata + + * doc/invoke.texi: Document dumps, .btl, .cfg, and .bypass. + +2003-06-22 Andreas Schwab + + * doc/invoke.texi: Remove leading `-' from options in index. + +2003-06-22 Kazu Hirata + + * bt-load.c: Follow spelling conventions. + +2003-06-22 Kazu Hirata + + * expr.c (emit_move_insn_1): Fix a comment typo. + +2003-06-22 Kazu Hirata + + * doc/invoke.texi: Alphabetize dump options. + +2003-06-22 Kazu Hirata + + * doc/invoke.texi: Remove a duplicate -dk. + +2003-06-22 Kazu Hirata + + * doc/invoke.texi: Update dump file names. + +2003-06-22 Zack Weinberg + + * config/i370/i370.c, config/i370/i370.h: Use HOST_CHARSET_ASCII + and HOST_CHARSET_EBCDIC, not HC_ASCII and HC_EBCDIC. + +2003-06-22 Kazu Hirata + + * doc/rtl.texi: Fix the @findex for pre_modify. + +2003-06-22 Andreas Jaeger + + * caller-save.c: Convert to ISO C90. + * calls.c: Likewise. + * cfg.c: Likewise. + * cfganal.c: Likewise. + * cfgbuild.c: Likewise. + * cfgcleanup.c: Likewise. + * cfghooks.c: Likewise. + * cfglayout.c: Likewise. + * cfglayout.h: Likewise. + * cfgloop.c: Likewise. + * cfgloop.h: Likewise. + * cfgloopanal.c: Likewise. + * cfgloopmainip.c: Likewise. + * cfgrtl.c: Likewise. + +2003-06-22 Richard Earnshaw + + * arm.h (BIGGEST_ALIGNMENT): Use TARGET_REALLY_IWMMXT for selecting + 64-bit alignment. + +2003-06-22 Richard Earnshaw + + * arm.md (all call_value patterns): Remove register constraints on + value operand. + +2003-06-22 Neil Booth + + * common.opt: More -f switches. + * opts.c (common_handle_options): Handle them. + * toplev.c (time_report): Make extern. + (f_options): USe flag_dummy. + (decode_f_option): No need to use f_options now. + * toplev.h (flag_cprop_registers, flag_ssa, flag_ssa_ccp, + flag_ssa_dce, time_report, flag_new_regalloc): Make extern. + +2003-06-22 Andreas Jaeger + + * c-lex.c: Convert to ISO C90. + * c-objc-common.c: Likewise. + * c-opts.c: Likewise. + * c-pch.c: Likewise. + * c-ppoutput.c: Likewise. + * c-pragma.h: Likewise. + * c-pretty-print.c: Likewise. + * c-pretty-print.h: Likewise. + * c-semantics.c: Likewise. + * c-tree.h: Likewise. + * c-typeck.c: Likewise. + + * c-lang.c: Convert to ISO C90. + +2003-06-22 Neil Booth + + * opts.c (find_opt): Fix to always guarantee a find of a + switch with joined parameter. + * opts.h (struct cl_option): New member back_chain. + * opts.sh: Update to calculate and add back_chain member. + +2003-06-22 Gabriel Dos Reis + + * diagnostic.h (output_host_wide_integer): Declare. + * diagnostic.c (output_long_long_decicaml): New function. + (output_host_wide_integer): Likewise. + (output_format): Use them. Handle "%ll" and "%w". + +2003-06-21 Jason Thorpe + + * config.gcc (*-*-netbsd*): Add t-libgcc-pic to tmake_file. + +2003-06-21 Zack Weinberg + + * aclocal.m4 (gcc_AC_C_CHARSET): Delete. + * configure.in: Don't use gcc_AC_C_CHARSET. + * configure, config.in: Regenerate. + * config/i370/i370.c, config/i370/i370.h: Use + (HOST_CHARSET == HC_EBCDIC) or (HOST_CHARSET == HC_ASCII) + instead of HOST_EBCDIC or !HOST_EBCDIC. Clarify comments a tad. + +2003-06-21 Neil Booth + + * Makefile.in: Update. + * common.opt: New switches. + * opts.c: Include diagnostic.h. + (common_handle_option): Handle new switches. + * toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion, + flag_if_conversion2, flag_delete_null_pointer_checks, + flag_rerun_cse_after_loop): Make extern. + (flag_dummy): New. + (f_options): Update to use flag_dummy for moved options. + (decode_f_option): Some switches moved to opts.c. + * toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion, + flag_if_conversion2, flag_delete_null_pointer_checks, + flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops, + flag_tracer, flag_thread_jumps, flag_unroll_loops, + flag_unroll_all_loops, flag_unswitch_loops): New. + +Sat Jun 21 13:41:00 CEST 2003 Jan Hubicka + + * i386.c (ix86_va_arg): Fix allocation of temporary slot. + +2003-06-20 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + same_cmp_preceding_p. + * config/h8300/h8300.c (same_cmp_preceding): New. + * config/h8300/h8300.md: Extend peephole2's that transform + compare:SI into shorter sequences so that they can deal with + signed comparisons. + +2003-06-21 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Use Windows instead of Win32. + + Update Andreas Jaeger's entry. + + Merge the two entries of Kaveh Ghazi, David Edelsohn, and + Loren J. Rittle. + +2003-06-21 Nathanael Nerode + + * mkconfig.sh: Add multiple inclusion guards to generated headers. + +2003-06-20 Neil Booth + + * c-decl.c (store_parm_decls): Make saved_warn_shadow boolean. + * common.opt: Add remaining -W options and -g. + * diagnostic.c (warnings_are_errors): Remove. + * flags.h: Make most warning flags boolean. + * opts.c (common_handle_option): Handle remaining -W options, and -g. + Move many warning flags from toplev.c, making them boolean. + * toplev.c: Remove many warning flags. + (decode_W_option): Remove. + (decode_g_option): Make extern. Error on unknown switch. + (lang_independent_W_options): Use warn_dummy. + (independent_decode_option): Just handle -f switches now. + * toplev.h (decode_g_option): New. + +2003-06-20 Aldy Hernandez + + PR/11092 + * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Adjust for + vectors. + +2003-06-20 Kelley Cook + + * opts.sh: Tweak awk script for portability. + +2003-06-20 Mark Mitchell + + PR c++/10888 + * tree-inline.c (expand_call_inline): Do not warn about failing to + inline functions declared in system headers. + * doc/invoke.texi (-Winline): Expand on documentation. + +2003-06-20 Richard Henderson + + * config/alpha/alpha.c (alpha_file_start): Disable + file_start_file_directive for ELF and not MDEBUG. + +2003-06-20 J"orn Rennecke + + * sh.h (ROUND_TYPE_ALIGN): Remove. + +2003-06-20 Richard Henderson + + * hooks.c (hook_int_void_no_regs): Rename from + hook_reg_class_void_no_regs; change return type. + * hooks.h: Update. + * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Update. + * target.h (branch_target_register_class): Change return type to int. + Add documentation. + * config/sh/sh.c (sh_target_reg_class): Change return type. + * doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise. + +2003-06-20 Andreas Tobler + + * c-format.c: Change _Bool to bool reverting part of the last + patch. + +2003-06-20 John David Anglin + + * som.h (ASM_OUTPUT_SOURCE_LINE): Use targetm.strip_name_encoding to + strip name encoding. + +2003-06-20 Rainer Orth + + * configure.in (gcc_cv_as_gstabs_flag): Disable if assembler warns. + * configure: Regenerate. + Fixes PR driver/9362. + +2003-06-20 Richard Kenner + + * config/alpha/alpha.c (alpha_file_start): Fix typo. + +2003-06-20 Rainer Orth + + * config/mips/mips.h (PUT_SDB_FUNCTION_END): Pass 0 as third arg + to ASM_OUTPUT_SOURCE_LINE. + +2003-06-20 Daniel Egger + Gerald Pfeifer + + * doc/install.texi (Building): Correct and improve statement + about parallel builds. + +2003-06-20 Andreas Jaeger + + * c-common.c: Change _Bool to bool reverting part of the last + patch. + +2003-06-20 Nathan Sidwell + + * tree.h (expand_function_end): Remove all parameters. + * function.c (expand_function_end): Remove all parameters. + Use input_location. Never expand_end_bindings. + * c-decl.c (c_expand_body_1): Adjust expand_function_end call. + * coverage.c (create_coverage): Likewise. + +2003-06-20 Nick Clifton + + * doc/extend.texi (ARM Built-in Functions): New node. Document + ARM builtin functions for iWMMXt support. + +2003-06-20 Eric Botcazou + + * doc/install.texi (--with-gnu-as): Mention SPARC/Solaris and + SPARC64/Solaris as platforms where --with-gnu-as makes a difference. + (--with-as): Add @anchor. + (--with-gnu-ld): Fix typo. + (--with-ld): Add @uref to --with-as. + +2003-06-19 Zack Weinberg + + * doc/tm.texi: Uniformly use @defmac for macros, rather than + @table items. Minor formatting and editorial corrections. + +2003-06-20 Neil Booth + + * line-map.c, line-map.h: Convert to ISO prototypes. + +2003-06-20 Zdenek Dvorak + + * gcse.c (store_killed_in_insn): Fix. + +2003-06-19 Zack Weinberg + + * target.h (asm_out.file_start, file_start_app_off, + file_start_file_directive): New hooks. + * target-def.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE, + TARGET_ASM_FILE_START_APP_OFF, TARGET_ASM_FILE_START): + New hook-definition macros. + * doc/tm.texi: Document new hooks; remove docs of ASM_FILE_START. + * varasm.c (default_file_start): New. + * output.h: Prototype it. + * toplev.c (init_asm_output): Use targetm.asm_out.file_start. + * system.h: Poison ASM_FILE_START. + + * config/alpha/alpha.c (alpha_write_verstamp): Delete. + (alpha_file_start): New, define if !TARGET_ABI_UNICOSMK. + (unicosmk_asm_file_start): Rename unicosmk_file_start, + make static, take no arguments. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END, + TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set as appropriate. + * config/alpha/unicosmk.h: Don't define ASM_FILE_START nor + TARGET_ASM_FILE_END. Remove reference to ASM_FILE_START in + comment. + * config/arc/arc.c (arc_asm_file_start): Rename + arc_file_start, take no arguments, make static. + (TARGET_ASM_FILE_START): Set it. + * config/arm/arm.c (aof_file_start): New static function. + (TARGET_ASM_FILE_START): Set it, when appropriate. + * config/arm/coff.h, config/arm/elf.h: + Set TARGET_ASM_FILE_START_APP_OFF to true. + * config/avr/avr.c (asm_file_start): Rename avr_file_start, + take no arguments, make static. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): + Set them. + * config/c4x/c4x.c (c4x_file_start): New static function. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): + Set them. + * config/cris/cris.c (cris_file_start): New static function. + (TARGET_ASM_FILE_START): Set it. + * config/dsp16xx/dsp16xx.c (coff_dsp16xx_file_start): Rename + dsp16xx_file_start, make static. + (luxworks_dsp16xx_file_start): Delete. + (TARGET_ASM_FILE_START): Set it. + * config/h8300/h8300.c (asm_file_start): Rename + h8300_file_start, make static, take no arguments. + (TARGET_ASM_FILE_START): Set it. + * config/i370/i370.c (i370_file_start): New static function. + (TARGET_ASM_FILE_START): Set it. + * config/i386/i386.c (x86_file_start): New static function. + (TARGET_ASM_FILE_START): Set it. + * config/i386/i386.h (X86_FILE_START_VERSION_DIRECTIVE, + X86_FILE_START_FLTUSED): New macros, default to false. + * config/i386/i386-interix.h: Override X86_FILE_START_FLTUSED to 1. + * config/i386/sysv4.h, config/i386/sco5.h: Override + X86_FILE_START_VERSION_DIRECTIVE to true. + * config/ia64/ia64.c (ia64_file_start): New static function. + (TARGET_ASM_FILE_START): Set it. + (emit_safe_across_calls): Take no arguments. + * config/ia64/ia64.md: Update to match. + * config/m32r/m32r.c (m32r_asm_file_start): Rename + m32r_file_start, make static, take no arguments. + (TARGET_ASM_FILE_START): Set it. + * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Rename + m68hc11_file_start, make static, take no arguments. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. + (print_options): Delete. + * config/m68k/m68k.c (m68k_hp320_file_start): New static function. + (TARGET_ASM_FILE_START_APP_OFF): Set. + * config/m68k/hp320.h: Set TARGET_ASM_FILE_START to + m68k_hp320_file_start. + * config/mips/mips.c (iris6_asm_file_start, mips_asm_file_start): + Make static, take no arguments. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. + * config/mmix/mmix.c (mmix_asm_file_start): Rename + mmix_file_start, make static, take no arguments. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. + * config/mn10300/mn10300.c (asm_file_start): Rename + mn10300_file_start, make static, take no arguments. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. + * config/ns32k/ns32k.c (TARGET_ASM_FILE_START_APP_OFF): Set. + * config/pa/pa.c (pa_file_start_level, pa_file_start_space, + pa_file_start_file, pa_file_start_mcount, pa_elf_file_start, + pa_som_file_start, pa_linux_file_start, pa_hpux64_gas_file_start, + pa_hpux64_hpas_file_start): New static functions. + * config/pa/elf.h: Set TARGET_ASM_FILE_START to pa_elf_file_start. + * config/pa/pa-linux.h: Set TARGET_ASM_FILE_START to + pa_linux_file_start. + * config/pa/pa64-hpux.h: Set TARGET_ASM_FILE_START to + pa_hpux64_gas_file_start or pa_hpux64_hpas_file_start, as + appropriate. + * config/pa/som.h: Set TARGET_ASM_FILE_START to pa_som_file_start. + * config/rs6000/rs6000.c: Include xcoffout.h when TARGET_XCOFF. + (rs6000_file_start): Make static, take no arguments. Reset + default_cpu under certain conditions. + (rs6000_xcoff_file_start): New function. + * config/rs6000/rs6000.h (TARGET_ASM_FILE_START): Set. + * config/rs6000/xcoff.h (TARGET_ASM_FILE_START, + TARGET_ASM_FILE_START_FILE_DIRECTIVE): Override. + * config/sh/sh.c (output_file_start): Rename + sh_file_start, make static, take no arguments. Merge in old + code from sh/elf.h's ASM_FILE_START, conditioned on TARGET_ELF. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. + * config/sh/sh.c (TARGET_ELF): Define to 0. + * config/sh/elf.h (TARGET_ELF): Redefine to 1. + * config/v850/v850.c (asm_file_start): Delete. + (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. + * config/vax/vax.c (vax_file_start): New static function. + (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_APP_OFF): Set. + + * config/darwin.h: Override ASM_FILE_START_FILE_DIRECTIVE to false. + * config/elfos.h, config/svr3.h, config/arm/elf.h, config/arm/pe.h + * config/i386/att.h, config/i386/gas.h, config/i386/linux.h + * config/i386/sysv4.h, config/i386/sco5.h, config/i960/i960-coff.h + * config/m68k/coff.h, config/m68k/hp320.h, config/mcore/mcore-pe.h + * config/vax/vaxv.h: Set ASM_FILE_START_FILE_DIRECTIVE to true. + + * config/darwin.h, config/elfos.h, config/alpha/elf.h + * config/alpha/openbsd.h, config/alpha/osf.h, config/alpha/vms.h + * config/arc/arc.h, config/arm/aof.h, config/arm/aout.h + * config/arm/coff.h, config/arm/elf.h, config/arm/pe.h + * config/avr/avr.h, config/c4x/c4x.h, config/cris/cris.h + * config/dsp16xx/dsp16xx.h, config/h8300/elf.h, config/h8300/h8300.h + * config/i370/i370.h, config/i386/att.h, config/i386/gas.h + * config/i386/i386-interix.h, config/i386/linux.h, config/i386/sysv4.h + * config/i386/sco5.h, config/i960/i960-coff.h, config/i960/i960.h + * config/ia64/ia64.h, config/ia64/sysv4.h, config/m32r/m32r.h + * config/m68hc11/m68hc11.h, config/m68k/coff.h, config/m68k/m68k.h + * config/mcore/mcore-pe.h, config/mips/iris6.h, config/mips/mips.h + * config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h + * config/pa/elf.h, config/pa/pa-linux.h, config/pa/pa64-hpux.h + * config/pa/som.h, config/pdp11/pdp11.h, config/rs6000/linux64.h + * config/rs6000/lynx.h, config/rs6000/xcoff.h, config/sh/elf.h + * config/sh/sh.h, config/sparc/sparc.h, config/v850/v850.h + * config/vax/vax.h, config/vax/vaxv.h: Don't (re)define ASM_FILE_START. + + * config/alpha/alpha-protos.h, config/arc/arc-protos.h + * config/avr/avr-protos.h, config/dsp16xx/dsp16xx-protos.h + * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h + * config/m32r/m32r-protos.h, config/m68hc11/m68hc11-protos.h + * config/mips/mips-protos.h, config/mmix/mmix-protos.h + * config/mn10300/mn10300-protos.h, config/rs6000/rs6000-protos.h + * config/sh/sh-protos.h, config/v850/v850-protos.h: Update. + + * xcoffout.h, config/rs6000/aix.h, config/rs6000/xcoff.h: + Remove reference to ASM_FILE_START in comment. + * config/arm/aof.h, config/arm/aout.h, config/arm/freebsd.h + * config/arm/linux-gas.h, config/arm/netbsd-elf.h + * config/arm/netbsd.h: Delete definition of ARM_OS_NAME. + +2003-06-19 Graeme Peterson + + * gcc.c (target_sysroot_suffix, target_sysroot_hdrs_suffix, + SYSROOT_SUFFIX_SPEC, SYSROOT_HEADERS_SUFFIX_SPEC, sysroot_suffix_spec, + sysroot_hdrs_suffix_spec): New. + (static_specs): Initialize new variables. + (add_sysroot_suffix_prefix, do_spec_1, main): Use new variables. + * doc/tm.texi (SYSROOT_SUFFIX_SPEC, SYSROOT_HEADERS_SUFFIX_SPEC): + New macros. + +2003-06-19 Andreas Jaeger + + * c-aux-info.c: Convert to ISO C90. + * c-pragma.c: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-convert.c: Likewise. + * c-cppbuiltin.c: Likewise. + * c-dump.c: Likewise. + * c-decl.c: Likewise + * c-format.c: Likewise. + * c-incpath.c: Likewise. + * c-incpath.h: Likewise. + +2003-06-19 Roger Sayle + + * builtins.c (expand_errno_check): Assume that flag_errno_math + and HONOR_NANS have been tested before calling here. Only try + to set errno ourselves if the decl can't throw an exception. + (expand_builtin_mathfn): Move the code to stabilize the arg + after the main switch, so that that its only done when needed. + BUILT_IN_SQRT{,F,L} doesn't set errno if its arg is nonnegative. + Don't modify the original expr when stabilizing the argument. + (expand_builtin_mathfn_2): Likewise, move the code to stabilize + the args after the main switch, and don't modify the orginal exp. + +2003-06-19 Aldy Hernandez + + * expr.c (const_vector_from_tree): Initialize remaining elements + to 0. + +2003-06-19 Aldy Hernandez + + * config/rs6000/spe.md ("spe_evfscfsi"): Change operand types. + Change "fix" to "float". + +2003-06-19 Andreas Jaeger + + * c-tree.h: Remove declaration of poplevel. + + * tree.h: Remove declaration of approx_sqrt. + + * c-lex.c: Remove redundant declaration of asm_out_file. + + * flags.h: Remove declaration of warn_unknown_pragma and + main_input_filename. + + * rtl.h: Remove functions from fold-const.c since they're already + declared in tree.h. + + * regs.h: Remove redundant declaration of reg_names. + + * bt-load.c (migrate_btr_defs): Correct printf arguments. + + * protoize.c: Fix breakage from last patch. + +2003-06-19 J"orn Rennecke + + * hooks.h (hook_reg_class_void_no_regs): Only declare if tm.h + has been included. + +2003-06-18 James A Morrison + + * config/sparc/sparc.c: Update copyright year. + +2003-06-19 David Edelsohn + + * config/rs6000/rs6000.c (init_cumulative_args): Limit CALL_LIBCALL + to ABI_V4. + +2003-06-18 Joseph S. Myers + + PR bootstrap/4068 + * config/i386/liunx.h: Don't include sys/ucontext.h for glibc 2.0. + +2003-06-19 Kazu Hirata + + * config/h8300/h8300.c (TARGET_INITIALIZER and friends): Move + to the end of the file. Remove unnecessary prototypes. + +2003-06-19 Hans-Peter Nilsson + + * bt-load.c (migrate_btr_def) [INSN_SCHEDULING]: Conditionalize + calls to insn_default_latency and result_ready_cost. Initialize + def_latency to 1. + +2003-06-18 Richard Henderson + + * config/ia64/unwind-ia64.c (_Unwind_GetCFA): New. + (_Unwind_FindEnclosingFunction): Implement. + +2003-06-18 Kazu Hirata + + * toplev.c (rest_of_handle_sched): Hide the entire function if + INSN_SCHEDULING is not defined. + (rest_of_compilation): Call rest_of_handle_sched() only when + INSN_SCHEDULING is defined. + +2003-06-18 Stephen Clarke + J"orn Rennecke + + * bt-load.c: New file. + * Makefile.in (OBJS): Include bt-load.o + (bt-load.o): Add dependencies. + * flags.h (flag_branch_target_load_optimize): Declare. + (flag_branch_target_load_optimize2): Likewise. + * hooks.c (hook_reg_class_void_no_regs): New function. + (hook_bool_bool_false): Likewise. + * hooks.h (hook_reg_class_void_no_regs, hook_bool_bool_false): Declare. + * rtl.h (branch_target_load_optimize): Declare. + * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define. + (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. + (TARGET_INITIALIZER): Include these. + * target.h (struct gcc_target): Add branch_target_register_class + and branch_target_register_callee_saved members. + * toplev.c (enum dump_file_index): Add DFI_branch_target_load + (dump_file) Add "tars" entry. + (flag_branch_target_load_optimize): New variable. + (flag_branch_target_load_optimize2): Likewise. + (lang_independent_options): Add entries for new options. + (rest_of_compilation): Call branch_target_load_optimize. + * doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Document. + (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. + * doc/invoke.texi: Document -fbranch-target-load-optimize and + -fbranch-target-load-optimize2. + * rtl.h (epilogue_completed): Declare. + * recog.c (epilogue_completed): New variable. + * toplev.c (rest_of_compilation): Set it. + * flow.c (mark_regs_live_at_end): Use it. + * config/ia64/ia64.c (ia64_output_mi_thunk): Set it. + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. + * config/sh/sh.c (sh_output_mi_thunk): Likewise. + * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. + + * sh.c (shmedia_space_reserved_for_target_registers): New variable. + (sh_target_reg_class): New function. + (sh_optimize_target_register_callee_saved): Likwise. + (shmedia_target_regs_stack_space): Likewise. + (shmedia_reserve_space_for_target_registers_p): Likewise. + (shmedia_target_regs_stack_adjust): Likewise. + (TARGET_BRANCH_TARGET_REGISTER_CLASS): Override. + (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. + (calc_live_regs): If flag_branch_target_load_optimize2 and + TARGET_SAVE_ALL_TARGET_REGS is enabled, and we have space reserved + for target registers, make sure that we save all target registers. + (sh_expand_prologue, sh_expand_epilogue): Take target register + optimizations into account. Collapse stack adjustments if that + is beneficial. + (initial_elimination_offset): Reserve space for target registers + if necessary. + * sh.h (SAVE_ALL_TR_BIT, TARGET_SAVE_ALL_TARGET_REGS): Define. + (OPTIMIZATION_OPTIONS): Enable flag_branch_target_load_optimize. + +2003-06-18 Nick Clifton + + * config.gcc: Add an extra_header for ARM targets. + Support configuring with --with-cpu=iwmmxt. + * doc/invoke.texi: Document new value for -mcpu= ARM switch. + * config/arm/aof.h (REGISTER_NAMES): Add iwmmxt register + names. Fix formatting. + * config/arm/aout.h (REGISTER_NAMES): Add iwmmxt register + names. + * config/arm/arm-protos.h (arm_emit_vector_const): New + prototype. + (arm_output_load_gr): New prototype. + * config/arm/arm.c (extra_reg_names1): Delete. + (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN, FL_IWMMXT, + * arch_is_iwmmxt): Define. + (all_cores, all_architecture): Add entry for iwmmxt. + (arm_override_options): Add support for iwmmxt. + (use_return_insn, arm_function_arg, arm_legitimate_index_p, + arm_print_value, arm_rtx_costs_1, output_move_double, + arm_compute_save_reg_mask, arm_output_epilogue, + arm_get_frame_size, arm_expand_prologue, arm_print_operand, + arm_assemble_integer, arm_hard_regno_ok, arm_regno_class): + Likewise. + (arm_init_cumulative_args): Count iwmmxt registers. + (arm_function_ok_for_sibcall): Return false of sibcall_blocked + has been set. + (struct minipool_node): Add fix_size field. + (add_minipool_forward_ref): Add support for 8-byte aligning of + the pool. + (add_minipool_backward_ref, add_minipool_offsets, + dump_minipool, push_minipool_fix): Likewise. + (struct builtin_description): New struct. + (builtin_description): New array of iwmmxt builtin functions. + (arm_init_iwmmxt_builtins): New function. + (arm_init_builtins): New function. + (safe_vector_operand): New function. + (arm_expand_binop_builtin): New function. + (arm_expand_unop_builtin): New function. + (arm_expand_builtin): New function. + (arm_emit_vector_const): New function. + (arm_output_load_gr): New function. + * config/arm/arm.h (TARGET_CPU_iwmmxt, TARGET_IWMMXT, + TARGET_REALLY_IWMMXT, arm_arch_iwmmxt, IWMMXT_ALIGNMENT, + TYPE_NEEDS_IWMMXT_ALIGNMENT, ADJUST_FIELD_ALIGN, + DATA_ALIGNMENT, LOCAL_ALIGNMENT, VECTOR_MODE_SUPPORTED_P): Define. + (BIGGEST_ALIGNMENT): Set to 64 if ATPCS support is enabled. + (CPP_CPU_ARCH_SPEC): Add entries for iwmmxt. + (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER, + reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, + REG_CLASS_FOR_LETTER): Add iwmmxt registers. + (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Disable iwmmxt + registers unless the iwmmxt target is selected. + (FIRST_IWMMXT_GR_REGNUM, LAST_IWMMXT_GR_REGNUM, + FIRST_IWMMXT_REGNUM, LAST_IWMMXT_REGNUM, IS_IWMMXT_REGNUM, + IS_IWMMXT_GR_REGNUM): Define. + (FIRST_PSEUDO_REGISTER): Bump to 63. + (struct machine_function): Add sibcall_blocked field. + (Struct CUMULATIVE_ARGS): Add iwmmxt_nregs, named_count and + nargs fields. + (enum arm_builtins): New enum list. + * config/arm/arm.md (UNSPEC_WSHUFH, UNSPEC_WACC, + UNSPEC_TMOVMSK, UNSPEC_WSAD, UNSPEC_WSADZ, UNSPEC_WMACS, + UNSPEC_WMACU, UNSPEC_WMACSZ, UNSPEC_WMACUZ, UNSPEC_CLRDI, + UNSPEC_WMADDS, UNSPEC_WMADDU): New unspecs. + (VUNSPEC_TMRC, VUNSPEC_TMCR, VUNSPEC_ALIGN8, VUNSPEC_WCMP_EQ, + VUNSPEC_WCMP_GTU, VUNSPEC_WCMP_GT): New vunspecs. + (movv2si, movv4hi, movv8qi): New expands for vector moves. + Include iwmmxt.md. + * config/arm/t-xscale-elf (MULTILIB_OPITONS): Add iwmmxt + multilib. + (MULTILIB_DIRNAMES, MULTILIB_REDUNDANT_DIRS): Likewise. + * config/arm/mmintrin.h: New ARM specific header file. + * config/arm/iwmmx.md: New iWMMXt specific machine patterns. + +2003-06-18 J"orn Rennecke + + * toplev.c (Remaining -d letters summary): Update. + +2003-06-18 Franz Sirl + + * config/rs6000/rs6000.c (init_cumulative_args): Add and handle LIBCALL + argument. + (function_arg): Handle CALL_LIBCALL flag. + * config/rs6000/rs6000-protos.h (init_cumulative_args): Update + prototype. + * config/rs6000/rs6000.h (CALL_LIBCALL): New macro. + (INIT_CUMULATIVE_LIBCALL_ARGS): New macro. + (INIT_CUMULATIVE_ARGS): Add LIBCALL argument. + (INIT_CUMULATIVE_INCOMING_ARGS): Likewise. + +2003-06-18 Neil Booth + + * Makefile.in: Update. + * common.opt: New options. + * opts.c (maybe_warn_unused_parameter, set_Wextra, handle_param, + set_Wunused): New. + (common_handle_option): Handle new options. + * toplev.c (set_target_switch): Export. + (set_Wextra, set_Wunused, maybe_warn_unused_parameter): Move to opts.c. + (decode_W_option): -Wunused and -Wextra handled in opts.c now. + (independent_decode_option): More options handled in opts.c now. + Change prototype. + * toplev.h (set_target_switch): New. + +2003-06-17 Robert Abeles + + PR debug/4252 + * c-opts.c (c_common_handle_option): Pass -fdump argument suffix + to dump_switch_p(). + * tree-dump.c (dump_switch_p): Remove redundant 'dump-' prefix + from static strings in dump_files. + +2003-06-17 Kaveh R. Ghazi + + * system.h (ANSI_PROTOTYPES, PTR_CONST, LONG_DOUBLE, VPARAMS, + VA_OPEN, VA_FIXEDARG, VA_CLOSE, VA_START): undef and poison these + libiberty macros. + +2003-06-17 Jason Merrill + + PR c++/10929 + * tree-inline.c (expand_call_inline): Don't warn about failing to + inline a function which was made inline by -finline-functions. + +2003-06-17 Kazu Hirata + + * config/h8300/h8300-protos.h: Update to ISO C. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + +2003-06-16 Nathanael Nerode + + * configure.in: Replace BUILD_CC references with CC_FOR_BUILD. + * configure: Regenerate. + * Makefile.in: Replace BUILD_CC references with CC_FOR_BUILD. + +2003-06-17 Ranjit Mathew + + * install.texi (Testing): Add information on how to run Java + runtime tests separately. + +2003-06-17 Rainer Orth + + * config/mips/mips.md (trap): Use break 0 when !TARGET_GAS. + + * config/mips/iris6-o32.h (MIPS_ISA_DEFAULT): Remove. + (MIPS_CPU_STRING_DEFAULT): Redefine to mips2. + +2003-06-17 Christopher Faylor + + * doc/install.texi: Add msvc rebuild caveat. + +2003-06-17 Kazu Hirata + + * config/sh/coff.h: Replace Hitachi with Renesas. + * config/sh/elf.h: Likewise. + * config/sh/embed-elf.h: Likewise. + * config/sh/lib1funcs.asm: Likewise. + * config/sh/sh-protos.h: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.h: Likewise. + * config/sh/sh.md: Likewise. + +2003-06-17 Kazu Hirata + + * ChangeLog.3: Fix comment typos. + * ChangeLog.6: Likewise. + * config/d30v/d30v.c: Likewise. + * config/h8300/h8300.md: Likewise. + * config/m32r/m32r.md: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.md: Likewise. + * config/ns32k/NOTES: Likewise. + +2003-06-17 Ranjit Mathew + Gerald Pfeifer + + * doc/sourcebuild.texi (libgcj Tests): Simplify instructions on how + to run Java runtime tests separately. + +2003-06-17 Kazu Hirata + + * config/h8300/h8300-protos.h: Update a comment. + +2003-06-17 J"orn Rennecke + + * sh.h (ROUND_TYPE_ALIGN, LOCAL_ALIGNMENT): Complex modes + are aligned like integral modes. + (SH5_WOULD_BE_PARTIAL_NREGS): Also test for CDImode and DCmode. + + * sh.h (EXTRA_CONSTRAINT_Csy): Allow PIC_DIRECT_ADDR_P. + (LEGITIMATE_PIC_OPERAND_P): Allow LABEL_REF. + * sh.md (*pt): Remove. + + * sh.h (REG_ALLOC_ORDER): Avoid squandering call-saved registers. + + * sh.md (return_media_rte): New pattern. + (return_media): Use it. + +2003-06-17 Kazu Hirata + + * doc/contrib.texi: Replace Hitachi with Renesas. + * doc/install.texi: Likewise. + * doc/invoke.texi: Likewise. + +2003-06-17 J"orn Rennecke + + * sh.h (CONST_OK_FOR_J16): Fix HOST_BITS_PER_WIDE_INT >= 64 + behaviour. + +2003-06-17 Franz Sirl + + * doc/tm.texi (MD_FALLBACK_FRAME_STATE_FOR): Mention MAKE_THROW_FRAME. + + * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Partly revert + 2003-01-23 patch. Corrected to handle kernels with changed ucontext. + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Error on invalid + -msdata=eabi usages. + + * gcc/config/rs6000/sysv4.h (USE_LIBC_1): Delete all uses. + +2003-06-17 Kaveh R. Ghazi + + * alloc-pool.c: Don't check HAVE_LONG_DOUBLE. + * fixinc/gnu-regex.c: Don't define `volatile'. + * ggc-page.c: Don't check HAVE_LONG_DOUBLE. + * ggc-simple.c: Likewise. + * system.h: Don't define `volatile'. + + * aclocal.m4 (gcc_AC_C_VOLATILE, gcc_AC_C_LONG_DOUBLE): Delete. + * configure.in (gcc_AC_C_VOLATILE, gcc_AC_C_LONG_DOUBLE): Don't + call these macros. + * config.in, configure: Regenerated. + +2003-06-17 Richard Kenner + + * config/ia64/ia64.c (ia64_expand_builtin, case IA64_BUILTIN_BSP): + Handle POINTERS_EXTEND_UNSIGNED. + +2003-06-17 Rainer Orth + + * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 && + !TARGET_IRIX6]: Define as NULL. + +2003-06-17 Eric Botcazou + + * config/sparc/sparc.c (sparc_va_arg): Don't align 16-byte+ structures. + +2003-06-17 Eric Botcazou + + * dbxout.c (dbxout_source_line_counter): New global variable. + Mark it with GTY(()). + (dbxout_source_line): Increment dbxout_source_line_counter + and pass it to ASM_OUTPUT_SOURCE_LINE. + * sdbout.c (sdbout_source_line_counter): New global variable. + Mark it with GTY(()). + (unnamed_struct_number): Mark it with GTY(()). + (sdbout_source_line): Increment sdbout_source_line_counter + and pass it to ASM_OUTPUT_SOURCE_LINE. + * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Add third parameter + (xcoffout_source_line): Pass 0 as third argument to + ASM_OUTPUT_SOURCE_LINE. + (xcoffout_begin_prologue): Likewise. + * config/dbxout.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + Use it instead of 'sym_lineno' but without incrementing it. + * config/dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/lynx.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/ptx4.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/alpha/alpha.c (alpha_start_function): Pass 0 as third + argument to ASM_OUTPUT_SOURCE_LINE. + * config/alpha/alpha.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + * config/arm/aout.h: Remove useless comment. + * config/avr/avr.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + * config/i960/i960.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + Use it instead of 'sym_lineno' but without incrementing it. + * config/m68k/hp320.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + * config/mcore/mcore-pe.h (ASM_OUTPUT_SOURCE_LINE): Add third + parameter. Use it instead of 'sym_lineno' but without incrementing it. + * config/mips/mips.c (mips_output_function_prologue): Pass 0 as third + argument to ASM_OUTPUT_SOURCE_LINE. + * config/mips/mips.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/pa/som.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. + Use it instead of 'sym_lineno' but without incrementing it. + * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/sh/elf.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/sparc/aout.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * config/sparc/pbd.h (ASM_OUTPUT_SOURCE_LINE): Likewise. + * doc/tm.texi (ASM_OUTPUT_SOURCE_LINE): Document third parameter. + +2003-06-17 Richard Sandiford + + * config/mips/mips-protos.h (mips_expand_block_move): Declare. + (expand_block_move, output_block_move): Remove. + * config/mips/mips.h (enum block_move_type): Remove. + * config/mips/mips.c (block_move_call, output_block_move): Remove. + (mips_block_move_straight, mips_adjust_block_mem): New function. + (mips_block_move_loop): Renamed and reworked from block_move_loop. + (mips_expand_block_move): Likewise expand_block_move. Return false + to fall back on the target-independent code. + * config/mips/mips.md (movstrsi): Use mips_expand_block_move. + (movstrsi_internal*): Remove. + +2003-06-16 Zack Weinberg + + * cpplib.h, cpphash.h, cppcharset.c, cpperror.c, cppexp.c + * cppfiles.c, cpphash.c, cppinit.c, cpplex.c, cpplib.c + * cppmacro.c, cpppch.c, cpptrad.c, cppspec.c: Convert to + ISO C: new-style function declarations, no need for PARAMS, + no special punctuation on indirect function calls, use string + constant concatenation where convenient. + +2003-06-17 Andreas Jaeger + + * rtl.h: Remove declarations from coverage.h. + * toplev.c: Include coverage.h. + * Makefile.in (toplev.o): Depend on coverage.h. + + * toplev.h: Remove extra declaration of print_time. + + * gengtype.c (close_output_files): Remove duplicated declaration. + +2003-06-16 Nathanael Nerode + + * config/sparc/sysv4.h: Remove target-independent comment; + replace "GNU CC" with "GCC". + * config/vxworks.h: Replace "GNU compiler" with "GCC". + * config/sparc/aout.h, config/sparc/biarch64.h, config/sparc/elf.h, + config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h, + config/sparc/lite.h, config/sparc/litecoff.h, config/sparc/liteelf.h, + config/sparc/netbsd-elf.h, config/sparc/openbsd.h, + config/sparc/rtemself.h, config/sparc/sol2-64.h, + config/sparc/sol2-bi.h, config/sparc/sol2-gas-bi.h, + config/sparc/sol2-gld-bi.h, config/sparc/sol2-gld.h, + config/sparc/sol2.h, config/sparc/sp64-aout.h, + config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h, + config/sparc/sparc-protos.h, config/sparc/sysv4-only.h: Replace + "GNU compiler", "GNU CC" with "GCC". + * config/sparc/cypress.md, config/sparc/hypersparc.md, + config/sparc/sparc-modes.def, config/sparc/sparc.c, + config/sparc/sparc.md, config/sparc/sparclet.md, + config/sparc/supersparc.md, config/sparc/ultra1_2.md, + config/sparc/ultra3.md: Replace "GNU CC", "GNU Compiler", and + "GNU C Compiler" with "GCC". + * config/ip2k/ip2k.h: Replace "GNU CC" and "GNU compiler" with "GCC". + +2003-06-16 Aldy Hernandez + + * simplify-rtx.c (simplify_subreg): Do not over-extend vector + constants. + + * testsuite/gcc.c-torture/execute/simd-4.c: New. + +2003-06-16 Nathanael Nerode + + * config/ip2k/ip2k.h: Remove target-independent comments. + + * config.gcc: Explicitly mention elfos.h in ip2k entry. + * config/ip2k/ip2k.h: Don't #include it here. + +2003-06-16 Kaveh R. Ghazi + + * bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c, + config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c, + dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c, + function.c, gcc.c, genoutput.c, gensupport.c, global.c, + haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c, + loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c, + read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c, + stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use + the PTR macro. + + * gengtype.c: Don't use UNION_INIT_ZERO. + * system.h (UNION_INIT_ZERO): Delete. + +2003-06-16 Richard Henderson + + * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE instead of + GET_MODE_UNIT_SIZE when simplifying constant vectors. + +2003-06-16 Andreas Jaeger + + * timevar.c (get_run_time): Remove function provided also by + libiberty. + * timevar.h: Remove get_run_time declaration. + +2003-06-16 Kazu Hirata + + * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): Remove + unreachable code. + +2003-06-16 Kaveh R. Ghazi + + * builtin-attrs.def, builtin-attrs.def, builtins.c, cpplex.c, + cpplib.c, gencheck.c, gengenrtl.c, machmode.def, protoize.c: Don't + use macros from "symcat.h", instead rely on ISO C. + + * system.h: Don't include "symcat.h". + * configure.in (AC_C_STRINGIZE): Delete. + * config.in, configure: Regenerate. + +2003-06-16 Richard Kenner + + * Makefile.in (install-mkheaders): Use INSTALL_SCRIPT for scripts. + + * tree.h (STMT_CHECK): New macro. + Also upper-case argument names on all checking macros and + fix some whitespace problems; assume CODE argument does not + have side-effects. + +2003-06-16 Kaveh R. Ghazi + + * scan.h: Convert to ISO C. + * system.h: Likewise. + + * c-format.c (dynamic_format_types): New pointer for dynamic data. + (find_length_info_modifier_index, init_dynamic_asm_fprintf_info): + New functions split out of... + (handle_format_attribute): ...here. + +2003-06-16 J"orn Rennecke + + * sh.h (REG_CLASS_FROM_LETTER): Change to: + (REG_CLASS_FROM_CONSTRAINT). + (CONST_OK_FOR_I): Rename to: + (CONST_OK_FOR_I08). Changed all users. + (CONST_OK_FOR_J): Rename to: + (CONST_OK_FOR_I16). Changed all users. + (CONST_OK_FOR_K): Rename to: + (CONST_OK_FOR_P27). Changed all users. + (CONST_OK_FOR_L): Rename to: + (CONST_OK_FOR_K08). Changed all users. + (CONST_OK_FOR_O): Rename to: + (CONST_OK_FOR_I06). Changed all users. + (CONST_OK_FOR_P): Rename to: + (CONST_OK_FOR_I10). Changed all users. + (CONSTRAINT_LEN, CONST_OK_FOR_I, CONST_OK_FOR_J16): Define. + (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_P): Likewise. + (EXTRA_CONSTRAINT_A, EXTRA_CONSTRAINT_Bsc): Likewise. + (EXTRA_CONSTRAINT_B, PIC_OFFSET_P, PIC_DIRECT_ADDR_P): Likewise. + (EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C): Likewise. + (EXTRA_MEMORY_CONSTRAINT,(EXTRA_CONSTRAINT_Sr0): Likewise. + (CONST_OK_FOR_LETTER_P): Replace with + (CONST_OK_FOR_CONSTRAINT_P). + (EXTRA_CONSTRAINT_S): Rename to: + (EXTRA_CONSTRAINT_C16). Changed all users. + (MOVI_SHORI_BASE_OPERAND_P): Don't allow direct addresses. + (EXTRA_CONSTRAINT_T): Rename to: + (EXTRA_CONSTRAINT_Csy). Changed all users. + (EXTRA_CONSTRAINT_Z): Remove. + (EXTRA_CONSTRAINT): Replace with: + (EXTRA_CONSTRAINT_STR). + (EXTRA_CONSTRAINT_U): Rename to: + (EXTRA_CONSTRAINT_Z). Changed all users. + * sh.c (and_operand): Use CONST_OK_FOR_J16. + * sh.md (cmpeqsi_t-1, cmpeqsi_t, adddi3_media): Use new constraints. + (addsi3_media, addsi3_compact, andsi3_compact, anddi3): Likewise. + (iorsi3, iordi3, xorsi3, xordi3, ashlsi3_std, ashlhi3_k): Likewise. + (lshrsi3_k, movsi_i, movsi_ie, movsi_i_lowpart, movsi_media): Likewise. + (movsi_media_nofpu, movqi_media, movhi_i, movhi_media): Likewise. + (*movdi_i, movdi_media, movdi_media_nofpu, shori_media): Likewise. + (movdf_media, movdf_media_nofpu, movv2sf_i, movv4sf_i): Likewise. + (movsf_media, movsf_media_nofpu, movsi_y, beq_media): Likewise. + (beq_media_i, bne_media, pt, ptb, movv8qi_i, movv2hi_i): Likewise. + (movv4hi_i, movv2si_i, negcmpeqv8qi, negcmpeqv2si): Likewise. + (negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si, negcmpgtv4hi): Likewise. + (mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub, mextr_rl, mextr_lr): Likewise. + (mextr1, mextr2, mextr3, mextr4, mextr5, mextr6, mextr7): Likewise. + (mperm_w, mperm_w_little, mperm_w_big, msad_ubq_i): Likewise. + (mshards_q, mshfhi_b, mshflo_b, mshf4_b, mshf0_b, mshfhi_l): Likewise. + (mshflo_l, mshf4_l, mshf0_l, mshfhi_w, mshflo_w, mshf4_w): Likewise. + (mshf0_w, mshflo_w_x, mshfhi_l_di, mshfhi_l_di_rev): Likewise. + (mshflo_l_di_rev, mshflo_l_di_x, concat_v2sf): Likewise. + (mshflo_l_di_x_rev, subv2si3, subv4hi3, sssubv2si3): Likewise. + (sssubv4hi3): Likewise. + (movsf_i): Change I[08]/r to G/r. + (movsf_ie): Change f/{G,H}/c/X to f/{G,H}/c/Bsc. + + * sh.c (sh_output_mi_thunk): Use CONST_OK_FOR_ADD. + +2003-06-16 Vladimir Makarov + + * config/i386/i386.c (ix86_memory_move_cost): Fix typo. + +2003-06-16 Andreas Jaeger + + * basic-block.h: Remove duplicate prototype of + note_prediction_to_br_prob. + + * tree.h: Remove duplicate prototype of strip_float_extensions. + +2003-06-16 Kaveh R. Ghazi + + * config/c4x/c4x.c: Don't include "c-tree.h". + * config/pa/pa.c: Likewise. + * langhooks.c: Likewise. + * tree.h (poplevel): Declare. + +2003-06-16 Kazu Hirata + + * config/h8300/h8300.c (const_costs): Move this to ... + (h8300_rtx_costs): ... here. + +2003-06-16 Roger Sayle + + * optabs.h (enum optab_index): Add new OTI_tan and OTI_atan. + (tan_optab, atan_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize tan_optab and atan_optab. + * genopinit.c (optabs): Implement tan_optab and atan_optab + using tan?f2 and atan?f2 patterns. + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_TAN{,F,L} + using tan_optab, and BUILT_IN_ATAN{,F,L} using atan_optab. + Change the default value of errno_set to false. + (expand_builtin): Expand BUILT_IN_TAN{,F,L} and BUILT_IN_ATAN{,F,L} + using expand_builtin_mathfn. + + * config/i386/i386.md (atansf2, atandf2, atanxf2, atantf2): New + expander patterns implemented using existing atan2?f3 patterns. + +2003-06-16 Roger Sayle + + * expr.c (expand_expr ): If operand_equal_p considers + both operands of the addition equal, reuse the expanded RTL. + (expand_expr ): Likewise for multiplication. + +2003-06-16 Roger Sayle + Jeff Law + + * fold-const.c (operand_equal_p): Consider two calls to "const" + functions with identical non-volatile arguments to be equal. + Consider the FUNCTION_DECL for the "__builtin_foo" form of a + built-in function to be equal to the "foo" form. + +2003-06-16 Nathanael Nerode + + * config/rs6000/sysv4le.h: Remove target-independent comment. + Replace "GNU compiler" with "GCC" in comment. + +2003-06-16 Andreas Jaeger + + * tracer.c: Remove duplicate declaration. + + * toplev.c: Remove extra declaration of decode_d_option. + + * ssa.c: Remove duplicate declaration. + + * sreal.c: Remove extra declaration of dump_sreal. + + * reload1.c: Remove duplicate declarations. + + * integrate.c: Remove extra declaration of + set_decl_abstract_flags. + + * flow.c: Remove extra declaration of dump_flow_info. + + * alias.c: Remove extra declaration of get_addr. + +2003-06-16 Nathanael Nerode + + * config/rtems.h, config/sol2.h, config/svr4.h, config/usegas.h, + config/vxworks.h: GNU CC -> GCC. + + * convert.c, dwarf2out.c, dwarfout.c, emit-rtl.c, function.c, + lists.c, print-rtl.c, print-tree.c, read-rtl.c, rtl-error.c, + stmt.c, toplev.c, integrate.h, loop.h, machmode.h, rtl.h, + ssa.h, tree.def: Replace overly specific references to "GNU C" + and "GNU C Compiler" with references to "GCC". + +2003-06-16 J"orn Rennecke + + * sh.c (prepare_move_operand): Check if operand 0 is an invalid + memory reference. Fix test that checks if operand 1 is using r0. + * sh.md (movhi_i): Don't allow st.w r0,@(rX,rY) . + + * defaults.h (REG_CLASS_FROM_CONSTRAINT): Only define if not already + defined. + +2003-06-15 Nathan Sidwell + + * function.h (struct emit_status): Remove x_last_linenum, + x_last_filename. Add x_last_location. + * rtl.h: #include "input.h". + (NOTE_DATA): New. + * cfglayout.c (duplicate_insn_chain): Use emit_line_note for line + number notes. + * emit-rtl.c (last_linenum, last_filename): Remove. + (last_location): New. + (emit_line_note_after): LINE must always be >= 0. + (emit_line_note): Likewise. Check not duplicate here... + (emit_note): ... rather than here. + (emit_line_note_force, force_next_line_note, init_emit): Adjust. + * integrate.c (expand_inline_function): Use emit_line_note for + line number notes. + (copy_insn_list): Likewise. + * unroll.c (copy_loop_body): Likewise. + * Makefile.in (RTL_H): Add input.h. + +2003-06-16 Richard Sandiford + + * optabs.c (emit_libcall_block): Don't hoist insns past a label. + +2003-06-16 Richard Henderson + + * config/alpha/alpha-protos.h, config/alpha/elf.h, + config/alpha/osf.h, config/alpha/unicosmk.h, config/alpha/vms.h, + config/alpha/vms-cc.c, config/alpha/vms-ld.c: Update to ISO C. + * config/alpha/alpha.c: Likewise. Move targetm init to end of file. + Remove unneeded static function decls. + +2003-06-16 Neil Booth + + * c-opts.c (c_common_handle_option): s/on/value/. + (OPT_fabi_version_, OPT_ftabstop_, OPT_ftemplate_depth_): Use value + directly rather than converting the argument. + * c.opt: Update docs. Use UInteger where appropriate. + * common.opt: Use UInteger where appropriate. + * opts.c (integral_argument): New. + (handle_argument): Handle integral arguments, and optional + joined arguments. + (common_handle_option): Update. + * opts.h (CL_MISSING_OK, CL_UINTEGER): New. + * opts.sh: Handle JoinedOrMissing and UInteger flags. + +2003-06-16 Neil Booth + + * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Remove + unnecessary extern declaration. + +2003-06-15 Nathanael Nerode + + * config/gofast.h, config/interix.h, config/interix3.h, + config/libgloss.h, config/linux-aout.h, config/linux.h, + config/lynx-ng.h, config/lynx.h: GNU CC -> GCC. + * config/kaos.h: "GNU compiler" -> GCC. + * config/linux-aout.h, config/lynx.h: Clarify comment describing file. + + * config/ip2k/crt0.S, config/ip2k/ip2k-protos.h, + config/ip2k/ip2k.c, config/ip2k/ip2k.md, config/ip2k/libgcc.S: + GNU CC -> GCC. + + * config/svr3.h: Remove #if 0 code, misleading comments. + GNU CC -> GCC. + +2003-06-15 Zack Weinberg + + * vmsdbgout.c (vmsdbgout_finish): Rename parameter to + main_input_filename to avoid conflict with input_filename macro. + +2003-06-15 Neil Booth + + * config/mips/mips.h (asm_file_name, g_switch_set, + g_switch_value): Remove. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Remove + unnecessary extern declarations. + +2003-06-15 Neil Booth + + * config/frv/frv.h: Remove declaration of g_switch_value. + * config/m32r/m32r.h: Remove declaration of g_switch_value. + * config/m68hc11/m68hc11.c: Remove declaration of asm_file_name. + +2003-06-15 Neil Booth + + * opts.sh: Quote '+' in regex. + +2003-06-15 Andrew Pinski + + * config/rs6000/t-rs6000: Add dependence of cfglayout.h to rs6000.o. + * config/rs6000/rs6000.c: Include cfglayout.h. + * config/alpha/alpha.c: Likewise. + * config/ia64/ia64.c: Likewise. + * config/sparc/sparc.c: Likewise. + * config/sh/sh.c: Likewise. + +2003-06-15 Neil Booth + + * opts.sh: Quote '+' in regex. + +2003-06-15 Neil Booth + + * c-opts.c (lang_flags): Update for new spelling of flags. + (write_langs): Similarly. + * c.opt: Specify languages. + * opts.h: Remove languages. + * opts.sh: Recognise front-end defined languages. + * doc/sourcebuild.texi: Update. + +2003-06-15 Andreas Jaeger + + * alloc-pool.c: Convert to ISO C90 prototypes. + * alloc-pool.h: Likewise. + * alias.c: Likewise. + * attribs.c: Likewise. + * bb-reorder.c: Likewise. + * bitmap.h: Likewise. + * bitmap.c: Likewise. + * builtins.c: Likewise. + + * tree.h: Convert prototypes of attribs.c to ISO C90. + * basic-block.h: Convert prototypes of bb-reorder.c to ISO C90. + * rtl.h: Convert prototypes of alias.c and builtins.c to ISO C90. + * expr.h: Convert prototypes of builtins.c to ISO C90. + +2003-06-15 Roger Sayle + + * config/i386/i386.md (expsf2, expdf2, expxf2): New patterns to + implement exp, expf and expl built-ins as inline x87 intrinsics. + (UNSPEC_FSCALE, UNSPEC_FRNDINT, UNSPEC_F2XM1): New unspecs to + represent x87's fscale, frndint and f2xm1 insns respectively. + (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): New insn patterns + to encode x87's "fscale" instruction followed by a pop. + (*frndintxf2): New insn pattern for "frndint". + (*f2xm1xf2): New insn pattern for "f2xm1". + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT and + UNSPEC_F2XM1 like UNSPEC_{SIN,COS} and handle UNSPEC_FSCALE like + UNSPEC_FPATAN. + +2003-06-15 Richard Kenner + + * gencheck.c (main): Avoid generating duplicate macros. + + * Makefile.in (stagefeedback-start): Use $(SUBDIRS) instead of + knowing names of language subdirectories. + +2003-06-15 Neil Booth + + * c-pch.c (asm_file_name): Remove. + * common.opt: Add more switches. + * flags.h (g_switch_set): Boolify. + * opts.c (g_switch_value, g_switch_set, exit_after_options, + version_flag): Move from toplev.c. + (common_handle_option): Handle more switches from toplev.c. + * toplev.c (display_help, display_target_options, decode_d_option, + print_version): Make non-static, remove prototypes. + (aux_base_name, asm_file_name, aux_info_file_name): Constify. + (version_flag, g_switch_value, g_switch_set, exit_after_options): + Remove. + (independent_decode_option): Move some handlers to opts.c. + * toplev.h (aux_info_file_name, aux_base_name, asm_file_name, + exit_after_options, version_flag, display_help, display_target_options, + print_version, decode_d_option): New. + +2003-06-15 Kazu Hirata + + * config/alpha/alpha.md: Follow spelling conventions. + * config/arm/arm.c: Likewise. + * config/arm/arm.h: Likewise. + * config/arm/arm.md: Likewise. + * config/arm/crtn.asm: Likewise. + * config/m32r/m32r.c: Likewise. + * config/m32r/m32r.md: Likewise. + * config/rs6000/rs6000.c: Likewise. + +2003-06-15 Richard Henderson + + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call + insn_locators_initialize. + * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. + * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. + * config/sh/sh.c (sh_output_mi_thunk): Do it later. + +2003-06-15 Kazu Hirata + + * builtins.c (expand_builtin_expect_jump): Remove redundant + tests that are also in any_condjump_p(). + +2003-06-15 Kaveh R. Ghazi + + * libgcc2.c: Delete sysV68 L_trampoline section. + * config/m68k/mot3300-crt0.S: Delete file. + * config/m68k/mot3300Mcrt0.S: Likewise. + +2003-06-15 Nathanael Nerode + + * config/aoutos.h: Remove. + * config.gcc: Remove reference to aoutos.h. + * config/m68k/m68k-aout.h: Remove reference to aoutos.h. + +2003-06-14 Kazu Hirata + + * doc/install.texi: Follow spelling conventions. + * doc/tm.texi: Likewise. + * config/fp-bit.c: Likewise. + * config/arm/arm.c: Likewise. + * config/frv/frv.c: Likewise. + * config/ns32k/NOTES: Likewise. + * config/ns32k/STATUS: Likewise. + +2003-06-14 Roger Sayle + Zack Weinberg + + * rtl.h (STORE_FLAG_VALUE): Remove default definition from here. + * defaults.h (STORE_FLAG_VALUE): Move default definition to here. + * doc/tm.texi (STORE_FLAG_VALUE): Document the default value. + + * config/alpha/alpha.h (STORE_FLAG_VALUE): Remove definition. + * config/arc/arc.h (STORE_FLAG_VALUE): Likewise. + * config/arm/arm.h (STORE_FLAG_VALUE): Likewise. + * config/cris/cris.h (STORE_FLAG_VALUE): Likewise. + * config/i370/i370.h (STORE_FLAG_VALUE): Likewise. + * config/i386/i386.h (STORE_FLAG_VALUE): Likewise. + * config/i960/i960.h (STORE_FLAG_VALUE): Likewise. + * config/ia64/ia64.h (STORE_FLAG_VALUE): Likewise. + * config/ip2k/ip2k.h (STORE_FLAG_VALUE): Likewise. + * config/m32r/m32r.h (STORE_FLAG_VALUE): Likewise. + * config/mcore/mcore.h (STORE_FLAG_VALUE): Likewise. + * config/mips/mips.h (STORE_FLAG_VALUE): Likewise. + * config/mmix/mmix.h (STORE_FLAG_VALUE): Likewise. + * config/ns32k/ns32k.h (STORE_FLAG_VALUE): Likewise. + * config/pa/pa.h (STORE_FLAG_VALUE): Likewise. + * config/pdp11/pdp11.h (STORE_FLAG_VALUE): Likewise. + * config/sh/sh.h (STORE_FLAG_VALUE): Likewise. + * config/sparc/sparc.h (STORE_FLAG_VALUE): Likewise. + * config/v850/v850.h (STORE_FLAG_VALUE): Likewise. + * config/xtensa/xtensa.h (STORE_FLAG_VALUE): Likewise. + +2003-06-14 Nathan Sidwell + + * opts.sh (POSIXLY_CORRECT): Unset it. + + * tree.h (init_function_start): Remove filename and line paramters. + * function.c (init_function_start): Remove filename and line + parameters. Use DECL_SOURCE_LOCATION. + * c-decl.c (store_parm_decls): Adjust init_function_start call. + (c_expand_body_1): Likewise. + * coverage.c (create_coverage): Likewise. + * objc/objc-act.c (build_tmp_function_decl): Set line number to + zero. + (hack_method_prototype): Adjust init_function_start call. + +2003-06-14 Richard Earnshaw + + PR target/3724 + * arm/linux-elf.h (PROFILE_HOOK): Define. + +2003-06-14 Richard Earnshaw + + PR target/11183 + * arm.h (CANNOT_CHANGE_MODE_CLASS): Define. + +2003-06-14 Roger Sayle + + * opts.sh: Work around a mysterious feature in cygwin's gawk + where specifying the input files explicitly has a different + behavior to piping them via stdin. + +2003-06-14 Neil Booth + + * doc/sourcebuild.texi: Update. + +2003-06-14 Richard Earnshaw + + PR target/11183 + * arm.c (output_move_double): Pass SImode to adjust_address. + +2003-06-14 Neil Booth + + * Makefile.in: Update to use common.opt and lang_opt_files. + (c-options.c, c-options.h): Remove. + (options.c, options.h): Add. + * c-opts.c: Include options.h not c-options.h. + * common.opt: New file. + * configure, configure.in: Add lang_opt_files. + * opts.c: Include flags.h and diagnostic.h. + (common_handle_option): New. + (handle_option): Update to recognize common options and all + language-dependent options. + * opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New. + (struct cl_option): Make flags of type int. + * opts.h: Flag option with front ends to which it applies. + Handle duplicate options. + * toplev.c (filename): Remove. + (independent_decode_option): Don't handle filenames and -quiet. + (process_options, do_compile): Update. + +2003-06-14 Nick Clifton + + * doc/install.texi (Specific): Add description of different + ARM supported file format targets. + +Sat Jun 14 11:12:04 CEST 2003 Jan Hubicka + + * reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators + inside delay slots. + +2003-06-13 Matt Kraai + + * unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE. + * unwind-pe.h (size_of_encoded_value): Do not define if + NO_SIZE_OF_ENCODED_VALUE is defined. + +2003-06-13 Roger Sayle + + * expr.c (expand_expr ): Handle the case of + expanding a complex constant into a CONCAT target. + +2003-06-13 Zack Weinberg + + * config/svr3.h (ASM_FILE_START): Don't use ASM_FILE_START_1. + (ASM_FILE_START_1): Delete. + * config/i386/att.h, config/i386/sco5.h, + config/i386/sysv3.h + (ASM_FILE_START_1): Delete. + +2003-06-13 Kelley Cook + + * config/i386/bsd.h: Remove ASM_FILE_START. + * config/i386/djgpp.h: Likewise. + * config/i386/gas.h (ASM_FILE_START): Output .file before .intel_syntax. + + * config/i386/djgpp.h: Move included unix.h, bsd.h, gas.h to ... + * config.gcc (i[34567]86-pc-msdosdjgpp): ... here. + +2003-06-13 Vladimir Makarov + + PR bootstrap/10835 + * haifa-sched.c (max_lookahead_tries, + cached_first_cycle_multipass_dfa_lookahead, + cached_issue_rate): New variables. + (max_issue): Check the number of tries. + (choose_ready): Calculate max_lookahead_tries. + (sched_init): Check cached_issue_rate. + +2003-06-13 Richard Henderson + + * cfgbuild.c (make_edges): Set ABNORMAL with SIBCALL. + * cfgrtl.c (purge_dead_edges): Expect it too. + +2003-06-13 Jim Wilson + Eric Botcazou + + PR bootstrap/10983 + * combine.c (make_extraction): Use gen_lowpart_for_combine + when extracting from a REG and not in the destination of a SET. + +2003-06-13 Doug Evans + + * tsystem.h (abort): Declare in inhibit_libc case to remove build + warnings for addvsi3, et.al. + +2003-06-13 Aldy Hernandez + + * c-common.c (handle_mode_attribute): Use VECTOR_MODE_P macro. + + * simplify-rtx.c (simplify_subreg): Same. + + * emit-rtl.c (gen_lowpart_common): Same. + +2003-06-13 Kazu Hirata + + * builtins.c: Fix comment typos. + * fold-const.c: Likewise. + +2003-06-13 Doug Evans + Kazuhiro Inaoka + + * config/m32r/m32r-protos.h (m32r_pass_by_reference): Declare. + * config/m32r/m32r.c (m32r_pass_by_reference): New fn. + (m32r_va_arg): Use it. + * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Ditto. + (RETURN_IN_MEMORY): Ditto. + +2003-06-13 Nathanael Nerode + + * c-typeck.c: Remove #if 0 clauses. + + PR other/1494 + * config/alpha/openbsd.h, config/i386/openbsd.h, + config/m68k/openbsd.h, config/sparc/openbsd.h: Remove + residual reference to EGCS. + +2003-06-13 Richard Earnshaw + + * arm.c (output_call_mem): If the address references the link-register + use an instruction sequence that avoids early-clobbering IP. + (eliminate_lr2ip): Delete. + +2003-06-13 Kaveh R. Ghazi + + * c-format.c (format_types_orig): Disallow '*' width/precision in + asm_fprintf format checks. + +2003-06-13 Ulrich Weigand + + * config/s390/s390.c (s390_va_arg): Fix alignment when retrieving + non-integral types from integer register save area slots. + +2003-06-13 Nathanael Nerode + + * config/i386/svr3dbx.h: GNU CC -> GCC; Intel 385 -> Intel 386. + +2003-06-13 Florian Weimer + + * doc/invoke.texi (SPARC Options): Document ``-mimpure-text''. + +2003-06-13 Kaz Kojima + + * config/sh/linux.h (TARGET_ASM_FILE_END): Set TARGET_ASM_FILE_END + to file_end_indicate_exec_stack. + +2003-06-12 Richard Henderson + + PR target/11089 + * config/i386/i386.md (sse_movaps): Use an expander to force + one operand to be a register. + (sse_movups): Likewise. + +2003-06-13 Doug Evans + + Remove some build warnings. + * config/m32r/initfini.c (__CTOR_LIST__,__DTOR_LIST__): Attribute used. + (__do_global_ctors,__do_global_dtors): Ditto. + +2003-06-12 Richard Henderson + + PR middle-end/10557 + * rtlanal.c (subreg_offset_representable_p): Relax subreg check. + +2003-06-13 Kazu Hirata + + * config/m32r/m32r.md: Fix a comment typo. + +2003-06-13 Eric Botcazou + Christian Ehrhardt + + PR target/10142 + * config/sparc/sparc.c (function_arg_record_value_parms): Add + new 'stack' field. + (function_arg_record_value_1): Set 'stack' to 1 if we run out of + integer slots for an integer field. + (function_arg_record_value_3): Shift vector index. + (function_arg_record_value_2): Likewise. + (function_arg_record_value): Initialize 'stack' to 0. + Set 'stack' to 1 if we run out of integer slots for an integer field. + Generate (parallel [(expr_list (nil) ...) ...]) if 'stack' is set to 1. + +2003-06-13 Eric Botcazou + + PR optimization/10955 + * unroll.c (unroll_loop): Fix off-by-one bug. + +2003-06-12 Aldy Hernandez + + * config/rs6000/rs6000.c (function_arg): Remove typo. + +2003-06-12 Richard Henderson + + * config/i386/i386.c (legitimate_constant_p): Handle UNSPEC_NTPOFF + and UNSPEC_DTPOFF. + +2003-06-12 Richard Henderson + + PR middle-end/10475 + * expmed.c (emit_store_flag): Use simplify_gen_subreg directly + for extracting sub-words. + +2003-06-12 Richard Henderson + + PR target/7594 + * config/m68k/m68k.md (zero_extendhisi2): Use gen_lowpart_SUBREG. + (zero_extendqihi2, zero_extendqisi2): Likewise. + +2003-06-12 Aldy Hernandez + + * config/rs6000/rs6000.c (function_arg): Always split vectors for + e500 if it's a stdarg function. + (function_arg_advance): Advance 2 registers for vectors in a + stdarg function. + (init_cumulative_args): Initialize stdarg. + (rs6000_spe_function_arg): New. + + * config/rs6000/rs6000.h (rs6000_args): Add stdarg. + +2003-06-12 Aldy Hernandez + + * config/rs6000/rs6000.h (MODES_TIEABLE_P): Add SPE vectors. + +2003-06-12 Roger Sayle + + PR middle-end/168 + * fold-const.c (tree_expr_nonnegative_p): Handle addition + and multiplication of zero extensions, floating point division, + and integer<->fp, fp<->fp and zero extension conversions. + The built-in ceil and floor functions preserve signedness. + +2003-06-12 Kazu Hirata + + * ChangeLog: Follow spelling conventions. + * ChangeLog.2: Likewise. + * c-decl.c: Likewise. + * cfgloop.h: Likewise. + * cgraph.c: Likewise. + * coverage.c: Likewise. + * cppcharset.c: Likewise. + * cpphash.h: Likewise. + * cpplex.c: Likewise. + * cpplib.c: Likewise. + * dbxout.c: Likewise. + * df.c: Likewise. + * dwarf2out.c: Likewise. + * dwarfout.c: Likewise. + * emit-rtl.c: Likewise. + * explow.c: Likewise. + * gcov-io.c: Likewise. + * gcov-io.h: Likewise. + * gcov.c: Likewise. + * gengtype.c: Likewise. + * ggc.h: Likewise. + * opts.c: Likewise. + * real.c: Likewise. + * reload.c: Likewise. + * stmt.c: Likewise. + +2003-06-12 Janis Johnson + + * doc/install.texi (m32r-*-elf): Change company to Renesas. + +Thu Jun 12 20:00:55 CEST 2003 Jan Hubicka + + * basic-block.h (flow_delete_block_noexpunge): Kill. + * cfgrtl.c (flow_delete_block_noexpunge): Merge to + rtl_delete_block. + +2003-06-10 Richard Henderson + + PR inline-asm/4823 + * reg-stack.c (any_malformed_asm): New. + (check_asm_stack_operands): Set it. + (convert_regs_1): Check it before aborting. + +2003-06-12 Aldy Hernandez + + * config/rs6000/spe.md: Change all clobbers of the accumulator to sets. + +2003-06-12 Jakub Jelinek + + * c-opts.c (complain_wrong_lang): Add on argument. + Print no- switch if on is false. + (c_common_decode_option): Adjust caller. + +2003-06-12 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologue): Use LA instead of AR + to initialize GOT register. + +2003-06-12 Roger Sayle + + * fold-const.c (tree_expr_nonnegative_p): Add support for + floating point constants, addition and multiplication. + +2003-06-12 J"orn Rennecke + + * sh.md (adddi3_compact, subdi3_compact): Add earlyclobber + constraint modifier for operand 0. + +2003-06-12 Hans-Peter Nilsson + + Don't warn on dollars in builtin macro definitions, + e.g. __REGISTER_PREFIX__. + * cpphash.h (struct cpp_reader): Move member warn_dollars... + * cpplib.h (struct cpp_options): ...to here. Change type to + unsigned char. + * cppinit.c (cpp_create_reader): Set it to 1 here. + (post_options): Don't set it here. + * c-opts.c (c_common_init_options): Reset it to 0 here. + (finish_options): Set it here. + * cpplex.c (forms_identifier_p): Tweak for new location of + warn_dollars. + + * configure.in (assembler dwarf2 debug_line support): Define insn + for cris-*-* and mmix-*-*. + * configure: Regenerate. + +2003-06-11 Uwe Stieber + + * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*, + powerpcle-*-kaos*, strongarm-*-kaos*): New targets. + (sh-*-elf*): Add sh*-*-kaos* support. + * config/kaos.h, config/arm/kaos-strongarm.h, config/arm/kaos-arm.h, + config/i386/kaos-i386.h, config/rs6000/kaos-ppc.h, + config/sh/kaos-sh.h: New files. + +2003-06-12 Kazu Hirata + + * gcse.c (fis_get_condition): Make it a global function. + * reload1.c (reload_cse_move2add): Detect implicit sets. + * rtl.h: Add a prototype for fis_get_condition. + +2003-06-11 Richard Henderson + + * stmt.c (expand_asm_operands): Don't warn for memories with + queued addresses. + +2003-06-11 Kaz Kojima + + * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Rewrite without + brackets. + +2003-06-11 Neil Booth + + * hooks.c (hook_int_size_t_constcharptr_int_0): New. + * hooks.h (hook_int_size_t_constcharptr_int_0): New. + * langhooks-def.h (lhd_decode_option, LANG_HOOKS_DECODE_OPTION): Die. + (LANG_HOOKS_HANDLE_OPTION, LANG_HOOKS_INITIALIZER): Update. + * langhooks.c (lhd_decode_option): Remove. + * langhooks.h (struct lang_hooks): Remove decode_option. + * opts.c (handle_option): No longer use decode_option. + +2003-06-11 Zdenek Dvorak + + * cfgloopanal.c (variable_initial_value): Update the set of altered + registers correctly. + +2003-06-11 Roger Sayle + Kaveh R. Ghazi + + * config/d30v/d30v.h: Delete reference to ASM_FINAL_SPEC. + * config/i386/netbsd-elf.h: Likewise. + * config/m32r/m32r.h: Likewise. + * config/mn10300/mn10300.h: Likewise. + * config/stormy16/stormy16.h: Likewise. + * config/v850/v850.h: Likewise. + * config/vax/netbsd-elf.h: Likewise. + * config/xtensa/elf.h: Likewise. + * config/xtensa/linux.h: Likewise. + +2003-06-11 Rainer Orth + + * config/mips/iris5gas.h (MDEBUG_ASM_SPEC): Override to match + DWARF 2 default. + + * config/mips/dbxmdebug.h: New file. + * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it with + gas and --with-stabs. + +2003-06-11 Ulrich Weigand + + * expr.c (can_move_by_pieces): align argument may be unused. + +2003-06-11 J"orn Rennecke + + * expr.c (convert_move): Handle moves between two CONCATs. + +2003-06-11 Kazu Hirata + + * config/h8300/h8300.h (RETURN_IN_MEMORY): Accept DImode if + !TARGET_H8300. + +2003-06-11 Kazu Hirata + + * config/h8300/h8300.c (final_prescan_insn): Don't dump rtl. + * config/h8300/h8300.h (MASK_RTL_DUMP): Remove. + (TARGET_RTL_DUMP): Likewise. + (TARGET_SWITHCES): Remove -mrtl-dump. + +2003-06-10 Richard Henderson + + * optabs.c (gen_cond_trap): Fix prepare_operand typo. + +2003-06-10 Richard Henderson + + * config/ia64/ia64.md (call_gp): Fix memory mode. + +2003-06-10 James E Wilson + + PR target/8812 + * reload1.c (choose_reload_regs): For equiv reg, add loop over all + hard regs for reload_reg_used_at_all and reg_class_contents checks. + +2003-06-10 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Remove support for + operand character 'b'. + Add the AND case to operand character 'c'. + * config/h8300/h8300.md (two anonymous patterns): Replace + operand character 'b' with 'c'. + +2003-06-10 Kazu Hirata + + * config/h8300/h8300.c (print_operand): Remove support for + operand character 'u'. + +2003-06-10 Nathanael Nerode + + * configure.in: Fix typo. + * configure: Regenerate. + +2003-06-10 Loren James Rittle + + * config/alpha/alpha.c (unicosmk_file_end): Add conditional + compilation guard. + +2003-06-10 J"orn Rennecke + + * sh-protos.h (function_symbol): Declare. + * sh.c (expand_block_move, expand_ashiftrt): Use it. + (sh_expand_prologue, sh_expand_epilogue): Likewise. + (sh_initialize_trampoline): Likewise. + (function_symbol): New function. + * sh.md (udivsi3, divsi3, mulsi3, ic_invalidate_line): Use it. + (initialize_trampoline, call, call_pop, call_value, sibcall): Likewise. + (call_value_pop, shcompact_return_tramp): Likewise. + + * sh.h (OVERRIDE_OPTIONS): Don't suppress --profile-arc-flag. + + * sh.md (GOTaddr2picreg): Use gen_lowpart to get lowpart of + target register. + +2003-06-10 DJ Delorie + + * doc/md.texi (Machine Constraints): Document stormy's Z + constraint. + +2003-06-10 Geoffrey Keating + + * except.c (call_site_base): Mark with GTY. + +2003-06-10 Richard Earnshaw + + * arm-proto.h: Convert to ISO C90 prototypes. + * arm.c: Likewise. + +2003-06-10 J"orn Rennecke + + * sh.c (sh_output_mi_thunk): Call insn_locators_initialize. + +2003-06-10 Steve Ellcey + + * calls.c (expand_call): Convert structure_value_addr to Pmode if + necessary. + +2003-06-10 Andrew Haley + + * langhooks-def.h (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New. + (LANG_HOOKS_DECLS): Add LANG_HOOKS_DECL_OK_FOR_SIBCALL. + (lhd_decl_ok_for_sibcall): New. + * langhooks.c (lhd_decl_ok_for_sibcall): New. + * langhooks.h (lang_hooks_for_decls.ok_for_sibcall): New field. + * calls.c (expand_call): Check lang_hook before generating a + sibcall. + +2003-06-10 DJ Delorie + + * config/stormy16/stormy16.c (xstormy16_extra_constraint_p): Add Z, + which matches (const_int 0) for addhi3. + * config/stormy16/stormy16.md: Document known constraints. + (addhi3): Handle adding zero. + +2003-06-10 Kazuhiro Inaoka + + * config/m32r/m32r.h (HARD_REGNO_RENAME_OK): New. + * config/m32r/m32r.c (m32r_hard_regno_rename_ok): New. + * config/m32r/m32r-protos.h: Prototype it. + +2003-06-10 Janis Johnson + + * config/rs6000/eabi.h (TARGET_OS_CPP_BUILTINS): Define builtins + common to rs6000 sysv targets. + * config/rs6000/eabisim.h (TARGET_OS_CPP_BUILTINS): Ditto. + * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Ditto. + +2003-06-10 Nick Clifton + + * config.gcc: Add arm-wince-pe target. + * config/arm/pe.h (MULTILIB_DEFAULTS): Define. + Add comment about default apcs26 support. + * config/arm/t-pe (MULTILIB_OPTIONS): Add an -mapcs-32 + multilib. + (MULTILIB_DIRNAMES): Add 'apcs32'. + * config/arm/t-wince-pe: New makefile fragment. + * config/arm/wince-pe.h: New file. Overrides a few definitions + in arm/pe.h + +2003-06-10 Roger Sayle + + * builtins.c (fold_builtin): Optimize cos(-x) as cos(x). + * fold-const.c (fold ): Convert -f(x) into f(-x) + when x is easily negated and f is sin, tan or atan. + (fold ): Optimize tan(x)*cos(x) and cos(x)*tan(x) as + sin(x) with flag_unsafe_math_optimizations. + (fold ): With flag_unsafe_math_optimizations fold + sin(x)/cos(x) as tan(x) and cos(x)/sin(x) as 1.0/tan(x). + +2003-06-10 Roger Sayle + + * fold-const.c (fold ): Don't fold x == x only if x + is a floating point type *and* we currently honor NaNs. + (fold ): Likewise. + +2003-06-10 Mark Mitchell + + PR c++/11131 + * tree-inline.c (inlinable_function_p): Call the language-specific + hook early. + +2003-06-09 David Taylor + + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_va_arg): Skip over + the f_res field. + +2003-06-09 Nathanael Nerode + + * configure.in: Remove references to host_truncate_target. + * configure: Regenerate. + * config.gcc: Remove references to truncate_target, + host_truncate_target. + + * Makefile.in, configure.in, config/m68hc11/t-m68hc11-gas: + Replace "build_canonical" with build, "host_canonical" with host. + * configure.in: Use GCC_TOPLEV_SUBDIRS. + * aclocal.m4: Include ../config/acx.m4. + * configure: Regenerate. + +2003-06-09 David Taylor + + * config/rs6000/rs6000.c (rs6000_build_va_list): Give the two + bytes of padding in the __va_list_tag structure a name (reserved). + +2003-06-09 Jason Merrill + + * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR. + +2003-06-09 Osku Salerma + + * c-format.c (check_format_string, get_constant): New. + (handle_format_attribute, handle_format_arg_attribute, + decode_format_attr): Change to use above functions. + +2003-06-09 Richard Henderson + + * stmt.c (expand_asm_operands): Re-word warning. + +2003-06-08 Andrew Pinski + + PR target/8787 + * config/i386/djgpp.h (ASM_FILE_START): emit `.intel_syntax' + if -masm=intel. + +2003-06-09 James E Wilson + + * config/frv/cmovc.c, config/frv/cmovh.c, config/frv/cmovw.c, + config/frv/frvbegin.c, config/frv/frvend.c, config/frv/lib1funcs.asm: + Add libgcc exception. + +2003-06-09 David Edelsohn + Ayal Zaks + + * config/rs6000/rs6000.md (define_attr "type"): Add insert_word. + (insvsi*): Add insert_word attribute. + * config/rs6000/rs6000.c (rs6000_variable_issue): Add TYPE_INSERT_WORD. + * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, + power4.md,rios1.md,rios2.md,rs64.md}: Add insert_word. + +2003-06-09 Kazu Hirata + + * fold-const.c (fold): Fix a comment typo. + +2003-06-09 Nathan Sidwell + + * tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is + removed. + +2003-06-09 J"orn Rennecke + + * sh.c (gen_block_redirect): Use locators. + +2003-06-09 Richard Earnshaw + + * arm.h (THUMB_PRINT_OPERAND_ADDRESS): Use %wd in format and remove + cast to int. + +2003-06-09 Richard Sandiford + + * configure.in: Assume gas 2.14 and above can handle MIPS relocation + operators. + * configure: Regenerated. + +2003-06-09 Richard Sandiford + Alexandre Oliva + + * config/mips/mips.h (GLOBAL_POINTER_REGNUM): New macro. + (PIC_OFFSET_TABLE_REGNUM): Look at pic_offset_table_rtx after reload. + (STARTING_FRAME_OFFSET): Don't allocate a cprestore slot for + n32/64 PIC. + (MUST_SAVE_REGISTERS): Delete. + * config/mips/mips.c (mips_frame_info): Remove extra_size field. + (machine_function): Add global_pointer field. + (mips_classify_constant): Check for (const $gp) using pointer equality + with pic_offset_table_rtx. + (mips_classify_constant): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO. + (mips_restore_gp): Use current_function_outgoing_args_size. + (print_operand): Use PIC_OFFSET_TABLE_REGNUM instead of + GP_REG_FIRST + 28. Handle relocation strings that have + more than one '('. + (mips_reloc_string): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO. + (mips_global_pointer): New function. + (mips_save_reg_p): New function, mostly split out from... + (compute_frame_size): ...here. Remove handling of extra_size. + Reclaim args_size if no variables depend on it. Don't treat gp + as a special case: handle it in the main GPR loop. + (mips_initial_elimination_offset): Fix comment. + (save_restore_insns): Save every register in the GPR mask, + removing distinction between mask and real_mask. + (mips_output_function_prologue): Update .frame psuedo-op after + the removal of extra_size. Move the SVR4 PIC stack allocation + and cprestore instructions to mips_expand_prologue. + (mips_gp_insn): New function. + (mips_expand_prologue): Set REGNO (pic_offset_table_rtx) to + the chosen global pointer. Handle SVR4 PIC stack allocation + in the same way as other ABIs. Adjust varargs code accordingly. + Emit a cprestore insn after allocating the stack. Use mips_gp_insn + to emit the loadgp sequence. Follow it with a loadgp_blockage + if not using explicit relocs. + (mips_output_function_epilogue): Reinstate the default gp register. + (mips16_gp_pseudo_reg): Use pic_offset_table_rtx. + (mips16_optimize_gp): Likewise. + * config/mips/mips.md (UNSPEC_LOADGP): Remove. + (UNSPEC_SETJMP, UNSPEC_LONGJMP): Remove. + (UNSPEC_CPRESTORE, RELOC_LOADGP_HI, RELOC_LOADGP_LO): New. + (loadgp): Remove. + (loadgp_blockage, cprestore): New instructions. + (builtin_setjmp_setup): Implement using emit_move_insn. Use + pic_offset_table_rtx. + (builtin_setjmp_setup_32, builtin_setjmp_setup_64): Remove. + (builtin_longjmp): Use gen_raw_REG to force use of $28. + +2003-06-09 Richard Sandiford + + * config/mips/mips-protos.h (mips_output_division): Declare. + * config/mips/mips.h (MASK_CHECK_RANGE_DIV): Remove. + (MASK_BRANCHLIKELY): Use MASK_CHECK_RANGE_DIV's old number. + (TARGET_NO_CHECK_ZERO_DIV, TARGET_CHECK_RANGE_DIV): Remove. + (TARGET_CHECK_ZERO_DIV): New macro. + (TARGET_SWITCHES): Remove -mcheck-range-div & -mno-check-range-div. + * config/mips/mips.c (mips_output_division): New function. + * config/mips/mips.md (length): Take TARGET_CHECK_ZERO_DIV into + account when calculating the default length of a division. + (divmodsi4, divmoddi4, udivmodsi4, udivmoddi4): Turn into define_insns. + Enable regardless of optimization level. Use mips_output_division. + (divmodsi4_internal, divmoddi4_internal, udivmodsi4_internal, + udivmoddi4_internal, div_trap, div_trap_normal, div_trap_mips16, + divsi3, divsi3_internal, divdi3, divdi3_internal, modsi3, + modsi3_internal, moddi3, moddi3_internal, udivsi3, udivsi3_internal, + udivdi3, udivdi3_internal, umodsi3, umodsi3_internal, umoddi3, + umoddi3_internal): Remove. + +2003-06-09 Richard Sandiford + + * config/mips/mips.c (mips_reg_names): Change hilo entry to "". + (mips_sw_reg_names): Likewise. + (mips_regno_to_class): Change hilo entry to NO_REGS. + (hilo_operand): Use MD_REG_P. + (extend_operator): New predicate. + (override_options): Remove 'a' constraint. + (mips_secondary_reload_class): Remove hilo handling. Also remove + handling of (plus sp reg) reloads for mips16. + (mips_register_move_cost): Remove hilo handling. + * config/mips/mips.h (FIXED_REGISTERS): Make hilo entry fixed. + (MD_REG_LAST): Remove hilo from range. + (HILO_REGNUM): Delete. + (reg_class): Remove HILO_REG and HILO_AND_GR_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. + (PREDICATE_CODES): Add entry for extend_operator. + (DEBUG_REGISTER_NAMES): Change hilo entry to "". + * config/mips/mips.md: Remove hilo clobbers wherever they occur. + Remove constraints from multiplication define_expands. Remove + clobbers from "decorative" define_expand patterns. + (UNSPEC_HILO_DELAY): Delete. + (*mul_acc_si, *mul_sub_si): Add early-clobber to operand 6. + (mulsidi3, umulsidi3): Change pattern to match the TARGET_64BIT case. + Adjust C code to just emit insns for !TARGET_64BIT. + (mulsidi3_internal): Rename to mulsidi3_32bit. + (mulsidi3_64bit): Use a "d" constraint for the destination. + Use extend_operator so that the pattern can handle umulsidi3 as well. + Split the instruction after reload. + (*mulsidi3_64bit_parts): New pattern, generated by mulsidi3_64bit. + (umulsidi3_internal): Rename to umulsidi3_32bit. + (umulsidi3_64bit): Remove. + (*smsac_di, *umsac_di): Line-wrap fixes. + (udivsi3_internal): Don't allow operand 2 to be constant. + (udivdi3_internal, umodsi3_internal, umoddi3_internal): Likewise. + (movdi_internal2, movsi_internal): Remove hilo alternatives. + (reload_in[sd]i, reload_out[sd]i, hilo_delay): Remove. + +2003-06-09 Richard Sandiford + + PR target/10913 + * config/mips/mips.h (TARGET_FILE_SWITCHING, NO_DBX_FUNCTION_END, + PUT_SDB_SCL, PUT_SDB_INT_VAL, PUT_SDB_VAL, PUT_SDB_ENDEF, + PUT_SDB_TYPE, PUT_SDB_SIZE, PUT_SDB_DIM, PUT_SDB_START_DIM, + PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM, PUT_SDB_TAG, PUT_SDB_SRC_FILE, + SDB_GENERATE_FAKE, TEXT_SECTION): Delete. + (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF, PUT_SDB_BLOCK_START, + PUT_SDB_BLOCK_END, PUT_SDB_FUNCTION_END): Replace use of + asm_out_text_file with asm_out_file. + * config/mips/iris5gas.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Likewise. + * config/mips/elf.h (TEXT_SECTION): Undefine. + * config/mips/elf64.h (TEXT_SECION): Undefine. + * config/mips/openbsd.h (TEXT_SECION): Undefine. + * config/mips/mips.c (asm_out_text_file, asm_out_data_file): Delete. + (override_options): Disable small-data optimizations unless using + gas or explicit relocations. + (mips_asm_file_start, mips_asm_file_end, mips_output_function_epilogue, + iris6_asm_named_section, iris6_asm_file_start): Remove code for + handling TARGET_FILE_SWITCHING. + (copy_file_data): Move into TARGET_IRIX6 block. + +2003-06-08 Richard Henderson + + * expr.h (EXPAND_MEMORY): New. + * expr.c (expand_expr): Check it. + * stmt.c (expand_asm_operands): Provide it when the constraint + requires a memory. Warn for memory input constraints without + a memory operand. + +2003-06-08 Kaveh R. Ghazi + + * varasm.c: Don't include c-tree.h. + +2003-06-08 Andreas Jaeger + + * predict.h: Convert to ISO C90 prototypes. + * predict.c: Likewise. + * tree-dump.h: Likewise. + * tree-dump.c: Likewise. + * diagnostic.h: Likewise. + * diagnostic.c: Likewise. + * combine.c: Likewise. + + * rtl.h: Convert prototypes of combine.c to ISO C90. + +Sun Jun 8 21:27:41 CEST 2003 Jan Hubicka + + * cfglayout.c (insn_scope): New static function + (block_locators_*, line_locators*, file_locators*): New static varrays. + (scope_to_insns_initialize): Use them. + (insn_line, insn_file): New functions. + (scope_to_insns_finalize): Use insn_scope. + (prologue_locator, epilogue_locator): New global variables. + * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw, + make_call_insn_raw, emit_copy_of_insn_after): Use locators. + (emit_insn_after_scope, emit_insn_before_scope + emit_jump_insn_after_scope, emit_jump_insn_before_scope + emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... + (emit_insn_after_setloc, emit_insn_before_setloc + emit_jump_insn_after_setloc, emit_jump_insn_before_setloc + emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; + use locators. + * final.c (notice_source_line): Use locators. + (final_start_function): Set initial source file and line. + (final_scan_insn): Use locators. + * ifcvt.c (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_process_if_block, find_cond_trap): Likewise. + * integrate.c (copy_insn_list): Likewise. + * jump.c (duplicate_loop_exit_test): LIkewise. + * print-rtl.c (print_rtx): Print locators. + * recog.c (peephole2_optimize): Likewise. + * rtl.h (INSN_SCOPE): Remove. + (emit_insn_after_scope, emit_insn_before_scope + emit_jump_insn_after_scope, emit_jump_insn_before_scope + emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... + (emit_insn_after_setloc, emit_insn_before_setloc + emit_jump_insn_after_setloc, emit_jump_insn_before_setloc + emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; + (insn_file, insn_line, prologue_locator, epilogue_locator): Declare. + * unroll.c (copy_loop_body): Use locators. + * function.c (set_insn_locators): New function. + (thread_prologue_and_epilogue_insns): Set the locators accordingly. + +2003-06-08 Kazu Hirata + + * config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64. + * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf + _fixsfdi _fixunssfdi. + (LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2, + popcounthi2. + (TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI. + * config/h8300/clzhi2.c: New. + * config/h8300/ctzhi2.c: Likewise. + * config/h8300/parityhi2.c: Likewise. + * config/h8300/popcounthi2.c: Likewise. + +Sun Jun 8 15:52:17 CEST 2003 Jan Hubicka + + * i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates. + * i386.c (k8_avoid_jump_misspredicts): Fix debug output. + + * cfg.c (verify_flow_info): Move IL independent checks from cfgrtl here. + (dump_bb): New based on old dump_bb in cfgrtl.c + (debug_bb, debug_bb_n): Move the functions from cfgrtl.c here. + * cfghooks.h (cfgh_verify_flow_info): Return status. + * cfglayout.c (cfg_layout_finalize): Verify CFG correctness. + * cfgrtl.c (debug_bb, debug_bb_n): Move to cfg.c + (dump_bb): Remove generic parts. + (rtl_verify_flow_info_1): Break out from rtl_verify_flow_info. + (rtl_verify_flow_info): Only check things dependeing on linearized RTL. + +2003-06-08 Neil Booth + + * Makefile.in: Rename options.c and options.h to c-options.c and + c-options.h. + (OBJS): Remove options.o. + * c-opts.c: Don'tInclude c-options.h instead of options.h. + * opts.c: Don't include options.h. + (find_opt): Can't use enum opt_code or N_OPTS. + * opts.h (struct cl_option, cl_options, cl_options_count): Move from... + * opts.sh: ... here. + +2003-06-07 Eric Botcazou + Ulrich Weigand + + PR pch/9830 + * ggc-common.c (HAVE_MMAP_FILE): Include sys/types.h + if HAVE_MINCORE is defined. + (MAP_FAILED): Define if not defined. + (gt_pch_save): Test against MAP_FAILED. + (gt_pch_restore): If HAVE_MINCORE, use MAP_FIXED to force + the mapping address to the preferred base after checking it + is possible to do so. Test against MAP_FAILED. + * configure.in: Test for the presence of mincore in libc. + * config.in: Regenerate. + * configure: Regenerate. + +2003-06-07 Richard Henderson + + * config/alpha/alpha.c (alpha_setup_incoming_varargs): Fix + conditional compilation guard. + +2003-06-08 Kazu Hirata + + * optabs.c (expand_abs): Set result_unsignedp to 1 if + flag_trav is zero. + +2003-06-07 Richard Henderson + + * c-cppbuiltin.c (c_cpp_builtins): Define __EXCEPTIONS for C also. + +2003-06-07 Richard Henderson + + * basic-block.h (EDGE_SIBCALL): New. + (EDGE_ALL_FLAGS): Update. + * cfg.c (dump_edge_info): Add sibcall name. + * cfgbuild.c (make_edges): Use EDGE_SIBCALL. + * cfgrtl.c (purge_dead_edges): Handle sibcalls. + +2003-06-07 Andreas Jaeger + + * mklibgcc.in (lib2funcs): Remove _exit. + * libgcc2.c: Remove L_exit. + * gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT. + + * system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY. + + * doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY. + + * ggc.h: Convert to ISO C90 prototypes. + * ggc-none.c: Likewise. + * ggc-common.c: Likewise. + * ggc-page.c: Likewise. + * ggc-simple.c: Likewise. + + * crtstuff.c: Remove undefined usage of INIT_SECTION_PREAMBLE. + + * system.h: Poison INIT_SECTION_PREAMBLE. + +2003-06-07 Zack Weinberg + + * config.gcc (with_cpu handling): Translate sparc64 in + $machine to --with-cpu=v9. + * config/alpha/alpha.c + (TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition. + (alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK. + + * target.h: New hook asm_out.file_end. + * target.h: Update to match. New hook macro TARGET_ASM_FILE_END. + * toplev.c (compile_file): Use targetm.asm_out.file_end. + * system.h: Poison ASM_FILE_END. + * varasm.c (file_end_indicate_exec_stack): New. + * output.h: Prototype it. + * doc/tm.texi: Document TARGET_ASM_FILE_END and + file_end_indicate_exec_stack. Delete references to attasm.h. + + * config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end. + (ASM_FILE_END): Delete; move code... + * config/darwin.c (darwin_file_end): Here; new function. + * config/darwin-protos.h: Prototype it. + * config/alpha/alpha.c (unicosmk_asm_file_end): Make static, + rename unicosmk_file_end. + * config/arm/aof.h (ASM_FILE_END): Delete; move code... + * config/arm/arm.c (aof_file_end): ... here; new static function. + Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER. + Make aof_dump_imports and aof_dump_pic_table static. + * config/avr/avr.c (asm_file_end): Rename avr_file_end, make static. + Set TARGET_ASM_FILE_END to avr_file_end. + * config/c4x/c4x.c (c4x_file_end): Make static. Take no arguments. + Set TARGET_ASM_FILE_END to c4x_file_end. + * config/h8300/h8300.c (asm_file_end): Rename h8300_file_end, + make static. Take no arguments. Set TARGET_ASM_FILE_END to + h8300_file_end. + * config/i370/i370.h (ASM_FILE_END): Delete; move code... + * config/i370/i370.c (i370_file_end): ... here; new static function. + Set TARGET_ASM_FILE_END to i370_file_end. + * config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end. + Take no arguments. Call file_end_indicate_exec_stack if + NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END. + * config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END. + Define NEED_INDICATE_EXEC_STACK to 0. + * config/i386/linux.h, config/i386/linux64.h: Redefine + NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END. + * config/i386/winnt.c (i386_pe_asm_file_end): Rename to + i386_pe_file_end. Take no arguments. Use ix86_file_end. + * config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to + ia64_hpux_file_end, make static. Take no arguments. + * config/ip2k/ip2k.c (asm_file_start, asm_file_end, + commands_in_prologues, commands_in_epilogues): Delete. + (function_epilogue): Update to match. + * config/mips/mips.c (mips_asm_file_end): Rename mips_file_end, + make static. Take no arguments. + (iris6_asm_file_end): Rename iris6_file_end, make static, use + mips_file_end, take no arguments. + Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as + appropriate. + * config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end, + make static, take no arguments. Set TARGET_ASM_FILE_END to + mmix_file_end. + * config/pa/pa.c (output_deferred_plabels): Make static, take + no arguments. Set TARGET_ASM_FILE_END to output_deferred_plabels. + * config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it. + (ASM_FILE_END): Delete; move code... + * config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here; + new static function. + + * config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h + * config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h: + Don't set ASM_FILE_END. + * config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h + * config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h + * config/sparc/linux64.h: Set TARGET_ASM_FILE_END to + file_end_indicate_exec_stack; don't set ASM_FILE_END. + * config/alpha/unicosmk.h, config/i386/cygming.h + * config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END. + * config/arm/arm-protos.h, config/alpha/alpha-protos.h + * config/avr/avr-protos.h, config/c4x/c4x-protos.h + * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h + * config/ip2k/ip2k-protos.h, config/mips/mips-protos.h + * config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update. + +Sat Jun 7 18:32:13 CEST 2003 Jan Hubicka + + * i386.h (OPTION_DEFAULT_SPECS): Avoid -mcpu default when -march is + specified. + +Sat Jun 7 15:20:01 CEST 2003 Jan Hubicka + + * Makefile.in (stageprofile_build): Kill redundant target. + * i386.c (mdep_reorg): Don't pad jumps for Athlon. + +2003-06-07 Andreas Jaeger + + * doc/tm.texi (Costs): Remove DONT_REDUCE_ADDR documentation. + + * config/avr/avr.h: Remove comment regarding DONT_REDUCE_ADDR. + * config/dsp16xx/dsp16xx.h: Likewise. + * config/i386/i386.h: Likewise. + * config/ip2k/ip2k.h: Likewise. + +2003-06-07 Neil Booth + + * Makefile.in (OJBS, c-opts.o): Update. + (c-options.c, c-options.h): Rename options.h and options.c. + (options.h): Rename options_.h. + (opts.o): New. + * c-common.h (c_common_handle_option): Replace c_common_decode_option. + (c_common_init_options): Update prototype. + * c-lang.c (c_init_options): Update prototype. + (LANG_HOOKS_HANDLE_OPTION): Override. + (LANG_HOOKS_DECODE_OPTION): Drop. + * c-opts.c: Include opts.h and options.h instead of c-options.h + and c-options.c. + (lang_flags): Move to file scope. + (find_opt, c_common_decode_option): Remove. + (CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE, + CL_REJECT_NEGATIVE): Move to opts.h. + (missing_arg): Update prototype. + (c_common_init_options): Update for new prototype. + (c_common_handle_options): Filenames are passed as N_OPTS. + * hooks.c (hook_int_void_0): New. + * hooks.h (hook_int_void_0): New. + * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default. + (LANG_HOOKS_HANDLE_OPTION): Default to NULL for now. + (LANG_HOOKS_INITIALIZER): Update. + * langhooks.h (init_options): Update. + (handle_option): New. + * opts.c, opts.h: New files. + * opts.sh: Update c file to include opts.h and options.h. + * toplev.c: Include opts.h; change options.h to options_.h. + (parse_options_and_default_flags): Get lang_mask, use + handle_option for language-specific handling. + * objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop. + (LANG_HOOKS_HANDLE_OPTION): Override. + (objc_init_options): Update. + +2003-06-07 Magnus Kreth + Thibaud Gaillard + + PR other/7031 + * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of + gcov. + +2003-06-07 Kelley Cook + + * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in + section names. + * configure: Regenerate. + +2003-06-07 Alan Modra + + * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define. + +2003-06-06 James E Wilson + + PR inline-asm/10890 + * reload1.c (merge_assigned_reloads): Abort only if two reloads have + different in fields. + +2003-06-06 Nathanael Nerode + + * configure.in: Make $(target_subdir) correspond with top level usage. + * Makefile.in: Likewise. + * configure: Regenerate. + +2003-06-06 John David Anglin + + * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON, + ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to + unsigned HOST_WIDE_INT. + * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL): + Likewise. + * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): + Likewise. + +2003-06-06 Kaveh R. Ghazi + + * doc/install.texi (Prerequisites): New section documenting + tools and packages necessary prior to building and/or + modifying GCC. + * doc/install.texi2html: Also generate prerequisites.html. + +2003-06-06 Richard Earnshaw + + PR target/11052 + * ifcvt.c (noce_process_if_block): Fail if the destination has + side-effects. + +2003-06-06 Jason Merrill + + * stmt.c (resolve_asm_operand_names): Rename from + resolve_operand_names. No longer static. Avoid needless copying. + Don't build array of constraints. + (expand_asm_operands): Build it here. + * tree.h: Declare resolve_asm_operand_names. + + * stmt.c (expand_decl): Put artificial vars into registers even + when not optimizing, and don't mark the regs as user vars. + +2003-06-06 J"orn Rennecke + + * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode + of the generated register. + +2003-06-06 Daniel Jacobowitz + + * config.gcc: Add a missing sparc64 case. + +2003-06-06 Jakub Jelinek + + * mklibgcc.in: Propagate .note.GNU-stack section if needed into + the .hidden assembly stubs. + +2003-06-06 H.J. Lu + + * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-* + and x86_64-*-*. + + * config/i386/mmintrin.h: Update version and add alternate + intrinsic names. + * config/i386/xmmintrin.h: Likewise. + + * config/i386/xmmintrin.h: Include . Move SSE2 + intrinsics to ... + * config/i386/emmintrin.h: Here. New file. + +2003-06-06 Roger Sayle + + * fold-const.c (fold ): Re-fold the result of folding + fabs(-x) into fabs(x). Use tree_expr_nonnegative_p to determine + when the ABS_EXPR (fabs or abs) is not required. + (tree_expr_nonnegative_p): Move the logic that sqrt and exp are + always nonnegative from fold to here. Additionally, cabs and fabs + are always non-negative, and pow and atan are non-negative if + their first argument is non-negative. + + * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}. + Evaluate cabs of a constant at compile-time. Convert cabs of a + non-complex argument into fabs. Convert cabs(z) into + sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or + -funsafe-math-optimizations or -ffast-math. + (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR. + Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs. + +Thu Jun 5 20:51:09 CEST 2003 Jan Hubicka + + * sourcebuild.texi (Front End Directory): Document new hooks. + +Fri Jun 6 11:02:35 CEST 2003 Jan Hubicka + + * function.c (FLOOR_ROUND, CEIL_ROUND): Fix. + * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic + stack frames. + (pro_epilogue_adjust_stack_rex64_2): New pattern + +Fri Jun 6 11:03:14 CEST 2003 Jan Hubicka + Pop Sebastian + Zdenek Dvorak + + * cfghooks.h, cfghooks.c: New files. + * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h. + (OBJS): Add cfghooks.o. + (cfghooks.o): New rule. + * basic-block.h (split_edge): Rename to rtl_split_edge. + (verify_flow_info): Rename to rtl_verify_flow_info. + (cfghooks.h): Included here. + * cfgrtl.c (split_edge): Renamed rtl_split_edge. + (verify_flow_info): Renamed rtl_verify_flow_info. + * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks. + + * basic-block.h (split_block, split_edge, flow_delete_block, + redirect_edge_and_branch, redirect_edge_and_branch_force): Delete. + (flow_delete_block_noexpunge): Return void. + * cfg.c (verify_flow_info): New function. + * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match, + try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks): + Use delete_block. + * cfglayout.c (function_footer): Rename to... + (cfg_layout_function_footer): ... this variable + (unlink_insn_chain): Make global. + (fixup_reorder_chain, record_effective_endpoints): Update. + (cleanup_unconditional_jumps): Use delete_block. + (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c + (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force. + (cfg_layout_initialize, cfg_layout_finalize): Update hooks. + * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block): Delete. + (cfg_layout_function_footer): Declare. + * cfgloopmanip (split_loop_bb): Do not update RBI. + (remove_bbs): Use delete_block. + (loop_reidrect_edge, loop_delete_branch_edge): Use + redirect_edge_and_branch. + (create_preheader): Use split_block and redirect_edge_and_branch_force. + (split_edge_with): Likewise. + * cfgrtl.c: Include cfglayout.h + (split_edge): Rename to ... + (rtl_split_edge) ... this one; make local. + (redirect_edge_and_branch): Rename to ... + (rtl_redirect_edge_and_branch) ... this one; make local. + (redirect_edge_and_branch_force): Rename to ... + (rtl_redirect_edge_and_branch_force) ... this one; make local. + (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New. + (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from + cfglayout.c; update to directly call RTL counterparts. + (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions. + * ifcvt.c (find_cond_trap): Use delete_block. + (find_if_case_1): Use delete_block. + (find_if_case_2): Use delete_block. + * rtl.h (unlink_insn_chain): Declare. + * toplev.c (rtl_reigster_cfg_hooks): New. + +2003-06-05 Richard Henderson + + * recog.c (peephole2_optimize): Revert last change. + +2003-06-05 Richard Henderson + + * recog.c (peephole2_optimize): Don't split block unless + can_throw_internal. + +2003-06-06 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl. + * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise. + +2003-06-05 Kelley Cook + + PR optimization/4490 + * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE. + * doc/invoke.texi (m96bit-long-double, m128bit-long-double): Reword + documentation to accurately reflect what these options do. + +2003-06-06 Kaz Kojima + + * config/sh/linux.h (STARTFILE_SPEC): Handle -pie. Simplify. + (ENDFILE_SPEC): Redefine to handle -pie. + +2003-06-05 Phil Edwards + + * Makefile.in (qmtest-g++): Use target_alias, not target. + +2003-06-05 Per Bothner + + * toplev.c (push_srcloc): Simplify behavior to save current location + and set current location to parameters. + (pop_srcloc): Simplify semantics. + (lang_dependent_init): Remove now-useless initial push_srcloc. + +2003-05-06 Richard Henderson + + * dwarf2out.c (loc_descriptor_from_tree): Return 0 for + language-specific tree codes. + +2003-06-05 John David Anglin + + PR middle-end/9986 + * pa.c (pa_init_builtins): Also set implicit_built_in_decls for + BUILT_IN_FPUTC_UNLOCKED to NULL_TREE. + +Thu Jun 5 18:32:46 CEST 2003 Jan Hubicka + + * install.tex: Document profiledbootstrap. + + * configure.in: Add support for lang.stageprofile and + lang.stagefeedback + * Makefile.in (clean, distclean): Kill new stages + (POSTSTAGE1_FLAGS_TO_PASS): Break from ... + (STAGE2_FLAGS_TO_PASS): ... this one. + (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New. + (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS. + (stageprofile_build, stageprofile_copy, stagefeedback_build, + stagefeedback_copy): New. + (restageprofile, restagefeedback, stageprofile-start, + stageprofile, stagefeedback-start): Likewise. + +2003-06-05 David Miller + Richard Henderson + + * optabs.c (HAVE_conditional_trap): Provide default. + (gen_conditional_trap): Likewise. + (init_optabs): Merge init_traps. + (gen_cond_trap): Use prepare_operand. Restructure and avoid ifdef. + +Thu Jun 5 14:59:44 CEST 2003 Jan Hubicka + + * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8)) + is REG for nonzero_bits (REG) == 8. + +Thu Jun 5 13:23:51 CEST 2003 Jan Hubicka + + * i386.md (align): Fix warning; clarify what to do when no p2align + is available. + +2003-06-05 Nick Clifton + + * config.gcc (m32r-elf): Revert previous delta. + * config/m32r/t-m32r (crtinit.o): Fix rule to work with + multilibs. Remove m32rx specific version. + (crtfini.o): Likewise. + (EXTRA_MULTILIB_PARTS): Define. + +2003-06-05 Eric Botcazou + + * doc/md.texi (Machine Constraints): Correct the meaning of + constraints related to floating-point registers on SPARC. + +2003-06-05 Eric Botcazou + Paolo Bonzini + + PR target/10663 + * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect + assembler and linker output to /dev/null. + Use a 'sed' construct instead of 'grep -A1'. + * configure: Regenerate. + +2003-06-04 Richard Henderson + + * config/i386/i386.c (struct ix86_address): Add seg. + (no_seg_address_operand): New. + (ix86_decompose_address): Restructure PLUS loop. Accept one + UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS. Adjust ESP swap test + to test for a regnum, not stack_pointer_rtx. + (ix86_address_cost): Reduce cost if non-default segment. + (legitimate_address_p): Remove UNSPEC_TP check. + (get_thread_pointer): Add to_reg argument. Don't represent + the thread pointer as a memory load. + (legitimize_tls_address): Split out of ... + (legitimize_address): ... here. + (print_operand_address): Handle parts.seg. + (ix86_expand_move): Use legitimize_tls_address. + (ix86_rtx_costs): Handle UNSPEC_TP. + * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New. + (TARGET_TLS_DIRECT_SEG_REFS): New. + (TARGET_SWITCHES): Add tls-direct-seg-refs. + (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default. + (PREDICATE_CODES): Add no_seg_address_operand. + * config/i386/i386.md (lea_1): Use it. + (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise. + (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New. + * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New. + * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New. + * doc/invoke.texi: Add -mtls-direct-seg-refs. + +2003-06-04 Mark Mitchell + + * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation. + (QMTEST_GPP_TESTS): Use "g++" by default. + (stamp-qmtest): Tweak database creation. + (QMTEST_DIR/context): Update context file format. + (qmtest-g++): Tweak command-line. + +2003-06-04 Kaveh R. Ghazi + + * Makefile.in (varasm.o): Don't set -Wno-error. + * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear. + +2003-06-04 Zack Weinberg + + PR bootstrap/3163 + * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete. + (gcc_AC_FUNC_MMAP_BLACKLIST): New. + * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS + and AC_CHECK_FUNCS lists, respectively. Use + gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor + AC_FUNC_MMAP_FILE. + * configure, config.in: Regenerate. + +2003-06-04 Kaveh R. Ghazi + + * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning. + * arm.c (arm_output_function_prologue): Fix format specifiers. + * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise. + * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of + HOST_WIDE_INT_PRINT_DEC. + * vax.c (vax_output_function_prologue): Fix format specifiers. + +2003-06-04 Richard Henderson + + * cse.c (find_best_addr): Consider binary operators even if second + argument is not CONST_INT. + +2003-06-04 Zdenek Dvorak + + * doc/invoke.texi (max-cse-path-length): Document. + +2003-06-04 Richard Henderson + + * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros. + +2003-06-04 Andrew Pinski + + * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): + Remove semi-colon at the end of the expression. + +2003-06-04 Kaveh R. Ghazi + + * i370.c (mvs_function_name_length): Fix signed/unsigned warnings. + * i370.h (mvs_function_name_length): Likewise. + * i960.h (CONSTANT_ALIGNMENT): Likewise. + * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused + variable. + +2003-06-04 Daniel Jacobowitz + + * config.gcc: Reorganize --with-cpu logic. Set + configure_default_options according to the default CPU, --with-cpu, + --with-arch, --with-tune, --with-schedule, --with-abi, and + --with-float. Check for legal values of various options. + * configure.in: Define configure_default_options in configargs.h. + * configure: Regenerated. + * config/mips/mips.h (TARGET_DEFAULT_ARCH_P) + (TARGET_DEFAULT_FLOAT_P): New macros. + * gcc.c (do_option_spec): New function. + (struct default_spec, option_default_specs): New. + (main): Call do_option_spec. + * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h, + config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h, + config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define. + + * doc/install.texi: Update --with-cpu documentation. Mention + --with-arch, --with-schedule, --with-tune, --with-abi, and + --with-float. + * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS. + +2003-06-04 Daniel Jacobowitz + + * config.gcc: Only process --with-cpu logic in the third pass. + +2003-06-04 Daniel Jacobowitz + + * config.gcc: Reorganize --with-cpu section. Remove an + obsolete comment about the default CPU for x86-64. Fix + a typo for the ep9312. Update the list of supported PowerPC + CPUs. Support a limited set of new --with-cpu options + for i386. + +2003-06-04 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack + complex numbers <= 32 bits into two registers. + +2003-06-04 Kaveh R. Ghazi + + * alpha.c (print_operand_address): Fix format specifier warnings. + * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. + * arm/pe.h (ASM_OUTPUT_COMMON): Likewise. + * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL, + ASM_OUTPUT_SKIP): Likewise. + * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON): + Likewise. + * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise. + * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise. + * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise. + * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. + * svr3.h (ASM_OUTPUT_COMMON): Likewise. + +2003-06-04 J"orn Rennecke + + * c-decl.c (c_init_decl_processing): Clear input_file_name + while building common nodes. + * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish): + Don't add working directory for strings like . + +2003-06-04 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Native as and ld required + to bootstrap on AIX 5L. + +2003-06-04 Richard Henderson + + * c-common.c (handle_cleanup_attribute): New. + (c_common_attributes): Add it. + * c-decl.c (finish_decl): Honor the cleanup attribute. + * doc/extend.texi (Variable Attributes): Document it. + + * unwind-c.c: New file. + * Makefile.in (LIB2ADDEH): Add it. + * config/t-darwin, config/t-linux, config/t-linux-gnulibc1, + config/ia64/t-ia64: Likewise. + +2003-06-04 Jakub Jelinek + + * function.c (trampolines_created): New variable. + (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE. + * function.h (trampolines_created): Add. + * config/s390/linux.h (ASM_FILE_END): Define. + * config/alpha/linux-elf.h (ASM_FILE_END): Define. + * config/m68k/linux.h (ASM_FILE_END): Define. + * config/rs6000/linux.h (ASM_FILE_END): Define. + * config/rs6000/linux64.h (ASM_FILE_END): Define. + * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux. + * config/sparc/linux.h (ASM_FILE_END): Define. + * config/sparc/linux64.h (ASM_FILE_END): Define. + * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END. + * config/i386/linux.h (SUBTARGET_FILE_END): Define. + * config/i386/linux64.h (SUBTARGET_FILE_END): Define. + +Wed Jun 4 18:39:33 CEST 2003 Jan Hubicka + + * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions + (ix86_reorg): Use it. + * i386.md (align): New insn pattern. + +2003-06-04 Kaveh R. Ghazi + + * toplev.c (rest_of_type_compilation): Fix typo. + +2003-06-04 Jakub Jelinek + Alan Modra + + * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1. + * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise. + * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise. + * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise. + * config/darwin.h (NO_PROFILE_COUNTERS): Likewise. + * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined. + (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant. + * config/rs6000/rs6000.c (output_profile_hook): Likewise. + + * configure.in (powerpc*-*, s390*-*): Set tls_as_opt. + Pass it to $gcc_cv_as. + * configure: Rebuilt. + + * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer. + (print_operand): Allow TARGET_AIX to be non-constant. + (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore): + Define unconditionally. + (rs6000_elf_declare_function_name): New function. + * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be + non-constant. + * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define + to 1. + (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define. + [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__ + is defined. + (TARGET_AIX): Define to 1 if TARGET_64BIT. + (PROCESSOR_DEFAULT): Remove. + (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT, + INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define. + [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define. + (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both + -m32 and -m64. + (MULTILIB_DEFAULTS): Define. + (SUBSUBTARGET_EXTRA_SPECS): Define. + (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define. + (TARGET_TOC): Define only if !RS6000_BI_ARCH. + (TARGET_NO_TOC): Remove. + [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI, + TARGET_PROTOTYPE): Define to 0. + (NO_PROFILE_COUNTERS): Define to TARGET_64BIT. + (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT. + (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly + if !TARGET_64BIT. + (USER_LABEL_PREFIX): Remove. + (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT. + (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init + if TARGET_64BIT. + (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64. + (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define. + (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove. + (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT. + (MINIMAL_TOC_SECTION_ASM_OP): Likewise. + (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on + TARGET_64BIT. + (RS6000_CALL_GLUE): Likewise. + (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, + RESTORE_FP_SUFFIX): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Remove. + (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE, + DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function + name if TARGET_64BIT. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and + !TARGET_64BIT. + (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs. + (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account. + (DRAFT_V4_STRUCT_RET): Define. + (SIGNAL_FRAMESIZE): New enum value. + (MD_FALLBACK_FRAME_STATE_FOR): Define. + * config/rs6000/default64.h: New file. + * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64 + options. + (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it + to RS6000_ABI_NAME. Only disallow mixing of -fPIC with -mcall-aixdesc + if !TARGET_64BIT. + [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define. + (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name + function. + (TARGET_OS_SYSV_CPP_BUILTINS): Define. + (TARGET_OS_CPP_BUILTINS): Use it. + (CPP_SYSV_SPEC): Remove. + (CPP_SPEC): Remove cpp_sysv. + (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv. + Add SUBSUBTARGET_EXTRA_SPECS. + (SUBSUBTARGET_EXTRA_SPECS): Define. + * config/rs6000/biarch64.h: New file. + * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name): + New prototype. + * config/rs6000/x-linux64: New file. + * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float + multilibs. + * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__. + * config/rs6000/eabi-cn.asm: Likewise. + * config/rs6000/tramp.asm: Likewise. + * config/rs6000/sol-ci.asm: Likewise. + * config/rs6000/sol-cn.asm: Likewise. + * config/rs6000/linux.h (TARGET_64BIT): Define to 0. + (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS. + * config/rs6000/ppc-asm.h: Move __powerpc64__ section before + _CALL_AIXDESC section. + * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler, + defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs + or default32. + +2003-06-04 Daniel Jacobowitz + + * config.gcc: Revert accidentally committed ARM changes. + +2003-06-04 Roger Sayle + + * builtins.c (dconstpi, dconste): New mathematical constants. + (init_builtin_dconsts): New function to initialize dconstpi + and dconste. + (fold_builtin): Optimize exp(1.0) = e. Evaluate exp(x) at + compile time with -ffast-math when x is an integer constant. + Optimize tan(0.0) = 0.0. Optimize atan(0.0) = 0.0, + atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math. + +2003-06-04 Roger Sayle + + * calls.c (expand_call): Avoid calling pure or const functions + when the result is ignored (or void) and none of the arguments + are volatile. Move warning diagnostic earlier in function. + +2003-06-04 Andreas Jaeger + + * system.h: Do not poison TDESC_SECTION_ASM_OP, + RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE. + +2003-06-04 Kaveh R. Ghazi + + * final.c (asm_fprintf): Update comments, accept "-+ #0" flags, + optimize '%' case, handle %c, don't accept %p, %e, %f or %g, + handle %ll, optimize regular character case. + +2003-06-04 Zdenek Dvorak + + * Makefile.in (cse.o): Add params.h dependency. + * cse.c: Include params.h. + (PATHLENGTH): Removed. + (struct cse_basic_block_data): Make path array dynamic. + (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead + of PATHLENGTH. + (cse_main, cse_basic_block): Allocate path array. + * params.def (PARAM_MAX_CSE_PATH_LENGTH): New. + +Wed Jun 4 09:49:21 CEST 2003 Jan Hubicka + + * i386.c (ix86_reorg): Replace the jump instead of adding nop. + * i386.md (UNSPEC_REP): New constant. + (return_internal_long): New pattern. + +2003-06-04 Eric Botcazou + + PR optimization/11018 + * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative + consistently to decide whether the scratch register is really + required. + +2003-06-04 Eric Botcazou + + PR optimization/10876 + * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add + new 'O' constraint for constant 4096. + (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. + * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern. + Do not transform into MINUS insn for constant 4096. + (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative + for constant 4096 as third operand. + (addsi3 expander): Remove. + (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add + new alternative for constant 4096 as third operand. + (subdi3 expander): Do not transform into PLUS insn for constant 4096. + (*subdi3_sp64 insn): Add new alternative for constant 4096 as third + operand. + (subsi3 expander): Remove. + (*subsi3 insn): Rename into 'subsi3'. Add new alternative for + constant 4096 as third operand. + * doc/md.texi (Machine Constraints): Document new 'O' constraint for + the SPARC port. + +2003-06-03 Chris Demetriou + + * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define. + +2003-06-04 Andreas Jaeger + + * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE. + + * config/i386/i386.c (ix86_expand_prologue): Do not use + SUBTARGET_PROLOGUE. + + * system.h: Poision SUBTARGET_PROLOGUE. + + * config/arm/arm-protos.h: Remove unused rdate_section prototype. + + * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP + dependend code. + + * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP. + + * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and + INSN_CACHE_LINE_WIDTH. + + * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed. + (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH, + INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH. + + * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH, + INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH. + + * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM. + (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL. + (dbxout_block): Remove usage of DBX_OUTPUT_CATCH. + (dbxout_block): Remove usage of DBX_LBRAC_FIRST. + (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME. + (dbxout_init): Remove test for DBX_WORKING_DIRECTORY. + + * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST, + DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and + DBX_WORKING_DIRECTORY. + + * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM, + DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY. + + * config/frv/frv-protos.h: Remove unused const_section + declaration. + * config/vax/vax-protos.h: Likewise. + + * output.h: Remove CONST_SECTION_ASM_OP usage. + + * system.h: Poison CONST_SECTION_ASM_OP. + + * crtstuff.c (__do_global_dtors_aux): Remove usage of + CRT_GET_RFIB_TEXT. + (frame_dummy): Likewise. + * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise. + * system.h: Poison CRT_GET_RFIB_TEXT. + + * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code. + + * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables. + (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code. + (recognized_function): Likewise. + (read_scan_file): Likewise. + +2003-06-03 Roger Sayle + + * optabs.c (expand_binop): Optimize complex multiplication for + the case of squaring a complex argument. + +2003-06-03 Roger Sayle + + * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate + non-volatile operands of binary operations. + (prepare_cmp_insn): Likewise. + +2003-06-03 Roger Sayle + + * varasm.c (force_const_mem): Handle alignment of constants not + representable as a type in the front-end language. + +2003-06-03 Kazu Hirata + + * flow.c (initialize_uninitialized_subregs): Use + emit_move_insn instead of emitting a hardcoded move. + +2003-06-03 Richard Henderson + + * optabs.c (expand_abs_nojump): Split out from ... + (expand_abs): ... here. + * optabs.h (expand_abs_nojump): Declare. + * ifcvt.c: (noce_try_abs): Use expand_abs_nojump. + * Makefile.in (ifcvt.o): Depend on optabs.h. + +2003-06-03 Alan Modra + + * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants. + +2003-06-03 Jason Thorpe + + * config.gcc (default_use_cxa_atexit): New variable, defaults to no. + (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit + to yes. + * configure.in: Allow default_use_cxa_atexit to determine the + value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or + disabled. + * configure: Regenerate. + +2003-06-03 Douglas B Rupp + + * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry. + * doc/gcc.texi: Remove vms.texi section. + * doc/vms.texi: Remove obsolete file. + +2003-05-23 J"orn Rennecke + + * configure.in (inhibit_libc): Don't define when configuring + with --with-newlib --with-headers. + * configure: Regenerate. + + * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules. + +2003-06-03 Rainer Orth + + * configure.in (gcc_cv_as_hidden): Disable .hidden completely on + IRIX 6 without GNU ld. + * configure: Regenerate. + +2003-06-03 Roger Sayle + + * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts + of a complex number rather than invoke mov_optab directly. + +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. + +2003-06-03 Nathanael Nerode + + * config/i386/x86-64.h: Remove two target-independent comments; + replace "GNU CC" with "GCC". + +2003-06-03 Anthony Green + + * config/frv/t-frv (EXTRA_HEADERS): Remove media.h + +2003-06-03 Roger Sayle + + * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL): + New builtins representing ISO C99's cabs, cabsf and cabsl. + * builtins.c (expand_builtin_fabs): New function. + (expand_builtin_cabs): New function. + (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L} + using expand_builtin_fabs and expand_builtin_cabs respectively. + + * doc/extend.texi: Document new cabs, cabsf and cabsl builtins. + +2003-06-03 Aldy Hernandez + + * function.c (assign_parms): Split complex arguments. + + * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document. + + * expr.h (SPLIT_COMPLEX_ARGS): Define. + (split_complex_types): Protoize. + (split_complex_values): Protoize. + + * calls.c (expand_call): Split complex arguments on architectures + that require it. + (split_complex_values): New. + (split_complex_types): New. + + * config/rs6000/rs6000.c (rs6000_libcall_value): New. + (rs6000_function_value): Handle complex values on AIX. + (rs6000_complex_function_value): New. + + * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize. + + * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function. + (SPLIT_COMPLEX_ARGS): New. + +2003-06-03 Jakub Jelinek + + * configure.in (HAVE_LD_PIE): Check for ld -pie. + * config.in: Rebuilt. + * configure: Rebuilt. + * toplev.c (flag_pie, flag_shlib): New variables. + (f_options): Add -fpie and -fPIE. + (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE. + Set flag_shlib if flag_pic and not -fpie/-fPIE. + * flags.h (flag_pic, flag_shlib): Add. + * varasm.c (default_binds_local_p): Use flag_shlib instead of + flag_pic. + * gcc.c (LINK_PIE_SPEC): Define. + (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC. + (option_map): Add --pie -> -pie mapping. + * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic + and -fPIE the same way as -fPIC. + * config/openbsd.h (ASM_SPEC): Likewise. + * config/frv/frv.h (ASM_SPEC): Likewise. + * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise. + * config/arm/semi.h (ASM_SPEC): Likewise. + * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise. + * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise. + * config/i386/beos-elf.h (CC1_SPEC): Likewise. + * config/i386/freebsd-aout.h (ASM_SPEC): Likewise. + * config/m68k/linux.h (CPP_SPEC): Likewise. + * config/m68k/netbsd.h (ASM_SPEC): Likewise. + * config/m68k/openbsd.h (ASM_SPEC): Likewise. + * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise. + * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise. + * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise. + * config/pa/pa-linux.h (CPP_SPEC): Likewise. + * config/netbsd-aout.h (ASM_SPEC): Likewise. + * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise. + * config/rs6000/vxworks.h (CPP_SPEC): Likewise. + * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise. + * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise. + * config/sparc/sparc.h (ASM_SPEC): Likewise. + * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. + * config/sparc/sysv4.h (ASM_SPEC): Likewise. + * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise. + * config/sparc/openbsd64.h (ASM_SPEC): Likewise. + * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise. + * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie. + Simplify. + * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. + * doc/invoke.texi: Document -pie, -fpie and -fPIE options. + +2003-06-03 Jakub Jelinek + + * builtins.c (expand_builtin_memcpy): Remove endp argument and endp + != 0 handling. Pass 0 to store_by_pieces. + (expand_builtin_mempcpy): Add endp argument. Don't call + expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces + directly. If ignoring result, only do expand_call. + (expand_builtin_stpcpy): Likewise. Call expand_builtin_mempcpy + otherwise. + (expand_builtin_strncpy, expand_builtin_memset): Adjust + store_by_pices callers. + (expand_builtin): Adjust expand_builtin_memcpy and + expand_builtin_mempcpy callers. + * expr.c (can_move_by_pieces): New function. + (move_by_pieces): Add endp argument, return to resp. memory at end + or one byte earlier depending on endp. + (store_by_pieces): Likewise. + (emit_block_move): Adjust call to move_by_pieces. + (emit_push_insn): Adjust move_by_pieces caller. + * expr.h (can_move_by_pieces): New prototype. + (store_by_pieces): Adjust prototypes. + * rtl.h (move_by_pieces): Adjust prototype. + * config/mips/mips.c (expand_block_move): Adjust move_by_pieces + caller. + +2003-06-03 Ben Elliston + + * doc/md.texi (Processor pipeline description): Improve wording. + +2003-06-03 Neil Booth + + * c-opts.c (c_common_handle_option): New, pulled out of + c_common_decode_option. Substitute uses of argv. + (c_common_decode_option): Broken into two. + +2003-06-02 Roger Sayle + Zack Weinberg + + * emit-rtl.c (gen_complex_constant_part): Remove unnecessary + test of TREE_CONSTANT_POOL_ADDRESS_P. + +2003-06-02 Kaveh R. Ghazi + + * mips.c: Don't include output.h twice. + * stormy16.c: Likewise. + * xtensa.c: Likewise. + * output.h: Protect against multiple inclusion. + +2003-06-02 J"orn Rennecke + + * sh.h (OLD_ARG_MODE): New macro. + (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it. + (FUNCTION_ARG_1): Break out of: + (FUNCTION_ARG). Use OLD_ARG_MODE. + +2003-06-02 Kazuhiro Inaoka + + * gcc/config.gcc Add support multilib parts for m32rx processor. + +2003-06-02 Kaveh R. Ghazi + + * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh. + (mostlyclean): Delete c-options.c and c-options.h. + +2003-06-02 Neil Booth + + * c-opts.c (CL_REJECT_NEGATIVE): New. + (c_common_decode_option): Update to use it. + * c.opt: Update documentation; use RejectNegative. + * opts.sh: Handle RejectNegative. + +2003-06-01 Zack Weinberg + + * ggc-page.c (init_ggc): Give better diagnostics on failure to + open /dev/zero. + * toplev.c (crash_signal): Reset handling for received signal + to SIG_DFL. + +2003-06-02 Ben Elliston + + * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already. + (arm_use_dfa_pipeline_interface): Implement. + * config/arm/arm.md (arm): New automaton. + (write_buf): Remove function units; new cpu unit. + (write_blockage): Remove function units; new cpu unit. + (core): Remove function units; new cpu unit. + (r_mem_f_wbuf): New instruction reservation. + (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise. + (store1_ldsched, store2, store3, store4): Likewise. + (load_ldsched, load_ldsched_xscale, load_or_store): Likewise. + (mult, mult_ldsched, mult_ldsched_strongarm): Likewise. + (multi_cycle, single_cycle): Likewise. + * config/arm/fpa.md (armfp): New automaton. + (fpa): Remove function units; new cpu unit. + (fpa_mem): Remove function unit; new cpu unit. + (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations. + (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise. + +2003-06-01 Kaveh R. Ghazi + + * builtin-attrs.def (ATTR_ASM_FPRINTF): New. + * c-format.c (enum format_type): Add asm_fprintf_format_type. + (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs, + asm_fprintf_flag_pairs, asm_fprintf_char_table): New. + (format_types_orig): Renamed from format_types. Add new data. + (format_types): Declare as pointer. + (handle_format_attribute): Move later in file so we have all + necessary declarations. Add section to capture HOST_WIDE_INT. + * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New. + (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF. + +2003-06-01 Andreas Jaeger + + * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and + ROUND_TYPE_SIZE_UNIT. + + * stor-layout.c (finalize_record_size): Remove usages of + ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT. + (finalize_type_size): Likewise. + (layout_type): Likewise. + + * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT. + + * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro. + + * config/d30v/d30v.h: Remove text copied from the manual. + +2003-06-01 Roger Sayle + John David Anglin + Geoffrey Keating + + * emit-rtl.c (gen_lowpart_common): Handle interpreting integer + constants as condition code values. + +2003-06-01 DJ Delorie + + * cppmacro.c (warn_of_redefinition): Handle cases where the two + definitions have different numbers of tokens. + +2003-06-01 Andreas Jaeger + + * gen-protos.c (main): Readd unused attribute for argc. + +2003-06-01 Neil Booth + + * Makefile.in (c-options.c, c-options.h): Parallel make safe. + * c.opt: End in blank line. + * opts.sh: Take AWK from environment if available; use C locale. + +2003-06-01 Andreas Schwab + + * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1. + +2003-06-01 Andreas Jaeger + + * gen-protos.c (main): Revert patch to check for argument. + +2003-06-01 Eric Botcazou + + PR target/11044 + * config/i386/i386.md (length attribute): Set length to 4 + for instructions of type "fcmp". + +2003-06-01 Andreas Jaeger + + * toplev.c: Use ISO C90 prototypes. + + * toplev.h: Use ISO C90 prototypes. + + * genrecog.c: Use ISO C90 prototypes. + (nodes_identical): Correct declaration to match prototype. + (maybe_both_true): Likewise. + (merge_trees): Likewise. + + * genpeep.c (gen_peephole): Remove #if 0 code. + Use ISO C90 prototypes. + + * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code. + Remove #if 0'ed function simplify_by_alternatives. + (optimize_attrs): Remove #if 0'ed code. + Remove ^L. + Use ISO C90 prototypes. + (make_canonical): Remove #if 0'ed code. + (convert_const_symbol_ref): Remove #if 0'ed function. + + * gen-protos.c (main): Check for argument. + + * rtl.h: Use ISO C90 prototypes for functions from lists.c. + + * params.h: Use ISO C90 prototypes. + * params.c: Likewise. + * intl.c: Likewise. + * intl.h: Likewise. + * lists.c: Likewise. + * errors.c: Likewise. + * errors.h: Likewise. + * gencodes.c: Likewise. + * genpreds.c: Likewise. + * genattr.c: Likewise. + * gen-protos.c: Likewise. + * genflags.c: Likewise + * genconditions.c: Likewise. + * genautomata.c: Likewise. + * gencheck.c: Likewise. + * genconfig.c: Likewise. + * genconstants.c: Likewise. + * genemit.c: Likewise. + * genextract.c: Likewise. + * gengenrtl.c: Likewise. + * gengtype.c: Likewise. + * gengtype.h: Likewise. + * genopinit.c: Likewise. + * genoutput.c: Likewise. + * gensupport.c: Likewise. + * gensupport.h: Likewise. + + * sdbout.h: Use ISO C90 prototypes. + + * sdbout.c (CONTIN): Removed empty macro. + (sdbout_one_type): Remove CONTIN usages. + Remove ^Ls. + (tag_of_ru_type): Remove #if 0'ed function. + (sdbout_symbol): Remove #if 0'ed code. + (sdbout_one_type): Remove a #if 1. + (sdbout_one_type): Remove #if 0'ed code. + (sdbout_init): Remove RMS_QUICK_HACK_1 code. + Remove PARAMS, use ISO C90 prototypes for all functions. + +2003-06-01 Josef Zlomek + + * rtl.def (CONST_DOUBLE): Update comment. + +2003-06-01 Neil Booth + + * opts.sh: Remove path from sort. + +2003-06-01 Aldy Hernandez + + PR/9680 + * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require + TARGET_SPE for SPE_VECTOR_MODE. + +2003-05-31 Aldy Hernandez + + * toplev.c (botch): Remove. + (do_abort): Remove. + (set_Wunused): Comment. + (set_Wextra): Comment. + Remove ^L's. + (rest_of_compilation): Factor out common code into functions. + (rest_of_handle_inlining): New. + (rest_of_handle_ssa): New. + (rest_of_handle_cse): New. + (rest_of_handle_gcse): New. + (rest_of_handle_loop_optimize): New. + (rest_of_handle_jump_bypass): New. + (rest_of_handle_sibling_calls): New. + (rest_of_handle_null_pointer): New. + (rest_of_handle_addresof): New. + (rest_of_handle_flow): New. + (rest_of_handle_branch_prob): New. + (rest_of_handle_if_conversion): New. + (rest_of_handle_tracer): New. + (rest_of_handle_loop2): New. + (rest_of_handle_cse2): New. + (rest_of_handle_life): New. + (rest_of_handle_combine): New. + (rest_of_handle_if_after_combine): New. + (rest_of_handle_regmove): New. + (rest_of_handle_sched): New. + (rest_of_handle_old_regalloc): New. + (rest_of_handle_new_regalloc): New. + (rest_of_handle_regrename): New. + (rest_of_handle_reorder_blocks): New. + (rest_of_handle_sched2): New. + (rest_of_handle_new_regalloc): New. + (rest_of_handle_old_regalloc): New. + (rest_of_handle_regrename): New. + (rest_of_handle_reorder_blocks): New. + (rest_of_handle_stack_regs): New. + (rest_of_handle_machine_reorg): New. + (rest_of_handle_delay_slots): New. + (rest_of_handle_final): New. + + * toplev.h (botch): Remove prototype. + (do_abort): Same. + +2003-05-31 Neil Booth + + * Makefile.in (c-opts.o, c-options.h): Update dependencies. + * c-opts.c: Include c-options.h and c-options.c. + (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY): + Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX. + (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option, + OPT, opt_comp): Remove. + (missing_arg, c_common_init_options, c_common_decode_option, + write_langs): Update for macro redefinitions and enumeration + name changes. + * c.opt, opts.sh: New files. + * doc/passes.texi: Update. + +2003-05-31 Andreas Jaeger + + * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE + usage. + + * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE. + + * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE. + + * system.h: Poison ALLOCATE_TRAMPOLINE. + + * doc/tm.texi (Misc): Remove HANDLE_PRAGMA. + * system.h: Poison HANDLE_PRAGMA. + +2003-05-31 Kazu Hirata + + * doc/invoke.texi: Update dump file names. + +2003-05-31 Kaveh R. Ghazi + + * c-format.c (format_length_info, format_char_info, + format_flag_spec, format_flag_pair, format_kind_info): + De-const-ify structure members. + +2003-05-31 Roger Sayle + + * flags.h (flag_wrapv): New flag controlling overflow semantics. + * toplev.c (flag_wrapv): Declare the variable with default false. + (lang_independent_options): New option "-fwrapv" to set the above. + + * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2 + as x, when signed arithmetic overflow wraps around. + (fold): Optimize "-A - B" as "-B - A" if overflow wraps around. + * loop.c (basic_induction_var): Ignore BIVs that rely on undefined + overflow when flag_wrapv is true. + + * doc/invoke.texi: Document new -fwrapv command line option. + * doc/c-tree.texi: Mention that the overflow semantics of + NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent + upon both flag_wrapv and flag_trapv. + +2003-05-31 Eric Botcazou + + * doc/install.texi (mips-sgi-irix5): Add missing + HTML


marker. + +2003-05-31 Eric Botcazou + + * doc/md.texi (Machine Constraints): Document + missing SPARC constraints. + +2003-05-31 Eric Botcazou + + * doc/md.texi (Automaton pipeline description): Use + "type" instead of "cpu" as the attribute in the examples. + +2003-05-30 Stan Shebs + + * system.h: Poison OBJC_PROLOGUE. + +2003-05-30 Roger Sayle + + * emit-rtl.c (gen_complex_constant_part): New function for getting + the constant real or imaginary part of a complex constant. + (gen_realpart): Use it. + (gen_imagpart): Likewise. + +2003-05-30 Kazu Hirata + + * doc/invoke.texi: Fix typos. + * doc/rtl.texi: Likewise. + +2003-05-30 Dhananjay Deshpande + + * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal + mode. + * config/h8300/crtn.asm: Likewise. + * config/h8300/lib1funcs.asm: Likewise. + * config/h8300/h8300.c (asm_file_start): Likewise. + * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and + h8300snelf emulations for normal mode. + * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn + emulations for normal mode. + +2003-05-30 Dhananjay Deshpande + + * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return + true if TARGET_NORMAL_MODE. + +2003-05-30 Roger Sayle + + * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when + making a substitution. + (dead_libcall_p): If directly replacing a libcall with a + constant value produces an invalid instruction, also try forcing + the constant into the constant pool. + * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not + obvious that the source is a constant. + (compress_float_constant): Use set_unique_reg_note to place + REG_EQUAL notes on instructions. + +2003-05-30 Eric Christopher + + * config/mips/mips.c (extern_list): Add GTY marker. + (extern_head): Separate out definition. Add marker. + (mips_output_external): Use ggc_alloc for extern_list + allocation. + (mips_output_external_libcall): Ditto. + +2003-05-30 Florian Weimer + + * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or + later. + +2003-05-30 Kaveh R. Ghazi + + * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier + warnings. + (PRINT_OPERAND): Likewise. + +2003-05-30 Rainer Orth + + * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move + -mdebug/-no-mdebug switches ... + (MDEBUG_ASM_SPEC): ... here. + Use only with gas. + (EXTRA_SPECS): Initialize mdebug_asm_spec. + +2003-05-29 Matt Kraai + + * gthr-gnat.c: Remove #undef UNUSED. + (__gnat_default_lock, __gnat_default_unlock): Prototype. + (__gnat_task_lock, __gnat_task_unlock): Make declarations + prototypes. + (__gnat_install_locks): Convert declaration to ISO C90, make + parameter declarations prototypes, and remove blank line. + * gthr-gnat.h (__gnat_install_locks): Make parameter + declarations prototypes. + +2003-05-29 Jason Merrill + + * Makefile.in (unstrap): Remove stage_last after make unstage1. + +2003-05-29 Roger Sayle + + * mips-tfile.c (PAGE_SIZE): Increase page size to 32K. + +2003-05-29 Roger Sayle + Kaveh Ghazi + + PR bootstrap/10169 + * mips-tfile.c (main): Use getopt_long instead of getopt. + Add new command line option --version to display version. + Treat --verbose like -v to report a single line version. + (options): New global variable for getopt_long. + * mips-tdump.c (main): Use getopt_long instead of getopt. + New command line options -v, --version and -verbose to display + the program version number (to match mips-tfile's behavior). + (options): New global variable for getopt_long. + + * gcov.c (options): Zero-terminate getopt_long array. + * gcov-dump.c (options): Likewise. + + * Makefile.in (mips-tdump.o): Add dependency on version.h. + +2003-05-29 Stan Shebs + + Remove OBJC_PROLOGUE everywhere. + * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE. + * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE. + * config/d30v/d30v.h: Similarly. + * config/ip2k/ip2k.h: Similarly. + * doc/tm.texi: Remove doc of OBJC_PROLOGUE. + +2003-05-29 Roger Sayle + + * c-semantics.c (genrtl_do_stmt_1): New function split out from... + (gen_rtl_do_stmt): ... here. Call genrtl_do_stmt_1. + (expand_unreachable_stmt): Expand unreachable while statements + using genrtl_do_stmt_1. + +2003-05-29 Richard Sandiford + + * config/mips/mips-protos.h (mips_output_load_label): Declare. + * config/mips/mips.c (mips_output_load_label): New function. + (mips_output_conditional_branch): Use it. + * config/mips/mips.md (jump): And here. + +2003-05-28 Bob Wilson + + * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete. + (xtensa_split_operand_pair): New proto. + * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode. + (smalloffset_double_mem_p): Delete. + (gen_float_relational, printx, print_operand, xtensa_va_arg): + Fix whitespace. + (xtensa_split_operand_pair): New. + (xtensa_dbx_register_number): Fix formatting. + * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint. + * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory + instead of splitting them into single-word moves. Remove unnecessary + checks for reload_in_progress and reload_completed. + (movdi_internal, movdf_internal): Change to post-reload split patterns. + Add constraints to allow constant operands. + (movsf_internal): Allow CONST_INT operands. + +2003-05-27 Danny Smith + + * config.gcc (i[34567]86-*-mingw32*): Add host makefile + fragment i386/x-mingw32. + * config/i386/x-mingw32: New file. Make local_includedir + relative to EXEC_PREFIX. + +2003-05-27 Aaron W. LaFramboise + + * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update. + (MD_STARTFILE_PREFIX): Define. + +2003-05-27 Denis Chertykov + + * cselib.c (cselib_invalidate_regno): Abort if hardreg have a + VOIDmode. + * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in + call of cselib_invalidate_regno. + +2003-05-28 Daniel Jacobowitz + + * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct + -lthread to -lpthread. + +2003-05-28 Eric Botcazou + Bruce Korb + Arno Klaassen + + * fixinc/inclhack.def: Add missing declaration of getpagesize() + to unistd.h on Solaris 2.5.1. + Fix prototype of recv() and send() in sys/socket.h on + Solaris 2.5.1 and 2.6. + * fixinc/tests/base/unistd.h: Add solaris_unistd fix test. + * fixinc/tests/base/sys/socket.h: Add solaris_socket test. + * fixinc/check.tpl: Use 'diff -c', not 'diff -u'. + * fixinc/fixincl.x: Regenerate. + +2003-05-27 Jason Merrill + + * tree.c (expr_first, expr_length): New fns. + * tree.h: Declare them. + + * tree.c (iterative_hash_expr): Hash commutative expressions + consistently. + +2003-05-27 Richard Kenner + + * tree.h (contains_placeholder_p): Now returns bool. + (CONTAINS_PLACEHOLDER_P): New macro. + (type_contains_placeholder_p): New function. + * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF. + (contains_placeholder_p): Now returns bool. + Rework to use CONTAINS_PLACEHOLDER_P macro. + (type_contains_placeholder_p): New function. + * fold-const.c (fold, case COMPONENT_REF): Don't fold if + type_contains_placeholder_p. + (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold): + Use CONTAINS_PLACEHOLDER_P macro. + * builtins.c (fold_builtin): Likewise. + * calls.c (initialize_argument_information): Likewise. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. + * explow.c (expr_size): Likewise. + * expr.c (store_constructor, get_inner_reference): Likewise. + * function.c (assign_parms): Likewise. + * stor-layout.c (variable_size): Likewise. + +2003-05-25 Gabriel Dos Reis + + * diagnostic.h (output_verbatim, verbatim): Remove printf + attribute. + +2003-05-25 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Update Kean Johnston. + +2003-05-24 David Edelsohn + + * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute. + +2003-05-24 Nathanael Nerode + + * config/rs6000/440.md, config/stormy16/stormy16protos.h, + config/stormy16/stormy16.c, config/stormy16/stormy16.md: + Replace "GNU CC" with "GCC". + +2003-05-24 Matt Kraai + + * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for + intermediate computation. + +2003-05-23 Eric Christopher + + * config/mips/mips.md (clzsi, clzdi): New patterns. + +2003-05-23 Geoffrey Keating + + * gcc.c (default_compilers): Use -o to specify preprocessor's output + file. Make -no-integrated-cpp work when building PCH files. + * objc/lang-specs.h: Likewise. + +2003-05-23 Nathanael Nerode + + * fixinc/Makefile.in: Correct description. + * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c, + fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c, + fixinc/genfixes: Replace "GNU CC" with "GCC". + +2003-05-23 Roger Sayle + + * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl + builtin functions (and their __builtin_* variants). + * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}. + (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not + optimizing. + + * doc/extend.texi: Document new tan and atan builtins, and + their float and long double variants. + +2003-05-23 Jason Thorpe + + * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define + __sparcv9 in the TARGET_ARCH64 case. + +Fri May 23 22:17:32 CEST 2003 Jan Hubicka + + * i386.c (ix86_reorg): Calls are also jumps. + +2003-05-23 J"orn Rennecke + + * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL + note containing an EXPR_LIST, process all the arguments. + +Fri May 23 21:19:31 CEST 2003 Jan Hubicka + Andreas Jaeger + + * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__; + do not use assertion. + +2003-05-23 Mike Stump + + * tlink.c (scan_linker_output): Add support for darwin linker, as it + emits unresolved symbols one per line, consuming the entire line. + +2003-05-23 Larin Hennessy + Zack Weinberg + + * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe. + * config/m68k/m68k.c (m68k_output_function_prologue): + Remove code under #if NEED_PROBE. + * config/m68k/m68k.h: Don't define NEED_PROBE. + * config/m68k/m68k.md: Remove "probe" insn. + * doc/md.texi: Remove documentation of "probe" pattern. + +2003-05-23 Dorit Naishlos + + * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute. + +2003-05-23 Eric Botcazou + + * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*. + Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*. + +2003-05-22 Roger Sayle + + * real.c (real_maxval): New function to return the largest finite + value representable in a given mode (i.e. FLT_MAX and DBL_MAX). + * real.h (real_maxval): Prototype here. + * fold-const.c (fold_inf_compare): Transform comparisons against + +-Infinity into comparisons against DBL_MAX (or equivalent). + +2003-05-22 Mike Stump + + * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the + default. + +2003-05-22 DJ Delorie + + * calls.c (expand_call): If the arg block is going to grow + downward, we need argblock to point to the top of the block, + not the bottom. + +2003-05-22 Richard Kenner + + * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK. + + * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if + constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER. + +2003-05-22 Kaveh R. Ghazi + + * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers. + * m68k.c: Likewise. + * m68k.h: Likewise. + +2003-05-22 Zack Weinberg + + PR other/2873 + * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass + expressions to prevent triggering on recent curses.h, + linux/nls.h, or X11/Xlib.h. + (stdio_va_list): Add _G_va_list to bypass pattern. + (strict_ansi_not): Add bypass pattern for __SCO_VERSION__. + * fixinc/fixincl.x: Regenerate. + +2003-05-22 Rekha Bhintade + + * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target + switches when --target-help option is specified. + +2003-05-22 Eric Botcazou + + PR bootstrap/10805 + * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap + failure with Sun assembler 5.0 Alpha 03/27/98. + +2003-05-21 Loren James Rittle + + * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9 + to match system compiler convention. + +2003-05-21 Danny Smith + + * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for nonzero + value, not just if defined. + Update copyright year. + +2003-05-21 John David Anglin + + PR target/6428 + * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling + directories from LIB_SPEC to LINK_SPEC. Emit warning if `-p' or `-pg' + option is used without `-static'. + * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise. + * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise. + +2003-05-21 Bob Wilson + + * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE, + TARGET_SERIALIZE_VOLATILE): Delete. + (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits. + (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE. + (TARGET_SWITCHES): Remove "-mserialize-volatile" and + "-mno-serialize-volatile". + * config/xtensa/xtensa.c (print_operand): Remove checks of + TARGET_SERIALIZE_VOLATILE. + * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise. + * doc/invoke.texi (Option Summary, Xtensa Options): Remove + "-mserialize-volatile" and "-mno-serialize-volatile" options. + +2003-05-21 Nathan Sidwell + + * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier. + (nested_function): Likewise. + (notype_nested_function): Likewise. + +2003-05-21 Nick Clifton + + * config/stormy16/stormy-abi: Update overflow type for + R_XSTORMY16_16 reloc. + +2003-05-21 Nathan Sidwell + + * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED. + * c-parse.in (reswords): Remove __bounded__ and __unbounded__. + (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots. + * print-tree.c (print_node): Remove ambient-boundedness. + * tree.h (tree_common): Remove bounded_flag. + (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P, + BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P, + MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P, + TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, + TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED): + Remove. + (TYPE_QUALS): Remove BOUNDED. + (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove. + (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT, + TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH, + TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT, + VA_LIST_POINTER_DEPTH): Remove. + (struct tree_type): Remove pointer_depth. + +2003-05-20 Kaveh R. Ghazi + + * c-pretty-print.c (pp_c_integer_literal): Use + HOST_WIDE_INT_PRINT_DOUBLE_HEX. + +2003-05-20 Roger Sayle + Kazu Hirata + Joern Rennecke + + * gcse.c (cprop_jump): Make use of REG_EQUAL notes on both + setcc and jump, if they exist. If substituted instruction + fails to validate, store current effort in a REG_EQUAL note. + (cprop_insn): Don't attempt further substitutions if the + current instruction has been deleted. + (local_cprop_pass): Likewise. + + * jump.c (redirect_jump): Also update REG_EQUAL note, if + one is attached to the jump instruction. + (invert_jump): Delete REG_EQUAL note on jump, if one exists. + +2003-05-21 Danny Smith + + PR c++/9738 + * config/i386/winnt.c (i386_pe_encode_section_info): Enable + even if not first. + +2003-05-20 Kaveh R. Ghazi + + * genautomata.c (output_description, output_automaton_units, + output_state_arcs): Add missing specifiers. + +2003-05-20 Bob Wilson + + * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives. + (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros. + (__mulsi3): Use do_addx* instead of ADDX* instructions. Formatting. + (nsau): Rename to do_nsau. Provide alternate version for use when + the NSAU instruction is available. + (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro. + (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction. + * config/xtensa/xtensa-config.h: Update comments to match binutils. + (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define. + * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define. + (TARGET_ABS, TARGET_ADDX): Define. + (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX. + (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx". + * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4, + *subx8): Set predicate condition to TARGET_ADDX. + (abssi2): Set predicate condition to TARGET_ABS. + * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs", + "-maddx", and "-mno-addx" options. + (Xtensa Options): Likewise. Also tag some opcode names with @code. + +2003-05-20 Kevin Ryde + Wolfgang Bangerth + + PR/10355 + * doc/extend.texi: Put a warning into the documentation + of attribute regparm. + +2003-05-20 Jason Merrill + + * tree.c (expr_last): New fn. + * tree.h: Declare it. + * objc/objc-act (expr_last): Rename to objc_expr_last. + +2003-05-20 J"orn Rennecke + + * sh.c (sh_register_move_cost): Add clase for moving between + FP registers and MAC registers. + +2003-05-19 John David Anglin + + * pa/milli64.S ($$mulI): Fix typo. + +2003-05-19 Matt Kraai + + * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p) + (nonlocal_set_p): Remove initial blank line. + * dwarf2out.c (simple_type_size_in_bits): Likewise. + * et-forest.c (et_forest_create): Likewise. + * explow.c (stabilize): Likewise. + * fix-header.c (write_lbrac): Likewise. + * graph.c (start_fct, node_data): Likewise. + * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise. + * rtlanal.c (global_reg_mentioned_p): Likewise. + * tree.c (bit_position): Likewise. + +2003-05-19 Alexandre Oliva + + * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct + -lthread to -lpthread. + +2003-05-19 Neil Booth + + * c-opts.c (c_common_decode_option): Don't accept dollars + as identifier characters in assembly. + * doc/cpp.texi: Document this. + +2003-05-19 Seth Arnold + Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_stack_info): Do not add + vrsave_size twice. + +2003-05-19 Aldy Hernandez + + * doc/tm.texi (function_arg): Fix typo. + +2003-05-19 Matt Austern + + * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option. + * c-common.h (warn_invalid_offsetof): Declare. + * c-common.c (warn_invalid_offsetof): Define. + * doc/invoke.texi: Document -Winvalid-offsetof. + * testsuite/g++.dg/other/offsetof3.C: New. + * testsuite/g++.dg/other/offsetof4.C: New. + +2003-05-19 Kevin B. Hendricks + David Edelsohn + + * config/rs6000/rs6000.c (rs6000_alignment_string, + rs6000_alignment_flags): New variables. + (rs6000_parse_alignment_option): New function. + (rs6000_override_options): Call it. + * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option. + (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New + macros. + * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED + natural alignment if TARGET_NATURAL_ALIGNMENT + (ROUND_TYPE_ALIGN): Always use default record alignment if + TAGET_NATURAL_ALIGNMENT. + * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same + (ROUND_TYPE_ALIGN): Same. + * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same + (ROUND_TYPE_ALIGN): Same. + * doc/invoke.texi (Option Summary, PowerPC Options): Document + new options. + +2003-05-19 J"orn Rennecke + + * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME + of a function using ASMSPEC, prepend a star. + +2003-05-19 Jason Merrill + + * tree-inline.c (copy_body_r): Avoid generating &* during inline + substitution. + +2003-05-19 Andrew Macleod + + * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do + not mark assignments to the hard frame pointer as being stack + frame related. + (xstormy16_expand_epilogue): Mark adjustments to the stack + pointer as being stack frame related. + +2003-05-19 Richard Sandiford + + * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, + ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros. + (PREDICATE_CODES): Add hilo_operand. + * config/mips/mips.c (hilo_operand): New predicate. + (mips_adjust_insn_length): Account for the number nops that might + be needed to avoid hardware hazards. + * config/mips/mips.md (dslot): Remove attribute. + (hazard): New attribute. + (can_delay): Use it. Check for calls, branches & jumps. + (muldi3): Use the standard dmult pattern for mips16 code. + (muldi3_internal, muldi3_internal2): Adjust conditions accordingly. + +2003-05-19 Richard Sandiford + + * config/mips/mips-protos.h (final_prescan_insn, + mips_count_memory_refs, mips_fill_delay_slot): Remove. + * config/mips/mips.h (delay_type, dslots_load_total, + dslots_load_filled, dslots_jump_total, dslots_jump_filled, + dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2, + mips_load_reg3, mips_load_reg4): Remove. + (MASK_STATS): Remove. + (MASK_EXPLICIT_RELOCS): Reuse its value. + (TARGET_STATS): Remove. + (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops. + Warn that -mstats is now ignored. + (FINAL_PRESCAN_INSN): Undefine. + (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics. + (ASM_OUTPUT_REG_POP): Likewise. + * config/mips/mips.c (dslots_load_total, dslots_load_filled, + dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs, + mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4, + mips_fill_delay_slot, mips_count_memory_refs, + final_prescan_insn): Remove. + (output_block_move): Remove calls to mips_count_memory_refs. + (print_operand): Remove printing of #nop for TARGET_STATS. + (mips_output_function_epilogue): Remove TARGET_STATS code. + Reorganize setting of fnnmae. + * config/mips/mips.md: Remove handling of dslot statistics + throughout file. Change all fcmp patterns into normal asm + templates, removing calls to mips_fill_delay_slot. + * doc/invoke.texi: Remove documentation of -mstats. + +2003-05-19 Richard Sandiford + + * config/mips/mips.c (mips_class_max_nregs): Return the number of + words in the mode. + +2003-05-19 Richard Sandiford + + * config/mips/mips.c (override_options): Disable explicit + relocs for old ABIs unless using gas. + +2003-05-18 Eric Christopher + + * config/mips/mips.h: Remove definition of g_switch_value. + +2003-05-18 Matt Kraai + + * flags.h (g_switch_value): Change to an unsigned + HOST_WIDE_INT. + * toplev.c (g_switch_value): Likewise. + + * config/alpha/alpha.c (small_symbolic_operand): Remove + g_switch_value cast. + (alpha_in_small_data_p): Cast size to an unsigned + HOST_WIDE_INT. + + * config/frv/frv.c (frv_in_small_data_p): Cast size to an + unsigned HOST_WIDE_INT. + * config/frv/frv.h (g_switch_value, g_switch_set): Remove. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set. + + * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an + unsigned HOST_WIDE_INT. + (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED. + * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove. + (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value. + + * config/rs6000/rs6000.c (rs6000_file_start): Use + HOST_WIDE_INT_PRINT_UNSIGNED. + (small_data_operand): Cast summand to unsigned HOST_WIDE_INT. + (rs6000_elf_in_small_data_p): Cast size to unsigned + HOST_WIDE_INT. + * config/rs6000/sysv4.h (g_switch_value, g_switch_set): + Remove. + (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and + g_switch_set. + (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove + g_switch_value cast. + +2003-05-18 Roger Sayle + Zack Weinberg + + PR middle-end/10472 + * builtins.c (expand_builtin_memcpy): Call force_operand on + expressions and use simplify_gen_binary to create the addition. + +2003-05-18 Andreas Schwab + + * config/m68k/m68k.md: Use define_constants for unspec numbers. + +2003-05-18 Neil Booth + + * config/sparc/sparc.h: Define sparc for now. + +2003-05-18 Nathanael Nerode + + * config.gcc: Clear xm_file, md_file at the beginning of each pass. + + * config/stormy16/stormy16.h: Remove about 3000 lines of + target-independent comments. Update copyright notice. + + * doc/collect2.texi: GNU CC -> GCC. + * doc/headerdirs.texi: GNU CC -> GCC. + +2003-05-18 Gabriel Dos Reis + + * hashtable.h (struct ht_identifier): Add data member "hash_value". + * hashtable.c (ht_lookup): Use it when searching, remember. + (ht_expand): Do not recompute. + * tree.h (IDENTIFIER_HASH_VALUE): New macro. + +2003-05-18 Nathan Sidwell + + * gcov-io.c (gcov_read_bytes): Fix fread thinko. + +2003-05-18 Neil Booth + + * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS): + Default here. + (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS(). + * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here. + * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__. + * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h, + config/arm/linux-elf.h, config/arm/rtems-elf.h, + config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h, + config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h, + config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h, + config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h, + config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h, + config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h, + config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h, + config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h, + config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h, + config/sparc/openbsd64.h, config/sparc/sp64-elf.h, + config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h: + Don't define __ELF__. + * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS): + Define __ELF__. + * doc/cpp.texi: Document __ELF__. + * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS. * + +2003-05-17 Kaveh R. Ghazi + + * builtins.c (validate_arglist): Eliminate libiberty VA_ macros, + always use stdarg. + * c-errors.c (pedwarn_c99): Likewise. + * c-format.c (status_warning): Likewise. + * c-semantics.c (build_stmt): Likewise. + * calls.c (emit_library_call, emit_library_call_value): Likewise. + * collect2.c (notice, fatal_perror, fatal, error): Likewise. + * cpperror.c (cpp_error, cpp_error_with_line): Likewise. + * diagnostic.c (build_message_string, output_printf, + output_verbatim, verbatim, inform, warning, pedwarn, error, sorry, + fatal_error, internal_error, warning_with_decl, pedwarn_with_decl, + error_with_decl, fnotice): Likewise. + * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta, + dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr, + dw2_asm_output_addr_rtx, dw2_asm_output_nstring, + dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128, + dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128, + dw2_asm_output_encoded_addr_rtx): Likewise. + * emit-rtl.c (gen_rtx, gen_rtvec): Likewise. + * errors.c (warning, error, fatal, internal_error): Likewise. + * final.c (output_operand_lossage, asm_fprintf): Likewise. + * fix-header.c (fatal): Likewise. + * gcc.c (fatal, error, notice): Likewise. + * gcov.c (fnotice): Likewise. + * genattrtab.c (attr_rtx, attr_printf): Likewise. + * gengtype.c (error_at_line, xasprintf, oprintf): Likewise. + * gensupport.c (message_with_line): Likewise. + * mips-tfile.c (fatal, error): Likewise. + * protoize.c (notice): Likewise. + * ra-debug.c (ra_debug_msg): Likewise. + * read-rtl.c (fatal_with_file_and_line): Likewise. + * rtl-error.c (error_for_asm, warning_for_asm): Likewise. + * tree.c (build, build_nt, build_function_type_list): Likewise. + +2003-05-17 Neil Booth + + * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove. + * gcc.c (cpp_predefines): Remove. + (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES. + (static_specs): Remove predefines. + * system.h: Poison CPP_PREDEFINES. + * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h, + config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES. + +2003-05-17 Neil Booth + + * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h, + config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h, + config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES, + use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead. + +2003-05-17 Neil Booth + + PR c/9209 + * c-common.c, c-common.h (dollars_in_ident): Remove. + * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true. + (c_common_init_options, c_common_decode_option): Set dollars_in_ident. + * cpphash.h (warned_dollar): Rename warn_dollars. + * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang) + Permit dollars regardless of -std=. + (post_options): Set warn_dollars. + * cpplex.c (forms_identifier_p): Use warn_dollars. + * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h: + Remove redundant definitions of DOLLARS_IN_IDENTIFIERS. + * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi: + Update documentation. + +2003-05-17 Andreas Schwab + + * config/m68k/m68k.c (m68k_output_function_prologue): Use + HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when + formatting a HOST_WIDE_INT. + (m68k_output_function_epilogue): Likewise. + +2003-05-17 Zack Weinberg + + * doc/install.texi: Remove information about desupported targets. + +2003-05-17 Andreas Schwab + + * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board. + * config/m68k/linux.h: Likewise. + * config/m68k/m68k-none.h: Likewise. + * config/m68k/netbsd-elf.h: Likewise. + * config/m68k/sgs.h: Likewise. + * config/m68k/m68k.h: Likewise. + * config/m68k/m68k.md: Likewise. + * config/m68k/m68k.c: Likewise. + * doc/md.texi (Machine Constraints): Remove Sun FPA specific + constraints. + * doc/invoke.texi (Option Summary): Remove -mfpa. + (M680x0 Options): Likewise. + +2003-05-17 David Edelsohn + + * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic. + +2003-05-17 Neil Booth + + * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS. + * config/sparc/liteelf.h, config/sparc/openbsd64.h, + config/sparc/rtemself.h, config/sparc/sol2-64.h, + config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h: + Update for use of TARGET_SUB_OS_CPP_BUILTINS. + +2003-05-17 Neil Booth + + * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and + TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES. + +2003-05-17 Neil Booth + + * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h. + * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h, + sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h, + sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h, + sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h, + sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h, + sparc/sysv4.h, + * sparc/sysv4-only.h: New. + +2003-05-17 Alan Modra + + * function.c (assign_parms): Check for zero size args. + +2003-05-16 Kaveh R. Ghazi + + * cfgloopanal.c (test_for_iteration): Use string concatentation on + HOST_WIDE_INT_PRINT_* format specifier to collapse multiple + function calls into one. + * dbxout.c (dbxout_symbol): Likewise. + * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise. + * dwarf2asm.c (dw2_asm_output_data_uleb128, + dw2_asm_output_data_sleb128): Likewise. + * genrecog.c (debug_decision_2): Likewise. + * loop.c (emit_prefetch_instructions): Likewise. + * print-rtl.c (print_rtx): Likewise. + * print-tree.c (print_node_brief, print_node): Likewise. + * ra-debug.c (dump_igraph, dump_graph_cost, + dump_static_insn_cost): Likewise. + * ra-rewrite.c (dump_cost): Likewise. + * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise. + * sreal.c (dump_sreal): Likewise. + * unroll.c (unroll_loop, precondition_loop_p): Likewise. + * varasm.c (assemble_vtable_entry): Likewise. + + * avr.c (avr_output_function_prologue, + avr_output_function_epilogue, print_operand): Fix format specifier + warnings. + (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED. + * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings. + +2003-05-16 Geoffrey Keating + + * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING + and ! TARGET_STRING cases. + + * doc/cppopts.texi (-undef): Fix texinfo warning. + + * doc/cppopts.texi (-H): Document that -H works for PCH files too. + * cppfiles.c (validate_pch): When -H is used, print some information + about PCH files found. + +2003-05-16 Richard Kenner + + * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h. + * config/mips/t-isa3264, config/mips/t-r3900: Likewise. + * config/mips/t-sr71k: Likewise. + +2003-05-16 Kaveh R. Ghazi + + * arc.c (arc_output_function_prologue, + arc_output_function_epilogue): Fix format specifier warnings. + * arc.h (LARGE_INT): Fix signed/unsigned warnings. + + * v850.c (print_operand): Fix format specifier warnings. + + * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format + specifier warnings. + + * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix + format specifier warnings. + + * ip2k.c (function_prologue, function_epilogue, print_operand): + Fix format specifier warnings. + * ip2k.md: Likewise. + + * i960.c (i960_output_function_prologue, i960_print_operand, + i960_print_operand_addr): Fix format specifier warnings. + + * i370.c (ascebc, ebcasc): Wrap in macros controlling usage. + (i370_output_function_prologue): Fix format specifier warnings. + * i370.h (PRINT_OPERAND): Likewise. + + * fr30.c (fr30_print_operand): Fix format specifier warnings. + + * dsp16xx.c (print_operand_address): Fix format specifier warning. + * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers. + + * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format + specifier warnings. + + * alpha.c (print_operand_address, alpha_start_function, + unicosmk_output_ssib): Use string concatentation on + HOST_WIDE_INT_PRINT_* format specifier to collapse multiple + function calls into one. + * arm.c (arm_print_operand): Likewise. + * cris.c (cris_asm_output_mi_thunk): Likewise. + * frv.c (frv_asm_output_mi_thunk): Likewise. + * ia64.c (ia64_print_operand, process_set): Likewise. + * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk): + Likewise. + * mips/iris5gas.h (PUT_SDB_SIZE): Likewise. + * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise. + * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise. + * pa.h (PRINT_OPERAND_ADDRESS): Likewise. + * rs6000.c (rs6000_va_start, print_operand_address): Likewise. + * s390.c (s390_assemble_integer): Likewise. + * sparc.c (sparc_flat_function_prologue, + sparc_flat_function_epilogue): Likewise. + * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise. + * vax.c (vax_output_mi_thunk): Likewise. + + * frv.c (frv_print_operand_memory_reference): Fix format specifier + warning. + (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED. + + * m68k.c (m68k_output_function_epilogue): Fix format specifier + warnings. + + * stormy16-protos.h (xs_hi_general_operand, + xs_hi_nonmemory_operand): Prototype. + * stormy16.c (xstormy16_output_shift): Fix format specifier + warnings. + + * cris.c: Fix format specifier warnings. + +2003-05-16 Nick Clifton + + * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM. + +2003-05-16 Wolfgang Bangerth + + * doc/bugreport.texi: Remove most of the of the preface of the + bugs section. + +2003-05-16 Jakub Jelinek + + * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle + .save XX, r0. + +2003-05-15 Roger Sayle + + * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo. + +2003-05-15 Eric Christopher + + * cfgcleanup.c (merge_blocks): Fix return value. + +2003-05-15 Eric Christopher + + * combine.c (expand_compound_operation): Make sure + that zero_extend operation is profitable. + +2003-05-15 Richard Henderson + + * config/alpha/linux.h, config/alpha/linux-elf.h: Remove + code protected by USE_GNULIBC_1. + +2003-05-15 Zack Weinberg + + * config.gcc: Purge all targets obsoleted in GCC 3.3. Also + remove hppa*-*-mpeix* which could not be built, and prune + files from tmake_file= or tm_file= lists that don't exist. + + * config/alpha/alpha-interix.h, config/alpha/alpha32.h + * config/alpha/t-interix, config/arm/conix-elf.h + * config/arm/t-arm-aout, config/arm/t-strongarm-coff + * config/arm/unknown-elf-oabi.h, config/i386/win32.h + * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h + * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h + * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h + * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h + * config/m68k/m68k-psos.h, config/m68k/mot3300.h + * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h + * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h + * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h + * config/m68k/t-mot3300, config/m68k/t-mot3300-gald + * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld + * config/m68k/tower-as.h, config/m68k/tower.h + * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h + * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh + * config/m88k/m88k-protos.h, config/m88k/m88k.c + * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h + * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas + * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h + * config/mips/rtems64.h, config/mips/sni-gas.h + * config/mips/sni-svr4.h, config/mips/t-ecoff + * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h + * config/mn10200/mn10200.c, config/mn10200/mn10200.h + * config/mn10200/mn10200.md, config/mn10200/t-mn10200 + * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h + * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h + * config/romp/romp-protos.h, config/romp/romp.c + * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h + * config/rs6000/aix3newas.h, config/rs6000/mach.h + * config/sparc/bsd.h, config/sparc/hal.h + * config/sparc/linux-aout.h, config/sparc/lynx-ng.h + * config/sparc/lynx.h, config/sparc/netbsd.h + * config/sparc/sp86x-aout.h, config/sparc/splet.h + * config/sparc/sun4gas.h, config/sparc/sun4o3.h + * config/sparc/sunos4.h, config/sparc/t-chorus-elf + * config/sparc/t-halos, config/sparc/t-sparcbare + * config/sparc/t-splet, config/sparc/t-sunos41 + * config/v850/rtems.h: Delete file. + +2003-05-15 Aldy Hernandez + + * config/rs6000/rs6000-protos.h (function_value): Protoize. + + * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function. + + * config/rs6000/rs6000.c (rs6000_function_value): New. + +2003-05-15 Philip Blundell + + * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale. + All uses updated. + (arm_tune_xscale): New variable. + (arm_override_options): Set it. + (arm_adjust_cost): Use it in place of arm_arch_xscale. + (arm_gen_load_multiple): Likewise. + (arm_gen_store_multiple): Likewise. + * config/arm/arm.md (is_xscale): Likewise. + * config/arm/arm.h (arm_tune_xscale): Declare. + +2003-05-15 Philip Blundell + + PR target/10730 + * config/arm/arm.c (adjacent_mem_locations): Reject offsets + involving invalid constants. + +2003-05-15 John David Anglin + + * pa.c (hppa_expand_prologue): Remove blockage. + +2003-05-15 Wolfgang Bangerth + + * doc/bugreport.texi: Remove most of the bug reporting + instructions and merge them into bugs.html. + +2003-05-14 Matt Kraai + + * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast + g_switch_value to unsigned HOST_WIDE_INT. + +2003-05-14 Eric Christopher + + * combine.c: Fix header comments. + (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate + to all calls and prototype. + +2003-05-14 Roger Sayle + + PR optimization/10764 + * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3): + Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1). + (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): Likewise, + add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1). + (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match + the corresponding *fyl2x_?fxf3 instructions. + +2003-05-14 Bob Wilson + + * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59. + * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16, + XCHAL_HAVE_L32R): New. + * config/xtensa/xtensa-protos.h (non_const_move_operand, + xtensa_load_constant, xtensa_function_prologue, + xtensa_function_epilogue): Delete prototypes. + (xtensa_expand_prologue): New. + * config/xtensa/xtensa.c (frame_size_const, + TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG, + non_const_move_operand, xtensa_load_constant, xtensa_reorg, + xtensa_function_prologue): Delete. + (add_operand, xtensa_mem_offset): Formatting. + (move_operand): If the const16 option is available, allow any SFmode + and SImode constants. + (xtensa_emit_move_sequence): Inline the former contents of + xtensa_load_constant with modifications to handle the const16 option. + (override_options): Add xtensa_char_to_class['W'] and set it to + the general register class only if the const16 option is enabled. + Fix formatting. Disallow PIC when using the const16 option. + (print_operand): Reorganize to switch on "letter" instead of the + RTL code. Add output_operand_lossage calls for invalid cases. + Add support for 't' and 'b' letters. + (xtensa_expand_prologue): New function to replace + xtensa_function_prologue and xtensa_reorg. + (xtensa_function_epilogue): Declare this as static. Delete code + to print the retw.n or retw instruction. + (xtensa_return_addr): Use A0_REG instead of 0. + (xtensa_rtx_costs): Add costs for using the const16 option. + * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New. + (TARGET_DEFAULT): Add CONST16 if L32R instructions not available. + (TARGET_SWITCHES): Add "const16" and "no-const16". + (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter. + (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not + using the const16 option. + (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn. + (TRAMPOLINE_SIZE): Change from 49 to 59. + (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline. + (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses + when using the const16 option. + (PREDICATE_CODES): Delete non_const_move_operand. + * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and + UNSPECV_ENTRY. + (movdi, movdf): If the source is a constant, always expand to a + sequence of movsi insns. + (movdi_internal, movdf_internal): Remove alternative using l32r insns. + (movsi_internal, movsf_internal): Add alternative using const16 insns. + (movsf): Add const16 support. + (entry, prologue, epilogue): New. + (set_frame_ptr): Add missing mode for unspec_volatile operation. + Likewise for subsequent split pattern. + * doc/invoke.texi (Option Summary, Xtensa Options): Document new + "-mconst16" and "-mno-const16" options. + +2003-05-14 Richard Henderson + + * config/ia64/ia64.c (ia64_expand_load_address): Force destination + to be DImode register. Merge load_symptr. + * config/ia64/ia64.md (load_symptr): Remove. + +2003-05-14 Richard Henderson + + * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from + DEFERRED_CONSTANT_P. + * integrate.c (copy_rtx_and_substitute): Update use. + * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL + to the copy generated. + (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN + of the constant to see if we should emit. + (mark_constant): Similarly. + (output_constant_def_contents): Set TREE_ASM_WRITTEN. + +2003-05-14 David Edelsohn + + * config/rs6000/rs6000.md (movsi_internal2): Use compare for self + move record condition. + (movdi_internal2): Same. + +2003-05-14 Nathan Sidwell + + * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here. + (GCOV_TAG_*) Force type to gcov_unsigned_t. + (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New. + (struct gcov_var): Remove modified. Add start, length, offset, + overread. Have buffer array for libgcov. + (gcov_sync, gcov_seek): Definitions moved to gcov-io.c. + (gcov_position, gcov_rewrite, gcov_is_eof): Adjust. + * gcov-io.c (gcov_open): Set mode, do not read anything. + (gcov_close): Write final block. + (gcov_write_block, gcov_allocate): New. + (gcov_write_bytes): Make static. Write or allocate buffer. + (gcov_write_unsigned, gcov_write_counter): Buffer can never be + null. + (gcov_write_string): Adjust. + (gcov_write_tag) + (gcov_write_length): Adjust. Flush the block. + (gcov_write_tag_length): Buffer can never be null. + (gcov_read_bytes): Make static. Read in block. + (gcov_sync): Moved here. Adjust. + (gcov_seek): Moved here. Adjust. + * coverage.c (read_counts_file): Adjust. + * gcov-dump.c (print_prefix): Add position parameter. + (flag_dump_positions): New flag. + (options, main, print_usage): Add it. + (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters, + tag_summary): Adjust. + * gcov.c (read_graph_file, read_count_file): Adjust. + * libgcov.c (gcov_exit): Adjust. + + * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files + (libgcov.a): Depend on libgcc.a. + (gcov.o, gcov-dump.o): Add gcov-io.c. + * mklibgcc.in (libgcov_c_dep): Use $(srcdir). + + * loop.c (check_dbra_loop): Factor common test. + +2003-05-14 Ben Elliston + + * doc/md.texi (Automaton pipeline description): Grammar fixes. + +2003-05-14 Richard Sandiford + + * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define. + (TARGET_INITIALIZER): Include it. + * target.h (struct gcc_target): Add machine_dependent_reorg field. + * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg. + * system.h: Poison MACHINE_DEPENDENT_REORG. + + * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration. + * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove. + * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (alpha_handle_trap_shadows): Remove "first insn" parameter. + (alpha_align_insns): Likewise. + (alpha_reorg): Likewise. Make static. Update calls to above + functions. + + * config/arm/arm-protos.h (arm_reorg): Remove declaration. + * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove. + * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (arm_reorg): Remove parameter. Make static. + + * config/avr/avr-protos.h (machine_dependent_reorg): Remove. + * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove. + * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (avr_reorg): Renamed from machine_dependent_reorg. Make static. + Remove parameter. + + * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove. + * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove. + * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (c4x_reorg): Renamed from c4x_process_after_reload. Make static. + Remove parameter. + + * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove. + * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove. + * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove. + + * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove. + * config/frv/frv.c: Remove orphaned comment. + + * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove. + * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove. + * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (ix86_reorg): Renamed from x86_machine_dependent_reorg. Make static. + Remove parameter. + + * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration. + * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove. + * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (emit_insn_group_barriers): Remove "first insn" parameter. + (emit_all_insn_group_barriers): Likewise. + (ia64_reorg): Likewise. Make static. Update calls to above functions. + (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers. + + * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove. + * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove. + * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (ip2k_reorg): Renamed from machine_dependent_reorg. Make static. + Remove parameter. + + * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration. + * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove. + * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (m68hc11_reorg): Make static. Remove parameter. + + * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove. + * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove. + * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (conditionalize_optimization): Remove parameter. + (mcore_reorg): Renamed from mcore_dependent_reorg. Remove parameter. + Make static. Update call to conditionalize_optimization. + + * config/mips/mips-protos.h (machine_dependent_reorg): Remove. + * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove. + * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (mips_reorg): Renamed from machine_dependent_reorg. Remove parameter. + Make static. + + * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove. + * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove. + * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (mmix_reorg): Renamed from mmix_machine_dependent_reorg. Make static. + Remove parameter. + + * config/pa/pa-protos.h (pa_reorg): Remove declaration. + * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove. + * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (pa_combine_instructions): Remove "first insn" parameter. + (remove_useless_addtr_insns): Likewise. + (pa_reorg): Likewise. Make static. Update calls to above functions. + + * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove + commented-out definition. + + * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove. + * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove. + * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (s390_reorg): Renamed from s390_machine_dependent_reorg. Make static. + Remove parameter. + + * config/sh/sh-protos.h (machine_dependent_reorg): Remove. + * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove. + * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (sh_reorg): Renamed from machine_dependent_reorg. Make static. + Remove parameter. + (sh_output_mi_thunk): Call sh_reorg directly. + * config/sh/sh.md: Update comment. + + * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove + commented-out definition. + + * config/v850/v850-protos.h (v850_reorg): Remove declaration. + * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove. + * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (v850_reorg): Make static. Remove parameter. + + * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration. + * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove. + * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define. + (xtensa_reorg): Make static. Remove parameter. + + * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove. + (TARGET_MACHINE_DEPENDENT_REORG): Document. + +2003-05-13 Richard Henderson + + * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if + the old decl had instantiated DECL_RTL. + +2003-05-13 Mike Stump + + * doc/invoke.texi (Option Summary): Kill off documentation for -$. + +2003-05-13 Janis Johnson + + * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect + HOST_WIDE_INT argument. + +2003-05-13 Jason Merrill + + * tree.h (STRIP_MAIN_TYPE_NOPS): New macro. + + * tree.c (iterative_hash_expr): New fn. + + * c-semantics.c (emit_local_var): Don't mess with temp slots if + there's no initializer. + +2003-05-13 Richard Sandiford + + * final.c (final_scan_insn): Apply the effects of frame-related + delay slot insns before emitting a delayed branch. + +2003-05-13 Nick Clifton + + * config/mcore/mcore.md (jump): Use emit_jump_insn. + +2003-05-13 Ulrich Weigand + + * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second + parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT. + +2003-05-12 DJ Delorie + + * expr.c (move_by_pieces): Honor the alignment of TO and FROM. + (emit_push_insn): Don't use push when the source alignment is less + than the stack's push rounding. + +2003-05-13 Zack Weinberg + + * diagnostic.c (output_format): Add support for %m. + (output_printf, output_verbatim, diagnostic_set_info, + verbatim): Set err_no field of the text_info structure being + initialized. + (fatal_io_error): Delete function. + * diagnostic.h (text_info): Add err_no field. + * toplev.h (fatal_io_error): Delete prototype. + + * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c + * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c + * objc/objc-act.c: Replace all calls to fatal_io_error with + calls to fatal_error; add ": %m" to the end of all the affected + error messages. + +2003-05-13 Zack Weinberg + + * varasm.c (notice_rtl_inlining_of_deferred_constant): New function. + * rtl.h: Prototype it. + * integrate.c (copy_rtx_and_substitute ): Call it + when appropriate. + +2003-05-13 Ulrich Weigand + + * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative. + ("*iorsi3_oi"): Likewise. + +2003-05-13 Richard Earnshaw + + * arm.md (compare_scc): Use shorter sequence for EQ case. + (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns. + (and_scc_scc): Ensure split only applies when there is a dominance + of the comparisons. + (and_scc_scc_nodom): New insn-and-split pattern. + +2003-05-13 Richard Sandiford + + * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly + to _Unwind_SetGRPtr(). + +2003-05-13 Michael Eager + + * Makefile.in: Initialize program_transform_cross_name from + @program_transform_name@ instead of target_alias. + +2003-05-12 Janis Johnson + Alan Modra + Jakub Jelinek + + * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests. + * configure: Rebuild. + * config/rs6000/rs6000-protos.h: Update. + * config/rs6000/rs6000.c (rs6000_tls_size): New. + (rs6000_tls_size_string): New. + (rs6000_parse_tls_size_option): New. + (rs6000_legitimize_tls_address): New. + (rs6000_tls_get_addr): New. + (rs6000_got_sym): New. + (rs6000_tls_symbol_ref): New. + (rs6000_tls_symbol_ref_1): New. + (rs6000_get_some_local_dynamic_name): New. + (rs6000_get_some_local_dynamic_name_1): New. + (TARGET_HAVE_TLS): New. + (TARGET_CANNOT_FORCE_CONST_MEM): New. + (rs6000_override_options): Handle -mtls-size option. + (constant_pool_expr_1): Handle TLS symbols. + (rs6000_legitimize_address): Handle TLS symbols. + (rs6000_tls_referenced_p): New. + (rs6000_legitimate_address): Handle TLS symbols. + (rs6000_emit_move): Handle TLS symbols. + (print_operand): Handle TLS symbols. + (uses_TOC): Handle TLS symbols. + (rs6000_emit_prologue): Use symbol for unspec constant. + * config/rs6000/rs6000.h (HAVE_AS_TLS): New. + (some_ld_name): New. + (LEGITIMATE_CONSTANT_P): Handle TLS symbols. + (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols. + (PREDICATE_CODES): Add rs6000_tls_symbol_ref. + * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): + Support TLS. + (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_32, 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): New. + * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size. + +2003-05-12 Neil Booth + + * Makefile.in (stage2_build, stage3_build, stage4_build): + Set BUILD_CC to the same as CC. + +2003-05-12 Neil Booth + + * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards. + +2003-05-12 Andreas Schwab + + * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp' + as unused. + (bundling): Initialize 'pos'. + (ia64_expand_builtin): Initialize 'rmode'. + +2003-05-12 David Edelsohn + + * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT. + (ASM_OUTPUT_ALIGNED_COMMON): Same. + (ASM_OUTPUT_LOCAL): Same. + +Mon May 12 21:53:29 CEST 2003 Jan Hubicka + + * varasm.c (output_constant): Fix underflow. + +2003-05-12 Mark Mitchell + + PR other/10745 + * configure.in: Correct detection of GNU ld version number. + * configure: Regenerated. + +2003-05-12 Zack Weinberg + + * diagnostic.c (diagnostic_for_decl): Take a + diagnostic_context argument. Restructure to be consistent + with diagnostic_report_diagnostic. + (diagnostic_count_diagnostic): Now static. Take a + diagnostic_info argument, not just a diagnostic_t. Some code + moved here from internal_error. Move a case label for + clarity. + (diagnostic_action_after_output): New function. Code moved + here from internal_error and fatal_error. + (bug_report_request): New #define so that this text appears in + only one place. + (diagnostic_report_diagnostic): Update to match changes to + diagnostic_count_diagnostic. Call diagnostic_action_after_output. + (diagnostic_set_info): Call gettext here. + + (pedwarn): Update comment. Don't call gettext here. + (sorry): Use report_diagnostic. Don't call gettext here. + (fatal_error): Remove final fnotice and exit, but call + real_abort to prevent warnings about noreturn function returning. + (internal_error): Likewise. Don't do ICE suppression here nor + call context->internal_error. + (warning_with_decl): Suppress for decls in system headers. + Adjust call to diagnostic_for_decl. + (pedwarn_with_decl): Likewise. + (error_with_decl): Adjust call to diagnostic_for_decl. + (error_recursion): Use bug_report_request. + + * diagnostic.h: Remove prototype of diagnostic_count_diagnostic. + * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call + diagnostic_count_diagnostic. + +2003-05-12 John David Anglin + + * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch. + +Mon May 12 15:57:54 CEST 2003 Jan Hubicka + + * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT + * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning. + * mips/mips.h (ASM_OUTPUT_SKIP): Fix typo in the previous patch. + +2003-05-12 Roger Sayle + + * doc/rtl.texi: Document zero_extract as a valid destination + of a set insn. + +2003-05-12 Richard Earnshaw + + * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with + '.'. Change all local symbol definitions and references to use LSYM. + +Mon May 12 11:32:53 CEST 2003 Jan Hubicka + + * expr.h (assemble_static_space): Update prototype. + * output.h (assemble_zeros, output_constant): Likewise. + * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean + * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make + it 64bit clean. + * elf.h (ASM_OTUPUT_SKIP): Likewise. + * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise. + * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Expect HOST_WIDE_INT operand. + * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Expect HOST_WIDE_INT operand. + * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Expect HOST_WIDE_INT operand. + * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect + HOST_WIDE_INT operand. + * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP, + ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand. + * aout.h (ASM_OTUPUT_SKIP): Likewise. + * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. + * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise. + * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise. + * frv.h (ASM_OTUPUT_SKIP): Likewise. + * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise. + * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): + Make it 64bit + clean. + * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand. + * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): + Make it 64bit clean. + * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean.. + * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect + HOST_WIDE_INT operand + * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): + Expect HOST_WIDE_INT operand + * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand + * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, + ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand + * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Likewise. + * m32r.h (ASM_OUTPUT_COMMON): Likewise. + * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Likewise. + * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. + * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise. + * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, + ASM_OUTPUT_SKIP): Likewise. + * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): + Likewise. + * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, + ASM_OUTPUT_SKIP): Likewise. + * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, + ASM_OUTPUT_SKIP): Likewise. + * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise. + * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, + ASM_OUTPUT_SKIP): Likewise. + * sgs.h (ASM_OUTPUT_SKIP): Likewise. + * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, + ASM_OUTPUT_SKIP): Likewise. + * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): + Likewise. + * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise. + * iris.h (ASM_OUTPUT_LOCAL): Likewise. + * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise. + * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, + ASM_OUTPUT_SKIP): Make it 64bit clean. + * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): + Make it 64bit clean. + * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL, + ASM_OUTPUT_SKIP): Make it 64bit clean. + * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it + 64bit clean. + * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect + HOST_WIDE_INT argument + * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument. + * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect + HOST_WIDE_INT argument + * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument + * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument + * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument + * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): + HOST_WIDE_INT argument + * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument + * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument + * varasm.c (asm_output_bss, asm_output_aligned_bss, + asm_emit_uninitialized, assemble_zeros, assemble_static_space): + HOST_WIDE_INT argument + +2003-05-10 Steven Bosscher + + * cgraphunit.c (cgraph_create_edges): Drop walk_tree in + favor of walk_tree_without_duplicates. Add comments. + +2003-05-12 Josef Zlomek + + * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type. + (struct alloc_pool_def): New element 'id'. + * alloc-pool.c (fancy_abort): Extern function prototype. + (abort): Macro which uses fancy_abort. + (struct allocation_object_def): New structure. + (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro. + (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro. + (last_id): New variable. + (create_alloc_pool): Add the offset of u.data to size of element, + increase and use last_id. + (free_alloc_pool): Do the checking only when ENABLE_CHECKING. + (pool_alloc): Likewise. Set ID for elements. + (pool_free): Check whether the PTR was allocated from POOL. + +2003-05-11 Richard Henderson + + PR c/10675 + * c-decl.c: Include hashtab.h. + (detect_field_duplicates): New. + (finish_struct): Use it. + * Makefile.in (c-decl.o): Update. + * c-parse.in (structsp_attr): Nreverse component_decl_list results. + (component_decl_list, component_decl_list2, + components, components_notype): Build list in reverse order. + (enumlist): Clarify docs. Use TREE_CHAIN not chainon. + + * tree.c (chainon): Special case op2 null as well. + Reorg for clarity. + +2003-05-11 Roger Sayle + + * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns + to implement log, logf and logl built-ins as inline x87 intrinsics. + (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction. + (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn + patterns for x87's "fyl2x" instruction, used by log?f2 patterns. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like + UNSPEC_FPATAN, i.e. replaces two stack operands with single result. + +2003-05-11 Kaveh R. Ghazi + + * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o. + + * sparc.c (print_operand): Fix uninitialized warning. + +2003-05-12 Zdenek Dvorak + + * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only + real insns. + * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous + condition. + +2003-05-11 Neil Booth + + * doc/cpp.texi: Fix typos. + +2003-05-11 Ulrich Weigand + + * config/s390/s390.c (s390_function_arg_float): New function. + (s390_function_arg_pass_by_reference): Use it. + (s390_function_arg_advance): Likewise. + (s390_function_arg): Likewise. + (s390_va_arg): Likewise + +2003-05-11 Nathan Sidwell + + * coverage.h (coverage_counter_alloc): New function. + * function.h (struct function): Remove arc_profile flag. + * coverage.c (fn_ident): Remove. + (fn_b_ctrs, no_coverage): New. + (get_coverage_counts): Use current_function_funcdef_no. + (coverage_counter_alloc): New. + (coverage_counter_ref): Adjust. + (coverage_begin_output): Check no_coverage. Use + current_function_funcdef_no. + (coverage_end_function): Likewise. + (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather + than clearing flag_inline_functions. Do not clear arc_profile + flag. + * function.c (prepare_function_start): Do not set arc_profile + flag. + * profile.c (instrument_edges): Return number of instrumented + edges. Use a for loop. + (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX + local to here and simplify. Use profile_arc_flag not arc_profile + flag. + (find_spanning_tree): Reformat. + * toplev.c (rest_of_compilation): Use profile_arc_flags and + flag_test_coverage rather than arc_profile flag. + +2003-05-11 Gabriel Dos Reis + + * doc/invoke.texi (Wctor-dtor-privacy): Update documentation. + +2003-05-11 Richard Kenner + + * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case. + +2003-05-11 Bruno Haible + + * cppfiles.c (find_or_create_entry): Preserve errno. + +2003-05-11 Neil Booth + + * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into + cpplib as it's a Standard Predefined Macro. + * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins. + * cppinit.c (_cpp_init_builtins): Take HOSTED. Define + __STDC_HOSTED__ appropriately. + * cpplib.h (_cpp_init_builtins): Update. + * fix-header.c (read_scan_file): Update. + * doc/cpp.texi, doc/cppopts.texi: Update documentation. + +2003-05-11 Gabriel Dos Reis + + PR C++/689 + PR C++/9257 + * c-opts.c (c_common_decode_option): Don't set + warn_ctor_dtor_privacy wen -Wall. + * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default. + +2003-05-10 Alexandre Oliva + + * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's + patch. + +2003-05-10 Zack Weinberg + + * diagnostic.c: Reorder functions for clarity, putting all the + functions in the "error" family next to each other, and + likewise all the functions in the "error_with_decl" family. + Some other routines were moved too. Add comments. + (vbuild_message_string): Fold into sole caller. + + +2003-05-11 Ulrich Weigand + + * except.c (EH_RETURN_STACKADJ_RTX): Do not define. + (EH_RETURN_HANDLER_RTX): Likewise. + (expand_builtin_eh_return): Do not copy stack adjustment + if EH_RETURN_STACKADJ_RTX is not defined. + (expand_eh_return): Likewise. Also, do not pass stack + adjustment as argument to the eh_return pattern. + * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just + because EH_RETURN_STACKADJ_RTX is not defined. + * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX + is not defined, treat stack pointer like a regular register. + (uw_init_context_1): Set up fake initial stack pointer register. + (uw_install_context_1): Do not compute stack adjustment if + EH_RETURN_STACKADJ_RTX is not defined. + + * config/i386/i386.md ("eh_return"): Remove first argument. + * config/mips/mips.md ("eh_return"): Likewise. + * config/rs6000/rs6000.md ("eh_return"): Likewise. + * config/sh/sh.md ("eh_return"): Likewise. + + * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove. + +2003-05-10 Alexander Aganichev + + * config/i386/i386.h (MODES_TIEABLE_P): Fix typo. + +2003-05-10 Nathan Sidwell + + * defaults.h (GCOV_TYPE_SIZE): Remove. + * gcov-io.h (gcov_type): Set to specific mode int on target. + (gcov_unsigned_t, gcov_position_t): New. + (GCOV_TYPE_NODE): New. + (GCOV_TAG_SUMMARY_LENGTH): Adjust. + (GCOV_COUNTERS_SUMMABLE): New. + (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn, + gcov_ctr_info, gcov_info): Adjust types. + (gcov_var): Adjust types. + (gcov_write_unsigned, gcov_write_tag, + gcov_write_length, gcov_write_tag_length, gcov_write_summary, + gcov_read_unsigned, gcov_read_summary): Adjust gcov types. + (gcov_position, gcov_sync, gcov_seek): Adjust gcov types. + * gcov-io.c (gcov_write_unsigned, gcov_write_tag, + gcov_write_length, gcov_write_tag_length, gcov_write_summary, + gcov_read_unsigned, gcov_read_summary): Adjust gcov types. + * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit, + __gcov_init, __gcov_merge_add): Adjust gcov types. + * coverage.c (ctr_merge_functions): Constify. + (ctr_names): New. + (read_counts_file): Adjust gcov types. Only summarize & merge + summable counters. + (coverage_counter_ref): Use GCOV_TYPE_NODE. + (build_fn_info_type, build_fn_info_value, build_ctr_info_type, + build_ctr_info_value, build_gcov_info): Adjust types. + * profile.c (branch_prob): Adjust gcov types. + * gcov_dump (dump_file): Adjust gcov types. + +2003-05-10 Richard Earnshaw + + * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New + constants. + (ior_scc_scc, and_scc_scc): New insn_and_split patterns. + * arm.c (arm_select_dominance_cc_mode): Renamed from + select_dominance_cc_mode, no-longer static. Use DOM_CC... constants. + Callers updated. + * arm-protos.h (arm_select_dominance_cc_mode): Add prototype. + +2003-05-09 Roger Sayle + + * config/alpha/alpha.c (alpha_start_function): Declare frame_size + as unsigned to avoid signed/unsigned comparison warnings. + +2003-05-09 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n" + instruction if the Xtensa density option is enabled. + +2003-05-09 Matt Kraai + + * mklibgcc.in: Remove extra quotes. + +2003-05-09 Mark Mitchell + + * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation + of int_ftype_void. + +2003-05-09 Alexandre Oliva + + * reload1.c (reload_cse_move2add): Don't turn an implicit + truncation into a self-set in the narrow mode. + +2003-05-09 Richard Earnshaw + + * arm.md (clzsi2): The CLZ instruction is predicable. + +2003-05-09 Bob Wilson + + * config/xtensa/xtensa.c: Formatting. + +2003-05-09 Diego Novillo + + * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS, + instead of TREE_OPERAND to access the operand of a + CONSTRUCTOR node. + +2003-05-09 Diego Novillo + + * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only + one operand. + +2003-05-09 Gabriel Dos Reis + + * toplev.h (warning_with_file_and_line): Don't declare. + (error_with_file_and_line): Likewise. + * diagnostic.c (error_with_file_and_line): Remove. + (warning_with_file_and_line): Likewise. + +2003-05-09 Gabriel Dos Reis + + * c-parse.in (if_stmt_locus): New object. + (if_prefix rule): Use it. Don't use warning_with_file_and_line. + (select_or_iter_stmt rule): Likewise. + (if_stmt_file): Remove. + (if_stmt_line): Likewise. + * jump.c: include "diagnostic.h" + (never_reached_warning): Don't use warning_with_file_and_line. + * Makefile.in (jump.o): Add dependce on diagnostic.h + +2003-05-09 Alan Modra + + * expr.c (move_block_from_reg): Remove "size" parm. Localize vars. + Move code handling pieces not larger than a word to.. + * function.c (assign_parms): ..here, but use change_address instead + of adjust_address and operand_subword, and expand_binop instead of + expand_shift. Adjust calls to move_block_from_reg. + * expr.h (move_block_from_reg): Update declaration. + (copy_blkmode_from_reg): Formatting. + * Makefile.in (function.o): Add $(OPTABS_H) to deps. + * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust + move_block_from_reg calls. + * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. + * config/i960/i960.c (i960_setup_incoming_varargs): Likewise. + * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. + * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise. + * config/mips/mips.c (mips_setup_incoming_varargs): Likewise. + * config/pa/pa.c (hppa_builtin_saveregs): Likewise. + * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise. + * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. + * config/sh/sh.c (sh_builtin_saveregs): Likewise. + +2003-05-08 DJ Delorie + + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix + to handle arguments for which MUST_PASS_IN_STACK is true (e.g., + variable-sized types). + (xstormy16_function_arg): New. Pass them that way too. + * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New. + * config/stormy16/stormy16.h (FUNCTION_ARG): Call it. + +2003-05-08 Aldy Hernandez + + * mklibgcc.in: Use mkinstalldirs when installing multilib + directories. + +2003-05-08 J"orn Rennecke + + * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact + instead of CODE_FOR_jump + +2003-05-08 Gabriel Dos Reis + + * objc/objc-act.c (error_with_ivar): Don't use + error_with_file_and_line. + (warn_with_method): Don't use warning_with_file_and_line. + +2003-05-08 Gabriel Dos Reis + + * stmt.c (emit_locus): New macro. + (emit_filename): Remove. + (emit_lineno): Likewise. + (struct stmt_status): Replace members x_emit_filename and + x_emit_lineno with x_emit_locus. + (set_file_and_line_for_stmt): Adjust. + (expand_expr_stmt_value): Don't use warning_with_file_and_line. + (warn_if_unused_value): Likewise. + (check_seenlabel): Likewise. + +2003-05-08 Gabriel Dos Reis + + * c-decl.c (define_label): Tidy. Don't use any of + error_with_file_and_line or warning_with_file_and_file. + (pending_xref_error): Likewise. + (store_parm_decls): Likewise. + (current_function_prototype_locus): New object. Package from + current_function_prototype_file and current_function_prototype_line. + (start_function): Use it. + (current_function_prototype_file): Remove. + (current_function_prototype_line): Remove; + +2003-05-08 Kaveh R. Ghazi + + * builtins.c (readonly_data_expr): New function. + (expand_builtin_memmove): Optimize any rodata source, not just + strings. + +2003-05-07 David Mosberger + + * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New. + +2003-05-07 Richard Henderson + + * config/i386/i386.c (ix86_split_long_move): Fix base register + mode for XFmode splits for TARGET_64BIT. + +2003-05-07 Richard Henderson + + * sched-ebb.c (schedule_ebb): Supply the correct starting + block number to save_line_notes. + +2003-05-07 Richard Henderson + + * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro. + (dump_file): Likewise. + +2003-05-07 David Mosberger + + * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't + forget to preserve gp. + * config/ia64/crtend.asm (__do_global_ctors_au): Ditto. + + * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing + .prologue directive. + Use .skip instead of data8 for .bss section to make Intel + Assembler (ias) happy. Minor whitespace fixups. Make "nop 0" + explicit in the .mib bundles and remove the unnecessary stop + bits. Replace local labels with normal labels, to make ias + happy. Don't register __do_global_ctors_aux here, do it in + crtend.asm instead. + + * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register + __do_global_ctors_aux in .init_array section instead of + declaring it as a hidden global. Replace local labels with + ordinary labels to make ias happy. + +2003-05-07 Richard Henderson + + PR c++/10570 + * except.c: Revert 04-01 and 04-02 forced-unwind changes. + * flags.h, toplev.c, doc/invoke.texi: Likewise. + + * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning. + * unwind.inc (_Unwind_DeleteException): Check for null + exception_cleanup. + + * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New. + * unwind.inc (_Unwind_Resume_or_Rethrow): New. + * unwind.h: Declare them. + * libgcc-std.ver (GCC_3.3): Export them. + +2003-05-07 Richard Henderson + + * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr, + not _Unwind_Word. + +2003-05-07 Zack Weinberg + + * stmt.c (force_label_rtx): New function, based on logic + formerly found in expand_expr. + * expr.h: Prototype it. + * expr.c (expand_expr ): Use force_label_rtx if + appropriate. + * varasm.c (decode_addr_const ): Use force_label_rtx. + + * print-tree.c (debug_tree): Free the table after we're done + with it. Use putc. + +2003-05-07 Aldy Hernandez + + * config/rs6000/spe.h: Reverse arguments for __ev_subfw. + Unreverse arguments for __ev_subw. + + * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly. + +2003-05-07 Nick Clifton + + * config/stormy16/stormy-abi: Update to include + R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and + R_XSTORMY16_12 relocs. + +2003-05-07 Alan Modra + + * function.c (assign_parms): Correct reversed reg_parm_stack_space + test. Add partial in-regs size to stack_args_size. + +2003-05-07 Gerald Pfeifer + + * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations + as a C only option. + +2003-05-07 Nathan Sidwell + + * gcov-io.h (GCOV_LOCKED): New #define. + (GCOV_LINKAGE): Make sure it is #defined. + (gcov_write_string, gcov_write_tag, gcov_write_length, + gcov_read_string, gcov_time): Poison in libgcov. + (gcov_seek_end): Remove. + (gcov_write_tag_length, gcov_sync, gcov_rewrite): New. + (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH, + GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH, + GCOV_TAG_SUMMARY_LENGTH): New #defines. + (gcov_write_tag, gcov_write_length): Not in libgcov. + * gcov-io.c (gcov_open): Use GCOV_LOCKED. + (gcov_write_tag, gcov_write_length): Not in libgcov. + (gcov_write_tag_length): New. + (gcov_write_summary): Use gcov_write_tag_length. + * libgcov.c: Always #include gcov-io.h. + (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise. + (GCOV_LINKAGE): Define to nothing for L_gcov. + (gcov_exit): Replace gcov_write_tag, gcov_write_length with + gcov_write_tag_length. Use gcov_rewrite & gcov_seek. + * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync. + (read_count_file): Likewise. + * gcov-dump.c (dump_file): Likewise. + * coverag.c (read_counts_file): Likewise. + +2003-05-06 Mark Mitchell + + PR other/10658 + * gcc.c (process_command): Update copyright date. + +2003-05-06 Phil Edwards + + * doc/install.texi (mips-*-*): Add note about libstdc++. + +2003-05-06 DJ Delorie + + * config/stormy16/stormy16.c (xstormy16_function_profiler): New. + * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it. + * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New. + +2003-05-06 + + * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes + and -Wstrict-prototypes if C++. + +2003-05-06 Aldy Hernandez + + * config/rs6000/linuxspe.h: New file. + + * config.gcc: Add powerpc-*-linux-gnuspe* target. + +2003-05-06 Richard Henderson + + * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if + previous frame didn't save sp. Clear sp for next frame. + (uw_install_context_1): Honor saved sp from frame. + +2003-05-06 Richard Sandiford + + * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare. + (mips_move_1word, mips_move_2words): Remove declaration. + (mips_split_64bit_move_p, mips_split_64bit_move): Declare. + (mips_restore_gp): Remove insn argument. + * config/mips/mips.h (FP_REG_RTX_P): New macro. + * config/mips/mips.c (volatile_buffer): Remove. + (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New. + (mips_move_1word, mips_move_2words): Remove, replacing with... + (mips_output_move): ...this new function. + (mips_restore_gp): Remove insn argument. Adjust for above changes. + (print_operand): Make '%h' print %hi(op) for HIGH operands. Remove + handling of floating-point constants. Handle zero CONST_DOUBLE + arguments. + (mips_annotate_frame_insn): Replace with... + (mips_set_frame_expr): ...this, which just takes one argument. + (mips_frame_set): Change the register argument to an rtx. + (mips_emit_frame_related_store): Use mips_split_64bit_move_p to + check whether moves should be split. Use mips_split_64bit_move + to split them. Use mips_subword to generate the high and low + parts of a paired FPR. Adjust calls to frame_set and + mips_set_frame_expr. + (mips_expand_prologue): Simplify due to above changes. + * config/mips/mips.md: Add splitters for 64-bit moves on 32-bit + targets, replacing xisting register-only versions. + (UNSPEC_STORE_DF_HIGH): New unspec. + (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs. + (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word. + (*paradoxical_extendhidi2): Remove. + (movdi_internal, movdi_internal2): Use mips_output_move. + (*movdi_internal2_mips16, movsi_internal, movcc): Likewise. + (movsf_internal1, movsf_internal2): Likewise. + (movdf_internal1a): Likewise. Fix length and type of f <- G case. + (movdf_internal1b): Use mips_output_move. Fix type of f <- G case. + (movdf_internal2): Use mips_output_move. Fix lengths of FPR moves. + Add m <- G alternative. + (load_df_low, load_df_high, store_df_low): New patterns. + (movhi_internal): Use @ template instead of calling a function. + Remove unnecessary 'z' alternatives. + (movqi_internal): Likewise. + (exception_receiver): Update call to mips_restore_gp. + +2003-05-06 Richard Sandiford + + * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove. + (mips_delegitimize_address): Declare. + * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine. + (FIND_BASE_TERM): Define. + * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Defi~e. + (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr. + Handle small-data addresses. + +2003-05-05 Roger Sayle + + * real.c (real_powi): New function to calculate the value of + a real raised to an integer power, i.e. pow(x,n) for int n. + (real_sqrt): Convert to using the faster do_add, do_multiply + and do_divide API for consistency with the rest of real.c. + * real.h (real_powi): Prototype here. + * builtins.c (fold_builtin): Avoid local variable mode when + evaluating sqrt at compile time. Attempt to evaluate pow at + compile-time, by checking for an integral exponent. + +2003-05-05 Richard Henderson + + * doc/extend.texi (Variable Attributes): Re-sort table and tidy. + +2003-05-05 David O'Brien + + * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror + other FreeBSD ports. + (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports. + (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead. + +2003-05-05 Janis Johnson + + * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around + expanded variables. + * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests. + +2003-05-05 Zack Weinberg + + * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P. + * varasm.c (struct varasm_status): Add deferred_constants field. + (n_deferred_strings): Delete variable. + (n_deferred_constants): New #define. + (struct constant_descriptor_tree): Kill next and label fields. + (const_hash_table, MAX_HASH_TABLE): Delete. + (const_desc_htab): New static variable. + (const_hash): Rename const_desc_hash, and make it fit the + hashtab.h interface. + (const_desc_eq): New. + (const_hash_1, compare_constant): Const-ify arguments. + (build_constant_desc): Set DEFERRED_CONSTANT_P on all new + SYMBOL_REFs. Clarify comments. Don't set desc->label. + (output_constant_def): Do the lookup/insert using the + hashtab.h interface. Don't muck with n_deferred_constants or + DEFERRED_CONSTANT_P here. + Always call maybe_output_constant_def_contents. + (maybe_output_constant_def_contents): Take a pointer to the + descriptor, not the EXP and RTL separately. Return + immediately if this constant is not deferred. Defer output of + everything, except writable string constants. Update + n_deferred_constants here. + (output_constant_def_contents): Now takes just one argument, + an rtx. Clear DEFERRED_CONSTANT_P here. + (mark_constant_pool): Update for rename of n_deferred_strings. + (mark_constant): Don't clear DEFERRED_CONSTANT_P here. + + (init_varasm_status): Clear p->deferred_constants. + (init_varasm_once): Call htab_create_ggc for const_desc_htab. + +2003-05-05 Kaveh R. Ghazi + + * builtins.c (expand_builtin_stpcpy): Only expand when the length + of the source string can be evaluated at compile-time. + +2003-05-05 Aldy Hernandez + + * testsuite/gcc.c-torture/compile/simd-6.c: New. + + * c-typeck.c (digest_init): Handle arrays of vector constants. + +2003-05-05 Jakub Jelinek + + * builtins.c (expand_builtin_mempcpy): New function. + (expand_builtin_stpcpy): Optimize stpcpy whose return value is + ignored into strcpy no matter what arguments it has. + (expand_builtin) : Call + expand_builtin_mempcpy. + +2003-05-05 Aldy Hernandez + + * testsuite/gcc.dg/20030505.c: New. + + * c-typeck.c (convert_for_assignment): Opaque pointers can + interconvert. + + * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node. + (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node. + (spe_init_builtins): Rename all pv2si_type_node to + opaque_p_V2SI_type_node. + Remove declaration of pv2si_type_node. + (is_ev64_opaque_type): Accept opaque pointers. + +2003-05-05 Geoffrey Keating + + * config/rs6000/rs6000.c (validate_condition_mode): Use + flag_finite_math_only. + (rs6000_reverse_condition): Never return UNKNOWN; use + flag_finite_math_only. + (rs6000_generate_compare): Use flag_finite_math_only. + (rs6000_emit_cmove): Handle UNLE. Support UNEQ under -ffast-math. + Use HONOR_* rather than flag_unsafe_math_optimizations. Correct + UNGE and GT cases. Handle UNEQ and LTGT when ! HONOR_NANS. + + * toplev.c (check_global_declarations): Suppress not-used warning + for volatile variables. + +2003-05-05 Olivier Hainque + + * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing + usage of bitfield instructions for mode1 != BLKmode, only ignoring + SLOW_UNALIGNED_ACCESS if the field is not byte aligned. + (store_field): Likewise. + +2003-05-05 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add + evsubifw to builtins accepting 5-bit unsigned constants. + (easy_vector_constant): Return if V1DImode. Fix typo. + +2003-05-05 Aldy Hernandez + + * config/rs6000/spe.h: Revert licensing change from last patch. + +2003-05-05 DJ Delorie + + * config/stormy16/stormy16.md (negsi2): Allocate the pseudos + before reload, but defer the split until after. + * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify + to match. + +2003-05-05 David Edelsohn + + * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support. + * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440. + +2003-05-05 Zdenek Dvorak + + * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc + is defined. + +2003-05-04 Kaveh R. Ghazi + + * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1, + ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from + ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3. + + (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4, + ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1, + ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1): + New. + + * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument. + (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment + + (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY, + BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET, + BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT, + BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY, + BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN, + BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN, + BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN, + BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF, + BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS, + BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED, + BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED, + BUILT_IN_STRDUP): Add "nonnull" attribute. + +2003-05-04 Richard Kenner + + * expr.c (store_field): Don't clobber TEMP in shift: it might be + a variable. + (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR + whose purpose is to step up the alignment. + (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG. + + * stor-layout.c (compute_record_mode): Relax restriction + on fields crossing word boundaries forcing BLKmode. + +2003-05-04 Neil Booth + + * cppinit.c (cpp_create_reader, post_options): Warn about + trigraphs unless explicity set or -trigraphs. + * cpplex.c (warn_in_comment): New. + (_cpp_process_line_notes): Better handling of -Wtrigraphs. + (_cpp_skip_block_comment): Add call to _cpp_process_line_notes. + * doc/cppopts.texi, doc/cpp.texi: Update. + +2003-05-04 Zdenek Dvorak + + * Makefile.in (LIBGCOV): Add _gcov_merge_add. + * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting + namespace clash. + (GCOV_MERGE_FUNCTIONS): New. + (gcov_merge_fn): Declare. + (struct gcov_ctr_info): New field "merge". + (__gcov_merge_add): Declare. + * coverage.c (ctr_merge_functions): New. + (build_ctr_info_type, build_ctr_info_value): Initialize merge field + of gcov_ctr_info type. + * libgcov.c (__gcov_merge_add): New. + (gcov_exit): Call a hook to merge values of counters. + +2003-05-04 Gabriel Dos Reis + + * toplev.h (pedwarn_with_file_and_line): Don't declare. + * diagnostic.c (pedwarn_with_file_and_line): Remove. + +2003-05-04 Gabriel Dos Reis + + * varasm.c (assemble_variable): Don't use error_with_file_and_line. + +2003-05-04 Kaveh R. Ghazi + + * builtins.c (expand_builtin_constant_p, expand_builtin_strlen, + expand_builtin_frame_address): Update prototypes. + (expand_builtin_constant_p, expand_builtin_strlen, + expand_builtin_strcpy, expand_builtin_memset, + expand_builtin_bzero, expand_builtin_args_info, + expand_builtin_frame_address): Pass in just the argument(s) + needed, not the entire expression `exp'. + (expand_builtin): Update all calls to these functions. + +2003-05-03 Richard Henderson + + * builtins.c (expand_builtin) : Remove. + : New. + * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove. + (BUILT_IN_DWARF_SP_COLUMN): New. + * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove. + (expand_builtin_dwarf_sp_column): New. + * except.h: Update to match. + * unwind-dw2.c (execute_stack_op): Correct stack push typo. + (execute_cfa_program): Record location expression address + before extracting length. + (uw_update_context_1): Install old CFA into stack pointer column. + (uw_init_context_1): Set cfa_reg to stack pointer column. + +2003-05-03 Richard Henderson + + * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and + return bool. + (toc_relative_expr_p): Likewise. + (SPE_CONST_OFFSET_OK): Move from rs6000.h. + (legitimate_constant_pool_address_p): Move from rs6000.h, change + into a function, downcase all users. + (legitimate_small_data_p): Likewise. + (legitimate_offset_address_p): Likewise. + (legitimate_indexed_address_p): Likewise. + (legitimate_indirect_address_p): Likewise. + (legitimate_lo_sum_address_p): Likewise. + (rs6000_mode_dependent_address): Likewise. + * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove. + (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P, + LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P, + LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P, + LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c. + (LEGITIMATE_ADDRESS_INTEGER_P): Remove. + (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address. + * config/rs6000/rs6000-protos.h: Update. + +2003-05-03 Geoffrey Keating + + * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define. + (REVERSE_CONDITION): Define. + + * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent + to branch_positive_comparison_operator. + (ccr_bit): Check that sCOND conditions are actually a positive bit. + (print_operand): Remove %D substitution. + (rs6000_emit_sCOND): Generate complement operation to ensure that + sCOND input is a positive bit. + * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the + same order as bCOND, and add the missing ones. Remove the %D + substitutions from the scc patterns. + + * simplify-rtx.c (simplify_relational_operation): Add case for + ! (fabs(x) < 0.0). + +2003-05-03 Bruce Korb + + * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts + in fixincl.x + * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement + +2003-05-03 Aldy Hernandez + + * config/rs6000/spe.h: Remove unecessary casts. Misc cleanups. + +2003-05-03 Zack Weinberg + + PR c/10604 + * c-common.c (warn_sign_compare): Initialize to -1. + * c-opts.c (c_common_init_options): Don't set warn_sign_compare here. + (c_common_decode_option ): Set warn_sign_compare + for C++ only. + (c_common_post_options): Set warn_sign_compare from extra_warnings + if it's still -1 at this point. + + * toplev.c (maybe_warn_unused_parameter): New static variable. + (set_Wextra): New static function. + (W_options): Remove "extra". + (decode_W_option): Call set_Wextra. + (independent_decode_option): Likewise. + (set_Wunused): Cooperate with set_Wextra in setting + warn_unused_parameter. + (rest_of_compilation): No need to check extra_warnings as + well as warn_uninitialized. + + * c-typeck.c (build_binary_op, build_conditional_expr): + No need to check extra_warnings as well as warn_sign_compare. + (internal_build_compound_expr): No need to check extra_warnings + as well as warn_unused_value. + * function.c (expand_function_end): No need to check extra_warnings + as well as warn_unused_parameter. + * stmt.c (expand_expr_stmt_value): No need to check extra_warnings + as well as warn_unused_value. + + * doc/invoke.texi: Clarify documentation of -Wsign-compare. + + * Makefile.in: Disable -Werror for gengtype-lex.o. + +2003-05-03 Olivier Hainque + + * emit-rtl.c (last_call_insn, add_function_usage_to): New functions. + * rtl.h (last_call_insn, add_function_usage_to): New prototypes. + * builtins.c (expand_builtin_apply): Use the new emit-rtl functions. + * calls.c (emit_call_1): Likewise. + (expand_call): For calls initializing constant memory, replace + emission of standalone mem /u clobber with function usage entry. + * expr.c (emit_block_move_via_libcall): Likewise. + * cse.c (count_reg_usage, case EXPR_LIST): New case. + * flow.c (propagate_one_insn): Pass entire operand of + CALL_INSN_FUNCTION_USAGE to mark_used_regs. + * integrate.c (try_constants): For CALL_INSNs, substitute constants + within the FUNCTION_USAGE also. + * loop.c (prescan_loop): Note clobbers of const mem mentioned in + FUNCTION_USAGE lists. + * reload1.c (replace_pseudos_in): Renamed. + (reload): Use it for clobbers surviving until the end of the reload. + +2003-05-03 Richard Kenner + + * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use + gen_lowpart on non-integer modes. + + * stor-layout.c (place_field): When adjusting offset_align, use + desired_align, not DECL_ALIGN. + +2003-05-03 Nathan Sidwell + + * c-decl.c (pending_invalid_xref_file): Remove. + (pending_invalid_xref_line): Remove. + (pending_invalid_xref_location): New. + (lookup_label): Use location_t and input_location directly. + (lookup_tag): Likewise. + (pending_xref_error): Likewise. + (c_expand_body_1): Likewise. + * c-common.c (x_expand_start_cond): Likewise. + * c-semantics.c (genrtl_for_stmt): Likewise. + (find_reachable_label): Likewise. + * expr.c (expand_expr): Likewise. + * integrate.c (output_inline_function): Likewise. + * tree-inline.c (find_alloca_call): Likewise. + (find_builtin_longjmp_call): Likewise. + * gcc.c (input_filename): Make static. + +2003-05-03 Richard Sandiford + + * config/mips/mips.md: Fix comment typo. + + * config/mips/mips.c (mips_integer_op): New structure. + (MIPS_MAX_INTEGER_OPS): Define. + (mips_const_insns): Use mips_build_integer to determine the number + of instructions needed to load a CONST_INT. + (move_operand): Reject compound CONST_INTs. + (mips_build_shift, mips_build_lower, mips_build_integer): New fns. + (mips_move_integer): New fn. + (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer. + (mips_legitimize_move): Only legitimize constants when moving + word or subword values. + +2003-05-02 Matt Kraai + + * Makefile.in (gcov-iov.h): Use move-if-change and a stamp. + +2003-05-02 Kaveh R. Ghazi + + * builtins.c (expand_builtin_stpcpy): Copy `arglist' before + modifying it. + +2003-05-03 Falk Hueffner + Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy + Hernandez, and Kazu Hirata. Update Richard Henderson. + +2003-05-02 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern' + to tentative declaration. + + * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete. + (SYMBOL_FLAG_SMALL_V4): Delete. + * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P. + (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4. + (rs6000_elf_in_small_data_p): Add extra section names. Add + comment about TREE_PUBLIC test. + + * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call + expand_stmt on result of expand_unreachable_stmt. + +2003-05-02 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add Daniel Berlin. + +2003-05-02 David Edelsohn + + * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease + number of automata. + + * config/rs6000/rs6000.c (symbol_ref_operand): Check + SYMBOL_REF_FUNCTION_P on AIX. + (current_file_function_operand): Same. + * config/rs6000/rs6000.md (call,call_value): Force non-function + symbol_ref into register on AIX. + +2003-05-02 Alan Modra + + * calls.c (struct arg_data): Move offset, slot_offset, size and + alignment_pad to struct locate_and_pad_arg_data. Update all refs. + (initialize_argument_information): Adjust call to locate_and_pad_parm. + Delete alignment_pad var. Don't calculate slot_offset here. + (emit_library_call_value_1): Delete alignment_pad, offset and size + vars. Use struct locate_and_pad_arg_data instead. Adjust refs. + Adjust call to locate_and_pad_parm. Don't tweak arg size for + partial in-regs here. Formatting fixes. + * expr.h (struct locate_and_pad_arg_data): New struct. + (locate_and_pad_parm): Adjust declaration. + * function.c (assign_parms): Localize vars. Use "locate" instead of + other arg location vars. Don't invoke FUNCTION_ARG or + FUNCTION_INCOMING_ARG unless pretend_named is different from + named_arg. Heed MUST_PASS_IN_STACK and set up "partial" before + calling locate_and_pad_parm. Adjust locate_and_pad_parm call. + Use slot_offset for stack home of reg parms. Correct test for + parm passed in memory. Formatting fixes. + (locate_and_pad_parm): Add "partial" to params. Replace offset_ptr + arg_size_ptr and alignment pad with "locate". Set slot_offset here. + Correct initial_offset_ptr handling. Localize vars. Always pad + locate->offset even when in_regs. + +2003-05-02 Nathan Sidwell + + * Makefile.in (TREE_H): Replace location.h with input.h. + (GTFILES) Remove location.h + (gt-lists.h): Replace gt-location.h with gt-input.h + * input.h (input_filename, input_line): Remove variables. + (location_s, location_t): Move from location.h. + (input_location): New. + (input_filename, input_line): New #defines. + * location.h: Remove. + * tree.h: Replace location.h with input.h. + (input_filename, input_line): Remove. + * diagnostic.h: Replace location.h with input.h. + * gcc.h (input_filename, input_filename_length): Remove declarations. + * toplev.c (input_filename, input_line): Remove. + (input_location): Define. + (push_srcloc, pop_srcloc): Adjust. + * diagnostic.c (diagnostic_report_current_module): Adjust. + +2003-05-02 Nick Clifton + + * configure.in: Add xstormy16 to list of targets that has a nop + instruction and hence which can be tested to see if the + assembler supports the --gdwarf2 switch. + * configure: Regenerate. + +2003-05-01 Falk Hueffner + + PR target/8257 + * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue, + alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib): + Avoid undefined shifts by making the shift operand unsigned. + +2003-05-01 DJ Delorie + + * reload.c (find_reloads): Also check that all of a multi-reg + value is in the class. + +2003-05-01 Nathan Sidwell + + * scan.h (lineno): Revert the rename here. + +2003-05-01 Stan Shebs + + * config/darwin.c (darwin_encode_section_info): Call + default_encode_section_info. + +2003-05-01 David Edelsohn + + * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr. + (movsi_internal1): Use new mfjmpr attribute. + (movhi_internal): Same. + (movqi_internal): Same. + (movcc_internal1): Same. + (movdi_internal64): Same. + * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, + power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr. + * config/rs6000/40x.md: Add fpu_405. + * config/rs6000/power4.md: Merge power4lsu and power4disp automata + into power4misc automata. Remove extraneous parentheses. + * config/rs6000/440.md: New file. + * config/rs6000/rs6000.c (processor_target_table): Add 440, + 440fp. Rename 405f to 405fp. + (function_arg_padding): Correct formatting. + (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases. + +2003-05-01 Nathan Sidwell + + * input.h (lineno): Rename to ... + (input_line): ... here. + * tree.h (lineno): Rename to ... + (input_line): ... here. + * scan.h (lineno): Rename to ... + (input_line): ... here. + * toplev.c (lineno): Rename to ... + (input_line): ... here. + (push_srcloc, pop_srcloc): Rename lineno to input_line. + * c-common.c (c_expand_start_cond, fname_decl): Likewise. + * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag, + store_parm_decls, c_expand_body_1): Likewise. + * c-errors.c (pedwarn_c99): Likewise. + * c-format.c (status_warning): Likewise. + * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise. + * c-opts.c (c_common_post_options, c_common_parse_file): Likewise. + * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise. + * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var, + gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt, + genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt, + genrtl_return_stmt, genrtl_for_stmt, build_break_stmt, + build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt, + prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise. + * coverage.c (create_coverage): Likewise. + * diagnostic.c (pedwarn, sorry, error, fatal_error, + internal_error, warning, diagnostic_report_current_module, + inform): Likewise. + * expr.c (expand_expr): Likewise. + * integrate.c (expand_inline_function, + output_inline_function): Likewise. + * rtl-error.c (file_and_line_for_asm): Likewise. + * tree-inline.c (find_alloca_call, find_builtin_longjmp_call, + walk_tree): Likewise. + * tree.c (make_node): Likewise. + * ada, cp, f, java, objc, treelang: Likewise. + * objc/objc-act.c (objc_init): Rename lineno to input_line. + (build_module_descriptor, build_selector_translation_table, + build_protocol_template, build_method_prototype_list_template, + build_category_template, build_selector_table, + build_class_template, build_super_template, build_ivar_template, + build_ivar_list_template, build_method_list_template, + build_method_template, add_instance_variable): Likewise. + + * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter + name from input_filename. + +2003-04-30 Eric Christopher + Richard Sandiford + + * configure: Regenerate from patches below. + * combine.c (gen_lowpart_for_combine): Fix comment and add tests + for all symbolic operands. + * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS + to function. + * config/mips/linux.h: Fix typo. + * Merge from mips-3_4-rewrite branch: + + 2003-04-07 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol): Add catch-all case for + handling local labels when TARGET_ABICALLS. + + 2003-04-04 Richard Sandiford + + * config/mips/mips-protos.h (mips_expand_epilogue): Add an + integer argument. + (mips_expand_call): Likewise. + * config/mips/mips.h (TARGET_SIBCALLS): New macro. + (FIXED_REGISTERS): Clear $31 entry. + (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise. + (EPILOGUE_USES): Define. + * config/mips/mips.c (mips_function_ok_for_sibcall): New function. + (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it. + (override_options): Add a 'j' register class. + (mips_expand_call): Handle sibcalls + (mips_expand_epilogue): Handle epilogues for sibcalls. + * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue. + (sibcall_epilogue): New pattern. + (call, call_value): Adjust calls to mips_expand_call. + (sibcall, sibcall_value): New expanders. + (sibcall_internal, sibcall_value_internal): New patterns. + (sibcall_value_multiple_internal): New pattern. + + 2003-03-25 Richard Sandiford + + * config/mips/mips.md (extended_mips16): New attribute. + (define_attr length): Default to 8 if extended_mips16 == yes. + (truncdisi2): Set extended_mips16 to yes for the sll alternative. + (truncdihi2, truncdiqi2, *extendsidi2): Likewise. + (call_internal): Set extended_mips16 to yes for direct jumps. + Remove redundant mode attribute. + (call_value_internal, call_value_multiple_internal): Likewise. + (call_split): Remove redundant mode attribute. + (call_value_split, call_value_multiple_split): Likewise. + + * config/mips/mips.c (mips_symbol_insns): Rework. Fix handling + of unaligned offsets. + + * config/mips/mips.c (mips_splittable_symbol_p): Fix handling + of SYMBOL_GENERAL. + + 2003-03-22 Richard Sandiford + + * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary. + * config/mips/mips.c (override_options): Disable -mexplicit-relocs + for mips16 code. + + 2003-03-22 Richard Sandiford + + * config/mips/mips.h (ADDRESS_COST): Define. + + 2003-03-20 Richard Sandiford + + * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of + 'R' to 'U'. Make 'R' mean a single-instruction memory reference. + * config/mips/mips.md: Replace 'R' constraints with 'U'. + + 2003-03-18 Richard Sandiford + + * config/mips/mips.md (truncdisi2): Add commentary. Use sll instead + of a two-instruction sequence. Add register->memory alternative. + (truncdihi2, truncdiqi2): Likewise. + Rework shift/truncate instructions so that they only handle right + shifts of 32 (or more, in the case of arithmetic shifts). + Add patterns for truncate/sign-extend. + + 2003-03-13 Richard Sandiford + + * configure.in (mips*-*-*): Check for explicit relocation support. + * configure: Regenerate. + + 2003-03-13 Richard Sandiford + + * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs + and -mno-explicit-relocs. + (MASK_EXPLICIT_RELOCS): Define. + (TARGET_EXPLICIT_RELOCS): Use it. + (mips_split_addresses): Remove declaration. + * config/mips/mips.c (override_options): Update comment for + mips_split_addresses. Clear MASK_EXPLICIT_RELOCS for non-PIC n64. + + 2003-03-13 Richard Sandiford + + * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of + a CONST as identity. Check the return value of gen_lowpart_common. + + 2003-03-13 Richard Sandiford + + * config/mips/mips.c (mips_legitimize_symbol): Handle small data + references for TARGET_EXPLICIT_RELOCS. + (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if + !TARGET_MIPS16. + + 2003-03-13 Richard Sandiford + + * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'. + (addsi3): Remove redundant constraints. + (addsi3_internal): Use separate register & constant alternatives. + Use a 'Q' constraint and "addiu" insn for the latter. + (adddi3_internal_3, addsi3_internal_2): Likewise. + + 2003-03-13 Richard Sandiford + + * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare. + (mips_expand_unaligned_store): Declare. + * config/mips/mips.c (mips_get_unaligned_mem): New fn. + (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns. + * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove. + (UNSPEC_ULD, UNSPEC_USD): Remove. + (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New. + (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New. + (extv, extzv): Use mips_expand_unaligned_load. + (insv): Use mips_expand_unaligned_store. Use a reg_or_0_operand + predicate for operand 3. + (movsi_ulw, movsi_usw): Replace with... + (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns. + (movdi_uld, movdi_usd): Likewise replace with... + (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns. + + 2003-02-26 Richard Sandiford + + * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare. + * config/mips/mips.h (LEA_REGS): New register class. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it. + (GR_REG_CLASS_P): Include LEA_REGS. + (DANGEROUS_FOR_LA25_P): New macro. + (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition. + Add a T constraint for the DANGEROUS_FOR_LA25_P case. + * config/mips/mips.c (mips_regno_to_class): Change GR_REGS + entries to LEA_REGS. + (mips_global_pic_constant_p): New function. + (override_options): Add 'e' register constraint. + (mips_secondary_reload_class): Return LEA_REGS when reloading + a dangerous constant into a class containing $25. + * config/mips/mips.md (movdi_internal2): Add an e <- T alternative. + (movsi_internal): Likewise. + + 2003-02-23 Richard Sandiford + + * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro. + * config/mips/mips.md (call_split): New insn. + (call_value_split, call_value_multiple_split): New insns. + (call_internal): Turn into a define_insn_and_split. Split the + instruction into a call and $gp load if TARGET_SPLIT_CALLS. + (call_value_internal, call_value_multiple_internal): Likewise. + + 2003-02-23 Richard Sandiford + + * config/mips/mips.c (mips_reloc_string): Return "%got(" for + RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI. + (mips_encode_section_info): Don't take symbol visibility into + account if TARGET_ABICALLS. Add more commentary. + * config/mips/mips.md: Add commentary above reloc constants. + + 2003-02-12 Richard Sandiford + + * config/mips/mips.c (mips_legitimize_const_move): New, extracted + from mips_legitimize_move. Legitimize constant pool references. + (mips_legitimize_move): Call mips_legitimize_const_move. Attach + a REG_EQUAL note to the last instruction. + + 2003-02-11 Richard Sandiford + + * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare. + * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New. + (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr. + (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS. + * config/mips/mips.md (UNSPEC_HIGH): New constant. + (UNSPEC_RELOC_GPREL16): Rename to... + (RELOC_GPREL16): ...this. + (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New. + (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New. + (macro_calls): New attribute. + (length): Use it to set the default length of calls. Don't allow + calls to have delay slots if macro_calls is "yes". + (luisi, luidi): New patterns. + (lowsi, lowdi): Use '%R' to print the relocation. + (lowdi_extend): Remove. + (loadgp): Remove mode from operand 0. Use '%0' instead of '%a0'. + (call_internal): Merge alternatives. Always use "jal". + (call_value_internal, call_value_multiple_internal): Likewise. + (reloc_gprel16): Remove. + * config/mips/mips.c (mips_got_alias_set): New variable. + (mips_classify_constant): Handle the new relocation constants. + (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC. + (mips_symbolic_address_p): Return false if generating explicit relocs. + Otherwise allow local PIC symbols to have an offset. + (mips_splittable_symbol_p): New function. + (mips_classify_address): Use it to check whether a LO_SUM is valid. + (mips_const_insns): Always accept HIGH. + (call_insn_operand): Don't accept global symbols if using explicit + relocs. + (move_operand): Don't accept HIGH when generating PIC. + (mips_reloc, mips_lui_reloc): New functions. + (mips_force_temporary): Remove MODE argument. Expect VALUE to + be a valid right-hand-side for a SET pattern. + (mips_load_got, mips_load_got16, mips_load_got32): New functions. + (mips_emit_high): New function. + (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative + case. Use mips_splittable_symbol_p to check whether a LO_SUM + address should be used. Use mips_emit_high to generate the + high part of such an address. Adjust the global symbol + offset + case to match the change to mips_force_temprorary. + (mips_legitimize_move): Shuffle call to mips_legitimize_symbol. + If generating explicit-reloc PIC, load the address of global + symbols from the GOT. Use mips_emit_high to emit the high part + of an address. + (mips_simplify_dwarf_addr): New function. + (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s. + (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT. + (mips_expand_call): Load the addresses of global functions using + %call* relocs if generating explicit-reloc PIC. Don't generate + an exception_receiver pattern. + (override_options): Initialize mips_got_alias_set. + (print_relocation): Remove in favor of... + (mips_reloc_string): ...this new function. + (print_operand): Handle '%R'. Use mips_reloc_string. + (print_operand_address): Use print_operand to print the symbolic + part of a LO_SUM address. + (mips_output_function_prologue): Use .cprestore, reverting last patch. + (mips_encode_section_info): Factor out DECL_RTL accesses. Reverse + sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check + for local symbols. + + 2003-02-02 Eric Christopher + + * config/mips/mips.c (mips_sign_extend): Remove. + * config/mips/mips-protos.h: Ditto. + * config/mips/mips.md (movdi_internal2_extend): Remove. + (extendsidi2): Fix mode of convert_memory_address. + + 2003-01-24 Eric Christopher + + * config/mips/mips.md: Rewrite zero_extend* and extend* + patterns. Use explicit instructions and split after reload + for register extensions. + (ashlsi3_internal1_extend): New combiner pattern for + shift and extend combinations. + * config/mips/mips.h: Change Pmode back to ptr_mode + for performance enhancement. + * combine.c (expand_compound_operation): Make sure + that zero_extend operation is profitable. + + 2003-01-14 Richard Sandiford + + * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored + addresses depend on ptr_mode rather than Pmode. + (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly. + (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode. + (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16. + (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly. + * config/mips/mips.md (tablejump): Likewise. Remove Pmode + condition for selecting cpaddsi or cpadddi: use cpadd instead. + (tablejump_internal1): Remove condition. + (tablejump_internal2): Change condition to TARGET_64BIT. + (cpaddsi): Rename to... + (cpadd): ...this. + (cpadddi): Remove. + + 2003-01-09 Richard Sandiford + + * config/mips/mips-protos.h (mips16_constant_after_function_p, + mips_address_cost, mips_check_split, double_memory_operand, + mips16_gp_offset, mips16_gp_offset_p, mips16_constant, + pic_address_needs_scratch, symbolic_operand): Remove declarations. + (mips_legitimate_address_p): Return bool. + (mips_address_insns, mips_fetch_insns, mips_const_insns, + mips_legitimize_address, mips_legitimize_move, + mips_expand_call): Declare. + (mips_return_addr): Move outside #ifdef RTX_CODE. + + * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro. + (PIC_FN_ADDR_REG): New reg_class. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries. + (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG. + (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND, + CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros. + (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros. + (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S. + (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p. + (LEGITIMATE_PIC_OPERAND): Undefine. + (LEGITIMATE_CONSTANT_P): Use mips_const_insns. + (LEGITIMIZE_ADDRESS): Use mips_legitimize_address. + (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block. + (FUNCTION_MODE): Change to SImode. + (CONST_COSTS): Use mips_const_insns to calculate the cost of + most constants. Treat const_artih_operands specially if they + occur in a PLUS or MINUS. + (CONSTANT_POOL_COST): New macro. + (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2. + Add LO_SUM handling. + (ADDRESS_COST): Undefine. + (PREDICATE_CODES): Add symbolic_operand and const_arith_operand. + Add CONST to the list of codes for arith_operand. Add LABEL_REF + to call_insn_operand and remove CONST_INT. + + * config/mips/mips.c: Include integrate.h. + (SINGLE_WORD_MODE_P): New macro. + (mips_constant_type, mips_symbol_type, mips_address_type): New enums. + (mips_constant_info, mips_address_info): New structs. + (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG. + (mips_classify_constant, mips_classify_symbol, + mips_valid_base_register_p, mips_symbolic_address_p, + mips_classify_address, mips_symbol_insns, + mips16_unextended_reference_p, mips_address_insns, mips_const_insns, + mips_fetch_insns, mips_force_temporary, mips_add_offset, + mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move, + mips_print_relocation): New functions. + (const_arith_operand): New operand predicate. + (arith_operand): Use it. + (mips_const_double_ok, mips16_simple_memory_operand, + simple_memory_operand, double_memory_operand, mips_check_split, + mips_address_cost, pic_address_needs_scratch, mips16_gp_offset, + mips16_gp_offset_p, mips16_output_gp_offset, + mips16_constant_after_function_p, mips16_constant): Remove. + (call_insn_operand): Be more fussy about symbolic constants. + Use register_operand. + (move_operand): Use mips_symbolic_address_p to check symbolic + operands and general_operand to check the rest. + (symbolic_operand): Use mips_classify_constant. + (mips_legitimate_address_p): Use mips_classify_address. + (mips_move_1word): Combine handling of symbolic addresses. + Remove special treatment of gp-relative loads for TARGET_MIPS16. + (move_move_2words): Likewise. Assume addresses are offsettable + if they need to refer to more than one word. Add HIGH handling. + (mips_restore_gp): Use ptr_mode for the GP save slot. + (mips_expand_call): New function, combining the old mips.md + call and call_internal define_expands. If the address isn't + a call_insn_operand, force it into a register. For SVR4 PIC, + emit an exception_receiver instruction after the call. + (override_options): Only override flag_pic for TARGET_ABICALLS + if it is currently zero. Allow mips_split_addresses when + Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS. + Add new register class letter, 'c'. + (print_operand): Use mips_classify_constant for constant operands. + (print_operand_address): Use mips_classify_address. + (mips_output_function_prologue): Don't use .cprestore. + (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack + via the frame pointer if current_function_calls_eh_return. + (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG + to mark whether a symbol is local or global. + (build_mips16_call_stub): Expect the address of the function rather + than a MEM reference to it. Update call generation sequences. + (mips16_optimize_gp): Remove Pmode checks. Temporarily disable + small-data adjustments. + + * config/mips/mips.md: Remove 'R'/'m' memory distinction. Use default + length for loads and stores. + (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants. + (define_attr type): Add const and prefetch. + (define_attr length): Use mips_const_insns for const instructions. + Use mips_fetch_insns for load and store instructions. + (define_attr single_insn): New. + (define_attr can_delay): Use it. + (define_attr abicalls): Remove. + (define_delay): Use can_delay. Always allow calls to have delay slots. + (addsi3_internal_2): Add 'Q' constraint. + (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8. + (high): Remove. + (lowsi): Renamed from low. + (lowdi): New pattern. + (movdi, movsi): Use mips_legitimize_move. Remove define_split. + (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4. + (loadgp): Change operand 0 to an immediate_operand. + (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd + beforehand. + (cpaddsi, cpadddi): New patterns. + (tablejump_internal3, tablejump_internal4): Remove define_expands + and associated define_splits. + (call, call_value): Use mips_expand_call. + (call_internal): New, replacing all existing call_internal* insns. + (call_value_internal): Likewise call_value_internal*. + (call_value_multiple_internal): Likewise call_value_multiple_internal*. + (untyped_call): Remove if (operands[0]) magic. + (prefetch_si_address, prefetch_si): Change type to "prefetch". + (prefetch_di_address, prefetch_di): Likewise. + (leasi, leadi): Remove. + (reloc_gprel16): New. + + * config/mips/5400.md (ir_vr54_hilo): Include const type. + * config/mips/5500.md (ir_vr55_hilo): Likewise. + * config/mips/sr71k.md (ir_sr70_hilo): Likewise. + + 2003-01-08 Eric Christopher + + * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI. + * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and + configure check for libgloss. + * config/mips/elf64.h: Ditto. + * config/mips/mips.c: Remove ABI_MEABI. + * config/mips/mips.h: Ditto. + + 2002-11-05 Richard Sandiford + + Fix merge fallout. + * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change. + (muldi3_internal): Remove outdated comment. + (*muls_di, *umuls_di): Fix comment and 64-bitness. + (*smsac_di, *umsac_di): Likewise. Reformat. + (umulsi3_highpart): Minor formatting tweaks. + (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI. Remove + redundant scratch operand. Minor formatting tweak. + (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well. + (umulsi3_highpart_neg_mulhi_internal): Likewise. Fix asm template. + (smulsi3_highpart): As for the unsigned version. + (smulsi3_highpart_internal): Likewise. + (smulsi3_highpart_mulhi_internal): Likewise. + (smulsi3_highpart_neg_mulhi_internal): Likewise. + (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks. + (*smul_acc_di): Remove duplicated pattern. + (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change. + (anddi3) [unnamed mips16 pattern]: Remove reintroduced length. + (zero_extendsidi2_internal2): Remove new, but commented-out pattern. + + 2002-10-22 Eric Christopher + + * config/mips/mips-protos.h (mips_return_addr): New. + * config/mips/mips.c (mips_return_addr): New. + (movdi_operand): Remove. + (se_register_operand): Ditto. + (se_reg_or_0_operand): Ditto. + (se_uns_arith_operand): Ditto. + (se_arith_operand): Ditto. + (se_nonmemory_operand): Ditto. + (extend_operator): Ditto. + (highpart_shift_operator): Ditto. + (mips_initial_elimination_offset): Remove return address pointer + elimination. + (mips_reg_names): Remove $ra. + (mips_regno_to_class): Ditto. + * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64 + and TARGET_64BIT. + (POINTER_BOUNDARY): Remove. + (POINTERS_EXTEND_UNSIGNED): Define to 0. + (PROMOTE_MODE): Promote to Pmode. + (SHORT_IMMEDIATES_SIGN_EXTEND): Define. + (Pmode): Define to TARGET_64BIT. + (FUNCTION_MODE): Define as Pmode. + (mips_args): Remove deleted functions. + (SIZE_TYPE): Depend on POINTER_SIZE. + (PTRDIFF_TYPE): Ditto. + (FIXED_REGISTERS): Fix extra registers. + (CALL_USED_REGISTERS): Ditto. + (CALL_REALLY_USED_REGISTERS): Ditto. + (RAP_REG_NUM): Remove. + (RETURN_ADDRESS_POINTER_REGNUM): Ditto. + (RETURN_ADDR_RTX): Define to mips_return_addr. + (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM. + (CAN_ELIMINATE): Ditto. + * config/mips/mips.md: For DImode patterns, take into account + deletions above. Split mulsidi patterns into sign_extend and + zero_extend. + + 2002-10-16 Richard Sandiford + Michael Meissner + + * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code. + * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to + mop up unnecessarly moves through LO. + (*mul_acc_si): Remove vr5400 and vr5500 handling from here. + (*macc): New pattern for ISA_HAS_MACC. Add define_peephole2s to + change mtlo/macc sequences into mul/add sequences when a three- + address mul is available. + (*macc2): New pattern. Add a define_peephole2 to generate it. + (*mul_sub_si): Fix contraint for operand 5. + (*muls): Use in 32-bit code as well. + (*msac): Likewise. Use msub instead of msac in vr5500 code + if the destination is LO. Remove duplicate define_split. + (*muls_di): Use only in 32-bit code. Adjust rtl accordingly. + (*msac_di): Likewise. Fix formatting. + (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too. + (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI. + (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT. + (*xmulsi3_neg_highpart_mulhi): Likewise. + (*mul_acc_64bit_di): Remove. + (*mul_acc_di): Use only in 32-bit code. Handle ISA_HAS_MACC as well. + + 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-09 Richard Sandiford + + * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT. + Remove DImode define_split for !TARGET_64BIT. + (anddi3): Remove !TARGET_64BIT support from here as well. + Change operand 2's predicate to se_uns_arith_operand. + Add constant alternatives to define_insn. + (iordi3, xordi3, *nordi3): Likewise. + (anddi3_internal1, xordi3_immed): Remove. + + 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. + + +2003-04-30 Diego Novillo + + * builtins.def (BUILTIN_CONSTANT_P): Mark as constant. + +2003-04-30 Geoffrey Keating + + * tree-inline.c (inlinable_function_p): Back out last change, it's + unnecessary. + +2003-04-30 Steven Bosscher + + * ggc-page.c (TREE_EXP_SIZE): Define. + (extra_order_size_table): New entry for expr trees with + two operands. + +2003-04-30 Gabriel Dos Reis + + * c-common.c (if_elt): Use location_t in lieu of "file, line" pair. + (c_expand_start_cond): Adjust. + (c_expand_end_cond): Don't use warning_with_file_and_file. + (shadow_warning): Likewise. + +2003-04-30 Nathan Sidwell + + * tree.h (DECL_POINTER_DEPTH): Remove. + (struct tree_decl): Remove pointer_depth. + +2003-04-30 Janis Johnson + + * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove. + * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove. + (rs6000_xcoff_encode_section_info): Remove. + (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug. + (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS. + (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,): + Use SYMBOL_REF_FLAGS. + (rs6000_elf_encode_section_info): Call default_encode_section_info for + generic flags, use SYMBOL_REF_FLAGS; code cleanups. + * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove. + (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New. + * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove. + (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG. + +2003-04-30 Gabriel Dos Reis + + * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF. + +2003-04-30 Andreas Schwab + + * doc/extend.texi (Other Builtins): Enclose multiple word data + type in braces for @deftypefn. + +2003-04-30 Richard Kenner + + * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows. + + * doc/install.texi (--enable-threads): Document "gnat" option. + +2003-04-30 Gabriel Dos Reis + + * diagnostic.h (output_formatted_scalar): Tweak. + * diagnostic.c (output_long_decimal): Likewise. + (output_unsigned_decimal): Likewise. + (output_long_unsigned_decimal): Likewise. + (output_octal): Likewise. + (output_long_octal): Likewise. + (output_hexadecimal): Likewise. + (output_long_hexadecimal): Likewise. + (output_pointer): New function. + (output_format): Use it. Recognize "%p" format specifier. + +2003-04-30 Zdenek Dvorak + + * function.c (purge_addressof_1): Postpone insn in fewer cases. + +2003-04-29 Geoffrey Keating + + * config/rs6000/host-darwin.c (segv_handler): When -dH is used, + call abort() after running out of stack space. + + * c-typeck.c (function_types_compatible_p): Ignore incompatible + 'volatile' qualifiers on a function's return type in GNU mode. + +2003-04-29 Aldy Hernandez + + * expr.c (emit_group_load): Dump parallels of simd types to + memory. + +2003-04-29 Vladimir Makarov + + * genautomata.c (add_vect): Check undefined value for range type + too. + +2003-04-29 Phil Edwards + + * configure.in: More general test for cmp --ignore-initial. + * configure: Regenerate. + +2003-04-29 Richard Kenner + + * stor-layout.c (mode_for_size_tree): Use tree_low_cst. + (layout_decl, place_field): Likewise. + Also make minor type and whitespace changes. + + * tree.c (save_expr): Don't fold a COMPONENT_REF. + +2003-04-29 Olivier Hainque + + * calls.c (expand_call): When modes of target and valreg match, force + sibcall failure when target is a MEM. + +2003-04-29 Geoffrey Keating + + * tree-inline.c (inlinable_function_p): Don't support inlining + functions using varargs. + + * doc/invoke.texi (Overall Options): Mention -x objective-c-header. + + * dwarf2out.c (output_call_frame_info): No need to output EH + unwind information if all_throwers_are_sibcalls. + + * c-semantics.c (expand_unreachable_stmt): Return a tree. + (expand_stmt): Update for change to expand_unreachable_stmt. + (expand_unreachable_if_stmt): Likewise. + + * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake. + +2003-04-29 Jason Merrill + + PR middle-end/10336 + * jump.c (never_reached_warning): Really stop looking if we reach + the beginning of the function. + +2003-04-29 Bob Wilson + + * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX): + Remove redundant macros. + (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int". + (LOCAL_LABEL_PREFIX): Define unconditionally. + (NO_DOT_IN_LABEL): Clarify comment. + * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit + definition to "long int". + +2003-04-29 Alexander Kabaev + + bootstrap/10452 + * gengtype-yacc.y: Improve portability. + +2003-04-29 Zack Weinberg + + * config.gcc: Install obsolete target list for GCC 3.3. + * doc/install.texi: Mention in specific-target instructions + that certain configurations are deprecated. + +2003-04-29 Zack Weinberg + + * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK. + +2003-04-29 Kriang Lerdsuwanakij + + * c-pragma.c (maybe_apply_renaming_pragma): Fix typo. + * gcc.c (display_help): Likewise. + * toplev.c (f_options): Likewise. + * params.def (PARAM_MAX_INLINE_SCOPE): Likewise. + * config/c4x/c4x.h (TARGET_SWITCHES): Likewise. + * config/mcore/mcore.h (TARGET_SWITCHES): Likewise. + * config/s390/s390.h (TARGET_SWITCHES): Likewise. + * config/v850/v850.h (TARGET_SWITCHES): Likewise. + +2003-04-29 J"orn Rennecke + + * varasm.c (default_assemble_visibility): Use assemble_name. + +2003-04-29 David O'Brien + + * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker. + * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro. + (SIZE_TYPE): New macro. + * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro. + (SET_ASM_OP): New macro. + (HANDLE_SYSV_PRAGMA): New macro. + (ASM_WEAKEN_LABEL): New macro. + +2003-04-28 Mark Mitchell + + PR c++/10180 + * tree-inline.c (expand_call_inline): Call push_srcloc when + encountering EXPR_WITH_FILE_LOCATION. Honor warn_inline. + +2003-04-28 Mike Stump + + * gdbinit.in: Update to reflect new identifier structure. + +2003-04-28 Zack Weinberg + + * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete. + (struct tree_int_cst, struct tree_real_cst, struct tree_string, + struct tree_complex, struct tree_vector): Remove RTL field. + (CONSTRUCTOR_ELTS): Use elt 0. + * tree.def (CONSTRUCTOR): Delete first of its two operands. + * varasm.c (output_constant_def): Remove early exit if + TREE_CST_RTL is set. Don't set TREE_CST_RTL. + (decode_addr_const): Don't mention TREE_CST_RTL in comment. + * target.h (select_section): Don't mention TREE_CST_RTL in comment. + * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL. + +2003-04-28 Jakub Jelinek + + * c-decl.c (finish_decl): When prototype with asmspec is found + for built-in, adjust built_in_decls as well as expr.c decls. + * expr.c (init_block_move_fn, init_block_clear_fn): New functions. + (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it. + * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes. + +2003-04-28 Richard Henderson + + * config/sparc/sparc.c (print_operand): Add 's' to sign-extend. + * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of + integral constant mult operand. + (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise. + (const_smulsi3_highpart_v8plus): Likewise. + (const_smulsi3_highpart): Likewise. + (const_umulsidi3_sp32): Likewise; sign-extend it in the output. + (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise. + (const_umulsi3_highpart_v8plus): Likewise. + (const_umulsi3_highpart): Likewise. + +2003-04-28 David O'Brien + + * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE): + Define as 1. + +2003-04-28 David O'Brien + + * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__. + +2003-04-28 Jakub Jelinek + + * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New. + * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New. + * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New + functions. + (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE. + +2003-04-28 Nick Clifton + + * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition. + +2003-04-27 Zack Weinberg + + * expr.c (expand_expr ): Always call + output_constant_def, use its result instead of TREE_CST_RTL (exp). + Can assume it has the form (mem (symbol_ref ".LCxxx")). + (expand_expr ): Can always just extract the + relevant field of a CONSTRUCTOR. + (expand_expr ): Make control flow explicit. + * varasm.c (output_constant_def): Can look at TREE_CST_RTL of + an INTEGER_CST. + +2003-04-27 Kazu Hirata + + * reload1.c (reg_set_luid): Fix a comment typo. + +2003-04-27 Zack Weinberg + + * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH, + struct deferred_string, const_str_htab): Kill. + (n_deferred_strings): New static variable. + (build_constant_desc): Set SYMBOL_REF_DECL of the new + symbol_ref to point to the constant. + (output_constant_def): When a deferred string is forced out, + just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings. + (mark_constant): Likewise. + (maybe_output_constant_def_contents): When deferring a string + constant, just set STRING_POOL_ADDRESS_P and increment + n_deferred_strings. + (mark_constant_pool): Check n_deferred_strings, not the size + of const_str_htab. + (init_varasm_once): No need to create const_str_htab. + + * rtl.def, rtl.h, doc/rtl.texi: Document possibility that + SYMBOL_REF_DECL points to a constant. + +2003-04-26 Zack Weinberg + + * varasm.c (output_constant_def): Split out two new static + functions, build_constant_desc and maybe_output_constant_def_contents. + Restructure for comprehensibility. Don't call + output_addressed_constants. Treat defstr being non-NULL for + STRING_POOL_ADDRESS_P constants as an invariant. + (struct deferred_string): Remove labelno field. + (output_constant_def_contents): Kill labelno argument. Call + output_addressed_constants here. Use ASM_OUTPUT_LABEL, not + asm_out.internal_label. + (mark_constant): Update call to output_constant_def_contents. + Treat defstr being non-NULL for STRING_POOL_ADDRESS_P + constants as an invariant. + +2003-04-26 Richard Henderson + + * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P. + (ix86_expand_call, ix86_rtx_consts): Likewise. + +2003-04-26 Kaveh R. Ghazi + + * doc/md.texi (cmpstr): Document additional restrictions. + +2003-04-26 Neil Booth + + * flags.h (time_report): Remove. + * timevar.c (timevar_enable): New. + (TIMEVAR_ENABLE): Remove, use timevar_enable. + (timevar_init): Rename from init_timevar. + * timevar.h (timevar_init): Rename from init_timevar. + * toplev.c (time_report): Make static. + (do_compile): Conditionally call init_timevar first. + (preprocess_options): Move some code to do_compile. + +2003-04-26 Stephane Carrez + + * doc/install.texi (Binaries): Mention binaries for HC11/HC12. + +2003-04-26 Neil Booth + + * _cpp_lex_direct: Remove pointless code. + +2003-04-26 Stephane Carrez + + * doc/extend.texi (Function Attributes): Document "near" and "far" + for 68HC11 and 68HC12. + +2003-04-25 Richard Kenner + + * expr.c (store_field): When making temporary for store, don't + make it TYPE_QUAL_CONST. + +2003-04-25 Phil Edwards + + * toplev.c (read_integral_parameter): Use "argument" in error + message to distinguish it from actual invalid options. + +2003-04-25 Bob Wilson + + * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous + addition of __PIC__ and __pic__ macros. + * config/xtensa/xtensa.h: Clean up indentation. + +2003-04-25 Bob Wilson + + * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of + _GNU_SOURCE. Add definitions of __PIC__ and __pic__. + (SUBTARGET_CPP_SPEC): Define. + (LIB_SPEC): Delete. + * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete. + * config/xtensa/xtensa.c (xtensa_declare_object): Delete. + * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS): + Define. + (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. + (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define. + +2003-04-25 H.J. Lu + + * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode + for return mode. + (ia64_expand_builtin): Set rmode to SImode for + IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI, + IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and + IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode + for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI. + +2003-04-25 Phil Edwards + + * configure.in (make_compare_target): Test for GNU cmp and set this + variable appropriately. + * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean, + compare4-lean): Rename actual targets to slowcompare*. New compare* + targets depend on names based on make_compare_target. + * configure: Regenerated. + +2003-04-25 Richard Henderson + + * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm + to clobber ar.pfs and ar.unat. + (ia64_expand_prologue): Force alloc instruction if ar.pfs saved; + fix test for spilling ar.pfs to the stack. + +2003-04-25 Richard Henderson + + PR opt/10315 + * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper + checks during reload; use validize_mem instead of adjust_address. + +2003-04-26 Ben Elliston + + * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the + return values from recog_memoized(). + +2003-04-24 John David Anglin + + PR opt/8705 + * gcse.c (try_replace_reg): On a successful substitution of a constant + into a single set, try to simplify the source of the set. + * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a + constant source. + +2003-04-24 Neil Booth + + * cpplex.c (cpp_token_len): Tighten up. + (cpp_token_as_text): Need extra byte now. + * cpplib.c (glue_header_name): Need extra 2 bytes. + * cppmacro.c (cpp_macro_definition): Need extra byte. + +2003-04-24 Alexander Kabaev + + * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using + const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets + where they might be not present. Use their _sp64 equivalent + instead. + +Thu Apr 24 20:42:12 CEST 2003 Jan Hubicka + + * i386.md (cvtsi2sdq): Fix typo in previous patch. + +2003-04-24 Krister Walfridsson + + * configure.in: Check whether mbstowcs works. + * configure, config.in: Regenerate. + * intl.c: Use HAVE_WORKING_MBSTOWCS. + +2003-04-24 H.J. Lu + + * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di + for __sync_bool_compare_and_swap_di for int return type. + + * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di): + Change return type to int. + (__sync_bool_compare_and_swap): Likewise. + +Thu Apr 24 16:55:26 CEST 2003 Jan Hubicka + + * cfgbuild.c (make_edges): Do not use next_nonnote_insn when + looking for fallthru edge. + + * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul): + Fix. + (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload, + athlon-fvector): New. + (athlon_*): Revisit to match new optimization guide. + * i386.c (ix86_adjust_cost): Fix memory operand costs on Athlon/k8 + * i386.md (cvt??2?? patterns): Fix modes. + (fistp patterns): Set modes. + + Accidentaly commited with my earlier reload patch: + PR c/10308 + * reload.c (find_reloads_address_1): Reload plus at the place of + index register. + +2003-04-24 Nathan Sidwell + + New GCOV_TAG_FUNCTION layout + * coverage.c (struct function_list): Replace name with ident. + (struct counts_entry): Likewise. + (fn_ident): New. + (htab_counts_entry_hash, htab_counts_entry_eq, + htab_counts_entry_del): Adjust. + (reads_count_file, get_coverage_counts, + coverage_begin_output, coverage_end_function): Adjust. + (build_fn_info_type, build_fn_info_value): Likewise. + * gcov-dump.c (tag_function): Adjust. + * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV. + * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV. + * gcov.c (struct function_info): Add ident. + (read_graph_file, read_count_file): Adjust. + * libgcov.c (gcov_exit): Adjust. + +2003-04-23 Richard Henderson + + PR opt/8300 + * toplev.c (rest_of_compilation): Delay no_new_pseudos until + after initialize_uninitialized_subregs; update reg info assuming + new pseudos were created. + +2003-04-23 Neil Booth + + * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update. + * c-lex.c (MULTIBYTE_CHARS): Remove conditionals. + (lex_string): Take cpp_string with full spelling. + (cb_ident): Update. + (c_lex): Update diagnostics. + * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL. + (create_literal): New. + (lex_string): Unterminated literals have type CPP_OTHER. + (_cpp_lex_direct): Update calls to lex_string. Use create_literal + for CPP_OTHER. + (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify. + (_cpp_equiv_tokens, cpp_interpret_charconst): Update. + * cpplib.c (parse_include, do_line, do_linemarker, + destringize_and_run): Update for token storing full spelling. + * cpplib.h: Update token spelling types. + * cppmacro.c (stringify_arg, check_trad_stringification): + Update for token storing full spelling. + +2003-04-23 Ulrich Weigand + + * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop. + +2003-04-23 Richard Earnshaw + + * arm.h (TARGET_OPTIONS): Add value field. + +2003-04-23 Mark Mitchell + + * doc/extend.texi: Remove duplicate 2003 copyright date. + +2003-04-23 Nathan Sidwell + + * Makefile.in (LIBGCC_DEPS): Add gcov headers. + (libgcov.a): Depends on LIBGCC_DEPS. + * basic-block.h (profile_info): Moved here from coverage.h. Made + a pointer. + * coverage.c (struct function_list): Fixed array of counter types. + (struct counts_entry): Keyed by counter type, contains summary. + (profile_info): Moved to profile.c. + (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global + vars. + (profiler_label): Remove. + (ctr_labels): New. + (set_purpose, label_for_tag, build_counter_section_fields, + build_counter_section_value, build_counter_section_data_fields, + build_counter_section_data_values, build_function_info_fields, + build_function_info_value, gcov_info_fields, gcov_info_value): Remove. + (build_fn_info_type, build_fn_info_value, build_ctr_info_type, + build_ctr_info_value, build_gcov_info): New. + (htab_counts_entry_hash, htab_counts_entry_eq): Adjust. + (reads_counts_file): Adjust. + (get_coverage_counts): Takes counter number. Add summary + parameter. Adjust. + (coverage_counter_ref): Tkaes counter number. Adjust. Lazily + create counter array labels. + (coverage_end_function): Adjust. + (create_coverage): Adjust. + (find_counters_section): Remove. + * coverage.h (MAX_COUNTER_SECTIONS): Remove. + (struct section_info, struct profile_info): Remove. + (profile_info): Moved to basic-block.h. + (coverage_counter_ref): Takes a counter number. + (get_coverage_counts): Takes a counter number. Added summary + parameter. + (find_counters_section): Remove. + * gcov-dump.c (tag_arc_counts): Rename to ... + (tag_counters): ... here. Adjust. + (tag_table): Move tag_counters to 3rd entry. Remove + PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries. + (dump_file): Check for counter tag values here. + (tag_summary): Adjust. + * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust. + * gcov-io.h (GCOV_LOCKED): New. + (GCOV_TAG_ARC_COUNTS): Rename to ... + (GCOV_TAG_COUNTS_BASE): ... here. + (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY): + Remove. + (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New. + (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG, + GCOV_TAG_IS_COUNTER): New. + (struct gcov_ctr_summary): New. + (struct gcov_summary): Adjust. + (struct gcov_counter_section): Remove. + struct gcov_counter_section_data): Remove. + (struct gcov_function_info): Rename to ... + (struct gcov_fn_info): ... here. Adjust. + (struct gcov_ctr_info): New. + (struct gcov_info): Adjust. + * gcov.c (read_count_file): Adjust. + (output_lines): Adjust. + * libgcov.c (gcov_exit): Adjust. + (__gcov_flush): Adjust. + * mklibgcc.in (libgcc2_c_dep): Add gcov headers. + * predict.c (maybe_hot_bb_p, probably_cold_bb_p, + probably_never_executed_bb_p, compute_frequency_function): Adjust + profile_info use. + * profile.c (struct counts_entry): Remove. + (profile_info): Define here. + (get_exec_counts): Adjust get_coverage_counts call. + (compute_branch_probablilities): Remove find_counters_section + call. + (gen_edge_profiler): Adjust coverage_counter_ref call. + * tracer.c (tail_duplicate): Adjust profile_info use. + +2003-04-23 Roger Sayle + + PR optimization/10339 + * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn + directly instead of unsafely transforming call into a memcmp. + (expand_builtin_strncmp): Likewise. + +2003-04-22 Roger Sayle + + * alias.c (mark_constant_function): Check for constancy and + purity even of void functions. Update both the function decl + and the cgraph RTL info with the results. + +2003-04-22 Roger Sayle + + * real.c (do_add): Change to return a bool indicating that the + result of the operation may be inexact due to loss of precision. + (do_multiply): Likewise. + (do_divide): Likewise. + +2003-04-22 Geoffrey Keating + Loren James Rittle + + * dwarf2out.c (fde_table_allocated): Mark with GTY. + (decl_die_table_allocated): Likewise. + (abbrev_die_table_allocated): Likewise. + (line_info_table_allocated): Likewise. + (separate_line_info_table_allocated): Likewise. + (pubname_table_allocated): Likewise. + (arange_table_allocated): Likewise. + (ranges_table_allocated): Likewise. + (decl_die_table_in_use): Unconditionalize; mark with GTY. + (abbrev_die_table_in_use): Likewise. + (line_info_table_in_use): Likewise. + (separate_line_info_table_in_use): Likewise. + (pubname_table_in_use): Likewise. + (arange_table_in_use): Likewise. + (ranges_table_in_use): Likewise. + (have_location_lists): Likewise. + (emitcount): New GTY-marked static, moved... + (maybe_emit_file): ...from here. + (label_num): New GTY-marked static, moved... + (gen_internal_sym): ...from here. + +2003-04-22 Richard Henderson + + PR 8866 + * rtl.h (MEM_NOTRAP_P): New. + (MEM_COPY_ATTRIBUTES): Copy it. + * rtlanal.c (may_trap_p): Check it. + * expr.c (do_tablejump): Set it. + * doc/rtl.texi (Flags): Document it. + + * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes. + +2003-04-22 Olivier Hainque + + * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't + set FRP on stack adjustment for outgoing args if frame_pointer_needed. + +2003-04-22 Vincent Celier + + * gthr-gnat.h, gthr-gnat.c: new sources for implementation of + --enable-threads=gnat. + * Makefile.in: Add gthr-gnat.c to LIB2ADDEH. + * configure.in: Add gnat to the list of thread packages + * configure: Rebuild. + * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP + +2003-04-22 Neil Booth + + * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof. + +2003-04-22 Devang Patel + + * cpptrad.c (_cpp_replacement_text_len): Add check for macro + parameter count. + (_cpp_copy_replacement_text): Same. + +2003-04-22 Neil Booth + + * c-lex.c (c_lex): Handle CPP_OTHER differently. + * cppexp.c (_cpp_parse_expr): Similarly. + * cpplex.c (SPELL_CHAR): Remove. + (_cpp_lex_direct): Stray chars are saved as byte strings. + (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't + handle SPELL_CHAR. + (cpp_avoid_paste): Update handling of CPP_OTHER. + * cpplib.h: Spell CPP_OTHER like a number. + (struct cpp_token): Remove member c. + * cppmacro.c (stringify_arg): Update handling of CPP_OTHER. + +2003-04-22 David Turner + + * gbl-ctors.h: Add special license exception. + * libgcc2.h: Likewise. + * tsystem.h: Likewise. + * gcov-io.h: Likewise. + +2003-04-22 David Edelsohn + + * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT + macro defaulting to original BRANCH_COST heuristic. + * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document. + + * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define. + +2003-04-22 Aldy Hernandez + + * config/rs6000/t-spe: Merge in t-fprules into file. + + * config.gcc: Add t-spe to powerpc-eabispe. + +2003-04-22 Kean Johnston + + * tlink.c (recompile_files): Add missing '=' to putenv calls + +2003-04-22 Nathan Sidwell + + * ginclude/stddef.h: Provide C++ safe offsetof. + +2003-04-22 J"orn Rennecke + + * function.c (purge_addressof_1): In (mem (addressof (reg))) case + for reg notes, if there are no substitutions, just use a SUBREG. + +2003-04-21 Mark Mitchell + + * Makefile.in (calls.o): Depend on except.h. + * calls.c: Include except.h. + (emit_call_1): Call note_eh_region_may_contain_throw if + appropriate. + * except.c (eh_region): Add may_contain_throw. + (expand_eh_region_end_cleanup): Do not include handler code when + it cannot be reached. + (note_eh_region_may_contain_throw): New function. + * except.h (note_eh_region_may_contain_throw): New function. + +2003-04-21 Mark Mitchell + + * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous + changes. + +2003-04-21 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_override_options): No SPE means + 64-bit long doubles. + +2003-04-21 Olivier Hainque + + * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore + a number of conversions required for type consistency and previously + stripped off by STRIP_NOPS. + + * calls.c (expand_call): Prevent sibcall optimization for calls to + nested subprograms. + + * expmed.c (extract_bit_field): Reverse operands of && condition to + prevent a potential division by zero in the previously first branch. + * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero. + +2003-04-21 Joel Brobecker + + * dwarf2out.c (is_ada, is_ada_subrange_type): New functions. + (subrange_type_die): Likewise. + (modified_type_die): Emit a subrange_type DIE for Ada subrange types. + (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up. + +2003-04-21 Nathan Sidwell + + Break out coverage routines to new file. + * Makefile.in (COVERAGE_H): New variable + (C_OBJS): Add coverage.o + (coverage.o): New target. + (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust + dependencies. + (GTFILES): Adjust. + (gt-coverage.h): New target. + (gt-profile.h): Remove. + * profile.h: Remove. Move to ... + * coverage.h: ... here. New. #include gcov-io.h. + * gcov-io.h: Move function definitions to ... + * gcov-io.c: ... here. New. + * profile.c: Move coverage routines to coverage.c. + (instrument_edges, get_exec_counts, branch_prob, init_branch_prob, + end_branch_prob): Adjust. + * coverage.c: New. Coverage routines from profile.c + (coverage_counter_ref, coverage_init, coverage_finish, + coverage_end_function, coverage_begin_output, + coverage_counter_ref, get_coverage_counts): Define. + * gcov-dump.c, gcov.c: #include gcov-io.c. + * libgcov.c: Likewise. Adjust. + * loop-init.c: Don't #include profile.h + * tracer.c, predict.c, sched-ebb.c: Adjust #includes. + * rtl.h: Add coverage prototypes. + * toplev.c (compile_file): Init coverage, not branch_prob. + Always call coverage_finish. + (rest_of_compilation): Call coverage_end_function. + +2003-04-21 Matt Kraai + + * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case. + +2003-04-21 Neil Booth + + * c-ppoutput.c (cb_include): Don't take a cpp_token. + * cppfiles.c: Don't undef strcmp. + (find_include_file): Don't take a cpp_token. Check for empty + file names. + (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token. + (cpp_push_include): Simplify. + * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update. + * cpplib.c (glue_header_name): Return the file name, not a cpp_token. + (parse_include): Similary. Don't check for zero-length filenames. + (do_include_common, do_pragma_dependency): Update accordingly. + * cpplib.h (struct cpp_callbacks): Change prototype of include. + +2003-04-21 Richard Kenner + + * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for + details of conflict handling. + + * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case + when conversion overflows. + + * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set. + + * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p + before clearing. + +2003-04-21 Mark Mitchell + + * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL + have the same form as the old RTL. + +2003-04-21 Andreas Jaeger + + * cppcharset.c (_cpp_valid_ucn): Cast field precision to int. + +2003-04-20 Chris Lattner + Zack Weinberg + + * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to + genrtl_cleanup_stmt. Correct comment at head of + genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP). + + * stmt.c (struct nesting): Kill n_function_calls. + (expand_start_bindings): Don't set + thisblock->data.block.n_function_calls. + (expand_end_bindings): Compare function_call_count against 0. + (expand_cleanups): Kill DONT_DO argument; all callers passed + NULL_TREE. All callers updated to match. + +2003-04-20 Zack Weinberg + + * varasm.c (struct deferred_constant, defer_addressed_constants_flag) + (defer_addressed_constants, output_deferred_addressed_constants): Kill. + (output_constant_def): Remove code predicated on + defer_addressed_constants_flag. + + * output.h: Remove prototypes of deleted functions. + * c-typeck.c (constructor_subconstants_deferred): Kill. + (struct initializer_stack): Remove 'deferred' field. + (start_init): Remove all references to the above. + (finish_init): Likewise. Also remove never-executed call to + output_deferred_addressed_constants. Pull assignment to + defstr out of if expression. + +2003-04-20 Neil Booth + + * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH, + NOTE_NEWLINE): Remove. + * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update + to handle new form of line note type. + +2003-04-20 Zack Weinberg + + * target.h (encode_section_info): Add new argument carrying + the RTL to be modified by the hook. + + * varasm.c (make_decl_rtl, output_constant_def): Update calls + to encode_section_info. + (default_encode_section_info): Take and use RTL argument, + don't use TREE_CST_RTL or DECL_RTL. + * output.h: Update prototype of default_encode_section_info. + * config/darwin.h (ASM_DECLARE_OBJECT_NAME) + (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): + Update calls to encode_section_info. + + * config/darwin.c, config/arm/arm.c, config/arm/pe.c + * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c + * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c + * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c + * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c + * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions): + Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL, + except for PE dllimport/dllexport. Update calls to + default_encode_section_info. + + * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h: + Update prototypes. + + * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update. + +2003-04-20 John David Anglin + + PR/8705 + * pa.md (movccfp): New expander. + (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively. + Reverse fcmp conditions. + +2003-04-20 Marek Michalkiewicz + + * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values + of operand 1 correctly. + +2003-04-20 Nathan Sidwell + + * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens. + * gcov.c (output_lines): Don't be so fussy about going past EOF. + +2003-04-20 Neil Booth + + * Makefile.in (LIBCPP_OBJS): Add cppcharset.o. + (cppcharset.o): New target. + * c-lex.c (is_extended_char): Move to cppcharset.c. + (utf8_extend_token): Delete. + * cppcharset.c: New file. + * cpphash.h (_cpp_valid_ucn): New. + * cpplex.c (lex_identifier): Update prototype. + (continues_identifier_p): Rename forms_identifier_p. Handle UCN + escapes. + (maybe_read_ucs): Rename maybe_read_ucn. Update to use code + in cppcharset.c. + (lex_number, lex_identifier, cpp_parse_escape): Update. + (_cpp_lex_direct): Update to handle UCNs. + (cpp_avoid_paste): Don't paste to form a UCN. + +2003-04-19 Roger Sayle + + * builtins.c (expand_builtin): Don't expand a pure or const + built-in function if the result will be ignored and none of + its arguments are volatile. + +2003-04-19 Kean Johnston + + * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning + * config.gcc: make SCO use dbxelf.h and elfos.h; only use one + target fragment now: t-sco5; dont compile crti.o. + * config/i386/sco5.h: major overhaul to remove all COFF remnants + and to use elfos.h for most definitions. + (BSS_SECTION_ASM_OP): set correct segment attributes. + (PREFERED_DEBUGGING_TYPE): set to DWARF-2. + (DWARF2_UNWIND_INFO): Always set to 1. + (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default. + (MD_STARTFILE_PREFIX_1): Define. + (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS. + (DEFAULT_LINKER): Define if not specified to configure. + (CTORS_SECTION_ASM_OP): Remove COFF crud. + (DTORS_SECTION_ASM_OP): Remove COFF crud. + (WINT_TYPE): Define. + (SDB_DEBUGGING_INFO): Remove. + (EXTRA_SECTIONS): Likewise. + (EXTRA_SECTION_FUNCTIONS): Likewise. + (CTOR_LIST_BEGIN): Likewise. + (CTOR_LIST_END): Likewise. + (INIT_SECTION_FUNCTION): Likewise. + (FINI_SECTION_FUNCTION): Likewise. + (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise. + (LOCAL_LABEL_PREFIX): Likewise. + (NON_SAVING_SETJMP): Likewise. + (RETURN_POPS_ARGS): Likewise. + (ASM_OUTPUT_SKIP): Likewise. + (TARGET_ASM_NAMED_SECTION): Likewise. + (ASM_OUTPUT_INTERNAL_LABEL): Likewise. + (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. + (ASM_OUTPUT_IDENT): Likewise. + (ASM_OUTPUT_CASE_LABEL): Likewise. + (ASM_OUTPUT_ASCII): Likewise. + (ASM_OUTPUT_LIMITED_STRING): Likewise. + (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. + (ASM_OUTPUT_ALIGNED_COMMON): Likewise. + (ASM_GENERATE_INTERNAL_LABEL): Likewise. + (ASM_FINISH_DECLARE_OBJECT): Likewise. + (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_DECLARE_FUNCTION_SIZE): Likewise. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (ASM_DECLARE_RESULT): Likewise. + (ASM_WEAKEN_LABEL): Likewise. + (SUPPORTS_WEAK): Likewise. + (APPLY_RESULT_SIZE): Likewise. + (LPREFIX): Likewise. + (ALIGN_ASM_OP): Likewise. + (ASCII_DATA_ASM_OP): Likewise. + (IDENT_ASM_OP): Likewise. + (ASM_SHORT): Likewise. + (ASM_LONG): Likewise. + (TYPE_ASM_OP): Likewise. + (SIZE_ASM_OP): Likewise. + (STRING_ASM_OP): Likewise. + (SKIP_ASM_OP): Likewise. + (EH_FRAME_SECTION_ASM_OP): Likewise. + (READONLY_DATA_SECTION_ASM_OP): Likewise. + (INIT_SECTION_ASM_OP): Likewise. + (FINI_SECTION_ASM_OP): Likewise. + (TEXT_SECTION_ASM_OP): Likewise. + (DATA_SECTION_ASM_OP): Likewise. + (TYPE_OPERANT_FORMAT): Likewise. + (ASM_SPEC): Remove COFF code. + (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support; + cause -pg to emit an error; use pcrt1elf.o with -pp + (ENDFILE_SPEC): Likewise. + (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL. + (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first. + (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R; + add -z alt_resolve to support weak symbols the way GCC wants them. + (LIB_SPEC): Use the profiler libraries in -p or -pp mode. + (LIBGCC_SPEC): Dont use -lgcc in -G mode. + (ASM_PREFERED_EH_DATA_FORMAT): Remove. + * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove. + (CRTSTUFF_T_CFLAGS_S): Define. + (MULTILIB_OPTIONS): Likewise. + (MULTILIB_DIRNAMES): Likewise. + (MULTILIB_MATCHES): Likewise. + (MULTILIB_EXTRA_OPTS): Likewise. + (LIBGCC): Likewise. + (INSTALL_LIBGCC): Likewise. + (crti.o): Remove. + * config/i386/t-sco5gas: Remove. + * doc/install.texi: Updated for new OpenServer instructions. + * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported) + +2003-04-19 Kean Johnston + + * fixinc/check.tpl: Allow user to over-ride diff program. + * fixinc/inclhack.def: Removed extraneous #ifndef SVR5. + (sco_math): Added test for SCO math header files. + (sco_regset): Added check for conflicts with ieeefp.h. + (svr4_disable_opt): Removed extraneous #ifdef SVR4. + * fixinc/fixincl.x: Regenerated + * fixinc/tests/base/math.h: Added sco_math tests. + * fixinc/tests/base/string.h: New file. + * fixinc/tests/base/sys/regset.h: New file. + +2003-04-19 Neil Booth + + * cpphash.h (struct cpp_buffer): Remove backup_to. + * cpplex.c (BACKUP, get_effective_char): Die. + (_cpp_skip_block_comment): Assume '*' is location on entry. + (continues_identifier_p): Respect -fno-dollars-in-identifiers. + (IF_NEXT_IS): Update. + (_cpp_lex_direct): Don't use backup_to; look ahead directly. + +2003-04-19 Matt Kraai + + * README.Portability: Move to a new section and obsolete K+R + portability issues. + +Sat Apr 19 14:56:17 CEST 2003 Jan Hubicka + + * rtlanal.c (subreg_offset_representable_p): Fix call of + subreg_lowpart. + +2003-04-19 Neil Booth + + * cpphash.h (struct cpp_reader): New member warned_dollar. + * cpplex.c (continues_identifier_p): New function. + (parse_identifier, parse_number, parse_string): Rename lex_identifer, + lex_number and lex_string, and simplify. + (parse_slow, unescaped_terminator_p): Die. + (_cpp_lex_direct): Update. + +2003-04-19 Richard Kenner + + * calls.c (expand_call): Provide init for old_stack_pointer_delta. + +2003-04-19 Nathan Sidwell + + * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and + fork behavior. + +2003-04-19 Neil Booth + + * cppexp.c (eval_token): Permit true and false even if pedantic. + +2003-04-19 Neil Booth + + * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE. + +2003-04-19 Neil Booth + + * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD, + MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove. + (struct include_file): Remove fefcnt, mapped members. + (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching. + (read_include_file): Don't use mmap, terminate buffers in '\r'. + (purge_cache): Don't use munmap. + * cpphash.h (CPP_BUF_COLUMN): Update. + (lexer_state): Remove lexing_comment. + (struct _cpp_line_note): New. + (struct cpp_buffer): New members cur_note, notes_used, notes_cap, + next_line and need_line. Remove col_adjust and saved_flags. + (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line, + _cpp_skip_block_comment, scan_out_logical_line): New. + (_cpp_init_mbchar): Remove. + * cppinit.c (init_library): Remove call to _cpp_init_mbchar. + (cpp_read_main_file): Set line to 1 earlier. + (post_options): -traditional-cpp doesn't want trigraphs. + * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this. + (add_line_note, _cpp_clean_line, _cpp_process_line_notes, + _cpp_get_fresh_line): New. + (handle_newline, skip_escaped_newlines, trigraph_p, + continue_after_nul, _cpp_init_mbchar): Remove. + (get_effective_char): Update. + (_cpp_skip_block_comment): Rename from skip_block_comment, simplify. + (skip_line_comment): Simplify. + (skip_whitespace, parse_identifier, parse_slow, parse_number, + parse_string): Update. + (cpp_lex_direct): Use clean lines and process line notes. Update. + (cpp_interpret_charconst): No MULTIBYTE_CHARS. + * cpplib.c (prepare_directive_trad): Call scan_out_logical_line + directly. + (_cpp_handle_directive): Don't set saved_flags. + (run_directive, destringize_and_run, cpp_define, cpp_define_builtin, + cpp_undef, handle_assertion, cpp_push_buffer): Update. + (_cpp_pop_buffer): Free notes. + * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer. + * cpppch.c (cpp_read_state): \n terminate buffer. + * cpptrad.c (skip_escaped_newlines, handle_newline): Remove. + (copy_comment): Use _cpp_skip_block_comment. + (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad): + Simplify. + (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text, + save_replacement_text): Update. + (scan_out_logical_line): Update to use clean lines and process + line notes. + * fix-header.c (read_scan_file): Update. + +2003-04-18 Douglas B Rupp + + * unwind-dw2-fde.c (__register_frame_info_bases): Check for + null begin parameter (as well as pointer to null). + (__deregister_frame_info_bases): Likewise. + +2003-04-18 Richard Kenner + + * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a + hard or virtual register and copy into pseudo if replacement fails. + + * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p. + + * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0. + +2003-04-18 Olivier Hainque + + * calls.c (expand_call): Move special case for constructor calls + to right place. Ensures constructor calls used to initialize + arguments get a clean outgoing argument block for themselves. + Move check for stack deallocation completeness until after last + deallocation. Add stack_pointer_delta to set of state + variables saved and restored along with current stack_level. + + * integrate.c (expand_inline_function): Ensure non-const actuals + don't end up const in the caller's flow after conversion to possibly + const formal type. + +2003-04-18 Vincent Celier + + * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR + and *_DIV_EXPR as TRUNC_*_EXPR. + +2003-04-18 Mark Mitchell + + * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block + for orphaned jump tables. + +2003-04-18 Kazu Hirata + + * reload1.c: Revert my previous patch on 2002-04-17. + +2003-04-18 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix". + Add Segher Boessenkool. + +2003-04-18 Alexander Sotirov + + PR c/9177 + * c-decl.c (c_expand_body): Don't garbage collect the function + body if we are going to dump it later. + +2003-04-18 Richard Henderson + + * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove. + (alpha_end_function): Don't set them. + (decl_in_text_section): Remove. + (alpha_encode_section_info): Remove. + (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P. + (direct_call_operand): Use SYMBOL_REF_DECL and compare actual + sections, rather than decl_in_text_section results. + +2003-04-18 Roger Sayle + + * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT + and SIGN_EXTRACT. + +2003-04-18 Eric Botcazou + + PR optimization/7675 + * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag + on VAR_DECL, PARM_DECL and FUNCTION_DECL from within + nested functions if they refer to declarations from parent functions. + * stmt.c (expand_decl): Don't put automatic variables in registers + if the DECL_NONLOCAL flag is set. + +2003-04-18 Hans-Peter Nilsson + + * gcse.c (compute_ld_motion_mems): For MEM destinations, only + consider those to be movable where the source matches + want_to_gcse_p. + (update_ld_motion_stores): In comment, refer to + compute_ld_motion_mems for validity of replacement. + +Fri Apr 18 01:28:51 CEST 2003 Jan Hubicka + + * gcov-dump.c (tag_summary): Remove max_sum + * gcov-io.h (gcov_summary, gcov_write_summary, + gcov_read_summary): Kill max_sum. + * libgcov.c (gcov_exit): Do one pass over the data. Make error + message more verbose. + + * emit-rtl.c (subreg_hard_regno): Check that register is + representable. + + * reload.c (reload_inner_reg_of_subreg): When register is not + representable, reload the whole thing. + (find_reloads): Likewsie. + * rtlanal.c (subreg_representable_p): New function. + + * profile.c (compute_branch_probabilities): Cleanup sanity checking; + allow negative probabilities for edges from the call to exit. + (branch_prob): Do not add fake edges for functions that may return + twice. + +2003-04-17 DJ Delorie + + * toplev.c (target_options): Add value field. + (set_target_switch): Handle target options with values. + * doc/tm.texi: Document how fixed vs variable target + options work. + * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h, + config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h, + config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, + config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h, + config/m32r/m32r.h, config/m68hc11/m68hc11.h, + config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h, + config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h, + config/rs6000/rs6000.h, config/rs6000/sysv4.h, + config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h: + Add value initializer to target options. + +2003-04-07 Loren James Rittle + + * cpppch.c (cpp_valid_state): Unconditionally initialize nl. + +2003-04-17 Kazu Hirata + + * reload1.c (move2add_last_cc0): New. + (reload_cse_move2add): Detect implicit sets. + (move2add_note_store): Notice a store into cc0. + +2003-04-17 Roger Sayle + + PR c/10375 + * c-decl.c (duplicate_decls): Preserve "const" and "noreturn" + function attributes. + +2003-04-17 Janis Johnson + + * doc/sourcebuild.texi (Test Suites): Document support for testing + binary compatibility (moved from testsuite/README.compat). + +2003-04-17 Richard Henderson + + * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings. + +2003-04-17 Simon Law + + * doc/include/gpl.texi: Fix double-spacing after "MA" to match + the one provided by the FSF. + +2003-04-17 Gerald Pfeifer + + * doc/install.texi (Binaries): Update URL and list of platforms + provided by ftp.thewrittenword.com. + +2003-04-17 Richard Henderson + + * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove. + (call_insn_operand): Use SYMBOL_REF_LOCAL_P. + * config/xtensa/xtensa.md (call, call_value): Likewise. + +2003-04-17 Richard Henderson + + * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA. + (print_operand_address): Likewise. + (ep_memory_operand): Likewise. + (special_symbolref_operand): Likewise. + (v850_encode_data_area): Use SYMBOL_REF_FLAGS. + (v850_encode_section_info): Call default_encode_section_info. + (v850_strip_name_encoding): Remove. + * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA. + (ASM_OUTPUT_LABELREF): Remove. + (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove. + (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove. + (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove. + (ENCODED_NAME_P): Remove. + (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New. + (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New. + (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New. + +2003-04-17 Richard Henderson + + * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill. + * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use + SYMBOL_REF_FUNCTION_P. + +2003-04-17 Richard Henderson + + * config/sparc/sparc.c (sparc_encode_section_info): Remove. + (data_segment_operand): Use SYMBOL_REF_FUNCTION_P. + (text_segment_operand): Likewise. + +2003-04-17 Richard Henderson + + * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING. + (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. + (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P. + (sh_encode_section_info): Remove. + (sh_strip_name_encoding): Remove. + * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove. + (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove. + (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove. + (ASM_OUTPUT_LABELREF): Remove. + (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P. + * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P. + +2003-04-17 Richard Henderson + + * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New. + (tls_model_chars): Remove. + (larl_operand): Use SYMBOL_REF_FLAGS. + (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. + (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P. + (s390_output_mi_thunk): Likewise. + (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed. + (s390_function_profiler): Likewise. + (s390_encode_section_info): Use default_encode_section_info + and SYMBOL_FLAG_ALIGN1. + (s390_strip_name_encoding): Remove. + * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove. + * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P. + (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed. + +2003-04-17 Richard Henderson + + * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove. + (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P. + (print_operand_address): Likewise. + + * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument. + * config/ns32k/ns32k.c (expand_block_move): Don't check + flag_unroll_loops. + +2003-04-17 Richard Henderson + + * config/mcore/mcore.c (mcore_encode_section_info): Don't set + SYMBOL_REF_FLAG. + +2003-04-17 Richard Henderson + + * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New. + + * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New. + (SYMBOL_REF_MODEL): New. + (LIT_NAME_P): Move from m32r.h. + (m32r_select_section): Remove. + (m32r_encode_section_info): Use SYMBOL_REF_FLAGS. + (m32r_strip_name_encoding): Remove. + (m32r_in_small_data_p): New. + (small_data_operand): Use SYMBOL_REF_SMALL_P. + (addr24_operand): Use SYMBOL_REF_MODEL. + (call26_operand): Likewise. + (addr32_operand): Tidy. + (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX. + * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove. + (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove. + (READONLY_DATA_SECTION_ASM_OP): Remove. + (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. + (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove. + (TARGET_ASM_SELECT_SECTION): Remove. + (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove. + (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove. + (LARGE_NAME_P, ENCODED_NAME_P): Remove. + (ASM_OUTPUT_LABELREF): Remove. + +2003-04-17 Richard Henderson + + * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P. + (encode_section_info): Remove. + * config/ip2k/ip2k-protos.h: Update. + +2003-04-17 Richard Henderson + + * varasm.c (default_encode_section_info): Don't set + SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC. + * config/i370/i370.c (i370_encode_section_info): Remove. + * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P. + (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise. + * config/i370/i370.md (movsi): Likewise. + + * config/i370/t-i370: Add missing backslash. + +2003-04-17 Eric Botcazou + + * doc/invoke.texi (inline-limit): Fix pasto. + +2003-04-17 Richard Henderson + + * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New. + (small_call_insn_operand): Use it. + (SYMBOL_FLAG_EIGHTBIT_DATA): New. + (h8300_eightbit_constant_address_p): Use it. + (SYMBOL_FLAG_TINY_DATA): New. + (h8300_tiny_constant_address_p): Use it. + (h8300_encode_label, h8300_strip_name_encoding): Remove. + (h8300_encode_section_info): Set SYMBOL_REF_FLAGS. + * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove. + (ASM_OUTPUT_LABELREF): Remove. + +2003-04-16 Richard Henderson + + * config/frv/frv.c (symbol_ref_small_data_p): Remove. Replace + all users with SYMBOL_REF_SMALL_P. + (const_small_data_p): Use SYMBOL_REF_SMALL_P. + (frv_encode_section_info): Remove. + (frv_strip_name_encoding): Remove. + (frv_in_small_data_p): Merge tests from encode_section_info. + (frv_print_operand): Use '@' not SDATA_FLAG_CHAR. + * config/frv/frv.h (SDATA_FLAG_CHAR): Remove. + (SDATA_NAME_P): Remove. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P. + (ASM_OUTPUT_LABELREF): Remove. + (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR. + + * config/frv/frv.c (frv_asm_out_constructor): New. + (frv_asm_out_destructor): New. + * config/frv/frv.h (CTORS_SECTION_ASM_OP): New. + (DTORS_SECTION_ASM_OP): New. + (ASM_OUTPUT_CONSTRUCTOR): Remove. + (ASM_OUTPUT_DESTRUCTOR): Remove. + +2003-04-16 Richard Henderson + + * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use + SYMBOL_REF_LOCAL_P; abort if not pic. + (cris_encode_section_info): Remove. + +2003-04-16 Richard Henderson + + * config/c4x/c4x.c (c4x_encode_section_info): Remove. + (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P. + + * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare + flag_inline_trees. + +2003-04-16 Richard Henderson + + * config/avr/avr.c (avr_encode_section_info): Remove. + (avr_insert_attributes): New. + (print_operand_address): Use SYMBOL_REF_FUNCTION_P. + (avr_assemble_integer): Likewise. + +2003-04-16 Richard Henderson + + * arc.c (arc_encode_section_info): Remove. + (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P. + (arc_print_operand, arc_print_operand_address): Likewise. + * arc.h (EXTRA_CONSTRAINT): Likewise. + +2003-04-16 Roger Sayle + + * c-semantics.c (find_reachable_label): New function to find a + potentially reachable label in an expression. + (expand_unreachable_if_stmt): Similar to expand_if_stmt but + assumes the start of the IF_STMT is unreachable (dead) code. + (expand_unreachable_stmt): Similar to expand_stmt but assumes + the start of the statement list is unreachable (dead) code. + (genrtl_if_stmt): If the controlling expression of the IF + is constant, use expand_unreachable_stmt for the THEN or ELSE + clause as appropriate. + (genrtl_switch_stmt): Use expand_unreachable_stmt to expand + the body of a SWITCH statement. + (expand_stmt): The code immediately following a "return", + "break", "continue" or "goto" is unreachable. + * Makefile.in (c-semantics.o): Depend upon tree-inline.h. + +2003-04-16 Richard Henderson + + * rtl.h (MEM_ALIAS_SET): Update documentation. + * doc/rtl.texi (Special Accessors): New node. + (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS. + +2003-04-16 Alexandre Oliva + + * reload1.c (reload_cse_noop_set_p): Return false if mode of + SET_DEST is not the same as that returned by... + * cselib.h (cselib_reg_set_mode): ... new function. + * cselib.c (cselib_reg_set_mode): Define it. + (REG_VALUES): Document semantics of first element as set mode. + (cselib_subst_to_values): Skip first element if ELT is NULL. + (cselib_lookup): Likewise. Insert past the first element. + (cselib_invalidate_regno): NULLify first element. + (cselib_record_set): Set first element. + +2003-04-16 Olivier Hainque + + * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions. + (save_expr): Replace loop by call to skip_simple_arithmetics_at. + * tree.h: Add prototypes for the two new functions. + * fold-const.c (fold_binary_op_with_conditional_arg): Replace test + updates introduced in the previous revision by call to saved_expr_p. + * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at. + + * expr.c (store_field): Force usage of bitfield instructions when + the field position requires it, whatever SLOW_UNALIGNED_ACCESS. + (expand_expr, case BIT_FIELD_REF): likewise. + +2003-04-16 Mark Mitchell + + PR middle-end/8866 + * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete + jumptables. + +2003-04-16 Richard Henderson + + * config/ia64/ia64.c (sdata_symbolic_operand): Use + SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P. + (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. + (function_operand): Use SYMBOL_REF_FUNCTION_P. + (ia64_expand_load_address): Likewise. + (ia64_assemble_integer): Likewise. + (ia64_encode_section_info): Remove. + (ia64_strip_name_encoding): Remove. + * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove. + * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it. + +2003-04-16 Richard Henderson + + * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New. + (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP. + (direct_call_operand): Use SYMBOL_FLAG_NEAR. + (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P. + (small_symbolic_operand): Use SYMBOL_REF_SMALL_P. + (global_symbolic_operand): Similarly. + (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL. + (tls_symbolic_operand_type): Likewise. + (alpha_encode_section_info): Use default_encode_section_info. + (alpha_strip_name_encoding): Remove. + (get_tls_get_addr): Split out from ... + (alpha_legitimize_address): ... here. + (alpha_emit_xfloating_libcall): Use init_one_libfunc. + (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL. + (alpha_initialize_trampoline): Use init_one_libfunc. + (alpha_setup_incoming_varargs): Mark unused parameters. + (alpha_initial_elimination_offset): Likewise. + (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP. + (unicosmk_unique_section): Use default_strip_name_encoding. + (unicosmk_ssib_name, unicosmk_output_externs): Likewise. + +2003-04-16 Aldy Hernandez + + * config.gcc: Add t-spe for eabispe. + + * config/rs6000/t-spe: New. + +2003-04-16 J"orn Rennecke + + Re-apply this patch: + + 2002-05-16 Dale Johannesen + * combine.c (cant_combine_insn_p): Reenable combinations + involving hard regs unless CLASS_LIKELY_SPILLED_P. + +2003-04-16 John David Anglin + + PR/10271 + * pa-protos.h (function_arg): Remove last argument. + * pa.c (function_arg): Likewise. Use CUMULATIVE_ARGS struct instead. + * pa.h (struct hppa_args): Add member incoming. + (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize + member incoming. + (FUNCTION_ARG): Revise call to function_arg. + (FUNCTION_INCOMING_ARG): Delete. + +2003-04-15 Zack Weinberg + + * configure.in: Unify the code which creates symlinks to a + just-built as, ld, objdump, and nm with the code that detects + their presence for purposes of feature tests. + * configure: Regenerate. + +2003-04-15 Zack Weinberg + + * varasm.c (output_constant_def): Do not consult + CONSTANT_AFTER_FUNCTION_P. Remove all code predicated on it. + (after_function_constants, output_after_function_constants): Delete. + * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P. + * config/mips/mips-protos.h, config/mips/mips.c + (mips16_constant_after_function_p): Delete. + * config/mips/mips.h: Delete #if-0-ed definition of + CONSTANT_AFTER_FUNCTION_P. + * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove + mention of CONSTANT_AFTER_FUNCTION_P in comment. + +2003-04-15 Geoffrey Keating + + * tree.c (next_decl_uid): Mark with GTY. + (next_type_uid): Likewise. + +2003-04-15 J"orn Rennecke + + PR target/9594: + * sh.c (barrier_align): Also recognize stuff_delay_slot as + an indicator that a barrier was created by branch splitting. + +2003-04-15 Mark Mitchell + + * c-decl.c (implicitly_declare): Copy declarations that are going + to be placed in a local scope. + +2003-04-15 James A. Morrison + + * invoke.texi (Spec Files): Wrap if-exists-else example. + (MCore): Remove duplicate @itemx entries and @opindex entries. + +2003-04-15 Ulrich Weigand + + * unwind.inc (_Unwind_Backtrace): New function. + * unwind.h (_Unwind_Backtrace): Declare it. + * libgcc-std.ver (_Unwind_Backtrace): Export it. + +2003-04-14 Jason Merrill + + PR middle-end/10336, c++/10401 + * jump.c (never_reached_warning): Also stop looking if we reach the + beginning of the function. + +2003-04-15 Kaveh R. Ghazi + + PR target/10338 + PR bootstrap/10198 + PR bootstrap/10140 + * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy. + +2003-04-15 J"orn Rennecke + + * i386.md (abssf2_if+1): Make condition agree with abssf2_1 . + +2003-04-15 Richard Kenner + + * optabs.c (expand_binop): In multi-word add cases, ensure + XTARGET is copied to TARGET if they are different. + +2003-04-15 Olivier Hainque + + * except.c (resolve_fixup_regions): Avoid dereferencing null pointer + to region, possible after integration of function with unreachable + regions that were optimized away. + +2003-04-15 Jakub Jelinek + + * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2, + instead of TOC_REGISTER in epilogue in + current_function_calls_eh_return functions. + +2003-04-14 Mark Mitchell + + * doc/extend.texi (Empty Structures): Correct description of G++'s + handling of these structures. + + * c-decl.c (grokdeclarator): Reject extern redeclarations of + static variables. + +2003-04-14 Janis Johnson + + * config/rs6000/rs6000.md (define_constants): Define constants for + all UNSPEC usage, including new values for TLS support. + (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal, + load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si, + load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase, + macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr, + stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si, + eh_set_lr_di): Use them. + * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue, + rs6000_emit_epilogue) Use them. + + * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value. + +2003-04-14 Neil Booth + + * Makefile.in (c-opts.o): Use custom action. + +2003-04-14 Douglas B Rupp + + * ifcvt.c (noce_process_if_block): Fail on BLKmode move. + +2003-04-14 Richard Kenner + + * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to + handle "superflat arrays" in Ada. + + * integrate.c (expand_inline_function): Don't inline if would + lose /u on a BLKmode TARGET. + +2003-04-14 Joel Brobecker + + * dbxout.c (print_int_cst_bounds_in_octal_p): New function, + extracted from dbxout_type. + (dbxout_range_type): print large bounds in octal format. + (dbxout_type): Replace extracted code by call to + print_int_cst_bounds_in_octal_p. + + * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead + of DW_LANG_Ada83 for Ada units. + +2003-04-14 Olivier Hainque + + * explow.c (round_push): Use HOST_WIDE_INT instead of int for the + temporary used to round CONST_INT sizes. + + * tree.c (int_fits_type_p): Extract generic checks from the case + of constant type bounds. Refine the checks against constant type + bounds to allow for possible decisions against each of these bounds + without requiring both bounds to be constant. + (tree_int_cst_msb): Put back. + * tree.h (tree_int_cst_msb): Likewise. + + * global.c (global_conflicts): Prevent allocation of call clobbered + hard regs to pseudos live across abnormal edges, as later passes are + not ready to handle them. + + * fold-const.c (fold): Reorder tests for conditional expressions. + + * expr.c (highest_pow2_factor): Return unsigned. + * expr.h (offset_address): Likewise. + * emit-rtl.c (offset_address): POW2 argument now unsigned. + +2003-04-14 Roger Sayle + + * builtins.c (expand_builtin_strlen): Evaluate the lengths of + string literals at compile-time. + +2003-04-14 Roger Sayle + + * fold-const.c (fold): Transform (c1 - x) cmp c2, where cmp is a + comparison operation and c1/c2 are floating point constants into + x swap(cmp) (c1 - c2). + +2003-04-14 Vladimir Makarov + + * genautomata.c (output_translate_vect): Fix a typo in loop + condition. + +2003-04-14 Hans-Peter Nilsson + + PR target/10377 + * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi") + ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem") + ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi") + ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi") + ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi") + ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi") + ("*extopqihi_side", "*extopqisi_side", "*extophisi_side") + ("*extopqihi_swap_side", "*extopqisi_swap_side") + ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes): + When next to constraint R, replace constraint i with n. + +Mon Apr 14 16:18:37 CEST 2003 Jan Hubicka + + PR opt/10024 + * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge. + +2003-04-14 Kriang Lerdsuwanakij + + * doc/contrib.texi (Contributors): Correct my entry. + +2003-04-13 Roger Sayle + + * tree.h (DECL_BUILT_IN_NONANSI): Remove. + * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI. + * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI + implies DECL_BUILT_IN to simplify logic. + * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI. + +2003-04-13 Roger Sayle + + * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type. + (BT_FN_PTR_SIZE_SIZE): Likewise. + * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP): + New built-in functions for malloc, calloc and strdup respectively. + * calls.c (special_function_p): No need to handle malloc-like + functions any longer. ECF_MALLOC is set via built-in attributes. + + * c-decl.c (duplicate_decls): Preserve pure and malloc attributes. + + * doc/extend.texi: Document these new built-in functions. + +2003-04-13 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it. + (expand_builtin_stpcpy): New. + (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY. + * builtins.def: Add mempcpy & stpcpy support. + * doc/extend.texi (mempcpy, stpcpy): Document new builtins. + +2003-04-13 Nick Clifton + + * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with + "GCC". + * config/rs6000/40x.md, config/rs6000/603.md, + config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md, + config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h, + config/rs6000/aix3newas.h, config/rs6000/aix41.h, + config/rs6000/aix43.h, config/rs6000/aix51.h, + config/rs6000/aix52.h, config/rs6000/altivec-defs.h, + config/rs6000/altivec.h, config/rs6000/altivec.md, + config/rs6000/beos.h, config/rs6000/darwin.h, + config/rs6000/eabi.h, config/rs6000/eabialtivec.h, + config/rs6000/eabisim.h, config/rs6000/eabispe.h, + config/rs6000/freebsd.h, config/rs6000/gnu.h, + config/rs6000/host-darwin.c, config/rs6000/linux.h, + config/rs6000/linux64.h, config/rs6000/linuxaltivec.h, + config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md, + config/rs6000/netbsd.h, config/rs6000/power4.md, + config/rs6000/rios1.md, config/rs6000/rios2.md, + config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def, + config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, + config/rs6000/rs6000.h, config/rs6000/rs6000.md, + config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h, + config/rs6000/spe.md, config/rs6000/sysv4.h, + config/rs6000/sysv4le.h, config/rs6000/vxworks.h, + config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise. + +2003-04-13 Nick Clifton + + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete + support for -mcall-aix switch. + * config/rs6000/eabiaix.h: Delete. + * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC. + (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG, + RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC. + * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise. + * config/rs6000/rs6000.c (print_operand, rs6000_stack_info, + debug_stack_info, output_function_profiler, + rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise. + * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv, + call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv, + call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv, + sibcall_nonlocal_sysv, sibcall_value_local64): Likewise. + * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix + multilibs. + (MULTILIB_DIRNAMES): Remove mcall-aix directories. + (MULTILIB_EXCEPTIONS): Delete. + (MULTILIB_MATCHES): Remove mcall-aix matches. + + * doc/fragments.texi: Replace -mcall-aix example with an ARM + one. + * doc/install.texi: Delete powerpc-*-eabiaix target. + * doc/invoke.texi: Remove documentation of mcall-aix switch. + * doc/tm.texi: Remove mcall-aix from example CPP_SPEC. + * config.gcc: Delete powerpc-*-eabiaix target. + +2003-04-13 Kazu Hirata + + * doc/invoke.texi: Fix typos. + * doc/tm.texi: Likewise. + +2003-04-12 Zack Weinberg + + * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS. + +2003-04-12 Zack Weinberg + + * tree.c (build_constructor): New function. + * tree.h: Prototype it. + + * c-typeck.c (build_c_cast, pop_init_level) + * profile.c (build_function_info_value, build_gcov_info_value) + (create_profiler): + Use build_constructor. + + * builtins.c (expand_builtin_args_info): Remove #if 0 blocks. + + * objc/objc-act.c (build_constructor): + Rename objc_build_constructor. Use build_constructor. + (build_objc_string_object, objc_add_static_instance) + (init_def_list, init_objc_symtab, init_module_descriptor) + (generate_static_references, build_selector_translation_table) + (build_descriptor_table_initializer, generate_descriptor_table) + (build_protocol_initializer, build_ivar_list_initializer) + (generate_ivars_list, build_dispatch_table_initializer) + (generate_dispatch_table, generate_protocol_list) + (build_category_initializer, build_shared_structure_initializer): + Update to match. + +2003-04-12 Zack Weinberg + + * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS. + +2003-04-12 Stephane Carrez + + * config/m68hc11/m68hc11-protos.h + (m68hc11_eq_compare_operator): Declare + * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate. + * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate + (d_register_operand): Check the operand mode. + (hard_addr_reg_operand): Likewise. + +2003-04-12 Stephane Carrez + + * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New + pattern for dbcc/ibcc generation for 68HC12. + ("doloop_end"): New pattern. + ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne. + ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne. + ("m68hc12_dbcc_dec_qi"): New pattern. + ("m68hc12_dbcc_inc_qi"): New pattern. + (split): Add split for the above when we can't use dbcc/ibcc due to + reloading. + (peephole2): Add peephole2 to generate the above when possible. + +2003-04-12 Stephane Carrez + + * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the + mode of operand 0. + (peephole2 optimize const load): Likewise for operand 2. + ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which + clobbers CC_REGNUM. + ("*rotrhi3_with_carry"): Likewise. + (ashift:DI 1 split): Update pattern to create the above rotate. + (lshiftrt:DI 1 split): Likewise. + +2003-04-12 Stephane Carrez + + * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant. + ("tstqi_z_used" split): Use it. + ("cmphi_z_used"): Likewise. + ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant. + ("cmpqi_z_used"): Likewise. + +2003-04-12 Mark Mitchell + + PR c++/7910 + * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko. + +2003-04-12 Zack Weinberg + + * configure.in: Check for wchar.h, mbstowcs, and wcswidth. + * configure, config.in: Regenerate. + * intl.c (gcc_gettext_width): New function. + * intl.h: Prototype it. + +2003-04-12 Stephane Carrez + + * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option; + recognize -mnorelax. + (reg_class): Add Z_OR_S_REGS to represent soft registers with Z + (REG_CLASS_NAMES): Add its name. + (REG_CLASS_CONTENTS): Define its content. + +2003-04-12 Stephane Carrez + + * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack + parameters so that offsets are valid for far definition. + (__mulsi3): Likewise and use ret to return. + (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result. + +2003-04-12 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields. + +2003-04-12 Alexandre Oliva + + * mklibgcc.in (libgcc-stage-start): For every multilib directory + containing a libgcc.a, move lib* to the corresponding stage dir. + + * Makefile.in (stage1-start, stage2-start, stage3-start, + stage4-start): Move $(SPECS) to specs in stage dir. + (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir + back as $(SPECS). + + * mklibgcc.in (libgcc-stage-start): Move into the stage directory + object files from the non-libgcc/ multilib directories as well. + +2003-04-11 Geoffrey Keating + + * profile.c (read_counts_file): Initialise 'checksum'. + + * emit-rtl.c (gen_rtx): Really correct typo. + + PR c++/9393 + * doc/invoke.texi (Debugging Options): Document -frandom-seed. + * configure.in: Check for gettimeofday. + * tree.c (flag_random_seed): Define. + (default_flag_random_seed): New. + (append_random_chars): Use flag_random_seed rather than trying + to acquire randomness here. + * tree.h (default_flag_random_seed): Declare. + * toplev.c (display_help): Add -frandom-seed and -fstack-limit-* + descriptions. + (decode_f_option): Handle -frandom-seed. + (print_switch_values): Call default_flag_random_seed. + * flags.h (flag_random_seed): Declare. + * configure: Regenerate. + * config.in: Regenerate. + * config/alpha/t-crtfm: Use -frandom-seed. + + * doc/extend.texi (Empty Structures): New. + + * c-pch.c: Include flags.h. Add comments to routines. + (struct c_pch_validity): New. + (get_ident): Update PCH file version number. + (pch_init): Output current debugging type. + (c_common_valid_pch): Check debugging type. + * Makefile.in (c-pch.o): Update dependencies. + * flags.h (debug_type_names): Declare. + * toplev.c (debug_type_names): Move out of decode_g_option. + +2003-04-11 Eric Christopher + + * emit-rtl.c (gen_rtx): Fix typos. + +2003-04-11 Richard Henderson + + * emit-rtl.c (gen_rtx): Zero '0' fields. + +2003-04-11 Richard Henderson + + PR c++/10202 + * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P + not COMPLETE_TYPE_P for re-invoking layout_decl. + +2003-04-11 Simon Law + + * doc/bugreport.texi: Fix paragraph breaking between sections + in preparation for TeXinfo's paragraph indentation fixes. + * doc/extend.texi: Ditto. + * doc/invoke.texi: Ditto. + * doc/objc.texi: Ditto. + * doc/gcov.texi: Wrap 'gcov' in @command{}. + * doc/invoke.texi (Darwin Options): Add a preamble. + +2003-04-11 Richard Henderson + + * config/i386/i386.c (tls_model_chars): Remove. + (ix86_encode_section_info, ix86_strip_name_encoding): Remove. + (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P. + (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. + (tls_symbolic_operand_1): Likewise. + (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P. + * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove. + (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove. + * config/i386/winnt.c (i386_pe_encode_section_info): Replace + bits "copied from i386.h" with default_encode_section_info. + +2003-04-11 Richard Henderson + + * rtl.def (SYMBOL_REF): Add two 0 fields. + * gengtype.c (adjust_field_rtx_def): Handle them. + * print-rtl.c (print_rtx): Print them. + * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New. + (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New. + (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New. + (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New. + (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New. + (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New. + (SYMBOL_FLAG_MACH_DEP): New. + * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL. + * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL. + (assemble_static_space): Set SYMBOL_REF_FLAGS. + (assemble_trampoline_template): Likewise. + (output_constant_def, force_const_mem): Likewise. + (default_encode_section_info): New. + * output.h: Declare it. + * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it. + +2003-04-11 Richard Henderson + + * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New. + (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New. + * optabs.c (init_optabs): Initialize them. + (init_libfuncs): Use init_one_libfunc. + * calls.c (expand_call): Use gcov_flush_libfunc. + * expr.c (store_constructor): Use setbits_libfunc. + * function.c (expand_main_function): Use init_one_libfunc. + * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL. + +2003-04-11 Mark Mitchell + + * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT + documentation; add DECL_FRIEND_CONTEXT. + +2003-04-11 John David Anglin + + * doc/install.texi (hppa): Update links for HP-UX patches. Revise + notes on linker selection and configuration for 64-bit HP-UX port. + * doc/invoke.texi (hppa): Remove hppa text from description for + -ffunction-sections and -fdata-sections. Document -static, -nolibdld + and -threads options. + + * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of + libc.a on libdld.sl when -static is specified and -nolibdld is not + specified. + * pa64-hpux.h (LIB_SPEC): Likewise. + * pa-hpux11.h (LIB_SPEC): Likewise. + (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared + is not specified. + +2003-04-11 Zack Weinberg + + * config/darwin-c.c (darwin_pragma_unused): Use lookup_name, + not IDENTIFIER_LOCAL_VALUE. + +2003-04-11 Richard Henderson + + PR c/10201 + * expr.c (expand_expr): Move DECL_RTL frobbing ... + * stor-layout.c (layout_decl): ... here. + +2003-04-11 James A. Morrison + + * doc/invoke.texi: Eliminate extra white-space caused by + @gccoptlist{ on its own line. + * doc/invoke.texi: Ensured there are two spaces between each option. + * doc/invoke.texi: Re-wrapped option lines that were too wide. + Added @gol to options that didn't have them. + +2003-04-11 Nathan Sidwell + + * Makefile.in (loop-init.o): Do not depend on gcov-io.h, + gcov-iov.h. + + Simplify interface to gcov reading and writing. + * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer, + gcov_alloc, gcov_modified, gcov_errored): Move into ... + (struct gcov_var gcov_var): ... this static structure. + (gcov_write_unsigned, gcov_write_counter, gcov_write_string): + Return void. + (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return + read object. + (gcov_read_bytes, gcov_write_bytes): Set error flag on error. + (gcov_reserve_length): Remove. + (gcov_write_tag): New. + (gcov_write_length): Adjust. + (gcov_read_summary, gcov_write_summary): Adjust. + (gcov_eof, gcov_ok): Rename to ... + (gcov_is_eof, gcov_is_error): ... here. Return error code. + (gcov_save_position, gcov_resync): Rename to ... + (gcov_position, gcov_seek): ... here. + (gcov_skip, gcov_skip_string): Remove. + (gcov_error): Remove. + (gcov_open, gcov_close): Adjust. + * gcov.c (find_source): Take const char *, copy it on allocation. + (read_graph_file): Adjust. + (read_count_file): Adjust. + * libgcov.c (gcov_exit): Adjust. + * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines, + tag_arc_counts, tag_summary): Return void. Adjust. + (struct tag_format): Adjust proc member. + (dump_file): Adjust gcov calls. + +2003-04-11 Alexandre Oliva + + * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to + mkfixinc.sh. + * fixinc/mkfixinc.sh (defs): Add LIBERTY. + * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on + build != host sysrooted builds. + * configure.in (SYSTEM_HEADER_DIR): Make sure it contains + TARGET_SYSTEM_ROOT even on sysrooted natives. + * configure: Rebuilt. + +2003-04-10 Zack Weinberg + + * c-decl.c (struct binding_level): Add shadowed_tags and + function_body; remove this_block, tag_transparent, and + subblocks_tag_transparent; update comments. + (clear_binding_level, lookup_tag_reverse): Kill. + (make_binding_level): Use ggc_alloc_cleared or memset. + (lookup_tag): Remove struct binding_level* parameter. All + callers changed. Just look at IDENTIFIER_TAG_VALUE, and + current_binding_level->tags if asked for thislevel_only or if + we might have to diagnose "struct foo; union foo;" + (pushlevel): Ignore argument. Do not push another binding + level on the transition from the parameters to the top level + of the function body; just tweak the flags and proceed. + (poplevel): Overhaul. Clear IDENTIFIER_TAG_VALUEs; on exiting + a function body, separate the parameter list from the + top-level local variables. + (set_block): Do nothing. + (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to + shadowed_tags if necessary. + (warn_if_shadowing): Nuke the special case for local shadowing + parameter. + (pushdecl): Do not create a shadow entry if we are replacing + an older decl in the same binding level. + (pushdecl_function_level): Tweak for new way of indicating + function scope. + (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse. + (start_function): Don't set subblocks_tag_transparent. + (finish_function): Fix up the binding_level stack for totally + empty functions. Otherwise, don't call poplevel. + + * c-common.c (shadow_warning): MANDATORY argument is no longer + necessary. Always use plain warning. + * c-common.h: Update to match. + + * cfglayout.c (scope_to_insns_initialize): Clear block when we + hit the FUNCTION_DECL. + * function.c: Do not create cyclic tree structure. + +2003-04-10 Zack Weinberg + + * c-tree.h (struct lang_identifier): Replace global_value, + local_value members with symbol_value, tag_value. Kill + implicit_decl and limbo_value. + (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE, + IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL, + C_MISSING_PROTOTYPE_WARNED): Kill. + (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE, + C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New. + (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE. + (implicit_decl_warning, lookup_name_current_level, + record_function_scope_shadow): Don't prototype. + (pushdecl_function_level): Prototype. + + * c-decl.c (truly_local_externals): New variable. + (struct binding_level): Adjust commentary. + (get_function_binding_level, clear_limbo_values, + record_function_scope_shadow): Kill. + (lookup_name_current_level, implicit_decl_warning): Are now static. + (any_external_decl, record_external_decl): New static functions. + (clone_underlying type): Split out of pushdecl. + (c_print_identifier): Update to match changes to struct + lang_identifier. + (poplevel): Delete #if 0 block. Make externals invisible + instead of clearing their IDENTIFIER_SYMBOL_VALUEs. Don't + call clear_limbo_values. Refer to IDENTIFIER_SYMBOL_VALUE not + IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE. + (duplicate-decls): For real parm decl after a forward decl, + set TREE_ASM_WRITTEN here. Allow void foo(...) followed by + foo(...) { } with only a warning. Say whether a previous + declaration was implicit. + (warn_if_shadowing): Now handles all shadowing, not just + local-over-local. Clarify comments. + (pushdecl): Rewritten. There is no longer a distinction + between global and local symbol values; they're all + IDENTIFIER_SYMBOL_VALUE. Call record_external_decl on all + DECL_EXTERNAL decls, and use any_external_decl to check + against previous externals. Kill #if 0 blocks. Don't + tolerate error_mark_node being NULL. + (pushdecl_top_level): Handle only those cases which + Objective C (the only user) needs. + (pushdecl_function_level): New function. + (implicitly_declare): Create ordinary decls with + C_DECL_IMPLICIT set. Recycle old decls, however they got + created. + (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0 + for C_DECL_INVISIBLE symbols. + (lookup_name_current_level): Likewise. Use chain_member. + (c_make_fname_decl): Don't muck with DECL_CONTEXT. + Use pushdecl_function_level. + (builtin_function): Use C_DECL_INVISIBLE. + (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL. + Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT. + (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now. + (identifier_global_value): Same. Must scan + global_binding_level in extremis. + + * c-typeck.c (undeclared_variable): New static function, split + from build_external_ref. + (build_external_ref): Use DECL_CONTEXT, not + IDENTIFIER_LOCAL_VALUE, to decide whether a local hides + an instance variable. Restructure for clarity. + * objc/objc-act.c: Use identifier_global_value, not + IDENTIFIER_GLOBAL_VALUE. + +2003-04-08 Jonathan Wakely + + * doc/extend.texi (Template Instantiation): Refer to ISO standard, + not Working Paper. + * doc/invoke.texi (C++ Dialect Options): Same. + +2003-04-10 Zack Weinberg + + * tree.c (tree_operand_check_failed): New function. + * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE, + TREE_RTL_OPERAND_CHECK): New checking macros. + (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL, + RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL, + CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, + EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE, + EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT, + TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new + checking macros. + +Thu Apr 10 23:52:30 CEST 2003 Jan Hubicka + + PR inline-asm/8803 + * function.c (instantate_virtual_regs): Verify that all ASM statements + match after the virutal regs instantiation. + +2003-04-10 Steve Ellcey + + * ia64-protos.h (addp4_optimize_ok): New. + * ia64.c (addp4_optimize_ok): New. + * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok. + (*ptr_extend_plus_2): Ditto. + +2003-04-10 Steve Ellcey + + * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode + not with convert_memory_address. + (store_constructor): Ditto, and same for copy_size_rtx. + (expand_expr): Ditto. + +2003-04-10 Douglas B Rupp + + * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting. + +2003-04-10 Bob Wilson + + * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache + even if it is configured to be write-through. + +2003-04-10 Ulrich Weigand + + * config/s390/s390.c (larl_operand): Do not allow symbols + marked with '@'. + (s390_encode_section_info): Mark symbols with forced 1-byte + alignment with '@'. + (s390_strip_name_encoding): Strip '@'. + (legitimize_pic_address): Handle symbols that are not valid + LARL operands in 64-bit mode. + +2003-04-10 Andrew Haley + + * tree-inline.c (inlinable_function_p): Disable inlining for + synchronized methods. + +2003-04-09 Steven Bosscher + + * c-common.h (lang_statement_code_p): Remove declaration. + (statement_code_p): Ditto. + (c_common_stmt_codes): Define; list of c-common statement codes. + (statement_code_p): New extern declaration. + (STATEMENT_CODE_P): Define. + (INIT_STATEMENT_CODES): Define. + * c-common.c (statement_code_p): Kill the function, declare + as an array of bools instead. + (lang_statement_code_p): Remove. + (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p. + (c_safe_from_p): Ditto. + * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES + to initialize the statement_code_p array. + * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of + statement_code_p. + (copy_tree_r): Ditto. + * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific + statement tree codes. + * cp/lex.c (cxx_init): Add missing print line break. Use + INIT_STATEMENT_CODES to initialize the statement_code_p array. + * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P + instead of statement_code_p. + * cp/pt.c (tsubst_expr): Ditto. + * cp/tree.c (verify_stmt_tree_r): Ditto. + (cp_statement_code_p): Remove. + (init_tree): Don't set lang_statement_code_p, it's gone. + +2003-04-09 Dan Nicolaescu + Zack Weinberg + + * regrename.c (struct du_chain): Use a bitfield for reg_class. + * cse.c (struct qty_table_elem, struct table_elt, struct set): + Use bitfields for fields holding enum rtx_code or + enum machine_mode values. Add comments explaining size choices. + +2003-04-09 Alexandre Oliva + + * config/fp-bit.c (unpack_d): Handle pair of doubles with + different signs correctly. + +2003-04-09 Vladimir Makarov + + * sched-deps.c (reg_pending_barrier_mode): New enumeration. + (reg_pending_barrier): Make it of the enumeration type. + (sched_analyze_2): Define the barrier as MOVE_BARRIER or + TRUE_BARRIER. + (sched_analyze): Ditto. + (sched_analyze_insn): Ditto. Use anti-dependencies for + MOVE_BARRIER and true-dependencies as TRUE_BARRIER. + (init_deps_global): Initialize the barrier as NO_BARRIER. + +2003-04-09 Vladimir Makarov + + * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter. + Check that asm insn starts on a new cycle. Add nops after asm + insn to end bundle. + (bundling): Move insn type evaluation from the loop. Call + issue_nops_and_insn with the new parameter. Ignore changing + position for nops after asm insn. + +2003-04-09 Alexandre Oliva + + * optabs.c: Comment that gen_add2_insn and others may actually + return emitted insns, if the gen functions turn out to return + emitted insns. + * reload1.c (reload_cse_move2add): Cope with emitted insns from + gen_add2_insn. + +2003-04-09 Richard Henderson + + * config/ia64/ia64.c (move_operand): Allow symbolic_operand, + but not tls_symbolic_operand. + (ia64_expand_load_address): Remove scratch operand. + (ia64_expand_tls_address): Split out from ia64_expand_move. + (ia64_expand_move): Split symbolics only after reload. + (ia64_emit_cond_move): New. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove. + (symbolic splitter): Accept SImode operands too. + (cmove splitter): Use ia64_emit_cond_move. + +2003-04-09 Nick Clifton + + * doc/install.texi: Note that ARM toolchains need binutils 2.13 or + newer. + * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa + instead of -mno-fpu. + * config/arm/semi.h (ASM_SPEC): Likewise. + * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise, + but only if -msoft-float is specified pass. Otherwise pass + -mfpu=softvfp. + +2003-04-09 Zdenek Dvorak + + * function.c (purge_addressof): Use free_INSN_LIST_node instead of + free_EXPR_LIST_node. + +2003-04-08 Roger Sayle + + * fold-const.c (fold): Use "fold" following build in more places. + Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y), + pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z). + +2003-04-08 Roger Sayle + + * builtins.c (fold_builtin): Constant fold expressions as x*0.5 + instead of x/2.0. Optimize sqrt(pow(x,y)) as pow(x,y*0.5), + log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y), + pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z). + Delete function scope "fcode" variable to avoid shadowing. + +2003-04-08 Kevin Buettner + + * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE): + Take into account DWARF_INITIAL_LENGTH_SIZE. + +2003-04-08 Hans-Peter Nilsson + + * reorg.c (fill_slots_from_thread): When considering changing the + insn following a reg-to-reg copy insn to use the source reg of the + copy, bail out if there's overlap between the registers. + +2003-04-08 Zdenek Dvorak + + * function.c (postponed_insns): New. + (purge_addressof_1): Postpone processing of insns if addressofs + are not put into stack. + (purge_addressof): Process postponed insns. + +2003-04-08 J"orn Rennecke + + * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD, + this is FP_MODE_DOUBLE . + * sh.c (ra.h): #include. + (push_regs): Add second parameter. Changed all callers. + If necessary, set fpscr before saving floating point registers. + (calc_live_regs): If interrupt handler and TARGET_FMOVD, always + do saves / restores with SZ == 1. + (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz. + (sh_expand_epilogue): Likewise. For TARGET_FMOVD, if floating point + registers are being restored, restore FPSCR only after restoring them. + +2003-04-08 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types + regardless of architecture. + (spe_init_builtins): Change V2SI and V2SF types to opaque types. + +2003-04-08 J"orn Rennecke + + * sh.c (push_regs, calc_live_regs): Return int. Take single + HARD_REG_SET * parameter. Changed all callers. + +Tue Apr 8 11:12:07 CEST 2003 Jan Hubicka + + * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the + GOTOFF operand. + (legitimize_pic_address): Move plus outside the unspec. + * i386.c (legitimate_constant_p): Check (CONST (PLUS (UNSPEC ... + for validity. + +2003-04-08 Nathan Sidwell + + * gcov-io.h (gcov_save_position): Remove __inline__ from + declaration. + +2003-04-07 Matt Kraai + + * doc/install.texi: Use @command and @samp for single- and + multi-word commands respectively. + * doc/makefile.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + +2003-04-07 Christian Ehrhardt + Richard Henderson + + PR c/9516 + * expr.c (safe_from_p): Rearrange to avoid deep recursion in + favor of looping and tail recursion for TREE_LIST and binops. + +2003-04-08 Zdenek Dvorak + + * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults + for insns without luid. + +2003-04-07 Glen Nakamura + + PR opt/8634 + * explow.c (maybe_set_unchanging): Don't flag non-static const + aggregate type initializers with RTX_UNCHANGING_P. + +2003-04-07 Richard Henderson + + PR opt/8634 + * function.c (purge_addressof_1): Don't try arithmetics for + unchanging memories. + +2003-04-07 Janis Johnson + + * doc/sourcebuild.texi (Test Suites): Document testing support for + gcov and profile-directed optimizations; describe gcc.misc-tests. + +Mon Apr 7 22:19:59 CEST 2003 Jan Hubicka + + PR target/10077 + * i386.md (movsi_1, movsi_nointerunit_1): Fix SSEMOV alternative. + +2003-04-07 Eric Botcazou + + * doc/rtl.texi (Comparison operations): Update to + record the allowed comparison modes. + +2003-04-07 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all + V2SI_type_node to opaque_V2SI_type_node. Rename all + V2SF_type_node to opaque_V2SF_type_node. + (rs6000_init_builtins): Define opaque_V2SI_type_node and + opaque_V2SF_type_node. + (is_ev64_opaque_type): The types opaque_V2SI_type_node and + opaque_V2SF_type_node are opaque types. + +2003-04-07 J"orn Rennecke + + * gcse.c (replace_store_insn): Use single_set. + +2003-04-07 Nathan Sidwell + + Change gcov file interface to single file at a time. + * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV. + Convert to C89 prototypes. + (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc, + gcov_error, gcov_modified): New static variables. + (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New + functions. + (gcov_write_unsigned, gcov_write_counter, gcov_write_string, + gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust. + (gcov_read_summary, gcov_write_summary): Adjust. + (gcov_save_position, gcov_reserve_length, gcov_write_length): + Adjust. + (gcov_resync, gcov_skip, gcov_skip_string): Adjust. + (da_file_open, da_file_close, da_file_eof, da_file_error): Remove. + (da_file_position, da_file_seek, da_file_write, da_file_read): + Remove. + (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions. + * gcov.c (gcov_type): Don't typedef here. + (IN_GCOV): #define + (read_graph_file, read_count_file): Adjust. + * gcov-dump.c (gcov_type): Don't typedef here. + (IN_GCOV): #define. + (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts): + Remove FILE parameter, adjust. + (struct tag_format): Adjust proc member. + (dump_file): Adjust. + * libgcov.c (IN_LIBGCOV): #define. + (gcov_exit): Adjust. + * loop-init.c: Don't #include gcov-io.h + * profile.c (struct counts_entry): New structure to hold counter + values. + (struct section_reference, struct da_index_entry): Remove. + (bbg_file, da_file): Remove. + (htab_counts_index_hash, htab_counts_index_eq, + htab_counts_index_del): Replace with ... + (htab_counts_entry_hash, htab_counts_entry_eq, + htab_counts_entry_del): ... these. + (cleanup_counts_index, index_counts_file): Remove. + (read_counts_file): New function. + (get_exec_counts): Adjust. + (compute_branch_probabilities): Don't free the exec counts here. + (branch_prob): Adjust. + (init_branch_prob): Adjust. + (end_branch_prob): Adjust. + +2003-04-07 Aldy Hernandez + + * doc/invoke.texi (RS/6000 and PowerPC Options): Document + -mfloat-gprs. + + * config/rs6000/rs6000.c: Delete rs6000_fprs. + Declare rs6000_float_gprs. + Declare rs6000_float_gprs_string. + (rs6000_parse_float_gprs_option): New. + (rs6000_override_options): Genericize rs6000_parse_* calls to use + rs6000_parse_yes_no_option. + Change check for cpu=8540, to use TARGET_E500. + (rs6000_parse_isel_option): Delete. + (rs6000_parse_spe_option): Delete. + (rs6000_parse_vrsave_option): Delete. + + * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs. + Define rs6000_float_gprs_string. + (TARGET_OPTIONS): Add rs6000_float_gprs option. + + * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs. + + * config/rs6000/eabispe.h: Set rs6000_float_gprs. + +Mon Apr 7 14:36:24 CEST 2003 Jan Hubicka + + PR opt/10024 + * cfglayout.c (cfg_layout_redirect_edge): + Redirect any branch edges unified with the fallthru one. + * cfgrtl.c (force_nonfallthru_and_redirect): Do not special + case fallthru edges when called via cfglayout.c + +2003-04-07 J"orn Rennecke + + * c-typeck.c (output_init_element): Check for type == error_mark_node. + +2003-04-07 Kazu Hirata + + * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always + split. + (a splitter): Do zero-extension via HImode. + +2003-04-07 James A. Morrison + + * doc/invoke.texi: Eliminate extra white-space caused by + @gccoptlist{ on its own line. + * doc/invoke.texi: Ensured there are two spaces between each option. + * doc/invoke.texi: Re-wrapped option lines that were too wide. + Added @gol to options that didn't have them. + +2003-04-07 James A Morrison + + * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS. + +2003-04-06 Zack Weinberg + + * tree.c (tree_size): For all 'c' and 'x' nodes, look directly + at the sizes of the relevant structures, rather than relying + on TREE_CODE_LENGTH. Call lang_hooks.tree_size to get the + sizes of any such we don't know about. Use + lang_hooks.identifier_size for IDENTIFIER_NODE. + + (initializer_zerop): Use CONSTRUCTOR_ELTS. + * tree.def: Update commentary. Make fourth element of + the definition for all 'c' and 'x' nodes zero. + + * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE. + * langhooks-def.h: Update to match. + * langhooks.c: New default, lhd_tree_size. + + * c-common.def (SRCLOC): Kill. + * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]): + Remove entirely - was already #if-ed out. + + +2003-04-06 Zack Weinberg + + * mklibgcc.in: Use a here document to avoid running afoul of + shells that generate control-A from "echo \1". + +2003-04-06 Aldy Hernandez + + * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe + option. + + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set + rs6000_spe. + + * config/rs6000/eabi.h (TARGET_E500): Define. + + * config/rs6000/rs6000.h (TARGET_E500): Define. + (TARGET_OPTIONS): Add spe= option. + Declare rs6000_spe and rs6000_spe_string extern. + + * config/rs6000/rs6000.c (branch_positive_comparison_operator): + Change TARGET_SPE to TARGET_E500. + (ccr_bit): Change TARGET_SPE to TARGET_E500. Check for + !TARGET_FPRS. + (print_operand): Same. + (rs6000_generate_compare): Same. + (output_cbranch): Same. + (rs6000_spe): Declare. + (rs6000_spe_string): Declare. + (rs6000_override_options): Call rs6000_parse_spe_option. + (rs6000_parse_spe_option): New. + +2003-04-06 Steven Bosscher + + * hashtable.c (gcc_obstack_init): Delete this function + and everything related to it. + * hashtable.h: Remove prototype. + * bitmap.c (bitmap_element_allocate): Cleanup redundant + defines. Cleanup some unnecessary whitespace. + * defaults.h (obstack_chunk_alloc): Redefine with + appropriate casts for libiberty obstacks. + (obstack_chunk_free): Ditto. + (OBSTACK_CHUNK_SIZE): Define, default to 0. + (gcc_obstack_init): Define as a call to _obstack_begin. + * tree.c (print_obstack_statistics): Delete this unused + function. + * tree.h (obstack): Don't forward-declare. + (print_obstack_statistics): Delete prototype. + (print_obstack_name): Ditto. + (gcc_obstack_init): Ditto. + * rtl.h (gcc_obstack_init): Ditto. + * java/jv-scan.c (gcc_obstack_init): Delete this + function, its prototype and related defines. + * java/jvgenmain.c (gcc_obstack_init): Delete this + function, and related defines. + * java/parse-scan.y (obstack_chunk_alloc): Don't define. + (obstack_chunk_free): Ditto + +2003-04-06 Geoffrey Keating + + * dbxout.c (dbxout_handle_pch): Move prototype out from + #if defined DBX_DEBUGGING_INFO. + +2003-04-05 Nathan Sidwell + + * gcov.c (struct arc_info): Replace local_span with cycle. + (struct block_info): Replace u.span with u.cycle. Add is_call_return. + (solve_flow_graph): Set is_call_return. + (add_line_counts): Adjust. In block mode, blocks attach to last line. + (accumulate_line_counts): Find graph cycles, not spanning tree. + (output_branch_count): Adjust. + (output_lines): Adjust. + * doc/gcov.texi: Update. + +2003-04-06 Kazu Hirata + + * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change + the second alternative to "#". + +2003-04-05 Kazu Hirata + + * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK. + (single_zero_operand): Likewise. + +2003-04-05 Daniel Berlin + + * Makefile.in (df.o): Depend on alloc-pool.h, not obstack.h. + * df.c: Include alloc-pool.h, not obstack.h. + (df_ref_obstack): Remove. + (df_ref_pool, df_link_pool): Add pools. + (df_alloc): Init the new pools. + (df_free): And free them. + (df_link_create): Use the pools. + (df_ref_create): Ditto. + +2003-04-05 Kazu Hirata + + * simplify-rtx.c: Fix formatting. + +2003-04-05 Andrew Pinski + + * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2 + reg with reg1 == reg2 and offset1 = -8. + +2003-04-05 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4 + multiply costs. Correct Power4 divide costs. + * config/rs6000/power4.md: Restore multiply and FP latency. + +2003-04-05 Zdenek Dvorak + + * alias.c (find_base_term): Export. + * rtl.h (find_base_term): Declare. + * gcse.c (find_moveable_store): Test for flag_non_call_exceptions + instead of flag_exceptions. Move test for parameter passing ... + (store_killed_in_insn): ... here. + +2003-04-05 Gerald Pfeifer + + PR bootstrap/10267 + * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended + for configuring. + +2003-04-04 Geoffrey Keating + + * dbxout.c (scope_labelno): Add GTY. + (have_used_extensions): Add GTY. + (source_label_number): Add GTY. + (lastfile): Add GTY. + (lastfile_is_base): New. + (base_input_file): New. + (dbxout_handle_pch): New. + (dbx_debug_hooks): Add handle_pch. + (xcoff_debug_hooks): Likewise. + (dbxout_function_end): Remove scope_labelno. + (dbxout_init): Set base_input_file. + (dbxout_handle_pch): New. + (dbxout_source_file): Honour lastfile_is_base. + * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch. + * sdbout.c (sdb_debug_hooks): Add dummy handle_pch. + * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch. + * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch. + * debug.c (do_nothing_debug_hooks): Add dummy handle_pch. + * debug.h (struct gcc_debug_hooks): Add handle_pch. + * c-pch.c (pch_init): Don't call start_source_file, but do call + handle_pch. + (c_common_write_pch): Call handle_pch. + (c_common_read_pch): Don't call start_source_file, + or end_source_file. + +Fri Apr 4 17:43:52 2003 Olivier Hainque + + * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining + use of default attributes to agree MEM_ALIGN macro. + +Fri Apr 4 17:33:24 2003 Joel Brobecker + + * dbxout.c (dbxout_type): When printing type index of range type + whose bounds are printed in octal format, print type of parent type if + it exists so enumerated type descriptions are not transformed + into unsigned types. + +2003-04-04 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + compute_a_shift_cc. + * config/h8300/h8300.c (shift_one): Update the CC status. + (shift_two): Likewise. + (output_a_shift_cc): Set cc_inline and cc_special. + (compute_a_shift_cc): New. + * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc. + +2003-04-04 Richard Henderson + + * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null. + +2003-04-04 Loren James Rittle + + * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New. + * fixinc/fixincl.x: Rebuilt. + * fixinc/tests/base/stdio.h: Regenerated. + +2003-04-04 Nathan Sidwell + + * gcov.c (accumulate_line_counts): Fix span tree merge bug. + +Fri Apr 4 15:58:52 2003 J"orn Rennecke + + * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of + (NORMAL_MODE). + * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE. + +2003-04-04 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Add entries for Wolfgang + Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor, + Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt, + Danny Smith, and Ulrich Weigand. + Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's + entry. + +2003-04-04 Nick Clifton + + * config/sparc/sol2-bi.h: Revert previous delta. + * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO + +2003-04-04 Nick Clifton + + * config/v850/v850.c (expand_prologue): Only use register save + helper functions if long calls are not being used. + Add a clobber of r11 id using long calls. + (pattern_is_ok_for_prologue): Account for the extra clobber. + (construct_save_jarl): Likewise. + * config/v850/v850.md (prolog pattern): Do not use this pattern + for v850e's. + +2003-04-04 Andreas Schwab + + * stor-layout.c (layout_decl): Avoid syntax error in last change + when PCC_BITFIELD_TYPE_MATTERS is defined but not + EMPTY_FIELD_BOUNDARY. + +2003-04-03 Jason Merrill + + PR c/10175 + * jump.c (never_reached_warning): Revert patch of 2002-11-02. + Look backwards for a line note. + +2003-04-03 Neil Booth + + * fix-header.c (read_scan_file): Defer switch processing. + +2003-04-03 Matt Austern + + * cpppch.c (reset_ht): Remove. + (cpp_read_state): Remove loop to reset hashtable identifiers. + * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool + after pch file is written. + * ggc.h (gt_pch_fixup_stringpool): Declare. + * stringpool.c (ht_copy_and_clear): Define. Callback. Copy + hashnode's value to another hashtable, then clear the original. + (saved_ident_hash): Define. + (gt_pch_save_stringpool): Create saved_ident_hash, use it to + store definitions in ident_hash, and clear ident_hash. + (gt_pch_fixup_stringpool): Define. Restore definitions from + saved_ident_hash to ident_hash, then destroy saved_ident_hash. + +Thu Apr 3 22:27:40 CEST 2003 Jan Hubicka + + * cfgrtl.c (update_bb_for_insn): Do not set block for barriers. + +2003-04-03 Eric Botcazou + + PR optimization/10157 + * gcse.c (can_copy_p): Rename it to can_copy. + (can_copy_init_p): Remove. + (compute_can_copy): Use can_copy instead of can_copy_p. + (can_copy_p): New exported function. Call compute_can_copy. + (hash_scan_set): Use it. + (gcse_main): Don't call compute_can_copy. + (bypass_jumps): Don't call compute_can_copy. + * rtl.h (can_copy_p): Declare. + * loop.c (scan_loop): Don't move the source and add a reg-to-reg + copy if the mode doesn't support copy operations. + +2003-04-03 Jason Merrill + + * Makefile.in (unstrap): Also remove stage_last. + + * dwarf2out.c (lookup_filename): Don't check for "". + (dwarf2out_source_line): Don't do anything if line==0. + + * stor-layout.c (do_type_align): New fn, split out from... + (layout_decl): ...here. Do all alignment calculations for + FIELD_DECLs here. + (update_alignment_for_field): Not here. + (start_record_layout, debug_rli): Remove unpadded_align. + * tree.h (struct record_layout_info_s): Remove unpadded_align. + * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN + or DECL_MODE on the CONST_DECLs. + (finish_struct): Don't mess with DECL_ALIGN. + +Thu Apr 3 18:57:19 CEST 2003 Jan Hubicka + + * i386.c (print_operand): Do not bypass output_addr_const at flag_pic. + +Thu Apr 3 17:08:09 2003 J"orn Rennecke + + * sh.c (sh_function_ok_for_sibcall): Return 0 if the current + function is an interrupt handler. + + * sh.c (sh_expand_epilogue): Avoid clash of temp register for + restoring target registers with EH_RETURN_STACKADJ_RTX; use + multiple registers in round-robin fashion. + +2003-04-03 Kaveh R. Ghazi + + * gengtype-lex.l (IWORD): Add CHAR_BITFIELD. + * system.h (CHAR_BITFIELD): New. + +2003-04-03 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Generalize to accept GT + and LE. + (another peephole2): Likewise. + +2003-04-03 Nick Clifton + + * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO. + (DEF_ARCH64_SPEC): Likewise. + +Thu Apr 3 09:53:40 CEST 2003 Jan Hubicka + + * i386.c (constant_address_p): Use legitimate_constant_p. + (legitimate_address_p): Do not use CONSTANT_ADDRESS_P. + +2003-04-02 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + gtle_operator. + * config/h8300/h8300.c (gtle_operator): New. + * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for + gtle_operator. + * config/h8300/h8300.md (a peephole2): Generalize to accept GT + and LE. + +2003-04-02 Richard Henderson + + * libgcc-std.ver (_Unwind_GetCFA): New. + * unwind-dw2.c (_Unwind_GetCFA): New. + * unwind-libunwind.c (_Unwind_GetCFA): New. + * unwind-sjlj.c (_Unwind_GetCFA): New. + * unwind.h: Declare it. + +Thu Apr 3 00:31:21 CEST 2003 Jan Hubicka + + PR inline-asm/8088 + * i386.c (ix86_hard_regno_mode_ok): Return 0 for MMX/SSE registers + when MMX/SSE is not available. + +2003-04-02 Mike Stump + + * doc/install.texi (Specific): Update pointers to apple.com. + +Thu Apr 3 00:18:49 CEST 2003 Jan Hubicka + + * i386.c (override_options): Disable red zone by default on i386. + (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory): + Do not test TARGET_64BIT together with TARGET_RED_ZONE + +2003-04-02 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Tighten the condition. + +2003-04-02 Richard Henderson + + * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh. + +2003-04-02 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-04-02 Richard Henderson + + * except.c (sjlj_find_directly_reachable_regions): Recognize when + must-not-throw region has been deleted. + +2003-04-02 Richard Henderson + + * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an + optimization when flag_exceptions not enabled. + +2003-04-02 Vladimir Makarov + + * config/rs6000/rs6000.c + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the + macros. + (rs6000_issue_rate): Add case for 8540. + (rs6000_use_sched_lookahead): New function. + + * config/rs6000/8540.md: Rename SIU units into SU ones and MIU + units into MU ones. + (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the + reservation before retirement. + (ppc8540_multiply, ppc8540_load, ppc8540_store, + ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store): + Remove additional cycle in the reservation before retirement. + (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed + reservation of ppc8540_issue. + +2003-04-02 Andreas Schwab + + * real.c (decode_ieee_single): Fix decoding of SNaN bit. + +2003-04-01 Richard Henderson + + * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION + notes for nothrow calls if flag_forced_unwind_exceptions. + (build_post_landing_pads): Mind flag_forced_unwind_exceptions. + (sjlj_find_directly_reachable_regions): Likewise. + (reachable_handlers): Likewise. + (can_throw_external): Likewise. + (collect_one_action_chain): Record cleanups after catch-all and + must-not-throw if flag_forced_unwind_exceptions. + * flags.h (flag_forced_unwind_exceptions): Declare. + * toplev.c (flag_forced_unwind_exceptions): New. + (lang_independent_options): Add it. + * doc/invoke.text: Add it. + +2003-04-01 David Mosberger + + * config/ia64/crti.asm: Clean up trailing whitespace. + Remove trailing hashes (#) from identifiers. + + * config/ia64/crtn.asm: Ditto. + + * config/ia64/crtend.asm: Remove trailing hashes (#) from + identifiers. + (__do_global_ctors_aux): Align to 32-byte boundary. Add unwind + directives. Drop explicit bundling---it just makes the code + harder to read. Don't save/restore gp needlessly. + + * config/ia64/crtbegin.asm: Remove trailing hashes (#) from + identifiers (they're only needed if the identifier would clash + with a register name otherwise). + (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind + directives. Drop explicit bundling---it just makes the code + harder to read. + (__do_jv_register_classes): Ditto. + (.fini_array): Remove "progbits" (newer + assemblers don't like wrong section-types). + (.init_array): Ditto. + +2003-04-01 Roger Sayle + + PR fortran/9974 + * gcse.c (reg_killed_on_edge): New function to test whether the + given reg is overwritten by any instruction queued on an edge. + (bypass_block): Ignore substitutions killed on incoming edges. + Don't bypass outgoing edges that have queued instructions. + +2003-04-01 Alexandre Oliva + + * real.h (EXP_BITS): Make room for... + (struct real_value): ... added canonical bit. + (struct real_format): Added pnan. + (mips_single_format, mips_double_format, mips_extended_format, + mips_quad_format): New. + * real.c: Copy p to pnan in all formats. + (get_canonical_qnan, get_canonical_snan): Set canonical bit. + (real_nan): Use pnan to compute significand's shift. + (real_identical): Disregard significand in canonical + NaNs. + (real_hash): Likewise. Take signalling into account. + (encode_ieee_single, encode_ieee_double, encode_ieee_quad): + Disregard significand bits in canonical NaNs. Set all bits of + canonical NaN if !qnan_msb_set. + (encode_ibm_extended, decode_ibm_extended): Likewise. Use + qnan_msb_set to tell the base double format. + (ibm_extended_format): Use 53 as pnan. + (mips_single_format, mips_double_format, mips_extended_format, + mips_quad_format): Copied from the corresponding ieee/ibm + formats, with qnan_msb_set false. + * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format. + * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format. + * config/mips/mips.c (override_options): Use mips_single_format + and mips_double_format. Default TFmode to mips_quad_format. + * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED. + * config/mips/t-irix6: Likewise. + * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise. + * config/fp-bit.c (pack_d, unpack_d): Obey it. + +2003-04-01 Geoffrey Keating + + * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New. + (live_image_destructor): Reset image to initial state. + (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE. + +2003-04-01 Eric Botcazou + + * config/sparc/sparc.c (input_operand): Accept bare + CONSTANT_P_RTX operands. + +2003-04-01 Zdenek Dvorak + + * gcse.c (struct ls_expr): Added pattern_regs field. + (ldst_entry): Initialize it. + (extract_mentioned_regs, extract_mentioned_regs_helper): New. + (store_ops_ok): Use regs precomputed by them. + (find_loads, store_killed_in_insn, load_kills_store): Change return + type to bool. + (store_killed_before, store_killed_after): Take position of register + set in account. + (reg_set_info): Store position of the setter. + (gcse_main): Enable store motion. + (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems. + (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl + sharing. + (simple_mem): Enable store motion of non-symbol mems. + (regvec): Type changed. + (LAST_AVAIL_CHECK_FAILURE): New. + (compute_store_table_current_insn): New. + (build_store_vectors): Computation of availability and anticipatability + moved ... + (compute_store_table, find_moveable_store): ... here. + (delete_store): Remove senseless comment. + (store_motion): Reorganize. + +2003-04-01 Kevin Buettner + + * config/mips/mips.c (override_options): Provide mappings for + HI_REGNUM and LO_REGNUM. + * config/mips/mips.h (MD_DBX_FIRST): Define. + +2003-04-01 Franz Sirl + + * combine.c (merge_outer_ops): Fix typo. + + * varasm.c (make_decl_one_only): Revert 2003-03-09 patch. + +2003-04-01 David Edelsohn + + * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, + power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to + imul_compare. Add lmul_compare. + * config/rs6000/power4.md: Bump some latencies. Model extra cycle + in second pair of dispatch slots. Model stores more accurately. + Tweak multiply model. Add bypasses for CR instructions dependent + on complicated compares. + * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns. + (muldi3): Add lmul_compare patterns. + * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX + and FPSTORE_UX to split instructions and add COMPARE, + DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV. + (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE. + (rs6000_rtx_costs): Separate POWER4 multiply case. + +2003-04-01 Ulrich Weigand + + * config/s390/s390.c (s390_fixup_clobbered_return_reg): + Do nothing if __builtin_return_address was not used. + +Tue Apr 1 18:18:23 CEST 2003 Jan Hubicka + + * i386.md (test patterns): Allow memory operand in operand1. + +2003-04-01 Aldy Hernandez + + * testsuite/gcc.c-torture/execute/simd-3.c: New. + + * expr.c (expand_expr): Handle VECTOR_CST. + (const_vector_from_tree): New. + + * varasm.c (output_constant): Handle VECTOR_CST. + + * c-typeck.c (digest_init): Build a vector constant from a + VECTOR_TYPE. + + * config/rs6000/rs6000.c: Remove prototype for + easy_vector_constant. + (easy_vector_constant): Add mode parameter. Rewrite to handle + more easy constants. + (rs6000_emit_move): Pass mode to easy_vector_constant. + Call emit_easy_vector_insn for SPE V2SI vector constant moves. + (emit_easy_vector_insn): New. + (easy_vector_same): New. + (EASY_VECTOR_15): New macro. + (EASY_VECTOR_15_ADD_SELF): New macro. + (bdesc_2arg): Rename to xorv2si3. + (easy_vector_constant_add_self): New. + (input_operand): Allow vector constants. + + * config/rs6000/rs6000.h (PREDICATE_CODES): Add + easy_vector_constant, easy_vector_constant_add_self. + (EXTRA_CONSTRAINT): Add 'W'. + + * config/rs6000/rs6000-protos.h: Add prototype for + easy_vector_constant, emit_easy_vector_insn. + + * config/rs6000/altivec.md (xorv8hi3): New. + (xorv16qi3): New. + Remove all _const0 patterns. + (movv4si_internal): Rewrite to use code. Add vector constant to + vector alternative. Add splitter. + (movv8hi_internal): Same. + (movv16qi_internal): Same. + (movv4sf_internal): Same. + Change the unspecs for vspltis* to use constants. + + * config/rs6000/spe.md ("xorv4hi3"): New. + ("spe_evxor"): Rename to xorv2si3. + ("xorv1di3"): New. + Remove all _const0 patterns. + (movv2si_internal): Rewrite to use code. Add vector constant to + alternatives. Add splitter. + (movv4hi_internal): Add vector constant to alternatives. + (movv1di_internal): Same. + (movv2sf_internal): Same. + +2003-03-31 Mark Mitchell + + PR c/9936 + * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for + variably-sized arrays in parameters. + (set_save_expr_context): New function. + (c_expand_body): Use it, via walk_tree. + +2003-03-31 Eric Christopher + + * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART. + (combinable_i3pat): Remove call to expand_field_assignment and + #if 0'd code. + +2003-03-31 Mark Mitchell + + PR c++/10278 + * c-common.c (finish_label_address_expr): Handle the + error_mark_node. + +2003-03-31 Richard Henderson + + * real.c (real_identical): Reorg so as to not compare + signalling for normals. + +2003-03-31 Stephane Carrez + + * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode. + +2003-03-31 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0 + notes as they are boggus. + (m68hc11_gen_movqi): Likewise. + +2003-03-31 Stephane Carrez + + * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler + save the soft registers after the frame pointer so that gdb can unwind + the frame more easily. + (expand_epilogue): Likewise in opposite order; allow to use X register + as scratch if the return value is by reference. + +2003-03-31 Jason Merrill + + PR java/10145 + * stor-layout.c (update_alignment_for_field): Respect + DECL_USER_ALIGN for zero-length bitfields, too. + * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal + fields. + +2003-03-31 Matt Austern + + * cpppch.c (struct cpp_savedstate): Add defs and n_defs members. + (count_defs): Keep track of number of defs as well as total size. + (write_defs): Put every definition in cpp_savedstate's defs array. + (comp_hashnode): Define. Comparison function for qsort. + (cpp_write_pch_deps): Sort definitions before writing them. + (struct ht_node_list): Define. Like cpp_savedstate but simpler. + (collect_ht_nodes): Define. + (cpp_valid_state): When verifying that undefined identifiers in + the pch file are still undefined, read a sorted list of undefined + identifiers, collect all defined identifiers into a sorted list, + and walk through both lists to make sure there's no match. + +2003-03-31 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-03-31 Michael Matz + + * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0. + +2003-03-31 Segher Boessenkool + + PR target/10177 + * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New. + * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark + all call-clobbered registers as used. + +2003-03-31 Michael Matz + + * cppexp.c (cpp_classify_number): Accept '.' after "0x". + * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file. + +2003-03-31 Nathan Sidwell + + * gcov.c: Add -a & -u options. + (struct arc_info): Add local_span, is_call_non_return, + is_nonlocal_return, is_unconditional flags, remove is_call flag. + (struct block_info): Add flags, is_call_site, is_nonlocal_return + members. Make encodings a union with span member. + (struct function_info): Add blocks_executed, line, src, line_next + members. + (struct coverage_info): Make branches a union with blocks member. + (struct source_info): Add functions member. + (object_summary, program_count): New global variables. + (flag_all_blocks, flag_unconditional): New flags. + (find_source, output_branch_count): New functions. + (print_usage): Adjust. + (options): Adjust. + (process_args): Adjust. + (read_graph_file) : Adjust. + : Read flags. + : Adjust. + (read_count_file): Process SUMMARY tags. + (solve_flow_graph): Set is_unconditional and clear is_call_site + appropriately. + (add_branch_counts): Adjust. Don't count unconditional branches. + (add_line_counts): Deal with all-blocks mode, accumulate block + coverage. + (accumulate_line_counts): Adjust, generate local spanning tree for + all-blocks mode. + (output_lines): Adjust. + * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record. + * doc/gcov.texi: Document. + +2003-03-31 Kazu Hirata + + * config/h8300/h8300.md: Organize peephole2's that transform + (compare (reg:HI) (const_int)). + +2003-03-31 Roger Sayle + + * emit-rtl.c (dconstm2, dconsthalf): New real constants. + (init_emit_once): Initialize dconstm2 and dconsthalf here. + * real.h (dconstm2, dconsthalf): Add prototypes here. + * real.c (real_sqrt): Use dconsthalf rather than local copy. + * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as + exp(x/2.0) remember to fold the division if possible. + Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x, + pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as + 1.0/(x*x) and pow(x,0.5) as sqrt(x). + +2003-03-31 Kazu Hirata + + * config/h8300/h8300.md (a new peephole2): New. + +2003-03-31 Richard Sandiford + + * gcse.c (simple_mem): Return false for floating-point accesses + if flag_float_store is true. + +2003-03-30 Roger Sayle + + * gcse.c (gcse_constant_p): New function to identify constants + suitable for constant propagation, including COMPARE with two + integer constant arguments. + (hash_scan_set): Use gcse_constant_p. + (find_avail_set): Likewise. + (cprop_insn): Likewise. + (do_local_cprop): Likewise. + (find_implicit_sets): Likewise. + (find_bypass_set): Likewise. + +2003-03-30 Matt Kraai + + * except.h: Remove definition of varray_type. + +2003-03-30 Richard Henderson + + PR opt/10011, opt/10252: + * toplev.c (rest_of_compilation): Run purge_builtin_constant_p + before post-gcse cse pass. + +2003-03-30 Roger Sayle + + * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison. + +2003-03-30 DJ Delorie + + * profile.c (instrument_edges): Make sure any newly created + jump insns have correct jump label info. + +2003-03-30 Richard Henderson + + * cfgbuild.c (make_edges): Use tablejump_p. + * cfgcleanup.c (label_is_jump_target_p): Likewise. + * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise. + * cfgrtl.c (flow_delete_block_noexpunge): Likewise. + (try_redirect_by_replacing_jump): Likewise. + (redirect_edge_and_branch): Likewise. + * cse.c (fold_rtx): Likewise. + * jump.c (delete_related_insns): Likewise. + * rtlanal.c (get_jump_table_offset): Likewise. + * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise. + +2003-03-30 Gabriel Dos Reis + + * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs. + (STRICT2_WARN): Likewise. + +2003-03-30 Kaveh R. Ghazi + + PR other/6955 + * collect2.c (collect_wait): Use WCOREDUMP and fix output message. + * system.h (WCOREDUMP, WCOREFLG): Define if necessary. + +2003-03-30 Richard Henderson + + PR c/10083 + * config/alpha/alpha.md (umuldi3_highpart): Change to expander; + don't zero_extend const inputs. + +2003-03-30 Kazu Hirata + + * reload1.c (reload_cse_move2add): Fix a comment typo. + +2003-03-30 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Remove useless code. + +2003-03-29 Kazu Hirata + + * config/h8300/h8300.md (*iorsi3_and_ashift): New. + (*iorsi3_and_lshiftrt): Likewise. + (*iorsi3_zero_extract): Likewise. + +2003-03-29 Kazu Hirata + + * config/h8300/h8300.md (*insv_si_8_8): New. + (*insv_si_8_8_lshiftrt_8): Likewise. + (a peephole2): Likewise. + +2003-03-29 Gerald Pfeifer + + * doc/contrib.texi: Add Eric Botcazou and Roger Sayle. + Uniformly use bugfix instead of bug fix. + +2003-03-29 Gerald Pfeifer + + PR doc/895 + * ONEWS: Remove those items that already appear in the EGCS + release notes on our web pages. + +2003-03-29 Alan Modra + + * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect + TARGET_HARD_FLOAT. Reformat. + (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts. + +2003-03-28 Albert Chin-A-Young + + * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to + work on Solaris 2.5.1. + +2003-03-28 Kazu Hirata + + * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI + section of h8300.md + (*addsi3_and_nor_r_1): Likewise. + +2003-03-29 Ulrich Weigand + + * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is + set up before any trapping memory access if flag_non_call_exceptions. + +2003-03-29 Alan Modra + + * reload1.c (reload_as_needed): Allow a USE in asm reloads. + + * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment. + +2003-03-28 Nathanael Nerode + + * configure.in: Clarify comments. + * configure: Regenerate. + +2003-03-28 Ulrich Weigand + + * config/s390/s390.md ("literal_pool_31"): Output pool anchor + label even if pool empty when generating PIC. + ("literal_pool_31", "literal_pool_64"): Coding style cleanup. + +2003-03-28 Kazu Hirata , + Dhananjay Deshpande + + PR target/10205 + * config/h8300/h8300.c (h8300_initial_elimination_offset): + Correct the offset computation when TARGET_NORMAL. + +2003-03-28 Eric Botcazou + + PR target/10067 + * config/sparc/sparc.md (jump pattern): Correct order + when issuing the annuling marker. + +2003-03-28 Eric Botcazou + + PR c/8281 + * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative. + (movdi reg/reg split): Match only on sparc32, and v9 when int regs. + +2003-03-28 Alan Modra + + * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary + globalize_label. + * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. + * config/v850/v850.c (v850_output_aligned_bss): Likewise. + +2003-03-28 Alan Modra + + * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions. + (replace_loop_mems): Add "written" param. Remove invalid REG_EQUAL + notes after hoisting. + (load_mems): Adjust replace_loop_mems call. + +2003-03-28 Eric Botcazou + Richard Henderson + + PR target/10114 and PR target/10084 + * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM. + +2003-03-27 Richard Henderson + + * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload. + +2003-03-27 Roger Sayle + + * fold-const.c (fold_inf_compare): New function to simplify FP + comparisons against +Infinity or -Infinity. + (fold): Optimize floating point comparisons against Infs and NaNs. + +2003-03-27 Janis Johnson + + * libgcov.c: Provide only dummy functions if libc is not available. + +2003-03-27 Richard Henderson + + * real.h (struct real_value): Add signalling. + (EXP_BITS): Decrement. + * real.c (get_canonical_qnan): Don't set MSB-1. + (get_canonical_snan): Likewise. Set signalling. + (real_identical): Compare signalling. + (round_for_format): Remove force-one-bit on code. + (real_nan): Likewise. Set signalling. + (encode_ieee_single): Add force-one-bit code; honor signalling. + (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise. + (decode_ieee_single): Set signalling. + (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise. + +2003-03-27 Olivier Hainque + + PR ada/9953 + * ada/Makefile.in (gnatlib configuration for HPUX): Split + the general section for HPUX into specific sections for + HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX + 11 case. + +2003-03-27 Glen Nakamura + + PR opt/10087 + * loop.c (loop_givs_reduce): Skip bivs with duplicate locations + while incrementing giv. + (record_biv): Check for duplicate biv locations and + set (struct induction *) v->same if found. + +2003-03-27 David Mosberger + + * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind + v0.9 API change: replace read of UNW_REG_HANDLER with + unw_get_proc_info(). + (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA + with unw_get_proc_info(). + (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with + unw_get_proc_info(). + +2003-03-27 Vladimir Makarov + + * config/rs6000/8540.md: Use presence_set instead of absence_set. + +2003-03-26 Richard Henderson + + * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P. + +2003-03-26 Roger Sayle + + PR bootstrap/10051, PR bootstrap/10169. + * mips-tfile.c (init_file): Don't provide a static initializer. + (initialize_init_file): Initialize the contents of init_file. + (add_file): Call initialize_init_file if not already initialized. + +2003-03-26 Ulrich Weigand + + * config/s390/s390.c (s390_optimize_prolog): Do not save/restore + registers used for global asm variables. + (s390_frame_info, s390_arg_frame_offset): Likewise. + (s390_emit_prologue, s390_emit_epilogue): Likewise. + +2003-03-26 Vladimir Makarov + + * config/rs6000/8540.md: New file. + + * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md, + power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to + reservations for imul. + + * config/rs6000/rs6000.md: Include 8540.md. Change + delayed_compare onto mult_compare for insns generating + multiplication. + (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv): + New type attribute values. + + * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type + fpsimple instead of fp. + (*divsf3_gpr): Use type vecfdiv instead of fp. + (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple + instead of vecfloat. + (spe_evfsdive): Use type vecfdiv instead of vecfloat. + (spe_brinc): Use type brinc instead of veccomplex. + (spe_evaddw, spe_evaddiw): Use type vecsimple instead of + veccomplex. + (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex. + (*movv2si_internal, *movv1di_internal, *movv4hi_internal, + *movv2sf_internal): Define type attribute values for all + alternatives. + (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead + of fpcompare. + (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple + instead of fpcompare. + +2003-03-26 David Edelsohn + + * config/rs6000/power4.md: Allow delay between dispatch and + function units for simple instructions. Correct store units. + Allow branch to occupy as many dispatch slots as necessary. + +2003-03-26 Jakub Jelinek + + * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment. + (ia64_expand_compare_and_swap): Use always DImode ar.ccv, + zero extend old to it. + * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv + operand. + +2003-03-26 Eric Botcazou + + PR target/7784 + * reload.c (find_reloads_address): Handle + (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for + all base registers. + +2003-03-25 Marcelo Abreu + + PR other/10203 + * version.c: Reference the GCC web site in the URL. + +2003-03-26 Alan Modra + + * c-incpath.c (add_standard_paths): Add both "translated" and + non-translated header paths. + +2003-03-25 Loren James Rittle + + * doc/install.texi (*-*-freebsd*): Update with known status. + +2003-03-21 Jason Merrill + + PR optimization/10171 + * unroll.c (unroll_loop): Don't delete the jump at the end unless + we also delete a jump at the beginning. + +2003-03-25 Stephane Carrez + + * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12 + contributor. + +Tue Mar 25 20:35:51 CET 2003 Jan Hubicka + + * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic + constants are not expensive. + +Mon Mar 24 20:03:03 CET 2003 Jan Hubicka + + PR opt/10056 + * cfglayout.c (fixup_reorder_chain): Fix dealing with the conditional + jump jumping to the next instruction. + * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. + +2003-03-25 Gerald Pfeifer + + * doc/passes.texi (Passes): Properly document that we do not + perform jump2 any longer; remove command-line option -dJ. + +2003-03-25 Eric Botcazou + + PR optimization/8746 + * config/i386/i386.md (and promoting splitters): Disable HImode to + SImode promoting when the sign bit matters and is not preserved, or + when TARGET_FAST_PREFIX is true. Disable promoting when optimizing + for size. + +2003-03-24 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Extend to support loads + in QImode and HImode. + +2003-03-24 Stephane Carrez + + * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and + _return_far + (MULTILIB_OPTIONS): Don't multilib on -mlong-calls. + (MULTILIB_EXCEPTIONS): Likewise. + * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11 + by calling some board support routine. + ("call_value"): Likewise. + ("*return_void"): Likewise for return. + ("*return_16bit"): Likewise. + ("*return_32bit"): Likewise. + * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far + for 68HC11 too. + (DWARF2_ADDR_SIZE): Use 4 so that addresses can + * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept + -mlong-calls for 68HC11. + * config/m68hc11/larith.asm (declare_near): New macro. + (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it. + (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise. + (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise. + (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise. + (__mulhi32): Likewise. + (ret): Update macro for 68HC11. + (__far_trampoline): Implement for 68HC11. + (__call_a16, __call_a32, __return_void, __return_16): New support + routines for 68HC11 memory bank switching calling support. + (__return_32): Likewise. + +2003-03-24 Neil Booth + + * toplev.c (independent_decode_option): Don't skip a 'Y' prefix. + +2003-03-24 Janis Johnson + + * doc/install.texi (Testing): Mention test result links from build + status pages. + +2003-03-24 Mark Mitchell + + * function.c (put_var_into_stack): Change bool parameter to int. + (gen_mem_addressof): Likewise. + * rtl.h (gen_mem_addressof): Likewise. + * tree.h (put_var_into_stack): Likewise. + * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to + gen_mem_addressof or put_var_into_stack. + * config/c4x/c4x.c (c4x_expand_builtin): Likewise. + * config/ia64/ia64.c (spill_tfmode_operand): Likewise. + +2003-03-24 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-03-24 Jakub Jelinek + + * dojump.c (do_jump): Handle UNSAVE_EXPR specially. + +2003-03-24 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Update Janis Johnson. + +2003-03-23 Eric Botcazou + + PR target/10072 + * combine.c (simplify_if_then_else): Check that the mode + has MODE_INT class before applying the (OP Z (mult COND C2)) + transformation. + +2003-03-23 Eric Botcazou + + PR optimization/9414 + * config/sparc/sparc.md (widening peepholes): Use + widen_memory_access instead of change_address. + +2003-03-23 Mark Mitchell + + PR c++/7086 + * c-typeck.c (c_mark_addressable): Adjust calls to + put_var_into_stack. + * expr.c (expand_expr): Likewise. + * function.c (put_var_into_stack): Add rescan parameter. Do not + call fixup_var_refs when rescan is false. + (gen_mem_addressof): Likewise. + (assign_parms): Adjust calls to put_var_into_stack. + (setjmp_protect): Likewise. + (setjmp_protect_args): Likewise. + * rtl.h (gen_mem_addressof): Change prototype. + * stmt.c (expand_decl): Adjust calls to put_var_into_stack. + * tree.h (put_var_into_stack): Change prototype. + +2003-03-23 Arpad Beszedes + + PR middle-end/9967 + * builtins.c (expand_builtin_fputs): When optimizing for size, + don't transform fputs into fwrite. + +2003-03-23 Glen Nakamura + + PR c/8224 + * fold-const.c (extract_muldiv_1): Don't pass through type conversions + when signedness changes for division or modulus. + +2003-03-24 Alan Modra + + * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary + globalize_label. + +2003-03-23 Roger Sayle + + PR c/10178 + * stmt.c (expand_end_case_type): Check for overflow in range when + determining whether to use a bit-test implementation. + +2003-03-23 Richard Henderson + + * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps + before flow2. + * cfgrtl.c (try_redirect_by_replacing_jump): Similarly. + +2003-03-23 Richard Henderson + + PR opt/10116 + * ifcvt.c (find_if_block): Disallow tablejump insns outgoing + from then_bb or else_bb after flow2. + +2003-03-23 Zack Weinberg + + * configure.in: Check whether it is necessary to link against + libm to use ldexp. + * configure: Regenerate. + * Makefile.in: Add LDEXP_LIB substitution variable. + +2003-03-23 Kazu Hirata + + * config/h8300/h8300.md: Fix comment typos. + +2003-03-22 John David Anglin + + * pa.c (output_cbranch): Fix typo in comment. + +2003-03-22 Richard Henderson + + * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution + after reload. + +2003-03-22 DJ Delorie , + Bruce Korb + + * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix + buggy Solaris 2.6 mutex/cond initializers. + (solaris_mutex_init): Rename to solaris_mutex_init_2. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/pthread.h: Update. + * fixinc/fixincl.c(initialize): be explicit about the default case + and indicate verbose level when being very, very verbose. + * fixinc/check.tpl(VERBOSE): provide a means for passing the value in + +2003-03-22 Andreas Jaeger + + * config/i386/i386.c (ix86_init_machine_status): Return value. + +2003-03-22 John David Anglin + + * pa.c (output_cbranch, output_bb, output_bvb): Output nop for + conditional branch to the following instruction. Use next_real_insn + instead of next_active_insn. + (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn + instead of next_active_insn. + +2003-03-22 Ulrich Weigand + + * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o' + instead of 'm' constraint in forced-split alternatives. + ("*adddi3_31", "*subdi3_31"): Likewise. Also, pass 0 instead of 1 as + VALIDATE_ADDRESS parameter to operand_subword. + +2003-03-22 Kazu Hirata + + * config/h8300/h8300.c (notice_update_cc): Correctly handle + the case where the set destination is STRICT_LOW_PART. + +2003-03-22 Svein E. Seldal + + * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a + c30 instead of a c40 processor. + +2003-03-22 Alan Modra + + * combine.c (simplify_comparison ): Use gen_int_mode. Tidy. + +2003-03-21 Zack Weinberg + + * c-common.c: Include intl.h. + (shadow_warning): Rewrite to allow better diagnostic translations. + * c-common.h: Update prototype of shadow_warning. Declare sw_kind enum. + * c-decl.c (warn_if_shadowing): Update calls to shadow_warning; + use it throughout. + * Makefile.in (c-common.o): Add intl.h. + +2003-03-21 Nathanael Nerode + + * config.gcc: Remove 'float_format'. + + * fixproto: Define NULL and size_t in generated stdlib.h and + unistd.h. Kill unused required_stdlib_h, required_unistd_h. + Rearrange file generation loop for readability. Generate time.h, + string.h if missing. + * tsystem.h: Include , unconditionally. + * config.gcc: Blow away POSIX defines. + +2003-03-22 Stephane Carrez + + * config/m68hc11/m68hc11.md ("call_value"): Fix trap check. + +2003-03-22 Stephane Carrez + + * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in + writing .interrupt command. + * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see + if it's a far or near function. + ("call_value"): Likewise. + * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and + near attributes. + (m68hc11_handle_fntype_attribute): Accept attributes on methods. + (m68hc11_override_options): Ignore -mlong-calls for 68HC11. + (m68hc11_initial_elimination_offset): Set current_function_far + according to attributes. + (expand_prologue): Likewise. + (trap_handler_symbol): New global to keep track of trap handlers. + (m68hc11_encode_section_info): Mark symbol as far if needed; set + trap symbol. + (m68hc11_is_far_symbol): New function. + (m68hc11_is_trap_symbol): New function. + * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare. + (m68hc11_is_trap_symbol): Declare. + +2003-03-21 Jan Hubicka + + * i386.c (ix86_compute_frame_layout): Recompute fast prologues + only when amount of saved regs changed. + (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs. + * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs. + +2003-03-21 Jan Hubicka + + PR inline-asm/7916 + * function.c (instantiate_virtual_regs_lossage): New function. + (instantiate_virtual_regs_1): Use it. + (instantiate_virtual_regs): Do not continue in substition when insn has + been deleted. + +2003-03-21 Kazu Hirata + + * combine.c (make_field_assignment): Fix a warning. + +2003-03-21 Kazu Hirata + + * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New. + +2003-03-21 Dale Johannesen + + * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Increase + priority for R2 on Darwin. + (HARD_REGNO_MODE_OK): Don't accept R31 for DFmode. + +2003-03-21 Kazu Hirata + + * combine.c (make_field_assignment): Remove unnecessary AND + when storing into zero_extract. + +2003-03-21 Zack Weinberg + + * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete. + * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT. + * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN + in comment. + +2003-03-21 DJ Delorie + + * optabs.c (init_integral_libfuncs): Make sure we init at least up + to "long long" size words. + +2003-03-21 Ulrich Weigand + + * config/s390/s390.h: Do not include fixdfdi.h on s390x. + (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2. + (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2. + +2003-03-21 Volker Reichelt + + PR doc-bug/9813 + * doc/extend.texi: Move misplaced paragraph about underscores in + variables in macros. + +2003-03-21 Eric Botcazou + Richard Henderson + + PR optimization/8366 + * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro. + (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form + PIC+SYMBOLIC_CONST in other modes than Pmode. + (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark + the form PIC+SYMBOLIC_CONST as mode dependent. + +2003-03-21 DJ Delorie + + * config/stormy16/stormy16.c (xstormy16_expand_arith): Make + sure we always emit at least one insn. + +2003-03-21 Christopher Faylor + + * config.gcc (i[34567]86-*-cygwin*): Use new common makefile + stub t-cygming. Use common target header cygming.h. Add extra + c_target_obj and cxx_target_obj file. Default cygwin to posix + threading. Enforce i386 as float format. + (i[34567]86-*-mingw*): Use new common makefile stub t-cygming. + Remove cygwin.h as target header. Use common target header + cygming.h Enforce i386 as float format. Correct typo. + * config/i386/cygming.h: New file, containing definitions + common to mingw32 and cygwin. + * config/i386/cygwin.h: Remove definitions common to cygwin and + mingw. Simplify special spec logic. Define "wrappers" around + certain include path defines to accommodate -mno-cygwin. + Remove some #if 0'ed code. + (STANDARD_INCLUDE_DIR) Always define when not cross-compiling. + (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin. + (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan. + * config/i386/mingw32.h: Remove definitions common to cygwin and + mingw. + (EXTRA_OS_CPP_BUILTINS): Adjust. + (TARGET_VERSION): Define. + * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override + mingw32.h definitions. + (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h. + * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o. + Add compilation rules for cygwin1.o cygwin2.o. + * config/i386/cygwin1.c: New file. + * config/i386/cygwin2.c: New file. + * config/i386/t-cygming: New makefile stub. + +2003-03-20 Richard Henderson + + * fold-const.c (extract_muldiv_1): Revert changing order of + operands in case MULT_EXPR of 2003-02-16 patch. + +2003-03-20 Daniel Berlin + Merge changes from new-regalloc-branch + + From Michael Matz + * df.c (df_ref_record_1): Move init of loc to safe point. + Only recurse on interesting things in parallels. + Handle CLASS_CANNOT_CHANGE_MODE smarter. + (df_uses_record): Ditto. + + * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which + it's already okay to use memory operands in (IE doesn't require + adding another insn or anything). + +2003-03-20 Richard Henderson + + PR middle-end/6348 + * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE + different from word_mode. + +2003-03-20 Kazu Hirata + + * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the + source operand to those that can be extracted with bld. + +2003-03-20 Richard Earnshaw + + PR 10066 + * arm.md (UNSPEC_PIC_BASE): New constant. + (pic_add_dot_plus_four): Wrap with unspec. + (pic_add_dot_plus_eight): Likewise. + +2003-03-20 Kazu Hirata + + * config/h8300/h8300.md (*insv_si_1_n): New. + (*insv_si_1_n_lshiftrt): Likewise. + +2003-03-20 Roger Sayle + + * fold-const.c (fold_mathfn_compare): New function to simplify + comparisons against built-in math functions. Fold comparisons + of sqrt against constants. + (fold): Call fold_mathfn_compare when appropriate. + +2003-03-20 Richard Earnshaw + + * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance + information. + +2003-03-20 Per Bothner + + Various cleanups to help compile server. + + * cppinit.c (cpp_create_reader): Take extra hash_table* argument, + and pass that to _cpp_init_hashtable. + (cpp_read_main_file): Drop hash_table* argument; don't call + _cpp_init_hashtable. + * cpplib.h: Update declarations to match. + * c-opts.c (c_common_init_options): Pass ident_hash to + cpp_create_reader. + (c_common_post_options): Don't pass ident_hash to cpp_read_main_file. + * fix-header.c (read_scan_file): Likewise pass NULL table to + cpp_create_reader rather than cpp_read_main_file. + + * cppfiles.c (cpp_rename_file): Generalized and renamed + to cpp_change_file. + * cpplib.h: Update declaration to match. + * c-opts.c (push_command_line_line, finish_options): Change + cpp_rename_file calls to cpp_change_file. + + * line-map.c (add_line_map): Allow leaving the outermost file. + Allowing entering an outermost-file after the initial time. + + * toplev.c (pop_srcloc): Allow popping from initial file. + +2003-03-20 Kazu Hirata + + * fold-const.c (fold): Fold A - (A & B) into ~B & A. + +2003-03-20 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-03-20 Kazu Hirata + + * config/h8300/h8300.md (*addsi3_and_r_1): New. + (*addsi3_and_not_r_1): Likewise. + +2003-03-19 Loren James Rittle + + * Makefile.in (STRICT2_WARN): Add @WERROR@. + (GCC_WARN_CFLAGS): Remove $(WERROR). + (fixinc.sh-warn): New. + * ada/Make-lang.in (ada-warn): Add $(WERROR). + * cp/Make-lang.in (cp-warn): Add $(WERROR). + * f/Make-lang.in (f-warn): Add $(WERROR). + * java/Make-lang.in (java-warn): Add $(WERROR). + * treelang/Make-lang.in (treelang-warn): Add $(WERROR). + +2003-03-19 Nathanael Nerode + + * c-common.h (c_dump_tree), c-dump.c (c_dump_tree), + langhooks-def.h (lhd_tree_dump_dump_tree), + langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree): + Change return type from 'int' to 'bool'. Replace 0 and 1 with + true and false in return statements. + +2003-03-19 Kevin Buettner + + * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define. + (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account + DWARF_INITIAL_LENGTH_SIZE. + (output_compilation_unit_header, output_pubnames, output_aranges) + (output_line_info): Output 0xffffffff escape value for 64-bit + DWARF extension. + * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define. + +2003-03-19 Ulrich Weigand + + * config/s390/s390.c (s390_preferred_reload_class): Do not + force constants to the pool unless necessary. + (s390_decompose_address): Prefer to use pointer as base, + not index register. + * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from + Q alternative. + ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi", + "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives. + ("*extractqi", "*extracthi", "*zero_extendhisi2_31", + "*zero_extendqisi2_31", "*zero_extendqihi2_31", + "*adddi3_31", "*subdi3_31"): Do not set "type" attribute. + +2003-03-19 Jan Hubicka + + * i386.h (machine_function): New fields use_fast_prologue_epilogue. + * i386.c (use_fast_prologue_epilogue): Remove. + (ix86_frame): New field save_regs-using_mov; + (ix86_compute_frame_layout): Decide on fast prologues; + allocate saved registers in red zone. + (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters. + +2003-03-19 Nick Clifton + + * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon. + +2003-03-18 John David Anglin + + PR 10062 + * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine. + * pa-protos.h (output_lbranch): New prototype. + * pa.c (compute_frame_size): Change size of the frame marker on the + 64-bit ports to 48 bytes. + (pa_output_function_prologue): Document why SAVE_SP is set. + (hppa_expand_prologue): Save previous stack pointer into frame marker + on targets which use the hpux unwind library. + (output_cbranch): Use output_lbranch. + (output_lbranch): New function to output long unconditional branches. + * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define. + (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on + 64-bit ports. + * pa.md (jump): Use output_lbranch. + (allocate_stack): New expander for dynamic stack allocation. + +2003-03-19 Alan Modra + + * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame + when debugging on XCOFF targets. Delete "abi" temp. + + PR target/10073 + * combine.c (force_to_mode ): Use gen_int_mode. + +2003-03-18 Jakub Jelinek + + * config/s390/s390.c (s390_output_dwarf_dtprel): New. + * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto. + * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define. + + * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New. + * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto. + * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define. + +2003-03-18 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone + the result of machopic_function_base_name. + * config/darwin.c (machopic_function_base_name): Use a gc-allocated + string rather than a static array. + + * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies. + + * gengtype.c: Include rtl.h. + (enum rtx_code): Don't define. + (rtx_format): Make declaration match rtl.h. + (rtx_next_new): Rename from rtx_next to avoid conflict. Change all + users. + (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes. + * Makefile.in (gengtype.o): Update dependencies. + +2003-03-18 Andreas Schwab + + * config/m68k/m68k.md (iordi3): Fix setting low half to -1. From + martin@blom.org. + +2003-03-18 Geoffrey Keating + + * function.c (next_block_index): Mark with GTY. + + * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern. + +2003-03-18 Richard Henderson + + * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New. + (builtin_setjmp_receiver): Delay call to ia64_reload_gp + until after reload. + +2003-03-18 Richard Henderson + + * builtins.c (expand_builtin_unop): New target_mode operand; + use it to convert the result to the correct mode. + (expand_builtin): Update all callers. + +2003-03-18 Ulrich Weigand + + * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute. + +2003-03-18 Jan Hubicka + + * i386.md: Fix previous commit that mistakely applied the patch + twice. + + * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been + canonicalized. + (memrefs_conflict_p): Likewise. + (addr_side_effect_eval): Canonicalize the constructed address. + +2003-03-18 Jan Hubicka + + * i386.md (cvtts?2si peep2): New. + +2003-03-18 Kazu Hirata + + * config/h8300/h8300.md (*iorsi3_two_qi_zext): New. + +2003-03-18 Andreas Schwab + + * dwarf2out.c (output_file_names): Cast size_t to unsigned long + for format. + +2003-03-17 Jason Merrill + + PR c++/10091 + * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of + an unaligned member of TREE_ADDRESSABLE type. + +2003-03-18 Alan Modra + + * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define. + (TARGET_PROFILE_KERNEL): Define. + (SUBTARGET_SWITCHES): Handle -mprofile-kernel. + (PROFILE_BEFORE_PROLOGUE): Don't define. + (PROFILE_KERNEL): Remove hacks. + * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default. + (rs6000_stack_info): No need to save lr if just for profiling when + TARGET_PROFILE_KERNEL. + (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL. + (output_function_profiler): Localize label generation. Emit code + for kernel profiling. + +2003-03-17 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + byte_accesses_mergeable_p. + * config/h8300/h8300.c (byte_accesses_mergeable_p): New. + * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise. + (a splitter): Likewise. + (*iorsi3_ashift_16_ashift_24): Likewise. + (*iorsi3_ashift_16_ashift_24_mem): Likewise. + +2003-03-17 Kaveh R. Ghazi + + * dwarf2asm.h: Delete obsolete comment. + (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset, + dw2_asm_output_pcrel, dw2_asm_output_addr, + dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx, + dw2_asm_output_nstring, dw2_asm_output_data_uleb128, + dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128, + dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF. + +2003-03-17 Zack Weinberg + + * c-tree.h (struct lang_identifier): Remove error_locus field. + (IDENTIFIER_ERROR_LOCUS): Kill. + (record_function_scope_shadow): New prototype. + * c-typeck.c (build_external_ref): Don't complain if + decl is error_mark_node. When not at file scope, bind the + decl's local value to error_mark_node to suppress further + warnings, instead of setting IDENTIFIER_ERROR_LOCUS. + + * c-decl.c (get_function_binding_level): New static function. + (record_function_scope_shadow): New exported function. + (c_make_fname_decl): Use get_function_binding_level. + +2003-03-17 Steve Ellcey + + * stmt.c (tail_recursion_args): Call promote_mode to set + unsignedp flag correctly before calling convert_move. + +2003-03-17 Zdenek Dvorak + + * loop-unroll.c (decide_peel_completely, + decide_unroll_constant_iterations, decide_unroll_stupid, + decide_unroll_runtime_iterations, decide_peel_simple): Set + loop->has_desc. + +2003-03-17 Jan Hubicka + + * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize. + +2003-03-17 Olivier Hainque + + * function.c (assign_parms): For a struct value address passed as + first argument, delay the function's result RTL setup code until + after the emission of parameter conversions. + +2003-03-17 Dave Love + Rainer Orth + + * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__, + __arch64__ to match Compaq cc. + +2003-03-17 Neil Booth + + * c-opts.c: Default TARGET_EBCDIC to 0 if not defined. + (c_common_init): Set EBCDIC in cpp options. + * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option, + not conditional compilation. + * cpplib.h (struct cpp_options): New entry EBCDIC. + +2003-03-17 Neil Booth + + * fix-header.c (read_scan_file): Need to malloc arguments to add_path. + +2003-03-17 Michael Hayes + + * function.c (thread_prologue_and_epilogue_insns): Set delete_unused + argument to 0 for redirect_jump. + +2003-03-16 Mark Mitchell + + PR c++/8805 + * except.c (eh_region_u_cleanup): Add prev_try. + (expand_eh_region_end_cleanup): Set it. + (reachable_handlers): Use it to skip over cleanup blocks. + +2003-03-17 Andreas Jaeger + + * Makefile.in (TAGS): Remove obsolete handling of =*.[chy]. + +2003-03-17 Alan Modra + + * config/rs6000/linux64.h (TARGET_64BIT): Redefine. + (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise. + (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise. + (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise. + +2003-03-16 Richard Henderson + + * simplify-rtx (simplify_binary_operation): Don't abort for + SS_PLUS, US_PLUS, SS_MINUS, US_MINUS. + +2003-03-16 Richard Henderson + + * config/i386/i386.md (movstrictqi, movstrictqi_1): Check + optimize_size as well. + +2003-03-16 Stephane Carrez + + * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier + for D register to specify the low part of it, aka B. + (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement + the register if we are loading 1 or -1 to it; avoid using temp + register when moving X/Y to Y/X. + (m68hc11_gen_movqi): Likewise. + (m68hc11_check_z_replacement): Fix last insn setting for compare case. + +2003-03-14 Mark Mitchell + + PR optimization/9016 + * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs + into the constant pool. + +2003-03-16 Falk Hueffner + + PR target/9164 + * tree.c (get_narrower): For extensions with unchanged bit number, + return the unsignedness of the outer mode. + +2003-03-16 Roger Sayle + + * c-typeck.c (build_component_ref): Turn "for" into "do .. while" + to avoid "may be used uninitialized" warning on ia64-hpux. + * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes. + +2003-03-16 Andreas Jaeger + + * configure.in: Improve check for memcheck.h. + * configure: Regenerated. + +2003-03-16 Neil Booth + + * doc/cppopts.texi: Remove documentation of -A-. + +2003-03-15 Zack Weinberg + + * doc/libgcc.texi: Remove @tie. + +2003-03-15 Josef Zlomek + + * rtl.h (subrtx_p): Renamed to rtx_referenced_p. + (rtx_pair): Added new element update_label_nuses, renamed to + replace_label_data. + * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use + replace_label_data instead of rtx_pair. + * loop.c (load_mems): Likewise. + * rtlanal.c (replace_label): Replace label in pool constants and in + INSN_LIST (in REG_LABEL note). + (subrtx_p): Renamed to rtx_referenced_p. + (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of + LABEL_REF with CODE_LABEL, traverse constants from pool. + +2003-03-15 Aldy Hernandez + Zack Weinberg + + * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi. + * doc/libgcc.texi: New file. + * doc/interface.texi: Delete paragraph about libgcc interface. + * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi. + +2003-03-15 Jason Merrill + + PR debug/9039 + * dwarf2out.c (gen_decl_die): Ignore frontend tree codes. + + PR debug/6387 + * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested + function DIEs at toplevel. + (decls_for_scope): At -g1, don't descend into subblocks. + +2003-03-15 Ulrich Weigand + + * varasm.c (struct rtx_const): Change type of un.addr member + to struct holding an additional 'symbol' member. + (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs + with equal string addresses as equal. + (simplify_subtraction): Adapt to struct rtx_const change. + +2003-03-15 Neil Booth + + * fix-header.c (read_scan_file): Read main file before handling -D. + +2003-03-15 Roger Sayle + + * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace. + * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. + * cfgbuild.c (find_many_sub_basic_blocks): Likewise. + (find_sub_basic_blocks): Likewise. + * cgraphunit.c (cgraph_expand_functions): Likewise. + * dwarf2out.c (prune_unused_types): Likewise. + * expr.c (store_field): Likewise. + * genextract.c (print_path): Likewise. + * haifa-sched.c (schedule_insn): Likewise. + * lcm.c (compute_antinout_edge): Likewise. + * loop-unroll.c (decide_peel_once_rolling): Likewise. + * ra-colorize.c (ra_colorize_free_all): Likewise. + * ra-debug.c (dump_igraph): Likewise. + (debug_hard_reg_set): Likewise. + * reg-stack.c (reg_to_stack): Likewise. + * rtlanal.c (refers_to_regno_p): Likewise. + * tracer.c (layout_superblocks): Likewise. + +2003-03-15 Neil Booth + + * fix-header.c (read_scan_file): Fix thinko. + +2003-03-15 Glen Nakamura + + * reload1.c (choose_reload_regs): Use && instead of || + with REG_CANNOT_CHANGE_MODE_P condition. + +2003-03-15 Neil Booth + + * Makefile.in: Update. + * c-common.h (cb_register_builtins): Rename c_cpp_builtins. + * c-lex.c (init_c_lex): Register builtins hook is dead. + * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U. + (c_common_decode_option): Don't call cpp_handle_option. + Handle -A, -D and -U. + (handle_deferred_opts): Simplify. + (finish_options): Define builtins and command line macros. + * c-ppoutput.c (init_pp_output): Register builtins hook is dead. + * cppinit.c: Don't include intl.h. + (init_builtins): Rename cpp_init_builtins. No hook to call. + (init_library): Don't need to sort options. + (cpp_create_reader): Don't set pending. + (cpp_destroy): Don't free pending. + (struct pending_option, cl_directive_handler, struct cpp_pending, + APPEND, free_chain, new_pending_directive, parse_option, opt_comp, + cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option, + cl_options, cpp_handle_option): Remove. + * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option, + cpp_finish_options): Remove. + (cpp_init_builtins): New. + * fix-header.c (read_scan_file): Update to handle -D. Fix + handling of -I. Replace call to cpp_finish_options. + +2003-03-15 Michael Hayes + + PR optimization/9387 + * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump + for conditional returns. + +2003-03-14 Jason Merrill + + PR optimization/6871 + * varasm.c (assemble_variable): Leave constant zeroes in .rodata. + +2003-03-14 Neil Booth + + * c-opts.c (finish_options): New. + (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros. + (missing_arg): Handle OPT_include and OPT_imacros. + (c_common_init, c_common_parse_file): Use finish_options. + (handle_deferred_opts): Update. + * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail. + (cpp_finish_options): Don't handle -imacros here. + (no_fil): Remove. + (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros. + +2003-03-14 Jakub Jelinek + + * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call + rs6000_maybe_dead if !fromprolog. + +2003-03-14 Neil Booth + + * Makefile.in: Update. + * c-common.h (fe_file_change, pp_file_change): New. + * c-lex.c (init_c_lex): Don't set cb_file_change. + (c_common_parse_file): Move to c-opts.c. + (cb_file_change): Rename fe_file_change. + * c-opts.c: Include debug.h. + (warn_unused_macros, include_cursor): New. + (push_command_line_include, cb_file_change): New. + (COMMAND_LINE_OPTIONS): Handle -include. + (c_common_decode_option): Use local warn_unused_macros. + Handle OPT_include. + (c_common_post_options): Set file change callback. + (handle_deferred_opts): Skip -include. Don't free the array. + (c_common_init): Call cpp_finish_options here, and push an + initial -include file. + * c-ppoutput.c (cb_file_change): Rename pp_file_change. + (preprocess_file): Don't call cpp_finish_options. + (init_pp_output): Don't set the file change callback. + (pp_file_change): Return if no line commands or no output. + * cpphash.h (next_include_file, first_unused_line): Remove. + * cppinit.c (include_head, include_tail): Remove. + (cpp_destroy): Don't free -include chain. + (cpp_finish_options): Don't handle -include, or worry about + -Wunused-macros. + (_cpp_maybe_push_include_file): Remove. + (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include. + * cpplib.c (_cpp_pop_buffer): Don't handle -include. + * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition): + Used flag is set based upon the state of the warn_unused_macros + flag, and so use of first_unused_line is unnecessary. + +2003-03-13 Jan Hubicka + + * cselib.c (clear_table): Do not take argument; always clear just + used slots. + (cselib_process_insn): Update call of clear_table + (cselib_init): Do not call clear_table. + (cselib_finish): Clear table. + + * cse.c (count_reg_usage): Do not check side_effects_p. + * rtlanal.c (set_noop_p): Check side_effects_p only when set looks + like noop. + (find_reg_equal_equiv_note): Do not use find_reg_note. + +2003-03-14 Richard Henderson + + PR target/9700 + * config/alpha/alpha.c (alpha_va_start): Account for + current_function_pretend_args_size in the AP offset. + + * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line. + (INITIAL_ELIMINATION_OFFSET): Move out of line. + * config/alpha/alpha.c (alpha_setup_incoming_varargs): New. + (alpha_initial_elimination_offset) New. + * config/alpha/alpha-protos.h: Update. + +2003-03-14 Jakub Jelinek + + * stmt.c (expand_start_case): Call emit_queue (). + +2003-03-14 Chris Demetriou + Alexandre Oliva + + * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2 + words in new abis. + +2003-03-14 Eric Botcazou + + PR optimization/8396 + * tree-inline.c (initialize_inlined_parameters): Make sure the value + of read-only constant arguments is passed with the right type. + +2003-03-14 Steven Bosscher + + * doc/extend.texi (Function Names): Make the example compilable. + +2003-03-13 David Edelsohn + + * config/rs6000/rs6000.c (processor_target_table): Really allow + GP optional instructions on Power4. + +2003-03-13 Roger Sayle + + * calls.c (flags_from_decl_or_type): Factor and remove redundant + conditional tests. + +2003-03-13 Mike Stump + + * ggc-page.c (struct page_entry): Remove varray.h header. + Add index_by_depth field. + Remove save_in_use_p field. + (struct globals): Add depth_in_use, depth_max, by_depth_in_use, + by_depth_max, by_depth, and save_in_use fields. + (INITIAL_PTE_COUNT): Add. + (save_in_use_p_i): Add. + (save_in_use_p): Add. + (adjust_depth): Add. + (move_ptes_to_front): Add. + (push_depth): Add. + (push_by_depth): Add. + (prefetch): Add. + (free_page): Add support for and use faster data structures. + (ggc_alloc): Likewise. + (init_ggc): Likewise. + (ggc_recalculate_in_use_p): Likewise. + (ggc_pop_context): Likewise. + (clear_marks): Likewise. + (ggc_pch_read): Likewise. + * Makefile.in (ggc-page.o): Remove varray.h. + +2003-03-13 Nathanael Nerode + + * ChangeLog: Rotated last year's entries to... + * ChangeLog.8: New. + + * config/ia64/fde-glibc.c, config/ia64/freebsd.h, + config/ia64/hpux.h, config/ia64/hpux_longdouble.h, + config/ia64/ia64-c.c, config/ia64/ia64-modes.def, + config/ia64/ia64-protos.h, config/ia64/ia64.c, + config/ia64/ia64.h, config/ia64/ia64.md, + config/ia64/itanium1.md, config/ia64/itanium2.md, + config/ia64/quadlib.c, config/ia64/unwind-ia64.c, + config/ia64/unwind-ia64.h: It's GCC, not GNU CC. + +2003-03-13 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_dwarf_register_span): + Differentiate endianness. + (s6000_override_options): Use cpu type instead of TARGET_SPE. + +2003-03-13 Nick Clifton + + * config/arm/arm.c (print_multi_reg): Do not generate a type 2 + LDM instructions with writeback enabled. + (output_return_instruction): Likewise. + + * config/arm/pe.h (FIXED_REGISTERS): Remove definition. + (CALL_USED_REGISTERS): Remove definition. + (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define. + +2003-03-13 Alan Modra + + * config/rs6000/rs6000.c (rs6000_flag_pic): Delete. + (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF. + (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO. + (rs6000_override_options): Don't clear flag_pic for ABI_AIX. + (rs6000_legitimize_address): Formatting. + (rs6000_emit_move): Likewise. + (rs6000_return_addr): Test ABI_AIX as well as flag_pic. + (rs6000_emit_prologue ): Likewise. + (rs6000_elf_select_section): Comment reason for shlib being + set for ABI_AIX. + (rs6000_elf_unique_section): Likewise. + (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX. + * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX + as well as flag_pic. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. + (MINIMAL_TOC_SECTION_ASM_OP): Likewise. + * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define. + +2003-03-13 Richard Henderson + + * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly. + + * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New. + (ia64_gp_save_reg): Remove. + (struct ia64_frame_info): Move to the beginning of the file; + add reg_save_gp. + (ia64_expand_call): Rearrange for new call patterns. + (ia64_reload_gp): New. + (ia64_split_call): New. + (ia64_compute_frame_size): Allocate reg_save_gp. + (ia64_expand_prologue): Save reg_save_gp. + (ia64_expand_epilogue): Don't restore gp. + (ia64_hard_regno_rename_ok): Remove R4 hack. + (ia64_function_ok_for_sibcall): New. + (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos; + call try_split on sibcall pattern. + * config/ia64/ia64-protos.h: Update. + * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp): + Rename from nopic versions. Confiscate 2nd argument to call as + a marker. + (call_pic, call_value_pic, sibcall_pic): Remove. + (call_gp, call_value_gp, sibcall_gp): New. + (builtin_setjmp_setup): Remove. + (builtin_setjmp_receiver): Call ia64_reload_gp. + +2003-03-12 Nathanael Nerode + + * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, + config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace + "GNU CC" with "GCC". + + * config/c4x/c4x-c.c, config/c4x/c4x-modes.def, + config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, + config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h: + GCC, not GNU CC. + + * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h, + langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC". + + * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c, + langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c, + unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace + "GNU CC" with "GCC". + + * config/v850/lib1funcs.asm, config/v850/rtems.h, + config/v850/v850-c.c, config/v850/v850-protos.h, + config/v850/v850.c, config/v850/v850.h, config/v850/v850.md: + GCC, not GNU CC. + + * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h, + config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h, + config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c, + config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not + GNU CC. + +2003-03-12 Benjamin Kosnik + + * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING. + +2003-03-12 Nathanael Nerode + + * fixinc/fixinc.interix: Remove dead code (most of it). + * fixinc/fixinc.dgux: Remove. + + * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h, + ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC. + +2003-03-12 John David Anglin + + * pa.c (pa_init_builtins): Fix warning. + +2003-03-12 Steve Ellcey + + * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove. + (ASM_OUTPUT_XDATA_SHORT): Remove. + (ASM_OUTPUT_XDATA_INT): Remove. + (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove. + (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs. + (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers. + (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement. + +2003-03-12 Andrew Lewycky + + PR c++/7050 + * expr.c (store_expr): Don't attempt to store void-typed trees, + just evaluate them for side effects. + +2003-03-12 Neil Booth + + * cppfiles.c (cpp_rename_file, cpp_push_include): New. + * cppinit.c (push_include): Move with changes to cppfiles.c. + (cpp_read_main_file): Mark named operators here... + (cpp_finish_options): ...not here. Update. + (_cpp_maybe_push_include_file): Update. + * cpplib.h (cpp_push_include, cpp_rename_file): New. + +2003-03-12 Nathanael Nerode + + * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE, + _gcc_COMPUTE_GAS_VERSION. + * configure.in: Use them. + * configure: Regenerate. + +2003-03-12 Bob Wilson + + * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used + to detect carry. + (subdi3): Reorder emitted instructions. + +2003-03-12 Andreas Jaeger + + * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to + NETBSD_OS_CPP_BUILTINS_LP64. + +2003-03-12 Nathanael Nerode + + * Makefile.in: Eliminate all.indirect. Update and clean up comments. + Rearrange. Reorganize. + * configure.in: Rearrange. + * configure: Regenerate. + +2003-03-12 Andreas Jaeger + + * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for + LP64 targets. + + * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and + _LP64. + + * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define + _LP64 macros here. + * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise. + + * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to + NETBSD_OS_CPP_BUILTINS_LP64. + * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise. + * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise. + + * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove. + +2003-03-12 Jan Hubicka + + * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128. + +2003-03-12 Daniel Jacobowitz + + Fix PR target/9797 and PR c/9853. + * stmt.c (expand_decl_init): Call push_temp_slots () and + pop_temp_slots (). + +2003-03-12 J"orn Rennecke + + * sh.c: Include basic-block.h. + (sh_output_mi_thunk, emit_load_ptr): New functions. + (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine. + +2003-03-12 Nick Clifton + + * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers. + (CALL_USED_REGISTERS): Likewise. + * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment + describing how this value is calculated. + +2003-03-12 Hans-Peter Nilsson + + * configure.in (rlim_t): Define to long if no valid definition + found in sys/resource.h. + * config.in, configure: Regenerate. + +2003-03-12 Neil Booth + + * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with + TARGET_OS_CPP_BUILTINS. + * config/mcore/mcore-pe.h: Similarly. + * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of + CPP_SPEC with TARGET_CPU_CPP_BUILTINS. + +2003-03-12 Eric Botcazou + + PR c/9928 + * c-decl.c (duplicate_decls): Discard the initializer of the new decl + only if it is a VAR_DECL. + +2003-03-12 Eric Botcazou + + PR optimization/9888 + * config/i386/i386.md (jcc_1): Fix range. + (jcc_2): Likewise. + (jump): LIkewise. + (doloop_end_internal): Likewise. + +2003-03-12 Danny Smith + + * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define. + Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e." + (DLL_EXPORT_PREFIX): New define. Use throughout instead of + DLL_IMPORT_EXPORT_PREFIX and "i." + (i386_pe_dllexport_name_p): Here. + (i386_pe_dllimport_name_p): Here. + (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX, + not 9 chars when getting identifier name. + (i386_pe_mark_dllimport): Here. + (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX, + not 9 chars when getting identifier name. Correct comment. + (i386_pe_strip_name_encoding): Here. Add comments for different + cases. + (gen_fastcall_suffix): Break down xmalloc() argument to + components. + (gen_stdcall_suffix): Likewise. + Update copyright year. + +2003-03-12 Eric Botcazou + + PR optimization/9888 + * config/i386/i386.md (movsi_1): Remove special alternatives + for %eax register. + (movsi_1_nointernunit): Likewise. + (movhi_1): Likewise. + * config/i386/i386.c (memory_address_length): Do not use + short displacement when there is no base. + (ix86_attr_length_address_default): Handle LEA instructions. + +2003-03-12 Neil Booth + + * c-cppbuiltin.c (builtin_define_std): Make non-static. + +2003-03-11 Loren James Rittle + + * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove. + (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro. + (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro. + * config/freebsd.h (CPP_PREDEFINES): Remove. + (TARGET_OS_CPP_BUILTINS): New. + * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS + instead of TARGET_OS_CPP_BUILTINS. + * config/sparc/freebsd.h (CPP_PREDEFINES): Remove. + +2003-03-11 Geoffrey Keating + + * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED. + +2003-03-11 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_stack_info): Remove + insn_chain_scanned. Use insn_chain_scanned_p in machine_function. + + * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p. + +2003-03-11 Alexandre Oliva + + * toplev.c (independent_decode_option): Return success for --help, + --target-help and --version. + +2003-03-11 Alexandre Oliva + + * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec. + Default to -mips3 on -mabi=64. Don't add -mips* flag if -march is + specified. + (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by + DRIVER_SELF_SPECS. + (LINK_SPEC): Let endian options affect the linker emulation name. + +2003-03-11 J"orn Rennecke + + * sh.md (reload_inqi): Fix mode for source in second set. + +2003-03-11 Jan Hubicka + + * cselib.c (cselib_invalidate_mem_1): Move too ... + (cselib_invalidate_mem): ... here; use new list + (dummy_val, first_containing_mem): New static variables. + (clear_table): Initialize first_containing_mem. + (discard_useless_values): Compact the containing_mem list. + (add_mem_for_addr): Add to the list. + * cselib.h (cselib_val): Add next_containing_mem. + +2003-03-11 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_override_options): Disable string + instructions for e500. + +2003-03-11 Neil Booth + + * Makefile.in: Update. + * c-cppbuiltin.c: Include tm_p.h. + +2003-03-11 Aldy Hernandez + + * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN. + + * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define. + (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN. + (_Unwind_SetGR): Same. + (_Unwind_GetGRPtr): New. + (_Unwind_SetGRPtr): New. + (uw_update_context_1): Use accesor functions instead of accessing + context->reg[] directly. + (uw_install_context_1): Same. + (execute_cfa_program): Same. + (__frame_state_for): Same. + + * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as + the synthetic register offset. + + * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New. + +2003-03-11 Hans-Peter Nilsson + + * config/cris/cris.md: Remove lingering EGCS reference. + ("*extopqihi_side_biap"): For HI operation, match + cris_additive_operand_extend_operator, not + cris_operand_extend_operator. Adjust condition. + ("*extopqihi_side", "*extopqihi"): Ditto. + ("*extopqisi_side_biap"): Correct operand numbers in condition. + ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto. + ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto. + ("*extophisi_swap"): Ditto. + ("*extopqihi_swap_side_biap"): For HI operation, match a simple + PLUS, not cris_operand_extend_operator. Adjust condition and + output template. + ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto. + * config/cris/cris.h (PREDICATE_CODES): Add + cris_additive_operand_extend_operator. + * config/cris/cris.c (cris_additive_operand_extend_operator): + New predicate. + +2003-03-11 Hartmut Penner + + * df.c (read_modify_subreg_p): Change from static to global. + * df.h (read_modify_subreg_p): Add prototype. + * sched-deps.c (sched_analyze_1): Generate true dependency for + strict_low_part, certain subregs and zero/sign_extract. + +2003-03-11 Neil Booth + + * Makefile.in: Update. + * c-common.c: Don't include real.h or except.h. + (REGISTER_PREFIX): Remove. + (builtin_define_std, builtin_define_with_value, + builtin_define_with_int_value, builtin_define_with_hex_fp_value, + builtin_define_type_max, builtin_define_type_precision, + builtin_define_float_constants): Move to c-cppbuiltin.c. + (c_stddef_cpp_builtins): New. + * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New. + * c-cppbuiltin.c: New, extracted from c-common.c. + (define__GNUC__): New. + * cppspec.c (lang_specific_driver): Remove support of -no-gcc. + * gcc.c: Remove support of %v1, %v2 and %v3 specs. + (cpp_unique_options): Don't support no-gcc. + (do_spec_1): Remove support of version specs. + * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3. + * doc/passes.texi: Update. + * doc/tm.texi: Update. + +2003-03-10 Aldy Hernandez + + * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko. + +2003-03-10 Andrew Pinski + + * config/darwin.c (machopic_function_base_name): If dynamic-no-pic + is on should not get here. + (machopic_indirect_data_reference): If dynamic-no-pic is on just + generate high/low parts of the address. + (machopic_legitimize_pic_address): Change MACHOPIC_PURE to + MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate + symbol and labels with a new reg. Dynamic-no-pic does not have a + pic_offset_table_rtx. + (machopic_select_section): Change references of flag_pic to + MACHOPIC_INDIRECT. + (machopic_asm_out_destructor): Likewise. + * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change + reference of flag_pic to MACHOPIC_INDIRECT. + (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC. + (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on. + (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on. + (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on. + * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as + 0 for right now as dynamic-no-pic is not implemented on Darwin/ia32. + * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define. + (TARGET_DYNAMIC_NO_PIC): Define. + (SUBTARGET_SWITCHES): Define, have sub-target switches for + dynamic-no-pic. + (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from + rs6000_override_options to here. Dynamic-no-pic overrides + pic. + (CC1_SPEC): Change from not static then pic to not static and not + dynamic-no-pic then pic. + * config/rs6000/rs6000.c (rs6000_override_options): Move the + check for -fpic and DARWIN_ABI to config/rs6000/darwin.h + (rs6000_legitimize_reload_address): Add case for loading floating in + dynamic-no-pic. + (rs6000_emit_move): Add case for dynamic-no-pic. Change reference + of flag_pic to MACHOPIC_INDIRECT. + (secondary_reload_class): Conditional change the reference of + flag_pic to MACHOPIC_INDIRECT. + (rs6000_output_mi_thunk): Change reference of flag_pic to + MACHOPIC_INDIRECT. + (output_profile_hook): Likewise. + (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported. + * config/rs6000/rs6000.md (movdf_low): Add the case for + MACHO_DYNAMIC_NO_PIC_P. + (call): Change references for flag_pic in TARGET_MACHO to + MACHOPIC_INDIRECT. + (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and + -mdynamic-no-pic is on. Also move case for -fpic from rs6000.c. + * doc/invoke.texi (-mdynamic-no-pic): Document. + +2003-03-10 Devang Patel + + PR c++/9394 + * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove. + (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove. + * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add. + (DEFAULT_WORD_SWITCH_TAKES_ARG): Add. + * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove. + (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove. + +2003-03-10 Steven Bosscher + + PR optimization/7189 + * toplev.c (rest_of_compilation): Move + check_function_return_warnings up to just after + delete_unreachable_blocks. + +2003-03-10 Stephane Carrez + + * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define. + * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok): + Declare. + * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function + for reg rename optimization to avoid using Z and Y registers. + +2003-03-10 Stephane Carrez + + * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant + when adding to X and Y since leax/leay are fast. + ("*addhi3"): Accept 'I' constraint when adding to address register. + ("rotlhi3"): Operand 1 must be a register_operand. + (peephole2): New peephole to optimize some adds. + * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint + to represent -2 .. 2 small integer range. + +2003-03-10 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before + each 16-bit rotation. + +2003-03-10 Zack Weinberg + + * c-opts.c (add_prefixed_path): Don't use concat. When + prefixing with cpp_GCC_INCLUDE_DIR, copy only the first + cpp_GCC_INCLUDE_DIR_len characters. + +2003-03-10 Segher Boessenkool + + * testsuite/gcc.dg/altivec-9.c: New file. + + * config/rs6000/rs6000.c (altivec_frame_fixup): Remove. + (rs6000_emit_prologue): Use rs6000_frame_related instead. + +2003-03-10 Aldy Hernandez + + * config/rs6000/spe.h: Define __ev64_*64__ to use single element + vectors. + (__ev_convert_u64): Remove macro. Define as inline. + (__ev_convert_s64): Same. + +2003-03-10 Aldy Hernandez + + * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define. + (rs6000_stack_t): Add spe_64bit_regs_used. + + * config/rs6000/rs6000.c (rs6000_stack_info): Calculate + spe_64bit_regs_used, and use it to determine the size of the + frame. + (spe_func_has_64bit_regs_p): New. + (spe_synthesize_frame_save): New. + (rs6000_frame_related): Handle SPE synthetic registers. + (rs6000_emit_prologue): Only save in 64-bits if the function used + any registers in 64-bit mode. + (rs6000_emit_epilogue): Same, but for restore. + +2003-03-10 Richard Earnshaw + + * arm.h (enum floating_point_type): Delete. Replace with... + (enum fputype): ... new. + (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT. Values reworked. + * linux-elf.h (FPUTYPE_DEFAULT): Likewise. + * arm.md (attr fpu): Reworked for new underlying enum values. + * arm.c (arm_fpu_arch): Now enum fputype. + (arm_fpu_tune): Renamed from arm_fpu. Now enum fputype. + (arm_override_options, arm_output_epilogue, arm_expand_prologue): + Update uses of arm_fpu_arch and arm_fpu_tune. + +2003-03-10 Josef Zlomek + + * cfgcleanup.c (outgoing_edges_match): Compare the jump tables. + (try_crossjump_to_edge): Replace refereces to one jump table by + references to identical jump table. + * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label. + (replace_label): Moved to rtlanal.c. + (struct rtx_pair): Moved to rtl.h. + * rtl.h (struct rtx_pair): Moved from loop.c. + (replace_label): New extern function. + (subrtx_p): New extern function. + (tablejump_p): New extern function. + * rtlanal.c (replace_label): Moved from loop.c. + (subrtx_p_1): New static function. + (subrtx_p): New function. + (tablejump_p): New function. + +2003-03-10 Jan Hubicka + + * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch. + + * cfgcleanup.c (merge_blocks): Return where to iterate next. + (try_optimize_cfg): Use return value of merge_blocks + +2003-03-10 Michael Matz + + * cfg.c (unchecked_make_edge): New. + (cached_make_edge): Use it. + * basic-block.h (unchecked_make_edge): Declare. + * cfglayout.c (cfg_layout_duplicate_bb): Use it. + +2003-03-10 Richard Earnshaw + + * fpa.md: New file. Move all patterns relating to FPA co-processor + to here... + * arm.md: ... from here. + (cirrus.md, fpa.md): Include at end of description. + (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands. + (pic_load_addr_based): Remove register constraint from expander. + (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered) + (sordered, sungt, sunle, sunge, sunlt): Likewise. + (eh_epilogue, tablejump): Likewise. + +2003-03-09 Richard Kenner + + * tree.c (substitute_in_expr, case 'e'): Only make recursive call + on operands if it has a PLACEHOLDER_EXPR. + +2003-03-09 David Edelsohn + Mostafa Hagog + + * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final + condition. + +2003-03-09 Neil Booth + + * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES. + * config/ip2k/ip2k.h: Similarly. + * config/m32r/m32r.h: Similarly. + * config/m68hc11/m68hc11.h: Similarly. + * config/mn10200/mn10200.h: Similarly. + * config/mn10300/mn10300.h: Similarly. + * config/pdp11/pdp11.h: Similarly. + * config/v850/v850.h: Similarly. + * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS. + * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS. + * config/mips/iris3.h: Remove #if 0 block. + +2003-03-09 Roger Sayle + Joern Rennecke + + * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch. Don't handle + pending argument upon return from handle_braces here. + (do_spec_2): Instead handle it upon return from do_spec_1 here. + +2003-03-09 Roger Sayle + Joern Rennecke + + * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch. Don't handle + pending argument upon return from handle_braces here. + (do_spec_2): Instead handle it upon return from do_spec_1 here. + +2003-03-09 Franz Sirl + + * varasm.c (make_decl_one_only): Use declare_weak(). + +2003-03-09 John David Anglin + + PR middle-end/9986 + * c-common.c (c_common_nodes_and_builtins): Initialize target builtins + after the common builtins. + * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define. + * pa.c (TARGET_INIT_BUILTINS): Define. + (pa_init_builtins): New function. + + * pa.md (call, call_value, sibcall, sibcall_value): When sufficient + space has been allocated for the outgoing arguments, set the arg + pointer for a call emitted after virtuals have been instantiated + using the stack pointer offset, otherwise abort. + +2003-03-09 DJ Delorie + + * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert. + +2003-03-09 Richard Earnshaw + + * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2) + (arm_fix_truncdfsi2): Add missing fix in floating point mode before + conversion to integer. + * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise. + +2003-03-09 Roger Sayle + + * builtins.def: Fix typo and improve grammar. + * loop-unroll.c (decide_peel_completely): Tidy log message. + +2003-03-09 Kazu Hirata + + * config/h8300/h8300.md (*tstsi_upper_bit): New. + (*iorsi3_e2f): Likewise. + +2003-03-08 Kazu Hirata + + * config/h8300/h8300.c (h8300_and_costs): Return the number of + assembly instructions needed. + (h8300_shift_costs): Likewise. + +2003-03-09 Hans-Peter Nilsson + + * config/cris/aout.h (ENDFILE_SPEC): Undef. + + * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC + moves from here ... + * expr.c (emit_move_insn_1): ... to here. + + * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to... + (TARGET_OS_CPP_BUILTINS): New macro. + * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to... + (TARGET_OS_CPP_BUILTINS): New macro. + (CPP_PREDEFINES): Don't define. Move old definitions and... + (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to... + (TARGET_CPU_CPP_BUILTINS): New macro. + * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant + definitions and the optional __PIC__, __pic__ and + __NO_UNDERSCORES__ definitions to... + (TARGET_OS_CPP_BUILTINS): New macro. + + * flags.h (flag_leading_underscore): Declare. + + * c-opts.c (c_common_post_options): On fopen failure, return + false, not NULL. + +2003-03-08 Hans-Peter Nilsson + + * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not + config.h. + * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here. + * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef. + +2003-03-08 Neil Booth + + * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of + CPP_PREDEFINES. + * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of + CPP_PREDEFINES. + +2003-03-08 Neil Booth + + * c-common.h (c_common_init, c_common_post_options): Update. + * c-objc-common.c (c_objc_common_init): Update for new prototype. + * c-opts.c (saved_lineno): New. + (c_common_post_options, c_common_init): Update prototypes, + move call to cpp_read_main_file from latter to former. + * c-tree.h (c_ojbc_common_init): Update. + * langhooks-def.h (lhd_post_options): New. + (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update. + * langhooks.c (lhd_post_options): New. + * langhooks.h (struct lang_hooks): Update post_options and init hooks. + * toplev.c (no_backend): New. + (process_options): Call post_options hook and set main_input_filename + and input_filename here. + (lang_dependent_init, do_compile): post_options hook moved to + process_options. + * objc/objc-act.c (objc_init): Update prototype. + * objc/objc-act.h (objc_init): Update prototype. + +2003-03-08 Roger Sayle + + * emit-rtl.c (gen_lowpart): Don't attempt to load a part of + a complex or vector type, using a load in the original mode. + +2003-03-08 Jan Hubicka + + * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h. + * gt-cgraph.h: New GC file. + * cgraph.c (known_fns): New static variable. + (cgraph_node): Add the decl into varray. + +2003-03-08 Hans-Peter Nilsson + + * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives. + +2003-03-08 Richard Earnshaw + + * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa) + (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm) + (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm) + (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu. + All callers changed. + * arm.md, arm.h, arm-protos.h: Updated. + + * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS. + (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated. + * arm.c (arm_regno_class, f_register_operand): Updated. + +2003-03-08 Hans-Peter Nilsson + + * config/cris/cris.h: Remove EGCS references. + (CPP_SPEC): Remove "-$". + (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL. + +2003-03-08 Neil Booth + + * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in + preference to CPP_PREDEFINES. + +2003-03-08 Neil Booth + + * cppinit.c (cpp_finish_options): Set first_unused_line to -1. + +2003-03-08 Kazu Hirata + + * config/h8300/h8300.md (*extzv_16_8): New. + +2003-03-08 Jan Hubicka + + * c-decl.c: (finish_function): Update call of tree_inlinable_function_p. + * cgraph.h: (cgraph_local_info): Add can_inline_once + (cgraph_global_info): Add inline_once. + (cgraph_node): Add previous. + (cgraph_remove_node): New. + * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static + function. + (cgraph_optimize): Call it. + (cgraph_finalize_function): Set inlinable flags. + (cgraph_finalize_compilation_unit): Actually remove the reclaimed nodes. + (cgraph_mark_functions_to_output): Use new inlining heuristics flags. + (cgraph_expand_function): Likewise. + * cgraph.c + (cgraph_node): Put nodes into doubly linked chain. + (cgraph_remove_node): New function. + * flags.h (flag_inline_functions_called_once): Declare. + * tree-inline.c: Include cgraph.h + (inlinable_functions_p): Add extra argument to bypass limits. + (expand_call_inline): Obey cgraph flag. + * tree-inline.h (tree_inlinable_function_p): Update prototype. + +2003-03-08 Zdenek Dvorak + + * gcse.c (bypass_block, bypass_conditional_jumps): Do not create + irreducible loops. + + * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible + loops info correctly. + +2003-03-08 Eric Botcazou + + PR middle-end/7796 + * unroll.c (calculate_giv_inc): Handle constants being + loaded with LSHIFTRT. + +2003-03-07 David Edelsohn + + * config/rs6000/rs6000.c (processor_target_table): Do not disable + GP optional instructions on Power3, Power4, 620, and 630. + +2003-03-07 Kazu Hirata + + * calls.c: Fix comment formatting. + * cfgloopanal.c: Likewise. + * cfgloopmanip.c: Likewise. + * combine.c: Likewise. + * dwarf2out.c: Likewise. + * ggc-common.c: Likewise. + * langhooks.c: Likewise. + * loop-unroll.c: Likewise. + * loop.c: Likewise. + * ra-build.c: Likewise. + * sbitmap.c: Likewise. + * toplev.c: Likewise. + +2003-03-07 James E Wilson + + * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count. + +2003-03-07 Geoffrey Keating + + * objc/lang-specs.h (objective-c-header): Use .gch not .pch; + support -no-integrated-cpp. + + * c-pch.c (get_ident): Use c_language_kind and flag_objc rather + than langhooks.name. + +2003-03-07 Michael Matz + + * df.h (enum df_ref_flags.DF_REF_STRIPPED): New. + (DF_FOR_REGALLOC): New. + * df.c (df_ref_record): Set DF_REF_STRIPPED. + (read_modify_subreg_p): Simplify. + (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often. + Use DF_FOR_REGALLOC. + * ra.h (struct web): New member subreg_stripped. + (invalid_mode_change_regs): Declare. + * ra.c (invalid_mode_change_regs): New. + (init_ra): Initialize it. + * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it. + Use CANNOT_CHANGE_MODE_CLASS as ifdef guard. + (reinit_one_web, parts_to_web_1): Deal with subreg_stripped. + * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs. + Use CANNOT_CHANGE_MODE_CLASS as ifdef guard. + +2003-03-07 Richard Earnshaw + + * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2) + (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2) + (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main + machine description file from ... + * cirrus.md: ... here. + +2003-03-06 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Don't use + reg_overlap_mentioned_p. + +2003-03-06 Geoffrey Keating + + * c-pch.c: Include langhooks.h. + (IDENT_LENGTH): New. + (get_ident): New. + (pch_ident): Delete. + (pch_init): Use get_ident, IDENT_LENGTH. + (c_common_valid_pch): Likewise. Also, use actual language + in warning message. + * Makefile.in (c-pch.o): Add langhooks.h to dependencies. + + * objc/config-lang.in (gtfiles): Add objc-act.c. Remove duplicate + c-parse.in. + * objc/Make-lang.in (objc/objc-act.o): Add dependency on + gt-objc-objc-act.h. + (gt-objc-objc-act.h): New rule. + * objc/lang-specs.h: Support PCH. + * objc/objc-act.c: Include gt-objc-objc-act.h. + (objc_add_static_instance): Move num_static_inst out, mark for PCH. + (build_selector_reference_decl): Move idx out, mark for PCH. + (build_class_reference_decl): Likewise. + (build_objc_string_decl): Move *_idx out, mark for PCH. + (build_tmp_function_decl): Move xxx out, mark for PCH. + +2003-03-06 Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_binds_local_p): Consider + global functions for inlining on Darwin. + +2003-03-06 Vladimir Makarov + + * haifa-sched.c (schedule_block): Don't call reorder when sorting + is prohibited. + +2003-03-06 Neil Booth + + * Makefile.in (c-ppoutput.o): Update. + * c-common.h (init_pp_output): New. + (preprocess_file): Update. + * c-lex.c (init_c_lex): Move mbchar initialization to cpplib. + Register builtins. + * c-opts.c (c_common_init): Call init_pp_output if preprocessing. + Make call to cpp_read_main_file common to whether preprocessing + or not. Don't register builtins. + * c-ppoutput.c: Include c-pragma.h. + (setup_callbacks): Rename init_pp_output. + (preprocess_file): No longer setup callbacks or call + cpp_read_main_file. + * cpphash.h (_cpp_init_mbchar): New. + * cppinit.c (init_library): Call _cpp_init_mbchar. + * cpplex.c (_cpp_init_mbchar): New. + +2003-03-06 Roger Sayle + + * emit-rtl.c (gen_lowpart): When requesting the low-part of a + MEM, try loading the MEM into a register and taking the low-part + of that, to help CSE see the use of the MEM in its true mode. + +2003-03-05 Tom Tromey + + * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): + Define. + +2003-03-05 Nick Clifton + + * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on + operand 2. + ("*ineqbranchsi"): Likewise. + +2003-03-05 Andrew Haley + + * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete + mem_fake_push_rtx. Instead construct a SEQUENCE to show the + register store followed by a stack increment. + +2003-03-05 Chris Moller + + * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term + to inhibit saving CARRY_REGS. + + * config/stormy16/stormy16.c (xs_hi_general_operand): + added predicate to detect and error-out on out-of-range + const_ints for movhi. + * config/stormy16/stormy16.md (movhi): use + xs_hi_general_operand. + + * config/stormy16/stormy16.c (xstormy16_expand_prologue): + added a check for local vbl size overflow. + * config/stormy16/stormy16.c (xs_hi_nonmemory_operand): + added predicate to detect and error-out on out-of-range + const_ints for addhi and subhi. + * config/stormy16/stormy16.md (addhi3, addchi4, addchi5, + subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand. + + * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): + add a term to accept PRE_MODIFY addresses. + * config/stormy16/stormy16.c (xstormy16_expand_move): + add code to expand PRE_MODIFY addresses to an add followed + by a move. + +2003-03-06 Jason Merrill + + * tree-inline.c (inlinable_function_p): Revert earlier change + pending investigation. + +2003-03-06 Kazu Hirata + + * config/h8300/h8300.md (a new peephole2): New. + +2003-03-06 Jan Hubicka + + * cgraph.c (cgraph_node): Do not confuse nested functions and methods. + +2003-03-06 Zdenek Dvorak + + * dwarf2out.c (size_of_die): Compute size of external reference to + die correctly. + +2003-03-06 Hans-Peter Nilsson + + * config/mmix/mmix.md ("*movcc_expanded"): New pattern. + ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New + expanders. + +2003-03-05 Roger Sayle + + * expr.h (lang_expand_expr): Delete obsolete prototype. + +2003-03-05 Kazu Hirata + + * emit-rtl.c (gen_highpart_mode): Fix a comment typo. + +2003-03-05 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Generalize to + accept a memory operand. + +2003-03-05 Olivier Hainque + + * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'. + * config/alpha/alpha.c (print_operand, case '+'): New. + * config/alpha/alpha.md (call_osf_1_noreturn): Document and use. + (call_value_osf_1_noreturn): Likewise. + +2003-03-05 Richard Kenner + + * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN. + (expand_end_bindings): Likewise. + +2003-03-05 John David Anglin + + * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint. + (epilogue): Don't generate return_external_pic when emitting PA 2.0 + code. + +2003-03-05 Aldy Hernandez + + * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN. + + * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New. + + * hooks.c (hook_rtx_rtx_null): New. + + * hooks.h (hook_rtx_rtx_null): Protoize. + + * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro. + (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN. + + * target.h (struct gcc_target): Add dwarf_register_span. + + * dwarf2out.c (multiple_reg_loc_descriptor): New. + (one_reg_loc_descriptor): New. + (reg_loc_descriptor): Add support for values that span more than + one register. + +2003-03-05 Jan Hubicka + + * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h + * alias.c: Include cgraph.h + (mark_constant_function): Use cgraph_rtl_info. + * calls.c: Include cgraph.h + (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const + calls. + (expand_call): Use cgraph_rtl_info to set preferred stack boundary. + * cgraph.c (cgraph_rtl_info): New function. + * cgraph.h (cgraph_rtl_info): Declare + (cgraph_rtl_info): Likewise. + * function.h (struct function): Add recursive_call_emit. + * toplev.c: Include cgraph.h. + (rest_of_compilation): Set preferred_incoming_stack_boundary. + +2003-03-05 Kazu Hirata + + * config/h8300/h8300.c (output_simode_bld): Clear the + destination first if possible. + * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an + alternative. + (extzv_1_r_inv_h8300hs): Likewise. + +2003-03-05 Zdenek Dvorak + + * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New. + * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump. + * cfgloop.c (flow_loop_free): Made global. + (establish_preds): New static function. + (flow_loop_tree_node_add): Handle subloops of added loop correctly. + (get_loop_exit_edges): New. + (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags. + * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare. + * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible + loops. + * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for + removability of an edge. + (fix_irreducible_loops): New static function. + (find_path, remove_path): Add ability to remove enclosing loops. + (unloop): New. + (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP + flags. + * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag. + * loop-unroll.c (peel_loops_completely): Do not duplicate loop if + not neccessary. + (decide_peel_completely, peel_loops_completely): Allow complete peeling + of non-duplicable once rolling loops. + * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags. + +2003-03-05 J"orn Rennecke + + * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value + for align_jumps is 4. + + (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL, + use GENERAL_REGS. + +2003-03-05 Stephane Carrez + + * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return + according to va_arg type. + (EXPAND_BUILTIN_VA_ARG): Remove. + * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove. + * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove. + +2003-03-05 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary + else clauses. + +2003-03-05 Michael Matz + + * i386/i386.c (ix86_save_reg): Also test + current_function_uses_const_pool. + +2003-03-05 Michael Matz + + * unwind.h: Add the GPL exception. + * Makefile.in (USER_H): Add unwind.h. + +2003-03-05 Eric Botcazou + + PR c/9799 + * c-typeck.c (push_init_level): Add sanity check. + +2003-03-05 Jan Hubicka + + * toplev.c (rest_of_compilation): Defer RTL compilation only when + RTL inlining is done. + + * cgraphunit.c (cgraph_mark_local_functions): New local function. + (cgraph_optimize): Mark local functions. + * i386-protos.h (init_cumulative_args): Update prototype. + * i386.c (init_cumulative_args): Use register passing convention for + local functions. + + * cgraph.c (cgraph_global_info_ready): New global variable + (cgraph_local_info, cgraph_global_info): New functions. + * cgraph.h (struct cgraph_local_info, cgraph_global_info): New + structures. + (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready): + Declare. + * cgraphunit.c (cgraph_finalize_function): Set inline_many. + (cgraph_mark_functions_to_output): Use inline_many. + (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally. + (cgraph_expand_functions): Expand inline functions last. + (cgraph_optimize): Do not emit uneeded functions. + +2003-03-04 Steve Ellcey + + * expr.c (convert_modes): Check for legal hard register. + +2003-03-04 Tom Tromey + + * doc/sourcebuild.texi (Front End Directory): Document tags. + * configure: Rebuilt. + * configure.in (target_list): Added tags. + * Makefile.in (TAGS): Depend on lang.clean. Include subdirectory + TAGS files by reference. + * objc/Make-lang.in (objc.tags): New target. + +2003-03-04 Zdenek Dvorak + + * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync, + gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter, + gcov_write_string, gcov_read_unsigned, gcov_read_counter, + gcov_read_string, gcov_write_length): Modified to enable reading/ + writing of whole .da file just once. + (da_file_open, da_file_close, da_file_eof, da_file_error, + da_file_position, da_file_seek, da_file_write, da_file_read): New + functions. + (actual_da_file, actual_da_file_position, actual_da_file_length, + actual_da_file_buffer, actual_da_file_buffer_size): New static + functions. + * libgcov.c (gcov_exit): Modified to read/write the whole .da file at + just once. + + +2003-03-04 Andreas Schwab + + * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA + offset without frame pointer. + +2003-03-04 Steve Ellcey + + * expr.c (expand_expr): Call promote_mode to set unsignedp. + +2003-03-04 Daniel Jacobowitz + + * configure.in: Don't always define TARGET_SYSTEM_ROOT. + * configure: Regenerated. + * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined. + +2003-03-04 Andreas Jaeger + + * configure.in: Check for . + * configure: Regenerated. + + * config.in: Define HAVE_MEMCHECK_H. + + * ggc-common.c: Use if available instead of + . + * ggc-page.c: Likewise. + * cppfiles.c: Likewise. + +2003-03-04 Kazu Hirata + + * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths. + +2003-03-04 Eric Botcazou + + PR c/9262 + * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY. + (c_finish_case): Rechain the next statements to the SWITCH_STMT. + +2003-03-04 Jan Hubicka + + * doc/invoke.texi: Document that unit-at-a-time is enabled for -O3 + * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time + for -O3. + +2003-03-04 Nathanael Nerode + + * configure.in: Delete three unused variables. Move a variable + definition closer to its use. Simplify use_collect2 logic. Start to + organize. Simplify tests for in-tree gas and ld. + * configure: Regenerate. + +2003-03-04 Neil Booth + + * Makefile.in: Update. + * c-common.c (flag_no_line_commands, flag_no_output, + flag_dump_macros, flag_dump_includes): New. + * c-common.h (flag_no_line_commands, flag_no_output, + flag_dump_macros, flag_dump_includes, preprocess_file): New. + (init_c_lex): Update prototype. + * c-lex.c (init_c_lex): Update prototype; move some code to + c_common_init. + * c-opts.c (preprocess_file): Subsume into c_common_init. + (c_common_decode_option): Update flags. + (c_common_init): Move code from preprocess_file and init_c_lex. + (sanitize_cpp_opts): Update. + * c-ppoutput.c: New, cppmain.c almost verbatim. + * cpphash.h (struct printer): Remove. + (struct cpp_reader): Remove print. + * cpplib.h (dump_none, dump_only, dump_names, dump_definitions, + cpp_preprocess_file): Remove. + (struct cpp_options): Remove no_output, no_line_commands, dump_macros + and dump_includes. + * cppmain.c: Remove. + * doc/passes.texi: Update. + +2003-03-04 John David Anglin + + * function.c (STACK_ALIGNMENT_NEEDED): New macro. Default to 1. + (assign_stack_local_1): Perform overall stack alignment only when + STACK_ALIGNMENT_NEEDED is nonzero. + * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document. + + * pa.c (compute_frame_size): Rename fsize to size. Account for + alignment to a word boundary before general register save block. Only + account for double-word alignment before floating point register save + block if one or more are saved. Don't allocate space for %r3 when + frame pointer is needed. + (hppa_expand_prologue): Include alignment to word boundary in local + frame size. + * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports. + (STACK_ALIGNMENT_NEEDED): Define. + +2003-03-04 Kevin Buettner + + * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for + global register variables. + +2003-03-04 Alexandre Oliva + + * reload.c (reload_adjust_reg_for_mode): New function. + (subst_reloads): Call it. + (operands_match_p): Adjust registers using HARD_REGNO_NREGS. + * reload.h (reload_adjust_reg_for_mode): Declare. + * reload1.c (emit_input_reload_insns, emit_output_reload_insns): + Call it. + +2003-03-03 James E Wilson + + * optabs.c (add_equal_note): Delete SUBREG_REG use. + Fixes PR c/7872. + +2003-03-03 Kazu Hirata + + * config/h8300/h8300.md (*ixorsi3_ashift_16): New. + (*ixorsi3_lshiftrt_16): New. + (*iorsi3_ashift_16): Remove. + +2003-03-03 Kazu Hirata + + * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the + pattern. + +2003-03-03 Geoffrey Keating + + * doc/install.texi (Specific): Update entry for powerpc-darwin. + +2003-03-03 Richard Henderson + + * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0. + +2003-03-03 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete. + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete. + (rs6000_variable_issue): Do not return negative value. + (rs6000_issue_rate): Uniformly set issue rate to 1 for first + scheduling pass. + +2003-03-03 Zdenek Dvorak + + * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and + prune_unused_types calls. + +2003-03-03 Jason Merrill + + * tree-inline.c (find_builtin_longjmp_call): Save and restore + lineno and input_filename. + (find_alloca_call): Likewise. + (inlinable_function_p): Run the langhook earlier. + + * calls.c (compute_argument_addresses): Give the new MEMs a + minimum alignment of PARM_BOUNDARY. + +2003-03-03 J"orn Rennecke + + * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and + subtarget_asm_isa_spec. + (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define. + (ASM_SPEC): Define as SH_ASM_SPEC. + (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h. + Use subtarget_asm_relax_spec and subtarget_asm_isa_spec. + * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC. + (SUBTARGET_ASM_ISA_SPEC): Undef / define. + + * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops + and align_jumps if not set. + Force align_jumps to be at least 2. + When relaxing, force align_functions to be at least the maximum of + align_loops, align_jumps and 4. + * sh.c (find_barrier, barrier_align): Honour align_jumps_log. + (sh_loop_align): Honour align_loops_log. + + * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN + to check for indirect_jump_scratch. + (indirect_jump_scratch): Add second set. + * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN + when looking for indirect_jump_scratch. + Extract scratch register taking new structure of indirect_jump_scratch + into account. + (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch. + +2003-03-03 Jan Hubicka + + * calls.c (rtx_for_function_call): Take the address as an argument + (expand_call): Do not modify the expression. + + * toplev.c (rest_of_compilation): Avoid cfg_cleanup calls when not + optimizing. + +2003-03-03 Kazu Hirata + + * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to + TARGET_H8300H and TARGET_H8300S. + +2003-03-03 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-03-03 Kazu Hirata + + * config/h8300/h8300.md (*extzv_8_8): Use shorter code when + operands[0] and operands[1] are different. + +2003-03-03 Kazu Hirata + + * reload1.c (reload_cse_move2add): Remove variable success. + +2003-03-02 Kaveh R. Ghazi + + * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid + warnings. + +2003-03-02 Richard Henderson + + * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test. + * config.in, configure: Rebuild. + * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum. + * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the + paired ldtoffx and ldxmov annotations. + (load_symptr_internal1): Remove. + (load_symptr_high, load_symptr_low): New. + +2003-03-02 Neil Booth + + * c-incpath.c (add_path): Fix sysp assignment. + +2003-03-02 Kurt Garloff + + * params.def: Introduce parameter max-inline-insns-rtl for + a separate limit for the RTL inliner. + * params.h: Likewise. + * integrate.c (function_cannot_inline_p): Use it. + * toplev.c (decode_f_option): Set multiple parameters + controlling inlining with -finline-limit. + * params.def: Fix orthographic and typographic errors. + * doc/invoke.texi: Document parameters controlling inlining + and the way -finline-limit sets multiple of them. + + * tree.h (struct tree_decl): Introduce inlined_function_flag, + recording whether the function became eligible for inlining + by a compiler flag rather than the declaration. + Provide DID_INLINE_FUNC macro to access it. + * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC. + * cp/decl.c (grokfndecl): Likewise. + * toplev.c (rest_of_compilation): Likewise. + * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC. + * print-tree.c (print_node): Report it. + * params.def: Introduce new max-inline-insns-auto limit. + * params.h: Likewise. + * tree-inline.c (inlinable_function_p): Apply it to functions + with DID_INLINE_FUNC set. + * toplev.c (decode_f_option): Initialize it from -finline-limit + value. + * doc/invoke.texi: Document new parameter. + +2003-03-02 Geoffrey Keating + + * fix-header.c (read_scan_file): Don't reference simplify_path. + +2003-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable + min/max instructions by default as may result in reload errors. + +2003-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to + avoid reload problems; define split for it. + +2003-03-02 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function. + * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare. + * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register. + * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for + rotatert and rotate. + ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns. + ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert. + ("*rotrhi3_addr"): New split for shift insns on address register. + ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split. + * config/m68hc11/larith.asm (___rotlhi3): New asm function. + (___rotrhi3): Likewise. + * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them. + +2003-03-02 Neil Booth + + * toplev.c (aux_base_name): Moved from toplev.h. + (filename): Constify. + (lang_dependent_init): Don't duplicate name. + (process_options): Set aux_base_name here, not... + (do_compile): ...here. Change protoype. + (toplev_main): Move some code from do_compile. + * toplev.h: Remove aux_base_name. + +2003-03-02 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + iorxor_operator. + * config/h8300/h8300.c (print_operand): Handle 'c'. + (iorxor_operator): New. + * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator. + * config/h8300/h8300.md (*iorhi3_zext): Remove. + (*iorsi3_zexthi): Likewise. + (*iorsi3_zextsi): Likewise. + (*xorhi3_zextqi): Likewise. + (*xorsi3_zexthi): Likewise. + (*xorsi3_zextsi): Likewise. + (*ixorhi3_zext): New. + (*ixorsi3_zext_qi): Likewise. + (*ixorsi3_zext_hi): Likewise. + +2003-03-02 Neil Booth + + * c-incpath.c (remove_component_p, simplify_path): Move back to + cppfiles.c. + (remove_duplicates): Use cpp_simplify_path. + * c-incpath.h (simplify_path): Remove. + * c-lex.c: Don't include c-incpath.h. + (init_c_lex): Remove simplify_path. + * cppfiles.c (remove_component_p, cpp_simplify_path): Restore. + (find_or_create_entry, validate_pch): Revert. + +2003-03-02 Ashif Harji + + * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke + an external cpp during compilation. + (option_map): Likewise. + * objc/lang-specs.h (default_compilers): Similarly. + * doc/invoke.texi: Document -no-integrated-cpp flag. + +2003-03-02 Kazu Hirata + + * config/h8300/h8300.md (zero_extendqisi2): Change to an + expander. + (*zero_extendqisi2_h8300): New. + (*zero_extendqisi2_h8300hs): New. + (two splitters): New. + +2003-03-02 Kaveh R. Ghazi + + * fp-bit.h (float_to_usi): Fix condition wrapping prototype. + +2003-03-01 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Remove dead code. + +2003-03-01 Roger Sayle + + PR c++/9367 + * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro. + (BT_FN_INT_CONST_STRING_VALIST_ARG, + BT_FN_INT_STRING_CONST_STRING_VALIST_ARG, + BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG, + BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG, + BT_FN_INT_STRING_CONST_STRING_VAR, + BT_FN_INT_CONST_STRING_CONST_STRING_VAR, + BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types. + * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, + ATTR_NONNULL_3): Also include the nothrow attribute. + (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf, + vsnprintf, vscanf, vsscanf): Don't define attributes here. + * builtins.def (putchar, puts): Make full C89 built-ins. + (snprintf, sprintf, scanf, sscanf, vprintf, vscanf, + vsscanf, vsnprintf, vsprintf): New built-ins. + * c-common.c (c_common_nodes_and_builtins): Handle new macro + DEF_FUNCTION_TYPE_VAR_3. + + * doc/extend.texi: Document these new built-in functions. + +2003-03-01 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-03-01 Richard Earnshaw + + * predict.c (estimate_bb_frequencies): Correctly set + real_values_initialized after initialization. + +2003-03-01 Neil Booth + + * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS, + cppinit.o, cppdefault.o, fix-header): Update. + * c-incpath.c: New file. + * c-incpath.h: New file. + * c-lex.c: Include c-incpath.h. + (init_c_lex): Register path simplifier. + * c-opts.c: Include cppdefault.h and c-incpath.h. + (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc, + std_cxx_inc, quote_chain_split, add_prefixed_path): New. + (COMMAND_LINE_OPTIONS): Add more options from cpplib. + (missing_arg, c_common_decode_option): Handle them. + (c_common_post_options): Register include chains. + (print_help): Update. + * cppdefault.h (struct default include): Update. + Move some macros to ... + * cppdefault.c: ... here. + (cpp_include_defaults): Add extra field add_sysroot. + * cppfiles.c (include_file, search_from, find_or_create_entry, + cpp_included, find_include_file, remap_filename): Update for + renaming of search_path to cpp_path, and of the chain headers. + (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c. + * cpphash.h (struct search_path): Move to cpplib.h. + (struct cpp_buffer, struct cpp_reader): Update. + (_cpp_simplify_pathname): Remove. + * cppinit.c: Don't include prefix.h and cppdefault.h. + (INO_T_EQ, INO_T_COPY, path_include, append_include_chain, + remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs, + init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir, + no_pth, cpp_handle_options): Remove. + (struct pending_option): Remove chain members. + (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS, + cpp_handle_option): Update. + * cpplib.h (struct cpp_path, cpp_set_include_chains): New. + (struct cpp_options): Remove quote_include, bracket_include, + include_prefix, include_prefix_len, verbose, ignore_srcdir, + no_standard_includes, no_standard_cplusplus_includes. + (struct cpp_callbacks): Add simplify_path. + (cpp_handle_options): Remove. + * fix-header.c: Include c-incpath.h. + (read_scan_file): Update to use c-incpath functionality. + * doc/passes.texi: Update. + +2003-03-01 Kazu Hirata + + * config/h8300/h8300.c (bit_operand): Accept MEM only if it + satisfies EXTRA_CONSTRAINT 'U'. + +2003-03-01 Kazu Hirata + + * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch + register. + (*tst_extzv_memqi_1_n): Change to a splitter. + (a peephole2): Update. + +2003-03-01 Richard Earnshaw + + * predict.c (estimate_bb_frequencies): Initialize the sreal + constants once per compilation. + +2003-02-28 Richard Henderson + + * toplev.c (flag_eliminate_unused_debug_types): Enable by default. + +2003-02-28 scott snyder + + * flags.h: Add flag_eliminate_unused_debug_types. + * toplev.c: Add flag_eliminate_unused_debug_types. + (f_options): Add -feliminate-unused-debug-types. + * dwarf2out.c (struct file_table): Add emitted member. + (splice_child_die): Fix the parent pointer for the child being + spliced. + (lookup_filename): Maintain file_table.emitted array. Don't + output .file directive here. + (maybe_emit_file): (new) + (init_file_table): Set up file_table.emitted. + (dwarf2out_source_line): Use maybe_emit_file. + (dwarf2out_start_source_file): Use maybe_emit_file. + (dwarf2out_init): Use maybe_emit_file. + (prune_unused_types_walk_attribs): (new) + (prune_unused_types_mark): (new) + (prune_unused_types_walk): (new) + (prune_unused_types_prune): (new) + (prune_unused_types): (new) + (dwarf2out_finish): Call prune_unused_types if + flag_eliminate_unused_debug_types is set. + * doc/invoke.texi (Option Summary): Add + -feliminate-unused-debug-types. + (Debugging Options): Likewise. + +2003-02-28 Geoffrey Keating + + * doc/invoke.texi: Change .pch to .gch. + * cppfiles.c (open_file_pch): Likewise. + * gcc.c (default_compilers): Likewise. + +2003-02-28 Aldy Hernandez + + * floatlib.c: Remove. + +2003-02-28 Jason Merrill + + * stor-layout.c (variable_size): Leave a "minus 1" outside the + SAVE_EXPR. + +2003-02-28 David Edelsohn + + * config/rs6000/power4.md: Add compare bypass. + +2003-02-28 Jason Thorpe + + * config/netbsd.h: Update copyright years. + (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if + -pthread is specified on the command line. + +2003-02-28 Dale Johannesen + + * loop.c (struct movable): Add insert_temp, shrink savemode. + (scan_loop): Accept invariants that require copying; mark as + insert_temp. + (combine_movables): Don't combine insert_temp movables. + (move_movables): Insert copies for insert_temp movables. + Don't record the info based on regno for insert_temp's. + +2003-02-28 Joel Sherrill + + PR 9638/other + * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the + this constant defaults to 1. + +2003-02-28 Bob Wilson + + * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file. + +2003-02-28 Richard Earnshaw + + * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any + ARMv5e processor, not just for XScale. Instructions are predicable. + (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e. + +2003-02-28 Nick Clifton + + * config/arm/arm.c (note_invalid_constants): Change parameter type + from bool to int. + +2003-02-28 Kazu Hirata + + * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the + test of bit 7. + (*tst_extzv_memqi_1_n): Likewise. + (a peephole2): New. + +2003-02-28 Richard Sandiford + + * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in + #ifndef __mips16. + +2003-02-28 Jan Hubicka + + * combine.c (gen_lowpart_for_combine): Update handling of + subregs_of_mode + * flow.c (life_analysis, mark_used_regs): Likewise. + * regclass.c (subregs_of_mode): Turn into single bitmap. + (cannot_change-mode_set_regs, invalid_mode_change_p): Update + dealing with subregs_of_mode + * regs.h (subregs_of_mode): Update prototype. + +2003-02-28 Josef Zlomek + + * emit-rtl.c (set_reg_attrs_for_parm): New function. + * rtl.h (set_reg_attrs_for_parm): New exported function. + * function.c (assign_parms): Use set_reg_attrs_for_parm instead of + set_reg_attrs_from_mem. + +2003-02-27 Roger Sayle + Zack Weinberg + + * gcc.c (do_spec_1): Treat %U like %u for unique associations. + +2003-02-27 Kazu Hirata + + * reload1.c (sext_for_mode): Remove. + (reload_cse_move2add): Use trunc_int_for_mode instead of + sext_for_mode. + (move2add_note_store): Likewise. + Reset register information if we see a set in non-integer + mode. + +2003-02-27 David Edelsohn + + * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu + option. + (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630. + * config/rs6000/aix51.h: Same. + * config/rs6000/aix52.h: Same. + * config/rs6000/power4.md: Additional VMX bypasses. + +2003-02-27 Geert Bosch + + * toplev.c (print_version): Add indentation for GGC heuristics and + output after printing version information. + +2003-02-27 James E Wilson + + * combine.c (simplify_comparison): Require integral mode when + permuting SUBREG with AND. + +2003-02-27 Steve Ellcey + + * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove. + +2003-02-27 Nick Clifton + + * config/arm/arm.md (extendsfdf2): Add pattern accidentally + deleted when cirrus instructions were added. + +2003-02-27 Jason Thorpe + + * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable + POSIX thread support by default. + +2003-02-27 Roger Sayle + + * config/i386/cygwin.h: Don't include any other files directly. + * config/i386/mingw32.h: Don't include cygwin.h directly. + * config.gcc (cygwin, mingw32, uwin): Instead make these files + explicit in the tm_files variable. + +2003-02-27 Alan Modra + + * config/rs6000/rs6000.md: Add TI constant splitter. + +2003-02-26 Alexandre Oliva + + * builtins.c (purge_builtin_constant_p): Handle subreg of + constant_p_rtx too. + + * function.c (assign_stack_local_1): Truncate constant added to + frame_pointer_rtx or virtual_stack_vars_rtx for Pmode. + +2003-02-26 David Edelsohn + + * config.gcc: Add power4 to PowerPC with_cpu list. + +2003-02-26 Jan Hubicka + + * objc-act.c: (mark_referenced_methods): Fix compilation problem. + +2003-02-26 Zdenek Dvorak + + * gcov-dump.c (print_prefix): Fix signedness warning. + * gcov-io.h (struct counter_section, struct counter_section_data): New. + (struct function_info): n_arc_counts field removed, n_counter_sections, + counter_sections fields added. + (struct gcov_info): arc_counts, n_arc_counts fields removed, + n_counter_sections, counter_sections fields added. + * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple + profile sections. + * profile.h (MAX_COUNTER_SECTIONS): New. + (struct section_info): New. + (struct profile_info): count_instrumented_edges, + count_edges_instrumented_now fields removed, n_sections, section_info + fields added. + (find_counters_section): Declare. + * profile.c (struct function_list): count_edges field removed, + n_counter_sections, counter_sections fields added. + (set_purpose, label_for_tag, build_counter_section_fields, + build_counter_section_value, build_counter_section_data_fields, + build_counter_section_data_value, build_function_info_fields, + build_function_info_value, build_gcov_info_fields, + build_gcov_info_value): New static functions. + (find_counters_section): New function. + (instrument_edges, get_exec_counts, compute_branch_probabilities, + branch_prob, create_profiler): Modified to support multiple profile + sections. + +2003-02-26 John David Anglin + + * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY + is 8 * STACK_BOUNDARY. + * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port. + +2003-02-26 Michael Matz + + * ra-colorize.c (merge_moves): Fix list handling. + +2003-02-26 Nick Clifton + + * config/arm/arm.c (is_load_address): Rename to... + (arm_memory_load_p) ... this and make it check for SUBREGs and + constant loads that will be converted into loads from the + minipool. + (is_cirrus_insn): Rename to ... + (arm_cirrus_insn_p): ... this, for consistency. Replace test + of CIRRUS_NO with CIRRUS_NOT. + (cirrus_reorg): Use renamed functions. + (note_invalid_constants): Change from a void function to bool. + Add an extra parameter, saying whether the fixups should be + pushed. Return true if fixups are needed. + (arm_reorg): Use renamed functions. Use INSN_P. Replace test + of CIRRUS_NO with CIRRUS_NOT. + * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that + other floating point co-processors can also affect this. + * config/arm/arm.md ("type" attribute): Add mav_farith and + mav_dmult. Replace references to "cirrus_type" attribute with + "type". + * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete. + ("cirrus_type" attribute): Delete - use "type" instead. + ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with + 'normal'. + +2003-02-25 Jan Hubicka + + * objc-act.c: Include cgraph.h + (mark_referenced_methods): New function. + (objc_init): Call it. + * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set. + + * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time + mode. + + * optabs.c (expand_fix): Do not widen the input operand. + + * expr.c (emit_group_store): Fix crash when converting single + register into complex register. + + * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h + * alias.c: Include timevar.h + (init_alias_analysis): Set timevar + * jump.c: Include timevar.h + (rebuild_jump_labels): Set timevar + * regcalss.c: Include timevar.h + (reg_scan): Set timevar + * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New + +2003-02-26 Zdenek Dvorak + + * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes. + + * Makefile.in (loop-unroll.o): New. + * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New. + (unroll_and_peel_loops): Declare. + * alias.c (init_alias_analysis): Flag_unroll_loops renamed to + flag_old_unroll_loops. + * loop.c (loop_invariant_p): Ditto. + * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to + flag_old_unroll_all_loops. + * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops. + (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops. + * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed. + (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES, + PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES, + PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES, + PARAM_MAX_ONCE_PEELED_INSNS): New. + * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New. + (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller + instead of old one. + (flag_peel_loops): New. + (lang_independent_options): The new flags added. + (rest_of_compilation): Call new unroller. + (process_options): Setup flags for coexistence of old and new unroller. + * doc/invoke.texi: Document new options. + * doc/passes.texi: Document new unroller pass. + +2003-02-26 David Billinghurst + + * fixinc/fixincl.x: Regenerate + +2003-02-26 Josef Zlomek + + * function.c (assign_parms): Set reg_attrs for parameters passed in + registers. + +2003-02-26 Alan Modra + + PR target/9681 + * tlink.c (scan_linker_output): Drop leading '.' from symbol names. + +2003-02-25 David Edelsohn + + * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine + pseudo-op. + +2003-02-25 Roger Sayle + + * combine.c (combine_simplify_rtx, simplfy_comparison): Use CC0_P. + * cse.c (invalidate_skipped_set): Likewise. + * integrate.c (subst_constants): Likewise. + * jump.c (reversed_comparison_code_parts): Likewise. + * loop.c (canonicalize_condition): Likewise. + * simplify-rtx.c (simplify_relational_operation): Likewise. + +2003-02-25 Roger Sayle + + * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete. + (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit): Use + the appropriate macro to define built-in function. + (fmod,fmodf,fmodl): New built-in functions. + + * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins. + +2003-02-25 Richard Henderson + + * config/i386/i386.c (function_arg): Pass variable sized + structures correctly on the stack. + +2003-02-25 Kazu Hirata + + * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS + does not reduce the cost of SET. + +2003-02-25 Franz Sirl + + PR target/9732 + * config/rs6000/rs6000.c (first_reg_to_save): Handle + PIC_OFFSET_TABLE_REGNUM for -fPIC too. + (rs6000_emit_prologue): Likewise. + (rs6000_emit_epilogue): Likewise. + * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make + PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC. + +2003-02-25 Richard Henderson + + * real.c (real_to_integer2): Force overflow result only for + unsigned overflow. + +2003-02-25 Kazu Hirata + + * gcse.c (cprop_jump): Revert the 2003-02-23 change. + +2003-02-25 Vladimir Makarov + Richard Henderson + + * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when + there is no similar load. + +2003-02-25 Vladimir Makarov + Richard Henderson + + * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from + sched-rgn.c. + (add_forward_dependence): New function prototype. + + * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to + sched-init.h. + (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move + them to haifa-sched.c. + + * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp, + haifa_classify_insn): Move them from sched-rgn.c. + + * sched-deps.c (add_dependence): Return flag of creating a new + entry. + (add_forward_dependence): New function. + (compute_forward_dependences): Use the function. + + * sched-ebb.c (earliest_block_with_similiar_load): New function. + (add_deps_for_risky_insns): New function. + (schedule_ebb): Call the function. + +2003-02-20 Aldy Hernandez + + * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to + TARGET_VECTOR_OPAQUE_P. Document accordingly. + + * testsuite/gcc.dg/20030218-1.c: Check that initialization of + opaque types fail. + + * c-typeck.c (comptypes): Change call to vector_types_compatible + to vector_opaque_p. + (convert_for_assignment): Call vector_opaque_p instead of + vector_types_compatible. + (really_start_incremental_init): Disallow initialization of opaque + types. + + * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE. + Define TARGET_VECTOR_OPAQUE_P. + (TARGET_INITIALIZER): Same. + + * target.h (struct gcc_target): Remove vector_types_compatible. + Add vector_opaque_p. + + * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible): + Remove. + (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is + a vector type. Change return type to bool. + (TARGET_VECTOR_TYPES_COMPATIBLE): Remove. + (TARGET_VECTOR_OPAQUE_P): Define. + + * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p + target hook. + Include target.h. + (cp_parser_init_declarator): Fix typo in function comments. + +2003-02-25 Jan Hubicka + + * Makefile.in (lcm.o): Add dependency on function.h + * lcm.c (function.h): Include. + * i386.c (machine_function, ix86_stack_locals, + * ix86_save_varrargs_registers) : Move to + ... + * i386.h (machine_function, ix86_stack_locals, + ix86_save_varrargs_registers): ... here; add optimize_mode_switching + (ix86_optimize_mode_switching): New. + * i386.md (fix patterns): Set ix86_optimize_mode_switching + +2003-02-25 Nick Clifton + + * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo. Name + of fourth arg is 'fndecl' not 'indirect'. Update comment + describing the function's parameters. + +2003-02-24 Jan Hubicka + + * combine.c (simplify_shift_const): Fix previous patch. + +2003-02-24 Jeff Law + + * i386.md (testdi_1_rex64): Discourage reload from using the %eax + alternative. + (testsi_1, testhi_1, testqi_1): Likewise. + +2003-02-24 Rainer Orth + + * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename + __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX. + * doc/extend.texi (Tru64 Pragmas): Reflect this. + + * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma + extern_prefix support for Tru64 UNIX V5 . + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New + testcase. + Fixes PR c/5059, c/6126, other/9671. + +2003-02-24 Roger Sayle + + * gcc.c (do_spec_1) ['{']: Handle pending argument upon return + from handle_braces in "%{...}". + +2003-02-24 Kaz Kojima + + * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define. + (prepare_move_operands): Handle TLS operands. + (tls_symbolic_operand): New. + (nonpic_symbol_mentioned_p): Handle TLS UNSPECs. + (legitimize_pic_address): Do nothing for the TLS symbol. + (sh_encode_section_info): Handle TLS case. + (sh_strip_name_encoding): Drop TLS encoding. + * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype. + * config/sh/sh.h (SH_TLS_ENCODING): Define. + (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise. + (ASM_OUTPUT_LABELREF): Drop TLS encoding. + (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs. + * config/sh/sh.md: Define TLS UNSPEC constants. + (type): Add tls_load. + ("tls_global_dynamic", "tls_local_dynamic"): New insns. + ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders. + ("tls_initial_exec"): New insn. + ("sym2TPOFF", "symTPOFF2reg"): New expanders. + ("load_gbr"): New insn. + + * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases. + * configure: Regenerate. + +2003-02-24 Alan Modra + + PR 9297, PR 9722 + * calls.c (store_one_arg): Revert 1999-02-16 change. Revert + 2000-12-17 change. Pass EXPAND_STACK_PARM to expand_expr. + * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM. + (enum block_op_methods): Reorder for better store_expr optimization. + * expr.c (store_expr): Test bit 1 of "want_value" for call param + stores, test bit 0 for original want_value meaning. Pass + BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set. Adjust + recursive calls, and calls to expand_param. + (expand_expr): Handle EXPAND_STACK_PARM modifier. When cse + expected, set target to 0 rather than to subtarget. Formatting. + +2003-02-23 Kazu Hirata + + * gcse.c (cprop_jump): Use the REG_EQUAL note if available. + +2003-02-23 Kaveh R. Ghazi + + * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document + new default behavior. + * ggc-common.c: Include sys/resource.h. + (ggc_rlimit_bound): New function. + (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update + defaults to account for rlimits. + +2003-02-22 Richard Henderson + + * i386.c, i386.h (TUNEMASK): Rename from CPUMASK. + +2003-02-22 Kelley Cook + + * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu. + (ix86_tune_string): Rename from ix86_cpu_string. + +2003-02-22 Kelley Cook + + * config/i386/i386.c: Replace "mcpu" with "mtune". + * config/i386/i386.h (TARGET_OPTIONS): Likewise. + (CC1_CPU_SPEC): Likewise. New warning for "-mcpu". + * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu" + with "mtune". Note that "mcpu" is a deprecated synonym for "mtune". + +2003-02-23 Andreas Schwab + + * config.gcc: Delete references to m68k/t-linux and + m68k/t-linux-aout. + * config/m68k/t-linux, config/m68k/t-linux-aout: Removed. + +2003-02-22 Jan Hubicka + + * toplev.c (rest_of_compilation): Apply fotgotten hunk + of track scheduling patch. + +2003-02-22 Jan Hubicka + + * config/linux.h (TARGET_HAS_F_SETLKW): Define. + * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise + +2003-02-22 Jan Hubicka + + * c-decl.c (c_expand_body_1): Fix. + +2003-02-22 Jan Hubicka + + * expmed.c (expand_divmod): Undo sign extensions for unsigned operands + + * cfgcleanup.c (try_forward_edges): Don't check loop structures + when not optimizing. + (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns + when not expensive. + * toplev.c (rest_of_compilation): Duplicate loop headers only when + optimizing; Delete trivially dead insns early; fix optimize check. + + * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add + dependency on cgraph.h + * c-decl.c: Include cgraph.h + (finish_function): Update call of tree_inlinable_function_p. + * c-objc-common.c: Include cgraph.h + * cgraph.h: New file. + * cgraphunit.c: New file. + * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h + (cgraph_nodes, cgraph_n_nodes): Globalize. + (cgraph_finalize_function, cgraph_finalize_compilation_unit + cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node): + Move into cgraphunit.c + * tree-inline.c: Include cgraph.h + * tree-inline.c: Include cgraph.h + +2003-02-22 Josef Zlomek + + * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG + for copying a register. + +2003-02-22 Steven Bosscher + + PR other/3782 + * toplev.c (process_options): If flag_detailed_statistics is set, + then set time_report as well. + + PR c/8828 + * jump.c (never_reached_warning): Don't fall through BARRRIER + insns. Update comments to reflect what the function really does. + +2003-02-21 Roger Sayle + + * fold-const.c (omit_one_operand): No longer static. + * tree.h (omit_one_operand): Prototype here. + (div_and_round_double): Keep fold-const.c prototypes together. + * builtins.c (builtin_mathfn_code): Handle binary built-in + funtions, such as "pow" and "atan2". + (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0. + Simplify optimizations using "type" the builtin's return type. + +2003-02-22 Hans-Peter Nilsson + + * config/cris/cris.c (cris_rtx_costs): Blockify dangling else. + Fix functionalization typo. + + * regmove.c (optimize_reg_copy_1): Do not replace a hard register + in an asm. + +2003-02-21 Kaveh R. Ghazi + + * Makefile.in (ggc-common.o): Depend on $(PARAMS_H) + * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update + documentation. + * ggc-common.c: Include params.h + (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic, + init_ggc_heuristics): New functions. + * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic, + init_ggc_heuristics): Prototype. + * toplev.c (print_version): Output GGC heuristics. + (parse_options_and_default_flags): Call init_ggc_heuristics. + +2003-02-22 Jan Hubicka + + * i386.c (def_builtin): Special case 64bit builtins. + (MASK_SSE164, MASK_SSE264): New constants. + (builtin_description): Add 64bit builtins. + (ix86_init_mmx_sse_builtins): Likewise. + * i386.h (enum ix86_builtins): Likewise. + * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq, + sse2_movq2dq_rex64, sse2_movsq2q_rex64): New. + (sse2_movq2dq, sse2_movsq2q): Disable for 64bit. + * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New. + * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss, + _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x, + _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New. + +2003-02-22 Jan Hubicka + + * i386.c (builtin_description): Add __builtin_ia32_paddq and + __builtin_ia32_psubq. Fix __builtin_ia32_paddq128 + and __builtin_ia32_psubq128. + * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New. + * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'. + (mmx_adddi3, mmx_subdi3): New. + * mmintrin.h (_mm_add_si64, _mm_sub_si64): New. + * xmmintrin.h (_mm_movepi64_pi64): New. + (_mm_add_epi64, _mm_sub_epi64): fix. + (_mm_mul_pu16): Rename to... + (_mm_mul_su32): ... this one. + + * builtins.c (expand_builtin_expect): Do not predict + flag_guess_branch_prob is not set. + * c-semantics.c (expand_stmt): Likewise. + * predict.c (predict_insn): Likewise. + * stmt.c (expand_continue_loop): Likewise. + * toplev.c (rest_of_compilation): Do not call + note_prediction_to_br_prob and note_prediction_to_br_prob + when not optimizing. + +2003-02-21 Jan Hubicka + + * cfgrtl.c (commit_edge_insertions): Call + find_many_sub_basic_block only when some code has been emitted. + (commit_edge_insertions_watch_calls): Bring into sync with + commit_edge_insertions + +2003-02-21 J"orn Rennecke + + * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class. + + * sh.md (binary_sf_op): Use extra constant operand instead of + negating constant operand 4. + * sh.c (sh_expand_binop_v2sf): Supply it. + +2003-02-21 Zack Weinberg + + * cpphash.h (struct lexer_state): Add directive_wants_padding. + * cpplib.c (_cpp_handle_directive): Set directive_wants_padding + for directives of type INCL. + (glue_header_name, parse_include): Use get_token_no_padding. + * cppmacro.c (replace_args): If directive_wants_padding, + provide padding tokens. + +2003-02-21 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-02-21 Jan Hubicka + + * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting. + (commit_edge_insertions): Call find_many_sub_basic_blocks + + * reg-stack.c (convert_regs): Cleax aux for blocks. + +2003-02-21 Jan Hubicka + + * toplev.c (parse_options_and_default_flags): Undo accidental commit. + +2003-02-21 Glen Nakamura + + PR optimization/8613 + * builtins.c (expand_builtin): Emit postincrements before expanding + builtin functions. + +2003-02-21 Ben Elliston + + PR other/5634 + * doc/install.texi (Configuration): Explain using $HOME instead of + the ~ metacharacter when referring to home directories. + +2003-02-20 Alexandre Oliva + + * configure.in (TARGET_SYSTEM_ROOT): Set default to + ${exec_prefix}/${target_alias}/sys-root. Match explicit + '${exec_prefix}' (in addition to the expansion thereof) as + relocatable. + * configure: Rebuilt. + +2003-02-20 Kazu Hirata + + * config/h8300/h8300.md (addhi3_incdec): Change the name to + *addhi3_incdec. + (addsi3_incdec): Change the name to *addsi3_incdec. + +2003-02-20 Roger Sayle + + * explow.c (force_reg): Avoid useless REG_EQUAL notes. + +2003-02-20 Toon Moene + + PR fortran/9038 + * c-opts.c (sanitize_cpp_opts): Add Fortran front end + options to be ignored. + (c_common_decode_option): Ignore them when preprocessing. + +2003-02-20 Jan Hubicka + + * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New + global variables. + (lang_independent_options): Add -fsched2-use-superblocks + -fsced2-use-traces. + (rest_of_compilation): Deal with it. + * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks): Declare. + * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces): + Declare. + * rtl.h (reg_to_stack): Update prototype. + * reg-stack.c (reg_to_stack): Return when something has changed; + update liveness when executing after superblock scheduling. + + * combine.c (simplify_shift_const): Simplify few special cases + into constants. + +2003-02-20 David Edelsohn + + * config/rs6000/rs6000.md: (attr "type"): Add fast_compare. + (add.,subf.,neg.): Change attribute to fast_compare. + All DFA descriptions updated. + +2003-02-20 Nathan Sidwell + + Change base class access representation. + * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED, + TREE_VIA_PRIVATE): Remove. + (BINFO_BASEACCESSES): New binfo elt. + (BINFO_BASEACCESS): New accessor. + (BINFO_ELTS): Increase. + (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New. + (access_public_node, access_protected_node, + access_private_node): New global nodes. + * tree.c (build_common_tree_nodes_2): Initialize access nodes. + * dbxout.c (dbxout_type): Adjust. + * dwarf2out.c (gen_inheritance_die): Add access parameter. + (gen_member_die): Adjust. + * dwarfout.c (output_inheritance_die): ARG is array of two trees. + (output_type): Adjust. + * tree-dump.c (dequeue_and_dump): Adjust binfo dumping. + + Change base class access representation. Share virtual base + binfos. + * cp/call.c (build_special_member_call): Remove binfo_for_vbase + call. + * cp/class.c (build_base_path): Likewise. + (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use. + (build_secondary_vtable): Remove FOR_TYPE arg. Adjust. + (make_new_vtable): Adjust. + (force_canonical_binfo_r): Delete. + (force_canonical_binfo): Delete. + (mark_primary_virtual_base): Delete. + (dfs_unshared_virtual_bases): Delete. + (mark_primary_bases): Adjust. + (maybe_warn_about_overly_private_class): Adjust. + (dfs_base_derived_from): Delete. + (base_derived_from): Follow the inheritance chain. + (struct find_final_overrider_data): Add vpath member. + (dfs_find_final_overrider): Adjust. + (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New. + (find_final_overrider): Adjust. + (update_vtable_entry_for_fn): Adjust. + (modify_all_vtables): Adjust. + (walk_subobject_offsets): Adjust. + (layout_nonempty_base_or_field): Adjust. + (layout_empty_base): Remove last parameter. Adjust. + (build_base_field): Adjust. + (build_base_fields): Adjust. + (propagate_binfo_offsets): Remove last parameter. Adjust. + (dfs_set_offset_for_unshared_vbases): Delete. + (layout_virtual_bases): Adjust. + (finish_struct_1): Adjust. + (init_class_processing): Don't init access nodes. + (dfs_get_primary_binfo): Delete. + (get_primary_binfo): Adjust. + (dump_class_hierarchy_r): Remove most derived arg, add IGO + parameter. Adjust. + (dump_class_hierarchy): Adjust. + (finish_vtbls): Adjust. + (get_original_base): Delete. + (build_vtt_inits): Adjust. + (dfs_build_secondary_vptr_vtt_inits): Adjust. + (dfs_ctor_vtable_bases_queue_p): Adjust. + (build_ctor_vtbl_group): Adjust. + (dfs_accumulate_vtbl_inits): Adjust. + (build_vtbl_initializer): Adjust. + (build_vbase_offset_vtbl_entries): Adjust. + (add_vcall_offset_vtbl_entries_1): Adjust. + * cp/cp-tree.h (CPTI_ACCESS_*): Remove. + (access_*_node): Remove. + (CANONICAL_BINFO): Delete. + (BINFO_UNSHARED_MARKED): Remove. + (BINFO_MARKED): Set LANG_FLAG_0 directly. + (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete. + (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly. + (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED): + Delete. + (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly. + (SET_BINFO_NEW_VTABLE_MARKED): Adjust. + (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED): + Delete. + (BINFO_DEPENDENT_BASE_P): New. + (dfs_walk, dfs_walk_real): Queue function takes derived binfo and + index. + (markedp, unmarkedp): Adjust. + (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p, + dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp, + find_vbase_instance, binfo_for_vbase): Delete. + (copied_binfo, original_binfo): Declare. + (finish_base_specifier): Add virtual_p arg. + (unshare_base_binfos): Delete. + (copy_base_binfos): Declare. + (reverse_path): Delete. + * cp/decl.c (xref_basetypes): Access and virtuality passed + differently. Don't copy direct base binfos here. Call + copy_base_binfos. + * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust. + (initialize_vtbl_ptrs): Adjust. + (expand_member_init): Adjust. + * cp/parser.c (cp_parser_base_specifier): Adjust. + * cp/pt.c (instantiate_class_template): Adjust. + (get_template_base_recursive): Adjust. + * cp/rtti.c (get_pseudo_ti_init): Adjust. + (get_pseudo_ti_desc): Adjust. + * cp/tree.c (unshare_base_binfos): Rename to ... + (copy_base_binfos): ... here, reimplement. + (make_binfo): Set BINFO_DEPENDENT_BASE_P. + (reverse_path): Remove. + * cp/typeck.c (get_delta_difference): Adjust error messages. + * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust. + * cp/search.c (lookup_base_r): Adjust. + (dynamic_cast_base_recurse): Adjust. + (canonical_binfo): Remove. + (dfs_canonical_queue): Remove. + (dfs_assert_unmarked_p): Remove. + (assert_canonical_unmarked): Remove. + (shared_marked_p, shared_unmarked_p): Remove. + (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE. + (dfs_access_in_type): Adjust. + (access_in_type): Adjust. + (dfs_accessible_queue_p): Adjust. + (dfs_accessible_p): Adjust. + (is_subobject_of_p_1, is_subobject_of_p): Remove. + (struct lookup_field_info): Remove from_dep_base_p field. + (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P. + (lookup_field_r): Remove dependent base code. + (lookup_member): Likewise. + (dfs_walk, dfs_walk_real): Add access arg to queue fn. + (dfs_unmarked_real_bases_queue_p): Remove. + (dfs_marked_real_bases_queue_p): Remove. + (dfs_skip_vbases): Remove. + (dfs_get_pure_virtuals): Adjust. + (markedp, unmarkedp): Adjust. + (marked_vtable_pathp, unmarked_vtable_pathp): Remove. + (marked_pushdecls_p, unmarked_pushdecls_p): Adjust. + (dfs_unmark): Adjust. + (dfs_get_vbase_types):Remove. + (dfs_build_inheritance_graph_order): Remove. + (get_vbase_types): Remove + (dfs_find_vbase_instance): Remove. + (find_vbase_instance): Remove. + (dfs_debug_unmarkedp): Adjust. + (dependent_base_p): Remove. + (dfs_push_type_decls): Adjust. + (dfs_push_decls): Adjust. + (dfs_no_overlap_yet): Adjust. + (copied_binfo): New function. + (original_binfo): New function. + (binfo_for_vbase): Remove. + + Change base class access representation. + * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC. + (add_interface_do): Likewise. + +2003-02-20 David Edelsohn + + * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. + * config/rs6000/power4.md (power4-store,power4-vecstore): New + insn reservations. + (power4-fpstore): Compact. + +2003-02-20 Kazu Hirata + + * config/h8300/h8300.md (*iorsi3_w): New. + +2003-02-20 Josef Zlomek + + * combine.c (distribute_notes): Kill REG_EXEC_COUNT. + * rtl.c (reg_note_name): Likewise. + * rtl.h (enum reg_note): Likewise. + * doc/invoke.texi: Likewise. + * doc/rtl.texi: Likewise. + +2003-02-20 Josef Zlomek + + * bb-reorder.c (find_traces_1_round): Fix comment typo. + +2003-02-19 Roger Sayle + + * fold-const.c (fold_real_zero_addition_p): Don't fold a zero + addition in the presence of signaling NaNs. + +2003-02-19 Krister Walfridsson + + * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo. + +2003-02-19 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Optimize or.l when + ORing with 0xffff??00 with the highest bit of the ?? part set. + (compute_logical_op_length): Update. + (compute_logical_op_cc): Likewise. + +2003-02-19 Josef Zlomek + + * bb-reorder.c (find_traces_1_round): Fixed condition for small + destination block with multiple predecessors. + (connect_traces): Check whether the block is a start of trace. + +2003-02-19 Jan Hubicka + + * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS + * function.c (assign_params): Likewise. + * arm-protos.h (arm_init_cumulative_args): Update prototype. + * arm.c (arm_init_cumulative_args): Update function. + * arm.h (INIT_CUMULATIVE_ARGS): Update. + * avr-protos.h (init_cumulative_args): Update prototype. + * avr.c (init_cumulative_args): Update function. + * avr.h (INIT_CUMULATIVE_ARGS): Update. + * d30v-protos.h (d30v_init_cumulative_args): Update prototype. + * d30v.c (d30v_init_cumulative_args): Update function. + * d30v.h (INIT_CUMULATIVE_ARGS): Update. + * frv-protos.h (frv_init_cumulative_args): Update prototype. + * frv.c (frv_init_cumulative_args): Update function. + * frv.h (INIT_CUMULATIVE_ARGS): Update. + * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS. + * pa.h (INIT_CUMULATIVE_ARGS): Update. + * sparc-protos.h (init_cumulative_args): Update prototype. + * sparc.c (init_cumulative_args): Update function. + * sparc.h (INIT_CUMULATIVE_ARGS): Update. + * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation. + +2003-02-19 Kazu Hirata + + * config/h8300/h8300.md (*iorsi3_two_qi_sext): New. + (*ashiftsi_sextqi_7): Likewise. + +2003-02-19 Rainer Orth + + * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for + ISO C99 and C++. + + * fixinc/inclhack.def (irix___restrict): Don't change __restrict + for C++ on IRIX 6.5.1[89]. + * fixinc/tests/base/internal/sgimacros.h: New file. + + * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99. + * fixinc/tests/base/internal/wchar_core.h: New file. + + * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78] + socklen_t definition. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/sys/socket.h: New file. + Fixes PR libgcj/9652. + +2003-02-19 Jan Hubicka + + * i386.md (movsfcc_1, movdfcc_1): Fix constrains. + +2003-02-19 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Initialize + align_jumps_max_skip and align_loops_max_skip. + +2003-02-19 Thierry Moreau + + * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not + test size if named section. + +2003-02-19 Daniel Jacobowitz + + * expr.c (expand_expr): Use gen_int_mode for the argument + to gen_rtx_MULT. + +2003-02-19 Jan Hubicka + + * i386.md (cosxf2): Fix conditional. + +2003-02-19 Kazu Hirata + + * config/h8300/h8300.md (extendqisi2): Change to an expander. + (*extendqisi2_h8300): New. + (*extendqisi2_h8300hs): Likewise. + +2003-02-19 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype for + split_adds_subs. Remove the prototypes for + const_int_le_2_operand and const_int_le_6_operand. + * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec. + (const_int_le_2_operand): Remove. + (const_int_le_6_operand): Likewise. + * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries + for const_int_le_2_operand and const_int_le_6_operand. + * config/h8300/h8300.md: Update all uses of split_adds_subs. + (a peephole2): New. + +2003-02-18 Jan Hubicka + + * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill. + (cgraph_expand_function): Rewrite. + +2003-02-18 Matt Austern + + * toplev.c, langhooks.c, langhooks-def.h: Move + write_global_declarations from toplev.c to langhooks.c. + +2003-02-18 Kazu Hirata + + * config/h8300/h8300.c (general_operand_src): Always check + MODE. + (general_operand_dst): Likewise. + +2003-02-18 Roger Sayle + + * convert.c (convert_to_real): Also optimize (float)log(x) into + logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}. + +2003-02-18 Kaz Kojima + + * config/sh/sh.c (unspec_caller_rtx_p): New. + (sh_cannot_copy_insn_p): New. + (TARGET_CANNOT_COPY_INSN_P): New. + +2003-02-18 Richard Henderson + + * c-common.c (handle_used_attribute): Accept static data too. + +2003-02-18 Nick Clifton + Aldy Hernandez + + * testsuite/gcc.dg/20030218-1.c: New. + + * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE. + + * target-def.h (TARGET_INITIALIZER): Add + TARGET_VECTOR_TYPES_COMPATIBLE. + (TARGET_VECTOR_TYPES_COMPATIBLE): New macro. + + * target.h (struct gcc_target): Add field vector_types_compatible. + + * c-typeck.c (comptypes): Take into account + TARGET_VECTOR_TYPES_COMPATIBLE. + (convert_for_assignment): Same. + + * config/rs6000/rs6000.c (is_ev64_opaque_type): New. + (rs6000_spe_vector_types_compatible): New. + (TARGET_VECTOR_TYPES_COMPATIBLE): Define. + +2003-02-19 Andreas Schwab + + * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H). + * toplev.c: Include langhooks-def.h. + +2003-02-18 Chris Demetriou + + * config/mips/mips.h (enum processor_type): Sort entries + alphabetically. + * config/mips/mips.md (define_attr cpu): Sync with processor_type + enum values, including adding entries that were missing. + +2003-02-18 J"orn Rennecke + + * sh.c (calc_live_regs): Also check GET_CODE when checking if + initial value for PR_REG is still the PR_REG register. + +2003-02-18 Jim Wilson + + * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second + instruction in output template. + (bsp_value): Change output template from string to C code, add %, + before actual instruction. + (flushrs): Mark as not predicable. + +2003-02-18 Krister Walfridsson + + * inclhack.def (netbsd_bogus_semicolon): New fix. + * fixincl.x: Rebuilt. + * tests/base/ctype.h: Update. + +2003-02-18 Roger Sayle + + * fold-const.c (negate_expr_p): New function to determine whether + an expression can be negated cheaply. + (fold) [MINUS_EXPR]: Use it to determine whether to transform + -A - B into -B - A for floating point types. + +2003-02-18 Roger Sayle + + * sbitmap.c (sbitmap_resize): New function. + * sbitmap.h (sbitmap_resize): Prototype here. + * recog.c (split_all_insns): Use sbitmap_resize. + +2003-02-18 Kazu Hirata + + * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the + insn length. + (extendqisi2): Likewise. + (*extendhisi2_h8300): Likewise. + +2003-02-18 Matt Austern + + * langhooks.h, langhooks-def.h: introduce new langhook, + final_write_globals, with write_global_declarations as default. + * toplev.c: Move invocation of wrapup_global_declarations from + compile_file to new function, write_global_declarations. Change + compile_file to use final_write_globals hook. Change + wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is + conditional. + +2003-02-18 John David Anglin + + * pa.md: Correct and enhance comment. + +2003-02-18 Geoffrey Keating + + * gcc.c (validate_switches): Don't scan past closing '}'. + +2003-02-18 Ben Elliston + + PR c++/1607 + * doc/extend.texi (Function Attributes): Document the effect of + the C++ "this" parameter on the counting of arguments for the + "format" and "format_arg" attributes. + +2003-02-17 Aldy Hernandez + + * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg. + (__ev_stdw): Same. + (__ev_stdh): Same. + +2003-02-17 Jan Hubicka + + * recog.c (split_all_insns): Fix memory overflow. + +2003-02-17 Kazu Hirata + + * config/h8300/h8300.md (cmpqi): Remove mode from compare. + (cmphi): Likewise. + (*cmphi_h8300): Likewise. + (*cmphi_h8300hs): Likewise. + (cmpsi): Likewise. + (7 peephole2): Likewise. + +2003-02-16 Jan Hubicka + + * c-typeck.c (build_c_cast): Fold constant variables into + initial values. + +2003-02-16 Gerald Pfeifer + + * doc/install.texi (Specific): Fix link for m68k-att-sysv. + (Binaries): Ditto for Sinix/Reliant Unix. + +2003-02-16 Richard Earnshaw + + * arm.c (arm_reload_in_hi): Ensure that the scratch register does + not overlap the final result register. + +2003-02-16 Arend Bayer + Richard Henderson + + PR c/8068 + * fold-const.c (extract_muldiv_1): Rename from extract_muldiv; + rearrange mult arguments for less recursion. + (extract_muldiv): New. Prevent runaway recursion. + +2003-02-16 Danny Smith + + * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set + MASK_ALIGN_DOUBLE. + +2003-02-15 Roger Sayle + + * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns + to load mathematical constants on K6, Athlon, Pentium 4 and PPro. + (ext_80387_constants_table): Global table of 80387 special constants + guarded by ext_80387_constants_init flag when not initialized. + (init_ext_80387_constants): New function to initialize this table. + (standard_80387_constant_p): Extend to recognize extra 80387 + constants, in XFmode, on processors where this is a win. + (standard_80387_constant_opcode): New function to return the + opcode associated with standard_80387_constant_p. + (standard_80387_constant_rtx): New function to return the XFmode + CONST_DOUBLE associated with standard_80387_constant_p. + (ix86_rtx_costs): Give the new constants the same cost as 1.0. + + * config/i386/i386-protos.h (standard_80387_constant_opcode): + Prototype here. + (standard_80387_constant_rtx): Likewise. + + * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger, + *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer, + *movtf_integer): Simplify using new standard_80387_constant_opcode. + +2003-02-15 Geoffrey Keating + + * doc/invoke.texi (Optimize Options): Correct @option syntax. + +2003-02-15 Richard Henderson + + * Makefile.in (cfglayout.o): Depend on TARGET_H. + * cfglayout.c: Include target.h. + (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p. + * target-def.h (TARGET_CANNOT_COPY_INSN_P): New. + * target.h (struct gcc_target): Add cannot_copy_insn_p. + + * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New. + (TARGET_CANNOT_COPY_INSN_P): New. + (override_options): Revert 2003-02-08 hack. + +2003-02-15 Richard Henderson + + * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs. + (bypass_conditional_jumps): Accept computed_jump_p insns as well. + +2003-02-15 David Edelsohn + + * config/rs6000/rs6000.h (processor_type): Add PPC440. + * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, + TARGET_SCHED_VARIABLE_ISSUE): Define. + (rs6000_use_dfa_pipeline_interface): New function. + (rs6000_multipass_dfa_lookahead): New Function. + (rs6000_variable_issue): New function. + (rs6000_adjust_cost): Add CMP and DELAYED_CR types. + (rs6000_issue_rate): Add PPC440. + * config/rs6000/rs6000.md (unspec list): Correct typo. + (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u, + store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u, + cmp, delayed_cr, mfcr, mtcr. + (automata_option): Set "ndfa". + (extendMMNN2): Update attributes. + (movcc_internal1): Discourage move to non-cr0. Update + attributes. + (movMM_update): Update attributes. + (cmpMM_internal): Update attributes. + (sCC CR materialization): Update attributes. + (branch patterns): Do not discourage non-cr0. + (cr logical patterns): Prefer destructive register allocation. + Update attributes. + (movesi_from_cr): Update attribute. + (mtcrf_operation): Update attribute. + (mtcrfsi): Update attribute. + * config/rs6000/40x.md: New file. + * config/rs6000/603.md: New file. + * config/rs6000/6xx.md: New file. + * config/rs6000/7450.md: New file. + * config/rs6000/7xx.md: New file. + * config/rs6000/mpc.md: New file. + * config/rs6000/power4.md: New file. + * config/rs6000/rios1.md: New file. + * config/rs6000/rios2.md: New file. + * config/rs6000/rs64.md: New file. + [Some DFA descriptions based on work by Michael Hayes] + +2003-02-15 Richard Henderson + + * bb-reorder.c (find_traces_1_round): Don't connect easy to copy + successors with multiple predecessors. + (connect_traces): Try harder to copy traces of length 1. + + * function.h (struct function): Add computed_goto_common_label, + computed_goto_common_reg. + * function.c (free_after_compilation): Zap them. + * stmt.c (expand_computed_goto): Use them to produce one + indirect branch per function. + +2003-02-15 Richard Henderson + + * cfgcleanup.c: Include params.h. + (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES. Fix test for + too many outgoing edges from a block. + * Makefile.in (cfgcleanup.o): Depend on PARAMS_H. + * params.def (max-crossjump-edges): New. + * doc/invoke.texi: Document it. + +2003-02-15 Richard Henderson + + * recog.c (split_all_insns): Include new blocks in life update; + do a global life update. + +2003-02-15 Danny Smith + + * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a. + Update copyright. + * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for + -mno-cygwin case. + +2003-02-14 Falk Hueffner + + PR optimization/7702 + * reload1.c (reload_cse_simplify_set): Honor + CANNOT_CHANGE_MODE_CLASS. + +2003-02-14 Alexandre Oliva + + * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New + function. + * config/mn10300/mn10300-protos.h: Declare it. + * config/mn10300/mn10300.md (movdi, movdf): Use it to compute + attribute cc of instructions that may use clr. + +2003-02-14 Kazu Hirata + + * simplify-rtx.c (simplify_binary_operation): Simplify ~y when + (x - (x & y)) is found. + +2003-02-14 Rainer Orth + + * configure.in: Fix typo. + * configure: Regenerate. + +2003-02-14 Kazu Hirata + + * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New. + +2003-02-13 Adam Nemet + + PR opt/2391 + * combine.c: Fix spelling in comment. + (cached_nonzero_bits): New function. + (cached_num_sign_bit_copies): New function. + (nonzero_bits_with_known): New macro. + (num_sign_bit_copies_with_known): New macro. + (nonzero_bits1): Rename from nonzero_bits. Add three new + arguments. Change calls from nonzero_bits to + nonzero_bits_with_known. + (num_sign_bit_copies1): Rename from num_sign_bit_copies. Add + three new arguments. Change calls from num_sign_bit_copies to + num_sign_bit_copies_with_known. + (nonzero_bits): New macro. + (num_sign_bit_copies): New macro. + (update_table_tick): Don't traverse identical subexpression more + than once. + (get_last_value_validate): Likewise. + +2003-02-13 Zack Weinberg + + * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx. + * function.h (struct emit_status): Length of regno_pointer_align + and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no, + not regno_pointer_align_length (i.e. length actually used, not + length as allocated) + + * config/i386/i386.c (struct stack_local_entry): New. + (struct machine_function): Replace huge array with alist. + (assign_386_stack_local): Change to match. + +2003-02-13 John David Anglin + + * inclhack.def (hpux_long_double): Tighten select and add bypass + regexp. + * fixincl.x: Rebuilt. + +2003-02-13 Josef Zlomek + + * cfgcleanup.c (outgoing_edges_match): When there is single outgoing + edge and block ends with a jump insn it must be simple jump. + +2003-02-13 Daniel Jacobowitz + + * Makefile.in (PREPROCESSOR_DEFINES): Add + @TARGET_SYSTEM_ROOT_DEFINE@. + * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot + is specified or if building a cross compiler. + (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE + if the sysroot is under $exec_prefix. + * configure: Regenerated. + * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is + defined. + (struct default_include): Add add_sysroot field. + (cpp_SYSROOT): Declare. + * cppdefault.c (cpp_include_defaults): Fill in add_sysroot + field. + (cpp_SYSROOT): New variable. + * cppinit.c (cpp_create_reader): Initialize + CPP_OPTION (pfile, sysroot). + (init_standard_includes): Handle add_sysroot. Do not + add unrelocated copies of relocated directories. + (COMMAND_LINE_OPTIONS): Add -isysroot. + (cpp_handle_option): Handle -isysroot. + * cpplib.h (struct cpp_options): Add sysroot member. + * gcc.c (The Specs Language): Update description of %I. + (target_system_root_changed): New variable. + (process_command): Conditionalize make_relative_prefix call + on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE. Set + target_system_root_changed. + (do_spec_1): Add -isysroot to %I. + * doc/invoke.texi (Spec Files): Update description of %I. + * doc/install.texi (--with-sysroot): Update comment about + relocation. + +2003-02-13 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-02-13 Robert Lipe + Gerald Pfeifer + + * doc/install.texi (Specific): Update three SCO-related URLs. + +2003-02-13 Andreas Schwab + + * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t. + Parenthesize properly. + (NPREDECESORS): Parenthesize properly. + +2003-02-13 Gabriel Dos Reis + + * timevar.h (POP_TIMEVAR_AND_RETURN): New macro. + +2003-02-12 Roger Sayle + + * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant. + (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns. + + * reg-stack.c (subst_stack_regs_pat): Add support for binary + UNSPEC instructions (e.g. "fpatan"). + +2003-02-12 Mike Stump + + * varray.c (element_size): Remove. + (uses_ggc): Remove. + (element): Add. + (varray_init): Use new interface. + (varray_grow): Use new interface. + (varray_clear): Use new interface. + +2003-02-12 Aldy Hernandez + + * config/rs6000/spe.h: Add casts to the arguments of the following + macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul, + evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi, + evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*, + __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs, + __ev_get_u16, __ev_get_s16. + +2003-02-12 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): New. + +2003-02-12 Jan Hubicka + + * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time + (OBJS): Add cgraph.o + (cgraph.o): New. + * c-decl.c (expand_body_1): Break out from ... + (expand_body): This one; change calling convention + (finish_function): Move some of expand_body logic here. + (c_expand_deferred_function): Update call of expand_body + (c_expand_stmt): Use c_expand_body_1. + * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define. + * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code. + * c-tree.h (c_expand_body): Declare. + * cgraph.c: New file. + * flags.h (flag_unit_at_a_time): Declare. + * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION, + LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, + LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros. + * langhooks.h (struct lang_hooks_for_callgraph): New. + (struct lang_hooks): Add callgraph field. + * toplev.c (flag_unit_at_a_time): New. + (lang_independent_options): Add flag_unit_at_a_time. + (process_options): Disable unit-at-a-time mode for frontends not + supporting callgraph. + * tree-inline.c (typedef struct inline_data): Add "decl" + (expand_call_inline): Update callgraph. + (optimize_inline_calls): Set id.decl. + * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit, + cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call + cgraph_calls_p): Declare. + * invoke.texi (-funit-at-a-time): Document. + +2003-02-12 Aldy Hernandez + + * config/rs6000/spe.h: Fix misc formatting. + (__ev_create_ufix32_fs): Cast ev argument. + (__ev_create_sfix32_fs): Same. + (__ev_get_sfix32_fs_internal): Cast arguments to builtins. + (__ev_get_ufix32_fs_internal): Same. + +2003-02-12 Ranjit Mathew + + * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document. + * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro. + +2003-02-12 Zack Weinberg + + * cpplib.c (do_include_common): Move warnings for + #include_next and #import out to callers. Use early-return + instead of nested ifs. Don't do check_eol here. + (parse_include): Do check_eol here with the rest of the + parsing stuff. + (do_include_next, do_import): Now handle warnings. + +2003-02-11 Gerald Pfeifer + + * doc/install.texi (Specific): Update AVR- and Darwin-related URLs. + +2003-02-12 Jan Hubicka + + * predict.c (estimate_probability): Fix roundoff error. + +2003-02-12 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Don't handle 65535. + (two peephole2): New. + +2003-02-12 Kazu Hirata + + * config/h8300/h8300.md (several peephole2): Replace + find_regno_note with peep2_reg_dead_p. + +2003-02-11 Richard Henderson + + * gcse.c (lookup_set): Remove unused argument PAT. Update + both callers. + +2003-02-11 Geoffrey Keating + + * diagnostic.c (real_abort): New. + (diagnostic_report_diagnostic): Call real_abort on error. + * diagnostic.h (diagnostic_abort_on_error): New. + (struct diagnostic_context): Add abort_on_error field. + * toplev.c (setup_core_dumping): New. + (decode_d_option): Handle 'H' case. + * doc/invoke.texi (Debugging Options): Document -dH. + +2003-02-11 Nathanael Nerode + + * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu + which refers to obsolete directories. + +2003-02-11 Richard Henderson + + * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New. + +2002-10-21 Jan Hubicka + + * i386.c (contains_128bit_aligned_vector_p): New function. + (ix86_function_arg_boundary): Properly align vector modes. + +2003-02-11 Bob Wilson + + * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7. + * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP + as a SET pattern. + +2003-02-11 Roger Sayle + + * builtins.c: Fix failure caused by commiting wrong patch. + +2003-02-11 Dale Johannesen + * ra-build.c (compare_and_free_webs): Relax checking. + * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME): Define. + (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. + +2003-02-11 Falk Hueffner + + PR optimization/9651 + * rtlanal.c (may_trap_p): Handle FIX. + +2003-02-11 Dave Jones + + * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE. + * doc/invoke.texi: Extra alias. + +2003-02-11 Geoffrey Keating + + * config/rs6000/host-darwin.c: Fix comment. + +2003-02-11 David Edelsohn + + * config/rs6000/rs6000.md (divmodsi4): Use register_operand + predicate for mod result. + +2003-02-11 John David Anglin + + * inclhack.def (hpux_long_double, hpux10_ctype_declarations1, + hpux10_ctype_declarations2, hpux_ctype_macros): New hacks. + * fixincl.x: Rebuilt. + * tests/base/stdlib.h: Update. + * tests/base/ctype.h: New file. + +2003-02-11 Jan Hubicka + + * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too. + +2003-02-11 Richard Henderson + + * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi + appropriated as globals. + (ix86_expand_clrstr): Similarly. + * config/i386/i386.md (cmpstrsi): Similarly. + +2003-02-11 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Add a case of 255. + +2003-02-11 Roger Sayle + + * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2. + (pow_optab, atan2_optab): Define corresponding macros. + * optabs.c (init_optabs): Initialize pow_optab and atan2_optab. + * genopinit.c (optabs): Implement pow_optab and atan2_optab + using pow?f3 and atan2?f3 patterns. + * builtins.c (expand_errno_check): New function to update errno + if necessary, split out from expand_builtin_mathfn. + (expand_builtin_mathfn): Use expand_errno_check. + (expand_builtin_mathfn_2): New function to handle expanding binary + math functions, reusing the code in expand_errno_check. + (expand_builtin): Handle the pow and atan2 math built-ins, + BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function + expand_builtin_mathfn_2. + + * doc/md.texi: Document new pow?f3 and atan2?f3 patterns. + +2003-02-11 Jan Hubicka + + * combine.c (combine_simplify_rtx): Fix folding of + nested float_truncates. + +2003-02-11 Kazu Hirata + + * config/h8300/h8300.md (a peephole2): Fix a typo. + +2003-02-11 Richard Earnshaw + + * arm.mc (return_address_mask): Use CC_REGNUM for the condition code + register number. + +2003-02-11 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + gtuleu_operator. + * config/h8300/h8300.c (gtuleu_operator): New. + * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator. + * config/h8300/h8300.md (a peephole2): New. + +2003-02-11 Jan Hubicka + + * sched-ebb.c (schedule_ebbs): Do not verify_flow_info. + +2003-02-11 Jan Hubicka + + * predict.c (choose_function_section): Choose sections correctly. + +2003-02-10 John David Anglin + + * reload1.c (first_label_num): New. + (reload): Index offsets_known_at and offsets_at using difference of + label number and first label number. Don't use offset pointers. + (set_label_offsets, set_initial_label_offsets): Likewise. + +2003-02-10 Roger Sayle + + * mips-tfile.c (init_file): Add missing initializers in the + "#ifdef __alpha" case. + (file_offset, max_file_offset): Declare as unsigned long. + (write_varray): Cast to "unsigned long" in comparisons against + either file_offset or max_file_offset. + (write_object): Likewise. + (read_seek): Likewise. + (copy_object): Likewise. Declare "ifd" as int to match its use + in add_ext_symbol, and avoid signed/unsigned conditional warning. + +2003-02-10 Nick Clifton + Aldy Hernandez + + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not + override options which have been specified on the command line. + +2003-02-10 Kazu Hirata + + * config/h8300/h8300.md (abssf2): New. + (*abssf2_h8300): Likewise. + (*abssf2_h8300hs): Likewise. + +2003-02-10 Phil Edwards + + * tree.c (build_tree_list): Fix parameter names in comment. + +2003-02-10 Janis Johnson + + * config/rs6000/ppc64-fp.c: New file. + * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. + +2003-02-10 Josef Zlomek + + * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H). + * bb-reorder.c (make_reorder_chain): Deleted. + (make_reorder_chain_1): Deleted. + (find_traces): New function. + (rotate_loop): New function. + (mark_bb_visited): New function. + (find_traces_1_round): New function. + (copy_bb): New function. + (bb_to_key): New function. + (better_edge_p): New function. + (connect_traces): New function. + (copy_bb_p): New function. + (get_uncond_jump_length): New function. + (reorder_basic_blocks): Use new functions (Software Trace Cache). + * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop + boundaries. + +2003-02-10 Aldy Hernandez + + * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3. + +2003-02-09 Dan Nicolaescu + + * tree.h (struct tree_decl): Remove unused live_range_rtl field. + (DECL_LIVE_RANGE_RTL): Remove. + +2003-02-10 Nick Clifton + + * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def, + config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h, + config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h, + config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h, + config/arm/freebsd.h, config/arm/linux-elf.h, + config/arm/linux-gas.h, config/arm/netbsd-elf.h, + config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h, + config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h, + config/arm/strongarm-coff.h, config/arm/strongarm-elf.h, + config/arm/strongarm-pe.h, config/arm/uclinux-elf.h, + config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h, + config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC" + and reformat as appropriate. + +2003-02-10 Kazu Hirata + + * config/h8300/clzsi2.c: Remove. + * config/h8300/ctzsi2.c: Likewise. + * config/h8300/paritysi2.c: Likewise. + * config/h8300/popcountsi2.c: Likewise. + * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2, + ctzsi2, paritysi2, and popcountsi2. + +2003-02-10 Eric Botcazou + Christian Ehrhardt + + PR c/7741 + * c-decl.c (duplicate_decls): Discard the initializer of the + new decl when the types are conflicting. + +2003-02-10 Josef Zlomek + + * Makefile.in (sreal.o): Added. + (predict.o): Depends on sreal.h instead of real.h. + * sreal.c: New file. + * sreal.h: New file. + * predict.c: Use sreal.c instead of real.c. + +2003-02-10 Nick Clifton + + * Contributed support for the Cirrus EP9312 "Maverick" + floating point co-processor. Written by Aldy Hernandez + . + (config/arm/arm.c): Add Cirrus support. + (config/arm/arm.h): Likewise. + (config/arm/aout.h): Likewise. + (config/arm/arm.md): Likewise. + (config/arm/arm-protos.h): Likewise. + (config.gcc): Likewise. + (doc/invoke.texi): Describe new -mcpu value and new + -mcirrus-fix-invalid-insns switch, + (cirrus.md): New file. + +2003-02-10 Jan Hubicka + + * combine.c (combine_simplify_rtx): Simplify using + (float_truncate (float x)) is (float x) + (float_extend (float_extend x)) is (float_extend x). + +2003-02-10 Alan Modra + + * calls.c (try_to_integrate): Tidy stack_usage_map access. + (emit_library_call_value_1): Likewise. Formatting. + (store_one_arg): Likewise. + +2003-02-09 Nick Clifton + Aldy Hernandez + + * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat, + spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd, + spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou, + spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe, + spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest + docs. Add range test for immediate value. + +2003-02-09 Aldy Hernandez + + Rename spe_evxor to xorv2si3. + (xorv4hi3): New. + (xorv1di3): New. + +2003-02-10 Glen Nakamura + + * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item + tag. + +2003-02-10 Jan Hubicka + + * i386.c (vector_move_operand): New predicate. + (ix86_expand_vector_move): Be happy about 0. + * i386.h (PREDICATE_CODES): Add sse-move_operand. + * i386.md (mov*_internal): Add 'C' alternative. + +2003-02-09 Jan Hubicka + + * i386.md (floathi*): Deal with SSE. + +2003-02-09 Jan Hubicka + + * simplify-rtx.c (simplify_unary_operation, + simplify_binary_operation): Deal with vector modes + (simplify_ternary_operation): Deal with no-op VEC_MERGE. + +2003-02-09 Richard Sandiford + + * toplev.c (rest_of_compilation): Recompute register usage after + split_all_insns. + +2003-02-09 Richard Henderson + + * libgcc-std.ver (__clztf2): New. + (__ctztf2, __popcounttf2, __paritytf2): New. + * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2, + __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode; + adjust code to match the different type sizes. + * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2, + __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros. + + * optabs.c (init_integral_libfuncs): Don't hard-code SImode and + TImode; select word_mode and twice that. + (init_floating_libfuncs): Don't hard-code SFmode and TFmode; + select the modes from float, double, and long double. + (init_optabs): Remove duplicate initializations. + +2003-02-09 Wolfgang Bangerth + + * doc/install.texi: Squeeze and streamline section on + testing and regression checking. + +2003-02-09 Jan Hubicka + + * i386.md (ahi?v*3): Set third operand type to TImode. + * i386.c (ix86_expand_binop_builtin): Extend operand when needed. + + * simplify-rtx.c (simplify_subreg): Fix conversion from vector into + integer mode. + + * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE): + Change code so they are arithmetic expressions now. + * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, + simplify_ternary_operation): Deal with VEC_* expressions. + + * i386.md (vmaskcmp, pinsrw, movd patterns): Fix RTL representation. + +2003-02-08 Jan Hubicka + + * cfgrtl.c (verify_flow_info): Use control_flow_insn_p. + * reload1.c (fixup_abnormal_edges): Split basic blocks when EH edges + possibly got duplicated. + +2003-02-08 Richard Henderson + + * config/alpha/alpha.c (override_options): Turn off explicit + relocs until post-peep2 code duplication resolved. + +2003-02-08 Kazu Hirata + + * optabs.c (expand_unop): Widen clz properly when clz is done + via libcall. + +2003-02-08 Kazu Hirata + + * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC". + * config/h8300/crti.asm: Likewise. + * config/h8300/crtn.asm: Likewise. + * config/h8300/ctzsi2.c: Likewise. + * config/h8300/fixunssfsi.c: Likewise. + * config/h8300/h8300-protos.h: Likewise. + * config/h8300/h8300.c: Likewise. + * config/h8300/h8300.h: Likewise. + * config/h8300/h8300.md: Likewise. + * config/h8300/paritysi2.c: Likewise. + * config/h8300/popcountsi2.c: Likewise. + * config/h8300/rtems.h: Likewise. + +2003-02-08 Zdenek Dvorak + + * doc/invoke.texi: Documentation for my previous commit. + * doc/passes.texi: Ditto. + +2003-02-08 Zdenek Dvorak + + * cfgloop.h (fix_loop_placement, can_duplicate_loop_p, + duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb): + Declare. + (DLTHE_FLAG_UPDATE_FREQ): New. + * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to, + loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs, + rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements, + fix_bb_placement, fix_bb_placements, place_new_loop, + scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges): + New static functions. + (fix_loop_placement, can_duplicate_loop_p, + duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb): + New functions. + + * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize, + unswitch_loops): Declare. + * loop-init.c: New file. + * loop-unswitch.c: New file. + * Makefile.in (loop-init.o, loop-unswitch.o): New. + * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New. + * toplev.c (DFI_loop2): New dump. + (flag_unswitch_loops): New. + (lang_independent_options): Add it. + (rest_of_compilation): Call new loop optimizer. + (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3. + +2003-02-08 Kazu Hirata + + * config/h8300/clzsi2.c: New. + * config/h8300/ctzsi2.c: Likewise. + * config/h8300/paritysi2.c: Likewise. + * config/h8300/popcountsi2.c: Likewise. + * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files. + +2003-02-07 David Edelsohn + + * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. + * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2. + (ctzsi2): New pattern. + (ffssi2): Use clz instead of unspec. + (clzdi2): Rename from cntlzd2. + (ctzdi2): New pattern. + (ffsdi2): Use clz instead of unspec. + +2003-02-07 Loren James Rittle + + * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice. + * config/ia64/freebsd.h (LINK_SPEC): Likewise. + * config/sparc/freebsd.h (LINK_SPEC): Likewise. + * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches. + +2003-02-07 Wolfgang Bangerth + + * doc/trouble.texi: Document pitfalls of two-stage name lookup. + +2003-02-07 Richard Henderson + + PR 9226 + * gcse.c (local_cprop_find_used_regs): New. + (local_cprop_pass): Use it. + +2003-02-07 Fred Fish + + * mips-tfile.c (parse_def): Parenthesize assignments to fix + precedence bugs. + +2003-02-07 Segher Boessenkool + + * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE. + +2003-02-07 Roger Sayle + + * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type. + (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise. + (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise. + * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l + builtin functions (and their __builtin_* variants). + * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases. + (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l} + when not optimizing. + + * doc/extend.texi: Document new pow and atan2 builtins, and + their float and long double variants. Realphabetize builtins. + +2003-02-07 Jan Hubicka + + * i386.md (sse2_nandv2di3): Fix. + +2003-03-07 Danny Smith + + * config/i386/i386.h (MS_AGGREGATE_RETURN): New define. + * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default + definition. + * config/i386/i386.h (ix86_return_in_memory): Return aggregate + types of up to 8 bytes via registers if MS_AGGREGATE_RETURN. + +2003-02-07 Jan Hubicka + + * i386.md (movdi_rex64_1): Fix mmx<->int move opcode. + +2003-02-07 Daniel Berlin + + * cfg.c (dump_flow_info): Add back accidently deleted line. + +2003-02-07 Andrey Petrov + + * optabs.c (expand_float): Search wider integer modes first. + +2003-02-07 Bob Wilson + + * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this + based on preprocessor flag. + +2003-02-07 Roger Sayle + Richard Henderson + + * gcse.c (implicit_sets): New. + (compute_hash_table_work): Include them in hash table. + (find_implicit_sets, fis_get_condition): New. + (one_cprop_pass): Allocate and free implicit_sets; call + find_implicit_sets before building hash table. + +2003-02-07 Jason Thorpe + + * config/t-netbsd (USER_H): Revert previous change. + +2003-02-07 Gabor Greif + + * doc/c-tree.texi (Namespaces): Fix typo. + +2003-02-07 Jan Hubicka + + * regrename.c (do_replace, find_oldest_value_reg, + copyprop_hardreg_forward_1): Update register attributes. + +2003-02-06 Vladimir Makarov + + * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD, + VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay + variables starting with underscore. + (struct unit_usage): New structure. + (unit_usages, cycle_alt_unit_usages): New global variables. + (check_unit_distribution_in_reserv): Remove it. + (store_alt_unit_usage): New function. + (check_regexp_units_distribution): Rewrite it. + +2003-02-06 John David Anglin + + * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in + target_cpu_default. + * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X) + if not MASK_NO_SPACE_REGS. + (output_call): Adjust return pointer, don't load new space register + into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true. + (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if + TARGET_NO_SPACE_REGS is true. + * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn + conditions. + (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true. + (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is + true. Use bve when TARGET_64BIT is true. + +2003-02-06 Richard Henderson + + * combine.c (nonzero_bits): Fix double break. + +2003-02-06 Eric Botcazou + Richard Henderson + + PR c/9530 + * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls + from functions that return a float to functions that don't. + +2003-02-06 Jan Hubicka + + * i386.c (x86_inter_unit_moves): New variable. + (ix86_secondary_memory_needed): Fix 64bit case, honor + TARGET_INTER_UNIT_MOVES + * i386.h (x86_inter_unit_moves): Declare. + (TARGET_INTER_UNIT_MOVES): New macro. + * i386.md (movsi_1): Cleanup constraints; disable + when not doing inter-unit moves. + (movsi_1_nointernunit): New. + (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves. + (movdi_1_rex64_nointerunit): New. + (mivsf_1): disable when not doing inter-unit moves. + (movsf_1_nointerunit): New. + + * basic-block.h (inside_basic_block_p): Declare. + * cfgbuild.c (inside_basic_block_p): Make global. + * haifa-sched.c (unlink_other_notes): Deal with NOT_INSN_BASIC_BLOCK. + * scheudle-ebb.c (schedule_ebb): Return last basic block of trace; + update CFG. + (fix_basic_block_boundaries, add_missing_bbs): New. + (rank): Use profile. + (scheudle_ebbs): Rely on CFG; update coments. + +2003-02-05 Geoffrey Keating + + * Makefile.in (host_hook_obj): New. + (OBJS): Add $(host_hook_obj). + (host_default.o): New rule. + * config.gcc (host_hook_obj): New, default to host-default.o. + (powerpc-*-darwin*): Use host-darwin.o. + (out_host_hook_obj): New. + * configure: Regenerate. + * configure.in: Print information about out_host_hook_obj, substitute + into output files. + * host-default.c: New file. + * hosthooks.h: New file. + * toplev.c (general_init): Call host_hooks.extra_signals. + * config/rs6000/host-darwin.c: New file. + * config/rs6000/x-darwin: New file. + * doc/hostconfig.texi: Add documentation for new host hook. + Rearrange existing documentation. + +2003-02-05 Roger Sayle + + * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR + with *targetm.delegitimize_address. + (rtl_for_decl_location): Likewise. + * dwarfout.c (output_mem_loc_descriptor): Likewise. Include target.h. + * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H) + + * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition. + * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove + prototype. + * config/i386/i386.c (ix86_delegitimize_address): Renamed from + i386_simplify_dwarf_addr. Made static. Prototyped. + (TARGET_DELEGITIMIZE_ADDRESS): Update definition from + i386_simplify_dwarf_addr to ix86_delegitimize_address. + (ix86_find_base_term): Likewise. + (maybe_get_pool_constant): Likewise. + + * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition. + * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove + prototype. + * config/s390/s390.c (s390_delegitimize_address): Renamed from + s390_simplify_dwarf_addr. Made static. Prototyped. + (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address. + +2003-02-05 Richard Henderson + + PR c/8602 + * integrate.c (output_inline_function): Reset input_filename + and lineno from the decl before rest_of_compilation. + +2003-02-05 Richard Henderson + + * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New. + (CTZ_DEFINED_VALUE_AT_ZERO): New. + * doc/rtl.texi, doc/tm.texi: Document them. + + * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness + of the value at zero properly. + * fold-const.c (tree_expr_nonnegative_p): Likewise. + * simplify-rtx.c (simplify_unary_operation): Likewise. + + * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New. + (CTZ_DEFINED_VALUE_AT_ZERO): New. + + * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove. + (TARGET_EXPAND_BUILTIN): Remove. + (def_builtin, arm_init_builtins, arm_expand_builtin): Remove. + * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New. + (enum arm_builtins): Remove. + * config/arm/arm.md (UNSPEC_CLZ): Remove. + (clzsi2): Rename from clz; use clz instead of unspec. + (ctzsi2): New. + * config/arm/arm-protos.h: Update. + +2003-02-05 Jan Hubicka + + * i386-protos.h (x86_emit_floatuns): Declare. + * i386.c (x86_emit_floatuns): New global function. + * i386.md (floatunssisf2, floatunsdisf2, + floatunsdidf2): New patterns. + +2003-01-25 Zdenek Dvorak + + * cfgloopmanip.c (force_single_succ_latches): Fix missindentation. + +2003-02-05 Hans Boehm + + * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get + config/ia64/linux.h + +2003-02-05 Roger Sayle + + * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again. + +2003-02-05 Jakub Jelinek + + PR optimization/8555 + * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case + instead of aborting. + +2003-02-04 Richard Henderson + + * config/i386/i386.md (UNSPEC_BSF): Remove. + (ffssi2): Split into cmove and no_cmove insns and splitters; + lose pentium float trick for now. + (ffssi_1): Add * to name; use CTZ instead of UNSPEC. + (ctzsi2, clzsi2, bsr): New. + +2003-02-04 Richard Henderson + + * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT, + UNSPEC_GETF_EXP; remove UNSPEC_POPCNT. + * config/ia64/ia64.md (UNSPEC_POPCNT): Remove. + (ffsdi2): Use popcount instead of unspec. + (popcountdi2): Rename from *popcnt. + (ctzdi2, clzdi2, getf_exp_tf): New. + +2003-02-04 Kazu Hirata + + * genconfig.c (main): Generate CC0_P. + * rtl.h (CC0_P): Remove. + +2003-02-04 Richard Henderson + + * libgcc2.h, libgcc2.c (__ffsSI2): New. + (__ffsDI2): Rename from __ffsdi2. + * mklibgcc.in (lib2funcs): Add _ffssi2. + +2003-02-04 Richard Henderson + + * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction + rounds with a "bit table" lookup. + +2003-02-04 Ulrich Weigand + + * reload.c (find_reloads): Do not use the mode specified in the insn + pattern as reload mode for address operands. Do not generate optional + reloads for operands where a mandatory reload was already pushed. + +2003-02-04 Richard Henderson + + * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use + builtins instead of inline assembly. + +2003-02-04 Falk Hueffner + + PR c/9376 + * libgcc2.c (__subvdi3): Fix typo. + +2003-02-04 Jan Hubicka + + * i386.md (movti_rex64): Fix constraint. + +2003-02-04 Jan Hubicka + + * i386.md (vector push splitters): Fix typo in resolving conflict. + +2003-02-04 Rodney Brown + + * config/i386/i386.c (x86_function_profiler): Fix typo in format. + +2003-02-04 Phil Edwards + + * doc/install.texi (*-*-linux-gnu): Mention glibc requirements + for recent libstdc++. Remove formatting cruft. + +2003-02-04 Jakub Jelinek + + * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir + attribute even if input file name is absolute, but one of the + includes is relative. + +2003-02-04 Joseph S. Myers + + * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi, + doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2. + * doc/install.texi: Update copyright dates. Update to GFDL 1.2. + +2003-02-03 Richard Henderson + + * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, + __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change + return type to "int". Shuffle declarations and undef int trap. + * libgcc2.h: Remove their declarations. + * optabs.c (expand_unop): Force outmode to int for bitops. + +2003-02-03 Bob Wilson + + * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the + coprocessor registers before floating-point registers. + * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers + to account for a previously removed register. + (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM): + Delete unused macros. + +2003-02-03 Jan Hubicka + + * i386.c (ix86_expand_store_builtin): Always force op1 to register. + (mov*_internal): Fix predicates; require one of operands to not be + memory. + (SSE?MMX move expanders): Fix predicates; force one of operands to + register. + (SSE/MMX push patterns): Reorganize; fix x86-64 code generation. + (movups/movupd/movdqu patterns): Force one of operands to not be + memory. + +2003-02-03 Roger Sayle + + * hooks.c (hook_rtx_rtx_identity): Generic hook function that + takes a single rtx and returns it unmodified. + * hooks.h (hook_rtx_rtx_identity): Prototype here. + * target.h (struct gcc_target): Add "delegitimize_address" + field to target structure. + * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Provide default + for delegitimize_address target using hook_rtx_rtx_identity. + (TARGET_INITIALIZER): Initialize delegitimize_address field + using TARGET_DELEGITIMIZE_ADDRESS macro. + * simplify-rtx.c (avoid_constant_pool_reference): Handle float + extensions of constant pool references. Use delegitimize_address + to undo the obfuscation of "-fpic". + * Makefile.in (simplify-rtx.o): Add dependency on target.h. + + * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as + i386_simplify_dwarf_addr. + (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr. + (maybe_get_pool_constant): Likewise. + +2003-02-03 Jan Hubicka + + * i386.c (ix86_expand_int_movcc): Fix setcc sign bit case. + +2003-02-03 Jan Hubicka + + * regclass.c (cannot_change_mode_set_regs): Correct argument order. + +2003-02-02 Kaveh R. Ghazi + + * mips/_tilib.c: Don't include tsystem.h or defaults.h. Don't + define LIBGCC2_WORDS_BIG_ENDIAN. Include coretypes.h and tm.h. + +2003-02-02 Andreas Schwab + + * varasm.c (asm_output_aligned_bss): Declare as possibly unused. + +2003-02-02 Richard Earnshaw + + * arm.md (sibcall_epilogue): Set the "conds" to "clob". + (epilogue_insns): Likewise. + +2003-02-02 John David Anglin + + * doc/install.texi (hppa*-hp-hpux11*): Update installation notes. + +2003-02-02 John David Anglin + + * pa-protos.h (attr_length_millicode_call): Remove second argument. + (attr_length_indirect_call, attr_length_indirect_call, + attr_length_save_restore_dltp): New prototypes. + * pa.c (attr_length_millicode_call): Remove second argument. Check + INSN_ADDRESSES_SET_P in distance calculation. + (output_millicode_call): Check INSN_ADDRESSES_SET_P before using + INSN_ADDRESSES. + (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation. + (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES. + Call attr_length_call directly. + (attr_length_indirect_call, output_indirect_call, + attr_length_save_restore_dltp): New functions. + * pa.md (attr_length_millicode_call): Drop second argument from all + patterns. + (return_internal_pic): Delete. + (return_external_pic): Remove use of PIC register and pic operand and + flag checks. + (epilogue): Use return_internal for both normal and pic code. + (call, call_value): Emit new 32-bit pic patterns for symref and + indirect calls. Remove uses for arg pointer and pic register. + (call_symref_pic, call_symref_pic_post_reload, call_reg_pic, + call_reg_pic_post_reload, call_val_symref_pic, + call_val_symref_pic_post_reload, call_val_reg_pic, + call_val_reg_pic_post_reload): New pre and post reload insn patterns. + Implement define_split and define_peephole2 patterns for pre reload + patterns. + (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit, + call_value_internal_reg_64bit): Shorten names. + (all call patterns): Explicitly indicate registers used and clobbered. + Use attr_length_indirect_call and attr_length_save_restore_dltp for + attribute length calculation. Move code generation for indirect calls + to output_indirect_call. + (sibcall, sibcall_value): Don't restore PIC register. + (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC + register retore. + +2003-02-02 Gerald Pfeifer + + * doc/install.texi (Testing): Simplify and compress instructions + concerning Dejagnu. + +2003-02-01 John David Anglin + + * collect2.c (pexecute_pid): Rename to pid. + (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use + pid. + +2003-02-01 Geoffrey Keating + + * doc/extend.texi (Function Attributes): Remove documentation + for PowerPC Windows NT function attributes.. + +2003-02-01 Daniel Jacobowitz + + * dwarf2out.c (gen_type_die): Check for typedefs before calling + for TYPE_MAIN_VARIANT. + +2003-02-01 Richard Henderson + + * libgcc2.c: Include auto-host.h. + (ATTRIBUTE_HIDDEN): New. + (__clz_tab): Don't declare here for clz and ctz. + (__clzsi2, __clzdi2): Use count_leading_zeros. + (__ctzsi2, __ctzdi2): Use count_trailing_zeros. + (__popcount_tab): Mark ATTRIBUTE_HIDDEN. + (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab. + * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN. + +2003-02-01 Richard Henderson + + * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT + to the conditional. + (ashlsi3_1_zext splitter): Likewise. + +2003-02-01 Richard Henderson + + * optabs.c (expand_unop): Use word_mode for outmode of bit scaners. + * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, + __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change + return type to Wtype. + + * libgcc-std.ver (GCC_3.4): Fix inheritance. + + * config/i386/i386.md (ffssi2): Use nonimmediate_operand for + expander input constraint. + +2003-02-01 Falk Hueffner + + * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and + OTI_parity. + (clz_optab, ctz_optab, popcount_optab, parity_optab): New. + * optabs.c (widen_clz, expand_parity): New. + (expand_unop): Handle clz and parity. Hardcode SImode as outmode + for libcalls to clz, ctz, popcount, and parity. + (init_optabs): Init clz_optab, ctz_optab, popcount_optab and + parity_optab, and set up libfunc handlers. + * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2, + __popcountsi2, __popcountdi2, __paritysi2 __paritydi2, + __popcount_tab): New. + * libgcc2.h: Declare them. + * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c. + * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab + and parity_optab. + * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New. + * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT, + BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL, + BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL, + BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL, + BUILT_IN_PARITYLL): New. + * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs + and add optab argument. + (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*. + * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New. + * expr.c (expand_expr): Handle them. + * fold-const.c (tree_expr_nonnegative_p): Likewise. + * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New. + * reload1.c (eliminate_regs): Handle them. + (elimination_effects): Likewise. + * function.c (instantiate_virtual_regs_1): Likewise + * genattrtab.c (check_attr_value): Likewise. + * simplify-rtx.c (simplify_unary_operation): Likewise. + * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR. + * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY. + (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY. + * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New. + * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to + __builtin_arm_clz. + * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move... + * mklibgcc.in (lib2funcs): ...here and merge. Add new members. + * doc/extend.texi (Other Builtins): Add new builtins. + * doc/md.texi (Standard Names): Add new patterns. + +2003-02-01 Ulrich Weigand + + * reload.c: Revert 2003-01-31 change. + +2003-02-01 Jan Hubicka + + * combine.c (combine_simplify_rtx): Use reversed_comparison_code_parts. + +2003-02-01 Richard Sandiford + + * flags.h (flag_volatile): Remove declaration. + (flag_volatile_global, flag_volatile_static): Likewise. + * c-typeck.c (build_indirect_ref): Don't check flag_volatile. + * toplev.c (flag_volatile): Remove definition. + (flag_volatile_global, flag_volatile_static): Likewise. + (f_options): Remove corresponding entries here. + * varasm.c (make_decl_rtl): Don't check flag_volatile_global + or flag_volatile_static. + * doc/invoke.texi: Remove documentation of -fvolatile, + -fvolatile-global and -fvolatile-static. + +2003-01-31 John David Anglin + + * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move + updating of total_code_bytes from prologue to epilogue. + +2003-01-31 Ulrich Weigand + + * reload.c (find_reloads): Do not use the mode specified in the insn + pattern as reload mode for address operands. Do not generate optional + reloads for operands where a mandatory reload was already pushed. + Generate optional reloads only in the final pass though find_reloads. + (have_replacement_p): New function. + +2003-01-31 Gerald Pfeifer + + * doc/install.texi (Testing): Remove a reference to our obsolete + /testresults web pages and strip redundant information concerning + test results. + (Binaries): Refer to Microsoft Windows instead of listing all + possible variants. + +2003-02-01 Jan Hubicka + + * loop.c (emit_prefetch_instructions): Do conversion at right place in + RTL chain. + + * combine.c (simplify_set): Reverse order of ragumetns to + REG_CANNOT_CHANGE_MODE_P + * df.c (df_def_record_1): Likewise. + * recog.c (register_operand): Likewise. + * simplify-rtx.c (simplify_subreg): Likewise. + * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of + CANNOT_CHANGE_MODE_CLASS. + * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p): + Likewise. + * reload.c (push_reload): Likewise. + * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * mips-protos.h (mips_cannot_change_mode_class): Update prototype. + * mips.c (mips_cannot_change_mode_class): Update. + * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition. + * sh-protos.h (sh_cannot_change_mode_class): Update prototype. + * sh.c (sh_cannot_change_mode_class): Update. + * i386.h (CANNOT_CHANGE_MODE_CLASS): New. + * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation. + +2003-01-31 Geoffrey Keating + + * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent + change to LINK_COMMAND_SPEC in gcc.c. + +2003-01-31 Jan Hubicka + + PR c/9506 + * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN. + +2003-01-31 John David Anglin + + * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete + duplicated code. + +2003-01-31 Nathan Sidwell + + * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove. + (BINFO_ELTS): New #define. + * stor-layout.c (finalize_record_size): Don't set them. + * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, + BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS. + (BINFO_LANG_ELTS): New #define. + * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS. + * java/class.c (make_class): Use BINFO_ELTS. + (set_super_info): Likewse. + (add_interface_do): Likewise. + * objc/objc-act.c (start_class): Use BINFO_ELTS. + +2003-01-31 Danny Smith + + * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE. + (times): Don't ever declare if not HAVE_TIMES. + (clock): Don't ever declare if not HAVE_CLOCK. + +2003-01-30 Richard Henderson + + * flow.c (update_life_info): Zap life info after cleanup_cfg. + (regno_uninitialized): Use correct live at function entry set. + (regno_clobbered_at_setjmp): Likewise. + + * expr.c (store_expr): Promote all MEM intermediates to regs. + +2003-01-30 Kazu Hirata + + * config/arm/arm.c: Fix comment typos. + * config/arm/arm.h: Likewise. + * config/arm/netbsd-elf.h: Likewise. + * config/arm/netbsd.h: Likewise. + +2003-01-30 Geoffrey Keating + + * gengtype.c (struct walk_type_data): Add needs_cast_p. + (walk_type): Set needs_cast_p in walk_type_data. + (write_types_process_field): Supply casts when required to suppress + warnings. + (write_root): Cast gt_pch_n_S to suppress warning. + * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o. + * config/rs6000/rs6000.c (print_operand): Mask off high bits only + when they might exist. + * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o, + insn-conditions.o, and rs6000.o. + +2003-01-30 Richard Henderson + + * ggc-page.c (G.context_depth_allocations): New. + (G.context_depth_collections): New. + (alloc_page): Set G.context_depth_allocations. + (ggc_collect): Set G.context_depth_collections. + (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts. + (ggc_pop_context): Early exit for no allocations or collections. + +2003-01-30 Richard Henderson + + * tree-inline.c (walk_tree): Streamline duplicate hash table lookup. + +2003-01-30 Richard Earnshaw + + * arm.c (arm_compute_initial_elimination_offset): If optimizing for + size, the link register is always saved if any other register is + saved. + +2003-01-30 Kazu Hirata + + * config/h8300/h8300-protos.h: Update the prototype for + compute_plussi_cc. + (cpp_reader): Declare before it is used. + * config/h8300/h8300.c (compute_plussi_cc): Change the return + type to int. + * config/h8300/h8300.md (monitor_prologue): Call abort() if we + see an unknown H8 variant. + +2003-01-30 Ralf Corsepius + + PR target/9316 + * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC. + * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC. + * config/rs6000/t-rtems: New file. multilib variants to match OS. + * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of + rs6000/t-ppcgas so we get the desired multilibs. + +2003-01-30 Nick Clifton + + * config/arm/arm.c (arm_output_epilogue): Update stack pointer + when popping saved IP register off the stack. + +2003-01-30 Kazu Hirata + + * config/rs6000/aix43.h: Fix comment typos. + * config/rs6000/aix51.h: Likewise. + * config/rs6000/aix52.h: Likewise. + * config/rs6000/altivec.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.h: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/rs6000/spe.md: Likewise. + +2003-01-29 Mark Mitchell + + * c-common.c (builtin_define_float_constants): Define + ___HAS_INFINITY__ and ___HAS_QUIET_NAN__. + +2003-01-30 Kazu Hirata + + * config/sh/lib1funcs.asm: Fix comment typos. + * config/sh/linux.h: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.md: Likewise. + +2003-01-30 Loren James Rittle + + * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir). + +2003-01-30 Alexandre Oliva + + * config/fp-bit.h (__make_dp): Declare if TMODES. + +2003-01-29 Kazu Hirata + + * config/h8300/h8300.h (PREDICATE_CODES): Add entries for + general_operand_src and general_operand_dst. + +2003-01-29 David Edelsohn + + * config/rs6000/rs6000.c (function_arg_pass_by_reference): + Return true for variable sized types. + (rs6000_va_arg): Handle variable sized types passed by reference + on non-SVR4 ABI. + +2003-01-29 Richard Earnshaw + + * arm.c (arm_legtimize_address): New function. + * arm-protos.h (arm_legtimize_address): Add prototype. + * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address. + (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with + do ... while (0) + +2003-01-29 Joel Sherrill + + PR bootstrap/9296 + * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT. Apparently no code + depended on it being defined until now. + +2003-01-29 Joel Sherrill + + PR target/9295 + * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic + RTEMS code knows which C++ initialization style the toolset + configuration is using. + +2003-01-29 Joel Sherrill + + PR bootstrap/9293 + * config/m68k/t-crtstuff: Replace spaces with tabs, add + $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o. + +2003-01-29 Joel Sherrill + + PR bootstrap/9292 + * config.gcc (hppa1.1-rtems): Did not include t-rtems nor enable + RTEMS threads. + * config/pa/rtems.h (LIB_SPEC): Use -N when linking. + +2003-01-29 Nick Clifton + + * Makefile.in (c-parse.o): Locate source file in $(parsedir) + not $(srcdir). + +2003-01-29 Andrew Haley + + * tree-inline.c (walk_tree): Add CHAR_TYPE. + +2003-01-29 Jan Hubicka + + * i386.md (subdi3_carry_rex64): Fix typo. + +2003-01-28 Stan Shebs + + * coretypes.h (cpp_reader): Forward declare struct. + * c-pragma.h (cpp_reader): Remove forward declaration. + * hashtable.h (cpp_reader): Likewise. + * scan.h (cpp_reader): Likewise. + * tree.h (cpp_reader): Likewise. + * config/darwin-protos.h (cpp_reader): Likewise. + * config/arm/arm-protos.h (cpp_reader): Likewise. + * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use + struct cpp_reader in prototypes. + +2003-01-28 Christian Cornelssen + + * doc/install.texi: Add documentation for installation into + tooldirs and with DESTDIR. + +2003-01-28 Richard Henderson + + * config.gcc (ia64*-*-aix*): Remove. + * config/ia64/aix.h, config/ia64/t-aix: Remove file. + * config/ia64/unwind-aix.c: Remove file. + +2003-01-28 Andreas Schwab + + * config/m68k/m68k.md (tablejump+2): Don't sign extend an address + register. + * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise. + * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise. + * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise. + * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise. + * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise. + * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise. + * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise. + +2003-01-28 Richard Sandiford + + * combine.c (nonzero_bits): Fix check for negative divide operands. + +2003-01-28 Richard Henderson + + * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New. + * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New. + +2003-01-28 Richard Henderson + + * cse.c (find_best_addr): Kill !ADDRESS_COST code. + + * config/cris/cris.c (cris_address_cost): Make static. + (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New. + * config/cris/cris.h (ADDRESS_COST): Remove. + * config/cris/cris-protos.h: Update. + +2003-01-23 Mike Stump + + * regclass.c (init_reg_autoinc): New function. + (regclass): Move initialization of forbidden_inc_dec_class from + here... + (init_regs): to here. Avoids reinitialization for each function, + saving compilation time. + +2003-01-28 Jason Merrill + + * cpplib.h (struct cpp_options): Add warn_deprecated field. + * cppinit.c (cpp_create_reader): Turn it on by default. + * c-opts.c (c_common_decode_option): Set it. + * cpplib.c (do_pragma_once): Only complain about #pragma once + if warn_deprecated is set. + +2003-01-28 Dale Johannesen + + * emit-rtl.c (const_double_htab_hash): Use mode in the hash. + * loop.c (scan_loop): Move movables on -Os rich-register targets. + * config/rs6000/rs6000.md (sibcall*): Use match_operand for LR. + +2003-01-28 Richard Henderson + + * target.h (targetm.address_cost): New. + * target-def.h (TARGET_ADDRESS_COST): New. + (TARGET_RTX_COSTS): Uncomment. Oops. + * cse.c (address_cost): Use new target hook. + (default_address_cost): New. + * output.h (default_address_cost): Declare. + * hooks.c (hook_int_rtx_0): New. + * hooks.h (hook_int_rtx_0): Declare. + * loop.c (combine_givs_p): Remove if 0 code. + * system.h (ADDRESS_COST): Poison. + + * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c, + config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h, + config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c, + config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h, + config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c, + config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h, + config/xtensa/xtensa.c, config/xtensa/xtensa.h + (TARGET_ADDRESS_COST): Define as hook_int_rtx_0. + (ADDRESS_COST): Remove. + + * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, + config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, + config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, + config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, + config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h, + config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h, + config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h, + config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h, + config/mips/mips.c, config/mips/mips.h, + config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, + config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h, + config/ns32k/ns32k.c, config/ns32k/ns32k.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/vax/vax-protos.h, + config/vax/vax.c, config/vax/vax.h + (foo_address_cost): Make static. + (TARGET_ADDRESS_COST): New. + (ADDRESS_COST): Remove. + + * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h, + config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c, + config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, + config/stormy16/stormy16.h + (ADDRESS_COST): Move code ... + (foo_address_cost): ... here. + (TARGET_ADDRESS_COST): New. + + * config/m32r/m32r.c (m32r_address_cost): Remove. + * config/m32r/m32r-protos.h: Update. + + * config/mmix/mmix.c (mmix_address_cost): Remove. + * config/mmix/mmix-protos.h: Update. + + * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from + mn10300_address_cost; move unsig allocation ... + (mn10300_address_cost): ... here. + (TARGET_ADDRESS_COST): New. + * config/mn10300/mn10300-protos.h: Update. + * config/mn10300/mn10300.h (ADDRESS_COST): Remove. + + * doc/tm.texi: Update. + +2003-01-28 Vladimir Makarov + + * haifa-sched.c (schedule_insn): Return necessary cycle advance + after issuing the insn. + (rank_for_schedule): Make a insn with /S the highest priority + insn. + (move_insn): Ignore schedule groups. Clear SCHED_GROUP_P. + (choose_ready): Check SCHED_GROUP_P. + (schedule_block): Advance cycle after issuing insn if it is + necessary. Don't reorder insns if there is an insn with /S. + (set_priorities): Ignore schedule groups. + + * sched-deps.c (remove_dependence, group_leader): Remove the + functions. + (add_dependence): Ignore schedule groups. + (set_sched_group_p): Don't make copy of dependencies from previous + insn of the schedule group. Add anti-dependency to the previous + insn of the schedule group. + (compute_forward_dependences): Ignore schedule groups. + + * sched-ebb.c (init_ready_list): Ignore schedule groups. + + * sched-rgn.c (init_ready_list): Ditto. + (can_schedule_ready_p): Ditto. + +2003-01-28 Vladimir Makarov + + * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm + register to another one. + +2003-01-28 Richard Henderson + + * calls.c (default_must_pass_in_stack): Fix typo in !type case. + +2003-01-28 Roger Sayle + + * cse.c (cse_insn): Avoid redundant REG_EQUAL notes. + +2003-01-28 Richard Sandiford + + * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given + class contains a floating-point register, return the size of the + mode in half words. + +2003-01-28 Jan Hubicka + + * i386.c (ix86_carry_flag_operator): New predicate. + (fcmov_operator): Fix whitespace. + (ix86_expand_carry_flag_compare): Deal with floating point. + (ix86_expand_int_movcc): Deal with fp; update insn expansion + (ix86_expand_int_addcc): Likewise. + (ix86_expand_strlensi_unroll_1): likewsie. + * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator. + * i386.md (add?i_carry_rex64): Use new predicate. + (sub?i3_carry_rex64): Likewise. + (x86_mov?icc_0_m1*): Likewise. + +2003-01-28 Andreas Schwab + + * cfgloopmanip.c (create_preheader): Initialize src to avoid + warning. + + * expmed.c (emit_store_flag): Fix cast to avoid sign + comparison warning. + + * combine.c (force_to_mode): Add cast to fix warning when + STORE_FLAG_VALUE is negative. + +2003-01-27 Richard Henderson + + * Makefile.in (cse.o): Depend on TARGET_H. + * cse.c (rtx_cost): Use targetm.rtx_costs. + * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison. + * doc/tm.texi: Update. + + * target.h (targetm.rtx_costs): New. + * target-def.h (TARGET_RTX_COSTS): New. + * hooks.c (hook_bool_rtx_int_int_intp_false): New. + * hooks.h: Update. + + * config/alpha/alpha.c (alpha_rtx_cost_data): New. + (alpha_rtx_costs, TARGET_RTX_COSTS): New. + * config/alpha/alpha.h (PROCESSOR_MAX): New. + (CONST_COSTS, RTX_COSTS): Remove. + + * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c, + config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h, + config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c, + config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h, + config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c, + config/i370/i370.h, config/i386/i386.c, config/i386/i386.h, + config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c, + config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h, + config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c, + config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h, + config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c, + config/mn10200/mn10200.h, config/mn10300/mn10300.c, + config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h, + config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c, + config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h, + config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c, + config/s390/s390.h, config/sh/sh.c, config/sh/sh.h, + config/stormy16/stormy16.c, config/stormy16/stormy16.h, + config/v850/v850.c, config/v850/v850.h, + config/xtensa/xtensa.c, config/xtensa/xtensa.h + (CONST_COSTS, RTX_COSTS): Move code ... + (foo_rtx_costs, TARGET_RTX_COSTS): ... here. + + * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs. + (arm_rtx_costs, TARGET_RTX_COSTS): New. + * config/arm/arm-protos.h: Update. + * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove. + + * config/avr/avr.h (CONST_COSTS): Move code ... + * config/avr/avr.c (avr_rtx_costs): ... here. + (default_rtx_costs): Make static. + * config/avr/avr-protos.h: Update. + + * config/h8300/h8300.c (const_costs): Make static. + (h8300_and_costs, h8300_shift_costs): Likewise. + * config/h8300/h8300-protos.h: Update. + + * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove. + (CONST_COSTS): Move code ... + * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here. Rename from + default_rtx_costs; update for signature change. + * config/ip2k/ip2k-protos.h: Update. + + * config/m68hc11/m68hc11.h (RTX_COSTS): Remove. + (CONST_COSTS): Move code ... + * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here. + (TARGET_RTX_COSTS): New. + (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static. + * config/m68hc11/m68hc11-protos.h: Update. + + * config/m68k/m68k.c (const_int_cost): Make static. + * config/m68k/m68k-protos.h: Update. + + * config/mcore/mcore.c (mcore_const_costs): Make static. + (mcore_and_cost, mcore_ior_cost): Likewise. + * config/mcore/mcore-protos.h: Update. + + * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New. + (mmix_rtx_cost_recalculated): Remove. + * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove. + * config/mmix/mmix-protos.h: Update. + + * config/sh/sh.c (shiftcosts): Make static. + (addsubcosts, andcosts, multcosts): Likewise. + * config/sh/sh-protos.h: Update. + + * config/sparc/sparc.c (TARGET_RTX_COSTS): New. + (sparc_rtx_costs): Make static; update for change in signature. + * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove. + * config/sparc/sparc-protos.h: Update. + + * config/v850/v850.c (const_costs): Make static. + * config/v850/v850-protos.h: Update. + + * config/vax/vax.h (RTX_COSTS): Remove. + (CONST_COSTS): Move code ... + * config/vax/vax.c (vax_rtx_costs_1): ... here; rename + from vax_rtx_cost. + (vax_rtx_costs, TARGET_RTX_COSTS): New. + +2003-01-27 Richard Henderson + + * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove. Really. + * config/vax/vax-protos.h: Update. Really. + +2003-01-28 Alexandre Oliva + + * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from... + (UNITS_PER_FPVALUE): Defined as the width of a long double, or + zero if no hardware floating point. + (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64. + (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE. + (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. + (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE. + (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64. + * config/mips/mips.c (mips_arg_info): Pass TFmode values in + even FP registers on N32 and N64. + (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE. + (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM. + (mips_va_arg): Use UNITS_PER_HWFPVALUE. Impose additional + even-register-like alignment to 128-bit arguments. + (save_restore_insns): Use UNITS_PER_HWFPVALUE. + (mips_function_value): Likewise. Return TFmode in $f0 and $f2 + on N32 or N64. + * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New. + * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c. + (TPBIT): Set to tp-bit.c. + (tp-bit.c): Create out of fp-bit.c. + +2003-01-28 Gabriel Dos Reis + + * c-parse.in: Remove '%expect 32' directive in objc mode. + +2003-01-27 Nathan Sidwell + + * Makefile.in (LIB2FUNCS_ST): Remove _gcov. + (LIBGCOV): New variable. + (libgcc.mk): Add LIBGCOV. + (LIBGCC_DEPS): Add libgcov.c. + (libgcov.a): New target. + (clean): Remove libgcov.a. + (install-libgcc): Do libgcov too. + (stage1-start, stage2-start, stage3-start, stage4-start): Deal + with libgcov.a. + * libgcc2.c (L_gcov): Move into ... + * libgcov.c: ... here. New file. + * mklibgcc.in: Add libgcov rules. + * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling. + + * doc/invoke.texi (profile-arcs, test-coverage): Update and + clarify. + + * profile.c (index_counts_file): Remove duplicate check for open file. + +2003-01-27 Jerry Quinn + + * gcc/doc/invoke.texi (Optimization Options): Group together + optional and experimental flags. Move trapv and bounds-check + out of this section. Group floating point flags together. + (Code Gen Options): Move trapv and bounds-check to here. + +2003-01-27 Josef Zlomek + + * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL. + +2003-01-27 Richard Earnshaw + + PR optimization/9090 + * function.c (purge_addressof_1): After pushing an addressed register + onto the stack, simplify the result. + +2003-01-27 Volker Reichelt + + * doc/extend.texi: Fix typo. + +2003-01-27 Volker Reichelt + + * doc/cppopts.texi: Fix typo. + * doc/objc.texi: Likewise. + * doc/passes.texi: Likewise. + +2003-01-27 Alexandre Oliva + + * real.c (ibm_extended_format): Add 53 to minimum exponent. + (encode_ibm_extended): Adjust. + +2003-01-26 Gabriel Dos Reis + + * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New + timevar_id enumerations. + +2003-01-26 Kazu Hirata + + * combine.c: Fix formatting. + +2003-01-26 Kazu Hirata + + * doc/gccint.texi: Update the copyright. + +2003-01-26 Kazu Hirata + + * doc/cpp.texi: Fix typos. + * doc/extend.texi: Likewise. + * doc/gty.texi: Likewise. + * doc/install.texi: Likewise. + * doc/passes.texi: Likewise. + * doc/rtl.texi: Likewise. + * doc/tm.texi: Likewise. + +2003-01-26 Kazu Hirata + + * config/ia64/fde-glibc.c: Fix comment typos. + * config/ia64/hpux.h: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/ia64.h: Likewise. + * config/ia64/unwind-ia64.c: Likewise. + +2003-01-26 Kazu Hirata + + * config/i386/i386-modes.def: Fix comment typos. + * config/i386/i386.c: Likewise. + * config/i386/i386.md: Likewise. + +2003-01-26 Steven Bosscher + + * config/avr/avr.h, config/cris/aout.h, config/elfos.h, + config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine + ASM_FINISH_DECLARE_OBJECT before defining it. + * toplev.c (rest_of_decl_compilation): Don't define + ASM_FINISH_DECLARE_OBJECT. Only use it if it is defined. + (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function + parameters for DWARF2 targets because they _are_ used. + +2003-01-26 Alexandre Oliva + + * fp-bit.h: Define macros for TFmode floating-point constants + in IBM-extended TFmode types. + (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported + widths. + * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended + TFmode type. + + * config/fp-bit.h: Define macros for TFmode floating-point + constants in IEEE quad TFmode type. Declare functions according + to L_ macros. + (TMODES): Define if __LDBL_MANT_DIG__ is 113. + (TFtype, TItype, UTItype): Define if TMODES is defined. + (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise. + (F_T_BITOFF, D_T_BITOFF): Define. + (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are + guaranteed to be wide enough. + * config/fp-bit.c: Check for L_ macros for tf functions. + (__thenan_tf): New. + (nan): Adjust. + (pack_d, unpack_d): Support IEEE 854 quad type. + (_fpmul_parts): Support TFmode. Compute exponent adjustment + from FRAC_NBITS, FRAC_BITS and NGARDS. + (usi_to_float): Cast constants to be shifted to fractype + instead of assuming long long is wide enough. + (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New. + +2003-01-26 Andreas Jaeger + + * df.c: Remove prototype of unused function df_regno_rtl_debug. + +2003-01-26 Alexandre Oliva + + * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf. + (DBBIT_FUNCS): Added _df_to_tf. + (TPBIT_FUNCS): New. + (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down. + (LIBGCC_DEPS): Added TPBIT. + * mklibgcc.in: Support TPBIT and TPBIT_FUNCS. + + * optabs.c (expand_binop) : Return xtarget if we haven't + been able to move the result to target. + + * expr.c (emit_group_store): Initialize dst with CONST0_RTX + for the appropriate mode. + + * calls.c (emit_library_call_value_1): Handle return values + in a PARALLEL. + + * rtl.c (get_mode_alignment): Moved to... + * stor-layout.c: ... here. + + * print-rtl.c (print_rtx): Don't print MEM details in + GENERATOR_FILEs. + +2003-01-26 Michael Hayes + + * df.h: Update comments, tidy formatting. + (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD, + REVERSE, UNION, INTERSECTION. All uses updated. + (OLD_DF_INTERFACE): Remove. + (struct insn_info): Remove commented out insn field. + * df.c: Update comments, tidy formatting. + (df_def_table_realloc): Remove. + + +2003-01-26 Alan Modra + + * calls.c (save_fixed_argument_area): Tidy. + (restore_fixed_argument_area): Tidy. Set alignment of stack_area. + (expand_call): Comment typo fixes. Don't init low_to_save. Start + call chain loop at 1 if !try_tail_call. Formatting. + (emit_library_call_value_1): Don't init low_to_save or high_to_save. + Use save_fixed_argument_area and restore_fixed_argument_area. + +2003-01-26 Michael Hayes + + * df.c (df_uses_record): Handle CC0. + +2003-01-25 Ulrich Weigand + + * reload.c (maybe_memory_address_p): New function. + (find_reloads_address): Use it instead of memory_address_p. + +2003-01-25 Kaz Kojima + + * final.c (shorten_branches): Align the address of code label + when computing initial lengths and addresses. + +2003-01-25 Kazu Hirata + + * config/m68hc11/m68hc11.md: Fix a comment typo. + +2003-01-25 Andreas Jaeger + + * config/i386/i386.c (x86_output_mi_thunk): Correct test for + TARGET_MACHO. + +2003-01-25 Roger Sayle + + * gcse.c (bypass_last_basic_block): New global variable. + (bypass_block): Use redirect_edge_and_branch_force to redirect + fall-through edges. Use bypass_last_basic_block to determine + which blocks have valid PRE information. + (bypass_conditional_jumps): Initialize bypass_last_basic_block. + +2003-01-25 Jan Hubicka + + * gcse.c (local_cprop_pass): Update reg_sets table when needed. + +2003-01-25 Jan Hubicka + Eric Botcazou + + PR opt/8492 + * gcse.c (one_cprop_pass): Delete unreachable blocks. + +2003-01-25 Richard Henderson + + * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename + from ia64_aix_select_rtx_section. + (ia64_rwreloc_select_section): Simlarly; use default*_1 function + instead of saving and restoring flag_pic. + (ia64_rwreloc_unique_section): Similarly. + * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION, + TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update. + * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION, + TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New. + +2003-01-25 Kazu Hirata + + * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a + comment. + +2003-01-25 Richard Henderson + + * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing. + +2003-01-25 Kelley Cook + + * ggc-simple.c (debug_ggc_tree): Add PTR cast. + +2003-01-25 Segher Boessenkool + + * bitmap.h (BITMAP_WORD): New typedef: fundamental storage + type for bitmaps. Use unsigned long. + (nBITMAP_WORD_BITS): New macro. + (BITMAP_WORD_BITS): New macro. + (rest of file): Use it. + * bitmap.c: Use it. + +2003-01-25 Richard Henderson + + 2002-02-19 Robert Lipe + * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff. + +2003-01-25 Roger Sayle + + * builtins.c (purge_builtin_constant_p): Scan insn stream + sequentially rather than by basic block. + * function.c (purge_addressof): Simplify test with INSN_P. + +2003-01-25 Kazu Hirata + + * combine.c (simplify_comparison, case AND): Remove a redundant test. + +2003-01-25 Roger Sayle + + * function.h (struct function): New field calls_constant_p. + (current_function_calls_constant_p): New macro for above. + * function.c (prepare_function_start): Initialize calls_eh_return + and calls_constant_p. + * builtins.c (expand_builtin_constant_p): Set calls_constant_p. + * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p + when the current_function_calls_constant_p. + * integrate.c (expand_inline_function): Set calls_constant_p if + the function being inlined has calls_constant_p set. + +2003-01-25 Roger Sayle + + * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not + optimizing, even if flag_gcse is true. + * toplev.c (rest_of_compilation): purge_builtin_constant_p + only needs to be called when "optimize > 0 && flag_gcse". + +2003-01-25 Roger Sayle + + * stmt.c (emit_case_bit_tests): New routine to implement suitable + switch statements using the equivalent of "if ((1< + + * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make + __do_global_ctors_aux hidden global and don't put it in + .init_array. + * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here + instead so that it comes first. + +2003-01-25 Jan Hubicka + + * df.c (read_modify_subreg_p): When osize == UNITS_PER_WORD, + subreg is read/modify. + +2003-01-25 Jan Hubicka + + * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently + do libcall for large blocks. + * i386.md (comi patterns): Set type to ssecomi. + (sse2_unpck?pd): Fix mode of vec_select. + + * cse.c: Include except.h + (cse_set_around_loop): Do not create new basic blocks. + * Makefile.in (cse.o): Add dependnecy on except.h + +2003-01-25 Jan Hubicka + + * builtins.c (fold_trunc_transparent_mathfn): New function. + (fold_builtin): Use it. + * convert.c (convert_to_real): Re-enable code to convert + math functions; add support for floor familly functions. + +2003-01-25 Zdenek Dvorak + + * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add + dependencies on coretypes.h and $(TM_H). + +2003-01-25 Jan Hubicka + + * builtins.c (fold_trunc_transparent_mathfn): Undo accidental commit. + +2003-01-24 Stuart Hastings + + * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support. + +2003-01-25 Michael Hayes + + * config/c4x/c4x.md (UNSPEC_BU): New constants. + (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise. + (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise. + (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise. + (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST): Likewise. + (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP): Likewise. + (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST): Likewise. + (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE): Likewise. + +2003-01-24 Jan Hubicka + + * emit-rtl.c (reg_attrs_htab): New static variable. + (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static + functions. + (reg_rtx): Do not maintain regno_decl. + (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx, + set_mem_attrs_from_reg): New global function. + (init_emit): Do not initialize regno_decl. + (init_emit_once): initialize reg_attrs_htab. + * final.c (alter_subreg): Do not replace REG by SUBREG. + (gen_mem_expr_from_op): Improve output. + (output_asm_operands): Likewise. + * function.c (assign_params): Do not set REGNO_DECL. + * function.h (struct function): Kill regno_decl. + (REGNO_DECL): Kill. + * gengtype.c (adjust_field_rtx_def): Handle new field of reg. + * print_rtl.c (print_rtx): Output REG information. + * regclass.c (reg_scan_mark_refs): Update attrs. + * reload1.c (alter_reg): Likewise. + * simplify_rtx.c (simplify_subreg): Likewise. + * stmt.c (expand_decl): Likewise. + * rtl.def (REG): Add new field. + * rtl.h (struct reg_attrs): New. + (rtunion_def): At rtreg. + (X0MEMATTR): Add checking. + (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro. + (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset): + Declare. + * tree.h (SET_DECL_RTL): Call set_decl_rtl. + +2003-01-24 Bob Wilson + + * config/xtensa/xtensa.c: Remove unused include of machmode.h. + (xtensa_emit_call, print_operand): Fix printf format strings + to avoid compile warnings. + (xtensa_function_prologue, xtensa_function_epilogue): Change type + of "size" argument to HOST_WIDE_INT to fix compile warnings. + * config/xtensa/xtensa-protos.h + (xtensa_function_prologue, xtensa_function_epilogue): Ditto. + +2003-01-24 Jan Hubicka + + * builtins.c (DEF_BUILTIN): Accept 10 arguments. + (implicit_built_in_decls): New global array. + (mathfn_built_in): New global function. + (fold_trunc_transparent_mathfn): New static function + (expand_builtin_strstr, expand_bultin_strchr, + expand_builtin_strpbrk, expand_builtin_strcpy, + expand_builtin_strncpy, expand_bultin_strcmp, + expand_bultin_strncat, expand_builtin_fputs): Use + implicint_built_in_decls. + (fold_builtin): Fold floor/trunc/round/ceil/nearbyint. + * builtins.def: Fix comments. + (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN, + DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN, + DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN, + DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed. + (DEF_C99_C90RES_BULTIN): New. + (*f, *l builtins): Update. + * c-common.c (DEF_BUILTIN): Initialize implicit array. + (c_expand_builtin_printf, c_expand_builtin_fprintf): Update. + * convert.c (strip_float_extensions): New global function. + * tree.h (DEF_BUILTIN): Accept 10 arguments. + (implicit_built_in_decls, mathfn_built_in, strip_float_extension): + Declare. + * java/builtins.c (define_builtin): Handle implicit. + (DEF_BUILTIN): Update. + * tm.texi (TARGET_C99_FUNCTIONS): Document. + * defaults.h (TARGET_C99_FUNCTIONS): Default to 0. + * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1 + when using glibc2. + +2003-01-24 Bob Wilson + + * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib, + extra_parts, and fixincludes. Add xtensa/t-elf tmake_file. + (xtensa-*-linux*): Add xtensa/t-linux tmake_file. + * config/xtensa/crti.asm: New file. + * config/xtensa/crtn.asm: New file. + * config/xtensa/t-elf: New file. + * config/xtensa/t-linux: New file. + * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o. + Move various CFLAGS settings to new t-elf file. + +2003-01-24 Richard Henderson + + PR optimization/4382 + * tree-inline.c (find_builtin_longjmp_call_1): New. + (find_builtin_longjmp_call): New. + (inlinable_function_p): Use it. + +2003-01-24 Zdenek Dvorak + + * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare. + * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it. + * config/i386/i386.c (function_arg_pass_by_reference): New. + (ix86_va_arg): Support arguments passed by reference. + +2003-01-24 Zdenek Dvorak + + * cfgloopanal.c: New file. + * cfgloopmanip.c: New file. + * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New. + (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o, + cfglayout.o): Add dependency on cfgloop.h. + (cfgloop.o): Add flags.h dependency. + * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags. + (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed. + (struct loop, struct loops, flow_loops_find, flow_loops_update, + flow_loops_free, flow_loops_dump, flow_loop_dump, + flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove, + LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES, + LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p, + flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge, + loop_latch_edge, add_bb_to_loop, remove_bb_from_loops, + find_common_loop, verify_loop_structure): Declarations moved to ... + * cfgloop.h: New file. + * bb-reorder.c (reorder_basic_blocks): Modified. + * cfglayout.c: Include cfgloop.h. + (cleanup_unconditional_jumps, cfg_layout_redirect_edge, + cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure. + (break_superblocks): New static function. + (cfg_layout_finalize): Use it. + (cfg_layout_split_block): New function. + * cfglayout.h (struct reorder_block_def): Add copy and duplicated + fields. + (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration + changed. + (cfg_layout_split_block): Declare. + * cfgloop.c: Include cfgloop.h and flags.h. + (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find, + get_loop_body): Avoid signed versus unsigned comparison warnings. + (make_forwarder_block, flow_loops_find, loop_preheader_edge, + loop_latch_edge): Modified. + (verify_loop_structure): Modified to use flags stored in loop structure; + check irreducible loops. + (cancel_loop, cancel_loop_tree): New functions. + (estimate_probability): Use loop analysis code for predictions. + (estimate_loops_at_level): Avoid signed versus unsigned comparison + warnings. + * doloop.c: Include cfgloop.h. + * loop.c: Include cfgloop.h. + * predict.c: Include cfgloop.h. + * toplev.c: Include cfgloop.h. + * unroll.c: Include cfgloop.h. + * tracer.c (tracer): Modified. + +2003-01-24 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Fix a typo. + +2003-01-24 Ulrich Weigand + + * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases. + * configure: Regenerate. + + * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype. + (tls_symbolic_reference_mentioned_p): Add prototype. + (s390_tls_get_offset): Add prototype. + (emit_pic_move): Remove prototype, replace by ... + (emit_symbolic_move): .. this new prototype. + + * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define. + (tls_model_chars): New global variable. + (s390_encode_section_info): Encode TLS model. + Use targetm.binds_local_p to check for local symbols. + (s390_strip_name_encoding): New function. + (TARGET_STRIP_NAME_ENCODING): Define. + + (get_thread_pointer): New function. + (legitimize_tls_address): New function. + (legitimize_address): Call it. + (emit_pic_move): Remove, replace by ... + (emit_symbolic_move): ... this new function. + + (larl_operand): Handle TLS operands. + (legitimate_constant_p): Likewise. + (s390_decompose_address): Likewise. + (s390_cannot_force_const_mem): New function. + (TARGET_CANNOT_FORCE_CONST_MEM): Define. + + (s390_output_symbolic_const): Handle TLS unspecs. + (print_operand): New code 'J'. + (machine_function): Add struct member 'some_ld_name'. + (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New. + + (enum s390_builtin): New type. + (code_for_builtin_64, code_for_builtin_31): New global variables. + (s390_init_builtins, s390_expand_builtin): New functions. + (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. + + * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro. + (ASM_OUTPUT_LABELREF): Define. + (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants. + + * config/s390/s390.md: Define TLS UNSPEC constants. + ("movdi", "movsi"): Handle TLS operands. + ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns. + ("*tls_load_64", "*tls_load_31"): New insns. + ("call_value_tls", "call_value_tls_exp"): New expanders. + ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31", + "bas_tls_64", "bas_tls_31"): New insns. + +2003-01-24 Nathan Sidwell + + * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure + spe ABI is configured, if requested. + +2003-01-24 Volker Reichelt + + * doc/passes.texi: Fix typo. + +2003-01-24 Andreas Schwab + + * stor-layout.c (excess_unit_span): Only define if used. + +2003-01-24 Jerry Quinn + + * gcc/doc/invoke.texi (Optimization Options): List -O levels + for each optimization flag. + +2003-01-24 Kazu Hirata + + * config/h8300/h8300.md (*andsi3_ashift_n_lower): New. + +2003-01-24 Volker Reichelt + + * doc/bugreport.texi: Use @command instead of @code for commands. + * doc/collect2.texi: Likewise. + * doc/headerdirs.texi: Likewise. + * doc/invoke.texi: Likewise. + * doc/standards.texi: Likewise. + * doc/tm.texi: Likewise. + * doc/trouble.texi: Likewise. + +2003-01-24 Nick Clifton + + * config/arm/arm.c (use_return_insn): Do not use a single return + instruction for interrupt handelrs which have to create a stack + frame. + (arm_expand_prologue): Do not pre-bias the return address of + interrupt handlers which create a stack frame. + +2003-01-24 Nick Clifton + + * Add sh2e support: + + 2002-08-12 Alexandre Oliva + + * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle + med_cbranches. Fix logic in short_cbranches. + + 2002-04-03 Alexandre Oliva + + * config/sh/sh.md (delay for cbranch): Don't annul delay + slots on SH2e. + * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for + cbranch with unfilled delay slot on SH2e. + (output_branch): Fill with a nop the delay slot of a + branch that required a delay slot but didn't get one. + + 2002-04-02 Alexandre Oliva + + * doc/invoke.texi (SH options): Document -m2e. + * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__. + * config/sh/lib1funcs.asm: Likewise. + * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E. + * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and + not __sh1__. + (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from + SH2E up. + (SH3E_BIT): Renamed to... + (SH_E_BIT): ... this. Replace all uses. + (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2. + Replace all uses of TARGET_SH3E with TARGET_SH2E. + (TARGET_SWITCHES): Added 2e. + (OVERRIDE_OPTIONS): Set sh_cpu for SH2E. + (processor_type): Added PROCESSOR_SH2E. + * config/sh/sh.md: Replace all uses of TARGET_SH3E with + TARGET_SH2E, except in sqrtsf2_i. + (attribute cpu): Added sh2e. + * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e. + (MULTILIB_MATCHES): Use m2e multilib for m3e. + * config.gcc: Add sh2e target support. + +2003-01-24 Phil Edwards + + Rename -W to -Wextra. + * c-decl.c: Update comments. + * c-typeck.c: Likewise. + * flags.h: Likewise. + * function.c: Likewise. + * stmt.c: Likewise. + * toplev.c: Update comments. + (W_options): Add 'extra'. + (display_help): Remove '-W'. + (decode_W_option): Special warn_uninitialized treatment in the case + of -Wextra. + * doc/invoke.texi: Update with new entries. + +2003-01-23 Richard Henderson + + * ifcvt.c (noce_process_if_block): Re-add check vs X being changed + in no-else-block case. Add commentary. + +2003-01-23 Kaveh R. Ghazi + + * configure.in: Revert last change. + +2003-01-23 Kaveh R. Ghazi + + * configure.in: Don't include ansidecl.h in tconfig.h. + * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED): Define if IN_LIBGCC2. + * unwind-dw2-fde.h (last_fde): Use __attribute__, not + ATTRIBUTE_UNUSED. + + * configure: Regenerate. + +2003-01-23 Franz Sirl + + PR java/6748 + * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy + regs->nip. Fix rt_sigreturn frame layout. Add support for newer + kernels. + +2003-01-23 Kaveh R. Ghazi + + * cpplex.c (cpp_interpret_charconst): Squelch warning with cast. + +2003-01-23 Ulrich Weigand + + * genattrtab.c (write_attr_get): Mark 'insn' paramter + as ATTRIBUTE_UNUSED. + +2003-01-23 Richard Earnshaw + + * arm.c (thumb_base_register_rtx_p): New function. + (thumb_index_register_rtx_p): New function. + (thumb_legitimate_address_p): New function. + (thumb_legitimate_offset_p): New function. + * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT. + (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate + definitions. + (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p. + (THUMB_LEGITIMATE_OFFSET): Delte. + (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset. + * arm-protos.h (thumb_legitimate_address_p): Add prototype. + (thumb_legitimate_offset_p): Likewise. + +2003-01-23 Andreas Schwab + + * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused. + +2003-01-23 Kaveh R. Ghazi + + * fixinc/Makefile.in (FL_LIST): Revert last change. + +2003-01-23 Volker Reichelt + + PR other/7341 + * invoke.texi (ftest-coverage): Fix broken cross-reference. + Change @code to @command for gcov command. + + * gcc.texi: Adjust title of gcov section. + Adjust copyright. + * gcov.texi: Likewise. + +2003-01-22 Roger Sayle + + PR optimization/8423 + * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when + its argument is constant, or 0 if !flag_gcse. + * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1 + if it's argument is constant. + * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes. + (hash_scan_set): Don't record CONSTANT_P_RTX expressions. + (do_local_cprop): Don't propagate CONSTANT_P_RTX constants. + * builtins.c (purge_builtin_constant_p): New function to force + instantiation of any remaining CONSTANT_P_RTX nodes. + * rtl.h (purge_builtin_constant_p): Prototype here. + * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p + pass after GCSE and before loop. + (flag_gcse): No longer static. + * flags.h (flag_gcse): Prototype here. + +2003-01-22 Ulrich Weigand + + * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression + introduced by last change. + +2003-01-22 Andreas Schwab + + * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning. + +2003-01-22 Kazu Hirata + + * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't + request a scratch reg on H8S when the shift count is 8. + +2003-01-22 Ulrich Weigand + + * config/s390/s390-protos.h (preferred_la_operand_p): + Remove second parameter. + * config/s390/s390.c (preferred_la_operand_p): Likewise. + * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros. + (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P. + * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove. + Add peepholes to transform ADD to LOAD ADDRESS. + +2003-01-22 Richard Earnshaw + + * arm.c (arm_address_register_rtx_p): New function. + (arm_legitimate_address_p): New function. + (arm_legitimate_index_p): New function. + (legitimize_pic_address): Use arm_legitimate_index_p. + * arm-protos.h (arm_legtimate_address_p): Add prototype. + * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete. + (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p. + +2003-01-22 Hartmut Penner + + * config/s390/s390.md (floatdfdi2): Insn has type 'itof'. + * config/s390/2064.md (define_bypass): Correct 'Load' and + 'Load-address' bypass values. + +2003-01-22 Andreas Schwab + + * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error. + +2003-01-21 Zack Weinberg + + * genautomata.c (output_internal_insn_latency_func, + output_print_reservation_func): Short circuit when there is no + automaton to generate code for. + +2003-01-21 Kaveh R. Ghazi + + * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H). + (df.o): Delete duplicate dependency on coretypes.h $(TM_H). + +2003-01-21 Geoffrey Keating + + * config/rs6000/rs6000.md: Remove warning. + (builtin_setjmp_receiver): Likewise. + * config/darwin.c (update_stubs): Slightly improve terrible hack + with identifiers. Add comment pointing out problems with it. + (update_non_lazy_ptrs): Likewise. + +2003-01-21 Richard Henderson + + * dwarf2out.c (lookup_filename): Fix printf format warning. + * system.h (fread_unlocked, fwrite_unlocked): Undef. + + * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook. + (fixincl.o-warn, gnu-regex.o-warn): New. + * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused. + * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise. + * fixinc/fixincl.c (process): Fix printf format warning. + +2003-01-21 Ulrich Weigand + + * dwarf2out (output_file_names): Don't crash if called + with empty file_table. + +2003-01-21 Zack Weinberg + + * genautomata.c (output_internal_insn_latency_func): Add + missing break statement to generated code. + +2003-01-21 Roger Sayle + + * stmt.c (same_case_target_p): New function to determine whether + two case labels branch to the same target. Split out from... + (group_case_nodes): ... here. Use same_case_target_p instead. + (strip_default_case_nodes): Remove explicit case nodes + that branch to the default destination. + (expand_end_case_type): Call strip_default_case_nodes after + group_case_nodes, to simplify the case-list before we count it. + Only generate table_label RTX when actually needed. Try to share + thiscase->exit_label and thiscase->data.case_stmt.default_label + when a switch has no explicit default case. Simplify test for + constant index. + +2003-01-21 Kazu Hirata + + * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of + \t. + (*negsf2_h8300hs): Likewise. + (*addsi3_lshiftrt_16_zexthi): Likewise. + (*iorhi3_lshiftrt_8): Likewise. + +2003-01-21 Ulrich Weigand + + * dwarf2out.c (fde_table_in_use): Mark GTY. + (dwarf2out_cfi_label_num): New variable, marked GTY. + (dwarf2out_cfi_label): Use it instead of static label_num. + * emit-rtl.c (label_num): Mark GTY. + +2003-01-21 Kazu Hirata + + * config/h8300/h8300.c (output_plussi): Support H8/300. + (compute_plussi_length): Likewise. + (compute_plussi_cc): Likewise. + * config/h8300/h8300.md (addsi_h8300): Use output_plussi to + output assembly instructions. + +2003-01-21 Kaveh R. Ghazi + + * calls.c (fix_unsafe_tree): Prototype. + + * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn) + (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn, + insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn, + c-parse.o-warn): Add -Wno-error. + (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@". + + * configure.in (--enable-werror): Add new flag. + * doc/install.texi (--enable-werror): Document. + * configure: Regenerate. + + * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error. + +2003-01-21 Andreas Schwab + + * genautomata.c (output_internal_insn_latency_func): Fix missing + close paren in output. + +2003-01-21 Zack Weinberg + + * genautomata.c: Space savings in generated code: + (output_dfa_insn_code_func): Split out the table-enlargement + path to an out-of-line static function, dfa_insn_code_enlarge. + (output_internal_insn_latency_func): Use a lookup table for the + default latencies. + (output_print_reservation_func): Use a lookup table for the + strings. + +2003-01-21 Christian Ehrhardt + + PR opt/7507 + * calls.c (fix_unsafe_tree): Split out from ... + (expand_call): ... here. Use it on the function address too. + +2003-01-20 Richard Henderson + + * expr.h (default_must_pass_in_stack): Move decl outside ifdef. + +2003-01-20 Richard Henderson + + PR opt/7154 + * stmt.c (expand_asm_operands): Validize memory operands. + +2003-01-20 Richard Henderson + + PR opt/8848 + * ifcvt.c (noce_process_if_block): Correct arguments to + modified_between_p for no-else-block case. + +2003-01-20 Kazu Hirata + + * config/h8300/h8300.c (const_costs): Remove a warning. + (output_plussi): Likewise. + (compute_plussi_length): Likewise. + (compute_plussi_cc): Likewise. + +2003-01-20 Kazu Hirata + + * config/h8300/h8300.md (addsi_h8300): Remove the last + alternative. + +2003-01-20 Kazu Hirata + + * config/h8300/h8300.c (get_shift_alg): Remove redundant code. + +2003-01-20 Kaveh R. Ghazi + + * system.h (__NO_STRING_INLINES): Define. + +2003-01-20 John David Anglin + + * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x + is not a scalar int mode. + +2003-01-20 Roger Sayle + + * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL + insn's notes following a substitution inside a libcall. + +2003-01-20 Zack Weinberg + + * configure.in: Check for system-provided 'uchar' type. + * configure, config.in: Regenerate. + * cpphash.h: Only typedef 'uchar' if the system doesn't. + +2003-01-20 Richard Henderson + + * expr.h (MUST_PASS_IN_STACK): Move implementation... + * calls.c (default_must_pass_in_stack): ... here. + +2003-01-20 Vladimir Makarov + + * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c. + + * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h. + + * genattr.c (main): Output default definition of AUTOMATON_ALTS. + Wrap up definition of `insn_alts'. + + * genattrtab.c (main): Wrap up `insn_alts'. + +2003-01-20 Kaveh R. Ghazi + + * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before + prototyping. + * configure.in: Check for and ldgetname() prototype. + + * config.in, configure: Regenerate. + +2003-01-20 Nick Clifton + + * config/arm/arm.md (sibcall_epilogue): Add an + UNSPEC_PROLOGUE_USE to prevent the link register from being + considered dead. + +2003-01-20 Jan Hubicka + + * i386.md (SSE cmov splitter): Handle memory operand in operand 5. + +2003-01-20 Andreas Schwab + + * system.h: Don't declare strsignal if the decl test hasn't been + run yet. + +2003-01-20 Kazu Hirata + + * config/h8300/h8300.c (notice_update_cc): Don't assume that + recog_data.operands[0] is always associated with cc0. + +2003-01-19 David Edelsohn + + * collect2.c (ldgetname): Expand declaration to prototype. + * read-rtl.c (atoll): Add prototype. + * system.h (strsignal): Also declare if no declaration found. + +2003-01-19 Alexandre Oliva + + * config.gcc (mips64*-*-linux*): Added. + * config/mips/linux64.h, config/mips/t-linux64: New file. + * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define. + * config/mips/mips.c (override_options): Use it. + * config/mips/mips.h (TARGET_SWITCHES): Added... + (SUBTARGET_TARGET_SWITCHES): New, empty by default. + * Makefile.in (SPECS): New. + (STAGESTUFF, specs, mostlyclean, install-common): Use it. + * gcc.c (process_command): Move self-spec processing past spec + file loading. + * doc/tm.texi (DRIVER_SELF_SPECS): Document the change. + * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for + CRTSTUFF_T_CFLAGS. + (SPECS): Document. + * doc/invoke.texi (-mabi-fake-default): Document. + +2003-01-19 Stephane Carrez + + * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word, + z_reg, z_reg_qi): Declare static and GTY(). + (da_reg): Remove. + (create_regs_rtx): Don't create da_reg. + ("gt-m68hc11.h"): Include for GTY roots. + * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern + and GTY() here. + (m68hc11_compare_op0, m68hc11_compare_op1): Likewise. + (m68hc11_soft_tmp_reg): Likewise. + * config/m68hc11/m68hc11-protos.h: Remove above declarations. + +2003-01-18 Kazu Hirata + + * basic-block.h: Fix comment formatting. + * calls.c: Likewise. + * combine.c: Likewise. + * convert.c: Likewise. + * gcov.c: Likewise. + * haifa-sched.c: Likewise. + * libgcc2.c: Likewise. + * loop.c: Likewise. + * profile.c: Likewise. + * system.h: Likewise. + +2003-01-18 Roger Sayle + + * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs. + +2003-01-17 Kaveh R. Ghazi + + * ra-build.c (undef_to_size_word): Avoid `switch' warning. + +2003-01-17 Dale Johannesen + + * config/rs6000/rs6000.md (*floatsidf2_internal): Add earlyclobbers. + (*floatunssidf2_internal): Ditto. + +2003-01-17 Kazu Hirata + + * alias.c: Fix comment typos. + * basic-block.h: Likewise. + * c-common.c: Likewise. + * c-common.h: Likewise. + * c-decl.c: Likewise. + * c-opts.c: Likewise. + * c-pragma.c: Likewise. + * c-pretty-print.h: Likewise. + * cfg.c: Likewise. + * cfganal.c: Likewise. + * cfgbuild.c: Likewise. + * cfgcleanup.c: Likewise. + * cfglayout.c: Likewise. + * cfgrtl.c: Likewise. + * convert.c: Likewise. + * cpphash.h: Likewise. + * cpplex.c: Likewise. + * cpplib.h: Likewise. + * df.h: Likewise. + * diagnostic.c: Likewise. + * diagnostic.h: Likewise. + * dwarf2.h: Likewise. + +2003-01-17 Stan Shebs + + * config/darwin-protos.h: Forward-declare struct cpp_reader. + +2003-01-17 Douglas B Rupp + + * config/alpha/alpha.c (alpha_need_linkage): Fix obvious + mistake in last checkin. + +2003-01-17 Kazu Hirata + + * et-forest.c: Fix comment typos. + * et-forest.h: Likewise. + * except.c: Likewise. + * expr.c: Likewise. + * flags.h: Likewise. + * flow.c: Likewise. + * gcc.c: Likewise. + * gcse.c: Likewise. + * genattrtab.c: Likewise. + * genautomata.c: Likewise. + * gengtype.c: Likewise. + * genrecog.c: Likewise. + * global.c: Likewise. + * gthr-rtems.h: Likewise. + +2003-01-17 Kaveh R. Ghazi + + * i386.c (x86_function_profiler): Fix format specifier. + +2003-01-17 Richard Henderson + + * gengtype.c (walk_type): Allow paramN_is. + +2003-01-17 Nick Clifton + + * config/i960/t-960bare (i960-c.o): Add missing newline escape. + +2003-01-16 Richard Henderson + + * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing. + +2003-01-16 Richard Henderson + + * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY. + (alpha_next_sequence_number): Likewise. + (alpha_this_literal_sequence_number): Likewise. + (alpha_this_gpdisp_sequence_number): Likewise. + (struct alpha_funcs, alpha_funcs_num): Likewise. + (struct alpha_links): Fix branch merge error. + (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs. + +2003-01-17 Alexandre Oliva + + * config/mips/mips.h: Don't use #elif. Reported by Kaveh + R. Ghazi. + +2003-01-16 Kazu Hirata + + * ifcvt.c: Fix comment typos. + * lcm.c: Likewise. + * libgcc2.c: Likewise. + * local-alloc.c: Likewise. + * loop.c: Likewise. + * predict.c: Likewise. + * ra-build.c: Likewise. + * ra.c: Likewise. + * ra-colorize.c: Likewise. + * ra.h: Likewise. + * ra-rewrite.c: Likewise. + * regmove.c: Likewise. + * reload.h: Likewise. + * rtlanal.c: Likewise. + * toplev.c: Likewise. + * tree.h: Likewise. + * unwind-dw2-fde-glibc.c: Likewise. + * vmsdbgout.c: Likewise. + +2003-01-16 Richard Henderson + + * dwarf2out.c (struct file_table): Remove. + (FILE_TABLE_INCREMENT): Remove. + (file_table): Make a varray; mark for GC. Update all users. + (file_table_last_lookup_index): Extract from struct file_table. + (output_file_names): Fix unsigned compare warnings. + (add_name_attribute): Remove inline marker. + (add_comp_dir_attribute): Split out from gen_compile_unit_die. + (lookup_filename): Don't manage size of file_table. + (init_file_table): Allocate file_table with GC. + (dwarf2out_init): Don't record main_input_filename here. + (dwarf2out_finish): Do it here instead. + +2003-01-16 Bruce Korb + + * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too. + +2003-01-16 Kaz Kojima + + * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr + instead of rotldi3_mextr. + +2003-01-16 Vladimir Makarov + + * haifa-sched.c (move_insn): Restore moving all schedule group. + (set_priorities): Restore taking SCHED_GROUP_P into account. + + * sched-deps.c (add_dependence): Restore processing the last group + insn. + (remove_dependence, group_leader): Restore the functions. + (set_sched_group_p): Restore adding dependencies from previous insn + in the group. + (compute_forward_dependences): Restore usage of group_leader. + + * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into + account. + + * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into + account. + (can_schedule_ready_p): Ditto. + (add_branch_dependences): Restore skipping over the group insns. + +2003-01-16 Stephane Carrez + + * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling + 68HC12 pre/post inc/dec side effects. + +2003-01-16 Stephane Carrez + + * config/m68hc11/m68hc11.h (MASK_M6812): Define. + +2003-01-16 J"orn Rennecke + + * sh.md (mshflo_w_x): Fix description of operation. + +2003-01-16 Zack Weinberg + + * config/rs6000/rs6000.h: Mention Altivec registers in + commentary. Fix typo. + +2003-01-16 David Edelsohn + + * config/rs6000/rs6000.md (movti_string): Remove clobber. + * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly + generate PARALLEL with clobber for TARGET_POWER. + +2003-01-16 Kaveh R. Ghazi + + * ra-colorize.c (colorize_one_web): Initialize variable. + * regmove.c (fixup_match_1): Likewise. + * reload1.c (reload_as_needed): Likewise. + * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast. + +2003-01-16 Zdenek Dvorak + + * cfgloop.c (flow_loops_find): Fix handling of abnormal edges. + +2003-01-16 Kaveh R. Ghazi + + * dbxout.c (lastfile, cwd): Fix `unused' warning. + * dwarf2out.c (fde_table_in_use, current_funcdef_fde, + dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset, + is_main_source, file_table, decl_die_table_in_use, + abbrev_die_table_in_use, line_info_table_in_use, + separate_line_info_table_in_use, pubname_table_in_use, + arange_table_in_use, ranges_table_in_use, + current_function_has_inlines): Likewise. + * flow.c (life_analysis): Likewise. + * genemit.c (gen_insn): Likewise. + * protoize.c (cplus_suffix): Likewise. + + * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP. + * arm.h (ROUND_UP_WORD): Likewise. + + * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned + warning. + * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos, + init_emit_once): Likewise. + * flow.c (mark_regs_live_at_end, calculate_global_regs_live): + Likewise. + * function.c (assign_stack_temp_for_type): Likewise. + * loop.c (loop_invariant_p): Likewise. + * recog.c (push_operand): Likewise. + * regclass.c (init_reg_sets_1): Likewise. + * reload.c (update_auto_inc_notes): Likewise. + * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise. + * stmt.c (expand_asm_operands): Likewise. + * stor-layout.c (start_record_layout): Likewise. + +2003-01-16 Herman A.J. ten Brugge + + * config/c4x/c4x.md (epilogue): Correct last patch. + +2003-01-15 Richard Henderson + + * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum; + also check that GP is being used. + (alpha_find_lo_sum_using_gp): New. + (alpha_does_function_need_gp): Use get_attr_usegp. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md (attr usegp): New. Annotate patterns + as needed. + +2003-01-15 Roger Sayle + + * gcse.c (one_cprop_pass): Change function arguments to take both + cprop_jumps and bypass_jumps flags instead of just alter_jumps. + (gcse_main): Update calls to one_cprop_pass, disabling bypassing. + (bypass_jumps): New function to perform separate jump bypassing pass. + * rtl.h (bypass_jumps): Add function prototype. + * timevar.def (TV_BYPASS): New timing variable. + * toplev.c (enum dump_file_index): Add new entry DFI_bypass. + (dump_file): New entry for the bypass RTL dump file. + (rest_of_compilation): Insert new jump bypassing optimization + pass after loop. + * doc/passes.texi: Document new pass. + +2003-01-15 John David Anglin + + * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY, + ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define. + * pa.h (TARGET_SOM_SDEF): Define. + * pa-hpux11.h (TARGET_SOM_SDEF): Define. + +2003-01-16 Stephane Carrez + + * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to + allocate 4-bytes of locals on 68HC11. + (expand_epilogue): Likewise. + (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers. + +2003-01-15 Stephane Carrez + + * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort + and -mshort-double to the assembler to specify the ABI. + (LINK_SPEC): Likewise. + (CPP_SPEC): Pass HCS12 specific define. + (MASK_M68S12): New define. + (TARGET_M68S12): Likewise. + (TARGET_SWITCHES): New options -m68hcs12 and -m68S12. + (TARGET_VERSION): Update. + * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define. + (LINK_SPEC): Update. + (ASM_SPEC): Update. + * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update. + * doc/invoke.texi (M68hc1x Options): Document -m68hcs12. + +2003-01-15 Stephane Carrez + + * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit + the return code. + +2003-01-15 Josef Zlomek + + * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU + flag before setting it. + +2003-01-15 Roger Sayle + + * c-semantics.c (genrtl_while_stmt): Improve initial RTL generation + when loop condition is known true, i.e. "while (1) { ... }". + (genrtl_for_stmt): Similarly for "for" statements. + +2003-01-15 Roger Sayle + + * real.c (real_sqrt): Return a bool result indicating whether + a floating point exception or trap should be raised. + * real.h (real_sqrt): Update function prototype. + * builtins.c (fold_builtin): Only fold non-trapping square + roots unless we're ignoring errno and trapping math. + +2003-01-15 John David Anglin + + * expr.h (emit_conditional_add): Add PARAMS to declaration. + * gengtype-lex.l (malloc, realloc): Move defines after include of + system.h. Remove duplicate include of system.h. + +2003-01-15 Roger Sayle + + PR middle-end/9009 + * optabs.c (expand_unop): When manipulating the FP sign bit + using integer operations, account for targets with different + integer and FP word orders. + (expand_abs): Likewise. + +2003-01-15 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include + file extension in section name. + +2003-01-15 Richard Earnshaw + + * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with + constant offset. + +2003-01-15 Richard Earnshaw + + * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define. + (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define. + (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses. + (ARM_PRINT_OPERAND_ADDRESS): Likewise. + +2003-01-15 Jan Hubicka + + PR f/9258 + * global.c (struct allocno): Add no_stack_reg. + (global_conflicts): Set no_stack_reg. + (find_reg): Use it. + + * convert.c (convert_to_real): Fold - and abs only when profitable. + * fold-const.c (fold): Fold truncates in - and abs. + +2003-01-15 Josef Zlomek + + Segher Boessenkool + + * predict.c (real_inv_br_prob_base): New variable. + (propagate_freq): Use multiply by reciprocal instead of + division. Don't divide by 1.0 at all. + (estimate_bb_frequencies): Similar. + +2003-01-15 Alexandre Oliva + + * configure.in (libgcc_visibility): Force disabled on IRIX 6 too. + * configure: Rebuilt. + +2003-01-15 Hartmut Penner + + * config/s390/s390.c (s390_safe_attr_type): New function. + (s390_use_dfa_pipeline_interface): New function, return true for z900. + (s390_issue_rate): New function. + (s390_agen_dep_p): New function. + (addr_generation_dependency_p): Use 's390_safe_attr_type'. + (s390_adjust_cost): Return 'cost' if new DFA is used. + (s390_adjust_priority): Delete function. + * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype. + * config/s390/s390.md (atype attribute): Attribute 'atype' default + determined by 'op_type'. + (type attribute): Added more type attributes. + * config/s390/2064.md: New DFA description for z900 pipeline. + +2003-01-15 Alexandre Oliva + + * config/i386/i386.c (ix86_expand_vector_move): Validize constant + forced to memory. Fixes PR bootstrap/9036. + + * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as + to set $gp before the call. + +2003-01-14 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_mov): Use correct mode + for force_const_mem. + +2003-01-14 Kaveh R. Ghazi + + * genattr.c (main): Rearrange output to avoid prototype warning. + * genautomata.c (transform_3): Fix ambiguous-else warning. + * local-alloc.c (requires_inout): Add parentheses around + assignment used as truth-value. + * timevar.c: Move system includes above local includes. Include + toplev.h + * Makefile.in (timevar.o): Depend on toplev.h. + +2003-01-14 Denis Chertykov + + * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. + (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. + + * config/ip2k/ip2k.c (ip2k_attribute_table): New table of + attributes. + (TARGET_ATTRIBUTE_TABLE): New macro. + (valid_machine_type_attribute): Remove. + (valid_machine_decl_attribute): Remove. + (ip2k_handle_progmem_attribute): New function. + (ip2k_handle_fndecl_attribute): New function. + +2003-01-10 Andrew Haley + + * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename + registers to be in correct order. Add rip. + +2003-01-14 Kazu Hirata + + * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New. + (*iorsi3_and_lshiftrt_9_sb): Likewise. + +2003-01-14 Jan Hubicka + + * convert.c (strip_float_extensions): Look for narrowest type handling + FP constants. + + * fold-const.c (fold): Fold (double)float1 CMP (double)float2 into + float1 CMP float2. + * convert.c (strip_float_extensions): Make global. + * tree.h (strip_float_extensions): Declare. + +2003-01-14 Gabriel Dos Reis + + * timevar.def: define TV_NAME_LOOKUP. + * timevar.c (timevar_pop): Be verbose when aborting. + +2003-01-13 Andreas Schwab + + * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to + $(parsedir), just move the temporary file at the end. + ($(parsedir)/gengtype-yacc.c): Likewise. + +2003-01-13 Alexandre Oliva + + * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend + ${ac_tool_prefix} to ADAC or CC. Protect them from word + splitting. + * configure: Rebuilt. + +2003-01-13 Kaveh R. Ghazi + + * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup, + internal_mcount): Don't use PARAMS. + (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to + ISO C style. + (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED. + +2003-01-13 Andreas Schwab + + * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type + directive. + +2003-01-13 Kazu Hirata + + * config/h8300/h8300.md (*andsi3_lshift_n_sb): New. + (*iorsi3_and_lshiftrt_n_sb): Likewise. + +2003-01-12 Mark Mitchell + + PR c++/9264 + * c-lex.c (c_lex): Set the token value to error_mark_node for + invalid numeric constants. + +2003-01-12 Kaveh R. Ghazi + + * c-pch.c (asm_file_startpos): Change to `long'. + (pch_init): Use ftell, not ftello. + (c_common_write_pch): Use ftell/fseek, not ftello/fseeko. + Use `long' instead of `off_t'. + (c_common_read_pch): Likewise. + * ggc-common.c (gt_pch_save): Use long/ftell instead of + off_t/ftello. + +2003-01-12 Alan Modra + + * expr.c (expand_expr ): Correct recursive call args. + +2003-01-11 Richard Earnshaw (rearnsha@arm.com) + + * arm-protos.h (struct cpp_reader): Add declaration. + +2003-01-11 Jan Hubicka + + PR target/9068 + * i386.c (output_fp_compare): Fix typo. + +2003-01-10 David Edelsohn + + * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH. + +2003-01-10 Geoffrey Keating + + * Makefile.in (parsedir): New variable. + (docobjdir): New variable. + (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o, + gengtype-lex.c, gengtype-yacc.c): Use parsedir. + (info, cpp.info, gcc.info, gccint.info, gccinstall.info, + cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7, + gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man): + Use docobjdir. + * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y, + objc.maintainer-clean): Use parsedir. + + * varasm.c (struct constant_descriptor_rtx): Remove unused + `label' field. + + * toplev.c (documented_lang_options): Document -Winvalid-pch. + +2003-01-10 Richard Henderson + + * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set. + (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill. + +2003-01-10 Richard Henderson + + * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P, + not INTEGRAL_MODE_P when widening extensions. + +2003-01-10 Richard Henderson + + * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC. + +2003-01-10 Geoffrey Keating + + * ggc-page.c (ggc_collect): Avoid overflow computing + min_expand. + + * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native. + (RANLIB_TEST_FOR_TARGET): Delete. Don't pass down to sub-makes. + Remove calls. + * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET. + +2003-01-10 Jan Hubicka + + * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add + with weird operands. + +2003-01-10 Dale Johannesen + + * calls.c (load_register_parameters): Add is_sibcall, sibcall_failure + parameters. Call check_sibcall_argument_overlap if indicated. + (check_sibcall_argument_overlap): Add mark_stored_args_map + parameter. Don't mark parameter area as clobbered if not set. + (expand_call): Adjust calls to above. + +2003-01-10 Kelley Cook + + * configure.in (linker read-only and read-write section mixing): + Squelch some assembler warnings. + * configure: Likewise. + +2003-01-10 Hartmut Penner + + * doc/invoke.texi: Document -mtune, delete -mcpu + option for S/390 and zSeries. + * config/s390/s390.c (s390_tune_string) New variable. + (s390_cpu_string) Delete variable. + (override_options): Use s390_tune_string instead of + s390_cpu_string. + * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'. + +2003-01-10 Kazu Hirata + + * config/h8300/h8300.md (*iorsi3_ashift_31): New. + +2003-01-10 Josef Zlomek + + * jump.c (next_nonnote_insn_in_loop): New function. + (copy_loop_headers): Use next_nonnote_insn_in_loop instead of + next_nonnote_insn. + (duplicate_loop_exit_test). Likewise. + +2003-01-09 Geoffrey Keating + + Merge from pch-branch: + + 2003-01-06 Geoffrey Keating + + * ggc-page.c (ggc_pch_read): Update the statistics after a PCH + load. + + 2002-12-24 Geoffrey Keating + + * cpplib.c (count_registered_pragmas): New function. + (save_registered_pragmas): New function. + (_cpp_save_pragma_names): New function. + (restore_registered_pragmas): New function. + (_cpp_restore_pragma_names): New function. + * cpphash.h (_cpp_save_pragma_names): Prototype. + (_cpp_restore_pragma_names): Likewise. + * cpppch.c (struct save_macro_item): Split from save_macro_data. + (struct save_macro_data): New field 'saved_pragmas'. + (save_macros): Update for changes to struct save_macro_data. + (cpp_prepare_state): Call _cpp_save_pragma_names, update + for changes to struct save_macro_data. + (cpp_read_state): Call _cpp_restore_pragma_names, update + for changes to struct save_macro_data. + + * cpppch.c (cpp_read_state): Restore the hashtable references + in the cpp_reader. + + * tree.h (built_in_decls): Mark for PCH. + + * dbxout.c (lastfile): Don't mark for PCH. + + * ggc.h: Document PCH calls into memory managers. + + 2002-12-18 Geoffrey Keating + + * doc/invoke.texi (Precompiled Headers): Document the + directory form of PCH. + * cppfiles.c (validate_pch): New function. + (open_file_pch): Search suitably-named directories for PCH files. + + 2002-12-14 Geoffrey Keating + + * doc/gty.texi (GTY Options): Document chain_next, chain_prev, + reorder options. + (Type Information): Mention that the information is also + used to implement PCH. + * doc/passes.texi (Passes): Improve documentation of + language-specific files. + + 2002-12-11 Geoffrey Keating + + * gengtype.c (struct write_types_data): Add reorder_note_routine field. + (struct walk_type_data): Add reorder_fn field. + (walk_type): Process 'reorder' option. + (write_types_process_field): Reorder parameters to gt_pch_note_object, + call reorder_note_routine. + (write_func_for_structure): Reorder parameters to gt_pch_note_object. + (ggc_wtd): Update for change to struct write_types_data. + (pch_wtd): Likewise. + * ggc.h (gt_pch_note_object): Reorder parameters. + (gt_handle_reorder): New definition. + (gt_pch_note_reorder): New prototype. + * ggc-common.c (struct ptr_data): Add reorder_fn. + (gt_pch_note_object): Reorder parameters. + (gt_pch_note_reorder): New. + (gt_pch_save): Call reorder_fn. + * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object. + + * dbxout.c (cwd): Don't mark for PCH. + + 2002-12-09 Geoffrey Keating + + * gengtype.c (finish_root_table): Fix some warnings. + (write_root): Handle TYPE_STRING. + * ggc.h (gt_ggc_m_S): Add prototype. + * stringpool.c (gt_ggc_m_S): New function. + + 2002-11-30 Geoffrey Keating + + * dwarf2out.c (dw2_string_counter): New. + (AT_string_form): Use it. + (same_dw_val_p): Update for removal of hashtable.h hash tables. + + 2002-11-22 Geoffrey Keating + + * dbxout.c: Include gt-dbxout.h. + (lastfile): Mark for PCH/GGC. + (cwd): Likewise. + (struct typeinfo): Likewise. + (typevec): Likewise. + (typevec_len): Likewise. + (next_type_number): Likewise. + (struct dbx_file): Likewise. + (current_file): Likewise. + (next_file_number): Likewise. + (dbxout_init): Allocate typevec, struct dbx_file with GGC. + (dbxout_start_source_file): Allocate struct dbx_file with GGC. + (dbxout_end_source_file): Don't free struct dbx_file. + (dbxout_type): Use GGC to allocate typevec. + * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H). + (GTFILES): Add dbxout.c. + (gt-dbxout.h): New rule. + + * Makefile.in (c-pch.o): Add debug.h as dependency. + * c-pch.c: Include debug.h. + (pch_init): Call start_source_file to keep nesting right. + (c_common_read_pch): Add orig_name parameter. Call + start_source_file debug hook. Call end_source_file debug hook. + * c-common.h (c_common_read_pch): Update prototype. + * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch + callback. + * cppfiles.c (struct include_file): Add new field `header_name'. + (find_or_create_entry): Default it to `name'. + (open_file_pch): Set it to the original header file searched for. + (stack_include_file): Don't stack an empty buffer, just handle + PCH files immediately. Pass header_name field to read_pch callback. + + 2002-11-19 Geoffrey Keating + + * function.c (funcdef_no): Mark to be saved in a PCH. + + 2002-11-15 Geoffrey Keating + + * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'. + + * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'. + + 2002-11-14 Geoffrey Keating + + * optabs.h (code_to_optab): Add GTY marker. + + 2002-11-13 Geoffrey Keating + + * Makefile.in (GTFILES): Add cpplib.h. + * c-common.h (struct c_common_identifier): Don't skip 'node' field. + * c-decl.c (build_compound_literal): Don't use var_labelno. + * cpplib.h (struct cpp_hashnode): Use gengtype to mark. + * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno. + * varasm.c (const_labelno): Use gengtype to mark. + (var_labelno): Likewise. + (in_section): Likewise. + (in_named_name): Likewise. + (struct in_named_entry): Likewise. + (in_named_htab): Likewise. + (set_named_section_flags): Use GGC to allocate struct in_named_entry. + (init_varasm_once): Use GGC to allocate in_named_htab. + * config/darwin.c (current_pic_label_num): Mark for PCH. + + 2002-11-11 Geoffrey Keating + + * ggc-simple.c (init_ggc_pch): New stub procedure. + (ggc_pch_count_object): Likewise. + (ggc_pch_total_size): Likewise. + (ggc_pch_this_base): Likewise. + (ggc_pch_alloc_object): Likewise. + (ggc_pch_prepare_write): Likewise. + (ggc_pch_write_object): Likewise + (ggc_pch_finish): Likewise. + (ggc_pch_read): Likewise. + + 2002-11-08 Geoffrey Keating + + * c-pch.c (c_common_write_pch): Write the macro definitions after + the GCed data. + (c_common_read_pch): Call cpp_prepare_state. Restore the macro + definitions after the GCed data. + * cpplib.c (save_macros): New. + (reset_ht): New. + (cpp_write_pch_deps): Split out of cpp_write_pch. + (cpp_write_pch_state): Split out of cpp_write_pch. + (cpp_write_pch): Delete. + (struct save_macro_data): Delete. + (cpp_prepare_state): New. + (cpp_read_state): Erase and restore initial macro definitions. + * cpplib.h (struct save_macro_data): Forward-declare. + (cpp_write_pch_deps): Prototype. + (cpp_write_pch_state): Prototype. + (cpp_write_pch): Delete prototype. + (cpp_prepare_state): Prototype. + (cpp_read_state): Add fourth argument. + + 2002-11-04 Geoffrey Keating + + * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields. + (write_array): Remove warning. + + * gengtype.c (contains_scalar_p): New. + (finish_root_table): Add the table to all languages, even if it's + empty. + (write_roots): Output gt_pch_scalar_rtab. + * ggc-common.c (gt_pch_save): Write out scalars. + (gt_pch_restore): Read scalars back. + + * ggc-page.c (OBJECTS_IN_PAGE): New macro. + (struct page_entry): Delete pch_page field. + (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE. + (clear_marks): Likewise. + (sweep_pages): Likewise. + (poison_pages): Likewise. + (ggc_print_statistics): Likewise. + (ggc_pch_read): Don't free objects read from a PCH. + Properly set up in_use_p and page_tails. + + 2002-10-25 Geoffrey Keating + + * gengtype.c (struct write_types_data): New. + (struct walk_type_data): Make `cookie' const; add extra + prev_val item; add `orig_s' field. + (walk_type): Update prev_val[3]. + (write_types_process_field): New. + (write_func_for_structure): Take write_types_data structure. + (write_types): New. + (ggc_wtd): New. + (pch_wtd): New. + (write_types_local_process_field): New. + (gc_mark_process_field): Delete. + (write_local_func_for_structure): New. + (gc_mark_func_name): Delete. + (write_gc_types): Delete. + (write_local): New. + (finish_root_table): Don't include 'ggc_' in PFX. + (write_root): Rename from write_root. Fill pchw field of structures. + (write_array): New. + (write_roots): Rename from write_gc_roots. Split out to write_array. + Update to changes to other routines. Write gt_pch_cache_rtab table. + (main): Write PCH walking routines. + * ggc-common.c: Include toplev.h, sys/mman.h. + (ggc_mark_roots): For cache hashtables, also mark the hash table + and the array of entries. + (saving_htab): New. + (struct ptr_data): New. + (POINTER_HASH): New. + (gt_pch_note_object): New. + (saving_htab_hash): New. + (saving_htab_eq): New. + (struct traversal_state): New. + (call_count): New. + (call_alloc): New. + (compare_ptr_data): New. + (relocate_ptrs): New. + (write_pch_globals): New. + (struct mmap_info): New. + (gt_pch_save): New. + (gt_pch_restore): New. + * ggc-page.c (ROUND_UP_VALUE): New. + (ROUND_UP): New. + (struct page_entry): Add field `pch_page'. + (init_ggc): Use ROUND_UP. + (struct ggc_pch_data): Declare. + (init_ggc_pch): New. + (ggc_pch_count_object): New. + (ggc_pch_total_size): New. + (ggc_pch_this_base): New. + (ggc_pch_alloc_object): New. + (ggc_pch_prepare_write): New. + (ggc_pch_write_object): New. + (ggc_pch_finish): New. + (ggc_pch_read): New. + * ggc.h (gt_pointer_operator): New. + (gt_note_pointers): New. + (gt_pch_note_object): New prototype. + (gt_pointer_walker): New. + (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field. + (LAST_GGC_ROOT_TAB): Update. + (gt_pch_cache_rtab): Declare. + (gt_pch_scalar_rtab): Declare. + (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field. + (LAST_GGC_CACHE_TAB): Update. + (gt_pch_save_stringpool): Declare. + (gt_pch_restore_stringpool): Declare. + (gt_pch_p_S): Declare. + (gt_pch_n_S): Declare. + (struct ggc_pch_data): Forward-declare. + (init_ggc_pch): Declare. + (ggc_pch_count_object): Declare. + (ggc_pch_total_size): Declare. + (ggc_pch_this_base): Declare. + (ggc_pch_alloc_object): Declare. + (ggc_pch_prepare_write): Declare. + (ggc_pch_write_object): Declare. + (ggc_pch_finish): Declare. + (ggc_pch_read): Declare. + (gt_pch_save): Declare. + (gt_pch_restore): Declare. + * fold-const.c (size_int_type_wide): Allocate size_htab using GGC. + * emit-rtl.c (init_emit_once): Allocate const_int_htab, + const_double_htab, mem_attrs_htab using GGC. + * c-pch.c: Include ggc.h. + (pch_init): Allow reading PCH file back. + (c_common_write_pch): Call gt_pch_save. + (c_common_read_pch): Call gt_pch_restore. + * c-parse.in (init_reswords): Delete now-untrue comment. + Allocate ridpointers using GGC. + * c-objc-common.c (c_objc_common_finish_file): Write PCH before + calling expand_deferred_fns. + * c-common.h (ridpointers): Mark for GTY machinery. + * Makefile.in (stringpool.o): Update dependencies. + (c-pch.o): Update dependencies. + (ggc-common.o): Update dependencies. + * stringpool.c: Include gt-stringpool.h. + (gt_pch_p_S): New. + (gt_pch_n_S): New. + (struct string_pool_data): New. + (spd): New. + (gt_pch_save_stringpool): New. + (gt_pch_restore_stringpool): New. + * tree.c (init_ttree): Make type_hash_table allocated using GC. + + 2002-10-04 Geoffrey Keating + + * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf. + (output_mangled_typename): Don't pass size_t to printf. + + * tree.h (union tree_type_symtab): Add tag to `address' field. + (union tree_decl_u2): Add tag to 'i' field. + * varasm.c (union rtx_const_un): Add tags to all fields. + * gengtype.c (struct walk_type_data): New. + (output_escaped_param): Take struct walk_type_data parameter. + (write_gc_structure_fields): Delete. + (walk_type): New. + (write_gc_marker_routine_for_structure): Delete. + (write_func_for_structure): New. + (gc_mark_process_field): New. + (gc_mark_func_name): New. + (gc_counter): Delete. + (write_gc_types): Use write_func_for_structure. + (write_gc_roots): Use walk_type. + + 2002-10-02 Geoffrey Keating + + * ggc-common.c (ggc_mark_roots): Delete 'x'. + (ggc_splay_dont_free): Fix warning about unused 'x'. + (ggc_print_common_statistics): Remove warnings. + + 2002-10-01 Mike Stump + + * ggc-common.c (ggc_splay_alloc): Actually return the allocated area. + * gengtype.c (write_gc_structure_fields): Handle param[digit]_is. + + 2002-09-01 Geoffrey Keating + Catherine Moore + + * Makefile (c-pch.o): Update dependencies. + (LIBCPP_OBJS): Add cpppch.o. + (cpppch.o): New. + * c-common.c (c_common_init): Don't call pch_init here. + * c-common.h (c_common_read_pch): Update prototype. + * c-lex.c (c_common_parse_file): Call pch_init here. + * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps. + (c_common_decode_option): Handle them. + * c-pch.c: Include c-pragma.h. + (save_asm_offset): Delete. + (pch_init): Move contents of save_asm_offset into here, call + cpp_save_state. + (c_common_write_pch): Call cpp_write_pch. + (c_common_valid_pch): Warn only when -Winvalid-pch. Call + cpp_valid_state. + (c_common_read_pch): Add NAME parameter. Call cpp_read_state. + * cppfiles.c (stack_include_file): Update for change to + parameters of cb.read_pch. + * cpphash.h (struct cpp_reader): Add `savedstate' field. + * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and + `restore_pch_deps' fields. + (struct cpp_callbacks): Add NAME parameter to `read_pch'. + (cpp_save_state): Prototype. + (cpp_write_pch): Prototype. + (cpp_valid_state): Prototype. + (cpp_read_state): Prototype. + * cpppch.c: New file. + * flags.h (version_flag): Remove prototype. + * mkdeps.c (deps_save): New. + (deps_restore): New. + * mkdeps.h (deps_save): Prototype. + (deps_restore): Prototype. + * toplev.c (late_init_hook): Delete. + (version_flag): Make static again. + (compile_file): Don't call late_init_hook. + * toplev.h (late_init_hook): Delete. + * doc/cppopts.texi: Document -fpch-deps. + * doc/invoke.texi (Warning Options): Document -Winvalid-pch. + + 2002-08-27 Geoffrey Keating + + * c-pch.c (c_common_write_pch): Rename from c_write_pch, change + callers. + (c_common_valid_pch): Rename from c_valid_pch, change callers. + (c_common_read_pch): Rename from c_read_pch, change callers. + + * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have + a space between it and its argument. + + 2002-08-24 Geoffrey Keating + + * c-pch.c: New file. + * toplev.h (late_init_hook): Declare. + * toplev.c (late_init_hook): Define. + (version_flag): Make globally visible. + (compile_file): Call late_init_hook. + (init_asm_output): Make output file seekable. + * gcc.c (default_compilers): Update c-header rule. + * flags.h (version_flag): Declare. + * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch' + fields. + * cppfiles.c (struct include_file): Add 'pch' field. + (INCLUDE_PCH_P): New. + (open_file_pch): New. + (stack_include_file): Handle PCH files specially. + (find_include_file): Call open_file_pch instead of open_file. + (_cpp_read_file): Explain why open_file is used instead of + open_file_pch. + * c-opts.c (c_common_decode_option): Correct OPT__output_pch case. + * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch. + * c-lex.c (init_c_lex): Set valid_pch and read_pch fields + in cpplib callbacks. + * c-common.c (pch_file): Correct comment. + (allow_pch): Define. + (c_common_init): Call pch_init. + * c-common.h (allow_pch): Declare. + (pch_init): Declare. + (c_valid_pch): Declare. + (c_read_pch): Declare. + (c_write_pch): Declare. + * Makefile.in (c-pch.o): New. + (C_AND_OBJC_OBJS): Add c-pch.o. + * doc/invoke.texi (Precompiled Headers): Add index entries, + complete truncated paragraph. + + 2002-08-17 Geoffrey Keating + + * c-common.c: (pch_file): Define. + * c-common.h (pch_file): Declare. + * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=. + (missing_arg): Require --output-pch= to have an argument. + (c_common_decode_option): Handle --output-pch=. + * gcc.c: Document new %V. + (default_compilers): Handle compiling C header files. + (do_spec_1): Implement %V. + (main): Handle "gcc foo.h" without trying to run linker. + * doc/invoke.texi (Invoking GCC): Add new menu item for PCH. + (Overall Options): Document what the driver does with header files, + document new -x option possibilities. + (Invoking G++): More documentation for PCH. + (Precompiled Headers): New. + + 2002-08-09 Geoffrey Keating + + * ggc.h: Don't include varray.h. Rearrange functions to be more + organized. + (ggc_add_root): Delete. + (ggc_mark_rtx): Delete. + (ggc_mark_tree): Delete. + (struct ggc_statistics): Remove contents. + * ggc-common.c: Remove unneeded includes. + (struct ggc_root): Delete. + (roots): Delete. + (ggc_add_root): Delete. + (ggc_mark_roots): Don't mark `roots'. Call ggc_mark_stringpool. + (ggc_print_common_statistics): Remove most of the contents. + * Makefile.in (GGC_H): No longer uses varray.h. + (ggc-common.o): Update dependencies. + (c-parse.o): Add varray.h to dependencies. + (c-common.o): Add varray.h. + * stringpool.c (mark_ident): Use mangled name for tree marker routine. + (mark_ident_hash): Rename to ggc_mark_stringpool. + (init_stringpool): Don't use ggc_add_root. + * c-parse.in: Include varray.h. + * c-common.c: Include varray.h. + * objc/Make-lang.in (objc-act.o): Add varray.h. + * objc/objc-act.c: Include varray.h. + + 2002-07-25 Geoffrey Keating + + * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition. + (dw_cfi_oprnd1_desc): Likewise. + + 2002-07-17 Geoffrey Keating + + * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark; + move out of ifdef. + (alpha_links): Use gengtype to mark; move out of ifdef. + (mark_alpha_links_node): Delete. + (mark_alpha_links): Delete. + (alpha_need_linkage): Use GGC to allocate splay tree, struct + alpha_links, strings. Don't use ggc_add_root. + * ggc-common.c (ggc_splay_alloc): New. + (ggc_splay_dont_free): New. + * ggc.h (ggc_mark_rtx): Update for changed name mangling. + (ggc_mark_tree): Likewise. + (splay_tree_new_ggc): New. + (ggc_splay_alloc): Declare. + (ggc_splay_dont_free): Declare. + * dwarf2asm.c: Include gt-dwarf2asm.h. + (mark_indirect_pool_entry): Delete. + (mark_indirect_pool): Delete. + (indirect_pool): Use gengtype to mark. + (dw2_force_const_mem): Don't use ggc_add_root. + * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h. + (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c. + (gt-dwarf2asm.h): Depend on s-gtype. + + 2002-07-08 Geoffrey Keating + + * tree.h (union tree_type_symtab): Mark `die' field. + * Makefile.in (dwarf2out.o): Update dependencies. + * dwarf2out.c: Use GGC to allocate all structures. Convert to htab_t + hash tables. + (dw_cfi_oprnd1_desc): New function. + (dw_cfi_oprnd2_desc): New function. + (indirect_string_alloc): Delete. + (debug_str_do_hash): New function. + (debug_str_eq): New function. + (mark_limbo_die_list): Delete. + (dwarf2out_init): Don't call ggc_add_root. + +2003-01-09 Vladimir Makarov + + The following changes are merged from itanium-sched-branch: + + 2003-01-08 David Edelsohn + + * doc/md.texi: Clarify assignment of units to automata description. + + 2003-01-08 Vladimir Makarov + + * genautomata.c (unit_decl): Remove members + `the_same_automaton_unit' and + `the_same_automaton_message_reported_p'. + (process_unit_to_form_the_same_automaton_unit_lists, + form_the_same_automaton_unit_lists_from_regexp, + form_the_same_automaton_unit_lists, the_same_automaton_lists): + Remove them. + (annotation_message_reported_p): New global variable. + (check_unit_distribution_in_reserv, + check_regexp_units_distribution): New functions. + (check_unit_distributions_to_automata): Rewrite it. + + 2003-01-04 Vladimir Makarov + + * genautomata.c (form_the_same_automaton_unit_lists_from_regexp): + Use continue instead of break if cycle is too big. + + 2002-12-20 Vladimir Makarov + + * genautomata.c (check_unit_distributions_to_automata): Output at + most one message for a unit. + (process_unit_to_form_the_same_automaton_unit_lists): Check + automaton of units instead of units themself. + + * doc/md.texi: Describe the constraint about assigning unit to + automata. + + 2002-12-20 Jan Hubicka + Vladimir Makarov + + * genautomata.c (unit_decl): Add new members `min_occ_cycle_num' + and `in_set_p'. + (gen_cpu_unit): Initialize the new members. + (process_regexp_cycles): Calculate minimal finish cycle too. Set + up `min_occ_cycle_num'. + (evaluate_max_reserv_cycles): Change the function call. + (CLEAR_BIT): New macro. + (states_union, state_shift): Use the mask. + (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'. + (form_reservs_matter): New function. + (make_automaton): Call the function and use the mask. + (estimate_one_automaton_bound): Take `min_occ_cycle_num' into + account. + + 2002-12-17 Vladimir Makarov + + * config/ia64/itanium2.md (lfetch): Change the insn reservation. + + 2002-12-17 Vladimir Makarov + + * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn + for Itanium. + + 2002-12-17 Vladimir Makarov + + * config/ia64/ia64.c (ia64_override_options): Make itanium2 as + default cpu. + + 2002-12-17 Vladimir Makarov + 2002-10-31 Dale Johannesen + + * haifa-sched.c (find_set_reg_weight): New function. + (find_insn_reg_weight): Use the new function. + (schedule_block): Do sorting ready queue always + after insn issue. + + 2002-11-27 Vladimir Makarov + + * config/ia64/ia64.c (bundling): Use MFI template instead of MLX. + + 2002-11-19 Vladimir Makarov + + * haifa-sched.c (choice_entry): New structure. + (choice_stack, cycle_issued_insns): New variables. + (max_issue): Rewrite it. + (choose_ready): Set up ready_try for unknown insns too. + (schedule_block): Allocate and free choice_stack. Set up + and modify cycle_issued_insns. + + * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue + with and without filling the bundle. + (bundling): Combine calls of issue_nops_and_insn. + + 2002-10-17 Vladimir Makarov + + * config/ia64/itanium1.md: New file. + + * config/ia64/itanium2.md: New file. + + * config/ia64/ia64.md: Move DFA descriptions into the new files. + Remove the old pipeline description. + + * config/ia64/ia64.c (ia64_override_options): Add aliases of + itanium processor names. + + 2002-10-16 Vladimir Makarov + + * config/ia64/ia64.c (bundling): Print states for Itanium2 too. + (ia64_reorg): Set up queried unit codes for Itanium2 too. + + * config/ia64/ia64.md: Add descriptions for Itanium2. + + 2002-10-08 Vladimir Makarov + + * config/ia64/ia64.h (processor_type): New enumeration. + (ia64_tune, ia64_tune_string): New external declarations. + (TARGET_OPTIONS): Add option `tune='. + + * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global + variables. + (ia64_override_options): Set up `ia64_tune'. + (ia64_sched_reorder2): Set up `clocks' only for Itanium. + (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium. + (bundling): Add nops for MM-insns only for Itanium. + (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for + Itanium. + + * config/ia64/ia64.md (cpu): New attribute. + (DFA description): Enable it only for Itanium. + + 2002-10-08 Vladimir Makarov + Richard Henderson + + * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to + MASK_EARLY_STOP_BITS. + (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS. + (TARGET_SWITCHES): Rename option `tune-stop-bits' to + `early-stop-bits'. + + * config/ia64/ia64.c (ia64_dfa_new_cycle, + final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS + instead of TARGET_TUNE_STOP_BITS. + + * doc/invoke.texi: Rename option `-mtune-stop-bits' to + `-mearly-stop-bits'. + + * config/ia64/ia64.c (automata_option "v"): Comment it. + + 2002-10-07 Vladimir Makarov + + * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS): + New macros. + (TARGET_SWITCHES): Add entries for the new option. + + * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx + dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC. + (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New + global variables. + (ia64_sched_reorder2): Set up `clocks'. + (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'. + (ia64_dfa_new_cycle): Set up add_cycle. Permit sorting ready + queue when TARGET_TUNE_STOP_BITS. + (bundling): Insert additional nops for MM-insns. + (final_emit_insn_group_barriers): Add insertion of stop bits + according `stops_p'. + (ia64_reorg): Initiate the new varibales. + + * doc/invoke.texi: Add description of option `-mtune-stop-bits'. + + 2002-10-02 Vladimir Makarov + + * haifa-sched.c (schedule_block): Modify INSN_TICK of depended + insns at the end of block insn scheduling. + + 2002-09-30 Vladimir Makarov + + * sched-deps.c (remove_dependence, group_leader): Remove it. + (add_dependence): Add dependence to group leader to. + (set_sched_group_p): Add dependence to the first insn of the + schedule group too. + (sched_analyze_insn): Make dependence to jump as anti-dependence. + Change true dependence by anti-dependence when + `reg_pending_barrier'. + + * sched-rgn.c (init_ready_list, can_schedule_ready_p, + add_branch_dependences): Ignore schedule groups. + + * sched-ebb.c (init_ready_list): Ditto. + + * (move_insn, set_priorities): Ditto. + + * config/ia64/ia64.c (ia64_sched_init): Check that schedule group + flag is clear after reload. + (adjust_cost): Change cost only for output dependencies. + + * config/ia64/ia64.md: Add more insns into bypass for MM-insns. + + 2002-09-26 Vladimir Makarov + + * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry. + + * target.h (gcc_target): Add member + `dependencies_evaluation_hook'. + + * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New + macro. + (TARGET_SCHED): Add initiatialization of the new member. + + * sched-ebb.c: Include `target.h'. + (schedule_ebb): Call `dependencies_evaluation_hook'. + + * sched-rgn.c (schedule_region): Call + `dependencies_evaluation_hook'. + + * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): + New macro. + (ia64_dependencies_evaluation_hook): New function. + + * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): + Describe the new hook. + + 2002-09-25 Vladimir Makarov + + * target.h (gcc_target): Add members + `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'. + + * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New + macros. + (TARGET_SCHED): Add initiatialization of the new members. + + * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st + insn scheduling too. + (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to + initialize `ready_try'. + (schedule_block): Use `dfa_new_cycle'. Sort `ready' only unless + `dfa_new_cycle' says not to do it. + + * config/ia64/ia64.md: Add DFA Itanium 1 description for insn + bundling. + + * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro. + + * config/ia64/ia64.c: Include `hashtab.h'. + (ia64_first_cycle_multipass_dfa_lookahead_guard, + ia64_dfa_new_cycle, final_emit_insn_group_barriers, + ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state, + initiate_bundle_states, finish_bundle_states, bundle_state_hash, + bundle_state_eq_p, insert_bundle_state, + initiate_bundle_state_table, finish_bundle_state_table, + try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos, + get_template, get_next_important_insn, bundling): New functions. + (ia64_internal_sched_reorder): Remove it. + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, + TARGET_SCHED_DFA_NEW_CYCLE): New macros. + (ia64_safe_itanium_requires_unit0): Remove it. + (group_barrier_needed_p): Place group barrier right before a real + insn. + (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets): + Remove them. + (bundle_name): New variable. + (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_, + _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_, + _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5, + pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size, + temp_dfa_state, prev_cycle_state): New global variables. + (insn_matches_slot, maybe_rotate, finish_last_head, + rotate_one_bundle, rotate_one_bundles, nop_cycles_until, + cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn, + find_best_packet, itanium_reorder, dump_current_packet, + schedule_stop, gen_nop_type, ia64_emit_nops): Remove them. + (sched_data, sched_ready, sched_types): Remove them. + (ia64_sched_init): Initiate only `last_scheduled_insn' and call + `init_insn_group_barriers'. + (ia64_sched_reorder, ia64_sched_reorder2): Call + ia64_dfa_sched_reorder. + (ia64_variable_issue): Rewrite it. + (bundle_state): New structure. + (index_to_bundle_states, bundle_states_num, + allocated_bundle_states_chain, free_bundle_state_chain): New + global variables. + (ia64_sched_finish): Add stop bits and call `bundling' after the + 2nd insn scheduling. + (ia64_use_dfa_pipeline_interface): Return zero always. + (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd + insn scheduling. + (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size', + `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'. + (ia64_reorg): Add bundling insns. + + * doc/tm.texi + (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, + TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks. + + 2002-09-23 Vladimir Makarov + + * config/ia64/ia64.md: Add Itanium1 DFA description. + (itanium_class): Add `nop' and `pre_cycle'. Add + define_function_unit for `nop'. + (nop): Change attribute `itanium_class'. + (pre_cycle): New define_insn. + + * config/ia64/ia64-protos.h (bundling_p): New external variable. + (ia64_st_address_bypass_p, ia64_ld_address_bypass_p, + ia64_produce_address_p): New function prototypes. + + * config/ia64/ia64.c (bundling_p): New global variable. + (ia64_use_dfa_pipeline_interface, + ia64_first_cycle_multipass_dfa_lookahead, + ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New + functions. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, + TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, + TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, + TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros. + (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2, + ia64_variable_issue, ia64_sched_finish): Do nothing before reload. + (dfa_pre_cycle_insn): New variable. + + 2002-09-20 Vladimir Makarov + + * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New + constructions. + + * genattrtab.h (gen_final_presence_set, gen_final_absence_set): + New function prototypes. + + * genattrtab.c (main): Process the new constructions. + + * genautomata.c (gen_presence_absence_set, + process_presence_absence_names, process_presence_absence_patterns, + add_presence_absence, check_absence_pattern_sets): Add parameter + `final_p'. + (unit_decl): Add new members `final_presence_list' and + `final_absence_list'. + (unit_pattern_rel_decl): Add new member `final_p'. + (gen_final_presence_set, gen_final_absence_set): New functions. + (process_decls): Use member `final_p'. + (temp_reserv): New global variable. + (reserv_sets_are_intersected): Add processing `final_presence_set' + and `final_absence_set'. + (initiate_states): Allocate `temp_reserv'. + (unit_final_presence_set_table, unit_final_absence_set_table): New + gloabal variables. + (initiate_presence_absence_pattern_sets): Initiate them. + (NDFA_to_DFA): Fix typo. + (output_description): Output `final_presence_set' and + `final_absence_set'. + + * doc/md.texi (final_presence_set, final_absence_set): Describe + them. + + 2002-09-20 Vladimir Makarov + + * genautomata.c (transform_3): Process a missing case (nothing on + unit place). + + 2002-09-20 Vladimir Makarov + + * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change + comments about queried units and the minimization. + + * doc/md.texi: Ditto. + + * genautomata.c (create_composed_state): Return nonzero if the new + state has been created. + (first_cycle_unit_presence): New function. + (state_is_differed): Add new parameter. Use the new function. + Take queried units into account. + (partition_equiv_class): Pass additional parameter to + `state_is_differed'. + (merge_states): Process composed states too. + (build_automaton, create_automata, output_min_issue_delay_table, + output_tables, output_statistics): Output more information. + (output_reserved_units_table): Use function + `first_cycle_unit_presence'. + (output_tables): Output table of queried units even if the + minimization is switched on. + (write_automata): Output code for querying units even if the + minimization is switched on. + + 2002-09-19 Vladimir Makarov + + * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended + syntax of the constructions. + + * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of + extended syntax of the constructions. + + * genautomata.c (unit_rel_decl): Rename it to + `unit_pattern_rel_decl'. + (pattern_set_el, pattern_reserv): New structures. + (pattern_set_el_t, pattern_reserv_t): New types. + (gen_presence_absence_set): New function. + (process_presence_absence): Remove it. + (process_presence_absence_names, + process_presence_absence_patterns): New functions. + (get_presence_absence_set): Remove it. + (initiate_presence_absence_sets): Rename it on + `initiate_presence_absence_pattern_sets'. Use new function + `form_reserv_sets_list'. + (form_reserv_sets_list, check_presence_pattern_sets, + check_absence_pattern_sets, output_pattern_set_el_list): New + functions. + (unit_decl): Change types of members `presence_list' and + `absence_list'. + (unit_rel_decl): Rename member `names_num' to `all_names_num'. + (decl): Change types of members `excl', `presence', and `absence'. + (get_str_vect): Rename `par_flag' to `paren_p'. Add null element + at the end of the vector. + (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set, + gen_automaton, gen_regexp_repeat, gen_regexp_allof, + gen_regexp_oneof, gen_regexp_sequence): Use boolean values. + (gen_presence_set, gen_absence_set): Use new function + `gen_presence_absence_set'. + (add_presence_absence): Process `pattern_list' instead of + `source_list'. + (process_decls): USe new functions + `process_presence_absence_names' and + `process_presence_absence_patterns'. + (reserv_sets_are_intersected): Use new function + `check_presence_pattern_sets'. + (presence_set, absence_set): Remove them. + (unit_presence_set_table, unit_absence_set_table): New global + variables. + (output_description): Use new function + `output_pattern_set_el_list'. + (generate): Use `initiate_presence_absence_pattern_sets'. + + 2002-09-18 Vladimir Makarov + + * genattr.c (main): Add output of prototype of new interface + function `dfa_clean_insn_cache'. + + * genautomata.c (output_dfa_clean_insn_cache_func): New function. + (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro. + (output_dfa_start_func): Use function `dfa_clean_insn_cache' in + the generated code. + (write_automata): Call the new function. + +2003-01-09 Jan Hubicka + + * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt + correctly. + +2003-01-09 Paolo Carlini + + * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo. + +2003-01-09 J"orn Rennecke + + * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument. + (EXTRA_ADDRESS_CONSTRAINT): Likewise. + (CONSTRAINT_LEN): Provide default definition. + (CONST_OK_FOR_CONSTRAINT_P): Likewise. + (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise. + (EXTRA_CONSTRAINT_STR): Likewise. + (REG_CLASS_FROM_CONSTRAINT): Define. + * genoutput.c (check_constraint_len, constraint_len): New functions. + (validate_insn_alternatives): Check CONSTRAINT_LEN for each + constraint / modifier. + (gen_insn): Call check_constraint_len. + * local-alloc.c (block_alloc): Update to use new macros / pass + second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT. + * ra-build.c (handle_asm_insn): Likewise. + * recog.c (asm_operand_ok, preprocess_constraints): Likewise. + (constrain_operands, peep2_find_free_register): Likewise. + * regclass.c (record_operand_costs, record_reg_classes): Likewise. + * regmove.c (find_matches): Likewise. + * reload.c (push_secondary_reload, find_reloads): Likewise. + (alternative_allows_memconst): Likewise. + * reload1.c (maybe_fix_stack_asms): Likewise. + (reload_cse_simplify_operands): Likewise. + * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. + * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document. + (CONST_OK_FOR_CONSTRAINT_P): Likewise. + (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise. + (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument. + * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise. + + * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5. + +2003-01-09 Kazu Hirata + + * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn + length. + (*extzv_1_r_h8300hs): Likewise. + (*extzv_1_r_inv_h8300): Likewise. + (*extzv_1_r_inv_h8300hs): Likewise. + +2003-01-09 Kazu Hirata + + * config/h8300/h8300.h (PREDICATE_CODES): New. + +2003-01-09 Kazu Hirata + + * config/h8300/h8300.md (*addsi3_upper): New. + (*iorsi3_shift): Likewise. + (two splitters): Likewise. + (*addsi3_shift): Likewise. + (two splitters): Likewise. + +2003-01-09 Josef Zlomek + + * Makefile.in (optabs.o): Add dependency on basic-block.h. + * basic-block.h (control_flow_insn_p): Fuction was exported. + * cfgbuild.c (control_flow_insn_p): Fuction was made non-static. + * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL + notes only when the region is contained in a single basic block. + +2003-01-09 Eric Botcazou + + PR inline-asm/8832 + * tree.h (expand_asm): New prototype. + * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed + to do so. + * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier + down to expand_asm. + * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier. + * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag. + (volatile_refs_p) [ASM_INPUT]: Likewise. + (side_effects_p) [ASM_INPUT]: Likewise. + +2003-01-09 Jan Hubicka + + * i386.md (*mul*): FIx constraints; remove confused comment; fix + athlon_decode attributes + (imul/k8 optimization peep2s): New. + + * athlon.md (athlon_ssecmp*): Handle ssecomi as well. + * i386.md (type attribute): Add ssecomi. + (unit, memory, prefix attributes): Handle ssecomi. + (cvt?2? patterns): Fix athlon_decode attribute + (comi patterns): Set attribute to ssecomi. + + PR target/8343 + * m68k.md (umulsidi, mulsidi expanders): Use register operand. + +2003-01-09 Richard Sandiford + + * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates + that match register_operands. + * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make + register_operand the default case. + +2003-01-09 Eric Botcazou + + PR c/8032 + * c-typeck.c (process_init_element) [RECORD_TYPE]: For + an empty element, do not advance the pointer to unfilled + fields if there are pending initializers. + +2003-01-09 Christian Cornelssen + + * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR. + (install-gcc-tooldir, install-cpp, installdirs, + install-common, install-driver, install-info, install-man, + install-headers, install-include-dir, install-headers-tar, + install-headers-cpio, install-headers-cp, install-mkheaders, + install-collect2, uninstall): Prepend $(DESTDIR) to + destination paths in all (un)installation commands. + (install-driver): Rewrite $(LN) commands to support DESTDIR + with "ln" as well as with "ln -s". + (installdirs): Simply use mkinstalldirs. + (install-libgcc, install-multilib): Also pass DESTDIR. + * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the + installation destination variable ldir. + * config/alpha/t-osf4, config/arm/t-netbsd, + config/ia64/t-hpux, config/mips/t-iris5-6, + config/pa/t-hpux-shlib, config/rs6000/t-aix43, + config/rs6000/t-aix52, config/t-slibgcc-elf-ver, + config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir) + in the definition of SHLIB_INSTALL. + * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to + $(libsubdir) in the installation commands. + +2003-01-08 Kaz Kojima + + * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a + non-optimizing compile. + (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing + compile. + +2003-01-08 Douglas B Rupp + + * config/i386/i386.c (ix86_attribute_table): Add new attributes + ms_struct and gcc_struct. + (ix86_handle_struct_attribute): New function. + (ix86_ms_bitfield_layout_p): Update to take new attributes + into account. + * doc/extend.texi: Document new attributes. + * testsuite/gcc.dg/bf-ms-attrib.c: New test. + +2003-01-08 Danny Smith + + PR optimization/8750 + * config/i386/i386.c (ix86_expand_prologue): Don't allow + scheduling pass to move insns across __alloca call. + +2003-01-08 Dale Johannesen + + * config/rs6000/rs6000.md: Replace *store_multiple_string + with *stmsi[3-8]. + +2003-01-08 Jeff Sturm + + PR target/9210 + * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): + Set SYMBOL_REF_FLAG on local data sym_ref. + +2003-01-08 Dale Johannesen + + * function.c (assign_parms): Don't set pretend_args_size if + REG_PARM_STACK_SPACE. + config/rs6000/rs6000.c (setup_incoming_varargs): Don't set + pretend_args_size. + +2003-01-08 Nathanael Nerode + + * gcc.hlp: Delete. + +2003-01-09 Jan Hubicka + + * i386.c (ix86_expand_int_addcc): Fix thinko. + +2003-01-08 David Edelsohn + + * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode. + * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine + as hook_bool_tree_hwi_hwi_tree_true. + (rs6000_emit_allocate_stack): Use TARGET_32BIT. + (rs6000_emit_epilogue): Same. + (rs6000_output_mi_thunk): Re-implement as RTL. + * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call + xcoffout_declare_function if any debugging enabled. + +2003-01-08 Chris Demetriou + + * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New + targets, to support MIPS32 Release 2 (MIPS32R2) configurations. + * config/mips/mips.h (enum processor_type): Rename + PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to + PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC. + Add PROCESSOR_M4K. + (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming. + (ISA_MIPS32R2): New define. + (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC) + (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO) + (ISA_HAS_PREFETCH): Add support for MIPS32R2. + (MIPS_ISA_DEFAULT): Likewise. Also, fix indentation. + (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2. Add new + predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64. + (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if + compiling MIPS16 code. + (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix + comment. + (ISA_HAS_SEB_SEH): New define. + (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker. + * config/mips/mips.c (mips_cpu_info_table): Adjust for enum + processor_type value renaming. Add support for MIPS32R2. + Clean up comments, and move "sb1" entry with other MIPS64 CPU + entries. + (override_options): Reimplement -mipsN option handling so that + it will work correctly for -mips32r2. Avoid branch-likely + instructions on MIPS32R2. + * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2. + (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH. + (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH. + (extendhisi2_hw, extendqisi2_hw): New. + * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support + for MIPS32R2. Add new predefine __mips_isa_rev for MIPS32, + MIPS32R2, and MIPS64. + (LINK_SPEC): Pass -mips32r2 to linker. + * config/mips/t-isa3264: Built -mips32r2 multilibs. + * doc/invoke.texi (MIPS Options): Add -mips32r2, add support + for mips32r2 in the -march description. Alphabetically sort + CPU names in the -march description. Add long-missed -mips32 + and -mips64 to MIPS option summary. + + * config.gcc: Update copyright years to include 2003. + * config/mips/mips.c: Likewise. + * config/mips/mips.h: Likewise. + * config/mips/mips.md: Likewise. + * config/mips/netbsd.h: Likewise. + * doc/invoke.texi: Likewise. + +2003-01-08 Andreas Schwab + + * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache + variable. + * configure: Regenerated. + +2003-01-08 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Replace byte/word + extraction of det with b0, b1, w0, w2, etc. + (compute_logical_op_length): Likewise. + (compute_logical_op_cc): Likewise. + +2003-01-08 Kazu Hirata + + * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and + HIGH on all variants. + +2003-01-08 Josef Zlomek + + * Makefile.in (PARTITION_H): New. + (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H). + * basic-block.h: Include hard-reg-set.h. + +2003-01-08 Richard Earnshaw + + * arm.h (ENABLE_XF_PATTERNS): Delete. + * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2) + (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2) + (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn) + (cmpxf_trap): Delete. + (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS. + +2003-01-08 Jan Hubicka + + * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern. + (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns. + (add??cc): New expanders. + * i386.c (expand_int_addcc): New function. + * i386-protos.h (expand_int_addcc): Declare. + + * alias.c (memory_modified_1): New static function. + (memory_modified): New static varaible. + (memory_modified_in_insn_p): New global function. + * rtl.h (memory_modified_in_insn_p): Declare. + * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory + references. + + * expr.h (emit_conditional_add): Declare. + +2003-01-07 Janis Johnson + + PR other/8947 + * doc/invoke.texi (-malign-double): Explain that the option breaks + binary compatibility. + +2003-01-08 Andreas Schwab + + * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld, + should come from the generic *-*-linux* entry. + +2003-01-07 Jan Hubicka + + * cselib.c (cselib_current_insn_in_libcall): New static variable. + (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether + we are inside libcall. + * cselib.h (elt_loc_list): Add in_libcall. + * gcse.c (do_local_cprop): Do not copy propagate using insns + in libcalls. + +2003-01-07 David Edelsohn + + * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do + not normally affect to issue rate. + +2003-01-07 Jan Hubicka + + * genopinit.c (optabs): Add addc_optab. + * ifcvt.c (noce_try_store_flag): Rename to ... + (noce_try_addcc): ... this one; handle generic conditional increment. + (noce_process_if_block): Update noce_try_addcc call. + * optabs.c (emit_conditional_add): New. + (init_obtabs): Initialize addc_optab. + * optabs.h (optab_index): Add OTI_addcc. + (addcc_optab): New macro. + * md.texi: Document addMcc + + PR target/8322 + * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads. + * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. + * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. + + * reload1.c (delete_output_reload): Avoid repeated attempts + to delete insn. + +2003-01-07 Andreas Schwab + + * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY. + Move --enable-initfini-array check ... + * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here. Define + HAVE_INITFINI_ARRAY also when --enable-initfini-array is given. + Don't AC_SUBST gcc_cv_initfinit_array. Use AC_TRY_RUN. + * configure: Rebuild. + +2003-01-07 Richard Henderson + + * alias.c (find_base_value): Only use new_reg_base_value shortcut + if the register is set once. + +2003-01-07 Sylvain Pion + + * config/i386/i386.c (ix86_init_mmx_sse_builtins): + __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX. + * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX. + +2003-01-07 Benjamin Kosnik + Sunil Davasam + + PR libstdc++/9076 + * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined, + DW_CFA_same_value, read next and ignore. + +2003-01-07 Richard Henderson + + * cfganal.c (flow_call_edges_add): Don't crash on noreturn call. + +2003-01-07 Daniel Berlin + + * cfg.c: Include alloc-pool.h + (edge_pool): New pool. + (bb_pool): New pool. + (first_deleted_edge): Remove. + (first_deleted_block): Remove. + (init_flow): Alloc/free the pools. + (free_edge): Use pools. + (alloc_block): Ditto. + (expunge_block): Ditto. + (cached_make_edge): Ditto. + + * Makefile.in (cfg.o): Add alloc-pool.h dependency. + +2003-01-07 Daniel Berlin + + * et-forest.c: Include alloc-pool.h. + (struct et_forest): Add node_pool and occur_pool. + (et_forest_create): Create the new pools. + (et_forest_delete): Delete them. + (et_forest_add_node): Allocate and free using pools. + (et_forest_add_edge): Ditto. + (et_forest_remove_node): Ditto. + (et_forest_remove_edge): Ditto. + + * Makefile.in (et-forest.o): Add alloc-pool.h dependency. + +2003-01-07 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Simplify and + optimize the handling of SImode. + * config/h8300/h8300.c (compute_logical_op_length): Update + accordingly. + * config/h8300/h8300.c (compute_logical_op_cc): Likewise. + +2003-01-07 Richard Sandiford + + * config/mips/mips.c (mips_va_arg): In the EABI code, apply the + big-endian correction to indirect arguments too. + +2003-01-06 Aldy Hernandez + + Segher Boessenkool + + * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers. + (alt_reg_names): Ditto, fix formatting. + * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting. + +2003-01-06 Kazu Hirata + + * config/h8300/h8300.c (final_prescan_insn): Constify uid. + (output_logical_op): Constify intval and det. + (compute_logical_length): Likewise. + (compute_logical_cc): Likewise. + (output_a_shift): Constify mask. + (h8300_encode_label): Constify len. + +2003-01-06 Kazu Hirata + + * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize. + (h8300_expand_epilogue): Likewise. + +2003-01-06 Aldy Hernandez + + Segher Boessenkool + + * config/rs6000/altivec.md: Remove spaces from assembler + instruction argument lists. + +2003-01-07 Michael Hayes + + * config/c4x/c4x.c (c4x_naked_function_p): Rename from + c4x_assembler_function_p. + (c4x_null_epilogue_p): Complement return value, all uses updated. + (c4x_insert_attributes): Add naked. + * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses. + * doc/extend.texi: Update C4x function attributes. + +2003-01-06 Richard Henderson + + * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str + properly when changing "local-ness". + * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols. + +2003-01-06 Dale Johannesen + + * config/darwin-protos.h: Add prototypes for new section functions. + +2003-01-06 Chris Demetriou + + * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI + to EABI. + +2003-01-06 Zack Weinberg + + * hwint.h: If the current compiler has no 64-bit type at all, + make HOST_WIDEST_INT 32 bits. + +2003-01-06 Eric Christopher + + * config/mips/mips.md (movdf_internal2): Fix constraints. + +2003-01-06 Kazu Hirata + + * config/h8300/h8300.md (*twoshifts_l16_r1): New. + +2003-01-06 Richard Sandiford + + * config/mips/mips.md (leadi): Use dla rather than la. + +2003-01-06 Svein E. Seldal + + * config/c4x/c4x.h: Updated specs for new gas format. Fixed bug + in C33_FLAG. Added proper C33 support in ASM_FILE_START macro. + +2003-01-06 Herman A.J. ten Brugge + + * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX + redefinition. + +2003-01-05 Kazu Hirata + + * config/h8300/h8300.md (*extzv_8_23): New. + +2003-01-05 John David Anglin + + * pa64-hpux.h (JCR_SECTION_NAME): Define. + (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of + USE_EH_FRAME_REGISTRY when defining. + +2003-01-05 Kazu Hirata + + * config/h8300/h8300.c (output_a_shift): Do not output a + variable shift. + * config/h8300/h8300.md (two splitters): New. + +2003-01-05 Richard Sandiford + + * config/mips/mips.md: Disable the movstrsi define_split. + +2003-01-05 Kaveh R. Ghazi + + * alloc-pool.c: Don't include "libiberty.h". + * config/sparc/gmon-sol2.c: Include . + * convert.c (convert_to_real): Hide unused variable. + +2003-01-04 Kaveh R. Ghazi + + * Makefile.in (gtyp-gen.h): Const-ify. + * gcov-dump.c (tag_table): Likewise. + +2003-01-04 Bruce Korb + + * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function + of *both* the file name and the fix name. + +2003-01-04 John David Anglin + + * config.gcc (hppa*64*-*-hpux11*): Define extra_parts. Don't use + collect2. + * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine. + (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define. + * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP, + GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP, + GNU_FINI_ARRAY_SECTION_ASM_OP): Define. + (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using + elfos.h. + (EH_FRAME_IN_DATA_SECTION): Delete define. + (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine. + (STARTFILE_SPEC): Use crtbegin.o. + (ENDFILE_SPEC): Use crtend.o. + (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION, + SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK, + PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB, + DTOR_LIST_BEGIN): Define. + * pa.c (TARGET_ASM_CONSTRUCTOR): Define. + (pa_asm_out_constructor, pa_asm_out_destructor): New functions. + * som.h (SUPPORTS_INIT_PRIORITY): Delete define. + +2002-12-31 Larin Hennessy + + * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur. + * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX, + m88k-*-sysv3*, Sony NewsOS. Remove references to i860. + Cleanup handling of replacement text. + * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1* + +2003-01-04 Bruce Korb + + * fixinc/tests/base/math.h: removed obsolete results + * fixinc/tests/base/stdlib.h: ditto + * fixinc/tests/base/sys/param.h: ditto + * fixinc/tests/base/sys/stat.h: ditto + * fixinc/tests/base/time.h: ditto + * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file + * fixinc/tests/base/sys/byteorder.h: ditto + * fixinc/inclhack.def: Remove superfluous backslashes + +2003-01-04 Kazu Hirata + + * config/h8300/h8300-protos.h: Add prototypes for + the new functions defined below. + * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not + define. + (dosize): Emit RTL instead of assembly code. + (push): Likewise. + (pop): Likewise. + (h8300_output_function_prologue): Remove. + (h8300_expand_prologue): New. + (h8300_expand_epilogue): New. + (h8300_output_function_epilogue): Do only the reset of + pragma_saveall. + * config/h8300/h8300.md (push_h8300): New. + (push_h8300hs): Likewise. + (pop_h8300): Likewise. + (pop_h8300hs): Likewise. + (*stm_h8300s_2): Change the name to stm_h8300s_2. + (*stm_h8300s_3): Change the name to stm_h8300s_3. + (*stm_h8300s_4): Change the name to stm_h8300s_4. + (*ldm_h8300s_2): New. + (*ldm_h8300s_3): Likewise. + (*ldm_h8300s_4): Likewise. + (return): Likewise. + (*return_1): Likewise. + (prologue): Likewise. + (epilogue): Likewise. + (monitor_prologue): Likewise. + +2003-01-03 Dale Johannesen + + * config/darwin.h: (EXTRA_SECTIONS): Add machopic_symbol_stub1, + machopic_picsymbol_stub1. + (EXTRA_SECTION_FUNCTIONS): Ditto. + * rs6000/rs6000.c: Update copyright. + (machopic_output_stub): Use them. Remove an insn from stub code. + +2003-01-02 Jason Merrill + + * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better. + + * integrate.c (copy_decl_for_inlining): Don't clear the rtl for + static/external decls. + + * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the + outermost scope. + * c-decl.c (c_make_fname_decl): Push the decls there, too. + +2003-01-03 Kazu Hirata + + * config/h8300/h8300-protos.h: Add a prototype for + h8300_current_function_interrupt_function_p. + * config/h8300/h8300.c (interrupt_handler): Remove. + (os_task): Likewise. + (monitor): Likewise. + (pragma_interrupt): New. + (WORD_REG_USED): Use + h8300_current_function_interrupt_function_p. + (dosize): Likewise. + (h8300_output_function_prologue): Likewise. + Do not set interrupt_handler, os_task, monitor. + (h8300_output_function_prologue): Use + h8300_current_function_interrupt_function_p. + Do not set interrupt_handler, os_task, monitor. + (h8300_current_function_interrupt_function_p): New. + (h8300_pr_interrupt): Set pragma_interrupt. + (h8300_insert_attributes): Reset pragma_interrupt. + +2003-01-03 Gerald Pfeifer + + * doc/install.texi (Configuration): Fix markup for reference to + gcc/config.gcc. + +2003-01-02 Kazu Hirata + + * config/h8300/h8300.md (*iorhi3_zext): Relax the condition. + (*iorhi3_two_qi): Likewise. + (*iorsi3_zexthi): Likewise. + (*xorhi3_zextqi): Likewise. + (*xorsi3_zexthi): Likewise. + (*xorsi3_zextqi): Likewise. + +2003-01-02 Kazu Hirata + + * config/h8300/h8300.c (stack_pointer_operand): New. + (const_int_gt_2_operand): Likewise. + (const_int_ge_8_operand): Likewise. + * config/h8300/h8300.md (a splitter): Likewise. + (a peephole2): Likewise. + * config/h8300/h8300-protos.h: Add prototypes for the new + functions above. + +2003-01-02 Steven Bosscher + + * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h, + objc/objc-act.h: Fix copyright years. + +2003-01-02 Steven Bosscher + + * doc/passes.texi: Fix documentation for -fssa-ccp + +2003-01-02 Neil Booth + + * gccbug.in: Update for new categories. + +2003-01-01 Kazu Hirata + + * config/h8300/h8300.md: Reorder some patterns. + +2003-01-01 Kazu Hirata + + * config/h8300/h8300.c (output_logical_op): Fix a warning. + +2003-01-01 Neil Booth + + * config/darwin-protos.h, config/c4x/c4x-protos.h, + config/cris/cris-protos.h, config/i370/i370-protos.h, + config/i960/i960-protos.h, config/ia64/ia64-protos.h, + config/v850/v850-protos.h: Use struct, and don't conditionally + compile on GCC_C_PRAGMA_H. + +2003-01-01 Kazu Hirata + + * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H. + * config/h8300/h8300-protos.h: Likewise. + * config/sh/sh-protos.h: Likewise. + +2003-01-01 Kazu Hirata + + * config/arm/arm-protos.h: Use struct cpp_reader instead of + cpp_reader. + * config/h8300/h8300-protos.h: Likewise. + * config/sh/sh-protos.h: Likewise. + +2003-01-01 Neil Booth + + * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls, + arm_pr_long_calls_off): Use struct. + * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall) + : Similarly. + Don't include cpplib.h. + * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa, + sh_pr_nosave_low_regs): Similarly. + +2003-01-01 Kazu Hirata + + * config/h8300/h8300.c: Include cpplib.h. + +2003-01-01 Steven Bosscher + + * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h, + objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h, + objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with + "GCC" in the copyright header. + +2003-01-01 Neil Booth + + * c-pragma.c (c_register_pragma): New. + (init_pragma): Use it. + * c-pragma.h (cpp_register_pragma): Don't declare. + (c_register_pragma): New. + * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H. + * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update. + * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update. + * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update. + * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update. + * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update. + * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update. + * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update. + * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update. + * config/sh/sh.h (REGISTER_TARGET_PRAGMAS): Update. + * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): Update. + * doc/tm.texi (REGISTER_TARGET_PRAGMAS): Update diff --git a/gcc/ChangeLog-2004 b/gcc/ChangeLog-2004 new file mode 100644 index 00000000000..19e215eefa3 --- /dev/null +++ b/gcc/ChangeLog-2004 @@ -0,0 +1,47878 @@ +2004-12-31 Richard Henderson + + PR tree-opt/19042 + * tree-sra.c (decide_block_copy): Force use_block_copy false + for complex values. + +2004-12-31 Richard Henderson + + PR middle-end/17799 + * function.c (use_register_for_decl): Check DECL_IGNORED_P instead + of DECL_ARTIFICIAL. + (assign_parms_augmented_arg_list): Set DECL_IGNORED_P. + * c-decl.c (build_compound_literal): Likewise. + * dwarf2asm.c (dw2_force_const_mem): Likewise. + * gimplify.c (create_artificial_label): Likewise. + * tree-inline.c (expand_call_inline): Likewise. + * var-tracking.c (vt_initialize): Likewise. + * tree-outof-ssa.c (create_temp): Copy DECL_IGNORED_P. + +2004-12-31 Andrew Pinski + + PR target/19211 + * config/darwin.c (machopic_legitimize_pic_address): If the orig + is subregister return orig. + +2004-12-31 Zdenek Dvorak + + * tree-scalar-evolution.c (instantiate_parameters_1): Copy the + expression only if needed. + +2004-12-31 John David Anglin + + * pa-hpux.h (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Define. + +2004-12-31 Hans-Peter Nilsson + + PR target/18701 + * combine.c (combine_simplify_rtx): Do not allow paradoxical + subregs of MEM. + + PR target/18701 + * combine.c (gen_lowpart_for_combine): When stripping SUBREG of + MEM, adjust imode and isize. + +2004-12-30 Richard Henderson + + * config/ia64/ia64.c (hfa_element_mode): Return false for + zero-sized top-level aggregates. + +2004-12-30 Jan Hubicka + + PR target/18019 + * i386.md (movqi_1): Fix -Os instruction choice. + +2004-12-30 Steven Bosscher + + * global.c (regclass_intersect): Remove. + (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead. + +2004-12-30 Richard Henderson + + * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for + aggregates with XF/XCmode. + +2004-12-29 Richard Henderson + + * target.h (targetm.calls.arg_partial_bytes): New. + * target-def.h (TARGET_ARG_PARTIAL_BYTES): New. + * calls.c (store_unaligned_arguments_into_pseudos): Update for + partial in bytes. + (load_register_parameters): Likewise. + (store_one_arg): Likewise. + (initialize_argument_information): Use targetm.calls.arg_partial_bytes. + (emit_library_call_value_1): Likewise. + * expr.c (block_move_libcall_safe_for_call_parm): Likewise. + (emit_push_insn): Update for partial in bytes. + * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * function.c (assign_parm_find_entry_rtl): Use + targetm.calls.arg_partial_bytes. Update for result in bytes. + (locate_and_pad_parm): Update for partial in bytes. + * system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison. + * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New. + * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare. + * doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from + FUNCTION_ARG_PARTIAL_NREGS. + + * config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h, + config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h, + config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h, + config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + + * config/alpha/alpha.c (alpha_arg_partial_bytes): New. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/alpha/alpha.h, config/alpha/unicosmk.h, + config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + + * config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... + * config/arm/arm.c (arm_arg_partial_bytes): ... here. + (TARGET_ARG_PARTIAL_BYTES): New. + + * config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... + * config/cris/cris.c (cris_arg_partial_bytes): ... here. + (TARGET_ARG_PARTIAL_BYTES): New. + + * config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from + fr30_function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/fr30/fr30-protos.h: Update. + + * config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/frv/frv.c (frv_arg_partial_bytes): Rename from + frv_function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/frv/frv-protos.h: Update. + + * config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from + ia64_function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/ia64/ia64-protos.h: Update. + + * config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/iq2000/iq2000-protos.h: Update. + + * config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/m32r/m32r-protos.h: Update. + + * config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from + mcore_function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/mcore/mcore-protos.h: Update. + + * config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/mips/mips.c (mips_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/mips/mips-protos.h: Update. + + * config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/mn10300/mn10300-protos.h: Update. + + * config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... + * config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here. + (TARGET_ARG_PARTIAL_BYTES): New. + + * config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/pa/pa.c (pa_arg_partial_bytes): Rename from + function_arg_partial_nregs. Handle 32-bit. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/pa/pa-protos.h: Update. + + * config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/rs6000/rs6000-protos.h: Update. + + * config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... + * config/sh/sh.c (sh_arg_partial_bytes): ... here. + (TARGET_ARG_PARTIAL_BYTES): New. + + * config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/sparc/sparc-protos.h: Update. + + * config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. + * config/v850/v850.c (v850_arg_partial_bytes): Rename from + function_arg_partial_nregs. Adjust to return bytes. + (TARGET_ARG_PARTIAL_BYTES): New. + * config/v850/v850-protos.h: Update. + +2004-12-30 Hans-Peter Nilsson + + * config/mmix/mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Define. + * config/mmix/mmix.c (mmix_asm_output_internal_label): New + function. + * config/mmix/mmix-protos.h (mmix_asm_output_internal_label): + Prototype. + +2003-12-29 Richard Henderson + + * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True. + +2004-12-29 Jeff Law + + * tree-outof-ssa.c (insert_backedge_copies): New function. + (rewrite_out_of_ssa): Use it. + +2004-12-29 Ira Rosen + + PR tree-optimization/18179 + * tree-vectorizer.c (vect_get_base_and_offset): Call get_inner_reference + and vect_analyze_offset_expr. + (vect_create_addr_base_for_vector_ref): Build address_base by combining + base and initial_offset fields of vect_stmt_info. + (vect_update_inits_of_dr): Update offset of data-ref instead of its + access-fn. Remove argument. + (vect_update_inits_of_drs): Call vect_update_inits_of_dr with new + arguments. + (vect_compute_data_ref_alignment): Check misalignment info in + vect_stmt_info. Remove argument. + (vect_compute_data_refs_alignment): Call vect_compute_data_ref_alignment + with correct argument. + (vect_analyze_data_ref_access): Check access info in vect_stmt_info. + (vect_analyze_pointer_ref_access): Update step and initial_offset fields + of vect_stmt_info. + (vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the + fields of stmt_vec_info. + (vect_analyze_data_refs): Find vectype and pass it to + vect_get_memtag_and_dr. + (vect_get_first_index): Remove. + (vect_compute_array_base_alignment): Remove. + (vect_compute_array_ref_alignment): Remove + (vect_create_data_ref_ptr): Use TYPE_SIZE_UNIT instead GET_MODE_SIZE. + (vect_gen_niters_for_prolog_loop): Use TREE_CONSTANT instead + host_integerp. + (vectorizable_load): Use size arithmetics. + +2004-12-29 Ira Rosen + + PR tree-optimization/18179 + * tree-vectorizer.c (vect_get_base_and_offset): Rename (previous name + vect_get_base_and_bit_offset). + (vect_get_memtag_and_dr): Rename (previous name vect_get_symbl_and_dr). + +2004-12-29 Ira Rosen + + PR tree-optimization/18179 + * tree-vectorizer.h (struct _stmt_vec_info): Add new fields: + initial_offset, step, misalignment and base_aligned_p and macros + to access them. + * tree-vectorizer.c (vect_analyze_offset_expr): New function. + (new_stmt_vec_info): Initialize the new fields of stmt_vec_info. + + (vect_create_data_ref_ptr): Fix printings. + +2004-12-29 Ira Rosen + + PR tree-optimization/18179 + * tree-vectorizer.c (vect_get_symbl_and_dr): Reorganize. Add memtag + retrieval. + (vect_analyze_data_refs): Remove memtag retrieval. + +2004-12-28 Richard Henderson + + PR inline-asm/15740 + * gimplify.c (gimplify_asm_expr): Move resolve asm names ... + * c-typeck.c (build_asm_expr): ... here. Validate input + constraints. Mark memory inputs addressable. + +2004-12-28 Hans-Peter Nilsson + + PR target/18321 + * config/mmix/mmix.c (mmix_expand_epilogue): Change type of + variable offset to HOST_WIDE_INT. Remove obsolete comment. Fix + spacing. + +2004-12-28 Andrew Pinski + + * fold-const.c (fold_build_cleanup_point_expr): For a RETURN_EXPR, + we only need a cleanup point expression when the expression on the + left hand side of the MODIFIY_EXPR inside the return has side + effects. + +2004-12-28 Dorit Naishlos + + * tree-vectorizer.c (vect_mark_relevant) First argument changed from + varray_type to varray_type*. + (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist + when calling vect_mark_relevant. + +2004-12-28 Alan Modra + + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't + generate non-offsettable DImode lo_sum addresses. + +2004-12-28 Zdenek Dvorak + + PR rtl-optimization/19103 + * loop-iv.c (iv_number_of_iterations): Fix typo. + +2004-12-28 Andreas Jaeger + + * genrecog.c (compute_predicate_codes): Avoid warning. + +2004-12-27 John David Anglin + + * vax.c (vax_address_cost, vax_rtx_cost): Correct casts. + (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. + +2004-12-27 Jeff Law + + * tree-ssa-dom.c (thread_across_edge): Remove broken code to + avoid threading into a loop. + +2004-12-27 Richard Henderson + + PR target/17406 + * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR + note for allocate_stack_worker insn. + +2004-12-27 Jason Merrill + + * doc/tm.texi (TARGET_RELAXED_ORDERING): Document. + * target.h (struct gcc_target): Add relaxed_ordering field. + * target-def.h (TARGET_RELAXED_ORDERING): Define default. + (TARGET_INITIALIZER): Add it. + * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define. + * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define. + * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define. + * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define. + +2004-12-27 Roger Sayle + + PR driver/16118 + * doc/invoke.texi: Document the interaction between -save-temps + and -x. + +2004-12-27 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs): + Do not break apart constant pool addresses. + (rs6000_emit_move): Only force source into REG if target is MEM. + +2004-12-27 Mark Mitchell + + PR c++/19148 + * gimplify.c (gimplify_cond_expr): Add post_p parameter. + (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr. + (gimplify_expr): Likewise. + +2004-12-27 Richard Henderson + + * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW. + +2004-12-26 Richard Henderson + + * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result + of type_natural_mode to examine_argument. + + * config/i386/i386.md (mov_internal_rex64): New. + (movv2sf_internal_rex64): New. + (mov_internal): Use no register preferences at all. + (movv2sf_internal): Likewise. + +2004-12-26 Richard Henderson + + * simplify-rtx.c (simplify_relational_operation_1): Don't simplify + plus/minus across EQ for floating-point. + +2004-12-26 John David Anglin + + PR target/17643 + * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when + generating code for the portable runtime. + +2004-12-25 Richard Henderson + + * expr.c (clear_storage): Validate CONST0_RTX extant. Special case + complex modes. + +2004-12-25 Zdenek Dvorak + + PR rtl-optimization/19078 + * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic, + determine_use_iv_cost_outer): Fix computing of cost for the original + bivs. + (dump_use): Handle case related_cands == NULL. + +2004-12-25 Marek Michalkiewicz + + PR target/19059 + * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4 + to avr2. + * config/avr/avr.h (LINK_SPEC): Ditto. + * config/avr/t-avr (MULTILIB_MATCHES): Ditto. + +2004-12-25 Alan Modra + + PR target/19137 + * config/rs6000/rs6000.md (movti_power, movti_string): Relax + operand[1] predicate to input_operand, and add r<-n alternative. + Move TImode const_double_operand splitter to where it belongs. + +2004-12-25 Alan Modra + + PR target/19147 + * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. + +2004-12-24 Uros Bizjak + + * config/i386/i386.md (*fix_trunc{d,s,h}i_1): + Rename to *fix_trunc{d,s,h}i_i387. + (fix_trunc{d,s}fdi2): Reorder tests. + +2004-12-24 Daniel Berlin + + Fix PR debug/14638 + + * tree.h (DECL_DEBUG_ALIAS_OF): New macro. + * var-tracking.c (track_expr_p): Don't disqualify tracking of variables + that are aliases of variables we want to track, unless the + original variable is also ignored for debugging purposes. + (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic. + * tree-outof-ssa.c (create_temp): Note who we are a debug alias of. + * dwarf2out.c (dwarf2out_var_location): Add us to the location of + the decl we are an alias of. + +2004-12-24 Alan Modra + + PR target/19142 + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow + DFmode for 32-bit again. + +2004-12-23 Roger Sayle + + * reload.c (regno_clobbered_p): Add a gcc_assert that regno + refers to a hard register. + +2004-12-23 Mark Mitchell + + * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p. + +2004-12-23 DJ Delorie + + * genrecog.c (did_you_mean_codes): New. + (compute_predicate_codes): Fail unmatched codes. + +2004-12-23 Eric Christopher + + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add + assert for machine=mips for !TARGET_IRIX. + * config/mips/linux.h: Remove machine=mips assert. + * config/mips/netbsd.h: Ditto. + * config/mips/openbsd.h: Ditto. + +2004-12-23 Dale Johannesen + + * tree.c (iterative_hash_expr): Canonicalize builtins. + +2004-12-23 Alexandre Oliva + + PR target/16819 + * calls.c (load_register_parameters): Don't call use_regs when + nregs is zero. + +2004-12-23 Eric Botcazou + + PR middle-end/17746 + * expr.c (get_inner_reference): Add 'keep_aligning' parameter. + Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT + platforms only if keep_aligning is true. + (expand_assignment): Adjust call to get_inner_reference. + (expand_expr_addr_expr_1): Likewise. + (expand_expr_real_1): Likewise. + * dojump.c (do_jump): Likewise. + * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. + * fold-const.c (optimize_bit_field_compare): Likewise. + (decode_field_reference): Likewise. + (split_address_to_core_and_offset): Likewise. + * tree-ssa-loop-ivopts.c (split_address_cost): Likewise. + * tree.h (get_inner_reference): Adjust prototype. + +2004-12-23 Richard Henderson + + * config/i386/i386.c (override_options): Revert last change + wrt fancy 387 math. + +2004-12-23 Richard Henderson + + * config/alpha/alpha.md (one_cmpl2, and3, andnot3, + ior3, iornot3, xor3, xornot3): New macroized + vector operate patterns. + +2004-12-23 Richard Henderson + + * config/i386/i386.c (ix86_expand_vector_move): Tidy. + (ix86_expand_vector_move_misalign): New. + (ix86_misaligned_mem_ok): Remove. + (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. + * config/i386/i386-protos.h: Update. + * config/i386/i386.md (SSEMODEI): Rename from SSEINT16. + (MMXMODEI): Rename from MMXINT8. + (SSEMODE, MMXMODE, movmisalign): New. + +2004-12-23 Mark Mitchell + + PR c++/16405 + * gimplify.c (gimplify_modify_expr_rhs): Handle + INDIRECT_REF/ADDR_EXPR combinations. + +2004-12-22 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_mov): Split out ... + (alpha_expand_movmisalign): ... misaligned vector support. + (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. + * config/alpha/alpha-protos.h: Update. + * config/alpha/alpha.md (VEC): New macro. + (movv8qi, movv4hi, movv2si): Compress with VEC. + (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise. + (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise. + (movmisalign): New. + +2004-12-22 Richard Henderson + + * optabs.h (OTI_movmisalign, movmisalign_optab): New. + * optabs.c (init_optabs): Create it. + * genopinit.c (optabs): Initialize it. + * expr.c (expand_expr_real_1) : Use it. + * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. + * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. + * target.h (vectorize.misaligned_mem_ok): Remove. + * targhooks.c (default_vect_misaligned_mem_ok): Remove. + * doc/md.texi (movmisalign): New. + * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. + +2004-12-22 Richard Henderson + + * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg + to __v2si. + (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise. + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or + const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd, + __builtin_ia32_storehpd, __builtin_ia32_storelpd. + (ix86_expand_builtin): Update to match. + (ix86_expand_vector_init): Use sse2_loadlpd. + * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd. + (vec_extractv2df): Use sse2_storelpd, sse2_storehpd. + (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New. + (sse2_movhpd): Remove. + +2004-12-23 Alan Modra + + PR target/18751 + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return + false for anything larger than 32 bits in 32-bit code. + +2004-12-22 Richard Henderson + + * config/i386/i386.md (btsq, btrq, btcq): Fix modes. + (bt peepholes): Likewise. + + * varasm.c (force_const_mem): Call set_mem_align. + +2004-12-22 Richard Henderson + + * config/i386/predicates.md (sse_comparison_operator): Fix + typo in ieee test. + (arith_or_logical_operator): Downcase codes. + +2004-12-23 Kaz Kojima + + PR target/18511 + * reload1.c (emit_output_reload_insns): Check if OLD is a hard + register before calling regno_clobbered_p. + * reload.c: Update comment for regno_clobbered_p. + +2004-12-22 Richard Henderson + + * config/i386/i386.c (override_options): Respect user disable of + fancy 387 math, sse, mmx. + (construct_container): Generate error if we need an sse regster + and sse has been disabled. + * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables + later sse generations. Disabling mmx also disables 3dnow. + +2004-12-22 Daniel Berlin + + * tree-inline.c (struct inline_data): Remove inlined_fns. + (expand_call_inline): Remove dead code setting + inlined_fns. + (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS. + * tree.h (struct tree_decl): Remove inlined_fns. + +2004-12-22 Roger Sayle + + * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code. + +2004-12-23 Alan Modra + + PR target/18896 + * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P + for real and imaginary parts if the parm is addressable. + (assign_parms_unsplit_complex): If parm addressable, save real + and imaginary parts to a stack temp. Pass assign_parm_data_all. + (assign_parms): Adjust assign_parms_unsplit_complex call. + +2004-12-22 Daniel Berlin + + * tree.h (DECL_PTA_ALIASVAR): Dead. + (struct tree_decl): Remove alias_var field. + +2004-12-22 Nathan Sidwell + + * system.h (IN_RANGE): Restore HOST_WIDE_INT cast. + * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE. + +2004-12-22 Richard Henderson + Uros Bizjak + + * config/i386/i386.md (truncdfsf2): Don't create stack temp when + using sse math only. Use truncdfsf2_with_temp. + (truncdfsf2_with_temp): New. + (truncdfsf_fast_i387): Rename from truncdfsf2_noop. Add memory + output alternative. + (truncdfsf_mixed): Rename from truncdfsf2_1_sse. Compress duplicate + alternatives. + (truncdfsf_fast_sse): Rename from truncdfsf2_2. Remove f alternative. + (truncdfsf2_3, truncdfsf2_sse_only): Remove. + (truncdfsf_i387): Rename from truncdfsf2_1. Compress duplicates. + (truncdfsf_fast_mixed): New. + (truncdfsf splitters): Remove all except the 387 load/store split. + (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with + respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and + TARGET_MIX_SSE_I387. + (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed. + (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop. + (*truncxf{s,d}f2_i387): New patterns. + (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1. + (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2, + rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2, + nearbyint{s,d}f2): Use renamed patterns. + +2004-12-22 Richard Kenner + + * tree.h (TYPE_SIZES_GIMPLIFIED): New. + * function.c (gimplify_parm_type): Don't gimplify type if already done. + * gimplify.c (gimplify_decl_expr): Likewise. + (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED. Examine nested + array types. + +2004-12-22 Richard Henderson + + * gimplify.c (eval_save_expr): Remove. + (gimplify_one_sizepos): Unshare expr before gimplifying. + * stor-layout.c (variable_size): Revert 2004-12-19 change. + (layout_decl): Revert 2004-12-18 change. + (layout_type): Revert 2004-12-21 change. + +2004-12-22 Richard Kenner + + * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types. + +2004-12-22 Mark Mitchell + + * Makefile.in (install-common): Remove special-case code for when + SPECS is defined. + +2004-12-22 Jan Beulich + + * config.gcc: Add dbxelf.h to NetWare's tm_file. + * config/i386/netware-crt0.c: Prototype __init_environment and + __deinit_environment prior to their definition. + (__init_environment): Correct invokation of constructor function. + * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use + builtin_define_std rather than builtin_define on IAPX386. + * config/i386/nwld.h: Disable stabs debugging info with the linker + this file supports. + * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for + the output. Add -posix to the options as that is the more compatible + mode. + * gthr-nks.h: Formatting. + (__gthread_mutex_init_function): Kill the dubious use of + NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes + were not meant to be recursive. + (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, + __gthread_recursive_mutex_init_function, + __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock, + __gthread_recursive_mutex_unlock): New. + +2004-12-22 Alexandre Oliva + + * config/mips/t-linux64: Remove code that messed with $(SPECS). + (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move + n32 to the front. + (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): + Removed. + * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle + -mabi-fake-default. + (SUBTARGET_TARGET_SWITCHES): Likewise. + +2004-12-21 Andrew Pinski + + PR c++/18984 + * pointer-set.c (pointer_set_contains): Add back. + * pointer-set.h (pointer_set_contains): Add back. + +2004-12-21 Richard Henderson + + * gimplify.c (eval_save_expr): New. + (gimplify_one_sizepos): Use it. + * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE. + +2004-12-21 Nathan Sidwell + + * system.c (IN_RANGE): Use plain unsigned, not unsigned + HOST_WIDE_INT. + * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE, + VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE, + POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE, + FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE, + QUAL_UNION_TYPE): Reorder for better code efficiency. + (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise. + (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise. + * tree.h (INDIRECT_REF_P): Reorder checks for better optimization. + (IS_EXPR_CODE_CLASS): Use IN_RANGE. + (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better + optimization. + +2004-12-21 David O'Brien + + * config/freebsd-spec.h: Use KSE pthread lib for -pthread. + +2004-12-21 James A. Morrison + + PR c/18963 + * c-decl.c (pushdecl): Remove block trying to merge static function + declarations at block scope to file scope declarations. + +2004-12-21 James A. Morrison + + PR c/18596 + * c-parse.in (initdcl): Don't process a declaration if start_decl fails. + (notype_initdcl): Don't process a declaration if start_decl fails. + * c-decl.c (start_decl): Fail if grokdeclarator fails. + (grokdeclarator): Fail if a function definition has an invalid storage + class. + * c-typeck.c (start_init): Treat error_mark_node the same as 0. + +2004-12-21 Richard Henderson + + * config/i386/i386.c (x86_sse_split_regs): Rename from + x86_sse_partial_regs. + * config/i386/i386.h (x86_sse_split_regs): Likewise. + (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS. + * config/i386/i386.md (*): Update to match. Remove two + floatsisf splitters that use it. + + * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove. + + * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove. + * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove. + * config/i386/i386.md (truncdfsf2_1_sse): Don't test it. + (truncdfsf2_2, truncdfsf2_sse_only): Likewise. + (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove. + (truncdfsf2_sse_only_nooverlap): Remove. + + * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove. + +2004-12-21 Eric Botcazou + + * expr.c (emit_group_load_1): Return the source if the move + is a regular move between complex values. + +2004-12-20 Roger Sayle + + PR middle-end/18683 + * config/rs6000/rs6000.c (current_file_function_operand): Only check + current_function_decl's DECL_RTL if it has already been set. + +2004-12-20 Roger Sayle + + PR middle-end/18683 + * function.c (pop_function_context_from): Don't reset reg_renumber. + +2004-12-20 Eric Botcazou + + PR middle-end/18776 + * expr.c (write_complex_part): Use a subreg if the original object + is a hard reg that spans an even number of regs or a MEM. + (read_complex_part): Likewise. + +2004-12-20 Mark Mitchell + + * Makefile.in (install-common): Do not install the specs file + unless SPECS is defined. + +2004-12-20 Zdenek Dvorak + + PR rtl-optimization/18942 + * simplify-rtx.c (simplify_relational_operation_1): Simplify + x + cst1 == cst2 to x == cst2 - cst1. Made static. + +2004-12-20 Matt Austern + + PR c++/19044 + * c-common.c (set_builtin_user_assembler_name): New. + * c-common.h (set_builtin_user_assembler_name): Declare. + * c-decl.c (finish_decl): Use set_builtin_user_assembler_name + +2004-12-20 Diego Novillo + + PR tree-optimization/19080 + + Merge from tree-cleanup-branch + + * tree-flow-inline.h (clear_call_clobbered): New function. + * tree-ssa-alias.c (init_alias_info): Call it. + +2004-12-20 Richard Henderson + + * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok + check. + +2004-12-20 Steven Bosscher + Andrew Pinski + + PR middle-end/18191 + PR middle-end/18965 + PR middle-end/18999 + * expr.c (categorize_ctor_elements_1): Count the total number + of elements in the constructor. + (categorize_ctor_elements): Return it in a new argument. + * tree.h (categorize_ctor_elements): Adjust prototype. + * gimplify.c (gimplify_init_ctor_eval_range): New. + (gimplify_init_ctor_eval): Gimplify RANGE_EXPR. + (gimplify_init_constructor): Block clear the object if the + constructor has fewer elements than the object type. Only try + to add assignments to individual elements when we have to. + +2004-12-20 Richard Henderson + + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use + long_long_integer_type_node in building V2DI_type_node. + + * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size. + * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise. + +2004-12-20 Ben Elliston + + * doc/md.texi (Expander Definitions): Use @emph instead of @strong + around Note: text to workaround a limitation of the Info format. + * doc/cpp.texi (Invocation): Likewise. + * doc/cppopts.texi: Likewise. + +2004-12-19 Dale Johannesen + + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Don't + reference operand 1 of ADDR_EXPRs. + +2004-12-19 Mark Mitchell + + * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro. + * output.h (assemble_name_raw): Declare it. + * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it. + * varasm.c (assemble_name_raw): New function. + (assemble_name): Use it. + (default_internal_label): Likewise. + * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise. + * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document. + +2004-12-19 Richard Henderson + + PR 18067 + * stor-layout.c (variable_size): Force creation of a SAVE_EXPR. + +2003-12-19 Steven Bosscher + + * config/i386/i386.c (ix86_split_to_parts): Use an array with + four elements for decoding a CONST_DOUBLE on 64 bits targets. + +2004-12-19 Bernardo Innocenti + + * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant + definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS. + +2004-12-18 Daniel Berlin + + * lambda-code.c (can_convert_to_perfect_nest): Make checking + match up with what perfect_nestify can actually handle. + (perfect_nestify): Don't return false in the phi node loop. + +2004-12-18 Richard Henderson + + * config/i386/i386.md (SSEINT16): New. + (movv16qi, movv8hi, movv4si, movv2di): Compress via macros. + (movv16qi_internal, movv8hi_internal, movv4si_internal, + movv2di_internal): Compress via macros. Add SSE zero alternative. + Fix pure SSE alternatives to use 'x' instead of 'Y'. + (MMXINT8): New. + (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal, + movv2si_internal): Compress via macros. + (SSEPUSH, MMXPUSH): New. + (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df, + pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros. + +2004-12-18 Richard Henderson + + PR middle-end/16417 + * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion + comment. + * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes + checks. + * c-tree.h (struct lang_decl): Remove pending_sizes. + * function.c: Include tree-gimple.h + (assign_parm_setup_reg): Remove callee-copies code. + (gimplify_parm_type, gimplify_parameters): New functions. + (expand_pending_sizes): Remove. + (expand_function_start): Don't call it. + * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL. + (gimplify_body): Add do_parms argument. Use gimplify_parameters. + (gimplify_function_tree): Setup cfun. Update gimplify_body call. + * tree-gimple.h (gimplify_body): Update decl. + * tree-inline.c (initialize_inlined_parameters): Update gimplify_body + call. + * tree.h (gimplify_parameters): Declare. + * Makefile.in (function.o): Depend on TREE_GIMPLE_H. + +2004-12-18 Richard Henderson + + * c-decl.c (finish_struct): Add DECL_EXPR for variable sized + structures seen inside functions. + +2004-12-18 Richard Henderson + + * c-decl.c (grokdeclarator): Save variable array size before + subtracting 1, rather than after. + +2004-12-18 Eric Botcazou + + PR middle-end/15486 + * varasm.c (asm_emit_uninitialised): Return early if + a custom section is requested. + (assemble_variable): Revert 2002-03-15 patch. + +2004-12-18 Richard Henderson + + * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr. + +2004-12-18 Zdenek Dvorak + + PR tree-optimization/18800 + * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter. + * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field. + (ALWAYS_PRUNE_CAND_SET_BOUND): New macro. + (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field. + (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune): + New functions. + (iv_ca_extend): Return number of candidates in the set. + (try_add_cand_for): Add argument to iv_ca_extend calls. + (try_improve_iv_set): Use iv_ca_prune. + * doc/invoke.texi (iv-always-prune-cand-set-bound): Document. + +2004-12-18 Zdenek Dvorak + + PR rtl-optimization/19001 + * loop-iv.c (iv_number_of_iterations): Record assumptions for loops + with power of two step to 'infinite' field. + +2004-12-18 Roger Sayle + + * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h. + (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h. + (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h. + (tree-mudflap.o): Depend upon gt-tree-mudflap.h. + (expr.o): Depend upon gt-expr.h. + (regclass.o): Depend upon gt-regclass.h. + (bitmap.o): Depend upon gt-bitmap.h. + (lists.o): Depend upon gt-lists.h. + + (cfgexpand.o): Don't depend upon gt-tree-cfg.h. + + (GTFILES): Remove fold-const.c. + (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h): + Remove rules. + +2004-12-18 Richard Henderson + + * stor-layout.c (layout_decl): Unshare size expressions copied + from the type. + + * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when + BOTTOM is a power of two. + +2004-12-18 Richard Henderson + + * tree-nested.c (save_tmp_var): New. + (struct walk_stmt_info): Add is_lhs. + (walk_stmts) : Be more accurate with setting of + val_only; set is_lhs. + (convert_nonlocal_reference): Use save_tmp_var when is_lhs; + clear is_lhs when appropriate. + (convert_local_reference): Likewise. + +2004-12-18 Richard Earnshaw + + * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA + compatibility code. + +2004-12-18 Roger Sayle + + * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p. + Take a max_cost argument to avoid scanning large blocks, by returning + a Boolean instead of a total. Include the cost of a "fstp %st(0)" + instruction required to pop dead values off of a register stack. + +2004-12-18 Roger Sayle + + PR middle-end/18548 + * expr.c (expand_expr_real_1) : Ensure that target, op0 + and op1 are all registers (or constants) before expanding the RTL + comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. + +2004-12-18 Eric Botcazou + + PR rtl-optimization/16968 + * loop.c (scan_loop): Stop scanning the loop for movable + insns as soon as an optimization barrier is encountered. + +2004-12-17 Zack Weinberg + + PR 18897 + * toplev.c (compile_file): Call process_pending_assemble_externals + just before targetm.asm_out.file_end. + +2004-12-17 Diego Novillo + + tree-optimization/18501 + * tree-optimize.c (init_tree_optimization_passes): Run + pass_late_warn_uninitialized before the last DCE run. + +2004-12-17 Richard Henderson + + * config/i386/i386.c (x86_64_reg_class_name): Re-indent. + (classify_argument, examine_argument, construct_container, + merge_classes): Remove prototypes. + (type_natural_mode): Split out from ... + (function_arg): ... here. + (gen_reg_or_parallel): Remove alt_mode argument. Update callers. + Use orig_mode unless it's BLKmode. + (construct_container): Add orig_mode argument. Update callers. + Use gen_reg_or_parallel for SSE registers. + (ix86_function_value): Use type_natural_mode. + (ix86_gimplify_va_arg): Likewise. + (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in + SSE registers; always accept all MMX, 3DNOW modes in MMX registers. + * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include + VALID_MMX_REG_MODE. + * config/i386/i386.md (attribute mode): Add V1DF. + (movsi_1): Use 'x' instead of 'Y' constraints. + (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise. + (movdi_1_rex64_nointerunit): Likewise. + (movdf_nointeger, movdf_integer): Likewise. Handle SSE1. + (movsf_1, movsf_1_nointerunit): Line up constraint alternatives. + (swapsf): Use fp_register_operand, don't disable for TARGET_SSE. + (swapdf): Likewise. + (swapxf): Enable only for TARGET_80387. + (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX. + (movtf): Remove double-check for TARGET_64BIT. + (movv2df_internal): Enable for SSE1. + (movv8hi_internal, movv16qi_internal): Likewise. + (movv2df, movv8hi, movv16qi): Likewise. + (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise. + (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal, + movv8qi_internal, movv4hi_internal, movv2sf_internal, + movv2df_internal, movv8hi_internal, movv16qi_internal, + movti_internal): Add leading '*' to name. + +2004-12-17 Dale Johannesen + + * c-decl.c (diagnose_mismatched_decls): Accept mismatched + function types: void with previous implicit int. + +2004-12-17 Andreas Krebbel + + * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to + s390_sr_alias_set. + +2004-12-17 Jan Beulich + + PR target/17603 + * config/i386/i386.c (enum x86_64_reg_class): Define + X86_64_COMPLEX_X87_CLASS. + (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS. + (merge_classes): Handle X86_64_COMPLEX_X87_CLASS. + (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS. + (examine_argument): X86_64_COMPLEX_X87_CLASS requires two + registers when dealing with a return value. + (construct_container): Handle X86_64_COMPLEX_X87_CLASS. + Eliminate impossible case of two X87/X87UP pairs (this now is + being expressed by a single COMPLEX_X87). + (x86_libcall_value): XCmode gets returned in st0/st1. + +2004-12-17 Steven Bosscher + + * tree.c (type_contains_placeholder_1): Always return false + for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder. + +2004-12-17 Uros Bizjak + + * config/i386/i386.md (extendsfdf2, *extendsfdf2_1, + *extendsfdf2_1_sse_only): Unify enable constraint with + respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH + and TARGET_MIX_SSE_I387. + (*extendsfdf2_i387): New insn pattern. + (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix + register constraint for operand 0. + (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse. + (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387. + +2004-12-16 Andrew Pinski + + PR target/19041 + * config/darwin.c (machopic_symbol_defined_p): Return false + if the binds local and is a common symbol. + +2004-12-16 Richard Henderson + + * config/i386/i386.md (extv, extzv, insv): Revalidate the + operand with ext_register_operand. + +2004-12-16 Kazu Hirata + + * global.c: Fix a comment typo. + +2004-12-16 Eric Botcazou + Roger Sayle + + PR tree-optimization/18707 + * cfgloopmanip.c (create_preheader): Move the preheader + only if the latch was falling through to the header. + +2004-12-16 Danny Smith + + PR target/18997 + * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0. + +2004-12-16 Richard Henderson + Aldy Hernandez + + * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace + hard registers. + +2004-12-16 H.J. Lu + + PR other/18508 + * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix + to back up the existing shared library. + * config/arm/t-netbsd (SHLIB_LINK): Likewise. + * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. + * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. + * config/sh/t-linux (SHLIB_LINK): Likewise. + * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. + * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. + * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. + * config/t-slibgcc-sld (SHLIB_LINK): Likewise. + + * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary + file. + +2004-12-16 Richard Henderson + + * Makefile.in (MD_DEPS, s-mddeps): New. + (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-preds): Depend on MD_DEPS instead of md_file. + (genobjnames): Add genmddeps.o + (build/genmddeps, build/genmddeps.o): New. + (mostlyclean): Remove mddeps.mk. + * genmddeps.c: New file. + * gensupport.c (include_callback): New. + (process_include): Call it. + * gensupport.h (include_callback): Declare. + +2004-12-16 Nathan Sidwell + + * local-alloc.c (block_alloc): Replace IN_RANGE with simple + comparison. + + * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs. + +2004-12-16 Mark Dettinger + + * config/s390/s390.c (struct processor_costs): Two new fields: + madbr, maebr. + (s390_rtx_costs): Added handling of multipy and add in SFmode. + More precise values for cost of multiply and add. + +2004-12-15 Richard Henderson + + PR target/19028 + * config/i386/i386.md (sse compare splitter): Test for SF and DFmode + explicitly instead of using VALID_SSE_REG_MODE. + +2004-12-15 Richard Henderson + + PR target/19005 + * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with + optimize_size. + (swapqi_1): Rename from swapqi. Enable only for no partial reg + stall and optimize_size. + (swapqi_2): New. + (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode. + (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override. + +2004-12-16 Uros Bizjak + + * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387): + Also enable for TARGET_MIX_SSE_I387. + +2004-12-16 Uros Bizjak + + * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only, + sqrt{s,d}f2_i387): Unify enable constraint with respect to + TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387, + TARGET_SSE_MATH and TARGET_MIX_SSE_I387. + (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed. + (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse. + (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387. + (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387. + (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387. + +2004-12-16 Uros Bizjak + + * config/i386/i386.md (*fop_?f_comm_{,sse,nosse}, + *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable + constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2, + TARGET_SSE_MATH and TARGET_MIX_SSE_I387. + (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed. + (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387. + (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387. + +2004-12-15 H.J. Lu + + PR target/18153 + * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports + -Bstatic/-Bdynamic option. + * config.in: Regenerated. + * configure: Likewise. + + * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static + -lunwind if possible. + +2004-12-15 Daniel Berlin + + * cfgloop.c (flow_loops_dump): Don't print out levels. + (flow_loops_find): Don't set loop->levels. + (flow_loops_level_compute): Make void. + * cfgloop.h (struct loops): Remove levels member. + Add comment about loops in parray possibly being NULL. + +2004-12-15 Alexandre Oliva + + * reload.c (SMALL_REGISTER_CLASS_P): New. + (push_secondary_reload, find_reusable_reload, find_reloads): Use + it instead of testing only the class size. + +2004-12-15 Eric Botcazou + + PR c++/17972 + * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS + on the STMT_EXPR wrapping up the inlined body. + +2004-12-15 Vladimir Makarov + Steven Bosscher + PR middle end/17340 + + * global.c: Update comments in a few places. + (check_earlyclobber): Return true if there are early clobber + classes. + (calculate_local_reg_bb_info): Do not try to mark earlyclobber + regs if there are none. + (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav, + make_accurate_live_analysis): Rename pavin, pavout to live_pavin, + live_pavout. + (modify_bb_reg_pav): Remove. + (calculate_reg_pav): Use code from modify_bb_reg_pav. + (temp_bitmap): New variable. + (calculate_reg_pav): Allocate/deallocate temp_bitmap. + +2004-12-15 Richard Henderson + + PR target/19010 + * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true + for TImode vectors. + (gen_reg_or_parallel): New. + (function_arg): Use it. + (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately, + MMX and 3DNOW separately. + (ix86_rtx_costs): Simplify FLOAT_EXTEND case. + (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately. + * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ... + (VALID_SSE_REG_MODE): ... here. + +2004-12-15 David Edelsohn + + * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy. + +2004-12-15 Ian Lance Taylor + + * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of + COMPARE of MULT. + * config/arm/arm.md (mulsi3_compare0): Don't check + arm_arch_xscale. + (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise. + (mulsi3addsi_compare0_scratch): Likewise. + +2004-12-15 Eric Botcazou + + PR other/18665 + * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2. + Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. + * libgcc2.c (__addvsi3): Rename to __addvSI3. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__addvdi3): Rename to __addvDI3. + (__subvsi3): Rename to __subvSI3. Use word type for the result. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__subvdi3): Rename to __subvDI3. + (_mulvsi3): Rename to _mulvSI3. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (_mulvdi3): Rename to _mulvDI3. + (__negvsi2): Rename to __negvSI2. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__negvdi2): Rename to __negvDI2. + (__absvsi2): Rename to __absvSI2. + New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__absvdi2): Rename to __absvDI2. + * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC. + (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2, + __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate + symbol and declare. + (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if + COMPAT_SIMODE_TRAPPING_ARITHMETIC. + +2004-12-15 Kazuhiro Inaoka + + * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE): + Use DWARF2_DEBUG. + + * config/m32r.c (m32r_legitimize_pic_address): Changed + to support GOTOFF relocation. + * config/m32r.md (UNSPEC_GOTOFF): New. + (gotoff_load_addr): New. + +2004-12-15 Richard Sandiford + + * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to + decide whether an argument is double-word aligned. + +2004-12-15 Richard Henderson + + * config/i386/i386.md: Fix missing modes on cmove splitters. + +2004-12-15 Jan Beulich + + * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h. + +2004-12-15 Uros Bizjak + + * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2, + *floatsisf2_i387, *floatsisf2_sse, floatdisf2, + *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse, + floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse, + floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387, + *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2): + Unify enable constraint with respect to TARGET_80387, TARGET_SSE, + TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387. + (*float?i?f_i387): Rename to *float?i?f2_mixed. + (*float?i?f2_1): Rename to *float?i?f2_i387. + (*float?i?f2_i387_only): Rename to *float?i?f2_i387. + (float?ixf2): Penalize integer register operand. + +2004-12-14 John David Anglin + + PR c++/17242 + * configure.ac: Add GAS check for HP-UX .nsubspa comdat. + * configure, config.in: Rebuilt. + * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete + defines. + * config/pa/pa.c (pa_select_section): Allow uninitialized variables in + one-only (comdat) subspaces. + * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define. + (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are + true. + (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common. + +2004-12-14 Ian Lance Taylor + + * combine.c (combine_validate_cost): Consider cost of + undobuf.other_insn rather than always allowing the recombination + if it is set. + +2004-12-14 John David Anglin + + * pa-host.c (MAP_FAILED): Define if not defined. + (pa_gt_pch_use_address): Handle short reads. + +2004-12-14 Richard Henderson + + PR target/17990 + * config/i386/i386.c (x86_use_bt): New. + (ix86_expand_unary_operator): Use MEM_P. + (ix86_expand_fp_absneg_operator): New. + * config/i386/i386.h (x86_use_bt): Declare. + (TARGET_USE_BT): New. + * config/i386/i386-protos.h: Update. + * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator. + (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise. + (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs, + negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if, + abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs, + absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove. + (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, + absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New. Merge all + neg and abs splitters. Handle DFmode in general regs in 64-bit mode. + (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math. + (btsq, btrq, btcq): New. Add peepholes as well. + (movv4sf_internal splitter): Postpone til after reload. + (movv2di_internal splitter): Likewise. + * config/i386/predicates.md (const_0_to_63_operand): New. + (absneg_operator): New. + +2004-12-14 John David Anglin + + * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P): + Check register number and that reg_renumber is nonzero before using it. + +2004-12-14 Steve Ellcey + + * doc/invoke.texi (IA-64 options): Add existing options that + weren't already listed. + +2004-12-14 Jeff Law + + * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target + partition to conflict_graph_merge_regs. + +2004-12-14 Uttam Pawar + Janis Johnson + + * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors + for vector types with invalid component types. + +2004-12-14 Jakub Jelinek + + PR middle-end/18951 + * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2, + expand_builtin_mathfn_3): Avoid using arguments passed to + save_expr after that call. + + * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend + LOAD_EXTEND_OP is not defined. + (fold): Likewise. If flag_syntax_only, don't depend on BITS_PER_WORD. + +2004-12-14 Tobias Schlueter + + * tree.def, doc/c-tree.texi: Correctly document restrictions on the + shift width. + +2004-12-14 Kazu Hirata + + * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1. + +2004-12-14 Richard Earnshaw + + PR target/18973 + arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs) + (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling + property to flags. + +2004-12-14 Diego Novillo + + * tree-gimple.c (get_base_address): Update documentation. + +2004-12-13 Richard Henderson + + PR middle-end/17930 + * passes.c (rest_of_clean_state): Fix computation of + preferred_incoming_stack_boundary. + +2004-12-13 Wolfgang Bangerth + + * reload.h: Remove struct needs and its only use. + +2004-12-13 Roger Sayle + + PR rtl-optimization/18928 + * simplify_rtx.c (plus_minus_operand_p): New function to encode + the test for suitable operands for calls to simplify_plus_minus. + Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P. + (simplify_binary_operation): Use plus_minus_operand_p. + +2004-12-13 Alexandre Oliva + + PR tree-opt/16951 + * tree-inline.c (setup_one_parameter): Don't directly map a + parameter to the address of another variable of the same + function. + +2004-13-12 Steven Bosscher + + * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we + can never create autoinc insns after reload. + +2004-12-13 Jeff Law + Kazu Hirata + + PR tree-optimization/18694 + * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a + PHI argument is set from a PHI_RESULT in the same block and the + PHI argument is not the same as the PHI result. + +2004-12-13 David Edelsohn + + * xcoffout.c (xcoffout_declare_function): Always strip storage + class encoding. + +2004-12-13 Andrew Pinski + + PR target/18964 + * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic + problem, adding a space at the end of the string before concatenation. + +2004-12-13 Kazu Hirata + + * c-common.c (fname_as_string): Free namep if we are returning + cstr.text. + + * tree-ssa-dom.c (record_edge_info): Fix memory leak. + +2004-12-13 Andrew Pinski + + * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND. + +2004-12-13 Kazu Hirata + + * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by + doing a pointer comparison. + + * tree-ssa-dom.c (record_equivalences_from_phis): Add a + comment. + + * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment + typos. + +2004-12-13 Kazuhiro Inaoka + + * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to + the list rather than replacing the existing value. + +2004-12-13 Richard Henderson + + * cfg.c (dump_flow_info): Don't dump pseudo info after reload. + +2004-12-13 Richard Henderson + + * Makefile.in (insn-preds.o): Depend on REGS_H. + * genpreds.c (write_insn_preds_c): Include regs.h. + * config/i386/predicates.md (index_register_operand): Use + REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P. + + * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'. + * config/i386/i386.md (lea_general_1, lea_general_1_zext, + lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext, + adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea, + ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea, + ashlqi3_1_lea): Use 'l' for index register operand. + (ashldi3_1_rex64 splitter): Use index_register_operand. + (ashlsi3_1 splitter): Be more careful with modes. + +2004-12-13 Danny Smith + + PR target/18459 + * defaults.h (TARGET_USE_JCR_SECTION): New macro. + * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it. + * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override + default. + +2004-12-13 Uros Bizjak + + PR target/14941 + PR target/18503 + * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd): + Fix wrong vec_merge selector bitmask. + +2004-12-12 Richard Henderson + + PR rtl-opt/17186 + * reg-stack.c (move_nan_for_stack_reg): New. + (subst_stack_regs_pat): Use it. + (move_for_stack_reg): Handle source register not live with a nan. + +2004-12-12 Richard Henderson + + * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch + errors across operations. + +2004-12-12 Di-an Jan + + * doc/passes.texi (Pass Manager): Correct list of source files. + +2004-12-12 Richard Henderson + + * expr.c (emit_move_change_mode): New. + (emit_move_via_alt_mode): Use it. + +2004-12-12 Nathanael Nerode + John David Anglin + + PR middle-end/17564 + * dojump.c (do_compare_and_jump): Only canonicalize function pointers + in a comparison if both sides are function pointers. + +2004-12-12 Richard Henderson + + PR target/18932 + * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand + and compare_operator to propagate the input CC mode to the output. + * config/i386/predicates.md (compare_operator): New. + +2004-12-12 Andrew Pinski + + PR tree-opt/18040 + * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR, + CONVERT_EXPR cases. + (handled_component_p): Likewise. + +2004-12-12 Kazu Hirata + + * reg-stack.c (convert_regs_2): Free stack. + + * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix + comment typos. + +2004-12-12 Daniel Berlin + + * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null. + * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real + inner loop. + +2004-12-12 Diego Novillo + + * tree-gimple.c (get_base_address): Update documentation. + +2004-12-12 Kazu Hirata + + * lcm.c (optimize_mode_switching): Free ptr even when mode_set + is NULL_RTX. + +2004-12-12 Roger Sayle + + * reg-stack.c (change_stack): Avoid placing the new top-of-stack in + its correct location during popping if we need to permute the stack + afterwards. Attempt to preserve the original stack ordering. + +2004-12-12 Kazu Hirata + + * lcm.c (optimize_mode_switching): Free insert and delete in + the "for" loop. + +2004-12-11 David Edelsohn + Ulrich Weigand + + PR target/18641 + * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all + constants into all register classes intersecting with FLOAT_REGS + via memory. + * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same. + * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when + choosing register preferences. + (movdi_internal64): Same. + +2004-12-11 Kazu Hirata + + * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX + before we release an SSA_NAME. + +2004-12-11 Roger Sayle + + PR middle-end/18921 + * fold-const.c (fold_unwidened_comparison): Use omit_one_operand + instead of constant_boolean_node as arg0 may have side-effects. + +2004-12-10 John David Anglin + + * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH + file to anonymous private map. + +2004-12-10 Roger Sayle + + PR target/18002 + PR middle-end/18424 + * dojump.c (do_jump): When attempting to reverse the effects of + fold_single_bit_test, we need to STRIP_NOPS and narrowing type + conversions, and handle BIT_XOR_EXPR that's used to invert the + sense of the single bit test. + +2004-12-10 Devang Patel + + PR 18732 + * gcc.c (main): Do not break out of loop when error is reported while + processing one source file. + +2004-12-10 Diego Novillo + + * tree-into-ssa.c (REWRITE_THIS_STMT): Define. + (mark_def_sites): Clear REWRITE_THIS_STMT for statements that + don't need any operands rewritten. + (rewrite_stmt): Ignore statements that don't need to be + rewritten. + (rewrite_operand): Validate that an existing SSA_NAME is + identical to the current reaching definition of the operand. + +2004-12-10 Diego Novillo + + * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function. + * tree-vectorizer.c (vectorizable_load): Call it. + * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare. + * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming. + +2004-12-10 Kazu Hirata + + * regmove.c (combine_stack_adjustments_for_block): Free + memlist if it hasn't been freed. + +2004-12-10 Ziemowit Laski + + * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC + pointer field is set before dereferencing it. + +2004-12-10 Andrew Pinski + + PR middle-end/18903 + * tree-cfg.c (remove_bb): Put the moved label at the beginning + of the basic block. + +2004-12-10 Kazu Hirata + + * tree-data-ref.c (free_data_refs): Free each data_reference + object. + + * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a + call to is_gimple_min_invariant if we know the result. + +2004-12-10 Jeff Law + + * tree-ssa-alias.c (setup_pointers_and_addressables): Remove + redundant test of v_ann->mem_tag_kind. + + * tree-ssa-operands.c (get_indirect_ref_operands): Remove + redundant conditional clearing opf_kill_def. + +2004-12-10 Richard Sandiford + + * config/frv/frv-modes.def: Fix comment typos. + (CC_NZ): Define new mode. + * config/frv/frv-protos.h (frv_select_cc_mode): Declare. + (condexec_intop_cmp_operator): Delete. + * config/frv/frv.c (comparison_string): New function. + (frv_print_operand): Use it to handle 'c' and 'C'. + (relational_operator): Redefine in terms of integer_relational_operator + and float_relational_operator. + (signed_relational_operator, unsigned_relational_operator): Delete. + (integer_relational_operator): New predicate, combining the above. + Check the mode of the first operand but leave frv.md to check the rest. + (float_relational_operator): Just check the mode of the first operand + and leave frv.md to check the rest. + (intop_compare_operator): Assume the result is compared with zero + in mode CC_NZmode. Allow PLUS and MINUS. Leave frv.md to check + the operand predicates. + (condexec_intop_cmp_operator): Delete. + (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests) + (frv_hard_regno_mode_ok): Handle CC_NZmode. + (frv_select_cc_mode): New function. + * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode. + (REVERSIBLE_CC_MODE): Include CC_NZmode. + (PREDICATE_CODES): Replace entries for signed_relational_operand and + unsigned_relational_operator with one for integer_relational_operator. + Delete entry for condexec_intop_cmp_operator. + * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz) + (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns. + (*combo_intop_compare2, *combo_intop_compare4): Delete. + (*combo_intop_compare1): Change mode to CC_NZ. + (*combo_intop_compare2): Likewise. Renamed from *combo_intop_compare3. + (branch_{un,}signed_true, branch_{un,}signed_false) + (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed) + (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed) + (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed) + (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed) + (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed) + (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these + pattern pairs. Use integer_relational_operator. Remove mode from + icc_operand. + +2004-12-10 Mark Dettinger + + * config/s390/s390.c (struct processor_costs): New fields ml, + sqdbr, sqebr. + (s390_rtx_costs): Added the missing handling of multiply & add, + square root, and umulsidi. + +2004-12-10 Kazu Hirata + + * expmed.c (synth_mult): Initialize new_limit.latency before + making a recursive call. + +2004-12-10 Nick Clifton + + * config/mn10300/mn10300.c (legitimate_address_p): Reject address + whose index is itself the sum of two other parts. + +2004-12-10 Alan Modra + + * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink. + +2004-12-10 Uros Bizjak + + * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi". + +2004-12-09 Richard Henderson + + PR c/18282 + * attribs.c (decl_attributes): Use relayout_decl. + * c-common.c (handle_mode_attribute): Copy all relevant type + parameters from the new underlying integral type. + +2004-12-09 Richard Henderson + + * c-common.c (shorten_compare): Don't special-case min/maxval + for C enumerations. + +2004-12-09 Richard Sandiford + + * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether + the request subreg is entirely contained in the requested component. + (simplify_gen_subreg): Return null for CONCATs that are rejected + by simplify_subreg. + * expmed.c (store_bit_field): Create a temporary when changing the + value to an integer mode. + +2004-12-09 David Edelsohn + + * real.c (ibm_extended): Correct comment. + +2004-12-09 Stan Shebs + + * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros + formerly in darwin-tramp.asm. + * config/rs6000/darwin-tramp.asm: Include darwin-asm.h. + * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros. + * config/rs6000/t-darwin: Add dependencies. + +2004-12-09 Richard Henderson + + PR target/17025 + * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. + (test_qi_1, andqi_2): Do not promote to simode. + +2004-12-09 Andrew Pinski + + PR tree-opt/18904 + * tree-chrec.c (chrec_convert): Use fold_convert + instead of convert. + +2004-12-09 Matt Rice + + PR preprocessor/18102 + * c-incpath.c (remove_duplicates): Check for construct + equality. + +2004-12-09 Dorit Naishlos + + * genopinit.c (vec_realign_store_optab): Initialization removed. + * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed. + * optabs.h (optab_index): OTI_vec_realign_store Removed. + (vec_realign_store_optab): Removed. + * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed. + * target.h (builtin_mask_for_store): Removed. + * tree.def (REALIGN_STORE_EXPR): Removed. + * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed. + (altivec_builtin_mask_for_store): Removed. + (altivec_init_builtins): Removed initialization of + altivec_builtin_mask_for_store. + + * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. + (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New. + +2004-12-09 Nathan Sidwell + + * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs. + + * tree.def (SET_TYPE): Remove. + (CONSTRUCTOR): Update description. + * builtins.c (type_to_class) Remove SET_TYPE case. + * dbxout.c (dbxout_type): Likewise. + * dwarf2out.c (is_base_type): Likewise. + (gen_set_type_die): Remove. + (gen_type_die): Remove SET_TYPE case. + * expr.c (count_type_elements): Likewise. + (mostly_zeroes_p): Likewise. + (store_constructor): Likewise. + * print_tree.c (print_node): Likewise. + * stor-layout.c (layout_type): Likewise. + * tree-browser.c (browse_tree): Likewise. + * tree-inline.c (remap_type): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree.c (type_contains_plaeholder_1, type_hash_eq, + variably_modified_type_p, initializer_zerop): Likewise. + * tree.h (SET_OR_ARRAY_CHECK): Remove. + (AGGREGATE_TYPE_P): Remove SET_TYPE check. + (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK. + * typeclass.h (enum type_class): Remove set_type_class. + * varasm.c (const_hash_1): Remove SET_TYPE case. + (compare_constant, copy_constant, output_constant): Likewise. + * config/i386/i386.c (classify_argument): Likewise. + * config/ia64/ia64.c (hfa_element_mode): Likewise. + * config/sparc/sparc.c (sparc_type_code): Likewise. + + PR c++/16681 + * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case. + +2004-12-08 Richard Henderson + + * config/i386/i386.md: Use FLAGS_REG everywhere. + +2004-12-08 Eric Christopher + + * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite + to avoid call to default function. + +2004-12-08 Zack Weinberg + + PR 17982 + * varasm.c (pending_assemble_externals): New static. + (assemble_external_real): Meat of assemble_external split out + to this new function. + (process_pending_assemble_externals): New function. + (assemble_external): Use gcc_assert. If flag_unit_at_a_time + is true and the basic test passes, merely cons the decl onto + the pending list to be handled later. + * tree.h: Declare process_pending_assemble_externals. + * cgraphunit.c (cgraph_optimize): Call it. + + * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL. + +2004-12-08 Kazu Hirata + + * cfgloopmanip.c (create_preheader): Speed up by "unrolling" + and simplifying FOR_EACH_EDGE. + +2004-12-08 Richard Sandiford + + * config/frv/frv.c (frv_sort_insn_group): Always initialize + packet_group->nop. + +2004-12-08 Nathan Sidwell + + PR c++/18672 + * gimplify.c (canonicalize_addr_expr): Cope with array of + incomplete type. + (gimplify_conversion): Remove redundant checks. + + * doc/trouble.texi (Non-bugs): Clarify empty loop removal. + +2004-12-08 Uros Bizjak + + * config/i386/i386.c (output_387_binary_op, + ix86_prepare_fp_compare_args): Fix is_sse condition. + +2004-12-07 Uros Bizjak + + * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx + argument. + + * config/i386/i386.c (output_fp_compare): Fix is_sse condition. + Use EFLAGS_P only when fcomi insn should be used. Fix handling + of eflags_p variable. Change alt table accordingly. For non-fcomi + compare insn always use trailing fnstsw insn. Fix intmode + calculation for ficom insn. + (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call + ix86_free_from_memory when "pushed" is specified. + (ix86_expand_branch): Change call to ix86_split_fp_branch. + + * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf): + Change eflags_p parameter in call to output_fp_compare. + (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove. + (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to + *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p + parameter in call to output_fp_compare. + (*cmpfp_2_u): Remove. + (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter + in call to output_fp_compare. + (*ficom_1): Remove insn definition and corresponding define_split. + (*cmpfp_si): New insn definition. + (*fp_jcc_8): New insn definition. Add new splitters for + "memory_operand" and "register_operand". + (define_split): Add new parameter in call to ix86_split_fp_branch. + + config/i386/predicates.md (float_operator): New predicate. + +2004-12-08 Kazu Hirata + + * c-common.c (verify_tree): Don't check code length if we know + we are handling tcc_unary. + * print_tree.c (print_node): Remove code to handle RTL + appearing as a part of a tree node. + * tree-gimple.c (recalculate_side_effects): Rename fro as len. + * tree.c (build1_stat): Don't check TREE_CODE_LENGTH. + (PROCESS_ARG): Don't refer to fro. + (build2_stat, build3_stat, build4_stat): Don't compute fro. + +2004-12-07 Roger Sayle + + PR middle-end/18293 + * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier. + (expand_mult): Special case powers of two to avoid synth_mult. + * loop.c (product_cheap_p): Handle case where expand_mult does + require/generate any instructions (i.e. multiplication by zero). + +2004-12-07 Richard Henderson + + * tree-pretty-print.c (dump_array_domain): Split out from + dump_generic_node; fix off-by-one error on zero-based array bounds. + (dump_generic_node): Use it. + (print_declaration): Likewise. + +2004-12-08 Richard Guenther + + * doc/invoke.texi: Adjust default values for + large-function-growth and inline-unit-growth to match + params.def. Clarify used algorithm. + +2004-12-07 David Mosberger + + PR target/18443 + * config/ia64/ia64.c (ia64_assemble_integer): Add support for + emitting unaligned pointer-sized integers. + +2004-12-07 Steven Bosscher + + PR c/18867 + * c-typeck.c (c_start_case): Set orig_type to error_mark_node + when the type of the controlling expression is not a valid type. + +2004-12-07 Steven Bosscher + + PR tree-optimization/17340 + * tree-ssa-pre.c (compute_antic): Fix comment. + (compute_avail): Do not recurse, instead do a DFS using a stack + and a loop. + (execute_pre): Adjust. + +2004-12-07 Ziemowit Laski + + * c-tree.h (struct lang_type): Rename 'objc_protocols' field + to 'objc_info'. + +2004-12-07 Eric Christopher + + PR target/16317 + * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define. + +2004-12-07 Eric Christopher + + * config/mips/mips-protos.h (mips_valid_pointer_mode): Move + prototype... + * config/mips/mips.c: ... here. Make static. + +2004-12-07 Eric Christopher + + PR target/18442 + * config/mips/mips.c (mips_vector_mode_supported_p): New function. + (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above. + +2004-12-07 Kazu Hirata + + * c-common.c, expr.c, fold-const.c, print-tree.c, + tree-gimple.c, tree-inline.c, tree-pretty-print.c, + tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of + first_rtl_op with TREE_CODE_LENGTH. + * tree.c (first_rtl_op): Remove. + Replace uses of first_rtl_op with TREE_CODE_LENGTH. + * tree.h: Remove the prototype for first_rtl_op. + +2004-12-07 David Edelsohn + + * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK): + Revert 2004-12-01 change. + +2004-12-06 Ziemowit Laski + + * c-tree.h (struct lang_type): Add 'objc_protocols' field. + +2004-12-06 DJ Delorie + + * reload.c (find_valid_class): Fix logic to test inner mode as well. + (push_reload): Pass inner mode. + +2004-12-06 Eric Christopher + + * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document. + +2004-12-06 Aldy Hernandez + + * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1. + +2004-12-06 Zdenek Dvorak + Kazu Hirata + + PR tree-optimization/18601 + * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed. + (tree_forwarder_block_p): Do not consider blocks that are its own + successors forwarders. + (cleanup_forwarder_blocks, remove_forwarder_block): New functions. + (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of + thread_jumps. + * tree-flow.h (bb_ann_d): Remove forwardable. + +2004-12-06 Kazu Hirata + + * expr.c (expand_expr_real_1): Remove an "if" whose condition + is always false. + +2004-12-06 Roger Sayle + + * c-gimplify.c (gimplify_c_loop): Improve initial implementations + for loops whose conditions are known at compile-time. + * gimplify.c (append_to_statement_list_1): Remove side_effects + parameter, this function should never be called if its false. + (append_to_statement_list): Only call append_to_statement_list_1 + if t is non-NULL tree with side-effects. + (append_to_statement_list_force): Likewise, if t is not NULL. + +2004-12-06 J"orn Rennecke + + * bt-load.c (btr_def_s): New member own_end; + (add_btr_to_live_range): Add second parameter. Changed caller. + (clear_btr_from_live_range): Clear btrs_live_at_end bit + for the register its definition basic block if own_end is set. + (augment_live_range): Also take btrs_live_at_end into account. + (combine_btr_defs): Don't bother with + other_def->other_btr_uses_after_use if it pertains to a different + register. + (move_btr_def): Set def->other_btr_uses_before_def after + calling combine_btr_defs." + + * bt-load.c (augment_live_range): New argument full_range. + Changed all callers. + + * bt-load.c (move_tr_def): Set other_tr_uses_before_def + taking new btr assignment into account. + +2004-12-05 Daniel Berlin + + * tree-ssa-alias.c (create_global_var): Use void_type_node, + not size_type_node. + +2004-12-05 Kazu Hirata + + * expr.c (expand_expr_real_1): Abort on COND_EXPR of + VOID_TYPE. + +2004-12-05 Richard Henderson + + PR target/18841 + * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New. + (builtin_setjmp_receiver_er_sl_1): Use it. + (builtin_setjmp_receiver_er_1): Likewise. + (builtin_setjmp_receiver_er, exception_receiver_er): Remove. + (builtin_setjmp_receiver): Don't split for explicit relocs until + after reload. + (exception_receiver): Likewise. + +2004-12-05 Andrew Pinski + + * mklibgcc.in (vis_hide): Add the prototype for the test. + +2004-12-05 Roger Sayle + + * c-typeck.c (c_finish_loop): Improve initial implementations + for loops whose conditions are known at compile-time. + +2004-12-05 Kazu Hirata + + * builtins.c: Fix comment typos. + +2004-12-04 John David Anglin + + PR middle-end/18730 + * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When + the first/last insn is a sequence, return the first/last insn of the + sequence. + + PR bootstrap/18804 + * mklibgcc.in (vis_hide): Use implementation instead of declaration + for test function. + +2004-12-04 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to + use ofs in BWX two byte special case. + (alpha_expand_unaligned_store): Likewise. + +2004-12-04 Kazu Hirata + + * gcse.c (gcse_main): Add a comment. + +2004-12-04 Andrew Pinski + + PR middle-end/17909 + * builtins.c (fold_builtin_next_arg): Export and return true + when there is a warning or an error. + (expand_builtin_va_start): When fold_builtin_next_arg returns true, + return const0_rtx. + (expand_builtin): Likewise. + * gimplify.c (gimplify_call_expr): Error out if there is not + enough arguments to va_start. Call fold_builtin_next_arg also + on the second argument. + * tree.h (fold_builtin_next_arg): Prototype. + +2004-12-04 Alan Modra + + * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/. + Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK, + SHLIB_INSTALL, and SHLIBUNWIND_INSTALL. + * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of + shlib_dir and shlib_so_name. + * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise. + * config/t-libunwind-elf (SHLIB_NAME): Likewise. + * config/t-slibgcc-darwin (SHLIB_NAME): Likewise. + * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise. + * config/t-slibgcc-sld (SHLIB_NAME): Likewise. + (SHLIB_LINK): Don't use shlib_dir when creating symlink. + +2004-12-03 Roger Sayle + + * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook. + +2004-12-03 Richard Henderson + + * alias.c (component_uses_parent_alias_set): Rename from + can_address_p. Return bool. Reverse the sense of the result. + Reinstate the check for alias set zero. + (get_alias_set): Update to match. + * alias.h (component_uses_parent_alias_set): Likewise. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. + * expr.c (expand_assignment): Likewise. + * expr.h: Remove commented out prototypes that were moved to alias.h. + +2004-12-03 Richard Henderson + + * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New. + (TARGET_CANNOT_FORCE_CONST_MEM): New. + +2004-12-04 Alan Modra + + PR middle end/18718 + * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are + in pairs. + * sched-ebb.c (schedule_ebb): Likewise. + +2004-12-03 Andreas Schwab + + * Makefile.in (HOSTHOOKS_DEF_H): Define. + (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H). + (host-default.o): Likewise. + +2004-12-03 Eric Christopher + + * config/stormy16/stormy16.md (pushqi, popqi, pushhi, + pophi): Add number of arguments to name so that the + pattern is recognized as a named pattern. + +2004-12-03 Janis Johnson + + * doc/extend.texi (AltiVec Builtins): Fix info about signedness. + +2004-12-03 Andreas Tobler + + * config/rs6000/rs6000.c (rs6000_override_options): Protect + darwin_one_byte_bool with #if. + +2004-12-03 Paolo Bonzini + + * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN. + +2004-12-03 H.J. Lu + + * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART. + +2004-12-03 Richard Sandiford + + * configure.ac: Move TL_AC_GCC_VERSION into initialization section. + Set libstdcxx_incdir directly. + * configure: Regenerate. + +2004-12-03 Kazu Hirata + + * tree-ssa-dom.c (record_equivalences_from_phis): Remove an + "if" whose condition is always true. + + * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of + INSN_P. + +2004-12-02 Stan Shebs + + * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit + Darwin default to one-byte bools. + +2004-12-02 Richard Henderson + + PR 18774 + * simplify-rtx.c (simplify_immed_subreg): Fail complex modes. + +2004-12-03 Ben Elliston + + * doc/cfg.texi (Edges): Update. Document the edge_iterator data + type and its methods. + +2004-12-02 Richard Henderson + + * expr.c (write_complex_part): Use simplify_gen_subreg when the + submode is at least as large as a word. + (read_complex_part): Likewise. + +2004-12-02 H.J. Lu + + PR bootstrap/18532 + * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for + multilib at a time. Don't build the default set. Don't add + EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove + filter for shared libunwind and libgcc. + +2004-12-02 Roger Sayle + + PR target/18759 + * config/i386/i386.c (override_options): If -fomit-frame-pointer has + already been specified, ignore the -momit-leaf-frame-pointer option. + +2004-12-02 H.J. Lu + + * varasm.c (make_decl_rtl): Add the missing `;'. + +2004-12-02 Andrew Pinski + + * tree.c (is_attribute_p): Split out to .. + (is_attribute_with_length_p): Here. Use IDENTIFIER_LENGTH instead + of strlen and compare the string lengths before calling strcmp. + (lookup_attribute): Call is_attribute_with_length_p instead of + is_attribute_p. + +2004-12-02 Devang Patel + + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused. + * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused. + * config/i386/darwin.h (CC1_SPEC): Same. + +2004-12-02 Richard Henderson + + * optabs.c (lowpart_subreg_maybe_copy): New. + (expand_unop, expand_abs_nojump): Use it. + +2004-12-02 J"orn Rennecke + + * sh.md (extv, extzv): Add pattern predicate. + +2004-12-02 Kazu Hirata + + * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF + is not null. + + * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF + is not null. + + * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST. + +2004-12-02 Jeff Law + + * tree-eh.c: Revert yesterday's change. + +2004-12-02 Andrew Pinski + + * varasm.c (decode_reg_name): Revert change to check for zero + length strings. + (make_decl_rtl): Make sure that we call decode_reg_name only + when needed. + +2004-12-02 Dorit Naishlos + + PR tree-opt/18716 + * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set + then and else labels. + +2004-12-02 Andreas Schwab + + * Makefile.in (WERROR_FLAGS): Renamed from WERROR. + (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR). + (STAGE2_FLAGS_TO_PASS): Likewise. + + * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR. + +2004-12-02 Richard Sandiford + + * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version. Remove + now-redundant AC_SUBSTs. + * aclocal.m4: Include ../config/gcc-version.m4. + * configure: Regenerate. + +2004-12-02 Alan Modra + + * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the + #ifdef RELOCATABLE_NEEDS_FIXUP. + +2004-12-01 Roger Sayle + + PR target/9908 + * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct + Intel assembler syntax by using %A1 instead of %*%1. + +2004-12-01 Richard Henderson + + * expr.c (expand_assignment): Handle CONCAT both as a final + destination and as a middle point. + +2004-12-01 Jeff Law + + * tree-eh.c (save_eptr, save_filt): Now file scoped statics. + (honor_protect_cleanup_actions): Only create save_eptr and + save_filt if they do not already exist. + (lower_eh_constructs): Wipe all knowledge of save_eptr and + save_filt before returning. + +2004-12-02 Kazu Hirata + + * tree-phinodes.c (remove_phi_arg_num): Fix a comment. + +2004-12-02 Alan Modra + + PR target/16952 + * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace + #ifdef RELOCATABLE_NEEDS_FIXUP with if. + * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms + of target_flags_explicit. + * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch + case. Define as 0 for non-biarch. + +2004-12-01 Zack Weinberg + + * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK): + Change temporary file tag from a prefix to an infix. + +2004-12-02 Andreas Schwab + + * gcc.c (struct option_map): Add entry for "--pass-exit-codes". + +2004-12-01 Andrew Pinski + + PR tree-opt/18763 + PR tree-opt/18746 + * tree-ssa-alias.c (init_alias_info): Get statement operands for all + the statements if aliases_computed_p is true. + +2004-12-01 Mark Mitchell + + * Makefile.in (WERROR): New variable. + (STRICT2_WARN): Use it. + (STAGE2_FLAGS_TO_PASS): Likewise. + * config/i386/x-mingw32 (WERROR): Add -Wno-format. + +2004-12-01 Richard Henderson + + * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR + offsetting. + +2004-12-01 Diego Novillo + + PR tree-optimization/18291 + * tree-ssa-copy.c (merge_alias_info): Fix merging of + flow-sensitive alias information. If the new pointer has no + name tag, copy it from the original pointer. Otherwise, make + sure that the pointed-to sets have a common intersection. + +2004-12-01 Richard Henderson + + PR rtl-opt/15289 + * emit-rtl.c (gen_complex_constant_part): Remove. + (gen_realpart, gen_imagpart): Remove. + * rtl.h (gen_realpart, gen_imagpart): Remove. + * expmed.c (extract_bit_field): Remove CONCAT hack catering to + gen_realpart/gen_imagpart. + * expr.c (write_complex_part, read_complex_part): New. + (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push, + emit_move_complex_push, emit_move_complex, emit_move_ccmode, + emit_move_multi_word): Split out from ... + (emit_move_insn_1): ... here. + (expand_expr_real_1) : Use write_complex_part. + : Use read_complex_part. + * function.c (assign_parm_setup_reg): Hard-code transformations + instead of using gen_realpart/gen_imagpart. + + * expr.c (optimize_bitfield_assignment_op): Split out from ... + (expand_assignment): ... here. Use handled_component_p to gate + get_inner_reference code. Simplify MEM handling. Special case + CONCAT destinations. + + * expmed.c (store_bit_field): Use simplify_gen_subreg instead + of gen_rtx_SUBREG directly. + +2004-12-01 David Edelsohn + Nathan Sidwell + + PR target/17107 + * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER. + (sgt): Same. + (sle): Same. + (slt): Same. + +2004-12-01 Nathan Sidwell + + PR middle-end/18667 + * params.c (set_param_value): Add range check. + * params.def: Add min and max values. Reformat long strings. + * params.h (struct param_info): Add min and max fields. + (enum compiler_param): Adjust DEFPARAM. + * toplev.c (lang_independent_params): Likewise. + +2004-12-01 Alan Modra + + PR target/12817 + * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. + +2004-12-01 Joseph S. Myers + + * doc/standards.texi: Update for C99 TC2. + +2004-11-30 Jeff Law + + * sbitmap.c (sbitmap_any_common_bits): New function. + * sbitmap.h (sbitmap_any_common_bits): Prototype. + * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits + No longer allocate/free "psp", "pss" sbitmaps. + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for + the "res" sbitmap. + (group_aliases): Similarly. + +2004-11-30 Nathan Sidwell + + * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid + uninitialized variable. + +2004-11-30 Eric Christopher + + * fold-const.c (fold_widened_comparison): Make sure that we're + passing an INTEGER_TYPE to int_fits_type_p. + (fold): Clean up comment. + +2004-11-30 Zack Weinberg + + * mklibgcc.in: Correct calculation of libgcc_s_soname and + libunwind_soname. Use $out, not $outS, in commands for + no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above + library build rules, make $libunwind_so and $libgcc_s_so + depend on them in the normal fashion, and filter those objects + out of @shlib_objs@. + +2004-11-30 Janis Johnson + + * config/rs6000/altivec.h (vec_step_help): Support const vector types. + +2004-11-30 Andrew Pinski + + PR tree-opt/18298 + * tree-optimize.c (init_tree_optimization_passes): Add a may_alias + pass right after fold builtins. + +2004-11-30 Andreas Krebbel + + * config/s390/s390-modes.def: Added cc modes documentation. + * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode, + s390_expand_addcc): Added cc mode comments. + * config/s390/s390.md: Removed old cc mode documentation. + +2004-11-30 Mark Dettinger + + * config/s390/s390.c (struct processor_costs): New data type. + (s390_cost, z900_cost, z990_cost): New global variables. + (override_options): Initialize s390_cost. + (s390_rtx_costs): Reimplement. + +2004-11-29 Daniel Berlin + + Fix PR tree-optimization/18673 + + * tree-ssa-pre.c: Remove splay-tree.h include. + (bitmap_value_replace_in_set): Fix to add if it does not exist. + (find_or_generate_expression): Remove now-wrong condition. + (create_expression_by_pieces): Fix condition and comment reason + for it. + (insert_aux): Fix condition and comment reasons for it. + Factor insertion code from here. + (insert_into_preds_of_block): To here. Fix conditions in factored + function and comment reasons for them. + +2004-11-30 Ira Rosen + + PR tree-opt/18607 + * tree-vectorizer.c (vect_analyze_data_refs): Use temporary + variable for data_reference when looking for memtag. + +2004-11-30 Jakub Jelinek + + * c-opts.c (check_deps_environment_vars): If spec != NULL, set + deps_seen. + +2004-11-30 Dorit Naishlos + + * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use + tree_low_cst instead of TREE_INT_CST_LOW. + +2004-11-30 Dorit Naishlos + + PR target/18173 + * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for + decls that are assembled before vectorization takes place. + (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1. + +2004-11-30 Ulrich Weigand + + * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks + if local_alloc modified jumps. + +2004-11-30 Alan Modra + + * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL + on TLS symbols. + * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS + check. + +2004-11-30 Zack Weinberg + + * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h + * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS. + + * mklibgcc.in: Drastic restructure for comprehensibility. + Remove the old hidden-directive hack. + Eliminate support for .txt files in LIB2ADD etc (never used). + Eliminate support for assembly source files in LIB2ADDEH* and + LIBUNWIND (also never used). + Build up dependency lists for libraries incrementally. + If we have SHLIB_LINK, compile each file twice, once for the + static and once for the shared library; also probe for + -fvisibility=hidden in the generated libgcc.mk. If found, + pass that and -DHIDE_EXPORTS to the compilation of every C + source file going into the static library. If found, generate + hidden-directive lists for every assembly source file going + into the static library, but incorporate them with -include + instead of ld -r. + Write comments into generated libgcc.mk to facilitate debugging. + * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc. + * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP. + + * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in + -Zdynamiclib case. + +2004-11-29 Richard Henderson + + * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR. + (handled_component_p): Likewise. + * alias.c (can_address_p): Reformat and simplify. Handle + REAL/IMAGPART_EXPR. Do not disable addressability based on + alias set zero. + * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate + check for REAL/IMAGPART_EXPR. + * gimplify.c (gimplify_compound_lval): Likewise. + * tree-cfg.c (verify_expr): Likewise. + * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. + * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise. + (convert_local_reference): Likewise. + * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise. + +2004-11-30 Alan Modra + + * expr.c (emit_group_load_1): Don't die on const_int orig_src. + +2004-11-29 John David Anglin + + PR pch/14940 + * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files. + * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj + and host_xmake_file using new host configuration files. + +2004-11-29 Roger Sayle + + * reg-stack.c (change_stack): Improve algorithm used to pop regs + off the stack to maximize ffreep usage and reduce fxch count. + +2004-11-30 James A. Morrison + + PR middle-end/18596 + * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node + on errors. + +2004-11-30 Richard Kenner + + * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle + REDUCE_BIT_FIELD by applying it to result, not input, of conversion. + +2004-11-30 Ben Elliston + + * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H). + +2004-11-29 Andrew Pinski + + PR c/18479 + * c-common.c (handle_visibility_attribute): When the type decl + is really a identifier node, warn about being ignored and return. + +2004-11-29 Richard Henderson + + * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node. + +2004-11-29 Steven Bosscher + + * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): + Remove CASE_DROPS_THROUGH checks, it is never defined. + * cfglyout.c (fixup_reorder_chain): Likewise. + * cfgrtl.c (rtl_verify_flow_info): Likewise. + * stmt.c (expand_case): Likewise. + * cfgbuild.c (make_edges): Likewise. Also remove force_fallthru, + it is now always 0. + * system.h (CASE_DROPS_THROUGH): Poison. + * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH. + * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH. + + * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH. + +2004-11-29 Andrew Pinski + + PR middle-end/18725 + * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be + shared always. + +2004-11-29 Diego Novillo + + PR tree-optimization/18712 + * tree-into-ssa.c (insert_phi_nodes_for): Pass argument + WORK_STACK by reference. + Call VEC_safe_push instead of VEC_quick_push. + Update all users. + +2004-11-29 Daniel Jacobowitz + + PR c/7544 + * Makefile.in (c-lang.o): Update dependencies. + * c-lang.c: Include "c-pragma.h". + (finish_file): Call maybe_apply_pending_pragma_weaks. + * c-pragma.c (maybe_apply_pending_pragma_weaks): New function. + * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype. + +2004-11-29 Richard Henderson + + PR target/17224 + * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets + outside the referenced object. + +2004-11-29 Kazu Hirata + + * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use + EDGE_PRED instead of PHI_ARG_EDGE. + * tree-ssa-live.c: Likewise. + * tree-ssa-loop-manip.c: Likewise. + * tree-ssa.c: Likewise. + + * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by + simplifying edge manipulation. + + * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using + EDGE_COUNT. + + * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge + only when needed. + + * cfg.c (flow_obstack): Remove. + (flow_firstobj): Likewise. + (init_flow): Remove all uses of flow_obstack. + +2004-11-29 Alan Modra + + * varasm.c (default_elf_select_section_1): Only pass DECL_P decl + to named_section. + +2004-11-29 Nathan Sidwell + + * opts.c (decode_options): Do not set max-inline-insns-rtl. + (common_handle_option): Likewise. + * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove. + * params.h (MAX_INLINE_INSNS_RTL): Remove. + * doc/invoke.texi (max-inline-insns-rtl): Remove. + +2004-11-29 Alan Modra + + PR target/9571 + * varasm.c (default_elf_select_section_1): Pass decl to named_section. + +2004-11-28 Andrew Pinski + + PR middle-end/18164 + * gimplify.c (gimplify_asm_expr): If the length of an output operand + is zero, do not process it, just let it go through. + +2004-11-28 Richard Kenner + Diego Novillo + + PR/18662, also backported from tree-cleanup-branch. + * tree-ssa-ccp.c (substitute_and_fold): If replaced anything, + always call maybe_clean_eh_stmt and modify_stmt. + +2004-11-28 Richard Kenner + + PR/18664 + * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR): + Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def. + * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR, + add an inverse VIEW_CONVERT_EXPR to const_val. + + PR/18657 + * tree-nested.c (check_for_nested_with_variably_modified): New. + (create_nesting_tree): Call it. + + * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove + special code for assigning to non-pointer. + (is_escape_site): If RHS is a conversion between pointer and integer + types, this is an escape site. + + * gcse.c (insert_store): Error if try to insert store on abnormal edge. + (store_motion): Don't move store if any edge we'd want to move it + to is abnormal. + + * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with + non-zero lower bound. + + * expr.c (categorize_ctor_elements_1, case STRING_CST): New case. + +2004-11-28 Matt Kraai + + PR diagnostic/17594 + * opts.c (find_opt): Require that the input match a switch exactly + or that the switch take a joined option to be interpreted as a + match for another language. + +2004-11-28 Andrew Pinski + + * timevar.def (TV_TREE_REDPHI): New timevar. + * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id. + +2004-11-28 Nathanael Nerode + + PR preprocessor/17651 + * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply + flag_no_line_commands. + * c-ppoutput.c (pp_file_change): Remove now-redundant check of + flag_no_output. + +2004-11-28 Theodore A. Roth + + * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a + warning if the function name does not begin with "__vector" and the + function has either the 'signal' or 'interrupt' attribute. + +2004-11-28 Theodore A. Roth + + * config/avr/avr.c (avr_mcu_types): Add entries for atmega48, + atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165, + atmega325, atmega3250, atmega645 and atmega6450. + * config/avr/avr.h (LINK_SPEC): Ditto. + (LIB_SPEC): Ditto. + (LIBGCC_SPEC): Ditto. + (CRT_BINUTILS_SPECS): Ditto. + * config/avr/t-avr (MULTILIB_MATCHES): Ditto. + +2004-11-28 Nathanael Nerode + + PR preprocessor/17610 + * testsuite/gcc.dg/cpp/empty-include.c: New testcase. + +2004-11-28 Jeff Law + + * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New. + (pass_maybe_create_global_var): New. + * tree-pass.h (pass_maybe_create_global_var): Declare. + * tree-optimize.c (init_tree_optimization_passes): Link in + pass_maybe_create_global_var. + +2004-11-28 Richard Kenner + + * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment. + +2004-11-28 Ulrich Weigand + + PR rtl-optimization/18420 + * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change. + +2004-11-28 Steven Bosscher + John David Anglin + + * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define. + * config/vax/vax.md (casesi): Emit a test-and-branch to make sure + that the case is in range, to make sure the casesi insn is always + in range and never falls through. + (casesi1): Add comment to explain why casesi never falls through. + Remove the unnamed special case casesi pattern. + +2004-11-28 Hans-Peter Nilsson + + PR target/18331 + * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from + "*movdicc_real". Only match reversible comparisons. + ("*movdicc_real_nonreversible"): New pattern, split from + "*movdicc_real". Match only nonreversible comparisons. Exclude + reversed alternatives. + ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"): + Similar. + +2004-11-27 Richard Henderson + + * config/ia64/ia64.md: Move all define_predicate's ... + * config/ia64/predicates.md: ... here. New file. + +2004-11-27 Per Bothner + + PR bootstrap/18142 + Re-applied following, with two modifications: add a URL for the + fixed cctools; only exit if $build = $target. + + 2004-10-18 Kelley Cook + * configure.ac (powerpc-*-darwin*): Require assembler to support + .machine directive. + * configure: Regenerate. + +2004-11-28 David Edelsohn + + PR target/16800 + * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of + EQ, GTU, and LTU costs. Add costs for GT, LT, and UNORDERED. + Distinguish between SImode and DImode CONST_INT. + +2004-11-28 Andreas Fischer + Alan Modra + + PR target/16343 + * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow + functions, strings and thread-local vars. + +2004-11-28 Alan Modra + + * config/rs6000/rs6000.h (WORLD_SAVE_P): Define. + * config/rs6000/darwin.h (WORLD_SAVE_P): Define. + * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P + to allow non-darwin ABIs to optimize away code. + (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. + +2004-11-27 Kazu Hirata + + * tree.c (operand_equal_for_phi_arg_p): New. + * tree.h: Add a prototype for operand_equal_for_phi_arg_p. + * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c: + Replace operand_equal_p with operand_for_phi_arg_p + appropriately. + + * bb-reorder.c (find_traces_1_round): Speed up by using + EDGE_COUNT instead of FOR_EACH_EDGE. + + * fold-const.c, config/i386/linux64.h: Fix comment typos. + +2004-11-27 John David Anglin + + PR pch/14940 + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change. + +2004-11-27 Kazu Hirata + + * config/i386/linux.h: Fix a comment typo. + * doc/extend.texi: Fix a typo. + +2004-11-27 Jeff Law + + * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks + are merged. + +2004-11-27 Jakub Jelinek + + * config/i386/linux64.h (REG_NAME): Define. + +2004-11-27 Jakub Jelinek + + * fold-const.c (extract_muldiv_1) : If ctype is + unsigned and type signed, build ABS_EXPR with signed_type (ctype) + and only afterwards convert to ctype. + +2004-11-27 Richard Sandiford + + * config/mips/mips-protos.h (function_arg_boundary): Declare. + * config/mips/mips.h (PARM_BOUNDARY): Simplify definition. + (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise. + (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function. + * config/mips/mips.c (function_arg_boundary): New function. + Impose a maximum alignment of STACK_BOUNDARY. + +2004-11-27 Jakub Jelinek + + PR rtl-optimization/17825 + * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) + or not. + +2004-11-27 Alan Modra + + PR target/12769 + * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie + from rs6000_default_long_calls for libcalls. + +2004-11-26 Richard Kenner + + * expmed.c (extract_bit_field): When extracting from non-integer mode, + force a SUBREG into a register because we may be taking a further + SUBREG of it. + +2004-11-27 Di-an Jan + + * doc/contrib.texi (Tim Josling): Remove nesting quotation marks. + +2004-11-26 Robert Millan + + Changes for k*bsd-gnu support. + * config/i386/linux.h: Define REG_NAME to allow overriding of + register names in sc structure. + * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead + of sc->reg. + * config.gcc: Detect x86_64-k*bsd-gnu systems. + +2004-11-26 Jeff Law + + * tree-ssa.c (verify_flow_sensitive_alias_info): Don't + retrieve annotations or pointer info before it's necessary. + Reorder tests for early continue of the loop. Manually CSE + SSA_NAME_VAR. + +2004-11-26 Eric Botcazou + + * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'. + * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0. + (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC. + * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move + to a fixed reg if the source is the Return Address register. + Implement new Rule 15. + * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC. + * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to + sparc_dwarf_handle_frame_unspec. + (gen_save_register_window): New function. + (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc. + (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec. + (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement. + Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns. + (sparc_asm_function_prologue): Do not emit call frame debugging info. + (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement. + (sparc_expand_epilogue): Likewise. + (sparc_dwarf_handle_frame_unspec): New function. + * config/sparc/sparc.md (save_register_window): Remove. + (save_register_windowdi): Rewrite modelled on the callframe debug info. + (save_register_windowsi): Likewise. + +2004-11-26 Alexandre Oliva + + * config/frv/frv-protos.h: Guard ifcvt functions declarations with + BB_HEAD, not BLOCK_HEAD. + +2004-11-26 Alexandre Oliva + + * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone + scratch insns that set a register live at the join point. + +2004-11-26 Kazu Hirata + + * cse.c, tree-ssa-operands.c: Fix comment typos. + + * tree-cfg.c (tree_split_edge): Speed up by using find_edge. + +2004-11-26 James A. Morrison + + PR target/18510 + * doc/extend.texi (SPARC VIS Built-in Functions): New section. + +2004-11-26 Kazu Hirata + + * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the + check that tests if all edges go to the same destination. + + * bitmap.c (bitmap_find_bit): Speed up by traversing from + head->first if that seems profitable. + +2004-11-25 Jeff Law + + * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars. + * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT. + (pass_loop_done): Use TV_TREE_LOOP_FINI. + +2004-11-26 Alan Modra + + PR rtl-optimization/16356 + * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with + separate output register and one less jump. Enable for powerpc64. + (floatdisf2): Adjust for above. + +2004-11-25 Bob Wilson + + * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0. + (GCC_DRIVER_HOST_INITIALIZATION): Define. + +2004-11-25 Andrew Pinski + + PR middle-end/17957 + * tree-complex.c (vector_inner_type): New variable moved from + build_word_mode_vector_type. + (vector_last_type): Likewise. + (vector_last_nunits): Likewise. + (build_word_mode_vector_type): Use the new variables. + * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H). + (GTFILES): Add tree-complex.c. + (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules. + +2004-11-25 Bob Wilson + + * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define + __XTENSA_WINDOWED_ABI__. + +2004-11-25 Richard Henderson + + * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument. Save + args_size adjustments for calls even with cfa as stack pointer. + Search calls for stack adjustments after the insn is issued. + (dwarf2out_frame_debug): Add after_p argument; pass it on. + * dwarf2out.h (dwarf2out_frame_debug): Update to match. + * final.c (final_start_function, final_scan_insn): Likewise. + +2004-11-25 Richard Henderson + + PR c++/6764 + * reload1.c (set_initial_eh_label_offset): New. + (set_initial_label_offsets): Use it. + +2004-11-25 Kaz Kojima + + * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks + before calling life_analysis and release them after. + +2004-11-25 Kazu Hirata + + * tree-ssa-forwprop.c (substitute_single_use_vars): Remove + duplicate code. + +2004-11-25 Andrew Pinski + + * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not + BITMAP_OBSTACK_ALLOC. + (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE. + +2004-11-25 Andrew Pinski + + parts of PR rtl-opt/18463, rtl-opt/17647 + * cse.c (canon_for_address): New function. + (find_best_addr): Call canon_for_address before getting the + address's cost when checking if we should take that address. + +2004-11-25 Kazu Hirata + + * tree-phinodes.c (add_phi_arg): Take "tree" instead of + "tree *" as the first argument. + * tree-flow.h: Update the prototype of add_phi_arg. + * lambda-code.c, tree-cfg.c, tree-into-ssa.c, + tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c, + tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c, + tree-vectorizer.c: Update all call sites of add_phi_arg. + +2004-11-25 Nathan Sidwell + + * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove. + * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove. + (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC. + (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE. + +2004-11-25 Andrew MacLeod + + PR tree-optimization/18587 + * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag + call clobbered caches as invalid. + * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New. Flag + indicating whether the call clobbered operand cache is valid. + (ssa_ro_call_cache_valid): New. Flag indicating whether the + pure/const call operand cache is valid. + (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New. Cached + list of operands for cached call virtual operands. + (clobbered_aliased_loads, clobbered_aliased_stores, + ro_call_aliased_load): New. flags caching whether alias bits are + to be set in call stmt's. + (fini_ssa_operands): Remove call operand caches if present. + (get_expr_operands, get_asm_expr_operands, + get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand. + (get_call_expr_operands): Add call clobbered variables first. + (add_stmt_operand): Take stmt annotation rather than stmt as a param. + (add_call_clobber_ops, add_call_read_ops): Use the call operand cache + if it is valid, otherise fill the cache. + * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern. + * tree-flow.h (struct var_ann_d): Add in_vuse_list and + in_v_may_def_list bits. + * tree-ssa-operands.c (cleanup_v_may_defs): New. Clear the + in_list bits for the v_may_def elements and empty the operand + build array + (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant + VUSES by checking the in_v_may_def_list bit. + (append_v_may_def, append_vuse): Use the in_list bit rather than + scanning the array for duplicates. + +2004-11-25 Ulrich Weigand + + * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF + displacements are not short. + +2004-11-25 Ulrich Weigand + + * config/s390/s390.c (legitimize_pic_address): Use s390_load_address + to load addresses. + +2004-11-25 Mark Mitchell + + PR c++/18001 + * c-common.h (lvalue_use): Move here from c-ctypeck.c. + (lvalue_or_else): Declare. + * c-common.c (lvalue_or_else): Move here from c-typeck.c. + * c-typeck.c (lvalue_use): Remove. + (lvalue_or_else): Remove. + + PR c++/18556 + * toplev.c (check_global_declarations): Set DECL_IGNORED_P on + unemitted variables with static storage duration. + +2004-11-25 Gerald Pfeifer + + * tree-cfg.c (tree_verify_flow_info): Do not terminate error() + message with \n. + +2004-11-25 Nathan Sidwell + + * config/rs6000/altivec.md (VIshort): New mode macro. + (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace + with ... + (altivec_vaddus): ... this. + (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace + with ... + (altivec_vaddss): ... this. + (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace + with ... + (altivec_vsubus): ... this. + (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace + with ... + (altivec_vsubss): ... this. + (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace + with ... + (altivec_vavgu): ... this. + (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace + with ... + (altivec_vavgs): ... this. + (altivec_vmsumubm, altivec_vmsumuhm): Replace with ... + (altivec_vmsumum): ... this. + (altivec_vmsummbm, altivec_vmsummhm): Replace + with ... + (altivec_vmsummm): ... this. + (altivec_vandc): Remove. + (*andc3): Renamed to ... + (andc3): ... here. Swap operand 1 and 2 numbering. + (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace + with ... + (altivec_vrl): ... this. + (altivec_vslb, altivec_vslh, altivec_vslw): Replace + with ... + (altivec_vsl): ... this. + (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace + with ... + (altivec_vsr): ... this. + (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace + with ... + (altivec_vsra): ... this. + (altivec_vsum4sbs, altivec_vsum4shs): Replace with ... + (altivec_vsum4ss): ... this. + (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace + with ... + (altivec_vperm_): ... this. + (altivec_vsel_4sf): Rename to ... + (altivec_vsel_v4sf): ... here. + (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace + with ... + (altivec_vsel_): ... this. + (altivec_vsldoi_4si, altivec_vsldoi_8hi, + altivec_vsldoi_16qi): Rename to ... + (altivec_vsldoi_v4si, altivec_vsldoi_v8hi, + altivec_vsldoi_v16qi): ... here. + (altivec_vsldoi_4sf): Rename to ... + (altivec_vsldoi_v4sf): ... here. + (altivec_predicate_v4si, altivec_predicate_v8hi, + altivec_predicate_v16qi): Replace with ... + (altivec_predicate_): ... this. + (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace + with ... + (altivec_lvex): ... this. + (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace + with ... + (altivec_stvex): ... this. + (absv16qi2, absv8hi2, absv4si2): Replace + with ... + (abs2): ... this. + (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace + with ... + (altivec_abss_): ... this. + (vec_realign_load_v16qi, vec_realign_load_v8hi, + vec_realign_load_v4si): Replace with ... + (vec_realign_load_): ... this. + * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked + insn names. + (rs6000_expand_ternop_builtin): Likewise. + +2004-11-25 Andrew Haley + + * gcc.c (process_command): Don't supply -v to linker. + +2004-11-25 Joseph S. Myers + + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs + instead of `%s' in diagnostic. + +2004-11-25 Nathan Sidwell + + * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust. + (FREE_REG_SET): Adjust. + * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap. + * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ... + (BITMAP_ALLOC): ... here. + (BITMAP_OBSTACK_FREE): Rename to ... + (BITMAP_FREE): Don't check for NULL bitmap here. + * tree-ssa-pre.c (value_insert_into_set_bitmap, + bitmap_set_new): Use new names. + + * bt-load.c (migrate_btr_defs): Remove unneeded NULL check. + * df.c (df_free): Likewise. + * ra-build.c (ra_build_free, ra_build_free_all): Likewise. + * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise. + + * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ... + (ALLOC_REG_SET): ... here. + (FREE_REG_SET): Adjust. + (XMALLOC_REG_SET, XFREE_REG_SET): Remove. + * bb-reorder.c (fix_crossing_conditional_branches): Adjust. + * cfglayout.c (cfg_layout_duplicate_bb): Adjust. + * cfgrtl.c (rtl_split_block, rtl_split_edge, + safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust. + * flow.c (update_life_info, calculate_global_regs_live, + allocate_bb_life_data, init_propagate_block_info): Adjust. + * global.c (build_insn_chain): Adjust. + * ifcvt.c (dead_or_predicable): Adjust. + * loop-iv.c (simplify_using_initial_values): Adjust. + * recog.c (peephole2_optimize): Adjust. + * sched-deps.c (init_deps_global): Adjust. + +2004-11-25 Ralf Corsepius + + * config.gcc (avr-*-rtems*): Fix typo. + +2004-11-25 J"orn Rennecke + + * sh.c (sh_output_mi_thunk): Do not call regset_release_memory. + +2004-11-24 Jeff Law + + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce + the number of queries to random elements in the ai->written_vars + bitmap. + +2004-11-24 Roger Sayle + + * config/i386/i386.c (override_options): Disable x87 fancy math + intrinsics if -mfpmath= doesn't include 387 (default on x86_64). + +2004-11-24 Roger Sayle + + * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a + system header conflict on AIX 5.2. + * configure: Regenerate. + +2004-11-24 Kazu Hirata + + * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx + instead of calling phi_arg_from_edge. + + * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge + with e->dest_idx. + +2004-11-24 Ben Elliston + + * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove. + * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise. + * config/i386/i386-protos.h (i386_dwarf_output_addr_const): + Likewise. + +2004-11-24 Richard Kenner + + * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS. + + * tree-inline.c (copy_body_r): Explicitly copy a constant if the + type will be remapped. + +2004-11-24 Steven Bosscher + + * c-opts.c (c_common_post_options): Don't clear + flag_inline_functions. + * dojump.c (clear_pending_stack_adjust): Remove check on + flag_inline_functions, it's always true. + * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter + that can never trigger. + * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at + flag_inline_trees, now that flag_inline_functions is never + cleared. + * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set + flag_inline_functions at optimization levels greater than + or equal to 3. This is already done by default. + +2004-11-24 Kazu Hirata + + * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx + instead to find the PHI argument. Do not take I as an + argument. + (eliminate_phi): Adjust the call to eliminate_build. Do not + take I as an argument. + (rewrite_trees): Adjust the call to eliminate_phi. + +2004-11-24 Richard Sandiford + + * optabs.h (force_expand_binop): Declare. + * optabs.c (force_expand_binop): Export. + * stmt.c (shift_return_value): Delete. + (expand_return): Don't call it. + * expr.h (shift_return_value): Declare. + * calls.c (shift_returned_value): Delete in favor of... + (shift_return_value): ...this new function. Leave the caller to check + for non-BLKmode values passed in the msb of a register. Take said mode + and a shift direction as argument. Operate on the hard function value, + not a pseudo. + (expand_call): Adjust accordingly. + * function.c (expand_function_start): If a non-BLKmode return value + is padded at the last significant end of the return register, use the + return value's natural mode for the DECL_RESULT, not the mode of the + padded register. + (expand_function_end): Shift the same sort of return values left by + the appropriate amount. + +2004-11-24 Matt Austern + + * recog.c (recog_memoized_1): Remove. + * recog.h (recog_memoized_1): Remove declaration. + (recog_memoized): Change from macro to inline function. + +2004-11-24 Devang Patel + + PR/18555 + * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot. + * config/darwin-c.c (darwin_register_frameworks): Use sysroot. + +2004-11-24 Devang Patel + + * gcc.c (process_command): Supply -v to linker. + +2004-11-24 David Edelsohn + Paolo Bonzini + + * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec + vector modes without ALTIVEC_ABI. Use GCC vector instead of + synthetic vector. + (rs6000_pass_by_reference): Split conditional into pieces. Use + GCC vector instead of synthetic vector. + +2004-11-24 Aldy Hernandez + + * tree.c (recompute_tree_invarant_for_addr_expr): The address of a + thread-local variable is invariant. + +2004-11-24 Richard Kenner + + * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE): + Handle TYPE_REF_CAN_ALIAS_ALL. + (print_declaration): Print array dimensions like dump_generic_node. + + * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and + ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them. + +2004-11-24 Nathan Sidwell + + * bitmap.c (INLINE): Do not define. + (bitmap_elem_to_freelist, bitmap_element_free, + bitmap_element_allocate, bitmap_clear, bitmap_element_zerop, + bitmap_element_link, bitmap_find_bit): Use inline keyword/macro. + +2004-11-24 Kazu Hirata + + * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to + find the index of a PHI argument. Use e->dest_idx instead. + Replace hint with index. + + * tree-ssa-dom.c (cprop_into_successor_phis): Replace index + with indx. + +2004-11-24 Diego Novillo + + * tree-ssa-alias.c (merge_pointed_to_info): Fix comment + regarding PT_MALLOC. + +2004-11-24 Joseph Myers + + * config/i386/i386.c (optimization_options): Use + SUBTARGET_OPTIMIZATION_OPTIONS. + * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define. + (TARGET_SUBTARGET_DEFAULT): Don't include + MASK_OMIT_LEAF_FRAME_POINTER. + +2004-11-24 Mark Mitchell + + * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE): + Define to false. + +2004-11-24 Joseph Myers + + * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): + Use amd64 instead of 64. + +2004-11-24 Mark Mitchell + Joseph Myers + + * crtstuff.c (IN_LIBGCC2): Define it. + (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY + instead of HAVE_LD_RO_RW_SECTION_MIXING. + * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro. + * dwarf2out.c (named_section_eh_frame_section): Check + EH_TABLES_CAN_BE_READ_ONLY. + * except.c (default_exception_section): Likewise. + * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define. + * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document. + +2004-11-24 Kazu Hirata + + * tree-ssa-pre.c (phi_translate): Use find_edge to find the + index of a PHI argument. + + * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use + find_edge to find the index of a PHI argument. + +2004-11-24 Steven Bosscher + + * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR + and LABELED_BLOCK_EXPR. + * gimplify.c (gimplify_labeled_block_expr): Remove. + (gimplify_exit_block_expr): Remove. + (gimplify_expr): Don't call them. + * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR + and LABELED_BLOCK_EXPR. + (estimate_num_insns_1): Likewise. + (walk_tree): Likewise. + * tree-pretty-print.c (dump_generic_node): Don't handle + EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. + * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def. + (LABELED_BLOCK_EXPR): Likewise. + * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h. + (LABELED_BLOCK_BODY): Likewise. + (EXIT_BLOCK_LABELED_BLOCK): Likewise. + (EXIT_BLOCK_RETURN): Removed. + +2004-11-24 Steven Bosscher + + * cfgrtl.c (rtl_delete_block): Fix comment. + * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG + or BLOCK_END insn notes. + * jump.c (squeeze_notes): Likewise. + * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and + EH_REGION_END notes, we never have them to begin with. + * sched-deps.c (sched_analyze_insn): When updating loop notes, + verify that we have indeed only recorded loop notes. + (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes. + Only record loop notes. + + * cfgexpand.c (tree_expand_cfg): Fix comment. + + * passes.c (rest_of_compilation): Don't do a second call to + convert_from_eh_region_ranges from here, it's already called + from cfgexpand.c. + * except.c (resolve_fixup_regions): Remove. + (remove_fixup_regions): Remove. + (convert_from_eh_region_ranges_1): Remove. + (convert_from_eh_region_ranges): Remove the case where EH is + not already lowered at the tree level. We always lower there. + +2004-11-24 Paolo Bonzini + + PR c++/16882 + * tree.c (make_vector_type): Move qualifiers to the vector type, + use the inner type's main variant and build a main variant for + the vector type if necessary. + (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS. + +2004-11-24 Eric Botcazou + + * target.h (late_rtl_prologue_epilogue): Remove. + * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove. + * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE. + * passes.c (rest_of_handle_prologue_epilogue): Remove and move + remaining bits to... + (rest_of_handle_flow2): ...here. + (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue. + * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove. + +2004-11-23 Mark Mitchell + + * hwint.h (HOST_LONG_LONG_FORMAT): New macro. Use it throughout. + * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define. + * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document. + +2004-11-24 Daniel Jacobowitz + + * config/i386/i386.c (override_options): Move + SUBTARGET_OVERRIDE_OPTIONS before defaulting + flag_omit_frame_pointer. + +2004-11-23 Richard Henderson + + * rtl.h (validate_subreg): Declare. + * emit-rtl.c (validate_subreg): New. + (gen_rtx_SUBREG): Use it. + * simplify-rtx.c (simplify_subreg): Likewise. + (simplify_gen_subreg): Likewise. Remove duplicate asserts. + * expr.c (emit_move_insn_1): Tidy complex move code. Use memory + fallback whenever gen_realpart/gen_imagpart would not be able to + create SUBREGs. + +2004-11-23 Richard Henderson + + * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of + hard-coding avoiding calls to gen_rtx_SUBREG. Split complex return + modes to CONCAT. + +2004-11-23 Diego Novillo + + PR tree-optimization/18618 + * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare. + (insert_phi_nodes_for): Change third argument to VEC(basic_block). + * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap). + Update all users. + (stmts_to_rescan): Likewise. + (const_and_copies_stack): Likewise. + (nonzero_vars_stack): Likewise. + (vrp_variables_stack): Likewise. + +2004-11-23 Richard Henderson + + * cse.c (record_jump_cond_subreg): New. + (record_jump_cond): Use it instead of gen_lowpart. + +2004-11-23 Daniel Jacobowitz + Joseph Myers + + * config/sol2-c.c (solaris_register_pragmas): Use + c_register_pragma_with_expansion. + * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define. + * c-pragma.c (c_register_pragma): Update call to + cpp_register_pragma. + (c_register_pragma_with_expansion): New function. + (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION. + * c-pragma.h (c_register_pragma_with_expansion): New prototype. + * doc/extend.texi (Solaris Pragmas): Mention macro expansion for + #pragma align. + * doc/tm.texi (c_register_pragma_with_expansion, + HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document. + +2004-11-23 Richard Henderson + + * combine.c (gen_lowpart_for_combine): Factor out mode of x as well + as mode sizes into local temporaries. Unify failure path. + +2004-11-23 Richard Henderson + + * emit-rtl.c, rtl.h (subreg_hard_regno): Remove. + * caller-save.c (mark_set_regs): Use subreg_regno instead. + * final.c (alter_subreg): Likewise. + * local-alloc.c (reg_is_born): Likewise. + +2004-11-23 Richard Henderson + + * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly + instead of using a SUBREG temporary. + +2004-11-23 Kazu Hirata + + * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering + two checks. + +2004-11-23 Zack Weinberg + + * function.h (struct function): Remove calls_longjmp. + (current_function_calls_longjmp): Delete. + * tree.h (ECF_LONGJMP): Delete. + (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN) + (ECF_LIBCALL_BLOCK): Everybody slide down one. + (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments. + * builtins.c (expand_builtin_longjmp): Don't set + current_function_calls_longjmp. + * calls.c (special_function_p): Mark longjmp and siglongjmp + with ECF_NORETURN, not ECF_LONGJMP. + (emit_call_1, expand_call, emit_library_call_value_1): + Don't check for ECF_LONGJMP. + * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt) + (need_fake_edge_p): Likewise. + + * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP. + * system.h: Poison NON_SAVING_SETJMP. + * function.c (use_register_for_decl) + * gcse.c (compute_hash_table_work, compute_store_table) + * postreload-gcse.c (record_opr_changes) + * reload.c (find_equiv_reg) + * reload1.c (reload) + * config/i386/i386.c (ix86_can_use_return_insn_p): + Remove code conditional on NON_SAVING_SETJMP. + * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP. + + * config/i386/sysv3.h: Delete file. + * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete. + +2004-11-23 Dorit Naishlos + + * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if + the vectorization factor is greater than the iteration count. + (vect_gen_niters_for_prolog_loop): No need to calculate min if the + iteration count is known. + + (vect_build_symbol_bound): Removed. Its functionality moved to + vect_generate_tmps_on_preheader. + (vect_generate_tmps_on_preheader): Moved content of + vect_build_symbol_bound here instead of calling it. Changed some + variables names. + + (vect_build_loop_niters): We don't expect a new_bb to be generated - + use gcc_assert. + (vect_gen_niters_for_prolog_loop): Likewise. + (vect_gen_niters_for_prolog_loo): Likewise. + + (slpeel_make_loop_iterate_ntimes): Use buildN instead of build. + (slpeel_add_loop_guard): Likewise. + (slpeel_tree_peel_loop_to_edge): Likewise. + (vect_do_peeling_for_alignment): Likewise. + + (vect_get_first_index): Missing space. + +2004-11-23 Ulrich Weigand + + * config/s390/s390.md ("*iordi3"): Mark commutative. + ("*iorsi3_zarch", "*iorsi3_esa"): Likewise. + +2004-11-23 Kazu Hirata + + * tree-phinode.c (resize_phi_node): Abort when LEN is strictly + greater than PHI_ARG_CAPACITY. + (reserve_phi_args_for_new_edge): Initialize the new PHI + argument to NULL_TREE. Increment PHI_NUM_ARGS. + (add_phi_arg): Add a PHI argument to the slot given by + E->dest_idx. + (remove_phi_arg_num): Do not write to PHI_ARG_EDGE. + * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx. + * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI + argument by looking at PHI_ARG_DEF. + (verify_phi_args): Check for a missing PHI argument. Remove + the check for duplicate PHI arguments. + * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED. + (phi_arg_d): Remove e. + + * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up + by restricting to the case with two outgoing edges. + +2004-11-23 Andreas Krebbel + + * config/s390/s390.c (s390_backchain_string): Removed. + (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info) + (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg): + Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and + TARGET_KERNEL_BACKCHAIN to reflect the new options. + * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros. + (TARGET_KERNEL_BACKCHAIN): Removed. + (TARGET_BACKCHAIN): Former triple state option change to a target flag. + (TARGET_PACKED_STACK): New macro. + (TARGET_SWITCHES): New switches added. + (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain" + removed. + (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK. + * config/s390/s390.md ("allocate_stack", "restore_stack_block") + ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect + the change in target switch semantics. + * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed. + (TARGET_DEFAULT): MASK_BACKCHAIN added. + * doc/invoke.texi: Added documentation for the new/changed options. + +2004-11-23 Uros Bizjak + + PR rtl-optimization/18614 + * simplify-rtx.c (simplify_binary_operation): Do not + simplify inner elements of constant arguments of + VEC_CONCAT insn. + +2004-11-23 Eric Botcazou + + * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use + 0 instead of NULL. + +2004-11-23 Kazu Hirata + + * tree-phinode.c (make_phi_node): Use a new variable, + capacity, to receive the return value of ideal_phi_node_len. + +2004-11-23 Eric Botcazou + + * gthr-solaris.h (__gthread_recursive_mutex_t): New type. + (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to + __gthread_recursive_mutex_init_function. + (__gthread_key_create): Properly cast -1. + (__gthread_recursive_mutex_init_function): New function. + (__gthread_recursive_mutex_lock): Rewrite. + (__gthread_recursive_mutex_trylock): Likewise. + (__gthread_recursive_mutex_unlock): Likewise. + +2004-11-23 Ralf Corsepius + + * config/c4x/t-rtems: New. + * config.gcc: Reflect having added c4x/t-rtems. + +2004-11-23 Dorit Naishlos + + PR tree-opt/18403 + PR tree-opt/18505 + * tree-vectorizer.c (vect_create_data_ref_ptr): Use + lang_hooks.types.type_for_size instead of integer_type_node for the + type of ptr_update. + +2004-11-23 Ralf Corsepius + + * config.gcc (h8300-*-rtems*): Use h8300/t-rtems. + +2004-11-23 Ralf Corsepius + + * config/arm/t-rtems: New. + * config.gcc: Reflect having added arm/t-rtems. + +2004-11-23 Kazu Hirata + + * tree-cfg.c (tree_execute_on_growing_pred): New. + (tree_cfg_hooks): Add tree_execute_on_growing_pred. + * tree-flow.h: Add a prototype for + reserve_phi_args_for_new_edge. + * tree-phinodes.c (reserve_phi_args_for_new_edge): New. + (add_phi_arg): Don't resize a PHI array. + +2004-11-23 Ralf Corsepius + + * config.gcc: Add avr-*-rtems*. + * config/avr/t-rtems: New. + * config/avr/rtems.h: New. + +2004-11-22 Daniel Berlin + + * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's + always the same as op1. Use bitmap_ior_into and bitmap_and_into. + Add comment to function. + +2004-11-22 John David Anglin + + PR pch/14940 + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__. + + PR rtl-optimization/14838 + * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a + note. + (get_last_nonnote_insn): Don't assume last insn is a note. + +2004-11-22 Roger Sayle + + * fold-const.c (nondestructive_fold_binary_to_constant): Rename + to fold_binary_to_constant. + (nondestructive_fold_unary_to_constant): Likewise, rename to + fold_unary_to_constant. + (fold_relational_hi_lo): Update call to fold_binary_to_constant. + * tree.h (nondestructive_fold_binary_to_constant): Update prototype. + (nondestructive_fold_unary_to_constant): Likewise. + * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant + and fold_binary_to_constant. + * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros. + (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY + and EXEC_UNARY with calls to fold_*nary_to_constant. + * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros. + (idx_find_step): Replace uses of EXEC_BINARY with calls to + fold_binary_to_constant. + +2004-11-22 Nick Clifton + + * sbitmap.c (sbitmap_union_of_preds): Remove redundant + initialisation of 'e'. + +2004-11-22 Roger Sayle + + * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro. + * config/i386/i386.c (override_options): Set MASK_NO_FANCY_MATH_387 + automatically for targets without TARGET_80387. + * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2, + sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2, + *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3, + fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2, + *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2, + *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3, + *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2, + atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2, + atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2, + acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2, + log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2, + fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2, + logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2, + expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2, + exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2, + rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2, + floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2, + frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2, + frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2): + Simplify conditionals using TARGET_USE_FANCY_MATH_387. + +2004-11-22 Dale Johannesen + + * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Conditionalize + properly and comment. + +2004-11-22 James A. Morrison _vis, alignaddr_vis): New patterns. + +2004-11-22 Devang Patel + + * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks. + +2004-11-22 Devang Patel + + * tree-if-conv.c (if_convertable_phi_p): Rename to ... + (if_convertible_phi_p): ... new name. + (if_convertable_modify_expr_p): Rename to ... + (if_convertible_modify_expr_p): ... new name. + (if_convertable_stmt_p): Rename to ... + (if_convertible_stmt_p): ... new name. + (if_convertable_bb_p): Rename to ... + (if_convertible_bb_p): ... new name. + (if_convertable_loop_p): Rename to ... + (if_convertible_loop_p): ... new name. + +2004-11-22 Eric Botcazou + + PR target/18444 + * configure.ac (threading): Accept 'posix95'. + * configure: Regenerate. + * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6, + include sol26.h and default to posix95 threads if have_pthread_h. + (sparc-*-solaris2*): Likewise. + * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined. + * gthr-posix95.h: New file. + * config/sol26.h: New file. + * doc/install.texi (--enable-threads): Document 'posix95'. + +2004-11-23 Ben Elliston + + * pointer-set.h (pointer_set_contains): Remove. + * pointer-set.c (pointer_set_contains): Likewise. + +2004-11-22 Dale Johannesen + + * calls.c (expand_call): Do not call preserve_temp_slots. + +2004-11-22 Kazu Hirata + + * tree-flow.h: Remove the prototype for remove_phi_arg. + Add a prototype for remove_phi_args. + * tree-phinodes.c (remove_phi_arg): Remove. + (remove_phi_args): New. + * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead + of remove_phi_arg. + + * cfg.c (unchecked_make_edge): Call execute_on_growing_pred + after making an edge. + (remove_edge): Call execute_on_shrinking_pred before removing + an edge. + (redirect_edge_succ): Call execute_on_growing_pred and + execute_on_shrinking_pred. + * cfghooks.c (execute_on_growing_pred): New. + (execute_on_shrinking_pred): Likewise. + * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and + execute_on_shrinking_pred. + Add prototypes for execute_on_growing_pred and + execute_on_shrinking_pred. + * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to + execute_on_growing_pred and execute_on_shrinking_pred. + (cfg_layout_rtl_cfg_hook): Likewise. + * tree-cfg.c (tree_cfg_hooks): Likewise. + + * tree-cfg.c (tree_execute_on_shrinking_pred): New. + (tree_cfg_hooks): Use it. + * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args. + (ssa_redirect_edge): Don't call remove_phi_arg_num. + + * tree-phinodes.c (remove_phi_arg_num): Make it static. + * tree-flow.h: Remove the corresponding prototype. + + * tree-ssa.c (ssa_remove_edge): Remove. + * tree-flow.h: Remove the corresponding prototype. + * tree-cfg.c: Replace ssa_remove_edge with remove_edge. + * basic-block.h: Likewise. + * tree-if-conv.c: Likewise. + * tree-ssa-threadupdate.c: Likewise. + +2004-11-23 Ben Elliston + + * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of + @table to list the BSI methods. Use individual @findex directives + instead of one with a comma-separated list of index entries. + +2004-11-22 Zdenek Dvorak + + PR tree-optimization/18529 + * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function. + (simple_operand_p): Use STRIP_NOPS. Consider SSA names simple. + (fold): Call fold_to_nonsharp_ineq_using_bound. + * tree-ssa-loop-niter.c (simplify_replace_tree): New function. + (number_of_iterations_cond): Fold the expressions before futher + processing. + (tree_simplify_using_condition): Handle case when cond or expr is + an EQ_EXPR specially. + +2004-11-22 Daniel Berlin + + * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be + SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes. + +2004-11-22 David Edelsohn + Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_return_in_memory): Test + TARGET_ALTIVEC_ABI. + (function_arg_boundary): Align 8 to 16 byte vectors like SPE. + Align 16 byte and larger vectors like Altivec. + (function_arg_advance): Pass any 16 byte vector like Altivec vector. + (function_arg): Same. + (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI. + +2004-11-22 Andrew Pinski + + PR tree-opt/18572 + * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying + it. + +2004-11-22 Richard Henderson + + * function.c (assign_parm_setup_block): Revert 11-13 change to + forcably re-mode a (possibly BLKmode) hard register. + +2004-11-22 Eric Botcazou + + * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN. + +2004-11-22 David Edelsohn + + * config/rs6000/power4.md: Remove delay between dispatch and issue + associated with dispatch group slots 3 and 4. + * config/rs6000/power5.md: Same. + +2004-11-21 Jeff Law + + * cfg.c (cached_make_edge): Use find_edge rather than an inlined + variant. + * cfgbuild.c (make_edges): Likewise. + * cfghooks.c (can_duplicate_block_p): Likewise. + * cfgloop.c (loop_latch_edge): Likewise. + * cfgloopmanip.c (force_single_succ_latches): Likewise. + * cfgrtl.c (rtl_flow_call_edges_add): Likewise. + * predict.c (predict_loops, propagate_freq): Likewise. + * tracer.c (tail_duplicate): Likewise. + * tree-cfg.c (disband_implicit_edges): Likewise. + (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise. + +2004-11-22 Nick Clifton + + * sbitmap.c (sbitmap_union_of_preds): Remove redundant + initialisation of 'e'. + +2004-11-22 Kazu Hirata + + PR rtl-optimization/18599 + * regrename.c (copyprop_hardreg_forward): Speed up by putting + BB_VISITED flags on basic blocks as we process them. + +2004-11-22 Nathan Sidwell + + PR target/18531 + * config/rs6000/altivec.md (VI_char): New mode attribute. + (addv16qi3, addv8hi3, addv4ai3): Replace with ... + (add3): ... this. + (subv16qi3, subv8hi3, subv4ai3): Replace with ... + (sub3): ... this. + (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ... + (smax3): ... this. + (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ... + (smin3): ... this. + (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ... + (umax3): ... this. + (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ... + (umin3): ... this. + (andv16qi3, andv8hi3, andv4ai3): Replace with ... + (and3): ... this. + (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ... + (ior3): ... this. + (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ... + (xor3): ... this. + (andv16qi3, andv8hi3, andv4ai3): Replace with ... + (and3): ... this. + (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ... + (ior3): ... this. + (altivec_vnor): Replace with ... + (altivec_nor): ... this. + (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ... + (one_cmpl2): ... this. + (altivec_vandc): New expander. + (*andc3): New insn. + * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names. + +2004-11-22 Dorit Naishlos + + PR tree-opt/18536 + * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when + creating iv instead of integer_type. + (vect_build_loop_niters): Remove redundant code. + (vect_transform_loop_bound): Removed (duplicates functionality of + make_loop_iterate_ntimes. + (vect_gen_niters_for_prolog_loop): Add documentation. Call + lang_hooks.types.type_for_size to create a type of the required size. + Use that type instead of integer_type. Remove redundant code. + (vect_update_niters_after_peeling): Use type of niters instead of + integer_type. + (vect_transform_loop): Unify handling of known and unknown loop bound + cases. Call make_loop_iterate_ntimes instead of + vect_transform_loop_bound. + +2004-11-22 Andrew Pinski + + PR target/18217 + * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to + (LIB2ADDEH): Here. + +2004-11-22 Dorit Naishlos + + PR tree-opt/18544 + * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found. + +2004-11-22 Kazuhiro Inaoka + + * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on + m32r*linux. + * config/m32r/t-linux (SHLIB_MAPFILES): Override to use + m32r/libgcc-glibc.ver. + * config/m32r/libgcc-glibc.ver: Add New file. + +2004-11-22 Nathan Sidwell + + * bitmap.h (struct bitmap_obstack): New obstack type. + (struct bitmap_head_def): Replace using_obstack with obstack + pointer. + (bitmap_default_obstack): New. + (bitmap_initialize): Make inline, does not do allocation. + (bitmap_release_memory): Remove. + (bitmap_obstack_initialize, bitmap_obstack_release): Declare. + (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc, + bitmap_obstack_free, bitmap_malloc_free): Declare. + (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust. + (BITMAP_FREE): Replace with ... + (BITMAP_OBSTACK_FREE): ... this. + (BITMAP_XFREE): Adjust. + (BITMAP_INIT_ONCE): Remove. + * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove. + (bitmap_default_obstack): New. + (bitmap_elem_to_freelist): Adjust. + (bitmap_element_allocate): Adjust. Break initialization into ... + (bitmap_obstack_initialize): ... here. + (bitmap_release_memory): Replace with ... + (bitmap_obstack_release): ... this. + (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc, + bitmap_obstack_free, bitmap_malloc_free): New. + (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use + bitmap_initialize. + (bitmap_initialize): Move to bitmap.h. + * gengtype.c (open_base_files): Add obstack.h to ifiles. + * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h. + * basic-block.h (INIT_REG_SET): Allocate from reg_obstack. + (INITIALIZE_REG_SET): Remove. + (FREE_REG_SET): Use BITMAP_OBSTACK_FREE. + (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove. + (flow_obstack): Do not declare. + (reg_obstack): Declare. + * regs.h: Include obstack.h. + * tree-optimize.c (tree_rest_of_compilation): Initialize and + release bitmap obstack here. + * bb-reorder.c: #include regs, not basic-block. + (fix_crossing_conditional_branches): Allocate regsets from + reg_obstack. + * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or + obstack.h. + * caller-save.c: Include regs.h earlier. + * cfg.c: Do not include basic-block.h or obstack.h. + (reg_obstack): Define. + * cfganal.c: Include obstack.h + * cfgcleanyp.c: Do not include basic-block.h. Include regs.h + earlier. + * cfglayout.c: Do not include obstack.h. + (flow_obstack): Remove declaration. + (cfg_layout_duplicate_bb): Use reg_obstack. + * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h. + * cfgrtl.c (rtl_split_block): Use reg_obstack. + (force_nonfallthru_and_redirect, rtl_split_edge): Likewise. + (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust. + (cfg_layout_split_edge): Use reg_obstack. + * cse.c: Include regs.h earlier. + * ddg.c: Do not include basic-block.h. + * dominance.c: Inlude obstack.h. + * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust. + (calculate_global_regs_live): Likewise. + (allocate_bb_life_data): Use reg_obstack. + (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET. + * global.c: Do not include basic-block.h. + (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust. + * graph.c: Include obstack.h. + * haifa-sched.c: Do not include basic-block.h. + * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust. + * local-alloc.c: Do not include basic-block.h. + * loop-init.c, loop-invariant.c: Include obstack.h. + * loop-iv.c: Likewise. + (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET, + adjust. + * loop-unroll.c, loop-unswitch.c: Inlude obstack.h. + * modulo-sched.c: Do not include basic-block.h. + * passes.c (rest_of_handle_final): Do not call + regset_release_memory. + * ra-debug.c: Include regs.h earlier. Do not include + basic-block.h. + * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust. + * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET. + (allocate_reg_info): Do not call MAX_REGNO_REG_SET. + (regset_release_memory): Remove. + * resource.c: Do not include basic-block.h. + * rtlanal.c: Do not include basic-block.h. + * sbitmap.c: Include obstack.h. + * sched-deps.c: Do not include basic-block.h. + (reg_pending_sets_head, reg_pending_clobbers_head, + reg_pending_uses_head): Remove. + (init_deps_global): Use OBSTACK_ALLOC_REG_SET. + * sched-ebb.c: Do not include basic-block.h. + * sched-rgn.c: Likewise. + * tree-if-conv.c (get_loop_body_in_if_conv_order): Use + BITMAP_XFREE. + * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE. + * tree-sra.c (decide_instantiations): Adjust bitmap + initialization. + * tree-ssa-dce.c: Include obstack.h. + * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack. + (value_insert_into_set_bitmap): Remove useless bitmap_clear. + (bitmap_set_new): Likewise. + (init_pre): Initialize bitmap obstack. + (fini_pre): Release bitmap obstack. + * tree-ssanames.c (ssa_names_to_rewrite): Make static. + (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL. + (mark_for_rewrite, unmark_for_rewrite): Likewise. + (marked_ssa_names): Likewise. + (init_ssanames): Use BITMAP_XMALLOC. + (fini_ssanames): Use BITMAP_XFREE. + * web.c: Include obstack.h + +2004-11-22 Nick Clifton + + * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge + predecessor in the first for-loop. + +2004-11-21 Stan Shebs + + * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add + UNION_TYPE case. + (function_arg): Move darwin test up, sniff mode first for + efficiency, test for union type. + +2004-11-21 Dale Johannesen + + * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Define. + +2004-11-21 Jeff Law + + * tree-ssa.c (verify_use): Fix comment. + (verify_phi_args): Check that the number of incoming edges matches + the number of PHI arguments. Check that each PHI argument is + either an SSA_NAME or an invariant. Coalesce tests for PHIs for + dead or duplicated edges. Clear e->aux earlier and avoid separate + loop to clear e->aux and test for missed edges. + (verify_ssa): Remove first walk over statements. Move checking + of PHI args into verify_phi_args. Move checking of statements + with aliased stores and V_MAY_DEFS into the remaining loop over + the statements. Register defs by walking through the formal + SSA_NAME table. + +2004-11-21 Roger Sayle + + PR middle-end/18520 + * dojump.c (compare_from_rtx): Clarify mode argument in function + description. Correct order of mode/cmp_mode arguments in call to + simplify_relational_operation. Check "tem" for COMPARISON_P. + +2004-11-21 Paolo Bonzini + David Edelsohn + + PR target/17836 + * config/rs6000/rs6000.c (rs6000_return_in_memory): Return + synthetic vectors in memory. + (function_arg_boundary): Align large synthetic vectors. + (rs6000_pass_by_reference): Pass synthetic vectors in memory. + +2004-11-21 Jeff Law + + * cfg.c (update_bb_profile_for_threading): Do not rescale the + successor probabilities if they are not going to change. Pull + division out of loop if we do need to rescale successor probabilities. + + * tree-ssa-threadupdate.c (redirection_data_hash): Use the + index of the destination block for the hash value rather than + hashing a pointer. + +2004-11-20 Joseph S. Myers + + * c-typeck.c (build_array_ref): Don't check for index == 0. Make + checks for neither argument being an array or pointer (swapping + the arguments if necessary), the array argument being a pointer to + or array of functions and for -Wchar-subscripts warnings upfront. + +2004-11-20 Jeff Law + + * regrename.c (copyprop_hardreg_forward): Only search for a + previously processed block if the current block only has one + predecessor. + +2004-11-20 Kazu Hirata + + * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment + typos. + * config/arm/arm.c: Follow spelling conventions. + +2004-11-20 Richard Earnshaw + + * arm.c (arm_override_options): Use arm_ld_sched rather than testing + a bit in tune_flags. + (const_double_needs_minipool): Likewise. Split most of the code out + into ... + (arm_const_double_inline_cost): ... new function here. + * arm-protos.h (arm_const_double_inline_cost): Add prototype. + * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double- + word constants of length 2, 3 and 4 insns respectively. + (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint. + * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc] + constraints. Set insn lenghts accordingly. + +2004-11-19 Jeff Law + + * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with + a hash table. Extensive modifications throughout to support + that change. + (struct el): New. + (struct local_info): New. + (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE + fields. + (redirection_data): Now a hashtable. + (redirection_data_hash, redirection_data_eq): New. + (lookup_redirection_data, create_duplicates): New. + (create_edge_and_update_destionation_phis): New. + (fixup_template_block, redirect_edges): New. + (thread_block): Use hash table traversals instead of loops over + varray entries or incoming edge vectors. + +2004-11-19 Kazu Hirata + + * basic-block.h (edge_def): Add dest_idx. + * cfg.c (unchecked_make_edge): Initialize dest_idx. + (remove_edge): Simplify the disconnection of an edge from its + destination. + (redirect_edge_succ): Likewise. + * cfghooks.c (verify_flow_info): Check the consistency of + dest_idx for each edge. + +2004-11-19 Aldy Hernandez + + * simplify-rtx.c (simplify_ternary_operation): Use + gen_int_mode. + +2004-11-19 Kazu Hirata + + * tree-cfg.c (reinstall_phi_args): New. + (tree_split_edge): Use it after redirecting an edge. Don't + modify PHI_ARG_EDGE. + +2004-11-19 Andreas Tobler + + * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only + if checking is enabled. + +2004-11-19 Joseph S. Myers + + * c-decl.c (push_scope): Remove "\n" from end of diagnostic for + too many nested scopes. + +2004-11-19 Dorit Naishlos + + PR tree-opt/18181 + * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme + changed to suppoer uses-after-loop and to void creating flow paths + that shouldn't exist. + (slpeel_update_phi_nodes_for_guard): Takes additional two arguments. + Modified to fit the new peeling scheme. Avoid quadratic behavior. + (slpeel_add_loop_guard): Takes additional argument. + (slpeel_verify_cfg_after_peeling): New function. + (vect_update_ivs_after_vectorizer): Takes additional argument. Updated + documentation. Use 'exit-bb' instead of creating 'new-bb'. + (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit + the new peeling scheme. + (copy_phi_nodes): Function removed. Its functionality moved to + update_phis_for_duplicate_loop. + (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes + moved here. Added documentation. Modified to fit the new peeling scheme. + (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not + needed - done in slpeel_tree_peel_loop_to_edge. + (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted. + (vect_do_peeling_for_loop_bound): Add documentation. Call + slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer + with additional argument. + (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling. + + (vect_finish_stmt_generation): Avoid 80 column oveflow. + +2004-11-19 Dorit Naishlos + + * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two + arguments removed. + (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes + without last two arguments. Update single_exit of loops. + (vect_update_niters_after_peeling): Removed. Its functionality was + moved to vect_do_peeling_for_alignment. + (vect_do_peeling_for_loop_bound): New name for function previously + called vect_transform_for_unknown_loop_bound. + (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes + instead of code that duplicates the same functionality. + (vect_do_peeling_for_alignment): Functionality of + vect_update_niters_after_peeling moved here. + (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound - + previously named vect_transform_for_unknown_loop_bound - for both known + and unknown loop bound cases. + +2004-11-19 Dorit Naishlos + + * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function + previously called verify_loop_for_duplication. All conditions compacted + into one compound condition. Removed debug dumps. + (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the + functionality moved to vect_can_advance_ivs_p, and some to + vect_analyze_loop_form. + (vect_can_advance_ivs_p): New function. Contains functionality that was + taken out of vect_analyze_loop_with_symbolic_num_of_iters. + (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p. + (vect_analyze_operations): Call vect_can_advance_ivs_p and + slpeel_can_duplicate_loop_p. + (vect_get_loop_niters): Added documentation. + (vect_analyze_loop_form): Check the loop entry always - not only in case + of unknown loop bound. Create preheader and exit bb if necessary. Apply + a check that used to take place in + vect_analyze_loop_with_symbolic_num_of_iters. + (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING. + Remove redundant call to rewrite_into_loop_closed_ssa. + (vect_compute_data_refs_alignment): Removed obsolete comment. + +2004-11-19 Dorit Naishlos + + * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for + function previously called tree_duplicate_loop_to_edge. + (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function + previously called tree_duplicate_loop_to_edge_cfg. + (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to + function name. + (slpeel_update_phi_nodes_for_guard): Likewise. + (slpeel_make_loop_iterate_ntimes): Likewise. + (slpeel_add_loop_guard): Likewise. + (allocate_new_names, free_new_names): Function declaration moved to top + of file. + (rename_use_op, rename_def_op): Likewise. + (rename_variables_in_bb, rename_variables_in_loop): Likewise. + (vect_generate_tmps_on_preheader): Function declaration moved. + (vect_transform_for_unknown_loop_bound): Added missing function + declaration. + +2004-11-19 Andrew Pinski + + PR tree-opt/18507 + * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree). + Define a VEC(tree_on_heap) for head. + (register_new_def): Change second argument to be a VEC(tree_on_heap). + * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap). + (tree_ssa_dominator_optimize): Initialize block_defs_stack with + the VEC(tree_on_heap) function. Also free it before returning. + (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE + for block_defs_stack. + (restore_currdefs_to_original_value): Use VEC_length instead of + VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP. + (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE + for block_defs_stack. + * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap). + (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE + for block_defs_stack. + (ssa_register_new_def): Likewise. + (ssa_rewrite_initialize_block): Likewise. + (rewrite_finalize_block): Use VEC_length instead of + VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP. + (ssa_rewrite_finalize_block): Likewise. + (register_new_def): Change second argument to be a VEC(tree_on_heap). + Use VEC_safe_push instead of VARRAY_PUSH_TREE. + (rewrite_blocks): Initialize block_defs_stack with + the VEC(tree_on_heap) function. Also free it before returning. + (rewrite_ssa_into_ssa): Likewise. + +2004-11-19 Fariborz Jahanian + + * config/darwin.c (machopic_data_defined_p): return 1 for + MACHOPIC_DEFINED_FUNCTION. + +2004-11-19 Jeff Law + + * tree-ssa.c (verify_ssa): Remove redundant checking of PHI + arguments. + +2004-11-19 Paul Brook + + PR target/17735 + * varasm.c (default_assemble_integer): Allow pointer-sized values. + Expand comment. + +2004-11-19 Nick Clifton + + * config/stormy16/stormy16.c (combine_bnp): Add code to handle + zero_extension and lshiftrt insns. + Replace uses of XEXP(...) with either SET_DEST() or SET_SRC() + where appropriate. + * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns + to handle bp and bn insn patterns with a zero_extend rtx + inside them. + +2004-11-19 Ian Lance Taylor + + * config/arm/arm.md (generic_sched): Make const. + +2004-11-19 Kazu Hirata + + * emit-rtl.c (classify_insn): Make it static. + * rtl.h: Remove the corresponding prototype. + + * integrate.c (has_func_hard_reg_initial_val, + get_func_hard_reg_initial_val): Make them static. + * integrate.h: Remove the corresponding prototypes. + +2004-11-19 Ben Elliston + + * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0. + (dw2_asm_output_delta_sleb128): Likewise. + * dwarf2asm.c (dw2_asm_output_pcrel): Likewise. + (dw2_asm_output_delta_sleb128): Likewise. + +2004-11-19 Adam Nemet + + * tree-ssa-alias.c: Fix comment. + +2004-11-19 Kazu Hirata + + * tree-outof-ssa.c: Fix a comment typo. + +2004-11-19 Ben Elliston + + * predict.h (predict_insn): Remove extern declaration. + * predict.c (predict_insn): Make static. + +2004-11-19 Alan Modra + + * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs. + +2004-11-18 Nicolas Pitre + + * config/arm/arm.c (const_double_needs_minipool): New function to + determine if a CONST_DOUBLE should be pushed to the minipool. + (note_invalid_constants): Use it. + +2004-11-18 Paul Brook + + * config/arm/arm.c (target_float_switch): New variable.. + (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and + target_float_switch. + * config/arm/arm.h (target_float_switch): Declare. + (ARM_FLAG_SOFT_FLOAT): Remove. + (TARGET_SWITCHES): Remove hard-float and soft-float. + (TARGET_OPTIONS): Add hard-float and soft-float. + (TARGET_DEFAULT_FLOAT_ABI): Define. + * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define + (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT. + * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT. + * config/arm/netbsd-elf.h: Ditto. + * config/arm/netbsd.h: Ditto. + * config/arm/pe.h: Ditto. + * config/arm/unknown-elf.h: Ditto. + * config/arm/wince-pe.h: Ditto. + * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define. + * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define. + * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define. + +2004-11-18 Nathan Sidwell + + * config/rs6000/altivec.md (VI, VF, V): New mode macros. + (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi, + altivec_lvx_4sf): Rename and replace with ... + (altivec_lvx_): ... mode macro version. + (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi, + altivec_stvx_4sf): Rename and replace with ... + (altivec_stvx_): ... mode macro version. + (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ... + (mov): ... mode macro version. + (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1, + *movv4sf_internal1): Replace with ... + (*mov_internal): ... mode macro version. + (get_vrsave_internal, *set_vrsave_internal, *save_world, + *restore_world): Unquote output statements. + * config/rs6000/rs6000.c (altivec_expand_ld_builtin, + altivec_expand_st_builtin): Adjust insn names. + +2004-11-18 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert + previous change. + (rs6000_override_options): Likewise. + (spe_build_register_parallel): Handle complex doubles on e500v2. + (rs6000_spe_function_arg): Likewise. + (function_arg): Likewise. + (rs6000_function_value): Likewise. + (rs6000_libcall_value): Likewise. + +2004-11-18 Andrew Pinski + + * ifcvt.c (find_if_block): Move the check for the number of edges + above the loops checking for complex edges. + Remove the counting of edges as we use EDGE_COUNT now. + +2004-11-18 Kazuhiro Inaoka + + * config/m32r/linux.h (TARGET_ASM_FILE_END): Set + TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3 + +2004-11-18 Andreas Schwab + + * config/i386/i386.md (define_peephole2): Revert last change. + +2004-11-18 Kazuhiro Inaoka + + * config/m32r/linux.h (TARGET_ASM_FILE_END): Set + TARGET_ASM_FILE_END to file_end_indicate_exec_stack. + +2004-11-18 Diego Novillo + + * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead + of FOR_EACH_BB. + +2004-11-18 Jon Grimm + + * Makefile.in (macro_list): Depend on s-macro_list. + (s-macro_list): New target. + +2004-11-18 Nathan Sidwell + + PR target/17107 + * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ... + (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here. + (fold_range_test): Adjust. + (fold_truthop): Use it. + * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ... + (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here. + +2004-11-18 Uros Bizjak + + * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to + insn split constraint. + (define_peephole2): Remove unneeded "&& 1" from peephole2 + constraints. + +2004-11-18 Ben Elliston + + * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item + element for bsi_prev; use @findex instead. + +2004-11-18 Ben Elliston + + * opts.h (add_input_filename): Remove extern declaration. + * opts.c (add_input_filename): Make static. + +2004-11-17 Mark Mitchell + + * config/i386/i386.c (i386_solaris_elf_named_section): Mark with + ATTRIBUTE_UNUSED. + +2004-11-17 Zack Weinberg + + * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN. + * system.h: Poison it. + * doc/tm.texi: Delete its documentation. + +2004-11-18 Daniel Jacobowitz + Mark Mitchell + + * config/i386/sol2-10.h, config/i386/t-sol2-10: New files. + * config/i386/i386.c (i386_solaris_elf_named_section): New + function. + * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10. + * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle + 64-bit. + (ASM_QUAD): Don't undefine for biarch targets. + * config/i386/t-sol2: Introduce multilib support. + +2004-11-18 Ben Elliston + + * cgraphunit.c: Replace "it's" with "its" and fix a typo. + +2004-11-18 Ben Elliston + + * cgraph.h: Replace "it's" with "its" throughout. + +2004-11-18 Ben Elliston + + * doc/rtl.texi (Flags): Grammar fix. + +2004-11-17 Kazu Hirata + + * expmed.c (alg_code): Add alg_unknown. + (alg_hash_entry): New. + (NUM_ALG_HASH_ENTRIES): Likewise. + (alg_hash): Likewise. + (synth_mult): Cache the result into alg_hash. + +2004-11-17 Zack Weinberg + + * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with + config/rs6000/libgcc-ppc64.ver. + +2004-11-17 Kazu Hirata + + * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when + checking if an unconditional return is followed by a barrier. + + * jump.c (condjump_p): Remove unreachable code. + + * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h, + tree-chrec.h, tree-flow.h, tree-scalar-evolution.h, + tree-ssa-live.h, tree.h: Remove unused prototypes. + +2004-11-17 Jeff Law + + * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader. + (edge_to_cases_elt): Renamed from edge_to_case_leader. + (edge_to_cases_hash): Renamed from edge_to_case_leader_hash. + (edge_to_cases_eq): Renamed from edge_to_case_leader_eq. + (edge_to_cases_cleanup, recording_case_labels_p): New functions. + (get_cases_for_edge): New function. + (start_recording_case_labels, end_recording_case_labels): Similarly. + (record_switch_edge): Don't muck with the CASE_LABEL. Instead + chain equivalent CASE_LABEL_EXPRs together. + (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill. + (make_switch_expr_edges): Do not record edge/cases here. + (cleanup_tree_cfg): Record cases around the call to thread_jumps. + (split_critical_edges): Record cases around the edge splitting code. + (cleanup_dead_labels): Use CASE_LABEL again. + (tree_redirect_edge_and_branch): If we have a mapping from edge + to cases, use it to handle redirections. Else do it the slow way. + * tree.h (CASE_LEADER_OR_LABEL): Kill. + (CASE_LABEL): Revert to just looking at the tree's second operand. + * tree.c (get_case_label): Kill. + +2004-11-17 Diego Novillo + + PR tree-optimization/18307 + * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and + 'orig' are the same node. + (collect_points_to_info_r): Do not call merge_pointed_to_info + when the PHI argument is identical to the LHS. + +2004-11-17 Steven Bosscher + + * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying + to insert the exit or entry block. + (ssa_prop_init): Use add_control_edge to seed the algorithm. + +2004-11-16 Zack Weinberg + + * mkmap-flat.awk, mkmap-symver.awk: If the last version + assigned to a symbol was '%exclude', do not emit it anywhere. + If leading_underscore is true, prefix all symbols from the + version scripts with a leading underscore before comparing + them with nm output or emitting them. Remove support for dot + symbols. + * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk. + (SHLIB_MAPFILES): Use libgcc-std.ver. + (SHLIB_MKMAP_OPTS): Enable leading-underscore mode. + (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP). + * config/sh/t-linux: Use the normal libgcc-std.ver, plus + libgcc-excl.ver and libgcc-glibc.ver. + + * config/sh/libgcc-excl.ver: New file. + * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete. + +2004-11-16 Daniel Berlin + + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap + the test when the edge has the opposite meaning, not when + the first argument is invariant. + +2004-11-16 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2 + doubles. + (rs6000_complex_function_value): Handle e500 v2 variant. + +2004-11-16 Daniel Berlin + + Fix PR tree-optimization/18519 + + * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg. + * tree-pass.h: Add TODO_cleanup_cfg. + * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg. + (ccp_finalize): Remove call to cleanup_cfg. + * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func. + (pass_cd_dce): Ditto. + (perform_tree_ssa_dce): Remove call to cleanup_cfg, + dump_function_to_file. + * tree-ssa-loop-ch.c (copy_loop_headers): Remove call + to cleanup_cfg. + (pass_ch): Add TODO_cleanup_cfg. + * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to + cleanup_cfg. + (pass_loop_done): Add TODO_cleanup_cfg. + * tree-ssa-phiopt.c (pass_phiopt): Ditto. + (tree_ssa_phiopt): Remove call to cleanup_cfg. + +2004-11-16 Devang Patel + + * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use. + +2004-11-16 Kazu Hirata + + * expmed.c, ra-colorize.c: Fix comment typos. + + * doc/tm.texi: Fix typos. + +2004-11-16 Daniel Jacobowitz + Mark Mitchell + + PR target/6123 + * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and + __pic__ if PIC. + +2004-11-16 Ulrich Weigand + + * regmove.c (regmove_optimize): Use lowpart_subreg instead of + gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG. + +2004-11-16 Devang Patel + + * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check. + +2004-11-16 Eric Christopher + + * config/mips/mips.c: Use rtl _P predicates. + * config/mips/mips.h: Ditto. + * config/mips/mips.md: Ditto. + +2004-11-16 Fariborz Jahanian + + * config/rs6000/altivec.md (altivec_vandc): Canonicalize + the pattern. + +2004-11-16 Andreas Krebbel + + * config/s390/s390.c (s390_cc_modes_compatible): New function. + (TARGET_CC_MODES_COMPATIBLE): Target macro defined. + +2004-11-16 Kaz Kojima + + PR target/18447 + * config/sh/sh.c (prepare_move_operands): Emit blockage insns + before and after the insns for getting GOT address in non-PIC + TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling + is enabled. + +2004-11-16 Andreas Krebbel + + * gcc/cse.c (struct change_cc_mode_args): New structure. + (cse_change_cc_mode_insn): New function. + (cse_change_cc_mode): Use validate_change to perfom changes. + (cse_change_cc_mode_insns, cse_condition_code_reg): + Call cse_change_cc_mode_insn. + +2004-11-16 Steven Bosscher + + * stack.h: Remove. + +2004-11-16 Steven Bosscher + + * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8. + +2004-11-15 Dale Johannesen + + * tree-flow.h (add_referenced_temp_var): Remove name from prototype. + +2004-11-15 Dale Johannesen + + * profile.c (compute_branch_probabilities): Prevent + crash with EH in RTL-based profiling. + +2004-11-16 Kazu Hirata + + * tree-cfg.c (verify_expr): Replace TREE_OPERAND with + COND_EXPR_COND. + * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. + * tree-ssa-dom.c (thread_across_edge): Likewise. + * tree-vectorizer.c (vect_transform_loop_bound): Replace + TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or + COND_EXPR_ELSE. + + * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument. + (tree_flow_call_edges_add): Update the call to + bsi_commit_edge_inserts. + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. + * profile.c (branch_prob): Likewise. + * tree-mudflap.c (mf_decl_cache_locals): Likewise. + * tree-sra.c (scalarize_function): Likewise. + * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. + * tree-ssa-pre.c (fini_pre): Likewise. + * tree-flow.h: Update the prototype for + bsi_commit_edge_inserts. + +2004-11-15 Eric Christopher + + * sched-deps.c (set_sched_group_p): Delete. + (delete_all_dependencies): New function. + (fixup_sched_groups): Use. New function. + (sched_analyze_insn): Use. + +2004-11-15 Joseph S. Myers + + * c-common.c (binary_op_error): Don't allow LROTATE_EXPR, + RROTATE_EXPR or unknown code. + * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR, + LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR, + UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR + or unknown code. + +2004-11-15 Joseph S. Myers + + PR c/18498 + * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width + after processing the declarator. + +2004-11-15 Aldy Hernandez + + * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with + vec_duplicate. + (altivec_vspltb): Same. + (altivec_vspltw): Same. + (altivec_vspltisb): Same. + (altivec_vspltish): Same. + (altivec_vspltisw): Same. + (altivec_vspltisw_v4sf): Same. + (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW, + UNSPEC_VSPLTISH. + Move "End of vector xor's" comment to the right place. + +2004-11-15 Steve Ellcey + + * config/ia64/ia64.md (*movtf_internal): Use destination_operand + instead of nonimmediate_operand. + +2004-11-15 Mark Mitchell + + * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand. + * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise. + * config/sol2.c (solaris_output_init_fini): Update calls to + ASM_OUTPUT_CALL. Include "rtl.h". + +2004-11-15 Mark Mitchell + + * config/sol2-c.c (cmn_err_char_table): Add "p". + +2004-11-15 Mark Mitchell + + * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove. + * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here. + +2004-11-15 Mark Mitchell + + * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely + within the multilib directory. + +2004-11-15 Nick Clifton + + * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add + builtin assert of cpu=xstormy16. + +2004-11-15 Nathan Sidwell + + * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized + variable. + +2004-11-14 Richard Henderson + + PR 18480 + * calls.c (struct arg_data): Add parallel_value. + (precompute_register_parameters): Set it. + (load_register_parameters): Use it. + (store_one_arg): Also set it here. + +2004-11-14 Zdenek Dvorak + + PR tree-optimization/18431 + * fold-const.c (associate_trees): Do not produce x + 0. + (fold_widened_comparison, fold_sign_changed_comparison): New functions. + (fold): Use them. + * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type): + Moved ... + * tree.c (upper_bound_in_type, lower_bound_in_type): Here. + * tree.h (upper_bound_in_type, lower_bound_in_type): Declare. + +2004-11-14 Eric Botcazou + + * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example. + +2004-11-14 Kazu Hirata + + * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c, + value-prof.c: Fix comment typos. + +2004-11-14 Stan Shebs + + Basic ABI changes for passing structs by value in 64-bit Darwin. + * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag. + (rs6000_override_options): Set it for 64-bit Darwin. + (rs6000_parse_abi_options): Add testing options to change it. + (rs6000_return_in_memory): Test whether the type is one + that can be passed in registers. + (darwin64_function_arg_advance): New. + (function_arg_advance): Call it, plus add recursion depth + argument and test when counting off arguments. + (rs6000_darwin64_function_arg): New. + (function_arg): Call it. + (setup_incoming_varargs): Add argument to function_arg_advance. + (rs6000_darwin64_function_value): New. + (rs6000_function_value): Call it. + * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg. + * config/rs6000/rs6000-protos.h: Update decl of + function_arg_advance. + +2004-11-14 Andrew Pinski + + PR c/17279 + * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we + support TImode before adding __int128_t and __uint128_t types. + +2004-11-14 Dorit Naishlos + + PR tree-opt/18400 + * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations. + (vect_transform_loop_bound): Set loop->nb_iterations. + +2004-11-14 Dorit Naishlos + Andrew Pinski + + PR tree-opt/18425 + * tree-vectorize.c (vect_build_loop_niters): Do not insert + NULL into the instruction stream. Initialize new_bb to NULL. + (vect_update_ivs_after_vectorizer): Likewise. + (vect_gen_niters_for_prolog_loop): Likewise. + +2004-11-14 Zdenek Dvorak + + PR tree-optimization/18431 + * tree-flow.h (stmt_references_memory_p): Declare. + * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p. + * tree-ssa.c (stmt_references_memory_p): New function. + +2004-11-14 Andreas Schwab + + * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on + $(EXPR_H). + +2004-11-14 Kazu Hirata + + * c-common.c (walk_stmt_tree): Remove. + * c-common.h: Remove the corresponding prototype. + + * emit-rtl.c (push_to_full_sequence): Remove. + * rtl.h: Remove the corresponding prototype. + + * cselib.c, expr.c: Fix comment typos. + +2004-11-13 Richard Henderson + + * calls.c (precompute_register_parameters): Force all PARALLELs + into pseudo registers. + (load_register_parameters): Copy PARALLELs into hard registers. + * function.c (assign_parm_setup_block): Copy PARALLELS into + pseudo registers. Do emit_group_store in conversion_insns. + * expr.c (emit_group_load_1): Rename from emit_group_load, take + tmps as an argument. Move final copy loop ... + (emit_group_load): ... here. New function. + (emit_group_load_into_temps, emit_group_move_into_temps): New. + * expr.h: Declare them. + +2004-11-14 Kazu Hirata + + * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c, + tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN + with PHI_CHAIN where appropriate. + +2004-11-13 Dale Johannesen + + * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype. + (tree_block_label): Ditto. + (flush_pending_stmts): Ditto. + (insert_edge_copies): Ditto. + (expr_invariant_in_loop_p): Ditto. + (TDF_USE_OPS): Parenthesize definition. + (TDF_USE_VOPS): Ditto. + +2004-11-13 David Edelsohn + + * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5. + * config/rs6000/aix52.h (ASM_CPU_SPEC): Same. + (atoll): Declare. + * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define. + +2004-11-14 Joseph Myers + + * config/i386/i386.c (override_options): Move loop to set default + tuning to correct place. + +2004-11-13 Zak Kipling + + PR target/18300 + * config/i386/i386.c (classify_argument): Fix infinite loop when + passing object with 3 or more base classes by value. + +2004-11-13 Eric Botcazou + + * doc/md.texi (constraints) <% modifier>: Mention that it is + useless when the two alternatives are strictly identical. + +2004-11-13 Richard Henderson + + * expmed.c (extract_split_bit_field): Temporarily disable call to + extract_force_align_mem_bit_field. + +2004-11-13 Kazu Hirata + + * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment + formatting. + + * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c, + lambda-code.c, postreload.c, predict.c, tree-sra.c, + tree-ssa-loop-manip.c, tree.c: Fix comment typos. + +2004-11-13 Kelley Cook + + * doc/install.texi (automake): Correctly document that everything now + will use automake 1.9.3. + +2004-11-13 Hans-Peter Nilsson + + PR target/18347 + * config/mmix/mmix.c (mmix_function_outgoing_value): Handle + TImode. Sorry for other non-complex larger-than-64-bit modes. + * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define. + +2004-11-13 Kelley Cook + + * doc/install.texi (automake): Document that everything now uses 1.9. + +2004-11-13 Bernd Schmidt + + * cse.c (cse_insn): Stores in a libcall sequence can invalidate + previous loads. + +2004-11-13 Kazu Hirata + + * tree.h: Fix comment typos. + +2004-11-13 Steven Bosscher + + * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and + HARD_REGISTER_NUM_P. + + * cselib.c (new_cselib_val): Make comment correct and more detailed. + * flow.c (mark_set_1): Likewise. + + * except.c (duplicate_eh_region_1, duplicate_eh_region_2, + duplicate_eh_regions): Remove. + * except.h (duplicate_eh_regions): Remove prototype. + * integrate.c (get_label_from_map, copy_rtx_and_substitute, + global_const_equiv_varray): Remove. + * integrate.h (get_label_from_map, copy_rtx_and_substitute, + global_const_equiv_varray, set_label_in_map): Remove prototypes, + extern declaration, and #define. + (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove. + (struct inline_remap): Remove. + * varray.c (struct element): Remove entry for const_equiv_data. + * varray.h (struct const_equiv_data): Remove. + (enum varray_data_enum) : Remove. + (union varray_data_tag) : Remove. + (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV, + VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove. + + * regstack.c (record_label_references): Remove unused function. + + * rtl.def (VALUE): Update comment. + (LABEL_REF): Remove unused operand 2. + * rtl.h (struct rtx_def): Update for removed accessor macros. + (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN, + REG_LOOP_TEST_P): Remove. + (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments. + * web.c (entry_register): Don't copy REG_LOOP_TEST_P. + * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove. + +2004-11-13 James A. Morrison + Eric Botcazou + + PR target/18230 + * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector + patterns. + * config/sparc/sparc.md (V64I): New macro for 64-bit modes. + (V32I): New macro for 32-bit modes. + (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64, + iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64, + xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter, + xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32, + one_cmpldi_sp64): Use V64I instead of DI. + (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si, + xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI. + (addv2si3, addv4hi3, addv2hi3): Remove % modifier. + (nandv64i_vis, nandv32i_vis): New patterns. + +2004-11-12 Mike Stump + + * Makefile.in: Add html support. + * java/Make-lang.in: Likewise. + * fortran/Make-lang.in: Likewise. + * treelang/Make-lang.in: Likewise. + * doc/install.texi: Likewise. + * doc/makefile.texi: Likewise. + * doc/sourcebuild.texi: Likewise. + +2004-11-13 Kazu Hirata + + * tree-ssa-loop-manip.c: Fix a comment typo. + +2004-11-12 Mike Stump + + * doc/cppinternals.texi (Index): Fix html generation with makeinfo by + renaming this node to Concept Index. + * doc/gccint.texi (Index): Likewise. Also minor formatting tweaks + to more closely match gcc.texi. + +2004-11-12 Jeff Law + + * tree-cfg.c (hashtab.h): Include. + (struct edge_to_case_leader_elt): New structure. + (edge_to_case_leader): New. + (edge_to_case_leader_hash): New hashtable hasing function. + (edge_to_case_leader_eq): New hashtable equality function. + (record_switch_edge): New function. + (get_case_leader_for_edge, get_case_leader_for_edge): New functions. + (make_switch_expr_edges): Build the edge-to-case-leader + hash table. Tear down the hash table when we're done. + (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of + CASE_LABEL. + (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes. + (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update + to use new concept of case leaders to reduce overhead of + redirecting outgoing edges from switch statements. + * tree.c (get_case_label): New function. + * tree.h (CASE_LABEL): Define in terms of get_case_label. + (CASE_LEADER_OR_LABEL): Define. + +2004-11-12 Ziemowit Laski + + * varasm.c (output_addressed_constants): For CONST_DECLs, + output the initializer if present. + +2004-11-12 Ziemowit Laski + + * config/rs6000/darwin.h: Fix confusing typo in comment. + +2004-11-12 Devang Patel + + * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P. + +2004-11-12 Devang Patel + + * tree-if-conv.c (clean_predicate_lists): Use loop header + and latch directly. + +2004-11-12 Richard Henderson + + PR 17778 + * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New. + * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. + (TARGET_96_ROUND_53_LONG_DOUBLE): New. + * config/i386/i386-modes.def (XF): Use it. + +2004-11-11 Geoffrey Keating + + * Makefile.in (macro_list): Use move-if-change to avoid spurious + rebuilds. + +2004-11-12 Mark Mitchell + + PR c++/18416 + * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL + when deciding whether to pass a variable to + cgraph_varpool_finalize_decl or assemble_variable. + * toplev.c (check_global_declarations): Do not clear DECL_RTL. + +2004-11-12 Kazu Hirata + + * tree-vectorizer.c: Fix a comment typo. + +2004-11-12 Bernd Schmidt + + * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref. + +2004-11-12 Diego Novillo + + * tree-scalar-evolution.c (analyzable_condition): Remove + superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs. + +2004-11-12 Ralf Corsepius + + * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY): + Remove m505/roe multilib variant. + +2004-11-12 Eric Botcazou + + * expr.c (emit_group_load) : Use extract_bit_field + to load from the stack. + +2004-11-12 Richard Henderson + + * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI. + (exact_log2): Rename from exact_log2_wide, use CTZ_HWI. + * toplev.h (FL2T__): Remove. + (CLZ_HWI): Rename from FL2T_CLZ__. + (CTZ_HWI): New. + (floor_log2): Simplify. + (exact_log2): New. + +2004-11-12 Sebastian Pop + + * tree-data-ref.c (analyze_subscript_affine_affine): Correctly + compute the first overlapping iterations. + +2004-11-12 Sebastian Pop + + PR middle-end/18005 + * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure + that arguments of EXACT_DIV_EXPR are INTEGER_CST. + +2004-11-12 Steven Bosscher + + PR tree-optimization/18419 + * tree-ssa.c (walk_use_def_chains_1): Make the visited map a + pointer set instead of a bitmap. + (walk_use_def_chains): Create, pass and clean up that pointer_set. + + * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited + field an sbitmap. + (init_alias_info): Allocate and zero it here. + (delete_alias_info): Delete it here. + (collect_points_to_info_for): Use it. + +2004-11-11 Kazu Hirata + + * alias.c (record_alias_subset, addr_side_effect_eval): + Make them static. + * alias.h: Remove the prototype for record_alias_subset. + * expr.h: Remove the commented-out prototype for + record_alias_subset. + * rtl.h: Remove the prototype for addr_side_effect_eval. + + * cfglayout.c (choose_inner_scope): Make it static. + * rtl.h: Remove the corresponding prototype. + + * cfgloopmanip.c (update_single_exits_after_duplication, + unloop): Make them static. + * cfgloop.h: Remove the corresponding prototypes. + + * c-typeck.c (c_size_in_bytes, record_maybe_used_decl): + Make them static. + * c-tree.h: Remove the corresponding prototypes. + + * explow.c (round_push): Make it static. + * expr.h: Remove the corresponding prototype. + + * varasm.c (get_named_section_flags, decl_tls_model): Make + them static. + * output.h: Remove the prototype for get_named_section_flags. + * tree.h: Remove the prototype for decl_tls_model. + +2004-11-11 Kazu Hirata + + * function.c (expand_function_end): Remove an "if" statement + that always triggers. + * stmt.c (expand_null_return_1): Likewise. + +2004-11-11 James E. Wilson + + * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode. + (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED, + CLASS_MAX_NREGS): Likewise. + +2004-11-11 Zdenek Dvorak + + PR tree-optimization/17742 + * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle + MINUS_EXPR correctly. + +2004-11-11 Sebastian Pop + + * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): + Give up as soon as the evolution is known not computable. + +2004-11-11 Nathan Sidwell + + PR target/16457 + * config/rs6000/rs6000.c (mask64_2_operand): Stub to call + mask64_1or2_operand. + (mask64_1or2_operand): Broken out of mask64_2_operand, add flag + to spot rlwinm opportunities. + (and64_2_operand): Use mask_1or2_operand. + * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible. + +2004-11-11 Dorit Naishlos + + * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis. + (vect_update_ivs_after_vectorizer): Update function documentation. + Avoid quadratic behavior and direct write to PHI_ARG_DEF. + +2004-11-11 Kazu Hirata + + * config/arm/arm.c: Fix a comment typo. + +2004-11-11 Nathan Sidwell + + * bitmap.h (nBITMAP_WORD_BITS): Remove. + (BITMAP_WORD_BITS): Force unsigned by use of 1u. + (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove + unnecessary casts. + (bitmap_first_set_bit): Return unsigned, use ctzl. + (bitmap_last_set_bit): Remove. + * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator + unsigned. + (bitmap_first_set_bit): Return unsigned, require non-empty bitmap, + remove special case code for two word elements. + (bitmap_last_set_bit): Remove. + * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of + bitmap_first_set_bit with bitmap_empty_p. + * tree-outof-ssa.c (analyze_edges_for_bb): Likewise. + * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than + bitmap_last_bit_set. + +2004-11-11 Nathan Sidwell + + PR target/16796 + * config/rs6000/rs6000.md: Add DF & SF reg move peepholes. + + PR target/16458 + * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an + unsigned equality compare when we know the operands are unsigned. + +2004-11-10 Peter S. Mazinger + + * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define + __PIC__ and __pic__ only if TARGET_ABICALLS. + (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__. + (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass + -KPIC only if not -mno-abicalls. + + * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h + * config/sparc/linux.h, config/sparc/linux64.h + (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic. + + * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__. + * config/pa/pa/linux.h (CPP_SPEC): Likewise. + * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise. + * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise. + +2004-11-11 Paul Brook + + * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC + register if current_function_uses_pic_offset_table is set. + +2004-11-10 David Edelsohn + + * config/rs6000/rs6000.md (define_attr "type"): Add two and three. + Change multi-instruction sequences to new attribute. + * config/rs6000/{40x.md,440.md,603.md,6xx.md, + 7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md, + rios1.md,rios2.md,rs64.md}: Add descriptions for two and three. + +2004-11-10 Daniel Berlin + + * tree-data-ref.c (build_classic_dist_vector): If either loop + is outside of the nest we asked about, the dependence can't + matter. + (build_classic_dir_vector): Ditto. + +2004-11-10 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in + right order. + (force_var_cost): Determine cost of addition and multiplication more + precisely. + (get_computation_cost_at): Add cost for computing address elements to + the final cost. + + * fold-const.c (fold): Attempt to use ptr_difference_const whenever + one of the arguments of MINUS_EXPR is an address. + (split_address_to_core_and_offset): New function. + (ptr_difference_const): Handle case when one of the operands is a + pointer. + * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr. + (ptr_difference_cost): Pass addresses instead of objects to + ptr_difference_const. + +2004-11-10 Nathan Sidwell + + * tree.c (tree_check_failed): Emit general error if the list of + node types is empty. + +2004-11-10 Eric Botcazou + + * config/sparc/sparc.c (function_arg_union_value): New 'slotno' + argument. When the union is passed in the 6th slot, build a + PARALLEL with only one element. + (function_arg): Adjust call to function_arg_union_value. + (function_value): Likewise. + +2004-11-10 Fariborz Jahanian + + PR tree-optimization/17892 + * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for + MINUS_EXPR operator. + +2004-11-10 James A. Morrison + + PR target/18230 + config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute. + (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns. + +2004-11-10 Steven Bosscher + + * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New. + (struct basic_block_def): Remove local_set and cond_local_set + fields. Update comment for global_live_at_start. + * flow.c (calculate_global_regs_live): Allocate local_sets and + cond_local_sets here as arrays of bitmaps previously stored in + bb->local_set and bb->cond_local_set. Use xmalloc instead of + obstack allocated bitmaps. + +2004-11-09 H.J. Lu + + PR target/18380 + * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it + hidden. + + * unwind-dw2.c (_Unwind_FindTableEntry): Removed. + +2004-11-09 Jeff Law + + * cfganal.c (flow_dfs_compute_reverse_execute): Accept new + argument holding last unvisited block. Start search for + unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK. + (connect_infinite_loops_to_exit): Supply last unvisited block + to flow_dfs_compute_reverse_execute. + +2004-10-22 Aldy Hernandez + + * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500 + doubles. + (floatunssidf2): Same. + (floatsidf2): Same. + ("extendsfdf2"): New expander. + (*extendsfdf2_fpr): Rename. + (*truncdfsf2_fpr): Same. + (*negdf2_fpr): Same. + (*absdf2_fpr): Same. + (*nabsdf2_fpr): Same. + (*adddf3_fpr): Same. + (*subdf3_fpr): Same. + (*muldf3_fpr): Same. + (*divdf3_fpr): Same. + + * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment. + ("spe_fix_truncdfsi2"): Same. + (spe_floatunssidf2): Same. + (spe_floatsidf2): Same. + +2004-11-09 Joseph S. Myers + + PR c/18322 + * c-common.c (fname_decl): Don't use line number of decl in + diagnostic. + +2004-11-09 Ulrich Weigand + + * config/s390/s390-protos.h (s390_pool_operand): Remove. + * config/s390/s390.c (s390_pool_operand): Likewise. + (s390_extra_constraint_str): Handle 'B' constraints. + * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints. + * config/s390/s390.md: Document 'B' constraints. + ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of + s390_pool_operand to prevent insns with two literal pool + references. Make pattern commutative. + ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use + 'B' constraint instead of s390_pool_operand. + +2004-11-09 Kazu Hirata + + * tree-cfg.c (create_bb): Remove unnecessary memset. + +2004-11-09 Kazu Hirata + + * tree-ssa-threadupdate.c (copy_phis_to_block): Remove. + (thread_block): Call flush_pending_stmt instead of + copy_phis_to_block. + +2004-11-09 Kazu Hirata + + * loop-iv.c (iv_number_of_iterations): Make it static. + * cfgloop.h: Remove the corresponding prototype. + +2004-11-09 Kazu Hirata + + * function.c (combine_temp_slots, assign_parms, + expand_pending_sizes): Make them static. + * tree.h: Remove the corresponding prototypes. + +2004-11-09 Kazu Hirata + + * emit-rtl.c (copy_most_rtx): Remove. + * rtl.h: Remove the corresponding prototype. + +2004-11-09 Kazu Hirata + + * cfgloop.c (flow_loops_update): Remove. + * cfgloop.h: Remove the corresponding prototype. + +2004-11-09 Kazu Hirata + + * conflict.c (mark_reg, conflict_graph_compute): Remove. + * basic-block.h: Remove the prototype for + conflict_graph_compute. + +2004-11-09 Kazu Hirata + + * tree-if-conv.c (add_to_dst_predicate_list): Change the + second argument to basic_block. + (tree_if_convert_cond_expr): Update call sites. + +2004-11-09 Kazu Hirata + + * fold-const.c (pedantic_non_lvalue): Make it static. + * tree.h: Remove the corresponding prototype. + +2004-11-09 Kazu Hirata + + * optabs.c (prepare_operand): Make it static. + * optabs.h: Remove the corresponding prototype. + +2004-11-09 Kazu Hirata + + * reload1.c (reloads_conflict, gen_reload): Make them static. + * reload.h: Remove the corresponding prototypes. + +2004-11-09 Kazu Hirata + + * reload.c (refers_to_mem_for_reload_p, + refers_to_regno_for_reload_p): Make them static. + * reload.h: Remove the corresponding prototypes. + +2004-11-09 James A. Morrison + Eric Botcazou + + PR target/18230 + * doc/md.texi (SPARC constraints): Document 'Y' constraint. + * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes. + * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function. + (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p. + (fp_zero_operand): Accept MODE_VECTOR_INT modes. + (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes. + (sparc_cannot_force_const_mem): Return false for CONST_VECTOR. + (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for + MODE_VECTOR_INT modes. + (sparc_extra_constraint_check): Add new constraint 'Y'. + * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS. + * config/sparc/sparc.md (V32): New mode macro for 32-bit modes. + (V64): New mode macro for 64-bit modes. + (movsf): Use V32 for mode instead of SF. + (movsf_insn_vis): Use V32 for mode instead of SF. Add 'Y' constraint + alongside 'G' constraint. + (movdf): Use V64 for mode instead of DF. + (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead + of DF. Add 'Y' constraint alongside 'G' constraint. + (multi-isn and misaligned mems DFmode splitters): Use V64 for mode + instead of DF. + +2004-11-09 Ulrich Weigand + + * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for + integer NEG and ABS. + * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute. + ("*negdi2_31"): Reimplement using a splitter. + ("*negdi2_cc", "*negdi2_cconly"): New insns. + ("*negdi2_sign", "*negdi2_sign_cc"): Likewise. + ("*negsi2_cc", "*negsi2_cconly"): Likewise. + ("*negdf2_cc", "*negdf2_cconly"): Likewise. + ("*negsf2_cc", "*negsf2_cconly"): Likewise. + ("*absdi2_cc", "*absdi2_cconly"): New insns. + ("*absdi2_sign", "*absdi2_sign_cc"): Likewise. + ("*abssi2_cc", "*abssi2_cconly"): Likewise. + ("*absdf2_cc", "*absdf2_cconly"): Likewise. + ("*abssf2_cc", "*abssf2_cconly"): Likewise. + ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns. + ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise. + ("*negabssi2_cc", "*negabssi2_cconly"): Likewise. + ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise. + ("*negabssf2_cc", "*negabssf2_cconly"): Likewise. + +2004-11-09 Ulrich Weigand + + * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition + when eliminating an UNSPEC_CMPINT. + (s390_secondary_input_reload_class): Fix test for CC register reload. + (s390_secondary_output_reload_class): Likewise. + (s390_expand_cmpmem): Swap operands. Use gen_cmpint. + * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove. + ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New + insn patterns with splitters. + +2004-11-09 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU. + * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns. + +2004-11-09 Kazu Hirata + + * tree-phinodes.c (phi_reverse): New. + * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb): + Use it. + * tree-flow.h: Add a prototype for phi_reverse. + +2004-11-09 Kazu Hirata + + * tree-ssa-loop-ivopts.c: Fix a comment typo. + +2004-11-09 James A. Morrison + + PR pch/14940 + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__ + definitions. + +2004-11-09 Joseph S. Myers + + * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument" + instead of "arg" in diagnostics. + +2004-11-09 Joseph S. Myers + + * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h, + c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c, + gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c, + tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, + config/avr/avr.c, config/c4x/c4x.c, config/darwin.c, + config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c, + config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c, + config/iq2000/iq2000.c, config/m32r/m32r.c, + config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h, + config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c, + config/ns32k/ns32k.c, config/rs6000/host-darwin.c, + config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, + config/sh/symbian.c, config/stormy16/stormy16.c, + config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %< + and %> as appropriate. Use %' as apostrophe in diagnostics where + applicable. Use %< and %> in place of '' quotes where applicable. + Use %qs in place of %<%s%>. Consistently quote __builtin function + names. + +2004-11-09 Hans-Peter Nilsson + + * gdbinit.in (pbb, pbm): New macros. + +2004-11-08 Jeff Law + + * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than + implementing it inline. + + * cfganal.c (find_edge): Search pred->succs or succ->preds, + whichever is shorter. + +2004-11-08 Kazu Hirata + + * passes.c (rest_of_handle_jump): Remove dead code. + +2004-11-08 Kazu Hirata + + * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to + the last used element in the worklist. + +2004-11-08 Kazu Hirata + + * tree-inline.c (remap_save_expr): Make it static. + * tree-inline.h: Remove the corresponding prototype. + +2004-11-08 Kazu Hirata + + * tree-ssa-loop-niter.c (upper_bound_in_type, + lower_bound_in_type): Make them static. + * tree.h: Remove the corresponding prototypes. + +2004-11-08 Kazu Hirata + + * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them + static. + * tree-ssa-live.h: Remove the corresponding prototypes. + +2004-11-08 Kazu Hirata + + * tree-if-conv.c (tree_if_conversion): Make it static. + * tree-flow.h: Remove the corresponding prototype. + +2004-11-08 Kazu Hirata + + * tree-ssa-operands.c (build_ssa_operands): Make it static. + * tree-flow.h: Remove the corresponding prototype. + +2004-11-08 Andrew Pinski + + PR tree-opt/18299 + * tree-inline.c (copy_body_r): Change "t = t" to empty + statement instead of "t". + +2004-11-08 Kazu Hirata + + * modulo-sched.c (create_partial_schedule, + free_partial_schedule, reset_partial_schedule, + ps_add_node_check_conflicts, rotate_partial_schedule): Make + them static. + +2004-11-08 Richard Henderson + + * expmed.c (extract_force_align_mem_bit_field): Correct handling at + the end of a page. + +2004-11-08 Kazu Hirata + + * sched-deps.c (add_insn_mem_dependence): Make it static. + * sched-int.h: Remove the corresponding prototypes. + +2004-11-08 Kazu Hirata + + * flow.c (allocate_bb_life_data): Make it static. + * basic-block.h: Remove the corresponding prototype. + +2004-11-08 Kazu Hirata + + * calls.c (split_complex_values, split_complex_types): Make + them static. + * expr.h: Remove the corresponding prototypes. + +2004-11-08 Richard Earnshaw + + * arm.c (arm_handle_notshared_attribute): Wrap declaration and use + with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES. + +2004-11-08 Kazu Hirata + + * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if" + statements that always trigger. + +2004-11-08 Kazu Hirata + + * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c, + tree-scalar-evolution.c, tree-ssa-loop-im.c, + tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c, + tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where + appropriate. + +2004-11-08 Ben Elliston + + * cgraph.h (cgraph_calls_p): Remove. + * cgraph.c (cgraph_calls_p): Likewise. + + * varray.h (varray_copy): Remove. + * varray.c (varray_copy): Likewise. + +2004-11-07 Andrew Pinski + + PR target/18269 + * config/darwin.c (machopic_indirect_data_reference): + Call gen_macho_high and gen_macho_low instead of + checking the mode and calling gen_macho_high_di directly. + * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. + * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns + to darwin.md. + (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic, + load_macho_picbase, macho_low, macho_high): Removed. + (builtin_setjmp_receiver): Call gen_macho_high and + gen_macho_low instead of checking the mode and calling + gen_macho_high_di directly. + * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant. + (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st): + Moved from rs6000.md. + (macho_high): New expander. + (macho_high_si): Renamed version of macho_high from rs6000.md. + (macho_low): New expander. + (macho_low_si): Renamed version of macho_low from rs6000.md. + (load_macho_picbase): New expander. + (load_macho_picbase_si): Renamed version of load_macho_picbase + from rs6000.md. + (macho_correct_pic): New expander. + (macho_correct_pic_si): Renamed version of macho_correct_pic + from rs6000.md. + +2004-11-07 Joseph S. Myers + + * c-decl.c (finish_struct): Use complete sentences for diagnostic + for structures or unions with no members or named members. + +2004-11-07 Joseph S. Myers + + * c-typeck.c (build_unary_op): Replace unreachable diagnostic for + taking address of bit-field by assertion. + +2004-11-06 Ulrich Weigand + + * config/s390/s390.md (attribute "op_type"): Default to "NN". + (attribute "atype"): Default to "agen". + (attribute "length"): Default to 6. + (define_asm_attibutes): Remove. + ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa", + "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf", + "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"): + Do not set type attribute to "cs" where already default. + ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm", + "*negdi2_31"): + Do not set type attribute to "other" where already default. + ("movti", "*movdi_64", "*movdi_31", "*movdf_31", + "*strlendi", "*strlensi", + "*movmem_long_64", "*movmem_long_31", + "*clrmem_long_64", "*clrmem_long_31", + "*cmpmem_long_64", "*cmpmem_long_31", + "*cmpint_si", "*cmpint_di", + "addti3", "*adddi3_31z", "*adddi3_31", + "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31", + "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg", + "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm", + "*pool_entry", "pool_align", "pool_section_start", + "pool_section_end", "main_pool", "reload_base_31", "pool"): + Do not set op_type attribute to "NN" where already default. + ("*extractqi", "*extracthi", "*zero_extendhisi2_31", + "*zero_extendqisi2_31", "*zero_extendqihi2_31", + "fix_truncdfsi2_ibm", "floatsidf2_ibm"): + Do not set atype attribute to "agen" where already default. + ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type. + +2004-11-06 Richard Sandiford + + * config/mips/t-iris6 (tp-bit.c): Fix target filename. + +2004-11-06 Richard Sandiford + + PR target/16830 + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the + R3000 and R4000 macros on IRIX. + +2004-11-06 Andreas Schwab + + PR target/16286 + * config/rs6000/altivec.h: Replace bool by __bool and pixel by + __pixel. + +2004-11-06 Kazu Hirata + + * tree-ssa-copyrename.c (rename_ssa_copies): Make it static. + +2004-11-06 Ulrich Weigand + + * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition + matches no insns already matched by other reservations. + * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition + matches no insns already matched by other reservations. + ("x_ss"): Remove, replace by ... + ("x_cs"): ... this new reservation. Check type instead of op_type. + Update bypasses to use x_cs instead of x_ss. + ("x_nn"): Remove, replace by ... + ("x_other"): ... this new reservation. Check type instead of op_type. + Add x_other and x_branch to bypasses. + ("x_vs"): New reservation. + * config/s390/s390.md (attribute "type"): Default according to op_type. + ("*execute"): Set type to "cs". + +2004-11-06 Kazu Hirata + + * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR + if we are in GIMPLE. + +2004-11-06 Hans-Peter Nilsson + + PR rtl-optimization/17933 + * rtlanal.c (dead_or_set_regno_p): Break out common code to... + (covers_regno_p): New function. Handle SETs of PARALLEL, + and defer the rest to... + (covers_regno_no_parallel_p): New function. + +2004-11-06 Eric Botcazou + + * config/sparc/sparc.c (function_arg_record_value_1): Skip + fields with zero length. + (function_arg_record_value_2): Likewise. + (function_arg_record_value_3): Use smallest_mode_for_size + instead of mode_for_size. + (function_arg_union_value): Return naked register for unions + with zero length. + +2004-11-06 Eric Botcazou + + * config/sparc/sparc.c (scan_record_type): Handle vector types. + (function_arg_slotno): Handle vector types specially. + (function_arg_record_value_1): Split fields with vector type and + BLKmode into their subparts. + (function_arg_record_value_2): Likewise. Be prepared to handle + more than 2 registers per field. + (function_arg_union_value): Increment regno inside the loop. + (function_arg_vector_value): New function. + (function_arg): Use it to split fields with vector type and + BLKmode into their subparts and build a PARALLEL. Treat + other vector types like floats. + (function_value): Likewise. + (sparc_pass_by_reference): Handle vector types. + (sparc_return_in_memory): Likewise. + +2004-11-06 Kazu Hirata + + * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if" + statement that never triggers. + +2004-11-06 Ulrich Weigand + + * config/s390/2064.md ("z_o2", "z_o3"): Remove. + * config/s390/2084.md ("x_o2", "x_o3"): Remove. + ("x_fdivd"): Use also for fsqrtd type. + ("x_fdivs"): Use also for fsqrts type. + * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types. + ("fix_truncdfsi2_ieee"): Set type to "ftoi". + ("fix_truncdfsi2_ibm"): Set type to "other". + ("floatdidf2", "floatdisf2"): Do not clobber CC. + ("floatsidf2", "floatsidf2_ieee"): Likewise. + ("floatsisf2", "floatsisf2_ieee"): Likewise. + ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand". + ("truncdfsf2_ibm"): Only allow "nonimmediate_operand". Use LER + instead of LRER. + ("extendsfdf2_ibm"): Do not set atype. Set type to "floads". + ("sqrtdf2"): Set type to "fsqrtd". + ("sqrtsf2"): Set type to "fsqrts". + +2004-11-06 Kazu Hirata + + * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a + pointer to the last PHI node in the new PHI chain. + +2004-11-06 Kaz Kojima + + * config/sh/sh.c (prepare_move_operands): Emit a use of r12 + for non-PIC TLS_MODEL_INITIAL_EXEC case. + +2004-11-06 Kazu Hirata + + * expmed.c: Fix a comment typo. + +2004-11-06 Aaron W. LaFramboise + + PR target/18106 + * config/i386/cygming.h + [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined. + +2004-11-06 Kazu Hirata + + * config/sh/sh4a.md: Fix copyright. + +2004-11-06 Kazu Hirata + + * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC + with GCC. + +2004-11-05 David Edelsohn + + * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf + when carry not used. Suggested by Torbjorn Granlund. + + * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg + operand[1] unnecessarily. Suggested by Eric Christopher. + (rs6000_adjust_cost): Increase latency of store to wider load. + (rs6000_rtx_costs): mulli only allows 16-bit constants. + +2004-11-05 Stan Shebs + + * config/rs6000/rs6000.c (machopic_output_stub): Output + ldu instead of lwzu for 64-bit stubs. + +2004-11-05 Richard Henderson + + * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case + size 2 with BWX. + (alpha_expand_unaligned_store): Likewise. + +2004-11-05 Richard Henderson + + * expmed.c (extract_force_align_mem_bit_field): New. + (extract_split_bit_field): Call it. + +2004-11-05 Richard Henderson + + * ia64.md (UNSPEC_SHRP): New. + (dshift_count_operand): New. + (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New. + * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP. + +2004-11-05 Joseph S. Myers + + * c-typeck.c (output_init_element): Return early if value is + error_mark_node. + +2004-11-05 James E Wilson + + * invoke.texi (-fno-guess-branch-probability): Rewrite. + + * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change + 1 to UNSPEC_GR_SPILL. + +2004-11-05 Andreas Krebbel + + * config/s390/s390.c (s390_fixed_condition_code_regs): New function. + (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined. + +2004-11-05 Nathan Sidwell + + * bitmap.h (enum bitmap_bits): Remove. + (bitmap_operation): Remove. + (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor, + bitmap_xor_into): Prototype. + * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New. + (bitmap_operation): Remove. + (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor, + bitmap_xor_into): New. + (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust. + + PR tree-optimization/18307 + * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST + and ORIG being the same node. + +2004-11-04 Geoffrey Keating + + * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory. + (install-mkheaders): Install the version built for the + host, not for the build machine. + * configure.ac: Always run fixincludes. + (all_outputs): Remove mkheaders. + * configure: Regenerate. + * fixinc.in: Move to fixincludes/. + * mkfixinc.sh: Likewise. + * mkheaders.in: Likewise. + * README-fixinc: Likewise. + +2004-11-05 Ramana Radhakrishnan + + PR target/18263 + * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the + equivalent on the A4. + +2004-11-05 Joseph S. Myers + + * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi, + doc/cppopts.texi, doc/extend.texi, doc/fragments.texi, + doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi, + doc/implement-c.texi, doc/install.texi, doc/invoke.texi, + doc/libgcc.texi, doc/md.texi, doc/passes.texi, + doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi, + doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi, + doc/trouble.texi: Correct end-of-sentence markup and markup of + "etc.", "e.g." and "i.e.". Use @code in various places where + appropriate. + +2004-11-05 Joseph S. Myers + + * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi, + doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi, + doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing + whitespace. + +2004-11-04 Mark Mitchell + + * config/arm/arm.c (arm_handle_notshared_attribute): New function. + * doc/extend.texi: Document "notshared" attribute. + +2004-11-04 Kazu Hirata + + * tree-phinodes.c (make_phi_node): Make it static. + * tree.h: Remove the prototypes for make_phi_node. + +2004-11-04 Kazu Hirata + + * stmt.c (expand_asm, expand_asm_operands): Make them static. + * tree.h: Remove the prototypes for expand_asm and + expand_asm_operands. + +2004-11-04 Kazu Hirata + + * passes.c (rest_of_compilation): Make it static. + * toplev.h: Remove the prototype for rest_of_compilation. + +2004-11-04 Kazu Hirata + + * jump.c (cleanup_barriers): Use delete_insn instead of + delete_barrier. + (delete_barrier): Remove. + * rtl.h: Remove the corresponding prototype. + +2004-11-04 Kazu Hirata + + * expr.c (mostly_zero_p): Make it static. + * tree.h: Remove the prototype for mostly_zeros_p. + +2004-11-04 Kazu Hirata + + * cfgrtl.c (force_nonfallthru_and_redirect): Make it static. + +2004-11-04 Kazu Hirata + + * builtins.c (expand_builtin_return_addr, + expand_builtin_longjmp, expand_builtin_trap): Make them static. + * expr.h: Remove the prototypes for expand_builtin_longjmp and + expand_builtin_trap. + * tree.h: Remove the prototype for expand_builtin_return_addr. + +2004-11-04 Kazu Hirata + + * tree-cfg.c (find_taken_edge): Reject VAL begin NULL. + * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge + with VAL being NULL. + +2004-11-04 Kazu Hirata + + * cfghooks.c (delete_basic_block): Remove code to truncate + edge vectors. + +2004-11-04 Andrew Pinski + + * flow.c (init_propagate_block_info): Change the type of i to + unsigned. + +2004-11-04 Ulrich Weigand + + PR tree-optimization/18184 + * c-typeck.c (comptypes): Do not treat pointers of different + modes or alias-all flags as equivalent. + * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise. + +2004-11-04 Joseph S. Myers + + * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't + reference specific C parser files in examples. + +2004-11-04 Richard Sandiford + + PR target/15342 + * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs + as OP_INOUT if the instruction is predicated. + +2004-11-04 Kazu Hirata + + * bitmap.h: Fix a comment typo. Follow spelling conventions. + * tree-vectorizer.c: Fix a comment typo. + +2004-11-04 Kazu Hirata + + * sdbout.c (SDB_GENERATE_FAKE): Remove. + (gen_fake_label): Don't use SDB_GENERATE_FAKE. + * system.h: Poison SDB_GENERATE_FAKE. + * doc/tm.texi (SDB_GENERATE_FAKE): Remove. + +2004-11-04 Ulrich Weigand + + * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL. + +2004-11-04 Eric Botcazou + + PR other/18277 + * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert + 2004-10-29 patch + +2004-11-04 Nathan Sidwell + + * predict.c (propagate_freq): Make bitno unsigned. Move + npredecessors update out of loop. + + * bitmap.h (bitmap_iterator): Remove word_bit and bit + fields. Rename others. + (bmp_iter_common_next_1, bmp_iter_single_next_1, + bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next, + bmp_iter_and_not_next_1, bmp_iter_and_not_init, + bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init, + bmp_iter_and_next): Remove. + (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init, + bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): + New. + (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP, + EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust. + + * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove. + * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior, + bitmap_and_into, bitmap_ior_into as appropriate. + * except.c (remove_eh_handler): Likewise. + * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise. + * tree-dfa.c (mark_new_vars_to_rename): Likewise. + * tree-ssa-alias.c (merge_pointed_to_info): Likewise. + * tree-ssa-live.h (live_merge_and_clear): Likewise. + * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for): + Likewise. + + * bitmap.c (bitmap_print): Make bitno unsigned. + * bt-load.c (clear_btr_from_live_range, + btr_def_live_range): Likewise. + * caller-save.c (save_call_clobbered_regs): Likewise. + * cfganal.c (compute_dominance_frontiers_1): Likewise. + * cfgcleanup.c (thread_jump): Likewise. + * cfgrtl.c (safe_insert_insn_on_edge): Likewise. + * conflict.c (conflict_graph_compute): Likewise. + * ddg.c (add_deps_for_use): Likewise. + * df.c (df_refs_update): Likewise. + * except.c (remove_eh_handler): Likewise. + * flow.c (verify_local_live_at_start, update_life_info, + initialize_uninitialized_subregs, propagate_one_insn, + free_propagate_block_info, propagate_block, find_use_as_address, + reg_set_to_hard_reg_set): Likewise. + * gcse.c (clear_modify_mem_tables): Likewise. + * global.c (global_conflicts, build_insn_chain): Likewise. + * ifcvt.c (dead_or_predicable): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * loop.c (load_mems): Likewise. + * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): + Likewise. + * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill): + Likewise. + * reload1.c (order_regs_for_reload, finish_spills): Likewise. + * sched-deps.c (sched_analyze_insn, free_deps): Likewise. + * sched-rgn.c (propagate_deps + * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise. + * tree-dfa.c (dump_dfa_stats + tree-into-ssa.c (compute_global_livein, insert_phi_nodes, + insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags): + Likewise. + * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars, + free_temp_expr_table, find_replaceable_exprs): Likewise. + * tree-sra.c (scan_function, scalarize_parms): Likewise. + * tree-ssa-alias.c (init_alias_info, + compute_points_to_and_addr_escape, + compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise. + * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise. + * tree-ssa-live.c (new_tree_live_info, live_worklist, + calculate_live_on_entry, calculate_live_on_exit, compare_pairs, + sort_coalesce_list, build_tree_conflict_graph, dump_live_info + tree-ssa-loop-manip.c (add_exit_phis_var): Likewise. + tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, + add_call_read_ops): Likewise. + * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise. + * tree-ssa-live.h (num_var_partitions): Return unsigned. + +2004-11-03 Dorit Naishlos + + PR tree-optimization/18009 + * tree-vectorizer.h (enum dr_alignment_support): New type. + (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed. + (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a + single data_reference (instead of a varray of references). + * tree-vectorizer.c (new_loop_vec_info): Likewise. + (vect_gen_niters_for_prolog_loop): Likewise. + (vect_update_inits_of_drs): Likewise. + + (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to + vect_enhance_data_refs_alignment. + (vect_do_peeling_for_alignment): Likewise. + (vect_enhance_data_refs_alignment): Decide if and by how much to peel; + this functionality used to be in vect_analyze_data_refs_alignment. + Also update DR_MISALIGNMENT due to peeling; this functionality used to + be in vect_update_inits_of_drs and vect_do_peeling_for_alignment). + (vect_analyze_data_refs_alignment): Decision on whether and by how much + to peel moved to vect_enhance_data_refs_alignment. Call + vect_supportable_dr_alignment. + + (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE. + (vect_compute_data_refs_alignment): Return bool. Consider return value + of vect_compute_data_ref_alignment and return true/false accordingly. + (vect_enhance_data_refs_alignment): Consider return value of + vect_compute_data_refs_alignment and return true/false accordingly. + + (vect_supportable_dr_alignment): New function. + (vectorizable_store): Call vect_supportable_dr_alignment. + (vectorizable_load): Call vect_supportable_dr_alignment. Alignment + support checks moved from here to vect_supportable_dr_alignment. + + (vect_transform_loop): Avoid 80 columns overflow. + +2004-11-03 Andrew Pinski + + * timevar.c (timevar_enable): Change from + static. + (timevar_push): Rename to ... + (timevar_push_1): this and remove the + enabled check. + (timevar_pop): Rename to ... + (timevar_pop_1): this and remove the + enabled check. + * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops. + (timevar_pop): New macro. + (timevar_push): New macro. + (timevar_enable): Declare. + +2004-11-03 Andrew Pinski + + * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared + libgcc for shared libraries. + +2004-11-03 Ulrich Weigand + + * config/s390/s390-protos.h (s390_split_access_reg): Add prototype. + * config/s390/s390.c (s390_split_access_reg): New function. + (regclass_map): Add access registers. + (get_thread_pointer): Use access register instead of UNSPEC_TP. + * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38. + (ACCESS_REGNO_P, ACCESS_REG_P): New macros. + (TP_REGNUM): New define. + (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, + REG_ALLOC_ORDER): Add access registers. + (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, + CANNOT_CHANGE_MODE_CLASS): Support access registers. + (enum reg_class): Add ACCESS_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. + (REG_CLASS_FROM_LETTER): Add 't' constraint. + (REGISTER_NAMES): Add access registers. + * config/s390/s390.md (UNSPEC_TP): Remove. + ("*movdi_64"): Add access register alternatives. Provide splitters + to split DImode access register <-> GPR moves into SImode moves. + ("*movsi_zarch", "*movsi_esa"): Add access register alternatives. + ("movstrictsi"): Likewise. + ("get_tp_64", "get_tp_31"): Reimplement using access registers. + ("set_tp_64", "set_tp_31"): Likewise. + ("*set_tp"): New insn. + +2004-11-03 Kazu Hirata + + * tree-phinodes.c (resize_phi_node): Copy only a portion of + the PHI node currently in use. + +2004-11-03 Andrew Pinski + + PR tree-opt/18231 + * tree.c (staticp) : Nested functions are static + also. + +2004-11-03 Andrew MacLeod + + PR tree-optimization/18270 + * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming + abnormal edges, commit all pending stmts on incoming edges. + +2004-11-03 Ulrich Weigand + + * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not + cause extra costs. Generate canonical RTL. + +2004-11-02 Daniel Berlin + + * lambda-code.c (lambda_compute_auxillary_space): Update comments. + (lambda_compute_target_space). Ditto. + * lambda.h (lambda_trans_matrix): Ditto. + (lambda_linear_expression): Ditto. + (lambda_body_vector): Ditto. + (lambda_loopnest): Ditto. + * tree-loop-linear.c (gather_interchange_stats): Combine tests, + update comments, and remove pointless addition of 0. + (linear_transform_loops): Update comments. + +2004-11-03 Sebastian Pop + + * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of + CEIL_MOD_EXPR. + +2004-11-03 Jeff Law + + * predict.c (struct block_info_def): Kill "tovisit" field. + (propagate_freq): Accept new "tovisit" parameter. Change + read/write access methods for "tovisit" to check the "tovisit" + bitmap instead of a bit in block_info_def. + (estimate_loops_at_level): Allocate "tovisit" bitmap. Pass + it to propagate_freq. + + * stmt.c (expand_case): Speed up code to detect duplicate case + label targets and count unique case label targets. + +2004-11-03 Kazu Hirata + + * cppdefault.c, cppdefault.h, timevar.h: Update copyright. + +2004-11-03 Kazu Hirata + + * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting. + +2004-11-03 Kazu Hirata + + * tree-cfg.c (find_taken_edge): Abort if we are given a + statement that is neither COND_EXPR nor SWITCH_EXPR. + +2004-11-02 Zdenek Dvorak + + * fold-const.c (fold): Reassociate also (x - mult) + mult and + (mult - x) + mult. Cast operands of expression after applying + distributive law to the correct types. Apply distributive law + to a * c - b * c for all non-float types. + +2004-11-02 Geoffrey Keating + + * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just + because we don't want to run them now; instead, set them to + stmp-install-fixproto or stmp-install-fixinc. + * Makefile.in (stmp-install-fixproto): New. + (stmp-install-fixinc): New. + * configure: Regenerate. + +2004-11-02 Nathan Sidwell + + * flow.c (init_propagate_block_info): Use bitmap_empty_p on result + of bitmap_xor. + +2004-11-02 Ziemowit Laski + + * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. + (c_types_compatible_p): Move function definition... + * c-objc-common.c (c_types_compatible_p): ...here. + * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from + c-lang.c. + +2004-11-02 Steven Bosscher + + * cfgloop.h (struct loop): Update comment. + * cse.c (cse_main): Remove obsolete comment. + + * expr.h (gen_cond_trap): Move prototype under functions provided + by optabs.c. + (canonicalize_condition, get_condition): Move to... + * rtl.h (canonicalize_condition, get_condition): ...here. + (branch_target_load_optimize): Add comment that this function is + in bt-load.c. + * loop.c (canonicalize_condition, get_condition): Move to... + * rtlanal.c (canonicalize_condition, get_condition): ...here. + * sched-deps.c (get_condition): Rename to sched_get_condition. + (add_dependence): Update this caller. + +2004-11-02 Andrew Pinski + + PR tree-opt/16808 + * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure + that the vops get marked for renaming. + +2004-11-02 Andreas Krebbel + + * config/s390/s390.md ("movcc"): Set type attribute. + +2004-11-02 Kazu Hirata + + * tree-phinodes.c (add_phi_arg): Add an assertion that the + edge already exists. + +2004-11-02 Kazu Hirata + + * tree-phinodes.c (remove_phi_arg_num): Do not zero the + element that's being removed. + +2004-11-02 Kazu Hirata + + * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI + arguments using PENDING_STMT. + (thread_block): Call copy_phis_to_block after redirecting an + edge. + +2004-11-02 Nathan Sidwell + + * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_ior, bitmap_iot_into, + bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void. + (bitmap_ior_and_compl_into): Produce bool. + (bitmap_union_of_diff): Rename to ... + (bitmap_ior_and_compl): ... here. Produce bool. + * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use + bitmap_operation directly. + (bitmap_union_of_diff): Rename to ... + (bitmap_ior_and_compl): ... here. Return bool, use + bitmap_operation directly. + * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl. + (df_ru_transfer_function, df_lr_transfer_function): Likewise. + * global.c (modify_bb_reg_pav): Likewise. + + * bitmap.h (bitmap_equal_p): Return bool. + (bitmap_intersect_p, bitmap_intersect_compl_p): Declare. + * bitmap.c (bitmap_equal_p): Return bool. Compare directly. + (bitmap_intersect_p, bitmap_intersect_compl_p): New. + * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and + bitmap_intersect_compl_p. + * ifcvt (dead_or_predicable): Likewise. + +2004-11-02 Nathan Sidwell + + PR rtl-optimization/17104 + * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small + loads in zero_extend. + +2004-11-02 Danny Smith + + PR debug/18242 + * toplev.c (debug_type_names): Remove "dwarf-1". + +2004-11-02 Ben Elliston + + * timevar.h (timevar_get): Remove. + * timevar.c (timevar_get): Remove unused function. + +2004-11-02 Joseph S. Myers + + * doc/include/texinfo.tex: Update from Texinfo CVS. + +2004-11-02 Ben Elliston + + * cppdefault.h (cpp_SYSROOT): Remove. + * cppdefault.c (cpp_SYSROOT): Likewise. + +2004-11-01 Andrew MacLeod + + PR tree-optimization/16447 + * tree-cfg.c (bsi_commit_one_edge_insert): Rename from + bsi_commit_edge_inserts_1, and make funtion external. Return new block. + (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert. + * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing. + * tree-flow.h (bsi_commit_one_edge_insert): Extern decl. + * tree-outof-ssa.c (rewrite_trees): Don't commit edges here. + (same_stmt_list_p): New. Return TRUE if edge is to be forwarded. + (identical_copies_p): New. Return true is two copies are the same. + (identical_stmt_lists_p): New. Return true if stmt lists are the same. + (analyze_edges_for_bb): New. Determine how best to insert edge stmts + for a basic block. + (perform_edge_inserts): New. Determine what to do with all stmts that + have been inserted on edges. + (remove_ssa_form): Analyze and commit edges from here. + +2004-11-01 Andrew Pinski + + PR bootstrap/18232 + * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct. + (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p. + (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. + (EXECUTE_IF_AND_IN_BITMAP): Likewise. + +2004-11-01 Joseph S. Myers + + PR c/18239 + * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst + parameter declarations. + +2004-11-01 Andreas Krebbel + + * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group. + (s390_secondary_input_reload_class) + (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc + register. + (s390_expand_cmpmem): Enable cmpmem implementation. + * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): + Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS. + (REG_CLASS_FROM_LETTER): New constraint 'c' added. + * config/s390/s390.md ("movcc"): New insn pattern. + * doc/md.texi: Document 'c' constraint for s390. + +2004-11-01 Nathan Sidwell + + PR c++/18064 + * doc/extend.texi (Deprecated Features): Deprecate G++ covariant + extension. + +2004-10-16 Daniel Berlin + + Fix PR tree-optimization/17672 + Fix PR tree-optimization/18168 + + * lambda-code.c (lambda_lattice_compute_base): Fix reversed + assert test. + (gcc_tree_to_linear_expression): Add extra to existing constant. + (depth_of_nest): Factor out function used in various places. + (gcc_loop_to_lambda_loop): Clean up code a little bit. No + functional changes. + (find_induction_var_from_exit_cond): Stop guessing, and just + get the right answer :). + (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation. + Print out message about result of attempt to create perfect nest. + (lbv_to_gcc_expression): Add type argument, use it to do math + and induction variable creation. + (lle_to_gcc_expression): Ditto. + (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as + oldiv. Pass type argument to lle_to_gcc_expression and + lbv_to_gcc_expression. + Reset number of iterations after transformation. + (perfect_nestify): Remove useless pre-allocation, and cleanup + a small amount. + + * tree-data-ref.c (build_classic_dist_vector): Return false for + dependences completely outside of the loop nest we asked about. + (build_classic_dir_vector): Ditto. + (compute_data_dependences_for_loop): Only add dependence relations + inside the loop we asked about. + + * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT. + Compute immediate uses. + + * tree-optimize.c: Move linear_transform_loops to before ivcanon. + +2004-11-01 Kazu Hirata + + * tree-cfg.c (thread_jumps): Fix a comment typo. + +2004-11-01 Kazu Hirata + + * tree-cfg.c (thread_jumps): Fix a comment typo. + +2004-10-31 Nicolas Pitre + + * config/arm/ieee754-sf.S (floatdisf): Fix regression with + values smaller than 2^32. + +2004-10-31 Jeff Law + + * cfgloop.h (struct loop): Remove unused "nodes" field. + * timevar.def (TV_TREE_LOOP_BOUNDS): New. + * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body + instead of calling flow_bb_inside_loop_p for every basic block + in the function. + * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS. + +2004-10-31 Graham Stott + + * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo. Use + INT_5_BITS instead of VAL_5_BITS_P. + +2004-10-31 Roger Sayle + + PR middle-end/14521 + * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F' + for consistent quoting in diagnostic messages. + (expand_call_inline): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + * tree-ssa.c (warn_uninitialized_var): Likewise. + (warn_uninitialized_phi): Likewise. + +2004-10-31 Richard Sandiford + + * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter + mode check. + +2004-10-31 Kazu Hirata + + * c-common.c: Fix a comment typo. + +2004-10-31 Jason Merrill + + PR middle-end/17526 + * tree-gimple.c (is_gimple_mem_rhs): Also require a val for + aggregate types that are not BLKmode. + +2004-10-30 Ziemowit Laski + + * c-common.h (objc_lookup_ivar): Add second parameter to + prototype. + * c-typeck.c (build_external_ref): After looking up symbol, + pass it to objc_lookup_ivar() to decide whether it or the + ivar should be used, rather than deciding the issue locally. + * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter, + which is simply returned in the non-ObjC case. + +2004-10-30 Danny Smith + + * sdbout.c (sdbout_symbol): Do not output type .def statements + for builtin types. + +2004-10-30 Gabriel Dos Reis + + * c-common.c (catenate_strings): New. + (c_parse_error): Use it. Don't over-escape. + +2004-10-30 Kaz Kojima + + * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and + modify the for loop expressions for it. Remove unnecessary casts. + (sh_expand_prologue): Declare reg as unsigned. + (sh_gimplify_va_arg_expr): Initinalize lab_over. + (sh_handle_sp_switch_attribute): Add const qualifier appropriately. + +2004-10-30 Geoffrey Keating + + * doc/invoke.texi (Darwin Options): Improve description of + how the subtype is chosen. + +2004-10-30 Roger Sayle + + PR middle-end/18096 + * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that + the stack adjustment, "size", is valid for Pmode. If the stack + frame is too large, generate a trap insn and issue a warning. + +2004-10-30 Kazu Hirata + + * tree-ssa-dom.c: Fix comment typos. + +2004-10-30 Kaz Kojima + + * config/sh/sh.c (prepare_move_operands): Use operands[0] + for the output rtl if no_new_pseudos is set. Remove redundant + line. + +2004-10-30 Joseph S. Myers + + PR c/16666 + * c-decl.c (start_function): Don't check for DECL_BUILT_IN when + determining whether to copy parameter types from a previous + prototype declaration. + +2004-10-29 Roger Sayle + + PR rtl-optimization/17581 + * cselib.c (cselib_process_insn): The last instruction of a libcall + block, with the REG_RETVAL note, should be considered in the libcall. + * gcse.c (do_local_cprop): Allow constants to be propagated outside + of libcall blocks. + (adjust_libcall_notes): Use simplify_replace_rtx instead of + replace_rtx to avoid creating invalid RTL in REG_RETVAL notes. + +2004-10-30 Kazu Hirata + + * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN. + +2004-10-29 Jeff Law + + * tree-ssa-dom.c (struct edge_info): New structure holding + edge equivalences and edge redirection information. + (get_eq_expr_value, record_dominating_conditions): Kill. + (propagate_to_outgoing_edges): Renamed from cprop_into_phis. + Call record_edge_info. + (allocate_edge_info, free_edge_info): New. + (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges + rather than cprop_into_phis. Free all edge infos before threading + jumps. + (thread_across_edge): Allocate new edge info structures as needed + and store the redirection target into the edge info structure + instead of the edge's AUX field. + (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED. + (record_equivalence_from_incoming_edge): Lose unnecessary argument. + Revamp code which finds and records equivalences associated with + edges to use saved data in the edge_info structure. + (record_equivalencs_from_phis): Similarly. + (dom_opt_finalize_block): Revamp code which finds and records + equivalences associated with edges to use saved data in the + edge_info structure. + (build_and_record_new_cond): New function. + (record_conditions): Use build_and_record_new_cond to record + dominating conditions. + (record_edge_info): New function. + (record_range): Tighten test for conditions which create + useful range records. + +2004-10-29 Geoffrey Keating + + * config/i386/darwin.h (ASM_SPEC): Simplify. + (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec. + * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New. + (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec. + * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here. + (LINK_SPEC): Do pass -arch here. Handle -force_cpusubtype_ALL + in all cases. Pass the right -arch or -arch_only based on -mcpu. + (ASM_SPEC): Handle -force_cpusubtype_ALL. + * doc/invoke.texi (Darwin Options): Improve documentation for + Darwin linker (and libtool) switches. + + * config/rs6000/darwin-fallback.c: Include . + +2004-10-29 Stan Shebs + + * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly. + +2004-10-29 Kazu Hirata + + * tree-phinodes.c (allocate_phi_node): New. + (make_phi_node, resize_phi_node): Use it. + +2004-10-29 David Edelsohn + + * config/rs6000/sysv4.h (TARGET_POWER): Define as 0. + * config/rs6000/darwin.h (TARGET_POWER): Define as 0. + +2004-10-29 Kazu Hirata + + * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero + the whole PHI node. + * tree.h (tree_phi_node): Tell the garbage collector to chase + num_args arguments. + +2004-10-29 Richard Earnshaw + + * opts.c (decode_options): Lower the crossjump threshold for -Os. + +2004-10-29 Diego Novillo + + * tree.h (struct tree_ssa_name): Remove field 'equiv'. + +2004-10-28 Nathan Sidwell + + * bitmap.h (bitmap_empty_p): New. + (bitmap_and, bitmap_and_into, bitmap_and_compl, + bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, + bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap + operation macros. + (bitmap_ior_and_compl): Rename to ... + (bitmap_ior_and_compl_into): ... here. + * bitmap.c (bitmap_equal_p): Use bitmap_xor. + (bitmap_ior_and_compl): Rename to ... + (bitmap_ior_and_compl_into): ... here. Adjust. Return changed + flag. + (bitmap_union_of_diff): Use renamed bitmap functions. + * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET, + XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise. + * cfgrtl.c (safe_insert_insn_on_edge): Likewise. + * df.c (df_bb_rd_local_compute) + * flow.c (calculate_global_regs_live, + init_propagate_block_info): Likewise. + * ifcvt.c (find_if_case_1, find_if_case_2, + dead_or_predicable): Likewise. + * ra-build.c (union_web_part_roots, livethrough_conflicts_bb, + reset_conflicts, conflicts_between_webs): Likewise. + * ra-rewrite.c (reloads_to_loads, rewrite_program2, + detect_web_parts_to_rebuild): Likewise. + * sched-ebb.c (compute_jump_reg_dependencies): Likewise. + * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise. + * tree-sra.c (decide_instantiations): Likewise. + * tree-ssa-alias.c (create_name_tags, + merge_pointed_to_info): Likewise. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. + * tree-ssa-loop-im.c (move_computations): Likewise. + * tree-ssa-operands.c (get_call_expr_operands): Likewise. + * tree-ssa-pre.c (fini_pre): Likewise. + * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. + * tree-ssanames.c (any_marked_for_rewrite_p): Likewise. + * tree-vectorizer.c (vectorize_loops): Likewise. + +2004-10-29 Nick Clifton + + config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When + adding the PIC register to the fixed_regs array, also add it + to the call_used_regs array. + +2004-10-29 Eric Botcazou + + * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard + with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs. + +2004-10-28 Daniel Berlin + + * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function. + (rewrite_blocks): Modify argument, and use it to decide which + function to call. + (rewrite_def_def_chains): Call rewrite_blocks with true here. + (rewrite_into_ssa): and call it with false here. + +2004-10-29 Kazu Hirata + + * tree-phinodes.c (add_phi_arg): Turn an "if" that always + triggers into gcc_assert. + +2004-10-28 Diego Novillo + + PR tree-optimization/16728 + * tree-flow.h (get_ptr_info): Declare. + * tree-ssa-alias.c (get_ptr_info): Make extern. + * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive + alias information. + +2004-10-28 Stan Shebs + + * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64. + * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64 + case. + +2004-10-28 Frank Ch. Eigler + + * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to + prevent their later unnecessary registration. + (mf_build_check_statement_for): Remove "addr" argument, and + related "__mf_value" generated code. Update callers. + (mf_decl_eligible_p): New function, factored from mx_register_decls. + (mx_register_decls): Call it. + (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases + to restore support for complex nested expressions. + (mudflap_enqueue_decl): Simplify. Move registration call emission + out ... + (mudflap_finish_file): ... to here. + (mudflap_enqueue_constant): Remove dump code. + +2004-10-28 Zack Weinberg + + PR 18199 + * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function. + (DBX_FINISH_STABS): Add (unused by default) SYM parameter. + (dbxout_finish_complex_stabs): Update to match. + (dbxout_symbol_location): Call emit_pending_bincls_if_required + and FORCE_TEXT before DBX_STATIC_BLOCK_START. Use + dbxout_begin_complex_stabs_noforcetext. + * xcoffout.h (DBX_FINISH_STABS): Restore special case for + N_GSYM, using new SYM parameter. Correct logic for special + cases for N_FUN. + + * varasm.c (function_section): If DECL is NULL_TREE, don't try + to do anything else. Do not call get_insns if cfun or + cfun->emit are NULL. + +2004-10-28 Adam Nemet + + PR middle-end/18160 + * c-typeck.c (c_mark_addressable): Issue error if address of a + register variable is taken. Use "%qD" to print DECL_NAME. + +2004-10-28 Diego Novillo + + * opts.c (decode_options): Don't run PRE at -Os. + +2004-10-28 Richard Henderson + + * config/alpha/alpha.md (movqicc_internal): Allow exactly one + zero in the conditional. + (movhicc_internal, movsicc_internal, movdicc_internal): Likewise. + +2004-10-28 Richard Henderson + + * cse.c (memory_extend_rtx): Remove. + (cse_main): Don't set it. + (cse_insn): Use a local buffer instead. + +2004-10-28 Andreas Krebbel + + * profile.c (branch_prob): Call to init_edge_profiler added. + * rtl-profile.c (rtl_init_edge_profiler): New function. + (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with + call to safe_insert_insn_on_edge. + (rtl_profile_hooks): rtl_init_edge_profiler added. + * tree-profile.c (tree_init_edge_profiler): New function. + (tree_profile_hooks): tree_init_edge_profiler added. + * value-prof.h (profile_hooks) init_edge_profiler prototype added. + +2004-10-28 Nick Clifton + + * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use + emit_jump_insn() to generate the return instruction. + +2004-10-28 Kazu Hirata + + * tree-phinodes.c: Remove trailing whitespace. + +2004-10-28 Kazu Hirata + + * tree-ssa-loop-ivopts.c: Fix a comment typo. + * doc/invoke.texi: Fix a typo. + +2004-10-28 Kazu Hirata + + * Makefile.in (OBJS-common): Remove duplicates. + +2004-10-28 Kazu Hirata + + * lambda-code.c (nestify_update_pending_stmts): Remove. + (perfect_nestify): Use flush_pending_stmts instead of + nestify_update_pending_stmts. + * tree-cfg.c (tree_make_forwarder_block): Use + flush_pending_stmts. + * tree-flow.h: Add a prototype for flush_pending_stmts. + * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): + Use flush_pending_stmts. + (lv_update_pending_stmts): Remove. + (tree_ssa_loop_version): Use flush_pending_stmts instead of + lv_update_pending_stmts. + * tree-ssa.c (flush_pending_stmts): New. + +2004-10-28 Ulrich Weigand + + PR target/15286 + * final.c (alter_subreg): Compute correct offset to use with + paradoxical SUBREGs of memory operands. + * recog.c (general_operand): Allow paradoxical SUBREGs of + memory operands after reload. + * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg + has failed when passed a hard register. + +2004-10-28 Aldy Hernandez + + * function.c (assign_parm_setup_block): Handle parallels correctly. + +2004-10-28 Kaz Kojima + + * final.c (shorten_branches): Initialize flags structure. + +2004-10-28 Nathan Sidwell + + * tree.c (int_cst_node, int_cst_hash_table): New variables. + (init_ttree): Initialize them. + (int_cst_hash_hash, int_cst_hash_eq): New hashing functions. + (build_int_cst_wide): Use hash table for oversized integers. + +2004-10-28 Nick Clifton + + * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define + begin_label. + +2004-10-27 Richard Henderson + + PR middle-end/18163 + * expr.c (emit_group_load): Don't go force temporary for memory + or concat source. + (emit_group_store): Similarly. + +2004-10-27 Andrew Pinski + + PR other/18186 + * common.opt (--param): Fix spelling of parameter. + +2004-10-27 Andrew Pinski + + PR tree-opt/17529 + * tree-cfg.c (remove_useless_stmts_1) : + Don't fold statement. + : Fold the statement. + +2004-10-28 Kazu Hirata + + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) + : Use EDGE_COUNT instead of GOTO_DESTINATION. + +2004-10-28 Joseph S. Myers + + * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi, + doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, + doc/libgcc.texi, doc/md.texi, doc/passes.texi, + doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting. + +2004-10-28 Joseph S. Myers + + * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi, + doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put + punctuation outside quotes. + +2004-10-27 David Mosberger + James E Wilson + + PR target/13158 + * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on + sibcall alloc instruction. + (process_set): Handle sibcall alloc instruction. + +2004-10-27 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_attribute_table): Add + SUBTARGET_ATTRIBUTE_TABLE. + * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import. + (SUBTARGET_ATTRIBUTE_TABLE): Define. + * config/darwin.c (darwin_handle_weak_import_attribute): New. + (HAVE_DEAD_STRIP): Delete. + (no_dead_strip): Don't test HAVE_DEAD_STRIP. + * config/darwin-protos.h (darwin_handle_weak_import_attribute): + Prototype. + + * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document. + + * config/darwin.h (GTHREAD_USE_WEAK): Define. + +2004-10-28 Ben Elliston + + * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New. + (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise. + * params.h (SRA_MAX_STRUCTURE_SIZE): New. + (SRA_FIELD_STRUCTURE_RATIO): Likewise. + * tree-sra.c: Include "params.h". + (decide_block_copy): Use new parameters. + * doc/invoke.texi (Optimize Options): Document new SRA pass + parameters sra-max-structure-size and sra-field-structure-ratio. + +2004-10-27 Nicolas Pitre + + * config/arm/ieee754-df.S (floatdidf): Fix regression with big values. + +2004-10-27 Zdenek Dvorak + + PR tree-optimization/18048 + * fold-const.c (try_move_mult_to_index): New function. + (fold): Use try_move_mult_to_index. + * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates. + * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce + an all-ones unsigned constant without extra bits. + * tree.c (build_low_bits_mask): New function. + * tree.h (build_low_bits_mask): Declare. + +2004-10-27 David Edelsohn + + PR target/17956 + * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to + final condition. + (minsf3): Same. + (maxdf3): Same. + (mindf3): Same. + +2004-10-27 Kazu Hirata + + * tree-cfg.c (thread_jumps): Speed up by reordering the two + conditions for entering basic blocks into worklist. + +2004-10-27 Kazu Hirata + + * tree-cfg.c (thread_jumps): Speed up by pretending to have + ENTRY_BLOCK_PTR in worklist. + +2004-10-27 Kazu Hirata + + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) + : Don't let an explicit GOTO_EXPR slip through. + +2004-10-27 Daniel Berlin + + Fix PR tree-optimization/17133 + + * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must + def kill operand. + + * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT. + (get_v_must_def_result_ptr): Modify for new structure of + v_must_defs array. + (get_v_must_def_kill_ptr): New. + (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs. + (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT. + (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT. + (op_iter_init): Initialize new mustu members. + (op_iter_next_mustdef): New function. + (op_iter_init_mustdef): Ditto. + + * tree-flow.h (rewrite_def_def_chains): New function. + + * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands. + (ssa_mark_def_sites): Ditto. + (rewrite_stmt): Ditto. + (ssa_rewrite_stmt): Ditto. + (rewrite_blocks): Factor out from rewrite_into_ssa. + (mark_def_block_sites): Ditto. + (rewrite_def_def_chains): New function, just rewrites def-def + chains without phi node insertion. + + * tree-pass.h (TODO_fix_def_def_chains): New todo flag. + + * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains. + + * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that + they include the rhs now. + + * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became + V_MUST_DEF_RESULT. + + * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument. + Update callers. + (mark_really_necessary_kill_operand_phis): New function. + (perform_tree_ssa_dce): Call it. + (pass_dce): Add TODO_fix_def_def_chains. + (pass_cd_dce): Ditto. + + * tree-ssa-loop-im.c (determine_max_movement): Look at kills as + well. + (rewrite_mem_refs): Ditto. + + * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills + as well. + + * tree-ssa-operands.c (allocate_v_may_def_optype): + v_may_def_operand_type_t became v_def_use_operand_type_t. + (allocate_v_must_def_optype) Ditto. + (finalize_ssa_v_must_defs): Update for new operand type, as well + as setting the use portion as well. + (copy_virtual_operands): Copy the kill operand as well. + (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became + V_MUST_DEF_RESULT. + + * tree-ssa-operands.h (v_may_def_operand_type): Renamed to + v_def_use_operand_type. + (v_must_def_optype_d): Use v_def_use_operand_type. + (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_* + (V_MUST_DEF_KILL_*): New macros. + (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i + members. + Rename existing must_i and num_v_must members to mustd_i and + num_v_mustd. + (SSA_OP_VMUSTDEFKILL): New flag. + (SSA_OP_VIRTUAL_KILLS): New flag. + (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS. + (SSA_OP_ALL_KILLS): New flag. + (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro. + + * tree-ssa.c (verify_ssa): Verify virtual kills as well. + + * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP + became V_MUST_DEF_RESULT. + (rename_variables_in_bb): Rename kill pointer as well. + + * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the + immediate uses. + +2004-10-27 Richard Sandiford + + * dbxout.c (dbxout_source_line): Move declaration of begin_label to + the block that needs it. + +2004-10-27 Zack Weinberg + + * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable + ATTRIBUTE_UNUSED. + +2004-10-27 Zack Weinberg + + * c-lex.c (cb_def_pragma): Clean up code for making location + palatable to diagnostic.c. + +2004-10-27 Steven Bosscher + + PR tree-optimization/17757 + * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs + without any PHI arguments left. Make sure the argument that + we're supposed to remove exists at all. + +2004-10-27 Paul Brook + + * configure.ac: Don't test for [build] __cxa_atexit when building a + cross compiler. + * configure: Regenerate. + +2004-10-27 Paul Brook + + * configure.ac: Use build_exeext not host_exeext when lookin for + target tools. + * configure: Regenerate. + +2004-10-27 Andreas Krebbel + + * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus. + +2004-10-27 Andreas Krebbel + patch originally created by Kelley Cook + + PR middle-end/14684 + * opts.c (OPT_fprofile_generate): Default to -funroll-loops + to match -fprofile-use. + +2004-10-27 Kazu Hirata + + * config/rs6000/rs6000.c: Fix a comment typo. + +2004-10-27 Zack Weinberg + + * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line + counter. + +2004-10-27 Andreas Schwab + + * varasm.c (default_stabs_asm_out_destructor): Mark symbol as + unused. + (default_stabs_asm_out_constructor): Likewise. + +2004-10-26 Geoffrey Keating + + * builtins.c (fold_builtin_unordered_cmp): Always bring both + operands to the same type. + +2004-10-26 James E Wilson + + PR target/18010 + * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P. + +2004-10-26 Zack Weinberg + + * dbxout.c: Include obstack.h. + (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in + default definition. + (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR): + Default-define here. + (DBX_CONTIN_LENGTH): Move definition with others. + (DBX_FINISH_STABS): New target macro. + (current_sym_code, current_sym_value, current_sym_addr) + (current_sym_nchars, CHARS, dbxout_continue) + (print_int_cst_octal, print_octal, print_wide_int) + (dbxout_prepare_symbol, dbxout_finish_symbol): Delete. + (stabstr_ob, stabstr_last_contin_point): New variables. + (NUMBER_FMT_LOOP): New improper macro. + (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label) + (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label) + (dbxout_stab_value_internal_label_diff, dbxout_stabd) + (dbxout_begin_stabn, dbxout_begin_stabn_sline) + (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc) + (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs) + (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O) + (stabstr_continue, DECL_ACCESSIBILITY_CHAR) + New functions and/or proper function-like macros. + (CONTIN): Use stabstr_continue, unconditionally. + (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED. + (dbxout_init): Initialize stabstr_ob. Check + NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label + if it was used. Use the new interfaces. + (dbxout_source_file): Remove file argument; always write to + asm_out_file. Use the new interfaces. + (dbxout_type_method_1): Remove second argument which is always + DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces. + (dbxout_type_methods): Remove write-only variables. Use the + new interfaces. + (dbxout_parms): Refactor to remove code duplicated in each of + several successive if-else-if blocks. Use the new interfaces. + (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file) + (dbxout_source_line, dbxout_finish, dbxout_type_index) + (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name) + (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location) + (dbxout_symbol_name, dbxout_reg_parms, dbxout_args) + (dbx_output_lbrac, dbx_output_rbrac, dbxout_block): + Use the new interfaces. + * Makefile.in (dbxout.o): Update dependencies. + + * defaults.h: Don't define ASM_STABD_OP. + * output.h: Prototype new dbxout_* interfaces. + * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL. + * varasm.c: Don't define ASM_STABS_OP. + (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor): + Use the new dbxout.c interfaces. Call sorry if neither + DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined. + + * xcoffout.h: Don't define ASM_STABS_OP. + (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS. + (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete. + (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define. + (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to + do { ... } while (0) idiom. + + * config/alpha/alpha.c (num_source_filenames): Export. + * config/alpha/alpha.h (num_source_filenames): Declare. + (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. + (SDB_OUTPUT_SOURCE_LINE): Add missing newline. + * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. + Always use .debugsym. Update commentary. + * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. + (SDB_OUTPUT_SOURCE_LINE): Add missing newline. + * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC): + Use new interfaces. + * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h. + (macho_branch_islands): Use new interfaces. + + * doc/tm.texi: Update. + +2004-10-26 Aldy Hernandez + + * expr.c (emit_group_store): Do not treat floats as BLKmode. + (emit_group_load): Same. + +2004-10-26 Joseph S. Myers + + * c-parse.in (datadef): Use pedwarn rather than error and warning + for diagnostic in case of no declaration specifiers. + +2004-10-26 Richard Sandiford + + PR bootstrap/15747 + * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been + reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh + can be used to work around this. + +2004-10-26 Aldy Hernandez + + * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500 + doubles. + +2004-10-26 Kazu Hirata + + * stmt.c (expand_case): Update a comment. + +2004-10-26 Kazu Hirata + + * stmt.c (expand_case): Put an assertion that index_expr is + never INTEGER_CST. Don't special case for constant + index_expr. + +2004-10-26 Andrew Pinski + + PR 18162 + * c-parse.in (designator): Finish with a semi-colon. + +2004-10-26 Fariborz Jahanian + + * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting + into rotlsi3. + +2004-10-26 Kazu Hirata + + * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with + a default case only. + +2004-10-26 Aldy Hernandez + + * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for + e500 doubles. + (spe_build_register_parallel): New. + (rs6000_spe_function_arg): Handle e500 doubles. + (function_arg): Same. + (spe_func_has_64bit_regs_p): Same. + (rs6000_function_value): Same. + (rs6000_libcall_value): Same. + (legitimate_lo_sum_address_p): Return false for e500 doubles. + + * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500 + doubles. + (DATA_ALIGNMENT): Same. + (CANNOT_CHANGE_MODE_CLASS): Same. + +2004-10-26 Aldy Hernandez + + * expr.c (emit_group_load): Handle floats. + (emit_group_store): Same. + +2004-10-26 Nathan Sidwell + + * c-lex.c (get_nonpadding_token): Remove. + (c_lex_with_flags): Push timevar and eat padding here. Improve + stray token diagnostic. + (lex_string): Replace logic with switch statement, eat padding + token here. + +2004-10-26 Geoffrey Keating + + PR 18149 + * config/i386/darwin.h (ASM_SPEC): Undef it before defining. + +2004-10-25 Geoffrey Keating + + * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches + to 'non-weak'. + (MAKE_DECL_ONE_ONLY): Set DECL_WEAK. + (ASM_MAKE_LABEL_LINKONCE): Delete. + (ASM_WEAKEN_DECL): New. + (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY. + (ASM_DECLARE_FUNCTION_NAME): Likewise. + (TEXT_SECTION_ASM_OP): Add a tab. + (DATA_SECTION_ASM_OP): Likewise. + (SECTION_FUNCTION): Add a tab. Use fputs. Don't call + data_section on every section change. + (EXTRA_SECTIONS): Add a bunch of new extra sections. + (EXTRA_SECTION_FUNCTIONS): Likewise. + (USE_SELECT_SECTION_FOR_FUNCTIONS): Define. + (JCR_SECTION_NAME): Define. + (TARGET_SECTION_TYPE_FLAGS): Don't define. + * config/darwin.c (darwin_encode_section_info): A symbol is defined + in this file if it is not weak. + (textcoal_section): Delete. + (datacoal_section): Delete. + (darwin_make_decl_one_only): Delete. + (machopic_select_section): Handle functions. + (darwin_asm_named_section): Add a tab. + (darwin_section_type_flags): Delete. + (darwin_unique_section): Delete contents. + (darwin_emit_unwind_label): Add a tab. Make decls weak if + DECL_WEAK is set. + * config/darwin-protos.h (darwin_section_type_flags): Delete. + (darwin_make_decl_one_only): Delete. + (text_coal_section): New. + (text_unlikely_section): New. + (text_unlikely_coal_section): New. + (const_coal_section): New. + (data_coal_section): New. + (const_data_coal_section): New. + * varasm.c (function_section): Honour + USE_SELECT_SECTION_FOR_FUNCTIONS. + * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when + TARGET_USES_WEAK_UNWIND_INFO is in effect. + * dbxout.c (dbxout_source_file): Don't change sections while + a function is being output. + +2004-10-25 David Ayers + + * c-common.h: Remove RID_ID. + * c-parse.in: Remove OBJECTNAME and references to RID_ID. + (typespec_reserved_attr): Add rule for TYPENAME + non_empty_protocolrefs. + (yylexname): Remove special handling of RID_ID. + +2004-10-25 James E Wilson + + * doc/invoke.texi (-fcrossjumping): Not enabled at -O. + +2004-10-25 Joseph S. Myers + + PR c/16667 + * c-parse.in (array_designator): New. + (designator): Use it. + (initelt): Only permit array_designator without '=', not ".foo". + +2004-10-25 Kenneth Zadeck + * gcc/Makefile.in: removed ggc for cgraphunit. + * gcc/cgraph.c.dump_cgraph_node: removed static var analysis. + * gcc/cgraph.h: removed static var analysis data structures and calls. + * gcc/cgraphunit.c: + cgraph_mark_local_and_external_functions:changed name to + cgraph_mark_local_functions + (print_order,convert_UIDs_in_bitmap,new_static_vars_info, + cgraph_reset_static_var_maps,get_global_static_vars_info, + get_global_statics_not_read,get_global_statics_not_written,searchc, + cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var, + check_lhs_var,get_asm_expr_operands,process_call_for_static_vars, + scan_for_static_refs,cgraph_characterize_statics_local, + clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics): + removed. + (cgraph_optimize,init_cgraph): removed calls to static vars analysis + * gcc/tree-dfa.c find_referenced_vars: removed call to static vars + analysis + * gcc/tree-flow.h static_vars_info: removed + * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops): + removed calls to static vars analysis. + get_call_expr_operands: removed callee variable. + +2004-10-25 Kazu Hirata + + * cfg.c (unchecked_make_edge, redirect_edge_succ, + redirect_edge_pred): Use VEC_safe_push instead of + VEC_safe_insert. + * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. + +2004-10-25 Kazu Hirata + + * cfgloopmanip.c (loopify): Take two more arguments true_edge + and false_edge. + * cfgloop.h: Adjust the corresponding prototype. + * loop-unswitch.c (unswitch_loop): Adjust a call to loopify. + * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise. + +2004-10-25 Jakub Jelinek + + * dwarf2out.c (rtl_for_decl_location): Avoid segfault if + DECL_INCOMING_RTL is NULL. + +2004-10-25 Steven Bosscher + + * timevar.def (TV_FIND_REFERENCED_VARS): New. + * tree-dfa.c (pass_referenced_var): Use it. + +2004-10-25 Roger Sayle + John David Anglin + + * cse.c: Change encoding of quantity numbers to avoid undefined + pointer arithmetic on qty_table. + (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative. + (get_cse_reg_info): Initialize reg_qty to a unique negative value. + (new_basic_block): Assign "real" quantity numbers from zero. + (delete_reg_equiv): Do nothing if quantity is invalid. Reset the + REG_QTY to its unique negative value. + (merge_equiv_classes): Calculate need_rehash if quantity is valid. + (cse_main): Don't include max_reg when determining max_qty. + (cse_basic_block): Avoid subtracting a large offset from qty_table, + which causes undefined C99 behaviour. Only allocate needed memory. + +2004-10-25 Kazu Hirata + + * stmt.c (expand_case): Remove an obsolete comment. + +2004-10-25 Andrew Pinski + + PR middle-end/17407 + * c-decl.c (grokdeclarator) : Remove the call + layout_type as it is already done by build_array_type. + * tree.c (build_array_type): Layout the type even + +2004-10-25 Alexandre Oliva + + * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0. + +2004-10-25 Alexandre Oliva + + * config/frv/frv.md (movdi, movdf): Handle wide-constant splits + with wider-than-32-bit HOST_WIDE_INTs. + +2004-10-25 David Billinghurst + + * config/mips/mips.c(mips_output_filename): Remove unused + array ltext_label_name + +2004-10-24 Geoffrey Keating + + * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define. + +2004-10-25 Ben Elliston + + * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output. + +2004-10-23 Andrew Pinski + + * predict.c (predict_loops): Call scev_finalize instead of + scev_reset. + +2004-10-24 Kazu Hirata + + * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h, + config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md, + config/sh/ushmedia.h, config/sparc/elf.h, + config/sparc/sp64-elf.h: Update copyright. + +2004-10-24 Kazu Hirata + + * stmt.c (expand_case): Handle the default label outside of + the for loop. Remove code to handle a missing default label. + +2004-10-23 Kazu Hirata + + * dbxout.c (dbxout_function_decl): Don't use + DBX_OUTPUT_FUNCTION_END. + * system.h: Poison DBX_OUTPUT_FUNCTION_END. + * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove. + +2004-10-23 Andrew Pinski + + PR middle-end/17967 + * tree-cfg.c (remove_usless_stmts_cond): Don't Fold statement. + +2004-10-23 Daniel Berlin + + * tree-ssa-dom.c (record_equality): Use loop depth to determine + which way to record the equality as well. + (loop_depth_of_name): New function. + +2004-10-23 Eric Botcazou + + PR middle-end/17793 + * gimplify.c (gimplify_addr_expr) : Look + through the operand if it is a useless type conversion. + +2004-10-23 Ben Elliston + + * cfg.c (remove_edge): Use VEC_unordered_remove. + (redirect_edge_succ): Likewise. + (redirect_edge_pred): Likewise. + * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. + +2004-10-22 Kazu Hirata + + * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR + beyond its end. + +2004-10-22 Eric Christopher + + * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode + saves. + +2004-10-22 Aldy Hernandez + + * config/rs6000/spe.md (spe_extendsfdf2): New. + (movdf_e500_double): New. + (spe_truncdfsf2): New. + (spe_absdf2): New. + (spe_nabsdf2): New. + (spe_negdf2): New. + (sub_adddf3): New. + (spe_subdf3): New. + (spe_muldf3): New. + (spe_floatsidf2): New. + (spe_floatunssidf2): New. + (fix_truncdfsi2): New. + (spe_fixuns_truncdfsi2): New. + + * config/rs6000/rs6000.md (truncdfsf2): Change to expander. + (fpr_truncdfsf2): New. + (negdf2): Change to expander. + (fpr_negdf2): New. + (fpr_nabsdf2): Name pattern. + (adddf3): Change to expander. + (fpr_adddf3): Nem. + (subdf3): Change to expander. + (fpr_subdf3): New. + (muldf3): Change to expander. + (fpr_muldf3): New. + (divdf3): Change to expander. + (fpr_divdf3): New. + (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE. + (cmpdf): Allow for TARGET_E500_DOUBLE. + +2004-10-22 Kazu Hirata + + * c-semantics.c (re_push_stmt_list): Remove. + * c-common.h: Remove the corresponding prototype. + +2004-10-22 Kazu Hirata + + * stmt.c (asm_op_is_mem_input): Remove. + * tree.h: Remove the corresponding prototype. + +2004-10-22 Kazu Hirata + + * tree-gimple.c (is_gimple_constructor_elt): Remove. + * tree-gimple.h: Remove the corresponding prototype. + +2004-10-22 Kazu Hirata + + * varasm.c (get_pool_mode_for_function, get_pool_offset): + Remove. + * rtl.h: Remove the corresponding prototypes. + +2004-10-22 Kazu Hirata + + * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting + edge information when we commit ourselves to threading a + particular jump. + +2004-10-22 Kazu Hirata + + * tree-cfg.c (thread_jumps): Speed up by putting basic blocks + into worklist instead of their indexes. + +2004-10-22 Kazu Hirata + + * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h, + final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def, + lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c, + pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c, + tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c, + tree-scalar-evolution.c, tree-ssa-dom.c, + tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, + tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, + tree-vectorizer.c, vec.h: Fix comment formatting. + +2004-10-22 Kazu Hirata + + * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h, + libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright. + +2004-10-22 Kazu Hirata + + * config/ptx4.h, config/mcore/mcore-pe.h, + config/rs6000/eabi.h, config/vax/elf.h: Update copyright. + +2004-10-22 Peter Barada + + * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro. + * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow + renaming of non-live registers in interrupt functions. + * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype. + +2004-10-22 Zdenek Dvorak + + * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible. + Use integer for loop counter. + (num_ending_zeros): New function. + (number_of_iterations_cond): Use num_ending_zeros. + +2004-10-21 Aldy Hernandez + + * config.gcc: Add support for --enable-e500_double. + + * config/rs6000/e500-double.h: New file. + + * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and + TARGET_E500_DOUBLE. + + * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and + TARGET_E500_DOUBLE. + + * config/rs6000/linuxspe.h: Same. + + * doc/invoke.texi (Option Summary): Document new options for + mfloat-gprs. + (RS/6000 and PowerPC Options): Same. + + * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New + function. + (rs6000_override_options): Use it. Use + SUB3TARGET_OVERRIDE_OPTIONS. + Add 8548 to processor_target_table. + (rs6000_legitimate_address): Handle e500 doubles. + (rs6000_legitimize_address): Same. + (rs6000_legitimize_reload_address): Same. + (rs6000_hard_regno_nregs): Same. + (spe_func_has_64bit_regs_p): Same. + (emit_frame_save): Same. + (gen_frame_mem_offset): Same. + (rs6000_dwarf_register_span): Same. + (rs6000_generate_compare): Same. + (easy_fp_constant): Same. + (legitimate_offset_address_p): Same. + + * config/rs6000/spe.md: (cmdfeq_gpr): New. + (tstdfeq_gpr): New. + (cmpdfgt_gpr): New. + (tstdfgt_gpr): New. + (tstdfgt_gpr): New. + (cmpdflt_gpr): New. + (tstdflt_gpr): New. + Add new constants. + +2004-10-21 Giovanni Bajo + + * config/arc/lib1funcs.asm (___umulsidi3): Fix typo. + +2004-10-21 Zack Weinberg + + * dbxout.c: Remove unnecessary #undefs. + (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER) + (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole + definition into use sites. + (cwd): Make local to dbxout_init. + (dbxout_init): Restructure cwd-using logic for clarity. Use + IS_DIR_SEPARATOR. + * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of + STABS_GCC_MARKER folded in here. + * system.h: Poison now-unused macros. + * doc/tm.texi: Remove documentation of now-unused macros. + +2004-10-21 Andrew Pinski + + PR c/17538 + * c-opts.c (push_command_line_include): Use the current file + name instead of the main one. + +2004-10-21 Andrew Pinski + + PR objc/17923 + * tree.c (staticp): A CONST_DECL has static storage if either + TREE_STATIC or DECL_EXTERNAL is set. + * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can + have null names. + +2004-10-21 Kazu Hirata + + * expr.c (store_expr): Remove dont_store_target. + +2004-10-21 Kazu Hirata + + * tree-cfg.c (thread_jumps): Speed up by using a worklist. + +2004-10-21 Kazu Hirata + + * tree-cfg.c (thread_jumps): Move a part of it to ... + (thread_jumps_from_bb): ... here. + +2004-10-21 David Edelsohn + + * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument. + * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE). + +2004-10-21 Kazu Hirata + + * expr.c (store_expr): Clean up by renaming want_value to + call_param_p. + +2004-10-21 Kaz Kojima + + * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't + fixup pc here. + +2004-10-21 Aldy Hernandez + + PR 18004. + * expmed.c (store_bit_field): Pass original 'value' before + recursing. + +2004-10-21 Nicolas Pitre + + * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling. + * config/arm/ieee754-df.S: Ditto. + +2004-10-20 Zack Weinberg + + * dbxout.c (asmfile): Delete. All uses changed to asm_out_file. + (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE): + Default to 0. + (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined. + When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit + an internal label and an N_SLINE .stabn whose value is the + difference between that label and the function entry label. + (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined, + but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a + label and an N_SO stab with an empty string referring to it. + (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead + of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE. + (dbxout_type_methods, dbxout_symbol): Remove #if 0 block. + (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this + macro is never defined. + * sdbout.c (sdbout_source_line_counter): Delete. + (PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition. + (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes + only two arguments. + * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE. + + * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs. + * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro + definitions (identical to default). + * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h + * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h: + Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not + DBX_OUTPUT_MAIN_SOURCE_FILE_END. + * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h + * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h: + Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE. + * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno. + * config/alpha/alpha.c: Move declaration of num_source_filenames up. + (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE. + (sym_lineno): Delete. + (alpha_output_filename): Do not emit N_SOL stabs here. Remove + now-unused variable. + (alpha_output_lineno): Delete. + * config/mips/mips-protos.h: Don't prototype mips_output_lineno. + * config/mips/mips.c (mips_output_filename): Don't use + ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here. + (mips_output_lineno): Delete. + (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE. + * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and + SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE. + * config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME. + * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE. + * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE. + * config/mmix/mmix.h: Likewise. + * config/mmix/mmix.c (mmix_asm_output_source_line): Delete. + * config/mmix/mmix-protos.h: Don't prototype it. + * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE; + no need to #undef ASM_OUTPUT_SOURCE_LINE. + * config/arm/aout.h: Remove RISCiX-specific definition of + DBX_OUTPUT_MAIN_SOURCE_FILENAME. + * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not + ASM_OUTPUT_SOURCE_LINE. + * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to + DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label. + * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END. + + * doc/tm.texi: Update. + +2004-10-20 Richard Henderson + + * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also. + +2004-10-20 Kelley Cook + + * configure.ac: Revert my previous patch. + * configure: Regenerate. + +2004-10-20 Ben Elliston + + * config/rs6000/rs6000.c + (rs6000_va_start): Use build_va_arg_indirect_ref. + (rs6000_gimplify_va_arg): Likewise. + +2004-10-20 Bryce McKinlay + + PR java/15575 + * configure.ac: Declare AM_LANGINFO_CODESET. + * aclocal.m4: Define AM_LANGINFO_CODESET. + * configure, config.in: Rebuilt. + +2004-10-20 Kazu Hirata + + * expr.c (store_expr): Remove code that is run when + want_value & 1 is nonzero. + +2004-10-20 Mark Mitchell + + * gthr-posix.h (__gthread_active_p): Use __extension__ around cast + from function pointer to void *. + +2004-10-20 Kaz Kojima + + PR target/18032 + * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before + the frame pointer adjustment when exception handling is enabled. + +2004-10-20 Kazu Hirata + + * stor-layout.c: Fix a comment typo. + +2004-10-20 Kazu Hirata + + * expr.c (store_field): Remove two arguments value_mode and + unsignedp. + (expand_assignment, store_constructor_field, + expand_expr_real_1): Adjust calls to store_field. + +2004-10-18 Ramana Radhakrishnan + + * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags. + + PR target/17317 + * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P, + REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid + base and index register for loads. + + * config/arc/t-arc: Fix multilib handling. + +2004-10-20 Hans-Peter Nilsson + + * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, + don't inspect BLOCK_FOR_INSN for barriers. + * emit-rtl.c (emit_barrier_before): Revert last change. + (emit_barrier_after, emit_barrier): Ditto. + + * doc/extend.texi (Extended Asm): Warn and provide example + solution for using a call-clobbered asm register. + (Local Reg Vars): Similar. Cross-reference example. + +2004-10-19 Andrew Pinski + + * tree-cfg.c (group_case_labels): Look at the second to last + case statement for combing with the default case. + +2004-10-19 Richard Hendeson + + PR 17962 + * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors. + +2004-10-19 Richard Hendeson + + * builtins.c (expand_builtin_memmove): If fold_builtin_memmove + succeeds, only expand the result. + +2004-10-19 Richard Hendeson + + PR middle-end/17885 + * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address + of INDIRECT_REF. + +2004-10-19 Kazu Hirata + + * tree-cfg.c (thread_jumps): Use a do-while loop instead of a + loop with goto. + +2004-10-19 Kazu Hirata + + * expr.c (expand_assignment): Remove the last argument. + Change the return type to void. + * expr.h: Update the prototype of expand_assignment. + * function.c (assign_parm_setup_reg): Update a call to + expand_assignment. + * stmt.c (expand_asm_expr): Likewise. + +2004-10-19 Kazu Hirata + + * expr.c (expand_expr_real_1) : Remove + unnecessary assignments to temp. Return const0_rtx. + +2004-10-19 Kaz Kojima + + * config/sh/sh.c (sh5_schedule_saves): Fix typo. + +2004-10-18 Kelley Cook + + * configure.ac (powerpc-*-darwin*): Require assembler to support + .machine directive. + * configure: Regenerate. + +2004-10-18 Kazu Hirata + + * reload1.c (ior_hard_reg_set): Remove. + (finish_spills): Use IOR_HARD_REG_SET instead of + ior_hard_reg_set. + +2004-10-18 Kazu Hirata + + * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting + the currently visited word to right. + +2004-10-18 Eric Botcazou + + PR middle-end/18045 + * expmed.c (expand_smod_pow2): Handle modes whose size + is greater than that of HOST_WIDE_INT. + +2004-10-18 Ziemowit Laski + + * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative. + +2004-10-18 Eric Botcazou + Roger Sayle + + PR middle-end/17813 + * dojump.c (discard_pending_stack_adjust): New function. + (clear_pending_stack_adjust): Call it. + * expr.h (discard_pending_stack_adjust): Declare it. + * explow.c (emit_stack_save): Emit pending stack adjustments + before saving the stack pointer. + (emit_stack_restore): Discard pending stack adjustments before + restoring the stack pointer. + +2004-10-18 Richard Henderson + + * c-common.c (handle_mode_attribute): Allow scalar->vector + type changes yet. + +2004-10-18 Kazu Hirata + + * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a + value to expand_assignment. + +2004-10-18 Kazu Hirata + + * tree-cfg.c (cleanup_tree_cfg): Don't iterate on + thread_jumps. + (thread_jumps): Iterate until no new forwarder block arises. + +2004-10-18 Kazu Hirata + + * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable. + (thread_jumps): Use forwardable as cache of + tree_forwarder_block_p throughout the function. + +2004-10-18 Andreas Krebbel + + * cfg.c (dump_flow_info): Remove redundant dump of reg life info. + +2004-10-18 Andrew Pinski + + PR middle-end/15014 + PR middle-end/16973 + * tree-cfg.c (remove_bb): If we have a label expression in the + basic block and the label we have taken the address, move the + label expression to the basic block which is previous in the + linked list. + (tree_verify_flow_info): Fix printing out the label name of the + problematic label expression. + +2004-10-18 Pat Haugen + + PR rtl-optimization/18002 + * simplify-rtx.c (mode_signbit_p): Externalize function... + * rtl.h (mode_signbit_p): ... to here. + * combine.c (simplify_shift_const): Recognize PLUS signbit as + canonical form of XOR signbit and move to outer op. + +2004-10-18 Diego Novillo + + * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi. + Update all callers. + * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt. + Don't call fold_stmt more than once, use bsi_replace. + +2004-10-18 Diego Novillo + + PR tree-optimization/17656 + * tree-ssa.c (replace_immediate_uses): When replacing a + constant, if the call to fold_stmt produced a different + statement, get an appropriate statement pointer by scanning + STMT's basic block. + +2004-10-18 Richard Henderson + + * pointer-set.c (hash1): Don't use libm functions in fallback case. + +2004-10-18 H.J. Lu + + PR bootstrap/17684 + * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?. + (stage1-start): Remove and copy libunwind.a and + libunwind*$(SHLIB_EXT) instead of libunwind*. + (stage2-start): Likewise. + (stage3-start): Likewise. + (stage4-start): Likewise. + (stageprofile-start): Likewise. + (stagefeedback-start): Likewise. + + * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for + the shared library to be created and don't remove the existing + shared library. + * config/arm/t-netbsd (SHLIB_LINK): Likewise. + * config/i386/t-nwld (SHLIB_LINK): Likewise. + * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. + * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. + * config/sh/t-linux (SHLIB_LINK): Likewise. + * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. + * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. + * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. + * config/t-slibgcc-sld (SHLIB_LINK): Likewise. + + * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s" + files. + +2004-10-18 Kazu Hirata + + * basic-block.h (reg_set_iterator): New. + (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style. + (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise. + (EXECUTE_IF_AND_IN_REG_SET): Likewise. + * caller-save.c (save_call_clobbered_regs): Adjust to the new + style. + * cfgcleanup.c (thread_jump): Likewise. + * cfgrtl.c (safe_insert_insn_on_edge): Likewise. + * conflict.c (conflict_graph_compute): Likewise. + * flow.c (verify_local_live_at_start, update_life_info, + initialize_uninitialized_subregs, propagate_one_insn, + init_propagate_block_info, free_propagate_block_info, + propagate_block, dump_regset): Likewise. + * global.c (global_conflicts): Likewise. + * graph.c (start_bb): Likewise. + * local-alloc.c (update_equiv_regs): Likewise. + * loop.c (load_mems): Likewise. + * reload1.c (compute_use_by_pseudos, order_regs_for_reload, + find_reg, finish_spills): Likewise. + * resource.c (mark_target_live_regs): Likewise. + * sched-deps.c (sched_analyze_insn): Likewise. + * sched-rgn.c (sched-rgn.c): Likewise. + * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. + +2004-10-18 Jakub Jelinek + + * config/i386/i386.md (addqi_1_slp): Test for incdec_operand + operand 1 instead of 2 + +2004-10-18 Kazu Hirata + + * loop-unroll.c: Fix comment typos. + +2004-10-18 Revital Eres + + * Makefile.in (loop-unroll.o): Add VARRAY_H dependency. + * loop-unroll.c: Include varray.h. + (struct var_to_expand, struct opt_info): Rename split_ivs_info to + opt_info and expand it to support variable expansion. + (analyze_insns_in_loop): Rename analyze_ivs_to_split and + expand it to support variable expansion. + (pt_info_start_duplication): Rename si_info_start_duplication. + (apply_opt_in_copies): Rename split_ivs_in_copies and add support + to the variable expansion optimization. + (free_opt_info): Rename free_si_info. + (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p, + expand_var_during_unrolling, insert_var_expansion_initialization, + combine_var_copies_in_loop_exit, release_var_copies, + get_expansion): New functions. + (peel_loop_completely, unroll_loop_constant_iterations, + unroll_loop_runtime_iterations, peel_loop_simple, + unroll_loop_stupid): Change uses of struct si_info + to struct opt_info + and add uses of fvariable-expansion-in-unroller flag. + * params.def: Add parameter to restrict the number of expansions. + * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict + the number of expansions. + * common.opt: (fvariable-expansion-in-unroller): New flag. + * doc/invoke.texi: (fvariable-expansion-in-unroller): Document. + +2004-10-18 Danny Smith + + * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define + __GXX_MERGED_TYPEINFO_NAMES to 0. + +2004-10-17 Hans-Peter Nilsson + + * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, + handle barriers in a bb by checking that it points to a NULL bb. + * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL. + (emit_barrier_after, emit_barrier): Ditto. + +2004-10-18 Joseph S. Myers + + * doc/extend.texi (Attribute Syntax): Clarify details of + attributes on parameters. + +2004-10-17 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of + loop. + +2004-10-17 Andrew Pinski + + Revert: + 2004-10-17 Andrew Pinski + + * c-typeck.c (default_function_array_conversion): Always create + &a[0] for array types. + (build_unary_op): Do not fold &a[x] into a + x. + +2004-10-17 Andrew Pinski + + PR middle-end/17925 + * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic + block if there is a goto with a locus. + +2004-10-17 Kazu Hirata + + * config/elfos.h, config/gofast.h, config/interix.h, + config/netbsd.h, config/svr3.h, config/vxworks.h, + config/alpha/alpha-modes.def, config/alpha/alpha-protos.h, + config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md, + config/alpha/netbsd.h, config/arm/arm-modes.def, + config/arm/unknown-elf.h, config/c4x/c4x-modes.def, + config/cris/aout.h, config/frv/frv-modes.def, + config/i386/beos-elf.h, config/i386/gas.h, + config/i386/i386-coff.h, config/i386/i386-modes.def, + config/i386/linux.h, config/i386/linux64.h, + config/i386/mingw32.h, config/i386/netbsd-elf.h, + config/i386/netbsd64.h, config/i386/sco5.h, + config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md, + config/ia64/ia64-modes.def, config/ia64/itanium1.md, + config/ia64/itanium2.md, config/m68k/m68k-modes.def, + config/mips/mips-modes.def, config/mips/sdb.h, + config/mips/vr.h, config/mips/vxworks.h, + config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, + config/pa/pa32-linux.h, config/rs6000/40x.md, + config/rs6000/7450.md, config/rs6000/8540.md, + config/rs6000/linuxspe.h, config/rs6000/power4.md, + config/rs6000/rs6000-modes.def, config/rs6000/rtems.h, + config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h, + config/s390/s390-modes.def, config/sh/elf.h, + config/sh/sh-modes.def, config/sh/sh64.h, + config/sparc/ultra1_2.md, config/sparc/ultra3.md, + config/stormy16/stormy16.md, config/v850/v850-protos.h, + config/vax/vax.md: Update copyright. + +2004-10-17 Kazu Hirata + + * expr.c (expand_expr_real_1): Remove an obsolete comment. + +2004-10-17 Andrew Pinski + + * c-typeck.c (default_function_array_conversion): Always create + &a[0] for array types. + (build_unary_op): Do not fold &a[x] into a + x. + +2004-10-17 Jakub Jelinek + + * pointer-set.c (hash1): Use integer part of 2^64 / phi + instead 2^32 / phi if long is 64-bit. + +2004-10-17 Joseph S. Myers + + * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and + RID_PTRVALUE. + * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token + declarations. + (reswords): Remove __ptrbase, __ptrbase__, __ptrextent, + __ptrextent__, __ptrvalue and __ptrvalue__. + (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE + entries. + +2004-10-16 Dale Johannesen + + * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table. + +2004-10-16 Zdenek Dvorak + + PR tree-optimization/17766 + * basic-block.h (enum dom_state): DOM_CONS_OK removed. + (dom_info_available_p): Declare. + * cfghooks.c (split_block, make_forwarder_block): Use + dom_info_available_p. + * dominance.c (compute_dom_fast_query, calculate_dominance_info, + free_dominance_info, verify_dominators): Ditto. + (dom_info_available_p): New function. + * tree-cfg.c (cleanup_control_expr_graph): Free dominance information. + (thread_jumps): Use dom_info_available_p. + * tree-complex.c (expand_complex_div_wide): Ditto. + * tree-mudflap.c (mf_build_check_statement_for): Ditto. + +2004-10-16 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates. + (find_best_candidate): Take also important candidates into account. + (find_optimal_iv_set): Initialize important_candidates bitmap. + +2004-10-16 Zdenek Dvorak + + PR tree-optimization/17560 + * predict.c (tree_estimate_probability): Mark irreducible + loops. + +2004-10-16 Zdenek Dvorak + + PR rtl-optimization/17723 + * cfgcleanup.c (merge_memattrs): Handle case when + MEM_SIZE == NULL_RTX. + +2004-10-15 Andrew Pinski + + * toplev.c (dump_file_name): Change type to be const. + +2004-10-15 Joseph S. Myers + + * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use + non_lvalue to stop something being a null pointer constant. + +2004-10-15 Aldy Hernandez + + * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only + available for TARGET_FPRS. + (FUNCTION_VALUE_REGNO_P): Same. + +2004-10-15 Geoffrey Keating + + * doc/invoke.texi (RS/6000 and PowerPC Options): Document + -maltivec in same style as other ISA options. + +2004-10-15 Jon Grimm + + * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__ + definition. + +2004-10-15 Kazu Hirata + + * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h, + collect2.h, conflict.c, coretypes.h, coverage.h, errors.h, + gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c, + genconstants.c, gengenrtl.c, genmodes.c, genpeep.c, + gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c, + gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c, + lists.c, machmode.def, mips-tdump.c, opts.h, params.c, + predict.def, predict.h, protoize.c, reload.h, resource.h, + rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c, + tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c, + unwind-sjlj.c, value-prof.h: Update copyright. + +2004-10-15 Kazu Hirata + + * pointer-set.c, tree-vectorizer.c: Fix comment typos. + +2004-10-15 Diego Novillo + + * tree-optimize.c (execute_one_pass): Stop timer right after + executing the pass. + +2004-10-14 Andrew Pinski + + Revert: + 2004-10-14 Andrew Pinski + PR middle-end/17967 + Revert: + * tree-cfg.c (remove_usless_stmts_cond): Fold statement. + (remove_useless_stmts_1): Fold trees we know how to fold. + +2004-10-14 David Edelsohn + + * configure.ac: Add .machine power4 directive when testing for + mfcr field. + * configure: Regenerate. + +2004-10-14 Geoffrey Keating + + * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define. + +2004-10-14 Andrew Pinski + + * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor + always. + +2004-10-14 Daniel Jacobowitz + + * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS + for 'f' if !TARGET_FPRS. + +2004-10-14 Richard Henderson + + PR debug/14492 + * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR. + +2004-10-14 Richard Henderson + + PR c/17023 + * c-decl.c (store_parm_decls_oldstyle): Care for parameter type + as error_mark_node. + * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null + instaed of current_function_decl non-null. + +2004-10-14 Matt Austern + + * pointer-set.c: New file, special-purpose hash table. + * pointer-set.h: New file. + * tree.h (struct pointer_set_t): Declare as opaque type. + (tree_walk): Last argument is pointer_set_t* now. + * tree-inline.c (WALK_SUBTREE): Convert from htab to pset. + (walk_type_fields): + (walk_tree): Convert from htab_t to pointer_set_t for keeping + track of which nodes have already been visited. + (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t. + * cgraphunit.c (cgraph_create_edges): Likewise. + (cgraph_characterize_statics_local): Likewise. + * tree-dfa.c (collect_dfa_stats): Likewise. + * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is + pointer_set_t* now. + * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise. + * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type + of walk_subtrees is pointer_set_t* now. + * Makefile.in (OBJS-common): add pointer-set.o + (tree-inline.o): Depends on pointer-set.h + (tree-dfa.o): Likewise + (cgraphunit.o): Likewise + +2004-10-14 Geoffrey Keating + + * config/rs6000/darwin.h (ASM_SPEC): Delete. + (TARGET_ASM_FILE_START): Define. + * config/darwin.h (ASM_SPEC): Define. + * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply + -mlong-double-128, it's the default. Update comment about reason + for force_cpusubtype_ALL. + * config/rs6000/darwin-vecsave.asm: Supply .machine. + * config/rs6000/darwin-world.asm: Likewise. + * config/rs6000/rs6000.c (rs6000_darwin_file_start): New. + (symbolic_operand): Delete #if 0ed code. + +2004-10-14 Andrew Pinski + + * stmt.c (add_case_node): Make sure that we have integer + constant before calling tree_int_cst_compare. + +2004-10-14 Andrew Pinski + + PR middle-end/17967 + Revert: + * tree-cfg.c (remove_usless_stmts_cond): Fold statement. + (remove_useless_stmts_1): Fold trees we know how to fold. + +2004-10-14 Joseph S. Myers + + * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS), + config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow + -m64. + +2004-10-14 Ulrich Weigand + + * reload.c (find_reloads): When reloading a PLUS with constant + operand, make sure the constant is pushed to the constant pool + if required. + * config/s390/s390.c (s390_secondary_input_reload_class): Remove + reload bug workaround. + (s390_expand_plus_operand): Likewise. + +2004-10-14 David Edelsohn + + * opts.c (common_handle_option): Do not enable + flag_speculative_prefetching for -fprofile-generate/use. + +2004-10-14 Devang Patel + + PR 17635 + * tree-if-conv.c (process_phi_nodes): Process latch block. + (combine_blocks): Process latch block and update loop structure. + +2004-10-14 Olga Golovanevsky + + * tree-vectorizer.c (vect_generate_tmps_on_preheader): + (vect_update_ivs_after_vectorizer): + (vect_transform_for_unknown_loop_bound): + (tree_duplicate_loop_to_edge): + (allocate_new_names): + (rename_use_op): + (rename_def_op): + (rename_variables_in_bb): + (free_new_names): + (rename_variables_in_loop): + (copy_phi_nodes): + (update_phis_for_duplicate_loop): + (update_phi_nodes_for_guard): + (make_loop_iterate_ntimes): + (tree_duplicate_loop_to_edge_cfg): + (add_loop_guard): + (vect_analyze_loop_with_symbolic_num_of_iters): + (verify_loop_for_duplication): + (vect_gen_niters_for_prolog_loop): + (vect_update_niters_after_peeling): + (vect_update_inits_of_dr): + (vect_update_inits_of_drs): + (vect_build_loop_niters): + (vect_do_peeling_for_alignment): New functions. + (vect_transform_loop): Add unknown and known but indivisible loop + bound support; add peeling for unalignment support. + (vect_analyze_loop_form): Support symbolic number of iterations. + (vect_transform_loop_bound): New input parameter. + (vect_get_loop_niters): Change input parameter type. + (new_loop_vec_info): LOOP_VINFO_NITERS is tree now. + (vectorizable_store): Allow unaligned access. + (vectorize_loops): Add rewrite_into_loop_closed_ssa. + (vect_analyze_data_refs_alignment): Allowed one unaligned + store. + * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined + to use tree. + (LOOP_VINFO_INT_NITERS): New macro. + (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define. + (do_peeling_for_alignment): + (unaligned_drs): New members of _loop_vec_info. + (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro. + +2004-10-14 Ranjit Mathew + + * tree.h (TREE_STRING_POINTER): Wrap in "const char *". + (struct tree_string): Remove "const" qualifier for "str". + +2004-10-14 Ira Rosen + + * tree-vectorizer.c (vect_analyze_data_refs): Call + vect_get_base_and_bit_offset to get memory tag for array ref. + (vect_create_addr_base_for_vector_ref): Remove redundant checks. + +2004-10-14 Richard Earnshaw + + * configure.ac: Use $LN_S for creating symlinks (not $LN). + * configure: Regenerate. + +2004-10-14 Kaveh R. Ghazi + + * doc/install.texi (*-*-solaris2*): Update with info about kernel + patches to solve spurious testsuite failures. + +2004-10-14 Dorit Naishlos + + * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts. + Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode. + (vect_analyze_operations): Make sure the vectorization factor > 1. Add + gcc_assert under ENABLE_CHECKING. + (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to + get_vectype_for_scalar_type). + + (vect_get_vec_def_for_operand): Remove redundant variables. + (vect_transform_loop): Likewise. + +2004-10-14 Richard Sandiford + + * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and + global for -mcaller-super-interworking. + (CALLER_INTERWORKING_SLOT_SIZE): New macro. + * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if + CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does + not need a frame pointer. + (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to + the soft frame pointer offset. + (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking. + * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use + _interwork_{r7,r11}_call_via_rN if some arguments are passed on + the stack. Use frame_pointer_needed to choose between them. + * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions. + (interwork_with_frame): New macro. + (interwork): Add _interwork_{r7,r11}_call_via_rN(). + +2004-10-14 Ben Elliston + + PR other/17900 + * diagnostic.c (trim_filename): Fix logic bug in walking backwards + up the filename looking for a previous directory separator. + +2004-10-14 Joseph S. Myers + + * c-tree.h (enum c_typespec_kind, struct c_typespec, + parser_xref_tag): New. + (struct c_declspecs): Add tag_defined_p. Adjust definition of + typedef_p. + (declspecs_add_type): Adjust prototypes. + * c-parse.in (%union): Add tstype. + (typespec_nonattr, typespec_attr, typespec_reserved_nonattr, + typespec_reserved_attr, typespec_nonreserved_nonattr, + structsp_attr, structsp_nonattr): Change to tstype. Update + actions. + * c-decl.c (build_null_declspecs): Initialize tag_defined_p. + (declspecs_add_type): Update to take struct c_typespec argument. + Set tag_defined_p and typedef_p as appropriate. + (xref_tag): Rename to parser_xref_tag and replace by wrapper. + Update to return struct c_typespec. + (shadow_tag_warned): Don't let empty declarations with qualifiers + or storage class specifiers redeclare a tag if a previous + declaration is visible. + +2004-10-13 Richard Henderson + + PR debug/15860 + * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction + for DECL_INCOMING_RTL. + +2004-10-14 Hans-Peter Nilsson + + PR target/17984 + * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply + trunc_int_for_mode for constants used in shortened mode. + +2004-10-13 Richard Henderson + + PR c/17384 + * c-common.c (handle_mode_attribute): Disallow mode changes that + alter the CODE of the top-level type. + + * crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit + integer from internal limits macros. + * config/i386/mm3dnow.h (__v2sf): Fix base type. + +2004-10-13 Richard Henderson + + PR debug/13841 + * function.c (instantiate_decl): Recurse for CONCAT. + +2004-10-13 David Edelsohn + + * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for + andi./andis. + (anddi3): Same. + (extzvdi_internal1): Add attribute "compare". + (extzvdi_internal2): Same. + +2004-10-12 Tom Tromey + + * doc/md.texi (Insn Canonicalizations): Removed extraneous quote. + +2004-10-13 Dale Johannesen + + * doc/extend.texi (Extended Asm): Rewrite asm volatile description. + +2004-10-13 Frank Ch. Eigler + + * toplev.c (compile_file): Call mudflap_finish_file from here ... + * c-decl.c (c_write_global_declarations): ... instead of here ... + * cp/decl.c (cp_finish_file): ... and here. + * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message. + +2004-10-13 Andrew Pinski + + * tree-ssa-dom.c (record_range): Free the element if we are not + going to use it. + +2004-10-13 Tom Tromey + + PR java/15578: + * gcc.c (option_map): Added --extdirs and --encoding. + +2004-10-13 Eric Botcazou + + PR target/14454 + * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to + sparc_can_output_mi_thunk. + (sparc_output_mi_thunk): Simplify handling of delta offset. Add + handling of vcall offset. + (sparc_can_output_mi_thunk): New predicate. + * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET. + (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete. + (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook. + + * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment. + + * config/sparc/sparc.md (movdi): Remove redundant test. + +2004-10-13 Paolo Bonzini + + * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL, + TDF_IPA from -fdump-tree-*-all. + +2004-10-13 Paul Brook + + * config/arm/arm-protos.h (arm_load_pic_register): Update prototype. + * config/arm/arm.c (thumb_find_work_register): Update comments. + (arm_load_pic_register): Add argument for scratch register. + (arm_expand_prologue, thumb_expand_prologue): Pass extra argument. + * config/arm/arm.md (builtin_setjmp_receiver): Ditto. + +2004-10-13 Kazu Hirata + + * tree-data-ref.c: Fix comment typos. + +2004-10-13 Jakub Jelinek + Zdenek Dvorak + + PR tree-optimization/17724 + * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info. + +2004-10-13 Dorit Naishlos + + * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()). + (altivec_builtin_mask_for_store): Likewise. + (altivec_init_builtins): Use lang_hooks.builtin_function to + create the decls for builtin_altivec_mask_for_load/store. + +2004-10-13 Nick Clifton + + * config/c4x/c4x.c: Remove inclusion of loop.h. + +2004-10-12 Ben Elliston + + * basic-block.h (edge_iterator): Keep the address of VEC(edge) *. + (ei_container): New; renamed. + (ei_start, ei_last): New macros. + (ei_start_1, ei_last_1): Renamed from ei_start. + (ei_last_1, ei_end_p): Use ei_container() where applicable. + (ei_one_before_end_p, ei_next, ei_edge): Likewise. + * gcse.c (remove_reachable_equiv_notes): Use ei_container(). + +2004-10-11 Sebastian Pop + + * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h. + * cfgloop.c (initialize_loops_parallel_p): New. + (flow_loops_find): Initialize the parallel_p field to true for all + the loops. + * tree-ssa-loop-niter.c: Include "tree-data-ref.h". + (estimate_numbers_of_iterations_loop): Infers the loop bounds from + the size of the data accessed in the loop. + (struct nb_iter_bound): Moved... + * cfgloop.h (struct nb_iter_bound): ... here. + (estimated_nb_iterations, parallel_p): New fields in struct loop. + (record_estimate): Declare extern here. + * tree-chrec.c: Fix comments. + (nb_vars_in_chrec): New function. + * tree-chrec.h (nb_vars_in_chrec): Declared here. + * tree-data-ref.c: Don't include lambda.h, that is already included + in tree-data-ref.h. + (tree_fold_divides_p): Don't check for integer_onep. + (tree_fold_bezout): Removed. + (gcd): New static duplicated function. + (int_divides_p, dump_subscript): New. + (dump_data_dependence_relation): Use dump_subscript. + (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations, + estimate_niter_from_size_of_data): New. + (analyze_array_indexes, analyze_array): Call + estimate_niter_from_size_of_data during the detection of array + references. Pass in a pointer to the statement that contains the + array reference. + (all_chrecs_equal_p): New. + (compute_distance_vector): Renamed compute_subscript_distance. + Deal with multivariate conflict functions. + (initialize_data_dependence_relation): Initialize DDR_AFFINE_P, + DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT. + (non_affine_dependence_relation): New. + (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, + analyze_siv_subscript, analyze_miv_subscript, + analyze_overlapping_iterations, subscript_dependence_tester): + Initialize and return last_conflicts function. + (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar, + compute_overlap_steps_for_affine_1_2): New. + (analyze_siv_subscript_affine_cst): Removed. + (analyze_subscript_affine_affine): Disprove dependences based on the + iteration domains. Solve the univariate dependence case as before, + but use lambda_matrix_right_hermite instead of tree_fold_bezout. + Implement the multivariate case of 2 versus 1 variables. + (build_classic_dist_vector, build_classic_dir_vector): Implement some + unhandled cases. + (find_data_references_in_loop): Compute and initialize + loop->estimated_nb_iterations and loop->parallel_p. + (analyze_all_data_dependences): Modify the debug dump order. + * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B, + subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed. + (SUB_LAST_CONFLICT, subscript->last_conflict, + data_dependence_relation->affine_p, data_dependence_relation->size_vect, + DDR_AFFINE_P, DDR_SIZE_VECT): New. + (find_data_references_in_loop, initialize_data_dependence_relation, + dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here. + +2004-10-12 Kelley Cook + + * configure: Regenerate. + +2004-10-12 Fariborz Jahanian + + PR 17892 + * tree-ssa-dom.c (unsafe_associative_fp_binop): New function. + (simplify_rhs_and_lookup_avail_expr): Disallow associativity + and constant folding of floating point MULT_EXPR/PLUS_EXPR + expressions. + +2004-10-12 Ulrich Weigand + + * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref. + (s390_gimplify_va_arg): Likewise. + +2004-10-12 Daniel Jacobowitz + + * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P) + (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P) + (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions. + * regclass.c (record_address_regs): Remove ifdef. Use + REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS. + * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary + definition. + (scan_rtx_address, replace_oldest_value_addr): Use + REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS. + * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove + unnecessary definitions. + (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P + and MODE_BASE_REG_REG_CLASS. + * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed. + (MODE_BASE_REG_REG_CLASS): Define. + (REGNO_MODE_OK_FOR_REG_BASE_P): Define. + (REG_MODE_OK_FOR_REG_BASE_P): Define. + * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS, + REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P. + +2004-10-12 Daniel Berlin + + * tree-ssa-alias.c (verify_name_tags): New function. + (verify_flow_sensitive_alias_info): Remove code that used to check name tags. + (verify_alias_info): Call verify_name_tags. + +2004-10-12 Kazu Hirata + + PR rtl-optimization/17931 + * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with + ZERO_EXTRACT in it. + +2004-10-12 Richard Earnshaw + + * arm.c (arm_print_operand): Use output_operand_lossage where possible + rather than aborting. + +2004-10-12 Paul Brook + + * config.gcc: Add armv6{k,z,zk} + * config/arm/arm-cores.def: Add arm1176 and mpcore. + * config/arm/tune.md: Regenerate. + * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK): + Define. + (all_architectures): Add armv6k, armv6z, armv6zk. + * config/arm/lib1funcs.asm: Recognise new arm arcitectures. + * doc/invoke.texi: Document new arch and cpu values. + +2004-10-12 Paul Brook + + * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to + meabi=4. + +2004-10-12 Paul Brook + + * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints. + Handle negative constants. + +2004-10-12 Joseph S. Myers + + PR c/17301 + * c-typeck.c (convert_arguments): Return error_mark_node if there + are too few arguments. + (build_function_call): Handle error_mark_node return from + convert_arguments. + +2004-10-06 Paolo Bonzini + + * configure.ac (symbolic_link): Replace with $LN_S. + (Assembler/Linker): Hard link from gas and binutils trees. + * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp. + * configure: Regenerate. + +2004-10-12 Paul Brook + + * configure.ac: Don't look for host assembler when building a canadian + cross. + * configure: Regenerate. + +2004-10-11 Roger Sayle + + PR other/17361 + * c-opts.c (permit_fortran_options): Delete/obsolete global variable. + (c_common_init_options): Remove #ifdef CL_F77 code. Scan command + line options for "-lang-asm" and if found allow any of the C-family + front-end options. + (c_common_handle_option): Remove last use of permit_fortran_options. + +2004-10-11 Ulrich Weigand + + * config/s390/s390.c (print_operand): Support 'S' format flag. + * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag. + ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise. + ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise. + ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise. + ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise + ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise. + ("*movstricthi"): Likewise. + ("*load_multiple_di", "*load_multiple_si"): Likewise. + ("*store_multiple_di", "*store_multiple_si"): Likewise. + ("*sethiqisi", "*sethihisi"): Likewise. + ("*sethiqidi_64", "*sethiqidi_31"): Likewise. + ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise. + ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise. + ("*xorqi3", "*xc", "*xc_zero"): Likewise. + ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise. + + ("*tmhi_full"): Fix incorrect op_type attribute. + + ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash. + ("*subdi3_slb_cc", "*subdi3_slb"): Likewise. + ("*addsi3_alc_cc", "*addsi3_alc"): Likewise. + ("*subsi3_slb_cc", "*subsi3_slb"): Likewise. + +2004-10-11 Andrew Pinski + + * config/s390/s390.c (s390_trampoline_template): Generate shorter + trampoline code. + (s390_trampoline_instantiate): Adapt. + * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code. + +2004-10-11 Roger Sayle + + PR middle-end/17657 + * stmt.c (add_case_node): Add additional type argument. Declare + as static to match prototype. Convert the upper and lower bounds + to the specified index type. Optimize away case ranges/values + that are outside the index type's bounds. Truncate case ranges + that span the index type's bounds. + (expand_case): Avoid unnessary computation and memory allocation + when index type is error_mark_node. Pass index_type as required + by change to add_case_node API. No need to convert case range + bounds to index_type, this is now done by add_case_node. + +2004-10-11 Ulrich Weigand + + * config/s390/s390-protos.h (s390_offset_p): Add prototype. + * config/s390/s390.c (s390_offset_p): New function. + * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu", + "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to + transform Q->Q alternatives to *clc pattern. + ("*clc"): Move. + ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa", + "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter + to transform Q->Q alternatives to *mvc pattern. + ("*mvc"): Move. Add peephole to merge adjacent MVCs. + ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch", + "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to + transform Q->Q alternatives to *nc pattern. + ("*nc"): New insn. New peephole to merge adjacent NCs. + ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch", + "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to + transform Q->Q alternatives to *oc pattern. + ("*oc"): New insn. New peephole to merge adjacent OCs. + ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to + transform Q->Q alternatives to *xc pattern. + ("*xc"): New insn. New peephole to merge adjacent XCs. + ("*xc_zero"): Move. Add peephole to merge adjacent XCs. + +2004-10-11 Andrew Pinski + + * gimplify.c (gimple_push_condition): Make sure that we don't + have any saved condition cleanup if we were at the top level. + +2004-10-11 Richard Sandiford + + * config/frv/frv.md (*adddi3_internal): Change name to... + (adddi3): ...replacing the exisiting define_expand. Combine + alternatives. Fix the range of the constant constraints ('J' instead + of 'NOP'). Remove bogus operands[2] check. Use simplify_gen_subreg + to extract the lower and upper halves of the DImode operands. + Always use addi3_lower and adddi3_upper, not the subdi3 forms. + (adddi3_lower): Fix the range of the constant constraints and + remove the bogus operands[2] check. + (adddi3_upper): Use gpr_or_int10_operand as the predicate for + operand 2. Use addxi to handle constant operands. + (subdi3_lower, subdi3_upper): Don't handle constant operands. + +2004-10-11 Nathan Sidwell + + * gengtype-lex.l: Add commented } & ) characters to unconfuse + editor's paren matching. Allow #define inside a struct. + +2004-10-10 Andrew Pinski + + PR middle-end/17703 + part of PR c++/17657 + * fold-const.c (fold_build_cleanup_point_expr): New function. + * tree.h (fold_build_cleanup_point_expr): Prototype. + +2004-10-10 Eric Christopher + + * dwarf2out.c: Move attribute to subprogram declaration + instead of subroutine type. + +2004-10-10 Kazu Hirata + + * basic-block.h: Remove the prototypes for can_hoist_insn_p, + hoist_insn_after, and hoist_insn_to_edge. + * rtl.h: Remove the prototypes for reg_referenced_between_p, + no_jumps_between_p, and insn_dependent_p. + * rtlanal.c (no_jumps_between_p, reg_referenced_between_p, + insn_dependent_p, insn_dependent_p_1, hoist_test_store, + can_hoist_insn_p, hoist_update_store, hoist_insn_after, + hoist_insn_to_edge): Remove. + +2004-10-10 Joseph S. Myers + + PR c/17881 + * c-decl.c (grokparms): Don't warn for parameters of incomplete + type in declarations that are not definitions except for the case + of parameters of void type. + +2004-10-10 Kazu Hirata + + * tree-cfg.c: Fix comment typos. + +2004-10-10 Joseph S. Myers + + PR c/17301 + * builtins.c (expand_builtin_va_start): Check for too few + arguments to va_start. + +2004-10-10 Joseph S. Myers + + PR c/17189 + * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed + fields a pedwarn. Pedwarn here for unnamed structs/unions if + pedantic. + * c-parse.in (component_decl): Don't pedwarn here for unnamed + fields. + +2004-10-09 Zdenek Dvorak + + PR tree-optimization/17906 + * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to + copy non-gimple reg arguments. + +2004-10-09 Roger Sayle + + PR rtl-optimization/17853 + * simplify-rtx.c (simplify_relational_operation): Correct comment. + Reorganize handling of comparison operations with floating point + results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE). + Likewise, introduce support for comparison operations with vector + result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro. + + * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro. + * doc/tm.texi: Likewise. + +2004-10-09 Steven Bosscher + + * regs.h (struct reg_info_def): Remove the last_node_uid and + changes_mode fields. + (REGNO_LAST_NOTE_UID): Don't define. + * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID. + * regmove.c (copy_src_to_dest): Likewise. + +2004-10-09 Roger Sayle + + PR middle-end/17894 + * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the + relational comparison operator op needs to be swapped/reversed when + C1 is negative. i.e. X/-10 < 1 becomes X >= -9, not X < -9. + +2004-10-08 Andrew Pinski + + PR tree-opt/17902 + * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels + instead of bsi_start. + (value_replacement): Likewise. + (abs_replacement): Likewise + +2004-10-09 Steven Bosscher + + * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function. + (expand_gimple_cond_expr, expand_gimple_tailcall, + expand_gimple_basic_block): Use it to dump RTL for each stmt. + (tree_expand_cfg): Announce full RTL function dump. + * tree-optimize.c (execute_one_pass): Use normal RTL printing, + not the graph version. + * tree-pretty-print.c (dump_generic_node): Allow empty statements + in the arms of a COND_EXPR for lowered nodes. + +2004-10-08 Joseph S. Myers + + * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16, + atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64, + strtoufix16, strtoufix32, strtoufix64): Declare. + +2004-10-08 Joseph S. Myers + + * c-lex.c (interpret_float): Give a pedwarn rather than a warning + for an out-of-range floating point constant. + * builtins.c (fold_builtin_inf): Give a pedwarn rather than a + warning if the target format does not support infinities. + +2004-10-08 Kazu Hirata + + * emit-rtl.c (last_label_num, base_label_num): Remove. + (max_label_num): Always return label_num. + (set_new_last_label_num, restore_emit_status): Remove. + (init_emit): Don't initialize last_label_num. + * function.c (pop_function_context_from): Don't call + restore_emit_status. + * function.h: Remove the prototype for restore_emit_status. + * rtl.h: Remove the prototype for set_new_last_label_num. + +2004-10-08 Kazu Hirata + + * stmt.c (expand_decl_init): Remove. + * tree.h: Remove the corresponding prototype. + +2004-10-08 Kazu Hirata + + * integrate.c (try_constants, subst_constants, mark_stores): + Remove. + * integrate.h: Remove the prototype for try_constants. + +2004-10-08 Joseph S. Myers + + * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto. + (convert_for_assignment): Handle ic_argpass_nonproto. Add + comments about its relevance to errors. + (c_convert_parm_for_inlining): Use ic_argpass_nonproto. + +2004-10-08 Andrew Pinski + + PR c/16999 + * c-ppoutput.c (cb_ident): Don't quote string as it is already + quoted. + +2004-10-08 Diego Novillo + + * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate + reference_node_pool. + +2004-10-08 Kazu Hirata + + * tree-cfg.c: Fix a comment typo. + +2004-10-08 Andreas Krebbel + + * config/s390/s390.c (s390_register_info): Don't save fprs for + -msoft-float. + (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float. + +2004-10-08 Ulrich Weigand + + * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define. + (TARGET_DEFAULT): Use symbolic values. + * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine. + (TARGET_DEFAULT): Use symbolic values. + * config/s390/s390.c (s390_backchain_string): Initialize to + TARGET_DEFAULT_BACKCHAIN. + +2004-10-08 Kaveh R. Ghazi + + * builtins.c (expand_builtin_mempcpy): Move tree handling code to + fold_builtin_mempcpy. Accept a type parameter. Delete duplicate + code. + (expand_builtin_strcat): Accept a type parameter. + (fold_builtin_mempcpy): Accept a type and endp parameter. + + * builtins.c (expand_builtin_strncpy): Delete duplicate code. + Accept an `exp' instead of an `arglist'. + +2004-10-08 Nathan Sidwell + + * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert, + reverting my 2004-09-07 patch to use build_int_cst. + +2004-10-08 Eric Botcazou + + PR target/17245 + * config/sparc/sparc.c (input_operand): Remove redundant code + for handling LO_SUM. + (legitimate_address_p) : Do not recheck TARGET_V9. + : If LO_SUM is offsettable, accept it for TFmode on V9. + Otherwise only accept it for TFmode if quad move insns are available. + +2004-10-08 Kazu Hirata + + * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that + common cases will be caught earlier than others. + +2004-10-08 Michael Matz + + * loop-doloop.c (doloop_optimize): Extend count. + +2004-10-08 Kaz Kojima + + * config/sh/sh.md (prefetch_media, prefetch_i4): New insns. + (prefetch): Convert to expander. + +2004-10-08 Kaz Kojima + + * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the + first argument of CALL. + (tls_local_dynamic): Likewise. + +2004-10-08 Joseph S. Myers + + * c-typeck.c (enum impl_conv): New. + (convert_for_assignment): Use it. Take tree for function called + instead of its name. Handle ObjC selectors for diagnostics at + start of function. Select diagnostic text within the function + using full sentences for diagnsotics. Use %qE to name functions + in diagnostics. + (convert_arguments, build_modify_expr, + c_convert_parm_for_inlining, digest_init, c_finish_return): Update + callers to convert_for_assignment. + (warn_for_assignment): Remove. + +2004-10-08 Nick Clifton + + * config/sh/symbian.c (symbian_possibly_export_base_class): + Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with + TYPE_CONTAINS_VPTR_P. + +2004-10-08 Kazuhiro Inaoka + + * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude + fixed registers form all_used_regs. Update call_really_used_regs. + (CALL_REALLY_USED_REGISTERS): Define. + * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs + with call_really_used_regs. + +2004-10-08 Alan Modra + + * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o + for -profile as well as -p and -pg. + +2004-10-07 Andrew Pinski + + * libgcc2.c (__moddi3): Cast &w to UDWtype*. + +2004-10-07 Kazu Hirata + + * tree-cfg.c (tree_block_forwards_to): Remove. + * tree-flow.h: Remove the corresponding prototype. + +2004-10-07 Kazu Hirata + + * tree-flow-inline.h (phi_nodes): Remove an unnecessary check + for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. + +2004-10-07 Geoffrey Keating + + Radar 3813796 + * config/rs6000/rs6000.c (rs6000_generate_compare): When + flag_trapping_math is in effect, don't generate subtract + instructions. + +2004-10-07 Ulrich Weigand + + * config/s390/s390-protos.h (s390_narrow_logical_operator): Add. + * config/s390/s390.c (s390_narrow_logical_operator): New function. + (s390_extra_constraint_str): Add 'A' constraints. + (s390_const_ok_for_constraint_p): Add 'Nx' constraints. + * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint. + (CONSTRAINT_LEN): Likewise. + * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter. + ("*andsi3_zarch", "*andsi3_esa"): Likewise. + ("*andhi3_zarch", "*andhi3_esa"): Likewise. + ("*iordi3"): Add OI alternative and splitter. + ("*iorsi3_zarch", "*iorsi3_esa"): Likewise. + ("*iorhi3_zarch", "*iorhi3_esa"): Likewise. + ("*xordi3"): Add XI alternative and splitter. + ("*xorsi3", "*xorhi3"): Likewise. + +2004-10-07 Richard Sandiford + + * config/mips/mips.c (mips_function_rodata_section): New function. + (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it. + +2004-10-07 Devang Patel + + * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH, + UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB, + UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW, + UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI, + UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI, + UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, + UNSPEC_VCONDU_V16QI): New constant defines. + (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi, + vconduv16qi): New patterns. + * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function. + * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function. + (get_vec_cmp_insn): Same. + (get_vsel_insn): Same. + (rs6000_emit_vector_compare): Same. + (rs6000_emit_vector_select): Same. + (INSN_NOT_AVAILABLE): New. + +2004-10-07 Zdenek Dvorak + + PR tree-optimization/17749 + * tree-tailcall.c (find_tail_calls): Check that parameter is + a gimple_reg. + +2004-10-07 Kazu Hirata + + * config/ia64/ia64.c: Fix a comment typo. + +2004-10-07 Eric Botcazou + + * doc/install.texi (*-*-solaris2*): Fix marker for URL. + +2004-10-07 Giovanni Bajo + + PR c++/17115 + * tree-inline.c (expand_call_inline): Do not warn for functions + marked with attribute noinline. + +2004-10-07 Eric Botcazou + + PR target/17862 + * config/sparc/sparc.c (sparc_output_mi_thunk): Set + current_function_uses_only_leaf_regs as well as sparc_leaf_function_p. + + * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead + of 0 as 4th argument to pass_by_reference. + Call build_va_arg_indirect_ref instead of build_fold_indirect_ref. + +2004-10-06 Eric Christopher + + * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf + attribute. + +2004-10-07 Richard Sandiford + + PR target/17770 + * config/mips/mips.md (mov_l): Remove hazard=none attribute. + +2004-10-07 Zdenek Dvorak + + PR rtl-optimization/17791 + * loop-doloop.c (doloop_modify): Take number of iterations as + argument. + (doloop_optimize): Extend or shorten the number of iterations + when changing mode of counter register. + * loop-iv.c (lowpart_subreg): Export. + * rtl.h (lowpart_subreg): Declare. + +2004-10-07 Zdenek Dvorak + + PR tree-optimization/17806 + * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags. + * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP + flags moved to split_edge. + +2004-10-07 Eric Botcazou + + PR middle-end/17835 + * expmed.c (expand_sdiv_pow2): Force a stack adjustment + before tentatively building the conditional move sequence. + +2004-10-07 Richard Sandiford + + PR target/16815 + * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING + check. + * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of + function_arg_padding. + +2004-10-07 Richard Sandiford + + PR bootstrap/17857 + * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto. + +2004-10-07 Kazu Hirata + + * hooks.c (hook_int_void_1, hook_void_int): Remove. + * hooks.h: Remove the corresponding prototypes. + +2004-10-06 Andrew Pinski + + PR middle-end/17849 + * tree-nested.c (walk_stmt_info): Add changed field. + (convert_nonlocal_reference): Set changed to when we + change a decl to unnested decl. + : Instead of checking if the immediate part + of the ADDR_EXPR changed, check the field changed. + Use recompute_tree_invarant_for_addr_expr instead of unsetting + TREE_INVARIANT. + (convert_local_reference): Set changed to when we + change a decl to unnested decl. + : Instead of checking if the immediate part + of the ADDR_EXPR changed, check the field changed. + Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR. + +2004-10-06 Kazu Hirata + + * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove. + * dwarf2out.c (dwarf2out_init): Remove references to + DWARF2_GENERATE_TEXT_SECTION_LABEL. + * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL. + * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove. + +2004-10-06 Joseph S. Myers + + * c-typeck.c (convert_arguments): Take expression for called + function rather than its name. Handle ObjC selectors directly + rather than relying on warn_for_assignment to do so. Call warning + directly rather than warn_for_assignment. Use %qE in diagnostics. + Say "argument" rather than "arg" in diagnostics. + (build_function_call): Update call to convert_arguments. + +2004-10-06 Andrew Pinski + + PR debug/17787 + * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and + ENUMs specially instead of just saying we do. + +2004-10-06 Eric Christopher + + * dwarf2.h: Sync with include/elf/dwarf2.h + +2004-10-06 Daniel Berlin + + * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO + and TREE_VEC nodes. + +2004-10-06 Daniel Berlin + + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert + to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value. + +2004-10-06 Daniel Berlin + + * lambda-code.c (compute_nest_using_fourier_motzkin): New + function. + (lambda_compute_auxillary_space): Split from here. + +2004-10-06 Daniel Berlin + + * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static. + * tree-flow.h: Add prototype. + * lambda-code.c (invariant_in_loop_and_outer_loops): Use + expr_invariant_in_loop. + +2004-10-06 Kazu Hirata + + * tree-cfg.c (thread_jumps): Remove a duplicate check for + EXIT_BLOCK_PTR. + +2004-10-06 Ulrich Weigand + + * config/s390/s390-protos.h (s_imm_operand): Remove. + (s390_pool_operand): Add prototype. + * config/s390/s390.c (general_s_operand): Remove. + (s_imm_operand): Remove. + (s_operand): Merge contents of general_s_operand. + (s390_pool_operand): New function. + * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand. + * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns. + ("*cmpdi_ccu"): Merge Q->Q alternative. + ("*cmpsi_ccu", "*cmphi_ccu"): Likewise. + ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives. + ("*cli"): Remove. + ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise. + ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise. + ("*movstricthi"): Use memory_operand instead of s_imm_operand. + +2004-10-06 Steve Ellcey + + * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to + call ia64_function_arg_boundary. + * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New. + * config/ia64/ia64.c (ia64_function_arg_boundary): New. + (ia64_function_arg_advance): Do not put 128 bit floats into + FP registers. + +2004-10-06 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strcpy): Delete duplicate code. + Accept an expression instead of an arglist. + (expand_builtin_stpcpy): Accept an expression instead of an + arglist. + +2004-10-06 Eric Botcazou + + PR target/16007 + * doc/install.texi (*-*-solaris2*): Mention potential problem + with Sun assembler + GNU linker and C++ programs. + Document status of binutils 2.15 release. + +2004-10-06 Jan Hubicka + + * cse.c (cse_main): Kill push/pop context. + +2004-10-05 Zack Weinberg + + * pretty-print.c: Include tree.h. + (pp_base_prepare_to_format): New function, logic from + text_specifies_location. + (pp_base_format_text): Use gcc_assert. + * pretty-print.h (pp_prepare_to_format): New macro. + (pp_base_prepare_to_format): Prototype. + * diagnostic.c (text_specifies_location): Delete. + (bug_report_request): Delete. + (diagnostic_set_info): Don't call text_specifies_location. + (diagnostic_action_after_output): Put text from + bug_report_request inline here. Use gcc_unreachable. + (diagnostic_report_current_function): Fix comment. + (diagnostic_report_diagnostic): Clarify logic for error recursion. + Call pp_prepare_to_format before diagnostic_starter. + (trim_filename): Use IS_DIR_SEPARATOR. + (fatal_error, internal_error): Use gcc_unreachable. + (error_recursion): Call diagnostic_action_after_output to + issue the bug_report_request message and exit. + * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies. + + * c-parse.in: Add list of diagnostic messages to insulate + translation template from version of yacc/bison used to + compile the grammar. + +2004-10-06 Alan Modra + + PR 16406 + * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document. + +2004-10-05 Kazu Hirata + + * basic-block.h: Remove the prototype for + flow_preorder_transversal_compute. + * cfganal.c (dfst_node): Remove. + (flow_preorder_transversal_compute): Likewise. + * rtl.h: Remove the prototype for get_jump_table_offset. + * rtlanal.c (get_jump_table_offset): Remove. + +2004-10-05 Richard Henderson + + PR 17756 + * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL. + +2004-10-05 Kelley Cook + + PR bootstrap/17817 + * Makefile.in: Stage the build directory too. + +2004-10-05 Aldy Hernandez + + * config/frv/frv.h (LEGITIMIZE_ADDRESS): New. + + * config/frv/frv-protos.h (frv_legitimize_address): Protoize. + (frv_emit_move): Same. + + * config/frv/frv.c (frv_emit_move): New. + (frv_legitimize_address): New. + + * config/frv/frv.md ("movsi"): Call frv_emit_move. + ("movqi"): Same. + ("movhi"): Same. + ("movdi"): Same. + ("movsf"): Same. + ("movdf"): Same. + +2004-10-05 Joseph S. Myers + + * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in + system headers. + +2004-10-05 Joseph S. Myers + + * c-decl.c (pushdecl): When an extern declaration at block scope + refers to a visible entity with internal linkage, use the old DECL + rather than the new one. + +2004-10-05 Kazu Hirata + + * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in + comments. + +2004-10-05 Kazu Hirata + + * tree-cfg.c (thread_jumps): Remove a duplicate check for + an infinite loop. + +2004-10-05 Kazu Hirata + + * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead + of FOR_BB_BETWEEN. Remove a useless check for unreachable + blocks. + +2004-10-05 Kazu Hirata + + * tree-cfg.c (cleanup_tree_cfg): Don't call + delete_unreachable_blosk() after thread_jumps(). + (thread_jumps): Always remove basic blocks as they become + unreachable. + +2004-10-05 Kazu Hirata + + * tree-cfg.c (cleanup_tree_cfg): Remove variable + something_changed. Simplify the while loop. + +2004-10-05 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memmove): Delete duplicate code + and accept a tree type for the result. + (expand_builtin_bcopy): Accept a tree type for the result. + (fold_builtin_memmove): Accept an arglist and tree type for + the result. + +2004-10-05 Ulrich Weigand + + * config/s390/s390.c (s390_dump_pool): Remove return value. + Use gen_pool_align, gen_pool_section_start/end instead of + gen_pool_start/end_31/64. + * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove. + (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants. + ("pool_start_31", "pool_end_31"): Remove. + ("pool_start_64", "pool_end_64"): Likewise. + ("pool_align", "pool_section_start", "pool_section_end": New insns. + + * config/s390/s390.c (s390_cannot_copy_insn_p): New function. + (TARGET_CANNOT_COPY_INSN_P): Define. + (s390_cannot_force_const_mem): Handle UNSPEC_INSN. + (struct constant_pool): New member 'execute'. + (s390_add_execute, s390_find_execute): New functions. + (s390_execute_label, s390_execute_target): Likewise. + (s390_dump_pool): Output in-pool execute target templates. + (s390_dump_execute): New function. + (s390_alloc_pool, s390_free_pool): Handle execute templates. + (s390_mainpool_start, s390_mainpool_finish): Likewise. + (s390_chunkify_start, s390_chunkify_finish): Likewise. + * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants. + ("*execute"): New insn pattern. + ("movmem_short", "*movmem_short"): Use splitters to generate + explicit execute pattern, remove embedded execute. + ("clrmem_short", "*clrmem_short"): Likewise. + ("cmpmem_short", "*cmpmem_short"): Likewise. + +2004-10-05 Daniel Berlin + + * tree-ssa.c (verify_ssa): Verify phi arguments only + contain renamed names. + +2004-10-05 Alan Modra + + * config/rs6000/linux.h: Formatting, whitespace. + * config/rs6000/linux64.h: Likewise. + * config/rs6000/rs6000-protos.h: Likewise. + * config/rs6000/rs6000.c: Likewise. + (easy_vector_splat_const): Add fall thru comments. + (output_vec_const_move): Likewise. + +2004-10-05 Kelley Cook + + * Makefile.in: Update -Wno-error exceptions for move to build dir. + +2004-10-05 Chao-Ying Fu + Richard Sandiford + + * doc/invoke.texi (-mpaired-single): Link to the new description of the + built-in functions. Document dependencies. + (-mips3d): Add link here too. + * doc/extend.texi (MIPS Paired-Single Support): New section. + +2004-10-04 Chao-ying Fu + + * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define. + +2004-10-04 Diego Novillo + + * tree-ssa-dom.c (tree_ssa_dominator_optimize): + Initialize OPT_STATS to 0. + +2004-10-04 Kazu Hirata + + * tree-data-ref.c: Fix comment typos. + +2004-10-04 Sebastian Pop + + * tree-data-ref.c (array_base_name_differ_p): Fix comments. When + the predicate cannot be computed, don't initialize the result to + false. + +2004-10-01 Eric Christopher + + * dwarf2.h (dwarf_calling_convention): Add GNU prefix to + locally defined enum. + * dwarf2out.c (add_calling_convention_attribute): Don't + emit DW_CC_normal. + +2004-10-03 Andrew Pinski + + PR c/17178, PR c/17820 + * c-decl.c (pop_scope): Do not warn about unused static + variables as they warned in the middle-end. + +2004-10-03 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memcpy): Delete duplicate code + and make the first parameter the expression not the arglist. + +2004-10-03 Ulrich Weigand + + * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode + as valid modes to expand address expressions. + +2004-10-03 Joseph S. Myers + + * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c, + c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c, + c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow + code formatting conventions. + +2004-10-03 Richard Sandiford + + * config/mips/mips.md (mulsidi3_32bit_r4000): Fix unsigned case. + +2004-10-03 Kazu Hirata + + PR tree-optimization/16632 + * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to + fold (A & C) == D into 0, fold ~C. Similarly, for the case + where | is used instead of &. + +2004-10-03 Kazu Hirata + + * ginclude/stddef.h: Fix a comment typo. + +2004-10-03 Eric Botcazou + + PR target/17443 + * config.gcc (i?86-*-solaris2*): Restore correct logic + for --enable-threads option. + (sparc64-*-solaris2*): Likewise. + (sparc-*-solaris2*): Likewise. + +2004-10-03 Alan Modra + + * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define. + (OS_MISSING_POWERPC64): Move, and comment. + * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define. + (OS_MISSING_POWERPC64): Move, and comment. + +2004-10-02 Ian Lance Taylor + + * arm.c (output_call_mem): Add missing \t. + +2004-10-02 Kaveh R. Ghazi + + * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp, + expand_builtin_strncmp): Delete duplicate code. + +2004-10-02 Frank Ch. Eigler + + * tree-mudflap.c (mf_build_check_statement_for): Reorganize to + take check-base and -limit arguments. + (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit + check ranges for ARRAY_REF and COMPONENT_REF. + (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary + instrumentation. + +2004-10-02 Joseph S. Myers + + * c-objc-common.c (c_tree_printer): Correct description of %E. + Don't fall through after printing an expression. + +2004-10-02 Kazu Hirata + + * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos. + +2004-10-02 Kazu Hirata + + * tree-cfg.c (cleanup_tree_cfg): Speed up by calling + delete_unrechable_blocks() only when necessary. + +2004-10-02 P.J. Darcy + + * gthr-tpf.h (__gthread_recursive_mutex_t): New type. + (__GTHREAD_RECURSIVE_MUTEX_INIT): Define. + (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock, + __gthread_recursive_mutex_unlock): New functions. + +2004-10-02 P.J. Darcy + + * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c. + * config/s390/tpf-eh.c: Remove file. + * config/s390/tpf-unwind.h: New file. + * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove. + (MD_UNWIND_SUPPORT): Define. + +2004-10-02 Joseph S. Myers + + * c-typeck.c (warn_for_assignment): Don't permit argnum == 0. + +2004-10-01 Ulrich Weigand + + * config/s390/s390-protos.h (s390_comparison): Add prototype. + * config/s390/s390.c (s390_comparison): New function. + (s390_branch_condition_mask): Return -1 for invalid comparisons. + (s390_branch_condition_mnemonic): Assert valid comparison. + * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison. + * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long", + "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use + s390_comparison instead of comparison_operator. + + * config/s390/s390.md (UNSPEC_CMPINT): New constant. + ("cmpmemdi"): Remove. + ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode. + ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise. + ("cmpint_si"): Rename to ... + ("*cmpint_si"): ... this. Use UNSPEC_CMPINT. + ("cmpint_di", "*cmpint_di"): Likewise. + * config/s390/s390.c (s390_canonicalize_comparison): Remove + redundant UNSPEC_CMPINT conversions. + (s390_expand_cmpmem): Adapt to cmpint pattern changes. + +2004-10-01 Kazu Hirata + + * collect2.c (COLLECT_PARSE_FLAG): Remove. + (main): Remove a reference to COLLECT_PARSE_FLAG + * system.h: Poison COLLECT_PARSE_FLAG. + * doc/tm.texi (COLLECT_PARSE_FLAG): Remove. + +2004-10-01 Paul Brook + + * config/arm/crti.asm: Give _init and _fini function type. + +2004-10-01 Zdenek Dvorak + + * common.opt (ftree-loop-ivcanon): Enable by default. + * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): + Enable complete loop unrolling. + (canonicalize_induction_variables, tree_unroll_loops_completely): + Reset scev info. + +2004-10-01 Paul Brook + + * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask, + not register number. + (thumb_find_work_register): Search full register range. + +2004-10-01 Andrew Pinski + + PR tree-opt/17343 + * tree-cfg.c (group_case_labels): Get the label and not + the case expr for the default case. + When the label we looking at is the default, decrement the + new_size. + +2004-10-01 Jan Hubicka + + * c-decl.c (c_expand_body): Update call tree_rest_of_compilation. + * cgraphunit.c (cgraph_build_static_cdtor): Likewise. + * toplev.h (tree_rest_of_compilation): Update prototype. + * tree-optimize.c (tree_rest_of_compilation): Kill nested_p argument. + +2004-10-01 Kazu Hirata + + * tree-cfg.c (cleanup_tree_cfg): Pull a call to + cleanup_control_flow() out of the while loop. + +2004-10-01 Paolo Bonzini + + * tree-vectorizer.c (vectorizable_operation): Fail unless + the mode for the vector type is indeed a vector mode. + +2004-10-01 Zdenek Dvorak + + * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1, + chrec_fold_multiply): Use fold_convert or build_int_cst_type instead + of convert. + * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, + add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs, + follow_ssa_edge_in_rhs): Ditto. + * tree-ssa-loop-ivopts.c (struct iv): Add base_object field. + (dump_iv): Dump base_object. + (dump_use, dump_cand): Use dump_iv. + (determine_base_object): New function. + (alloc_iv): Initialize base_object field. + (record_use): Clear the ssa_name field of iv. + (get_computation_cost_at): Do not use difference of addresses of + two different objects. + (may_eliminate_iv): Do not require the loop to have just single exit. + * tree-ssa-loop-niter.c (zero_p): Do not check for overflows. + (nonzero_p): New function. + (inverse, number_of_iterations_cond, simplify_using_outer_evolutions, + tree_simplify_using_condition, simplify_using_initial_conditions, + loop_niter_by_eval, find_loop_niter_by_eval, + estimate_numbers_of_iterations_loop, compare_trees, + upper_bound_in_type, lower_bound_in_type, + can_count_iv_in_wider_type_bound): Use buildN instead of build. Use + fold_convert or build_int_cst_type instead of convert. Use (non)zero_p + instead of integer_(non)zerop. + +2004-10-01 Jakub Jelinek + + Revert + 2004-09-29 Jakub Jelinek + + * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD + and TI_VA_LIST_FPR_COUNTER_FIELD. + (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. + * tree-pass.h (pass_stdarg): Add. + * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. + * tree-stdarg.c: New file. + * Makefile.in (OBJS-common): Add tree-stdarg.o. + (tree-stdarg.o): Add dependencies. + * function.h (struct function): Add va_list_gpr_size and + va_list_fpr_size fields. + * function.c (allocate_struct_function): Initialize them. + + * config/i386/i386.c (ix86_build_builtin_va_list): Initialize + va_list_{g,f}pr_counter_field. + (ix86_setup_incoming_varargs): Don't do anything if reg_save + area will not be used. Only save registers that tree-stdarg.c + detected they need saving. + (ix86_va_start): Don't set up fields that won't be used. + + * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize + va_list_{g,f}pr_counter_field. + (setup_incoming_varargs): Don't do anything if reg_save + area will not be used. Only save registers that tree-stdarg.c + detected they need saving. + (rs6000_va_start): Don't set up fields that won't be used. + +2004-09-30 Eric Christopher + + * dwarf2.h (dwarf_calling_convention): Add enum for renesas + sh abi. + * dwarf2out.c (add_calling_convention_attribute): New function. + (gen_subroutine_type_die): Use. + * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook. + * target.h (gcc_target): Add dwarf_calling_convention. + * hooks.c (hook_int_tree_0): New function. + * hooks.h: Prototype. + * config/sh/sh.c: Include dwarf2.h. + (sh_dwarf_calling_convention): New function. + (TARGET_DWARF_CALLING_CONVENTION): Use. + * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document. + +2004-09-30 Kaveh R. Ghazi + + * builtins.c (expand_builtin_strstr, expand_builtin_strchr, + expand_builtin_strrchr, expand_builtin_strpbrk, + expand_builtin_strncat, expand_builtin_strspn, + expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate + code. + +2004-09-30 Ulrich Weigand + + * config/s390/s390-protos.h (s390_expand_logical_operator): Add + prototype. + (s390_logical_operator_ok_p): Likewise. + * config/s390/s390.c (s390_expand_logical_operator): New function. + (s390_logical_operator_ok_p): Likewise. + * config/s390/s390.md ("anddi3"): New expander. + ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative. + ("*anddi3_ss", "*anddi3_ss_inv"): Remove. + ("andsi3"): Use s390_expand_logical_operator. + ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative. + ("*andsi3_ss", "*andsi3_ss_inv"): Remove. + ("andhi3"): New expander. + ("*andhi3_zarch", "*andhi3_esa"): New patterns. + ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove. + ("andqi3"): New expander. + ("*andqi3_zarch", "*andqi3_esa"): New patterns. + ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove. + ("iordi3"): New expander. + ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative. + ("*iordi3_ss", "*iordi3_ss_inv"): Remove. + ("iorsi3"): Use s390_expand_logical_operator. + ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative. + ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove. + ("iorhi3"): New expiorer. + ("*iorhi3_zarch", "*iorhi3_esa"): New patterns. + ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove. + ("iorqi3"): New expiorer. + ("*iorqi3_zarch", "*iorqi3_esa"): New patterns. + ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove. + ("xordi3"): New expander. + ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative. + ("*xordi3_ss", "*xordi3_ss_inv"): Remove. + ("xorsi3"): New expander. + ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative. + ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove. + ("xorhi3"): New expander. + ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative. + ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove. + ("xorqi3"): New expander. + ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative. + ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove. + +2004-09-30 Roger Sayle + + * combine.c (force_to_mode) : Only convert the expression + (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same + machine mode as the result. + +2004-09-30 Ben Elliston + + PR bootstrap/17761 + * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and + FOR_EACH_EDGE macros. + +2004-09-30 Joseph S. Myers + + * c-tree.h (readonly_error): Remove. + * c-typeck (enum lvalue_use): New. + (lvalue_or_else, readonly_error): Use it. All callers changed. + (readonly_error): Make static. + +2004-09-30 Jan Hubicka + + PR debug/13974 + * cfgrtl.c (try_redirect_by_replacing_jump, + force_nonfallthru_and_redirect, commit_one_edge_insertion, + cfg_layout_merge_blocks): Do not attach any line number information + to newly inserted instructions. + * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to + emit_insn_*_noloc. + (emit_*insn_before, emit_insn*_after): New. + (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite + existing locators. + * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare. + (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill. + +2004-09-30 Ulrich Weigand + + * config/s390/s390-protos.h (s390_arg_frame_offset): Remove. + (s390_return_address_offset): Remove. + (s390_can_eliminate): Add prototype. + (s390_initial_elimination_offset): Add prototype. + * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate. + (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset. + * config/s390/s390.c (s390_arg_frame_offset): Remove. + (s390_return_address_offset): Remove. + (s390_can_eliminate, s390_initial_elimination_offset): New functions. + (struct machine_function): New member split_branches_pending_p. + (s390_mainpool_start): Allow nonexistant pool insn for empty pool. + (s390_mainpool_finish): Likewise. Clear base_reg if pool empty. + (s390_optimize_prologue): Remove base_used argument. Call + s390_update_frame_layout instead of s390_register_info. Handle + prologue/epilogue insns that touch only RETURN_REGNUM. + (s390_reorg): Remove base_used. Clear split_branches_pending_p. + (s390_register_info): Remove base_used and return_addr_used + arguments, compute special register usage inline. Return live + register data to caller. + (s390_frame_info): Remove arguments, do not call s390_register_info. + (s390_init_frame_layout): New function. + (s390_update_frame_layout): Likewise. + (s390_emit_prologue): Call s390_update_frame_layout; some code + move to there. Do not emit pool placeholder insn if unnecessary. + +2004-09-30 Ulrich Weigand + + * config/s390/s390.c (legitimate_reload_constant_p): Remove + floating point constant workaround. + (s390_secondary_input_reload_class): Handle PLUS reloads + with too-large constant. + (s390_expand_plus_operand): Likewise. + * config/s390/s390.md ("movdi"): Do not call force_const_mem. + ("movsi"): Likewise. Also, remove workaround for non-general + operands. + ("movdf"): Do not call force_const_mem. + ("movsf"): Likewise. Merge expander with *movsf insn. + ("*movsf"): Remove, merge with movsf expander. + +2004-09-30 Paul Brook + + * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o. + (ENDFILE_SPEC): Define. + * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set. + +2004-09-30 Richard Henderson + + * config/alpha/qrnnd.asm: Mark for noexecstack. + +2004-09-30 Kazu Hirata + + * protoize.c, tree-cfg.c: Fix comment typos. + +2004-09-30 Joseph S. Myers + + PR c/17730 + * c-typeck.c (lvalue_or_else): Pass msgid directly to error. + +2004-09-30 Diego Novillo + + * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of + expressions... + (add_pointed_to_expr): ... here. + Call add_pointed_to_expr for variables with DECL_INITIAL set. + * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any + pointer variable, if set. + +2004-09-30 Kazu Hirata + + * config/sh/sh.c: Follow spelling conventions. + +2004-09-29 Richard Henderson + + * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG. + * doc/tm.texi (DWARF_ZERO_REG): New. + + * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue, + alpha_expand_epilogue): Revert 2003-09-30 change to store zero. + * config/alpha/alpha.h (DWARF_ZERO_REG): New. + +2004-09-29 Ulrich Weigand + + * builtins.c (expand_builtin_strlen): Do not call emit_move_insn + with a PLUS as source operand. + (expand_movstr): Likewise. + (expand_builtin_stpcpy): Likewise. + +2004-09-29 Richard Henderson + + PR 17739 + * tree-gimple.c (is_gimple_reg): Reject hard registers. + (is_gimple_asm_val): New. + * tree-gimple.h (is_gimple_asm_val): Declare. + * gimplify.c (gimplify_asm_expr): Use it. + * tree-pretty-print.c (print_declaration): Dump hard regs. + * tree-outof-ssa.c (check_replaceable): Don't check for hard regs. + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. + * tree-ssa-pre.c (is_undefined_value): Likewise. + * tree-ssa-copy.c (may_propagate_copy): Likewise. + (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER. + * tree-ssa.c (warn_uninit): Likewise. + * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL. + +2004-09-29 Fariborz Jahanian + + * c-decl.c (merge_decls): Use comptype when comparing + types to decide on DECL_SIZE save of olddecl. + +2004-09-29 Daniel Berlin + + * tree.h (INDIRECT_REF_P): New macro. + * alias.c (get_alias_set): Use it + (nonoverlapping_memrefs_p): Ditto. + * emit-rtl.c (mem_expr_equal_p): Ditto. + (set_mem_attributes_minus_bitpos): Ditto. + (is_gimple_addressable): Ditto. + (get_base_address): Ditto. + * tree-ssa-alias.c (find_ptr_derefernece): Ditto. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto. + * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto. + * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto. + * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto. + (add_address_candidates): Ditto. + (rewrite_address_base): Ditto. + +2004-09-30 Ben Elliston + + * tree-flow.h (struct bb_ann_d): Remove num_preds member. + * tree-into-ssa.c (rewrite_into_ssa): Don't set it. + (rewrite_ssa_into_ssa): Likewise. + * tree-phinodes.c (create_phi_node): Access the number of + predecessor edges using EDGE_COUNT() and not num_preds. + +2004-09-29 Joseph S. Myers + + PR c/7425 + * c-decl.c (merge_decls): Merge TREE_DEPRECATED. + +2004-09-29 Eric Christopher + + * fold-const.c (tree_swap_operands_p): Remove duplicated code. + +2004-09-29 Hans-Peter Nilsson + + * config/cris/cris.md (moverside, movemside): With MEM, make sure + the address is (plus reg mem). + +2004-09-29 David Edelsohn + + * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define. + +2004-09-29 Nathan Sidwell + + * tree.c (make_node_stat): Fix uninitialized warning. Replace + cascaded if ... else if with a switch. + +2004-09-29 Aaron W. LaFramboise + + * read-rtl.c (apply_macro_to_string): Replace index with strchr. + +2004-09-29 Jakub Jelinek + + * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD + and TI_VA_LIST_FPR_COUNTER_FIELD. + (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. + * tree-pass.h (pass_stdarg): Add. + * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. + * tree-stdarg.c: New file. + * Makefile.in (OBJS-common): Add tree-stdarg.o. + (tree-stdarg.o): Add dependencies. + * function.h (struct function): Add va_list_gpr_size and + va_list_fpr_size fields. + * function.c (allocate_struct_function): Initialize them. + + * config/i386/i386.c (ix86_build_builtin_va_list): Initialize + va_list_{g,f}pr_counter_field. + (ix86_setup_incoming_varargs): Don't do anything if reg_save + area will not be used. Only save registers that tree-stdarg.c + detected they need saving. + (ix86_va_start): Don't set up fields that won't be used. + + * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize + va_list_{g,f}pr_counter_field. + (setup_incoming_varargs): Don't do anything if reg_save + area will not be used. Only save registers that tree-stdarg.c + detected they need saving. + (rs6000_va_start): Don't set up fields that won't be used. + +2004-09-29 Jakub Jelinek + + * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, + BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE, + BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED, + BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute. + * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2, + ATTR_NONNULL_1_4): New. + +2004-09-29 Jakub Jelinek + + PR tree-optimization/17697 + * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup + cfg if needed. + +2004-09-28 Per Bothner + + * profile.c (branch_prob): Pass correct value to output_location, + even when USE_MAPPED_LOCATION. Fixes bug from 09-11. + +2004-09-28 Richard Henderson + + PR 15089 + * tree-ssa-copy.c (may_propagate_copy_into_asm): New. + * tree-flow.h (may_propagate_copy_into_asm): Declare. + * tree-ssa-ccp.c (replace_uses_in): Use it. + * tree-ssa-dom.c (cprop_operand): Likewise. + +2004-09-28 Jeff Law + + * tree-ssa-threadupdate.c (create_block_for_threading): Request + that no outgoing edges be left in the duplicate block. Do no + update information on outgoing edges or PHI nodes in target + blocks here. + (remove_ctrl_stmt_and_useless_edges): Renamed from + remove_last_stmt_and_useless_edges. Handle case where the + block is empty or has no control statements. Do not update edge + flags here. + (thread_block): Create a template block rather than copying the + original block every time. Create outgoing edges from the + duplicate blocks and update PHIs at the target of the outgoing + edges here. Fix edge flags for the original block if necessary. + * cfghooks (duplicate_block): No longer assert that the original + block has incoming edges. + +2004-09-29 Hans-Peter Nilsson + + * doc/extend.texi (Extended Asm): Add blurb about using Explicit + Reg Vars to enforce register allocation with general constraints. + (Explicit Reg Vars): Clarify relation to asm statements. + (Local Reg Vars): Similar. + +2004-09-28 Ulrich Weigand + + * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK, + TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES, + build_control_flow, new_edge): Remove. + (schedule_insns): Remove edge_table/in_edges/out_edges cleanup. + (bitlst, bitlst_table_last, bitlst_table): Remove. + (bblst): Store basic_block pointer instead of block index. + (bblst_table): Likewise. + (edgelst): Store edge pointer instead of edge index. + (edgelst_table, edgelst_last): New variables. + (extract_bitlst): Rename to ... + (extract_edgelst): ... this. Return edge pointers, not indices. + (split_edges): Update call. + (rgn_edges): Store edge pointers instead of indices. + (edge_to_bit): Remove. + (EDGE_TO_BIT): Store per-region edge index in edge->aux. + (SET_EDGE_TO_BIT): New macro. + (is_cfg_nonregular): Check for simple cases of unreachable blocks. + (find_rgns): Remove edge_list parameter. Traverse standard CFG + data structures instead of haifa_edge et al. Use edge pointers + instead of edge indices everywhere. + (compute_dom_prob_ps): Use standard CFG data structures. Account + for exit edges. + (compute_trg_info): Likewise. + (propagate_deps): Likewise. + (debug_candidate): Account for bblst data structure change. + (check_live_1, update_live_1, is_pfree): Likewise. + (IS_REACHABLE): Use standard CFG data structures. + (init_ready_list): Update bblst_table/edgelst_table allocation. + (schedule_region): Update alloc/cleanup code to data structure + changes. Use edge->aux to store per-region edge index. + (init_regions): No longer call build_control_flow. Do not + create edge list any more. + +2004-09-28 Ulrich Weigand + + * cse.c (cse_insn): Avoid creating direct non-local jumps. + * combine.c (can_combine_p): Likewise. + * local-alloc. (update_equiv_regs): Likewise. + +2004-09-28 Richard Henderson + + PR 17531 + * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls. + Don't check VOIDmode here. Force PLUS operands to common type. + (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of + Pmode if given a non pointer type. + +2004-09-28 Zdenek Dvorak + + PR 17531 + * optabs.c (expand_binop): Force constants to the correct mode. + +2004-09-28 Ulrich Weigand + + * config/s390/s390.c (s390_adjust_cost): Remove. + (TARGET_SCHED_ADJUST_COST): Do not redefine. + (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE. + * config/s390/s390.md ("main_pool"): Use "larl" type + attribute if TARGET_CPU_ZARCH. + +2004-09-28 Jakub Jelinek + + * config/ia64/ia64.c (ia64_expand_prologue): Declare ei + variable. + +2004-09-28 Diego Novillo + + * tree-ssa-loop.c (pass_record_bounds): Do not assign a + name to the pass. + +2004-09-28 Steven Bosscher + + * common.opt (flag_gcse_sm): Disable by default. + (flag_gcse_las): Likewise. + (flag_web): Likewise. Create from this file. + * flags.h: Remove flag_web declaration. + * toplev.c (flag_web): Likewise. + (process_options): Never set flag_web. + +2004-09-28 Steven Bosscher + + * Makefile.in (tree-ssa-propagate.o): Depend on vec.h. + * tree-ssa-propagate.c: Include vec.h. + (interesting_ssa_edges, varying_ssa_edges): Make these VECs + instead of varrays. + (cfg_blocks_add): Assert the block is not already in the worklist. + Update uses of interesting_ssa_edges and varying_ssa_edges. + (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini, + ssa_propagate): Likewise. + +2004-09-28 Joseph S. Myers + + PR c/16409 + * c-decl.c (start_decl): Check for initializing incomplete array + of VLAs. + (build_compound_literal): Check for TYPE being error_mark_node. + * c-parse.in (primary): Check for VLA compound literals. + +2004-09-28 Diego Novillo + + * tree-ssa-live.c (calculate_live_on_entry): Fix warnings + with --disable-checking. + +2004-09-28 Devang Patel + + * tree-pretty-print.c (dump_generic_node): Print vector types. + +2004-09-28 Nick Clifton + + * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an + invocation of the function sh_init_cumulative_args. + (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise. + (INIT_CUMULATIVE_INCOMING_ARGS): Delete. + * config/sh/sh-protos.h: Prototype sh_init_cumulative_args. + * config/sh/sh.c (sh_init_cumulative_args): New function based + on the contents of the old INIT_CUMULATIVE_ARGS macro but with a + heuristic added to determine the setting of force_mem when a + library function is being called. + +2004-09-28 Diego Novillo + + * tree-ssa-loop-im.c (single_reachable_address) : + Skip constant arguments. + +2004-09-28 Diego Novillo + + * tree-ssa-alias.c (create_name_tags): If PTR points to a + volatile type, mark the tag volatile. + (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag + volatile. + +2004-09-28 Andrew Pinski + + * tree.def (vec_cond_expr): Fix. Change 'e' + to tcc_expression. + +2004-09-28 Kazu Hirata + + * basic-block.h: Fix a comment typo. + +2004-09-28 Kazu Hirata + + * optabs.c, optabs.h: Fix comment typos. + +2004-09-28 Eric Botcazou + + * config/sparc/sparc.md (call_address_struct_value_sp32): + Properly mask the immediate field of the 'unimp' instruction. + (call_symbolic_struct_value_sp32): Likewise. + +2004-09-28 Ben Elliston + Steven Bosscher + Andrew Pinski + + Merge from edge-vector-branch: + * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge). + (struct edge_def): Remove pred_next, succ_next members. + (struct basic_block_def): Remove pred, succ members. Add preds + and succs members of type VEC(edge). + (FALLTHRU_EDGE): Redefine using EDGE_SUCC. + (BRANCH_EDGE): Likewise. + (EDGE_CRITICAL_P): Redefine using EDGE_COUNT. + (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New. + (edge_iterator): New. + (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New. + (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise. + (FOR_EACH_EDGE): New. + * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros + where applicable. + (rotate_loop): Likewise. + (find_traces_1_route): Likewise. + (bb_to_key): Likewise. + (connect_traces): Likewise. + (copy_bb_p): Likewise. + (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise. + (add_labels_and_missing_jumps): Likewise. + (fix_up_fall_thru_edges): Likewise. + (find_jump_block): Likewise. + (fix_crossing_conditional_branches): Likewise. + (fix_crossing_unconditional_branches): Likewise. + (add_reg_crossing_jump_notes): Likewise. + * bt-load.c (augment_live_range): Likewise. + * cfg.c (clear_edges): Likewise. + (unchecked_make_edge): Likewise. + (cached_make_edge): Likewise. + (make_single_succ_edge): Likewise. + (remove_edge): Likewise. + (redirect_edge_succ_nodup): Likewise. + (check_bb_profile): Likewise. + (dump_flow_info): Likewise. + (alloc_aux_for_edges): Likewise. + (clear_aux_for_edges): Likewise. + (dump_cfg_bb_info): Likewise. + * cfganal.c (forwarder_block_p): Likewise. + (can_fallthru): Likewise. + (could_fall_through): Likewise. + (mark_dfs_back_edges): Likewise. + (set_edge_can_fallthru_flag): Likewise. + (find_unreachable_blocks): Likewise. + (create_edge_list): Likewise. + (verify_edge_list): Likewise. + (add_noreturn_fake_exit_edges): Likewise. + (connect_infinite_loops_to_exit): Likewise. + (flow_reverse_top_sort_order_compute): Likewise. + (flow_depth_first_order_compute): Likewise. + (flow_preorder_transversal_compute): Likewise. + (flow_dfs_compute_reverse_execute): Likewise. + (dfs_enumerate_from): Likewise. + (compute_dominance_frontiers_1): Likewise. + * cfgbuild.c (make_edges): Likewise. + (compute_outgoing_frequencies): Likewise. + (find_many_sub_basic_blocks): Likewise. + (find_sub_basic_blocks): Likewise. + * cfgcleanup.c (try_simplify_condjump): Likewise. + (thread_jump): Likewise. + (try_forward_edges): Likewise. + (merge_blocks_move): Likewise. + (outgoing_edges_match): Likewise. + (try_crossjump_to_edge): Likewise. + (try_crossjump_bb): Likewise. + (try_optimize_cfg): Likewise. + (merge_seq_blocks): Likewise. + * cfgexpand.c (expand_gimple_tailcall): Likewise. + (expand_gimple_basic_block): Likewise. + (construct_init_block): Likewise. + (construct_exit_block): Likewise. + * cfghooks.c (verify_flow_info): Likewise. + (dump_bb): Likewise. + (delete_basic_block): Likewise. + (split_edge): Likewise. + (merge_blocks): Likewise. + (make_forwarder_block): Likewise. + (tidy_fallthru_edges): Likewise. + (can_duplicate_block_p): Likewise. + (duplicate_block): Likewise. + * cfglayout.c (fixup_reorder_chain): Likewise. + (fixup_fallthru_exit_predecessor): Likewise. + (can_copy_bbs_p): Likewise. + (copy_bbs): Likewise. + * cfgloop.c (flow_loops_cfg_dump): Likewise. + (flow_loop_entry_edges_find): Likewise. + (flow_loop_exit_edges_find): Likewise. + (flow_loop_nodes_find): Likewise. + (mark_single_exit_loops): Likewise. + (flow_loop_pre_header_scan): Likewise. + (flow_loop_pre_header_find): Likewise. + (update_latch_info): Likewise. + (canonicalize_loop_headers): Likewise. + (flow_loops_find): Likewise. + (get_loop_body_in_bfs_order): Likewise. + (get_loop_exit_edges): Likewise. + (num_loop_branches): Likewise. + (verify_loop_structure): Likewise. + (loop_latch_edge): Likewise. + (loop_preheader_edge): Likewise. + * cfgloopanal.c (mark_irreducible_loops): Likewise. + (expected_loop_iterations): Likewise. + * cfgloopmanip.c (remove_bbs): Likewise. + (fix_bb_placement): Likewise. + (fix_irreducible_loops): Likewise. + (remove_path): Likewise. + (scale_bbs_frequencies): Likewise. + (loopify): Likewise. + (unloop): Likewise. + (fix_loop_placement): Likewise. + (loop_delete_branch_edge): Likewise. + (duplicate_loop_to_header_edge): Likewise. + (mfb_keep_just): Likewise. + (create_preheader): Likewise. + (force_single_succ_latches): Likewise. + (loop_split_edge_with): Likewise. + (create_loop_notes): Likewise. + * cfgrtl.c (rtl_split_block): Likewise. + (rtl_merge_blocks): Likewise. + (rtl_can_merge_blocks): Likewise. + (try_redirect_by_replacing_jump): Likewise. + (force_nonfallthru_and_redirect): Likewise. + (rtl_tidy_fallthru_edge): Likewise. + (commit_one_edge_insertion): Likewise. + (commit_edge_insertions): Likewise. + (commit_edge_insertions_watch_calls): Likewise. + (rtl_verify_flow_info_1): Likewise. + (rtl_verify_flow_info): Likewise. + (purge_dead_edges): Likewise. + (cfg_layout_redirect_edge_and_branch): Likewise. + (cfg_layout_can_merge_blocks_p): Likewise. + (rtl_flow_call_edges_add): Likewise. + * cse.c (cse_cc_succs): Likewise. + * df.c (hybrid_search): Likewise. + * dominance.c (calc_dfs_tree_nonrec): Likewise. + (calc_dfs_tree): Likewise. + (calc_idoms): Likewise. + (recount_dominator): Likewise. + * domwalk.c (walk_dominator_tree): Likewise. + * except.c (emit_to_new_bb_before): Likewise. + (connect_post_landing_pads): Likewise. + (sjlj_emit_function_enter): Likewise. + (sjlj_emit_function_exit): Likewise. + (finish_eh_generation): Likewise. + * final.c (compute_alignments): Likewise. + * flow.c (calculate_global_regs_live): Likewise. + (initialize_uninitialized_subregs): Likewise. + (init_propagate_block_info): Likewise. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + * gcse.c (find_implicit_sets): Likewise. + (bypass_block): Likewise. + (bypass_conditional_jumps): Likewise. + (compute_pre_data): Likewise. + (insert_insn_end_bb): Likewise. + (insert_store): Likewise. + (remove_reachable_equiv_notes): Likewise. + * global.c (global_conflicts): Likewise. + (calculate_reg_pav): Likewise. + * graph.c (print_rtl_graph_with_bb): Likewise. + * ifcvt.c (mark_loop_exit_edges): Likewise. + (merge_if_block): Likewise. + (find_if_header): Likewise. + (block_jumps_and_fallthru_p): Likewise. + (find_if_block): Likewise. + (find_cond_trap): Likewise. + (block_has_only_trap): Likewise. + (find_if_case1): Likewise. + (find_if_case_2): Likewise. + * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. + (perfect_nestify): Likewise. + * lcm.c (compute_antinout_edge): Likewise. + (compute_laterin): Likewise. + (compute_available): Likewise. + (compute_nearerout): Likewise. + * loop-doloop.c (doloop_modify): Likewise. + * loop-init.c (loop_optimizer_init): Likewise. + * loop-invariant.c (find_exits): Likewise. + * loop-iv.c (simplify_using_initial_values): Likewise. + (check_simple_exit): Likewise. + (find_simple_exit): Likewise. + * loop-unroll.c (peel_loop_completely): Likewise. + (unroll_loop_constant_iterations): Likewise. + (unroll_loop_runtime_iterations): Likewise. + * loop-unswitch.c (may_unswitch_on): Likewise. + (unswitch_loop): Likewise. + * modulo-sched.c (generate_prolog_epilog): Likewise. + (sms_schedule): Likewise. + * postreload-gcse.c (eliminate_partially_redundant_load): + Likewise. + * predict.c (can_predict_insn_p): Likewise. + (set_even_probabilities): Likewise. + (combine_predictions_for_bb): Likewise. + (predict_loops): Likewise. + (estimate_probability): Likewise. + (tree_predict_by_opcode): Likewise. + (tree_estimate_probability): Likewise. + (last_basic_block_p): Likewise. + (propagate_freq): Likewise. + (estimate_loops_at_level): Likewise. + (estimate_bb_frequencies): Likewise. + * profile.c (instrument_edges): Likewise. + (get_exec_counts): Likewise. + (compute_branch_probabilities): Likewise. + (branch_prob): Likewise. + * ra-build.c (live_in): Likewise. + * ra-rewrite.c (rewrite_program2): Likewise. + * ra.c (reg_alloc): Likewise. + * reg-stack.c (reg_to_stack): Likewise. + (convert_regs_entry): Likewise. + (compensate_edge): Likewise. + (convert_regs_1): Likewise, + (convert_regs_2): Likewise. + (convert_regs): Likewise. + * regrename.c (copyprop_hardreg_forward): Likewise. + * reload1.c (fixup_abnormal_edges): Likewise. + * sbitmap.c (sbitmap_intersection_of_succs): Likewise. + (sbitmap_insersection_of_preds): Likewise. + (sbitmap_union_of_succs): Likewise. + (sbitmap_union_of_preds): Likewise. + * sched-ebb.c (compute_jump_reg_dependencies): Likewise. + (fix_basic_block_boundaries): Likewise. + (sched_ebbs): Likewise. + * sched-rgn.c (build_control_flow): Likewise. + (find_rgns): Likewise. + * tracer.c (find_best_successor): Likewise. + (find_best_predecessor): Likewise. + (tail_duplicate): Likewise. + * tree-cfg.c (make_edges): Likewise. + (make_ctrl_stmt_edges): Likewise. + (make_goto_expr_edges): Likewise. + (tree_can_merge_blocks_p): Likewise. + (tree_merge_blocks): Likewise. + (cfg_remove_useless_stmts_bb): Likewise. + (remove_phi_nodes_and_edges_for_unreachable_block): Likewise. + (tree_block_forwards_to): Likewise. + (cleanup_control_expr_graph): Likewise. + (find_taken_edge): Likewise. + (dump_cfg_stats): Likewise. + (tree_cfg2vcg): Likewise. + (disband_implicit_edges): Likewise. + (tree_find_edge_insert_loc): Likewise. + (bsi_commit_edge_inserts): Likewise. + (tree_split_edge): Likewise. + (tree_verify_flow_info): Likewise. + (tree_make_forwarder_block): Likewise. + (tree_forwarder_block_p): Likewise. + (thread_jumps): Likewise. + (tree_try_redirect_by_replacing_jump): Likewise. + (tree_split_block): Likewise. + (add_phi_args_after_copy_bb): Likewise. + (rewrite_to_new_ssa_names_bb): Likewise. + (dump_function_to_file): Likewise. + (print_pred_bbs): Likewise. + (print_loop): Likewise. + (tree_flow_call_edges_add): Likewise. + (split_critical_edges): Likewise. + (execute_warn_function_return): Likewise. + (extract_true_false_edges_from_block): Likewise. + * tree-if-conv.c (tree_if_conversion): Likewise. + (if_convertable_bb_p): Likewise. + (find_phi_replacement_condition): Likewise. + (combine_blocks): Likewise. + * tree-into-ssa.c (compute_global_livein): Likewise. + (ssa_mark_phi_uses): Likewise. + (ssa_rewrite_initialize_block): Likewise. + (rewrite_add_phi_arguments): Likewise. + (ssa_rewrite_phi_arguments): Likewise. + (insert_phi_nodes_for): Likewise. + (rewrite_into_ssa): Likewise. + (rewrite_ssa_into_ssa): Likewise. + * tree-mudflap.c (mf_build_check_statement_for): Likewise. + * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise. + (rewrite_trees): Likewise. + * tree-pretty-print.c (dump_bb_header): Likewise. + (dump_implicit_edges): Likewise. + * tree-sra.c (insert_edge_copies): Likewise. + (find_obviously_necessary_stmts): Likewise. + (remove_data_stmt): Likewise. + * tree-ssa-dom.c (thread_across_edge): Likewise. + (dom_opt_finalize_block): Likewise. + (single_incoming_edge_ignoring_loop_edges): Likewise. + (record_equivalences_from_incoming_edges): Likewise. + (cprop_into_successor_phis): Likewise. + * tree-ssa-live.c (live_worklist): Likewise. + (calculate_live_on_entry): Likewise. + (calculate_live_on_exit): Likewise. + * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. + (copy_loop_headers): Likewise. + * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. + (fill_always_executed_in): Likewise. + * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. + * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise. + (compute_phi_arg_on_exit): Likewise. + * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise. + (get_loops_exit): Likewise. + (split_loop_exit_edge): Likewise. + (ip_normal_pos): Likewise. + * tree-ssa-loop-niter.c (simplify_using_initial_conditions): + Likewise. + * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise. + (replace_phi_with_stmt): Likewise. + (value_replacement): Likewise. + * tree-ssa-pre.c (compute_antic_aux): Likewise. + (insert_aux): Likewise. + (init_pre): Likewise. + * tree-ssa-propagate.c (simulate_stmt): Likewise. + (simulate_block): Likewise. + (ssa_prop_init): Likewise. + * tree-ssa-threadupdate.c (thread_block): Likewise. + (create_block_for_threading): Likewise. + (remove_last_stmt_and_useless_edges): Likewise. + * tree-ssa.c (verify_phi_args): Likewise. + (verify_ssa): Likewise. + * tree_tailcall.c (independent_of_stmt_p): Likewise. + (find_tail_calls): Likewise. + (eliminate_tail_call): Likewise. + (tree_optimize_tail_calls_1): Likewise. + * tree-vectorizer.c (vect_transform_loop): Likewise. + * var-tracking.c (prologue_stack_adjust): Likewise. + (vt_stack_adjustments): Likewise. + (vt_find_locations): Likewise. + * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. + * config/i386/i386.c (ix86_pad_returns): Likewise. + * config/ia64/ia64.c (ia64_expand_prologue): Likewise. + * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. + +2004-09-28 Eric Botcazou + + PR target/16532 + * config/sparc/sparc.c (struct machine_function): New field + 'leaf_function_p' and 'prologue_data_valid_p'. + (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro + to conveniently access the above fields. + (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete. + (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead + of the generic flavor 'current_function_uses_only_leaf_regs'. + (eligible_for_sibcall_delay): Likewise. + (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set + 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'. + (sparc_asm_function_prologue): Add sanity check for the assumption + made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'. + (sparc_can_use_return_insn_p): New function. + (sparc_expand_epilogue): Use 'sparc_leaf_function_p'. + (output_restore): Likewise. + (output_sibcall): Likewise. + (sparc_output_mi_thunk): Likewise. + * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare. + * config/sparc/sparc.md (return): New expander. + + * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak. + +2004-09-27 Mark Mitchell + + PR c++/17642 + * stor-layout.c (layout_decl): Use fold_convert, not convert. + (bit_from_pos): Likewise. + (byte_from_pos): Likewise. + (pos_from_bit): Likewise. + (normalize_offset): Likewise. + (place_field): Likewise. + (finalize_type_size): Likewise. + (layout_type): Likewise. + * tree.c (build_index_type): Likewise. + +2004-09-27 Devang Patel + + * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR. + * genopinit.c (optabs): New entry for vcond_gen_code and + vcondu_gen_code. + * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs. + (get_rtx_code): New function. + (vector_compare_rtx): New function. + (init_optabs): Initialize vcond_gen_code and vcondu_gen_code. + (expand_vec_cond_expr_p): New function. + (expand_vec_cond_expr): New function. + (get_vcond_icode): New function. + * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs. + (vcond_gen_code, vcondu_gen_code): Same. + +2004-09-27 Kelley Cook + + * Makefile.in (STAGESTUFF): Split into ... + (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these. + (mostlyclean): Update. + (stage1-start, stage2-start, stage3-start, stage4-start, + stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF. + Move the STAGEMOVESTUFF. + +2004-09-27 Eric Botcazou + + * system.h (getpagesize): Return 'int' instead of 'long'. + +2004-09-27 Michael Matz + + PR bootstrap/17698 + PR bootstrap/17702 + * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init, + bmp_iter_and_init): Shift by bit_in_word. + +2004-09-27 Kelley Cook + + * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4. + * configure.ac: Don't sinclude it here. + * configure: Regenerate. + +2004-09-27 Dorit Naishlos + + * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand): + Handle AND pattern + +2004-09-27 Joseph S. Myers + + PR c/13804 + * c-typeck.c (build_component_ref): Name type involved in + diagnostic for structure or union without a member of the given + name. + +2004-09-27 DJ Delorie + + * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common): + .comm alignment is bytes, not bits. + +2004-09-27 Devang Patel + + * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR. + (print_call_name): Do not print VEC_COND_EXPR. + +2004-09-27 Devang Patel + + * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR. + +2004-09-27 Jan Hubicka + + * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5. + +2004-09-27 Kazu Hirata + + * bitmap.h: Fix a comment typo. + +2004-09-27 Aaron W. LaFramboise + + * libgcc2.c (getpagesize): Change type of return value to int. + +2004-09-26 Matt Austern + + * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're + using mmap. + +2004-09-26 Zdenek Dvorak + + * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP, + EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style. + (bitmap_iterator): New type. + (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init, + bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1, + bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1, + bmp_iter_and_init, bmp_iter_and_next): New functions. + * basic-block.h (EXECUTE_IF_SET_IN_REG_SET, + EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to + use iterator-style EXECUTE_IF_IN_BITMAP macros. + * bitmap.c (bitmap_print): Ditto. + * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range, + btr_def_live_range): Ditto. + * cfganal.c (compute_dominance_frontiers_1) Ditto. + * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics): + Ditto. + * ddg.c (build_inter_loop_deps): Ditto. + * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update): + Ditto. + * except.c (remove_eh_handler): Ditto. + * flow.c (reg_set_to_hard_reg_set): Ditto. + * gcse.c (clear_modify_mem_tables): Ditto. + * global.c (build_insn_chain): Ditto. + * ifcvt.c (dead_or_predicable): Ditto. + * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg): + Ditto. + * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto. + * ra-rewrite.c (reloads_to_loads, rewrite_program2, + detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto. + * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region, + tree_purge_all_dead_eh_edges): Ditto. + * tree-into-ssa.c (compute_global_livein, insert_phi_nodes, + insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags, + rewrite_ssa_into_ssa): Ditto. + * tree-outof-ssa.c (find_replaceable_exprs): Ditto. + * tree-sra.c (scan_function, decide_instantiations, scalarize_parms): + Ditto. + * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape, + compute_flow_sensitive_aliasing, maybe_create_global_var, + dump_points_to_info_for): Ditto. + * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto. + * tree-ssa-dse.c (dse_finalize_block): Ditto. + * tree-ssa-live.c (live_worklist, calculate_live_on_entry, + calculate_live_on_exit, build_tree_conflict_graph, dump_live_info): + Ditto. + * tree-ssa-loop-ivopts.c (find_induction_variables, + find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map, + determine_use_iv_costs, determine_set_costs, find_best_candidate, + set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data): + Ditto. + * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto. + * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, + add_call_read_ops): Ditto. + * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto. + +2004-09-26 John David Anglin + + * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT, + UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons. + +2004-09-26 Ulrich Weigand + + * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to + reflect size of memory regions being compared. + +2004-09-26 Ulrich Weigand + + * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR + expressions. Always clear MEM_SIZE and alias set. + +2004-09-26 Roger Sayle + Giovanni Bajo + + PR middle-end/17112 + * stor-layout.c (compute_record_mode): For records with a single + field, only use the field's mode if its size matches what we'd + have choosen for the record ourselves. This forces the use of + BLKmode for packed records that don't completely fill a mode. + +2004-09-26 Roger Sayle + + PR middle-end/17151 + * combine.c (force_to_mode): Remove dubious early return test that + inhibits further optimization. + +2004-09-26 Kazu Hirata + + * profile.c: Fix a comment typo. + +2004-09-26 Zdenek Dvorak + + PR bootstrap/17591 + * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs + with varying offset. + * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function. + (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for + ARRAY_REFS. + (expr_invariant_in_loop_p): New function. + (idx_find_step): Handle step and lower bound for ARRAY_REFs. Handle + component_ref_field_offset for COMPONENT_REFs. Do not allow + ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs. + (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and + MISALIGNED_INDIRECT_REFs. + (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs. + (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and + MISALIGNED_INDIRECT_REFs. + +2004-09-26 Joseph S. Myers + + PR c/11459 + * gcc.c (cpp_options, cc1_options): Preserve relative order of + -std and -ansi options. + +2004-09-26 Jan Hubicka + + * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die + for nested functions whose proper parent has not been output. + + * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes + when re-constructing profile previously invalidated by loop. + +2004-09-25 Dale Johannesen + + * tree-gimple.c: Move GIMPLE definition... + * doc/tree-ssa.texi: here. + +2004-09-25 Kazu Hirata + + * tree-vectorizer.c: Fix a comment typo. + +2004-09-25 Kazu Hirata + + * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c, + gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h, + lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c, + tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting. + +2004-09-25 Kazu Hirata + + * tree-ssa-loop-unswitch.c: Fix a comment typo. + +2004-09-25 Kazu Hirata + + * doc/passes.texi: Fix a typo. + +2004-09-25 Zdenek Dvorak + + * tree-optimize.c (init_tree_optimization_passes): Add + pass_record_bounds. + * tree-pass.h (pass_record_bounds): Declare. + * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds): + New pass. + +2004-09-25 Zdenek Dvorak + + PR tree-optimization/17474 + * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine + offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0. + +2004-09-25 Jan Hubicka + + * predict.c (counts_to_freqs): Make global. + * predict.h (counts_to_freqa): Declare. + * profile.c (compute_branch_probabilities): Compute frequencies + * tree-profile.c (do_tree_profiling): Refine conditional on when + tree profiling pass is needed. + + * passes.c (rest_of_handle_cfg): Disable const/pure function + detection when doing tree based profiling. + + * tree-inline.c (expand_call_inline): Fix incorrectly reversed + conditional. + +2004-09-25 Richard Sandiford + + * config/mips/mips.h (struct mips_args): Clarify comments. + * config/mips/mips.c (struct mips_arg_info): Likewise. + (mips_arg_info): Don't allow fpr_p to affect the register or + stack alignment. Remove o64 silliness. + (function_arg): Deal with the o32 float,float case specially. + +2004-09-25 Richard Sandiford + + * config/mips/mips.md (loadx, storex): Define for V2SF. + +2004-09-25 Ulrich Weigand + + * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype. + * config/s390/s390.c (s390_back_chain_rtx): New function. + * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx. + Call anti_adjust_stack. + ("restore_stack_block"): Use s390_back_chain_rtx. Enable pattern + only if compiling with back chain. + ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore + back chain only if back chain enabled. Use s390_back_chain_rtx. + +2004-09-25 Joseph S. Myers + + * doc/trouble.texi: Remove obsolete information. Update + information on how to regenerate fixincluded headers. + +2004-09-25 Joseph S. Myers + + PR c/12951 + * doc/invoke.texi: Document that + -Wno-error-implicit-function-declaration is not accepted. + +2004-09-24 Richard Henderson + + * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New. + * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend + on TARGET_MAX. + (alpha_expand_mov): Allow unaligned vectors. + (alpha_expand_unaligned_store): Use CONST0_RTX. + (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. + +2004-09-24 Jeff Law + + * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict + aliasing rules. + (simplify_cond_and_lookup_avail_expr): Likewise. + +2004-09-24 Joseph S. Myers + + PR c/12802 + * doc/extend.texi (Unnamed Fields): Remove "." from end of long + title. Document interaction with -fms-extensions. + * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields + section. + +2004-09-24 Joseph S. Myers + + PR c/12713 + * doc/extend.texi: Document interaction of attribute noreturn and + longjmp. + +2004-09-24 Richard Henderson + + PR rtl-opt/17503 + * regclass.c (subregs_of_mode): Turn into an htab. Make static. + (som_hash, som_eq): New. + (init_subregs_of_mode, record_subregs_of_mode): New. + (cannot_change_mode_set_regs): Rewrite for htab implementation. + (invalid_mode_change_p): Likewise. + * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode. + * flow.c (mark_used_regs): Likewise. + (life_analysis): Use init_subregs_of_mode. + * regs.h (subregs_of_mode): Remove. + * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare. + +2004-09-24 Andrew Pinski + + * tree-ssa-phiopt.c (conditional_replacement): Use the correct + type with the copy of the conditional. + +2004-09-24 Andrew Pinski + + PR tree-opt/16954 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Prevent renaming if the aliasing sets of the type which the + pointer points to are different. + +2004-09-24 Joseph S. Myers + + PR c/17188 + * c-decl.c (diagnose_mismatched_decls): Check for duplicate + declarations of enumerators. + (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check + for redefinition. Check for nested redefinition. + (finish_struct): Don't check for nested redefinition. + (start_enum): Check for nested redefinition. + +2004-09-24 Devang Patel + + * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable + only when necesssary. + (combine_blocks): Combine loop header and exit block. + +2004-09-24 Paolo Bonzini + + * hooks.c (hook_tree_tree_bool_null): New. + * hooks.h (hook_tree_tree_bool_null): Declare it. + * target-def.c (TARGET_FOLD_BUILTIN): Point to it. + * targhooks.c (default_fold_builtin): Remove. + * targhooks.h (default_fold_builtin): Remove. + +2004-09-24 Zdenek Dvorak + + PR rtl-optimization/17625 + * loop-doloop.c (doloop_modify): Unshare rtl before emitting it. + +2004-09-24 Andrew Pinski + + PR tree-opt/17624 + * tree-ssa-forwprop.c (record_single_argument_cond_exprs): + Reject if any of the operands occur in an abnormal PHI. + +2004-09-24 Andreas Schwab + + * tree-ssa-dom.c (record_range): Fix violation of strict aliasing + rules. + +2004-09-24 Eric Botcazou + + * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h + if the GNU assembler is used. + (sparc-*-solaris2*): Likewise. + * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero. + (dbxout_function_end): Protect N_ENSYM with it. + (dbxout_begin_prologue): Protect N_BNSYM with it. + * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it. + * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1. + * config/sparc/sol2-gas.h: New file. + +2004-09-23 H.J. Lu + + PR bootstrap/17369 + * Makefile.in (@set_gcc_lib_path@): Added. + + * configure.ac: Include ../config/gcc-lib-path.m4. Use + TL_AC_GNU_MAKE_GCC_LIB_PATH. + * configure: Regenerated. + +2004-09-24 Joseph S. Myers + + PR c/6980 + * c-typeck.c (build_c_cast): Improve wording of + -Wbad-function-cast diagnostic. + +2004-09-23 Hans-Peter Nilsson + + PR target/17626 + * config/cris/cris.md (moverside, movemside): Rename variable + "reg" to "otherop". To generate canonical RTX, check that otherop + isn't constant instead of checking that operand 1 is a register. + +2004-09-23 Jakub Jelinek + + * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR. + +2004-09-23 Diego Novillo + Jakub Jelinek + + * tree-flow.h (find_new_referenced_vars): Add prototype. + * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars): + Move to... + * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars): + ... here. + (mark_new_vars_to_rename): Walk through all operands. + * tree-ssa-ccp.c (convert_to_gimple_builtin): New function. + (execute_fold_all_builtins): Use it. + (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish. + +2004-09-23 P.J. Darcy + + * gthr-tpf.h: New file. + * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'. + * gthr.h: Use gthr-tpf.h on TPF OS. + +2004-09-23 Jeff Law + + * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather + than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV. + (substitute_and_fold): Likewise. + * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything + except invariants from SSA_NAME_VALUE. + (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV + and SET_SSA_NAME_EQUIV. + (restore_vars_to_original_value, record_const_or_copy): Likewise. + (record_equivalences_from_phis, record_const_or_copy_1): Likewise. + (record_equality, cprop_into_successor_phis): Likewise. + (record_equivalences_from_stmt, cprop_operand): Likewise. + (lookup_avail_expr): Likewise. + * tree-ssa-pre.c (fini_pre): Remove everything except invariants + from SSA_NAME_VALUE. + * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill. + (struct tree_ssa_name): Kill EQUIV field. Remove GGC skip + annotation from the VALUE_HANDLE field. + +2004-09-21 Fariborz Jahanian + + PR c++/13989 + PR c++/9844 + * tree.c (reconstruct_complex_type): Remove extra "this". + * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): + Add V4SFmode to case statement. + +2004-09-23 Joseph S. Myers + + PR c/16833 + * doc/extend.texi, doc/invoke.texi: Document interaction of + -fno-builtin with format checks. Note that built-in functions + have effects beyond generating code that avoids calls to those + functions. + +2004-09-23 Frank Ch. Eigler + + PR tree-optimization/17533 + * dominance.c (verify_dominators): Tolerate even more incorrect + dominance data during error message printing. + * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks + and edges more correctly. + +2004-09-23 Dorit Naishlos + + * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): + New tree-codes. + * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and + MISALIGNED_INDIRECT_REF. + * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise. + * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos): + Likewise. + * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base) + (find_interesting_uses_address): Likewise. + * fold-const.c (non_lvalue, operand_equal_p): Likewise. + (build_fold_addr_expr_with_type): Likewise. + * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise. + * print-rtl.c (print_mem_expr): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + * tree-eh.c (tree_could_trap_p): Likewise. + * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. + * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise. + * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by): + Likewise. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. + * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. + * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise. + * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise. + (add_address_candidates, rewrite_address_base): Likewise. + * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands): + Likewise. + * tree.c (staticp, build1_stat): Likewise. + + * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes. + * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * expr.c (expand_expr_real_1): Likewise. + + * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New + optabs. + (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values + for the new optabs. + (expand_ternary_op): New function. + * genopinit.c (optabs): Handle the new optabs. + * optabs.c (optab_for_tree_code): Add cases for the new tree-codes. + (init_optabs): Initialize vec_realign_load_optab. + (expand_ternary_op): New functions. + + * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target. + (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize. + (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise. + (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise. + * target.h (struct vectorize): New member for struct gcc_target. + (misaligned_mem_ok): New member for targetm.vectorize. + (builtin_mask_for_load): Likewise. + (builtin_mask_for_store): Likewise. + * targethooks.c (default_vect_misaligned_mem_ok): New function. + * targethooks.h (default_vect_misaligned_mem_ok): New function. + + * config/rs6000/altivec.md (build_vector_mask_for_load): New + define_expand. + (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi) + (vec_realign_load_v16qi): New define_insn. + * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD): + (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins. + * config/rs6000/rs6000.c (altivec_builtin_mask_for_load): + (altivec_builtin_mask_for_store): New variables. + (rs6000_builtin_mask_for_load): New function. Implements + TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD. + (rs6000_builtin_mask_for_store): New function. Implements + TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE. + (rs6000_expand_builtin): Expand the target builtins + builtin_mask_for_load and builtin_mask_for_store. + (altivec_init_builtins): Initialize the new target builtins. + * config/i386/i386.c (ix86_misaligned_mem_ok): New function. + Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK. + + * tree-vectorizer.c (vect_create_data_ref): Renamed to + vect_create_data_ref_ptr. Returns a pointer instead of an array-ref. + (vect_create_addr_base_for_vector_ref): Additional argument (offset). + (vectorizable_store): Call vect_create_data_ref_ptr with additional + arguments, and create an indirect_ref with its return value data_ref. + Check aligned_access_p. + (vectorizable_load): Handle misaligned loads, using software-pipelined + scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if + vec_realign_load_optab is supported, or using a scheme without + software-pipelining with MISALIGNED_INDIRECT_REF if the target hook + misaligned_mem_ok is supported. + + (vect_finish_stmt_generation): Typo. + (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info. + (vect_analyze_data_refs_alignment): Don't fail vectorization in the + presence of misaligned loads. + (vect_analyze_data_ref_access): Add check for constant init. + (vect_get_symbl_and_dr): Remove duplicate line. + * tree-vectorizer.h (DR_MISALIGNMENT): Add comment. + +2004-09-23 Kazu Hirata + + * builtins.c: Fix a comment typo. + +2004-09-23 Jan Hubicka + + * profile.c (branch_prob): Do not verify flow info in the middle of the + pass. + +2004-09-23 Zdenek Dvorak + + * cfgloop.h (update_single_exits_after_duplication): Declare. + (loopify, split_loop_bb): Declaration changed. + * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead + of rtx. + (loopify): Added redirect_all_edges argument. + (update_single_exits_after_duplication): Export. + * loop-unswitch.c (unswitch_loop): Changed due to loopify change. + * tree-flow.h (tree_duplicate_loop_to_header_edge, + tree_ssa_loop_version): Declare. + * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables, + set_phi_def_stmts, tree_duplicate_loop_to_header_edge, + lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge, + lv_update_pending_stmts, tree_ssa_loop_version): New functions. + + * tree-ssa-loop-unswitch.c: New file. + * Makefile.in (tree-ssa-loop-unswitch.o): Add. + * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar. + * tree-flow.h (tree_ssa_unswitch_loops): Declare. + * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch. + * tree-pass.h (pass_unswitch): Declare. + * tree-ssa-loop.c (tree_ssa_loop_unswitch, + gate_tree_ssa_loop_unswitch, pass_unswitch): New pass. + * doc/passes.texi: Documen tree level loop unswitching. + +2004-09-23 Kazu Hirata + + * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos. + +2004-09-22 Eric Christopher + + * builtins.c (simplify_builtin_va_start): Remove. + (simplify_builtin): Ditto. + (fold_builtin_strchr): Ditto. + (simplify_builtin_*): Rename remainders to fold_builtin_*. + (expand_builtin): Fix up for above changes. + (fold_builtin_1): Add new folders. Change for above. + (expand_builtin_va_start): Call fold_builtin_next_arg. + * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin. + * tree.h: Remove prototype for simplify_builtin. + +2004-09-23 Jan Hubicka + + PR debug/17389 + * dwarf2out.c (dwarf2out_finish): Deal with nested functions + of fully inlined functions. + * tree-inline.c (inline_forbidden_p_1): Nested functions can be + inlined. + + * cfgexpand.c (add_reg_br_prob_note): New function. + (expand_gimple_cond_expr): Use it. + (tree_expand_cfg): No longer kill the profile. + * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency + only if it is present. + * passes.c (rest_of_handle_loop_optimize): Kill the profile. + * predict.c (combine_predictions_for_insn): Set the probabilities + based on REG_BR_PROB note if present. + * predict.c (branch_prob): Profile is read only with + flag_branch_probabilities. + +2004-09-22 Kelley Cook + + * aclocal.m4: Add in gettext's m4 includes. + (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove. + * configure.ac: Add in check for iconv.h + * configure: Regenerate. + +2004-09-22 Kelley Cook + + * aclocal.m4: Update for rename of gettext-sister.m4. + +2004-09-22 Daniel Berlin + + Fix PR tree-optimization/17587 + * tree-ssa-pre.c (fini_pre): Commit edge inserts here. + (insert_aux): Instead of here. + +2004-09-22 Diego Novillo + + PR tree-optimization/16721 + * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE. + * tree-ssa-alias.c (create_memory_tag): Move setting of + TREE_THIS_VOLATILE ... + (get_tmt_for): ... here. + +2004-09-22 Eric Botcazou + + * config/sparc/sparc.md (cmove splitter): Fix formatting. + (conditional_trap expander): Reject inappropriate CCmodes. + (conditional trap insn): Use V9 syntax if possible. + +2004-09-22 Joseph S. Myers + + PR c/16566 + * c-typeck.c (build_component_ref): Don't special-case + COMPOUND_EXPR. + +2004-09-22 Frank Ch. Eigler + + * dominance.c (verify_dominators): Don't SEGV if recount_dominator + returns NULL. + +2004-09-22 Kazu Hirata + + * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR, + TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, + TRUTH_XOR_EXPR): Mention the restriction on types. + +2004-09-22 Matt Austern + + * config/darwin.c (darwin_make_decl_one_only): + Allow coalesced symbol to appear in static archive's table of contents + +2004-09-22 Kazu Hirata + + PR tree-optimization/17512 + * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as + special cases. + +2004-09-22 David Edelsohn + + * dbxout.c (get_lang_number): Do not define if + DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined. + +2004-09-22 Ralf Corsepius + + PR target/15583 + * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add + builtin_define ("__USE_INIT_FINI__"). + +2004-09-22 P.J. Darcy + + * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype. + * config/s390/s390.c (s390_emit_tpf_eh_return): New function. + * config/s390/s390.h (TARGET_TPF): New macro. + * config/s390/s390.md ("eh_return"): New expander. + * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than + unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c. + (LIB2ADDEHDEP): Remove unwind-dw2-fde.c. + * config/s390/tpf.h (TARGET_TPF): Define to 1. + (STACK_POINTER_OFFSET): Increase to 448. + (TARGET_DEFAULT): Set -mtpf-trace on as default. + (TPF_LOC_DIFF_OFFSET): New macro. + (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute + encoding. + (__isPATrange): Add prototype. + (MD_FALLBACK_FRAME_STATE_FOR): Define. + * config/s390/tpf-eh.c: New file. + +2004-09-22 Diego Novillo + + * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening + operands in an integer comparison. + * tree-cfg.c (find_taken_edge): Call fold() to determine + whether the predicate is known. + +2004-09-22 Kelley Cook + + * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND. + * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O. + Create build and doc directories along with the language directories. + Don't create doc directory separately. + * configure: Regenerate. + * Makefile.in: Create all object and executables files built + with the build compiler in a build/ directory. + (genobjnames): Add missing build objects. + (STAGESTUFF): Don't stage the gen* programs. + (ggc-none.o): Define dependencies for the target compiler. + (build-print-rtl.o): Rename to build/print-rtl.o. + (build-errors.o): Rename to build/errors.o. + (build-varray.o): Rename to build/varray.o. + (maintainerclean): Delete the contents of the build directory. + ($(genobjs): %.o): Explicitly use -o. + (build/insn-conditions.o): Delete specfic rule to use generic rule. + (build/gengtype-lex.o): Likewise. + (build/gengtype-yacc.o): Likewise. + (build/gcov-iov.o): Likewise. + +2004-09-22 Nathan Sidwell + + * vec.h (VEC_space): Return true if there _is_ space. + (VEC_reserve): Adjust. + +2004-09-22 Richard Sandiford + + * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64, + use FPRs for scalar, complex and vector types only. + +2004-09-21 Jeff Law + + * tree-ssa-dom.c (opt_stats): Move so that it lives just after + the opt_stats_d structure. + (vrp_data): Change from a varray into a hash table. + (vrp_hash_elt): New structure for elements in the vrp hash table. + (vrp_hash, vrp_eq):New functions for hashing and testing equality + in the vrp hash table. + (tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize + initialization slightly to make it easier to read. No longer need + to grow/clear the varray. Instead empty and delete the hash table. + (dom_opt_finalize_block): Update due to change of VRP_DATA from + a varray to a hash table. + (simplify_cond_and_loop_avail_expr, record_range): Similarly. + + * tree-ssa-ccp.c (get_default_value): If we have a constant + value recorded for an SSA_NAME, then use that constant as + the initial lattice value. + (substitute_and_fold): Transfer equivalences discovered into + SSA_NAME_EQUIV. + + * tree.h (SSA_NAME_EQUIV): Add comments. + (SET_SSA_NAME_EQUIV): Similarly. + +2004-09-21 David Edelsohn + + * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4. + + * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used. + +2004-09-21 Mark Mitchell + + * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma. + (finish_decl): Likewise. + +2004-09-21 Devang Patel + + * tree.def (VEC_COND_EXPR): New tree node. + * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR. + +2004-09-21 Stan Shebs + + * config/rs6000/darwin-tramp.asm: Add __ppc64__ case. + * config/rs6000/darwin-world.asm: Likewise. + +2004-09-21 Daniel Berlin + + * tree-ssa.c (verify_def): Use print_generic_stmt, + not debug_generic_stmt. + (verify_use): Ditto. + (verify_phi_args): Ditto. + (verify_ssa): Ditto. + +2004-09-21 Paul Brook + + * varasm.c (default_assemble_integer): Return false for values wider + than the target word size. Works around GAS bug. + +2004-09-21 Zack Weinberg + + * reg-notes.def (REG_DEP_TRUE): New entry, place first so it + gets value 0. + * print-rtl.c (print_rtx): Print the name of a REG_NOTE even + if it has value 0. + +2004-09-21 Daniel Berlin + + * c-typeck.c (build_function_call): Give name of object + we are attempting to call in error message. + * c-objc-common.c (c_tree_printer): Call pp_expression, + not return false, for 'E' case. + +2004-09-21 Steven Bosscher + + PR rtl-optimization/17482 + * postreload-gcse.c (reg_avail_info, oprs_unchanged_p, + load_killed_in_block_p): Clarify comments. + (record_last_reg_set_info): Make static inline. + (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove. + (record_opr_changes): New function to replace the above. + (compute_hash_table): Clarify comments. Use record_opr_changes. + (reg_set_between_after_reload_p): Clean up. + (reg_used_between_after_reload_p): Likewise. + (eliminate_partially_redundant_load): Clarify comments. + +2004-09-21 Eric Botcazou + + PR rtl-optimization/17266 + * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn. + +2004-09-21 Uros Bizjak + + PR rtl-optimization/14851 + * rtlanal.c (commutative_operand_precedence): Calculate + precedence of stripped constant. + +2004-09-20 Jeff Law + Jan Hubicka + + * tree-ssanames.c (make_ssa_name): No longer need to clear, then + initialize key elements here. + (release_ssa_name): Zero the released SSA_NAME here. + * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros. + (struct tree_ssa_name): Add new "equiv" field. + * tree-ssa-dom.c (const_and_copies): Kill the global varray. + (tree_ssa_dominator_optimize): No longer allocate, resize or + clear CONST_AND_COPIES. + (get_value_for, set_value_for): Kill. + (thread_across_edge): Get/set the equivalency using + SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV. + (restore_vars_to_original_value): Likewise. + (record_equivalences_from_phis): Likewise. + (record_dominating_conditions): Likewise. + (record_const_or_copy, record_equality): Likewise. + (lookup_avail_expr): Likewise. + (record_equivalences_from_stmt, cprop_operand): Likewise. + (cprop_into_successor_phis): No longer need to pass around + CONST_AND_COPIES. Callers updated. Get equivalences via + SSA_NAME_EQUIV. + (cprop_into_phis): Likewise. + +2004-09-20 Matt Austern + Zack Weinberg + + * c-common.c (fix_string_type): Build the unqualified array + type unconditionally, then use c_build_qualified_type to get + the proper const-qualified variant, and set its + TYPE_MAIN_VARIANT to refer to the unqualified type. + * c-lex.c (c_lex_return_raw_string): New global. + (c_lex_with_flags): Honor it. + * c-pragma.h: Declare it. + +2004-09-20 Daniel Berlin + + * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H). + +2004-09-21 Jan Hubicka + + PR middle-end/17126 + * tree-optimize.c (update_inlined_to_pointers): Fix the recursion. + (tree_rest_of_compilation): Cleanup. + +2004-09-20 Ulrich Weigand + + * config/s390/s390.c (s390_select_rtx_section): Remove. + (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine. + +2004-09-20 Kaz Kojima + + * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR + note to pretend a direct save from the original register when an + intermediate register is used for the save. + +2004-09-20 Kaveh R. Ghazi + + * tsystem.h (alloca): Provide a default definition. + + Revert: + 2001-08-31 Kaveh R. Ghazi + * unwind-dw2.c: Call __builtin_alloca, not alloca. + +2004-09-20 Andrew Pinski + + PR tree-opt/17558 + * tree-ssa-copy.c (may_propagate_copy): Only allow if the + aliasing sets are the same rather than just conflicting. + +2004-09-20 Jan Hubicka + + PR middle-end/16460 + + * cgraph.c (cgraph_unnest_node): New function. + (c_finalize): Rename to .... + (c_warn_unused_result_recursivly): ... this one; do only the warning + (finish_function): Finalize the toplevel function; do not lower nested tree. + * cgraph.h (cgraph_unnest_node): Declare. + * cgraphunit.c (decide_is_function_needed): Do not use cgraph + nestedness datastructure. + * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs. + * reload1.c (set_label_offsets): Fix call of set_label_offsets. + * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code. + +2004-09-20 Richard Henderson + + * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename + from some_small_symbolic_operand_1; export. + (some_small_symbolic_operand): Remove. + * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove + extra C check. + * config/alpha/predicates.md (some_small_symbolic_operand): New. + +2004-09-20 Jan Hubicka + + * predict.c (return_prediction): New function. + (apply_return_prediction): Likewise. + (tree_bb_level_predictions): Likewise. + (tree_estimate_probability): Add noreturn exit edges; call + bb_level_predictions; fix logic of return heuristics. + (predict_paths_leading_to): Rescuesce from old CVS version of + process_note_prediction function. + * predict.def (PRED_TREE_EARLY_RETURN): New predictor. + +2004-09-20 Andreas Krebbel + + * config/s390/s390.c (s390_frame_info): Added alignment statement for + floating point register area on stack. + +2004-09-20 Jakub Jelinek + + * predict.c (expr_expected_value): Use *_CLASS_P macros. + +2004-09-20 Daniel Berlin + + * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid + generating useless garbage. + +2004-09-20 Paolo Bonzini + + * builtins.c (fold_builtin): Call the new omonymous + target hook for machine-dependent built-ins. + * target-def.h (TARGET_FOLD_BUILTIN): New. + * target.h (struct gcc_target): Add the fold_builtin hook. + * targhooks.c (default_fold_builtin): New. + * targhooks.h (default_fold_builtin): Declare it. + +2004-09-20 Kazu Hirata + + * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix + comment typos. + +2004-09-20 Richard Sandiford + + PR target/17565 + * config/mips/mips.md (define_asm_attributes): Set can_delay to no. + +2004-09-20 Jan Hubicka + + * predict.c (estimate_probability): Remove unnecesary code. + +2004-09-19 Ira Rosen + + * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field. + (STMT_VINFO_VECT_DR_BASE): Declare. + (VECT_SMODULO): Declare. + * tree-vectorizer.c (vect_compute_array_ref_alignment): New function. + (vect_compute_array_base_alignment): New function. + (vect_analyze_data_ref_access): Check array indices. Remove one + dimensional arrays restriction. + (vect_get_ptr_offset): New function. + (vect_get_symbl_and_dr): New function. + (vect_get_base_and_bit_offset): Support additional data refs. Renamed + (former name vect_get_base_decl_and_bit_offset). + (vect_create_index_for_array_ref): Removed. + (vect_create_index_for_vector_ref): New function. + (vect_create_addr_base_for_vector_ref): New function. + (vect_create_data_ref): Handle additional data refs. Call + vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref. + (vect_compute_data_ref_alignment): Support the changes. Call + vect_get_base_and_bit_offset. + (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional + data refs. Store vect_dr_base. + (vect_analyze_data_ref_accesses): Support nonconstant init. + (new_stmt_vec_info): Initialize vect_dr_base field. + (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num. + (get_vectype_for_scalar_type): Check for BLKmode. + * tree-chrec.h (initial_condition_in_loop_num): Declare. + * tree-chrec.c (initial_condition_in_loop_num): New function. + (chrec_component_in_loop_num): New function. + (evolution_part_in_loop_num): Call chrec_component_in_loop_num. + * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns) + to be pointer to varray_type. + +2004-09-19 Jan Hubicka + + * basic-block.h (update_bb_profile_after_threading): Declare. + * cfg.c (update_bb_profile_after_threading): Break out from ... + * cfgcleanup.c (try_forward_edges): ... here; use it. + * tree-ssa-dom.c (thread_across_edge): Use it. + * tree-ssa-threadupdate.c (create_block_for_threading): Zero out + profile of the new BB. + +2004-09-19 Daniel Berlin + + * tree-ssa-pre.c (insert_into_set): Don't put + is_gimple_min_invariant values into the set. + +2004-09-19 Andreas Jaeger + + * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix + prototype. + +2004-09-18 Kazu Hirata + + * config/cris/cris.h: Preserve the original spelling in a + quote. + +2004-09-18 Jeff Law + + * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New + global varrays to replace the block local varrays. + (struct dom_walk_block_data): Remove, no longer used. + (get_eq_expr_value): No longer need to pass around pointers to local + varrays. Callers updated. Unused markers added to unused parameters. + (record_range, record_equivalences_from_stmt): Likewise. + (record_equivalences_from_incoming_edge): Likewise. + (record_var_is_nonzero): Likewise. Update now that we have a + single global varray of SSA_NAMEs that need restoring. + (dom_opt_initialize_block_local_data): Kill, no longer used. + (tree_ssa_dominator_optimize): Initialize new global varrays. + Update callbacks in dominator walker structure. + (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and + VRP_VARIABLES_STACK. + (restore_nonzero_vars_to_original_value): Update now that we have + a single global varray of SSA_NAMEs that need restoring. + (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK. + Remove unused variables. + (optimize_stmt): Remove unused variable. + +2004-09-18 Jan Hubicka + + * tree-cfg.c (thread_jumps): Fix updating of the profile. + + * tree-optimize.c (tree_rest_of_compilation): Kill forgotten + verify_cgraph call. + +2004-09-18 Kazu Hirata + + * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c, + gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c, + optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c, + tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c, + tree-ssa-operands.c, tree-ssa-phiopt.c, + tree-ssa-threadupdate.c: Fix comment typos. + +2004-09-18 Kazu Hirata + + * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md, + config/arm/README-interworking, config/arm/arm-cores.def, + config/arm/arm.c, config/arm/arm.h, config/arm/pe.c, + config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h, + config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c, + config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c, + config/frv/frv.md, config/i386/winnt.c, + config/ia64/unwind-ia64.c, config/iq2000/iq2000.c, + config/iq2000/iq2000.h, config/m68hc11/m68hc11.c, + config/m68hc11/m68hc11.md, config/m68k/m68k.c, + config/mcore/mcore.c, config/mips/mips.h, + config/mn10300/mn10300.md, config/pa/pa.c, + config/pa/pa64-regs.h, config/pdp11/pdp11.c, + config/rs6000/rs6000.c, config/sh/symbian.c, + config/sparc/sparc.h: Fix comment typos. Follow spelling + conventions. + +2004-09-18 Joseph S. Myers + + PR c/17424 + * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node. + +2004-09-18 Diego Novillo + + * tree-ssa-alias.c (setup_pointers_and_addressables): Don't + remove TREE_ADDRESSABLE from RESULT_DECL. + +2004-09-18 Diego Novillo + + * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs. + +2004-09-18 Jan Hubicka + + * tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return + NULL. + * tree-ssa-alias.c (init_alias_info): Likewise. + * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. + (verify_ssa): Likewise. + * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays. + +2004-09-18 Jan Hubicka + + * i386.c (legitimize_pic_address): Fix splitting of PLUS with + huge offset. + +2004-09-18 Kaz Kojima + + * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove. + * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use + DW_EH_PE_sdata* for data. + (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. + +2004-09-17 Geoffrey Keating + + * tree-inline.c (copy_tree_r): Don't duplicate constants, they're + shared anyway. + + 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_code_size): Clean up assertions, don't allow requests + for "the size of a STRING_CST". + * 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-09-17 Zack Weinberg + + * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H). + * objc/Make-lang.in (objc/objc-parse.o): Likewise. + +2004-09-17 Jones Desougi + + * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF. + * configure, config.in: Regenerate. + +2004-09-17 Zack Weinberg + + * tree.c, tree.h (tree_class_strings): Make array const. + Reindent per coding convention. Move asterisk to proper place + per coding convention. + +2004-09-18 Andreas Schwab + + * Makefile.in (gimple-low.o): Depend on $(EXPR_H). + (tree-vectorizer.o): Likewise. + (targhooks.o): Likewise. + +2004-09-17 Jeffrey D. Oldham + Zack Weinberg + + * alias.c (find_base_decl): Remove unreachable case '3' block. + * expr.c (safe_from_p): Abort if passed a type. + * tree-gimple.c (recalculate_side_effects): Abort if passed + anything other than an expression. + * tree-ssa-pre.c (phi_translate): Return expr immediately if + is_gimple_min_invariant is true for it. Reorder cases for clarity. + Abort on un-handled tree classes. + (valid_in_set): Likewise. + * tree.c (tree_code_class_strings): New static data. + + * tree.h (enum tree_code_class): New. + (tree_code_class_strings): Declare. + (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) + (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) + (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. + (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) + (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. + + * tree.def, c-common.def, objc/objc-tree.def: Use + tree_code_class enumeration constants instead of code letters. + + * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c + * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c + * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c + * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c + * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c + * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c + * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c + * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c + * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c + * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c + * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c + * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c + * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c + Update to match. + + * LANGUAGES: Add note about change. + +2004-09-17 Diego Novillo + + PR tree-optimization/17319 + * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also + examine pointers on the LHS of an assignment. + (collect_points_to_info_r): Handle RETURN_EXPR. + +2004-09-17 Jeff Law + + * tree-ssa-dom.c (const_and_copies_stack): New. + (dom_walk_block_data): Remove const_and_copies field. + (record_const_or_copy): No longer need to pass in varray_type *. + Use CONST_AND_COPIES_STACK rather than passed in block local stack. + Callers updated. + (record_equality): Similarly. + (restore_vars_to_original_value): Similarly. Revamp to use new + single global stack rather than per-block stacks. + (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK. + (thread_across_edge): Remove now unused parameters. + (dom_opt_initialize_block_local_data): No longer test the block + local CONST_AND_COPIES. + (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK. + +2004-09-17 Jan Hubicka + + PR tree-optimization/17509 + * tree-optimize.c (update_inlined_to_pointers): New function. + (tree_rest_of_compilation): Use it. + +2004-09-17 Devang Patel + + * dbxout.c (get_lang_number): New. + (dbxout_init): Include lang number in N_SO stab. + * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN, + N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define. + +2004-09-17 Diego Novillo + + PR tree-optimization/17273 + * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the + replacement is a constant. + +2004-09-17 Joseph S. Myers + + * c-tree.h (enum c_typespec_keyword): New. + (struct c_declspecs): Adjust description of "type". Remove + specbits, explicit_int_p and explicit_char_p. Rename + typedef_signed_p to explicit_signed_p. Add default_int_p, long_p, + short_p, signed_p, unsigned_p and complex_p. + (finish_declspecs): New. + * c-parse.in (datadef, datadecl, setspecs, decl, component_decl, + typename): Call finish_declspecs. + * c-decl.c (finish_declspecs): New. + (declspecs_add_type): Check for combinations which cannot occur in + valid specifier lists. Update comments. + (shadow_tag_warned): Remove checks done in finish_declspecs. + Don't report useless type name if type defaulted to int. + (grokdeclarator): Remove checks and actions done in + finish_declspecs. Don't allow for type being NULL. Update for + datastructures changes. Initialize decl_attr. + (build_null_declspecs, quals_from_declspecs): Update for + datastructures changes. + +2004-09-17 Sylvain Pion + + * doc/extend.texi: Fix duplicated word. + +2004-09-17 Toon Moene + + * doc/invoke.texi: Remove stray explanation on + -freduce-all-givs and -fmove-all-movables. + +2004-09-17 James Morrison + + * doc/cfg.texi: Use @smallexample. + * doc/md.texi: Likewise. + * doc/tree-ssa.texi: Likewise. + * doc/extend.texi: Likewise. Use @r{} in comments. + * doc/trouble.texi: Use @r{} in comments. + +2004-09-17 Hans-Peter Nilsson + + * configure.ac (gcc_cv_gld_version): Handle whitespace before + "VERSION=". + * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto. + * configure: Regenerate. + +2004-09-17 J"orn Rennecke + + * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference. + (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug. + * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g . + * t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match dashes and trailing + slashes in substitutions. + (MULTILIB_DIRNAMES): Remove defunct removal of /media32. + +2004-09-17 Kazu Hirata + + * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c, + gimplify.c, lambda-code.c, optabs.c, predict.c, + tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c, + tree-ssa.c, vec.h: Fix comment typos. Follow spelling + conventions. + +2004-09-17 Kazu Hirata + + * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi, + doc/extend.texi, doc/install.texi, doc/invoke.texi, + doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi, + doc/trouble.texi: Use @option around options. + +2004-09-17 Richard Sandiford + + * Makefile.in (gen-protos.o): Depend on errors.h. + +2004-09-17 Steven Bosscher + + PR tree-optimization/17513 + * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE + for successors of the entry block. + +2004-09-17 Uros Bizjak + + PR rtl-optimization/15187 + * ifcvt.c (noce_try_cmove_arith): Exit early if total + insn_rtx_cost of both branches > BRANCH_COST + +2004-09-16 Diego Novillo + + PR tree-optimization/17528 + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not + erase the may-alias set for a tag when merging it with + another. + +2004-09-16 Kaz Kojima + + * config/sh/sh.md (call): Extend 32-bit addresses to DImode + for 32-bit TARGET_SHMEDIA. + (call_value): Likewise. + +2004-09-16 Diego Novillo + + * tree-ssa-operands.c (add_call_clobber_ops): Make read-only + test apply only to TREE_STATIC and DECL_EXTERNAL. + +2004-09-16 Zdenek Dvorak + + * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency. + * basic-block.h (get_dominated_by_region): Declare. + * dominance.c (get_dominated_by_region): New function. + * tree-cfg.c: Include cfglayout.h. + (tree_duplicate_bb): Duplicate also phi nodes. + (struct ssa_name_map_entry): New type. + (add_phi_args_after_copy_bb, add_phi_args_after_copy, + ssa_name_map_entry_hash, ssa_name_map_entry_eq, + allocate_ssa_names, rewrite_to_new_ssa_names_def, + rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb, + rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions. + * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb, + add_phi_args_after_copy, rewrite_to_new_ssa_names_bb, + rewrite_to_new_ssa_names, allocate_ssa_names, + rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare. + * tree-ssa-loop-ch.c (duplicate_blocks): Removed. + (copy_loop_headers): Use tree_duplicate_sese_region. + +2004-09-16 Frank Ch. Eigler + + * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION. + +2004-09-16 Jeff Law + + * tree-into-ssa.c (block_defs_stack): New toplevel varray. + (rewrite_block_data): Remove, no longer used. + (rewrite_initialize_block_local_data): Remove, no longer used. + (rewrite_initialize_block): Mark parameters as unused as needed. + Change references to the block local block_defs to be block_defs_stack. + Push a marker onto the block_defs_stack. + (ssa_rewrite_initialize_block): Similarly. + (rewrite_stmt, ssa_rewrite_stmt): Similarly. + (ssa_register_new_def): No longer needs varray argument. Use + block_defs_stack instead. No longer handle possibly null block_defs + varray. Reverse order of items we push on the stack to make it + easier to identify our marker. + (register_new_def): No longer handle possibly null block_defs + varray. + (rewrite_finalize_block): Revamp to look for markers in the global + block_defs_stack varray rather than wiping a block local varray. + Mark arguments as unused as needed. + (ssa_rewrite_finalize_block): Similarly. + (rewrite_into_ssa): Update initialization of dom walker structure + to reflect that we don't need block local data anymore. Initialize + the block_defs_stack varray. + (rewrite_ssa_into_ssa): Similarly. + * tree-ssa-dom.c (block_defs_stack): New toplevel varray. + (struct dom_walk_data): Kill block_defs field. + (tree_ssa_dominator_optimize): Initialize block_defs_stack. + (thread_across_edge): Use the global block_defs_stack instead of + the old block_defs varray. + (dom_opt_initialize_block_local_data): Update now that we don't have + block_defs field to check anymore. + (dom_opt_initialize_block): Push a marker onto block_defs_stack. + (restore_currdefs_to_original_value): Use the new block_defs_stack + instead of a block local varray. + (dom_opt_finalize_block): Similarly. + (record_equivalencs_from_phis): Similarly. + (optimize_stmt, register_definitions_for_stmt): Similarly. + +2004-09-16 Andrew MacLeod + + PR tree-optimization/17517 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't + coalesce same-root variables without checking for abnormal PHI usage. + +2004-09-16 Daniel Berlin + + * cfgloop.h (duplicate_loop): Add prototype. + * cfgloopmanip.c (duplicate_loop): Make non-static. + * lambda-code.c (perfect_nestify): Factor out test whether + we can handle this loop into separate function. + Call it. + (can_convert_to_perfect_nest): New function. + (replace_uses_of_x_with_y): Add modify_stmt call. + * tree-loop-linear.c (linear_transform_loops): Call + rewrite_into_loop_closed_ssa and free_df. + +2004-09-16 Daniel Berlin + + * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is + loop invariant as well. + (perfect_nestify): new function. + (gcc_loop_to_lambda_loop): New parameters to track lower bounds, + upper bounds, and steps. + Set outerinductionvar properly. + (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect + parameters. + Return NULL if we need a perfect loop and can't make one. + (lambda_loopnest_to_gcc_loopnest): Correct algorithm. + (not_interesting_stmt): New function. + (phi_loop_edge_uses_def): Ditto. + (stmt_uses_phi_result): Ditto. + (stmt_is_bumper_for_loop): Ditto. + (perfect_nest_p): Ditto. + (nestify_update_pending_stmts): Ditto. + (replace_uses_of_x_with_y): Ditto. + (stmt_uses_op): Ditto. + (perfect_nestify): Ditto. + * lambda-mat.c (lambda_matrix_id_p): New function. + * lambda-trans.c (lambda_trans_matrix_id_p): Ditto. + * lambda.h: Update prototypes. + * tree-loop-linear (linear_transform_loop): Use new + perfect_nest_p. Detect and ignore identity transform. + * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed. + +2004-09-16 Sebastian Pop + + * tree-loop-linear.c (gather_interchange_stats): Add more comments. + Gather also strides of accessed data. Pass in the data references + array. + (try_interchange_loops): Add a new heuristic for handling the temporal + locality. Pass in the data references array. + (linear_transform_loops): Pass the data references array to + try_interchange_loops. + +2004-09-16 Kazu Hirata + + * doc/invoke.texi: Fix typos. Follow spelling conventions. + +2004-09-16 Nathan Sidwell + + * doc/c-tree.texi (Classes): Remove index entries for + TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}. + +2004-09-16 Zdenek Dvorak + + * fold-const.c (fold): Fold difference of addresses. + (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on + get_inner_reference. + * tree-ssa-loop-ivopts.c (peel_address): Removed. + (ptr_difference_const): Moved to fold-const.c. + (split_address_cost): Use get_inner_reference instead of peel_address. + (ptr_difference_cost): Change type of diff to HOST_WIDE_INT. + * tree.h (ptr_difference_const): Export. + + * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction + variable type to the dump. Fix indentation. + (idx_find_step): Handle nonconstant array_ref_element_size and + array_ref_low_bound. + (idx_record_use): Handle array_ref_element_size and + array_ref_low_bound. + (find_interesting_uses_stmt): Handle memory = nontrivial_expression + statements correctly. + (get_computation_at, iv_value): Do not unshare expressions here. + (rewrite_use_outer): Unshare the expression before it is emitted + to code. + * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for): + Moved to tree.c. + * tree.c (unsigned_type_for, signed_type_for): Moved from + tree-ssa-loop-niter.c. Use langhooks. + * tree.h (signed_type_for): Export. + +2004-09-16 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update + prototype. + +2004-09-15 Andrew Pinski + + PR target/11572 + * c-incpath.h (target_c_incpath_s): Add extra_pre_includes. + Add two parameters to extra_includes. + (C_INCPATH_INIT): Remove. + * c-incpath.c (register_include_chains): Call extra_pre_includes + before adding the standard include directory. + Update call to extra_includes. + (!defined TARGET_EXTRA_INCLUDES): Update + hook_void_charptr_charptr_int and add !define + TARGET_EXTRA_PRE_INCLUDES. + (!define TARGET_EXTRA_INCLUDES): Define as + hook_void_charptr_charptr_int. + (!define TARGET_EXTRA_PRE_INCLUDES): Likewise. + (target_c_incpath): Always declare. + * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a + empty function. + (define TARGET_EXTRA_PRE_INCLUDES): Likewise. + * config/darwin.h: (darwin_register_frameworks): Update for + the two new parameters. + (darwin_register_objc_includes): Add prototype. + (TARGET_EXTRA_PRE_INCLUDES): Define. + * config/darwin-c.c (darwin_register_objc_includes): New function. + (darwin_register_frameworks): Update for the two new parameters. + (target_c_incpath): Remove. + * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to + the compile line. + * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new + parameters. + (TARGET_EXTRA_PRE_INCLUDES): Document. + + * gcc.c (spec_function): Add replace-outfile. + (replace_outfile_spec_function): New function. + * config/darwin.h (LINK_SPEC): Add replace + -lobjc with -lobjc-gnu if -fgnu-runtime is + supplied. + * invoke.texi (replace-outfile): Document. + +2004-09-13 Jan Hubicka + + * predict.c (expr_expected_value, strip_builtin_expect): New function. + (tree_predict_by_opcode): Use it. + (tree_estimate_probability): Add, for now disabled, + strip_builtin_expect call. + +2004-09-15 James E Wilson + + PR target/17455 + * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false + if current_function_decl is a sibcall. + +2004-09-15 Mark Mitchell + + * varasm.c (default_function_rdodata_section): Make sure to pass + along a decl for a link-once section. + +2004-09-15 Richard Henderson + + * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable + warning with code disable. Fix formatting. + +2004-09-15 Steven Bosscher + + * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h. + * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT + after propagating into an ADDR_EXPR. + +2004-09-15 Andrew Pinski + + PR rtl-opt/17427 + * gcse.c (process_insert_insn): insn_invalid_p has side effects. + Move it out of gcc_assert. + +2004-09-15 Joseph S. Myers + + * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c, + except.c, fold-const.c, function.c, langhooks.c, params.c, + reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c, + tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q + for quoting in diagnostics going through pretty-print.c. Use '' + for quoting in other diagnostic text. + * langhooks.c: Include intl.h. Mark text locating diagnostics for + translation. + * Makefile.in (langhooks.o): Update dependencies. + * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic + formats. + +2004-09-15 Mark Mitchell + + * configure.ac: Check for COMDAT support. Robustify check for + SHF_MERGE support. + * configure: Regenerated. + * config.in: Likewise. + * langhooks-def.h (lhd_comdat_group): New function. + (LANG_HOOKS_COMDAT_GROUP): New macro. + (LANG_HOOKS_DECLS): Use it. + * langhooks.c (lhd_comdat_group): Define. + * langhooks.h (lang_hooks_for_decls): Add comdat_group. + * output.h (named_section_flags): Make it a macro. + (named_section_real): New function. + (default_no_named_section): Add decl parameter. + (default_elf_asm_named_section): Likewise. + (default_coff_asm_named_section): Likewise. + (default_pe_asm_named_section): Likewise. + * target.h (gcc_target): Adjust type of named_section. + * varasm.c (named_section_flags): Rename to named_section_real. + Add decl parameter. + (default_no_named_section): Add decl parameter. + (default_elf_asm_named_section): Use COMDAT, if available. Deal + with the case that ASM_COMMENT_START is "@". + (default_coff_asm_named_section): Add decl parameter. + (default_pe_asm_named_section): Likewise. + * config/alpha/alpha.c (vms_asm_named_section): Add decl + parameter. + (unicosmk_asm_named_section): Likewise. + * config/arm/arm.c (arm_elf_asm_named_section): Remove. + * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise. + * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter. + * config/cris/cris-protos.h (cris_target_asm_named_section): + Likewise. + * config/cris/cris.c (cris_target_asm_named_section): + Likewise. + * config/darwin/darwin-protos.h (darwin_asm_named_section): + Likewise. + * config/darwin/darwin.c (darwin_asm_named_section): Likewise. + * config/h8300/h8300.c (h8300_asm_named_section): Likewise. + * config/i386/i386-protos.h (i386_pe_asm_named_section): + Likewise. + * config/i386/winnt.c (i386_pe_asm_named_section): Likewise. + * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise. + * config/mcore/mcore.c (mcore_asm_named_section): Likewise. + * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): + Likewise. + * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise. + * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define. + * cp/cp-tree.h (cxx_comdat_group): Declare. + * cp/decl.c (cxx_comdat_group): New function. + +2004-09-15 Jan Hubicka + + * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes. + * tree-tailcall.c (eliminate_tail_call): Release SSA name. + + * tree-cfg.c (remove_bb): Release SSA defs. + +2004-09-15 Kazu Hirata + + * doc/tm.texi: Follow spelling conventions. + +2004-09-15 Kazu Hirata + + * tree-ssa-dom.c: Fix comment typos. + +2004-09-15 Alan Modra + + * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to + include ccr. + (ppc_fallback_frame_state): Save location of CR. + +2004-09-15 Jakub Jelinek + + * expr.c (string_constant): Handle also read-only variables + initialized to string literals. + + * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1) + into memcpy (x, y, 1) if memcpy can be expanded inline. + +2004-09-15 Zdenek Dvorak + + PR tree-optimization/17468 + * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that + definition inside a block precede uses. + * tree-tailcall.c (adjust_return_value): Emit statements in the + correct order. + +2004-09-15 Richard Sandiford + + * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete. + +2004-09-15 Eric Botcazou + + * doc/install.texi (sparc-sun-solaris2*): Properly format warning. + +2004-09-14 Jeff Law + + * tree-ssa-dom.c (avail_exprs_stack): New global varray. + (struct dom_walk_block_data): Remove avail_exprs member. + (tree_ssa_dominator_optimize): Initialize avail_exprs_stack. + (lookup_avail_expr): No longer need to pass in address of + the block local available exprs stack. All callers changed. + (simplify_cond_and_lookup_avail_expr): Similarly. + (simplify_switch_and_lookup_avail_expr): Similarly. + (get_eq_expr_value, record_cond): Likewise. + (record_dominating_conditions): Likewise. + (update_rhs_and_lookup_avail_expr): Likewise. + (record_equivalences_from_stmt): Likewise. + (dom_opt_initialize_block_local_data): No longer test state of + block local avail_exprs. + (dom_opt_initialize_block): Mark unwind point in the global + avail_expr stack. + (remove_expressions_from_table): Update to unwind to the + most recent unwind marker in the global avail_expr stack. + All callers changed. + (dom_opt_finalize_block): Mark unwind point in the global + avail_expr stack as needed. + (record_cond): Push elements into the global avail_exprs stack. + + * tree-dfa.c (free_df_for_stmt): No longer static. + (free_df): Update comments. + * tree-flow.h (free_df_for_stmt): Prototype. + * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also + call release_defs. + +2004-09-14 Diego Novillo + + PR tree-optimization/17252 + * tree-ssa-alias.c (may_alias_p): Don't assume that a + pointer may not point to itself when using relaxed + aliasing rules. + +2004-09-14 Richard Henderson + + PR middle-end/17397 + * gimplify.c (gimplify_addr_expr): Don't inadvertently change types + while folding >. + +2004-09-14 Andrew Pinski + + * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing + sets of the pointers but the aliasing sets of what they point to. + +2004-09-14 Roger Sayle + + PR rtl-optimization/9771 + * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate + conditional compilation in init_reg_sets_1. + (init_reg_sets_1): Let global_regs[i] take priority over the frame + (but not stack) pointer exceptions to regs_invalidated_by_call. + (globalize_reg): Globalizing a fixed register may need to update + regs_invalidated_by_call. + +2004-09-14 Diego Novillo + + PR tree-optimization/15262 + * tree-dfa.c (dump_variable): Also print the type of the + variable. + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two + memory tags are of conflicting alias sets but have no aliased + symbols in common, add one tag to the alias set of the other. + (setup_pointers_and_addressables): Remove hack to deal with + programs with no aliased symbols. + (may_alias_p): Don't special case aggregate types. + +2004-09-14 Joseph S. Myers + + PR c/15498 + * doc/invoke.texi (Environment Variables): Correct example locale. + +2004-09-14 Jan Hubicka + + * cfg.c (expunge_block): Revert previous change adding ggc_free call. + +2004-09-14 Mark Mitchell + + * config.gcc: Do not build a shared libgcc for arm-none-eabi. + +2004-09-14 Joseph S. Myers + + * c-tree.h (struct c_declspecs): Add const_p, volatile_p and + restrict_p. + (struct c_declarator): Change u.array.quals and pointer_quals to + int. Add u.array.attrs. + (quals_from_declspecs): New. + * c-decl.c (quals_from_declspecs): New. + (shadow_tag_warned): Give more specific message for useless type + qualifiers. + (build_array_declarator, set_array_declarator_inner, + grokdeclarator, make_pointer_declarator, build_null_declspecs, + declspecs_add_qual): Update for changed structures. + +2004-09-14 Jeff Law + + * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local + to a global varray. + (tree_ssa_dominator_optimize): Allocate stmts_to_rescan. + (dom_opt_initialize_block_local_data): No longer test state + of stmts_to_rescan. + (dom_opt_finalize_block): Update due to change in scope of + stmts_to_rescan. + (optimize_stmt): Similarly. + +2004-09-14 Kazu Hirata + + * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c, + lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix + comment typos. Follow spelling conventions. + +2004-09-14 Kazu Hirata + + * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c, + config/i386/predicates.md, config/sparc/sparc.c: Follow + spelling conventions. + +2004-09-14 Zdenek Dvorak + Steven Bosscher + + * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency. + * basic-block.h (struct reorder_block_def): Add copy_number field. + * cfgloop.h (biv_p): Declare. + * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number. + * common.opt (fsplit-ivs-in-unroller): New flag. + * loop-iv.c (biv_p): New function. + * loop-unroll.c: Include hashtab.h and recog.h. + (struct iv_to_split, struct split_ivs_info): New types. + (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies, + free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn, + determine_split_iv_delta, get_ivts_expr, allocate_basic_variable, + insert_base_initialization, split_iv): New functions. + (peel_loop_completely, unroll_loop_constant_iterations, + unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): + Use them. + * doc/invoke.texi (-fsplit-ivs-in-unroller): Document. + +2004-09-14 Zdenek Dvorak + + * tree-cfg.c (thread_jumps): Update dominators correctly in + case destination of threaded edge dominates its source. + +2004-09-14 Zdenek Dvorak + + * unroll.c: Removed. + * loop.h: Removed. + * Makefile.in (LOOP_H, unroll.o): Removed. + (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H + dependency. + * alias.c (init_alias_analysis): Remove flag_old_unroll_loops + reference. + * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h. + * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed. + * loop.c: Do not include loop.h. + (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID, + REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction, + struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO, + REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg, + struct loop_regs, struct loop_movables, struct loop_info): Moved + from loop.h. + (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment, + reg_dead_after_loop, final_biv_value, loop_find_equiv_value, + find_common_reg_term, loop_iterations, final_giv_value): Moved + from unroll.c. + (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop, + loop_dump_stream, for_each_insn_in_loop, express_from, + extend_value_for_giv, loop_iv_add_mult_emit_before, + loop_iv_add_mult_sink, loop_iv_add_mult_hoist, + loop_insn_first_p, get_condition_for_loop, + loop_insn_emit_before, loop_insn_hoist, + loop_insn_sink): Made static. + (loop_invariant_p): Made static. Removed flag_old_unroll_loops + reference. + (strength_reduce): Do not call unroller. + (record_giv): Do not initialize unrolled field. + (prescan_loop): Do not set loop_info->preconditioned. + * passes.c: Do not include loop.h. + (rest_of_handle_loop_optimize): Do not call unroller. + * predict.c: Do not include loop.h. + * rtl.h (NOTE_PRECONDITIONED): Removed. + * stmt.c: Do not include loop.h. + * toplev.c: Do not include loop.h. + (process_options): Do not handle flag_old_unroll_loops. + + * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops): + Documentation removed. + * doc/passes.texi (unroll.c, loop.h): Documentation removed. + +2004-09-14 Nathan Sidwell + + * Makefile.in (STAGE1_CHECKING): New variable. + (stage1_build): Use it. + * tree-ssa.c (verify_ssa): Preserve state of dominance + information. + +2004-09-14 Uros Bizjak + + * config/i386/i386.c (output_fp_compare): Add generation + of ftst instruction. + * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): + Use output_fp_compare () function. + (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint. + (fix_truncdi_memory): Remove operands[5] copy. + +2004-09-14 Kazu Hirata + + * config/m32r/m32r.md, config/m68k/m68kelf.h, + config/mcore/mcore.md, config/rs6000/linux64.h, + config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment + typos. + +2004-09-13 James E Wilson + + * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS). + * gen-protos.c: Include errors.h. + (progname): Delete. + +2004-09-14 Jan Hubicka + + * Makefile.in (predict.o): Depend on tree-scalar-evolution.h + * predict.c: Include tree-scalar-evolution.h and cfgloop.h + (predict_loops): Use number_of_iterations_exit to predict + number of iterations on trees. + +2004-09-13 Dale Johannesen + + PR 17408 + PR 17409 + * c-decl.c (start_decl): Repair TREE_STATIC for initialized + objects declared extern. + +2004-09-14 Paul Brook + + * config/arm/arm.c (arm_expand_prologue): Make args_to_push a + HOST_WIDE_INT. + +2004-09-13 Daniel Jacobowitz + + * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES. + Only use TYPE_BINFO for aggregates. + +2004-09-13 Daniel Jacobowitz + + * expmed.c (synth_mult): Initialize latency. Check cost before + checking ops count. + +2004-09-13 Kenneth Zadeck + + * tree-ssa-operands.c (get_call_expr_operands): Added parm to + add_call_clobber_ops and add_call_read_ops. + (add_call_clobber_ops, add_call_read_ops): Added code to reduce + the number of vdefs and vuses inserted based on analysis of global + variables across calls. * tree-dfa.c (find_referenced_vars): + Needed to reset static var maps before each function is compiled. + * cgraphunit.c: + (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid, + static_vars_info,functions_to_static_vars_info,module_statics_escape, + all_module_statics,searchc_env,dfs_info): New fields to support + analysis of static global variables. + (print_order, convert_UIDs_in_bitmap, new_static_vars_info, + cgraph_reset_static_var_maps, get_global_static_vars_info, + get_global_statics_not_read, get_global_statics_not_written, + searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis, + check_rhs_var, check_lhs_var, get_asm_expr_operands, + process_call_for_static_vars, scan_for_static_refs, + cgraph_characterize_statics_local, cgraph_get_static_name_by_uid, + clear_static_vars_maps, cgraph_propagate_bits, + cgraph_characterize_statics): New. Functions to support analysis + of static global variables. + (cgraph_mark_local_and_external_functions): Renamed from: + (cgraph_mark_local_functions) + (cgraph_expand_all_functions): Remove call to + cgraph_mark_local_and_external_functions. + (cgraph_optimize): Added driver to analyze static variables whose + scope is within the compilation unit. * cgraph.h (struct + cgraph_local_info, GTY): Added statics_read, statics_written, + local, calls_read_all, calls_write_all, for_functions_valid. + (struct cgraph_node): Added next_cycle. * cgraph.c + (dump_cgraph_node): Added print routines for new fields. * + makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc + list. + +2004-09-13 Joseph S. Myers + + * c-decl.c (grokdeclarator): Correct comments about where storage + class specifiers are rejected by grammar and add corresponding + asserts. Diagnose typedefs and parameters declared inline. + Change warning for inline main to a pedwarn. Only diagnose inline + main if hosted. + (declspecs_add_scspec): Allow duplicate "inline". + +2004-09-13 Steve Ellcey + + * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New. + (TARGET_SCALAR_MODE_SUPPORTED_P): New. + +2004-09-13 Richard Henderson + + PR 17436 + * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New. + (tree_type): Replace spare with contains_placeholder_bits. + (type_contains_placeholder_1): Rename from type_contains_placeholder_p, + make static. Remove seen_types list. + (type_contains_placeholder_p): New. + +2004-09-13 James E Wilson + + * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New. + (sb1_bdesc, bdesc_map, bdesc_arrays): New. + (mips_expand_builtin): Add SB-1 support. Use bdesc_map and + bdesc_arrays instead of mips_bdesc. + (mips_init_builtins): Likewise. + * config/mips/mips.h (TARGET_SB1): New. + (HAVE_SQRT_P): Delete. + * config/mips/mips.md (divide_condition): Support V2SF. + (sqrt_condition, recip_condition): New. + (div3): Use ANYF instead of SCALARF. + (*div3): Use ANYF instead of SCALARF. Use UNITMODE instead of + MODE. + (*recip3, *rsqrta, *rsqrtb): Use recip_condition + instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE + instead of MODE. + (sqrt2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF + instead of SCALARF. Use UNITMODE instead of MODE. + +2004-09-13 Zack Weinberg + + * config.in: Regenerate after removal of libbanshee. + +2004-09-13 Andrew MacLeod + + PR tree-optimization/17400 + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't + coalesce partitions when one occurs in an abnormal PHI. + +2004-09-13 Andrew Pinski + + * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's + name to _new_size. + +2004-09-13 Richard Henderson + + PR inline-asm/6806 + * cselib.c (cselib_invalidate_rtx): Export. Remove unused args. + (cselib_invalidate_rtx_note_stores): New. + (cselib_record_sets, cselib_process_insn): Update to match. + * cselib.h (cselib_invalidate_rtx): Declare. + * postreload.c (reload_cse_simplify): Invalidate asm clobbers. + +2004-09-13 Richard Henderson + + PR tree-opt/10528 + * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR, + after copying its argument. + +2004-09-13 Joseph S. Myers + + * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c, + c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting + in diagnostics. Use %' for English apostrophes. + * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define. + (pedwarn_c90, pedwarn_c99): Use it. + * c-decl.c (lookup_label): Quote label name in diagnostic. + * c-parse.in (yyprint): Use ' instead of ` for left quote. + * c-typeck.c (warn_for_assignment): Likewise. + +2004-09-13 Jan Hubicka + + * i386.c (x86_schedule): New global variable. + (override_options): Disable scheduling when not supported. + * i386.h (x86_schedule): Declare. + (TARGET_SCHEDULE): New macro. + +2004-09-12 Richard Henderson + + PR c++/16254 + * fold-const.c (fold) : Remove. + * tree.c, tree.h (has_cleanups): Remove. + +2004-09-12 Zdenek Dvorak + + * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname + arguments of the phi nodes correctly. + +2004-09-12 Jan Hubicka + + * ggc-common.c (cmp_statistics): Fix sorting. + +2004-09-12 David Edelsohn + + PR target/16795 + * expmed.c (expand_divmod): If cheap power of 2 divide is + available, use it for negative constant as well. + +2004-09-12 Andrew Pinski + + * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a + size of 0. + + * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove. + +2004-09-12 Richard Henderson + + * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one + or minus one. + (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for + post-reload, and scratch NULL. + * config/i386/i386.md (testqi_1): Use FLAGS_REG name. + (x86_shift_adj_2): Use ix86_expand_clear. + (ashldi3): Remove CMOVE expansion difference. + (ashldi3_1): Remove. + (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and + add constraints for immediates. New peephole for split-with-temp. + Run splitter after peep2 pass. + (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly. + (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly. + (setcc_2): Rename with *. + * config/i386/predicates.md (reg_or_pm1_operand): New. + (ashldi_input_operand): New. + +2004-09-12 Richard Henderson + + * common.opt: Remove flags -fmove-all-movables and + -freduce-all-givs. + * loop-invariant.c (find_invariants_to_move): + Remove all uses of flag_move_all_movables. + * loop.c (move_movables): Remove all uses of + flag_move_all_movables. + (strength_reduce): Remove all uses of + flag_reduce_all_givs. + * doc/invoke.texi: Remove documentation of flags + -fremove-all-movables and -freduce-all-givs. + +2004-09-11 Roger Sayle + + PR middle-end/17411 + * tree-sra.c (generate_element_zero): Revert recent build_int_cst + change. elt->type may be a floating point type, so use fold_convert. + +2004-09-11 Geoffrey Keating + + * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark + the thing referenced as used, not the stub itself. + +2004-09-11 Joseph S. Myers + + * c-tree.h (enum c_storage_class): New. + (struct c_declspecs): Add storage_class, inline_p and thread_p. + * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty + declarations and "auto" or "register" in file scope empty + declarations. Give more specific warnings for other cases of + storage class specifiers in empty declarations. + (grokdeclarator): Update for new structures. Don't check for + multiple storage classes. Diagnose file-scope "register" if + pedantic. + (build_null_declspecs): Update. + (declspecs_add_scspec): Update. Diagnose multiple storage class + specifiers and invalid uses of "__thread". + +2004-09-11 Zack Weinberg + + * tree.c (tree_code_size): New function, bulk of code from tree_size. + (tree_size, make_node): Use it. + * tree-ssa-pre.c (init_pre): Use it. + * tree.h: Prototype it. + +2004-09-11 Zdenek Dvorak + + * tree-cfg.c (set_bb_for_stmt): Use PHI_BB. + * tree-dfa.c (compute_immediate_uses, add_immediate_use, + redirect_immediate_use): Use PHI_DF. + * tree-flow-inline.h (stmt_ann): Abort on phi nodes. + (bb_for_stmt): Use PHI_BB. + (get_immediate_uses): Use PHI_DF. + * tree-ssa-dse.c (max_stmt_uid): New variable. + (get_stmt_uid): New function. + (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi + node annotations. + * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations. + (max_uid): Renamed to max_stmt_uid. + (get_stmt_uid): New function. + (maybe_queue_var, single_reachable_address, determine_lsm): Do not use + phi node annotations. + * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations. + * tree.h (PHI_BB, PHI_DF): New accessor functions. + (struct tree_phi_node): Add bb and df fields. + +2004-09-11 Richard Henderson + + PR middle-end/17416 + * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug + in conflict loop. + +2004-09-11 Jan Hubicka + + * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment. + (EMIT_MODE_SET): UNINITIALIZED mode needs no set. + * i386.md (i387_cw): Add 'uninitialized' mode. + + * profile.c (BB_TO_GCOV_INDEX): move more to the front. + (output_location): Break out from .... + (branch_prob): ... here; handle gcov output on trees. + * toplev.c (process_options): No longer be sorry about coverage for + trees. + +2004-09-11 Steven Bosscher + + PR c++/17412 + * fold-const.c (fold): Do not try to fold the operand of a + CLEANUP_POINT_EXPR if that operand does itself not have any + operands. + + PR middle-end/17417 + * langhooks.c (lhd_decl_printable_name): Make sure that this + function is called with is a decl node that has an identifier. + * tree-pretty-print.c (dump_function_name): New function to + wrap PRINT_FUNCTION_NAME and dump_decl_name. + (print_call_name): Use it. + +2004-09-11 Mohan Embar + + * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE, + "config.h" if not. + +2004-09-11 Jakub Jelinek + + * tree-ssa-alias.c (collect_points_to_info_r): Handle + pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing + to OFFSET. + +2004-09-11 Richard Henderson + + * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr. + (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the + operand of the ADDR_EXPR. + (expand_expr_real_1): Update to match. + +2004-09-11 David Edelsohn + + PR target/17277 + * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to + choose 64-bit version. + +2004-09-11 Richard Henderson + + PR c/17396 + * c-typeck.c (build_unary_op): Add legacy offsetof hack. + +2004-09-11 Kazu Hirata + + * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi, + doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi: + Insert @: after i.e. or e.g. + +2004-09-10 Geoffrey Keating + + * tree-pretty-print.c (dump_decl_name): Print unnamed decls as + D.xxx rather than . + +2004-09-10 Adam Nemet + + * configure.ac (AC_MSG_CHECKING(what linker to use)): + in_tree_ld_is_elf should be true for LynxOS. + * configure: Regenerate. + +2004-09-10 Adam Nemet + + * Makefile.in (all.cross): Add srcextra. + +2004-09-10 Roger Sayle + + PR middle-end/17024 + * fold-const.c (fold_cond_expr_with_comparison): Handle unordered + floating point comparison operators. Change aborts to gcc_asserts. + +2004-09-10 Geoffrey Keating + + * final.c (output_asm_insn): Correct problem with -fverbose-asm. + +2004-09-10 James E Wilson + + * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference. + (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment. + + * convert.c (convert_to_vector): Replace recursive call with + error_mark_node. + + * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0. + Add integer argument named constant. Use const_tiny_rtx instead of + CONST0_RTX. + (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX + and CONST1_RTX. + (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for + vector types. + * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead + of gen_rtx_raw_CONST_VECTOR. + +2004-09-10 Eric Christopher + + PR c/16046 + * c-parse.in (attribute): Add NULL_TREE for error case + for error recovery. + +2004-09-10 Zack Weinberg + + * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h. + (extract_interface_info): Delete prototype. + * c-decl.c (extract_interface_info): Delete stub. + * c-lex.c (get_fileinfo): Initialize file_info_tree here, if + it's not already been done ... + (init_c_lex): ... not here. + (fe_file_change): Don't call extract_interface_info. + +2004-09-11 Joseph S. Myers + + * c-tree.h (struct c_declspecs): Remove typedef_decl. Add + typedef_p and typedef_signed_p. + * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl. + (grokdeclarator): Don't use typedef_decl for warn_deprecated_use. + Check typedef_p and typedef_signed_p, not typedef_decl. + (grokfield): Check typedef_p, not typedef_decl. + (build_null_declspecs): Initialize typedef_p and typedef_signed_p, + not typedef_decl. + (declspecs_add_type): Set typedef_p and typedef_signed_p, not + typedef_decl. + +2004-09-10 Kazu Hirata + + * doc/tm.texi, doc/tree-ssa.texi: Fix typos. + +2004-09-10 Geoffrey Keating + + * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless + temporary variables. + + * dbxout.c (dbxout_block): Update for + current_function_func_begin_label a string. + * dwarf2out.c (dwarf2out_begin_prologue): Likewise. + * except.c (dw2_output_call_site_table): Likewise. + * toplev.c (current_function_func_begin_label): Likewise. + * tree.h (current_function_func_begin_label): Likewise. + * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise. + + * final.c (output_asm_insn): Use strtoul instead of atoi, save a + loop. + + * config/darwin.c: Include target.h. + (struct machopic_indirection): Make ptr_name a string. + (machopic_indirection_hash): Update for ptr_name a string. + (machopic_indirection_eq): Likewise. + (machopic_indirection_name): Likewise. + (machopic_output_indirection): Likewise. + (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a + string. Don't expect stub names to be in the identifier hash table. + Do call strip_name_encoding before looking up entry in ID hash table. + * config/t-darwin (darwin.o): Add target.h to dependencies. + + * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead + of fprintf for register names. + + * output.h (unlikely_section_label): Delete declaration. + (unlikely_text_section_name): Likewise. + * varasm.c (unlikely_section_label_printed): Make static. + (unlikely_section_label): Likewise. + (unlikely_text_section_name): Likewise. + (assemble_start_function): Use reconcat. + + * rtl.def (REG): Add comment to describe third field. + +2004-09-10 Andrew Pinski + + * config/darwin.c (machopic_mcount_stub_name): Call + machopic_indirection_name instead of making the string + ourselves. + +2004-09-10 Diego Novillo + + Revert + + 2004-09-08 Jie Zhang + + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type + memory tag is call clobbered, so are its aliases. + (group_aliases): When two memory tags being grouped, if one is + call clobbered, so are the other and its aliases. + (add_may_alias): Remove call-clobbering stuff. + (replace_may_alias): Likewise. + (merge_pointed_to_info): Merge pt_global_mem + +2004-09-10 Kazu Hirata + + * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c, + genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c, + passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c, + tree-scalar-evolution.c, tree-ssa-copyrename.c, + tree-ssa-live.c, tree-ssa-live.h: Fix comment typos. + +2004-09-10 Richard Sandiford + + * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants. + (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG + pair. Remove match_dup from inputs. Remove masaccs handling. + (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair. + (masaccs, mdasaccs): Turn into define_insns. + +2004-09-10 Richard Sandiford + + * tree-tailcall.c (process_assignment): Only do accumulator transforms + for floating-point types if flag_unsafe_math_optimizations. + +2004-09-10 Kazu Hirata + + * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c, + config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h, + config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md, + config/h8300/h8300.md, config/i386/gmm_malloc.h, + config/ia64/ia64.md, config/ip2k/libgcc.S, + config/mips/mips-ps-3d.md, config/mips/mips.c, + config/rs6000/rs6000.c, config/s390/s390.c, + config/sh/symbian.c: Fix comment typos. + +2004-09-10 Andreas Krebbel + + * config/s390/s390.c (s390_emit_prologue): Added missing + "{}" brackets. + +2004-09-10 Kazu Hirata + + * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix + typos. Follow spelling conventions. + +2004-09-10 Joseph S. Myers + + * toplev.c (warn_deprecated_use): Correct logic for saying "type" + in diagnostic. Don't dereference NULL TYPE_NAME. + +2004-09-10 Kazu Hirata + + * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c, + tree-data-ref.c, tree-flow.h, tree-ssa-operands.c, + tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h, + value-prof.c: Fix comment typos. Follow spelling conventions. + +2004-09-10 Jan Hubicka + + * tree-ssa-dce.c (remove_dead_stmt): Update profile. + * tree-split_edge.c (tree_split_edge): Likewise. + (thread_jumps): Likewise. + +2004-09-10 Kazu Hirata + + * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment + typos. + +2004-09-10 Paolo Bonzini + + * cgraph.h (cgraph_dump_file): Do not declare. + * cgraphunit.c (cgraph_dump_file): Declare as static. + (init_cgraph): New. + * toplev.c (cgraph_dump_file): Do not declare. + (compile_file): Call init_cgraph. + * tree-dump.c (dump_files): Add IPA dump file, remove + XML dump of call graph. + (get_dump_file_name): Support IPA dump file naming scheme. + * tree.h (enum tree_dump_index): Add IPA dump file, remove + XML dump of call graph. + * doc/invoke.texi (Debugging Options): Document the new options. + +2004-09-10 Richard Sandiford + + * doc/extend.texi: Document the FR-V built-in functions. + +2004-09-09 James E Wilson + + * doc/sourcebuild.texi: Delete libbanshee reference. + +2004-09-10 Kelley Cook + + * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command. + +2004-09-09 James E Wilson + + * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE + before calling vector_types_convertible_p. + (digest_init): Check that inside_init has VECTOR_TYPE before calling + vector_types_convertible_p. Don't give another error if + convert_for_assignment returns error_mark_node. + +2004-09-09 Roger Sayle + + PR middle-end/17055 + * fold-const.c (build_zero_vector): New function to construct a + vector (either floating point or integer) of zeros. + (fold_convert): Internally, enable conversions of integer zero + to arbitrary vector types, using the new build_zero_vector. + +2004-09-09 Roger Sayle + + * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to + expand a left shift by an immediate constant as either an ashl or + a sequence of additions. + (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function + instead of calling gen_ashlsi3 with a constant directly. + +2004-09-09 Roger Sayle + + * config/i386/i386.c (ix86_split_long_move): When optimizing for + size, and the low and high parts of a DImode constant are equal, + copy one register to another instead of loading the same immediate + value twice. + +2004-09-09 Richard Henderson + + PR middle-end/17367 + * function.c (assign_parm_setup_block): Only put PARALLELs into + a register if use_register_for_decl. + +2004-09-09 Eric Christopher + + * ra-colorize.c (reset_lists): Move variable declaration inside + ENABLE_CHECKING to avoid unused variable warnings when + not --enable-checking. + (check_colors): Ditto. + +2004-09-09 Mike Stump + + * version.c (version_string): Bump to 4.0.0. + * doc/include/gcc-common.texi (version-GCC): Likewise. + +2004-09-10 Jakub Jelinek + + * doc/extend.texi (nothrow attribute): The attribute is not + implemented in 3.2 and earlier. + +2004-09-09 Steve Ellcey + + * genrecog.c (compute_predicate_codes): Use op0_codes + instead of codes. + +2004-09-09 Ulrich Weigand + + * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET + implementation changes. + +2004-09-09 Ulrich Weigand + + * combine.c (try_combine): When swapping i2 and i3, newi2pat may be + a PARALLEL instead of a SET due to added clobbers. + +2004-09-09 Ulrich Weigand + + * reload.c (find_reloads_address): Pass correct operand to + maybe_memory_address_p. + +2004-09-09 Daniel Berlin + + * Makefile.in: Remove libbanshee, tree-alias-*. + Remove tree-alias-common.h dependencies. + * common.opt: Remove -ftree-points-to. + * configure.ac: Remove libbanshee. + * flags.h: Remove pta_type, flag_tree_points_to. + * gengtype.c (open_base_files): Remove tree-alias-type.h. + * opts.c (OPT_ftree_points_to): Remove. + * toplev.c: Remove tree-alias-common.h, flag_tree_points_to. + * tree-dfa.c: Remove tree-alias-common.h + * tree-into-ssa.c: Ditto. + * tree-outof-ssa.c: Ditto. + * tree-ssa-copyrename.c: Ditto. + * tree-ssa-live.c: Ditto. + * tree-optimize.c: Ditto. + * tree-ssa.c: Ditto. + Remove pass_build_pta, pass_del_pta. + * tree-pass.h: Ditto. + * tree-ssa-alias.c: Remove tree-alias-common.h. + (struct alias_stats_d): Remove pta_queries, pta_resolved. + (pass_may_alias): Remove PROP_pta requirement. + (may_alias_p): Remove pta_queries, pta_resolved, use of andersens. + (get_tmt_for): Ditto. + (dump_alias_stats): Ditto. + * doc/passes.texi: Remove blurb about points-to analysis. + * fortran/Make-lang.in: Remove tree-alias-*.o. + +2004-09-09 Richard Sandiford + + * genattrtab.c (write_insn_cases): New function, split out from + write_attr_case. Correctly handle define_peepholes when printing + the instruction name. + (write_attr_case, write_const_num_delay_slots): Use write_insn_cases. + +2004-09-09 Hans-Peter Nilsson + + PR target/17377 + * config/cris/cris-protos.h (cris_return_address_on_stack): Declare. + * config/cris/cris.c (cris_return_address_on_stack): New function. + * config/cris/cris.md ("return"): For location of return address, + also check cris_return_address_on_stack. + +2004-09-09 Diego Novillo + + * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in + calling phi_ssa_name_p. + +2004-09-09 Richard Henderson + + PR c/17322 + * c-typeck.c (valid_compound_expr_initializer): Use only + initializer_constant_valid_p, and not TREE_CONSTANT. + (digest_init): Likewise. + (output_init_element): Likewise. + +2004-09-09 Giovanni Bajo + + * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1, + live_out_1, prune_hardregs_for_mode, init_one_web_common, + reinit_one_web, add_subweb, add_subweb_2, init_web_parts, + record_conflict, compare_and_free_webs, init_webs_defs_uses, + parts_to_webs_1, parts_to_webs, reset_conflicts, + check_conflict_numbers, remember_web_was_spilled, handle_asm_insn, + ra_build_free): Use gcc_assert and gcc_unreachable instead of abort. + * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end, + put_move, remove_move, combine, select_spill, colorize_one_web, + try_recolor_web, insert_coalesced_conflicts, check_colors, + break_precolored_alias, restore_conflicts_from_coalesce, + sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise. + * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads, + reloads_to_loads, rewrite_program2, emit_colors): Likewise. + * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra, + check_df): Likewise. + * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc, + real_arithmetic, real_compare, real_exponent, real_ldexp, + real_identical, real_to_integer, real_to_integer2, real_to_decimal, + real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo, + real_digit, real_nan, real_maxval, round_for_format, real_convert, + real_to_target, real_from_target, real_hash, 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): Likewise. + * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok, + extract_insn, peep2_next_insn, peep2_reg_dead_p, + peep2_find_free_register, peephole2_optimize, store_data_bypass_p, + if_test_bypass_p): Likewise. + * reg-stack.c (record_label_references, get_asm_operand_n_inputs, + stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn, + emit_swap_insn, swap_to_top, move_for_stack_reg, + subst_stack_regs_pat, subst_asm_stack_regs, change_stack, + compensate_edge, convert_regs_1): Likewise. + * regclass.c (init_reg_sets, init_reg_sets_1, + memory_move_secondary_cost): Likewise. + * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx): + Likewise. + * reload.c (push_secondary_reload, find_valid_class, push_reload, + operands_match_p, decompose, immune_p, find_reloads, + find_reloads_toplev, find_reloads_address_1, subst_reloads, + copy_replacements, refers_to_regno_for_reload_p, + reg_overlap_mentioned_for_reload_p): Likewise. + * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload, + count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn, + verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use, + reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict, + choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns, + do_output_reload, fixup_abnormal_edges): Likewise. + * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags, + fill_slots_from_thread, relax_delay_slots): Likewise. + * resource.c (mark_referenced_resources, mark_set_resources): + Likewise. + * rtl.c (copy_rtx, rtx_equal_p): Likewise. + * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p, + dead_or_set_p, find_reg_fusage, remove_note, replace_rtx, + subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p, + find_first_parameter_load, can_hoist_insn_p, hoist_update_store, + hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise. + * rtlhooks.c (gen_lowpart_general): Likewise. + * sbitmap.c (sbitmap_difference): Likewise. + * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2, + sched_analyze, add_forward_dependence): Likewise. + * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise. + * sched-rgn.c (debug_regions, compute_trg_info, schedule_region, + schedule_insns): Likewise. + * sched-vis.c (print_pattern): Likewise. + * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise. + * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, + simplify_const_relational_operation, simplify_ternary_operation, + simplify_immed_subreg, simplify_subreg, simplify_gen_subreg): + Likewise. + * sreal.c (copy, sreal_sub, sreal_div): Likewise. + * stmt.c (force_label_rtx, expand_goto, expand_asm_operands, + resolve_operand_name_1, expand_return, expand_decl, + expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise. + * stor-layout.c (put_pending_size, smallest_mode_for_size, + int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type, + set_sizetype, get_mode_bounds): Likewise. + +2004-09-09 Zack Weinberg + + * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default. + * config/arm/pecoff.h, config/i386/beos-elf.h + * config/i386/cygming.h, config/i386/i386-interix.h: + Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove + comment cloned from manual. + * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES. + +2004-09-09 Frank Ch. Eigler + + * builtins.c (build_va_arg_indirect_ref): New function. + (std_gimplify_va_arg_expr): Call it instead of mudflap check and + build_fold_indirect_ref. + * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto. + * tree.h: Declare new function. + +2004-09-09 Nathan Sidwell + + * cgraphunit.c (cgraph_mark_functions_to_output): Renable node + dumping for development builds. + * emit-rtl.c (verify_rtx_sharing): Give verbose failure for + development builds only. + * genattrtab.c (write_eligible_delay): Fix typo in previous + commit. + * tree.c (iterative_hash_expr): Replace gcc_unreachable with + gcc_assert. + +2004-09-09 Nathan Sidwell + + * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set, + cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set, + process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn, + hoist_code, extract_mentioned_regs_helper, compute_store_table, + insert_store): Use gcc_assert and gcc_unreachable. + * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free, + gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs, + ggc_record_overhead): Likewise. + * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p, + init_ggc, ggc_push_context, ggc_recalculate_in_use_p, + ggc_pop_context, clear_marks, validate_free_objects, + ggc_pch_read): Likewise. + * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark, + ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone, + ggc_push_context, check_cookies, ggc_collect, + ggc_print_statistics): Likewise. + * gimple-low.c (lower_function_body, lower_stmt, + lower_bind_expr): Likewise. + * gimplify.c (gimple_tree_eq, push_gimplify_context, + pop_gimplify_context, gimple_pop_condition, create_tmp_var, + declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus, + mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr, + gimplify_case_label_expr, gimplify_exit_block_expr, + canonicalize_component_ref, gimplify_compound_lval, + gimplify_self_mod_expr, gimplify_call_expr, + gimplify_init_ctor_eval, gimplify_init_constructor, + gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr, + gimplify_expr, check_pointer_types_r, + force_gimple_operand): Likewise. + * global.c (global_alloc, build_insn_chain): Likewise. + * graph.c (clean_graph_dump_file, + finish_graph_dump_file): Likewise. + gcov-io.c (gcov_open): Use GCOV_CHECK. + +2004-09-09 Richard Sandiford + + * config/frv/frv.c (acc_operand, accg_operand): Use REGNO. + +2004-09-09 Jan Hubicka + + middle-end/17128 + * tree-inline.c (expand_call_inline): Make overactive sanity check + happy. + +2004-09-09 Jan Hubicka + + * tree-ssa-loop-ivopts.c (peel_address): Fix abort on + VIEW_CONVERT_EXPR. + +2004-09-09 Nathan Sidwell + + * Makefile.in (gengtype): Use $(BUILD_ERRORS). + (gengtype.o): Depend on errors.h. + * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable. + (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr, + attr_alt_subset_p, attr_alt_subset_of_compl_p, + attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn, + write_test_expr, write_attr_value, write_eligible_delay, + make_internal_attr, make_numeric_value): Likewise. + * genautomata.c (regexp_name, get_str_vect, + gen_presence_absence_set, automaton_decl_hash, + automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash, + decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps, + process_regexp_cycles, reserv_sets_cmp, set_unit_reserv, + test_unit_reserv, it_is_empty_reserv_sets, + reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or, + reserv_sets_and, output_cycle_reservs, get_free_state, + intersected_state_reservs_p, states_union, remove_arc, + copy_insn_regexp, transform_1, transform_2, transform_3, + regexp_transform_func, store_alt_unit_usage, + check_regexp_units_distribution, process_seq_for_forming_states, + process_alts_for_forming_states, make_automaton, + form_arcs_marked_by_insn, create_composed_state, + set_out_arc_insns_equiv_num, partition_equiv_class, + process_insn_equiv_class, set_insn_equiv_classes, + units_to_automata_heuristic_distr, form_regexp, + longest_path_length, output_dfa_max_issue_rate, add_vect, + out_state_arcs_num, add_vect_el, output_trans_table, + output_state_alts_table, output_dead_lock_vect, + output_max_insn_queue_index_def, + output_min_insn_conflict_delay_func, + output_internal_insn_latency_func, output_print_reservation_func, + output_cpu_unit_reservation_p, output_state_arcs, + make_insn_alts_attr, make_internal_dfa_insn_code_attr, + make_default_insn_latency_attr, + form_important_insn_automata_lists): Likewise. + * genemit.c (gen_exp, output_add_clobbers, + output_added_clobbers_hard_reg_p): Likewise. + * genextract.c (print_path, main): Likewise. + * genflags.c (gen_macro): Likewise. + * gengenrtl.c: Include errors.h + (type_from_format, accessor_from_format): Likewise. + * gengtype.c (get_file_basename, output_mangled_typename, + walk_type, write_types_process_field, + write_types_local_process_field): Likewise. + * genmodes.c (complete_mode): Likewise. + * genopinit.c (gen_insn): Likewise. + * genoutput.c (output_insn_data, check_constraint_len, + constraint_len): Likewise. + * genpreds.c (add_mode_tests):Likewise. + * gen-protos.c (add_hash): Likewise. + * genrecog.c (find_operand, find_matching_operand, + validate_pattern, add_to_sequence, maybe_both_true, + nodes_identical_1, merge_trees, write_switch, write_cond, + write_action, is_unconditional, make_insn_sequence, + debug_decision_2): Likewise. + * gensupport.c (is_predicable, collect_insn_data, + alter_predicate_for_insn, maybe_eval_c_test): Likewise. + +2004-09-09 Jan Hubicka + + * basic-block.h (guess_outgoing_edge_probabilities): Declare. + * cfgbuild.c (compute_outgoing_frequencies): When probability is + missing, guess it. + (find_many_sub_basic_blocks): Do update profile only when it is + present. + * predict.c (set_even_probabilities): Break out from ... + (combine_predictions_for_insn): ... here; deal with + !can_predict_insn_p insns. + (combine_predictions_for_bb): Use set_even_probabilities. + (bb_estimate_probability_locally): Break out from .... + (estimate_probability): ... here. + (guess_outgoing_edge_probabilities): New entry point. + +2004-09-09 Nathan Sidwell + + * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1, + handle_braces, process_brace_body, main, used_arg, + set_multilib_dir, print_multilib_info): Use fatal, not abort. + + * tree-nested.c (create_tmp_var_for): Correct missinverted assert. + + * tree-outof-ssa.c (free_temp_expr_table): Add missed assert. + * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de + Morgan's theorem in last checkin. + +2004-09-09 Giovanni Bajo + Nathan Sidwell + + * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p): + Use gcc_assert, gcc_unreachable & internal_error instead of abort. + * timevar.c (timevar_push, timevar_pop, timevar_start, + timevar_stop): Likewise. + * toplev.c (default_pch_valid_p): Likewise. + * tracer.c (tail_duplicate): Likewise. + * tree-alias-common.c (get_alias_var_decl, + get_values_from_constructor, create_alias_var, delete_alias_vars, + empty_points_to_set, same_points_to_set, ptr_may_alias_var): + Likewise. + * tree.c (tree_size, make_node_stat, copy_node_stat, + build_int_cst_wide, integer_all_onesp, list_length, chainon, + tree_node_structure, type_contains_placeholder_p, substitute_in_expr, + substitute_placeholder_in_expr, tabilize_reference_1, build0_stat, + build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p, + lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr, + build_method_type_directly, decl_type_context, get_callee_fndecl, + get_set_constructor_bits, build_vector_type_for_mode, int_cst_value, + tree_fold_gcd): Likewise. + * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges, + make_cond_expr_edges, group_case_labels, tree_merge_blocks, + cleanup_control_expr_graph, find_taken_edge, + find_taken_edge_switch_expr, phi_alternatives_equal, + is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt, + stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate, + tree_split_edge, tree_verify_flow_info, thread_jumps, + tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise. + * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly, + chrec_fold_multiply_poly_poly): Likewise. + * tree-complex.c (extract_component, expand_complex_division, + expand_complex_comparison, expand_complex_operations_1, + build_replicated_const, expand_vector_operations_1): Likewise. + * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector, + build_classic_dir_vector): Likewise. + * tree-dfa.c (compute_immediate_uses_for_phi, + compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann, + create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise. + * tree-dump.c (dequeue_and_dump): Likewise. + * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region, + record_in_finally_tree, replace_goto_queue_1, + maybe_record_in_goto_queue, verify_norecord_switch_expr, + do_return_redirection): Likewise. + * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr, + add_to_dst_predicate_list, find_phi_replacement_condition, + replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order): + Likewise. + * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r, + initialize_inlined_parameters, declare_return_variable, + estimate_num_insns_1, expand_call_inline, expand_calls_inline, + optimize_inline_calls, copy_tree_r): Likewise. + * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt, + ssa_rewrite_stmt, rewrite_into_ssa): Likewise. + * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after, + tsi_split_statement_list_after, tsi_split_statement_list_before): + Likewise. + * tree-mudflap.c (mf_varname_tree): Likewise. + * tree-nested.c (create_tmp_var_for, lookup_field_for_decl, + lookup_tramp_for_decl, convert_all_function_calls): Likewise. + * tree-optimize.c (tree_rest_of_compilation): Likewise. + * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi, + coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis, + free_temp_expr_table, add_dependance, finish_expr, rewrite_trees): + Likewise. + * tree-phinodes.c (resize_phi_node, add_phi_arg, + remove_all_phi_nodes_for): Likewise. + * tree-pretty-print.c (op_prio, print_call_name): Likewise. + * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler, + tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise. + * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree, + sra_elt_eq, sra_walk_expr, instantiate_missing_elements, + generate_one_element_ref, generate_element_copy, + generate_element_zero, scalarize_copy, scalarize_init, + scalarize_ldst): Likewise. + * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p, + add_may_alias, add_pointed_to_expr, add_pointed_to_var, + collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise. + * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise. + * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value, + set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment, + widen_bitfield, ccp_fold_builtin): Likewise. + * tree-ssa-copy.c (may_propagate_copy, merge_alias_info, + replace_exp_1, propagate_tree_value): Likewise. + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. + * tree-ssa-dce.c (set_control_dependence_map_bit, + find_control_dependence, find_pdom, mark_operand_necessary, + mark_stmt_if_obviously_necessary, + mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise. + * tree-ssa-dom.c (dom_opt_initialize_block_local_data, + simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis, + eliminate_redundant_computations, avail_expr_eq): Likewise. + * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise. + * tree-ssa-loop-ch.c (should_duplicate_loop_header_p, + duplicate_blocks): Likewise. + * tree-ssa-loop-im.c (for_each_index, set_level, + is_call_clobbered_ref): Likewise. + * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos, + stmt_after_increment, set_iv, contains_abnormal_ssa_name_p, + find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates, + peel_address, ptr_difference_cost, may_replace_final_value, + determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer, + rewrite_use, rewrite_uses): Likewise. + * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, + check_loop_closed_ssa_use): Likewise. + * tree-ssanames.c (make_ssa_name): Likewise. + * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses, + finalize_ssa_v_must_defs, finalize_ssa_stmt_operands, + get_stmt_operands, get_expr_operands, get_asm_expr_operands, + get_indirect_ref_operands, add_stmt_operand): Likewise. + * tree-ssa-pre.c (value_exists_in_set_bitmap, + value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set, + phi_translate, valid_in_set, compute_antic, + find_or_generate_expression, create_expression_by_pieces, insert_aux, + create_value_expr_from, eliminate): Likewise. + * tree-ssa-propagate.c (cfg_blocks_get): Likewise. + * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges): + Likewise. + * tree-tailcall.c (independent_of_stmt_p, adjust_return_value, + eliminate_tail_call): Likewise. + * tree-vectorizer.c (vect_create_index_for_array_ref, + vect_align_data_ref, vect_create_data_ref, + vect_create_destination_var, vect_get_vec_def_for_operand, + vect_finish_stmt_generation, vect_transform_stmt, + vect_transform_loop_bound, vect_transform_loop, + vect_analyze_operations): Likewise. + * tree-vn.c (vn_compute, set_value_handle, get_value_handle): + Likewise. + * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr, + get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start, + bsi_after_labels, bsi_last): Likewise. + * tree-ssa-live.c (var_union, change_partition_var, + create_ssa_var_map, calculate_live_on_entry, root_var_init, + type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce): + Likewise. + * tree-ssa-live.h (partition_is_global, live_entry_blocks, + tpa_find_tree): Likewise. + (register_ssa_partition_check): Declare. + (register_ssa_partition): use it. + * tree-ssa-live.c: Include errors.h. + (register_ssa_partition_check): New. + * tree-ssa-operands.c: Include errors.h. + * Makefile.in (tree-ssa-operands.o): Depend on errors.h. + +2004-09-09 Richard Sandiford + Catherine Moore + + * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450) + (FRV_CPU_FR405): New processor enums. + (frv_issue_rate, frv_acc_group): Declare. + * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete. + (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete. + (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros. + (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete. + (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously + handled by CPP_SPEC. + (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros. + (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros. + (ACC_MASK): New macro. + (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}. + (TARGET_MEDIA_FR450): New macro. + (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros. + (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls. + (LABEL_ALIGN_AFTER_BARRIER): Define. + (ACC_LAST, ACCG_LAST): Add four new accumulator registers. + (IACC_FIRST, IACC_LAST): New pair of SPRs. + (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly. + (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER) + (REGISTER_NAMES): Add entries for new registers. + (REG_CLASS_CONTENTS): Update for new register ranges. + (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand. + (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete. + (PACKING_FLAG_USED_P): Delete. + (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI) + (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL) + (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS) + (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS) + (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS) + (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l}) + (FRV_BUILTIN_SCAN): New members of frv_builtin_enum. + (FRV_BUILTIN_FIRST_NONMEDIA): New macro. + (CPU_UNITS_QUERY): Define to 1. + * config/frv/frv.c: Include gt-frv.h + (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros. + (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros. + (frv_insn_group): New enumeration. + (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables. + (frv_type_to_unit, frv_nops, frv_num_nops): New variables. + (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK) + (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the + gap left by REGSTATE_LIVE. + (regstate_t): New typedef. + (TARGET_MACHINE_DEPENDENT_REORG): Define. + (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}. + (frv_override_options): Check for -mcpu={fr550,fr450,fr405}. + Initialize frv_unit_codes[] and frv_type_to_unit[]. + (frv_conditional_register_usage): Remove redundant fixing of + accumulator registers. + (frv_insn_packing_flag): Update specification. + (frv_function_prologue): Don't set frv_insn_packing_flag here. + Zero out frv_nops[]. + (frv_expand_epilogue): Remove comments about the no-longer-present + SIBCALL_P argument. + (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than + PACKING_FLAG_USED_P() when deciding whether to pack instructions. + (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light + of the new meaning of frv_insn_packing_flag. Emit an mnop.p if + packing is disabled and if INSN can only issue to M1. + (call_operand): Check TARGET_LONG_CALLS. + (acc_operand, even_acc_operand, quad_acc_operand) + (accg_operand): Simplify. Don't accept pseudo registers. + (output_move_single): Handle SPR<-zero moves. + (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}. + (frv_registers_update, frv_registers_used_p): Delete. + (frv_registers_set_p): Delete. + (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions. + (frv_issues_to_branch_unit_p): New function. + (frv_packet): New structure. + (frv_cond_flags, frv_regstate_conflict_p): New functions. + (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions. + (frv_registers_update_1, frv_registers_update): New functions. + (frv_start_packet, frv_start_packet_block, frv_finish_packet) + (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet) + (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns) + (frv_sort_insn_group, frv_reorder_packet): New functions. + (frv_pack_insns): Use frv_reorder_packet. + (frv_packet_address): New variable. + (frv_fill_unused_units, frv_align_label, frv_reorg_packet) + (frv_register_nop, frv_reorg): New functions. + (bdesc_1arg): Add __SCUTSS. + (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS, + __SUBSS, __SLASS and __SCAN. + (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI. + (bdesc_int_void2arg, bdesc_prefetches): New arrays. + (frv_init_builtins): Register the above builtins. + (frv_int_to_acc): Use ACC_MASK to check for valid accumulator + registers. Turn the referenced accumulators into global registers. + (frv_read_iacc_argument): New function. + (frv_expand_int_void2arg, frv_expand_prefetches): New functions. + (frv_split_iacc_move): New function. + (frv_expand_builtin): Handle the new builtins. + * config/frv/frv.md: Replace old schedulers with new order-independent + ones. Add schedulers for the FR405, FR450 and FR550. Describe new + packing algorithm. + (cpu): Add fr550, fr450 and fr405. + (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and + mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7. + (*muladd[sd]f4, *mulsub[sd]f4): Fix types. + (*cmp[sd]f_cc_fp): Use new f[sd]cmp types. + (fnop, mnop): New patterns. + (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI): + New constants. + (mexpdhw, *cond_exec_mexpdhw): Fix destination operands. + (mclracca8): Use ACC_MASK to determine the upper set of accumulator + registers. + (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns. + (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS) + (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS) + (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll) + (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS) + (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants. + (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss) + (frv_prefetch0, frv_prefetch): New patterns. + * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and + -mcpu=simple. Add -mcpu=fr550. + (MULTILIB_DIRNAMES): Update accordingly. + (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and + -mcpu=fr450. + * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405}, + -mlong-calls and -malign-labels options for FR-V. + +2004-09-09 Joseph S. Myers + + PR c/8420 + * c-tree.h (struct c_declspecs): New. + (struct c_declarator, struct c_type_name, struct c_parm): Update + element types. + (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned, + start_function, start_decl, build_c_parm, + make_pointer_declarator): Update prototypes. + (build_null_declspecs, declspecs_add_qual, declspecs_add_type, + declspecs_add_scspec, declspecs_add_attrs): New. + (split_specs_attrs): Remove. + * c-parse.in (%union): Add dsptype. + (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_attrs): Change to dsptype. + (struct c_declspec_stack): New. + (current_declspecs, declspec_stack): Change type. + (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new + structures. + (extdefs): Likewise. + (setspecs): Likewise. + (fndef): Use current_declspecs for empty declspecs list. + (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): Update to new + structures and helper functions. Update comments. + (typespec_nonattr): Correct comment. + (maybe_type_quals_attrs, typename): Update to new structures. + * c-decl.c (grokdeclarator, build_array_declarator, grokfield, + shadow_tag, shadow_tag_warned, start_function, start_decl, + build_c_parm, make_pointer_declarator, + set_array_declarator_inner, groktypename): Update to new + structures. + (build_null_declspecs, declspecs_add_qual, declspecs_add_type, + declspecs_add_scspec, declspecs_add_attrs): New. + (split_specs_attrs): Remove. + (shadow_tag_warned): Make warning for useless type names a + pedwarn. Give hard error for long, short, signed, unsigned or + _Complex used with struct, union or enum in empty declaration. + Make found_tag a bool. + (grokdeclarator): Remove checks now done at parse time. + +2004-09-09 Joseph S. Myers + + * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct + c_declarator, struct c_type_name, struct c_parm): New. + (build_array_declarator, set_array_declarator_inner, + get_parm_info, grokfield, groktypename, grokparm, push_parm_decl, + start_function, start_decl, build_c_parm, build_attrs_declarator, + build_function_declarator, make_pointer_declarator, c_cast_expr, + store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes. + (build_id_declarator): New. + * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new + structures. + * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, + ARG_INFO_OTHERS): Remove. + (build_id_declarator): New. + (build_array_declarator, set_array_declarator_inner, groktypename, + start_decl, grokparm, push_parm_decl, grokparms, get_parm_info, + grokfield, start_function, store_parm_decls_newstyle, + store_parm_decls_oldstyle, store_parm_decls, + build_c_parm, build_attrs_declarator, build_function_declarator, + make_pointer_declarator, grokdeclarator): Update to new + structures. + * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and + parmtype. + (declarator, notype_declarator, after_type_declarator, + parm_declarator, parm_declarator_starttypename, + parm_declarator_nostarttypename, array_declarator, typename, + absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1, + absdcl_maybe_attribute, parm, firstparm, parms, parmlist, + parmlist_1, parmlist_2, parmlist_or_identifiers, + parmlist_or_identifiers_1): Use these types. + (primary, after_type_declarator, parm_declarator_starttypename, + notype_declarator, component_decl, component_declarator, + component_notype_declarator, typename, absdcl, + absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1, + parmlist_2, parmlist_or_identifiers_1): Update to new structures. + +2004-09-09 Joseph S. Myers + + * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof, + in_typeof, record_maybe_used_decl, pop_maybe_used, + c_expr_sizeof_expr, c_expr_sizeof_type): New. + * c-decl.c (parser_obstack): New. + (c_init_decl_processing): Initialize parser_obstack. + (c_write_global_declarations_1): Check for used but undefined + static functions. + * c-parse.in (%union): Add otype. + (save_obstack_position): New. + (extdefs): Use it. + (unary_expr): Update in_sizeof and in_alignof. Use + c_expr_sizeof_expr and c_expr_sizeof_type. + (sizeof): Update in_sizeof. + (alignof): Update in_alignof. + (typeof): Update in_typeof. + (typespec_nonreserved_nonattr): Call pop_maybe_used. + * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct + maybe_used_decl, maybe_used_decls, record_maybe_used_decl, + pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New. + (build_external_ref): Set C_DECL_USED or call + record_maybe_used_decl if appropriate. + * toplev.c (check_global_declarations): Check TREE_NO_WARNING. + +2004-09-08 Eric Christopher + + * builtins.c: Fix prototype for fold_builtin_atan. + +2004-09-08 Eric Christopher + + * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt, + fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan, + fold_builtin_atan): New functions. Migrate function bodies... + (fold_builtin_1): ... from here. + +2004-09-09 Alan Modra + + * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of + save_size. + +2004-09-08 David Edelsohn + + * config/rs6000/power4.md (power4-lmul): du4 feeds iu1. + * config/rs6000/power5.md (power5-lmul): Same. + +2004-09-08 Richard Henderson + + PR rtl-opt/17186 + * function.c (expand_function_end): Have fall-off-the-end + return path jump around return register setup. + +2004-09-08 Eric Botcazou + + * config/sparc/sparc.c (sparc_indent_opcode): New variable. + (output_return): Do not test for the presence of the 'unimp' insn. + Use 'current_function_uses_only_leaf_regs' and 'final_sequence' + as predicates instead of custom ones. Return raw strings when + possible. + (output_sibcall): Likewise. Concatenate strings. + (output_ubranch): Remove kludge for TurboSPARC. + (output_cbranch): Remove 'noop' parameter. Do not output 'nop'. + (output_v9branch): Likewise. + (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'. + <#>: Set sparc_indent_opcode if the delay slot is filled. + <(>: Likewise. + <)>: New operand to emit the displacement from the saved PC on return. + <@>: Remove. + * config/sparc/sparc.h (sparc_indent_opcode): Declare it. + (ASM_OUTPUT_OPCODE): New macro. + (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'. + * config/sparc/sparc.md (normal_branch, inverted_branch, + normal_fp_branch, inverted_fp_branch, normal_fpe_branch, + inverted_fpe_branch): Adjust call to output_cbranch. + (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust + call to output_v9branch. + * config/sparc/sparc-protos.h (output_cbranch): Adjust. + (output_v9branch): Likewise. + +2004-09-08 Devang Patel + + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr, + -segs_read_only_addr and -segs_read_write_addr. + (WORD_SWITCH_TAKES_ARG): Same. + (LINK_SPEC): Same. + * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and + -segs_read_write_addr. + +2004-09-08 Richard Henderson + + * function.c (reference_callee_copied): New. + (assign_parm_setup_reg): Use it. + * calls.c (initialize_argument_information): Likewise. + (emit_library_call_value_1): Likewise. + * function.h (reference_callee_copied): Declare. + + * target.h (struct gcc_target): Add callee_copies. + * target-def.h (TARGET_CALLEE_COPIES): New. + (TARGET_PASS_BY_REFERENCE): Update default. + * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * targhooks.c (hook_callee_copies_named): New. + (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from + hook_pass_by_reference_false. + (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New. + * targhooks.h: Update decls. + * config/arc/arc.c (TARGET_CALLEE_COPIES): New. + * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove. + * config/frv/frv.c (frv_function_arg_callee_copies): Remove. + * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New. + * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New. + * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/mips/mips.c (TARGET_CALLEE_COPIES): New. + (mips_callee_copies): New. + * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New. + * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New. + * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/pa/pa.c (TARGET_CALLEE_COPIES): New. + * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/sh/sh.c (sh_callee_copies): New. + (TARGET_CALLEE_COPIES): New. + * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * config/v850/v850.c (TARGET_CALLEE_COPIES): New. + * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove. + * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation + for FUNCTION_ARG_CALLEE_COPIES. + * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update. + +2004-09-08 Devang Patel + + * tree-if-conv.c (find_phi_replacement_condition): Return true + edge block. + (replace_phi_with_cond_modify_expr): Select conditional expr args + based on true edge basic block. + +2004-09-08 Jan Hubicka + + * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for + variables being alias set. + +2004-09-08 Nathan Sidwell + + * final.c (shorten_branches, final, get_insn_template, + output_alternate_entry_point, final_scan_insn, alter_subreg, + alter_cond, output_operand, asm_fprintf, final_forward_branch_p, + leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable. + * fix-header.c (lookup_std_proto): Likewise. + * flow.c (first_insn_after_basic_block_note, verify_wide_reg, + verify_local_live_at_start, update_life_info, mark_reg, + calculate_global_regs_live, allocate_reg_life_data, + init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1, + ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond, + attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise. + * fold-const.c (force_fit_type, div_and_round_double, + may_negate_without_overflow_p, int_const_binop, const_binop, + size_binop, size_diffop, fold_convert_const, fold_convert, + invert_tree_comparison, swap_tree_comparison, + comparison_to_compcode, compcode_to_comparison, invert_truthvalue, + range_binop, make_range, fold_cond_expr_with_comparison, + fold_div_compare, fold, fold_checksum_tree, fold_negate_const, + fold_abs_const, fold_not_const, fold_relational_const, round_up, + round_down): Likewise. + * function.c (find_function_data, assign_stack_temp_for_type, + instantiate_virtual_regs_lossage, aggregate_value_p, + assign_parm_find_entry_rtl, assign_parm_setup_block, + expand_function_start, expand_function_end, keep_stack_depressed, + handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise. + +2004-09-08 Daniel Berlin + + * Makefile.in (tree-loop-linear.o): Added. + (OBJS-common): Add tree-loop-linear.o + * common.opt: New flag, ftree-loop-linear. + * timevar.def: New timevar, TV_TREE_LOOP_LINEAR. + * tree-flow.h: Add prototype for linear_transform_loops. + * tree-optimize.c: Add linear transform after vectorization. + * tree-pass.h: Add struct pass_linear_transform. + * tree-ssa-loop.c: Add pass_linear_transform. + * tree-loop-linear.c: New file. + * lambda-code.c: gcc_assertify. + (gcc_loop_to_lambda_loop): Handle all exit tests. + Handle case where we have (invariant >= induction var). + (find_induction_var_from_exit_cond): Ditto. + +2004-09-08 Jie Zhang + + * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type + memory tag is call clobbered, so are its aliases. + (group_aliases): When two memory tags being grouped, if one is + call clobbered, so are the other and its aliases. + (add_may_alias): Remove call-clobbering stuff. + (replace_may_alias): Likewise. + (merge_pointed_to_info): Merge pt_global_mem + +2004-09-08 Jan Hubicka + + * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node. + * cgraphunit.c (verify_cgraph): Don't verify on syntax errors. + (cgraph_expand_function): Remove stale cgraph edges of currently + compiled function; fix non-unit-at-a-time code copying function + node for later reuse. + +2004-09-08 Nathan Sidwell + + * vec.c (vec_p_reserve, vec_o_reserve): Rename to ... + (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to + (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust. + (vec_gc_free, vec_heap_free): New. + * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New. + (DEF_VEC_P): Add allocator argument. Adjust. + (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New. + (DEF_VEC_O): Add allocator argument. Adjust. + (VEC(free)): New. + + * tree.h (tree): Define a GC'd vector. + * lamba-code.c (lambda_loop): Likewise. + * value-prof.h (histogram_value): Likewise. + +2004-09-08 Nathan Sidwell + + * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable. + (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno, + gen_lowpart_common, gen_highpart, gen_highpart_mode, + subreg_highpart_offset, operand_subword, operand_subword_force, + mem_expr_equal_p, set_mem_attributes_minus_bitpos, + set_mem_alias_set, change_address_1, verify_rtx_sharing, + copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter, + try_split, add_insn_after, add_insn_before, remove_insn, + remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before, + emit_call_insn_before, emit_insn_after, emit_jump_insn_after, + emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn, + set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1, + gen_const_vector_0, emit_copy_of_insn_after): Likewise. + * et-forest.c (set_prev, set_next, et_check_occ_sanity, + record_path_before_1, check_path_after_1, check_path_after): Likewise. + * except.c (gen_eh_region, resolve_one_fixup_region, + remove_unreachable_regions, convert_from_eh_region_ranges_1, + add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads, + connect_post_landing_pads, sjlj_emit_function_exit, + remove_exception_handler_label, remove_eh_handler, + reachable_next_level, collect_one_action_chain, + output_function_exception_table): Likewise. + * explow.c (trunc_int_for_mode, copy_to_mode_reg, + optimize_save_area_alloca, allocate_dynamic_stack_space, + probe_stack_range, hard_function_value): Likewise. + * expmed.c (mode_for_extraction, store_bit_field, + store_fixed_bit_field, extract_bit_field, expand_shift, + expand_mult_const, expand_mult, choose_multiplier, + expand_mult_highpart, expand_divmod, emit_store_flag, + do_cmp_and_jump): Likewise. + * expr.c (convert_move, convert_modes, move_by_pieces, + move_by_pieces_ninsns, move_by_pieces_1, emit_block_move, + move_block_from_reg, gen_group_rtx, emit_group_load, + emit_group_move, emit_group_store, use_reg, use_regs, + can_store_by_pieces, store_by_pieces, store_by_pieces_1, + emit_move_insn, emit_move_insn_1, emit_push_insn, + expand_assignment, store_expr, count_type_elements, + store_constructor, store_field, safe_from_p, expand_var, + expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise. + +2004-09-08 Nathan Sidwell + + * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use + gcc_assert and gcc_unreachable. + * ddg.c (create_ddg_dependence, add_deps_for_def, + add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise. + * df.c (df_ref_unlink, df_ref_record, df_uses_record, + df_reg_def_chain_create, df_reg_use_chain_create, df_analyze, + df_insn_delete, df_refs_reg_replace, df_ref_reg_replace, + df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p, + df_bb_reg_live_end_p, df_bb_regs_lives_compare, + df_bb_single_def_use_insn_find, dataflow_set_a_op_b, + dataflow_set_copy, hybrid_search, diagnostic.c, + diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise. + * dojump.c (do_jump): Likewise. + * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree, + compute_dom_fast_query, calculate_dominance_info, + free_dominance_info, get_immediate_dominator, + set_immediate_dominator, get_dominated_by, + redirect_immediate_dominators, nearest_common_dominator, + dominated_by_p, verify_dominators, recount_dominator, + iterate_fix_dominators, add_to_dominance_info, + delete_from_dominance_info): Likewise. + * dwarf2asm.c (size_of_encoded_value, eh_data_format_name, + dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128, + dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise. + * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save, + initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust, + flush_queued_reg_saves, dwarf2out_frame_debug_expr, + dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi, + output_call_frame_info, output_loc_operands, build_cfa_loc, + decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string, + AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external, + AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die, + splice_child_die, attr_checksum, same_dw_val_p, + break_out_includes, build_abbrev_table, size_of_die, mark_dies, + unmark_dies, value_format, output_loc_list, output_die, + output_pubnames, output_aranges, base_type_die, is_base_type, + modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor, + mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1, + field_byte_offset, add_data_member_location_attribute, + add_const_value_attribute, rtl_for_decl_location, + add_location_or_const_value_attribute, add_byte_size_attribute, + add_bit_offset_attribute, add_bit_size_attribute, + add_abstract_origin_attribute, pop_decl_scope, scope_die_for, + decl_start_label, gen_formal_parameter_die, + gen_type_die_for_member, gen_subprogram_die, gen_label_die, + gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die, + force_decl_die, force_type_die, gen_decl_die, + dwarf2out_imported_module_or_decl, prune_unused_types_prune, + dwarf2out_finish): Likewise. + +2004-09-08 Andreas Tobler + + * Makefile.in (builtins.o): Depend on tree-mudflap.h. + * builtins.c: Include tree-mudflap.h. + +2004-09-08 Uros Bizjak + + * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not + force operand 0.0 into register in XFmode. Also do not force + operand 0.0 into register if !TARGET_CMOVE. + * config/i386/i386.md (*cmpfp_0): Delete. Remove comment. + (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to + implement ftst x87 instruction. + (*fp_jcc_7): New insn pattern. Change corresponding split + pattern to handle "general_operand" instead of + "nonimmediate_operand". + +2004-09-08 Ben Elliston + + * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG. + +2004-09-07 Frank Ch. Eigler + + * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes + generated from standard va_arg expansion. + * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from + marked nodes. + (mf_varname_tree, mf_file_function_line_tree): Add some support + for column numbers if compiled with USE_MAPPED_LOCATION. + +2004-09-07 Ziemowit Laski + + * c-decl.c (groktypename_in_parm_context): Remove function. + * c-tree.h (groktypename_in_parm_context): Remove prototype. + +2004-09-07 Ziemowit Laski + + * Makefile.in (c-parse.o): Depend on $(C_COMMON_H). + * c-parse.in: Include c-common.h instead of objc-act.h. + (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator, + myparms, myparm): Remove %type declarations. + (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual, + objc_typename, objc_try_catch_stmt, optellipsis): Add %type + declarations. + (objc_inherit_code, objc_public_flag): Remove. + (typespec_nonreserved_nonattr): Call + objc_get_protocol_qualified_type() instead of get_static_reference() + and get_protocol_reference(). + (stmt_nocomp): Call grokparm() on @catch parameter. + (objcdef): Move semantic action to objc_finish_implementation(). + (classdef): Move semantic action to objc_start_class_interface(), + objc_continue_interface(), objc_finish_interface(), + objc_start_class_implementation(), objc_continue_implementation(), + objc_start_category_interface() and + objc_start_category_implementation(). + (protocoldef): Move semantic actions to objc_start_protocol() and + objc_finish_interface(). + (ivar_decl_list): Remove nonterminal. + (visibility_spec): Move semantic actions to objc_set_visibility(). + (ivar_decls): Remove assignment to $$. + (ivar_decl): Rephrase in terms of component_decl; call + objc_add_instance_variable(). + (ivars, ivar_declarator): Remove nonterminals. + (opt_semi): New nonterminal. + (methodtype): Remove semantic actions. + (methoddef): Move semantic actions to objc_set_method_type(), + objc_start_method_definition() and objc_finish_method_definition(). + (methodproto): Move semantic actions to objc_set_method_type() and + objc_add_method_declaration(). + (methoddecl): Use objc_typename instead of typename; move semantic + actions to objc_build_method_signature(). + (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals. + (optparmlist): Express in terms of optparms and optellipsis. + (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New + nonterminals. + (keyworddecl): Use objc_typename instead of typename. + (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF + and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse(). + +2004-09-08 Alan Modra + + * doc/tm.texi (MD_UNWIND_SUPPORT): Document. + (MD_FALLBACK_FRAME_STATE_FOR): Update. + * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined. + (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation. + (MD_FROB_UPDATE_CONTEXT): Remove default. + (uw_update_context_1): Instead #ifdef invocation. + * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined. + (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation. + * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef. + (MD_UNWIND_SUPPORT): Undefine this instead. + * config/i386/gnu.h: Likewise. + * config/alpha/linux-unwind.h: New file, macro converted to + function, extracted from.. + * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this. + (MD_UNWIND_SUPPORT): Define. + * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise. + * config/i386/linux-unwind.h, config/i386/linux.h, + config/i386/linux64.h: Likewise. + * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise. + MD_HANDLE_UNWABI too. + * config/mips/linux-unwind.h, config/mips/linux.h: Likewise. + * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise. + * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise. + * config/s390/linux-unwind.h, config/s390/linux.h: Likewise. + * config/sparc/linux-unwind.h, config/sparc/linux.h, + config/sparc/linux64.h: Likewise. + * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge + SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state. + * config/rs6000/linux-unwind.h, config/rs6000/linux.h, + config/rs6000/linux64.h: Likewise. Split out get_sigcontext + function. Use ARG_POINTER_REGNUM for 32-bit temp reg too. + +2004-09-07 Jan Hubicka + + * cse.c (fold_rtx): Avoid building of + (CONST (MINUS (CONST_INT) (SYMBOL_REF))) + + * tree-ssa-pre.c (grand_bitmap_obstack): New. + (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack. + (init_pre): Initialize obstack. + (fini_pre): Free obstack. + +2004-09-07 David Daney + + * config.gcc: Added support for --with-divide=[breaks|traps] for + mips targets. + * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit. + (TARGET_DIVIDE_TRAPS): New macro. + (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks. + (OPTION_DEFAULT_SPECS): Added --with-divide= support. + * config/mips/mips.c (mips_idiv_insns): Generate proper count on + GENERATE_DIVIDE_TRAPS. + (mips_output_division): Emit conditional trap if + GENERATE_DIVIDE_TRAPS is set. + * doc/install.texi: Document --with-divide. + * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks. + +2004-09-07 Caroline Tice + + * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag, + EDGE_CROSSING, to flags test case. + +2004-09-07 Jan Hubicka + + * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<' + class too. + +2004-09-07 Nathan Sidwell + + * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from, + cfgbuild.c, inside_basic_block_p, control_flow_insn_p, + make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert + or gcc_unreachable. + * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks, + remove_edge, alloc_aux_for_blocks, free_aux_for_blocks, + alloc_aux_for_edges, free_aux_for_edges): Likewise. + * cfgcleanup.c (try_forward_edges, + merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps): Likewise. + * cfgexpand.c (expand_gimple_cond_expr, + expand_gimple_tailcall): Likewise. + * cfghooks.c (duplicate_block): Likewise. + * cfglayout.c (record_effective_endpoints, + insn_locators_initialize, change_scope, fixup_reorder_chain, + verify_insn_chain, fixup_fallthru_exit_predecessor, + duplicate_insn_chain, cfg_layout_finalize): Likewise. + * cfgloopanal.c (check_irred): Likewise. + * cfgloop.c (superloop_at_depth, flow_loops_free, + flow_loop_entry_edges_find, flow_loops_find, + flow_loop_outside_edge_p, get_loop_body, + get_loop_body_in_dom_order, get_loop_body_in_bfs_order, + get_loop_exit_edges, num_loop_branches, cancel_loop, + verify_loop_structure): Likewise. + cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge, + duplicate_loop_to_header_edge, create_preheader, + create_loop_notes): Likewise. + * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump, + edirect_branch_edge, force_nonfallthru_and_redirect, + rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion, + commit_edge_insertions, commit_edge_insertions_watch_calls, + purge_dead_edges, cfg_layout_redirect_edge_and_branch, + cfg_layout_redirect_edge_and_branch_force, + cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise. + * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge, + cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info, + cgraph_varpool_node): Likewise. + * cgraphunit.c (cgraph_finalize_function, + cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output, + cgraph_expand_function, cgraph_remove_unreachable_nodes, + cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, + cgraph_mark_inline, cgraph_expand_all_functions, + cgraph_build_static_cdtor): Likewise. + * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx, + simplify_logical, distribute_notes, insn_cuid): Likewise. + * conflict.c (conflict_graph_add, print_conflict): Likewise. + * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref, + coverage_checksum_string): Likewise. + * cse.c (make_new_qty, make_regs_eqv, insert, invalidate, + hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage, + cse_cc_succs, cse_condition_code_reg): Likewise. + * cselib.c (entry_and_rtx_equal_p, remove_useless_values, + rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx, + new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno, + cselib_record_set): Likewise. + +2004-09-07 Jan Hubicka + + * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter. + +2004-09-07 Nathan Sidwell + + * builtins.c (fold_builtin_strchr): Use build_int_cst, not + fold_convert. + (fold_builtin_strpbrk): Likewise. + * expr.c (array_ref_low_bound): Likewise. + * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1, + interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise. + * tree-sra.c (generate_element_zero): Likewise. + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. + * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step, + add_old_iv_candidates, add_iv_candidates): Likewise. + * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. + +2004-09-07 Nathan Sidwell + + * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable. + * c-common.c (c_type_hash, c_common_nodes_and_builtins, + c_expand_expr, boolean_increment, nonnull_check_p, + check_function_arguments_recurse, fold_offsetof_1): Likewise. + * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros, + builtin_define_type_max): Likewise. + * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level, + implicit_decl_warning, builtin_function, build_compound_literal, + complete_array_type, grokdeclarator, get_parm_info, + start_function, store_parm_decls_oldstyle, + c_write_global_declarations): Likewise. + * c-format.c (get_constant, decode_format_attr, + maybe_read_dollar_number, get_flag_spec, check_format_arg, + check_format_types, format_type_warning, + find_char_info_specifier_index, init_dynamic_asm_fprintf_info, + init_dynamic_diag_info, handle_format_attribute): Likewise. + * c-gimplify.c (push_context, pop_context, finish_bc_block): + * c-lex.c (c_lex_with_flags, lex_string): Likewise. + * c-objc-common.c (c_tree_printer): Likewise. + * c-pch.c (pch_init): Likewise. + * c-pragma.c (maybe_apply_pragma_weak): Likewise. + * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise. + * c-typeck.c (c_incomplete_type_error, composite_type, + common_pointer_type, common_type, same_translation_unit_p, + tagged_types_tu_compatible_p, finish_init, pop_init_level, + set_designator, set_nonincremental_init_from_string, + process_init_element, c_finish_if_stmt): Likewise. + * caller-save.c (init_caller_save, save_call_clobbered_regs, + insert_restore, insert_save, insert_one_insn): Likewise. + * calls.c (emit_call_1, compute_argument_block_size, + precompute_arguments, expand_call, emit_library_call_value_1, + store_one_arg): Likewise. + +2004-09-07 Nathan Sidwell + + * configure.ac (enable-checking): Add release option. Reorganize + to avoid repetition. + * configure: Rebuilt. + * doc/install.texi (enable-checking): Amend documentation. + +2004-09-06 H.J. Lu + + PR bootstrap/17313 + * Makefile.in (specs.ready): Depend on cc1$(exeext). + +2004-09-06 James E Wilson + + * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit, + movdf_hardfloat_32bit): Split fG into two alternatives. + (movv2sf_hardfloat_64bit): Split fYG into two alternatives. + + * emit-rtl.c (try_split): Check INSN_P before may_trap_p call. + +2004-09-06 Eric Botcazou + + * final.c (output_in_slot): Delete. + (final_scan_insn): Revert 2004-09-03 change. + (output_asm_insn): Likewise. + * config/sparc/sparc.c (output_return): Likewise. + (output_sibcall): Likewise. + +2004-09-06 Jan Hubicka + + * loop.c (loop_dump_aux): Do not print RTL when not available. + * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use + frontend specific type nodes. + (produce_memory_decl_rtl): Break out from ... + (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly. + (get_computation_at): Avoid random tree sharing. + (tree_ssa_iv_optimize): Verify tree sharing; dump loops. + +2004-09-06 Zack Weinberg + + * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove + unnecessary commands. + +2004-09-06 Mohan Embar + + * Makefile.in (rtl.o): Remove -DGENERATOR_FILE. + (bitmap.o): Likewise. + +2004-09-06 Paolo Bonzini + + Unify the management of RTL and tree-level dump files. + + * cfgexpand.c (tree_expand_cfg): Fix incorrect comment. + Don't print function name to the dump file, the pass manager + would do this for us. Add code from the top of + rest_of_compilation, up to the initial RTL dump. + * passes.c (rest_of_handle_jump): Call fixup_tail_calls and + close the DFI_sibling dump file. + (rest_of_compilation): Don't do that here. Remove code up to the + initial RTL dump. + (init_optimization_passes): Remove. + (pass_rest_of_compilation): Change pass name to NULL. + * toplev.c (lang_dependent_init): Do not use an empty dump file prefix. + Do not call init_optimization_passes. + * toplev.h (init_optimization_passes): Remove. + + * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file, + finish_graph_dump_file): Remove SUFFIX parameter. + * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file, + finish_graph_dump_file): Likewise. + + * tree-pass.h (struct tree_opt_pass): Add `letter' field. + * cfgexpand.c (pass_expand): Adjust. + * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust. + * passes.c (pass_rest_of_compilation): Adjust. + * predict.c (pass_profile): Adjust. + * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust. + * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts, + pass_split_crit_edges, pass_warn_function_return): Adjust. + * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust. + * tree-dfa.c (pass_referenced_vars): Adjust. + * tree-eh.c (pass_lower_eh): Adjust. + * tree-if-conv.c (pass_build_ssa): Adjust. + * tree-into-ssa.c (pass_build_ssa): Adjust. + * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. + * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. + * tree-nrv.c (pass_nrv): Adjust. + * tree-optimize.c (pass_gimple, pass_all_optimizations, + pass_cleanup_cfg_post_optimizing, pass_free_datastructures, + pass_init_datastructures): Adjust. + * tree-outof-ssa.c (pass_del_ssa): Adjust. + * tree-profile.c (pass_tree_profile): Adjust. + * tree-sra.c (pass_sra): Adjust. + * tree-ssa-alias.c (pass_may_alias): Adjust. + * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust. + * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust. + * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust. + * tree-ssa-dom.c (pass_dominator): Adjust. + * tree-ssa-dse.c (pass_dse): Adjust. + * tree-ssa-forwprop.c (pass_forwprop): Adjust. + * tree-ssa-if-conv.c (pass_if_conversion): Adjust. + * tree-ssa-loop-ch.c (pass_ch): Adjust. + * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim, + pass_loop_done, pass_complete_unroll, pass_iv_canon, + pass_iv_optimize, pass_vectorize): Adjust. + * tree-ssa-phiopt.c (pass_phiopt): Adjust. + * tree-ssa-pre.c (pass_pre, pass_fre): Adjust. + * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized, + pass_late_warn_uninnitialized): Adjust. + * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust. + + * Makefile.in (tree-dump.o): Add new dependencies. + * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all. + * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize): + Likewise. + * toplev.c (dump_file_name): New. + * tree-dump.c (dump_enable_all): Add LETTER parameter. + (struct dump_file_info): Add NUM and LETTER fields. + (dump_files): Adjust and add RTL dump files. + (dump_register): Add NUM and LETTER fields. + (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New. + (dump_begin): Use get_dump_file_name. + (dump_switch_p_1): Adjust call to dump_enable_all. + * tree-dump.h (dump_register): Adjust prototype. + * tree-optimize.c (register_one_dump_file): Take dump file index. + Support flags for RTL dumps. + (register_dump_files): Fill in NUM field of struct dump_file_info. + Track properties both when the gate is executed and when it is not. + (execute_todo): Dump RTL. Add PROPERTIES parameter. + (execute_one_pass): Pass properties to execute_todo. Handle VCG + dumps of RTL. + * tree-pass.h (dump_file_name): New. + * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p): + New. + + * Makefile.in (passes.o): Add new dependencies. + * passes.c (struct dump_file_info, enum dump_file_index, + dump_file_tbl, init_optimization_passes): Remove. + (open_dump_file, close_dump_file): Use tree-dumping infrastructure. + (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use + dump_enabled_p. + (finish_optimization_passes): Update finish_graph_dump_file loop. + (enable_rtl_dump_file): Remove. + * tree-dump.c (dump_files): Adjust and add RTL dump files. + (enable_rtl_dump_file): Add here. + * tree.h (enum tree_dump_index): Add RTL dump file indices. + * doc/invoke.texi (Debugging options): Document new RTL debugging + options. Update. + +2004-09-05 Kazu Hirata + + * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c, + gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c, + stor-layout.c, target.h, tree-cfg.c, tree-chrec.c, + tree-if-conv.c, tree-inline.c, tree-into-ssa.c, + tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c, + tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c, + tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h, + vec.h: Fix comment formatting. + +2004-09-05 Kazu Hirata + + * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h, + et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h, + hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c, + tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c, + tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, + tree-ssa-loop-niter.c, tree-ssa-operands.c, + tree-ssa-operands.h, tree-ssa-propagate.c, + tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c, + vec.c, vec.h: Fix comment typos. Follow spelling conventions. + +2004-09-05 Diego Novillo + + * tree-if-conv.c (gate_tree_if_conversion): Enable only if the + vectorizer is enabled. + +2004-09-05 Andreas Jaeger + + * tree-if-conv.c: Spell check comments and clean up whitespace. + +2004-09-05 Zdenek Dvorak + + * tree-ssa-loop-ivopts.c: New file. + * Makefile.in (tree-ssa-loop-ivopts.c): Add. + * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost, + target_pres_cost, target_spill_cost): Declare. + * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost, + spill_cost): Renamed to ... + (target_avail_regs, target_res_regs, target_small_cost, + target_pres_cost, target_spill_cost): ... and exported. + (init_set_costs, global_cost_for_size): Work with renamed variables. + * common.opt (flag_ivopts): New flag. + * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle + REF_ORIGINAL. + * gimplify.c (struct gimplify_ctx): Add into_ssa field. + (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support + generating SSA form. + (force_gimple_operand): New function. + * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar. + * tree-cfg.c (stmt_bsi): New function. + * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, + PARAM_IV_MAX_CONSIDERED_USES): New. + * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge, + bsi_insert_on_edge_immediate_loop. standard_iv_increment_position, + ip_end_pos, ip_normal_pos, force_gimple_operand): Declare. + * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names. + * tree-nested.c (build_addr): Export. + * tree-optimize.c (init_tree_optimization_passes): Add + pass_iv_optimize. + * tree-pass.h (pass_iv_optimize): Declare. + * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and + IMAGPART_EXPR. + * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable + as a phi node argument. + (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop, + ip_end_pos, ip_normal_pos, standard_iv_increment_position): New + functions. + * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export. + * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts, + pass_iv_optimize): New pass. + * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL. + * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL. + * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions. + * tree.h (REF_ORIGINAL): New macro. + (build_int_cst_type, unsigned_type_for, zero_p, + cst_and_fits_in_hwi, build_addr): Declare. + * doc/invoke.texi (-fivopts): Document. + (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, + PARAM_IV_MAX_CONSIDERED_USES): Document. + * doc/passes.texi: Document induction variable optimizations pass. + +2004-09-04 Kaveh R. Ghazi + + * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New. + * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1. + * c-common.c (c_common_attribute_table): Accept parameters to + sentinel attribute. + (check_function_sentinel, handle_sentinel_attribute): Likewise. + * doc/extend.texi: Update accordingly. + +2004-09-04 Kaveh R. Ghazi + + * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST): + New. + * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel' + attribute. + * c-common.c (handle_sentinel_attribute, check_function_sentinel): + New functions. + (c_common_attribute_table): Add `sentinel' attribute. + (check_function_arguments): Handle `sentinel' attribute. + * doc/extend.texi: Document `sentinel' attribute. + +2004-09-04 H.J. Lu + + * configure: Regenerated. + +2004-09-04 Richard Kenner + + * gimplify.c (internal_get_tmp_var): Remove unused var CLASS. + + * tree.c (save_expr): No longer TREE_READONLY. + +2004-09-04 Jan Hubicka + + * passes.c (rest_of_clean_state): Fix merge conflict made during + commiting the patch. + +2004-09-04 Jan Hubicka + + * passes.c (rest_of_clean_state): Decompose the instruction stream. + +2004-09-04 Richard Sandiford + + * doc/md.texi (shift patterns): New anchor. Add reference to + TARGET_SHIFT_TRUNCATION_MASK. + * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document. + * target.h (shift_truncation_mask): New target hook. + * targhook.h (default_shift_truncation_mask): Declare. + * targhook.c (default_shift_truncation_mask): Define. + * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define. + (TARGET_INITIALIZER): Include it. + * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT + and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise + reject all out-of-range values. Fix sign-extension code for modes + whose width is smaller than HOST_BITS_PER_WIDE_INT. + * optabs.c (simplify_expand_binop, force_expand_binop): New functions. + (expand_superword_shift, expand_subword_shift): Likewise. + (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise. + (expand_binop): Use them to implement double-word shifts. + * config/arm/arm.c (arm_shift_truncation_mask): New function. + (TARGET_SHIFT_TRUNCATION_MASK): Define. + +2004-09-04 Jan Hubicka + + * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object. + (mix): New macro copied from hashtab.c + (iterative_hash_hashval_t, iterative_hash_pointer, + iterative_hash_host_wide_int): New functions based on hashtab.c + implementation. + +2004-09-04 Richard Sandiford + + * config/mips/mips.md (mask): New mode attribute. + (zero_extendsidi2): Add memory alternative. + (*zero_extendsidi2_mem): Delete. + (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use + memory_operand in the TARGET_MIPS16 check. + (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns. + Redefine using :GPR and :SHORT. + (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check. + +2004-09-04 Uros Bizjak + + * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L} + using rint_optab. + (expand_builtin): Expand BUILT_IN_RINT{,F,L} using + expand_builtin_mathfn. + * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use + btrunc?f patterns for btrunc_optab. Implement rint_optab using + rint?f patterns. + * optabs.c (init_optabs): Initialize rint_optab. + * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc. + Add new OTI_rint. + (btrunc_optab): Rename macro from trunc_optab. + (rint_optab): Define corresponding macro. + + * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR, + UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM. + + * config/i386/i386-protos.h (emit_i387_cw_initialization): + Change prototype. Add new int parameter. + * config/i386/i386.c (emit_i387_cw_initialization): + Handle new rounding modes. + + * config/i386/i386.h (enum fp_cw_mode): Delete. + (MODE_NEEDED): Handle new rounding modes. + (EMIT_MODE_SET): Change condition to handle new rounding modes. + + * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL, + UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to + represent different rounding modes of frndint insn. + (type): Add frndint type. + (i387, length, memory): Handle this type. + (i387_cw): New attribute definition. + (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory, + *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory, + *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory): + Add "i387_cw" attribute defined to "trunc". + (x86_fnstcw_1): Remove comment. + (*frndintxf2): Rename insn definition to frndintxf2. Move + insn definition near rint?f2 expanders. + (rintdf2, rintsf2, rintxf2): New expanders to implement rint, + rintf and rintl built-ins as inline x87 intrinsics. + (frndintxf2_floor): New pattern to implement floor rounding + mode with frndint x87 instruction. + (floordf2, floorsf2, floorxf2): New expanders to implement floor, + floorf and floorl built-ins as inline x87 intrinsics. + (frndintxf2_ceil): New pattern to implement ceil rounding + mode with frndint x87 instruction. + (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil, + ceilf and ceill built-ins as inline x87 intrinsics. + (frndintxf2_trunc): New pattern to implement trunc rounding + mode with frndint x87 instruction. + (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc, + truncf and truncl built-ins as inline x87 intrinsics. + (frndintxf2_mask_pm): New pattern to implement rounding + mode with exceptions with frndint x87 instruction. + (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to + implement nearbyint, nearbyintf and nearbyintl built-ins as + inline x87 intrinsics. + +2004-09-04 Richard Sandiford + + * config/mips/mips.md (SHORT): New mode macro. + (size): New mode attribute. + (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. + (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous + *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if + !ISA_HAS_SEB_SEH. + (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous + *extend[qh]isi2_hw patterns and extending them to di. + (extendqihi2): Implement as define_insn_and_split that produces + extendqisi2 after reload. + +2004-09-03 Devang Patel + + * Makefile.in (OBJS-common): Add tree-if-conv.o + (tree-if-conv.o): New rule. + * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag. + (get_loop_body_in_bfs_order): New. + * cfgloop.h (get_loop_body_in_bfs_order): New. + * tree-flow.h (enum move_pos): Move here from .. + * tree-ssa-loop-im.c (enum move_pos): here. + (movement_possibility): Make externally visible. + * tree-optimize.c (init_tree_optimization_passes): New entry for + if conversion pass. + * tree-pass.h (pass_if_conversion): New. + * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR. + * tree-if-conv.c: New file. + * doc/passes.texi: Document tree if-conversion pass. + * doc/tree-ssa.texi: Same. + +2004-09-03 H.J. Lu + + PR target/14925: + Makefile.in (LIB2ADDEHSTATIC): New. + (LIB2ADDEHSHARED): New. + (LIBUNWIND): New. + (LIBUNWINDDEP): New. + (SHLIBUNWIND_LINK): New. + (SHLIBUNWIND_INSTALL): New. + (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, + LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL. + (clean): Remove libunwind* + (stage1-start): Remove and copy stage1/libunwind*. + (stage2-start): Remove and copy stage2/libunwind*. + (stage3-start): Remove and copy stage3/libunwind*. + (stage4-start): Remove and copy stage4/libunwind*. + (stageprofile-start): Remove and copy stageprofile/libunwind*. + (stagefeedback-start): Remove and copy stagefeedback/libunwind*. + + * config.gcc (ia64*-*-linux*): Always add t-libunwind to + tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to + tmake_file if --with-system-libunwind isn't used. + + * config/ia64/t-glibc-libunwind: New file. + * config/t-libunwind-elf: Likewise. + * unwind-compat.c: Likewise. + * unwind-compat.h: Likewise. + * unwind-dw2-fde-compat.c: Likewise. + + * config/ia64/t-glibc (LIB2ADDEH): Updated. + * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. + + * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define + aliases if needed. + * unwind-dw2-fde-glibc.c: Likewise. + * unwind-dw2.c: Likewise. + + * config/t-libunwind (LIB2ADDEH): Updated. + (LIB2ADDEHSTATIC): New. + (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. + (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER. + + * configure.ac: Change --enable-libunwind-exceptions to + --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS. + * configure: Regenerated. + * config.in: Updated. + + * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or + above and mention --with-system-libunwind. + (ia64-*-hpux*): Mention --enable-libunwind-exceptions is + removed in gcc 3.4.3 and later. + + * gcc.c (init_spec): Add -lunwind to -lgcc_s if + USE_LIBUNWIND_EXCEPTIONS is defined. + + * mklibgcc.in: Support libunwind. + +2004-09-03 H.J. Lu + + * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and + m_NOCONA. + +2004-09-03 Richard Henderson + + PR middle-end/9997 + * cfgexpand.c (LOCAL_ALIGNMENT): Provide default. + (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise. + (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num, + stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc, + frame_phase, get_decl_align_unit, add_stack_var, triangular_index, + resize_stack_vars_conflict, add_stack_var_conflict, + stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp, + union_stack_vars, partition_stack_vars, dump_stack_var_partition, + expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var, + expand_one_static_var, expand_one_hard_reg_var, + expand_one_register_var, expand_one_error_var, defer_stack_allocation, + expand_one_var, expand_used_vars_for_block, clear_tree_used): New. + (expand_used_vars): Rewrite. + * Makefile.in (cfgexpand.o): Update dependencies. + +2004-09-04 Jan Hubicka + + * cfg.c (free_edge): Use ggc_free. + (expunge_block): Use ggc_free. + * passes.c (rest_of_clean_state): Free after compilation. + * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs + * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments. + +2004-09-03 James E Wilson + + * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after + DECL_EXTERNAL check. + +2004-09-03 Eric Botcazou + + * final.c (output_in_slot): New global variable. + (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter. + Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set + 'output_in_slot' before invoking output_asm_insn. + (output_asm_insn): Add a space after the tab if 'output_in_slot' + is set. + * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to + final_scan_insn. + (output_sibcall): Likewise. + +2004-09-03 Jan Hubicka + + * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays. + * tree-ssanames (init_ssanames): Likewise. + +2004-09-03 Ziemowit Laski + + * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class, + objc_declare_protocols, objc_start_protocol, + objc_start_class_interface, objc_start_category_interface, + objc_continue_interface, objc_finish_interface, + objc_add_instance_variable, objc_set_visibility, objc_set_method_type, + objc_start_class_implementation, objc_start_category_implementation, + objc_continue_implementation, objc_finish_implementation, + objc_add_method_declaration, objc_start_method_definition, + objc_finish_method_definition, objc_build_keyword_decl, + objc_build_method_signature, objc_build_encode_expr, + objc_build_protocol_expr, objc_build_selector_expr, + objc_build_message_expr, objc_build_string_object, + objc_get_class_reference, objc_get_protocol_qualified_type, + objc_static_init_needed_p, objc_generate_static_init_call): New stubs. + +2004-09-03 James E Wilson + + * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d. + + * config/mips/generic.md (generic_frecip_fsqrt_step): New. + * config/mips/mips-ps-3d.md (mips_rsqrt1_): Use frsqrt1 type. + (mips_rsqrt2_): Use frsqrt2 type. + (mips_recip1_): Use frdiv1 type. + (mips_recip2_): Use frdiv2 type. + * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2. + * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1 + and frsqrt1. + (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New. + +2004-09-03 Daniel Jacobowitz + + * reload.c (find_reloads): Swap operand_loc pointers for + find_dummy_reload if we have swapped two operands. + +2004-09-03 Hans-Peter Nilsson + + * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn + to get the tablejump-insn before the jump-table label. + +2004-09-03 Ziemowit Laski + + * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class, + objc_declare_protocols, objc_build_message_expr, + objc_finish_message_expr, objc_build_selector_expr, + objc_build_protocol_expr, objc_build_encode_expr, + objc_build_string_object, objc_get_protocol_qualified_type, + objc_get_class_reference, objc_get_class_ivars, + objc_start_class_interface, objc_start_category_interface, + objc_start_protocol, objc_continue_interface, objc_finish_interface, + objc_start_class_implementation, objc_start_category_implementation, + objc_continue_implementation, objc_finish_implementation, + objc_set_visibility, objc_set_method_type, objc_build_method_signature, + objc_add_method_declaration, objc_start_method_definition, + objc_finish_method_definition, objc_add_instance_variable, + objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt, + objc_finish_try_stmt, objc_begin_catch_clause, + objc_finish_catch_clause, objc_build_finally_clause, + objc_build_synchronized, objc_static_init_needed_p, + objc_generate_static_init_call): New prototypes. + +2004-09-03 Steve Ellcey + + * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there + is only one reg. + (ia64_function_value): Ditto. + +2004-09-03 Jan Beulich + + * config.gcc: Resurrect NetWare as a target. Handle special case of + Novell linker to be used (specified through --with-ld=) and threading + model of either Posix (default) or NKS. + * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping + of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER. + * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New. + * config/i386/netware.c, config/i386/netware.h: New. + * config/i386/nwld.c, config/i386/nwld.h: New. + * config/i386/netware-crt0.c: New. + * config/i386/netware-libgcc.c: New. + * config/i386/netware-libgcc.def: New. + * config/i386/netware-libgcc.exp: New. + * config/i386/t-netware, config/i386/t-nwld: New. + * gthr-nks.h: New. + * doc/install.texi: Document NKS threading model. + +2004-09-03 Jan Beulich + + PR c/7054 + * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default. + * tree.h (initial_max_fld_align): Declare + * stor-layout.c (initial_max_fld_align): Define and initialize. + (maximum_field_alignment): Initialize to the same value. + * common.opt: Add -fpack-struct= variant of switch. + * opts.c: Handle -fpack-struct= variant of switch. + * c-pragma.c: Change #pragma pack() handling so that it becomes + compatible to other compilers: accept individual 'push' argument, + make final pop restore (command line) default, correct interaction + of push/pop and sole specification of a new alignment (so that the + sequence #pragma pack(push) - #pragma pack() becomes identical + to #pragma pack(push, ). + * doc/extend.texi: New node "Structure-Packing Pragmas" under + "Pragmas", describing #pragma pack. + * doc/invoke.texi: Document -fpack-struct= variant of switch. + * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP. + Document new TARGET_DEFAULT_PACK_STRUCT. + +2004-09-03 Devang Patel + + * dwarf2out.c (gen_field_die). Equate decl number to die. + +2004-09-03 Vladimir Makarov + + PR target/15832 + * global.c (modify_reg_pav): New function. + (make_accurate_live_analysis): Call the new function. Move pavin + modification by earlyclobber set into the new function. + +2004-09-03 Andreas Schwab + + * config/m68k/m68k.c (output_andsi3): Use -1 instead of + (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign + extended. + +2004-09-02 Jan Beulich + + * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h. + * mklibgcc.in (libgcc_dep): New, covering general dependencies, but + not unwind code specific ones. + (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep. + Remove unwind code specific dependencies. + (libgcov_c_dep): Replace general dependencies with use of libgcc_dep. + Remove gbl-ctors.h. + Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and + LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH. + * tsystem.h: Declare memcpy and memset when inhibit_libc. + +2004-09-02 Roman Zippel + + * combine.c (try_combine): Delay modifying of insns which cannot + be easily undone. + +2004-09-02 Daniel Berlin + + * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to + tree-loop-im. + * gcc/tree-ssa-loop.c: Ditto + * gcc/tree-ssa-loop-ivcanon.c: Ditto + * gcc/doc/invoke.texi: Ditto. + +2004-09-02 Ziemowit Laski + + * c-decl.c (store_parm_decls_newstyle): Make static. + (store_parm_decls_from): New function. + * c-tree.h (store_parm_decls_newstyle): Remove prototype. + (store_parm_decls_from): New prototype. + +2004-09-02 David Edelsohn + + * config/rs6000/rs6000.c (expand_block_move): Use SImode and + HImode with STRICT_ALIGNMENT. + +2004-09-02 Mark Mitchell + + * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define. + (TARGET_OS_CPP_BUILTINS): Likewise. + * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include + TARGET_BPABI_CPP_BUILTINS. + +2004-09-02 Roman Zippel + + * combine.c (distribute_notes): Don't add REG_LABEL to jump insn. + +2004-09-02 Eric Christopher + + * builtins.c (expand_builtin_cabs): Delete. + (expand_builtin): If unable to fold the values do a normal + library call for builtin_cab*. + (fold_builtin_cabs): Depend on optimize and optimize_size. + * optabs.c (expand_cmplxdiv_straight): Delete. + (expand_cmplxdiv_wide): Ditto. + (expand_vector_binop): Ditto. + (expand_vector_unop): Ditto. + (expand_complex_abs): Delete. + (expand_binop): Remove calls to above functions. + Remove open coding of complex arithmetic. + (expand_unop): Ditto. + * optabs.h: Remove prototypes. + +2004-09-02 Ziemowit Laski + + * c-decl.c (store_parm_decls_newstyle): Make externally visible. + * c-tree.h (store_parm_decls_newstyle): New prototype. + +2004-09-02 Geoffrey Keating + + * config/rs6000/rs6000.c (expand_block_clear): Use vector + instructions if available. + (expand_block_move): Likewise. + +2004-09-03 Jan Hubicka + + * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill. + +2004-09-02 Mark Mitchell + + * config/arm/symbian.h (LIB_SPEC): Define to empty. + * config/arm/t-symbian (SHLIB_LC): Likewise. + +2004-09-02 Paul Brook + + * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove. + +2004-09-02 Richard Sandiford + + * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns): + (mips_restore_gp, mips_set_return_address, mips_expand_prologue) + (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert. + (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks. + (mips_issue_rate): Remove unreachable abort. + (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns) + (mips_output_move, mips_relational_operand_ok_p, mips_arg_info) + (mips_block_move_straight, print_operand_address, mips_file_start) + (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1) + (mips_output_conditional_branch, mips_expand_builtin_direct) + (mips_expand_builtin_compare): Replace abort with gcc_unreachable. + * config/mips/mips.md (rotr3, consttable_float): Replace abort + with gcc_assert. + +2004-09-02 Richard Sandiford + + * config/mips/mips.md (*lea_high64): Change split condition to + flow2_completed. Add a peephole2 to generate a more parallel version. + +2004-09-02 Jan Hubicka + + * gimplify.c (gimplify_compound_lval): Move "stack" varray out of + GGC. + + * ggc-page.c: include tree-flow.h. + (extra_order_size_table): Add stmt_ann_d. + (STAT_LABEL): Rename from .... + (LABEL): ... this one. + * Makefile.in (ggc-page.o): Add dependency. + + * ggc-common.c (ggc_force_collect): New global variable. + (loc_description): Add fields "freed", "collected" + (ptr_hash): New static hash + (ptr_hash_entry): New structure. + (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions. + (ggc_record_overhead): Take ptr argument, record it + (ggc_prune_overhead_list, ggc_free_overhead): New functions. + (cmp_statistics): Imrove sorting. + (dump_ggc_loc_statistics): Output newly collected statistics + * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead + (ggc_free): Call ggc_free_overhead. + (ggc_collect): Force collection when asked to be forced. + (ggc_collect): Call ggc_prune_overhead_list. + * ggc.h (ggc_force_collect): Declare + (ggc_record_overhead): Update prototype. + (ggc_free_overhead, ggc_prune_overhead_list): Declare. + +2004-09-02 James E Wilson + + * common.opt (ftrapping-math): Default to on. + +2004-09-02 Richard Earnshaw + + * arm/predicates.md (arm_reload_memory_operand): Allow MEM. + +2004-09-02 Denis Chertykov + + PR target/16884 + * config/avr/avr.md ("movmemhi"): Substitute match_dup to + match_scratch. + (*movmemqi_insn): Likewise. + (*movmemhi): Likewise. + (clrmemhi): Likewise. + (*clrmemqi): Likewise. + (*clrmemhi): Likewise. + +2004-09-02 Paul Brook + + * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set + default_use_cxa_atexit=yes. + +2004-09-02 Alan Modra + + * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h. + (struct kernel_old_ucontext): Delete. + (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New. + (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define + when IN_LIGGCC2. + +2004-09-02 Richard Sandiford + + * toplev.c (process_options): Fix typo. + +2004-09-01 Richard Henderson + + PR middle-end/17258 + * calls.c (initialize_argument_information): Tighten pass-through + conditions for pass-by-reference. Remove dead TARGET_EXPR code. + Use build_fold_addr_expr. + (emit_library_call_value_1): Use build_fold_addr_expr. Remove code + that assumes ADDR_EXPR allocates stack space. + * fold-const.c (build_fold_addr_expr_with_type): Look through + WITH_SIZE_EXPR. + +2004-09-01 Dan Nicolaescu + + * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE. + * ggc.h (ggc_alloc_rtx): Delete. + +2004-09-01 Roger Sayle + + * expmed.c (enum alg_code): Remove long unused enumeration values. + (struct mult_cost): New structure to hold the "score" of a synthetic + multiply sequence, including both a rtx_cost and a latency field. + (MULT_COST_LESS): New macro to compare mult_cost to a constant. + (CHEAPER_MULT_COST): New macro to compare two mult_costs. + (struct algorithm): Change type of cost field to be mult_cost. + (synth_mult): Change type of cost_limit argument to be a + pointer to a mult_cost. Update all cost comparisons to use the + new mult_cost infrastructure. For alg_add_factor and + alg_sub_factor operations, latency is lower than the rtx_cost. + (choose_mult_variant): Update calls to synth_mult. Perform + cost comparisons using the new mult_cost infrastructure. + (expand_mult_highpart): Use alg.cost.cost instead of alg.cost + to optain the total rtx_cost of a synth_mult "algorithm". + +2004-09-01 David Edelsohn + + * config/rs6000/power4.md: Increase store latency to 12. + * config/rs6000/power5.md: Same. + +2004-09-01 James E Wilson + + PR target/14064 + * config/avr/avr.c (avr_unique_section): Delete prototype and + definition. + (TARGET_ASM_UNIQUE_SECTION): Delete. + +2004-09-01 Ziemowit Laski + + * c-parse.in (primary): Call objc_build_message_expr(), + objc_build_selector_expr(), objc_build_protocol_expr(), + objc_build_encode_expr() and objc_build_string_object() instead of + build_message_expr(), build_selector_expr(), build_protocol_expr(), + build_encode_expr() and build_objc_string_object(), respectively. + (component_decl_list2): Call objc_get_class_ivars() instead of + get_class_ivars_from_name(). + (keyworddecl): Call objc_build_keyword_decl() instead of + build_keyword_decl(). + (receiver): Call objc_get_class_reference() instead of + get_class_reference(). + (reswords): Add blank line before @@ifobjc section, for clarity. + +2002-09-01 Fariborz Jahanian + + * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment + to Altivec vetors. + +2004-09-01 Wu Yongwei + Danny Smith + + * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long', + not Windows 'DWORD'. + (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo. + (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise. + (__gthr_win32_recursive_mutex_init_function): Add prototype for + __GTHREAD_HIDE_WIN32API case.. + (__gthr_win32_recursive_mutex_lock): Likewise. + (__gthr_win32_recursive_mutex_trylock): Likewise. + (__gthr_win32_recursive_mutex_unlock): Likewise. + (__gthread_recursive_mutex_init_function); Add definition for + __GTHREAD_HIDE_WIN32API case. + (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement. + * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct + call to InterlockedDecrement. + +2004-09-01 Richard Kenner + + * tree-tailcall.c (find_tail_calls): Also fail is statement has + volatile operands. + + * tree-ssa.c (propagate_into_addr): Properly test for LHR. + + * doc/c-tree.texi: Document new operands for ARRAY_REF and + COMPONENT_REF. + +2004-09-01 Zdenek Dvorak + + * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency. + * common.opt (fspeculative-prefetching): New. + * flags.h (flag_speculative_prefetching_set): Declare. + * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative + values. + * opts.c (flag_sepculative_prefetching_set): New variable. + (common_handle_option): Handle -fspeculative-prefetching. + * passes.c (rest_of_compilation): Ditto. + * profile.c (instrument_values, compute_value_histograms, branch_prob): + Use vectors instead of arrays. + * toplev.c (process_options): Handle -fspeculative-prefetching. + * rtl-profile.c: Include ggc.h. + (rtl_gen_interval_profiler, rtl_gen_pow2_profiler, + rtl_gen_one_value_profiler_no_edge_manipulation, + rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of + argument changed. + * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler, + tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of + argument changed. + * value-prof.c: Include ggc.h. + (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New + macros. + (insn_prefetch_values_to_profile, find_mem_reference_1, + find_mem_reference_2, find_mem_reference, gen_speculative_prefetch, + speculative_prefetching_transform): New. + (value_profile_transformations): Call speculative_prefetching_transform. + (insn_values_to_profile): Call insn_prefetch_values_to_profile. + (insn_divmod_values_to_profile, rtl_find_values_to_profile, + tree_find_values_to_profile, find_values to profile): Use vectors + instead of arrays. + (free_profiled_values): Removed. + * value-prof.h (struct histogram_value): Renamed to + struct histogram_value_t. + (histogram_value, histogram_values): New types. + (find_values_to_profile): Declaration changed. + (free_profiled_values): Removed. + (struct profile_hooks): Type of argument of the hooks changed to + histogram_value. + * doc/invoke.texi (-fspeculative-prefetching): Document. + +2004-09-01 Zdenek Dvorak + + PR rtl-optimization/16408 + * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes. + +2004-09-01 Richard Henderson + + * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. + (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline. + +2004-09-01 Jakub Jelinek + + * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup. + +2004-09-01 Mike Stump + + * config/darwin.c (machopic_symbol_defined_p): In addition to + being SYMBOL_REF_LOCAL_P, a symbol must also be + ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally + defined in this output file, or translation unit in the case + of IMA not being used. + (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols + never need .indirect_symbol when indirecting. + +2004-09-01 Jakub Jelinek + + * Makefile.in (bb-reorder.o): Add several dependencies. + +2004-09-01 Jakub Jelinek + + * fold-const.c (operand_equal_p): Require equal sign also for + FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR. + +2004-09-01 Richard Earnshaw + + * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name + for use in configargs.h. Put the cname in a separate variable. Use + that to set target_cpu_default2. + +2004-09-01 J"orn Rennecke + Nick Clifton + + * config/sh/sh.md ("length"): Increase branch length when + SH1 pic code to 18: 12 bytes of instructions, 4 byte for the + constant, 2 byte for aligning the constant. + +2004-09-01 Richard Earnshaw + + * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the + CPU. + (arm7tdmi-s): New CPU name. + * arm/arm.c (ARM_CORE): Update for new format. + * arm/arm.h (ARM_CORE): Likewise. + * arm/gentune.sh: Update for extra field. + * config.gcc: Likewise. + * arm/arm-tune.md: Regenerate. + * doc/invoke.texi: Document the real processor names for ARM cpus. + +2004-09-01 Richard Earnshaw + + * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf) + (floatdidf): New functions. + * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf) + (floatdisf): New functions. + * t-arm-elf: Use them. + +2004-09-01 Ziemowit Laski + + * c-common.h (lookup_interface): Remove prototype. + (is_class_name): Rename to objc_is_class_name. + (lookup_objc_ivar): Rename to objc_lookup_ivar. + (get_current_scope): Rename to objc_get_current_scope. + * c-decl.c (get_current_scope): Rename to objc_get_current_scope. + * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable. + (yylexname): Call objc_is_class_name() instead of is_class_name(). + * c-typeck.c (build_external_ref): Call objc_lookup_ivar() + instead of lookup_objc_ivar(). + * stub-objc.c (lookup_interface): Remove stub. + (is_class_name): Rename to objc_is_class_name. + (lookup_objc_ivar): Rename to objc_lookup_ivar. + +2004-08-31 Mark Mitchell + + * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi. + * config/arm/lib1funcs.asm: Do not include supplemental .S files + when compiling for Symbian. + * config/arm/symbian.h (RENAME_LIBRARY): New macro. + (TARGET_OS_CPP_BUILTINS): Likewise. + * config/arm/t-symbian (LIB1ASMFUNCS): Define. + +2004-08-31 Stan Shebs + + * toplev.c (process_options): Ensure debug_hooks is initialized. + +2004-08-31 Mark Mitchell + + * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA. + * target.h (cxx): Add export_class_data. + * config/arm/arm.c (arm_cxx_export_class_data): New function. + (TARGET_CXX_EXPORT_CLASS_DATA): Use it. + * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it. + +2004-08-31 Kaz Kojima + + * config/sh/sh.c (output_branch): Check the insn length possibly + in the delayed slot. + +2004-08-31 Richard Kenner + + * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add + blank after ')'. + (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used. + + * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT. + (c_sizeof_of_alignof_type): Likewise. + * expr.c (array_ref_element_size): Likewise. + (highest_pow2_factor_for_target): Likewise. + * gimplify.c (canonicalize_addr_expr): Likewise. + (gimplify_compound_lval): Likewise. + * stor-layout.c (finalize_record_size, finalize_type_size): Likewise. + * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. + * varasm.c (assemble_variable): Likewise. + (output_constant_def_contents): Alignments are unsigned. + +2004-08-31 Richard Kenner + Jeff Law + + * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL + gets modified. + +2004-08-31 Mark Mitchell + + * hooks.c (hook_bool_void_true): New function. + * hooks.h (hook_bool_void_true): Declare. + * target-def.h (TARGET_CXX): Add + TARGET_CXX_KEY_METHOD_MAY_BE_INLINE. + * target.h (struct cxx): Add key_method_may_be_inline. + * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New + function. + (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro. + * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of + __THUMB_INTERWORK. + +2004-08-31 Denis Chertykov + + PR target/15417 + * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of + frame pointer register only in Pmode while reload in progress. + +2004-08-31 Stephane Carrez + + PR target/15334 + * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb + because it breaks the 32-bit shift patterns that rely on a match_dup. + +2004-08-31 Matt Austern + + * config/darwin.c (darwin_make_decl_one_only): Allocate section + names once per compilation, instead of once per symbol. + +2004-08-31 Paolo Bonzini + + * Makefile.in (build_subdir): New substitution. + (fixinc.sh): Simplify heavily since fixincludes is already built. + (stmp-fixinc): Depend on specs.ready. + (install-mkheaders): Use new location of fixincludes. + (clean): Do not descend into fixinc. + (FORBUILD): Replace with ../$(build_subdir). + * configure.ac (build_subdir): Substitute. + (FORBUILD): Do not set. + (all_outputs): Remove fixinc/Makefile. + (default commands): Do not create links in fixinc. + * mkfixinc.sh: New, from fixinc/mkfixinc.sh without + the fixincludes configuration steps and substituting + @FIXINCL@ in fixinc.in. + * fixinc.in: New, from fixinc/fixincl.sh. + + * fixinc/*: Removed. + +2004-08-31 Joseph S. Myers + + * attribs.c (strip_attrs): Remove. + (split_specs_attrs): Move ... + * c-decl.c: ... to here. + * tree.h (split_specs_attrs, strip_attrs): Remove. + * c-tree.h (split_specs_attrs): Declare. + +2004-08-31 Richard Sandiford + + * read-rtl.c: Disable RTL checking. + (apply_macro_to_rtx): Use XTMPL to access 'T' fields. + +2004-08-31 Richard Sandiford + + * config/mips/mips.md (fcond): New code macro and attribute. + (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f) + (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond. + (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF. + +2004-08-30 Mark Mitchell + + Revert: + 2004-08-29 Mark Mitchell + PR rtl-optimization/16590 + * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. + +2004-08-30 Andrew Pinski + + * hard-reg-set.h: + s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT. + * ChangeLog: Fix previous ChangeLog entry. + + PR rtl-opt/13987 + * config.host (use_long_long_for_widest_fast_int): New, default is + off. + (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int. + * configure.ac: If use_long_long_for_widest_fast_int, then + define USE_LONG_LONG_FOR_WIDEST_FAST_INT. + * configure: Regenerate. + * config.in: Regenerate. + * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT): + New: widest integer type supported efficiently in hardware for the + host. + * sbitmap.h (SBITMAP_ELT_BITS): Define based on + HOST_BITS_PER_WIDEST_FAST_INT. + (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT. + * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on + HOST_WIDEST_FAST_INT + instead of HOST_WIDE_INT. + (HARD_REG_SET_LONGS): Likewise. + (UHOST_BITS_PER_WIDE_INT): Likewise. + Change the checks for the fast cases to be based on + HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT. + +2004-08-30 Steven Bosscher + + * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE, + not the pointers. + +2004-08-30 Geoffrey Keating + + PR 12738 + PR 17205 + Radar 3460526 + Radar 3775729 + * c-decl.c (grokdeclarator): Produce error for 'static' on local + function declaration. + +2004-08-30 Richard Henderson + + * expr.c (array_ref_element_size): Force aligned_size back to + sizetype. + (component_ref_field_offset): Similarly for aligned_offset. + * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw + low-bound, element-size, field-offset fields rather than + computed values. + +2004-08-30 Joseph S. Myers + + * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and + redundant code. + +2004-08-30 Joseph S. Myers + + * c-tree.h (struct language_function): Add arg_info element. + * c-decl.c (current_function_arg_info): New. + (grokdeclarator, store_parm_decls): Use it instead of + DECL_ARGUMENTS. + (c_push_function_context, c_pop_function_context): Save and + restore it. + +2004-08-30 Richard Henderson + + * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a + COMPONENT_REF to pointer arithmetic. + * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for + constant "c" as a valid constant initializer. Allow narrowing of + differences against the same base object, for any base object. + +2004-08-30 Richard Henderson + + * expr.c (expand_expr_addr_expr): New. + (expand_expr_real_1) : Use it. + +2004-08-30 Richard Sandiford + + * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro. + (mips_fp_condition): New enum. + (mips_fp_conditions): New array. + (print_fcc_operand): Delete. + (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints + the operand and comma if and only if ISA_HAS_8CC. Add %Y. + (builtin_description): Add "cond" field. + (DIRECT_BUILTIN): Initialize it. + (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter + into INSN and CODE. Initialize the "cond" field. + (CMP_BUILTINS): Update accordingly. + (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS. + (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the + mips_fp_condition as argument. Make it the final operand of the + comparison instruction. + (mips_expand_builtin): Update accordingly. + * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete. + (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill + the gaps. + * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]): + Don't use the 'Q' operand prefix; just print the operand normally. + (mips_cabs_*, mips_c_*): Delete, replacing with... + (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new + patterns. Split the 4s versions into 2 ps patterns after reload. + +2004-08-30 Richard Henderson + + * fold-const.c (tree_expr_nonzero_p): Use get_base_address before + assuming an ADDR_EXPR is non-null. + +2004-08-30 Jason Merrill + + * gthr-posix.h, gthr-dce.h: Add #pragma weaks. + +2004-08-30 Nathan Sidwell + + * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset, + record_set, rtx_equal_for_memref_p, init_alias_analysis): Use + gcc_assert and gcc_unreachable instead of abort. + * alloc-pool.c (abort, fancy_abort): Remove. + (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use + gcc_assert or gcc_unreachable. + * attribs.c (init_attributes, decl_attributes): Likewise. + * bb-reorder.c (FREE, find_traces_1_round, copy_bb, + mark_bb_for_unlikely_executed_section, + add_labels_and_missing_jumps, fix_crossing_conditional_branches, + fix_crossing_unconditional_branches): Likewise. + * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit, + bitmap_operation): Likewise. + * bt-load.c (insn_sets_btr_p, augment_live_range, + move_btr_def): Likewise. + * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size, + apply_result_size, expand_builtin_apply, expand_builtin_mathfn, + expand_builtin_mathfn_2, expand_builtin_mathfn_3, + builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy, + expand_builtin_memcmp, expand_builtin_args_info, + std_gimplify_va_arg_expr, expand_builtin_unop, + expand_builtin_fputs, expand_builtin_profile_func, + expand_builtin_fork_or_exec, fold_builtin_bitop, + fold_builtin_classify, fold_builtin_fputs): Likewise. + +2004-08-30 Nathan Sidwell + + * gcov-io.c (GCOV_CHECK): Use gcc_assert when available. + * gcov.c (abort): Remove undef. + + * tree.h (BINFO_PRIMARY_BASE_OF): Remove. + (struct tree_binfo): Remove primary field. + +2004-08-30 Paolo Bonzini + + * fixinc/Makefile.in (machname.h): Remove. + (fixincl.x): Do not pass $@ to genfixes. + * fixinc/genfixes: Remove code to produce machname.h. + * fixinc/fixincl.sh: Move it here instead. + * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence, + instead check if pz_mn_name_pat is NULL. Make mn_get_regexps + return a bool indicating whether pz_mn_name_pat is NULL. + * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence. + Declare extern C variables for the ENV_TABLE. + * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence, + instead use the result of mn_get_regexps. + * fixinc/fixtests.c: Likewise. + +2004-08-30 Paolo Bonzini + + * configure.ac: Do not run fixincludes after stage1 during + toplevel bootstrap. + * configure: Regenerate. + +2004-08-30 Richard Earnshaw + + * sched-deps.c (get_condition): Partially revert previous, by never + trying to extract the condition from a condjump. + +2004-08-30 Nathan Sidwell + + * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert. + (handle_visibility_attribute, c_determine_visibility): Likewise. + * c-common.h (my_friendly_assert): Remove. + +2004-08-30 Richard Sandiford + + * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete. + (UNSPEC_{RSQRT,RECIP}[12]): New constants. + (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps. + * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR. + (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF. + +2004-08-30 Diego Novillo + + * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE + in COMPONENT_REF nodes. + +2004-08-29 Gabriel Dos Reis + + PR c++/15378 + * c-opts.c (c_common_handle_option): set + global_dc->warning_as_error_requested. + * diagnostic.c (diagnostic_initialize): Tidy. + * diagnostic.h (diagnostic_context::x_data): Remove + (diagnostic_context::issue_warnings_are_errors_message): Rename + from warnings_are_errors_message. + (diagnostic_context::warning_as_error_requested): New. + +2004-08-30 Richard Earnshaw + + * sched-deps.c (get_condition): Fix breakage in previous patch. + +2004-08-30 Paul Brook + + * doc/install.texi: Fix broken mpfr link. + +2004-08-29 David O'Brien + + * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with + other FreeBSD platforms. + +2004-08-29 Richard Earnshaw + + * arm.h (REVERSE_CONDITION): Define. + (REVERSIBLE_CC_MODE): All comparisons are now reversible. + +2004-08-29 Richard Earnshaw + + * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not + just the codes, call reversed_comparison_code (). + (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P. + (not_reg_cond): Use reversed_comparison_code. + (and_reg_cond): Likewise. + * ifcvt.c (cond_exec_process_if_block): Likewise. + * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation. + +2004-08-29 Richard Earnshaw + + * sched-deps.c (get_condition): Rewrite using jump support functions. + Use reversed_comparison_code. + (conditions_mutex_p): Use reversed_comparison_code. + +2004-08-29 Richard Sandiford + + * config/mips/mips.c (override_options): Disable hot/cold partitioning + for MIPS16. + +2004-08-29 Richard Sandiford + + * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete. + (mips_function_type): Move to mips.c. + * config/mips/mips.c (mips_builtin_type): New enum. + (builtin_description): Replace code and ftype with builtin_type + and function_type. + (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS) + (MOVTF_BUILTINS, CMP_BUILTINS): New macros. + (CODE_FOR_mips_abs_ps): Define. + (mips_bdesc): Use new macros. + (mips_expand_builtin): Use builtin_type. Update calls to subroutines. + (mips_init_builtins): Use the mips_bdesc[] index as the function code. + (mips_expand_builtin_direct): New function. + (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_ + builtin. Replace boolean parameter with builtin_type. + (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin) + (mips_expand_4s_compare_builtin): Delete, replacing with... + (mips_expand_builtin_compare): ...this new function. + +2004-08-29 Mark Mitchell + + PR rtl-optimization/16590 + * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. + +2004-08-29 Diego Novillo + + * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards. + * tree-ssa-propagate.c: Fix documentation. + +2004-08-29 Richard Sandiford + + * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF. + (mov[sd]fcc): Likewise. + +2004-08-29 Richard Sandiford + + * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF. + +2004-08-29 Richard Sandiford + + * config/mips/mips.md (divide_condition): New mode attribute. + (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF. + (sqrt[sd]f3): Redefine using SCALARF. + (*recip[sd]f3, *rsqrt[ab]): Likewise. Name formerly unnamed + patterns. + +2004-08-29 Richard Sandiford + + * config/mips/mips.md (ANYF, SCALARF): New mode macros. + (loadx, storex, fmt, UNITMODE): New mode attributes. + (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF. + (mul[sd]f3): Redefine using :SCALARF. + (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF. + (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300. + (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF. + Check TARGET_FUSED_MADD for V2SF too. + (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns + were already named. + (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF. + (*[sl][wd]xc1_[sd]i): Redefine using :ANYF. + +2004-08-29 Richard Sandiford + + * config/mips/mips.c (mips_init_builtins): Simplify. Only create + V2SF_type_node if it will be needed. + +2004-08-29 Richard Sandiford + + * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete. + * config/mips/mips.c (mips_prepare_builtin_arg): New function. + (mips_prepare_builtin_target): New function. + (mips_expand_builtin): Use them. Update calls to subroutines. + (mips_expand_ps_cond_move_builtin): Use the new functions. Replace + cmp_choice with a boolean argument to select between movt and movf. + Take the comparison's icode as an argument, not the function's fcode. + (mips_expand_compare_builtin): New function. Rename existing function + to mips_expand_scalar_compare_builtin. + (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin) + (mips_expand_ps_compare_builtin): Use the new functions. Take the + comparison's icode as an argument, not the builtin's fcode. + +2004-08-29 Richard Sandiford + + * config/mips/mips.c (print_operand): Remove '%Y' and '%y'. + (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all + registers are false and -1 if all registers are true. + (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for + MIPS_CMP_UPPER and MIPS_CMP_LOWER. + * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y. + (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation. + (bc1any2t, bc1any2f): Likewise CCV2. + (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete. + +2004-08-29 Richard Sandiford + + * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New. + * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an + UNSPEC rather than an IF_THEN_ELSE. + * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit + mips_cond_move_tf_ps by name. + +2004-08-29 Chao-ying Fu + James E Wilson + + * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2 + 8 byte size and alignment. Give CCV4 16 byte size and alignment. + * config/mips/mips-ps-3d.md: New file. + * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P, + TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. + (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE. + (mips_output_move): Emit "mov.ps" for V2SFmode. + (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and + MODE_VECTOR_FLOAT. + (override_options): Check if TARGET_MIPS3D and there was an explicit + !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D. + Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when + TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports + TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers, + and allow CCV2 and CCV4 to occupy two and four CC registers. + (print_fcc_operand): New function. + (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify + %Z to call print_fcc_operand. + (mips_function_value): Handle MODE_VECTOR_FLOAT. + (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes. + (mips_vector_mode_supported_p): New function. + (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes. + (builtin_description): New struct. + (mips_bdesc): New array of struct builtin_description. + (mips_expand_builtin, mips_init_builtins, + mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin, + mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New + functions. + * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines. + (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines. + (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float. + (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single", + "-mips3d", and "-mno-mips3d". + (ASM_SPEC): Map -mips3d to -mips3d in gas. + (EXTRA_CONSTRAINT_Y): New macro. + (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new + multi-letter constraint 'Y'. + (CONSTRAINT_LEN): New macro. + (enum mips_builtins): New for MIPS builtin functions. + (enum mips_function_type): New for the types of MIPS builtin functions. + (enum mips_cmp_choice): New for the MIPS comparison builtin functions. + * config/mips/mips.md: New constants for paired single and MIPS-3D + instructions. Include the new mips-ps-3d.md file. + (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf, + movv2sf_hardfloat_64bit): New named patterns. + (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf, + nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si, + sdxc1_v2sf_di): New unnamed patterns. + * config/mips/predicates.md (const_0_operand, const_1_operand): Add + const_vector support. + (const_0_or_1_operand): New predicate. + * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d. + +2004-08-29 Diego Novillo + + * Makefile.in (OBJS-common): Add tree-ssa-propagate.o + (tree-ssa-propagate.o): New rule. + (GTFILES): Add tree-ssa-propagate.c. + * tree-flow.h (struct stmt_ann_d): Remove field + in_ccp_worklist. + * tree-ssa-propagate.c: New file. + * tree-ssa-propagate.h: New file. + * tree-ssa-ccp.c: Re-write to use the routines from + tree-ssa-propagate.c. + +2004-08-28 Andrew Pinski + + * tree-ssa-loop.c: Remove extra include of basic-block.h. + +2004-08-28 Ziemowit Laski + + * c-common.h: Update comments about ObjC/ObjC++ entry points. + (objc_is_reserved_word): New prototype. + (get_current_scope, objc_mark_locals_volatile): Move prototypes to + separate section; these are call-backs. + * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect + ObjC/ObjC++ "@" keywords. + * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove + prototypes; they already live in c-common.h. + * stub-objc.c: Update copyright notice. + (objc_is_reserved_word): New stub. + +2004-08-28 Nathan Sidwell + + * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR + even when not checking. + +2004-08-27 Jason Merrill + + PR c++/13684 + * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY. + (gimple_push_cleanup): Add eh_only parm. + (gimplify_target_expr): Pass it. + * c.opt (-fno-threadsafe-statics): New option. + * c-opts.c (c_common_handle_option): Handle it. + * c-common.h (flag_threadsafe_statics): Declare it. + * c-common.c (flag_threadsafe_statics): Record it. + * doc/invoke.texi: Document it. + * tsystem.h (_GNU_SOURCE): Define. + * gthr-posix.h (__gthread_recursive_mutex_t): New typedef. + (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro. + (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro. + (__gthread_recursive_mutex_init_function): New fn. + (__gthread_recursive_mutex_lock): New fn. + (__gthread_recursive_mutex_trylock): New fn. + (__gthread_recursive_mutex_unlock): New fn. + * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise. + * gthr-win32.h, gthr-vxworks.h: Likewise. + * gthr.h: Document. + +2004-08-27 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_override_options): Increase + maximum skip to 15. Set function alignment, jump alignment, and + loop alignment to 16 for processors that form dispatch groups. + (rs6000_rtx_costs): outer_code is used. + +2004-08-27 Nathan Sidwell + + * stor-layout.c (sizetype_set): Remove. + (set_sizetype): Don't test or set it. + + * tree.h (size_int_type): Remove. + * fold-const.c: Do not #include gt-fold-const.h. + (size_htab_hash, size_htab_eq): Remove. + (size_int_kind): Use build_int_cst. + (new_const, size_htab): Remove. + (size_int_type): Remove. + (round_up): Use build_int_cst. + (round_down): Likewise. Remove spurious constant build. + +2004-08-27 Nathan Sidwell + + * configure.ac: Add ENABLE_ASSERT_CHECKING control. + Add is_release variable, use it for --enable-werror and + --enable-checking defaults. + * system.h (gcc_assert, gcc_unreachable): New. + * doc/install.texi (--enable-checking): Update. + * configure, config.in: Rebuilt. + +2004-08-26 Richard Sandiford + + * rtl.h (read_rtx): Change prototype. + * read-rtl.c (read_rtx): Provide the caller with both an rtx and a + line number. Return true on success. + * gensupport.c (process_include, init_md_reader_args_cb): Adjust + callers accordingly. + +2004-08-26 Richard Henderson + + * c-typeck.c (build_offsetof): Remove. + * c-tree.h (build_offsetof): Remove. + * c-common.c (fold_offsetof_1, fold_offsetof): New. + * c-common.h (fold_offsetof): Declare. + * c-parse.in (offsetof_base): New. + (offsetof_member_designator): Use it. Build references, not just + a tree list. + (primary): Use fold_offsetof, not build_offsetof. + +2004-08-26 Richard Henderson + + * tree.c (staticp): Return the static object. + * tree.h (staticp): Update decl. + * langhooks.h (struct lang_hooks): Change staticp return type to tree. + * langhooks.c (lhd_staticp): Return NULL_TREE. + * langhooks-def.h (lhd_staticp): Update decl. + * c-common.c (c_staticp): Return the static object. + * c-common.h (c_staticp): Update decl. + +2004-08-26 Richard Henderson + + * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float + modes. + +2004-08-26 Joseph S. Myers + + PR c/13801 + * c-decl.c (struct c_binding): Add type and inner_comp fields. + (bind): Set type and inner_comp fields. + (pop_scope): Restore type of decl to the correct type from an + outer scope. Give error when popping file scope for incomplete + arrays completed incompatibly with default initialization in an + inner scope. + (diagnose_mismatched_decls): Handle externs with initializers at + block scope. + (pushdecl): Set type of external declaration at block scope based + only on the visible declarations. Save type when changing the + type of a declaration. Merge an external declaration at block + scope with a visible static declaration at file scope. + (implicitly_declare): Give recycled old declaration the new type + except for incompatible declarations of built-in functions, saving + the old type. + +2004-08-26 Ziemowit Laski + + * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use. + +2004-08-26 Daniel Berlin + + * tree-alias-common.c (gate_pta): New function. + (pass_build_pta): Use it. + (pass_del_pta): Use it. + (delete_alias_vars): Don't check flag_tree_points_to. + +2004-08-26 Fariborz Jahanian + + * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added + TFmode as additional register mode cloberred by call. + +2004-08-26 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_libcall_value): Generate + parallel pattern for library call returning DImode in + mixed mode. + +2004-08-26 Fariborz Jahanian + + * config/rs6000/rs6000.c (function_arg): Generate parallel + pattern for more split args. + +2004-08-26 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call + either gen_movdi_di_update or gen_movdi_si_update depending on + target mode. + * config/rs6000/rs6000.md (movdi_update): Changed to movdi__update, + to generate two versions. + +2004-08-26 Daniel Berlin + + * Makefile.in (lambda-code.o): New. + (lambda-trans.o): Ditto. + (TREE_DATA_REF_H): Ditto. + (LAMBDA_H): Ditto. + (lambda-mat.o): Use LAMBDA_H. + (tree-data-ref.o): Ditto. + * lambda-code.c: New file. Lambda code generation algorithm. + * lambda-trans.c: Ditto. Lambda transformation matrix support. + * lambda.h: Add lambda loop structures. + Add lambda loopnest structures. + Add lambda body vector structure. + Add lambda linear expression structures. + Add prototypes for functions in new files. + * lambda-mat.c: Include tree.h + +2004-08-26 Daniel Berlin + Sebastian Pop + + * tree-data-ref.h: Include lambda.h + (free_dependence_relation): Declared here. + (free_dependence_relations): Ditto. + (free_data_refs): Ditto. + * tree-data-ref.c (free_dependence_relation): New function. + (free_dependence_relations): Ditto. + (free_data_refs): Ditot. + (analyze_all_data_dependences): Free datarefs and dependence_relations. + (build_classic_dist_vector): Store in the dependence_relations the + information. Each arc in the dependence_relations graph is labelled + with the distance and direction vectors. + (build_classic_dir_vector): Ditto. + (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences. + Now computes again the whole dependence graph including read-read + relations. + (compute_data_dependences_for_loop): Now dependence_relations contains + all the data, and thus it doesn't need to initialize the classic_dir + and classic_dist vectors. + (analyze_all_data_dependences): Adjusted for using the new interface of + compute_data_dependences_for_loop. Remove the statistics dump. + +2004-08-26 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete. + (xtensa_expand_block_move): Update comment. + (override_options): Remove initialization of xtensa_{ld,st}_opcodes. + +2004-08026 Richard Earnshaw + + PR target/13506 + * toplev.c (crash_signal): If we crashed while emitting + a user asm, then die more gracefully. + +2004-08-26 Kazuhiro Inaoka + + PR target/17119. + * config/m32r.c (gen_compare): Use reg_or_int16_operand when + checking for a valid constant, regardless of sign. + +2004-08-25 Richard Henderson + + PR target/16974 + * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting + if the constant satisfies add_operand. + +2004-08-25 Richard Henderson + + PR debug/10695 + * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New. + (alpha_expand_prologue): Handle >32-bit frames. Generate proper + unwind info for >16-bit frames. + +2004-08-25 Richard B. Kreckel + + PR target/17171 + * config/i386/gas.h (ASM_COMMENT_START): Define to "#". + +2004-08-25 Richard Henderson + + * config/alpha/alpha.c (alpha_cannot_force_const_mem): New. + (TARGET_CANNOT_FORCE_CONST_MEM): New. + +2004-08-25 Andrew MacLeod + + * doc/tree-ssa.texi: Document new operand iterator. + +2004-08-26 Alan Modra + + PR target/16480 + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort + on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well + as PLUS base regs. + +2005-08-28 Paul Brook + + * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to + -mfpu=vfp -march=armv5t + * config/arm/t-symbian: Change multilib to mfloat-abi=softfp. + +2004-08-25 Richard Henderson + + * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New. + * target.h (struct gcc_target): Add scalar_mode_supported_p. + * targhooks.c (default_scalar_mode_supported_p): New. + * targhooks.h (default_scalar_mode_supported_p): Declare. + * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document. + + * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p + before attempting to create types. Tidy. + * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p. + + * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New. + (TARGET_SCALAR_MODE_SUPPORTED_P): New. + +2004-08-25 Richard Henderson + + * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't + set REAL_MODE_FORMAT for TFmode. + +2004-08-25 Ziemowit Laski + + * c-decl.c (grokparm): New function. + * c-tree.h (grokparm): New prototype. + +2004-08-25 Andrew MacLeod + + * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand + iterator controlling structure. + (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF, + SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS, + SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand + iterator flags. + (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees. + (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses. + (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs. + (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs. + * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New. + Empty operand pointers. + * tree-flow-inline.h (op_iter_done): New. Return true if finished. + (op_iter_next_use): New. Return next use_operand_p. + (op_iter_next_def): New. Return next def_operand_p. + (op_iter_next_tree): New. Return next operands as a tree. + (op_iter_init): New. Initialize an iterator structure. + (op_iter_init_use): New. Initialize structure and get the first use. + (op_iter_init_def): New. Initialize structure and get the first def. + (op_iter_init_tree): New. Initialize structure and get the first tree. + (op_iter_next_maydef): New. Return next V_MAY_DEF operands. + (op_iter_init_maydef): New. Initialize structure and get the first + V_MAY_DEF operands. + * tree-cfg.c (tree_duplicate_bb): Use new operand iterator. + * tree-dfa.c (compute_immediate_uses_for_stmt, + redirect_immediate_uses): Use new operand iterator. + (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete. + (mark_new_vars_to_rename): Use new operand iterator. Count virtual + operands instead of using *_disappeared_p routines. + * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt, + ssa_rewrite_stmt): Use new operand iterator. + * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, + rewrite_trees): Use new operand iterator. + * tree-pretty-print.c (dump_vops): Use new operand iterator. + * tree-sra.c (mark_all_v_defs): Use new operand iterator. + * tree-ssa-alias.c (compute_points_to_and_addr_escape, + dump_points_to_info): Use new operand iterator. + * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize, + replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new + operand iterator. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary, + propagate_necessity): Use new operand iterator. + * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator. + (register_definitions_for_stmt): Use new operand iterator. Take stmt as + a parameter instead of a stmt_ann_t. + * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry, + build_tree_conflict_graph): Use new operand iterator. + * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address, + rewrite_mem_refs): Use new operand iterator. + * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, + check_loop_closed_ssa_use): Use new operand iterator. + * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator. + * tree-ssanames.c (release_defs): Use new operand iterator. + * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator. + +2004-08-25 Adam Nemet + + * tlink.c (initial_cwd): New variable. + (tlink_init): Initialize it. + (recompile_files): Use tlink_execute() instead of system(). Don't + duplicate verbose output of collect_execute. Restore initial_cwd. + Update comment before the function. + +2004-08-25 Ziemowit Laski + + * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently + accept) a cast from one Objective-C pointer type to another. + +2004-08-25 Paolo Carlini + + * doc/install.texi: Document that libstdc++-v3 requires + now automake 1.9.1. + +2004-08-25 Caroline Tice + + * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details + to comments at start of function. + * cfgbuild.c (make_edges): Add more details to hot/cold partitioning + comment. + * cfgcleanup.c (try_simplify_condjump, try_forward_edges, + merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps, merge_blocks_move, + try_crossjump_to_edge, try_crossjump_bb): Likewise. + * cfglayout.c (fixup_reorder_chain): Likewise. + * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump, + cfg_layout_can_merge_blocks_p): Likewise. + * ifcvt.c (find_if_case_1, find_if_case_2): Likewise. + * passes.c (rest_of_compilation): Update comments for calling + optimization that partitions hot/cold basic blocks. + * doc/invoke.texi: Update documentation of + freorder-blocks-and-partition flag. + +2004-08-25 Richard Sandiford + + * config/mips/mips.md (reg): Renamed mode attribute from ccreg. + (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix. + +2004-08-25 Richard Sandiford + + * config/mips/mips.md (any_shift): New code macro. + (optab, insn): New code attributes. + ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift. + Use the standard rather than internal patterns for the MIPS16 + double-shift optimization. + (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns. + Redefine using :GPR and any_shift. + (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend + to cover all three shifts. + (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts. + Redefine using any_shift. Use :GPR and any_shift to combine splitters. + (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts. + +2004-08-24 Geoffrey Keating + + * gimplify.c (lookup_tmp_var): Separate temporaries when not + optimizing. + +2004-08-25 John David Anglin + + PR libstdc++/17005 (fix for HP-UX 11.11) + * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2. + (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of + tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate. + * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files. + * config/pa/pa-hpux.h (TARGET_HPUX): Define. + (LINK_SPEC): Handle march=1.0 option. + * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX + and _XOPEN_SOURCE_EXTENDED for UNIX 95. + (SUBTARGET_OPTIONS): New define. + (LINK_SPEC): Handle march=1.0 option. + (STARTFILE_SPEC): New define. + * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX + and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine + _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98. + (SUBTARGET_OPTIONS): New define. + (LINK_SPEC): Handle march=1.0 option. + (STARTFILE_SPEC): New define. + * config/pa/pa.c (override_options): Add code to process -munix= option. + * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare. + (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default + defines. + (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list. + (SUBTARGET_OPTIONS): Provide default define. + * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1, + STANDARD_STARTFILE_PREFIX_2): New defines. + (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary. + (ENDFILE_SPEC): Use %O. + * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas. + Mention issue caused by changing namespace and runtime to UNIX 95/98. + * doc/invoke.texi (HPPA options): Move misplaced text to FRV options. + Document -munix=std option. + +2004-08-25 Steven Bosscher + + * cse.c (cse_around_loop, cse_check_loop_start, + cse_set_around_loop): Remove. + (cse_basic_block): Remove the around_loop argument. + (cse_end_of_basic_block): Remove the after_loop argument. + (cse_main): Likewise. + * rtl.h (cse_main): Update prototype. + * passes.c (rest_of_handle_cse, rest_of_handle_cse2, + rest_of_handle_gcse): Update cse_main calls. + +2004-08-25 Nathan Sidwell + + * tree.h (build_int_cst): New, sign extended constant. + (build_int_cstu): New, zero extended constant. + (build_int_cst_wide): Renamed from build_int_cst. + * tree.c (build_int_cst, build_int_cstu): New. + (build_int_cst_wide): Renamed from build_int_cst. + (make_vector_type, build_common_tree_nodes, + build_common_tree_nodes_2): Adjust build_int_cst calls. + * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, + expand_builtin_strpbrk, expand_builtin_fputs, + build_string_literal, expand_builtin_printf, + expand_builtin_sprintf, fold_builtin_classify_type, + fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii, + fold_builtin_toascii, fold_builtin_isdigit, + simplify_builtin_strstr, simplify_builtin_strpbrk, + fold_builtin_fputs, simplify_builtin_sprintf): Likewise. + * c-common.c (start_fname_decls, fix_string_type, shorten_compare, + DEF_ATTR_INT): Likewise. + * c-decl.c (complete_array_type, check_bitfield_type_and_width): + Likewise. + * c-lex.c (interpret_integer, lex_charconst): Likewise. + * c-parse.in (primary) Likewise. + * c-pretty-print.c (pp_c_integer_constant): Likewise. + * c-typeck.c (really_start_incremental_init, push_init_level, + set_nonincremental_init_from_string): Likewise. + * calls.c (load_register_parameters): Likewise. + convert.c (convert_to_pointer): Likewise. + coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, + build_fn_info_type, build_fn_info_value, build_ctr_info_value, + build_gcov_info): Likewise. + * except.c (init_eh, assign_filter_values): Likewise. + * expmed.c (store_fixed_bit_field, extract_bit_field, + extract_fixed_bit_field, extract_split_bit_field, expand_shift, + expand_mult_const, expand_mult_highpart_adjust, extract_high_half, + expand_sdiv_pow2, expand_divmod, make_tree): Likewise. + * expr.c (convert_move, emit_group_load, emit_group_store, + expand_assignment, store_constructor, store_field, + expand_expr_real_1, reduce_to_bit_field_precision): Likewise. + fold-const.c (force_fit_type, int_const_binop, fold_convert_const, + invert_truthvalue, optimize_bit_field_compare, + decode_field_reference, all_ones_mask_p, constant_boolean_node, + fold_div_compare, fold, fold_read_from_constant_string, + fold_negate_const, fold_abs_const, fold_not_const, round_up, + round_down): Likewise. + * function.c (assign_parm_setup_block): Likewise. + * stmt.c (shift_return_value, expand_case, estimate_case_costs): + Likewise. + * stor-layout.c (layout_type, initialize_sizetypes, + set_min_and_max_values_for_integral_type): Likewise. + * tree-chrec.c (chrec_fold_multiply_poly_poly, + reset_evolution_in_loop): Likewise. + * tree-chrec.h (build_polynomial_chrec): Likewise. + * tree-complex.c (build_replicated_const): Likewise. + * tree-eh.c (honor_protect_cleanup_actions, + lower_try_finally_onedest, lower_try_finally_copy, + lower_try_finally_switch): Likewise. + * tree-mudflap.c (mf_build_string, mx_register_decls, + mudflap_register_call, mudflap_enqueue_constant): Likewise. + * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): + Likewise. + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. + * tree-ssa-loop-niter.c (number_of_iterations_cond, + loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): + Likewise. + * tree-ssa-loop-ivcanon.c (create_canonical_iv, + canonicalize_loop_induction_variables): Likewise. + * tree-vectorizer.c (vect_create_index_for_array_ref, + vect_transform_loop_bound, vect_compute_data_ref_alignment): + Likewise. + + * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start, + alpha_gimplify_va_arg_1): Likewise. + * config/arm/arm.c (arm_get_cookie_size): Likewise. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. + * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, + mips_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, + add_compiler_branch_island): Likewise. + * config/s390/s390.c (s390_va_start): Likewise. + * config/sh/sh.c (sh_va_start): Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Likewise. + * config/xtensa/xtensa.c (xtensa_va_start, + xtensa_gimplify_va_arg_expr): Likewise. + + * objc/objc-act.c (build_objc_string_object, + build_objc_symtab_template, init_def_list, init_objc_symtab, + init_module_descriptor, generate_static_references, + build_selector_translation_table, get_proto_encoding, + build_typed_selector_reference, build_selector_reference, + build_next_objc_exception_stuff, + build_method_prototype_list_template, generate_descriptor_table, + generate_protocols, build_protocol_initializer, + build_ivar_list_template, build_method_list_template, + build_ivar_list_initializer, generate_ivars_list, + generate_dispatch_table, generate_protocol_list, + build_category_initializer, build_shared_structure_initializer, + generate_shared_structures, handle_impent, + generate_objc_image_info): Likewise. + +2004-04-25 Paolo Bonzini + + * cfglayout.c (duplicate_insn_chain): Remove references to + NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT. + * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator. + * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT. + * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP + and NOTE_INSN_LOOP_CONT. + * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove. + * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP + and NOTE_INSN_LOOP_CONT. + * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop, + check_dbra_loop, loop_dump_aux): Remove references to removed notes + and fields. + * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs. + * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove + references to removed notes and fields. + (subtract_reg_term, ujump_to_loop_cont): Remove. + +2004-08-25 Paolo Bonzini + + * doc/install.texi: Document that libcpp does not require + Automake any longer. Document that Automake 1.9.1 should + work everywhere. + +2004-08-25 Zack Weinberg + + * flags.h (enum debug_info_type): Remove DWARF_DEBUG. + * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for + DWARF_DEBUGGING_INFO from choice-of-definition chain; + restructure using C89 features (#elif, #error). + * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c + * config/sh/sh.h: Remove references to DWARF_DEBUG. + * doc/invoke.texi: Remove references to DWARF version 1; + clarify why -gdwarf-2 doesn't work. + +2004-08-25 Zack Weinberg + + * basic-block.h (BB_SET_PARTITION): Clear old value first. + * cfg.c (clear_bb_flags): Don't clear partition setting. + * ifcvt.c (find_if_case_1): Remove ??? comment. + +2004-08-25 Alan Modra + + PR target/17052 + * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p. + * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use + current_function_stdarg in place of sysv_varargs_p. + * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set + sysv_varargs_p. + +2004-08-24 Richard Henderson + + PR target/16298 + * config/i386/i386.c (legitimate_constant_p): Rework to not accept + random codes within CONST. + +2004-08-24 James E Wilson + + * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove + -freorder-blocks-and-partition. + +2004-08-24 John David Anglin + + PR middle-end/17044 + * tree-ssa-threadupdate.c (redirection_data): Make static. + (thread_block): Use ggc_alloc_cleared to allocate struct + redirection_data. Don't free elements in redirection_data. + +2004-08-24 Richard Sandiford + + * config/mips/predicates.md (small_data_pattern): Match prefetches. + +2004-08-24 Zdenek Dvorak + + PR tree-optimization/17016 + * tree-ssa-loop-niter.c (number_of_iterations_cond, + number_of_iterations_exit): Use POINTER_TYPE_P instead + of testing for POINTER_TYPE. + +2004-08-24 Zdenek Dvorak + + * tree-ssa-loop-ivcanon.c: New file. + * tree-ssa-loop-manip.c (create_iv): New function. + * Makefile.in (tree-ssa-loop-ivcanon.o): Add. + (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency. + * cfgloop.c (mark_single_exit_loops): New function. + (verify_loop_structure): Verify single-exit loops. + * cfgloop.h (struct loop): Add single_exit field. + (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant. + (mark_single_exit_loops): Declare. + (tree_num_loop_insns): Declare. + * cfgloopmanip.c (update_single_exits_after_duplication): New function. + (duplicate_loop_to_header_edge): Use it. + * common.opt (fivcanon): New flag. + * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars. + * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block. + (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc. + (bsi_insert_on_edge_immediate): New function. + * tree-flow.h (bsi_insert_on_edge_immediate, + canonicalize_induction_variables, tree_unroll_loops_completely, + create_iv): Declare. + * tree-optimize.c (init_tree_optimization_passes): Add + pass_iv_canon and pass_complete_unroll. + * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare. + * tree-scalar-evolution.c (get_loop_exit_condition, + get_exit_conditions_rec, number_of_iterations_in_loop, + scev_initialize): Use single_exit information. + * tree-ssa-loop-niter.c (number_of_iterations_cond): Record + missing assumptions. + (loop_niter_by_eval): Return number of iterations as unsigned + int. + * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops. + (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon, + tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll): + New passes. + (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates. + * tree-ssanames.c (make_ssa_name): Allow creating ssa name before + the defining statement is ready. + * tree-vectorizer.c (vect_create_iv_simple): Removed. + (vect_create_index_for_array_ref, vect_transform_loop_bound): + Use create_iv. + (vect_transform_loop_bound): Use single_exit information. + (vect_analyze_loop_form): Cleanup bogus tests. + (vectorize_loops): Do not call flow_loop_scan. + * tree.h (may_negate_without_overflow_p): Declare. + * fold-const.c (may_negate_without_overflow_p): Split out from ... + (negate_expr_p): ... this function. + (tree_expr_nonzero_p): Handle overflowed constants correctly. + * doc/invoke.texi (-fivcanon): Document. + * doc/passes.texi: Document canonical induction variable creation. + +2004-08-24 Richard Sandiford + + * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete. + * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t, + using the mode of the operand to decide between them. + * config/mips/mips.md (MOVECC): New mode macro. + (ccreg): New mode attribute. + (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns. + Redefine using :GPR and :MOVECC. Use %T and %t for the condition. + (mov[sd]icc): Redefine using :GPR. + +2004-08-24 Richard Sandiford + + * config/mips/mips-protos.h (mips_emit_prefetch): Delete. + (mips_prefetch_cookie): New function. + * config/mips/mips.c (print_operand_address): Fix handling of + ADDRESS_CONST_INT. + (mips_emit_prefetch): Delete. + (mips_prefetch_cookie): New function. + * config/mips/mips.md (prefetch): Turn into a define_insn. Use a + mode of QImode for the address_operand. Use mips_prefetch_cookie + to calculate the first "pref" operand. + (prefetch_[sd]i, prefetch_[sd]i_address): Delete. + (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie. + +2004-08-24 Richard Earnshaw + + * arm.md: Include predicates.md. + * predicates.md: New file. + * arm.c (s_register_operand, arm_hard_register_operand) + (arm_general_register_operand, f_register_operand, reg_or_int_operand) + (arm_immediate_operand, arm_neg_immediate_operand) + (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand) + (arm_add_operand, arm_addimm_operand, arm_not_operand) + (offsettable_memory_operand, alignable_memory_operand) + (arm_reload_memory_operand, arm_float_rhs_operand) + (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand) + (index_operand, shiftable_operator, logical_binary_operator) + (shift_operator, equality_operator, arm_comparison_operator) + (minmax_operator, cc_register, dominant_cc_register) + (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand) + (di_operand, nonimmediate_soft_df_operand, soft_df_operand) + (const_shift_operand, load_multiple_operation) + (store_multiple_operation, multi_register_push, thumb_cmp_operand) + (thumb_cmpneg_operand, thumb_cbrch_target_operand) + (cirrus_register_operand, cirrus_fp_register) + (cirrus_shift_const): Delete, replaced with equivalents in + predicates.md. + (shift_op): Handle ROTATE. + * arm-protos.h: Delete declarations for above. + * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. + * t-arm (MD_INCLUDES): Add predicates.md. + (s-preds): Depends on MD_INCLUDES. + +2004-08-24 Richard Sandiford + + * config/mips/mips.c (mips_gen_conditional_trap): Fix mode. + * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed + patterns. Redefine using :GPR. Give the match_operator a mode. + Use '%2' rather than '%z2' for operand 2. + +2004-08-24 Richard Sandiford + + * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode + attribute. + +2004-08-24 Richard Sandiford + + * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names + of internal patterns. + (indirect_jump[sd]i): Renamed from indirect_jump_internal[12]. + Redefine using :P. + (tablejump): Use expand_binop to calculate address. Adjust names + of internal patterns. + (tablejump[sd]i): Renamed from tablejump_internal[12]. + Redefine using :P. + (tablejump_mips16[12]): Delete. + +2004-08-24 Richard Sandiford + + * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i) + (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i) + (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i) + (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16) + (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR. + +2004-08-24 Richard Sandiford + + * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR. + (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine + using :GPR. + (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted. + (*branch_equality[sd]i): Likewise branch_equality{,_di}. + (*branch_equality[sd]i_inverted): Likewise + branch_equality{,_di}_inverted. + (*branch_equality[sd]i_mips16): Name formerly unnamed patterns. + Redefine using :GPR. + +2004-08-24 Zack Weinberg + + * rtl.def: Reorganize, placing all codes used only in machine + descriptions at the end. + + * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE. + * gengtype.c: Don't include rtl.h. Define enum rtx_code and + rtx_name, rtx_format arrays by direct reference to rtl.def, + first undefining GENERATOR_FILE. Define enum insn_note and + note_insn_name array by direct reference to insn-notes.def. + (adjust_field_rtx_def): Remove local definition of rtx_name. + Use symbolic names for insn notes. + * Makefile.in (gengtype.o): Update dependencies. + +2004-08-24 Zack Weinberg + + * basic-block.h (struct basic_block_def): Reorder fields to + eliminate interior padding. Remove 'partition' field. + (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION) + (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION) + (BB_COPY_PARTITION): New macros. + * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c + Replace all references to the 'partition' field of a basic + block with new macros. + + * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK. + * final.c (final_scan_insn): Don't handle it. + * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb + instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note. + * sched-rgn.c (sched_is_disabled_for_current_region_p): + Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note. + +2004-08-24 Nathan Sidwell + + * c-decl.c (c_init_decl_processing): Adjust + build_common_tree_nodes call. + * expmed.c (const_mult_add_overflow_p): Use + build_distinct_type_copy. + * stor-layout.c (early_type_list): Remove. + (layout_type): Don't append to early_type_list. + (initialize_sizetypes): Add signed_p argument. + (set_sizetype): Overwrite the stub type nodes directly. + * tree.c (copy_node_stat): Clear a type's value cache here ... + (build_distinct_type): ... not here. + (build_common_tree_nodes): Add signed_sizetype argument. Adjust. + * tree.h (initialize_sizetypes): Add signed_p argument. + (build_common_tree_nodes): Likewise. + + * objc/objc-act.c (get_static_reference): Use + build_variant_type_copy. + (get_protocol_reference): Likewise. + * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE. + +2004-08-24 Richard Henderson + Andrew Pinski + + * gimplify.c (gimplify_array_ref_to_plus): Delete. + (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus + for ARRAY_REF. + + * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed + ARRAY_REF also to get to the STRING_CST. + +2004-08-24 Paul Brook + + * config/arm/arm.c (arm_override_options): Update error message. + * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to + TARGET_HARD_FLOAT_ABI. + (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT. + (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI. + +2004-08-24 Kazuhiro Inaoka + + PR target/17093 + * config/m32r.md (movsi_sda): Add SI mode specification to + UNSPEC. + +2004-08-24 Nick Clifton + + * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition + of seth_add3_operand. + +2004-08-24 Nathan Sidwell + + * Makefile.in (PROTO_OBJS): Add errors.o. + * protoize.c (fancy_abort): Remove. + * mips-tfile.c (fancy_abort): Add parameters. + +2004-08-24 Jonathan Wakely + + * doc/trouble.texi (C++ misunderstandings): Fix example code. + +2004-08-24 Andreas Tobler + + * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H. + (host-default.o): Add dependency on HOOKS_H. + * config/x-linux: Likewise. + * config/x-solaris: Likewise. + * config/i386/x-mingw32: Likewise. + * config/rs6000/x-darwin: Likewise. + +2004-08-23 James E Wilson + + * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to + DEF_REG_NOTE. + +2004-08-23 Mark Mitchell + + PR c/14492 + * dwarf2out.c (loc_descriptor_from_tree): Robustify. + +2004-08-23 Diego Novillo + + * cfg.c (check_bb_profile): Fix typos. + * function.c (assign_parm_is_stack_parm): Likewise. + * tree-nested.c: Likewise. + +2004-08-23 Daniel Jacobowitz + + * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE. + Remove TYPECODE. + (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk. + +2004-08-23 Eric Christopher + + * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro. + * system.h (VECTOR_MODE_SUPPORTED_P): Poison. + * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define. + * target.h: Ditto. + * hooks.h: Include machmode.h. + (hook_bool_mode_false): Declare. + * hooks.c (hook_bool_mode_false): Define. + * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p. + * stor-layout.c (layout_type): Ditto. + * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function. + Define to target macro. + * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete. + * config/arm/arm.c: Ditto. Use. + * config/arm/arm.h: Ditto. + * config/arm/arm-protos.h: Ditto. + * config/i386/i386.c: Ditto. + * config/i386/i386.h: Ditto. + * config/rs6000/rs6000.c: Ditto. + * config/rs6000/rs6000.h: Ditto. + * config/sh/sh.c: Ditto. + * config/sh/sh.h: Ditto. + * config/sh/sh-protos.h: Ditto. + * config/sh/sh.md: Use. + * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P + to TARGET_VECTOR_MODE_SUPPORTED_P. + +2004-08-23 Nathan Sidwell + + * Makefile.in (BUILD_ERRORS): Set to build-errors. + (errors.o): New target for host. + (build-errors.o): New target for build. + (genobjs): Replace errors.o with build-errors. + (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS). + (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o. + (fix-headers$(build_exeext)): Add $(BUILD_ERRORS). + (fix-header.o): Add errors.h + * collect2.c (fancy_abort): Add parameters. + * collect2.h (fancy_abort): Don't declare. + * errors.h (fancy_abort): Don't declare. + * errors.c: Include either bconfig.h or config.h. + (fancy_abort): Trim filename. + * fix-header.c (v_fatal, fatal): Remove. + (progname): Remove definition. + (main): Set progname here. + * gcc.c (fancy_abort): Add parameters. + * gcc.h (fancy_abort): Remove declaration. + * gcov.c (fancy_abort): Remove. + * rtl.h (fancy_abort): Don't declare. + (abort): Don't define. + * tree.h (fancy_abort): Don't declare. + (abort): Don't define. + * system.h (fancy_abort): Declare. + (abort): Define to fancy_abort. + * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o + + * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE. + (usize_type, ubitsizetype): Remove. + * stor-layout.c (set_sizetype): Don't initialize usizetype, + ubitsizetype. + * fold-const.c (size_diffop): TYPE can never be ubitsizetype. + + * tree.h (build_distinct_type_copy): New. + (build_type_copy): ... here. Rename to ... + (build_variant_type_copy): ... here. + * tree.c (build_qualified_type): Rename build_type_copy call. + (build_distinct_type_copy): New, broken out of ... + (build_type_copy): ... here. Rename to ... + (build_variant_type_copy): ... here. Use + build_distinct_type_copy. + (build_common_tree_nodes_2): Rename build_type_copy call. + * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy + call. + (handle_packed_attribute, handle_unused_attribute, + handle_transparanet_union_attribute, handle_aligned_attribute, + handle_deprecated_attribute): Likewise. + * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle): + Likewise. + * config/arm/arm.c (arm_handle_isr_attribyte): Likewise. + * config/rs6000/rs6000.c (rs6000_init_builtins): Use + build_distinct_type_copy. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode + attribute. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed + loads and stores. + (*lwxc1_, *ldxc1_, *swxc1_, *sdxc1_): Name + formerly unnamed patterns. Redefine using :P for the address. Remove + explicit length attributes. + +2004-08-23 Zdenek Dvorak + + * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref): + New functions. + (single_reachable_address): Use them. + (schedule_sm): Add dump. + (is_call_clobbered_ref): New function. + (determine_lsm_reg): Check whether the reference is call clobbered. + Only work for gimple_reg_type values. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (*mov_ra): Name previously unnamed MIPS16 + $31 store insns. Redefine using :GPR. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (P): New mode macro. + (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i) + (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P. + Add mode attributes. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of... + (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle + later constants to cover the gap. + (load, store): New mode attributes. + (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR. + Use new unspec constants. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR. + (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns + to use register_operand rather than uns_arith_operand as the predicate + for operand 1. Remove redundant MIPS16 force_reg() for operand 1. + (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns. + Redefine using :GPR. Make same predicate change here. Extend the + commutativity of operands 1 and 2 from the SImode version to the + DImode one. + (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise, + but with no predicate changes. + (*nor[sd]i3): Redefine using :GPR. + +2004-08-23 Zdenek Dvorak + + * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for + noreturn functions. + +2004-08-23 Richard Sandiford + + * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete. + * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use + branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%." + rather than "%z2" (with a fake const0_rtx for operand 2). + (ffs[sd]i2): Redefine using :GPR. + (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR. + +2004-08-23 Richard Sandiford + + * config/mips/mips.md (any_extend): New code macro. + (u, su): New code attributes. + ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000) + ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal) + ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart) + (*{s,u}mul_acc_di): Redefine using any_extend. + (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns + to reflect real insn names. + (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator + with an any_extend template. + ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend. + Add '*' to name. + +2004-08-23 Richard Sandiford + + * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD. + * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal) + (mul[sd]i3_r4000): Redefine using :GPR. + (mulsi3_mult3): Don't check TARGET_MAD separately. + (muldi3_mult3): Moved after mulsi_mult3. + +2004-08-23 Richard Sandiford + + * config.gcc (mips-*-*): Remove definitions of MASK_GAS and + OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld. + * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down. + (TARGET_GAS, TARGET_MIPS_AS): Delete. + (TARGET_GPWORD): Define to true for n32 on IRIX. + (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op. + (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete. + (GAS_ASM_SPEC): Delete, folding into ASM_SPEC. + (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete. + (MDEBUG_ASM_SPEC): Delete, folding into... + (SUBTARGET_ASM_DEBUGGING_SPEC): ...here. + (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches. + (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec, + subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT + to define asm_abi_default_spec. + (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete. + (TARGET_ASM_SELECT_SECTION): Delete. + * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0 + for non-mips16 code, removing previous workaround for SGI assemblers. + (TARGET_ASM_INTEGER, mips_assemble_integer): Delete. + (TARGET_ASM_ALIGNED_DI_OP): Define this instead. + (override_options): Remove !TARGET_GAS and !have_named_sections code. + (print_operand): Fold TARGET_GAS conditionals into asm strings. + (mips_output_filename): Remove !TARGET_GAS code. Replace use of + ASM_STABS_OP and ASM_STABN_OP. + (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks. + (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler. + (mips_output_function_prologue): Remove !TARGET_GAS code. + (mips_select_rtx_section): Remove !have_named_sections code. + (mips_select_section): Delete. + * config/mips/mips.md (trap): Remove !TARGET_GAS check. + * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS. + * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete. + (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional. + * config/mips/vxworks.h (ASM_SPEC): As for mips.h. + * config/mips/windiss.h (ASM_SPEC): Likewise. + +2004-08-23 Richard Sandiford + + * read-rtl.c (map_value, mapping, macro_group): New structures. + (BELLWETHER_CODE): New macro. + (modes, codes, bellwether_codes): New variables. + (find_mode, uses_mode_macro_p, apply_mode_macro, find_code) + (uses_code_macro_p, apply_code_macro, apply_macro_to_string) + (apply_macro_to_rtx, uses_macro_p, add_condition_to_string) + (add_condition_to_rtx, apply_macro_traverse, add_mapping) + (add_map_value, initialize_macros): New functions. + (def_hash, def_hash_eq_p): Generalize to anything that points to, + or starts with, a char * field. + (find_macro, read_mapping, check_code_macro): New functions. + (read_rtx_1): New, split out from read_rtx. Handle the new + define_{mode,code}_{macro,attr} constructs. Use find_macro + to parse the name of a code or mode. Use BELLWETHER_CODE to + extract the format and to choose a suitable code for rtx_alloc. + Modify recursive invocations to use read_rtx_1. + (read_rtx): Call initialize_macros. Apply code and mode macros + to the rtx returned by read_rtx_1. Cache everything after the + first macro expansion for subsequent read_rtx calls. + * doc/md.texi: Document new .md constructs. + * config/mips/mips.md (GPR): New mode macro. + (d, si8_di5): New mode attributes. + (any_cond): New code macro. + (add[sd]i3): Redefine using :GPR. + (*add[sd]i3): Likewise, renaming from add[sd]i3_internal. + (*add[sd]i3_sp[12], *add3_mips16): Redefine using :GPR, naming + previously unnamed MIPS16 patterns. + (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long + lines. Don't match (plus (const_int 0) ...). + (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern. + Use a define_split to generate the addition. + (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn. + (subsi3_internal): Delete. + (*subsi3_extended): Renamed from subsi3_internal_2. + (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt) + (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine + using an any_cond template. + +2004-08-23 Richard Sandiford + + * read-rtl.c (read_rtx): Tidy use of format_ptr. + +2004-08-23 Richard Sandiford + + * read-rtl.c (string_obstack): New file-scope variable. + (read_string, read_quoted_string, read_braced_string) + (read_escape): Remove obstack parameter and use string_obstack instead. + (read_rtx): Remove function-local rtl_obstack and initialize + string_obstack instead. Update call to read_string. + +2004-08-22 Andrew Pinski + + PR c/15262 + * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered + expression is not constant. + (c_finish_return): Do not go through INDIRECT_REF when looking + for the inner expression of an ADDR_EXPR for warning about. + +2004-08-22 Richard Henderson + + PR 17075 + * cfgexpand.c (expand_gimple_tailcall): Detect when we can both + create new blocks and fall through. + (expand_gimple_basic_block): Update to match. + +2004-08-22 Ulrich Weigand + + * reload.c (find_reloads_address): Make return value tri-state. + Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded. + (find_reloads): Assume that reloaded addresses match 'o' or + EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address + returned 1 (not -1). Omit optional reloads for address operands + only if find_reloads_address returned 1 (not -1). + + * config/s390/s390.c (legitimize_reload_address): New function. + * config/s390/s390-protos.h (legitimize_reload_address): Declare. + * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call + legitimize_reload_address. + +2004-08-22 Richard Hendersion + + * tree.h (SAVE_EXPR_RESOLVED_P): New. + * gimplify.c (gimplify_save_expr): Use it. + * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P + on the temporary variable. + +2004-08-22 Andrew Pinski + + * fold-const.c (rtl_expr_nonnegative_p): Delete. + * tree.h (rtl_expr_nonnegative_p): Remove. + +2004-08-22 Steven Bosscher + + * config/i386/ppro.md (ppro_complex_insn): Add missing check + for cpu==pentiumpro. + + * combine.c (struct reg_stat): Fix comment typo. + +2004-08-22 Joseph S. Myers + + * c-tree.h (c_sizeof_nowarn): Remove. + +2004-08-21 Joseph S. Myers + + * c-decl.c (set_array_declarator_type): Rename to + set_array_declarator_inner. + (build_c_parm, build_attrs_declarator, build_function_declarator): + New functions. + (make_pointer_declarator): Call build_attrs_declarator. + * c-tree.h (set_array_declarator_type): Rename to + set_array_declarator_inner. + (build_c_parm, build_attrs_declarator, build_function_declarator): + New prototypes. + * c-parse.in (after_type_declarator, + parm_declarator_starttypename, parm_declarator_nostarttypename, + notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm, + firstparm): Use these functions + +2004-08-21 Joseph S. Myers + + * c-decl.c (build_array_declarator, set_array_declarator_type, + start_decl, grokdeclarator, grokparms): Change boolean parameters + to type bool. + * c-tree.h (build_array_declarator, set_array_declarator_type, + start_decl): Update prototypes. + * c-decl.c, c-parse.in: All callers changed. + +2004-08-21 Mike Stump + + * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to... + (darwin_fix_and_continue): Likewise. + (darwin_fix_and_continue_switch): Likewise. + * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool. + (darwin_fix_and_continue): Likewise. + (darwin_fix_and_continue_switch): Likewise. + +2004-08-21 Danny Smith + + PR c++/16030 + * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix): + Remove, merging into ... + (gen_stdcall_or_fastcall_suffix): New function, returning tree + rather than const char*, and accepting additional parameter. + Don't add suffix to '*'-prefixed symbols or variadic functions. + (i386_pe_encode_section_info): Adjust for call to new function. + Call change_decl_assembler_name. + +2004-08-20 Mike Stump + + * config/darwin.c (machopic_indirect_data_reference): Mark + stubs as defined. + * config/386/386.c (darwin_local_data_pic): Add. + (legitimate_constant_p): Reorder so that PLUS handling runs + before darwin_local_data_pic to match the ordering in + legitimate_pic_address_disp_p and so that MINUS runs after + darwin_local_data_pic as otherwise the darwin_local_data_pic + logic can be skipped, which would be very bad. + (legitimate_pic_address_disp_p): Move from from here to + darwin_local_data_pic so it can be reused. + +2004-08-21 Alan Modra + + * config/rs6000/linux64.h (DOT_SYMBOLS): Define. + (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version. + (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS. + (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise. + (RS6000_ABI_NAME): Define as "linux". + (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols. + * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select + ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT. + * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl. + * config/rs6000/rs6000.c (dot_symbols): New global var. + (rs6000_output_function_entry): New function, modified for + !DOT_SYMBOLS.. + (print_operand ): ..extracted from here. + (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS. + (rs6000_output_function_epilogue): Likewise. + (rs6000_elf_declare_function_name): Likewise. + * config/rs6000/rs6000.h (DOT_SYMBOLS): Define. + (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS. + * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE. + * configure: Regenerate. + * config.in: Regenerate. + +2004-08-20 Mark Mitchell + + * reload.c (find_reloads_address): Fix thinko in previous change. + + * reload.c (find_reloads_address): Reload the sum of a LO_SUM and + a CONST_INT. + +2004-08-20 Jakub Jelinek + + PR rtl-optimization/17099 + * combine.c (force_to_mode): Check if inner_mask has any bits set + outside of GET_MODE (x) instead of op_mode. + +2004-08-20 Mark Mitchell + + * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile + fragment. + * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo. + (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler. + * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5 + architecture. + (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float + configurations. + * config/arm/t-symbian: New file. + +2004-08-20 Andrew Pinski + + * regrename.c (kill_value_regno): ANSIfy. + +2004-08-20 Dale Johannesen + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD. + +2004-08-20 Daniel Jacobowitz + + * regrename.c (kill_value_one_regno): Renamed from kill_value_regno. + (kill_value_regno): New function, derived from kill_value. + (kill_value): Update. + (copyprop_hardreg_forward_1): Update call to kill_value_regno. + +2004-08-20 Daniel Berlin + + Fix PR tree-optimization/17111 + * tree-ssa-pre.c (create_value_expr_from): Don't change the types + of non-value_handles. + (bitmap_set_contains): All constants are in every set. + +2004-08-20 Nathan Sidwell + + * fold-const.c (round_up, round_down): Use build_int_cst. + Optimize common case. + +2004-08-20 Zack Weinberg + John David Anglin + + * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section, + one_only_data_section): Rename to som_readonly_data_section, + som_one_only_readonly_data_section and som_one_only_data_section. + * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP, + NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete + conditional defines. + (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP, + NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual + string values. + (pa_select_section): Use renamed section functions. + * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, + SOM_READONLY_DATA_SECTION_FUNCTION, + SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION, + SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): + Define here ... + * config/pa/som.h: ... not here. + (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP, + ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP, + ONE_ONLY_READONLY_DATA_SECTION_ASM_OP, + ONE_ONLY_DATA_SECTION_ASM_OP): Delete. + (READONLY_DATA_SECTION): Use som_readonly_data_section. + +2004-08-20 Nathan Sidwell + + * fold-const.c (int_const_binop): Don't generate non-overflowing + size-types specially. + (fold_convert_const): Likewise. + + * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier, + clear cache on copied sizetype. + +2004-08-20 Ben Elliston + + * configure.ac: Don't escape apostrophe in --enable-coverage help. + * configure: Regenerate. + +2004-08-20 Danny Smith + + PR 5620 + * gcc.c (struct stat input_stat): Don't define if + HOST_LACKS_INODE_NUMBERS + (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather + than stat to determine if temp file is same as input file. + * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS. + * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS + +2004-08-20 Richard Sandiford + + * configure.ac (mips*-*-*): Print an error if not using GAS. + * configure: Regenerated. + * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove + comments about buggy MIPSpro assemblers. + * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h + before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix. + Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for + IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld. + * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES) + (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC) + (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE) + (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h. + (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor + of more general IRIX 6 definitions. + (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL) + (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions. + (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION) + (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC) + (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) + (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER) + (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL) + (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS) + (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS) + (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs. + (LINK_SPEC): Move most of definition to iris.h. + (SUBTARGET_LINK_SPEC): New macro. + (IRIX_STARTFILE_SPEC): Fold into... + (STARTFILE_SPEC): ...here. + (IRIX_ENDFILE_SPEC): Fold into... + (ENDFILE_SPEC): ...here. + * config/mips/iris6.h (TARGET_IRIX5): Remove override. + (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE) + (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP) + (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME) + (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h. + (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits. + (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL) + (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) + (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX) + (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE) + (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY) + (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC) + (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC) + (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*) + (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP) + (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME) + (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL) + (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs. + (TARGET_IRIX6): Define to 1. + (DRIVER_SELF_SPECS): Define. + (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS. + (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS. + (SUBTARGET_LINK_SPEC): New macro. + (IRIX_STARTFILE_SPEC): Fold into... + (STARTFILE_SPEC): ...here. Remove !mabi=* case. + (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros. + (LIB_SPEC, LIBGCC_SPEC): Use them. + (LIB_SPEC): Remove !mabi=* case. + (IRIX_ENDFILE_SPEC): Fold into... + (ENDFILE_SPEC): ...here. Remove !mabi=* case. + * config/mips/mips-protos.h (irix_output_external_libcall): Delete. + * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete. + (TARGET_IRIX6): New macro. + (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition. + (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER) + (LABEL_AFTER_LOC): Delete. + * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END) + (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions. + (mips_build_builtin_va_list): Check TARGET_IRIX6. + (override_options): Remove TARGET_SGI_O32_AS-related code. + (irix_output_external_libcall): Make static. + (mips_output_filename): Avoid use of SET_FILE_NUMBER and + LABEL_AFTER_LOC. + (mips_file_start): Tidy guard for ABI sections. Remove use of + ABICALLS_ASM_OP; use .abicalls instead. + (mips_output_aligned_decl_common, mips_declare_object_name) + (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS. + (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting + .globl foo .text directives. + (irix_asm_named_section_1, irix_asm_named_section) + (irix_section_align_entry, irix_section_align_htab) + (irix_orig_asm_out_file, irix_section_align_entry_eq) + (irix_section_align_entry_hash, irix_asm_output_align) + (irix_file_start, irix_section_align_1, copy_file_data) + (irix_file_end, irix_section_type_flags): Delete. + * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section. + Use standard section syntax. Remove protective "jr $31". + (__gcc_fini): Likewise .gcc_fini. + * config/mips/irix-crtn.asm: Adjust sections accordingly. + * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from + iris5gas.h. + * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved + from t-irix-gld. + (EXTRA_MULTILIB_PARTS): Define. + * config/mips/t-iris6: Remove bogus comment. + (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete. + * config/mips/iris5gas.h, config/mips/iris5gld.h, + config/mips/iris6gas.h, config/mips/iris6gld.h, + config/mips/t-iris5-as, config/mips/t-iris5-gas + config/mips/t-irix-gld: Delete. + * config/mips/iris.h: New file. + * config/mips/t-slibgcc-irix: Renamed from t-iris5-6. + +2004-08-20 Richard Earnshaw + + * postreload.c (reload_cse_move2add): Allow any condjump, but check + that the implicit set isn't clobbered in the jump insn. + +2004-08-19 Mark Mitchell + + * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove. + * optabs.c (init_optabs): Don't check it. + * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define. + * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove. + +2004-08-18 Andreas Krebbel + + * config/s390/s390.md (s390_warn_framesize_string) + (s390_warn_dynamic_string, s390_stack_size_string) + (s390_stack_guard_string): New global string variables. + (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size) + (s390_stack_guard): New global variables. + (override_options): Added checks for the new options. + (s390_emit_prologue): Emit stack check and trap code and perform + compile time stack size checking. + + * config/s390/s390.h (TARGET_OPTIONS): Added new options + "warn-framesize", "warn-dynamicstack", "stack-size" and + "stack-guard". + + * doc/invoke.texi: Added documentation for the new options. + +2004-08-19 Ulrich Weigand + + * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen + to eliminate warning. + (linear_search_fdes): Declare p as unsigned. + (binary_search_mixed_encoding_fdes): Likewise. + * unwind-dw2.c (get_cie_encoding): Cast argument to strlen + to eliminate warning. + * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing + type cast. + +2004-08-19 Ulrich Weigand + + * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype. + * config/s390/s390.c (preferred_la_operand_p): Accept two operands + instead of one. Check for strictly legitimate address. + * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call + to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate. + +2004-08-19 Eric Christopher + + * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove. + * langhooks.h (unsave_expr_now): Ditto. + * tree.h (unsave_expr_1): Remove prototype. + (lhd_unsave_expr_now): Rename to unsave_expr_now. + * tree-inline.c (unsave_expr_1): Move here + from tree.c. Make static. + (unsave_expr_now): Rename from lhd_unsave_expr_now. + * tree-sra.c: Fix up for rename. + * tree-ssa-copy.c: Ditto. + * tree-eh.c: Ditto. + * tree.c (unsave_expr_1): Move to tree-inline.c. + +2004-08-19 Caroline Tice + + * config/i386/cygming.h (switch_to_section): Fix typo (change + in_unlikely_text_section to in_unlikely_executed_text). + +2004-08-19 Daniel Berlin + + * vec.h (VEC_lower_bound): New macro. + +2004-08-19 Richard Sandiford + + PR target/16446 + * config/mips/mips.c (struct mips_arg_info): Delete num_bytes. + (mips_arg_info): Update accordingly. Remove common treatment of fpr_p; + treat each ABI separately. Deal with n32/n64 complex float arguments. + (function_arg): Add associated complex handling here. + +2004-08-19 Richard Henderson + + * config/arm/arm.c (arm_gen_load_multiple): Use + adjust_automodify_address. Take base memory and offset instead + of unchanging/struct/scalar bits. + (arm_gen_store_multiple): Likewise. + (arm_gen_movmemqi): Use adjust_automodify_address. + * config/arm/arm-protos.h: Update decls. + * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call. + (store_multiple): Similarly. + +2004-08-19 J"orn Rennecke + + * regclass.c (globalize_reg): Update call_really_used_regs. + +2004-08-19 Nathan Sidwell + + * doc/invoke.texi (integer-share-limit): Document. + + * tree.h (TYPE_CACHED_VALUES_P): New. + (TYPE_CACHED_VALUES): New. + (TYPE_ORIG_SIZE_TYPE): Adjust. + * tree.def (INTEGER_CST): Update documentation. + * tree.c: Inlcude params.h. + (build_int_cst): Cache small values. + (build_type_copy): Do not copy the value cache. + * c-common.c (c_common_nodes_and_builtins): Add comment, remove + unneeded zeroing. + * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting. + * expmed.c (const_mult_add_overflow_p): Clear type copy's value + cache. + * fold-const.c (force_fit_type): Copy value when setting + overflows. + (int_const_binop): Likewise. + * stor-layout.c: Include params.h + (set_sizetype): Create values cache. + (fixup_unsigned_type): Set UNSIGNED_P before caching any values. + * params.def (PARAM_INTEGER_SHARE_LIMIT): New. + * params.h (INTEGER_SHARE_LIMIT): New. + * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H. + +2004-08-19 Paolo Bonzini + + * gimplify.c (gimplify_minimax_expr): Remove. + (gimplify_expr) : Remove special handling. + +2004-08-19 Dorit Naishlos + + * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace + STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. + +2004-08-19 Mark Mitchell + + * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP. + +2004-08-18 Andrew Pinski + + * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty. + +2004-08-18 Mark Mitchell + + * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility. + (__aeabi_ul2f): Likewise. + +2004-08-18 Richard Henderson + + * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block + move to rtl completely. + (struct meminsnbuf, xtensa_emit_block_move): Remove. + (xtensa_find_mode_for_size): Remove. + * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove. + * config/xtensa/xtensa.md (movmemsi_internal): Remove. + +2004-08-18 Richard Henderson + + * config/mcore/mcore.c (mode_from_align): Remove DImode. + (block_move_sequence): Rewrite to use adjust_address. + (mcore_expand_block_move): Cleanup logic. Accept only operands. + Return boolean indicating success/failure. + * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl. + * config/mcore/mcore.md (movmemsi): Update to match. + +2004-08-18 Mike Stump + + * doc/invoke.texi (-mfix-and-continue): Add support for + fast turn around debugging. + (-ffix-and-continue): Likewise. + (-mindirect-data): Likewise. + (-findirect-data): Likewise. + * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise. + (indirect_data): Likewise. + (machopic_data_defined_p): Likewise. + (machopic_output_indirection): Likewise. + (darwin_encode_section_info): Likewise. + (darwin_fix_and_continue): Likewise. + (darwin_fix_and_continue_switch): Likewise. + * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise. + * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. + (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise. + (SUBTARGET_OPTIONS): Likewise. + (darwin_fix_and_continue): Likewise. + (darwin_fix_and_continue_switch): Likewise. + (TARGET_FIX_AND_CONTINUE): Likewise. + * config/rs6000.c (rs6000_emit_prologue): Likewise. + +2004-08-19 Steven Bosscher + + * basic-block.h (struct edge_def): Remove crossing_edge. + (EDGE_CROSSING): New define. + (EDGE_ALL_FLAGS): Update. + * bb-reorder.c (find_traces_1_round, better_edge_p, + find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges, + find_jump_block, fix_crossing_conditional_branches, + fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): + Replace all occurences of crossing_edge with an edge flag check + or set/reset. + * cfgcleanup.c (try_simplify_condjump, try_forward_edges, + try_crossjump_bb): Likewise. + * cfglayout.c (fixup_reorder_chain): Likewise. + * cfgrtl.c (force_nonfallthru_and_redirect, + commit_one_edge_insertion): Likewise. + + * Makefile.in (cfganal.o): Depend on TIMEVAR_H. + * tree-flow.h (compute_dominance_frontiers): Move prototype... + * basic-block.h: ...here. + * tree-cfg.c (compute_dominance_frontiers_1, + compute_dominance_frontiers): Move from here... + * cfganal.c: ...to here. Include timevar.h. + +2004-08-18 James E Wilson + + * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=. + * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes. + + * config/mips/mips.md (type): Add frdiv. + (divsf3+1, divsf3+2): Change type to frdiv. + * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe, + ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New. + + * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv. + * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise. + * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise. + * config/mips/5000.md (r5k_fdiv_single): Likewise. + * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise. + * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise. + * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise. + * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise. + * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise. + * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double): + Likewise. + * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise. + +2004-08-18 Robert Bowdidge + + * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to + get regression tester working again. + +2004-08-18 Zack Weinberg + + * insn-notes.def, reg-notes.def: New files. + * rtl.h: Use them to define enum insn_note and enum reg_note. + * rtl.c: Use them to define note_insn_name and reg_note_name. + * Makefile.in (RTL_BASE_H): Update. + + * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK + renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK. + +2004-08-18 Richard Earnshaw + + * arm.c (arm_size_rtx_costs): New function. + (arm_override_options): Use it if optimizing for space. + +2004-08-18 Richard Henderson + + * emit-rtl.c (gen_const_mem): New. + * rtl.h (gen_const_mem): Declare. + * expr.c (do_tablejump): Use it. + * varasm.c (force_const_mem): Likewise. + * config/darwin.c (machopic_indirect_data_reference): Likewise. + (machopic_legitimize_pic_address): Likewise. + * config/arm/arm.c (legitimize_pic_address): Likewise. + * config/i386/i386.c (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. + * config/ia64/ia64.md (load_fptr): Likewise. + * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. + * config/pa/pa.c (legitimize_pic_address): Likewise. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. + (rs6000_emit_move): Likewise. + * config/s390/s390.c (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + * config/s390/s390.md (casesi): Likewise. + * config/sh/sh.c (sh_reorg): Likewise. + * config/sparc/sparc.c (legitimize_pic_address): Likewise. + * config/v850/v850.md (casesi): Likewise. + + * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P. + * config/sh/sh.c (prepare_move_operands): Remove incorrect + use of MEM_READONLY_P. + +2004-08-18 Steven Bosscher + + * Makefile.in (OBJS-common): Add postreload-gcse.c. + Add new postreload-gcse.o. + * cse.c (SAFE_HASH): Define as wrapper around safe_hash. + (lookup_as_function, insert, rehash_using_reg, use_related_value, + equiv_constant): Use SAFE_HASH instead of safe_hash. + (exp_equiv_p): Export. Add for_gcse argument when comparing + for GCSE. + (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr, + find_comparison_args, fold_rtx, cse_insn): Update callers. + (hash_rtx): New function derived from old canon_hash and bits + from gcse.c hash_expr_1. + (canon_hash_string): Rename to hash_rtx_string. + (canon_hash, safe_hash): Make static inline. Call hash_rtx. + * cselib.c (hash_rtx): Rename to cselib_hash_rtx. + (cselib_lookup): Update this caller. + * gcse.c (modify_mem_list_set, canon_modify_mem_list_set): + Make static. + (hash_expr): Call hash_rtx. + (ldst_entry): Likewise. + (expr_equiv_p): Call exp_equiv_p. + (struct unoccr, hash_expr_1, hash_string_1, lookup_expr, + reg_used_on_edge, reg_set_between_after_reload_p, + reg_used_between_after_reload_p, 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, gcse_after_reload_main): Remove. + * postreload-gcse.c: New file, reincarnating most of the above. + * rtl.h (exp_equiv_p, hash_rtx): New prototypes. + (gcse_after_reload_main): Update prototype. + * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar. + * passes.c (rest_of_handle_gcse2): Use it. + +2004-08-18 Diego Novillo + + * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func. + (pass_loop_done): Likewise. + +2004-08-18 Andrew Pinski + + * config/rs6000/darwin.md: Delete the altivec patterns which are + handled differently now. + (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT + (macho_correct_pic_di): Likewise. + (call_indirect_nonlocal_darwin64): Likewise. + Delete the save world/saveFP/saveVec patterns. + + Revert the reversion of: 2004-08-16 Stan Shebs + * config/darwin.c (macho_indirect_data_reference): Add DImode case. + * config/rs6000/rs6000.md: Include darwin.md. + (builtin_setjmp_receiver): Add DImode case. + * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to + Darwin bits. + +2004-08-18 Matt Austern + + Dead code stripping + * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped. + * darwin.c (darwin_file_end): Mark file as potentially strippable. + +2004-08-18 Richard Henderson + + * alias.c (readonly_fields_p): Remove. + (objects_must_conflict_p): Don't call it. + * tree.h (readonly_fields_p): Remove. + * langhooks.h (struct lang_hooks): Remove honor_readonly. + * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove. + +2004-08-18 Diego Novillo + + * tree-dfa.c (add_referenced_var): Only global variables are + call-clobbered. + * tree-flow.h (struct ptr_info_def): Add field pt_global_mem. + * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark + all pointers dereferenced if the statement dereferences them. + (create_name_tags): Do not create memory tags for pointers + that have PT_ANYTHING set. + Also check if PT_VARS is not empty before creating a name tag. + (compute_flow_sensitive_aliasing): Don't mark call-clobbered + variables that share the same alias set with a pointer that + may point anywhere. + (add_may_alias): Add FIXME comment to remove clobbering + aliased variables and tags. + (replace_may_alias): Likewise. + (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED. + (merge_pointed_to_info): If the original variable has not + points-to information, call set_pt_anything. + (add_pointed_to_var): Do not prevent adding a pointed-to + variable if the pointers is PT_ANYTHING. + If the variable is a global, set PT_GLOBAL_MEM. + (collect_points_to_info_r): Don't assume that PLUS_EXPRs of + pointer type only come in PTR+OFFSET flavours. + Always call merge_pointed_to_info on PHI arguments that are + SSA_NAMEs. + (get_nmt_for): Mark call-clobbered tags whose pointer points + to global memory. + * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch + values. + (get_indirect_ref_operands): Always clear OPF_KILL_DEF from + FLAGS. + (add_stmt_operand): Abort if the caller tried to add a killing + definition for a memory tag. + * tree-ssa.c (verify_flow_sensitive_alias_info): Remove + unnecessary checks. + +2004-08-18 J"orn Rennecke + + * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers + from call_used_regs. Update call_really_used_regs. + (CALL_REALLY_USED_REGISTERS): Define. + * sh.c (output_stack_adjust, shmedia_target_regs_stack_space): + Replace call_used_regs with call_really_used_regs. + (calc_live_regs, sh_media_register_for_return): Likewise. + (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise. + * sh.md (return_media): Likewise. + +2004-08-18 Andrew Pinski + + * config/darwin.c (machopic_legitimize_pic_address): Only set + MEM_READONLY_P in the non TARGET_TOC case. + +2004-08-18 Zack Weinberg + + * rtl.def (NIL): Delete. + * read-rtl.c (read_rtx): Handle (nil) like (define_constants). + Tighten the syntax a little. + + * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c + * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h + * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c + * config/i386/predicates.md, config/m32r/m32r.h + * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c + * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h + * config/sparc/sparc.h, doc/tm.texi: + Replace all occurrences of NIL with UNKNOWN. + +2004-08-18 Zack Weinberg + + * dojump.c (do_jump ): Do not recursively call + self with a TRUTH_ORIF_EXPR; generate the appropriate jump + sequence inline. Move drop_through_label code into this + block, being the only place it is used. Adjust comments. + +2004-08-18 Fariborz Jahanian + + * config/rs6000/altivec.md: Add new patterns for calls to + save_world/rest_world functions. + + * config/rs6000/rs6000-protos.h: (save_world_operation, + restore_world_operation) new declarations. + + * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p + field added. + (rs6000_stack_info): Set world_save_p field. + (save_world_operation): New function. + (restore_world_operation): New function. + (compute_save_world_info): New function. + (rs6000_stack_info): Call compute_save_world_info. + (rs6000_emit_prologue): Check for world_save_p and generate + pattern to call save_world for saving all non-volatile and + special registers. + (rs6000_emit_epilogue): Check for world_save_p and generate + pattern to call rest_world to restore saved registers. + + config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO, + FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined. + (rs6000_reg_names): New entries added for save_world_operation and + restore_world_operation. + +2004-08-18 Caroline Tice + + * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add + "-freorder-blocks-and-partition" to the flags used in second + stage of profiledbootstrap. + * bb-reorder.c (push_to_next_round_p): Add new variable, + next_round_is_last; set and use variable to make sure, when + partitioning, that the last trace construction round consists + of all (and only) cold basic blocks. + (rotate_loop): Don't copy blocks that end in a section + crossing jump. + (copy_bb): Correctly initialize "partition" of duplicated bb. + (add_unlikely_executed_notes): Add a comment. + (find_rarely_executed_basic_blocks_and_crossing_edges): Modify + to make sure, if function contains hot blocks, that the + successors of ENTRY_BLOCK_PTR are hot; also, only look for + crossing edges if the architecture supports named sections. + (mark_bb_for_unlikely_executed_section): Modify to always + insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after + the basic block note insn. + (fix_crossing_unconditional_branches): Remove extra space. + (fix_edges_for_rarely_executed_code): Modify to only do + partitioning work if the architecture supports named sections. + (reorder_basic_blocks): Modify to only add + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture + supports named sections. + * c-common.c (handle_section_attribute): Initialize new global + variable, user_defined_section_attribute, to true if user has + specified one. + * cfgcleanup.c (try_forward_edges): Modify to not attempt to + forward edges that cross section boundaries. + * cfglayout.c (fixup_reorder_chain): Modify to only fix up + partitioning information if the architecture supports named + sections. + * cfgrtl.c (target.h): Add statement to include this. + (rtl_split_block): Make sure newly created bb gets correct + partition. + (try_redirect_by_replacing_jump): Make sure redirection isn't + attempting to cross section boundaries. + (force_nonfallthru_and_redirect): Only do partition fix up if + architecture supports named sections. + (rtl_split_edge): Make sure newly created bb ends up in + correct partition. + (commit_one_edge_insertion): Remove code that incorrectly + updated basic block partition; Make sure partition fix up only + happens if architecture supports named sections and it's not + already done. + (rtl_verify_flow_info_1): Fix if-condition on test/error + condition that fallthru edges are not allowed to cross section + boundaries. + * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this. + * final.c (final_scan_insn): Remove redundant test from if-statement; + change calls to text_section into calls to function_section; add code + to only to partitioning fix up if architecture supports named + sections. + * ifcvt.c (find_if_case_1): Make sure newly created bb has correct + partition. + (if_convert): Add targetm.have_named_sections to test. + * output.h (unlikely_section_label): Extern declaration for new global + variable. + (unlikely_text_section_name): Likewise. + * opts.c (decode_options): If both partitioning and DWARF debugging + are turned on, issue a warning that this doesn't work, and change + partitiong to basic block reordering (without hot/cold partitions). + * passes.c (rest_of_handle_final): Re-set new global variable, + user_defined_section_attribute, to false. + (rest_of_compilation): Change options for calling partitioning + function: Don't call if the user defined the section attribute, and + don't call if DECL_ONE_ONLY is true for the current function. + * predict.c (choose_function_section): Return immediately if we + are doing hot/cold partitioning (i.e. let the basic block partitioning + determine where the function belongs). + * reg-stack.c (emit_swap_insn): Add condition to step over + NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. + * toplev.c (user_defined_section_attribute): New global variable. + * toplev.h (user_defined_section_attribute): Extern declaration + for new global variable. + * varasm.c (unlikely_section_label): New global variable. + (unlikely_text_section_name): New global variable. + (unlikely_text_section): Add code to initialize + unlikely_text_section_name if necessary; modify to use + unlikely_text_section_name and unlikely_section_label; also to use + named_section properly. + (in_unlikely_text_section): Modify to work correctly with + named_section and to use unlikely_text_section_name. + (named_section): Add code to work properly with cold section. + (function_section): Clean up if-statement. + * config/darwin.c (darwin_asm_named_section): Return to original + code, removing use of SECTION_FORMAT_STRING. + * config/arm/pe.h (switch_to_section): Add case for + in_unlikely_executed_text to switch statement. + * config/i386/cygming.h (switch_to_section): Likewise. + * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Likewise. + * config/mcore/mcore.h (switch_to_section): Likewise. + * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. + (SECTION_FORMAT_STRING): Remove. + +2004-08-18 Roger Sayle + + * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be + -ffixed-reg safe, by preserving the meanings of zero and one. + (CALL_USED_REGISTERS): Likewise. + (CONDITIONAL_REGISTER_USAGE): Update to process new encodings. + +2004-08-18 Kaz Kojima + + * config/sh/sh.c (split_branches): Check the result of + next_active_insn. + (sh_output_mi_thunk): Call init_flow if basic_block_info is null. + Call rtl_register_cfg_hooks. + +2004-08-18 Richard Henderson + + * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. + * alias.c (true_dependence): Update to match new semantics. + (canon_true_dependence, write_dependence_p): Likewise. + (anti_dependence, output_dependence): Update write_dependence_p args. + (unchanging_anti_dependence): Remove. + * calls.c (purge_mem_unchanging_flag): Remove. + (fixup_tail_calls): Don't call it. + (expand_call): Don't add unchanging memory to function usage. + * expr.c (emit_block_move_via_libcall): Likewise. + (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems. + (get_subtarget): Don't use RTX_UNCHANGING_P. + (expand_assignment, store_constructor, expand_expr_real_1): Likewise. + (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P. + * combine.c (get_last_value_validate): Use MEM_READONLY_P. + * cse.c (insert): Don't use RTX_UNCHANGING_P. + (cse_insn, canon_hash): Use MEM_READONLY_P. + * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P + instead of RTX_UNCHANGING_P. + * explow.c (maybe_set_unchanging): Remove. + * expr.h (maybe_set_unchanging): Remove. + * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence. + * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P. + (assign_parm_setup_reg, expand_function_start): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * ra-rewrite.c (emit_colors): Likewise. + * regmove.c (copy_src_to_dest, regmove_optimize): Likewise. + (fixup_match_1): Likewise. + * reload1.c (reload, alter_reg): Likewise. + * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P, + not RTX_UNCHANGING_P. + (equiv_init_varies_p): Likewise. + * loop-invariant.c (check_maybe_invariant): Likewise. + * resource.c (mark_referenced_resources, mark_set_resources): Likewise. + * loop.c (note_addr_stored): Likewise. + (prescan_loop): Likewise. Don't check function usage for clobbered + unchanging memory. + * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P, + not RTX_UNCHANGING_P. + (rtx_varies_p, modified_between_p, modified_in_p): Likewise. + * varasm.c (force_const_mem): Likewise. + * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P. + * web.c (entry_register): Likewise. + * tree-gimple.h (get_base_address): Move decl ... + * tree.h: ... here. + * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P. + + * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be + called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too. + (alpha_set_memflags): Update to match. + + * config/darwin.c (machopic_indirect_data_reference): Set + MEM_READONLY_P instead of RTX_UNCHANGING_P. + (machopic_indirect_call_target): Likewise. + (machopic_legitimize_pic_address): Likewise. + * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple, + arm_gen_store_multiple, arm_gen_movmemqi): Likewise. + * config/arm/arm.md (load_multiple, store_multiple): Likewise. + * config/frv/frv.md (symGOT2reg): Likewise. + * config/i386/i386.c (legitimize_pic_address, + legitimize_tls_address, ix86_split_to_parts): Likewise. + * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. + * config/ia64/ia64.md (load_fptr): Likewise. + * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. + * config/m68k/m68k.c (legitimize_pic_address): Likewise. + * config/mcore/mcore.c (block_move_sequence): Likewise. + * config/mn10300/mn10300.md (symGOT2reg): Likewise. + * config/pa/pa.c (legitimize_pic_address): Likewise. + * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. + (rs6000_emit_move): Likewise. + * config/s390/s390.c (legitimize_pic_address): Likewise. + (legitimize_tls_address): Likewise. + * config/s390/s390.md (casesi): Likewise. + * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise. + * config/sh/sh.md (symGOT2reg): Likewise. + * config/sparc/sparc.c (legitimize_pic_address): Likewise. + * config/v850/v850.md (casesi): Likewise. + + * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P. + * config/iq2000/iq2000.c (save_restore_insns): Likewise. + * config/mips/mips.c (mips_restore_gp): Likewise. + (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise. + * config/sh/sh.c (sh_reorg): Likewise. + +2004-08-18 Richard Henderson + + * tree.h (struct tree_decl): Add gimple_formal_temp. + (DECL_GIMPLE_FORMAL_TEMP_P): New. + * gimplify.c (pop_gimplify_context): Clear it. + (lookup_tmp_var): Set it, if is_formal. + (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX. + Use is_gimple_val for VECTOR. Simplify return value. + (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P. + (gimplify_expr): Likewise. + * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from + is_gimple_tmp_rhs for clarity. Update all callers. + (is_gimple_reg_rhs): Simplify logic. + (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for + clarity; use DECL_GIMPLE_FORMAL_TEMP_P. + (is_gimple_formal_tmp_reg): Similarly. + * tree-gimple.h: Update decls. + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use + DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting. + * tree-ssa-live.c (var_union, type_var_init): Likewise. + +2004-08-18 Paolo Bonzini + + * c4x.c (legitimize_operands): Remove calls to + preserve_subexpressions_p. + +2004-08-18 David Edelsohn + + * varasm.c (MAX_OFILE_ALIGNMENT): Move ... + * defaults.h (MAX_OFILE_ALIGNMENT): ... here. + +2004-08-18 Ziemowit Laski + + * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii" + Objective-C++ extensions. + * gengtype.c (get_file_basename): Match entire subdirectory name + ('cp', 'objc', 'objcp') rather than just its suffix. + (get_base_file_bitmap): Allow for files to belong to more than one + language. + (get_output_file_with_visibility): Treat objc/objc-act.h as a header + used by more than one front-end. + +2004-08-18 Richard Earnshaw + + * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to + avoid use of preserve_subexpressions_p. + +2004-08-17 Richard Henderson + + PR 17051 + * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too. + +2004-08-17 DJ Delorie + + * doc/extend.texi: Document new xstormy16 attribute. + + * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New. + (xstormy16_splittable_below100_or_register): New. + (combine_bnp): New. + (xstormy16_reorg): New. + (TARGET_MACHINE_DEPENDENT_REORG): Define. + + * config/stormy16/stormy16.md (movqi_internal): Make name public. + (movhi_internal): Likewise. + (cbhranchhi): Likewise. + (cbhranchhi_neg): Likewise. + (andhi3): Only allow splittable below100 operands. + (iorhi3): Likewise. + (peephole2): New and/zero_extend->and peephole. + (peephole2): New load/ior/save->set1 peephole. + (peephole2): New load/and/save->clr1 peephole. + (bclrx, bclrx2, bclr7, bclr15): New. + (bsetx, bsetx2, bset7, bset15): New. + + * config/stormy16/stormy16.c (xstormy16_print_operand): Be more + liberal about acceptable 'B' masks. + + * config/stormy16/stormy16-protos.h + (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, + xstormy16_below100_operand, xstormy16_below100_or_register, + xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. + (PREDICATE_CODES): Add new predicates. + + * config/stormy16/stormy16.c + (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, + xstormy16_below100_operand, xstormy16_below100_or_register, + xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. + (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New. + (xstormy16_legitimate_address_p): Allow below100 symbols. + (xstormy16_extra_constraint_p): Add 'W' for below100 operands. + (xstormy16_expand_move): Leave below100 operands as-is. + (xstormy16_encode_section_info): Encode below100 symbols. + (xstormy16_strip_name_encoding): New. + (xstormy16_print_operand): Print 'b' as shift mask. + (xstormy16_attribute_table): Add below100 attributes. + (xstormy16_handle_below100_attribute): New. + + * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100. + (XSTORMY16_SECTION_FUNCTION): New. + (EXTRA_SECTION_FUNCTIONS): Define using the above. + (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. + (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols. + (ASM_OUTPUT_LABELREF): Define. + + * config/stormy16/stormy16.md (movqi_internal): Add below100 support. + (movhi_internal): Add below100 support. + (andhi3): Add below100 support. + (iorhi3): Add below100 support. + (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New. + +2004-08-17 James E Wilson + + * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead + of VOIDmode for comparison code mode. + * config/mips/mips.md: For conditional move patterns, use mode of + first compare operand for comparison mode, instead of VOIDmode. + + * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both + normal and -ffast-math code. + +2004-08-17 Mark Mitchell + + PR c++/15871 + * doc/invoke.texi (-fkeep-inline-functions): Update documentation. + +2004-08-17 Robert Bowdidge + + * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags. + +2004-08-17 Andreas Tobler + + * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause + for non Darwin targets. + (*call_value_nonlocal_darwin64): Likewise. + +2004-08-17 Fariborz Jahanian + + * config/rs6000/rs6000.c (rs6000_function_value): Check for + altivec mode for altivec return register. + +2004-08-17 David Edelsohn + + Revert 2004-08-16 Stan Shebs + * config/darwin.c (macho_indirect_data_reference): Add DImode case. + * config/rs6000/rs6000.md: Include darwin.md. + (builtin_setjmp_receiver): Add DImode case. + * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to + Darwin bits. + +2004-08-17 Dorit Naishlos + + * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE + trees. + * tree-vectorizer.h: New File: Same. + * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files. + * common.opt (ftree-vectorize): New flag to enable vectorization. + * timevar.def (TV_TREE_VECTORIZATION): New dump file for + vectorization pass. + * tree-data-ref.h (init_data_ref): Additional argument. + (array_base_name_differ_p): Moved to tree-data-ref.c. + * tree-data-ref.c (array_base_name_differ_p): Revised. + (initialize_data_dependence_relation): Call array_base_name_differ_p + with an extra argument. + (analyze_all_data_dependences): Same. + (init_data_ref): Additional argument is_read to set DR_IS_READ. + * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this + file. + * tree-flow.h (vectorize_loops, empty_block_p): Add declaration. + * tree-optimize.c (pass_vectorize): Schedule the vectorization pass. + * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new + vectorization pass. + * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize. + (tree_ssa_loop_done): Call scev_finalize. + (tree_vectorize): Define the new vectorization pass. + * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the + size of the vector they support (until support for multiple vector + sizes is added to the vectorizer). + * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. + * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. + * invoke.texi (fdump-tree-vect, ftree-vectorize): Add + documentation. + +2004-08-17 Nathan Sidwell + + * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst + usage. + (generate_protocol_list, handle_impent): Likewise. + +2004-08-17 Roger Sayle + + * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to + ensure that call_used_regs is a superset of both fixed_regs and + call_really_used_regs. + +2004-08-17 Daniel Bornstein + + PR target/17019 + * arm.md (addsi3_cbranch_scratch): Correct case labels. + +2004-08-17 Paolo Bonzini + + PR middle-end/17036 + * fold-const.c (fold): Check for integer operand when + folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew + Pinski . + +2004-08-17 Paolo Bonzini + + * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO. + No need to check if in a cross configuration. + * configure: Regenerate. + + * calls.c (precompute_register_parameters): + Inline preserve_subexpressions_p (). + * expmed.c (expand_mult_const, emit_store_flag): Likewise. + * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn): + Likewise. + * expr.c (get_subtarget): Likewise. + * rtl.h (preserve_subexpressions_p): Remove. + * stmt.c (preserve_subexpressions_p): Remove. + + * dojump.c (do_jump) : + Abort on gimplified cases. + +2004-08-16 James E Wilson + + * tree.h (VECTOR_FLOAT_TYPE_P): New. + (FLOAT_TYPE_P): Use it. + * c-typeck.c (build_binary_op): After convert calls, check for + check for ERROR_MARK operands. + +2004-08-16 Zack Weinberg + + * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete. + (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update. + (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o. + (genobjs static pattern rule): Remove %.c dependency. + ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o): + Rename rules; delete commands; fix dependencies. + (mostlyclean): Do not delete temporary source copies. + * configure.ac: Delete all references to BUILD_PREFIX and + BUILD_PREFIX_1. + * configure: Regenerate. + + * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE. + Do not include tree.h, real.h, flags.h, hard-reg-set.h, or + basic-block.h #ifdef GENERATOR_FILE. Surround some more code + with #ifndef GENERATOR_FILE so that nothing from those headers + is used. + + * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE. + +2004-08-16 Adam Nemet + + * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB). + +2004-08-16 Andrew Pinski + + * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove + extraneous semicolon. + +2004-08-16 Devang Patel + + * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P. + * print-tree.c (print_node): Print DECL_PRESERVE_P. + * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define. + (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED + * target.h (struct gcc_target): New member, mark_decl_preserved. + * hooks.c (hook_void_charptr): Rename to ... + (hook_void_constcharptr): ... new name. + * hooks.h (hook_void_charptr): Rename to .. + (hook_void_constcharptr): ... new name. + * tree.h (DECL_PRESERVE_P): New #define. + (struct tree_decl): New member, preserve_flag. + * varasm.c (assemble_start_function): Mark decl preserved. + (assemble_variable): Same. + * darwin.c (darwin_mark_decl_preserved): New function. + * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define. + * darwin-protos.h (darwin_mark_decl_preserved): New decl. + * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document. + +2004-08-16 Joseph S. Myers + + * c-decl.c (grokdeclarator): Allow for function definition where + innermost declarator has attributes. + +2004-08-16 Fariborz Jahanian + + * except.c (get_exception_filter, build_post_landing_pads, + dw2_build_landing_pads): Use target-specific mode for 'filter'. + * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used. + * target.h (eh_return_filter_mode): New field added. + * targhooks.c (default_eh_return_filter_mode): Defined. + * targhooks.h (default_eh_return_filter_mode): Declared. + * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined. + +2004-08-16 Nathanael Nerode + + * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with + ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST. + * configure: Regenerate. + +2004-08-16 Stan Shebs + + Basic support for 64-bit Darwin. + * config/darwin.c (macho_indirect_data_reference): Add DImode case. + (machopic_legitimize_pic_address): Similarly, plus use Pmode + instead of SImode. + * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit. + (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro. + (SUBTARGET_SWITCHES): Add -m32 and -m64 flags. + (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64. + (PROCESSOR_DEFAULT64): Define. + * config/rs6000/darwin.md: New file, patterns specific to 64-bit + Darwin. + * config/rs6000/rs6000.md: Include darwin.md. + (builtin_setjmp_receiver): Add DImode case. + * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for + Darwin. + (TARGET_ASM_ALIGNED_DI_OP): Ditto. + (rs6000_emit_move): Add DImode case to Darwin bits. + (machopic_output_stub): Use .quad if 64-bit. + * invoke.texi: Document -m32 and -m64. + +2004-08-16 Janis Johnson + + * doc/extend.texi (AltiVec builtins): Document additional differences + from the Motorola AltiVec PIM. + +2004-08-16 Nathan Sidwell + + * c-typeck.c (build_c_cast): Only copy overflow from expr nodes. + * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify. + (struct tree_common): Update public_flag documentation. + +2004-08-16 Nathanael Nerode + + * tree-ssa-copyrename.c (copy_rename_partition_coalesce): + Check for artificial variables, not is_gimple_tmp_var. + * tree-ssa-live.c (var_union): Likewise. + +2004-08-16 Nathan Sidwell + + * calls.c (load_register_parameters): Remove spurious FIXME token. + +2004-08-15 Ziemowit Laski + + * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h. + (c-lang.o): Depend on c-objc-common.h. + (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and + c-objc-common.h; remove duplicate $(C_TREE_H) dependency. + * c-lang.c: Include c-objc-common.h. + (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, + LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, + LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, + LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, + LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, + LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, + LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, + LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, + LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, + LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, + LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, + LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, + LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, + LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, + LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, + LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, + LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, + LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, + LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, + LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, + LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, + LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, + LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, + LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): + Move to c-objc-common.h. + * c-objc-common.c: Include c-objc-common.h. + * c-objc-common.h: New file. + +2004-08-15 Andreas Tobler + Andrew Pinski + + PR target/14931 + * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub + style. + +2004-08-15 Nathan Sidwell + + * tree.h (build_int_cst): New. + (build_int_2): Remove. + * tree.c (build_int_2): Remove. + (build_int_cst): New. + (make_vector_type, build_common_tree_nodes, + build_common_tree_nodes_2): Use build_int_cst. + * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, + expand_builtin_strpbrk, expand_builtin_fputs, + build_string_literal, expand_builtin_printf, + expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop, + fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii, + fold_builtin_isdigit, simplify_builtin_strstr, + simplify_builtin_strpbrk, fold_builtin_fputs, + simplify_builtin_sprintf): Use build_int_cst. + * c-common.c (start_fname_decls, fix_string_type, + c_common_nodes_and_builtins, c_init_attributes, + shorten_compare): Likewise. + * c-decl.c (complete_array_type, + check_bitfield_type_and_width): Likewise. + * c-lex.c (interpret_integer, lex_charconst): Likewise. + * c-parse.in (primary): Likewise. + * c-pretty-print.c (pp_c_integer_constant): Likewise. + * c-typeck.c (really_start_incremental_init, push_init_level, + set_nonincremental_init_from_string): Likewise. + * calls.c (load_register_parameters): Likewise. + * convert.c (convert_to_pointer): Likewise. + * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, + build_fn_info_type, build_ctr_info_value, build_gcov_info): + Likewise. + * except.c (init_eh, assign_filter_values, assign_filter_values): + Likewise. + * expmed.c (store_fixed_bit_field, extract_bit_field, + extract_fixed_bit_field, extract_split_bit_field, expand_shift, + expand_mult_const, expand_mult_highpart_adjust, extract_high_half, + expand_sdiv_pow2, expand_divmod, make_tree): Likewise. + * expr.c (convert_move, emit_group_load, emit_group_store, + expand_assignment, store_constructor, store_field, + expand_expr_real_1, reduce_to_bit_field_precision): Likewise. + * fold-const.c (force_fit_type, int_const_binop, fold_convert_const, + invert_truthvalue, optimize_bit_field_compare, + decode_field_reference, all_ones_mask_p, constant_boolean_node, + fold_div_compare, fold, fold_read_from_constant_string, + fold_negate_const, fold_abs_const, fold_not_const): Likewise. + * function.c (assign_parm_setup_block): Likewise. + * stmt.c (shift_return_value, expand_end_case_type, + estimate_case_costs): Likewise. + * stor-layout.c (layout_type, initialize_sizetypes, + set_min_and_max_values_for_integral_type): Likewise. + * tree-chrec.c (chrec_fold_multiply_poly_poly, + reset_evolution_in_loop): Likewise. + * tree-chrec.h (build_polynomial_chrec): Likewise. + * tree-complex.c (build_replicated_const): Likewise. + * tree-eh.c (honor_protect_cleanup_actions, + lower_try_finally_onedest, lower_try_finally_copy, + lower_try_finally_switch): Likewise. + * tree-mudflap.c (mf_build_string, mx_register_decls, + mudflap_register_call, mudflap_enqueue_constant): Likewise. + * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): + Likewise. + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. + * tree-ssa-loop-niter.c (number_of_iterations_cond, + loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): + Likewise. + + * config/alpha/alpha.c (alpha_initialize_trampoline, + alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst. + * config/arm/arm.c (arm_get_cookie_size): Likewise. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. + * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. + * config/i860/i860.c (i860_va_start): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, + mips_gimplify_va_arg_expr): Likewise. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. + * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, + add_compiler_branch_island): Likewise. + * config/s390/s390.c (s390_va_start): Likewise. + * config/sh/sh.c (sh_va_start): Likewise. + * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): + Likewise. + * config/xtensa/xtensa.c (xtensa_va_start, + xtensa_gimplify_va_arg_expr): Likewise. + + * objc/objc-act.c (build_objc_string_object, + build_objc_symtab_template, init_def_list, init_objc_symtab, + init_module_descriptor, generate_static_references, + build_selector_translation_table, get_proto_encoding, + build_typed_selector_reference, build_selector_reference, + build_next_objc_exception_stuff, + build_method_prototype_list_template, generate_descriptor_table, + generate_protocols, build_protocol_initializer, + build_ivar_list_template, build_method_list_template, + build_ivar_list_initializer, generate_ivars_list, + generate_dispatch_table, generate_protocol_list, + build_category_initializer, build_shared_structure_initializer, + generate_shared_structures, handle_impent, + generate_objc_image_info): Use build_int_cst. + +2004-08-15 Ben Elliston + + * vec.h: Comment improvements. + +2004-08-14 Roger Sayle + + * c-common.c (shorten_compare, pointer_int_sum, + c_common_truthvalue_conversion, boolean_increment): Replace calls + to build with calls to buildN. + * c-decl.c (complete_array_type, grokdeclarator): Likewise. + * c-gimplify.c (c_build_bind_expr, gimplify_c_loop, + gimplify_switch_stmt): Likewise. + * c-typeck.c (default_function_array_conversion, + build_component_ref, build_array_ref, build_function_call, + pointer_diff, build_unary_op, build_conditional_expr, + build_compound_expr, build_modify_expr, c_finish_goto_label, + c_finish_goto_ptr, c_finish_return, c_finish_loop, + c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt, + build_binary_op): Likewise. + +2004-08-15 Steven Bosscher + + * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK. + +2004-08-14 John David Anglin + + * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h, + curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h. + * fixinc/fixincl.x: Rebuilt. + +2004-08-14 Richard Sandiford + + * config/mips/mips-protos.h (mips_symbolic_constant_p) + (mips_atomic_symbolic_constant_p, mips_stack_address_p) + (mips_small_data_pattern_p): Declare. + * config/mips/mips.h (CONST_GP_P): Moved from mips.c. + (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. + * config/mips/mips.c (mips_symbolic_constant_p): Make global. + (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions. + (uns_arith_operand, const_arith_operand, arith_operand, sle_operand) + (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand) + (reg_or_const_float_1_operand, hilo_operand, extend_operator) + (macc_msac_operand, equality_op, cmp_op, trap_cmp_op) + (pc_or_label_operand, call_insn_operand, move_operand) + (consttable_operand, symbolic_operand, general_symbolic_operand) + (global_got_operand, local_got_operand, stack_operand) + (fp_register_operand, lo_operand, fcc_register_operand): Delete. + (mips_small_data_pattern_1): Renamed from small_data_pattern_1. + (mips_small_data_pattern_p): Replace previous small_data_pattern + predicate. Turn into a bool () (rtx) function. + * config/mips/predicates.md: New file. + * config/mips/mips.md: Include it. Use the target-independent + comparison_operator instead of cmp_op. Rename trap_cmp_op to + trap_comparison_operator and equality_op to equality_operator. + Replace uses of small_int with the equivalent const_arith_operand. + Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename + const_float_1_operand to const_1_operand. Rename fcc_register_operand + to fcc_reload_operand. + * config/mips/sb1.md: Rename fp_register_operand to fpr_operand. + +2004-08-14 John David Anglin + + PR libstdc++/17005 partial fix. + * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE + except when generating ANSI/C89 code. + +2004-08-14 Nathan Sidwell + + * c-common.c (shorten_compare): Use force_fit_type directly. + +2004-08-14 Gerald Pfeifer + Dimitri Papadopoulos-Orfanos + Dave Korn + + * doc/install.texi (Building): Avoid duplicate reference to GNU + make requirement. + (*-*-solaris2*): Do not recommend GNU make any longer. Simplify. + +2004-08-14 Richard Henderson + + * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types. + * config/alpha/alpha.c (function_value): Use PROMOTE_MODE. + +2004-08-13 Richard Henderson + + * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode + for constant_call_address_operand. + (call_value_pop_1, call_value_1): Likewise. + (sibcall_value_1, call_value_1_rex64): Likewise. + +2004-08-13 James E Wilson + + * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe): + Correct mode from SFmode to DFmode. + +2004-08-13 Ziemowit Laski + + * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup, + __cstring_object and __image_info sections with the no_dead_strip + attribute. + +2004-08-13 Roger Sayle + David Billinghurst + + PR libgfortran/15930 + * fixinc/inclhack.def (irix___generic1, irix___generic2): New. + * fixinc/fixincl.x: Regenerate. + * fixinc/tests/base/internal/math_core.h: New file. + +2004-08-13 Richard Henderson + + * dbxout.c (NO_DBX_FUNCTION_END): Default to zero. + (dbxout_function_end): Remove ifdefs for it. + (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions. + +2004-08-13 Richard Henderson + + * Makefile.in (insn-preds.o): Depend on TREE_H. + * genpreds.c (write_insn_preds_c): Include tree.h. + * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand, + reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand, + const48_operand, and_operand, or_operand, mode_width_operand, + mode_mask_operand, mul8_operand, const0_operand, + hard_fp_register_operand, hard_int_register_operand, + reg_or_cint_operand, some_operand, some_ni_operand, input_operand, + samegp_function_operand, direct_call_operand, small_symbolic_operand, + global_symbolic_operand, call_operand, symbolic_operand, + dtp16_symbolic_operand, dtp32_symbolic_operand, + gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand, + gottp_symbolic_operand, alpha_comparison_operator, + alpha_zero_comparison_operator, alpha_swapped_comparison_operator, + signed_comparison_operator, alpha_fp_comparison_operator, + divmod_operator, fix_operator, aligned_memory_operand, + unaligned_memory_operand, reg_or_unaligned_mem_operand, + any_memory_operand, reg_not_elim_operand, normal_memory_operand, + reg_no_subreg_operand, addition_operation): Move to predicates.md. + (reg_or_const_int_operand): Remove. Replace all users with + reg_or_cint_operand. + (tls_symbolic_operand_1): Export. Don't check mode or for CONST. + (resolve_reload_operand): Split out of aligned_memory_operand. + * config/alpha/alpha-protos.h: Update for exports. + * config/alpha/alpha.h (PREDICATE_CODES): Remove. + * config/alpha/alpha.md: Include predicates.md. + * config/alpha/predicates.md: New file. + +2004-08-13 Richard Sandiford + + * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno + fields with a pointer to the instruction definition. + (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent) + (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get) + (write_attr_case, write_const_num_delay_slots): Update accordingly. + (write_attr_case, write_const_num_delay_slots): Write the name of + an insn next to its case statement. + * genoutput.c (data): Add a filename field. + (gen_insn, gen_peephole, gen_expand, gen_split): Set it. + (output_insn_data): Print the location of each insn definition. + * genrecog.c (write_action): Print the name of an insn above + the statement that returns its code. + +2004-08-12 Andrew Pinski + + * config/darwin-c.c (find_subframework_file): Fix spelling of cannot. + * config/libgloss.h: Likewise. + * config/arm/arm.c (arm_gen_load_multiple): Likewise. + * c4x/c4x-modes.def: Likewise. + * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise. + (c4x_rptb_nop_p): Likewise. + (c4x_rptb_valid_p): Likewise. + (c4x_rptb_insert): Likewise. + (c4x_address_conflict): Likewise. + * config/c4x/c4x.md: Likewise. + * config/frv/frv.md: Likewise. + * config/i386/athlon.md: Likewise. + * config/i386/i386.md: Likewise. + * config/i386/predicates.md: Likewise. + * config/ia64/ia64.c: Likewise. + * config/ia64/itanium1.md: Likewise. + * config/ia64/itanium2.md: Likewise. + * config/iq2000/iq2000.md: Likewise. + * config/mcore/mcore.c: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/r3900.h: Likewise. + * config/mips/sb1.md: Likewise. + * config/pa/milli64.S: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa.h: Likewise. + * config/rs6000/8540.md: Likewise. + +2004-08-13 Daniel Berlin + + * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU. + +2004-08-13 J"orn Rennecke + + * sh.md (cbranch define_delay) Use cond_delay_slot for + non-anulled condition too. + +2004-08-12 David Edelsohn + + * config/rs6000/rs6000.c (any_parallel_operand): New predicate. + * config/rs6000/rs6000.h (PREDICATE_CODES): Add + any_parallel_operand, lmw_operation, stmw_operation, + mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand. + * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use + any_parallel_operand. + (return_and_restore_fpregs_{si,di}): Same. + +2004-08-12 Zack Weinberg + + * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL, + if pred->singleton != PARALLEL, issue a warning and pretend it was. + Also issue a warning for any predicate we don't know about. + +2004-08-12 Richard Henderson + + * config/i386/i386.c (internal_label_prefix): Export. + (internal_label_prefix_len, struct ix86_address, + ix86_decompose_address, maybe_get_pool_constant, + ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes, + memory_address_length): Export. + (any_fp_register_operand, fp_register_operand, + register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand, + 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, + x86_64_zext_immediate_operand, const_int_1_31_operand, + symbolic_operand, pic_symbolic_operand, local_symbolic_operand, + tls_symbolic_operand, global_dynamic_symbolic_operand, + local_dynamic_symbolic_operand, initial_exec_symbolic_operand, + local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand, + constant_call_address_operand, const0_operand, const1_operand, + const248_operand, const_0_to_3_operand, const_0_to_7_operand, + const_0_to_15_operand, const_0_to_255_operand, incdec_operand, + shiftdi_operand, reg_no_sp_operand, mmx_reg_operand, + general_no_elim_operand, nonmemory_no_elim_operand, + index_register_operand, q_regs_operand, flags_reg_operand, + non_q_regs_operand, zero_extended_scalar_load_operand, + vector_move_operand, no_seg_address_operand, sse_comparison_operator, + ix86_comparison_operator, ix86_carry_flag_operator, + fcmov_comparison_operator, promotable_binary_operator, + cmp_fp_expander_operand, ext_register_operand, binary_fp_operator, + mult_operator, div_operator, arith_or_logical_operator, + memory_displacement_operand, cmpsi_operand, long_memory_operand, + aligned_operand): Move to predicates.md as define_predicates. + (tls_symbolic_operand_1): Remove. + (x86_64_sign_extended_value): Merge into x86_64_immediate_operand. + (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand. + (legitimize_address): Merge tls_symbolic_operand contents. + (ix86_expand_move): Likewise. + * config/i386/i386-protos.h: Update for exports. + * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames. + (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove. + * config/i386/i386.md: Include predicates.md. + * config/i386/predicates.md: New file. + +2004-08-13 Mark Mitchell + + PR c++/16924 + * config/i386/winnt.c (i386_pe_mark_dllexport): Set + SYMBOL_REF_DECL. + (i386_pe_mark_dllimport): Likewise. + (i386_pe_encode_section_info): Likewise, when overriding + dllimport attribute. + +2004-08-12 Geoffrey Keating + + * configure.ac: When testing for flex, nm, ar, and bison, check + that they will actually be built. + * configure: Regenerate. + +2004-08-12 Ulrich Weigand + + * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define. + (MOVE_MAX_PIECES): Define. + +2004-08-12 Devang patel + + * dbxout.c (dbxout_begin_prologue): New function. + (dbx_debug_hooks): Use new begin prologue hook. + (dbxout_function_end): Emit N_ENSYM. + * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs. + +2004-08-12 Janis Johnson + + * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first + argument is float*. + + * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type + for vec_dss. + + * doc/extend.texi (AltiVec builtins): Fix description for recent + changes. Update operation list to match current support. + +2004-08-12 Andreas Krebbel + + * config/s390/s390.c (struct s390_frame_layout): New struct as element + of struct machine_function. + (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and + changed all uses. + (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and + changed all uses. + (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size) + (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros. + (s390_frame_area, s390_register_info): New functions. + (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check + for base register. + (s390_return_addr_rtx, s390_return_address_offset) + (s390_va_start, s390_gimplify_va_arg) + (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack + layouts. + (s390_frame_info): Functionality partly moved to s390_register_info. + Made adaptions for new stack layout. + (save_gprs, restore_gprs): Changed meaning of second parameter and + adapted all callers. + + * config/s390/s390.h (s390_backchain_string): New global variable. + (MASK_BACKCHAIN): Removed definition. + (TARGET_BACKCHAIN): Changed check. + (TARGET_KERNEL_BACKCHAIN): New macro. + (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain". + (TARGET_OPTIONS): Added "backchain", "no-backchain" and + "kernel-backchain". + (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts. + + * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN + as condition. Adjusted for new stack layout. + + * doc/invoke.texi: Added documentation for new option + "-mkernel-backchain" and adjusted documentation of "-mbackchain" and + "-mno-backchain". + +2004-08-12 Paul Brook + + * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name. + (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation. + +2004-08-12 David Daney + + * java/gcj.texi: Add subsection on signal usage. + +2004-08-12 David Edelsohn + + * expr.c (move_by_pieces): Set alignment for move to minimum of + MOVE_MAX_PIECES mode alignment and the largest non-slow mode + alignment, but not less than the original alignment. + (move_by_pieces_ninsns): Same. + (can_store_by_pieces): Similar for store with STORE_MAX_PIECES. + (store_by_pieces_1): Same. + +2004-08-12 Diego Novillo + + PR tree-optimization/16867 + * tree.c (is_global_var): New function. + (needs_to_live_in_memory): Check for TREE_ADDRESSABLE. + Call is_global_var. + * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove. + Update all users. + (is_global_var): Declare. + * tree-dfa.c (dump_variable): Display global and addressable + attributes. + (add_referenced_var): Clarify documentation when marking + variables call-clobbered. + * tree-flow-inline.h (is_call_clobbered): Call is_global_var + instead of needs_to_live_in_memory. + (mark_call_clobbered): If the variable is a tag, mark it + DECL_EXTERNAL. + * tree-gimple.c (is_gimple_reg): Don't check for + TREE_ADDRESSABLE. + (is_gimple_non_addressable): Likewise. + * tree-ssa-alias.c (get_nmt_for): Always check whether the tag + needs to be marked call-clobbered. + (setup_pointers_and_addressables): Call is_global_var instead + of needs_to_live_in_memory. + * tree-ssa-dce.c (need_to_preserve_store): Remove. + Update all users with is_global_var. + (mark_stmt_if_obviously_necessary): Fix processing of aliased + stores. Don't check the virtual definitions. Rather, check + whether the store is going into global memory. + (find_obviously_necessary_stmts): Get the symbol from the PHI + result. + * tree-ssa-operands.c (get_call_expr_operands): Do not add + clobbering may-defs if the call does not have side effects. + +2004-08-12 Jakub Jelinek + + PR c++/16276 + * output.h (default_function_rodata_section, + default_no_function_rodata_section): New prototypes. + * target.h (struct gcc_target): Add asm_out.function_rodata_section. + * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. + (TARGET_ASM_OUT): Add it. + * varasm.c (default_function_rodata_section, + default_no_function_rodata_section): New functions. + * final.c (final_scan_insn): Call + targetm.asm_out.function_rodata_section instead of + readonly_data_section. + * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. + * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. + * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. + * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION): + Likewise. + * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. + * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION): + Likewise. + * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION): + Likewise. + * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. + * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. + * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document. + +2004-08-12 Paul Brook + + * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh + frame info. + * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and + DWARF2_UNWIND_INFO. + +2004-08-12 Ben Elliston + + PR target/16286 + * config/rs6000/altivec.h: Change vector to __vector throughout. + (Except for the `vector' macro itself). + +2004-08-12 Zack Weinberg + + * genpreds.c: Add capability to generate predicate bodies as + well as function prototypes. Write function prototypes for + the generic predicates too. + (process_define_predicate, write_tm_preds_h, write_insn_preds_c) + (write_predicate_subfunction, mark_mode_tests, add_mode_tests) + (write_match_code, write_predicate_expr, write_one_predicate_function) + (parse_option): New functions. + (output_predicate_decls): Delete. + (main): Read the machine description, process DEFINE_PREDICATE or + DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c + as appropriate. + + * genrecog.c (struct decision_test): Replace index with + struct pred_data pointer. + (next_index): Remove, unused. + (pred_table, preds, special_mode_pred_table): Delete. + (compute_predicate_codes, process_define_predicate): New functions. + (validate_pattern, add_to_sequence, write_switch): Update for + new data structures. + (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. + Check both error_count and have_error. + + * gensupport.c (in_fname, first_predicate): New globals. + (define_pred_queue, define_pred_tail): New RTL-pattern queue. + (predicate_table, last_predicate, old_pred_table) + (old_special_pred_table): New statics. + (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate) + (add_predicate, init_predicate_table): New functions. + (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. + (init_md_reader_args_cb): Use the global in_fname. No need to zero + it or max_include_len. Call init_predicate_table. + (read_rtx): Run the predicate queue after the attribute queue + but before all the others. + * gensupport.h (in_fname, struct pred_data, first_predicate) + (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare. + * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE) + (DEFINE_SPECIAL_PREDICATE): New RTL codes. + * dummy-conditions.c: Don't include bconfig.h, system.h, + coretypes.h, tm.h, or system.h. Do include stddef.h. + Duplicate declaration of struct c_test from gensupport.h. + + * Makefile.in (OBJS-common): Add insn-preds.o. + (STAGESTUFF, .PRECIOUS): Add insn-preds.c. + (insn-preds.c, insn-preds.o): New rules. + (s-preds): Also generate insn-preds.c. + (dummy-conditions.o, genpreds$(build_exeext), genpreds.o): + Update dependencies. + (print-rtl.o, print-rtl1.o): Correct dependencies. + + * recog.h: Delete prototypes of predicate functions. + + * doc/md.texi (Predicates): New section with complete + documentation of operand/operator predicates. Remove some + incomplete documentation of predicates from other places. + * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to + PREDICATE_CODES; indicate that both are deprecated in favor + of define_predicate/define_special_predicate. + + * config/ia64/ia64.c: All predicate function definitions moved + to ia64.md, except + (small_addr_symbolic_operand, tls_symbolic_operand): Delete. + (ia64_expand_load_address, ia64_expand_move): + Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand. + + * config/ia64/ia64.md: All predicates now defined here. + (symbolic_operand): Is now a special predicate. + + * config/ia64/ia64.h: Declare ia64_section_threshold. + (PREDICATE_CODES): Delete. + +2004-08-12 Richard Henderson + + * c-common.h (STATEMENT_LIST_HAS_LABEL): New. + * c-semantics.c (add_stmt): Set it. + * c-decl.c (finish_decl): Use it to create a new BIND_EXPR + before instantiating a variable sized type. + +2004-08-12 Richard Henderson + + * stor-layout.c (round_up, round_down): Move ... + * fold-const.c (round_up, round_down): ... here. Use + multiple_of_p to avoid any arithmetic at all. + +2004-08-12 Richard Henderson + + * gimplify.c (struct gimplify_init_ctor_preeval_data): New. + (gimplify_init_ctor_preeval_1): New. + (gimplify_init_ctor_preeval): New. + (gimplify_init_ctor_eval): New. + (gimplify_init_constructor): Use them. Always gimplify the LHS + object first. + +2004-08-12 Ziemowit Laski + + (This patch is part of merge of objc-improvements-branch + into mainline.) + + * doc/frontends.texi: Mention Objective-C++ in addition to + Objective-C. + * doc/install.texi: Add 'obj-c++' to list of configurable + languages. + * doc/invoke.texi: Rename Objective-C option headings to + indicate they also apply to Objective-C++. List file + extensions for Objective-C++ sources. Mention that + ObjC and ObjC++ compilations may also use C and C++ options, + respectively. Point users to doc/standards.texi for + further info on ObjC and ObjC++. + * doc/sourcebuild.texi: Mention the objcp/ directory and + the Objective-C++ sources it contains. + * doc/standards.texi: Update link to Apple ObjC site; + add link to gcc readings.html WWW doc. + +2004-08-12 Alan Modra + + * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28 + and 2004-07-14 changes. + +2004-08-12 Paul Brook + + * doc/invoke.texi: Fix typo. + +2004-08-11 Devang Patel + + * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip + and -no_dead_strip_inits_and_terms. + (LINK_SPEC): Same. + * doc/invoke.texi (Darwin Options): Document -dead_strip and + -no_dead_strip_inits_and_terms. + +2004-08-11 Paul Brook + + * config/arm/arm-protos.h (arm_finalize_pic) Rename ... + (arm_load_pic_register): ... to this. + * config/arm/arm.c (arm_finalize_pic): Rename ... + (arm_load_pic_register): ... to this. Always output insns at the + current location. Load via low reg in thumb mode. + (arm_expand_prologue): Call arm_load_pic_register. + (thumb_expand_prologue): Ditto. + * config/arm/arm.h (FINALIZE_PIC): Remove. + * config/arm/arm.md (builtin_setjmp_receiver): Call + arm_load_pic_register. + +2004-08-11 Paul Brook + + * arm.c (thumb_force_lr_save): Add prototype. + (thumb_compute_save_reg_mask): New function. + (thumb_find_work_register): New function. + (arm_get_frame_offsets): Use thumb_compute_save_reg_mask. + (thumb_unexpanded_epilogue): Ditto. Remove redundant code. + Don't clobber r3 when removing pretend args. + (thumb_expand_prologue): Use thumb_compute_save_reg_mask. + (thumb_output_function_prologue): Use new functions. + (thumb_set_return_address): Use thumb_compute_save_reg_mask. + * arm.h (THUMB_REG_PUSHED_P): Remove. + +2004-08-11 James E Wilson + + PR rtl-optimization/16490 + * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and + global_live_at_end for new basic block if already set for other blocks. + +2004-08-11 David Edelsohn + + * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define. + + * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8. + (mfcr rlwinm rlwinm patterns): Set length to 12. + +2004-08-11 Andrew MacLeod + + * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops, + get_vuse_ops,get_v_must_def_ops): Add operand structure reference. + (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct. + (start_ssa_stmt_operands): Delete. + * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new + struct stmt_operands_d. + (build_ssa_operands): New extern entry point. + * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand + building code, replace with create_ssa_artficial_load_stmt(). + * tree-ssa-operands.c (struct voperands_d): Delete. + (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector. + (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *). + (free_uses, free_defs, free_vuses, free_v_may_defs, + free_v_must_defs): Remove dealloc parameter. + (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete. + (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs, + finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand + vector comparisons, ssa_name reuse, and allocations here. + (verify_start_operands): Delete. + (finalize_ssa_stmt_operands): Set new operands by calling finalize + routines. + (start_ssa_stmt_operands): Move from tree-flow-inline.h. + (append_def, append_usei): Simplify to simple accumulation. + (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding + duplicates and simple accumulation. + (free_ssa_operands): Free vectors in a stmt_operand structure. + (build_ssa_operands): New. Create a new stmt_operand structure from + a stmt and an old set of stmt_operands. + (get_stmt_operands): Simplify and call build_ssa_operands. + (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands, + get_call_expr_operands, add_stmt_operand, add_call_clobber_ops, + add_call_read_ops): Don't pass prev_vops around anymore. + (note_addressable): Return if no stmt annotation. + (copy_virtual_operands): Access v_may_def operands through a struct. + (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's + hash tables without treating the stmt as a real stmt. + * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access + v_may_def def and use through a struct instead of 2 array elements. + (struct v_may_def_optype_d): Use v_may_def_operand_type. + (struct stmt_operands_d): New. Struct for storing all operand vectors. + +2004-08-11 Nick Clifton + + * config/arm/arm.c (arm_is_longcall_p): Update comment describing + this funciton's behaviour. Return true when the current function + has a section attribute and -mlong-calls is in effect. + * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the + short-call marker when -mlong-calls is in effect and the function + has a section attribute. + +2004-08-10 Zack Weinberg + + * stmt.c (expand_return): If asked to return the RESULT_DECL, + just call expand_value_return on result_rtl. + +2004-08-10 Richard Henderson + + * builtins.def (BUILT_IN_STACK_ALLOC): Remove. + * builtins.c (expand_builtin) : Remove. + * dwarf2out.c (loc_descriptor): Handle PARALLEL here ... + (add_location_or_const_value_attribute): ... not here. Use + loc_descriptor_from_tree if possible. + (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree. + Simplify address handling. Handle DECL_VALUE_EXPR. Handle register + values specially. + (loc_descriptor_from_tree): New. Update callers. + * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables. + * gimplify.c (gimplify_decl_expr): Lower variable sized types to + pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack. + (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC + and BUILT_IN_STACK_RESTORE. + (gimplify_expr): Lower DECL_VALUE_EXPR decls. + * stmt.c (expand_stack_alloc): Remove. + * tree-mudflap.c (mx_register_decls): Don't look for + BUILT_IN_STACK_ALLOC. + * tree-nested.c (convert_local_reference): Likewise. + * tree.h (DECL_VALUE_EXPR): New. + +2004-08-10 Richard Henderson + + * stor-layout.c (round_up): Check for 0/1 before dividing. + (round_down): Likewise. + + * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL. + +2004-08-09 Mark Mitchell + + * config.gcc (arm*-*-eabi*): New target. + * defaults.h (TARGET_LIBGCC_FUNCS): New macro. + (TARGET_LIB_INT_CMP_BIASED): Likewise. + * expmed.c (expand_divmod): Try a two-valued divmod function as a + last resort. + * gthr.h: Remove bogus tokens at end of #pragma. + * optabs.c (expand_twoval_binop_libfunc): New function. + (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case. + (prepare_float_lib_cmp): Try reversing the condition. + (debug_optab_libfuncs): New function. + * optabs.h (expand_twoval_binop_libfunc): Declare. + * config/arm/arm.c (arm_init_libfuncs): New function. + (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT. + (TARGET_INIT_LIBFUNCS): Define it. + * config/arm/arm.h (TARGET_BPABI): New macro. + * config/arm/arm-protos.h + (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT. + * config/arm/bpabi.S: New file. + * config/arm/bpabi.c: Likewise. + * config/arm/bpabi.h: Likewise. + * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias. + (__aeabi_drsub): Likewise. + (__aeabi_dsub): Likewise. + (__aeabi_dadd): Likewise. + (__aeabi_ui2d): Likewise. + (__aeabi_i2d): Likewise. + (__aeabi_f2d): Likewise. + (__aeabi_dmul): Likewise. + (__aeabi_ddiv): Likewise. + (__aeabi_cdrcmple): Likewise. + (__aeabi_cdcmpeq): Likewise. + (__aeabi_cdcmple): Likewise. + (__aeabi_dcmpeq): Likewise. + (__aeabi_dcmplt): Likewise. + (__aeabi_dcmple): Likewise. + (__aeabi_dcmpge): Likewise. + (__aeabi_dcmpgt): Likewise. + (__aeabi_dcmpun): Likewise. + (__aeabi_d2iz): Likewise. + (__aeabi_d2uiz): Likewise. + (__aeabi_d2f): Likewise. + * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias. + (__aeabi_frsub): Likewise. + (__aeabi_fsub): Likewise. + (__aeabi_fadd): Likewise. + (__aeabi_ui2f): Likewise. + (__aeabi_i2f): Likewise. + (__aeabi_fmul): Likewise. + (__aeabi_fdiv): Likewise. + (__aeabi_cfrcmple): Likewise. + (__aeabi_cfcmpeq): Likewise. + (__aeabi_cfcmple): Likewise. + (__aeabi_fcmpeq): Likewise. + (__aeabi_fcmplt): Likewise. + (__aeabi_fcmple): Likewise. + (__aeabi_fcmpge): Likewise. + (__aeabi_fcmpgt): Likewise. + (__aeabi_fcmpun): Likewise. + (__aeabi_f2iz): Likewise. + (__aeabi_f2uiz): Likewise. + * config/arm/lib1funcs.asm (ARM_CALL): New macro. + (__aeabi_uidivmod): New function or alias. + (__aeabi_idivmod): Likewise. + (__aeabi_idiv0): Likewise. + (__aeabi_ldiv0): Likewise. + (__aeabi_llsr): Likewise. + (__aeabi_lasr): Likewise. + (__aeabi_llsl): Likewise. + (bpabi.S): Include it. + * config/arm/libgcc-bpabi.ver: New file. + * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove. + (LINK_SPEC): Remove. + * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and + __aeabi_ulcmp. + * config/arm/t-bpabi: New file. + * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry. + (TARGET_LIB_INT_CMP_BIASED): Likewise. + +2004-08-10 David Edelsohn + + * config/rs6000/rs6000-protos.h (expand_block_clear): Declare. + * config/rs6000/rs6000.md (clrmemsi): New pattern. + * config/rs6000/rs6000.c (expand_block_clear): New function. + (expand_block_move): Convert alignment to bits. Use SImode and + HImode for unaligned addresses if not STRICT_ALIGNMENT. + +2004-08-10 Caroline Tice + + * varasm.c (unlikely_section_label): New global variable. + (unlikely_text_section_name): New global variable. + (text_section): Remove alignment statement. + (unlikely_text_section): Remove alignment statement; use + unlikely_section_label rather than hard-coded string. + (assemble_start_function): Initialize unlikely_section_label and + unlikely_text_section_name; make sure cold section is properly + aligned at start of function; output unlikely_section_label if + appropriate. + +2004-08-10 Ulrich Weigand + + * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare. + * config/s390/s390.c (s390_canonicalize_comparison): New function. + * config/s390/s390.h (CANONICALIZE_COMPARISON): Define. + * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext", + "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove. + ("*tmqi_mem"): Remove SUBREG from pattern. + ("*anddi3_cconly"): Prevent accidentally matching TM pattern. + ("*andsi3_cconly"): Likewise. + +2004-08-10 H.J. Lu + + PR target/16909 + * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI. + +2004-08-10 Janis Johnson + + * doc/sourcebuild.texi (compat testing): Document available test + framework commands. Use the preferred spelling of DejaGnu. + +2004-08-10 Daniel Berlin + + * lambda.h: Add matrix type, and prototypes for remainder of + matrix and vector functions. + (lambda_vector_mult_const): New function. + (lambda_vector_negate): Ditto. + (lambda_vector_add): Ditto. + (lambda_vector_add_mc): Ditto. + (lambda_vector_copy): Ditto. + (lambda_vector_zerop): Ditto. + (lambda_vector_equal): Ditto. + (lambda_vector_min_nz): Ditto. + (lambda_vector_first_nz): Ditto. + (lambda_vector_matrix_mult): Ditto. + * lambda-mat.c: New file. + * Makefile.in (lambda-mat.o): New. + +2004-08-10 Andrew MacLeod + + * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt + after linking stmt into the program. + (bsi_remove): Don't call modify_stmt. + * tree-complex.c (update_complex_assignment, + expand_complex_comparison): Call modify_stmt after changing the stmt. + * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not + removing the stmt. + * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing + the stmt, and only if needed. + * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy + expression. + (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param. + (simplify_cond_and_lookup_avail_expr): Use modify_stmt. + (simplify_switch_and_lookup_avail_expr): Don't take an annotation param. + (eliminate_redundant_computations): Don't pass an annotation. Call + modify_stmt rather than setting the annotation directly. + (record_equivalences_from_stmt): Remove unused local 'j'. + (cprop_operand): Take a stmt rather than an annotation as a parameter. + Call modify_stmt. + (cprop_into_stmt): Pass stmt rather than annotation. + (update_rhs_and_lookup_avail_expr): Call modify_stmt. + * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than + modify_stmt. + * tree-ssa.c (propagate_into_addr): Dont call modify_stmt. + +2004-08-10 Jason Merrill + + PR middle-end/16948 + * function.c (expand_function_start): Handle DECL_BY_REFERENCE on + the RESULT_DECL. + +2004-08-10 Geoffrey Keating + + * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the + hash function. + +2004-08-10 Roger Sayle + + * config/mips/mips.md: New reciprocal square root patterns that + match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns. + +2004-08-10 Paul Brook + + * config/arm/arm-protos.h (arm_set_return_address, + thumb_set_return_address): Add prototypes. + * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove. + * config/arm/arm.c (arm_compute_func_type, + use_return_insn, arm_compute_save_reg0_reg12_mask, + arm_compute_save_reg_mask, arm_output_function_prologue, + arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with + current_function_calls_eh_return. + (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace + old eh code. + (arm_set_return_address, thumb_set_return_address): New functions. + * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO, + ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define. + * config/arm/arm.md (VUNSPEC_EH_RETURN): Add. + (epilogue): Use the stackadj register. + (eh_return, arm_eh_return, thumb_eh_return): New pattern. + +2004-08-10 Jakub Jelinek + + PR target/3144 + * expr.c (move_by_pieces_ninsns): Add max_size argument. + (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it. + (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it. + (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P, + but using MOVE_RATIO. + (move_by_pieces): Pass max_size to move_by_pieces_ninsns. + (can_store_by_pieces): Change max_size type to unsigned int. + (store_by_pieces_1): Likewise. Pass max_size to + move_by_pieces_ninsns. + * config/s390/s390.h (STORE_BY_PIECES_P): Define. + * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 + to move_by_pieces_ninsns. + (STORE_BY_PIECES_P): Define. + * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 + to move_by_pieces_ninsns. + * doc/tm.texi (STORE_BY_PIECES_P): Document changed default. + + * config/i386/i386.h (CLEAR_RATIO): Define. + +2004-08-09 Paolo Bonzini + + * expr.c (expand_expr_real_1): Add back code that was not dead. + +2004-08-09 Andrew Pinski + + * c-common.c (c_common_get_alias_set): Set the aliasing set of the type + which is found to be compatible before returning the aliasing set. + +2004-08-09 Daniel Jacobowitz + + * ggc-zone.c (struct alloc_zone): Add statistics counters. + (always_collect): New flag. + (ggc_alloc_zone_1): Update statistics support. Don't include + overhead in allocated counter. + (sweep_pages): Update allocated counter for large pages. Don'y + include overhead. + (ggc_collect_1): Always collect. + (ggc_collect): Honor always_collect flag. Sum all zones to decide + whether to collect. + (SCALE, LABEL): New macros. + (ggc_print_statistics): Add statistics support. + +2004-08-09 Roger Sayle + + * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool. + (init_expmed): Fix potential overrun problem with "all.reg". + (expand_sdiv2_pow2): Add an alternate implementation for signed + division, if the target provides a suitable conditional move insn. + +2004-08-09 Paul Brook + Richard Henderson + + * unwind-dw2.c (uw_install_context_1): Update target saved stack + pointer. + +2004-08-09 Geoffrey Keating + + * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit. + Check DATA limit only if there's no AS limit. Ignore insanely + low DATA limits. + (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8, + but take care that the AS limit isn't overrun. + * doc/invoke.texi: Update documentation of min-heapsize parameter. + +2004-08-09 Jeff Law + + * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c + (tree-ssa-threadupdate.o): Add dependencies. + * tree-ssa-threadupdate.c: New file. + * tree-flow.h (incoming_edge_threaded): New flag in block annotation. + (rewrite_vars_out_of_ssa): Remove prototype. + (cleanup_tree_cfg): Returns a bool. + * tree.h (thread_through_all_blocks): Prototype. + * tree-outof-ssa.c (SSANORM_*): Move into here. + (remove_ssa_form): Now static. + (rewrite_vars_out_of_ssa): Kill. + * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill. + * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c. + (remove_ssa_form, register_partitions_for_vars): Kill declarations. + * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if + anything was changed. + * tree-phinodes.c (add_phi_arg): Get the block for the PHI + from the PHI's annotation rather than the edge associated with + the new argument. + * tree-ssa-dom.c (redirection_edges): Kill. + (redirect_edges_and_update_ssa_graph): Kill. + (tree_ssa_dominator_optimize): Do not reset forwardable flag + for blocks anymore. Do not initialize redirection_edges. + Call thread_through_all_blocks. Simplify code for cleanup + of the CFG and iterating. No longer call cleanup_tree_cfg + outside the iteration loop. + (thread_across_edge): No longer mess with forwardable blocks. + +2004-08-09 Zack Weinberg + + * explow.c (memory_address): Use memory_address_p. + * recog.c (general_operand): Likewise. + * regrename.c: No need to define REG_OK_STRICT. + +2004-08-09 Steven Bosscher + + * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM): + New timers. + * gcse.c: Include timevar.h. + (const_prop_count, copy_prop_count): Rename to global_const_prop_count + and global_copy_prop_count. + (local_const_prop_count, local_copy_prop_count): New static globals. + (gcse_main): Set the right timevar for each pass. + (cprop_jump): Increment global_const_prop_count when a constant is + propagated. Add "GLOBAL" to dump output. + (cprop_insn): Increment global_const_prop_count when a constant is + propagated, or global_copy_prop_count when a copy is propagated. + (do_local_cprop): Likewise for local_const_prop_count and + local_copy_prop_count. + (one_cprop_pass): Initialize const/cprop counters to zero. + Print out results of local and global const/cprop separately. + (bypass_block): Break over-length line. + * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies + for bb-reorder.o and tracer.o. + +2004-08-09 Paolo Bonzini + + * Makefile.in (GTFILES): Remove stmt.c + (stmt.o): Do not depend on gt-stmt.h. + * emit-rtl.c (emit_line_note): Do not call + set_file_and_line_for_stmt. + * expr.c (expand_expr_real_1) : Let expand_case + do everything. + * function.c (free_after_parsing): Do not free STMT field. + (allocate_struct_function): Do not call init_stmt_for_function. + (assign_stack_temp_for_type): Do not accept values of keep + other than 0 or 1. + (init_temp_slots): Do not initialize removed variables. + * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL + and X_VAR_TEMP_SLOT_LEVEL fields. + * rtl.h (set_file_and_line_for_stmt): Remove. + * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK, + struct stmt_status, cond_stack, case_stack, nesting_stack, + nesting_depth, emit_locus, set_file_and_line_for_stmt, + same_case_target_p, init_stmt_for_function, emit_nop, + expand_start_cond, expand_start_elseif, expand_start_else, + expand_elseif, expand_end_cond): Remove. + (preserve_subexpressions_p): Remove references to CFUN->STMT. + (expand_start_case, expand_end_case_type): Remove, merge into... + (expand_case): ... this one, including other bits from + expand_expr_real_1. Inline same_case_target_p. Turn members + of CASE_STACK into local variables. + (emit_case_bit_tests): Inline same_case_target_p. + (add_case_node): Add HEAD argument, return new head of the list, + do not handle default label here. + * tree.h (expand_start_cond, expand_end_cond, expand_start_else, + expand_start_elseif, current_nesting_level, expand_start_case, + expand_end_case_type, expand_end_case, add_case_node, + init_stmt_for_function, expand_elseif): Remove prototypes. + (expand_case): Add prototype. + +2004-08-09 Paolo Bonzini + + * expr.c (expand_expr_real_1): Use optab_for_tree_code. + +2004-08-09 Paolo Bonzini + + * expr.c (var_rtx): Remove. + (expand_expr_real_1) : + Abort. + (expand_expr_real_1) : Remove most special cases. + * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove. + * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove. + +2004-08-08 Mostafa Hagog + Ayal Zaks + + * common.opt (freschedule-modulo-scheduled-loops): New flag. + * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK. + * modulo-sched.c (sms_schedule): Emit a note to disable scheduling + when -freschedule-modulo-scheduled-loops flag is not specified. + (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps, + add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts): + More accurate placing of insn in row of partial schedule. + (ps_insn_find_column): New function. + * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note. + * sched-rgn.c (sched_is_disabled_for_current_region_p): New. + (schedule_region): Use sched_is_disabled_for_current_region_p. + * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops. + +2004-08-07 H.J. Lu + + * config/i386/i386.c (ix86_expand_clrmem): Revert the last + change. + +2004-08-07 H.J. Lu + + * config/i386/i386.c (ix86_expand_clrmem): Properly call + gen_strset for 64bit target. + +2004-08-07 Olivier Hainque + + * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition. + +2004-08-07 Jason Merrill + + Make return in memory explicit. + * function.c (aggregate_value_p): Check DECL_BY_REFERENCE. + (assign_parm_find_data_types): Remove code for old front end + invisible reference handling. + (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL. + (expand_function_end): Likewise. + * gimplify.c (gimplify_return_expr): Handle a dereferenced + RESULT_DECL. + * tree-inline.c (copy_body_r): Don't bother looking for &* anymore. + (declare_return_variable): Handle DECL_BY_REFERENCE. + * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL. + (cp_genericize_r): Use convert_from_reference. + Don't dereference a RESULT_DECL directly inside a RETURN_EXPR. + (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE. + + * c-common.c (c_warn_unused_result): Check TREE_USED before + warning about a CALL_EXPR with an unused value. + +2004-08-06 Mark Mitchell + + * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options + to the compiler. Use -fshort-wchar by default. + +2004-08-06 Pat Haugen + + * params.def (PARAM_MIN_CROSSJUMP_INSNS): New. + * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match + threshhold. + * doc/invoke.texi (param): Document min-crossjump-insns. + +2004-08-06 Richard Sandiford + + PR c/13282 + * c.opt (Wmissing-field-initializers): New option. + * c-opts.c (c_common_post_options): Make -Wextra turn it on by default. + * c-typeck.c (pop_init_level): Guard the missing field warning with + warn_missing_field_initializers rather than extra_warnings. + * doc/invoke.texi (-Wmissing-field-initializers): Document, moving + some of the explanation from... + (-Wextra): ...here. Say that the missing field warning can be + seperately controlled by -Wmissing-field-initializers. + +2004-08-06 Paolo Bonzini + + * expr.c (expand_expr_real_1) : Remove. + * tree-inline.c (estimate_num_insns_1) : Remove. + * tree-pretty-print.c (dump_generic_node) : Remove. + * tree.def (ENTRY_VALUE_EXPR): Remove. + +2004-08-06 Jakub Jelinek + + * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to + the places where it is actually needed. Don't use repz; stosb + for -Os with sufficiently small constant sizes. + For sufficiently small repz; stos{l,q} repeat counts use a sequence + of stos{l,q} instructions instead. + +2004-08-06 Zdenek Dvorak + + PR tree-optimization/16807 + * loop-iv.c (dump_iv_info): Dump invariants correctly. + (iv_subreg, iv_extend): Express value of invariant purely in + base field. + +2004-08-06 Mark Mitchell + + * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums. + (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC. + +2004-08-06 Roman Zippel + + * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New. + * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand, + pre_dec_operand. + * config/m68k/m68k.md (zero_extend*2): delay the splitting of the + pattern until reload is finished to allow better code generation + and split them completely into separate instrunctions. + (*andsi3_split): New pattern. + +2004-08-05 Mark Mitchell + + * tree.c (handle_dll_attribute): Move here from i383/winnt.c. + Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set + DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. + * tree.h (handle_dll_attribute): Declare. Test + TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. + * c-common.h (c_determine_visibility): Declare. + * c-common.c (c_determine_visibility): New function. + * c-decl.c (finish_decl): Use it. + (finish_function): Likewise. + * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to + zero, by default. Use #if, not #ifdef, to test it. + * config/arm/arm.c (arm_attribute_table): Use + handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with + #if. + * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1. + * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define + to 1. + * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove. + * config/i386/i386.c (ix86_attribute_table): Use + handle_dll_attribute for dllimport/dllexport. Test + TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. + * config/i386/winnt.c (ix86_handle_dll_attribute): Remove. + * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define + it to 1. + * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it + with #if. + * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define + it to 1. + * doc/extend.texi (dllexport): Clarify and correct documentation. + (dllimport): Likewise. + * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention + handle_dll_attribute. + +2004-08-05 Zdenek Dvorak + + * tree-ssa-loop-manip.c: New file. + * Makefile.in (tree-ssa-loop-manip.o): Add. + * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): + Declare. + * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa + form. + (tree_ssa_loop_done): Verify loop closed ssa form. + * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form. + +2004-08-05 John David Anglin + + * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common, + pa_asm_output_aligned_local): New functions. + * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss, + pa_asm_output_aligned_common and pa_asm_output_aligned_local. + * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use + pa_asm_output_aligned_common. + (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. + * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro. + (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common. + (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. + * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro. + (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common. + (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. + * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global + common data. + +2004-08-05 Andrew Pinski + + * objc/objc-act.c (build_objc_string_object): Mark the address + expression as constant. + +2004-08-05 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand + and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle + SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns. + +2004-08-05 Joseph S. Myers + + * config/linux.h, config/i386/linux.h, config/sparc/linux.h: + Remove definitions conditioned on USE_GNULIBC_1 or conditioned + out, and associated obsolete comments. + +2004-08-05 Nathan Sidwell + + * tree.h (force_fit_type): Return a tree, take three flags. + * fold-const.c (force_fit_type): Set TREE_OVERFLOW and + TREE_CONSTANT_OVERFLOW here. + (int_const_binop, const_binop): Adjust. + (size_int_type): Do sign extension here. + (fold_convert_const, optimize_bit_field_compare, + decode_field_reference, all_ones_mask_p, fold_div_compare, fold, + fold_negate_const, fold_abs_const, fold_not_const): Adjust. + * tree.c (size_in_bytes, int_fits_type_p): Adjust. + +2004-08-05 Zdenek Dvorak + + PR tree-optimization/16864 + * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes + for ssa names without default_def. + +2004-08-05 Richard Sandiford + + * config/i386/i386.c (ix86_expand_prologue): If the function uses a + frame pointer, restore eax with an ebp-relative address. + +2004-08-04 Geoffrey Keating + + PR 14516 + * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs. + * c-common.h (make_rtl_for_local_static): Delete. + * c-decl.c (shadow_tag_warned): Clean up comment. + (finish_decl): Clean up spacing. Use set_user_assembler_name when + appropriate. Don't pass asmspec to rest_of_decl_compilation. + * c-semantics.c (make_rtl_for_local_static): Delete. + * expr.c (init_block_move_fn): Use set_user_assembler_name. + (init_block_clear_fn): Likewise. + * passes.c (rest_of_decl_compilation): Remove asmspec parameter, + expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files. + * toplev.h (rest_of_decl_compilation): Remove asmspec parameter. + * tree.h (make_decl_rtl): Remove second parameter. + (set_user_assembler_name): New. + * varasm.c (set_user_assembler_name): New. + (make_decl_rtl): Remove second parameter. Update callers in many + files. + +2004-08-05 Adam Nemet + + * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0. + (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update + to LynxOS 4.0. + * gthr-lynx.h: New file. + * config/lynx-ng.h: Remove file. + * config/lynx.h: Update to LynxOS 4.0. + * config/t-lynx: New file. + * config/i386/lynx-ng.h: Remove file. + * config/i386/lynx.h: Update to LynxOS 4.0. + * config/rs6000/lynxbase.h: Remove file. + * config/rs6000/lynx.h: Update to LynxOS 4.0. + * config/rs6000/t-lynx: New file. + * doc/install.texi (Options specification): Remove reference to + LynxOS from systems where --with-gnu-as makes a difference. + +2004-08-05 Joseph S. Myers + + * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and + __UINTMAX_TYPE__. + * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define + __INTMAX_MAX__. + (c_cpp_builtins): Call it. + * doc/cpp.texi: Update. + +2004-08-04 David Edelsohn + + * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero + cost. + +2004-08-04 Jan Hubicka + + * basic-block.h (profile_staus): New global variable. + * cfg.c (profile_status): Declare. + (check_bb_profile): Break out from ....; use profile_status + (dump_flow_info): ... here. + * cfgbuild.c (find_basic_blocks): Set profile_status. + * cfgexpand.c (tree_expand_cfg): Likewise. + * predict.c (estimate_probability): Likewise. + * profile.c (branch_prob): Likewise. + * tree-cfg.c (build_tree_cfg): Likewise. + (dump_function_to_file): Use check_bb_profile. + * tree-pretty-print (dump_bb_header): Likewise. + * tree-profile.c (do_tree_profiling): Cleanup. + +2004-08-04 Zack Weinberg + + * Makefile.in (RTL_BASE_H, RTL_H): Correct. + (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o. + (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o. + (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o) + (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o) + (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o) + (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H). + (ggc-none.o, errors.o): Move rule to generators section; + correct dependencies. + (min-insn-modes.o): Move rule to generators section; remove + unnecessary explicit command; correct dependencies. + (print-rtl.o, print-rtl1.o): Correct dependencies. + ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule. + (mostlyclean): Update. + + * errors.c: Include bconfig.h not config.h. Correct comment. + * gengtype.c, genpreds.c: Don't define NO_GENRTL_H. + * ggc-none.c: Include bconfig.h; not config.h or tm.h. + * print-rtl.c: Don't include tm_p.h. + + * rtl.h: Move forward-decl of struct function down where it's + needed. Include genrtl.h #ifndef GENERATOR_FILE, not + #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements. + +2004-08-04 Zdenek Dvorak + Jeff Law + + * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions. + * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed. + * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to + manipulate the duplicated ssa names. + * tree-ssanames.c (ssa_names_to_rewrite): New variable. + (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite, + unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force): + New functions. + (release_ssa_name): Do not release ssa names that may have multiple + definitions. + * tree.h (release_ssa_name_force, mark_for_rewrite, + unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p, + marked_ssa_names): Declare. + * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove. + (duplicate_blocks): Remove call to mark_defs_for_rewrite. + Update call to rewrite_ssa_into_ssa. + +2004-08-04 Mark Mitchell + + * defaults.h (TARGET_DECLSPEC): New macro. + * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC. + * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support. + * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. + * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove + __declspec support. + (TARGET_DECLSPEC): Define. + * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove + __declspec support. + * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove + __declspec support. + (TARGET_DECLSPEC): Define. + * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove + __declspec support. + * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec + support. + * doc/tm.texi (TARGET_DECLSPEC): Document. + + * doc/extend.texi: Fix typo in comment. + +2004-08-04 Paul Brook + + * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define. + (TARGET_CXX): Use it. + * target.h (struct gcc_target): Add cdtor_returns_this. + * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function. + (TARGET_CXX_CDTOR_RETURNS_THIS): Define. + * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS. + +2004-08-03 Nathan Sidwell + + * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take + low/high pair. Do range checking directly. + (interpret_integer): Adjust. + +2004-08-04 Nick Clifton + + * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the + GCC ABI. + * doc/invoke.texi: Document this new switch and also the -mrenesas + switch. + +2004-08-04 Nathan Sidwell + + * cfglayout.c (insn_locators_initialize): Update the current + location before initializing a location. + +2004-08-03 Zack Weinberg + + * dbxout.c (dbxout_function_decl): Always call dbxout_function_end. + (dbxout_function_end): Return after emitting the "Lscope" symbol + under the same conditions that this function formerly wasn't called. + Add explanatory comments. + + PR 14860 + * c-decl.c (record_builtin_type): Call debug_hooks->type_decl + on the new decl. + + PR 13956 + * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New + functions, broken out of dbxout_block. + (dbxout_block): The block at depth 0 should get LBRAC/RBRAC + stabs too, if it contains symbols. Use the begin_label and + the Lscope label (emitted by dbxout_function_end) for the + range of this block. + +2004-08-03 Nathanael Nerode + + * doc/install.texi: Update autoconf version requirements. + +2004-08-03 Zack Weinberg + + * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition. + * recog.c (general_operand, immediate_operand, nonmemory_operand) + (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P. + * regclass.c (record_reg_classes): Likewise. + * reload.c (find_reloads): Likewise. + * reload1.c (reload): Likewise. + +2004-08-03 Zack Weinberg + + * gensupport.c (init_md_reader_args_cb): Renamed from + init_md_reader_args. Add third option, callback function for + parsing program-specific options. Add diagnosis of incorrect + number of input files. + (init_md_reader): Fold into init_md_reader_args_cb. + (init_md_reader_args): Now a thin wrapper around + init_md_reader_args_cb. + * gensupport.h: Update prototypes. + + * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c + * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c + * genrecog.c: No need to diagnose lack of an input file; + init_md_reader_args will handle it. + * genconditions.c: Likewise, and use init_md_reader_args. + * genconstants.c: Likewise, and no need to call read_md_rtx. + +2004-08-03 Joseph S. Myers + + * c-decl.c (implicitly_declare): Diagnose incompatible implicit + declarations. + +2004-08-03 Mike Stump + + * config/darwin-c.c: Don't search in "/Local/Library/Frameworks" + for frameworks. + * doc/invoke.texi (Darwin Options): Update to reflect above. + +2004-08-03 Roger Sayle + + PR middle-end/16790 + * fold-const.c (extract_muldiv_1) : Disallow local + truncations, not just global truncations. + +2004-08-03 Andrew Pinski + + PR bootstrap/16865 + * loop-iv.c (simplify_using_assignment): Initialize lhs. + +2004-08-03 Paul Brook + + * gcc/doc/install.texi: Document MPFR requirement. + +2004-08-03 Maciej W. Rozycki + + * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for + and mmap() explicitly instead of relying on preset autoconf cache + variables. + * configure: Regenerate. + +2004-08-03 H.J. Lu + + PR target/16570 + * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc + to tmake_file. + (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise. + (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc + to tmake_file. + + * config/i386/t-gmm_malloc: New file. + * config/i386/t-pmm_malloc: Likewise. + + * config/i386/xmmintrin.h: Include . + +2004-08-03 H.J. Lu + Tanguy Fautrà + + * config/i386/pmm_malloc.h: New file. + +2004-08-03 Danny Smith + + * config/i386/gmm_malloc.h: New file. + +2004-08-03 Dale Johannesen + + * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs. + * c-common.c: Include opts.h. + (c_common_get_alias_set): Fix check for a single input file. + * toplev.c: Remove current_file_decl. + * tree.h: Ditto. + +2004-08-03 Mark Mitchell + + * config.gcc (arm*-*-symbianelf*): New target. + * config/arm/symbian.h: New file. + + * gthr-gnat.c: Add visibility #pragmas. + * gthr-gnat.h : Likewise. + * gthr.h: Likewise. + * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h. + (__ffsDI2): Likewise. + (__clzSI2): Likewise. + (__ctzSI2): Likewise. + (__ctzDI2): Likewise. + (__popcountSI2): Likewise. + (__popcountDI2): Likewise. + (__paritySI2): Likewise. + (__parityDI2): Likewise. + * libgcc2.h: Add visibility #pragmas. + (__clzDI2): Add prototype. + (__clzSI2): Likewise. + (__ctzSI2): Likewise. + (__ffsDI2): Likewise. + (__ffsSI2): Likewise. + (__ctzDI2): Likewise. + (__popcountSI2): Likewise. + (__popcountDI2): Likewise. + (__paritySI2): Likewise. + (__parityDI2): Likewise. + * unwind-dw2-fde.h: Add visibility #pragmas. + * unwind.h: Likewise. + +2004-08-03 David Edelsohn + Dale Johannesen + Roger Sayle + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of + constants more accurately. Adjust costs for FMA instructions. + Add cases for most logical and float operations. Recurse into + most operands. + +2004-08-03 Richard Earnshaw + + * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files. + +2004-08-03 Pat Haugen + + * ra-build.c (conflicts_between_webs): For webs that cross a call add + conflicts to regs_invalidated_by_call. + +2004-08-03 Paul Brook + + * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment. + +2004-08-03 Jan Hubicka + + * coverage.c (tree_coverage_counter_ref): Fix computation of the new + ARRAY_REF argument. + +2004-08-03 Richard Earnshaw + + * arm-cores.def: Sort by architecture. Add arm946es, arm966es, + arm968es, arm10e, arm1020e, arm1022e. + * invoke.texi: Update list of ARM cores. + * arm-tune.md: Regenerate. + +2004-08-03 Richard Earnshaw + + * arm/gentune.sh: New file. + * arm/t-arm: New file. + * arm/arm-tune.md: New file (autogenerated). + * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants. + * arm.md (attribute tune): Delete. Include arm-tune.md. + +2004-08-03 Paolo Bonzini + + * gcc.c (add_prefix, add_sysrooted_prefix): Remove + penultimate parameter. All callers adjusted. + (struct prefix_list): Remove used_flag_ptr. + (find_a_file): Do not set *pl->used_flag_ptr. + (warn_B, warn_std_ptr): Remove. + +2004-08-03 Yossi Markovich + Mostafa Hagog + + * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern. + +2004-08-02 Geoffrey Keating + + * dwarf2out.c (output_call_frame_info): Don't change data format + due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local + label. Use 'true' not '1'. + * doc/install.texi (powerpc-*-darwin*): Mention cctools version + required. + +2004-08-02 Gabriel Dos Reis + + * gdbinit.in: Reflect previous changes to rtunion_def. + +2004-08-02 Roger Sayle + + * fold-const.c (fold) : The transformation "X % -Y" + -> "X % Y" is only valid for TRUNC_MOD_EXPR. + +2004-08-02 Gabriel Dos Reis + + * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and + vec_p_reserve. + * langhooks.h (lang_hooks::builtin_function): Rename parameter + from "class" to "bt_class". + +2004-08-02 Paul Brook + + PR rtl-optimization/15068 + * flow.c (init_propagate_block_info): Check condition is reversible. + +2004-08-02 Gabriel Dos Reis + + * gengtype.h (options::info): Change type to const char *. + (enum gc_used_enum): Move out of struct type scope. + * gengtype.c (create_option): Convert initializer for option::info to + appropiate type. + (adjust_field_type, walk_type, write_func_for_structure, + write_root, write_roots): Remove pointless cast. + +2004-08-02 J"orn Rennecke + + * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F. + +2004-08-02 Gabriel Dos Reis + + * rtl.h (union rtunion_def): Have all members start with the + prefix "rt_". + (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL, + X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, + X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP, + XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members + access. + * gengtype.c (adjust_field_rtx_def): Likewise. + * rtlanal.c (loc_mentioned_in_p): Likewise. + +2004-08-02 Richard Sandiford + + * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file. + Replace uses of mips/elf64.h with mips/elf.h + * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION) + (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP) + (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS) + (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP) + (HANDLE_SYSV_PRAGMA): Delete. + (ASM_OUTPUT_DEF): Fix formatting. + * config/mips/elf64.h: Delete. + +2004-08-01 Zack Weinberg + + * config/ia64/ia64.c (got_symbolic_operand): Do require a + symbol+offset operand to have its offset be zero mod 0x3fff + when GOT entries are in use. Clarify logic in SYMBOL_REF + case. Clarify comments. + (ia64_expand_load_address): Split a symbol+offset load when + the offset is nonzero mod 0x3fff, not 0x1fff. + +2004-08-01 Geoffrey Keating + + * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort + if trying to *store* to a non-offsettable address. + * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to + a nonoffsettable address. + (movdi_internal32): Don't move GPRs to a nonoffsettable address. + Clean up. + (movti_string): Don't move GPRs to a nonoffsettable address. + (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up. + +2004-08-02 Ben Elliston + + PR target/16155 + * config/rs6000/altivec.h: Replace typeof with __typeof__. + +2004-08-01 Richard Henderson + + * expr.c (expand_expr_real_1) : Fix crash with + variable sized types. + +2004-08-01 Richard Sandiford + + * doc/invoke.texi: In the MIPS options section, remove the passage + saying that -mexplicit-relocs is usually disabled for -mabicalls + -fno-unit-at-a-time. + * config/mips/mips.c (override_options): Remove the code that enforced + this rule. + +2004-08-01 Richard Sandiford + + * config/mips/mips.md (cprestore): Provide two alternatives, one for + an in-range offset and one for an out-of-range offset. Wrap the latter + in .set macro/.set nomacro if it's inside a .set nomacro block. + +2004-08-01 Richard Sandiford + + * config/mips/mips-protos.h (mips_gp_save_slot): Remove. + (mips_restore_gp): Declare. + * config/mips/mips.c (mips_add_offset): Add a scratch register + argument. Reimplement in rtl only, reusing MIPS16 logic from + mips_output_mi_thunk. + (mips_legitimize_address, mips_legitimize_const_move): Adjust calls + to mips_add_offset. + (mips_gp_save_slot): Delete. + (mips_restore_gp): New function. + (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset. + * config/mips/mips.md (exception_receiver): Turn into a + define_insn_and_split. Use mips_restore_gp to do the split. + (call_internal, call_value_internal, call_value_multiple_internal): Use + mips_restore_gp to restore $gp. + +2004-07-31 Andrew Pinski + + PR other/16842 + * mkheaders.in (libsubdir): s/gcc-lib/gcc/. + +2004-07-31 Joseph S. Myers + + * c-decl.c (diagnose_mismatched_decls): Give error for external + redeclaration of identifier declared with no linkage, not just + warning with -Wtraditional. Do not check DECL_CONTEXT to give + error for redeclaration with no linkage. + +2004-07-30 Geoffrey Keating + Fariborz Jahanian + + * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit + non-offsettable addresses even for DImode. + (rs6000_split_multireg_move): Cope with non-offsettable addresses + being moved into multiple GPRs. + + * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default + to 64. + (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE. + * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define + to 128. + * config/rs6000/darwin-ldouble.c (isless): New macro. + (inf): New macro. + (nonfinite): New macro. + (FPKINF): Delete. + (_xlqadd): Completely rewrite. + (_xlqmul): Correct overflow handling. + (_xlqdiv): Correct overflow handling. + * config/rs6000/darwin-ldouble-format: New file. + +2004-07-30 Roger Sayle + Richard Henderson + + * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or + 9 into the equivalent lea instruction. + +2004-07-30 Richard Henderson + + * gimplify.c (gimplify_expr) : Don't replace + with DECL_INITIAL if fb_lvalue. + * tree-gimple.c (is_gimple_id): Add CONST_DECL. + * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL + with . + * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL. + +2004-07-30 Diego Novillo + + * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a + pointer escapes through a function call, assume that the + callee will dereference it. + (add_pointed_to_var): Assume that VALUE is always an + ADDR_EXPR. + (collect_points_to_info_r): Only call add_pointed_to_var if + the value is an ADDR_EXPR. + +2004-07-30 Diego Novillo + + * tree-ssa-alias.c (create_alias_map_for): Do not get the + alias set of the inner type of ARRAY_TYPEs. + +2004-07-29 Diego Novillo + + * tree-ssa-ccp.c (visit_assignment): Move code to prevent + setting a non-register to UNDEFINED right before the call to + set_lattice_value. + +2004-07-29 Kaz Kojima + + * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*. + +2004-07-29 Diego Novillo + + * tree-ssa.c (verify_flow_sensitive_alias_info): When + comparing points-to sets of different pointers, make sure the + second pointer is actually referenced in the code. + +2004-07-29 Zack Weinberg + + * config/ia64/ia64.c (setjmp_operand): Delete, unused. + (got_symbolic_operand): Remove unreachable code. + * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for + setjmp_operand; add entry for tls_symbolic_operand. + * config/ia64/ia64-protos.h: Remove all prototypes of + predicate functions. + +2004-07-29 Mark Mitchell + + * c-common.h (lang_post_pch_load): New variable. + * c-pch.c (lang_post_pch_load): Define it. + (c_common_read_pch): Use it. + * cgraphunit.c (record_call_1): Give the front end a chance to + record additional needed entities when a variable is marked as + needed. + * tlink.c (recompile_files): Robustify. + (scan_linker_output): If a symbol is assigned to a file, + but after recompilation is not present there, issue an error + message. + +2004-07-29 Zdenek Dvorak + + * tree-ssa-loop-im.c (force_move_till_expr, force_move_till): + Take orig_loop argument and pass it to set_level. + (schedule_sm): Pass the correct orig_loop to force_move_till. + +2004-07-29 Zdenek Dvorak + + * cfgloop.c (update_latch_info): Update dominator of the new block. + (canonicalize_loop_headers, flow_loops_find): Do not free dominance + info. + * dominance.c (verify_dominators): Check that the dominance tree is + connected. + (recount_dominator): Ignore unreachable blocks. + (iterate_fix_dominators): Cleanup old dominance information before + recomputing it. + +2004-07-29 Diego Novillo + + * tree-ssa-operands.c (get_expr_operands): Revert changes + to ADDR_EXPR processing introduced by: + 2004-06-21 Richard Kenner + * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. + +2004-07-29 Joseph S. Myers + + * doc/implement-c.texi: Add C90 subclause references. Point to + preprocessor documentation instead of duplicating it. Add points + only present in C90. Fill in documentation for all points. + +2004-07-29 John David Anglin + + * pa.c (output_movb): Correct typo. + +2004-07-29 Pat Haugen + + * ra.h (single_reg_in_regclass): Declare. + * ra.c (single_reg_in_regclass): Define. + (first_hard_reg): New. + (init_ra): Initialize single_reg_in_regclass. + * ra-colorize.c (ok_class): New. + (coalesce, aggressive_coalesce, extended_coalesce_2): Use it. + +2004-07-29 Nathan Sidwell + + * gcov-io.h: Allow zero tag as EOF indicator. + (gcov_is_eof): Remove. + (gcov_truncate): Remove. + * gcov-io.c (gcov_seek): Always SEEK_SET. + * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit + EOF tag. + * coverage.c (read_counts_file): Don't use gcov_is_eof. + * gcov-dump.c (dump_file): Likewise. + * gcov.c (read_graph_file, read_count_file): Likewise. + + * c-decl.c (complete_array_type): Don't gratuitously copy + maxindex. Check it always has a type. + +2004-07-29 Steven Bosscher + + * rtl.c (currently_expanding_to_rtl): New. + * rtl.h (currently_expanding_to_rtl): Export it. + * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit. + + * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL + inliner hack. + * config/sh/sh.c: Replace rtx_equal_function_value_matters + with currently_expanding_to_rtl. + * config/sh/sh.md: Likewise. + * config/ia64/ia64.c (got_symbolic_operand): Likewise. + +2004-07-29 Alexandre Oliva + + Introduce sh2a support. + 2004-07-29 Alexandre Oliva + * config.gcc: Build multilibs for sh2a and sh2a-single by + default. + * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by + default. Split their tests out of the corresponding SH4 + multilibs. + * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a + multilibs for SH2a. + 2004-07-28 Alexandre Oliva + * config.gcc: Handle sh2a multilibs and cpu selection. + * config/sh/sh.h: Likewise. Handle sh2a command line flags. + * config/sh/t-mlib-sh2a: New. + * config/sh/t-mlib-sh2a-nofpu: New. + * config/sh/t-mlib-sh2a-single: New. + * config/sh/t-mlib-sh2a-single-only: New. + 2004-07-09 Nick Clifton + Issue 43400 + * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if + -ml and -m2a are used together. + 2004-03-23 DJ Delorie + * config/sh/sh.c (sh_builtin_saveregs): Use the double code only + when we have a double-sized FPU. + 2004-02-24 Corinna Vinschen + * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__ + is set. + * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu, + -msh2a-single and -msh2a-single-only + 2004-02-24 Corinna Vinschen + * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__ + is set. + 2004-02-20 DJ Delorie + * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu. + 2004-02-20 Fred Fish , + Corinna Vinschen + * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu. + (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a. + 2004-02-18 DJ Delorie + * config/sh/sh.c (broken_move): Add support for movi20. + * config/sh/sh.h: Likewise. + (SHIFT_COUNT_TRUNCATED): Set for sh2a. + * config/sh/sh.md (udivsi3_sh2a): New. + (udivsi3): Call it. + (divsi3_sh2a): New. + (divsi3): Call it. + (mul_r): New. + (ashlsi3_sh2a): New. + (ashrsi3_sh2a): New. + (lshrsi3_sh2a): New. + (movsi_i): Disable for sh2a. + (movsi_ie): Add movi20. + (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable + sh2a, for -m2a-nofpu mode. + 2004-02-13 DJ Delorie + * config/sh/lib1funcs.asm: Handle double vs single better. + * config/sh/sh.h: Likewise. + 2004-02-09 DJ Delorie + * config/sh/crt1.asm: Add support for sh2a. + * config/sh/elf.h: Likewise. + * config/sh/lib1funcs.asm: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.md: Likewise. + * config/sh/sh.h: Likewise. + * config/sh/t-sh: Likewise. + +2004-07-28 Alexandre Oliva + + * config/frv/frv.md (movqi_internal, movhi_internal, + movsi_internal): Add backup alternatives for memory inputs. + +2004-07-28 Matt Austern + + * config/darwin.c (darwin_one_byte_bool): New global variable. + * config/darwin.h (darwin_one_byte_bool): Declare. + (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.) + * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on + value of darwin_one_byte_bool. + * doc/invoke.texi: Document -mone-byte-bool flag. + +2004-07-28 Eric Christopher + + * c-common.c (c_common_unsafe_for_reeval): Delete. + * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use. + * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case. + * calls.c (fix_unsafe_tree): Delete. + (expand_call): Delete code which used above. + * dojump.c (do_jump): Delete UNSAVE_EXPR case. + * expr.c (expand_expr_real_1): Ditto. + * fold-const.c (non_lvalue): Ditto. + * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. + (lhd_unsafe_for_reeval): Ditto. + * langhooks.c (lhd_unsafe_for_reeval): Ditto. + * langhooks.h (unsafe_for_reeval): Ditto. + (unsave_expr_now): Adjust comment. + * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits. + (estimate_num_insns_1): Ditto. + * tree-pretty-print.c (dump_generic_node): Ditto. + * tree.c (expr_align): Ditto. + (unsave_expr): Delete. + (unsafe_for_reeval): Ditto. + * tree.h (unsafe_for_reeval, unsave_expr): Ditto. + * tree.def (UNSAVE_EXPR): Delete. + * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. + +2004-07-28 Zack Weinberg + + * tree.h (enum tls_model): Move ... + * coretypes.h: ... here. + +2004-07-28 Richard Sandiford + + * config/frv/frv.h (EPILOGUE_USES): New. Use LR. + +2004-07-28 Richard Sandiford + + * cse.c (validate_canon_reg): New function, split out from... + (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'. + +2004-07-28 Diego Novillo + + * tree-ssa-alias.c (maybe_create_global_var): Don't just + return if .GLOBAL_VAR has been created. + +2004-07-28 Diego Novillo + + * tree-ssa.c (verify_flow_insensitive_alias_info): Process + every variable that may have aliases, not just tags. + +2004-07-28 Aldy Hernandez + + * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to + move_from_CR_eq_bit. + Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ. + + + * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to + e500_flip_eq_bit. + + * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to + output_e500_flip_eq_bit. + + * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to + output_e500_flip_eq_bit. + (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to + output_e500_flip_eq_bit. + Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit. + (print_operand): case D. Get to EQ bit. + +2004-07-28 Richard Sandiford + + * gcov.c (function_summary): Add missing \n. + +2004-07-28 Alexandre Oliva + + Introduce sh4a support. + * config.gcc: Handle sh4a multilibs and cpu selection. + * config/sh/sh.h: Likewise. Handle sh4a command line flags. + * config/sh/t-mlib-sh4a: New. + * config/sh/t-mlib-sh4al: New. + * config/sh/t-mlib-sh4a-nofpu: New. + * config/sh/t-mlib-sh4a-single: New. + * config/sh/t-mlib-sh4a-single-only: New. + 2004-02-20 DJ Delorie + * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua". + * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support. + 2003-08-22 Eric Christopher + * config/sh/sh4a.md: Update for chip errata. + 2003-08-07 Eric Christopher + * config/sh/sh4a.md: New file. sh4a processor description. + 2003-07-08 Alexandre Oliva + * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description + of -m4a-nofpu. + (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu. + * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu. + * doc/invoke.texi (SH Options): Document -m4al. + 2003-07-03 Alexandre Oliva + * config/sh/sh.c (expand_block_move): Remove commented-out code + checked in by mistake. + (sh_cannot_change_mode_class): Enable SUBREGs to be used to select + single elements from SFmode vectors. + * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output + register. + (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER. + 2003-07-01 Alexandre Oliva + * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): Remove variable declarations. + * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): New functions. + (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx, + sh_fsca_int2sf_rtx): New static variables. + * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): Declare. + * config/sh/sh.md: Adjust. + * doc/invoke.texi (SH Options): Document new options. + * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward + compatibility from SH4 code. + 2003-06-27 Alexandre Oliva + * config/sh/sh.c (expand_block_move): Don't emit POST_INC too + early. + (memory_movsrc_operand): Renamed to... + (unaligned_load_operand): ... this. Simplified. + * config/sh/sh.h (PREDICATE_CODES): Adjust. + * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's + input operand to SImode, and adjust the others. Introduce + post-increment by peephole. + * config/sh/sh.c (expand_block_move): Give the target address the + same mode as the temp reg. + * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned + copying. + 2003-06-26 Alexandre Oliva + Introduce support for SH4a. + * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if + __SH4A__. Emit 4 4kb blocks and touch all of them otherwise. + * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, + sh_fsca_int2sf): New. + (sh_init_builtins): Initialize them. + (print_operand): Support `d'. + (expand_block_move): Use movua if src is misaligned. + (memory_movsrc_operand): New. + * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__ + and one of the SH4 macros. + (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP, + SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A, + SELECT_SH4A_SINGLE): New. + (TARGET_NONE): Add SH4A_BIT. + (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a. + (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu. + (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare. + (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate. + (enum processor_type): Added PROCESSOR_SH4A. + (PREDICATE_CODES): Add memory_movsrc_operand. + * config/sh/sh.md: Removed unused variables. + (attr cpu): Add sh4a. + (attr type): Add movua, fsrra and fsca. + (prefetch): New, for SH4. + (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi. + (toggle_sz): Set type to fp. + (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New. + (movua, extv, extzv): New. + * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single + and 4a-single-only. + +2004-07-28 Diego Novillo + + * tree-optimize.c (init_tree_optimization_passes): Schedule + pass_may_alias right after the program is renamed into SSA. + * tree-pass.h (PROP_alias): Define. + * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias. + * tree-sra.c (pass_sra): Likewise. + * tree-ssa-ccp.c (pass_ccp): Likewise. + * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise. + * tree-ssa-dce.c (pass_dce): Likewise. + * tree-ssa-dom.c (pass_dominator): Likewise. + * tree-ssa-dse.c (pass_dse): Likewise. + * tree-ssa-forwprop.c (pass_forwprop): Likewise. + * tree-ssa-loop-ch.c (pass_ch): Likewise. + * tree-ssa-phiopt.c (pass_phiopt): Likewise. + * tree-ssa-pre.c (pass_pre): Likewise. + * tree-tailcall.c (pass_tail_recursion): Likewise. + * tree-ssa.c (pass_redundant_phi): Likewise. + * tree-ssa-alias.c (aliases_computed_p): Remove. + Update all users. + (init_alias_info): Do not mark all type tags for renaming + unconditionally. + Clear may_aliases from every symbol. + (setup_pointers_and_addressables): If a pointer has not been + dereferenced and it had a type tag, clear it and mark the old + tag for renaming. + +2004-07-28 Diego Novillo + + PR tree-optimization/16705 + * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on + .GLOBAL_VAR. + +2004-07-27 Richard Kenner + + * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error + check. + + * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR, + don't make another one. + + PR optimization/15077 + * function.h (struct function): Add field saved_static_chain_decl. + Fix comment for static_chain_decl. + * tree-inline.c (save_body): Add new arg and handle static_chain_decl. + * tree-inline.h (save_body): Add new arg. + * tree-optimize.c (tree_rest_of_compilation): Handle saving + static_chain_decl. + +2004-07-27 Richard Henderson + + * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove. + (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use + is_gimple_addressable. + * tree-gimple.c (is_gimple_addressable): Rename from + is_gimple_addr_expr_arg; accept INDIRECT_REF. + (is_gimple_lvalue): Don't test INDIRECT_REF directly. + * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for + rename to is_gimple_addressable. + +2004-07-28 Alan Modra + + * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards. + +2004-07-27 Richard Henderson + + * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT + before rounding. + +2004-07-27 Zack Weinberg + + * libgcc2.c: Change all conditionals testing + LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80. + * libgcc2.h: Likewise. + * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set + TYPE_PRECISION of float80_type to 80. + * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION + of fpreg_type and float80_type to 80. + * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h + * config/m68k/netbsd-elf.h: + Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE + to evaluate to 80 whenever they would formerly have evaluated to 96. + * config/i386/sco5.h: Remove unnecessary redefinition of + LONG_DOUBLE_TYPE_SIZE. + * doc/rtl.texi: Clarify uses of XFmode and TFmode. + * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for + XFmode, with a bitsize of 80. Update commentary. + * config/ia64/ia64-modes.def: Likewise. + * config/m68k/m68k-modes.def: Likewise. + +2004-07-27 Steven Bosscher + + * cfgexpand.c (tree_expand_cfg): Fix comment. + + * calls.c (expand_call): Ignore rtx_equal_function_value_matters. + * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets): + Remove. + (prepare_function_start): Don't set rtx_equal_function_value_matters. + * integrate.c (copy_rtx_and_substitute): Don't test for it. + * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets. + Don't set rtx_equal_function_value_matters. Don't register RTL hooks + here again. Update leading comment. + * rtl.c (rtx_equal_function_value_matters): Remove. + (rtx_equal_p): Don't test for it. + * simplify-rtx.c (simplify_binary_operation, simplify_subreg): + Likewise. + + * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND. + * rtl.c (note_insn_name): Likewise. + * emit-rtl.c (remove_unnecessary_notes): Don't handle it. + * final.c (final_scan_insn): Likewise. + + * except.c (finish_eh_generation): Don't call cfg_cleanup from here. + * passes.c (rest_of_handle_eh): Do it here. + + * stmt.c (struct nesting): Remove struct nesting block member. + (struct stmt_status): Remove x_block_start_count field. + (current_block_start_count): Remove. + +2004-07-27 Brian Booth + + * tree-optimize.c (register_one_dump_file): Update condition that uses + static_pass_number. + (dup_pass_1): Replace with... + (next_pass_1): This. + (NEXT_PASS): Call next_pass_1. + (DUP_PASS): Remove. + (init_tree_optimization_passes): Remove uses of DUP_PASS. + (execute_one_pass): Update condition that uses + static_pass_number. + * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed + integer. + +2004-07-27 Nick Clifton + + * config/m32r/m32r.c: Include integrate.h in order to get the + prototype for get_hard_reg_initial_val(). + + * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r" + and tidy up indentation. + (final_presence_set): Use absence_set instead, so that if there is + nothing in the "o" pipe the "s" pipe can be scheduled. + +2004-07-27 Diego Novillo + + * tree-ssa-alias.c (create_name_tags): Ignore pointers that + don't have PT_VARS nor PT_MALLOC set. + Clear name tag from pointers that have not been dereferenced. + (set_pt_anything, set_pt_malloc): Forward declare. + * tree-ssa-copy.c (may_propagate_copy): Compare alias sets, + not type compatibility when determining if a pointer can be + copy propagated. + +2004-07-27 Richard Sandiford + + * expr.h (canonicalize_condition, get_condition): Add an int argument. + * gcse.c (fis_get_condition): Reimplement using get_condition, leaving + it to check whether the condition is still valid at the jump insn. + * ifcvt.c (noce_get_condition): Likewise. + (noce_get_alt_condition): Update call to canonicalize_condition. + * loop-iv.c (simplify_using_initial_values): Update call to + get_condition. Remove FIXME. + (check_simple_exit): Update call to get_condition. + * loop-unswitch.c (may_unswitch_on): Likewise. + * loop.c (check_dbra_loop): Likewise. + (canonicalize_condition, get_condition): Add an argument to say whether + the condition must still be valid at INSN. + (get_condition_for_loop): Update call to get_condition. Require that + the condition be valid at INSN. + * predict.c (estimate_probability): Update call to get_condition. + Remove unused earliest parameter. + (expected_value_to_br_prob): Update call to canonicalize_condition. + +2004-07-26 Eric Christopher + + * tree-dfa.c (add_referenced_var): Register initializers of global + variables. + +2004-07-26 Paolo Bonzini + + * config/i386/i386.c (function_arg): Always treat 8- + and 16-byte wide vectors the same, even if MMX/SSE + are disabled. + (contains_128bit_aligned_vector_p): Add comment. + +2004-07-26 J"orn Rennecke + + * ra.h (enum node_type): Rename to: + (enum ra_node_type). + * ra-colorize.c: Likewise. + +2004-07-26 Richard Sandiford + + * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag + after simplifying the jump. + +2004-06-26 Richard Henderson + + * calls.c (combine_pending_stack_adjustment_and_call): Make + preferred_unit_stack_boundary argument unsigned. Make + unadjusted_alignment unsigned. + (expand_call): Make preferred_stack_boundary and + preferred_unit_stack_boundary variables unsigned. + * function.c (assign_stack_local_1): Make alignment unsigned. + * function.h (struct function): Make stack_alignment_needed, + preferred_stack_boundary unsigned. + * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned. + (ix86_compute_frame_layout): Make stack_alignment_needed, + preferred_alignment variables unsigned. + * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned. + +2004-07-26 Tom Tromey + + * tree.h: Fix typo in comment. + +2004-07-26 Daniel Jacobowitz + + PR bootstrap/12804 + * ggc-zone.c (struct alloc_chunk): Remove attribute packed. + (MAX_FREE_BIN_SIZE): Increase on 64-bit targets. + (ggc_free): Remove incorrect freeing. + (sweep_pages): Advance PP for large pages. Fix indentation. + +2004-07-26 Richard Sandiford + + PR rtl-optimization/16643 + * cfglayout.h (cfg_layout_initialize): Add a flags parameter. + * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg. + * basic-block.h (reorder_basic_blocks): Add a flags parameter. + * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize. + (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize. + * function.c (thread_prologue_and_epilogue_insns): Likewise. + * rtl.h (tracer): Add a flags parameter. + * tracer.c (tracer): Pass it to cfg_layout_initialise. + * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks. + (rest_of_handle_reorder_blocks): Update calls to tracer and + reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate. + (rest_of_handle_tracer): Pass 0 to tracer. + (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize. + +2004-07-25 David Edelsohn + + PR target/16239 + * config/rs6000/rs6000.md (movdi_internal64): Further disparage + f->f. + +2004-07-24 Nathan Sidwell + + * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree). + (BINFO_BASE_ACCESS): Adjust. + (BINFO_BASE_ACCESS_APPEND): New. + (struct tree_binfo): Make base_accesses a VEC(tree) pointer. + * dbxout.c (dbxout_type): Adjust binfo access accessing. + * dwarf2out.c (gen_member_die): Likewise. + * tree-dump.c (deque_and_dump): Likewise. + +2004-07-26 Falk Hueffner + + * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div + costs. + +2004-07-25 Roger Sayle + + * config/i386/i386.c (output_fp_compare): Use ffreep to pop top + value off of the stack if TARGET_USE_FFREEP. + +2004-07-26 Bernardo Innocenti + + * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC (). + * gengtype-yacc.y: Likewise. Replace free() with XDELETE (). + * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer + check on invocation of XRESIZEVEC (). + +2004-07-26 Bernardo Innocenti + + * c-common.c (disable_builtin_function): Rename variable n to + new_disabled_builtin. + * c-decl.c (duplicate_decls): Rename parameter decl to new_decl. + Rename local variable old to old_decl. + * gensupport.c (shift_output_template): Rename parameter old to src. + * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to + old_rtx and newx to new_rtx. + +2004-07-26 Bernardo Innocenti + + * Makefile.in (C_PRAGMA_H): New variable to track dependencies + of c-pragma.h. + * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to + enum cpp_ttype. + * c-lex.c: Likewise. + +2004-07-25 Roger Sayle + + * fold-const.c (constant_boolean_node): Make extern. + (make_range): Wrap long lines. + (fold_cond_expr_with_comparison): Remove unnecessary call to + pedantic_non_lvalue. Add missing calls to fold_convert. + (fold_truthop): Add missing calls to fold_convert. + (fold): Likewise. + * tree.h (constant_boolean_node): Add prototype here. + * builtins.c (expand_builtin_strncmp): Add missing calls to + fold_convert. + * tree-ssa-dom.c (record_equivalences_from_incoming_edge): + Call fold_convert and constant_boolean_node to correct types. + * tree-ssa-forwprop.c (substitute_single_use_vars): Add + missing call to fold_convert to correct types. + +2004-07-26 Niall Douglas + Brian Ryner + + PR c++/9283 + PR c++/15000 + * c-common.c (c_common_attribute_table): Allow + handle_visibility_attribute to be called for types. + (handle_visibility_attribute) When given a type, set the visibility + bits on the TYPE_NAME. When given a decl, don't set no_add_attrs + so that we can check later whether the attribute was present. Added + warning if attribute applied to non class type. + * c-decl.c (diagnose_mismatched_decls): Updated rules for merging + decls and checking that they are consistent. + * common.opt: Added -fvisibility. + * c.opt, c-opts.c: Added -fvisibility-inlines-hidden. + * c-pragma.h, c-pragma.c: Added handle_pragma_visibility(). + * flags.h, tree.h: Added assorted support defines for overall patch + * opts.c: Added parsing support for -fvisibility. + * tree.c (build_decl): Set visibility for all decls to be whatever + is in force at that time. + * varasm.c (default_binds_local_p_1): Reworked logic determining + when to make a symbol locally bound. + * doc/invoke.texi: Added documentation for -fvisibility and + -fvisibility-inlines-hidden. + +2004-07-25 Bernardo Innocenti + + * basic-block.h (reorder_block_def): Rename to reorder_block_def_p. + * c-common.c: Add missing casts from void * to other types. + * c-decl.c: Likewise. + * c-format.c: Likewise. + * c-lex.c: Likewise. + * c-pragma.c: Likewise. + * c-typeck.c: Likewise. + * defaults.h: Likewise. + * genconstants.c: Likewise. + * gengtype-lex.l: Likewise. + * genmodes.c: Likewise. + * read-rtl.c: Likewise. + * rtl.c: Likewise. + +2004-07-25 Bernardo Innocenti + + * bitmap.c: Use type-safe memory allocation macros from libiberty. + * c-common.c: Likewise. + * c-decl.c: Likewise. + * c-lang.c: Likewise. + * c-lex.c: Likewise. + * c-opts.c: Likewise. + * c-parse.in: Likewise. + * c-typeck.c: Likewise. + * genconditions.c: Likewise. + * gengtype-lex.l: Likewise. + * gengtype-yacc.y: Likewise. + * gengtype.c: Likewise. + * genmodes.c: Likewise. + * gensupport.c: Likewise. + * read-rtl.c: Likewise. + * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to + htab_find_slot(). + +2004-07-25 Bernardo Innocenti + + * c-decl.c (groktypename, groktypename_in_param_context): Rename + variable typename to type_name. + * c-lex.c (interpret_float): Likewise. + +2004-07-25 Roger Sayle + + * convert.c (convert_to_real, convert_to_integer, + convert_to_complex): Replace calls to build with calls to buildN. + * coverage.c (tree_coverage_counter_ref): Likewise. + * dojump.c (do_jump): Likewise. + * dwarf2out.c (loc_descriptor_from_tree): Likewise. + * emit-rtl.c (component_ref_for_mem_expr, + set_mem_attributes_minus_bitpos): Likewise. + * explow.c (update_nonlocal_goto_save_area): Likewise. + * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p, + expand_mult_add): Likewise. + * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall, + store_constructor, get_inner_reference, expand_expr_real_1, + try_casesi, try_tablejump): Likewise. + * function.c (expand_function_start): Likewise. + * stmt.c (emit_case_bit_tests, expand_end_case_type, + node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise. + * stor-layout.c (place_union_field, layout_type): Likewise. + * tree.c (substitute_in_expr, tree_fold_gcd): Likewise. + * varasm.c (copy_constant): Likewise. + +2004-07-25 Bernardo Innocenti + + * c-common.c: Rename all identifiers named `new'. + * c-decl.c: Likewise. + * gensupport.c: Likewise. + * simplify-rtx.c: Likewise. + * c-common.c (disable_builtin_function): Replace a call to xmalloc() + with XNEW(). + * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc() + with XNEWVEC(). + +2004-07-25 Joseph S. Myers + + PR c/15360 + * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized + declarations until after calling pushdecl. + (grokdeclarator): Set DECL_EXTERNAL for variables based on use of + "extern" and not on whether the declaration is initialized. + +2004-07-25 Daniel Jacobowitz + + * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) + (sparc-*-solaris2*): Include sol2.o and sol2-protos.h. + * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h", + "cpplib.h", "c-pragma.h", "c-common.h". + (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini) + (solaris_register_pragmas): New functions. + * config/sol2-protos.h: New file. + * config/sol2.c: New file. + * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE) + (REGISTER_TARGET_PRAGMAS): New macros. + (solaris_pending_aligns, solaris_pending_inits) + (solaris_pending_finis): New variables. + * config/t-sol2 (sol2-c.o): Update dependencies. + (sol2.o): New rule. + * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of + SUBTARGET_INSERT_ATTRIBUTES. + (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE. + * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) + (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. + * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. + * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. + * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) + (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. + * config/sparc/sparc.c (sparc_attribute_table): New. + (TARGET_INSERT_ATTRIBUTES): Define in terms of + SUBTARGET_INSERT_ATTRIBUTES. + (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE + is defined. + * doc/extend.texi (Solaris Pragmas): New section. + +2004-07-25 Bernardo Innocenti + + * c-common.c: Rename all identifiers named `class' to `cl'. + * c-common.h: Likewise. + * c-parse.in: Likewise. + * c-typeck.c: Likewise. + * genmodes.c: Likewise. + * real.c: Likewise. + * real.h: Likewise. + * recog.c: Likewise. + * recog.h: Likewise. + * regrename.c: Likewise. + * tree.h: Likewise. + * c-common.c (builtin_function_2): Change type of 5th parameter from + int to enum built_in_function. Change type of 8th parameter from int + to bool. + * c-decl (builtin_function): Replace call to ggc_alloc_cleared () + with GGC_CNEW(). + * c-typeck.c (convert_arguments): Change type of formal_prec from + int to unsigned int. + * genmodes.c (blank_mode): Make a few negative constants unsigned. + (complete_all_modes, calc_wider_mode, emit_insn_modes_h, + emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size, + emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner, + emit_mode_base_align, emit_class_narrowest_mode): Pass an integer + iterator to for_all_modes () instead of an enum because enums can't + be incremented in C++. + + +2004-07-25 Daniel Jacobowitz + + * regmove.c (optimize_reg_copy_1): Don't try to replace call-used + hard registers. + +2004-07-25 Richard Kenner + + * tree-ssa-operands.c (get_stmt_operands, get_expr_operands): + Handle ARRAY_RANGE_REF like ARRAY_REF. + +2004-07-25 Joseph S. Myers + + * c-typeck.c (digest_init): Don't allow arrays of signed or + unsigned variants of wchar_t to be initialized by wide string + constants. Do allow arrays of enumerated types compatible with + wchar_t to be initialized by wide string constants. Refine tests + distinguishing wide and narrow strings and arrays. Give specific + error for arrays of other integer types initialized by string + constants. + (output_init_element, process_init_element): Check for + INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when + initializing with string constants. + +2004-07-25 Richard Henderson + + * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P + on the RESULT_DECL. + * cgraphunit.c (cgraph_build_static_cdtor): Likewise. + * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and + DECL_IGNORED_P to new decl. + +2004-07-24 Zack Weinberg + + * config/ia64/ia64.c (general_xfmode_operand) + (destination_xfmode_operand): Delete. + * config/ia64/ia64.h (PREDICATE_CODES): Remove them. + * config/ia64/ia64.md (*movxf_internal): Use general_operand + and destination_operand. + +2004-07-24 Alexander Kabaev + + * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing. + (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS. + +2004-07-24 Alexander Kabaev + Zack Weinberg + + * tree.h (staticp): Change return type to bool. + +2004-07-25 Bernardo Innocenti + + * c-common.c (c_staticp): Last episode of the staticp saga. + +2004-07-25 Bernardo Innocenti + + * c-common.h (c_staticp): Change return type from int to bool. + * tree.c (staticp): Likewise. + * langhooks.h (staticp): Likewise. + +2004-07-25 Bernardo Innocenti + + * langhooks-def.h (lhd_staticp): Change return type from int to + bool in prototype to match definition. + +2004-07-25 Bernardo Innocenti + + * system.h (bool, true, false): Don't redefine as preprocessor macros + in C++. + +2004-07-24 Roger Sayle + + * expmed.c (init_expmed): A signed modulus by a power of two is + considered cheap if its less than or equal to four instructions. + +2004-07-25 Bernardo Innocenti + + * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, + GGC_CNEWVAR): New macros. + +2004-07-25 Bernardo Innocenti + + * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter + lists. + * c-decl.c: Likewise. + * c-format.c: Likewise. + * c-lex.c: Likewise. + * c-opts.c: Likewise. + * c-pragma.c: Likewise. + * c-typeck.c: Likewise. + * gencheck.c: Likewise. + * genconditions.c: Likewise. + * genconfig.c: Likewise. + * genflags.c: Likewise. + * gengtype.c: Likewise. + * gensupport.c: Likewise. + * ggc-none.c: Likewise. + * langhooks.c: Likewise. + * statistics.h: Likewise. + * stub-objc.c: Likewise. + * java/decl.c: Likewise. + +2004-07-24 Roman Zippel + + * config/m68k/m68k.c (output_scc_di): Fix coding style. + (symbolic_operand): Fix prototype. + * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand. + * config/m68k/m68k.md: Add constants for registers a0 and sp and + use them, change from the "{...}" syntax to the simpler {...} + syntax. + (*cfv4_extendqisi2): Fix destination predicate. + * config/m68k/m68k-protos.h: Remove various declarations also + generated via PREDICATE_CODES. + +2004-07-23 Mike Stump + + * c-typeck.c (convert_for_assignment): Tightened up pointer + converstions that differ in signedness. + +2004-07-23 Zack Weinberg + + * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED. + +2004-07-23 Richard Kenner + + * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'. + * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New. + + * gimplify.c (gimplify_compound_lval): Check for no handled + operations, rather than checking for explicit list of nodes. + (is_gimple_addr_expr_arg_or_indirect): New function. + (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove + redundant setting of TREE_INVARIANT. + (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval. + * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p. + +2004-07-23 Diego Novillo + + PR tree-optimization/16688 + PR tree-optimization/16689 + * tree-ssa-alias.c (setup_pointers_and_addressables): Remove + unnecessary initialization of 'tag'. + (get_tmt_for): Check that the new type tag has the same alias + set as the pointed-to type. + (group_aliases): Only regular variables need to be removed + from the alias set of a name tag. + * tree-ssa-copy.c (may_propagate_copy): Do not allow copy + propagation if the two types are not compatible. + (merge_alias_info): Rename from replace_ssa_names_ann. + Add more checking. + (replace_exp_1): If both arguments are SSA_NAMEs, check that + the propagation can be done. + Only call merge_alias_info on pointers. + (propagate_value): Likewise. + * tree-ssa-copyrename.c: Include langhooks.h. + (copy_rename_partition_coalesce): Call replace_ssa_name_symbol + to do the merging. + Do not coalesce variables with incompatible types. + (rename_ssa_copies): Call replace_ssa_name_symbol. + * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has + the same type as the underlying _DECL. + * tree-ssanames.c (replace_ssa_name_symbol): New function. + * tree.h (replace_ssa_name_symbol): Declare. + +2004-07-23 Richard Henderson + + PR c++/16277 + * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval; + unshare it properly. + (gimplify_modify_expr_rhs): Push assignment from a conditional into + the conditional for all non-register types. + +2004-07-23 Richard Henderson + + * expr.c (expand_expr_real_1): Don't handle non-local variables. + * expr.h (fix_lexical_addr): Remove. + * function.c (NEED_SEPARATE_AP): Remove. + (fix_lexical_addr): Remove. + * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC, + not null decl_function_context. + (create_alias_vars): Likewise. + * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels. + (simple_goto_p): Likewise. + * tree-dfa.c (add_referenced_var): Don't check for non-local variables. + * tree-ssa-ccp.c (get_default_value): Likewise. + * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. + * tree.c (needs_to_live_in_memory): Likewise. + * tree-flow-inline.h (may_be_aliased): Move... + * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for + when TREE_STATIC variables may be addressable. + +2004-07-24 Jakub Jelinek + + * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp. + +2004-07-23 Zack Weinberg + + * print-rtl.c (print_rtx ): Don't attempt to print + bitmap contents if GENERATOR_FILE is defined. + * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o. + ($(BUILD_PREFIX_1)bitmap.o): Delete rule. + +2004-07-23 Joseph S. Myers + + * c-decl.c (start_function): Form composite type of function types + rather than copying type from previous prototype declaration. + +2004-07-23 Janis Johnson + + * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove + the const qualifier for the second argument in the C++ functions. + + * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use + specific pointer types. + + * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm, + vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used + for vector bool and/or vector pixel, add C++ and C missing support. + (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh, + vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh, + vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum, + vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws, + vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add + missing C++ and C support for vector bool and/or vector pixel. + (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw, + vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw, + vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw, + vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub, + vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix + C++ and C types used for vector bool and/or vector pixel. + (vec_st, vec_stl): Add C++ support for vector pixel. + (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool. + (vec_all_ne): Add C++ support for vector pixel. + + * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name. + (vec_vmulesb): Add missing C++ function. + (vec_perm): Fix type of third argument in C++ function. + (vec_vsum4shs): Fix C++ function name. + (vec_any_ge): Remove C++ functions for unsupported arg combinations. + (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the + argument passed to the error handler in C macro. + (vec_nmsub): Remove extra parens around argument names in C macro. + (vec_packpx): Add missing parens in C macro. + +2004-07-22 Paolo Bonzini + + * machmode.def: Remove vector modes. + * config/alpha/alpha-modes.def: Add supported vector modes. + * config/arm/arm-modes.def: Likewise. + * config/frv/frv-modes.def: Likewise. + * config/i386/i386-modes.def: Likewise. + * config/rs6000/rs6000-modes.def: Likewise. + * config/sh/sh-modes.def: Likewise. + +2004-07-23 Matthias Klose + + * intl.c (gcc_init_libintl): Use PACKAGE for the text domain. + * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE. + * config.h: Regenerate. + * configure: Likewise. + +2004-07-22 Mark Mitchell + + * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on + generated SYMBOL_REFs for labels. + * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr): + Change prototype. + (machopic_stub_name): Remove. + (machopic_indirection_name): New function. + (machopic_mcount_stub_name): Likewise. + (machopic_classify_name): Remove. + (machopic_function_base_sym): New function. + (machpoic_classify_symbol): Likewise. + (machopic_classify_ident): Remove. + (machopic_define_ident): Likewise. + (machopic_define_name): Likewise. + (machopic_name_defined_p): Likewise. + (machopic_ident_defined_p): Likewise. + (darwin_strip_name_encoding): Likewise. + (machopic_define_symbol): New function. + * config/darwin.c (hashtab.h): Include. + (machopic_defined_list): Remove. + (machopic_classify_ident): Likewise. + (machopic_classify_name): Likewise. + (machopic_ident_defined_p): Likewise. + (machopic_define_ident): Likewise. + (machopic_define_name): Likewise. + (machopic_symbol_defined_p): New function. + (machopic_classify_symbol): Likewise. + (machopic_data_defined_p): Use machopic_classify_symbol. + (machopic_define_symbol): New function. + (machopic_function_base_sym): New function. + (machopic_non_lazy_pointers): Remove. + (machopic_non_lazy_ptr_name): Likewise. + (machopic_stubs): Likewise. + (machopic_stub_name): Likewise. + (NON_LAZY_POINTER_SUFFIX): New macro. + (STUB_SUFFIX): Likewise. + (machopic_indirection): New structure. + (machopic_indirections): New variable. + (machopic_indirection_hash): New function. + (machopic_indirection_eq): Likewise. + (machopic_indirection_name): Likewise. + (machopic_mcount_stub_name): New function. + (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use + hash table. + (machopic_indirect_data_reference): Rework to use new functions. + (machopic_indirect_call_target): Likewise. + (machopic_legitimize_pic_address): Likewise. + (machopic_output_indirection): New function. + (machopic_finish): Use it. + (machopic_operand_p): Rework to use new functions. + (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS. + (darwin_strip_name_encoding): Remove. + (update_non_lazy_ptrs): Remove. + (update_stubs): Likewise. + (darwin_non_lazy_pcrel): Use new functions. + * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise. + (ASM_OUTPUT_LABELREF): Likewise. + (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. + (MACHO_SYMBOL_FLAG_VARIABLE): New macro. + (MACHO_SYMBOL_FLAG_DEFINED): Likewise. + (TARGET_STRIP_NAME_ENCODING): Do not use + darwin_strip_name_encoding. + (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use + darwin_strip_name_encoding. + * config/i386/darwin.h (FUNCTION_PROFILER): Use + machopic_mcount_stub_name. + * config/i386/i386.c (x86_output_mi_thunk): Use + machopic_indirection_name, not machopic_stub_name. + * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use + machopic_function_base_sym. + (print_operand): Use machopic_classify_symbol. + (rs6000_emit_prologue): Use machopic_function_base_sym. + (output_profile_hook): Do not use machopic_stub_name. + (macho_branch_isalnds): Do not use darwin_strip_name_encoding. + +2004-07-22 Joseph S. Myers + + PR c/7284 + * fold-const.c (extract_muldiv_1): Do not treat signed left shift + as multiplication. + +2004-07-22 Joseph S. Myers + + * doc/implement-c.texi: New file. + * doc/extend.texi (C Implementation): Move to there. + * doc/gcc.texi: Include implement-c.texi. + * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi. + +2004-07-22 Jason Merrill + + * integrate.c (copy_decl_for_inlining): Remove invisible reference + handling. + * tree-inline.c (setup_one_parameter): Likewise. + +2004-07-22 Brian Booth + + * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL. + (substitute_and_fold): Propigate into VUSE operands when possible. + (visit_phi_node): Handle UNKNOWN_VAL latticevalue. + (cp_lattice_meet): Handle merging of latticevalues when + UNKNOWN_VAL is present. + (visit_stmt): Visit assignments with V_MUST_DEFs. + (visit_assignment): Gather ccp information for V_MUST_DEF operands. + (ccp_fold): Deal with RHS' that are constant and virtual. + (evaluate_stmt): Handle UNKNOWN_VAL likely values. + (dump_lattice_value): Dump UNKNOWN_VAL latticevalues. + (initialize): Mark statements with V_MUST_DEFs as VARYING only if the + V_MUST_DEF operand is VARYING. Fix comment and include VOPS when + computing immediate uses. + (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state + transition. + (replace_vuse_in): New function. + (likely_value): Add check of vuse operands. + (get_default_value): Set the default value of virtually defined + variables to UKNOWN_VAL instead of VARYING. + +2004-07-22 Richard Henderson + + * expr.c (emit_push_insn): Don't use set_mem_attributes. + +2004-07-22 Richard Henderson + + * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used + variables due to conditional compilation. + +2004-07-22 Diego Novillo + + * tree-into-ssa.c (set_livein_block): Fix typo in comment. + (rewrite_ssa_into_ssa): Start iterating over SSA names at 1. + Release SSA names that have been re-renamed. + * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the + variable. + * tree-ssa-alias.c (init_alias_info): If aliases have been + computed before, clear existing alias information. + (create_name_tags): Do no fixup PT_ANYTHING pointers. + If the new name tag for a pointer is different than the one it + had before, mark the old tag for renaming. + (replace_may_alias): New function. + (group_aliases): Call it. + (setup_pointers_and_addressables): Always call get_tmt_for. + (maybe_create_global_var): Don't create .GLOBAL_VAR more than + once. + (set_pt_anything): New local function. + (set_pt_malloc): New local function. + (merge_pointed_to_info): Don't merge pointed-to variables from + the original pointer if the destination is pointing to an + unknown location. + (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc. + (add_pointed_to_var): Do not add a variable to the points-to + set if the pointer is already pointing to anywhere. + (collect_points_to_info_r): If the defining statement is a PHI + node, only merge pointed-to information if the argument has + already been visited. + (get_tmt_for): Only create a new tag if the pointer didn't + have one already. + (dump_alias_info): Emit more information. + (dump_points_to_info_for): Likewise. + * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't + try to get the annotation of an SSA_NAME. + * tree-ssa-operands.c (add_stmt_operand): Only check for empty + alias sets when checking is enabled. + * tree-ssa-pre.c (need_eh_cleanup): New local variable. + (eliminate): Mark basic blocks that will need + EH information cleaned up. + (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one + predecessor. + Initialize need_eh_cleanup. + (fini_pre): Call tree_purge_all_dead_eh_edges and + cleanup_tree_cfg if needed. + Free need_eh_cleanup. + * tree-ssa.c (verify_ssa_name): New function. + (verify_def): Call it. + Re-arrange to avoid printing too many error messages. + (verify_use): Likewise. + (verify_phi_args): Likewise. + (verify_flow_insensitive_alias_info): New function. + (verify_flow_sensitive_alias_info): New function. + (verify_alias_info): New function. + (verify_ssa): Call verify_alias_info. + Clear TREE_VISITED on all the SSA_NAMEs before scanning the + program. + Re-arrange to avoid printing too many error messages. + * tree-ssanames.c (make_ssa_name): Clear + SSA_NAME_IN_FREE_LIST. + (release_ssa_name): Never release a default definition. + (release_defs): New function. + * tree.h: Declare it. + * tree-ssa-dce.c (remove_dead_stmt): Call it. + +2004-07-22 Diego Novillo + + * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS. + If true, do a depth-first search. Do a breadht-first search, + otherwise. + (walk_use_def_chains): Add new argument IS_DFS. + Update all users. + * tree-flow.h (walk_use_def_chains): Update prototype. + +2004-07-22 Hans-Peter Nilsson + + * config/cris/cris.md: Tweak formatting. + (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi) + (mover2side, moverside, movemside, movei, op3, andu): Replace + live define_peephole:s with define_peephole2 near-equivalents. + Delete the rest. + ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all + word-size modes. + ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"): + Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and + "*mov_sidesi_mem" respectively. + +2004-07-22 Paolo Bonzini + + * tree-cfg.c (gimplify_val): Move from tree-complex.c. + (gimplify_build1): Move from tree-complex.c do_unop. + (gimplify_build2): Move from tree-complex.c do_binop. + (gimplify_build3): New. + * tree-complex.c (gimplify_val, do_unop, do_binop): Remove. + Adjust throughout to call the functions above. + * tree-flow.h: Declare the functions above. + * tree-nested.c (gimplify_val): Rename to... + (tsi_gimplify_val): ... this. + + * Makefile.in (tree_complex.o): Update dependencies. + (stor-layout.o): Depend on regs.h. + * c-common.c (handle_vector_size_attribute): Update for + vector types without corresponding vector modes. + * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if + a corresponding vector mode is not available. + * print-tree.c (print_node): Print nunits for vector types + * regclass.c (have_regs_of_mode): New. + (init_reg_sets_1): Initialize it and use it instead + of allocatable_regs_of_mode. + * regs.h (have_regs_of_mode): Declare it. + * stor-layout.c (layout_type): Pick a mode for vector types. + * tree-complex.c (build_word_mode_vector_type, tree_vec_extract, + build_replicated_const, do_unop, do_binop, do_plus_minus, + do_negate, expand_vector_piecewise, expand_vector_parallel, + expand_vector_addition, expand_vector_operations_1, + expand_vector_operations, tree_lower_operations, + pass_lower_vector_ssa, pass_pre_expand): New. + (expand_complex_operations, pass_lower_complex): Remove. + * tree-optimize.c (init_tree_optimization_passes): Adjust + pass ordering for changes in tree-complex.c. + * tree-pass.h: Declare new passes. + * tree.c (finish_vector_type): Remove. + (make_vector_type): New. + (build_vector_type_for_mode, build_vector_type): Rewritten. + * tree.def (VECTOR_TYPE): Document where the number of + subparts is stored. + * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field. + (make_vector): Remove declaration. + +2004-07-21 Richard Henderson + + * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE, + TREE_THIS_VOLATILE, may_aliases, or optimization level. + (remove_useless_vars): Dump debugging info. + (expand_used_vars): Move ... + * cfgexpand.c (expand_used_vars): ... here. Make static. + * tree-flow-inline.h (set_is_used): New. + (set_default_def): Use get_var_ann. + * tree-flow.h: Update decls. + * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New. + (create_ssa_var_map): Use it. + * tree-ssa.c (set_is_used): Remove. + +2004-07-22 Ben Elliston + + * gdbinit.in: Set a breakpoint on internal_error. + +2004-07-21 Richard Henderson + + * cfgexpand.c (expand_gimple_tailcall): Fix case where we need + to create a new basic block. + +2004-07-22 Joseph S. Myers + + PR c/15052 + * c-decl.c (grokdeclarator): Only pedwarn for qualified void + return type on function definitions. Move other warnings for + qualified return type to -Wreturn-type. Do not condition any such + warnings on -pedantic. Update comments. + (start_function): Only copy function type from previous prototype + declaration if return types are compatible. + * c-typeck.c (function_types_compatible_p): Don't condition + warning for incompatibility of volatile qualifiers on the return + type on -pedantic. Update comment. + * doc/invoke.texi (-Wreturn-type, -Wextra): Update. + +2004-07-22 Joseph S. Myers + + * c-typeck.c (set_init_index): Require designator to be of integer + type. + +2004-07-22 Joseph S. Myers + + PR c/11250 + * c-parse.in (init): Change to exprtype. + (primary): Set original_code for STRING to STRING_CST. + Call maybe_warn_string_init for compound literals. + (initdcl, notype_initdcl): Call maybe_warn_string_init. + (initval): Update. + * c-tree.h (maybe_warn_string_init): New. + (pop_init_level, process_init_element): Use struct c_expr. + (struct c_expr): Update comment. + * c-typeck.c (maybe_warn_string_init): New function. + (digest_init): Call it. Additional parameter strict_string. All + callers changed. + (output_init_element): Likewise. + (struct constructor_stack): Use struct c_expr for + replacement_value. + (really_start_incremental_init, push_init_level): Update. + (pop_init_level): Update. Return struct c_expr. + (process_init_level): Update. Take struct c_expr argument. + +2004-07-21 David S. Miller + + * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous + commit. + +2004-07-21 Eric Christopher + + * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code + removal. + * c-decl.c (pop_scope): Ditto. + * calls.c (expand_call): Remove call to current_nesting_level, + update comment accordingly. Remove calls to expand_start_target_temps + and expand_end_target_temps. + * cfgexpand.c (construct_init_block): Remove call to + expand_start_bindings_and_block. + (construct_exit_block): Remove call to expand_end_bindings. + * expr.c (safe_from_p): Remove BIND_EXPR handling. + (expand_expr_real_1): Ditto. Fix formatting. + (expand_vars): Delete. + * stmt.c (POPSTACK): Remove block_stack. + (stmt_status): Remove x_block_stack. + (block_stack): Delete. + (expand_start_bindings_and_block): Ditto. + (expand_start_target_temps): Ditto. + (expand_end_target_temps): Ditto. + (current_nesting_level): Ditto. + (warn_about_unused_variables): Ditto. + (expand_end_bindings): Ditto. + * tree.h: Remove declarations for above. + +2004-07-21 Steven Bosscher + + * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION. + * rtl.c (note_insn_name): Likewise. + * print-rtl.c (print_rtx): Don't print it. + * cfgrtl.h (can_delete_note_p): Don't handle it. + (rtl_delete_block): Likewise. + * passes.c (rest_of_handle_guess_branch_prob): Remove. + (rest_of_compilation): Don't call it. + * predict.c (process_note_predictions, process_note_prediction, + note_prediction_to_br_prob): Remove. + * basic-block.c (note_prediction_to_br_prob): Remove prototype. + * stmt.c (return_prediction): Remove. + (expand_value_return): Don't call it. Don't add prediction + notes for return statements. + +2004-07-21 Josef Zlomek + + * var-tracking.c (vt_find_locations): Set the in_pending bitmap at + once. + +2004-07-21 Paolo Bonzini + + * c-common.c (vector_types_convertible_p): Use vector types' + TYPE_SIZE and TREE_TYPE instead of their mode. + * convert.c (convert_to_integer): Likewise. + (convert_to_vector): Likewise. + * fold-const.c (fold_convert): Likewise. + * varasm.c (output_constant): Likewise. + * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE. + Allow a VECTOR_TYPE initializer to be made of several vectors. + For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling + of cleared and need_to_clear, and use fold_convert. + * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for + integer vectors. + +2004-07-20 Richard Henderson + + * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split, + (expand_gimple_basic_block): out from here. Renamed from expand_block. + +2004-07-20 David S. Miller + + * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit + enormous cost if not TARGET_HARD_MUL. + +2004-07-20 Andrew Pinski + + PR target/16557 + * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ... + (ASM_SPEC): here. + +2004-07-21 Paul brook + + * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT. + +2004-07-20 Richard Kenner + + * fold-const.c (operand_equal_p): Temporarily support NULL args. + (operand_equal_p, case ARRAY_REF): Compare args 2 and 3. + (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2. + +2004-07-20 Zack Weinberg + + * rtl.h (plus_constant): Delete. + (plus_constant_wide): Rename to plus_constant. + (plus_constant_for_output_wide): Delete vestigial prototype. + (GEN_INT): Remove unnecessary cast. + * tree.h (build_int_2, size_int_type): Delete. + (build_int_2_wide): Rename to build_int_2. + (size_int_wide): Rename to size_int_kind. + (size_int_type_wide): Rename to size_int_type. + (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind. + Remove unnecessary cast. + * tree.c (build_int_2_wide): Rename build_int_2; update comment. + * explow.c (plus_constant_wide): Rename plus_constant; update comment. + * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type. + (size_int_type_wide): Rename size_int_type. + (int_const_binop): Use size_int_type. + * c-lex.c (interpret_integer): Use build_int_2. + * final.c (split_double): Remove unnecessary casts. + * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2. + +2004-07-20 Richard Henderson + + * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c. + (gimplify_compound_lval): Use is_gimple_tmp_reg. + * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c. + (is_gimple_tmp_reg): New. + * tree-gimple.h (is_gimple_tmp_reg): Declare. + +2004-07-20 Richard Henderson + + * tree-pretty-print.c (dump_generic_node): Dump + CALL_EXPR_HAS_RETURN_SLOT_ADDR. + +2004-07-20 Frank Ch. Eigler + + * tree-mudflap.c (mf_set_options_fndecl): New tree. + (mudflap_init): Set it. + (mudflap_register_call): Remove __mf_init call. + (mudflap_finish_file): Emit call to __mf_init here. Emit a call to + to pass "-ignore-reads" option to libmudflap if needed. + +2004-07-20 John David Anglin + + PR c++/14607 + * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define. + (MAKE_DECL_ONE_ONLY): Undefine. + * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section, + readonly_data, one_only_data_section, forget_section): New prototypes. + * pa.c (pa_init_machine_status, som_text_section_asm_op): New + functions. + (pa_select_section): Add one-only (COMDAT) support. + * pa.h (struct machine_function): Define. + * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete. + (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op. + (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP, + ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP, + ONE_ONLY_DATA_SECTION_ASM_OP): New defines. + (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data. + (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros. + (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION, + ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines + for EXTRA_SECTION_FUNCTIONS. + * doc/install.texi: Update binutils requirements. + +2004-07-20 Nathan Sidwell + + * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate, + VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert, + VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not + size_t. + (struct VEC): Use unsigned for num and alloc. + * vec.c (struct vec_prefix): Likewise. + (vec_o_reserve): Adjust. + + * dbxout.c (dbxout_type): Fix printf format. + + * tree.h (binfo_member): Remove. + * tree.c (binfo_member): Remove. + +2004-07-20 Nathan Sidwell + + * tree.h: Include vec.h + (DEF_VEC_P(tree)): New type. + (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust. + (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New. + (BINFO_LANG_SLOT): Remove. + (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New. + (struct tree_binfo): Turn base_binfos into a trailing + VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields. + (binfo_lang_slots): Remove. + * tree.c (binfo_lang_slots): Remove. + (make_tree_binfo_stat): Take a base binfo count, not a + lang slot count. Adjust. + * Makefile.in (TREE_H): Add vec.h + * alias.c (record_component_aliases): Adjust BINFO access. + * dbxout.c (dbxout_type): Likewise. + * dwarf2out.c (gen_member_die): Likewise. + * sdbout.c (sdbout_one_type): Likewise. + * tree-dump.c (deque_and_dump): Likewise. + * config/i386/i386.c (classify_argument, + contains_128bit_aligned_vector_p): Likewise. + * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise. + * doc/c-tree.texi (Classes): Update BINFO documentation. + +2004-07-20 Steven Bosscher + + * c-common.h (check_case_value): Remove prototype. + (c_add_case_label): Adjust prototype. + * c-common.c (check_case_value): Make static. + (check_case_bounds): New function. + (c_add_case_label): Use it. Take new argument orig_type. + * c-typeck.c (struct c_switch): New orig_type field. + (c_start_case): Set it. + (do_case): Pass it to c_add_case_label. + * expr.c (expand_expr_real_1): Don't warn for out-of-bounds + cases from here. Add the labels in reverse order. + * stmt.c (struct case_node): Adjust comment. Remove balance field. + (add_case_node): Return nothing, don't check for duplicate cases. + Insert new case nodes in a list, not in an AVL tree. + (expand_end_case_type): Don't turn a case tree into a case list. + (case_tree2list): Remove. + * tree.h (add_case_node): Adjust prototype. + +2004-07-19 Paolo Bonzini + + * genattr.c (struct range, struct function_unit, + write_units, extend_range, init_range): Remove them. + (main): Remove code dealing with DEFINE_FUNCTION_UNIT. + Output "#define INSN_SCHEDULING" here. + * genattrtab.c (struct range, struct function_unit_op, + struct function_unit, struct dimension, enum operator, + operate_exp, expand_units, simplify_knowing, + encode_units_mask, simplify_by_exploding, + find_and_mark_used_attributes, unmark_used_attributes, + add_values_to_cover, increment_current_value, + test_for_current_value, simplify_with_current_value, + simplify_with_current_value_aux, gen_unit, + write_unit_name, write_function_unit_info, + write_complex_function, write_toplevel_expr, + find_single_value, extend_range): Remove. + (write_attr_get): Do not handle common_av->value + being an FFS. + (struct attr_desc): Remove func_units_p and blockage_p. + (write_attr_valueq): Do not handle them. + (find_attr): Do not clear them. + (make_internal_attr): Do not initialize them. + (main): Remove code dealing with DEFINE_FUNCTION_UNIT. + * sched-vis.c (init_target_units, insn_print_units, + init_block_visualization, print_block_visualization, + visualize_scheduled_insns, visualize_no_unit, + visualize_stall_cycles, visualize_alloc, + visualize_free, target_units, get_visual_tbl_length, + MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, + visual_tbl_line_length, visual_tbl, n_vis_no_unit, + MAX_VISUAL_NO_UNIT, vis_no_unit): Remove. + * haifa-sched.c (blockage_range, clear_units, + schedule_unit, actual_hazard, potential_hazard, + insn_unit, unit_last_insn, unit_tick, + actual_hazard_this_instance, potential_hazard, + schedule_unit, max_insn_queue_index_value): Remove. + (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to + max_insn_queue_index. + * rtl.def (DEFINE_FUNCTION_UNIT): Remove. + * doc/md.texi (Processor pipeline description): Remove + references to old pipeline descriptions. + (Automaton pipeline description): Merge with the above. + (Old pipeline description, Comparison of the two descriptions): + Remove. + + * bt-load.c (migrate_btr_def): Remove references to + use_pipeline_interface. + * haifa-sched.c (insn_cost, schedule_insn, + schedule_block, advance_one_cycle, sched_init, + queue_to_ready, sched_finish): Likewise. + * modulo-sched.c (sms_schedule, advance_one_cycle, + ps_has_conflicts): Likewise. + * sched-rgn.c (init_ready): Likewise. + (debug_dependencies): Likewise, and remove an "if (1)". + * target.h (use_dfa_pipeline_interface): Remove. + * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. + +2004-07-19 Roger Sayle + + * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call. + +2004-07-19 Jeff Law + + * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New. + (get_eq_expr_value): Use it. Simplify slightly. + +2004-07-19 Maciej W. Rozycki + + * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list. + (umulsidi3_32bit_r4000): Likewise. + +2004-07-19 Nathan Sidwell + + * vec.h: Propagate location information properly. + (VEC_T_iterate): Add result pointer parameter. + (VEC_T_space): New. + (VEC_T_reserve): Use it. + +2004-07-19 Daniel Jacobowitz + + * Makefile.in (c-format.o): Depend on c-format.h. + * c-format.h: New file. + (struct format_char_info): Add CHAIN member. + * c-format.c: Move some types and constants to c-format.h. + (format_type_error): Set to -1. + (struct function_format_info): Use an int for format_type. + (decode_format_type): Return an int. Return format_type_error + on error. + (print_char_table, asm_fprintf_char_table, gcc_diag_char_table) + (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table) + (scan_char_table, time_char_table, monetary_char_table): Initialize + CHAIN to NULL. + (n_format_types): New variable. + (check_format_info_main): Handle CHAIN in format_char_info. + (handle_format_attribute): Handle TARGET_FORMAT_TYPES and + TARGET_N_FORMAT_TYPES. + * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) + (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c. + * config/sol2-c.c: New file. + * config/t-sol2: New file. + * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define. + * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine + TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES. + + * doc/extend.texi (Target Format Checks): New section. + (Function Attributes): Mention it. + * doc/invoke.texi: Mention target format checks. + * doc/sourcebuild.texi: Mention target format checks. + * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and + TARGET_FORMAT_TYPES. + +2004-07-19 Andreas Krebbel + + * config/s390/s390-protos.h (s390_return_address_offset): Prototype + added. + * config/s390/s390.c (regclass_map initializer): Register 35 added to + ADDR_REGS. + (load_multiple_operation, store_multiple_operation): Removed + pointless sanity check. + (s390_decompose_address): Added check for return_address_pointer_rtx. + (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0. + (s390_return_address_offset): New function. + * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36. + (FRAME_REGNO_P): Added check for register 35. + (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, + REG_ALLOC_ORDER): Appended entry for register 35. + (REG_CLASS_CONTENTS): Adjusted class masks for register 35. + (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx. + (RETURN_ADDRESS_POINTER_REGNUM): New macro. + (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer + is eliminable using stack pointer or hard frame pointer. + (REGISTER_NAMES): Added name for register 35. + * config/s390/s390.md ("load_multiple", "store_multiple"): Removed + pointless sanity check. + +2004-07-19 Roger Sayle + + * fold-const.c (tree_expr_nonzero_p): Add function prototype. + (fold) : Move tree_expr_nonzero_p optimization from + fold_relational_const to here, i.e. "(x | 5) == 0" -> false. + (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons + of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT. + (fold_relational_const): Tidy up handling of floating point + comparisons by calling real_compare. Remove tree_expr_nonzero_p + transformation; fold_relational_const assumes constant operands. + +2004-07-19 Gabriel Dos Reis + + * doc/sourcebuild.texi: Add libcpp, now that CPP has its own + directory. + +2004-07-19 Joseph S. Myers + + * c-tree.h (struct c_expr): Define. + (C_SET_EXP_ORIGINAL_CODE): Remove. + (parser_build_binary_op, build_compound_expr): Update prototypes. + * c-parse.in (%union): Add exprtype. + (FUNC_NAME): Mark as ttype. + (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to + exprtype. + (expr): Update. Define directly in terms of expr_no_commas + instead of using nonnull_exprlist. + (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary, + offsetof_member_designator, typespec_nonreserved_nonattr, init, + initval, designator, component_declarator, + component_notype_declarator, enumerator, array_declarator, + condition, exexpr, switch_statement, stmt_nocomp, stmt, + nonnull_asm_operands, ivar_declarator, receiver): Update. Don't + set C_EXP_ORIGINAL_CODE. Use TREE_NO_WARNING for assignments + where appropriate. + * c-common.h (C_EXP_ORIGINAL_CODE): Remove. + * c-common.c (c_common_truthvalue_conversion): Don't check + C_EXP_ORIGINAL_CODE. + * c-typeck.c (parser_build_binary_op): Use c_expr structures. + Don't use C_EXP_ORIGINAL_CODE. + (default_conversion, default_function_array_conversion): Don't use + C_EXP_ORIGINAL_CODE. Preserve TREE_NO_WARNING. + (internal_build_compound_expr): Merge into build_compound_expr. + (build_compound_expr): Take two operands instead of a TREE_LIST. + * objc/objc-act.c (get_super_receiver): Update calls to + build_compound_expr. + +2004-07-18 Paolo Bonzini + + * config/sh/sh.c (sh_use_dfa_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to + hook_int_void_1. + * config/sh/sh.md: Extract pipeline descriptions + into separate files. + * config/sh/sh1.md: New file, extracted from sh.md. + * config/sh/sh4.md: New file, extracted from sh.md. + * config/sh/shmedia.md: New file, extracted from sh.md + and rewritten using new-style pipeline description. + +2004-07-18 Zack Weinberg + + * config/pa/pa.md: Delete the two remaining define_peephole + patterns. + +2004-07-18 Steven Bosscher + Joseph S. Myers + + * c-common.c (c_common_truthvalue_conversion): Don't warn if + TREE_NO_WARNING is set. + +2004-07-18 Roger Sayle + + * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp, + simplify_builtin_strncmp): Delete. + (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): + Change argument to accept an arglist instead of an "exp". Assume + that the return type is always integer_type_node. Copy missing + transformations from their now obsolete simplify_builtin_* + equivalents. + (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp, + fold_builtin_strcmp and fold_builtin_strncmp. + (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp + and fold_builtin_strncmp instead of simplify_builtin_memcmp, + simplify_builtin_strcmp and simplify_builtin_strncmp respectively. + +2004-07-18 Daniel Jacobowitz + + * Makefile.in (tree-alias-common.o): Update dependencies. + +2004-07-17 Sebastian Pop + + * cfgloop.c (flow_loop_nested_p): Fix comment. + +2004-07-17 Jason Merrill + + PR c++/16115 + * stor-layout.c (relayout_decl): New fn. + * tree.h: Declare it. + (DECL_BY_REFERENCE): New macro. + +2004-07-17 Eric Botcazou + + * libgcc2.c (__enable_execute_stack): New symbol. + * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4 + and declare __enable_execute_stack. + * mklibgcc.in (lib2funcs): Add _enable_execute_stack. + * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy. + * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into + ENABLE_EXECUTE_STACK. + * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize + on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. + * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into + ENABLE_EXECUTE_STACK. + * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. + * config/i386/i386.c (x86_initialize_trampoline): Conditionalize + on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. + * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into + ENABLE_EXECUTE_STACK. + * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. + * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise. + * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. + * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. + * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize + on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. + (sparc64_initialize_trampoline): Likewise. + * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro. + +2004-07-17 Joseph S. Myers + + * langhooks.h (builtin_function): New langhook. + * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New. + (LANG_HOOKS_INITIALIZER): Update. + * tree.h (builtin_function): Remove. + * doc/tm.texi: Update. + * c-tree.h (builtin_function): Declare. + * c-common.c, config/alpha/alpha.c, config/arm/arm.c, + config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c, + config/ia64/ia64.c, config/iq2000/iq2000.c, + config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, + config/stormy16/stormy16.c: All callers of builtin_function + changed. + +2004-07-17 Andrew Pinski + + PR target/16556 + * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): + Remove white space after the backslash. + +2004-07-17 Eric Botcazou + + PR rtl-optimization/16294 + * resource.c (return_insn_p): New predicate. + (mark_target_live_regs): Use it. Special-case return insns. + (init_resource_info): Use it. Don't scan the epilogue past + a return. + +2004-07-17 Zdenek Dvorak + + * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not + destroy dominance information. + * passes.c (rest_of_handle_loop2): Free dominance information. + * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before + jump threading. + (thread_jumps): Update dominance information and remove unreachable + blocks. + * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance + information and remove the unreachable block. + +2004-07-17 Graham Stott + + * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn. + +2004-07-17 Toon Moene + + * doc/sourcebuild.texi: Remove libf2c entry. + +2004-07-17 Paolo Bonzini + + * config/i386/i386.md (movv16qi_internal): Fix typo. + +2004-07-17 Steven Bosscher + + * final.c (final_scan_insn): Fix broken commit from previous + patch. + +2004-07-17 Joseph S. Myers + + * c-typeck.c (parser_build_binary_op): Condition warnings for + X<=Y<=Z on -Wparentheses instead of -Wextra. + * doc/invoke.texi: Update. Document that most of -Wparentheses is + supported for C only. + +2004-07-17 Steven Bosscher + + * cfgcleanup.c (try_simplify_condjump): Don't remove line + notes to avoid unreachable code warnings. + * toplev.c (backend_init): Don't emit line notes for + unreachable code warnings. + + * combine.c (distribute_notes): Don't distribute a + REG_VTABLE_REF note. + * final.c (final_scan_insn): Don't handle it. + * rtl.c (reg_note_name): Remove it. + * rtl.h (enum reg_node): Dito. + + * emit-rtl.c (force_line_numbers, restore_line_number_status): + Remove. + * rtl.h (force_line_numbers, restore_line_number_status): + Remove prototypes. + + * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move... + * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static. + (using_eh_for_cleanups): Also moved here. + + * expr.c (expand_expr_real_1) : Die if we see one. + : Die if we have a non-NULL SWITCH_BODY. Update calls + to expand_start_case and add_case_node. + * stmt.c (struct nesting): Cleanup unused fields condition_code, + last_unconditional_cleanup, nominal_type, printname, and + line_number_status. + (struct fixup_goto): Remove. + (struct stmt_status): Remove x_goto_fixup_chain field. + (goto_fixup_chain): Remove. + (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable, + pushcase, pushcase_range): Remove. + (expand_start_bindings_and_block): Don't set unused fields in + the nesting stack. + (expand_start_case, add_case_node): Cleanup unused formal arguments. + (expand_end_case_type): Don't simplify the case-list. Use emit_jump + instead of emit_jump_if_reachable. + (emit_case_nodes): Likewise. + * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer + static. + (update_eh_label): Work around left-over exception handing regions. + * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos. + * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function. + (pass_cleanup_cfg_post_optimizing): New pass. + (init_tree_optimization_passes): Run the new pass after all + optimizations. + * tree.h (pushcase, pushcase_range): Remove prototypes. + (expand_start_case, add_case_node): Update prototypes. + +2004-07-16 Krister Walfridsson + + * tree-inline.c (estimate_num_insns_1): Correct increase of count. + +2004-07-16 Richard Henderson + + * builtins.c (std_expand_builtin_va_arg): Remove. + (expand_builtin_va_arg): Remove. + * expr.h: Don't declare them. + * gimplify.c (mark_decls_volatile_r): Remove. + (copy_if_shared_r): Don't call it. + * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG. + * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR. + * gimple-low.c (lower_stmt): Likewise. + * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise. + * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention + EXPAND_BUILTIN_VA_ARG. + * system.h (EXPAND_BUILTIN_VA_ARG): Poison. + * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h, + config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h, + config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-07-16 Daniel Berlin + + * tree-ssa-pre.c (insert_aux): Break out if we hit + a critical edge. + +2004-07-16 Richard Henderson + + * basic-block.h (remove_fake_exit_edges): Declare. + * cfganal.c (remove_fake_predecessors): Rename from + remove_fake_successors; iterate over predecessors. + (remove_fake_exit_edges): New. + * cfgcleanup.c (try_optimize_cfg): Use it. + * gcse.c (one_pre_gcse_pass, store_motion): Likewise. + * predict.c (estimate_probability): Likewise. + (tree_estimate_probability, note_prediction_to_br_prob): Likewise. + * tree-cfg.c (make_edges): Likewise. + * tree-ssa-pre.c (fini_pre): Likewise. + * profile.c (instrument_edges): Don't remove_fake_edges. + (branch_prob): Do it earlier here. + +2004-07-16 Richard Henderson + + * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15 + switchification wrt CONSTRUCTOR. Document the reason. + +2004-07-16 Frank Ch. Eigler + + * tree-mudflap.c (mf_file_function_line_tree): Correct typo + that prevented descriptive __mf_check source location strings. + +2004-07-16 Richard Henderson + + * tree-def (WITH_SIZE_EXPR): New. + * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR. + * expr.c (expand_expr_real_1): Likewise. + * gimplify.c (maybe_with_size_expr): New. + (gimplify_arg, gimplify_modify_expr): Use it. + (gimplify_modify_expr_to_memcpy): Take size parameter. + (gimplify_modify_expr_to_memset): Likewise. + (gimplify_expr): Handle WITH_SIZE_EXPR. + * tree-alias-common.c (find_func_aliases): Likewise. + * tree-eh.c (tree_could_trap_p): Likewise. + (tree_could_throw_p): Likewise. + * tree-gimple.c (is_gimple_lvalue): Likewise. + (get_call_expr_in): Likewise. + * tree-inline.c (estimate_num_insns_1): Likewise. + (expand_calls_inline): Likewise. + * tree-nested.c (convert_call_expr): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree-sra.c (sra_walk_expr): Likewise. + * tree-ssa-alias.c (add_pointed_to_expr): Likewise. + * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise. + * tree-ssa-operands.c (get_expr_operands): Likewise. + * tree-tailcall.c (find_tail_calls): Likewise. + + * calls.c (expand_call): Reset old_stack_allocated after + calling emit_stack_restore. + +2004-07-16 Richard Henderson + + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, + lhd_tree_inlining_copy_res_decl_for_inlining): Remove. + * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove. + * langhooks.h (struct lang_hooks_for_tree_inlining): Remove + copy_res_decl_for_inlining. + + * tree-inline.c (declare_return_variable): New modify_dest argument. + Use it as the return value, when possible or manditory. Handle + TREE_ADDRESSABLE types. + (expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify + replacement of CALL_EXPR. + +2004-07-16 Richard Henderson + + * tree-flow.h (struct var_ann_d): Remove has_hidden_use. + * gimple-low.c (expand_var_p): Don't check it. + * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise. + * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. + * tree-ssa-operands.c (add_stmt_operand): Likewise. + * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill. + (find_referenced_vars): Don't call them. + * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill. + +2004-07-16 Richard Henderson + + * function.c (pass_by_reference): True for all variable sized types. + +2004-07-16 Sebastian Pop + + * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h. + * tree-pretty-print.c: Include tree-chrec.h. + (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN + and POLYNOMIAL_CHREC nodes. + +2004-07-16 Steve Ellcey + + * builtins.c (expand_builtin_stpcpy): Do not create temporary + reg with VOIDmode. + +2004-07-16 Segher Boessenkool + + * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi). + +2004-07-16 Andreas Krebbel + + * config/s390/s390.md: Changed every occurence of BASE_REGISTER + to BASE_REGNUM. + * config/s390/s390.c: Likewise. + * config/s390/s390.h: Likewise. + +2004-07-16 Richard Sandiford + + * config/mips/mips.md (addsi3, adddi3): Remove special handling + of $sp adds. Remove REGNO checks from mips16 patterns. + +2004-07-16 Richard Sandiford + + * config/mips/mips.md: Delete outdated comment. + +2004-07-16 Richard Sandiford + + * config/mips/mips.c (get_float_compare_codes): Delete. + (mips_emit_compare): New function, mostly extracted from + get_float_compare_codes and gen_conditional_branch. + (gen_conditional_branch, gen_conditional_move): Use it. + +2004-07-16 Segher Boessenkool + + * genautomata.c (add_vect): Speedup by using integers as + bit-vectors for walking through the comb_vect and finding + a match. + +2004-07-16 Richard Sandiford + + * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second + operand is an uns_arith_operand; use subtraction otherwise. + * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand, + not just arith_operands. + +2004-07-16 Richard Sandiford + + * config/mips/mips-protos.h (gen_int_relational): Delete. + (mips_emit_scc): Declare. + * config/mips/mips.c (internal_test): Delete. + (sle_operand, sleu_operand): New functions. + (map_test_to_internal_test, gen_int_relational): Delete. + (mips_emit_binary, mips_relational_operand_ok_p) + (mips_emit_int_relational, mips_zero_if_equal) + (mips_emit_scc): New functions. + (gen_conditional_branch): Rework to use mips_emit_int_relational. + * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and + sleu_operand. + * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) + (sltu, sleu): Use mips_emit_scc. + (*sge_[sd]i, *sgeu_[sd]i): New patterns. + (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand. + (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand. + +2004-07-16 Richard Sandiford + + * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint. + +2004-07-16 Richard Sandiford + + * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero. + (*sne_[sd]i): Likewise sne_[sd]i_zero. + (*sgt_[sd]i): ...and sgt_[sd]i. + (*slt_[sd]i): ...and slt_[sd]i. + (*sgtu_[sd]i): ...and sgtu_[sd]i. + (*sltu_[sd]i): ...and sltu_[sd]i. + (*sleu_[sd]i): ...and sleu_[sd]i_const. + Name previously unnamed mips16 patterns. Formatting fixes. + +2004-07-16 Richard Sandiford + + * config/mips/mips.c (cmp_operands): Renamed from branch_cmp. + (branch_type): Delete. + (gen_conditional_branch, gen_conditional_move) + (mips_gen_conditional_trap): Update after name change. Get the + comparison mode from cmp_operands[0]. + * config/mips/mips.h (cmp_type, branch_type): Delete. + (cmp_operands): Renamed from branch_cmp. + * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after + name change. Don't set branch_type. + (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the + mode class of cmp_operands[0] rather than branch_type. Update after + name change. + +2004-07-16 Richard Sandiford + + * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost + of 0...255 to 0 when inside a SET. + +2004-07-16 Richard Sandiford + + * config/mips/mips.md: Remove mips16 define_peepholes. + +2004-07-16 Daniel Berlin + + * tree-ssa-pre.c (init_pre): Connect infinite loops to exit. + (fini_pre): Remove fake edges. + +2004-07-15 Richard Henderson + + * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out... + (get_indirect_ref_operands, get_call_expr_operands): ... these. + +2004-07-15 Nathan Sidwell + + * vec.h (VEC_address): New function. + +2004-07-14 Jason Merrill + + PR middle-end/15885 + * gimplify.c (gimplify_arg): New fn, split out from... + (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START. + +2004-07-15 Roman Zippel + + * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to + generate code which is generated by pushqi1 now + * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove. + +2004-07-15 Roman Zippel + + * combine.c (simplify_set): match the mode of the constant 0 with + the tested operand to match the compare behaviour and the + simplify_relational_operation() expectation. + +2004-07-15 Aldy Hernandez + + * config/rs6000/rs6000.md ("bunordered"): Disable for e500. + ("bordered"): Same. + +2004-07-15 Aldy Hernandez + + * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow + unconditionally. + * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove. + +2004-07-15 Richard Sandiford + + * config/mips/mips.c (mips_adjust_insn_length): Fix handling of + calls in mips16 code. + +2004-07-15 Richard Sandiford + + * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for + the destination of the li as well as for the neg. + +2004-07-15 Frank Ch. Eigler + + g++/15861 + * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument. + * cgraph.h: Update declaration. + * c-decl.c (build_cdtor): Update call with default priority. + * coverage.c (create_coverage): Ditto. + * tree-mudflap.c (mf_init_fndecl): New tree. + (mudflap_init): Set it. + (mudflap_register_call): Arrange to call __mf_init before the first + __mf_register call. + (mudflap_finish_file): Mark the mudflap static initializer as extra + high priority, to beat all C++ static constructors. + +2004-07-15 Jeff Law + + * loop.c (check_insn_for_givs): Restore check for code labels that was + accidentally deleted by a recent checkin. + +2004-07-15 Nathan Sidwell + + * vec.h (VEC_T_truncate): Allow truncation of an empty vector. + (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko. + +2004-07-14 Richard Henderson + + * print-tree.c (print_node): Fix casts last change. + +2004-07-15 Paul Brook + + * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO + to TARGET_UNWIND_INFO. + * except.c (output_function_exception_table): Ditto. + * except.h: Ditto. + * opts.c (decode_options): Ditto. + * passes.c (rest_of_handle_final): Ditto. + * final.c (final_start_function): Ditto. + (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with + target hook. + * targhooks.h (default_unwind_emit): Declare. + * targhooks.c (default_unwind_emit): New function. + * target-def.h: Define and use TARGET_UNWIND_EMIT. + * target.h (struct gcc_target): Add unwind_emit. + * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define. + * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO. + Remove IA64_UNWIND_EMIT. + * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO. + +2004-07-14 Richard Henderson + + * print-tree.c (print_node): Handle SSA_NAME. + +2004-07-14 James E Wilson + + PR target/16325 + * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value + and ! TARGET_64BIT, include REG_PARM_STACK_SPACE. + +2004-07-15 Jakub Jelinek + + * expr.c (expand_assignment): Reenable bitfield += optimizations. + Use alias set 0 for memory, do proper mode calculations and adjust + address for memories. + +2004-07-14 Per Bothner + + * input.h: If USE_MAPPED_LOCATION, define separate expanded_location + structure with extra column field. + * tree.c (expand_location): Also fill in column field. + * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype + gets confused by the two conditionally-compiled definitions. + +2004-07-14 Eric Christopher + + * calls.c (expand_call): Fix typo in comment. + +2004-07-14 Steve Ellcey + + * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED + comparision of TFmode. + +2004-07-14 Richard Henderson + + * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ... + (alpha_gimplify_va_arg): ... handling here. Use pass_by_reference. + * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference. + * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. + * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. + * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. + * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. + * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. + * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. + +2004-07-14 Mike Stump + + * config/darwin.h (WINT_TYPE): Define to be int to match + system header files. + +2004-07-14 Bob Wilson + + * config/xtensa/xtensa.c (function_arg_advance): Check for args + that must be passed in the stack. + (xtensa_gimplify_va_arg_expr): Skip special-case padding for small + arguments if the size is not a constant. + +2004-07-14 Per Bothner + + * c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION + instead of EXPR_LOCUS in a boolean context, which is always true + if --enable-mapped-location. + * stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION. + +2004-07-14 Richard Henderson + + * dominance.c (struct dom_info): Add fake_exit_edge. + (init_dom_info): Allocate it. + (free_dom_info): Free it. + (calc_dfs_tree): Set it. Handle noreturn and infinite loops + in two passes. + (calc_idoms): Honor fake_exit_edge. + +2004-07-13 Jason Merrill + + * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns. + (rhs_test_for): New fn. + (is_gimple_tmp_rhs): Rename from is_gimple_rhs. + * tree-gimple.h: Declare them. + * gimplify.c (gimplify_modify_expr): Use the new fns. + +2004-07-14 Richard Henderson + + * config/arm/arm-protos.h (arm_va_arg): Remove. + * config/arm/arm.c (arm_va_arg): Remove. + (arm_init_expanders): Fix alignment of arg_pointer_rtx. + * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-07-14 John David Anglin + + * pa.c (fix_range): New function to mark a range(s) of registers as + fixed registers. + (override_options): Call fix_range if the -mfixed-range option string + is not empty. + * pa.h (TARGET_OPTIONS): Add -mfixed-range option. + * doc/invoke.texi (-mfixed-range): Document new option. + +2004-07-14 David Edelsohn + + * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode + for TARGET_64BIT. + (rs6000_gimplify_va_arg): Use size_int instead of build_int_2. + +2004-07-14 Roger Sayle + + * expmed.c (expand_sdiv_pow2): New function to expand signed division + by a positive power of two, split out from expand_divmod. Provide + an alternate implementation when shifts are expensive. Lower the + threshold for using a branchless implementation to BRANCH_COST >= 2. + (expand_divmod): Call expand_sdiv_pow2 for suitable divisions. + +2004-07-14 Paolo Bonzini + + * tree-dfa.c (make_rename_temp): *Really* work just + like create_tmp_var if called while outside SSA form. + +2004-07-14 Ulrich Weigand + + * config/s390/s390.md ("udivsi3"): Ensure trap is generated + for division by zero. + ("umodsi3"): Likewise. + +2004-07-14 Richard Sandiford + + * config/mips/mips.c (mips_output_move): When generating mips16 code, + force loads of negative constants to be split. + * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise. + Generalize SImode li/neg splitter to cope with other modes. + +2004-07-14 Paolo Bonzini + + * expmed.c: Remove more references to QUEUED in the comments. + * expr.c: Likewise. + +2004-07-14 Richard Sandiford + + Revert: + 2004-07-13 Richard Henderson + * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes + correctly. + +2004-07-14 Paolo Bonzini + + * tree-dfa.c (make_rename_temp): Work just like + create_tmp_var if called while outside SSA form. + +2004-07-14 Paolo Bonzini + + * expr.c (enqueue_insn, finish_expr_for_function, + protect_from_queue, queued_subexp_p, mark_queue, + emit_insns_enqueued_after_mark, emit_queue, + expand_increment): Remove. + (store_constructor): Expand increment as an assignment. + (expand_expr_real_1 ): Abort. + * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY, + QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function, + protect_from_queue, emit_queue, queued_subexp_p): Remove. + * function.h (pending_chain, x_pending_chain): Remove. + * rtl.def (QUEUED): Remove. + + * emit-rtl.c (copy_insn_1, copy_most_rtx, + set_used_flags, verify_rtx_sharing): Remove references to QUEUED. + * genattrtab.c (attr_copy_rtx, clear_struct_flag, + encode_units_mask): Likewise. + * local-alloc.c (equiv_init_varies_p): Likewise. + * rtl.c (copy_rtx): Likewise. + * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. + * simplify-rtx.c (simplify_gen_subreg): Likewise. + * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise. + + * builtins.c (expand_builtin, expand_builtin_apply, + expand_builtin_mathfn, expand_builtin_mathfn_2, + expand_builtin_mathfn_3, expand_builtin_setjmp_setup): + Remove calls to emit_queue and protect_from_queue. + * calls.c (expand_call, precompute_arguments, + precompute_register_parameters, rtx_for_function_call, + store_one_arg): Likewise. + * dojump.c (do_compare_and_jump, do_jump): Likewise. + * explow.c (memory_address): Likewise. + * expmed.c (clear_by_pieces_1, clear_storage, + clear_storage_via_libcall, emit_group_load, + emit_group_store, emit_store_flag, + expand_expr_real_1, store_by_pieces, + store_constructor, store_expr, try_casesi, + try_tablejump): Likewise. + * function.c (expand_pending_sizes): Likewise. + * optabs.c (emit_cmp_and_jump_insns, + emit_conditional_add, emit_conditional_move, + expand_fix, expand_float, prepare_cmp_insn): Likewise. + * stmt.c (emit_case_bit_tests, + expand_asm_expr, expand_computed_goto, + expand_decl_init, expand_end_case_type, + expand_end_stmt_expr, expand_expr_stmt_value, + expand_return, expand_start_case, + optimize_tail_recursion): Likewise. + * config/c4x/c4x.c (c4x_expand_builtin): Likewise. + * config/s390/s390.c (s390_expand_cmpmem): Likewise. + +2004-07-14 Ben Elliston + + * vec.h: Comment fix. + +2004-07-13 Richard Henderson + + * target.h (struct gcc_target): Add calls.pass_by_reference. + * target-def.h (TARGET_PASS_BY_REFERENCE): New. + * function.c (pass_by_reference): Use the hook. + * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison. + * targhooks.c, targhooks.h (hook_pass_by_reference_false): New. + (hook_pass_by_reference_must_pass_in_stack): New. + * config/alpha/alpha.c (function_arg): Don't query pass-by-ref. + (alpha_pass_by_reference): New. + (TARGET_PASS_BY_REFERENCE): New. + * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/arc/arc.c (arc_pass_by_reference): New. + (TARGET_PASS_BY_REFERENCE): New. + * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): True. + * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove. + * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New. + (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference. + * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/cris/cris.c (cris_pass_by_reference): New. + (TARGET_PASS_BY_REFERENCE): New. + * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref. + (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise. + (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New. + * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill. + * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New. + (frv_function_arg_pass_by_reference): Remove. + * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove. + * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New. + (ix86_pass_by_reference): Rename from function_arg_pass_by_reference. + * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill. + * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New. + (ia64_pass_by_reference): Rename from + ia64_function_arg_pass_by_reference. + * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill. + * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New. + (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference. + * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. + * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove. + * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New. + (m32r_pass_by_reference): Adjust prototype. Make static. + Handle mode sizes correctly. + * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c + (m68hc11_function_arg_pass_by_reference): Remove. + * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. + * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New. + * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove. + * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New. + (mips_va_arg): Use pass_by_reference. + (mips_pass_by_reference): Rename from function_arg_pass_by_reference. + Handle mode sizes correctly. + * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. + * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill. + * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New. + (mmix_pass_by_reference): Rename from + mmix_function_arg_pass_by_reference. + * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): True. + * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New. + (mn10300_pass_by_reference): New. + * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): True. + * config/pa/pa.c (pa_pass_by_reference): New. + (TARGET_PASS_BY_REFERENCE): New. + * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): True. + * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill. + * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New. + (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference. + * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill. + * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New. + (s390_pass_by_reference): Rename from + s390_function_arg_pass_by_reference. + (s390_function_arg_advance): Don't query pass-by-ref. + (s390_function_arg): Likewise. + (s390_gimplify_va_arg): Use pass_by_reference. + (s390_call_saved_register_used): Likewise. + * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New. + (shcompact_byref, sh_pass_by_reference): New. + * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (SHCOMPACT_BYREF): Remove. + * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill. + * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New. + (sparc_pass_by_reference): Rename from function_arg_pass_by_reference. + (sparc_gimplify_va_arg): Use pass_by_reference. + * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New. + (v850_pass_by_reference): New. + * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + (FUNCTION_ARG_CALLEE_COPIES): True. + * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from + FUNCTION_ARG_PASS_BY_REFERENCE docs. + +2004-07-14 Richard Henderson + Richard Sandiford + + * config/mips/mips-protos.h (mips_va_arg): Delete. + * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete. + * config/mips/mips.c: Include tree-gimple.h. + (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. + (mips_arg_info): Remove special handling of must_pass_in_stck args. + (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg. + (function_arg_pass_by_reference): Return true if must_pass_in_stack. + +2004-07-13 Bob Wilson + + * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap + arguments for COND_EXPR in big-endian adjustment code. + +2004-07-13 John David Anglin + + * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete. + * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64. + * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers. + * pa64-regs.h (REG_ALLOC_ORDER): Likewise. + +2004-07-13 Diego Novillo + + PR tree-optimization/16443 + * tree-ssa-alias.c: Add more description for + CALL_CLOBBERED_VARS and ADDRESSABLE_VARS. + * tree-ssa-operands.c (get_asm_expr_operands): Re-order the + clobbering of call-clobbered and addressable variables. If + there are any before aliases have been computed, add them. + +2004-07-13 Diego Novillo + + * tree-optimize.c (execute_todo): Flush DUMP_FILE before + verification. + +2004-07-13 Ulrich Weigand + + * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead + of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR + to the same type. + +2004-07-13 Per Bothner + + * collect2.c (main): Handle --no-demangle and --demangle flags. + +2004-07-13 Sebastian Pop + + * Makefile.in (OBJS-common): Add tree-data-ref.o. + (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h. + (tree-data-ref.o): New rule. + * lambda.h: New file. + * tree-data-ref.c: New file. + * tree-data-ref.h: New file. + * tree.c (int_cst_value, tree_fold_gcd): New functions. + * tree.h (int_cst_value, tree_fold_gcd): Declared here. + +2004-07-13 Eric Botcazou + + PR target/13926 + * config/sparc/sparc-protos.h (output_ubranch): New prototype. + * config/sparc/sparc.c (output_ubranch): New function. + * config/sparc/sparc.md (jump pattern): Use it. + +2004-07-13 Eric Botcazou + + PR target/16494 + * config/sparc/sparc.c (output_cbranch): Properly guard + the code handling far branches with TARGET_V9. + * config/sparc/sparc.md (length attribute): Document the + side-effect of having a length greater or equal to 3. + +2004-07-13 Eric Botcazou + Lloyd Parkes + + PR target/15186 + * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass + /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified. + +2004-07-13 Eric Botcazou + Martin Sebor + + PR target/12602 + * doc/invoke.texi (SPARC options): Document -threads + and -pthreads on Solaris. + +2004-07-13 Richard Henderson + + * builtins.c (std_gimplify_va_arg_expr): Handle types passed + by reference. + (ind_gimplify_va_arg_expr): Remove. + * tree.h (ind_gimplify_va_arg_expr): Remove. + * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it. + * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow + argsp to be null. + + * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove. + (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove. + * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c, + config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c, + config/mn10300/mn10300.c, config/v850/v850.c: Similarly. + +2004-07-13 Richard Henderson + + * function.c (pass_by_reference): New. + (assign_parm_find_data_types): Use it. + * calls.c (initialize_argument_information): Likewise. + (emit_library_call_value_1): Likewise. + * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. + * function.h (pass_by_reference): Declare. + +2004-07-13 Richard Henderson + + * target-def.h (TARGET_MUST_PASS_IN_STACK): New. + * target.h (struct gcc_target): Add calls.must_pass_in_stack. + * expr.h (MUST_PASS_IN_STACK): Remove. + * system.h (MUST_PASS_IN_STACK): Poison. + * tree.h (must_pass_in_stack_var_size): Declare. + (must_pass_in_stack_var_size_or_pad): Declare. + * calls.c (must_pass_in_stack_var_size): New. + (must_pass_in_stack_var_size_or_pad): Rename from + default_must_pass_in_stack. + * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New. + (TARGET_MUST_PASS_IN_STACK): New. + * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove. + * config/fr30/fr30.c (fr30_must_pass_in_stack): New. + (TARGET_MUST_PASS_IN_STACK): New. + * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove. + * config/frv/frv.c (frv_must_pass_in_stack): New. + (TARGET_MUST_PASS_IN_STACK): New. + * config/frv/frv.h (MUST_PASS_IN_STACK): Remove. + * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove. + * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New. + (ix86_must_pass_in_stack): Make static. + * config/i386/i386.h (MUST_PASS_IN_STACK): Remove. + * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New. + * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove. + * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New. + * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove. + * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove. + * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New. + (mcore_must_pass_on_stack): Remove. + * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove. + * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New. + * config/mips/mips.h (MUST_PASS_IN_STACK): Remove. + * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New. + * config/pa/pa.h (MUST_PASS_IN_STACK): Remove. + * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove. + * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove. + * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New. + (TARGET_MUST_PASS_IN_STACK): New. + * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New. + * config/sh/sh.h (MUST_PASS_IN_STACK): Remove. + * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New. + * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove. + * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New. + * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove. + * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from + MUST_PASS_IN_STACK. + + * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h, + config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c, + config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h, + config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c, + config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c, + config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c, + config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, + config/xtensa/xtensa.c: Use target hook. + +2004-07-13 Anthony Heading + + * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo. + * configure: Rebuilt. + +2004-07-13 Richard Sandiford + + * doc/invoke.texi: Remove documentation for MIPS -mrnames option. + * config/mips/mips.h (mips_reg_names): Don't declare. + (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down. + (TARGET_NAME_REGS): Delete. + (TARGET_SWITCHES): Remove -mrnames. + (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[]. + (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned + in REGISTER_NAMES. + * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete. + (override_options): Remove handling of TARGET_NAME_REGS. + +2004-07-13 Richard Sandiford + + * config/mips/mips.h (TARGET_*): Boolify. + +2004-07-12 Nick Clifton + + * config.gcc: Add sh-*-symbianelf target. + * config/sh/sh.c: Add new target macros: + TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING, + TARGET_CXX_IMPORT_EXPORT_CLASS. + (sh_file_start): Create a definition of the .directive section. + (sh_attribute): Add dllimport and dllexport attributes. + * config/sh/symbian-pre.h: New file. + * config/sh/symbian-post.h: New file. + * config/sh/symbian.c: New file. Contains Symbian specific + functions. + * config/sh/sh-protos.h: Add prototypes for new functions + provided by symbian.c. + * config/sh/t-symbian: New file. + * doc/extend.texi: Document support for dllimport and dllexport + attributes by the sh-symbianelf target. + +2004-07-12 James E Wilson + + * Makefile.in (AR): Use @AR@ not ar. + (NM): New. + (AR_FOR_TARGET): Use $(AR) not ar for native. + (NM_FOR_TARGET): Use $(NM) not nm for native. + * configure.ac: Add AC_CHECK_PROG calls for NM and AR. + * configure: Regenerate. + +2004-07-12 David S. Miller + + * config/sparc/sparc.md (ashlsi3): Eliminate const 1 + special case. + (ashldi3_sp64): Likewise. + +2004-07-12 John David Anglin + + PR target/16477 + * pa.c (function_arg): Update comment. + * pa.h (BLOCK_REG_PADDING): Define. + +2004-07-12 Zdenek Dvorak + + PR tree-optimization/16461 + * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name + arguments of phi nodes. + +2004-07-12 Devang Patel + + * doc/invoke.texi (Darwin Options): Document -gused and -gfull. + +2004-07-12 Steve Ellcey + + * function.c (expand_function_start): Ensure r_save is in Pmode. + * calls.c (prepare_call_address): Ensure static_chain_value is + in Pmode. + * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and + r_save_area are in Pmode. + * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr, + fnaddr, and static_chain are in Pmode. + +2004-07-12 Vladimir Makarov + + PR target/16445 + * config/ia64/ia64.c (bundling): Don't count ignored insns. + +2004-07-12 Richard Henderson + + * target.h (struct gcc_target): Move gimplify_va_arg_expr + next to build_builtin_va_list. + * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match. + * builtins.c (gimplify_va_arg_expr): Likewise. + * gimplify.c (copy_if_shared_r): Likewise. + +2004-07-12 Alexandre Oliva + + * passes.c (rest_of_decl_compilation): Don't defer call of + assemble_variable if its DECL_RTL is already set. + +2004-07-12 Sebastian Pop + + * cfgloop.h (struct loop): Add nb_iterations field. + (current_loops): Declare. + * tree-chrec.c (chrec_not_analyzed_yet, + chrec_dont_know, chrec_known, count_ev_in_wider_type, + chrec_contains_symbols_defined_in_loop): Remove the temporary + hooks. + * tree-flow-inline.h (loop_containing_stmt): New function. + * tree-scalar-evolution.c: Add implementation. + * tree-scalar-evolution.h: Add declarations. + +2004-07-12 Vladimir Makarov + + PR rtl-optimization/15921 + * Makefile.in (global.o): Add recog.h. + + * global.c (recog.h): Add the include-clause. + (bb_info): New member earlyclobber. + (allocate_bb_info, free_bb_info): Initialize/finish the new + member. + (earlyclobber_regclass, earlyclobber_regclass_length): The new + global variables. + (check_earlyclobber, regclass_intersect, + mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1): + New functions. + (calculate_local_reg_bb_info): Calculate value of earlyclobber. + (make_accurate_live_analysis): Modify pavin. + +2004-07-12 Diego Novillo + + * tree-cfg.c (find_taken_edge): Statically compute the truth + value of a predicate comparing an SSA_NAME to itself. + +2004-07-12 Roger Sayle + + * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the + rs6000 doesn't have shift-and-add or shift-and-sub instructions + by returning the cost of a multiplication plus an addition. + +2004-07-12 Paolo Bonzini + + PR tree-optimization/14107 + * gimplify.c (gimplify_return_expr): Accept a + RETURN_EXPR with an error argument. + * tree-optimize.c (init_tree_optimization_passes): + Run pass_warn_function_return at -O0. + +2004-07-12 Roger Sayle + + * doc/invoke.texi: Correct -fasynchronous-unwind-tables option + index entry. + +2004-07-12 Richard Sandiford + + * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/mips/3000.md: Add copyright notice. Remove automota and + function units; use generic ones instead. Only define reservations + for things that are different from generic.md. Extend each clause + to include r3900. + * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files. + * config/mips/mips.md: Include them. Remove define_function_units. + (alu, imuldiv): New automata and units. + +2004-07-12 Ben Elliston + + * doc/invoke.texi (Optimize Options): Document -frename-registers + not being enabled by default at -O3. + +2004-07-11 Roger Sayle + + * fold-const.c (fold) : Canonicalize X + -C as X - C for + floating point additions, to keep real immediate constant positive. + : For floating point subtractions, only transform X - -C + into X + C, and leave positive real constants as X - C. + +2004-07-11 John David Anglin + + * pa.c (hppa_gimplify_va_arg_expr): Remove comment. + +2004-07-11 Zdenek Dvorak + + PR tree-optimization/15654 + * tree-tailcall.c (eliminate_tail_call): Remove unreachable code. + +2004-07-11 Roger Sayle + + * builtins.c (fold_builtin_fputs): Don't bother converting the + return type to integer_type_node, as we've already checked that + the result will be ignored. + + * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such + that signed addition, subtraction, multiplication, division, + remainder, negation and absolute value may potentially trap. + + * fold-const.c (fold_ignored_result): New function to strip + non-side-effecting tree nodes from an expression whose result + is ignored. + (fold_convert): Call fold_ignored_result when casting a value + to VOID_TYPE. + (omit_one_operand): Call fold_ignored_result on the "omitted" + operand when building a COMPOUND_EXPR. + (pedantic_omit_one_operand): Likewise. + * tree.h (fold_ignored_result): Prototype here. + * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result + when we're going to ignore the result. + +2004-07-11 Richard Henderson + + PR tree-opt/16383 + * tree-ssa-ccp.c (fold_stmt_r): Split out... + * tree.c (fields_compatible_p, find_compatible_field): ... new. + * tree.h (fields_compatible_p, find_compatible_field): Declare. + * tree-sra.c (sra_hash_tree): Hash fields by offset. + (sra_elt_eq): Use fields_compatible_p. + (generate_one_element_ref): Use find_compatible_field. + +2004-07-11 Richard Henderson + + PR tree-opt/16422 + * tree-sra.c (generate_one_element_init): New. + (generate_element_init): Use it. + (scalarize_init): Push/pop gimplify context around it. + (find_new_referenced_vars_1, find_new_referenced_vars): New. + * gimplify.c (gimplify_expr): Allow SSA_NAME. + +2004-07-11 Roger Sayle + + * rtlanal.c (insn_rtx_cost): New function, moved and renamed from + combine.c's combine_insn_cost. + * rtl.h (insn_rtx_cost): Prototype here. + * combine.c (combine_insn_cost): Delete function. + (combine_validate_cost): Update callers of combine_insn_cost to + call insn_rtx_cost instead. + (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid + requesting the rtx_cost of call and/or jump instructions. + + * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling + rtx_cost directly. Don't request/use the cost of call or jump + instructions. Return -1 if the cost of any instruction can't be + determined (or the BB contains a function call). + (find_if_case_1): Abort transformation if total_bb_rtx_cost returns + -1 (i.e. can't determine the cost of any instruction or the basic + block contains a subroutine call). + (find_if_case_2): Likewise. + +2004-07-11 Roger Sayle + + * rs6000.c (struct processor_costs): Change semantics of fields to + include the COST_N_INSNS scaling, and update all initializers. + (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields. + Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE. + Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When + optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE. + +2004-07-11 Joseph S. Myers + + * LANGUAGES: Remove obsolete information. + +2004-07-11 Ulrich Weigand + + * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and + SIGBUS signal frames, the PSW address points *to* the faulting + instruction, not after it. + +2004-07-11 Ulrich Weigand + + * config/s390/s390.c (legitimize_tls_address): Handle constant offsets + added to TLS symbol addresses. + +2004-07-11 Richard Henderson + + * expmed.c (init_expmed): Use stack-local structures for + temporary rtl. Don't recognize shifts. + +2004-07-11 Richard Henderson + + * expr.c (store_expr): Don't fiddle subreg promotion for types + with precision smaller than the mode. + +2004-07-11 Joseph S. Myers + + * tree.h (all_types_permanent): Remove. + +2004-07-11 Joseph S. Myers + + * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block, + maybe_build_cleanup, update_decl_after_saving): Remove hooks. + * langhooks.c (lhd_clear_binding_stack): Remove. + * langhooks-def.h (lhd_clear_binding_stack, + LANG_HOOKS_MAYBE_BUILD_CLEANUP, + LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, + LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL, + LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. + (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing. + * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, + LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK, + LANG_HOOKS_MAYBE_BUILD_CLEANUP, + LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison. + * tree.h (poplevel): Don't declare. + * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, + LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. + * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, + LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): + Remove. + +2004-07-11 Joseph S. Myers + + PR tree-optimization/16437 + * c-common.c (shorten_compare): Don't mark result of conversion to + narrower signed type as overflowing. + * fold-const.c (decode_field_reference): Determine whether + signedness comes from outer type using precision rather than size. + +2004-07-11 Phil Edwards + + * configure.ac: Alphabetize --enable-checking list, add + missing valgrind entry. + * configure: Regenerate. + +2004-07-11 Phil Edwards + + * doc/install.texi (Testing): Fix syntax in "make check" example. + +2004-07-10 James E Wilson + + * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp. + +2004-07-10 Zdenek Dvorak + + PR rtl-optimization/16001 + * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in + niter_expr. + +2004-07-10 Geoffrey Keating + + * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt. + +2004-07-10 Steve Kargl + James Morrison + + * doc/contrib.texi (Contributors): Add gfortran contributors and + fix a couple of typos. + +2004-07-10 Zdenek Dvorak + + PR rtl-optimization/15387 + * calls.c (check_sibcall_argument_overlap_1): Handle pointers + to incoming args space correctly. + +2004-07-10 John David Anglin + + * pa.c (output_indirect_call): Only use %r2 as the link register in + indirect calls with the long PA 2.0 pc-relative branch. + +2004-07-10 Daniel Jacobowitz + + * config/i386/i386.c (override_options): Pick a 64-bit CPU + for the default tuning if TARGET_64BIT. + +2004-07-10 Richard Henderson + + * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary + to HOST_WIDE_INT. Fold pad-args-down arithmetic. + +2004-07-10 Jakub Jelinek + + * expr.h (store_bit_field, extract_bit_field): Remove last argument. + * expmed.c (store_bit_field, extract_bit_field): Remove last + argument. + * builtins.c (expand_builtin_signbit): Adjust callers. + * optabs.c (expand_vector_binop, expand_vector_unop): Likewise. + * calls.c (store_unaligned_arguments_into_pseudos): Likewise. + * ifcvt.c (noce_emit_move_insn): Likewise. + * stmt.c (expand_return): Likewise. + * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg, + store_field, expand_expr_real_1): Likewise. + +2004-07-10 Richard Henderson + + * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR. + +2004-07-09 Mike Stump + + * config/darwin.c (no_dead_strip): Add. + (HAVE_DEAD_STRIP): Add. + (darwin_emit_unwind_label): Ensure that we don't dead code strip + the .eh label. + +2004-07-09 Zdenek Dvorak + + * tree-ssa-loop-im.c: New file. + * Makefile.in (tree-ssa-loop-im.o): Add. + * cfgloop.c (superloop_at_depth): New function. + * cfgloop.h (superloop_at_depth): Declare. + * common.opt (ftree-lim): New flag. + * expr.c (array_ref_up_bound): New function. + * params.def (PARAM_LIM_EXPENSIVE): New parameter. + * timevar.def (TV_LIM): New timevar. + * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when + computing immediate uses of a phi node. + * tree-flow.h (struct tree_ann_common_d): Add aux field. + (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare. + * tree-optimize.c (init_tree_optimization_passes): Add pass_lim. + * tree-pass.h (pass_lim): Declare. + * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New + functions. + (pass_lim): New pass structure. + * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly. + * tree.c (in_array_bounds_p): New function. + * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs. + (in_array_bounds_p, array_ref_up_bound): Declare. + * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document. + * doc/passes.texi (tree-ssa-loop-im.c): Document. + +2004-07-09 Richard Henderson + + * builtins.c (expand_builtin_stpcpy): Don't modify len. + + * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs + with prejudice. + +2004-07-10 Kelley Cook + + * flags.h: Delete redundant prototypes that are being generated + in options.h from common.opt. + * common.opt: Add in the expository comments formerly in flags.h. + +2004-07-09 Jan Beulich + + * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers + available for use only when TARGET_MMX/_SSE is set, and check for + variable argument function if any register count is non-zero. + (function_arg): Correctly suppress repeated warnings for passing SSE + vectors are arguments without SSE enabled. + (ix86_function_arg_boundary): Without SSE enabled, the use of what + would be SSE register modes does no longer influence the alignment. + +2004-07-09 Richard Henderson + + * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD. + Always align upward to arg boundary. Use size_in_bytes/round_up. + Maintain type-correctness of constants. + * stor-layout.c (round_up, round_down): Special-case powers of 2. + +2004-07-09 David S. Miller + + * config/sparc/sparc.c (*_costs): Scale instruction costs + by COSTS_N_INSNS. + (sparc_rtx_costs): Adjust as appropriate. + +2004-07-09 Jan Beulich + + * config/i386/mm3dnow.h: New. + * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64. + +2004-07-09 Richard Henderson + + * simplify-rtx.c (simplify_const_relational_operation): Only + look at bounds of scalar integers. + +2004-07-09 Jan Beulich + + * config/i386/i386.md (sse2_clflush): Use correct operand for clflush. + +2004-07-09 Andrew Pinski + + * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as + always referenced. + (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and + UOBJC_METACLASS_decl. + +2004-07-09 James E Wilson + + PR target/16364 + * config/ia64/ia64.c (ia64_function_arg): For a single element HFA, + do return a parallel if hfa_mode == XFmode and mode == TImode. + +2004-07-09 Jan Beulich + + * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes + permissible for unary plus. + +2004-07-09 Jan Beulich + + * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED. + (BT_FN_UINT): Rename from BT_FN_UNSIGNED. + (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED. + (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG, + BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New. + * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx, + BUILTIN_POPCOUNTxxx): Arguments are unsigned. + (BUILTIN_xxxIMAX): New. + * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX, + BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and + BUILT_IN_PARITYIMAX. + +2004-07-09 David S. Miller + + * config/sparc/sparc.h (processor_costs): Define. + (sparc_costs): Declare. + * config/sparc/sparc.c (cypress_costs, supersparc_costs, + hypersparc_costs, sparclet_costs, ultrasparc_costs, + ultrasparc3_costs): New. + (sparc_override_options): Set sparc_costs as appropriate. + (sparc_rtx_costs): Use sparc_costs instead of messy + conditionals. + +2004-07-09 Steven Bosscher + + * doc/md.texi (Processor pipeline description): Mention that + the old pipeline description is deprecated. + + * config/rs6000/7450.md (automaton ppc7450): Split up, move + mciu_7450 function unit to... + (automaton ppc7450mciu): ...new automaton. + + * haifa-sched.c (insert_schedule_bubbles_p): Remove. + (schedule_block): Don't consider inserting bubbles. + (sched_init): Don't initialize DFA bubbles. + * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES, + TARGET_SCHED_DFA_BUBBLE): Remove. + * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks. + * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES, + TARGET_SCHED_DFA_BUBBLE): Remove documentation. + + * stmt.c (conditional_context): Remove prototype. + * tree.h (conditional_context): Remove. + * tree-cfg.c (pre_insert_on_edge): Remove. + + * c-common.h (c_expand_asm_operands): Remove prototype. + * c-typeck.c (c_expand_asm_operands): Remove. + +2004-07-09 Jan Beulich + + * config/i386/i386.c (classify_argument): Treat V1xx modes the same as + their base modes. CTImode, TCmode, and XCmode must be passed in memory. + TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode, + and V8QI are class SSE. All sufficiently small remaining vector modes + must be passed in one or two integer registers. + (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be + returned in memory. + (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and + __builtin_ia32_pmuludq128 have non-uniform argument and return types + and must thus be handled explicitly. + * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between + MMX and XMM regs. + (movv8qi_internal, movv4hi_internal, movv2si_internal, + movv2sf_internal): Permit moving between MMX and XMM registers (since + MMX areguments and return values are passed in XMM registers). + (sse2_umulsidi3): Correct type and mode. + +2004-07-09 Richard Henderson + + * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors. + +2004-07-09 Eric Christopher + + * config/rs6000/40x.md: Split into two automatons. + +2004-07-09 Zack Weinberg + Andrew Pinski + + * c-opts.c (c_common_post_options): Force unit-at-a-time mode + on when we have more than one input file. + (c_common_parse_file): Restore loop over all input files. + Clarify diagnostic for -dy when YYDEBUG wasn't defined. + + * c-decl.c (set_type_context): New function. + (pop_scope): Use it to set context of types. When we + encounter a TYPE_DECL, set the context of the attached type too. + (pop_file_scope): Don't call cpp_undef_all here. + (diagnose_mismatched_decls): Do not complain about a second + definition of an 'extern inline' function if it's not in the + same translation unit. Do not complain about inline + declaration after use if the use was in a different + translation unit. + (merge_decls): Don't clobber olddecl's DECL_CONTEXT. + (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in + the external scope. + (pushdecl_top_level): Likewise. + (grokdeclarator): Clarify what is going on with setting + DECL_EXTERNAL on function types, a little. + (c_write_global_declarations): Don't do anything if + -fsyntax-only or errors have been encountered. + +2004-07-09 Zack Weinberg + + * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument. + +2004-07-09 John David Anglin + + PR target/16459 + * pa.c (output_indirect_call): Use %r2 as the link register when + calling $$dyncall with a pc-relative branch. + +2004-07-08 Gerald Pfeifer + + * doc/install.texi (Binaries): Mention OpenPKG. + +2004-07-09 Diego Novillo + + Fix PR tree-optimization/15555 + * tree-dfa.c (dump_variable): If the variable is a pointer + SSA_NAME, also dump its points-to information. + * tree-flow.h (struct ptr_info_def): Add field + is_dereferenced. + (dump_points_to_info_for): Declare. + (debug_points_to_info_for): Declare. + * tree-optimize.c (init_tree_optimization_passes): Add a + second alias analysis pass after DOM2. + Move pass_del_pta to a later spot. + * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not + create a name tags when we find a dereferenced pointer. Just + mark the pointer dereferenced. + (collect_points_to_info_for): Move code to clear points-to + information to create_name_tags. + (create_name_tags): New function. + (compute_flow_sensitive_aliasing): Call it. + (setup_pointers_and_addressables): Mark type tags for renaming + here instead of ... + (create_memory_tag): ... here. + (merge_pointed_to_info): Do not merge PT_MALLOC attributes. + (dump_points_to_info_for): Declare extern. + (debug_points_to_info_for): New function. + +2004-07-09 Paolo Bonzini + + * config/arc/arc.md: Switch to DFA-based scheduler description. + * config/arc/arc.c: Switch to DFA-based scheduler description. + +2004-07-09 Richard Earnshaw + + * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame + pointer. + +2004-07-09 Richard Henderson + + * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove. + * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg. + * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/v850/v850-protos.h (v850_va_arg): Remove. + * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg. + * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove. + (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types. + (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE. + +2004-07-09 Richard Earnshaw + + PR target/12133 + * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float + and DImode to use +/-4k offset. + +2004-07-09 Richard Henderson + + * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg): + Remove. + * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (xstormy16_gimplify_va_arg_expr): Rewrite from + xstormy16_expand_builtin_va_arg. + * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/sparc/sparc-protos.h (sparc_va_arg): Remove. + * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static. + + * config/sh/sh-protos.h (sh_va_arg): Remove. + * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg. + * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/pa/pa-protos.h (hppa_va_arg): Remove. + * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg. + * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove. + * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg. + * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-07-09 Eric Botcazou + + * config/sparc/sparc.md (return): Rewrite length formula. + * config/sparc/sparc.c (output_return): Pass 1 as 5th + argument to final_scan_insn when in a delay slot. + (output_sibcall): Likewise. + +2004-07-09 Richard Earnshaw + + * arm.c (arm_cpp_interwork): New variable. + (arm_override_options): Set it if TARGET_INTERWORK was on the command + line. + * arm.h (arm_cpp_interwork): Declare it. + (TARGET_CPU_CPP_BUILTINS): Use it to control definition of + __THUMB_INTERWORK__ in the preprocessor. + +2004-07-09 Nathan Sidwell + + * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto. + +2004-07-09 Eric Botcazou + + PR target/16416 + * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro. + Override default settings to account for -m32 and -m64. + +2004-07-08 Randolph Chung + + * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. + +2004-07-09 Alexandre Oliva + + * builtins.c (fold_builtin_strncpy): Make sure len is a constant + before comparing it as such. + +2004-07-08 Richard Henderson + + * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a + temporary. Use bit arithmetic to align. + +2004-07-08 Jerry Quinn + + * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p, + nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P, + NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P. + * bb-reorder.c (mark_bb_for_unlikely_executed_section, + add_labels_and_missing_jumps, find_jump_block, + fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): + Likewise. + * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen, + link_btr_uses, move_btr_def): Likewise. + * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto, + expand_builtin_expect_jump): Likewise. + * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise. + * calls.c (expand_call, emit_library_call_value_1): Likewise. + * cfganal.c (forwarder_block_p): Likewise. + * cfgbuild.c (inside_basic_block_p, count_basic_blocks, + make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1, + find_bb_boundaries): Likewise. + * cfgcleanup.c (try_simplify_condjump, try_forward_edges, + merge_blocks_move_predecessor_nojumps, + merge_blocks_move_successor_nojumps, insns_match_p, + flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, + try_optimize_cfg): Likewise. + * cfgexpand.c (expand_block, construct_exit_block): Likewise. + * cfglayout.c (skip_insns_after_block, label_for_bb, + record_effective_endpoints, insn_locators_initialize, + fixup_reorder_chain, update_unlikely_executed_notes): Likewise. + * cfgmainloop.c (create_loop_notes): Likewise. + * cfgrtl.c (delete_insn, delete_insn_chain, + create_basic_block_structure, rtl_delete_block, free_bb_for_insn, + update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks, + block_label, try_redirect_by_replacing_jump, last_loop_beg_note, + redirect_branch_edge, force_nonfallthru_and_redirect, + rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p, + rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb, + update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info, + purge_dead_edges, cfg_layout_redirect_edge_and_branch, + cfg_layout_delete_block, cfg_layout_can_merge_blocks_p, + cfg_layout_merge_blocks, rtl_block_ends_with_call_p, + need_fake_edge_p, rtl_flow_call_edges_add): Likewise. + * combine.c (combine_instructions, can_combine_p, try_combine, + find_split_point, record_dead_and_set_regs, reg_dead_at_p, + distribute_notes, distribute_links, insn_cuid): Likewise. + * cse.c (fold_rtx, cse_insn, cse_around_loop, + invalidate_skipped_block, cse_set_around_loop, + cse_end_of_basic_block, cse_main, cse_basic_block, + cse_condition_code_reg): Likewise. + * cselib.c (cselib_process_insn): Likewise. + * ddg.c (create_ddg): Likewise. + * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify): + Likewise. + * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug, + gen_label_die, dwarf2out_var_location): Likewise. + * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn, + next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn, + last_call_insn, active_insn_p, next_label, prev_label, + link_cc0_insns, next_cc0_user, try_split, add_insn_after, + add_insn_before, remove_insn, add_function_usage_to, + reorder_insns, find_line_note, remove_unnecessary_notes, + emit_insn_after_1, classify_insn): Likewise. + * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before, + connect_post_landing_pads, sjlj_mark_call_sites, + sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers, + can_throw_internal, can_throw_external, set_nothrow_function_flags, + convert_to_eh_region_ranges): Likewise. + * explow.c (optimize_save_area_alloca): Likewise. + * expr.c (expand_expr_real): Likewise. + * final.c (insn_current_reference_address, compute_alignments, + shorten_branches, final, scan_ahead_for_unlikely_executed_note, + final_scan_insn, output_asm_label, leaf_function_p): Likewise. + * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables, + propagate_block_delete_insn, propagate_one_insn, + init_propagate_block_info, propagate_block, libcall_dead_p, + mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment): + Likewise. + * function.c (instantiate_virtual_regs, reorder_blocks_1, + expand_function_start, expand_function_end, contains, + thread_prologue_and_epilogue_insns, + reposition_prologue_and_epilogue_notes): Likewise. + * gcse.c (constprop_register, bypass_conditional_jumps, + insert_insn_end_bb, gcse_after_reload): Likewise. + * genemit.c (gen_expand, gen_split): Likewise. + * genpeep.c (gen_peephole, main): Likewise. + * global.c (build_insn_chain): Likewise. + * graph.c (node_data, print_rtl_graph_with_bb): Likewise. + * haifa-sched.c (unlink_other_notes, unlink_line_notes, + get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes, + restore_line_notes, rm_redundant_line_notes, rm_other_notes, + ok_for_early_queue_removal, set_priorities, sched_init): Likewise. + * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn, + cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block, + merge_if_block, block_jumps_and_fallthru_p, find_if_block, + dead_or_predicable): Likewise. + * integrate.c (try_constants): Likewise. + * jump.c (rebuild_jump_labels, cleanup_barriers, + purge_line_number_notes, init_label_info, mark_all_labels, + squeeze_notes, get_label_before, get_label_after, + reversed_comparison_code_parts, simplejump_p, pc_set, + returnjump_p, onlyjump_p, follow_jumps, mark_jump_label, + delete_barrier, delete_prior_computation, delete_computation, + delete_related_insns, delete_for_peephole, redirect_jump): + Likewise. + * lcm.c (optimize_mode_switching): Likewise. + * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc): + Likewise. + * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise. + * loop-invariant.c (find_exits, find_invariants_bb): Likewise. + * loop-iv.c (simplify_using_assignment): Likewise. + * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg, + libcall_benefit, skip_consec_insns, move_movables, prescan_loop, + find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop, + loop_bivs_init_find, strength_reduce, check_insn_for_bivs, + check_insn_for_givs, check_final_value, update_giv_derive, + basic_induction_var, product_cheap_p, check_dbra_loop, + loop_insn_first_p, last_use_this_basic_block, + canonicalize_condition, get_condition, loop_regs_scan, load_mems, + try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise. + * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule, + sms_schedule_by_order): Likewise. + * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise. + * postreload.c (reload_cse_simplify_operands, reload_combine, + reload_cse_move2add): Likewise. + * predict.c (can_predict_insn_p, estimate_probability, + expected_value_to_br_prob, process_note_predictions): Likewise. + * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise. + * profile.c (branch_prob): Likewise. + * ra-build.c (live_out_1, livethrough_conflicts_bb, + detect_webs_set_in_cond_jump): Likewise. + * ra-debug.c (ra_print_rtx_object, ra_debug_insns, + ra_print_rtl_with_bb): Likewise. + * ra-rewrite.c (insert_stores, rewrite_program2): Likewise. + * recog.c (next_insn_tests_no_inequality, find_single_use, + split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise. + * reg-stack.c (next_flags_user, record_label_references, + emit_swap_insn, swap_rtx_condition, subst_stack_regs, + compensate_edge, convert_regs_1): Likewise. + * regclass.c (scan_one_insn): Likewise. + * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, + regmove_optimize, fixup_match_1, single_set_for_csa, + combine_stack_adjustments_for_block): Likewise. + * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise. + * reload.c (find_reloads, find_reloads_address_1, subst_reloads, + find_equiv_reg): Likewise. + * reload1.c (reload, calculate_needs_all_insns, set_label_offsets, + reload_as_needed, emit_input_reload_insns, do_output_reload, + delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges): + Likewise. + * reorg.c (find_end_label, emit_delay_sequence, + delete_from_delay_slot, delete_scheduled_jump, optimize_skip, + get_jump_flags, rare_destination, mostly_true_jump, + try_merge_delay_insns, redundant_insn, own_thread_p, + fill_simple_delay_slots, fill_slots_from_thread, + fill_eager_delay_slots, relax_delay_slots, make_return_insns, + dbr_schedule): Likewise. + * resource.c (find_basic_block, next_insn_no_annul, + find_dead_or_set_registers, mark_target_live_regs): Likewise. + * rtl.h (RTX_PREV): Likewise. + * rtlanal.c (global_reg_mentioned_p, no_labels_between_p, + no_jumps_between_p, reg_used_between_p, reg_referenced_between_p, + reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage, + find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1, + tablejump_p, computed_jump_p, insns_safe_to_move_p, + find_first_parameter_load, can_hoist_insn_p): Likewise. + * sched-deps.c (get_condition, add_dependence, sched_analyze_2, + sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise. + * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns, + schedule_ebbs): Likewise. + * sched-rgn.c (is_cfg_nonregular, find_conditional_protection, + is_conditionally_protected, can_schedule_ready_p, + add_branch_dependences, debug_dependencies): Likewise. + * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable): + Likewise. + * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p, + reg_dead_after_loop, loop_find_equiv_value, loop_iterations, + set_dominates_use, ujump_to_loop_cont): Likewise. + * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise. + * varasm.c (output_constant_pool_1): Likewise. + +2004-07-08 Zdenek Dvorak + + * tree-scalar-evolution.c: New file. + * tree-scalar-evolution.h: New file. + * tree-ssa-loop-niter.c: New file. + * Makefile.in (SCEV_H): New. + (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files. + * cfgloop.h (struct loop): Add bounds field. + * tree-flow.h (struct tree_niter_desc): New type. + (number_of_iterations_cond, number_of_iterations_exit, + loop_niter_by_eval, find_loop_niter_by_eval, + estimate_numbers_of_iterations, can_count_iv_in_wider_type, + free_numbers_of_iterations_estimates): Declare. + * tree.h (lower_bound_in_type, upper_bound_in_type): Declare. + * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter. + * doc/invoke.texi (max-iterations-to-track): Document. + +2004-07-08 Kaz Kojima + + * config/sh/sh.c (sh_va_arg): Initinalize lab_over. + * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses. + (MODE_AFTER): Add cast appropriately. + * config/sh/sh.md (movdi splitter): Likewise. + (casesi_worker_2): Add const qualifier appropriately. + (eh_return): Remove unused variable. + (insv): Initialize v; + +2004-07-08 Richard Henderson + + * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove. + * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg. + * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove. + (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label. + + * config/m32r/m32r-protos.h (m32r_va_arg): Remove. + * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg. + * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove. + * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg. + * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove. + * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg. + * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/i860/i860-protos.h (i860_va_arg): Remove. + * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg. + * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-05-31 Aaron W. LaFramboise + + * system.h: Prototype getpagesize if missing. + * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS. + * configure: Regenerate. + * config.in: Regenerate. + +2004-07-08 Richard Henderson + + * config/fr30/fr30-protos.h (fr30_va_arg): Remove. + * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (fr30_gimplify_va_arg_expr): New. + (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove. + * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-07-08 Vladimir Makarov + + PR target/16414 + * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison + of asm_noperands result. + +2004-07-08 Richard Henderson + + * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove. + * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg. + * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-07-08 Richard Henderson + + * builtins.c (ind_gimplify_va_arg_expr): New. + * tree.h (ind_gimplify_va_arg_expr): Declare. + * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it. + +2004-07-08 Jan Beulich + + * expmed.c (extract_bit_field): Correct condition to use vec_extract + patterns also on vector elements other than the first one. + * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing + break statements. + +2004-07-08 Geoffrey Keating + + * config/rs6000/darwin-ldouble.c: Correct reference + to the Linnainmaa paper. + +2004-07-08 Richard Henderson + + * config/arc/arc-protos.h (arc_va_arg): Remove. + * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg. + * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove. + + * config/c4x/c4x-protos.h (c4x_va_arg): Remove. + * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. + (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg. + * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove. + +2004-07-08 John David Anglin + + * pa.md (prefetch_32, prefetch_64): Simplify constraint checks. + +2004-07-08 Zack Weinberg + + * c-decl.c (static_ctors, static_dtors): Make static. + (pop_file_scope): Call c_common_write_pch and + cgraph_finalize_compilation_unit here. + (build_cdtor): Moved here from c-objc-common.c; simplify. + (c_write_global_declarations_1): Clarify comment. + (c_write_global_declarations): Close the external scope before + doing anything else. Call build_cdtor, cgraph_optimize, and + mudflap_finish_file here. + * c-lang.c (finish_file): Don't call c_objc_common_finish_file. + Clarify comment. + * c-objc-common.c: No need to include cgraph.h. + (build_cdtor): Moved to c-decl.c. + (c_objc_common_finish_file): Delete. + * c-tree.h: Update to match. + * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file. + (generate_static_references): Set TREE_USED before calling finish_decl. + Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation + on the static_instances_decl. + +2004-07-08 Zack Weinberg + + * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope + decls when there is only one input translation unit. + * langhooks.c (lhd_set_decl_assembler_name): Partially revert + change of 2004-07-05; do not treat declarations with + DECL_CONTEXT a TRANSLATION_UNIT_DECL specially. + * opts.c (cur_in_fname): Delete. + * opts.h: Likewise. + * tree.c: Revert changes of 2004-07-05; no special treatment + for TRANSLATION_UNIT_DECLs. + * Makefile.in (tree.o): Update dependencies. + +2004-07-08 Roger Sayle + + * builtins.c (fold_builtin_strcpy): Merge functionality from + simplify_builtin_strcpy. Add additional len argument. No longer + static. Remove function prototype. + (fold_builtin_strncpy): Likewise integrate functionality from + simplify_builtin_strncpy. Add additional slen argument. No + longer static. Remove function prototype. + (simplify_builtin_strcy, simplify_builtin_strncpy): Delete. + (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change + types of "ignore" and "unlocked" parameters to bool. + (fold_builtin_1): Add additional ignore argument. Call renamed + fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked" + builtins. Update arguments to fold_builtin_strncpy and + fold_builtin_strcpy. Add function prototype. + (fold_builtin): Add additional Boolean ignore argument to pass + to fold_builtin_1. + (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy + and fold_builtin_strncpy instead of simplify_builtin_fputs, + simplify_builtin_strcpy and simplify_builtin_strncpy respectively. + + * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy, + simplify_builtin_strncpy): Delete function prototypes. + * tree.h (fold_builtin_fputs, fold_builtin_strcpy, + fold_builtin_strncpy): Add function prototypes here. + (fold_builtin): Update function prototype with new "bool ignore". + + * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin. + (ccp_fold_builtin): Update call to fold_builtin. Call + fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy + instead of simplify_builtin_fputs, simplify_builtin_strcpy and + simplify_builtin_strncpy respectively. + * fold-const.c (fold): Update call to fold_builtin. + +2004-07-08 Alexandre Oliva + + * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy + to strcpy. + + * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. + (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise. + (FUNCTION_ARG_CALLEE_COPIES): Likewise. + * calls.c: Remove ifdefs of macros above. + * functions.c: Likewise. + * expr.c: Likewise. + +2004-07-08 Eric Botcazou + + * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete. + (arch attribute): Delete. + (current_function_calls_alloca attribute): Rename into calls_alloca. + (calls_eh_return): New attribute. + (leaf_function): Likewise. + (length attribute): Fix formula for sibcalls. + (return insn): Correctly compute the 'length' attribute. + (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca. + +2004-07-08 Richard Henderson + + * tree-cfg.c (make_exit_edges): Use get_call_expr_in. + (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise. + (tree_block_ends_with_call_p, need_fake_edge_p): Likewise. + * tree-eh.c (lower_eh_constructs_1): Likewise. + * tree-sra.c (sra_walk_modify_expr): Likewise. + * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. + (eliminate_unnecessary_stmts): Likewise. + * tree-ssa-dse.c (dse_optimize_stmt): Likewise. + * tree-tailcall.c (optimize_tail_call): Likewise. + * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch. + +2004-07-08 Paolo Bonzini + Jakub Jelinek + + * config/i386/i386.c (override_options): Enable + SSE prefetches with -mtune, as long as we are + compiling for i686 or higher. All i686 processors + accept SSE prefetches as NOPS, some i586's don't. + +2004-07-08 Eric Botcazou + + PR target/10567 + * config/sparc/sparc.md (update_return): Honor flag_delayed_branch. + +2004-07-08 Diego Novillo + + * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in + the handling of clobbering ASM_EXPRs. + +2004-07-08 Eric Botcazou + + PR target/16430 + * config/sparc/sparc.c (function_value): In 64-bit mode, + return the aggregates larger than 16 bytes like unions. + +2004-07-08 Eric Botcazou + + PR target/16199 + * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When + 'temp' is zero, generate new pseudos as needed and emit the + sequence of insns in single-assignment form. Resync comments + with code. + (sparc_emit_set_const64): Pass zero as 'temp' argument to above + function before reload. + +2004-07-08 Nathan Sidwell + + * vec.c (vec_assert_fail): Remove duplicate 'function'. + + * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed. + + * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init): + Allocation is signed. + (VEC_reserve): Return flag, allocation is signed. + +2004-07-08 Richard Henderson + + * tree-ssa-ccp.c (fold_stmt): Get type directly from + OBJ_TYPE_REF_OBJECT. + +2004-07-08 Joseph S. Myers + Neil Booth + + PR c/2511 + PR c/3325 + * c-decl.c (finish_struct): Ensure bit-fields are given the + correct type. + * c-common.c (c_common_signed_or_unsigned_type): For C, require + the precision to match as well as the mode. + * expr.c (reduce_to_bit_field_precision): New function. + (expand_expr_real_1): Reduce expressions of bit-field type to + proper precision. + * langhooks.h (reduce_bit_field_operations): New hook. + * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): + Define. + * c-lang.c, objc/objc-lang.c + (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. + * objc/objc-act.c (check_ivars): Convert types to bit-field types + before checking. + * tree.c (build_nonstandard_integer_type): New function. + * tree.h (build_nonstandard_integer_type): New prototype. + * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat + conversions between integer and boolean types as useless. + +2004-07-08 Paolo Bonzini + + * c-common.c (c_common_nodes_and_builtins): Do not + create __builtin_ptrdiff_t and __builtin_size_t. + +2004-07-08 Andrew Pinski + + * Makefile.in (libbackend.o): Add -combine to the gcc + command line. + +2004-07-08 Nick Clifton + + * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define. + Set to -Os. + +2004-07-08 Richard Henderson + + * except.c (expand_eh_region_start, expand_eh_region_end, + expand_eh_handler, expand_eh_region_end_cleanup, + expand_start_all_catch, expand_start_catch, expand_end_catch, + expand_end_all_catch, expand_eh_region_end_allowed, + expand_eh_region_end_must_not_throw, expand_eh_region_end_throw, + expand_eh_region_end_fixup): Remove. + * stmt.c (struct nesting): Remove stack_level, innermost_stack_block, + cleanups, outer_cleanups, label_chain, exception_region. + (struct goto_fixup): Remove stack_level, cleanup_list_list. + (struct label_chain): Remove. + (struct stmt_status): Remove x_stack_block_stack. + (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups, + fixup_gotos, save_stack_pointer, expand_decl_cleanup, + expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral, + end_cleanup_deferral, last_cleanup_this_contour, + containing_blocks_have_cleanups_or_stack_level, + any_pending_cleanups): Remove. + (expand_null_return_1): Take no arguments. + (expand_label, expand_naked_return, expand_return, + expand_start_bindings_and_block, expand_end_bindings, expand_decl, + expand_anon_union_decl, expand_start_case, pushcase, pushcase_range, + expand_end_case_type): Don't use any of them. + * calls.c (expand_call): Likewise. + * dojump.c (do_jump): Likewise. + * function.c (expand_function_end): Likewise. + * expr.c (store_expr, expand_expr_real_1): Likewise. + (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR. + (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR, + CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR, + EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR. + * fold-const.c (fold_checksum_tree): Use first_rtl_op. + * gengtype.c (adjust_field_tree_exp): Remove rtl op handling. + * gimplify.c (gimplify_cleanup_point_expr): Renumber operands + for WITH_CLEANUP_EXPR. + (gimple_push_cleanup): Likewise. + * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE. + * print-tree.c (print_node): Likewise. + * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR. + * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH. + (has_cleanups): Remove GOTO_SUBROUTINE_EXPR. + * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2. + (GOTO_SUBROUTINE_EXPR): Remove. + * tree.h (WITH_CLEANUP_EXPR_RTL): Remove. + (DECL_TOO_LATE): Remove. + * except.h, tree.h: Update decls. + +2004-07-08 Paolo Bonzini + + * explow.c (optimize_save_area_alloca): Do not accept parameters. + * passes.c (rest_of_handle_final): Handle symout. + (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): + Push timevar here. + (rest_of_handle_sched): Break out SMS. Remove ifs for + flag_schedule_insns and flag_modulo_sched. + (rest_of_handle_addressof, rest_of_handle_cse2): Garbage + collect at the end. + (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS. + (rest_of_handle_partition_blocks, rest_of_handle_sms, + rest_of_handle_if_after_reload, rest_of_handle_peephole2, + rest_of_handle_mode_switching, rest_of_handle_jump, + rest_of_handle_guess_branch_prob, rest_of_handle_eh, + rest_of_handle_jump2, rest_of_handle_postreload, + rest_of_handle_flow2, rest_of_clean_state, + rest_of_handle_shorten_branches, + rest_of_handle_prologue_epilogue, + rest_of_handle_branch_target_load_optimize): New. + (rest_of_compilation): Call the above. Remove ggc_collect + calls moved to rest_of_handle_*. + * rtl.h (optimize_save_area_alloca): Do not accept parameters. + + * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW. + * except.c (set_nothrow_function_flags): Set TREE_NOTHROW. + * except.h (set_nothrow_function_flags): Update comment. + * function.c (current_function_nothrow): Remove. + * output.h (current_function_nothrow): Remove. + * passes.c (rest_of_compilation): Do not set TREE_NOTHROW. + * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW. + +2004-07-08 Eric Botcazou + + PR bootstrap/16326 + * reorg.c: Revert 2004-06-30 change. + (find_end_label): If HAVE_epilogue and !HAVE_return, + return 0 instead of creating a label at the end of the insn chain. + (optimize_skip): Account for the failure mode of find_end_label. + (fill_simple_delay_slots): Likewise. + (fill_slots_from_thread): Likewise. + (relax_delay_slots): Likewise. + +2004-07-08 Diego Novillo + + * tree-flow.h (addressable_vars): Declare. + * tree-ssa-alias.c (addressable_vars): Define. + (setup_pointers_and_addressables): Add addressable variables + to addressable_vars. + * tree-ssa-operands.c (get_stmt_operands): Move + handling of ASM_EXPRs ... + (get_asm_expr_operands): ... here. + When the ASM_EXPR clobbers memory, also clobber addressable + variables. + * tree-ssa.c (init_tree_ssa): Initialize addressable_vars. + (delete_tree_ssa): Reset addressable_vars. + +2004-07-07 Jan Beulich + Richard Henderson + + * varasm.c (assemble_variable): Use assemble_zeros for + zero-initialized variables. + (categorize_decl_for_section): Honor flag_zero_initialized_in_bss + for SECCAT_BSS and SECCAT_TBSS. + +2004-07-07 Jan Beulich + + * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP. + + * expmed.c (emit_store_flag): Also special-case double-word + (in-)equality comparison against -1. + + * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for + passing arguments the containers for which are registers. + + * calls.c (emit_library_call_value_1): Use mode of function parameter + rather than that of argument since constants have none. + +2004-07-08 Alexandre Oliva + + Introduce H8SX support. + * expr.c (expand_strcpy): Renamed and moved to... + * builtins.c (expand_movstr): ... here. Tweak. + (expand_builtin_strcpy): Adjust. Use movstr if len can't be + computed or has side effects. + (expand_builtin_stpcpy): Likewise. Use strcpy if return value is + unused, or if mempcpy fails. Adjust the return value in the + latter case. Use movstr if everything else fails. + * doc/md.texi (movstr): Document. + (movmemM, clrmemM): Fix explanation of memory block operands. + * config/h8300/h8300.md (stpcpy): Renamed to... + (movstr): ... this. Adjust. + 2004-07-07 Alexandre Oliva + * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to + movmem* and clrstr* to clrmem*. + 2004-06-27 Alexandre Oliva + * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to + GENERAL_REGS, always. + (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of + getting the stack pointer as addr. + * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes + from general_operand_dst. + * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode + variant of... + (movmd_internal): ... this. Add modes to operands. Disparage `D' + instead of requiring it to match only before reload. + (stpcpy_internal_normal): New, normal-mode variant of... + (stpcpy_internal): ... this. Add modes to operands. Disparage + `D' instead of requiring it to match only before reload. + * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add + mode argument. + * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to... + * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to + h8300_get_index. + * config/h8300/h8300.md (attr type): Add call. + (attr can_delay): If type is call, set it no. + (call, call_value): Set type to call. + 2004-06-21 Alexandre Oliva + * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New. + 2004-06-16 Alexandre Oliva + * tree.c (get_narrower): Don't narrow integral types into + non-integral types. + * config/h8300/h8300.c (h8300_expand_epilogue): Initialize + frame_size *before* the first use. + * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment + on input. + (peephole2): Don't widen instructions that push SP. Move + decrement of SP to the end of all stm-generating peepholes. + 2003-07-24 Richard Sandiford + * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield + and OR to set it to all ones. + 2003-07-24 Richard Sandiford + * config/h8300/h8300.md (can_delay): Default to "no" for bit branches. + (call, call_value): Set can_delay to "no". + 2003-07-22 Richard Sandiford + * config/h8300/h8300.md (extzv): Make subreg check more robust. + 2003-07-21 Richard Sandiford + * config/h8300/h8300.md (*brabit): Remove. + * config/h8300/h8300.md (*brabc, *brabs): Remove mode from + zero_extract. Use bit_memory_operand as the predicate for + operand 1 and 'WU' as the constraint. Check the difference + between the base length and the final one when deciding which + type of branch to use. + 2003-07-21 Richard Sandiford + * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1. + Use convert_move to extend the result for TARGET_H8300SX. Check + for QImode memory references. Optimize the case where the + destination is a paradoxical subreg. + 2003-07-21 Richard Sandiford + * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative. + * config/h8300/h8300.md (andqi): Remove bclr from h8sx version. + 2003-07-21 Richard Sandiford + * config/h8300/h8300.md: Include mova.md + (length_table): Add mova and mova_zero. + * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length + after all constant addresses for '%R', '%X', '%T' and '%S'. + (h8300_mova_length): New function. + (h8300_insn_length_from_table): Use it to handle mova and mova_zero. + * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to + dependencies for s-config, etc. + * config/h8300/gemova.sh: New file. + * config/h8300/mova.md: Generated. + 2003-07-20 Alexandre Oliva + * config/h8300/h8300.c (h8300_bitfield_length): New. + (nibble_operand): Adjust. + (h8300_binary_length): Handle conditional binary op. + (h8300_insn_length_from_table): Handle bitfield and bitbranch. + * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and + P#X. Introduced P#>0 + and P#<0, unused so far. W and Y are now prefixes to multi-letter + constraints. WU is introduced as a variant of U that requires a + mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT. + * config/h8300/h8300.md (attr type): Added bitbranch. + (attr length_table): Added bitfield and bitbranch. + (attr length): Compute bitbranch length. + (andqi): Separate pattern for H8300SX. Use bfld for loading the + least-significant bit of a byte. + (brabit, brabc, brabs): New. + (insv, extzv): Emit bfst and bfld on H8300SX. + (bfld, bfst, seq, sne): New. + (bstzhireg, cmpstz, bstz, bistz): New. + (cmpcondbset, condbset, cmpcondbclr, condbclr): New. + (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New. + 2003-07-11 Richard Sandiford + * config/h8300/h8300.c (h8sx_binary_memory_operator): New function. + (h8sx_unary_memory_operator): New function. + * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable. + (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator. + * config/h8300/h8300.md: Add peepholes to combine reloads and + arithmetic insns. + 2003-07-10 Richard Sandiford + * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints. + (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise. + (and?i, ior?i, xor?i): Likewise. + 2003-07-10 Richard Sandiford + * config/h8300/h8300.c: Move enums and prototypes to head of file. + Various whitespace fixes. + (h8300_constant_length): New function, split out from... + (h8300_displacement_size): ...here. Rename h8300_displacement_length. + (h8300_classify_operand): Use IN_RANGE. + (h8300_classify_operand): Use h8300_constant_length. + (h8300_short_move_mem_p): Tighten size check. + (h8sx_mergeable_memrefs_p): Tighten equality check. + 2003-06-30 Richard Sandiford + * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__ + for -msx. + * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code. + * config/h8300/crtn.asm: Likewise. + * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers + if __H8300SX__ is defined. + 2003-06-27 Richard Sandiford + * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter. + * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly. + (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed + addresses as mode-dependent. + * config/h8300/h8300.c (print_operand_address): Update call to + h8300_get_index. + (h8300_get_index): Take a mode argument. Rework to fix an + earlier misunderstanding. + 2003-06-26 Richard Sandiford + * config/h8300/h8300.c (zero_extendqisi2): Force the source operand + into a register if TARGET_H8300SX. + (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for + TARGET_H8300SX. Also disable related define_splits. + (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns. + 2003-06-23 Richard Sandiford + * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling. + 2003-06-20 Richard Sandiford + * config/h8300/h8300.h (OK_FOR_Z): New macro. + (EXTRA_CONSTRAINT_STR): Check it. + * config/h8300/h8300.c (h8300_classify_operand): Accept null + class arguments. + (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4. + * config/h8300/h8300.md (length_table): Add mov_imm4. + (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns. + 2003-06-20 Richard Sandiford + * genattrtab.c (write_eligible_delay): Allow candidate_insn to + be a label. + * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro. + * config/h8300/h8300.c (h8300_reorg): New function. + (TARGET_MACHINE_DEPENDENT_REORG): Define. + * config/h8300/h8300.md (length): Subtract the length of the + delay slot from (pc) when checking the range of forward branches. + (delay_slot, can_delay): New attributes. + (define_delay): Add bra/s handling. + (movmd_internal, return_h8sx, *return_1): Set can_delay to no. + (jump): Add delayed-branch handling. + 2003-06-17 Richard Sandiford + * expr.c (expand_strcpy): New function. + * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy. + (expand_builtin_stpcpy): Likewise. + * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove. + (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare. + * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd' + handling to improve register allocation for -fno-omit-frame-pointer. + (h8sx_split_movmd): Delete, moving er6 handling into... + (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions. + * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant. + (movmd): Add calls to copy_rtx. + (movmd_internal): In the second alternative, allow the initial and + final destination registers to be different . Update the splitter + accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6 + instead of h8sx_split_movmd. + (stpcpy, movsd): New expanders. + (movsd_internal): New define_insn. + 2003-06-13 Richard Sandiford + * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare. + (h8sx_emit_movmd, h8sx_split_movmd): Declare. + * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS + and DESTINATION_REGS. + (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. + (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes. + (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter. + (h8300_move_ratio): Declare. + (MOVE_RATIO): Use it. + * config/h8300/h8300.c (h8300_move_ratio): New variable. + (h8300_init_once): Initialize it. + (h8300_reg_class_from_letter): New function. + (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l". + (h8sx_emit_movmd, h8sx_split_movmd): New functions. + * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant. + (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants. + (movstrsi, movmd): New expanders. + (movmd_internal): New insn. + 2003-06-06 Richard Sandiford + * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define. + 2003-06-04 Richard Sandiford + * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn. + * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise. + 2003-06-03 Richard Sandiford + * config/h8300/h8300.c (nibble_operand): Fix warning. + * config/h8300/h8300.md (movstricthi): Set adjust_length to no. + (movsi_h8sx): Likewise here and the normal h8sx movhi pattern. + (movsf_h8300h): Disable for TARGET_H8300SX. + 2003-06-03 Richard Sandiford + * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel, + h8300_stm_parallel and h8300_return_parallel. + * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p, + h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel, + h8300_stm_parallel, h8300_return_parallel): New functions. + (h8300_expand_prologue): Don't enforce ldm/stm register alignment + if TARGET_H8300SX. Use h8300_push_pop. + (h8300_expand_epilogue): Likewise. Try to merge the return insn + and final pop when generating h8sx code. Always emit some form + of return insn. + * config/h8300/h8300.md: Don't enforce register alignment in + stm peepholes if TARGET_H8300SX. + (ldm_h8300s, stm_h8300s, return_h8sx): New patterns. + (ldm_h8300s_[234], stm_h8300_[234]): Disable. + (epilogue): Expect h8300_expand_epilogue to emit a return insn. + 2003-06-03 Richard Sandiford + * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib. + (MULTILIB_DIRNAMES): Add a directory for it. + (MULTILIB_MATCHES): Delete. + 2003-05-28 Richard Sandiford + * final.c (walk_alter_subreg): Handle addresses with subregs + inside a ZERO_EXTEND or AND. + * config/h8300/h8300-protos.h (h8300_get_index): Declare. + * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS + if TARGET_H8300SX. + (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index. + * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b), + @(dd,Rn.w) and @(dd,ERn.L). + (h8300_displacement_size): Take the whole address as argument. + (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly. + 2003-05-28 Richard Sandiford + * config/mips/mips-protos.h (h8300_operands_match_p): Declare. + (h8sx_mergeable_memrefs_p): Declare. + * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX. + (HAVE_PRE_INCREMENT): Likewise. + (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement + addresses for TARGET_H8300SX, + * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC + and POST_DEC. + (movb_length_table, movl_length_table): New tables. + (movw_length_table): Define to movb_length_table. + (h8300_displacement_size): New, split out from... + (h8300_classify_address): ...here. Handle pre/post inc/dec. + (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands. + (h8300_insn_length_from_table): Add cases for movb, movw and movl. + (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions. + (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx. + (compute_plussi_length, compute_plussi_cc): Update accordingly. + (h8sx_unary_shift_operator): Get the mode from the operator. + (binary_shift_operator): Likewise. + * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to + a memory reference, check whether the reference is offsettable. + (length_table): Add movb, movw and movl. + (movqi): Add new h8sx pattern. Don't force one operand to be a + register when generating h8sx code. + (movhi, movsi, movsf): Likewise. + (movstrictqi): Use the length_table attribute. + (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn. + (addqi3): Split into a define_expand and define_insn. Don't accept + memory operands in the expander. Use h8300_operands_match_p to + check for matching operands in the define_insn. + (subqi3, negqi2, one_cmplqi2): Likewise. + (add[hs]i3): Don't accept memory operands in the expander. Likewise + in any patterns that are unused in h8sx code. In the h8sx patterns, + use h8300_operands_match_p to check whether operands match. + (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3, + one_cmpl[hs]i3): Likewise. + (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand + in the expander. + 2003-05-23 Richard Sandiford + * config/h8300/h8300-protos.h (expand_a_shift): Return a bool. + (h8300_insn_length_from_table): Add a second parameter. + (output_h8sx_shift): Declare. + * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros. + (EXTRA_CONSTRAINT): Replace with... + (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y. + (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'. + (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator + and h8sx_binary_shift_operator. + * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false + for TARGET_H8300SX. + (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U. + (bit_memory_operand, fix_bit_operand): Likewise. + (h8300_length_table_for_insn): Remove. + (h8300_classify_operand): Fix check for 16-bit operands in 32-bit + instructions. + (h8300_short_immediate_length, h8300_binary_length): New functions. + (h8300_insn_length_from_table): Add an opcodes parameter. Rework. + (output_plussi): Use sub to add negative constants. + (compute_plussi_length): Adjust accordingly. + (h8sx_single_shift_type): New enum. + (h8sx_single_shift, h8sx_unary_shift_operator, + h8sx_binary_shift_operator, output_h8sx_shift): New functions. + (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a + single h8sx instruction. Return false in this case. + * config/h8300/h8300.md (length_table): Add short_immediate. + (length): Pass the operand array to h8300_insn_length_from_table. + (adjust_length): Assume "no" for insns with a length_table attribute. + (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3. + (*addhi3_h8300hs): Don't use for h8sx. + (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3 + and sub.w #xx:3. + (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand + 1's predicate to nonimmediate_operand. Only skip default expansion + if expand_a_shift or expand_a_rotate returns true. Add new patterns + for single h8sx shift instructions. + 2003-05-22 Alexandre Oliva + * config/h8300/h8300.c (nibble_operand): Split out of... + (reg_or_nibble_operand): ... this. + * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand. + * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3, + umulhisi3): Introduce expand, and introduce separate insns for + sign- or zero-extended REG and already-extended CONST_INT. + 2003-05-20 Richard Sandiford + * config/h8300/h8300.c (h8300_unary_length): Fix miscounting. + * config/h8300/h8300.md (subqi3): Generalize for h8sx. + (subhi3): Likewise. Don't accept immediates for operand 1. + Remove the early clobber from second alternative of the h8300s pattern. + (subsi3): Generalize for h8sx. Force operand 2 into a register + on plain h8300 targets. + (subsi3_h8300): Use h8300_dst_operand for consistency with expander. + (subsi3_h8300h): Generalize for h8sx. + (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. + 2003-05-19 Alexandre Oliva + * config/h8300/h8300.c (reg_or_nibble_operand): New. + * config/h8300/h8300.h (PREDICATE_CODES): Adjust. + (TARGET_H8300SXMUL): New. + (CONST_OK_FOR_P): New. + (CONST_OK_FOR_LETTER_P): Adjust. + * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3, + umulhisi3): Accept 4-bit immediate on H8SX. + (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New. + (udivsi3, divhi3, udivsi3, divsi3): New. + 2003-05-19 Richard Sandiford + * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare. + * config/h8300/h8300.h (OK_FOR_Q): New macro. + (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint. + (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand. + Add ADDRESSOF to the bit_operand entry. + * config/h8300/h8300.c (h8300_dst_operand): New predicate. + (h8300_src_operand): Likewise. + (bit_operand): Check nonimmediate_operand rather than general_operand. + Accept any nonimmediate_operand in h8sx code. + (h8300_and_costs): Initialize operands[1]. + (h8300_rtx_costs) : Return false if the operands aren't valid. + (h8300_operand_class): New enum. + (h8300_length_table): New typedef. + (addb_length_table, addw_length_table, addl_length_table, + logicl_length_table): New tables. + (logicb_length_table, logicw_length_table): New macros. + (h8300_classify_operand, h8300_length_from_table, + h8300_length_table_for_insn, h8300_unary_length, + h8300_insn_length_from_table): New functions. + (output_plussi): Only use adds and subs for register destinations. + Disable redundant clause. + (compute_plussi_cc): Likewise. + (compute_plussi_length): Likewise. Use h8300_length_from_table + to work out the length of an insn. + (output_logical_op): Only use narrower immediate instructions + if the destination is a register. + (compute_logical_op_cc): Likewise. + (compute_logical_op_length): Likewise. Use h8300_length_from_table. + (h8300_adjust_insn_length): Tighten check for reg<->mem moves. + * config/h8300/h8300.md (length_table): New attribute. + (length): When an instruction has a length_table attribute, use + h8300_insn_length_from_table to calculate its default length. + (cmpqi): Use h8300_dst_operand for the first operand and + h8300_src_operand for the second. + (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2, + negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3, + addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3, + iorsi3, xorhi3, xorsi3): Likewise. + (andqi3): Use h8300_src_operand for operand 2. Adjust the condition + so that it allows any combination of operands for TARGET_H8300SX. + (iorqi3, xorqi3): Likewise. + (cmpqi): Use the length_table attribute. + (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3, + xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. + (cmpqi): Add 'Q' constraint. + (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3, + iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. + 2003-05-14 Richard Sandiford + * config/h8300/h8300.h (MASK_H8300SX): New macro. + (TARGET_H8300S): True for both -ms and -msx. + (TARGET_H8300SX): New macro. + (TARGET_SWITCHES): Add entries for -msx and -mno-sx. + * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx. + * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx. + * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx. + [Temporary change.] + 2003-02-28 Alexandre Oliva + * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with + 16-bit pointers and 32-bit ints. + * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept + CONST_DOUBLE with mode no wider than SImode. + * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for + output operand. + 2003-02-27 Alexandre Oliva + * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX + or SUBREG thereof. + * config/h8300/h8300.h (PREDICATE_CODES): Adjust. + 2003-02-22 Alexandre Oliva + * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode. + +2004-05-28 Aaron W. LaFramboise + + * config.gcc (i[34567]86-*-mingw32*): Enable threads by default. + +2004-07-07 Per Bothner + + * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE. + +2004-07-07 Mike Stump + + * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore. + * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name) + (machopic_finish): Likewise. + +2004-07-07 Richard Henderson + + * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look + through any value-preserving cast. + +2004-07-07 Alexandre Oliva + + * function.c (assign_parm_find_data_types): Call + FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined. + +2004-07-07 Steven Bosscher + + * tree-cfg.c (group_case_labels): Remove case labels that have + the same target as the default case. + +2004-07-07 Steven Bosscher + + * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS + regardless of DECL_LANG_SPECIFIC being present or not. + * tree.h (DECL_NUM_STMTS): Purge. + +2004-07-07 Andrew Pinski + + * configure: Regenerate with the right autoconf. + +2004-07-07 David Edelsohn + + * ifcvt.c (total_bb_rtx_cost): New function. + (find_if_case_1): Compare rtx_cost of basic block to cost of + BRANCH_COST insns. + (find_if_case_2): Same. + +2004-07-07 Eric Botcazou + + PR target/10567 + * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch. + (output_return): Likewise. + (output_sibcall): Abort if !flag_delayed_branch. + (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch. + (emit_and_preserve): New function. + (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an + indirect jump to the thunked-to function if !flag_delayed_branch. + * config/sparc/sparc.md (delayed_branch): New attribute. + (load_pcrel_sym): Honor flag_delayed_branch. Use above + attribute to compute the length of the insn. + (goto_handler_and_restore): Likewise. + +2004-07-07 Andrew Pinski + + PR tree-optimization/15777 + * fold-const.c (fold_single_bit_test): Fold the x^1 expression. + + * expr.c (expand_expr_real_1): Fix formating. + BUFFER_REF and IN_EXPR are dead. + * fold-const.c (non_lvalue): BUFFER_REF is dead. + * tree-inline.c (estimate_num_insns_1): Likewise. + * tree-pretty-print.c (dump_generic_node): BUFFER_REF, + IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead. + * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill. + +2004-07-07 H.J. Lu + + * collect2.c (dump_file): Don't call cplus_demangle if + HAVE_LD_DEMANGLE is defined. + (main): Pass "--demangle" to ld if no_demangle is not 0 and + HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style + if HAVE_LD_DEMANGLE is defined. + + * configure.ac (--with-demangler-in-ld): Added + (HAVE_LD_DEMANGLE): Define if ld supports --demangle when + --with-demangler-in-ld is used. + * config.in: Regenerated. + * configure: Likewise. + +2004-07-07 Roger Sayle + + * config/rs6000/rs6000.c (struct processor_costs): Add new fields + for simple floating point operations "fp", double precision + multiplication "dmul", and single and double precision division + "sdiv" and "ddiv". Update all CPU variant tables as appropriate. + (ppc630_cost): New table split from ppc620_cost, to distinguish + differences in floating point latencies. + (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630. + (rs6000_rtx_costs): Add support for single and double precision + floating point addition, subtraction, multiplication, division, + fused-multiply-add, fused-multiply-sub, negation, absolute value + and negative absolute value. Tweak MEM case to use prefered idiom. + +2004-07-07 Richard Henderson + + * tree-flow-inline.h (may_propagate_copy): Move... + * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we + attempt to copy between types requiring conversion. + * tree-flow.h (may_propagate_copy): Update decl. + * tree-ssa-dom.c (cprop_operand): Tidy redundant tests. + +2004-07-07 Jakub Jelinek + + * config/i386/i386.c (override_options): Don't set x86_prefetch_sse + from -mtune= option. + +2004-07-07 Alexandre Oliva + + * builtins.c: Rename movstr*, except for movstrict*, to + movmem* and clrstr* to clrmem*. + * expr.c: Likewise. + * expr.h: Likewise. + * genopinit.c: Likewise. + * integrate.c: Likewise. + * local-alloc.c: Likewise. + * optabs.c: Likewise. + * optabs.h: Likewise. + * config/alpha/alpha.h: Likewise. + * config/alpha/alpha.md: Likewise. + * config/arm/arm-protos.h: Likewise. + * config/arm/arm.c: Likewise. + * config/arm/arm.md: Likewise. + * config/avr/avr.md: Likewise. + * config/c4x/c4x.c: Likewise. + * config/c4x/c4x.md: Likewise. + * config/frv/frv.md: Likewise. + * config/i386/i386-protos.h: Likewise. + * config/i386/i386.c: Likewise. + * config/i386/i386.h: Likewise. + * config/i386/i386.md: Likewise. + * config/i860/i860.c: Likewise. + * config/i860/i860.md: Likewise. + * config/ip2k/ip2k.md: Likewise. + * config/ip2k/libgcc.S: Likewise. + * config/ip2k/t-ip2k: Likewise. + * config/m32r/m32r.c: Likewise. + * config/m32r/m32r.md: Likewise. + * config/mcore/mcore.md: Likewise. + * config/mips/mips.c: Likewise. + * config/mips/mips.md: Likewise. + * config/ns32k/ns32k.c: Likewise. + * config/ns32k/ns32k.h: Likewise. + * config/ns32k/ns32k.md: Likewise. + * config/pa/pa.c: Likewise. + * config/pa/pa.md: Likewise. + * config/pdp11/pdp11.h: Likewise. + * config/pdp11/pdp11.md: Likewise. + * config/rs6000/rs6000.c: Likewise. + * config/rs6000/rs6000.md: Likewise. + * config/s390/s390-protos.h: Likewise. + * config/s390/s390.c: Likewise. + * config/s390/s390.md: Likewise. + * config/sh/lib1funcs.asm: Likewise. + * config/sh/sh.c: Likewise. + * config/sh/sh.md: Likewise. + * config/sh/t-sh: Likewise. + * config/sparc/sparc.h: Likewise. + * config/vax/vax.md: Likewise. + * config/xtensa/xtensa.c: Likewise. + * config/xtensa/xtensa.md: Likewise. + * doc/invoke.texi: Likewise. + * doc/md.texi: Likewise. + * doc/rtl.texi: Likewise. + +2004-07-07 Richard Sandiford + + PR target/16407 + * config/mips/mips-protos.h (mips_declare_common_object): Declare. + * config/mips/mips.c (mips_declare_common_object): New function, + mostly split out from... + (mips_output_aligned_decl_common): ...here. + * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of... + (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition. + * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this + rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object. + +2004-07-07 John David Anglin + + PR c/16392 + * function.c (assign_parms): Fix typo from previous change. + +2004-07-07 Jason Merrill + + PR c++/15815 + * doc/extend.texi (C++ Interface): Correct information and + discourage use. + +2004-07-07 Vladimir Makarov + + PR target/16130 + PR target/16142 + PR target/16143 + * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm + insn. + +2004-07-06 Kazuhiro Inaoka + + PR target/1679. + * config/m32r/m32r.c (m32r_function_symbol): New function: + Generate a symbol name RTX with the correct m32r specific flags + set. + (block_move_call): Use new function to generate correct symbol. + * config/m32r/m32r-protos.h: Add prototype for new funcion. + * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new + function. + +2004-07-07 Nathan Sidwell + + * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE, + TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES, + TYPE_BINFO_BASETYPE): Remove. + (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename + to ... + (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ... + here. + (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ... + (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here. + (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used. + (struct tree_binfo): Rename base_types to base_binfos. + * alias.c (record_component_aliases): Adjust BINFO macros. + * dbxout.c (dbxout_type): Likewise. + * dwarf2out.c (gen_member_die): Likewise. + * sdbout.c (sdbout_one_type): Likewise. + * tree-dump.c (deque_and_dump): Likewise. + * config/i386/i386.c (classify_argument, + contains_128bit_aligned_vector_p): Likewise. + +2004-07-07 Nick Clifton + + * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change + arguments to match TARGET_SETUP_INCOMING_VARARGS prototype. + +2004-07-07 Nathan Sidwell + + * vec.h: Fix the example use. + +2004-07-06 Richard Henderson + + * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove. + * langhooks.h (struct lang_hooks): Remove gimple_before_inlining. + * tree-inline.c (copy_body_r, setup_one_parameter, + initialize_inlined_parameters, expand_call_inline, + declare_inline_vars): Don't check it. + (expand_calls_inline): Remove old version, rename new version + from gimple_expand_calls_inline. + * tree-optimize.c (execute_gimple): Remove. + (pass_gimple): Don't run anything. + +2004-07-06 Joseph S. Myers + + * doc/sourcebuild.texi: Use semicolons instead of commas in + section title. + +2004-07-06 Richard Henderson + + * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change. + (sra_walk_modify_expr, scan_init): Likewise. + (generate_element_zero): Check visited before scanning children. + (generate_element_init): Set visited on error. + (scalarize_init): Handle generate_element_init failure similar + to use_block_copy. + +2004-07-06 Joseph S. Myers + + * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define. + (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG. + +2004-07-06 Richard Henderson + + * config/i386/i386.c (legitimize_pic_address): Make static. + (legitimize_address): Handle CONST with TLS operand. + (ix86_expand_move): Don't call legitimize_pic_address directly. + * config/i386/i386-protos.h (legitimize_pic_address): Remove. + +2004-07-06 Roger Sayle + + * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field. + (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway. + (noce_process_if_block): Initialize if_info.b_unconditional if insn_b + is currently executed unconditionally, i.e. not in "else_bb". + +2004-07-06 Steven Bosscher + + * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove. + (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. + +2004-07-06 Daniel Berlin + + * dojump.c (do_jump): REFERENCE_EXPR is dead. + * expr.c (expand_expr_real_1): Ditto. + * tree-inline.c (estimate_num_insns_1): Ditto. + * tree-pretty-print.c (dump_generic_node): Ditto. + (op_symbol): Ditto. + * tree.def: Ditto. + +2004-07-06 Daniel Berlin + + * tree-ssa-pre.c (reference_node_pool): New pool. + (find_or_generate_expression): Class 'r' is okay too. + (create_value_expr_from): Ditto. + (add_to_sets): LHS should not include vuses. + (eliminate): Ditto. + (compute_avail): Reverse ordering of tests. + Valuize INDIRECT_REF as well. + +2004-07-06 Richard Sandiford + + PR rtl-optimization/16380 + * loop.c (check_dbra_loop): Sink comparison instructions if they + do something other than set cc0. + +2004-07-06 James E Wilson + + * doc/interface.texi (longjmp and automatic variables): Delete + paragraph recommending taking the address of a variable. + +2004-07-06 Nathan Sidwell + + * vec.h (VEC_embedded_alloc): Remove. + (VEC_embedded_size, VEC_embedded_init): New. + (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add + MEM_STAT_INFO. + (VEC_truncate): New. + (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL. + (vec_embedded_alloc): Remove. + * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust. + (vec_embedded_alloc): Remove. + +2004-07-06 Mark Mitchell + + * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h. + (gt-langhooks.h): Remove. + +2004-07-06 George Helffrich + + * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo. + +2004-07-06 Eric Botcazou + + * config/sparc/sparc.c (get_pc_symbol): Rename into + add_pc_to_pic_symbol. + (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name. + (load_pic_register): Account for previous changes. + Use reg_names. Don't create the label twice. + * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into + UNSPEC_LOAD_PCREL_SYM. + (get_pc): Rename into load_pcrel_sym. Add predicate to + operands. Remove condition. + +2004-07-06 Nathan Sidwell + + * dbxout.c (dbxout_type): Don't test whether the binfo slot of + RECORD, UNION & QUAL_UNION is actually a binfo. + + * tree.h (TREE_VIA_VIRTUAL): Rename to ... + (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only. + (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags. + * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P. + * dwarf2out.c (add_data_member_location_attribute): Likewise. + (gen_inheritance_die): Likewise. + * tree-dump.c (deque_and_dump): Likewise. + * doc/c-tree.texi (Binfos): Add under reconstruction note. + +2004-07-06 Steven Bosscher + + * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): + Define. + * config/mcore/mcore.md: Model memory latency with a simple DFA + pipeline description instead of a define_function_unit. + +2004-07-05 Richard Kenner + + * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg. + * langhooks.h (var_mod_type_p): Likewise. + * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p. + * expr.c (count_type_elements): Properly handle return from + array_type_nelts and properly test for overflow. + * gimplify.c (gimplify_init_constructor): Properly handle return + from array_type_nelts. + (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS. + * integrate.c (copy_decl_for_inlining): Correct comments. + * tree-inline.c (remap_decl): Update comments, remove dead code, + and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist. + (remap_type): Only remap if variably modified by vars in function + being inlined. + (copy_body_r): Use compatible_type langhooks to see when can fold. + (setup_one_parameter): Don't remap type. + (inline_forbidden_p_1): Add arg to variably_modified_type_p. + * tree.c (recompute_tree_invarant_for_addr_expr): Properly + compute TREE_INVARIANT for decl case. + (find_var_from_fn): New function. + (variably_modified_type_p): Add arg and call new function. + * tree.h (variably_modified_type_p): Add extra arg. + +2004-07-05 Eric Botcazou + + * config/sparc/sparc.md (nonlocal_goto): Remove disabled code. + (goto_handler_and_restore_v9): Delete disabled insn. + (goto_handler_and_restore_v9_sp64): Likewise. + +2004-07-05 Roger Sayle + + * calls.c (load_register_parameters): Call expand_shift instead + of expand_binop with ashl_optab (or other shift optab) directly. + * expr.c (emit_group_load, emit_group_store): Likewise. + * function.c (assign_parm_setup_block): Likewise. + * stmt.c (shift_return_value): Likewise. + +2004-07-05 Jakub Jelinek + + * expr.c (expand_assignment): Disable the bitfield += optimizations. + +2004-07-05 Joseph S. Myers + + * doc/sourcebuild.texi: Revert previous patch. + +2004-07-05 Joseph S. Myers + + * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check + TARGET_MEM_FUNCTIONS. + * system.h: Poison TARGET_MEM_FUNCTIONS. + * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc, + bcmp_libfunc, bzero_libfunc): Remove. + * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or + bzero_libfunc. + * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove. + * doc/standards.texi: Don't mention calling BSD string functions. + * doc/invoke.texi: Likewise. Mention that memmove may be called. + * config/vax/t-memfuncs: New. + * config/memcmp.c, config/memcpy.c, config/memmove.c, + config/memset.c: New. + * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files. + * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use + vax/t-memfuncs. + * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h, + config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h, + config/elfos.h, config/gnu.h, config/h8300/h8300.h, + config/i386/gas.h, config/ia64/ia64.h, config/interix.h, + config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h, + config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, + config/netbsd.h, config/openbsd.h, config/pa/pa.h, + config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h, + config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, + config/svr3.h: Don't define TARGET_MEM_FUNCTIONS. + +2004-07-05 Richard Henderson + + * function.c (assign_parm_setup_reg): Properly rename variables in + FUNCTION_ARG_CALLEE_COPIES section. + +2004-07-05 Zack Weinberg + + * tree-mudflap.c: Include cgraph.h. + (mf_init_extern_trees): Rename to mudflap_init. Export. + Rewrite to create synthetic declarations instead of looking + up declarations from mf-runtime.h. + (mf_make_builtin, mf_make_cache_struct_type): New functions. + (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl): + Correct commentary. + (execute_mudflap_function_decls, mudflap_register_call): + Don't call mf_init_extern_trees. + (mudflap_finish_file): Use cgraph_build_static_cdtor. + + * tree-mudflap.h: Update prototypes. + * c-mudflap.c: Delete file. + * c-common.c: Include tree-mudflap.h. + (c_common_nodes_and_builtins): Call mudflap_init if appropriate. + * Makefile.in: Remove all references to c-mudflap.o. + Update dependencies. + +2004-07-05 John David Anglin + + * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short + displacements with the spatial-locality cache-control completer. + +2004-07-05 Zack Weinberg + + * langhooks.c: Don't include gt-langhooks.h. + (var_labelno): Delete. + (lhd_set_decl_assembler_name): Do not append a distinguishing + number to file-scope internal-linkage declarations for the first + input file, even if they have DECL_CONTEXT set. Use DECL_UID of + the declaration itself (if at block scope), or its containing + TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing + number. + + * opts.c (cur_in_fname): New global. + * opts.h: Declare it. + * tree.c: Include opts.h. + (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it + DECL_UID equal to cur_in_fname. + (copy_node_stat): Do not change DECL_UID when copying a + TRANSLATION_UNIT_DECL. + (build_common_tree_nodes): Adjust next_decl_uid to reserve the + range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs. + + * c-decl.c (c_static_assembler_name): Delete. + * c-tree.h (c_static_assembler_name): Delete prototype. + * c-lang.c, objc/objc-lang.c: Don't override + LANG_HOOKS_SET_DECL_ASSEMBLER_NAME. + + * Makefile.in (tree.o): Update dependencies. + (GTFILES): Remove langhooks.c. + +2004-07-05 Roger Sayle + + * fold-const.c (fold) : Optimize unsigned modulus + by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)". + Normalize "X % C" as "X % -C" for signed modulus and negative C. + Optimize "X % -Y" as "X % Y" for signed modulus. + : Recursively call "fold" when transforming "(X % Y) == 0" + into "((unsigned) X % Y) == 0". + +2004-07-05 Joseph S. Myers + + * sourcebuild.texi (Config Fragments): Use @comma{} in + cross-reference to section title. + +2004-07-05 Richard Kenner + + * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro. + * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it. + (gimplify_target_expr, gimplify_expr): Likewise. + (copy_if_shared_r): No longer need special case for BIND_EXPR. + (unshare_body, unvisit_body): Only look at nested if BODY_P is + whole function. + (gimplify_compound_lval): See if we can strip any useless conversion. + (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size + from RHS, not LHS. + (gimplify_modify_expr_to_memset): Likewise. + (gimplify_expr, case CONSTRUCTOR): Handle use as statement. + * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P. + (declare_inline_vars): Likewise. + (walk_type_fields): New function. + (walk_tree): Use it. + * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR. + + * tree-sra.c (struct sra_walk_fns): Init function now returns bool. + (sra_walk_modify_expr): Allow init function to fail. + (scan_init): Now returns bool. + (generate_element_init): If can't understand INIT, return false. + (scalarize_init): Return false if generate_element_init does. + + * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly + print bounds. + + * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against + bounds if bounds aren't constant. + + * tree-cfg.c (verify_expr): Use CHECK_OP in binary case. + + * function.c, langhooks-def.h, langhooks.h: Move max_size hook + to type hooks; remove bogus PARAMS. + +2004-07-05 Nathan Sidwell + + * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1. + * dwarf2out.c (add_data_member_location_attribute): Check for + TREE_BINFO. + * tree.c (tree_node_kinds): Add "binfos". + (binfo_lang_slots): New. + (make_node_stat): Add TREE_BINFO. + (make_tree_binfo_stat): New. + (tree_node_structure): Add TREE_BINFO. + * tree.def (TREE_BINFO): New. + * tree.h (REC_OR_UNION_CHECK): Rename to ... + (RECORD_OR_UNION_CHECK): ... here. + (NOT_RECORD_OR_UNION_CHECK): New. + (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO. + (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for + RECORD_OR_UNION_CHECK. + (TYPE_BINFO): Use RECORD_OR_UNION_CHECK. + (TYPE_LANG_SLOT_1): New. + (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS, + BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD, + BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust. + (BINFO_ELTS): Remove. + (BINFO_LANG_SLOT): New. + (struct tree_binfo): New. + (binfo_lang_slots): Declare. + (enum tree_node_structure_enum): Add TS_BINFO. + (union tree_node): Add binfo. + (make_tree_binfo_stat): Declare. + (make_tree_binfo): New. + (enum tree_node_kind): Add binfo_kind. + + * objc/objc-act.c (start_class, objc_declare_protocols, + start_protocols): Use TYPE_LANG_SLOT_1. + * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename + to ... + (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here. + (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE, + CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS, + PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1. + +2004-07-05 Steven Bosscher + + * rtl.h (struct rtx_def): Remove the integrated flag. + Use the return_val flag for MEM_SCALAR_P. + Reshuffle and update flags in CLEAR_RTX_FLAGS. + +2004-07-05 Richard Sandiford + + PR target/16357 + * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs + to mips_expand_unaligned_load, mips_expand_unaligned_store, and + move_by_pieces. + +2004-07-05 Josef Zlomek + + * var-tracking.c: Fix some comments. + (frame_stack_adjust): New. + (vt_stack_adjustments): Init stack_adjust of entry block to + minus stack adjustment of function prologue. + (adjust_stack_reference): Do not adjust if adjustment == 0. + (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS. + (emit_notes_in_bb): Likewise. + (vt_add_function_parameters): Do not adjust locations of + function arguments. + (vt_initialize): Compute the stack adjustment of function + prologue and offset the initial "location" of frame_base_decl + from the stack pointer after prologue. + +2004-07-04 Richard Henderson + + * function.c (struct assign_parm_data_all): New. + (struct assign_parm_data_one): New. + (assign_parms_initialize_all, assign_parms_augmented_arg_list, + assign_parm_find_data_types, assign_parms_setup_varargs, + assign_parm_find_entry_rtl, assign_parm_is_stack_parm, + assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl, + assign_parm_adjust_stack_rtl, assign_parm_setup_block_p, + assign_parm_setup_block, assign_parm_setup_reg, + assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ... + (assign_parms): ... here. + +2004-07-04 Daniel Berlin + + * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets + now are bitmap_set_t's. + (bitmap_insert_into_set): No point in inserting the value if + it's invariant. + (bitmap_set_contains): New function. + (bitmap_set_replace_value): Add comment on why we do it + this way. + (set_contains): Removed. + (bitmap_set_subtract_from_value_set): New name of + set_subtract now that it's arguments are two different + types of sets. + Update callers. + (bitmap_find_leader): Change algorithm used. + (find_or_generate_expression): Update use of functions for new + bitmap sets. + (create_expression_by_pieces): Ditto. + (insert_aux): Ditto. + (insert): Ditto. + (add_to_sets): Ditto. + (init_pre): Ditto. + (execute_pre): Ditto. + (compute_avail): Ditto. + Also ignore virtual phis. + +2004-07-04 Richard Sandiford + + * combine.c (simplify_comparison): Fix comment typo. + +2004-07-04 Eric Botcazou + + * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename + into LEAF_SIBCALL_SLOT_RESERVED_P after negation. + (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P. + (output_restore): Change parameter from 'insn' to 'pat'. + (output_return): Adjust call to output_restore. + (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P. + Adjust call to output_restore. + +2004-07-04 Neil Booth + + * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__ + and assert system is bsd. + +2004-07-04 Richard Sandiford + + * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete. + (TARGET_SWITCHES): Remove -mdebugc. + * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) + (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling. + (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i) + (sle_[sd]i_reg): Delete. + +2004-07-04 Steven Bosscher + + * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): + Define. + * config/iq2000/iq2000.md: Translate old pipeline description to an + equivalent new one. + +2004-07-04 Roger Sayle + + * tree-ssa-ccp.c (set_rhs): Change function to return a bool. + Ensure the replacement rhs is valid gimple before performing + the substitution. Return false if these sanity checks fail. + (fold_stmt): Only set changed to true, if set_rhs returns true. + (execute_fold_all_builtins): Only call modify_stmt if set_rhs + succeeds. + +2004-07-04 Richard Henderson + + PR c/16348 + * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops. + +2004-07-04 Mark Mitchell + + * configure.ac (ranlib_flags): New variable. + * Makefile.in (RANLIB_FLAGS): New variable. + (libbackend.a): Use it. + * configure: Regenerated. + +2004-07-04 Roger Sayle + + * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate + a "sign mask" instead of using ashr_optab directly. + +2004-07-04 Neil Booth + + * doc/cpp.texi: Don't document what we do for ill-formed expressions. + * doc/cppopts.texi: Clarify processing of command-line defines. + +2004-07-04 Gerald Pfeifer + + * doc/contrib.texi (Contributors): Adjust link for GNU Classpath. + +2004-07-04 Richard Henderson + + * rtl.def (ADDRESSOF): Remove. + * alias.c (rtx_equal_for_memref_p): Don't handle addressof. + (find_base_term, memrefs_conflict_p): Likewise. + * cse.c (fixed_base_plus_p, find_best_addr: Likewise. + (fold_rtx, cse_insn, set_live_p): Likewise. + * dwarf2out.c (mem_loc_descriptor): Likewise. + (add_location_or_const_value_attribute): Likewise. + * emit-rtl.c (copy_insn_1): Likewise. + * explow.c (memory_address): Likewise. + * expmed.c (store_split_bit_field): Likewise. + * expr.c (expand_expr_real_1): Likewise. + * function.c (instantiate_decl + (instantiate_virtual_regs_1, fix_lexical_addr): Likewise. + * genrecog.c (preds, validate_pattern): Likewise. + * integrate.c (copy_rtx_and_substitute): Likewise. + * recog.c (general_operand, register_operand): Likewise. + (memory_address_p): Likwise. + * reload1.c (eliminate_regs, elimination_effects): Likewise. + * rtl.c (copy_rtx): Likewise. + * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. + (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise. + * rtlhooks.c (gen_lowpart_general): Likewise. + * stmt.c (expand_asm_operands): Likewise. + * web.c (entry_register, replace_ref, web_main): Likewise. + * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p, + alpha_expand_block_move, alpha_expand_block_clear): Likewise. + * config/arm/arm.c (thumb_rtx_costs): Likewise. + * config/c4x/c4x.c (c4x_valid_operands): Likewise. + * config/frv/frv.c (move_destination_operand, move_source_operand, + condexec_dest_operand, condexec_source_operand, + condexec_memory_operand): Likewise. + * config/h8300/h8300.h (PREDICATE_CODES): Likewise. + * config/ia64/ia64.c (general_xfmode_operand): Likewise. + (destination_xfmode_operand): Likewise. + * config/mips/mips.h (PREDICATE_CODES): Likewise. + * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise. + * config/s390/s390.c (general_s_operand): Likewise. + * config/s390/s390.md (mov*): Likewise. + * config/sparc/sparc.h (PREDICATE_CODES): Likewise. + + * c-typeck.c (c_mark_addressable): Don't put_var_into_stack. + * expr.c (expand_expr_real_1): Likewise. + * stmt.c (expand_decl): Likewise. + * config/c4x/c4x.c (c4x_expand_builtin): Likewise. + + * function.c (struct fixup_replacement, struct insns_for_mem_entry, + postponed_insns, put_var_into_stack, put_reg_into_stack, + schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement, + fixup_var_refs_insns, fixup_var_refs_insns_with_hash, + fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg, + walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field, + gen_mem_addressof, flush_addressof, put_addressof_into_stack, + purge_bitfield_addressof_replacements, purge_addressof_replacements, + purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp, + struct insns_for_mem_walk_info, insns_for_mem_walk, + compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect, + setjmp_protect_args): Remove. + (push_function_context_to): Don't handle var_refs_queue. + (pop_function_context_from, free_after_compilation): Likewise. + (instantiate_virtual_regs): Don't handle parm_reg_stack_loc. + (assign_parms, allocate_struct_function): Likewise. + (use_register_for_decl): New. + (expand_function_end): Don't setjmp_protect. + * function.h (struct emit_status): Update commentary. + (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc. + (max_parm_reg, parm_reg_stack_loc): Remove. + * passes.c (DFI_addressof): Remove. + (dump_file_info): Remove addressof. + (rest_of_handle_addressof): Remove. + (rest_of_compilation): Don't call it. + * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove. + * stmt.c (expand_decl): Use use_register_for_decl. + * tree.h: Update decls. + * web.c (mark_addressof): Remove. + * doc/invoke.texi (-dF): Remove. + +2004-07-03 Richard Henderson + + * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp + instead of gen_mem_addressof. + * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle + TImode output register. + +2004-07-03 Richard Henderson + + PR tree-optimization/16341 + * tree-sra.c (sra_walk_function): Increment to next stmt before + processing the current stmt. + (sra_insert_after): Always use BSI_SAME_STMT. + +2004-07-03 Richard Henderson + + * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold + fp plus with minus. + +2004-07-03 Joseph S. Myers + + * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal + with tree_int_cst_equal. + +2004-07-03 Andreas Schwab + + * config/ia64/ia64.md: Define new attribute "empty". + (prologue_use, nop_x, insn_group_barrier): Set it. + + * config/ia64/ia64.c (ia64_reorg): When looking for trailing call + skip over "empty" insns. + +2004-07-03 Richard Kenner + + * tree-inline.c (initialize_inlined_parameters): Pass proper function + context to gimplify_body. + (walk_tree): Don't walk into types twice. + (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers. + + * tree-sra.c (generate_element_init): Remove any useless conversions. + + * gimplify.c (gimplify_conversion): Remove stripping useless + conversions from here. + (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS. + (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare): + Unshare before substituting PLACEHOLDER_EXPR. + (gimplify_modify_expr_to_memset): Likewise. + Pass address of TO to memset, not TO itself. + (gimplify_init_constructor): Make copy of OBJECT so we have it each + time we make an expression (to match a PLACEHOLDER_EXPR). + + * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at + VIEW_CONVERT_EXPR and NON_LVALUE_EXPR. + * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION. + * tree-ssa-dom.c (local_fold): Likewise. + + * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook. + * langhooks.h (strct lang_hooks): New field type_max_size. + * function.c (assign_temp): Call it. + +2004-07-03 Steven Bosscher + + * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1. + * config/sh/sh.md: Convert the SH1 pipeline description to + a DFA model. + +2004-07-02 Zack Weinberg + + * c-decl.c (struct c_binding): Remove contour field; add + depth, invisible, nested fields. + (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE) + (B_IN_EXTERNAL_SCOPE): New convenience macros. + (bind): Add invisible and nested arguments. Initialize + new fields of struct c_binding; adjust loop scanning for + insertion point. + (free_binding_and_advance): Clear structure with memset. + (pop_scope): Adjust to match. Set DECL_CONTEXT on everything + in file scope, even if it's in external scope too. + (pushdecl): Adjust to match. Create invisible file-scope + declarations for block-scope forward declarations of static functions. + (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare) + (undeclared_variable, lookup_label, declare_label, define_label) + (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function) + (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value) + (store_parm_decls_oldstyle): Adjust to match. + (diagnose_mismatched_decls): Correct handling of linkage clashes. + (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE. + + * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete. + (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one. + +2004-07-02 Richard Henderson + + * c-decl.c (grokdeclarator): Don't frob current_function_decl + around variable_size. + (set_decl_nonlocal): Remove. + (store_parm_decls): Add stmts for pending sizes. + * calls.c (calls_function, calls_function_1): Remove. + (precompute_arguments): Don't call it. + * cfgexpand.c (set_save_expr_context): Remove. + (tree_expand_cfg): Don't call it. + * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR. + (dwarf2out_finish): Likewise. + * expr.c (emit_block_move): Adjust addresses to BLKmode. + (store_constructor): Don't pre-evaluate SAVE_EXPR. + (safe_from_p): Don't queue SAVE_EXPRs. + (expand_expr_real_1 ): Rewrite to expect, + or build plain VAR_DECLs. + * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL. + (fold): Likewise. + (fold_checksum_tree): Don't special-case SAVE_EXPR. + * function.c (free_after_compilation): Don't clear x_save_expr_regs. + (put_var_into_stack): Don't handle SAVE_EXPR. + (gen_mem_addressof): Likewise. + * function.h (struct function): Remove x_save_expr_regs. + (save_expr_regs): Remove. + * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR. + * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER. + * stor-layout.c (variable_size): Don't set it. + (force_type_save_exprs, force_type_save_exprs_1): Remove. + * tree-inline.c (remap_save_expr): Remove fn argument. Update + all callers. Don't set SAVE_EXPR_CONTEXT. + * tree-inline.h (remap_save_expr): Update decl. + * tree.c (save_expr): Update build size. + (first_rtl_op): Don't handle SAVE_EXPR. + (unsave_expr_1, contains_placeholder_p): Likewise. + (decl_function_context): Likewise. + * tree.def (SAVE_EXPR): Remove args 1 and 2. + * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove. + (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove. + +2004-07-03 Joseph S. Myers + + * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi, + doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi, + doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, + doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid + some first-person references and patronizing comments. Based on + printed manual. + * doc/invoke.texi: Don't reference fortran@gnu.org. + * doc/trouble.texi (Warning when a non-void function value is + ignored): Rewrite. From Russ Allbery and Chris Devers. + +2004-07-02 Daniel Berlin + + * config/rs6000/rs6000.c (struct processor_costs): New structure + used to hold instruction latencies/sizes for processor types. + (rs6000_cost): New global variable pointing to current CPU's costs. + (rs6000_override_options): Initialize rs6000_cost to point to the + appropriate cost table based upon rs6000_cpu and optimize_size. + (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor + timings inline. + +2004-07-02 Richard Henderson + + * expmed.c (make_tree): Don't use SET_DECL_RTL. + +2004-07-02 Steven Bosscher + + * tree-flow.h (bb_ann_d): Remove ephi_nodes field. + +2004-07-01 Richard Henderson + + * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx. + (alpha_gp_save_rtx): Use assign_stack_local instead of + gen_mem_addressof. + +2004-07-01 Richard Henderson + + * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div. + (alpha_rtx_cost_data): Update to match. + (alpha_rtx_cost_size): New. + (alpha_rtx_costs): Honor optimize_size. + +2004-07-01 Richard Henderson + + * gimple-low.c (lower_function_body): Don't reset_block_changes here. + * cfgexpand.c (tree_expand_cfg): Do it here. + * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here. + * config/ia64/ia64.c (ia64_output_mi_thunk): And here. + * config/mips/mips.c (mips_output_mi_thunk): And here. + * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here. + * config/sh/sh.c (sh_output_mi_thunk): And here. + * config/sparc/sparc.c (sparc_output_mi_thunk): And here. + +2004-07-01 Richard Henderson + + * tree.def (RTL_EXPR): Remove. + * c-typeck.c (lvalue_p): Don't handle it. + * expr.c (safe_from_p): Likewise. + (expand_expr_real_1): Likewise. + * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise. + (fold_checksum_tree, tree_expr_nonnegative_p): Likewise. + * gengtype.c (adjust_field_tree_exp): Likewise. + * stmt.c (warn_if_unused_value): Likewise. + * tree-gimple.c (recalculate_side_effects): Likewise. + * tree-pretty-print.c (dump_generic_node): Likewise. + * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise. + (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise. + * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove. + + * stmt.c (struct stmt_status): Remove x_last_expr_type, + x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value. + (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove. + (expand_expr_stmt): Merge with expand_expr_stmt_value. Remove + all the bits that tracked last_expr. + (expand_end_bindings): Don't track last_expr. + (expand_start_stmt_expr, expand_end_stmt_expr): Remove. + (clear_last_expr): Remove. + (expand_asm): Don't call it. + (expand_asm_operands, expand_end_cond): Likewise. + (expand_naked_return, expand_null_return_1): Likewise. + * c-typeck.c (c_begin_compound_stmt): Likewise. + * cfgexpand.c (expand_block): Use expand_expr_stmt. + * expr.c (expand_expr_real_1): Likewise. + * tree.h: Update prototypes. + + * function.h (struct sequence_stack): Remove sequence_rtl_expr. + (struct emit_status): Remove sequence_rtl_expr. + (struct function): Remove x_rtl_expr_chain. + (seq_rtl_expr, rtl_expr_chain): Remove. + * function.c (struct temp_slot): Remove rtl_expr. + (assign_stack_temp_for_type): Don't set it. + (free_temp_slots, pop_temp_slots): Don't check it. + (free_after_compilation): Don't clear x_rtl_expr_chain. + (fixup_var_refs): Don't search it. + (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove. + * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr + or seq_rtl_expr. + (push_topmost_sequence): Likewise. + (end_sequence, init_emit): Likewise. + (start_sequence_for_rtl_expr): Remove. + * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR. + * rtl.h (preserve_rtl_expr_result): Remove. + +2004-07-02 Kazu Hirata + + * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c, + tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment + typos. + +2004-07-02 Aaron W. LaFramboise + + * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define. + (STANDARD_STARTFILE_PREFIX_2): Define. + (standard_startfile_prefix_1): Initialize to + STANDARD_STARTFILE_PREFIX_1. + (standard_startfile_prefix_2): Initialize to + STANDARD_STARTFILE_PREFIX_2. + * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove. + (STANDARD_STARTFILE_PREFIX_1): Define. + (STANDARD_STARTFILE_PREFIX_2): Define. + * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document. + (STANDARD_STARTFILE_PREFIX_2): Document. + +2004-07-01 Richard Henderson + + * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr + in order to disable scalarization. Instead set a flag and wait + for a candidate decl. + +2004-07-01 Joseph S. Myers + + * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi, + doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: + Use terminology "testsuite" and "enumerated". + +2004-07-01 Richard Henderson + + * dwarf2out.c (reg_save): Use INVALID_REGNUM. + (dwarf2out_reg_save, dwarf2out_return_save): Likewise. + (initial_return_save): Likewise. + (flush_queued_reg_saves): Remap register numbers. + (dwarf2out_return_reg): Likewise. + +2004-07-01 Richard Kenner + + * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL. + + * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use + access functions for lower bound and element size and only output + if lower bound nonzero or element size not same as that of type. + (dump_generic_node, case COMPONENT_REF): Use access func. for offset. + +2004-07-01 Paolo Bonzini + + * c-pretty-print.c (pp_c_postfix_expression): Fix pasto. + +2004-07-01 Per Bothner + + * final.c (final): Fix typo reported by Aaron W. LaFramboise. + +2004-07-01 Jakub Jelinek + + * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit + bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's + first operand. Don't optimize if the bitfield is volatile. + +2004-07-01 Paolo Bonzini + + * c-pretty-print.c (pp_c_postfix_expression): Handle + floating-point comparison operators. + (pp_c_expression): Pass floating-point comparison + operators to pp_c_postfix_expression. + +2004-07-01 Roger Sayle + + * simplify-rtx.c (simplify_binary_operation) : Use + rtx_cost instead of "had_mult" to determine whether the transformed + expression is cheaper than the original. + +2004-07-01 Jerry Quinn + + * alias.c (get_alias_set, canon_rtx, get_addr, + nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1): + Use MEM_P. + * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func, + expand_builtin): Likewise. + * calls.c (expand_call, emit_library_call_value_1, store_one_arg): + Likewise. + * combine.c (can_combine_p, combinable_i3pat, try_combine, + find_split_point, combine_simplify_rtx, simplify_set, make_extraction, + rtx_equal_for_field_assignment_p, gen_lowpart_for_combine, + record_dead_and_set_regs_1, get_last_value_validate, + mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise. + * cse.c (check_dependence, canon_hash, equiv_constant, + gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers, + cse_around_loop, cse_check_loop_start, cse_set_around_loop, + count_reg_usage): Likewise. + * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup, + cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set, + cselib_record_sets): Likewise. + * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol, + dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise. + * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise. + * df.c (df_uses_record): Likewise. + * dojump (do_jump): Likewise. + * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor, + loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info, + decl_start_label): Likewise. + * emit-rtl.c (gen_complex_constant_part, gen_highpart, + operand_subword, change_address_1, make_safe_from): Likewise. + * explow.c (break_out_memory_refs, copy_all_regs, validize_mem, + stabilize, force_not_mem): Likewise. + * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field, + expand_mult_const, expand_divmod, emit_store_flag): Likewise. + * expr.c (convert_move, convert_modes, emit_block_move, + emit_group_load, emit_group_store, clear_storage, emit_move_insn, + emit_move_insn_1, expand_assignment, store_expr, + store_constructor_field, store_constructor, store_field, + force_operand, safe_from_p, expand_expr_real_1, expand_increment): + Likewise. + * final.c (cleanup_subreg_operands, alter_subreg, + get_mem_expr_from_op): Likewise. + * flow.c (notice_stack_pointer_modification_1, + init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs): + Likewise. + * function.c (mark_temp_addr_taken, preserve_temp_slots, + preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1, + optimize_bit_field, flush_addressof, purge_addressof_1, + instantiate_decl, instantiate_virtual_regs_1, assign_parms, + setjmp_protect, setjmp_protect_args, fix_lexical_addr, + keep_stack_depressed): Likewise. + * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok, + noce_process_if_block, find_memory): Likewise. + * integrate.c (subst_constants, allocate_initial_values): Likewise. + * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p, + update_equiv_regs): Likewise. + * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store, + maybe_eliminate_biv_1, find_mem_in_note_1): Likewise. + * optabs.c (expand_abs, emit_unop_insn): Likewise. + * passes.c (rest_of_handle_final): Likewise. + * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands, + move2add_note_store): Likewise. + * ra-build.c (detect_remat_webs): Likewise. + * ra-debug.c (dump_static_insn_cost): Likewise. + * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise. + * recog.c (validate_change, apply_change_group, cancel_changes, + validate_replace_rtx_1, general_operand, register_operand, + nonmemory_operand, push_operand, pop_operand, memory_operand, + indirect_operand, asm_operand_ok, offsettable_memref_p, + offsettable_nonstrict_memref_p, constrain_operands, + store_data_bypass_p): Likewise. + * reg-stack.c (subst_stack_regs_pat): Likewise. + * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes, + copy_cost, reg_scan_mark_refs): Likewise. + * regmove.c (optimize_reg_copy_3, stack_memref_p, + combine_stack_adjustments_for_block): Likewise. + * regrename.c (copyprop_hardreg_forward_1): Likewise. + * reload.c (can_reload_into, push_reload, decompose, immune_p, + find_reloads, find_reloads_address, find_reloads_address_1, + reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p, + find_equiv_reg): Likewise. + * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn, + reload_as_needed, choose_reload_regs, emit_input_reload_insns, + do_input_reload, emit_reload_insns, gen_reload, delete_output_reload, + delete_address_reloads): Likewise. + * resource.c (mark_referenced_resources): Likewise. + * rtlanal.c (get_jump_table_offset, count_occurrences, + reg_referenced_p, reg_set_p, set_of_1, set_noop_p, + reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1, + num_sign_bit_copies1): Likewise. + * rtlhooks.c (gen_lowpart_general): Likewise. + * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. + * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol, + sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms, + sdbout_global_decl): Likewise. + * simplify-rtx.c (simplify_subreg): Likewise. + * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl, + expand_anon_union_decl, expand_end_case_type): Likewise. + * unroll.c (calculate_giv_inc): Likewise. + * var-tracking.c (stack_adjust_offset_pre_post, + bb_stack_adjust_offset, track_expr_p, count_uses, add_uses, + add_stores, compute_bb_dataflow, vt_get_decl_and_offset, + vt_add_function_parameters): Likewise. + * varasm.c (make_var_volatile, notice_global_symbol, + assemble_external, decode_addr_const, mark_weak, + default_encode_section_info): Likewise. + +2004-07-01 Steven Bosscher + + * stmt.c (check_seenlabel): Remove. + (pushcase, pushcase_range, expand_end_case_type): Don't call it. + +2004-07-01 Richard Henderson + + * function.h (struct function): Remove x_function_call_count. + (function_call_count): Remove. + * calls.c (expand_call): Don't set it. + * integrate.c (copy_rtx_and_substitute): Likewise. + + * function.h (struct function): Remove x_cleanup_label. + (cleanup_label): Remove. + * stmt.c (expand_value_return): Don't use it. + * function.c (free_after_compilation): Don't set it. + (expand_function_start): Likewise. Remove parms_have_cleanups arg. + * cfgexpand.c (tree_expand_cfg): Update call. + * tree.h (expand_function_start): Update decl. + +2004-07-01 Joseph S. Myers + + PR c/1027 + * c-lang.c (c_initialize_diagnostics): Move from here ... + * c-objc-common.c: ... to here. Include "c-pretty-print.h". + (c_tree_printer): Use pretty-printer to format %T. + * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space + before '*' if not C++. + (pp_c_direct_abstract_declarator): Don't try to print array upper + bound for flexible array members. + * c-tree.h: Include "diagnostic.h". + (c_initialize_diagnostics): Declare. + * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define. + * c-format.c (format_type_warning): New function. Improve + diagnostics for incorrect format argument types. + (check_format_types): Use it. Add two parameters. Use the + TYPE_MAIN_VARIANT of wanted_type. + (check_format_info_main): Pass new parameters to + check_format_types. + (struct format_wanted_type): Update comment. + +2004-07-01 Nick Clifton + + * target.h (struct gcc_target): Add new field to struct cxx: + import_export_class. + * target-def.h (TARGET_CXX): Initialise the new field. + (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for + the new field. + * doc/tm.texi: Document the new target hook. + +2004-07-01 Paolo Bonzini + + * builtins.c (fold_builtin_classify): Fix typo. + +2004-07-01 Richard Henderson + + * function.c (identify_blocks, identify_blocks_1): Remove. + * function.h (identify_blocks): Remove. + * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment. + +2004-07-01 Paolo Bonzini + + * builtins.c (fold_builtin_classify): New. + (fold_builtin_unordered_cmp): Fix commentary. + (fold_builtin): Use it. + * builtins.def: Define builtins for isnan, + isnanf, isnanl, finite, finitef, finitel, + isinf, isinff, isinfl. + +2004-07-01 Richard Henderson + + * function.h (struct function): Remove dont_emit_block_notes. + * gimple-low.c (lower_function_body): Don't set it. + * cfgexpand.c (expand_block): Don't check it. + * cfglayout.c (insn_locators_initialize): Likewise. + * expr.c (expand_expr_real, expand_expr_real_1): Likewise. + * passes.c (rest_of_compilation): Likewise. + * stmt.c (expand_start_bindings_and_block): Likewise. + (expand_end_bindings): Likewise. + +2004-07-01 Richard Henderson + + * cgraph.h (cgraph_build_static_cdtor): Declare. + * cgraphunit.c (cgraph_build_static_cdtor): New. + * c-objc-common.c (build_cdtor): Use it. + * coverage.c (create_coverage): Likewise. + * libfuncs.h (LTI_gcov_init, gcov_init_libfunc): Remove. + * optabs.c (init_optabs): Don't set gcov_init_libfunc. + +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 4ed06520ca4..00000000000 --- 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.1 b/gcc/ChangeLog.1 deleted file mode 100644 index b99a93754a3..00000000000 --- a/gcc/ChangeLog.1 +++ /dev/null @@ -1,15903 +0,0 @@ -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 1998 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. - -Wed Dec 30 23:38:55 1998 Jeffrey A Law (law@cygnus.com) - - * m68k.md (adddi_dilshr32): Allow all operands to be registers too. - (adddi_dishl32): Similarly. - - * cse.c (invalidate_skipped_block): Call invalidate_from_clobbers - for each insn in the skipped block. - - * 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. - - * i386.md (doubleword shifts): Avoid namespace pollution. - -Wed Dec 30 23:00:28 1998 David O'Brien - - * configure.in (FreeBSD ELF): Needs special crt files. - -Wed Dec 30 22:50:13 1998 Geoffrey Noer - - * i386/xm-cygwin.h: Change DIR_SEPARATOR to forward slash. - -1998-12-30 Andreas Schwab - - * 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 Dec 30 22:24:00 1998 Michael Meissner - - * rs6000.md ({save,restore}_stack_function): Take 2 operands to - avoid warnings in compiling explow.c. - - (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. - -Mon Dec 28 19:26:32 1998 Gerald Pfeifer - - * gcc.texi (Non-bugs): ``Empty'' loops will be optimized away in - the future; indeed that already happens in some cases. - -Tue Dec 29 11:58:53 1998 Richard Henderson - - * 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. - - * rtl.h (CONSTANT_P): Remove CONSTANT_P_RTX. - -Tue Dec 29 11:32:54 1998 Richard Kenner - - * 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. - -Tue Dec 29 11:30:10 1998 Richard Henderson - - * expr.c (init_expr_once): Kill can_handle_constant_p recognition. - * cse.c (fold_rtx, case 'x'): Remove standalone CONSTANT_P_RTX code. - - * 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 Dec 26 23:26:26 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 26 09:17:04 1998 Jeffrey A Law (law@cygnus.com) - - * gengenrtl.c (gencode): Always use bzero to clear memory instead - of dangerous casts and stores. - - * Makefile.in (compare, gnucompare): Add missing else true clauses. - -Fri Dec 25 23:00:56 1998 Jeffrey A Law (law@cygnus.com) - - * alpha.md (builtin_longjmp): Add missing "DONE". - -Thu Dec 24 10:39:57 1998 Stan Cox - - * gcc.c (execute): Enable -pipe with win32. - -Wed Dec 23 10:27:44 1998 Nick Clifton - - * config/arm/t-arm-elf: Add multiplib option for leading - underscores. - - * config/arm/thumb.h (ASM_OUTPUT_LABELREF): Use variable - 'user_label_prefix' rather than macro USER_LABEL_PREFIX. - - (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]. - - * config/arm/unknown-elf.h (USER_LABEL_PREFIX): Default to no - leading underscore. - -Wed Dec 23 09:51:32 1998 Kaveh R. Ghazi - - * alias.c (record_alias_subset): Remove ignored `&'. - (init_alias_once): Likewise. - - * c-lex.c (UNGETC): Cast first argument of comma expression to void. - - * config/mips/mips.c (mips_asm_file_end): Cast the result of - fwrite to `int' when comparing against one. - - * config/mips/mips.h (CAN_ELIMINATE): Add parens around && within ||. - (INITIAL_ELIMINATION_OFFSET): Add braces to avoid ambiguous `else'. - - * cse.c (rehash_using_reg): Change type of variable `i' to - unsigned int. - - * dwarf2out.c (initial_return_save): Cast -1 to unsigned before - assigning it to one. - - * except.c (duplicate_eh_handlers): Remove unused variable `tmp'. - - * final.c (final_scan_insn): Likewise for variable `i'. - (output_asm_insn): Cast a char to unsigned char when used as an - array index. - - * gcse.c (compute_pre_ppinout): Cast -1 to SBITMAP_ELT_TYPE when - assigning it to one. - - * loop.c (strength_reduce): Remove unused variables `count' and `temp'. - - * recog.c (preprocess_constraints): Cast a char to unsigned char - when used as an array index. - - * regmove.c (find_matches): Likewise. - - * 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. - - * scan-decls.c (scan_decls): Mark parameters `argc' and `argv' - with ATTRIBUTE_UNUSED. Cast variable `start_written' to size_t - when comparing against one. - - * 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. - - * tree.c (get_identifier): Cast variable `len' to unsigned when - comparing against one. - (maybe_get_identifier): Likewise - -Wed Dec 23 00:10:01 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): Do not set reload_completed. - * reload1.c (reload): Set reload_completed before calling - cleanup_subreg_operands. - -Tue Dec 22 23:58:31 1998 Richard Henderson - - * reload1.c (emit_reload_insns): Check `set' not null before use. - -Tue Dec 22 15:15:45 1998 Nick Clifton - - * rtlanal.c (multiple_sets): Change type of 'found' from 'rtx' to - 'int'. - -Tue Dec 22 13:55:44 1998 Theodore Papadopoulo - - * halfpic.c (half_pic_encode): Delete redundant code. - -Tue Dec 22 13:02:22 1998 Michael Meissner - - * toplev.c (main): Delete handling of -dM as a preprocessor - option. - -Mon Dec 21 17:39:38 1998 Michael Meissner - - * toplev.c (main): Don't emit any warnings when using -dD, -dM, or - -dI, which are handled by the preprocessor. - -Sun Dec 20 16:13:44 1998 John F. Carr - - * configure.in: Handle Digital UNIX 5.x the same as 4.x. - * i386/sol2.h: Define LOCAL_LABEL_PREFIX as ".". - -Sun Dec 20 07:39:52 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 19 22:24:22 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 19 21:41:32 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sat Dec 19 09:52:27 1998 Kaveh R. Ghazi - - * genattr.c (fatal): Qualify a char* with the `const' keyword. - - * 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. - -Thu Dec 17 18:21:49 1998 Rainer Orth - - * configure.in (with-fast-fixincludes): Fix whitespace. - * configure: Rebuilt. - - * fixincludes (c_asm.h): Wrap Digital UNIX V4.0B DEC C specific - asm() etc. function declarations in __DECC. - -Thu Dec 17 13:57:23 1998 Nick Clifton - - * expr.c (emit_move_insn_1): Only emit a clobber if the target - is a pseudo register. - -Thu Dec 17 13:50:29 1998 Nick Clifton - - * gcse.c: Include expr.h in order to get the prototype for - get_condition() which is used in delete_null_pointer_checks(). - -Thu Dec 17 15:58:26 1998 Kaveh R. Ghazi - - * hwint.h: New file to consolidate HOST_WIDE_INT (etc) macros. - -Thu Dec 17 12:31:12 1998 Jim Wilson - - * Makefile.in (INTERNAL_CFLAGS): Add SCHED_CFLAGS. - (ALL_CFLAGS): Delete SCHED_CFLAGS. - -1998-12-17 Vladimir N. Makarov - - * config/i60/i960.md (extendqihi2): Fix typo (usage ',' instead of - ';'). - -1998-12-17 Michael Tiemann - - * 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. - -Thu Dec 17 08:27:03 1998 J"orn Rennecke - - * loop.c (combine_givs_used_by_other): Don't depend on n_times_set. - -Wed Dec 16 17:30:35 1998 Nick Clifton - - * toplev.c (main): Disable optimize_size if a specific - optimization level is requested. Always set optimization - level to 2 if -Os is specified. - -Wed Dec 16 16:33:04 1998 Dave Brolley - - * 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. - -1998-12-16 Zack Weinberg - - * 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. - -Wed Dec 16 12:28:54 1998 Kaveh R. Ghazi - - * cccp.c: Don't define MIN/MAX anymore. - * cpplib.c: Likewise. - * machmode.h: Likewise. - * system.h: Provide definitions for MIN/MAX. - -Tue Dec 15 23:47:42 1998 Zack Weinberg - - * fix-header.c: Don't define xstrdup here. - -Wed Dec 16 05:11:04 1998 J"orn Rennecke - - * loop.c (consec_sets_giv): New argument last_consec_insn. - (strength_reduce): Provide / use it. - -Wed Dec 16 17:24:07 1998 Michael Hayes - - * 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. - -Tue Dec 15 13:49:55 1998 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (addsi3 expander): Use "nonmemory_operand" for operand 2. - - * mn10300.md (bset, bclr): Operand 0 is a read/write operand. - - * mn10200.md (abssf2, negsf2): New expanders. - - * mn10300.md (absdf2, abssf2, negdf2, negsf2): New expanders. - -Tue Dec 15 11:55:30 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. - - * emit-rtl.c (subreg_realpart_p): Cope with subregs containing - multiword complex values. - -1998-12-15 Zack Weinberg - - * 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. - -1998-12-15 Zack Weinberg - - * 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. - - (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. - -1998-12-15 Zack Weinberg - - * cpphash.h (union hash_value): Remove `keydef' member, add a - `struct hashnode *aschain' member for #assert. - - * 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. - - (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. - - * cpplib.h (ASSERTION_HASHNODE,ASSERTION_HASHSIZE,assertion_hashtab): - Removed. - - * cpphash.c (install): Use bcopy instead of an explicit loop - to copy the macro name. - - * cppexp.c (cpp_lex): Convert the result of - cpp_read_check_assertion to a `struct operation' directly; - don't go through parse_number. - -Tue Dec 15 18:27:39 1998 J"orn Rennecke - - * 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. - -Tue Dec 15 01:45:26 1998 Jason Merrill - - * 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". - -Mon Dec 14 16:23:27 1998 Jim Wilson - - * real.c (endian): Disable last change unless - HOST_BITS_PER_WIDE_INT is greater than 32. - -Mon Dec 14 17:13:36 1998 Andrew MacLeod - - * 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 Dec 14 14:09:34 1998 Nick Clifton - - * reload1.c (reload): Delete REG_RETVAL and REG_LIBCALL notes - after completing reload. - - * rtl.texi: Document that REG_RETVAL and REG_LIBCALL are - deleted after reload. - -Mon Dec 14 01:39:28 1998 Jeffrey A Law (law@cygnus.com) - - * rtl.h (multiple_sets): Fix prototype. - * rtlanal.c (multiple_sets): Fix return type. - -Sun Dec 13 12:43:58 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Dec 13 01:05:22 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -1998-12-13 Manfred Hollstein - - * protoize.c (fputs): Wrap extern declaration in #ifndef fputs. - -Sun Dec 13 00:24:14 1998 J"orn Rennecke - - * 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. - - * reload1.c (compute_use_by_pseudos): Allow reg_renumber[regno] < 0 - after reload. - -Sat Dec 12 23:39:10 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - - * i386/next.h (ASM_OUTPUT_ALIGN): Use 0x90 for fill character. - - * 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 Dec 12 22:13:02 1998 Mark Mitchell - - * global.c (record_conflicts): Don't use an array of shorts to - store an array of ints. - (global_conflicts): Likewise. - -Sat Dec 12 16:49:24 1998 Richard Henderson - - * alpha.c (alpha_expand_block_move): mode_for_size expects - bits, not bytes. Infer extra alignment from addressof. - -1998-12-11 Michael Meissner - - * rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Put small data in the - .sbss section, not .sdata. - -1998-12-11 Manfred Hollstein - - * 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. - - * 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. - -Fri Dec 11 11:02:49 1998 Stan Cox - - * 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. - -Fri Dec 11 12:56:07 1998 J"orn Rennecke - - * 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 Dec 10 16:02:06 1998 Jim Wilson - - * 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 Dec 10 15:05:59 1998 Dave Brolley - - * objc/objc-act.c (lang_init_options): Enclose cpplib related code in - #if USE_CPPLIB. - -Thu Dec 10 13:39:46 1998 Kaveh R. Ghazi - - * collect2.h: New header file for prototypes. - - * Makefile.in (collect2.o, tlink.o): Depend on collect2.h. - - * collect2.c: Include collect2.h. - * tlink.c: Likewise. - -Wed Dec 9 23:55:11 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c: Update some comments. - -Wed Dec 9 15:29:26 1998 Dave Brolley - - * 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 Dec 9 19:36:57 1998 J"orn Rennecke - - * reload1.c (reload_combine, reload_combine_note_store): - Make STORE_RUID always valid. - (reload_combine): Check if BASE is clobbered too early. - -Wed Dec 9 09:53:58 1998 Nick Clifton - - * reload.c (find_reloads): Display the insn that cannot be - reloaded. - -Wed Dec 9 12:15:26 1998 Dave Brolley - - * cccp.c (create_definition): Fix end of buffer logic. - -Wed Dec 9 10:15:45 1998 Kaveh R. Ghazi - - * except.c (duplicate_eh_handlers, rethrow_symbol_map): Function - pointer parameters changed to use the PARAMS() macro. - -Wed Dec 9 09:12:40 1998 Andrew MacLeod - - * 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. - -Tue Dec 8 22:04:33 1998 Jim Wilson - - * i960/i960.h (CONST_COSTS, case CONST_INT): Accept power2_operand - only when OUTER_CODE is SET. - -Tue Dec 8 22:47:15 1998 J"orn Rennecke - - * 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. - -Tue Dec 8 22:33:18 1998 J"orn Rennecke - - * explow.c (plus_constant_wide): Don't immediately return with - result of recursive call. - -Tue Dec 8 15:32:56 1998 Andrew MacLeod - - * eh-common.h (struct eh_context): Add table_index for rethrows. - - * 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). - - * rtl.c (reg_note_name): Add strings for new reg_note enums. - - * expr.h (rethrow_libfunc): New library decl. - - * optabs.c (rethrow_libfunc): Initialize. - - * 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. - - * 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. - - * 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. - - * 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. - - * 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. - -Tue Dec 8 13:11:04 1998 Jeffrey A Law (law@cygnus.com) - - * reload1.c (current_function_decl): Tweak declaration. - -Tue Dec 8 10:23:52 1998 Richard Henderson - - * 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 Dec 8 01:14:46 1998 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (DEMANGLE_H): Change location to shared demangle.h. - * demangle.h: Deleted. - - * reload1.c (current_function_decl): Declare. - -Tue Dec 8 11:58:51 1998 Kaveh R. Ghazi - - * cpplib.c (convert_string): Use `0x00ff', not `0x00ffU'. - -Tue Dec 8 09:28:36 1998 Kaveh R. Ghazi - - * dbxout.c: If USG is defined use gstab.h, even if HAVE_STAB_H is set. - -1998-12-08 Ulrich Drepper - - * 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. - -Tue Dec 8 00:34:05 1998 Mike Stump - - * 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. - -Mon Dec 7 23:56:28 1998 Robert Lipe - - * configure.in (mips*-*-linux*): Handle big and little endian - systems. - * configure: Rebuilt. - -Mon Dec 7 23:14:51 1998 Mike Stump - - * emit-rtl.c: Fix typo. - -Mon Dec 7 23:07:38 1998 Nathan Sidwell - - * reload1.c (eliminate_regs): Don't do anything, if we're not - generating code. - -Mon Dec 7 15:27:09 1998 DJ Delorie - - * mips/mips.h (ENCODE_SECTION_INFO): Handle TARGET_EMBEDDED_DATA. - Add comment. - * mips/mips.c (mips_select_section): Add comment. - -Mon Dec 7 17:55:06 1998 Mike Stump - - * 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. - -1998-12-07 Zack Weinberg - - * 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. - - * 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. - - * cppmain.c: s/data/opts/ when initializing cpp_reader - structure. - * c-decl.c: Likewise. - * objc/objc-act.c: Likewise. - * fix-header.c: Likewise. - -1998-12-07 Zack Weinberg - - * 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. - - Move definition of HOST_WIDE_INT here. - (cpp_parse_escape): Change prototype to match changes in - cppexp.c. - - * 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. - - * 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. - - 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). - - * 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] - -Mon Dec 7 15:38:25 1998 Dave Brolley - - * gcc.c (default_compilers): Fix typo in USE_CPPLIB spec for cc1. - -Mon Dec 7 15:38:25 1998 Kaveh R. Ghazi - - * 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. - -Mon Dec 7 11:30:49 1998 Nick Clifton - - * final.c (output_asm_name): Use tabs to separate comments from - assembly text. - - Include instruction lengths (if defined) in output. - -Mon Dec 7 10:53:38 1998 Michael Hayes - - * loop.c (check_dbra_loop): Fix initial_value and initial_equiv_value - in the loop_info structure. - -Mon Dec 7 11:04:40 1998 Catherine Moore - - * 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. - -Mon Dec 7 16:15:51 1998 J"orn Rennecke - - * sh.c (output_far_jump): Emit braf only for TARGET_SH2. - -Sun Dec 6 04:19:45 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Dec 6 05:16:16 1998 Michael Hayes - - * loop.c (check_dbra_loop): New argument loop_info. Update fields - as needed. - -Sun Dec 6 03:40:13 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Dec 6 07:49:29 1998 Alexandre Oliva - - * gcc.texi (Bug Reporting): 40Kb is a soft limit, larger - compressed reports are ok and preferred over URLs. - -Sun Dec 6 07:45:33 1998 Alexandre Oliva - - * invoke.texi (Warning Options): Soften the tone of -pedantic. - -Sun Dec 6 00:20:44 1998 H.J. Lu (hjl@gnu.org) - - * print-rtl.c (print_rtx): Add prototype. - - * unroll.c (iteration_info): Make it static. - -Sun Dec 6 01:19:46 1998 Richard Henderson - - * alias.c (memrefs_conflict_p): A second ANDed address - disables the aligned address optimization. - -Sat Dec 5 18:48:25 1998 Richard Henderson - - * alpha.c (alpha_emit_set_const_1): Fix parenthesis error - in -c << n case. - -Sat Dec 5 15:14:52 1998 Jason Merrill - - * i960.h (BOOL_TYPE_SIZE): Define. - -Sun Dec 6 00:28:16 1998 Michael Hayes - - * 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. - -Sat Dec 5 23:52:01 1998 Michael Hayes - - * config/c4x/c4x.c (iteration_info): Delete extern. - -Fri Dec 4 20:15:57 1998 Bernd Schmidt - - * tm.texi (SMALL_REGISTER_CLASSES): Make description match reality. - - * final.c (cleanup_subreg_operands): Delete some unused code. - - * 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. - -Fri Dec 4 02:23:24 1998 Jeffrey A Law (law@cygnus.com) - - * except.c (set_exception_version_code): Argument is an "int". - -Fri Dec 4 01:29:28 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa2*-*-*): Handle like hppa1.1-*-* for now. - * configure: Rebuilt. - -Fri Dec 4 01:29:28 1998 Robert Lipe - - * configure.in (mipsel-*-linux*): New target. - * mips/linux.h: New file, based on other Linux targets. - -Thu Dec 3 11:19:50 1998 Mike Stump - - * 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. - -1998-12-03 Joseph S. Myers - - * pdp11.h: Use optimize_size for space optimizations. - * pdp11.c: Likewise. - * pdp11.md: Likewise. - - * pdp11.h (TARGET_40_PLUS): Fix typo. - -Thu Dec 3 11:48:32 1998 Jeffrey A Law (law@cygnus.com) - - * local-alloc.c (block_alloc): Slightly retune heuristic to widen - qty lifetimes. - -Thu Dec 3 22:30:18 1998 Michael Hayes - - * alias.c (addr_side_effect_eval): New function. - (memrefs_conflict_p): Use it. - * rtl.h (addr_side_effect_eval): Prototype it. - -1998-12-02 Joseph S. Myers - - * pdp11.md (extendsfdf2): Fix mode mismatch in SET. - -Wed Dec 2 11:23:07 1998 Jim Wilson - - * reload.c (find_reloads): When force const to memory, put result - in substed_operand not *recog_operand_loc. - -1998-12-02 Ulrich Drepper - - * c-lex.c: Fix indentation from last patch. - Remove trailing whitespace. - * real.c: Likewise. - -Wed Dec 2 10:11:12 1998 Jeffrey A Law (law@cygnus.com) - - * flow.c (delete_block): Call set_last_insn after we have reset - NEXT_INSN (kept_tail). - -Wed Dec 2 00:47:31 1998 Jeffrey A Law (law@cygnus.com) - - * mips.md (trap_if): Use "$0" for the value zero. - -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. - -Mon Nov 30 02:00:08 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Nov 30 00:42:59 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Nov 29 22:59:40 1998 Jason Merrill - - * except.c (add_new_handler): Complain about additional handlers - after one that catches everything. - -Sat Nov 28 10:56:32 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (alpha*-*-netbsd): Fix typo. - * configure: Rebuilt. - -Fri Nov 27 12:28:56 1998 Kaveh R. Ghazi - - * system.h: Include libiberty.h. - - * 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. - - * 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-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. - - * prefix.c: Remove things made redundant by libiberty.h and/or - conform to libiberty standards. - - * print-rtl.c: Rename variable `spaces' to `xspaces' to avoid - conflicting with function `spaces' from libiberty. - - * 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. - -Thu Nov 26 08:38:06 1998 Kaveh R. Ghazi - - * cppfiles.c (simplify_pathname): Un-ANSI-fy function definition. - -Thu Nov 26 23:45:37 1998 Michael Hayes - - * README.C4X: Updated URLs. - * config/c4x/c4x.c (c4x_address_conflict): Fix typo. - (valid_parallel_operands_5): Remove unused variable. - -Thu Nov 26 23:40:03 1998 Michael Hayes - - * config/c4x/c4x.h (TARGET_DEFAULT): Fix typo. - -1998-11-26 Manfred Hollstein - - * 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. - - * 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 - - * 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. - -Thu Sep 24 21:22:39 1998 J"orn Rennecke - - * 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. - -Thu Sep 24 18:48:43 1998 J"orn Rennecke - - * reload.c (find_reloads): In code to promote RELOAD_FOR_X_ADDR_ADDR - reloads to RELOAD_FOR_X_ADDRESS reloads, test for reload sharing. - - Properly keep track of first RELOAD_FOR_X_ADDRESS also for - more than 3 such reloads. - - If there is not more than one RELOAD_FOR_X_ADDRESS, don't change - RELOAD_FOR_X_ADDR_ADDR reload. - -Thu Sep 24 17:45:55 1998 J"orn Rennecke - - * 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. - - * cse.c (cse_insn): When we are about to change a register, - remove any invalid references to it. - - (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 Sep 24 01:35:34 1998 David S. Miller - - * 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 Sep 24 01:19:02 1998 Jakub Jelinek - - * 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. - -Wed Sep 23 22:32:31 1998 Mark Mitchell - - * 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. - -Wed Sep 23 16:22:01 1998 Nick Clifton - - * 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. - - * expmed.c (extract_bit_field): Add comment from Jim Wilson. - -Wed Sep 23 13:26:02 1998 Richard Henderson - - * 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. - -Wed Sep 23 10:45:44 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (find_barrier): Revert change of Apr 23. Handle table - jumps as a single entity, taking into account the size of the - table. - -Tue Sep 22 15:13:34 1998 Alexandre Petit-Bianco - - * tree.def (SWITCH_EXPR): New tree node definition. - -Mon Sep 21 23:40:38 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 22:31:14 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 22:48:09 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Recognize i[34567]86-*-openbsd* and handle it like - NetBSD. - -Mon Sep 21 22:05:28 1998 Jeffrey A Law (law@cygnus.com) - - * Revert this patch. - * reload.c (find_reloads): Do not replace a pseudo with - (MEM (reg_equiv_addr)) in the initializing insn for the - pseudo. - -Mon Sep 21 20:19:41 1998 John Carr - - * final.c (final_scan_insn): Disable tracking CC across branches. - -Mon Sep 21 17:15:26 1998 Andrew MacLeod - - * 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. - -Mon Sep 21 14:10:51 1998 Jason Merrill - - * toplev.c (rest_of_compilation): Skip compiling anything with - DECL_EXTERNAL set, not just if it has DECL_INLINE as well. - -Mon Sep 21 13:51:05 1998 Jim Wilson - - * 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. - -Mon Sep 21 14:02:23 1998 Robert Lipe - - * i386.h (TARGET_SWITCHES): Improve doc for align-double. Fix - typo in no-fancy-math-387 description. - -Mon Sep 21 09:27:18 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 09:24:49 1998 Stan Cox - - * i386-coff.h (DBX_DEBUGGING_INFO): Added. - -Mon Sep 21 09:14:49 1998 Robert Lipe - - * i386.h (TARGET_SWITCHES): Add description fields for flags - documented in install.texi. - (TARGET_OPTIONS): Likewise. - -Mon Sep 21 01:39:03 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 21 01:53:05 1998 Felix Lee - - * c-lex.c (init_lex): Use getenv ("LANG"), not GET_ENVIRONMENT (). - * cccp.c (main): Likewise. - - * 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. - -Mon Sep 21 00:52:12 1998 Per Bothner - - * Makefile.in (LIBS): Link in libiberty.a. - * c-common.c, gcc.c, toplev.c: Replace (some) bcopy calls by memcpy. - -Sun Sep 20 23:28:11 1998 Richard Henderson - - * 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. - -Sun Sep 20 20:57:02 1998 Robert Lipe - - * configure.in (i*86-*-sysv5*): Use fixinc.svr4 to patch byteorder - problems. - * configure: Regenerate. - -Sun Sep 20 19:01:51 1998 Richard Henderson - - * 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. - - * tree.c (new_alias_set): New function. - * tree.h (new_alias_set): Declare it. - * c-common.c (c_get_alias_set): Use it. - -Sun Sep 20 12:35:55 1998 Richard Henderson - - * fold-const.c (fold): Yet another COND_EXPR bug: when folding - to an ABS expr, convert an unsigned input to signed. - -Sun Sep 20 12:14:45 1998 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Fix another type in COND_EXPR handling code. - -1998-09-20 Michael Hayes - - * configure.in: Add support for c4x targets. - * 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 Sep 20 00:22:23 1998 Michael Tiemann - - * fold-const.c (fold): Fix typo in COND_EXPR handling code. - (invert_truthvalue): Enable truthvalue inversion for - floating-point operands if -ffast-math. - -Sat Sep 19 23:58:07 1998 Melissa O'Neill - - * 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. - -Sun Sep 20 00:24:24 1998 Robert Lipe - - * config/i386/sco5.h (TARGET_MEM_FUNCTIONS): Define. - -1998-09-19 Torbjorn Granlund - - * fp-bit.c (pack_d): Do not clear SIGN when fraction is 0. - (_fpadd_parts): Get sign right for 0. - -1998-09-19 Michael Hayes - - * ginclude/varargs.h: Add support for C4x target. - * ginclude/stdargs.h: Likewise. - -Sat Sep 19 12:05:09 1998 Richard Henderson - - * 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. - -Sat Sep 19 07:33:36 1998 Richard Earnshaw (rearnsha@arm.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. - - * 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. - -Sat Sep 19 01:00:32 1998 Michael Hayes (mph@elec.canterbury.ac.nz) - - * 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. - -Fri Sep 18 22:52:05 1998 Jeffrey A Law (law@cygnus.com) - - * reload.c (find_reloads): Do not replace a pseudo with - (MEM (reg_equiv_addr)) in the initializing insn for the - pseudo. - -Fri Sep 18 23:50:56 1998 David Edelsohn - - * 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. - - * ginclude/va-ppc.h (va_arg): longlong types in overflow area are - not doubleword aligned. - - * 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. - -Fri Sep 18 09:44:55 1998 Nick Clifton - - * config/m32r/m32r.h (m32r_block_immediate_operand): Add to - PREDICATE_CODES. - - * config/m32r/m32r.md: Add "movstrsi" and "movstrsi_internal" - patterns. - - * 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. - -Thu Sep 17 16:42:16 1998 Andrew MacLeod - - * 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 . - -Thu Sep 17 12:24:33 1998 J"orn Rennecke - - * regmove.c (copy_src_to_dest): Check that modes match. - -Wed Sep 16 22:10:42 1998 Robert Lipe - - * config/i386/sco5.h (SUPPORTS_WEAK): True only if targeting ELF. - -Wed Sep 16 15:24:54 1998 Richard Henderson - - * i386.h (PREFERRED_RELOAD_CLASS): Respect an existing class - narrower than FLOAT_REGS. - -Wed Sep 16 17:51:00 1998 Alexandre Oliva - - * cpplib.c: Removed OLD_GPLUSPLUS_INCLUDE_DIR. - * cccp.c: Likewise. - * Makefile.in (old_gxx_include_dir): Removed. - -Wed Sep 16 12:29:22 1998 Nick Clifton - - * config/sh/sh.h: Update definition of HANDLE_PRAGMA to match - new specification. - - * config/sh/sh.c (handle_pragma): Rename to sh_handle_pragma(). - (sh_handle_pragma): Change function arguments to match new - specification for HANDLE_PRAGMA. - -Wed Sep 16 12:43:19 1998 Kaveh R. Ghazi - - * 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. - -Wed Sep 16 14:47:43 1998 J"orn Rennecke - - * regmove.c (copy_src_to_dest): Don't copy if that requires - (a) new register(s). - -Wed Sep 16 01:29:12 1998 Bernd Schmidt - - * 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. - -Wed Sep 16 01:09:01 1998 Kamil Iskra - - * m68k/m68k.c (output_function_prologue): Reverse NO_ADDSUB_Q - condition, fix format strings. - (output_function_epilogue): Likewise. - - * m68k/m68k.c: Don't include directly. - -Wed Sep 16 00:30:56 1998 Geoff Keating - - * 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. - -Tue Sep 15 22:59:52 1998 Jeffrey A Law (law@cygnus.com) - - * rs6000.c (output_epilogue): Handle Chill. - - * mn10200.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - * mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - - * 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 (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. - -Tue Sep 15 19:23:01 1998 Bernd Schmidt - - * i386.h (PREFERRED_RELOAD_CLASS): For standard 387 constants, - return FLOAT_REGS. - -Tue Sep 15 19:09:06 1998 Richard Henderson - - * 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. - - * 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. - - * 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. - - * 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. - - * 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. - - * m68h.h (ARG_POINTER_CFA_OFFSET): New. - * sparc.h (ARG_POINTER_CFA_OFFSET): New. - -Tue Sep 15 19:31:58 1998 Michael Meissner - - * i960.h (CONST_COSTS): Fix thinko. Test flag, not the constant - flag bit mask. - -Tue Sep 15 14:10:54 1998 Andrew MacLeod - - * 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. - -Tue Sep 15 13:53:59 1998 Andrew MacLeod - - * config/i960/i960.h (SLOW_BYTE_ACCESS): Change definition to 1. - -Tue Sep 15 09:59:01 1998 Mark Mitchell - - * integrate.c (copy_decl_list): Fix typo. - -Tue Sep 15 04:18:52 1998 David S. Miller - - * config/sparc/sparc.md (movdf_const_intreg_sp32): Fix length - attribute. - -Mon Sep 14 14:02:53 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 14 10:33:56 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Mon Sep 14 09:51:05 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 13 22:10:18 1998 David S. Miller - - * invoke.texi (C Dialect Options): Put back missing @end itemize. - -Mon Sep 14 02:33:46 1998 Alexandre Oliva - - * configure.in: Remove usage of `!' to negate the result of a - command; some common shells do not support it. - -Sun Sep 13 19:17:35 1998 David S. Miller - - * configure.in: In sparc9-sol2 config, use 'if test' not - brackets. - * configure: Rebuilt. - - * 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. - - * config/sparc/sparc.md (goto_handler_and_restore): Allow any mode - for operand zero. - -Sun Sep 13 09:11:59 1998 Kaveh R. Ghazi - - * acconfig.h (NEED_DECLARATION_STRSIGNAL): Provide a stub. - - * collect2.c: Don't declare `sys_siglist' here. - (my_strsignal): Prototype and define new function. Use it in - place of `sys_siglist' hacks. - - * mips_tfile.c: Likewise. - - * configure.in (AC_CHECK_FUNCS): Check for strsignal. - (GCC_NEED_DECLARATIONS): Likewise. - - * system.h (strsignal): Prototype it, if necessary. - (sys_siglist): Declare it, if necessary. - -Sun Sep 13 04:37:28 1998 David S. Miller - - * loop.c (move_movables): While removing insn sequences, preserve - the next pointer of the most recently deleted insn when we skip - over a NOTE. - -Sun Sep 13 08:13:39 1998 Ben Elliston - - * 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. - - * 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. - - * 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. - -Sat Sep 12 11:37:19 1998 Michael Meissner - - * rs6000.h ({ASM,CPP}_CPU_SPEC): Add support for all machines - supported with -mcpu=xxx. - -Fri Sep 11 23:55:54 1998 David S. Miller - - * 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. - - * config/sparc/sparc.md (movdf_const_intreg_sp64): Disable. - -Fri Sep 11 22:57:55 1998 Eric Dumazet - - * config/i386/sco5.h (ASM_WEAKEN_LABEL): Defined as in svr4.h. - -Thu Sep 10 22:02:04 1998 David S. Miller - - * glimits.h (__LONG_MAX__): Recognize __sparcv9 too. - -Thu Sep 10 21:19:10 1998 Jakub Jelinek - - * 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. - -Thu Sep 10 10:46:01 1998 Mark Mitchell - - * 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. - -Thu Sep 10 08:01:31 1998 Anthony Green - - * config/rs6000/rs6000.c (output_epilog): Add Java support. - -Thu Sep 10 14:48:59 1998 Martin von Löwis - - * invoke.texi (C++ Dialect Options): Document -fhonor-std. - -Thu Sep 10 01:38:05 1998 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (straighten_stack): Do nothing if the virtual stack is - empty or has a single entry. - - * toplev.c (rest_of_compilation): Open up the dump file for reg-stack - before calling reg_to_stack. - -Thu Sep 10 00:03:34 1998 Richard Henderson - - * alpha.c (alphaev5_insn_pipe): Abort on default case. - (alphaev5_next_group): Swallow CLOBBERs and USEs. - - * c-tree.h (warn_long_long): Declare it. - -Wed Sep 9 23:31:36 1998 (Stephen L Moshier) - - * emit-rtl.c (gen_lowpart_common): Disable optimization of - initialized float-int union if the value is a NaN. - -Wed Sep 9 23:00:48 1998 Nathan Sidwell - - * c-lex.c (real_yylex): Don't warn about long long constants if - we're allowing long long - -Wed Sep 9 21:58:41 1998 Bernd Schmidt - - * 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): 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. - - * print-rtl.c (print_rtx): For MEMs, print MEM_ALIAS_SET. - -Wed Sep 9 13:14:41 1998 Richard Henderson - - * loop.c (load_mems): Copy rtx for output mem. - -Wed Sep 9 15:16:58 1998 Gavin Romig-Koch - - * mips/abi64.h (LONG_MAX_SPEC): Don't set LONG_MAX for - mips1 or mips2 either. - -Wed Sep 9 12:31:35 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - - * Makefile.in (profile.o): Depend on insn-config.h - -Wed Sep 9 09:36:51 1998 Jim Wilson - - * iris6.h (DWARF2_UNWIND_INFO): Undef. - -Wed Sep 9 01:32:01 1998 David S. Miller - - 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. - -Wed Sep 9 01:07:30 1998 Jakub Jelinek - - * 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. - -Wed Sep 9 00:10:31 1998 Jeffrey A Law (law@cygnus.com) - - * prefix.c (update_path): Correctly handle cases where PATH is - a substring of the builtin prefix, but specifies a different - directory location. - -Tue Sep 8 23:46:04 1998 Hans-Peter Nilsson - - * 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. - -Tue Sep 8 22:56:12 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in (m68k-next-nextstep3*): Use collect2. - Similarly for x86 NeXT configurations. - * configure: Rebuilt. - -Tue Sep 8 01:38:57 1998 Nathan Sidwell - - * configure.in: Don't assume srcdir is .../gcc. - * configure: Rebuilt. - -Sat Sep 5 16:34:34 1998 John Wehle (john@feith.com) - - * 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. - -Mon Sep 7 23:38:01 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Check for bogus GCC_EXEC_PREFIX and LIBRARY_PATH. - * configure: Rebuilt. - -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. - -Mon Sep 7 23:30:07 1998 Kaveh R. Ghazi - - * toplev.c (print_switch_values): Make static to match prototype. - -Mon Sep 7 19:13:59 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: If we are unable to find the "gnatbind" program, - then do not configure the ada subdir. - * configure: Rebuilt. - -Sun Sep 6 14:03:58 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 6 13:28:07 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Sun Sep 6 08:54:14 1998 Kaveh R. Ghazi - - * Makefile.in (toplev.o): Depend on $(EXPR_H). - (insn-extract.o, insn-attrtab.o): Depend on toplev.h. - - * gansidecl.h: Define ATTRIBUTE_NORETURN. - - * genattrtab.c: Have insn-attrtab.c include toplev.h. - - * genextract.c: Have insn-extract.c include toplev.h. - - * rtl.h: Don't prototype `fatal_insn_not_found' and `fatal_insn'. - - * 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'. - - * 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. - -Sat Sep 6 12:05:18 1998 John Carr - - * 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. - - * 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. - -Sun Sep 6 11:17:20 1998 Dave Love - - * config/m68k/x-next (BOOT_LDFLAGS): Define suitably for f771 - linking. - -Sat Sep 5 22:05:25 1998 Richard Henderson - - * alpha.c (alpha_ra_ever_killed): Inspect the topmost sequence, - not whatever we're generating now. - - * 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. - - * 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. - -Sat Sep 5 14:47:17 1998 Richard Henderson - - * 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. - -Sat Sep 5 14:23:31 1998 Torbjorn Granlund - - * m68k.md (zero_extendsidi2): Fix typo. - -Sat Sep 5 13:40:24 1998 Krister Walfridsson - - * 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. - -Sat Aug 29 13:32:58 1998 Mumit Khan - - * i386/cygwin32.h (BIGGEST_ALIGNMENT): Define. - (PCC_BITFIELD_TYPE_MATTERS): Define to be 0. - - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't check for - for exact section attributions. - - * i386/mingw32.h (CPP_PREDEFINES): Add __MSVCRT__ for msvc - runtime. - * i386/crtdll.h (CPP_PREDEFINES): Define. - -Sat Sep 5 03:23:05 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - - * 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. - -Fri Sep 4 11:57:50 1998 Tom Tromey - - * 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. - -Fri Sep 4 10:37:07 1998 Jim Wilson - - * loop.c (load_mems): Fix JUMP_LABEL field after for_each_rtx call. - -Fri Sep 4 02:01:05 1998 David S. Miller - - * 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. - -1998-09-03 SL Baur - - * Makefile.in: Add semicolon in BISON definition for portability. - -Thu Sep 3 13:34:41 1998 Toon Moene - - * config/nextstep.c (handle_pragma): Correct name of third - argument. - -Tue Sep 1 11:30:33 1998 Nick Clifton - - * 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. - -Thu Sep 3 18:17:34 1998 Benjamin Kosnik - - * invoke.texi (Warning Options): Add -Wnon-template-friend - documentation. - -Thu Sep 3 18:16:16 1998 Michael Meissner - - * rs6000.c (rs6000_override_options): Add -mcpu={401,e603e}. - -Thu Sep 3 18:05:16 1998 David Edelsohn - - * rs6000.md (movsf): Disable explicit secondary-reload-like - functionality if TARGET_POWERPC64. - (movdf): Remove TARGET_POWERPC64 explicit secondary-reload-like - functionality. - -Thu Sep 3 11:41:40 1998 Robert Lipe - - * fixinc.sco: Borrow code to wrap 'bool' typedefs from tinfo.h - and term.h from fixinc.wrap. - -Thu Sep 3 09:47:31 1998 Kaveh R. Ghazi - - * 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. - - * acconfig.h (STRING_WITH_STRINGS): Add stub. - - * configure.in: Call GCC_HEADER_STRING. - - * 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. - -Wed Sep 2 23:56:29 1998 David S. Miller - - * 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. - -Thu Sep 3 00:23:21 1998 Richard Henderson - - * ginclude/va-alpha.h: Protect entire second portion of the - file against double inclusion. - -Thu Sep 3 00:37:55 1998 Ovidiu Predescu - - 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. - -Wed Sep 2 14:47:36 1998 Jim Wilson - - * jump.c (jump_optimize): In if/then/else transformations, add - another call to modified_between_p for the jump insn. - -Wed Sep 2 14:16:49 1998 Jeffrey A Law (law@cygnus.com) - - * fix-header.c (symlink): Treat like readlink. - -Wed Sep 2 19:30:06 1998 J"orn Rennecke - - * dwarfout.c (fundamental_type_code): Encode 32 bit floats/doubles - as FT_float. - -Wed Sep 2 10:06:07 1998 Nick Clifton - - * config/nextstep.h: Update HANDLE_PRAGMA macro. - * config/h8300/h8300.h: Update HANDLE_PRAGMA macro. - * config/i960/i960.h: Update HANDLE_PRAGMA macro. - - * 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. - -Wed Sep 2 09:25:29 1998 Nick Clifton - - * 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. - - * c-pragma.c (handle_pragma_token): Return success/failure status - of the parse. - - * c-pragma.h: Change prototype of handle_pragma_token(). - - * varasm.c (handle_pragma_weak): Only create this function if - HANDLE_PRAGMA_WEAK is defined. - - * c-common,c (decl_attributes): If defined call the expression - contained within the INSERT_ATTRIBUTES macro before adding - attributes to a decl. - - * tm.texi (HANDLE_PRAGMA): Document the new version of - HANDLE_PRAGMA, which takes three arguments. - (INSERT_ATTRIBUTES): Document this new macro. - - * LANGUAGES: Document the new version of HANDLE_PRAGMA and the - new INSERT_ATTRIBUTES macro. - -Wed Sep 2 02:03:23 1998 David S. Miller - - * 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. - -Tue Sep 1 15:55:17 1998 David S. Miller - - * config/sparc/sparc.c (finalize_pic): Don't output arbitrary - alignment, use FUNCTION_BOUNDARY instead. - (sparc_output_deferred_case_vectors): Likewise. - -Mon Aug 31 17:25:41 1998 David S. Miller - - * config/sparc/sparc.md (movsf_const_intreg): Kill warning. - (movtf_insn_sp64, movtf_no_e_insn_sp64): Reorder alternatives. - -Mon Aug 31 13:57:55 1998 Richard Henderson - - * alpha/va_list.h: New file. - * alpha/x-alpha (EXTRA_HEADERS): New. Add va_list.h. - -Mon Aug 31 14:55:02 1998 Jeffrey A Law (law@cygnus.com) - - * NEWS: Add SCO Openserver and Unixware 7 notes. - - * NEWS: Fix typos. - -Mon Aug 31 15:42:18 1998 Dave Brolley - - * varasm.c (compare_constant_1): Handle RANGE_EXPR. - (record_constant_1): Handle RANGE_EXPR. - -Mon Aug 31 10:54:03 1998 Richard Henderson - - * 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. - -Mon Aug 31 10:18:52 1998 Kaveh R. Ghazi - - * sparc.c (TMASK, UMASK): Use `(unsigned)1' not `1U'. - (ultrasparc_sched_init): Remove unneeded &. - -Mon Aug 31 10:47:16 1998 Andreas Schwab - - * config/m68k/m68k.h (TARGET_SWITCHES): Don't remove MASK_68040 - for m68020-60, to prevent the use of fintrz. - -Sun Aug 30 22:17:20 1998 Mark Mitchell - - * configure.in: If the native compiler is GCC use $(WARN_CFLAGS) - even in stage1. - * Makefile.in: Likewise. - * configure: Regenerated. - -Sun Aug 30 22:15:41 1998 H.J. Lu (hjl@gnu.org) - - * configure.in (gxx_include_dir): Changed to - '${prefix}/include/g++'-${libstdcxx_interface}. - * configure: Rebuilt. - -Sun Aug 30 20:19:43 1998 Hans-Peter Nilsson - - * 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. - -Sun Aug 30 17:18:43 1998 Jeffrey A Law (law@cygnus.com) - - * collect2.c (mktemp): Delete unused declaration. - - * 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. - -Sun Aug 30 16:05:45 1998 Mark Mitchell - - * convert.c (convert_to_integer): Issue an error on conversions to - incomplete types. - -Sun Aug 30 16:47:20 1998 Martin von Lvwis - - * Makefile.in: Add lang_tree_files and gencheck.h. - * configure.in: Generate them. - * gencheck.c: Include gencheck.h. - -Sat Aug 29 21:38:24 1998 David S. Miller - - * 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. - -Sat Aug 29 14:59:32 1998 Mumit Khan - - * i386/cygwin32.h (ASM_OUTPUT_SECTION_NAME): Don't emit - .linkonce directive after the first time. - -Sat Aug 29 12:39:56 1998 Jeffrey A Law (law@cygnus.com) - - * m68k.md (beq0_di): Generate correct (and more efficient) code when - the clobbered operand overlaps with an input. - (bne0_di): Similarly. - - * Makefile.in (INSTALL): Remove "--no-header" argument. - - * NEWS: Various updates. - -Fri Aug 28 19:00:44 1998 David S. Miller - - * 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. - -Fri Aug 28 13:52:35 1998 Jim Wilson - - * 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. - -1998-08-28 Brendan Kehoe - - * loop.c (check_dbra_loop): Pass COMPARISON_VALUE, not - COMPARISON_VAL, into invariant_p. - -Fri Aug 28 15:13:25 1998 J"orn Rennecke - - * regmove.c (regclass_compatible_p): New function. - (regmove_optimize): Use it. - - Use NREGS parameter instead of calling max_reg_num. - - (fixup_match_1): Don't use code = MINUS when later tieing with - a hard register is likely. - -Fri Aug 28 14:54:07 1998 J"orn Rennecke - - * loop.c (check_dbra_loop): Fix calculation of FINAL_VALUE when - COMPARISON_VAL was normalized. - -Thu Aug 27 20:10:46 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (check_dbra_loop): The loop ending comparison value - must be an invariant or we can not reverse the loop. - - * 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 (print_operand): Remove obsolete 'c' docs. - -Wed Aug 26 17:13:37 1998 Tom Tromey - - * 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 Aug 27 15:14:18 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (sched_analyze_insn): Fix thinko in last change. - -Thu Aug 27 16:34:51 1998 J"orn Rennecke - - * loop.c (check_dbra_loop): Enable code for reversal - of some loops without a known constant loop end. - -Wed Aug 26 18:38:15 1998 Richard Henderson - - * haifa-sched.c (last_clock_var): New. - (schedule_block): Initialize it. - (schedule_insn): Use it to fill insn modes with issue information. - - * 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. - -Wed Aug 26 15:55:41 1998 Jim Wilson - - * iris5.h (PREFERRED_DEBUGGING_TYPE): Undef. - * iris5gas.h (PREFERRED_DEBUGGING_TYPE): Define. - - * configure.in (powerpc-ibm-aix4.[12]*): Change from 4.[12].*. - (rs6000-ibm-aix4.[12]*): Likewise. - * configure: Regenerate. - -Wed Aug 26 09:30:59 1998 Nick Clifton - - * config/arm/thumb.c (thumb_exit): Do not move a4 into lr if it - already contains the return address. - -Wed Aug 26 12:57:09 1998 Jeffrey A Law (law@cygnus.com) - - * calls.c (expand_call): Use bitfield instructions to extract/deposit - word sized hunks when loading unaligned args into registers. - - * haifa-sched.c (sched_analyze_insn): Only create scheduling - barriers for LOOP, EH and SETJMP notes on the loop_notes list. - - * mn10300.h (RTX_COSTS): Handle UDIV and UMOD too. - -Wed Aug 26 16:35:37 1998 J"orn Rennecke - - * 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. - -Wed Aug 26 11:08:44 1998 Gavin Romig-Koch - - * mips.md (lshrsi3_internal2+2): Fix type-o. - -Wed Aug 26 10:53:03 1998 Kaveh R. Ghazi - - * 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. - * 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. - -Wed Aug 26 05:09:27 1998 Jakub Jelinek - - * 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. - -Tue Aug 25 10:57:41 1998 Mark Mitchell - - * 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. - -Tue Aug 25 23:57:12 1998 Jeffrey A Law (law@cygnus.com) - - * From Alexandre: - * configure.in: Do not set thread_file to "irix" since no such - support exists yet. - - * sparc.md (float abs/neg splits): Check reload_completed before - calling alter_subreg. - -Tue Aug 25 19:17:59 1998 David S. Miller - - * 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< - - * config/v850/v850.c (movsi_source_operand): Treat CONSTANT_P_RTX - as an ordinary operand. - -Tue Aug 25 12:54:57 1998 Jason Merrill - - * tree.c (valid_machine_attribute): Don't apply attributes to both - decl and type. - -Tue Aug 25 12:23:20 1998 Richard Henderson - - * reload.c (operands_match_p): Handle rtvecs. - - * 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. - -Tue Aug 25 12:02:23 1998 Mark Mitchell - - * 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 - -Tue Aug 25 19:20:12 1998 J"orn Rennecke - - * sh.h (GIV_SORT_CRITERION): Delete. - -Tue Aug 25 13:19:46 1998 Dave Brolley - - * regclass.c (regclass): Use xmalloc/free instead of alloca. - * stupid.c (stupid_life_analysis): Likewise. - * reload1.c (reload): Likewise. - -Tue Aug 25 05:48:18 1998 Jakub Jelinek - - * 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. - -Mon Aug 24 23:31:03 1998 David S. Miller - - * 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. - -Mon Aug 24 19:45:40 1998 Jim Wilson - - * tree.def (DECL_RESULT): Correct documentation. - -Tue Aug 25 01:15:27 1998 J"orn Rennecke - - * 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. - - * reload1.c (reload_cse_regs_1): When deleting a no-op move that - loads the function result, substitute with a USE. - -Mon Aug 24 15:20:19 1998 David Edelsohn - - * 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. - -Mon Aug 24 10:25:46 1998 Jeffrey A Law (law@cygnus.com) - - * loop.c (scan_loop): Honor AVOID_CC_MODE_COPIES. - - * h8300.h (STRIP_NAME_ENCODING): Fix typo. - - * sparc.md (TFmode splits): Use reg_overlap_mentioned_p to detect - when the source and destination overlap. - - * stmt.c (emit_case_nodes): Change rtx_function to rtx_fn to avoid - clash with global type. - -Mon Aug 24 00:53:53 1998 Jason Merrill - - * fixinc.irix: Add curses.h handling from fixinc.wrap. - - * c-common.c (combine_strings): Also set TREE_READONLY. - Change warn_write_strings to flag_const_strings. - * c-decl.c, c-tree.h: Likewise. - -Sun Aug 23 18:39:11 1998 David S. Miller - - * 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 Aug 23 11:56:08 1998 Mark Mitchell - - * extend.texi: Remove description of extension to explicit - instantiation that is now endorsed by standard C++. - -Sun Aug 23 09:39:09 1998 David S. Miller - - * 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. - -Sun Aug 23 00:17:14 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - -Sat Aug 22 23:31:00 1998 Klaus-Georg Adams (Klaus-Georg.Adams@chemie.uni-karlsruhe.de) - - * loop.c (load_mems): Fix initializers. - -Fri Aug 21 23:07:46 1998 David S. Miller - - * config/sparc/sparc.md (TFmode splits): Handle destination - registers being referenced in the address correctly. - - * 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. - -Fri Aug 21 19:31:31 1998 Alexandre Petit-Bianco - - * 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. - -Thu Aug 20 19:43:44 1998 Jeffrey A Law (law@cygnus.com) - - * h8300.c (h8300_encode_label): Use '&' for tiny data items. - * h8300.h (TINY_DATA_NAME_P): Likewise. - (STRIP_NAME_ENCODING): Handle '&'. - - * 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. - - * remove.c (optimize_reg_copy_3): Abort instead of silently generating - bogus rtl. - - * jump.c (rtx_renumbered_equal_p): Do not consider PLUS commutative. - -Thu Aug 20 17:35:20 1998 David S. Miller - - * config/sparc/sparc.md (movtf_insn_sp32): All memory operands - must be offsettable so the splits can be made. - -Thu Aug 20 13:56:53 1998 Michael Meissner - - * 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 Aug 20 13:44:20 1998 David Edelsohn - - * rs6000.md (movqi, movhi): Add CONSTANT_P_RTX. - -Thu Aug 20 13:15:11 1998 Dave Brolley - - * stor-layout.c (layout_type): Compute TYPE_SIZE_UNIT correctly for - arrays of bits. - * cpplib.c (cpp_define): Handle macros with parameters. - -Wed Aug 19 21:33:19 1998 David Edelsohn - - * 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 Aug 19 17:52:27 1998 Nick Clifton (nickc@cygnus.com) - - * config/arm/thumb.md (extendqisi2_insn): Cope with REG + - OFFSET addressing. - -Wed Aug 19 14:13:31 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Aug 19 13:10:30 1998 Jeff Law (law@cygnus.com) - - * version.c: Bump for snapshot. - -Wed Aug 19 13:06:47 1998 Jason Merrill - - * collect2.c (extract_init_priority): Use atoi instead of strtoul. - -Wed Aug 19 13:51:35 1998 Hans-Peter Nilsson - - * tm.texi (Misc): Fix typo "teh". - - * tm.texi (PIC): Fix typo "PPIC". - - * 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-08-19 Michael Hayes - - * regclass.c: Changed register set documentation to be consistent - with GCC behavior. - - * final.c (final_start_function): Removed redundant test for - call_fixed_regs. - -Wed Aug 19 13:28:41 1998 Mark Mitchell - - * rtl.h (rtx_function): New type. - (for_each_rtx): New function. - * rtlanal.c (for_each_rtx): Define it. - - * 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. - - * 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. - -Wed Aug 19 08:29:44 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_override_options): Remove lie about ignoring PIC flag. - -Wed Aug 19 07:08:15 1998 David S. Miller - - * 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. - -Tue Aug 18 12:40:27 1998 Richard Henderson - - * c-common.c (decl_attributes): Issue an error if the argument - to alias is not a string. - -Tue Aug 18 10:33:30 1998 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (sched_analyze): Put all JUMP_INSNs on the last - pending memory flush list. - - * combine.c (can_combine_p): Allow combining insns with REG_RETVAL - notes. - (try_combine): Allow combining insns with REG_LIBCALL notes. - - * 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. - - * regmove.c (fixup_match_2): Do not call reg_overlap_mentioned_p - on notes. - - * Makefile.in (cplus-dem.o): Provide explicit rules for building - cplus-dem.o. - - * regmove.c (optimize_reg_copy_1): Update REG_N_CALLS_CROSSED - and REG_LIVE_LENGTH as successful substitutions are made. - -Tue Aug 18 07:15:27 1998 Kaveh R. Ghazi - - * config/sparc/sparc.c (ultra_find_type): Add empty semicolon - statement after end of loop label. - -Tue Aug 18 07:13:27 1998 David S. Miller - - * 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. - -Tue Aug 18 03:20:53 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (SECONDARY_INPUT_RELOAD_CLASS): Return NO_REGS if compiling - for architecture v4. - -Mon Aug 17 21:26:38 1998 David S. Miller - - * 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. - -Mon Aug 17 11:46:19 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - - * 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. - - * 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. - - * expr.c (expand_expr): Allow assignments from TImode PARM_DECLs - and VAR_DECLs. - -Mon Aug 17 10:28:52 1998 Mark Mitchell - - * stmt.c (expand_end_loop): Tidy. Allow unconditional - jumps out of the loop to be treated as part of the exit test. - -Mon Aug 17 10:06:11 1998 Kaveh R. Ghazi - Jeff Law - - * Makefile.in (cplus-dep.o): Use cplus-dem.c from libiberty. - * cplus-dem.c: Delete. - - * Makefile.in (fold-const.o): Depend on $(RTL_H). - - * fold-const.c: Include rtl.h to get the prototype for - `set_identifier_local_value'. - - * loop.c (express_from_1): Remove unused variable `tmp'. - (combine_givs): Cast the first argument of bzero to char *. - - * toplev.c (display_help): Remove unused variable `looking_for_start'. - - * c-decl.c (init_decl_processing): Remove unneeded &. - - * alpha.h (alpha_initialize_trampoline): Provide prototype. - - * except.c (set_exception_lang_code, set_exception_version_code): - Change parameter from `short' to `int' to avoid using a gcc - extension. - - * except.h (set_exception_lang_code, set_exception_version_code): - Likewise for prototypes. - - * flow.c (count_reg_references): Remove unused variables `regno' - and `i'. - - * gcse.c (hash_scan_insn): Declare parameter `in_libcall_block'. - - * prefix.c (translate_name): Cast the result of `alloca'. - - * varray.h (VARRAY_FREE): Reimplement as a `do-while(0)' statement. - -Mon Aug 17 09:23:42 1998 Andreas Schwab - - * 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. - - * m68k.c (output_move_simode_const): Use subl to move a zero into an - address register. - (output_move_[hq]imode): Likewise. - -Mon Aug 17 09:15:47 1998 Jeffrey A Law (law@cygnus.com) - - * toplev.c (main): Enable -fstrict-aliasing for -O2 and above. - * invoke.texi: Corresponding changes. - -Mon Aug 17 02:03:55 1998 Richard Henderson - - * regclass.c (allocate_reg_info): Respect MIN when clearing data. - -Sun Aug 16 17:37:06 1998 David S. Miller - - * 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. - -Sun Aug 16 13:52:00 1998 David Edelsohn - - * 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. - -Sun Aug 16 01:53:21 1998 Richard Henderson - - * reload.c (find_equiv_reg): Reject equivalences separated - by a volatile instruction. - -Sun Aug 16 00:21:44 1998 Franz Sirl - - * rs6000/linux.h (CPP_OS_DEFAULT_SPEC): Define. - -Sat Aug 15 20:51:35 1998 Richard Henderson - - * alpha.md (movsicc): Fix mode mismatch. - -Sat Aug 15 20:22:33 1998 H.J. Lu (hjl@gnu.org) - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Handle aggregated - return type. - * config/alpha/win-nt.h (ASM_OUTPUT_MI_THUNK): Likewise. - -Sat Aug 15 08:39:49 1998 David S. Miller - - * config/sparc/sparc.md (movsi_lo_sum_pic_label_reg): Remove - write-only modifier from operand 1 constraint. - -Sat Aug 15 06:28:19 1998 David S. Miller - - * 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. - -Fri Aug 14 21:07:03 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - - * pa.h (ASM_OUTPUT_MI_THUNK): Strip name encoding. - - * m68k.md (adddi_dilshr32): One of the operands must be a register. - (adddi_dishl32): Similarly. - -Fri Aug 14 14:12:59 1998 Jason Merrill - - * 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. - -Fri Aug 14 12:58:21 1998 David S. Miller - - * 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. - -Fri Aug 14 21:52:53 1998 J"orn Rennecke - - * expr.c (store_expr): Don't optimize away load-store pair - when either source or destination have a side effect. - -Fri Aug 14 16:50:10 1998 John Carr - - * genrecog.c (add_to_sequence): Fatal error if the modes of the - operands of SET are incompatible. - - * alpha.md: Fix max and min patterns so modes of SET operands match. - -Fri Aug 14 12:22:55 1998 Ian Lance Taylor - - * configure.in: Avoid [[ by using test and changequote. - * configure: Rebuild. - -Fri Aug 14 01:22:31 1998 David S. Miller - - * rtl.def (CONSTANT_P_RTX): Fix typo in string name. - - * 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 Aug 14 00:34:34 1998 David S. Miller - - * 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. - -Fri Aug 14 01:45:06 1998 Mumit Khan - - * i386/cygwin32 (DEFAULT_PCC_STRUCT_RETURN): Define. - -Fri Aug 14 01:40:21 1998 Geoffrey Keating - - * rs6000/linux.h (LINK_SPEC): Pass -G args to the linker. - -Fri Aug 14 01:23:23 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm/netbsd.h (TARGET_DEFAULT): Default includes software floating - point. - (CPP_FLOAT_DEFAULT_SPEC): Re-define accordingly. - -Fri Aug 14 01:19:08 1998 Robert Lipe - - * install.texi: Various SCO OpenServer tweaks. - -Thu Aug 13 20:14:40 1998 Jim Wilson - - * 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. - - * mips/mips.md (movhi_internal2+2): Fix typo mem:SI -> mem:HI. - -Thu Aug 13 17:08:11 1998 Jason Merrill - - * tree.h: De-conditionalize init_priority code. - - * mips.h (NM_FLAGS): Change from -Bp to -Bn. - * collect2.c (NM_FLAGS): Change from -p to -n. - - * configure.in: Turn on collect2 for mipstx39-elf. - Handle use_collect2=no properly. - - * 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. - - * 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. - -Thu Aug 13 16:09:53 1998 Martin von Loewis - - * expr.c (safe_from_p): Change code to ERROR_MARK only when not - accessing nodes. - -Thu Aug 13 15:24:48 1998 Jason Merrill - - * toplev.c (display_help): Add braces to shut up warnings. - * tree.c (simple_cst_equal): Likewise. - - * 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-typeck.c (initializer_constant_valid_p): Allow conversion of 0 - of any size to a pointer. - -Thu Aug 13 12:53:13 1998 Jim Wilson - - * i386/winnt.c (i386_pe_asm_file_end): Check TREE_SYMBOL_REFERENCED. - -Wed Aug 12 17:25:18 1998 Jeffrey A Law (law@cygnus.com) - - * 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. - - * mn10300.c, mn10300.h, mn10300.md: Remove "global zero register" - optimizations. - -Wed Aug 12 12:39:16 1998 Gavin Romig-Koch - - * mips/mips.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG for - VAR_DECL's in gp addressable sections. - -Tue Aug 11 23:02:31 1998 John Carr - - * sparc.c: Change return to ; return; in functions - returning void. - * sparc.md: Add empty semicolon statement after final label in - move expanders. - -Tue Aug 11 22:42:01 1998 David S. Miller - - * 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. - -Tue Aug 11 16:04:34 1998 John Carr - - * except.c (set_exception_lang_code, set_exception_version_code): - Use prototype-style definition if __STDC__, to match declaration - in except.h. - - * genemit.c: Change FAIL and DONE macros not to use loops. - -Tue Aug 11 12:27:03 1998 Jim Wilson - - * dwarf2out.c (ASM_OUTPUT_DWARF_ADDR_CONST): Use - ASM_OUTPUT_DWARF2_ADDR_CONST if defined. - - * mips/mips.md (reload_outsi): Use M16_REG_P when TARGET_MIPS16. - -Tue Aug 11 18:12:53 1998 Dave Love - - * README.g77: Update from Craig. - -Tue Aug 11 04:46:01 1998 David S. Miller - - * 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. - - * 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. - -Mon Aug 10 22:57:24 1998 John Carr - - * config/sparc/sparc.md (define_insn jump): Output ba,pt not b,pt - in v9 case as the latter makes the Solaris assembler crash. - -Mon Aug 10 22:39:09 1998 David S. Miller - - * 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. - -Mon Aug 10 19:02:55 1998 John Carr - - * Makefile.in (mbchar.o): Depend on mbchar.c. - -Mon Aug 10 04:28:13 1998 David S. Miller - Richard Henderson - - 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. - - * final.c (final_scan_insn): Don't output labels if target - specifies ASM_OUTPUT_ADDR_{DIFF}_VEC. Do these macro operations - instead. - - * 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. - -Mon Aug 10 01:21:01 1998 Richard Henderson - - * alpha.md (extxl+1,+2): New patterns to work around - combine lossage. - -Sat Aug 8 19:20:22 1998 Gary Thomas (gdt@linuxppc.org) - - * rs6000.c (rs6000_allocate_stack_space): Fix typo which - caused bad assembly code to be generated. - -Sat Aug 8 18:53:28 1998 Jeffrey A Law (law@cygnus.com) - - * netbsd.h: Fix typo. - -Mon Aug 3 00:06:42 1998 Robert Lipe - - * config.sub: Fix typo. - -Sun Aug 2 22:39:08 1998 Hans-Peter Nilsson - - * invoke.texi (Environment Variables): Typo: Change "ascpects" - into "aspects". - (Running Protoize): Typo: Change "ther" into "other". - -Sun Aug 2 00:42:50 1998 Jeffrey A Law (law@cygnus.com) - - * i386/netbsd.h: Undo previous change to DWARF2_UNWIND_INFO. - * m68k/netbsd.h: Likewise. - * ns32k/netbsd.h: Likewise. - * sparc/netbsd.h: Likewise. - -Sat Aug 1 17:59:30 1998 Richard Henderson - - * ginclude/va-alpha.h (va_list): Use a typedef, not a define. - * ginclude/va-clipper.h (va_list): Likewise. - -Fri Jul 31 20:22:02 1998 Michael Meissner - - * rs6000.c (rs6000_override_options): If big endian and -Os, use - load/store multiple instructions unless user overrides. - -Fri Jul 31 17:08:59 1998 Jeffrey A Law (law@cygnus.com) - - * ns32k/netbsd.h: Fix typo. - -Fri Jul 31 10:23:55 1998 Doug Evans - - * m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Always output line number - labels with .debugsym if no parallel insns. - -Thu Jul 30 19:15:53 1998 Richard Henderson - - * alpha.md (fp cmp): Replicate patterns for ALPHA_TP_INSN. - (fcmov): Remove ALPHA_TP_INSN patterns -- fcmov doesn't trap. - -Thu Jul 30 19:50:15 1998 David Edelsohn - - * rs6000/x-aix43 (AR_FOR_TARGET_FLAGS): Delete. - (AR_FOR_TARGET): Define. - -Thu Jul 30 12:29:12 1998 Mark Mitchell - - * 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. - -Thu Jul 30 13:08:07 1998 Ken Raeburn - - 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. - -Thu Jul 30 00:58:34 1998 Jeffrey A Law (law@cygnus.com) - - * i386.md (movqi): When optimizing a load of (const_int 1) into a - NON_QI_REG_P, pretend the register is SImode. - -Wed Jul 29 23:49:23 1998 Todd Vierling - - * 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. - -Wed Jul 29 22:39:21 1998 Jeffrey A Law (law@cygnus.com) - - * unroll.c (unroll_loop): Do not abort for an UNROLL_MODULO - or UNROLL_COMPLETELY loop that starts with a jump to its - exit code. - -Wed Jul 29 22:18:14 1998 David Edelsohn - - * 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. - -Wed Jul 29 11:47:10 1998 Nick Clifton - - * config/arm/thumb.md (extendqisi2_insn): Remove earlyclobber - constraint from second alternative. - -Tue Jul 28 23:29:04 1998 Jason Merrill - - * configure.in: Fix --without/--disable cases for local-prefix, - gxx-include-dir and checking. - -Tue Jul 28 22:01:23 1998 David S. Miller - - * configure.in (enable_haifa): Set by default for sparc64 too. - configure: Rebuilt. - -Tue Jul 28 23:29:04 1998 Jason Merrill - - * 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. - - From Antonio M. O. Neto : - * i386.c (i386_valid_type_attribute_p): Also accept - attributes for METHOD_TYPEs. - -Tue Jul 28 23:17:39 1998 Peter Gerwinski - - * tree.c (build_range_type): Copy TYPE_SIZE_UNIT. - -Tue Jul 28 22:31:12 1998 Craig Burley - - * gcc.c: Fix commentary describing %g, %u, %U, and %O. - - * 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. - -1998-07-28 Vladimir N. Makarov - - * cse.c (cse_insn): Enable substitution inside libcall only for REG, - SUBREG, MEM. - * rtlanal.c (replace_rtx): Prohibit replaces in CONST_DOUBLE. - - * 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 Jul 27 00:54:41 1998 Jason Merrill - - * tree.c (simple_cst_equal, case CONSTRUCTOR): OK if the elts are - identical. - -Mon Jul 27 22:18:36 1998 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Accept CONSTANT_P_RTX. - -Mon Jul 27 17:18:52 1998 Dave Brolley - - * stor-layout.c (layout_type): Handle arrays of bits, for Chill. - - * expr.c (get_inner_reference): Handle zero-based, unsigned, array - index conversion. - -Mon Jul 27 14:51:33 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.h (DEBUGGER_AUTO_OFFSET): Define. - (DEBUGGER_ARG_OFFSET): Likewise. - - * mn10300.md (movsf): Remove last change. Not needed. - -Mon Jul 27 14:22:36 1998 Dave Brolley - - * c-lex.c (yylex): Fix boundary conditions in character literal and - string literal loops. - -Mon Jul 27 11:43:54 1998 Stan Cox - - * longlong.h (count_leading_zeros): SPARClite scan instruction was - being invoked incorrectly. - - * 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 Jul 26 01:11:12 1998 H.J. Lu (hjl@gnu.org) - - * 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.c (output_to_reg): Add code to emulate non-popping DImode - case. - -Sun Jul 26 01:01:32 1998 Jeffrey A Law (law@cygnus.com) - - * regmove.c (regmove_optimize): Fix typo initializing regmove_bb_head. - -Sat Jul 25 23:29:23 1998 Gerald Pfeifer - - * Makefile.in (install-info): Only try to update the info - directory file if it exists in the first place. - -Fri Jul 24 18:58:37 1998 Klaus Espenlaub - - * rs6000.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Delete. - -Fri Jul 24 14:20:26 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.md (movqi, movhi, movsi, movsf): Correctly handle - CONST_DOUBLE source. - -Fri Jul 24 11:17:04 1998 Nick Clifton - - * 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. - -Thu Jul 23 18:53:20 1998 Jim Wilson - - * dbxout.c (dbxout_range_type): Only call dbxout_type_index for - already defined type. - -Thu Jul 23 13:49:41 1998 Jeffrey A Law (law@cygnus.com) - - * expr.c (check_max_integer_computation_mode): Allow conversions - of constant integers to MAX_INTEGER_COMPUTATION_MODE. - (expand_expr): Likewise. - -Thu Jul 23 11:12:06 1998 Alexandre Petit-Bianco - - * expr.c (expand_expr): Expand RETURN_EXPR. - -Thu Jul 23 11:00:29 1998 Jim Wilson - - * dwarf2out.c (dwarf2out_finish): Call stripattributes on TEXT_SECTION. - -Wed Jul 22 19:10:00 1998 Catherine Moore - - * dwarf2out.c (output_aranges): Call stripattributes - for TEXT_SECTION references. - (output_line_info): Likewise. - -Wed Jul 22 14:08:54 1998 David S. Miller - - * profile.c (branch_prob): Call allocate_reg_info after outputting - profile rtl in instrument_arcs. - -Wed Jul 22 12:47:49 1998 Jim Wilson - - * fixinc.irix (math.h): Install wrapper instead of copying. - -Wed Jul 22 12:37:14 1998 Alexandre Petit-Bianco - - * 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. - -Tue Jul 21 23:28:35 1998 Klaus Kaempf - - * cccp.c (do_include): Fix vax c style include handling. - -Tue Jul 21 13:28:19 1998 Jason Merrill - - * cplus-dem.c (do_type): Use demangle_template_value_parm for arrays. - -Sun Jul 12 01:27:05 1998 Jason Merrill - - * 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. - -Tue Jul 21 15:49:31 1998 David Edelsohn - - * 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. - -Tue Jul 21 08:56:42 1998 Richard Henderson - - * 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. - -Tue Jul 21 08:55:09 1998 Richard Henderson - - * flow.c (regno_uninitialized): Fixed regs are never uninitialized. - -Tue Jul 21 00:31:01 1998 Jeffrey A Law (law@cygnus.com) - - * gcc.c (do_spec): Call "error" not "warning". - - * configure.in: Fix minor problems with gas feature detection code. - * configure: Rebuilt. - - * gcc.c (do_spec): Issue a warning for '%[]' usage. - - * Undo this change. - * gcc.c: Delete %[spec] support. - (do_spec_1, case '('): Likewise. - (do_spec_1, case '['): Call error. - -Mon Jul 20 22:34:17 1998 Richard Henderson - - * 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. - -Mon Jul 20 22:51:57 1998 Ken Raeburn - - * 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. - - * mips.h (MASK_DEBUG_E, MASK_DEBUG_I): Set to zero. - - * 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. - -Mon Jul 20 16:16:38 1998 Dave Brolley - - * configure.in (enable_c_mbchar): New configure option. - (extra_cpp_objs): Always available now. - - * cexp.y (mbchar.h): #include it. - (yylex): Handle Multibyte characters in character literals. - - * 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. - - * 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. - - * Makefile.in (mbchar.o): New target. - (cccp$(exeext)): @extra_cpp_objs@ is always available. - (cppmain$(exeext)): @extra_cpp_objs@ is always available. - - * mbchar.[ch]: New files for multibyte character handling. - -Mon Jul 20 01:11:11 1998 David S. Miller - - * 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. - -Sun Jul 19 08:23:53 1998 Kaveh R. Ghazi - - * cplus-dem.c (demangle_nested_args): Make function definition - static to match the prototype. - -Fri Jul 17 14:58:44 1998 Richard Henderson - - * alloca.c: Respect USE_C_ALLOCA. - * gencheck.c (xmalloc): Ignore __GNUC__ for definition. - * gengenrtl.c (xmalloc): Likewise. - -Fri Jul 17 14:18:14 1998 Richard Henderson - - * 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. - - * fold-const.c (operand_equal_p): Handle RTL_EXPR. - (fold): Do a complete (A*C)+(B*C) association check. - -Fri Jul 17 11:21:55 1998 Jim Wilson - - * function.c (fixup_var_refs_insns): Handle CLOBBER of a CONCAT. - -Fri Jul 17 11:48:55 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (MODES_TIEABLE_P): Fix typo. - -Fri Jul 17 03:26:12 1998 Rihcard Earnshaw (rearnsha@arm.com) - - * tree.c (valid_machine_attribute): Only create a new type variant if - there is a decl to use it. - -Thu Jul 16 14:48:04 1998 Nick Clifton - - * gcc.c (do_spec_1): Cope with %g/%u/%U options which do not have - a suffix. - -Fri Jul 17 03:24:40 1998 Hans-Peter Nilsson - - * extend.texi (Explicit Reg Vars): Typo: change "may deleted" into "may - be deleted" - -Thu Jul 16 14:48:47 1998 Jeffrey A Law (law@cygnus.com) - - * mn10300.c (count_tst_insns): New arg oreg_countp. Callers changed. - Simplify tests for clearing an address register. - (expand_prologue): Corresponding changes. - - * 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. - -Thu Jul 16 01:17:44 1998 Richard Henderson - - * loop.c (emit_iv_add_mult): Scan the entire insn list generated - for the sequence, recording base values. - -Wed Jul 15 10:49:55 1998 Richard Henderson - - * i386.h (CPP_CPU_SPEC): Remove -Asystem(unix). - -Tue Jul 14 14:15:30 1998 Nick Clifton - - * gcc.c: Remove ANSI-C ism from --help code. - - * toplev.c: Support --help with USE_CPPLIB. - -Tue Jul 14 14:46:08 1998 Jeffrey A Law (law@cygnus.com) - - * configure.in: Rework gas feature code to work with symlink based - source trees. - - * extend.texi: Clarify some issues related to local variables - assigned to explicit registers. - - * mn10300.md (mulsi): Turn into expander + pattern. - - * mn10300.md (movsi, movsf, movdi, movdf): Remove "x" from I -> a - alternative. - -Tue Jul 14 07:41:59 1998 Richard Earnshaw (rearnsha@arm.com) - - * arm/tcoff.h (USER_LABEL_PREFIX): Make it empty to match coff.h. - -Tue Jul 14 03:02:44 1998 Jeffrey A Law (law@cygnus.com) - - * version.c: Bump again to distinguish mainline tree from the - egcs-1.1 branch. - -See ChangeLog.0 for earlier changes. - -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 83a80fd8664..00000000000 --- 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 92a4d69b804..00000000000 --- 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.12 b/gcc/ChangeLog.12 deleted file mode 100644 index 7c3a2ffa331..00000000000 --- a/gcc/ChangeLog.12 +++ /dev/null @@ -1,26890 +0,0 @@ -2004-12-31 Richard Henderson - - PR tree-opt/19042 - * tree-sra.c (decide_block_copy): Force use_block_copy false - for complex values. - -2004-12-31 Richard Henderson - - PR middle-end/17799 - * function.c (use_register_for_decl): Check DECL_IGNORED_P instead - of DECL_ARTIFICIAL. - (assign_parms_augmented_arg_list): Set DECL_IGNORED_P. - * c-decl.c (build_compound_literal): Likewise. - * dwarf2asm.c (dw2_force_const_mem): Likewise. - * gimplify.c (create_artificial_label): Likewise. - * tree-inline.c (expand_call_inline): Likewise. - * var-tracking.c (vt_initialize): Likewise. - * tree-outof-ssa.c (create_temp): Copy DECL_IGNORED_P. - -2004-12-31 Andrew Pinski - - PR target/19211 - * config/darwin.c (machopic_legitimize_pic_address): If the orig - is subregister return orig. - -2004-12-31 Zdenek Dvorak - - * tree-scalar-evolution.c (instantiate_parameters_1): Copy the - expression only if needed. - -2004-12-31 John David Anglin - - * pa-hpux.h (HANDLE_SYSV_PRAGMA, HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -2004-12-31 Hans-Peter Nilsson - - PR target/18701 - * combine.c (combine_simplify_rtx): Do not allow paradoxical - subregs of MEM. - - PR target/18701 - * combine.c (gen_lowpart_for_combine): When stripping SUBREG of - MEM, adjust imode and isize. - -2004-12-30 Richard Henderson - - * config/ia64/ia64.c (hfa_element_mode): Return false for - zero-sized top-level aggregates. - -2004-12-30 Jan Hubicka - - PR target/18019 - * i386.md (movqi_1): Fix -Os instruction choice. - -2004-12-30 Steven Bosscher - - * global.c (regclass_intersect): Remove. - (mark_reg_use_for_earlyclobber): Use reg_classes_intersect_p instead. - -2004-12-30 Richard Henderson - - * config/ia64/ia64.c (ia64_function_value): Use PARALLEL for - aggregates with XF/XCmode. - -2004-12-29 Richard Henderson - - * target.h (targetm.calls.arg_partial_bytes): New. - * target-def.h (TARGET_ARG_PARTIAL_BYTES): New. - * calls.c (store_unaligned_arguments_into_pseudos): Update for - partial in bytes. - (load_register_parameters): Likewise. - (store_one_arg): Likewise. - (initialize_argument_information): Use targetm.calls.arg_partial_bytes. - (emit_library_call_value_1): Likewise. - * expr.c (block_move_libcall_safe_for_call_parm): Likewise. - (emit_push_insn): Update for partial in bytes. - * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * function.c (assign_parm_find_entry_rtl): Use - targetm.calls.arg_partial_bytes. Update for result in bytes. - (locate_and_pad_parm): Update for partial in bytes. - * system.h (FUNCTION_ARG_PARTIAL_NREGS): Poison. - * targhooks.c (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): New. - * targhooks.h (hook_int_CUMULATIVE_ARGS_mode_tree_bool_0): Declare. - * doc/tm.texi (TARGET_ARG_PARTIAL_BYTES): Rename and update from - FUNCTION_ARG_PARTIAL_NREGS. - - * config/arc/arc.h, config/c4x/c4x.h, config/i386/i386.h, - config/i860/i860.h, config/m68hc11/m68hc11.h, config/m68k/m68k.h, - config/pdp11/pdp11.h, config/s390/s390.h, config/stormy16/stormy16.h, - config/xtensa/xtensa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - - * config/alpha/alpha.c (alpha_arg_partial_bytes): New. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/alpha/alpha.h, config/alpha/unicosmk.h, - config/alpha/vms.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - - * config/arm/arm.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... - * config/arm/arm.c (arm_arg_partial_bytes): ... here. - (TARGET_ARG_PARTIAL_BYTES): New. - - * config/cris/cris.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... - * config/cris/cris.c (cris_arg_partial_bytes): ... here. - (TARGET_ARG_PARTIAL_BYTES): New. - - * config/fr30/fr30.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/fr30/fr30.c (fr30_arg_partial_bytes): Rename from - fr30_function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/fr30/fr30-protos.h: Update. - - * config/frv/frv.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/frv/frv.c (frv_arg_partial_bytes): Rename from - frv_function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/frv/frv-protos.h: Update. - - * config/ia64/ia64.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/ia64/ia64.c (ia64_arg_partial_bytes): Rename from - ia64_function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/ia64/ia64-protos.h: Update. - - * config/iq2000/iq2000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/iq2000/iq2000.c (iq2000_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/iq2000/iq2000-protos.h: Update. - - * config/m32r/m32r.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/m32r/m32r.c (m32r_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/m32r/m32r-protos.h: Update. - - * config/mcore/mcore.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/mcore/mcore.c (mcore_arg_partial_bytes): Rename from - mcore_function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/mcore/mcore-protos.h: Update. - - * config/mips/mips.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/mips/mips.c (mips_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/mips/mips-protos.h: Update. - - * config/mn10300/mn10300.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/mn10300/mn10300.c (mn10300_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/mn10300/mn10300-protos.h: Update. - - * config/ns32k/ns32k.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... - * config/ns32k/ns32k.c (ns32k_arg_partial_bytes): ... here. - (TARGET_ARG_PARTIAL_BYTES): New. - - * config/pa/pa.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/pa/pa.c (pa_arg_partial_bytes): Rename from - function_arg_partial_nregs. Handle 32-bit. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/pa/pa-protos.h: Update. - - * config/rs6000/rs6000.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/rs6000/rs6000-protos.h: Update. - - * config/sh/sh.h (FUNCTION_ARG_PARTIAL_NREGS): Move ... - * config/sh/sh.c (sh_arg_partial_bytes): ... here. - (TARGET_ARG_PARTIAL_BYTES): New. - - * config/sparc/sparc.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/sparc/sparc.c (sparc_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/sparc/sparc-protos.h: Update. - - * config/v850/v850.h (FUNCTION_ARG_PARTIAL_NREGS): Remove. - * config/v850/v850.c (v850_arg_partial_bytes): Rename from - function_arg_partial_nregs. Adjust to return bytes. - (TARGET_ARG_PARTIAL_BYTES): New. - * config/v850/v850-protos.h: Update. - -2004-12-30 Hans-Peter Nilsson - - * config/mmix/mmix.h (ASM_OUTPUT_INTERNAL_LABEL): Define. - * config/mmix/mmix.c (mmix_asm_output_internal_label): New - function. - * config/mmix/mmix-protos.h (mmix_asm_output_internal_label): - Prototype. - -2003-12-29 Richard Henderson - - * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): True. - -2004-12-29 Jeff Law - - * tree-outof-ssa.c (insert_backedge_copies): New function. - (rewrite_out_of_ssa): Use it. - -2004-12-29 Ira Rosen - - PR tree-optimization/18179 - * tree-vectorizer.c (vect_get_base_and_offset): Call get_inner_reference - and vect_analyze_offset_expr. - (vect_create_addr_base_for_vector_ref): Build address_base by combining - base and initial_offset fields of vect_stmt_info. - (vect_update_inits_of_dr): Update offset of data-ref instead of its - access-fn. Remove argument. - (vect_update_inits_of_drs): Call vect_update_inits_of_dr with new - arguments. - (vect_compute_data_ref_alignment): Check misalignment info in - vect_stmt_info. Remove argument. - (vect_compute_data_refs_alignment): Call vect_compute_data_ref_alignment - with correct argument. - (vect_analyze_data_ref_access): Check access info in vect_stmt_info. - (vect_analyze_pointer_ref_access): Update step and initial_offset fields - of vect_stmt_info. - (vect_get_memtag_and_dr): Call vect_get_base_and_offset and set the - fields of stmt_vec_info. - (vect_analyze_data_refs): Find vectype and pass it to - vect_get_memtag_and_dr. - (vect_get_first_index): Remove. - (vect_compute_array_base_alignment): Remove. - (vect_compute_array_ref_alignment): Remove - (vect_create_data_ref_ptr): Use TYPE_SIZE_UNIT instead GET_MODE_SIZE. - (vect_gen_niters_for_prolog_loop): Use TREE_CONSTANT instead - host_integerp. - (vectorizable_load): Use size arithmetics. - -2004-12-29 Ira Rosen - - PR tree-optimization/18179 - * tree-vectorizer.c (vect_get_base_and_offset): Rename (previous name - vect_get_base_and_bit_offset). - (vect_get_memtag_and_dr): Rename (previous name vect_get_symbl_and_dr). - -2004-12-29 Ira Rosen - - PR tree-optimization/18179 - * tree-vectorizer.h (struct _stmt_vec_info): Add new fields: - initial_offset, step, misalignment and base_aligned_p and macros - to access them. - * tree-vectorizer.c (vect_analyze_offset_expr): New function. - (new_stmt_vec_info): Initialize the new fields of stmt_vec_info. - - (vect_create_data_ref_ptr): Fix printings. - -2004-12-29 Ira Rosen - - PR tree-optimization/18179 - * tree-vectorizer.c (vect_get_symbl_and_dr): Reorganize. Add memtag - retrieval. - (vect_analyze_data_refs): Remove memtag retrieval. - -2004-12-28 Richard Henderson - - PR inline-asm/15740 - * gimplify.c (gimplify_asm_expr): Move resolve asm names ... - * c-typeck.c (build_asm_expr): ... here. Validate input - constraints. Mark memory inputs addressable. - -2004-12-28 Hans-Peter Nilsson - - PR target/18321 - * config/mmix/mmix.c (mmix_expand_epilogue): Change type of - variable offset to HOST_WIDE_INT. Remove obsolete comment. Fix - spacing. - -2004-12-28 Andrew Pinski - - * fold-const.c (fold_build_cleanup_point_expr): For a RETURN_EXPR, - we only need a cleanup point expression when the expression on the - left hand side of the MODIFIY_EXPR inside the return has side - effects. - -2004-12-28 Dorit Naishlos - - * tree-vectorizer.c (vect_mark_relevant) First argument changed from - varray_type to varray_type*. - (vect_mark_stmts_to_be_vectorized): Pass &worklist instead of worklist - when calling vect_mark_relevant. - -2004-12-28 Alan Modra - - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't - generate non-offsettable DImode lo_sum addresses. - -2004-12-28 Zdenek Dvorak - - PR rtl-optimization/19103 - * loop-iv.c (iv_number_of_iterations): Fix typo. - -2004-12-28 Andreas Jaeger - - * genrecog.c (compute_predicate_codes): Avoid warning. - -2004-12-27 John David Anglin - - * vax.c (vax_address_cost, vax_rtx_cost): Correct casts. - (vax_rtx_cost): Handle small offsets for both PLUS and MINUS. - -2004-12-27 Jeff Law - - * tree-ssa-dom.c (thread_across_edge): Remove broken code to - avoid threading into a loop. - -2004-12-27 Richard Henderson - - PR target/17406 - * config/i386/i386.c (ix86_expand_prologue): Add REG_FRAME_RELATED_EXPR - note for allocate_stack_worker insn. - -2004-12-27 Jason Merrill - - * doc/tm.texi (TARGET_RELAXED_ORDERING): Document. - * target.h (struct gcc_target): Add relaxed_ordering field. - * target-def.h (TARGET_RELAXED_ORDERING): Define default. - (TARGET_INITIALIZER): Add it. - * config/alpha/alpha.c (TARGET_RELAXED_ORDERING): Define. - * config/ia64/ia64.c (TARGET_RELAXED_ORDERING): Define. - * config/rs6000/rs6000.c (TARGET_RELAXED_ORDERING): Define. - * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define. - -2004-12-27 Roger Sayle - - PR driver/16118 - * doc/invoke.texi: Document the interaction between -save-temps - and -x. - -2004-12-27 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_eliminate_indexed_memrefs): - Do not break apart constant pool addresses. - (rs6000_emit_move): Only force source into REG if target is MEM. - -2004-12-27 Mark Mitchell - - PR c++/19148 - * gimplify.c (gimplify_cond_expr): Add post_p parameter. - (gimplify_modify_expr_rhs): Adjust call to gimplify_cond_expr. - (gimplify_expr): Likewise. - -2004-12-27 Richard Henderson - - * config/i386/i386.h (UNITS_PER_SIMD_WORD): Don't use MMX/3DNOW. - -2004-12-26 Richard Henderson - - * config/i386/i386.c (ix86_gimplify_va_arg): Also pass the result - of type_natural_mode to examine_argument. - - * config/i386/i386.md (mov_internal_rex64): New. - (movv2sf_internal_rex64): New. - (mov_internal): Use no register preferences at all. - (movv2sf_internal): Likewise. - -2004-12-26 Richard Henderson - - * simplify-rtx.c (simplify_relational_operation_1): Don't simplify - plus/minus across EQ for floating-point. - -2004-12-26 John David Anglin - - PR target/17643 - * pa.c (pa_function_ok_for_sibcall): Sibcalls are not ok when - generating code for the portable runtime. - -2004-12-25 Richard Henderson - - * expr.c (clear_storage): Validate CONST0_RTX extant. Special case - complex modes. - -2004-12-25 Zdenek Dvorak - - PR rtl-optimization/19078 - * tree-ssa-loop-ivopts.c (determine_use_iv_cost_generic, - determine_use_iv_cost_outer): Fix computing of cost for the original - bivs. - (dump_use): Handle case related_cands == NULL. - -2004-12-25 Marek Michalkiewicz - - PR target/19059 - * config/avr/avr.c (avr_mcu_types): Move attiny{13,2313} from avr4 - to avr2. - * config/avr/avr.h (LINK_SPEC): Ditto. - * config/avr/t-avr (MULTILIB_MATCHES): Ditto. - -2004-12-25 Alan Modra - - PR target/19137 - * config/rs6000/rs6000.md (movti_power, movti_string): Relax - operand[1] predicate to input_operand, and add r<-n alternative. - Move TImode const_double_operand splitter to where it belongs. - -2004-12-25 Alan Modra - - PR target/19147 - * config/rs6000/rs6000.md (andsi3_internal7, andsi3_internal8): Delete. - -2004-12-24 Uros Bizjak - - * config/i386/i386.md (*fix_trunc{d,s,h}i_1): - Rename to *fix_trunc{d,s,h}i_i387. - (fix_trunc{d,s}fdi2): Reorder tests. - -2004-12-24 Daniel Berlin - - Fix PR debug/14638 - - * tree.h (DECL_DEBUG_ALIAS_OF): New macro. - * var-tracking.c (track_expr_p): Don't disqualify tracking of variables - that are aliases of variables we want to track, unless the - original variable is also ignored for debugging purposes. - (VARIABLE_HASH_VAL): Use DECL_UID, so that this is deterministic. - * tree-outof-ssa.c (create_temp): Note who we are a debug alias of. - * dwarf2out.c (dwarf2out_var_location): Add us to the location of - the decl we are an alias of. - -2004-12-24 Alan Modra - - PR target/19142 - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Allow - DFmode for 32-bit again. - -2004-12-23 Roger Sayle - - * reload.c (regno_clobbered_p): Add a gcc_assert that regno - refers to a hard register. - -2004-12-23 Mark Mitchell - - * gimplify.c (gimplify_modify_expr_rhs): Use types_compatible_p. - -2004-12-23 DJ Delorie - - * genrecog.c (did_you_mean_codes): New. - (compute_predicate_codes): Fail unmatched codes. - -2004-12-23 Eric Christopher - - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add - assert for machine=mips for !TARGET_IRIX. - * config/mips/linux.h: Remove machine=mips assert. - * config/mips/netbsd.h: Ditto. - * config/mips/openbsd.h: Ditto. - -2004-12-23 Dale Johannesen - - * tree.c (iterative_hash_expr): Canonicalize builtins. - -2004-12-23 Alexandre Oliva - - PR target/16819 - * calls.c (load_register_parameters): Don't call use_regs when - nregs is zero. - -2004-12-23 Eric Botcazou - - PR middle-end/17746 - * expr.c (get_inner_reference): Add 'keep_aligning' parameter. - Break on aligning VIEW_CONVERT_EXPR nodes on STRICT_ALIGNMENT - platforms only if keep_aligning is true. - (expand_assignment): Adjust call to get_inner_reference. - (expand_expr_addr_expr_1): Likewise. - (expand_expr_real_1): Likewise. - * dojump.c (do_jump): Likewise. - * dwarf2out.c (loc_descriptor_from_tree_1): Likewise. - * fold-const.c (optimize_bit_field_compare): Likewise. - (decode_field_reference): Likewise. - (split_address_to_core_and_offset): Likewise. - * tree-ssa-loop-ivopts.c (split_address_cost): Likewise. - * tree.h (get_inner_reference): Adjust prototype. - -2004-12-23 Richard Henderson - - * config/i386/i386.c (override_options): Revert last change - wrt fancy 387 math. - -2004-12-23 Richard Henderson - - * config/alpha/alpha.md (one_cmpl2, and3, andnot3, - ior3, iornot3, xor3, xornot3): New macroized - vector operate patterns. - -2004-12-23 Richard Henderson - - * config/i386/i386.c (ix86_expand_vector_move): Tidy. - (ix86_expand_vector_move_misalign): New. - (ix86_misaligned_mem_ok): Remove. - (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. - * config/i386/i386-protos.h: Update. - * config/i386/i386.md (SSEMODEI): Rename from SSEINT16. - (MMXMODEI): Rename from MMXINT8. - (SSEMODE, MMXMODE, movmisalign): New. - -2004-12-23 Mark Mitchell - - PR c++/16405 - * gimplify.c (gimplify_modify_expr_rhs): Handle - INDIRECT_REF/ADDR_EXPR combinations. - -2004-12-22 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_mov): Split out ... - (alpha_expand_movmisalign): ... misaligned vector support. - (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md (VEC): New macro. - (movv8qi, movv4hi, movv2si): Compress with VEC. - (movv8qi_fix, movv4hi_fix, movv2si_fix): Likewise. - (movv8qi_nofix, movv4hi_nofix, movv2si_nofix): Likewise. - (movmisalign): New. - -2004-12-22 Richard Henderson - - * optabs.h (OTI_movmisalign, movmisalign_optab): New. - * optabs.c (init_optabs): Create it. - * genopinit.c (optabs): Initialize it. - * expr.c (expand_expr_real_1) : Use it. - * tree-vectorizer.c (vect_supportable_dr_alignment): Likewise. - * target-def.h (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. - * target.h (vectorize.misaligned_mem_ok): Remove. - * targhooks.c (default_vect_misaligned_mem_ok): Remove. - * doc/md.texi (movmisalign): New. - * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): Remove. - -2004-12-22 Richard Henderson - - * config/i386/emmintrin.h (_mm_loadh_pd): Don't cast pointer arg - to __v2si. - (_mm_storeh_pd, _mm_loadl_pd, _mm_storel_pd): Likewise. - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use double* or - const double* for __builtin_ia32_loadhpd, __builtin_ia32_loadlpd, - __builtin_ia32_storehpd, __builtin_ia32_storelpd. - (ix86_expand_builtin): Update to match. - (ix86_expand_vector_init): Use sse2_loadlpd. - * config/i386/i386.md (vec_setv2df): Use sse2_loadlpd, sse2_loadhpd. - (vec_extractv2df): Use sse2_storelpd, sse2_storehpd. - (sse2_storehpd, sse2_loadhpd, sse2_storelpd, sse2_loadlpd): New. - (sse2_movhpd): Remove. - -2004-12-23 Alan Modra - - PR target/18751 - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Return - false for anything larger than 32 bits in 32-bit code. - -2004-12-22 Richard Henderson - - * config/i386/i386.md (btsq, btrq, btcq): Fix modes. - (bt peepholes): Likewise. - - * varasm.c (force_const_mem): Call set_mem_align. - -2004-12-22 Richard Henderson - - * config/i386/predicates.md (sse_comparison_operator): Fix - typo in ieee test. - (arith_or_logical_operator): Downcase codes. - -2004-12-23 Kaz Kojima - - PR target/18511 - * reload1.c (emit_output_reload_insns): Check if OLD is a hard - register before calling regno_clobbered_p. - * reload.c: Update comment for regno_clobbered_p. - -2004-12-22 Richard Henderson - - * config/i386/i386.c (override_options): Respect user disable of - fancy 387 math, sse, mmx. - (construct_container): Generate error if we need an sse regster - and sse has been disabled. - * config/i386/i386.h (TARGET_SWITCHES): Disabling sse also disables - later sse generations. Disabling mmx also disables 3dnow. - -2004-12-22 Daniel Berlin - - * tree-inline.c (struct inline_data): Remove inlined_fns. - (expand_call_inline): Remove dead code setting - inlined_fns. - (optimize_inline_calls): Remove dead code setting DECL_INLINED_FNS. - * tree.h (struct tree_decl): Remove inlined_fns. - -2004-12-22 Roger Sayle - - * tree-browser.c: Remove obsolete #ifdef HOST_EBCDIC code. - -2004-12-23 Alan Modra - - PR target/18896 - * function.c (split_complex_args): Set DECL_ARTIFICIAL, DECL_IGNORED_P - for real and imaginary parts if the parm is addressable. - (assign_parms_unsplit_complex): If parm addressable, save real - and imaginary parts to a stack temp. Pass assign_parm_data_all. - (assign_parms): Adjust assign_parms_unsplit_complex call. - -2004-12-22 Daniel Berlin - - * tree.h (DECL_PTA_ALIASVAR): Dead. - (struct tree_decl): Remove alias_var field. - -2004-12-22 Nathan Sidwell - - * system.h (IN_RANGE): Restore HOST_WIDE_INT cast. - * tree.h (IS_EXPR_CODE_CLASS): Do not use IN_RANGE. - -2004-12-22 Richard Henderson - Uros Bizjak - - * config/i386/i386.md (truncdfsf2): Don't create stack temp when - using sse math only. Use truncdfsf2_with_temp. - (truncdfsf2_with_temp): New. - (truncdfsf_fast_i387): Rename from truncdfsf2_noop. Add memory - output alternative. - (truncdfsf_mixed): Rename from truncdfsf2_1_sse. Compress duplicate - alternatives. - (truncdfsf_fast_sse): Rename from truncdfsf2_2. Remove f alternative. - (truncdfsf2_3, truncdfsf2_sse_only): Remove. - (truncdfsf_i387): Rename from truncdfsf2_1. Compress duplicates. - (truncdfsf_fast_mixed): New. - (truncdfsf splitters): Remove all except the 387 load/store split. - (truncxfsf2_1, truncxfdf2_1): Unify enable constraint with - respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH and - TARGET_MIX_SSE_I387. - (*truncxf{s,d}f2_1): Rename to *truncxf{s,d}f2_mixed. - (truncxf{s,d}f2_noop) Rename to truncxf{d,s}f2_i387_noop. - (*truncxf{s,d}f2_i387): New patterns. - (*truncxf{s,d}f2_2): Rename to *truncxf{s,d}f2_i387_1. - (truncxf{s,d}f2, fmod{s,d}f3, drem{s,d}f3, log1p{s,d}f2, - rint{s,d}f2, floor{s,d}f2, ceil{s,d}f2, btrunc{s,d}f2, - nearbyint{s,d}f2): Use renamed patterns. - -2004-12-22 Richard Kenner - - * tree.h (TYPE_SIZES_GIMPLIFIED): New. - * function.c (gimplify_parm_type): Don't gimplify type if already done. - * gimplify.c (gimplify_decl_expr): Likewise. - (gimplify_type_sizes): Set TYPE_SIZES_GIMPLIFIED. Examine nested - array types. - -2004-12-22 Richard Henderson - - * gimplify.c (eval_save_expr): Remove. - (gimplify_one_sizepos): Unshare expr before gimplifying. - * stor-layout.c (variable_size): Revert 2004-12-19 change. - (layout_decl): Revert 2004-12-18 change. - (layout_type): Revert 2004-12-21 change. - -2004-12-22 Richard Kenner - - * tree-sra.c (type_can_be_decomposed_p): Reject variable sized types. - -2004-12-22 Mark Mitchell - - * Makefile.in (install-common): Remove special-case code for when - SPECS is defined. - -2004-12-22 Jan Beulich - - * config.gcc: Add dbxelf.h to NetWare's tm_file. - * config/i386/netware-crt0.c: Prototype __init_environment and - __deinit_environment prior to their definition. - (__init_environment): Correct invokation of constructor function. - * config/i386/netware.h (TARGET_OS_CPP_BUILTINS): Use - builtin_define_std rather than builtin_define on IAPX386. - * config/i386/nwld.h: Disable stabs debugging info with the linker - this file supports. - * config/i386/t-nwld (SHLIB_LINK): Do not use a temporary file for - the output. Add -posix to the options as that is the more compatible - mode. - * gthr-nks.h: Formatting. - (__gthread_mutex_init_function): Kill the dubious use of - NX_MUTEX_RECURSIVE as it is now clear that the traditional mutexes - were not meant to be recursive. - (__gthread_recursive_mutex_t, __GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION, - __gthread_recursive_mutex_init_function, - __gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock, - __gthread_recursive_mutex_unlock): New. - -2004-12-22 Alexandre Oliva - - * config/mips/t-linux64: Remove code that messed with $(SPECS). - (MULTILIB_OPTIONS, MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): Move - n32 to the front. - (MULTILIB_EXTRA_OPTS, CRTSTUFF_T_CFLAGS, CRTSTUFF_T_CFLAGS_S): - Removed. - * config/mips/linux64.h (DRIVER_SELF_SPECS): Don't handle - -mabi-fake-default. - (SUBTARGET_TARGET_SWITCHES): Likewise. - -2004-12-21 Andrew Pinski - - PR c++/18984 - * pointer-set.c (pointer_set_contains): Add back. - * pointer-set.h (pointer_set_contains): Add back. - -2004-12-21 Richard Henderson - - * gimplify.c (eval_save_expr): New. - (gimplify_one_sizepos): Use it. - * stor-layout.c (layout_type): Unshare TYPE_MIN/MAX_VALUE. - -2004-12-21 Nathan Sidwell - - * system.c (IN_RANGE): Use plain unsigned, not unsigned - HOST_WIDE_INT. - * tree.def (VOID_TYPE, INTEGER_TYPE, REAL_TYPE, COMPLEX_TYPE, - VECTOR_TYPE, OFFSET_TYPE, ENUMERAL_TYPE, BOOLEAN_TYPE, CHAR_TYPE, - POINTER_TYPE, REFERENCE_TYPE, METHOD_TYPE, FUNCTION_TYPE, - FILE_TYPE, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE, - QUAL_UNION_TYPE): Reorder for better code efficiency. - (CONST_DECL, TYPE_DECL, VAR_DECL, FIELD_DECL, PARM_DECL): Likewise. - (INDIRECT_REF, ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): Likewise. - * tree.h (INDIRECT_REF_P): Reorder checks for better optimization. - (IS_EXPR_CODE_CLASS): Use IN_RANGE. - (INTEGRAL_TYPE_P, FLOAT_TYPE_P): Reorder checks for better - optimization. - -2004-12-21 David O'Brien - - * config/freebsd-spec.h: Use KSE pthread lib for -pthread. - -2004-12-21 James A. Morrison - - PR c/18963 - * c-decl.c (pushdecl): Remove block trying to merge static function - declarations at block scope to file scope declarations. - -2004-12-21 James A. Morrison - - PR c/18596 - * c-parse.in (initdcl): Don't process a declaration if start_decl fails. - (notype_initdcl): Don't process a declaration if start_decl fails. - * c-decl.c (start_decl): Fail if grokdeclarator fails. - (grokdeclarator): Fail if a function definition has an invalid storage - class. - * c-typeck.c (start_init): Treat error_mark_node the same as 0. - -2004-12-21 Richard Henderson - - * config/i386/i386.c (x86_sse_split_regs): Rename from - x86_sse_partial_regs. - * config/i386/i386.h (x86_sse_split_regs): Likewise. - (TARGET_SSE_SPLIT_REGS): Rename from TARGET_SSE_PARTIAL_REGS. - * config/i386/i386.md (*): Update to match. Remove two - floatsisf splitters that use it. - - * config/i386/i386.h (x86_sse_partial_regs_for_cvtsd2ss): Remove. - - * config/i386/i386.c (x86_sse_partial_regs_for_cvtsd2ss): Remove. - * config/i386/i386.h (TARGET_SSE_PARTIAL_REGS_FOR_CVTSD2SS): Remove. - * config/i386/i386.md (truncdfsf2_1_sse): Don't test it. - (truncdfsf2_2, truncdfsf2_sse_only): Likewise. - (truncdfsf2_1_sse_nooverlap, truncdfsf2_2_nooverlap): Remove. - (truncdfsf2_sse_only_nooverlap): Remove. - - * config/i386/i386.h (TARGET_SSE_TYPELESS_LOAD0): Remove. - -2004-12-21 Eric Botcazou - - * expr.c (emit_group_load_1): Return the source if the move - is a regular move between complex values. - -2004-12-20 Roger Sayle - - PR middle-end/18683 - * config/rs6000/rs6000.c (current_file_function_operand): Only check - current_function_decl's DECL_RTL if it has already been set. - -2004-12-20 Roger Sayle - - PR middle-end/18683 - * function.c (pop_function_context_from): Don't reset reg_renumber. - -2004-12-20 Eric Botcazou - - PR middle-end/18776 - * expr.c (write_complex_part): Use a subreg if the original object - is a hard reg that spans an even number of regs or a MEM. - (read_complex_part): Likewise. - -2004-12-20 Mark Mitchell - - * Makefile.in (install-common): Do not install the specs file - unless SPECS is defined. - -2004-12-20 Zdenek Dvorak - - PR rtl-optimization/18942 - * simplify-rtx.c (simplify_relational_operation_1): Simplify - x + cst1 == cst2 to x == cst2 - cst1. Made static. - -2004-12-20 Matt Austern - - PR c++/19044 - * c-common.c (set_builtin_user_assembler_name): New. - * c-common.h (set_builtin_user_assembler_name): Declare. - * c-decl.c (finish_decl): Use set_builtin_user_assembler_name - -2004-12-20 Diego Novillo - - PR tree-optimization/19080 - - Merge from tree-cleanup-branch - - * tree-flow-inline.h (clear_call_clobbered): New function. - * tree-ssa-alias.c (init_alias_info): Call it. - -2004-12-20 Richard Henderson - - * config/i386/i386.md (sse2_movsd): Remove ix86_binary_operator_ok - check. - -2004-12-20 Steven Bosscher - Andrew Pinski - - PR middle-end/18191 - PR middle-end/18965 - PR middle-end/18999 - * expr.c (categorize_ctor_elements_1): Count the total number - of elements in the constructor. - (categorize_ctor_elements): Return it in a new argument. - * tree.h (categorize_ctor_elements): Adjust prototype. - * gimplify.c (gimplify_init_ctor_eval_range): New. - (gimplify_init_ctor_eval): Gimplify RANGE_EXPR. - (gimplify_init_constructor): Block clear the object if the - constructor has fewer elements than the object type. Only try - to add assignments to individual elements when we have to. - -2004-12-20 Richard Henderson - - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use - long_long_integer_type_node in building V2DI_type_node. - - * config/i386/emmintrin.h: Use __vector_size__ instead of vector_size. - * config/i386/mmintrin.h, config/i386/xmmintrin.h: Likewise. - -2004-12-20 Ben Elliston - - * doc/md.texi (Expander Definitions): Use @emph instead of @strong - around Note: text to workaround a limitation of the Info format. - * doc/cpp.texi (Invocation): Likewise. - * doc/cppopts.texi: Likewise. - -2004-12-19 Dale Johannesen - - * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Don't - reference operand 1 of ADDR_EXPRs. - -2004-12-19 Mark Mitchell - - * defaults.h (ASM_OUTPUT_INTERNAL_LABEL): New macro. - * output.h (assemble_name_raw): Declare it. - * system.h (ASM_OUTPUT_INTERNAL_LABEL): Do not poison it. - * varasm.c (assemble_name_raw): New function. - (assemble_name): Use it. - (default_internal_label): Likewise. - * config/darwin.c (darwin_asm_output_dwarf_delta): Likewise. - * doc/tm.texi (ASM_OUTPUT_INTERNAL_LABEL): Document. - -2004-12-19 Richard Henderson - - PR 18067 - * stor-layout.c (variable_size): Force creation of a SAVE_EXPR. - -2003-12-19 Steven Bosscher - - * config/i386/i386.c (ix86_split_to_parts): Use an array with - four elements for decoding a CONST_DOUBLE on 64 bits targets. - -2004-12-19 Bernardo Innocenti - - * config/m68k/m68kemb.h (TARGET_OS_CPP_BUILTINS): Remove redundant - definition of mc68000, already present in TARGET_CPU_CPP_BUILTINS. - -2004-12-18 Daniel Berlin - - * lambda-code.c (can_convert_to_perfect_nest): Make checking - match up with what perfect_nestify can actually handle. - (perfect_nestify): Don't return false in the phi node loop. - -2004-12-18 Richard Henderson - - * config/i386/i386.md (SSEINT16): New. - (movv16qi, movv8hi, movv4si, movv2di): Compress via macros. - (movv16qi_internal, movv8hi_internal, movv4si_internal, - movv2di_internal): Compress via macros. Add SSE zero alternative. - Fix pure SSE alternatives to use 'x' instead of 'Y'. - (MMXINT8): New. - (movv8qi, movv4hi, movv2si, movv8qi_internal, movv4hi_internal, - movv2si_internal): Compress via macros. - (SSEPUSH, MMXPUSH): New. - (pushv18qi, pushv8hi, pushv4si, pushv2di, pushti, pushv4sf, pushv2df, - pushv8qi, pushv4hi, pushv2si, pushv2sf): Compress via macros. - -2004-12-18 Richard Henderson - - PR middle-end/16417 - * c-decl.c (store_parm_decls): Clarify get_pending_sizes insertion - comment. - * c-objc-common.c (c_cannot_inline_tree_fn): Remove pending sizes - checks. - * c-tree.h (struct lang_decl): Remove pending_sizes. - * function.c: Include tree-gimple.h - (assign_parm_setup_reg): Remove callee-copies code. - (gimplify_parm_type, gimplify_parameters): New functions. - (expand_pending_sizes): Remove. - (expand_function_start): Don't call it. - * gimplify.c (gimplify_expr): Examine DECL_VALUE_EXPR for PARM_DECL. - (gimplify_body): Add do_parms argument. Use gimplify_parameters. - (gimplify_function_tree): Setup cfun. Update gimplify_body call. - * tree-gimple.h (gimplify_body): Update decl. - * tree-inline.c (initialize_inlined_parameters): Update gimplify_body - call. - * tree.h (gimplify_parameters): Declare. - * Makefile.in (function.o): Depend on TREE_GIMPLE_H. - -2004-12-18 Richard Henderson - - * c-decl.c (finish_struct): Add DECL_EXPR for variable sized - structures seen inside functions. - -2004-12-18 Richard Henderson - - * c-decl.c (grokdeclarator): Save variable array size before - subtracting 1, rather than after. - -2004-12-18 Eric Botcazou - - PR middle-end/15486 - * varasm.c (asm_emit_uninitialised): Return early if - a custom section is requested. - (assemble_variable): Revert 2002-03-15 patch. - -2004-12-18 Richard Henderson - - * stor-layout.c (layout_decl): Use unshare_expr, not unsave_expr. - -2004-12-18 Zdenek Dvorak - - PR tree-optimization/18800 - * params.def (PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND): New parameter. - * tree-ssa-loop-ivopts.c (struct iv_ca): Add n_cands field. - (ALWAYS_PRUNE_CAND_SET_BOUND): New macro. - (iv_ca_set_no_cp, iv_ca_set_cp, iv_ca_new): Update n_cands field. - (iv_ca_delta_join, iv_ca_delta_reverse, iv_ca_n_cands, iv_ca_prune): - New functions. - (iv_ca_extend): Return number of candidates in the set. - (try_add_cand_for): Add argument to iv_ca_extend calls. - (try_improve_iv_set): Use iv_ca_prune. - * doc/invoke.texi (iv-always-prune-cand-set-bound): Document. - -2004-12-18 Zdenek Dvorak - - PR rtl-optimization/19001 - * loop-iv.c (iv_number_of_iterations): Record assumptions for loops - with power of two step to 'infinite' field. - -2004-12-18 Roger Sayle - - * Makefile.in (stor-layout.o): Depend upon gt-stor-layout.h. - (tree-ssa-propagate.o): Depend upon gt-tree-ssa-propagate.h. - (tree-ssa-operands.o): Depend upon gt-tree-ssa-operands.h. - (tree-mudflap.o): Depend upon gt-tree-mudflap.h. - (expr.o): Depend upon gt-expr.h. - (regclass.o): Depend upon gt-regclass.h. - (bitmap.o): Depend upon gt-bitmap.h. - (lists.o): Depend upon gt-lists.h. - - (cfgexpand.o): Don't depend upon gt-tree-cfg.h. - - (GTFILES): Remove fold-const.c. - (gt-stmt.h, gt-fold-const.h, gt-input.h, gt-tree-ssa-ccp.h): - Remove rules. - -2004-12-18 Richard Henderson - - * stor-layout.c (layout_decl): Unshare size expressions copied - from the type. - - * fold-const.c (multiple_of_p): Handle BIT_AND_EXPR when - BOTTOM is a power of two. - -2004-12-18 Richard Henderson - - * tree-nested.c (save_tmp_var): New. - (struct walk_stmt_info): Add is_lhs. - (walk_stmts) : Be more accurate with setting of - val_only; set is_lhs. - (convert_nonlocal_reference): Use save_tmp_var when is_lhs; - clear is_lhs when appropriate. - (convert_local_reference): Likewise. - -2004-12-18 Richard Earnshaw - - * arm/ieee754-sf.S (floatdisf): Fix label definition in FPA - compatibility code. - -2004-12-18 Roger Sayle - - * ifcvt.c (total_bb_rtx_cost): Rename function to cheap_bb_rtx_cost_p. - Take a max_cost argument to avoid scanning large blocks, by returning - a Boolean instead of a total. Include the cost of a "fstp %st(0)" - instruction required to pop dead values off of a register stack. - -2004-12-18 Roger Sayle - - PR middle-end/18548 - * expr.c (expand_expr_real_1) : Ensure that target, op0 - and op1 are all registers (or constants) before expanding the RTL - comparison sequence [to avoid reg_overlap_mentioned (target, op1)]. - -2004-12-18 Eric Botcazou - - PR rtl-optimization/16968 - * loop.c (scan_loop): Stop scanning the loop for movable - insns as soon as an optimization barrier is encountered. - -2004-12-17 Zack Weinberg - - PR 18897 - * toplev.c (compile_file): Call process_pending_assemble_externals - just before targetm.asm_out.file_end. - -2004-12-17 Diego Novillo - - tree-optimization/18501 - * tree-optimize.c (init_tree_optimization_passes): Run - pass_late_warn_uninitialized before the last DCE run. - -2004-12-17 Richard Henderson - - * config/i386/i386.c (x86_64_reg_class_name): Re-indent. - (classify_argument, examine_argument, construct_container, - merge_classes): Remove prototypes. - (type_natural_mode): Split out from ... - (function_arg): ... here. - (gen_reg_or_parallel): Remove alt_mode argument. Update callers. - Use orig_mode unless it's BLKmode. - (construct_container): Add orig_mode argument. Update callers. - Use gen_reg_or_parallel for SSE registers. - (ix86_function_value): Use type_natural_mode. - (ix86_gimplify_va_arg): Likewise. - (ix86_hard_regno_mode_ok): Always accept all SSE, MMX, 3DNOW modes in - SSE registers; always accept all MMX, 3DNOW modes in MMX registers. - * config/i386/i386.h (VALID_SSE2_REG_MODE): Don't include - VALID_MMX_REG_MODE. - * config/i386/i386.md (attribute mode): Add V1DF. - (movsi_1): Use 'x' instead of 'Y' constraints. - (movsi_1_nointernunit, movdi_2, movdi_1_rex64): Likewise. - (movdi_1_rex64_nointerunit): Likewise. - (movdf_nointeger, movdf_integer): Likewise. Handle SSE1. - (movsf_1, movsf_1_nointerunit): Line up constraint alternatives. - (swapsf): Use fp_register_operand, don't disable for TARGET_SSE. - (swapdf): Likewise. - (swapxf): Enable only for TARGET_80387. - (movv2sf, movv2sf_internal, pushv2sf): Enable for MMX. - (movtf): Remove double-check for TARGET_64BIT. - (movv2df_internal): Enable for SSE1. - (movv8hi_internal, movv16qi_internal): Likewise. - (movv2df, movv8hi, movv16qi): Likewise. - (pushv2di, pushv8hi, pushv16qi, pushv4si): Likewise. - (pushdi2_rex64, movv4sf_internal, movv4si_internal, movv2di_internal, - movv8qi_internal, movv4hi_internal, movv2sf_internal, - movv2df_internal, movv8hi_internal, movv16qi_internal, - movti_internal): Add leading '*' to name. - -2004-12-17 Dale Johannesen - - * c-decl.c (diagnose_mismatched_decls): Accept mismatched - function types: void with previous implicit int. - -2004-12-17 Andreas Krebbel - - * config/s390/s390.c (s390_gimplify_va_arg): Set alias set to - s390_sr_alias_set. - -2004-12-17 Jan Beulich - - PR target/17603 - * config/i386/i386.c (enum x86_64_reg_class): Define - X86_64_COMPLEX_X87_CLASS. - (x86_64_reg_class_names): Add name for X86_64_COMPLEX_X87_CLASS. - (merge_classes): Handle X86_64_COMPLEX_X87_CLASS. - (classify_argument): XCmode is X86_64_COMPLEX_X87_CLASS. - (examine_argument): X86_64_COMPLEX_X87_CLASS requires two - registers when dealing with a return value. - (construct_container): Handle X86_64_COMPLEX_X87_CLASS. - Eliminate impossible case of two X87/X87UP pairs (this now is - being expressed by a single COMPLEX_X87). - (x86_libcall_value): XCmode gets returned in st0/st1. - -2004-12-17 Steven Bosscher - - * tree.c (type_contains_placeholder_1): Always return false - for VECTOR_TYPE if its TREE_TYPE does not contain a placeholder. - -2004-12-17 Uros Bizjak - - * config/i386/i386.md (extendsfdf2, *extendsfdf2_1, - *extendsfdf2_1_sse_only): Unify enable constraint with - respect to TARGET_SSE2, TARGET_80387, TARGET_SSE_MATH - and TARGET_MIX_SSE_I387. - (*extendsfdf2_i387): New insn pattern. - (*extendsfdf2_1): Rename to *extendsfdf2_mixed. Fix - register constraint for operand 0. - (*extendsfdf2_1_sse_only): Rename to *extendsfdf2_sse. - (*extend{s,d}fxf2_1): Rename to *extend{s,d}fxf2_i387. - -2004-12-16 Andrew Pinski - - PR target/19041 - * config/darwin.c (machopic_symbol_defined_p): Return false - if the binds local and is a common symbol. - -2004-12-16 Richard Henderson - - * config/i386/i386.md (extv, extzv, insv): Revalidate the - operand with ext_register_operand. - -2004-12-16 Kazu Hirata - - * global.c: Fix a comment typo. - -2004-12-16 Eric Botcazou - Roger Sayle - - PR tree-optimization/18707 - * cfgloopmanip.c (create_preheader): Move the preheader - only if the latch was falling through to the header. - -2004-12-16 Danny Smith - - PR target/18997 - * config/i386/cygwin.h (GTHREAD_USE_WEAK): Define to 0. - -2004-12-16 Richard Henderson - Aldy Hernandez - - * simplify-rtx.c (simplify_replace_rtx): Do not blindly replace - hard registers. - -2004-12-16 H.J. Lu - - PR other/18508 - * config/alpha/t-osf4 (SHLIB_LINK): Use `.backup' as the suffix - to back up the existing shared library. - * config/arm/t-netbsd (SHLIB_LINK): Likewise. - * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. - * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. - * config/sh/t-linux (SHLIB_LINK): Likewise. - * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. - * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. - * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. - * config/t-slibgcc-sld (SHLIB_LINK): Likewise. - - * config/i386/t-nwld (SHLIB_LINK): Don't use the temporary - file. - -2004-12-16 Richard Henderson - - * Makefile.in (MD_DEPS, s-mddeps): New. - (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-preds): Depend on MD_DEPS instead of md_file. - (genobjnames): Add genmddeps.o - (build/genmddeps, build/genmddeps.o): New. - (mostlyclean): Remove mddeps.mk. - * genmddeps.c: New file. - * gensupport.c (include_callback): New. - (process_include): Call it. - * gensupport.h (include_callback): Declare. - -2004-12-16 Nathan Sidwell - - * local-alloc.c (block_alloc): Replace IN_RANGE with simple - comparison. - - * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs. - -2004-12-16 Mark Dettinger - - * config/s390/s390.c (struct processor_costs): Two new fields: - madbr, maebr. - (s390_rtx_costs): Added handling of multipy and add in SFmode. - More precise values for cost of multiply and add. - -2004-12-15 Richard Henderson - - PR target/19028 - * config/i386/i386.md (sse compare splitter): Test for SF and DFmode - explicitly instead of using VALID_SSE_REG_MODE. - -2004-12-15 Richard Henderson - - PR target/19005 - * config/i386/i386.md (swaphi_1): Swap with swaphi_2, allow with - optimize_size. - (swapqi_1): Rename from swapqi. Enable only for no partial reg - stall and optimize_size. - (swapqi_2): New. - (swaphi_1, swaphi_2, swapqi_1): Add athlon_decode. - (swapsi, swaphi_1, swaphi_2, swapqi_1, swapdi): Remove modrm override. - -2004-12-16 Uros Bizjak - - * config/i386/i386.md (*floathisf2_i387, *floathidf2_i387): - Also enable for TARGET_MIX_SSE_I387. - -2004-12-16 Uros Bizjak - - * config/i386/i386.md (sqrt{s,d}f2_1, sqrt{s,d}f2_1_sse_only, - sqrt{s,d}f2_i387): Unify enable constraint with respect to - TARGET_SSE, TARGET_SSE2, TARGET_USE_FANCY_MATH_387, - TARGET_SSE_MATH and TARGET_MIX_SSE_I387. - (sqrt{s,d}f2_1): Rename to *sqrt{s,d}f2_mixed. - (sqrt{s,d}f2_1_sse_only): Rename to *sqrt{s,d}f2_sse. - (sqrt{s,d}f2_i387): Rename to *sqrt{s,d}f2_i387. - (*sqrtextendsfdf2): Also enable for TARGET_MIX_SSE_I387. - (*sqrtextend?f?f2): Rename to *sqrtextendsfdf2_i387. - -2004-12-16 Uros Bizjak - - * config/i386/i386.md (*fop_?f_comm_{,sse,nosse}, - *fop_?f_1_{,sse,nosse}, *fop_{d,x}f_{2,3,4,5,6}): Unify enable - constraint with respect to TARGET_80387, TARGET_SSE, TARGET_SSE2, - TARGET_SSE_MATH and TARGET_MIX_SSE_I387. - (*fop_?f_{comm,1}): Rename to *fop_?f_{comm,1}_mixed. - (*fop_?f_{comm,1}_nosse): Rename to *fop_?f_{comm,1}_i387. - (*fop_{d,x}f_{2,3,4,5,6}): Rename to *fop_{d,x}f_{2,3,4,5,6}_i387. - -2004-12-15 H.J. Lu - - PR target/18153 - * configure.ac: Define HAVE_LD_STATIC_DYNAMIC if linker supports - -Bstatic/-Bdynamic option. - * config.in: Regenerated. - * configure: Likewise. - - * gcc.c (init_spec): Pass -Bstatic/-Bdynamic to ld for static - -lunwind if possible. - -2004-12-15 Daniel Berlin - - * cfgloop.c (flow_loops_dump): Don't print out levels. - (flow_loops_find): Don't set loop->levels. - (flow_loops_level_compute): Make void. - * cfgloop.h (struct loops): Remove levels member. - Add comment about loops in parray possibly being NULL. - -2004-12-15 Alexandre Oliva - - * reload.c (SMALL_REGISTER_CLASS_P): New. - (push_secondary_reload, find_reusable_reload, find_reloads): Use - it instead of testing only the class size. - -2004-12-15 Eric Botcazou - - PR c++/17972 - * tree-inline.c (expand_call_inline): Set TREE_SIDE_EFFECTS - on the STMT_EXPR wrapping up the inlined body. - -2004-12-15 Vladimir Makarov - Steven Bosscher - PR middle end/17340 - - * global.c: Update comments in a few places. - (check_earlyclobber): Return true if there are early clobber - classes. - (calculate_local_reg_bb_info): Do not try to mark earlyclobber - regs if there are none. - (bb_info, allocate_bb_info, free_bb_info, modify_reg_pav, - make_accurate_live_analysis): Rename pavin, pavout to live_pavin, - live_pavout. - (modify_bb_reg_pav): Remove. - (calculate_reg_pav): Use code from modify_bb_reg_pav. - (temp_bitmap): New variable. - (calculate_reg_pav): Allocate/deallocate temp_bitmap. - -2004-12-15 Richard Henderson - - PR target/19010 - * config/i386/i386.c (ix86_must_pass_in_stack): Don't return true - for TImode vectors. - (gen_reg_or_parallel): New. - (function_arg): Use it. - (ix86_hard_regno_mode_ok): Test SSE1 and SSE2 separately, - MMX and 3DNOW separately. - (ix86_rtx_costs): Simplify FLOAT_EXTEND case. - (ix86_vector_mode_supported_p): Test SSE1 and SSE2 separately. - * config/i386/i386.h (VALID_SSE2_REG_MODE): Move SSE2 cases from ... - (VALID_SSE_REG_MODE): ... here. - -2004-12-15 David Edelsohn - - * xcoffout.c (xcoffout_declare_function): Change strncpy to memcpy. - -2004-12-15 Ian Lance Taylor - - * config/arm/arm.c (arm_xscale_rtx_costs): Increase cost of - COMPARE of MULT. - * config/arm/arm.md (mulsi3_compare0): Don't check - arm_arch_xscale. - (mulsi_compare0_scratch, mulsi3_addsi_compare0): Likewise. - (mulsi3addsi_compare0_scratch): Likewise. - -2004-12-15 Eric Botcazou - - PR other/18665 - * libgcc-std.ver (GCC_3.4.4): Inherit from GCC_3.4.2. - Export __absvti2, __addvti3, __mulvti3, __negvti2 and __subvti3. - * libgcc2.c (__addvsi3): Rename to __addvSI3. - New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. - (__addvdi3): Rename to __addvDI3. - (__subvsi3): Rename to __subvSI3. Use word type for the result. - New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. - (__subvdi3): Rename to __subvDI3. - (_mulvsi3): Rename to _mulvSI3. - New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. - (_mulvdi3): Rename to _mulvDI3. - (__negvsi2): Rename to __negvSI2. - New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. - (__negvdi2): Rename to __negvDI2. - (__absvsi2): Rename to __absvSI2. - New version if COMPAT_SIMODE_TRAPPING_ARITHMETIC. - (__absvdi2): Rename to __absvDI2. - * libgcc2.h (64-bit targets): Define COMPAT_SIMODE_TRAPPING_ARITHMETIC. - (__absvSI2, __addvSI3, __subvSI3, __mulvSI3, __negvSI2, __absvDI2, - __addvDI3, __subvDI3, __mulvDI3, __negvDI2): Define to the appropriate - symbol and declare. - (__absvsi2, __addvsi3, __subvsi3, __mulvsi3, __negvsi2): Declare if - COMPAT_SIMODE_TRAPPING_ARITHMETIC. - -2004-12-15 Kazuhiro Inaoka - - * config/m32r/m32r.h (PREFERRED_DEBUGGING_TYPE): - Use DWARF2_DEBUG. - - * config/m32r.c (m32r_legitimize_pic_address): Changed - to support GOTOFF relocation. - * config/m32r.md (UNSPEC_GOTOFF): New. - (gotoff_load_addr): New. - -2004-12-15 Richard Sandiford - - * config/mips/mips.c (mips_arg_info): Use FUNCTION_ARG_BOUNDARY to - decide whether an argument is double-word aligned. - -2004-12-15 Richard Henderson - - * config/i386/i386.md: Fix missing modes on cmove splitters. - -2004-12-15 Jan Beulich - - * mklibgcc.in (libgcc2_c_dep): Add dependency on libgcc2.h. - -2004-12-15 Uros Bizjak - - * config/i386/i386.md (floathisf2, *floathisf2_1, floatsisf2, - *floatsisf2_i387, *floatsisf2_sse, floatdisf2, - *floatdisf2_i387_only, *floatdisf2_i387, *floatdisf2_sse, - floathidf2, *floathidf2_1, *floatsidf2_i387, *floatsidf2_sse, - floatdidf2, *floatdidf2_i387_only, *floatdidf2_i387, - *floatdidf2_sse, floatunssisf2, floatunsdisf2, floatunsdidf2): - Unify enable constraint with respect to TARGET_80387, TARGET_SSE, - TARGET_SSE2, TARGET_64BIT, TARGET_SSE_MATH and TARGET_MIX_SSE_I387. - (*float?i?f_i387): Rename to *float?i?f2_mixed. - (*float?i?f2_1): Rename to *float?i?f2_i387. - (*float?i?f2_i387_only): Rename to *float?i?f2_i387. - (float?ixf2): Penalize integer register operand. - -2004-12-14 John David Anglin - - PR c++/17242 - * configure.ac: Add GAS check for HP-UX .nsubspa comdat. - * configure, config.in: Rebuilt. - * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY): Delete - defines. - * config/pa/pa.c (pa_select_section): Allow uninitialized variables in - one-only (comdat) subspaces. - * config/pa/som.h (SUPPORTS_SOM_COMDAT): New define. - (SUPPORTS_ONE_ONLY): True if SUPPORTS_WEAK or SUPPORTS_SOM_COMDAT are - true. - (MAKE_DECL_ONE_ONLY): Place uninitialized variables in common. - -2004-12-14 Ian Lance Taylor - - * combine.c (combine_validate_cost): Consider cost of - undobuf.other_insn rather than always allowing the recombination - if it is set. - -2004-12-14 John David Anglin - - * pa-host.c (MAP_FAILED): Define if not defined. - (pa_gt_pch_use_address): Handle short reads. - -2004-12-14 Richard Henderson - - PR target/17990 - * config/i386/i386.c (x86_use_bt): New. - (ix86_expand_unary_operator): Use MEM_P. - (ix86_expand_fp_absneg_operator): New. - * config/i386/i386.h (x86_use_bt): Declare. - (TARGET_USE_BT): New. - * config/i386/i386-protos.h: Update. - * config/i386/i386.md (negsf2): Use ix86_expand_fp_absneg_operator. - (negdf2, negxf2, abssf2, absdf2, absxf2): Likewise. - (negsf2_memory, negsf2_ifs, negsf2_if, negdf2_memory, negdf2_ifs, - negdf2_ifs_rex64, negdf2_if, negdf2_if_rex64, negxf2_if, - abssf2_memory, abssf2_ifs, abssf2_if, absdf2_memory, absdf2_ifs, - absdf2_ifs_rex64, absdf2_if, absxf2_if): Remove. - (absnegsf2_mixed, absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, - absnegdf2_sse, absnegdf2_i387, absnegxf2_i387): New. Merge all - neg and abs splitters. Handle DFmode in general regs in 64-bit mode. - (negextendsfdf2, absextendsfdf2): Disable for non-mixed sse math. - (btsq, btrq, btcq): New. Add peepholes as well. - (movv4sf_internal splitter): Postpone til after reload. - (movv2di_internal splitter): Likewise. - * config/i386/predicates.md (const_0_to_63_operand): New. - (absneg_operator): New. - -2004-12-14 John David Anglin - - * pa.h (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P, REGNO_OK_FOR_FP_P): - Check register number and that reg_renumber is nonzero before using it. - -2004-12-14 Steve Ellcey - - * doc/invoke.texi (IA-64 options): Add existing options that - weren't already listed. - -2004-12-14 Jeff Law - - * tree-outof-ssa.c (coalesce_abnormal_edges): Pass the correct target - partition to conflict_graph_merge_regs. - -2004-12-14 Uttam Pawar - Janis Johnson - - * rs6000.c (rs6000_handle_altivec_attribute_tree): Report errors - for vector types with invalid component types. - -2004-12-14 Jakub Jelinek - - PR middle-end/18951 - * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2, - expand_builtin_mathfn_3): Avoid using arguments passed to - save_expr after that call. - - * fold-const.c (fold_single_bit_test): If flag_syntax_only, pretend - LOAD_EXTEND_OP is not defined. - (fold): Likewise. If flag_syntax_only, don't depend on BITS_PER_WORD. - -2004-12-14 Tobias Schlueter - - * tree.def, doc/c-tree.texi: Correctly document restrictions on the - shift width. - -2004-12-14 Kazu Hirata - - * expr.h (expand_modifier): Define EXPAND_STACK_PARM as 1. - -2004-12-14 Richard Earnshaw - - PR target/18973 - arm-cores.def (arm926ej-s, arm1026ej-s, arm1136j-s, arm1136-jfs) - (arm1176jz-s, arm1176jzf-s, mpcorenovfp, mpcore): Add load-scheduling - property to flags. - -2004-12-14 Diego Novillo - - * tree-gimple.c (get_base_address): Update documentation. - -2004-12-13 Richard Henderson - - PR middle-end/17930 - * passes.c (rest_of_clean_state): Fix computation of - preferred_incoming_stack_boundary. - -2004-12-13 Wolfgang Bangerth - - * reload.h: Remove struct needs and its only use. - -2004-12-13 Roger Sayle - - PR rtl-optimization/18928 - * simplify_rtx.c (plus_minus_operand_p): New function to encode - the test for suitable operands for calls to simplify_plus_minus. - Only allow (CONST (PLUS x y)) if both x and y are CONSTANT_P. - (simplify_binary_operation): Use plus_minus_operand_p. - -2004-12-13 Alexandre Oliva - - PR tree-opt/16951 - * tree-inline.c (setup_one_parameter): Don't directly map a - parameter to the address of another variable of the same - function. - -2004-13-12 Steven Bosscher - - * basic-block.h (PROP_POSTRELOAD): Do not include PROP_AUTOINC, we - can never create autoinc insns after reload. - -2004-12-13 Jeff Law - Kazu Hirata - - PR tree-optimization/18694 - * tree-ssa-dom.c (thread_across_edge): Do not thread jumps if a - PHI argument is set from a PHI_RESULT in the same block and the - PHI argument is not the same as the PHI result. - -2004-12-13 David Edelsohn - - * xcoffout.c (xcoffout_declare_function): Always strip storage - class encoding. - -2004-12-13 Andrew Pinski - - PR target/18964 - * config/darwin.c (darwin_assemble_visibility): Fix minor diagnostic - problem, adding a space at the end of the string before concatenation. - -2004-12-13 Kazu Hirata - - * c-common.c (fname_as_string): Free namep if we are returning - cstr.text. - - * tree-ssa-dom.c (record_edge_info): Fix memory leak. - -2004-12-13 Andrew Pinski - - * tree-cfg.c (remove_useless_stmts_cond): Call fold on COND_EXPR_COND. - -2004-12-13 Kazu Hirata - - * tree-ssa-dom.c (record_equivalences_from_phis): Speed up by - doing a pointer comparison. - - * tree-ssa-dom.c (record_equivalences_from_phis): Add a - comment. - - * defaults.h, stmt.c, tree-cfg.c, tree-ssa-dce.c: Fix comment - typos. - -2004-12-13 Kazuhiro Inaoka - - * config/m32r/t-linux (SHLIB_MAPFILES): Add libgcc-glibc.ver to - the list rather than replacing the existing value. - -2004-12-13 Richard Henderson - - * cfg.c (dump_flow_info): Don't dump pseudo info after reload. - -2004-12-13 Richard Henderson - - * Makefile.in (insn-preds.o): Depend on REGS_H. - * genpreds.c (write_insn_preds_c): Include regs.h. - * config/i386/predicates.md (index_register_operand): Use - REG_OK_FOR_INDEX_STRICT_P and REG_OK_FOR_INDEX_NONSTRICT_P. - - * config/i386/i386.h (REG_CLASS_FROM_LETTER): Add 'l'. - * config/i386/i386.md (lea_general_1, lea_general_1_zext, - lea_general_2, lea_general_2_zext, lea_general_3, lea_general_3_zext, - adddi_1_rex64, addsi_1, addsi_1_zext, addhi_1_lea, addqi_1_lea, - ashldi3_1_rex64, ashlsi3_1, ashlsi3_1_zext, ashlhi3_1_lea, - ashlqi3_1_lea): Use 'l' for index register operand. - (ashldi3_1_rex64 splitter): Use index_register_operand. - (ashlsi3_1 splitter): Be more careful with modes. - -2004-12-13 Danny Smith - - PR target/18459 - * defaults.h (TARGET_USE_JCR_SECTION): New macro. - * doc/tm.texi (TARGET_USE_JCR_SECTION): Document it. - * config/i386/cygming.h (TARGET_USE_JCR_SECTION): Override - default. - -2004-12-13 Uros Bizjak - - PR target/14941 - PR target/18503 - * config/i386/i386.md (sse_movss, sse2_movsd, sse2_movhpd): - Fix wrong vec_merge selector bitmask. - -2004-12-12 Richard Henderson - - PR rtl-opt/17186 - * reg-stack.c (move_nan_for_stack_reg): New. - (subst_stack_regs_pat): Use it. - (move_for_stack_reg): Handle source register not live with a nan. - -2004-12-12 Richard Henderson - - * config/i386/i386.c (ix86_gimplify_va_arg): Fix type mismatch - errors across operations. - -2004-12-12 Di-an Jan - - * doc/passes.texi (Pass Manager): Correct list of source files. - -2004-12-12 Richard Henderson - - * expr.c (emit_move_change_mode): New. - (emit_move_via_alt_mode): Use it. - -2004-12-12 Nathanael Nerode - John David Anglin - - PR middle-end/17564 - * dojump.c (do_compare_and_jump): Only canonicalize function pointers - in a comparison if both sides are function pointers. - -2004-12-12 Richard Henderson - - PR target/18932 - * config/i386/i386.md (all splits and peepholes): Use flags_reg_operand - and compare_operator to propagate the input CC mode to the output. - * config/i386/predicates.md (compare_operator): New. - -2004-12-12 Andrew Pinski - - PR tree-opt/18040 - * expr.c (get_inner_reference): Remove NON_LVALUE_EXPR, NOP_EXPR, - CONVERT_EXPR cases. - (handled_component_p): Likewise. - -2004-12-12 Kazu Hirata - - * reg-stack.c (convert_regs_2): Free stack. - - * tree-ssa-dom.c (thread_across_edge, dom_opt_finalize_block): Fix - comment typos. - -2004-12-12 Daniel Berlin - - * tree-ssa-loop-ch.c (copy_loop_headers): Loop can be null. - * tree-ssa-loop-im.c (determine_lsm): tree_root may not have a real - inner loop. - -2004-12-12 Diego Novillo - - * tree-gimple.c (get_base_address): Update documentation. - -2004-12-12 Kazu Hirata - - * lcm.c (optimize_mode_switching): Free ptr even when mode_set - is NULL_RTX. - -2004-12-12 Roger Sayle - - * reg-stack.c (change_stack): Avoid placing the new top-of-stack in - its correct location during popping if we need to permute the stack - afterwards. Attempt to preserve the original stack ordering. - -2004-12-12 Kazu Hirata - - * lcm.c (optimize_mode_switching): Free insert and delete in - the "for" loop. - -2004-12-11 David Edelsohn - Ulrich Weigand - - PR target/18641 - * config/rs6000/darwin.h (PREFERRED_RELOAD_CLASS): Reload all - constants into all register classes intersecting with FLOAT_REGS - via memory. - * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Same. - * config/rs6000/rs6000.md (movdi_internal32): Ignore FPRs when - choosing register preferences. - (movdi_internal64): Same. - -2004-12-11 Kazu Hirata - - * tree-into-ssa.c (rewrite_ssa_into_ssa): Free SSA_NAME_AUX - before we release an SSA_NAME. - -2004-12-11 Roger Sayle - - PR middle-end/18921 - * fold-const.c (fold_unwidened_comparison): Use omit_one_operand - instead of constant_boolean_node as arg0 may have side-effects. - -2004-12-10 John David Anglin - - * pa-host.c (pa_gt_pch_use_address): Use lseek and read to copy PCH - file to anonymous private map. - -2004-12-10 Roger Sayle - - PR target/18002 - PR middle-end/18424 - * dojump.c (do_jump): When attempting to reverse the effects of - fold_single_bit_test, we need to STRIP_NOPS and narrowing type - conversions, and handle BIT_XOR_EXPR that's used to invert the - sense of the single bit test. - -2004-12-10 Devang Patel - - PR 18732 - * gcc.c (main): Do not break out of loop when error is reported while - processing one source file. - -2004-12-10 Diego Novillo - - * tree-into-ssa.c (REWRITE_THIS_STMT): Define. - (mark_def_sites): Clear REWRITE_THIS_STMT for statements that - don't need any operands rewritten. - (rewrite_stmt): Ignore statements that don't need to be - rewritten. - (rewrite_operand): Validate that an existing SSA_NAME is - identical to the current reaching definition of the operand. - -2004-12-10 Diego Novillo - - * tree-dfa.c (mark_call_clobbered_vars_to_rename): New function. - * tree-vectorizer.c (vectorizable_load): Call it. - * tree-flow.h (mark_call_clobbered_vars_to_rename): Declare. - * tree-sra.c (mark_all_v_defs): Also mark VUSEs for renaming. - -2004-12-10 Kazu Hirata - - * regmove.c (combine_stack_adjustments_for_block): Free - memlist if it hasn't been freed. - -2004-12-10 Ziemowit Laski - - * c-typeck.c (lookup_field): Check if a TYPE_LANG_SPECIFIC - pointer field is set before dereferencing it. - -2004-12-10 Andrew Pinski - - PR middle-end/18903 - * tree-cfg.c (remove_bb): Put the moved label at the beginning - of the basic block. - -2004-12-10 Kazu Hirata - - * tree-data-ref.c (free_data_refs): Free each data_reference - object. - - * tree-ssa-dom.c (thread_across_edge): Speed up by avoiding a - call to is_gimple_min_invariant if we know the result. - -2004-12-10 Jeff Law - - * tree-ssa-alias.c (setup_pointers_and_addressables): Remove - redundant test of v_ann->mem_tag_kind. - - * tree-ssa-operands.c (get_indirect_ref_operands): Remove - redundant conditional clearing opf_kill_def. - -2004-12-10 Richard Sandiford - - * config/frv/frv-modes.def: Fix comment typos. - (CC_NZ): Define new mode. - * config/frv/frv-protos.h (frv_select_cc_mode): Declare. - (condexec_intop_cmp_operator): Delete. - * config/frv/frv.c (comparison_string): New function. - (frv_print_operand): Use it to handle 'c' and 'C'. - (relational_operator): Redefine in terms of integer_relational_operator - and float_relational_operator. - (signed_relational_operator, unsigned_relational_operator): Delete. - (integer_relational_operator): New predicate, combining the above. - Check the mode of the first operand but leave frv.md to check the rest. - (float_relational_operator): Just check the mode of the first operand - and leave frv.md to check the rest. - (intop_compare_operator): Assume the result is compared with zero - in mode CC_NZmode. Allow PLUS and MINUS. Leave frv.md to check - the operand predicates. - (condexec_intop_cmp_operator): Delete. - (frv_ifcvt_modify_tests, frv_ifcvt_modify_multiple_tests) - (frv_hard_regno_mode_ok): Handle CC_NZmode. - (frv_select_cc_mode): New function. - * config/frv/frv.h (SELECT_CC_MODE): Use frv_select_cc_mode. - (REVERSIBLE_CC_MODE): Include CC_NZmode. - (PREDICATE_CODES): Replace entries for signed_relational_operand and - unsigned_relational_operator with one for integer_relational_operator. - Delete entry for condexec_intop_cmp_operator. - * config/frv/frv.md (movcc_nz, *internal_movcc_nz, reload_incc_nz) - (reload_outcc_nz, *cmpsi_cc_nz, *cond_exec_cmpsi_cc_nz): New patterns. - (*combo_intop_compare2, *combo_intop_compare4): Delete. - (*combo_intop_compare1): Change mode to CC_NZ. - (*combo_intop_compare2): Likewise. Renamed from *combo_intop_compare3. - (branch_{un,}signed_true, branch_{un,}signed_false) - (*scc_{un,}signed, *scc_neg1_{un,}signed, *ck_{un,}signed) - (*movqicc_internal1_{un,}signed, *movqicc_internal2_{un,}signed) - (*movhicc_internal1_{un,}signed, *movhicc_internal2_{un,}signed) - (*movsicc_internal1_{un,}signed, *movsicc_internal2_{un,}signed) - (*movsfcc_has_fprs_{un,}signed, *movsfcc_no_fprs_{un,}signed) - (*return_{unsigned_,}true, *return_{unsigned_,}false): Merge these - pattern pairs. Use integer_relational_operator. Remove mode from - icc_operand. - -2004-12-10 Mark Dettinger - - * config/s390/s390.c (struct processor_costs): New fields ml, - sqdbr, sqebr. - (s390_rtx_costs): Added the missing handling of multiply & add, - square root, and umulsidi. - -2004-12-10 Kazu Hirata - - * expmed.c (synth_mult): Initialize new_limit.latency before - making a recursive call. - -2004-12-10 Nick Clifton - - * config/mn10300/mn10300.c (legitimate_address_p): Reject address - whose index is itself the sum of two other parts. - -2004-12-10 Alan Modra - - * config/t-slibgcc-sld (SHLIB_LINK): Correct symlink. - -2004-12-10 Uros Bizjak - - * config/i386/i386.md (*cmpfp_sf): Change type attribute to "multi". - -2004-12-09 Richard Henderson - - PR c/18282 - * attribs.c (decl_attributes): Use relayout_decl. - * c-common.c (handle_mode_attribute): Copy all relevant type - parameters from the new underlying integral type. - -2004-12-09 Richard Henderson - - * c-common.c (shorten_compare): Don't special-case min/maxval - for C enumerations. - -2004-12-09 Richard Sandiford - - * simplify-rtx.c (simplify_subreg): In the CONCAT case, check whether - the request subreg is entirely contained in the requested component. - (simplify_gen_subreg): Return null for CONCATs that are rejected - by simplify_subreg. - * expmed.c (store_bit_field): Create a temporary when changing the - value to an integer mode. - -2004-12-09 David Edelsohn - - * real.c (ibm_extended): Correct comment. - -2004-12-09 Stan Shebs - - * config/rs6000/darwin-asm.h: New file, 32/64-bit assembly macros - formerly in darwin-tramp.asm. - * config/rs6000/darwin-tramp.asm: Include darwin-asm.h. - * config/rs6000/darwin-fpsave.asm: Use 32/64-bit macros. - * config/rs6000/t-darwin: Add dependencies. - -2004-12-09 Richard Henderson - - PR target/17025 - * config/i386/i386.md (testqi_1_maybe_si, andqi_2_maybe_si): New. - (test_qi_1, andqi_2): Do not promote to simode. - -2004-12-09 Andrew Pinski - - PR tree-opt/18904 - * tree-chrec.c (chrec_convert): Use fold_convert - instead of convert. - -2004-12-09 Matt Rice - - PR preprocessor/18102 - * c-incpath.c (remove_duplicates): Check for construct - equality. - -2004-12-09 Dorit Naishlos - - * genopinit.c (vec_realign_store_optab): Initialization removed. - * optabs.c (optab_for_tree_code): REALIGN_STORE_EXPR case removed. - * optabs.h (optab_index): OTI_vec_realign_store Removed. - (vec_realign_store_optab): Removed. - * target-def.h (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Removed. - * target.h (builtin_mask_for_store): Removed. - * tree.def (REALIGN_STORE_EXPR): Removed. - * config/rs6000/rs6000.c (rs6000_builtin_mask_for_store): Removed. - (altivec_builtin_mask_for_store): Removed. - (altivec_init_builtins): Removed initialization of - altivec_builtin_mask_for_store. - - * doc/tm.texi (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. - (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): New. - -2004-12-09 Nathan Sidwell - - * doc/c-tree.texi (CONSTRUCTOR): Mention RANGE_EXPRs. - - * tree.def (SET_TYPE): Remove. - (CONSTRUCTOR): Update description. - * builtins.c (type_to_class) Remove SET_TYPE case. - * dbxout.c (dbxout_type): Likewise. - * dwarf2out.c (is_base_type): Likewise. - (gen_set_type_die): Remove. - (gen_type_die): Remove SET_TYPE case. - * expr.c (count_type_elements): Likewise. - (mostly_zeroes_p): Likewise. - (store_constructor): Likewise. - * print_tree.c (print_node): Likewise. - * stor-layout.c (layout_type): Likewise. - * tree-browser.c (browse_tree): Likewise. - * tree-inline.c (remap_type): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree.c (type_contains_plaeholder_1, type_hash_eq, - variably_modified_type_p, initializer_zerop): Likewise. - * tree.h (SET_OR_ARRAY_CHECK): Remove. - (AGGREGATE_TYPE_P): Remove SET_TYPE check. - (TYPE_DOMAIN): Use ARRAY_TYPE_CHECK. - * typeclass.h (enum type_class): Remove set_type_class. - * varasm.c (const_hash_1): Remove SET_TYPE case. - (compare_constant, copy_constant, output_constant): Likewise. - * config/i386/i386.c (classify_argument): Likewise. - * config/ia64/ia64.c (hfa_element_mode): Likewise. - * config/sparc/sparc.c (sparc_type_code): Likewise. - - PR c++/16681 - * tree-inline.c (estimate_num_insns_1): Add RANGE_EXPR case. - -2004-12-08 Richard Henderson - - * config/i386/i386.md: Use FLAGS_REG everywhere. - -2004-12-08 Eric Christopher - - * config/mips/mips.c (mips_scalar_mode_supported_p): Rewrite - to avoid call to default function. - -2004-12-08 Zack Weinberg - - PR 17982 - * varasm.c (pending_assemble_externals): New static. - (assemble_external_real): Meat of assemble_external split out - to this new function. - (process_pending_assemble_externals): New function. - (assemble_external): Use gcc_assert. If flag_unit_at_a_time - is true and the basic test passes, merely cons the decl onto - the pending list to be handled later. - * tree.h: Declare process_pending_assemble_externals. - * cgraphunit.c (cgraph_optimize): Call it. - - * config/h8300/h8300.h: Do not define ASM_OUTPUT_EXTERNAL. - -2004-12-08 Kazu Hirata - - * cfgloopmanip.c (create_preheader): Speed up by "unrolling" - and simplifying FOR_EACH_EDGE. - -2004-12-08 Richard Sandiford - - * config/frv/frv.c (frv_sort_insn_group): Always initialize - packet_group->nop. - -2004-12-08 Nathan Sidwell - - PR c++/18672 - * gimplify.c (canonicalize_addr_expr): Cope with array of - incomplete type. - (gimplify_conversion): Remove redundant checks. - - * doc/trouble.texi (Non-bugs): Clarify empty loop removal. - -2004-12-08 Uros Bizjak - - * config/i386/i386.c (output_387_binary_op, - ix86_prepare_fp_compare_args): Fix is_sse condition. - -2004-12-07 Uros Bizjak - - * config/i386/i386-protos.h (ix86_split_fp_branch): New rtx - argument. - - * config/i386/i386.c (output_fp_compare): Fix is_sse condition. - Use EFLAGS_P only when fcomi insn should be used. Fix handling - of eflags_p variable. Change alt table accordingly. For non-fcomi - compare insn always use trailing fnstsw insn. Fix intmode - calculation for ficom insn. - (ix86_split_fp_branch): Add "rtx pushed" as new parameter. Call - ix86_free_from_memory when "pushed" is specified. - (ix86_expand_branch): Change call to ix86_split_fp_branch. - - * config/i386/i386.md (*cmpfp_0_sf, *cmpfp_0_df, *cmpfp_0_xf): - Change eflags_p parameter in call to output_fp_compare. - (*cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf): Remove. - (*cmpfp_2_sf_1, *cmpfp_2_df_1, *cmpfp_2_xf_1): Rename to - *cmpfp_2_sf, *cmpfp_2_df, *cmpfp_2_xf. Change eflags_p - parameter in call to output_fp_compare. - (*cmpfp_2_u): Remove. - (*cmpfp_2_u_1): Rename to *cmpfp_2_u. Change eflags_p parameter - in call to output_fp_compare. - (*ficom_1): Remove insn definition and corresponding define_split. - (*cmpfp_si): New insn definition. - (*fp_jcc_8): New insn definition. Add new splitters for - "memory_operand" and "register_operand". - (define_split): Add new parameter in call to ix86_split_fp_branch. - - config/i386/predicates.md (float_operator): New predicate. - -2004-12-08 Kazu Hirata - - * c-common.c (verify_tree): Don't check code length if we know - we are handling tcc_unary. - * print_tree.c (print_node): Remove code to handle RTL - appearing as a part of a tree node. - * tree-gimple.c (recalculate_side_effects): Rename fro as len. - * tree.c (build1_stat): Don't check TREE_CODE_LENGTH. - (PROCESS_ARG): Don't refer to fro. - (build2_stat, build3_stat, build4_stat): Don't compute fro. - -2004-12-07 Roger Sayle - - PR middle-end/18293 - * expmed.c (EXACT_POWER_OF_2_OR_ZERO_P): Move definition earlier. - (expand_mult): Special case powers of two to avoid synth_mult. - * loop.c (product_cheap_p): Handle case where expand_mult does - require/generate any instructions (i.e. multiplication by zero). - -2004-12-07 Richard Henderson - - * tree-pretty-print.c (dump_array_domain): Split out from - dump_generic_node; fix off-by-one error on zero-based array bounds. - (dump_generic_node): Use it. - (print_declaration): Likewise. - -2004-12-08 Richard Guenther - - * doc/invoke.texi: Adjust default values for - large-function-growth and inline-unit-growth to match - params.def. Clarify used algorithm. - -2004-12-07 David Mosberger - - PR target/18443 - * config/ia64/ia64.c (ia64_assemble_integer): Add support for - emitting unaligned pointer-sized integers. - -2004-12-07 Steven Bosscher - - PR c/18867 - * c-typeck.c (c_start_case): Set orig_type to error_mark_node - when the type of the controlling expression is not a valid type. - -2004-12-07 Steven Bosscher - - PR tree-optimization/17340 - * tree-ssa-pre.c (compute_antic): Fix comment. - (compute_avail): Do not recurse, instead do a DFS using a stack - and a loop. - (execute_pre): Adjust. - -2004-12-07 Ziemowit Laski - - * c-tree.h (struct lang_type): Rename 'objc_protocols' field - to 'objc_info'. - -2004-12-07 Eric Christopher - - PR target/16317 - * config/netbsd.h (NO_IMPLICIT_EXTERN_C): Define. - -2004-12-07 Eric Christopher - - * config/mips/mips-protos.h (mips_valid_pointer_mode): Move - prototype... - * config/mips/mips.c: ... here. Make static. - -2004-12-07 Eric Christopher - - PR target/18442 - * config/mips/mips.c (mips_vector_mode_supported_p): New function. - (TARGET_SCALAR_MODE_SUPPORTED_P): Define to above. - -2004-12-07 Kazu Hirata - - * c-common.c, expr.c, fold-const.c, print-tree.c, - tree-gimple.c, tree-inline.c, tree-pretty-print.c, - tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c: Replace uses of - first_rtl_op with TREE_CODE_LENGTH. - * tree.c (first_rtl_op): Remove. - Replace uses of first_rtl_op with TREE_CODE_LENGTH. - * tree.h: Remove the prototype for first_rtl_op. - -2004-12-07 David Edelsohn - - * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK): - Revert 2004-12-01 change. - -2004-12-06 Ziemowit Laski - - * c-tree.h (struct lang_type): Add 'objc_protocols' field. - -2004-12-06 DJ Delorie - - * reload.c (find_valid_class): Fix logic to test inner mode as well. - (push_reload): Pass inner mode. - -2004-12-06 Eric Christopher - - * doc/tm.texi (TARGET_VALID_POINTER_MODE): Document. - -2004-12-06 Aldy Hernandez - - * config/rs6000/sysv4.h: Define RELOCATABLE_NEEDS_FIXUP to 1. - -2004-12-06 Zdenek Dvorak - Kazu Hirata - - PR tree-optimization/18601 - * tree-cfg.c (thread_jumps, thread_jumps_from_bb): Removed. - (tree_forwarder_block_p): Do not consider blocks that are its own - successors forwarders. - (cleanup_forwarder_blocks, remove_forwarder_block): New functions. - (cleanup_tree_cfg): Use cleanup_forwarder_blocks instead of - thread_jumps. - * tree-flow.h (bb_ann_d): Remove forwardable. - -2004-12-06 Kazu Hirata - - * expr.c (expand_expr_real_1): Remove an "if" whose condition - is always false. - -2004-12-06 Roger Sayle - - * c-gimplify.c (gimplify_c_loop): Improve initial implementations - for loops whose conditions are known at compile-time. - * gimplify.c (append_to_statement_list_1): Remove side_effects - parameter, this function should never be called if its false. - (append_to_statement_list): Only call append_to_statement_list_1 - if t is non-NULL tree with side-effects. - (append_to_statement_list_force): Likewise, if t is not NULL. - -2004-12-06 J"orn Rennecke - - * bt-load.c (btr_def_s): New member own_end; - (add_btr_to_live_range): Add second parameter. Changed caller. - (clear_btr_from_live_range): Clear btrs_live_at_end bit - for the register its definition basic block if own_end is set. - (augment_live_range): Also take btrs_live_at_end into account. - (combine_btr_defs): Don't bother with - other_def->other_btr_uses_after_use if it pertains to a different - register. - (move_btr_def): Set def->other_btr_uses_before_def after - calling combine_btr_defs." - - * bt-load.c (augment_live_range): New argument full_range. - Changed all callers. - - * bt-load.c (move_tr_def): Set other_tr_uses_before_def - taking new btr assignment into account. - -2004-12-05 Daniel Berlin - - * tree-ssa-alias.c (create_global_var): Use void_type_node, - not size_type_node. - -2004-12-05 Kazu Hirata - - * expr.c (expand_expr_real_1): Abort on COND_EXPR of - VOID_TYPE. - -2004-12-05 Richard Henderson - - PR target/18841 - * config/alpha/alpha.md (UNSPECV_SETJMPR_ER): New. - (builtin_setjmp_receiver_er_sl_1): Use it. - (builtin_setjmp_receiver_er_1): Likewise. - (builtin_setjmp_receiver_er, exception_receiver_er): Remove. - (builtin_setjmp_receiver): Don't split for explicit relocs until - after reload. - (exception_receiver): Likewise. - -2004-12-05 Andrew Pinski - - * mklibgcc.in (vis_hide): Add the prototype for the test. - -2004-12-05 Roger Sayle - - * c-typeck.c (c_finish_loop): Improve initial implementations - for loops whose conditions are known at compile-time. - -2004-12-05 Kazu Hirata - - * builtins.c: Fix comment typos. - -2004-12-04 John David Anglin - - PR middle-end/18730 - * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): When - the first/last insn is a sequence, return the first/last insn of the - sequence. - - PR bootstrap/18804 - * mklibgcc.in (vis_hide): Use implementation instead of declaration - for test function. - -2004-12-04 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_unaligned_load): Don't forget to - use ofs in BWX two byte special case. - (alpha_expand_unaligned_store): Likewise. - -2004-12-04 Kazu Hirata - - * gcse.c (gcse_main): Add a comment. - -2004-12-04 Andrew Pinski - - PR middle-end/17909 - * builtins.c (fold_builtin_next_arg): Export and return true - when there is a warning or an error. - (expand_builtin_va_start): When fold_builtin_next_arg returns true, - return const0_rtx. - (expand_builtin): Likewise. - * gimplify.c (gimplify_call_expr): Error out if there is not - enough arguments to va_start. Call fold_builtin_next_arg also - on the second argument. - * tree.h (fold_builtin_next_arg): Prototype. - -2004-12-04 Alan Modra - - * mklibgcc.in: Build shared libgcc and shared libunwind in gcc/. - Don't subst shlib_dir for SHLIB_LINK, SHLIBUNWIND_LINK, - SHLIB_INSTALL, and SHLIBUNWIND_INSTALL. - * config/i386/t-nwld (SHLIB_NAME): Use shlib_base_name in place of - shlib_dir and shlib_so_name. - * config/mips/t-slibgcc-irix (SHLIB_NAME): Likewise. - * config/t-libunwind-elf (SHLIB_NAME): Likewise. - * config/t-slibgcc-darwin (SHLIB_NAME): Likewise. - * config/t-slibgcc-elf-ver (SHLIB_NAME): Likewise. - * config/t-slibgcc-sld (SHLIB_NAME): Likewise. - (SHLIB_LINK): Don't use shlib_dir when creating symlink. - -2004-12-03 Roger Sayle - - * doc/tm.texi (TARGET_DELEGITIMIZE_ADDRESS): Document target hook. - -2004-12-03 Richard Henderson - - * alias.c (component_uses_parent_alias_set): Rename from - can_address_p. Return bool. Reverse the sense of the result. - Reinstate the check for alias set zero. - (get_alias_set): Update to match. - * alias.h (component_uses_parent_alias_set): Likewise. - * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. - * expr.c (expand_assignment): Likewise. - * expr.h: Remove commented out prototypes that were moved to alias.h. - -2004-12-03 Richard Henderson - - * doc/tm.texi (TARGET_BUILD_BUILTIN_VA_LIST): New. - (TARGET_CANNOT_FORCE_CONST_MEM): New. - -2004-12-04 Alan Modra - - PR middle end/18718 - * sched-rgn.c (schedule_region): Don't assume REG_SAVE_NOTEs are - in pairs. - * sched-ebb.c (schedule_ebb): Likewise. - -2004-12-03 Andreas Schwab - - * Makefile.in (HOSTHOOKS_DEF_H): Define. - (ggc-common.o): Depend on $(HOSTHOOKS_DEF_H). - (host-default.o): Likewise. - -2004-12-03 Eric Christopher - - * config/stormy16/stormy16.md (pushqi, popqi, pushhi, - pophi): Add number of arguments to name so that the - pattern is recognized as a named pattern. - -2004-12-03 Janis Johnson - - * doc/extend.texi (AltiVec Builtins): Fix info about signedness. - -2004-12-03 Andreas Tobler - - * config/rs6000/rs6000.c (rs6000_override_options): Protect - darwin_one_byte_bool with #if. - -2004-12-03 Paolo Bonzini - - * doc/tm.texi (Misc): Document TARGET_FOLD_BUILTIN. - -2004-12-03 H.J. Lu - - * mklibgcc.in: Put back the default set of EXTRA_MULTILIB_PART. - -2004-12-03 Richard Sandiford - - * configure.ac: Move TL_AC_GCC_VERSION into initialization section. - Set libstdcxx_incdir directly. - * configure: Regenerate. - -2004-12-03 Kazu Hirata - - * tree-ssa-dom.c (record_equivalences_from_phis): Remove an - "if" whose condition is always true. - - * cfgrtl.c (rtl_verify_flow_info_1): Use JUMP_P instead of - INSN_P. - -2004-12-02 Stan Shebs - - * config/rs6000/rs6000.c (rs6000_override_options): Make 64-bit - Darwin default to one-byte bools. - -2004-12-02 Richard Henderson - - PR 18774 - * simplify-rtx.c (simplify_immed_subreg): Fail complex modes. - -2004-12-03 Ben Elliston - - * doc/cfg.texi (Edges): Update. Document the edge_iterator data - type and its methods. - -2004-12-02 Richard Henderson - - * expr.c (write_complex_part): Use simplify_gen_subreg when the - submode is at least as large as a word. - (read_complex_part): Likewise. - -2004-12-02 H.J. Lu - - PR bootstrap/18532 - * mklibgcc.in: Build one set of EXTRA_MULTILIB_PARTS for - multilib at a time. Don't build the default set. Don't add - EXTRA_MULTILIB_PARTS to shared libunwind nor libgcc. Remove - filter for shared libunwind and libgcc. - -2004-12-02 Roger Sayle - - PR target/18759 - * config/i386/i386.c (override_options): If -fomit-frame-pointer has - already been specified, ignore the -momit-leaf-frame-pointer option. - -2004-12-02 H.J. Lu - - * varasm.c (make_decl_rtl): Add the missing `;'. - -2004-12-02 Andrew Pinski - - * tree.c (is_attribute_p): Split out to .. - (is_attribute_with_length_p): Here. Use IDENTIFIER_LENGTH instead - of strlen and compare the string lengths before calling strcmp. - (lookup_attribute): Call is_attribute_with_length_p instead of - is_attribute_p. - -2004-12-02 Devang Patel - - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -gfull and -gused. - * config/rs6000/darwin.h (CC1_SPEC): Do not handle -gfull and -gused. - * config/i386/darwin.h (CC1_SPEC): Same. - -2004-12-02 Richard Henderson - - * optabs.c (lowpart_subreg_maybe_copy): New. - (expand_unop, expand_abs_nojump): Use it. - -2004-12-02 J"orn Rennecke - - * sh.md (extv, extzv): Add pattern predicate. - -2004-12-02 Kazu Hirata - - * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF - is not null. - - * tree-cfg.c (phi_alternatives_equal): Check that PHI_ARG_DEF - is not null. - - * tree-cfg.c (thread_jumps): Reduce the size of WORKLIST. - -2004-12-02 Jeff Law - - * tree-eh.c: Revert yesterday's change. - -2004-12-02 Andrew Pinski - - * varasm.c (decode_reg_name): Revert change to check for zero - length strings. - (make_decl_rtl): Make sure that we call decode_reg_name only - when needed. - -2004-12-02 Dorit Naishlos - - PR tree-opt/18716 - * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Properly set - then and else labels. - -2004-12-02 Andreas Schwab - - * Makefile.in (WERROR_FLAGS): Renamed from WERROR. - (STRICT2_WARN): Use $(WERROR_FLAGS) instead of $(WERROR). - (STAGE2_FLAGS_TO_PASS): Likewise. - - * config/i386/x-mingw32: Set WERROR_FLAGS instead of WERROR. - -2004-12-02 Richard Sandiford - - * configure.ac: Use TL_AC_GCC_VERSION to set gcc_version. Remove - now-redundant AC_SUBSTs. - * aclocal.m4: Include ../config/gcc-version.m4. - * configure: Regenerate. - -2004-12-02 Alan Modra - - * config/rs6000/rs6000.c (rs6000_assemble_integer): Put back the - #ifdef RELOCATABLE_NEEDS_FIXUP. - -2004-12-01 Roger Sayle - - PR target/9908 - * config/i386/i386.md (*call_value_1, *sibcall_value_1): Correct - Intel assembler syntax by using %A1 instead of %*%1. - -2004-12-01 Richard Henderson - - * expr.c (expand_assignment): Handle CONCAT both as a final - destination and as a middle point. - -2004-12-01 Jeff Law - - * tree-eh.c (save_eptr, save_filt): Now file scoped statics. - (honor_protect_cleanup_actions): Only create save_eptr and - save_filt if they do not already exist. - (lower_eh_constructs): Wipe all knowledge of save_eptr and - save_filt before returning. - -2004-12-02 Kazu Hirata - - * tree-phinodes.c (remove_phi_arg_num): Fix a comment. - -2004-12-02 Alan Modra - - PR target/16952 - * config/rs6000/rs6000.c (rs6000_assemble_integer): Replace - #ifdef RELOCATABLE_NEEDS_FIXUP with if. - * config/rs6000/linux.h (RELOCATABLE_NEEDS_FIXUP): Define in terms - of target_flags_explicit. - * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Ditto for biarch - case. Define as 0 for non-biarch. - -2004-12-01 Zack Weinberg - - * config/rs6000/t-aix43, config/rs6000/t-aix52 (SHLIB_LINK): - Change temporary file tag from a prefix to an infix. - -2004-12-02 Andreas Schwab - - * gcc.c (struct option_map): Add entry for "--pass-exit-codes". - -2004-12-01 Andrew Pinski - - PR tree-opt/18763 - PR tree-opt/18746 - * tree-ssa-alias.c (init_alias_info): Get statement operands for all - the statements if aliases_computed_p is true. - -2004-12-01 Mark Mitchell - - * Makefile.in (WERROR): New variable. - (STRICT2_WARN): Use it. - (STAGE2_FLAGS_TO_PASS): Likewise. - * config/i386/x-mingw32 (WERROR): Add -Wno-format. - -2004-12-01 Richard Henderson - - * expr.c (get_inner_reference): Fix thinko in REAL/IMAGPART_EXPR - offsetting. - -2004-12-01 Diego Novillo - - PR tree-optimization/18291 - * tree-ssa-copy.c (merge_alias_info): Fix merging of - flow-sensitive alias information. If the new pointer has no - name tag, copy it from the original pointer. Otherwise, make - sure that the pointed-to sets have a common intersection. - -2004-12-01 Richard Henderson - - PR rtl-opt/15289 - * emit-rtl.c (gen_complex_constant_part): Remove. - (gen_realpart, gen_imagpart): Remove. - * rtl.h (gen_realpart, gen_imagpart): Remove. - * expmed.c (extract_bit_field): Remove CONCAT hack catering to - gen_realpart/gen_imagpart. - * expr.c (write_complex_part, read_complex_part): New. - (emit_move_via_alt_mode, emit_move_via_integer, emit_move_resolve_push, - emit_move_complex_push, emit_move_complex, emit_move_ccmode, - emit_move_multi_word): Split out from ... - (emit_move_insn_1): ... here. - (expand_expr_real_1) : Use write_complex_part. - : Use read_complex_part. - * function.c (assign_parm_setup_reg): Hard-code transformations - instead of using gen_realpart/gen_imagpart. - - * expr.c (optimize_bitfield_assignment_op): Split out from ... - (expand_assignment): ... here. Use handled_component_p to gate - get_inner_reference code. Simplify MEM handling. Special case - CONCAT destinations. - - * expmed.c (store_bit_field): Use simplify_gen_subreg instead - of gen_rtx_SUBREG directly. - -2004-12-01 David Edelsohn - Nathan Sidwell - - PR target/17107 - * config/rs6000/rs6000.md (sge): Enable for non-TARGET_POWER. - (sgt): Same. - (sle): Same. - (slt): Same. - -2004-12-01 Nathan Sidwell - - PR middle-end/18667 - * params.c (set_param_value): Add range check. - * params.def: Add min and max values. Reformat long strings. - * params.h (struct param_info): Add min and max fields. - (enum compiler_param): Adjust DEFPARAM. - * toplev.c (lang_independent_params): Likewise. - -2004-12-01 Alan Modra - - PR target/12817 - * config/rs6000/rs6000.c (rs6000_emit_prologue): Use r0 for vrsave. - -2004-12-01 Joseph S. Myers - - * doc/standards.texi: Update for C99 TC2. - -2004-11-30 Jeff Law - - * sbitmap.c (sbitmap_any_common_bits): New function. - * sbitmap.h (sbitmap_any_common_bits): Prototype. - * modulo-sched.c (sms_schedule_by_order): Use sbitmap_any_common_bits - No longer allocate/free "psp", "pss" sbitmaps. - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Similarly for - the "res" sbitmap. - (group_aliases): Similarly. - -2004-11-30 Nathan Sidwell - - * tree-vectorizer.c (vect_analyze_data_refs): Reformat and avoid - uninitialized variable. - -2004-11-30 Eric Christopher - - * fold-const.c (fold_widened_comparison): Make sure that we're - passing an INTEGER_TYPE to int_fits_type_p. - (fold): Clean up comment. - -2004-11-30 Zack Weinberg - - * mklibgcc.in: Correct calculation of libgcc_s_soname and - libunwind_soname. Use $out, not $outS, in commands for - no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above - library build rules, make $libunwind_so and $libgcc_s_so - depend on them in the normal fashion, and filter those objects - out of @shlib_objs@. - -2004-11-30 Janis Johnson - - * config/rs6000/altivec.h (vec_step_help): Support const vector types. - -2004-11-30 Andrew Pinski - - PR tree-opt/18298 - * tree-optimize.c (init_tree_optimization_passes): Add a may_alias - pass right after fold builtins. - -2004-11-30 Andreas Krebbel - - * config/s390/s390-modes.def: Added cc modes documentation. - * config/s390/s390.c: (s390_tm_ccmode, s390_select_ccmode, - s390_expand_addcc): Added cc mode comments. - * config/s390/s390.md: Removed old cc mode documentation. - -2004-11-30 Mark Dettinger - - * config/s390/s390.c (struct processor_costs): New data type. - (s390_cost, z900_cost, z990_cost): New global variables. - (override_options): Initialize s390_cost. - (s390_rtx_costs): Reimplement. - -2004-11-29 Daniel Berlin - - Fix PR tree-optimization/18673 - - * tree-ssa-pre.c: Remove splay-tree.h include. - (bitmap_value_replace_in_set): Fix to add if it does not exist. - (find_or_generate_expression): Remove now-wrong condition. - (create_expression_by_pieces): Fix condition and comment reason - for it. - (insert_aux): Fix condition and comment reasons for it. - Factor insertion code from here. - (insert_into_preds_of_block): To here. Fix conditions in factored - function and comment reasons for them. - -2004-11-30 Ira Rosen - - PR tree-opt/18607 - * tree-vectorizer.c (vect_analyze_data_refs): Use temporary - variable for data_reference when looking for memtag. - -2004-11-30 Jakub Jelinek - - * c-opts.c (check_deps_environment_vars): If spec != NULL, set - deps_seen. - -2004-11-30 Dorit Naishlos - - * tree-vectorizer.c (vect_gen_niters_for_prolog_loop): Use - tree_low_cst instead of TREE_INT_CST_LOW. - -2004-11-30 Dorit Naishlos - - PR target/18173 - * tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for - decls that are assembled before vectorization takes place. - (vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1. - -2004-11-30 Ulrich Weigand - - * passes.c (rest_of_handle_old_regalloc): Delete unreachable blocks - if local_alloc modified jumps. - -2004-11-30 Alan Modra - - * varasm.c (default_encode_section_info): Don't set SYMBOL_FLAG_SMALL - on TLS symbols. - * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Remove TLS - check. - -2004-11-30 Zack Weinberg - - * gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h - * unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS. - - * mklibgcc.in: Drastic restructure for comprehensibility. - Remove the old hidden-directive hack. - Eliminate support for .txt files in LIB2ADD etc (never used). - Eliminate support for assembly source files in LIB2ADDEH* and - LIBUNWIND (also never used). - Build up dependency lists for libraries incrementally. - If we have SHLIB_LINK, compile each file twice, once for the - static and once for the shared library; also probe for - -fvisibility=hidden in the generated libgcc.mk. If found, - pass that and -DHIDE_EXPORTS to the compilation of every C - source file going into the static library. If found, generate - hidden-directive lists for every assembly source file going - into the static library, but incorporate them with -include - instead of ld -r. - Write comments into generated libgcc.mk to facilitate debugging. - * Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc. - * config/t-slibgcc-darwin: Define ASM_HIDDEN_OP. - - * config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in - -Zdynamiclib case. - -2004-11-29 Richard Henderson - - * expr.c (get_inner_reference): Handle REAL/IMAGPART_EXPR. - (handled_component_p): Likewise. - * alias.c (can_address_p): Reformat and simplify. Handle - REAL/IMAGPART_EXPR. Do not disable addressability based on - alias set zero. - * fold-const.c (build_fold_addr_expr_with_type): Remove duplicate - check for REAL/IMAGPART_EXPR. - * gimplify.c (gimplify_compound_lval): Likewise. - * tree-cfg.c (verify_expr): Likewise. - * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. - * tree-nested.c (build_addr, convert_nonlocal_reference): Likewise. - (convert_local_reference): Likewise. - * tree-ssa-loop-ivopts.c (prepare_decl_rtl): Likewise. - -2004-11-30 Alan Modra - - * expr.c (emit_group_load_1): Don't die on const_int orig_src. - -2004-11-29 John David Anglin - - PR pch/14940 - * config/pa/pa-host.c, config/pa/x-hpux, config/pa/x-linux: New files. - * config.host (hppa*-*-hpux*, hppa*-*-linux): Define out_host_hook_obj - and host_xmake_file using new host configuration files. - -2004-11-29 Roger Sayle - - * reg-stack.c (change_stack): Improve algorithm used to pop regs - off the stack to maximize ffreep usage and reduce fxch count. - -2004-11-30 James A. Morrison - - PR middle-end/18596 - * c-decl.c (grokdeclarator): Reset DECL_INTIAL to error_mark_node - on errors. - -2004-11-30 Richard Kenner - - * expr.c (expand_expr_real_1, case NOP_EXPR): Properly handle - REDUCE_BIT_FIELD by applying it to result, not input, of conversion. - -2004-11-30 Ben Elliston - - * Makefile.in (REGS_H): Depend on $(BASIC_BLOCK_H). - -2004-11-29 Andrew Pinski - - PR c/18479 - * c-common.c (handle_visibility_attribute): When the type decl - is really a identifier node, warn about being ignored and return. - -2004-11-29 Richard Henderson - - * tree-cfg.c (tree_node_can_be_shared): Fix typo'd error_mark_node. - -2004-11-29 Steven Bosscher - - * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): - Remove CASE_DROPS_THROUGH checks, it is never defined. - * cfglyout.c (fixup_reorder_chain): Likewise. - * cfgrtl.c (rtl_verify_flow_info): Likewise. - * stmt.c (expand_case): Likewise. - * cfgbuild.c (make_edges): Likewise. Also remove force_fallthru, - it is now always 0. - * system.h (CASE_DROPS_THROUGH): Poison. - * doc/md.texi (casesi): Remove documentation of CASE_DROPS_THROUGH. - * doc/tm.texi (casesi): Remove documentation of CASE_DROPS_THROUGH. - - * config/v850/v850.h: Remove commented out CASE_DROPS_THROUGH. - -2004-11-29 Andrew Pinski - - PR middle-end/18725 - * tree-cfg.c (tree_node_can_be_shared): Error_mark_node can be - shared always. - -2004-11-29 Diego Novillo - - PR tree-optimization/18712 - * tree-into-ssa.c (insert_phi_nodes_for): Pass argument - WORK_STACK by reference. - Call VEC_safe_push instead of VEC_quick_push. - Update all users. - -2004-11-29 Daniel Jacobowitz - - PR c/7544 - * Makefile.in (c-lang.o): Update dependencies. - * c-lang.c: Include "c-pragma.h". - (finish_file): Call maybe_apply_pending_pragma_weaks. - * c-pragma.c (maybe_apply_pending_pragma_weaks): New function. - * c-pragma.h (maybe_apply_pending_pragma_weaks): New prototype. - -2004-11-29 Richard Henderson - - PR target/17224 - * config/ia64/predicates.md (sdata_symbolic_operand): Deny offsets - outside the referenced object. - -2004-11-29 Kazu Hirata - - * tree-if-conv.c (replace_phi_with_cond_modify_expr): Use - EDGE_PRED instead of PHI_ARG_EDGE. - * tree-ssa-live.c: Likewise. - * tree-ssa-loop-manip.c: Likewise. - * tree-ssa.c: Likewise. - - * cfgrtl.c (cfg_layout_redirect_edge_and_branch): Speed up by - simplifying edge manipulation. - - * cfgrtl.c (rtl_tidy_fallthru_edge): Speed up by using - EDGE_COUNT. - - * tree-cfg.c (tree_redirect_edge_and_branch): Call find_edge - only when needed. - - * cfg.c (flow_obstack): Remove. - (flow_firstobj): Likewise. - (init_flow): Remove all uses of flow_obstack. - -2004-11-29 Alan Modra - - * varasm.c (default_elf_select_section_1): Only pass DECL_P decl - to named_section. - -2004-11-29 Nathan Sidwell - - * opts.c (decode_options): Do not set max-inline-insns-rtl. - (common_handle_option): Likewise. - * params.def (PARAM_MAX_INLINE_INSNS_RTL): Remove. - * params.h (MAX_INLINE_INSNS_RTL): Remove. - * doc/invoke.texi (max-inline-insns-rtl): Remove. - -2004-11-29 Alan Modra - - PR target/9571 - * varasm.c (default_elf_select_section_1): Pass decl to named_section. - -2004-11-28 Andrew Pinski - - PR middle-end/18164 - * gimplify.c (gimplify_asm_expr): If the length of an output operand - is zero, do not process it, just let it go through. - -2004-11-28 Richard Kenner - Diego Novillo - - PR/18662, also backported from tree-cleanup-branch. - * tree-ssa-ccp.c (substitute_and_fold): If replaced anything, - always call maybe_clean_eh_stmt and modify_stmt. - -2004-11-28 Richard Kenner - - PR/18664 - * tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR): - Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def. - * tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR, - add an inverse VIEW_CONVERT_EXPR to const_val. - - PR/18657 - * tree-nested.c (check_for_nested_with_variably_modified): New. - (create_nesting_tree): Call it. - - * tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove - special code for assigning to non-pointer. - (is_escape_site): If RHS is a conversion between pointer and integer - types, this is an escape site. - - * gcse.c (insert_store): Error if try to insert store on abnormal edge. - (store_motion): Don't move store if any edge we'd want to move it - to is abnormal. - - * expr.c (expand_expr_real_1, case ARRAY_REF): Properly fold with - non-zero lower bound. - - * expr.c (categorize_ctor_elements_1, case STRING_CST): New case. - -2004-11-28 Matt Kraai - - PR diagnostic/17594 - * opts.c (find_opt): Require that the input match a switch exactly - or that the switch take a joined option to be interpreted as a - match for another language. - -2004-11-28 Andrew Pinski - - * timevar.def (TV_TREE_REDPHI): New timevar. - * tree-ssa.c (pass_redundant_phi): Use TV_TREE_REDPHI for the tv id. - -2004-11-28 Nathanael Nerode - - PR preprocessor/17651 - * c-opts.c (sanitize_cpp_opts): Make flag_no_output imply - flag_no_line_commands. - * c-ppoutput.c (pp_file_change): Remove now-redundant check of - flag_no_output. - -2004-11-28 Theodore A. Roth - - * config/avr/avr.c (avr_handle_fndecl_attribute): Generate a - warning if the function name does not begin with "__vector" and the - function has either the 'signal' or 'interrupt' attribute. - -2004-11-28 Theodore A. Roth - - * config/avr/avr.c (avr_mcu_types): Add entries for atmega48, - atmega88, atmega168, attiny13, attiny2313, at90can128, atmega165, - atmega325, atmega3250, atmega645 and atmega6450. - * config/avr/avr.h (LINK_SPEC): Ditto. - (LIB_SPEC): Ditto. - (LIBGCC_SPEC): Ditto. - (CRT_BINUTILS_SPECS): Ditto. - * config/avr/t-avr (MULTILIB_MATCHES): Ditto. - -2004-11-28 Nathanael Nerode - - PR preprocessor/17610 - * testsuite/gcc.dg/cpp/empty-include.c: New testcase. - -2004-11-28 Jeff Law - - * tree-ssa-alias.c (count_calls_and_maybe_create_global_var): New. - (pass_maybe_create_global_var): New. - * tree-pass.h (pass_maybe_create_global_var): Declare. - * tree-optimize.c (init_tree_optimization_passes): Link in - pass_maybe_create_global_var. - -2004-11-28 Richard Kenner - - * tree-inline.c (inline_forbidden_p_1, case RECORD_TYPE): Add comment. - -2004-11-28 Ulrich Weigand - - PR rtl-optimization/18420 - * simplify-rtx.c (simplify_gen_subreg): Revert 2004-10-28 change. - -2004-11-28 Steven Bosscher - John David Anglin - - * config/vax/vax.h (CASE_DROPS_THROUGH): Don't define. - * config/vax/vax.md (casesi): Emit a test-and-branch to make sure - that the case is in range, to make sure the casesi insn is always - in range and never falls through. - (casesi1): Add comment to explain why casesi never falls through. - Remove the unnamed special case casesi pattern. - -2004-11-28 Hans-Peter Nilsson - - PR target/18331 - * config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from - "*movdicc_real". Only match reversible comparisons. - ("*movdicc_real_nonreversible"): New pattern, split from - "*movdicc_real". Match only nonreversible comparisons. Exclude - reversed alternatives. - ("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"): - Similar. - -2004-11-27 Richard Henderson - - * config/ia64/ia64.md: Move all define_predicate's ... - * config/ia64/predicates.md: ... here. New file. - -2004-11-27 Per Bothner - - PR bootstrap/18142 - Re-applied following, with two modifications: add a URL for the - fixed cctools; only exit if $build = $target. - - 2004-10-18 Kelley Cook - * configure.ac (powerpc-*-darwin*): Require assembler to support - .machine directive. - * configure: Regenerate. - -2004-11-28 David Edelsohn - - PR target/16800 - * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve accuracy of - EQ, GTU, and LTU costs. Add costs for GT, LT, and UNORDERED. - Distinguish between SImode and DImode CONST_INT. - -2004-11-28 Andreas Fischer - Alan Modra - - PR target/16343 - * config/rs6000/rs6000.c (rs6000_elf_in_small_data_p): Disallow - functions, strings and thread-local vars. - -2004-11-28 Alan Modra - - * config/rs6000/rs6000.h (WORLD_SAVE_P): Define. - * config/rs6000/darwin.h (WORLD_SAVE_P): Define. - * config/rs6000/rs6000.c (compute_save_world_info): Use WORLD_SAVE_P - to allow non-darwin ABIs to optimize away code. - (rs6000_emit_prologue, rs6000_emit_epilogue): Likewise. - -2004-11-27 Kazu Hirata - - * tree.c (operand_equal_for_phi_arg_p): New. - * tree.h: Add a prototype for operand_equal_for_phi_arg_p. - * tree-cfg.c, tree-ssa-dom.c, tree-ssa-phiopt.c, tree-ssa.c: - Replace operand_equal_p with operand_for_phi_arg_p - appropriately. - - * bb-reorder.c (find_traces_1_round): Speed up by using - EDGE_COUNT instead of FOR_EACH_EDGE. - - * fold-const.c, config/i386/linux64.h: Fix comment typos. - -2004-11-27 John David Anglin - - PR pch/14940 - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Revert 2004-11-22 change. - -2004-11-27 Kazu Hirata - - * config/i386/linux.h: Fix a comment typo. - * doc/extend.texi: Fix a typo. - -2004-11-27 Jeff Law - - * tree-cfg.c (cleanup_tree_cfg): Also return true if blocks - are merged. - -2004-11-27 Jakub Jelinek - - * config/i386/linux64.h (REG_NAME): Define. - -2004-11-27 Jakub Jelinek - - * fold-const.c (extract_muldiv_1) : If ctype is - unsigned and type signed, build ABS_EXPR with signed_type (ctype) - and only afterwards convert to ctype. - -2004-11-27 Richard Sandiford - - * config/mips/mips-protos.h (function_arg_boundary): Declare. - * config/mips/mips.h (PARM_BOUNDARY): Simplify definition. - (STACK_BOUNDARY, MIPS_STACK_ALIGN): Likewise. - (FUNCTION_ARG_BOUNDARY): Use new function_arg_boundary function. - * config/mips/mips.c (function_arg_boundary): New function. - Impose a maximum alignment of STACK_BOUNDARY. - -2004-11-27 Jakub Jelinek - - PR rtl-optimization/17825 - * combine.c (subst): Ignore STRICT_LOW_PART no matter if REG_P (new) - or not. - -2004-11-27 Alan Modra - - PR target/12769 - * config/rs6000/rs6000.c (init_cumulative_args): Set call_cookie - from rs6000_default_long_calls for libcalls. - -2004-11-26 Richard Kenner - - * expmed.c (extract_bit_field): When extracting from non-integer mode, - force a SUBREG into a register because we may be taking a further - SUBREG of it. - -2004-11-27 Di-an Jan - - * doc/contrib.texi (Tim Josling): Remove nesting quotation marks. - -2004-11-26 Robert Millan - - Changes for k*bsd-gnu support. - * config/i386/linux.h: Define REG_NAME to allow overriding of - register names in sc structure. - * config/i386/linux-unwind.h: Refer to sc->REG_NAME(reg) instead - of sc->reg. - * config.gcc: Detect x86_64-k*bsd-gnu systems. - -2004-11-26 Jeff Law - - * tree-ssa.c (verify_flow_sensitive_alias_info): Don't - retrieve annotations or pointer info before it's necessary. - Reorder tests for early continue of the loop. Manually CSE - SSA_NAME_VAR. - -2004-11-26 Eric Botcazou - - * target.h (struct gcc_target): New field 'dwarf_handle_frame_unspec'. - * target_def.h (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to 0. - (TARGET_INITIALIZER): Add TARGET_DWARF_HANDLE_FRAME_UNSPEC. - * dwarf2out.c (dwarf2out_frame_debug_expr): Allow REG->REG move - to a fixed reg if the source is the Return Address register. - Implement new Rule 15. - * doc/tm.texi (Frame Layout): Document TARGET_DWARF_HANDLE_FRAME_UNSPEC. - * config/sparc/sparc.c (TARGET_DWARF_HANDLE_FRAME_UNSPEC): Define to - sparc_dwarf_handle_frame_unspec. - (gen_save_register_window): New function. - (emit_stack_pointer_increment): Rename into gen_stack_pointer_inc. - (emit_stack_pointer_decrement): Rename into gen_stack_pointer_dec. - (expand_prologue): Adjust calls to emit_stack_pointer_{in,de}crement. - Set RTX_FRAME_RELATED_P on the appropriate insns and members of insns. - (sparc_asm_function_prologue): Do not emit call frame debugging info. - (emit_and_preserve): Adjust calls to emit_stack_pointer_{in,de}crement. - (sparc_expand_epilogue): Likewise. - (sparc_dwarf_handle_frame_unspec): New function. - * config/sparc/sparc.md (save_register_window): Remove. - (save_register_windowdi): Rewrite modelled on the callframe debug info. - (save_register_windowsi): Likewise. - -2004-11-26 Alexandre Oliva - - * config/frv/frv-protos.h: Guard ifcvt functions declarations with - BB_HEAD, not BLOCK_HEAD. - -2004-11-26 Alexandre Oliva - - * config/frv/frv.c (frv_ifcvt_modify_insn): Don't leave alone - scratch insns that set a register live at the join point. - -2004-11-26 Kazu Hirata - - * cse.c, tree-ssa-operands.c: Fix comment typos. - - * tree-cfg.c (tree_split_edge): Speed up by using find_edge. - -2004-11-26 James A. Morrison - - PR target/18510 - * doc/extend.texi (SPARC VIS Built-in Functions): New section. - -2004-11-26 Kazu Hirata - - * cfgrtl.c (try_redirect_by_replacing_jump): Speed up the - check that tests if all edges go to the same destination. - - * bitmap.c (bitmap_find_bit): Speed up by traversing from - head->first if that seems profitable. - -2004-11-25 Jeff Law - - * timevar.def (TV_TREE_LOOP_INIT, TV_TREE_LOOP_FINI): New timevars. - * tree-ssa-loop.c (pass_loop_init): Use TV_TREE_LOOP_INIT. - (pass_loop_done): Use TV_TREE_LOOP_FINI. - -2004-11-26 Alan Modra - - PR rtl-optimization/16356 - * config/rs6000/rs6000.md (floatdisf2_internal2): Rewrite with - separate output register and one less jump. Enable for powerpc64. - (floatdisf2): Adjust for above. - -2004-11-25 Bob Wilson - - * config/xtensa/xtensa.h (STARTFILE_SPEC): Add crt0. - (GCC_DRIVER_HOST_INITIALIZATION): Define. - -2004-11-25 Andrew Pinski - - PR middle-end/17957 - * tree-complex.c (vector_inner_type): New variable moved from - build_word_mode_vector_type. - (vector_last_type): Likewise. - (vector_last_nunits): Likewise. - (build_word_mode_vector_type): Use the new variables. - * Makefile.in (tree-complex.o): Add gt-tree-complex.h $(GGC_H). - (GTFILES): Add tree-complex.c. - (gt-tree-complex.h): New rule, add it to the rest of the gt-* rules. - -2004-11-25 Bob Wilson - - * config/xtensa/xtensa.h (TARGET_CPU_CPP_BUILTINS): Define - __XTENSA_WINDOWED_ABI__. - -2004-11-25 Richard Henderson - - * dwarf2out.c (dwarf2out_stack_adjust): Add after_p argument. Save - args_size adjustments for calls even with cfa as stack pointer. - Search calls for stack adjustments after the insn is issued. - (dwarf2out_frame_debug): Add after_p argument; pass it on. - * dwarf2out.h (dwarf2out_frame_debug): Update to match. - * final.c (final_start_function, final_scan_insn): Likewise. - -2004-11-25 Richard Henderson - - PR c++/6764 - * reload1.c (set_initial_eh_label_offset): New. - (set_initial_label_offsets): Use it. - -2004-11-25 Kaz Kojima - - * config/sh/sh.c (sh_output_mi_thunk): Initialize bitmap obstacks - before calling life_analysis and release them after. - -2004-11-25 Kazu Hirata - - * tree-ssa-forwprop.c (substitute_single_use_vars): Remove - duplicate code. - -2004-11-25 Andrew Pinski - - * bitmap.h (BITMAP_XMALLOC): Use BITMAP_ALLOC and not - BITMAP_OBSTACK_ALLOC. - (BITMAP_XFREE): Use BITMAP_FREE and not BITMAP_OBSTACK_FREE. - -2004-11-25 Andrew Pinski - - parts of PR rtl-opt/18463, rtl-opt/17647 - * cse.c (canon_for_address): New function. - (find_best_addr): Call canon_for_address before getting the - address's cost when checking if we should take that address. - -2004-11-25 Kazu Hirata - - * tree-phinodes.c (add_phi_arg): Take "tree" instead of - "tree *" as the first argument. - * tree-flow.h: Update the prototype of add_phi_arg. - * lambda-code.c, tree-cfg.c, tree-into-ssa.c, - tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa-pre.c, - tree-ssa-threadupdate.c, tree-ssa.c, tree-tailcall.c, - tree-vectorizer.c: Update all call sites of add_phi_arg. - -2004-11-25 Nathan Sidwell - - * bitmap.c (bitmap_malloc_alloc, bitmap_malloc_free): Remove. - * bitmap.h (bitmap_malloc_alloc, bitmap_malloc_free): Remove. - (BITMAP_XMALLOC): Forward to BITMAP_OBSTACK_ALLOC. - (BITMAP_XFREE): Forward to BITMAP_OBSTACK_FREE. - -2004-11-25 Andrew MacLeod - - PR tree-optimization/18587 - * tree-flow-inline.h (mark_call_clobbered, mark_non_addressable): Flag - call clobbered caches as invalid. - * tree-ssa-operands.c (ssa_call_clobbered_cache_valid): New. Flag - indicating whether the call clobbered operand cache is valid. - (ssa_ro_call_cache_valid): New. Flag indicating whether the - pure/const call operand cache is valid. - (clobbered_v_may_defs, clobbered_vuses, ro_call_vuses): New. Cached - list of operands for cached call virtual operands. - (clobbered_aliased_loads, clobbered_aliased_stores, - ro_call_aliased_load): New. flags caching whether alias bits are - to be set in call stmt's. - (fini_ssa_operands): Remove call operand caches if present. - (get_expr_operands, get_asm_expr_operands, - get_indirect_ref_operands): Pass stmt annotation to add_stmt_operand. - (get_call_expr_operands): Add call clobbered variables first. - (add_stmt_operand): Take stmt annotation rather than stmt as a param. - (add_call_clobber_ops, add_call_read_ops): Use the call operand cache - if it is valid, otherise fill the cache. - * tree-ssa-operands.h (ssa_clobbered_cache_valid): Declare extern. - * tree-flow.h (struct var_ann_d): Add in_vuse_list and - in_v_may_def_list bits. - * tree-ssa-operands.c (cleanup_v_may_defs): New. Clear the - in_list bits for the v_may_def elements and empty the operand - build array - (finalize_ssa_vuses): Use cleanup_v_may_defs and remove redundant - VUSES by checking the in_v_may_def_list bit. - (append_v_may_def, append_vuse): Use the in_list bit rather than - scanning the array for duplicates. - -2004-11-25 Ulrich Weigand - - * config/s390/s390.c (s390_short_displacement): UNSPEC_GOTNTPOFF - displacements are not short. - -2004-11-25 Ulrich Weigand - - * config/s390/s390.c (legitimize_pic_address): Use s390_load_address - to load addresses. - -2004-11-25 Mark Mitchell - - PR c++/18001 - * c-common.h (lvalue_use): Move here from c-ctypeck.c. - (lvalue_or_else): Declare. - * c-common.c (lvalue_or_else): Move here from c-typeck.c. - * c-typeck.c (lvalue_use): Remove. - (lvalue_or_else): Remove. - - PR c++/18556 - * toplev.c (check_global_declarations): Set DECL_IGNORED_P on - unemitted variables with static storage duration. - -2004-11-25 Gerald Pfeifer - - * tree-cfg.c (tree_verify_flow_info): Do not terminate error() - message with \n. - -2004-11-25 Nathan Sidwell - - * config/rs6000/altivec.md (VIshort): New mode macro. - (altivec_vaddubs, altivec_vadduhs, altivec_vadduws): Replace - with ... - (altivec_vaddus): ... this. - (altivec_vaddsbs, altivec_vaddshs, altivec_vaddsws): Replace - with ... - (altivec_vaddss): ... this. - (altivec_vsububs, altivec_vsubuhs, altivec_vsubuws): Replace - with ... - (altivec_vsubus): ... this. - (altivec_vsubsbs, altivec_vsubshs, altivec_vsubsws): Replace - with ... - (altivec_vsubss): ... this. - (altivec_vavgub, altivec_vavguh, altivec_vavguw): Replace - with ... - (altivec_vavgu): ... this. - (altivec_vavgsb, altivec_vavgsh, altivec_vavgsw): Replace - with ... - (altivec_vavgs): ... this. - (altivec_vmsumubm, altivec_vmsumuhm): Replace with ... - (altivec_vmsumum): ... this. - (altivec_vmsummbm, altivec_vmsummhm): Replace - with ... - (altivec_vmsummm): ... this. - (altivec_vandc): Remove. - (*andc3): Renamed to ... - (andc3): ... here. Swap operand 1 and 2 numbering. - (altivec_vrlb, altivec_vrlh, altivec_vrlw): Replace - with ... - (altivec_vrl): ... this. - (altivec_vslb, altivec_vslh, altivec_vslw): Replace - with ... - (altivec_vsl): ... this. - (altivec_vsrb, altivec_vsrh, altivec_vsrw): Replace - with ... - (altivec_vsr): ... this. - (altivec_vsrab, altivec_vsrah, altivec_vsraw): Replace - with ... - (altivec_vsra): ... this. - (altivec_vsum4sbs, altivec_vsum4shs): Replace with ... - (altivec_vsum4ss): ... this. - (altivec_vperm_4si, altivec_vperm_8hi, altivec_vperm_16qi): Replace - with ... - (altivec_vperm_): ... this. - (altivec_vsel_4sf): Rename to ... - (altivec_vsel_v4sf): ... here. - (altivec_vsel_4si, altivec_vsel_8hi, altivec_vsel_16qi): Replace - with ... - (altivec_vsel_): ... this. - (altivec_vsldoi_4si, altivec_vsldoi_8hi, - altivec_vsldoi_16qi): Rename to ... - (altivec_vsldoi_v4si, altivec_vsldoi_v8hi, - altivec_vsldoi_v16qi): ... here. - (altivec_vsldoi_4sf): Rename to ... - (altivec_vsldoi_v4sf): ... here. - (altivec_predicate_v4si, altivec_predicate_v8hi, - altivec_predicate_v16qi): Replace with ... - (altivec_predicate_): ... this. - (altivec_lvebx, altivec_lvehx, altivec_lvewx): Replace - with ... - (altivec_lvex): ... this. - (altivec_stvebx, altivec_stvehx, altivec_stvewx): Replace - with ... - (altivec_stvex): ... this. - (absv16qi2, absv8hi2, absv4si2): Replace - with ... - (abs2): ... this. - (altivec_abss_v16qi, altivec_abss_v8hi, altivec_abss_v4si): Replace - with ... - (altivec_abss_): ... this. - (vec_realign_load_v16qi, vec_realign_load_v8hi, - vec_realign_load_v4si): Replace with ... - (vec_realign_load_): ... this. - * config/rs6000/rs6000.c (bdesc_3arg, bdesc_2arg): Update tweaked - insn names. - (rs6000_expand_ternop_builtin): Likewise. - -2004-11-25 Andrew Haley - - * gcc.c (process_command): Don't supply -v to linker. - -2004-11-25 Joseph S. Myers - - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Use %qs - instead of `%s' in diagnostic. - -2004-11-25 Nathan Sidwell - - * basic-block.h (OBSTACK_ALLOC_REG_SET): Adjust. - (FREE_REG_SET): Adjust. - * bitmap.c (bitmap_obstack_free): Cope with NULL bitmap. - * bitmap.h (BITMAP_OBSTACK_ALLOC): Rename to ... - (BITMAP_ALLOC): ... here. - (BITMAP_OBSTACK_FREE): Rename to ... - (BITMAP_FREE): Don't check for NULL bitmap here. - * tree-ssa-pre.c (value_insert_into_set_bitmap, - bitmap_set_new): Use new names. - - * bt-load.c (migrate_btr_defs): Remove unneeded NULL check. - * df.c (df_free): Likewise. - * ra-build.c (ra_build_free, ra_build_free_all): Likewise. - * tree-ssa-loop-ivopts.c (set_use_iv_cost): Likewise. - - * basic-block.h (OBSTACK_ALLOC_REG_SET): Rename to ... - (ALLOC_REG_SET): ... here. - (FREE_REG_SET): Adjust. - (XMALLOC_REG_SET, XFREE_REG_SET): Remove. - * bb-reorder.c (fix_crossing_conditional_branches): Adjust. - * cfglayout.c (cfg_layout_duplicate_bb): Adjust. - * cfgrtl.c (rtl_split_block, rtl_split_edge, - safe_insert_insn_on_edge, cfg_layout_split_edge): Adjust. - * flow.c (update_life_info, calculate_global_regs_live, - allocate_bb_life_data, init_propagate_block_info): Adjust. - * global.c (build_insn_chain): Adjust. - * ifcvt.c (dead_or_predicable): Adjust. - * loop-iv.c (simplify_using_initial_values): Adjust. - * recog.c (peephole2_optimize): Adjust. - * sched-deps.c (init_deps_global): Adjust. - -2004-11-25 Ralf Corsepius - - * config.gcc (avr-*-rtems*): Fix typo. - -2004-11-25 J"orn Rennecke - - * sh.c (sh_output_mi_thunk): Do not call regset_release_memory. - -2004-11-24 Jeff Law - - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Reduce - the number of queries to random elements in the ai->written_vars - bitmap. - -2004-11-24 Roger Sayle - - * config/i386/i386.c (override_options): Disable x87 fancy math - intrinsics if -mfpmath= doesn't include 387 (default on x86_64). - -2004-11-24 Roger Sayle - - * configure.ac: Tweak test for HAVE_DECL_LDGETNAME to avoid a - system header conflict on AIX 5.2. - * configure: Regenerate. - -2004-11-24 Kazu Hirata - - * tree-outof-ssa.c (coalesce_abnormal_edges): Use e->dest_idx - instead of calling phi_arg_from_edge. - - * tree-phinodes.c (remove_phi_args): Replace phi_arg_from_edge - with e->dest_idx. - -2004-11-24 Ben Elliston - - * config/i386/i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): Remove. - * config/i386/i386.c (i386_dwarf_output_addr_const): Likewise. - * config/i386/i386-protos.h (i386_dwarf_output_addr_const): - Likewise. - -2004-11-24 Richard Kenner - - * tree-sra.c (sra_walk_modify_expr): Handle RHS first, then LHS. - - * tree-inline.c (copy_body_r): Explicitly copy a constant if the - type will be remapped. - -2004-11-24 Steven Bosscher - - * c-opts.c (c_common_post_options): Don't clear - flag_inline_functions. - * dojump.c (clear_pending_stack_adjust): Remove check on - flag_inline_functions, it's always true. - * config/alpha/alpha.md (movdi_er_maybe_g): Remove splitter - that can never trigger. - * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Don't look at - flag_inline_trees, now that flag_inline_functions is never - cleared. - * config/pdp11/pdp11.h (OPTIMIZATION_OPTIONS): Don't set - flag_inline_functions at optimization levels greater than - or equal to 3. This is already done by default. - -2004-11-24 Kazu Hirata - - * tree-outof-ssa.c (eliminate_build): Use g->e->dest_idx - instead to find the PHI argument. Do not take I as an - argument. - (eliminate_phi): Adjust the call to eliminate_build. Do not - take I as an argument. - (rewrite_trees): Adjust the call to eliminate_phi. - -2004-11-24 Richard Sandiford - - * optabs.h (force_expand_binop): Declare. - * optabs.c (force_expand_binop): Export. - * stmt.c (shift_return_value): Delete. - (expand_return): Don't call it. - * expr.h (shift_return_value): Declare. - * calls.c (shift_returned_value): Delete in favor of... - (shift_return_value): ...this new function. Leave the caller to check - for non-BLKmode values passed in the msb of a register. Take said mode - and a shift direction as argument. Operate on the hard function value, - not a pseudo. - (expand_call): Adjust accordingly. - * function.c (expand_function_start): If a non-BLKmode return value - is padded at the last significant end of the return register, use the - return value's natural mode for the DECL_RESULT, not the mode of the - padded register. - (expand_function_end): Shift the same sort of return values left by - the appropriate amount. - -2004-11-24 Matt Austern - - * recog.c (recog_memoized_1): Remove. - * recog.h (recog_memoized_1): Remove declaration. - (recog_memoized): Change from macro to inline function. - -2004-11-24 Devang Patel - - PR/18555 - * gcc.h (DEFAULT_WORD_SWITCH_TAKES_ARG): Add isysroot. - * config/darwin-c.c (darwin_register_frameworks): Use sysroot. - -2004-11-24 Devang Patel - - * gcc.c (process_command): Supply -v to linker. - -2004-11-24 David Edelsohn - Paolo Bonzini - - * config/rs6000/rs6000.c (rs6000_return_in_memory): Allow Altivec - vector modes without ALTIVEC_ABI. Use GCC vector instead of - synthetic vector. - (rs6000_pass_by_reference): Split conditional into pieces. Use - GCC vector instead of synthetic vector. - -2004-11-24 Aldy Hernandez - - * tree.c (recompute_tree_invarant_for_addr_expr): The address of a - thread-local variable is invariant. - -2004-11-24 Richard Kenner - - * tree-pretty-print.c (dump_generic_node, case POINTER_TYPE): - Handle TYPE_REF_CAN_ALIAS_ALL. - (print_declaration): Print array dimensions like dump_generic_node. - - * fold-const.c (operand_equal_p): Remove kludge allowing ARG0 and - ARG1 to be null; instead define OP_SAME and OP_SAME_NULL and use them. - -2004-11-24 Nathan Sidwell - - * bitmap.c (INLINE): Do not define. - (bitmap_elem_to_freelist, bitmap_element_free, - bitmap_element_allocate, bitmap_clear, bitmap_element_zerop, - bitmap_element_link, bitmap_find_bit): Use inline keyword/macro. - -2004-11-24 Kazu Hirata - - * tree-ssa-dom.c (cprop_into_successor_phis): Remove code to - find the index of a PHI argument. Use e->dest_idx instead. - Replace hint with index. - - * tree-ssa-dom.c (cprop_into_successor_phis): Replace index - with indx. - -2004-11-24 Diego Novillo - - * tree-ssa-alias.c (merge_pointed_to_info): Fix comment - regarding PT_MALLOC. - -2004-11-24 Joseph Myers - - * config/i386/i386.c (optimization_options): Use - SUBTARGET_OPTIMIZATION_OPTIONS. - * config/i386/sol2-10.h (SUBTARGET_OPTIMIZATION_OPTIONS): Define. - (TARGET_SUBTARGET_DEFAULT): Don't include - MASK_OMIT_LEAF_FRAME_POINTER. - -2004-11-24 Mark Mitchell - - * config/i386/sol2.h (X86_FILE_START_VERSION_DIRECTIVE): - Define to false. - -2004-11-24 Joseph Myers - - * config/i386/t-sol2-10 (MULTILIB_DIRNAMES, MULTILIB_OSDIRNAMES): - Use amd64 instead of 64. - -2004-11-24 Mark Mitchell - Joseph Myers - - * crtstuff.c (IN_LIBGCC2): Define it. - (EH_FRAME_SECTION_CONST): Check EH_TABLES_CAN_BE_READ_ONLY - instead of HAVE_LD_RO_RW_SECTION_MIXING. - * defaults.h (EH_TABLES_CAN_BE_READ_ONLY): New macro. - * dwarf2out.c (named_section_eh_frame_section): Check - EH_TABLES_CAN_BE_READ_ONLY. - * except.c (default_exception_section): Likewise. - * config/i386/sol2.h (EH_TABLES_CAN_BE_READ_ONLY): Define. - * doc/tm.texi (EH_TABLES_CAN_BE_READ_ONLY): Document. - -2004-11-24 Kazu Hirata - - * tree-ssa-pre.c (phi_translate): Use find_edge to find the - index of a PHI argument. - - * tree-ssa-loop-manip.c (lv_adjust_loop_header_phi): Use - find_edge to find the index of a PHI argument. - -2004-11-24 Steven Bosscher - - * expr.c (expand_expr_real_1): Remove cases for EXIT_BLOCK_EXPR - and LABELED_BLOCK_EXPR. - * gimplify.c (gimplify_labeled_block_expr): Remove. - (gimplify_exit_block_expr): Remove. - (gimplify_expr): Don't call them. - * tree-inline.c (copy_body_r): Don't handle EXIT_BLOCK_EXPR - and LABELED_BLOCK_EXPR. - (estimate_num_insns_1): Likewise. - (walk_tree): Likewise. - * tree-pretty-print.c (dump_generic_node): Don't handle - EXIT_BLOCK_EXPR and LABELED_BLOCK_EXPR. - * tree.def (EXIT_BLOCK_EXPR): Moved to java-tree.def. - (LABELED_BLOCK_EXPR): Likewise. - * tree.h (LABELED_BLOCK_LABEL): Moved to java-tree.h. - (LABELED_BLOCK_BODY): Likewise. - (EXIT_BLOCK_LABELED_BLOCK): Likewise. - (EXIT_BLOCK_RETURN): Removed. - -2004-11-24 Steven Bosscher - - * cfgrtl.c (rtl_delete_block): Fix comment. - * emit-rtl.c (remove_unnecessary_notes): Die if we see BLOCK_BEG - or BLOCK_END insn notes. - * jump.c (squeeze_notes): Likewise. - * haifa-sched.c (reemit_notes): Don't "re-emit" EH_REGION_BEG and - EH_REGION_END notes, we never have them to begin with. - * sched-deps.c (sched_analyze_insn): When updating loop notes, - verify that we have indeed only recorded loop notes. - (sched_analyze): Die if we see EH_REGION_BEG or EH_REGION_END notes. - Only record loop notes. - - * cfgexpand.c (tree_expand_cfg): Fix comment. - - * passes.c (rest_of_compilation): Don't do a second call to - convert_from_eh_region_ranges from here, it's already called - from cfgexpand.c. - * except.c (resolve_fixup_regions): Remove. - (remove_fixup_regions): Remove. - (convert_from_eh_region_ranges_1): Remove. - (convert_from_eh_region_ranges): Remove the case where EH is - not already lowered at the tree level. We always lower there. - -2004-11-24 Paolo Bonzini - - PR c++/16882 - * tree.c (make_vector_type): Move qualifiers to the vector type, - use the inner type's main variant and build a main variant for - the vector type if necessary. - (type_hash_eq): Check a vector type's TYPE_VECTOR_SUBPARTS. - -2004-11-24 Eric Botcazou - - * target.h (late_rtl_prologue_epilogue): Remove. - * target-def.h (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove. - * system.h: Poison TARGET_LATE_RTL_PROLOGUE_EPILOGUE. - * passes.c (rest_of_handle_prologue_epilogue): Remove and move - remaining bits to... - (rest_of_handle_flow2): ...here. - (rest_of_compilation): Remove call to rest_of_handle_prologue_epilogue. - * doc/tm.texi (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Remove. - -2004-11-23 Mark Mitchell - - * hwint.h (HOST_LONG_LONG_FORMAT): New macro. Use it throughout. - * config/i386/xm-mingw32.h (HOST_LONG_LONG_FORMAT): Define. - * doc/hostconfig.texi (HOST_LONG_LONG_FORMAT): Document. - -2004-11-24 Daniel Jacobowitz - - * config/i386/i386.c (override_options): Move - SUBTARGET_OVERRIDE_OPTIONS before defaulting - flag_omit_frame_pointer. - -2004-11-23 Richard Henderson - - * rtl.h (validate_subreg): Declare. - * emit-rtl.c (validate_subreg): New. - (gen_rtx_SUBREG): Use it. - * simplify-rtx.c (simplify_subreg): Likewise. - (simplify_gen_subreg): Likewise. Remove duplicate asserts. - * expr.c (emit_move_insn_1): Tidy complex move code. Use memory - fallback whenever gen_realpart/gen_imagpart would not be able to - create SUBREGs. - -2004-11-23 Richard Henderson - - * expmed.c (extract_bit_field): Use simplify_gen_subreg instead of - hard-coding avoiding calls to gen_rtx_SUBREG. Split complex return - modes to CONCAT. - -2004-11-23 Diego Novillo - - PR tree-optimization/18618 - * tree-into-ssa.c (DEF_VEC_MALLOC_P(basic_block)): Declare. - (insert_phi_nodes_for): Change third argument to VEC(basic_block). - * tree-ssa-dom.c (avail_exprs_stack): Change type to VEC(tree_on_heap). - Update all users. - (stmts_to_rescan): Likewise. - (const_and_copies_stack): Likewise. - (nonzero_vars_stack): Likewise. - (vrp_variables_stack): Likewise. - -2004-11-23 Richard Henderson - - * cse.c (record_jump_cond_subreg): New. - (record_jump_cond): Use it instead of gen_lowpart. - -2004-11-23 Daniel Jacobowitz - Joseph Myers - - * config/sol2-c.c (solaris_register_pragmas): Use - c_register_pragma_with_expansion. - * config/sol2.h (HANDLE_PRAGMA_PACK_WITH_EXPANSION): Define. - * c-pragma.c (c_register_pragma): Update call to - cpp_register_pragma. - (c_register_pragma_with_expansion): New function. - (init_pragma): Honor HANDLE_PRAGMA_PACK_WITH_EXPANSION. - * c-pragma.h (c_register_pragma_with_expansion): New prototype. - * doc/extend.texi (Solaris Pragmas): Mention macro expansion for - #pragma align. - * doc/tm.texi (c_register_pragma_with_expansion, - HANDLE_PRAGMA_PACK_WITH_EXPANSION): Document. - -2004-11-23 Richard Henderson - - * combine.c (gen_lowpart_for_combine): Factor out mode of x as well - as mode sizes into local temporaries. Unify failure path. - -2004-11-23 Richard Henderson - - * emit-rtl.c, rtl.h (subreg_hard_regno): Remove. - * caller-save.c (mark_set_regs): Use subreg_regno instead. - * final.c (alter_subreg): Likewise. - * local-alloc.c (reg_is_born): Likewise. - -2004-11-23 Richard Henderson - - * simplify-rtx.c (simplify_subreg): Use subreg_regno_offset directly - instead of using a SUBREG temporary. - -2004-11-23 Kazu Hirata - - * tree-cfg.c (tree_forwarder_block_p): Speed up by reordering - two checks. - -2004-11-23 Zack Weinberg - - * function.h (struct function): Remove calls_longjmp. - (current_function_calls_longjmp): Delete. - * tree.h (ECF_LONGJMP): Delete. - (ECF_SIBCALL, ECF_PURE, ECF_SP_DEPRESSED, ECF_ALWAYS_RETURN) - (ECF_LIBCALL_BLOCK): Everybody slide down one. - (ECF_CONST, ECF_NORETURN, ECF_SIBCALL): Clarify comments. - * builtins.c (expand_builtin_longjmp): Don't set - current_function_calls_longjmp. - * calls.c (special_function_p): Mark longjmp and siglongjmp - with ECF_NORETURN, not ECF_LONGJMP. - (emit_call_1, expand_call, emit_library_call_value_1): - Don't check for ECF_LONGJMP. - * tree-cfg.c (make_exit_edges, is_ctrl_altering_stmt) - (need_fake_edge_p): Likewise. - - * config/avr/avr.h, config/ip2k/ip2k.h: Don't define NON_SAVING_SETJMP. - * system.h: Poison NON_SAVING_SETJMP. - * function.c (use_register_for_decl) - * gcse.c (compute_hash_table_work, compute_store_table) - * postreload-gcse.c (record_opr_changes) - * reload.c (find_equiv_reg) - * reload1.c (reload) - * config/i386/i386.c (ix86_can_use_return_insn_p): - Remove code conditional on NON_SAVING_SETJMP. - * doc/tm.texi: Delete documentation of NON_SAVING_SETJMP. - - * config/i386/sysv3.h: Delete file. - * config/i386/i386.c (ix86_svr3_asm_out_constructor): Delete. - -2004-11-23 Dorit Naishlos - - * tree-vectorizer.c (vect_analyze_operations): Don't vectorize if - the vectorization factor is greater than the iteration count. - (vect_gen_niters_for_prolog_loop): No need to calculate min if the - iteration count is known. - - (vect_build_symbol_bound): Removed. Its functionality moved to - vect_generate_tmps_on_preheader. - (vect_generate_tmps_on_preheader): Moved content of - vect_build_symbol_bound here instead of calling it. Changed some - variables names. - - (vect_build_loop_niters): We don't expect a new_bb to be generated - - use gcc_assert. - (vect_gen_niters_for_prolog_loop): Likewise. - (vect_gen_niters_for_prolog_loo): Likewise. - - (slpeel_make_loop_iterate_ntimes): Use buildN instead of build. - (slpeel_add_loop_guard): Likewise. - (slpeel_tree_peel_loop_to_edge): Likewise. - (vect_do_peeling_for_alignment): Likewise. - - (vect_get_first_index): Missing space. - -2004-11-23 Ulrich Weigand - - * config/s390/s390.md ("*iordi3"): Mark commutative. - ("*iorsi3_zarch", "*iorsi3_esa"): Likewise. - -2004-11-23 Kazu Hirata - - * tree-phinode.c (resize_phi_node): Abort when LEN is strictly - greater than PHI_ARG_CAPACITY. - (reserve_phi_args_for_new_edge): Initialize the new PHI - argument to NULL_TREE. Increment PHI_NUM_ARGS. - (add_phi_arg): Add a PHI argument to the slot given by - E->dest_idx. - (remove_phi_arg_num): Do not write to PHI_ARG_EDGE. - * tree-flow-inline (phi_arg_from_edge): Return E->dest_idx. - * tree-ssa.c (ssa_redirect_edge): Check for a missing PHI - argument by looking at PHI_ARG_DEF. - (verify_phi_args): Check for a missing PHI argument. Remove - the check for duplicate PHI arguments. - * tree.h (PHI_ARG_EDGE): Redefine in terms of EDGE_PRED. - (phi_arg_d): Remove e. - - * tree-cfg.c (tree_try_redirect_by_replacing_jump): Speed up - by restricting to the case with two outgoing edges. - -2004-11-23 Andreas Krebbel - - * config/s390/s390.c (s390_backchain_string): Removed. - (s390_return_addr_rtx, s390_back_chain_rtx, s390_frame_info) - (s390_emit_prologue, s390_va_start, s390_gimplify_va_arg): - Changed users of TARGET_BACKCHAIN, TARGET_NO_BACKCHAIN and - TARGET_KERNEL_BACKCHAIN to reflect the new options. - * config/s390/s390.h (MASK_BACKCHAIN, MASK_PACKED_STACK): New macros. - (TARGET_KERNEL_BACKCHAIN): Removed. - (TARGET_BACKCHAIN): Former triple state option change to a target flag. - (TARGET_PACKED_STACK): New macro. - (TARGET_SWITCHES): New switches added. - (TARGET_OPTIONS): "backchain", "no-backchain" and "kernel-backchain" - removed. - (DYNAMIC_CHAIN_ADDRESS): Use TARGET_PACKED_STACK. - * config/s390/s390.md ("allocate_stack", "restore_stack_block") - ("save_stack_nonlocal", "restore_stack_nonlocal"): Modified to reflect - the change in target switch semantics. - * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Removed. - (TARGET_DEFAULT): MASK_BACKCHAIN added. - * doc/invoke.texi: Added documentation for the new/changed options. - -2004-11-23 Uros Bizjak - - PR rtl-optimization/18614 - * simplify-rtx.c (simplify_binary_operation): Do not - simplify inner elements of constant arguments of - VEC_CONCAT insn. - -2004-11-23 Eric Botcazou - - * gthr-solaris.h (__gthread_recursive_mutex_init_function): Use - 0 instead of NULL. - -2004-11-23 Kazu Hirata - - * tree-phinode.c (make_phi_node): Use a new variable, - capacity, to receive the return value of ideal_phi_node_len. - -2004-11-23 Eric Botcazou - - * gthr-solaris.h (__gthread_recursive_mutex_t): New type. - (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to - __gthread_recursive_mutex_init_function. - (__gthread_key_create): Properly cast -1. - (__gthread_recursive_mutex_init_function): New function. - (__gthread_recursive_mutex_lock): Rewrite. - (__gthread_recursive_mutex_trylock): Likewise. - (__gthread_recursive_mutex_unlock): Likewise. - -2004-11-23 Ralf Corsepius - - * config/c4x/t-rtems: New. - * config.gcc: Reflect having added c4x/t-rtems. - -2004-11-23 Dorit Naishlos - - PR tree-opt/18403 - PR tree-opt/18505 - * tree-vectorizer.c (vect_create_data_ref_ptr): Use - lang_hooks.types.type_for_size instead of integer_type_node for the - type of ptr_update. - -2004-11-23 Ralf Corsepius - - * config.gcc (h8300-*-rtems*): Use h8300/t-rtems. - -2004-11-23 Ralf Corsepius - - * config/arm/t-rtems: New. - * config.gcc: Reflect having added arm/t-rtems. - -2004-11-23 Kazu Hirata - - * tree-cfg.c (tree_execute_on_growing_pred): New. - (tree_cfg_hooks): Add tree_execute_on_growing_pred. - * tree-flow.h: Add a prototype for - reserve_phi_args_for_new_edge. - * tree-phinodes.c (reserve_phi_args_for_new_edge): New. - (add_phi_arg): Don't resize a PHI array. - -2004-11-23 Ralf Corsepius - - * config.gcc: Add avr-*-rtems*. - * config/avr/t-rtems: New. - * config/avr/rtems.h: New. - -2004-11-22 Daniel Berlin - - * df.c (dataflow_set_a_op_b): Remove reslt parameter, since it's - always the same as op1. Use bitmap_ior_into and bitmap_and_into. - Add comment to function. - -2004-11-22 John David Anglin - - PR pch/14940 - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Define for __hppa__. - - PR rtl-optimization/14838 - * emit-rtl.c (get_first_nonnote_insn): Don't assume first insn is a - note. - (get_last_nonnote_insn): Don't assume last insn is a note. - -2004-11-22 Roger Sayle - - * fold-const.c (nondestructive_fold_binary_to_constant): Rename - to fold_binary_to_constant. - (nondestructive_fold_unary_to_constant): Likewise, rename to - fold_unary_to_constant. - (fold_relational_hi_lo): Update call to fold_binary_to_constant. - * tree.h (nondestructive_fold_binary_to_constant): Update prototype. - (nondestructive_fold_unary_to_constant): Likewise. - * tree-ssa-ccp.c (ccp_fold): Update calls to fold_unary_to_constant - and fold_binary_to_constant. - * tree-ssa-loop-niter.c (EXEC_BINARY, EXEC_UNARY): Delete macros. - (inverse, number_of_iterations_cond): Replace uses of EXEC_BINARY - and EXEC_UNARY with calls to fold_*nary_to_constant. - * tree-ssa-loop-ivopts.c (EXEC_BINARY, EXEC_UNARY): Delete macros. - (idx_find_step): Replace uses of EXEC_BINARY with calls to - fold_binary_to_constant. - -2004-11-22 Nick Clifton - - * sbitmap.c (sbitmap_union_of_preds): Remove redundant - initialisation of 'e'. - -2004-11-22 Roger Sayle - - * config/i386/i386.h (TARGET_USE_FANCY_MATH_387): New macro. - * config/i386/i386.c (override_options): Set MASK_NO_FANCY_MATH_387 - automatically for targets without TARGET_80387. - * config/i386/i386.md (sqrtsf2, sqrtsf2_1, sqrtsf2_i387, sqrtdf2, - sqrtdf2_1, sqrtdf2_i387, *sqrtextendsfdf2, sqrtxf2, - *sqrtextenddfxf2, *sqrtextendsfxf2, fpremxf4, fmodsf3, fmoddf3, - fmodxf3, fprem1xf4, dremsf3, dremdf3, dremxf3, *sindf2, *sinsf2, - *sinextendsfdf2, *sinxf2, *cosdf2, *cossf2, *cosextendsfdf2, - *cosxf2, sincosdf3, sincossf3, *sincosextendsfdf3, sincosxf3, - *tandf3_1, tandf2, *tansf3_1, tansf2, *tanxf3_1, tanxf2, - atan2df3_1, atan2df3, atandf2, atan2sf3_1, atan2sf3, atansf2, - atan2xf3_1, atan2xf3, atanxf2, asindf2, asinsf2, asinxf2, - acosdf2, acossf2, acosxf2, fyl2x_xf3, logsf2, logdf2, logxf2, - log10sf2, log10df2, log10xf2, log2sf2, log2df2, log2xf2, - fyl2xp1_xf3, log1psf2, log1pdf2, log1pxf2, *fxtractxf3, logbsf2, - logbdf2, logbxf2, ilogbsi2, *f2xm1xf2, *fscalexf4, expsf2, - expdf2, expxf2, exp10sf2, exp10df2, exp10xf2, exp2sf2, exp2df2, - exp2xf2, expm1df2, expm1sf2, expm1xf2, frndintxf2, rintdf2, - rintsf2, rintxf2, frndintxf2_floor, floordf2, floorsf2, - floorxf2, frndintxf2_ceil, ceildf2, ceilsf2, ceilxf2, - frndintxf2_trunc, btruncdf2, btruncsf2, btruncxf2, - frndintxf2_mask_pm, nearbyintdf2, nearbyintsf2, nearbyintxf2): - Simplify conditionals using TARGET_USE_FANCY_MATH_387. - -2004-11-22 Dale Johannesen - - * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Conditionalize - properly and comment. - -2004-11-22 James A. Morrison _vis, alignaddr_vis): New patterns. - -2004-11-22 Devang Patel - - * tree-if-conv.c (clean_predicate_lists): Clean all basic blocks. - -2004-11-22 Devang Patel - - * tree-if-conv.c (if_convertable_phi_p): Rename to ... - (if_convertible_phi_p): ... new name. - (if_convertable_modify_expr_p): Rename to ... - (if_convertible_modify_expr_p): ... new name. - (if_convertable_stmt_p): Rename to ... - (if_convertible_stmt_p): ... new name. - (if_convertable_bb_p): Rename to ... - (if_convertible_bb_p): ... new name. - (if_convertable_loop_p): Rename to ... - (if_convertible_loop_p): ... new name. - -2004-11-22 Eric Botcazou - - PR target/18444 - * configure.ac (threading): Accept 'posix95'. - * configure: Regenerate. - * config.gcc (i[34567]86-*-solaris2*): On Solaris up to 2.6, - include sol26.h and default to posix95 threads if have_pthread_h. - (sparc-*-solaris2*): Likewise. - * gthr.h: Include gthr-posix95.h if _PTHREADS95 is defined. - * gthr-posix95.h: New file. - * config/sol26.h: New file. - * doc/install.texi (--enable-threads): Document 'posix95'. - -2004-11-23 Ben Elliston - - * pointer-set.h (pointer_set_contains): Remove. - * pointer-set.c (pointer_set_contains): Likewise. - -2004-11-22 Dale Johannesen - - * calls.c (expand_call): Do not call preserve_temp_slots. - -2004-11-22 Kazu Hirata - - * tree-flow.h: Remove the prototype for remove_phi_arg. - Add a prototype for remove_phi_args. - * tree-phinodes.c (remove_phi_arg): Remove. - (remove_phi_args): New. - * tree-ssa.c (ssa_remove_edge): Call remove_phi_args instead - of remove_phi_arg. - - * cfg.c (unchecked_make_edge): Call execute_on_growing_pred - after making an edge. - (remove_edge): Call execute_on_shrinking_pred before removing - an edge. - (redirect_edge_succ): Call execute_on_growing_pred and - execute_on_shrinking_pred. - * cfghooks.c (execute_on_growing_pred): New. - (execute_on_shrinking_pred): Likewise. - * cfghooks.h (cfg_hooks): Add execute_on_growing_pred and - execute_on_shrinking_pred. - Add prototypes for execute_on_growing_pred and - execute_on_shrinking_pred. - * cfgrtl.c (rtl_cfg_hooks): Add NULL hooks to - execute_on_growing_pred and execute_on_shrinking_pred. - (cfg_layout_rtl_cfg_hook): Likewise. - * tree-cfg.c (tree_cfg_hooks): Likewise. - - * tree-cfg.c (tree_execute_on_shrinking_pred): New. - (tree_cfg_hooks): Use it. - * tree-ssa.c (ssa_remove_edge): Don't call remove_phi_args. - (ssa_redirect_edge): Don't call remove_phi_arg_num. - - * tree-phinodes.c (remove_phi_arg_num): Make it static. - * tree-flow.h: Remove the corresponding prototype. - - * tree-ssa.c (ssa_remove_edge): Remove. - * tree-flow.h: Remove the corresponding prototype. - * tree-cfg.c: Replace ssa_remove_edge with remove_edge. - * basic-block.h: Likewise. - * tree-if-conv.c: Likewise. - * tree-ssa-threadupdate.c: Likewise. - -2004-11-23 Ben Elliston - - * doc/cfg.texi (Maintaining the CFG): Use @ftable instead of - @table to list the BSI methods. Use individual @findex directives - instead of one with a comma-separated list of index entries. - -2004-11-22 Zdenek Dvorak - - PR tree-optimization/18529 - * fold-const.c (fold_to_nonsharp_ineq_using_bound): New function. - (simple_operand_p): Use STRIP_NOPS. Consider SSA names simple. - (fold): Call fold_to_nonsharp_ineq_using_bound. - * tree-ssa-loop-niter.c (simplify_replace_tree): New function. - (number_of_iterations_cond): Fold the expressions before futher - processing. - (tree_simplify_using_condition): Handle case when cond or expr is - an EQ_EXPR specially. - -2004-11-22 Daniel Berlin - - * tree-ssa.c (verify_ssa): SSA_OP_ALL_USES should be - SSA_OP_ALL_USES | SSA_OP_ALL_KILLS for verification purposes. - -2004-11-22 David Edelsohn - Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_return_in_memory): Test - TARGET_ALTIVEC_ABI. - (function_arg_boundary): Align 8 to 16 byte vectors like SPE. - Align 16 byte and larger vectors like Altivec. - (function_arg_advance): Pass any 16 byte vector like Altivec vector. - (function_arg): Same. - (rs6000_pass_by_references): Test TARGET_ALTIVEC_ABI. - -2004-11-22 Andrew Pinski - - PR tree-opt/18572 - * tree-sra.c (scalarize_init): Unshare the rhs before gimplifying - it. - -2004-11-22 Richard Henderson - - * function.c (assign_parm_setup_block): Revert 11-13 change to - forcably re-mode a (possibly BLKmode) hard register. - -2004-11-22 Eric Botcazou - - * config/sparc/sparc.c (mem_min_alignment): Check MEM_ALIGN. - -2004-11-22 David Edelsohn - - * config/rs6000/power4.md: Remove delay between dispatch and issue - associated with dispatch group slots 3 and 4. - * config/rs6000/power5.md: Same. - -2004-11-21 Jeff Law - - * cfg.c (cached_make_edge): Use find_edge rather than an inlined - variant. - * cfgbuild.c (make_edges): Likewise. - * cfghooks.c (can_duplicate_block_p): Likewise. - * cfgloop.c (loop_latch_edge): Likewise. - * cfgloopmanip.c (force_single_succ_latches): Likewise. - * cfgrtl.c (rtl_flow_call_edges_add): Likewise. - * predict.c (predict_loops, propagate_freq): Likewise. - * tracer.c (tail_duplicate): Likewise. - * tree-cfg.c (disband_implicit_edges): Likewise. - (tree_forwarder_block_p, tree_flow_call_edges_add): Likewise. - -2004-11-22 Nick Clifton - - * sbitmap.c (sbitmap_union_of_preds): Remove redundant - initialisation of 'e'. - -2004-11-22 Kazu Hirata - - PR rtl-optimization/18599 - * regrename.c (copyprop_hardreg_forward): Speed up by putting - BB_VISITED flags on basic blocks as we process them. - -2004-11-22 Nathan Sidwell - - PR target/18531 - * config/rs6000/altivec.md (VI_char): New mode attribute. - (addv16qi3, addv8hi3, addv4ai3): Replace with ... - (add3): ... this. - (subv16qi3, subv8hi3, subv4ai3): Replace with ... - (sub3): ... this. - (smaxv16qi3, smaxv8hi3, smaxv4ai3): Replace with ... - (smax3): ... this. - (sminv16qi3, sminv8hi3, sminv4ai3): Replace with ... - (smin3): ... this. - (umaxv16qi3, umaxv8hi3, umaxv4ai3): Replace with ... - (umax3): ... this. - (uminv16qi3, uminv8hi3, uminv4ai3): Replace with ... - (umin3): ... this. - (andv16qi3, andv8hi3, andv4ai3): Replace with ... - (and3): ... this. - (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ... - (ior3): ... this. - (xorv16qi3, xorv8hi3, xorv4ai3): Replace with ... - (xor3): ... this. - (andv16qi3, andv8hi3, andv4ai3): Replace with ... - (and3): ... this. - (iorv16qi3, iorv8hi3, iorv4ai3): Replace with ... - (ior3): ... this. - (altivec_vnor): Replace with ... - (altivec_nor): ... this. - (one_cmplv16qi2, one_cmplv8hi2, one_complv4ai2): Replace with ... - (one_cmpl2): ... this. - (altivec_vandc): New expander. - (*andc3): New insn. - * config/rs6000/rs6000.c (bdesc_2arg): Adjust for new insn names. - -2004-11-22 Dorit Naishlos - - PR tree-opt/18536 - * tree-vectorizer.c (make_loop_iterate_ntimes): Use type of niters when - creating iv instead of integer_type. - (vect_build_loop_niters): Remove redundant code. - (vect_transform_loop_bound): Removed (duplicates functionality of - make_loop_iterate_ntimes. - (vect_gen_niters_for_prolog_loop): Add documentation. Call - lang_hooks.types.type_for_size to create a type of the required size. - Use that type instead of integer_type. Remove redundant code. - (vect_update_niters_after_peeling): Use type of niters instead of - integer_type. - (vect_transform_loop): Unify handling of known and unknown loop bound - cases. Call make_loop_iterate_ntimes instead of - vect_transform_loop_bound. - -2004-11-22 Andrew Pinski - - PR target/18217 - * config/rs6000/t-darwin (LIB2FUNCS_EXTRA): Move darwin-fallback.c to - (LIB2ADDEH): Here. - -2004-11-22 Dorit Naishlos - - PR tree-opt/18544 - * tree-vectorizer.c (vect_analyze_data_refs): Fail if memtag not found. - -2004-11-22 Kazuhiro Inaoka - - * config.gcc: Use t-slibgcc-elf to build libgcc_s.so on - m32r*linux. - * config/m32r/t-linux (SHLIB_MAPFILES): Override to use - m32r/libgcc-glibc.ver. - * config/m32r/libgcc-glibc.ver: Add New file. - -2004-11-22 Nathan Sidwell - - * bitmap.h (struct bitmap_obstack): New obstack type. - (struct bitmap_head_def): Replace using_obstack with obstack - pointer. - (bitmap_default_obstack): New. - (bitmap_initialize): Make inline, does not do allocation. - (bitmap_release_memory): Remove. - (bitmap_obstack_initialize, bitmap_obstack_release): Declare. - (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc, - bitmap_obstack_free, bitmap_malloc_free): Declare. - (BITMAP_OBSTACK_ALLOC, BITMAP_GGC_ALLOC, BITMAP_XMALLOC): Adjust. - (BITMAP_FREE): Replace with ... - (BITMAP_OBSTACK_FREE): ... this. - (BITMAP_XFREE): Adjust. - (BITMAP_INIT_ONCE): Remove. - * bitmap.c (bitmap_obstack, bitmap_obstack_init, bitmap_free: Remove. - (bitmap_default_obstack): New. - (bitmap_elem_to_freelist): Adjust. - (bitmap_element_allocate): Adjust. Break initialization into ... - (bitmap_obstack_initialize): ... here. - (bitmap_release_memory): Replace with ... - (bitmap_obstack_release): ... this. - (bitmap_obstack_alloc, bitmap_malloc_alloc, bitmap_gc_alloc, - bitmap_obstack_free, bitmap_malloc_free): New. - (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Use - bitmap_initialize. - (bitmap_initialize): Move to bitmap.h. - * gengtype.c (open_base_files): Add obstack.h to ifiles. - * Makefile.in (BASIC_BLOCK_H, REGS_H): Add obstack.h. - * basic-block.h (INIT_REG_SET): Allocate from reg_obstack. - (INITIALIZE_REG_SET): Remove. - (FREE_REG_SET): Use BITMAP_OBSTACK_FREE. - (INIT_ONCE_REG_SET, MAX_REGNO_REG_SET): Remove. - (flow_obstack): Do not declare. - (reg_obstack): Declare. - * regs.h: Include obstack.h. - * tree-optimize.c (tree_rest_of_compilation): Initialize and - release bitmap obstack here. - * bb-reorder.c: #include regs, not basic-block. - (fix_crossing_conditional_branches): Allocate regsets from - reg_obstack. - * bt-load.c: Do not inlude bitmap.h, sbitmap.h, basic-block.h or - obstack.h. - * caller-save.c: Include regs.h earlier. - * cfg.c: Do not include basic-block.h or obstack.h. - (reg_obstack): Define. - * cfganal.c: Include obstack.h - * cfgcleanyp.c: Do not include basic-block.h. Include regs.h - earlier. - * cfglayout.c: Do not include obstack.h. - (flow_obstack): Remove declaration. - (cfg_layout_duplicate_bb): Use reg_obstack. - * cfgloop.c, cfgloopanal.c, cfgloopmanip.c: Include obstack.h. - * cfgrtl.c (rtl_split_block): Use reg_obstack. - (force_nonfallthru_and_redirect, rtl_split_edge): Likewise. - (safe_insert_insn_on_edge): Use OBSTACK_ALLOC_REG_SET, adjust. - (cfg_layout_split_edge): Use reg_obstack. - * cse.c: Include regs.h earlier. - * ddg.c: Do not include basic-block.h. - * dominance.c: Inlude obstack.h. - * flow.c (update_life_info): Use OBSTACK_ALLOC_REG_SET, adjust. - (calculate_global_regs_live): Likewise. - (allocate_bb_life_data): Use reg_obstack. - (init_propagate_block_info): Use OBSTACK_ALLOC_REGSET. - * global.c: Do not include basic-block.h. - (build_insn_chain): Use OBSTACK_ALLOC_REG_SET, adjust. - * graph.c: Include obstack.h. - * haifa-sched.c: Do not include basic-block.h. - * ifcvt.c: Use OBSTACK_ALLOC_REG_SET, adjust. - * local-alloc.c: Do not include basic-block.h. - * loop-init.c, loop-invariant.c: Include obstack.h. - * loop-iv.c: Likewise. - (simplify_using_initial_values): Use OBSTACK_ALLOC_REG_SET, - adjust. - * loop-unroll.c, loop-unswitch.c: Inlude obstack.h. - * modulo-sched.c: Do not include basic-block.h. - * passes.c (rest_of_handle_final): Do not call - regset_release_memory. - * ra-debug.c: Include regs.h earlier. Do not include - basic-block.h. - * recog.c (peephole2_optimize): Use OBSTACK_ALLOC_REG_SET, adjust. - * regclass.c (init_reg_sets): Do not call INIT_ONCE_REG_SET. - (allocate_reg_info): Do not call MAX_REGNO_REG_SET. - (regset_release_memory): Remove. - * resource.c: Do not include basic-block.h. - * rtlanal.c: Do not include basic-block.h. - * sbitmap.c: Include obstack.h. - * sched-deps.c: Do not include basic-block.h. - (reg_pending_sets_head, reg_pending_clobbers_head, - reg_pending_uses_head): Remove. - (init_deps_global): Use OBSTACK_ALLOC_REG_SET. - * sched-ebb.c: Do not include basic-block.h. - * sched-rgn.c: Likewise. - * tree-if-conv.c (get_loop_body_in_if_conv_order): Use - BITMAP_XFREE. - * tree-outof-ssa.c (perform_edge_inserts): Use BITMAP_XFREE. - * tree-sra.c (decide_instantiations): Adjust bitmap - initialization. - * tree-ssa-dce.c: Include obstack.h. - * tree-ssa-pre.c (grand_bitmap_obstack): Make a bitmap_obstack. - (value_insert_into_set_bitmap): Remove useless bitmap_clear. - (bitmap_set_new): Likewise. - (init_pre): Initialize bitmap obstack. - (fini_pre): Release bitmap obstack. - * tree-ssanames.c (ssa_names_to_rewrite): Make static. - (marked_for_rewrite_p): ssa_names_to_rewrite is never NULL. - (mark_for_rewrite, unmark_for_rewrite): Likewise. - (marked_ssa_names): Likewise. - (init_ssanames): Use BITMAP_XMALLOC. - (fini_ssanames): Use BITMAP_XFREE. - * web.c: Include obstack.h - -2004-11-22 Nick Clifton - - * sbitmap.c (sbitmap_union_of_preds): Set 'e' to the next edge - predecessor in the first for-loop. - -2004-11-21 Stan Shebs - - * config/rs6000/rs6000.c: (rs6000_darwin64_function_arg): Add - UNION_TYPE case. - (function_arg): Move darwin test up, sniff mode first for - efficiency, test for union type. - -2004-11-21 Dale Johannesen - - * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Define. - -2004-11-21 Jeff Law - - * tree-ssa.c (verify_use): Fix comment. - (verify_phi_args): Check that the number of incoming edges matches - the number of PHI arguments. Check that each PHI argument is - either an SSA_NAME or an invariant. Coalesce tests for PHIs for - dead or duplicated edges. Clear e->aux earlier and avoid separate - loop to clear e->aux and test for missed edges. - (verify_ssa): Remove first walk over statements. Move checking - of PHI args into verify_phi_args. Move checking of statements - with aliased stores and V_MAY_DEFS into the remaining loop over - the statements. Register defs by walking through the formal - SSA_NAME table. - -2004-11-21 Roger Sayle - - PR middle-end/18520 - * dojump.c (compare_from_rtx): Clarify mode argument in function - description. Correct order of mode/cmp_mode arguments in call to - simplify_relational_operation. Check "tem" for COMPARISON_P. - -2004-11-21 Paolo Bonzini - David Edelsohn - - PR target/17836 - * config/rs6000/rs6000.c (rs6000_return_in_memory): Return - synthetic vectors in memory. - (function_arg_boundary): Align large synthetic vectors. - (rs6000_pass_by_reference): Pass synthetic vectors in memory. - -2004-11-21 Jeff Law - - * cfg.c (update_bb_profile_for_threading): Do not rescale the - successor probabilities if they are not going to change. Pull - division out of loop if we do need to rescale successor probabilities. - - * tree-ssa-threadupdate.c (redirection_data_hash): Use the - index of the destination block for the hash value rather than - hashing a pointer. - -2004-11-20 Joseph S. Myers - - * c-typeck.c (build_array_ref): Don't check for index == 0. Make - checks for neither argument being an array or pointer (swapping - the arguments if necessary), the array argument being a pointer to - or array of functions and for -Wchar-subscripts warnings upfront. - -2004-11-20 Jeff Law - - * regrename.c (copyprop_hardreg_forward): Only search for a - previously processed block if the current block only has one - predecessor. - -2004-11-20 Kazu Hirata - - * tree-ssa-threadupdate.c, tree-vectorizer.c: Fix comment - typos. - * config/arm/arm.c: Follow spelling conventions. - -2004-11-20 Richard Earnshaw - - * arm.c (arm_override_options): Use arm_ld_sched rather than testing - a bit in tune_flags. - (const_double_needs_minipool): Likewise. Split most of the code out - into ... - (arm_const_double_inline_cost): ... new function here. - * arm-protos.h (arm_const_double_inline_cost): Add prototype. - * arm.h (EXTRA_CONSTRAINT_STR_ARM): Add D[abc] constraints for double- - word constants of length 2, 3 and 4 insns respectively. - (CONSTRAINT_LEN): The 'D' prefix is a 2-letter constraint. - * arm.md (arm_movdi, movdf_soft_insn): Add alternatives for D[abc] - constraints. Set insn lenghts accordingly. - -2004-11-19 Jeff Law - - * tree-ssa-threadupdate.c: Replace REDIRECTION_DATA varray with - a hash table. Extensive modifications throughout to support - that change. - (struct el): New. - (struct local_info): New. - (struct redirection_data): Add new INCOMING_EDGES and DO_NOT_DUPLICATE - fields. - (redirection_data): Now a hashtable. - (redirection_data_hash, redirection_data_eq): New. - (lookup_redirection_data, create_duplicates): New. - (create_edge_and_update_destionation_phis): New. - (fixup_template_block, redirect_edges): New. - (thread_block): Use hash table traversals instead of loops over - varray entries or incoming edge vectors. - -2004-11-19 Kazu Hirata - - * basic-block.h (edge_def): Add dest_idx. - * cfg.c (unchecked_make_edge): Initialize dest_idx. - (remove_edge): Simplify the disconnection of an edge from its - destination. - (redirect_edge_succ): Likewise. - * cfghooks.c (verify_flow_info): Check the consistency of - dest_idx for each edge. - -2004-11-19 Aldy Hernandez - - * simplify-rtx.c (simplify_ternary_operation): Use - gen_int_mode. - -2004-11-19 Kazu Hirata - - * tree-cfg.c (reinstall_phi_args): New. - (tree_split_edge): Use it after redirecting an edge. Don't - modify PHI_ARG_EDGE. - -2004-11-19 Andreas Tobler - - * tree-vectorizer.c (slpeel_verify_cfg_after_peeling): Define only - if checking is enabled. - -2004-11-19 Joseph S. Myers - - * c-decl.c (push_scope): Remove "\n" from end of diagnostic for - too many nested scopes. - -2004-11-19 Dorit Naishlos - - PR tree-opt/18181 - * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Peeling scheme - changed to suppoer uses-after-loop and to void creating flow paths - that shouldn't exist. - (slpeel_update_phi_nodes_for_guard): Takes additional two arguments. - Modified to fit the new peeling scheme. Avoid quadratic behavior. - (slpeel_add_loop_guard): Takes additional argument. - (slpeel_verify_cfg_after_peeling): New function. - (vect_update_ivs_after_vectorizer): Takes additional argument. Updated - documentation. Use 'exit-bb' instead of creating 'new-bb'. - (rename_variables_in_bb): Don't update phis for BBs out of loop, to fit - the new peeling scheme. - (copy_phi_nodes): Function removed. Its functionality moved to - update_phis_for_duplicate_loop. - (slpeel_update_phis_for_duplicate_loop): Functionality of copy_phi_nodes - moved here. Added documentation. Modified to fit the new peeling scheme. - (slpeel_make_loop_iterate_ntimes): Setting loop->single_exit not not - needed - done in slpeel_tree_peel_loop_to_edge. - (slpeel_tree_duplicate_loop_to_edge_cfg): Debug printouts compacted. - (vect_do_peeling_for_loop_bound): Add documentation. Call - slpeel_verify_cfg_after_peeling. Call vect_update_ivs_after_vectorizer - with additional argument. - (vect_do_peeling_for_alignment): Call slpeel_verify_cfg_after_peeling. - - (vect_finish_stmt_generation): Avoid 80 column oveflow. - -2004-11-19 Dorit Naishlos - - * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Last two - arguments removed. - (slpeel_tree_peel_loop_to_edge): Call slpeel_make_loop_iterate_ntimes - without last two arguments. Update single_exit of loops. - (vect_update_niters_after_peeling): Removed. Its functionality was - moved to vect_do_peeling_for_alignment. - (vect_do_peeling_for_loop_bound): New name for function previously - called vect_transform_for_unknown_loop_bound. - (vect_transform_loop_bound): Call slpeel_make_loop_iterate_ntimes - instead of code that duplicates the same functionality. - (vect_do_peeling_for_alignment): Functionality of - vect_update_niters_after_peeling moved here. - (vect_transform_loop): Unify call to vect_do_peeling_for_loop_bound - - previously named vect_transform_for_unknown_loop_bound - for both known - and unknown loop bound cases. - -2004-11-19 Dorit Naishlos - - * tree-vectorizer.c (slpeel_can_duplicate_loop_p): New name for function - previously called verify_loop_for_duplication. All conditions compacted - into one compound condition. Removed debug dumps. - (vect_analyze_loop_with_symbolic_num_of_iters): Removed. Some of the - functionality moved to vect_can_advance_ivs_p, and some to - vect_analyze_loop_form. - (vect_can_advance_ivs_p): New function. Contains functionality that was - taken out of vect_analyze_loop_with_symbolic_num_of_iters. - (slpeel_tree_peel_loop_to_edge): Call slpeel_can_duplicate_loop_p. - (vect_analyze_operations): Call vect_can_advance_ivs_p and - slpeel_can_duplicate_loop_p. - (vect_get_loop_niters): Added documentation. - (vect_analyze_loop_form): Check the loop entry always - not only in case - of unknown loop bound. Create preheader and exit bb if necessary. Apply - a check that used to take place in - vect_analyze_loop_with_symbolic_num_of_iters. - (vectorize_loops): Call verify_loop_closed_ssa under ENABLE_CHECKING. - Remove redundant call to rewrite_into_loop_closed_ssa. - (vect_compute_data_refs_alignment): Removed obsolete comment. - -2004-11-19 Dorit Naishlos - - * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): New name for - function previously called tree_duplicate_loop_to_edge. - (slpeel_tree_duplicate_loop_to_edge_cfg): New name for function - previously called tree_duplicate_loop_to_edge_cfg. - (slpeel_update_phis_for_duplicate_loop): Prefix 'slpeel' added to - function name. - (slpeel_update_phi_nodes_for_guard): Likewise. - (slpeel_make_loop_iterate_ntimes): Likewise. - (slpeel_add_loop_guard): Likewise. - (allocate_new_names, free_new_names): Function declaration moved to top - of file. - (rename_use_op, rename_def_op): Likewise. - (rename_variables_in_bb, rename_variables_in_loop): Likewise. - (vect_generate_tmps_on_preheader): Function declaration moved. - (vect_transform_for_unknown_loop_bound): Added missing function - declaration. - -2004-11-19 Andrew Pinski - - PR tree-opt/18507 - * tree-flow.h (tree_on_heap): Typedef because there is already a VEC(tree). - Define a VEC(tree_on_heap) for head. - (register_new_def): Change second argument to be a VEC(tree_on_heap). - * tree-ssa-dom.c (block_defs_stack): Change to be a VEC(tree_on_heap). - (tree_ssa_dominator_optimize): Initialize block_defs_stack with - the VEC(tree_on_heap) function. Also free it before returning. - (dom_opt_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE - for block_defs_stack. - (restore_currdefs_to_original_value): Use VEC_length instead of - VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP. - (dom_opt_finalize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE - for block_defs_stack. - * tree-into-ssa.c (block_defs_stack): Change to be a VEC(tree_on_heap). - (rewrite_initialize_block): Use VEC_safe_push instead of VARRAY_PUSH_TREE - for block_defs_stack. - (ssa_register_new_def): Likewise. - (ssa_rewrite_initialize_block): Likewise. - (rewrite_finalize_block): Use VEC_length instead of - VARRAY_ACTIVE_SIZE. VEC_pop instead of VARRAY_TOP_TREE/VARRAY_POP. - (ssa_rewrite_finalize_block): Likewise. - (register_new_def): Change second argument to be a VEC(tree_on_heap). - Use VEC_safe_push instead of VARRAY_PUSH_TREE. - (rewrite_blocks): Initialize block_defs_stack with - the VEC(tree_on_heap) function. Also free it before returning. - (rewrite_ssa_into_ssa): Likewise. - -2004-11-19 Fariborz Jahanian - - * config/darwin.c (machopic_data_defined_p): return 1 for - MACHOPIC_DEFINED_FUNCTION. - -2004-11-19 Jeff Law - - * tree-ssa.c (verify_ssa): Remove redundant checking of PHI - arguments. - -2004-11-19 Paul Brook - - PR target/17735 - * varasm.c (default_assemble_integer): Allow pointer-sized values. - Expand comment. - -2004-11-19 Nick Clifton - - * config/stormy16/stormy16.c (combine_bnp): Add code to handle - zero_extension and lshiftrt insns. - Replace uses of XEXP(...) with either SET_DEST() or SET_SRC() - where appropriate. - * config/stormy16.stormy16.md (bclrx3, bsetx3): New patterns - to handle bp and bn insn patterns with a zero_extend rtx - inside them. - -2004-11-19 Ian Lance Taylor - - * config/arm/arm.md (generic_sched): Make const. - -2004-11-19 Kazu Hirata - - * emit-rtl.c (classify_insn): Make it static. - * rtl.h: Remove the corresponding prototype. - - * integrate.c (has_func_hard_reg_initial_val, - get_func_hard_reg_initial_val): Make them static. - * integrate.h: Remove the corresponding prototypes. - -2004-11-19 Ben Elliston - - * dwarf2asm.h (dw2_asm_output_pcel): Stub out with #if 0. - (dw2_asm_output_delta_sleb128): Likewise. - * dwarf2asm.c (dw2_asm_output_pcrel): Likewise. - (dw2_asm_output_delta_sleb128): Likewise. - -2004-11-19 Adam Nemet - - * tree-ssa-alias.c: Fix comment. - -2004-11-19 Kazu Hirata - - * tree-outof-ssa.c: Fix a comment typo. - -2004-11-19 Ben Elliston - - * predict.h (predict_insn): Remove extern declaration. - * predict.c (predict_insn): Make static. - -2004-11-19 Alan Modra - - * config/rs6000/rs6000.c (function_arg): Don't return BLKmode regs. - -2004-11-18 Nicolas Pitre - - * config/arm/arm.c (const_double_needs_minipool): New function to - determine if a CONST_DOUBLE should be pushed to the minipool. - (note_invalid_constants): Use it. - -2004-11-18 Paul Brook - - * config/arm/arm.c (target_float_switch): New variable.. - (arm_override_options): Use TARGET_DEFAULT_FLOAT_ABI and - target_float_switch. - * config/arm/arm.h (target_float_switch): Declare. - (ARM_FLAG_SOFT_FLOAT): Remove. - (TARGET_SWITCHES): Remove hard-float and soft-float. - (TARGET_OPTIONS): Add hard-float and soft-float. - (TARGET_DEFAULT_FLOAT_ABI): Define. - * config/arm/coff.h (TARGET_DEFAULT_FLOAT_ABI): Define - (TARGET_DEFAULT): Don't use ARM_FLAG_SOFT_FLOAT. - * config/arm/elf.h: Don't use ARM_FLAG_SOFT_FLOAT. - * config/arm/netbsd-elf.h: Ditto. - * config/arm/netbsd.h: Ditto. - * config/arm/pe.h: Ditto. - * config/arm/unknown-elf.h: Ditto. - * config/arm/wince-pe.h: Ditto. - * config/arm/linux-elf.h (TARGET_DEFAULT_FLOAT_ABI): Define. - * config/arm/semi.h (TARGET_DEFAULT_FLOAT_ABI): Define. - * config/arm/semiaof.h (TARGET_DEFAULT_FLOAT_ABI): Define. - -2004-11-18 Nathan Sidwell - - * config/rs6000/altivec.md (VI, VF, V): New mode macros. - (altivec_lvx_4si, altivec_lvx_8hi, altivec_lvx_16qi, - altivec_lvx_4sf): Rename and replace with ... - (altivec_lvx_): ... mode macro version. - (altivec_stvx_4si, altivec_stvx_8hi, altivec_stvx_16qi, - altivec_stvx_4sf): Rename and replace with ... - (altivec_stvx_): ... mode macro version. - (movv4si, movv8hi, movv16qi, movv4sf}): Replace with ... - (mov): ... mode macro version. - (*movv4si_internal, *movv8hi_internal1, *movv16qi_internal1, - *movv4sf_internal1): Replace with ... - (*mov_internal): ... mode macro version. - (get_vrsave_internal, *set_vrsave_internal, *save_world, - *restore_world): Unquote output statements. - * config/rs6000/rs6000.c (altivec_expand_ld_builtin, - altivec_expand_st_builtin): Adjust insn names. - -2004-11-18 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_complex_function_value): Revert - previous change. - (rs6000_override_options): Likewise. - (spe_build_register_parallel): Handle complex doubles on e500v2. - (rs6000_spe_function_arg): Likewise. - (function_arg): Likewise. - (rs6000_function_value): Likewise. - (rs6000_libcall_value): Likewise. - -2004-11-18 Andrew Pinski - - * ifcvt.c (find_if_block): Move the check for the number of edges - above the loops checking for complex edges. - Remove the counting of edges as we use EDGE_COUNT now. - -2004-11-18 Kazuhiro Inaoka - - * config/m32r/linux.h (TARGET_ASM_FILE_END): Set - TARGET_ASM_FILE_END to file_end_indicate_exec_stack.3 - -2004-11-18 Andreas Schwab - - * config/i386/i386.md (define_peephole2): Revert last change. - -2004-11-18 Kazuhiro Inaoka - - * config/m32r/linux.h (TARGET_ASM_FILE_END): Set - TARGET_ASM_FILE_END to file_end_indicate_exec_stack. - -2004-11-18 Diego Novillo - - * tree-ssa-propagate.c (ssa_prop_init): Use FOR_ALL_BB instead - of FOR_EACH_BB. - -2004-11-18 Jon Grimm - - * Makefile.in (macro_list): Depend on s-macro_list. - (s-macro_list): New target. - -2004-11-18 Nathan Sidwell - - PR target/17107 - * fold-const.c (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ... - (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here. - (fold_range_test): Adjust. - (fold_truthop): Use it. - * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Rename to ... - (LOGICAL_OP_NON_SHORT_CIRCUIT): ... here. - -2004-11-18 Uros Bizjak - - * configure/i386/i386.md (*fix_trunch_1): Add "&& 1" to - insn split constraint. - (define_peephole2): Remove unneeded "&& 1" from peephole2 - constraints. - -2004-11-18 Ben Elliston - - * doc/cfg.texi (Maintaining the CFG): Remove duplicated @item - element for bsi_prev; use @findex instead. - -2004-11-18 Ben Elliston - - * opts.h (add_input_filename): Remove extern declaration. - * opts.c (add_input_filename): Make static. - -2004-11-17 Mark Mitchell - - * config/i386/i386.c (i386_solaris_elf_named_section): Mark with - ATTRIBUTE_UNUSED. - -2004-11-17 Zack Weinberg - - * defaults.h, config/darwin.h: Don't define TARGET_SUPPORTS_HIDDEN. - * system.h: Poison it. - * doc/tm.texi: Delete its documentation. - -2004-11-18 Daniel Jacobowitz - Mark Mitchell - - * config/i386/sol2-10.h, config/i386/t-sol2-10: New files. - * config/i386/i386.c (i386_solaris_elf_named_section): New - function. - * config.gcc (i[34567]86-*-solaris2*): Handle Solaris 2.10. - * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Handle - 64-bit. - (ASM_QUAD): Don't undefine for biarch targets. - * config/i386/t-sol2: Introduce multilib support. - -2004-11-18 Ben Elliston - - * cgraphunit.c: Replace "it's" with "its" and fix a typo. - -2004-11-18 Ben Elliston - - * cgraph.h: Replace "it's" with "its" throughout. - -2004-11-18 Ben Elliston - - * doc/rtl.texi (Flags): Grammar fix. - -2004-11-17 Kazu Hirata - - * expmed.c (alg_code): Add alg_unknown. - (alg_hash_entry): New. - (NUM_ALG_HASH_ENTRIES): Likewise. - (alg_hash): Likewise. - (synth_mult): Cache the result into alg_hash. - -2004-11-17 Zack Weinberg - - * config/rs6000/t-darwin: Augment SHLIB_MAPFILES with - config/rs6000/libgcc-ppc64.ver. - -2004-11-17 Kazu Hirata - - * cfgrtl.c (rtl_verify_flow_info): Don't use INSN_P when - checking if an unconditional return is followed by a barrier. - - * jump.c (condjump_p): Remove unreachable code. - - * basic-block.h, c-common.h, df.h, expr.h, output.h, rtl.h, - tree-chrec.h, tree-flow.h, tree-scalar-evolution.h, - tree-ssa-live.h, tree.h: Remove unused prototypes. - -2004-11-17 Jeff Law - - * tree-cfg.c (edge_to_cases): Renamed from edge_to_case_leader. - (edge_to_cases_elt): Renamed from edge_to_case_leader. - (edge_to_cases_hash): Renamed from edge_to_case_leader_hash. - (edge_to_cases_eq): Renamed from edge_to_case_leader_eq. - (edge_to_cases_cleanup, recording_case_labels_p): New functions. - (get_cases_for_edge): New function. - (start_recording_case_labels, end_recording_case_labels): Similarly. - (record_switch_edge): Don't muck with the CASE_LABEL. Instead - chain equivalent CASE_LABEL_EXPRs together. - (get_case_leader_for_edge, get_case_leader_for_edge_hash): Kill. - (make_switch_expr_edges): Do not record edge/cases here. - (cleanup_tree_cfg): Record cases around the call to thread_jumps. - (split_critical_edges): Record cases around the edge splitting code. - (cleanup_dead_labels): Use CASE_LABEL again. - (tree_redirect_edge_and_branch): If we have a mapping from edge - to cases, use it to handle redirections. Else do it the slow way. - * tree.h (CASE_LEADER_OR_LABEL): Kill. - (CASE_LABEL): Revert to just looking at the tree's second operand. - * tree.c (get_case_label): Kill. - -2004-11-17 Diego Novillo - - PR tree-optimization/18307 - * tree-ssa-alias.c (merge_pointed_to_info): ICE if 'dest' and - 'orig' are the same node. - (collect_points_to_info_r): Do not call merge_pointed_to_info - when the PHI argument is identical to the LHS. - -2004-11-17 Steven Bosscher - - * tree-ssa-propagate.c (cfg_blocks_add): Assert we're not trying - to insert the exit or entry block. - (ssa_prop_init): Use add_control_edge to seed the algorithm. - -2004-11-16 Zack Weinberg - - * mkmap-flat.awk, mkmap-symver.awk: If the last version - assigned to a symbol was '%exclude', do not emit it anywhere. - If leading_underscore is true, prefix all symbols from the - version scripts with a leading underscore before comparing - them with nm output or emitting them. Remove support for dot - symbols. - * config/t-slibgcc-darwin (SHLIB_LINK): Use mkmap-flat.awk. - (SHLIB_MAPFILES): Use libgcc-std.ver. - (SHLIB_MKMAP_OPTS): Enable leading-underscore mode. - (SHLIB_LINK): Add -Wl,-exported_symbols_list,$(SHLIB_MAP). - * config/sh/t-linux: Use the normal libgcc-std.ver, plus - libgcc-excl.ver and libgcc-glibc.ver. - - * config/sh/libgcc-excl.ver: New file. - * config/sh/libgcc-std.ver, libgcc-darwin.ver: Delete. - -2004-11-16 Daniel Berlin - - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Swap - the test when the edge has the opposite meaning, not when - the first argument is invariant. - -2004-11-16 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_override_options): Split e500v2 - doubles. - (rs6000_complex_function_value): Handle e500 v2 variant. - -2004-11-16 Daniel Berlin - - Fix PR tree-optimization/18519 - - * tree-optimize (execute_todo): Add case for TODO_cleanup_cfg. - * tree-pass.h: Add TODO_cleanup_cfg. - * tree-ssa-ccp.c (pass_ccp): Use TODO_cleanup_cfg. - (ccp_finalize): Remove call to cleanup_cfg. - * tree-ssa-dce.c (pass_dce): Use TODO_cleanup_cfg and TODO_dump_func. - (pass_cd_dce): Ditto. - (perform_tree_ssa_dce): Remove call to cleanup_cfg, - dump_function_to_file. - * tree-ssa-loop-ch.c (copy_loop_headers): Remove call - to cleanup_cfg. - (pass_ch): Add TODO_cleanup_cfg. - * tree-ssa-loop.c (tree_ssa_loop_done): Remove call to - cleanup_cfg. - (pass_loop_done): Add TODO_cleanup_cfg. - * tree-ssa-phiopt.c (pass_phiopt): Ditto. - (tree_ssa_phiopt): Remove call to cleanup_cfg. - -2004-11-16 Devang Patel - - * optabs.c (vector_compare_rtx): Fix COMPARISON_CLASS_P use. - -2004-11-16 Kazu Hirata - - * expmed.c, ra-colorize.c: Fix comment typos. - - * doc/tm.texi: Fix typos. - -2004-11-16 Daniel Jacobowitz - Mark Mitchell - - PR target/6123 - * config/sol2.h (TARGET_OS_CPP_BUILTINS): Define __PIC__ and - __pic__ if PIC. - -2004-11-16 Ulrich Weigand - - * regmove.c (regmove_optimize): Use lowpart_subreg instead of - gen_rtx_SUBREG with incorrect offset to compute SRC_SUBREG. - -2004-11-16 Devang Patel - - * tree-if-conv.c (clean_predicate_lists): Update gcc_assert check. - -2004-11-16 Eric Christopher - - * config/mips/mips.c: Use rtl _P predicates. - * config/mips/mips.h: Ditto. - * config/mips/mips.md: Ditto. - -2004-11-16 Fariborz Jahanian - - * config/rs6000/altivec.md (altivec_vandc): Canonicalize - the pattern. - -2004-11-16 Andreas Krebbel - - * config/s390/s390.c (s390_cc_modes_compatible): New function. - (TARGET_CC_MODES_COMPATIBLE): Target macro defined. - -2004-11-16 Kaz Kojima - - PR target/18447 - * config/sh/sh.c (prepare_move_operands): Emit blockage insns - before and after the insns for getting GOT address in non-PIC - TLS_MODEL_INITIAL_EXEC tls sequence when the first scheduling - is enabled. - -2004-11-16 Andreas Krebbel - - * gcc/cse.c (struct change_cc_mode_args): New structure. - (cse_change_cc_mode_insn): New function. - (cse_change_cc_mode): Use validate_change to perfom changes. - (cse_change_cc_mode_insns, cse_condition_code_reg): - Call cse_change_cc_mode_insn. - -2004-11-16 Steven Bosscher - - * stack.h: Remove. - -2004-11-16 Steven Bosscher - - * config/i386/i386.c (x86_schedule): Fix typo, m_K6 intead of m_K8. - -2004-11-15 Dale Johannesen - - * tree-flow.h (add_referenced_temp_var): Remove name from prototype. - -2004-11-15 Dale Johannesen - - * profile.c (compute_branch_probabilities): Prevent - crash with EH in RTL-based profiling. - -2004-11-16 Kazu Hirata - - * tree-cfg.c (verify_expr): Replace TREE_OPERAND with - COND_EXPR_COND. - * tree-if-conv.c (tree_if_convert_cond_expr): Likewise. - * tree-ssa-dom.c (thread_across_edge): Likewise. - * tree-vectorizer.c (vect_transform_loop_bound): Replace - TREE_OPERAND with COND_EXPR_COND, COND_EXPR_THEN, or - COND_EXPR_ELSE. - - * tree-cfg.c (bsi_commit_edge_inserts): Remove an argument. - (tree_flow_call_edges_add): Update the call to - bsi_commit_edge_inserts. - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. - * profile.c (branch_prob): Likewise. - * tree-mudflap.c (mf_decl_cache_locals): Likewise. - * tree-sra.c (scalarize_function): Likewise. - * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. - * tree-ssa-pre.c (fini_pre): Likewise. - * tree-flow.h: Update the prototype for - bsi_commit_edge_inserts. - -2004-11-15 Eric Christopher - - * sched-deps.c (set_sched_group_p): Delete. - (delete_all_dependencies): New function. - (fixup_sched_groups): Use. New function. - (sched_analyze_insn): Use. - -2004-11-15 Joseph S. Myers - - * c-common.c (binary_op_error): Don't allow LROTATE_EXPR, - RROTATE_EXPR or unknown code. - * c-typeck.c (build_binary_op): Don't allow RROTATE_EXPR, - LROTATE_EXPR, MAX_EXPR, MIN_EXPR, UNORDERED_EXPR, ORDERED_EXPR, - UNLT_EXPR, UNLE_EXPR, UNGT_EXPR, UNGE_EXPR, UNEQ_EXPR, LTGT_EXPR - or unknown code. - -2004-11-15 Joseph S. Myers - - PR c/18498 - * c-decl.c (grokdeclarator): Call check_bitfield_type_and_width - after processing the declarator. - -2004-11-15 Aldy Hernandez - - * config/rs6000/altivec.md ("altivec_vsplth"): Rewrite with - vec_duplicate. - (altivec_vspltb): Same. - (altivec_vspltw): Same. - (altivec_vspltisb): Same. - (altivec_vspltish): Same. - (altivec_vspltisw): Same. - (altivec_vspltisw_v4sf): Same. - (define_constants): Remove UNSPEC_VSPLTISB, UNSPEC_VSPLTISW, - UNSPEC_VSPLTISH. - Move "End of vector xor's" comment to the right place. - -2004-11-15 Steve Ellcey - - * config/ia64/ia64.md (*movtf_internal): Use destination_operand - instead of nonimmediate_operand. - -2004-11-15 Mark Mitchell - - * config/i386/sol2.h (ASM_OUTPUT_CALL): Use print_operand. - * config/sparc/sol2.h (ASM_OUTPUT_CALL): Likewise. - * config/sol2.c (solaris_output_init_fini): Update calls to - ASM_OUTPUT_CALL. Include "rtl.h". - -2004-11-15 Mark Mitchell - - * config/sol2-c.c (cmn_err_char_table): Add "p". - -2004-11-15 Mark Mitchell - - * config/sparc/sol2.h (SUPPORTS_INIT_PRIORITY): Remove. - * config/sol2.h (SUPPORTS_INIT_PRIORITY): Define here. - -2004-11-15 Mark Mitchell - - * config/t-slibgcc-sld (SHLIB_LINK): Make symlinks entirely - within the multilib directory. - -2004-11-15 Nick Clifton - - * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Add - builtin assert of cpu=xstormy16. - -2004-11-15 Nathan Sidwell - - * tree-ssa-pre.c (bitmap_print_value_set): Fix uninitialized - variable. - -2004-11-14 Richard Henderson - - PR 18480 - * calls.c (struct arg_data): Add parallel_value. - (precompute_register_parameters): Set it. - (load_register_parameters): Use it. - (store_one_arg): Also set it here. - -2004-11-14 Zdenek Dvorak - - PR tree-optimization/18431 - * fold-const.c (associate_trees): Do not produce x + 0. - (fold_widened_comparison, fold_sign_changed_comparison): New functions. - (fold): Use them. - * tree-ssa-loop-niter.c (upper_bound_in_type, lower_bound_in_type): - Moved ... - * tree.c (upper_bound_in_type, lower_bound_in_type): Here. - * tree.h (upper_bound_in_type, lower_bound_in_type): Declare. - -2004-11-14 Eric Botcazou - - * doc/rtl.texi (SUBREG): Adjust BYTENUM value in example. - -2004-11-14 Kazu Hirata - - * cfgrtl.c, global.c, tree-ssa-copy.c, tree-ssa-loop-ivopts.c, - value-prof.c: Fix comment typos. - -2004-11-14 Stan Shebs - - Basic ABI changes for passing structs by value in 64-bit Darwin. - * config/rs6000/rs6000.c (rs6000_darwin64_abi): New flag. - (rs6000_override_options): Set it for 64-bit Darwin. - (rs6000_parse_abi_options): Add testing options to change it. - (rs6000_return_in_memory): Test whether the type is one - that can be passed in registers. - (darwin64_function_arg_advance): New. - (function_arg_advance): Call it, plus add recursion depth - argument and test when counting off arguments. - (rs6000_darwin64_function_arg): New. - (function_arg): Call it. - (setup_incoming_varargs): Add argument to function_arg_advance. - (rs6000_darwin64_function_value): New. - (rs6000_function_value): Call it. - * config/rs6000/rs6000.h (FUNCTION_ARG_ADVANCE): Pass depth arg. - * config/rs6000/rs6000-protos.h: Update decl of - function_arg_advance. - -2004-11-14 Andrew Pinski - - PR c/17279 - * c-common.c (c_common_nodes_and_builtins): Ask the back-end if we - support TImode before adding __int128_t and __uint128_t types. - -2004-11-14 Dorit Naishlos - - PR tree-opt/18400 - * tree-vectorizer.c (make_loop_iterate_ntimes): Set loop->nb_iterations. - (vect_transform_loop_bound): Set loop->nb_iterations. - -2004-11-14 Dorit Naishlos - Andrew Pinski - - PR tree-opt/18425 - * tree-vectorize.c (vect_build_loop_niters): Do not insert - NULL into the instruction stream. Initialize new_bb to NULL. - (vect_update_ivs_after_vectorizer): Likewise. - (vect_gen_niters_for_prolog_loop): Likewise. - -2004-11-14 Zdenek Dvorak - - PR tree-optimization/18431 - * tree-flow.h (stmt_references_memory_p): Declare. - * tree-ssa-loop-im.c (stmt_cost): Use stmt_references_memory_p. - * tree-ssa.c (stmt_references_memory_p): New function. - -2004-11-14 Andreas Schwab - - * Makefile.in (lambda-code.o, tree-loop-linear.o): Depend on - $(EXPR_H). - -2004-11-14 Kazu Hirata - - * c-common.c (walk_stmt_tree): Remove. - * c-common.h: Remove the corresponding prototype. - - * emit-rtl.c (push_to_full_sequence): Remove. - * rtl.h: Remove the corresponding prototype. - - * cselib.c, expr.c: Fix comment typos. - -2004-11-13 Richard Henderson - - * calls.c (precompute_register_parameters): Force all PARALLELs - into pseudo registers. - (load_register_parameters): Copy PARALLELs into hard registers. - * function.c (assign_parm_setup_block): Copy PARALLELS into - pseudo registers. Do emit_group_store in conversion_insns. - * expr.c (emit_group_load_1): Rename from emit_group_load, take - tmps as an argument. Move final copy loop ... - (emit_group_load): ... here. New function. - (emit_group_load_into_temps, emit_group_move_into_temps): New. - * expr.h: Declare them. - -2004-11-14 Kazu Hirata - - * tree-cfg.c, tree-if-conv.c, tree-ssa-loop-ivopts.c, - tree-ssa-loop-manip.c, tree-vectorizer.c: Replace TREE_CHAIN - with PHI_CHAIN where appropriate. - -2004-11-13 Dale Johannesen - - * tree-flow.h (bsi_commit_one_edge_insert): Remove name from prototype. - (tree_block_label): Ditto. - (flush_pending_stmts): Ditto. - (insert_edge_copies): Ditto. - (expr_invariant_in_loop_p): Ditto. - (TDF_USE_OPS): Parenthesize definition. - (TDF_USE_VOPS): Ditto. - -2004-11-13 David Edelsohn - - * config/rs6000/aix51.h (ASM_CPU_SPEC): Add 970 and G5. - * config/rs6000/aix52.h (ASM_CPU_SPEC): Same. - (atoll): Declare. - * config/rs6000/t-aix52 (BOOT_LDFLAGS): Define. - -2004-11-14 Joseph Myers - - * config/i386/i386.c (override_options): Move loop to set default - tuning to correct place. - -2004-11-13 Zak Kipling - - PR target/18300 - * config/i386/i386.c (classify_argument): Fix infinite loop when - passing object with 3 or more base classes by value. - -2004-11-13 Eric Botcazou - - * doc/md.texi (constraints) <% modifier>: Mention that it is - useless when the two alternatives are strictly identical. - -2004-11-13 Richard Henderson - - * expmed.c (extract_split_bit_field): Temporarily disable call to - extract_force_align_mem_bit_field. - -2004-11-13 Kazu Hirata - - * bitmap.c, bitmap.h, expmed.c, tree-cfg.c: Fix comment - formatting. - - * c-cppbuiltin.c, cgraph.c, domwalk.h, except.c, gimplify.c, - lambda-code.c, postreload.c, predict.c, tree-sra.c, - tree-ssa-loop-manip.c, tree.c: Fix comment typos. - -2004-11-13 Kelley Cook - - * doc/install.texi (automake): Correctly document that everything now - will use automake 1.9.3. - -2004-11-13 Hans-Peter Nilsson - - PR target/18347 - * config/mmix/mmix.c (mmix_function_outgoing_value): Handle - TImode. Sorry for other non-complex larger-than-64-bit modes. - * config/mmix/mmix.h (MIN_UNITS_PER_WORD): Do not define. - -2004-11-13 Kelley Cook - - * doc/install.texi (automake): Document that everything now uses 1.9. - -2004-11-13 Bernd Schmidt - - * cse.c (cse_insn): Stores in a libcall sequence can invalidate - previous loads. - -2004-11-13 Kazu Hirata - - * tree.h: Fix comment typos. - -2004-11-13 Steven Bosscher - - * cse.c (CHEAP_REGNO): Redefine using REGNO_PTR_FRAME_P and - HARD_REGISTER_NUM_P. - - * cselib.c (new_cselib_val): Make comment correct and more detailed. - * flow.c (mark_set_1): Likewise. - - * except.c (duplicate_eh_region_1, duplicate_eh_region_2, - duplicate_eh_regions): Remove. - * except.h (duplicate_eh_regions): Remove prototype. - * integrate.c (get_label_from_map, copy_rtx_and_substitute, - global_const_equiv_varray): Remove. - * integrate.h (get_label_from_map, copy_rtx_and_substitute, - global_const_equiv_varray, set_label_in_map): Remove prototypes, - extern declaration, and #define. - (MAYBE_EXTEND_CONST_EQUIV_VARRAY, SET_CONST_EQUIV_DATA): Remove. - (struct inline_remap): Remove. - * varray.c (struct element): Remove entry for const_equiv_data. - * varray.h (struct const_equiv_data): Remove. - (enum varray_data_enum) : Remove. - (union varray_data_tag) : Remove. - (VARRAY_CONST_EQUIV_INIT, VARRAY_CONST_EQUIV, - VARRAY_PUSH_CONST_EQUIV, VARRAY_TOP_CONST_EQUIV): Remove. - - * regstack.c (record_label_references): Remove unused function. - - * rtl.def (VALUE): Update comment. - (LABEL_REF): Remove unused operand 2. - * rtl.h (struct rtx_def): Update for removed accessor macros. - (XCADVFLAGS, INSN_DEAD_CODE_P, LINE_NUMBER, CONTAINING_INSN, - REG_LOOP_TEST_P): Remove. - (ADDR_DIFF_VEC_FLAGS, CSELIB_VAL_PTR, LABEL_NEXTREF): Add comments. - * web.c (entry_register): Don't copy REG_LOOP_TEST_P. - * doc/rtl.texi (INSN_DEAD_CODE_P, REG_LOOP_TEST_P): Remove. - -2004-11-13 James A. Morrison - Eric Botcazou - - PR target/18230 - * config/sparc/sparc.c (sparc_rtx_costs): Handle the NAND vector - patterns. - * config/sparc/sparc.md (V64I): New macro for 64-bit modes. - (V32I): New macro for 32-bit modes. - (anddi3, anddi_sp32, anddi_sp64, and_not_di_sp32, and_not_di_sp64, - iordi3, iordi3_sp32, iordi_sp64, or_not_di_sp32, or_not_di_sp64, - xordi3, xordi3_sp32, xordi3_sp64, {AND, IOR, XOR} DI splitter, - xor_not_di_sp32, xordi_not_di_sp64, one_cmpldi2, one_cmpldi_sp32, - one_cmpldi_sp64): Use V64I instead of DI. - (andsi3, andsi_sp32, andsi_sp64, and_not_si, iorsi3, or_not_si, - xorsi3, xor_not_si, one_cmplsi2): Use V32I instead of SI. - (addv2si3, addv4hi3, addv2hi3): Remove % modifier. - (nandv64i_vis, nandv32i_vis): New patterns. - -2004-11-12 Mike Stump - - * Makefile.in: Add html support. - * java/Make-lang.in: Likewise. - * fortran/Make-lang.in: Likewise. - * treelang/Make-lang.in: Likewise. - * doc/install.texi: Likewise. - * doc/makefile.texi: Likewise. - * doc/sourcebuild.texi: Likewise. - -2004-11-13 Kazu Hirata - - * tree-ssa-loop-manip.c: Fix a comment typo. - -2004-11-12 Mike Stump - - * doc/cppinternals.texi (Index): Fix html generation with makeinfo by - renaming this node to Concept Index. - * doc/gccint.texi (Index): Likewise. Also minor formatting tweaks - to more closely match gcc.texi. - -2004-11-12 Jeff Law - - * tree-cfg.c (hashtab.h): Include. - (struct edge_to_case_leader_elt): New structure. - (edge_to_case_leader): New. - (edge_to_case_leader_hash): New hashtable hasing function. - (edge_to_case_leader_eq): New hashtable equality function. - (record_switch_edge): New function. - (get_case_leader_for_edge, get_case_leader_for_edge): New functions. - (make_switch_expr_edges): Build the edge-to-case-leader - hash table. Tear down the hash table when we're done. - (cleanup_dead_labels): Use CASE_LEADER_OR_LABEL instead of - CASE_LABEL. - (tree_node_can_be_shared): Allow sharing of CASE_LABEL_EXPR nodes. - (tree_redirect_edge_and_branch, case SWITCH_EXPR): Update - to use new concept of case leaders to reduce overhead of - redirecting outgoing edges from switch statements. - * tree.c (get_case_label): New function. - * tree.h (CASE_LABEL): Define in terms of get_case_label. - (CASE_LEADER_OR_LABEL): Define. - -2004-11-12 Ziemowit Laski - - * varasm.c (output_addressed_constants): For CONST_DECLs, - output the initializer if present. - -2004-11-12 Ziemowit Laski - - * config/rs6000/darwin.h: Fix confusing typo in comment. - -2004-11-12 Devang Patel - - * optabs.c (vector_compare_rtx): Use COMPARISON_CLASS_P. - -2004-11-12 Devang Patel - - * tree-if-conv.c (clean_predicate_lists): Use loop header - and latch directly. - -2004-11-12 Richard Henderson - - PR 17778 - * config/i386/i386.h (TARGET_96_ROUND_53_LONG_DOUBLE): New. - * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Remove. - (TARGET_96_ROUND_53_LONG_DOUBLE): New. - * config/i386/i386-modes.def (XF): Use it. - -2004-11-11 Geoffrey Keating - - * Makefile.in (macro_list): Use move-if-change to avoid spurious - rebuilds. - -2004-11-12 Mark Mitchell - - PR c++/18416 - * passes.c (rest_of_decl_compilation): Do not look at DECL_RTL - when deciding whether to pass a variable to - cgraph_varpool_finalize_decl or assemble_variable. - * toplev.c (check_global_declarations): Do not clear DECL_RTL. - -2004-11-12 Kazu Hirata - - * tree-vectorizer.c: Fix a comment typo. - -2004-11-12 Bernd Schmidt - - * genconfig.c (walk_insn_part): Look at match_dups inside a label_ref. - -2004-11-12 Diego Novillo - - * tree-scalar-evolution.c (analyzable_condition): Remove - superfluous TREE_THIS_VOLATILE checks on SSA_NAMEs. - -2004-11-12 Ralf Corsepius - - * config/rs6000/t-rtems (MULTILIB_NEW_EXCEPTIONS_ONLY): - Remove m505/roe multilib variant. - -2004-11-12 Eric Botcazou - - * expr.c (emit_group_load) : Use extract_bit_field - to load from the stack. - -2004-11-12 Richard Henderson - - * toplev.c (floor_log2): Rename from floor_log2_wide, use CLZ_HWI. - (exact_log2): Rename from exact_log2_wide, use CTZ_HWI. - * toplev.h (FL2T__): Remove. - (CLZ_HWI): Rename from FL2T_CLZ__. - (CTZ_HWI): New. - (floor_log2): Simplify. - (exact_log2): New. - -2004-11-12 Sebastian Pop - - * tree-data-ref.c (analyze_subscript_affine_affine): Correctly - compute the first overlapping iterations. - -2004-11-12 Sebastian Pop - - PR middle-end/18005 - * tree-data-ref.c (estimate_niter_from_size_of_data): Ensure - that arguments of EXACT_DIV_EXPR are INTEGER_CST. - -2004-11-12 Steven Bosscher - - PR tree-optimization/18419 - * tree-ssa.c (walk_use_def_chains_1): Make the visited map a - pointer set instead of a bitmap. - (walk_use_def_chains): Create, pass and clean up that pointer_set. - - * tree-ssa-alias.c (struct alias_info): Make the ssa_names_visited - field an sbitmap. - (init_alias_info): Allocate and zero it here. - (delete_alias_info): Delete it here. - (collect_points_to_info_for): Use it. - -2004-11-11 Kazu Hirata - - * alias.c (record_alias_subset, addr_side_effect_eval): - Make them static. - * alias.h: Remove the prototype for record_alias_subset. - * expr.h: Remove the commented-out prototype for - record_alias_subset. - * rtl.h: Remove the prototype for addr_side_effect_eval. - - * cfglayout.c (choose_inner_scope): Make it static. - * rtl.h: Remove the corresponding prototype. - - * cfgloopmanip.c (update_single_exits_after_duplication, - unloop): Make them static. - * cfgloop.h: Remove the corresponding prototypes. - - * c-typeck.c (c_size_in_bytes, record_maybe_used_decl): - Make them static. - * c-tree.h: Remove the corresponding prototypes. - - * explow.c (round_push): Make it static. - * expr.h: Remove the corresponding prototype. - - * varasm.c (get_named_section_flags, decl_tls_model): Make - them static. - * output.h: Remove the prototype for get_named_section_flags. - * tree.h: Remove the prototype for decl_tls_model. - -2004-11-11 Kazu Hirata - - * function.c (expand_function_end): Remove an "if" statement - that always triggers. - * stmt.c (expand_null_return_1): Likewise. - -2004-11-11 James E. Wilson - - * config/ia64/ia64.h (HARD_REGNO_NREGS): Handle XCmode. - (HARD_REGNO_MODE_OK, MODES_TIEABLE_P, SECONDARY_MEMORY_NEEDED, - CLASS_MAX_NREGS): Likewise. - -2004-11-11 Zdenek Dvorak - - PR tree-optimization/17742 - * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Handle - MINUS_EXPR correctly. - -2004-11-11 Sebastian Pop - - * tree-scalar-evolution.c (follow_ssa_edge_in_condition_phi): - Give up as soon as the evolution is known not computable. - -2004-11-11 Nathan Sidwell - - PR target/16457 - * config/rs6000/rs6000.c (mask64_2_operand): Stub to call - mask64_1or2_operand. - (mask64_1or2_operand): Broken out of mask64_2_operand, add flag - to spot rlwinm opportunities. - (and64_2_operand): Use mask_1or2_operand. - * config/rs6000/rs6000.md (anddi3): Use rlwinm when possible. - -2004-11-11 Dorit Naishlos - - * tree-vectorizer.c (update_phi_nodes_for_guard): Call reverse_phis. - (vect_update_ivs_after_vectorizer): Update function documentation. - Avoid quadratic behavior and direct write to PHI_ARG_DEF. - -2004-11-11 Kazu Hirata - - * config/arm/arm.c: Fix a comment typo. - -2004-11-11 Nathan Sidwell - - * bitmap.h (nBITMAP_WORD_BITS): Remove. - (BITMAP_WORD_BITS): Force unsigned by use of 1u. - (BITMAP_ELEMENT_WORDS, BITMAP_ELEMENT_ALL_BITS): Remove - unnecessary casts. - (bitmap_first_set_bit): Return unsigned, use ctzl. - (bitmap_last_set_bit): Remove. - * bitmap.c (bitmap_element_zerop, bitmap_copy): Make iterator - unsigned. - (bitmap_first_set_bit): Return unsigned, require non-empty bitmap, - remove special case code for two word elements. - (bitmap_last_set_bit): Remove. - * ra-build.c (livethrough_conflicts_bb): Replace unnecessary use of - bitmap_first_set_bit with bitmap_empty_p. - * tree-outof-ssa.c (analyze_edges_for_bb): Likewise. - * tree-ssa-pre.c (bitmap_print_value): Use simple flag rather than - bitmap_last_bit_set. - -2004-11-11 Nathan Sidwell - - PR target/16796 - * config/rs6000/rs6000.md: Add DF & SF reg move peepholes. - - PR target/16458 - * config/rs6000/rs6000.c (rs6000_generate_compare): Generate an - unsigned equality compare when we know the operands are unsigned. - -2004-11-10 Peter S. Mazinger - - * config/mips/linux.h (LINUX_TARGET_OS_CPP_BUILTINS): Define - __PIC__ and __pic__ only if TARGET_ABICALLS. - (SUBTARGET_CPP_SPECS): Don't define or undefine __PIC__ and __pic__. - (SUBTARGET_ASM_SPECS): Don't pass -non_shared to assembler; pass - -KPIC only if not -mno-abicalls. - - * config/alpha/linux.h, config/arm/linux-elf.h, config/pa/pa-linux.h - * config/sparc/linux.h, config/sparc/linux64.h - (TARGET_OS_CPP_BUILTINS): Define __PIC__ and __pic__ if flag_pic. - - * config/arm/linux-gas.h (CPP_SPEC): Don't define __PIC__ or __pic__. - * config/pa/pa/linux.h (CPP_SPEC): Likewise. - * config/sparc/linux.h (CPP_SUBTARGET_SPEC): Likewise. - * config/sparc/linux64.h (CPP_SUBTARGET_SPEC): Likewise. - -2004-11-11 Paul Brook - - * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): Save PIC - register if current_function_uses_pic_offset_table is set. - -2004-11-10 David Edelsohn - - * config/rs6000/rs6000.md (define_attr "type"): Add two and three. - Change multi-instruction sequences to new attribute. - * config/rs6000/{40x.md,440.md,603.md,6xx.md, - 7450.md,7xx.md,8540.md,mpc.md,power4.md,power5.md, - rios1.md,rios2.md,rs64.md}: Add descriptions for two and three. - -2004-11-10 Daniel Berlin - - * tree-data-ref.c (build_classic_dist_vector): If either loop - is outside of the nest we asked about, the dependence can't - matter. - (build_classic_dir_vector): Ditto. - -2004-11-10 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (get_address_cost): Add address elements in - right order. - (force_var_cost): Determine cost of addition and multiplication more - precisely. - (get_computation_cost_at): Add cost for computing address elements to - the final cost. - - * fold-const.c (fold): Attempt to use ptr_difference_const whenever - one of the arguments of MINUS_EXPR is an address. - (split_address_to_core_and_offset): New function. - (ptr_difference_const): Handle case when one of the operands is a - pointer. - * tree-ssa-loop-ivopts.c (determine_base_object): Fold &*addr. - (ptr_difference_cost): Pass addresses instead of objects to - ptr_difference_const. - -2004-11-10 Nathan Sidwell - - * tree.c (tree_check_failed): Emit general error if the list of - node types is empty. - -2004-11-10 Eric Botcazou - - * config/sparc/sparc.c (function_arg_union_value): New 'slotno' - argument. When the union is passed in the 6th slot, build a - PARALLEL with only one element. - (function_arg): Adjust call to function_arg_union_value. - (function_value): Likewise. - -2004-11-10 Fariborz Jahanian - - PR tree-optimization/17892 - * tree-ssa-dom.c (unsafe_associative_fp_binop): Add test for - MINUS_EXPR operator. - -2004-11-10 James A. Morrison - - PR target/18230 - config/sparc/sparc.md (addsi3, subsi3): Set "fptype" attribute. - (addv2si, addv4hi, addv2hi, subv2si, subv4hi, subv2hi): New patterns. - -2004-11-10 Steven Bosscher - - * basic-block.h (XMALLOC_REG_SET, XFREE_REG_SET): New. - (struct basic_block_def): Remove local_set and cond_local_set - fields. Update comment for global_live_at_start. - * flow.c (calculate_global_regs_live): Allocate local_sets and - cond_local_sets here as arrays of bitmaps previously stored in - bb->local_set and bb->cond_local_set. Use xmalloc instead of - obstack allocated bitmaps. - -2004-11-09 H.J. Lu - - PR target/18380 - * config/ia64/unwind-ia64.h (_Unwind_FindTableEntry): Mark it - hidden. - - * unwind-dw2.c (_Unwind_FindTableEntry): Removed. - -2004-11-09 Jeff Law - - * cfganal.c (flow_dfs_compute_reverse_execute): Accept new - argument holding last unvisited block. Start search for - unvisited blocks at LAST_UNVISITED rather than EXIT_BLOCK. - (connect_infinite_loops_to_exit): Supply last unvisited block - to flow_dfs_compute_reverse_execute. - -2004-10-22 Aldy Hernandez - - * config/rs6000/rs6000.md (fix_truncdfsi2): Handle e500 - doubles. - (floatunssidf2): Same. - (floatsidf2): Same. - ("extendsfdf2"): New expander. - (*extendsfdf2_fpr): Rename. - (*truncdfsf2_fpr): Same. - (*negdf2_fpr): Same. - (*absdf2_fpr): Same. - (*nabsdf2_fpr): Same. - (*adddf3_fpr): Same. - (*subdf3_fpr): Same. - (*muldf3_fpr): Same. - (*divdf3_fpr): Same. - - * config/rs6000/spe.md ("spe_extendsfdf2"): Remove FIXME comment. - ("spe_fix_truncdfsi2"): Same. - (spe_floatunssidf2): Same. - (spe_floatsidf2): Same. - -2004-11-09 Joseph S. Myers - - PR c/18322 - * c-common.c (fname_decl): Don't use line number of decl in - diagnostic. - -2004-11-09 Ulrich Weigand - - * config/s390/s390-protos.h (s390_pool_operand): Remove. - * config/s390/s390.c (s390_pool_operand): Likewise. - (s390_extra_constraint_str): Handle 'B' constraints. - * config/s390/s390.h (CONSTRAINT_LEN): Handle 'B' constraints. - * config/s390/s390.md: Document 'B' constraints. - ("*cmpdi_cct", "*cmpsi_cct"): Use 'B' constraint instead of - s390_pool_operand to prevent insns with two literal pool - references. Make pattern commutative. - ("*cmpdi_ccu", "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use - 'B' constraint instead of s390_pool_operand. - -2004-11-09 Kazu Hirata - - * tree-cfg.c (create_bb): Remove unnecessary memset. - -2004-11-09 Kazu Hirata - - * tree-ssa-threadupdate.c (copy_phis_to_block): Remove. - (thread_block): Call flush_pending_stmt instead of - copy_phis_to_block. - -2004-11-09 Kazu Hirata - - * loop-iv.c (iv_number_of_iterations): Make it static. - * cfgloop.h: Remove the corresponding prototype. - -2004-11-09 Kazu Hirata - - * function.c (combine_temp_slots, assign_parms, - expand_pending_sizes): Make them static. - * tree.h: Remove the corresponding prototypes. - -2004-11-09 Kazu Hirata - - * emit-rtl.c (copy_most_rtx): Remove. - * rtl.h: Remove the corresponding prototype. - -2004-11-09 Kazu Hirata - - * cfgloop.c (flow_loops_update): Remove. - * cfgloop.h: Remove the corresponding prototype. - -2004-11-09 Kazu Hirata - - * conflict.c (mark_reg, conflict_graph_compute): Remove. - * basic-block.h: Remove the prototype for - conflict_graph_compute. - -2004-11-09 Kazu Hirata - - * tree-if-conv.c (add_to_dst_predicate_list): Change the - second argument to basic_block. - (tree_if_convert_cond_expr): Update call sites. - -2004-11-09 Kazu Hirata - - * fold-const.c (pedantic_non_lvalue): Make it static. - * tree.h: Remove the corresponding prototype. - -2004-11-09 Kazu Hirata - - * optabs.c (prepare_operand): Make it static. - * optabs.h: Remove the corresponding prototype. - -2004-11-09 Kazu Hirata - - * reload1.c (reloads_conflict, gen_reload): Make them static. - * reload.h: Remove the corresponding prototypes. - -2004-11-09 Kazu Hirata - - * reload.c (refers_to_mem_for_reload_p, - refers_to_regno_for_reload_p): Make them static. - * reload.h: Remove the corresponding prototypes. - -2004-11-09 James A. Morrison - Eric Botcazou - - PR target/18230 - * doc/md.texi (SPARC constraints): Document 'Y' constraint. - * config/sparc/sparc-modes.def: Add vector modes of 4 and 8 bytes. - * config/sparc/sparc.c (sparc_vector_mode_supported_p): New function. - (TARGET_VECTOR_MODE_SUPPORTED_P): Set to sparc_vector_mode_supported_p. - (fp_zero_operand): Accept MODE_VECTOR_INT modes. - (input_operand): Accept CONST_VECTOR with MODE_VECTOR_INT modes. - (sparc_cannot_force_const_mem): Return false for CONST_VECTOR. - (sparc_init_modes): Set sparc_mode_class to SF_MODE or DF_MODE for - MODE_VECTOR_INT modes. - (sparc_extra_constraint_check): Add new constraint 'Y'. - * config/sparc/sparc.h: Define UNITS_PER_SIMD_WORD to 8 for TARGET_VIS. - * config/sparc/sparc.md (V32): New mode macro for 32-bit modes. - (V64): New mode macro for 64-bit modes. - (movsf): Use V32 for mode instead of SF. - (movsf_insn_vis): Use V32 for mode instead of SF. Add 'Y' constraint - alongside 'G' constraint. - (movdf): Use V64 for mode instead of DF. - (movdf_insn_v9only_vis, modf_insn_sp64_vis): Use V64 for mode instead - of DF. Add 'Y' constraint alongside 'G' constraint. - (multi-isn and misaligned mems DFmode splitters): Use V64 for mode - instead of DF. - -2004-11-09 Ulrich Weigand - - * config/s390/s390.c (s390_select_ccmode): Return CCAPmode for - integer NEG and ABS. - * config/s390/s390.md ("*negdi2_64"): Fix op_type attribute. - ("*negdi2_31"): Reimplement using a splitter. - ("*negdi2_cc", "*negdi2_cconly"): New insns. - ("*negdi2_sign", "*negdi2_sign_cc"): Likewise. - ("*negsi2_cc", "*negsi2_cconly"): Likewise. - ("*negdf2_cc", "*negdf2_cconly"): Likewise. - ("*negsf2_cc", "*negsf2_cconly"): Likewise. - ("*absdi2_cc", "*absdi2_cconly"): New insns. - ("*absdi2_sign", "*absdi2_sign_cc"): Likewise. - ("*abssi2_cc", "*abssi2_cconly"): Likewise. - ("*absdf2_cc", "*absdf2_cconly"): Likewise. - ("*abssf2_cc", "*abssf2_cconly"): Likewise. - ("*negabsdi2_cc", "*negabsdi2_cconly"): New insns. - ("*negabsdi2_sign", "*negabsdi2_sign_cc"): Likewise. - ("*negabssi2_cc", "*negabssi2_cconly"): Likewise. - ("*negabsdf2_cc", "*negabsdf2_cconly"): Likewise. - ("*negabssf2_cc", "*negabssf2_cconly"): Likewise. - -2004-11-09 Ulrich Weigand - - * config/s390/s390.c (s390_canonicalize_comparison): Reverse condition - when eliminating an UNSPEC_CMPINT. - (s390_secondary_input_reload_class): Fix test for CC register reload. - (s390_secondary_output_reload_class): Likewise. - (s390_expand_cmpmem): Swap operands. Use gen_cmpint. - * config/s390/s390.md ("*cmpint_si", "*cmpint_di"): Remove. - ("cmpint", "*cmpint_cc", "*cmpint_sign", "*cmpint_sign_cc"): New - insn patterns with splitters. - -2004-11-09 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Add EQ, GTU, and LTU. - * config/rs6000/rs6000.md (sCC): Split GTU and LTU patterns. - -2004-11-09 Kazu Hirata - - * tree-phinodes.c (phi_reverse): New. - * tree-cfg.c (tree_make_forwarder_block, tree_duplicate_bb): - Use it. - * tree-flow.h: Add a prototype for phi_reverse. - -2004-11-09 Kazu Hirata - - * tree-ssa-loop-ivopts.c: Fix a comment typo. - -2004-11-09 James A. Morrison - - PR pch/14940 - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __sparc__ - definitions. - -2004-11-09 Joseph S. Myers - - * builtins.c, c-common.c, c-decl.c, c-format.c: Say "argument" - instead of "arg" in diagnostics. - -2004-11-09 Joseph S. Myers - - * builtins.c, c-common.c, c-decl.c, c-format.c, c-format.h, - c-parse.in, c-pch.c, c-pragma.c, collect2.c, final.c, gcc.c, - gcov.c, opts.c, pretty-print.h, protoize.c, reg-stack.c, rtl.c, - tlink.c, config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c, - config/avr/avr.c, config/c4x/c4x.c, config/darwin.c, - config/frv/frv.c, config/h8300/h8300.c, config/i386/i386.c, - config/i386/winnt.c, config/ia64/ia64.c, config/ip2k/ip2k.c, - config/iq2000/iq2000.c, config/m32r/m32r.c, - config/m68hc11/m68hc11.c, config/m68k/m68k.c, config/m68k/m68k.h, - config/mcore/mcore.c, config/mips/mips.c, config/mmix/mmix.c, - config/ns32k/ns32k.c, config/rs6000/host-darwin.c, - config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, - config/sh/symbian.c, config/stormy16/stormy16.c, - config/v850/v850.c: Avoid "`" as left quote, using "'" or %q, %< - and %> as appropriate. Use %' as apostrophe in diagnostics where - applicable. Use %< and %> in place of '' quotes where applicable. - Use %qs in place of %<%s%>. Consistently quote __builtin function - names. - -2004-11-09 Hans-Peter Nilsson - - * gdbinit.in (pbb, pbm): New macros. - -2004-11-08 Jeff Law - - * cfg.c (redirect_edge_succ_nodup): Use find_edge rather than - implementing it inline. - - * cfganal.c (find_edge): Search pred->succs or succ->preds, - whichever is shorter. - -2004-11-08 Kazu Hirata - - * passes.c (rest_of_handle_jump): Remove dead code. - -2004-11-08 Kazu Hirata - - * tree-cfg.c (thread_jumps): Speed up by keeping a pointer to - the last used element in the worklist. - -2004-11-08 Kazu Hirata - - * tree-inline.c (remap_save_expr): Make it static. - * tree-inline.h: Remove the corresponding prototype. - -2004-11-08 Kazu Hirata - - * tree-ssa-loop-niter.c (upper_bound_in_type, - lower_bound_in_type): Make them static. - * tree.h: Remove the corresponding prototypes. - -2004-11-08 Kazu Hirata - - * tree-ssa-live.c (tpa_init, pop_best_coalesce): Make them - static. - * tree-ssa-live.h: Remove the corresponding prototypes. - -2004-11-08 Kazu Hirata - - * tree-if-conv.c (tree_if_conversion): Make it static. - * tree-flow.h: Remove the corresponding prototype. - -2004-11-08 Kazu Hirata - - * tree-ssa-operands.c (build_ssa_operands): Make it static. - * tree-flow.h: Remove the corresponding prototype. - -2004-11-08 Andrew Pinski - - PR tree-opt/18299 - * tree-inline.c (copy_body_r): Change "t = t" to empty - statement instead of "t". - -2004-11-08 Kazu Hirata - - * modulo-sched.c (create_partial_schedule, - free_partial_schedule, reset_partial_schedule, - ps_add_node_check_conflicts, rotate_partial_schedule): Make - them static. - -2004-11-08 Richard Henderson - - * expmed.c (extract_force_align_mem_bit_field): Correct handling at - the end of a page. - -2004-11-08 Kazu Hirata - - * sched-deps.c (add_insn_mem_dependence): Make it static. - * sched-int.h: Remove the corresponding prototypes. - -2004-11-08 Kazu Hirata - - * flow.c (allocate_bb_life_data): Make it static. - * basic-block.h: Remove the corresponding prototype. - -2004-11-08 Kazu Hirata - - * calls.c (split_complex_values, split_complex_types): Make - them static. - * expr.h: Remove the corresponding prototypes. - -2004-11-08 Richard Earnshaw - - * arm.c (arm_handle_notshared_attribute): Wrap declaration and use - with #if TARGET_DLLIMPORT_DECL_ATTRIBUTES. - -2004-11-08 Kazu Hirata - - * tree-if-conv.c (tree_if_convert_cond_expr): Remove two "if" - statements that always trigger. - -2004-11-08 Kazu Hirata - - * tree-cfg.c, tree-if-conv.c, tree-into-ssa.c, - tree-scalar-evolution.c, tree-ssa-loop-im.c, - tree-ssa-loop-ivopts.c, tree-ssa-loop-manip.c, tree-ssa.c, - tree-vectorizer.c: Replace TREE_CHAIN with PHI_CHAIN where - appropriate. - -2004-11-08 Ben Elliston - - * cgraph.h (cgraph_calls_p): Remove. - * cgraph.c (cgraph_calls_p): Likewise. - - * varray.h (varray_copy): Remove. - * varray.c (varray_copy): Likewise. - -2004-11-07 Andrew Pinski - - PR target/18269 - * config/darwin.c (machopic_indirect_data_reference): - Call gen_macho_high and gen_macho_low instead of - checking the mode and calling gen_macho_high_di directly. - * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. - * config/rs6000/rs6000.md: Move most of TARGET_MACHO expand/insns - to darwin.md. - (movdf_low, movsf_low, movsf_low_st, movsi_low, macho_correct_pic, - load_macho_picbase, macho_low, macho_high): Removed. - (builtin_setjmp_receiver): Call gen_macho_high and - gen_macho_low instead of checking the mode and calling - gen_macho_high_di directly. - * config/rs6000/darwin.md (load_macho_picbase_di): Use the MD constant. - (movdf_low_si, movsf_low_si, movsf_low_st_si, movsi_low_st): - Moved from rs6000.md. - (macho_high): New expander. - (macho_high_si): Renamed version of macho_high from rs6000.md. - (macho_low): New expander. - (macho_low_si): Renamed version of macho_low from rs6000.md. - (load_macho_picbase): New expander. - (load_macho_picbase_si): Renamed version of load_macho_picbase - from rs6000.md. - (macho_correct_pic): New expander. - (macho_correct_pic_si): Renamed version of macho_correct_pic - from rs6000.md. - -2004-11-07 Joseph S. Myers - - * c-decl.c (finish_struct): Use complete sentences for diagnostic - for structures or unions with no members or named members. - -2004-11-07 Joseph S. Myers - - * c-typeck.c (build_unary_op): Replace unreachable diagnostic for - taking address of bit-field by assertion. - -2004-11-06 Ulrich Weigand - - * config/s390/s390.md (attribute "op_type"): Default to "NN". - (attribute "atype"): Default to "agen". - (attribute "length"): Default to 6. - (define_asm_attibutes): Remove. - ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa", - "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf", - "*clc", "*mvc", "*nc", "*oc", "*xc", "*xc_zero"): - Do not set type attribute to "cs" where already default. - ("*cmpint_si", "*cmpint_di", "fix_truncdfsi2_ibm", "floatsidf2_ibm", - "*negdi2_31"): - Do not set type attribute to "other" where already default. - ("movti", "*movdi_64", "*movdi_31", "*movdf_31", - "*strlendi", "*strlensi", - "*movmem_long_64", "*movmem_long_31", - "*clrmem_long_64", "*clrmem_long_31", - "*cmpmem_long_64", "*cmpmem_long_31", - "*cmpint_si", "*cmpint_di", - "addti3", "*adddi3_31z", "*adddi3_31", - "subti3", "*subdi3_31z", "*subdi3_31", "*negdi2_31", - "*sconddi", "*scondsi", "*sconddi_neg", "*scondsi_neg", - "fix_truncdfsi2_ibm", "floatsidf2_ibm", "extendsfdf2_ibm", - "*pool_entry", "pool_align", "pool_section_start", - "pool_section_end", "main_pool", "reload_base_31", "pool"): - Do not set op_type attribute to "NN" where already default. - ("*extractqi", "*extracthi", "*zero_extendhisi2_31", - "*zero_extendqisi2_31", "*zero_extendqihi2_31", - "fix_truncdfsi2_ibm", "floatsidf2_ibm"): - Do not set atype attribute to "agen" where already default. - ("*movmem_short", "*clrmem_short", "*cmpmem_short"): Don't set op_type. - -2004-11-06 Richard Sandiford - - * config/mips/t-iris6 (tp-bit.c): Fix target filename. - -2004-11-06 Richard Sandiford - - PR target/16830 - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Don't define the - R3000 and R4000 macros on IRIX. - -2004-11-06 Andreas Schwab - - PR target/16286 - * config/rs6000/altivec.h: Replace bool by __bool and pixel by - __pixel. - -2004-11-06 Kazu Hirata - - * tree-ssa-copyrename.c (rename_ssa_copies): Make it static. - -2004-11-06 Ulrich Weigand - - * config/s390/2064.md ("z_int", "z_agen"): Ensure the condition - matches no insns already matched by other reservations. - * config/s390/2084.md ("x_int", "x_agen"): Ensure the condition - matches no insns already matched by other reservations. - ("x_ss"): Remove, replace by ... - ("x_cs"): ... this new reservation. Check type instead of op_type. - Update bypasses to use x_cs instead of x_ss. - ("x_nn"): Remove, replace by ... - ("x_other"): ... this new reservation. Check type instead of op_type. - Add x_other and x_branch to bypasses. - ("x_vs"): New reservation. - * config/s390/s390.md (attribute "type"): Default according to op_type. - ("*execute"): Set type to "cs". - -2004-11-06 Kazu Hirata - - * fold-const.c (non_lvalue): Don't construct NON_LVALUE_EXPR - if we are in GIMPLE. - -2004-11-06 Hans-Peter Nilsson - - PR rtl-optimization/17933 - * rtlanal.c (dead_or_set_regno_p): Break out common code to... - (covers_regno_p): New function. Handle SETs of PARALLEL, - and defer the rest to... - (covers_regno_no_parallel_p): New function. - -2004-11-06 Eric Botcazou - - * config/sparc/sparc.c (function_arg_record_value_1): Skip - fields with zero length. - (function_arg_record_value_2): Likewise. - (function_arg_record_value_3): Use smallest_mode_for_size - instead of mode_for_size. - (function_arg_union_value): Return naked register for unions - with zero length. - -2004-11-06 Eric Botcazou - - * config/sparc/sparc.c (scan_record_type): Handle vector types. - (function_arg_slotno): Handle vector types specially. - (function_arg_record_value_1): Split fields with vector type and - BLKmode into their subparts. - (function_arg_record_value_2): Likewise. Be prepared to handle - more than 2 registers per field. - (function_arg_union_value): Increment regno inside the loop. - (function_arg_vector_value): New function. - (function_arg): Use it to split fields with vector type and - BLKmode into their subparts and build a PARALLEL. Treat - other vector types like floats. - (function_value): Likewise. - (sparc_pass_by_reference): Handle vector types. - (sparc_return_in_memory): Likewise. - -2004-11-06 Kazu Hirata - - * tree-cfg.c (find_taken_edge_cond_expr): Remove an "if" - statement that never triggers. - -2004-11-06 Ulrich Weigand - - * config/s390/2064.md ("z_o2", "z_o3"): Remove. - * config/s390/2084.md ("x_o2", "x_o3"): Remove. - ("x_fdivd"): Use also for fsqrtd type. - ("x_fdivs"): Use also for fsqrts type. - * config/s390/s390.md (attribute "type"): Remove "o2" and "o3" types. - ("fix_truncdfsi2_ieee"): Set type to "ftoi". - ("fix_truncdfsi2_ibm"): Set type to "other". - ("floatdidf2", "floatdisf2"): Do not clobber CC. - ("floatsidf2", "floatsidf2_ieee"): Likewise. - ("floatsisf2", "floatsisf2_ieee"): Likewise. - ("truncdfsf2", "truncdfsf2_ieee"): Only allow "register_operand". - ("truncdfsf2_ibm"): Only allow "nonimmediate_operand". Use LER - instead of LRER. - ("extendsfdf2_ibm"): Do not set atype. Set type to "floads". - ("sqrtdf2"): Set type to "fsqrtd". - ("sqrtsf2"): Set type to "fsqrts". - -2004-11-06 Kazu Hirata - - * tree-phinodes.c (remove_all_phi_nodes_for): Speed up using a - pointer to the last PHI node in the new PHI chain. - -2004-11-06 Kaz Kojima - - * config/sh/sh.c (prepare_move_operands): Emit a use of r12 - for non-PIC TLS_MODEL_INITIAL_EXEC case. - -2004-11-06 Kazu Hirata - - * expmed.c: Fix a comment typo. - -2004-11-06 Aaron W. LaFramboise - - PR target/18106 - * config/i386/cygming.h - [HAVE_GAS_WEAK] (ASM_WEAKEN_LABEL): Macro defined. - -2004-11-06 Kazu Hirata - - * config/sh/sh4a.md: Fix copyright. - -2004-11-06 Kazu Hirata - - * config/rs6000/darwin.md, config/sh/sh4a.md: Replace GNU CC - with GCC. - -2004-11-05 David Edelsohn - - * config/rs6000/rs6000.md (scc patterns): Replace subfc with subf - when carry not used. Suggested by Torbjorn Granlund. - - * config/rs6000/rs6000.c (rs6000_emit_move): Don't force_reg - operand[1] unnecessarily. Suggested by Eric Christopher. - (rs6000_adjust_cost): Increase latency of store to wider load. - (rs6000_rtx_costs): mulli only allows 16-bit constants. - -2004-11-05 Stan Shebs - - * config/rs6000/rs6000.c (machopic_output_stub): Output - ldu instead of lwzu for 64-bit stubs. - -2004-11-05 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_unaligned_load): Special case - size 2 with BWX. - (alpha_expand_unaligned_store): Likewise. - -2004-11-05 Richard Henderson - - * expmed.c (extract_force_align_mem_bit_field): New. - (extract_split_bit_field): Call it. - -2004-11-05 Richard Henderson - - * ia64.md (UNSPEC_SHRP): New. - (dshift_count_operand): New. - (ashrti3, ashrti3_internal, lshrti3, lshrti3_internal, shrp): New. - * ia64.c (rtx_needs_barrier): Handle UNSPEC_SHRP. - -2004-11-05 Joseph S. Myers - - * c-typeck.c (output_init_element): Return early if value is - error_mark_node. - -2004-11-05 James E Wilson - - * invoke.texi (-fno-guess-branch-probability): Rewrite. - - * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC_GR_SPILL): Change - 1 to UNSPEC_GR_SPILL. - -2004-11-05 Andreas Krebbel - - * config/s390/s390.c (s390_fixed_condition_code_regs): New function. - (TARGET_FIXED_CONDITION_CODE_REGS): Macro defined. - -2004-11-05 Nathan Sidwell - - * bitmap.h (enum bitmap_bits): Remove. - (bitmap_operation): Remove. - (bitmap_and, bitmap_and_into, bitmap_and_compl, - bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor, - bitmap_xor_into): Prototype. - * bitmap.c (bitmap_elt_insert_after, bitmap_elt_clear_from): New. - (bitmap_operation): Remove. - (bitmap_and, bitmap_and_into, bitmap_and_compl, - bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, bitmap_xor, - bitmap_xor_into): New. - (bitmap_ior_and_compl, bitmap_ior_and_compl_into): Adjust. - - PR tree-optimization/18307 - * tree-ssa-alias.c (merge_pointed_to_info): Protected against DEST - and ORIG being the same node. - -2004-11-04 Geoffrey Keating - - * Makefile.in (distclean): Don't delete nonexistent fixinc/ directory. - (install-mkheaders): Install the version built for the - host, not for the build machine. - * configure.ac: Always run fixincludes. - (all_outputs): Remove mkheaders. - * configure: Regenerate. - * fixinc.in: Move to fixincludes/. - * mkfixinc.sh: Likewise. - * mkheaders.in: Likewise. - * README-fixinc: Likewise. - -2004-11-05 Ramana Radhakrishnan - - PR target/18263 - * config/arc/lib1funcs.asm (___umulsidi3): Change use of cmp to the - equivalent on the A4. - -2004-11-05 Joseph S. Myers - - * doc/c-tree.texi, doc/cfg.texi, doc/contrib.texi, doc/cpp.texi, - doc/cppopts.texi, doc/extend.texi, doc/fragments.texi, - doc/frontends.texi, doc/gcov.texi, doc/hostconfig.texi, - doc/implement-c.texi, doc/install.texi, doc/invoke.texi, - doc/libgcc.texi, doc/md.texi, doc/passes.texi, - doc/portability.texi, doc/rtl.texi, doc/sourcebuild.texi, - doc/standards.texi, doc/tm.texi, doc/tree-ssa.texi, - doc/trouble.texi: Correct end-of-sentence markup and markup of - "etc.", "e.g." and "i.e.". Use @code in various places where - appropriate. - -2004-11-05 Joseph S. Myers - - * doc/c-tree.texi, doc/cfg.texi, doc/extend.texi, doc/gty.texi, - doc/install.texi, doc/invoke.texi, doc/md.texi, doc/passes.texi, - doc/rtl.texi, doc/tm.texi, doc/tree-ssa.texi: Remove trailing - whitespace. - -2004-11-04 Mark Mitchell - - * config/arm/arm.c (arm_handle_notshared_attribute): New function. - * doc/extend.texi: Document "notshared" attribute. - -2004-11-04 Kazu Hirata - - * tree-phinodes.c (make_phi_node): Make it static. - * tree.h: Remove the prototypes for make_phi_node. - -2004-11-04 Kazu Hirata - - * stmt.c (expand_asm, expand_asm_operands): Make them static. - * tree.h: Remove the prototypes for expand_asm and - expand_asm_operands. - -2004-11-04 Kazu Hirata - - * passes.c (rest_of_compilation): Make it static. - * toplev.h: Remove the prototype for rest_of_compilation. - -2004-11-04 Kazu Hirata - - * jump.c (cleanup_barriers): Use delete_insn instead of - delete_barrier. - (delete_barrier): Remove. - * rtl.h: Remove the corresponding prototype. - -2004-11-04 Kazu Hirata - - * expr.c (mostly_zero_p): Make it static. - * tree.h: Remove the prototype for mostly_zeros_p. - -2004-11-04 Kazu Hirata - - * cfgrtl.c (force_nonfallthru_and_redirect): Make it static. - -2004-11-04 Kazu Hirata - - * builtins.c (expand_builtin_return_addr, - expand_builtin_longjmp, expand_builtin_trap): Make them static. - * expr.h: Remove the prototypes for expand_builtin_longjmp and - expand_builtin_trap. - * tree.h: Remove the prototype for expand_builtin_return_addr. - -2004-11-04 Kazu Hirata - - * tree-cfg.c (find_taken_edge): Reject VAL begin NULL. - * tree-ssa-ccp.c (visit_cond_stmt): Don't call find_taken_edge - with VAL being NULL. - -2004-11-04 Kazu Hirata - - * cfghooks.c (delete_basic_block): Remove code to truncate - edge vectors. - -2004-11-04 Andrew Pinski - - * flow.c (init_propagate_block_info): Change the type of i to - unsigned. - -2004-11-04 Ulrich Weigand - - PR tree-optimization/18184 - * c-typeck.c (comptypes): Do not treat pointers of different - modes or alias-all flags as equivalent. - * tree-ssa.c (tree_ssa_useless_type_conversion_1): Likewise. - -2004-11-04 Joseph S. Myers - - * doc/gty.texi, doc/makefile.texi, doc/sourcebuild.texi: Don't - reference specific C parser files in examples. - -2004-11-04 Richard Sandiford - - PR target/15342 - * regrename.c (scan_rtx): Treat the destinations of SETs and CLOBBERs - as OP_INOUT if the instruction is predicated. - -2004-11-04 Kazu Hirata - - * bitmap.h: Fix a comment typo. Follow spelling conventions. - * tree-vectorizer.c: Fix a comment typo. - -2004-11-04 Kazu Hirata - - * sdbout.c (SDB_GENERATE_FAKE): Remove. - (gen_fake_label): Don't use SDB_GENERATE_FAKE. - * system.h: Poison SDB_GENERATE_FAKE. - * doc/tm.texi (SDB_GENERATE_FAKE): Remove. - -2004-11-04 Ulrich Weigand - - * config/s390/s390.md ("*addsi3_sign"): Use canonical RTL. - -2004-11-04 Eric Botcazou - - PR other/18277 - * gthr-posix.h (__gthread_recursive_mutex_init_function): Revert - 2004-10-29 patch - -2004-11-04 Nathan Sidwell - - * predict.c (propagate_freq): Make bitno unsigned. Move - npredecessors update out of loop. - - * bitmap.h (bitmap_iterator): Remove word_bit and bit - fields. Rename others. - (bmp_iter_common_next_1, bmp_iter_single_next_1, - bmp_iter_single_init, bmp_iter_end_p, bmp_iter_single_next, - bmp_iter_and_not_next_1, bmp_iter_and_not_init, - bmp_iter_and_not_next, bmp_iter_and_next_1, bmp_iter_and_init, - bmp_iter_and_next): Remove. - (bmp_iter_set_init, bmp_iter_and_init, bmp_iter_and_compl_init, - bmp_iter_next, bmp_iter_set, bmp_iter_and, bmp_iter_and_compl): - New. - (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_IN_BITMAP, - EXECUTE_IF_AND_COMPL_IN_BITMAP): Adjust. - - * bitmap.h (bitmap_a_or_b, bitmap_a_and_b): Remove. - * df.c (dataflow_set_a_op_b): Use bitmap_and, bitmap_ior, - bitmap_and_into, bitmap_ior_into as appropriate. - * except.c (remove_eh_handler): Likewise. - * global.c (modify_bb_reg_pav, make_accurate_live_analysis): Likewise. - * tree-dfa.c (mark_new_vars_to_rename): Likewise. - * tree-ssa-alias.c (merge_pointed_to_info): Likewise. - * tree-ssa-live.h (live_merge_and_clear): Likewise. - * tree-ssa-loop-ivopts.c (find_best_candidate, try_add_cand_for): - Likewise. - - * bitmap.c (bitmap_print): Make bitno unsigned. - * bt-load.c (clear_btr_from_live_range, - btr_def_live_range): Likewise. - * caller-save.c (save_call_clobbered_regs): Likewise. - * cfganal.c (compute_dominance_frontiers_1): Likewise. - * cfgcleanup.c (thread_jump): Likewise. - * cfgrtl.c (safe_insert_insn_on_edge): Likewise. - * conflict.c (conflict_graph_compute): Likewise. - * ddg.c (add_deps_for_use): Likewise. - * df.c (df_refs_update): Likewise. - * except.c (remove_eh_handler): Likewise. - * flow.c (verify_local_live_at_start, update_life_info, - initialize_uninitialized_subregs, propagate_one_insn, - free_propagate_block_info, propagate_block, find_use_as_address, - reg_set_to_hard_reg_set): Likewise. - * gcse.c (clear_modify_mem_tables): Likewise. - * global.c (global_conflicts, build_insn_chain): Likewise. - * ifcvt.c (dead_or_predicable): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. - * loop.c (load_mems): Likewise. - * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): - Likewise. - * ra-rewrite.c (reloads_to_loads, rewrite_program2, actual_spill): - Likewise. - * reload1.c (order_regs_for_reload, finish_spills): Likewise. - * sched-deps.c (sched_analyze_insn, free_deps): Likewise. - * sched-rgn.c (propagate_deps - * tree-cfg.c (tree_purge_all_dead_eh_edges): Likewise. - * tree-dfa.c (dump_dfa_stats - tree-into-ssa.c (compute_global_livein, insert_phi_nodes, - insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags): - Likewise. - * tree-outof-ssa.c (coalesce_ssa_name, coalesce_vars, - free_temp_expr_table, find_replaceable_exprs): Likewise. - * tree-sra.c (scan_function, scalarize_parms): Likewise. - * tree-ssa-alias.c (init_alias_info, - compute_points_to_and_addr_escape, - compute_flow_sensitive_aliasing, maybe_create_global_var): Likewise. - * tree-ssa-dce.c (mark_control_dependent_edges_necessary): Likewise. - * tree-ssa-live.c (new_tree_live_info, live_worklist, - calculate_live_on_entry, calculate_live_on_exit, compare_pairs, - sort_coalesce_list, build_tree_conflict_graph, dump_live_info - tree-ssa-loop-manip.c (add_exit_phis_var): Likewise. - tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, - add_call_read_ops): Likewise. - * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Likewise. - * tree-ssa-live.h (num_var_partitions): Return unsigned. - -2004-11-03 Dorit Naishlos - - PR tree-optimization/18009 - * tree-vectorizer.h (enum dr_alignment_support): New type. - (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): Removed. - (LOOP_UNALIGNED_DR): replaced with LOOP_VINFO_UNALIGNED_DR and holds a - single data_reference (instead of a varray of references). - * tree-vectorizer.c (new_loop_vec_info): Likewise. - (vect_gen_niters_for_prolog_loop): Likewise. - (vect_update_inits_of_drs): Likewise. - - (vect_update_inits_of_drs): Setting of DR_MISALIGNMENT moved to - vect_enhance_data_refs_alignment. - (vect_do_peeling_for_alignment): Likewise. - (vect_enhance_data_refs_alignment): Decide if and by how much to peel; - this functionality used to be in vect_analyze_data_refs_alignment. - Also update DR_MISALIGNMENT due to peeling; this functionality used to - be in vect_update_inits_of_drs and vect_do_peeling_for_alignment). - (vect_analyze_data_refs_alignment): Decision on whether and by how much - to peel moved to vect_enhance_data_refs_alignment. Call - vect_supportable_dr_alignment. - - (vect_compute_data_ref_alignment): Set STMT_VINFO_VECTYPE. - (vect_compute_data_refs_alignment): Return bool. Consider return value - of vect_compute_data_ref_alignment and return true/false accordingly. - (vect_enhance_data_refs_alignment): Consider return value of - vect_compute_data_refs_alignment and return true/false accordingly. - - (vect_supportable_dr_alignment): New function. - (vectorizable_store): Call vect_supportable_dr_alignment. - (vectorizable_load): Call vect_supportable_dr_alignment. Alignment - support checks moved from here to vect_supportable_dr_alignment. - - (vect_transform_loop): Avoid 80 columns overflow. - -2004-11-03 Andrew Pinski - - * timevar.c (timevar_enable): Change from - static. - (timevar_push): Rename to ... - (timevar_push_1): this and remove the - enabled check. - (timevar_pop): Rename to ... - (timevar_pop_1): this and remove the - enabled check. - * timevar.h (POP_TIMEVAR_AND_RETURN): Use do/while loops. - (timevar_pop): New macro. - (timevar_push): New macro. - (timevar_enable): Declare. - -2004-11-03 Andrew Pinski - - * config/darwin.h (REAL_LIBGCC_SPEC): Define to use shared - libgcc for shared libraries. - -2004-11-03 Ulrich Weigand - - * config/s390/s390-protos.h (s390_split_access_reg): Add prototype. - * config/s390/s390.c (s390_split_access_reg): New function. - (regclass_map): Add access registers. - (get_thread_pointer): Use access register instead of UNSPEC_TP. - * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Set to 38. - (ACCESS_REGNO_P, ACCESS_REG_P): New macros. - (TP_REGNUM): New define. - (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, - REG_ALLOC_ORDER): Add access registers. - (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, CLASS_MAX_NREGS, - CANNOT_CHANGE_MODE_CLASS): Support access registers. - (enum reg_class): Add ACCESS_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Likewise. - (REG_CLASS_FROM_LETTER): Add 't' constraint. - (REGISTER_NAMES): Add access registers. - * config/s390/s390.md (UNSPEC_TP): Remove. - ("*movdi_64"): Add access register alternatives. Provide splitters - to split DImode access register <-> GPR moves into SImode moves. - ("*movsi_zarch", "*movsi_esa"): Add access register alternatives. - ("movstrictsi"): Likewise. - ("get_tp_64", "get_tp_31"): Reimplement using access registers. - ("set_tp_64", "set_tp_31"): Likewise. - ("*set_tp"): New insn. - -2004-11-03 Kazu Hirata - - * tree-phinodes.c (resize_phi_node): Copy only a portion of - the PHI node currently in use. - -2004-11-03 Andrew Pinski - - PR tree-opt/18231 - * tree.c (staticp) : Nested functions are static - also. - -2004-11-03 Andrew MacLeod - - PR tree-optimization/18270 - * tree-outof-ssa.c (analyze_edges_for_bb): If a block has incoming - abnormal edges, commit all pending stmts on incoming edges. - -2004-11-03 Ulrich Weigand - - * tree-ssa-loop-ivopts.c (get_address_cost): Offset zero does not - cause extra costs. Generate canonical RTL. - -2004-11-02 Daniel Berlin - - * lambda-code.c (lambda_compute_auxillary_space): Update comments. - (lambda_compute_target_space). Ditto. - * lambda.h (lambda_trans_matrix): Ditto. - (lambda_linear_expression): Ditto. - (lambda_body_vector): Ditto. - (lambda_loopnest): Ditto. - * tree-loop-linear.c (gather_interchange_stats): Combine tests, - update comments, and remove pointless addition of 0. - (linear_transform_loops): Update comments. - -2004-11-03 Sebastian Pop - - * tree.c (tree_fold_gcd): Use FLOOR_MOD_EXPR instead of - CEIL_MOD_EXPR. - -2004-11-03 Jeff Law - - * predict.c (struct block_info_def): Kill "tovisit" field. - (propagate_freq): Accept new "tovisit" parameter. Change - read/write access methods for "tovisit" to check the "tovisit" - bitmap instead of a bit in block_info_def. - (estimate_loops_at_level): Allocate "tovisit" bitmap. Pass - it to propagate_freq. - - * stmt.c (expand_case): Speed up code to detect duplicate case - label targets and count unique case label targets. - -2004-11-03 Kazu Hirata - - * cppdefault.c, cppdefault.h, timevar.h: Update copyright. - -2004-11-03 Kazu Hirata - - * bitmap.h, dbxout.c, tree-mudflap.c: Fix comment formatting. - -2004-11-03 Kazu Hirata - - * tree-cfg.c (find_taken_edge): Abort if we are given a - statement that is neither COND_EXPR nor SWITCH_EXPR. - -2004-11-02 Zdenek Dvorak - - * fold-const.c (fold): Reassociate also (x - mult) + mult and - (mult - x) + mult. Cast operands of expression after applying - distributive law to the correct types. Apply distributive law - to a * c - b * c for all non-float types. - -2004-11-02 Geoffrey Keating - - * configure.ac: Don't clear STMP_FIXINC or STMP_FIXPROTO just - because we don't want to run them now; instead, set them to - stmp-install-fixproto or stmp-install-fixinc. - * Makefile.in (stmp-install-fixproto): New. - (stmp-install-fixinc): New. - * configure: Regenerate. - -2004-11-02 Nathan Sidwell - - * flow.c (init_propagate_block_info): Use bitmap_empty_p on result - of bitmap_xor. - -2004-11-02 Ziemowit Laski - - * c-lang.c (LANG_HOOKS_TYPES_COMPATIBLE_P): Remove. - (c_types_compatible_p): Move function definition... - * c-objc-common.c (c_types_compatible_p): ...here. - * c-objc-common.h (LANG_HOOKS_TYPES_COMPATIBLE_P): Moved here from - c-lang.c. - -2004-11-02 Steven Bosscher - - * cfgloop.h (struct loop): Update comment. - * cse.c (cse_main): Remove obsolete comment. - - * expr.h (gen_cond_trap): Move prototype under functions provided - by optabs.c. - (canonicalize_condition, get_condition): Move to... - * rtl.h (canonicalize_condition, get_condition): ...here. - (branch_target_load_optimize): Add comment that this function is - in bt-load.c. - * loop.c (canonicalize_condition, get_condition): Move to... - * rtlanal.c (canonicalize_condition, get_condition): ...here. - * sched-deps.c (get_condition): Rename to sched_get_condition. - (add_dependence): Update this caller. - -2004-11-02 Andrew Pinski - - PR tree-opt/16808 - * tree-ssa.c (replace_immediate_uses): If we call fold_stmt, make sure - that the vops get marked for renaming. - -2004-11-02 Andreas Krebbel - - * config/s390/s390.md ("movcc"): Set type attribute. - -2004-11-02 Kazu Hirata - - * tree-phinodes.c (add_phi_arg): Add an assertion that the - edge already exists. - -2004-11-02 Kazu Hirata - - * tree-phinodes.c (remove_phi_arg_num): Do not zero the - element that's being removed. - -2004-11-02 Kazu Hirata - - * tree-ssa-threadupdate.c (copy_phis_to_block): Install PHI - arguments using PENDING_STMT. - (thread_block): Call copy_phis_to_block after redirecting an - edge. - -2004-11-02 Nathan Sidwell - - * bitmap.h (bitmap_and, bitmap_and_into, bitmap_and_compl, - bitmap_and_compl_into, bitmap_ior, bitmap_iot_into, - bitmap_ior_compl, bitmap_xor, bitmap_xor_into): Produce void. - (bitmap_ior_and_compl_into): Produce bool. - (bitmap_union_of_diff): Rename to ... - (bitmap_ior_and_compl): ... here. Produce bool. - * bitmap.c (bitmap_ior_and_compl_into): Return bool. Use - bitmap_operation directly. - (bitmap_union_of_diff): Rename to ... - (bitmap_ior_and_compl): ... here. Return bool, use - bitmap_operation directly. - * df.c (df_rd_transfer_function): Use bitmap_ior_and_compl. - (df_ru_transfer_function, df_lr_transfer_function): Likewise. - * global.c (modify_bb_reg_pav): Likewise. - - * bitmap.h (bitmap_equal_p): Return bool. - (bitmap_intersect_p, bitmap_intersect_compl_p): Declare. - * bitmap.c (bitmap_equal_p): Return bool. Compare directly. - (bitmap_intersect_p, bitmap_intersect_compl_p): New. - * flow.c (calculate_global_regs_live): Use bitmap_intersect_p and - bitmap_intersect_compl_p. - * ifcvt (dead_or_predicable): Likewise. - -2004-11-02 Nathan Sidwell - - PR rtl-optimization/17104 - * config/rs6000/rs6000.c (rs6000_emit_move): Don't wrap small - loads in zero_extend. - -2004-11-02 Danny Smith - - PR debug/18242 - * toplev.c (debug_type_names): Remove "dwarf-1". - -2004-11-02 Ben Elliston - - * timevar.h (timevar_get): Remove. - * timevar.c (timevar_get): Remove unused function. - -2004-11-02 Joseph S. Myers - - * doc/include/texinfo.tex: Update from Texinfo CVS. - -2004-11-02 Ben Elliston - - * cppdefault.h (cpp_SYSROOT): Remove. - * cppdefault.c (cpp_SYSROOT): Likewise. - -2004-11-01 Andrew MacLeod - - PR tree-optimization/16447 - * tree-cfg.c (bsi_commit_one_edge_insert): Rename from - bsi_commit_edge_inserts_1, and make funtion external. Return new block. - (bsi_commit_edge_inserts): Use renamed bsi_commit_one_edge_insert. - * tree-optimize.c (pass_cleanup_cfg_post_optimizing): Enable listing. - * tree-flow.h (bsi_commit_one_edge_insert): Extern decl. - * tree-outof-ssa.c (rewrite_trees): Don't commit edges here. - (same_stmt_list_p): New. Return TRUE if edge is to be forwarded. - (identical_copies_p): New. Return true is two copies are the same. - (identical_stmt_lists_p): New. Return true if stmt lists are the same. - (analyze_edges_for_bb): New. Determine how best to insert edge stmts - for a basic block. - (perform_edge_inserts): New. Determine what to do with all stmts that - have been inserted on edges. - (remove_ssa_form): Analyze and commit edges from here. - -2004-11-01 Andrew Pinski - - PR bootstrap/18232 - * bitmap.h (bmp_iter_end_p): Take a const pointer instead of a struct. - (EXECUTE_IF_SET_IN_BITMAP): Update call to bmp_iter_end_p. - (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. - (EXECUTE_IF_AND_IN_BITMAP): Likewise. - -2004-11-01 Joseph S. Myers - - PR c/18239 - * c-decl.c (get_parm_info): Allow FUNCTION_DECLs to appear amongst - parameter declarations. - -2004-11-01 Andreas Krebbel - - * config/s390/s390.c (regclass_map): Put reg 33 (cc) to CC_REGS group. - (s390_secondary_input_reload_class) - (s390_secondary_output_reload_class): Use GENERAL_REGS to reload a cc - register. - (s390_expand_cmpmem): Enable cmpmem implementation. - * config/s390/s390.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): - Added three new classes: CC_REGS, ADDR_CC_REGS, GENERAL_CC_REGS. - (REG_CLASS_FROM_LETTER): New constraint 'c' added. - * config/s390/s390.md ("movcc"): New insn pattern. - * doc/md.texi: Document 'c' constraint for s390. - -2004-11-01 Nathan Sidwell - - PR c++/18064 - * doc/extend.texi (Deprecated Features): Deprecate G++ covariant - extension. - -2004-10-16 Daniel Berlin - - Fix PR tree-optimization/17672 - Fix PR tree-optimization/18168 - - * lambda-code.c (lambda_lattice_compute_base): Fix reversed - assert test. - (gcc_tree_to_linear_expression): Add extra to existing constant. - (depth_of_nest): Factor out function used in various places. - (gcc_loop_to_lambda_loop): Clean up code a little bit. No - functional changes. - (find_induction_var_from_exit_cond): Stop guessing, and just - get the right answer :). - (gcc_loopnest_to_lambda_loopnest): Remove useless pre-allocation. - Print out message about result of attempt to create perfect nest. - (lbv_to_gcc_expression): Add type argument, use it to do math - and induction variable creation. - (lle_to_gcc_expression): Ditto. - (lambda_loopnest_to_gcc_loopnest): Create new iv with same type as - oldiv. Pass type argument to lle_to_gcc_expression and - lbv_to_gcc_expression. - Reset number of iterations after transformation. - (perfect_nestify): Remove useless pre-allocation, and cleanup - a small amount. - - * tree-data-ref.c (build_classic_dist_vector): Return false for - dependences completely outside of the loop nest we asked about. - (build_classic_dir_vector): Ditto. - (compute_data_dependences_for_loop): Only add dependence relations - inside the loop we asked about. - - * tree-loop-linear.c (linear_transform_loops): Use DDR_SIZE_VECT. - Compute immediate uses. - - * tree-optimize.c: Move linear_transform_loops to before ivcanon. - -2004-11-01 Kazu Hirata - - * tree-cfg.c (thread_jumps): Fix a comment typo. - -2004-11-01 Kazu Hirata - - * tree-cfg.c (thread_jumps): Fix a comment typo. - -2004-10-31 Nicolas Pitre - - * config/arm/ieee754-sf.S (floatdisf): Fix regression with - values smaller than 2^32. - -2004-10-31 Jeff Law - - * cfgloop.h (struct loop): Remove unused "nodes" field. - * timevar.def (TV_TREE_LOOP_BOUNDS): New. - * tree-data-ref.c (find_data_references_in_loop): Use get_loop_body - instead of calling flow_bb_inside_loop_p for every basic block - in the function. - * tree-ssa-loop.c (pass_record_bounds): Use TV_TREE_LOOP_BOUNDS. - -2004-10-31 Graham Stott - - * config/pa/pa.md: (prefetch_64, prefetch_32): Fix typo. Use - INT_5_BITS instead of VAL_5_BITS_P. - -2004-10-31 Roger Sayle - - PR middle-end/14521 - * tree-inline.c (inline_forbidden_p_1): Use %qF instead of '%F' - for consistent quoting in diagnostic messages. - (expand_call_inline): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - * tree-ssa.c (warn_uninitialized_var): Likewise. - (warn_uninitialized_phi): Likewise. - -2004-10-31 Richard Sandiford - - * config/mips/mips.c (mips_cannot_change_mode_class): Use a stricter - mode check. - -2004-10-31 Kazu Hirata - - * c-common.c: Fix a comment typo. - -2004-10-31 Jason Merrill - - PR middle-end/17526 - * tree-gimple.c (is_gimple_mem_rhs): Also require a val for - aggregate types that are not BLKmode. - -2004-10-30 Ziemowit Laski - - * c-common.h (objc_lookup_ivar): Add second parameter to - prototype. - * c-typeck.c (build_external_ref): After looking up symbol, - pass it to objc_lookup_ivar() to decide whether it or the - ivar should be used, rather than deciding the issue locally. - * stub-objc.c (objc_lookup_ivar): Add an OTHER parameter, - which is simply returned in the non-ObjC case. - -2004-10-30 Danny Smith - - * sdbout.c (sdbout_symbol): Do not output type .def statements - for builtin types. - -2004-10-30 Gabriel Dos Reis - - * c-common.c (catenate_strings): New. - (c_parse_error): Use it. Don't over-escape. - -2004-10-30 Kaz Kojima - - * config/sh/sh.c (calc_live_regs): Declare reg as unsigned and - modify the for loop expressions for it. Remove unnecessary casts. - (sh_expand_prologue): Declare reg as unsigned. - (sh_gimplify_va_arg_expr): Initinalize lab_over. - (sh_handle_sp_switch_attribute): Add const qualifier appropriately. - -2004-10-30 Geoffrey Keating - - * doc/invoke.texi (Darwin Options): Improve description of - how the subtype is chosen. - -2004-10-30 Roger Sayle - - PR middle-end/18096 - * config/rs6000/rs6000.c (rs6000_emit_allocate_stack): Check that - the stack adjustment, "size", is valid for Pmode. If the stack - frame is too large, generate a trap insn and issue a warning. - -2004-10-30 Kazu Hirata - - * tree-ssa-dom.c: Fix comment typos. - -2004-10-30 Kaz Kojima - - * config/sh/sh.c (prepare_move_operands): Use operands[0] - for the output rtl if no_new_pseudos is set. Remove redundant - line. - -2004-10-30 Joseph S. Myers - - PR c/16666 - * c-decl.c (start_function): Don't check for DECL_BUILT_IN when - determining whether to copy parameter types from a previous - prototype declaration. - -2004-10-29 Roger Sayle - - PR rtl-optimization/17581 - * cselib.c (cselib_process_insn): The last instruction of a libcall - block, with the REG_RETVAL note, should be considered in the libcall. - * gcse.c (do_local_cprop): Allow constants to be propagated outside - of libcall blocks. - (adjust_libcall_notes): Use simplify_replace_rtx instead of - replace_rtx to avoid creating invalid RTL in REG_RETVAL notes. - -2004-10-30 Kazu Hirata - - * tree-phinodes.c (create_phi_node): Don't zero PHI_REWRITTEN. - -2004-10-29 Jeff Law - - * tree-ssa-dom.c (struct edge_info): New structure holding - edge equivalences and edge redirection information. - (get_eq_expr_value, record_dominating_conditions): Kill. - (propagate_to_outgoing_edges): Renamed from cprop_into_phis. - Call record_edge_info. - (allocate_edge_info, free_edge_info): New. - (tree_ssa_dominator_optimize): Use propagate_to_outgoing_edges - rather than cprop_into_phis. Free all edge infos before threading - jumps. - (thread_across_edge): Allocate new edge info structures as needed - and store the redirection target into the edge info structure - instead of the edge's AUX field. - (dom_opt_initialize_block): Mark unused argument with ATTRIBUTE_UNUSED. - (record_equivalence_from_incoming_edge): Lose unnecessary argument. - Revamp code which finds and records equivalences associated with - edges to use saved data in the edge_info structure. - (record_equivalencs_from_phis): Similarly. - (dom_opt_finalize_block): Revamp code which finds and records - equivalences associated with edges to use saved data in the - edge_info structure. - (build_and_record_new_cond): New function. - (record_conditions): Use build_and_record_new_cond to record - dominating conditions. - (record_edge_info): New function. - (record_range): Tighten test for conditions which create - useful range records. - -2004-10-29 Geoffrey Keating - - * config/i386/darwin.h (ASM_SPEC): Simplify. - (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec. - * config/rs6000/darwin.h (DARWIN_SUBARCH_SPEC): New. - (SUBTARGET_EXTRA_SPECS): Add darwin_subarch spec. - * config/darwin.h (LINK_COMMAND_SPEC): Don't pass -arch here. - (LINK_SPEC): Do pass -arch here. Handle -force_cpusubtype_ALL - in all cases. Pass the right -arch or -arch_only based on -mcpu. - (ASM_SPEC): Handle -force_cpusubtype_ALL. - * doc/invoke.texi (Darwin Options): Improve documentation for - Darwin linker (and libtool) switches. - - * config/rs6000/darwin-fallback.c: Include . - -2004-10-29 Stan Shebs - - * config/rs6000/darwin-tramp.asm: Make more 64-bit-friendly. - -2004-10-29 Kazu Hirata - - * tree-phinodes.c (allocate_phi_node): New. - (make_phi_node, resize_phi_node): Use it. - -2004-10-29 David Edelsohn - - * config/rs6000/sysv4.h (TARGET_POWER): Define as 0. - * config/rs6000/darwin.h (TARGET_POWER): Define as 0. - -2004-10-29 Kazu Hirata - - * tree-phinodes.c (make_phi_node, resize_phi_node): Don't zero - the whole PHI node. - * tree.h (tree_phi_node): Tell the garbage collector to chase - num_args arguments. - -2004-10-29 Richard Earnshaw - - * opts.c (decode_options): Lower the crossjump threshold for -Os. - -2004-10-29 Diego Novillo - - * tree.h (struct tree_ssa_name): Remove field 'equiv'. - -2004-10-28 Nathan Sidwell - - * bitmap.h (bitmap_empty_p): New. - (bitmap_and, bitmap_and_into, bitmap_and_compl, - bitmap_and_compl_into, bitmap_ior, bitmap_ior_into, - bitmap_ior_compl, bitmap_xor, bitmap_xor_into): New bitmap - operation macros. - (bitmap_ior_and_compl): Rename to ... - (bitmap_ior_and_compl_into): ... here. - * bitmap.c (bitmap_equal_p): Use bitmap_xor. - (bitmap_ior_and_compl): Rename to ... - (bitmap_ior_and_compl_into): ... here. Adjust. Return changed - flag. - (bitmap_union_of_diff): Use renamed bitmap functions. - * basic-block.h (AND_REG_SET, AND_COMPL_REG_SET, IOR_REG_SET, - XOR_REG_SET, IOR_AND_COMPL_REG_SET): Likewise. - * cfgrtl.c (safe_insert_insn_on_edge): Likewise. - * df.c (df_bb_rd_local_compute) - * flow.c (calculate_global_regs_live, - init_propagate_block_info): Likewise. - * ifcvt.c (find_if_case_1, find_if_case_2, - dead_or_predicable): Likewise. - * ra-build.c (union_web_part_roots, livethrough_conflicts_bb, - reset_conflicts, conflicts_between_webs): Likewise. - * ra-rewrite.c (reloads_to_loads, rewrite_program2, - detect_web_parts_to_rebuild): Likewise. - * sched-ebb.c (compute_jump_reg_dependencies): Likewise. - * tree-int-ssa.c (insert_phi_nodes_for, rewrite_into_ssa): Likewise. - * tree-sra.c (decide_instantiations): Likewise. - * tree-ssa-alias.c (create_name_tags, - merge_pointed_to_info): Likewise. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise. - * tree-ssa-loop-im.c (move_computations): Likewise. - * tree-ssa-operands.c (get_call_expr_operands): Likewise. - * tree-ssa-pre.c (fini_pre): Likewise. - * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. - * tree-ssanames.c (any_marked_for_rewrite_p): Likewise. - * tree-vectorizer.c (vectorize_loops): Likewise. - -2004-10-29 Nick Clifton - - config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): When - adding the PIC register to the fixed_regs array, also add it - to the call_used_regs array. - -2004-10-29 Eric Botcazou - - * gthr-posix.h (__gthread_recursive_mutex_init_function): Guard - with #ifdef PTHREAD_MUTEX_RECURSIVE/#endif pairs. - -2004-10-28 Daniel Berlin - - * tree-into-ssa.c (rewrite_virtual_phi_arguments): New function. - (rewrite_blocks): Modify argument, and use it to decide which - function to call. - (rewrite_def_def_chains): Call rewrite_blocks with true here. - (rewrite_into_ssa): and call it with false here. - -2004-10-29 Kazu Hirata - - * tree-phinodes.c (add_phi_arg): Turn an "if" that always - triggers into gcc_assert. - -2004-10-28 Diego Novillo - - PR tree-optimization/16728 - * tree-flow.h (get_ptr_info): Declare. - * tree-ssa-alias.c (get_ptr_info): Make extern. - * tree-ssa-copy.c (merge_alias_info): Merge flow-sensitive - alias information. - -2004-10-28 Stan Shebs - - * config/rs6000/darwin.h (SUBTARGET_EXTRA_SPECS): Handle -m64. - * config/rs6000/rs6000.c (rs6000_darwin_file_start): Add ppc64 - case. - -2004-10-28 Frank Ch. Eigler - - * tree-mudflap.c (mudflap_init): Mark cache-lookup decls to - prevent their later unnecessary registration. - (mf_build_check_statement_for): Remove "addr" argument, and - related "__mf_value" generated code. Update callers. - (mf_decl_eligible_p): New function, factored from mx_register_decls. - (mx_register_decls): Call it. - (mf_xform_derefs_1): Rewrite COMPONENT_REF and ARRAY_REF cases - to restore support for complex nested expressions. - (mudflap_enqueue_decl): Simplify. Move registration call emission - out ... - (mudflap_finish_file): ... to here. - (mudflap_enqueue_constant): Remove dump code. - -2004-10-28 Zack Weinberg - - PR 18199 - * dbxout.c (dbxout_begin_complex_stabs_noforcetext): New function. - (DBX_FINISH_STABS): Add (unused by default) SYM parameter. - (dbxout_finish_complex_stabs): Update to match. - (dbxout_symbol_location): Call emit_pending_bincls_if_required - and FORCE_TEXT before DBX_STATIC_BLOCK_START. Use - dbxout_begin_complex_stabs_noforcetext. - * xcoffout.h (DBX_FINISH_STABS): Restore special case for - N_GSYM, using new SYM parameter. Correct logic for special - cases for N_FUN. - - * varasm.c (function_section): If DECL is NULL_TREE, don't try - to do anything else. Do not call get_insns if cfun or - cfun->emit are NULL. - -2004-10-28 Adam Nemet - - PR middle-end/18160 - * c-typeck.c (c_mark_addressable): Issue error if address of a - register variable is taken. Use "%qD" to print DECL_NAME. - -2004-10-28 Diego Novillo - - * opts.c (decode_options): Don't run PRE at -Os. - -2004-10-28 Richard Henderson - - * config/alpha/alpha.md (movqicc_internal): Allow exactly one - zero in the conditional. - (movhicc_internal, movsicc_internal, movdicc_internal): Likewise. - -2004-10-28 Richard Henderson - - * cse.c (memory_extend_rtx): Remove. - (cse_main): Don't set it. - (cse_insn): Use a local buffer instead. - -2004-10-28 Andreas Krebbel - - * profile.c (branch_prob): Call to init_edge_profiler added. - * rtl-profile.c (rtl_init_edge_profiler): New function. - (rtl_gen_edge_profiler): Replaced call to insert_insn_on_edge with - call to safe_insert_insn_on_edge. - (rtl_profile_hooks): rtl_init_edge_profiler added. - * tree-profile.c (tree_init_edge_profiler): New function. - (tree_profile_hooks): tree_init_edge_profiler added. - * value-prof.h (profile_hooks) init_edge_profiler prototype added. - -2004-10-28 Nick Clifton - - * config/iq2000/iq2000.c (iq2000_expand_epilogue): Use - emit_jump_insn() to generate the return instruction. - -2004-10-28 Kazu Hirata - - * tree-phinodes.c: Remove trailing whitespace. - -2004-10-28 Kazu Hirata - - * tree-ssa-loop-ivopts.c: Fix a comment typo. - * doc/invoke.texi: Fix a typo. - -2004-10-28 Kazu Hirata - - * Makefile.in (OBJS-common): Remove duplicates. - -2004-10-28 Kazu Hirata - - * lambda-code.c (nestify_update_pending_stmts): Remove. - (perfect_nestify): Use flush_pending_stmts instead of - nestify_update_pending_stmts. - * tree-cfg.c (tree_make_forwarder_block): Use - flush_pending_stmts. - * tree-flow.h: Add a prototype for flush_pending_stmts. - * tree-ssa-loop-manip.c (tree_duplicate_loop_to_header_edge): - Use flush_pending_stmts. - (lv_update_pending_stmts): Remove. - (tree_ssa_loop_version): Use flush_pending_stmts instead of - lv_update_pending_stmts. - * tree-ssa.c (flush_pending_stmts): New. - -2004-10-28 Ulrich Weigand - - PR target/15286 - * final.c (alter_subreg): Compute correct offset to use with - paradoxical SUBREGs of memory operands. - * recog.c (general_operand): Allow paradoxical SUBREGs of - memory operands after reload. - * simplify-rtx.c (simplify_gen_subreg): Fail if simplify_subreg - has failed when passed a hard register. - -2004-10-28 Aldy Hernandez - - * function.c (assign_parm_setup_block): Handle parallels correctly. - -2004-10-28 Kaz Kojima - - * final.c (shorten_branches): Initialize flags structure. - -2004-10-28 Nathan Sidwell - - * tree.c (int_cst_node, int_cst_hash_table): New variables. - (init_ttree): Initialize them. - (int_cst_hash_hash, int_cst_hash_eq): New hashing functions. - (build_int_cst_wide): Use hash table for oversized integers. - -2004-10-28 Nick Clifton - - * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Define - begin_label. - -2004-10-27 Richard Henderson - - PR middle-end/18163 - * expr.c (emit_group_load): Don't go force temporary for memory - or concat source. - (emit_group_store): Similarly. - -2004-10-27 Andrew Pinski - - PR other/18186 - * common.opt (--param): Fix spelling of parameter. - -2004-10-27 Andrew Pinski - - PR tree-opt/17529 - * tree-cfg.c (remove_useless_stmts_1) : - Don't fold statement. - : Fold the statement. - -2004-10-28 Kazu Hirata - - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) - : Use EDGE_COUNT instead of GOTO_DESTINATION. - -2004-10-28 Joseph S. Myers - - * doc/contrib.texi, doc/cpp.texi, doc/cppopts.texi, - doc/extend.texi, doc/gcov.texi, doc/install.texi, doc/invoke.texi, - doc/libgcc.texi, doc/md.texi, doc/passes.texi, - doc/sourcebuild.texi, doc/tm.texi: Improve Texinfo formatting. - -2004-10-28 Joseph S. Myers - - * doc/c-tree.texi, doc/cpp.texi, doc/implement-c.texi, - doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/tm.texi: Put - punctuation outside quotes. - -2004-10-27 David Mosberger - James E Wilson - - PR target/13158 - * config/ia64/ia64.c (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on - sibcall alloc instruction. - (process_set): Handle sibcall alloc instruction. - -2004-10-27 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_attribute_table): Add - SUBTARGET_ATTRIBUTE_TABLE. - * config/darwin.h (ASM_WEAKEN_DECL): Handle weak_import. - (SUBTARGET_ATTRIBUTE_TABLE): Define. - * config/darwin.c (darwin_handle_weak_import_attribute): New. - (HAVE_DEAD_STRIP): Delete. - (no_dead_strip): Don't test HAVE_DEAD_STRIP. - * config/darwin-protos.h (darwin_handle_weak_import_attribute): - Prototype. - - * doc/tm.texi (USE_SELECT_SECTION_FOR_FUNCTIONS): Document. - - * config/darwin.h (GTHREAD_USE_WEAK): Define. - -2004-10-28 Ben Elliston - - * params.def (PARAM_SRA_MAX_STRUCTURE_SIZE): New. - (PARAM_SRA_FIELD_STRUCTURE_RATIO): Likewise. - * params.h (SRA_MAX_STRUCTURE_SIZE): New. - (SRA_FIELD_STRUCTURE_RATIO): Likewise. - * tree-sra.c: Include "params.h". - (decide_block_copy): Use new parameters. - * doc/invoke.texi (Optimize Options): Document new SRA pass - parameters sra-max-structure-size and sra-field-structure-ratio. - -2004-10-27 Nicolas Pitre - - * config/arm/ieee754-df.S (floatdidf): Fix regression with big values. - -2004-10-27 Zdenek Dvorak - - PR tree-optimization/18048 - * fold-const.c (try_move_mult_to_index): New function. - (fold): Use try_move_mult_to_index. - * tree-ssa-loop-ivopts.c (try_add_cand_for): Prefer common candidates. - * tree-ssa-loop-niter.c (number_of_iterations_cond): Produce - an all-ones unsigned constant without extra bits. - * tree.c (build_low_bits_mask): New function. - * tree.h (build_low_bits_mask): Declare. - -2004-10-27 David Edelsohn - - PR target/17956 - * config/rs6000/rs6000.md (maxsf3): Add !flag_trapping_math to - final condition. - (minsf3): Same. - (maxdf3): Same. - (mindf3): Same. - -2004-10-27 Kazu Hirata - - * tree-cfg.c (thread_jumps): Speed up by reordering the two - conditions for entering basic blocks into worklist. - -2004-10-27 Kazu Hirata - - * tree-cfg.c (thread_jumps): Speed up by pretending to have - ENTRY_BLOCK_PTR in worklist. - -2004-10-27 Kazu Hirata - - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary) - : Don't let an explicit GOTO_EXPR slip through. - -2004-10-27 Daniel Berlin - - Fix PR tree-optimization/17133 - - * tree-cfg.c (rewrite_to_new_ssa_names_bb): Also rewrite must - def kill operand. - - * tree-flow-inline.h: V_MUST_DEF_OP became V_MUST_DEF_RESULT. - (get_v_must_def_result_ptr): Modify for new structure of - v_must_defs array. - (get_v_must_def_kill_ptr): New. - (op_iter_next_use): Add support for the kill that occurs in V_MUST_DEFs. - (op_iter_next_tree): Ditto. Also V_MAY_DEF_OP became V_MAY_DEF_RESULT. - (op_iter_next_def): V_MAY_DEF_OP became V_MAY_DEF_RESULT. - (op_iter_init): Initialize new mustu members. - (op_iter_next_mustdef): New function. - (op_iter_init_mustdef): Ditto. - - * tree-flow.h (rewrite_def_def_chains): New function. - - * tree-into-ssa.c (mark_def_sites): Handle mustdefkill operands. - (ssa_mark_def_sites): Ditto. - (rewrite_stmt): Ditto. - (ssa_rewrite_stmt): Ditto. - (rewrite_blocks): Factor out from rewrite_into_ssa. - (mark_def_block_sites): Ditto. - (rewrite_def_def_chains): New function, just rewrites def-def - chains without phi node insertion. - - * tree-pass.h (TODO_fix_def_def_chains): New todo flag. - - * tree-optimize.c (execute_todo): Handle TODO_fix_def_def_chains. - - * tree-pretty-print.c (dump_vops): Print out MUST_DEF's so that - they include the rhs now. - - * tree-ssa-ccp.c (visit_assignment): V_MUST_DEF_OP became - V_MUST_DEF_RESULT. - - * tree-ssa-dce.c (mark_operand_necessary): Add phionly argument. - Update callers. - (mark_really_necessary_kill_operand_phis): New function. - (perform_tree_ssa_dce): Call it. - (pass_dce): Add TODO_fix_def_def_chains. - (pass_cd_dce): Ditto. - - * tree-ssa-loop-im.c (determine_max_movement): Look at kills as - well. - (rewrite_mem_refs): Ditto. - - * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Look at kills - as well. - - * tree-ssa-operands.c (allocate_v_may_def_optype): - v_may_def_operand_type_t became v_def_use_operand_type_t. - (allocate_v_must_def_optype) Ditto. - (finalize_ssa_v_must_defs): Update for new operand type, as well - as setting the use portion as well. - (copy_virtual_operands): Copy the kill operand as well. - (create_ssa_artficial_load_stmt): V_MUST_DEF_OP became - V_MUST_DEF_RESULT. - - * tree-ssa-operands.h (v_may_def_operand_type): Renamed to - v_def_use_operand_type. - (v_must_def_optype_d): Use v_def_use_operand_type. - (V_MUST_DEF_OP_*): Renamed to V_MUST_DEF_RESULT_* - (V_MUST_DEF_KILL_*): New macros. - (struct ssa_operand_iterator_d): Add num_v_mustu and v_mustu_i - members. - Rename existing must_i and num_v_must members to mustd_i and - num_v_mustd. - (SSA_OP_VMUSTDEFKILL): New flag. - (SSA_OP_VIRTUAL_KILLS): New flag. - (SSA_OP_ALL_OPERANDS): Add in SSA_OP_ALL_KILLS. - (SSA_OP_ALL_KILLS): New flag. - (FOR_EACH_SSA_MUSTDEF_OPERAND): New macro. - - * tree-ssa.c (verify_ssa): Verify virtual kills as well. - - * tree-vectorizer.c (vect_create_data_ref_ptr): V_MUST_DEF_OP - became V_MUST_DEF_RESULT. - (rename_variables_in_bb): Rename kill pointer as well. - - * tree-dfa.c (compute_immediate_uses_for_stmt): Add kills into the - immediate uses. - -2004-10-27 Richard Sandiford - - * dbxout.c (dbxout_source_line): Move declaration of begin_label to - the block that needs it. - -2004-10-27 Zack Weinberg - - * dbxout.c (dbxout_finish_complex_stabs): Mark 'line' variable - ATTRIBUTE_UNUSED. - -2004-10-27 Zack Weinberg - - * c-lex.c (cb_def_pragma): Clean up code for making location - palatable to diagnostic.c. - -2004-10-27 Steven Bosscher - - PR tree-optimization/17757 - * tree-phinodes.c (remove_phi_arg_num): Don't remove PHIs - without any PHI arguments left. Make sure the argument that - we're supposed to remove exists at all. - -2004-10-27 Paul Brook - - * configure.ac: Don't test for [build] __cxa_atexit when building a - cross compiler. - * configure: Regenerate. - -2004-10-27 Paul Brook - - * configure.ac: Use build_exeext not host_exeext when lookin for - target tools. - * configure: Regenerate. - -2004-10-27 Andreas Krebbel - - * config/s390/s390.md ("*subdf3_cc"): Replaced plus by minus. - -2004-10-27 Andreas Krebbel - patch originally created by Kelley Cook - - PR middle-end/14684 - * opts.c (OPT_fprofile_generate): Default to -funroll-loops - to match -fprofile-use. - -2004-10-27 Kazu Hirata - - * config/rs6000/rs6000.c: Fix a comment typo. - -2004-10-27 Zack Weinberg - - * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Increment line - counter. - -2004-10-27 Andreas Schwab - - * varasm.c (default_stabs_asm_out_destructor): Mark symbol as - unused. - (default_stabs_asm_out_constructor): Likewise. - -2004-10-26 Geoffrey Keating - - * builtins.c (fold_builtin_unordered_cmp): Always bring both - operands to the same type. - -2004-10-26 James E Wilson - - PR target/18010 - * emit-rtl.c (emit_copy_of_insn_after): Copy RTX_FRAME_RELATED_P. - -2004-10-26 Zack Weinberg - - * dbxout.c: Include obstack.h. - (ASM_STABS_OP): Take XCOFF_DEBUGGING_INFO into account in - default definition. - (ASM_STABD_OP, NO_DBX_MAIN_SOURCE_DIRECTORY, DBX_CONTIN_CHAR): - Default-define here. - (DBX_CONTIN_LENGTH): Move definition with others. - (DBX_FINISH_STABS): New target macro. - (current_sym_code, current_sym_value, current_sym_addr) - (current_sym_nchars, CHARS, dbxout_continue) - (print_int_cst_octal, print_octal, print_wide_int) - (dbxout_prepare_symbol, dbxout_finish_symbol): Delete. - (stabstr_ob, stabstr_last_contin_point): New variables. - (NUMBER_FMT_LOOP): New improper macro. - (dbxout_int, dbxout_stab_value_zero, dbxout_stab_value_label) - (dbxout_stab_value_label_diff, dbxout_stab_value_internal_label) - (dbxout_stab_value_internal_label_diff, dbxout_stabd) - (dbxout_begin_stabn, dbxout_begin_stabn_sline) - (dbxout_begin_simple_stabs, dbxout_begin_simple_stabs_desc) - (dbxout_begin_complex_stabs, dbxout_finish_complex_stabs) - (stabstr_C, stabstr_S, stabstr_I, stabstr_D, stabstr_U, stabstr_O) - (stabstr_continue, DECL_ACCESSIBILITY_CHAR) - New functions and/or proper function-like macros. - (CONTIN): Use stabstr_continue, unconditionally. - (get_lang_number): Define unconditionally, with ATTRIBUTE_UNUSED. - (dbxout_init): Initialize stabstr_ob. Check - NO_DBX_MAIN_SOURCE_DIRECTORY. Only write out the Ltext label - if it was used. Use the new interfaces. - (dbxout_source_file): Remove file argument; always write to - asm_out_file. Use the new interfaces. - (dbxout_type_method_1): Remove second argument which is always - DECL_ASSEMBLER_NAME of the first argument. Use the new interfaces. - (dbxout_type_methods): Remove write-only variables. Use the - new interfaces. - (dbxout_parms): Refactor to remove code duplicated in each of - several successive if-else-if blocks. Use the new interfaces. - (dbxout_function_end, emit_bincl_stab, dbxout_end_source_file) - (dbxout_source_line, dbxout_finish, dbxout_type_index) - (dbxout_type_fields, dbxout_range_type, dbxout_type, dbxout_type_name) - (dbxout_class_name_qualifiers, dbxout_symbol, dbxout_symbol_location) - (dbxout_symbol_name, dbxout_reg_parms, dbxout_args) - (dbx_output_lbrac, dbx_output_rbrac, dbxout_block): - Use the new interfaces. - * Makefile.in (dbxout.o): Update dependencies. - - * defaults.h: Don't define ASM_STABD_OP. - * output.h: Prototype new dbxout_* interfaces. - * system.h: Poison DBX_OUTPUT_GCC_MARKER and DBX_FINISH_SYMBOL. - * varasm.c: Don't define ASM_STABS_OP. - (default_stabs_asm_out_constructor, default_stabs_asm_out_destructor): - Use the new dbxout.c interfaces. Call sorry if neither - DBX_DEBUGGING_INFO nor XCOFF_DEBUGGING_INFO is defined. - - * xcoffout.h: Don't define ASM_STABS_OP. - (DBX_FINISH_SYMBOL): Rewrite and rename DBX_FINISH_STABS. - (DBX_OUTPUT_MAIN_SOURCE_DIRECTORY, DBX_OUTPUT_GCC_MARKER): Delete. - (NO_DBX_MAIN_SOURCE_DIRECTORY, NO_DBX_GCC_MARKER): Define. - (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Change bare block to - do { ... } while (0) idiom. - - * config/alpha/alpha.c (num_source_filenames): Export. - * config/alpha/alpha.h (num_source_filenames): Declare. - (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. - (SDB_OUTPUT_SOURCE_LINE): Add missing newline. - * config/m32r/m32r.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. - Always use .debugsym. Update commentary. - * config/mips/mips.h (DBX_OUTPUT_SOURCE_LINE): Use new interfaces. - (SDB_OUTPUT_SOURCE_LINE): Add missing newline. - * config/rs6000/linux64.h (DBX_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC): - Use new interfaces. - * config/rs6000/rs6000.c: If TARGET_MACHO, include gstab.h. - (macho_branch_islands): Use new interfaces. - - * doc/tm.texi: Update. - -2004-10-26 Aldy Hernandez - - * expr.c (emit_group_store): Do not treat floats as BLKmode. - (emit_group_load): Same. - -2004-10-26 Joseph S. Myers - - * c-parse.in (datadef): Use pedwarn rather than error and warning - for diagnostic in case of no declaration specifiers. - -2004-10-26 Richard Sandiford - - PR bootstrap/15747 - * doc/install.texi (mips-sgi-irix5): Document that /bin/sh has been - reported to hang during bootstrap and that CONFIG_SHELL=/bin/ksh - can be used to work around this. - -2004-10-26 Aldy Hernandez - - * config/rs6000/rs6000.h (MEMBER_TYPE_FORCES_BLK): Adjust for e500 - doubles. - -2004-10-26 Kazu Hirata - - * stmt.c (expand_case): Update a comment. - -2004-10-26 Kazu Hirata - - * stmt.c (expand_case): Put an assertion that index_expr is - never INTEGER_CST. Don't special case for constant - index_expr. - -2004-10-26 Andrew Pinski - - PR 18162 - * c-parse.in (designator): Finish with a semi-colon. - -2004-10-26 Fariborz Jahanian - - * config/rs6000/rs6000.md (andsi3_internal8): Set CR when splitting - into rotlsi3. - -2004-10-26 Kazu Hirata - - * stmt.c (expand_case): Remove code to handle SWITCH_EXPR with - a default case only. - -2004-10-26 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_hard_regno_nregs): Adjust for - e500 doubles. - (spe_build_register_parallel): New. - (rs6000_spe_function_arg): Handle e500 doubles. - (function_arg): Same. - (spe_func_has_64bit_regs_p): Same. - (rs6000_function_value): Same. - (rs6000_libcall_value): Same. - (legitimate_lo_sum_address_p): Return false for e500 doubles. - - * config/rs6000/rs6000.h (LOCAL_ALIGNMENT): Adjust for e500 - doubles. - (DATA_ALIGNMENT): Same. - (CANNOT_CHANGE_MODE_CLASS): Same. - -2004-10-26 Aldy Hernandez - - * expr.c (emit_group_load): Handle floats. - (emit_group_store): Same. - -2004-10-26 Nathan Sidwell - - * c-lex.c (get_nonpadding_token): Remove. - (c_lex_with_flags): Push timevar and eat padding here. Improve - stray token diagnostic. - (lex_string): Replace logic with switch statement, eat padding - token here. - -2004-10-26 Geoffrey Keating - - PR 18149 - * config/i386/darwin.h (ASM_SPEC): Undef it before defining. - -2004-10-25 Geoffrey Keating - - * config/darwin.h (LINK_SPEC): Default weak_reference_mismatches - to 'non-weak'. - (MAKE_DECL_ONE_ONLY): Set DECL_WEAK. - (ASM_MAKE_LABEL_LINKONCE): Delete. - (ASM_WEAKEN_DECL): New. - (ASM_DECLARE_OBJECT_NAME): Look at DECL_WEAK not DECL_ONE_ONLY. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (TEXT_SECTION_ASM_OP): Add a tab. - (DATA_SECTION_ASM_OP): Likewise. - (SECTION_FUNCTION): Add a tab. Use fputs. Don't call - data_section on every section change. - (EXTRA_SECTIONS): Add a bunch of new extra sections. - (EXTRA_SECTION_FUNCTIONS): Likewise. - (USE_SELECT_SECTION_FOR_FUNCTIONS): Define. - (JCR_SECTION_NAME): Define. - (TARGET_SECTION_TYPE_FLAGS): Don't define. - * config/darwin.c (darwin_encode_section_info): A symbol is defined - in this file if it is not weak. - (textcoal_section): Delete. - (datacoal_section): Delete. - (darwin_make_decl_one_only): Delete. - (machopic_select_section): Handle functions. - (darwin_asm_named_section): Add a tab. - (darwin_section_type_flags): Delete. - (darwin_unique_section): Delete contents. - (darwin_emit_unwind_label): Add a tab. Make decls weak if - DECL_WEAK is set. - * config/darwin-protos.h (darwin_section_type_flags): Delete. - (darwin_make_decl_one_only): Delete. - (text_coal_section): New. - (text_unlikely_section): New. - (text_unlikely_coal_section): New. - (const_coal_section): New. - (data_coal_section): New. - (const_data_coal_section): New. - * varasm.c (function_section): Honour - USE_SELECT_SECTION_FOR_FUNCTIONS. - * dwarf2out.c (output_call_frame_info): Look at DECL_WEAK when - TARGET_USES_WEAK_UNWIND_INFO is in effect. - * dbxout.c (dbxout_source_file): Don't change sections while - a function is being output. - -2004-10-25 David Ayers - - * c-common.h: Remove RID_ID. - * c-parse.in: Remove OBJECTNAME and references to RID_ID. - (typespec_reserved_attr): Add rule for TYPENAME - non_empty_protocolrefs. - (yylexname): Remove special handling of RID_ID. - -2004-10-25 James E Wilson - - * doc/invoke.texi (-fcrossjumping): Not enabled at -O. - -2004-10-25 Joseph S. Myers - - PR c/16667 - * c-parse.in (array_designator): New. - (designator): Use it. - (initelt): Only permit array_designator without '=', not ".foo". - -2004-10-25 Kenneth Zadeck - * gcc/Makefile.in: removed ggc for cgraphunit. - * gcc/cgraph.c.dump_cgraph_node: removed static var analysis. - * gcc/cgraph.h: removed static var analysis data structures and calls. - * gcc/cgraphunit.c: - cgraph_mark_local_and_external_functions:changed name to - cgraph_mark_local_functions - (print_order,convert_UIDs_in_bitmap,new_static_vars_info, - cgraph_reset_static_var_maps,get_global_static_vars_info, - get_global_statics_not_read,get_global_statics_not_written,searchc, - cgraph_reduced_inorder,has_proper_scope_for_analysis,check_rhs_var, - check_lhs_var,get_asm_expr_operands,process_call_for_static_vars, - scan_for_static_refs,cgraph_characterize_statics_local, - clear_static_vars_maps,cgraph_propagate_bits,cgraph_characterize_statics): - removed. - (cgraph_optimize,init_cgraph): removed calls to static vars analysis - * gcc/tree-dfa.c find_referenced_vars: removed call to static vars - analysis - * gcc/tree-flow.h static_vars_info: removed - * gcc/tree-ssa-operands.c (add_call_clobber_ops,add_call_read_ops): - removed calls to static vars analysis. - get_call_expr_operands: removed callee variable. - -2004-10-25 Kazu Hirata - - * cfg.c (unchecked_make_edge, redirect_edge_succ, - redirect_edge_pred): Use VEC_safe_push instead of - VEC_safe_insert. - * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. - -2004-10-25 Kazu Hirata - - * cfgloopmanip.c (loopify): Take two more arguments true_edge - and false_edge. - * cfgloop.h: Adjust the corresponding prototype. - * loop-unswitch.c (unswitch_loop): Adjust a call to loopify. - * tree-ssa-loop-manip.c (tree_ssa_loop_version): Likewise. - -2004-10-25 Jakub Jelinek - - * dwarf2out.c (rtl_for_decl_location): Avoid segfault if - DECL_INCOMING_RTL is NULL. - -2004-10-25 Steven Bosscher - - * timevar.def (TV_FIND_REFERENCED_VARS): New. - * tree-dfa.c (pass_referenced_var): Use it. - -2004-10-25 Roger Sayle - John David Anglin - - * cse.c: Change encoding of quantity numbers to avoid undefined - pointer arithmetic on qty_table. - (REGNO_QTY_VALID_P): A quantity is now valid if it isn't negative. - (get_cse_reg_info): Initialize reg_qty to a unique negative value. - (new_basic_block): Assign "real" quantity numbers from zero. - (delete_reg_equiv): Do nothing if quantity is invalid. Reset the - REG_QTY to its unique negative value. - (merge_equiv_classes): Calculate need_rehash if quantity is valid. - (cse_main): Don't include max_reg when determining max_qty. - (cse_basic_block): Avoid subtracting a large offset from qty_table, - which causes undefined C99 behaviour. Only allocate needed memory. - -2004-10-25 Kazu Hirata - - * stmt.c (expand_case): Remove an obsolete comment. - -2004-10-25 Andrew Pinski - - PR middle-end/17407 - * c-decl.c (grokdeclarator) : Remove the call - layout_type as it is already done by build_array_type. - * tree.c (build_array_type): Layout the type even - -2004-10-25 Alexandre Oliva - - * config/frv/linux.h (TARGET_C99_FUNCTIONS): Define to 0. - -2004-10-25 Alexandre Oliva - - * config/frv/frv.md (movdi, movdf): Handle wide-constant splits - with wider-than-32-bit HOST_WIDE_INTs. - -2004-10-25 David Billinghurst - - * config/mips/mips.c(mips_output_filename): Remove unused - array ltext_label_name - -2004-10-24 Geoffrey Keating - - * config/rs6000/darwin.h (BLOCK_REG_PADDING): Define. - -2004-10-25 Ben Elliston - - * cfgcleanup.c (outgoing_edges_match): Fix typo in dump output. - -2004-10-23 Andrew Pinski - - * predict.c (predict_loops): Call scev_finalize instead of - scev_reset. - -2004-10-24 Kazu Hirata - - * config/dbxcoff.h, config/dbxelf.h, config/libgloss.h, - config/openbsd.h, config/mips/r3900.h, config/pdp11/pdp11.md, - config/sh/ushmedia.h, config/sparc/elf.h, - config/sparc/sp64-elf.h: Update copyright. - -2004-10-24 Kazu Hirata - - * stmt.c (expand_case): Handle the default label outside of - the for loop. Remove code to handle a missing default label. - -2004-10-23 Kazu Hirata - - * dbxout.c (dbxout_function_decl): Don't use - DBX_OUTPUT_FUNCTION_END. - * system.h: Poison DBX_OUTPUT_FUNCTION_END. - * doc/tm.texi (DBX_OUTPUT_FUNCTION_END): Remove. - -2004-10-23 Andrew Pinski - - PR middle-end/17967 - * tree-cfg.c (remove_usless_stmts_cond): Don't Fold statement. - -2004-10-23 Daniel Berlin - - * tree-ssa-dom.c (record_equality): Use loop depth to determine - which way to record the equality as well. - (loop_depth_of_name): New function. - -2004-10-23 Eric Botcazou - - PR middle-end/17793 - * gimplify.c (gimplify_addr_expr) : Look - through the operand if it is a useless type conversion. - -2004-10-23 Ben Elliston - - * cfg.c (remove_edge): Use VEC_unordered_remove. - (redirect_edge_succ): Likewise. - (redirect_edge_pred): Likewise. - * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. - -2004-10-22 Kazu Hirata - - * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Don't access PTR - beyond its end. - -2004-10-22 Eric Christopher - - * config/rs6000/rs6000.c (setup_incoming_varargs): Align DFmode - saves. - -2004-10-22 Aldy Hernandez - - * config/rs6000/spe.md (spe_extendsfdf2): New. - (movdf_e500_double): New. - (spe_truncdfsf2): New. - (spe_absdf2): New. - (spe_nabsdf2): New. - (spe_negdf2): New. - (sub_adddf3): New. - (spe_subdf3): New. - (spe_muldf3): New. - (spe_floatsidf2): New. - (spe_floatunssidf2): New. - (fix_truncdfsi2): New. - (spe_fixuns_truncdfsi2): New. - - * config/rs6000/rs6000.md (truncdfsf2): Change to expander. - (fpr_truncdfsf2): New. - (negdf2): Change to expander. - (fpr_negdf2): New. - (fpr_nabsdf2): Name pattern. - (adddf3): Change to expander. - (fpr_adddf3): Nem. - (subdf3): Change to expander. - (fpr_subdf3): New. - (muldf3): Change to expander. - (fpr_muldf3): New. - (divdf3): Change to expander. - (fpr_divdf3): New. - (movdf_softfloat32): Change !TARGET_FPRS to TARGET_E500_SINGLE. - (cmpdf): Allow for TARGET_E500_DOUBLE. - -2004-10-22 Kazu Hirata - - * c-semantics.c (re_push_stmt_list): Remove. - * c-common.h: Remove the corresponding prototype. - -2004-10-22 Kazu Hirata - - * stmt.c (asm_op_is_mem_input): Remove. - * tree.h: Remove the corresponding prototype. - -2004-10-22 Kazu Hirata - - * tree-gimple.c (is_gimple_constructor_elt): Remove. - * tree-gimple.h: Remove the corresponding prototype. - -2004-10-22 Kazu Hirata - - * varasm.c (get_pool_mode_for_function, get_pool_offset): - Remove. - * rtl.h: Remove the corresponding prototypes. - -2004-10-22 Kazu Hirata - - * tree-cfg.c (thread_jumps_from_bb): Speed up by extracting - edge information when we commit ourselves to threading a - particular jump. - -2004-10-22 Kazu Hirata - - * tree-cfg.c (thread_jumps): Speed up by putting basic blocks - into worklist instead of their indexes. - -2004-10-22 Kazu Hirata - - * alias.c, basic-block.h, cgraphunit.c, combine.c, domwalk.h, - final.c, gengtype.c, genpreds.c, ggc-page.c, insn-notes.def, - lambda-code.c, loop-unroll.c, modulo-sched.c, pointer-set.c, - pretty-print.c, ra-colorize.c, sbitmap.c, tree-complex.c, - tree-data-ref.c, tree-dfa.c, tree-inline.c, tree-into-ssa.c, - tree-scalar-evolution.c, tree-ssa-dom.c, - tree-ssa-loop-manip.c, tree-ssa-loop-niter.c, - tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-threadupdate.c, - tree-vectorizer.c, vec.h: Fix comment formatting. - -2004-10-22 Kazu Hirata - - * dwarf.h, gthr-dce.h, gthr-single.h, gthr-solaris.h, gthr.h, - libfuncs.h, libgcc2.h, stab.def, tsystem.h: Update copyright. - -2004-10-22 Kazu Hirata - - * config/ptx4.h, config/mcore/mcore-pe.h, - config/rs6000/eabi.h, config/vax/elf.h: Update copyright. - -2004-10-22 Peter Barada - - * config/m68k/m68k.h (HARD_REGNO_RENAME_OK): New macro. - * config/m68k/m68k.c (m68k_hard regno_rename_ok): Disallow - renaming of non-live registers in interrupt functions. - * config/m68k/m68k-protos.h (m68k_hard_regno_rename_ok): Add prototype. - -2004-10-22 Zdenek Dvorak - - * tree-ssa-loop-niter.c (inverse): Count in HOST_WIDE_INT if possible. - Use integer for loop counter. - (num_ending_zeros): New function. - (number_of_iterations_cond): Use num_ending_zeros. - -2004-10-21 Aldy Hernandez - - * config.gcc: Add support for --enable-e500_double. - - * config/rs6000/e500-double.h: New file. - - * config/rs6000/rs6000.h: Define TARGET_E500_SINGLE and - TARGET_E500_DOUBLE. - - * config/rs6000/eabi.h: Define TARGET_E500_SINGLE and - TARGET_E500_DOUBLE. - - * config/rs6000/linuxspe.h: Same. - - * doc/invoke.texi (Option Summary): Document new options for - mfloat-gprs. - (RS/6000 and PowerPC Options): Same. - - * config/rs6000/rs6000.c (rs6000_parse_float_gprs_option): New - function. - (rs6000_override_options): Use it. Use - SUB3TARGET_OVERRIDE_OPTIONS. - Add 8548 to processor_target_table. - (rs6000_legitimate_address): Handle e500 doubles. - (rs6000_legitimize_address): Same. - (rs6000_legitimize_reload_address): Same. - (rs6000_hard_regno_nregs): Same. - (spe_func_has_64bit_regs_p): Same. - (emit_frame_save): Same. - (gen_frame_mem_offset): Same. - (rs6000_dwarf_register_span): Same. - (rs6000_generate_compare): Same. - (easy_fp_constant): Same. - (legitimate_offset_address_p): Same. - - * config/rs6000/spe.md: (cmdfeq_gpr): New. - (tstdfeq_gpr): New. - (cmpdfgt_gpr): New. - (tstdfgt_gpr): New. - (tstdfgt_gpr): New. - (cmpdflt_gpr): New. - (tstdflt_gpr): New. - Add new constants. - -2004-10-21 Giovanni Bajo - - * config/arc/lib1funcs.asm (___umulsidi3): Fix typo. - -2004-10-21 Zack Weinberg - - * dbxout.c: Remove unnecessary #undefs. - (GDB_INV_REF_REGPARM_STABS_LETTER, DBX_MEMPARM_STABS_LETTER) - (FILE_NAME_JOINER, STABS_GCC_MARKER): Remove; fold sole - definition into use sites. - (cwd): Make local to dbxout_init. - (dbxout_init): Restructure cwd-using logic for clarity. Use - IS_DIR_SEPARATOR. - * xcoffout.h (DBX_OUTPUT_GCC_MARKER): Definition of - STABS_GCC_MARKER folded in here. - * system.h: Poison now-unused macros. - * doc/tm.texi: Remove documentation of now-unused macros. - -2004-10-21 Andrew Pinski - - PR c/17538 - * c-opts.c (push_command_line_include): Use the current file - name instead of the main one. - -2004-10-21 Andrew Pinski - - PR objc/17923 - * tree.c (staticp): A CONST_DECL has static storage if either - TREE_STATIC or DECL_EXTERNAL is set. - * c-decl.c (pushdecl_top_level): Accept CONST_DECLs which can - have null names. - -2004-10-21 Kazu Hirata - - * expr.c (store_expr): Remove dont_store_target. - -2004-10-21 Kazu Hirata - - * tree-cfg.c (thread_jumps): Speed up by using a worklist. - -2004-10-21 Kazu Hirata - - * tree-cfg.c (thread_jumps): Move a part of it to ... - (thread_jumps_from_bb): ... here. - -2004-10-21 David Edelsohn - - * dbxout.c (DBX_FINISH_SYMBOL): Add asm_out_file argument. - * xcoffout.h (DBX_FINISH_SYMBOL): Change asmfile to (ASMFILE). - -2004-10-21 Kazu Hirata - - * expr.c (store_expr): Clean up by renaming want_value to - call_param_p. - -2004-10-21 Kaz Kojima - - * config/sh/linux-unwind.h (sh_fallback_frame_state): Don't - fixup pc here. - -2004-10-21 Aldy Hernandez - - PR 18004. - * expmed.c (store_bit_field): Pass original 'value' before - recursing. - -2004-10-21 Nicolas Pitre - - * config/arm/ieee754-sf.S: Large speed improvements. Fix NAN handling. - * config/arm/ieee754-df.S: Ditto. - -2004-10-20 Zack Weinberg - - * dbxout.c (asmfile): Delete. All uses changed to asm_out_file. - (DBX_BLOCKS_FUNCTION_RELATIVE, DBX_LINES_FUNCTION_RELATIVE): - Default to 0. - (dbxout_source_line): Use DBX_OUTPUT_SOURCE_LINE when defined. - When it is not, but DBX_LINES_FUNCTION_RELATIVE is true, emit - an internal label and an N_SLINE .stabn whose value is the - difference between that label and the function entry label. - (dbxout_finish): If DBX_OUTPUT_MAIN_SOURCE_FILE_END is not defined, - but DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END is, emit a - label and an N_SO stab with an empty string referring to it. - (dbx_output_lbrac, dbx_output_rbrac): Use if statement instead - of #ifdef directive to test DBX_BLOCKS_FUNCTION_RELATIVE. - (dbxout_type_methods, dbxout_symbol): Remove #if 0 block. - (dbxout_prepare_symbol): Remove #ifdef WINNING_GDB block, this - macro is never defined. - * sdbout.c (sdbout_source_line_counter): Delete. - (PUT_SDB_SRC_FILE): Delete. Uses replaced with sole definition. - (sdbout_source_line): Use SDB_OUTPUT_SOURCE_LINE, which takes - only two arguments. - * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Rename ASM_OUTPUT_LINE. - - * config/dbxcoff.h, config/dbxelf.h: Remove unncessary #undefs. - * config/c4x/c4x.h, config/pa/pa.h: Remove unnecessary macro - definitions (identical to default). - * config/darwin.h, config/dbxcoff.h, config/dbxelf.h, config/ptx4.h - * config/h8300/coff.h, config/pa/som.h, config/sh/elf.h: - Define DBX_OUTPUT_NULL_N_SO_AT_MAIN_SOURCE_FILE_END, not - DBX_OUTPUT_MAIN_SOURCE_FILE_END. - * config/dbxcoff.h, config/dbxelf.h, config/ptx4.h - * config/mcore/mcore-pe.h, config/pa/som.h, config/sh/elf.h: - Define DBX_LINES_FUNCTION_RELATIVE, not ASM_OUTPUT_SOURCE_LINE. - * config/alpha/alpha-protos.h: Don't prototype alpha_output_lineno. - * config/alpha/alpha.c: Move declaration of num_source_filenames up. - (alpha_start_function): Use SDB_OUTPUT_SOURCE_LINE. - (sym_lineno): Delete. - (alpha_output_filename): Do not emit N_SOL stabs here. Remove - now-unused variable. - (alpha_output_lineno): Delete. - * config/mips/mips-protos.h: Don't prototype mips_output_lineno. - * config/mips/mips.c (mips_output_filename): Don't use - ASM_OUTPUT_FILENAME. Don't emit N_SOL stabs here. - (mips_output_lineno): Delete. - (mips_output_function_prologue: Use SDB_OUTPUT_SOURCE_LINE. - * config/alpha/alpha.h: Define DBX_OUTPUT_SOURCE_LINE and - SDB_OUTPUT_SOURCE_LINE, not ASM_OUTPUT_SOURCE_LINE. - * config/mips/mips.h: Likewise. Don't define ASM_OUTPUT_FILENAME. - * config/mips/sdb.h: Use SDB_OUTPUT_SOURCE_LINE. - * config/avr/avr.h: Don't define ASM_OUTPUT_SOURCE_LINE. - * config/mmix/mmix.h: Likewise. - * config/mmix/mmix.c (mmix_asm_output_source_line): Delete. - * config/mmix/mmix-protos.h: Don't prototype it. - * config/alpha/unicosmk.h: Also #undef PREFERRED_DEBUGGING_TYPE; - no need to #undef ASM_OUTPUT_SOURCE_LINE. - * config/arm/aout.h: Remove RISCiX-specific definition of - DBX_OUTPUT_MAIN_SOURCE_FILENAME. - * config/m32r/m32r.h: Define DBX_OUTPUT_SOURCE_LINE, not - ASM_OUTPUT_SOURCE_LINE. - * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Rename to - DBX_OUTPUT_SOURCE_LINE. Don't use current_function_func_begin_label. - * config/vax/elf.h: No need to define DBX_OUTPUT_FUNCTION_END. - - * doc/tm.texi: Update. - -2004-10-20 Richard Henderson - - * tree-sra.c (instantiate_element): Copy DECL_IGNORED_P also. - -2004-10-20 Kelley Cook - - * configure.ac: Revert my previous patch. - * configure: Regenerate. - -2004-10-20 Ben Elliston - - * config/rs6000/rs6000.c - (rs6000_va_start): Use build_va_arg_indirect_ref. - (rs6000_gimplify_va_arg): Likewise. - -2004-10-20 Bryce McKinlay - - PR java/15575 - * configure.ac: Declare AM_LANGINFO_CODESET. - * aclocal.m4: Define AM_LANGINFO_CODESET. - * configure, config.in: Rebuilt. - -2004-10-20 Kazu Hirata - - * expr.c (store_expr): Remove code that is run when - want_value & 1 is nonzero. - -2004-10-20 Mark Mitchell - - * gthr-posix.h (__gthread_active_p): Use __extension__ around cast - from function pointer to void *. - -2004-10-20 Kaz Kojima - - PR target/18032 - * config/sh/sh.c (sh_expand_epilogue): Emit a blockage insn before - the frame pointer adjustment when exception handling is enabled. - -2004-10-20 Kazu Hirata - - * stor-layout.c: Fix a comment typo. - -2004-10-20 Kazu Hirata - - * expr.c (store_field): Remove two arguments value_mode and - unsignedp. - (expand_assignment, store_constructor_field, - expand_expr_real_1): Adjust calls to store_field. - -2004-10-18 Ramana Radhakrishnan - - * config/arc/lib1funcs.asm (___umulsidi3): Correct usage of flags. - - PR target/17317 - * config/arc/arc.h (REGNO_OK_FOR_BASE_P,REGNO_OK_FOR_INDEX_P, - REG_OK_FOR_BASE, REG_OK_FOR_INDEX): Consider blink(r31) as a valid - base and index register for loads. - - * config/arc/t-arc: Fix multilib handling. - -2004-10-20 Hans-Peter Nilsson - - * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, - don't inspect BLOCK_FOR_INSN for barriers. - * emit-rtl.c (emit_barrier_before): Revert last change. - (emit_barrier_after, emit_barrier): Ditto. - - * doc/extend.texi (Extended Asm): Warn and provide example - solution for using a call-clobbered asm register. - (Local Reg Vars): Similar. Cross-reference example. - -2004-10-19 Andrew Pinski - - * tree-cfg.c (group_case_labels): Look at the second to last - case statement for combing with the default case. - -2004-10-19 Richard Hendeson - - PR 17962 - * stor-layout.c (layout_type): Set TYPE_ALIGN for vectors. - -2004-10-19 Richard Hendeson - - * builtins.c (expand_builtin_memmove): If fold_builtin_memmove - succeeds, only expand the result. - -2004-10-19 Richard Hendeson - - PR middle-end/17885 - * tree.c (recompute_tree_invarant_for_addr_expr): Always poll address - of INDIRECT_REF. - -2004-10-19 Kazu Hirata - - * tree-cfg.c (thread_jumps): Use a do-while loop instead of a - loop with goto. - -2004-10-19 Kazu Hirata - - * expr.c (expand_assignment): Remove the last argument. - Change the return type to void. - * expr.h: Update the prototype of expand_assignment. - * function.c (assign_parm_setup_reg): Update a call to - expand_assignment. - * stmt.c (expand_asm_expr): Likewise. - -2004-10-19 Kazu Hirata - - * expr.c (expand_expr_real_1) : Remove - unnecessary assignments to temp. Return const0_rtx. - -2004-10-19 Kaz Kojima - - * config/sh/sh.c (sh5_schedule_saves): Fix typo. - -2004-10-18 Kelley Cook - - * configure.ac (powerpc-*-darwin*): Require assembler to support - .machine directive. - * configure: Regenerate. - -2004-10-18 Kazu Hirata - - * reload1.c (ior_hard_reg_set): Remove. - (finish_spills): Use IOR_HARD_REG_SET instead of - ior_hard_reg_set. - -2004-10-18 Kazu Hirata - - * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Speed up by shifting - the currently visited word to right. - -2004-10-18 Eric Botcazou - - PR middle-end/18045 - * expmed.c (expand_smod_pow2): Handle modes whose size - is greater than that of HOST_WIDE_INT. - -2004-10-18 Ziemowit Laski - - * c-parse.in (reservedwords): Add OBJC_TYPE_QUAL as alternative. - -2004-10-18 Eric Botcazou - Roger Sayle - - PR middle-end/17813 - * dojump.c (discard_pending_stack_adjust): New function. - (clear_pending_stack_adjust): Call it. - * expr.h (discard_pending_stack_adjust): Declare it. - * explow.c (emit_stack_save): Emit pending stack adjustments - before saving the stack pointer. - (emit_stack_restore): Discard pending stack adjustments before - restoring the stack pointer. - -2004-10-18 Richard Henderson - - * c-common.c (handle_mode_attribute): Allow scalar->vector - type changes yet. - -2004-10-18 Kazu Hirata - - * expr.c (expand_expr_real_1) [MODIFY_EXPR]: Don't request a - value to expand_assignment. - -2004-10-18 Kazu Hirata - - * tree-cfg.c (cleanup_tree_cfg): Don't iterate on - thread_jumps. - (thread_jumps): Iterate until no new forwarder block arises. - -2004-10-18 Kazu Hirata - - * tree-cfg.c (tree_forwarder_block_p): Don't set forwardable. - (thread_jumps): Use forwardable as cache of - tree_forwarder_block_p throughout the function. - -2004-10-18 Andreas Krebbel - - * cfg.c (dump_flow_info): Remove redundant dump of reg life info. - -2004-10-18 Andrew Pinski - - PR middle-end/15014 - PR middle-end/16973 - * tree-cfg.c (remove_bb): If we have a label expression in the - basic block and the label we have taken the address, move the - label expression to the basic block which is previous in the - linked list. - (tree_verify_flow_info): Fix printing out the label name of the - problematic label expression. - -2004-10-18 Pat Haugen - - PR rtl-optimization/18002 - * simplify-rtx.c (mode_signbit_p): Externalize function... - * rtl.h (mode_signbit_p): ... to here. - * combine.c (simplify_shift_const): Recognize PLUS signbit as - canonical form of XOR signbit and move to outer op. - -2004-10-18 Diego Novillo - - * tree-cfg.c (bsi_for_stmt): Rename from stmt_for_bsi. - Update all callers. - * tree-ssa.c (replace_immediate_uses): Call bsi_for_stmt. - Don't call fold_stmt more than once, use bsi_replace. - -2004-10-18 Diego Novillo - - PR tree-optimization/17656 - * tree-ssa.c (replace_immediate_uses): When replacing a - constant, if the call to fold_stmt produced a different - statement, get an appropriate statement pointer by scanning - STMT's basic block. - -2004-10-18 Richard Henderson - - * pointer-set.c (hash1): Don't use libm functions in fallback case. - -2004-10-18 H.J. Lu - - PR bootstrap/17684 - * Makefile.in (clean): Remove libgcc_s$(SHLIB_EXT).1.stage?. - (stage1-start): Remove and copy libunwind.a and - libunwind*$(SHLIB_EXT) instead of libunwind*. - (stage2-start): Likewise. - (stage3-start): Likewise. - (stage4-start): Likewise. - (stageprofile-start): Likewise. - (stagefeedback-start): Likewise. - - * config/alpha/t-osf4 (SHLIB_LINK): Use a temporary file for - the shared library to be created and don't remove the existing - shared library. - * config/arm/t-netbsd (SHLIB_LINK): Likewise. - * config/i386/t-nwld (SHLIB_LINK): Likewise. - * config/mips/t-slibgcc-irix (SHLIB_LINK): Likewise. - * config/pa/t-hpux-shlib (SHLIB_LINK): Likewise. - * config/sh/t-linux (SHLIB_LINK): Likewise. - * config/t-libunwind-elf (SHLIBUNWIND_LINK): Likewise. - * config/t-slibgcc-darwin (SHLIB_LINK): Likewise. - * config/t-slibgcc-elf-ver (SHLIB_LINK): Likewise. - * config/t-slibgcc-sld (SHLIB_LINK): Likewise. - - * mklibgcc.in (libgcc-stage-start): Also move "*${objext}s" - files. - -2004-10-18 Kazu Hirata - - * basic-block.h (reg_set_iterator): New. - (EXECUTE_IF_SET_IN_REG_SET): Make it iterator style. - (EXECUTE_IF_AND_COMPL_IN_REG_SET): Likewise. - (EXECUTE_IF_AND_IN_REG_SET): Likewise. - * caller-save.c (save_call_clobbered_regs): Adjust to the new - style. - * cfgcleanup.c (thread_jump): Likewise. - * cfgrtl.c (safe_insert_insn_on_edge): Likewise. - * conflict.c (conflict_graph_compute): Likewise. - * flow.c (verify_local_live_at_start, update_life_info, - initialize_uninitialized_subregs, propagate_one_insn, - init_propagate_block_info, free_propagate_block_info, - propagate_block, dump_regset): Likewise. - * global.c (global_conflicts): Likewise. - * graph.c (start_bb): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. - * loop.c (load_mems): Likewise. - * reload1.c (compute_use_by_pseudos, order_regs_for_reload, - find_reg, finish_spills): Likewise. - * resource.c (mark_target_live_regs): Likewise. - * sched-deps.c (sched_analyze_insn): Likewise. - * sched-rgn.c (sched-rgn.c): Likewise. - * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. - -2004-10-18 Jakub Jelinek - - * config/i386/i386.md (addqi_1_slp): Test for incdec_operand - operand 1 instead of 2 - -2004-10-18 Kazu Hirata - - * loop-unroll.c: Fix comment typos. - -2004-10-18 Revital Eres - - * Makefile.in (loop-unroll.o): Add VARRAY_H dependency. - * loop-unroll.c: Include varray.h. - (struct var_to_expand, struct opt_info): Rename split_ivs_info to - opt_info and expand it to support variable expansion. - (analyze_insns_in_loop): Rename analyze_ivs_to_split and - expand it to support variable expansion. - (pt_info_start_duplication): Rename si_info_start_duplication. - (apply_opt_in_copies): Rename split_ivs_in_copies and add support - to the variable expansion optimization. - (free_opt_info): Rename free_si_info. - (analyze_insn_to_expand_var, referenced_in_one_insn_in_loop_p, - expand_var_during_unrolling, insert_var_expansion_initialization, - combine_var_copies_in_loop_exit, release_var_copies, - get_expansion): New functions. - (peel_loop_completely, unroll_loop_constant_iterations, - unroll_loop_runtime_iterations, peel_loop_simple, - unroll_loop_stupid): Change uses of struct si_info - to struct opt_info - and add uses of fvariable-expansion-in-unroller flag. - * params.def: Add parameter to restrict the number of expansions. - * params.h: (MAX_VARIABLE_EXPANSIONS): New define to restrict - the number of expansions. - * common.opt: (fvariable-expansion-in-unroller): New flag. - * doc/invoke.texi: (fvariable-expansion-in-unroller): Document. - -2004-10-18 Danny Smith - - * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Define - __GXX_MERGED_TYPEINFO_NAMES to 0. - -2004-10-17 Hans-Peter Nilsson - - * cfgrtl.c (rtl_verify_flow_info_1): When checking insns in a bb, - handle barriers in a bb by checking that it points to a NULL bb. - * emit-rtl.c (emit_barrier_before): Set BLOCK_FOR_INSN to NULL. - (emit_barrier_after, emit_barrier): Ditto. - -2004-10-18 Joseph S. Myers - - * doc/extend.texi (Attribute Syntax): Clarify details of - attributes on parameters. - -2004-10-17 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize): Move checking out of - loop. - -2004-10-17 Andrew Pinski - - Revert: - 2004-10-17 Andrew Pinski - - * c-typeck.c (default_function_array_conversion): Always create - &a[0] for array types. - (build_unary_op): Do not fold &a[x] into a + x. - -2004-10-17 Andrew Pinski - - PR middle-end/17925 - * cfgexpand.c (expand_gimple_cond_expr): Emit line notes for next basic - block if there is a goto with a locus. - -2004-10-17 Kazu Hirata - - * config/elfos.h, config/gofast.h, config/interix.h, - config/netbsd.h, config/svr3.h, config/vxworks.h, - config/alpha/alpha-modes.def, config/alpha/alpha-protos.h, - config/alpha/ev4.md, config/alpha/ev5.md, config/alpha/ev6.md, - config/alpha/netbsd.h, config/arm/arm-modes.def, - config/arm/unknown-elf.h, config/c4x/c4x-modes.def, - config/cris/aout.h, config/frv/frv-modes.def, - config/i386/beos-elf.h, config/i386/gas.h, - config/i386/i386-coff.h, config/i386/i386-modes.def, - config/i386/linux.h, config/i386/linux64.h, - config/i386/mingw32.h, config/i386/netbsd-elf.h, - config/i386/netbsd64.h, config/i386/sco5.h, - config/i386/sol2.h, config/i386/uwin.h, config/i860/i860.md, - config/ia64/ia64-modes.def, config/ia64/itanium1.md, - config/ia64/itanium2.md, config/m68k/m68k-modes.def, - config/mips/mips-modes.def, config/mips/sdb.h, - config/mips/vr.h, config/mips/vxworks.h, - config/pa/pa-hpux10.h, config/pa/pa-hpux11.h, - config/pa/pa32-linux.h, config/rs6000/40x.md, - config/rs6000/7450.md, config/rs6000/8540.md, - config/rs6000/linuxspe.h, config/rs6000/power4.md, - config/rs6000/rs6000-modes.def, config/rs6000/rtems.h, - config/rs6000/spe.h, config/s390/2064.md, config/s390/linux.h, - config/s390/s390-modes.def, config/sh/elf.h, - config/sh/sh-modes.def, config/sh/sh64.h, - config/sparc/ultra1_2.md, config/sparc/ultra3.md, - config/stormy16/stormy16.md, config/v850/v850-protos.h, - config/vax/vax.md: Update copyright. - -2004-10-17 Kazu Hirata - - * expr.c (expand_expr_real_1): Remove an obsolete comment. - -2004-10-17 Andrew Pinski - - * c-typeck.c (default_function_array_conversion): Always create - &a[0] for array types. - (build_unary_op): Do not fold &a[x] into a + x. - -2004-10-17 Jakub Jelinek - - * pointer-set.c (hash1): Use integer part of 2^64 / phi - instead 2^32 / phi if long is 64-bit. - -2004-10-17 Joseph S. Myers - - * c-common.h (enum rid): Remove RID_PTRBASE, RID_PTREXTENT and - RID_PTRVALUE. - * c-parse.in (PTR_VALUE, PTR_BASE, PTR_EXTENT): Remove %token - declarations. - (reswords): Remove __ptrbase, __ptrbase__, __ptrextent, - __ptrextent__, __ptrvalue and __ptrvalue__. - (rid_to_yy): Remove RID_PTRBASE, RID_PTREXTENT and RID_PTRVALUE - entries. - -2004-10-16 Dale Johannesen - - * c-common.c (c_common_get_alias_set): Use GGC for type_hash_table. - -2004-10-16 Zdenek Dvorak - - PR tree-optimization/17766 - * basic-block.h (enum dom_state): DOM_CONS_OK removed. - (dom_info_available_p): Declare. - * cfghooks.c (split_block, make_forwarder_block): Use - dom_info_available_p. - * dominance.c (compute_dom_fast_query, calculate_dominance_info, - free_dominance_info, verify_dominators): Ditto. - (dom_info_available_p): New function. - * tree-cfg.c (cleanup_control_expr_graph): Free dominance information. - (thread_jumps): Use dom_info_available_p. - * tree-complex.c (expand_complex_div_wide): Ditto. - * tree-mudflap.c (mf_build_check_statement_for): Ditto. - -2004-10-16 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c (struct ivopts_data): New field important_candidates. - (find_best_candidate): Take also important candidates into account. - (find_optimal_iv_set): Initialize important_candidates bitmap. - -2004-10-16 Zdenek Dvorak - - PR tree-optimization/17560 - * predict.c (tree_estimate_probability): Mark irreducible - loops. - -2004-10-16 Zdenek Dvorak - - PR rtl-optimization/17723 - * cfgcleanup.c (merge_memattrs): Handle case when - MEM_SIZE == NULL_RTX. - -2004-10-15 Andrew Pinski - - * toplev.c (dump_file_name): Change type to be const. - -2004-10-15 Joseph S. Myers - - * c-typeck.c (build_compound_expr, build_c_cast): Don't try to use - non_lvalue to stop something being a null pointer constant. - -2004-10-15 Aldy Hernandez - - * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): FPRs are only - available for TARGET_FPRS. - (FUNCTION_VALUE_REGNO_P): Same. - -2004-10-15 Geoffrey Keating - - * doc/invoke.texi (RS/6000 and PowerPC Options): Document - -maltivec in same style as other ISA options. - -2004-10-15 Jon Grimm - - * config/host-linux.c (TRY_EMPTY_VM_SPACE): Add __powerpc__ - definition. - -2004-10-15 Kazu Hirata - - * bitmap.c, bitmap.h, builtin-attrs.def, cfglayout.h, - collect2.h, conflict.c, coretypes.h, coverage.h, errors.h, - gcc.h, gcov-dump.c, gen-protos.c, gencheck.c, gencodes.c, - genconstants.c, gengenrtl.c, genmodes.c, genpeep.c, - gensupport.h, graph.h, gthr-gnat.c, gthr-gnat.h, gthr-posix.c, - gthr-posix.h, hard-reg-set.h, hwint.h, integrate.h, libgcc2.c, - lists.c, machmode.def, mips-tdump.c, opts.h, params.c, - predict.def, predict.h, protoize.c, reload.h, resource.h, - rtl-error.c, sbitmap.c, sbitmap.h, sreal.c, tlink.c, - tree-dump.h, tree-inline.h, unwind-dw2-fde.c, unwind-dw2.c, - unwind-sjlj.c, value-prof.h: Update copyright. - -2004-10-15 Kazu Hirata - - * pointer-set.c, tree-vectorizer.c: Fix comment typos. - -2004-10-15 Diego Novillo - - * tree-optimize.c (execute_one_pass): Stop timer right after - executing the pass. - -2004-10-14 Andrew Pinski - - Revert: - 2004-10-14 Andrew Pinski - PR middle-end/17967 - Revert: - * tree-cfg.c (remove_usless_stmts_cond): Fold statement. - (remove_useless_stmts_1): Fold trees we know how to fold. - -2004-10-14 David Edelsohn - - * configure.ac: Add .machine power4 directive when testing for - mfcr field. - * configure: Regenerate. - -2004-10-14 Geoffrey Keating - - * config/darwin.h (JUMP_TABLES_IN_TEXT_SECTION): Don't define. - -2004-10-14 Andrew Pinski - - * tree-vectorizer.c (vect_transform_loop): Declare vectorization_factor - always. - -2004-10-14 Daniel Jacobowitz - - * config/rs6000/rs6000.h (REG_CLASS_FROM_LETTER): Return NO_REGS - for 'f' if !TARGET_FPRS. - -2004-10-14 Richard Henderson - - PR debug/14492 - * dwarf2out.c (loc_descriptor_from_tree_1): Handle FIX_*_EXPR. - -2004-10-14 Richard Henderson - - PR c/17023 - * c-decl.c (store_parm_decls_oldstyle): Care for parameter type - as error_mark_node. - * c-parse.in (compstmt_primary_start): Check cur_stmt_list non-null - instaed of current_function_decl non-null. - -2004-10-14 Matt Austern - - * pointer-set.c: New file, special-purpose hash table. - * pointer-set.h: New file. - * tree.h (struct pointer_set_t): Declare as opaque type. - (tree_walk): Last argument is pointer_set_t* now. - * tree-inline.c (WALK_SUBTREE): Convert from htab to pset. - (walk_type_fields): - (walk_tree): Convert from htab_t to pointer_set_t for keeping - track of which nodes have already been visited. - (walk_tree_without_duplicates): Convert from htab_t to pointer_set_t. - * cgraphunit.c (cgraph_create_edges): Likewise. - (cgraph_characterize_statics_local): Likewise. - * tree-dfa.c (collect_dfa_stats): Likewise. - * langhooks-def.h (lhd_tree_inlining_walk_subtrees): Last arg is - pointer_set_t* now. - * langhooks.c (lhd_tree_inlining_walk_subtrees): Likewise. - * langhooks.h (struct lang_hooks_for_tree_inlining): Last arg type - of walk_subtrees is pointer_set_t* now. - * Makefile.in (OBJS-common): add pointer-set.o - (tree-inline.o): Depends on pointer-set.h - (tree-dfa.o): Likewise - (cgraphunit.o): Likewise - -2004-10-14 Geoffrey Keating - - * config/rs6000/darwin.h (ASM_SPEC): Delete. - (TARGET_ASM_FILE_START): Define. - * config/darwin.h (ASM_SPEC): Define. - * config/rs6000/t-darwin (TARGET_LIBGCC2_CFLAGS): Don't supply - -mlong-double-128, it's the default. Update comment about reason - for force_cpusubtype_ALL. - * config/rs6000/darwin-vecsave.asm: Supply .machine. - * config/rs6000/darwin-world.asm: Likewise. - * config/rs6000/rs6000.c (rs6000_darwin_file_start): New. - (symbolic_operand): Delete #if 0ed code. - -2004-10-14 Andrew Pinski - - * stmt.c (add_case_node): Make sure that we have integer - constant before calling tree_int_cst_compare. - -2004-10-14 Andrew Pinski - - PR middle-end/17967 - Revert: - * tree-cfg.c (remove_usless_stmts_cond): Fold statement. - (remove_useless_stmts_1): Fold trees we know how to fold. - -2004-10-14 Joseph S. Myers - - * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS), - config/rs6000/linuxspe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Disallow - -m64. - -2004-10-14 Ulrich Weigand - - * reload.c (find_reloads): When reloading a PLUS with constant - operand, make sure the constant is pushed to the constant pool - if required. - * config/s390/s390.c (s390_secondary_input_reload_class): Remove - reload bug workaround. - (s390_expand_plus_operand): Likewise. - -2004-10-14 David Edelsohn - - * opts.c (common_handle_option): Do not enable - flag_speculative_prefetching for -fprofile-generate/use. - -2004-10-14 Devang Patel - - PR 17635 - * tree-if-conv.c (process_phi_nodes): Process latch block. - (combine_blocks): Process latch block and update loop structure. - -2004-10-14 Olga Golovanevsky - - * tree-vectorizer.c (vect_generate_tmps_on_preheader): - (vect_update_ivs_after_vectorizer): - (vect_transform_for_unknown_loop_bound): - (tree_duplicate_loop_to_edge): - (allocate_new_names): - (rename_use_op): - (rename_def_op): - (rename_variables_in_bb): - (free_new_names): - (rename_variables_in_loop): - (copy_phi_nodes): - (update_phis_for_duplicate_loop): - (update_phi_nodes_for_guard): - (make_loop_iterate_ntimes): - (tree_duplicate_loop_to_edge_cfg): - (add_loop_guard): - (vect_analyze_loop_with_symbolic_num_of_iters): - (verify_loop_for_duplication): - (vect_gen_niters_for_prolog_loop): - (vect_update_niters_after_peeling): - (vect_update_inits_of_dr): - (vect_update_inits_of_drs): - (vect_build_loop_niters): - (vect_do_peeling_for_alignment): New functions. - (vect_transform_loop): Add unknown and known but indivisible loop - bound support; add peeling for unalignment support. - (vect_analyze_loop_form): Support symbolic number of iterations. - (vect_transform_loop_bound): New input parameter. - (vect_get_loop_niters): Change input parameter type. - (new_loop_vec_info): LOOP_VINFO_NITERS is tree now. - (vectorizable_store): Allow unaligned access. - (vectorize_loops): Add rewrite_into_loop_closed_ssa. - (vect_analyze_data_refs_alignment): Allowed one unaligned - store. - * tree-vectorizer.h (LOOP_VINFO_NITERS_KNOWN_P): Redefined - to use tree. - (LOOP_VINFO_INT_NITERS): New macro. - (MAX_NUMBER_OF_UNALIGNED_DATA_REFS): New define. - (do_peeling_for_alignment): - (unaligned_drs): New members of _loop_vec_info. - (LOOP_DO_PEELING_FOR_ALIGNMENT): New macro. - -2004-10-14 Ranjit Mathew - - * tree.h (TREE_STRING_POINTER): Wrap in "const char *". - (struct tree_string): Remove "const" qualifier for "str". - -2004-10-14 Ira Rosen - - * tree-vectorizer.c (vect_analyze_data_refs): Call - vect_get_base_and_bit_offset to get memory tag for array ref. - (vect_create_addr_base_for_vector_ref): Remove redundant checks. - -2004-10-14 Richard Earnshaw - - * configure.ac: Use $LN_S for creating symlinks (not $LN). - * configure: Regenerate. - -2004-10-14 Kaveh R. Ghazi - - * doc/install.texi (*-*-solaris2*): Update with info about kernel - patches to solve spurious testsuite failures. - -2004-10-14 Dorit Naishlos - - * tree-vectorizer.c (get_vectype_for_scalar_type): Added debug prinouts. - Added check that vectype is VECTOR_MODE_P, instead of check for BLKmode. - (vect_analyze_operations): Make sure the vectorization factor > 1. Add - gcc_assert under ENABLE_CHECKING. - (vectorizable_operation): Remove check for VECTOR_MODE_P (moved to - get_vectype_for_scalar_type). - - (vect_get_vec_def_for_operand): Remove redundant variables. - (vect_transform_loop): Likewise. - -2004-10-14 Richard Sandiford - - * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Make r11 fixed and - global for -mcaller-super-interworking. - (CALLER_INTERWORKING_SLOT_SIZE): New macro. - * config/arm/arm.c (thumb_compute_save_reg_mask): Save r11 if - CALLER_INTERWORKING_SLOT_SIZE is nonzero and the function does - not need a frame pointer. - (arm_get_frame_offsets): Add CALLER_INTERWORKING_SLOT_SIZE bytes to - the soft frame pointer offset. - (thumb_expand_prologue): Set up r11 for -mcaller-super-interworking. - * config/arm/arm.md (*call_reg_thumb, *call_value_reg_thumb): Use - _interwork_{r7,r11}_call_via_rN if some arguments are passed on - the stack. Use frame_pointer_needed to choose between them. - * config/arm/lib1funcs.asm (_arm_return_{r7,r11}): New functions. - (interwork_with_frame): New macro. - (interwork): Add _interwork_{r7,r11}_call_via_rN(). - -2004-10-14 Ben Elliston - - PR other/17900 - * diagnostic.c (trim_filename): Fix logic bug in walking backwards - up the filename looking for a previous directory separator. - -2004-10-14 Joseph S. Myers - - * c-tree.h (enum c_typespec_kind, struct c_typespec, - parser_xref_tag): New. - (struct c_declspecs): Add tag_defined_p. Adjust definition of - typedef_p. - (declspecs_add_type): Adjust prototypes. - * c-parse.in (%union): Add tstype. - (typespec_nonattr, typespec_attr, typespec_reserved_nonattr, - typespec_reserved_attr, typespec_nonreserved_nonattr, - structsp_attr, structsp_nonattr): Change to tstype. Update - actions. - * c-decl.c (build_null_declspecs): Initialize tag_defined_p. - (declspecs_add_type): Update to take struct c_typespec argument. - Set tag_defined_p and typedef_p as appropriate. - (xref_tag): Rename to parser_xref_tag and replace by wrapper. - Update to return struct c_typespec. - (shadow_tag_warned): Don't let empty declarations with qualifiers - or storage class specifiers redeclare a tag if a previous - declaration is visible. - -2004-10-13 Richard Henderson - - PR debug/15860 - * dwarf2out.c (rtl_for_decl_location): Apply big-endian correction - for DECL_INCOMING_RTL. - -2004-10-14 Hans-Peter Nilsson - - PR target/17984 - * config/cris/cris.md (asrandb, asrandw, lsrandb, lsrandw): Apply - trunc_int_for_mode for constants used in shortened mode. - -2004-10-13 Richard Henderson - - PR c/17384 - * c-common.c (handle_mode_attribute): Disallow mode changes that - alter the CODE of the top-level type. - - * crtstuff.c (__FRAME_END__): Remove mode attribute. Find 32-bit - integer from internal limits macros. - * config/i386/mm3dnow.h (__v2sf): Fix base type. - -2004-10-13 Richard Henderson - - PR debug/13841 - * function.c (instantiate_decl): Recurse for CONCAT. - -2004-10-13 David Edelsohn - - * config/rs6000/rs6000.md (andsi3): Add attribute "compare" for - andi./andis. - (anddi3): Same. - (extzvdi_internal1): Add attribute "compare". - (extzvdi_internal2): Same. - -2004-10-12 Tom Tromey - - * doc/md.texi (Insn Canonicalizations): Removed extraneous quote. - -2004-10-13 Dale Johannesen - - * doc/extend.texi (Extended Asm): Rewrite asm volatile description. - -2004-10-13 Frank Ch. Eigler - - * toplev.c (compile_file): Call mudflap_finish_file from here ... - * c-decl.c (c_write_global_declarations): ... instead of here ... - * cp/decl.c (cp_finish_file): ... and here. - * tree-mudflap.c (mudflap_enqueue_decl): Reword a warning message. - -2004-10-13 Andrew Pinski - - * tree-ssa-dom.c (record_range): Free the element if we are not - going to use it. - -2004-10-13 Tom Tromey - - PR java/15578: - * gcc.c (option_map): Added --extdirs and --encoding. - -2004-10-13 Eric Botcazou - - PR target/14454 - * config/sparc/sparc.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Set to - sparc_can_output_mi_thunk. - (sparc_output_mi_thunk): Simplify handling of delta offset. Add - handling of vcall offset. - (sparc_can_output_mi_thunk): New predicate. - * doc/tm.texi (TARGET_ASM_OUTPUT_MI_THUNK): Document VCALL_OFFSET. - (TARGET_ASM_OUTPUT_MI_VCALL_THUNK): Delete. - (TARGET_ASM_CAN_OUTPUT_MI_THUNK): New target hook. - - * config/sparc/sparc.c (emit_and_preserve): Preserve stack alignment. - - * config/sparc/sparc.md (movdi): Remove redundant test. - -2004-10-13 Paolo Bonzini - - * tree-dump.c (dump_options): Remove TDF_TREE, TDF_RTL, - TDF_IPA from -fdump-tree-*-all. - -2004-10-13 Paul Brook - - * config/arm/arm-protos.h (arm_load_pic_register): Update prototype. - * config/arm/arm.c (thumb_find_work_register): Update comments. - (arm_load_pic_register): Add argument for scratch register. - (arm_expand_prologue, thumb_expand_prologue): Pass extra argument. - * config/arm/arm.md (builtin_setjmp_receiver): Ditto. - -2004-10-13 Kazu Hirata - - * tree-data-ref.c: Fix comment typos. - -2004-10-13 Jakub Jelinek - Zdenek Dvorak - - PR tree-optimization/17724 - * tree-cfg.c (tree_purge_dead_eh_edges): Free dominance info. - -2004-10-13 Dorit Naishlos - - * rs6000.c (altivec_builtin_mask_for_load): Made static GTY(()). - (altivec_builtin_mask_for_store): Likewise. - (altivec_init_builtins): Use lang_hooks.builtin_function to - create the decls for builtin_altivec_mask_for_load/store. - -2004-10-13 Nick Clifton - - * config/c4x/c4x.c: Remove inclusion of loop.h. - -2004-10-12 Ben Elliston - - * basic-block.h (edge_iterator): Keep the address of VEC(edge) *. - (ei_container): New; renamed. - (ei_start, ei_last): New macros. - (ei_start_1, ei_last_1): Renamed from ei_start. - (ei_last_1, ei_end_p): Use ei_container() where applicable. - (ei_one_before_end_p, ei_next, ei_edge): Likewise. - * gcse.c (remove_reachable_equiv_notes): Use ei_container(). - -2004-10-11 Sebastian Pop - - * Makefile.in (tree-ssa-loop-niter.o): Depends on tree-data-ref.h. - * cfgloop.c (initialize_loops_parallel_p): New. - (flow_loops_find): Initialize the parallel_p field to true for all - the loops. - * tree-ssa-loop-niter.c: Include "tree-data-ref.h". - (estimate_numbers_of_iterations_loop): Infers the loop bounds from - the size of the data accessed in the loop. - (struct nb_iter_bound): Moved... - * cfgloop.h (struct nb_iter_bound): ... here. - (estimated_nb_iterations, parallel_p): New fields in struct loop. - (record_estimate): Declare extern here. - * tree-chrec.c: Fix comments. - (nb_vars_in_chrec): New function. - * tree-chrec.h (nb_vars_in_chrec): Declared here. - * tree-data-ref.c: Don't include lambda.h, that is already included - in tree-data-ref.h. - (tree_fold_divides_p): Don't check for integer_onep. - (tree_fold_bezout): Removed. - (gcd): New static duplicated function. - (int_divides_p, dump_subscript): New. - (dump_data_dependence_relation): Use dump_subscript. - (dump_dist_dir_vectors, dump_ddrs, compute_estimated_nb_iterations, - estimate_niter_from_size_of_data): New. - (analyze_array_indexes, analyze_array): Call - estimate_niter_from_size_of_data during the detection of array - references. Pass in a pointer to the statement that contains the - array reference. - (all_chrecs_equal_p): New. - (compute_distance_vector): Renamed compute_subscript_distance. - Deal with multivariate conflict functions. - (initialize_data_dependence_relation): Initialize DDR_AFFINE_P, - DDR_SIZE_VECT, DDR_DIST_VECT, and DDR_DIR_VECT. - (non_affine_dependence_relation): New. - (analyze_ziv_subscript, analyze_siv_subscript_cst_affine, - analyze_siv_subscript, analyze_miv_subscript, - analyze_overlapping_iterations, subscript_dependence_tester): - Initialize and return last_conflicts function. - (initialize_matrix_A, FLOOR, compute_overlap_steps_for_affine_univar, - compute_overlap_steps_for_affine_1_2): New. - (analyze_siv_subscript_affine_cst): Removed. - (analyze_subscript_affine_affine): Disprove dependences based on the - iteration domains. Solve the univariate dependence case as before, - but use lambda_matrix_right_hermite instead of tree_fold_bezout. - Implement the multivariate case of 2 versus 1 variables. - (build_classic_dist_vector, build_classic_dir_vector): Implement some - unhandled cases. - (find_data_references_in_loop): Compute and initialize - loop->estimated_nb_iterations and loop->parallel_p. - (analyze_all_data_dependences): Modify the debug dump order. - * tree-data-ref.h (SUB_LAST_CONFLICT_IN_A, SUB_LAST_CONFLICT_IN_B, - subscript->last_conflict_in_a, subscript->last_conflict_in_b): Removed. - (SUB_LAST_CONFLICT, subscript->last_conflict, - data_dependence_relation->affine_p, data_dependence_relation->size_vect, - DDR_AFFINE_P, DDR_SIZE_VECT): New. - (find_data_references_in_loop, initialize_data_dependence_relation, - dump_subscript, dump_ddrs, dump_dist_dir_vectors): Declared here. - -2004-10-12 Kelley Cook - - * configure: Regenerate. - -2004-10-12 Fariborz Jahanian - - PR 17892 - * tree-ssa-dom.c (unsafe_associative_fp_binop): New function. - (simplify_rhs_and_lookup_avail_expr): Disallow associativity - and constant folding of floating point MULT_EXPR/PLUS_EXPR - expressions. - -2004-10-12 Ulrich Weigand - - * config/s390/s390.c (s390_va_start): Use build_va_arg_indirect_ref. - (s390_gimplify_va_arg): Likewise. - -2004-10-12 Daniel Jacobowitz - - * defaults.h (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P) - (MODE_BASE_REG_REG_CLASS, REGNO_MODE_OK_FOR_REG_BASE_P) - (REG_MODE_OK_FOR_REG_BASE_P): Provide default definitions. - * regclass.c (record_address_regs): Remove ifdef. Use - REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS. - * regrename.c (REG_MODE_OK_FOR_BASE_P): Remove unnecessary - definition. - (scan_rtx_address, replace_oldest_value_addr): Use - REG_MODE_OK_FOR_REG_BASE_P and MODE_BASE_REG_REG_CLASS. - * reload.c (REGNO_MODE_OK_FOR_BASE_P, REG_MODE_OK_FOR_BASE_P): Remove - unnecessary definitions. - (find_reloads_address_1): Support REG_MODE_OK_FOR_REG_BASE_P - and MODE_BASE_REG_REG_CLASS. - * config/arm/arm.h (MODE_BASE_REG_CLASS): Don't check reload_completed. - (MODE_BASE_REG_REG_CLASS): Define. - (REGNO_MODE_OK_FOR_REG_BASE_P): Define. - (REG_MODE_OK_FOR_REG_BASE_P): Define. - * doc/tm.texi (Register Classes): Document MODE_BASE_REG_REG_CLASS, - REG_MODE_OK_FOR_REG_BASE_P, and REGNO_MODE_OK_FOR_REG_BASE_P. - -2004-10-12 Daniel Berlin - - * tree-ssa-alias.c (verify_name_tags): New function. - (verify_flow_sensitive_alias_info): Remove code that used to check name tags. - (verify_alias_info): Call verify_name_tags. - -2004-10-12 Kazu Hirata - - PR rtl-optimization/17931 - * config/i386/i386.c (ix86_rtx_costs): Handle COMPARE with - ZERO_EXTRACT in it. - -2004-10-12 Richard Earnshaw - - * arm.c (arm_print_operand): Use output_operand_lossage where possible - rather than aborting. - -2004-10-12 Paul Brook - - * config.gcc: Add armv6{k,z,zk} - * config/arm/arm-cores.def: Add arm1176 and mpcore. - * config/arm/tune.md: Regenerate. - * config/arm/arm.c (FL_FOR_ARCH6K, FL_FOR_ARCH6Z, FL_FOR_ARCH6ZK): - Define. - (all_architectures): Add armv6k, armv6z, armv6zk. - * config/arm/lib1funcs.asm: Recognise new arm arcitectures. - * doc/invoke.texi: Document new arch and cpu values. - -2004-10-12 Paul Brook - - * config/arm/bpabi.h (SUBTARGET_EXTRA_ASM_SPEC): Change meabi=3 to - meabi=4. - -2004-10-12 Paul Brook - - * config/arm/arm.md (addsi3_cbranch_scratch): Correct constraints. - Handle negative constants. - -2004-10-12 Joseph S. Myers - - PR c/17301 - * c-typeck.c (convert_arguments): Return error_mark_node if there - are too few arguments. - (build_function_call): Handle error_mark_node return from - convert_arguments. - -2004-10-06 Paolo Bonzini - - * configure.ac (symbolic_link): Replace with $LN_S. - (Assembler/Linker): Hard link from gas and binutils trees. - * aclocal.m4 (gcc_AC_PROG_LN_S): Try "cp -p" before cp. - * configure: Regenerate. - -2004-10-12 Paul Brook - - * configure.ac: Don't look for host assembler when building a canadian - cross. - * configure: Regenerate. - -2004-10-11 Roger Sayle - - PR other/17361 - * c-opts.c (permit_fortran_options): Delete/obsolete global variable. - (c_common_init_options): Remove #ifdef CL_F77 code. Scan command - line options for "-lang-asm" and if found allow any of the C-family - front-end options. - (c_common_handle_option): Remove last use of permit_fortran_options. - -2004-10-11 Ulrich Weigand - - * config/s390/s390.c (print_operand): Support 'S' format flag. - * config/s390/s390.md ("*tmqi_mem"): Use 'S' format flag. - ("*tstsi", "*tstsi_cconly", "*tstsi_cconly2"): Likewise. - ("*tsthiCCT", "*tsthiCCT_cconly", "*tsthi", "*tsthi_cconly"): Likewise. - ("*tstqiCCT", "*tstqiCCT_cconly", "*tstqi", "*tstqi_cconly"): Likewise. - ("*cmphi_ccu", "*cmpqi_ccu", "*clc"): Likewise - ("movti", "*movdi_31", "*movqi", "*movdf_31", "*mvc"): Likewise. - ("*movstricthi"): Likewise. - ("*load_multiple_di", "*load_multiple_si"): Likewise. - ("*store_multiple_di", "*store_multiple_si"): Likewise. - ("*sethiqisi", "*sethihisi"): Likewise. - ("*sethiqidi_64", "*sethiqidi_31"): Likewise. - ("*andqi3_zarch", "*andqi3_esa", "*nc"): Likewise. - ("*iorqi3_zarch", "*iorqi3_esa", "*oc"): Likewise. - ("*xorqi3", "*xc", "*xc_zero"): Likewise. - ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): Likewise. - - ("*tmhi_full"): Fix incorrect op_type attribute. - - ("*adddi3_alc_cc", "*adddi3_alc"): Remove double backslash. - ("*subdi3_slb_cc", "*subdi3_slb"): Likewise. - ("*addsi3_alc_cc", "*addsi3_alc"): Likewise. - ("*subsi3_slb_cc", "*subsi3_slb"): Likewise. - -2004-10-11 Andrew Pinski - - * config/s390/s390.c (s390_trampoline_template): Generate shorter - trampoline code. - (s390_trampoline_instantiate): Adapt. - * config/s390/s390.h (TRAMPOLINE_SIZE): Adapt to new code. - -2004-10-11 Roger Sayle - - PR middle-end/17657 - * stmt.c (add_case_node): Add additional type argument. Declare - as static to match prototype. Convert the upper and lower bounds - to the specified index type. Optimize away case ranges/values - that are outside the index type's bounds. Truncate case ranges - that span the index type's bounds. - (expand_case): Avoid unnessary computation and memory allocation - when index type is error_mark_node. Pass index_type as required - by change to add_case_node API. No need to convert case range - bounds to index_type, this is now done by add_case_node. - -2004-10-11 Ulrich Weigand - - * config/s390/s390-protos.h (s390_offset_p): Add prototype. - * config/s390/s390.c (s390_offset_p): New function. - * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccu", - "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu"): Use splitter to - transform Q->Q alternatives to *clc pattern. - ("*clc"): Move. - ("movti", "*movdi_64", "*movdi_31", "*movsi_zarch", "*movsi_esa", - "*movhi", "*movqi", "*movdf_64", "*movdf_31", "movsf"): Use splitter - to transform Q->Q alternatives to *mvc pattern. - ("*mvc"): Move. Add peephole to merge adjacent MVCs. - ("*anddi3", "*andsi3_zarch", "*andsi3_esa", "*andhi3_zarch", - "*andhi3_esa", "*andqi3_zarch", "*andqi3_esa"): Use splitter to - transform Q->Q alternatives to *nc pattern. - ("*nc"): New insn. New peephole to merge adjacent NCs. - ("*iordi3", "*iorsi3_zarch", "*iorsi3_esa", "*iorhi3_zarch", - "*iorhi3_esa", "*iorqi3_zarch", "*iorqi3_esa"): Use splitter to - transform Q->Q alternatives to *oc pattern. - ("*oc"): New insn. New peephole to merge adjacent OCs. - ("*xordi3", "*xorsi3", "*xorhi3", "*xorqi3"): Use splitter to - transform Q->Q alternatives to *xc pattern. - ("*xc"): New insn. New peephole to merge adjacent XCs. - ("*xc_zero"): Move. Add peephole to merge adjacent XCs. - -2004-10-11 Andrew Pinski - - * gimplify.c (gimple_push_condition): Make sure that we don't - have any saved condition cleanup if we were at the top level. - -2004-10-11 Richard Sandiford - - * config/frv/frv.md (*adddi3_internal): Change name to... - (adddi3): ...replacing the exisiting define_expand. Combine - alternatives. Fix the range of the constant constraints ('J' instead - of 'NOP'). Remove bogus operands[2] check. Use simplify_gen_subreg - to extract the lower and upper halves of the DImode operands. - Always use addi3_lower and adddi3_upper, not the subdi3 forms. - (adddi3_lower): Fix the range of the constant constraints and - remove the bogus operands[2] check. - (adddi3_upper): Use gpr_or_int10_operand as the predicate for - operand 2. Use addxi to handle constant operands. - (subdi3_lower, subdi3_upper): Don't handle constant operands. - -2004-10-11 Nathan Sidwell - - * gengtype-lex.l: Add commented } & ) characters to unconfuse - editor's paren matching. Allow #define inside a struct. - -2004-10-10 Andrew Pinski - - PR middle-end/17703 - part of PR c++/17657 - * fold-const.c (fold_build_cleanup_point_expr): New function. - * tree.h (fold_build_cleanup_point_expr): Prototype. - -2004-10-10 Eric Christopher - - * dwarf2out.c: Move attribute to subprogram declaration - instead of subroutine type. - -2004-10-10 Kazu Hirata - - * basic-block.h: Remove the prototypes for can_hoist_insn_p, - hoist_insn_after, and hoist_insn_to_edge. - * rtl.h: Remove the prototypes for reg_referenced_between_p, - no_jumps_between_p, and insn_dependent_p. - * rtlanal.c (no_jumps_between_p, reg_referenced_between_p, - insn_dependent_p, insn_dependent_p_1, hoist_test_store, - can_hoist_insn_p, hoist_update_store, hoist_insn_after, - hoist_insn_to_edge): Remove. - -2004-10-10 Joseph S. Myers - - PR c/17881 - * c-decl.c (grokparms): Don't warn for parameters of incomplete - type in declarations that are not definitions except for the case - of parameters of void type. - -2004-10-10 Kazu Hirata - - * tree-cfg.c: Fix comment typos. - -2004-10-10 Joseph S. Myers - - PR c/17301 - * builtins.c (expand_builtin_va_start): Check for too few - arguments to va_start. - -2004-10-10 Joseph S. Myers - - PR c/17189 - * c-decl.c (grokfield): Make diagnostic for bad cases of unnamed - fields a pedwarn. Pedwarn here for unnamed structs/unions if - pedantic. - * c-parse.in (component_decl): Don't pedwarn here for unnamed - fields. - -2004-10-09 Zdenek Dvorak - - PR tree-optimization/17906 - * tree-tailcall.c (tree_optimize_tail_calls_1): Do not attempt to - copy non-gimple reg arguments. - -2004-10-09 Roger Sayle - - PR rtl-optimization/17853 - * simplify-rtx.c (simplify_relational_operation): Correct comment. - Reorganize handling of comparison operations with floating point - results (always return 0.0 even without FLOAT_STORE_FLAG_VALUE). - Likewise, introduce support for comparison operations with vector - result types, introducing a new VECTOR_STORE_FLAG_VALUE target macro. - - * doc/rtl.texi: Document new VECTOR_STORE_FLAG_VALUE target macro. - * doc/tm.texi: Likewise. - -2004-10-09 Steven Bosscher - - * regs.h (struct reg_info_def): Remove the last_node_uid and - changes_mode fields. - (REGNO_LAST_NOTE_UID): Don't define. - * regclass.c (reg_scan_mark_refs): Don't set REGNO_LAST_NOTE_UID. - * regmove.c (copy_src_to_dest): Likewise. - -2004-10-09 Roger Sayle - - PR middle-end/17894 - * fold-const.c (fold_div_compare): When optimizing X/C1 op C2, the - relational comparison operator op needs to be swapped/reversed when - C1 is negative. i.e. X/-10 < 1 becomes X >= -9, not X < -9. - -2004-10-08 Andrew Pinski - - PR tree-opt/17902 - * tree-ssa-phiopt.c (conditional_replacement): Use bsi_after_labels - instead of bsi_start. - (value_replacement): Likewise. - (abs_replacement): Likewise - -2004-10-09 Steven Bosscher - - * cfgexpand.c (maybe_dump_rtl_for_tree_stmt): New function. - (expand_gimple_cond_expr, expand_gimple_tailcall, - expand_gimple_basic_block): Use it to dump RTL for each stmt. - (tree_expand_cfg): Announce full RTL function dump. - * tree-optimize.c (execute_one_pass): Use normal RTL printing, - not the graph version. - * tree-pretty-print.c (dump_generic_node): Allow empty statements - in the arms of a COND_EXPR for lowered nodes. - -2004-10-08 Joseph S. Myers - - * config/rs6000/spe.h (atosfix16, atosfix32, atosfix64, atoufix16, - atoufix32, atoufix64, strtosfix16, strtosfix32, strtosfix64, - strtoufix16, strtoufix32, strtoufix64): Declare. - -2004-10-08 Joseph S. Myers - - * c-lex.c (interpret_float): Give a pedwarn rather than a warning - for an out-of-range floating point constant. - * builtins.c (fold_builtin_inf): Give a pedwarn rather than a - warning if the target format does not support infinities. - -2004-10-08 Kazu Hirata - - * emit-rtl.c (last_label_num, base_label_num): Remove. - (max_label_num): Always return label_num. - (set_new_last_label_num, restore_emit_status): Remove. - (init_emit): Don't initialize last_label_num. - * function.c (pop_function_context_from): Don't call - restore_emit_status. - * function.h: Remove the prototype for restore_emit_status. - * rtl.h: Remove the prototype for set_new_last_label_num. - -2004-10-08 Kazu Hirata - - * stmt.c (expand_decl_init): Remove. - * tree.h: Remove the corresponding prototype. - -2004-10-08 Kazu Hirata - - * integrate.c (try_constants, subst_constants, mark_stores): - Remove. - * integrate.h: Remove the prototype for try_constants. - -2004-10-08 Joseph S. Myers - - * c-typeck.c (enum impl_conv): Add ic_argpass_nonproto. - (convert_for_assignment): Handle ic_argpass_nonproto. Add - comments about its relevance to errors. - (c_convert_parm_for_inlining): Use ic_argpass_nonproto. - -2004-10-08 Andrew Pinski - - PR c/16999 - * c-ppoutput.c (cb_ident): Don't quote string as it is already - quoted. - -2004-10-08 Diego Novillo - - * tree-ssa-pre.c (init_pre): Use size of ARRAY_REF to allocate - reference_node_pool. - -2004-10-08 Kazu Hirata - - * tree-cfg.c: Fix a comment typo. - -2004-10-08 Andreas Krebbel - - * config/s390/s390.c (s390_register_info): Don't save fprs for - -msoft-float. - (s390_conditional_register_usage): Make fprs 'fixed' for -msoft-float. - -2004-10-08 Ulrich Weigand - - * config/s390/s390.h (TARGET_DEFAULT_BACKCHAIN): New define. - (TARGET_DEFAULT): Use symbolic values. - * config/s390/tpf.h (TARGET_DEFAULT_BACKCHAIN): Redefine. - (TARGET_DEFAULT): Use symbolic values. - * config/s390/s390.c (s390_backchain_string): Initialize to - TARGET_DEFAULT_BACKCHAIN. - -2004-10-08 Kaveh R. Ghazi - - * builtins.c (expand_builtin_mempcpy): Move tree handling code to - fold_builtin_mempcpy. Accept a type parameter. Delete duplicate - code. - (expand_builtin_strcat): Accept a type parameter. - (fold_builtin_mempcpy): Accept a type and endp parameter. - - * builtins.c (expand_builtin_strncpy): Delete duplicate code. - Accept an `exp' instead of an `arglist'. - -2004-10-08 Nathan Sidwell - - * tree-tailcall.c (tree_optimize_tail_calls_1): Use fold_convert, - reverting my 2004-09-07 patch to use build_int_cst. - -2004-10-08 Eric Botcazou - - PR target/17245 - * config/sparc/sparc.c (input_operand): Remove redundant code - for handling LO_SUM. - (legitimate_address_p) : Do not recheck TARGET_V9. - : If LO_SUM is offsettable, accept it for TFmode on V9. - Otherwise only accept it for TFmode if quad move insns are available. - -2004-10-08 Kazu Hirata - - * tree-cfg.c (tree_forwarder_block_p): Reorder checks so that - common cases will be caught earlier than others. - -2004-10-08 Michael Matz - - * loop-doloop.c (doloop_optimize): Extend count. - -2004-10-08 Kaz Kojima - - * config/sh/sh.md (prefetch_media, prefetch_i4): New insns. - (prefetch): Convert to expander. - -2004-10-08 Kaz Kojima - - * config/sh/sh.md (tls_global_dynamic): Use MEM pattern for the - first argument of CALL. - (tls_local_dynamic): Likewise. - -2004-10-08 Joseph S. Myers - - * c-typeck.c (enum impl_conv): New. - (convert_for_assignment): Use it. Take tree for function called - instead of its name. Handle ObjC selectors for diagnostics at - start of function. Select diagnostic text within the function - using full sentences for diagnsotics. Use %qE to name functions - in diagnostics. - (convert_arguments, build_modify_expr, - c_convert_parm_for_inlining, digest_init, c_finish_return): Update - callers to convert_for_assignment. - (warn_for_assignment): Remove. - -2004-10-08 Nick Clifton - - * config/sh/symbian.c (symbian_possibly_export_base_class): - Replace use of deleted TYPE_USES_VIRTUAL_BASECLASSES macro with - TYPE_CONTAINS_VPTR_P. - -2004-10-08 Kazuhiro Inaoka - - * config/m32r/m32r.h (CONDITIONAL_REGISTER_USAGE): Don't exclude - fixed registers form all_used_regs. Update call_really_used_regs. - (CALL_REALLY_USED_REGISTERS): Define. - * config/m32r/m32r.c (MUST_SAVE_REGISTER): Replace call_used_regs - with call_really_used_regs. - -2004-10-08 Alan Modra - - * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Choose gcrt1.o - for -profile as well as -p and -pg. - -2004-10-07 Andrew Pinski - - * libgcc2.c (__moddi3): Cast &w to UDWtype*. - -2004-10-07 Kazu Hirata - - * tree-cfg.c (tree_block_forwards_to): Remove. - * tree-flow.h: Remove the corresponding prototype. - -2004-10-07 Kazu Hirata - - * tree-flow-inline.h (phi_nodes): Remove an unnecessary check - for ENTRY_BLOCK_PTR and EXIT_BLOCK_PTR. - -2004-10-07 Geoffrey Keating - - Radar 3813796 - * config/rs6000/rs6000.c (rs6000_generate_compare): When - flag_trapping_math is in effect, don't generate subtract - instructions. - -2004-10-07 Ulrich Weigand - - * config/s390/s390-protos.h (s390_narrow_logical_operator): Add. - * config/s390/s390.c (s390_narrow_logical_operator): New function. - (s390_extra_constraint_str): Add 'A' constraints. - (s390_const_ok_for_constraint_p): Add 'Nx' constraints. - * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'A' constraint. - (CONSTRAINT_LEN): Likewise. - * config/s390/s390.md ("*anddi3"): Add NI alternative and splitter. - ("*andsi3_zarch", "*andsi3_esa"): Likewise. - ("*andhi3_zarch", "*andhi3_esa"): Likewise. - ("*iordi3"): Add OI alternative and splitter. - ("*iorsi3_zarch", "*iorsi3_esa"): Likewise. - ("*iorhi3_zarch", "*iorhi3_esa"): Likewise. - ("*xordi3"): Add XI alternative and splitter. - ("*xorsi3", "*xorhi3"): Likewise. - -2004-10-07 Richard Sandiford - - * config/mips/mips.c (mips_function_rodata_section): New function. - (TARGET_ASM_FUNCTION_RODATA_SECTION): Use it. - -2004-10-07 Devang Patel - - * rs6000/altivec.md (UNSPEC_VCMPBFP, UNSPEC_VCMPEQUB, UNSPEC_VCMPEQUH, - UNSPEC_VCMPEQUW, UNSPEC_VCMPGEFP, UNSPEC_VCMPGTUB, UNSPEC_VCMPGTSB, - UNSPEC_VCMPGTUH, UNSPEC_VCMPGTSH, UNSPEC_VCMPGTUW, UNSPEC_VCMPGTSW, - UNSPEC_VCMPGTFP, UNSPEC_VSEL4SI, UNSPEC_VSEL4SF, UNSPEC_VSEL8HI, - UNSPEC_VSEL16QI, UNSPEC_VCOND_V4SI, UNSPEC_VCOND_V4SF, UNSPEC_VCOND_V8HI, - UNSPEC_VCOND_V16QI, UNSPEC_VCONDU_V4SI, UNSPEC_VCONDU_V8HI, - UNSPEC_VCONDU_V16QI): New constant defines. - (vcondv4si, vcondv4sf, vcondv8hi, vcondv16qi, vconduv4si, vconduv8hi, - vconduv16qi): New patterns. - * rs6000/rs6000-protos.h (rs6000_emit_vector_cond_expr): New function. - * rs6000/rs6000.c (rs6000_emit_vector_cond_expr): New function. - (get_vec_cmp_insn): Same. - (get_vsel_insn): Same. - (rs6000_emit_vector_compare): Same. - (rs6000_emit_vector_select): Same. - (INSN_NOT_AVAILABLE): New. - -2004-10-07 Zdenek Dvorak - - PR tree-optimization/17749 - * tree-tailcall.c (find_tail_calls): Check that parameter is - a gimple_reg. - -2004-10-07 Kazu Hirata - - * config/ia64/ia64.c: Fix a comment typo. - -2004-10-07 Eric Botcazou - - * doc/install.texi (*-*-solaris2*): Fix marker for URL. - -2004-10-07 Giovanni Bajo - - PR c++/17115 - * tree-inline.c (expand_call_inline): Do not warn for functions - marked with attribute noinline. - -2004-10-07 Eric Botcazou - - PR target/17862 - * config/sparc/sparc.c (sparc_output_mi_thunk): Set - current_function_uses_only_leaf_regs as well as sparc_leaf_function_p. - - * config/sparc/sparc.c (sparc_gimplify_va_arg): Pass 'false' instead - of 0 as 4th argument to pass_by_reference. - Call build_va_arg_indirect_ref instead of build_fold_indirect_ref. - -2004-10-06 Eric Christopher - - * config/sh/sh.c (sh_dwarf_calling_convention): Fix renesas dwarf - attribute. - -2004-10-07 Richard Sandiford - - PR target/17770 - * config/mips/mips.md (mov_l): Remove hazard=none attribute. - -2004-10-07 Zdenek Dvorak - - PR rtl-optimization/17791 - * loop-doloop.c (doloop_modify): Take number of iterations as - argument. - (doloop_optimize): Extend or shorten the number of iterations - when changing mode of counter register. - * loop-iv.c (lowpart_subreg): Export. - * rtl.h (lowpart_subreg): Declare. - -2004-10-07 Zdenek Dvorak - - PR tree-optimization/17806 - * cfghooks.c (split_edge): Update IRREDUCIBLE_LOOP flags. - * cfgloopmanip.c (loop_split_edge_with): Updating of IRREDUCIBLE_LOOP - flags moved to split_edge. - -2004-10-07 Eric Botcazou - - PR middle-end/17835 - * expmed.c (expand_sdiv_pow2): Force a stack adjustment - before tentatively building the conditional move sequence. - -2004-10-07 Richard Sandiford - - PR target/16815 - * function.c (assign_parm_setup_block_p): Tighten BLOCK_REG_PADDING - check. - * config/pa/pa.h (BLOCK_REG_PADDING): Define in terms of - function_arg_padding. - -2004-10-07 Richard Sandiford - - PR bootstrap/17857 - * Makefile.in (stmp-fixproto): Pass FIX_HEADER=build/... to fixproto. - -2004-10-07 Kazu Hirata - - * hooks.c (hook_int_void_1, hook_void_int): Remove. - * hooks.h: Remove the corresponding prototypes. - -2004-10-06 Andrew Pinski - - PR middle-end/17849 - * tree-nested.c (walk_stmt_info): Add changed field. - (convert_nonlocal_reference): Set changed to when we - change a decl to unnested decl. - : Instead of checking if the immediate part - of the ADDR_EXPR changed, check the field changed. - Use recompute_tree_invarant_for_addr_expr instead of unsetting - TREE_INVARIANT. - (convert_local_reference): Set changed to when we - change a decl to unnested decl. - : Instead of checking if the immediate part - of the ADDR_EXPR changed, check the field changed. - Also call recompute_tree_invarant_for_addr_expr on the ADDR_EXPR. - -2004-10-06 Kazu Hirata - - * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove. - * dwarf2out.c (dwarf2out_init): Remove references to - DWARF2_GENERATE_TEXT_SECTION_LABEL. - * system.h: Poison DWARF2_GENERATE_TEXT_SECTION_LABEL. - * doc/tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Remove. - -2004-10-06 Joseph S. Myers - - * c-typeck.c (convert_arguments): Take expression for called - function rather than its name. Handle ObjC selectors directly - rather than relying on warn_for_assignment to do so. Call warning - directly rather than warn_for_assignment. Use %qE in diagnostics. - Say "argument" rather than "arg" in diagnostics. - (build_function_call): Update call to convert_arguments. - -2004-10-06 Andrew Pinski - - PR debug/17787 - * dbxout.c (dbxout_symbol): Really handle RECORD, UNION, and - ENUMs specially instead of just saying we do. - -2004-10-06 Eric Christopher - - * dwarf2.h: Sync with include/elf/dwarf2.h - -2004-10-06 Daniel Berlin - - * tree-pretty-print.c (dump_generic_node): Fix printing of BINFO - and TREE_VEC nodes. - -2004-10-06 Daniel Berlin - - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Convert - to use FOR_EACH_SSA_USE_OPERAND iterator, and propagate_value. - -2004-10-06 Daniel Berlin - - * lambda-code.c (compute_nest_using_fourier_motzkin): New - function. - (lambda_compute_auxillary_space): Split from here. - -2004-10-06 Daniel Berlin - - * tree-ssa-loop-ivopts.c (expr_invariant_in_loop): Make non-static. - * tree-flow.h: Add prototype. - * lambda-code.c (invariant_in_loop_and_outer_loops): Use - expr_invariant_in_loop. - -2004-10-06 Kazu Hirata - - * tree-cfg.c (thread_jumps): Remove a duplicate check for - EXIT_BLOCK_PTR. - -2004-10-06 Ulrich Weigand - - * config/s390/s390-protos.h (s_imm_operand): Remove. - (s390_pool_operand): Add prototype. - * config/s390/s390.c (general_s_operand): Remove. - (s_imm_operand): Remove. - (s_operand): Merge contents of general_s_operand. - (s390_pool_operand): New function. - * config/s390/s390.h (PREDICATE_CODES): Remove s_imm_operand. - * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct"): New insns. - ("*cmpdi_ccu"): Merge Q->Q alternative. - ("*cmpsi_ccu", "*cmphi_ccu"): Likewise. - ("*cmpqi_ccu"): Merge Q->Q, n->Q, n->S alternatives. - ("*cli"): Remove. - ("*cmpdi_ccu_mem", "*cmpsi_ccu_mem"): Likewise. - ("*cmphi_ccu_mem", "*cmpqi_ccu_mem"): Likewise. - ("*movstricthi"): Use memory_operand instead of s_imm_operand. - -2004-10-06 Steve Ellcey - - * config/ia64/ia64.h (FUNCTION_ARG_BOUNDARY): Change macro to - call ia64_function_arg_boundary. - * config/ia64/ia64-protos.h (ia64_function_arg_boundary): New. - * config/ia64/ia64.c (ia64_function_arg_boundary): New. - (ia64_function_arg_advance): Do not put 128 bit floats into - FP registers. - -2004-10-06 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strcpy): Delete duplicate code. - Accept an expression instead of an arglist. - (expand_builtin_stpcpy): Accept an expression instead of an - arglist. - -2004-10-06 Eric Botcazou - - PR target/16007 - * doc/install.texi (*-*-solaris2*): Mention potential problem - with Sun assembler + GNU linker and C++ programs. - Document status of binutils 2.15 release. - -2004-10-06 Jan Hubicka - - * cse.c (cse_main): Kill push/pop context. - -2004-10-05 Zack Weinberg - - * pretty-print.c: Include tree.h. - (pp_base_prepare_to_format): New function, logic from - text_specifies_location. - (pp_base_format_text): Use gcc_assert. - * pretty-print.h (pp_prepare_to_format): New macro. - (pp_base_prepare_to_format): Prototype. - * diagnostic.c (text_specifies_location): Delete. - (bug_report_request): Delete. - (diagnostic_set_info): Don't call text_specifies_location. - (diagnostic_action_after_output): Put text from - bug_report_request inline here. Use gcc_unreachable. - (diagnostic_report_current_function): Fix comment. - (diagnostic_report_diagnostic): Clarify logic for error recursion. - Call pp_prepare_to_format before diagnostic_starter. - (trim_filename): Use IS_DIR_SEPARATOR. - (fatal_error, internal_error): Use gcc_unreachable. - (error_recursion): Call diagnostic_action_after_output to - issue the bug_report_request message and exit. - * Makefile.in (diagnostic.o, pretty-print.o): Update dependencies. - - * c-parse.in: Add list of diagnostic messages to insulate - translation template from version of yacc/bison used to - compile the grammar. - -2004-10-06 Alan Modra - - PR 16406 - * doc/tm.texi (USE_LD_AS_NEEDED, LINK_EH_SPEC): Document. - -2004-10-05 Kazu Hirata - - * basic-block.h: Remove the prototype for - flow_preorder_transversal_compute. - * cfganal.c (dfst_node): Remove. - (flow_preorder_transversal_compute): Likewise. - * rtl.h: Remove the prototype for get_jump_table_offset. - * rtlanal.c (get_jump_table_offset): Remove. - -2004-10-05 Richard Henderson - - PR 17756 - * tree-ssa-operands.c (get_expr_operands): Handle CONST_DECL. - -2004-10-05 Kelley Cook - - PR bootstrap/17817 - * Makefile.in: Stage the build directory too. - -2004-10-05 Aldy Hernandez - - * config/frv/frv.h (LEGITIMIZE_ADDRESS): New. - - * config/frv/frv-protos.h (frv_legitimize_address): Protoize. - (frv_emit_move): Same. - - * config/frv/frv.c (frv_emit_move): New. - (frv_legitimize_address): New. - - * config/frv/frv.md ("movsi"): Call frv_emit_move. - ("movqi"): Same. - ("movhi"): Same. - ("movdi"): Same. - ("movsf"): Same. - ("movdf"): Same. - -2004-10-05 Joseph S. Myers - - * c-decl.c (declspecs_add_type): Don't pedwarn for _Complex in - system headers. - -2004-10-05 Joseph S. Myers - - * c-decl.c (pushdecl): When an extern declaration at block scope - refers to a visible entity with internal linkage, use the old DECL - rather than the new one. - -2004-10-05 Kazu Hirata - - * tree-cfg.c (cleanup_tree_cfg): Remove extra parentheses in - comments. - -2004-10-05 Kazu Hirata - - * tree-cfg.c (thread_jumps): Remove a duplicate check for - an infinite loop. - -2004-10-05 Kazu Hirata - - * tree-cfg.c (thread_jumps): Iterate with FOR_EACH_BB instead - of FOR_BB_BETWEEN. Remove a useless check for unreachable - blocks. - -2004-10-05 Kazu Hirata - - * tree-cfg.c (cleanup_tree_cfg): Don't call - delete_unreachable_blosk() after thread_jumps(). - (thread_jumps): Always remove basic blocks as they become - unreachable. - -2004-10-05 Kazu Hirata - - * tree-cfg.c (cleanup_tree_cfg): Remove variable - something_changed. Simplify the while loop. - -2004-10-05 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memmove): Delete duplicate code - and accept a tree type for the result. - (expand_builtin_bcopy): Accept a tree type for the result. - (fold_builtin_memmove): Accept an arglist and tree type for - the result. - -2004-10-05 Ulrich Weigand - - * config/s390/s390.c (s390_dump_pool): Remove return value. - Use gen_pool_align, gen_pool_section_start/end instead of - gen_pool_start/end_31/64. - * config/s390/s390.md (UNSPECV_POOL_START, UNSPECV_POOL_END): Remove. - (UNSPECV_POOL_SECTION, UNSPECV_POOL_ALIGN): New constants. - ("pool_start_31", "pool_end_31"): Remove. - ("pool_start_64", "pool_end_64"): Likewise. - ("pool_align", "pool_section_start", "pool_section_end": New insns. - - * config/s390/s390.c (s390_cannot_copy_insn_p): New function. - (TARGET_CANNOT_COPY_INSN_P): Define. - (s390_cannot_force_const_mem): Handle UNSPEC_INSN. - (struct constant_pool): New member 'execute'. - (s390_add_execute, s390_find_execute): New functions. - (s390_execute_label, s390_execute_target): Likewise. - (s390_dump_pool): Output in-pool execute target templates. - (s390_dump_execute): New function. - (s390_alloc_pool, s390_free_pool): Handle execute templates. - (s390_mainpool_start, s390_mainpool_finish): Likewise. - (s390_chunkify_start, s390_chunkify_finish): Likewise. - * config/s390/s390.md (UNSPEC_INSN, UNSPEC_EXECUTE): New constants. - ("*execute"): New insn pattern. - ("movmem_short", "*movmem_short"): Use splitters to generate - explicit execute pattern, remove embedded execute. - ("clrmem_short", "*clrmem_short"): Likewise. - ("cmpmem_short", "*cmpmem_short"): Likewise. - -2004-10-05 Daniel Berlin - - * tree-ssa.c (verify_ssa): Verify phi arguments only - contain renamed names. - -2004-10-05 Alan Modra - - * config/rs6000/linux.h: Formatting, whitespace. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/rs6000-protos.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - (easy_vector_splat_const): Add fall thru comments. - (output_vec_const_move): Likewise. - -2004-10-05 Kelley Cook - - * Makefile.in: Update -Wno-error exceptions for move to build dir. - -2004-10-05 Chao-Ying Fu - Richard Sandiford - - * doc/invoke.texi (-mpaired-single): Link to the new description of the - built-in functions. Document dependencies. - (-mips3d): Add link here too. - * doc/extend.texi (MIPS Paired-Single Support): New section. - -2004-10-04 Chao-ying Fu - - * config/mips/mips.h (UNITS_PER_SIMD_WORD): Define. - -2004-10-04 Diego Novillo - - * tree-ssa-dom.c (tree_ssa_dominator_optimize): - Initialize OPT_STATS to 0. - -2004-10-04 Kazu Hirata - - * tree-data-ref.c: Fix comment typos. - -2004-10-04 Sebastian Pop - - * tree-data-ref.c (array_base_name_differ_p): Fix comments. When - the predicate cannot be computed, don't initialize the result to - false. - -2004-10-01 Eric Christopher - - * dwarf2.h (dwarf_calling_convention): Add GNU prefix to - locally defined enum. - * dwarf2out.c (add_calling_convention_attribute): Don't - emit DW_CC_normal. - -2004-10-03 Andrew Pinski - - PR c/17178, PR c/17820 - * c-decl.c (pop_scope): Do not warn about unused static - variables as they warned in the middle-end. - -2004-10-03 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memcpy): Delete duplicate code - and make the first parameter the expression not the arglist. - -2004-10-03 Ulrich Weigand - - * expr.c (expand_expr_addr_expr): Only accept Pmode or ptr_mode - as valid modes to expand address expressions. - -2004-10-03 Joseph S. Myers - - * c-aux-info.c, c-common.c, c-common.h, c-cppbuiltin.c, c-decl.c, - c-format.c, c-incpath.c, c-lex.c, c-objc-common.c, c-opts.c, - c-parse.in, c-pch.c, c-ppoutput.c, c-pragma.c, c-typeck.c: Follow - code formatting conventions. - -2004-10-03 Richard Sandiford - - * config/mips/mips.md (mulsidi3_32bit_r4000): Fix unsigned case. - -2004-10-03 Kazu Hirata - - PR tree-optimization/16632 - * fold-const.c (fold) [EQ_EXPR]: When seeing if D & ~C != 0 to - fold (A & C) == D into 0, fold ~C. Similarly, for the case - where | is used instead of &. - -2004-10-03 Kazu Hirata - - * ginclude/stddef.h: Fix a comment typo. - -2004-10-03 Eric Botcazou - - PR target/17443 - * config.gcc (i?86-*-solaris2*): Restore correct logic - for --enable-threads option. - (sparc64-*-solaris2*): Likewise. - (sparc-*-solaris2*): Likewise. - -2004-10-03 Alan Modra - - * config/rs6000/linux.h (TARGET_C99_FUNCTIONS): Define. - (OS_MISSING_POWERPC64): Move, and comment. - * config/rs6000/linux64.h (TARGET_C99_FUNCTIONS): Define. - (OS_MISSING_POWERPC64): Move, and comment. - -2004-10-02 Ian Lance Taylor - - * arm.c (output_call_mem): Add missing \t. - -2004-10-02 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp, - expand_builtin_strncmp): Delete duplicate code. - -2004-10-02 Frank Ch. Eigler - - * tree-mudflap.c (mf_build_check_statement_for): Reorganize to - take check-base and -limit arguments. - (mf_xform_derefs_1): Reorganize slightly to pass proper base/limit - check ranges for ARRAY_REF and COMPONENT_REF. - (execute_mudflap_fnction_ops, ..._decls): Limit unnecessary - instrumentation. - -2004-10-02 Joseph S. Myers - - * c-objc-common.c (c_tree_printer): Correct description of %E. - Don't fall through after printing an expression. - -2004-10-02 Kazu Hirata - - * tree-cfg.c, config/s390/tpf-unwind.h: Fix comment typos. - -2004-10-02 Kazu Hirata - - * tree-cfg.c (cleanup_tree_cfg): Speed up by calling - delete_unrechable_blocks() only when necessary. - -2004-10-02 P.J. Darcy - - * gthr-tpf.h (__gthread_recursive_mutex_t): New type. - (__GTHREAD_RECURSIVE_MUTEX_INIT): Define. - (__gthread_recursive_mutex_lock, __gthread_recursive_mutex_trylock, - __gthread_recursive_mutex_unlock): New functions. - -2004-10-02 P.J. Darcy - - * config/s390/t-tpf (LIB2ADDEH): Remove tpf-eh.c. - * config/s390/tpf-eh.c: Remove file. - * config/s390/tpf-unwind.h: New file. - * config/s390/tpf.h (MD_FALLBACK_FRAME_STATE_FOR): Remove. - (MD_UNWIND_SUPPORT): Define. - -2004-10-02 Joseph S. Myers - - * c-typeck.c (warn_for_assignment): Don't permit argnum == 0. - -2004-10-01 Ulrich Weigand - - * config/s390/s390-protos.h (s390_comparison): Add prototype. - * config/s390/s390.c (s390_comparison): New function. - (s390_branch_condition_mask): Return -1 for invalid comparisons. - (s390_branch_condition_mnemonic): Assert valid comparison. - * config/s390/s390.h (PREDICATE_CODES): Add s390_comparison. - * config/s390/s390.md ("*cjump_64", "*cjump_31", "*cjump_long", - "*icjump_64", "*icjump_31", "*icjump_long", "*trap"): Use - s390_comparison instead of comparison_operator. - - * config/s390/s390.md (UNSPEC_CMPINT): New constant. - ("cmpmemdi"): Remove. - ("cmpmem_short", "*cmpmem_short"): Use CCUmode instead of CCSmode. - ("cmpmem_long", "*cmpmem_long_64", "*cmpmem_long_31"): Likewise. - ("cmpint_si"): Rename to ... - ("*cmpint_si"): ... this. Use UNSPEC_CMPINT. - ("cmpint_di", "*cmpint_di"): Likewise. - * config/s390/s390.c (s390_canonicalize_comparison): Remove - redundant UNSPEC_CMPINT conversions. - (s390_expand_cmpmem): Adapt to cmpint pattern changes. - -2004-10-01 Kazu Hirata - - * collect2.c (COLLECT_PARSE_FLAG): Remove. - (main): Remove a reference to COLLECT_PARSE_FLAG - * system.h: Poison COLLECT_PARSE_FLAG. - * doc/tm.texi (COLLECT_PARSE_FLAG): Remove. - -2004-10-01 Paul Brook - - * config/arm/crti.asm: Give _init and _fini function type. - -2004-10-01 Zdenek Dvorak - - * common.opt (ftree-loop-ivcanon): Enable by default. - * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely): - Enable complete loop unrolling. - (canonicalize_induction_variables, tree_unroll_loops_completely): - Reset scev info. - -2004-10-01 Paul Brook - - * config/arm/arm.c (thumb_compute_saved_rag_mask): Or with bitmask, - not register number. - (thumb_find_work_register): Search full register range. - -2004-10-01 Andrew Pinski - - PR tree-opt/17343 - * tree-cfg.c (group_case_labels): Get the label and not - the case expr for the default case. - When the label we looking at is the default, decrement the - new_size. - -2004-10-01 Jan Hubicka - - * c-decl.c (c_expand_body): Update call tree_rest_of_compilation. - * cgraphunit.c (cgraph_build_static_cdtor): Likewise. - * toplev.h (tree_rest_of_compilation): Update prototype. - * tree-optimize.c (tree_rest_of_compilation): Kill nested_p argument. - -2004-10-01 Kazu Hirata - - * tree-cfg.c (cleanup_tree_cfg): Pull a call to - cleanup_control_flow() out of the while loop. - -2004-10-01 Paolo Bonzini - - * tree-vectorizer.c (vectorizable_operation): Fail unless - the mode for the vector type is indeed a vector mode. - -2004-10-01 Zdenek Dvorak - - * tree-chrec.c (chrec_fold_plus_poly_poly, chrec_fold_plus_1, - chrec_fold_multiply): Use fold_convert or build_int_cst_type instead - of convert. - * tree-scalar-evolution.c (compute_overall_effect_of_inner_loop, - add_to_evolution, set_nb_iterations_in_loop, follow_ssa_edge_in_rhs, - follow_ssa_edge_in_rhs): Ditto. - * tree-ssa-loop-ivopts.c (struct iv): Add base_object field. - (dump_iv): Dump base_object. - (dump_use, dump_cand): Use dump_iv. - (determine_base_object): New function. - (alloc_iv): Initialize base_object field. - (record_use): Clear the ssa_name field of iv. - (get_computation_cost_at): Do not use difference of addresses of - two different objects. - (may_eliminate_iv): Do not require the loop to have just single exit. - * tree-ssa-loop-niter.c (zero_p): Do not check for overflows. - (nonzero_p): New function. - (inverse, number_of_iterations_cond, simplify_using_outer_evolutions, - tree_simplify_using_condition, simplify_using_initial_conditions, - loop_niter_by_eval, find_loop_niter_by_eval, - estimate_numbers_of_iterations_loop, compare_trees, - upper_bound_in_type, lower_bound_in_type, - can_count_iv_in_wider_type_bound): Use buildN instead of build. Use - fold_convert or build_int_cst_type instead of convert. Use (non)zero_p - instead of integer_(non)zerop. - -2004-10-01 Jakub Jelinek - - Revert - 2004-09-29 Jakub Jelinek - - * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD - and TI_VA_LIST_FPR_COUNTER_FIELD. - (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. - * tree-pass.h (pass_stdarg): Add. - * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. - * tree-stdarg.c: New file. - * Makefile.in (OBJS-common): Add tree-stdarg.o. - (tree-stdarg.o): Add dependencies. - * function.h (struct function): Add va_list_gpr_size and - va_list_fpr_size fields. - * function.c (allocate_struct_function): Initialize them. - - * config/i386/i386.c (ix86_build_builtin_va_list): Initialize - va_list_{g,f}pr_counter_field. - (ix86_setup_incoming_varargs): Don't do anything if reg_save - area will not be used. Only save registers that tree-stdarg.c - detected they need saving. - (ix86_va_start): Don't set up fields that won't be used. - - * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize - va_list_{g,f}pr_counter_field. - (setup_incoming_varargs): Don't do anything if reg_save - area will not be used. Only save registers that tree-stdarg.c - detected they need saving. - (rs6000_va_start): Don't set up fields that won't be used. - -2004-09-30 Eric Christopher - - * dwarf2.h (dwarf_calling_convention): Add enum for renesas - sh abi. - * dwarf2out.c (add_calling_convention_attribute): New function. - (gen_subroutine_type_die): Use. - * target-def.h (TARGET_DWARF_CALLING_CONVENTION): New hook. - * target.h (gcc_target): Add dwarf_calling_convention. - * hooks.c (hook_int_tree_0): New function. - * hooks.h: Prototype. - * config/sh/sh.c: Include dwarf2.h. - (sh_dwarf_calling_convention): New function. - (TARGET_DWARF_CALLING_CONVENTION): Use. - * doc/tm.texi (TARGET_DWARF_CALLING_CONVENTION): Document. - -2004-09-30 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strstr, expand_builtin_strchr, - expand_builtin_strrchr, expand_builtin_strpbrk, - expand_builtin_strncat, expand_builtin_strspn, - expand_builtin_strcspn, expand_builtin_fputs): Eliminate duplicate - code. - -2004-09-30 Ulrich Weigand - - * config/s390/s390-protos.h (s390_expand_logical_operator): Add - prototype. - (s390_logical_operator_ok_p): Likewise. - * config/s390/s390.c (s390_expand_logical_operator): New function. - (s390_logical_operator_ok_p): Likewise. - * config/s390/s390.md ("anddi3"): New expander. - ("*anddi3"): Rename from old anddi3 pattern, add Q->Q alternative. - ("*anddi3_ss", "*anddi3_ss_inv"): Remove. - ("andsi3"): Use s390_expand_logical_operator. - ("*andsi3_esa", "*andsi3_zarch"): Add Q->Q alternative. - ("*andsi3_ss", "*andsi3_ss_inv"): Remove. - ("andhi3"): New expander. - ("*andhi3_zarch", "*andhi3_esa"): New patterns. - ("andhi3", "*andhi3_ni", "*andhi3_ss", "*andhi3_ss_inv"): Remove. - ("andqi3"): New expander. - ("*andqi3_zarch", "*andqi3_esa"): New patterns. - ("andqi3", "*andqi3_ni", "*andqi3_ss", "*andqi3_ss_inv"): Remove. - ("iordi3"): New expander. - ("*iordi3"): Rename from old iordi3 pattern, add Q->Q alternative. - ("*iordi3_ss", "*iordi3_ss_inv"): Remove. - ("iorsi3"): Use s390_expand_logical_operator. - ("*iorsi3_esa", "*iorsi3_zarch"): Add Q->Q alternative. - ("*iorsi3_ss", "*iorsi3_ss_inv"): Remove. - ("iorhi3"): New expiorer. - ("*iorhi3_zarch", "*iorhi3_esa"): New patterns. - ("iorhi3", "*iorhi3_ni", "*iorhi3_ss", "*iorhi3_ss_inv"): Remove. - ("iorqi3"): New expiorer. - ("*iorqi3_zarch", "*iorqi3_esa"): New patterns. - ("iorqi3", "*iorqi3_ni", "*iorqi3_ss", "*iorqi3_ss_inv"): Remove. - ("xordi3"): New expander. - ("*xordi3"): Rename from old xordi3 pattern, add Q->Q alternative. - ("*xordi3_ss", "*xordi3_ss_inv"): Remove. - ("xorsi3"): New expander. - ("*xorsi3"): Rename from old xorsi3 pattern, add Q->Q alternative. - ("*xorsi3_ss", "*xorsi3_ss_inv"): Remove. - ("xorhi3"): New expander. - ("*xorqi3"): Rename from old xorhi3 pattern, add Q->Q alternative. - ("*xorhi3_ss", "*xorhi3_ss_inv"): Remove. - ("xorqi3"): New expander. - ("*xorqi3"): Rename from old xorqi3 pattern, add Q->Q alternative. - ("*xorqi3_ss", "*xorqi3_ss_inv"): Remove. - -2004-09-30 Roger Sayle - - * combine.c (force_to_mode) : Only convert the expression - (AND (NE FOO 0) CONST) into (AND FOO CONST) if FOO has the same - machine mode as the result. - -2004-09-30 Ben Elliston - - PR bootstrap/17761 - * lcm.c (optimize_mode_switching): Update to use EDGE_SUCC and - FOR_EACH_EDGE macros. - -2004-09-30 Joseph S. Myers - - * c-tree.h (readonly_error): Remove. - * c-typeck (enum lvalue_use): New. - (lvalue_or_else, readonly_error): Use it. All callers changed. - (readonly_error): Make static. - -2004-09-30 Jan Hubicka - - PR debug/13974 - * cfgrtl.c (try_redirect_by_replacing_jump, - force_nonfallthru_and_redirect, commit_one_edge_insertion, - cfg_layout_merge_blocks): Do not attach any line number information - to newly inserted instructions. - * emit-rtl.c (emit_insn*_before, emit_insn*_after): Rename to - emit_insn_*_noloc. - (emit_*insn_before, emit_insn*_after): New. - (emit_*insn_before_setloc, emit_*insn_after_setloc): Do not overwrite - existing locators. - * rtl.h (emit_*insn_before_noloc, emit_*insn_after_noloc): Declare. - (emit_*insn_before_sameloc, emit_*insn_after_sameloc): Kill. - -2004-09-30 Ulrich Weigand - - * config/s390/s390-protos.h (s390_arg_frame_offset): Remove. - (s390_return_address_offset): Remove. - (s390_can_eliminate): Add prototype. - (s390_initial_elimination_offset): Add prototype. - * config/s390/s390.h (CAN_ELIMINATE): Call s390_can_eliminate. - (INITIAL_ELIMINATION_OFFSET): Call s390_initial_elimination_offset. - * config/s390/s390.c (s390_arg_frame_offset): Remove. - (s390_return_address_offset): Remove. - (s390_can_eliminate, s390_initial_elimination_offset): New functions. - (struct machine_function): New member split_branches_pending_p. - (s390_mainpool_start): Allow nonexistant pool insn for empty pool. - (s390_mainpool_finish): Likewise. Clear base_reg if pool empty. - (s390_optimize_prologue): Remove base_used argument. Call - s390_update_frame_layout instead of s390_register_info. Handle - prologue/epilogue insns that touch only RETURN_REGNUM. - (s390_reorg): Remove base_used. Clear split_branches_pending_p. - (s390_register_info): Remove base_used and return_addr_used - arguments, compute special register usage inline. Return live - register data to caller. - (s390_frame_info): Remove arguments, do not call s390_register_info. - (s390_init_frame_layout): New function. - (s390_update_frame_layout): Likewise. - (s390_emit_prologue): Call s390_update_frame_layout; some code - move to there. Do not emit pool placeholder insn if unnecessary. - -2004-09-30 Ulrich Weigand - - * config/s390/s390.c (legitimate_reload_constant_p): Remove - floating point constant workaround. - (s390_secondary_input_reload_class): Handle PLUS reloads - with too-large constant. - (s390_expand_plus_operand): Likewise. - * config/s390/s390.md ("movdi"): Do not call force_const_mem. - ("movsi"): Likewise. Also, remove workaround for non-general - operands. - ("movdf"): Do not call force_const_mem. - ("movsf"): Likewise. Merge expander with *movsf insn. - ("*movsf"): Remove, merge with movsf expander. - -2004-09-30 Paul Brook - - * config/arm/symbian.h (STARTFILE_SPEC): Remove crt*.o. - (ENDFILE_SPEC): Define. - * config/arm/t-symbian.h (EXTRA_MULTILIB_PARTS): Set. - -2004-09-30 Richard Henderson - - * config/alpha/qrnnd.asm: Mark for noexecstack. - -2004-09-30 Kazu Hirata - - * protoize.c, tree-cfg.c: Fix comment typos. - -2004-09-30 Joseph S. Myers - - PR c/17730 - * c-typeck.c (lvalue_or_else): Pass msgid directly to error. - -2004-09-30 Diego Novillo - - * tree-ssa-alias.c (collect_points_to_info_r): Move analysis of - expressions... - (add_pointed_to_expr): ... here. - Call add_pointed_to_expr for variables with DECL_INITIAL set. - * tree-dfa.c (add_referenced_var): Scan DECL_INITIAL of any - pointer variable, if set. - -2004-09-30 Kazu Hirata - - * config/sh/sh.c: Follow spelling conventions. - -2004-09-29 Richard Henderson - - * unwind-dw2.c (_Unwind_GetGR): Honor DWARF_ZERO_REG. - * doc/tm.texi (DWARF_ZERO_REG): New. - - * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue, - alpha_expand_epilogue): Revert 2003-09-30 change to store zero. - * config/alpha/alpha.h (DWARF_ZERO_REG): New. - -2004-09-29 Ulrich Weigand - - * builtins.c (expand_builtin_strlen): Do not call emit_move_insn - with a PLUS as source operand. - (expand_movstr): Likewise. - (expand_builtin_stpcpy): Likewise. - -2004-09-29 Richard Henderson - - PR 17739 - * tree-gimple.c (is_gimple_reg): Reject hard registers. - (is_gimple_asm_val): New. - * tree-gimple.h (is_gimple_asm_val): Declare. - * gimplify.c (gimplify_asm_expr): Use it. - * tree-pretty-print.c (print_declaration): Dump hard regs. - * tree-outof-ssa.c (check_replaceable): Don't check for hard regs. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. - * tree-ssa-pre.c (is_undefined_value): Likewise. - * tree-ssa-copy.c (may_propagate_copy): Likewise. - (may_propagate_copy_into_asm): Protect DECL_HARD_REGISTER. - * tree-ssa.c (warn_uninit): Likewise. - * tree.h (DECL_HARD_REGISTER): Check for VAR_DECL. - -2004-09-29 Fariborz Jahanian - - * c-decl.c (merge_decls): Use comptype when comparing - types to decide on DECL_SIZE save of olddecl. - -2004-09-29 Daniel Berlin - - * tree.h (INDIRECT_REF_P): New macro. - * alias.c (get_alias_set): Use it - (nonoverlapping_memrefs_p): Ditto. - * emit-rtl.c (mem_expr_equal_p): Ditto. - (set_mem_attributes_minus_bitpos): Ditto. - (is_gimple_addressable): Ditto. - (get_base_address): Ditto. - * tree-ssa-alias.c (find_ptr_derefernece): Ditto. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Ditto. - * tree-ssa-dom.c (record_equivalences_from_stmt): Ditto. - * tree-ssa-loop-im.c (is_call_clobbered_ref): Ditto. - * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Ditto. - (add_address_candidates): Ditto. - (rewrite_address_base): Ditto. - -2004-09-30 Ben Elliston - - * tree-flow.h (struct bb_ann_d): Remove num_preds member. - * tree-into-ssa.c (rewrite_into_ssa): Don't set it. - (rewrite_ssa_into_ssa): Likewise. - * tree-phinodes.c (create_phi_node): Access the number of - predecessor edges using EDGE_COUNT() and not num_preds. - -2004-09-29 Joseph S. Myers - - PR c/7425 - * c-decl.c (merge_decls): Merge TREE_DEPRECATED. - -2004-09-29 Eric Christopher - - * fold-const.c (tree_swap_operands_p): Remove duplicated code. - -2004-09-29 Hans-Peter Nilsson - - * config/cris/cris.md (moverside, movemside): With MEM, make sure - the address is (plus reg mem). - -2004-09-29 David Edelsohn - - * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define. - -2004-09-29 Nathan Sidwell - - * tree.c (make_node_stat): Fix uninitialized warning. Replace - cascaded if ... else if with a switch. - -2004-09-29 Aaron W. LaFramboise - - * read-rtl.c (apply_macro_to_string): Replace index with strchr. - -2004-09-29 Jakub Jelinek - - * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD - and TI_VA_LIST_FPR_COUNTER_FIELD. - (va_list_gpr_counter_field, va_list_fpr_counter_field): Define. - * tree-pass.h (pass_stdarg): Add. - * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg. - * tree-stdarg.c: New file. - * Makefile.in (OBJS-common): Add tree-stdarg.o. - (tree-stdarg.o): Add dependencies. - * function.h (struct function): Add va_list_gpr_size and - va_list_fpr_size fields. - * function.c (allocate_struct_function): Initialize them. - - * config/i386/i386.c (ix86_build_builtin_va_list): Initialize - va_list_{g,f}pr_counter_field. - (ix86_setup_incoming_varargs): Don't do anything if reg_save - area will not be used. Only save registers that tree-stdarg.c - detected they need saving. - (ix86_va_start): Don't set up fields that won't be used. - - * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize - va_list_{g,f}pr_counter_field. - (setup_incoming_varargs): Don't do anything if reg_save - area will not be used. Only save registers that tree-stdarg.c - detected they need saving. - (rs6000_va_start): Don't set up fields that won't be used. - -2004-09-29 Jakub Jelinek - - * builtins.def (BUILT_IN_FPUTC, BUILT_IN_FPUTC_UNLOCKED, - BUILT_IN_FPUTS, BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE, - BUILT_IN_FWRITE_UNLOCKED, BUILT_IN_PUTCHAR, BUILT_IN_PUTCHAR_UNLOCKED, - BUILT_IN_PUTS, BUILT_IN_PUTS_UNLOCKED): Remove nothrow attribute. - * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_1_2, - ATTR_NONNULL_1_4): New. - -2004-09-29 Jakub Jelinek - - PR tree-optimization/17697 - * tree-ssa-ccp.c (execute_fold_all_builtins): Update eh and cleanup - cfg if needed. - -2004-09-28 Per Bothner - - * profile.c (branch_prob): Pass correct value to output_location, - even when USE_MAPPED_LOCATION. Fixes bug from 09-11. - -2004-09-28 Richard Henderson - - PR 15089 - * tree-ssa-copy.c (may_propagate_copy_into_asm): New. - * tree-flow.h (may_propagate_copy_into_asm): Declare. - * tree-ssa-ccp.c (replace_uses_in): Use it. - * tree-ssa-dom.c (cprop_operand): Likewise. - -2004-09-28 Jeff Law - - * tree-ssa-threadupdate.c (create_block_for_threading): Request - that no outgoing edges be left in the duplicate block. Do no - update information on outgoing edges or PHI nodes in target - blocks here. - (remove_ctrl_stmt_and_useless_edges): Renamed from - remove_last_stmt_and_useless_edges. Handle case where the - block is empty or has no control statements. Do not update edge - flags here. - (thread_block): Create a template block rather than copying the - original block every time. Create outgoing edges from the - duplicate blocks and update PHIs at the target of the outgoing - edges here. Fix edge flags for the original block if necessary. - * cfghooks (duplicate_block): No longer assert that the original - block has incoming edges. - -2004-09-29 Hans-Peter Nilsson - - * doc/extend.texi (Extended Asm): Add blurb about using Explicit - Reg Vars to enforce register allocation with general constraints. - (Explicit Reg Vars): Clarify relation to asm statements. - (Local Reg Vars): Similar. - -2004-09-28 Ulrich Weigand - - * sched-rgn.c (haifa_edge, edge_table, NEXT_IN, NEXT_OUT, FROM_BLOCK, - TO_BLOCK, nr_edges, in_edges, out_edges, IN_EDGES, OUT_EDGES, - build_control_flow, new_edge): Remove. - (schedule_insns): Remove edge_table/in_edges/out_edges cleanup. - (bitlst, bitlst_table_last, bitlst_table): Remove. - (bblst): Store basic_block pointer instead of block index. - (bblst_table): Likewise. - (edgelst): Store edge pointer instead of edge index. - (edgelst_table, edgelst_last): New variables. - (extract_bitlst): Rename to ... - (extract_edgelst): ... this. Return edge pointers, not indices. - (split_edges): Update call. - (rgn_edges): Store edge pointers instead of indices. - (edge_to_bit): Remove. - (EDGE_TO_BIT): Store per-region edge index in edge->aux. - (SET_EDGE_TO_BIT): New macro. - (is_cfg_nonregular): Check for simple cases of unreachable blocks. - (find_rgns): Remove edge_list parameter. Traverse standard CFG - data structures instead of haifa_edge et al. Use edge pointers - instead of edge indices everywhere. - (compute_dom_prob_ps): Use standard CFG data structures. Account - for exit edges. - (compute_trg_info): Likewise. - (propagate_deps): Likewise. - (debug_candidate): Account for bblst data structure change. - (check_live_1, update_live_1, is_pfree): Likewise. - (IS_REACHABLE): Use standard CFG data structures. - (init_ready_list): Update bblst_table/edgelst_table allocation. - (schedule_region): Update alloc/cleanup code to data structure - changes. Use edge->aux to store per-region edge index. - (init_regions): No longer call build_control_flow. Do not - create edge list any more. - -2004-09-28 Ulrich Weigand - - * cse.c (cse_insn): Avoid creating direct non-local jumps. - * combine.c (can_combine_p): Likewise. - * local-alloc. (update_equiv_regs): Likewise. - -2004-09-28 Richard Henderson - - PR 17531 - * expr.c (expand_expr_addr_expr_1): Only assemble_external for decls. - Don't check VOIDmode here. Force PLUS operands to common type. - (expand_expr_addr_expr): Do VOIDmode check earlier. Force use of - Pmode if given a non pointer type. - -2004-09-28 Zdenek Dvorak - - PR 17531 - * optabs.c (expand_binop): Force constants to the correct mode. - -2004-09-28 Ulrich Weigand - - * config/s390/s390.c (s390_adjust_cost): Remove. - (TARGET_SCHED_ADJUST_COST): Do not redefine. - (s390_adjust_priority): Handle TYPE_STM like TYPE_STORE. - * config/s390/s390.md ("main_pool"): Use "larl" type - attribute if TARGET_CPU_ZARCH. - -2004-09-28 Jakub Jelinek - - * config/ia64/ia64.c (ia64_expand_prologue): Declare ei - variable. - -2004-09-28 Diego Novillo - - * tree-ssa-loop.c (pass_record_bounds): Do not assign a - name to the pass. - -2004-09-28 Steven Bosscher - - * common.opt (flag_gcse_sm): Disable by default. - (flag_gcse_las): Likewise. - (flag_web): Likewise. Create from this file. - * flags.h: Remove flag_web declaration. - * toplev.c (flag_web): Likewise. - (process_options): Never set flag_web. - -2004-09-28 Steven Bosscher - - * Makefile.in (tree-ssa-propagate.o): Depend on vec.h. - * tree-ssa-propagate.c: Include vec.h. - (interesting_ssa_edges, varying_ssa_edges): Make these VECs - instead of varrays. - (cfg_blocks_add): Assert the block is not already in the worklist. - Update uses of interesting_ssa_edges and varying_ssa_edges. - (process_ssa_edge_worklist, ssa_prop_init, ssa_prop_fini, - ssa_propagate): Likewise. - -2004-09-28 Joseph S. Myers - - PR c/16409 - * c-decl.c (start_decl): Check for initializing incomplete array - of VLAs. - (build_compound_literal): Check for TYPE being error_mark_node. - * c-parse.in (primary): Check for VLA compound literals. - -2004-09-28 Diego Novillo - - * tree-ssa-live.c (calculate_live_on_entry): Fix warnings - with --disable-checking. - -2004-09-28 Devang Patel - - * tree-pretty-print.c (dump_generic_node): Print vector types. - -2004-09-28 Nick Clifton - - * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Replace with an - invocation of the function sh_init_cumulative_args. - (INIT_CUMULATIVE_LIBCALL_ARGS): Likewise. - (INIT_CUMULATIVE_INCOMING_ARGS): Delete. - * config/sh/sh-protos.h: Prototype sh_init_cumulative_args. - * config/sh/sh.c (sh_init_cumulative_args): New function based - on the contents of the old INIT_CUMULATIVE_ARGS macro but with a - heuristic added to determine the setting of force_mem when a - library function is being called. - -2004-09-28 Diego Novillo - - * tree-ssa-loop-im.c (single_reachable_address) : - Skip constant arguments. - -2004-09-28 Diego Novillo - - * tree-ssa-alias.c (create_name_tags): If PTR points to a - volatile type, mark the tag volatile. - (get_tmt_for): If TAG_TYPE is a volatile type, mark the tag - volatile. - -2004-09-28 Andrew Pinski - - * tree.def (vec_cond_expr): Fix. Change 'e' - to tcc_expression. - -2004-09-28 Kazu Hirata - - * basic-block.h: Fix a comment typo. - -2004-09-28 Kazu Hirata - - * optabs.c, optabs.h: Fix comment typos. - -2004-09-28 Eric Botcazou - - * config/sparc/sparc.md (call_address_struct_value_sp32): - Properly mask the immediate field of the 'unimp' instruction. - (call_symbolic_struct_value_sp32): Likewise. - -2004-09-28 Ben Elliston - Steven Bosscher - Andrew Pinski - - Merge from edge-vector-branch: - * basic-block.h: Include vec.h, errors.h. Instantiate a VEC(edge). - (struct edge_def): Remove pred_next, succ_next members. - (struct basic_block_def): Remove pred, succ members. Add preds - and succs members of type VEC(edge). - (FALLTHRU_EDGE): Redefine using EDGE_SUCC. - (BRANCH_EDGE): Likewise. - (EDGE_CRITICAL_P): Redefine using EDGE_COUNT. - (EDGE_COUNT, EDGE_I, EDGE_PRED, EDGE_SUCC): New. - (edge_iterator): New. - (ei_start, ei_last, ei_end_p, ei_one_before_end_p): New. - (ei_next, ei_prev, ei_edge, ei_safe_edge): Likewise. - (FOR_EACH_EDGE): New. - * bb-reorder.c (find_traces): Use FOR_EACH_EDGE and EDGE_* macros - where applicable. - (rotate_loop): Likewise. - (find_traces_1_route): Likewise. - (bb_to_key): Likewise. - (connect_traces): Likewise. - (copy_bb_p): Likewise. - (find_rarely_executed_basic_blocks_and_crossing_edges): Likewise. - (add_labels_and_missing_jumps): Likewise. - (fix_up_fall_thru_edges): Likewise. - (find_jump_block): Likewise. - (fix_crossing_conditional_branches): Likewise. - (fix_crossing_unconditional_branches): Likewise. - (add_reg_crossing_jump_notes): Likewise. - * bt-load.c (augment_live_range): Likewise. - * cfg.c (clear_edges): Likewise. - (unchecked_make_edge): Likewise. - (cached_make_edge): Likewise. - (make_single_succ_edge): Likewise. - (remove_edge): Likewise. - (redirect_edge_succ_nodup): Likewise. - (check_bb_profile): Likewise. - (dump_flow_info): Likewise. - (alloc_aux_for_edges): Likewise. - (clear_aux_for_edges): Likewise. - (dump_cfg_bb_info): Likewise. - * cfganal.c (forwarder_block_p): Likewise. - (can_fallthru): Likewise. - (could_fall_through): Likewise. - (mark_dfs_back_edges): Likewise. - (set_edge_can_fallthru_flag): Likewise. - (find_unreachable_blocks): Likewise. - (create_edge_list): Likewise. - (verify_edge_list): Likewise. - (add_noreturn_fake_exit_edges): Likewise. - (connect_infinite_loops_to_exit): Likewise. - (flow_reverse_top_sort_order_compute): Likewise. - (flow_depth_first_order_compute): Likewise. - (flow_preorder_transversal_compute): Likewise. - (flow_dfs_compute_reverse_execute): Likewise. - (dfs_enumerate_from): Likewise. - (compute_dominance_frontiers_1): Likewise. - * cfgbuild.c (make_edges): Likewise. - (compute_outgoing_frequencies): Likewise. - (find_many_sub_basic_blocks): Likewise. - (find_sub_basic_blocks): Likewise. - * cfgcleanup.c (try_simplify_condjump): Likewise. - (thread_jump): Likewise. - (try_forward_edges): Likewise. - (merge_blocks_move): Likewise. - (outgoing_edges_match): Likewise. - (try_crossjump_to_edge): Likewise. - (try_crossjump_bb): Likewise. - (try_optimize_cfg): Likewise. - (merge_seq_blocks): Likewise. - * cfgexpand.c (expand_gimple_tailcall): Likewise. - (expand_gimple_basic_block): Likewise. - (construct_init_block): Likewise. - (construct_exit_block): Likewise. - * cfghooks.c (verify_flow_info): Likewise. - (dump_bb): Likewise. - (delete_basic_block): Likewise. - (split_edge): Likewise. - (merge_blocks): Likewise. - (make_forwarder_block): Likewise. - (tidy_fallthru_edges): Likewise. - (can_duplicate_block_p): Likewise. - (duplicate_block): Likewise. - * cfglayout.c (fixup_reorder_chain): Likewise. - (fixup_fallthru_exit_predecessor): Likewise. - (can_copy_bbs_p): Likewise. - (copy_bbs): Likewise. - * cfgloop.c (flow_loops_cfg_dump): Likewise. - (flow_loop_entry_edges_find): Likewise. - (flow_loop_exit_edges_find): Likewise. - (flow_loop_nodes_find): Likewise. - (mark_single_exit_loops): Likewise. - (flow_loop_pre_header_scan): Likewise. - (flow_loop_pre_header_find): Likewise. - (update_latch_info): Likewise. - (canonicalize_loop_headers): Likewise. - (flow_loops_find): Likewise. - (get_loop_body_in_bfs_order): Likewise. - (get_loop_exit_edges): Likewise. - (num_loop_branches): Likewise. - (verify_loop_structure): Likewise. - (loop_latch_edge): Likewise. - (loop_preheader_edge): Likewise. - * cfgloopanal.c (mark_irreducible_loops): Likewise. - (expected_loop_iterations): Likewise. - * cfgloopmanip.c (remove_bbs): Likewise. - (fix_bb_placement): Likewise. - (fix_irreducible_loops): Likewise. - (remove_path): Likewise. - (scale_bbs_frequencies): Likewise. - (loopify): Likewise. - (unloop): Likewise. - (fix_loop_placement): Likewise. - (loop_delete_branch_edge): Likewise. - (duplicate_loop_to_header_edge): Likewise. - (mfb_keep_just): Likewise. - (create_preheader): Likewise. - (force_single_succ_latches): Likewise. - (loop_split_edge_with): Likewise. - (create_loop_notes): Likewise. - * cfgrtl.c (rtl_split_block): Likewise. - (rtl_merge_blocks): Likewise. - (rtl_can_merge_blocks): Likewise. - (try_redirect_by_replacing_jump): Likewise. - (force_nonfallthru_and_redirect): Likewise. - (rtl_tidy_fallthru_edge): Likewise. - (commit_one_edge_insertion): Likewise. - (commit_edge_insertions): Likewise. - (commit_edge_insertions_watch_calls): Likewise. - (rtl_verify_flow_info_1): Likewise. - (rtl_verify_flow_info): Likewise. - (purge_dead_edges): Likewise. - (cfg_layout_redirect_edge_and_branch): Likewise. - (cfg_layout_can_merge_blocks_p): Likewise. - (rtl_flow_call_edges_add): Likewise. - * cse.c (cse_cc_succs): Likewise. - * df.c (hybrid_search): Likewise. - * dominance.c (calc_dfs_tree_nonrec): Likewise. - (calc_dfs_tree): Likewise. - (calc_idoms): Likewise. - (recount_dominator): Likewise. - * domwalk.c (walk_dominator_tree): Likewise. - * except.c (emit_to_new_bb_before): Likewise. - (connect_post_landing_pads): Likewise. - (sjlj_emit_function_enter): Likewise. - (sjlj_emit_function_exit): Likewise. - (finish_eh_generation): Likewise. - * final.c (compute_alignments): Likewise. - * flow.c (calculate_global_regs_live): Likewise. - (initialize_uninitialized_subregs): Likewise. - (init_propagate_block_info): Likewise. - * function.c (thread_prologue_and_epilogue_insns): Likewise. - * gcse.c (find_implicit_sets): Likewise. - (bypass_block): Likewise. - (bypass_conditional_jumps): Likewise. - (compute_pre_data): Likewise. - (insert_insn_end_bb): Likewise. - (insert_store): Likewise. - (remove_reachable_equiv_notes): Likewise. - * global.c (global_conflicts): Likewise. - (calculate_reg_pav): Likewise. - * graph.c (print_rtl_graph_with_bb): Likewise. - * ifcvt.c (mark_loop_exit_edges): Likewise. - (merge_if_block): Likewise. - (find_if_header): Likewise. - (block_jumps_and_fallthru_p): Likewise. - (find_if_block): Likewise. - (find_cond_trap): Likewise. - (block_has_only_trap): Likewise. - (find_if_case1): Likewise. - (find_if_case_2): Likewise. - * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Likewise. - (perfect_nestify): Likewise. - * lcm.c (compute_antinout_edge): Likewise. - (compute_laterin): Likewise. - (compute_available): Likewise. - (compute_nearerout): Likewise. - * loop-doloop.c (doloop_modify): Likewise. - * loop-init.c (loop_optimizer_init): Likewise. - * loop-invariant.c (find_exits): Likewise. - * loop-iv.c (simplify_using_initial_values): Likewise. - (check_simple_exit): Likewise. - (find_simple_exit): Likewise. - * loop-unroll.c (peel_loop_completely): Likewise. - (unroll_loop_constant_iterations): Likewise. - (unroll_loop_runtime_iterations): Likewise. - * loop-unswitch.c (may_unswitch_on): Likewise. - (unswitch_loop): Likewise. - * modulo-sched.c (generate_prolog_epilog): Likewise. - (sms_schedule): Likewise. - * postreload-gcse.c (eliminate_partially_redundant_load): - Likewise. - * predict.c (can_predict_insn_p): Likewise. - (set_even_probabilities): Likewise. - (combine_predictions_for_bb): Likewise. - (predict_loops): Likewise. - (estimate_probability): Likewise. - (tree_predict_by_opcode): Likewise. - (tree_estimate_probability): Likewise. - (last_basic_block_p): Likewise. - (propagate_freq): Likewise. - (estimate_loops_at_level): Likewise. - (estimate_bb_frequencies): Likewise. - * profile.c (instrument_edges): Likewise. - (get_exec_counts): Likewise. - (compute_branch_probabilities): Likewise. - (branch_prob): Likewise. - * ra-build.c (live_in): Likewise. - * ra-rewrite.c (rewrite_program2): Likewise. - * ra.c (reg_alloc): Likewise. - * reg-stack.c (reg_to_stack): Likewise. - (convert_regs_entry): Likewise. - (compensate_edge): Likewise. - (convert_regs_1): Likewise, - (convert_regs_2): Likewise. - (convert_regs): Likewise. - * regrename.c (copyprop_hardreg_forward): Likewise. - * reload1.c (fixup_abnormal_edges): Likewise. - * sbitmap.c (sbitmap_intersection_of_succs): Likewise. - (sbitmap_insersection_of_preds): Likewise. - (sbitmap_union_of_succs): Likewise. - (sbitmap_union_of_preds): Likewise. - * sched-ebb.c (compute_jump_reg_dependencies): Likewise. - (fix_basic_block_boundaries): Likewise. - (sched_ebbs): Likewise. - * sched-rgn.c (build_control_flow): Likewise. - (find_rgns): Likewise. - * tracer.c (find_best_successor): Likewise. - (find_best_predecessor): Likewise. - (tail_duplicate): Likewise. - * tree-cfg.c (make_edges): Likewise. - (make_ctrl_stmt_edges): Likewise. - (make_goto_expr_edges): Likewise. - (tree_can_merge_blocks_p): Likewise. - (tree_merge_blocks): Likewise. - (cfg_remove_useless_stmts_bb): Likewise. - (remove_phi_nodes_and_edges_for_unreachable_block): Likewise. - (tree_block_forwards_to): Likewise. - (cleanup_control_expr_graph): Likewise. - (find_taken_edge): Likewise. - (dump_cfg_stats): Likewise. - (tree_cfg2vcg): Likewise. - (disband_implicit_edges): Likewise. - (tree_find_edge_insert_loc): Likewise. - (bsi_commit_edge_inserts): Likewise. - (tree_split_edge): Likewise. - (tree_verify_flow_info): Likewise. - (tree_make_forwarder_block): Likewise. - (tree_forwarder_block_p): Likewise. - (thread_jumps): Likewise. - (tree_try_redirect_by_replacing_jump): Likewise. - (tree_split_block): Likewise. - (add_phi_args_after_copy_bb): Likewise. - (rewrite_to_new_ssa_names_bb): Likewise. - (dump_function_to_file): Likewise. - (print_pred_bbs): Likewise. - (print_loop): Likewise. - (tree_flow_call_edges_add): Likewise. - (split_critical_edges): Likewise. - (execute_warn_function_return): Likewise. - (extract_true_false_edges_from_block): Likewise. - * tree-if-conv.c (tree_if_conversion): Likewise. - (if_convertable_bb_p): Likewise. - (find_phi_replacement_condition): Likewise. - (combine_blocks): Likewise. - * tree-into-ssa.c (compute_global_livein): Likewise. - (ssa_mark_phi_uses): Likewise. - (ssa_rewrite_initialize_block): Likewise. - (rewrite_add_phi_arguments): Likewise. - (ssa_rewrite_phi_arguments): Likewise. - (insert_phi_nodes_for): Likewise. - (rewrite_into_ssa): Likewise. - (rewrite_ssa_into_ssa): Likewise. - * tree-mudflap.c (mf_build_check_statement_for): Likewise. - * tree-outof-ssa.c (coalesce_abnormal_edges): Likewise. - (rewrite_trees): Likewise. - * tree-pretty-print.c (dump_bb_header): Likewise. - (dump_implicit_edges): Likewise. - * tree-sra.c (insert_edge_copies): Likewise. - (find_obviously_necessary_stmts): Likewise. - (remove_data_stmt): Likewise. - * tree-ssa-dom.c (thread_across_edge): Likewise. - (dom_opt_finalize_block): Likewise. - (single_incoming_edge_ignoring_loop_edges): Likewise. - (record_equivalences_from_incoming_edges): Likewise. - (cprop_into_successor_phis): Likewise. - * tree-ssa-live.c (live_worklist): Likewise. - (calculate_live_on_entry): Likewise. - (calculate_live_on_exit): Likewise. - * tree-ssa-loop-ch.c (should_duplicate_loop_header_p): Likewise. - (copy_loop_headers): Likewise. - * tree-ssa-loop-im.c (loop_commit_inserts): Likewise. - (fill_always_executed_in): Likewise. - * tree-ssa-loop-ivcanon.c (create_canonical_iv): Likewise. - * tree-ssa-loop-ivopts.c (find_interesting_uses): Likewise. - (compute_phi_arg_on_exit): Likewise. - * tree-ssa-loop-manip.c (add_exit_phis_edge): Likewise. - (get_loops_exit): Likewise. - (split_loop_exit_edge): Likewise. - (ip_normal_pos): Likewise. - * tree-ssa-loop-niter.c (simplify_using_initial_conditions): - Likewise. - * tree-ssa-phiopt.c (candidate_bb_for_phi_optimization): Likewise. - (replace_phi_with_stmt): Likewise. - (value_replacement): Likewise. - * tree-ssa-pre.c (compute_antic_aux): Likewise. - (insert_aux): Likewise. - (init_pre): Likewise. - * tree-ssa-propagate.c (simulate_stmt): Likewise. - (simulate_block): Likewise. - (ssa_prop_init): Likewise. - * tree-ssa-threadupdate.c (thread_block): Likewise. - (create_block_for_threading): Likewise. - (remove_last_stmt_and_useless_edges): Likewise. - * tree-ssa.c (verify_phi_args): Likewise. - (verify_ssa): Likewise. - * tree_tailcall.c (independent_of_stmt_p): Likewise. - (find_tail_calls): Likewise. - (eliminate_tail_call): Likewise. - (tree_optimize_tail_calls_1): Likewise. - * tree-vectorizer.c (vect_transform_loop): Likewise. - * var-tracking.c (prologue_stack_adjust): Likewise. - (vt_stack_adjustments): Likewise. - (vt_find_locations): Likewise. - * config/frv/frv.c (frv_ifcvt_modify_tests): Likewise. - * config/i386/i386.c (ix86_pad_returns): Likewise. - * config/ia64/ia64.c (ia64_expand_prologue): Likewise. - * config/rs6000/rs6000.c (rs6000_emit_prologue): Likewise. - -2004-09-28 Eric Botcazou - - PR target/16532 - * config/sparc/sparc.c (struct machine_function): New field - 'leaf_function_p' and 'prologue_data_valid_p'. - (sparc_leaf_function_p, sparc_prologue_data_valid_p): New macro - to conveniently access the above fields. - (TARGET_LATE_RTL_PROLOGUE_EPILOGUE): Delete. - (eligible_for_return_delay): Use 'sparc_leaf_function_p' instead - of the generic flavor 'current_function_uses_only_leaf_regs'. - (eligible_for_sibcall_delay): Likewise. - (sparc_expand_prologue): Compute 'sparc_leaf_function_p' and set - 'sparc_prologue_data_valid_p'. Use 'sparc_leaf_function_p'. - (sparc_asm_function_prologue): Add sanity check for the assumption - made in 'sparc_expand_prologue'. Use 'sparc_leaf_function_p'. - (sparc_can_use_return_insn_p): New function. - (sparc_expand_epilogue): Use 'sparc_leaf_function_p'. - (output_restore): Likewise. - (output_sibcall): Likewise. - (sparc_output_mi_thunk): Likewise. - * config/sparc/sparc-protos.h (sparc_can_use_return_insn_p): Declare. - * config/sparc/sparc.md (return): New expander. - - * config/sparc/sparc.h (INITIAL_ELIMINATION_OFFSET): Minor tweak. - -2004-09-27 Mark Mitchell - - PR c++/17642 - * stor-layout.c (layout_decl): Use fold_convert, not convert. - (bit_from_pos): Likewise. - (byte_from_pos): Likewise. - (pos_from_bit): Likewise. - (normalize_offset): Likewise. - (place_field): Likewise. - (finalize_type_size): Likewise. - (layout_type): Likewise. - * tree.c (build_index_type): Likewise. - -2004-09-27 Devang Patel - - * expr.c (expand_expr_real_1): Handle VEC_COND_EXPR. - * genopinit.c (optabs): New entry for vcond_gen_code and - vcondu_gen_code. - * optabs.c (vcond_gen_code, vcondu_gen_code): New optabs. - (get_rtx_code): New function. - (vector_compare_rtx): New function. - (init_optabs): Initialize vcond_gen_code and vcondu_gen_code. - (expand_vec_cond_expr_p): New function. - (expand_vec_cond_expr): New function. - (get_vcond_icode): New function. - * optabs.h (expand_vec_cond_expr, expand_vec_cond_expr_p): New externs. - (vcond_gen_code, vcondu_gen_code): Same. - -2004-09-27 Kelley Cook - - * Makefile.in (STAGESTUFF): Split into ... - (STAGECOPYSTUFF, STAGEMOVESTUFF): ... these. - (mostlyclean): Update. - (stage1-start, stage2-start, stage3-start, stage4-start, - stageprofile-start, stagefeedback-start): Copy the STAGECOPYSTUFF. - Move the STAGEMOVESTUFF. - -2004-09-27 Eric Botcazou - - * system.h (getpagesize): Return 'int' instead of 'long'. - -2004-09-27 Michael Matz - - PR bootstrap/17698 - PR bootstrap/17702 - * bitmap.h (bmp_iter_single_init, bmp_iter_and_not_init, - bmp_iter_and_init): Shift by bit_in_word. - -2004-09-27 Kelley Cook - - * aclocal.m4: Quote m4_includes. Include ../config/gcc-lib-path.m4. - * configure.ac: Don't sinclude it here. - * configure: Regenerate. - -2004-09-27 Dorit Naishlos - - * config/rs6000/rs6000.c (rs6000_legitimate_address, print_operand): - Handle AND pattern - -2004-09-27 Joseph S. Myers - - PR c/13804 - * c-typeck.c (build_component_ref): Name type involved in - diagnostic for structure or union without a member of the given - name. - -2004-09-27 DJ Delorie - - * config/stormy16/stormy16.c (xstormy16_asm_output_aligned_common): - .comm alignment is bytes, not bits. - -2004-09-27 Devang Patel - - * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR. - (print_call_name): Do not print VEC_COND_EXPR. - -2004-09-27 Devang Patel - - * tree-pretty-print.c (dump_generic_node): Print VEC_COND_EXPR. - -2004-09-27 Jan Hubicka - - * i386.c (athlon_cost, k8_cost): Set BRANCH_COST to 5. - -2004-09-27 Kazu Hirata - - * bitmap.h: Fix a comment typo. - -2004-09-27 Aaron W. LaFramboise - - * libgcc2.c (getpagesize): Change type of return value to int. - -2004-09-26 Matt Austern - - * ggc-page.c (GGC_QUIRE_SIZE): Bump up from 16 to 256 if we're - using mmap. - -2004-09-26 Zdenek Dvorak - - * bitmap.h (EXECUTE_IF_SET_IN_BITMAP, EXECUTE_IF_AND_COMPL_IN_BITMAP, - EXECUTE_IF_AND_IN_BITMAP): Changed to iterator style. - (bitmap_iterator): New type. - (bmp_iter_common_next_1, bmp_iter_single_next_1, bmp_iter_single_init, - bmp_iter_end_p, bmp_iter_single_next, bmp_iter_and_not_next_1, - bmp_iter_and_not_init, bmp_iter_and_not_next, bmp_iter_and_next_1, - bmp_iter_and_init, bmp_iter_and_next): New functions. - * basic-block.h (EXECUTE_IF_SET_IN_REG_SET, - EXECUTE_IF_AND_COMPL_IN_REG_SET, EXECUTE_IF_AND_IN_REG_SET): Changed to - use iterator-style EXECUTE_IF_IN_BITMAP macros. - * bitmap.c (bitmap_print): Ditto. - * bt-load.c (clear_btr_from_live_range, add_btr_to_live_range, - btr_def_live_range): Ditto. - * cfganal.c (compute_dominance_frontiers_1) Ditto. - * cgraphunit.c (convert_UIDs_in_bitmap, cgraph_characterize_statics): - Ditto. - * ddg.c (build_inter_loop_deps): Ditto. - * df.c (FOR_EACH_BB_IN_BITMAP, df_bb_reg_info_compute, df_refs_update): - Ditto. - * except.c (remove_eh_handler): Ditto. - * flow.c (reg_set_to_hard_reg_set): Ditto. - * gcse.c (clear_modify_mem_tables): Ditto. - * global.c (build_insn_chain): Ditto. - * ifcvt.c (dead_or_predicable): Ditto. - * loop-invariant.c (get_inv_cost, set_move_mark, move_invariant_reg): - Ditto. - * ra-build.c (livethrough_conflicts_bb, conflicts_between_webs): Ditto. - * ra-rewrite.c (reloads_to_loads, rewrite_program2, - detect_web_parts_to_rebuild, delete_useless_defs, actual_spill): Ditto. - * tree-cfg.c (allocate_ssa_names, tree_duplicate_sese_region, - tree_purge_all_dead_eh_edges): Ditto. - * tree-into-ssa.c (compute_global_livein, insert_phi_nodes, - insert_phi_nodes_for, debug_def_blocks_r, invalidate_name_tags, - rewrite_ssa_into_ssa): Ditto. - * tree-outof-ssa.c (find_replaceable_exprs): Ditto. - * tree-sra.c (scan_function, decide_instantiations, scalarize_parms): - Ditto. - * tree-ssa-alias.c (init_alias_info, compute_points_to_and_addr_escape, - compute_flow_sensitive_aliasing, maybe_create_global_var, - dump_points_to_info_for): Ditto. - * tree-ssa-dce.c (EXECUTE_IF_CONTROL_DEPENDENT): Ditto. - * tree-ssa-dse.c (dse_finalize_block): Ditto. - * tree-ssa-live.c (live_worklist, calculate_live_on_entry, - calculate_live_on_exit, build_tree_conflict_graph, dump_live_info): - Ditto. - * tree-ssa-loop-ivopts.c (find_induction_variables, - find_interesting_uses, add_old_ivs_candidates, alloc_use_cost_map, - determine_use_iv_costs, determine_set_costs, find_best_candidate, - set_cost_up_to, create_new_ivs, remove_unused_ivs, free_loop_data): - Ditto. - * tree-ssa-loop-manip.c (add_exit_phis_var, add_exit_phis): Ditto. - * tree-ssa-operands.c (get_asm_expr_operands, add_call_clobber_ops, - add_call_read_ops): Ditto. - * tree-ssa-pre.c (bitmap_print_value_set, insert_aux): Ditto. - -2004-09-26 John David Anglin - - * pa.c (print_operand): Use non-trapping completers for UNLE, UNLT, - UNGE, UNGT, UNEQ, UNORDERED and ORDERED comparisons. - -2004-09-26 Ulrich Weigand - - * builtins.c (expand_builtin_memcmp): Adjust MEM_SIZE to - reflect size of memory regions being compared. - -2004-09-26 Ulrich Weigand - - * builtins.c (get_memory_rtx): Set mem attributes for non-ADDR_EXPR - expressions. Always clear MEM_SIZE and alias set. - -2004-09-26 Roger Sayle - Giovanni Bajo - - PR middle-end/17112 - * stor-layout.c (compute_record_mode): For records with a single - field, only use the field's mode if its size matches what we'd - have choosen for the record ourselves. This forces the use of - BLKmode for packed records that don't completely fill a mode. - -2004-09-26 Roger Sayle - - PR middle-end/17151 - * combine.c (force_to_mode): Remove dubious early return test that - inhibits further optimization. - -2004-09-26 Kazu Hirata - - * profile.c: Fix a comment typo. - -2004-09-26 Zdenek Dvorak - - PR bootstrap/17591 - * tree-ssa-loop-im.c (for_each_index): Call callback for component_refs - with varying offset. - * tree-ssa-loop-ivopts.c (abnormal_ssa_name_p): New function. - (idx_contains_abnormal_ssa_name_p): Scan step and lower bound for - ARRAY_REFS. - (expr_invariant_in_loop_p): New function. - (idx_find_step): Handle step and lower bound for ARRAY_REFs. Handle - component_ref_field_offset for COMPONENT_REFs. Do not allow - ALIGN_INDIRECT_REFs and MISALIGNED_INDIRECT_REFs. - (add_address_candidates): Do not handle ALIGN_INDIRECT_REFs and - MISALIGNED_INDIRECT_REFs. - (idx_remove_ssa_names): Handle step and lower bound for ARRAY_REFs. - (rewrite_address_base): Do not handle ALIGN_INDIRECT_REFs and - MISALIGNED_INDIRECT_REFs. - -2004-09-26 Joseph S. Myers - - PR c/11459 - * gcc.c (cpp_options, cc1_options): Preserve relative order of - -std and -ansi options. - -2004-09-26 Jan Hubicka - - * dwarf2out.c (dwarf2out_finish): Set parent to comp_unit_die - for nested functions whose proper parent has not been output. - - * profile.c (compute_branch_probabilities): Use REG_BR_PROB notes - when re-constructing profile previously invalidated by loop. - -2004-09-25 Dale Johannesen - - * tree-gimple.c: Move GIMPLE definition... - * doc/tree-ssa.texi: here. - -2004-09-25 Kazu Hirata - - * tree-vectorizer.c: Fix a comment typo. - -2004-09-25 Kazu Hirata - - * c-typeck.c, defaults.h, dwarf.h, dwarf2out.c, fold-const.c, - gthr-dce.h, gthr-posix.h, gthr-solaris.h, gthr-win32.h, - lambda-code.c, lambda-mat.c, libgcc2.c, stmt.c, - tree-ssa-pre.c, tree-vn.c, tree.h: Fix comment formatting. - -2004-09-25 Kazu Hirata - - * tree-ssa-loop-unswitch.c: Fix a comment typo. - -2004-09-25 Kazu Hirata - - * doc/passes.texi: Fix a typo. - -2004-09-25 Zdenek Dvorak - - * tree-optimize.c (init_tree_optimization_passes): Add - pass_record_bounds. - * tree-pass.h (pass_record_bounds): Declare. - * tree-ssa-loop.c (tree_ssa_loop_bounds, pass_record_bounds): - New pass. - -2004-09-25 Zdenek Dvorak - - PR tree-optimization/17474 - * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Determine - offset of the field correctly when DECL_FIELD_BIT_OFFSET != 0. - -2004-09-25 Jan Hubicka - - * predict.c (counts_to_freqs): Make global. - * predict.h (counts_to_freqa): Declare. - * profile.c (compute_branch_probabilities): Compute frequencies - * tree-profile.c (do_tree_profiling): Refine conditional on when - tree profiling pass is needed. - - * passes.c (rest_of_handle_cfg): Disable const/pure function - detection when doing tree based profiling. - - * tree-inline.c (expand_call_inline): Fix incorrectly reversed - conditional. - -2004-09-25 Richard Sandiford - - * config/mips/mips.h (struct mips_args): Clarify comments. - * config/mips/mips.c (struct mips_arg_info): Likewise. - (mips_arg_info): Don't allow fpr_p to affect the register or - stack alignment. Remove o64 silliness. - (function_arg): Deal with the o32 float,float case specially. - -2004-09-25 Richard Sandiford - - * config/mips/mips.md (loadx, storex): Define for V2SF. - -2004-09-25 Ulrich Weigand - - * config/s390/s390-protos.h (s390_back_chain_rtx): Add prototype. - * config/s390/s390.c (s390_back_chain_rtx): New function. - * config/s390/s390.md ("allocate_stack"): Use s390_back_chain_rtx. - Call anti_adjust_stack. - ("restore_stack_block"): Use s390_back_chain_rtx. Enable pattern - only if compiling with back chain. - ("save_stack_nonlocal", "restore_stack_nonlocal"): Save/restore - back chain only if back chain enabled. Use s390_back_chain_rtx. - -2004-09-25 Joseph S. Myers - - * doc/trouble.texi: Remove obsolete information. Update - information on how to regenerate fixincluded headers. - -2004-09-25 Joseph S. Myers - - PR c/12951 - * doc/invoke.texi: Document that - -Wno-error-implicit-function-declaration is not accepted. - -2004-09-24 Richard Henderson - - * config/alpha/alpha.h (UNITS_PER_SIMD_WORD): New. - * config/alpha/alpha.c (alpha_vector_mode_supported_p): Don't depend - on TARGET_MAX. - (alpha_expand_mov): Allow unaligned vectors. - (alpha_expand_unaligned_store): Use CONST0_RTX. - (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New. - -2004-09-24 Jeff Law - - * tree-ssa-dom.c (dom_opt_finalize_block): Fix violation of strict - aliasing rules. - (simplify_cond_and_lookup_avail_expr): Likewise. - -2004-09-24 Joseph S. Myers - - PR c/12802 - * doc/extend.texi (Unnamed Fields): Remove "." from end of long - title. Document interaction with -fms-extensions. - * doc/invoke.texi (-fms-extensions): Refer to Unnamed Fields - section. - -2004-09-24 Joseph S. Myers - - PR c/12713 - * doc/extend.texi: Document interaction of attribute noreturn and - longjmp. - -2004-09-24 Richard Henderson - - PR rtl-opt/17503 - * regclass.c (subregs_of_mode): Turn into an htab. Make static. - (som_hash, som_eq): New. - (init_subregs_of_mode, record_subregs_of_mode): New. - (cannot_change_mode_set_regs): Rewrite for htab implementation. - (invalid_mode_change_p): Likewise. - * combine.c (gen_lowpart_for_combine): Use record_subregs_of_mode. - * flow.c (mark_used_regs): Likewise. - (life_analysis): Use init_subregs_of_mode. - * regs.h (subregs_of_mode): Remove. - * rtl.h (init_subregs_of_mode, record_subregs_of_mode): Declare. - -2004-09-24 Andrew Pinski - - * tree-ssa-phiopt.c (conditional_replacement): Use the correct - type with the copy of the conditional. - -2004-09-24 Andrew Pinski - - PR tree-opt/16954 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): - Prevent renaming if the aliasing sets of the type which the - pointer points to are different. - -2004-09-24 Joseph S. Myers - - PR c/17188 - * c-decl.c (diagnose_mismatched_decls): Check for duplicate - declarations of enumerators. - (start_struct): Check TYPE_SIZE rather than TYPE_FIELDS to check - for redefinition. Check for nested redefinition. - (finish_struct): Don't check for nested redefinition. - (start_enum): Check for nested redefinition. - -2004-09-24 Devang Patel - - * tree-if-conv.c (tree_if_convert_cond_expr0: Create temp. variable - only when necesssary. - (combine_blocks): Combine loop header and exit block. - -2004-09-24 Paolo Bonzini - - * hooks.c (hook_tree_tree_bool_null): New. - * hooks.h (hook_tree_tree_bool_null): Declare it. - * target-def.c (TARGET_FOLD_BUILTIN): Point to it. - * targhooks.c (default_fold_builtin): Remove. - * targhooks.h (default_fold_builtin): Remove. - -2004-09-24 Zdenek Dvorak - - PR rtl-optimization/17625 - * loop-doloop.c (doloop_modify): Unshare rtl before emitting it. - -2004-09-24 Andrew Pinski - - PR tree-opt/17624 - * tree-ssa-forwprop.c (record_single_argument_cond_exprs): - Reject if any of the operands occur in an abnormal PHI. - -2004-09-24 Andreas Schwab - - * tree-ssa-dom.c (record_range): Fix violation of strict aliasing - rules. - -2004-09-24 Eric Botcazou - - * config.gcc (sparc64-*-solaris2*): Include sparc/sol2-gas.h - if the GNU assembler is used. - (sparc-*-solaris2*): Likewise. - * dbxout.c (NO_DBX_BNSYM_ENSYM): Default to zero. - (dbxout_function_end): Protect N_ENSYM with it. - (dbxout_begin_prologue): Protect N_BNSYM with it. - * doc/tm.texi (NO_DBX_BNSYM_ENSYM): Document it. - * config/sparc/sol2.h (NO_DBX_BNSYM_ENSYM): Define to 1. - * config/sparc/sol2-gas.h: New file. - -2004-09-23 H.J. Lu - - PR bootstrap/17369 - * Makefile.in (@set_gcc_lib_path@): Added. - - * configure.ac: Include ../config/gcc-lib-path.m4. Use - TL_AC_GNU_MAKE_GCC_LIB_PATH. - * configure: Regenerated. - -2004-09-24 Joseph S. Myers - - PR c/6980 - * c-typeck.c (build_c_cast): Improve wording of - -Wbad-function-cast diagnostic. - -2004-09-23 Hans-Peter Nilsson - - PR target/17626 - * config/cris/cris.md (moverside, movemside): Rename variable - "reg" to "otherop". To generate canonical RTX, check that otherop - isn't constant instead of checking that operand 1 is a register. - -2004-09-23 Jakub Jelinek - - * tree-ssa-propagate.c (set_rhs): Fail if EXPR is COMPOUND_EXPR. - -2004-09-23 Diego Novillo - Jakub Jelinek - - * tree-flow.h (find_new_referenced_vars): Add prototype. - * tree-sra.c (find_new_referenced_vars_1, find_new_referenced_vars): - Move to... - * tree-dfa.c (find_new_referenced_vars_1, find_new_referenced_vars): - ... here. - (mark_new_vars_to_rename): Walk through all operands. - * tree-ssa-ccp.c (convert_to_gimple_builtin): New function. - (execute_fold_all_builtins): Use it. - (pass_fold_builtins): Add TODO_rename_vars to todo_flags_finish. - -2004-09-23 P.J. Darcy - - * gthr-tpf.h: New file. - * config.gcc (s390x-ibm-tpf*): Add thread_file='tpf'. - * gthr.h: Use gthr-tpf.h on TPF OS. - -2004-09-23 Jeff Law - - * tree-ssa-ccp.c (get_default_value): Use SSA_NAME_VALUE rather - than SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV. - (substitute_and_fold): Likewise. - * tree-ssa-dom.c (tree_ssa_dominator_optimize): Remove everything - except invariants from SSA_NAME_VALUE. - (thread_across_edge): Use SSA_NAME_VALUE rather than SSA_NAME_EQUIV - and SET_SSA_NAME_EQUIV. - (restore_vars_to_original_value, record_const_or_copy): Likewise. - (record_equivalences_from_phis, record_const_or_copy_1): Likewise. - (record_equality, cprop_into_successor_phis): Likewise. - (record_equivalences_from_stmt, cprop_operand): Likewise. - (lookup_avail_expr): Likewise. - * tree-ssa-pre.c (fini_pre): Remove everything except invariants - from SSA_NAME_VALUE. - * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): Kill. - (struct tree_ssa_name): Kill EQUIV field. Remove GGC skip - annotation from the VALUE_HANDLE field. - -2004-09-21 Fariborz Jahanian - - PR c++/13989 - PR c++/9844 - * tree.c (reconstruct_complex_type): Remove extra "this". - * config/rs6000/rs6000.c (rs6000_handle_altivec_attribute): - Add V4SFmode to case statement. - -2004-09-23 Joseph S. Myers - - PR c/16833 - * doc/extend.texi, doc/invoke.texi: Document interaction of - -fno-builtin with format checks. Note that built-in functions - have effects beyond generating code that avoids calls to those - functions. - -2004-09-23 Frank Ch. Eigler - - PR tree-optimization/17533 - * dominance.c (verify_dominators): Tolerate even more incorrect - dominance data during error message printing. - * tree-mudflap.c (mf_build_check_statement_for): Build basic blocks - and edges more correctly. - -2004-09-23 Dorit Naishlos - - * tree.def (ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF): - New tree-codes. - * tree.h (REF_ORIGINAL): Consider ALIGN_INDIRECT_REF and - MISALIGNED_INDIRECT_REF. - * alias.c (get_alias_set, nonoverlapping_memrefs_p): Likewise. - * emit-rtl.c (mem_expr_equal_p, set_mem_attributes_minus_bitpos): - Likewise. - * expr.c (safe_from_p, expand_expr_real_1, rewrite_address_base) - (find_interesting_uses_address): Likewise. - * fold-const.c (non_lvalue, operand_equal_p): Likewise. - (build_fold_addr_expr_with_type): Likewise. - * gimplify.c (gimplify_addr_expr, gimplify_expr): Likewise. - * print-rtl.c (print_mem_expr): Likewise. - * tree-dump.c (dequeue_and_dump): Likewise. - * tree-eh.c (tree_could_trap_p): Likewise. - * tree-gimple.c (is_gimple_addressable, get_base_address): Likewise. - * tree-pretty-print.c (op_prio, op_symbol, dump_generic_node): Likewise. - * tree-ssa-alias.c (find_ptr_dereference, ptr_is_dereferenced_by): - Likewise. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. - * tree-ssa-dom.c (record_equivalences_from_stmt): Likewise. - * tree-ssa-loop-im.c (for_each_index, is_call_clobbered_ref): Likewise. - * tree-ssa-loop-ivopts.c (find_interesting_uses_address): Likewise. - (add_address_candidates, rewrite_address_base): Likewise. - * tree-ssa-operands.c (get_expr_operands, get_indirect_ref_operands): - Likewise. - * tree.c (staticp, build1_stat): Likewise. - - * tree.def (REALIGN_LOAD_EXPR, REALIGN_STORE_EXPR): New tree-codes. - * tree-pretty-print.c (dump_generic_node): Consider REALIGN_LOAD_EXPR. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * expr.c (expand_expr_real_1): Likewise. - - * optabs.h (vec_realign_store_optab, vec_realign_load_optab): New - optabs. - (OTI_vec_realign_store, OTI_vec_realign_load): New optab_index values - for the new optabs. - (expand_ternary_op): New function. - * genopinit.c (optabs): Handle the new optabs. - * optabs.c (optab_for_tree_code): Add cases for the new tree-codes. - (init_optabs): Initialize vec_realign_load_optab. - (expand_ternary_op): New functions. - - * target-def.h (TARGET_VECTORIZE): New member for struct gcc_target. - (TARGET_VECTORIZE_MISALIGNED_MEM_OK): New member for targetm.vectorize. - (TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD): Likewise. - (TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE): Likewise. - * target.h (struct vectorize): New member for struct gcc_target. - (misaligned_mem_ok): New member for targetm.vectorize. - (builtin_mask_for_load): Likewise. - (builtin_mask_for_store): Likewise. - * targethooks.c (default_vect_misaligned_mem_ok): New function. - * targethooks.h (default_vect_misaligned_mem_ok): New function. - - * config/rs6000/altivec.md (build_vector_mask_for_load): New - define_expand. - (vec_realign_load_v4si, vec_realign_load_v4sf, vec_realign_load_v8hi) - (vec_realign_load_v16qi): New define_insn. - * config/rs6000/rs6000.h (ALTIVEC_BUILTIN_MASK_FOR_LOAD): - (ALTIVEC_BUILTIN_MASK_FOR_STORE): New target builtins. - * config/rs6000/rs6000.c (altivec_builtin_mask_for_load): - (altivec_builtin_mask_for_store): New variables. - (rs6000_builtin_mask_for_load): New function. Implements - TARGET_VECTORIZE_BUILTIN_MASK_FOR_LOAD. - (rs6000_builtin_mask_for_store): New function. Implements - TARGET_VECTORIZE_BUILTIN_MASK_FOR_STORE. - (rs6000_expand_builtin): Expand the target builtins - builtin_mask_for_load and builtin_mask_for_store. - (altivec_init_builtins): Initialize the new target builtins. - * config/i386/i386.c (ix86_misaligned_mem_ok): New function. - Implements the target hook TARGET_VECTORIZE_MISALIGNED_MEM_OK. - - * tree-vectorizer.c (vect_create_data_ref): Renamed to - vect_create_data_ref_ptr. Returns a pointer instead of an array-ref. - (vect_create_addr_base_for_vector_ref): Additional argument (offset). - (vectorizable_store): Call vect_create_data_ref_ptr with additional - arguments, and create an indirect_ref with its return value data_ref. - Check aligned_access_p. - (vectorizable_load): Handle misaligned loads, using software-pipelined - scheme with REALIGN_LOAD_EXPR and ALIGN_INDIRECT_REF if - vec_realign_load_optab is supported, or using a scheme without - software-pipelining with MISALIGNED_INDIRECT_REF if the target hook - misaligned_mem_ok is supported. - - (vect_finish_stmt_generation): Typo. - (vect_enhance_data_refs_alignment): Rename loop_vinfo to loop_info. - (vect_analyze_data_refs_alignment): Don't fail vectorization in the - presence of misaligned loads. - (vect_analyze_data_ref_access): Add check for constant init. - (vect_get_symbl_and_dr): Remove duplicate line. - * tree-vectorizer.h (DR_MISALIGNMENT): Add comment. - -2004-09-23 Kazu Hirata - - * builtins.c: Fix a comment typo. - -2004-09-23 Jan Hubicka - - * profile.c (branch_prob): Do not verify flow info in the middle of the - pass. - -2004-09-23 Zdenek Dvorak - - * cfgloop.h (update_single_exits_after_duplication): Declare. - (loopify, split_loop_bb): Declaration changed. - * cfgloopmanip.c (split_loop_bb): Take void * as an argument instead - of rtx. - (loopify): Added redirect_all_edges argument. - (update_single_exits_after_duplication): Export. - * loop-unswitch.c (unswitch_loop): Changed due to loopify change. - * tree-flow.h (tree_duplicate_loop_to_header_edge, - tree_ssa_loop_version): Declare. - * tree-ssa-loop-manip.c (copy_phi_node_args, rename_variables, - set_phi_def_stmts, tree_duplicate_loop_to_header_edge, - lv_adjust_loop_header_phi, lv_adjust_loop_entry_edge, - lv_update_pending_stmts, tree_ssa_loop_version): New functions. - - * tree-ssa-loop-unswitch.c: New file. - * Makefile.in (tree-ssa-loop-unswitch.o): Add. - * timevar.def (TV_TREE_LOOP_UNSWITCH): New timevar. - * tree-flow.h (tree_ssa_unswitch_loops): Declare. - * tree-optimize.c (init_tree_optimization_passes): Add pass_unswitch. - * tree-pass.h (pass_unswitch): Declare. - * tree-ssa-loop.c (tree_ssa_loop_unswitch, - gate_tree_ssa_loop_unswitch, pass_unswitch): New pass. - * doc/passes.texi: Documen tree level loop unswitching. - -2004-09-23 Kazu Hirata - - * cfgexpand.c, config/s390/tpf-eh.c: Fix comment typos. - -2004-09-22 Eric Christopher - - * builtins.c (simplify_builtin_va_start): Remove. - (simplify_builtin): Ditto. - (fold_builtin_strchr): Ditto. - (simplify_builtin_*): Rename remainders to fold_builtin_*. - (expand_builtin): Fix up for above changes. - (fold_builtin_1): Add new folders. Change for above. - (expand_builtin_va_start): Call fold_builtin_next_arg. - * gimplify.c (gimplify_call_expr): Fix calls to simplify_builtin. - * tree.h: Remove prototype for simplify_builtin. - -2004-09-23 Jan Hubicka - - PR debug/17389 - * dwarf2out.c (dwarf2out_finish): Deal with nested functions - of fully inlined functions. - * tree-inline.c (inline_forbidden_p_1): Nested functions can be - inlined. - - * cfgexpand.c (add_reg_br_prob_note): New function. - (expand_gimple_cond_expr): Use it. - (tree_expand_cfg): No longer kill the profile. - * cfgrt.c (rtl_verify_flow_info_1): Check profile consistency - only if it is present. - * passes.c (rest_of_handle_loop_optimize): Kill the profile. - * predict.c (combine_predictions_for_insn): Set the probabilities - based on REG_BR_PROB note if present. - * predict.c (branch_prob): Profile is read only with - flag_branch_probabilities. - -2004-09-22 Kelley Cook - - * aclocal.m4: Add in gettext's m4 includes. - (AC_ICONV, AC_LCMESSAGES, GCC_PATH_PROG): Remove. - * configure.ac: Add in check for iconv.h - * configure: Regenerate. - -2004-09-22 Kelley Cook - - * aclocal.m4: Update for rename of gettext-sister.m4. - -2004-09-22 Daniel Berlin - - Fix PR tree-optimization/17587 - * tree-ssa-pre.c (fini_pre): Commit edge inserts here. - (insert_aux): Instead of here. - -2004-09-22 Diego Novillo - - PR tree-optimization/16721 - * tree-dfa.c (dump_variable): Show TREE_THIS_VOLATILE. - * tree-ssa-alias.c (create_memory_tag): Move setting of - TREE_THIS_VOLATILE ... - (get_tmt_for): ... here. - -2004-09-22 Eric Botcazou - - * config/sparc/sparc.md (cmove splitter): Fix formatting. - (conditional_trap expander): Reject inappropriate CCmodes. - (conditional trap insn): Use V9 syntax if possible. - -2004-09-22 Joseph S. Myers - - PR c/16566 - * c-typeck.c (build_component_ref): Don't special-case - COMPOUND_EXPR. - -2004-09-22 Frank Ch. Eigler - - * dominance.c (verify_dominators): Don't SEGV if recount_dominator - returns NULL. - -2004-09-22 Kazu Hirata - - * doc/c-tree.texi (TRUTH_NOT_EXPR, TRUTH_ANDIF_EXPR, - TRUTH_ORIF_EXPR, TRUTH_AND_EXPR, TRUTH_OR_EXPR, - TRUTH_XOR_EXPR): Mention the restriction on types. - -2004-09-22 Matt Austern - - * config/darwin.c (darwin_make_decl_one_only): - Allow coalesced symbol to appear in static archive's table of contents - -2004-09-22 Kazu Hirata - - PR tree-optimization/17512 - * convert.c (convert_to_integer): Don't handle TRUTH_*_EXPR as - special cases. - -2004-09-22 David Edelsohn - - * dbxout.c (get_lang_number): Do not define if - DBX_OUTPUT_MAIN_SOURCE_DIRECTORY is defined. - -2004-09-22 Ralf Corsepius - - PR target/15583 - * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Add - builtin_define ("__USE_INIT_FINI__"). - -2004-09-22 P.J. Darcy - - * config/s390/s390-protos.h (s390_emit_tpf_eh_return): Add prototype. - * config/s390/s390.c (s390_emit_tpf_eh_return): New function. - * config/s390/s390.h (TARGET_TPF): New macro. - * config/s390/s390.md ("eh_return"): New expander. - * config/s390/t-tpf (LIB2ADDEH): Use unwind-dw2-fde.c rather than - unwind-dw2-fde-glibc.c. Add config/s390/tpf-eh.c. - (LIB2ADDEHDEP): Remove unwind-dw2-fde.c. - * config/s390/tpf.h (TARGET_TPF): Define to 1. - (STACK_POINTER_OFFSET): Increase to 448. - (TARGET_DEFAULT): Set -mtpf-trace on as default. - (TPF_LOC_DIFF_OFFSET): New macro. - (ASM_PREFERRED_EH_DATA_FORMAT): Redefine to always use absolute - encoding. - (__isPATrange): Add prototype. - (MD_FALLBACK_FRAME_STATE_FOR): Define. - * config/s390/tpf-eh.c: New file. - -2004-09-22 Diego Novillo - - * fold-const.c (fold): Avoid non INTEGER_TYPEs when widening - operands in an integer comparison. - * tree-cfg.c (find_taken_edge): Call fold() to determine - whether the predicate is known. - -2004-09-22 Kelley Cook - - * aclocal.m4: Import AM_PROG_CC_C_O and AM_AUX_DIR_EXPAND. - * configure.ac: Call AM_PROG_CC_C_O instead of AC_PROG_CC_C_O. - Create build and doc directories along with the language directories. - Don't create doc directory separately. - * configure: Regenerate. - * Makefile.in: Create all object and executables files built - with the build compiler in a build/ directory. - (genobjnames): Add missing build objects. - (STAGESTUFF): Don't stage the gen* programs. - (ggc-none.o): Define dependencies for the target compiler. - (build-print-rtl.o): Rename to build/print-rtl.o. - (build-errors.o): Rename to build/errors.o. - (build-varray.o): Rename to build/varray.o. - (maintainerclean): Delete the contents of the build directory. - ($(genobjs): %.o): Explicitly use -o. - (build/insn-conditions.o): Delete specfic rule to use generic rule. - (build/gengtype-lex.o): Likewise. - (build/gengtype-yacc.o): Likewise. - (build/gcov-iov.o): Likewise. - -2004-09-22 Nathan Sidwell - - * vec.h (VEC_space): Return true if there _is_ space. - (VEC_reserve): Adjust. - -2004-09-22 Richard Sandiford - - * config/mips/mips.c (mips_function_value): For o32, o64, n32 and n64, - use FPRs for scalar, complex and vector types only. - -2004-09-21 Jeff Law - - * tree-ssa-dom.c (opt_stats): Move so that it lives just after - the opt_stats_d structure. - (vrp_data): Change from a varray into a hash table. - (vrp_hash_elt): New structure for elements in the vrp hash table. - (vrp_hash, vrp_eq):New functions for hashing and testing equality - in the vrp hash table. - (tree_ssa_dominator_optimize): Initialize VRP_DATA. Reorganize - initialization slightly to make it easier to read. No longer need - to grow/clear the varray. Instead empty and delete the hash table. - (dom_opt_finalize_block): Update due to change of VRP_DATA from - a varray to a hash table. - (simplify_cond_and_loop_avail_expr, record_range): Similarly. - - * tree-ssa-ccp.c (get_default_value): If we have a constant - value recorded for an SSA_NAME, then use that constant as - the initial lattice value. - (substitute_and_fold): Transfer equivalences discovered into - SSA_NAME_EQUIV. - - * tree.h (SSA_NAME_EQUIV): Add comments. - (SET_SSA_NAME_EQUIV): Similarly. - -2004-09-21 David Edelsohn - - * config/rs6000/linux64.h (PROCESSOR_DEFAULT64): Default to POWER4. - - * config/rs6000/rs6000.c (rs6000_adjust_cost): dep_insn is used. - -2004-09-21 Mark Mitchell - - * c-decl.c (implicityl_declare): Call maybe_apply_renaming_pragma. - (finish_decl): Likewise. - -2004-09-21 Devang Patel - - * tree.def (VEC_COND_EXPR): New tree node. - * tree-ssa-operands.c (get_expr_operands): Handle VEC_COND_EXPR. - -2004-09-21 Stan Shebs - - * config/rs6000/darwin-tramp.asm: Add __ppc64__ case. - * config/rs6000/darwin-world.asm: Likewise. - -2004-09-21 Daniel Berlin - - * tree-ssa.c (verify_def): Use print_generic_stmt, - not debug_generic_stmt. - (verify_use): Ditto. - (verify_phi_args): Ditto. - (verify_ssa): Ditto. - -2004-09-21 Paul Brook - - * varasm.c (default_assemble_integer): Return false for values wider - than the target word size. Works around GAS bug. - -2004-09-21 Zack Weinberg - - * reg-notes.def (REG_DEP_TRUE): New entry, place first so it - gets value 0. - * print-rtl.c (print_rtx): Print the name of a REG_NOTE even - if it has value 0. - -2004-09-21 Daniel Berlin - - * c-typeck.c (build_function_call): Give name of object - we are attempting to call in error message. - * c-objc-common.c (c_tree_printer): Call pp_expression, - not return false, for 'E' case. - -2004-09-21 Steven Bosscher - - PR rtl-optimization/17482 - * postreload-gcse.c (reg_avail_info, oprs_unchanged_p, - load_killed_in_block_p): Clarify comments. - (record_last_reg_set_info): Make static inline. - (mark_call, mark_set, mark_clobber, mark_oprs_set): Remove. - (record_opr_changes): New function to replace the above. - (compute_hash_table): Clarify comments. Use record_opr_changes. - (reg_set_between_after_reload_p): Clean up. - (reg_used_between_after_reload_p): Likewise. - (eliminate_partially_redundant_load): Clarify comments. - -2004-09-21 Eric Botcazou - - PR rtl-optimization/17266 - * regmove.c (optimize_reg_copy_3): Make a new SUBREG for each insn. - -2004-09-21 Uros Bizjak - - PR rtl-optimization/14851 - * rtlanal.c (commutative_operand_precedence): Calculate - precedence of stripped constant. - -2004-09-20 Jeff Law - Jan Hubicka - - * tree-ssanames.c (make_ssa_name): No longer need to clear, then - initialize key elements here. - (release_ssa_name): Zero the released SSA_NAME here. - * tree.h (SSA_NAME_EQUIV, SET_SSA_NAME_EQUIV): New macros. - (struct tree_ssa_name): Add new "equiv" field. - * tree-ssa-dom.c (const_and_copies): Kill the global varray. - (tree_ssa_dominator_optimize): No longer allocate, resize or - clear CONST_AND_COPIES. - (get_value_for, set_value_for): Kill. - (thread_across_edge): Get/set the equivalency using - SSA_NAME_EQUIV and SET_SSA_NAME_EQUIV. - (restore_vars_to_original_value): Likewise. - (record_equivalences_from_phis): Likewise. - (record_dominating_conditions): Likewise. - (record_const_or_copy, record_equality): Likewise. - (lookup_avail_expr): Likewise. - (record_equivalences_from_stmt, cprop_operand): Likewise. - (cprop_into_successor_phis): No longer need to pass around - CONST_AND_COPIES. Callers updated. Get equivalences via - SSA_NAME_EQUIV. - (cprop_into_phis): Likewise. - -2004-09-20 Matt Austern - Zack Weinberg - - * c-common.c (fix_string_type): Build the unqualified array - type unconditionally, then use c_build_qualified_type to get - the proper const-qualified variant, and set its - TYPE_MAIN_VARIANT to refer to the unqualified type. - * c-lex.c (c_lex_return_raw_string): New global. - (c_lex_with_flags): Honor it. - * c-pragma.h: Declare it. - -2004-09-20 Daniel Berlin - - * Makefile.in: Fix flags.h dependencies to be $(FLAGS_H). - -2004-09-21 Jan Hubicka - - PR middle-end/17126 - * tree-optimize.c (update_inlined_to_pointers): Fix the recursion. - (tree_rest_of_compilation): Cleanup. - -2004-09-20 Ulrich Weigand - - * config/s390/s390.c (s390_select_rtx_section): Remove. - (TARGET_ASM_SELECT_RTX_SECTION): Do not redefine. - -2004-09-20 Kaz Kojima - - * config/sh/sh.c (sh_expand_prologue): Add a REG_FRAME_RELATED_EXPR - note to pretend a direct save from the original register when an - intermediate register is used for the save. - -2004-09-20 Kaveh R. Ghazi - - * tsystem.h (alloca): Provide a default definition. - - Revert: - 2001-08-31 Kaveh R. Ghazi - * unwind-dw2.c: Call __builtin_alloca, not alloca. - -2004-09-20 Andrew Pinski - - PR tree-opt/17558 - * tree-ssa-copy.c (may_propagate_copy): Only allow if the - aliasing sets are the same rather than just conflicting. - -2004-09-20 Jan Hubicka - - PR middle-end/16460 - - * cgraph.c (cgraph_unnest_node): New function. - (c_finalize): Rename to .... - (c_warn_unused_result_recursivly): ... this one; do only the warning - (finish_function): Finalize the toplevel function; do not lower nested tree. - * cgraph.h (cgraph_unnest_node): Declare. - * cgraphunit.c (decide_is_function_needed): Do not use cgraph - nestedness datastructure. - * cse.c (cse_insn): Do not cprop nonlocal LABEL_REFs. - * reload1.c (set_label_offsets): Fix call of set_label_offsets. - * tree-nested.c (finlize_nesting_tree_1): Use un-nesting code. - -2004-09-20 Richard Henderson - - * config/alpha/alpha.c (some_small_symbolic_operand_int): Rename - from some_small_symbolic_operand_1; export. - (some_small_symbolic_operand): Remove. - * config/alpha/alpha.md (some_small_symbolic_operand splitter): Remove - extra C check. - * config/alpha/predicates.md (some_small_symbolic_operand): New. - -2004-09-20 Jan Hubicka - - * predict.c (return_prediction): New function. - (apply_return_prediction): Likewise. - (tree_bb_level_predictions): Likewise. - (tree_estimate_probability): Add noreturn exit edges; call - bb_level_predictions; fix logic of return heuristics. - (predict_paths_leading_to): Rescuesce from old CVS version of - process_note_prediction function. - * predict.def (PRED_TREE_EARLY_RETURN): New predictor. - -2004-09-20 Andreas Krebbel - - * config/s390/s390.c (s390_frame_info): Added alignment statement for - floating point register area on stack. - -2004-09-20 Jakub Jelinek - - * predict.c (expr_expected_value): Use *_CLASS_P macros. - -2004-09-20 Daniel Berlin - - * tree-ssa-pre.c (compute_antic_aux): Use malloc'd worklist, to avoid - generating useless garbage. - -2004-09-20 Paolo Bonzini - - * builtins.c (fold_builtin): Call the new omonymous - target hook for machine-dependent built-ins. - * target-def.h (TARGET_FOLD_BUILTIN): New. - * target.h (struct gcc_target): Add the fold_builtin hook. - * targhooks.c (default_fold_builtin): New. - * targhooks.h (default_fold_builtin): Declare it. - -2004-09-20 Kazu Hirata - - * cfg.c, tree-ssa-threadupdate.c, tree-vectorizer.c: Fix - comment typos. - -2004-09-20 Richard Sandiford - - PR target/17565 - * config/mips/mips.md (define_asm_attributes): Set can_delay to no. - -2004-09-20 Jan Hubicka - - * predict.c (estimate_probability): Remove unnecesary code. - -2004-09-19 Ira Rosen - - * tree-vectorizer.h (stmt_vec_info): Add vect_dr_base field. - (STMT_VINFO_VECT_DR_BASE): Declare. - (VECT_SMODULO): Declare. - * tree-vectorizer.c (vect_compute_array_ref_alignment): New function. - (vect_compute_array_base_alignment): New function. - (vect_analyze_data_ref_access): Check array indices. Remove one - dimensional arrays restriction. - (vect_get_ptr_offset): New function. - (vect_get_symbl_and_dr): New function. - (vect_get_base_and_bit_offset): Support additional data refs. Renamed - (former name vect_get_base_decl_and_bit_offset). - (vect_create_index_for_array_ref): Removed. - (vect_create_index_for_vector_ref): New function. - (vect_create_addr_base_for_vector_ref): New function. - (vect_create_data_ref): Handle additional data refs. Call - vect_create_index_for_vector_ref and vect_create_addr_base_for_vector_ref. - (vect_compute_data_ref_alignment): Support the changes. Call - vect_get_base_and_bit_offset. - (vect_analyze_data_refs): Call vect_get_symbl_and_dr. Support additional - data refs. Store vect_dr_base. - (vect_analyze_data_ref_accesses): Support nonconstant init. - (new_stmt_vec_info): Initialize vect_dr_base field. - (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num. - (get_vectype_for_scalar_type): Check for BLKmode. - * tree-chrec.h (initial_condition_in_loop_num): Declare. - * tree-chrec.c (initial_condition_in_loop_num): New function. - (chrec_component_in_loop_num): New function. - (evolution_part_in_loop_num): Call chrec_component_in_loop_num. - * tree-data-ref.c (analyze_array_indexes): Change parameter (access_fns) - to be pointer to varray_type. - -2004-09-19 Jan Hubicka - - * basic-block.h (update_bb_profile_after_threading): Declare. - * cfg.c (update_bb_profile_after_threading): Break out from ... - * cfgcleanup.c (try_forward_edges): ... here; use it. - * tree-ssa-dom.c (thread_across_edge): Use it. - * tree-ssa-threadupdate.c (create_block_for_threading): Zero out - profile of the new BB. - -2004-09-19 Daniel Berlin - - * tree-ssa-pre.c (insert_into_set): Don't put - is_gimple_min_invariant values into the set. - -2004-09-19 Andreas Jaeger - - * tree-ssa-dom.c (restore_nonzero_vars_to_original_value): Fix - prototype. - -2004-09-18 Kazu Hirata - - * config/cris/cris.h: Preserve the original spelling in a - quote. - -2004-09-18 Jeff Law - - * tree-ssa-dom.c (nonzero_vars_stack, vrp_variables_stack): New - global varrays to replace the block local varrays. - (struct dom_walk_block_data): Remove, no longer used. - (get_eq_expr_value): No longer need to pass around pointers to local - varrays. Callers updated. Unused markers added to unused parameters. - (record_range, record_equivalences_from_stmt): Likewise. - (record_equivalences_from_incoming_edge): Likewise. - (record_var_is_nonzero): Likewise. Update now that we have a - single global varray of SSA_NAMEs that need restoring. - (dom_opt_initialize_block_local_data): Kill, no longer used. - (tree_ssa_dominator_optimize): Initialize new global varrays. - Update callbacks in dominator walker structure. - (dom_opt_initialize_block): Add markers to NONZERO_VAR_STACK and - VRP_VARIABLES_STACK. - (restore_nonzero_vars_to_original_value): Update now that we have - a single global varray of SSA_NAMEs that need restoring. - (dom_opt_finalize_block): Similarly for VRP_VARIABLES_STACK. - Remove unused variables. - (optimize_stmt): Remove unused variable. - -2004-09-18 Jan Hubicka - - * tree-cfg.c (thread_jumps): Fix updating of the profile. - - * tree-optimize.c (tree_rest_of_compilation): Kill forgotten - verify_cgraph call. - -2004-09-18 Kazu Hirata - - * alias.c, crtstuff.c, dbxout.c, domwalk.c, domwalk.h, gcc.c, - gcse.c, global.c, lambda-code.c, loop.c, mips-tdump.c, - optabs.h, predict.c, reg-stack.c, regclass.c, sched-rgn.c, - tree-optimize.c, tree-ssa-dom.c, tree-ssa-forwprop.c, - tree-ssa-operands.c, tree-ssa-phiopt.c, - tree-ssa-threadupdate.c: Fix comment typos. - -2004-09-18 Kazu Hirata - - * config/darwin-c.c, config/arc/arc.c, config/arc/arc.md, - config/arm/README-interworking, config/arm/arm-cores.def, - config/arm/arm.c, config/arm/arm.h, config/arm/pe.c, - config/arm/vfp.md, config/c4x/c4x.c, config/c4x/c4x.h, - config/cris/cris.c, config/cris/cris.h, config/fr30/fr30.c, - config/fr30/fr30.h, config/fr30/fr30.md, config/frv/frv.c, - config/frv/frv.md, config/i386/winnt.c, - config/ia64/unwind-ia64.c, config/iq2000/iq2000.c, - config/iq2000/iq2000.h, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.md, config/m68k/m68k.c, - config/mcore/mcore.c, config/mips/mips.h, - config/mn10300/mn10300.md, config/pa/pa.c, - config/pa/pa64-regs.h, config/pdp11/pdp11.c, - config/rs6000/rs6000.c, config/sh/symbian.c, - config/sparc/sparc.h: Fix comment typos. Follow spelling - conventions. - -2004-09-18 Joseph S. Myers - - PR c/17424 - * c-typeck.c (c_expr_sizeof_expr): Check for error_mark_node. - -2004-09-18 Diego Novillo - - * tree-ssa-alias.c (setup_pointers_and_addressables): Don't - remove TREE_ADDRESSABLE from RESULT_DECL. - -2004-09-18 Diego Novillo - - * tree-ssa-alias.c (dump_alias_info): Ignore NULL SSA_NAMEs. - -2004-09-18 Jan Hubicka - - * tree-into-ssa.c (rewrite_ssa_into_ssa): Expect ssa_name to return - NULL. - * tree-ssa-alias.c (init_alias_info): Likewise. - * tree-ssa.c (verify_flow_sensitive_alias_info): Likewise. - (verify_ssa): Likewise. - * tree-ssanames.c (make_ssa_name): Clear out ssa_names arrays. - -2004-09-18 Jan Hubicka - - * i386.c (legitimize_pic_address): Fix splitting of PLUS with - huge offset. - -2004-09-18 Kaz Kojima - - * config/sh/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): Remove. - * config/sh/sh.h (ASM_PREFERRED_EH_DATA_FORMAT): Use - DW_EH_PE_sdata* for data. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. - -2004-09-17 Geoffrey Keating - - * tree-inline.c (copy_tree_r): Don't duplicate constants, they're - shared anyway. - - 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_code_size): Clean up assertions, don't allow requests - for "the size of a STRING_CST". - * 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-09-17 Zack Weinberg - - * Makefile.in (c-parse.o): Depend on $(C_PRAGMA_H). - * objc/Make-lang.in (objc/objc-parse.o): Likewise. - -2004-09-17 Jones Desougi - - * configure.ac: Replace AC_COMPILE_CHECK_SIZEOF with AC_CHECK_SIZEOF. - * configure, config.in: Regenerate. - -2004-09-17 Zack Weinberg - - * tree.c, tree.h (tree_class_strings): Make array const. - Reindent per coding convention. Move asterisk to proper place - per coding convention. - -2004-09-18 Andreas Schwab - - * Makefile.in (gimple-low.o): Depend on $(EXPR_H). - (tree-vectorizer.o): Likewise. - (targhooks.o): Likewise. - -2004-09-17 Jeffrey D. Oldham - Zack Weinberg - - * alias.c (find_base_decl): Remove unreachable case '3' block. - * expr.c (safe_from_p): Abort if passed a type. - * tree-gimple.c (recalculate_side_effects): Abort if passed - anything other than an expression. - * tree-ssa-pre.c (phi_translate): Return expr immediately if - is_gimple_min_invariant is true for it. Reorder cases for clarity. - Abort on un-handled tree classes. - (valid_in_set): Likewise. - * tree.c (tree_code_class_strings): New static data. - - * tree.h (enum tree_code_class): New. - (tree_code_class_strings): Declare. - (TREE_CODE_CLASS_STRING, EXCEPTIONAL_CLASS_P, CONSTANT_CLASS_P) - (REFERENCE_CLASS_P, COMPARISON_CLASS_P, UNARY_CLASS_P, BINARY_CLASS_P) - (STATEMENT_CLASS_P, EXPRESSION_CLASS_P, IS_TYPE_OR_DECL_P): New macros. - (TYPE_P, DECL_P, IS_NON_TYPE_CODE_CLASS, IS_EXPR_CODE_CLASS) - (checking macros, EXPR_LOCATION, SET_EXPR_LOCATION, EXPR_LOCUS): Update. - - * tree.def, c-common.def, objc/objc-tree.def: Use - tree_code_class enumeration constants instead of code letters. - - * alias.c, builtins.c, c-common.c, c-format.c, c-lang.c, c-pragma.c - * c-typeck.c, cgraphunit.c, convert.c, dbxout.c, dwarf2out.c - * emit-rtl.c expr.c, fold-const.c, gimplify.c, lambda-code.c - * langhooks.c, langhooks.h, predict.c, print-tree.c, reload1.c, stmt.c - * tree-browser.c, tree-cfg.c, tree-chrec.c, tree-complex.c, tree-dfa.c - * tree-dump.c, tree-eh.c, tree-gimple.c, tree-inline.c, tree-nested.c - * tree-outof-ssa.c, tree-pretty-print.c, tree-sra.c, tree-ssa-ccp.c - * tree-ssa-dce.c, tree-ssa-dom.c, tree-ssa-forwprop.c, tree-ssa-live.c - * tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c - * tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-propagate.c - * tree-ssa.c, tree-ssanames.c, tree-tailcall.c, tree.c, varasm.c - * config/sol2-c.c, config/arm/arm.c, config/i386/winnt.c - * config/pa/pa.c, config/pa/pa.h, config/sh/sh.c, objc/objc-lang.c - Update to match. - - * LANGUAGES: Add note about change. - -2004-09-17 Diego Novillo - - PR tree-optimization/17319 - * tree-ssa-alias.c (compute_points_to_and_addr_escape): Also - examine pointers on the LHS of an assignment. - (collect_points_to_info_r): Handle RETURN_EXPR. - -2004-09-17 Jeff Law - - * tree-ssa-dom.c (const_and_copies_stack): New. - (dom_walk_block_data): Remove const_and_copies field. - (record_const_or_copy): No longer need to pass in varray_type *. - Use CONST_AND_COPIES_STACK rather than passed in block local stack. - Callers updated. - (record_equality): Similarly. - (restore_vars_to_original_value): Similarly. Revamp to use new - single global stack rather than per-block stacks. - (tree_ssa_dominator_optimize): Initialize the CONST_AND_COPIES_STACK. - (thread_across_edge): Remove now unused parameters. - (dom_opt_initialize_block_local_data): No longer test the block - local CONST_AND_COPIES. - (dom_opt_initialize_block): Push a marker on CONST_AND_COPIES_STACK. - -2004-09-17 Jan Hubicka - - PR tree-optimization/17509 - * tree-optimize.c (update_inlined_to_pointers): New function. - (tree_rest_of_compilation): Use it. - -2004-09-17 Devang Patel - - * dbxout.c (get_lang_number): New. - (dbxout_init): Include lang number in N_SO stab. - * dbxout.h (N_SO_AS, N_SO_C, N_SO_ANSI_C, N_SO_CC, N_SO_FORTRAN, - N_SO_PASCAL, N_SO_FORTRAN90, N_SO_OBJC, N_SO_OBJCPLUS): New #define. - -2004-09-17 Diego Novillo - - PR tree-optimization/17273 - * tree-ssa.c (replace_immediate_uses): Call fold_stmt if the - replacement is a constant. - -2004-09-17 Joseph S. Myers - - * c-tree.h (enum c_typespec_keyword): New. - (struct c_declspecs): Adjust description of "type". Remove - specbits, explicit_int_p and explicit_char_p. Rename - typedef_signed_p to explicit_signed_p. Add default_int_p, long_p, - short_p, signed_p, unsigned_p and complex_p. - (finish_declspecs): New. - * c-parse.in (datadef, datadecl, setspecs, decl, component_decl, - typename): Call finish_declspecs. - * c-decl.c (finish_declspecs): New. - (declspecs_add_type): Check for combinations which cannot occur in - valid specifier lists. Update comments. - (shadow_tag_warned): Remove checks done in finish_declspecs. - Don't report useless type name if type defaulted to int. - (grokdeclarator): Remove checks and actions done in - finish_declspecs. Don't allow for type being NULL. Update for - datastructures changes. Initialize decl_attr. - (build_null_declspecs, quals_from_declspecs): Update for - datastructures changes. - -2004-09-17 Sylvain Pion - - * doc/extend.texi: Fix duplicated word. - -2004-09-17 Toon Moene - - * doc/invoke.texi: Remove stray explanation on - -freduce-all-givs and -fmove-all-movables. - -2004-09-17 James Morrison - - * doc/cfg.texi: Use @smallexample. - * doc/md.texi: Likewise. - * doc/tree-ssa.texi: Likewise. - * doc/extend.texi: Likewise. Use @r{} in comments. - * doc/trouble.texi: Use @r{} in comments. - -2004-09-17 Hans-Peter Nilsson - - * configure.ac (gcc_cv_gld_version): Handle whitespace before - "VERSION=". - * aclocal.m4 (_gcc_COMPUTE_GAS_VERSION): Ditto. - * configure: Regenerate. - -2004-09-17 J"orn Rennecke - - * sh.c (sh_gimplify_va_arg_expr): Don't call pass_by_reference. - (sh_pass_by_reference): Work around std_gimplify_va_arg_expr bug. - * t-sh (MULTILIB_CPUS): s/ML_m/ML_sh/g . - * t-sh64 (MULTILIB_CPU_DIRS): Likewise. Match dashes and trailing - slashes in substitutions. - (MULTILIB_DIRNAMES): Remove defunct removal of /media32. - -2004-09-17 Kazu Hirata - - * basic-block.h, c-decl.c, c-parse.in, cgraphunit.c, ddg.c, - gimplify.c, lambda-code.c, optabs.c, predict.c, - tree-scalar-evolution.c, tree-sra.c, tree-ssa-loop-ch.c, - tree-ssa.c, vec.h: Fix comment typos. Follow spelling - conventions. - -2004-09-17 Kazu Hirata - - * doc/compat.texi, doc/cpp.texi, doc/cppopts.texi, - doc/extend.texi, doc/install.texi, doc/invoke.texi, - doc/sourcebuild.texi, doc/tm.texi, doc/tree-ssa.texi, - doc/trouble.texi: Use @option around options. - -2004-09-17 Richard Sandiford - - * Makefile.in (gen-protos.o): Depend on errors.h. - -2004-09-17 Steven Bosscher - - PR tree-optimization/17513 - * cfgexpand.c (construct_init_block): Clear EDGE_EXECUTABLE - for successors of the entry block. - -2004-09-17 Uros Bizjak - - PR rtl-optimization/15187 - * ifcvt.c (noce_try_cmove_arith): Exit early if total - insn_rtx_cost of both branches > BRANCH_COST - -2004-09-16 Diego Novillo - - PR tree-optimization/17528 - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Do not - erase the may-alias set for a tag when merging it with - another. - -2004-09-16 Kaz Kojima - - * config/sh/sh.md (call): Extend 32-bit addresses to DImode - for 32-bit TARGET_SHMEDIA. - (call_value): Likewise. - -2004-09-16 Diego Novillo - - * tree-ssa-operands.c (add_call_clobber_ops): Make read-only - test apply only to TREE_STATIC and DECL_EXTERNAL. - -2004-09-16 Zdenek Dvorak - - * Makefile.in (tree-cfg.o): Add CFGLAYOUT_H dependency. - * basic-block.h (get_dominated_by_region): Declare. - * dominance.c (get_dominated_by_region): New function. - * tree-cfg.c: Include cfglayout.h. - (tree_duplicate_bb): Duplicate also phi nodes. - (struct ssa_name_map_entry): New type. - (add_phi_args_after_copy_bb, add_phi_args_after_copy, - ssa_name_map_entry_hash, ssa_name_map_entry_eq, - allocate_ssa_names, rewrite_to_new_ssa_names_def, - rewrite_to_new_ssa_names_use, rewrite_to_new_ssa_names_bb, - rewrite_to_new_ssa_names, tree_duplicate_sese_region): New functions. - * tree-flow.h (tree_duplicate_sese_region, add_phi_args_after_copy_bb, - add_phi_args_after_copy, rewrite_to_new_ssa_names_bb, - rewrite_to_new_ssa_names, allocate_ssa_names, - rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): Declare. - * tree-ssa-loop-ch.c (duplicate_blocks): Removed. - (copy_loop_headers): Use tree_duplicate_sese_region. - -2004-09-16 Frank Ch. Eigler - - * profile.c (branch_prob): Restore support for USE_MAPPED_LOCATION. - -2004-09-16 Jeff Law - - * tree-into-ssa.c (block_defs_stack): New toplevel varray. - (rewrite_block_data): Remove, no longer used. - (rewrite_initialize_block_local_data): Remove, no longer used. - (rewrite_initialize_block): Mark parameters as unused as needed. - Change references to the block local block_defs to be block_defs_stack. - Push a marker onto the block_defs_stack. - (ssa_rewrite_initialize_block): Similarly. - (rewrite_stmt, ssa_rewrite_stmt): Similarly. - (ssa_register_new_def): No longer needs varray argument. Use - block_defs_stack instead. No longer handle possibly null block_defs - varray. Reverse order of items we push on the stack to make it - easier to identify our marker. - (register_new_def): No longer handle possibly null block_defs - varray. - (rewrite_finalize_block): Revamp to look for markers in the global - block_defs_stack varray rather than wiping a block local varray. - Mark arguments as unused as needed. - (ssa_rewrite_finalize_block): Similarly. - (rewrite_into_ssa): Update initialization of dom walker structure - to reflect that we don't need block local data anymore. Initialize - the block_defs_stack varray. - (rewrite_ssa_into_ssa): Similarly. - * tree-ssa-dom.c (block_defs_stack): New toplevel varray. - (struct dom_walk_data): Kill block_defs field. - (tree_ssa_dominator_optimize): Initialize block_defs_stack. - (thread_across_edge): Use the global block_defs_stack instead of - the old block_defs varray. - (dom_opt_initialize_block_local_data): Update now that we don't have - block_defs field to check anymore. - (dom_opt_initialize_block): Push a marker onto block_defs_stack. - (restore_currdefs_to_original_value): Use the new block_defs_stack - instead of a block local varray. - (dom_opt_finalize_block): Similarly. - (record_equivalencs_from_phis): Similarly. - (optimize_stmt, register_definitions_for_stmt): Similarly. - -2004-09-16 Andrew MacLeod - - PR tree-optimization/17517 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't - coalesce same-root variables without checking for abnormal PHI usage. - -2004-09-16 Daniel Berlin - - * cfgloop.h (duplicate_loop): Add prototype. - * cfgloopmanip.c (duplicate_loop): Make non-static. - * lambda-code.c (perfect_nestify): Factor out test whether - we can handle this loop into separate function. - Call it. - (can_convert_to_perfect_nest): New function. - (replace_uses_of_x_with_y): Add modify_stmt call. - * tree-loop-linear.c (linear_transform_loops): Call - rewrite_into_loop_closed_ssa and free_df. - -2004-09-16 Daniel Berlin - - * lambda-code.c (invariant_in_loop): is_gimple_min_invariant is - loop invariant as well. - (perfect_nestify): new function. - (gcc_loop_to_lambda_loop): New parameters to track lower bounds, - upper bounds, and steps. - Set outerinductionvar properly. - (gcc_loopnest_to_lambda_loopnest): Add loops and need_perfect - parameters. - Return NULL if we need a perfect loop and can't make one. - (lambda_loopnest_to_gcc_loopnest): Correct algorithm. - (not_interesting_stmt): New function. - (phi_loop_edge_uses_def): Ditto. - (stmt_uses_phi_result): Ditto. - (stmt_is_bumper_for_loop): Ditto. - (perfect_nest_p): Ditto. - (nestify_update_pending_stmts): Ditto. - (replace_uses_of_x_with_y): Ditto. - (stmt_uses_op): Ditto. - (perfect_nestify): Ditto. - * lambda-mat.c (lambda_matrix_id_p): New function. - * lambda-trans.c (lambda_trans_matrix_id_p): Ditto. - * lambda.h: Update prototypes. - * tree-loop-linear (linear_transform_loop): Use new - perfect_nest_p. Detect and ignore identity transform. - * tree-ssa-loop.c (pass_linear_transform): Use TODO_write_loop_closed. - -2004-09-16 Sebastian Pop - - * tree-loop-linear.c (gather_interchange_stats): Add more comments. - Gather also strides of accessed data. Pass in the data references - array. - (try_interchange_loops): Add a new heuristic for handling the temporal - locality. Pass in the data references array. - (linear_transform_loops): Pass the data references array to - try_interchange_loops. - -2004-09-16 Kazu Hirata - - * doc/invoke.texi: Fix typos. Follow spelling conventions. - -2004-09-16 Nathan Sidwell - - * doc/c-tree.texi (Classes): Remove index entries for - TREE_VIA_{PUBLIC,PROTECTED,PRIVATE}. - -2004-09-16 Zdenek Dvorak - - * fold-const.c (fold): Fold difference of addresses. - (ptr_difference_const): Moved from tree-ssa-loop-ivopts, based on - get_inner_reference. - * tree-ssa-loop-ivopts.c (peel_address): Removed. - (ptr_difference_const): Moved to fold-const.c. - (split_address_cost): Use get_inner_reference instead of peel_address. - (ptr_difference_cost): Change type of diff to HOST_WIDE_INT. - * tree.h (ptr_difference_const): Export. - - * tree-ssa-loop-ivopts.c (dump_iv, dump_use, dump_cand): Add induction - variable type to the dump. Fix indentation. - (idx_find_step): Handle nonconstant array_ref_element_size and - array_ref_low_bound. - (idx_record_use): Handle array_ref_element_size and - array_ref_low_bound. - (find_interesting_uses_stmt): Handle memory = nontrivial_expression - statements correctly. - (get_computation_at, iv_value): Do not unshare expressions here. - (rewrite_use_outer): Unshare the expression before it is emitted - to code. - * tree-ssa-loop-niter.c (unsigned_type_for, signed_type_for): - Moved to tree.c. - * tree.c (unsigned_type_for, signed_type_for): Moved from - tree-ssa-loop-niter.c. Use langhooks. - * tree.h (signed_type_for): Export. - -2004-09-16 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): Update - prototype. - -2004-09-15 Andrew Pinski - - PR target/11572 - * c-incpath.h (target_c_incpath_s): Add extra_pre_includes. - Add two parameters to extra_includes. - (C_INCPATH_INIT): Remove. - * c-incpath.c (register_include_chains): Call extra_pre_includes - before adding the standard include directory. - Update call to extra_includes. - (!defined TARGET_EXTRA_INCLUDES): Update - hook_void_charptr_charptr_int and add !define - TARGET_EXTRA_PRE_INCLUDES. - (!define TARGET_EXTRA_INCLUDES): Define as - hook_void_charptr_charptr_int. - (!define TARGET_EXTRA_PRE_INCLUDES): Likewise. - (target_c_incpath): Always declare. - * fixinclude.c (defined TARGET_EXTRA_INCLUDES): Declare a - empty function. - (define TARGET_EXTRA_PRE_INCLUDES): Likewise. - * config/darwin.h: (darwin_register_frameworks): Update for - the two new parameters. - (darwin_register_objc_includes): Add prototype. - (TARGET_EXTRA_PRE_INCLUDES): Define. - * config/darwin-c.c (darwin_register_objc_includes): New function. - (darwin_register_frameworks): Update for the two new parameters. - (target_c_incpath): Remove. - * config/t-darwin (darwin-c.o): Add $(PREPROCESSOR_DEFINES) to - the compile line. - * doc/tm.texi (TARGET_EXTRA_INCLUDES): Document the two new - parameters. - (TARGET_EXTRA_PRE_INCLUDES): Document. - - * gcc.c (spec_function): Add replace-outfile. - (replace_outfile_spec_function): New function. - * config/darwin.h (LINK_SPEC): Add replace - -lobjc with -lobjc-gnu if -fgnu-runtime is - supplied. - * invoke.texi (replace-outfile): Document. - -2004-09-13 Jan Hubicka - - * predict.c (expr_expected_value, strip_builtin_expect): New function. - (tree_predict_by_opcode): Use it. - (tree_estimate_probability): Add, for now disabled, - strip_builtin_expect call. - -2004-09-15 James E Wilson - - PR target/17455 - * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Return false - if current_function_decl is a sibcall. - -2004-09-15 Mark Mitchell - - * varasm.c (default_function_rdodata_section): Make sure to pass - along a decl for a link-once section. - -2004-09-15 Richard Henderson - - * tree-ssa-operands.c (add_call_clobber_ops): Fix unused variable - warning with code disable. Fix formatting. - -2004-09-15 Steven Bosscher - - * Makefile.in (tree-ssa-dom.o): Depend on tree-ssa-propagate.h. - * tree-ssa-dom.c (cprop_into_stmt): Recompute TREE_INVARIANT - after propagating into an ADDR_EXPR. - -2004-09-15 Andrew Pinski - - PR rtl-opt/17427 - * gcse.c (process_insert_insn): insn_invalid_p has side effects. - Move it out of gcc_assert. - -2004-09-15 Joseph S. Myers - - * attribs.c, builtins.c, c-format.c, c-pch.c, coverage.c, - except.c, fold-const.c, function.c, langhooks.c, params.c, - reload.c, reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c, - tree-dump.c, tree-mudflap.c, tree.c, varasm.c: Use %<, %> and %q - for quoting in diagnostics going through pretty-print.c. Use '' - for quoting in other diagnostic text. - * langhooks.c: Include intl.h. Mark text locating diagnostics for - translation. - * Makefile.in (langhooks.o): Update dependencies. - * pretty-print.h (pp_printf): Mark as accepting GCC diagnostic - formats. - -2004-09-15 Mark Mitchell - - * configure.ac: Check for COMDAT support. Robustify check for - SHF_MERGE support. - * configure: Regenerated. - * config.in: Likewise. - * langhooks-def.h (lhd_comdat_group): New function. - (LANG_HOOKS_COMDAT_GROUP): New macro. - (LANG_HOOKS_DECLS): Use it. - * langhooks.c (lhd_comdat_group): Define. - * langhooks.h (lang_hooks_for_decls): Add comdat_group. - * output.h (named_section_flags): Make it a macro. - (named_section_real): New function. - (default_no_named_section): Add decl parameter. - (default_elf_asm_named_section): Likewise. - (default_coff_asm_named_section): Likewise. - (default_pe_asm_named_section): Likewise. - * target.h (gcc_target): Adjust type of named_section. - * varasm.c (named_section_flags): Rename to named_section_real. - Add decl parameter. - (default_no_named_section): Add decl parameter. - (default_elf_asm_named_section): Use COMDAT, if available. Deal - with the case that ASM_COMMENT_START is "@". - (default_coff_asm_named_section): Add decl parameter. - (default_pe_asm_named_section): Likewise. - * config/alpha/alpha.c (vms_asm_named_section): Add decl - parameter. - (unicosmk_asm_named_section): Likewise. - * config/arm/arm.c (arm_elf_asm_named_section): Remove. - * config/arm/elf.h (TARGET_ASM_NAMED_SECTION): Likewise. - * config/c4x/c4x.c (c4x_asm_named_section): Add decl parameter. - * config/cris/cris-protos.h (cris_target_asm_named_section): - Likewise. - * config/cris/cris.c (cris_target_asm_named_section): - Likewise. - * config/darwin/darwin-protos.h (darwin_asm_named_section): - Likewise. - * config/darwin/darwin.c (darwin_asm_named_section): Likewise. - * config/h8300/h8300.c (h8300_asm_named_section): Likewise. - * config/i386/i386-protos.h (i386_pe_asm_named_section): - Likewise. - * config/i386/winnt.c (i386_pe_asm_named_section): Likewise. - * config/m68k/m68k.c (m68k_coff_asm_named_section): Likewise. - * config/mcore/mcore.c (mcore_asm_named_section): Likewise. - * config/rs6000/rs6000.c (rs6000_xcoff_asm_named_section): - Likewise. - * config/sparc/sparc.c (sparce_elf_asm_named_section): Likewise. - * cp/cp-lang.h (LANG_HOOKS_COMDAT_GROUP): Define. - * cp/cp-tree.h (cxx_comdat_group): Declare. - * cp/decl.c (cxx_comdat_group): New function. - -2004-09-15 Jan Hubicka - - * tree-ssa.c (verify_flow_sensitive_alias_info): Do not walk dead nodes. - * tree-tailcall.c (eliminate_tail_call): Release SSA name. - - * tree-cfg.c (remove_bb): Release SSA defs. - -2004-09-15 Kazu Hirata - - * doc/tm.texi: Follow spelling conventions. - -2004-09-15 Kazu Hirata - - * tree-ssa-dom.c: Fix comment typos. - -2004-09-15 Alan Modra - - * config/rs6000/linux-unwind.h (struct gcc_pt_regs): Extend to - include ccr. - (ppc_fallback_frame_state): Save location of CR. - -2004-09-15 Jakub Jelinek - - * expr.c (string_constant): Handle also read-only variables - initialized to string literals. - - * builtins.c (expand_builtin_memmove): Optimize memmove (x, y, 1) - into memcpy (x, y, 1) if memcpy can be expanded inline. - -2004-09-15 Zdenek Dvorak - - PR tree-optimization/17468 - * tree-ssa.c (verify_use, verify_phi_args, verify_ssa): Verify that - definition inside a block precede uses. - * tree-tailcall.c (adjust_return_value): Emit statements in the - correct order. - -2004-09-15 Richard Sandiford - - * config/mips/mips.h (POINTERS_EXTEND_UNSIGNED): Delete. - -2004-09-15 Eric Botcazou - - * doc/install.texi (sparc-sun-solaris2*): Properly format warning. - -2004-09-14 Jeff Law - - * tree-ssa-dom.c (avail_exprs_stack): New global varray. - (struct dom_walk_block_data): Remove avail_exprs member. - (tree_ssa_dominator_optimize): Initialize avail_exprs_stack. - (lookup_avail_expr): No longer need to pass in address of - the block local available exprs stack. All callers changed. - (simplify_cond_and_lookup_avail_expr): Similarly. - (simplify_switch_and_lookup_avail_expr): Similarly. - (get_eq_expr_value, record_cond): Likewise. - (record_dominating_conditions): Likewise. - (update_rhs_and_lookup_avail_expr): Likewise. - (record_equivalences_from_stmt): Likewise. - (dom_opt_initialize_block_local_data): No longer test state of - block local avail_exprs. - (dom_opt_initialize_block): Mark unwind point in the global - avail_expr stack. - (remove_expressions_from_table): Update to unwind to the - most recent unwind marker in the global avail_expr stack. - All callers changed. - (dom_opt_finalize_block): Mark unwind point in the global - avail_expr stack as needed. - (record_cond): Push elements into the global avail_exprs stack. - - * tree-dfa.c (free_df_for_stmt): No longer static. - (free_df): Update comments. - * tree-flow.h (free_df_for_stmt): Prototype. - * tree-ssa-dse.c (dse_optimize_stmt): Call free_df_for_stmt. Also - call release_defs. - -2004-09-14 Diego Novillo - - PR tree-optimization/17252 - * tree-ssa-alias.c (may_alias_p): Don't assume that a - pointer may not point to itself when using relaxed - aliasing rules. - -2004-09-14 Richard Henderson - - PR middle-end/17397 - * gimplify.c (gimplify_addr_expr): Don't inadvertently change types - while folding >. - -2004-09-14 Andrew Pinski - - * tree-ssa-copy.c (may_propagate_copy): Don't check the aliasing - sets of the pointers but the aliasing sets of what they point to. - -2004-09-14 Roger Sayle - - PR rtl-optimization/9771 - * regclass.c (CALL_REALLY_USED_REGNO_P): New macro to eliminate - conditional compilation in init_reg_sets_1. - (init_reg_sets_1): Let global_regs[i] take priority over the frame - (but not stack) pointer exceptions to regs_invalidated_by_call. - (globalize_reg): Globalizing a fixed register may need to update - regs_invalidated_by_call. - -2004-09-14 Diego Novillo - - PR tree-optimization/15262 - * tree-dfa.c (dump_variable): Also print the type of the - variable. - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If two - memory tags are of conflicting alias sets but have no aliased - symbols in common, add one tag to the alias set of the other. - (setup_pointers_and_addressables): Remove hack to deal with - programs with no aliased symbols. - (may_alias_p): Don't special case aggregate types. - -2004-09-14 Joseph S. Myers - - PR c/15498 - * doc/invoke.texi (Environment Variables): Correct example locale. - -2004-09-14 Jan Hubicka - - * cfg.c (expunge_block): Revert previous change adding ggc_free call. - -2004-09-14 Mark Mitchell - - * config.gcc: Do not build a shared libgcc for arm-none-eabi. - -2004-09-14 Joseph S. Myers - - * c-tree.h (struct c_declspecs): Add const_p, volatile_p and - restrict_p. - (struct c_declarator): Change u.array.quals and pointer_quals to - int. Add u.array.attrs. - (quals_from_declspecs): New. - * c-decl.c (quals_from_declspecs): New. - (shadow_tag_warned): Give more specific message for useless type - qualifiers. - (build_array_declarator, set_array_declarator_inner, - grokdeclarator, make_pointer_declarator, build_null_declspecs, - declspecs_add_qual): Update for changed structures. - -2004-09-14 Jeff Law - - * tree-ssa-dom.c (stmts_to_rescan): Move from a block-local - to a global varray. - (tree_ssa_dominator_optimize): Allocate stmts_to_rescan. - (dom_opt_initialize_block_local_data): No longer test state - of stmts_to_rescan. - (dom_opt_finalize_block): Update due to change in scope of - stmts_to_rescan. - (optimize_stmt): Similarly. - -2004-09-14 Kazu Hirata - - * cgraph.h, cgraphunit.c, fold-const.c, lambda-mat.c, - lambda.h, profile.c, tree-optimize.c, tree-sra.c, vec.h: Fix - comment typos. Follow spelling conventions. - -2004-09-14 Kazu Hirata - - * config/darwin-c.c, config/alpha/alpha.c, config/i386/i386.c, - config/i386/predicates.md, config/sparc/sparc.c: Follow - spelling conventions. - -2004-09-14 Zdenek Dvorak - Steven Bosscher - - * Makefile.in (loop-unroll.o): Add HASHTAB_H and RECOG_H dependency. - * basic-block.h (struct reorder_block_def): Add copy_number field. - * cfgloop.h (biv_p): Declare. - * cfgloopmanip.c (duplicate_loop_to_header_edge): Set copy_number. - * common.opt (fsplit-ivs-in-unroller): New flag. - * loop-iv.c (biv_p): New function. - * loop-unroll.c: Include hashtab.h and recog.h. - (struct iv_to_split, struct split_ivs_info): New types. - (analyze_ivs_to_split, si_info_start_duplication, split_ivs_in_copies, - free_si_info, si_info_hash, si_info_eq, analyze_iv_to_split_insn, - determine_split_iv_delta, get_ivts_expr, allocate_basic_variable, - insert_base_initialization, split_iv): New functions. - (peel_loop_completely, unroll_loop_constant_iterations, - unroll_loop_runtime_iterations, peel_loop_simple, unroll_loop_stupid): - Use them. - * doc/invoke.texi (-fsplit-ivs-in-unroller): Document. - -2004-09-14 Zdenek Dvorak - - * tree-cfg.c (thread_jumps): Update dominators correctly in - case destination of threaded edge dominates its source. - -2004-09-14 Zdenek Dvorak - - * unroll.c: Removed. - * loop.h: Removed. - * Makefile.in (LOOP_H, unroll.o): Removed. - (toplev.o, passes.o, stmt.o, integrate.o, loop.o): Remove LOOP_H - dependency. - * alias.c (init_alias_analysis): Remove flag_old_unroll_loops - reference. - * cfgloop.h (LOOP_PREFETCH, loop_optimize): Moved from loop.h. - * common.opt (fold-unroll-loops, fold-unroll-all-loops): Removed. - * loop.c: Do not include loop.h. - (LOOP_INFO, LOOP_MOVABLES, LOOP_REGS, LOOP_IVS, INSN_LUID, - REGNO_FIRST_LUID, REGNO_LAST_LUID, enum g_types, struct induction, - struct iv_class, enum iv_mode, struct iv, REG_IV_TYPE, REG_IV_INFO, - REG_IV_CLASS, struct loop_ivs, struct loop_mem_info, struct loop_reg, - struct loop_regs, struct loop_movables, struct loop_info): Moved - from loop.h. - (back_branch_in_range_p, fold_rtx_mult_add, biv_total_increment, - reg_dead_after_loop, final_biv_value, loop_find_equiv_value, - find_common_reg_term, loop_iterations, final_giv_value): Moved - from unroll.c. - (uid_luid, uid_loop, max_uid_for_loop, max_reg_before_loop, - loop_dump_stream, for_each_insn_in_loop, express_from, - extend_value_for_giv, loop_iv_add_mult_emit_before, - loop_iv_add_mult_sink, loop_iv_add_mult_hoist, - loop_insn_first_p, get_condition_for_loop, - loop_insn_emit_before, loop_insn_hoist, - loop_insn_sink): Made static. - (loop_invariant_p): Made static. Removed flag_old_unroll_loops - reference. - (strength_reduce): Do not call unroller. - (record_giv): Do not initialize unrolled field. - (prescan_loop): Do not set loop_info->preconditioned. - * passes.c: Do not include loop.h. - (rest_of_handle_loop_optimize): Do not call unroller. - * predict.c: Do not include loop.h. - * rtl.h (NOTE_PRECONDITIONED): Removed. - * stmt.c: Do not include loop.h. - * toplev.c: Do not include loop.h. - (process_options): Do not handle flag_old_unroll_loops. - - * doc/invoke.texi (fold-unroll-loops, fold-unroll-all-loops): - Documentation removed. - * doc/passes.texi (unroll.c, loop.h): Documentation removed. - -2004-09-14 Nathan Sidwell - - * Makefile.in (STAGE1_CHECKING): New variable. - (stage1_build): Use it. - * tree-ssa.c (verify_ssa): Preserve state of dominance - information. - -2004-09-14 Uros Bizjak - - * config/i386/i386.c (output_fp_compare): Add generation - of ftst instruction. - * config/i386/i386.md (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): - Use output_fp_compare () function. - (cmpfp_i, *cmpfp_i_sse, *cmpfp_i_sse_only): Fix insn constraint. - (fix_truncdi_memory): Remove operands[5] copy. - -2004-09-14 Kazu Hirata - - * config/m32r/m32r.md, config/m68k/m68kelf.h, - config/mcore/mcore.md, config/rs6000/linux64.h, - config/rs6000/rs6000.c, config/sparc/sparc.c: Fix comment - typos. - -2004-09-13 James E Wilson - - * Makefile.in (GEN_PROTOS_OBJS): Add $(BUILD_ERRORS). - * gen-protos.c: Include errors.h. - (progname): Delete. - -2004-09-14 Jan Hubicka - - * Makefile.in (predict.o): Depend on tree-scalar-evolution.h - * predict.c: Include tree-scalar-evolution.h and cfgloop.h - (predict_loops): Use number_of_iterations_exit to predict - number of iterations on trees. - -2004-09-13 Dale Johannesen - - PR 17408 - PR 17409 - * c-decl.c (start_decl): Repair TREE_STATIC for initialized - objects declared extern. - -2004-09-14 Paul Brook - - * config/arm/arm.c (arm_expand_prologue): Make args_to_push a - HOST_WIDE_INT. - -2004-09-13 Daniel Jacobowitz - - * fold-const.c (fold_checksum_tree): Ignore TYPE_CACHED_VALUES. - Only use TYPE_BINFO for aggregates. - -2004-09-13 Daniel Jacobowitz - - * expmed.c (synth_mult): Initialize latency. Check cost before - checking ops count. - -2004-09-13 Kenneth Zadeck - - * tree-ssa-operands.c (get_call_expr_operands): Added parm to - add_call_clobber_ops and add_call_read_ops. - (add_call_clobber_ops, add_call_read_ops): Added code to reduce - the number of vdefs and vuses inserted based on analysis of global - variables across calls. * tree-dfa.c (find_referenced_vars): - Needed to reset static var maps before each function is compiled. - * cgraphunit.c: - (static_vars_to_consider_by_tree,static_vars_to_consider_by_uid, - static_vars_info,functions_to_static_vars_info,module_statics_escape, - all_module_statics,searchc_env,dfs_info): New fields to support - analysis of static global variables. - (print_order, convert_UIDs_in_bitmap, new_static_vars_info, - cgraph_reset_static_var_maps, get_global_static_vars_info, - get_global_statics_not_read, get_global_statics_not_written, - searchc, cgraph_reduced_inorder, has_proper_scope_for_analysis, - check_rhs_var, check_lhs_var, get_asm_expr_operands, - process_call_for_static_vars, scan_for_static_refs, - cgraph_characterize_statics_local, cgraph_get_static_name_by_uid, - clear_static_vars_maps, cgraph_propagate_bits, - cgraph_characterize_statics): New. Functions to support analysis - of static global variables. - (cgraph_mark_local_and_external_functions): Renamed from: - (cgraph_mark_local_functions) - (cgraph_expand_all_functions): Remove call to - cgraph_mark_local_and_external_functions. - (cgraph_optimize): Added driver to analyze static variables whose - scope is within the compilation unit. * cgraph.h (struct - cgraph_local_info, GTY): Added statics_read, statics_written, - local, calls_read_all, calls_write_all, for_functions_valid. - (struct cgraph_node): Added next_cycle. * cgraph.c - (dump_cgraph_node): Added print routines for new fields. * - makefile.in: macroized cgraph.h, added cgraphunit.c to the ggc - list. - -2004-09-13 Joseph S. Myers - - * c-decl.c (grokdeclarator): Correct comments about where storage - class specifiers are rejected by grammar and add corresponding - asserts. Diagnose typedefs and parameters declared inline. - Change warning for inline main to a pedwarn. Only diagnose inline - main if hosted. - (declspecs_add_scspec): Allow duplicate "inline". - -2004-09-13 Steve Ellcey - - * config/ia64/ia64.c (ia64_scalar_mode_supported_p): New. - (TARGET_SCALAR_MODE_SUPPORTED_P): New. - -2004-09-13 Richard Henderson - - PR 17436 - * tree.h (TYPE_CONTAINS_PLACEHOLDER_INTERNAL): New. - (tree_type): Replace spare with contains_placeholder_bits. - (type_contains_placeholder_1): Rename from type_contains_placeholder_p, - make static. Remove seen_types list. - (type_contains_placeholder_p): New. - -2004-09-13 James E Wilson - - * config/mips/mips.c (CODE_FOR_mips_sqrt_ps): New. - (sb1_bdesc, bdesc_map, bdesc_arrays): New. - (mips_expand_builtin): Add SB-1 support. Use bdesc_map and - bdesc_arrays instead of mips_bdesc. - (mips_init_builtins): Likewise. - * config/mips/mips.h (TARGET_SB1): New. - (HAVE_SQRT_P): Delete. - * config/mips/mips.md (divide_condition): Support V2SF. - (sqrt_condition, recip_condition): New. - (div3): Use ANYF instead of SCALARF. - (*div3): Use ANYF instead of SCALARF. Use UNITMODE instead of - MODE. - (*recip3, *rsqrta, *rsqrtb): Use recip_condition - instead of ISA_HAS_FP4. Use ANYF instead of SCALARF. Use UNITMODE - instead of MODE. - (sqrt2): Use sqrt_condition instead of HAVE_SQRT_P. Use ANYF - instead of SCALARF. Use UNITMODE instead of MODE. - -2004-09-13 Zack Weinberg - - * config.in: Regenerate after removal of libbanshee. - -2004-09-13 Andrew MacLeod - - PR tree-optimization/17400 - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Don't - coalesce partitions when one occurs in an abnormal PHI. - -2004-09-13 Andrew Pinski - - * config/rs6000/darwin.h (ASM_OUTPUT_COMMON): Change variable size's - name to _new_size. - -2004-09-13 Richard Henderson - - PR inline-asm/6806 - * cselib.c (cselib_invalidate_rtx): Export. Remove unused args. - (cselib_invalidate_rtx_note_stores): New. - (cselib_record_sets, cselib_process_insn): Update to match. - * cselib.h (cselib_invalidate_rtx): Declare. - * postreload.c (reload_cse_simplify): Invalidate asm clobbers. - -2004-09-13 Richard Henderson - - PR tree-opt/10528 - * tree-inline.c (copy_body_r): Recompute bits for ADDR_EXPR, - after copying its argument. - -2004-09-13 Joseph S. Myers - - * c-common.c, c-decl.c, c-lex.c, c-objc-common.c, c-opts.c, - c-parse.in, c-pragma.c, c-typeck.c: Use %q, %< and %> for quoting - in diagnostics. Use %' for English apostrophes. - * c-tree.h (ATTRIBUTE_GCC_CDIAG): Define. - (pedwarn_c90, pedwarn_c99): Use it. - * c-decl.c (lookup_label): Quote label name in diagnostic. - * c-parse.in (yyprint): Use ' instead of ` for left quote. - * c-typeck.c (warn_for_assignment): Likewise. - -2004-09-13 Jan Hubicka - - * i386.c (x86_schedule): New global variable. - (override_options): Disable scheduling when not supported. - * i386.h (x86_schedule): Declare. - (TARGET_SCHEDULE): New macro. - -2004-09-12 Richard Henderson - - PR c++/16254 - * fold-const.c (fold) : Remove. - * tree.c, tree.h (has_cleanups): Remove. - -2004-09-12 Zdenek Dvorak - - * tree-ssa-loop-manip.c (split_loop_exit_edge): Handle non-ssaname - arguments of the phi nodes correctly. - -2004-09-12 Jan Hubicka - - * ggc-common.c (cmp_statistics): Fix sorting. - -2004-09-12 David Edelsohn - - PR target/16795 - * expmed.c (expand_divmod): If cheap power of 2 divide is - available, use it for negative constant as well. - -2004-09-12 Andrew Pinski - - * darwin.h (ASM_OUTPUT_COMMON): Make sure we do not have a - size of 0. - - * tree-chrec.c (initialize_scalar_evolutions_analyzer): Remove. - -2004-09-12 Richard Henderson - - * config/i386/i386.c (ix86_split_ashldi): Special case op1 as one - or minus one. - (ix86_split_ashrdi, ix86_split_lshrdi): Clean up conditions for - post-reload, and scratch NULL. - * config/i386/i386.md (testqi_1): Use FLAGS_REG name. - (x86_shift_adj_2): Use ix86_expand_clear. - (ashldi3): Remove CMOVE expansion difference. - (ashldi3_1): Remove. - (*ashldi3_1): Rename from *ashldi3_2. Use reg_or_pm1_operand and - add constraints for immediates. New peephole for split-with-temp. - Run splitter after peep2 pass. - (ashrdi3, ashrdi3_1, ashrdi3_2): Similarly. - (lshrdi3, lshrdi3_1, lshrdi3_2): Similarly. - (setcc_2): Rename with *. - * config/i386/predicates.md (reg_or_pm1_operand): New. - (ashldi_input_operand): New. - -2004-09-12 Richard Henderson - - * common.opt: Remove flags -fmove-all-movables and - -freduce-all-givs. - * loop-invariant.c (find_invariants_to_move): - Remove all uses of flag_move_all_movables. - * loop.c (move_movables): Remove all uses of - flag_move_all_movables. - (strength_reduce): Remove all uses of - flag_reduce_all_givs. - * doc/invoke.texi: Remove documentation of flags - -fremove-all-movables and -freduce-all-givs. - -2004-09-11 Roger Sayle - - PR middle-end/17411 - * tree-sra.c (generate_element_zero): Revert recent build_int_cst - change. elt->type may be a floating point type, so use fold_convert. - -2004-09-11 Geoffrey Keating - - * config/darwin.c (machopic_validate_stub_or_non_lazy_ptr): Mark - the thing referenced as used, not the stub itself. - -2004-09-11 Joseph S. Myers - - * c-tree.h (enum c_storage_class): New. - (struct c_declspecs): Add storage_class, inline_p and thread_p. - * c-decl.c (shadow_tag_warned): Give errors for "inline" in empty - declarations and "auto" or "register" in file scope empty - declarations. Give more specific warnings for other cases of - storage class specifiers in empty declarations. - (grokdeclarator): Update for new structures. Don't check for - multiple storage classes. Diagnose file-scope "register" if - pedantic. - (build_null_declspecs): Update. - (declspecs_add_scspec): Update. Diagnose multiple storage class - specifiers and invalid uses of "__thread". - -2004-09-11 Zack Weinberg - - * tree.c (tree_code_size): New function, bulk of code from tree_size. - (tree_size, make_node): Use it. - * tree-ssa-pre.c (init_pre): Use it. - * tree.h: Prototype it. - -2004-09-11 Zdenek Dvorak - - * tree-cfg.c (set_bb_for_stmt): Use PHI_BB. - * tree-dfa.c (compute_immediate_uses, add_immediate_use, - redirect_immediate_use): Use PHI_DF. - * tree-flow-inline.h (stmt_ann): Abort on phi nodes. - (bb_for_stmt): Use PHI_BB. - (get_immediate_uses): Use PHI_DF. - * tree-ssa-dse.c (max_stmt_uid): New variable. - (get_stmt_uid): New function. - (dse_optimize_stmt, dse_record_phis, tree_ssa_dse): Do not use phi - node annotations. - * tree-ssa-loop-im.c (LIM_DATA): Do not use phi statement annotations. - (max_uid): Renamed to max_stmt_uid. - (get_stmt_uid): New function. - (maybe_queue_var, single_reachable_address, determine_lsm): Do not use - phi node annotations. - * tree-ssa.c (replace_immediate_uses): Do not use phi node annotations. - * tree.h (PHI_BB, PHI_DF): New accessor functions. - (struct tree_phi_node): Add bb and df fields. - -2004-09-11 Richard Henderson - - PR middle-end/17416 - * cfgexpand.c (expand_used_vars_for_block): Fix off-by-one bug - in conflict loop. - -2004-09-11 Jan Hubicka - - * i386.h (MODE_NEEDED): Calls need UNINITIALIZED mode; add comment. - (EMIT_MODE_SET): UNINITIALIZED mode needs no set. - * i386.md (i387_cw): Add 'uninitialized' mode. - - * profile.c (BB_TO_GCOV_INDEX): move more to the front. - (output_location): Break out from .... - (branch_prob): ... here; handle gcov output on trees. - * toplev.c (process_options): No longer be sorry about coverage for - trees. - -2004-09-11 Steven Bosscher - - PR c++/17412 - * fold-const.c (fold): Do not try to fold the operand of a - CLEANUP_POINT_EXPR if that operand does itself not have any - operands. - - PR middle-end/17417 - * langhooks.c (lhd_decl_printable_name): Make sure that this - function is called with is a decl node that has an identifier. - * tree-pretty-print.c (dump_function_name): New function to - wrap PRINT_FUNCTION_NAME and dump_decl_name. - (print_call_name): Use it. - -2004-09-11 Mohan Embar - - * ggc-none.c: Include "bconfig.h" if -DGENERATOR_FILE, - "config.h" if not. - -2004-09-11 Jakub Jelinek - - * tree-ssa-alias.c (collect_points_to_info_r): Handle - pointing to PTR + OFFSET as PTR, not as pointing to PTR or pointing - to OFFSET. - -2004-09-11 Richard Henderson - - * expr.c (expand_expr_addr_expr_1) Rename from expand_expr_addr_expr. - (expand_expr_addr_expr): New function. Take ADDR_EXPR instead of the - operand of the ADDR_EXPR. - (expand_expr_real_1): Update to match. - -2004-09-11 David Edelsohn - - PR target/17277 - * config/rs6000/aix.h (MD_FROB_UPDATE_CONTEXT): Use __64BIT__ to - choose 64-bit version. - -2004-09-11 Richard Henderson - - PR c/17396 - * c-typeck.c (build_unary_op): Add legacy offsetof hack. - -2004-09-11 Kazu Hirata - - * doc/cfg.texi, doc/hostconfig.texi, doc/install.texi, - doc/invoke.texi, doc/md.texi, doc/tm.texi, doc/tree-ssa.texi: - Insert @: after i.e. or e.g. - -2004-09-10 Geoffrey Keating - - * tree-pretty-print.c (dump_decl_name): Print unnamed decls as - D.xxx rather than . - -2004-09-10 Adam Nemet - - * configure.ac (AC_MSG_CHECKING(what linker to use)): - in_tree_ld_is_elf should be true for LynxOS. - * configure: Regenerate. - -2004-09-10 Adam Nemet - - * Makefile.in (all.cross): Add srcextra. - -2004-09-10 Roger Sayle - - PR middle-end/17024 - * fold-const.c (fold_cond_expr_with_comparison): Handle unordered - floating point comparison operators. Change aborts to gcc_asserts. - -2004-09-10 Geoffrey Keating - - * final.c (output_asm_insn): Correct problem with -fverbose-asm. - -2004-09-10 James E Wilson - - * Makefile.in (LIBGCC_DEPS): Delete duplicate stmp-int-hdrs reference. - (stmp-fixproto): Change stmp-int-headers to stmp-int-hdrs in comment. - - * convert.c (convert_to_vector): Replace recursive call with - error_mark_node. - - * emit-rtl.c (gen_const_vector): Renamed from gen_const_vector_0. - Add integer argument named constant. Use const_tiny_rtx instead of - CONST0_RTX. - (gen_rtx_CONST_VECTOR): Rewrite to handle checks for both CONST0_RTX - and CONST1_RTX. - (init_emit_once): Fix users of gen_const_vector. Set CONST1_RTX for - vector types. - * expr.c (const_vector_from_tree): Call gen_rtx_CONST_VECTOR instead - of gen_rtx_raw_CONST_VECTOR. - -2004-09-10 Eric Christopher - - PR c/16046 - * c-parse.in (attribute): Add NULL_TREE for error case - for error recovery. - -2004-09-10 Zack Weinberg - - * c-common.h (struct c_fileinfo): Comment moved here from cp-tree.h. - (extract_interface_info): Delete prototype. - * c-decl.c (extract_interface_info): Delete stub. - * c-lex.c (get_fileinfo): Initialize file_info_tree here, if - it's not already been done ... - (init_c_lex): ... not here. - (fe_file_change): Don't call extract_interface_info. - -2004-09-11 Joseph S. Myers - - * c-tree.h (struct c_declspecs): Remove typedef_decl. Add - typedef_p and typedef_signed_p. - * c-decl.c (shadow_tag_warned): Check typedef_p, not typedef_decl. - (grokdeclarator): Don't use typedef_decl for warn_deprecated_use. - Check typedef_p and typedef_signed_p, not typedef_decl. - (grokfield): Check typedef_p, not typedef_decl. - (build_null_declspecs): Initialize typedef_p and typedef_signed_p, - not typedef_decl. - (declspecs_add_type): Set typedef_p and typedef_signed_p, not - typedef_decl. - -2004-09-10 Kazu Hirata - - * doc/tm.texi, doc/tree-ssa.texi: Fix typos. - -2004-09-10 Geoffrey Keating - - * gimplify.c (create_tmp_var_raw): Don't name otherwise-nameless - temporary variables. - - * dbxout.c (dbxout_block): Update for - current_function_func_begin_label a string. - * dwarf2out.c (dwarf2out_begin_prologue): Likewise. - * except.c (dw2_output_call_site_table): Likewise. - * toplev.c (current_function_func_begin_label): Likewise. - * tree.h (current_function_func_begin_label): Likewise. - * config/rs6000/linux64.h (DBX_OUTPUT_BRAC): Likewise. - - * final.c (output_asm_insn): Use strtoul instead of atoi, save a - loop. - - * config/darwin.c: Include target.h. - (struct machopic_indirection): Make ptr_name a string. - (machopic_indirection_hash): Update for ptr_name a string. - (machopic_indirection_eq): Likewise. - (machopic_indirection_name): Likewise. - (machopic_output_indirection): Likewise. - (machopic_validate_stub_or_non_lazy_ptr): Update for ptr_name a - string. Don't expect stub names to be in the identifier hash table. - Do call strip_name_encoding before looking up entry in ID hash table. - * config/t-darwin (darwin.o): Add target.h to dependencies. - - * gcc/config/rs6000/rs6000.c (print_operand): Use fputs instead - of fprintf for register names. - - * output.h (unlikely_section_label): Delete declaration. - (unlikely_text_section_name): Likewise. - * varasm.c (unlikely_section_label_printed): Make static. - (unlikely_section_label): Likewise. - (unlikely_text_section_name): Likewise. - (assemble_start_function): Use reconcat. - - * rtl.def (REG): Add comment to describe third field. - -2004-09-10 Andrew Pinski - - * config/darwin.c (machopic_mcount_stub_name): Call - machopic_indirection_name instead of making the string - ourselves. - -2004-09-10 Diego Novillo - - Revert - - 2004-09-08 Jie Zhang - - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type - memory tag is call clobbered, so are its aliases. - (group_aliases): When two memory tags being grouped, if one is - call clobbered, so are the other and its aliases. - (add_may_alias): Remove call-clobbering stuff. - (replace_may_alias): Likewise. - (merge_pointed_to_info): Merge pt_global_mem - -2004-09-10 Kazu Hirata - - * bb-reorder.c, c-common.c, c-incpath.c, c-typeck.c, - genrecog.c, lambda-code.c, mips-tdump.c, mips-tfile.c, - passes.c, tree-data-ref.c, tree-data-ref.h, tree-mudflap.c, - tree-scalar-evolution.c, tree-ssa-copyrename.c, - tree-ssa-live.c, tree-ssa-live.h: Fix comment typos. - -2004-09-10 Richard Sandiford - - * config/frv/frv.md (UNSPEC_MASACCS, UNSPEC_MDASACCS): New constants. - (maddaccs, msubaccs, *maddacc): Turn operand 0 into a single ACC/ACCG - pair. Remove match_dup from inputs. Remove masaccs handling. - (mdaddaccs, mdsubaccs, *mdaddacc): Likewise a dual ACC/ACCG pair. - (masaccs, mdasaccs): Turn into define_insns. - -2004-09-10 Richard Sandiford - - * tree-tailcall.c (process_assignment): Only do accumulator transforms - for floating-point types if flag_unsafe_math_optimizations. - -2004-09-10 Kazu Hirata - - * config/darwin.c, config/alpha/alpha.h, config/arm/arm.c, - config/arm/arm.h, config/arm/arm.md, config/arm/bpabi.h, - config/arm/predicates.md, config/frv/frv.c, config/frv/frv.md, - config/h8300/h8300.md, config/i386/gmm_malloc.h, - config/ia64/ia64.md, config/ip2k/libgcc.S, - config/mips/mips-ps-3d.md, config/mips/mips.c, - config/rs6000/rs6000.c, config/s390/s390.c, - config/sh/symbian.c: Fix comment typos. - -2004-09-10 Andreas Krebbel - - * config/s390/s390.c (s390_emit_prologue): Added missing - "{}" brackets. - -2004-09-10 Kazu Hirata - - * doc/extend.texi, doc/invoke.texi, doc/passes.texi: Fix - typos. Follow spelling conventions. - -2004-09-10 Joseph S. Myers - - * toplev.c (warn_deprecated_use): Correct logic for saying "type" - in diagnostic. Don't dereference NULL TYPE_NAME. - -2004-09-10 Kazu Hirata - - * c-common.c, c-pch.c, defaults.h, lambda-code.c, passes.c, - tree-data-ref.c, tree-flow.h, tree-ssa-operands.c, - tree-ssa-threadupdate.c, tree-vectorizer.c, tree-vectorizer.h, - value-prof.c: Fix comment typos. Follow spelling conventions. - -2004-09-10 Jan Hubicka - - * tree-ssa-dce.c (remove_dead_stmt): Update profile. - * tree-split_edge.c (tree_split_edge): Likewise. - (thread_jumps): Likewise. - -2004-09-10 Kazu Hirata - - * cgraphunit.c, predict.c, tree-ssa-loop-ivopts.c: Fix comment - typos. - -2004-09-10 Paolo Bonzini - - * cgraph.h (cgraph_dump_file): Do not declare. - * cgraphunit.c (cgraph_dump_file): Declare as static. - (init_cgraph): New. - * toplev.c (cgraph_dump_file): Do not declare. - (compile_file): Call init_cgraph. - * tree-dump.c (dump_files): Add IPA dump file, remove - XML dump of call graph. - (get_dump_file_name): Support IPA dump file naming scheme. - * tree.h (enum tree_dump_index): Add IPA dump file, remove - XML dump of call graph. - * doc/invoke.texi (Debugging Options): Document the new options. - -2004-09-10 Richard Sandiford - - * doc/extend.texi: Document the FR-V built-in functions. - -2004-09-09 James E Wilson - - * doc/sourcebuild.texi: Delete libbanshee reference. - -2004-09-10 Kelley Cook - - * Makefile.in (s-gtype): Add $(build_exeext) to gengtype command. - -2004-09-09 James E Wilson - - * c-typeck.c (convert_for_assignment): Check that rhs has VECTOR_TYPE - before calling vector_types_convertible_p. - (digest_init): Check that inside_init has VECTOR_TYPE before calling - vector_types_convertible_p. Don't give another error if - convert_for_assignment returns error_mark_node. - -2004-09-09 Roger Sayle - - PR middle-end/17055 - * fold-const.c (build_zero_vector): New function to construct a - vector (either floating point or integer) of zeros. - (fold_convert): Internally, enable conversions of integer zero - to arbitrary vector types, using the new build_zero_vector. - -2004-09-09 Roger Sayle - - * config/i386/i386.c (ix86_expand_ashlsi3_const): New function to - expand a left shift by an immediate constant as either an ashl or - a sequence of additions. - (ix86_split_ashldi): Use new ix86_expand_ashlsi3_const function - instead of calling gen_ashlsi3 with a constant directly. - -2004-09-09 Roger Sayle - - * config/i386/i386.c (ix86_split_long_move): When optimizing for - size, and the low and high parts of a DImode constant are equal, - copy one register to another instead of loading the same immediate - value twice. - -2004-09-09 Richard Henderson - - PR middle-end/17367 - * function.c (assign_parm_setup_block): Only put PARALLELs into - a register if use_register_for_decl. - -2004-09-09 Eric Christopher - - * ra-colorize.c (reset_lists): Move variable declaration inside - ENABLE_CHECKING to avoid unused variable warnings when - not --enable-checking. - (check_colors): Ditto. - -2004-09-09 Mike Stump - - * version.c (version_string): Bump to 4.0.0. - * doc/include/gcc-common.texi (version-GCC): Likewise. - -2004-09-10 Jakub Jelinek - - * doc/extend.texi (nothrow attribute): The attribute is not - implemented in 3.2 and earlier. - -2004-09-09 Steve Ellcey - - * genrecog.c (compute_predicate_codes): Use op0_codes - instead of codes. - -2004-09-09 Ulrich Weigand - - * ra-colorize.c (hardregset_to_string): Adapt to HARD_REG_SET - implementation changes. - -2004-09-09 Ulrich Weigand - - * combine.c (try_combine): When swapping i2 and i3, newi2pat may be - a PARALLEL instead of a SET due to added clobbers. - -2004-09-09 Ulrich Weigand - - * reload.c (find_reloads_address): Pass correct operand to - maybe_memory_address_p. - -2004-09-09 Daniel Berlin - - * Makefile.in: Remove libbanshee, tree-alias-*. - Remove tree-alias-common.h dependencies. - * common.opt: Remove -ftree-points-to. - * configure.ac: Remove libbanshee. - * flags.h: Remove pta_type, flag_tree_points_to. - * gengtype.c (open_base_files): Remove tree-alias-type.h. - * opts.c (OPT_ftree_points_to): Remove. - * toplev.c: Remove tree-alias-common.h, flag_tree_points_to. - * tree-dfa.c: Remove tree-alias-common.h - * tree-into-ssa.c: Ditto. - * tree-outof-ssa.c: Ditto. - * tree-ssa-copyrename.c: Ditto. - * tree-ssa-live.c: Ditto. - * tree-optimize.c: Ditto. - * tree-ssa.c: Ditto. - Remove pass_build_pta, pass_del_pta. - * tree-pass.h: Ditto. - * tree-ssa-alias.c: Remove tree-alias-common.h. - (struct alias_stats_d): Remove pta_queries, pta_resolved. - (pass_may_alias): Remove PROP_pta requirement. - (may_alias_p): Remove pta_queries, pta_resolved, use of andersens. - (get_tmt_for): Ditto. - (dump_alias_stats): Ditto. - * doc/passes.texi: Remove blurb about points-to analysis. - * fortran/Make-lang.in: Remove tree-alias-*.o. - -2004-09-09 Richard Sandiford - - * genattrtab.c (write_insn_cases): New function, split out from - write_attr_case. Correctly handle define_peepholes when printing - the instruction name. - (write_attr_case, write_const_num_delay_slots): Use write_insn_cases. - -2004-09-09 Hans-Peter Nilsson - - PR target/17377 - * config/cris/cris-protos.h (cris_return_address_on_stack): Declare. - * config/cris/cris.c (cris_return_address_on_stack): New function. - * config/cris/cris.md ("return"): For location of return address, - also check cris_return_address_on_stack. - -2004-09-09 Diego Novillo - - * tree-outof-ssa.c (coalesce_abnormal_edges): Fix typo in - calling phi_ssa_name_p. - -2004-09-09 Richard Henderson - - PR c/17322 - * c-typeck.c (valid_compound_expr_initializer): Use only - initializer_constant_valid_p, and not TREE_CONSTANT. - (digest_init): Likewise. - (output_init_element): Likewise. - -2004-09-09 Giovanni Bajo - - * ra-build.c (copy_insn_p, remember_move, defuse_overlap_p_1, - live_out_1, prune_hardregs_for_mode, init_one_web_common, - reinit_one_web, add_subweb, add_subweb_2, init_web_parts, - record_conflict, compare_and_free_webs, init_webs_defs_uses, - parts_to_webs_1, parts_to_webs, reset_conflicts, - check_conflict_numbers, remember_web_was_spilled, handle_asm_insn, - ra_build_free): Use gcc_assert and gcc_unreachable instead of abort. - * ra-colorize.c (push_list, put_web, reset_lists, put_web_at_end, - put_move, remove_move, combine, select_spill, colorize_one_web, - try_recolor_web, insert_coalesced_conflicts, check_colors, - break_precolored_alias, restore_conflicts_from_coalesce, - sort_and_combine_web_pairs, check_uncoalesced_moves): Likewise. - * ra-rewrite.c (spill_coalescing, slots_overlap_p, emit_loads, - reloads_to_loads, rewrite_program2, emit_colors): Likewise. - * ra.c (first_hard_reg, create_insn_info, find_subweb, init_ra, - check_df): Likewise. - * real.c (do_add, do_multiply, do_divide, do_compare, do_fix_trunc, - real_arithmetic, real_compare, real_exponent, real_ldexp, - real_identical, real_to_integer, real_to_integer2, real_to_decimal, - real_to_hexadecimal, real_from_integer, ten_to_ptwo, ten_to_mptwo, - real_digit, real_nan, real_maxval, round_for_format, real_convert, - real_to_target, real_from_target, real_hash, 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): Likewise. - * recog.c (validate_change, validate_replace_rtx_1, asm_operand_ok, - extract_insn, peep2_next_insn, peep2_reg_dead_p, - peep2_find_free_register, peephole2_optimize, store_data_bypass_p, - if_test_bypass_p): Likewise. - * reg-stack.c (record_label_references, get_asm_operand_n_inputs, - stack_result, remove_regno_note, get_hard_regnum, emit_pop_insn, - emit_swap_insn, swap_to_top, move_for_stack_reg, - subst_stack_regs_pat, subst_asm_stack_regs, change_stack, - compensate_edge, convert_regs_1): Likewise. - * regclass.c (init_reg_sets, init_reg_sets_1, - memory_move_secondary_cost): Likewise. - * regrename.c (note_sets, clear_dead_regs, scan_rtx_reg, scan_rtx): - Likewise. - * reload.c (push_secondary_reload, find_valid_class, push_reload, - operands_match_p, decompose, immune_p, find_reloads, - find_reloads_toplev, find_reloads_address_1, subst_reloads, - copy_replacements, refers_to_regno_for_reload_p, - reg_overlap_mentioned_for_reload_p): Likewise. - * reload1.c (compute_use_by_pseudos, replace_pseudos_in, reload, - count_pseudo, find_reg, eliminate_regs, eliminate_regs_in_insn, - verify_initial_elim_offsets, finish_spills, clear_reload_reg_in_use, - reload_reg_free_p, reload_reg_reaches_end_p, reloads_conflict, - choose_reload_regs, merge_assigned_reloads, emit_input_reload_insns, - do_output_reload, fixup_abnormal_edges): Likewise. - * reorg.c (stop_search_p, emit_delay_sequence, get_jump_flags, - fill_slots_from_thread, relax_delay_slots): Likewise. - * resource.c (mark_referenced_resources, mark_set_resources): - Likewise. - * rtl.c (copy_rtx, rtx_equal_p): Likewise. - * rtlanal.c (insn_dependent_p, reg_overlap_mentioned_p, - dead_or_set_p, find_reg_fusage, remove_note, replace_rtx, - subreg_lsb_1, subreg_regno_offset, subreg_offset_representable_p, - find_first_parameter_load, can_hoist_insn_p, hoist_update_store, - hoist_insn_after, hoist_insn_to_edge, nonzero_bits1): Likewise. - * rtlhooks.c (gen_lowpart_general): Likewise. - * sbitmap.c (sbitmap_difference): Likewise. - * sched-deps.c (add_dependence, sched_analyze_1, sched_analyze_2, - sched_analyze, add_forward_dependence): Likewise. - * sched-ebb.c (fix_basic_block_boundaries, schedule_ebb): Likewise. - * sched-rgn.c (debug_regions, compute_trg_info, schedule_region, - schedule_insns): Likewise. - * sched-vis.c (print_pattern): Likewise. - * sdbout.c (sdbout_symbol, sdbout_toplevel_data): Likewise. - * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, - simplify_const_relational_operation, simplify_ternary_operation, - simplify_immed_subreg, simplify_subreg, simplify_gen_subreg): - Likewise. - * sreal.c (copy, sreal_sub, sreal_div): Likewise. - * stmt.c (force_label_rtx, expand_goto, expand_asm_operands, - resolve_operand_name_1, expand_return, expand_decl, - expand_anon_union_decl, emit_case_bit_tests, expand_case): Likewise. - * stor-layout.c (put_pending_size, smallest_mode_for_size, - int_mode_for_mode, layout_decl, finish_builtin_struct, layout_type, - set_sizetype, get_mode_bounds): Likewise. - -2004-09-09 Zack Weinberg - - * defaults.h (MULTIPLE_SYMBOL_SPACES): Provide default. - * config/arm/pecoff.h, config/i386/beos-elf.h - * config/i386/cygming.h, config/i386/i386-interix.h: - Define MULTIPLE_SYMBOL_SPACES to 1, not nothing. Remove - comment cloned from manual. - * doc/tm.texi: Update description of MULTIPLE_SYMBOL_SPACES. - -2004-09-09 Frank Ch. Eigler - - * builtins.c (build_va_arg_indirect_ref): New function. - (std_gimplify_va_arg_expr): Call it instead of mudflap check and - build_fold_indirect_ref. - * config/i386/i386.c (ix86_gimplify_va_arg): Ditto. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Ditto. - * tree.h: Declare new function. - -2004-09-09 Nathan Sidwell - - * cgraphunit.c (cgraph_mark_functions_to_output): Renable node - dumping for development builds. - * emit-rtl.c (verify_rtx_sharing): Give verbose failure for - development builds only. - * genattrtab.c (write_eligible_delay): Fix typo in previous - commit. - * tree.c (iterative_hash_expr): Replace gcc_unreachable with - gcc_assert. - -2004-09-09 Nathan Sidwell - - * gcse.c (INSN_CUID, insert_set_in_table, find_avail_set, - cprop_insn, do_local_cprop, local_cprop_pass, find_bypass_set, - process_insert_insn, insert_insn_end_bb, pre_insert_copy_insn, - hoist_code, extract_mentioned_regs_helper, compute_store_table, - insert_store): Use gcc_assert and gcc_unreachable. - * ggc-common.c (ggc_splay_alloc, ggc_splay_dont_free, - gt_pch_note_object, gt_pch_note_reorder, relocate_ptrs, - ggc_record_overhead): Likewise. - * ggc-page.c (alloc_page, free_page, ggc_set_mark, ggc_marked_p, - init_ggc, ggc_push_context, ggc_recalculate_in_use_p, - ggc_pop_context, clear_marks, validate_free_objects, - ggc_pch_read): Likewise. - * ggc-zone.c (ggc_allocated_p, free_chunk, ggc_set_mark, - ggc_marked_p, ggc_get_size, init_ggc, destroy_ggc_zone, - ggc_push_context, check_cookies, ggc_collect, - ggc_print_statistics): Likewise. - * gimple-low.c (lower_function_body, lower_stmt, - lower_bind_expr): Likewise. - * gimplify.c (gimple_tree_eq, push_gimplify_context, - pop_gimplify_context, gimple_pop_condition, create_tmp_var, - declare_tmp_vars, gimple_add_tmp_var, annotate_all_with_locus, - mostly_copy_tree_r, gimplify_return_expr, gimplify_switch_expr, - gimplify_case_label_expr, gimplify_exit_block_expr, - canonicalize_component_ref, gimplify_compound_lval, - gimplify_self_mod_expr, gimplify_call_expr, - gimplify_init_ctor_eval, gimplify_init_constructor, - gimplify_modify_expr, gimplify_save_expr, gimplify_target_expr, - gimplify_expr, check_pointer_types_r, - force_gimple_operand): Likewise. - * global.c (global_alloc, build_insn_chain): Likewise. - * graph.c (clean_graph_dump_file, - finish_graph_dump_file): Likewise. - gcov-io.c (gcov_open): Use GCOV_CHECK. - -2004-09-09 Richard Sandiford - - * config/frv/frv.c (acc_operand, accg_operand): Use REGNO. - -2004-09-09 Jan Hubicka - - middle-end/17128 - * tree-inline.c (expand_call_inline): Make overactive sanity check - happy. - -2004-09-09 Jan Hubicka - - * tree-ssa-loop-ivopts.c (peel_address): Fix abort on - VIEW_CONVERT_EXPR. - -2004-09-09 Nathan Sidwell - - * Makefile.in (gengtype): Use $(BUILD_ERRORS). - (gengtype.o): Depend on errors.h. - * genattrtab.c (strcmp_check): Use gcc_assert and gcc_unreachable. - (attr_rtx_1, attr_printf, attr_copy_rtx, evaluate_eq_attr, - attr_alt_subset_p, attr_alt_subset_of_compl_p, - attr_alt_intersection, attr_alt_union, optimize_attrs, gen_insn, - write_test_expr, write_attr_value, write_eligible_delay, - make_internal_attr, make_numeric_value): Likewise. - * genautomata.c (regexp_name, get_str_vect, - gen_presence_absence_set, automaton_decl_hash, - automaton_decl_eq_p, insn_decl_hash, insn_decl_eq_p, decl_hash, - decl_eq_p, process_regexp, loop_in_regexp, check_loops_in_regexps, - process_regexp_cycles, reserv_sets_cmp, set_unit_reserv, - test_unit_reserv, it_is_empty_reserv_sets, - reserv_sets_are_intersected, reserv_sets_shift, reserv_sets_or, - reserv_sets_and, output_cycle_reservs, get_free_state, - intersected_state_reservs_p, states_union, remove_arc, - copy_insn_regexp, transform_1, transform_2, transform_3, - regexp_transform_func, store_alt_unit_usage, - check_regexp_units_distribution, process_seq_for_forming_states, - process_alts_for_forming_states, make_automaton, - form_arcs_marked_by_insn, create_composed_state, - set_out_arc_insns_equiv_num, partition_equiv_class, - process_insn_equiv_class, set_insn_equiv_classes, - units_to_automata_heuristic_distr, form_regexp, - longest_path_length, output_dfa_max_issue_rate, add_vect, - out_state_arcs_num, add_vect_el, output_trans_table, - output_state_alts_table, output_dead_lock_vect, - output_max_insn_queue_index_def, - output_min_insn_conflict_delay_func, - output_internal_insn_latency_func, output_print_reservation_func, - output_cpu_unit_reservation_p, output_state_arcs, - make_insn_alts_attr, make_internal_dfa_insn_code_attr, - make_default_insn_latency_attr, - form_important_insn_automata_lists): Likewise. - * genemit.c (gen_exp, output_add_clobbers, - output_added_clobbers_hard_reg_p): Likewise. - * genextract.c (print_path, main): Likewise. - * genflags.c (gen_macro): Likewise. - * gengenrtl.c: Include errors.h - (type_from_format, accessor_from_format): Likewise. - * gengtype.c (get_file_basename, output_mangled_typename, - walk_type, write_types_process_field, - write_types_local_process_field): Likewise. - * genmodes.c (complete_mode): Likewise. - * genopinit.c (gen_insn): Likewise. - * genoutput.c (output_insn_data, check_constraint_len, - constraint_len): Likewise. - * genpreds.c (add_mode_tests):Likewise. - * gen-protos.c (add_hash): Likewise. - * genrecog.c (find_operand, find_matching_operand, - validate_pattern, add_to_sequence, maybe_both_true, - nodes_identical_1, merge_trees, write_switch, write_cond, - write_action, is_unconditional, make_insn_sequence, - debug_decision_2): Likewise. - * gensupport.c (is_predicable, collect_insn_data, - alter_predicate_for_insn, maybe_eval_c_test): Likewise. - -2004-09-09 Jan Hubicka - - * basic-block.h (guess_outgoing_edge_probabilities): Declare. - * cfgbuild.c (compute_outgoing_frequencies): When probability is - missing, guess it. - (find_many_sub_basic_blocks): Do update profile only when it is - present. - * predict.c (set_even_probabilities): Break out from ... - (combine_predictions_for_insn): ... here; deal with - !can_predict_insn_p insns. - (combine_predictions_for_bb): Use set_even_probabilities. - (bb_estimate_probability_locally): Break out from .... - (estimate_probability): ... here. - (guess_outgoing_edge_probabilities): New entry point. - -2004-09-09 Nathan Sidwell - - * gcc.c (add_sysrooted_prefix, execute, do_self_spec, do_spec_1, - handle_braces, process_brace_body, main, used_arg, - set_multilib_dir, print_multilib_info): Use fatal, not abort. - - * tree-nested.c (create_tmp_var_for): Correct missinverted assert. - - * tree-outof-ssa.c (free_temp_expr_table): Add missed assert. - * tree-ssa-ccp.c (set_lattice_value): Correct missapplied de - Morgan's theorem in last checkin. - -2004-09-09 Giovanni Bajo - Nathan Sidwell - - * targhooks.c (default_unwind_emit, default_scalar_mode_supported_p): - Use gcc_assert, gcc_unreachable & internal_error instead of abort. - * timevar.c (timevar_push, timevar_pop, timevar_start, - timevar_stop): Likewise. - * toplev.c (default_pch_valid_p): Likewise. - * tracer.c (tail_duplicate): Likewise. - * tree-alias-common.c (get_alias_var_decl, - get_values_from_constructor, create_alias_var, delete_alias_vars, - empty_points_to_set, same_points_to_set, ptr_may_alias_var): - Likewise. - * tree.c (tree_size, make_node_stat, copy_node_stat, - build_int_cst_wide, integer_all_onesp, list_length, chainon, - tree_node_structure, type_contains_placeholder_p, substitute_in_expr, - substitute_placeholder_in_expr, tabilize_reference_1, build0_stat, - build1_stat, build2_stat, build3_stat, build4_stat, is_attribute_p, - lookup_attribute, type_hash_canon, host_integerp, iterative_hash_expr, - build_method_type_directly, decl_type_context, get_callee_fndecl, - get_set_constructor_bits, build_vector_type_for_mode, int_cst_value, - tree_fold_gcd): Likewise. - * tree-cfg.c (create_bb, make_ctrl_stmt_edges, make_exit_edges, - make_cond_expr_edges, group_case_labels, tree_merge_blocks, - cleanup_control_expr_graph, find_taken_edge, - find_taken_edge_switch_expr, phi_alternatives_equal, - is_ctrl_altering_stmt, disband_implicit_edges, set_bb_for_stmt, - stmt_for_bsi, tree_find_edge_insert_loc, bsi_insert_on_edge_immediate, - tree_split_edge, tree_verify_flow_info, thread_jumps, - tree_redirect_edge_and_branch, tree_flow_call_edges_add): Likewise. - * tree-chrec.c (chrec_fold_poly_cst, chrec_fold_plus_poly_poly, - chrec_fold_multiply_poly_poly): Likewise. - * tree-complex.c (extract_component, expand_complex_division, - expand_complex_comparison, expand_complex_operations_1, - build_replicated_const, expand_vector_operations_1): Likewise. - * tree-data-ref.c (tree_fold_bezout, build_classic_dist_vector, - build_classic_dir_vector): Likewise. - * tree-dfa.c (compute_immediate_uses_for_phi, - compute_immediate_uses_for_stmt, create_var_ann, create_stmt_ann, - create_tree_ann, collect_dfa_stats, get_virtual_var): Likewise. - * tree-dump.c (dequeue_and_dump): Likewise. - * tree-eh.c (record_stmt_eh_region, add_stmt_to_eh_region, - record_in_finally_tree, replace_goto_queue_1, - maybe_record_in_goto_queue, verify_norecord_switch_expr, - do_return_redirection): Likewise. - * tree-if-conv.c (tree_if_convert_stmt, tree_if_convert_cond_expr, - add_to_dst_predicate_list, find_phi_replacement_condition, - replace_phi_with_cond_modify_expr, get_loop_body_in_if_conv_order): - Likewise. - * tree-inline.c (remap_decl, remap_type, remap_decls, copy_body_r, - initialize_inlined_parameters, declare_return_variable, - estimate_num_insns_1, expand_call_inline, expand_calls_inline, - optimize_inline_calls, copy_tree_r): Likewise. - * tree-into-ssa.c (rewrite_initialize_block_local_data, rewrite_stmt, - ssa_rewrite_stmt, rewrite_into_ssa): Likewise. - * tree-iterator.c (alloc_stmt_list, tsi_link_before, tsi_link_after, - tsi_split_statement_list_after, tsi_split_statement_list_before): - Likewise. - * tree-mudflap.c (mf_varname_tree): Likewise. - * tree-nested.c (create_tmp_var_for, lookup_field_for_decl, - lookup_tramp_for_decl, convert_all_function_calls): Likewise. - * tree-optimize.c (tree_rest_of_compilation): Likewise. - * tree-outof-ssa.c (create_temp, eliminate_build, eliminate_phi, - coalesce_abnormal_edges, coalesce_ssa_name, eliminate_virtual_phis, - free_temp_expr_table, add_dependance, finish_expr, rewrite_trees): - Likewise. - * tree-phinodes.c (resize_phi_node, add_phi_arg, - remove_all_phi_nodes_for): Likewise. - * tree-pretty-print.c (op_prio, print_call_name): Likewise. - * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler, - tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Likewise. - * tree-sra.c (type_can_instantiate_all_elements, sra_hash_tree, - sra_elt_eq, sra_walk_expr, instantiate_missing_elements, - generate_one_element_ref, generate_element_copy, - generate_element_zero, scalarize_copy, scalarize_init, - scalarize_ldst): Likewise. - * tree-ssa-alias.c (delete_alias_info, group_aliases, may_alias_p, - add_may_alias, add_pointed_to_expr, add_pointed_to_var, - collect_points_to_info_r, get_tmt_for, get_ptr_info): Likewise. - * tree-ssa.c (walk_use_def_chains, check_phi_redundancy): Likewise. - * tree-ssa-ccp.c (dump_lattice_value, get_default_value, get_value, - set_lattice_value, likely_value, ccp_visit_phi_node, visit_assignment, - widen_bitfield, ccp_fold_builtin): Likewise. - * tree-ssa-copy.c (may_propagate_copy, merge_alias_info, - replace_exp_1, propagate_tree_value): Likewise. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Likewise. - * tree-ssa-dce.c (set_control_dependence_map_bit, - find_control_dependence, find_pdom, mark_operand_necessary, - mark_stmt_if_obviously_necessary, - mark_control_dependent_edges_necessary, remove_dead_stmt): Likewise. - * tree-ssa-dom.c (dom_opt_initialize_block_local_data, - simplify_switch_and_lookup_avail_expr, cprop_into_successor_phis, - eliminate_redundant_computations, avail_expr_eq): Likewise. - * tree-ssa-dse.c (fix_stmt_v_may_defs): Likewise. - * tree-ssa-loop-ch.c (should_duplicate_loop_header_p, - duplicate_blocks): Likewise. - * tree-ssa-loop-im.c (for_each_index, set_level, - is_call_clobbered_ref): Likewise. - * tree-ssa-loop-ivopts.c (dump_use, divide, stmt_after_ip_normal_pos, - stmt_after_increment, set_iv, contains_abnormal_ssa_name_p, - find_interesting_uses_outer_or_nonlin, add_derived_ivs_candidates, - peel_address, ptr_difference_cost, may_replace_final_value, - determine_use_iv_cost, rewrite_use_nonlinear_expr, rewrite_use_outer, - rewrite_use, rewrite_uses): Likewise. - * tree-ssa-loop-manip.c (rewrite_into_loop_closed_ssa, - check_loop_closed_ssa_use): Likewise. - * tree-ssanames.c (make_ssa_name): Likewise. - * tree-ssa-operands.c (finalize_ssa_defs, finalize_ssa_uses, - finalize_ssa_v_must_defs, finalize_ssa_stmt_operands, - get_stmt_operands, get_expr_operands, get_asm_expr_operands, - get_indirect_ref_operands, add_stmt_operand): Likewise. - * tree-ssa-pre.c (value_exists_in_set_bitmap, - value_remove_from_set_bitmap, bitmap_insert_into_set, insert_into_set, - phi_translate, valid_in_set, compute_antic, - find_or_generate_expression, create_expression_by_pieces, insert_aux, - create_value_expr_from, eliminate): Likewise. - * tree-ssa-propagate.c (cfg_blocks_get): Likewise. - * tree-ssa-threadupdate.c (remove_last_stmt_and_useless_edges): - Likewise. - * tree-tailcall.c (independent_of_stmt_p, adjust_return_value, - eliminate_tail_call): Likewise. - * tree-vectorizer.c (vect_create_index_for_array_ref, - vect_align_data_ref, vect_create_data_ref, - vect_create_destination_var, vect_get_vec_def_for_operand, - vect_finish_stmt_generation, vect_transform_stmt, - vect_transform_loop_bound, vect_transform_loop, - vect_analyze_operations): Likewise. - * tree-vn.c (vn_compute, set_value_handle, get_value_handle): - Likewise. - * tree-flow-inline.h (var_ann, get_var_ann, get_def_from_ptr, - get_use_op_ptr, immediate_use, phi_ssa_name_p, bsi_start, - bsi_after_labels, bsi_last): Likewise. - * tree-ssa-live.c (var_union, change_partition_var, - create_ssa_var_map, calculate_live_on_entry, root_var_init, - type_var_init, add_coalesce, sort_coalesce_list, pop_best_coalesce): - Likewise. - * tree-ssa-live.h (partition_is_global, live_entry_blocks, - tpa_find_tree): Likewise. - (register_ssa_partition_check): Declare. - (register_ssa_partition): use it. - * tree-ssa-live.c: Include errors.h. - (register_ssa_partition_check): New. - * tree-ssa-operands.c: Include errors.h. - * Makefile.in (tree-ssa-operands.o): Depend on errors.h. - -2004-09-09 Richard Sandiford - Catherine Moore - - * config/frv/frv-protos.h (FRV_CPU_FR550, FRV_CPU_FR450) - (FRV_CPU_FR405): New processor enums. - (frv_issue_rate, frv_acc_group): Declare. - * config/frv/frv.h (CPP_SPEC, CPP_FRV_SPEC, CPP_FR500_SPEC): Delete. - (CPP_FR400_SPEC, CPP_SIMPLE_SPEC): Delete. - (MASK_DEFAULT_FR550, MASK_DEFAULT_FR450): New macros. - (SUBTARGET_EXTRA_SPECS, EXTRA_SPECS, CPP_CPU_DEFAULT_SPEC): Delete. - (TARGET_CPU_CPP_BUILTINS): Define the macros that were previously - handled by CPP_SPEC. - (MASK_LONG_CALLS, TARGET_LONG_CALLS): New macros. - (MASK_ALIGN_LABELS, TARGET_ALIGN_LABELS): New macros. - (ACC_MASK): New macro. - (TARGET_MEDIA_REV2): Include FRV_CPU_{FR405,FR450,FR550}. - (TARGET_MEDIA_FR450): New macro. - (TARGET_FR500_FR550_BUILTINS, TARGET_FR405_BUILTINS): New macros. - (TARGET_SWITCHES): Add -m{no-,}align-labels and -m{no-,}long-calls. - (LABEL_ALIGN_AFTER_BARRIER): Define. - (ACC_LAST, ACCG_LAST): Add four new accumulator registers. - (IACC_FIRST, IACC_LAST): New pair of SPRs. - (ACCG_FIRST, AP_FIRST, SPR_FIRST, SPR_LAST): Adjust accordingly. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER) - (REGISTER_NAMES): Add entries for new registers. - (REG_CLASS_CONTENTS): Update for new register ranges. - (EXTRA_CONSTRAINT_FOR_S): Redefine in terms of call_operand. - (ISSUE_RATE, CLEAR_VLIW_START, SET_VLIW_START): Delete. - (PACKING_FLAG_USED_P): Delete. - (FRV_BUILTIN_MQLCLRHS, FRV_BUILTIN_MQLMTHS, FRV_BUILTIN_MQSLLHI) - (FRV_BUILTIN_MQSRAHI, FRV_BUILTIN_SMUL, FRV_BUILTIN_UMUL) - (FRV_BUILTIN_PREFETCH0, FRV_BUILTIN_PREFETCH, FRV_BUILTIN_SMASS) - (FRV_BUILTIN_SMSSS, FRV_BUILTIN_SMU, FRV_BUILTIN_SCUTSS) - (FRV_BUILTIN_ADDSS, FRV_BUILTIN_SUBSS, FRV_BUILTIN_SLASS) - (FRV_BUILTIN_IACCread{l,ll}, FRV_BUILTIN_IACCset{ll,l}) - (FRV_BUILTIN_SCAN): New members of frv_builtin_enum. - (FRV_BUILTIN_FIRST_NONMEDIA): New macro. - (CPU_UNITS_QUERY): Define to 1. - * config/frv/frv.c: Include gt-frv.h - (NUM_NOP_PATTERNS, NTH_UNIT, UNIT_NUMBER, PACKING_FLAG_P): New macros. - (SET_PACKING_FLAG, CLEAR_PACKING_FLAG, FOR_EACH_REGNO): New macros. - (frv_insn_group): New enumeration. - (frv_unit_names, frv_unit_groups, frv_unit_codes): New variables. - (frv_type_to_unit, frv_nops, frv_num_nops): New variables. - (REGSTATE_DEAD, REGSTATE_LIVE, REGSTATE_UNUSED, REGSTATE_MASK) - (REGSTATE_CONDJUMP): Delete. Shuffle other numbers to cover the - gap left by REGSTATE_LIVE. - (regstate_t): New typedef. - (TARGET_MACHINE_DEPENDENT_REORG): Define. - (frv_default_flags_for_cpu): Handle FRV_CPU_{FR550,FR450,FR405}. - (frv_override_options): Check for -mcpu={fr550,fr450,fr405}. - Initialize frv_unit_codes[] and frv_type_to_unit[]. - (frv_conditional_register_usage): Remove redundant fixing of - accumulator registers. - (frv_insn_packing_flag): Update specification. - (frv_function_prologue): Don't set frv_insn_packing_flag here. - Zero out frv_nops[]. - (frv_expand_epilogue): Remove comments about the no-longer-present - SIBCALL_P argument. - (frv_asm_output_mi_thunk): Check frv_issue_rate() rather than - PACKING_FLAG_USED_P() when deciding whether to pack instructions. - (frv_asm_output_opcode, frv_final_prescan_insn): Simplify in light - of the new meaning of frv_insn_packing_flag. Emit an mnop.p if - packing is disabled and if INSN can only issue to M1. - (call_operand): Check TARGET_LONG_CALLS. - (acc_operand, even_acc_operand, quad_acc_operand) - (accg_operand): Simplify. Don't accept pseudo registers. - (output_move_single): Handle SPR<-zero moves. - (frv_issue_rate): Make non-static. Handle FRV_CPU_{FR550,FR450,FR405}. - (frv_registers_update, frv_registers_used_p): Delete. - (frv_registers_set_p): Delete. - (frv_acc_group_1, frv_acc_group, frv_insn_unit): New functions. - (frv_issues_to_branch_unit_p): New function. - (frv_packet): New structure. - (frv_cond_flags, frv_regstate_conflict_p): New functions. - (frv_registers_conflict_p_1, frv_registers_conflict_p): New functions. - (frv_registers_update_1, frv_registers_update): New functions. - (frv_start_packet, frv_start_packet_block, frv_finish_packet) - (frv_pack_insn_p, frv_add_insn_to_packet, frv_insert_nop_in_packet) - (frv_for_each_packet, frv_sort_insn_group_1, frv_compare_insns) - (frv_sort_insn_group, frv_reorder_packet): New functions. - (frv_pack_insns): Use frv_reorder_packet. - (frv_packet_address): New variable. - (frv_fill_unused_units, frv_align_label, frv_reorg_packet) - (frv_register_nop, frv_reorg): New functions. - (bdesc_1arg): Add __SCUTSS. - (bdesc_2arg): Add __MQLCLRHS, __MQLMTHS, __SMUL, __UMUL, __ADDSS, - __SUBSS, __SLASS and __SCAN. - (bdesc_2argimm): Add __MQSLLHI and __MQSRAHI. - (bdesc_int_void2arg, bdesc_prefetches): New arrays. - (frv_init_builtins): Register the above builtins. - (frv_int_to_acc): Use ACC_MASK to check for valid accumulator - registers. Turn the referenced accumulators into global registers. - (frv_read_iacc_argument): New function. - (frv_expand_int_void2arg, frv_expand_prefetches): New functions. - (frv_split_iacc_move): New function. - (frv_expand_builtin): Handle the new builtins. - * config/frv/frv.md: Replace old schedulers with new order-independent - ones. Add schedulers for the FR405, FR450 and FR550. Describe new - packing algorithm. - (cpu): Add fr550, fr450 and fr405. - (type): Add macc, scan, cut, fnop, fscmp, fdcmp, mnop, mqlimh and - mqshift. Replace fmas with fsmadd and fmad with fdmadd. Delete m7. - (*muladd[sd]f4, *mulsub[sd]f4): Fix types. - (*cmp[sd]f_cc_fp): Use new f[sd]cmp types. - (fnop, mnop): New patterns. - (UNSPEC_MQLCLRHS, UNSPEC_MQLMTHS, UNSPEC_MQSLLHI, UNSPEC_MQSRAHI): - New constants. - (mexpdhw, *cond_exec_mexpdhw): Fix destination operands. - (mclracca8): Use ACC_MASK to determine the upper set of accumulator - registers. - (mqlclrhs, mqlmths, mqsllhi, mqsrahi): New patterns. - (UNSPEC_SMUL, UNSPEC_UMUL, UNSPEC_SMU, UNSPEC_ADDSS, UNSPEC_SUBSS) - (UNSPEC_SLASS, UNSPEC_SCAN, UNSPEC_INTSS, UNSPEC_SCUTSS) - (UNSPEC_PREFETCH0, UNSPEC_PREFETCH, UNSPEC_IACCreadll) - (UNSPEC_IACCreadl, UNSPEC_IACCsetll, UNSPEC_IACCsetl, UNSPEC_SMASS) - (UNSPEC_SMSSS, UNSPEC_IMUL, IACC0_REG): New constants. - (smul, umul, smass, smsss, smu, addss, subss, slass, scan, scutss) - (frv_prefetch0, frv_prefetch): New patterns. - * config/frv/t-frv (MULTILIB_OPTIONS): Remove -mcpu=frv and - -mcpu=simple. Add -mcpu=fr550. - (MULTILIB_DIRNAMES): Update accordingly. - (MULTILIB_MATCHES): Use the fr400 multilibs for -mcpu=fr405 and - -mcpu=fr450. - * doc/invoke.texi: Document the new -mcpu={fr550,fr450,fr405}, - -mlong-calls and -malign-labels options for FR-V. - -2004-09-09 Joseph S. Myers - - PR c/8420 - * c-tree.h (struct c_declspecs): New. - (struct c_declarator, struct c_type_name, struct c_parm): Update - element types. - (build_array_declarator, grokfield, shadow_tag, shadow_tag_warned, - start_function, start_decl, build_c_parm, - make_pointer_declarator): Update prototypes. - (build_null_declspecs, declspecs_add_qual, declspecs_add_type, - declspecs_add_scspec, declspecs_add_attrs): New. - (split_specs_attrs): Remove. - * c-parse.in (%union): Add dsptype. - (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_attrs): Change to dsptype. - (struct c_declspec_stack): New. - (current_declspecs, declspec_stack): Change type. - (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): Update to new - structures. - (extdefs): Likewise. - (setspecs): Likewise. - (fndef): Use current_declspecs for empty declspecs list. - (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): Update to new - structures and helper functions. Update comments. - (typespec_nonattr): Correct comment. - (maybe_type_quals_attrs, typename): Update to new structures. - * c-decl.c (grokdeclarator, build_array_declarator, grokfield, - shadow_tag, shadow_tag_warned, start_function, start_decl, - build_c_parm, make_pointer_declarator, - set_array_declarator_inner, groktypename): Update to new - structures. - (build_null_declspecs, declspecs_add_qual, declspecs_add_type, - declspecs_add_scspec, declspecs_add_attrs): New. - (split_specs_attrs): Remove. - (shadow_tag_warned): Make warning for useless type names a - pedwarn. Give hard error for long, short, signed, unsigned or - _Complex used with struct, union or enum in empty declaration. - Make found_tag a bool. - (grokdeclarator): Remove checks now done at parse time. - -2004-09-09 Joseph S. Myers - - * c-tree.h (enum c_declarator_kind, struct c_arg_info, struct - c_declarator, struct c_type_name, struct c_parm): New. - (build_array_declarator, set_array_declarator_inner, - get_parm_info, grokfield, groktypename, grokparm, push_parm_decl, - start_function, start_decl, build_c_parm, build_attrs_declarator, - build_function_declarator, make_pointer_declarator, c_cast_expr, - store_parm_decls_newstyle, c_expr_sizeof_type): Update prototypes. - (build_id_declarator): New. - * c-typeck.c (c_cast_expr, c_expr_sizeof_type): Update to new - structures. - * c-decl.c (ARG_INFO_PARMS, ARG_INFO_TAGS, ARG_INFO_TYPES, - ARG_INFO_OTHERS): Remove. - (build_id_declarator): New. - (build_array_declarator, set_array_declarator_inner, groktypename, - start_decl, grokparm, push_parm_decl, grokparms, get_parm_info, - grokfield, start_function, store_parm_decls_newstyle, - store_parm_decls_oldstyle, store_parm_decls, - build_c_parm, build_attrs_declarator, build_function_declarator, - make_pointer_declarator, grokdeclarator): Update to new - structures. - * c-parse.in (%union): Add arginfotype, dtrtype, typenametype and - parmtype. - (declarator, notype_declarator, after_type_declarator, - parm_declarator, parm_declarator_starttypename, - parm_declarator_nostarttypename, array_declarator, typename, - absdcl, absdcl1, absdcl1_ea, absdcl1_noea, direct_absdcl1, - absdcl_maybe_attribute, parm, firstparm, parms, parmlist, - parmlist_1, parmlist_2, parmlist_or_identifiers, - parmlist_or_identifiers_1): Use these types. - (primary, after_type_declarator, parm_declarator_starttypename, - notype_declarator, component_decl, component_declarator, - component_notype_declarator, typename, absdcl, - absdcl_maybe_attribute, absdcl1_ea, direct_absdcl1, parmlist_1, - parmlist_2, parmlist_or_identifiers_1): Update to new structures. - -2004-09-09 Joseph S. Myers - - * c-tree.h (C_DECL_USED, parser_obstack, in_alignof, in_sizeof, - in_typeof, record_maybe_used_decl, pop_maybe_used, - c_expr_sizeof_expr, c_expr_sizeof_type): New. - * c-decl.c (parser_obstack): New. - (c_init_decl_processing): Initialize parser_obstack. - (c_write_global_declarations_1): Check for used but undefined - static functions. - * c-parse.in (%union): Add otype. - (save_obstack_position): New. - (extdefs): Use it. - (unary_expr): Update in_sizeof and in_alignof. Use - c_expr_sizeof_expr and c_expr_sizeof_type. - (sizeof): Update in_sizeof. - (alignof): Update in_alignof. - (typeof): Update in_typeof. - (typespec_nonreserved_nonattr): Call pop_maybe_used. - * c-typeck.c (in_alignof, in_sizeof, in_typeof, struct - maybe_used_decl, maybe_used_decls, record_maybe_used_decl, - pop_maybe_used, c_expr_sizeof_expr, c_expr_sizeof_type): New. - (build_external_ref): Set C_DECL_USED or call - record_maybe_used_decl if appropriate. - * toplev.c (check_global_declarations): Check TREE_NO_WARNING. - -2004-09-08 Eric Christopher - - * builtins.c: Fix prototype for fold_builtin_atan. - -2004-09-08 Eric Christopher - - * builtins.c (fold_builtin_strlen, fold_builtin_sqrt, fold_builtin_cbrt, - fold_builtin_pow, fold_builtin_sin, fold_builtin_cos, fold_builtin_tan, - fold_builtin_atan): New functions. Migrate function bodies... - (fold_builtin_1): ... from here. - -2004-09-09 Alan Modra - - * config/rs6000/rs6000.c (rs6000_stack_info): Correct alignment of - save_size. - -2004-09-08 David Edelsohn - - * config/rs6000/power4.md (power4-lmul): du4 feeds iu1. - * config/rs6000/power5.md (power5-lmul): Same. - -2004-09-08 Richard Henderson - - PR rtl-opt/17186 - * function.c (expand_function_end): Have fall-off-the-end - return path jump around return register setup. - -2004-09-08 Eric Botcazou - - * config/sparc/sparc.c (sparc_indent_opcode): New variable. - (output_return): Do not test for the presence of the 'unimp' insn. - Use 'current_function_uses_only_leaf_regs' and 'final_sequence' - as predicates instead of custom ones. Return raw strings when - possible. - (output_sibcall): Likewise. Concatenate strings. - (output_ubranch): Remove kludge for TurboSPARC. - (output_cbranch): Remove 'noop' parameter. Do not output 'nop'. - (output_v9branch): Likewise. - (print_operand): Use 'final_sequence' instead of 'dbr_sequence_length'. - <#>: Set sparc_indent_opcode if the delay slot is filled. - <(>: Likewise. - <)>: New operand to emit the displacement from the saved PC on return. - <@>: Remove. - * config/sparc/sparc.h (sparc_indent_opcode): Declare it. - (ASM_OUTPUT_OPCODE): New macro. - (PRINT_OPERAND_PUNCT_VALID_P): Remove '^' and add ')'. - * config/sparc/sparc.md (normal_branch, inverted_branch, - normal_fp_branch, inverted_fp_branch, normal_fpe_branch, - inverted_fpe_branch): Adjust call to output_cbranch. - (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust - call to output_v9branch. - * config/sparc/sparc-protos.h (output_cbranch): Adjust. - (output_v9branch): Likewise. - -2004-09-08 Devang Patel - - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -segaddr, - -segs_read_only_addr and -segs_read_write_addr. - (WORD_SWITCH_TAKES_ARG): Same. - (LINK_SPEC): Same. - * doc/invoke.texi: Document -segaddr, -segs_read_only_addr and - -segs_read_write_addr. - -2004-09-08 Richard Henderson - - * function.c (reference_callee_copied): New. - (assign_parm_setup_reg): Use it. - * calls.c (initialize_argument_information): Likewise. - (emit_library_call_value_1): Likewise. - * function.h (reference_callee_copied): Declare. - - * target.h (struct gcc_target): Add callee_copies. - * target-def.h (TARGET_CALLEE_COPIES): New. - (TARGET_PASS_BY_REFERENCE): Update default. - * expr.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * targhooks.c (hook_callee_copies_named): New. - (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_false): Rename from - hook_pass_by_reference_false. - (hook_bool_CUMULATIVE_ARGS_mode_tree_bool_true): New. - * targhooks.h: Update decls. - * config/arc/arc.c (TARGET_CALLEE_COPIES): New. - * config/arc/arc.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/frv/frv-protos.h (frv_function_arg_callee_copies): Remove. - * config/frv/frv.c (frv_function_arg_callee_copies): Remove. - * config/frv/frv.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/iq2000/iq2000.c (TARGET_CALLEE_COPIES): New. - * config/iq2000/iq2000.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/m68hc11/m68hc11.c (TARGET_CALLEE_COPIES): New. - * config/m68hc11/m68hc11.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/mips/mips.c (TARGET_CALLEE_COPIES): New. - (mips_callee_copies): New. - * config/mips/mips.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/mmix/mmix.c (TARGET_CALLEE_COPIES): New. - * config/mmix/mmix.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/mn10300/mn10300.c (TARGET_CALLEE_COPIES): New. - * config/mn10300/mn10300.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/pa/pa.c (TARGET_CALLEE_COPIES): New. - * config/pa/pa.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/sh/sh.c (sh_callee_copies): New. - (TARGET_CALLEE_COPIES): New. - * config/sh/sh.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * config/v850/v850.c (TARGET_CALLEE_COPIES): New. - * config/v850/v850.h (FUNCTION_ARG_CALLEE_COPIES): Remove. - * doc/tm.texi (TARGET_CALLEE_COPIES): Replace documentation - for FUNCTION_ARG_CALLEE_COPIES. - * doc/rtl.texi (CALL_INSN_FUNCTION_USAGE): Update. - -2004-09-08 Devang Patel - - * tree-if-conv.c (find_phi_replacement_condition): Return true - edge block. - (replace_phi_with_cond_modify_expr): Select conditional expr args - based on true edge basic block. - -2004-09-08 Jan Hubicka - - * tree-ssa-operands.c (add_stmt_operand): Use V_MUST_DEF even for - variables being alias set. - -2004-09-08 Nathan Sidwell - - * final.c (shorten_branches, final, get_insn_template, - output_alternate_entry_point, final_scan_insn, alter_subreg, - alter_cond, output_operand, asm_fprintf, final_forward_branch_p, - leaf_renumber_regs_insn): Use gcc_assert and gcc_unreachable. - * fix-header.c (lookup_std_proto): Likewise. - * flow.c (first_insn_after_basic_block_note, verify_wide_reg, - verify_local_live_at_start, update_life_info, mark_reg, - calculate_global_regs_live, allocate_reg_life_data, - init_propagate_block_info, mark_set_regs, flush_reg_cond_reg_1, - ior_reg_cond, not_reg_cond, and_reg_cond, elim_reg_cond, - attempt_auto_inc, mark_used_reg, mark_used_regs): Likewise. - * fold-const.c (force_fit_type, div_and_round_double, - may_negate_without_overflow_p, int_const_binop, const_binop, - size_binop, size_diffop, fold_convert_const, fold_convert, - invert_tree_comparison, swap_tree_comparison, - comparison_to_compcode, compcode_to_comparison, invert_truthvalue, - range_binop, make_range, fold_cond_expr_with_comparison, - fold_div_compare, fold, fold_checksum_tree, fold_negate_const, - fold_abs_const, fold_not_const, fold_relational_const, round_up, - round_down): Likewise. - * function.c (find_function_data, assign_stack_temp_for_type, - instantiate_virtual_regs_lossage, aggregate_value_p, - assign_parm_find_entry_rtl, assign_parm_setup_block, - expand_function_start, expand_function_end, keep_stack_depressed, - handle_epilogue_set, thread_prologue_and_epilogue_insns): Likewise. - -2004-09-08 Daniel Berlin - - * Makefile.in (tree-loop-linear.o): Added. - (OBJS-common): Add tree-loop-linear.o - * common.opt: New flag, ftree-loop-linear. - * timevar.def: New timevar, TV_TREE_LOOP_LINEAR. - * tree-flow.h: Add prototype for linear_transform_loops. - * tree-optimize.c: Add linear transform after vectorization. - * tree-pass.h: Add struct pass_linear_transform. - * tree-ssa-loop.c: Add pass_linear_transform. - * tree-loop-linear.c: New file. - * lambda-code.c: gcc_assertify. - (gcc_loop_to_lambda_loop): Handle all exit tests. - Handle case where we have (invariant >= induction var). - (find_induction_var_from_exit_cond): Ditto. - -2004-09-08 Jie Zhang - - * tree-ssa-alias.c (compute_flow_insensitive_aliasing): If type - memory tag is call clobbered, so are its aliases. - (group_aliases): When two memory tags being grouped, if one is - call clobbered, so are the other and its aliases. - (add_may_alias): Remove call-clobbering stuff. - (replace_may_alias): Likewise. - (merge_pointed_to_info): Merge pt_global_mem - -2004-09-08 Jan Hubicka - - * cgraph.c (cgraph_remove_node): Free DECL_INITIAL field of node. - * cgraphunit.c (verify_cgraph): Don't verify on syntax errors. - (cgraph_expand_function): Remove stale cgraph edges of currently - compiled function; fix non-unit-at-a-time code copying function - node for later reuse. - -2004-09-08 Nathan Sidwell - - * vec.c (vec_p_reserve, vec_o_reserve): Rename to ... - (vec_gc_p_reserve, vec_gc_o_reserve): ... here. Clone to - (vec_heap_p_reserve, vec_heap_o_reserve): ... here, adjust. - (vec_gc_free, vec_heap_free): New. - * vec.h (DEF_VEC_GC_P, DEF_VEC_MALLOC_P): New. - (DEF_VEC_P): Add allocator argument. Adjust. - (DEF_VEC_GC_O, DEF_VEC_MALLOC_O): New. - (DEF_VEC_O): Add allocator argument. Adjust. - (VEC(free)): New. - - * tree.h (tree): Define a GC'd vector. - * lamba-code.c (lambda_loop): Likewise. - * value-prof.h (histogram_value): Likewise. - -2004-09-08 Nathan Sidwell - - * emit-rtl.c (immed_double_const): Use gcc_assert and gcc_unreachable. - (gen_rtx_SUBREG, gen_reg_rtx, mark_user_reg, subreg_hard_regno, - gen_lowpart_common, gen_highpart, gen_highpart_mode, - subreg_highpart_offset, operand_subword, operand_subword_force, - mem_expr_equal_p, set_mem_attributes_minus_bitpos, - set_mem_alias_set, change_address_1, verify_rtx_sharing, - copy_most_rtx, set_first_insn, set_last_insn, prev_cc0_setter, - try_split, add_insn_after, add_insn_before, remove_insn, - remove_unnecessary_notes, emit_insn_before, emit_jump_insn_before, - emit_call_insn_before, emit_insn_after, emit_jump_insn_after, - emit_call_insn_after, emit_insn, emit_jump_insn, emit_call_insn, - set_unique_reg_note, emit, push_to_full_sequence, copy_insn_1, - gen_const_vector_0, emit_copy_of_insn_after): Likewise. - * et-forest.c (set_prev, set_next, et_check_occ_sanity, - record_path_before_1, check_path_after_1, check_path_after): Likewise. - * except.c (gen_eh_region, resolve_one_fixup_region, - remove_unreachable_regions, convert_from_eh_region_ranges_1, - add_ehl_entry, duplicate_eh_region_1, build_post_landing_pads, - connect_post_landing_pads, sjlj_emit_function_exit, - remove_exception_handler_label, remove_eh_handler, - reachable_next_level, collect_one_action_chain, - output_function_exception_table): Likewise. - * explow.c (trunc_int_for_mode, copy_to_mode_reg, - optimize_save_area_alloca, allocate_dynamic_stack_space, - probe_stack_range, hard_function_value): Likewise. - * expmed.c (mode_for_extraction, store_bit_field, - store_fixed_bit_field, extract_bit_field, expand_shift, - expand_mult_const, expand_mult, choose_multiplier, - expand_mult_highpart, expand_divmod, emit_store_flag, - do_cmp_and_jump): Likewise. - * expr.c (convert_move, convert_modes, move_by_pieces, - move_by_pieces_ninsns, move_by_pieces_1, emit_block_move, - move_block_from_reg, gen_group_rtx, emit_group_load, - emit_group_move, emit_group_store, use_reg, use_regs, - can_store_by_pieces, store_by_pieces, store_by_pieces_1, - emit_move_insn, emit_move_insn_1, emit_push_insn, - expand_assignment, store_expr, count_type_elements, - store_constructor, store_field, safe_from_p, expand_var, - expand_expr_addr_expr, expand_expr_real_1, do_store_flag): Likewise. - -2004-09-08 Nathan Sidwell - - * dbxout.c (dbxout_type, dbxout_type_name, dbxout_symbol): Use - gcc_assert and gcc_unreachable. - * ddg.c (create_ddg_dependence, add_deps_for_def, - add_deps_for_use, create_ddg, add_edge_to_ddg): Likewise. - * df.c (df_ref_unlink, df_ref_record, df_uses_record, - df_reg_def_chain_create, df_reg_use_chain_create, df_analyze, - df_insn_delete, df_refs_reg_replace, df_ref_reg_replace, - df_insns_modify, df_pattern_emit_before, df_bb_reg_live_start_p, - df_bb_reg_live_end_p, df_bb_regs_lives_compare, - df_bb_single_def_use_insn_find, dataflow_set_a_op_b, - dataflow_set_copy, hybrid_search, diagnostic.c, - diagnostic_build_prefix, diagnostic_count_diagnostic): Likewise. - * dojump.c (do_jump): Likewise. - * dominance.c (calc_dfs_tree_nonrec, calc_dfs_tree, - compute_dom_fast_query, calculate_dominance_info, - free_dominance_info, get_immediate_dominator, - set_immediate_dominator, get_dominated_by, - redirect_immediate_dominators, nearest_common_dominator, - dominated_by_p, verify_dominators, recount_dominator, - iterate_fix_dominators, add_to_dominance_info, - delete_from_dominance_info): Likewise. - * dwarf2asm.c (size_of_encoded_value, eh_data_format_name, - dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128, - dw2_force_const_mem, dw2_asm_output_encoded_addr_rtx): Likewise. - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes, reg_save, - initial_return_save, stack_adjust_offset, dwarf2out_stack_adjust, - flush_queued_reg_saves, dwarf2out_frame_debug_expr, - dwarf2out_frame_debug, dw_cfi_oprnd1_desc, output_cfi, - output_call_frame_info, output_loc_operands, build_cfa_loc, - decl_ultimate_origin, AT_flag, AT_int, AT_unsigned, AT_string, - AT_string_form, add_AT_specification, AT_ref, set_AT_ref_external, - AT_loc, AT_loc_list, AT_addr, AT_lbl, add_child_die, - splice_child_die, attr_checksum, same_dw_val_p, - break_out_includes, build_abbrev_table, size_of_die, mark_dies, - unmark_dies, value_format, output_loc_list, output_die, - output_pubnames, output_aranges, base_type_die, is_base_type, - modified_type_die, dbx_reg_number, multiple_reg_loc_descriptor, - mem_loc_descriptor, loc_descriptor, loc_descriptor_from_tree_1, - field_byte_offset, add_data_member_location_attribute, - add_const_value_attribute, rtl_for_decl_location, - add_location_or_const_value_attribute, add_byte_size_attribute, - add_bit_offset_attribute, add_bit_size_attribute, - add_abstract_origin_attribute, pop_decl_scope, scope_die_for, - decl_start_label, gen_formal_parameter_die, - gen_type_die_for_member, gen_subprogram_die, gen_label_die, - gen_typedef_die, gen_type_die, gen_tagged_type_instantiation_die, - force_decl_die, force_type_die, gen_decl_die, - dwarf2out_imported_module_or_decl, prune_unused_types_prune, - dwarf2out_finish): Likewise. - -2004-09-08 Andreas Tobler - - * Makefile.in (builtins.o): Depend on tree-mudflap.h. - * builtins.c: Include tree-mudflap.h. - -2004-09-08 Uros Bizjak - - * config/i386/i386.c (ix86_prepare_fp_compare_args): Do not - force operand 0.0 into register in XFmode. Also do not force - operand 0.0 into register if !TARGET_CMOVE. - * config/i386/i386.md (*cmpfp_0): Delete. Remove comment. - (*cmpfp_0_sf, cmpfp_0_df, cmpfp_0_xf): New patterns to - implement ftst x87 instruction. - (*fp_jcc_7): New insn pattern. Change corresponding split - pattern to handle "general_operand" instead of - "nonimmediate_operand". - -2004-09-08 Ben Elliston - - * doc/rtl.texi (Insns): Document NOTE_INSN_FUNCTION_BEG. - -2004-09-07 Frank Ch. Eigler - - * builtins.c (std_gimplify_va_arg_expr): Mark INDIRECT_REF nodes - generated from standard va_arg expansion. - * tree-mudflap.c (mx_xform_derefs_1): Omit instrumentation from - marked nodes. - (mf_varname_tree, mf_file_function_line_tree): Add some support - for column numbers if compiled with USE_MAPPED_LOCATION. - -2004-09-07 Ziemowit Laski - - * c-decl.c (groktypename_in_parm_context): Remove function. - * c-tree.h (groktypename_in_parm_context): Remove prototype. - -2004-09-07 Ziemowit Laski - - * Makefile.in (c-parse.o): Depend on $(C_COMMON_H). - * c-parse.in: Include c-common.h instead of objc-act.h. - (ivar_decl_list, ivar_decls, ivar_decl, ivars, ivar_declarator, - myparms, myparm): Remove %type declarations. - (methodtype, optparms, OBJC_TYPE_QUAL, objc_quals, objc_qual, - objc_typename, objc_try_catch_stmt, optellipsis): Add %type - declarations. - (objc_inherit_code, objc_public_flag): Remove. - (typespec_nonreserved_nonattr): Call - objc_get_protocol_qualified_type() instead of get_static_reference() - and get_protocol_reference(). - (stmt_nocomp): Call grokparm() on @catch parameter. - (objcdef): Move semantic action to objc_finish_implementation(). - (classdef): Move semantic action to objc_start_class_interface(), - objc_continue_interface(), objc_finish_interface(), - objc_start_class_implementation(), objc_continue_implementation(), - objc_start_category_interface() and - objc_start_category_implementation(). - (protocoldef): Move semantic actions to objc_start_protocol() and - objc_finish_interface(). - (ivar_decl_list): Remove nonterminal. - (visibility_spec): Move semantic actions to objc_set_visibility(). - (ivar_decls): Remove assignment to $$. - (ivar_decl): Rephrase in terms of component_decl; call - objc_add_instance_variable(). - (ivars, ivar_declarator): Remove nonterminals. - (opt_semi): New nonterminal. - (methodtype): Remove semantic actions. - (methoddef): Move semantic actions to objc_set_method_type(), - objc_start_method_definition() and objc_finish_method_definition(). - (methodproto): Move semantic actions to objc_set_method_type() and - objc_add_method_declaration(). - (methoddecl): Use objc_typename instead of typename; move semantic - actions to objc_build_method_signature(). - (optarglist, myxdecls, mydecl, myparms, myparm): Remove nonterminals. - (optparmlist): Express in terms of optparms and optellipsis. - (optparms, optellipsis, objc_qual, objc_quals, objc_typename): New - nonterminals. - (keyworddecl): Use objc_typename instead of typename. - (rid_to_yy): Mark RID_IN, RID_OUT, RID_INOUT, RID_BYCOPY, RID_BYREF - and RID_ONEWAY as returning OBJC_TYPE_QUAL to yyparse(). - -2004-09-08 Alan Modra - - * doc/tm.texi (MD_UNWIND_SUPPORT): Document. - (MD_FALLBACK_FRAME_STATE_FOR): Update. - * unwind-dw2.c (MD_UNWIND_SUPPORT): #include if defined. - (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation. - (MD_FROB_UPDATE_CONTEXT): Remove default. - (uw_update_context_1): Instead #ifdef invocation. - * config/ia64/unwind-ia64.c (MD_UNWIND_SUPPORT): #include if defined. - (uw_frame_state_for): Adjust MD_FALLBACK_FRAME_STATE_FOR invocation. - * config/alpha/gnu.h (MD_FALLBACK_FRAME_STATE_FOR): Don't undef. - (MD_UNWIND_SUPPORT): Undefine this instead. - * config/i386/gnu.h: Likewise. - * config/alpha/linux-unwind.h: New file, macro converted to - function, extracted from.. - * config/alpha/linux.h (MD_FALLBACK_FRAME_STATE_FOR): ..this. - (MD_UNWIND_SUPPORT): Define. - * config/alpha/vms-unwind.h, config/alpha/vms.h: Likewise. - * config/i386/linux-unwind.h, config/i386/linux.h, - config/i386/linux64.h: Likewise. - * config/ia64/linux-unwind.h, config/ia64/linux.h: Likewise. - MD_HANDLE_UNWABI too. - * config/mips/linux-unwind.h, config/mips/linux.h: Likewise. - * config/pa/linux-unwind.h, config/pa/pa32-linux.h: Likewise. - * config/rs6000/darwin-unwind.h, config/rs6000/darwin.h: Likewise. - * config/s390/linux-unwind.h, config/s390/linux.h: Likewise. - * config/sparc/linux-unwind.h, config/sparc/linux.h, - config/sparc/linux64.h: Likewise. - * config/sh/linux-unwind.h, config/sh/linux.h: Likewise, but merge - SH_FALLBACK_FRAME_FLOAT_STATE into sh_fallback_frame_state. - * config/rs6000/linux-unwind.h, config/rs6000/linux.h, - config/rs6000/linux64.h: Likewise. Split out get_sigcontext - function. Use ARG_POINTER_REGNUM for 32-bit temp reg too. - -2004-09-07 Jan Hubicka - - * cse.c (fold_rtx): Avoid building of - (CONST (MINUS (CONST_INT) (SYMBOL_REF))) - - * tree-ssa-pre.c (grand_bitmap_obstack): New. - (value_insert_into_set_bitmap, bitmap_set_new): Use the obstack. - (init_pre): Initialize obstack. - (fini_pre): Free obstack. - -2004-09-07 David Daney - - * config.gcc: Added support for --with-divide=[breaks|traps] for - mips targets. - * config/mips/mips.h (MASK_DIVIDE_BREAKS): New target_flags bit. - (TARGET_DIVIDE_TRAPS): New macro. - (TARGET_SWITCHES): Added -mdivide-traps and -mdivide-breaks. - (OPTION_DEFAULT_SPECS): Added --with-divide= support. - * config/mips/mips.c (mips_idiv_insns): Generate proper count on - GENERATE_DIVIDE_TRAPS. - (mips_output_division): Emit conditional trap if - GENERATE_DIVIDE_TRAPS is set. - * doc/install.texi: Document --with-divide. - * doc/invoke.texi: Document -mdivide-traps and -mdivide-breaks. - -2004-09-07 Caroline Tice - - * cfgrtl.c (rtl_verify_flow_info_1): Add new edge flag, - EDGE_CROSSING, to flags test case. - -2004-09-07 Jan Hubicka - - * tree-ssa-loop-ivopts.c (contains_abnormal_ssa_name_p): Deal with '<' - class too. - -2004-09-07 Nathan Sidwell - - * cfganal.c (flow_depth_first_order_compute, dfs_enumerate_from, - cfgbuild.c, inside_basic_block_p, control_flow_insn_p, - make_label_edge, make_edges, find_basic_blocks_1): Use gcc_assert - or gcc_unreachable. - * cfg.c (clear_edges, initialize_bb_rbi, compact_blocks, - remove_edge, alloc_aux_for_blocks, free_aux_for_blocks, - alloc_aux_for_edges, free_aux_for_edges): Likewise. - * cfgcleanup.c (try_forward_edges, - merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps): Likewise. - * cfgexpand.c (expand_gimple_cond_expr, - expand_gimple_tailcall): Likewise. - * cfghooks.c (duplicate_block): Likewise. - * cfglayout.c (record_effective_endpoints, - insn_locators_initialize, change_scope, fixup_reorder_chain, - verify_insn_chain, fixup_fallthru_exit_predecessor, - duplicate_insn_chain, cfg_layout_finalize): Likewise. - * cfgloopanal.c (check_irred): Likewise. - * cfgloop.c (superloop_at_depth, flow_loops_free, - flow_loop_entry_edges_find, flow_loops_find, - flow_loop_outside_edge_p, get_loop_body, - get_loop_body_in_dom_order, get_loop_body_in_bfs_order, - get_loop_exit_edges, num_loop_branches, cancel_loop, - verify_loop_structure): Likewise. - cfgloopmanip.c (find_path, remove_path, loop_delete_branch_edge, - duplicate_loop_to_header_edge, create_preheader, - create_loop_notes): Likewise. - * cfgrtl.c (delete_insn, try_redirect_by_replacing_jump, - edirect_branch_edge, force_nonfallthru_and_redirect, - rtl_split_edge, insert_insn_on_edge, commit_one_edge_insertion, - commit_edge_insertions, commit_edge_insertions_watch_calls, - purge_dead_edges, cfg_layout_redirect_edge_and_branch, - cfg_layout_redirect_edge_and_branch_force, - cfg_layout_merge_blocks, rtl_flow_call_edges_add): Likewise. - * cgraph.c (cgraph_node, cgraph_create_edge, cgraph_remove_edge, - cgraph_redirect_edge_callee, cgraph_global_info, cgraph_rtl_info, - cgraph_varpool_node): Likewise. - * cgraphunit.c (cgraph_finalize_function, - cgraph_finalize_compilation_unit, cgraph_mark_functions_to_output, - cgraph_expand_function, cgraph_remove_unreachable_nodes, - cgraph_clone_inlined_nodes, cgraph_mark_inline_edge, - cgraph_mark_inline, cgraph_expand_all_functions, - cgraph_build_static_cdtor): Likewise. - * combine.c (do_SUBST, try_combine, subst, combine_simplify_rtx, - simplify_logical, distribute_notes, insn_cuid): Likewise. - * conflict.c (conflict_graph_add, print_conflict): Likewise. - * coverage.c (rtl_coverage_counter_ref, tree_coverage_counter_ref, - coverage_checksum_string): Likewise. - * cse.c (make_new_qty, make_regs_eqv, insert, invalidate, - hash_rtx, exp_equiv_p, cse_basic_block, count_reg_usage, - cse_cc_succs, cse_condition_code_reg): Likewise. - * cselib.c (entry_and_rtx_equal_p, remove_useless_values, - rtx_equal_for_cselib_p, wrap_constant, cselib_hash_rtx, - new_cselib_val, cselib_subst_to_values, cselib_invalidate_regno, - cselib_record_set): Likewise. - -2004-09-07 Jan Hubicka - - * tree-ssa-loop-ivopts.c (iv_value): Avoid invalid sharing on niter. - -2004-09-07 Nathan Sidwell - - * builtins.c (fold_builtin_strchr): Use build_int_cst, not - fold_convert. - (fold_builtin_strpbrk): Likewise. - * expr.c (array_ref_low_bound): Likewise. - * tree-scalar-evolution.c (chrec_is_positive, add_to_evolution_1, - interpret_rhs_modify_expr, number_of_iterations_in_loop): Likewise. - * tree-sra.c (generate_element_zero): Likewise. - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. - * tree-ssa-loop-ivopts.c (determine_biv_step, idx_find_step, - add_old_iv_candidates, add_iv_candidates): Likewise. - * tree-tailcall.c (tree_optimize_tail_calls_1): Likewise. - -2004-09-07 Nathan Sidwell - - * c-aux-info.c (gen_type): Use gcc_assert or gcc_unreachable. - * c-common.c (c_type_hash, c_common_nodes_and_builtins, - c_expand_expr, boolean_increment, nonnull_check_p, - check_function_arguments_recurse, fold_offsetof_1): Likewise. - * c-cppbuiltin.c (define__GNUC__, builtin_define_stdint_macros, - builtin_define_type_max): Likewise. - * c-decl.c (bind, pop_scope, merge_decls, pushdecl_top_level, - implicit_decl_warning, builtin_function, build_compound_literal, - complete_array_type, grokdeclarator, get_parm_info, - start_function, store_parm_decls_oldstyle, - c_write_global_declarations): Likewise. - * c-format.c (get_constant, decode_format_attr, - maybe_read_dollar_number, get_flag_spec, check_format_arg, - check_format_types, format_type_warning, - find_char_info_specifier_index, init_dynamic_asm_fprintf_info, - init_dynamic_diag_info, handle_format_attribute): Likewise. - * c-gimplify.c (push_context, pop_context, finish_bc_block): - * c-lex.c (c_lex_with_flags, lex_string): Likewise. - * c-objc-common.c (c_tree_printer): Likewise. - * c-pch.c (pch_init): Likewise. - * c-pragma.c (maybe_apply_pragma_weak): Likewise. - * c-pretty-print.c (pp_c_tree_decl_identifier): Likewise. - * c-typeck.c (c_incomplete_type_error, composite_type, - common_pointer_type, common_type, same_translation_unit_p, - tagged_types_tu_compatible_p, finish_init, pop_init_level, - set_designator, set_nonincremental_init_from_string, - process_init_element, c_finish_if_stmt): Likewise. - * caller-save.c (init_caller_save, save_call_clobbered_regs, - insert_restore, insert_save, insert_one_insn): Likewise. - * calls.c (emit_call_1, compute_argument_block_size, - precompute_arguments, expand_call, emit_library_call_value_1, - store_one_arg): Likewise. - -2004-09-07 Nathan Sidwell - - * configure.ac (enable-checking): Add release option. Reorganize - to avoid repetition. - * configure: Rebuilt. - * doc/install.texi (enable-checking): Amend documentation. - -2004-09-06 H.J. Lu - - PR bootstrap/17313 - * Makefile.in (specs.ready): Depend on cc1$(exeext). - -2004-09-06 James E Wilson - - * config/mips/mips.md (movsf_hardfloat, movdf_hardfloat_64bit, - movdf_hardfloat_32bit): Split fG into two alternatives. - (movv2sf_hardfloat_64bit): Split fYG into two alternatives. - - * emit-rtl.c (try_split): Check INSN_P before may_trap_p call. - -2004-09-06 Eric Botcazou - - * final.c (output_in_slot): Delete. - (final_scan_insn): Revert 2004-09-03 change. - (output_asm_insn): Likewise. - * config/sparc/sparc.c (output_return): Likewise. - (output_sibcall): Likewise. - -2004-09-06 Jan Hubicka - - * loop.c (loop_dump_aux): Do not print RTL when not available. - * tree-ssa-loop-ivopts.c (add_standard_iv_candidates): Do not use - frontend specific type nodes. - (produce_memory_decl_rtl): Break out from ... - (prepare_decl_rtl): ... here. Handle ADDR_EXPR correctly. - (get_computation_at): Avoid random tree sharing. - (tree_ssa_iv_optimize): Verify tree sharing; dump loops. - -2004-09-06 Zack Weinberg - - * Makefile.in (rtl.o, bitmap.o): Correct dependencies, remove - unnecessary commands. - -2004-09-06 Mohan Embar - - * Makefile.in (rtl.o): Remove -DGENERATOR_FILE. - (bitmap.o): Likewise. - -2004-09-06 Paolo Bonzini - - Unify the management of RTL and tree-level dump files. - - * cfgexpand.c (tree_expand_cfg): Fix incorrect comment. - Don't print function name to the dump file, the pass manager - would do this for us. Add code from the top of - rest_of_compilation, up to the initial RTL dump. - * passes.c (rest_of_handle_jump): Call fixup_tail_calls and - close the DFI_sibling dump file. - (rest_of_compilation): Don't do that here. Remove code up to the - initial RTL dump. - (init_optimization_passes): Remove. - (pass_rest_of_compilation): Change pass name to NULL. - * toplev.c (lang_dependent_init): Do not use an empty dump file prefix. - Do not call init_optimization_passes. - * toplev.h (init_optimization_passes): Remove. - - * graph.c (print_rtl_graph_with_bb, clean_graph_dump_file, - finish_graph_dump_file): Remove SUFFIX parameter. - * graph.h (print_rtl_graph_with_bb, clean_graph_dump_file, - finish_graph_dump_file): Likewise. - - * tree-pass.h (struct tree_opt_pass): Add `letter' field. - * cfgexpand.c (pass_expand): Adjust. - * gimple-low.c (pass_lower_cf, pass_remove_useless_vars): Adjust. - * passes.c (pass_rest_of_compilation): Adjust. - * predict.c (pass_profile): Adjust. - * tree-alias-common.c (pass_build_pta, pass_del_pta): Adjust. - * tree-cfg.c (pass_build_cfg, pass_remove_useless_stmts, - pass_split_crit_edges, pass_warn_function_return): Adjust. - * tree-complex.c (pass_lower_vector_ssa, pass_pre_expand): Adjust. - * tree-dfa.c (pass_referenced_vars): Adjust. - * tree-eh.c (pass_lower_eh): Adjust. - * tree-if-conv.c (pass_build_ssa): Adjust. - * tree-into-ssa.c (pass_build_ssa): Adjust. - * tree-mudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. - * tree-nomudflap.c (pass_mudflap_1, pass_mudflap_2): Adjust. - * tree-nrv.c (pass_nrv): Adjust. - * tree-optimize.c (pass_gimple, pass_all_optimizations, - pass_cleanup_cfg_post_optimizing, pass_free_datastructures, - pass_init_datastructures): Adjust. - * tree-outof-ssa.c (pass_del_ssa): Adjust. - * tree-profile.c (pass_tree_profile): Adjust. - * tree-sra.c (pass_sra): Adjust. - * tree-ssa-alias.c (pass_may_alias): Adjust. - * tree-ssa-ccp.c (pass_ccp, pass_fold_builtins): Adjust. - * tree-ssa-copyrename.c (pass_rename_ssa_copies): Adjust. - * tree-ssa-dce.c (pass_dce, pass_cd_dce): Adjust. - * tree-ssa-dom.c (pass_dominator): Adjust. - * tree-ssa-dse.c (pass_dse): Adjust. - * tree-ssa-forwprop.c (pass_forwprop): Adjust. - * tree-ssa-if-conv.c (pass_if_conversion): Adjust. - * tree-ssa-loop-ch.c (pass_ch): Adjust. - * tree-ssa-loop.c (pass_loop, pass_loop_init, pass_lim, - pass_loop_done, pass_complete_unroll, pass_iv_canon, - pass_iv_optimize, pass_vectorize): Adjust. - * tree-ssa-phiopt.c (pass_phiopt): Adjust. - * tree-ssa-pre.c (pass_pre, pass_fre): Adjust. - * tree-ssa.c (pass_redundant_phi, pass_early_warn_uninitialized, - pass_late_warn_uninnitialized): Adjust. - * tree-tailcall.c (pass_tail_recursion, pass_tail_calls): Adjust. - - * Makefile.in (tree-dump.o): Add new dependencies. - * cgraph.c (cgraph_remove_node): TDF_all -> TDF_tree_all. - * cgraphunit.c (cgraph_preserve_function_body_p, cgraph_optimize): - Likewise. - * toplev.c (dump_file_name): New. - * tree-dump.c (dump_enable_all): Add LETTER parameter. - (struct dump_file_info): Add NUM and LETTER fields. - (dump_files): Adjust and add RTL dump files. - (dump_register): Add NUM and LETTER fields. - (get_dump_file_name, dump_initialized_p, enable_rtl_dump_file): New. - (dump_begin): Use get_dump_file_name. - (dump_switch_p_1): Adjust call to dump_enable_all. - * tree-dump.h (dump_register): Adjust prototype. - * tree-optimize.c (register_one_dump_file): Take dump file index. - Support flags for RTL dumps. - (register_dump_files): Fill in NUM field of struct dump_file_info. - Track properties both when the gate is executed and when it is not. - (execute_todo): Dump RTL. Add PROPERTIES parameter. - (execute_one_pass): Pass properties to execute_todo. Handle VCG - dumps of RTL. - * tree-pass.h (dump_file_name): New. - * tree.h (TDF_TREE, TDF_RTL, get_dump_file_name, dump_initialized_p): - New. - - * Makefile.in (passes.o): Add new dependencies. - * passes.c (struct dump_file_info, enum dump_file_index, - dump_file_tbl, init_optimization_passes): Remove. - (open_dump_file, close_dump_file): Use tree-dumping infrastructure. - (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): Use - dump_enabled_p. - (finish_optimization_passes): Update finish_graph_dump_file loop. - (enable_rtl_dump_file): Remove. - * tree-dump.c (dump_files): Adjust and add RTL dump files. - (enable_rtl_dump_file): Add here. - * tree.h (enum tree_dump_index): Add RTL dump file indices. - * doc/invoke.texi (Debugging options): Document new RTL debugging - options. Update. - -2004-09-05 Kazu Hirata - - * c-common.c, c-decl.c, combine.c, defaults.h, fold-const.c, - gimplify.c, gthr-nks.h, hooks.c, lambda-code.c, lambda-mat.c, - stor-layout.c, target.h, tree-cfg.c, tree-chrec.c, - tree-if-conv.c, tree-inline.c, tree-into-ssa.c, - tree-mudflap.c, tree-optimize.c, tree-scalar-evolution.c, - tree-ssa-alias.c, tree-ssa-ccp.c, tree-ssa-dce.c, - tree-ssa-pre.c, tree-vectorizer.c, tree-vectorizer.h, tree.h, - vec.h: Fix comment formatting. - -2004-09-05 Kazu Hirata - - * c-common.c, cfgexpand.c, cgraphunit.c, defaults.h, - et-forest.c, expr.c, gimplify.c, global.c, gthr-lynx.h, - hard-reg-set.h, modulo-sched.c, optabs.c, postreload-gcse.c, - tree-data-ref.c, tree-flow.h, tree-if-conv.c, tree-inline.c, - tree-sra.c, tree-ssa-loop-im.c, tree-ssa-loop-ivopts.c, - tree-ssa-loop-niter.c, tree-ssa-operands.c, - tree-ssa-operands.h, tree-ssa-propagate.c, - tree-ssa-propagate.h, tree-ssa-threadupdate.c, value-prof.c, - vec.c, vec.h: Fix comment typos. Follow spelling conventions. - -2004-09-05 Diego Novillo - - * tree-if-conv.c (gate_tree_if_conversion): Enable only if the - vectorizer is enabled. - -2004-09-05 Andreas Jaeger - - * tree-if-conv.c: Spell check comments and clean up whitespace. - -2004-09-05 Zdenek Dvorak - - * tree-ssa-loop-ivopts.c: New file. - * Makefile.in (tree-ssa-loop-ivopts.c): Add. - * cfgloop.h (target_avail_regs, target_res_regs, target_small_cost, - target_pres_cost, target_spill_cost): Declare. - * cfgloopanal.c (avail_regs, res_regs, small_cost, pres_cost, - spill_cost): Renamed to ... - (target_avail_regs, target_res_regs, target_small_cost, - target_pres_cost, target_spill_cost): ... and exported. - (init_set_costs, global_cost_for_size): Work with renamed variables. - * common.opt (flag_ivopts): New flag. - * expr.c (expand_expr_real_1): Handle SSA_NAME case. Handle - REF_ORIGINAL. - * gimplify.c (struct gimplify_ctx): Add into_ssa field. - (internal_get_tmp_var, gimplify_modify_expr, gimplify_expr): Support - generating SSA form. - (force_gimple_operand): New function. - * timevar.def (TV_TREE_LOOP_IVOPTS): New timevar. - * tree-cfg.c (stmt_bsi): New function. - * params.def (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, - PARAM_IV_MAX_CONSIDERED_USES): New. - * tree-flow.h (stmt_bsi, tree_ssa_iv_optimize, split_loop_exit_edge, - bsi_insert_on_edge_immediate_loop. standard_iv_increment_position, - ip_end_pos, ip_normal_pos, force_gimple_operand): Declare. - * tree-gimple.c (is_gimple_formal_tmp_var): Accept ssa names. - * tree-nested.c (build_addr): Export. - * tree-optimize.c (init_tree_optimization_passes): Add - pass_iv_optimize. - * tree-pass.h (pass_iv_optimize): Declare. - * tree-ssa-loop-im.c (for_each_index): Handle REALPART_EXPR and - IMAGPART_EXPR. - * tree-ssa-loop-manip.c (create_iv): Force the base to be acceptable - as a phi node argument. - (split_loop_exit_edge, bsi_insert_on_edge_immediate_loop, - ip_end_pos, ip_normal_pos, standard_iv_increment_position): New - functions. - * tree-ssa-loop-niter.c (zero_p, unsigned_type_for): Export. - * tree-ssa-loop.c (tree_ssa_loop_ivopts, gate_tree_ssa_loop_ivopts, - pass_iv_optimize): New pass. - * tree-ssa-operands.c (get_indirect_ref_operands): Handle REF_ORIGINAL. - * tree-ssanames.c (release_ssa_name): Allow calling with var = NULL. - * tree.c (build_int_cst_type, cst_and_fits_in_hwi): New functions. - * tree.h (REF_ORIGINAL): New macro. - (build_int_cst_type, unsigned_type_for, zero_p, - cst_and_fits_in_hwi, build_addr): Declare. - * doc/invoke.texi (-fivopts): Document. - (PARAM_IV_CONSIDER_ALL_CANDIDATES_BOUND, - PARAM_IV_MAX_CONSIDERED_USES): Document. - * doc/passes.texi: Document induction variable optimizations pass. - -2004-09-04 Kaveh R. Ghazi - - * builtin-attrs.def (ATTR_NOTHROW_SENTINEL_1): New. - * builtins.def (BUILT_IN_EXECLE): Set ATTR_NOTHROW_SENTINEL_1. - * c-common.c (c_common_attribute_table): Accept parameters to - sentinel attribute. - (check_function_sentinel, handle_sentinel_attribute): Likewise. - * doc/extend.texi: Update accordingly. - -2004-09-04 Kaveh R. Ghazi - - * builtin-attrs.def (ATTR_SENTINEL, ATTR_SENTINEL_NOTHROW_LIST): - New. - * builtins.def (BUILT_IN_EXECL, BUILT_IN_EXECLP): Add `sentinel' - attribute. - * c-common.c (handle_sentinel_attribute, check_function_sentinel): - New functions. - (c_common_attribute_table): Add `sentinel' attribute. - (check_function_arguments): Handle `sentinel' attribute. - * doc/extend.texi: Document `sentinel' attribute. - -2004-09-04 H.J. Lu - - * configure: Regenerated. - -2004-09-04 Richard Kenner - - * gimplify.c (internal_get_tmp_var): Remove unused var CLASS. - - * tree.c (save_expr): No longer TREE_READONLY. - -2004-09-04 Jan Hubicka - - * passes.c (rest_of_clean_state): Fix merge conflict made during - commiting the patch. - -2004-09-04 Jan Hubicka - - * passes.c (rest_of_clean_state): Decompose the instruction stream. - -2004-09-04 Richard Sandiford - - * doc/md.texi (shift patterns): New anchor. Add reference to - TARGET_SHIFT_TRUNCATION_MASK. - * doc/tm.texi (TARGET_SHIFT_TRUNCATION_MASK): Document. - * target.h (shift_truncation_mask): New target hook. - * targhook.h (default_shift_truncation_mask): Declare. - * targhook.c (default_shift_truncation_mask): Define. - * target-def.h (TARGET_SHIFT_TRUNCATION_MASK): Define. - (TARGET_INITIALIZER): Include it. - * simplify-rtx.c (simplify_binary_operation): Combine ASHIFT, ASHIFTRT - and LSHIFTRT cases. Truncate arg1 if SHIFT_COUNT_TRUNCATED, otherwise - reject all out-of-range values. Fix sign-extension code for modes - whose width is smaller than HOST_BITS_PER_WIDE_INT. - * optabs.c (simplify_expand_binop, force_expand_binop): New functions. - (expand_superword_shift, expand_subword_shift): Likewise. - (expand_doubleword_shift_condmove, expand_doubleword_shift): Likewise. - (expand_binop): Use them to implement double-word shifts. - * config/arm/arm.c (arm_shift_truncation_mask): New function. - (TARGET_SHIFT_TRUNCATION_MASK): Define. - -2004-09-04 Jan Hubicka - - * tree.c (iterate_hash_expr): Optimize, avoid use of iterative_hash_object. - (mix): New macro copied from hashtab.c - (iterative_hash_hashval_t, iterative_hash_pointer, - iterative_hash_host_wide_int): New functions based on hashtab.c - implementation. - -2004-09-04 Richard Sandiford - - * config/mips/mips.md (mask): New mode attribute. - (zero_extendsidi2): Add memory alternative. - (*zero_extendsidi2_mem): Delete. - (zero_extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. Use - memory_operand in the TARGET_MIPS16 check. - (*zero_extend[qh]i[sd]i2{,_mips16}): Name previously unnamed patterns. - Redefine using :GPR and :SHORT. - (zero_extendqihi2): Use memory_operand in the TARGET_MIPS16 check. - -2004-09-04 Uros Bizjak - - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_RINT{,F,L} - using rint_optab. - (expand_builtin): Expand BUILT_IN_RINT{,F,L} using - expand_builtin_mathfn. - * genopinit.c (optabs): Rename trunc_optab to btrunc_optab. Use - btrunc?f patterns for btrunc_optab. Implement rint_optab using - rint?f patterns. - * optabs.c (init_optabs): Initialize rint_optab. - * optabs.h (enum optab_index): Rename OTI_trunc to OTI_btrunc. - Add new OTI_rint. - (btrunc_optab): Rename macro from trunc_optab. - (rint_optab): Define corresponding macro. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT_FLOOR, - UNSPEC_FRNDINT_CEIL, UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM. - - * config/i386/i386-protos.h (emit_i387_cw_initialization): - Change prototype. Add new int parameter. - * config/i386/i386.c (emit_i387_cw_initialization): - Handle new rounding modes. - - * config/i386/i386.h (enum fp_cw_mode): Delete. - (MODE_NEEDED): Handle new rounding modes. - (EMIT_MODE_SET): Change condition to handle new rounding modes. - - * config/i386/i386.md (UNSPEC_FRNDINT_FLOOR, UNSPEC_FRNDINT_CEIL, - UNSPEC_FRNDINT_TRUNC, UNSPEC_FRNDINT_MASK_PM): New unspecs to - represent different rounding modes of frndint insn. - (type): Add frndint type. - (i387, length, memory): Handle this type. - (i387_cw): New attribute definition. - (*fix_truncdi_1, fix_truncdi_nomemory, fix_truncdi_memory, - *fix_truncsi_1, fix_truncsi_nomemory, fix_truncsi_memory, - *fix_trunchi_1, fix_trunchi_nomemory, fix_trunchi_memory): - Add "i387_cw" attribute defined to "trunc". - (x86_fnstcw_1): Remove comment. - (*frndintxf2): Rename insn definition to frndintxf2. Move - insn definition near rint?f2 expanders. - (rintdf2, rintsf2, rintxf2): New expanders to implement rint, - rintf and rintl built-ins as inline x87 intrinsics. - (frndintxf2_floor): New pattern to implement floor rounding - mode with frndint x87 instruction. - (floordf2, floorsf2, floorxf2): New expanders to implement floor, - floorf and floorl built-ins as inline x87 intrinsics. - (frndintxf2_ceil): New pattern to implement ceil rounding - mode with frndint x87 instruction. - (ceildf2, ceilsf2, ceilxf2): New expanders to implement ceil, - ceilf and ceill built-ins as inline x87 intrinsics. - (frndintxf2_trunc): New pattern to implement trunc rounding - mode with frndint x87 instruction. - (btruncdf2, btruncsf2, btruncxf2): New expanders to implement trunc, - truncf and truncl built-ins as inline x87 intrinsics. - (frndintxf2_mask_pm): New pattern to implement rounding - mode with exceptions with frndint x87 instruction. - (nearbyintdf2, nearbyintsf2, nearbyintxf2): New expanders to - implement nearbyint, nearbyintf and nearbyintl built-ins as - inline x87 intrinsics. - -2004-09-04 Richard Sandiford - - * config/mips/mips.md (SHORT): New mode macro. - (size): New mode attribute. - (extend[qh]i[sd]i2): Redefine using :GPR and :SHORT. - (*extend[qh]i[sd]i2): New define_insn_and_split, combining previous - *extend[qh]i[sd]i2 and *extend[qh]i[sd]i2_mem patterns. Use only if - !ISA_HAS_SEB_SEH. - (*extend[qh]i[sd]i2_se[bh]): New pattern, combining previous - *extend[qh]isi2_hw patterns and extending them to di. - (extendqihi2): Implement as define_insn_and_split that produces - extendqisi2 after reload. - -2004-09-03 Devang Patel - - * Makefile.in (OBJS-common): Add tree-if-conv.o - (tree-if-conv.o): New rule. - * cfgloop.c (flow_loop_exit_edges_find): Set EDGE_LOOP_EXIT flag. - (get_loop_body_in_bfs_order): New. - * cfgloop.h (get_loop_body_in_bfs_order): New. - * tree-flow.h (enum move_pos): Move here from .. - * tree-ssa-loop-im.c (enum move_pos): here. - (movement_possibility): Make externally visible. - * tree-optimize.c (init_tree_optimization_passes): New entry for - if conversion pass. - * tree-pass.h (pass_if_conversion): New. - * tree-ssa-operands.c (get_expr_operands): Handle COND_EXPR. - * tree-if-conv.c: New file. - * doc/passes.texi: Document tree if-conversion pass. - * doc/tree-ssa.texi: Same. - -2004-09-03 H.J. Lu - - PR target/14925: - Makefile.in (LIB2ADDEHSTATIC): New. - (LIB2ADDEHSHARED): New. - (LIBUNWIND): New. - (LIBUNWINDDEP): New. - (SHLIBUNWIND_LINK): New. - (SHLIBUNWIND_INSTALL): New. - (libgcc.mk): Pass LIB2ADDEHSTATIC, LIB2ADDEHSHARED, LIBUNWIND, - LIBUNWINDDEP, SHLIBUNWIND_LINK and SHLIBUNWIND_INSTALL. - (clean): Remove libunwind* - (stage1-start): Remove and copy stage1/libunwind*. - (stage2-start): Remove and copy stage2/libunwind*. - (stage3-start): Remove and copy stage3/libunwind*. - (stage4-start): Remove and copy stage4/libunwind*. - (stageprofile-start): Remove and copy stageprofile/libunwind*. - (stagefeedback-start): Remove and copy stagefeedback/libunwind*. - - * config.gcc (ia64*-*-linux*): Always add t-libunwind to - tmake_file. Add t-libunwind-elf and ia64/t-glibc-libunwind to - tmake_file if --with-system-libunwind isn't used. - - * config/ia64/t-glibc-libunwind: New file. - * config/t-libunwind-elf: Likewise. - * unwind-compat.c: Likewise. - * unwind-compat.h: Likewise. - * unwind-dw2-fde-compat.c: Likewise. - - * config/ia64/t-glibc (LIB2ADDEH): Updated. - * config/ia64/t-hpux (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. - - * config/ia64/unwind-ia64.c: Include "unwind-compat.h". Define - aliases if needed. - * unwind-dw2-fde-glibc.c: Likewise. - * unwind-dw2.c: Likewise. - - * config/t-libunwind (LIB2ADDEH): Updated. - (LIB2ADDEHSTATIC): New. - (T_CFLAGS): Add -DUSE_LIBUNWIND_EXCEPTIONS. - (TARGET_LIBGCC2_CFLAGS): Set to -DUSE_GAS_SYMVER. - - * configure.ac: Change --enable-libunwind-exceptions to - --with-system-libunwind. Don't define USE_LIBUNWIND_EXCEPTIONS. - * configure: Regenerated. - * config.in: Updated. - - * doc/install.texi (ia64-*-linux): Require libunwind 0.98 or - above and mention --with-system-libunwind. - (ia64-*-hpux*): Mention --enable-libunwind-exceptions is - removed in gcc 3.4.3 and later. - - * gcc.c (init_spec): Add -lunwind to -lgcc_s if - USE_LIBUNWIND_EXCEPTIONS is defined. - - * mklibgcc.in: Support libunwind. - -2004-09-03 H.J. Lu - - * config/i386/i386.c (x86_branch_hints): Remove m_PENT4 and - m_NOCONA. - -2004-09-03 Richard Henderson - - PR middle-end/9997 - * cfgexpand.c (LOCAL_ALIGNMENT): Provide default. - (STACK_ALIGNMENT_NEEDED, FRAME_GROWS_DOWNWARD): Likewise. - (struct stack_var, EOC, stack_vars, stack_vars_alloc, stack_vars_num, - stack_vars_sorted, stack_vars_conflict, stack_vars_conflict_alloc, - frame_phase, get_decl_align_unit, add_stack_var, triangular_index, - resize_stack_vars_conflict, add_stack_var_conflict, - stack_var_conflict_p, add_alias_set_conflicts, stack_var_size_cmp, - union_stack_vars, partition_stack_vars, dump_stack_var_partition, - expand_one_stack_var_at, expand_stack_vars, expand_one_stack_var, - expand_one_static_var, expand_one_hard_reg_var, - expand_one_register_var, expand_one_error_var, defer_stack_allocation, - expand_one_var, expand_used_vars_for_block, clear_tree_used): New. - (expand_used_vars): Rewrite. - * Makefile.in (cfgexpand.o): Update dependencies. - -2004-09-04 Jan Hubicka - - * cfg.c (free_edge): Use ggc_free. - (expunge_block): Use ggc_free. - * passes.c (rest_of_clean_state): Free after compilation. - * tree-ssa.c (delete_tree_ssa): Free annotations; call release_defs - * tree-ssanames.c (release_defs): Ignore non-SSA_NAME arguments. - -2004-09-03 James E Wilson - - * tree-ssa-alias.c (may_be_aliased): Move TREE_STATIC check after - DECL_EXTERNAL check. - -2004-09-03 Eric Botcazou - - * final.c (output_in_slot): New global variable. - (final_scan_insn): Add new state '2' to the 'nopeepholes' parameter. - Pass 2 as 'nopeepholes' to self for insns in a SEQUENCE. Set - 'output_in_slot' before invoking output_asm_insn. - (output_asm_insn): Add a space after the tab if 'output_in_slot' - is set. - * config/sparc/sparc.c (output_return): Pass 2 as 'nopeepholes' to - final_scan_insn. - (output_sibcall): Likewise. - -2004-09-03 Jan Hubicka - - * tree-ssa-operands.c (fini_ssa_operands): ggc_free unused arrays. - * tree-ssanames (init_ssanames): Likewise. - -2004-09-03 Ziemowit Laski - - * stub-objc.c (objc_is_id, objc_declare_alias, objc_declare_class, - objc_declare_protocols, objc_start_protocol, - objc_start_class_interface, objc_start_category_interface, - objc_continue_interface, objc_finish_interface, - objc_add_instance_variable, objc_set_visibility, objc_set_method_type, - objc_start_class_implementation, objc_start_category_implementation, - objc_continue_implementation, objc_finish_implementation, - objc_add_method_declaration, objc_start_method_definition, - objc_finish_method_definition, objc_build_keyword_decl, - objc_build_method_signature, objc_build_encode_expr, - objc_build_protocol_expr, objc_build_selector_expr, - objc_build_message_expr, objc_build_string_object, - objc_get_class_reference, objc_get_protocol_qualified_type, - objc_static_init_needed_p, objc_generate_static_init_call): New stubs. - -2004-09-03 James E Wilson - - * config/mips/mips.h (TARGET_CPU_CPP_BUILTINS): Add __mips3d. - - * config/mips/generic.md (generic_frecip_fsqrt_step): New. - * config/mips/mips-ps-3d.md (mips_rsqrt1_): Use frsqrt1 type. - (mips_rsqrt2_): Use frsqrt2 type. - (mips_recip1_): Use frdiv1 type. - (mips_recip2_): Use frdiv2 type. - * config/mips/mips.md (type): Add frdiv1, frdiv2, frsqrt1, frsqrt2. - * config/mips/sb1.md (ir_sb1_fpu_2pipes, ir_sb1_fpu_1pipe): Add frdiv1 - and frsqrt1. - (ir_sb1_fpu_step2_2pipes, ir_sb1_fpu_step2_1pipe): New. - -2004-09-03 Daniel Jacobowitz - - * reload.c (find_reloads): Swap operand_loc pointers for - find_dummy_reload if we have swapped two operands. - -2004-09-03 Hans-Peter Nilsson - - * config/cris/cris.h (ASM_OUTPUT_CASE_END): Use prev_nonnote_insn - to get the tablejump-insn before the jump-table label. - -2004-09-03 Ziemowit Laski - - * c-common.h (objc_is_id, objc_declare_alias, objc_declare_class, - objc_declare_protocols, objc_build_message_expr, - objc_finish_message_expr, objc_build_selector_expr, - objc_build_protocol_expr, objc_build_encode_expr, - objc_build_string_object, objc_get_protocol_qualified_type, - objc_get_class_reference, objc_get_class_ivars, - objc_start_class_interface, objc_start_category_interface, - objc_start_protocol, objc_continue_interface, objc_finish_interface, - objc_start_class_implementation, objc_start_category_implementation, - objc_continue_implementation, objc_finish_implementation, - objc_set_visibility, objc_set_method_type, objc_build_method_signature, - objc_add_method_declaration, objc_start_method_definition, - objc_finish_method_definition, objc_add_instance_variable, - objc_build_keyword_decl, objc_build_throw_stmt, objc_begin_try_stmt, - objc_finish_try_stmt, objc_begin_catch_clause, - objc_finish_catch_clause, objc_build_finally_clause, - objc_build_synchronized, objc_static_init_needed_p, - objc_generate_static_init_call): New prototypes. - -2004-09-03 Steve Ellcey - - * config/ia64/ia64.c (ia64_function_arg): Use PARALLEL even if there - is only one reg. - (ia64_function_value): Ditto. - -2004-09-03 Jan Beulich - - * config.gcc: Resurrect NetWare as a target. Handle special case of - Novell linker to be used (specified through --with-ld=) and threading - model of either Posix (default) or NKS. - * config/i386/i386.c (ix86_return_pops_args): Conditionalize popping - of incoming hidden argument on KEEP_AGGREGATE_RETURN_POINTER. - * config/i386/i386.h (KEEP_AGGREGATE_RETURN_POINTER): New. - * config/i386/netware.c, config/i386/netware.h: New. - * config/i386/nwld.c, config/i386/nwld.h: New. - * config/i386/netware-crt0.c: New. - * config/i386/netware-libgcc.c: New. - * config/i386/netware-libgcc.def: New. - * config/i386/netware-libgcc.exp: New. - * config/i386/t-netware, config/i386/t-nwld: New. - * gthr-nks.h: New. - * doc/install.texi: Document NKS threading model. - -2004-09-03 Jan Beulich - - PR c/7054 - * defaults.h (TARGET_DEFAULT_PACK_STRUCT): Provide default. - * tree.h (initial_max_fld_align): Declare - * stor-layout.c (initial_max_fld_align): Define and initialize. - (maximum_field_alignment): Initialize to the same value. - * common.opt: Add -fpack-struct= variant of switch. - * opts.c: Handle -fpack-struct= variant of switch. - * c-pragma.c: Change #pragma pack() handling so that it becomes - compatible to other compilers: accept individual 'push' argument, - make final pop restore (command line) default, correct interaction - of push/pop and sole specification of a new alignment (so that the - sequence #pragma pack(push) - #pragma pack() becomes identical - to #pragma pack(push, ). - * doc/extend.texi: New node "Structure-Packing Pragmas" under - "Pragmas", describing #pragma pack. - * doc/invoke.texi: Document -fpack-struct= variant of switch. - * doc/tm.texi: Adjust description for HANDLE_PRAGMA_PACK_PUSH_POP. - Document new TARGET_DEFAULT_PACK_STRUCT. - -2004-09-03 Devang Patel - - * dwarf2out.c (gen_field_die). Equate decl number to die. - -2004-09-03 Vladimir Makarov - - PR target/15832 - * global.c (modify_reg_pav): New function. - (make_accurate_live_analysis): Call the new function. Move pavin - modification by earlyclobber set into the new function. - -2004-09-03 Andreas Schwab - - * config/m68k/m68k.c (output_andsi3): Use -1 instead of - (HOST_WIDE_INT)0xffffffff since CONST_INT value are always sign - extended. - -2004-09-02 Jan Beulich - - * Makefile.in (LIB2ADDEHDEP): Add unwind.h and unwind-pe.h. - * mklibgcc.in (libgcc_dep): New, covering general dependencies, but - not unwind code specific ones. - (libgcc2_c_dep): Replace general dependencies with use of libgcc_dep. - Remove unwind code specific dependencies. - (libgcov_c_dep): Replace general dependencies with use of libgcc_dep. - Remove gbl-ctors.h. - Add libgcc_dep to output generated for LIB2ADD, LIB2ADDEH, and - LIB2ADD_ST. Add LIB2ADDEHDEP to output generated for LIB2ADDEH. - * tsystem.h: Declare memcpy and memset when inhibit_libc. - -2004-09-02 Roman Zippel - - * combine.c (try_combine): Delay modifying of insns which cannot - be easily undone. - -2004-09-02 Daniel Berlin - - * gcc/common.opt: Rename ivcanon to tree-loop-ivcanon, tree-lim to - tree-loop-im. - * gcc/tree-ssa-loop.c: Ditto - * gcc/tree-ssa-loop-ivcanon.c: Ditto - * gcc/doc/invoke.texi: Ditto. - -2004-09-02 Ziemowit Laski - - * c-decl.c (store_parm_decls_newstyle): Make static. - (store_parm_decls_from): New function. - * c-tree.h (store_parm_decls_newstyle): Remove prototype. - (store_parm_decls_from): New prototype. - -2004-09-02 David Edelsohn - - * config/rs6000/rs6000.c (expand_block_move): Use SImode and - HImode with STRICT_ALIGNMENT. - -2004-09-02 Mark Mitchell - - * config/arm/bpabi.h (TARGET_BPABI_CPP_BUILTINS): Define. - (TARGET_OS_CPP_BUILTINS): Likewise. - * config/arm/symbian.h (TARGET_OS_CPP_BUILTINS): Include - TARGET_BPABI_CPP_BUILTINS. - -2004-09-02 Roman Zippel - - * combine.c (distribute_notes): Don't add REG_LABEL to jump insn. - -2004-09-02 Eric Christopher - - * builtins.c (expand_builtin_cabs): Delete. - (expand_builtin): If unable to fold the values do a normal - library call for builtin_cab*. - (fold_builtin_cabs): Depend on optimize and optimize_size. - * optabs.c (expand_cmplxdiv_straight): Delete. - (expand_cmplxdiv_wide): Ditto. - (expand_vector_binop): Ditto. - (expand_vector_unop): Ditto. - (expand_complex_abs): Delete. - (expand_binop): Remove calls to above functions. - Remove open coding of complex arithmetic. - (expand_unop): Ditto. - * optabs.h: Remove prototypes. - -2004-09-02 Ziemowit Laski - - * c-decl.c (store_parm_decls_newstyle): Make externally visible. - * c-tree.h (store_parm_decls_newstyle): New prototype. - -2004-09-02 Geoffrey Keating - - * config/rs6000/rs6000.c (expand_block_clear): Use vector - instructions if available. - (expand_block_move): Likewise. - -2004-09-03 Jan Hubicka - - * rtl.def (RANGE_INFO, RANGE_REG, RANGE_VAR, RANGE_LIVE): Kill. - -2004-09-02 Mark Mitchell - - * config/arm/symbian.h (LIB_SPEC): Define to empty. - * config/arm/t-symbian (SHLIB_LC): Likewise. - -2004-09-02 Paul Brook - - * config/arm/bpabi.c (__aeabi_ul2d, __aeabi_ul2f): Remove. - -2004-09-02 Richard Sandiford - - * config/mips/mips.c (mips_classify_symbol, mips_fetch_insns): - (mips_restore_gp, mips_set_return_address, mips_expand_prologue) - (mips16_fp_args, mips_avoid_hazard): Replace abort with gcc_assert. - (build_mips16_call_stub): Likewise. Remove daft CALL_INSN checks. - (mips_issue_rate): Remove unreachable abort. - (mips_symbolic_constant_p, mips_symbolic_address_p, mips_symbol_insns) - (mips_output_move, mips_relational_operand_ok_p, mips_arg_info) - (mips_block_move_straight, print_operand_address, mips_file_start) - (mips_initial_elimination_offset, mips16_fp_args, dump_constants_1) - (mips_output_conditional_branch, mips_expand_builtin_direct) - (mips_expand_builtin_compare): Replace abort with gcc_unreachable. - * config/mips/mips.md (rotr3, consttable_float): Replace abort - with gcc_assert. - -2004-09-02 Richard Sandiford - - * config/mips/mips.md (*lea_high64): Change split condition to - flow2_completed. Add a peephole2 to generate a more parallel version. - -2004-09-02 Jan Hubicka - - * gimplify.c (gimplify_compound_lval): Move "stack" varray out of - GGC. - - * ggc-page.c: include tree-flow.h. - (extra_order_size_table): Add stmt_ann_d. - (STAT_LABEL): Rename from .... - (LABEL): ... this one. - * Makefile.in (ggc-page.o): Add dependency. - - * ggc-common.c (ggc_force_collect): New global variable. - (loc_description): Add fields "freed", "collected" - (ptr_hash): New static hash - (ptr_hash_entry): New structure. - (hash_ptr,eq_ptr,ggc_prune_ptr): New static functions. - (ggc_record_overhead): Take ptr argument, record it - (ggc_prune_overhead_list, ggc_free_overhead): New functions. - (cmp_statistics): Imrove sorting. - (dump_ggc_loc_statistics): Output newly collected statistics - * ggc-page.c (ggc_alloc): Update call of ggc_record_overhead - (ggc_free): Call ggc_free_overhead. - (ggc_collect): Force collection when asked to be forced. - (ggc_collect): Call ggc_prune_overhead_list. - * ggc.h (ggc_force_collect): Declare - (ggc_record_overhead): Update prototype. - (ggc_free_overhead, ggc_prune_overhead_list): Declare. - -2004-09-02 James E Wilson - - * common.opt (ftrapping-math): Default to on. - -2004-09-02 Richard Earnshaw - - * arm/predicates.md (arm_reload_memory_operand): Allow MEM. - -2004-09-02 Denis Chertykov - - PR target/16884 - * config/avr/avr.md ("movmemhi"): Substitute match_dup to - match_scratch. - (*movmemqi_insn): Likewise. - (*movmemhi): Likewise. - (clrmemhi): Likewise. - (*clrmemqi): Likewise. - (*clrmemhi): Likewise. - -2004-09-02 Paul Brook - - * config.gcc (arm*-*-eabi* | arm*-*-symbianelf*): Set - default_use_cxa_atexit=yes. - -2004-09-02 Alan Modra - - * config/rs6000/linux64.h: Don't include signal.h or sys/ucontext.h. - (struct kernel_old_ucontext): Delete. - (struct gcc_pt_regs, gcc_sigcontext, gcc_ucontext): New. - (MD_FALLBACK_FRAME_STATE_FOR): Use gcc_* structs. Only define - when IN_LIGGCC2. - -2004-09-02 Richard Sandiford - - * toplev.c (process_options): Fix typo. - -2004-09-01 Richard Henderson - - PR middle-end/17258 - * calls.c (initialize_argument_information): Tighten pass-through - conditions for pass-by-reference. Remove dead TARGET_EXPR code. - Use build_fold_addr_expr. - (emit_library_call_value_1): Use build_fold_addr_expr. Remove code - that assumes ADDR_EXPR allocates stack space. - * fold-const.c (build_fold_addr_expr_with_type): Look through - WITH_SIZE_EXPR. - -2004-09-01 Dan Nicolaescu - - * gengenrtl.c (gendef): Use rtx_alloc, don't do PUT_CODE. - * ggc.h (ggc_alloc_rtx): Delete. - -2004-09-01 Roger Sayle - - * expmed.c (enum alg_code): Remove long unused enumeration values. - (struct mult_cost): New structure to hold the "score" of a synthetic - multiply sequence, including both a rtx_cost and a latency field. - (MULT_COST_LESS): New macro to compare mult_cost to a constant. - (CHEAPER_MULT_COST): New macro to compare two mult_costs. - (struct algorithm): Change type of cost field to be mult_cost. - (synth_mult): Change type of cost_limit argument to be a - pointer to a mult_cost. Update all cost comparisons to use the - new mult_cost infrastructure. For alg_add_factor and - alg_sub_factor operations, latency is lower than the rtx_cost. - (choose_mult_variant): Update calls to synth_mult. Perform - cost comparisons using the new mult_cost infrastructure. - (expand_mult_highpart): Use alg.cost.cost instead of alg.cost - to optain the total rtx_cost of a synth_mult "algorithm". - -2004-09-01 David Edelsohn - - * config/rs6000/power4.md: Increase store latency to 12. - * config/rs6000/power5.md: Same. - -2004-09-01 James E Wilson - - PR target/14064 - * config/avr/avr.c (avr_unique_section): Delete prototype and - definition. - (TARGET_ASM_UNIQUE_SECTION): Delete. - -2004-09-01 Ziemowit Laski - - * c-parse.in (primary): Call objc_build_message_expr(), - objc_build_selector_expr(), objc_build_protocol_expr(), - objc_build_encode_expr() and objc_build_string_object() instead of - build_message_expr(), build_selector_expr(), build_protocol_expr(), - build_encode_expr() and build_objc_string_object(), respectively. - (component_decl_list2): Call objc_get_class_ivars() instead of - get_class_ivars_from_name(). - (keyworddecl): Call objc_build_keyword_decl() instead of - build_keyword_decl(). - (receiver): Call objc_get_class_reference() instead of - get_class_reference(). - (reswords): Add blank line before @@ifobjc section, for clarity. - -2002-09-01 Fariborz Jahanian - - * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Restrict alignment - to Altivec vetors. - -2004-09-01 Wu Yongwei - Danny Smith - - * gthr-win32.h (__gthread_recursive_mutex_t): Use 'unsigned long', - not Windows 'DWORD'. - (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Correct typo. - (__GTHREAD_RECURSIVE_MUTEX_INIT_DEFAULT): Likewise. - (__gthr_win32_recursive_mutex_init_function): Add prototype for - __GTHREAD_HIDE_WIN32API case.. - (__gthr_win32_recursive_mutex_lock): Likewise. - (__gthr_win32_recursive_mutex_trylock): Likewise. - (__gthr_win32_recursive_mutex_unlock): Likewise. - (__gthread_recursive_mutex_init_function); Add definition for - __GTHREAD_HIDE_WIN32API case. - (__gthread_recursive_mutex_lock): Correct call to InterlockedDecrement. - * config/i386/grthr-win32.c (__gthread_recursive_mutex_lock): Correct - call to InterlockedDecrement. - -2004-09-01 Richard Kenner - - * tree-tailcall.c (find_tail_calls): Also fail is statement has - volatile operands. - - * tree-ssa.c (propagate_into_addr): Properly test for LHR. - - * doc/c-tree.texi: Document new operands for ARRAY_REF and - COMPONENT_REF. - -2004-09-01 Zdenek Dvorak - - * Makefile.in (rtl-profile.o, value-prof.o): Add GCC_H dependency. - * common.opt (fspeculative-prefetching): New. - * flags.h (flag_speculative_prefetching_set): Declare. - * gcov-io.c (gcov_write_counter, gcov_read_counter): Allow negative - values. - * opts.c (flag_sepculative_prefetching_set): New variable. - (common_handle_option): Handle -fspeculative-prefetching. - * passes.c (rest_of_compilation): Ditto. - * profile.c (instrument_values, compute_value_histograms, branch_prob): - Use vectors instead of arrays. - * toplev.c (process_options): Handle -fspeculative-prefetching. - * rtl-profile.c: Include ggc.h. - (rtl_gen_interval_profiler, rtl_gen_pow2_profiler, - rtl_gen_one_value_profiler_no_edge_manipulation, - rtl_gen_one_value_profiler, rtl_gen_const_delta_profiler): Type of - argument changed. - * tree-profile.c (tree_gen_interval_profiler, tree_gen_pow2_profiler, - tree_gen_one_value_profiler, tree_gen_const_delta_profiler): Type of - argument changed. - * value-prof.c: Include ggc.h. - (NOPREFETCH_RANGE_MIN, NOPREFETCH_RANGE_MAX): New - macros. - (insn_prefetch_values_to_profile, find_mem_reference_1, - find_mem_reference_2, find_mem_reference, gen_speculative_prefetch, - speculative_prefetching_transform): New. - (value_profile_transformations): Call speculative_prefetching_transform. - (insn_values_to_profile): Call insn_prefetch_values_to_profile. - (insn_divmod_values_to_profile, rtl_find_values_to_profile, - tree_find_values_to_profile, find_values to profile): Use vectors - instead of arrays. - (free_profiled_values): Removed. - * value-prof.h (struct histogram_value): Renamed to - struct histogram_value_t. - (histogram_value, histogram_values): New types. - (find_values_to_profile): Declaration changed. - (free_profiled_values): Removed. - (struct profile_hooks): Type of argument of the hooks changed to - histogram_value. - * doc/invoke.texi (-fspeculative-prefetching): Document. - -2004-09-01 Zdenek Dvorak - - PR rtl-optimization/16408 - * gcse.c (replace_store_insn): Fix LIBCALL/RETVAL notes. - -2004-09-01 Richard Henderson - - * config/ns32k/ns32k.h (TRANSFER_FROM_TRAMPOLINE): Remove. - (TRAMPOLINE_TEMPLATE): Merge code from __trampoline inline. - -2004-09-01 Jakub Jelinek - - * libgcc-std.ver (GCC_3.4.2): Export also __trampoline_setup. - -2004-09-01 Mike Stump - - * config/darwin.c (machopic_symbol_defined_p): In addition to - being SYMBOL_REF_LOCAL_P, a symbol must also be - ! SYMBOL_REF_EXTERNAL_P, as only those are _always_ locally - defined in this output file, or translation unit in the case - of IMA not being used. - (machopic_output_indirection): SYMBOL_REF_LOCAL_P symbols - never need .indirect_symbol when indirecting. - -2004-09-01 Jakub Jelinek - - * Makefile.in (bb-reorder.o): Add several dependencies. - -2004-09-01 Jakub Jelinek - - * fold-const.c (operand_equal_p): Require equal sign also for - FIX_{CEIL,TRUNC,FLOOR,ROUND}_EXPR. - -2004-09-01 Richard Earnshaw - - * config.gcc (--with-cpu on ARM): Preserve the canonical cpu name - for use in configargs.h. Put the cname in a separate variable. Use - that to set target_cpu_default2. - -2004-09-01 J"orn Rennecke - Nick Clifton - - * config/sh/sh.md ("length"): Increase branch length when - SH1 pic code to 18: 12 bytes of instructions, 4 byte for the - constant, 2 byte for aligning the constant. - -2004-09-01 Richard Earnshaw - - * arm/arm-cores.def (ARM_CORE): Add new field for the real name of the - CPU. - (arm7tdmi-s): New CPU name. - * arm/arm.c (ARM_CORE): Update for new format. - * arm/arm.h (ARM_CORE): Likewise. - * arm/gentune.sh: Update for extra field. - * config.gcc: Likewise. - * arm/arm-tune.md: Regenerate. - * doc/invoke.texi: Document the real processor names for ARM cpus. - -2004-09-01 Richard Earnshaw - - * arm/ieee754-df.S (aeabi_ul2d, aeabi_l2d, floatundidf) - (floatdidf): New functions. - * arm/ieee754-sf.S (aeabi_ul2f, aeabi_l2f, floatundisf) - (floatdisf): New functions. - * t-arm-elf: Use them. - -2004-09-01 Ziemowit Laski - - * c-common.h (lookup_interface): Remove prototype. - (is_class_name): Rename to objc_is_class_name. - (lookup_objc_ivar): Rename to objc_lookup_ivar. - (get_current_scope): Rename to objc_get_current_scope. - * c-decl.c (get_current_scope): Rename to objc_get_current_scope. - * c-parse.in (parmlist_or_identifiers_1): Get rid of unused variable. - (yylexname): Call objc_is_class_name() instead of is_class_name(). - * c-typeck.c (build_external_ref): Call objc_lookup_ivar() - instead of lookup_objc_ivar(). - * stub-objc.c (lookup_interface): Remove stub. - (is_class_name): Rename to objc_is_class_name. - (lookup_objc_ivar): Rename to objc_lookup_ivar. - -2004-08-31 Mark Mitchell - - * config.gcc (arm*-*-symbianelf*): Do not include t-bpabi. - * config/arm/lib1funcs.asm: Do not include supplemental .S files - when compiling for Symbian. - * config/arm/symbian.h (RENAME_LIBRARY): New macro. - (TARGET_OS_CPP_BUILTINS): Likewise. - * config/arm/t-symbian (LIB1ASMFUNCS): Define. - -2004-08-31 Stan Shebs - - * toplev.c (process_options): Ensure debug_hooks is initialized. - -2004-08-31 Mark Mitchell - - * target-def.h (TARGET_CXX): Add TARGET_CXX_EXPORT_CLASS_DATA. - * target.h (cxx): Add export_class_data. - * config/arm/arm.c (arm_cxx_export_class_data): New function. - (TARGET_CXX_EXPORT_CLASS_DATA): Use it. - * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Document it. - -2004-08-31 Kaz Kojima - - * config/sh/sh.c (output_branch): Check the insn length possibly - in the delayed slot. - -2004-08-31 Richard Kenner - - * tree-pretty-print.c (dump_generic_node, case CONVERT_EXPR): Add - blank after ')'. - (op_symbol, case *_{DIV,MOD}_EXPR): Say what rounding is being used. - - * c-common.c (c_alignof_expr): Use DECL_ALIGN_UNIT and TYPE_ALIGN_UNIT. - (c_sizeof_of_alignof_type): Likewise. - * expr.c (array_ref_element_size): Likewise. - (highest_pow2_factor_for_target): Likewise. - * gimplify.c (canonicalize_addr_expr): Likewise. - (gimplify_compound_lval): Likewise. - * stor-layout.c (finalize_record_size, finalize_type_size): Likewise. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Likewise. - * varasm.c (assemble_variable): Likewise. - (output_constant_def_contents): Alignments are unsigned. - -2004-08-31 Richard Kenner - Jeff Law - - * tree-cfg.c (cfg_remove_useless_stmts_bb): Also invalidate if VAL - gets modified. - -2004-08-31 Mark Mitchell - - * hooks.c (hook_bool_void_true): New function. - * hooks.h (hook_bool_void_true): Declare. - * target-def.h (TARGET_CXX): Add - TARGET_CXX_KEY_METHOD_MAY_BE_INLINE. - * target.h (struct cxx): Add key_method_may_be_inline. - * config/arm/arm.c (arm_cxx_key_method_may_be_inline): New - function. - (TARGET_CXX_KEY_METHOD_MAY_BE_INLINE): New macro. - * config/arm/bpabi.h: Use __THUMB_INTERWORK__ instead of - __THUMB_INTERWORK. - -2004-08-31 Denis Chertykov - - PR target/15417 - * config/avr/avr.c (avr_hard_regno_mode_ok): Enable usage of - frame pointer register only in Pmode while reload in progress. - -2004-08-31 Stephane Carrez - - PR target/15334 - * config/m68hc11/m68hc11.c (m68hc11_override_options): Disable -fweb - because it breaks the 32-bit shift patterns that rely on a match_dup. - -2004-08-31 Matt Austern - - * config/darwin.c (darwin_make_decl_one_only): Allocate section - names once per compilation, instead of once per symbol. - -2004-08-31 Paolo Bonzini - - * Makefile.in (build_subdir): New substitution. - (fixinc.sh): Simplify heavily since fixincludes is already built. - (stmp-fixinc): Depend on specs.ready. - (install-mkheaders): Use new location of fixincludes. - (clean): Do not descend into fixinc. - (FORBUILD): Replace with ../$(build_subdir). - * configure.ac (build_subdir): Substitute. - (FORBUILD): Do not set. - (all_outputs): Remove fixinc/Makefile. - (default commands): Do not create links in fixinc. - * mkfixinc.sh: New, from fixinc/mkfixinc.sh without - the fixincludes configuration steps and substituting - @FIXINCL@ in fixinc.in. - * fixinc.in: New, from fixinc/fixincl.sh. - - * fixinc/*: Removed. - -2004-08-31 Joseph S. Myers - - * attribs.c (strip_attrs): Remove. - (split_specs_attrs): Move ... - * c-decl.c: ... to here. - * tree.h (split_specs_attrs, strip_attrs): Remove. - * c-tree.h (split_specs_attrs): Declare. - -2004-08-31 Richard Sandiford - - * read-rtl.c: Disable RTL checking. - (apply_macro_to_rtx): Use XTMPL to access 'T' fields. - -2004-08-31 Richard Sandiford - - * config/mips/mips.md (fcond): New code macro and attribute. - (sunordered_[sd]f, suneq_[sd]f, sunlt_[sd]f, sunle_[sd]f) - (seq_[sd]f, slt_[sd]f, sle_[sd]f): Redefine using :SCALARF and fcond. - (sgt_[sd]f, sge_[sd]f): Redefine using :SCALARF. - -2004-08-30 Mark Mitchell - - Revert: - 2004-08-29 Mark Mitchell - PR rtl-optimization/16590 - * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. - -2004-08-30 Andrew Pinski - - * hard-reg-set.h: - s/HOST_BITS_PER_WIDES_FAST_INT/HOST_BITS_PER_WIDEST_FAST_INT. - * ChangeLog: Fix previous ChangeLog entry. - - PR rtl-opt/13987 - * config.host (use_long_long_for_widest_fast_int): New, default is - off. - (ia64-*-hpux*): Enable use_long_long_for_widest_fast_int. - * configure.ac: If use_long_long_for_widest_fast_int, then - define USE_LONG_LONG_FOR_WIDEST_FAST_INT. - * configure: Regenerate. - * config.in: Regenerate. - * hwint.h (HOST_WIDEST_FAST_INT, HOST_BITS_PER_WIDEST_FAST_INT): - New: widest integer type supported efficiently in hardware for the - host. - * sbitmap.h (SBITMAP_ELT_BITS): Define based on - HOST_BITS_PER_WIDEST_FAST_INT. - (SBITMAP_ELT_TYPE): Define based on HOST_WIDEST_FAST_INT. - * hard-reg-set.h (HARD_REG_ELT_TYPE): Define based on - HOST_WIDEST_FAST_INT - instead of HOST_WIDE_INT. - (HARD_REG_SET_LONGS): Likewise. - (UHOST_BITS_PER_WIDE_INT): Likewise. - Change the checks for the fast cases to be based on - HOST_BITS_PER_WIDEST_FAST_INT instead of HOST_BITS_PER_WIDE_INT. - -2004-08-30 Steven Bosscher - - * cfgcleanup.c (merge_memattrs): Look at the value of MEM_SIZE, - not the pointers. - -2004-08-30 Geoffrey Keating - - PR 12738 - PR 17205 - Radar 3460526 - Radar 3775729 - * c-decl.c (grokdeclarator): Produce error for 'static' on local - function declaration. - -2004-08-30 Richard Henderson - - * expr.c (array_ref_element_size): Force aligned_size back to - sizetype. - (component_ref_field_offset): Similarly for aligned_offset. - * tree.c (recompute_tree_invarant_for_addr_expr): Mark raw - low-bound, element-size, field-offset fields rather than - computed values. - -2004-08-30 Joseph S. Myers - - * c-parse.in (parmlist_or_identifiers_1): Remove unreachable and - redundant code. - -2004-08-30 Joseph S. Myers - - * c-tree.h (struct language_function): Add arg_info element. - * c-decl.c (current_function_arg_info): New. - (grokdeclarator, store_parm_decls): Use it instead of - DECL_ARGUMENTS. - (c_push_function_context, c_pop_function_context): Save and - restore it. - -2004-08-30 Richard Henderson - - * c-typeck.c (build_unary_op): Don't expand ADDR_EXPR of a - COMPONENT_REF to pointer arithmetic. - * varasm.c (initializer_constant_valid_p): Allow "&(*c).f", for - constant "c" as a valid constant initializer. Allow narrowing of - differences against the same base object, for any base object. - -2004-08-30 Richard Henderson - - * expr.c (expand_expr_addr_expr): New. - (expand_expr_real_1) : Use it. - -2004-08-30 Richard Sandiford - - * config/mips/mips.c (MIPS_FP_CONDITIONS): New macro. - (mips_fp_condition): New enum. - (mips_fp_conditions): New array. - (print_fcc_operand): Delete. - (print_operand): Remove %V, %v and %Q. Redefine %Z so that it prints - the operand and comma if and only if ISA_HAS_8CC. Add %Y. - (builtin_description): Add "cond" field. - (DIRECT_BUILTIN): Initialize it. - (CMP_{SCALAR,PS,4S}_BUILTINS, MOVTF_BUILTINS): Split INSN parameter - into INSN and CODE. Initialize the "cond" field. - (CMP_BUILTINS): Update accordingly. - (mips_bdesc): Use MIPS_FP_CONDITIONS to invoke CMP_BUILTINS. - (mips_expand_builtin_movtf, mips_expand_builtin_compare): Take the - mips_fp_condition as argument. Make it the final operand of the - comparison instruction. - (mips_expand_builtin): Update accordingly. - * config/mips/mips.md (UNSPEC_C_*, UNSPEC_CABS_*): Delete. - (UNSPEC_C, UNSPEC_CABS): New constants. Shuffle others to fill - the gaps. - * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps, bc1any[24][ft]): - Don't use the 'Q' operand prefix; just print the operand normally. - (mips_cabs_*, mips_c_*): Delete, replacing with... - (mips_c_cond_{ps,4s}, mips_cabs_cond_{s,d,ps,4s}): ...these new - patterns. Split the 4s versions into 2 ps patterns after reload. - -2004-08-30 Richard Henderson - - * fold-const.c (tree_expr_nonzero_p): Use get_base_address before - assuming an ADDR_EXPR is non-null. - -2004-08-30 Jason Merrill - - * gthr-posix.h, gthr-dce.h: Add #pragma weaks. - -2004-08-30 Nathan Sidwell - - * alias.c (mems_in_disjoint_alias_sets_p, record_alias_subset, - record_set, rtx_equal_for_memref_p, init_alias_analysis): Use - gcc_assert and gcc_unreachable instead of abort. - * alloc-pool.c (abort, fancy_abort): Remove. - (create_alloc_pool, free_alloc_pool, pool_alloc, pool_free): Use - gcc_assert or gcc_unreachable. - * attribs.c (init_attributes, decl_attributes): Likewise. - * bb-reorder.c (FREE, find_traces_1_round, copy_bb, - mark_bb_for_unlikely_executed_section, - add_labels_and_missing_jumps, fix_crossing_conditional_branches, - fix_crossing_unconditional_branches): Likewise. - * bitmap.c (bitmap_first_set_bit, bitmap_last_set_bit, - bitmap_operation): Likewise. - * bt-load.c (insn_sets_btr_p, augment_live_range, - move_btr_def): Likewise. - * builtins.c (c_readstr, expand_builtin_longjmp, apply_args_size, - apply_result_size, expand_builtin_apply, expand_builtin_mathfn, - expand_builtin_mathfn_2, expand_builtin_mathfn_3, - builtin_memcpy_read_str, expand_movstr, expand_builtin_stpcpy, - expand_builtin_memcmp, expand_builtin_args_info, - std_gimplify_va_arg_expr, expand_builtin_unop, - expand_builtin_fputs, expand_builtin_profile_func, - expand_builtin_fork_or_exec, fold_builtin_bitop, - fold_builtin_classify, fold_builtin_fputs): Likewise. - -2004-08-30 Nathan Sidwell - - * gcov-io.c (GCOV_CHECK): Use gcc_assert when available. - * gcov.c (abort): Remove undef. - - * tree.h (BINFO_PRIMARY_BASE_OF): Remove. - (struct tree_binfo): Remove primary field. - -2004-08-30 Paolo Bonzini - - * fixinc/Makefile.in (machname.h): Remove. - (fixincl.x): Do not pass $@ to genfixes. - * fixinc/genfixes: Remove code to produce machname.h. - * fixinc/fixincl.sh: Move it here instead. - * fixinc/fixlib.c: Do not conditionalize on MN_NAME_PAT's presence, - instead check if pz_mn_name_pat is NULL. Make mn_get_regexps - return a bool indicating whether pz_mn_name_pat is NULL. - * fixinc/fixlib.h: Do not conditionalize on MN_NAME_PAT's presence. - Declare extern C variables for the ENV_TABLE. - * fixinc/fixfixes.c: Do not conditionalize on MN_NAME_PAT's presence, - instead use the result of mn_get_regexps. - * fixinc/fixtests.c: Likewise. - -2004-08-30 Paolo Bonzini - - * configure.ac: Do not run fixincludes after stage1 during - toplevel bootstrap. - * configure: Regenerate. - -2004-08-30 Richard Earnshaw - - * sched-deps.c (get_condition): Partially revert previous, by never - trying to extract the condition from a condjump. - -2004-08-30 Nathan Sidwell - - * c-common.c (c_sizeof_or_alignof_type): Use gcc_assert. - (handle_visibility_attribute, c_determine_visibility): Likewise. - * c-common.h (my_friendly_assert): Remove. - -2004-08-30 Richard Sandiford - - * config/mips/mips.md (UNSPEC_{RSQRT,RECIP}[12]_{S,D,PS}): Delete. - (UNSPEC_{RSQRT,RECIP}[12]): New constants. - (UNSPEC_MOVE_TF_PS): Renumber to avoid gaps. - * config/mips/mips-ps-3d.md (*movcc_v2sf_[sd]i): Use :GPR. - (mips_{rsqrt,recip}[12]_{s,d,ps}): Use :ANYF. - -2004-08-30 Diego Novillo - - * tree-pretty-print.c (dump_generic_node): Handle VALUE_HANDLE - in COMPONENT_REF nodes. - -2004-08-29 Gabriel Dos Reis - - PR c++/15378 - * c-opts.c (c_common_handle_option): set - global_dc->warning_as_error_requested. - * diagnostic.c (diagnostic_initialize): Tidy. - * diagnostic.h (diagnostic_context::x_data): Remove - (diagnostic_context::issue_warnings_are_errors_message): Rename - from warnings_are_errors_message. - (diagnostic_context::warning_as_error_requested): New. - -2004-08-30 Richard Earnshaw - - * sched-deps.c (get_condition): Fix breakage in previous patch. - -2004-08-30 Paul Brook - - * doc/install.texi: Fix broken mpfr link. - -2004-08-29 David O'Brien - - * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Sync '-p' handling with - other FreeBSD platforms. - -2004-08-29 Richard Earnshaw - - * arm.h (REVERSE_CONDITION): Define. - (REVERSIBLE_CC_MODE): All comparisons are now reversible. - -2004-08-29 Richard Earnshaw - - * flow.c (REVERSE_CONDEXEC_PREDICATES_P): Use the whole comparison, not - just the codes, call reversed_comparison_code (). - (ior_reg_cond): Update arguments to REVERSE_CONDEXEC_PREDICATES_P. - (not_reg_cond): Use reversed_comparison_code. - (and_reg_cond): Likewise. - * ifcvt.c (cond_exec_process_if_block): Likewise. - * doc/tm.texi (REVERSE_CONDEXEC_PREDICATES_P): Update documentation. - -2004-08-29 Richard Earnshaw - - * sched-deps.c (get_condition): Rewrite using jump support functions. - Use reversed_comparison_code. - (conditions_mutex_p): Use reversed_comparison_code. - -2004-08-29 Richard Sandiford - - * config/mips/mips.c (override_options): Disable hot/cold partitioning - for MIPS16. - -2004-08-29 Richard Sandiford - - * config/mips/mips.h (mips_builtins, mips_cmp_choice): Delete. - (mips_function_type): Move to mips.c. - * config/mips/mips.c (mips_builtin_type): New enum. - (builtin_description): Replace code and ftype with builtin_type - and function_type. - (DIRECT_BUILTIN, CMP_SCALAR_BUILTINS, CMP_PS_BUILTINS, CMP_4S_BUILTINS) - (MOVTF_BUILTINS, CMP_BUILTINS): New macros. - (CODE_FOR_mips_abs_ps): Define. - (mips_bdesc): Use new macros. - (mips_expand_builtin): Use builtin_type. Update calls to subroutines. - (mips_init_builtins): Use the mips_bdesc[] index as the function code. - (mips_expand_builtin_direct): New function. - (mips_expand_builtin_movtf): Renamed from mips_expand_ps_cond_move_ - builtin. Replace boolean parameter with builtin_type. - (mips_expand_compare_builtin, mips_expand_scalar_compare_builtin) - (mips_expand_4s_compare_builtin): Delete, replacing with... - (mips_expand_builtin_compare): ...this new function. - -2004-08-29 Mark Mitchell - - PR rtl-optimization/16590 - * gcse.c (pre_delete): Do not create invalid REG_EQUAL notes. - -2004-08-29 Diego Novillo - - * tree-ssa-ccp.c (ccp_visit_stmt): Remove #if 0 guards. - * tree-ssa-propagate.c: Fix documentation. - -2004-08-29 Richard Sandiford - - * config/mips/mips.md (*mov[sd]f_on_*): Redefine using :SCALARF. - (mov[sd]fcc): Likewise. - -2004-08-29 Richard Sandiford - - * config/mips/mips.md (cmp[sd]f): Redefine using :SCALARF. - -2004-08-29 Richard Sandiford - - * config/mips/mips.md (divide_condition): New mode attribute. - (div[sd]f3, *div[sd]f3): Use it. Redefine using :SCALARF. - (sqrt[sd]f3): Redefine using SCALARF. - (*recip[sd]f3, *rsqrt[ab]): Likewise. Name formerly unnamed - patterns. - -2004-08-29 Richard Sandiford - - * config/mips/mips.md (ANYF, SCALARF): New mode macros. - (loadx, storex, fmt, UNITMODE): New mode attributes. - (add{sf,df,v2sf}3, sub{sf,df,v2sf}3): Redefine using :ANYF. - (mul[sd]f3): Redefine using :SCALARF. - (*mul[sd]f3): Renamed from mul[sd]f3_internal. Use :SCALARF. - (*mul[sd]3_r4300): Likewise mul[sd]f3_r4300. - (*m{add,sub}{sf,df,v2sf}3): Name formerly unnamed patterns. Use :ANYF. - Check TARGET_FUSED_MADD for V2SF too. - (*nm{add,sub}{sf,df,v2sf}3{,_fastmath}): Likewise, except v2sf patterns - were already named. - (abs{sf,df,v2sf}3, neg{sf,df,v2sf}3): Redefine using :ANYF. - (*[sl][wd]xc1_[sd]i): Redefine using :ANYF. - -2004-08-29 Richard Sandiford - - * config/mips/mips.c (mips_init_builtins): Simplify. Only create - V2SF_type_node if it will be needed. - -2004-08-29 Richard Sandiford - - * config/mips/mips.h (MIPS_CMP_MOVT, MIPS_CMP_MOVF): Delete. - * config/mips/mips.c (mips_prepare_builtin_arg): New function. - (mips_prepare_builtin_target): New function. - (mips_expand_builtin): Use them. Update calls to subroutines. - (mips_expand_ps_cond_move_builtin): Use the new functions. Replace - cmp_choice with a boolean argument to select between movt and movf. - Take the comparison's icode as an argument, not the function's fcode. - (mips_expand_compare_builtin): New function. Rename existing function - to mips_expand_scalar_compare_builtin. - (mips_expand_scalar_compare_builtin, mips_expand_4s_compare_builtin) - (mips_expand_ps_compare_builtin): Use the new functions. Take the - comparison's icode as an argument, not the builtin's fcode. - -2004-08-29 Richard Sandiford - - * config/mips/mips.c (print_operand): Remove '%Y' and '%y'. - (mips_expand_4s_compare_builtin): Redefine CCV4 to be 0 if all - registers are false and -1 if all registers are true. - (mips_expand_ps_compare_builtin): Likewise CCV2. Use subregs for - MIPS_CMP_UPPER and MIPS_CMP_LOWER. - * config/mips/mips.md (mips_cond_move_tf_ps): Use %Q rather than %y. - (bc1any4t, bc1any4f): Adjust for new CCV4 interpretation. - (bc1any2t, bc1any2f): Likewise CCV2. - (bc1upper2t, bc1lower2t, bc1upper2f, bc1lower2f): Delete. - -2004-08-29 Richard Sandiford - - * config/mips/mips.md (UNSPEC_MOVE_TF_PS): New. - * config/mips/mips-ps-3d.md (mips_cond_move_tf_ps): Express as an - UNSPEC rather than an IF_THEN_ELSE. - * config/mips/mips.c (mips_expand_ps_cond_move_builtin): Emit - mips_cond_move_tf_ps by name. - -2004-08-29 Chao-ying Fu - James E Wilson - - * config/mips/mips-modes.def (V2SF, CCV2, CCV4): New modes. Give CCV2 - 8 byte size and alignment. Give CCV4 16 byte size and alignment. - * config/mips/mips-ps-3d.md: New file. - * config/mips/mips.c (TARGET_VECTOR_MODE_SUPPORTED_P, - TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. - (mips_const_insns): Handle CONST_VECTOR the same as CONST_DOUBLE. - (mips_output_move): Emit "mov.ps" for V2SFmode. - (mips_arg_info): Add checks for VECTOR_FLOAT_TYPE_P and - MODE_VECTOR_FLOAT. - (override_options): Check if TARGET_MIPS3D and there was an explicit - !TARGET_PAIRED_SINGLE_FLOAT. Set MASK_PAIRED_SINGLE, if TARGET_MIPS3D. - Check if TARGET_FLOAT64 and TARGET_HARD_FLOAT are both true, when - TARGET_PAIRED_SINGLE_FLOAT is true. Check if the ISA supports - TARGET_PAIRED_SINGLE_FLOAT. Allow MODE_VECTOR_FLOAT in fp registers, - and allow CCV2 and CCV4 to occupy two and four CC registers. - (print_fcc_operand): New function. - (print_operand): Add %Y, %y, %V, %v, %Q for CCV2, CCV4, CC. Modify - %Z to call print_fcc_operand. - (mips_function_value): Handle MODE_VECTOR_FLOAT. - (mips_class_max_nregs): Check for ST_REGS, and handle CCmodes. - (mips_vector_mode_supported_p): New function. - (mips_hard_regno_nregs): Check for ST_REG_P, and handle CCmodes. - (builtin_description): New struct. - (mips_bdesc): New array of struct builtin_description. - (mips_expand_builtin, mips_init_builtins, - mips_expand_ps_cond_move_builtin, mips_expand_4s_compare_builtin, - mips_expand_compare_builtin, mips_expand_ps_compare_builtin): New - functions. - * config/mips/mips.h (MASK_PAIRED_SINGLE, MASK_MIPS3D): New defines. - (TARGET_PAIRED_SINGLE_FLOAT, TARGET_MIPS3D): New defines. - (TARGET_CPU_CPP_BUILTINS): Add __mips_paired_single_float. - (TARGET_SWITCHES): Added "-mpaired-single", "-mno-paired-single", - "-mips3d", and "-mno-mips3d". - (ASM_SPEC): Map -mips3d to -mips3d in gas. - (EXTRA_CONSTRAINT_Y): New macro. - (EXTRA_CONSTRAINT_STR): Renamed from EXTRA_CONSTRAINT. Add new - multi-letter constraint 'Y'. - (CONSTRAINT_LEN): New macro. - (enum mips_builtins): New for MIPS builtin functions. - (enum mips_function_type): New for the types of MIPS builtin functions. - (enum mips_cmp_choice): New for the MIPS comparison builtin functions. - * config/mips/mips.md: New constants for paired single and MIPS-3D - instructions. Include the new mips-ps-3d.md file. - (addv2sf3, subv2sf3, mulv2sf3, absv2sf2, negv2sf2, movv2sf, - movv2sf_hardfloat_64bit): New named patterns. - (madd.ps, msub.ps, nmaddv2sf, nmaddv2sf_fastmath, nmsubv2sf, - nmsubv2sf_fastmath, ldxc1_v2sf_si, ldxc1_v2sf_di, sdxc1_v2sf_si, - sdxc1_v2sf_di): New unnamed patterns. - * config/mips/predicates.md (const_0_operand, const_1_operand): Add - const_vector support. - (const_0_or_1_operand): New predicate. - * doc/invoke.texi (MIPS Options): Add -mpaired-single and -mips3d. - -2004-08-29 Diego Novillo - - * Makefile.in (OBJS-common): Add tree-ssa-propagate.o - (tree-ssa-propagate.o): New rule. - (GTFILES): Add tree-ssa-propagate.c. - * tree-flow.h (struct stmt_ann_d): Remove field - in_ccp_worklist. - * tree-ssa-propagate.c: New file. - * tree-ssa-propagate.h: New file. - * tree-ssa-ccp.c: Re-write to use the routines from - tree-ssa-propagate.c. - -2004-08-28 Andrew Pinski - - * tree-ssa-loop.c: Remove extra include of basic-block.h. - -2004-08-28 Ziemowit Laski - - * c-common.h: Update comments about ObjC/ObjC++ entry points. - (objc_is_reserved_word): New prototype. - (get_current_scope, objc_mark_locals_volatile): Move prototypes to - separate section; these are call-backs. - * c-lex.c (c_lex_with_flags): Call objc_is_reserved_word() to detect - ObjC/ObjC++ "@" keywords. - * c-tree.h (get_current_scope, objc_mark_locals_volatile): Remove - prototypes; they already live in c-common.h. - * stub-objc.c: Update copyright notice. - (objc_is_reserved_word): New stub. - -2004-08-28 Nathan Sidwell - - * system.h (gcc_assert): Remove __builtin_expect. Evaluate EXPR - even when not checking. - -2004-08-27 Jason Merrill - - PR c++/13684 - * gimplify.c (gimplify_cleanup_point_expr): Handle CLEANUP_EH_ONLY. - (gimple_push_cleanup): Add eh_only parm. - (gimplify_target_expr): Pass it. - * c.opt (-fno-threadsafe-statics): New option. - * c-opts.c (c_common_handle_option): Handle it. - * c-common.h (flag_threadsafe_statics): Declare it. - * c-common.c (flag_threadsafe_statics): Record it. - * doc/invoke.texi: Document it. - * tsystem.h (_GNU_SOURCE): Define. - * gthr-posix.h (__gthread_recursive_mutex_t): New typedef. - (__GTHREAD_RECURSIVE_MUTEX_INIT): New macro. - (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): New macro. - (__gthread_recursive_mutex_init_function): New fn. - (__gthread_recursive_mutex_lock): New fn. - (__gthread_recursive_mutex_trylock): New fn. - (__gthread_recursive_mutex_unlock): New fn. - * gthr-solaris.h, gthr-single.h, gthr-dce.h: Likewise. - * gthr-win32.h, gthr-vxworks.h: Likewise. - * gthr.h: Document. - -2004-08-27 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Increase - maximum skip to 15. Set function alignment, jump alignment, and - loop alignment to 16 for processors that form dispatch groups. - (rs6000_rtx_costs): outer_code is used. - -2004-08-27 Nathan Sidwell - - * stor-layout.c (sizetype_set): Remove. - (set_sizetype): Don't test or set it. - - * tree.h (size_int_type): Remove. - * fold-const.c: Do not #include gt-fold-const.h. - (size_htab_hash, size_htab_eq): Remove. - (size_int_kind): Use build_int_cst. - (new_const, size_htab): Remove. - (size_int_type): Remove. - (round_up): Use build_int_cst. - (round_down): Likewise. Remove spurious constant build. - -2004-08-27 Nathan Sidwell - - * configure.ac: Add ENABLE_ASSERT_CHECKING control. - Add is_release variable, use it for --enable-werror and - --enable-checking defaults. - * system.h (gcc_assert, gcc_unreachable): New. - * doc/install.texi (--enable-checking): Update. - * configure, config.in: Rebuilt. - -2004-08-26 Richard Sandiford - - * rtl.h (read_rtx): Change prototype. - * read-rtl.c (read_rtx): Provide the caller with both an rtx and a - line number. Return true on success. - * gensupport.c (process_include, init_md_reader_args_cb): Adjust - callers accordingly. - -2004-08-26 Richard Henderson - - * c-typeck.c (build_offsetof): Remove. - * c-tree.h (build_offsetof): Remove. - * c-common.c (fold_offsetof_1, fold_offsetof): New. - * c-common.h (fold_offsetof): Declare. - * c-parse.in (offsetof_base): New. - (offsetof_member_designator): Use it. Build references, not just - a tree list. - (primary): Use fold_offsetof, not build_offsetof. - -2004-08-26 Richard Henderson - - * tree.c (staticp): Return the static object. - * tree.h (staticp): Update decl. - * langhooks.h (struct lang_hooks): Change staticp return type to tree. - * langhooks.c (lhd_staticp): Return NULL_TREE. - * langhooks-def.h (lhd_staticp): Update decl. - * c-common.c (c_staticp): Return the static object. - * c-common.h (c_staticp): Update decl. - -2004-08-26 Richard Henderson - - * config/alpha/alpha.h (HARD_REGNO_MODE_OK): Allow complex float - modes. - -2004-08-26 Joseph S. Myers - - PR c/13801 - * c-decl.c (struct c_binding): Add type and inner_comp fields. - (bind): Set type and inner_comp fields. - (pop_scope): Restore type of decl to the correct type from an - outer scope. Give error when popping file scope for incomplete - arrays completed incompatibly with default initialization in an - inner scope. - (diagnose_mismatched_decls): Handle externs with initializers at - block scope. - (pushdecl): Set type of external declaration at block scope based - only on the visible declarations. Save type when changing the - type of a declaration. Merge an external declaration at block - scope with a visible static declaration at file scope. - (implicitly_declare): Give recycled old declaration the new type - except for incompatible declarations of built-in functions, saving - the old type. - -2004-08-26 Ziemowit Laski - - * c-parse.in (OBJC_TYPE_QUAL): New %token for ObjC use. - -2004-08-26 Daniel Berlin - - * tree-alias-common.c (gate_pta): New function. - (pass_build_pta): Use it. - (pass_del_pta): Use it. - (delete_alias_vars): Don't check flag_tree_points_to. - -2004-08-26 Fariborz Jahanian - - * config/rs6000/rs6000.h (HARD_REGNO_CALL_PART_CLOBBERED): Added - TFmode as additional register mode cloberred by call. - -2004-08-26 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_libcall_value): Generate - parallel pattern for library call returning DImode in - mixed mode. - -2004-08-26 Fariborz Jahanian - - * config/rs6000/rs6000.c (function_arg): Generate parallel - pattern for more split args. - -2004-08-26 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_split_multireg_move): Call - either gen_movdi_di_update or gen_movdi_si_update depending on - target mode. - * config/rs6000/rs6000.md (movdi_update): Changed to movdi__update, - to generate two versions. - -2004-08-26 Daniel Berlin - - * Makefile.in (lambda-code.o): New. - (lambda-trans.o): Ditto. - (TREE_DATA_REF_H): Ditto. - (LAMBDA_H): Ditto. - (lambda-mat.o): Use LAMBDA_H. - (tree-data-ref.o): Ditto. - * lambda-code.c: New file. Lambda code generation algorithm. - * lambda-trans.c: Ditto. Lambda transformation matrix support. - * lambda.h: Add lambda loop structures. - Add lambda loopnest structures. - Add lambda body vector structure. - Add lambda linear expression structures. - Add prototypes for functions in new files. - * lambda-mat.c: Include tree.h - -2004-08-26 Daniel Berlin - Sebastian Pop - - * tree-data-ref.h: Include lambda.h - (free_dependence_relation): Declared here. - (free_dependence_relations): Ditto. - (free_data_refs): Ditto. - * tree-data-ref.c (free_dependence_relation): New function. - (free_dependence_relations): Ditto. - (free_data_refs): Ditot. - (analyze_all_data_dependences): Free datarefs and dependence_relations. - (build_classic_dist_vector): Store in the dependence_relations the - information. Each arc in the dependence_relations graph is labelled - with the distance and direction vectors. - (build_classic_dir_vector): Ditto. - (compute_rw_wr_ww_dependences): Renamed again compute_all_dependences. - Now computes again the whole dependence graph including read-read - relations. - (compute_data_dependences_for_loop): Now dependence_relations contains - all the data, and thus it doesn't need to initialize the classic_dir - and classic_dist vectors. - (analyze_all_data_dependences): Adjusted for using the new interface of - compute_data_dependences_for_loop. Remove the statistics dump. - -2004-08-26 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_ld_opcodes, xtensa_st_opcodes): Delete. - (xtensa_expand_block_move): Update comment. - (override_options): Remove initialization of xtensa_{ld,st}_opcodes. - -2004-08026 Richard Earnshaw - - PR target/13506 - * toplev.c (crash_signal): If we crashed while emitting - a user asm, then die more gracefully. - -2004-08-26 Kazuhiro Inaoka - - PR target/17119. - * config/m32r.c (gen_compare): Use reg_or_int16_operand when - checking for a valid constant, regardless of sign. - -2004-08-25 Richard Henderson - - PR target/16974 - * config/alpha/alpha.md (adddi_fp_hack): Don't rely on splitting - if the constant satisfies add_operand. - -2004-08-25 Richard Henderson - - PR debug/10695 - * config/alpha/alpha.c (emit_frame_store_1, emit_frame_store): New. - (alpha_expand_prologue): Handle >32-bit frames. Generate proper - unwind info for >16-bit frames. - -2004-08-25 Richard B. Kreckel - - PR target/17171 - * config/i386/gas.h (ASM_COMMENT_START): Define to "#". - -2004-08-25 Richard Henderson - - * config/alpha/alpha.c (alpha_cannot_force_const_mem): New. - (TARGET_CANNOT_FORCE_CONST_MEM): New. - -2004-08-25 Andrew MacLeod - - * doc/tree-ssa.texi: Document new operand iterator. - -2004-08-26 Alan Modra - - PR target/16480 - * config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort - on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well - as PLUS base regs. - -2005-08-28 Paul Brook - - * config/arm/symbian.h (SUBTARGET_ASM_FLOAT_SPEC): Default to - -mfpu=vfp -march=armv5t - * config/arm/t-symbian: Change multilib to mfloat-abi=softfp. - -2004-08-25 Richard Henderson - - * target-def.h (TARGET_SCALAR_MODE_SUPPORTED_P): New. - * target.h (struct gcc_target): Add scalar_mode_supported_p. - * targhooks.c (default_scalar_mode_supported_p): New. - * targhooks.h (default_scalar_mode_supported_p): Declare. - * doc/tm.texi (TARGET_SCALAR_MODE_SUPPORTED_P): Document. - - * c-common.c (handle_mode_attribute): Query scalar_mode_supported_p - before attempting to create types. Tidy. - * expr.c (vector_mode_valid_p): Use scalar_mode_supported_p. - - * config/alpha/alpha.c (alpha_scalar_mode_supported_p): New. - (TARGET_SCALAR_MODE_SUPPORTED_P): New. - -2004-08-25 Richard Henderson - - * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Don't - set REAL_MODE_FORMAT for TFmode. - -2004-08-25 Ziemowit Laski - - * c-decl.c (grokparm): New function. - * c-tree.h (grokparm): New prototype. - -2004-08-25 Andrew MacLeod - - * tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand - iterator controlling structure. - (SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF, - SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS, - SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand - iterator flags. - (FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees. - (FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses. - (FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs. - (FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs. - * tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New. - Empty operand pointers. - * tree-flow-inline.h (op_iter_done): New. Return true if finished. - (op_iter_next_use): New. Return next use_operand_p. - (op_iter_next_def): New. Return next def_operand_p. - (op_iter_next_tree): New. Return next operands as a tree. - (op_iter_init): New. Initialize an iterator structure. - (op_iter_init_use): New. Initialize structure and get the first use. - (op_iter_init_def): New. Initialize structure and get the first def. - (op_iter_init_tree): New. Initialize structure and get the first tree. - (op_iter_next_maydef): New. Return next V_MAY_DEF operands. - (op_iter_init_maydef): New. Initialize structure and get the first - V_MAY_DEF operands. - * tree-cfg.c (tree_duplicate_bb): Use new operand iterator. - * tree-dfa.c (compute_immediate_uses_for_stmt, - redirect_immediate_uses): Use new operand iterator. - (v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete. - (mark_new_vars_to_rename): Use new operand iterator. Count virtual - operands instead of using *_disappeared_p routines. - * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt, - ssa_rewrite_stmt): Use new operand iterator. - * tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb, - rewrite_trees): Use new operand iterator. - * tree-pretty-print.c (dump_vops): Use new operand iterator. - * tree-sra.c (mark_all_v_defs): Use new operand iterator. - * tree-ssa-alias.c (compute_points_to_and_addr_escape, - dump_points_to_info): Use new operand iterator. - * tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize, - replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new - operand iterator. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary, - propagate_necessity): Use new operand iterator. - * tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator. - (register_definitions_for_stmt): Use new operand iterator. Take stmt as - a parameter instead of a stmt_ann_t. - * tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry, - build_tree_conflict_graph): Use new operand iterator. - * tree-ssa-loop-im.c (determine_max_movement, single_reachable_address, - rewrite_mem_refs): Use new operand iterator. - * tree-ssa-loop-manip.c (find_uses_to_rename_stmt, - check_loop_closed_ssa_use): Use new operand iterator. - * tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator. - * tree-ssanames.c (release_defs): Use new operand iterator. - * tree-vectorizer.c (vect_create_data_ref): Use new operand iterator. - -2004-08-25 Adam Nemet - - * tlink.c (initial_cwd): New variable. - (tlink_init): Initialize it. - (recompile_files): Use tlink_execute() instead of system(). Don't - duplicate verbose output of collect_execute. Restore initial_cwd. - Update comment before the function. - -2004-08-25 Ziemowit Laski - - * c-typeck.c (build_c_cast): In ObjC, always preserve (and silently - accept) a cast from one Objective-C pointer type to another. - -2004-08-25 Paolo Carlini - - * doc/install.texi: Document that libstdc++-v3 requires - now automake 1.9.1. - -2004-08-25 Caroline Tice - - * bb-reorder.c (partition_hot_cold_basic_blocks): Add more details - to comments at start of function. - * cfgbuild.c (make_edges): Add more details to hot/cold partitioning - comment. - * cfgcleanup.c (try_simplify_condjump, try_forward_edges, - merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps, merge_blocks_move, - try_crossjump_to_edge, try_crossjump_bb): Likewise. - * cfglayout.c (fixup_reorder_chain): Likewise. - * cfgrtl.c (rtl_can_merge_blocks, try_redirect_by_replacing_jump, - cfg_layout_can_merge_blocks_p): Likewise. - * ifcvt.c (find_if_case_1, find_if_case_2): Likewise. - * passes.c (rest_of_compilation): Update comments for calling - optimization that partitions hot/cold basic blocks. - * doc/invoke.texi: Update documentation of - freorder-blocks-and-partition flag. - -2004-08-25 Richard Sandiford - - * config/mips/mips.md (reg): Renamed mode attribute from ccreg. - (*mov*_on_*): Adjust accordingly. Add an explicit MOVECC: prefix. - -2004-08-25 Richard Sandiford - - * config/mips/mips.md (any_shift): New code macro. - (optab, insn): New code attributes. - ({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift. - Use the standard rather than internal patterns for the MIPS16 - double-shift optimization. - (*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns. - Redefine using :GPR and any_shift. - (*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend - to cover all three shifts. - (*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts. - Redefine using any_shift. Use :GPR and any_shift to combine splitters. - (*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts. - -2004-08-24 Geoffrey Keating - - * gimplify.c (lookup_tmp_var): Separate temporaries when not - optimizing. - -2004-08-25 John David Anglin - - PR libstdc++/17005 (fix for HP-UX 11.11) - * config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2. - (hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of - tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate. - * config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files. - * config/pa/pa-hpux.h (TARGET_HPUX): Define. - (LINK_SPEC): Handle march=1.0 option. - * config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX - and _XOPEN_SOURCE_EXTENDED for UNIX 95. - (SUBTARGET_OPTIONS): New define. - (LINK_SPEC): Handle march=1.0 option. - (STARTFILE_SPEC): New define. - * config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX - and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine - _INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98. - (SUBTARGET_OPTIONS): New define. - (LINK_SPEC): Handle march=1.0 option. - (STARTFILE_SPEC): New define. - * config/pa/pa.c (override_options): Add code to process -munix= option. - * config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare. - (TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default - defines. - (TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list. - (SUBTARGET_OPTIONS): Provide default define. - * config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1, - STANDARD_STARTFILE_PREFIX_2): New defines. - (STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary. - (ENDFILE_SPEC): Use %O. - * doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas. - Mention issue caused by changing namespace and runtime to UNIX 95/98. - * doc/invoke.texi (HPPA options): Move misplaced text to FRV options. - Document -munix=std option. - -2004-08-25 Steven Bosscher - - * cse.c (cse_around_loop, cse_check_loop_start, - cse_set_around_loop): Remove. - (cse_basic_block): Remove the around_loop argument. - (cse_end_of_basic_block): Remove the after_loop argument. - (cse_main): Likewise. - * rtl.h (cse_main): Update prototype. - * passes.c (rest_of_handle_cse, rest_of_handle_cse2, - rest_of_handle_gcse): Update cse_main calls. - -2004-08-25 Nathan Sidwell - - * tree.h (build_int_cst): New, sign extended constant. - (build_int_cstu): New, zero extended constant. - (build_int_cst_wide): Renamed from build_int_cst. - * tree.c (build_int_cst, build_int_cstu): New. - (build_int_cst_wide): Renamed from build_int_cst. - (make_vector_type, build_common_tree_nodes, - build_common_tree_nodes_2): Adjust build_int_cst calls. - * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, - expand_builtin_strpbrk, expand_builtin_fputs, - build_string_literal, expand_builtin_printf, - expand_builtin_sprintf, fold_builtin_classify_type, - fold_builtin_lround, fold_builtin_bitop, fold_builtin_isascii, - fold_builtin_toascii, fold_builtin_isdigit, - simplify_builtin_strstr, simplify_builtin_strpbrk, - fold_builtin_fputs, simplify_builtin_sprintf): Likewise. - * c-common.c (start_fname_decls, fix_string_type, shorten_compare, - DEF_ATTR_INT): Likewise. - * c-decl.c (complete_array_type, check_bitfield_type_and_width): - Likewise. - * c-lex.c (interpret_integer, lex_charconst): Likewise. - * c-parse.in (primary) Likewise. - * c-pretty-print.c (pp_c_integer_constant): Likewise. - * c-typeck.c (really_start_incremental_init, push_init_level, - set_nonincremental_init_from_string): Likewise. - * calls.c (load_register_parameters): Likewise. - convert.c (convert_to_pointer): Likewise. - coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, - build_fn_info_type, build_fn_info_value, build_ctr_info_value, - build_gcov_info): Likewise. - * except.c (init_eh, assign_filter_values): Likewise. - * expmed.c (store_fixed_bit_field, extract_bit_field, - extract_fixed_bit_field, extract_split_bit_field, expand_shift, - expand_mult_const, expand_mult_highpart_adjust, extract_high_half, - expand_sdiv_pow2, expand_divmod, make_tree): Likewise. - * expr.c (convert_move, emit_group_load, emit_group_store, - expand_assignment, store_constructor, store_field, - expand_expr_real_1, reduce_to_bit_field_precision): Likewise. - fold-const.c (force_fit_type, int_const_binop, fold_convert_const, - invert_truthvalue, optimize_bit_field_compare, - decode_field_reference, all_ones_mask_p, constant_boolean_node, - fold_div_compare, fold, fold_read_from_constant_string, - fold_negate_const, fold_abs_const, fold_not_const, round_up, - round_down): Likewise. - * function.c (assign_parm_setup_block): Likewise. - * stmt.c (shift_return_value, expand_case, estimate_case_costs): - Likewise. - * stor-layout.c (layout_type, initialize_sizetypes, - set_min_and_max_values_for_integral_type): Likewise. - * tree-chrec.c (chrec_fold_multiply_poly_poly, - reset_evolution_in_loop): Likewise. - * tree-chrec.h (build_polynomial_chrec): Likewise. - * tree-complex.c (build_replicated_const): Likewise. - * tree-eh.c (honor_protect_cleanup_actions, - lower_try_finally_onedest, lower_try_finally_copy, - lower_try_finally_switch): Likewise. - * tree-mudflap.c (mf_build_string, mx_register_decls, - mudflap_register_call, mudflap_enqueue_constant): Likewise. - * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): - Likewise. - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. - * tree-ssa-loop-niter.c (number_of_iterations_cond, - loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): - Likewise. - * tree-ssa-loop-ivcanon.c (create_canonical_iv, - canonicalize_loop_induction_variables): Likewise. - * tree-vectorizer.c (vect_create_index_for_array_ref, - vect_transform_loop_bound, vect_compute_data_ref_alignment): - Likewise. - - * config/alpha/alpha.c (alpha_initialize_trampoline, alpha_va_start, - alpha_gimplify_va_arg_1): Likewise. - * config/arm/arm.c (arm_get_cookie_size): Likewise. - * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. - * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. - * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, - mips_gimplify_va_arg_expr): Likewise. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. - * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, - add_compiler_branch_island): Likewise. - * config/s390/s390.c (s390_va_start): Likewise. - * config/sh/sh.c (sh_va_start): Likewise. - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): - Likewise. - * config/xtensa/xtensa.c (xtensa_va_start, - xtensa_gimplify_va_arg_expr): Likewise. - - * objc/objc-act.c (build_objc_string_object, - build_objc_symtab_template, init_def_list, init_objc_symtab, - init_module_descriptor, generate_static_references, - build_selector_translation_table, get_proto_encoding, - build_typed_selector_reference, build_selector_reference, - build_next_objc_exception_stuff, - build_method_prototype_list_template, generate_descriptor_table, - generate_protocols, build_protocol_initializer, - build_ivar_list_template, build_method_list_template, - build_ivar_list_initializer, generate_ivars_list, - generate_dispatch_table, generate_protocol_list, - build_category_initializer, build_shared_structure_initializer, - generate_shared_structures, handle_impent, - generate_objc_image_info): Likewise. - -2004-04-25 Paolo Bonzini - - * cfglayout.c (duplicate_insn_chain): Remove references to - NOTE_INSN_LOOP_VTOP and NOTE_INSN_LOOP_CONT. - * cfgloop.h (struct loop): Remove fields vtop, cont and cont_dominator. - * cfgrtl.c (rtl_delete_block): Remove handling of NOTE_INSN_LOOP_CONT. - * final.c (final_scan_insn): Remove references to NOTE_INSN_LOOP_VTOP - and NOTE_INSN_LOOP_CONT. - * insn-notes.def (NOTE_INSN_LOOP_VTOP, NOTE_INSN_LOOP_CONT): Remove. - * jump.c (squeeze_notes): Remove references to NOTE_INSN_LOOP_VTOP - and NOTE_INSN_LOOP_CONT. - * loop.c (scan_loops, find_and_verify_loops, for_each_insn_in_loop, - check_dbra_loop, loop_dump_aux): Remove references to removed notes - and fields. - * reorg.c (mostly_true_jump): Do not rely on NOTE_INSN_LOOP_VTOPs. - * unroll.c (unroll_loop, copy_loop_body, loop_iterations): Remove - references to removed notes and fields. - (subtract_reg_term, ujump_to_loop_cont): Remove. - -2004-08-25 Paolo Bonzini - - * doc/install.texi: Document that libcpp does not require - Automake any longer. Document that Automake 1.9.1 should - work everywhere. - -2004-08-25 Zack Weinberg - - * flags.h (enum debug_info_type): Remove DWARF_DEBUG. - * defaults.h (PREFERRED_DEBUGGING_TYPE): Remove check for - DWARF_DEBUGGING_INFO from choice-of-definition chain; - restructure using C89 features (#elif, #error). - * c-lex.c, final.c, opts.c, config/cris/cris.c, config/frv/frv.c - * config/sh/sh.h: Remove references to DWARF_DEBUG. - * doc/invoke.texi: Remove references to DWARF version 1; - clarify why -gdwarf-2 doesn't work. - -2004-08-25 Zack Weinberg - - * basic-block.h (BB_SET_PARTITION): Clear old value first. - * cfg.c (clear_bb_flags): Don't clear partition setting. - * ifcvt.c (find_if_case_1): Remove ??? comment. - -2004-08-25 Alan Modra - - PR target/17052 - * config/rs6000/rs6000.h (machine_function): Remove sysv_varargs_p. - * config/rs6000/sysv4.h (RS6000_VARARGS_AREA): Use - current_function_stdarg in place of sysv_varargs_p. - * config/rs6000/rs6000.c (setup_incoming_varargs): Don't set - sysv_varargs_p. - -2004-08-24 Richard Henderson - - PR target/16298 - * config/i386/i386.c (legitimate_constant_p): Rework to not accept - random codes within CONST. - -2004-08-24 James E Wilson - - * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS): Remove - -freorder-blocks-and-partition. - -2004-08-24 John David Anglin - - PR middle-end/17044 - * tree-ssa-threadupdate.c (redirection_data): Make static. - (thread_block): Use ggc_alloc_cleared to allocate struct - redirection_data. Don't free elements in redirection_data. - -2004-08-24 Richard Sandiford - - * config/mips/predicates.md (small_data_pattern): Match prefetches. - -2004-08-24 Zdenek Dvorak - - PR tree-optimization/17016 - * tree-ssa-loop-niter.c (number_of_iterations_cond, - number_of_iterations_exit): Use POINTER_TYPE_P instead - of testing for POINTER_TYPE. - -2004-08-24 Zdenek Dvorak - - * tree-ssa-loop-ivcanon.c: New file. - * tree-ssa-loop-manip.c (create_iv): New function. - * Makefile.in (tree-ssa-loop-ivcanon.o): Add. - (tree-ssa-loop.o, tree-ssa-loop-manip.o): Add SCEV_H dependency. - * cfgloop.c (mark_single_exit_loops): New function. - (verify_loop_structure): Verify single-exit loops. - * cfgloop.h (struct loop): Add single_exit field. - (LOOPS_HAVE_MARKED_SINGLE_EXITS): New constant. - (mark_single_exit_loops): Declare. - (tree_num_loop_insns): Declare. - * cfgloopmanip.c (update_single_exits_after_duplication): New function. - (duplicate_loop_to_header_edge): Use it. - * common.opt (fivcanon): New flag. - * timevar.def (TV_TREE_LOOP_IVCANON, TV_COMPLETE_UNROLL): New timevars. - * tree-cfg.c (tree_find_edge_insert_loc): Return newly created block. - (bsi_commit_edge_inserts_1): Pass null to tree_find_edge_insert_loc. - (bsi_insert_on_edge_immediate): New function. - * tree-flow.h (bsi_insert_on_edge_immediate, - canonicalize_induction_variables, tree_unroll_loops_completely, - create_iv): Declare. - * tree-optimize.c (init_tree_optimization_passes): Add - pass_iv_canon and pass_complete_unroll. - * tree-pass.h (pass_iv_canon, pass_complete_unroll): Declare. - * tree-scalar-evolution.c (get_loop_exit_condition, - get_exit_conditions_rec, number_of_iterations_in_loop, - scev_initialize): Use single_exit information. - * tree-ssa-loop-niter.c (number_of_iterations_cond): Record - missing assumptions. - (loop_niter_by_eval): Return number of iterations as unsigned - int. - * tree-ssa-loop.c (tree_ssa_loop_init): Mark single exit loops. - (tree_ssa_loop_ivcanon, gate_tree_ssa_loop_ivcanon, pass_iv_canon, - tree_complete_unroll, gate_tree_complete_unroll, pass_complete_unroll): - New passes. - (tree_ssa_loop_done): Call free_numbers_of_iterations_estimates. - * tree-ssanames.c (make_ssa_name): Allow creating ssa name before - the defining statement is ready. - * tree-vectorizer.c (vect_create_iv_simple): Removed. - (vect_create_index_for_array_ref, vect_transform_loop_bound): - Use create_iv. - (vect_transform_loop_bound): Use single_exit information. - (vect_analyze_loop_form): Cleanup bogus tests. - (vectorize_loops): Do not call flow_loop_scan. - * tree.h (may_negate_without_overflow_p): Declare. - * fold-const.c (may_negate_without_overflow_p): Split out from ... - (negate_expr_p): ... this function. - (tree_expr_nonzero_p): Handle overflowed constants correctly. - * doc/invoke.texi (-fivcanon): Document. - * doc/passes.texi: Document canonical induction variable creation. - -2004-08-24 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): Delete. - * config/mips/mips.c (print_operand): Fold %B/%b handling into %T/%t, - using the mode of the operand to decide between them. - * config/mips/mips.md (MOVECC): New mode macro. - (ccreg): New mode attribute. - (*mov{si,di,sf,df}_on_{cc,si,di}): Name formerly unnamed patterns. - Redefine using :GPR and :MOVECC. Use %T and %t for the condition. - (mov[sd]icc): Redefine using :GPR. - -2004-08-24 Richard Sandiford - - * config/mips/mips-protos.h (mips_emit_prefetch): Delete. - (mips_prefetch_cookie): New function. - * config/mips/mips.c (print_operand_address): Fix handling of - ADDRESS_CONST_INT. - (mips_emit_prefetch): Delete. - (mips_prefetch_cookie): New function. - * config/mips/mips.md (prefetch): Turn into a define_insn. Use a - mode of QImode for the address_operand. Use mips_prefetch_cookie - to calculate the first "pref" operand. - (prefetch_[sd]i, prefetch_[sd]i_address): Delete. - (prefetch_indexed_[sd]i): Redefine using :P. Use mips_prefetch_cookie. - -2004-08-24 Richard Earnshaw - - * arm.md: Include predicates.md. - * predicates.md: New file. - * arm.c (s_register_operand, arm_hard_register_operand) - (arm_general_register_operand, f_register_operand, reg_or_int_operand) - (arm_immediate_operand, arm_neg_immediate_operand) - (arm_not_immediate_operand, arm_rhs_operand, arm_rhsm_operand) - (arm_add_operand, arm_addimm_operand, arm_not_operand) - (offsettable_memory_operand, alignable_memory_operand) - (arm_reload_memory_operand, arm_float_rhs_operand) - (arm_float_add_operand, vfp_compare_operand, arm_float_compare_operand) - (index_operand, shiftable_operator, logical_binary_operator) - (shift_operator, equality_operator, arm_comparison_operator) - (minmax_operator, cc_register, dominant_cc_register) - (arm_extendqisi_mem_op, power_of_two_operand, nonimmediate_di_operand) - (di_operand, nonimmediate_soft_df_operand, soft_df_operand) - (const_shift_operand, load_multiple_operation) - (store_multiple_operation, multi_register_push, thumb_cmp_operand) - (thumb_cmpneg_operand, thumb_cbrch_target_operand) - (cirrus_register_operand, cirrus_fp_register) - (cirrus_shift_const): Delete, replaced with equivalents in - predicates.md. - (shift_op): Handle ROTATE. - * arm-protos.h: Delete declarations for above. - * arm.h (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. - * t-arm (MD_INCLUDES): Add predicates.md. - (s-preds): Depends on MD_INCLUDES. - -2004-08-24 Richard Sandiford - - * config/mips/mips.c (mips_gen_conditional_trap): Fix mode. - * config/mips/mips.md (*conditional_trap[sd]i): Name previously unnamed - patterns. Redefine using :GPR. Give the match_operator a mode. - Use '%2' rather than '%z2' for operand 2. - -2004-08-24 Richard Sandiford - - * config/mips/mips.md (load_call[sd]i): Redefine using :P. Add mode - attribute. - -2004-08-24 Richard Sandiford - - * config/mips/mips.md (indirect_jump): Use force_reg. Adjust names - of internal patterns. - (indirect_jump[sd]i): Renamed from indirect_jump_internal[12]. - Redefine using :P. - (tablejump): Use expand_binop to calculate address. Adjust names - of internal patterns. - (tablejump[sd]i): Renamed from tablejump_internal[12]. - Redefine using :P. - (tablejump_mips16[12]): Delete. - -2004-08-24 Richard Sandiford - - * config/mips/mips.md (*seq_[sd]i, *seq_[sd]i_mips16, *sne_[sd]i) - (*sgt_[sd]i, *sgt_[sd]i_mips16, *sge_[sd]i, *slt_[sd]i) - (*slt_[sd]i_mips16, *sle_[sd]i, *sle_[sd]i_mips16, *sgtu_[sd]i) - (*sgtu_[sd]i_mips16, *sge_[sd]i, *sltu_[sd]i, *sltu_[sd]i_mips16) - (*sleu_[sd]i, *sleu_[sd]i_mips16): Redefine using :GPR. - -2004-08-24 Richard Sandiford - - * config/mips/mips.md (cmpsi, cmpdi): Redefine using :GPR. - (*branch_zero[sd]i): Renamed from branch_zero{,_di}. Redefine - using :GPR. - (*branch_zero[sd]i_inverted): Likewise branch_zero{,_di}_inverted. - (*branch_equality[sd]i): Likewise branch_equality{,_di}. - (*branch_equality[sd]i_inverted): Likewise - branch_equality{,_di}_inverted. - (*branch_equality[sd]i_mips16): Name formerly unnamed patterns. - Redefine using :GPR. - -2004-08-24 Zack Weinberg - - * rtl.def: Reorganize, placing all codes used only in machine - descriptions at the end. - - * rtl.def: Wrap MD-only codes in #ifdef GENERATOR_FILE. - * gengtype.c: Don't include rtl.h. Define enum rtx_code and - rtx_name, rtx_format arrays by direct reference to rtl.def, - first undefining GENERATOR_FILE. Define enum insn_note and - note_insn_name array by direct reference to insn-notes.def. - (adjust_field_rtx_def): Remove local definition of rtx_name. - Use symbolic names for insn notes. - * Makefile.in (gengtype.o): Update dependencies. - -2004-08-24 Zack Weinberg - - * basic-block.h (struct basic_block_def): Reorder fields to - eliminate interior padding. Remove 'partition' field. - (BB_DISABLE_SCHEDULE, BB_HOT_PARTITION, BB_COLD_PARTITION) - (BB_UNPARTITIONED, BB_PARTITION, BB_SET_PARTITION) - (BB_COPY_PARTITION): New macros. - * bb-reorder.c, cfgcleanup.c, cfglayout.c, cfgrtl.c, ifcvt.c - Replace all references to the 'partition' field of a basic - block with new macros. - - * insn-notes.def: Delete NOTE_INSN_DISABLE_SCHED_OF_BLOCK. - * final.c (final_scan_insn): Don't handle it. - * modulo-sched.c: Set BB_DISABLE_SCHEDULE flag on g->bb - instead of emitting a NOTE_INSN_DISABLE_SCHED_OF_BLOCK note. - * sched-rgn.c (sched_is_disabled_for_current_region_p): - Look for a BB_DISABLE_SCHEDULE flag on the block instead of a note. - -2004-08-24 Nathan Sidwell - - * c-decl.c (c_init_decl_processing): Adjust - build_common_tree_nodes call. - * expmed.c (const_mult_add_overflow_p): Use - build_distinct_type_copy. - * stor-layout.c (early_type_list): Remove. - (layout_type): Don't append to early_type_list. - (initialize_sizetypes): Add signed_p argument. - (set_sizetype): Overwrite the stub type nodes directly. - * tree.c (copy_node_stat): Clear a type's value cache here ... - (build_distinct_type): ... not here. - (build_common_tree_nodes): Add signed_sizetype argument. Adjust. - * tree.h (initialize_sizetypes): Add signed_p argument. - (build_common_tree_nodes): Likewise. - - * objc/objc-act.c (get_static_reference): Use - build_variant_type_copy. - (get_protocol_reference): Likewise. - * objc/objc-act.h (TREE_STATIC_TEMPLATE): Use TREE_PRIVATE. - -2004-08-24 Richard Henderson - Andrew Pinski - - * gimplify.c (gimplify_array_ref_to_plus): Delete. - (gimplify_addr_expr): Do not call gimplify_array_ref_to_plus - for ARRAY_REF. - - * config/rs6000/rs6000.c (altivec_expand_builtin): Go passed - ARRAY_REF also to get to the STRING_CST. - -2004-08-24 Paul Brook - - * config/arm/arm.c (arm_override_options): Update error message. - * config/arm/arm.h (TARGET_HARD_FLOAT): Rename to - TARGET_HARD_FLOAT_ABI. - (TARGET_SOFT_FLOAT_ABI): Rename to TARGET_HARD_FLOAT. - (LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P): Use TARGET_HARD_FLOAT_ABI. - -2004-08-24 Kazuhiro Inaoka - - PR target/17093 - * config/m32r.md (movsi_sda): Add SI mode specification to - UNSPEC. - -2004-08-24 Nick Clifton - - * config/m32r/m32r.h (PREDICATE_CODES): Remove duplicate definition - of seth_add3_operand. - -2004-08-24 Nathan Sidwell - - * Makefile.in (PROTO_OBJS): Add errors.o. - * protoize.c (fancy_abort): Remove. - * mips-tfile.c (fancy_abort): Add parameters. - -2004-08-24 Jonathan Wakely - - * doc/trouble.texi (C++ misunderstandings): Fix example code. - -2004-08-24 Andreas Tobler - - * Makefile.in (HOOKS_H): Add dependency on MACHMODE_H. - (host-default.o): Add dependency on HOOKS_H. - * config/x-linux: Likewise. - * config/x-solaris: Likewise. - * config/i386/x-mingw32: Likewise. - * config/rs6000/x-darwin: Likewise. - -2004-08-23 James E Wilson - - * reg-notes.def (REG_NOTE): In comment, change DEF_INSN_NOTE to - DEF_REG_NOTE. - -2004-08-23 Mark Mitchell - - PR c/14492 - * dwarf2out.c (loc_descriptor_from_tree): Robustify. - -2004-08-23 Diego Novillo - - * cfg.c (check_bb_profile): Fix typos. - * function.c (assign_parm_is_stack_parm): Likewise. - * tree-nested.c: Likewise. - -2004-08-23 Daniel Jacobowitz - - * ggc-zone.c (struc alloc_chunk): Rearrange flag bits and SIZE. - Remove TYPECODE. - (ggc_alloc_zone_1): Mark TYPE as unused. Don't save it in the chunk. - -2004-08-23 Eric Christopher - - * defaults.h (VECTOR_MODE_SUPPORTED_P): Remove macro. - * system.h (VECTOR_MODE_SUPPORTED_P): Poison. - * target-def.h (TARGET_VECTOR_MODE_SUPPORTED_P): Define. - * target.h: Ditto. - * hooks.h: Include machmode.h. - (hook_bool_mode_false): Declare. - * hooks.c (hook_bool_mode_false): Define. - * expr.c (vector_mode_valid_p): Use targetm.vector_mode_supported_p. - * stor-layout.c (layout_type): Ditto. - * config/alpha/alpha.c (alpha_vector_mode_supported_p): New function. - Define to target macro. - * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): Delete. - * config/arm/arm.c: Ditto. Use. - * config/arm/arm.h: Ditto. - * config/arm/arm-protos.h: Ditto. - * config/i386/i386.c: Ditto. - * config/i386/i386.h: Ditto. - * config/rs6000/rs6000.c: Ditto. - * config/rs6000/rs6000.h: Ditto. - * config/sh/sh.c: Ditto. - * config/sh/sh.h: Ditto. - * config/sh/sh-protos.h: Ditto. - * config/sh/sh.md: Use. - * doc/tm.texi: Move documentation for VECTOR_MODE_SUPPORTED_P - to TARGET_VECTOR_MODE_SUPPORTED_P. - -2004-08-23 Nathan Sidwell - - * Makefile.in (BUILD_ERRORS): Set to build-errors. - (errors.o): New target for host. - (build-errors.o): New target for build. - (genobjs): Replace errors.o with build-errors. - (gengenrtl$(buildexeext)): Add $(BUILD_ERRORS). - (GCOV_OBJS, GCOV_DUMP_OBJS): Add errors.o. - (fix-headers$(build_exeext)): Add $(BUILD_ERRORS). - (fix-header.o): Add errors.h - * collect2.c (fancy_abort): Add parameters. - * collect2.h (fancy_abort): Don't declare. - * errors.h (fancy_abort): Don't declare. - * errors.c: Include either bconfig.h or config.h. - (fancy_abort): Trim filename. - * fix-header.c (v_fatal, fatal): Remove. - (progname): Remove definition. - (main): Set progname here. - * gcc.c (fancy_abort): Add parameters. - * gcc.h (fancy_abort): Remove declaration. - * gcov.c (fancy_abort): Remove. - * rtl.h (fancy_abort): Don't declare. - (abort): Don't define. - * tree.h (fancy_abort): Don't declare. - (abort): Don't define. - * system.h (fancy_abort): Declare. - (abort): Define to fancy_abort. - * fixinc/Makefile.in (ALLOBJ): Add ../build-errors.o - - * tree.h (enum size_type_kind): Remove USIZETYPE, UBITSIZETYPE. - (usize_type, ubitsizetype): Remove. - * stor-layout.c (set_sizetype): Don't initialize usizetype, - ubitsizetype. - * fold-const.c (size_diffop): TYPE can never be ubitsizetype. - - * tree.h (build_distinct_type_copy): New. - (build_type_copy): ... here. Rename to ... - (build_variant_type_copy): ... here. - * tree.c (build_qualified_type): Rename build_type_copy call. - (build_distinct_type_copy): New, broken out of ... - (build_type_copy): ... here. Rename to ... - (build_variant_type_copy): ... here. Use - build_distinct_type_copy. - (build_common_tree_nodes_2): Rename build_type_copy call. - * c-common.c (c_common_nodes_and_builtins): Rename build_type_copy - call. - (handle_packed_attribute, handle_unused_attribute, - handle_transparanet_union_attribute, handle_aligned_attribute, - handle_deprecated_attribute): Likewise. - * c-decl.c (clone_underlying_type, store_parm_decls_oldstyle): - Likewise. - * config/arm/arm.c (arm_handle_isr_attribyte): Likewise. - * config/rs6000/rs6000.c (rs6000_init_builtins): Use - build_distinct_type_copy. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (mfhilo_[sd]i): Redefine using :GPR. Add mode - attribute. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (length): Don't use mips_fetch_insns for indexed - loads and stores. - (*lwxc1_, *ldxc1_, *swxc1_, *sdxc1_): Name - formerly unnamed patterns. Redefine using :P for the address. Remove - explicit length attributes. - -2004-08-23 Zdenek Dvorak - - * tree-ssa-loop-im.c (fem_single_reachable_address, for_each_memref): - New functions. - (single_reachable_address): Use them. - (schedule_sm): Add dump. - (is_call_clobbered_ref): New function. - (determine_lsm_reg): Check whether the reference is call clobbered. - Only work for gimple_reg_type values. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (*mov_ra): Name previously unnamed MIPS16 - $31 store insns. Redefine using :GPR. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (P): New mode macro. - (*xgot_hi[sd]i, *xgot_lo[sd]i, *got_disp[sd]i, *got_page[sd]i) - (*load_got[sd]i, *low[sd]i, *low[sd]i_mips16): Redefine using :P. - Add mode attributes. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (UNSPEC_[LS][WD][LR]): Delete in favor of... - (UNSPEC_{LOAD,STORE}_{LEFT,RIGHT}): ...these new constants. Shuffle - later constants to cover the gap. - (load, store): New mode attributes. - (mov_l[wd]l, mov_l[wd]r, mov_s[wd]l, mov_s[wd]r): Redefine using :GPR. - Use new unspec constants. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (one_cmpl[sd]i2): Redefine using :GPR. - (and[sd]3, ior[sd]i3, xor[sd]i3): Likewise. Change 32-bit patterns - to use register_operand rather than uns_arith_operand as the predicate - for operand 1. Remove redundant MIPS16 force_reg() for operand 1. - (*and[sd]i3, *ior[sd]i3, *xor[sd]i3): Name formerly unnamed patterns. - Redefine using :GPR. Make same predicate change here. Extend the - commutativity of operands 1 and 2 from the SImode version to the - DImode one. - (*and[sd]i3_mips16, *ior[sd]i3_mips16, *xor[sd]i3_mips16): Likewise, - but with no predicate changes. - (*nor[sd]i3): Redefine using :GPR. - -2004-08-23 Zdenek Dvorak - - * tree-ssa-operands.c (get_call_expr_operands): Add VUSE operands for - noreturn functions. - -2004-08-23 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_DCLZ_DCLO): Delete. - * config/mips/mips.md (abs[sd]i2): Redefine using :GPR. Only use - branch-likely insns for absdi2 if GENERATE_BRANCHLIKELY. Use "%." - rather than "%z2" (with a fake const0_rtx for operand 2). - (ffs[sd]i2): Redefine using :GPR. - (clz[sd]i2): Likewise. Use ISA_HAS_CLO_CLZ for the 64-bit case. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md ({,u}divmod[sd]i4): Redefine using :GPR. - -2004-08-23 Richard Sandiford - - * config/mips/mips.md (any_extend): New code macro. - (u, su): New code attributes. - ({,u}mulsidi3, {,u}mulsidi3_32bit_internal, {,u}mulsidi3_32bit_r4000) - ({u,s}mulsi3_highpart, {u,s}mulsi3_highpart_internal) - ({u,s}mulsi3_highpart_mulhi_internal, {s,u}muldi3_highpart) - (*{s,u}mul_acc_di): Redefine using any_extend. - (*{,u}muls_di, *{s,u}msac_di): Likewise. Change names of patterns - to reflect real insn names. - (*mulsidi3_64bit, *mulsidi3_64bit_parts): Replace use of match_operator - with an any_extend template. - ({u,s}mulsi3_highpart_neg_mulhi_internal): Redefine using any_extend. - Add '*' to name. - -2004-08-23 Richard Sandiford - - * config/mips/mips.h (GENERATE_MULT3_SI): Check TARGET_MAD. - * config/mips/mips.md (mul[sd]i3, mul[sd]i3_internal) - (mul[sd]i3_r4000): Redefine using :GPR. - (mulsi3_mult3): Don't check TARGET_MAD separately. - (muldi3_mult3): Moved after mulsi_mult3. - -2004-08-23 Richard Sandiford - - * config.gcc (mips-*-*): Remove definitions of MASK_GAS and - OBJECT_FORMAT_ELF. Set MASK_SPLIT_ADDR by default if using GNU ld. - * config/mips/mips.h (MASK_GAS): Delete. Shuffle later masks down. - (TARGET_GAS, TARGET_MIPS_AS): Delete. - (TARGET_GPWORD): Define to true for n32 on IRIX. - (TARGET_SWITCHES): Remove -mmips-as. Turn -mgas into a no-op. - (MIPS_AS_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC): Delete. - (GAS_ASM_SPEC): Delete, folding into ASM_SPEC. - (ASM_ABI_DEFAULT_SPEC, TARGET_ASM_SPEC): Delete. - (MDEBUG_ASM_SPEC): Delete, folding into... - (SUBTARGET_ASM_DEBUGGING_SPEC): ...here. - (ASM_SPEC): Inline old GAS_ASM_SPEC. Use GNU names for ABI switches. - (EXTRA_SPECS): Remove mips_as_asm_spec, gas_asm_spec, target_asm_spec, - subtarget_mips_as_asm_spec, mdebug_asm_spec. Use MULTILIB_ABI_DEFAULT - to define asm_abi_default_spec. - (ASM_STABS_OP, ASM_STABN_OP, ASM_STABD_OP): Delete. - (TARGET_ASM_SELECT_SECTION): Delete. - * config/mips/mips.c (MIPS_MAX_FIRST_STACK_STEP): Define to 0x7ff0 - for non-mips16 code, removing previous workaround for SGI assemblers. - (TARGET_ASM_INTEGER, mips_assemble_integer): Delete. - (TARGET_ASM_ALIGNED_DI_OP): Define this instead. - (override_options): Remove !TARGET_GAS and !have_named_sections code. - (print_operand): Fold TARGET_GAS conditionals into asm strings. - (mips_output_filename): Remove !TARGET_GAS code. Replace use of - ASM_STABS_OP and ASM_STABN_OP. - (mips_file_start): Remove TARGET_MIPS_AS/TARGET_GAS checks. - (mips_output_aligned_decl_common): Remove mention of SGI o32 assembler. - (mips_output_function_prologue): Remove !TARGET_GAS code. - (mips_select_rtx_section): Remove !have_named_sections code. - (mips_select_section): Delete. - * config/mips/mips.md (trap): Remove !TARGET_GAS check. - * config/mips/linux.h (TARGET_DEFAULT): Remove use of MASK_GAS. - * config/mips/sdb.h (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF): Delete. - (PUT_SDB_BLOCK_START, PUT_SDB_BLOCK_END): Fold TARGET_GAS conditional. - * config/mips/vxworks.h (ASM_SPEC): As for mips.h. - * config/mips/windiss.h (ASM_SPEC): Likewise. - -2004-08-23 Richard Sandiford - - * read-rtl.c (map_value, mapping, macro_group): New structures. - (BELLWETHER_CODE): New macro. - (modes, codes, bellwether_codes): New variables. - (find_mode, uses_mode_macro_p, apply_mode_macro, find_code) - (uses_code_macro_p, apply_code_macro, apply_macro_to_string) - (apply_macro_to_rtx, uses_macro_p, add_condition_to_string) - (add_condition_to_rtx, apply_macro_traverse, add_mapping) - (add_map_value, initialize_macros): New functions. - (def_hash, def_hash_eq_p): Generalize to anything that points to, - or starts with, a char * field. - (find_macro, read_mapping, check_code_macro): New functions. - (read_rtx_1): New, split out from read_rtx. Handle the new - define_{mode,code}_{macro,attr} constructs. Use find_macro - to parse the name of a code or mode. Use BELLWETHER_CODE to - extract the format and to choose a suitable code for rtx_alloc. - Modify recursive invocations to use read_rtx_1. - (read_rtx): Call initialize_macros. Apply code and mode macros - to the rtx returned by read_rtx_1. Cache everything after the - first macro expansion for subsequent read_rtx calls. - * doc/md.texi: Document new .md constructs. - * config/mips/mips.md (GPR): New mode macro. - (d, si8_di5): New mode attributes. - (any_cond): New code macro. - (add[sd]i3): Redefine using :GPR. - (*add[sd]i3): Likewise, renaming from add[sd]i3_internal. - (*add[sd]i3_sp[12], *add3_mips16): Redefine using :GPR, naming - previously unnamed MIPS16 patterns. - (*addsi3_extended): Renamed from addsi3_internal_2. Fix overly long - lines. Don't match (plus (const_int 0) ...). - (*addsi3_extended_mips16): Name previously unnamed MIPS16 pattern. - Use a define_split to generate the addition. - (sub[sd]i3): Redefine using :GPR. Turn subsi3 into a define_insn. - (subsi3_internal): Delete. - (*subsi3_extended): Renamed from subsi3_internal_2. - (bunordered, bordered, bunlt, bunge, buneq, bltgt, bunle, bungt) - (beq, bne, bgt, bge, blt, ble, bgtu, bgeu, bltu, bleu): Redefine - using an any_cond template. - -2004-08-23 Richard Sandiford - - * read-rtl.c (read_rtx): Tidy use of format_ptr. - -2004-08-23 Richard Sandiford - - * read-rtl.c (string_obstack): New file-scope variable. - (read_string, read_quoted_string, read_braced_string) - (read_escape): Remove obstack parameter and use string_obstack instead. - (read_rtx): Remove function-local rtl_obstack and initialize - string_obstack instead. Update call to read_string. - -2004-08-22 Andrew Pinski - - PR c/15262 - * c-typeck.c (build_unary_op): Use &a.b if the foldded lowered - expression is not constant. - (c_finish_return): Do not go through INDIRECT_REF when looking - for the inner expression of an ADDR_EXPR for warning about. - -2004-08-22 Richard Henderson - - PR 17075 - * cfgexpand.c (expand_gimple_tailcall): Detect when we can both - create new blocks and fall through. - (expand_gimple_basic_block): Update to match. - -2004-08-22 Ulrich Weigand - - * reload.c (find_reloads_address): Make return value tri-state. - Return -1 if LEGITIMIZE_RELOAD_ADDRESS succeeded. - (find_reloads): Assume that reloaded addresses match 'o' or - EXTRA_MEMORY_CONSTRAINT constraints only if find_reloads_address - returned 1 (not -1). Omit optional reloads for address operands - only if find_reloads_address returned 1 (not -1). - - * config/s390/s390.c (legitimize_reload_address): New function. - * config/s390/s390-protos.h (legitimize_reload_address): Declare. - * config/s390/s390.h (LEGITIMIZE_RELOAD_ADDRESS): Define. Call - legitimize_reload_address. - -2004-08-22 Richard Hendersion - - * tree.h (SAVE_EXPR_RESOLVED_P): New. - * gimplify.c (gimplify_save_expr): Use it. - * expr.c (expand_expr_real_1): Likewise. Also set DECL_IGNORED_P - on the temporary variable. - -2004-08-22 Andrew Pinski - - * fold-const.c (rtl_expr_nonnegative_p): Delete. - * tree.h (rtl_expr_nonnegative_p): Remove. - -2004-08-22 Steven Bosscher - - * config/i386/ppro.md (ppro_complex_insn): Add missing check - for cpu==pentiumpro. - - * combine.c (struct reg_stat): Fix comment typo. - -2004-08-22 Joseph S. Myers - - * c-tree.h (c_sizeof_nowarn): Remove. - -2004-08-21 Joseph S. Myers - - * c-decl.c (set_array_declarator_type): Rename to - set_array_declarator_inner. - (build_c_parm, build_attrs_declarator, build_function_declarator): - New functions. - (make_pointer_declarator): Call build_attrs_declarator. - * c-tree.h (set_array_declarator_type): Rename to - set_array_declarator_inner. - (build_c_parm, build_attrs_declarator, build_function_declarator): - New prototypes. - * c-parse.in (after_type_declarator, - parm_declarator_starttypename, parm_declarator_nostarttypename, - notype_declarator, absdcl_maybe_attribute, direct_absdcl1, parm, - firstparm): Use these functions - -2004-08-21 Joseph S. Myers - - * c-decl.c (build_array_declarator, set_array_declarator_type, - start_decl, grokdeclarator, grokparms): Change boolean parameters - to type bool. - * c-tree.h (build_array_declarator, set_array_declarator_type, - start_decl): Update prototypes. - * c-decl.c, c-parse.in: All callers changed. - -2004-08-21 Mike Stump - - * config/rs6000/darwin.h (SUBTARGET_OPTIONS): Move from here, to... - (darwin_fix_and_continue): Likewise. - (darwin_fix_and_continue_switch): Likewise. - * config/darwin.h (SUBTARGET_OPTIONS): ...here, to fix -mone-byte-bool. - (darwin_fix_and_continue): Likewise. - (darwin_fix_and_continue_switch): Likewise. - -2004-08-21 Danny Smith - - PR c++/16030 - * config/i386/winnt/c (gen_stdcall_suffix, gen_fastcall_suffix): - Remove, merging into ... - (gen_stdcall_or_fastcall_suffix): New function, returning tree - rather than const char*, and accepting additional parameter. - Don't add suffix to '*'-prefixed symbols or variadic functions. - (i386_pe_encode_section_info): Adjust for call to new function. - Call change_decl_assembler_name. - -2004-08-20 Mike Stump - - * config/darwin.c (machopic_indirect_data_reference): Mark - stubs as defined. - * config/386/386.c (darwin_local_data_pic): Add. - (legitimate_constant_p): Reorder so that PLUS handling runs - before darwin_local_data_pic to match the ordering in - legitimate_pic_address_disp_p and so that MINUS runs after - darwin_local_data_pic as otherwise the darwin_local_data_pic - logic can be skipped, which would be very bad. - (legitimate_pic_address_disp_p): Move from from here to - darwin_local_data_pic so it can be reused. - -2004-08-21 Alan Modra - - * config/rs6000/linux64.h (DOT_SYMBOLS): Define. - (CRT_CALL_STATIC_FUNCTION): Define !DOT_SYMBOLS version. - (ASM_DECLARE_FUNCTION_SIZE): Modify for !DOT_SYMBOLS. - (ASM_OUTPUT_SOURCE_LINE, DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Likewise. - (RS6000_ABI_NAME): Define as "linux". - (SUBSUBTARGET_OVERRIDE_OPTIONS): Set dot_symbols. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Select - ABI_AIX when rs6000_abi_name is "linux" and TARGET_64BIT. - * config/rs6000/rs6000-protos.h (rs6000_output_function_entry): Decl. - * config/rs6000/rs6000.c (dot_symbols): New global var. - (rs6000_output_function_entry): New function, modified for - !DOT_SYMBOLS.. - (print_operand ): ..extracted from here. - (rs6000_assemble_visibility): Modify for !DOT_SYMBOLS. - (rs6000_output_function_epilogue): Likewise. - (rs6000_elf_declare_function_name): Likewise. - * config/rs6000/rs6000.h (DOT_SYMBOLS): Define. - (ASM_WEAKEN_DECL, ASM_OUTPUT_DEF_FROM_DECLS): Modify for !DOT_SYMBOLS. - * configure.ac (HAVE_LD_NO_DOT_SYMS): Add new AC_DEFINE. - * configure: Regenerate. - * config.in: Regenerate. - -2004-08-20 Mark Mitchell - - * reload.c (find_reloads_address): Fix thinko in previous change. - - * reload.c (find_reloads_address): Reload the sum of a LO_SUM and - a CONST_INT. - -2004-08-20 Jakub Jelinek - - PR rtl-optimization/17099 - * combine.c (force_to_mode): Check if inner_mask has any bits set - outside of GET_MODE (x) instead of op_mode. - -2004-08-20 Mark Mitchell - - * config.gcc (arm*-*-symbianelf*): Add t-symbian Makefile - fragment. - * config/arm/bpabi.h (RENAME_LIBRARY_SET): Fix typo. - (SUBTARGET_EXTRA_ASM_SPEC): Pass -meabi=3 to the assembler. - * config/arm/symbian.h (SUBTARGET_CPU_DEFAULT): Assume ARMV5 - architecture. - (SUBTARGET_ASM_FLOAT_SPEC): Default to -mfpu=vfp for hard-float - configurations. - * config/arm/t-symbian: New file. - -2004-08-20 Andrew Pinski - - * regrename.c (kill_value_regno): ANSIfy. - -2004-08-20 Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Improve DIV/MOD. - -2004-08-20 Daniel Jacobowitz - - * regrename.c (kill_value_one_regno): Renamed from kill_value_regno. - (kill_value_regno): New function, derived from kill_value. - (kill_value): Update. - (copyprop_hardreg_forward_1): Update call to kill_value_regno. - -2004-08-20 Daniel Berlin - - Fix PR tree-optimization/17111 - * tree-ssa-pre.c (create_value_expr_from): Don't change the types - of non-value_handles. - (bitmap_set_contains): All constants are in every set. - -2004-08-20 Nathan Sidwell - - * fold-const.c (round_up, round_down): Use build_int_cst. - Optimize common case. - -2004-08-20 Zack Weinberg - John David Anglin - - * config/pa/pa-protos.h (readonly_data, one_only_readonly_data_section, - one_only_data_section): Rename to som_readonly_data_section, - som_one_only_readonly_data_section and som_one_only_data_section. - * config/pa/pa.c (ONE_ONLY_TEXT_SECTION_ASM_OP, - NEW_TEXT_SECTION_ASM_OP, DEFAULT_TEXT_SECTION_ASM_OP): Delete - conditional defines. - (som_text_section_asm_op): Replace ONE_ONLY_TEXT_SECTION_ASM_OP, - NEW_TEXT_SECTION_ASM_OP and DEFAULT_TEXT_SECTION_ASM_OP with actual - string values. - (pa_select_section): Use renamed section functions. - * config/pa/pa.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS, - SOM_READONLY_DATA_SECTION_FUNCTION, - SOM_ONE_ONLY_READONLY_DATA_SECTION_FUNCTION, - SOM_ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): - Define here ... - * config/pa/som.h: ... not here. - (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP, - ONE_ONLY_TEXT_SECTION_ASM_OP, READONLY_DATA_ASM_OP, - ONE_ONLY_READONLY_DATA_SECTION_ASM_OP, - ONE_ONLY_DATA_SECTION_ASM_OP): Delete. - (READONLY_DATA_SECTION): Use som_readonly_data_section. - -2004-08-20 Nathan Sidwell - - * fold-const.c (int_const_binop): Don't generate non-overflowing - size-types specially. - (fold_convert_const): Likewise. - - * stor-layout.c (initialize_sizetypes): Set SIZETYPE earlier, - clear cache on copied sizetype. - -2004-08-20 Ben Elliston - - * configure.ac: Don't escape apostrophe in --enable-coverage help. - * configure: Regenerate. - -2004-08-20 Danny Smith - - PR 5620 - * gcc.c (struct stat input_stat): Don't define if - HOST_LACKS_INODE_NUMBERS - (do_spec_1): If HOST_LACKS_INODE_NUMBERS, use lrealpath rather - than stat to determine if temp file is same as input file. - * doc/hostconfig.texi: Document HOST_LACKS_INODE_NUMBERS. - * config/i386/xm-mingw32.h: Define HOST_LACKS_INODE_NUMBERS - -2004-08-20 Richard Sandiford - - * configure.ac (mips*-*-*): Print an error if not using GAS. - * configure: Regenerated. - * doc/install.texi: Remove irix5 bullet from --with-gnu-as. Remove - comments about buggy MIPSpro assemblers. - * config.gcc (mips-sgi-irix[56]*): Combine stanzas. Include elfos.h - before mips.h and iris.h after it. Use t-iris and t-slibgcc-irix. - Use iris5.h only for IRIX 5 configs. Use iris6.h and t-iris6 for - IRIX 6 configs. Define IRIX_USING_GNU_LD if using GNU ld. - * config/mips/iris5.h (TARGET_IRIX, SWITCHES_NEED_SPACES) - (DEFAULT_SIGNED_CHAR, WORD_SWITCH_TAKES_ARG, SUBTARGET_CC1_SPEC) - (NO_IMPLICIT_EXTERN_C, MIPS_DEFAULT_GVALUE) - (TARGET_ASM_EXTERNAL_LIBCALL): Move to iris.h. - (WCHAR_TYPE, WCHAR_TYPE_SIZE, TARGET_OS_CPP_BUILTINS): Delete in favor - of more general IRIX 6 definitions. - (OBJECT_FORMAT_ELF, ASM_OUTPUT_ASCII, ASM_WEAKEN_LABEL) - (HANDLE_SYSV_PRAGMA): Delete in favor of elfos.h definitions. - (TARGET_IRIX5, ABICALLS_ASM_OP, BSS_SECTION_ASM_OP, HAS_INIT_SECTION) - (LD_INIT_SWITCH, LD_FINI_SWITCH, SUBTARGET_ASM_OPTIMIZING_SPEC) - (ASM_FINAL_SPEC, DBX_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) - (PREFERRED_DEBUGGING_TYPE, DWARF2_UNWIND_INFO, SET_FILE_NUMBER) - (LABEL_AFTER_LOC, DOLLARS_IN_IDENTIFIERS, NO_DOLLAR_IN_LABEL) - (TARGET_ASM_NAMED_SECTION, EXTRA_SECTION_FUNCTIONS) - (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_WEAK_ALIAS) - (SUBTARGET_EXTRA_SPECS): Delete definitions or undefs. - (LINK_SPEC): Move most of definition to iris.h. - (SUBTARGET_LINK_SPEC): New macro. - (IRIX_STARTFILE_SPEC): Fold into... - (STARTFILE_SPEC): ...here. - (IRIX_ENDFILE_SPEC): Fold into... - (ENDFILE_SPEC): ...here. - * config/mips/iris6.h (TARGET_IRIX5): Remove override. - (WCHAR_TYPE, WCHAR_TYPE_SIZE, WINT_TYPE, WINT_TYPE_SIZE) - (DWARF_OFFSET_SIZE, DWARF_INITIAL_LENGTH_SIZE, SET_ASM_OP) - (LINK_ELIMINATE_DUPLICATE_LDIRECTORIES, ASM_DECLARE_OBJECT_NAME) - (ASM_FINISH_DECLARE_OBJECT, LOCAL_LABEL_PREFIX): Move to iris.h. - (TARGET_OS_CPP_BUILTINS): Likewise. Guard IRIX6-specific bits. - (DWARF2_UNWIND_INFO, DWARF2_GENERATE_TEXT_SECTION_LABEL) - (SUBTARGET_CPP_SPEC, DWARF2_DEBUGGING_INFO, MIPS_DEBUGGING_INFO) - (PREFERRED_DEBUGGING_TYPE, DWARF2_FRAME_INFO, MD_EXEC_PREFIX) - (ASM_DECLARE_FUNCTION_NAME, ASM_DECLARE_FUNCTION_SIZE) - (FUNCTION_NAME_ALREADY_DECLARED, SUPPORTS_INIT_PRIORITY) - (POPSECTION_ASM_OP, SUBTARGET_ASM_SPEC, SUBTARGET_MIPS_AS_ASM_SPEC) - (SUBTARGET_ASM_DEBUGGING_SPEC, SUBTARGET_ASM_OPTIMIZING_SPEC) - (BSS_SECTION_ASM_OP*, READONLY_DATA_SECTION_ASM_OP*) - (EH_FRAME_SECTION_NAME, MUST_USE_SJLJ_EXCEPTIONS, CTORS_SECTION_ASM_OP) - (DTORS_SECTION_ASM_OP, TARGET_ASM_NAMED_SECTION, EH_FRAME_SECTION_NAME) - (ASM_OUTPUT_ALIGN, ASM_OUTPUT_FILENAME, ASM_OUTPUT_ALIGNED_LOCAL) - (ASM_OUTPUT_ALIGNED_BSS): Remove definitions or undefs. - (TARGET_IRIX6): Define to 1. - (DRIVER_SELF_SPECS): Define. - (DWARF2_FRAME_INFO): Define to 1 rather than !TARGET_SGI_O32_AS. - (SUBTARGET_CC1_SPEC): Remove in favor of DRIVER_SELF_SPECS. - (SUBTARGET_LINK_SPEC): New macro. - (IRIX_STARTFILE_SPEC): Fold into... - (STARTFILE_SPEC): ...here. Remove !mabi=* case. - (SUBTARGET_{,DONT_}WARN_UNUSED_SPEC): New macros. - (LIB_SPEC, LIBGCC_SPEC): Use them. - (LIB_SPEC): Remove !mabi=* case. - (IRIX_ENDFILE_SPEC): Fold into... - (ENDFILE_SPEC): ...here. Remove !mabi=* case. - * config/mips/mips-protos.h (irix_output_external_libcall): Delete. - * config/mips/mips.h (TARGET_IRIX5, TARGET_SGI_O32_AS): Delete. - (TARGET_IRIX6): New macro. - (ASM_ABI_DEFAULT_SPEC): Remove !ELF definition. - (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX, SET_FILE_NUMBER) - (LABEL_AFTER_LOC): Delete. - * config/mips/mips.c (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END) - (TARGET_SECTION_TYPE_FLAGS): Remove TARGET_IRIX versions. - (mips_build_builtin_va_list): Check TARGET_IRIX6. - (override_options): Remove TARGET_SGI_O32_AS-related code. - (irix_output_external_libcall): Make static. - (mips_output_filename): Avoid use of SET_FILE_NUMBER and - LABEL_AFTER_LOC. - (mips_file_start): Tidy guard for ABI sections. Remove use of - ABICALLS_ASM_OP; use .abicalls instead. - (mips_output_aligned_decl_common, mips_declare_object_name) - (mips_finish_declare_object): Remove use of TARGET_SGI_O32_AS. - (mips_output_function_prologue): Set TREE_ASM_WRITTEN if emitting - .globl foo .text directives. - (irix_asm_named_section_1, irix_asm_named_section) - (irix_section_align_entry, irix_section_align_htab) - (irix_orig_asm_out_file, irix_section_align_entry_eq) - (irix_section_align_entry_hash, irix_asm_output_align) - (irix_file_start, irix_section_align_1, copy_file_data) - (irix_file_end, irix_section_type_flags): Delete. - * config/mips/irix-crti.asm (__gcc_init): Move to .gcc_init section. - Use standard section syntax. Remove protective "jr $31". - (__gcc_fini): Likewise .gcc_fini. - * config/mips/irix-crtn.asm: Adjust sections accordingly. - * config/mips/sdb.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Moved from - iris5gas.h. - * config/mips/t-iris (irix-crti.o, irix-crtn.o): New rules, moved - from t-irix-gld. - (EXTRA_MULTILIB_PARTS): Define. - * config/mips/t-iris6: Remove bogus comment. - (EXTRA_MULTILIB_PARTS, CRTSTUFF_T_CFLAGS): Delete. - * config/mips/iris5gas.h, config/mips/iris5gld.h, - config/mips/iris6gas.h, config/mips/iris6gld.h, - config/mips/t-iris5-as, config/mips/t-iris5-gas - config/mips/t-irix-gld: Delete. - * config/mips/iris.h: New file. - * config/mips/t-slibgcc-irix: Renamed from t-iris5-6. - -2004-08-20 Richard Earnshaw - - * postreload.c (reload_cse_move2add): Allow any condjump, but check - that the implicit set isn't clobbered in the jump insn. - -2004-08-19 Mark Mitchell - - * defaults.h (TARGET_LIBGCC_LIBFUNCS): Remove. - * optabs.c (init_optabs): Don't check it. - * config/arm/bpabi.h (TARGET_LIBGCC_LIBFUNCS): Do not define. - * doc/tm.texi (TARGET_LIBGCC_FUNCS): Remove. - -2004-08-18 Andreas Krebbel - - * config/s390/s390.md (s390_warn_framesize_string) - (s390_warn_dynamic_string, s390_stack_size_string) - (s390_stack_guard_string): New global string variables. - (s390_warn_framesize, s390_warn_dynamicstack_p, s390_stack_size) - (s390_stack_guard): New global variables. - (override_options): Added checks for the new options. - (s390_emit_prologue): Emit stack check and trap code and perform - compile time stack size checking. - - * config/s390/s390.h (TARGET_OPTIONS): Added new options - "warn-framesize", "warn-dynamicstack", "stack-size" and - "stack-guard". - - * doc/invoke.texi: Added documentation for the new options. - -2004-08-19 Ulrich Weigand - - * unwind-dw2-fde.c (get_cie_encoding): Cast argument to strlen - to eliminate warning. - (linear_search_fdes): Declare p as unsigned. - (binary_search_mixed_encoding_fdes): Likewise. - * unwind-dw2.c (get_cie_encoding): Cast argument to strlen - to eliminate warning. - * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Add missing - type cast. - -2004-08-19 Ulrich Weigand - - * config/s390/s390-protos.h (preferred_la_operand_p): Adapt prototype. - * config/s390/s390.c (preferred_la_operand_p): Accept two operands - instead of one. Check for strictly legitimate address. - * config/s390/s390.md ("*la_31"/"*la_64" peepholes): Adapt call - to preferred_la_operand_p, do not call gen_rtx_PLUS in predicate. - -2004-08-19 Eric Christopher - - * langhooks-def.h (LANG_HOOKS_UNSAVE_EXPR_NOW): Remove. - * langhooks.h (unsave_expr_now): Ditto. - * tree.h (unsave_expr_1): Remove prototype. - (lhd_unsave_expr_now): Rename to unsave_expr_now. - * tree-inline.c (unsave_expr_1): Move here - from tree.c. Make static. - (unsave_expr_now): Rename from lhd_unsave_expr_now. - * tree-sra.c: Fix up for rename. - * tree-ssa-copy.c: Ditto. - * tree-eh.c: Ditto. - * tree.c (unsave_expr_1): Move to tree-inline.c. - -2004-08-19 Caroline Tice - - * config/i386/cygming.h (switch_to_section): Fix typo (change - in_unlikely_text_section to in_unlikely_executed_text). - -2004-08-19 Daniel Berlin - - * vec.h (VEC_lower_bound): New macro. - -2004-08-19 Richard Sandiford - - PR target/16446 - * config/mips/mips.c (struct mips_arg_info): Delete num_bytes. - (mips_arg_info): Update accordingly. Remove common treatment of fpr_p; - treat each ABI separately. Deal with n32/n64 complex float arguments. - (function_arg): Add associated complex handling here. - -2004-08-19 Richard Henderson - - * config/arm/arm.c (arm_gen_load_multiple): Use - adjust_automodify_address. Take base memory and offset instead - of unchanging/struct/scalar bits. - (arm_gen_store_multiple): Likewise. - (arm_gen_movmemqi): Use adjust_automodify_address. - * config/arm/arm-protos.h: Update decls. - * config/arm/arm.md (load_multiple): Update arm_gen_load_multiple call. - (store_multiple): Similarly. - -2004-08-19 J"orn Rennecke - - * regclass.c (globalize_reg): Update call_really_used_regs. - -2004-08-19 Nathan Sidwell - - * doc/invoke.texi (integer-share-limit): Document. - - * tree.h (TYPE_CACHED_VALUES_P): New. - (TYPE_CACHED_VALUES): New. - (TYPE_ORIG_SIZE_TYPE): Adjust. - * tree.def (INTEGER_CST): Update documentation. - * tree.c: Inlcude params.h. - (build_int_cst): Cache small values. - (build_type_copy): Do not copy the value cache. - * c-common.c (c_common_nodes_and_builtins): Add comment, remove - unneeded zeroing. - * c-typeck.c (build_c_cast): Add comment about OVERFLOW setting. - * expmed.c (const_mult_add_overflow_p): Clear type copy's value - cache. - * fold-const.c (force_fit_type): Copy value when setting - overflows. - (int_const_binop): Likewise. - * stor-layout.c: Include params.h - (set_sizetype): Create values cache. - (fixup_unsigned_type): Set UNSIGNED_P before caching any values. - * params.def (PARAM_INTEGER_SHARE_LIMIT): New. - * params.h (INTEGER_SHARE_LIMIT): New. - * Makefile.in (tree.o, stor-layout.o): Depend on PARAMS_H. - -2004-08-19 Paolo Bonzini - - * gimplify.c (gimplify_minimax_expr): Remove. - (gimplify_expr) : Remove special handling. - -2004-08-19 Dorit Naishlos - - * tree-vectorizer.c (vect_can_force_dr_alignment_p): Replace - STACK_BOUDARY with PREFERRED_STACK_BOUNDARY. - -2004-08-19 Mark Mitchell - - * bpabi.h (FPUTYPE_DEFAULT): Set it to FPUTYPE_VFP. - -2004-08-18 Andrew Pinski - - * varasm.c (ecode_reg_name): Do nothing if the asmspec is empty. - -2004-08-18 Mark Mitchell - - * config/arm/bpabi.c (__aeabi_ul2d): Give it default visibility. - (__aeabi_ul2f): Likewise. - -2004-08-18 Richard Henderson - - * config/xtensa/xtensa.c (xtensa_expand_block_move): Expand block - move to rtl completely. - (struct meminsnbuf, xtensa_emit_block_move): Remove. - (xtensa_find_mode_for_size): Remove. - * config/xtensa/xtensa-protos.h (xtensa_emit_block_move): Remove. - * config/xtensa/xtensa.md (movmemsi_internal): Remove. - -2004-08-18 Richard Henderson - - * config/mcore/mcore.c (mode_from_align): Remove DImode. - (block_move_sequence): Rewrite to use adjust_address. - (mcore_expand_block_move): Cleanup logic. Accept only operands. - Return boolean indicating success/failure. - * config/mcore/mcore-protos.h (mcore_expand_block_move): Update decl. - * config/mcore/mcore.md (movmemsi): Update to match. - -2004-08-18 Mike Stump - - * doc/invoke.texi (-mfix-and-continue): Add support for - fast turn around debugging. - (-ffix-and-continue): Likewise. - (-mindirect-data): Likewise. - (-findirect-data): Likewise. - * config/darwin.c (TARGET_FIX_AND_CONTINUE): Likewise. - (indirect_data): Likewise. - (machopic_data_defined_p): Likewise. - (machopic_output_indirection): Likewise. - (darwin_encode_section_info): Likewise. - (darwin_fix_and_continue): Likewise. - (darwin_fix_and_continue_switch): Likewise. - * config/darwin.h (MACHO_SYMBOL_STATIC): Likewise. - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. - (SUBTARGET_OPTION_TRANSLATE_TABLE): Likewise. - (SUBTARGET_OPTIONS): Likewise. - (darwin_fix_and_continue): Likewise. - (darwin_fix_and_continue_switch): Likewise. - (TARGET_FIX_AND_CONTINUE): Likewise. - * config/rs6000.c (rs6000_emit_prologue): Likewise. - -2004-08-19 Steven Bosscher - - * basic-block.h (struct edge_def): Remove crossing_edge. - (EDGE_CROSSING): New define. - (EDGE_ALL_FLAGS): Update. - * bb-reorder.c (find_traces_1_round, better_edge_p, - find_rarely_executed_basic_blocks_and_cr, fix_up_fall_thru_edges, - find_jump_block, fix_crossing_conditional_branches, - fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): - Replace all occurences of crossing_edge with an edge flag check - or set/reset. - * cfgcleanup.c (try_simplify_condjump, try_forward_edges, - try_crossjump_bb): Likewise. - * cfglayout.c (fixup_reorder_chain): Likewise. - * cfgrtl.c (force_nonfallthru_and_redirect, - commit_one_edge_insertion): Likewise. - - * Makefile.in (cfganal.o): Depend on TIMEVAR_H. - * tree-flow.h (compute_dominance_frontiers): Move prototype... - * basic-block.h: ...here. - * tree-cfg.c (compute_dominance_frontiers_1, - compute_dominance_frontiers): Move from here... - * cfganal.c: ...to here. Include timevar.h. - -2004-08-18 James E Wilson - - * config/mips/mips.h (ASM_SPEC): In comment, change -meabi= to -mabi=. - * config/mips/sb1.md (ir_sb1_divsf_1pipe): Renamed from ...1pipes. - - * config/mips/mips.md (type): Add frdiv. - (divsf3+1, divsf3+2): Change type to frdiv. - * config/mips/sb1.md (ir_sb1_recipsf_2pipes, ir_sb1_recipsf_1pipe, - ir_sb1_recipdf_2pipes, ir_sb1_recipdf_1pipe): New. - - * config/mips/3000.md (r3k_fdiv_single, r3k_fdiv_double): Add frdiv. - * config/mips/4300.md (r4300_fdiv_single, r4300_fdiv_double): Likewise. - * config/mips/4600.md (r4600_fdiv_single, f4600_fdiv_double): Likewise. - * config/mips/5000.md (r5k_fdiv_single): Likewise. - * config/mips/5400.md (ir_vr54_fdiv_sf, ir_vr54_fdiv_df): Likewise. - * config/mips/5500.md (ir_vr55_fdiv_sf, ir_vr55_fdiv_df): Likewise. - * config/mips/6000.md (r6k_fdiv_single, r6k_fdiv_double): Likewise. - * config/mips/7000.md (rm7_fp_divsqrt_df, rm7_fp_divsqrt_sf): Likewise. - * config/mips/9000.md (rm8k_fdivs, rm9k_fdivd): Likewise. - * config/mips/generic.md (generic_fdiv_single, generic_fdiv_double): - Likewise. - * config/mips/sr71k.md (ir_sr70_fdiv_sf, ir_sr70_fdiv_df): Likewise. - -2004-08-18 Robert Bowdidge - - * config/rs6000/x-darwin: Remove XCFLAGS -mdynamic-no-pic to - get regression tester working again. - -2004-08-18 Zack Weinberg - - * insn-notes.def, reg-notes.def: New files. - * rtl.h: Use them to define enum insn_note and enum reg_note. - * rtl.c: Use them to define note_insn_name and reg_note_name. - * Makefile.in (RTL_BASE_H): Update. - - * modulo-sched.c, sched-rgn.c, final.c: NOTE_DISABLE_SCHED_OF_BLOCK - renamed to NOTE_INSN_DISABLE_SCHED_OF_BLOCK. - -2004-08-18 Richard Earnshaw - - * arm.c (arm_size_rtx_costs): New function. - (arm_override_options): Use it if optimizing for space. - -2004-08-18 Richard Henderson - - * emit-rtl.c (gen_const_mem): New. - * rtl.h (gen_const_mem): Declare. - * expr.c (do_tablejump): Use it. - * varasm.c (force_const_mem): Likewise. - * config/darwin.c (machopic_indirect_data_reference): Likewise. - (machopic_legitimize_pic_address): Likewise. - * config/arm/arm.c (legitimize_pic_address): Likewise. - * config/i386/i386.c (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. - * config/ia64/ia64.md (load_fptr): Likewise. - * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. - * config/pa/pa.c (legitimize_pic_address): Likewise. - * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. - (rs6000_emit_move): Likewise. - * config/s390/s390.c (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - * config/s390/s390.md (casesi): Likewise. - * config/sh/sh.c (sh_reorg): Likewise. - * config/sparc/sparc.c (legitimize_pic_address): Likewise. - * config/v850/v850.md (casesi): Likewise. - - * config/darwin.c (machopic_indirect_call_target): Set MEM_NOTRAP_P. - * config/sh/sh.c (prepare_move_operands): Remove incorrect - use of MEM_READONLY_P. - -2004-08-18 Steven Bosscher - - * Makefile.in (OBJS-common): Add postreload-gcse.c. - Add new postreload-gcse.o. - * cse.c (SAFE_HASH): Define as wrapper around safe_hash. - (lookup_as_function, insert, rehash_using_reg, use_related_value, - equiv_constant): Use SAFE_HASH instead of safe_hash. - (exp_equiv_p): Export. Add for_gcse argument when comparing - for GCSE. - (lookup, lookup_for_remove, merge_equiv_classes, find_best_addr, - find_comparison_args, fold_rtx, cse_insn): Update callers. - (hash_rtx): New function derived from old canon_hash and bits - from gcse.c hash_expr_1. - (canon_hash_string): Rename to hash_rtx_string. - (canon_hash, safe_hash): Make static inline. Call hash_rtx. - * cselib.c (hash_rtx): Rename to cselib_hash_rtx. - (cselib_lookup): Update this caller. - * gcse.c (modify_mem_list_set, canon_modify_mem_list_set): - Make static. - (hash_expr): Call hash_rtx. - (ldst_entry): Likewise. - (expr_equiv_p): Call exp_equiv_p. - (struct unoccr, hash_expr_1, hash_string_1, lookup_expr, - reg_used_on_edge, reg_set_between_after_reload_p, - reg_used_between_after_reload_p, 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, gcse_after_reload_main): Remove. - * postreload-gcse.c: New file, reincarnating most of the above. - * rtl.h (exp_equiv_p, hash_rtx): New prototypes. - (gcse_after_reload_main): Update prototype. - * timevar.def (TV_GCSE_AFTER_RELOAD): New timevar. - * passes.c (rest_of_handle_gcse2): Use it. - -2004-08-18 Diego Novillo - - * tree-ssa-loop.c (pass_loop_init): Add TODO_dump_func. - (pass_loop_done): Likewise. - -2004-08-18 Andrew Pinski - - * config/rs6000/darwin.md: Delete the altivec patterns which are - handled differently now. - (load_macho_picbase_di): Make sure that is only happens for TARGET_64BIT - (macho_correct_pic_di): Likewise. - (call_indirect_nonlocal_darwin64): Likewise. - Delete the save world/saveFP/saveVec patterns. - - Revert the reversion of: 2004-08-16 Stan Shebs - * config/darwin.c (macho_indirect_data_reference): Add DImode case. - * config/rs6000/rs6000.md: Include darwin.md. - (builtin_setjmp_receiver): Add DImode case. - * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to - Darwin bits. - -2004-08-18 Matt Austern - - Dead code stripping - * darwin.h (EH_FRAME_SECTION_ATTR): Mark so it doesn't get stripped. - * darwin.c (darwin_file_end): Mark file as potentially strippable. - -2004-08-18 Richard Henderson - - * alias.c (readonly_fields_p): Remove. - (objects_must_conflict_p): Don't call it. - * tree.h (readonly_fields_p): Remove. - * langhooks.h (struct lang_hooks): Remove honor_readonly. - * langhooks-def.h (LANG_HOOKS_HONOR_READONLY): Remove. - -2004-08-18 Diego Novillo - - * tree-dfa.c (add_referenced_var): Only global variables are - call-clobbered. - * tree-flow.h (struct ptr_info_def): Add field pt_global_mem. - * tree-ssa-alias.c (compute_points_to_and_addr_escape): Mark - all pointers dereferenced if the statement dereferences them. - (create_name_tags): Do not create memory tags for pointers - that have PT_ANYTHING set. - Also check if PT_VARS is not empty before creating a name tag. - (compute_flow_sensitive_aliasing): Don't mark call-clobbered - variables that share the same alias set with a pointer that - may point anywhere. - (add_may_alias): Add FIXME comment to remove clobbering - aliased variables and tags. - (replace_may_alias): Likewise. - (set_pt_anything): Do not clear PT_VARS nor IS_DEREFERENCED. - (merge_pointed_to_info): If the original variable has not - points-to information, call set_pt_anything. - (add_pointed_to_var): Do not prevent adding a pointed-to - variable if the pointers is PT_ANYTHING. - If the variable is a global, set PT_GLOBAL_MEM. - (collect_points_to_info_r): Don't assume that PLUS_EXPRs of - pointer type only come in PTR+OFFSET flavours. - Always call merge_pointed_to_info on PHI arguments that are - SSA_NAMEs. - (get_nmt_for): Mark call-clobbered tags whose pointer points - to global memory. - * tree-ssa-operands.c (opf_kill_def, opf_no_vops): Switch - values. - (get_indirect_ref_operands): Always clear OPF_KILL_DEF from - FLAGS. - (add_stmt_operand): Abort if the caller tried to add a killing - definition for a memory tag. - * tree-ssa.c (verify_flow_sensitive_alias_info): Remove - unnecessary checks. - -2004-08-18 J"orn Rennecke - - * sh.h (CONDITIONAL_REGISTER_USAGE): Don't exclude fixed registers - from call_used_regs. Update call_really_used_regs. - (CALL_REALLY_USED_REGISTERS): Define. - * sh.c (output_stack_adjust, shmedia_target_regs_stack_space): - Replace call_used_regs with call_really_used_regs. - (calc_live_regs, sh_media_register_for_return): Likewise. - (sh5_schedule_saves, sh_expand_prologue, reg_unused_after): Likewise. - * sh.md (return_media): Likewise. - -2004-08-18 Andrew Pinski - - * config/darwin.c (machopic_legitimize_pic_address): Only set - MEM_READONLY_P in the non TARGET_TOC case. - -2004-08-18 Zack Weinberg - - * rtl.def (NIL): Delete. - * read-rtl.c (read_rtx): Handle (nil) like (define_constants). - Tighten the syntax a little. - - * cfgloop.h, combine.c, cse.c, loop-iv.c, postreload.c, reload.c - * config/alpha/alpha.c, config/alpha/alpha.h, config/arc/arc.h - * config/arm/arm.h, config/frv/frv.h, config/i386/i386.c - * config/i386/predicates.md, config/m32r/m32r.h - * config/m68hc11/m68hc11.c, config/mcore/mcore.h, config/mips/mips.c - * config/mmix/mmix.c, config/pa/pa.h, config/sh/sh.h - * config/sparc/sparc.h, doc/tm.texi: - Replace all occurrences of NIL with UNKNOWN. - -2004-08-18 Zack Weinberg - - * dojump.c (do_jump ): Do not recursively call - self with a TRUTH_ORIF_EXPR; generate the appropriate jump - sequence inline. Move drop_through_label code into this - block, being the only place it is used. Adjust comments. - -2004-08-18 Fariborz Jahanian - - * config/rs6000/altivec.md: Add new patterns for calls to - save_world/rest_world functions. - - * config/rs6000/rs6000-protos.h: (save_world_operation, - restore_world_operation) new declarations. - - * config/rs6000/rs6000.c: (struct rs6000_stack) new world_save_p - field added. - (rs6000_stack_info): Set world_save_p field. - (save_world_operation): New function. - (restore_world_operation): New function. - (compute_save_world_info): New function. - (rs6000_stack_info): Call compute_save_world_info. - (rs6000_emit_prologue): Check for world_save_p and generate - pattern to call save_world for saving all non-volatile and - special registers. - (rs6000_emit_epilogue): Check for world_save_p and generate - pattern to call rest_world to restore saved registers. - - config/rs6000/rs6000.h: macros FIRST_SAVED_ALTIVEC_REGNO, - FIRST_SAVED_FP_REGNO, FIRST_SAVED_GP_REGNO defined. - (rs6000_reg_names): New entries added for save_world_operation and - restore_world_operation. - -2004-08-18 Caroline Tice - - * Makefile.in (STAGEFEEDBACK_FLAGS_TO_PASS) Add - "-freorder-blocks-and-partition" to the flags used in second - stage of profiledbootstrap. - * bb-reorder.c (push_to_next_round_p): Add new variable, - next_round_is_last; set and use variable to make sure, when - partitioning, that the last trace construction round consists - of all (and only) cold basic blocks. - (rotate_loop): Don't copy blocks that end in a section - crossing jump. - (copy_bb): Correctly initialize "partition" of duplicated bb. - (add_unlikely_executed_notes): Add a comment. - (find_rarely_executed_basic_blocks_and_crossing_edges): Modify - to make sure, if function contains hot blocks, that the - successors of ENTRY_BLOCK_PTR are hot; also, only look for - crossing edges if the architecture supports named sections. - (mark_bb_for_unlikely_executed_section): Modify to always - insert the NOTE_INSN_UNLIKELY_EXECUTED_CODE immediately after - the basic block note insn. - (fix_crossing_unconditional_branches): Remove extra space. - (fix_edges_for_rarely_executed_code): Modify to only do - partitioning work if the architecture supports named sections. - (reorder_basic_blocks): Modify to only add - NOTE_INSN_UNLIKELY_EXECUTED_CODE notes if the architecture - supports named sections. - * c-common.c (handle_section_attribute): Initialize new global - variable, user_defined_section_attribute, to true if user has - specified one. - * cfgcleanup.c (try_forward_edges): Modify to not attempt to - forward edges that cross section boundaries. - * cfglayout.c (fixup_reorder_chain): Modify to only fix up - partitioning information if the architecture supports named - sections. - * cfgrtl.c (target.h): Add statement to include this. - (rtl_split_block): Make sure newly created bb gets correct - partition. - (try_redirect_by_replacing_jump): Make sure redirection isn't - attempting to cross section boundaries. - (force_nonfallthru_and_redirect): Only do partition fix up if - architecture supports named sections. - (rtl_split_edge): Make sure newly created bb ends up in - correct partition. - (commit_one_edge_insertion): Remove code that incorrectly - updated basic block partition; Make sure partition fix up only - happens if architecture supports named sections and it's not - already done. - (rtl_verify_flow_info_1): Fix if-condition on test/error - condition that fallthru edges are not allowed to cross section - boundaries. - * defaults.h (NORMAL_TEXT_SECTION_NAME): Remove this. - * final.c (final_scan_insn): Remove redundant test from if-statement; - change calls to text_section into calls to function_section; add code - to only to partitioning fix up if architecture supports named - sections. - * ifcvt.c (find_if_case_1): Make sure newly created bb has correct - partition. - (if_convert): Add targetm.have_named_sections to test. - * output.h (unlikely_section_label): Extern declaration for new global - variable. - (unlikely_text_section_name): Likewise. - * opts.c (decode_options): If both partitioning and DWARF debugging - are turned on, issue a warning that this doesn't work, and change - partitiong to basic block reordering (without hot/cold partitions). - * passes.c (rest_of_handle_final): Re-set new global variable, - user_defined_section_attribute, to false. - (rest_of_compilation): Change options for calling partitioning - function: Don't call if the user defined the section attribute, and - don't call if DECL_ONE_ONLY is true for the current function. - * predict.c (choose_function_section): Return immediately if we - are doing hot/cold partitioning (i.e. let the basic block partitioning - determine where the function belongs). - * reg-stack.c (emit_swap_insn): Add condition to step over - NOTE_INSN_UNLIKELY_EXECUTED_CODE notes. - * toplev.c (user_defined_section_attribute): New global variable. - * toplev.h (user_defined_section_attribute): Extern declaration - for new global variable. - * varasm.c (unlikely_section_label): New global variable. - (unlikely_text_section_name): New global variable. - (unlikely_text_section): Add code to initialize - unlikely_text_section_name if necessary; modify to use - unlikely_text_section_name and unlikely_section_label; also to use - named_section properly. - (in_unlikely_text_section): Modify to work correctly with - named_section and to use unlikely_text_section_name. - (named_section): Add code to work properly with cold section. - (function_section): Clean up if-statement. - * config/darwin.c (darwin_asm_named_section): Return to original - code, removing use of SECTION_FORMAT_STRING. - * config/arm/pe.h (switch_to_section): Add case for - in_unlikely_executed_text to switch statement. - * config/i386/cygming.h (switch_to_section): Likewise. - * config/i386/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. - (SECTION_FORMAT_STRING): Likewise. - * config/mcore/mcore.h (switch_to_section): Likewise. - * config/rs6000/darwin.h (NORMAL_TEXT_SECTION_NAME): Remove. - (SECTION_FORMAT_STRING): Remove. - -2004-08-18 Roger Sayle - - * config/i386/i386.h (FIXED_REGISTERS): Update encoding to be - -ffixed-reg safe, by preserving the meanings of zero and one. - (CALL_USED_REGISTERS): Likewise. - (CONDITIONAL_REGISTER_USAGE): Update to process new encodings. - -2004-08-18 Kaz Kojima - - * config/sh/sh.c (split_branches): Check the result of - next_active_insn. - (sh_output_mi_thunk): Call init_flow if basic_block_info is null. - Call rtl_register_cfg_hooks. - -2004-08-18 Richard Henderson - - * rtl.h (MEM_READONLY_P): Replace RTX_UNCHANGING_P. - * alias.c (true_dependence): Update to match new semantics. - (canon_true_dependence, write_dependence_p): Likewise. - (anti_dependence, output_dependence): Update write_dependence_p args. - (unchanging_anti_dependence): Remove. - * calls.c (purge_mem_unchanging_flag): Remove. - (fixup_tail_calls): Don't call it. - (expand_call): Don't add unchanging memory to function usage. - * expr.c (emit_block_move_via_libcall): Likewise. - (clear_storage_via_libcall): Don't clobber RTX_UNCHANGING_P mems. - (get_subtarget): Don't use RTX_UNCHANGING_P. - (expand_assignment, store_constructor, expand_expr_real_1): Likewise. - (do_tablejump): Set MEM_READONLY_P, not RTX_UNCHANGING_P. - * combine.c (get_last_value_validate): Use MEM_READONLY_P. - * cse.c (insert): Don't use RTX_UNCHANGING_P. - (cse_insn, canon_hash): Use MEM_READONLY_P. - * emit-rtl.c (set_mem_attributes_minus_bitpos): Use MEM_READONLY_P - instead of RTX_UNCHANGING_P. - * explow.c (maybe_set_unchanging): Remove. - * expr.h (maybe_set_unchanging): Remove. - * flow.c (insn_dead_p, mark_used_regs): Use anti_dependence. - * function.c (assign_stack_temp_for_type): Don't use RTX_UNCHANGING_P. - (assign_parm_setup_reg, expand_function_start): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * ra-rewrite.c (emit_colors): Likewise. - * regmove.c (copy_src_to_dest, regmove_optimize): Likewise. - (fixup_match_1): Likewise. - * reload1.c (reload, alter_reg): Likewise. - * local-alloc.c (validate_equiv_mem): Check MEM_READONLY_P, - not RTX_UNCHANGING_P. - (equiv_init_varies_p): Likewise. - * loop-invariant.c (check_maybe_invariant): Likewise. - * resource.c (mark_referenced_resources, mark_set_resources): Likewise. - * loop.c (note_addr_stored): Likewise. - (prescan_loop): Likewise. Don't check function usage for clobbered - unchanging memory. - * rtlanal.c (rtx_unstable_p): Check MEM_READONLY_P, - not RTX_UNCHANGING_P. - (rtx_varies_p, modified_between_p, modified_in_p): Likewise. - * varasm.c (force_const_mem): Likewise. - * stmt.c (expand_decl): Don't set RTX_UNCHANGING_P. - * web.c (entry_register): Likewise. - * tree-gimple.h (get_base_address): Move decl ... - * tree.h: ... here. - * doc/rtl.texi (MEM_READONLY_P): Replace RTX_UNCHANGING_P. - - * config/alpha/alpha.c (alpha_set_memflags_1): Rewrite to be - called via for_each_rtx. Copy MEM_SCALAR_P, MEM_NOTRAP_P too. - (alpha_set_memflags): Update to match. - - * config/darwin.c (machopic_indirect_data_reference): Set - MEM_READONLY_P instead of RTX_UNCHANGING_P. - (machopic_indirect_call_target): Likewise. - (machopic_legitimize_pic_address): Likewise. - * config/arm/arm.c (legitimize_pic_address, arm_gen_load_multiple, - arm_gen_store_multiple, arm_gen_movmemqi): Likewise. - * config/arm/arm.md (load_multiple, store_multiple): Likewise. - * config/frv/frv.md (symGOT2reg): Likewise. - * config/i386/i386.c (legitimize_pic_address, - legitimize_tls_address, ix86_split_to_parts): Likewise. - * config/ia64/ia64.c (ia64_expand_tls_address): Likewise. - * config/ia64/ia64.md (load_fptr): Likewise. - * config/m32r/m32r.c (m32r_legitimize_pic_address): Likewise. - * config/m68k/m68k.c (legitimize_pic_address): Likewise. - * config/mcore/mcore.c (block_move_sequence): Likewise. - * config/mn10300/mn10300.md (symGOT2reg): Likewise. - * config/pa/pa.c (legitimize_pic_address): Likewise. - * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Likewise. - (rs6000_emit_move): Likewise. - * config/s390/s390.c (legitimize_pic_address): Likewise. - (legitimize_tls_address): Likewise. - * config/s390/s390.md (casesi): Likewise. - * config/sh/sh.c (prepare_move_operands, sh_reorg): Likewise. - * config/sh/sh.md (symGOT2reg): Likewise. - * config/sparc/sparc.c (legitimize_pic_address): Likewise. - * config/v850/v850.md (casesi): Likewise. - - * config/ia64/ia64.c (gen_thread_pointer): Don't set RTX_UNCHANGING_P. - * config/iq2000/iq2000.c (save_restore_insns): Likewise. - * config/mips/mips.c (mips_restore_gp): Likewise. - (mips_save_restore_reg, mips16_gp_pseudo_reg): Likewise. - * config/sh/sh.c (sh_reorg): Likewise. - -2004-08-18 Richard Henderson - - * tree.h (struct tree_decl): Add gimple_formal_temp. - (DECL_GIMPLE_FORMAL_TEMP_P): New. - * gimplify.c (pop_gimplify_context): Clear it. - (lookup_tmp_var): Set it, if is_formal. - (gimplify_init_constructor): Use rhs_predicate_for for COMPLEX. - Use is_gimple_val for VECTOR. Simplify return value. - (gimplify_save_expr): Use and set DECL_GIMPLE_FORMAL_TEMP_P. - (gimplify_expr): Likewise. - * tree-gimple.c (is_gimple_formal_tmp_rhs): Rename from - is_gimple_tmp_rhs for clarity. Update all callers. - (is_gimple_reg_rhs): Simplify logic. - (is_gimple_formal_tmp_var): Rename from is_gimple_tmp_var for - clarity; use DECL_GIMPLE_FORMAL_TEMP_P. - (is_gimple_formal_tmp_reg): Similarly. - * tree-gimple.h: Update decls. - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): Use - DECL_IGNORED_P, not DECL_ARTIFICIAL. Tidy formatting. - * tree-ssa-live.c (var_union, type_var_init): Likewise. - -2004-08-18 Paolo Bonzini - - * c4x.c (legitimize_operands): Remove calls to - preserve_subexpressions_p. - -2004-08-18 David Edelsohn - - * varasm.c (MAX_OFILE_ALIGNMENT): Move ... - * defaults.h (MAX_OFILE_ALIGNMENT): ... here. - -2004-08-18 Ziemowit Laski - - * gcc.c (default_compilers): Add info about ".mm", ".M" and ".mii" - Objective-C++ extensions. - * gengtype.c (get_file_basename): Match entire subdirectory name - ('cp', 'objc', 'objcp') rather than just its suffix. - (get_base_file_bitmap): Allow for files to belong to more than one - language. - (get_output_file_with_visibility): Treat objc/objc-act.h as a header - used by more than one front-end. - -2004-08-18 Richard Earnshaw - - * arm.md (addsi3, subsi3, andsi3, iorsi3, movsi, movhi): Rework to - avoid use of preserve_subexpressions_p. - -2004-08-17 Richard Henderson - - PR 17051 - * tree-sra.c (scalarize_use): Mark all v_defs for !is_output too. - -2004-08-17 DJ Delorie - - * doc/extend.texi: Document new xstormy16 attribute. - - * config/stormy16/stormy16.c (xstormy16_splittable_below100_operand): New. - (xstormy16_splittable_below100_or_register): New. - (combine_bnp): New. - (xstormy16_reorg): New. - (TARGET_MACHINE_DEPENDENT_REORG): Define. - - * config/stormy16/stormy16.md (movqi_internal): Make name public. - (movhi_internal): Likewise. - (cbhranchhi): Likewise. - (cbhranchhi_neg): Likewise. - (andhi3): Only allow splittable below100 operands. - (iorhi3): Likewise. - (peephole2): New and/zero_extend->and peephole. - (peephole2): New load/ior/save->set1 peephole. - (peephole2): New load/and/save->clr1 peephole. - (bclrx, bclrx2, bclr7, bclr15): New. - (bsetx, bsetx2, bset7, bset15): New. - - * config/stormy16/stormy16.c (xstormy16_print_operand): Be more - liberal about acceptable 'B' masks. - - * config/stormy16/stormy16-protos.h - (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, - xstormy16_below100_operand, xstormy16_below100_or_register, - xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. - (PREDICATE_CODES): Add new predicates. - - * config/stormy16/stormy16.c - (xstormy16_asm_output_aligned_common, xstormy16_below100_symbol, - xstormy16_below100_operand, xstormy16_below100_or_register, - xstormy16_onebit_set_operand, xstormy16_onebit_clr_operand): New. - (xstormy16_expand_iorqi3, xstormy16_expand_andqi3): New. - (xstormy16_legitimate_address_p): Allow below100 symbols. - (xstormy16_extra_constraint_p): Add 'W' for below100 operands. - (xstormy16_expand_move): Leave below100 operands as-is. - (xstormy16_encode_section_info): Encode below100 symbols. - (xstormy16_strip_name_encoding): New. - (xstormy16_print_operand): Print 'b' as shift mask. - (xstormy16_attribute_table): Add below100 attributes. - (xstormy16_handle_below100_attribute): New. - - * config/stormy16/stormy16.h (EXTRA_SECTIONS): add in_bss100. - (XSTORMY16_SECTION_FUNCTION): New. - (EXTRA_SECTION_FUNCTIONS): Define using the above. - (ASM_OUTPUT_ALIGNED_DECL_COMMON, ASM_OUTPUT_ALIGNED_DECL_LOCAL): New. - (ASM_OUTPUT_SYMBOL_REF): Handle encoded symbols. - (ASM_OUTPUT_LABELREF): Define. - - * config/stormy16/stormy16.md (movqi_internal): Add below100 support. - (movhi_internal): Add below100 support. - (andhi3): Add below100 support. - (iorhi3): Add below100 support. - (iorqi3, iorqi3_internal, andqi3, andqi3_internal): New. - -2004-08-17 James E Wilson - - * config/mips/mips.c (gen_conditional_move): Use GET_MODE (op0) instead - of VOIDmode for comparison code mode. - * config/mips/mips.md: For conditional move patterns, use mode of - first compare operand for comparison mode, instead of VOIDmode. - - * config/mips/mips.md: Add canonical nmadd and nmsub patterns for both - normal and -ffast-math code. - -2004-08-17 Mark Mitchell - - PR c++/15871 - * doc/invoke.texi (-fkeep-inline-functions): Update documentation. - -2004-08-17 Robert Bowdidge - - * config/rs6000/x-darwin: Add -mdynamic-no-pic to gcc build flags. - -2004-08-17 Andreas Tobler - - * config/rs6000/darwin.md (*call_nonlocal_darwin64): Add #else clause - for non Darwin targets. - (*call_value_nonlocal_darwin64): Likewise. - -2004-08-17 Fariborz Jahanian - - * config/rs6000/rs6000.c (rs6000_function_value): Check for - altivec mode for altivec return register. - -2004-08-17 David Edelsohn - - Revert 2004-08-16 Stan Shebs - * config/darwin.c (macho_indirect_data_reference): Add DImode case. - * config/rs6000/rs6000.md: Include darwin.md. - (builtin_setjmp_receiver): Add DImode case. - * config/rs6000/rs6000.c (rs6000_emit_move): Add DImode case to - Darwin bits. - -2004-08-17 Dorit Naishlos - - * tree-vectorizer.c: New File: loop vectorization on SSAed GIMPLE - trees. - * tree-vectorizer.h: New File: Same. - * Makefile.in (tree-vectorizer.c, tree-vectorizer.h): Add new files. - * common.opt (ftree-vectorize): New flag to enable vectorization. - * timevar.def (TV_TREE_VECTORIZATION): New dump file for - vectorization pass. - * tree-data-ref.h (init_data_ref): Additional argument. - (array_base_name_differ_p): Moved to tree-data-ref.c. - * tree-data-ref.c (array_base_name_differ_p): Revised. - (initialize_data_dependence_relation): Call array_base_name_differ_p - with an extra argument. - (analyze_all_data_dependences): Same. - (init_data_ref): Additional argument is_read to set DR_IS_READ. - * tree-ssa-phiopt.c (empty_block_p): Expose for usage out of this - file. - * tree-flow.h (vectorize_loops, empty_block_p): Add declaration. - * tree-optimize.c (pass_vectorize): Schedule the vectorization pass. - * tree-pass.h (tree_opt_pass pass_vectorize): Declare the new - vectorization pass. - * tree-ssa-loop.c (tree_ssa_loop_init): Call scev_initialize. - (tree_ssa_loop_done): Call scev_finalize. - (tree_vectorize): Define the new vectorization pass. - * defaults.h (UNITS_PER_SIMD_WORD): Allow targets to specify the - size of the vector they support (until support for multiple vector - sizes is added to the vectorizer). - * config/i386/i386.h (UNITS_PER_SIMD_WORD): Define. - * config/rs6000/rs6000.h (UNITS_PER_SIMD_WORD): Define. - * invoke.texi (fdump-tree-vect, ftree-vectorize): Add - documentation. - -2004-08-17 Nathan Sidwell - - * objc/objc-act.c (build_protocol_initializer): Fix build_int_cst - usage. - (generate_protocol_list, handle_impent): Likewise. - -2004-08-17 Roger Sayle - - * regclass.c (init_reg_sets_1): Add ENABLE_CHECKING sanity tests to - ensure that call_used_regs is a superset of both fixed_regs and - call_really_used_regs. - -2004-08-17 Daniel Bornstein - - PR target/17019 - * arm.md (addsi3_cbranch_scratch): Correct case labels. - -2004-08-17 Paolo Bonzini - - PR middle-end/17036 - * fold-const.c (fold): Check for integer operand when - folding (A >> N) & 1 ? (1 << N) : 0. Fix from Andrew - Pinski . - -2004-08-17 Paolo Bonzini - - * configure.ac: Trust toplevel's notion of BISON/FLEX/MAKEINFO. - No need to check if in a cross configuration. - * configure: Regenerate. - - * calls.c (precompute_register_parameters): - Inline preserve_subexpressions_p (). - * expmed.c (expand_mult_const, emit_store_flag): Likewise. - * optabs.c (expand_binop, expand_twoval_binop, prepare_cmp_insn): - Likewise. - * expr.c (get_subtarget): Likewise. - * rtl.h (preserve_subexpressions_p): Remove. - * stmt.c (preserve_subexpressions_p): Remove. - - * dojump.c (do_jump) : - Abort on gimplified cases. - -2004-08-16 James E Wilson - - * tree.h (VECTOR_FLOAT_TYPE_P): New. - (FLOAT_TYPE_P): Use it. - * c-typeck.c (build_binary_op): After convert calls, check for - check for ERROR_MARK operands. - -2004-08-16 Zack Weinberg - - * Makefile.in (BUILD_PREFIX, BUILD_PREFIX_1): Delete. - (BUILD_RTL, BUILD_PRINT, BUILD_ERRORS, BUILD_VARRAY): Update. - (genobjs): Add build-rtl.o, build-print-rtl.o, build-varray.o. - (genobjs static pattern rule): Remove %.c dependency. - ($(BUILD_PREFIX_1)rtl.o, print-rtl.o, $(BUILD_PREFIX_1)varray.o): - Rename rules; delete commands; fix dependencies. - (mostlyclean): Do not delete temporary source copies. - * configure.ac: Delete all references to BUILD_PREFIX and - BUILD_PREFIX_1. - * configure: Regenerate. - - * print-rtl.c: Include bconfig.h #ifdef GENERATOR_FILE. - Do not include tree.h, real.h, flags.h, hard-reg-set.h, or - basic-block.h #ifdef GENERATOR_FILE. Surround some more code - with #ifndef GENERATOR_FILE so that nothing from those headers - is used. - - * rtl.c, varray.c: Include bconfig.h #ifdef GENERATOR_FILE. - -2004-08-16 Adam Nemet - - * Makefile.in (LIBS): Move $(LIBIBERTY) after $(BANSHEELIB). - -2004-08-16 Andrew Pinski - - * target-def.h (TARGET_EH_RETURN_FILTER_MODE): Remove - extraneous semicolon. - -2004-08-16 Devang Patel - - * c-common.c (handle_used_attribute): Set DECL_PRESERVE_P. - * print-tree.c (print_node): Print DECL_PRESERVE_P. - * target-def.h (TARGET_ASM_MARK_DECL_PRESERVED): New #define. - (TARGET_ASM_OUT): New member, TARGET_ASM_MARK_DECL_PRESERVED - * target.h (struct gcc_target): New member, mark_decl_preserved. - * hooks.c (hook_void_charptr): Rename to ... - (hook_void_constcharptr): ... new name. - * hooks.h (hook_void_charptr): Rename to .. - (hook_void_constcharptr): ... new name. - * tree.h (DECL_PRESERVE_P): New #define. - (struct tree_decl): New member, preserve_flag. - * varasm.c (assemble_start_function): Mark decl preserved. - (assemble_variable): Same. - * darwin.c (darwin_mark_decl_preserved): New function. - * darwin.h (TARGET_ASM_MARK_DECL_preserved): New #define. - * darwin-protos.h (darwin_mark_decl_preserved): New decl. - * doc/tm.texi (TARGET_ASM_MARK_DECL_PRESERVED): Document. - -2004-08-16 Joseph S. Myers - - * c-decl.c (grokdeclarator): Allow for function definition where - innermost declarator has attributes. - -2004-08-16 Fariborz Jahanian - - * except.c (get_exception_filter, build_post_landing_pads, - dw2_build_landing_pads): Use target-specific mode for 'filter'. - * target-def.h (TARGET_EH_RETURN_FILTER_MODE): macro defined and used. - * target.h (eh_return_filter_mode): New field added. - * targhooks.c (default_eh_return_filter_mode): Defined. - * targhooks.h (default_eh_return_filter_mode): Declared. - * config/rs6000/rs6000.c (rs6000_eh_return_filter_mode): Defined. - -2004-08-16 Nathanael Nerode - - * configure.ac: Replace _GCC_TOPLEV_NONCANONICAL_TARGET with - ACX_NONCANONICAL_TARGET; remove now-unneeded AC_SUBST. - * configure: Regenerate. - -2004-08-16 Stan Shebs - - Basic support for 64-bit Darwin. - * config/darwin.c (macho_indirect_data_reference): Add DImode case. - (machopic_legitimize_pic_address): Similarly, plus use Pmode - instead of SImode. - * config/rs6000/darwin.h (PTRDIFF_TYPE): Be "long int" if 64-bit. - (TARGET_OS_CPP_BUILTINS): Add 64-bit preprocessor macro. - (SUBTARGET_SWITCHES): Add -m32 and -m64 flags. - (SUBTARGET_OVERRIDE_OPTIONS): Require 64-bit processor if -m64. - (PROCESSOR_DEFAULT64): Define. - * config/rs6000/darwin.md: New file, patterns specific to 64-bit - Darwin. - * config/rs6000/rs6000.md: Include darwin.md. - (builtin_setjmp_receiver): Add DImode case. - * config/rs6000/rs6000.c (TARGET_ASM_UNALIGNED_DI_OP): Define for - Darwin. - (TARGET_ASM_ALIGNED_DI_OP): Ditto. - (rs6000_emit_move): Add DImode case to Darwin bits. - (machopic_output_stub): Use .quad if 64-bit. - * invoke.texi: Document -m32 and -m64. - -2004-08-16 Janis Johnson - - * doc/extend.texi (AltiVec builtins): Document additional differences - from the Motorola AltiVec PIM. - -2004-08-16 Nathan Sidwell - - * c-typeck.c (build_c_cast): Only copy overflow from expr nodes. - * tree.h (IS_NON_TYPE_CODE_CLASS): Simplify. - (struct tree_common): Update public_flag documentation. - -2004-08-16 Nathanael Nerode - - * tree-ssa-copyrename.c (copy_rename_partition_coalesce): - Check for artificial variables, not is_gimple_tmp_var. - * tree-ssa-live.c (var_union): Likewise. - -2004-08-16 Nathan Sidwell - - * calls.c (load_register_parameters): Remove spurious FIXME token. - -2004-08-15 Ziemowit Laski - - * Makefile.in (C_PRETTY_PRINT_H): Add c-pretty-print.h. - (c-lang.o): Depend on c-objc-common.h. - (c-objc-common.o): Depend on $(C_PRETTY_PRINT_H) and - c-objc-common.h; remove duplicate $(C_TREE_H) dependency. - * c-lang.c: Include c-objc-common.h. - (LANG_HOOKS_FINISH, LANG_HOOKS_INIT_OPTIONS, - LANG_HOOKS_INITIALIZE_DIAGNOSTICS, LANG_HOOKS_HANDLE_OPTION, - LANG_HOOKS_MISSING_ARGUMENT, LANG_HOOKS_POST_OPTIONS, - LANG_HOOKS_GET_ALIAS_SET, LANG_HOOKS_SAFE_FROM_P, - LANG_HOOKS_EXPAND_EXPR, LANG_HOOKS_MARK_ADDRESSABLE, - LANG_HOOKS_PARSE_FILE, LANG_HOOKS_TRUTHVALUE_CONVERSION, - LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL, - LANG_HOOKS_STATICP, LANG_HOOKS_SET_DECL_ASSEMBLER_NAME, - LANG_HOOKS_NO_BODY_BLOCKS, LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL, - LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_FUNCTION_ENTER_NESTED, - LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_DUP_LANG_SPECIFIC_DECL, - LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT, - LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, - LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, - LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, - LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P, - LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING, - LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, - LANG_HOOKS_TREE_DUMP_DUMP_TREE_FN, - LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, LANG_HOOKS_TYPE_FOR_MODE, - LANG_HOOKS_TYPE_FOR_SIZE, LANG_HOOKS_SIGNED_TYPE, - LANG_HOOKS_UNSIGNED_TYPE, LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE, - LANG_HOOKS_INCOMPLETE_TYPE_ERROR, LANG_HOOKS_TYPE_PROMOTES_TO, - LANG_HOOKS_REGISTER_BUILTIN_TYPE, LANG_HOOKS_WRITE_GLOBALS): - Move to c-objc-common.h. - * c-objc-common.c: Include c-objc-common.h. - * c-objc-common.h: New file. - -2004-08-15 Andreas Tobler - Andrew Pinski - - PR target/14931 - * config/rs6000/darwin-tramp.asm (L_abort$stub): Change to new stub - style. - -2004-08-15 Nathan Sidwell - - * tree.h (build_int_cst): New. - (build_int_2): Remove. - * tree.c (build_int_2): Remove. - (build_int_cst): New. - (make_vector_type, build_common_tree_nodes, - build_common_tree_nodes_2): Use build_int_cst. - * builtins.c (expand_builtin_prefetch, expand_builtin_strstr, - expand_builtin_strpbrk, expand_builtin_fputs, - build_string_literal, expand_builtin_printf, - expand_builtin_sprintf, fold_builtin_lround, fold_builtin_bitop, - fold_builtin_bitop, fold_builtin_isascii, fold_builtin_toascii, - fold_builtin_isdigit, simplify_builtin_strstr, - simplify_builtin_strpbrk, fold_builtin_fputs, - simplify_builtin_sprintf): Use build_int_cst. - * c-common.c (start_fname_decls, fix_string_type, - c_common_nodes_and_builtins, c_init_attributes, - shorten_compare): Likewise. - * c-decl.c (complete_array_type, - check_bitfield_type_and_width): Likewise. - * c-lex.c (interpret_integer, lex_charconst): Likewise. - * c-parse.in (primary): Likewise. - * c-pretty-print.c (pp_c_integer_constant): Likewise. - * c-typeck.c (really_start_incremental_init, push_init_level, - set_nonincremental_init_from_string): Likewise. - * calls.c (load_register_parameters): Likewise. - * convert.c (convert_to_pointer): Likewise. - * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref, - build_fn_info_type, build_ctr_info_value, build_gcov_info): - Likewise. - * except.c (init_eh, assign_filter_values, assign_filter_values): - Likewise. - * expmed.c (store_fixed_bit_field, extract_bit_field, - extract_fixed_bit_field, extract_split_bit_field, expand_shift, - expand_mult_const, expand_mult_highpart_adjust, extract_high_half, - expand_sdiv_pow2, expand_divmod, make_tree): Likewise. - * expr.c (convert_move, emit_group_load, emit_group_store, - expand_assignment, store_constructor, store_field, - expand_expr_real_1, reduce_to_bit_field_precision): Likewise. - * fold-const.c (force_fit_type, int_const_binop, fold_convert_const, - invert_truthvalue, optimize_bit_field_compare, - decode_field_reference, all_ones_mask_p, constant_boolean_node, - fold_div_compare, fold, fold_read_from_constant_string, - fold_negate_const, fold_abs_const, fold_not_const): Likewise. - * function.c (assign_parm_setup_block): Likewise. - * stmt.c (shift_return_value, expand_end_case_type, - estimate_case_costs): Likewise. - * stor-layout.c (layout_type, initialize_sizetypes, - set_min_and_max_values_for_integral_type): Likewise. - * tree-chrec.c (chrec_fold_multiply_poly_poly, - reset_evolution_in_loop): Likewise. - * tree-chrec.h (build_polynomial_chrec): Likewise. - * tree-complex.c (build_replicated_const): Likewise. - * tree-eh.c (honor_protect_cleanup_actions, - lower_try_finally_onedest, lower_try_finally_copy, - lower_try_finally_switch): Likewise. - * tree-mudflap.c (mf_build_string, mx_register_decls, - mudflap_register_call, mudflap_enqueue_constant): Likewise. - * tree-nested.c (get_trampoline_type, get_nl_goto_field): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-ssa-ccp.c (widen_bitfield, maybe_fold_offset_to_array_ref): - Likewise. - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Likewise. - * tree-ssa-loop-niter.c (number_of_iterations_cond, - loop_niter_by_eval, upper_bound_in_type, lower_bound_in_type): - Likewise. - - * config/alpha/alpha.c (alpha_initialize_trampoline, - alpha_va_start, alpha_gimplify_va_arg_1): Use build_int_cst. - * config/arm/arm.c (arm_get_cookie_size): Likewise. - * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Likewise. - * config/i386/i386.c (ix86_va_start, ix86_gimplify_va_arg): Likewise. - * config/i860/i860.c (i860_va_start): Likewise. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. - * config/mips/mips.c (mips_build_builtin_va_list, mips_va_start, - mips_gimplify_va_arg_expr): Likewise. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Likewise. - * config/rs6000/rs6000.c (rs6000_va_start, rs6000_gimplify_va_arg, - add_compiler_branch_island): Likewise. - * config/s390/s390.c (s390_va_start): Likewise. - * config/sh/sh.c (sh_va_start): Likewise. - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_start): - Likewise. - * config/xtensa/xtensa.c (xtensa_va_start, - xtensa_gimplify_va_arg_expr): Likewise. - - * objc/objc-act.c (build_objc_string_object, - build_objc_symtab_template, init_def_list, init_objc_symtab, - init_module_descriptor, generate_static_references, - build_selector_translation_table, get_proto_encoding, - build_typed_selector_reference, build_selector_reference, - build_next_objc_exception_stuff, - build_method_prototype_list_template, generate_descriptor_table, - generate_protocols, build_protocol_initializer, - build_ivar_list_template, build_method_list_template, - build_ivar_list_initializer, generate_ivars_list, - generate_dispatch_table, generate_protocol_list, - build_category_initializer, build_shared_structure_initializer, - generate_shared_structures, handle_impent, - generate_objc_image_info): Use build_int_cst. - -2004-08-15 Ben Elliston - - * vec.h: Comment improvements. - -2004-08-14 Roger Sayle - - * c-common.c (shorten_compare, pointer_int_sum, - c_common_truthvalue_conversion, boolean_increment): Replace calls - to build with calls to buildN. - * c-decl.c (complete_array_type, grokdeclarator): Likewise. - * c-gimplify.c (c_build_bind_expr, gimplify_c_loop, - gimplify_switch_stmt): Likewise. - * c-typeck.c (default_function_array_conversion, - build_component_ref, build_array_ref, build_function_call, - pointer_diff, build_unary_op, build_conditional_expr, - build_compound_expr, build_modify_expr, c_finish_goto_label, - c_finish_goto_ptr, c_finish_return, c_finish_loop, - c_finish_bc_stmt, c_finish_stmt_expr, c_end_compound_stmt, - build_binary_op): Likewise. - -2004-08-15 Steven Bosscher - - * rtl.c (note_insn_name): Add NOTE_DISABLE_SCHED_OF_BLOCK. - -2004-08-14 John David Anglin - - * fixinc/inclhack.def (stdio_va_list): Also fix com_err.h, cps.h, - curses.h, krb5.h, lc_core.h, pfmt.h, wchar.h and curses_colr/curses.h. - * fixinc/fixincl.x: Rebuilt. - -2004-08-14 Richard Sandiford - - * config/mips/mips-protos.h (mips_symbolic_constant_p) - (mips_atomic_symbolic_constant_p, mips_stack_address_p) - (mips_small_data_pattern_p): Declare. - * config/mips/mips.h (CONST_GP_P): Moved from mips.c. - (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Delete. - * config/mips/mips.c (mips_symbolic_constant_p): Make global. - (mips_atomic_symbolic_constant_p, mips_stack_address_p): New functions. - (uns_arith_operand, const_arith_operand, arith_operand, sle_operand) - (sleu_operand, small_int, reg_or_0_operand, const_float_1_operand) - (reg_or_const_float_1_operand, hilo_operand, extend_operator) - (macc_msac_operand, equality_op, cmp_op, trap_cmp_op) - (pc_or_label_operand, call_insn_operand, move_operand) - (consttable_operand, symbolic_operand, general_symbolic_operand) - (global_got_operand, local_got_operand, stack_operand) - (fp_register_operand, lo_operand, fcc_register_operand): Delete. - (mips_small_data_pattern_1): Renamed from small_data_pattern_1. - (mips_small_data_pattern_p): Replace previous small_data_pattern - predicate. Turn into a bool () (rtx) function. - * config/mips/predicates.md: New file. - * config/mips/mips.md: Include it. Use the target-independent - comparison_operator instead of cmp_op. Rename trap_cmp_op to - trap_comparison_operator and equality_op to equality_operator. - Replace uses of small_int with the equivalent const_arith_operand. - Rename reg_or_const_float_1_operand to reg_or_1_operand. Rename - const_float_1_operand to const_1_operand. Rename fcc_register_operand - to fcc_reload_operand. - * config/mips/sb1.md: Rename fp_register_operand to fpr_operand. - -2004-08-14 John David Anglin - - PR libstdc++/17005 partial fix. - * pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Define _INCLUDE__STDC_A1_SOURCE - except when generating ANSI/C89 code. - -2004-08-14 Nathan Sidwell - - * c-common.c (shorten_compare): Use force_fit_type directly. - -2004-08-14 Gerald Pfeifer - Dimitri Papadopoulos-Orfanos - Dave Korn - - * doc/install.texi (Building): Avoid duplicate reference to GNU - make requirement. - (*-*-solaris2*): Do not recommend GNU make any longer. Simplify. - -2004-08-14 Richard Henderson - - * config/alpha/alpha.h (PROMOTE_MODE): Don't promote vector types. - * config/alpha/alpha.c (function_value): Use PROMOTE_MODE. - -2004-08-13 Richard Henderson - - * config/i386/i386.md (call_1, sibcall_1, call_1_rex64): Use Pmode - for constant_call_address_operand. - (call_value_pop_1, call_value_1): Likewise. - (sibcall_value_1, call_value_1_rex64): Likewise. - -2004-08-13 James E Wilson - - * config/mips/sb1.md (ir_sb1_divdf_2pipes, ir_sb1_divdf_1pipe): - Correct mode from SFmode to DFmode. - -2004-08-13 Ziemowit Laski - - * config/darwin.h (EXTRA_SECTION_FUNCTIONS): Mark the __sel_fixup, - __cstring_object and __image_info sections with the no_dead_strip - attribute. - -2004-08-13 Roger Sayle - David Billinghurst - - PR libgfortran/15930 - * fixinc/inclhack.def (irix___generic1, irix___generic2): New. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/internal/math_core.h: New file. - -2004-08-13 Richard Henderson - - * dbxout.c (NO_DBX_FUNCTION_END): Default to zero. - (dbxout_function_end): Remove ifdefs for it. - (dbxout_begin_prologue): Protect N_BNSYM with it, and gdb extensions. - -2004-08-13 Richard Henderson - - * Makefile.in (insn-preds.o): Depend on TREE_H. - * genpreds.c (write_insn_preds_c): Include tree.h. - * config/alpha/alpha.c (reg_or_0_operand, reg_or_6bit_operand, - reg_or_8bit_operand, cint8_operand, add_operand, sext_add_operand, - const48_operand, and_operand, or_operand, mode_width_operand, - mode_mask_operand, mul8_operand, const0_operand, - hard_fp_register_operand, hard_int_register_operand, - reg_or_cint_operand, some_operand, some_ni_operand, input_operand, - samegp_function_operand, direct_call_operand, small_symbolic_operand, - global_symbolic_operand, call_operand, symbolic_operand, - dtp16_symbolic_operand, dtp32_symbolic_operand, - gotdtp_symbolic_operand, tp16_symbolic_operand, tp32_symbolic_operand, - gottp_symbolic_operand, alpha_comparison_operator, - alpha_zero_comparison_operator, alpha_swapped_comparison_operator, - signed_comparison_operator, alpha_fp_comparison_operator, - divmod_operator, fix_operator, aligned_memory_operand, - unaligned_memory_operand, reg_or_unaligned_mem_operand, - any_memory_operand, reg_not_elim_operand, normal_memory_operand, - reg_no_subreg_operand, addition_operation): Move to predicates.md. - (reg_or_const_int_operand): Remove. Replace all users with - reg_or_cint_operand. - (tls_symbolic_operand_1): Export. Don't check mode or for CONST. - (resolve_reload_operand): Split out of aligned_memory_operand. - * config/alpha/alpha-protos.h: Update for exports. - * config/alpha/alpha.h (PREDICATE_CODES): Remove. - * config/alpha/alpha.md: Include predicates.md. - * config/alpha/predicates.md: New file. - -2004-08-13 Richard Sandiford - - * genattrtab.c (insn_ent): Replace insn_code, insn_index and lineno - fields with a pointer to the instruction definition. - (get_attr_value, fill_attr, make_length_attrs, remove_insn_ent) - (insert_insn_ent, simplify_test_exp, optimize_attrs, write_attr_get) - (write_attr_case, write_const_num_delay_slots): Update accordingly. - (write_attr_case, write_const_num_delay_slots): Write the name of - an insn next to its case statement. - * genoutput.c (data): Add a filename field. - (gen_insn, gen_peephole, gen_expand, gen_split): Set it. - (output_insn_data): Print the location of each insn definition. - * genrecog.c (write_action): Print the name of an insn above - the statement that returns its code. - -2004-08-12 Andrew Pinski - - * config/darwin-c.c (find_subframework_file): Fix spelling of cannot. - * config/libgloss.h: Likewise. - * config/arm/arm.c (arm_gen_load_multiple): Likewise. - * c4x/c4x-modes.def: Likewise. - * config/c4x/c4x.c (c4x_hard_regno_rename_ok): Likewise. - (c4x_rptb_nop_p): Likewise. - (c4x_rptb_valid_p): Likewise. - (c4x_rptb_insert): Likewise. - (c4x_address_conflict): Likewise. - * config/c4x/c4x.md: Likewise. - * config/frv/frv.md: Likewise. - * config/i386/athlon.md: Likewise. - * config/i386/i386.md: Likewise. - * config/i386/predicates.md: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/itanium1.md: Likewise. - * config/ia64/itanium2.md: Likewise. - * config/iq2000/iq2000.md: Likewise. - * config/mcore/mcore.c: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/r3900.h: Likewise. - * config/mips/sb1.md: Likewise. - * config/pa/milli64.S: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa.h: Likewise. - * config/rs6000/8540.md: Likewise. - -2004-08-13 Daniel Berlin - - * Makefile.in (BOOT_CFLAGS): Remove accidental addition of -dU. - -2004-08-13 J"orn Rennecke - - * sh.md (cbranch define_delay) Use cond_delay_slot for - non-anulled condition too. - -2004-08-12 David Edelsohn - - * config/rs6000/rs6000.c (any_parallel_operand): New predicate. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add - any_parallel_operand, lmw_operation, stmw_operation, - mfcr_operation, mtcrf_operation. Remove PARALLEL from any_operand. - * config/rs6000/rs6000.md (save_fpregs_{si,di}): Use - any_parallel_operand. - (return_and_restore_fpregs_{si,di}): Same. - -2004-08-12 Zack Weinberg - - * genrecog.c (add_to_sequence): When processing a MATCH_PARALLEL, - if pred->singleton != PARALLEL, issue a warning and pretend it was. - Also issue a warning for any predicate we don't know about. - -2004-08-12 Richard Henderson - - * config/i386/i386.c (internal_label_prefix): Export. - (internal_label_prefix_len, struct ix86_address, - ix86_decompose_address, maybe_get_pool_constant, - ix86_fp_compare_code_to_integer, ix86_fp_comparison_codes, - memory_address_length): Export. - (any_fp_register_operand, fp_register_operand, - register_and_not_any_fp_reg_operand, register_and_not_fp_reg_operand, - 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, - x86_64_zext_immediate_operand, const_int_1_31_operand, - symbolic_operand, pic_symbolic_operand, local_symbolic_operand, - tls_symbolic_operand, global_dynamic_symbolic_operand, - local_dynamic_symbolic_operand, initial_exec_symbolic_operand, - local_exec_symbolic_operand, call_insn_operand, sibcall_insn_operand, - constant_call_address_operand, const0_operand, const1_operand, - const248_operand, const_0_to_3_operand, const_0_to_7_operand, - const_0_to_15_operand, const_0_to_255_operand, incdec_operand, - shiftdi_operand, reg_no_sp_operand, mmx_reg_operand, - general_no_elim_operand, nonmemory_no_elim_operand, - index_register_operand, q_regs_operand, flags_reg_operand, - non_q_regs_operand, zero_extended_scalar_load_operand, - vector_move_operand, no_seg_address_operand, sse_comparison_operator, - ix86_comparison_operator, ix86_carry_flag_operator, - fcmov_comparison_operator, promotable_binary_operator, - cmp_fp_expander_operand, ext_register_operand, binary_fp_operator, - mult_operator, div_operator, arith_or_logical_operator, - memory_displacement_operand, cmpsi_operand, long_memory_operand, - aligned_operand): Move to predicates.md as define_predicates. - (tls_symbolic_operand_1): Remove. - (x86_64_sign_extended_value): Merge into x86_64_immediate_operand. - (x86_64_zero_extended_value): Merge into x86_64_zext_immediate_operand. - (legitimize_address): Merge tls_symbolic_operand contents. - (ix86_expand_move): Likewise. - * config/i386/i386-protos.h: Update for exports. - * config/i386/i386.h (EXTRA_CONSTRAINT): Update for renames. - (PREDICATE_CODES, SPECIAL_MODE_PREDICATES): Remove. - * config/i386/i386.md: Include predicates.md. - * config/i386/predicates.md: New file. - -2004-08-13 Mark Mitchell - - PR c++/16924 - * config/i386/winnt.c (i386_pe_mark_dllexport): Set - SYMBOL_REF_DECL. - (i386_pe_mark_dllimport): Likewise. - (i386_pe_encode_section_info): Likewise, when overriding - dllimport attribute. - -2004-08-12 Geoffrey Keating - - * configure.ac: When testing for flex, nm, ar, and bison, check - that they will actually be built. - * configure: Regenerate. - -2004-08-12 Ulrich Weigand - - * config/s390/s390.h (MAX_FIXED_MODE_SIZE): Define. - (MOVE_MAX_PIECES): Define. - -2004-08-12 Devang patel - - * dbxout.c (dbxout_begin_prologue): New function. - (dbx_debug_hooks): Use new begin prologue hook. - (dbxout_function_end): Emit N_ENSYM. - * stab.def (N_BNSYM, N_ENSYM): Define and document these two new stabs. - -2004-08-12 Janis Johnson - - * config/rs6000/altivec.h (vec_dst): Fix C++ functions whose first - argument is float*. - - * config/rs6000/rs6000.c (altivec_init_builtins): Fix argument type - for vec_dss. - - * doc/extend.texi (AltiVec builtins): Fix description for recent - changes. Update operation list to match current support. - -2004-08-12 Andreas Krebbel - - * config/s390/s390.c (struct s390_frame_layout): New struct as element - of struct machine_function. - (cfun->machine->frame_size): Moved into cfun->machine->frame_layout and - changed all uses. - (cfun->machine->save_fprs_p): Replaced by cfun_save_high_fprs and - changed all uses. - (cfun_frame_layout, cfun_save_high_fprs_p, cfun_gprs_save_area_size) - (cfun_set_fpr_bit, cfun_fpr_bit_p): New macros. - (s390_frame_area, s390_register_info): New functions. - (s390_optimize_prolog): Renamed to s390_optimize_prologue. Added check - for base register. - (s390_return_addr_rtx, s390_return_address_offset) - (s390_va_start, s390_gimplify_va_arg) - (s390_emit_prologue, s390_emit_epilogue): Adjusted for new stack - layouts. - (s390_frame_info): Functionality partly moved to s390_register_info. - Made adaptions for new stack layout. - (save_gprs, restore_gprs): Changed meaning of second parameter and - adapted all callers. - - * config/s390/s390.h (s390_backchain_string): New global variable. - (MASK_BACKCHAIN): Removed definition. - (TARGET_BACKCHAIN): Changed check. - (TARGET_KERNEL_BACKCHAIN): New macro. - (TARGET_SWITCHES): Removed entries of "backchain" and "no-backchain". - (TARGET_OPTIONS): Added "backchain", "no-backchain" and - "kernel-backchain". - (DYNAMIC_CHAIN_ADDRESS): Adjusted for new stack layouts. - - * config/s390/s390.md ("allocate_stack"): Added TARGET_KERNEL_BACKCHAIN - as condition. Adjusted for new stack layout. - - * doc/invoke.texi: Added documentation for new option - "-mkernel-backchain" and adjusted documentation of "-mbackchain" and - "-mno-backchain". - -2004-08-12 Paul Brook - - * config/arm/lib1funcs.asm (ARM_FUNC_ALIAS): Also alias _L__name. - (aeabi_uidivmod, aeabi_idivmod): Provide thumb implementation. - -2004-08-12 David Daney - - * java/gcj.texi: Add subsection on signal usage. - -2004-08-12 David Edelsohn - - * expr.c (move_by_pieces): Set alignment for move to minimum of - MOVE_MAX_PIECES mode alignment and the largest non-slow mode - alignment, but not less than the original alignment. - (move_by_pieces_ninsns): Same. - (can_store_by_pieces): Similar for store with STORE_MAX_PIECES. - (store_by_pieces_1): Same. - -2004-08-12 Diego Novillo - - PR tree-optimization/16867 - * tree.c (is_global_var): New function. - (needs_to_live_in_memory): Check for TREE_ADDRESSABLE. - Call is_global_var. - * tree.h (DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL): Remove. - Update all users. - (is_global_var): Declare. - * tree-dfa.c (dump_variable): Display global and addressable - attributes. - (add_referenced_var): Clarify documentation when marking - variables call-clobbered. - * tree-flow-inline.h (is_call_clobbered): Call is_global_var - instead of needs_to_live_in_memory. - (mark_call_clobbered): If the variable is a tag, mark it - DECL_EXTERNAL. - * tree-gimple.c (is_gimple_reg): Don't check for - TREE_ADDRESSABLE. - (is_gimple_non_addressable): Likewise. - * tree-ssa-alias.c (get_nmt_for): Always check whether the tag - needs to be marked call-clobbered. - (setup_pointers_and_addressables): Call is_global_var instead - of needs_to_live_in_memory. - * tree-ssa-dce.c (need_to_preserve_store): Remove. - Update all users with is_global_var. - (mark_stmt_if_obviously_necessary): Fix processing of aliased - stores. Don't check the virtual definitions. Rather, check - whether the store is going into global memory. - (find_obviously_necessary_stmts): Get the symbol from the PHI - result. - * tree-ssa-operands.c (get_call_expr_operands): Do not add - clobbering may-defs if the call does not have side effects. - -2004-08-12 Jakub Jelinek - - PR c++/16276 - * output.h (default_function_rodata_section, - default_no_function_rodata_section): New prototypes. - * target.h (struct gcc_target): Add asm_out.function_rodata_section. - * target-def.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. - (TARGET_ASM_OUT): Add it. - * varasm.c (default_function_rodata_section, - default_no_function_rodata_section): New functions. - * final.c (final_scan_insn): Call - targetm.asm_out.function_rodata_section instead of - readonly_data_section. - * config/darwin.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Define. - * config/mcore/mcore.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. - * config/ip2k/ip2k.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. - * config/rs6000/xcoff.h (TARGET_ASM_FUNCTION_RODATA_SECTION): - Likewise. - * config/alpha/alpha.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. - * config/i386/cygming.h (TARGET_ASM_FUNCTION_RODATA_SECTION): - Likewise. - * config/i386/i386-interix.h (TARGET_ASM_FUNCTION_RODATA_SECTION): - Likewise. - * config/arm/pe.h (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. - * config/avr/avr.c (TARGET_ASM_FUNCTION_RODATA_SECTION): Likewise. - * doc/tm.texi (TARGET_ASM_FUNCTION_RODATA_SECTION): Document. - -2004-08-12 Paul Brook - - * dwarf2out.h (dwarf2out_frame_finish): Conditionalize outputting eh - frame info. - * doc/tm.texi: Document interaction between TARGET_UNWIND_INFO and - DWARF2_UNWIND_INFO. - -2004-08-12 Ben Elliston - - PR target/16286 - * config/rs6000/altivec.h: Change vector to __vector throughout. - (Except for the `vector' macro itself). - -2004-08-12 Zack Weinberg - - * genpreds.c: Add capability to generate predicate bodies as - well as function prototypes. Write function prototypes for - the generic predicates too. - (process_define_predicate, write_tm_preds_h, write_insn_preds_c) - (write_predicate_subfunction, mark_mode_tests, add_mode_tests) - (write_match_code, write_predicate_expr, write_one_predicate_function) - (parse_option): New functions. - (output_predicate_decls): Delete. - (main): Read the machine description, process DEFINE_PREDICATE or - DEFINE_SPECIAL_PREDICATE patterns, write tm-preds.h or insn-preds.c - as appropriate. - - * genrecog.c (struct decision_test): Replace index with - struct pred_data pointer. - (next_index): Remove, unused. - (pred_table, preds, special_mode_pred_table): Delete. - (compute_predicate_codes, process_define_predicate): New functions. - (validate_pattern, add_to_sequence, write_switch): Update for - new data structures. - (main): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. - Check both error_count and have_error. - - * gensupport.c (in_fname, first_predicate): New globals. - (define_pred_queue, define_pred_tail): New RTL-pattern queue. - (predicate_table, last_predicate, old_pred_table) - (old_special_pred_table): New statics. - (hash_struct_pred_data, eq_struct_pred_data, lookup_predicate) - (add_predicate, init_predicate_table): New functions. - (process_rtx): Handle DEFINE_PREDICATE and DEFINE_SPECIAL_PREDICATE. - (init_md_reader_args_cb): Use the global in_fname. No need to zero - it or max_include_len. Call init_predicate_table. - (read_rtx): Run the predicate queue after the attribute queue - but before all the others. - * gensupport.h (in_fname, struct pred_data, first_predicate) - (lookup_predicate, add_predicate, FOR_ALL_PREDICATES): Declare. - * rtl.def (MATCH_CODE, MATCH_TEST, DEFINE_PREDICATE) - (DEFINE_SPECIAL_PREDICATE): New RTL codes. - * dummy-conditions.c: Don't include bconfig.h, system.h, - coretypes.h, tm.h, or system.h. Do include stddef.h. - Duplicate declaration of struct c_test from gensupport.h. - - * Makefile.in (OBJS-common): Add insn-preds.o. - (STAGESTUFF, .PRECIOUS): Add insn-preds.c. - (insn-preds.c, insn-preds.o): New rules. - (s-preds): Also generate insn-preds.c. - (dummy-conditions.o, genpreds$(build_exeext), genpreds.o): - Update dependencies. - (print-rtl.o, print-rtl1.o): Correct dependencies. - - * recog.h: Delete prototypes of predicate functions. - - * doc/md.texi (Predicates): New section with complete - documentation of operand/operator predicates. Remove some - incomplete documentation of predicates from other places. - * doc/tm.texi (Misc): Move SPECIAL_MODE_PREDICATES next to - PREDICATE_CODES; indicate that both are deprecated in favor - of define_predicate/define_special_predicate. - - * config/ia64/ia64.c: All predicate function definitions moved - to ia64.md, except - (small_addr_symbolic_operand, tls_symbolic_operand): Delete. - (ia64_expand_load_address, ia64_expand_move): - Check SYMBOL_REF_TLS_MODEL directly, don't use tls_symbolic_operand. - - * config/ia64/ia64.md: All predicates now defined here. - (symbolic_operand): Is now a special predicate. - - * config/ia64/ia64.h: Declare ia64_section_threshold. - (PREDICATE_CODES): Delete. - -2004-08-12 Richard Henderson - - * c-common.h (STATEMENT_LIST_HAS_LABEL): New. - * c-semantics.c (add_stmt): Set it. - * c-decl.c (finish_decl): Use it to create a new BIND_EXPR - before instantiating a variable sized type. - -2004-08-12 Richard Henderson - - * stor-layout.c (round_up, round_down): Move ... - * fold-const.c (round_up, round_down): ... here. Use - multiple_of_p to avoid any arithmetic at all. - -2004-08-12 Richard Henderson - - * gimplify.c (struct gimplify_init_ctor_preeval_data): New. - (gimplify_init_ctor_preeval_1): New. - (gimplify_init_ctor_preeval): New. - (gimplify_init_ctor_eval): New. - (gimplify_init_constructor): Use them. Always gimplify the LHS - object first. - -2004-08-12 Ziemowit Laski - - (This patch is part of merge of objc-improvements-branch - into mainline.) - - * doc/frontends.texi: Mention Objective-C++ in addition to - Objective-C. - * doc/install.texi: Add 'obj-c++' to list of configurable - languages. - * doc/invoke.texi: Rename Objective-C option headings to - indicate they also apply to Objective-C++. List file - extensions for Objective-C++ sources. Mention that - ObjC and ObjC++ compilations may also use C and C++ options, - respectively. Point users to doc/standards.texi for - further info on ObjC and ObjC++. - * doc/sourcebuild.texi: Mention the objcp/ directory and - the Objective-C++ sources it contains. - * doc/standards.texi: Update link to Apple ObjC site; - add link to gcc readings.html WWW doc. - -2004-08-12 Alan Modra - - * config/rs6000/rs6000.c (function_arg_padding): Revert 2004-07-28 - and 2004-07-14 changes. - -2004-08-12 Paul Brook - - * doc/invoke.texi: Fix typo. - -2004-08-11 Devang Patel - - * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Add -dead_strip - and -no_dead_strip_inits_and_terms. - (LINK_SPEC): Same. - * doc/invoke.texi (Darwin Options): Document -dead_strip and - -no_dead_strip_inits_and_terms. - -2004-08-11 Paul Brook - - * config/arm/arm-protos.h (arm_finalize_pic) Rename ... - (arm_load_pic_register): ... to this. - * config/arm/arm.c (arm_finalize_pic): Rename ... - (arm_load_pic_register): ... to this. Always output insns at the - current location. Load via low reg in thumb mode. - (arm_expand_prologue): Call arm_load_pic_register. - (thumb_expand_prologue): Ditto. - * config/arm/arm.h (FINALIZE_PIC): Remove. - * config/arm/arm.md (builtin_setjmp_receiver): Call - arm_load_pic_register. - -2004-08-11 Paul Brook - - * arm.c (thumb_force_lr_save): Add prototype. - (thumb_compute_save_reg_mask): New function. - (thumb_find_work_register): New function. - (arm_get_frame_offsets): Use thumb_compute_save_reg_mask. - (thumb_unexpanded_epilogue): Ditto. Remove redundant code. - Don't clobber r3 when removing pretend args. - (thumb_expand_prologue): Use thumb_compute_save_reg_mask. - (thumb_output_function_prologue): Use new functions. - (thumb_set_return_address): Use thumb_compute_save_reg_mask. - * arm.h (THUMB_REG_PUSHED_P): Remove. - -2004-08-11 James E Wilson - - PR rtl-optimization/16490 - * cfgrtl.c (cfg_layout_split_edge): Set global_live_at_start and - global_live_at_end for new basic block if already set for other blocks. - -2004-08-11 David Edelsohn - - * config/rs6000/rs6000.h (MAX_FIXED_MODE_SIZE): Define. - - * config/rs6000/rs6000.md (mfcr rlwinm patterns): Set length to 8. - (mfcr rlwinm rlwinm patterns): Set length to 12. - -2004-08-11 Andrew MacLeod - - * tree-flow-inline.h (get_def_ops, get_use_ops, get_v_may_def_ops, - get_vuse_ops,get_v_must_def_ops): Add operand structure reference. - (get_v_may_def_result_ptr, get_v_may_def_op_ptr): New access struct. - (start_ssa_stmt_operands): Delete. - * tree-flow.h (struct stmt_ann_d): Replace operand vectors with new - struct stmt_operands_d. - (build_ssa_operands): New extern entry point. - * tree-ssa-dom.c (record_equivalences_from_stmt): Remove operand - building code, replace with create_ssa_artficial_load_stmt(). - * tree-ssa-operands.c (struct voperands_d): Delete. - (allocate_v_may_def_optype): Allocate v_may_def_operand_type_t vector. - (allocate_v_must_def_optype): Use sizeof (tree), not sizeof (tree *). - (free_uses, free_defs, free_vuses, free_v_may_defs, - free_v_must_defs): Remove dealloc parameter. - (remove_vuses, remove_v_may_def, remove_v_must_defs): Delete. - (finalize_ssa_defs, finalize_ssa_uses, finalize_ssa_v_may_defs, - finalize_ssa_vuses, finalize_ssa_v_must_defs): Perform all operand - vector comparisons, ssa_name reuse, and allocations here. - (verify_start_operands): Delete. - (finalize_ssa_stmt_operands): Set new operands by calling finalize - routines. - (start_ssa_stmt_operands): Move from tree-flow-inline.h. - (append_def, append_usei): Simplify to simple accumulation. - (append_v_may_def, append_vuse, append_v_must_def): Simplify to avoiding - duplicates and simple accumulation. - (free_ssa_operands): Free vectors in a stmt_operand structure. - (build_ssa_operands): New. Create a new stmt_operand structure from - a stmt and an old set of stmt_operands. - (get_stmt_operands): Simplify and call build_ssa_operands. - (get_expr_operands, get_asm_expr_operands, get_indirect_ref_operands, - get_call_expr_operands, add_stmt_operand, add_call_clobber_ops, - add_call_read_ops): Don't pass prev_vops around anymore. - (note_addressable): Return if no stmt annotation. - (copy_virtual_operands): Access v_may_def operands through a struct. - (create_ssa_artficial_load_stmt): New. Create a load stmt for DOM's - hash tables without treating the stmt as a real stmt. - * tree-ssa-operands.h (struct v_may_def_operand_type): New. Access - v_may_def def and use through a struct instead of 2 array elements. - (struct v_may_def_optype_d): Use v_may_def_operand_type. - (struct stmt_operands_d): New. Struct for storing all operand vectors. - -2004-08-11 Nick Clifton - - * config/arm/arm.c (arm_is_longcall_p): Update comment describing - this funciton's behaviour. Return true when the current function - has a section attribute and -mlong-calls is in effect. - * config/arm/arm.h (ARM_DECLARE_FUNCTION_SIZE): Do not set the - short-call marker when -mlong-calls is in effect and the function - has a section attribute. - -2004-08-10 Zack Weinberg - - * stmt.c (expand_return): If asked to return the RESULT_DECL, - just call expand_value_return on result_rtl. - -2004-08-10 Richard Henderson - - * builtins.def (BUILT_IN_STACK_ALLOC): Remove. - * builtins.c (expand_builtin) : Remove. - * dwarf2out.c (loc_descriptor): Handle PARALLEL here ... - (add_location_or_const_value_attribute): ... not here. Use - loc_descriptor_from_tree if possible. - (loc_descriptor_from_tree_1): Rename from loc_descriptor_from_tree. - Simplify address handling. Handle DECL_VALUE_EXPR. Handle register - values specially. - (loc_descriptor_from_tree): New. Update callers. - * expr.c (expand_var): Ignore DECL_VALUE_EXPR variables. - * gimplify.c (gimplify_decl_expr): Lower variable sized types to - pointer plus dereference. Set DECL_VALUE_EXPR. Set save_stack. - (gimplify_call_expr): Do not recognize BUILT_IN_STACK_ALLOC - and BUILT_IN_STACK_RESTORE. - (gimplify_expr): Lower DECL_VALUE_EXPR decls. - * stmt.c (expand_stack_alloc): Remove. - * tree-mudflap.c (mx_register_decls): Don't look for - BUILT_IN_STACK_ALLOC. - * tree-nested.c (convert_local_reference): Likewise. - * tree.h (DECL_VALUE_EXPR): New. - -2004-08-10 Richard Henderson - - * stor-layout.c (round_up): Check for 0/1 before dividing. - (round_down): Likewise. - - * tree-tailcall.c (suitable_for_tail_opt_p): Also check DECL_EXTERNAL. - -2004-08-09 Mark Mitchell - - * config.gcc (arm*-*-eabi*): New target. - * defaults.h (TARGET_LIBGCC_FUNCS): New macro. - (TARGET_LIB_INT_CMP_BIASED): Likewise. - * expmed.c (expand_divmod): Try a two-valued divmod function as a - last resort. - * gthr.h: Remove bogus tokens at end of #pragma. - * optabs.c (expand_twoval_binop_libfunc): New function. - (prepare_cmp_insn): Handle the !TARGET_LIB_INT_CMP_BIASED case. - (prepare_float_lib_cmp): Try reversing the condition. - (debug_optab_libfuncs): New function. - * optabs.h (expand_twoval_binop_libfunc): Declare. - * config/arm/arm.c (arm_init_libfuncs): New function. - (arm_compute_initial_eliminatino_offset): Return HOST_WIDE_INT. - (TARGET_INIT_LIBFUNCS): Define it. - * config/arm/arm.h (TARGET_BPABI): New macro. - * config/arm/arm-protos.h - (arm_compute_initial_elimination_offset): Return HOST_WIDE_INT. - * config/arm/bpabi.S: New file. - * config/arm/bpabi.c: Likewise. - * config/arm/bpabi.h: Likewise. - * config/arm/ieee754-df.S (__aeabi_dneg): New function or alias. - (__aeabi_drsub): Likewise. - (__aeabi_dsub): Likewise. - (__aeabi_dadd): Likewise. - (__aeabi_ui2d): Likewise. - (__aeabi_i2d): Likewise. - (__aeabi_f2d): Likewise. - (__aeabi_dmul): Likewise. - (__aeabi_ddiv): Likewise. - (__aeabi_cdrcmple): Likewise. - (__aeabi_cdcmpeq): Likewise. - (__aeabi_cdcmple): Likewise. - (__aeabi_dcmpeq): Likewise. - (__aeabi_dcmplt): Likewise. - (__aeabi_dcmple): Likewise. - (__aeabi_dcmpge): Likewise. - (__aeabi_dcmpgt): Likewise. - (__aeabi_dcmpun): Likewise. - (__aeabi_d2iz): Likewise. - (__aeabi_d2uiz): Likewise. - (__aeabi_d2f): Likewise. - * config/arm/ieee754-sf.S (__aeabi_fneg): New function or alias. - (__aeabi_frsub): Likewise. - (__aeabi_fsub): Likewise. - (__aeabi_fadd): Likewise. - (__aeabi_ui2f): Likewise. - (__aeabi_i2f): Likewise. - (__aeabi_fmul): Likewise. - (__aeabi_fdiv): Likewise. - (__aeabi_cfrcmple): Likewise. - (__aeabi_cfcmpeq): Likewise. - (__aeabi_cfcmple): Likewise. - (__aeabi_fcmpeq): Likewise. - (__aeabi_fcmplt): Likewise. - (__aeabi_fcmple): Likewise. - (__aeabi_fcmpge): Likewise. - (__aeabi_fcmpgt): Likewise. - (__aeabi_fcmpun): Likewise. - (__aeabi_f2iz): Likewise. - (__aeabi_f2uiz): Likewise. - * config/arm/lib1funcs.asm (ARM_CALL): New macro. - (__aeabi_uidivmod): New function or alias. - (__aeabi_idivmod): Likewise. - (__aeabi_idiv0): Likewise. - (__aeabi_ldiv0): Likewise. - (__aeabi_llsr): Likewise. - (__aeabi_lasr): Likewise. - (__aeabi_llsl): Likewise. - (bpabi.S): Include it. - * config/arm/libgcc-bpabi.ver: New file. - * config/arm/symbian.h (ARM_DEFAULT_ABI): Remove. - (LINK_SPEC): Remove. - * config/arm/t-arm-elf (LIB1ASMFUNCS): Add __aeabi_lcmp and - __aeabi_ulcmp. - * config/arm/t-bpabi: New file. - * doc/tm.texi (TARGET_LIBGCC_FUNCS): New entry. - (TARGET_LIB_INT_CMP_BIASED): Likewise. - -2004-08-10 David Edelsohn - - * config/rs6000/rs6000-protos.h (expand_block_clear): Declare. - * config/rs6000/rs6000.md (clrmemsi): New pattern. - * config/rs6000/rs6000.c (expand_block_clear): New function. - (expand_block_move): Convert alignment to bits. Use SImode and - HImode for unaligned addresses if not STRICT_ALIGNMENT. - -2004-08-10 Caroline Tice - - * varasm.c (unlikely_section_label): New global variable. - (unlikely_text_section_name): New global variable. - (text_section): Remove alignment statement. - (unlikely_text_section): Remove alignment statement; use - unlikely_section_label rather than hard-coded string. - (assemble_start_function): Initialize unlikely_section_label and - unlikely_text_section_name; make sure cold section is properly - aligned at start of function; output unlikely_section_label if - appropriate. - -2004-08-10 Ulrich Weigand - - * config/s390/s390-protos.h (s390_canonicalize_comparison): Declare. - * config/s390/s390.c (s390_canonicalize_comparison): New function. - * config/s390/s390.h (CANONICALIZE_COMPARISON): Define. - * config/s390/s390.md ("*tmdi_ext", "*tmsi_ext", "*tmqisi_ext", - "*tmqidi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem"): Remove. - ("*tmqi_mem"): Remove SUBREG from pattern. - ("*anddi3_cconly"): Prevent accidentally matching TM pattern. - ("*andsi3_cconly"): Likewise. - -2004-08-10 H.J. Lu - - PR target/16909 - * config/i386/i386.md (*strsetdi_rex_1): Use DI instead of SI. - -2004-08-10 Janis Johnson - - * doc/sourcebuild.texi (compat testing): Document available test - framework commands. Use the preferred spelling of DejaGnu. - -2004-08-10 Daniel Berlin - - * lambda.h: Add matrix type, and prototypes for remainder of - matrix and vector functions. - (lambda_vector_mult_const): New function. - (lambda_vector_negate): Ditto. - (lambda_vector_add): Ditto. - (lambda_vector_add_mc): Ditto. - (lambda_vector_copy): Ditto. - (lambda_vector_zerop): Ditto. - (lambda_vector_equal): Ditto. - (lambda_vector_min_nz): Ditto. - (lambda_vector_first_nz): Ditto. - (lambda_vector_matrix_mult): Ditto. - * lambda-mat.c: New file. - * Makefile.in (lambda-mat.o): New. - -2004-08-10 Andrew MacLeod - - * tree-cfg.c (bsi_insert_before, bsi_insert_after): Call modify_stmt - after linking stmt into the program. - (bsi_remove): Don't call modify_stmt. - * tree-complex.c (update_complex_assignment, - expand_complex_comparison): Call modify_stmt after changing the stmt. - * tree-outof-ssa.c (rewrite_trees): Call modify_stmt only if not - removing the stmt. - * tree-ssa-ccp.c (substitute_and_fold): Call modify_stmt after changing - the stmt, and only if needed. - * tree-ssa-dom.c (thread_across_edge): Pass no annotation for a dummy - expression. - (simplify_rhs_and_lookup_avail_expr): Don't take an annotation param. - (simplify_cond_and_lookup_avail_expr): Use modify_stmt. - (simplify_switch_and_lookup_avail_expr): Don't take an annotation param. - (eliminate_redundant_computations): Don't pass an annotation. Call - modify_stmt rather than setting the annotation directly. - (record_equivalences_from_stmt): Remove unused local 'j'. - (cprop_operand): Take a stmt rather than an annotation as a parameter. - Call modify_stmt. - (cprop_into_stmt): Pass stmt rather than annotation. - (update_rhs_and_lookup_avail_expr): Call modify_stmt. - * tree-ssa-loop-im.c (schedule_sm): Call get_stmt_ann rather than - modify_stmt. - * tree-ssa.c (propagate_into_addr): Dont call modify_stmt. - -2004-08-10 Jason Merrill - - PR middle-end/16948 - * function.c (expand_function_start): Handle DECL_BY_REFERENCE on - the RESULT_DECL. - -2004-08-10 Geoffrey Keating - - * tree-vn.c (val_expr_pair_expr_eq): Compare vuses, to match the - hash function. - -2004-08-10 Roger Sayle - - * config/mips/mips.md: New reciprocal square root patterns that - match sqrt(1.0/x) in addition to the existing 1.0/sqrt(x) insns. - -2004-08-10 Paul Brook - - * config/arm/arm-protos.h (arm_set_return_address, - thumb_set_return_address): Add prototypes. - * config/arm/arm.h (ARM_FT_EXCEPTION_HANDLER): Remove. - * config/arm/arm.c (arm_compute_func_type, - use_return_insn, arm_compute_save_reg0_reg12_mask, - arm_compute_save_reg_mask, arm_output_function_prologue, - arm_output_epilogue): Replace ARM_FT_EXCEPTION_HANDLER with - current_function_calls_eh_return. - (thumb_exit, thumb_pushpop, thumb_unexpanded_epilogue): Replace - old eh code. - (arm_set_return_address, thumb_set_return_address): New functions. - * config/arm/arm.h (MUST_USE_SJLJ_EXCEPTIONS, DWARF2_UNWIND_INFO, - ARM_EH_STACKADJ_REGNUM, EH_RETURN_STACKADJ_RTX): Define. - * config/arm/arm.md (VUNSPEC_EH_RETURN): Add. - (epilogue): Use the stackadj register. - (eh_return, arm_eh_return, thumb_eh_return): New pattern. - -2004-08-10 Jakub Jelinek - - PR target/3144 - * expr.c (move_by_pieces_ninsns): Add max_size argument. - (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 to it. - (CLEAR_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 to it. - (STORE_BY_PIECES_P): Define similarly to CLEAR_BY_PIECES_P, - but using MOVE_RATIO. - (move_by_pieces): Pass max_size to move_by_pieces_ninsns. - (can_store_by_pieces): Change max_size type to unsigned int. - (store_by_pieces_1): Likewise. Pass max_size to - move_by_pieces_ninsns. - * config/s390/s390.h (STORE_BY_PIECES_P): Define. - * config/sh/sh.c (MOVE_BY_PIECES_P): Pass MOVE_MAX_PIECES + 1 - to move_by_pieces_ninsns. - (STORE_BY_PIECES_P): Define. - * config/ns32k/ns32k.h (STORE_BY_PIECES_P): Pass STORE_MAX_PIECES + 1 - to move_by_pieces_ninsns. - * doc/tm.texi (STORE_BY_PIECES_P): Document changed default. - - * config/i386/i386.h (CLEAR_RATIO): Define. - -2004-08-09 Paolo Bonzini - - * expr.c (expand_expr_real_1): Add back code that was not dead. - -2004-08-09 Andrew Pinski - - * c-common.c (c_common_get_alias_set): Set the aliasing set of the type - which is found to be compatible before returning the aliasing set. - -2004-08-09 Daniel Jacobowitz - - * ggc-zone.c (struct alloc_zone): Add statistics counters. - (always_collect): New flag. - (ggc_alloc_zone_1): Update statistics support. Don't include - overhead in allocated counter. - (sweep_pages): Update allocated counter for large pages. Don'y - include overhead. - (ggc_collect_1): Always collect. - (ggc_collect): Honor always_collect flag. Sum all zones to decide - whether to collect. - (SCALE, LABEL): New macros. - (ggc_print_statistics): Add statistics support. - -2004-08-09 Roger Sayle - - * expmed.c (sdiv_pow2_cheap, smod_pow2_cheap): Change type to bool. - (init_expmed): Fix potential overrun problem with "all.reg". - (expand_sdiv2_pow2): Add an alternate implementation for signed - division, if the target provides a suitable conditional move insn. - -2004-08-09 Paul Brook - Richard Henderson - - * unwind-dw2.c (uw_install_context_1): Update target saved stack - pointer. - -2004-08-09 Geoffrey Keating - - * ggc-common.c (ggc_rlimit_bound): Don't check RSS limit. - Check DATA limit only if there's no AS limit. Ignore insanely - low DATA limits. - (ggc_min_heapsize_heuristic): Don't divide AS or RSS limits by 8, - but take care that the AS limit isn't overrun. - * doc/invoke.texi: Update documentation of min-heapsize parameter. - -2004-08-09 Jeff Law - - * Makefile.in (OBJC-common): Add tree-ssa-threadupdate.c - (tree-ssa-threadupdate.o): Add dependencies. - * tree-ssa-threadupdate.c: New file. - * tree-flow.h (incoming_edge_threaded): New flag in block annotation. - (rewrite_vars_out_of_ssa): Remove prototype. - (cleanup_tree_cfg): Returns a bool. - * tree.h (thread_through_all_blocks): Prototype. - * tree-outof-ssa.c (SSANORM_*): Move into here. - (remove_ssa_form): Now static. - (rewrite_vars_out_of_ssa): Kill. - * tree-ssa-live.c (register_ssa_partitions_for_vars): Kill. - * tree-ssa-live.h (SSANORM_*): Moved into tree-outof-ssa.c. - (remove_ssa_form, register_partitions_for_vars): Kill declarations. - * tree-cfg.c (cleanup_tree_cfg): Return a value indicating if - anything was changed. - * tree-phinodes.c (add_phi_arg): Get the block for the PHI - from the PHI's annotation rather than the edge associated with - the new argument. - * tree-ssa-dom.c (redirection_edges): Kill. - (redirect_edges_and_update_ssa_graph): Kill. - (tree_ssa_dominator_optimize): Do not reset forwardable flag - for blocks anymore. Do not initialize redirection_edges. - Call thread_through_all_blocks. Simplify code for cleanup - of the CFG and iterating. No longer call cleanup_tree_cfg - outside the iteration loop. - (thread_across_edge): No longer mess with forwardable blocks. - -2004-08-09 Zack Weinberg - - * explow.c (memory_address): Use memory_address_p. - * recog.c (general_operand): Likewise. - * regrename.c: No need to define REG_OK_STRICT. - -2004-08-09 Steven Bosscher - - * timevar.def (TV_CPROP1, TV_CPROP2, TV_PRE, TV_HOIST, TV_LSM): - New timers. - * gcse.c: Include timevar.h. - (const_prop_count, copy_prop_count): Rename to global_const_prop_count - and global_copy_prop_count. - (local_const_prop_count, local_copy_prop_count): New static globals. - (gcse_main): Set the right timevar for each pass. - (cprop_jump): Increment global_const_prop_count when a constant is - propagated. Add "GLOBAL" to dump output. - (cprop_insn): Increment global_const_prop_count when a constant is - propagated, or global_copy_prop_count when a copy is propagated. - (do_local_cprop): Likewise for local_const_prop_count and - local_copy_prop_count. - (one_cprop_pass): Initialize const/cprop counters to zero. - Print out results of local and global const/cprop separately. - (bypass_block): Break over-length line. - * Makefile.in (gcse.o): Add TIMEVAR_H dependency. Fix dependencies - for bb-reorder.o and tracer.o. - -2004-08-09 Paolo Bonzini - - * Makefile.in (GTFILES): Remove stmt.c - (stmt.o): Do not depend on gt-stmt.h. - * emit-rtl.c (emit_line_note): Do not call - set_file_and_line_for_stmt. - * expr.c (expand_expr_real_1) : Let expand_case - do everything. - * function.c (free_after_parsing): Do not free STMT field. - (allocate_struct_function): Do not call init_stmt_for_function. - (assign_stack_temp_for_type): Do not accept values of keep - other than 0 or 1. - (init_temp_slots): Do not initialize removed variables. - * function.h (struct function): Remove STMT, X_TARGET_TEMP_SLOT_LEVEL - and X_VAR_TEMP_SLOT_LEVEL fields. - * rtl.h (set_file_and_line_for_stmt): Remove. - * stmt.c (struct nesting, ALLOC_NESTING, POPSTACK, - struct stmt_status, cond_stack, case_stack, nesting_stack, - nesting_depth, emit_locus, set_file_and_line_for_stmt, - same_case_target_p, init_stmt_for_function, emit_nop, - expand_start_cond, expand_start_elseif, expand_start_else, - expand_elseif, expand_end_cond): Remove. - (preserve_subexpressions_p): Remove references to CFUN->STMT. - (expand_start_case, expand_end_case_type): Remove, merge into... - (expand_case): ... this one, including other bits from - expand_expr_real_1. Inline same_case_target_p. Turn members - of CASE_STACK into local variables. - (emit_case_bit_tests): Inline same_case_target_p. - (add_case_node): Add HEAD argument, return new head of the list, - do not handle default label here. - * tree.h (expand_start_cond, expand_end_cond, expand_start_else, - expand_start_elseif, current_nesting_level, expand_start_case, - expand_end_case_type, expand_end_case, add_case_node, - init_stmt_for_function, expand_elseif): Remove prototypes. - (expand_case): Add prototype. - -2004-08-09 Paolo Bonzini - - * expr.c (expand_expr_real_1): Use optab_for_tree_code. - -2004-08-09 Paolo Bonzini - - * expr.c (var_rtx): Remove. - (expand_expr_real_1) : - Abort. - (expand_expr_real_1) : Remove most special cases. - * optabs.c (emit_clr_insn, emit_0_to_1_insn): Remove. - * optabs.h (emit_clr_insn, emit_0_to_1_insn): Remove. - -2004-08-08 Mostafa Hagog - Ayal Zaks - - * common.opt (freschedule-modulo-scheduled-loops): New flag. - * final.c (final_scan_insn): Handle NOTE_DISABLE_SCHED_OF_BLOCK. - * modulo-sched.c (sms_schedule): Emit a note to disable scheduling - when -freschedule-modulo-scheduled-loops flag is not specified. - (sms_schedule_by_order, ps_insn_advance_column, add_node_to_ps, - add_node_to_ps, ps_has_conflicts, ps_add_node_check_conflicts): - More accurate placing of insn in row of partial schedule. - (ps_insn_find_column): New function. - * rtl.h (NOTE_DISABLE_SCHED_OF_BLOCK): New note. - * sched-rgn.c (sched_is_disabled_for_current_region_p): New. - (schedule_region): Use sched_is_disabled_for_current_region_p. - * docs/invoke.texi: Document -freschedule-modulo-scheduled-loops. - -2004-08-07 H.J. Lu - - * config/i386/i386.c (ix86_expand_clrmem): Revert the last - change. - -2004-08-07 H.J. Lu - - * config/i386/i386.c (ix86_expand_clrmem): Properly call - gen_strset for 64bit target. - -2004-08-07 Olivier Hainque - - * config/vxworks.h (HANDLE_SYSV_PRAGMA): Remove definition. - -2004-08-07 Jason Merrill - - Make return in memory explicit. - * function.c (aggregate_value_p): Check DECL_BY_REFERENCE. - (assign_parm_find_data_types): Remove code for old front end - invisible reference handling. - (assign_parms): Handle DECL_BY_REFERENCE on the RESULT_DECL. - (expand_function_end): Likewise. - * gimplify.c (gimplify_return_expr): Handle a dereferenced - RESULT_DECL. - * tree-inline.c (copy_body_r): Don't bother looking for &* anymore. - (declare_return_variable): Handle DECL_BY_REFERENCE. - * cp/cp-gimplify.c (is_invisiref_parm): Also handle RESULT_DECL. - (cp_genericize_r): Use convert_from_reference. - Don't dereference a RESULT_DECL directly inside a RETURN_EXPR. - (cp_genericize): Handle the RESULT_DECL. Unset TREE_ADDRESSABLE. - - * c-common.c (c_warn_unused_result): Check TREE_USED before - warning about a CALL_EXPR with an unused value. - -2004-08-06 Mark Mitchell - - * config/arm/symbian.h (CC1_SPEC): Avoid passing duplicate options - to the compiler. Use -fshort-wchar by default. - -2004-08-06 Pat Haugen - - * params.def (PARAM_MIN_CROSSJUMP_INSNS): New. - * cfgcleanup.c (try_crossjump_to_edge): Add minimum insn match - threshhold. - * doc/invoke.texi (param): Document min-crossjump-insns. - -2004-08-06 Richard Sandiford - - PR c/13282 - * c.opt (Wmissing-field-initializers): New option. - * c-opts.c (c_common_post_options): Make -Wextra turn it on by default. - * c-typeck.c (pop_init_level): Guard the missing field warning with - warn_missing_field_initializers rather than extra_warnings. - * doc/invoke.texi (-Wmissing-field-initializers): Document, moving - some of the explanation from... - (-Wextra): ...here. Say that the missing field warning can be - seperately controlled by -Wmissing-field-initializers. - -2004-08-06 Paolo Bonzini - - * expr.c (expand_expr_real_1) : Remove. - * tree-inline.c (estimate_num_insns_1) : Remove. - * tree-pretty-print.c (dump_generic_node) : Remove. - * tree.def (ENTRY_VALUE_EXPR): Remove. - -2004-08-06 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_clrmem): Move gen_cld down to - the places where it is actually needed. Don't use repz; stosb - for -Os with sufficiently small constant sizes. - For sufficiently small repz; stos{l,q} repeat counts use a sequence - of stos{l,q} instructions instead. - -2004-08-06 Zdenek Dvorak - - PR tree-optimization/16807 - * loop-iv.c (dump_iv_info): Dump invariants correctly. - (iv_subreg, iv_extend): Express value of invariant purely in - base field. - -2004-08-06 Mark Mitchell - - * config/arm/symbian.h (CC1_SPEC): Add -fno-short-enums. - (CC1PLUS_SPEC): Define it to be the same as CC1_SPEC. - -2004-08-06 Roman Zippel - - * config/m68k/m68k.c (post_inc_operand,pre_dec_operand): New. - * config/m68k/m68k.h (PREDICATE_CODES): add post_inc_operand, - pre_dec_operand. - * config/m68k/m68k.md (zero_extend*2): delay the splitting of the - pattern until reload is finished to allow better code generation - and split them completely into separate instrunctions. - (*andsi3_split): New pattern. - -2004-08-05 Mark Mitchell - - * tree.c (handle_dll_attribute): Move here from i383/winnt.c. - Replace use of DECL_INLINE with DECL_DECLARED_INLINE_P. Set - DECL_VISIBLITY. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. - * tree.h (handle_dll_attribute): Declare. Test - TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. - * c-common.h (c_determine_visibility): Declare. - * c-common.c (c_determine_visibility): New function. - * c-decl.c (finish_decl): Use it. - (finish_function): Likewise. - * defaults.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define it to - zero, by default. Use #if, not #ifdef, to test it. - * config/arm/arm.c (arm_attribute_table): Use - handle_dll_attribute. Test TARGET_DLLIMPORT_DECL_ATTRIBUTES with - #if. - * config/arm/pe.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define to 1. - * config/i386/cygming.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define - to 1. - * config/i386/i386-protos.h (ix86_handle_dll_attribute): Remove. - * config/i386/i386.c (ix86_attribute_table): Use - handle_dll_attribute for dllimport/dllexport. Test - TARGET_DLLIMPORT_DECL_ATTRIBUTES with #if. - * config/i386/winnt.c (ix86_handle_dll_attribute): Remove. - * config/mcore/mcore.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define - it to 1. - * config/mcore/mcore.c (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Test it - with #if. - * config/sh/symbian-pre.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define - it to 1. - * doc/extend.texi (dllexport): Clarify and correct documentation. - (dllimport): Likewise. - * doc/tm.texi (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Mention - handle_dll_attribute. - -2004-08-05 Zdenek Dvorak - - * tree-ssa-loop-manip.c: New file. - * Makefile.in (tree-ssa-loop-manip.o): Add. - * tree-flow.h (rewrite_into_loop_closed_ssa, verify_loop_closed_ssa): - Declare. - * tree-ssa-loop.c (tree_loop_optimizer_init): Create loop closed ssa - form. - (tree_ssa_loop_done): Verify loop closed ssa form. - * tree-ssa-loop-im.c (move_computations): Update loop closed ssa form. - -2004-08-05 John David Anglin - - * pa.c (pa_asm_output_aligned_bss, pa_asm_output_aligned_common, - pa_asm_output_aligned_local): New functions. - * pa-protos.h: Add prototypes for pa_asm_output_aligned_bss, - pa_asm_output_aligned_common and pa_asm_output_aligned_local. - * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Use - pa_asm_output_aligned_common. - (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. - * pa.h (ASM_OUTPUT_ALIGNED_BSS): New macro. - (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common. - (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. - * pa64-hpux.h (MAX_OFILE_ALIGNMENT): New macro. - (ASM_OUTPUT_ALIGNED_COMMON): Use pa_asm_output_aligned_common. - (ASM_OUTPUT_ALIGNED_LOCAL): Use pa_asm_output_aligned_local. - * som.h (MAX_OFILE_ALIGNMENT): Provide maximum alignment of global - common data. - -2004-08-05 Andrew Pinski - - * objc/objc-act.c (build_objc_string_object): Mark the address - expression as constant. - -2004-08-05 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Fix mask_operand - and mask64_operand thinkos. Handle ZERO_EXTRACT. Handle - SIGN_EXTEND / ZERO_EXTEND of MEM. Handle rlwinm patterns. - -2004-08-05 Joseph S. Myers - - * config/linux.h, config/i386/linux.h, config/sparc/linux.h: - Remove definitions conditioned on USE_GNULIBC_1 or conditioned - out, and associated obsolete comments. - -2004-08-05 Nathan Sidwell - - * tree.h (force_fit_type): Return a tree, take three flags. - * fold-const.c (force_fit_type): Set TREE_OVERFLOW and - TREE_CONSTANT_OVERFLOW here. - (int_const_binop, const_binop): Adjust. - (size_int_type): Do sign extension here. - (fold_convert_const, optimize_bit_field_compare, - decode_field_reference, all_ones_mask_p, fold_div_compare, fold, - fold_negate_const, fold_abs_const, fold_not_const): Adjust. - * tree.c (size_in_bytes, int_fits_type_p): Adjust. - -2004-08-05 Zdenek Dvorak - - PR tree-optimization/16864 - * tree-tailcall.c (eliminate_tail_call): Do not create phi nodes - for ssa names without default_def. - -2004-08-05 Richard Sandiford - - * config/i386/i386.c (ix86_expand_prologue): If the function uses a - frame pointer, restore eax with an ebp-relative address. - -2004-08-04 Geoffrey Keating - - PR 14516 - * c-common.c (c_expand_decl): Don't special-case static VAR_DECLs. - * c-common.h (make_rtl_for_local_static): Delete. - * c-decl.c (shadow_tag_warned): Clean up comment. - (finish_decl): Clean up spacing. Use set_user_assembler_name when - appropriate. Don't pass asmspec to rest_of_decl_compilation. - * c-semantics.c (make_rtl_for_local_static): Delete. - * expr.c (init_block_move_fn): Use set_user_assembler_name. - (init_block_clear_fn): Likewise. - * passes.c (rest_of_decl_compilation): Remove asmspec parameter, - expect it to be in DECL_ASSEMBLER_NAME. Update callers in many files. - * toplev.h (rest_of_decl_compilation): Remove asmspec parameter. - * tree.h (make_decl_rtl): Remove second parameter. - (set_user_assembler_name): New. - * varasm.c (set_user_assembler_name): New. - (make_decl_rtl): Remove second parameter. Update callers in many - files. - -2004-08-05 Adam Nemet - - * config.gcc (case i[34567]86-*-lynxos*): Update to LynxOS 4.0. - (case rs6000-*-lynxos*): Rename it to powerpc-*-lynxos*. Update - to LynxOS 4.0. - * gthr-lynx.h: New file. - * config/lynx-ng.h: Remove file. - * config/lynx.h: Update to LynxOS 4.0. - * config/t-lynx: New file. - * config/i386/lynx-ng.h: Remove file. - * config/i386/lynx.h: Update to LynxOS 4.0. - * config/rs6000/lynxbase.h: Remove file. - * config/rs6000/lynx.h: Update to LynxOS 4.0. - * config/rs6000/t-lynx: New file. - * doc/install.texi (Options specification): Remove reference to - LynxOS from systems where --with-gnu-as makes a difference. - -2004-08-05 Joseph S. Myers - - * c-common.c (c_stddef_cpp_builtins): Define __INTMAX_TYPE__ and - __UINTMAX_TYPE__. - * c-cppbuiltin.c (builtin_define_stdint_macros): New. Define - __INTMAX_MAX__. - (c_cpp_builtins): Call it. - * doc/cpp.texi: Update. - -2004-08-04 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_rtx_costs): LABEL_REFs are zero - cost. - -2004-08-04 Jan Hubicka - - * basic-block.h (profile_staus): New global variable. - * cfg.c (profile_status): Declare. - (check_bb_profile): Break out from ....; use profile_status - (dump_flow_info): ... here. - * cfgbuild.c (find_basic_blocks): Set profile_status. - * cfgexpand.c (tree_expand_cfg): Likewise. - * predict.c (estimate_probability): Likewise. - * profile.c (branch_prob): Likewise. - * tree-cfg.c (build_tree_cfg): Likewise. - (dump_function_to_file): Use check_bb_profile. - * tree-pretty-print (dump_bb_header): Likewise. - * tree-profile.c (do_tree_profiling): Cleanup. - -2004-08-04 Zack Weinberg - - * Makefile.in (RTL_BASE_H, RTL_H): Correct. - (BUILD_RTL): Remove $(BUILD_PREFIX) from ggc-none.o. - (genobjs): Add errors.o, ggc-none.o, and min-insn-modes.o. - (read-rtl.o, gensupport.o, genconfig.o, genflags.o, gencodes.o) - (genconstants.o, genemit.o, genopinit.o, genrecog.o, genextract.o) - (genpeep.o, genattr.o, genattrtab.o, genautomata.o, genoutput.o) - (genconditions.o): Depend on $(RTL_BASE_H) not $(RTL_H). - (ggc-none.o, errors.o): Move rule to generators section; - correct dependencies. - (min-insn-modes.o): Move rule to generators section; remove - unnecessary explicit command; correct dependencies. - (print-rtl.o, print-rtl1.o): Correct dependencies. - ($(BUILD_PREFIX_1)errors.o. $(BUILD_PREFIX_1)ggc-none.o): Delete rule. - (mostlyclean): Update. - - * errors.c: Include bconfig.h not config.h. Correct comment. - * gengtype.c, genpreds.c: Don't define NO_GENRTL_H. - * ggc-none.c: Include bconfig.h; not config.h or tm.h. - * print-rtl.c: Don't include tm_p.h. - - * rtl.h: Move forward-decl of struct function down where it's - needed. Include genrtl.h #ifndef GENERATOR_FILE, not - #ifndef NO_GENRTL_H. Remove unnecessary #ifdef BUFSIZ statements. - -2004-08-04 Zdenek Dvorak - Jeff Law - - * tree-cfg.c (tree_duplicate_bb): Mark duplicated definitions. - * tree-flow.h (rewrite_ssa_into_ssa): Declaration changed. - * tree-into-ssa.c (rewrite_ssa_into_ssa): Use new interface to - manipulate the duplicated ssa names. - * tree-ssanames.c (ssa_names_to_rewrite): New variable. - (marked_for_rewrite_p, any_marked_for_rewrite_p, mark_for_rewrite, - unmark_all_for_rewrite, marked_ssa_names, release_ssa_name_force): - New functions. - (release_ssa_name): Do not release ssa names that may have multiple - definitions. - * tree.h (release_ssa_name_force, mark_for_rewrite, - unmark_all_for_rewrite, marked_for_rewrite_p, any_marked_for_rewrite_p, - marked_ssa_names): Declare. - * tree-ssa-loop-ch.c (mark_defs_for_rewrite): Remove. - (duplicate_blocks): Remove call to mark_defs_for_rewrite. - Update call to rewrite_ssa_into_ssa. - -2004-08-04 Mark Mitchell - - * defaults.h (TARGET_DECLSPEC): New macro. - * c-cppbuiltin.c (c_cpp_builtins): Handle TARGET_DECLSPEC. - * config/arm/pe.h (SUBTARGET_CPP_SPEC): Remove __declspec support. - * config/arm/symbian.h (TARGET_DLLIMPORT_DECL_ATTRIBUTES): Define. - * config/i386/beof-elf.h (TARGET_OS_CPP_BUILTINS): Remove - __declspec support. - (TARGET_DECLSPEC): Define. - * config/i386/cygming.h (TARGET_OS_CPP_BUILTINS): Remove - __declspec support. - * config/i386/i386-interix.h (TARGET_OS_CPP_BUILTINS): Remove - __declspec support. - (TARGET_DECLSPEC): Define. - * config/mcore/mcore.h (TARGET_CPU_CPP_BUILTINS): Remove - __declspec support. - * config/sh/symbian-pre.h (SUBTARGET_CPP_SPEC): Remove __declspec - support. - * doc/tm.texi (TARGET_DECLSPEC): Document. - - * doc/extend.texi: Fix typo in comment. - -2004-08-04 Paul Brook - - * target-def.h (TARGET_CXX_CDTOR_RETURNS_THIS): Define. - (TARGET_CXX): Use it. - * target.h (struct gcc_target): Add cdtor_returns_this. - * config/arm/arm.c (arm_cxx_cdtor_returns_this): New function. - (TARGET_CXX_CDTOR_RETURNS_THIS): Define. - * doc/tm.texi: Document TARGET_CXX_CDTOR_RETURNS_THIS. - -2004-08-03 Nathan Sidwell - - * c-lex.c (narrowest_unsigned_type, narrowest_signed_type): Take - low/high pair. Do range checking directly. - (interpret_integer): Adjust. - -2004-08-04 Nick Clifton - - * config/sh/sh.h (TARGET_SWITCHES): Add no-renesas to select the - GCC ABI. - * doc/invoke.texi: Document this new switch and also the -mrenesas - switch. - -2004-08-04 Nathan Sidwell - - * cfglayout.c (insn_locators_initialize): Update the current - location before initializing a location. - -2004-08-03 Zack Weinberg - - * dbxout.c (dbxout_function_decl): Always call dbxout_function_end. - (dbxout_function_end): Return after emitting the "Lscope" symbol - under the same conditions that this function formerly wasn't called. - Add explanatory comments. - - PR 14860 - * c-decl.c (record_builtin_type): Call debug_hooks->type_decl - on the new decl. - - PR 13956 - * dbxout.c (dbx_output_lbrac, dbx_output_rbrac): New - functions, broken out of dbxout_block. - (dbxout_block): The block at depth 0 should get LBRAC/RBRAC - stabs too, if it contains symbols. Use the begin_label and - the Lscope label (emitted by dbxout_function_end) for the - range of this block. - -2004-08-03 Nathanael Nerode - - * doc/install.texi: Update autoconf version requirements. - -2004-08-03 Zack Weinberg - - * defaults.h (LEGITIMATE_PIC_OPERAND_P): Provide default definition. - * recog.c (general_operand, immediate_operand, nonmemory_operand) - (asm_operand_ok): Remove #ifdefs on LEGITIMATE_PICOPERAND_P. - * regclass.c (record_reg_classes): Likewise. - * reload.c (find_reloads): Likewise. - * reload1.c (reload): Likewise. - -2004-08-03 Zack Weinberg - - * gensupport.c (init_md_reader_args_cb): Renamed from - init_md_reader_args. Add third option, callback function for - parsing program-specific options. Add diagnosis of incorrect - number of input files. - (init_md_reader): Fold into init_md_reader_args_cb. - (init_md_reader_args): Now a thin wrapper around - init_md_reader_args_cb. - * gensupport.h: Update prototypes. - - * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c - * genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c - * genrecog.c: No need to diagnose lack of an input file; - init_md_reader_args will handle it. - * genconditions.c: Likewise, and use init_md_reader_args. - * genconstants.c: Likewise, and no need to call read_md_rtx. - -2004-08-03 Joseph S. Myers - - * c-decl.c (implicitly_declare): Diagnose incompatible implicit - declarations. - -2004-08-03 Mike Stump - - * config/darwin-c.c: Don't search in "/Local/Library/Frameworks" - for frameworks. - * doc/invoke.texi (Darwin Options): Update to reflect above. - -2004-08-03 Roger Sayle - - PR middle-end/16790 - * fold-const.c (extract_muldiv_1) : Disallow local - truncations, not just global truncations. - -2004-08-03 Andrew Pinski - - PR bootstrap/16865 - * loop-iv.c (simplify_using_assignment): Initialize lhs. - -2004-08-03 Paul Brook - - * gcc/doc/install.texi: Document MPFR requirement. - -2004-08-03 Maciej W. Rozycki - - * aclocal.m4 (gcc_AC_FUNC_MMAP_BLACKLIST): Check for - and mmap() explicitly instead of relying on preset autoconf cache - variables. - * configure: Regenerate. - -2004-08-03 H.J. Lu - - PR target/16570 - * config.gcc (i[34567]86-*-* | x86_64-*-*): Add i386/t-gmm_malloc - to tmake_file. - (i[34567]86-*-linux*aout* | i[34567]86-*-linux*libc1): Likewise. - (i[34567]86-*-linux* | x86_64-*-linux*): Add i386/t-pmm_malloc - to tmake_file. - - * config/i386/t-gmm_malloc: New file. - * config/i386/t-pmm_malloc: Likewise. - - * config/i386/xmmintrin.h: Include . - -2004-08-03 H.J. Lu - Tanguy Fautrà - - * config/i386/pmm_malloc.h: New file. - -2004-08-03 Danny Smith - - * config/i386/gmm_malloc.h: New file. - -2004-08-03 Dale Johannesen - - * config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs. - * c-common.c: Include opts.h. - (c_common_get_alias_set): Fix check for a single input file. - * toplev.c: Remove current_file_decl. - * tree.h: Ditto. - -2004-08-03 Mark Mitchell - - * config.gcc (arm*-*-symbianelf*): New target. - * config/arm/symbian.h: New file. - - * gthr-gnat.c: Add visibility #pragmas. - * gthr-gnat.h : Likewise. - * gthr.h: Likewise. - * libgcc2.c (__ffsSI2): Move prototype to libgcc2.h. - (__ffsDI2): Likewise. - (__clzSI2): Likewise. - (__ctzSI2): Likewise. - (__ctzDI2): Likewise. - (__popcountSI2): Likewise. - (__popcountDI2): Likewise. - (__paritySI2): Likewise. - (__parityDI2): Likewise. - * libgcc2.h: Add visibility #pragmas. - (__clzDI2): Add prototype. - (__clzSI2): Likewise. - (__ctzSI2): Likewise. - (__ffsDI2): Likewise. - (__ffsSI2): Likewise. - (__ctzDI2): Likewise. - (__popcountSI2): Likewise. - (__popcountDI2): Likewise. - (__paritySI2): Likewise. - (__parityDI2): Likewise. - * unwind-dw2-fde.h: Add visibility #pragmas. - * unwind.h: Likewise. - -2004-08-03 David Edelsohn - Dale Johannesen - Roger Sayle - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of - constants more accurately. Adjust costs for FMA instructions. - Add cases for most logical and float operations. Recurse into - most operands. - -2004-08-03 Richard Earnshaw - - * config.gcc (strongarm-*, xscale-*): Add t-arm to tmake_files. - -2004-08-03 Pat Haugen - - * ra-build.c (conflicts_between_webs): For webs that cross a call add - conflicts to regs_invalidated_by_call. - -2004-08-03 Paul Brook - - * config/arm/arm.c (emit_sfm): Only emit a single frame adjustment. - -2004-08-03 Jan Hubicka - - * coverage.c (tree_coverage_counter_ref): Fix computation of the new - ARRAY_REF argument. - -2004-08-03 Richard Earnshaw - - * arm-cores.def: Sort by architecture. Add arm946es, arm966es, - arm968es, arm10e, arm1020e, arm1022e. - * invoke.texi: Update list of ARM cores. - * arm-tune.md: Regenerate. - -2004-08-03 Richard Earnshaw - - * arm/gentune.sh: New file. - * arm/t-arm: New file. - * arm/arm-tune.md: New file (autogenerated). - * config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants. - * arm.md (attribute tune): Delete. Include arm-tune.md. - -2004-08-03 Paolo Bonzini - - * gcc.c (add_prefix, add_sysrooted_prefix): Remove - penultimate parameter. All callers adjusted. - (struct prefix_list): Remove used_flag_ptr. - (find_a_file): Do not set *pl->used_flag_ptr. - (warn_B, warn_std_ptr): Remove. - -2004-08-03 Yossi Markovich - Mostafa Hagog - - * config/rs6000/altivec.md (altivec_vnmsubfp): Fix wrong pattern. - -2004-08-02 Geoffrey Keating - - * dwarf2out.c (output_call_frame_info): Don't change data format - due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local - label. Use 'true' not '1'. - * doc/install.texi (powerpc-*-darwin*): Mention cctools version - required. - -2004-08-02 Gabriel Dos Reis - - * gdbinit.in: Reflect previous changes to rtunion_def. - -2004-08-02 Roger Sayle - - * fold-const.c (fold) : The transformation "X % -Y" - -> "X % Y" is only valid for TRUNC_MOD_EXPR. - -2004-08-02 Gabriel Dos Reis - - * vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and - vec_p_reserve. - * langhooks.h (lang_hooks::builtin_function): Rename parameter - from "class" to "bt_class". - -2004-08-02 Paul Brook - - PR rtl-optimization/15068 - * flow.c (init_propagate_block_info): Check condition is reversible. - -2004-08-02 Gabriel Dos Reis - - * gengtype.h (options::info): Change type to const char *. - (enum gc_used_enum): Move out of struct type scope. - * gengtype.c (create_option): Convert initializer for option::info to - appropiate type. - (adjust_field_type, walk_type, write_func_for_structure, - write_root, write_roots): Remove pointless cast. - -2004-08-02 J"orn Rennecke - - * genopinit.c (gen_insn): Check for MODE_COMPLEX_FLOAT patterns for $F. - -2004-08-02 Gabriel Dos Reis - - * rtl.h (union rtunion_def): Have all members start with the - prefix "rt_". - (XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, XBBDEF, XTMPL, - X0INT, X0UINT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, - X0MEMATTR, X0BBDEF, X0REGATTR, XCINT, XCUINT, XCSTR, XCEXP, - XCVEC, XCMODE, XCBITMAP, XCTREE, XCBBDEF, XC2EXP): Adjust members - access. - * gengtype.c (adjust_field_rtx_def): Likewise. - * rtlanal.c (loc_mentioned_in_p): Likewise. - -2004-08-02 Richard Sandiford - - * config.gcc (mips*-*-elf*, mips*-*-rtems*): Add elfos.h to tm_file. - Replace uses of mips/elf64.h with mips/elf.h - * config/mips/elf.h (MAX_OFILE_ALIGNMENT, TARGET_ASM_NAMED_SECTION) - (TYPE_OPERAND_FMT, TYPE_ASM_OP, SIZE_ASM_OP, BSS_SECTION_ASM_OP) - (ASM_OUTPUT_ALIGNED_BSS, ASM_WEAKEN_LABEL, ASM_OUTPUT_WEAK_ALIAS) - (MAKE_DECL_ONE_ONLY, INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP) - (HANDLE_SYSV_PRAGMA): Delete. - (ASM_OUTPUT_DEF): Fix formatting. - * config/mips/elf64.h: Delete. - -2004-08-01 Zack Weinberg - - * config/ia64/ia64.c (got_symbolic_operand): Do require a - symbol+offset operand to have its offset be zero mod 0x3fff - when GOT entries are in use. Clarify logic in SYMBOL_REF - case. Clarify comments. - (ia64_expand_load_address): Split a symbol+offset load when - the offset is nonzero mod 0x3fff, not 0x1fff. - -2004-08-01 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort - if trying to *store* to a non-offsettable address. - * config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to - a nonoffsettable address. - (movdi_internal32): Don't move GPRs to a nonoffsettable address. - Clean up. - (movti_string): Don't move GPRs to a nonoffsettable address. - (movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up. - -2004-08-02 Ben Elliston - - PR target/16155 - * config/rs6000/altivec.h: Replace typeof with __typeof__. - -2004-08-01 Richard Henderson - - * expr.c (expand_expr_real_1) : Fix crash with - variable sized types. - -2004-08-01 Richard Sandiford - - * doc/invoke.texi: In the MIPS options section, remove the passage - saying that -mexplicit-relocs is usually disabled for -mabicalls - -fno-unit-at-a-time. - * config/mips/mips.c (override_options): Remove the code that enforced - this rule. - -2004-08-01 Richard Sandiford - - * config/mips/mips.md (cprestore): Provide two alternatives, one for - an in-range offset and one for an out-of-range offset. Wrap the latter - in .set macro/.set nomacro if it's inside a .set nomacro block. - -2004-08-01 Richard Sandiford - - * config/mips/mips-protos.h (mips_gp_save_slot): Remove. - (mips_restore_gp): Declare. - * config/mips/mips.c (mips_add_offset): Add a scratch register - argument. Reimplement in rtl only, reusing MIPS16 logic from - mips_output_mi_thunk. - (mips_legitimize_address, mips_legitimize_const_move): Adjust calls - to mips_add_offset. - (mips_gp_save_slot): Delete. - (mips_restore_gp): New function. - (mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset. - * config/mips/mips.md (exception_receiver): Turn into a - define_insn_and_split. Use mips_restore_gp to do the split. - (call_internal, call_value_internal, call_value_multiple_internal): Use - mips_restore_gp to restore $gp. - -2004-07-31 Andrew Pinski - - PR other/16842 - * mkheaders.in (libsubdir): s/gcc-lib/gcc/. - -2004-07-31 Joseph S. Myers - - * c-decl.c (diagnose_mismatched_decls): Give error for external - redeclaration of identifier declared with no linkage, not just - warning with -Wtraditional. Do not check DECL_CONTEXT to give - error for redeclaration with no linkage. - -2004-07-30 Geoffrey Keating - Fariborz Jahanian - - * config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit - non-offsettable addresses even for DImode. - (rs6000_split_multireg_move): Cope with non-offsettable addresses - being moved into multiple GPRs. - - * config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default - to 64. - (rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE. - * config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define - to 128. - * config/rs6000/darwin-ldouble.c (isless): New macro. - (inf): New macro. - (nonfinite): New macro. - (FPKINF): Delete. - (_xlqadd): Completely rewrite. - (_xlqmul): Correct overflow handling. - (_xlqdiv): Correct overflow handling. - * config/rs6000/darwin-ldouble-format: New file. - -2004-07-30 Roger Sayle - Richard Henderson - - * config/i386/i386.md: New peephole2's to convert imul by 3, 5 or - 9 into the equivalent lea instruction. - -2004-07-30 Richard Henderson - - * gimplify.c (gimplify_expr) : Don't replace - with DECL_INITIAL if fb_lvalue. - * tree-gimple.c (is_gimple_id): Add CONST_DECL. - * tree-pretty-print.c (dump_decl_name): Dump unnamed CONST_DECL - with . - * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Fold CONST_DECL. - -2004-07-30 Diego Novillo - - * tree-ssa-alias.c (compute_points_to_and_addr_escape): If a - pointer escapes through a function call, assume that the - callee will dereference it. - (add_pointed_to_var): Assume that VALUE is always an - ADDR_EXPR. - (collect_points_to_info_r): Only call add_pointed_to_var if - the value is an ADDR_EXPR. - -2004-07-30 Diego Novillo - - * tree-ssa-alias.c (create_alias_map_for): Do not get the - alias set of the inner type of ARRAY_TYPEs. - -2004-07-29 Diego Novillo - - * tree-ssa-ccp.c (visit_assignment): Move code to prevent - setting a non-register to UNDEFINED right before the call to - set_lattice_value. - -2004-07-29 Kaz Kojima - - * config/sh/lib1funcs.asm: Make aliases movstr* for movmem*. - -2004-07-29 Diego Novillo - - * tree-ssa.c (verify_flow_sensitive_alias_info): When - comparing points-to sets of different pointers, make sure the - second pointer is actually referenced in the code. - -2004-07-29 Zack Weinberg - - * config/ia64/ia64.c (setjmp_operand): Delete, unused. - (got_symbolic_operand): Remove unreachable code. - * config/ia64/ia64.h (PREDICATE_CODES): Remove entry for - setjmp_operand; add entry for tls_symbolic_operand. - * config/ia64/ia64-protos.h: Remove all prototypes of - predicate functions. - -2004-07-29 Mark Mitchell - - * c-common.h (lang_post_pch_load): New variable. - * c-pch.c (lang_post_pch_load): Define it. - (c_common_read_pch): Use it. - * cgraphunit.c (record_call_1): Give the front end a chance to - record additional needed entities when a variable is marked as - needed. - * tlink.c (recompile_files): Robustify. - (scan_linker_output): If a symbol is assigned to a file, - but after recompilation is not present there, issue an error - message. - -2004-07-29 Zdenek Dvorak - - * tree-ssa-loop-im.c (force_move_till_expr, force_move_till): - Take orig_loop argument and pass it to set_level. - (schedule_sm): Pass the correct orig_loop to force_move_till. - -2004-07-29 Zdenek Dvorak - - * cfgloop.c (update_latch_info): Update dominator of the new block. - (canonicalize_loop_headers, flow_loops_find): Do not free dominance - info. - * dominance.c (verify_dominators): Check that the dominance tree is - connected. - (recount_dominator): Ignore unreachable blocks. - (iterate_fix_dominators): Cleanup old dominance information before - recomputing it. - -2004-07-29 Diego Novillo - - * tree-ssa-operands.c (get_expr_operands): Revert changes - to ADDR_EXPR processing introduced by: - 2004-06-21 Richard Kenner - * tree-ssa-operands.c (get_expr_operands): Minor rearrangements. - -2004-07-29 Joseph S. Myers - - * doc/implement-c.texi: Add C90 subclause references. Point to - preprocessor documentation instead of duplicating it. Add points - only present in C90. Fill in documentation for all points. - -2004-07-29 John David Anglin - - * pa.c (output_movb): Correct typo. - -2004-07-29 Pat Haugen - - * ra.h (single_reg_in_regclass): Declare. - * ra.c (single_reg_in_regclass): Define. - (first_hard_reg): New. - (init_ra): Initialize single_reg_in_regclass. - * ra-colorize.c (ok_class): New. - (coalesce, aggressive_coalesce, extended_coalesce_2): Use it. - -2004-07-29 Nathan Sidwell - - * gcov-io.h: Allow zero tag as EOF indicator. - (gcov_is_eof): Remove. - (gcov_truncate): Remove. - * gcov-io.c (gcov_seek): Always SEEK_SET. - * libgcov.c (gcov_exit): Don't use gcov_truncate. Write explicit - EOF tag. - * coverage.c (read_counts_file): Don't use gcov_is_eof. - * gcov-dump.c (dump_file): Likewise. - * gcov.c (read_graph_file, read_count_file): Likewise. - - * c-decl.c (complete_array_type): Don't gratuitously copy - maxindex. Check it always has a type. - -2004-07-29 Steven Bosscher - - * rtl.c (currently_expanding_to_rtl): New. - * rtl.h (currently_expanding_to_rtl): Export it. - * cfgexpand.c (tree_cfg_expand): Set/clear it at entry/exit. - - * config/alpha/alpha.c (alpha_expand_mov): Remove old RTL - inliner hack. - * config/sh/sh.c: Replace rtx_equal_function_value_matters - with currently_expanding_to_rtl. - * config/sh/sh.md: Likewise. - * config/ia64/ia64.c (got_symbolic_operand): Likewise. - -2004-07-29 Alexandre Oliva - - Introduce sh2a support. - 2004-07-29 Alexandre Oliva - * config.gcc: Build multilibs for sh2a and sh2a-single by - default. - * config/sh/sh.h (SUPPORT_SH2A, SUPPORT_SH2A_SINGLE): Define by - default. Split their tests out of the corresponding SH4 - multilibs. - * config/sh/t-sh (MULTILIB_MATCHES): Don't ever use SH4 or SH4a - multilibs for SH2a. - 2004-07-28 Alexandre Oliva - * config.gcc: Handle sh2a multilibs and cpu selection. - * config/sh/sh.h: Likewise. Handle sh2a command line flags. - * config/sh/t-mlib-sh2a: New. - * config/sh/t-mlib-sh2a-nofpu: New. - * config/sh/t-mlib-sh2a-single: New. - * config/sh/t-mlib-sh2a-single-only: New. - 2004-07-09 Nick Clifton - Issue 43400 - * config/sh/sh.h (DRIVER_SELF_SPECS): Issue an error message if - -ml and -m2a are used together. - 2004-03-23 DJ Delorie - * config/sh/sh.c (sh_builtin_saveregs): Use the double code only - when we have a double-sized FPU. - 2004-02-24 Corinna Vinschen - * config/sh/lib1funcs.asm (set_fpscr): Don't build if __SH2A_NOFPU__ - is set. - * config/sh/elf.h (SUBTARGET_ASM_ISA_SPEC): Add cases for -msh2a-nofpu, - -msh2a-single and -msh2a-single-only - 2004-02-24 Corinna Vinschen - * config/sh/crt1.asm: Don't generate FPU instructions if __SH2A_NOFPU__ - is set. - 2004-02-20 DJ Delorie - * config/sh/sh.md (movsf_i, movsf_ie, movsf, ble, bge): Disable for sh2a-nofpu. - 2004-02-20 Fred Fish , - Corinna Vinschen - * config/sh/t-sh (MULTILIB_OPTIONS): Add 2a-nofpu. - (MULTILIB_EXCEPTIONS): Don't build littel-endian on sh2a. - 2004-02-18 DJ Delorie - * config/sh/sh.c (broken_move): Add support for movi20. - * config/sh/sh.h: Likewise. - (SHIFT_COUNT_TRUNCATED): Set for sh2a. - * config/sh/sh.md (udivsi3_sh2a): New. - (udivsi3): Call it. - (divsi3_sh2a): New. - (divsi3): Call it. - (mul_r): New. - (ashlsi3_sh2a): New. - (ashrsi3_sh2a): New. - (lshrsi3_sh2a): New. - (movsi_i): Disable for sh2a. - (movsi_ie): Add movi20. - (movsf_i, movsf_ie, movsf, ble, untyped_call): Explicitly enable - sh2a, for -m2a-nofpu mode. - 2004-02-13 DJ Delorie - * config/sh/lib1funcs.asm: Handle double vs single better. - * config/sh/sh.h: Likewise. - 2004-02-09 DJ Delorie - * config/sh/crt1.asm: Add support for sh2a. - * config/sh/elf.h: Likewise. - * config/sh/lib1funcs.asm: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.md: Likewise. - * config/sh/sh.h: Likewise. - * config/sh/t-sh: Likewise. - -2004-07-28 Alexandre Oliva - - * config/frv/frv.md (movqi_internal, movhi_internal, - movsi_internal): Add backup alternatives for memory inputs. - -2004-07-28 Matt Austern - - * config/darwin.c (darwin_one_byte_bool): New global variable. - * config/darwin.h (darwin_one_byte_bool): Declare. - (SUBTARGET_OPTIONS): Define macro. (for -mone-byte-bool flag.) - * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Conditionalize on - value of darwin_one_byte_bool. - * doc/invoke.texi: Document -mone-byte-bool flag. - -2004-07-28 Eric Christopher - - * c-common.c (c_common_unsafe_for_reeval): Delete. - * c-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete use. - * c-pretty-print.c (pp_c_expression): Delete UNSAVE_EXPR case. - * calls.c (fix_unsafe_tree): Delete. - (expand_call): Delete code which used above. - * dojump.c (do_jump): Delete UNSAVE_EXPR case. - * expr.c (expand_expr_real_1): Ditto. - * fold-const.c (non_lvalue): Ditto. - * langhooks-def.h (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. - (lhd_unsafe_for_reeval): Ditto. - * langhooks.c (lhd_unsafe_for_reeval): Ditto. - * langhooks.h (unsafe_for_reeval): Ditto. - (unsave_expr_now): Adjust comment. - * tree-inline.c (copy_body_r): Delete UNSAVE_EXPR bits. - (estimate_num_insns_1): Ditto. - * tree-pretty-print.c (dump_generic_node): Ditto. - * tree.c (expr_align): Ditto. - (unsave_expr): Delete. - (unsafe_for_reeval): Ditto. - * tree.h (unsafe_for_reeval, unsave_expr): Ditto. - * tree.def (UNSAVE_EXPR): Delete. - * objc/objc-lang.c (LANG_HOOKS_UNSAFE_FOR_REEVAL): Delete. - -2004-07-28 Zack Weinberg - - * tree.h (enum tls_model): Move ... - * coretypes.h: ... here. - -2004-07-28 Richard Sandiford - - * config/frv/frv.h (EPILOGUE_USES): New. Use LR. - -2004-07-28 Richard Sandiford - - * cse.c (validate_canon_reg): New function, split out from... - (canon_reg): ...here. Use validate_canon_reg for both 'e' and 'E'. - -2004-07-28 Diego Novillo - - * tree-ssa-alias.c (maybe_create_global_var): Don't just - return if .GLOBAL_VAR has been created. - -2004-07-28 Diego Novillo - - * tree-ssa.c (verify_flow_insensitive_alias_info): Process - every variable that may have aliases, not just tags. - -2004-07-28 Aldy Hernandez - - * config/rs6000/rs6000.md ("move_from_CR_gt_bit"): Rename to - move_from_CR_eq_bit. - Rename UNSPEC_MV_CR_GT to UNSPEC_MV_CR_EQ. - - - * config/rs6000/spe.md ("e500_flip_gt_bit"): Rename to - e500_flip_eq_bit. - - * config/rs6000/rs6000-protos.h: Rename output_e500_flip_gt_bit to - output_e500_flip_eq_bit. - - * config/rs6000/rs6000.c (output_e500_flip_gt_bit): Rename to - output_e500_flip_eq_bit. - (rs6000_emit_sCOND): Rename call to output_e500_flip_gt_bit to - output_e500_flip_eq_bit. - Rename gen_move_from_CR_gt_bit to gen_move_from_CR_eq_bit. - (print_operand): case D. Get to EQ bit. - -2004-07-28 Richard Sandiford - - * gcov.c (function_summary): Add missing \n. - -2004-07-28 Alexandre Oliva - - Introduce sh4a support. - * config.gcc: Handle sh4a multilibs and cpu selection. - * config/sh/sh.h: Likewise. Handle sh4a command line flags. - * config/sh/t-mlib-sh4a: New. - * config/sh/t-mlib-sh4al: New. - * config/sh/t-mlib-sh4a-nofpu: New. - * config/sh/t-mlib-sh4a-single: New. - * config/sh/t-mlib-sh4a-single-only: New. - 2004-02-20 DJ Delorie - * config/sh/sh.md ("movua"): Change constraint from "m" to "Sua". - * config/sh/sh.h (EXTRA_CONSTRAINT_S): Add "Sua" support. - 2003-08-22 Eric Christopher - * config/sh/sh4a.md: Update for chip errata. - 2003-08-07 Eric Christopher - * config/sh/sh4a.md: New file. sh4a processor description. - 2003-07-08 Alexandre Oliva - * config/sh/sh.h (TARGET_SWITCHES): Added 4al. Adjust description - of -m4a-nofpu. - (SH_ASM_SPEC): Pass -dsp for -m4al, not -m4a-nofpu. - * config/sh/t-sh (MULTILIB_MATCHES): Map -m4al to -m4a-nofpu. - * doc/invoke.texi (SH Options): Document -m4al. - 2003-07-03 Alexandre Oliva - * config/sh/sh.c (expand_block_move): Remove commented-out code - checked in by mistake. - (sh_cannot_change_mode_class): Enable SUBREGs to be used to select - single elements from SFmode vectors. - * config/sh/sh.md (fsca): Use VEC_CONCAT to initialize the output - register. - (sinsf2, cossf2, sindf2, cosdf2): Don't emit CLOBBER. - 2003-07-01 Alexandre Oliva - * config/sh/sh.h (sh_fsca_sf2int, sh_fsca_df2int, - sh_fsca_int2sf): Remove variable declarations. - * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, - sh_fsca_int2sf): New functions. - (sh_fsca_sf2int_rtx, sh_fsca_df2int_rtx, - sh_fsca_int2sf_rtx): New static variables. - * config/sh/sh-protos.h (sh_fsca_sf2int, sh_fsca_df2int, - sh_fsca_int2sf): Declare. - * config/sh/sh.md: Adjust. - * doc/invoke.texi (SH Options): Document new options. - * config/sh/lib1funcs.asm (ic_invalidate): Remove SH4a forward - compatibility from SH4 code. - 2003-06-27 Alexandre Oliva - * config/sh/sh.c (expand_block_move): Don't emit POST_INC too - early. - (memory_movsrc_operand): Renamed to... - (unaligned_load_operand): ... this. Simplified. - * config/sh/sh.h (PREDICATE_CODES): Adjust. - * config/sh/sh.md (movua, extv, extzv): Likewise. Change movua's - input operand to SImode, and adjust the others. Introduce - post-increment by peephole. - * config/sh/sh.c (expand_block_move): Give the target address the - same mode as the temp reg. - * config/sh/sh.c (expand_block_move): Use a temp reg for unaligned - copying. - 2003-06-26 Alexandre Oliva - Introduce support for SH4a. - * config/sh/lib1funcs.asm (ic_invalidate): Use icbi if - __SH4A__. Emit 4 4kb blocks and touch all of them otherwise. - * config/sh/sh.c (sh_fsca_sf2int, sh_fsca_df2int, - sh_fsca_int2sf): New. - (sh_init_builtins): Initialize them. - (print_operand): Support `d'. - (expand_block_move): Use movua if src is misaligned. - (memory_movsrc_operand): New. - * config/sh/sh.h (TARGET_CPU_CPP_BUILTINS): Define __SH4A__ - and one of the SH4 macros. - (SH4A_BIT, TARGET_SH4A_ARCH, TARGET_SH4A_FP, - SELECT_SH4A_NOFPU, SELECT_SH4A_SINGLE_ONLY, SELECT_SH4A, - SELECT_SH4A_SINGLE): New. - (TARGET_NONE): Add SH4A_BIT. - (TARGET_SWITCHES): Add 4a-single-only, 4a-single, 4a-nofpu and 4a. - (SH_ASM_SPEC): Pass -dsp if -m4a-nofpu. - (sh_fsca_sf2int, sh_fsca_df2int, sh_fsca_int2sf): Declare. - (OVERRIDE_OPTIONS): Set cpu to CPU_SH4A when appropriate. - (enum processor_type): Added PROCESSOR_SH4A. - (PREDICATE_CODES): Add memory_movsrc_operand. - * config/sh/sh.md: Removed unused variables. - (attr cpu): Add sh4a. - (attr type): Add movua, fsrra and fsca. - (prefetch): New, for SH4. - (ic_invalidate_line, ic_invalidate_line_sh4a): Use icbi. - (toggle_sz): Set type to fp. - (toggle_pr, rsqrtsf2, fsca, sinsf2, cossf2, sindf2, cosdf2): New. - (movua, extv, extzv): New. - * config/sh/t-sh: Add multilibs for 4a, 4a-nofpu, 4a-single - and 4a-single-only. - -2004-07-28 Diego Novillo - - * tree-optimize.c (init_tree_optimization_passes): Schedule - pass_may_alias right after the program is renamed into SSA. - * tree-pass.h (PROP_alias): Define. - * tree-outof-ssa.c (pass_del_ssa): Require PROP_alias. - * tree-sra.c (pass_sra): Likewise. - * tree-ssa-ccp.c (pass_ccp): Likewise. - * tree-ssa-copyrename.c (pass_rename_ssa_ccp): Likewise. - * tree-ssa-dce.c (pass_dce): Likewise. - * tree-ssa-dom.c (pass_dominator): Likewise. - * tree-ssa-dse.c (pass_dse): Likewise. - * tree-ssa-forwprop.c (pass_forwprop): Likewise. - * tree-ssa-loop-ch.c (pass_ch): Likewise. - * tree-ssa-phiopt.c (pass_phiopt): Likewise. - * tree-ssa-pre.c (pass_pre): Likewise. - * tree-tailcall.c (pass_tail_recursion): Likewise. - * tree-ssa.c (pass_redundant_phi): Likewise. - * tree-ssa-alias.c (aliases_computed_p): Remove. - Update all users. - (init_alias_info): Do not mark all type tags for renaming - unconditionally. - Clear may_aliases from every symbol. - (setup_pointers_and_addressables): If a pointer has not been - dereferenced and it had a type tag, clear it and mark the old - tag for renaming. - -2004-07-28 Diego Novillo - - PR tree-optimization/16705 - * tree-ssa-alias.c (create_global_var): Set DECL_EXTERNAL on - .GLOBAL_VAR. - -2004-07-27 Richard Kenner - - * expr.c (expand_expr_real_1, case PARM_DECL): Remove obsolete error - check. - - * gimplify.c (maybe_with_size_expr): If already have WITH_SIZE_EXPR, - don't make another one. - - PR optimization/15077 - * function.h (struct function): Add field saved_static_chain_decl. - Fix comment for static_chain_decl. - * tree-inline.c (save_body): Add new arg and handle static_chain_decl. - * tree-inline.h (save_body): Add new arg. - * tree-optimize.c (tree_rest_of_compilation): Handle saving - static_chain_decl. - -2004-07-27 Richard Henderson - - * gimplify.c (is_gimple_addr_expr_arg_or_indirect): Remove. - (gimplify_modify_expr, gimplify_addr_expr, gimplify_expr): Use - is_gimple_addressable. - * tree-gimple.c (is_gimple_addressable): Rename from - is_gimple_addr_expr_arg; accept INDIRECT_REF. - (is_gimple_lvalue): Don't test INDIRECT_REF directly. - * tree-gimple.h, tree-sra.c, tree-ssa-loop-im.c: Update for - rename to is_gimple_addressable. - -2004-07-28 Alan Modra - - * config/rs6000/rs6000.c (function_arg_padding): Pad SFmode upwards. - -2004-07-27 Richard Henderson - - * function.c (assign_stack_local_1): Widen alignment to HOST_WIDE_INT - before rounding. - -2004-07-27 Zack Weinberg - - * libgcc2.c: Change all conditionals testing - LIBGCC2_LONG_DOUBLE_TYPE_SIZE == 96 to == 80. - * libgcc2.h: Likewise. - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Set - TYPE_PRECISION of float80_type to 80. - * config/ia64/ia64.c (ia64_init_builtins): Set TYPE_PRECISION - of fpreg_type and float80_type to 80. - * config/i386/i386.h, config/ia64/ia64.h, config/m68k/m68k.h - * config/m68k/netbsd-elf.h: - Change LONG_DOUBLE_TYPE_SIZE and possibly LIBGCC2_LONG_DOUBLE_TYPE_SIZE - to evaluate to 80 whenever they would formerly have evaluated to 96. - * config/i386/sco5.h: Remove unnecessary redefinition of - LONG_DOUBLE_TYPE_SIZE. - * doc/rtl.texi: Clarify uses of XFmode and TFmode. - * config/i386/i386-modes.def: Use FRACTIONAL_FLOAT_MODE for - XFmode, with a bitsize of 80. Update commentary. - * config/ia64/ia64-modes.def: Likewise. - * config/m68k/m68k-modes.def: Likewise. - -2004-07-27 Steven Bosscher - - * cfgexpand.c (tree_expand_cfg): Fix comment. - - * calls.c (expand_call): Ignore rtx_equal_function_value_matters. - * function.c (purge_single_hard_subreg_set, purge_hard_subreg_sets): - Remove. - (prepare_function_start): Don't set rtx_equal_function_value_matters. - * integrate.c (copy_rtx_and_substitute): Don't test for it. - * passes.c (rest_of_compilation): Don't call purge_hard_subreg_sets. - Don't set rtx_equal_function_value_matters. Don't register RTL hooks - here again. Update leading comment. - * rtl.c (rtx_equal_function_value_matters): Remove. - (rtx_equal_p): Don't test for it. - * simplify-rtx.c (simplify_binary_operation, simplify_subreg): - Likewise. - - * rtl.h (enum insn_note): Remove NOTE_INSN_LOOP_END_TOP_COND. - * rtl.c (note_insn_name): Likewise. - * emit-rtl.c (remove_unnecessary_notes): Don't handle it. - * final.c (final_scan_insn): Likewise. - - * except.c (finish_eh_generation): Don't call cfg_cleanup from here. - * passes.c (rest_of_handle_eh): Do it here. - - * stmt.c (struct nesting): Remove struct nesting block member. - (struct stmt_status): Remove x_block_start_count field. - (current_block_start_count): Remove. - -2004-07-27 Brian Booth - - * tree-optimize.c (register_one_dump_file): Update condition that uses - static_pass_number. - (dup_pass_1): Replace with... - (next_pass_1): This. - (NEXT_PASS): Call next_pass_1. - (DUP_PASS): Remove. - (init_tree_optimization_passes): Remove uses of DUP_PASS. - (execute_one_pass): Update condition that uses - static_pass_number. - * tree-pass.h (tree_opt_pass): Declare static_pass_number as a signed - integer. - -2004-07-27 Nick Clifton - - * config/m32r/m32r.c: Include integrate.h in order to get the - prototype for get_hard_reg_initial_val(). - - * config/m32r/m32r.md (m32rpipeline): Remove unused value "m32r" - and tidy up indentation. - (final_presence_set): Use absence_set instead, so that if there is - nothing in the "o" pipe the "s" pipe can be scheduled. - -2004-07-27 Diego Novillo - - * tree-ssa-alias.c (create_name_tags): Ignore pointers that - don't have PT_VARS nor PT_MALLOC set. - Clear name tag from pointers that have not been dereferenced. - (set_pt_anything, set_pt_malloc): Forward declare. - * tree-ssa-copy.c (may_propagate_copy): Compare alias sets, - not type compatibility when determining if a pointer can be - copy propagated. - -2004-07-27 Richard Sandiford - - * expr.h (canonicalize_condition, get_condition): Add an int argument. - * gcse.c (fis_get_condition): Reimplement using get_condition, leaving - it to check whether the condition is still valid at the jump insn. - * ifcvt.c (noce_get_condition): Likewise. - (noce_get_alt_condition): Update call to canonicalize_condition. - * loop-iv.c (simplify_using_initial_values): Update call to - get_condition. Remove FIXME. - (check_simple_exit): Update call to get_condition. - * loop-unswitch.c (may_unswitch_on): Likewise. - * loop.c (check_dbra_loop): Likewise. - (canonicalize_condition, get_condition): Add an argument to say whether - the condition must still be valid at INSN. - (get_condition_for_loop): Update call to get_condition. Require that - the condition be valid at INSN. - * predict.c (estimate_probability): Update call to get_condition. - Remove unused earliest parameter. - (expected_value_to_br_prob): Update call to canonicalize_condition. - -2004-07-26 Eric Christopher - - * tree-dfa.c (add_referenced_var): Register initializers of global - variables. - -2004-07-26 Paolo Bonzini - - * config/i386/i386.c (function_arg): Always treat 8- - and 16-byte wide vectors the same, even if MMX/SSE - are disabled. - (contains_128bit_aligned_vector_p): Add comment. - -2004-07-26 J"orn Rennecke - - * ra.h (enum node_type): Rename to: - (enum ra_node_type). - * ra-colorize.c: Likewise. - -2004-07-26 Richard Sandiford - - * cfgcleanup.c (try_simplify_condjump): Call update_forwarder_flag - after simplifying the jump. - -2004-06-26 Richard Henderson - - * calls.c (combine_pending_stack_adjustment_and_call): Make - preferred_unit_stack_boundary argument unsigned. Make - unadjusted_alignment unsigned. - (expand_call): Make preferred_stack_boundary and - preferred_unit_stack_boundary variables unsigned. - * function.c (assign_stack_local_1): Make alignment unsigned. - * function.h (struct function): Make stack_alignment_needed, - preferred_stack_boundary unsigned. - * config/i386/i386.c (ix86_preferred_stack_boundary): Make unsigned. - (ix86_compute_frame_layout): Make stack_alignment_needed, - preferred_alignment variables unsigned. - * config/i386/i386.h (ix86_preferred_stack_boundary): Make unsigned. - -2004-07-26 Tom Tromey - - * tree.h: Fix typo in comment. - -2004-07-26 Daniel Jacobowitz - - PR bootstrap/12804 - * ggc-zone.c (struct alloc_chunk): Remove attribute packed. - (MAX_FREE_BIN_SIZE): Increase on 64-bit targets. - (ggc_free): Remove incorrect freeing. - (sweep_pages): Advance PP for large pages. Fix indentation. - -2004-07-26 Richard Sandiford - - PR rtl-optimization/16643 - * cfglayout.h (cfg_layout_initialize): Add a flags parameter. - * cfglayout.c (cfg_layout_initialize): Pass it to cleanup_cfg. - * basic-block.h (reorder_basic_blocks): Add a flags parameter. - * cfglayout.c (reorder_basic_blocks): Pass it to cfg_layout_initialize. - (partition_hot_cold_basic_blocks): Pass 0 to cfg_layout_initialize. - * function.c (thread_prologue_and_epilogue_insns): Likewise. - * rtl.h (tracer): Add a flags parameter. - * tracer.c (tracer): Pass it to cfg_layout_initialise. - * passes.c (rest_of_handle_stack_regs): Pass 0 to reorder_basic_blocks. - (rest_of_handle_reorder_blocks): Update calls to tracer and - reorder_basic_blocks, passing CLEANUP_UPDATE_LIFE if appropriate. - (rest_of_handle_tracer): Pass 0 to tracer. - (rest_of_handle_loop2): Pass 0 to cfg_layout_initialize. - -2004-07-25 David Edelsohn - - PR target/16239 - * config/rs6000/rs6000.md (movdi_internal64): Further disparage - f->f. - -2004-07-24 Nathan Sidwell - - * tree.h (BINFO_BASE_ACCESSES): Accesses are a VEC(tree). - (BINFO_BASE_ACCESS): Adjust. - (BINFO_BASE_ACCESS_APPEND): New. - (struct tree_binfo): Make base_accesses a VEC(tree) pointer. - * dbxout.c (dbxout_type): Adjust binfo access accessing. - * dwarf2out.c (gen_member_die): Likewise. - * tree-dump.c (deque_and_dump): Likewise. - -2004-07-26 Falk Hueffner - - * config/alpha/alpha.c (alpha_rtx_cost_data): Tweak int_div - costs. - -2004-07-25 Roger Sayle - - * config/i386/i386.c (output_fp_compare): Use ffreep to pop top - value off of the stack if TARGET_USE_FFREEP. - -2004-07-26 Bernardo Innocenti - - * gengtype.c (oprintf): Replace xrealloc () with XRESIZEVEC (). - * gengtype-yacc.y: Likewise. Replace free() with XDELETE (). - * c-typeck.c (PUSH_SPELLING): Remove redundant NULL-pointer - check on invocation of XRESIZEVEC (). - -2004-07-26 Bernardo Innocenti - - * c-common.c (disable_builtin_function): Rename variable n to - new_disabled_builtin. - * c-decl.c (duplicate_decls): Rename parameter decl to new_decl. - Rename local variable old to old_decl. - * gensupport.c (shift_output_template): Rename parameter old to src. - * simplify-rtx.c (simplify_replace_rtx): Rename parameter oldx to - old_rtx and newx to new_rtx. - -2004-07-26 Bernardo Innocenti - - * Makefile.in (C_PRAGMA_H): New variable to track dependencies - of c-pragma.h. - * c-pragma.h (c_lex, c_lex_with_flags): Change returntype to - enum cpp_ttype. - * c-lex.c: Likewise. - -2004-07-25 Roger Sayle - - * fold-const.c (constant_boolean_node): Make extern. - (make_range): Wrap long lines. - (fold_cond_expr_with_comparison): Remove unnecessary call to - pedantic_non_lvalue. Add missing calls to fold_convert. - (fold_truthop): Add missing calls to fold_convert. - (fold): Likewise. - * tree.h (constant_boolean_node): Add prototype here. - * builtins.c (expand_builtin_strncmp): Add missing calls to - fold_convert. - * tree-ssa-dom.c (record_equivalences_from_incoming_edge): - Call fold_convert and constant_boolean_node to correct types. - * tree-ssa-forwprop.c (substitute_single_use_vars): Add - missing call to fold_convert to correct types. - -2004-07-26 Niall Douglas - Brian Ryner - - PR c++/9283 - PR c++/15000 - * c-common.c (c_common_attribute_table): Allow - handle_visibility_attribute to be called for types. - (handle_visibility_attribute) When given a type, set the visibility - bits on the TYPE_NAME. When given a decl, don't set no_add_attrs - so that we can check later whether the attribute was present. Added - warning if attribute applied to non class type. - * c-decl.c (diagnose_mismatched_decls): Updated rules for merging - decls and checking that they are consistent. - * common.opt: Added -fvisibility. - * c.opt, c-opts.c: Added -fvisibility-inlines-hidden. - * c-pragma.h, c-pragma.c: Added handle_pragma_visibility(). - * flags.h, tree.h: Added assorted support defines for overall patch - * opts.c: Added parsing support for -fvisibility. - * tree.c (build_decl): Set visibility for all decls to be whatever - is in force at that time. - * varasm.c (default_binds_local_p_1): Reworked logic determining - when to make a symbol locally bound. - * doc/invoke.texi: Added documentation for -fvisibility and - -fvisibility-inlines-hidden. - -2004-07-25 Bernardo Innocenti - - * basic-block.h (reorder_block_def): Rename to reorder_block_def_p. - * c-common.c: Add missing casts from void * to other types. - * c-decl.c: Likewise. - * c-format.c: Likewise. - * c-lex.c: Likewise. - * c-pragma.c: Likewise. - * c-typeck.c: Likewise. - * defaults.h: Likewise. - * genconstants.c: Likewise. - * gengtype-lex.l: Likewise. - * genmodes.c: Likewise. - * read-rtl.c: Likewise. - * rtl.c: Likewise. - -2004-07-25 Bernardo Innocenti - - * bitmap.c: Use type-safe memory allocation macros from libiberty. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-lang.c: Likewise. - * c-lex.c: Likewise. - * c-opts.c: Likewise. - * c-parse.in: Likewise. - * c-typeck.c: Likewise. - * genconditions.c: Likewise. - * gengtype-lex.l: Likewise. - * gengtype-yacc.y: Likewise. - * gengtype.c: Likewise. - * genmodes.c: Likewise. - * gensupport.c: Likewise. - * read-rtl.c: Likewise. - * read-rtl.c (read_constants): Use INSERT instead of TRUE in call to - htab_find_slot(). - -2004-07-25 Bernardo Innocenti - - * c-decl.c (groktypename, groktypename_in_param_context): Rename - variable typename to type_name. - * c-lex.c (interpret_float): Likewise. - -2004-07-25 Roger Sayle - - * convert.c (convert_to_real, convert_to_integer, - convert_to_complex): Replace calls to build with calls to buildN. - * coverage.c (tree_coverage_counter_ref): Likewise. - * dojump.c (do_jump): Likewise. - * dwarf2out.c (loc_descriptor_from_tree): Likewise. - * emit-rtl.c (component_ref_for_mem_expr, - set_mem_attributes_minus_bitpos): Likewise. - * explow.c (update_nonlocal_goto_save_area): Likewise. - * expmed.c (expand_shift, make_tree, const_mult_add_overflow_p, - expand_mult_add): Likewise. - * expr.c (emit_block_move_via_libcall, clear_storage_via_libcall, - store_constructor, get_inner_reference, expand_expr_real_1, - try_casesi, try_tablejump): Likewise. - * function.c (expand_function_start): Likewise. - * stmt.c (emit_case_bit_tests, expand_end_case_type, - node_has_low_bound, node_has_high_bound, emit_case_nodes): Likewise. - * stor-layout.c (place_union_field, layout_type): Likewise. - * tree.c (substitute_in_expr, tree_fold_gcd): Likewise. - * varasm.c (copy_constant): Likewise. - -2004-07-25 Bernardo Innocenti - - * c-common.c: Rename all identifiers named `new'. - * c-decl.c: Likewise. - * gensupport.c: Likewise. - * simplify-rtx.c: Likewise. - * c-common.c (disable_builtin_function): Replace a call to xmalloc() - with XNEW(). - * gensupport.c (alter_output_for_insn): Replace two calls to xmalloc() - with XNEWVEC(). - -2004-07-25 Joseph S. Myers - - PR c/15360 - * c-decl.c (start_decl): Do not set DECL_EXTERNAL for initialized - declarations until after calling pushdecl. - (grokdeclarator): Set DECL_EXTERNAL for variables based on use of - "extern" and not on whether the declaration is initialized. - -2004-07-25 Daniel Jacobowitz - - * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) - (sparc-*-solaris2*): Include sol2.o and sol2-protos.h. - * config/sol2-c.c: Include "tm.h", "tm_p.h", "toplev.h", - "cpplib.h", "c-pragma.h", "c-common.h". - (solaris_pragma_align, solaris_pragma_init, solaris_pragma_fini) - (solaris_register_pragmas): New functions. - * config/sol2-protos.h: New file. - * config/sol2.c: New file. - * config/sol2.h (SOLARIS_ATTRIBUTE_TABLE, ASM_DECLARE_FUNCTION_SIZE) - (REGISTER_TARGET_PRAGMAS): New macros. - (solaris_pending_aligns, solaris_pending_inits) - (solaris_pending_finis): New variables. - * config/t-sol2 (sol2-c.o): Update dependencies. - (sol2.o): New rule. - * config/i386/i386.c (TARGET_INSERT_ATTRIBUTES): Define in terms of - SUBTARGET_INSERT_ATTRIBUTES. - (ix86_attribute_table): Include SUBTARGET_ATTRIBUTE_TABLE. - * config/i386/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) - (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. - * config/sparc/elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. - * config/sparc/sp64-elf.h (ASM_DECLARE_FUNCTION_SIZE): Redefine. - * config/sparc/sol2.h (SUBTARGET_INSERT_ATTRIBUTES) - (SUBTARGET_ATTRIBUTE_TABLE, ASM_OUTPUT_CALL): Define. - * config/sparc/sparc.c (sparc_attribute_table): New. - (TARGET_INSERT_ATTRIBUTES): Define in terms of - SUBTARGET_INSERT_ATTRIBUTES. - (TARGET_ATTRIBUTE_TABLE): Define if SUBTARGET_ATTRIBUTE_TABLE - is defined. - * doc/extend.texi (Solaris Pragmas): New section. - -2004-07-25 Bernardo Innocenti - - * c-common.c: Rename all identifiers named `class' to `cl'. - * c-common.h: Likewise. - * c-parse.in: Likewise. - * c-typeck.c: Likewise. - * genmodes.c: Likewise. - * real.c: Likewise. - * real.h: Likewise. - * recog.c: Likewise. - * recog.h: Likewise. - * regrename.c: Likewise. - * tree.h: Likewise. - * c-common.c (builtin_function_2): Change type of 5th parameter from - int to enum built_in_function. Change type of 8th parameter from int - to bool. - * c-decl (builtin_function): Replace call to ggc_alloc_cleared () - with GGC_CNEW(). - * c-typeck.c (convert_arguments): Change type of formal_prec from - int to unsigned int. - * genmodes.c (blank_mode): Make a few negative constants unsigned. - (complete_all_modes, calc_wider_mode, emit_insn_modes_h, - emit_mode_name, emit_mode_class, emit_mode_precision, emit_mode_size, - emit_mode_nunits, emit_mode_wider, emit_mode_mask, emit_mode_inner, - emit_mode_base_align, emit_class_narrowest_mode): Pass an integer - iterator to for_all_modes () instead of an enum because enums can't - be incremented in C++. - - -2004-07-25 Daniel Jacobowitz - - * regmove.c (optimize_reg_copy_1): Don't try to replace call-used - hard registers. - -2004-07-25 Richard Kenner - - * tree-ssa-operands.c (get_stmt_operands, get_expr_operands): - Handle ARRAY_RANGE_REF like ARRAY_REF. - -2004-07-25 Joseph S. Myers - - * c-typeck.c (digest_init): Don't allow arrays of signed or - unsigned variants of wchar_t to be initialized by wide string - constants. Do allow arrays of enumerated types compatible with - wchar_t to be initialized by wide string constants. Refine tests - distinguishing wide and narrow strings and arrays. Give specific - error for arrays of other integer types initialized by string - constants. - (output_init_element, process_init_element): Check for - INTEGRAL_TYPE_P rather than just for INTEGER_TYPE when - initializing with string constants. - -2004-07-25 Richard Henderson - - * c-decl.c (start_function): Set DECL_ARTIFICIAL and DECL_IGNORED_P - on the RESULT_DECL. - * cgraphunit.c (cgraph_build_static_cdtor): Likewise. - * integrate.c (copy_decl_for_inlining): Copy DECL_ARTIFICIAL and - DECL_IGNORED_P to new decl. - -2004-07-24 Zack Weinberg - - * config/ia64/ia64.c (general_xfmode_operand) - (destination_xfmode_operand): Delete. - * config/ia64/ia64.h (PREDICATE_CODES): Remove them. - * config/ia64/ia64.md (*movxf_internal): Use general_operand - and destination_operand. - -2004-07-24 Alexander Kabaev - - * config/ia64/ia64.h (SUBTARGET_EXTRA_SPECS): Default to nothing. - (EXTRA_SPECS): Use SUBTARGET_EXTRA_SPECS. - -2004-07-24 Alexander Kabaev - Zack Weinberg - - * tree.h (staticp): Change return type to bool. - -2004-07-25 Bernardo Innocenti - - * c-common.c (c_staticp): Last episode of the staticp saga. - -2004-07-25 Bernardo Innocenti - - * c-common.h (c_staticp): Change return type from int to bool. - * tree.c (staticp): Likewise. - * langhooks.h (staticp): Likewise. - -2004-07-25 Bernardo Innocenti - - * langhooks-def.h (lhd_staticp): Change return type from int to - bool in prototype to match definition. - -2004-07-25 Bernardo Innocenti - - * system.h (bool, true, false): Don't redefine as preprocessor macros - in C++. - -2004-07-24 Roger Sayle - - * expmed.c (init_expmed): A signed modulus by a power of two is - considered cheap if its less than or equal to four instructions. - -2004-07-25 Bernardo Innocenti - - * ggc.h (GGC_NEW, GGC_CNEW, GGC_NEWVEC, GGC_CNEWVEC, GGC_NEWVAR, - GGC_CNEWVAR): New macros. - -2004-07-25 Bernardo Innocenti - - * c-common.c: Convert ATTRIBUTE_UNUSED to ARG_UNUSED in parameter - lists. - * c-decl.c: Likewise. - * c-format.c: Likewise. - * c-lex.c: Likewise. - * c-opts.c: Likewise. - * c-pragma.c: Likewise. - * c-typeck.c: Likewise. - * gencheck.c: Likewise. - * genconditions.c: Likewise. - * genconfig.c: Likewise. - * genflags.c: Likewise. - * gengtype.c: Likewise. - * gensupport.c: Likewise. - * ggc-none.c: Likewise. - * langhooks.c: Likewise. - * statistics.h: Likewise. - * stub-objc.c: Likewise. - * java/decl.c: Likewise. - -2004-07-24 Roman Zippel - - * config/m68k/m68k.c (output_scc_di): Fix coding style. - (symbolic_operand): Fix prototype. - * config/m68k/m68k.h (PREDICATE_CODES): Add symbolic_operand. - * config/m68k/m68k.md: Add constants for registers a0 and sp and - use them, change from the "{...}" syntax to the simpler {...} - syntax. - (*cfv4_extendqisi2): Fix destination predicate. - * config/m68k/m68k-protos.h: Remove various declarations also - generated via PREDICATE_CODES. - -2004-07-23 Mike Stump - - * c-typeck.c (convert_for_assignment): Tightened up pointer - converstions that differ in signedness. - -2004-07-23 Zack Weinberg - - * genmodes.c (make_vector_modes): Mark with ATTRIBUTE_UNUSED. - -2004-07-23 Richard Kenner - - * tree.def (VIEW_CONVERT_EXPR): Change to class 'r'. - * tree-ssa-operands.c (get_expr_operands, case VIEW_CONVERT_EXPR): New. - - * gimplify.c (gimplify_compound_lval): Check for no handled - operations, rather than checking for explicit list of nodes. - (is_gimple_addr_expr_arg_or_indirect): New function. - (gimplify_addr_expr): Call it and handle INDIRECT_REF; remove - redundant setting of TREE_INVARIANT. - (gimplify_expr, case VIEW_CONVERT_EXPR): Call gimplify_compound_lval. - * tree-gimple.c (is_gimple_addr_expr_arg): Call handled_component_p. - -2004-07-23 Diego Novillo - - PR tree-optimization/16688 - PR tree-optimization/16689 - * tree-ssa-alias.c (setup_pointers_and_addressables): Remove - unnecessary initialization of 'tag'. - (get_tmt_for): Check that the new type tag has the same alias - set as the pointed-to type. - (group_aliases): Only regular variables need to be removed - from the alias set of a name tag. - * tree-ssa-copy.c (may_propagate_copy): Do not allow copy - propagation if the two types are not compatible. - (merge_alias_info): Rename from replace_ssa_names_ann. - Add more checking. - (replace_exp_1): If both arguments are SSA_NAMEs, check that - the propagation can be done. - Only call merge_alias_info on pointers. - (propagate_value): Likewise. - * tree-ssa-copyrename.c: Include langhooks.h. - (copy_rename_partition_coalesce): Call replace_ssa_name_symbol - to do the merging. - Do not coalesce variables with incompatible types. - (rename_ssa_copies): Call replace_ssa_name_symbol. - * tree-ssa.c (verify_ssa_name): Verify that the SSA_NAME has - the same type as the underlying _DECL. - * tree-ssanames.c (replace_ssa_name_symbol): New function. - * tree.h (replace_ssa_name_symbol): Declare. - -2004-07-23 Richard Henderson - - PR c++/16277 - * gimplify.c (gimplify_cond_expr): Gimplify TARGET to a min_lval; - unshare it properly. - (gimplify_modify_expr_rhs): Push assignment from a conditional into - the conditional for all non-register types. - -2004-07-23 Richard Henderson - - * expr.c (expand_expr_real_1): Don't handle non-local variables. - * expr.h (fix_lexical_addr): Remove. - * function.c (NEED_SEPARATE_AP): Remove. - (fix_lexical_addr): Remove. - * tree-alias-common.c (get_alias_var_decl): Check TREE_STATIC, - not null decl_function_context. - (create_alias_vars): Likewise. - * tree-cfg.c (make_ctrl_stmt_edges): Don't check for non-local labels. - (simple_goto_p): Likewise. - * tree-dfa.c (add_referenced_var): Don't check for non-local variables. - * tree-ssa-ccp.c (get_default_value): Likewise. - * tree-tailcall.c (suitable_for_tail_opt_p): Likewise. - * tree.c (needs_to_live_in_memory): Likewise. - * tree-flow-inline.h (may_be_aliased): Move... - * tree-ssa-alias.c (may_be_aliased): ... here. Enhance check for - when TREE_STATIC variables may be addressable. - -2004-07-24 Jakub Jelinek - - * Makefile.in (site.exp): Add HOSTCC and HOSTCFLAGS to site.exp. - -2004-07-23 Zack Weinberg - - * print-rtl.c (print_rtx ): Don't attempt to print - bitmap contents if GENERATOR_FILE is defined. - * Makefile.in (BUILD_RTL): Remove $(BUILD_PREFIX)bitmap.o. - ($(BUILD_PREFIX_1)bitmap.o): Delete rule. - -2004-07-23 Joseph S. Myers - - * c-decl.c (start_function): Form composite type of function types - rather than copying type from previous prototype declaration. - -2004-07-23 Janis Johnson - - * config/rs6000/altivec.h (vec_lvewx, vec_lvehx, vec_lvwbx): Remove - the const qualifier for the second argument in the C++ functions. - - * config/rs6000/altivec.h (vec_stvewx, vec_stvehx, vec_stvebx): Use - specific pointer types. - - * config/rs6000/altivec.h (vec_vadduwm): (vec_vadduwm, vec_vadduhm, - vec_vaddubm, vec_vsubuwm, vec_vsubuhm, vec_vsububm): Fix types used - for vector bool and/or vector pixel, add C++ and C missing support. - (vec_vaddsws, vec_vaddshs, vec_vaddsbs, vec_vmaxsw, vec_vmaxsh, - vec_vmaxsb, vec_vmrghw, vec_vmrghh, vec_vmrghb, vec_vmrglw, vec_vmrglh, - vec_vmrglb, vec_vminsw, vec_vminsh, vec_vminsb, vec_vpkuwum, - vec_vpkuhum, vec_vspltw, vec_vsplth, vec_vspltb, vec_vsubsws, - vec_vsubshs, vec_vsubsbs, vec_vupklsh, vec_vupkhsh, vec_vupklsb): Add - missing C++ and C support for vector bool and/or vector pixel. - (vec_vadduws, vec_vadduhs, vec_vaddubs, vec_vcmpeqfp, vec_vcmpequw, - vec_vcmpequh, vec_vcmpequb, vec_vcmpgtfp, vec_vcmpgtsw, vec_vcmpgtuw, - vec_vcmpgtsh, vec_vcmpgtuh, vec_vcmpgtsb, vec_vcmpgtub, vec_vmaxuw, - vec_vmaxuh, vec_vmaxub, vec_vminuw, vec_vminuh, vec_vminub, - vec_vsubuws, vec_vsubuhs, vec_vsububs, vec_vupkhpx, vec_vupklpx): Fix - C++ and C types used for vector bool and/or vector pixel. - (vec_st, vec_stl): Add C++ support for vector pixel. - (vec_unpackh, vec_unpackl, vec_any_ge): Fix C++ support for vector bool. - (vec_all_ne): Add C++ support for vector pixel. - - * config/rs6000/altivec.h (vec_vcmpgtsh): Fix C++ function name. - (vec_vmulesb): Add missing C++ function. - (vec_perm): Fix type of third argument in C++ function. - (vec_vsum4shs): Fix C++ function name. - (vec_any_ge): Remove C++ functions for unsupported arg combinations. - (vec_vcmpgtsw, vec_vcmpgtuw, vec_minsb, vec_vmsummbm): Fix the - argument passed to the error handler in C macro. - (vec_nmsub): Remove extra parens around argument names in C macro. - (vec_packpx): Add missing parens in C macro. - -2004-07-22 Paolo Bonzini - - * machmode.def: Remove vector modes. - * config/alpha/alpha-modes.def: Add supported vector modes. - * config/arm/arm-modes.def: Likewise. - * config/frv/frv-modes.def: Likewise. - * config/i386/i386-modes.def: Likewise. - * config/rs6000/rs6000-modes.def: Likewise. - * config/sh/sh-modes.def: Likewise. - -2004-07-23 Matthias Klose - - * intl.c (gcc_init_libintl): Use PACKAGE for the text domain. - * configure.ac: Add AC_DEFINE_UNQUOTED for PACKAGE. - * config.h: Regenerate. - * configure: Likewise. - -2004-07-22 Mark Mitchell - - * dwarf2out.c (output_call_frame_info): Set SYMBOL_FLAG_LOCAL on - generated SYMBOL_REFs for labels. - * config/darwin-protos.h (machopic_validate_stub_or_non_lazy_ptr): - Change prototype. - (machopic_stub_name): Remove. - (machopic_indirection_name): New function. - (machopic_mcount_stub_name): Likewise. - (machopic_classify_name): Remove. - (machopic_function_base_sym): New function. - (machpoic_classify_symbol): Likewise. - (machopic_classify_ident): Remove. - (machopic_define_ident): Likewise. - (machopic_define_name): Likewise. - (machopic_name_defined_p): Likewise. - (machopic_ident_defined_p): Likewise. - (darwin_strip_name_encoding): Likewise. - (machopic_define_symbol): New function. - * config/darwin.c (hashtab.h): Include. - (machopic_defined_list): Remove. - (machopic_classify_ident): Likewise. - (machopic_classify_name): Likewise. - (machopic_ident_defined_p): Likewise. - (machopic_define_ident): Likewise. - (machopic_define_name): Likewise. - (machopic_symbol_defined_p): New function. - (machopic_classify_symbol): Likewise. - (machopic_data_defined_p): Use machopic_classify_symbol. - (machopic_define_symbol): New function. - (machopic_function_base_sym): New function. - (machopic_non_lazy_pointers): Remove. - (machopic_non_lazy_ptr_name): Likewise. - (machopic_stubs): Likewise. - (machopic_stub_name): Likewise. - (NON_LAZY_POINTER_SUFFIX): New macro. - (STUB_SUFFIX): Likewise. - (machopic_indirection): New structure. - (machopic_indirections): New variable. - (machopic_indirection_hash): New function. - (machopic_indirection_eq): Likewise. - (machopic_indirection_name): Likewise. - (machopic_mcount_stub_name): New function. - (machopic_validate_stub_or_non_lazy_pointer): Reimplement to use - hash table. - (machopic_indirect_data_reference): Rework to use new functions. - (machopic_indirect_call_target): Likewise. - (machopic_legitimize_pic_address): Likewise. - (machopic_output_indirection): New function. - (machopic_finish): Use it. - (machopic_operand_p): Rework to use new functions. - (darwin_encode_seciton_info): Use SYMBOL_REF_FLAGS. - (darwin_strip_name_encoding): Remove. - (update_non_lazy_ptrs): Remove. - (update_stubs): Likewise. - (darwin_non_lazy_pcrel): Use new functions. - * config/darwin.h (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_OUTPUT_LABELREF): Likewise. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. - (MACHO_SYMBOL_FLAG_VARIABLE): New macro. - (MACHO_SYMBOL_FLAG_DEFINED): Likewise. - (TARGET_STRIP_NAME_ENCODING): Do not use - darwin_strip_name_encoding. - (GEN_LAZY_PTR_NAME_FOR_SYMBOL): Do not use - darwin_strip_name_encoding. - * config/i386/darwin.h (FUNCTION_PROFILER): Use - machopic_mcount_stub_name. - * config/i386/i386.c (x86_output_mi_thunk): Use - machopic_indirection_name, not machopic_stub_name. - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Use - machopic_function_base_sym. - (print_operand): Use machopic_classify_symbol. - (rs6000_emit_prologue): Use machopic_function_base_sym. - (output_profile_hook): Do not use machopic_stub_name. - (macho_branch_isalnds): Do not use darwin_strip_name_encoding. - -2004-07-22 Joseph S. Myers - - PR c/7284 - * fold-const.c (extract_muldiv_1): Do not treat signed left shift - as multiplication. - -2004-07-22 Joseph S. Myers - - * doc/implement-c.texi: New file. - * doc/extend.texi (C Implementation): Move to there. - * doc/gcc.texi: Include implement-c.texi. - * Makefile.in (TEXI_GCC_FILES): Add implement-c.texi. - -2004-07-22 Jason Merrill - - * integrate.c (copy_decl_for_inlining): Remove invisible reference - handling. - * tree-inline.c (setup_one_parameter): Likewise. - -2004-07-22 Brian Booth - - * tree-ssa-ccp.c (latticevalue): Add UNKNOWN_VAL. - (substitute_and_fold): Propigate into VUSE operands when possible. - (visit_phi_node): Handle UNKNOWN_VAL latticevalue. - (cp_lattice_meet): Handle merging of latticevalues when - UNKNOWN_VAL is present. - (visit_stmt): Visit assignments with V_MUST_DEFs. - (visit_assignment): Gather ccp information for V_MUST_DEF operands. - (ccp_fold): Deal with RHS' that are constant and virtual. - (evaluate_stmt): Handle UNKNOWN_VAL likely values. - (dump_lattice_value): Dump UNKNOWN_VAL latticevalues. - (initialize): Mark statements with V_MUST_DEFs as VARYING only if the - V_MUST_DEF operand is VARYING. Fix comment and include VOPS when - computing immediate uses. - (set_lattice_value): Disallow a UNKNOWN_VAL->UNDEFINED state - transition. - (replace_vuse_in): New function. - (likely_value): Add check of vuse operands. - (get_default_value): Set the default value of virtually defined - variables to UKNOWN_VAL instead of VARYING. - -2004-07-22 Richard Henderson - - * expr.c (emit_push_insn): Don't use set_mem_attributes. - -2004-07-22 Richard Henderson - - * tree-ssa-live.c (create_ssa_var_map): Avoid defined-but-not-used - variables due to conditional compilation. - -2004-07-22 Diego Novillo - - * tree-into-ssa.c (set_livein_block): Fix typo in comment. - (rewrite_ssa_into_ssa): Start iterating over SSA names at 1. - Release SSA names that have been re-renamed. - * tree-phinodes.c (make_phi_node): Set same TREE_TYPE as the - variable. - * tree-ssa-alias.c (init_alias_info): If aliases have been - computed before, clear existing alias information. - (create_name_tags): Do no fixup PT_ANYTHING pointers. - If the new name tag for a pointer is different than the one it - had before, mark the old tag for renaming. - (replace_may_alias): New function. - (group_aliases): Call it. - (setup_pointers_and_addressables): Always call get_tmt_for. - (maybe_create_global_var): Don't create .GLOBAL_VAR more than - once. - (set_pt_anything): New local function. - (set_pt_malloc): New local function. - (merge_pointed_to_info): Don't merge pointed-to variables from - the original pointer if the destination is pointing to an - unknown location. - (add_pointed_to_expr): Call set_pt_anything and set_pt_malloc. - (add_pointed_to_var): Do not add a variable to the points-to - set if the pointer is already pointing to anywhere. - (collect_points_to_info_r): If the defining statement is a PHI - node, only merge pointed-to information if the argument has - already been visited. - (get_tmt_for): Only create a new tag if the pointer didn't - have one already. - (dump_alias_info): Emit more information. - (dump_points_to_info_for): Likewise. - * tree-ssa-dom.c (redirect_edges_and_update_ssa_graph): Don't - try to get the annotation of an SSA_NAME. - * tree-ssa-operands.c (add_stmt_operand): Only check for empty - alias sets when checking is enabled. - * tree-ssa-pre.c (need_eh_cleanup): New local variable. - (eliminate): Mark basic blocks that will need - EH information cleaned up. - (init_pre): Split ENTRY_BLOCK->0 if block 0 has more than one - predecessor. - Initialize need_eh_cleanup. - (fini_pre): Call tree_purge_all_dead_eh_edges and - cleanup_tree_cfg if needed. - Free need_eh_cleanup. - * tree-ssa.c (verify_ssa_name): New function. - (verify_def): Call it. - Re-arrange to avoid printing too many error messages. - (verify_use): Likewise. - (verify_phi_args): Likewise. - (verify_flow_insensitive_alias_info): New function. - (verify_flow_sensitive_alias_info): New function. - (verify_alias_info): New function. - (verify_ssa): Call verify_alias_info. - Clear TREE_VISITED on all the SSA_NAMEs before scanning the - program. - Re-arrange to avoid printing too many error messages. - * tree-ssanames.c (make_ssa_name): Clear - SSA_NAME_IN_FREE_LIST. - (release_ssa_name): Never release a default definition. - (release_defs): New function. - * tree.h: Declare it. - * tree-ssa-dce.c (remove_dead_stmt): Call it. - -2004-07-22 Diego Novillo - - * tree-ssa.c (walk_use_def_chains_1): Add new argument IS_DFS. - If true, do a depth-first search. Do a breadht-first search, - otherwise. - (walk_use_def_chains): Add new argument IS_DFS. - Update all users. - * tree-flow.h (walk_use_def_chains): Update prototype. - -2004-07-22 Hans-Peter Nilsson - - * config/cris/cris.md: Tweak formatting. - (asrandb, asrandw, lsrandb, lsrandw, moversideqi, movemsideqi) - (mover2side, moverside, movemside, movei, op3, andu): Replace - live define_peephole:s with define_peephole2 near-equivalents. - Delete the rest. - ("*mov_sidesisf_biap"): Rename from "*mov_sidesi_biap". Match all - word-size modes. - ("*mov_sidesisf", "*mov_sidesisf_biap_mem", "*mov_sidesisf_mem"): - Similar for "*mov_sidesi", "*mov_sidesi_biap_mem" and - "*mov_sidesi_mem" respectively. - -2004-07-22 Paolo Bonzini - - * tree-cfg.c (gimplify_val): Move from tree-complex.c. - (gimplify_build1): Move from tree-complex.c do_unop. - (gimplify_build2): Move from tree-complex.c do_binop. - (gimplify_build3): New. - * tree-complex.c (gimplify_val, do_unop, do_binop): Remove. - Adjust throughout to call the functions above. - * tree-flow.h: Declare the functions above. - * tree-nested.c (gimplify_val): Rename to... - (tsi_gimplify_val): ... this. - - * Makefile.in (tree_complex.o): Update dependencies. - (stor-layout.o): Depend on regs.h. - * c-common.c (handle_vector_size_attribute): Update for - vector types without corresponding vector modes. - * expr.c (expand_expr): Treat VECTOR_CST's like CONSTRUCTORS if - a corresponding vector mode is not available. - * print-tree.c (print_node): Print nunits for vector types - * regclass.c (have_regs_of_mode): New. - (init_reg_sets_1): Initialize it and use it instead - of allocatable_regs_of_mode. - * regs.h (have_regs_of_mode): Declare it. - * stor-layout.c (layout_type): Pick a mode for vector types. - * tree-complex.c (build_word_mode_vector_type, tree_vec_extract, - build_replicated_const, do_unop, do_binop, do_plus_minus, - do_negate, expand_vector_piecewise, expand_vector_parallel, - expand_vector_addition, expand_vector_operations_1, - expand_vector_operations, tree_lower_operations, - pass_lower_vector_ssa, pass_pre_expand): New. - (expand_complex_operations, pass_lower_complex): Remove. - * tree-optimize.c (init_tree_optimization_passes): Adjust - pass ordering for changes in tree-complex.c. - * tree-pass.h: Declare new passes. - * tree.c (finish_vector_type): Remove. - (make_vector_type): New. - (build_vector_type_for_mode, build_vector_type): Rewritten. - * tree.def (VECTOR_TYPE): Document where the number of - subparts is stored. - * tree.h (TYPE_VECTOR_SUBPARTS): Use TYPE_PRECISION field. - (make_vector): Remove declaration. - -2004-07-21 Richard Henderson - - * gimple-low.c (expand_var_p): Don't look at TREE_ADDRESSABLE, - TREE_THIS_VOLATILE, may_aliases, or optimization level. - (remove_useless_vars): Dump debugging info. - (expand_used_vars): Move ... - * cfgexpand.c (expand_used_vars): ... here. Make static. - * tree-flow-inline.h (set_is_used): New. - (set_default_def): Use get_var_ann. - * tree-flow.h: Update decls. - * tree-ssa-live.c (mark_all_vars_used_1, mark_all_vars_used): New. - (create_ssa_var_map): Use it. - * tree-ssa.c (set_is_used): Remove. - -2004-07-22 Ben Elliston - - * gdbinit.in: Set a breakpoint on internal_error. - -2004-07-21 Richard Henderson - - * cfgexpand.c (expand_gimple_tailcall): Fix case where we need - to create a new basic block. - -2004-07-22 Joseph S. Myers - - PR c/15052 - * c-decl.c (grokdeclarator): Only pedwarn for qualified void - return type on function definitions. Move other warnings for - qualified return type to -Wreturn-type. Do not condition any such - warnings on -pedantic. Update comments. - (start_function): Only copy function type from previous prototype - declaration if return types are compatible. - * c-typeck.c (function_types_compatible_p): Don't condition - warning for incompatibility of volatile qualifiers on the return - type on -pedantic. Update comment. - * doc/invoke.texi (-Wreturn-type, -Wextra): Update. - -2004-07-22 Joseph S. Myers - - * c-typeck.c (set_init_index): Require designator to be of integer - type. - -2004-07-22 Joseph S. Myers - - PR c/11250 - * c-parse.in (init): Change to exprtype. - (primary): Set original_code for STRING to STRING_CST. - Call maybe_warn_string_init for compound literals. - (initdcl, notype_initdcl): Call maybe_warn_string_init. - (initval): Update. - * c-tree.h (maybe_warn_string_init): New. - (pop_init_level, process_init_element): Use struct c_expr. - (struct c_expr): Update comment. - * c-typeck.c (maybe_warn_string_init): New function. - (digest_init): Call it. Additional parameter strict_string. All - callers changed. - (output_init_element): Likewise. - (struct constructor_stack): Use struct c_expr for - replacement_value. - (really_start_incremental_init, push_init_level): Update. - (pop_init_level): Update. Return struct c_expr. - (process_init_level): Update. Take struct c_expr argument. - -2004-07-21 David S. Miller - - * config/sparc/sparc.c (sparc_rtx_costs): Fix typo in previous - commit. - -2004-07-21 Eric Christopher - - * builtins.c (expand_builtin_setjmp_receiver): Fix comment for code - removal. - * c-decl.c (pop_scope): Ditto. - * calls.c (expand_call): Remove call to current_nesting_level, - update comment accordingly. Remove calls to expand_start_target_temps - and expand_end_target_temps. - * cfgexpand.c (construct_init_block): Remove call to - expand_start_bindings_and_block. - (construct_exit_block): Remove call to expand_end_bindings. - * expr.c (safe_from_p): Remove BIND_EXPR handling. - (expand_expr_real_1): Ditto. Fix formatting. - (expand_vars): Delete. - * stmt.c (POPSTACK): Remove block_stack. - (stmt_status): Remove x_block_stack. - (block_stack): Delete. - (expand_start_bindings_and_block): Ditto. - (expand_start_target_temps): Ditto. - (expand_end_target_temps): Ditto. - (current_nesting_level): Ditto. - (warn_about_unused_variables): Ditto. - (expand_end_bindings): Ditto. - * tree.h: Remove declarations for above. - -2004-07-21 Steven Bosscher - - * rtl.h (insn_note): Remove NOTE_INSN_PREDICTION. - * rtl.c (note_insn_name): Likewise. - * print-rtl.c (print_rtx): Don't print it. - * cfgrtl.h (can_delete_note_p): Don't handle it. - (rtl_delete_block): Likewise. - * passes.c (rest_of_handle_guess_branch_prob): Remove. - (rest_of_compilation): Don't call it. - * predict.c (process_note_predictions, process_note_prediction, - note_prediction_to_br_prob): Remove. - * basic-block.c (note_prediction_to_br_prob): Remove prototype. - * stmt.c (return_prediction): Remove. - (expand_value_return): Don't call it. Don't add prediction - notes for return statements. - -2004-07-21 Josef Zlomek - - * var-tracking.c (vt_find_locations): Set the in_pending bitmap at - once. - -2004-07-21 Paolo Bonzini - - * c-common.c (vector_types_convertible_p): Use vector types' - TYPE_SIZE and TREE_TYPE instead of their mode. - * convert.c (convert_to_integer): Likewise. - (convert_to_vector): Likewise. - * fold-const.c (fold_convert): Likewise. - * varasm.c (output_constant): Likewise. - * expr.c (store_constructor): Split ARRAY_TYPE and VECTOR_TYPE. - Allow a VECTOR_TYPE initializer to be made of several vectors. - For ARRAY_TYPEs and VECTOR_TYPES, simplify a bit the handling - of cleared and need_to_clear, and use fold_convert. - * c-typeck.c (build_binary_op): Do not use RDIV_EXPR for - integer vectors. - -2004-07-20 Richard Henderson - - * cfgexpand.c (expand_gimple_cond_expr, expand_gimple_tailcall): Split, - (expand_gimple_basic_block): out from here. Renamed from expand_block. - -2004-07-20 David S. Miller - - * config/sparc/sparc.c (sparc_rtx_costs case MULT): Emit - enormous cost if not TARGET_HARD_MUL. - -2004-07-20 Andrew Pinski - - PR target/16557 - * config/i386/darwin.h (CC1_SPEC): Move the -g SPECs from ... - (ASM_SPEC): here. - -2004-07-21 Paul brook - - * config/arm/arm.c (thumb_expand_prologue): Remove bogus GEN_INT. - -2004-07-20 Richard Kenner - - * fold-const.c (operand_equal_p): Temporarily support NULL args. - (operand_equal_p, case ARRAY_REF): Compare args 2 and 3. - (operand_equal_p, case COMPONENT_REF): Likewise, for arg 2. - -2004-07-20 Zack Weinberg - - * rtl.h (plus_constant): Delete. - (plus_constant_wide): Rename to plus_constant. - (plus_constant_for_output_wide): Delete vestigial prototype. - (GEN_INT): Remove unnecessary cast. - * tree.h (build_int_2, size_int_type): Delete. - (build_int_2_wide): Rename to build_int_2. - (size_int_wide): Rename to size_int_kind. - (size_int_type_wide): Rename to size_int_type. - (size_int, ssize_int, bitsize_int, sbitsize_int): Use size_int_kind. - Remove unnecessary cast. - * tree.c (build_int_2_wide): Rename build_int_2; update comment. - * explow.c (plus_constant_wide): Rename plus_constant; update comment. - * fold-const.c (size_int_wide): Rename size_int_kind. Use size_int_type. - (size_int_type_wide): Rename size_int_type. - (int_const_binop): Use size_int_type. - * c-lex.c (interpret_integer): Use build_int_2. - * final.c (split_double): Remove unnecessary casts. - * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): Use build_int_2. - -2004-07-20 Richard Henderson - - * gimplify.c (is_gimple_tmp_var): Move to tree-gimple.c. - (gimplify_compound_lval): Use is_gimple_tmp_reg. - * tree-gimple.c (is_gimple_tmp_var): Move from gimplify.c. - (is_gimple_tmp_reg): New. - * tree-gimple.h (is_gimple_tmp_reg): Declare. - -2004-07-20 Richard Henderson - - * tree-pretty-print.c (dump_generic_node): Dump - CALL_EXPR_HAS_RETURN_SLOT_ADDR. - -2004-07-20 Frank Ch. Eigler - - * tree-mudflap.c (mf_set_options_fndecl): New tree. - (mudflap_init): Set it. - (mudflap_register_call): Remove __mf_init call. - (mudflap_finish_file): Emit call to __mf_init here. Emit a call to - to pass "-ignore-reads" option to libmudflap if needed. - -2004-07-20 John David Anglin - - PR c++/14607 - * config/pa/pa-hpux10.h (SUPPORTS_ONE_ONLY): Define. - (MAKE_DECL_ONE_ONLY): Undefine. - * pa-protos.h (som_text_section_asm_op, one_only_readonly_data_section, - readonly_data, one_only_data_section, forget_section): New prototypes. - * pa.c (pa_init_machine_status, som_text_section_asm_op): New - functions. - (pa_select_section): Add one-only (COMDAT) support. - * pa.h (struct machine_function): Define. - * som.h (ASM_OUTPUT_FUNCTION_PREFIX): Delete. - (TEXT_SECTION_ASM_OP): Call som_text_section_asm_op. - (DEFAULT_TEXT_SECTION_ASM_OP, NEW_TEXT_SECTION_ASM_OP, - ONE_ONLY_TEXT_SECTION_ASM_OP, ONE_ONLY_READONLY_DATA_SECTION_ASM_OP, - ONE_ONLY_DATA_SECTION_ASM_OP): New defines. - (EXTRA_SECTIONS): Add in_one_only_readonly_data and in_one_only_data. - (EXTRA_SECTION_FUNCTIONS): Rework to use individual function macros. - (READONLY_DATA_FUNCTION, ONE_ONLY_READONLY_DATA_SECTION_FUNCTION, - ONE_ONLY_DATA_SECTION_FUNCTION, FORGET_SECTION_FUNCTION): New defines - for EXTRA_SECTION_FUNCTIONS. - * doc/install.texi: Update binutils requirements. - -2004-07-20 Nathan Sidwell - - * vec.h (VEC_T_length, VEC_T_index, VEC_T_iterate, VEC_T_truncate, - VEC_T_replace, VEC_T_quick_insert, VEC_T_safe_insert, - VEC_T_ordered_remove, VEC_T_unordered_remove): Use unsigned, not - size_t. - (struct VEC): Use unsigned for num and alloc. - * vec.c (struct vec_prefix): Likewise. - (vec_o_reserve): Adjust. - - * dbxout.c (dbxout_type): Fix printf format. - - * tree.h (binfo_member): Remove. - * tree.c (binfo_member): Remove. - -2004-07-20 Nathan Sidwell - - * tree.h: Include vec.h - (DEF_VEC_P(tree)): New type. - (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): Adjust. - (BINFO_BASE_APPEND, BINFO_BASE_ITERATE): New. - (BINFO_LANG_SLOT): Remove. - (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, BINFO_PRIMARY_BASE_OF): New. - (struct tree_binfo): Turn base_binfos into a trailing - VEC(tree). Add vtt_subvtt, vtt_vptr, primary fields. - (binfo_lang_slots): Remove. - * tree.c (binfo_lang_slots): Remove. - (make_tree_binfo_stat): Take a base binfo count, not a - lang slot count. Adjust. - * Makefile.in (TREE_H): Add vec.h - * alias.c (record_component_aliases): Adjust BINFO access. - * dbxout.c (dbxout_type): Likewise. - * dwarf2out.c (gen_member_die): Likewise. - * sdbout.c (sdbout_one_type): Likewise. - * tree-dump.c (deque_and_dump): Likewise. - * config/i386/i386.c (classify_argument, - contains_128bit_aligned_vector_p): Likewise. - * config/sh/symbian.c (symbian_export_vtable_and_rtti_p): Likewise. - * doc/c-tree.texi (Classes): Update BINFO documentation. - -2004-07-20 Steven Bosscher - - * c-common.h (check_case_value): Remove prototype. - (c_add_case_label): Adjust prototype. - * c-common.c (check_case_value): Make static. - (check_case_bounds): New function. - (c_add_case_label): Use it. Take new argument orig_type. - * c-typeck.c (struct c_switch): New orig_type field. - (c_start_case): Set it. - (do_case): Pass it to c_add_case_label. - * expr.c (expand_expr_real_1): Don't warn for out-of-bounds - cases from here. Add the labels in reverse order. - * stmt.c (struct case_node): Adjust comment. Remove balance field. - (add_case_node): Return nothing, don't check for duplicate cases. - Insert new case nodes in a list, not in an AVL tree. - (expand_end_case_type): Don't turn a case tree into a case list. - (case_tree2list): Remove. - * tree.h (add_case_node): Adjust prototype. - -2004-07-19 Paolo Bonzini - - * genattr.c (struct range, struct function_unit, - write_units, extend_range, init_range): Remove them. - (main): Remove code dealing with DEFINE_FUNCTION_UNIT. - Output "#define INSN_SCHEDULING" here. - * genattrtab.c (struct range, struct function_unit_op, - struct function_unit, struct dimension, enum operator, - operate_exp, expand_units, simplify_knowing, - encode_units_mask, simplify_by_exploding, - find_and_mark_used_attributes, unmark_used_attributes, - add_values_to_cover, increment_current_value, - test_for_current_value, simplify_with_current_value, - simplify_with_current_value_aux, gen_unit, - write_unit_name, write_function_unit_info, - write_complex_function, write_toplevel_expr, - find_single_value, extend_range): Remove. - (write_attr_get): Do not handle common_av->value - being an FFS. - (struct attr_desc): Remove func_units_p and blockage_p. - (write_attr_valueq): Do not handle them. - (find_attr): Do not clear them. - (make_internal_attr): Do not initialize them. - (main): Remove code dealing with DEFINE_FUNCTION_UNIT. - * sched-vis.c (init_target_units, insn_print_units, - init_block_visualization, print_block_visualization, - visualize_scheduled_insns, visualize_no_unit, - visualize_stall_cycles, visualize_alloc, - visualize_free, target_units, get_visual_tbl_length, - MAX_VISUAL_LINES, INSN_LEN, n_visual_lines, - visual_tbl_line_length, visual_tbl, n_vis_no_unit, - MAX_VISUAL_NO_UNIT, vis_no_unit): Remove. - * haifa-sched.c (blockage_range, clear_units, - schedule_unit, actual_hazard, potential_hazard, - insn_unit, unit_last_insn, unit_tick, - actual_hazard_this_instance, potential_hazard, - schedule_unit, max_insn_queue_index_value): Remove. - (MAX_INSN_QUEUE_INDEX): Removed, renamed throughout to - max_insn_queue_index. - * rtl.def (DEFINE_FUNCTION_UNIT): Remove. - * doc/md.texi (Processor pipeline description): Remove - references to old pipeline descriptions. - (Automaton pipeline description): Merge with the above. - (Old pipeline description, Comparison of the two descriptions): - Remove. - - * bt-load.c (migrate_btr_def): Remove references to - use_pipeline_interface. - * haifa-sched.c (insn_cost, schedule_insn, - schedule_block, advance_one_cycle, sched_init, - queue_to_ready, sched_finish): Likewise. - * modulo-sched.c (sms_schedule, advance_one_cycle, - ps_has_conflicts): Likewise. - * sched-rgn.c (init_ready): Likewise. - (debug_dependencies): Likewise, and remove an "if (1)". - * target.h (use_dfa_pipeline_interface): Remove. - * config/alpha/alpha.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/arc/arc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/arm/arm.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/c4x/c4x.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/frv/frv.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/i386/i386.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/ia64/ia64.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/iq2000/iq2000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/m32r/m32r.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/mcore/mcore.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/mips/mips.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/pa/pa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/rs6000/rs6000.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/s390/s390.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/sh/sh.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/sparc/sparc.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/v850/v850.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * config/xtensa/xtensa.c (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - * doc/tm.texi (TARGET_USE_DFA_PIPELINE_INTERFACE): Remove. - -2004-07-19 Roger Sayle - - * rtlanal.c (reg_set_p): Add check for regs_invalidated_by_call. - -2004-07-19 Jeff Law - - * tree-ssa-dom.c (single_incoming_edge_ignoring_loop_edges): New. - (get_eq_expr_value): Use it. Simplify slightly. - -2004-07-19 Maciej W. Rozycki - - * config/mips/mips.md (mulsidi3_32bit_r4000): Fix the clobber list. - (umulsidi3_32bit_r4000): Likewise. - -2004-07-19 Nathan Sidwell - - * vec.h: Propagate location information properly. - (VEC_T_iterate): Add result pointer parameter. - (VEC_T_space): New. - (VEC_T_reserve): Use it. - -2004-07-19 Daniel Jacobowitz - - * Makefile.in (c-format.o): Depend on c-format.h. - * c-format.h: New file. - (struct format_char_info): Add CHAIN member. - * c-format.c: Move some types and constants to c-format.h. - (format_type_error): Set to -1. - (struct function_format_info): Use an int for format_type. - (decode_format_type): Return an int. Return format_type_error - on error. - (print_char_table, asm_fprintf_char_table, gcc_diag_char_table) - (gcc_diag_char_table, gcc_cdiag_char_table, gcc_cxxdiag_char_table) - (scan_char_table, time_char_table, monetary_char_table): Initialize - CHAIN to NULL. - (n_format_types): New variable. - (check_format_info_main): Handle CHAIN in format_char_info. - (handle_format_attribute): Handle TARGET_FORMAT_TYPES and - TARGET_N_FORMAT_TYPES. - * config.gcc (i[34567]86-*-solaris2*, sparc64-*-solaris2*) - (sparc-*-solaris2*): Include config/t-sol2 and config/sol2-c.c. - * config/sol2-c.c: New file. - * config/t-sol2: New file. - * config/sol2.h (TARGET_N_FORMAT_TYPES, TARGET_FORMAT_TYPES): Define. - * config/sparc/elf.h, config/sparc/sp64-elf.h: Undefine - TARGET_N_FORMAT_TYPES and TARGET_FORMAT_TYPES. - - * doc/extend.texi (Target Format Checks): New section. - (Function Attributes): Mention it. - * doc/invoke.texi: Mention target format checks. - * doc/sourcebuild.texi: Mention target format checks. - * dc/tm.texi (Misc): Document TARGET_N_FORMAT_TYPES and - TARGET_FORMAT_TYPES. - -2004-07-19 Andreas Krebbel - - * config/s390/s390-protos.h (s390_return_address_offset): Prototype - added. - * config/s390/s390.c (regclass_map initializer): Register 35 added to - ADDR_REGS. - (load_multiple_operation, store_multiple_operation): Removed - pointless sanity check. - (s390_decompose_address): Added check for return_address_pointer_rtx. - (s390_return_addr_rtx): Use return_address_pointer_rtx for count == 0. - (s390_return_address_offset): New function. - * config/s390/s390.h (FIRST_PSEUDO_REGISTER): Increased to 36. - (FRAME_REGNO_P): Added check for register 35. - (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, - REG_ALLOC_ORDER): Appended entry for register 35. - (REG_CLASS_CONTENTS): Adjusted class masks for register 35. - (EH_RETURN_HANDLER_RTX): Use return_address_pointer_rtx. - (RETURN_ADDRESS_POINTER_REGNUM): New macro. - (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Return address pointer - is eliminable using stack pointer or hard frame pointer. - (REGISTER_NAMES): Added name for register 35. - * config/s390/s390.md ("load_multiple", "store_multiple"): Removed - pointless sanity check. - -2004-07-19 Roger Sayle - - * fold-const.c (tree_expr_nonzero_p): Add function prototype. - (fold) : Move tree_expr_nonzero_p optimization from - fold_relational_const to here, i.e. "(x | 5) == 0" -> false. - (fold) (UNEQ_EXPR>: Add optimizations for unordered comparisons - of the form "x op x" where op is UNLE, UNGE, UNEQ or LTGT. - (fold_relational_const): Tidy up handling of floating point - comparisons by calling real_compare. Remove tree_expr_nonzero_p - transformation; fold_relational_const assumes constant operands. - -2004-07-19 Gabriel Dos Reis - - * doc/sourcebuild.texi: Add libcpp, now that CPP has its own - directory. - -2004-07-19 Joseph S. Myers - - * c-tree.h (struct c_expr): Define. - (C_SET_EXP_ORIGINAL_CODE): Remove. - (parser_build_binary_op, build_compound_expr): Update prototypes. - * c-parse.in (%union): Add exprtype. - (FUNC_NAME): Mark as ttype. - (expr, expr_no_commas, cast_expr, unary_expr, primary): Change to - exprtype. - (expr): Update. Define directly in terms of expr_no_commas - instead of using nonnull_exprlist. - (nonnull_exprlist, unary_expr, cast_expr, expr_no_commas, primary, - offsetof_member_designator, typespec_nonreserved_nonattr, init, - initval, designator, component_declarator, - component_notype_declarator, enumerator, array_declarator, - condition, exexpr, switch_statement, stmt_nocomp, stmt, - nonnull_asm_operands, ivar_declarator, receiver): Update. Don't - set C_EXP_ORIGINAL_CODE. Use TREE_NO_WARNING for assignments - where appropriate. - * c-common.h (C_EXP_ORIGINAL_CODE): Remove. - * c-common.c (c_common_truthvalue_conversion): Don't check - C_EXP_ORIGINAL_CODE. - * c-typeck.c (parser_build_binary_op): Use c_expr structures. - Don't use C_EXP_ORIGINAL_CODE. - (default_conversion, default_function_array_conversion): Don't use - C_EXP_ORIGINAL_CODE. Preserve TREE_NO_WARNING. - (internal_build_compound_expr): Merge into build_compound_expr. - (build_compound_expr): Take two operands instead of a TREE_LIST. - * objc/objc-act.c (get_super_receiver): Update calls to - build_compound_expr. - -2004-07-18 Paolo Bonzini - - * config/sh/sh.c (sh_use_dfa_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Set to - hook_int_void_1. - * config/sh/sh.md: Extract pipeline descriptions - into separate files. - * config/sh/sh1.md: New file, extracted from sh.md. - * config/sh/sh4.md: New file, extracted from sh.md. - * config/sh/shmedia.md: New file, extracted from sh.md - and rewritten using new-style pipeline description. - -2004-07-18 Zack Weinberg - - * config/pa/pa.md: Delete the two remaining define_peephole - patterns. - -2004-07-18 Steven Bosscher - Joseph S. Myers - - * c-common.c (c_common_truthvalue_conversion): Don't warn if - TREE_NO_WARNING is set. - -2004-07-18 Roger Sayle - - * builtins.c (simplify_builtin_memcmp, simplify_builtin_strcmp, - simplify_builtin_strncmp): Delete. - (fold_builtin_memcmp, fold_builtin_strcmp, fold_builtin_strncmp): - Change argument to accept an arglist instead of an "exp". Assume - that the return type is always integer_type_node. Copy missing - transformations from their now obsolete simplify_builtin_* - equivalents. - (fold_builtin_1): Pass arglist instead of exp to fold_builtin_memcmp, - fold_builtin_strcmp and fold_builtin_strncmp. - (simplify_builtin): Call fold_builtin_memcmp, fold_builtin_strcmp - and fold_builtin_strncmp instead of simplify_builtin_memcmp, - simplify_builtin_strcmp and simplify_builtin_strncmp respectively. - -2004-07-18 Daniel Jacobowitz - - * Makefile.in (tree-alias-common.o): Update dependencies. - -2004-07-17 Sebastian Pop - - * cfgloop.c (flow_loop_nested_p): Fix comment. - -2004-07-17 Jason Merrill - - PR c++/16115 - * stor-layout.c (relayout_decl): New fn. - * tree.h: Declare it. - (DECL_BY_REFERENCE): New macro. - -2004-07-17 Eric Botcazou - - * libgcc2.c (__enable_execute_stack): New symbol. - * libgcc-std.ver (GCC_3.4.2): New version. Inherit from GCC_3.4 - and declare __enable_execute_stack. - * mklibgcc.in (lib2funcs): Add _enable_execute_stack. - * config/netbsd.h (NETBSD_ENABLE_EXECUTE_STACK): ANSIfy. - * config/sol2.h (TRANSFER_FROM_TRAMPOLINE): Rename into - ENABLE_EXECUTE_STACK. - * config/alpha/alpha.c (alpha_initialize_trampoline): Conditionalize - on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. - * config/alpha/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Rename into - ENABLE_EXECUTE_STACK. - * config/alpha/osf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. - * config/i386/i386.c (x86_initialize_trampoline): Conditionalize - on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. - * config/i386/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Rename into - ENABLE_EXECUTE_STACK. - * config/i386/netbsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. - * config/i386/netbsd64.h (TRANSFER_FROM_TRAMPOLINE): Likewise. - * config/sparc/freebsd.h (TRANSFER_FROM_TRAMPOLINE): Likewise. - * config/sparc/netbsd-elf.h (TRANSFER_FROM_TRAMPOLINE): Likewise. - * config/sparc/sparc.c (sparc_initialize_trampoline): Conditionalize - on ENABLE_EXECUTE_STACK instead of TRANSFER_FROM_TRAMPOLINE. - (sparc64_initialize_trampoline): Likewise. - * doc/tm.texi (trampolines): Add ENABLE_EXECUTE_STACK macro. - -2004-07-17 Joseph S. Myers - - * langhooks.h (builtin_function): New langhook. - * langhooks-def.h (LANG_HOOKS_BUILTIN_FUNCTION): New. - (LANG_HOOKS_INITIALIZER): Update. - * tree.h (builtin_function): Remove. - * doc/tm.texi: Update. - * c-tree.h (builtin_function): Declare. - * c-common.c, config/alpha/alpha.c, config/arm/arm.c, - config/c4x/c4x.c, config/frv/frv.c, config/i386/i386.c, - config/ia64/ia64.c, config/iq2000/iq2000.c, - config/rs6000/rs6000.c, config/s390/s390.c, config/sh/sh.c, - config/stormy16/stormy16.c: All callers of builtin_function - changed. - -2004-07-17 Andrew Pinski - - PR target/16556 - * config/i386/darwin.h (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): - Remove white space after the backslash. - -2004-07-17 Eric Botcazou - - PR rtl-optimization/16294 - * resource.c (return_insn_p): New predicate. - (mark_target_live_regs): Use it. Special-case return insns. - (init_resource_info): Use it. Don't scan the epilogue past - a return. - -2004-07-17 Zdenek Dvorak - - * loop-init.c (loop_optimizer_init, loop_optimizer_finalize): Do not - destroy dominance information. - * passes.c (rest_of_handle_loop2): Free dominance information. - * tree-cfg.c (cleanup_tree_cfg): Remove unreachable blocks before - jump threading. - (thread_jumps): Update dominance information and remove unreachable - blocks. - * tree-ssa-phiopt.c (replace_phi_with_stmt): Update dominance - information and remove the unreachable block. - -2004-07-17 Graham Stott - - * emit-rtl.c (reorder_insns): Don't set BB for a BARRIER insn. - -2004-07-17 Toon Moene - - * doc/sourcebuild.texi: Remove libf2c entry. - -2004-07-17 Paolo Bonzini - - * config/i386/i386.md (movv16qi_internal): Fix typo. - -2004-07-17 Steven Bosscher - - * final.c (final_scan_insn): Fix broken commit from previous - patch. - -2004-07-17 Joseph S. Myers - - * c-typeck.c (parser_build_binary_op): Condition warnings for - X<=Y<=Z on -Wparentheses instead of -Wextra. - * doc/invoke.texi: Update. Document that most of -Wparentheses is - supported for C only. - -2004-07-17 Steven Bosscher - - * cfgcleanup.c (try_simplify_condjump): Don't remove line - notes to avoid unreachable code warnings. - * toplev.c (backend_init): Don't emit line notes for - unreachable code warnings. - - * combine.c (distribute_notes): Don't distribute a - REG_VTABLE_REF note. - * final.c (final_scan_insn): Don't handle it. - * rtl.c (reg_note_name): Remove it. - * rtl.h (enum reg_node): Dito. - - * emit-rtl.c (force_line_numbers, restore_line_number_status): - Remove. - * rtl.h (force_line_numbers, restore_line_number_status): - Remove prototypes. - - * stmt.c (using_eh_for_cleanups_p, using_eh_for_cleanups): Move... - * tree-eh.c (using_eh_for_cleanups_p): ...here. Make static. - (using_eh_for_cleanups): Also moved here. - - * expr.c (expand_expr_real_1) : Die if we see one. - : Die if we have a non-NULL SWITCH_BODY. Update calls - to expand_start_case and add_case_node. - * stmt.c (struct nesting): Cleanup unused fields condition_code, - last_unconditional_cleanup, nominal_type, printname, and - line_number_status. - (struct fixup_goto): Remove. - (struct stmt_status): Remove x_goto_fixup_chain field. - (goto_fixup_chain): Remove. - (strip_default_case_nodes, group_case_nodes, emit_jump_if_reachable, - pushcase, pushcase_range): Remove. - (expand_start_bindings_and_block): Don't set unused fields in - the nesting stack. - (expand_start_case, add_case_node): Cleanup unused formal arguments. - (expand_end_case_type): Don't simplify the case-list. Use emit_jump - instead of emit_jump_if_reachable. - (emit_case_nodes): Likewise. - * tree-cfg.c (group_case_labels, cleanup_dead_labels): No longer - static. - (update_eh_label): Work around left-over exception handing regions. - * tree-flow.h (group_case_labels, cleanup_dead_labels): Add protos. - * tree-optimize.c (execute_cleanup_cfg_post_optimizing): New function. - (pass_cleanup_cfg_post_optimizing): New pass. - (init_tree_optimization_passes): Run the new pass after all - optimizations. - * tree.h (pushcase, pushcase_range): Remove prototypes. - (expand_start_case, add_case_node): Update prototypes. - -2004-07-16 Krister Walfridsson - - * tree-inline.c (estimate_num_insns_1): Correct increase of count. - -2004-07-16 Richard Henderson - - * builtins.c (std_expand_builtin_va_arg): Remove. - (expand_builtin_va_arg): Remove. - * expr.h: Don't declare them. - * gimplify.c (mark_decls_volatile_r): Remove. - (copy_if_shared_r): Don't call it. - * target-def.h: Don't test EXPAND_BUILTIN_VA_ARG. - * expr.c (expand_expr_real_1): Don't handle VA_ARG_EXPR. - * gimple-low.c (lower_stmt): Likewise. - * tree-cfg.c (cfg_remove_useless_stmts_bb): Likewise. - * tree-gimple.c (is_gimple_tmp_rhs, is_gimple_stmt): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * doc/tm.texi (TARGET_GIMPLIFY_VA_ARG_EXPR): Don't mention - EXPAND_BUILTIN_VA_ARG. - * system.h (EXPAND_BUILTIN_VA_ARG): Poison. - * config/alpha/alpha.h, config/alpha/unicosmk.h, config/i386/i386.h, - config/ia64/ia64.h, config/rs6000/rs6000.h, config/s390/s390.h, - config/sparc/sparc.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-07-16 Daniel Berlin - - * tree-ssa-pre.c (insert_aux): Break out if we hit - a critical edge. - -2004-07-16 Richard Henderson - - * basic-block.h (remove_fake_exit_edges): Declare. - * cfganal.c (remove_fake_predecessors): Rename from - remove_fake_successors; iterate over predecessors. - (remove_fake_exit_edges): New. - * cfgcleanup.c (try_optimize_cfg): Use it. - * gcse.c (one_pre_gcse_pass, store_motion): Likewise. - * predict.c (estimate_probability): Likewise. - (tree_estimate_probability, note_prediction_to_br_prob): Likewise. - * tree-cfg.c (make_edges): Likewise. - * tree-ssa-pre.c (fini_pre): Likewise. - * profile.c (instrument_edges): Don't remove_fake_edges. - (branch_prob): Do it earlier here. - -2004-07-16 Richard Henderson - - * tree-ssa-operands.c (get_expr_operands): Fix 2004-07-15 - switchification wrt CONSTRUCTOR. Document the reason. - -2004-07-16 Frank Ch. Eigler - - * tree-mudflap.c (mf_file_function_line_tree): Correct typo - that prevented descriptive __mf_check source location strings. - -2004-07-16 Richard Henderson - - * tree-def (WITH_SIZE_EXPR): New. - * explow.c (expr_size, int_expr_size): Handle WITH_SIZE_EXPR. - * expr.c (expand_expr_real_1): Likewise. - * gimplify.c (maybe_with_size_expr): New. - (gimplify_arg, gimplify_modify_expr): Use it. - (gimplify_modify_expr_to_memcpy): Take size parameter. - (gimplify_modify_expr_to_memset): Likewise. - (gimplify_expr): Handle WITH_SIZE_EXPR. - * tree-alias-common.c (find_func_aliases): Likewise. - * tree-eh.c (tree_could_trap_p): Likewise. - (tree_could_throw_p): Likewise. - * tree-gimple.c (is_gimple_lvalue): Likewise. - (get_call_expr_in): Likewise. - * tree-inline.c (estimate_num_insns_1): Likewise. - (expand_calls_inline): Likewise. - * tree-nested.c (convert_call_expr): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree-sra.c (sra_walk_expr): Likewise. - * tree-ssa-alias.c (add_pointed_to_expr): Likewise. - * tree-ssa-ccp.c (get_rhs, set_rhs): Likewise. - * tree-ssa-operands.c (get_expr_operands): Likewise. - * tree-tailcall.c (find_tail_calls): Likewise. - - * calls.c (expand_call): Reset old_stack_allocated after - calling emit_stack_restore. - -2004-07-16 Richard Henderson - - * langhooks-def.h (LANG_HOOKS_TREE_INLINING_COPY_RES_DECL_FOR_INLINING, - lhd_tree_inlining_copy_res_decl_for_inlining): Remove. - * langhooks.c (lhd_tree_inlining_copy_res_decl_for_inlining): Remove. - * langhooks.h (struct lang_hooks_for_tree_inlining): Remove - copy_res_decl_for_inlining. - - * tree-inline.c (declare_return_variable): New modify_dest argument. - Use it as the return value, when possible or manditory. Handle - TREE_ADDRESSABLE types. - (expand_call_inline): Extract MODIFY_EXPR lhs for call. Simplify - replacement of CALL_EXPR. - -2004-07-16 Richard Henderson - - * tree-flow.h (struct var_ann_d): Remove has_hidden_use. - * gimple-low.c (expand_var_p): Don't check it. - * tree-ssa-alias.c (setup_pointers_and_addressables): Likewise. - * tree-ssa-copyrename.c (rename_ssa_copies): Likewise. - * tree-ssa-operands.c (add_stmt_operand): Likewise. - * tree-dfa.c (find_hidden_use_vars, find_hidden_use_vars_r): Kill. - (find_referenced_vars): Don't call them. - * tree-flow-inline.h (has_hidden_use, set_has_hidden_use): Kill. - -2004-07-16 Richard Henderson - - * function.c (pass_by_reference): True for all variable sized types. - -2004-07-16 Sebastian Pop - - * Makefile.in (tree-pretty-print.o): Depend on tree-chrec.h. - * tree-pretty-print.c: Include tree-chrec.h. - (dump_generic_node): Pretty print SCEV_KNOWN, SCEV_NOT_KNOWN - and POLYNOMIAL_CHREC nodes. - -2004-07-16 Steve Ellcey - - * builtins.c (expand_builtin_stpcpy): Do not create temporary - reg with VOIDmode. - -2004-07-16 Segher Boessenkool - - * config/rs6000/eabi.asm (__eabi_convert): Fix typo (cmpi vs. cmpwi). - -2004-07-16 Andreas Krebbel - - * config/s390/s390.md: Changed every occurence of BASE_REGISTER - to BASE_REGNUM. - * config/s390/s390.c: Likewise. - * config/s390/s390.h: Likewise. - -2004-07-16 Richard Sandiford - - * config/mips/mips.md (addsi3, adddi3): Remove special handling - of $sp adds. Remove REGNO checks from mips16 patterns. - -2004-07-16 Richard Sandiford - - * config/mips/mips.md: Delete outdated comment. - -2004-07-16 Richard Sandiford - - * config/mips/mips.c (get_float_compare_codes): Delete. - (mips_emit_compare): New function, mostly extracted from - get_float_compare_codes and gen_conditional_branch. - (gen_conditional_branch, gen_conditional_move): Use it. - -2004-07-16 Segher Boessenkool - - * genautomata.c (add_vect): Speedup by using integers as - bit-vectors for walking through the comb_vect and finding - a match. - -2004-07-16 Richard Sandiford - - * config/mips/mips.c (mips_zero_if_equal): Only use XORs if the second - operand is an uns_arith_operand; use subtraction otherwise. - * config/mips/mips.md (cmpsi, cmpdi): Allow any nonmemory_operand, - not just arith_operands. - -2004-07-16 Richard Sandiford - - * config/mips/mips-protos.h (gen_int_relational): Delete. - (mips_emit_scc): Declare. - * config/mips/mips.c (internal_test): Delete. - (sle_operand, sleu_operand): New functions. - (map_test_to_internal_test, gen_int_relational): Delete. - (mips_emit_binary, mips_relational_operand_ok_p) - (mips_emit_int_relational, mips_zero_if_equal) - (mips_emit_scc): New functions. - (gen_conditional_branch): Rework to use mips_emit_int_relational. - * config/mips/mips.h (PREDICATE_CODES): Add sle_operand and - sleu_operand. - * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) - (sltu, sleu): Use mips_emit_scc. - (*sge_[sd]i, *sgeu_[sd]i): New patterns. - (*sle_[sd]i, *sle_[sd]i_mips16): Use sle_operand. - (*sleu_[sd]i, *sleu_[sd]i_mips16): Use sleu_operand. - -2004-07-16 Richard Sandiford - - * config/mips/mips.md (*sgt_di_mips16): Fix destination constraint. - -2004-07-16 Richard Sandiford - - * config/mips/mips.md (*seq_[sd]i): Renamed from seq_[sd]i_zero. - (*sne_[sd]i): Likewise sne_[sd]i_zero. - (*sgt_[sd]i): ...and sgt_[sd]i. - (*slt_[sd]i): ...and slt_[sd]i. - (*sgtu_[sd]i): ...and sgtu_[sd]i. - (*sltu_[sd]i): ...and sltu_[sd]i. - (*sleu_[sd]i): ...and sleu_[sd]i_const. - Name previously unnamed mips16 patterns. Formatting fixes. - -2004-07-16 Richard Sandiford - - * config/mips/mips.c (cmp_operands): Renamed from branch_cmp. - (branch_type): Delete. - (gen_conditional_branch, gen_conditional_move) - (mips_gen_conditional_trap): Update after name change. Get the - comparison mode from cmp_operands[0]. - * config/mips/mips.h (cmp_type, branch_type): Delete. - (cmp_operands): Renamed from branch_cmp. - * config/mips/mips.md (cmpsi, cmpdi, cmpsf, cmpdf): Update after - name change. Don't set branch_type. - (seq, sne, sgt, sge, slt, sle, sgtu, sgeu, sltu, sleu): Check the - mode class of cmp_operands[0] rather than branch_type. Update after - name change. - -2004-07-16 Richard Sandiford - - * config/mips/mips.c (mips_rtx_costs): In mips16 code, set the cost - of 0...255 to 0 when inside a SET. - -2004-07-16 Richard Sandiford - - * config/mips/mips.md: Remove mips16 define_peepholes. - -2004-07-16 Daniel Berlin - - * tree-ssa-pre.c (init_pre): Connect infinite loops to exit. - (fini_pre): Remove fake edges. - -2004-07-15 Richard Henderson - - * tree-ssa-operands.c (get_expr_operands): Use a switch. Split out... - (get_indirect_ref_operands, get_call_expr_operands): ... these. - -2004-07-15 Nathan Sidwell - - * vec.h (VEC_address): New function. - -2004-07-14 Jason Merrill - - PR middle-end/15885 - * gimplify.c (gimplify_arg): New fn, split out from... - (gimplify_call_expr): Here. Special-case BUILT_IN_VA_START. - -2004-07-15 Roman Zippel - - * config/m68k/m68k.c (output_move_qimode): Abort on an attempt to - generate code which is generated by pushqi1 now - * config/m68k/m68k.h (MOVE_BY_PIECES_P): Remove. - -2004-07-15 Roman Zippel - - * combine.c (simplify_set): match the mode of the constant 0 with - the tested operand to match the compare behaviour and the - simplify_relational_operation() expectation. - -2004-07-15 Aldy Hernandez - - * config/rs6000/rs6000.md ("bunordered"): Disable for e500. - ("bordered"): Same. - -2004-07-15 Aldy Hernandez - - * config/rs6000/rs6000.md ("*cceq_ior_compare"): Allow - unconditionally. - * config/rs6000/spe.md ("e500_cceq_ior_compare"): Remove. - -2004-07-15 Richard Sandiford - - * config/mips/mips.c (mips_adjust_insn_length): Fix handling of - calls in mips16 code. - -2004-07-15 Richard Sandiford - - * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for - the destination of the li as well as for the neg. - -2004-07-15 Frank Ch. Eigler - - g++/15861 - * cgraphunit.c (cgraph_build_static_cdtor): Add priority argument. - * cgraph.h: Update declaration. - * c-decl.c (build_cdtor): Update call with default priority. - * coverage.c (create_coverage): Ditto. - * tree-mudflap.c (mf_init_fndecl): New tree. - (mudflap_init): Set it. - (mudflap_register_call): Arrange to call __mf_init before the first - __mf_register call. - (mudflap_finish_file): Mark the mudflap static initializer as extra - high priority, to beat all C++ static constructors. - -2004-07-15 Jeff Law - - * loop.c (check_insn_for_givs): Restore check for code labels that was - accidentally deleted by a recent checkin. - -2004-07-15 Nathan Sidwell - - * vec.h (VEC_T_truncate): Allow truncation of an empty vector. - (VEC_T_quick_insert, VEC_T_ordered_remove): Fix sizeof(T) thinko. - -2004-07-14 Richard Henderson - - * print-tree.c (print_node): Fix casts last change. - -2004-07-15 Paul Brook - - * dwarf2out.c (dwarf2out_begin_prologue): Rename IA64_UNWIND_INFO - to TARGET_UNWIND_INFO. - * except.c (output_function_exception_table): Ditto. - * except.h: Ditto. - * opts.c (decode_options): Ditto. - * passes.c (rest_of_handle_final): Ditto. - * final.c (final_start_function): Ditto. - (final_scan_insn, final_scan_insn): Replace IA64_UNWIND_EMIT with - target hook. - * targhooks.h (default_unwind_emit): Declare. - * targhooks.c (default_unwind_emit): New function. - * target-def.h: Define and use TARGET_UNWIND_EMIT. - * target.h (struct gcc_target): Add unwind_emit. - * config/ia64/ia64.c (TARGET_UNWIND_EMIT): Define. - * config/ia64/ia64.h: Rename IA64_UNWIND_INFO to TARGET_UNWIND_INFO. - Remove IA64_UNWIND_EMIT. - * doc/tm.texi: Document TARGET_UNWIND_EMIT and TARGET_UNWIND_INFO. - -2004-07-14 Richard Henderson - - * print-tree.c (print_node): Handle SSA_NAME. - -2004-07-14 James E Wilson - - PR target/16325 - * config/mips/mips.h (STARTING_FRAME_OFFSET): When flag_profile_value - and ! TARGET_64BIT, include REG_PARM_STACK_SPACE. - -2004-07-15 Jakub Jelinek - - * expr.c (expand_assignment): Reenable bitfield += optimizations. - Use alias set 0 for memory, do proper mode calculations and adjust - address for memories. - -2004-07-14 Per Bothner - - * input.h: If USE_MAPPED_LOCATION, define separate expanded_location - structure with extra column field. - * tree.c (expand_location): Also fill in column field. - * gengtype-lex.l: Ignore expanded_location typedef, sinze gengtype - gets confused by the two conditionally-compiled definitions. - -2004-07-14 Eric Christopher - - * calls.c (expand_call): Fix typo in comment. - -2004-07-14 Steve Ellcey - - * config/ia64/ia64.c (ia64_expand_compare): Allow ORDERED - comparision of TFmode. - -2004-07-14 Richard Henderson - - * config/alpha/alpha.c (alpha_gimplify_va_arg_1): Move indirect ... - (alpha_gimplify_va_arg): ... handling here. Use pass_by_reference. - * config/c4x/c4x.c (c4x_gimplify_va_arg_expr): Use pass_by_reference. - * config/i386/i386.c (ix86_gimplify_va_arg): Likewise. - * config/i860/i860.c (i860_gimplify_va_arg_expr): Likewise. - * config/ia64/ia64.c (ia64_gimplify_va_arg): Likewise. - * config/rs6000/rs6000.c (rs6000_gimplify_va_arg): Likewise. - * config/sh/sh.c (sh_gimplify_va_arg_expr): Likewise. - * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Likewise. - -2004-07-14 Mike Stump - - * config/darwin.h (WINT_TYPE): Define to be int to match - system header files. - -2004-07-14 Bob Wilson - - * config/xtensa/xtensa.c (function_arg_advance): Check for args - that must be passed in the stack. - (xtensa_gimplify_va_arg_expr): Skip special-case padding for small - arguments if the size is not a constant. - -2004-07-14 Per Bothner - - * c-typeck.c (emit_side_effect_warnings): Use EXPR_HAS_LOCATION - instead of EXPR_LOCUS in a boolean context, which is always true - if --enable-mapped-location. - * stmt.c (warn_if_unused_value): Likewise. Also use EXPR_LOCATION. - -2004-07-14 Richard Henderson - - * dominance.c (struct dom_info): Add fake_exit_edge. - (init_dom_info): Allocate it. - (free_dom_info): Free it. - (calc_dfs_tree): Set it. Handle noreturn and infinite loops - in two passes. - (calc_idoms): Honor fake_exit_edge. - -2004-07-13 Jason Merrill - - * tree-gimple.c (is_gimple_reg_rhs, is_gimple_mem_rhs): New fns. - (rhs_test_for): New fn. - (is_gimple_tmp_rhs): Rename from is_gimple_rhs. - * tree-gimple.h: Declare them. - * gimplify.c (gimplify_modify_expr): Use the new fns. - -2004-07-14 Richard Henderson - - * config/arm/arm-protos.h (arm_va_arg): Remove. - * config/arm/arm.c (arm_va_arg): Remove. - (arm_init_expanders): Fix alignment of arg_pointer_rtx. - * config/arm/arm.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-07-14 John David Anglin - - * pa.c (fix_range): New function to mark a range(s) of registers as - fixed registers. - (override_options): Call fix_range if the -mfixed-range option string - is not empty. - * pa.h (TARGET_OPTIONS): Add -mfixed-range option. - * doc/invoke.texi (-mfixed-range): Document new option. - -2004-07-14 David Edelsohn - - * config/rs6000/rs6000.c (function_arg_padding): Do not pad SFmode - for TARGET_64BIT. - (rs6000_gimplify_va_arg): Use size_int instead of build_int_2. - -2004-07-14 Roger Sayle - - * expmed.c (expand_sdiv_pow2): New function to expand signed division - by a positive power of two, split out from expand_divmod. Provide - an alternate implementation when shifts are expensive. Lower the - threshold for using a branchless implementation to BRANCH_COST >= 2. - (expand_divmod): Call expand_sdiv_pow2 for suitable divisions. - -2004-07-14 Paolo Bonzini - - * tree-dfa.c (make_rename_temp): *Really* work just - like create_tmp_var if called while outside SSA form. - -2004-07-14 Ulrich Weigand - - * config/s390/s390.md ("udivsi3"): Ensure trap is generated - for division by zero. - ("umodsi3"): Likewise. - -2004-07-14 Richard Sandiford - - * config/mips/mips.c (mips_output_move): When generating mips16 code, - force loads of negative constants to be split. - * config/mips/mips.md (*movhi_mips16, *movqi_mips16): Likewise. - Generalize SImode li/neg splitter to cope with other modes. - -2004-07-14 Paolo Bonzini - - * expmed.c: Remove more references to QUEUED in the comments. - * expr.c: Likewise. - -2004-07-14 Richard Sandiford - - Revert: - 2004-07-13 Richard Henderson - * config/mips/mips.c (mips_pass_by_reference): Handle mode sizes - correctly. - -2004-07-14 Paolo Bonzini - - * tree-dfa.c (make_rename_temp): Work just like - create_tmp_var if called while outside SSA form. - -2004-07-14 Paolo Bonzini - - * expr.c (enqueue_insn, finish_expr_for_function, - protect_from_queue, queued_subexp_p, mark_queue, - emit_insns_enqueued_after_mark, emit_queue, - expand_increment): Remove. - (store_constructor): Expand increment as an assignment. - (expand_expr_real_1 ): Abort. - * expr.h (QUEUED_VAR, QUEUED_INSN, QUEUED_COPY, - QUEUED_BODY, QUEUED_NEXT, finish_expr_for_function, - protect_from_queue, emit_queue, queued_subexp_p): Remove. - * function.h (pending_chain, x_pending_chain): Remove. - * rtl.def (QUEUED): Remove. - - * emit-rtl.c (copy_insn_1, copy_most_rtx, - set_used_flags, verify_rtx_sharing): Remove references to QUEUED. - * genattrtab.c (attr_copy_rtx, clear_struct_flag, - encode_units_mask): Likewise. - * local-alloc.c (equiv_init_varies_p): Likewise. - * rtl.c (copy_rtx): Likewise. - * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. - * simplify-rtx.c (simplify_gen_subreg): Likewise. - * config/mn10300/mn10300.c (legitimate_pic_operand_p): Likewise. - - * builtins.c (expand_builtin, expand_builtin_apply, - expand_builtin_mathfn, expand_builtin_mathfn_2, - expand_builtin_mathfn_3, expand_builtin_setjmp_setup): - Remove calls to emit_queue and protect_from_queue. - * calls.c (expand_call, precompute_arguments, - precompute_register_parameters, rtx_for_function_call, - store_one_arg): Likewise. - * dojump.c (do_compare_and_jump, do_jump): Likewise. - * explow.c (memory_address): Likewise. - * expmed.c (clear_by_pieces_1, clear_storage, - clear_storage_via_libcall, emit_group_load, - emit_group_store, emit_store_flag, - expand_expr_real_1, store_by_pieces, - store_constructor, store_expr, try_casesi, - try_tablejump): Likewise. - * function.c (expand_pending_sizes): Likewise. - * optabs.c (emit_cmp_and_jump_insns, - emit_conditional_add, emit_conditional_move, - expand_fix, expand_float, prepare_cmp_insn): Likewise. - * stmt.c (emit_case_bit_tests, - expand_asm_expr, expand_computed_goto, - expand_decl_init, expand_end_case_type, - expand_end_stmt_expr, expand_expr_stmt_value, - expand_return, expand_start_case, - optimize_tail_recursion): Likewise. - * config/c4x/c4x.c (c4x_expand_builtin): Likewise. - * config/s390/s390.c (s390_expand_cmpmem): Likewise. - -2004-07-14 Ben Elliston - - * vec.h: Comment fix. - -2004-07-13 Richard Henderson - - * target.h (struct gcc_target): Add calls.pass_by_reference. - * target-def.h (TARGET_PASS_BY_REFERENCE): New. - * function.c (pass_by_reference): Use the hook. - * system.h (FUNCTION_ARG_PASS_BY_REFERENCE): Poison. - * targhooks.c, targhooks.h (hook_pass_by_reference_false): New. - (hook_pass_by_reference_must_pass_in_stack): New. - * config/alpha/alpha.c (function_arg): Don't query pass-by-ref. - (alpha_pass_by_reference): New. - (TARGET_PASS_BY_REFERENCE): New. - * config/alpha/alpha.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/arc/arc.c (arc_pass_by_reference): New. - (TARGET_PASS_BY_REFERENCE): New. - * config/arc/arc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): True. - * config/arm/arm-protos.h (arm_function_arg_pass_by_reference): Remove. - * config/arm/arm.c (TARGET_PASS_BY_REFERENCE): New. - (arm_pass_by_reference): Rename from arm_function_arg_pass_by_reference. - * config/arm/arm.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/c4x/c4x.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/cris/cris.c (cris_pass_by_reference): New. - (TARGET_PASS_BY_REFERENCE): New. - * config/cris/cris.h (FUNCTION_ARG): Don't query pass-by-ref. - (FUNCTION_INCOMING_ARG, FUNCTION_ARG_ADVANCE): Likewise. - (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/fr30/fr30.c (TARGET_PASS_BY_REFERENCE): New. - * config/fr30/fr30.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/frv/frv-protos.h (frv_function_arg_pass_by_reference): Kill. - * config/frv/frv.c (TARGET_PASS_BY_REFERENCE): New. - (frv_function_arg_pass_by_reference): Remove. - * config/frv/frv.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/i386/i386-protos.h (function_arg_pass_by_reference): Remove. - * config/i386/i386.c (TARGET_PASS_BY_REFERENCE): New. - (ix86_pass_by_reference): Rename from function_arg_pass_by_reference. - * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/ia64/ia64-protos.h (ia64_function_arg_pass_by_reference): Kill. - * config/ia64/ia64.c (TARGET_PASS_BY_REFERENCE): New. - (ia64_pass_by_reference): Rename from - ia64_function_arg_pass_by_reference. - * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/ip2k/ip2k.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/iq2000/iq2000-protos.h (function_arg_pass_by_reference): Kill. - * config/iq2000/iq2000.c (TARGET_PASS_BY_REFERENCE): New. - (iq2000_pass_by_reference): Rename from function_arg_pass_by_reference. - * config/iq2000/iq2000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. - * config/m32r/m32r-protos.h (m32r_pass_by_reference): Remove. - * config/m32r/m32r.c (TARGET_PASS_BY_REFERENCE): New. - (m32r_pass_by_reference): Adjust prototype. Make static. - Handle mode sizes correctly. - * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c - (m68hc11_function_arg_pass_by_reference): Remove. - * config/m68hc11/m68hc11.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. - * config/mcore/mcore.c (TARGET_PASS_BY_REFERENCE): New. - * config/mcore/mcore.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/mips/mips-protos.h (function_arg_pass_by_reference): Remove. - * config/mips/mips.c (TARGET_PASS_BY_REFERENCE): New. - (mips_va_arg): Use pass_by_reference. - (mips_pass_by_reference): Rename from function_arg_pass_by_reference. - Handle mode sizes correctly. - * config/mips/mips.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): Don't reference pass-by-ref. - * config/mmix/mmix-protos.h (mmix_function_arg_pass_by_reference): Kill. - * config/mmix/mmix.c (TARGET_PASS_BY_REFERENCE): New. - (mmix_pass_by_reference): Rename from - mmix_function_arg_pass_by_reference. - * config/mmix/mmix.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): True. - * config/mn10300/mn10300.c (TARGET_PASS_BY_REFERENCE): New. - (mn10300_pass_by_reference): New. - * config/mn10300/mn10300.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): True. - * config/pa/pa.c (pa_pass_by_reference): New. - (TARGET_PASS_BY_REFERENCE): New. - * config/pa/pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): True. - * config/rs6000/rs6000-protos.h (function_arg_pass_by_reference): Kill. - * config/rs6000/rs6000.c (TARGET_PASS_BY_REFERENCE): New. - (rs6000_pass_by_reference): Rename from function_arg_pass_by_reference. - * config/rs6000/rs6000.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/s390/s390-protos.h (s390_function_arg_pass_by_reference): Kill. - * config/s390/s390.c (TARGET_PASS_BY_REFERENCE): New. - (s390_pass_by_reference): Rename from - s390_function_arg_pass_by_reference. - (s390_function_arg_advance): Don't query pass-by-ref. - (s390_function_arg): Likewise. - (s390_gimplify_va_arg): Use pass_by_reference. - (s390_call_saved_register_used): Likewise. - * config/s390/s390.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/sh/sh.c (TARGET_PASS_BY_REFERENCE): New. - (shcompact_byref, sh_pass_by_reference): New. - * config/sh/sh.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (SHCOMPACT_BYREF): Remove. - * config/sparc/sparc-protos.h (function_arg_pass_by_reference): Kill. - * config/sparc/sparc.c (TARGET_PASS_BY_REFERENCE): New. - (sparc_pass_by_reference): Rename from function_arg_pass_by_reference. - (sparc_gimplify_va_arg): Use pass_by_reference. - * config/sparc/sparc.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/stormy16/stormy16.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * config/v850/v850.c (TARGET_PASS_BY_REFERENCE): New. - (v850_pass_by_reference): New. - * config/v850/v850.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - (FUNCTION_ARG_CALLEE_COPIES): True. - * doc/tm.texi (TARGET_PASS_BY_REFERENCE): Update from - FUNCTION_ARG_PASS_BY_REFERENCE docs. - -2004-07-14 Richard Henderson - Richard Sandiford - - * config/mips/mips-protos.h (mips_va_arg): Delete. - * config/mips/mips.h (EXPAND_BUILTIN_VA_ARG): Delete. - * config/mips/mips.c: Include tree-gimple.h. - (TARGET_GIMPLIFY_VA_ARG_EXPR): Define. - (mips_arg_info): Remove special handling of must_pass_in_stck args. - (mips_gimplify_va_arg_expr): Rewritten from mips_va_arg. - (function_arg_pass_by_reference): Return true if must_pass_in_stack. - -2004-07-13 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_gimplify_va_arg_expr): Swap - arguments for COND_EXPR in big-endian adjustment code. - -2004-07-13 John David Anglin - - * pa-64.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Delete. - * pa.h (ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Modify for hppa64. - * pa32-regs.h (REG_ALLOC_ORDER): Reorder caller-saved registers. - * pa64-regs.h (REG_ALLOC_ORDER): Likewise. - -2004-07-13 Diego Novillo - - PR tree-optimization/16443 - * tree-ssa-alias.c: Add more description for - CALL_CLOBBERED_VARS and ADDRESSABLE_VARS. - * tree-ssa-operands.c (get_asm_expr_operands): Re-order the - clobbering of call-clobbered and addressable variables. If - there are any before aliases have been computed, add them. - -2004-07-13 Diego Novillo - - * tree-optimize.c (execute_todo): Flush DUMP_FILE before - verification. - -2004-07-13 Ulrich Weigand - - * config/s390/s390.c (s390_gimplify_va_arg): Use size_int instead - of build_int_2. Convert both operands of PLUS_EXPR and MULT_EXPR - to the same type. - -2004-07-13 Per Bothner - - * collect2.c (main): Handle --no-demangle and --demangle flags. - -2004-07-13 Sebastian Pop - - * Makefile.in (OBJS-common): Add tree-data-ref.o. - (tree-scalar-evolution.o): Add missing dependences on tree-pass.h flags.h. - (tree-data-ref.o): New rule. - * lambda.h: New file. - * tree-data-ref.c: New file. - * tree-data-ref.h: New file. - * tree.c (int_cst_value, tree_fold_gcd): New functions. - * tree.h (int_cst_value, tree_fold_gcd): Declared here. - -2004-07-13 Eric Botcazou - - PR target/13926 - * config/sparc/sparc-protos.h (output_ubranch): New prototype. - * config/sparc/sparc.c (output_ubranch): New function. - * config/sparc/sparc.md (jump pattern): Use it. - -2004-07-13 Eric Botcazou - - PR target/16494 - * config/sparc/sparc.c (output_cbranch): Properly guard - the code handling far branches with TARGET_V9. - * config/sparc/sparc.md (length attribute): Document the - side-effect of having a length greater or equal to 3. - -2004-07-13 Eric Botcazou - Lloyd Parkes - - PR target/15186 - * config/sparc/sol2-bi.h (LINK_ARCH64_SPEC_BASE): Pass - /usr/ucblib/sparcv9 as -R path when -compat-bsd is specified. - -2004-07-13 Eric Botcazou - Martin Sebor - - PR target/12602 - * doc/invoke.texi (SPARC options): Document -threads - and -pthreads on Solaris. - -2004-07-13 Richard Henderson - - * builtins.c (std_gimplify_va_arg_expr): Handle types passed - by reference. - (ind_gimplify_va_arg_expr): Remove. - * tree.h (ind_gimplify_va_arg_expr): Remove. - * config/pa/pa.c (hppa_gimplify_va_arg_expr): Don't use it. - * config/mmix/mmix.c (mmix_function_arg_pass_by_reference): Allow - argsp to be null. - - * config/arc/arc.c (arc_gimplify_va_arg_expr): Remove. - (TARGET_GIMPLIFY_VA_ARG_EXPR): Remove. - * config/cris/cris.c, config/fr30/fr30.c, config/frv/frv.c, - config/iq2000/iq2000.c, config/m32r/m32r.c, config/mmix/mmix.c, - config/mn10300/mn10300.c, config/v850/v850.c: Similarly. - -2004-07-13 Richard Henderson - - * function.c (pass_by_reference): New. - (assign_parm_find_data_types): Use it. - * calls.c (initialize_argument_information): Likewise. - (emit_library_call_value_1): Likewise. - * expr.h (FUNCTION_ARG_PASS_BY_REFERENCE): Remove. - * function.h (pass_by_reference): Declare. - -2004-07-13 Richard Henderson - - * target-def.h (TARGET_MUST_PASS_IN_STACK): New. - * target.h (struct gcc_target): Add calls.must_pass_in_stack. - * expr.h (MUST_PASS_IN_STACK): Remove. - * system.h (MUST_PASS_IN_STACK): Poison. - * tree.h (must_pass_in_stack_var_size): Declare. - (must_pass_in_stack_var_size_or_pad): Declare. - * calls.c (must_pass_in_stack_var_size): New. - (must_pass_in_stack_var_size_or_pad): Rename from - default_must_pass_in_stack. - * config/alpha/alpha.c (unicosmk_must_pass_in_stack): New. - (TARGET_MUST_PASS_IN_STACK): New. - * config/alpha/unicosmk.h (MUST_PASS_IN_STACK): Remove. - * config/fr30/fr30.c (fr30_must_pass_in_stack): New. - (TARGET_MUST_PASS_IN_STACK): New. - * config/fr30/fr30.h (MUST_PASS_IN_STACK): Remove. - * config/frv/frv.c (frv_must_pass_in_stack): New. - (TARGET_MUST_PASS_IN_STACK): New. - * config/frv/frv.h (MUST_PASS_IN_STACK): Remove. - * config/i386/i386-protos.h (ix86_must_pass_in_stack): Remove. - * config/i386/i386.c (TARGET_MUST_PASS_IN_STACK): New. - (ix86_must_pass_in_stack): Make static. - * config/i386/i386.h (MUST_PASS_IN_STACK): Remove. - * config/ia64/ia64.c (TARGET_MUST_PASS_IN_STACK): New. - * config/ia64/ia64.h (MUST_PASS_IN_STACK): Remove. - * config/m32r/m32r.c (TARGET_MUST_PASS_IN_STACK): New. - * config/m32r/m32r.h (MUST_PASS_IN_STACK): Remove. - * config/mcore/mcore-protos.h (mcore_must_pass_on_stack): Remove. - * config/mcore/mcore.c (TARGET_MUST_PASS_IN_STACK): New. - (mcore_must_pass_on_stack): Remove. - * config/mcore/mcore.h (MUST_PASS_IN_STACK): Remove. - * config/mips/mips.c (TARGET_MUST_PASS_IN_STACK): New. - * config/mips/mips.h (MUST_PASS_IN_STACK): Remove. - * config/pa/pa.c (TARGET_MUST_PASS_IN_STACK): New. - * config/pa/pa.h (MUST_PASS_IN_STACK): Remove. - * config/rs6000/aix.h (MUST_PASS_IN_STACK): Remove. - * config/rs6000/linux64.h (MUST_PASS_IN_STACK): Remove. - * config/rs6000/rs6000.c (rs6000_must_pass_in_stack): New. - (TARGET_MUST_PASS_IN_STACK): New. - * config/sh/sh.c (TARGET_MUST_PASS_IN_STACK): New. - * config/sh/sh.h (MUST_PASS_IN_STACK): Remove. - * config/sparc/sparc.c (TARGET_MUST_PASS_IN_STACK): New. - * config/sparc/sparc.h (MUST_PASS_IN_STACK): Remove. - * config/xtensa/xtensa.c (TARGET_MUST_PASS_IN_STACK): New. - * config/xtensa/xtensa.h (MUST_PASS_IN_STACK): Remove. - * doc/tm.texi (TARGET_MUST_PASS_IN_STACK): Update from - MUST_PASS_IN_STACK. - - * calls.c, function.c, config/alpha/alpha.c, config/alpha/alpha.h, - config/alpha/unicosmk.h, config/alpha/vms.h, config/c4x/c4x.c, - config/cris/cris.h, config/fr30/fr30.c, config/fr30/fr30.h, - config/frv/frv.c, config/i386/i386.c, config/iq2000/iq2000.c, - config/mcore/mcore.c, config/mcore/mcore.h, config/mips/mips.c, - config/mmix/mmix.c, config/mmix/mmix.h, config/rs6000/rs6000.c, - config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, - config/xtensa/xtensa.c: Use target hook. - -2004-07-13 Anthony Heading - - * configure.ac (gcc_cv_as_offsetable_lo10): Fix a typo. - * configure: Rebuilt. - -2004-07-13 Richard Sandiford - - * doc/invoke.texi: Remove documentation for MIPS -mrnames option. - * config/mips/mips.h (mips_reg_names): Don't declare. - (MASK_NAME_REGS): Delete. Shuffle other MASK_* values down. - (TARGET_NAME_REGS): Delete. - (TARGET_SWITCHES): Remove -mrnames. - (REGISTER_NAMES): Initialise with the old contents of mips_reg_names[]. - (ADDITIONAL_REGISTER_NAMES): Remove entries for names mentioned - in REGISTER_NAMES. - * config/mips/mips.c (mips_reg_names, mips_sw_reg_names): Delete. - (override_options): Remove handling of TARGET_NAME_REGS. - -2004-07-13 Richard Sandiford - - * config/mips/mips.h (TARGET_*): Boolify. - -2004-07-12 Nick Clifton - - * config.gcc: Add sh-*-symbianelf target. - * config/sh/sh.c: Add new target macros: - TARGET_ENCODE_SECTION_INFO, TARGET_STRIP_NAME_ENCODING, - TARGET_CXX_IMPORT_EXPORT_CLASS. - (sh_file_start): Create a definition of the .directive section. - (sh_attribute): Add dllimport and dllexport attributes. - * config/sh/symbian-pre.h: New file. - * config/sh/symbian-post.h: New file. - * config/sh/symbian.c: New file. Contains Symbian specific - functions. - * config/sh/sh-protos.h: Add prototypes for new functions - provided by symbian.c. - * config/sh/t-symbian: New file. - * doc/extend.texi: Document support for dllimport and dllexport - attributes by the sh-symbianelf target. - -2004-07-12 James E Wilson - - * Makefile.in (AR): Use @AR@ not ar. - (NM): New. - (AR_FOR_TARGET): Use $(AR) not ar for native. - (NM_FOR_TARGET): Use $(NM) not nm for native. - * configure.ac: Add AC_CHECK_PROG calls for NM and AR. - * configure: Regenerate. - -2004-07-12 David S. Miller - - * config/sparc/sparc.md (ashlsi3): Eliminate const 1 - special case. - (ashldi3_sp64): Likewise. - -2004-07-12 John David Anglin - - PR target/16477 - * pa.c (function_arg): Update comment. - * pa.h (BLOCK_REG_PADDING): Define. - -2004-07-12 Zdenek Dvorak - - PR tree-optimization/16461 - * tree-tailcall.c (independent_of_stmt_p): Handle non-SSA name - arguments of phi nodes. - -2004-07-12 Devang Patel - - * doc/invoke.texi (Darwin Options): Document -gused and -gfull. - -2004-07-12 Steve Ellcey - - * function.c (expand_function_start): Ensure r_save is in Pmode. - * calls.c (prepare_call_address): Ensure static_chain_value is - in Pmode. - * builtins.c (expand_builtin_nonlocal_goto): Ensure r_label and - r_save_area are in Pmode. - * config/ia64/ia64.c (ia64_initialize_trampoline): Ensure addr, - fnaddr, and static_chain are in Pmode. - -2004-07-12 Vladimir Makarov - - PR target/16445 - * config/ia64/ia64.c (bundling): Don't count ignored insns. - -2004-07-12 Richard Henderson - - * target.h (struct gcc_target): Move gimplify_va_arg_expr - next to build_builtin_va_list. - * target-def.h (TARGET_GIMPLIFY_VA_ARG_EXPR): Update to match. - * builtins.c (gimplify_va_arg_expr): Likewise. - * gimplify.c (copy_if_shared_r): Likewise. - -2004-07-12 Alexandre Oliva - - * passes.c (rest_of_decl_compilation): Don't defer call of - assemble_variable if its DECL_RTL is already set. - -2004-07-12 Sebastian Pop - - * cfgloop.h (struct loop): Add nb_iterations field. - (current_loops): Declare. - * tree-chrec.c (chrec_not_analyzed_yet, - chrec_dont_know, chrec_known, count_ev_in_wider_type, - chrec_contains_symbols_defined_in_loop): Remove the temporary - hooks. - * tree-flow-inline.h (loop_containing_stmt): New function. - * tree-scalar-evolution.c: Add implementation. - * tree-scalar-evolution.h: Add declarations. - -2004-07-12 Vladimir Makarov - - PR rtl-optimization/15921 - * Makefile.in (global.o): Add recog.h. - - * global.c (recog.h): Add the include-clause. - (bb_info): New member earlyclobber. - (allocate_bb_info, free_bb_info): Initialize/finish the new - member. - (earlyclobber_regclass, earlyclobber_regclass_length): The new - global variables. - (check_earlyclobber, regclass_intersect, - mark_reg_use_for_earlyclobber, mark_reg_use_for_earlyclobber_1): - New functions. - (calculate_local_reg_bb_info): Calculate value of earlyclobber. - (make_accurate_live_analysis): Modify pavin. - -2004-07-12 Diego Novillo - - * tree-cfg.c (find_taken_edge): Statically compute the truth - value of a predicate comparing an SSA_NAME to itself. - -2004-07-12 Roger Sayle - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Indicate that the - rs6000 doesn't have shift-and-add or shift-and-sub instructions - by returning the cost of a multiplication plus an addition. - -2004-07-12 Paolo Bonzini - - PR tree-optimization/14107 - * gimplify.c (gimplify_return_expr): Accept a - RETURN_EXPR with an error argument. - * tree-optimize.c (init_tree_optimization_passes): - Run pass_warn_function_return at -O0. - -2004-07-12 Roger Sayle - - * doc/invoke.texi: Correct -fasynchronous-unwind-tables option - index entry. - -2004-07-12 Richard Sandiford - - * config/mips/mips.c (mips_use_dfa_pipeline_interface): Delete. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/mips/3000.md: Add copyright notice. Remove automota and - function units; use generic ones instead. Only define reservations - for things that are different from generic.md. Extend each clause - to include r3900. - * config/mips/{4000,4100,4300,4600,5000,6000,generic}.md: New files. - * config/mips/mips.md: Include them. Remove define_function_units. - (alu, imuldiv): New automata and units. - -2004-07-12 Ben Elliston - - * doc/invoke.texi (Optimize Options): Document -frename-registers - not being enabled by default at -O3. - -2004-07-11 Roger Sayle - - * fold-const.c (fold) : Canonicalize X + -C as X - C for - floating point additions, to keep real immediate constant positive. - : For floating point subtractions, only transform X - -C - into X + C, and leave positive real constants as X - C. - -2004-07-11 John David Anglin - - * pa.c (hppa_gimplify_va_arg_expr): Remove comment. - -2004-07-11 Zdenek Dvorak - - PR tree-optimization/15654 - * tree-tailcall.c (eliminate_tail_call): Remove unreachable code. - -2004-07-11 Roger Sayle - - * builtins.c (fold_builtin_fputs): Don't bother converting the - return type to integer_type_node, as we've already checked that - the result will be ignored. - - * tree-eh.c (tree_could_trap_p): Add support for -ftrapv such - that signed addition, subtraction, multiplication, division, - remainder, negation and absolute value may potentially trap. - - * fold-const.c (fold_ignored_result): New function to strip - non-side-effecting tree nodes from an expression whose result - is ignored. - (fold_convert): Call fold_ignored_result when casting a value - to VOID_TYPE. - (omit_one_operand): Call fold_ignored_result on the "omitted" - operand when building a COMPOUND_EXPR. - (pedantic_omit_one_operand): Likewise. - * tree.h (fold_ignored_result): Prototype here. - * tree-ssa-ccp.c (ccp_fold_builtin): Call fold_ignored_result - when we're going to ignore the result. - -2004-07-11 Richard Henderson - - PR tree-opt/16383 - * tree-ssa-ccp.c (fold_stmt_r): Split out... - * tree.c (fields_compatible_p, find_compatible_field): ... new. - * tree.h (fields_compatible_p, find_compatible_field): Declare. - * tree-sra.c (sra_hash_tree): Hash fields by offset. - (sra_elt_eq): Use fields_compatible_p. - (generate_one_element_ref): Use find_compatible_field. - -2004-07-11 Richard Henderson - - PR tree-opt/16422 - * tree-sra.c (generate_one_element_init): New. - (generate_element_init): Use it. - (scalarize_init): Push/pop gimplify context around it. - (find_new_referenced_vars_1, find_new_referenced_vars): New. - * gimplify.c (gimplify_expr): Allow SSA_NAME. - -2004-07-11 Roger Sayle - - * rtlanal.c (insn_rtx_cost): New function, moved and renamed from - combine.c's combine_insn_cost. - * rtl.h (insn_rtx_cost): Prototype here. - * combine.c (combine_insn_cost): Delete function. - (combine_validate_cost): Update callers of combine_insn_cost to - call insn_rtx_cost instead. - (combine_instructions): Likewise. Use NONJUMP_INSN_P to avoid - requesting the rtx_cost of call and/or jump instructions. - - * ifcvt.c (total_bb_rtx_cost): Use insn_rtx_cost instead of calling - rtx_cost directly. Don't request/use the cost of call or jump - instructions. Return -1 if the cost of any instruction can't be - determined (or the BB contains a function call). - (find_if_case_1): Abort transformation if total_bb_rtx_cost returns - -1 (i.e. can't determine the cost of any instruction or the basic - block contains a subroutine call). - (find_if_case_2): Likewise. - -2004-07-11 Roger Sayle - - * rs6000.c (struct processor_costs): Change semantics of fields to - include the COST_N_INSNS scaling, and update all initializers. - (rs6000_rtx_costs): Don't use COSTS_N_INSNS on rs6000_cost fields. - Use COSTS_N_INSNS(1) for NOT, SIGN_EXTEND, ZERO_EXTEND and COMPARE. - Use rs6000_cost->fp for both FLOAT_TRUNCATE and UNSPEC_FRSP. When - optimizing for size, use COSTS_N_INSNS(1) for CALL and IF_THEN_ELSE. - -2004-07-11 Joseph S. Myers - - * LANGUAGES: Remove obsolete information. - -2004-07-11 Ulrich Weigand - - * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): For SIGSEGV and - SIGBUS signal frames, the PSW address points *to* the faulting - instruction, not after it. - -2004-07-11 Ulrich Weigand - - * config/s390/s390.c (legitimize_tls_address): Handle constant offsets - added to TLS symbol addresses. - -2004-07-11 Richard Henderson - - * expmed.c (init_expmed): Use stack-local structures for - temporary rtl. Don't recognize shifts. - -2004-07-11 Richard Henderson - - * expr.c (store_expr): Don't fiddle subreg promotion for types - with precision smaller than the mode. - -2004-07-11 Joseph S. Myers - - * tree.h (all_types_permanent): Remove. - -2004-07-11 Joseph S. Myers - - * langhooks.h (estimate_num_insns, pushlevel, poplevel, set_block, - maybe_build_cleanup, update_decl_after_saving): Remove hooks. - * langhooks.c (lhd_clear_binding_stack): Remove. - * langhooks-def.h (lhd_clear_binding_stack, - LANG_HOOKS_MAYBE_BUILD_CLEANUP, - LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, - LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, LANG_HOOKS_PUSHLEVEL, - LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. - (LANG_HOOKS_CLEAR_BINDING_STACK): Define to lhd_do_nothing. - * system.h (LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS, - LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_SET_BLOCK, - LANG_HOOKS_MAYBE_BUILD_CLEANUP, - LANG_HOOKS_UPDATE_DECL_AFTER_SAVING, LANG_HOOKS_POPLEVEL): Poison. - * tree.h (poplevel): Don't declare. - * c-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, LANG_HOOKS_PUSHLEVEL, - LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): Remove. - * objc/objc-lang.c (LANG_HOOKS_CLEAR_BINDING_STACK, - LANG_HOOKS_PUSHLEVEL, LANG_HOOKS_POPLEVEL, LANG_HOOKS_SET_BLOCK): - Remove. - -2004-07-11 Joseph S. Myers - - PR tree-optimization/16437 - * c-common.c (shorten_compare): Don't mark result of conversion to - narrower signed type as overflowing. - * fold-const.c (decode_field_reference): Determine whether - signedness comes from outer type using precision rather than size. - -2004-07-11 Phil Edwards - - * configure.ac: Alphabetize --enable-checking list, add - missing valgrind entry. - * configure: Regenerate. - -2004-07-11 Phil Edwards - - * doc/install.texi (Testing): Fix syntax in "make check" example. - -2004-07-10 James E Wilson - - * config/gofast.h (gofast_maybe_init_libfuncs): Use SImode for litodp. - -2004-07-10 Zdenek Dvorak - - PR rtl-optimization/16001 - * loop-iv.c (iv_number_of_iterations): Prevent copy propagation in - niter_expr. - -2004-07-10 Geoffrey Keating - - * config/darwin.h (LINK_COMMAND_SPEC): Don't call c++filt. - -2004-07-10 Steve Kargl - James Morrison - - * doc/contrib.texi (Contributors): Add gfortran contributors and - fix a couple of typos. - -2004-07-10 Zdenek Dvorak - - PR rtl-optimization/15387 - * calls.c (check_sibcall_argument_overlap_1): Handle pointers - to incoming args space correctly. - -2004-07-10 John David Anglin - - * pa.c (output_indirect_call): Only use %r2 as the link register in - indirect calls with the long PA 2.0 pc-relative branch. - -2004-07-10 Daniel Jacobowitz - - * config/i386/i386.c (override_options): Pick a 64-bit CPU - for the default tuning if TARGET_64BIT. - -2004-07-10 Richard Henderson - - * builtins.c (std_gimplify_va_arg_expr): Widen align/boundary - to HOST_WIDE_INT. Fold pad-args-down arithmetic. - -2004-07-10 Jakub Jelinek - - * expr.h (store_bit_field, extract_bit_field): Remove last argument. - * expmed.c (store_bit_field, extract_bit_field): Remove last - argument. - * builtins.c (expand_builtin_signbit): Adjust callers. - * optabs.c (expand_vector_binop, expand_vector_unop): Likewise. - * calls.c (store_unaligned_arguments_into_pseudos): Likewise. - * ifcvt.c (noce_emit_move_insn): Likewise. - * stmt.c (expand_return): Likewise. - * expr.c (emit_group_load, emit_group_store, copy_blkmode_from_reg, - store_field, expand_expr_real_1): Likewise. - -2004-07-10 Richard Henderson - - * builtins.c (std_gimplify_va_arg_expr): Fix borked BIT_AND_EXPR. - -2004-07-09 Mike Stump - - * config/darwin.c (no_dead_strip): Add. - (HAVE_DEAD_STRIP): Add. - (darwin_emit_unwind_label): Ensure that we don't dead code strip - the .eh label. - -2004-07-09 Zdenek Dvorak - - * tree-ssa-loop-im.c: New file. - * Makefile.in (tree-ssa-loop-im.o): Add. - * cfgloop.c (superloop_at_depth): New function. - * cfgloop.h (superloop_at_depth): Declare. - * common.opt (ftree-lim): New flag. - * expr.c (array_ref_up_bound): New function. - * params.def (PARAM_LIM_EXPENSIVE): New parameter. - * timevar.def (TV_LIM): New timevar. - * tree-dfa.c (compute_immediate_uses): Respect TDFA_USE flags when - computing immediate uses of a phi node. - * tree-flow.h (struct tree_ann_common_d): Add aux field. - (loop_commit_inserts, for_each_index, tree_ssa_lim): Declare. - * tree-optimize.c (init_tree_optimization_passes): Add pass_lim. - * tree-pass.h (pass_lim): Declare. - * tree-ssa-loop.c (tree_ssa_loop_im, gate_tree_ssa_loop_im): New - functions. - (pass_lim): New pass structure. - * tree-eh.c (tree_could_trap_p): Handle ARRAY_REFs correctly. - * tree.c (in_array_bounds_p): New function. - * tree.h (TREE_THIS_NOTRAP): Define also for ARRAY_REFs. - (in_array_bounds_p, array_ref_up_bound): Declare. - * doc/invoke.texi (-ftree-lim, --param lim-expensive): Document. - * doc/passes.texi (tree-ssa-loop-im.c): Document. - -2004-07-09 Richard Henderson - - * builtins.c (expand_builtin_stpcpy): Don't modify len. - - * tree-ssa-ccp.c (ccp_fold_builtin): Strip conversion exprs - with prejudice. - -2004-07-10 Kelley Cook - - * flags.h: Delete redundant prototypes that are being generated - in options.h from common.opt. - * common.opt: Add in the expository comments formerly in flags.h. - -2004-07-09 Jan Beulich - - * config/i386/i386.c (init_cumulative_args): Set mmx/sse registers - available for use only when TARGET_MMX/_SSE is set, and check for - variable argument function if any register count is non-zero. - (function_arg): Correctly suppress repeated warnings for passing SSE - vectors are arguments without SSE enabled. - (ix86_function_arg_boundary): Without SSE enabled, the use of what - would be SSE register modes does no longer influence the alignment. - -2004-07-09 Richard Henderson - - * builtins.c (std_gimplify_va_arg_expr): Deny ARGS_GROW_DOWNWARD. - Always align upward to arg boundary. Use size_in_bytes/round_up. - Maintain type-correctness of constants. - * stor-layout.c (round_up, round_down): Special-case powers of 2. - -2004-07-09 David S. Miller - - * config/sparc/sparc.c (*_costs): Scale instruction costs - by COSTS_N_INSNS. - (sparc_rtx_costs): Adjust as appropriate. - -2004-07-09 Jan Beulich - - * config/i386/mm3dnow.h: New. - * config.gcc: Add mm3dnow.h to extra_headers for i?86 and x86-64. - -2004-07-09 Richard Henderson - - * simplify-rtx.c (simplify_const_relational_operation): Only - look at bounds of scalar integers. - -2004-07-09 Jan Beulich - - * config/i386/i386.md (sse2_clflush): Use correct operand for clflush. - -2004-07-09 Andrew Pinski - - * objc/objc-act.c (build_module_descriptor): Mark UOBJC_MODULES_decl as - always referenced. - (synth_forward_declarations): Likewise for UOBJC_CLASS_decl and - UOBJC_METACLASS_decl. - -2004-07-09 James E Wilson - - PR target/16364 - * config/ia64/ia64.c (ia64_function_arg): For a single element HFA, - do return a parallel if hfa_mode == XFmode and mode == TImode. - -2004-07-09 Jan Beulich - - * c-typeck.c (build_unary_op): include VECTOR_TYPE in set of codes - permissible for unary plus. - -2004-07-09 Jan Beulich - - * builtin-types.def (BT_UINT): Rename from BT_UNSIGNED. - (BT_FN_UINT): Rename from BT_FN_UNSIGNED. - (BT_FN_PTR_UINT): Rename from BT_FN_PTR_UNSIGNED. - (BT_ULONG, BT_ULONGLONG, BT_UINTMAX, BT_FN_INT_UINT, BT_FN_INT_ULONG, - BT_FN_INT_ULONGLONG, BT_FN_INT_INTMAX, BT_FN_INT_UINTMAX): New. - * builtins.def (BUILTIN_CLZxxx, BUILTIN_CTXxxx, BUILTIN_PARITYxxx, - BUILTIN_POPCOUNTxxx): Arguments are unsigned. - (BUILTIN_xxxIMAX): New. - * builtins.c (expand_builtin): Handle BUILT_IN_FFSIMAX, - BUILT_IN_CLZIMAX, BUILT_IN_CTZIMAX, BUILT_IN_POPCOUNIMAX, and - BUILT_IN_PARITYIMAX. - -2004-07-09 David S. Miller - - * config/sparc/sparc.h (processor_costs): Define. - (sparc_costs): Declare. - * config/sparc/sparc.c (cypress_costs, supersparc_costs, - hypersparc_costs, sparclet_costs, ultrasparc_costs, - ultrasparc3_costs): New. - (sparc_override_options): Set sparc_costs as appropriate. - (sparc_rtx_costs): Use sparc_costs instead of messy - conditionals. - -2004-07-09 Steven Bosscher - - * doc/md.texi (Processor pipeline description): Mention that - the old pipeline description is deprecated. - - * config/rs6000/7450.md (automaton ppc7450): Split up, move - mciu_7450 function unit to... - (automaton ppc7450mciu): ...new automaton. - - * haifa-sched.c (insert_schedule_bubbles_p): Remove. - (schedule_block): Don't consider inserting bubbles. - (sched_init): Don't initialize DFA bubbles. - * target-def.h (TARGET_SCHED_INIT_DFA_BUBBLES, - TARGET_SCHED_DFA_BUBBLE): Remove. - * target.h (init_dfa_bubbles, dfa_bubble): Remove hooks. - * doc/tm.texi (TARGET_SCHED_INIT_DFA_BUBBLES, - TARGET_SCHED_DFA_BUBBLE): Remove documentation. - - * stmt.c (conditional_context): Remove prototype. - * tree.h (conditional_context): Remove. - * tree-cfg.c (pre_insert_on_edge): Remove. - - * c-common.h (c_expand_asm_operands): Remove prototype. - * c-typeck.c (c_expand_asm_operands): Remove. - -2004-07-09 Jan Beulich - - * config/i386/i386.c (classify_argument): Treat V1xx modes the same as - their base modes. CTImode, TCmode, and XCmode must be passed in memory. - TFmode (__float128) must be is an SSE/SSEUP pair. V2SImode, V4HImode, - and V8QI are class SSE. All sufficiently small remaining vector modes - must be passed in one or two integer registers. - (ix86_libcall_value): TFmode must be returned in xmm0, XCmode must be - returned in memory. - (bdesc_2arg, ix86_init_mmx_sse_builtins): __builtin_ia32_pmuludq and - __builtin_ia32_pmuludq128 have non-uniform argument and return types - and must thus be handled explicitly. - * config/i386/i386.md (*movdi_1_rex64): Add cases for moving between - MMX and XMM regs. - (movv8qi_internal, movv4hi_internal, movv2si_internal, - movv2sf_internal): Permit moving between MMX and XMM registers (since - MMX areguments and return values are passed in XMM registers). - (sse2_umulsidi3): Correct type and mode. - -2004-07-09 Richard Henderson - - * tree-cfg.c (dump_cfg_stats): Fix 64-bit format mismatch errors. - -2004-07-09 Eric Christopher - - * config/rs6000/40x.md: Split into two automatons. - -2004-07-09 Zack Weinberg - Andrew Pinski - - * c-opts.c (c_common_post_options): Force unit-at-a-time mode - on when we have more than one input file. - (c_common_parse_file): Restore loop over all input files. - Clarify diagnostic for -dy when YYDEBUG wasn't defined. - - * c-decl.c (set_type_context): New function. - (pop_scope): Use it to set context of types. When we - encounter a TYPE_DECL, set the context of the attached type too. - (pop_file_scope): Don't call cpp_undef_all here. - (diagnose_mismatched_decls): Do not complain about a second - definition of an 'extern inline' function if it's not in the - same translation unit. Do not complain about inline - declaration after use if the use was in a different - translation unit. - (merge_decls): Don't clobber olddecl's DECL_CONTEXT. - (pushdecl): Do not put DECL_EXTERNAL, !TREE_PUBLIC decls in - the external scope. - (pushdecl_top_level): Likewise. - (grokdeclarator): Clarify what is going on with setting - DECL_EXTERNAL on function types, a little. - (c_write_global_declarations): Don't do anything if - -fsyntax-only or errors have been encountered. - -2004-07-09 Zack Weinberg - - * vec.c, vec.h (vec_assert_fail): Use unsigned int for LINE argument. - -2004-07-09 John David Anglin - - PR target/16459 - * pa.c (output_indirect_call): Use %r2 as the link register when - calling $$dyncall with a pc-relative branch. - -2004-07-08 Gerald Pfeifer - - * doc/install.texi (Binaries): Mention OpenPKG. - -2004-07-09 Diego Novillo - - Fix PR tree-optimization/15555 - * tree-dfa.c (dump_variable): If the variable is a pointer - SSA_NAME, also dump its points-to information. - * tree-flow.h (struct ptr_info_def): Add field - is_dereferenced. - (dump_points_to_info_for): Declare. - (debug_points_to_info_for): Declare. - * tree-optimize.c (init_tree_optimization_passes): Add a - second alias analysis pass after DOM2. - Move pass_del_pta to a later spot. - * tree-ssa-alias.c (compute_points_to_and_addr_escape): Do not - create a name tags when we find a dereferenced pointer. Just - mark the pointer dereferenced. - (collect_points_to_info_for): Move code to clear points-to - information to create_name_tags. - (create_name_tags): New function. - (compute_flow_sensitive_aliasing): Call it. - (setup_pointers_and_addressables): Mark type tags for renaming - here instead of ... - (create_memory_tag): ... here. - (merge_pointed_to_info): Do not merge PT_MALLOC attributes. - (dump_points_to_info_for): Declare extern. - (debug_points_to_info_for): New function. - -2004-07-09 Paolo Bonzini - - * config/arc/arc.md: Switch to DFA-based scheduler description. - * config/arc/arc.c: Switch to DFA-based scheduler description. - -2004-07-09 Richard Earnshaw - - * arm/unknown-elf.h (TARGET_DEFAULT): Don't require an APCS frame - pointer. - -2004-07-09 Richard Henderson - - * config/xtensa/xtensa-protos.h (xtensa_va_arg): Remove. - * config/xtensa/xtensa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (xtensa_gimplify_va_arg_expr): Rewrite from xtensa_va_arg. - * config/xtensa/xtensa.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/v850/v850-protos.h (v850_va_arg): Remove. - * config/v850/v850.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (v850_gimplify_va_arg_expr): Rewrite from v850_va_arg. - * config/v850/v850.h (EXPAND_BUILTIN_VA_ARG): Remove. - (FUNCTION_ARG_PASS_BY_REFERENCE): Handle variable size types. - (FUNCTION_ARG_CALLEE_COPIES): Use FUNCTION_ARG_PASS_BY_REFERENCE. - -2004-07-09 Richard Earnshaw - - PR target/12133 - * arm.c (arm_legitimate_index_p) Allow DFmode for soft-float - and DImode to use +/-4k offset. - -2004-07-09 Richard Henderson - - * config/stormy16/stormy16-protos.h (xstormy16_expand_builtin_va_arg): - Remove. - * config/stormy16/stormy16.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (xstormy16_gimplify_va_arg_expr): Rewrite from - xstormy16_expand_builtin_va_arg. - * config/stormy16/stormy16.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/sparc/sparc-protos.h (sparc_va_arg): Remove. - * config/sparc/sparc.c (sparc_gimplify_va_arg): Mark static. - - * config/sh/sh-protos.h (sh_va_arg): Remove. - * config/sh/sh.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (sh_gimplify_va_arg_expr): Rewrite from sh_va_arg. - * config/sh/sh.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/pa/pa-protos.h (hppa_va_arg): Remove. - * config/pa/pa.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (hppa_gimplify_va_arg_expr): Rewrite from hppa_va_arg. - * config/pa/pa.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/mn10300/mn10300-protos.h (mn10300_va_arg): Remove. - * config/mn10300/mn10300.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (mn10300_gimplify_va_arg_expr): Rewrite from mn10300_va_arg. - * config/mn10300/mn10300.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-07-09 Eric Botcazou - - * config/sparc/sparc.md (return): Rewrite length formula. - * config/sparc/sparc.c (output_return): Pass 1 as 5th - argument to final_scan_insn when in a delay slot. - (output_sibcall): Likewise. - -2004-07-09 Richard Earnshaw - - * arm.c (arm_cpp_interwork): New variable. - (arm_override_options): Set it if TARGET_INTERWORK was on the command - line. - * arm.h (arm_cpp_interwork): Declare it. - (TARGET_CPU_CPP_BUILTINS): Use it to control definition of - __THUMB_INTERWORK__ in the preprocessor. - -2004-07-09 Nathan Sidwell - - * vec.h (VEC_T_alloc): Fix MEM_STAT_DECL pasto. - -2004-07-09 Eric Botcazou - - PR target/16416 - * config/sparc/sol2-bi.h (OPTION_DEFAULT_SPECS): New macro. - Override default settings to account for -m32 and -m64. - -2004-07-08 Randolph Chung - - * pa32-linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. - -2004-07-09 Alexandre Oliva - - * builtins.c (fold_builtin_strncpy): Make sure len is a constant - before comparing it as such. - -2004-07-08 Richard Henderson - - * builtins.c (std_gimplify_va_arg_expr): Hoist valist into a - temporary. Use bit arithmetic to align. - -2004-07-08 Jerry Quinn - - * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p, - nonlocal_set_p, init_alias_analysis): Use, LABEL_P, JUMP_P, CALL_P, - NONJUMP_INSN_P, INSN_P, NOTE_P, BARRIER_P. - * bb-reorder.c (mark_bb_for_unlikely_executed_section, - add_labels_and_missing_jumps, find_jump_block, - fix_crossing_unconditional_branches, add_reg_crossing_jump_notes): - Likewise. - * bt-load.c (btr_referenced_p, compute_defs_uses_and_gen, - link_btr_uses, move_btr_def): Likewise. - * builtins.c (expand_builtin_longjmp, expand_builtin_nonlocal_goto, - expand_builtin_expect_jump): Likewise. - * caller-save.c (save_call_clobbered_regs, insert_one_insn): Likewise. - * calls.c (expand_call, emit_library_call_value_1): Likewise. - * cfganal.c (forwarder_block_p): Likewise. - * cfgbuild.c (inside_basic_block_p, count_basic_blocks, - make_label_edge, rtl_make_eh_edge, make_edges, find_basic_blocks_1, - find_bb_boundaries): Likewise. - * cfgcleanup.c (try_simplify_condjump, try_forward_edges, - merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps, insns_match_p, - flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, - try_optimize_cfg): Likewise. - * cfgexpand.c (expand_block, construct_exit_block): Likewise. - * cfglayout.c (skip_insns_after_block, label_for_bb, - record_effective_endpoints, insn_locators_initialize, - fixup_reorder_chain, update_unlikely_executed_notes): Likewise. - * cfgmainloop.c (create_loop_notes): Likewise. - * cfgrtl.c (delete_insn, delete_insn_chain, - create_basic_block_structure, rtl_delete_block, free_bb_for_insn, - update_bb_for_insn, rtl_merge_blocks, rtl_can_merge_blocks, - block_label, try_redirect_by_replacing_jump, last_loop_beg_note, - redirect_branch_edge, force_nonfallthru_and_redirect, - rtl_tidy_fallthru_edge, back_edge_of_syntactic_loop_p, - rtl_split_edge, commit_one_edge_insertion, print_rtl_with_bb, - update_br_prob_note, rtl_verify_flow_info_1, rtl_verify_flow_info, - purge_dead_edges, cfg_layout_redirect_edge_and_branch, - cfg_layout_delete_block, cfg_layout_can_merge_blocks_p, - cfg_layout_merge_blocks, rtl_block_ends_with_call_p, - need_fake_edge_p, rtl_flow_call_edges_add): Likewise. - * combine.c (combine_instructions, can_combine_p, try_combine, - find_split_point, record_dead_and_set_regs, reg_dead_at_p, - distribute_notes, distribute_links, insn_cuid): Likewise. - * cse.c (fold_rtx, cse_insn, cse_around_loop, - invalidate_skipped_block, cse_set_around_loop, - cse_end_of_basic_block, cse_main, cse_basic_block, - cse_condition_code_reg): Likewise. - * cselib.c (cselib_process_insn): Likewise. - * ddg.c (create_ddg): Likewise. - * df.c (df_insn_refs_record, df_bb_rd_local_compute, df_insns_modify): - Likewise. - * dwarf2out.c (dwarf2out_stack_adjust, dwarf2out_frame_debug, - gen_label_die, dwarf2out_var_location): Likewise. - * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn, - next_insn, previous_insn, next_nonnote_insn, prev_nonnote_insn, - last_call_insn, active_insn_p, next_label, prev_label, - link_cc0_insns, next_cc0_user, try_split, add_insn_after, - add_insn_before, remove_insn, add_function_usage_to, - reorder_insns, find_line_note, remove_unnecessary_notes, - emit_insn_after_1, classify_insn): Likewise. - * except.c (convert_from_eh_region_ranges_1, emit_to_new_bb_before, - connect_post_landing_pads, sjlj_mark_call_sites, - sjlj_emit_function_enter, sjlj_emit_function_exit, reachable_handlers, - can_throw_internal, can_throw_external, set_nothrow_function_flags, - convert_to_eh_region_ranges): Likewise. - * explow.c (optimize_save_area_alloca): Likewise. - * expr.c (expand_expr_real): Likewise. - * final.c (insn_current_reference_address, compute_alignments, - shorten_branches, final, scan_ahead_for_unlikely_executed_note, - final_scan_insn, output_asm_label, leaf_function_p): Likewise. - * flow.c (first_insn_after_basic_block_note, delete_dead_jumptables, - propagate_block_delete_insn, propagate_one_insn, - init_propagate_block_info, propagate_block, libcall_dead_p, - mark_set_1, attempt_auto_inc, find_auto_inc, try_pre_increment): - Likewise. - * function.c (instantiate_virtual_regs, reorder_blocks_1, - expand_function_start, expand_function_end, contains, - thread_prologue_and_epilogue_insns, - reposition_prologue_and_epilogue_notes): Likewise. - * gcse.c (constprop_register, bypass_conditional_jumps, - insert_insn_end_bb, gcse_after_reload): Likewise. - * genemit.c (gen_expand, gen_split): Likewise. - * genpeep.c (gen_peephole, main): Likewise. - * global.c (build_insn_chain): Likewise. - * graph.c (node_data, print_rtl_graph_with_bb): Likewise. - * haifa-sched.c (unlink_other_notes, unlink_line_notes, - get_block_head_tail, no_real_insns_p, rm_line_notes, save_line_notes, - restore_line_notes, rm_redundant_line_notes, rm_other_notes, - ok_for_early_queue_removal, set_priorities, sched_init): Likewise. - * ifcvt.c (count_bb_insns, first_active_insn, last_active_insn, - cond_exec_process_insns, end_ifcvt_sequence, noce_process_if_block, - merge_if_block, block_jumps_and_fallthru_p, find_if_block, - dead_or_predicable): Likewise. - * integrate.c (try_constants): Likewise. - * jump.c (rebuild_jump_labels, cleanup_barriers, - purge_line_number_notes, init_label_info, mark_all_labels, - squeeze_notes, get_label_before, get_label_after, - reversed_comparison_code_parts, simplejump_p, pc_set, - returnjump_p, onlyjump_p, follow_jumps, mark_jump_label, - delete_barrier, delete_prior_computation, delete_computation, - delete_related_insns, delete_for_peephole, redirect_jump): - Likewise. - * lcm.c (optimize_mode_switching): Likewise. - * local-alloc.c (validate_equiv_mem, update_equiv_regs, block_alloc): - Likewise. - * loop-doloop.c (doloop_valid_p, doloop_optimize): Likewise. - * loop-invariant.c (find_exits, find_invariants_bb): Likewise. - * loop-iv.c (simplify_using_assignment): Likewise. - * loop.c (compute_luids, loop_optimize, scan_loop, libcall_other_reg, - libcall_benefit, skip_consec_insns, move_movables, prescan_loop, - find_and_verify_loops, labels_in_range_p, for_each_insn_in_loop, - loop_bivs_init_find, strength_reduce, check_insn_for_bivs, - check_insn_for_givs, check_final_value, update_giv_derive, - basic_induction_var, product_cheap_p, check_dbra_loop, - loop_insn_first_p, last_use_this_basic_block, - canonicalize_condition, get_condition, loop_regs_scan, load_mems, - try_copy_prop, LOOP_BLOCK_NUM, loop_dump_aux): Likewise. - * modulo-sched.c (doloop_register_get, find_line_note, sms_schedule, - sms_schedule_by_order): Likewise. - * optabs.c (emit_no_conflict_block, emit_libcall_block): Likewise. - * postreload.c (reload_cse_simplify_operands, reload_combine, - reload_cse_move2add): Likewise. - * predict.c (can_predict_insn_p, estimate_probability, - expected_value_to_br_prob, process_note_predictions): Likewise. - * print-rtl.c (print_rtx, print_rtl, print_rtl_single): Likewise. - * profile.c (branch_prob): Likewise. - * ra-build.c (live_out_1, livethrough_conflicts_bb, - detect_webs_set_in_cond_jump): Likewise. - * ra-debug.c (ra_print_rtx_object, ra_debug_insns, - ra_print_rtl_with_bb): Likewise. - * ra-rewrite.c (insert_stores, rewrite_program2): Likewise. - * recog.c (next_insn_tests_no_inequality, find_single_use, - split_all_insns, peephole2_optimize, if_test_bypass_p): Likewise. - * reg-stack.c (next_flags_user, record_label_references, - emit_swap_insn, swap_rtx_condition, subst_stack_regs, - compensate_edge, convert_regs_1): Likewise. - * regclass.c (scan_one_insn): Likewise. - * regmove.c (optimize_reg_copy_1, optimize_reg_copy_2, fixup_match_2, - regmove_optimize, fixup_match_1, single_set_for_csa, - combine_stack_adjustments_for_block): Likewise. - * regrename.c (build_def_use, copyprop_hardreg_forward_1): Likewise. - * reload.c (find_reloads, find_reloads_address_1, subst_reloads, - find_equiv_reg): Likewise. - * reload1.c (reload, calculate_needs_all_insns, set_label_offsets, - reload_as_needed, emit_input_reload_insns, do_output_reload, - delete_output_reload, delete_address_reloads_1, fixup_abnormal_edges): - Likewise. - * reorg.c (find_end_label, emit_delay_sequence, - delete_from_delay_slot, delete_scheduled_jump, optimize_skip, - get_jump_flags, rare_destination, mostly_true_jump, - try_merge_delay_insns, redundant_insn, own_thread_p, - fill_simple_delay_slots, fill_slots_from_thread, - fill_eager_delay_slots, relax_delay_slots, make_return_insns, - dbr_schedule): Likewise. - * resource.c (find_basic_block, next_insn_no_annul, - find_dead_or_set_registers, mark_target_live_regs): Likewise. - * rtl.h (RTX_PREV): Likewise. - * rtlanal.c (global_reg_mentioned_p, no_labels_between_p, - no_jumps_between_p, reg_used_between_p, reg_referenced_between_p, - reg_set_p, find_last_value, dead_or_set_regno_p, find_reg_fusage, - find_regno_fusage, pure_call_p, replace_label, rtx_referenced_p_1, - tablejump_p, computed_jump_p, insns_safe_to_move_p, - find_first_parameter_load, can_hoist_insn_p): Likewise. - * sched-deps.c (get_condition, add_dependence, sched_analyze_2, - sched_analyze_insn, sched_analyze, add_forward_dependence): Likewise. - * sched-ebb.c (fix_basic_block_boundaries, add_deps_for_risky_insns, - schedule_ebbs): Likewise. - * sched-rgn.c (is_cfg_nonregular, find_conditional_protection, - is_conditionally_protected, can_schedule_ready_p, - add_branch_dependences, debug_dependencies): Likewise. - * stmt.c (emit_nop, expand_start_case, emit_jump_if_reachable): - Likewise. - * unroll.c (unroll_loop, copy_loop_body, back_branch_in_range_p, - reg_dead_after_loop, loop_find_equiv_value, loop_iterations, - set_dominates_use, ujump_to_loop_cont): Likewise. - * var-tracking.c (prologue_stack_adjust, vt_initialize): Likewise. - * varasm.c (output_constant_pool_1): Likewise. - -2004-07-08 Zdenek Dvorak - - * tree-scalar-evolution.c: New file. - * tree-scalar-evolution.h: New file. - * tree-ssa-loop-niter.c: New file. - * Makefile.in (SCEV_H): New. - (tree-scalar-evolution.o, tree-ssa-loop-niter.o): Add new files. - * cfgloop.h (struct loop): Add bounds field. - * tree-flow.h (struct tree_niter_desc): New type. - (number_of_iterations_cond, number_of_iterations_exit, - loop_niter_by_eval, find_loop_niter_by_eval, - estimate_numbers_of_iterations, can_count_iv_in_wider_type, - free_numbers_of_iterations_estimates): Declare. - * tree.h (lower_bound_in_type, upper_bound_in_type): Declare. - * params.def (PARAM_MAX_ITERATIONS_TO_TRACK): New parameter. - * doc/invoke.texi (max-iterations-to-track): Document. - -2004-07-08 Kaz Kojima - - * config/sh/sh.c (sh_va_arg): Initinalize lab_over. - * config/sh/sh.h (CONST_OK_FOR_J16): Use parentheses. - (MODE_AFTER): Add cast appropriately. - * config/sh/sh.md (movdi splitter): Likewise. - (casesi_worker_2): Add const qualifier appropriately. - (eh_return): Remove unused variable. - (insv): Initialize v; - -2004-07-08 Richard Henderson - - * config/mmix/mmix-protos.h (mmix_expand_builtin_va_arg): Remove. - * config/mmix/mmix.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (mmix_gimplify_va_arg_expr): Rewrite from mmix_expand_builtin_va_arg. - * config/mmix/mmix.h (EXPAND_BUILTIN_VA_ARG): Remove. - (FRAME_POINTER_REQUIRED): Use current_function_has_nonlocal_label. - - * config/m32r/m32r-protos.h (m32r_va_arg): Remove. - * config/m32r/m32r.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (m32r_gimplify_va_arg_expr): Rewrite from m32r_va_arg. - * config/m32r/m32r.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/iq2000/iq2000-protos.h (iq2000_va_arg): Remove. - * config/iq2000/iq2000.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (iq2000_gimplify_va_arg_expr): Rewrite from iq2000_va_arg. - * config/iq2000/iq2000.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/frv/frv-protos.h (frv_expand_builtin_va_arg): Remove. - * config/frv/frv.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (frv_gimplify_va_arg_expr): Rewrite from frv_expand_builtin_va_arg. - * config/frv/frv.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/i860/i860-protos.h (i860_va_arg): Remove. - * config/i860/i860.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (i860_gimplify_va_arg_expr): Rewrite from i860_va_arg. - * config/i860/i860.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-05-31 Aaron W. LaFramboise - - * system.h: Prototype getpagesize if missing. - * configure.ac: Add getpagesize to gcc_AC_CHECK_DECLS. - * configure: Regenerate. - * config.in: Regenerate. - -2004-07-08 Richard Henderson - - * config/fr30/fr30-protos.h (fr30_va_arg): Remove. - * config/fr30/fr30.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (fr30_gimplify_va_arg_expr): New. - (fr30_pass_by_reference, fr30_pass_by_value, fr30_va_arg): Remove. - * config/fr30/fr30.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-07-08 Vladimir Makarov - - PR target/16414 - * config/ia64/ia64.c (ia64_dfa_new_cycle): Fix typo in comparison - of asm_noperands result. - -2004-07-08 Richard Henderson - - * config/cris/cris-protos.h (cris_expand_builtin_va_arg): Remove. - * config/cris/cris.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (cris_gimplify_va_arg_expr): Rewrite from cris_expand_builtin_va_arg. - * config/cris/cris.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-07-08 Richard Henderson - - * builtins.c (ind_gimplify_va_arg_expr): New. - * tree.h (ind_gimplify_va_arg_expr): Declare. - * config/arc/arc.c (arc_gimplify_va_arg_expr): Use it. - -2004-07-08 Jan Beulich - - * expmed.c (extract_bit_field): Correct condition to use vec_extract - patterns also on vector elements other than the first one. - * config/i386/i386.md (vec_extractv2df, vec_extractv4sf): Add missing - break statements. - -2004-07-08 Geoffrey Keating - - * config/rs6000/darwin-ldouble.c: Correct reference - to the Linnainmaa paper. - -2004-07-08 Richard Henderson - - * config/arc/arc-protos.h (arc_va_arg): Remove. - * config/arc/arc.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (arc_gimplify_va_arg_expr): Rewrite from arc_va_arg. - * config/arc/arc.h (EXPAND_BUILTIN_VA_ARG): Remove. - - * config/c4x/c4x-protos.h (c4x_va_arg): Remove. - * config/c4x/c4x.c (TARGET_GIMPLIFY_VA_ARG_EXPR): New. - (c4x_gimplify_va_arg_expr): Rewrite from c4x_va_arg. - * config/c4x/c4x.h (EXPAND_BUILTIN_VA_ARG): Remove. - -2004-07-08 John David Anglin - - * pa.md (prefetch_32, prefetch_64): Simplify constraint checks. - -2004-07-08 Zack Weinberg - - * c-decl.c (static_ctors, static_dtors): Make static. - (pop_file_scope): Call c_common_write_pch and - cgraph_finalize_compilation_unit here. - (build_cdtor): Moved here from c-objc-common.c; simplify. - (c_write_global_declarations_1): Clarify comment. - (c_write_global_declarations): Close the external scope before - doing anything else. Call build_cdtor, cgraph_optimize, and - mudflap_finish_file here. - * c-lang.c (finish_file): Don't call c_objc_common_finish_file. - Clarify comment. - * c-objc-common.c: No need to include cgraph.h. - (build_cdtor): Moved to c-decl.c. - (c_objc_common_finish_file): Delete. - * c-tree.h: Update to match. - * objc/objc-act.c (finish_file): Don't call c_objc_common_finish_file. - (generate_static_references): Set TREE_USED before calling finish_decl. - Eliminate unnecessary dummy declaration. Call rest_of_decl_compilation - on the static_instances_decl. - -2004-07-08 Zack Weinberg - - * c-decl.c (pop_scope): Do not set DECL_CONTEXT on file-scope - decls when there is only one input translation unit. - * langhooks.c (lhd_set_decl_assembler_name): Partially revert - change of 2004-07-05; do not treat declarations with - DECL_CONTEXT a TRANSLATION_UNIT_DECL specially. - * opts.c (cur_in_fname): Delete. - * opts.h: Likewise. - * tree.c: Revert changes of 2004-07-05; no special treatment - for TRANSLATION_UNIT_DECLs. - * Makefile.in (tree.o): Update dependencies. - -2004-07-08 Roger Sayle - - * builtins.c (fold_builtin_strcpy): Merge functionality from - simplify_builtin_strcpy. Add additional len argument. No longer - static. Remove function prototype. - (fold_builtin_strncpy): Likewise integrate functionality from - simplify_builtin_strncpy. Add additional slen argument. No - longer static. Remove function prototype. - (simplify_builtin_strcy, simplify_builtin_strncpy): Delete. - (simplify_builtin_fputs): Rename to fold_builtin_fputs. Change - types of "ignore" and "unlocked" parameters to bool. - (fold_builtin_1): Add additional ignore argument. Call renamed - fold_builtin_fputs to simplify GCC "fputs" and "fputs_unlocked" - builtins. Update arguments to fold_builtin_strncpy and - fold_builtin_strcpy. Add function prototype. - (fold_builtin): Add additional Boolean ignore argument to pass - to fold_builtin_1. - (simplify_builtin): Call fold_builtin_fputs, fold_builtin_strcpy - and fold_builtin_strncpy instead of simplify_builtin_fputs, - simplify_builtin_strcpy and simplify_builtin_strncpy respectively. - - * expr.h (simplify_builtin_fputs, simplify_builtin_strcpy, - simplify_builtin_strncpy): Delete function prototypes. - * tree.h (fold_builtin_fputs, fold_builtin_strcpy, - fold_builtin_strncpy): Add function prototypes here. - (fold_builtin): Update function prototype with new "bool ignore". - - * tree-ssa-ccp.c (ccp_fold): Update call to fold_builtin. - (ccp_fold_builtin): Update call to fold_builtin. Call - fold_builtin_fputs, fold_builtin_strcpy and fold_builtin_strncpy - instead of simplify_builtin_fputs, simplify_builtin_strcpy and - simplify_builtin_strncpy respectively. - * fold-const.c (fold): Update call to fold_builtin. - -2004-07-08 Alexandre Oliva - - * builtins.c (expand_builtin_stpcpy): Un-simplify decay of stpcpy - to strcpy. - - * expr.h (FUNCTION_ARG_PARTIAL_NREGS): Default to 0. - (FUNCTION_ARG_PASS_BY_REFERENCE): Likewise. - (FUNCTION_ARG_CALLEE_COPIES): Likewise. - * calls.c: Remove ifdefs of macros above. - * functions.c: Likewise. - * expr.c: Likewise. - -2004-07-08 Eric Botcazou - - * config/sparc/sparc.md (UNSPECV_GOTO_V9): Delete. - (arch attribute): Delete. - (current_function_calls_alloca attribute): Rename into calls_alloca. - (calls_eh_return): New attribute. - (leaf_function): Likewise. - (length attribute): Fix formula for sibcalls. - (return insn): Correctly compute the 'length' attribute. - (do_builtin_setjmp_setup): Adjust use of current_function_calls_alloca. - -2004-07-08 Richard Henderson - - * tree-cfg.c (make_exit_edges): Use get_call_expr_in. - (remove_useless_stmts_1, is_ctrl_altering_stmt): Likewise. - (tree_block_ends_with_call_p, need_fake_edge_p): Likewise. - * tree-eh.c (lower_eh_constructs_1): Likewise. - * tree-sra.c (sra_walk_modify_expr): Likewise. - * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Likewise. - (eliminate_unnecessary_stmts): Likewise. - * tree-ssa-dse.c (dse_optimize_stmt): Likewise. - * tree-tailcall.c (optimize_tail_call): Likewise. - * tree-ssa-ccp.c (get_rhs, set_rhs): Reorg to use switch. - -2004-07-08 Paolo Bonzini - Jakub Jelinek - - * config/i386/i386.c (override_options): Enable - SSE prefetches with -mtune, as long as we are - compiling for i686 or higher. All i686 processors - accept SSE prefetches as NOPS, some i586's don't. - -2004-07-08 Eric Botcazou - - PR target/10567 - * config/sparc/sparc.md (update_return): Honor flag_delayed_branch. - -2004-07-08 Diego Novillo - - * tree-ssa-operands.c (get_asm_expr_operands): Fix thinkos in - the handling of clobbering ASM_EXPRs. - -2004-07-08 Eric Botcazou - - PR target/16430 - * config/sparc/sparc.c (function_value): In 64-bit mode, - return the aggregates larger than 16 bytes like unions. - -2004-07-08 Eric Botcazou - - PR target/16199 - * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): When - 'temp' is zero, generate new pseudos as needed and emit the - sequence of insns in single-assignment form. Resync comments - with code. - (sparc_emit_set_const64): Pass zero as 'temp' argument to above - function before reload. - -2004-07-08 Nathan Sidwell - - * vec.c (vec_assert_fail): Remove duplicate 'function'. - - * vec.c (vec_p_reserve, vec_o_reserve): Allocation is signed. - - * vec.h (VEC_alloc, VEC_embedded_size, VEC_embedded_init): - Allocation is signed. - (VEC_reserve): Return flag, allocation is signed. - -2004-07-08 Richard Henderson - - * tree-ssa-ccp.c (fold_stmt): Get type directly from - OBJ_TYPE_REF_OBJECT. - -2004-07-08 Joseph S. Myers - Neil Booth - - PR c/2511 - PR c/3325 - * c-decl.c (finish_struct): Ensure bit-fields are given the - correct type. - * c-common.c (c_common_signed_or_unsigned_type): For C, require - the precision to match as well as the mode. - * expr.c (reduce_to_bit_field_precision): New function. - (expand_expr_real_1): Reduce expressions of bit-field type to - proper precision. - * langhooks.h (reduce_bit_field_operations): New hook. - * langhooks-def.h (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): - Define. - * c-lang.c, objc/objc-lang.c - (LANG_HOOKS_REDUCE_BIT_FIELD_OPERATIONS): Define. - * objc/objc-act.c (check_ivars): Convert types to bit-field types - before checking. - * tree.c (build_nonstandard_integer_type): New function. - * tree.h (build_nonstandard_integer_type): New prototype. - * tree-ssa.c (tree_ssa_useless_type_conversion_1): Don't treat - conversions between integer and boolean types as useless. - -2004-07-08 Paolo Bonzini - - * c-common.c (c_common_nodes_and_builtins): Do not - create __builtin_ptrdiff_t and __builtin_size_t. - -2004-07-08 Andrew Pinski - - * Makefile.in (libbackend.o): Add -combine to the gcc - command line. - -2004-07-08 Nick Clifton - - * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Define. - Set to -Os. - -2004-07-08 Richard Henderson - - * except.c (expand_eh_region_start, expand_eh_region_end, - expand_eh_handler, expand_eh_region_end_cleanup, - expand_start_all_catch, expand_start_catch, expand_end_catch, - expand_end_all_catch, expand_eh_region_end_allowed, - expand_eh_region_end_must_not_throw, expand_eh_region_end_throw, - expand_eh_region_end_fixup): Remove. - * stmt.c (struct nesting): Remove stack_level, innermost_stack_block, - cleanups, outer_cleanups, label_chain, exception_region. - (struct goto_fixup): Remove stack_level, cleanup_list_list. - (struct label_chain): Remove. - (struct stmt_status): Remove x_stack_block_stack. - (stack_block_stack, expand_goto_internal, expand_fixup, expand_fixups, - fixup_gotos, save_stack_pointer, expand_decl_cleanup, - expand_decl_cleanup_eh, expand_cleanups, start_cleanup_deferral, - end_cleanup_deferral, last_cleanup_this_contour, - containing_blocks_have_cleanups_or_stack_level, - any_pending_cleanups): Remove. - (expand_null_return_1): Take no arguments. - (expand_label, expand_naked_return, expand_return, - expand_start_bindings_and_block, expand_end_bindings, expand_decl, - expand_anon_union_decl, expand_start_case, pushcase, pushcase_range, - expand_end_case_type): Don't use any of them. - * calls.c (expand_call): Likewise. - * dojump.c (do_jump): Likewise. - * function.c (expand_function_end): Likewise. - * expr.c (store_expr, expand_expr_real_1): Likewise. - (safe_from_p): Don't handle WITH_CLEANUP_EXPR, CLEANUP_POINT_EXPR. - (expand_expr_real_1): Don't handle WITH_CLEANUP_EXPR, - CLEANUP_POINT_EXPR, TARGET_EXPR, TRY_CATCH_EXPR, CATCH_EXPR, - EH_FILTER_EXPR, TRY_FINALLY_EXPR, GOTO_SUBROUTINE_EXPR. - * fold-const.c (fold_checksum_tree): Use first_rtl_op. - * gengtype.c (adjust_field_tree_exp): Remove rtl op handling. - * gimplify.c (gimplify_cleanup_point_expr): Renumber operands - for WITH_CLEANUP_EXPR. - (gimple_push_cleanup): Likewise. - * integrate.c (copy_decl_for_inlining): Don't DECL_TOO_LATE. - * print-tree.c (print_node): Likewise. - * tree-pretty-print.c (dump_generic_node): Remove GOTO_SUBROUTINE_EXPR. - * tree.c (first_rtl_op): Always just TREE_CODE_LENGTH. - (has_cleanups): Remove GOTO_SUBROUTINE_EXPR. - * tree.def (WITH_CLEANUP_EXPR): Remove op1 and op2. - (GOTO_SUBROUTINE_EXPR): Remove. - * tree.h (WITH_CLEANUP_EXPR_RTL): Remove. - (DECL_TOO_LATE): Remove. - * except.h, tree.h: Update decls. - -2004-07-08 Paolo Bonzini - - * explow.c (optimize_save_area_alloca): Do not accept parameters. - * passes.c (rest_of_handle_final): Handle symout. - (rest_of_handle_new_regalloc, rest_of_handle_old_regalloc): - Push timevar here. - (rest_of_handle_sched): Break out SMS. Remove ifs for - flag_schedule_insns and flag_modulo_sched. - (rest_of_handle_addressof, rest_of_handle_cse2): Garbage - collect at the end. - (rest_of_handle_gcse2): Put under timevar TV_RELOAD_CSE_REGS. - (rest_of_handle_partition_blocks, rest_of_handle_sms, - rest_of_handle_if_after_reload, rest_of_handle_peephole2, - rest_of_handle_mode_switching, rest_of_handle_jump, - rest_of_handle_guess_branch_prob, rest_of_handle_eh, - rest_of_handle_jump2, rest_of_handle_postreload, - rest_of_handle_flow2, rest_of_clean_state, - rest_of_handle_shorten_branches, - rest_of_handle_prologue_epilogue, - rest_of_handle_branch_target_load_optimize): New. - (rest_of_compilation): Call the above. Remove ggc_collect - calls moved to rest_of_handle_*. - * rtl.h (optimize_save_area_alloca): Do not accept parameters. - - * dwarf2out.c (dwarf2out_begin_prologue): Use TREE_NOTHROW. - * except.c (set_nothrow_function_flags): Set TREE_NOTHROW. - * except.h (set_nothrow_function_flags): Update comment. - * function.c (current_function_nothrow): Remove. - * output.h (current_function_nothrow): Remove. - * passes.c (rest_of_compilation): Do not set TREE_NOTHROW. - * config/arm/arm.c (arm_compute_func_type): Use TREE_NOTHROW. - -2004-07-08 Eric Botcazou - - PR bootstrap/16326 - * reorg.c: Revert 2004-06-30 change. - (find_end_label): If HAVE_epilogue and !HAVE_return, - return 0 instead of creating a label at the end of the insn chain. - (optimize_skip): Account for the failure mode of find_end_label. - (fill_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - (relax_delay_slots): Likewise. - -2004-07-08 Diego Novillo - - * tree-flow.h (addressable_vars): Declare. - * tree-ssa-alias.c (addressable_vars): Define. - (setup_pointers_and_addressables): Add addressable variables - to addressable_vars. - * tree-ssa-operands.c (get_stmt_operands): Move - handling of ASM_EXPRs ... - (get_asm_expr_operands): ... here. - When the ASM_EXPR clobbers memory, also clobber addressable - variables. - * tree-ssa.c (init_tree_ssa): Initialize addressable_vars. - (delete_tree_ssa): Reset addressable_vars. - -2004-07-07 Jan Beulich - Richard Henderson - - * varasm.c (assemble_variable): Use assemble_zeros for - zero-initialized variables. - (categorize_decl_for_section): Honor flag_zero_initialized_in_bss - for SECCAT_BSS and SECCAT_TBSS. - -2004-07-07 Jan Beulich - - * varasm.c (asm_output_bss): Don't declare unless BSS_SECTION_ASM_OP. - - * expmed.c (emit_store_flag): Also special-case double-word - (in-)equality comparison against -1. - - * config/i386/i386.c (ix86_gimplify_va_arg): Don't need temporary for - passing arguments the containers for which are registers. - - * calls.c (emit_library_call_value_1): Use mode of function parameter - rather than that of argument since constants have none. - -2004-07-08 Alexandre Oliva - - Introduce H8SX support. - * expr.c (expand_strcpy): Renamed and moved to... - * builtins.c (expand_movstr): ... here. Tweak. - (expand_builtin_strcpy): Adjust. Use movstr if len can't be - computed or has side effects. - (expand_builtin_stpcpy): Likewise. Use strcpy if return value is - unused, or if mempcpy fails. Adjust the return value in the - latter case. Use movstr if everything else fails. - * doc/md.texi (movstr): Document. - (movmemM, clrmemM): Fix explanation of memory block operands. - * config/h8300/h8300.md (stpcpy): Renamed to... - (movstr): ... this. Adjust. - 2004-07-07 Alexandre Oliva - * config/h8300/h8300.md: Rename movstr*, except for movstrict*, to - movmem* and clrstr* to clrmem*. - 2004-06-27 Alexandre Oliva - * config/h8300/h8300.c (h8300_reg_class_from_letter): Map 'D' to - GENERAL_REGS, always. - (h8300_swap_into_er6, h8300_swap_into_er6): Handle the case of - getting the stack pointer as addr. - * config/h8300/h8300.h (PREDICATE_CODES): Remove constant rtxes - from general_operand_dst. - * config/h8300/h8300.md (movmd_internal_normal): New, normal-mode - variant of... - (movmd_internal): ... this. Add modes to operands. Disparage `D' - instead of requiring it to match only before reload. - (stpcpy_internal_normal): New, normal-mode variant of... - (stpcpy_internal): ... this. Add modes to operands. Disparage - `D' instead of requiring it to match only before reload. - * config/h8300/h8300-protos.h (h8300_legitimate_address_p): Add - mode argument. - * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Pass it to... - * config/h8300/h8300.c (h8300_legitimate_address_p): Pass it to - h8300_get_index. - * config/h8300/h8300.md (attr type): Add call. - (attr can_delay): If type is call, set it no. - (call, call_value): Set type to call. - 2004-06-21 Alexandre Oliva - * config/h8300/h8300.md (logicalhi3_sn, logicalsi3_sn): New. - 2004-06-16 Alexandre Oliva - * tree.c (get_narrower): Don't narrow integral types into - non-integral types. - * config/h8300/h8300.c (h8300_expand_epilogue): Initialize - frame_size *before* the first use. - * config/h8300/h8300.md (movstrictqi): Reintroduce post-increment - on input. - (peephole2): Don't widen instructions that push SP. Move - decrement of SP to the end of all stm-generating peepholes. - 2003-07-24 Richard Sandiford - * config/h8300/h8300.md (insv): Prefer to use AND to clear a bitfield - and OR to set it to all ones. - 2003-07-24 Richard Sandiford - * config/h8300/h8300.md (can_delay): Default to "no" for bit branches. - (call, call_value): Set can_delay to "no". - 2003-07-22 Richard Sandiford - * config/h8300/h8300.md (extzv): Make subreg check more robust. - 2003-07-21 Richard Sandiford - * config/h8300/h8300.md (*brabit): Remove. - * config/h8300/h8300.md (*brabc, *brabs): Remove mode from - zero_extract. Use bit_memory_operand as the predicate for - operand 1 and 'WU' as the constraint. Check the difference - between the base length and the final one when deciding which - type of branch to use. - 2003-07-21 Richard Sandiford - * config/h8300/h8300.md (extzv): Remove mode from operands 0 and 1. - Use convert_move to extend the result for TARGET_H8300SX. Check - for QImode memory references. Optimize the case where the - destination is a paradoxical subreg. - 2003-07-21 Richard Sandiford - * config/h8300/h8300.md (*movsf_h8sx): Add an r <- G alternative. - * config/h8300/h8300.md (andqi): Remove bclr from h8sx version. - 2003-07-21 Richard Sandiford - * config/h8300/h8300.md: Include mova.md - (length_table): Add mova and mova_zero. - * config/h8300/h8300.c (print_operand): Handle '%o'. Print a length - after all constant addresses for '%R', '%X', '%T' and '%S'. - (h8300_mova_length): New function. - (h8300_insn_length_from_table): Use it to handle mova and mova_zero. - * config/h8300/t-h8300 (mova.md): Generate from genmova.sh. Add to - dependencies for s-config, etc. - * config/h8300/gemova.sh: New file. - * config/h8300/mova.md: Generated. - 2003-07-20 Alexandre Oliva - * config/h8300/h8300.c (h8300_bitfield_length): New. - (nibble_operand): Adjust. - (h8300_binary_length): Handle conditional binary op. - (h8300_insn_length_from_table): Handle bitfield and bitbranch. - * config/h8300/h8300.h: Change constraints W# and Y# to P#>X and - P#X. Introduced P#>0 - and P#<0, unused so far. W and Y are now prefixes to multi-letter - constraints. WU is introduced as a variant of U that requires a - mem, and is therefore considered an EXTRA_MEMORY_CONSTRAINT. - * config/h8300/h8300.md (attr type): Added bitbranch. - (attr length_table): Added bitfield and bitbranch. - (attr length): Compute bitbranch length. - (andqi): Separate pattern for H8300SX. Use bfld for loading the - least-significant bit of a byte. - (brabit, brabc, brabs): New. - (insv, extzv): Emit bfst and bfld on H8300SX. - (bfld, bfst, seq, sne): New. - (bstzhireg, cmpstz, bstz, bistz): New. - (cmpcondbset, condbset, cmpcondbclr, condbclr): New. - (cmpcondbsetreg, condbsetreg, cmpcondbclrreg, condbclrreg): New. - 2003-07-11 Richard Sandiford - * config/h8300/h8300.c (h8sx_binary_memory_operator): New function. - (h8sx_unary_memory_operator): New function. - * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Disable. - (PREDICATE_CODES): Add h8sx_{unary,binary}_memory_operator. - * config/h8300/h8300.md: Add peepholes to combine reloads and - arithmetic insns. - 2003-07-10 Richard Sandiford - * config/h8300/h830.md (cmpqi): Use 'i' rather than 'n' in constraints. - (*cmphi_h8300hs, *addqi3, *addhi3_h8sx, subhi3): Likewise. - (and?i, ior?i, xor?i): Likewise. - 2003-07-10 Richard Sandiford - * config/h8300/h8300.c: Move enums and prototypes to head of file. - Various whitespace fixes. - (h8300_constant_length): New function, split out from... - (h8300_displacement_size): ...here. Rename h8300_displacement_length. - (h8300_classify_operand): Use IN_RANGE. - (h8300_classify_operand): Use h8300_constant_length. - (h8300_short_move_mem_p): Tighten size check. - (h8sx_mergeable_memrefs_p): Tighten equality check. - 2003-06-30 Richard Sandiford - * config/h8300/h8300.h (TARGET_CPU_CPP_BUILTINS): Define __H8300SX__ - for -msx. - * config/h8300/crti.asm: Use .h8300sx or .h8300sxn for -msx code. - * config/h8300/crtn.asm: Likewise. - * config/h8300/lib1funcs.asm: Likewise. Use 32-bit pointers - if __H8300SX__ is defined. - 2003-06-27 Richard Sandiford - * config/h8300/h8300-protos.h (h8300_get_index): Add mode parameter. - * config/h8300/h8300.h (GO_IF_LEGITIMATE_ADDRESS): Update accordingly. - (GO_IF_MODE_DEPENDENT_ADDRESS): Treat POST_DEC, PRE_INC and indexed - addresses as mode-dependent. - * config/h8300/h8300.c (print_operand_address): Update call to - h8300_get_index. - (h8300_get_index): Take a mode argument. Rework to fix an - earlier misunderstanding. - 2003-06-26 Richard Sandiford - * config/h8300/h8300.c (zero_extendqisi2): Force the source operand - into a register if TARGET_H8300SX. - (*zero_extendqisi2_h8300hs, *extendqisi2_h8300): Disable for - TARGET_H8300SX. Also disable related define_splits. - (*zero_extendqisi2_h8sx, *extendqisi2_h8sx): New patterns. - 2003-06-23 Richard Sandiford - * config/h8300/h8300.c (h8300_rtx_costs): Add h8sx handling. - 2003-06-20 Richard Sandiford - * config/h8300/h8300.h (OK_FOR_Z): New macro. - (EXTRA_CONSTRAINT_STR): Check it. - * config/h8300/h8300.c (h8300_classify_operand): Accept null - class arguments. - (h8300_insn_length_from_table): Handle LENGTH_TABLE_MOV_IMM4. - * config/h8300/h8300.md (length_table): Add mov_imm4. - (movqi, movhi): Add Z <- W4 alternatives to h8sx patterns. - 2003-06-20 Richard Sandiford - * genattrtab.c (write_eligible_delay): Allow candidate_insn to - be a label. - * config/h8300/h8300.h (DELAY_SLOT_LENGTH): New macro. - * config/h8300/h8300.c (h8300_reorg): New function. - (TARGET_MACHINE_DEPENDENT_REORG): Define. - * config/h8300/h8300.md (length): Subtract the length of the - delay slot from (pc) when checking the range of forward branches. - (delay_slot, can_delay): New attributes. - (define_delay): Add bra/s handling. - (movmd_internal, return_h8sx, *return_1): Set can_delay to no. - (jump): Add delayed-branch handling. - 2003-06-17 Richard Sandiford - * expr.c (expand_strcpy): New function. - * builtins.c (expand_builtin_strcpy): Fall back on expand_strcpy. - (expand_builtin_stpcpy): Likewise. - * config/h8300/h8300-protos.h (h8sx_split_movmd): Remove. - (h8300_swap_into_er6, h8300_swap_out_of_er6): Declare. - * config/h8300/h8300.c (h8300_reg_class_from_letter): Tweak 'd' - handling to improve register allocation for -fno-omit-frame-pointer. - (h8sx_split_movmd): Delete, moving er6 handling into... - (h8300_swap_into_er6, h8300_swap_out_of_er6): ...these new functions. - * config/h8300/h8300.md (UNSPEC_STPCPY): New unspec constant. - (movmd): Add calls to copy_rtx. - (movmd_internal): In the second alternative, allow the initial and - final destination registers to be different . Update the splitter - accordingly. Call h8300_swap_into_er6 and h8300_swap_out_of_er6 - instead of h8sx_split_movmd. - (stpcpy, movsd): New expanders. - (movsd_internal): New define_insn. - 2003-06-13 Richard Sandiford - * config/h8300/h8300-protos.h (h8300_reg_class_from_letter): Declare. - (h8sx_emit_movmd, h8sx_split_movmd): Declare. - * config/h8300/h8300.h (reg_class): Add COUNTER_REGS, SOURCE_REGS - and DESTINATION_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. - (REGNO_REG_CLASS): Map er4, er5 and er6 to the new classes. - (REG_CLASS_FROM_LETTER): Use h8300_reg_class_from_letter. - (h8300_move_ratio): Declare. - (MOVE_RATIO): Use it. - * config/h8300/h8300.c (h8300_move_ratio): New variable. - (h8300_init_once): Initialize it. - (h8300_reg_class_from_letter): New function. - (print_operand): Add an 'm' prefix for printing ".b", ".w" or ".l". - (h8sx_emit_movmd, h8sx_split_movmd): New functions. - * config/h8300/h8300.md (UNSPEC_MOVMD): New unspec constant. - (COUNTER_REG, SOURCE_REG, DESTINATION_REG): New register constants. - (movstrsi, movmd): New expanders. - (movmd_internal): New insn. - 2003-06-06 Richard Sandiford - * config/h8300/h8300.h (EXTRA_MEMORY_CONSTRAINT): Define. - 2003-06-04 Richard Sandiford - * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxnelf for -msx -mn. - * config/h8300/h8300.c (asm_file_start): Use .h8300sxn likewise. - 2003-06-03 Richard Sandiford - * config/h8300/h8300.c (nibble_operand): Fix warning. - * config/h8300/h8300.md (movstricthi): Set adjust_length to no. - (movsi_h8sx): Likewise here and the normal h8sx movhi pattern. - (movsf_h8300h): Disable for TARGET_H8300SX. - 2003-06-03 Richard Sandiford - * config/h8300/h8300.h (PREDICATE_CODES): Add h8300_ldm_parallel, - h8300_stm_parallel and h8300_return_parallel. - * config/h8300/h8300.c (h8300_push_pop, h8300_stack_offset_p, - h8300_ldm_stm_regno, h8300_ldm_stm_parallel, h8300_ldm_parallel, - h8300_stm_parallel, h8300_return_parallel): New functions. - (h8300_expand_prologue): Don't enforce ldm/stm register alignment - if TARGET_H8300SX. Use h8300_push_pop. - (h8300_expand_epilogue): Likewise. Try to merge the return insn - and final pop when generating h8sx code. Always emit some form - of return insn. - * config/h8300/h8300.md: Don't enforce register alignment in - stm peepholes if TARGET_H8300SX. - (ldm_h8300s, stm_h8300s, return_h8sx): New patterns. - (ldm_h8300s_[234], stm_h8300_[234]): Disable. - (epilogue): Expect h8300_expand_epilogue to emit a return insn. - 2003-06-03 Richard Sandiford - * config/h8300/t-h8300 (MULTILIB_OPTIONS): Add a -msx multilib. - (MULTILIB_DIRNAMES): Add a directory for it. - (MULTILIB_MATCHES): Delete. - 2003-05-28 Richard Sandiford - * final.c (walk_alter_subreg): Handle addresses with subregs - inside a ZERO_EXTEND or AND. - * config/h8300/h8300-protos.h (h8300_get_index): Declare. - * config/h8300/h8300.h (INDEX_REG_CLASS): Set to GENERAL_REGS - if TARGET_H8300SX. - (GO_IF_LEGITIMATE_ADDRESS): Use h8300_get_index. - * config/h8300/h8300.c (print_operand_address): Handle @(dd,RnL.b), - @(dd,Rn.w) and @(dd,ERn.L). - (h8300_displacement_size): Take the whole address as argument. - (h8300_classify_operand, h8300_short_move_mem_p): Adjust accordingly. - 2003-05-28 Richard Sandiford - * config/mips/mips-protos.h (h8300_operands_match_p): Declare. - (h8sx_mergeable_memrefs_p): Declare. - * config/h8300/h8300.h (HAVE_POST_DECREMENT): Define to TARGET_H8300SX. - (HAVE_PRE_INCREMENT): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): Accept pre/post increment/decrement - addresses for TARGET_H8300SX, - * config/h8300/h8300.c (print_operand_address): Deal with PRE_INC - and POST_DEC. - (movb_length_table, movl_length_table): New tables. - (movw_length_table): Define to movb_length_table. - (h8300_displacement_size): New, split out from... - (h8300_classify_address): ...here. Handle pre/post inc/dec. - (h8300_short_immediate_length): Allow H8OP_MEM_COMPLEX operands. - (h8300_insn_length_from_table): Add cases for movb, movw and movl. - (h8sx_mergeable_memrefs_p, h8300_operands_match_p): New functions. - (output_plussi): Use add.l #xx:3,Rn and sub.l #xx:3,Rn for h8sx. - (compute_plussi_length, compute_plussi_cc): Update accordingly. - (h8sx_unary_shift_operator): Get the mode from the operator. - (binary_shift_operator): Likewise. - * config/h8300/h8300.md: If a peephole2 applies gen_lowpart to - a memory reference, check whether the reference is offsettable. - (length_table): Add movb, movw and movl. - (movqi): Add new h8sx pattern. Don't force one operand to be a - register when generating h8sx code. - (movhi, movsi, movsf): Likewise. - (movstrictqi): Use the length_table attribute. - (movstricthi): Likewise. Add h8sx alternative for mov.w #xx:3,Rn. - (addqi3): Split into a define_expand and define_insn. Don't accept - memory operands in the expander. Use h8300_operands_match_p to - check for matching operands in the define_insn. - (subqi3, negqi2, one_cmplqi2): Likewise. - (add[hs]i3): Don't accept memory operands in the expander. Likewise - in any patterns that are unused in h8sx code. In the h8sx patterns, - use h8300_operands_match_p to check whether operands match. - (sub[hs]i3, and[hi]3, ior[hs]i3, xor[hs]i3, neg[hsi]3, - one_cmpl[hs]i3): Likewise. - (andqi3, iorqi3, xorqi3): Likewise. Don't call fix_bit_operand - in the expander. - 2003-05-23 Richard Sandiford - * config/h8300/h8300-protos.h (expand_a_shift): Return a bool. - (h8300_insn_length_from_table): Add a second parameter. - (output_h8sx_shift): Declare. - * config/h8300/h8300.h (OK_FOR_W, OK_FOR_Y): New macros. - (EXTRA_CONSTRAINT): Replace with... - (EXTRA_CONSTRAINT_STR): ...this. Use OK_FOR_W and OK_FOR_Y. - (CONSTRAINT_LEN): Define, returning 2 for 'W' and 'Y'. - (PREDICATE_CODES): Add entries for h8sx_unary_shift_operator - and h8sx_binary_shift_operator. - * config/h8300/h8300.c (two_insn_adds_subs_operand): Return false - for TARGET_H8300SX. - (bit_operand): Replace use of EXTRA_CONSTRAINT with OK_FOR_U. - (bit_memory_operand, fix_bit_operand): Likewise. - (h8300_length_table_for_insn): Remove. - (h8300_classify_operand): Fix check for 16-bit operands in 32-bit - instructions. - (h8300_short_immediate_length, h8300_binary_length): New functions. - (h8300_insn_length_from_table): Add an opcodes parameter. Rework. - (output_plussi): Use sub to add negative constants. - (compute_plussi_length): Adjust accordingly. - (h8sx_single_shift_type): New enum. - (h8sx_single_shift, h8sx_unary_shift_operator, - h8sx_binary_shift_operator, output_h8sx_shift): New functions. - (expand_a_shift, expand_a_rotate): Emit nothing if the shift is a - single h8sx instruction. Return false in this case. - * config/h8300/h8300.md (length_table): Add short_immediate. - (length): Pass the operand array to h8300_insn_length_from_table. - (adjust_length): Assume "no" for insns with a length_table attribute. - (*cmphi_h8300hs, cmpsi): Add alternatives for #xx:3. - (*addhi3_h8300hs): Don't use for h8sx. - (*addhi3_h8sx): New pattern, with alternatives for add.w #xx:3 - and sub.w #xx:3. - (ashl[qhs]i3, lshr[qhs]i3, ashr[qhs]i3, rotl[qhs]i3): Change operand - 1's predicate to nonimmediate_operand. Only skip default expansion - if expand_a_shift or expand_a_rotate returns true. Add new patterns - for single h8sx shift instructions. - 2003-05-22 Alexandre Oliva - * config/h8300/h8300.c (nibble_operand): Split out of... - (reg_or_nibble_operand): ... this. - * config/h8300/h8300.h (PREDICATE_CODES): Added nibble_operand. - * config/h8300/h8300.md: (mulqihi3, mulhisi3, umulqihi3, - umulhisi3): Introduce expand, and introduce separate insns for - sign- or zero-extended REG and already-extended CONST_INT. - 2003-05-20 Richard Sandiford - * config/h8300/h8300.c (h8300_unary_length): Fix miscounting. - * config/h8300/h8300.md (subqi3): Generalize for h8sx. - (subhi3): Likewise. Don't accept immediates for operand 1. - Remove the early clobber from second alternative of the h8300s pattern. - (subsi3): Generalize for h8sx. Force operand 2 into a register - on plain h8300 targets. - (subsi3_h8300): Use h8300_dst_operand for consistency with expander. - (subsi3_h8300h): Generalize for h8sx. - (one_cmplqi2, one_cmplhi2, one_cmplsi2): Likewise. - 2003-05-19 Alexandre Oliva - * config/h8300/h8300.c (reg_or_nibble_operand): New. - * config/h8300/h8300.h (PREDICATE_CODES): Adjust. - (TARGET_H8300SXMUL): New. - (CONST_OK_FOR_P): New. - (CONST_OK_FOR_LETTER_P): Adjust. - * config/h8300/h8300.md (mulqihi3, mulhisi3, umulqihi3, - umulhisi3): Accept 4-bit immediate on H8SX. - (mulhi3, mulsi3, smulsi3_highpart, umulsi3_highpart): New. - (udivsi3, divhi3, udivsi3, divsi3): New. - 2003-05-19 Richard Sandiford - * config/h8300/h8300-protos.h (h8300_insn_length_from_table): Declare. - * config/h8300/h8300.h (OK_FOR_Q): New macro. - (EXTRA_CONSTRAINT): Use it to check the 'Q' constraint. - (PREDICATE_CODES): Add h8300_src_operand and h8300_dst_operand. - Add ADDRESSOF to the bit_operand entry. - * config/h8300/h8300.c (h8300_dst_operand): New predicate. - (h8300_src_operand): Likewise. - (bit_operand): Check nonimmediate_operand rather than general_operand. - Accept any nonimmediate_operand in h8sx code. - (h8300_and_costs): Initialize operands[1]. - (h8300_rtx_costs) : Return false if the operands aren't valid. - (h8300_operand_class): New enum. - (h8300_length_table): New typedef. - (addb_length_table, addw_length_table, addl_length_table, - logicl_length_table): New tables. - (logicb_length_table, logicw_length_table): New macros. - (h8300_classify_operand, h8300_length_from_table, - h8300_length_table_for_insn, h8300_unary_length, - h8300_insn_length_from_table): New functions. - (output_plussi): Only use adds and subs for register destinations. - Disable redundant clause. - (compute_plussi_cc): Likewise. - (compute_plussi_length): Likewise. Use h8300_length_from_table - to work out the length of an insn. - (output_logical_op): Only use narrower immediate instructions - if the destination is a register. - (compute_logical_op_cc): Likewise. - (compute_logical_op_length): Likewise. Use h8300_length_from_table. - (h8300_adjust_insn_length): Tighten check for reg<->mem moves. - * config/h8300/h8300.md (length_table): New attribute. - (length): When an instruction has a length_table attribute, use - h8300_insn_length_from_table to calculate its default length. - (cmpqi): Use h8300_dst_operand for the first operand and - h8300_src_operand for the second. - (cmphi, *cmphi_h8300hs, cmpsi, negqi2, neghi2, neghi2_h8300h, negsi2, - negsi2_h8300h, addqi3, addhi3, *addhi3_h8300, *addhi3_h8300hs, addsi3, - addsi_h8300, addsi_h8300h, andhi3, andsi3, iorhi3, - iorsi3, xorhi3, xorsi3): Likewise. - (andqi3): Use h8300_src_operand for operand 2. Adjust the condition - so that it allows any combination of operands for TARGET_H8300SX. - (iorqi3, xorqi3): Likewise. - (cmpqi): Use the length_table attribute. - (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, andqi3, iorqi3, - xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. - (cmpqi): Add 'Q' constraint. - (*cmphi_h8300hs, cmpsi, addqi, *addhi3_h8300hs, addsi_h8300h, andqi3, - iorqi3, xorqi3, negqi2, neghi2_h8300h, negsi2_h8300h): Likewise. - 2003-05-14 Richard Sandiford - * config/h8300/h8300.h (MASK_H8300SX): New macro. - (TARGET_H8300S): True for both -ms and -msx. - (TARGET_H8300SX): New macro. - (TARGET_SWITCHES): Add entries for -msx and -mno-sx. - * config/h8300/h8300.c (asm_file_start): Write .h8300sx for -msx. - * config/h8300/elf.h (LINK_SPEC): Use -m h8300sxelf for -msx. - * config/h8300/t-h8300 (MULTILIB_MATCHES): Use -ms multilibs for -msx. - [Temporary change.] - 2003-02-28 Alexandre Oliva - * config/h8300/h8300.h (SIZE_TYPE, PTRDIFF_TYPE): Use short with - 16-bit pointers and 32-bit ints. - * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Accept - CONST_DOUBLE with mode no wider than SImode. - * config/h8300/h8300.md (extendqisi2_h8300): Add constraints for - output operand. - 2003-02-27 Alexandre Oliva - * config/h8300/h8300.c (general_operand_src): Match CONSTANT_P_RTX - or SUBREG thereof. - * config/h8300/h8300.h (PREDICATE_CODES): Adjust. - 2003-02-22 Alexandre Oliva - * config/h8300/h8300.c (dosize): Truncate sign * size to Pmode. - -2004-05-28 Aaron W. LaFramboise - - * config.gcc (i[34567]86-*-mingw32*): Enable threads by default. - -2004-07-07 Per Bothner - - * flow.c (attempt_auto_inc): Remove now-redundant PUT_CODE. - -2004-07-07 Mike Stump - - * darwin.h (ASM_OUTPUT_LABELREF): Fix -fno-leading-underscore. - * darwin.c (machopic_non_lazy_ptr_name, machopic_stub_name) - (machopic_finish): Likewise. - -2004-07-07 Richard Henderson - - * tree-ssa-dom.c (simplify_switch_and_lookup_avail_expr): Look - through any value-preserving cast. - -2004-07-07 Alexandre Oliva - - * function.c (assign_parm_find_data_types): Call - FUNCTION_ARG_PASS_BY_REFERENCE only if it's defined. - -2004-07-07 Steven Bosscher - - * tree-cfg.c (group_case_labels): Remove case labels that have - the same target as the default case. - -2004-07-07 Steven Bosscher - - * tree-inline.c (optimize_inline_calls): Set DECL_INLINED_FNS - regardless of DECL_LANG_SPECIFIC being present or not. - * tree.h (DECL_NUM_STMTS): Purge. - -2004-07-07 Andrew Pinski - - * configure: Regenerate with the right autoconf. - -2004-07-07 David Edelsohn - - * ifcvt.c (total_bb_rtx_cost): New function. - (find_if_case_1): Compare rtx_cost of basic block to cost of - BRANCH_COST insns. - (find_if_case_2): Same. - -2004-07-07 Eric Botcazou - - PR target/10567 - * config/sparc/sparc.c (load_pic_register): Honor flag_delayed_branch. - (output_return): Likewise. - (output_sibcall): Abort if !flag_delayed_branch. - (sparc_function_ok_for_sibcall): Return 0 if !flag_delayed_branch. - (emit_and_preserve): New function. - (sparc_output_mi_thunk): Use it. Honor flag_delayed_branch. Emit an - indirect jump to the thunked-to function if !flag_delayed_branch. - * config/sparc/sparc.md (delayed_branch): New attribute. - (load_pcrel_sym): Honor flag_delayed_branch. Use above - attribute to compute the length of the insn. - (goto_handler_and_restore): Likewise. - -2004-07-07 Andrew Pinski - - PR tree-optimization/15777 - * fold-const.c (fold_single_bit_test): Fold the x^1 expression. - - * expr.c (expand_expr_real_1): Fix formating. - BUFFER_REF and IN_EXPR are dead. - * fold-const.c (non_lvalue): BUFFER_REF is dead. - * tree-inline.c (estimate_num_insns_1): Likewise. - * tree-pretty-print.c (dump_generic_node): BUFFER_REF, - IN_EXPR, SET_LE_EXPR, and CARD_EXPR are dead. - * tree.def (BUFFER_REF, IN_EXPR, SET_LE_EXPR, CARD_EXPR): Kill. - -2004-07-07 H.J. Lu - - * collect2.c (dump_file): Don't call cplus_demangle if - HAVE_LD_DEMANGLE is defined. - (main): Pass "--demangle" to ld if no_demangle is not 0 and - HAVE_LD_DEMANGLE is defined. Don't set current_demangling_style - if HAVE_LD_DEMANGLE is defined. - - * configure.ac (--with-demangler-in-ld): Added - (HAVE_LD_DEMANGLE): Define if ld supports --demangle when - --with-demangler-in-ld is used. - * config.in: Regenerated. - * configure: Likewise. - -2004-07-07 Roger Sayle - - * config/rs6000/rs6000.c (struct processor_costs): Add new fields - for simple floating point operations "fp", double precision - multiplication "dmul", and single and double precision division - "sdiv" and "ddiv". Update all CPU variant tables as appropriate. - (ppc630_cost): New table split from ppc620_cost, to distinguish - differences in floating point latencies. - (rs6000_override_options): Use ppc630_cost for PROCESSOR_PPC630. - (rs6000_rtx_costs): Add support for single and double precision - floating point addition, subtraction, multiplication, division, - fused-multiply-add, fused-multiply-sub, negation, absolute value - and negative absolute value. Tweak MEM case to use prefered idiom. - -2004-07-07 Richard Henderson - - * tree-flow-inline.h (may_propagate_copy): Move... - * tree-ssa-copy.c (may_propagate_copy): ... here. Fail if we - attempt to copy between types requiring conversion. - * tree-flow.h (may_propagate_copy): Update decl. - * tree-ssa-dom.c (cprop_operand): Tidy redundant tests. - -2004-07-07 Jakub Jelinek - - * config/i386/i386.c (override_options): Don't set x86_prefetch_sse - from -mtune= option. - -2004-07-07 Alexandre Oliva - - * builtins.c: Rename movstr*, except for movstrict*, to - movmem* and clrstr* to clrmem*. - * expr.c: Likewise. - * expr.h: Likewise. - * genopinit.c: Likewise. - * integrate.c: Likewise. - * local-alloc.c: Likewise. - * optabs.c: Likewise. - * optabs.h: Likewise. - * config/alpha/alpha.h: Likewise. - * config/alpha/alpha.md: Likewise. - * config/arm/arm-protos.h: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/arm.md: Likewise. - * config/avr/avr.md: Likewise. - * config/c4x/c4x.c: Likewise. - * config/c4x/c4x.md: Likewise. - * config/frv/frv.md: Likewise. - * config/i386/i386-protos.h: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/i386.md: Likewise. - * config/i860/i860.c: Likewise. - * config/i860/i860.md: Likewise. - * config/ip2k/ip2k.md: Likewise. - * config/ip2k/libgcc.S: Likewise. - * config/ip2k/t-ip2k: Likewise. - * config/m32r/m32r.c: Likewise. - * config/m32r/m32r.md: Likewise. - * config/mcore/mcore.md: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.md: Likewise. - * config/ns32k/ns32k.c: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/ns32k/ns32k.md: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa.md: Likewise. - * config/pdp11/pdp11.h: Likewise. - * config/pdp11/pdp11.md: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/s390/s390-protos.h: Likewise. - * config/s390/s390.c: Likewise. - * config/s390/s390.md: Likewise. - * config/sh/lib1funcs.asm: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.md: Likewise. - * config/sh/t-sh: Likewise. - * config/sparc/sparc.h: Likewise. - * config/vax/vax.md: Likewise. - * config/xtensa/xtensa.c: Likewise. - * config/xtensa/xtensa.md: Likewise. - * doc/invoke.texi: Likewise. - * doc/md.texi: Likewise. - * doc/rtl.texi: Likewise. - -2004-07-07 Richard Sandiford - - PR target/16407 - * config/mips/mips-protos.h (mips_declare_common_object): Declare. - * config/mips/mips.c (mips_declare_common_object): New function, - mostly split out from... - (mips_output_aligned_decl_common): ...here. - * config/mips/mips.h (ASM_OUTPUT_LOCAL): Remove in favor of... - (ASM_OUTPUT_ALIGNED_LOCAL): ...this new definition. - * config/mips/iris6.h (ASM_OUTPUT_ALIGNED_LOCAL): Undefine this - rather than ASM_OUTPUT_LOCAL. Call mips_declare_common_object. - -2004-07-07 John David Anglin - - PR c/16392 - * function.c (assign_parms): Fix typo from previous change. - -2004-07-07 Jason Merrill - - PR c++/15815 - * doc/extend.texi (C++ Interface): Correct information and - discourage use. - -2004-07-07 Vladimir Makarov - - PR target/16130 - PR target/16142 - PR target/16143 - * config/ia64/ia64.c (ia64_dfa_new_cycle): Reset DFA state for asm - insn. - -2004-07-06 Kazuhiro Inaoka - - PR target/1679. - * config/m32r/m32r.c (m32r_function_symbol): New function: - Generate a symbol name RTX with the correct m32r specific flags - set. - (block_move_call): Use new function to generate correct symbol. - * config/m32r/m32r-protos.h: Add prototype for new funcion. - * config/m32r/m32r.h (INITIALIZE_TRAMPOLINE): Use the new - function. - -2004-07-07 Nathan Sidwell - - * tree.h (TYPE_BINFO_OFFSET, TYPE_BINFO_VTABLE, - TYPE_BINFO_VIRTUALS, TYPE_BINFO_BASETYPES, - TYPE_BINFO_BASETYPE): Remove. - (BINFO_BASETYPES, BINFO_N_BASETYPES, BINFO_BASETYPE): Rename - to ... - (BINFO_BASE_BINFOS, BINFO_N_BASE_BINFOS, BINFO_BASE_BINFO): ... - here. - (BINFO_BASEACCESSES, BINFO_BASEACCESS): Rename to ... - (BINFO_BASE_ACCESSES, BINFO_BASE_ACCESS): ... here. - (BINFO_INHERITANCE_CHAIN): Redocument as it is actually used. - (struct tree_binfo): Rename base_types to base_binfos. - * alias.c (record_component_aliases): Adjust BINFO macros. - * dbxout.c (dbxout_type): Likewise. - * dwarf2out.c (gen_member_die): Likewise. - * sdbout.c (sdbout_one_type): Likewise. - * tree-dump.c (deque_and_dump): Likewise. - * config/i386/i386.c (classify_argument, - contains_128bit_aligned_vector_p): Likewise. - -2004-07-07 Nick Clifton - - * config/fr30/fr30.c (fr30_setup_incoming_varargs): Change - arguments to match TARGET_SETUP_INCOMING_VARARGS prototype. - -2004-07-07 Nathan Sidwell - - * vec.h: Fix the example use. - -2004-07-06 Richard Henderson - - * langhooks-def.h (LANG_HOOKS_GIMPLE_BEFORE_INLINING): Remove. - * langhooks.h (struct lang_hooks): Remove gimple_before_inlining. - * tree-inline.c (copy_body_r, setup_one_parameter, - initialize_inlined_parameters, expand_call_inline, - declare_inline_vars): Don't check it. - (expand_calls_inline): Remove old version, rename new version - from gimple_expand_calls_inline. - * tree-optimize.c (execute_gimple): Remove. - (pass_gimple): Don't run anything. - -2004-07-06 Joseph S. Myers - - * doc/sourcebuild.texi: Use semicolons instead of commas in - section title. - -2004-07-06 Richard Henderson - - * tree-sra.c (struct sra_walk_fns): Revert 2004-07-05 change. - (sra_walk_modify_expr, scan_init): Likewise. - (generate_element_zero): Check visited before scanning children. - (generate_element_init): Set visited on error. - (scalarize_init): Handle generate_element_init failure similar - to use_block_copy. - -2004-07-06 Joseph S. Myers - - * toplev.h (NO_FRONT_END_DIAG, ATTRIBUTE_GCC_FE_DIAG): Define. - (warning, error, pedwarn, sorry): Use ATTRIBUTE_GCC_FE_DIAG. - -2004-07-06 Richard Henderson - - * config/i386/i386.c (legitimize_pic_address): Make static. - (legitimize_address): Handle CONST with TLS operand. - (ix86_expand_move): Don't call legitimize_pic_address directly. - * config/i386/i386-protos.h (legitimize_pic_address): Remove. - -2004-07-06 Roger Sayle - - * ifcvt.c (struct noce_if_info): Add a Boolean b_unconditional field. - (noce_try_sign_mask): Tweak rtx_cost check if t is evaluated anyway. - (noce_process_if_block): Initialize if_info.b_unconditional if insn_b - is currently executed unconditionally, i.e. not in "else_bb". - -2004-07-06 Steven Bosscher - - * config/alpha/alpha.c (alpha_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/arm/arm.c (arm_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/frv/frv.c (frv_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/i386/i386.c (ia32_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/ia64/ia64.c (ia64_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/pa/pa.c (hhpa_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/sparc/sparc.c (sparc_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - * config/v850/v850.c (v850_use_dfa_pipeline_interface): Remove. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define to hook_int_void_1. - -2004-07-06 Daniel Berlin - - * dojump.c (do_jump): REFERENCE_EXPR is dead. - * expr.c (expand_expr_real_1): Ditto. - * tree-inline.c (estimate_num_insns_1): Ditto. - * tree-pretty-print.c (dump_generic_node): Ditto. - (op_symbol): Ditto. - * tree.def: Ditto. - -2004-07-06 Daniel Berlin - - * tree-ssa-pre.c (reference_node_pool): New pool. - (find_or_generate_expression): Class 'r' is okay too. - (create_value_expr_from): Ditto. - (add_to_sets): LHS should not include vuses. - (eliminate): Ditto. - (compute_avail): Reverse ordering of tests. - Valuize INDIRECT_REF as well. - -2004-07-06 Richard Sandiford - - PR rtl-optimization/16380 - * loop.c (check_dbra_loop): Sink comparison instructions if they - do something other than set cc0. - -2004-07-06 James E Wilson - - * doc/interface.texi (longjmp and automatic variables): Delete - paragraph recommending taking the address of a variable. - -2004-07-06 Nathan Sidwell - - * vec.h (VEC_embedded_alloc): Remove. - (VEC_embedded_size, VEC_embedded_init): New. - (VEC_alloc, VEC_reserve, VEC_safe_push, VEC_safe_insert): Add - MEM_STAT_INFO. - (VEC_truncate): New. - (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL. - (vec_embedded_alloc): Remove. - * vec.c (vec_p_reserve, vec_o_reserve): Add MEM_STAT_DECL, adjust. - (vec_embedded_alloc): Remove. - -2004-07-06 Mark Mitchell - - * Makefile.in (langhooks.o): Do not depend on gt-langhooks.h. - (gt-langhooks.h): Remove. - -2004-07-06 George Helffrich - - * xcoffout.h (DBX_FINISH_SYMBOL): Fix typo. - -2004-07-06 Eric Botcazou - - * config/sparc/sparc.c (get_pc_symbol): Rename into - add_pc_to_pic_symbol. - (get_pc_symbol_name): Rename into add_pc_to_pic_symbol_name. - (load_pic_register): Account for previous changes. - Use reg_names. Don't create the label twice. - * config/sparc/sparc.md (UNSPEC_GET_PC): Rename into - UNSPEC_LOAD_PCREL_SYM. - (get_pc): Rename into load_pcrel_sym. Add predicate to - operands. Remove condition. - -2004-07-06 Nathan Sidwell - - * dbxout.c (dbxout_type): Don't test whether the binfo slot of - RECORD, UNION & QUAL_UNION is actually a binfo. - - * tree.h (TREE_VIA_VIRTUAL): Rename to ... - (BINFO_VIRTUAL_P): ... here. Require TREE_BINFO only. - (BINFO_MARKED, BINFO_FLAG_[16]): New binfo flags. - * dbxout.c (dbxout_type): Use BINFO_VIRTUAL_P. - * dwarf2out.c (add_data_member_location_attribute): Likewise. - (gen_inheritance_die): Likewise. - * tree-dump.c (deque_and_dump): Likewise. - * doc/c-tree.texi (Binfos): Add under reconstruction note. - -2004-07-06 Steven Bosscher - - * config/mcore/mcore.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): - Define. - * config/mcore/mcore.md: Model memory latency with a simple DFA - pipeline description instead of a define_function_unit. - -2004-07-05 Richard Kenner - - * langhooks-def.h (LANG_HOOKS_TREE_INLINING_VAR_MOD_TYPE_P): Extra arg. - * langhooks.h (var_mod_type_p): Likewise. - * c-decl.c (finish_decl): Add extra arg to variably_modified_type_p. - * expr.c (count_type_elements): Properly handle return from - array_type_nelts and properly test for overflow. - * gimplify.c (gimplify_init_constructor): Properly handle return - from array_type_nelts. - (gimplify_addr_expr): Remove redundant clear of TREE_SIDE_EFFECTS. - * integrate.c (copy_decl_for_inlining): Correct comments. - * tree-inline.c (remap_decl): Update comments, remove dead code, - and copy DECL_FIELD_OFFSET and DECL_QUALIFIER, if they exist. - (remap_type): Only remap if variably modified by vars in function - being inlined. - (copy_body_r): Use compatible_type langhooks to see when can fold. - (setup_one_parameter): Don't remap type. - (inline_forbidden_p_1): Add arg to variably_modified_type_p. - * tree.c (recompute_tree_invarant_for_addr_expr): Properly - compute TREE_INVARIANT for decl case. - (find_var_from_fn): New function. - (variably_modified_type_p): Add arg and call new function. - * tree.h (variably_modified_type_p): Add extra arg. - -2004-07-05 Eric Botcazou - - * config/sparc/sparc.md (nonlocal_goto): Remove disabled code. - (goto_handler_and_restore_v9): Delete disabled insn. - (goto_handler_and_restore_v9_sp64): Likewise. - -2004-07-05 Roger Sayle - - * calls.c (load_register_parameters): Call expand_shift instead - of expand_binop with ashl_optab (or other shift optab) directly. - * expr.c (emit_group_load, emit_group_store): Likewise. - * function.c (assign_parm_setup_block): Likewise. - * stmt.c (shift_return_value): Likewise. - -2004-07-05 Jakub Jelinek - - * expr.c (expand_assignment): Disable the bitfield += optimizations. - -2004-07-05 Joseph S. Myers - - * doc/sourcebuild.texi: Revert previous patch. - -2004-07-05 Joseph S. Myers - - * c-decl.c, config/m32r/m32r.c, expr.c, optabs.c: Don't check - TARGET_MEM_FUNCTIONS. - * system.h: Poison TARGET_MEM_FUNCTIONS. - * libfuncs.h (LTI_bcopy, LTI_bcmp, LTI_bzero, bcopy_libfunc, - bcmp_libfunc, bzero_libfunc): Remove. - * optabs.c (init_obtabs): Don't set bcopy_libfunc, bcmp_libfunc or - bzero_libfunc. - * doc/tm.texi (TARGET_MEM_FUNCTIONS): Remove. - * doc/standards.texi: Don't mention calling BSD string functions. - * doc/invoke.texi: Likewise. Mention that memmove may be called. - * config/vax/t-memfuncs: New. - * config/memcmp.c, config/memcpy.c, config/memmove.c, - config/memset.c: New. - * config/pdp11/t-pdp11 (LIB2FUNCS_EXTRA): Use these files. - * config.gcc (vax-*-bsd*, vax-*-sysv*, vax-*-ultrix*): Use - vax/t-memfuncs. - * config/alpha/alpha.h, config/arc/arc.h, config/arm/arm.h, - config/avr/avr.h, config/c4x/c4x.h, config/cris/aout.h, - config/elfos.h, config/gnu.h, config/h8300/h8300.h, - config/i386/gas.h, config/ia64/ia64.h, config/interix.h, - config/ip2k/ip2k.h, config/lynx-ng.h, config/m32r/m32r.h, - config/mcore/mcore.h, config/mips/mips.h, config/mmix/mmix.h, - config/netbsd.h, config/openbsd.h, config/pa/pa.h, - config/rs6000/rs6000.h, config/rtems.h, config/s390/s390.h, - config/sh/sh.h, config/sparc/sparc.h, config/stormy16/stormy16.h, - config/svr3.h: Don't define TARGET_MEM_FUNCTIONS. - -2004-07-05 Richard Henderson - - * function.c (assign_parm_setup_reg): Properly rename variables in - FUNCTION_ARG_CALLEE_COPIES section. - -2004-07-05 Zack Weinberg - - * tree-mudflap.c: Include cgraph.h. - (mf_init_extern_trees): Rename to mudflap_init. Export. - Rewrite to create synthetic declarations instead of looking - up declarations from mf-runtime.h. - (mf_make_builtin, mf_make_cache_struct_type): New functions. - (mf_cache_shift_decl, mf_cache_mask_decl, mf_unregister_fndecl): - Correct commentary. - (execute_mudflap_function_decls, mudflap_register_call): - Don't call mf_init_extern_trees. - (mudflap_finish_file): Use cgraph_build_static_cdtor. - - * tree-mudflap.h: Update prototypes. - * c-mudflap.c: Delete file. - * c-common.c: Include tree-mudflap.h. - (c_common_nodes_and_builtins): Call mudflap_init if appropriate. - * Makefile.in: Remove all references to c-mudflap.o. - Update dependencies. - -2004-07-05 John David Anglin - - * pa.md (prefetch, prefetch_32, prefetch_64): Only allow short - displacements with the spatial-locality cache-control completer. - -2004-07-05 Zack Weinberg - - * langhooks.c: Don't include gt-langhooks.h. - (var_labelno): Delete. - (lhd_set_decl_assembler_name): Do not append a distinguishing - number to file-scope internal-linkage declarations for the first - input file, even if they have DECL_CONTEXT set. Use DECL_UID of - the declaration itself (if at block scope), or its containing - TRANSLATION_UNIT_DECL (if at file scope) for the distinguishing - number. - - * opts.c (cur_in_fname): New global. - * opts.h: Declare it. - * tree.c: Include opts.h. - (make_node_stat): If creating a TRANSLATION_UNIT_DECL, give it - DECL_UID equal to cur_in_fname. - (copy_node_stat): Do not change DECL_UID when copying a - TRANSLATION_UNIT_DECL. - (build_common_tree_nodes): Adjust next_decl_uid to reserve the - range 0 .. num_in_fnames-1 for TRANSLATION_UNIT_DECLs. - - * c-decl.c (c_static_assembler_name): Delete. - * c-tree.h (c_static_assembler_name): Delete prototype. - * c-lang.c, objc/objc-lang.c: Don't override - LANG_HOOKS_SET_DECL_ASSEMBLER_NAME. - - * Makefile.in (tree.o): Update dependencies. - (GTFILES): Remove langhooks.c. - -2004-07-05 Roger Sayle - - * fold-const.c (fold) : Optimize unsigned modulus - by a power of two into a bit-wise AND, i.e. "X % C" as "X & (C-1)". - Normalize "X % C" as "X % -C" for signed modulus and negative C. - Optimize "X % -Y" as "X % Y" for signed modulus. - : Recursively call "fold" when transforming "(X % Y) == 0" - into "((unsigned) X % Y) == 0". - -2004-07-05 Joseph S. Myers - - * sourcebuild.texi (Config Fragments): Use @comma{} in - cross-reference to section title. - -2004-07-05 Richard Kenner - - * tree.h (DECL_SEEN_IN_BIND_EXPR_P): New macro. - * gimplify.c (gimple_add_tmp_var, gimplify_bind_expr): Use it. - (gimplify_target_expr, gimplify_expr): Likewise. - (copy_if_shared_r): No longer need special case for BIND_EXPR. - (unshare_body, unvisit_body): Only look at nested if BODY_P is - whole function. - (gimplify_compound_lval): See if we can strip any useless conversion. - (gimplify_modify_expr, gimplify_modify_expr_to_memcpy): Take size - from RHS, not LHS. - (gimplify_modify_expr_to_memset): Likewise. - (gimplify_expr, case CONSTRUCTOR): Handle use as statement. - * tree-inline.c (setup_one_parameter): Use DECL_SEEN_IN_BIND_EXPR_P. - (declare_inline_vars): Likewise. - (walk_type_fields): New function. - (walk_tree): Use it. - * tree-nested.c (create_tmp_var_for): Show seen in BIND_EXPR. - - * tree-sra.c (struct sra_walk_fns): Init function now returns bool. - (sra_walk_modify_expr): Allow init function to fail. - (scan_init): Now returns bool. - (generate_element_init): If can't understand INIT, return false. - (scalarize_init): Return false if generate_element_init does. - - * tree-pretty-print.c (dump_generic_node, case ARRAY_TYPE): Properly - print bounds. - - * expr.c (expand_expr_real_1, case SWITCH_EXPR): Don't check against - bounds if bounds aren't constant. - - * tree-cfg.c (verify_expr): Use CHECK_OP in binary case. - - * function.c, langhooks-def.h, langhooks.h: Move max_size hook - to type hooks; remove bogus PARAMS. - -2004-07-05 Nathan Sidwell - - * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Use TYPE_LANG_SLOT_1. - * dwarf2out.c (add_data_member_location_attribute): Check for - TREE_BINFO. - * tree.c (tree_node_kinds): Add "binfos". - (binfo_lang_slots): New. - (make_node_stat): Add TREE_BINFO. - (make_tree_binfo_stat): New. - (tree_node_structure): Add TREE_BINFO. - * tree.def (TREE_BINFO): New. - * tree.h (REC_OR_UNION_CHECK): Rename to ... - (RECORD_OR_UNION_CHECK): ... here. - (NOT_RECORD_OR_UNION_CHECK): New. - (TRE_VIA_VIRTUAL): Allow TREE_LIST or TREE_BINFO. - (TYPE_FIELDS, TYPE_METHODS, TYPE_VFIELD): Adjust for - RECORD_OR_UNION_CHECK. - (TYPE_BINFO): Use RECORD_OR_UNION_CHECK. - (TYPE_LANG_SLOT_1): New. - (BINFO_TYPE, BINFO_OFFSET, BINFO_VTABLE, BINFO_VIRTUALS, - BINFO_BASETYPES, TYPE_BINFO_BASETYPES, BINFO_VPTR_FIELD, - BINFO_BASEACCESSES, BINFO_INHERITANCE_CHAIN): Adjust. - (BINFO_ELTS): Remove. - (BINFO_LANG_SLOT): New. - (struct tree_binfo): New. - (binfo_lang_slots): Declare. - (enum tree_node_structure_enum): Add TS_BINFO. - (union tree_node): Add binfo. - (make_tree_binfo_stat): Declare. - (make_tree_binfo): New. - (enum tree_node_kind): Add binfo_kind. - - * objc/objc-act.c (start_class, objc_declare_protocols, - start_protocols): Use TYPE_LANG_SLOT_1. - * objc/objc-act.h (CLASS_BINFO_ELTS, PROTOCOL_BINFO_ELTS): Rename - to ... - (CLASS_LANG_SLOT_ELTS, PROTOCOL_LANG_SLOT_ELTS): ... here. - (CLASS_IVARS, CLASS_RAW_IVARS, CLASS_STATIC_TEMPLATE, - CLASS_CATEGORY_LIST, CLASS_PROTOCOL_LIST, CLASS_OWN_IVARS, - PROTOCOL_LIST, PROTOCOL_FORWARD_DECL): Use TYPE_LANG_SLOT_1. - -2004-07-05 Steven Bosscher - - * rtl.h (struct rtx_def): Remove the integrated flag. - Use the return_val flag for MEM_SCALAR_P. - Reshuffle and update flags in CLEAR_RTX_FLAGS. - -2004-07-05 Richard Sandiford - - PR target/16357 - * config/mips/mips.c (mips_block_move_straight): Pass BLKmode memrefs - to mips_expand_unaligned_load, mips_expand_unaligned_store, and - move_by_pieces. - -2004-07-05 Josef Zlomek - - * var-tracking.c: Fix some comments. - (frame_stack_adjust): New. - (vt_stack_adjustments): Init stack_adjust of entry block to - minus stack adjustment of function prologue. - (adjust_stack_reference): Do not adjust if adjustment == 0. - (compute_bb_dataflow): Use plus_constant instead of gen_rtx_PLUS. - (emit_notes_in_bb): Likewise. - (vt_add_function_parameters): Do not adjust locations of - function arguments. - (vt_initialize): Compute the stack adjustment of function - prologue and offset the initial "location" of frame_base_decl - from the stack pointer after prologue. - -2004-07-04 Richard Henderson - - * function.c (struct assign_parm_data_all): New. - (struct assign_parm_data_one): New. - (assign_parms_initialize_all, assign_parms_augmented_arg_list, - assign_parm_find_data_types, assign_parms_setup_varargs, - assign_parm_find_entry_rtl, assign_parm_is_stack_parm, - assign_parm_find_stack_rtl, assign_parm_adjust_entry_rtl, - assign_parm_adjust_stack_rtl, assign_parm_setup_block_p, - assign_parm_setup_block, assign_parm_setup_reg, - assign_parm_setup_stack, assign_parms_unsplit_complex): Split from ... - (assign_parms): ... here. - -2004-07-04 Daniel Berlin - - * tree-ssa-pre.c (bb_value_sets): phi_gen, tmp_gen, new_sets - now are bitmap_set_t's. - (bitmap_insert_into_set): No point in inserting the value if - it's invariant. - (bitmap_set_contains): New function. - (bitmap_set_replace_value): Add comment on why we do it - this way. - (set_contains): Removed. - (bitmap_set_subtract_from_value_set): New name of - set_subtract now that it's arguments are two different - types of sets. - Update callers. - (bitmap_find_leader): Change algorithm used. - (find_or_generate_expression): Update use of functions for new - bitmap sets. - (create_expression_by_pieces): Ditto. - (insert_aux): Ditto. - (insert): Ditto. - (add_to_sets): Ditto. - (init_pre): Ditto. - (execute_pre): Ditto. - (compute_avail): Ditto. - Also ignore virtual phis. - -2004-07-04 Richard Sandiford - - * combine.c (simplify_comparison): Fix comment typo. - -2004-07-04 Eric Botcazou - - * config/sparc/sparc.c (SIBCALL_SLOT_EMPTY_P): Rename - into LEAF_SIBCALL_SLOT_RESERVED_P after negation. - (eligible_for_sibcall_delay): Adjust use of SIBCALL_SLOT_EMPTY_P. - (output_restore): Change parameter from 'insn' to 'pat'. - (output_return): Adjust call to output_restore. - (output_sibcall): Adjust use of SIBCALL_SLOT_EMPTY_P. - Adjust call to output_restore. - -2004-07-04 Neil Booth - - * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_COMMON): Define __unix__ - and assert system is bsd. - -2004-07-04 Richard Sandiford - - * config/mips/mips.h (MASK_DEBUG_C, TARGET_DEBUG_C_MODE): Delete. - (TARGET_SWITCHES): Remove -mdebugc. - * config/mips/mips.md (seq, sne, sgt, sge, slt, sle, sgtu, sgeu) - (sltu, sleu): Remove TARGET_DEBUG_C_MODE handling. - (seq_[sd]i, sne_[sd]i, sge_[sd]i, sle_[sd]i_reg, sgeu_[sd]i) - (sle_[sd]i_reg): Delete. - -2004-07-04 Steven Bosscher - - * config/iq2000/iq2000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): - Define. - * config/iq2000/iq2000.md: Translate old pipeline description to an - equivalent new one. - -2004-07-04 Roger Sayle - - * tree-ssa-ccp.c (set_rhs): Change function to return a bool. - Ensure the replacement rhs is valid gimple before performing - the substitution. Return false if these sanity checks fail. - (fold_stmt): Only set changed to true, if set_rhs returns true. - (execute_fold_all_builtins): Only call modify_stmt if set_rhs - succeeds. - -2004-07-04 Richard Henderson - - PR c/16348 - * c-typeck.c (c_finish_loop): Don't clear cond for cond_is_first loops. - -2004-07-04 Mark Mitchell - - * configure.ac (ranlib_flags): New variable. - * Makefile.in (RANLIB_FLAGS): New variable. - (libbackend.a): Use it. - * configure: Regenerated. - -2004-07-04 Roger Sayle - - * ifcvt.c (noce_try_sign_mask): Call emit_store_flag to generate - a "sign mask" instead of using ashr_optab directly. - -2004-07-04 Neil Booth - - * doc/cpp.texi: Don't document what we do for ill-formed expressions. - * doc/cppopts.texi: Clarify processing of command-line defines. - -2004-07-04 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Adjust link for GNU Classpath. - -2004-07-04 Richard Henderson - - * rtl.def (ADDRESSOF): Remove. - * alias.c (rtx_equal_for_memref_p): Don't handle addressof. - (find_base_term, memrefs_conflict_p): Likewise. - * cse.c (fixed_base_plus_p, find_best_addr: Likewise. - (fold_rtx, cse_insn, set_live_p): Likewise. - * dwarf2out.c (mem_loc_descriptor): Likewise. - (add_location_or_const_value_attribute): Likewise. - * emit-rtl.c (copy_insn_1): Likewise. - * explow.c (memory_address): Likewise. - * expmed.c (store_split_bit_field): Likewise. - * expr.c (expand_expr_real_1): Likewise. - * function.c (instantiate_decl - (instantiate_virtual_regs_1, fix_lexical_addr): Likewise. - * genrecog.c (preds, validate_pattern): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * recog.c (general_operand, register_operand): Likewise. - (memory_address_p): Likwise. - * reload1.c (eliminate_regs, elimination_effects): Likewise. - * rtl.c (copy_rtx): Likewise. - * rtlanal.c (rtx_unstable_p, rtx_varies_p): Likewise. - (rtx_addr_can_trap_p, nonzero_address_p, address_cost): Likewise. - * rtlhooks.c (gen_lowpart_general): Likewise. - * stmt.c (expand_asm_operands): Likewise. - * web.c (entry_register, replace_ref, web_main): Likewise. - * config/alpha/alpha.c (input_operand, alpha_legitimate_address_p, - alpha_expand_block_move, alpha_expand_block_clear): Likewise. - * config/arm/arm.c (thumb_rtx_costs): Likewise. - * config/c4x/c4x.c (c4x_valid_operands): Likewise. - * config/frv/frv.c (move_destination_operand, move_source_operand, - condexec_dest_operand, condexec_source_operand, - condexec_memory_operand): Likewise. - * config/h8300/h8300.h (PREDICATE_CODES): Likewise. - * config/ia64/ia64.c (general_xfmode_operand): Likewise. - (destination_xfmode_operand): Likewise. - * config/mips/mips.h (PREDICATE_CODES): Likewise. - * config/mn10300/mn10300.c (mn10300_address_cost_1): Likewise. - * config/s390/s390.c (general_s_operand): Likewise. - * config/s390/s390.md (mov*): Likewise. - * config/sparc/sparc.h (PREDICATE_CODES): Likewise. - - * c-typeck.c (c_mark_addressable): Don't put_var_into_stack. - * expr.c (expand_expr_real_1): Likewise. - * stmt.c (expand_decl): Likewise. - * config/c4x/c4x.c (c4x_expand_builtin): Likewise. - - * function.c (struct fixup_replacement, struct insns_for_mem_entry, - postponed_insns, put_var_into_stack, put_reg_into_stack, - schedule_fixup_var_refs, fixup_var_refs, find_fixup_replacement, - fixup_var_refs_insns, fixup_var_refs_insns_with_hash, - fixup_var_refs_insn, fixup_var_refs_1, fixup_memory_subreg, - walk_fixup_memory_subreg, fixup_stack_1, optimize_bit_field, - gen_mem_addressof, flush_addressof, put_addressof_into_stack, - purge_bitfield_addressof_replacements, purge_addressof_replacements, - purge_addressof_1, insns_for_mem_hash, insns_for_mem_comp, - struct insns_for_mem_walk_info, insns_for_mem_walk, - compute_insns_for_mem, is_addressof, purge_addressof, setjmp_protect, - setjmp_protect_args): Remove. - (push_function_context_to): Don't handle var_refs_queue. - (pop_function_context_from, free_after_compilation): Likewise. - (instantiate_virtual_regs): Don't handle parm_reg_stack_loc. - (assign_parms, allocate_struct_function): Likewise. - (use_register_for_decl): New. - (expand_function_end): Don't setjmp_protect. - * function.h (struct emit_status): Update commentary. - (struct function): Remove x_max_parm_reg, x_parm_reg_stack_loc. - (max_parm_reg, parm_reg_stack_loc): Remove. - * passes.c (DFI_addressof): Remove. - (dump_file_info): Remove addressof. - (rest_of_handle_addressof): Remove. - (rest_of_compilation): Don't call it. - * rtl.h (ADDRESSOF_REGNO, ADDRESSOF_DECL): Remove. - * stmt.c (expand_decl): Use use_register_for_decl. - * tree.h: Update decls. - * web.c (mark_addressof): Remove. - * doc/invoke.texi (-dF): Remove. - -2004-07-03 Richard Henderson - - * config/ia64/ia64.c (spill_xfmode_operand): Use assign_stack_temp - instead of gen_mem_addressof. - * config/ia64/ia64.md (movxf): Use assign_stack_temp to handle - TImode output register. - -2004-07-03 Richard Henderson - - PR tree-optimization/16341 - * tree-sra.c (sra_walk_function): Increment to next stmt before - processing the current stmt. - (sra_insert_after): Always use BSI_SAME_STMT. - -2004-07-03 Richard Henderson - - * tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): Don't fold - fp plus with minus. - -2004-07-03 Joseph S. Myers - - * tree.c (type_hash_eq): Allow TYPE_MIN_VALUE which compares equal - with tree_int_cst_equal. - -2004-07-03 Andreas Schwab - - * config/ia64/ia64.md: Define new attribute "empty". - (prologue_use, nop_x, insn_group_barrier): Set it. - - * config/ia64/ia64.c (ia64_reorg): When looking for trailing call - skip over "empty" insns. - -2004-07-03 Richard Kenner - - * tree-inline.c (initialize_inlined_parameters): Pass proper function - context to gimplify_body. - (walk_tree): Don't walk into types twice. - (walk_tree, case POINTER_TYPE): Deal with mutually recursive pointers. - - * tree-sra.c (generate_element_init): Remove any useless conversions. - - * gimplify.c (gimplify_conversion): Remove stripping useless - conversions from here. - (gimplify_expr): Put it here, in place of call to STRIP_MAIN_TYPE_NOPS. - (gimplify_modify_expr_to_memcpy, gimplify_variable_sized_compare): - Unshare before substituting PLACEHOLDER_EXPR. - (gimplify_modify_expr_to_memset): Likewise. - Pass address of TO to memset, not TO itself. - (gimplify_init_constructor): Make copy of OBJECT so we have it each - time we make an expression (to match a PLACEHOLDER_EXPR). - - * tree-ssa.c (tree_ssa_useless_type_conversion): Also look at - VIEW_CONVERT_EXPR and NON_LVALUE_EXPR. - * tree-ssa-ccp.c (fold_stmt): Call just STRIP_USELESS_TYPE_CONVERSION. - * tree-ssa-dom.c (local_fold): Likewise. - - * langhooks-def.h (LANG_HOOKS_TYPE_MAX_SIZE): New langhook. - * langhooks.h (strct lang_hooks): New field type_max_size. - * function.c (assign_temp): Call it. - -2004-07-03 Steven Bosscher - - * config/sh/sh.c (sh_use_dfa_interface): Add TARGET_SH1. - * config/sh/sh.md: Convert the SH1 pipeline description to - a DFA model. - -2004-07-02 Zack Weinberg - - * c-decl.c (struct c_binding): Remove contour field; add - depth, invisible, nested fields. - (B_IN_SCOPE, B_IN_CURRENT_SCOPE, B_IN_FILE_SCOPE) - (B_IN_EXTERNAL_SCOPE): New convenience macros. - (bind): Add invisible and nested arguments. Initialize - new fields of struct c_binding; adjust loop scanning for - insertion point. - (free_binding_and_advance): Clear structure with memset. - (pop_scope): Adjust to match. Set DECL_CONTEXT on everything - in file scope, even if it's in external scope too. - (pushdecl): Adjust to match. Create invisible file-scope - declarations for block-scope forward declarations of static functions. - (pushtag, warn_if_shadowing, pushdecl_top_level, implicitly_declare) - (undeclared_variable, lookup_label, declare_label, define_label) - (lookup_tag, lookup_name, lookup_name_in_scope, builtin_function) - (c_make_fname_decl, store_parm_decls_newstyle, identifier_global_value) - (store_parm_decls_oldstyle): Adjust to match. - (diagnose_mismatched_decls): Correct handling of linkage clashes. - (merge_decls): No need to copy C_DECL_IN_EXTERNAL_SCOPE. - - * c-tree.h (C_DECL_IN_EXTERNAL_SCOPE): Delete. - (C_DECL_DECLARED_BUILTIN, C_DECL_REGISTER): Slide down one. - -2004-07-02 Richard Henderson - - * c-decl.c (grokdeclarator): Don't frob current_function_decl - around variable_size. - (set_decl_nonlocal): Remove. - (store_parm_decls): Add stmts for pending sizes. - * calls.c (calls_function, calls_function_1): Remove. - (precompute_arguments): Don't call it. - * cfgexpand.c (set_save_expr_context): Remove. - (tree_expand_cfg): Don't call it. - * dwarf2out.c (add_bound_info): Don't handle SAVE_EXPR. - (dwarf2out_finish): Likewise. - * expr.c (emit_block_move): Adjust addresses to BLKmode. - (store_constructor): Don't pre-evaluate SAVE_EXPR. - (safe_from_p): Don't queue SAVE_EXPRs. - (expand_expr_real_1 ): Rewrite to expect, - or build plain VAR_DECLs. - * fold-const.c (twoval_comparison_p): Don't look at SAVE_EXPR_RTL. - (fold): Likewise. - (fold_checksum_tree): Don't special-case SAVE_EXPR. - * function.c (free_after_compilation): Don't clear x_save_expr_regs. - (put_var_into_stack): Don't handle SAVE_EXPR. - (gen_mem_addressof): Likewise. - * function.h (struct function): Remove x_save_expr_regs. - (save_expr_regs): Remove. - * gengtype.c (adjust_field_tree_exp): Don't special-case SAVE_EXPR. - * print-tree.c (print_node): Don't dump SAVE_EXPR_NOPLACEHOLDER. - * stor-layout.c (variable_size): Don't set it. - (force_type_save_exprs, force_type_save_exprs_1): Remove. - * tree-inline.c (remap_save_expr): Remove fn argument. Update - all callers. Don't set SAVE_EXPR_CONTEXT. - * tree-inline.h (remap_save_expr): Update decl. - * tree.c (save_expr): Update build size. - (first_rtl_op): Don't handle SAVE_EXPR. - (unsave_expr_1, contains_placeholder_p): Likewise. - (decl_function_context): Likewise. - * tree.def (SAVE_EXPR): Remove args 1 and 2. - * tree.h (SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL): Remove. - (SAVE_EXPR_NOPLACEHOLDER, SAVE_EXPR_PERSISTENT_P): Remove. - -2004-07-03 Joseph S. Myers - - * doc/bugreport.texi, doc/configterms.texi, doc/contrib.texi, - doc/contribute.texi, doc/cpp.texi, doc/cppinternals.texi, - doc/extend.texi, doc/install.texi, doc/invoke.texi, doc/md.texi, - doc/portability.texi, doc/tree-ssa.texi, doc/trouble.texi: Avoid - some first-person references and patronizing comments. Based on - printed manual. - * doc/invoke.texi: Don't reference fortran@gnu.org. - * doc/trouble.texi (Warning when a non-void function value is - ignored): Rewrite. From Russ Allbery and Chris Devers. - -2004-07-02 Daniel Berlin - - * config/rs6000/rs6000.c (struct processor_costs): New structure - used to hold instruction latencies/sizes for processor types. - (rs6000_cost): New global variable pointing to current CPU's costs. - (rs6000_override_options): Initialize rs6000_cost to point to the - appropriate cost table based upon rs6000_cpu and optimize_size. - (rs6000_rtx_costs): Use rs6000_cost to avoid hardcoding processor - timings inline. - -2004-07-02 Richard Henderson - - * expmed.c (make_tree): Don't use SET_DECL_RTL. - -2004-07-02 Steven Bosscher - - * tree-flow.h (bb_ann_d): Remove ephi_nodes field. - -2004-07-01 Richard Henderson - - * config/alpha/alpha.c (struct machine_function): Add gp_save_rtx. - (alpha_gp_save_rtx): Use assign_stack_local instead of - gen_mem_addressof. - -2004-07-01 Richard Henderson - - * config/alpha/alpha.c (struct alpha_rtx_cost_data): Add int_div. - (alpha_rtx_cost_data): Update to match. - (alpha_rtx_cost_size): New. - (alpha_rtx_costs): Honor optimize_size. - -2004-07-01 Richard Henderson - - * gimple-low.c (lower_function_body): Don't reset_block_changes here. - * cfgexpand.c (tree_expand_cfg): Do it here. - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): And here. - * config/ia64/ia64.c (ia64_output_mi_thunk): And here. - * config/mips/mips.c (mips_output_mi_thunk): And here. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): And here. - * config/sh/sh.c (sh_output_mi_thunk): And here. - * config/sparc/sparc.c (sparc_output_mi_thunk): And here. - -2004-07-01 Richard Henderson - - * tree.def (RTL_EXPR): Remove. - * c-typeck.c (lvalue_p): Don't handle it. - * expr.c (safe_from_p): Likewise. - (expand_expr_real_1): Likewise. - * fold-const.c (non_lvalue, operand_equal_p, fold): Likewise. - (fold_checksum_tree, tree_expr_nonnegative_p): Likewise. - * gengtype.c (adjust_field_tree_exp): Likewise. - * stmt.c (warn_if_unused_value): Likewise. - * tree-gimple.c (recalculate_side_effects): Likewise. - * tree-pretty-print.c (dump_generic_node): Likewise. - * tree.c (make_node_stat, first_rtl_op, unsave_expr_1): Likewise. - (unsafe_for_reeval, stabilize_reference, build1_stat): Likewise. - * tree.h (RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, RTL_EXPR_ALT_RTL): Remove. - - * stmt.c (struct stmt_status): Remove x_last_expr_type, - x_last_expr_value, x_last_expr_alt_rtl, x_expr_stmts_for_value. - (last_expr_type, last_expr_value, last_expr_alt_rtl): Remove. - (expand_expr_stmt): Merge with expand_expr_stmt_value. Remove - all the bits that tracked last_expr. - (expand_end_bindings): Don't track last_expr. - (expand_start_stmt_expr, expand_end_stmt_expr): Remove. - (clear_last_expr): Remove. - (expand_asm): Don't call it. - (expand_asm_operands, expand_end_cond): Likewise. - (expand_naked_return, expand_null_return_1): Likewise. - * c-typeck.c (c_begin_compound_stmt): Likewise. - * cfgexpand.c (expand_block): Use expand_expr_stmt. - * expr.c (expand_expr_real_1): Likewise. - * tree.h: Update prototypes. - - * function.h (struct sequence_stack): Remove sequence_rtl_expr. - (struct emit_status): Remove sequence_rtl_expr. - (struct function): Remove x_rtl_expr_chain. - (seq_rtl_expr, rtl_expr_chain): Remove. - * function.c (struct temp_slot): Remove rtl_expr. - (assign_stack_temp_for_type): Don't set it. - (free_temp_slots, pop_temp_slots): Don't check it. - (free_after_compilation): Don't clear x_rtl_expr_chain. - (fixup_var_refs): Don't search it. - (preserve_rtl_expr_result, free_temps_for_rtl_expr): Remove. - * emit-rtl.c (start_sequence): Don't use sequence_rtl_expr - or seq_rtl_expr. - (push_topmost_sequence): Likewise. - (end_sequence, init_emit): Likewise. - (start_sequence_for_rtl_expr): Remove. - * expmed.c (make_tree): Build a VAR_DECL instead of an RTL_EXPR. - * rtl.h (preserve_rtl_expr_result): Remove. - -2004-07-02 Kazu Hirata - - * ifcvt.c, modulo-sched.c, tree-alias-common.c, tree-sra.c, - tree-ssa-copy.c, tree-ssa-dom.c, tree-ssa-pre.c: Fix comment - typos. - -2004-07-02 Aaron W. LaFramboise - - * gcc.c (STANDARD_STARTFILE_PREFIX_1): Define. - (STANDARD_STARTFILE_PREFIX_2): Define. - (standard_startfile_prefix_1): Initialize to - STANDARD_STARTFILE_PREFIX_1. - (standard_startfile_prefix_2): Initialize to - STANDARD_STARTFILE_PREFIX_2. - * config/i386/mingw32.h (MD_STARTFILE_PREFIX): Remove. - (STANDARD_STARTFILE_PREFIX_1): Define. - (STANDARD_STARTFILE_PREFIX_2): Define. - * doc/tm.texi (STANDARD_STARTFILE_PREFIX_1): Document. - (STANDARD_STARTFILE_PREFIX_2): Document. - -2004-07-01 Richard Henderson - - * tree-sra.c (sra_walk_expr): Don't maybe_lookup_element_for_expr - in order to disable scalarization. Instead set a flag and wait - for a candidate decl. - -2004-07-01 Joseph S. Myers - - * doc/cppinternals.texi, doc/install.texi, doc/invoke.texi, - doc/md.texi, doc/sourcebuild.texi, doc/tm.texi, doc/trouble.texi: - Use terminology "testsuite" and "enumerated". - -2004-07-01 Richard Henderson - - * dwarf2out.c (reg_save): Use INVALID_REGNUM. - (dwarf2out_reg_save, dwarf2out_return_save): Likewise. - (initial_return_save): Likewise. - (flush_queued_reg_saves): Remap register numbers. - (dwarf2out_return_reg): Likewise. - -2004-07-01 Richard Kenner - - * gimplify.c (gimplify_one_sizepos): Don't do anything if any VAR_DECL. - - * tree-pretty-print.c (dump_generic_node, case ARRAY_REF): Use - access functions for lower bound and element size and only output - if lower bound nonzero or element size not same as that of type. - (dump_generic_node, case COMPONENT_REF): Use access func. for offset. - -2004-07-01 Paolo Bonzini - - * c-pretty-print.c (pp_c_postfix_expression): Fix pasto. - -2004-07-01 Per Bothner - - * final.c (final): Fix typo reported by Aaron W. LaFramboise. - -2004-07-01 Jakub Jelinek - - * expr.c (expand_assignment): Optimize bitfld += cst for 1 bit - bitfields as well. STRIP_NOPS from src operand and PLUS_EXPR's - first operand. Don't optimize if the bitfield is volatile. - -2004-07-01 Paolo Bonzini - - * c-pretty-print.c (pp_c_postfix_expression): Handle - floating-point comparison operators. - (pp_c_expression): Pass floating-point comparison - operators to pp_c_postfix_expression. - -2004-07-01 Roger Sayle - - * simplify-rtx.c (simplify_binary_operation) : Use - rtx_cost instead of "had_mult" to determine whether the transformed - expression is cheaper than the original. - -2004-07-01 Jerry Quinn - - * alias.c (get_alias_set, canon_rtx, get_addr, - nonoverlapping_memrefs_p, nonlocal_referenced_p_1, memory_modified_1): - Use MEM_P. - * builtins.c (expand_builtin_prefetch, expand_builtin_profile_func, - expand_builtin): Likewise. - * calls.c (expand_call, emit_library_call_value_1, store_one_arg): - Likewise. - * combine.c (can_combine_p, combinable_i3pat, try_combine, - find_split_point, combine_simplify_rtx, simplify_set, make_extraction, - rtx_equal_for_field_assignment_p, gen_lowpart_for_combine, - record_dead_and_set_regs_1, get_last_value_validate, - mark_used_regs_combine, move_deaths, unmentioned_reg_p_1): Likewise. - * cse.c (check_dependence, canon_hash, equiv_constant, - gen_lowpart_if_possible, cse_insn, invalidate_from_clobbers, - cse_around_loop, cse_check_loop_start, cse_set_around_loop, - count_reg_usage): Likewise. - * cselib.c (rtx_equal_for_cselib_p, add_mem_for_addr, cselib_lookup, - cselib_invalidate_mem, cselib_invalidate_rtx, cselib_record_set, - cselib_record_sets): Likewise. - * dbxout.c (PARM_PASSED_IN_MEMORY, dbxout_symbol, - dbxout_symbol_location, dbxout_parms, dbxout_reg_parms): Likewise. - * ddg.c (mark_mem_use, mark_mem_store, rtx_mem_access_p): Likewise. - * df.c (df_uses_record): Likewise. - * dojump (do_jump): Likewise. - * dwarf2out.c (stack_adjust_offset, mem_loc_descriptor, - loc_descriptor_from_tree, rtl_for_decl_location, add_bound_info, - decl_start_label): Likewise. - * emit-rtl.c (gen_complex_constant_part, gen_highpart, - operand_subword, change_address_1, make_safe_from): Likewise. - * explow.c (break_out_memory_refs, copy_all_regs, validize_mem, - stabilize, force_not_mem): Likewise. - * expmed.c (store_bit_field, store_split_bit_field, extract_bit_field, - expand_mult_const, expand_divmod, emit_store_flag): Likewise. - * expr.c (convert_move, convert_modes, emit_block_move, - emit_group_load, emit_group_store, clear_storage, emit_move_insn, - emit_move_insn_1, expand_assignment, store_expr, - store_constructor_field, store_constructor, store_field, - force_operand, safe_from_p, expand_expr_real_1, expand_increment): - Likewise. - * final.c (cleanup_subreg_operands, alter_subreg, - get_mem_expr_from_op): Likewise. - * flow.c (notice_stack_pointer_modification_1, - init_propagate_block_info, insn_dead_p, mark_set_1, mark_used_regs): - Likewise. - * function.c (mark_temp_addr_taken, preserve_temp_slots, - preserve_rtl_expr_result, put_var_into_stack, fixup_var_refs_1, - optimize_bit_field, flush_addressof, purge_addressof_1, - instantiate_decl, instantiate_virtual_regs_1, assign_parms, - setjmp_protect, setjmp_protect_args, fix_lexical_addr, - keep_stack_depressed): Likewise. - * ifcvt.c (noce_try_cmove_arith, noce_try_abs, noce_operand_ok, - noce_process_if_block, find_memory): Likewise. - * integrate.c (subst_constants, allocate_initial_values): Likewise. - * local-alloc.c (validate_equiv_mem_from_store, memref_referenced_p, - update_equiv_regs): Likewise. - * loop.c (scan_loop, prescan_loop, note_addr_stored, check_store, - maybe_eliminate_biv_1, find_mem_in_note_1): Likewise. - * optabs.c (expand_abs, emit_unop_insn): Likewise. - * passes.c (rest_of_handle_final): Likewise. - * postreload.c (reload_cse_simplify_set, reload_cse_simplify_operands, - move2add_note_store): Likewise. - * ra-build.c (detect_remat_webs): Likewise. - * ra-debug.c (dump_static_insn_cost): Likewise. - * ra-rewrite.c (slots_overlap_p, insert_stores): Likewise. - * recog.c (validate_change, apply_change_group, cancel_changes, - validate_replace_rtx_1, general_operand, register_operand, - nonmemory_operand, push_operand, pop_operand, memory_operand, - indirect_operand, asm_operand_ok, offsettable_memref_p, - offsettable_nonstrict_memref_p, constrain_operands, - store_data_bypass_p): Likewise. - * reg-stack.c (subst_stack_regs_pat): Likewise. - * regclass.c (record_operand_costs, scan_one_insn, record_reg_classes, - copy_cost, reg_scan_mark_refs): Likewise. - * regmove.c (optimize_reg_copy_3, stack_memref_p, - combine_stack_adjustments_for_block): Likewise. - * regrename.c (copyprop_hardreg_forward_1): Likewise. - * reload.c (can_reload_into, push_reload, decompose, immune_p, - find_reloads, find_reloads_address, find_reloads_address_1, - reg_overlap_mentioned_for_reload_p, refers_to_mem_for_reload_p, - find_equiv_reg): Likewise. - * reload1.c (reload, eliminate_regs, eliminate_regs_in_insn, - reload_as_needed, choose_reload_regs, emit_input_reload_insns, - do_input_reload, emit_reload_insns, gen_reload, delete_output_reload, - delete_address_reloads): Likewise. - * resource.c (mark_referenced_resources): Likewise. - * rtlanal.c (get_jump_table_offset, count_occurrences, - reg_referenced_p, reg_set_p, set_of_1, set_noop_p, - reg_overlap_mentioned_p, note_uses, replace_regs, nonzero_bits1, - num_sign_bit_copies1): Likewise. - * rtlhooks.c (gen_lowpart_general): Likewise. - * sched-deps.c (sched_analyze_1, sched_analyze_2): Likewise. - * sdbout.c (PARM_PASSED_IN_MEMORY, sdbout_symbol, - sdbout_toplevel_data, sdbout_parms, sdbout_reg_parms, - sdbout_global_decl): Likewise. - * simplify-rtx.c (simplify_subreg): Likewise. - * stmt.c (expand_asm_operands, expand_expr_stmt_value, expand_decl, - expand_anon_union_decl, expand_end_case_type): Likewise. - * unroll.c (calculate_giv_inc): Likewise. - * var-tracking.c (stack_adjust_offset_pre_post, - bb_stack_adjust_offset, track_expr_p, count_uses, add_uses, - add_stores, compute_bb_dataflow, vt_get_decl_and_offset, - vt_add_function_parameters): Likewise. - * varasm.c (make_var_volatile, notice_global_symbol, - assemble_external, decode_addr_const, mark_weak, - default_encode_section_info): Likewise. - -2004-07-01 Steven Bosscher - - * stmt.c (check_seenlabel): Remove. - (pushcase, pushcase_range, expand_end_case_type): Don't call it. - -2004-07-01 Richard Henderson - - * function.h (struct function): Remove x_function_call_count. - (function_call_count): Remove. - * calls.c (expand_call): Don't set it. - * integrate.c (copy_rtx_and_substitute): Likewise. - - * function.h (struct function): Remove x_cleanup_label. - (cleanup_label): Remove. - * stmt.c (expand_value_return): Don't use it. - * function.c (free_after_compilation): Don't set it. - (expand_function_start): Likewise. Remove parms_have_cleanups arg. - * cfgexpand.c (tree_expand_cfg): Update call. - * tree.h (expand_function_start): Update decl. - -2004-07-01 Joseph S. Myers - - PR c/1027 - * c-lang.c (c_initialize_diagnostics): Move from here ... - * c-objc-common.c: ... to here. Include "c-pretty-print.h". - (c_tree_printer): Use pretty-printer to format %T. - * c-pretty-print.c (pp_c_specifier_qualifier_list): Include space - before '*' if not C++. - (pp_c_direct_abstract_declarator): Don't try to print array upper - bound for flexible array members. - * c-tree.h: Include "diagnostic.h". - (c_initialize_diagnostics): Declare. - * objc/objc-lang.c (LANG_HOOKS_INITIALIZE_DIAGNOSTICS): Define. - * c-format.c (format_type_warning): New function. Improve - diagnostics for incorrect format argument types. - (check_format_types): Use it. Add two parameters. Use the - TYPE_MAIN_VARIANT of wanted_type. - (check_format_info_main): Pass new parameters to - check_format_types. - (struct format_wanted_type): Update comment. - -2004-07-01 Nick Clifton - - * target.h (struct gcc_target): Add new field to struct cxx: - import_export_class. - * target-def.h (TARGET_CXX): Initialise the new field. - (TARGET_CXX_IMPORT_EXPORT_CLASS): Provide a default value for - the new field. - * doc/tm.texi: Document the new target hook. - -2004-07-01 Paolo Bonzini - - * builtins.c (fold_builtin_classify): Fix typo. - -2004-07-01 Richard Henderson - - * function.c (identify_blocks, identify_blocks_1): Remove. - * function.h (identify_blocks): Remove. - * rtl.h (NOTE_INSN_BLOCK_BEG): Update comment. - -2004-07-01 Paolo Bonzini - - * builtins.c (fold_builtin_classify): New. - (fold_builtin_unordered_cmp): Fix commentary. - (fold_builtin): Use it. - * builtins.def: Define builtins for isnan, - isnanf, isnanl, finite, finitef, finitel, - isinf, isinff, isinfl. - -2004-07-01 Richard Henderson - - * function.h (struct function): Remove dont_emit_block_notes. - * gimple-low.c (lower_function_body): Don't set it. - * cfgexpand.c (expand_block): Don't check it. - * cfglayout.c (insn_locators_initialize): Likewise. - * expr.c (expand_expr_real, expand_expr_real_1): Likewise. - * passes.c (rest_of_compilation): Likewise. - * stmt.c (expand_start_bindings_and_block): Likewise. - (expand_end_bindings): Likewise. - -2004-07-01 Richard Henderson - - * cgraph.h (cgraph_build_static_cdtor): Declare. - * cgraphunit.c (cgraph_build_static_cdtor): New. - * c-objc-common.c (build_cdtor): Use it. - * coverage.c (create_coverage): Likewise. - * 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. diff --git a/gcc/ChangeLog.2 b/gcc/ChangeLog.2 deleted file mode 100644 index 39b4f3a0d61..00000000000 --- a/gcc/ChangeLog.2 +++ /dev/null @@ -1,14469 +0,0 @@ -Fri Dec 31 19:10:31 1999 Richard Kenner - - * function.c (update_temp_slot_address): Handle case where sum of - temporary address plus offset in register is a valid address. - -1999-12-30 Herman A.J. ten Brugge - - * genrecog.c (change_state) Corrected typo. - -1999-12-30 Kaveh R. Ghazi - - * system.h (bcopy, bcmp, bzero, index, rindex, atof, atol, free, - getcwd, getenv, getwd, sbrk, strstr, malloc, calloc, realloc, - strerror, getrlimit, setrlimit, abort): Add prototype arguments. - -1999-12-30 Bernd Schmidt - - * i386.c (ix86_expand_fp_compare): In non-sahf non-TARGET_IEEE - case, expand GT comparisons correctly. Fix a comment before this - part of the code. - -1999-12-30 Gabriel Dos Reis - - * dwarfout.c: Include "frame.h" - * dwarf2out.c: Likewise. - * Makefile.in (dwarfout.o): Depend on frame.h - (dwarf2out.o): Likewise. - -1999-12-29 "Martin v. Loewis" - - Restore i386 binary compatibility in Dwarf EH info. - * config/i386/i386.h (DWARF_FRAME_REGISTERS): Define as 17, the old - value of FIRST_PSEUDO_REGISTER. - * frame.h (DWARF_FRAME_REGISTERS): Default to FIRST_PSEUDO_REGISTER. - (struct frame_state): Use DWARF_FRAME_REGISTERS. - * dwarfout.c (output_reg_number): Ditto. - * dwarf2out.c (reg_number, expand_builtin_init_dwarf_reg_sizes): Ditto. - (DWARF_FRAME_RETURN_COLUMN): Default to DWARF_FRAME_REGISTERS. - -1999-12-29 Bruce Korb - - * fixinc/fixincl.c(wait_for_pid): sometimes a WSTOPSIG of zero is OK - * fixinc/fixincl.tpl(TEST_CT): Just do the existence test once - (_RE_CT): not needed - * fixinc/fixlib.c(is_cxx_header): moved from fixtests.c - rewritten to scan the file text once only - "template<..." test added - * fixinc/fixlib.h(apply_fix_p_t): moved from fixtests.c - (is_cxx_header): declaration added - * fixinc/fixtests.c(is_cxx_header): removed - (apply_fix_p_t): removed - (double_slash_test): is_cxx_header is only called once now - * fixinc/hackshell.tpl: indexing the fixes is now done under DEBUG - * fixinc/inclhack.def(FIXINC_DEBUG): added for testing DEBUG state - within the templates. - The borken spelling of "broken" was fixed. - * fixinc/inclhack.tpl: The $VERBOSE level is used on various messages - The default level depends on FIXINC_DEBUG. - -1999-12-29 Kaveh R. Ghazi - - * crtstuff.c: If !inhibit_libc, include stdlib.h/unistd.h. - Otherwise provide a declaration for atexit. - (init_dummy): Make sure dummy call to atexit is nevertheless - called with correct number of args. - - * frame.c: Update comments referring to other files. - - * libgcc2.c: Likewise. - -1999-12-29 Kaveh R. Ghazi - - * cse.c (free_element, get_element): Remove unused prototypes. - - * fold-const.c (extract_muldiv): Initialize variables `op0' and - `op1'. - - * jump.c (invert_exp): Add explicit braces to avoid ambiguous - `else' clauses. - -Wed Dec 29 12:44:54 1999 Donald Lindsay - - * configure.in,configure: case arm for mn10200-*-* now sets - float_format=i32 so that float.h will correctly claim "double" - to be 32 bits. Ran autoconf to generate configure from .in file. - -Wed Dec 29 10:53:21 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (conditional zero): If op1 is a register, force it into - the same register as op0. - -1999-12-28 Mark Mitchell - - * tree.h (BINFO_BASETYPES): Improve documentation. - -1999-12-28 Kaveh R. Ghazi - - * configure.in (--enable-checking): Use a more portable `for' - loop syntax. - -1999-12-28 Kaveh R. Ghazi - - * configure.in (AC_DECL_SYS_SIGLIST, xm-siglist.h, - arm/xm-netbsd.h, NO_SYS_SIGLIST): Don't use. - - * xm-siglist.h, arm/xm-netbsd.h, mips/xm-news.h, mips/xm-sysv4.h: - Delete files. - - * gcc.texi (NO_SYS_SIGLIST, sys_siglist, SYS_SIGLIST_DECLARED): - Delete descriptions. - - * i386/osf1elf.h, i386/xm-cygwin.h, i386/xm-mingw32.h, m68k/3b1.h, - m68k/a-ux.h, m68k/dpx2.h, m68k/plexus.h, m68k/xm-hp320.h, - m88k/xm-m88k.h, mips/x-sni-svr4, pa/xm-pa.h, pa/xm-pahpux.h, - pa/xm-papro.h, we32k/xm-we32k.h, winnt/xm-winnt.h, xm-interix.h, - xm-svr4.h: Remove all instances of sys_siglist handling. - -1999-12-27 Jakub Jelinek - - * config/sparc/sparc.md (cmp_zero_qi, - cmp_zero_extendqisi2_andcc_set, cmp_zero_qi_sp64, - cmp_zero_extendqidi2_andcc_set): New patterns. - -1999-12-28 Manfred Hollstein - - * m68k/t-mot3300-gald (CROSS_LIBGCC1): Define to libgcc1-asm.a. - (LIB1ASMSRC, LIB1ASMFUNCS, LIB2FUNCS_EXTRA): Define. - (fpgnulib.c, xfgnulib.c): Add rules. - * m68k/t-mot3300-gas: Likewise. - -1999-12-27 Ian Lance Taylor - - * configure.in: Avoid [[ by using test and changequote. Add - changequote required by 1999-12-14 change. - * configure: Rebuild. - -1999-12-27 Clinton Popetz - - * config/mips/mips.h: Fix typo from 12/17/99 libgcc2 fix. - -1999-12-27 Christophe Jaillet - - * alias.c (nonlocal_reference_p): Add else for disjoint ifs. - * flow.c (find_use_as_address): Likewise. - * function.c (fixup_var_refs_1): Likewise. - (walk_fixup_memory_subreg, fixup_stack_1): Likewise. - * jump.c (invert_exp, redirect_exp): Likewise. - * loop.c (replace_call_address): Likewise. - (count_nonfixed_reads): Likewise. - * rtlanal.c (modified_between_p): Likewise. - (modified_in_p, volatile_insn_p, volatile_refs_p): Likewise. - (side_effects_p, replace_regs, jmp_uses_reg_or_mem): Likewise. - * unroll.c (remap_split_bivs): Likewise. - -1999-12-27 Kaveh R. Ghazi - - * diagnostic.c (v_message_with_decl): Use .* format specifier - instead of building the format specifier width manually. - - * system.h (strsignal): Don't check HAVE_STRSIGNAL when - determining whether to provide a prototype. Remove the - sys_siglist clause in the conditional. - -1999-12-23 Martin v. Löwis - - * fold-const.c (operand_equal_p): Use memcmp to compare string - constants. - Suggested by D. J. Bernstein - -1999-12-17 Jakub Jelinek - - * config/h8300/h8300.h (TARGET_H8300H, TARGET_H8300S): Make sure - UNITS_PER_WORD and BITS_PER_WORD are compile time constants when - compiling libgcc2. - * config/mips/mips.h (TARGET_64BIT): Likewise. - * config/rs6000/rs6000.h (TARGET_POWERPC64): Likewise. - * libgcc2.c: Use {,U}{HW,W,DW}type and DWunion everywhere instead - of {SI,DI}type and DIunion. Define these types to QI/HI modes on - dsps. Give routines proper names if SI/DI modes are not used. - * longlong.h: Use DWunion instead of DIunion. - -1999-12-26 Zack Weinberg - - * acconfig.h: New ENABLE flags: TREE_CHECKING, RTL_CHECKING, - GC_CHECKING, GC_ALWAYS_COLLECT. - * configure.in: Allow --enable-checking with an argument - listing check modes to enable. - * config.in, configure: Rebuilt. - * ggc-page.c, ggc-simple.c: Define GGC_POISON (and - GGC_ALWAYS_VERIFY for ggc-simple.c) only if - ENABLE_GC_CHECKING. Define GGC_ALWAYS_COLLECT only if - ENABLE_GC_ALWAYS_COLLECT. - * rtl.h, rtl.c: Change ENABLE_CHECKING to ENABLE_RTL_CHECKING - throughout. - * tree.h, tree.c: Change ENABLE_CHECKING to - ENABLE_TREE_CHECKING throughout. - -Sun Dec 26 07:48:20 1999 Richard Kenner - - * fold-const.c (fold_truthop): Properly check for FP RHS. - -1999-12-24 Mark Mitchell - - * toplev.h (note_deferall_of_defined_inline_function): Declare. - * toplev.c (note_deferral_of_defined_inline_function): New - function, split out from ... - (rest_of_compilation): ... here. Use it. - -Fri Dec 24 12:34:26 1999 Richard Kenner - - * expr.c (store_constructor): Don't call clear_storage if size is - variable. - -1999-12-24 Kaveh R. Ghazi - - * Makefile.in (toplev.o): Depend on loop.h. - - * dwarfout.c: Include tm_p.h. - - * emit-rtl.c (restore_emit_status): Mark parameter with - ATTRIBUTE_UNUSED. - - * final.c (final_scan_insn): Likewise. - - * flow.c (flow_nodes_print, flow_exits_print, flow_loops_cfg_dump, - flow_loop_nested_p, flow_loop_exits_find, flow_loop_nodes_find, - flow_depth_first_order_compute, flow_loop_pre_header_find, - flow_loop_tree_node_add, flow_loops_tree_build, - flow_loop_level_compute, flow_loops_level_compute, - flow_loop_outside_edge_p): Add prototypes. - (recompute_reg_usage): Mark parameters with ATTRIBUTE_UNUSED. - - * ggc-callbacks.c (lang_mark_tree, lang_mark_false_label_stack): - Mark with ATTRIBUTE_NORETURN. - - * hash.c (hash_newfunc): Mark parameter with ATTRIBUTE_UNUSED. - - * local-alloc.c (no_conflict_p): Likewise. - - * loop.c (insert_bct): Hide definitions of variables with hidden - usage. - (note_reg_stored): Mark parameter with ATTRIBUTE_UNUSED. - - * regclass.c (memory_move_secondary_cost): Mark variable `mem' - with ATTRIBUTE_UNUSED. - (record_reg_classes): Mark parameter with ATTRIBUTE_UNUSED. - (reg_scan): Likewise. - - * reload.c (find_reloads): Remove unused variables `changed'. - - * reload1.c (reload_reg_class_lower): Don't unnecessarily cast - away const-ness. - (allocate_reload_reg): Mark parameter with ATTRIBUTE_UNUSED. - Remove unused variable `insn'. - - * toplev.c: Include loop.h. - (report_file_and_line): Remove unnecessary prototype. - - * tree.c (build_block): Mark parameter with ATTRIBUTE_UNUSED. - - * unroll.c (biv_total_increment): Likewise. - -Thu Dec 23 23:15:22 1999 J"orn Rennecke - - * reload1.c (emit_input_reload_insns): Restore old behavior - wrt. 'special' reloads. - -1999-12-23 Zack Weinberg - - * Makefile.in (ggc-simple.c, ggc-page.c): Don't depend on - hash.h. (cse.c): Don't depend on hashtab.h. - - * cse.c: Don't include hashtab.h. - (hash_cse_reg_info, cse_reg_info_equal_p): Delete prototypes - of dead functions. - * ggc-simple.c: Don't include hash.h. - -1999-12-22 Jason Merrill - - * dwarf2out.c (add_abstract_origin_attribute): Call - gen_abstract_function on our function context. - -Thu Dec 23 03:57:10 1999 Hans-Peter Nilsson - - * Makefile.in (INTEGRATE_H): Fix typo: INTEGRATE_H, not INTREGRATE_H. - -1999-12-23 Michael Hayes - - * config/c4x/c4x.c (c4x_address_cost): Add statement to default - case in switch. - -1999-12-22 Michael Hayes - - * config/c4x/c4x.md (*addqi3_noclobber_reload): Change operand 0 - constraints to "a!r". - -1999-12-21 Mark Mitchell - - * Makefile.in (calls.o): Depend on function.h. - (alias.o): Likewise. - -1999-12-21 Bernd Schmidt - - * reload1.c (emit_reload_insns): Break out code and variables into... - (input_reload_insns, other_input_address_reload_insns, - other_input_reload_insns, input_address_reload_insns, - inpaddr_address_reload_insns, output_reload_insns, - output_address_reload_insns, outaddr_address_reload_insns, - operand_reload_insns, other_operand_reload_insns, - other_output_reload_insns): ... new static variables, and... - (emit_input_reload_insns, emit_output_reload_insns, do_input_reload, - do_output_reload): ... new functions. - -Tue Dec 21 07:06:36 1999 Richard Kenner - - * pa.h (FUNCTION_ARG_BOUNDARY): Never return 0. - -1999-12-21 Michael Hayes - - * md.texi: Add c4x constraints documentation. - -1999-12-21 Martin v. Löwis - - * config/i386/dgux.c (struct option): Rename to - lang_independent_option. - (struct m_options): Add description field. - (output_options): Rename option type, add sep declaration, output - ix86_cpu_string and ix86_arch_string only if set. - (output_file_start): Rename option type. - -Mon Dec 20 23:15:36 1999 Mike Stump - - * Makefile.in (crtbegin.o, crtend.o, s-crtS): Depend on - stmp-int-hdrs. - (libgcc2.a): Similarly. - -Mon Dec 20 23:06:47 1999 David Edelsohn - - * longlong.h (_ARCH_PPC): Only protect add_ssaaaa and sub_ddmmss - with W_TYPE_SIZE == 32. Do not fall through to POWER architecture - for umul_ppmm and smul_ppmm if !_ARCH_PPC and !_ARCH_POWER. - -Mon Dec 20 23:02:03 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (real_hex_to_f): Remove unused "isldouble" variable. - Remove redundant initialization of "frexpon" and "expon". - -Mon Dec 20 15:00:04 1999 Richard Kenner - - * tree.c (real_value_from_int_cst): Clear REAL_VALUE_TYPE object first. - - * expr.c (store_constructor): New argument SIZE; pass to clear_storage. - (store_constructor_field, expand_expr): Pass new arg. - -1999-12-20 Mark Mitchell - - * Makefile.in (explow.o): Depend on function.h. - - * stor-layout.c (set_sizetype): Fix typo. - -1999-12-20 Bernd Schmidt - - * function.c (cfun): Renamed from current_function. All users - changed. - * function.h (cfun): Rename declaration as well. - - * reload.h (struct insn_chain): Change live_throughout and dead_or_set - to be of type regset_head, not regset. All users changed by adding - address operator. - * reload1.c (new_insn_chain): Don't allocate regsets, just clear them. - -1999-12-20 Michael Hayes - - * config/c4x/rtems.h: New file. - -1999-12-19 Bernd Schmidt - - * reload1.c (spill_failure): Take class of failed reload as argument - and print it. Caller changed. - -Sun Dec 19 07:50:42 1999 Richard Kenner - - * rs6000.h (SUBTARGET_DEFAULT): New macro. - (TARGET_SWITCHES): Allow subtargets to default switches. - * rs6000/vxppc.h (SUBTARGET_DEFAULT): New macro. - -1999-12-18 Mark Mitchell - - * crtstuff.c (__do_global_ctors_aux): Do not call __cxa_finalize - in a main program. - -Sat Dec 18 20:42:43 1999 Richard Henderson - - * cccp.c (main): Define __STDC_VERSION__ as necessary. - * cppinit.c (cpp_handle_option): Likewise. - - * ginclude/stdarg.h (va_copy): Use __STDC_VERSION__ to - determine when to define. - -Sat Dec 18 20:34:00 1999 Richard Henderson - - * alpha.c (alpha_emit_conditional_move): If TARGET_FIX, handle - cmove with mismatched test and data modes. - -Sat Dec 18 20:30:15 1999 Richard Henderson - - * c-typeck.c (c_expand_start_case): Don't warn for long switch - in system headers. - -Sat Dec 18 16:28:43 1999 Richard Kenner - - * alias.c: Minor reformatting. - * flow.c: Likewise. - * regs.h: Likewise. - * stor-layout.c: Likewise. - * fold-const.c: Likewise. - (OVERFLOW_SUM_SIGN): Renamed from overflow_sum_sign. - (struct cb_args, const_binop_1, const_binop): Pass type of arg, - not arg itself. - (size_int_wide): Cache nodes even if garbage collecting. - (twoval_comparison_p): Reenable SAVE_EXPR case if operand - of SAVE_EXPR has no side effects. - * cse.c: Move a comment. - * tree.c: Minor reformatting. - (int_size_in_bytes): Return -1 if constant overflows. - -Sat Dec 18 18:30:20 1999 J"orn Rennecke - - * unroll.c (copy_loop_body): Don't treat a REG like a PLUS. - -1999-12-18 10:42 -0800 Zack Weinberg - - * objc/objc-parse.c: Regenerate. This file must be rebuilt - after any change to c-parse.in, even if objc-parse.y didn't - change. Oops. - -1999-12-18 David S. Miller - - * toplev.c (rest_of_compilation): Restore BLOCK tree - reconstruction and branch shortening changes lost in - December 18th change. - -Sat Dec 18 05:29:29 1999 Scott Bambrough - - * config/arm/linux-elf.h: Change all instances of - ARM_FLAG_SHORT_BYTES to ARM_FLAG_MMU_TRAPS. - * config/arm/uclinux-elf.h: Likewise. - -1999-12-18 Gabriel Dos Reis - - * toplev.c (notice, vmessage, v_message_with_file_and_line, - v_message_with_decl, file_and_line_for_asm, - 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, vnotice, count_error, - pfatal_with_name, fatal_io_error, need_error_newline, - last_error_function, last_error_tick, announce_function, - default_print_error_function, print_error_function, - report_error_function, fnotice, error_with_file_and_line, - error_with_decl, error_for_asm, error, set_fatal_function, fatal, - _fatal_insn, _fatal_insn_not_found, warning_with_file_and_line, - warning_with_decl, warning_for_asm, warning, pedwarn, - pedwarn_with_decl, pedwarn_with_file_and_line, sorry): Move to - diagnostic.c - (compile_file): Use fnotice instead of notice. Adjust call. - - * diagnostic.c: New file. - - * Makefile.in (OBJS): Include diagnostic.o - (diagnostic.o): Define dependence. - -1999-12-18 Michael Hayes - - * config/c4x/c4x.h (ASM_OUTPUT_XXX): Wrap in do-while(0). - Tweak formatting. - -1999-12-18 Michael Hayes - - * config/c4x/c4x.md (rpts_top, rptb_top): Add clobbers for rs and re. - -1999-12-17 13:21 -0800 Zack Weinberg - - * fixtests.c (is_cxx_header): New fn, split out of - double_slash_test. - (else_endif_label): Allow "#endif // comment" in C++ headers, - as determined by is_cxx_header. - * fixfixes.c (else_endif_label_fix): Update comment. - * fixincl.c: Don't output VERB_PROGRESS lines if stdout is not - a tty. - * genfixes: Correct double thinko in commandline parsing. - * hackshell.tpl: Generate correct sh syntax for bypass - entries. - - * inclhack.def (all): Whenever an inserted preprocessor - conditional is split over multiple lines, use double - backslashes in this file so the fixed header will be readable. - - (AAB_fd_zero_glibc_1_0): Rename to AAB_fd_zero_asm_posix_types_h - and add bypass entry for correct version of this header. - (AAB_fd_zero_glibc_1_x): Rename to AAB_fd_zero_gnu_types_h. - (AAB_fd_zero_glibc_2_0): Rename to AAB_fd_zero_selectbits_h. - - (hpux8_bogus_inlines): New fix, split from... - (ultrix_atof_param) ... here. - (math_expression): Add bypass entry keyed to glibc comment - indicating the problem has been dealt with; disable - unnecessary sed operations; update commentary. - (math_gcc_ifndefs): Rename to math_huge_val_from_dbl_max, - add select and bypass entries, simplify shell operation. - (math_huge_val_ifndef): Split from math_gcc_ifndefs. - - (ip_missing_semi, rs6000_param, tinfo_cplusplus, - ultrix_atof_param): Add select entry. - (stdio_va_list, sunos_mather_decl): Add bypass entry. - (systypes_for_aix, sysv86_string, tinfo_cplusplus): Put the - comments with the fixes they describe. - - * c-parse.in (string action): Do not warn about ANSI string - concatenation in system headers. Affects C parser only. - * c-parse.y, c-parse.c, c-parse.h: Rebuild. - -1999-12-16 Jakub Jelinek - - * config/sparc/sparc.h (TARGET_ARCH32): Exchange ifdefs so that if - compiling libgcc2 the macro depends always on arch cpp defines. - -Fri Dec 17 10:34:16 1999 Richard Earnshaw - - * loop.c (insert_loop_mem): Don't record MEMs from inside - EXPR_LISTs. - -Fri Dec 17 12:08:11 MET 1999 Jan Hubicka - - * regclass.c (regclass): Do not use flowgraph when not optimizing. - - * gcse.c (try_replace_reg): Do replacements in REG_EQUAL/REG_EQUIV - notes too, create one when replacement failed, attempt to simplify - resulting notes. - (cprop_insn): Propagate even to registers mentioned only in REG_EQUAL - or REG_EQUIV notes. - -1999-12-16 Mark Mitchell - - * crtstuff.c (__dso_handle): Declare. - (__cxa_finalize): Likewise. - (do_global_dtors_aux): Call __cxa_finalize if __dso_handle is - non-NULL. - - * invoke.texi: Document -fuse-cxa-atexit. - - * tree.h (ptr_type_node): Document. - (const_ptr_type_node): Likewise. - -Fri Dec 17 01:32:38 MET 1999 Jan Hubicka - - * regmove.c (optimize_reg_copy_1): Ignore LOOP notes. - (optimize_reg_copy_2): Likewise. - (optimize_reg_copy_3): Likewise. - (fixup_match_2): Likewise. - (regmove_optimize): Likewise. - (fixup_match_1): Liekwise. - - * i386.md (HI to SImode promoting splitters): Rewrite. - (pushsf mem peep2): New. - (testhi to andhi peep2): Remove. - * i386.h (x86_promote_QImode): New. - (TARGET_PROMOTE_QImode): New. - (PREDICATE_CODES): Add promotable_binary_operator. - * i386.c (x86_promote_QImode0: New. - (promotable_binary_operator): New. - * i386-protos.h (promotable_binary_operator): New. - - * i386.md (test?i_1): Use "nonmemory_operand" predicate, simplify - condition. - (one_cmpl?i*): Pass "NOT" to unary_operator_ok. - -1999-12-16 Mark Mitchell - - * Makefile.in (INTREGRATE_H): Rename to INTEGRATE_H. - * function.c (insert_block_after_note): Remove. - (retrofit_block): Likewise. - (identify_blocks): Fix indentation. - (reorder_blocks): Don't NULL out NOTE_SOURCE_FILE for a - NOTE_INSN_BLOCK_BEG or NOTE_INSN_BLOCK_END. - * function.h (insert_block_after_note): Remove prototype. - (retrofit_block): Likewise. - * integrate.c (expand_inline_function): Don't call - find_loop_tree_blocks. Use expand_start_bindings_and_block, not - just expand_start_bindings. Use the block_map to remap old - NOTE_BLOCKs to new ones. - (integrate_decl_tree): Keep track of remapped blocks. - * integrate.h (struct inline_remap): Add block_map. - * stmt.c (expand_fixup): Don't try to retrofit_blocks. Just set - NOTE_BLOCK on the notes. - (expand_start_bindings): Rename to ... - (expand_start_bindings_and_block): Add parameter. Set NOTE_BLOCK. - (expand_end_bindings): Set NOTE_BLOCK. - * toplev.c (rest_of_compilation): In function-at-a-time-mode, - reconstruct the BLOCK tree. - * tree.h (expand_start_bindings): Macroize. Call ... - (expand_start_bindings_and_block): New function. - -1999-12-16 Jakub Jelinek - - * config/sparc/sparc.c (print_operand): Cast fprintf arguments - to match the format. - -1999-12-16 David S. Miller - - * expr.c (emit_move_insn_1): Only emit clobbers if one of - the outputs is a SUBREG. - * rtlanal.c (reg_overlap_mentioned_p): Revert December 15th - change. - - * config/sparc/sparc.c (epilogue_renumber): Add default case - to switch stmt. - -Thu Dec 16 11:33:57 MET 1999 Jan Hubicka - - * toplev.c (rest_of_compilation): Run branch shortening after - reg-stack. - - * regclass.c (loop_depth): Remove - (scan_one_insn): Do not handle LOOP_NOTE insns. - (regclass): Go through basic blocks and set loop_cost - -Thu Dec 16 02:56:25 1999 Zack Weinberg - - * tree.h (DECL_FROM_INLINE): Check DECL_ABSTRACT_ORIGIN too. - -Thu Dec 16 10:43:35 MET 1999 Jan Hubicka - - * i386.md (movqi): Use "nonimmediate_operand" for output operand. - (movstrictqi, movdi, movsf, movdf, movxf): Likewise. - (adddi, addqi, addhi, subdi, subqi, subhi, ffs): Likewise. - -Thu Dec 16 02:41:26 1999 Richard Henderson (rth@cygnus.com) - - * loop.c (insert_loop_mem): Ignore memory clobbers. - - * combine.c (simplify_comparison): Reduce (OP (MINUS A B) 0) - to (OP A B). - -Thu Dec 16 02:26:11 1999 Jeffrey A Law (law@cygnus.com) - - * profile.c: Remove redundant #include "output.h". - - * h8300.md (HImode preinc peephole): Fix typo. - -1999-12-15 Jason Merrill - - * function.c (retrofit_block): Abort if we don't find a suitable insn. - (insert_block_after_note): Abort if we don't have a previous block. - Remove FN parameter. - * function.h: Adjust. - -1999-12-15 Mark Mitchell - - * builtins.c (expand_builtin_mathfn): Make sure not to expand the - argument more than once. - -1999-12-15 Jason Merrill - - * stmt.c (expand_decl): Expand upper bound of a dynamic array. - -1999-12-15 Jakub Jelinek - - * expr.c (emit_group_load): Use dst mode if src is VOIDmode. - -Wed Dec 15 16:11:55 MET 1999 Jan Hubicka - - * function.c (PREFERRED_STACK_BOUDNARY): Provide default value. - (assign_stack_local_1): Limit alignment to PREFERRED_STACK_BOUNDARY, - update stack_alignment_needed. - (prepare_function_start): Initialize stack_alignment_needed - * function.h (struct function): Add field stack_alignment_needed. - -Wed Dec 15 14:55:24 1999 J"orn Rennecke - - * caller-save.c (insert_one_insn): Returns struct insn_chain *. - Handle live_throughout / dead_or_set instead of live_before / - live_after. - (save_call_clobbered_regs): Get register livenessinformation from - chain->live_throughout. - (add_stored_regs): New function. - (insert_restore, insert_save): Add restored / saved registers to - dead_or_set. - * global.c (reg_dies): New parameter chain. - (reg_becomes_live): Third parameter is regs_set now. - Changed all callers. - (reg_dies): New parameter chain. Changed all callers. - (build_insn_chain): Set live_throughout instead of - live_before / live_after. - * reload.h (struct insn_chain): Replace members live_before / - live_after with live_throughout / dead_or_set. - * reload1.c (new_insn_chain): Handle live_throughout / dead_or_set - instead of live_before / live_after. - (maybe_fix_stack_asms, find_reload_regs, finish_spills): Likewise. - (order_regs_for_reload, find_reg, finish_spills): Likewise. - (choose_reload_regs_init): Likewise. - * stupid.c (current_chain, find_clobbered_regs): Delete. - (stupid_life_analysis): Set chain->live_throughout chain->dead_or_set - instead of chain->live_before / chain->live_after. - (mark_hard_ref): New function. - (stupid_mark_refs): Call mark_hard_ref. Clear chain->live_throughout. - -1999-12-15 David S. Miller - - * rtlanal.c (reg_overlap_mentioned_p): Handle CONCAT. - -Wed Dec 15 15:05:30 MET 1999 Jan Hubicka - - * flow.c (calculate_loop_depth): Make global, remove prototype, - rewrite to use new loop infrastructure. - (find_basic_block): Remove calculate_loop_depth call. - * toplev.c (rest_of_compilation): Call find_basic_block. - * output.h (calculate_loop_depth): Declare. - - * flow.c (dump_flow_info): Dump loop_depth. - (flow_loops_nodes_find): Increase loop_depth for basic block in the - body. - (flow_loops_find): Initialize the loop_depth for each basic block. - -1999-12-15 Jason Merrill - - * tree.c (decl_function_context): Handle virtual functions. - - * tlink.c (scan_linker_output): Don't look in demangled name when - looking for linker output keywords. - - * dwarfout.c (output_type): We can defer namespace-scope classes. - -Wed Dec 15 01:23:29 1999 Jeffrey A Law (law@cygnus.com) - - * regclass.c (record_reg_classes): Update comment for merging - register class preferences in reg->reg copies. Tighten conditions - for merging register class preferences in reg->reg copies. - -Wed Dec 15 02:19:32 1999 David Edelsohn - - * rs6000.md (tablejumpdi): Generate DImode LABEL_REF. - -1999-12-14 Geoff Keating - - * config/m68k/m68020-elf.h (ENDFILE_SPEC): Delete. - (INIT_SECTION_ASM_OP): Delete. - (FINI_SECTION_ASM_OP): Delete. - (STARTFILE_SPEC): Define to hold just crtbegin.o. - -1999-12-14 Jason Merrill - - * dwarf2out.c (add_abstract_origin_attribute): Do call abort if - the abstract origin wasn't emitted. - - * dwarf2out.c (class_scope_p): New fn. - (gen_subprogram_die): Use it. - (gen_variable_die): Use it. Tweak logic. - (gen_struct_or_union_type_die): Check context_die to determine - if we're function-local. - (dwarf2out_decl): Check DECL_BUILT_IN, not DECL_FUNCTION_CODE. - -1999-12-14 Bernd Schmidt - - * loop.c (check_dbra_loop): Can't reverse a biv that has - maybe_multiple set. - -1999-12-14 Nick Clifton - - * config/arm/arm.c: Add support for -mcpu=arm720 command line - switch. - -Tue Dec 14 18:13:32 1999 J"orn Rennecke - - * loop.c (strength_reduce): Fix sign of giv lifetime calculation - for givs made from biv increments. - -Tue Dec 14 08:11:27 1999 Richard Henderson - - * configure.in (alpha-osf, alpha-linux): Handle ev6[78]. - * alpha.c (override_options): Recognize -mcpu=ev67. - * alpha.h (CPP_CPU_EV67_SPEC): New. - (CPP_CPU_DEFAULT_SPEC): Examine TARGET_CPU_DEFAULT to use it. - (EXTRA_SPECS): Update. - -Tue Dec 14 08:04:28 1999 Richard Henderson - - * cppp.c (main): Set trigraphs and __STRICT_ANSI__ as - appropriate for -lang-c89 and -std=*. - * cppinit.c (cpp_handle_option): Likewise. - (new_pending_define): New, split out from cpp_handle_option. - * gcc.c (default_compilers): Don't define __STRICT_ANSI__ - or enable trigraphs for -ansi/-std=*. - - * ginclude/stdarg.h (__va_copy): New. - (va_copy): Don't define for C89. - -Tue Dec 14 08:37:27 CST 1999 Clinton Popetz - - * config/arm/arm.md (mulsidi3adddi, umulsidi3adddi): New patterns - for long long multiply-accumulate. - -Tue Dec 14 13:51:38 MET 1999 Jan Hubicka - - * regclass.c (scan_one_insn): Set loop_cost to 1 when - optimizing for size. - -1999-12-14 Bernd Schmidt - - * reload1.c (reload): Can't avoid select_reload_regs/finish_spills - if something changed. Back out that part of yesterday's changes. - - * loop.c (loop_max_reg): New static variable. - (loop_optimize): Initialize it. Eliminate one unnecessary call to - max_reg_num. - (scan_loop): Call reg_scan_update whenever we may have added new - registers, and update loop_max_reg. - -Tue Dec 14 12:07:29 MET 1999 Jan Hubicka - - * regclass.c (record_reg_classes): Do not do the copying preferrencing - when source does not die. - - * regclass.c (record_reg_classes): Handle INOUT operands properly. - -1999-12-14 Jakub Jelinek - - * config/sparc/linux64.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Don't support weird SPARC - variants on Linux. - * config/sparc/linux.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Likewise. - * config/sparc/linux-aout.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Likewise. - - * config/sparc/sparc.h (SPARC_DEFAULT_CMODEL): Default to CM_32. - (CONDITIONAL_REGISTER_USAGE): For block profiling fix %g4 on sparc64, - not %g2. - (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Use %g4 instead of %g2 - as sparc64 block profiling register. - * config/sparc/sparc.c (sparc_override_options): Allow block - profiling with -m32. - (sparc_block_profiler): Use %g4 instead of %g2 as sparc64 block - profiling register. - * config/sparc/linux64.h (MACHINE_STATE_*): Only provide these - macros on TARGET_ARCH32. sparc.h has macros good enough for sparc64. - * config/sparc/sol2.h (MACHINE_STATE_*): Likewise. - - * config/sparc/xm-sp64.h: Avoid using __sparc_v9__ when testing - for sparc64. - * config/sparc/sparc.h: Likewise. - * config/sparc/xm-sysv4-64.h: Likewise. - * config/float-sparc.h: Likewise. - * glimits.h: Likewise. - * longlong.h: Likewise. - - * config/sparc/linux64.h (DEFAULT_VTABLE_THUNKS): Define to 1. - (ASM_IDENTIFY_GCC): Remove. - -1999-12-14 Bernd Schmidt - - * combine.c (combine_simplify_rtx): Don't make shared rtl. - (simplify_logical): Likewise. - -1999-12-14 Mumit Khan - - * cccp.c (INO_T_EQ): Disable inode-based optimization for Cygwin. - * cppfiles.c (INO_T_EQ): Likewise. - -1999-12-14 Mumit Khan - - * i386/crtdll.h (STARTFILE_SPEC): Add -pg profiling support. - * i386/mingw32.h (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - * i386/uwin.h (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - - * i386/mingw32.h (SUBTARGET_PROLOGUE): Override Cygwin definition. - * i386/uwin.h (SUBTARGET_PROLOGUE): Likewise. - -Mon Dec 13 20:25:29 1999 Jeffrey A Law (law@cygnus.com) - - * combine.c (combine_simplify_rtx): Fix order of checks for - (ashiftrt foo C) -> (lt foo (const_int 0)) simplification. - -1999-12-13 Clinton Popetz - - * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi) Backed out - 12/10/99 change, reapplied to merged-arm-thumb-backend-branch. - -1999-12-10 Bernd Schmidt - - * hard-reg-set.h (inv_reg_alloc_order): Declare if REG_ALLOC_ORDER is - defined. - * regclass.c (inv_reg_alloc_order): New array. - (regclass_init): If REG_ALLOC_ORDER is defined, initialize it. - - * reload.h (struct insn_chain): Delete fields group_size, group_mode, - counted_for_groups, counted_for_nongroups. Add fields rld and - n_reloads. - * reload.c (push_secondary_reload): Don't set nongroup field of - new reloads. - (push_reload): Likewise. - (find_reloads): Delete code to compute nongroup fields. - * reload1.c (reload_insn_firstobj): New static variable. - (pseudos_counted, spilled_pseudos): Now of type regset_head. All - users changed. - (calculate_needs, find_tworeg_group, find_group, possible_group_p, - count_possible_groups, modes_equiv_for_class_p, new_spill_reg, - dump_needs, maybe_mark_pseudo_spilled, hard_reg_use_compare): Delete - functions. - (count_pseudo, select_reload_regs, copy_reloads, find_reg): New - functions. - (struct hard_reg_n_uses): Deleted. - (potential_reload_regs): Deleted. - (init_reload): Initialize spilled_pseudos and pseudos_counted. - (reload): Don't try to allocate reload registers if we already know - we have to make another pass. Call select_reload_regs. Free memory - starting with reload_firstobj when starting another pass. - Don't allocate spilled_pseudos. - (calculate_needs_all_insns): Call copy_reloads for an insn that - needs reloads; don't call calculate_needs. - (spill_cost): New static array. - (used_spill_regs_local): New static variable. - (order_regs_for_reload): Rewrite to lose hard_reg_n_uses and the code - to compute potential_reload_regs. - (find_reload_regs): Completely rewritten to use find_reg. - (allocate_reload_reg): Don't test counted_for_groups or - counted_for_nongroups. Lose NOERROR arg and code to give an error; - all cllers changed. - (choose_reload_regs): Add fallback code that uses the existing - register allocation from find_reload_regs. - -Mon Dec 13 00:54:14 1999 Philippe De Muyter - - * flow.c (create_edge_list): Cast xmalloc return value. - -Mon Dec 13 00:47:58 1999 Jeffrey A Law (law@cygnus.com) - - * doprnt.c: Remove incorrect comment closure. - - * cse.c: Fix a few minor whitespace goofs. - -1999-12-13 Don Bowman - - * mips/vxworks.h: Fix problem with comment termination. - (EXTRA_SECTIONS): Add in_sbss. - (EXTRA_SECTION_FUNCTIONS): Corresponding changes. - -1999-12-12 David S. Miller - - * cse.c (struct cse_reg_info): Add hash_next member, - reorder rest of struct for better packing on 64-bit - hosts. - (cse_reg_info_tree): Kill. - (REGHASH_SHIFT, REGHASH_SIZE, REGHASH_MASK, reg_hash, - REGHASH_FN): New custom pow2 hash mechanism. - (NBUCKETS): Kill. - (HASH_SHIFT, HASH_SIZE, HASH_MASK, HASH, table): Rework to - use a pow2 hash table. - (get_cse_reg_info): Rework to use new REGHASH. - (new_basic_block): Likewise, use HASH_SIZE, and inline - free_element call. - (remove_from_table): Rework to use HASH_SIZE/HASH_MASK, - and inline free_element call. - (lookup_as_function, insert, flush_hash_table, invalidate, - remove_invalid_refs, remove_invalid_subreg_refs, rehash_using_reg, - invalidate_for_call, use_related_value, find_comparison_args, - fold_rtx, equiv_constant, cse_insn, invalidate_memory): Likewise. - (hash_cse_reg_info, cse_reg_info_equal_p, free_element, - get_element): Kill. - -Sun Dec 12 21:31:44 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_basic_block): Free qty_table consistently. - -1999-12-12 David S. Miller - Jakub Jelinek - - * config/sparc/sparc.md (movtf reg/reg split): Don't generate - SUBREGs by hand, gen the appropriate hard reg directly. - (movtf reg/mem split): Likewise and alter_subreg on destination - if necessary. - (movtf mem/reg split): Similarly. - (movdf_cc_sp64): Rename from hidden pattern. - (movtf_cc_hq_sp64): Renamed from movtf_cc_sp64. - (movtf_cc_sp64, following split): New pattern and splitter. - (movdf_cc_reg_sp64): Rename from hidden pattern. - (movtf_cc_reg_hq_sp64): Renamed from movtf_cc_reg_sp64, require - TARGET_HARD_QUAD. - (movtf_cc_reg_sp64, following split): New pattern and splitter. - -1999-12-12 Stephen L Moshier - - * loop.c (load_mems): Don't hoist written floating point mem - if -ffloat-store. - -1999-12-12 Mark Mitchell - - * except.h (struct eh_queue): Add `next' pointer. - (struct eh_status): Make x_ehqueue a pointer. - (push_ehqueue): Declare. - (pop_ehqueue): Likewise. - * except.c (expand_eh_region_end): Adjust now that ehqueue is a - pointer. - (expand_fixup_region_end): Likewise. - (expand_leftover_cleanups): Likewise. - (push_ehqueue): Define. - (pop_ehqueue): Likewise. - (emit_cleanup_handler): Use push_ehqueue and pop_ehqueue rather - than doing it inline. - (expand_start_all_catch): Adjust now that ehqueue is a - pointer. - (mark_eh_queue): Mark all level of the queue. - (mark_eh_status): Adjust now that ehqueue is a - pointer. - (init_eh_for_function): Allocate ehqueue. - (free_eh_status): Free it. - * stmt.c (expand_cleanups): Save the ehqueue around the cleanup - expansion for a fixup. - -1999-12-12 Kaveh R. Ghazi - - * gthr-single.h (__gthread_active_p): Add prototype arguments. - - * libgcc2.c (__udivmoddi4): Remove unnecessary decls. - (__dummy, __builtin_saveregs, __bb_exit_trace_func, __bb_init_prg, - __bb_trace_func, __bb_trace_func_ret, __bb_trace_ret, - function_ptr, getpagesize, __enable_execute_stack, - __enable_execute_stack, __clear_insn_cache, - __enable_execute_stack, __do_global_dtors, __do_global_ctors, - _cleanup, _exit, __default_terminate, __terminate_func, - __terminate, __empty, __throw, new_eh_context, - eh_context_initialize, eh_context_static, eh_context_specific, - get_eh_context, __get_eh_context, __get_eh_info, - init_reg_size_table, eh_threads_initialize, - __get_dynamic_handler_chain, __sjthrow, __sjpopnthrow, - __unwinding_cleanup, throw_helper, __throw, __rethrow, - __pure_virtual): Add prototype arguments. - (__bb_exit_func): Cast a sizeof to long when comparing against one. - Cast a signed value to unsigned long when comparing against one. - (new_eh_context): Wrap in _GTHREADS macro. - (__sjthrow, __sjpopnthrow): Initialize variable `cleanup' at - declaration. - (in_reg_window): Mark parameters with __attribute__ ((__unused__)). - (throw_helper): Initialize variables `handler_p' and `pc_p'. - -1999-12-11 Kaveh R. Ghazi - - * combine.c (record_promoted_value): Remove unused variable - `links2'. - - * emit-rtl.c (renumber_insns): Likewise for `old_max_uid'. - - * global.c (record_conflicts): Likewise for `j'. - - * genoutput.c (output_insn_data): Don't unnecessarily cast away - const-ness. - -1999-12-11 Kaveh R. Ghazi - - * i386-protos.h (output_387_binary_op, output_fix_trunc, - output_fp_compare): Constify a char*. - - * i386.c (ix86_split_to_parts, ix86_safe_length_prefix): Add - static prototypes. - (override_options, ix86_comp_type_attributes, print_operand, - output_387_binary_op, output_fix_trunc, output_fp_compare): - Constify a char*. - (ix86_sched_reorder): Mark parameter `clock_var' with - ATTRIBUTE_UNUSED. - - * i386.h (DEBUG_PRINT_REG): Constify a char*. - -Fri Dec 10 16:12:13 1999 Alexandre Petit-Bianco - - * tree.def (EXPR_WITH_FILE_LOCATION): Temporarily add a third - operand, for use in the Java front-end. - -1999-12-10 Ben Collins - - * configure.in: Fix typo for "-64" in 64bit as check. - * configure: Rebuilt. - -1999-12-10 Jakub Jelinek - - * longlong.h (__sparc_v9__): Use %rDIGIT instead of %DIGIT where - appropriate. - -1999-12-10 Kaveh R. Ghazi - - * c-parse.in (string): With -Wtraditional, warn if ANSI string - concatenation is utilized. - - * invoke.texi (-Wtraditional): Document it. - -1999-12-10 Kaveh R. Ghazi - - * flow.c (flow_loops_dump): Avoid ANSI string concatenation. - Cast a ptrdiff_t to long and pass it to printf with %ld. - -1999-12-10 Geoff Keating - - * config/m68k/m68k.h (CONDITIONAL_REGISTER_USAGE): If we have no - 68881, we have no 68881 registers at all. - (HARD_REGNO_MODE_OK): It is always OK to put a MODE_FLOAT - value in a 68881 register if it is available. - -1999-12-10 Clinton Popetz - - * config/arm/arm.md (*mulsidi3adddi, *umulsidi3adddi): New patterns - for long long multiply-accumulate. - -1999-12-10 Bernd Schmidt - - * loop.c (insert_loop_mem): Undo last change. - -1999-12-10 David S. Miller - - * config/sparc/sparc.c (fp_sethi_p, fp_mov_p, fp_high_losum_p): - New functions. - * config/sparc/sparc-protos.h: Add them. - * config/sparc/sparc.h: Add them to PREDICATE_CODES. - (EXTRA_CONSTRAINT_BASE): New macro, handling Q, R, and S - constraints which use those helpers. - (EXTRA_CONSTRAINT): Use this new macro. - * md.texi: Update sparc target constraints documentation. - * config/sparc/sparc.md (clear_sf, clear_sfp, movsf_const_intreg, - movsf_const_high, movsf_const_lo, movsf_insn): Delete. - (movsf_insn_novis_liveg0, movsf_insn_novis_noliveg0, - movsf_insn_vis, movsf_lo_sum, movsf_high): New patterns. - (movsf high/lo_sum split): Rework for new patterns. - (movsf expander): Allow storing fp_zero to memory if ! live_g0. - -1999-12-09 Gavin Romig-Koch - - * c-common.c (c_common_nodes_and_builtins): - Create __builtin_ptrdiff_t and __builtin_size_t. - -Thu Dec 9 18:05:48 1999 Jeffrey A Law (law@cygnus.com) - - * pa/elf.h (MAX_OFILE_ALIGNMENT): Define. - -Fri Dec 10 00:53:10 1999 J"orn Rennecke - - * regclass.c (globalize_reg): Re-instate test that allows - fixed registers to be declared as a variable even after functions - are defined. - -Fri Dec 10 00:52:13 MET 1999 Jan Hubicka - - * i386.md (cpu attribute): Add "athlon". - (athlon_decode): New attribute. - (Athlon scheduling units definitions): New. - (fcmp and shld patterns): Set athlon_decode to "vector". - * i386.c (athlon_cost): New. - (m_ATHLON): New. - (x86_use_leave, x86_push_memory, x86_movx, x86_cmove, x86_deep_branch, - x86_use_sahf): Set for Athlon. - (x86_use_fiop): Unset for Athlon. - (override_options): Define Athlon alignments and "athlon" name. - (x86_adjust_cost): Penalize AGI and delayed latencies for Athlon. - * i386.h (TARGET_ATHLON): New. - (enum processor_type): Add PROCESSOR_ATHLON. - (TARGET_CPU_DEFAULT_SPEC): Set to "-D__tune_athlon__" - for CPU_DEFAULT==5 - (TARGET_CPP_CPU_SPECS): Set -D__tune_athlon__ for Athlon. - -1999-12-09 Andreas Jaeger - - * loop.c (record_biv): Declare parameter as int. - - * config/i386/i386-protos.h: Declare long_memory_operand. - -1999-12-09 Mark Mitchell - - * tree.c (copy_node): Do zero the TREE_CHAIN, even for an - EXPR_WITH_FILE_LOCATION. - -Thu Dec 9 11:36:24 MET 1999 Jan Hubicka - - * i386.md (neg??, abs?f, one_cmpl?i): Use nonimmediate_operand - in expander. - - * flow.c (recompute_reg_usage): Use basic block info to get loop_depth. - - * combine.c (try_combine, distribute_notes): Remove REG_N_REFS - updating code. - -1999-12-09 Jakub Jelinek - - * config/sparc/linux64.h (TARGET_DEFAULT): Make -mapp-regs - default on linux64 again. - * config/sparc/t-linux64: Add mno-app-regs and non-medlow code - models for multilibing. - * genmultilib: Accept | as alternative separator within a set in - MULTILIB_OPTIONS. - - * config/sparc/sparc.h (PROMOTE_FOR_CALL_ONLY): Define. - - * calls.c (precompute_arguments): Make sure initial_value contains - value pseudo which CSE expects. - * cse.c (struct set): New entry orig_src. - (cse_insn): Set it early on entry, use it for libcall EQUIV note - replacement. - -Wed Dec 8 22:24:15 1999 Richard Henderson - - * flow.c (count_basic_blocks): Don't add (use (const_int 0)) insns. - -1999-12-08 Bernd Schmidt - - * loop.c (insert_loop_mem): Don't hoist volatile mems out of loops. - -1999-12-08 Jakub Jelinek - - * config/sparc/sparc.c (ultra_cmove_results_ready_p, - ultra_fpmode_conflict_exists, ultra_flush_pipeline): Typo fix. - - * config/sparc/sparc.h (SPARC_SETHI_P): Don't look at topmost 32 bits - if TARGET_ARCH32. - - * longlong.h: Merge in changes from glibc. - Also don't clobber %g2 register in 32bit SPARC assembly, so that - -mno-app-regs libgcc can be compiled. - * libgcc2.c: Add defines so that the updated longlong.h - can be used in libgcc2.a. Also, make sure on most architectures - (at least on all which have optimized code in longlong.h defined - for) {SI,W}_TYPE_SIZE is suitable for preprocessor tests. - -1999-12-08 Alexandre Oliva - - * config/sparc/sol2-64.h: Same as sol2-sld-64.h, except that - `-m EMULATION' is added to non-default LINK_ARCH_SPECs. - * configure.in: Use sol2-64.h instead of sol2-sld-64.h if linker - is GNU ld. - * configure: Rebuilt. - -Wed Dec 8 03:45:40 1999 Richard Henderson - - * alpha.c (secondary_reload_class): For !BWX, sub-simode - outputs require a register. - -1999-12-08 Brendan Kehoe - - * Makefile.in (FPBIT_FUNCS, DPBIT_FUNCS): Add _sf_to_usi - _df_to_usi. Required by some targets, so US_SOFTWARE_GOFAST calls to - functions like dptoul will be resolved. - (libgcc2.a): Make sure that the object files from DPBIT are named - differently (prefix `_dp') from those that would be coming from - FPBIT. - -1999-12-08 Alexandre Oliva , Jakub Jelinek - - * configure.in: When target is sparc* and tm_file contains 64, - test for 64bit support in assembler. If not supported, remove - sparc/t-sol2-64 from target-dependent Makefile fragments. - (AS_SPARC64_FLAG): Define to the assembler flag for 64bit. - (HAVE_AS_OFFSETABLE_LO10): Rework test to use these flags. - (HAVE_AS_REGISTER_PSEUDO_OP): Use config.cache. - * acconfig.h (AS_SPARC64_FLAG): Added. - * configure, config.in: Rebuilt. - * config/sparc/sol2-sld-64.h: Same as sol2.h, if without 64bit - support. Use AS_SPARC64_FLAG. - -1999-12-07 Jakub Jelinek - - * config/sparc/sparc.c (hard_32bit_mode_classes): Mark registers - suitable for holding OFmode values so that gcc works with complex - quad long doubles. - (hard_64bit_mode_classes): Likewise. - - * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): Fix pattern - so that it is actually matched. - (sethi_di_medlow): Likewise. - - * config/sparc/sparc.h (LEGITIMATE_CONSTANT_P): Consider TFmode 0.0L - as legitimate constant if -mvis. - * config/sparc/sparc.md (movtf): Likewise. - (clear_sf): Use const_double_operand. - (clear_sfp, clear_dfp, clear_tf, clear_tfp): New patterns. - - * config/sparc/sparc.c (sparc_emit_float_lib_cmp): New function. - * config/sparc/sparc-protos.h (sparc_emit_float_lib_cmp): Prototype. - * config/sparc/sparc.h (*_LIBCALL): Only use for _Q_* - routines, _Qp_* cannot be handled like that now. - (INIT_TARGET_OPTABS): Likewise. - * config/sparc/sparc.md (cmptf): Accept soft float ARCH64. - (seq, sne, sgt, sge, slt, sle, beq, bne, bgt, bge, blt, ble): Call - sparc_emit_float_lib_cmp if ARCH64 and soft float. - (extendsftf2, extenddftf2, trunctfsf2, trunctfdf2, floatsitf2, - floatditf2, fix_trunctfsi2, fix_trunctfdi2, addtf3, subtf3, multf3, - divtf3, sqrttf3): New expanders. - (extendsftf2_hq, extenddftf2_hq, trunctfsf2_hq, trunctfdf2_hq, - floatsitf2_hq, floatditf2_hq, fix_trunctfsi2_hq, fix_trunctfdi2_hq, - addtf3_hq, subtf3_hq, multf3_hq, divtf3_hq, sqrttf3_hq): Rename from - non-_hq patterns. - - * configure.in (sparc64-*-linux*): Use posix threads if enabled. - * configure: Rebuilt. - * config/sparc/linux64.h: Default to -mcpu=ultrasparc if no - -mcpu is given and we're doing 64bit compiles. - -Tue Dec 7 19:22:06 1999 Richard Henderson - - * loop.h (struct induction): Add multi_insn_incr. - * loop.c (basic_induction_var): New multi_insn_incr argument. - Set it if we search back through previous insns for the biv. - (record_biv): New multi_insn_incr argument; fill in struct induction. - (strength_reduce): Discard an iv with multiple bivs, any of - which require multiple insns to increment. - -1999-12-07 Martin v. Löwis - - * invoke.texi (C Dialect Options): Remove -flang-c9x, add -std - documentation. - -1999-12-06 David S. Miller - - * combine.c (check_promoted_subreg): Do not conditionalize this upon - PROMOTE_FUNCTION_RETURN. - -Mon Dec 6 15:12:14 1999 Jim Wilson - - * regmove.c (optimize_reg_copy_1): If no REG_DEAD note, check for - and handle REG_UNUSED note on insn. - - * combine.c (force_to_mode, case LSHIFTRT): New local inner_mask. Set - inner_mask instead of mask. - -1999-12-06 Brendan Kehoe - - * dwarf2out.c (field_byte_offset): As with dwarfout.c, size can be - zero if there was an error. - -1999-12-06 Jakub Jelinek - - * config/sparc/sparc.md (return_losum_di): Fix typo in asm - output string. - - * longlong.h: Fix clobbers in SPARC asm statements. - - * config/sparc/sparc.c (input_operand): Allow HImode and QImode - valid sethi operations when TARGET_ARCH64. - - * calls.c (save_fixed_argument_area): If save_mode is BLKmode, - always use move_by_pieces to avoid infinite recursion. - (restore_fixed_argument_area): Likewise. - - * combine.c (check_promoted_subreg, record_promoted_value): New - functions. - (combine_instructions): Use them to retain nonzero and sign bit - information after SUBREGs are eliminated by optimizations in - this pass if PROMOTE_FUNCTION_RETURN. - - * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): Document - .register declaration. Don't use variables with __ prefixes. - -Mon Dec 6 12:24:52 1999 Richard Kenner - - * fold-const.c (optimize_bit_field_compare): Only use one mode - for both RHS and LHS in non-constant case. - -1999-12-06 Nathan Sidwell - - * frame.c (start_fde_sort): Only allocate erratic array, if - linear one was allocated. Return allocated flag. - (fde_insert): Only insert, if there's a valid array. - (fde_end_sort): Split, sort and merge if linear and erratic - arrays exist, else just sort linear one. - (search_fdes): New function. Linear search through original fde - structure. - (frame_init): Permit multiple initializations. Cope with - memory shortages. - (find_fde): Fallback on linear search, if failed to sort array. - (__deregister_frame_info): Only free sorted array, if we - allocated it. - -1999-12-06 Jakub Jelinek - - * config/sparc/sparc.h (MUST_PASS_IN_STACK): New macro. - -1999-12-05 Jakub Jelinek - - * config/sparc/sparc.c (sparc64_initialize_trampoline): Use gen_flushdi. - -1999-12-05 Mark Mitchell - - * tree.h (special_function_p): Declare. - * calls.c (special_function_p): Make it global. Don't take `name' - as a parameter. Fix typo in 1999-11-28 change. - (expand_cal): Adjust. - -1999-12-04 Mark Mitchell - - * tree.def (EXPR_WITH_FILE_LOCATION): Fix comment formatting. - * tree.h (EXPR_WFL_FILENAME): Define in terms of - EXPR_WFL_FILENAME_NODE. - (EXPR_WFL_FILENAME_NODE): Use the second operand slot rather than - the TREE_CHAIN. - * print-tree.c (print_note): Print TREE_PRIVATE and - TREE_PROTECTED. - - * dwarf2out.c (add_abstract_origin_attribute): Don't abort when - the original die cannot be found. - - * varray.h (varray_head_tag): Add elements_used. - (VARRAY_PUSH): New macro. - (VARRAY_POP): Likewise. - (VARRAY_TOP): Likewise. - Add variants of VARRAY_PUSH and VARRAY_POP for all varray element - types. - * varray.c (varray_init): Initialize elements_used. - * Makefile.in (BASIC_BLOCK_H): Add varray.h. - (INTEGRATE_H): New variable. - (integrate.o): Depend on INTEGRATE_H. - (unroll.o): Likewise. - - * function.h (insert_block_after_note): Declare. - * function.c (insert_block_after_note): Split out from ... - (retrofit_block): ... here. - - * stmt.c (expand_fixup): Fix typo in comment. - -Sat Dec 4 14:13:38 MET 1999 Jan Hubicka - - * regmove.c (copy_src_to_dest): Remove loop_depth parameter. - (optimize_reg_copy_1): Remove REG_N_REFS updating code. - (optimize_reg_copy_2, copy_src_to_dest, fixup_match_2): Likewise. - (regmove_optimize, fixup_match_1): Likewise. - -1999-12-05 Michael Hayes - - * flow.c (flow_loops_dump): Add missing argument when calling - flow_loop_nested_p. - -1999-12-04 Geoffrey Keating - Greg McGary - - * c-common.c (enum attrs): Add A_NO_LIMIT_STACK. - (init_attributes): Add A_NO_LIMIT_STACK. - (decl_attributes): Handle A_NO_LIMIT_STACK. - * c-decl.c (duplicate_decls): Handle DECL_NO_LIMIT_STACK. - * explow.c (allocate_dynamic_stack_space) [!HAVE_allocate_stack]: - Handle stack bounds checking. - * flags.h (flag_stack_check): Use the word 'probe' rather than - 'check', because the flag doesn't actually cause any checking to - be done. - * function.c (expand_function_start): Set - current_function_limit_stack. - * function.h (struct function): Add limit_stack. - (current_function_limit_stack): Define. - * invoke.texi (Code Gen Options): Document new options. - * rtl.h: Declare stack_limit_rtx. - * toplev.c (stack_limit_rtx): New variable. - (decode_f_option): Handle new options -fstack-limit-register=REG, - -fstack-limit-symbol=IDENT, -fno-stack-limit. - (main): Add stack_limit_rtx as GC root. - * tree.h (DECL_NO_LIMIT_STACK): New macro. - (struct tree_decl): New member no_limit_stack. - - * config/rs6000/rs6000.c (rs6000_allocate_stack_space): Handle - stack_limit_rtx. - * config/rs6000/rs6000.md (allocate_stack): Handle stack_limit_rtx. - (conditional_trap+1): Get new mnemonic correct. - (conditional_trap+2): New pattern for DImode traps. - - * config/m68k/m68k.c (output_function_prologue): Handle - stack_limit_rtx. - * config/m68k/m68k.md (trap): New insn. - (conditional_trap): New insn. - * md.texi (Standard Names): Document `trap' and - `conditional_trap'. - * optabs.c (gen_cond_trap): Use start_sequence()/end_sequence() - so a cc0 setter doesn't get emitted at some random place in the - function. - - * config/i960/i960.md (trap): New insn. - (conditional_trap): New expander. - (conditional_trap+1, conditional_trap+2): New insns for signed - and unsigned cases. - * config/i960/i960.c (i960_function_prologue): Use - STARTING_FRAME_OFFSET. Handle stack_limit_rtx. - -Thu Dec 2 21:22:45 1999 Greg McGary - Geoffrey Keating - - * flags.h (warn_padded, warn_packed): Add global var decls. - * toplev.c (warn_padded, warn_packed): Add global var defns. - (W_options): Add warnings `-Wpacked' and `-Wpadded'. - * stor-layout.c (layout_record): Add local variable `type' - to hold often-used TREE_TYPE (field). Add local variable - `unpacked_align' to hold alignment that would be in force - if no `packed' attribute were present. Warn if `packed' attribute - is unnecessary, or even harmful. Warn when gcc inserts padding - to satisfy alignment requirements of members. Use NULL_TREE - when checking whether var_size is set. - * invoke.texi: Document new flags. - -1999-12-03 Nathan Sidwell - - * frame.c (fde_split): Reimplement to avoid variable sized array. - -Thu Dec 2 18:59:48 1999 J"orn Rennecke - - * combine.c (try_combine): Before fixing up LOG_LINKS for the - i3_subst_into_i2 case, check that GET_CODE (PATTERN (i2)) == PARALLEL. - -1999-12-02 Gavin Romig-Koch - - * invoke.texi: Document the mips option -mno-crt0 - -1999-12-02 Mike Karr - - * cccp.c (argdata): Added free_ptr member. - (macroexpand): Initialize free_ptr of each argument. When an - argument's buffers are freed, if the argument's free_ptr corresponds - to a buffer on the input stack, then return the free_ptr to that stack - frame, otherwise, free it. - (macarg): If an argument begins and ends on the same input stack level, - then transfer the free_ptr of that buffer to the argument in case - the stack is popped during the processing of a subsequent argument. - -1999-12-02 Bernd Schmidt - - * loop.c (note_reg_stored): New function. - (struct note_reg_stored_arg): New structure. - (try_copy_prop): Change to be more conservative; only replace within - one extended basic block and stop replacing if a store to the - replacement reg is seen. - -1999-12-02 Nick Clifton - - * config/fp-bit.c: Initialize all fields of the NAN - constants. - - * c-lex.c (check_newline): Pass pragma_getc and pragma_ungetc - to HANDLE_PRAGMA. - -Wed Dec 1 18:16:38 1999 Jan Hubicka - - * i386.md (extend?f?f2): Force the input into a register, not - the output. - -1999-12-01 Jakub Jelinek - - * config/sparc/sparc.md (movsf_const_intreg): Add constraints for - regclass' sake. - (movdf_const_intreg_sp32): Likewise. Prefer the memory load - alternative because setting up 64bit constant is usually costly, - especially when reload is in progress or completed. - (movdf_const_intreg_sp64): Likewise. - (movdf_const_intreg split): Fix building up constants when - HOST_BITS_PER_WIDE_INT is 64 yet long is 32bit. - -Wed Dec 1 16:51:22 1999 Jeffrey A Law (law@cygnus.com) - - * combine.c (if_then_else_cond): Use const_true_rtx instead of - const1_rtx for return values in EQ/NE comparison against (const_int 0) - case. - - * mn10300.c (REG_SAVE_BYTES): Allocate space for AM33 registers. - (asm_file_start): Emit .am33 into assembly file when compiling for - the AM33. - (print_operand_address): Handle POST_INC addresses. - (can_use_return_insn, initial_offset): Check AM33 registers too. - (expand_prologue): Check & save AM33 registers too. - (expand_epilogue): Similarly. - (secondary_reload_class): Handle AM33 specific secondary reloads. - (output_tst): Emit efficient code for the AM33 too. - * mn10300.h (CPP_SPEC, TARGET_AM33): Define. - (TARGET_SWITCHES): Add -mam33 switch. - (FIRST_PSEUDO_REGISTER): Handle new AM33 registers. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Likewise. - (REG_ALLOC_ORDER, CONDITIONAL_REGISTER_USAGE): Likewise. - (HARD_REGNO_MODE_OK, MODES_TIEABLE_P): Likewise. - (enum reg_class, REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Likewise. - (INDEX_REG_CLASS, REG_CLASS_FROM_LETTER): Likewise. - (REGNO_OK_FOR_INDEX_P, PREFERRED_RELOAD_CLASS): Likewise. - (PREFERRED_OUTPUT_RELOAD_CLASS, LIMIT_RELOAD_CLASS): Likewise. - (REGISTER_MOVE_COST, REGISTER_NAMES): Likewise. - (HAVE_POST_INCREMENT): Define. - (GO_IF_LEGITIMATE_ADDRESS): Allow POST_INC addresses for the AM33. - (GO_IF_MODE_DEPENDENT_ADDRESS): POST_INC is a mode dependent address. - * mn10300.md (movqi, movhi, addsi, subsi): Add AM33 variants. - (mulsi, andsi, iorsi, xorsi, notsi): Likewise. - (ashiftsi, lshiftrtsi, ashiftrtsi): Likewise. - (zero_extend to SI from QI/HI): Likewise. - (sign_extend to SI from QI/HI): Likewise. - (mulsidi3, umulsidi3): New patterns for the AM33. - (tstsi with zero extension from QI/HI): Add AM33 variants. - (movsi, movsf, movdi, movdf): Generate efficient code for the AM33 too. - (return_internal_regs, store_movm): Handle new AM33 registers. - * t-mn10300 (MULTILIB_OPTIONS, MULTILIB_DIRNAMES): Define. - (LIBGCC, INSTALL_LIBGCC): Likewise. - * invoke.texi: Document new flags. - -Fri Nov 26 10:59:12 CET 1999 Jan Hubicka - - * i386.md (addsi3_cc): Add "binary_operator_ok" to the condition. - (addsi3_carry): Likewise. - (sbbsi3_cc): Add "binary_operator_ok" to the condition. - (sbbsi3_carry): Likewise. - (mulsi3): Rewrite to expander, ensure that only one operand is memory. - (mulhi3): Likewise. - (test?i_1): Ensure that only one operand is memory. - (conditional move patterns): likewise. - (shift and rotate patterns): Rewrite to expander, add - "binary_operator_ok" to the condition. - - * i386.md (QImode patterns): Remove '*' before the 'r' constraints. - * i386.h (procesor_costs): Add movzbl_load field. - (HARD_REGNO_MODE_OK): Accept QImode on non PARTIAL_REGISTER_STALL in - non-Q registers, accept DImode registers anywhere. - (Q_CLASS_P): New. - (MEMORY_MOVE_COST): Calculate QImode moves correctly. - * i386.c (*_cost): Set value for movxbl_load field. - - * (addsi): New add to lea splitter. - (ashlsi): Likewise. - (lea to add/shift peep2): New. - -1999-12-01 Mark Salter - - * config/mips/elf.h (STARTFILE_SPEC): Add no-crt0. - * config/mips/elf64.h (STARTFILE_SPEC): Add no-crt0. - * config/mips/mips.h (TARGET_SWITCHES): Add no-crt0. - -Tue Nov 30 15:20:52 MET 1999 Jan Hubicka - - * i386.c (ix86_expand_move): Never add clobbers to move patterns. - * i386.md (movsi_xor): New. - (movsi_or): New. - (movsi_1, movhi_1, movqi_1): Remove. - (movsi_2): Rename to movsi_1. - (movhi_2): Rename to movhi_1. - (movqi_2): Rename to movqi_1. - (movdi_1): Remove; remove splitter. - (movdi_2): Rename to movdi_1. - (divmodsi4 splitter): Do not emit clobbers for move patterns. - (long move peep2): Do not create QI or HI mode mov0s - (mov -1,reg -> or peep2s): Enable again, rewrite to single peephole. - - * i386.md (zero_extend?i?i2): Rewrite to expanders; new patterns, - rewrite splitters. - - * i386.md (neg?f2_if): Split "r" and "f" to separate alternatives. - (abs?f2_if): Likewise. - -1999-11-30 Alex Samuel - - * ggc.h (ggc_test_and_set_mark): New macro. - (ggc_mark_rtx): Use ggc_test_and_set_mark. - (ggc_mark_tree): Likewise. - (ggc_mark_rtvec): Likewise. - * ggc-common.c (ggc_mark_rtx_children): Reduce recursion. - -1999-11-30 Jason Merrill - - * dwarf2out.c (scope_die_for): Only handle types. Only search for - containing types. - (decl_scope_table): Just an array of trees now. - (push_decl_scope): Simplify. - (dwarf2out_init): Adjust. - (local_scope_p): New fn. - (gen_inlined_enumeration_type_die): Don't call scope_die_for. - (gen_inlined_union_type_die, gen_inlined_structure_type_die): Likewise. - (gen_typedef_die): Likewise. - (gen_lexical_block_die): Don't call push/pop_decl_scope. - (gen_inlined_subroutine_die): Likewise. - (gen_abstract_function): Set current_function_decl temporarily. - (gen_subprogram_die): Don't check DECL_ABSTRACT to set declaration. - Handle block extern declarations. Don't call push/pop_decl_scope. - (gen_decl_die): Fix logic for block externs. - -1999-11-30 Kaveh R. Ghazi - - * calls.c (special_function_p): Remove `realloc' and add `strdup' - to the list of functions which have attribute malloc by default. - -1999-11-30 Kaveh R. Ghazi - - * c-lex.c (yylex): With -Wtraditional, when the ANSI type of an - integer constant does not match the traditional type, limit the - warnings to cases where the base of the type is ten. - - * invoke.texi (-Wtraditional): Document it. - -Tue Nov 30 15:18:35 1999 Franz Sirl - - * combine.c (try_combine): Only pass SET or CLOBBER to SET_DEST - * rs6000.md: Only access a CONST_INT with INTVAL - -Tue Nov 30 14:21:00 1999 Richard Henderson - - * lcm.c (compute_laterin): Cast bb->aux to size_t not int. - (compute_nearerout): Likewise. - * ggc-page.c (ggc_page_print_statistics): Explicitly cast - size_t to unsigned long for formatting. - -1999-11-30 Jakub Jelinek - - * config/sparc/sparc.h (FIXED_REGISTERS, CONDITIONAL_REGISTER_USAGE): - Allow the user to override call-used/fixed state of %g2-5 - registers from the command line (with the exception of %g4 for - embedded model). - (REG_LEAF_ALLOC_ORDER): Move %g1 and %g4-7 registers to front, so that - there is a higher chance of having a leaf function. - (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Provide separate macros - for ARCH64 which has %ccr register. - * config/sparc/sparc.md (return_losum_si, return_losum_di): New - patterns. - * config/sparc/sparc.c (eligible_for_epilogue_delay): For the return - insn accept into delay slot any insn which does not use %[ol] - registers. Accept some LO_SUM and shift left by 1 for the normal - restore case. - (output_function_epilogue): Likewise. - (epilogue_renumber): Added argument which inhibits any renumbering - and just tests if the rtx does not use any %[ol] registers. - (output_return): Reflect above change. - -1999-11-30 Jakub Jelinek - - * config/sparc/sparc.c (sparc_va_arg): Fix sparc64 va_arg - aggregate passing for sizes <= 16 bytes. - -1999-11-30 Bernd Schmidt - - * cse.c (FIXED_REGNO_P): Delete tests for OVERLAPPING_REGNO_P. - * global.c (global_alloc): Delete [OVERLAPPING_REGNO_P] code. - * reload.c (find_dummy_reload): Likewise. - (find_equiv_reg): Likewise; also for INSN_CLOBBERS_REGNO_P. - * reload1.c (reload_as_needed): Likewise. - * stupid.c (stupid_find_reg): Likewise. - * tm.texi (Obsolete Register Macros): Delete section. - * gmicro.h: Remove all traces of the two macros. - * i386.h: Likewise. - * m88k.h: Likewise. - * mips.h: Likewise. - -1999-11-30 Brendan Kehoe - - * sparc.h (MASK_FASTER_STRUCTS, TARGET_FASTER_STRUCTS): Define. - (TARGET_SWITCHES): Add -mfaster-structs/-mno-faster-structs flags. - (ROUND_TYPE_ALIGN): Use better value if -mfaster-structs. - * sparc.md (sparclite86x_branch, sparclite86x_shift): New function - units for the sparclite86x chip. - (flush): Revert October 14th change; add SImode specifically. - (flushdi): Copy of flush, but DImode, to avoid genrecog warnings. - * invoke.texi: Document it. - -Tue Nov 30 14:58:14 1999 Nick Clifton - - * config/mn10200/mn10200.h (PREDICATE_CODES): Add - psimode_truncation_operand. - - * config/mn10200/mn10200.c (psimode_truncation_operand): New - function. Return true if the operand is either a MEM valid - for a PSImode address or not a MEM at all. - - * config/mn10200/mn10200.md (truncsipsi2): Use - psimode_truncation_operand. - -1999-11-30 Michael Hayes - - * flow.c (flow_nodes_print, flow_loops_cfg_dump): New functions. - (flow_loop_nested_p, flow_loops_dump, flow_loops_free): Likewise. - (flow_loop_exits_find, flow_loop_nodes_find): Likewise. - (flow_depth_first_order_compute, flow_loop_pre_header_find): Likewise. - (flow_loop_tree_node_add, flow_loops_tree_build): Likewise. - (flow_loop_level_compute, low_loops_level_compute): Likewise. - (flow_loops_find, flow_loop_outside_edge_p): Likewise. - * basic-block.h: Protect from multiple inclusion. - (flow_loops_find, flow_loops_free, flow_loop_dump): Add protoypes. - (struct loops, struct loop): Define structures. - * sbitmap.c (sbitmap_a_subset_b_p): New function. - * sbitmap.h: Protect from multiple inclusion. - (sbitmap_a_subset_b_p): Add prototype. - * Makefile.in (LOOP_H): New macro. - (stmt.o, integrate.o, loop.o, unroll.o): Replace loop.h with LOOP_H. - -Tue Nov 30 01:34:47 1999 Philippe De Muyter - - * cppinit.c (CAT): The argument list of this macro may not contain - spaces ! - -1999-11-29 David S. Miller - - Move quantity tables and register equivalence chains into - per-qty and per-register structure arrays respectively. - * cse.c (qty_first_reg, qty_last_reg, qty_mode, qty_const, - qty_const_insn, qty_comparison_code, qty_comparison_const, - qty_comparison_qty): Delete, replace with... - (qty_table): this structure table. - (reg_next_eqv, reg_prev_eqv): Delete, replace with... - (reg_eqv_table): this structure table. - (make_new_qty): Add argument MODE. Caller updated. - Update to use qty_table and reg_eqv_table. - (make_regs_eqv, delete_reg_equiv, insert_regs, - insert, exp_equiv_p, cse_rtx_varies_p, canon_reg, - fold_rtx, equiv_constant, record_jump_cond, cse_insn, - cse_process_notes, cse_main, cse_basic_block): Likewise. - -Mon Nov 29 16:56:42 1999 Richard Kenner - - * fold-const.c (extract_muldiv, case {MIN,MAX}_EXPR): Reverse - operation if C is negative. - (extract_muldiv, case SAVE_EXPR): Supresss if arg has side effects. - (extract_muldiv, case {PLUS,MINUS}_EXPR): Don't apply distributive - law for some divisions if constant is negative and change other - divisions to the opposite rounding. - - * expr.c (store_constructor_field): If bit position is not multiple - of alignment of TARGET's mode, use BLKmode. - - * expr.c (expand_expr_unaligned): Add more code from full case - that is needed when OP0 is in a register. - -Mon Nov 29 18:09:39 1999 J"orn Rennecke - - * dwarfout.c (field_byte_offset): Size can be zero if there was - an error. - -1999-11-29 Bernd Schmidt - - * fold-const.c (split_tree): Delete unused vars ORIG_IN and TYPE. - (associate_trees): Delete unused var TEM. - (extract_muldiv): Delete unused var CANCEL_P. - - * fold-const.c [TARGET_FLOAT_FORMAT != IEEE_FLOAT_FORMAT] - (target_isinf, target_isnan, target_negative): Add return types to - function definitions. - -1999-11-29 Bruce Korb - - * fixinc/fixincl.c(process): don't skip GLIBC files any more. - * fixinc/hackshell.tpl: ditto - * fixinc/fixtests.c(double_slash_test): more C++ header testing - * fixinc/inclhack.def(AAB_fd_zero_glibc*): corrected spelling of mach - -1999-11-29 Bernd Schmidt - - * reload.c (push_reload): When looking for a register to put into - reg_rtx, make sure all hard regs in a multi-reg register are in the - right class and nonfixed. - - * haifa-sched.c (reg_last_uses, reg_last_sets, reg_last_clobbers, - pending_read_insns, pending_write_insns, pending_read_mems, - pending_write_mems, pending_list_length, last_pending_memory_flush, - last_function_call, sched_before_next_call): Move static variables - into a structure. - (bb_ prefixed versions): Replace with single array bb_deps. - (struct deps): New structure. - (add_insn_mem_dependence, flush_pending_lists, sched_analyze_1, - sched_analyze_2, sched_analyze_insn, sched_analyze): Accept new - argument of type "struct deps *"; use that instead of global - variables. All callers changed. - (init_rgn_data_dependencies): Delete function. - (init_rtx_vector): Delete function. - (init_deps): New function. - - (free_pending_lists): Simplify, we always use the bb_deps array even - if only one basic block. - (compute_block_backward_dependences): Likewise. - (schedule_region): Likewise. - - (propagate_deps): New function, broken out of - compute_block_backward_dependences. - (compute_block_backward_dependences): Use it. - - * alpha.md: Delete useless patterns that tried to work around - register elimination problems. - - * unroll.c (loop_iterations): Don't abort if iteration variable - was made by loop. - - From Joern Rennecke: - * reload1.c (reloads_conflict): Reverse test comparing operand - numbers when testing for conflict between output/outaddr reloads. - -1999-11-29 David S. Miller - - * config/sparc/sparc.c (init_cumulative_args): Fix type of third - arg. - * config/sparc/sparc-protos.h: Update proto, move into RTX_CODE. - -1999-11-28 Robert Lipe - - * i386/sco5.h (FINI_SECTION_ASM_OP_COFF): Move destructor fn - table from .fini into .dtor. - -1999-11-28 Anthony Green - - * tree.h (struct tree_decl): Add malloc_flag. - (DECL_IS_MALLOC): Define. - * c-common.c (attrs): Add A_MALLOC attribute. - (init_attributes): Add this attribute to the table. - (decl_attributes): Handle malloc attribute. - * calls.c (special_function_p): Check for the malloc attribute. - * extend.texi (Function Attributes): Document malloc attribute. - -Sun Nov 28 13:21:00 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (reload shift-add patterns): Remove. - -1999-11-28 Herman A.J. ten Brugge - - * reorg.c (dbr_schedule) Print more statistics. Corrected - problem when printing info when 3 delay slots are filled. - -1999-11-28 Jakub Jelinek - - * combine.c (setup_incoming_promotions): Pass an outgoing - regno to FUNCTION_ARG_REGNO_P which it expects. - -1999-11-28 Andreas Jaeger - - * mips/linux.h (CPP_PREDEFINES): Undefine before redefining. - -Sun Nov 28 00:48:15 1999 Philippe De Muyter - - * cccp.c (do_include): Avoid initialization of automatic variable. - - * integrate.c (mark_stores): Function definition made void, to match - previous declaration. - * regclass.c (dump_regclass): Ditto. - * Makefile.in (WARN_CFLAGS): Macro augmented by `-Wtraditional'. - -Sat Nov 27 08:38:26 1999 Richard Kenner - - * expr.c (store_constructor): Use EXACT_DIV_EXPR when dividend is - known to be multiple of divisor. - - * expr.c (store_constructor): Don't clobber TARGET if CLEARED. - - * combine.c (try_combine): Add code to try to merge a set of a - two-word pseudo to a constant with a setting of one of those words - to a constant. - - * fold-const.c (negate_expr, associate_trees, extract_muldiv): New. - (split_tree): Completely rework to make more general. - (make_range, fold): Call negate_expr. - (fold, case NEGATE_EXPR): Simplify -(a-b) is -ffast-math. - (fold, associate): Call new split_tree and associate_trees. - (fold, case MULT_EXPR, case *_{DIV,MOD}_EXPR): Call extract_muldiv. - -1999-11-26 Bernd Schmidt - - * loop.c (try_copy_prop): Avoid GNU C extension. - -1999-11-25 Mark Mitchell - - * except.c (init_eh_for_function): Still zero eh_return_context, - eh_return_stack_adjust, and eh_return_handler. - - * except.h (eh_status): Adjust documentation for x_protect_list. - (begin_protect_partials): New function. - * except.c (enqueue_eh_entry): Fix formatting. - (get_first_handler): Add consistency check. - (add_partial_entry): Adjust usage of protect_list. - (emit_cleanup_handler): Save and restore ehqueue. - (expand_start_all_catch): Add comment. - (begin_protect_partials): New function. - (end_protect_partials): Adjust usage of protect_list. - (init_eh_for_function): Use xcalloc. - -1999-11-25 Kaveh R. Ghazi - - * c-common.c (check_format_info): Don't call a variadic function - with a non-literal format string. - - * c-decl.c (grokdeclarator, start_struct, finish_struct): Likewise. - - * c-typeck.c (build_component_ref, build_unary_op, lvalue_or_else, - pedantic_lvalue_warning, error_init, pedwarn_init, warning_init): - Likewise. - - * cccp.c (check_macro_name, do_xifdef, vwarning_with_line): - Likewise. - - * collect2.c (collect_wait): Likewise. - - * dbxout.c (dbxout_type): Likewise. - - * gcc.c (do_spec_1): Likewise. - - * genemit.c (gen_insn, gen_expand): Likewise. - - * genrecog.c (write_switch, write_subroutine): Likewise. - - * mips-tfile.c (catch_signal, botch): Likewise. - - * print-rtl.c (print_rtx): Likewise. - - * toplev.c (default_print_error_function, report_error_function, - _fatal_insn): Likewise. - -1999-11-25 Mark Mitchell - - * tree.c (unsave_expr_now): Handle NULL_TREE as input. - -Wed Nov 24 17:08:09 MET 1999 Jan Hubicka - - * reg-stack.c (subst_stack_regs_pat): Swap operands in commutative - operations when needed. - * i386.md (fop_?f_comm): New. - (fop_?f_1): Do not accept commutative operands. - -1999-11-25 Andreas Jaeger - - * config/mips/mips.md (casesi_internal): Add missing brace. - -1999-11-25 Jason Merrill - - * dwarf2out.c (pend_type, output_pending_types_for_scope): Lose. - (splice_child_die): Handle moving a child DIE from the declaration - DIE of a class to its specification. - (gen_struct_or_union_type_die): Use 'complete' consistently. - (gen_decl_die): Generate the virtual context DIE first. - Use decl_ultimate_origin instead of DECL_ABSTRACT_ORIGIN. - -1999-11-24 Gavin Romig-Koch - - * config/mips/mips.md (call_value_multiple_interanal1): New. - -1999-11-24 Jason Merrill - - * dwarf2out.c (free_AT, free_die): New fns. - (remove_children): Call them. - (output_line_info): Disable removal of duplicate notes. - - Generate minimal debug info for types with TYPE_DECL_SUPPRESS_INFO set. - * dwarf2out.c (gen_struct_or_union_type_die): TYPE_DECL_SUPPRESS_INFO - means pretend the type isn't defined. - Don't defer emitting types. - (gen_type_die_for_member): New fn. - (gen_decl_die): Call it. - (splice_child_die): New fn. - (gen_member_die): Call it rather than generate duplicate dies. - - Defer emitting information for the abstract instance of an inline - until we either inline it or emit an out-of-line copy. - * dwarf2out.c (decl_ultimate_origin): Ignore DECL_ABSTRACT_ORIGIN - from output_inline_function if DECL_ABSTRACT is also set. - (block_ultimate_origin): Likewise. - (gen_abstract_function): New fn. - (gen_decl_die, gen_inlined_subroutine_die): Call it. - (gen_subprogram_die): An abstract instance is not a declaration - just because it doesn't match current_function_decl. Don't abort - because DECL_DEFER_OUTPUT isn't set. Do abort if a declaration - has an abstract origin. - * toplev.c (rest_of_compilation): Don't emit dwarf2 info for the - abstract instance here. - -Wed Nov 24 18:39:18 1999 Andrew Haley - - * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Add the case - where we need to reload fpul from a system register. - -1999-11-24 Andreas Jaeger - - * config/mips/linux.h (CPP_PREDEFINES): Added. - (LINK_SPEC): Remove -Y since this is only needed on sparc. - -1999-11-24 Andreas Jaeger - - * config/mips/linux.h (TARGET_VERSION): Added. - (HANDLE_SYSV_PRAGMA): Added. - (DEFAULT_VTABLE_THUNKS): Added. - -Wed Nov 24 14:12:15 MET 1999 Jan Hubicka - - * local-alloc.c (qty): New structure and static variable. - (qty_phys_reg): Remove, all references changed to qty. - (qty_n_refs): Likewise. - (qty_min_class): Likewise. - (qty_birth): Likewise. - (qty_death): Likewise. - (qty_size): Likewise. - (qty_mode): Likewise. - (qty_n_calls_crossed): Likewise. - (qty_alternate_class): Likewise. - (qty_changes_size): Likewise. - (qty_first_reg): Likewise. - (alloc_qty): Rename variable QTY to QTYNO. - (finf_free_reg): Likewise. - (local_alloc): Allocate qty, do not allocate the removed variables. - -Wed Nov 24 17:26:05 1999 Geoffrey Keating - - * config/mips/mips.h (ASM_SPEC): Don't pass -G to the assembler - when -membedded-pic is passed. - - * config/mips/mips.md (casesi): Handle 64-bit case too. - (casesi_internal_di): New insn. - - * config/mips/mips.c (embedded_pic_offset): Always make the - embedded-pic subtractions relative to the name of the current - function by use of the magic string "..CURRENT_FUNCTION". - * config/mips/mips.h (ASM_OUTPUT_LABELREF): Make the magic happen. - -1999-11-24 Geoffrey Keating - - * config/mips/mips.md (div_trap_normal): Don't ask for the REGNO - of (const_int 0), when what we really care about is - whether it's a zero constant anyway. - (div_trap_mips16): Likewise. - -1999-11-23 Mark Mitchell - - * loop.c (loop_optimize): Always find_loop_tree_blocks and - unroll_block_trees when generating debuggable code. - - * tree.h (unsave_expr_1): New function. - (lang_unsave): New variable. - (get_callee_fndecl): New function. - * tree.c (unsave_expr_now_r): New function. - (lang_unsave): Define. - (unsave_expr_1): Likewise. - (unsave_expr_now_r): Split out from unsave_expr_now. - (unsave_expr_now): Call lang_unsave if it is non-NULL. Otherwise, - call unsave_expr_now_r. - (get_callee_fndecl): Define. - - * Makefile.in (gencheck): Don't depend on lang_tree_files. - (gencheck.o): Do depend on lang_tree_files. - - * integrate.h (copy_decl_for_inlining): New declaration. - * integrate.c (copy_and_set_decl_abstract_origin): Remove. - (copy_decl_for_inlining): New function. - (integrate_parm_decls): Use it. - (integrate_decl_tree): Likewise. - -1999-11-23 Gavin Romig-Koch - - * config/mips/mips.h (ISA_HAS_FP4,ISA_HAS_CONDMOVE,ISA_HAS_8CC): Split - the second two from the first. - (CONDITIONAL_REGISTER_USAGE): Use ISA_HAS_8CC rather than ISA_HAS_FP4. - * config/mips/mips.md (movcc,reload_incc,reload_outcc, - conditional move): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than - ISA_HAS_FP4. - * config/mips/mips.c (mips_move_1word,gen_conditional_branch, - override_options): Use ISA_HAS_CONDMOVE or ISA_HAS_8CC rather than - ISA_HAS_FP4. - -Tue Nov 23 11:15:04 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (call_internal_symref, call_value_internal_symref): No mode - needed on the address operand. - * pa.c (call_operand_address): Check for the correct mode. - -1999-11-23 Bernd Schmidt - - * loop.c: Include "basic-block.h". - (try_copy_prop, replace_loop_reg): New functions. - (load_mems): Detect registers that just hold copies of the hoisted - mem, and call try_copy_prop to eliminate them. - * Makefile.in (loop.o): Update dependencies. - -Tue Nov 23 01:03:29 1999 Hans-Peter Nilsson - - * Makefile.in (gencheck.o): Depend on gencheck.h. - (insn-emit.o): Depend on flags.h, hard-reg-set.h and resource.h. - (insn-peep.o): Depend on except.h and function.h. - (insn-attrtab.o): Depend on RECOG_H. - (insn-output.o): Depend on toplev.h and flags.h. - (gengenrtl.o): Depend on real.h. - (gen-protos.o): Depend on cpplib.h and cpphash.h. - Unify all dependencies to be on RECOG_H rather than recog.h. - -Tue Nov 23 00:57:10 1999 Rainer Orth - - From Casper H.S. Dik on comp.unix.solaris, 23 Oct 1998: - * configure.in: Try building a bi-arch 32/64-bit compiler on - sparc-*-solaris2.7 and higher. - * configure: Rebuild. - -Mon Nov 22 23:09:44 1999 David O'Brien - - * config/freebsd.h: New, FreeBSD architecture independent file. - * config/i386/freebsd-elf.h: removed FreeBSD architecturally - independent pieces. - * config/i386/freebsd.h: include i386/perform.h via tm.h rather than - directly by i386/freebsd.h. - * configure.in (*-*-freebsdelf): Include new FreeBSD architecturally - independent configuration file. - (*-*-freebsdelf): Include i386/perform.h via tm.h rather than - directly by i386/freebsd.h. - * configure: Rebuilt. - - * xm-i386.h: Define `__i386__' if not defined, rather than `i386' - which is in the user's namespace. - * libgcc2.c: Look for the ANSI-C approved `__i386__' symbol, vs. - `i386' which is not in our namespace. - -Mon Nov 22 22:58:01 1999 "R. Kelley Cook" - - * invoke.texi (ARM Options): Add in -mno-alignment-traps - -1999-11-22 Jason Merrill - - * dwarf2out.c (die_struct): Remove die_attr_last and die_child_last. - (add_dwarf_attr, add_child_die): Just push onto the front. - (reverse_die_lists): New fn. - (add_sibling_attributes): Use it. - (push_decl_scope): Reorganize. - (add_name_and_src_coords_attributes): Don't set file and line for - an artificial decl. - (gen_subprogram_die): An artificial function doesn't need to match - file and line. - (gen_compile_unit_die): Return the generated die. Only add - AT_comp_dir if the filename is relative. - (remove_AT): Simplify loop. Also free string values. - (output_die): A DIE ref can't be null. - (output_value_format, value_format): Take a dw_attr_ref. - (dwarf_last_decl, is_extern_subr_die, sibling_offset): Remove. - (AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, - AT_addr, AT_lbl): New fns. - (various): Use them. - (various): Constify. - -Mon Nov 22 23:53:50 1999 J"orn Rennecke - - * combine.c (combine_simplify_rtx): When handling a SUBREG, - take SUBREG_WORD into account. - (if_then_else_cond): Likewise. - -1999-11-22 Jason Merrill - - * gmon.c, i386/gmon-sol2.c, sparc/gmon-sol2.c: Remove advertising - clause from BSD license, pursuant with - - ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change - -1999-11-22 Bernd Schmidt - - * loop.c (load_mems): Reformat slightly. - * basic-block.h (regset_head): New typedef. - (INIT_REG_SET): New macro. - -1999-11-22 Bruce Korb - - * emit-rtl.c (gen_sequence): Only return the pattern of an insn if - its code is INSN and it has no notes. - -1999-11-22 Andrew Haley - - * varasm.c (function_defined): Remove. - (make_function_rtl): Don't set function_defined. - (make_decl_rtl): Remove global register warning. - * regclass.c (no_global_reg_vars): New variable. - (globalize_reg): Warn if function has already been defined. - (regclass_init): Set no_global_reg_vars. - -Mon Nov 22 14:42:22 MET 1999 Jan Hubicka - - * regclass.c (reg_pref): New structure and static variable - (prefclass): Delete. - (altclass): Delete. - (all uses of prefclass and altclass): Use reg_pref instead. - -1999-11-21 Nick Clifton - - * invoke.texi (ARM Options): Replace -mshort-load-bytes with - -malignment-traps. - (arm.h): Replace -mshort-load-bytes with -malignment-traps. - (arm.c): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. - (arm.md): Replace TARGET_SHORT_BY_BYTES with TARGET_MMU_TRAPS. - -Sun Nov 21 17:11:13 1999 Geoffrey Keating - - * varasm.c (output_constructor): Solve problem with long long - bitfields, even on BYTES_BIG_ENDIAN machines (testcase 991118-1). - -Fri Nov 19 05:48:45 CET 1999 Jan Hubicka - - * global.c (allocno): New structure and static variable. - (allocno_reg): Remove, all references replaced by allocno. - (allocno_size): Likewise. - (hard_reg_conflicts): Likewise. - (hard_reg_preferences): Likewise. - (hard_reg_copy_preferences): Likewise. - (hard_reg_full_preferences): Likewise. - (regs_someone_prefers): Likewise. - (allocno_calls_crossed): Likewise. - (allocno_n_refs): Likewise. - (allocno_live_length): Likewise. - (find_reg): Rename ALLOCNO to NUM. - - * regclass.c (may_move_in_cost): Rename from may_move_cost, all - references updated. - (may_move_out_cost): New variable. - (init_reg_sets_1): Initialize may_move_out_cost. - (record_reg_classes): Use may_move_out_cost. - - * regclass.c (dump_regclass): New function. - (regclass): New parameter DUMP, call DUMP_REGCLASS. - * toplev.c (rest_of_compilation): Open lreg dump file before regclass, - pass rtl_dump_file to regclass. - * rtl.h (regclass): Update prototype. - -Fri Nov 19 06:32:19 CET 1999 Jan Hubicka - - * i386.md (neg, not and abs patterns): Revmap to use - ix86_expand_unary_operator and ix86_unary_operator_ok. - (add?f and sub?f expanders): Force operand 1 to register. - * i386.c (ix86_expand_unary_operator): Rewrite. - (ix86_unary_operator_ok): Ensure that memory operands - match real opcode. - (ix86_binary_operator_ok): Do not allow operand 1 to - come into memory and operand 0 not. - (ix86_expand_binary_operator): Ensure that - src1 is not non-matching memory. - - * i386.md (negs?2): Rewrite to expanders, new patterns and splitters - to support integer registers and memory. - (abss?2_integer): Likewise. - - * i386.h (enum reg_class): Add FLOAT_INT_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Define FLOAT_INT_REGS as union of FLOAT_REGS - and GENERAL_REGS. - * i386.md (pushsf): Do not preferre FLOAT_REGS over GENERAL_REGS. - (movsf): Likewise; unify 4th and 5th alternative. - (pushdf): Likewise. - (movdf_1): Likewise; rename to movdf_integer. - (pushxf): Likewise; rename to pushxf_integer; fix output template; - remove redundant splitter. - (movxf_1): Likewise; rename to movxf_integer; fix splitter's condition. - (movdf_nointeger): New. - (movxf_nointeger): New. - (pushxf_nointeger): New. - - * i386.md (extend?f?f): Split to expander and pattern, refuse two - memory operands in patterns. - (fop*): Refuse two memory operands. - - * i386.md (ashrsi3_31): Allow cltd when optimizing for size even - on !TARGET_USE_CLTD CPUs. - -Fri Nov 19 10:41:15 GMT 1999 Nathan Sidwell - - * extend.texi: Document C++ restricted pointers and references. - -1999-11-19 Bernd Schmidt - - * cse.c (addr_affects_sp): No longer conditional on AUTO_INC_DEC. - (invalidate_skipped_set): Call it unconditionally. - (cse_set_around_loop): Likewise. - -Thu Nov 18 17:29:34 MST 1999 Diego Novillo - - * rtl.texi (mem): Add documentation for alias-set argument - to RTX `mem'. - -Fri Nov 18 13:39:22 CET 1999 Jan Hubicka - - * i386.h (struct_processor_costs): New fields int_load, int_store, - fp_move, fp_load and fp_store - (REGISTER_MOVE_COST): Fix comment, calculate exactly the cost of - fp->int moves - (MEMORY_MOVE_COST): New macro. - * i386.c (386_cost): Define new fields. - (i486_cost): Likewise. - (pentium_cost): Likewise. - (pentiumpro_cost): Likewise. - (k6_cost): Likewise. - -Fri Nov 19 11:11:55 1999 Greg McGary - Geoffrey Keating - - * config/m68k/m68kelf.h: Suppress '/* within comment' warning. - - * config/m68k/m68k.h (MASK_PCREL): Don't use same value as - MASK_ALIGN_INT. - - * config/m68k/m68k.h (MASK_NO_STRICT_ALIGNMENT): New macro. - (TARGET_STRICT_ALIGNMENT): New macro. - (TARGET_SWITCHES): Add "strict-align" and "no-strict-align". - (STRICT_ALIGNMENT): Depend on TARGET_STRICT_ALIGNMENT. - * invoke.texi (M680x0 Options): Document -mstrict-align. - -Thu Nov 18 11:10:03 1999 Jan Hubicka - Richard Henderson - - * i386-protos.h (split_xf, ix86_split_movdi): Remove. - (ix86_split_long_move): Declare. - * i386.c (split_xf, ix86_split_movdi): Remove. - (ix86_split_to_parts, ix86_split_long_move): New. - * i386.md (dimode move splitters): Use ix86_split_long_move. - (dfmode move splitters): Likewise. - (xfmode move splitters): Likewise. - (movsf_1): Allow F->r. - (movdf_1, movxf_1): Allow F->ro. - -1999-11-17 Mark Mitchell - - * except.h (struct eh_entry): Add goto_entry_p. - (eh_region_from_symbol): Remove prototype. - * except.c (find_func_region_from_symbol): New function. - (emit_cleanup_handler): Likewise. - (eh_region_from_symbol): Make it static. - (add_new_handler): Verify the argument. - (find_func_region): Update comment. - (expand_eh_region_end): Expand handlers here, rater than waiting - until expand_leftover_cleanups or start_all_catch. - (expand_leftover_cleanups): Don't expand here. - (expand_start_all_catch): Or here. - (expand_rethrow): Check the return value from find_func_region. - * function.c (expand_function_end): Emit the catch_clauses. - -1999-11-18 Gavin Romig-Koch - - * integrate.c (expand_inline_function): Add necessary check for NULL. - -1999-11-18 Nick Clifton - - * toplev.c (main): Correctly detect an unrecognized option. - - * cppinit.c (cpp_handle_option): Do not claim to have consumed - a -f option if it has not been recognized. - -Thu Nov 18 00:59:11 1999 Michael Gschwind - - * basic-block.h (update_life_extent): Remove trailing comma on - enumeration type list. - -1999-11-18 Herman A.J. ten Brugge - - * varasm.c (output_constructor) Solved problem with long long - bitfields. Corrected calculating this_time and shift. Also - corrected calculating mask when BITS_PER_UNIT == 32 (c4x). - -Wed Nov 17 23:46:14 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (split_edge): Take looping structure into account when - determining where to put the new block note. - -Wed Nov 17 20:42:43 1999 Jeff Holcomb - - * Makefile.in (ggc-none.o): Provide host specific version if - needed. - -Wed Nov 17 16:51:23 1999 Richard Henderson - - * cse.c (delete_trivially_dead_insns): Identify no-op insns - containing subregs too. - -Wed Nov 17 17:39:48 MST 1999 Diego Novillo - - * invoke.texi: Add documentation for -muninit-const-in-rodata. - * config/mips/mips.h (MASK_UNINIT_CONST_IN_RODATA): Define. - (TARGET_UNINIT_CONST_IN_RODATA): Define. - (text_section): Add switches -munint-const-in-rodata and - -mno-uninit-const-in-rodata. - (ASM_OUTPUT_COMMON): Remove. - (ASM_OUTPUT_ALIGNED_DECL_COMMON): Define. Check if uninitialized - const objects should be placed in read-only data. Otherwise declare - them in common. - -Wed Nov 17 16:38:32 1999 Richard Henderson - - * jump.c (jump_optimize_1): Revert last change. - -Wed Nov 17 15:18:30 1999 Richard Henderson - - * jump.c (jump_optimize_1): Don't try to duplicate the loop exit - test if optimizing for size. - -1999-11-17 Mark Mitchell - - * Makefile.in (toplev.o): Depend on except.h. - (dwarf2out.o,loop.o,flow.o,haifa-sched.o): Likewise. - -Mon Nov 15 22:45:39 CET 1999 Jan Hubicka - - * i386.md (divmodsi4): Rewrite to expander. - (*divmodsi4_nocltd): New. - (*divmodsi4_cltd): New. - (divmodsi4 splitter): Handle the case when input comes in edx. - (udivmodhi4): Do not use constraints in exander. - (ashrsi3_31): Conditionize by TARGET_USE_CLTD. - -1999-11-17 Jason Merrill - - * dwarf2out.c (push_decl_scope): Still use decl_scope_depth - 1 - for the common case. - -1999-11-16 Jakub Jelinek - - * explow.c (hard_function_value): Add outgoing argument. - * expr.h (hard_function_value): Declare it. - * calls.c (expand_call, emit_library_call_value): Update callers. - * function.c (aggregate_value_p): Ditto. - (diddle_return_value): Must look at the outgoing registers - on archs with register windows. - -Mon Nov 15 20:46:45 1999 Richard Henderson - - * alpha.c (alpha_build_va_list): Use make_lang_type and - initialize TYPE_NAME for the va_list record. - - * flow.c (calculate_global_regs_live): Zero bb->aux to begin. - - * ggc-common.c (ggc_print_statistics): Cast size_t to unsigned long - for printing. - * ggc.h (struct ggc_statistics): Rearrange elements for better - packing on 64-bit hosts. - * lcm.c (compute_laterin): Store a size_t not an int in bb->aux. - (compute_nearerout): Likewise. - -Tue Nov 16 14:37:52 1999 Geoffrey Keating - - * config/rs6000/rs6000.c (first_reg_to_save): Save - PIC_OFFSET_TABLE_REGNUM when -fpic even though it is fixed. - -1999-11-15 Jason Merrill - - * dwarf2out.c (scope_die_for): Don't rely on the decl_scope_table - notion of nesting to find the DIE for a type or function. - DIEs can go in limbo even if we got a context_die. - (push_decl_scope): Our context doesn't need to be in decl_scope_table. - (gen_struct_or_union_type_die): Don't use TREE_PERMANENT to test - for local type. - (gen_decl_die): Ignore NAMESPACE_DECLs for now. - (gen_type_die): Writing out the context doesn't cause member class - template instantiations to be written out as well. - -Mon Nov 15 15:33:18 1999 Richard Henderson - - * rs6000.h (ASM_OUTPUT_DEF): New. - Based on proposed addition from David Edelsohn. - -1999-11-15 Robert Lipe - Bruce Korb - - * fixinc/inclhack.def - (AAB_svr4_replace_byteorder): added. Takes advantage of GCC features - (unixware7_byteorder_fix): added. Removes conflicts for new defs - in net/inet.h. - (svr5_mach_defines): added. Like svr4_mach_defines, with new syntax - (svr4_endian): enabled with SVR5 - (svr4_mkdev): simplified syntax and enabled with SVR5 - -Sun Nov 14 18:49:37 1999 David O'Brien - - * configure.in: Handle libgcc2 threads support on FreeBSD platforms. - * configure: Rebuilt. - * config/t-freebsd-thread: New file. - -Sun Nov 14 23:11:05 1999 Jeffrey A Law (law@cygnus.com) - - * i386.c (ix86_decompose_address): Verify the base is a REG - before trying to examine its register number. - - * basic-block.h: Remove all #defines and prototypes related to - integer lists. - (free_bb_mem, compute_preds_succs): Remove prototype. - * rtl.h (free_bb_mem): Remove prototype. - * flow.c (alloc_int_list_node); Remove function. - (add_inst_list_node, free_int_list, add_pred_succ): Likewise. - (compute_preds_succs, free_bb_mem): Likewise. - * gcse.c (gcse_main): Do not call free_bb_mem anymore. - * toplev.c (rest_of_compilation): Likewise. - * haifa-sched.c (build_control_flow): Use flow generated edge - list to build the haifa specific edge list. - (find_rgns): Use new CFG data structures instead of pred/succ lists. - (schedule_insns): Do not build pred/succ lists anymore. Instead - build the edge table. - - * basic-block.h (dump_bb_data): Remove declaration. - * flow.c (dump_bb_data): Remove function. - * sbitmap.c (sbitmap_intersect_of_predsucc): Delete function. - (sbitmap_union_of_predsucc): Likewise. - - * gcse.c (delete_null_pointer_checks_1): Kill unused s_preds - argument. All callers changed. - (delete_null_pointer_checks_1): No longer need to compute the - pred/succ lists. - - * gcse.c (pre_expr_reaches_here_p): Kill CHECK_PRE_COM argument. - All callers changed. - (pre_expr_reaches_here_p_work): Likewise. - (pre_edge_insert): No longer call pre_expr_reaches_here_p. - * lcm.c (compute_laterin): Fix initialization of LATER. - (compute_nearerout): Similarly for NEARER. - -Sun Nov 14 12:41:57 1999 Bernd Schmidt - - * cse.c (set_nonvarying_address_components): Delete unused function. - (refers_to_p): Likewise. - -Fri Nov 12 20:53:22 1999 Jeffrey A Law (law@cygnus.com) - - * function.c (diddle_return_value): Set REG_FUNCTION_VALUE_P as - needed. - -Sat Nov 13 16:20:09 1999 Michael Hayes - - * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Wrap macro - definition in do while (0). - -Fri Nov 12 16:26:25 1999 Jim Wilson - - * stmt.c (pushcase, pushcase_range): Partially revert Oct 28 change. - -Fri Nov 12 12:43:49 1999 Richard Henderson - - * unroll.c (unroll_loop): Make temp an unsigned HOST_WIDE_INT. - -Fri Nov 12 15:14:19 1999 Vladimir Makarov - - * i960.h (CAN_DEBUG_WITHOUT_FP): Don't define it. - (FRAME_POINTER_REQUIRED): Don't worry about nonlocal goto. - (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. - (INITIAL_FRAME_POINTER_OFFSET): Remove it. - - * i960.c (i960_function_prologue): Don't allocate space for g8-g11 - saved on the stack. Output more accurate stack frame statistics - into assembler file. - -1999-11-12 11:47 -0800 Zack Weinberg - - * genextract.c (record_insn_name): New function. - (get_insn_name): No longer a stub. - (main): Call record_insn_name for each insn. After each label - written, print the insn name in a comment. - -Fri Nov 12 13:45:02 1999 Kaveh R. Ghazi - - * output.h (const_section, init_section, fini_section): Add - prototypes. - - * alpha/elf.h (const_section): Delete declaration. - - * svr4.h (const_section): Likewise. - -Fri Nov 12 08:54:22 1999 Mark Mitchell - - * tree.h (SAVE_EXPR_PERSISTENT_P): New macro. - * tree.c (array_type_nelts): Don't handle SAVE_EXPRs specially. - (unsave_expr_now): Don't unsave SAVE_EXPR_PERSISTENT_P - expressions. - * stor-layout.c (variable_size): Set SAVE_EXPR_PERSISTENT_P on - variable-sized array bounds. - -Fri Nov 12 08:04:45 1999 Catherine Moore - - * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Use - ASM_OUTPUT_LABEL. - -Fri Nov 12 13:31:54 1999 Bernd Schmidt - - * config/arm/arm.h (LEGITIMIZE_RELOAD_ADDRESS): Treat QImode - addresses the same way GO_IF_LEGITIMATE_INDEX does. - -Fri Nov 12 12:36:04 1999 Bernd Schmidt - - * cse.c (hash_arg_in_struct): Delete. - (struct table_elt): Delete elt in_struct. - (struct set): Delete elt src_in_struct. - (merge_equiv_classes): Don't set either hash_arg_in_struct or - the corresponding in_struct elts. - (canon_hash): Likewise. - (safe_hash): Likewise. - (find_best_addr): Likewise. - (record_jump_cond): Likewise. - (cse_insn): Likewise. - -Thu Nov 11 19:45:24 1999 Jim Wilson - - * loop.c (invariant_p, case MEM): Put MEM_VOLATILE_P check back. - - * dbxout.c (dbxout_type, case INTEGER_TYPE): Handle too large - unsigned types. - -Thu Nov 11 18:54:24 1999 Jeffrey A Law (law@cygnus.com) - - * function.c (diddle_return_value): Put back check that the DECL_RTL - for the function is a register. - - * function.c (diddle_return_value): Use hard_function_value to - get an rtx suitable for use in the USE/CLOBBER insn. - - * global.c (global_conflicts): Update comments. - (record_conflicts): No need to record conflicts between pseudos here. - -1999-11-11 Bruce Korb - - * fixinc/fixincl.c: Added verbose levels for status messages - -Thu Nov 11 13:23:04 1999 Bernd Schmidt - - * jump.c (jump_optimize_1): Avoid passing an rtx that is not an - operand as argument to expand_and or expand_binop. - -Thu Nov 11 02:21:16 1999 Rodney Brown - - * xcoffout.c (xcoffout_source_file): Change ggc_add_root to - gcc_add_string_root. - -Wed Nov 10 21:24:19 1999 Jason Eckhardt - - * config/pa/pa.h (MASK_RETURN_ADDR): Change 0xfffffffc to -4. - -Wed Nov 10 15:56:16 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (compute_flow_dominators): Initially put all blocks on - the worklist. - * lcm.c (compute_antinout_edge, compute_available): Similarly. - * gcse.c (compute_cprop_avinout): Remove. - (compute_cprop_data): Use compute_available. - (delete_null_pointer_checks_1): Use compute_available. - - * basic-block.h (compute_available): Returns a void now. - * gcse.c (one_classic_gcse_pass): Do not expect compute_available - to return a value anymore. - * lcm.c (compute_available, compute_antinout_edge): Revamp to use - worklists. Fix boundary cases. Compute maximal solutions. - (compute_laterin, compute_nearerout): Similarly. - - * dwarf2out.c (add_AT_location_description): Allow - (mem (plus (pseudo) (...)) too. - -Wed Nov 10 10:52:42 1999 Tom Tromey - - * gcc.c (do_spec_1): Support text between `%u' and `%O'. - -Wed Nov 10 12:43:21 1999 Philippe De Muyter - Kaveh R. Ghazi - - * cppinit.c: Test `GCC_VERSION', not `HAVE_GCC_VERSION'. - - * gansidecl.h: Likewise. - - * rtl.c: Likewise. - - * rtl.h: Likewise. - - * toplev.h: Likewise. - - * tree.c: Likewise. - - * tree.h: Likewise. - - * varray.c: Likewise. - - * varray.h: Likewise. - -Wed Nov 10 10:57:22 1999 Clinton Popetz - - * gcov.c (struct arcdata): Add hits and total, remove prob. - (output_branch_counts): New. - (process_args): Set output_branch_counts if -c. - (calculate_branch_probs): Store hits and total instead of - percentage. - (output_data): Emit counts if output_branch_counts is true. - * gcov.texi (Invoking Gcov): Document -c switch.. - -Wed Nov 10 01:10:41 1999 Philippe De Muyter - - * genoutput.c (output_insn_data): Cast `INSN_OUTPUT_FORMAT_MULTI' and - `INSN_OUTPUT_FORMAT_FUNCTION' to `PTR'-type. - -Wed Nov 10 00:51:41 1999 Hans-Peter Nilsson - - * invoke.texi (C Dialect Options): Add missing builtins from - c-common.c to list. - * extend.texi (Other Builtins): Copy to this list. - -Wed Nov 10 04:58:09 1999 Alexandre Oliva - - * Makefile.in (recog.o): Use BASIC_BLOCK_H macro. - (print-rtl.o, $(HOST_PREFIX_1)print-rtl.o): Likewise. Remove - redundant bitmap.h. - -Wed Nov 10 00:02:53 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (compute_flow_dominators): No longer treat basic block 0 - or (n_basic_blocks - 1) specially. Clear the AUX field before - starting computation of doms/pdoms. Fix initial state for pdoms. - -Wed Nov 10 03:58:08 1999 Alexandre Oliva - - * Makefile.in ($(HOST_PREFIX_1)rtl.o): Update dependencies to - match rtl.o's: added ggc.h and toplev.h - ($(HOST_PREFIX_1)print-rtl.o): Likewise: added system.h. - ($(HOST_PREFIX_1)rtlanal.o): Likewise: added system.h. - ($(HOST_PREFIX_1)obstack.o): Likewise: added $(CONFIG_H). - -Tue Nov 9 10:30:08 1999 Tom Tromey - - * config/i386/xm-djgpp.h (HAVE_DOS_BASED_FILE_SYSTEM): Renamed - from HAVE_DOS_BASED_FILESYSTEM. - * gcc.c (find_a_file): Use HAVE_DOS_BASED_FILE_SYSTEM, not - HAVE_DOS_BASED_FILESYSTEM. - (main): Likewise. - (split_directories): Only special-case DOS file names if - HAVE_DOS_BASED_FILE_SYSTEM is defined. Use IS_DIR_SEPARATOR - instead of explicit tests. Conditionalize on !VMS. - (make_relative_prefix): Use IS_DIR_SEPARATOR instead of explicit - tests. Conditionalize on !VMS. - (process_command): Only use make_relative_prefix if !VMS. - (free_split_directories): Conditionalize on !VMS. - (DIR_UP): Conditionalize on !VMS. - -Wed Jun 9 16:57:11 1999 Mumit Khan - - * gcc.c (STANDARD_BINDIR_PREFIX): Provide default. - -Fri Feb 5 14:22:01 1999 Mumit Khan - - * gcc.c (make_relative_prefix): Handle the HAVE_EXECUTABLE_SUFFIX - case. - -Mon Nov 8 14:16:57 1999 Michael Meissner - - * invoke.texi (Environment Variables): Document relative path - lookup. - * gcc.c (DIR_UP): If not defined, define as "..". - (standard_bindir_prefix): New static, holds target location to - install binaries. - (split_directories): New function to split a filename into - component directories. - (free_split_directories): New function, release memory allocated - by split_directories. - (make_relative_prefix): New function, make a relative pathname if - the compiler is not in the expected location. - (process_command): If GCC_EXEC_PREFIX was not specified, see if we - can figure out an appropriate prefix from argv[0]. - * Makefile.in (DRIVER_DEFINES): Use unlibsubdir in definition of - STANDARD_STARTFILE_PREFIX and TOOLDIR_BASE_PREFIX. Define - STANDARD_BINDIR_PREFIX. - -Wed Nov 10 11:47:54 1999 Michael Hayes - - * config/c4x/c4x-protos.h: New file. Prototypes for functions defined - in c4x.c. - * config/c4x/c4x.h: Moved prototypes to c4x.h. - * config/c4x/c4x.c (c4x_preferred_reload_class, c4x_limit_reload_class, - c4x_secondary_memory_needed) Delete. - (fp_zero_operand): Add mode argument. - -Thu Nov 4 15:52:35 1999 Andrew Haley - - * reload1.c (reload_reg_free_for_value_p): Don't use a register - that is in reload_reg_used. - -Tue Nov 9 16:43:00 1999 Nick Clifton - - * config/arm/arm-protos.h: New file: Prototypes for functions - defined in arm.c and pe.c. - * config/arm/arm.h: Fix compile time warnings. - * config/arm/arm.c: Fix compile time warnings. - * config/arm/pe.h: Fix compile time warnings. - * config/arm/aout.h: Fix compile time warnings. - -Tue Nov 9 14:55:44 1999 Nick Clifton - - * config/m32r/m32r-protos.h: New file: Prototypes for functions - defined in m32r.c - - * config/m32r/m32r.h: Move prototypes to m32r-protos.h - Add support for subtargets. - Add prototypes for new predicates. - Add scheduling macros. - - * config/m32r/m32r.c: Fix compile time warnings. - (int8_operand): New predicate function. - (reg_or_cmp_int16_operand): New predicate function. - (extend_operand): New predicate function. - (m32r_adjust_code): New scheduling function. - (m32r_adjust_priority): New scheduling function. - (m32r_sched_init): New scheduling function. - (m32r_sched_reorder): New scheduling function. - (m32r_sched_variable_issue): New scheduling function. - (direct_return): New codegen function. - (m32r_not_same_reg): New rtl testsing function. - - * config/m32r/m32r.md: Fix compile time warnings. - Add support for pre decrement and post increment memory - references. - Add S patterns. - Add fabs patterns. - -Mon Nov 8 22:20:13 1999 J"orn Rennecke - - * global.c (EXECUTE_IF_CONFLICT): Don't define. - (prune_preferences): Use EXECUTE_IF_SET_IN_ALLOCNO_SET instead. - (find_reg): Likewise. - -Mon Nov 8 13:16:46 1999 Jason Eckhardt - - * config/pa/pa.md (fmpynfadd,{sgl,dbl} insns): Use %fr0 rather than 0 - to avoid assembler errors. - -Mon Nov 8 15:38:41 1999 Nick Clifton - - * config/v850/v850-protos.h: New file: Prototypes for functions - defined in v850.c - * config/v850/v850.h: Move prototypes to v850-protos.h - * config/v850/v850.c: Move prototypes to v850-protos.h - * config/v850/v850.md: Fix compile time warnings. - - * config/fr30/fr30-protos.h: New file: Prototypes for functions - defined in fr30.c - * config/fr30/fr30.h: Move prototypes to fr30-protos.h - * config/fr30/fr30.c: Fix compile time warnings. - * config/fr30/fr30.md: Fix compile time warnings. - -Mon Nov 8 07:25:37 1999 Mark Mitchell - - * tree.h (get_containing_scope): Declare it. - * tree.c (get_containing_scope): New fucntion. - (decl_function_context): Use it. - * toplev.c (rest_of_compilation): Use get_containing_scope. - -aMon Nov 8 03:03:07 1999 Alexandre Oliva - - * Makefile.in (rtl.o): Depend on toplev.h. - -Sun Nov 7 20:55:14 1999 Mark Mitchell - - * cse.c (delete_trivially_dead_insns): Replace alloca with - xmalloc/xcalloc. - * except.c (update_rethrow_references): Likewise. - (init_eh_nesting_info): Likewise. - * function.c (identify_blocks): Likewise. - * gcse.c (dump_hash_table): Likewise. - * graph.c (print_rtl_graph_with_bb): Likewise. - * loop.c (combine_movables): Likewise. - (move_movables): Likewise. - (count_loop_regs_set): Likewise. - (strength_reduce): Likewise. - * profile.c (compute_branch_probabilities): New function, split - out from ... - (branch_prob): Here. Replace alloca with xmalloc/xcalloc. - * regclass.c (regclass): Likewise. - * regmove.c (regmove_optimize): Likewise. - * toplev.c (compile_file): Likewise. - (main): Don't mess with the stack rlimit. - -Sun Nov 7 19:41:17 1999 Catherine Moore - - * config/elfos.h (ASM_DECLARE_FUNCTION_NAME): Conditionally define. - (ASM_DECLARE_FUNCTION_SIZE): Conditionally define. - -Sun Nov 7 10:23:28 1999 Mark P. Mitchell - - * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns. - -Sun Nov 7 02:58:48 1999 Jeffrey A Law (law@cygnus.com) - - * global.c (EXECUTE_IF_CONFLICT): Undo Robert's change. - (EXECUTE_IF_SET_IN_ALLOCNO_SET): Put curleys around CODE in - macro expansion. - -Sat Nov 6 23:48:30 1999 Robert Lipe (robertlipe@usa.net) - - * global.c (EXECUTE_IF_CONFLICT): Correct quoting typo. - -Sat Nov 6 17:34:39 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (post_dominators): Kill. - (alloc_code_hoist_mem, free_code_hoist_mem); Kill post_dominators. - (compute_code_hoist_data): Use compute_flow_dominators. Do not - pass in a pdom array since we do not need pdoms. - * haifa-sched.c (schedule_insns): Similarly. - * flow.c (compute_dominators): Remove dead function. - (compute_flow_dominators): Do not compute doms or pdoms if the - caller does not request them. Split up loop to build doms and - pdoms. Use a worklist to compute doms and pdoms. - * basic-block.h (compute_dominators): Remove prototype. - -Sat Nov 6 11:38:39 1999 Richard Henderson - - * haifa-sched.c (struct haifa_insn_data, h_i_d): New. - (insn_luid, insn_priority, insn_costs, insn_units): Remove. - (insn_reg_weight, insn_depend, insn_dep_count): Remove. - (insn_blockage, insn_ref_count, line_note, insn_tick): Remove. - (cant_move, fed_by_spec_load, is_load_insn): Remove. - (schedule_region): Remove unused variable. - (schedule_insns): Allocate h_i_d, and not all the separate arrays. - -Sat Nov 6 10:00:34 1999 Mark Mitchell - - * local-alloc.c (local_alloc): Use xmalloc/xcalloc, not alloca. - (update_equiv_regs): Likewise. - (block_alloc): Likewise. - * reg-stack.c (reg_to_stack): Likewise. - (convert_regs_2): Likewise. - * reload1.c (reload_as_needed): Likewise. - -Sat Nov 6 09:57:59 1999 Mark Mitchell - - * Makefile.in (dbxout.o): Depend on ggc.h. - (dwarf2out.o): Likewise. - (xcoffout.o): Likewise. - * dbxout.c: Include ggc.h. - (dbxout_init): Register lastfile as a root. - * dwarf2out.c: Include ggc.h. - (dwarf2out_line): Register lastfile as a root. - * xcoffout.c: Include ggc.h. - (xcoffout_source_line): Register xcoff_lastfile as a root. - -Sat Nov 6 09:52:09 1999 Richard Henderson - - * i386.md (movdf_1, movxf_1): Earlyclobber general regs destination. - -Sat Nov 6 07:48:59 1999 Catherine Moore - - * config/svr4.h (ASM_DECLARE_FUNCTION): Check if already - defined. - (ASM_DECLARE_FUNCTION_SIZE): Likewise. - -Fri Nov 5 18:33:39 1999 J"orn Rennecke - - * global.c (EXECUTE_IF_SET_IN_ALLOCNO_SET): New macro. - (EXECUTE_IF_CONFLICT): Likewise. - (ALLOCNO_LIVE_P): Avoid signed division. - (SET_ALLOCNO_LIVE, CLEAR_ALLOCNO_LIVE): Likewise. - (prune_preferences, find_reg): Use EXECUTE_IF_CONFLICT. - (record_one_conflict): Use EXECUTE_IF_SET_IN_ALLOCNO_SET. - -Fri Nov 5 12:04:02 1999 Richard Henderson - - * haifa-sched.c (schedule_block): Don't crash if there's no - next insn for an interblock movement. - (add_branch_dependences): Don't allow clobber insns to move either. - -Fri Nov 5 10:18:11 1999 Richard Henderson - - * i386.c (split_xf): New. - * i386-protos.h: Declare it. - * i386.md (movxf_1): Add general regs alternatives. - (movxf_1+1): New splitter for same. - -Fri Nov 5 12:05:52 1999 Nick Clifton - - * function.c (purge_addressof_1): Add missing return values. - -Fri Nov 5 10:07:25 1999 Nick Clifton - - * function.c (is_addressof): New function. Returns true if - the given piece of RTL is an ADDRESSOF. - (purge_addressof_1): Make boolean. Return false if the - ADDRESSOFs could not be purged. - (purge_addressof): If ADDRESSOFs could not be purged from the - notes attached to an insn, remove the offending note(s), - unless they are attached to a libcall. - -1999-11-05 Andreas Jaeger - - * genoutput.c (null_operand =): Initialize all fields. - - * errors.h: Add extern to prototypes. - -Fri Nov 5 01:44:09 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (m68k-next-nextstep4): Handle Openstep 4.2. - * configure: Rebuilt. - -Fri Nov 5 01:24:37 1999 J"orn Rennecke - - * global.c (CONFLICTP, SET_CONFLICT): Avoid signed division. - (mirror_conflicts): New function. - (global_alloc): Call it. - (expand_preferences): Remove redundant CONFLICTP test. - (find_reg, dump_conflicts): Likewise. - (prune_preferences): Process conflicts one word at a time. - -Fri Nov 5 01:05:21 1999 Richard Henderson - - * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_BITMAP - instead of an explicit loop. - -Thu Nov 4 23:07:14 1999 Jim Wilson - - * cse.c (cse_insn): Revert Oct 31 change. When computing src_elt, - if REG_RETVAL check succeeds, then put classp in src_elt. - -Thu Nov 4 23:48:14 1999 Jeffrey A Law (law@cygnus.com) - - * function.c (pad_to_arg_alignment): Only update argument_pad - if the argument's alignment is greater than STACK_BOUNDARY. - -Thu Nov 4 16:44:53 1999 Richard Henderson - - * bitmap.h (BITMAP_XFREE): New. - * flow.c (life_analysis): Use it. - (life_analysis_1): Free blocks. - - * combine.c (undo_commit): New. - (try_combine): Use it. Don't zap undobuf.undos. - (combine_instructions): Don't zap undobuf.undos; free the - undobuf.frees list. - - * local-alloc.c (local_alloc): Free qty_phys_num_sugg. - - * stmt.c (cost_table_): New. - (estimate_case_costs): Use it instead of xmalloc. - - * toplev.c (compile_file): Reuse dumpname memory instead - of strdup'ing it. - -Thu Nov 4 16:36:44 1999 Richard Henderson - - * reg-stack.c (convert_regs_1): Initialize target_stack->top - after verifying an EH edge. - - * haifa-sched.c (init_rgn_data_dependences): Correctly - size bb_pending_lists_length when zeroing. - -Thu Nov 4 16:36:36 1999 Richard Henderson - - * function.c (diddle_return_value): New. - (expand_function_end): Use it. - * stmt.c (expand_null_return): Likewise. - (expand_value_return): Likewise. - - * reg-stack.c (subst_stack_regs_pat): Handle clobbers at top-level. - - * reload1.c (reload): Don't remove return value clobbers. - -Thu Nov 4 13:33:46 1999 Richard Henderson - - * rtl.c (read_rtx): Use fatal_with_file_and_line not fatal. - -Thu Nov 4 12:49:52 1999 Richard Henderson - - * cse.c (cse_main): Use xmalloc, not alloca. - (cse_basic_block): Likewise. - * local-alloc.c (local_alloc): Likewise. - -Thu Nov 4 14:22:12 1999 David Billinghurst - Alexandre Oliva - - * rtl.c: Include toplev.h. - (fatal): Remove declaration. - -Thu Nov 4 06:39:47 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_block): Fix thinko. - -1999-11-03 James McKelvey - - * fixinc/fixincl.c(create_file): Allow for systems that do not have - S_IR* defined values - -1999-11-03 Philippe De Muyter - - * fixlib.c (load_file_data): Do not call `realloc' with a NULL pointer; - call `malloc' instead. - -Wed Nov 3 23:05:14 1999 Mark Mitchell - - * flags.h (flag_renumber_insns): Declare. - * emit-rtl.c (renumber_insns): Check flag_renumber_insns. Print - renumbering table. - * rtl.h (renumber_insns): Change prototype. - * toplev.c (flag_renumber_insns): Define. - (rest_of_compilation): Pass rtl_dump_file to flag_renumber_insns. - -Wed Nov 3 15:11:27 1999 David S. Miller - - * config/sparc/sparc.md: Remove insn type fpsqrt, add fpsqrts - and fpsqrtd. Use them and create fdiv function unit to more - accurately represent fpu sqrt pipeline semantics on UltraSPARC. - * config/sparc/sparc.c: Account for fpsqrt{s,d} changes. - -Wed Nov 3 15:11:27 1999 Matteo Frigo - - * config/sparc/sparc.md: Adjust FADD/FMUL result latencies to - 3 on UltraSPARC. - * config/sparc/sparc.c (ultra_schedule_insn): Insert launched - insn into ready list, do not use just a raw swap. - -Wed Nov 3 14:51:59 1999 Mark P. Mitchell - - * rtl.h (renumber_insns): New function. - (remove_unnecessary_notes): Likewise. - * emit-rtl.c (renumber_insns): Define. - (remove_unnecessary_notes): Likewise. - * toplev.c (rest_of_compilation): Remove dead code. - Use renumber_insns and remove_unnecessary_notes. - - * gcse.c (struct null_pointer_info): New type. - (get_bitmap_width): New function. - (current_block): Remove. - (nonnull_local): Likewise. - (nonnull_killed): Likewise. - (invalidate_nonnull_info): Take a null_pointer_info as input. - (delete_null_pointer_checks_1): New function. - (delete_null_pointer_checks): Use it. - - * haifa-sched.c (find_rgns): Replace uses of alloca with xmalloc. - (split_edges): Likewise. - (schedule_block): Likewise. - (compute_block_backward_dependencies): Likewise. - (schedule_region): Likewise. - (schedule_insns): Likewise. - -Wed Nov 3 15:40:23 1999 Catherine Moore - - * defaults.h (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Provide default. - * emit-rtl.c (gen_label_rtx): Support LABEL_ALTERNATE_NAME. - * final.c (final_scan_insn): Emit LABEL_ALTERNATE_NAME. - * ggc-common.c (ggc_mark_rtx_children): Mark LABEL_ALTERNATE_NAME. - * jump.c (delete_unreferenced_labels): Don't delete if - LABEL_ALTERNATE_NAME is set. - * print-rtl.c (print_rtx): Dump alternate name. - * rtl.def (CODE_LABEL): Change format to "iuuis00s". - * rtl.h (LABEL_ALTERNATE_NAME): Define. - * rtl.texi (LABEL_ALTERNATE_NAME): Document. - * tm.texi (ASM_OUTPUT_ALTERNATE_LABEL_NAME): Document. - -Wed Nov 3 15:39:19 1999 Kaveh R. Ghazi - - * fix-header.c (recognized_extern, recognized_function): Constify - a char*. - - * lcm.c (compute_laterin): Remove unused variable `temp_bitmap'. - (pre_edge_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. - (compute_available): Remove unused variable `last'. - (compute_nearerout): Remove unused variable `temp_bitmap'. - (pre_edge_rev_lcm): Mark parameter `file' with ATTRIBUTE_UNUSED. - Remove unused variable `x'. - - * scan.h (recognized_function, recognized_extern): Constify a - char*. - - * simplify-rtx.c (simplify_rtx): Remove unused variable `new'. - -Wed Nov 3 10:40:53 1999 Franz Sirl - - * varasm.c (decode_rtx_const): Use XSTR to access the string - of a SYMBOL_REF. - -Wed Nov 3 10:10:58 1999 Richard Henderson - - * c-decl.c (duplicate_decls): Copy DECL_MODE too. - -Wed Nov 3 12:12:59 1999 Bernd Schmidt - - * reload1.c (eliminate_regs_in_insn): If copying insn, also copy notes. - -Wed Nov 3 03:26:28 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (ireg_operand): New function. - * pa.h (PREDICATE_CODES): Handle ireg_operand. - * pa.md (parallel_addb, parallel_movb): Use ireg_operand. - Fix out of date comment. - - * pa.md (negdi2): Turn into expander + anonymous pattern. - - * reload.c (find_reloads): Fix typos in recent change. - - * dwarf2out.c: Do not include ctype.h. - -Tue Nov 2 21:53:44 1999 Richard Kenner - - * regclass.c (record_reg_classes): Always use may_move_cost when - seeing how operand fits with various register classes. - -Tue Nov 2 15:38:17 1999 Richard Henderson - - * resource.c: Revert Oct 26 20:42 and Oct 27 00:56 changes. - * toplev.c: Revert Nov 1 13:22 change. - -Tue Nov 2 14:21:37 1999 Jason Eckhardt - - * config/pa/pa.md (height reduction patterns): Add checks for - overlapping operands to avoid semantic-destroying splits for - height reduction patterns. - -Tue Nov 2 15:27:31 1999 Alexandre Oliva - - * configure.in (m68k-hp-hpux*, xm_alloca.h): The underscore should - have been an hyphen, fixed. - * configure: Rebuilt. - -Tue Nov 2 17:04:36 1999 Nick Clifton - - * config/arm/tpe.h: Add prototypes for exported functions. - * config/arm/pe.c: Fix compile time warnings. - * config/arm/semi.h: Fix compile time warnings. - * config/arm/arm.c: Fix compile time warnings. - * config/arm/arm.h: Fix compile time warnings. - * config/arm/arm.md: Fix compile time warnings. - * config/arm/thumb.c: Fix compile time warnings. - * config/arm/thumb.h: Fix compile time warnings. - * config/arm/thumb.md: Fix compile time warnings. - -Tue Nov 2 04:10:24 1999 Jan Hubicka - - * jump.c (jump_optimize_1): Swap the incscc and the conditional mode - detection code - - * unroll.c (unroll_loop): Remove LOOP notes when loop is - completely unrolled. - -Tue Nov 2 16:57:22 1999 Bernd Schmidt - - * cse.c (simplify_plus_minus, check_fold_const): Delete declarations. - -Tue Nov 2 09:43:00 1999 Catherine Moore - - * Makefile.in (genattrtab): Don't use (HOST_RTLANAL). - * rtl.h (rtx_equal_p): Move prototype. - * rtl.c (rtx_equal_function_value_matters): Move from - rtlanal.c - (rtx_equal_p): Likewise. - * rtlanal.c (rtx_equal_function_value_matters): Delete. - (rtx_equal_p): Likewise. - -Mon Nov 1 23:21:17 1999 Jason Merrill - - * libgcc2.c (__do_global_dtors): Only do EH frame stuff if - ! HAS_INIT_SECTION. - -Mon Nov 1 23:37:38 1999 Jeffrey A Law (law@cygnus.com) - - * gcc.1 (PA options): Remove obsolete -mshared-libs options. - - * pa.h (ADDR_VEC_ALIGN): Define. - - * jump.c (jump_optimize_1): Also move LOOP_VTOP and LOOP_CONT - notes when presented with "if (foo) break; end_of_loop" and - the break sequence gets moved out of the loop. - - * unroll.c (unroll_loop): Allocate memory for MAP using xcalloc. - Remove explicit zero initializations of entries within MAP. - -Mon Nov 1 18:09:14 1999 Richard Henderson - - * reg-stack.c (convert_regs_1): Handle EH edges specially. - -Mon Nov 1 15:41:01 1999 Mark P. Mitchell - - * bitmap.h (BITMAP_XMALLOC): New macro. - * flow.c (CLEAN_ALLOCA): Remove. - (delete_unreachable_blocks): Use xmalloc/xcalloc instead of alloca. - (life_analysis): Likewise. - (update_life_info): Don't use CLEAN_ALLOCA. - (life_analysis_1): Use xmalloc/xcalloc instead of alloca. - (calculate_global_regs_live): Likewise. - (print_rtl_with_bb): Likewise. - (verify_flow_info): Likewise. - * global.c (global_alloc): Likewise. - (global_conflicts): Likewise. - * integrate.c (save_for_inline_nocopy): Likewise. - (expand_inline_function): Likewise. - * jump.c (jump_optimize_1): Likewise. - (duplicate_loop_exit_test): Likewise. - (thread_jumps): Likewise. - * loop.c (loop_optimize): Likewise. - (combine_givs): Likewise. - (recombine_givs): Likewise. - * reorg.c (dbr_schedule): Likewise. - * unroll.c (unroll_loop): Likewise. - - * combine.c (combine_instructions): Use xmalloc instead of alloca. - -Mon Nov 1 13:22:30 1999 Richard Henderson - - * toplev.c (rest_of_compilation): Don't optimize the CFG - when rebuilding, just before dbr. - -Mon Nov 1 14:35:50 1999 Kaveh R. Ghazi - - * output.h (assemble_end_function, assemble_destructor, - assemble_constructor, assemble_gc_entry, assemble_global, - assemble_label, output_constant_pool) Constify a char*. - - * varasm.c (assemble_destructor, assemble_constructor, - assemble_gc_entry, assemble_end_function, assemble_global, - assemble_label, output_constant_pool): Likewise. - -Mon Nov 1 14:22:51 1999 Nick Clifton - - * config/arm/thumb.c (thumb_expand_prologue): Add comments - explaining what is goin on in this function. - -Mon Nov 1 08:03:15 1999 Richard Kenner - - * regclass.c (record_reg_classes): In matching case, recompute - costs since the direction of movement is different. - -Sun Oct 31 21:59:34 MST 1999 Diego Novillo - - * resource.c (mark_target_live_regs): For unconditional branches, - the resources found at the branch target should be added to the - resources found so far, not intersected. - -Sun Oct 31 15:48:49 1999 Philippe De Muyter - - * fixinc/fixtests.c, fixinc/fixfixes.c : Keep `#' in first column for - old cpp's. - * fixinc/fixincl.c (fcntl.h) : Do not include this file twice. - (sys/mman.h): Include this file only if #HAVE_MMAP. - (run_compiles): Initialize `esac_fmt' with one old KR string, not - with automatically concatenated ANSI strings. - -Sun Oct 31 23:57:07 1999 Mark Mitchell - - * ggc-page.c (struct page_entry): Remove save_num_free_objects. - (DIV_ROUND_UP): Robustify. - (ggc_recalculate_in_use_p): New function. - (release_pages): Don't inline it. - (ggc_alloc_obj): Don't refuse to allocate objects on pages for - outer contexts. - (ggc_pop_context): Use ggc_recalculate_in_use_p. - (clear_marks): Always save in_use_p. - (sweep_pages): Use ggc_recalculate_in_use_p. - (ggc_page_print_statistics): Avoid signed/unsigned comparisons. - Release pages before counting statistics. - -Sun Oct 31 23:42:37 1999 Mark Mitchell - - * toplev.c (rest_of_compilation): Fix thinko in this change: - - Fri Oct 29 15:25:07 1999 Arnaud Charlet - - (rest_of_compilation): If inside an inlined external function, - pretend we are just being declared. - -Sun Oct 31 23:03:25 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (calculate_global_regs_live): Fix thinko. - - * integrate.c (expand_inline_function): Fix bugs in previous - change from Oct 28, 1999. - -Sun Oct 31 20:27:45 1999 Mark Mitchell - - * stmt.c (expand_value_return): Fix typo in this change: - - Thu Oct 28 18:06:50 1999 Richard Kenner - (expand_value_return): Correctly convert VAL when promoting function - return; support RETURN_REG being a PARALLEL. - -Sun Oct 31 20:25:42 1999 Mark P. Mitchell - - * expr.c (readonly_fields_p): Ignore everything except FIELD_DECLs. - -Sun Oct 31 20:42:17 1999 Kaveh R. Ghazi - - * hard-reg-set.h (reg_names): Constify a char*. - - * regclass.c (reg_names): Likewise. - - * regs.h (reg_names): Likewise - - * a29k/a29k.c (reg_names): Delete declaration. - - * a29k/a29k.h (CONDITIONAL_REGISTER_USAGE): Constify a char*. - - * arc/arc.c (arc_save_restore, arc_output_function_prologue, - arc_output_function_epilogue): Likewise. - - * elxsi/elxsi.c (reg_names): Likewise. - - * gmicro/gmicro.h (FUNCTION_PROLOGUE, FUNCTION_EPILOGUE): Likewise. - - * m32r/m32r.c (m32r_output_function_epilogue, emit_cond_move): - Likewise. - - * m88k/m88k.c (output_function_profiler): Likewise. - - * sparc/sparc.c (sparc_flat_output_function_prologue, - sparc_flat_output_function_epilogue): Likewise. - -Sun Oct 31 13:32:15 CET 1999 Marc Lehmann - - * toplev.c (rest_of_compilation): Separate the setjmp/vfork clobber - warning from -Wuninitialized and put it under -W. - * function.c (uninitialized_vars_warning): Warn only when the - corresponding flag is set. - -Sun Oct 31 01:53:30 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): If an insn has only a single set, SRC_EQV - is nonzero and the single set does not have an elt, then assign - it an elt. - - * simplify-rtx.c: New file. - * Makefile.in (OBJS): Add simplify-rtx.o - (simplify-rtx.o): Add dependencies. - * rtl.h (simplify_gen_binary, simplify_rtx): Add prototypes. - * cse.c: Use simplify_gen_binary intead of cse_gen_binary. - (cse_gen_binary, simplify_unary_operation): Delete. - (simplify_binary_operation, simplify_plus_minus): Likewise. - (check_fold_consts, simplify_relation_operation): Likewise. - (simplify_ternary_operation): Likewise. - (delete_trivially_dead_insns): Simplify the contents of the - REG_EQUAL note before trying to substitute it into the source - of the reg-reg copy at the end of a libcall sequence. - - * combine.c (combine_simplify_rtx): Renamed from simplify_rtx. All - references/callers changed. - - * mn10200.c (mn10200_va_arg): Force the return value into a - register. - - * fr30.h (EXTRA_CC_NAMES): Remove obsolete macro. - - * cccp.c (macroexpand): Avoid out of range accesses for omitted - arguments. - -Sat Oct 30 22:42:50 1999 Stephen L Moshier - - * c-lex.c (yylex): Accept 'f' in mantissa of hex float constant. - -Sat Oct 30 22:19:26 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Fix thinko when optimizing comparisons - against -0.0. - -Sat Oct 30 21:32:17 1999 David Starner - - * gcc.texi (Passes): Update front-end files to their current - location. - -Sat Oct 30 14:41:40 1999 Richard Henderson - - * alpha.h (SECONDARY_INPUT_RELOAD_CLASS): Call secondary_reload_class. - (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. - (PREDICATE_CODES): Add addition_operation. - * alpha-protos.h (addition_operation): Declare. - (secondary_reload_class): Likewise. - * alpha.c (addition_operation): New. - (secondary_reload_class): New, from old SECONDARY_INPUT_RELOAD_CLASS. - * alpha.md (adddi3): Turn into expander. - (*lda, *adddi_2): New. - (movsf, movdf patterns): Don't preference integer regs. - (movsi, movdi patterns): Don't preference fp regs. - -Sat Oct 30 14:38:22 1999 Richard Henderson - - * genrecog.c (write_switch): Check for duplicate CODE cases. - -Sat Oct 30 14:31:48 1999 Richard Henderson - - * ggc-common.c: Update pre-function commentary. - * ggc-page.c: Likewise. - (poison): Remove. - (poison_pages): Use memset directly. - (ggc_alloc_obj): Likewise. Use a different pattern than poison_pages. - (ggc_collect): Poison before sweeping. - * ggc-simple.c: Update pre-function commentary. - (ggc_alloc_obj): Poison nonzeroed memory. - -Sat Oct 30 14:28:52 1999 Mark Mitchell - - * ggc-common.c (ggc_print_statistics): Make arguments to fprintf - match format string, even on 64-bit hosts. - * gcc-page.c (ggc_page_print_statistics): Likewise. - -Sat Oct 30 14:38:04 1999 Catherine Moore - - * config/i386/i386.c (ix86_cpu): Revert last patch. - * config/i386/i386.h (ix86_cpu): Ditto. - -Fri Oct 29 17:00:42 1999 Jim Wilson - - * stor-layout.c (layout_type): When compute TYPE_SIZE_UNIT from - TYPE_SIZE, convert type of result to sizetype. - -Fri Oct 29 14:34:17 1999 Richard Henderson - - * flow.c (count_or_remove_death_notes): Equate NULL with the - universal set. - - * jump.c, reg-stack.c, toplev.c: Revert Oct 27 change. - * toplev.c (rest_of_compilation): Rebuild CFG immediately before - dbr_schedule. - - * i386.c (pic_label_no): Delete. - (ix86_attr_length_default): Don't use single_set to peek - inside a parallel. - - * recog.c (peephole2_optimize): Allow recog_next_insn to index - the first insn after bb->end. - * i386.md (push mem peeps): Scratch is live after evaluation - of the memory. - (cmp mem peep): Similarly. - -Fri Oct 29 11:50:11 1999 Catherine Moore - - * calls.c (emit_library_call_value): Fix declaration of alignment_pad. - * function.c (pad_to_arg_alignment): Add missing braces. - -Fri Oct 29 13:53:48 1999 Kaveh R. Ghazi - - * alpha/alpha-protos.h (literal_section): Add prototype. - (alpha_need_linkage, alpha_start_function,alpha_end_function): - Constify a char*. - - * alpha/alpha.c (alpha_ra_ever_killed, set_frame_related_p): Add - prototype. - (alpha_start_function, alpha_end_function, float_strings, - alpha_need_linkage): Constify a char* - - * alpha/alpha.h (ASM_OUTPUT_ASCII, ASM_OUTPUT_MI_THUNK): Likewise. - - * alpha/alpha32.h (ASM_OUTPUT_MI_THUNK): Likewise. - - * alpha/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * alpha/vms.h (ASM_OUTPUT_SECTION_NAME): Likewise. - -Fri Oct 29 13:49:39 1999 Kaveh R. Ghazi - - * flow.c (debug_flow_info): Add prototype. - - * gcc.c (main): Likewise. - - * gcse.c (expr_reaches_here_p_work, pre_expr_reaches_here_p_work): - Likewise. - - * reload1.c (failed_reload, set_reload_reg): Likewise. - - * mips-tfile.c (main): Likewise. - (pfatal_with_name, fancy_abort, botch, fatal, catch_signal): Mark - with ATTRIBUTE_NORETURN. - -Fri Oct 29 18:16:03 1999 Andrew Haley - - * config/i386/i386.h (ENCODE_SECTION_INFO): Don't do anything if - DECL is not a memory ref. - -Fri Oct 29 09:05:34 1999 Catherine Moore - - * config/i386/i386.h (ix86_cpu): Remove extern attribute. - * config/i386/i386.c (ix86_cpu): Add extern attribute. - -Fri Oct 29 16:30:04 1999 Andrew Haley - - * config/mips/elf.h: remove NAME__MAIN and SYMBOL__MAIN. - * config/mips/elf64.h: ditto. - -Fri Oct 29 08:03:57 1999 Catherine Moore - - * expr.c (emit_push_insn): New argument alignment_pad. - Update all callers. Adjust stack pointer based on alignment pad. - * function.c (pad_to_arg_alignment): New argument alignment_pad. - Update all callers. Track alignment_pad if boundary > PARM_BOUNDARY. - (locate_and_pad_parm): New argument alignment_pad. Update all - callers. - * expr.h (emit_push_insn): Update prototype. - (locate_and_pad_parm): Update prototype. - * calls.c (arg_data): Add new field alignment_pad. - (initialize_argument_information): Initialize alignment_pad. - -Fri Oct 29 02:51:35 1999 Mark Mitchell - - * except.c (free_eh_nesting_info): Free the info itself. - * function.c (free_after_compilation): Don't free NULL. - * gcse.c (alloc_pre_mem): Free the temp_bitmap, too. - (pre_edge_insert): Free inserted. - * stmt.c (free_stmt_status): Don't free NULL. - -Fri Oct 29 15:25:07 1999 Arnaud Charlet - - * gcov.c (DIR_SEPARATOR): Provide default. - (output_data): Add test for MS-DOS format absolute filename. - (fancy_abort): Correct program name. - (open_files): Open all files in binary mode. - * libgcc2.c (__bb_exit_func): Likewise. - - * profile.c (init_branch_prob): Specify binary when opening files. - - * flags.h (flag_unwind_tables): New decl. - * toplev.c (flag_unwind_table): New definition. - (f_options): Add -funwind-tables. - (decode_g_option): Clarify warning when unknown -g option is given. - (rest_of_compilation): If inside an inlined external function, - pretend we are just being declared. - - * dwarf2out.c (dwarf2out_do_frame): Check -funwind_tables. - (dwarf2out_frame_finish): Likewise. - -Fri Oct 29 07:44:26 1999 Vasco Pedro - - * fold-const.c (merge_ranges): If not in0, but in1, handle - upper bounds equal like subset case. - -Thu Oct 28 19:22:24 1999 Douglas Rupp - - * dbxout.c (dbxout_parms): Generate a second stabs line for parameters - passed in a register but moved to the stack. - -Thu Oct 28 19:12:57 1999 Sam Tardieu - - * gcc.c (pass_exit_codes, greatest_status): New variables. - (struct option_map): Add entry for "--pass-exit-codes". - (execute): Update greatest_status if error. - (display_help): Add documentation for -pass-exit-codes. - (process_command): Handle -pass-exit-codes. - (main): Look at pass_exit_codes and greatest_status on call to exit. - -Thu Oct 28 18:06:50 1999 Richard Kenner - - * reload.c (find_reloads): Refine test for no input reload - case to not includes reloads emitted after insn. - - * function.c (find_temp_slots_from_address): Handle sum involving - a register that points to a temp slot. - (update_temp_slot_address): Make recursive call if both old and - new are PLUS with a common operand. - * calls.c (expand_call): Mark temp slot for result as having - address taken. - - * rtlanal.c (reg_referenced_p, case IF_THEN_ELSE): New case. - - * gcc.c (process_command): Add standard_exec_prefix with "GCC" - component as well as "BINUTILS". - - * integrate.h (copy_rtx_and_substitute): New arg, FOR_LHS. - * integrate.c (copy_rtx_and_substitute): Likewise. - (expand_inline_function, integrate_parm_decls, integrate_decl_tree): - All callers changed. - * unroll.c (inital_reg_note_copy, copy_loop_body): Likewise. - - * dbxout.c (dbxout_type, case INTEGER_TYPE_NODE): If can use - gdb extensions, write size of type; also be more consistent - in using references when this is a subtype. - - * pa.md (extv, extzv, insv): Use define_expand to reject constant - that is out of range. - - * loop.c (unknown_constant_address_altered): New variable. - (prescan_loop): Initialize it. - (note_addr_stored): Set it for RTX_UNCHANGING_P MEM. - (invariant_p, case MEM): Remove handling for volatile and readonly; - check new variable if readonly. - (check_dbra_loop): Chdeck unknown_constant_address_altered. - - * cse.c (canon_hash, case MEM): Do not record if BLKmode. - (addr_affects_sp_p): Removed from note_mem_written and only - define #ifdef AUTO_INC_DEC. - - * alpha.c (input_operand, case ADDRESSOF): Treat as REG. - - * regclass.c (record_reg_classes): Properly handle register move - directions. - - * varasm.c (initializer_constant_valid_p, case MINUS_EXPR): - Don't think valid if both operands are invalid. - (struct constant_descriptor): New field RTL. - (mark_const_hash_entry): Mark it. - (record_constant{,_rtx}): Initialize it. - (output_constant_def): Allocate RTL in permanent obstack and - save in table. - ({record,compare}_constant_1): Modes must match for - CONSTRUCTOR of ARRAY_TYPE. - - * c-common.h (initializer_constant_valid_p): Delete decl from here. - * output.h (initializer_constant_valid_p): Move decl to here. - * c-common.c (initializer_constant_valid_p): Delete function from here. - * varasm.c (initializer_constant_valid_p): Move function to here. - - * tree.h (STRIP_SIGN_NOPS): New macro. - * fold-const.c (optimize_minmax_comparison): New function. - (invert_truthvalue, case WITH_RECORD_EXPR): New case. - (fold): Use STRIP_SIGN_NOPS instead of STRIP_TYPE_NOPS. - (fold, case EQ_EXPR): Call optimize_minmax_comparison and add - cases with ABS_EXPR, NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR, and - widening conversions. - (fold, case LE_EXPR): Rework changing unsigned to signed comparisons - to look at size of mode, not precision of type; also add missing cases. - (optimize_bit_field_compare, decode_field_reference): Don't try to - optimize COMPONENT_REF of a PLACEHOLDER_EXPR. - - * dwarf2out.c (ctype.h): Include. - (dwarf2out_set_demangle_name_func): New function. - (size_of_line_info): Deleted. - (output_line_info): Compute size of line info table from difference - of labels. - (base_type_die, add_name_attribute): Call demangle function, if any. - (field_byte_offset): Use bits per word for variable length fields. - (gen_array_type_die): Add array name. - (gen_subprogram_die): Ignore DECL_INLINE if -fno-inline. - (dwarf2out_add_library_unit_info): New function. - - * explow.c (set_stack_check_libfunc): New function. - (stack_check_libfunc): New static variable. - (probe_stack_range): Allow front-end to set up a libfunc to call. - - * combine.c (simplify_comparison): When making comparison in wider - mode, check for having commuted an AND and a SUBREG. - (contains_muldiv): New function. - (try_combine): Call it when dividing a PARALLEL. - (simplify_rtx, case TRUNCATE): Don't remove for umulsi3_highpart. - (simplify_comparison, case ASHIFTRT): Recognize sign-extension of - a PLUS. - (record_value_for_reg): If TEM is a binary operation with two CLOBBERs, - use one of the CLOBBERs instead. - (if_then_else_cond): If comparing against zero, just return thing - being compared. - - * optabs.c (expand_abs): If machine has MAX, ABS (x) is MAX (x, -x). - Don't generate shifts and subtract if have conditional arithmetic. - - * rtl.h (delete_barrier): New declaration. - * jump.c (jump_optimize): Set up to handle conditional call. - In conditional arithmetic case, handle CALL_INSN followed by a BARRIER. - (delete_barrier): New function. - - * rtl.c (read_rtx): Call fatal if bad RTL code; check for bad mode. - - * recog.c (nonmemory_operand): Accept ADDRESSOF. - - * tree.c (build_type_attribute_variant): Push to obstack of - ttype around type_hash_canon call. - - * expr.c (placeholder_list): Move decl to file scope. - (expand_expr): Don't force access to volatile just because its - address is taken. - If ignoring reference operations, just expand the operands. - (expand_expr, case COMPONENT_REF): Propagate - EXPAND_CONST_ADDRESS to recursive call when expanding inner. - Refine test for using bitfield operations vs pointer punning. - (expand_expr, case CONVERT_EXPR): If converting to - BLKmode UNION_TYPE from BLKmode, just return inner object. - Use proper mode in store_field call. - Properly set sizes of object to store and total size in store_field - call for convert to union. - (expand_expr, case ARRAY_REF): If OP0 is in a register, put it in - memory (like for ADDR_EXPR). Also, don't put constant in register if - we'll want it in memory. - (readonly_fields_p): New function. - (expand_expr, case INDIRECT_REF): Call it if LHS. - (expand_assignment): Handle a RESULT_DECL where - DECL_RTL is a PARALLEL. - (do_jump, case WITH_RECORD_EXPR): New case. - (get_inner_reference): Always go inside a CONVERT_EXPR - and NOP_EXPR if both modes are the same. - (store_field): Use bitfield operations if size of bitsize is not same - as size of RHS's type. - Check for bitpos not a multiple of alignment in BLKmode case. - Do block move in largest possible alignment. - (store_constructor): Set BITSIZE to -1 for variable size and properly - in case of array of BLKmode. - (expand_expr_unaligned): New function. - (do_compare_and_jump): Call it. - - * mips/iris5.h (SWITCHES_NEED_SPACES): New macro. - * collect2.c (main): Only allow -ofoo if SWITCHES_NEED_SPACES - does not include 'o'. - - * function.c (instantiate_virtual_regs_1, case SET): Handle case where - both SET_DEST and SET_SRC reference a virtual register. - (gen_mem_addressof): Copy RTX_UNCHANGING_P from new REG to old REG. - - * integrate.c (expand_inline_function): Handle case of setting - virtual stack vars register (from built in setjmp); when parameter - lives in memory, expand virtual_{stack_vars,incoming_args}_rtx early. - (subst_constant): Add new parm, MEMONLY. - (expand_inline_function, integrate_parm_decls): Pass new parm. - (integrate_decl_tree): Likewise. - (copy_rtx_and_substitute, case MEM): Do copy RTX_UNCHANGING_P. - (try_constants): Call subst_constants twice, with MEMONLY 0 and 1. - (copy_rtx_and_substitute, case SET): Add explicit calls to - copy_rtx_and_substitute for both sides. - - * stmt.c (expand_asm_operands): Don't use TREE_STRING_LENGTH for - constraints. - (pushcase{,_range}): Convert to NOMINAL_TYPE after checking for - within INDEX_TYPE, instead of before. - (fixup_gotos): Use f->target_rtl, not the next insn, - since latter may be from a later fixup. - (expand_value_return): Correctly convert VAL when promoting function - return; support RETURN_REG being a PARALLEL. - (expand_return): When checking for result in regs and having - cleanup, consider PARALLEL in DECL_RTL as being in regs. - -1999-10-28 21:27 -0700 Zack Weinberg - - * cpplib.h (struct cpp_buffer: fname, nominal_fname, - last_nominal_fname): Mark const. - (struct include_hash: name, nshort, control_macro): Mark - const. - (struct macrodef: symnam): Mark const. - (struct if_stack: fname): Mark const. - (is_idchar, is_idstart, is_hor_space, trigraph_table): Delete. - (IStable): New character-syntax array which encompasses all - the old is_foo arrays. - (is_idchar, is_numchar, is_idstart, is_numstart, is_hspace, - is_space): New macros for interrogating IStable. - (check_macro_name): Kill last argument. All callers changed. - - * cppinit.c (initialize_char_syntax): Delete. - (is_idchar, is_idstart, is_hor_space, is_space, - trigraph_table): Delete. - (IStable): New. Initialize with clever macros to avoid - information duplication. - (builtin_array): Table of builtins to get rid of explicit list - in initialize_builtins. - (initialize_builtins): Use builtins_array. - (cpp_start_read): Call init_IStable, and set IStable['$'] if - opts->dollars_in_ident. - - * cppexp.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. - (cpp_parse_expr): Avoid 'format string is not constant' - warning. Use ISGRAPH to identify printable chars. - * cppfiles.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. - (read_and_prescan): Map trigraphs to chars with open-coded - if-else-if-... sequence, not a lookup table. - * cpphash.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. - * cpplib.c: Change all refs to is_xyz[] arrays to use new - is_xyz() macros. Kill SKIP_ALL_WHITE_SPACE (unused). - (check_macro_name): Remove ability to report an invalid - assertion name, which is never used. - (do_line): Constify a couple of char *'s. - * cppmain.c (main): Call cpp_cleanup before returning. - -Thu Oct 28 21:16:35 1999 Mark Mitchell - - * ggc.h (struct ggc_statistics): New type. - (ggc_get_size): New function. - (ggc_print_statistics): Likewise. - * ggc-common.c (ggc_stats): New variable. - (ggc_mark_rtx_children): Keep statistics. - (ggc_mark_tree_children): Likewise. - (ggc_print_statistics): New function. - * ggc-page.c (struct globals): Add bytes_mapped field. - (alloc_anon): Update it. - (release_pages): Likewise. - (ggc_get_size): New function. - (ggc_page_print_statistics): New function. - * ggc-simple.c (ggc_get_size): New function. - -Fri Oct 29 06:32:44 1999 Geoffrey Keating - - * flow.c (propagate_block): When the last reference to a label - before an ADDR_VEC is deleted because the reference is a dead - store, delete the ADDR_VEC. - -Thu Oct 28 12:28:50 1999 Richard Henderson - - * resource.c (find_free_register): Don't use the frame pointer - if frame_pointer_needed. - -Thu Oct 28 10:02:00 1999 Jim Wilson - - * config/mips/mips.c (mips_va_arg): Delete gen_jump as emit_jump arg. - (function_arg_pass_by_reference): Check for a NULL pointer in cum. - - * config/i960/i960.c (i960_va_start): New locals base, num. - Use INDIRECT_REF instead of ARRAY_REF on valist. - (i960_va_arg): Use INDIRECT_REF instead of ARRAY_REF on valist. - -Thu Oct 28 09:45:48 1999 Mark Mitchell - - * gcse.c (delete_null_pointer_checks): Fix typo in previous change. - -Thu Oct 28 03:37:50 1999 Peter Gerwinski - - * tree.def (PLACEHOLDER_EXPR): Update comments. - -Thu Oct 28 06:47:32 1999 Kaveh R. Ghazi - - * c-common.c (check_format_info): Avoid non-literal format string - warnings when `first_arg_num' is zero. - -Thu Oct 28 12:28:48 1999 Bernd Schmidt - - * rtl.texi: Delete explicit Prev, Up and Next entries in "@node"s. - -Thu Oct 28 11:05:13 1999 Richard Earnshaw - - * arm.md (casesi_insn): Add a clobber of the condition code - register. - -Mon Oct 18 21:16:06 1999 Fred Fish - - * tm.texi (CC1PLUS_SPEC): Make it clear in the docs that CC1_SPEC is - used by both cc1 and cc1plus. - -Thu Oct 28 10:00:48 1999 Nick Clifton - - * config/arm/arm.c: Initialize arm_structure_size_boundary to - DEFAULT_STRUCTURE_SIZE_BOUNDARY. - * config/arm/arm.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): Define - to the value 32 if it has not already been defined. - * config/arm/netbsd.h (DEFAULT_STRUCTURE_SIZE_BOUNDARY): - Override definition in arm.h with a value of 8. - -Thu Oct 28 03:12:02 1999 David Starner - - * c-pragma.c (push_alignment): Don't check the return value - of xmalloc. - -Thu Oct 28 03:08:38 1999 Matteo Frigo - - * sparc.h (ADJUST_COST): Fix thinko. - -Thu Oct 28 02:44:03 1999 Glen Nakamura - - * cccp.c (rescan): Fixed obp pointer handling around call to - check_expand subroutine. - -Thu Oct 28 02:15:22 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (delete_null_pointer_checks): Only record non-null info - for pseudos when examining stores. - - * arm.md (adddi3, adddi_sesidi_di, adddi_sesidi_di): Add - splitters for these patterns. Use "#" for output templates. - (addsi3_carryin_shift): New pattern. - -Thu Oct 28 10:20:02 1999 Geoffrey Keating - - * config/rs6000/rs6000.md (movsf): Don't convert a SUBREG - of the function return register into a plain REG until - after function inlining is done. - -Wed Oct 27 15:21:46 1999 Richard Henderson - - * jump.c (jump_optimize_1): If we did cross-jumping, and - the data will matter, rebuild the CFG. - * reg-stack.c (reg_to_stack): Only (re)build the CFG if - not optimizing. Don't run shorten_branches. - * toplev.c (rest_of_compilation): Run shorten_branches after - reg_to_stack. - -Wed Oct 27 12:33:40 1999 Mark Mitchell - - * rtl.h (note_stores): Add additional parameter. - * rtlanal.c (reg_set_p_1): Take additional parameter. - (reg_set_last_1): Likewise. - (reg_set_p): Adjust call to note_stores. - (reg_set_last): Likewise. - (note_stores): Pass data parameter to worker function. - * alias.c (record_set): Take additional parameter. - (init_alias_analysis): Pass it. - * caller-save.c (mark_set_regs): Take additional parameter. - (save_call_clobbered_regs): Pass NULL to note_stores. - * combine.c (set_nonzero_bits_and_sign_copies): Take additional - parameter. - (record_dead_and_set_regs_1): Likewise. - (reg_dead_at_p_1): Likewise. - (combine_instructions): Adjust calls to note_stores. - (try_combine): Likewise. - (record_dead_insn): Remove. - (record_dead_and_set_regs): Adjust calls to note_stores. - (reg_dead_at_p): Likewise. - * cse.c (invalidate_skipped_set): Take additional parameter. - (cse_check_loop_start): Likewise. - (cse_check_loop_start_value): Remove. - (cse_set_around_loop): Adjust calls to note_stores. - * flow.c (notice_stack_pointer_modification): Take additional - parameter. Remove duplicate declaration. - (record_volatile_insns): Adjust calls to note_stores. - * gcse.c (record_set_info): Take additional parameter. - (record_last_set_info): Likewise. - (invalidate_nonnull_info): Likewise. - (record_set_insn): Remove. - (compute_sets): Adjust calls to note_stores. - (last_set_insn): Remove. - (compute_hash_table): Adjust calls to note_stores. - (insert_insn_end_bb): Likewise. - (delete_null_pointer_checks): Likewise. - * global.c (mark_reg_store): Take additional parameter. - (mark_reg_clobber): Likewise. - (reg_becomes_live): Likewise. - (global_conflicts): Adjust calls to note_stores. - (build_insn_chain): Likewise. - * integrate.c (note_modified_parmregs): Take additional parameter. - (mark_stores): Likewise. Make it static. - (save_for_inline_nocopy): Adjust calls to note_stores. - (try_constants): Likewise. - * integrate.h (mark_stores): Remove declaration. - * jump.c (mark_modified_reg): Take additional parameter. - (thread_jumps): Adjust calls to note_stores. - * local-alloc.c (validate_equiv_mem_from_store): Take additional - parameter. - (no_equiv): Likewise. - (reg_is_set): Likewise. - (validate_equiv_mem): Adjust calls to note_stores. - (update_equiv_regs): Likewise. - (block_alloc): Likewise. - * loop.c (note_set_pseudo_multiple_uses_retval): Remove. - (note_addr_stored): Take additional parameter. - (note_set_pseudo_multiple_uses): Likewise. - (record_initial): Likewise. - (prescan_loop): Adjust calls to note_stores. - (strength_reduce): Likewise. - (check_dbra_loop): Likewise. - * regmove.c (flags_set_1): Take additional parameter. - (mark_flags_life_zones): Adjust calls to note_stores. - * reload1.c (mark_not_eliminable): Take additional parameter. - (forget_old_reloads_1): Likewise. - (reload_cse_invalidate_rtx): Likewise. - (reload_cse_check_clobber): Likewise. - (reload_combine_note_store): Likewise. - (move2add_note_store): Likewise. - (reload): Adjust calls to note_stores. - (reload_as_needed): Likewise. - (emit_reload_insns): Likewise. - (reload_cse_regs_1): Likewise. - (reload_cse_record_set): Adjust calls to reload_cse_invalidate_rtx. - (reload_combine): Adjust calls to note_stores. - * resource.c (update_live_status): Take additional parameter. - (mark_target_live_regs): Adjust calls to note_stores. - * stupid.c (find_clobbered_regs): Take additional parameter. - (stupid_life_analysis): Adjust calls to note_stores. - -Wed Oct 27 19:26:12 1999 Nick Clifton - - * config/arm/coff.h (STRUCTURE_SIZE_BOUNDARY): Delete - definition. - - * config/arm/elf.h (STRUCTURE_SIZE_BOUNDARY): Delete - definition. - - * config/arm/arm.h (STRUCTURE_SIZE_BOUNDARY): Define in terms - of the variable arm_structure_size_boundary. - -Wed Oct 27 02:05:58 1999 Mark P. Mitchell - - * alias.c (init_alias_analysis): Allocate reg_known_value and - reg_known_equiv_p on the heap. Likewise for new_reg_base_value - and reg_seen. - (end_alias_analysis): Free reg_known_value and reg_known_equiv_p. - * cse.c (cse_main): Call end_alias_analysis. - * haifa-sched.c (schedule_insns): Likewise. - * local-alloc. (update_equiv_regs): Likewise. - * reload1.c (reload_cse_regs): Likewise. - -Wed Oct 27 01:49:17 1999 Rainer Orth - - * sparc/sparc.c (sparc_override_options): Clear MASK_FPU_SET. - * sparc/sparc.h (TARGET_SWITCHES): Add "fpu" entry for reverse - mapping from MASK_FPU. - -Wed Oct 27 01:42:26 1999 Scott Christley - - * sparc.md (call): Don't bound structure return size to 0xfff. - -Wed Oct 27 00:56:59 1999 Richard Henderson - - * resource.c (mark_target_live_regs): Check that the target - insn wasn't created after compute_bb_for_insn. - -Tue Oct 26 23:15:03 1999 Mark Mitchell - - * ggc-page.c (poison_pages): Don't be overzealous. - -Tue Oct 26 23:29:18 1999 Jeffrey A Law (law@cygnus.com) - - * alias.c: Update comments for ADDRESS. - (nonlocal_reference_p): Look inside the ADDRESS to determine if - it is a local memory reference. - - * c-typeck.c (build_function_call): Check that the built-in - function is of class BUILT_IN_NORMAL before trying to recongize - it as BUILT_IN_ABS. - * calls.c (calls_function_1): Similarly for BUILT_IN_ALLOCA. - * stmt.c (expand_end_cae): Similarly for BUILT_IN_CLASSIFY_TYPE. - -Wed Oct 27 00:14:13 1999 Robert Lipe - - * gcse.c (expr_reaches_here_p): Use xcalloc and explit free instead - of alloca. - (pre_gcse): Likewise. - (hoist_expr_reaches_here_p): Likewise. - (hoist_code): Likewise. - (pre_expr_reaches_here_p): Replace alloca with xcalloc. Move core - code to ... - (pre_expr_reaches_here_p_work): ... here. - (expr_reaches_here_p): Replace alloca with xcalloc. Move core - code to ... - (expr_reaches_here_p_work): ... here. - -Tue Oct 26 20:42:45 1999 Richard Henderson - - * resource.c (find_basic_block): Delete. - (mark_target_live_regs, incr_ticks_for_insn): Use BLOCK_NUM instead. - (init_resource_info): Call compute_bb_for_insn. - -Tue Oct 26 20:21:02 1999 Richard Henderson - - * flow.c (merge_blocks_move_predecessor_nojumps): Cope - with already adjacent blocks, but no fallthru. - (merge_blocks_move_successor_nojumps): Simplify. - (debug_flow_info): New. - - * toplev.c (rest_of_compilation): Open jump1 dump file before - jump and close after, as opposed to just using dump_rtl. - -Wed Oct 27 03:09:23 1999 J"orn Rennecke - - * reload.h (earlyclobber_operand_p): Declare. - * reload.c (earlyclobber_operand_p): Don't declare. No longer static. - * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with - an earlyclobbered output conflict with RELOAD_INPUT reloads - handle - case where the RELOAD_OTHER reload is new. Use earlyclobber_operand_p. - -Tue Oct 26 18:23:38 1999 Jan Hubicka - Richard Henderson - - * emit-rtl.c (emit_block_insn_before): New. - (emit_block_insn_after): New. - * basic-block.h: Declare them. - - * bitmap.h: Protect from multiple inclusion. - - * recog.c (scratch_operand): Handle VOIDmode correctly. - - * rtl.h (JUMP_CROSS_JUMP_DEATH_MATTERS): New. - - * builtins.c (expand_builtin_apply_args_1): Remove STACK_REGS hack. - * function.c (assign_parms): Likewise. - * global.c (global_conflicts): Clarify STACK_REGS commentary. - - * reg-stack.c (max_uid): Remove. - (blocks, block_begin, block_end, block_drops_in): Remove. - (block_stack_in, block_out_reg_set, block_number): Remove. - (struct block_info_def, BLOCK_INFO): New. - (enum emit_where): New. - (current_block): New. - (BLOCK_NUM): Remove. - (mark_regs_pat, record_label_references): Remove. - (record_reg_life_pat, record_reg_life, find_blocks): Remove. - (nan): New. - (goto_block_pat, print_blocks, dump_stack_info): Remove. - (reg_to_stack): Simplified test for existence of fp code. Use - flow.c code. Call shorten_branches after cross-jump opt. - (check_asm_stack_operands): Renamed from record_asm_reg_life. - Return false if the asm doesn't use stack regs. Don't do life - analysis on the asm. - (emit_pop_insn): Replace function pointer arg `when' with - enum `where'. Update all callers. - (change_stack): Likewise. Update basic block end. - (emit_swap_insn): Use current_block->head to limit reverse search - for start of block. Use emit_block_insn_after. - (subst_stack_regs_pat): Handle USE and CLOBBER patterns. - (subst_asm_stack_regs): Use check_asm_stack_operands. Use direct - structure assignment instead of bcopy. - (print_stack): New. - (convert_regs_entry, convert_regs_exit): New. - (convert_regs_1, convert_regs_2): Split out from convert_regs. - Work on basic blocks and the CFG. - (convert_regs): Use them. - - * i386.c (output_fix_trunc): Remove code for DImode input operand - not at top-of-stack. - * i386.c (fix_truncdfdi2, fix_truncsfdi2): Use scratch with - appropriate mode. - (fix_truncdi_1): Allow any mode scratch. - -Tue Oct 26 13:30:35 1999 Richard Henderson - - * alpha.h (TARGET_MEM_FUNCTIONS): Define here. - * linux.h, netbsd.h, vms.h: Not here. - -1999-10-26 Gavin Romig-Koch - - * config/mips/mips.h (ISA_HAS_64BIT_REGS,ISA_HAS_BRANCHLIKELY, - ISA_HAS_FP4,ISA_HAS_CONDMOVE): New. - (GENERATE_BRANCHLIKELY,HAVE_SQRT_P, - CONDITIONAL_REGISTER_USEAGE): Use them. - * config/mips/mips.c (mips_move_1word,mips_move_2words, - gen_conditional_branch,override_options) : Use them. - * config/mips/mips.md : Use them. - -Tue Oct 26 13:09:23 1999 Richard Henderson - - * i386.md (zero_extendqihi2): Use SImode register name with andl. - -Tue Oct 26 12:35:38 1999 Richard Henderson - - * integrate.c (function_cannot_inline_p): Don't allow inlining - if setjmp is used. - -Tue Oct 26 14:10:23 1999 Kaveh R. Ghazi - - * c-parse.in (cast_expr): Constify. - - * cccp.c (special_symbol): Likewise. - - * cse.c (hash_cse_reg_info, cse_reg_info_equal_p): Likewise. - - * dwarf2out.c (base_type_die): Likewise. - - * global.c (allocno_compare): Likewise. - - * local-alloc.c (qty_compare_1, qty_sugg_compare_1): Likewise. - - * regclass.c (fix_register): Likewise. - - * rtl.h (fix_register): Likewise. - - * stupid.c (stupid_reg_compare): Likewise. - - * toplev.c (decode_f_option): Likewise. - - * tree.c (build_complex_type): Likewise. - -Tue Oct 26 18:35:25 1999 Richard Earnshaw - - * output.h: Don't unnecessarily conditionalize prototypes on TREE_CODE. - -Tue Oct 26 15:42:56 1999 Bernd Schmidt - - * reload.c (find_reloads): Compute mode and nregs fields of all - reloads. - * reload1.c (calculate_needs_all_insns): Simplify a bit. - (calculate_needs): Use precomputed mode/nregs values. - (allocate_reload_reg): Likewise. - Break out two... - (failed_reload, set_reload_reg): ... new functions. - (choose_reload_regs_init): New function, mostly broken out from... - (choose_reload_regs): ... here. Lose all the save_xxx nonsense. - Also lose one #if 0 block. - -Tue Oct 26 02:48:32 1999 Marc Espie - - * Makefile.in (AR_FOR_TARGET, RANLIB_FOR_TARGET): Fix target name - substitution. - -Tue Oct 26 01:27:32 1999 Mark Mitchell - - * tree.h (BLOCK_TYPE_TAGS): Remove. - (BLOCK_END_NOTE): Likewise. - (BLOCK_LIVE_RANGE_FLAG): Likewise. - (BLOCK_LIVE_RANGE_START): Likewise. - (BLOCK_LIVE_RANGE_END): Likewise. - (tree_block): Remove live_range_flag, live_range_var_flag, and - type_tags. Remove end_note, live_range_start, and live_range_end. - (remember_end_note): Remove prototype. - * tree.c (build_block): Don't set BLOCK_TYPE_TAGS. - * c-decl.c (poplevel): Don't set BLOCK_TYPE_TAGS or call - remember_end_note. - * ggc-common.c (ggc_mark_tree_children): Don't mark - BLOCK_TYPE_TAGS or BLOCK_END_NOTE. - * integrate.c (adjust_copied_decl_tree): Remove. - * print-tree.c (print_node): Don't print BLOCK_TYPE_TAGS. - * stmt.c (last_block_end_note): Remove. - (init_stmt): Don't add a GC root for it. - (expand_fixup): Don't set it. - (remember_end_note): Remove. - (expand_end_bindings): Don't set last_block_end_note. - -Tue Oct 26 00:41:54 1999 Bernd Schmidt - - * reload1.c (reload_reg_free_for_value_p): Show - RELOAD_FOR_OTHER_ADDRESS reloads can conflict with RELOAD_OTHER - reloads. - -Mon Oct 25 23:54:45 1999 Geoff Keating - - * expmed.c (extract_bit_field): Allow for the case of non-integer - objects that are smaller than a word (like SFmode on a 64-bit - machine). - - * loop.c (basic_induction_var): A non-integer variable which is - being set by a paradoxical subreg is probably not a biv. - -1999-10-25 Herman A.J. ten Brugge - - * prefix.c (translate_name) Check for empty prefix string. - -Mon Oct 25 23:10:45 1999 Andreas Schwab - - * Makefile.in (CPP_CROSS_NAME): New variable. - (install-cpp): Use it instead of CPP_INSTALL_NAME for the cross - xcpp. - (uninstall-cpp): Use CPP_INSTALL_NAME and CPP_CROSS_NAME for the - names of the files to be uninstalled. - -Mon Oct 25 23:03:09 1999 Jeffrey A Law (law@cygnus.com) - - * collect2.c (IS_DIR_SEPARATOR): Define. - (prefix_from_string): Use IS_DIR_SEPARATOR and DIR_SEPARATOR. - - * som.h (ASM_DECLARE_FUNCTION_NAME): Set PRIV_LEV for static - functions too. - - * haifa-sched.c (add_dependence): Update the true dependency - cache the first time we add a true dependence to the LOG_LINKS chain. - -Mon Oct 25 22:27:40 1999 Jim Kingdon - - * fold-const.c (fold): Fix comment. - -Mon Oct 25 22:49:34 1999 Kaveh R. Ghazi - - * dbxout.c (lastfile, cwd, dbxout_type_method_1, - dbxout_symbol_location, dbxout_symbol_name, dbxout_init, - dbxout_start_new_source_file, dbxout_source_file, - dbxout_source_line, dbxout_finish, dbxout_type_fields, - dbxout_type_methods, dbxout_symbol, dbxout_prepare_symbol): - Constify a char*. - (dbxout_types, dbxout_args, dbxout_symbol): Delete prototypes. - (dbxout_symbol): Mark parameter `local' with ATTRIBUTE_UNUSED. - (dbxout_block): Initialize variable `blocknum'. - - * dbxout.h (dbxout_init, dbxout_finish, - dbxout_start_new_source_file, dbxout_source_file, dbxout_types, - dbxout_args, dbxout_source_line): Constify a char*. - - * dwarfout.c (dwarf_tag_name, dwarf_attr_name, - dwarf_stack_op_name, dwarf_typemod_name, dwarf_fmt_byte_name, - dwarf_fund_type_name, name_attribute, stmt_list_attribute, - low_pc_attribute, high_pc_attribute, body_begin_attribute, - body_end_attribute, comp_dir_attribute, sf_names_attribute, - src_info_attribute, mac_info_attribute, producer_attribute, - lookup_filename, generate_macinfo_entry, fundamental_type_code, - dwarfout_line, dwarfout_start_new_source_file, dwarfout_define, - dwarfout_undef): Constify a char*. - (add_incomplete_type, retry_incomplete_types): Add prototypes. - - * dwarfout.h (dwarfout_define, dwarfout_undef, - dwarfout_start_new_source_file, dwarfout_line): Constify a char*. - -1999-10-25 Gavin Romig-Koch - - * config/mips/mips.h (MIPS_ISA_DEFAULT): Insure it's defined. - (MULTILIB_ISA_DEFAULT): New. - (MULTILIB_DEFAULTS): Use it. - * config/mips/mips.c (): Remove the now unnecessary definition - of MIPS_ISA_DEFAULT. - * config/mips/elf64.h (MULTILIB_DEFAULTS): Remove the now - unnecessary definition. - -Mon Oct 25 22:08:35 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (pic_load_addr): Add constraints to operand 1. - -1999-10-25 Bruce Korb - - * fixinc/genfixes: Provide a means for specifying -D options to - AutoGen - -Mon Oct 25 00:42:35 1999 Jeffrey A Law (law@cygnus.com) - - * arm.c (arm_override_options): Correct initialization of - arm_fast_multiply, arm_arch4, arm_arch5, arm_ld_sched, - arm_is_strong, and arm_is_6_or_7. - - * loop.c (note_set_pseudo_multiple_uses_retval): New variable. - (note_set_pseudo_multiple_uses): New function. - (check_dbra_loop): Use not_set_pseudo_multiple_uses to determine - if a pseudo set in the loop exit is used elsewhere. - -Sun Oct 24 20:52:40 1999 Mark Mitchell - - * i386.md (mulsi3): Tweak to work with SCO OSR5 COFF assembler. - -Sun Oct 24 21:02:46 1999 Richard Henderson - - * i386.md (*lea_0): Collapse addsi_0, addsi_lea_[123] into - a single load-address pattern. - -Sun Oct 24 19:33:24 1999 Mark P. Mitchell - - * haifa-sched.c (schedule_insns): Don't assign LUIDs differently - depending on whether or not line-number notes are present. - -Sun Oct 24 20:29:59 1999 Kaveh R. Ghazi - - * cccp.c (progname, file_buf, default_include, include_file, - macrodef, definition, hashval, wchar_type, user_label_prefix, - directive, out_fname, if_stack, safe_write, index0, get_lintcmd, - expand_to_temp_buffer, is_system_include, base_name, - absolute_filename, read_name_map, open_include_file, - record_control_macro, check_precompiled, check_preconditions, - pcfinclude, pass_thru_directive, create_definition, - check_macro_name, comp_def_part, collect_expansion, - check_assertion, read_token_list, assertion_install, - assertion_lookup, eval_if_expression, conditional_skip, - validate_else, skip_quoted_string, quote_string, macarg1, - error_from_errno, install, lookup, hashf, dump_defn_1, - perror_with_name, pfatal_with_name, main, trigraph_pcp, - check_white_space, rescan, handle_directive, monthnames, - special_symbol, do_include, remap_include_file, write_output, - arglist, do_assert, do_unassert, do_line, do_error, do_once, - do_ident, do_sccs, do_xifdef, skip_if_group, - output_line_directive, macroexpand, macarg, change_newlines, - initialize_builtins, make_definition): Constify a char*. - - * pcp.h (stringdef): Likewise. - -Sun Oct 24 13:29:28 1999 Richard Henderson - - * unroll.c (copy_loop_body): Examine SET_DEST of single_set - not of pattern. - -Sun Oct 24 13:14:20 1999 Graham - Richard Henderson - - * alias.c: Include ggc.h. - (reg_base_value, new_reg_base_value, reg_base_value_size): Make static. - (record_set): Verify enough room in reg_base_value. - (init_alias_analysis): Allocate reg_base_value with xcalloc. - Register it as a GC root. - (end_alias_analysis): Free reg_base_value. Remove it as a GC root. - * Makefile.in (alias.o): Depend on ggc.h. - - * unroll.c (unroll_loop): Verify the insn before a barrier - is a JUMP_INSN before checking JUMP_LABEL. - -Sun Oct 24 15:46:44 1999 Kaveh R. Ghazi - - * mips/bsd-5.h (ASM_OUTPUT_ASCII): Constify a char*. - * mips/iris4.h (ASM_OUTPUT_ASCII): Likewise. - * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/mips.h (ASM_OUTPUT_ASCII): Likewise. - * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise. - -Sun Oct 24 15:35:43 1999 Kaveh R. Ghazi - - * output.h (ctors_section, dtors_section, bss_section): Prototype. - - * alpha/alpha-interix.h (text_section): Delete prototype. - * alpha/elf.h (text_section): Likewise. - * arm/linux-elf.h (text_section): Likewise. - * arm/linux-telf.h (text_section): Likewise. - * c4x/c4x.h (text_section): Likewise. - * dsp16xx/dsp16xx.h (bss_section): Likewise. - * elfos.h (text_section): Likewise. - * i386/aix386ng.h (text_section): Likewise. - * i386/i386-interix.h (text_section): Likewise. - * i386/sco5.h (text_section): Likewise. - * i386/svr3gas.h (text_section): Likewise. - * nextstep.h (text_section): Likewise. - * psos.h (text_section): Likewise. - * ptx4.h (text_section): Likewise. - * svr3.h (text_section): Likewise. - * svr4.h (text_section, ctors_section, dtors_section): Likewise. - -Sun Oct 24 15:20:59 1999 Kaveh R. Ghazi - - * final.c (peephole): Delete prototype. - - * gcse.c (process_insert_insn, pre_edge_insert): Add prototypes. - (pre_insert_copies): Remove unused variable `bb'. - - * genrecog.c (debug_decision_0, debug_decision_list, main): Add - prototypes. - - * output.h (peephole): Add prototype. - -Sun Oct 24 11:35:30 1999 Mark P. Mitchell - - * config/mips/iris6.h (SUBTARGET_ASM_OPTIMIZING_SPEC): Define to - -O0. - -Sat Oct 23 21:13:00 1999 Mark Mitchell - - * integrate.c (integrate_decl_tree): Tweak setting of DECL_CONTEXT - for inlined declarations. - -Fri Oct 22 18:05:43 1999 Jeffrey A Law (law@cygnus.com) - - * arm.c (logical_binary_operator): New fucntion. - * arm.h (logical_binary_operator): Declare it. - (PREDICATE_CODES): Handle logical_binary_operator. - * arm.md (anddi3, anddi_zesidi_di, anddi_sesdi_di): Use "#" for - output constraints. Add appropriate splitters. - (anddi_notdi_di, anddi_notzesidi_di, anddi_notsesidi_di): Likewise. - (iordi3, iordi_zesidi_di, iordi_sesidi_di): Likewise. - (xordi3, xordi_zesidi_di, xordi_sesidi_di): Likewise. - -Fri Oct 22 23:46:50 1999 Bernd Schmidt - - * genoutput.c (struct operand_data): New elt eliminable. - (output_operand_data): Write it. - (scan_operands): Set it for MATCH_OPERAND, clear for other matchers. - (compare_operands): Take it into account. - * recog.h (struct insn_operand_data): New elt eliminable. - * reload1.c (check_eliminable_occurrences, elimination_effects): New - functions. - (old_asm_operands_vec, new_asm_operands_vec): Delete. - (eliminate_regs): Move code that detects changes to elimination - target regs into new function elimination_effects. - Delete one #if 0 block. - Abort for USE, CLOBBER, ASM_OPERANDS and SET. - (eliminate_regs_in_insn): Return immediately for USEs, CLOBBERs, - ADDR_VECs, ADDR_DIFF_VECs and ASM_INPUTs. - Only call eliminate_regs for real operands of the insn, not for parts - of its structure or parts matched by things like match_operator. - Use elimination_effects and check_eliminable_occurrences. Use - copy_insn to duplicate the pattern when not in the final pass. - -Fri Oct 22 09:03:44 1999 Mark Mitchell - - * i386.md: Add missing `y' modifiers to uses of fst, fstp, fld, - and fld. - -1999-10-22 Bruce Korb - - * fixinc/README: document the "mach" machine matching test - * fixinc/fixfixes.c: Implement the #else/#endif label fix - * fixinc/fixtests.c: Implement the #else/#endif label test - * fixinc/inclhack.def: utilize these tests and fixes - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - * fixinc/fixincl.sh: regen - -Thu Oct 21 20:37:19 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (cse.o): Depend on hashtab.h, not splay-tree.h. Also - depend on ggc.h. - -Thu Oct 21 20:30:19 1999 Matthias Klose - - * gcc.1: Document exit codes. - -Thu Oct 21 12:49:05 1999 Kaveh R. Ghazi - - * calls.c: Include tm_p.h later, so everything we need is defined. - * expr.c: Likewise. - * function.c: Likewise. - - * except.c: Include tm_p.h. - - * sparc.c: Likewise. - (dwarf2out_cfi_label): Don't prototype. - (check_return_regs, epilogue_renumber, - ultra_cmove_results_ready_p, ultra_fpmode_conflict_exists, - ultra_find_type, ultra_build_types_avail, ultra_flush_pipeline, - ultra_rescan_pipeline_state, set_extends, ultra_code_from_mask, - ultra_schedule_insn): Add static prototype. - (data_segment_operand, text_segment_operand): Call itself with the - proper number of arguments. - (sparc_flat_save_restore, sparc_v8plus_shift): Constify a char*. - - * sparc.h: Move all declarations to sparc-protos.h. - (SELECT_RTX_SECTION): Pass a missing MODE argument to - symbolic_operand. - - * sparc/sysv4.h (SELECT_RTX_SECTION): Likewise. - - * config/svr4.h (text_section, ctors_section, dtors_section): Add - Prototypes. - (ASM_OUTPUT_SECTION_NAME, UNIQUE_SECTION, - ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, - ASM_OUTPUT_ASCII): Constify a char*. - - * sparc-protos.h: New file for sparc prototypes. - -Thu Oct 21 12:23:40 1999 Kaveh R. Ghazi - - * function.c (record_insns, contains): Always declare and define. - (record_insns): Mark with ATTRIBUTE_UNUSED. - -Thu Oct 21 13:03:49 1999 Jonathan Larmour - - * config/arm/telf.h (ASM_OUTPUT_SECTION_NAME): Add %nobits option - to .section when outputting a .bss section to deal with multiple - .bss input sections (as happens with -fdata-sections) - Also output %progbits, not @progbits so the assembler doesn't treat as - a comment. - * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Likewise - - * config/arm/lib1funcs.asm (_call_via_rX): Allow compilation of - thumb parts even when building with non-thumb CPUs, by forcing - thumb mode. - -Wed Oct 20 22:57:58 1999 Jeffrey A Law (law@cygnus.com) - - * sparc.md (movsf_const_intreg): If splitting, length must be > 1. - (movdf_const_intreg_sp64): Similarly. - - * local-alloc.c (update_equiv_regs): Check the correct insn - for pre-existing REG_EQUIV notes. - -Wed Oct 20 20:41:46 1999 Mark Mitchell - - * cse.c (cse_end_of_basic_block): Don't return the end of a basic - block reached by a branch if we're not going to actually process - this block. - -Wed Oct 20 15:18:42 1999 Jim Wilson - - * integrate.c (integrate_decl_tree): Set DECL_CONTEXT to 0 if this is - a local extern function declaration. - -Wed Oct 20 13:56:01 1999 Richard Henderson - - * i386.c (ix86_expand_prologue): Properly wrap USE around - reg for CALL_INSN_FUNCTION_USAGE. - -Thu Oct 14 18:51:37 1999 Andrew Haley - - * config/mips/mips.md (movdf_internal1a): Allow floating-point - move between GP_REGs. - -Wed Oct 20 15:36:11 1999 Andrew Haley - - * config/arm/thumb.h (GO_IF_LEGITIMATE_ADDRESS): Take account of - the mode size when finding out if an offset is legal. - -Wed Oct 20 06:26:58 1999 Richard Henderson - - * basic-block.h (PROP_*): Move constants from ... - * flow.c: ... here. - (compute_bb_for_insn): Free the array before reallocating. - (update_life_info): New arg PROP_FLAGS; pass on to propagate_block. - (allocate_reg_life_data): Reset all reg variables collected by - propagate_block. - (get_block_head_tail): Don't convert from bb to block. - (get_bb_head_tail): New. Update all callers of get_block_head_tail. - (find_insn_reg_weight): Take block not bb. - (schedule_block): Don't set block num for moved insns. - (schedule_region): Don't update_life_info or find_insn_reg_weight. - (schedule_insns): Do it here instead. - * combine.c (combine_instructions): Invoke compute_bb_for_insn - before update_life_info. - * recog.c (split_all_insns, peephole2_optimize): Update for - new arg to update_life_info. - * rtlanal.c (remove_note): Cope with NULL note. - * toplev.c (rest_of_compilation): Don't invoke recompute_reg_usage - if we did sched1. - -Wed Oct 20 10:46:41 1999 Richard Earnshaw (rearnsha@arm.com) - - * jump.c (jump_optimize_1): More accurately detect casesi insns. - - * flow.c (merge_blocks_move_predecessor_nojumps): Re-order the basic - block records so that merge_blocks_nomove will clean up correctly. - (split_edge): Handle casesi insns. - - * gcc-page.c: Try MAP_ANON if we don't have MAP_ANONYMOUS. - -Tue Oct 19 23:43:50 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (call, call_value): Do not emit a blockage after restoring - the PIC register. - -Tue Oct 19 17:22:39 1999 Mark Mitchell - - * c-typeck.c (c_expand_asm_operands): Fix typo. - -Tue Oct 19 18:42:58 1999 Bernd Schmidt - - * arm.c (fpu_rhs_operand): Verify modes. - (fpu_add_operand): Likewise. - (di_operand): Likewise. - (soft_df_operand): Likewise. - -Tue Oct 19 15:26:11 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (arm_return_in_memory): APCS rules state that the elements - of a structure returned in a register must be 'integer-like'. - -1999-10-19 Bruce Korb - - * fixinc/Makefile.in: Change the generation rules to run `genfixes' - in the source tree when the generated targets are out of date - * fixinc/genfixes: Alter it to run individual fixes for make. - * fixinc/README: rewrite - * fixinc/inclhack.def: moved initial comments to README - -Tue Oct 19 14:01:34 1999 Nick Clifton - - * toplev.c (main): Do not generate an error message if an - unrecognized command line switch is recognizable by another - language. If extra_warnings are enabled, then generate a - warning message instead. - -Tue Oct 19 11:41:12 1999 Mumit Khan - - * c-pragma.h (PRAGMA_INSERT_ATTRIBUTES): Delete macro. - (insert_pack_attributes): Delete prototype. - - * c-pragma.c (default_alignment): New static variable. - (push_alignment): Initialize to current effective alignment. - (pop_alignment): Use to set new alignment. - (insert_pack_attributes): Delete function. - (handle_pragma_token): Set default_alignment as well each time - a #pragma pack() is encountered. - -Tue Oct 19 02:03:00 1999 Jeffrey A Law (law@cygnus.com) - - * reg-stack.c (stack_result): Aggregates are not returned in - stack registers. - -Tue Oct 19 01:26:48 1999 Alasdair Baird - - * fold-const.c (fold): Fix thinko in x+(-0) -> x transformation. - -Mon Oct 18 15:19:41 1999 Richard Henderson - - * basic-block.h (set_block_num): Declare. - * flow.c (update_life_info): Don't call compute_bb_for_insn - or free_basic_block_vars. - * haifa-sched.c (remove_dependence): Conditionalize on HAVE_cc0. - (insn_orig_block): Remove. - (INSN_BLOCK): Remove. Update all callers to use BLOCK_NUM. - (schedule_block): Keep BLOCK_NUM up-to-date. - (schedule_insns): Use compute_bb_for_insn. - * recog.c (split_all_insns): Likewise. - (peephole2_optimize): Likewise. - -Mon Oct 18 18:50:51 1999 Andreas Schwab - - * config/m68k/m68k.h (INITIAL_FRAME_POINTER_OFFSET): Add one word - if the pic register is used. - -Mon Oct 18 02:38:46 1999 Bernd Schmidt - - * c-decl.c (pushdecl): Use TYPE_CONTEXT rather than TREE_PERMANENT. - (finish_decl): Duplicate test for TREE_ASM_WRITTEN in else branch of - if that tests TREE_PERMANENT. - -Mon Oct 18 01:41:35 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (invalidate_for_call): Do not remove memory references from - the table here. It's handled elsewhere. - - * haifa-sched.c (add_dependence): Protect references to the - true dependency cache with #ifdef INSN_SCHEDULING. - (remove_dependence): Similarly. - - * mn10200.md (outline_epilogue_jump): Embed a (return) to indicate - to the cfg code that this is a return instruction. - * mn10300.md (return_internal): Similarly. - - * combine.c (get_last_value): If the last set of a register - is after subst_low_cuid, then we can not use it to determine - the register's last value. - -Sun Oct 17 11:02:52 1999 Mark Mitchell - - * Makefile.in: Back out previous change. - -Sun Oct 17 15:22:50 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Reject (lo_sum (reg) (unspec ...)). - - * haifa-sched.c (add_dependence): Only check/update the cache - if it exists. - (remove_dependence): Likewise. - (schedule_insns): Only create the true_dependency_cache if the - average number of instructions in a basic block is very large. - -Sun Oct 17 11:02:52 1999 Mark Mitchell - - * Makefile.in (ggc-common.o): Depend on genrtl.h. - (ggc-simple.o): Likewise. - (ggc-page.o): Likewise. - -Sun Oct 17 02:09:50 1999 Andrew MacLeod - - * basic-block.h (pre_edge_lcm, pre_edge_rev_lcm, compute_available): - Prototype for exported functions. - (pre_lcm, pre_rev_lcm): Remove prototypes. - * gcse.c (compute_ae_kill): Add ae_gen and ae_kill as parameters. - (compute_available): Move to lcm.c, and change parameter order. - (one_classic_gcse_pass): Call compute_ae_kill with parameters. - (pre_insert, s_preds, s_succs, num_preds, num_succs): Delete. - (gcse_main): No longer call compute_preds_succs. Rebuild the - set table after reach pre pass. - (pre_insert_map, pre_delete_map, edge_list): New. - (alloc_pre_mem): Allocate edge vectors. - (free_pre_mem): Delete edge vectors. - (compute_pre_data): Call new edge based lcm routines. - (process_insert_insn): New function. - (insert_insn_end_bb): Use it. - (pre_edge_insert): New function. - (pre_insert_copy_insn): Formatting fixes. Update BLOCK_END as - needed. - (pre_insert_copies): Revamp using new edge based lcm outputs. - (pre_delete): Likewise. - (one_pre_gcse_pass): Insert & remove fake edges to the exit - block. - (compute_code_hoist_vbeinout): New new edge based routines. - * lcm.c: Remove all the old LCM functions. Replace with new ones - that work with the new cfg datastructures and work with edges - instead of blocks. - -Sun Oct 17 00:44:17 1999 Bernd Schmidt - - * reload.h (struct reload): Add new fields "mode" and "nregs". - * reload1.c: Change all occurrences of reload_mode and reload_nregs - to reference the "mode" and "nregs" field within struct reload. - -Sat Oct 16 21:50:28 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (true_dependency_cache): New. - (add_dependence): Use the true dependency cache to avoid expensive - walks down the LOG_LINKS dependency list. Add entries to the - cache as necessary. - (remove_dependence): Remove entries from the true dependency cache - as needed. - (schedule_insns): Allocate and initialize and free the true - dependency cache. - - * haifa-sched.c (schedule_insns): Do not remove inter-block - dependencies anymore. - -Sat Oct 16 11:19:52 1999 Richard Henderson - - * i386/t-cygwin (winnt.o): Depend on RTL_H and TREE_H. - * i386/t-winnt: Likewise. - -Sat Oct 16 11:11:54 1999 Richard Henderson - - * ggc-page.c (init_ggc): Work around SunOS unaligned mmap bug. - -1999-10-16 Manfred Hollstein - - * Makefile.in (LANGUAGES): Omit "proto". - (clean): Remove stale comment about removing unprotoize.c. - -Sat Oct 16 11:29:14 1999 Kaveh R. Ghazi - - * protoize.c (safe_read, safe_write): Avoid the gcc extension of - using arithmetic on void pointers. - -Sat Oct 16 02:48:22 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (compute_block_forward_dependencies): Only check - for notes, deleted insns and duplicates if ENABLE_CHECKING is defined. - -Sat Oct 16 00:07:01 1999 Richard Henderson - - * gcse.c (hash_expr_1): Add in MEM_ALIAS_SET. - (expr_equiv_p): Reject memories with different alias sets. - -Fri Oct 15 15:17:29 1999 Greg McGary - - * flags.h (flag_bounds_check, flag_bounded_pointers): New extern decls. - * toplev.c (flag_bounds_check, flag_bounded_pointers): New flags. - (f_options): Add "bounded-pointers" and "bounds-check" entries. - * c-lang.c (lang_init_options): Set flag_bounds_check as "unspecified". - (lang_init): Set default for flag_bounds_check if still "unspecified". - -Sat Oct 16 13:42:29 1999 Michael Hayes - - * config/c4x/c4x.md (HF mode patterns): Add missing modes. - -Sat Oct 16 13:37:46 1999 Michael Hayes - - * config/c4x/c4x.md (movstrqi_small): Utilize parallel move - instructions. - -Sat Oct 16 13:26:47 1999 Michael Hayes - - * config/c4x/c4x.md (*db_noclobber, - *decrement_and_branch_until_zero_noclobber): New patterns and - associated splitters. - -Sat Oct 16 13:13:15 1999 Michael Hayes - - * config/c4x/c4x.md (parallel instruction patterns): Rework - constraints to keep reload happy. - -Sat Oct 16 13:03:16 1999 Michael Hayes - - * config/c4x/c4x.md (*absqi2_noclobber, *negqi2_noclobber, - *one_cmplqi2_noclobber, *subqi3_noclobber, *andqi3_255_noclobber, - *andqi3_65535_noclobber, *andnqi3_noclobber, *xorqi3_noclobber): - Add new patterns and associated post-reload splitters. - -Sat Oct 16 12:42:12 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_emit_libcall): Use ggc_alloc_string. - -Sat Oct 16 12:34:44 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_rptb_insert): Emit rpts_top pattern - if appropriate. - * config/c4x/c4x.md (rpts_top): New pattern and splitter. - -Sat Oct 16 12:26:30 1999 Michael Hayes - - * config/c4x/c4x.c (src_operand): Check SYMBOL_REF and LABEL_REF - memory mode. - -Fri Oct 15 17:02:09 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (move_operand): Rely on memory_address_p to determine the - validity of non-indexed memory addresses. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow LO_SUM with a symbolic - operand in DFmode and SFmode when generating PA2.0 code. - -Fri Oct 15 14:25:19 1999 Richard Henderson - - * print-rtl.c (print_rtx): Limit last 'u' change to LABEL_REF. - -Fri Oct 15 13:48:45 1999 Richard Henderson - - * mips.c (function_prologue): Fix argument types. - * mips.md (casesi): Use emit_jump_insn for casesi_internal. - (casesi_internal): Write to the scratch register. - -1999-10-15 11:16 -0700 Zack Weinberg - - * cppexp.c (cpp_parse_escape): Make static. Change second arg - to U_CHAR **. - (parse_charconst): Delete unnecessary cast when calling - cpp_parse_escape. - (cpplib.h): Kill prototype of cpp_parse_escape. - -Fri Oct 15 11:02:46 1999 Richard Henderson - - Based on patch from Michael Gschwind : - * unroll.c (unroll_loop): Cast return value of alloca. - * i370/i370.c: Include function.h and toplev.h. - (i370_label_scan): Remove c++ commented abort. - * i370/i370.h (HANDLE_PRAGMA): Takes three arguments. - (ASM_OUTPUT_LABELREF): Fix TOUPPER/else broken 16 Sept. - * i370/xm-i370.h (HOST_BITS_PER_LONGLONG): Define. - * i370/xm-mvs.h, i370/xm-oe.h: Likewise. - -Fri Oct 15 03:01:01 1999 Loren Rittle - - * config/t-freebsd: Do not override USER_H. - * ginclude/stddef.h: Generalize check for _MACHINE_ANSI_H_. - -Fri Oct 15 02:37:28 1999 Alastair J. Houghton - Mumit Khan - - * c-parse.in (component_decl): Support anonymous struct/union. - (%expect): Update. - * c-parse.y: Regenerate. - * c-parse.c: Likewise. - * objc/objc-parse.y: Likewise. - * objc/objc-parse.c: Likewise. - * c-decl.c (finish_struct): Don't sort the fields. - (field_decl_cmp): Delete unused function. - -Fri Oct 15 01:20:52 1999 Richard Henderson - - * sparc.md (movsf_const_intreg): Revert last constraint change. - (movdf_const_intreg_sp32): Likewise. - -Fri Oct 15 01:47:51 1999 Vladimir Makarov - - * cse.c: Include hashtab.h instead of splay-tree.h - (struct cse_reg_info): No longer use variant union. Add new - field "regno". All references changed to avoid union. - (cse_reg_info_used_list, cse_reg_info_used_list_end): New variables. - (free_cse_reg_info): Remove. - (hash_cse_reg_info, cse_reg_info_equal_p): New functions. - (get_cse_reg_info): Revamp to use expandable hash tables instead - of splay trees. Initialize new fields in cse_reg_info structure. - (new_basic_block): Similarly. - -Thu Oct 14 23:51:56 1999 Richard Henderson - - * genrecog.c (message_with_line): Prototype. - (validate_pattern): Pass along the set for the dest, not a flag. - Fix non-lvalue message. Don't warn for VOIDmode SET_DEST of CALL. - Check for PC/CC0 as sources. - (nodes_identical): Check for children position match before - allowing the combination. - - * rtl.c (read_rtx): Track line number across \\\n. - -Thu Oct 14 23:50:25 1999 Richard Henderson - - * mips.h (SPECIAL_MODE_PREDICATES): New. - * mips.md (*) Use nonimmediate_operand not general_operand for outputs. - (movdi+1, movsi+1): Add output reload constraint. - (casesi_internal): Likewise. Fix commentary. - (return_internal): Use pmode_register_operand. - -Thu Oct 14 23:19:34 1999 Richard Henderson - - * 1750a.md (movstrqi): Add missing output reload constraint. - (call_value): Likewise. - * a29k.md (cpxxx patterns): Add missing match_operator mode. - (jmpfdec): Add missing inout reload constraint. - * elxsi.md (addsi patterns): Add missing output reload constraint. - (move from sp): Use @ alternates. - (call_value): No constraint on output. - * fr30.md (movsi_pop): Add missing output reload constraint. - (movsf_constant_store): Likewise. - (splits): Remove constraints. - (subsi3): Add missing mode. - * i370.md (cmpstrsi+1): Add missing output reload constraint. - (call_value): Likewise. - * i960.md (cmpinc/cmpdec patterns): Add inout reload constraints. - * m32r.h (PREDICATE_CODES): Add seth_add3_operand. - * m32r.md (movsicc_internal): Add output reload constraint. - (movstrsi_internal): Add inout reload constraints. - * m88k.h (reg_names): Don't declare. - (SPECIAL_MODE_PREDICATES): New. - * m88k.md (*): Use register_operand not reg_or_0_operand - on destinations. - * mn10200.h (PREDICATE_CODES): New. - * ns32k.md (ffs pattern): Add output reload constraint. - * pdp11.md (sob pattern): Add inout reload constraint. - * sh.md (splits): Remove constraints. - (indirect_jump_scratch, fpu_switch): Add output reload constraint. - * v850.md (pattern_is_ok_for_epilogue): Likewise. - * vax.md (jgequ pattern): Add inout reload constraint. - -Fri Oct 15 00:05:00 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (djgpp): Revert previous patch. - * configure: Rebuit. - * config/i386/djgpp.h: Revert previous patch. - -Fri Oct 15 00:00:24 1999 Loren J. Rittle - - * fixinc/inclhack.def: Restore patch lost during last merge of - "no_bogosity" branch. - * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. - -Thu Oct 14 23:57:56 1999 Gavin Romig-Koch - - * fixincludes: Add a HPUX 11 fix for inttypes.h. - * fixinc/inclhack.def: Same. - * fixinc/inclhack.sh, fixinc/fixincl.sh, fixinc/fixincl.x: Regenerate. - -Thu Oct 14 22:51:55 1999 Richard Henderson - - * alpha.h (GO_IF_LEGITIMATE_SIMPLE_ADDRESS): Accept ADDRESSOF - as the base of a PLUS. - -Fri Oct 15 18:36:07 1999 Michael Hayes - - * config/c4x/c4x.md: Define mode for remaining unspec operators. - * config/c4x/c4x.c (dst_operand): Use nonimmediate_operand. - -Thu Oct 14 22:14:23 1999 Richard Henderson - - * pa.md (post_stw+1): Use pmode_register_operand. - (dcacheflush, icacheflush): Likewise. - - * i386.md (movstricthi_1): Allow r/r. - -Thu Oct 14 19:44:08 1999 Jan Hubicka - - * fold-const.c (fold): Convert (or (not arg0) (not arg1)) - to (not (and (arg0) (arg1))). Similary for and. - - * fold-const.c (fold): Move bit_rotate code to the EXPR_PLUS case, - fallthrough to associate code. - Convert XOR to OR in code like (a&c1)^(a&c2) where c1 and c2 don't have - bits in common. - - * combine.c (simplify_logical): Convert XOR to IOR if operands have - no bits in common; remove XOR to ROTATE conversion. - -Fri Oct 15 17:40:11 1999 Michael Hayes - - * config/c4x/c4x.h (c4x_va_start, c4x_va_arg): Declare. - -Fri Oct 15 17:27:17 1999 Michael Hayes - - * config/c4x/c4x.c (dst_operand): New. - (PREDICATE_CODES): Update. - * config/c4x/c4x.h (dst_operand): Declare it. - * config/c4x/c4x.md: Define mode for each unspec usage. - (move patterns): Use dst_operand predicate instead of src_operand. - (movqi_update, movqf_update): Delete. - -Thu Oct 14 18:48:54 1999 Richard Henderson - - * recog.c (pmode_register_operand): New. - * recog.h: Declare it. - * genrecog.c (pred_codes): Likewise. - (special_mode_pred_table): Likewise. - (validate_pattern): Don't warn no mode for address_operand. - - * print-rtl.c (print_rtx) [LABEL_REF]: Only do full subexpression - if the operand is not insn-like. - -Thu Oct 14 19:38:42 1999 Jeffrey A Law (law@cygnus.com) - Sylvian Pion - - * fold-const.c (fold): Handle more simplifications allowed by IEEE. - -Thu Oct 14 17:30:14 1999 Richard Henderson - - * sparc.md (*): Use {nonimmediate,register}_operand as appropriate - instead of general_operand in a SET_DEST. Use const_double_operand - instead of an explicit test against CONST_DOUBLE. - (movsf_const_lo): Add missing register mode. - (goto_handler_and_restore): Add auxiliary test for Pmode. - (flush): Adjust to use address_operand. - (return_sf_no_fpu): Add missing output constraint. - -Thu Oct 14 17:21:26 1999 Richard Henderson - - * rs6000.md (call_value_indirect_aix32): Use wildcard match_operand - for call return value. - (call_value_indirect_aix64, call_value_indirect_nt): Likewise. - -Thu Oct 14 13:54:25 1999 Jason Merrill - - * toplev.c (main): Only warn about options for other languages. - * collect2.c (main): Pass -w to sub-gcc. - -Thu Oct 14 16:27:50 1999 Richard Henderson - - * flow.c (propagate_block): Add call-clobbered registers to - significant too. - - * flow.c (propagate_block): Use free_EXPR_LIST_list instead of - zapping mem_set_list. - (invalidate_mems_from_autoinc): Use free_EXPR_LIST_node. - (mark_set_1, mark_used_regs): Likewise. - -Thu Oct 14 10:51:49 1999 Richard Henderson - - * m68k.md (zero_extendsidi2): Add missing output reload constraint. - -Wed Oct 13 00:09:18 1999 Gerald Pfeifer - - * invoke.texi: Label -Wbad-function-cast, -Wmissing-prototypes, - -Wnested-externs, -Wstrict-prototypes, and -Wtraditional as C only - options. Also add a new item "C-only Warning Options" to the - option summary. - -1999-10-14 Gavin Romig-Koch - - * libgcc2.c (__do_global_dtors): Protect __deregister_frame_info - from multiple calls. - -Thu Oct 14 04:54:54 1999 Richard Henderson - - * i386.md (call value patterns): Move to the end of the file. - (prologue_set_got, prologue_get_pc): Use register_operand for op 0. - -1999-10-14 Mark Elbrecht - - * configure.in (djgpp configuration): Define extra_objects.. - * configure: Rebuilt. - * config/i386/djgpp.h (CTORS_SECTION_ASM_OP): Define. - (DTORS_SECTION_ASM_OP): Define. - (INIT_SECTION_ASM_OP): Define. - (FINI_SECTION_ASM_OP): Define. - (DATA_SECTION_ASM_OP): Define. - (TEXT_SECTION_ASM_OP): Define. - (EH_FRAME_SECTION_ASM_OP): Define. - (LINK_COMMAND_SPEC): Remove -Tdjgpp.djl. - (STARTFILE_SPEC): Add crtbegin.o. - (ENDFILE_SPEC): Define and add crtend.o. Move argument -Tdjgpp.djl - to here from LINK_COMMAND_SPEC. - (DO_GLOBAL_CTORS_BODY): Define. - (CRTSTUFF_USE_FINI_SECTION): Define - (HAS_INIT_SECTION): Delete. - -Thu Oct 14 05:08:14 1999 Andreas Schwab - - * Makefile.in (all.cross): Depend on xcpp$(exeext). - -Thu Oct 14 04:00:40 1999 Richard Henderson - - * pa.h (PREDICATE_CODES): New. - - * genrecog.c (validate_pattern): Condense the destination - non-lvalue message. - -Thu Oct 14 03:23:08 1999 Richard Henderson - - * alpha.md (call-1): Supply missing mode for operator. - (*): Add missing output reload constraints. Remove constraints - from define_splits. - - * i386.h (SPECIAL_MODE_PREDICATES): New. - * i386.md (movstricthi_1): Use nonimmediate_operand for op 0. - (movqi_1, movdi_1, movdi_2, some splits): Likewise. - (addsi_lea_3): Add missing mode for op 3. - (prologue_set_got, prologue_get_pc): Add missing modes. - (*) Add missing output reload constraints. - -Thu Oct 14 03:59:57 1999 Stephane Carrez - - * stor-layout.c (layout_union): Use HOST_WIDE_INT for const_size; - check for member bit-size overflow and use var_size if it occurs. - (layout_record): Use bitsize_int() to define the type size in bits. - Likewise for computation and assignment to DECL_FIELD_BITPOS. - (layout_decl): Likewise when assigning to DECL_SIZE. - -Thu Oct 14 02:57:05 1999 Richard Henderson - - * genrecog.c (validate_pattern): Typo last change. Verify - that output operands have output reloads. - -Thu Oct 14 01:49:54 1999 Richard Henderson - - * genrecog.c (special_mode_pred_table): New. - (NUM_SPECIAL_MODE_PREDS): New. - (find_operand): New. - (validate_pattern): New argument `insn'. Warn for assignment to - any predicate accepting non-lvalues. Conditionally warn for - match_operand without a mode. Try much harder to match source - and destination modes on a set. - * tm.texi (SPECIAL_MODE_PREDICATES): Document. - -Thu Oct 14 02:54:13 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold): Detect rotates built from BIT_XOR_EXPRs. - -Thu Oct 14 02:18:19 1999 Marc Espie - - * combine.c (simplify_logical): Recognize xor pattern that encodes - rotation. - -Wed Oct 13 23:23:45 1999 Franz Sirl - - * rs6000.c (expand_block_move): Use INTVAL, not XINT to access - alignment. - -Wed Oct 13 21:47:18 1999 Richard Henderson - - * ggc-page.c (MAP_FAILED): Provide default. - -Wed Oct 13 21:41:59 1999 Richard Henderson - - * sparc.c (symbolic_operand): Verify mode; don't accept CONST_DOUBLE. - * sparc.h (PREDICATE_CODES): Update. - -Wed Oct 13 21:18:17 1999 Richard Henderson - - * alpha.c (some_ni_operand): New. - * alpha-protos.h: Declare it. - * alpha.h (PREDICATE_CODES): Update. - * alpha.md (sXaddq reload insns): Use some_ni_operand - for SET_DEST instead of some_operand. - -Wed Oct 13 21:04:45 1999 Richard Henderson - Jim Wilson - - * genrecog.c (maybe_both_true_2): Don't compare modes of - two DT_pred tests. - (process_tree): Elide peephole2_insns. Invoke simplify_tests - after find_afterward. - (debug_decision_1): Dump next and afterward codes. - -Wed Oct 13 20:35:16 1999 Richard Henderson - - * rtl.c (dump_and_abort): Remove. - (fatal_with_file_and_line): New. - (fatal_expected_char): New. - (read_rtx_lineno, read_rtx_filename): New. - (read_skip_spaces): Track line number. - (read_name): Use fatal_with_file_and_line. - (read_rtx): Use fatal_expected_char. Track line number. - * rtl.h (read_rtx_filename, read_rtx_lineno): Declare. - - * print-rtl.c (print_rtx): Don't special case LABEL_REF argument - if it isn't a CODE_LABEL. - - * genattr.c (main): Set read_rtx_filename. - * genattrtab.c (main): Likewise. - * gencodes.c (main): Likewise. - * genconfig.c (main): Likewise. - * genemit.c (main): Likewise. - * genextract.c (main): Likewise. - * genflags.c (main): Likewise. - * genopinit.c (main): Likewise. - * genoutput.c (main): Likewise. - * genpeep.c (main): Likewise. - - * genrecog.c (decision_test.u.insn): Add `lineno'. - (pattern_lineno, error_count): New variables. - (message_with_line): New. - (add_to_sequence): Break out checking code to ... - (validate_pattern): ... here. Detect SET_DEST matching CONST_INT. - (merge_insn): Use message_with_line. - (make_insn_sequence): Use validate_pattern. Record insn lineno. - (main): Set read_rtx_filename, pattern_lineno. Exit early on error. - -Wed Oct 13 22:01:35 1999 J"orn Rennecke - - * expr.c (store_constructor): Clear union if constructor is empty. - -Wed Oct 13 15:19:04 1999 Jim Wilson - - * config/rs6000/sysv4.h (CC1_SPEC): Fix errors from Jan 19 change. - Add !endian checks. Change %{...} to %(...). - -Wed Oct 13 13:30:34 1999 Richard Henderson - - * i386.md (*addsi3_cc): Renamed from addcsi3. - (*addsi3_carry): Renamed from addxsi3. - (*subsi3_cc): Renamed from subcsi3. - (*subsi3_carry): Renamed from subxsi3. - (*xorqi_cc_1): Renamed from xorcqi_1. - (xorqi_cc_ext_1): Renamed from xorcqi_ext_1. - * i386.c (ix86_expand_fp_compare): Update for xorqi_cc_ext_1. - -Wed Oct 13 13:10:46 1999 Richard Henderson - - * Makefile.in (ggc-common.o): Depend on RTL_H not RTL_BASE_H. - (ggc-simple.o, ggc-page.o, ggc-none.o, ggc-callbacks.o): Likewise. - -1999-10-13 Brendan Kehoe - - * regmove.c (optimize_reg_copy_3): Make sure P is non-nil as we - climb up the chain of insns. - -Wed Oct 13 10:20:58 1999 Richard Henderson - - * genrecog.c (write_subroutine): Careful for null trees. - (process_tree): Don't elide empty functions. - -Wed Oct 13 10:07:54 1999 Richard Henderson - - * Makefile.in (genrtl.o): Depend on ggc.h. - * configure.in (valloc): Probe for it. - (with-gc): Use ggc-page if valloc present. - * ggc-common.c (ggc_mark_rtx_children): Use ggc_mark_if_gcable. - (ggc_mark_rtvec_children): New from corpse of ggc_mark_rtvec. - (ggc_alloc_string): Moved from ggc-page.c. - * ggc-none.c (ggc_alloc_obj): New. - (ggc_alloc_rtx, ggc_alloc_rtvec): Remove. - * ggc-page.c (sys/mman.h): Only include if HAVE_MMAP. - (struct globals): Likewise for dev_zero_fd. - (init_ggc): Likewise for it's initialization. - (ggc_allocated_p): Move careful dereference from ... - (ggc_lookup_page_table): ... here. Delete. - (lookup_page_table_entry): Don't use ggc_lookup_page_table. - (alloc_anon): Use valloc if no mmap. - (release_pages): Use free if using valloc. - (ggc_alloc_obj): Renamed from alloc_obj. - (ggc_set_mark): Renamed from mark_obj. - (ggc_mark_if_gcable): Renamed from ggc_mark_string_if_gcable. - (ggc_alloc_rtx, ggc_alloc_rtvec): Delete. - (ggc_alloc_tree, ggc_alloc_string, ggc_alloc): Delete. - (ggc_set_mark_rtx, ggc_set_mark_rtvec): Delete. - (ggc_set_mark_tree, ggc_mark_string, ggc_mark): Delete. - (ggc_collect): Use fp printing instead of our own rounding. - * ggc-simple.c (IS_MARKED, IGNORE_MARK): Delete. - (GGC_STRING_MAGIC, GGC_STRING_MAGIC_MARK): Delete. - (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): Delete. - (struct ggc_rtx, struct ggc_rtvec, struct ggc_tree): Delete. - (struct ggc_string, struct ggc_any): Delete. - (offsetof): Provide default definition. - (GGC_BALANCE, GGC_ALWAYS_COLLECT, GGC_ALWAYS_VERIFY): New. - (PTR_KEY): New. - (struct ggc_mem): New, from corpse of ggc_any. - (struct ggc_status): Delete. - (ggc_chain, ggc_allocated_strings, ggc_strings_used): Delete. - (n_rtxs_collected, n_vecs_collected, n_trees_collected): Delete. - (n_strings_collected, n_anys_collected): Delete. - (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Delete. - (ggc_alloc_string, ggc_alloc): Delete. - (ggc_free_rtx, ggc_free_rtvec, ggc_free_tree): Delete. - (ggc_free_string, ggc_free_any): Delete. - (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Delete. - (ggc_compare_addresses, ggc_mark_string): Delete. - (ggc_mark_string_if_gcable, ggc_mark): Delete. - (search_data): Delete. - (struct globals): New. - (GGC_MIN_EXPAND_FOR_GC, GGC_MIN_LAST_ALLOCATED): New. - (tree_insert, tree_lookup): New. - (ggc_alloc_obj, ggc_set_mark, ggc_mark_if_gcable): New. - (clear_marks, sweep_objs): New. - (ggc_collect): Gut. Use clear_marks, sweep_objs. - (init_ggc): Set allocated_last_gc. - (ggc_push_context): Gut. Use G.context. - (ggc_pop_context): Likewise. - (ggc_pop_context_1): New. - (debug_ggc_tree): New. - (debug_ggc_balance, tally_leaves): New. - * ggc.h (ggc_mark_rtvec, ggc_mark_string, ggc_mark): Remove decl. - (ggc_mark_string_if_gcable): Remove decl. - (ggc_mark_rtx, ggc_mark_tree): Use ggc_set_mark. - (ggc_mark_rtvec_children): New. - (ggc_mark_rtvec, ggc_mark_string, ggc_mark): New. - (ggc_mark_if_gcable): New decl. - (ggc_alloc_rtx, ggc_alloc_rtvec): Remove decl. - (ggc_alloc_tree, ggc_alloc): Likewise. - (ggc_set_mark_rtx, ggc_set_mark_rtvec, ggc_set_mark_tree): Likewise. - (ggc_alloc_obj): New decl. - (ggc_alloc_rtx, ggc_alloc_rtvec): New macros. - (ggc_alloc_tree, ggc_alloc): Likewise. - (ggc_set_mark): New decl. - * rtl.h (struct rtx_def): Remove gc_mark. - (struct rtvec_def): Likewise. - * tree.h (struct tree_common): Likewise. - -Wed Oct 13 01:44:29 1999 Carol LePage - - * configure.in (sparc-hal-solaris2*): Fix xm_file, xm_defines, - float_format and thread_file definitions. - * configure: Rebuilt. - -Wed Oct 13 09:25:03 1999 Niels Möller - - * extend.texi (Function Names): Document types of function names. - -Wed Oct 13 00:45:04 1999 Bernd Schmidt - - * reload1.c (reload_reg_free_for_value_p): RELOAD_OTHER reloads with - an earlyclobbered output conflict with RELOAD_INPUT reloads. - -Tue Oct 12 23:28:28 1999 J"orn Rennecke - - * sh.h (BOOL_TYPE_SIZE): Don't use INT_TYPE_SIZE / CHAR_TYPE_SIZE. - -Tue Oct 12 23:19:32 1999 J"orn Rennecke - - * sh.h (REGISTER_MOVE_COST): Change PR_REG to PR_REGS. - -Tue Oct 12 17:09:38 1999 David Edelsohn - - * collect2.c (main): Do prelimnary link on AIX if rflag. - -Tue Oct 12 09:45:19 1999 Jonathan Larmour - - * config/rs6000/eabi-ctors.c (__do_global_ctors): Run through - __CTOR_LIST__ in opposite order, which is the correct order for sorted - constructors. - (__do_global_dtors): similarly for __DTOR_LIST__. - -Fri Oct 8 19:46:03 1999 J"orn Rennecke - Diego Novillo - - * config/sh/sh.h (REGISTER_MOVE_COST): Handle moves from T_REGS to - FPUL_REGS. - -Tue Oct 12 07:38:41 1999 Bruce Korb - - * fixincl/*: Merged "no_bogosity" branch - * fixincl/fixlib.h: protect against doubly defining t_bool - * fixincl/server.h: protect against doubly defining t_bool - -Mon Oct 11 20:18:41 1999 Jim Wilson - - * genoutput.c: Include toplev.h. - -Mon Oct 11 18:56:14 1999 Jim Wilson - - * config/sparc/liteelf.h (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP): - Undef. - * configure.in (sparclite-*-elf, sparc86x-*-elf): Don't use libgloss.h. - * configure: Regenerate. - -Mon Oct 11 16:07:49 1999 Richard Henderson - - * gcse.c (delete_null_pointer_checks): Returns void. - -Mon Oct 11 20:31:51 1999 Bernd Schmidt - - * rtl.c (copy_rtx): Don't use accessor macros to copy fields. - * emit-rtl.c (copy_insn_1): Likewise. - -Mon Oct 11 13:29:06 1999 Geoffrey Keating - - * config/mips/mips.c (mips_build_va_list): Correct - TREE_CHAIN setting when hard-float. - (mips_va_start): Use corrected setting. - (mips_va_arg): Likewise. Also pass a tree to build of - POSTINCREMENT_EXPR rather than a naked 'int'. - -Sun Oct 10 18:27:27 1999 Mark Mitchell - - * ggc.h (ggc_push_context): Fix comment. - (ggc_pop_context): Likewise. - (mark_string_if_gcable): Likewise. - * ggc-common.c (ggc_mark_rtx_children): Use - ggc_mark_string_if_gcable. - * ggc-page.c (ggc_lookup_page_table): New function. - (ggc_allocated_p): Likewise. - (mark_obj): Fix formatting. - (ggc_mark_string_if_gcable): New function. - * ggc-simple.c (ggc_allocated_strings): New variable. - (ggc_strings_used): Likewise. - (ggc_compare_addresses): New function. - (ggc_pop_context): Pop the `any' memory too. - (ggc_mark_string_if_gcable): New function. - (ggc_collect): Initialize and tear down ggc_allocated_strings. - -Sun Oct 10 20:05:21 1999 David Edelsohn - - * rs6000.md (movstrsi_?reg): Use preferred rD/rS = r5 form. - (scc patterns): Disable most SImode variants if TARGET_POWERPC64. - * rs6000.c (expand_block_move): Match movstrsi_?reg register - changes. - -Sun Oct 10 16:37:01 1999 Richard Henderson - - * haifa-sched.c (sched_reg_n_calls_crossed): Delete. - (sched_reg_live_length, sched_reg_basic_block): Delete. - (current_block_num, bb_live_regs, old_live_regs): Delete. - (dead_notes, struct sometimes): Delete. - (sched_note_set, birthing_insn_p): Delete. - (adjust_priority): Gut useless reg lifetime code. - (create_reg_dead_note, attach_deaths): Delete. - (attach_deaths_insn, new_sometimes_live): Delete. - (finish_sometimes_live): Delete. - (find_pre_sched_live, find_post_sched_live): Delete. - (update_reg_usage): Delete. - (find_insn_reg_weight): New, from corpse of find_pre_sched_live. - (schedule_insns): Delete reg lifetime code. - (sched_analyze): Use REG_SAVE_NOTE to stuff NOTE_INSN notes away. - (unlink_other_notes): Adjust REG_NOTE commentary. - (reemit_notes): Use REG_SAVE_NOTE. - (schedule_block): Likewise. - (schedule_region): Allocate bitmap of blocks in region. Use - count_or_remove_death_notes. Use update_life_info. - - * rtl.h (REG_SAVE_NOTE): New. - * rtl.c (reg_note_name): Update. - -Sun Oct 10 16:14:16 1999 Richard Henderson - - * combine.c (refresh_blocks, need_refresh): New. - (combine_instructions): Allocate refresh_blocks. Invoke - update_life_info if needed. - (distribute_notes): Mark refresh_blocks instead of installing - USE insns. - * flow.c (update_life_info): Remove notes if GLOBAL_RM_NOTES. - * basic_block.h (enum update_life_extent): Add GLOBAL_RM_NOTES. - - * Makefile.in (recog.o): Depend on basic-block.h. - -Sun Oct 10 12:03:21 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Thinko last change: delete - shadowing allow_const_int variable. - -Sun Oct 10 08:40:00 1999 Kaveh R. Ghazi - - * cppinit.c: Use HAVE_GCC_VERSION instead of explicitly testing - __GNUC__ and __GNUC_MINOR__. - - * gansidecl.h: Likewise. - - * rtl.c: Likewise. - - * rtl.h: Likewise. - - * toplev.h: Likewise. - - * tree.c: Likewise. - - * tree.h: Likewise. - - * varray.c: Likewise. - - * varray.h: Likewise. - -Sun Oct 10 13:28:48 1999 Bernd Schmidt - - * loop.c (find_and_verify_loops): When looking for a BARRIER, don't - use one before a jump table. - - * rtl.def (ADDRESS): Change documentation to match reality. - * md.texi: Don't document it. - * gmicro.md (load address pattern): Use 'p' constraint, delete use - of ADDRESS rtx. - - * emit-rtl.c (copy_insn_1): Make format_ptr a const char *. - -Sun Oct 10 02:41:41 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Move allow_const_int test outside - known predicate block; default allow_const_int true. - (debug_decision_list): New. - -Sun Oct 10 00:43:08 1999 Richard Henderson - - * i386.h (CC1_SPEC): Typo -- use cc1_cpu. - -Sat Oct 9 23:26:55 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (gcse_main): Avoid global optimizations if we have a - large number of basic blocks and the ratio of edges to blocks - is high. - (delete_null_pointer_checks): Likewise. - -Sat Oct 9 23:16:01 1999 Ken Raeburn - - * c-common.c (check_format_info): Warn if format string isn't a - string literal. - -Sat Oct 9 23:04:02 1999 Jonathan Larmour - - * configure.in (arm*-*-*): Don't let autoconf remove brackets - * configure: regenerate - -Sat Oct 9 13:15:53 1999 Richard Henderson - - * alpha.md (extendsidi2): Turn into a splitter. Allow f/f. - If TARGET_FIX, allow r/f. Remove cvtlq unspec pattern. - (peepholes): Re-enable. - -Sat Oct 9 12:18:16 1999 Richard Henderson - - * Makefile.in (flow.o): Depend on TREE_H. - * basic-block.h (REG_SET_EQUAL_P): New. - (XOR_REG_SET): New. - (n_edges): Declare. - (free_regset_vector): Remove declaration. - (flow_delete_insn_chain): Declare. - (enum update_life_extent): New. - (update_life_info, count_or_remove_death_notes): Declare. - * combine.c (distribute_notes) [REG_DEAD]: Stop search at bb->head. - Verify register live at bb->global_live_at_start before adding USE. - * flow.c (HAVE_epilogue, HAVE_prologue): Provide default. - (CLEAN_ALLOCA): New. - (n_edges): New. - (PROP_*): New flags. - (find_basic_blocks_1): Use alloc_EXPR_LIST. - (clear_edges): Zero n_edges. - (make_edge): Increment n_edges. - (split_edge): Don't allocate bb->local_set. Increment n_edges. - (flow_delete_insn_chain): Export. - (delete_block): Decrement n_edges. - (merge_blocks_nomove): Likewise. - (life_analysis): Give life_analysis_1 PROP flags. - (verify_wide_reg_1, verify_wide_reg): New. - (verify_local_live_at_start): New. - (update_life_info): Rewrite to call into propagate_block. - (mark_reg): New. - (mark_regs_live_at_end): After reload, if epilogue as rtl, - always mark stack pointer. Conditionally mark PIC register. - After reload, mark call-saved registers, return regsiters. - (life_analysis_1): Accept PROP flags not remove_dead_code. - Call mark_regs_live_at_end before zeroing regs_ever_live. - Use calculate_global_regs_live. Copy global_live_at_end before - calling final propagate_block. Zero reg_next_use on exit. - (calculate_global_regs_live): New. - (allocate_bb_life_data): Don't allocate bb->local_set. - (init_regset_vector, free_regset_vector): Remove. - (propagate_block): Accept FLAGS not FINAL or REMOVE_DEAD_CODE. - Test flags before every operation. Warn if prologue/epilogue insn - would have been deleted. - (mark_set_regs, mark_set_1): Accept and use FLAGS. - Use alloc_EXPR_LIST. - (mark_used_regs): Accept and use FLAGS, not FINAL. - Remove special handling for RETURN. - (try_pre_increment): Use alloc_EXPR_LIST. - (dump_flow_info): Dump n_edges. - (unlink_insn_chain, split_hard_reg_notes): Remove. - (maybe_add_dead_note, maybe_add_dead_note_use): Remove. - (find_insn_with_note, new_insn_dead_notes): Remove. - (update_n_sets, sets_reg_or_subreg_1, sets_reg_or_subreg): Remove. - (maybe_remove_dead_notes, prepend_reg_notes): Remove. - (replace_insns): Remove. - (count_or_remove_death_notes): New. - (verify_flow_info): Abort on error after all checks. - (remove_edge): Decrement n_edges. - (remove_fake_edges): Tweak format. - * haifa-sched.c (schedule_insns): Use split_all_insns. - * output.h (update_life_info): Remove declaration. - * recog.c (split_all_insns): From the corpse of split_block_insns, - do the whole function block by block. Use update_life_info. - (recog_last_allowed_insn): New. - (recog_next_insn): Mind it. - (peephole2_optimize): Set it. Walk backwards through blocks. - Use update_life_info. - * rtl.h (update_flow_info, replace_insns): Remove declarations. - (split_all_insns): Declare. - * toplev.c (rest_of_compilation): Thread prologue before flow2. - Use split_all_insns. - - * i386.md (or -1 peep2s): Disable. - -Fri Oct 8 17:49:08 1999 Richard Henderson - - * config/mips/mips.md (movstrsi+[123]) : Combine these into - a single pattern. Scrap the 'd' versions as unnecessary. - - * config/mips/mips.md (tablejump_internal3,tablejump_mips161, - tablejump_mips162,tablejump_internal4): The operands to a - label_ref must be VOIDmode. - -Fri Oct 8 16:12:42 1999 Kaveh R. Ghazi - - * configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'. - -Fri Oct 8 11:58:34 1999 Richard Henderson - - * mips.c (mips_va_arg) [EABI]: Return addr_rtx. - -Fri Oct 8 11:58:34 1999 Richard Henderson - - * lists.c (init_EXPR_INSN_LIST_cache): Don't need to zap the - cache every function if ggc_p. - -Fri Oct 8 18:46:11 1999 Bernd Schmidt - - * jump.c (duplicate_loop_exit_test): Use copy_insn/copy_insn_1 - instead of copy_rtx. Accept sequences that contain asm statements. - * emit-rtl.c (copy_insn_1, copy_insn): New functions. - (copy_insn_scratch_in, copy_insn_scratch_out, copy_insn_n_scratches, - orig_asm_operands_vector, copy_asm_operands_vector, - orig_asm_constraints_vecotr, copy_asm_constraints_vector): New static - variables. - * rtl.h (copy_insn, copy_insn_1): Declare. - -Fri Oct 8 13:08:12 1999 Kaveh R. Ghazi - - * Makefile.in (insn-recog.o): Depend on hard-reg-set.h and resource.h. - - * alpha.h (ASM_OUTPUT_MI_THUNK): Pass the correct number of - arguments to `current_file_function_operand'. - - * genrecog.c: Include hard-reg-set.h and resource.h in the - generated output file. - - * real.c: Include tm_p.h. - -Fri Oct 8 18:46:11 1999 Bernd Schmidt - - * i386.md (prologue_allocate_stack): Add '=' constraint letter on - output operand. - -Thu Oct 7 23:06:50 1999 Richard Henderson - - * rs6000.md (fix_truncdfsi2_internal+1): Emit a clobber - before the fctiwz insn. - -Thu Oct 7 22:53:00 1999 Franz Sirl - Mark Mitchell - - * tree.c (make_lang_type_fn): New function pointer. - (make_lang_type): Call it. - * tree.h (make_lang_type): Declare. - (make_lang_type_fn): Likewise. - * rs6000.c (rs6000_build_va_list): Use make_lang_type. - -Thu Oct 7 00:36:17 1999 Diego Novillo - - * config/rs6000/rs6000.c (secondary_reload_class): For TARGET_ELF - make sure that HIGH instructions are copied into BASE_REGS. - -Thu Oct 7 17:02:34 1999 Jason Merrill - - * expr.c (expand_expr, TARGET_EXPR): Set TREE_USED sooner. - -Thu Oct 7 17:01:58 1999 Greg McGary - - * c-decl.c (finish_struct): Use simpler method of - removing elements of a singly-linked list. - -Thu Oct 7 15:23:28 1999 Michael Meissner - - * alpha.md (peephole2's): Comment out peephole2's that generate - buggy code. - -Thu Oct 7 12:00:53 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Disable mode check for - wildcard matches. - -Thu Oct 7 20:14:16 1999 Bernd Schmidt - - * ggc-simple.c (init_ggc): Set empty_string. - -Thu Oct 7 01:13:15 1999 Richard Henderson - - * configure.in: Detect mmap. Add --with-gc=foo to select - garbage collector; default to page if mmap available. - * Makefile.in (GGC): Substitute. - -Wed Oct 6 23:56:30 1999 Richard Henderson - - * c-decl.c (ggc_p): Enable. - -Wed Oct 6 17:17:08 1999 Kaveh R. Ghazi - - * flow.c (verify_flow_info): Make it extern & unconditionally define. - -1999-10-06 Brendan Kehoe - - * sparc/sp86x-elf.h (SUBTARGET_SWITCHES): Add missing doc - string for little-endian-data. - -Wed Oct 6 16:10:35 1999 Michael Meissner - - * varray.h (VARRAY_CHECK): Fix up appropriate revision check, in - case somebody tries to compile --enable-checking code with gcc - 1.34 or such. - -Wed Oct 6 12:22:50 1999 Richard Henderson - - * genrecog.c (add_to_sequence): Verify operand to label_ref is - VOIDmode. - -Wed Oct 6 10:21:15 1999 Richard Henderson - - * genconfig.c (main): Disable HAVE_conditional_arithmetic. - * jump.c (jump_optimize_1): Document why. - -Wed Oct 6 10:41:56 1999 Kaveh R. Ghazi - - * collect2.c (scan_prog_file, scan_libraries): Prototype function - pointers and casts for `int_handler' and `quit_handler'. - - * flow.c (verify_flow_info, split_hard_reg_notes, - find_insn_with_note, sets_reg_or_subreg_1, prepend_reg_notes, - remove_edge, remove_fake_successors): Add static prototypes. - (verify_flow_info): Wrap with macro ENABLE_CHECKING. - (mark_set_1): Initialize variable `regno'. - (unlink_insn_chain): Likewise for variable `curr'. - (remove_fake_edges): Remove unused variables `e', `tmp' and `last'. - - * loop.c (strength_reduce): Initialize variable - `unrolled_insn_copies'. - (cmp_combine_givs_stats, cmp_recombine_givs_stats): Add static - prototypes. Change these functions to take const PTR parameters - to avoid prototype conflict when used as the comparson argument - for qsort. - (check_dbra_loop): Initialize variable `comparison_val'. - - * reload.c (debug_reload_to_stream, debug_reload): Add prototypes. - (get_secondary_mem): Mark parameter `x' with ATTRIBUTE_UNUSED. - (find_valid_class): Initialize variable `best_class'. - (find_reloads): Call memcpy, not bcopy. - - * reload1.c (gen_mode_int, dump_needs): Add prototypes. - (hard_reg_use_compare): Don't needlessly cast away const. - (reload_reg_class_lower): Likewise. - (choose_reload_regs): Initialize variable `regno'. - -Tue Oct 5 16:34:12 1999 Paul Burchard - - * ggc-page.c (GGC_ALWAYS_COLLECT): Fix typo when undef'ing. - -Tue Oct 5 16:14:40 1999 Michael Meissner - - * libgcc1-test.c (toplevel): Include stddef.h to get size_t. - ({,d}discard): Add forward declarations. Declare parameter as - unused. - (main_without_main): Explicitly declare return type to be int. - (memcpy): Properly declare. - - * libgcc2.c (toplevel): If inhibit_libc is defined and not - building the trampoline support, declare malloc, free, and - atexit. - (__clear_cache): Mark arguments as potentially unused. - - * frame.c (toplevel): If inhibit_libc is defined, declare - malloc and free. - -Tue Oct 5 12:00:32 1999 Richard Henderson - - * flow.c (make_edge): Accept an optional 2D bitmap in which - to cache edge existence. Update all callers. - (make_label_edge, make_eh_edge): Pass through the edge cache. - (make_edges): Provide the cache. - -Tue Oct 5 12:16:49 1999 Kaveh R. Ghazi - - * mbchar.c (literal_codeset, local_mbtowc, local_mblen): Constify - a char*. - (local_mbtowc): Change the type of variable `i' from int to size_t. - - * mbchar.h (ISSJIS1, ISSJIS2): Use parens around && within ||. - (local_mbtowc, local_mblen, literal_codeset): Constify a char*. - -Tue Oct 5 11:34:52 1999 Michael Meissner - - * ggc-common.c (toplevel): Reorder includes, so that ggc.h comes - after other includes that define the appropriate types. Include - tm_p.h for getting user prototypes. - * ggc-callbacks.c (toplevel): Ditto. - * ggc-none.c (toplevel): Ditto. - * gcc-page.c (toplevel): Ditto. - * ggc-simple.c (toplevel): Ditto. - -Mon Oct 4 16:48:16 1999 Diego Novillo - Jonathan Larmour - - * config/mips/mips.c (mips_move_2words): Split doubles if - ISA >= 3, !TARGET_64BIT, and destination is not an FP register. - -Mon Oct 4 21:47:31 1999 Richard Henderson - - * genrecog.c (struct decision_test): New. - (struct decision): Remove test-related members, sort the rest by size. - (IS_SPLIT): Simplify. - (new_decision, new_decision_test): New. - (add_to_sequence): Use them. No special handling for args of - non-MATCH codes. - (maybe_both_true): Renamed from not_both_true; return sense changed. - (maybe_both_true_1, maybe_both_true_2): New. Broken out - of maybe_both_true and adjusted for decision_test. - (position_merit): Remove. - (nodes_identical, nodes_identical_1): New, broken out of merge_trees. - (merge_accept_insn): New, broken out of merge_trees. - (merge_trees): Use them. No special case for c_test; no node - splitting; use test type instead of position_merit. - (factor_tests): New. - (simplify_tests): New. - (break_out_subroutines): Don't write code now. - (find_afterward): New. - (write_afterward, write_switch, write_cond): New. - (write_action, is_unconditional): New. - (write_node): New. Use them. - (write_tree_1): Rewrite. Use the new functions above. - (write_tree): Remove afterward processing. - (write_subroutine): Simplify function variant emission. - (write_subroutines): New. - (same_codes, clear_codes): Remove. - (same_modes, clear_modes): Remove. - (write_header): New, broken out of main. - (make_insn_sequence): Use new_decision and new_decision_test. - (process_tree): New, broken out of main. - (main): Adjust for merge_trees interface change. - Don't #define operands in the output file. - (record_insn_name): New, broken out of make_insn_sequence. - (debug_decision_2, debug_decision_1, debug_decision_0): New. - (debug_decision): New. - -1999-10-04 21:58 -0700 Zack Weinberg - - * resource.c (find_free_register): Mark class_str argument const. - * resource.h: Update prototype to match. - - * i386.h (PREDICATE_CODES): Add entry for long_memory_operand. - * i386.md: Give all anonymous insns names. - -Mon Oct 4 21:12:02 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (merge_blocks): Avoid assing BASIC_BLOCK for non-existent - blocks. - -Mon Oct 4 21:01:39 1999 Richard Henderson - - * toplev.c (dbr_sched_time): Unconditional. - (peephole2_time): New. - (compile_file): Add pass numbers to all of the dump file suffixes. - Dump peephole2_time. Don't dump times for non-applicable passes. - (rest_of_compilation): Add pass numbers to dump file suffixes. - Conditionalize calls to the scheduler. - * invoke.texi: Update. - -Mon Oct 4 20:25:13 1999 Anthony Green - - * flow.c (make_edges): Fix insn iteration. - (find_basic_blocks): Assign NULL_RTX, not 0, to rtx. - (find_basic_blocks_1): Fix spelling mistake. - -Mon Oct 4 16:56:11 1999 Richard Henderson - - * tree.c (build1): Set TREE_SIDE_EFFECTS for expressions that - always have side-effects. Use memset not bzero. - (make_node): Likewise. - -Mon Oct 4 16:22:20 1999 Mark Mitchell - - * stmt.c (expand_anon_union_decl): When any of the elements of the - union is addressable, so is the entire union. - -Mon Oct 4 11:38:33 1999 Richard Henderson - - * sbitmap.c (sbitmap_ones): Don't set too many bits. - - * bitmap.h (enum bitmap_bits): Add BITMAP_XOR. - * bitmap.c (bitmap_operation): Return true iff TO changed. - (bitmap_equal_p): New. - (bitmap_bit_p): Tidy arithmetic. - (debug_bitmap_file): Likewise. - -Mon Oct 4 11:28:37 1999 Richard Henderson - - * toplev.c (rest_of_compilation): Turn on cse_not_expected - before cse2 instead of after. - -Mon Oct 4 09:55:17 1999 Stan Cox - - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Let leasi/liadi handle large - register offsets. - -Mon Oct 4 08:54:12 1999 Alexandre Oliva - - * cppinit.c (is_idchar initializer): Loosen tests to accept - gcc 2.>6 and >2. - -Mon Oct 4 02:31:20 1999 Mark Mitchell - - * mips.md: Define conditional move patterns for floating point - operands and DI mode conditions. - -Mon Oct 4 02:12:41 1999 Mark Mitchell - - * tree.c (make_node): Set TREE_SIDE_EFFECTS for expressions that - always have side-effects. - -Sun Oct 3 14:14:16 1999 Jeffrey A Law (law@cygnus.com) - - * mn10200.c (asm_file_start): Fix typo. - - * cppinit.c (is_idchar initializer): Tighten tests for when - to put the table into initialized memory. - - * ggc-none.c (ggc_alloc_rtvec): An rtvec is an array of rtx, - not an array of rtunion. - * gcc-page.c (ggc_alloc_rtvec): Similarly. - * gcc-simple (ggc_free_rtvec): Similarly. - - * genattrtab.c (simplify_cond): Make TESTS an array of rtxs, instead - of rtunions. - - * mbchar.h: Add missing #endif. - - * t-fr30 (LIB2FUNCS_EXTRA): Remove definition. - (FPBIT, DPBIT): Define. - -Sun Oct 3 12:44:05 1999 Kaveh R. Ghazi - - * print-tree.c (print_node, indent_to): Remove redundant prototypes. - - * profile.c (instrument_arcs, output_gcov_string, - tablejump_entry_p): Add static prototypes. - (output_gcov_string): Constify a char*. - - * regmove.c (replacement_quality, fixup_match_2): Add static - prototypes. - - * resource.h (reg_dead_p): Add extern prototype. - - * rtl.c (trim_filename): Add static prototype. - - * scan-decls.c (skip_to_closing_brace): Likewise. - - * stmt.c (expand_decl_cleanup_no_eh): Hide definition. - (expand_end_case): Initialize variable `range'. - (emit_case_nodes): Remove unused prototype `rtx_fn'. - - * varasm.c (asm_emit_uninitialised): Add static prototype. - (asm_emit_uninitialised, assemble_variable): Mark parameter with - ATTRIBUTE_UNUSED. - -Sun Oct 3 12:24:52 1999 Kaveh R. Ghazi - - * cpplib.c (if_directive_nameo): Add static prototype. - - * cse.c (cse_insn): Remove unused variable `p'. - - * except.c (create_rethrow_ref, push_entry, - receive_exception_label, new_eh_region_entry, find_func_region, - clear_function_eh_region, process_nestinfo): Add static prototypes. - (get_reg_for_handler): Hide definition. - (process_nestinfo): Initialize variable `extra_handlers'. - - * expr.h (expand_builtin_longjmp): Add extern prototype. - - * final.c (final_addr_vec_align, align_fuzz): Add static prototypes. - - * function.c (prepare_function_start): Likewise. - (pop_function_context_from): Mark parameter `context' with - ATTRIBUTE_UNUSED. - (push_temp_slots_for_block, flush_addressof): Hide definition. - - * gcov.c (init_arc, reverse_arcs, create_program_flow_graph, - solve_program_flow_graph, calculate_branch_probs, - function_summary, main, fancy_abort): Add prototypes. - - * gen-protos.c (add_hash, parse_fn_proto, main): Likewise. - (add_hash): Constify a char*. - - * ggc-common.c (ggc_mark_rtx_ptr, ggc_mark_tree_ptr, - ggc_mark_tree_varray_ptr, ggc_mark_tree_hash_table_ptr, - ggc_mark_string_ptr, ggc_mark_tree_hash_table_entry): Add prototypes. - - * integrate.c (expand_inline_function_eh_labelmap): Likewise. - - * lists.c (free_list, zap_lists): Likewise. - -Sun Oct 3 12:05:28 1999 Kaveh R. Ghazi - - * alias.c (nonlocal_reference_p): Add static prototype. - - * bitmap.c (bitmap_element_allocate): Prototype args in function - pointer cast. - - * builtins.c (stabilize_va_list): Add static prototype. - (expand_builtin_va_arg): Constify a char*. - - * c-lex.c (getch, put_back, extend_token_buffer_to, - read_line_number, token_getch, token_put_back): Add static - prototypes. - - * c-parse.gperf (hash, is_reserved_word): Likewise. - - * cccp.c (is_dir_separator): Likewise. - -Sat Oct 2 16:07:56 1999 Kaveh R. Ghazi - - * graph.h: New file to prototype functions exported by graph.c. - - * Makefile.in (graph.o, toplev.o): Depend on graph.h. - - * graph.c: Include graph.h. - - * toplev.c: Likewise. Remove redundant prototypes. - -Sat Oct 2 11:28:33 1999 Krister Walfridsson - - * invoke.texi: Removed duplicated description for -Q. - -Sat Oct 2 11:16:00 1999 Jim Kingdon - - * extend.texi: Grammar fix in __extension__ text. - -Sat Oct 2 11:06:31 1999 Richard Henderson - - * md.texi (define_peephole2): New section. - -Sat Oct 2 10:57:56 1999 Jan Hubicka - - * i386.md (mov?i patterns): Fix handling of TARGET_USE_MOV0 - (mov $-1 to or peepholer): Enable for pentium when optimizing for - speed. - -Sat Oct 2 10:55:25 1999 Jan Hubicka - - * builtins.c (expand_builtin_strlen): Fix best mode searching loop. - -Sat Oct 2 10:53:22 1999 Jan Hubicka - - * i386.md (ffs expander): Emit Pentium friendly code for - TARGET_PENTIUM. - -Sat Oct 2 02:48:21 1999 Mark P. Mitchell - - * tree.c (build): Don't look at TREE_SIDE_EFFECTS or TREE_RAISES - for non-trees. - (build1): Likewise. - -Fri Oct 1 18:01:11 1999 Bernd Schmidt - - * i386elf.h (TARGET_DEFAULT): Use symbolic constants. - -Fri Oct 1 12:42:53 1999 Andreas Schwab - - * config/m68k/m68k.c (use_return_insn): Return false if the pic - register is in use. - -Fri Oct 1 10:56:06 1999 Bernd Schmidt - - * md.texi (No Constraints): Delete section. - * Makefile.in (genattrtab.o): Don't depend on "insn-config.h". - * final.c (final_scan_insn): We always have register constraints. - * genattrtab.c: Don't include "insn-config.h". - (write_attr_case): We always have register constraints. - * genconfig.c (register_constraint_flag): Delete. - (walk_insn_part): Don't check whether we have register constraints. - (main): Don't write out "#define REGISTER_CONSTRAINTS". - * genoutput.c (have_constraints): Delete. - (main): Don't set it. - (output_operand_data): We always have constraints. - (scan_operands): Likewise. - (compare_operands): Likewise. - * local-alloc.c (block_alloc): We always have constraints. - (requires_inout): Always compile this function. - * recog.c (extract_insn): We always have constraints. - (constrain_operands, reg_fits_class_p): Always compile these - functions. - * recog.h (struct recog_data): Delete non-REGISTER_CONSTRAINTS - fields. - (struct insn_operand_data): Likewise. - * regclass.c (regclass): We always have constraints. - (record_reg_classes, copy_cost, record_address_regs, - auto_inc_dec_reg_p): Always compile these functions. - * regmove.c (regmove_optimize): We always have constraints. - * reload.c (find_reloads): Likewise. - * reload1.c (reload): Likewise. - (reload_cse_simplify_operands): Likewise. - * i860.c (output_delay_insn): Likewise. - -Thu Sep 30 23:04:41 1999 Mark P. Mitchell - - * iris6.h (BUILD_VA_LIST_TYPE): Define. - -Thu Sep 30 18:44:50 1999 Franz Sirl - - * rs6000.c (rs6000_build_va_list): Create a TYPE_DECL node - for the va_list record. - -Thu Sep 30 18:34:54 1999 Jan Hubicka - - * i386.c (ix86_adjust_cost): Ignore false ebp dependencies in - prologues. - -Thu Sep 30 18:31:36 1999 Jan Hubicka - - * alias.c: Include insn-flags.h. - * Makefile.in (alias.o): Update. - -Thu Sep 30 18:21:30 1999 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Convert LEU and GTU comparisons - to LTU and GEU. Handle more cases using sbb. - -Thu Sep 30 18:18:39 1999 Jan Hubicka - - * i386.md (truncatexfdf splitters): Do not use subreg. - (fop XFmode patterns): Fix mode in operand testing. - -Thu Sep 30 18:04:13 1999 Richard Henderson - - * jump.c (jump_optimize_1): Amend last change to test only the - form of the operand, not the insn. - - * jump.c (jump_optimize_1) [conditional_move]: Use general_operand - not register_operand to determine when B may need preloading. - -Thu Sep 30 17:39:16 1999 Richard Henderson - - * alpha.md (*): Use nonimmediate not general_operand for SET_DEST. - (ffsdi2, extxl, insxh, mskxh): Add missing DImode to SET_SRC. - (call-value patterns): Move to end of file. - (*): Remove mode from label_ref in (pc) context. - (movstrqi): Use memory not general_operand for BLKmode operands. - (prologue_stack_probe_loop, builtin_longjmp): Add missing mode - to register_operand operands. - (peep2 patterns): Convert from commented-out peephole patterns. - -Thu Sep 30 14:39:17 1999 Bernd Schmidt - - * tree.h (enum built_in_function): Rename BUILT_IN_DWARF_REG_SIZE - to BUILT_IN_INIT_DWARF_REG_SIZES. - * builtins.c (expand_builtins, case BUILT_IN_INIT_DWARF_REG_SIZES): - Renamed from BUILT_IN_DWARF_REG_SIZE; call - expand_builtin_init_dwarf_reg_sizes. - * c-decl.c (init_decl_processing): Replace __builtin_dwarf_reg_size - with __builtin_init_dwarf_reg_size_table. - * dwarf2out.c (struct reg_size_range): Delete. - (expand_builtin_init_dwarf_reg_sizes): New function. - (expand_builtin_dwarf_reg_size): Delete. - * except.h (expand_builtin_init_dwarf_reg_sizes): Declare. - (expand_builtin_dwarf_reg_size): Don't declare. - * libgcc2.c (dwarf_reg_size_table_initialized): New. - (dwarf_reg_size_table): New. - (init_reg_size_table): New function. - (copy_reg): Use dwarf_reg_size_table. - (eh_context_initialize): Make sure dwarf_reg_size_table is initialized - before use. - -Thu Sep 30 05:40:34 1999 Richard Earnshaw - - * c-lang.c (finish_file case ndef ASM_OUTPUT_{CON,DE}STRUCTOR): - Correctly build argument list to constructor and destructor functions. - -Thu Sep 30 00:13:27 1999 Dirk Zoller - - * c-tree.h (warn_float_equal): Declare. - * c-decl.c (warn_float_equal): Define. - (c_decode_option): Recognize -W[no-]float-equal. - * c-typeck.c (build_binary_op): Conditionally warn - about equality tests of floating point types. - * toplev.c (documented_lan_options): Add -W[no-]float-equal. - * invoke.texi: Add docs for -Wfloat-equal warning. - -Wed Sep 29 23:43:39 1999 Jeffrey A Law (law@cygnus.com) - - * h8300.h (INIT_TARGET_OPTABS): Use init_one_optab instead of - generating RTL directly. - * mips.h (INIT_TARGET_OPTABS): Likewise. - * mn10200.h (INIT_TARGET_OPTABS): Likewise. - - * expr.h (init_mov_optab): Delete declaration - - * h8300.c (WORD_REG_USED): Update to avoid useless register - saves in interrupt functions and functions which never return. - - * cse.c (struct set): Delete inner_dest_loc field. - (cse_insn): Remove assignments to inner_dest_loc field. - -Wed Sep 29 16:06:20 1999 Richard Henderson - - * ggc-page.c: Don't include etc taken care of - by "system.h". Include afterward. - -Wed Sep 29 16:05:18 1999 Richard Henderson - - * rs6000.c (rs6000_encode_section_info): If ggc_p, use - ggc_alloc_string. - -Tue Sep 28 16:45:40 1999 David Edelsohn - - * xcoffout.c (xcoffout_declare_function): Add documentation. - * rs6000.c (num_insns_constant_wide): Use TARGET_POWERPC64 not - TARGET_64BIT. Compare constant to -1, not bit pattern. - (easy_fp_constant): Use TARGET_POWERPC64 not TARGET_64BIT. - (expand_block_move): Allow 8 DImode loads for PowerPC64. Fix - gen_movsi typos. - -Tue Sep 28 16:43:14 1999 Nick Clifton - - * dwarf2out.c (add_abstract_origin_attribute): Abort if - origin_die is NULL. - (gen_inlined_enumeration_type_die): Do not abort if the type has - not been writeen out. - (gen_inlined_structure_type_die): Do not abort if the type has - not been writeen out. - (gen_inlined_union_type_die): Do not abort if the type has - not been writeen out. - (gen_tagged_type_instantiation_die): Do not abort if the type - has not been written out. - -Tue Sep 28 14:33:47 1999 Bernd Schmidt - - * c-decl.c (init_decl_processing): If MD_INIT_BUILTINS is defined, - call it. - * reg-stack.c (straighten_stack): Copy hard reg set with - COPY_HARD_REG_SET. - -Tue Sep 28 01:11:05 1999 Richard Henderson - - * builtins.c (stabilize_va_list): Stabilize array type va_list - to a pointer type, not the base record type. - (expand_builtin_va_copy): Dereference the pointers explicitly; - use the correct size for the copy. - - * rs6000.c (rs6000_va_start): Dereference valist to get to the record. - (rs6000_va_arg): Likewise. - -Mon Sep 27 23:27:21 1999 Richard Henderson - - * rtl.h (struct rtx_def): Move gc_mark to align mode field. - -Mon Sep 27 23:20:29 1999 Mark Mitchell - - * tree.h (struct tree_decl): Use `bclass', not `class', in name of - field. - (DECL_BUILT_IN_CLASS): Adjust accordingly. - -Mon Sep 27 23:03:16 1999 Richard Henderson - - * ggc-page.c (GGC_MIN_LAST_ALLOCATED): New. - (init_ggc): Use it instead of a constant. - (ggc_collect): Bound allocated_last_gc by it. - -Mon Sep 27 19:06:04 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/fixinc.irix (stdio.h): Hack stdio.h to avoid problems - with va_list. - -Mon Sep 27 19:40:17 CEST 1999 Marc Espie - - * configure.in (mips*el-*-openbsd*): Don't duplicate default settings. - (mips*-*-openbsd*): Let big endian configuration be a fragment. - * configure: Regen. - * config/mips/openbsd.h: New, OpenBSD little endian target. - * config/mips/openbsd-be.h: New, OpenBSD big endian target fragment. - * config/mips/xm-openbsd.h: New, OpenBSD host. - -Mon Sep 27 10:28:48 1999 Andreas Schwab - - * config/m68k/m68k.c (output_function_prologue, - output_function_epilogue): Use - current_function_uses_pic_offset_table instead of regs_ever_live - to decide whether to save/restore pic register. - (legitimize_pic_address): Don't modify regs_ever_live any more. - -Sun Sep 26 10:55:36 1999 Mark Mitchell - - * function.h (struct function): Add x_dont_save_pending_sizes_p. - * stor-layout.c (variable_size): Don't add sizes to the pending - sizes list if x_dont_save_pending_sizes_p is set. - -Sun Sep 26 16:36:52 1999 Robert Lipe (robertlipe@usa.net) - - * config/i386/dgux.h (SELECT_RTX_SECTION): Provide dummy argument - for symbolic_operand(). - * config/i386/sco5.h (SELECT_RTX_SECTION): Likewise. - -Sun Sep 26 07:37:11 1999 Kaveh R. Ghazi - - * combine.c (gen_rtx_combine): Add missing call to va_end(). - - * final.c (asm_fprintf): Likewise. - - * genattrtab.c (attr_rtx): Likewise. - -Sat Sep 25 13:11:07 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c: Update comments. - (cse_insn): When converting a conditional/computed jump into - an unconditional jump, always make sure a BARRIER immediately - follows the converted jump. Do not delete unreachable code. - (cse_basic_block): Do not delete unreachable code. - * toplev.c (rest_of_compilation): Move call to - delete_trivially_dead_insns after the conditional call to - jump_optimize. - -Sat Sep 25 09:03:17 1999 Kaveh R. Ghazi - - * collect2.c (make_temp_file): Don't prototype. - - * gcc.c (make_temp_file): Likewise. - - * mips.c (mips_make_temp_file): Renamed from `make_temp_file'. - -Sat Sep 25 13:42:15 1999 Nick Clifton - - * varasm.c (asm_emit_uninitialised): New function: Generate - the assembler statements necessary to declare an uninitialized - variable. - (ASM_EMIT_LOCAL): New macro: Emit a local, uninitialized - variable. - (ASM_EMIT_BSS): New macro: Emit an entry in the bss section. - (ASM_EMIT_COMMON): New macro: Emit an entry in the common - section. - (assemble_variable): Use asm_emit_uninitialised to emit an - uninitialized variable. - -Fri Sep 24 17:10:56 1999 Nick Clifton - - * combine.c (simplify_comparison): Cope with downshifting a 32 bit - constant on a 64 bit host. Patch supplied by Geoffrey Keating - . - -Fri Sep 24 10:48:10 1999 Bernd Schmidt - - * builtins.c (expand_builtin): Use MD_EXPAND_BUILTIN if defined. - * c-common.h (builtin_function): Don't declare. - - * c-decl.c (duplicate_decls): Use DECL_BUILT_IN_CLASS rather than - DECL_BUILT_IN. - (pushdecl): Likewise. - (finish_decl): Likewise. - (builtin_function): New arg CLASS. Arg FUNCTION_CODE now of type - int. All callers changed. - Set the builtin's DECL_BUILT_IN_CLASS. - * tree.h (enum built_in_class): New. - (enum built_in_function): Delete NOT_BUILT_IN. - (DECL_FUNCTION_CODE): The corresponding field in tree_decl is now - in a union. - (DECL_SET_FUNCTION_CODE): Likewise. - (DECL_BUILT_IN_CLASS): New macro. - (DECL_BUILT_IN): Use DECL_BUILT_IN_CLASS. - (struct tree_decl): Split builtin function code field into a - struct. - (builtin_function): Declare. - -Fri Sep 24 01:45:05 1999 Mark Mitchell - - * optabs.c (init_traps): Fix typo in last change. - -Fri Sep 24 01:10:11 1999 Mark Mitchell - - * toplev.c (rest_of_decl_compilation): Update comment. - -Fri Sep 24 11:57:06 1999 Geoffrey Keating - - * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Put the symbol - in .sbss if appropriate. - (EXTRA_SECTION_FUNCTIONS): Add sbss. - (SBSS_SECTION_ASM_OP): New macro. - * config/mips/linux.h (EXTRA_SECTION_FUNCTIONS): Add sbss. - (EXTRA_SECTIONS): Add in_sbss. - * config/mips/mips.h: Prototype sbss_section. - -Thu Sep 23 18:18:55 1999 Mark Mitchell - - * stmt.c (expand_start_bindings): Don't allow cleanup instructions - to disappear. - -Thu Sep 23 18:07:01 1999 Mark Mitchell - - * optabs.c (init_traps): Register trap_rtx as a GC root. - -Thu Sep 23 17:41:47 1999 Alexandre Oliva - - * config/mips/mips.c (function_arg_pass_by_reference): Define - unconditionally, since it's called unconditionally. - -Thu Sep 23 13:40:02 1999 Jason Merrill - - * toplev.c (documented_lang_options): Add -fshort-wchar. - * c-decl.c (c_decode_option): Likewise. - (init_decl_processing): If -fshort-wchar, use 'short unsigned int' - for wchar_t. - * c-common.c, c-lex.c: Get WCHAR_TYPE_SIZE from wchar_type_node. - * gcc.c (default_compilers): If -fshort-wchar, - override __WCHAR_TYPE__. - * tm.texi (C Dialect Options): Add -fshort-wchar. - - * dwarf2out.c (output_aranges): Use DW_AT_location to find the - symbol for a variable. - - * cpplib.h (CPP_PREPROCESSED): New macro. - * cpplib.c (handle_directive): Don't complain about `# NUMBER' if - we're seeing this input for a second time. - -Thu Sep 23 12:54:49 1999 Alex Samuel - - * emit-rtl.c (init_emit_once): Initialize modes first. - -Sun Sep 19 01:23:23 1999 Alex Samuel - - * config/i386/i386.c (pic_label_name): Change to char pointer. - (global_offset_table): New variable. - (load_pic_register): Fill global_offset_table if it hasn't - already been done. Allocate pic_label_name dynamically. - * ggc.h (empty_string): New variable. - * ggc-simple.c (empty_string): Likewise. - (init_ggc): Allocate empty_string and add as root. - * stmt.c (digit_strings): New variable. - (init_stmt): Add last_block_end_note as root. Allocate and - initialize digit_strings. - (expand_asm_operands): Use empty_string instead of string - constant. Use digit_strings instead of string constants. - * profile.c (init_arc_profiler): Allocate string with - ggc_alloc_string instead of xmalloc. - (output_func_start_profiler): Likewise. - * c-typeck.c (digest_init): Check if init is error_mark_node. - -Thu Sep 23 12:59:14 1999 Alex Samuel - Richard Henderson - - * ggc-page.c: New file. - * Makefile.in (ggc-page.o): New. - -Thu Sep 23 13:55:21 1999 Jeffrey A Law (law@cygnus.com) - - * invoke.texi: Document -fdelete-null-pointer-checks - * toplev.c (flag_delete_null_pointer_checks): New. - (f_options): Add entry for -fdelete-null-pointer-checks. - (rest_of_compilation): Conditionalize null pointer check - elimination on flag_delete_null_pointer_checks. - (main): If -O2 or greater, enable -fdelete-null-pointer-checks - -1999-09-23 10:56 -0700 Zack Weinberg - - * iso646.h, stdarg.h, stdbool.h, stddef.h, varargs.h: Add - copyright notice and special exception to GPL. - -Thu Sep 23 13:40:23 1999 Kaveh R. Ghazi - - * abi64.h (mips_function_value): Add prototype arguments. - - * mips-protos.h: New file with mips prototypes. - - * mips.c: Include "tm_p.h". - (mktemp, lookup_name): Add prototype arguments. - (extern_list, string_constant, mips_fill_delay_slot, - mips_output_external, mips_output_external_libcall, - mips_output_filename, mips_declare_object, function_prologue, - mips_expand_prologue, function_epilogue, mips16_constant, - build_mips16_function_stub, mips_output_conditional_branch): - Constify a char*. - (mips_va_start): Remove unused variable `u'. - (mips_va_arg): Cast value to unsigned when comparing against one. - (trace): Delete. - (save_restore_insns, mips_expand_prologue): Add missing arg in - call to `large_int'. - - * mips.h: Move prototypes to mips-protos.h. - (data_section, memory_address_p, rdata_section, - readonly_data_section, simple_epilogue_p, text_section): Delete - prototypes delcared elsewhere. - (mips_epilogue_delay_slots, print_options): Delete unused decls. - (trace): Delete. - (GO_PRINTF, GO_PRINTF2): Call fprintf, not trace. - - * mips.md: Delete extra args in call to `mips_move_2words'. - - * xm-iris6.h (alloca): Add prototype argument. - - * genpeep.c: Include "tm_p.h" in generated output file. - -Thu Sep 23 10:36:55 EDT 1999 Andrew MacLeod - - * basic-block.h (find_edge_index): Change parameters. - * flow.c (verify_edge_list): Pass basic_block parameters to - find_edge_index instead of integers. - -Thu Sep 23 15:54:12 1999 Nick Clifton - - * combine.c (simplify_comparison): Use an unsigned shift to adjust - the constant. - -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 - - * install.texi (Configurations): Remove pyramid. Add fr30, i686, - i786, mn10200, mn10300, pdp11, v850. - -Thu Sep 23 07:37:13 1999 Dan Nicolaescu - - * libgcc2.c (num_digits): Add prototype with - __attribute__((const)). - (__terminate): Add prototype. - -Thu Sep 23 05:32:06 1999 Richard Henderson - - * builtins.c, dbxout.c, varasm.c: Include tm_p.h. - - * alpha/alpha.c (print_operand): Fix type of `code'. - (alpha_output_filename): Constify. - * alpha/alpha.h: Move all function declarations ... - * alpha/alpha-protos.h: ... here. New file. - * alpha/elf.h (CONST_SECTION_FUNCTION): Prototype the function. - (SECTION_FUNCTION_TEMPLATE): Likewise. - -Thu Sep 23 11:15:36 1999 Bernd Schmidt - - * expmed.c (do_cmp_and_jump): Pass ccp_jump to can_compare_p. - * expr.c (expand_expr): Likewise. - (do_jump): Likewise. - (do_store_flag): Pass ccp_store_flag to can_compare_p. - * expr.h (enum optab_index): Add cbranch, cmov, cstore optabs and - accessor macros. - (enum can_compare_purpose): New. - (can_compare_p): Adjust prototype. - (prepare_cmp_insn, prepare_operand): Declare. - * genopinit.c (optabs): Add cbranch_optab, cmov_optab, cstore_optab. - * optabs.c (cmp_available_p): Deleted. - (expand_abs): Pass ccp_jump to can_compare_p. - (can_compare_p): New arg PURPOSE. Check for combined optabs. - (prepare_cmp_insn): No longer static. Add arg PURPOSE. - Call can_compare_p rather than cmp_available_p. - (prepare_operand): No longer static. - (emit_cmp_and_jump_insn): Check for and use cbranch patterns. - (emit_cmp_and_jump_insns): Pass ccp_jump to prepare_cmp_insn. - (expand_float): Fix a slightly broken emit_cmp_insn/emit_jump_insn - sequence to use emit_cmp_and_jump_insns. - (init_optabs): Initialize cbranch_optab, cmov_optab, cstore_optab. - -Wed Sep 22 17:58:01 1999 Stan Cox - - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Don't accept large - register offsets; let LEGITIMIZE_ADDRESS load it into a register. - (LEGITIMIZE_ADDRESS): Use plus_constant to avoid - (plus (reg) (const_int 0)) - * mips.md (call_internal3c): New pattern for -mips16 -mlong-calls. - -Wed Sep 22 17:55:31 1999 David Edelsohn - - * rs6000.c (expand_block_move): DImode loads and stores require - word-aligned displacements. Increment address registers with - adddi3 on 64-bit platform. Use TARGET_POWERPC64 not TARGET_64BIT. - -Wed Sep 22 17:35:55 1999 Michael Meissner - - * dwarf2out.c (base_type_die): Use the name __unknown__ if there - is no name for the base type, rather than segfault. If we are - writing out a complex integer type, use DW_ATE_lo_user. - - * expr.c (emit_move_insn_1): If we are copying a complex that fits - in one word or less (complex char, complex short, or on 64 bit - systems complex float) to/from a hard register, copy it through - memory instead of dying in gen_{real,imag}part. If we have a - short complex type, prevent inlining since it allocates stack - memory. - - * tree.c (build_complex_type): If we are writing dwarf2 output, - generate a name for complex integer types. - -Wed Sep 22 11:34:08 EDT 1999 Andrew MacLeod - - * basic-block.h (add_noreturn_fake_exit_edges): Use correct name. - * flow.c (remove_edge): Remove extra whitespace. - (remove_fake_edges): Fix comment. - (add_noreturn_fake_exit_edges): Use the correct name. - -Wed Sep 22 16:12:40 BST 1999 Nathan Sidwell - - * Makefile.in (INTL_MOSTLYCLEAN, INTL_CLEAN): New variables. - (mostlyclean): Depend on INTL_MOSTLYCLEAN. - (clean): Depend on INTL_CLEAN. - (maintainer-clean): Adjust. - -Wed Sep 22 10:18:56 1999 Kaveh R. Ghazi - - * configure.in (AC_PREREQ): Bump to 2.13. - (AC_C_STRINGIZE): Call this instead of using a custom macro. - - * gansidecl.h (HAVE_STRINGIZE): Define, if stage2 gcc && __STDC__. - - * system.h (HAVE_STRINGIZE): Test this instead of HAVE_CPP_STRINGIFY. - - * acconfig.h (HAVE_CPP_STRINGIFY): Delete. - - * alpha/xm-vms.h (HAVE_CPP_STRINGIFY): Delete. - (HAVE_STRINGIZE): Define. - -Wed Sep 22 06:25:15 1999 Jim Kingdon - - * c-parse.in: save and restore warn_pointer_arith on __extension__ - along with pedantic. - (SAVE_WARN_FLAGS, RESTORE_WARN_FLAGS): Added. - Set the type of extension to itype rather than $1 kludge. - * extend.texi (Alternate Keywords): Adjust documentation. - * c-parse.c, c-parse.y, objc-parse.c, objc-parse.y: Rebuilt. - -Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c, pa.h, pa.md: Support multiple assembler dialects in - most assembler templates. - - * pa.c (hppa_legitimize_address): Handle full offsets for PA2.0 - FP loads and stores. - (following_call): Always return zero for the PA8000. - * pa.h (GO_IF_LEGITIMATE_ADDRESS): Handle full offsets for PA2.0 - FP loads and stores. - (LEGITIMIZE_RELOAD_ADDRESS): Similarly. - - * pa.h (BRANCH_COST): Define. - - * pa.md (return, return_internal): Use bve for PA2.0. - - * pa.md (fused multiply): Add variants which reduce height for the - fused multiply, but which still generate 2 insns. - (fnegabs): Similarly. - - * pa.md (subsi3): Turn into an expander. Create two anonymous - patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. - * pa.h (EXTRA_CONSTRAINT): Handle 'S'. - - * pa.md (floatunssisf2, floatunssidf2): Generate different RTL - for TARGET_PA_20. - (floatunssidf2_pa20, floatunssisf2_pa20): New patterns for PA2.0 - code generation. - (floatunsdisf2, floatunsdidf2, fixuns_truncsfsi2): Likewise. - (fixuns_truncdfsi2, fixuns_truncsfdi2, fixuns_truncdfsi2): Likewise. - - * regclass.c (init_regs): Add "top_of_stack" as a garbage - collection root. - - * flow.c (record_active_eh_regions): Terminate loop after finding - the last insn in the last basic block. - -Wed Sep 22 20:25:00 1999 Michael Hayes - - * config/c4x/c4x.md: Delete parallel instruction peepholes. - -Wed Sep 22 19:59:19 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_add_gc_roots): Add tree roots. - -Wed Sep 22 19:56:25 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_process_after_reload): Rework machdep insn - splitting to not use output template. - -Wed Sep 22 19:50:12 1999 Michael Hayes - - * config/c4x/c4x.h (EXPAND_BUILTIN_VA_START): Call c4x_va_start. - * config/c4x/c4x.c (c4x_va_start): New function. - -Tue Sep 21 18:40:01 1999 Jan Hubicka - - * genrecog.c (not_both_true): Handle correctly cases when called for - tests with different positions in the insn. - -Tue Sep 21 18:29:11 1999 Kaveh R. Ghazi - - * machmode.h (HOST_PTR_PRINTF): Move from here ... - - * system.h (HOST_PTR_PRINTF): ... to here. - - * mips-tfile.c: Don't include machmode.h. - - * Makefile.in (MACHMODE_H): New variable. Update to use it. - (mips-tfile.o): Don't depend on machmode.h. - -Tue Sep 21 18:27:34 1999 Kaveh R. Ghazi - - * haifa-sched.c (sched_analyze): Rename local variable `region' to - avoid conflicts with typedef struct `region' at the top level scope. - -Tue Sep 21 14:14:50 1999 Richard Henderson - - * basic-block.h (basic_block): Add eh_beg, eh_end. - * flow.c (entry_exit_blocks): Update. - (find_basic_blocks): Don't allocate bb_eh_end, or pass it around. - Call new functions. - (find_basic_blocks_1): Don't record eh_list at each bb. Use - lists.c functions to allocate insn lists. - (make_edges): Use eh_beg+eh_end, not the lists. Split out EH - edge creation ... - (make_eh_edge): ... here. New. - (move_stray_eh_region_notes): New. - (record_active_eh_regions): New. - (delete_unreachable_blocks): Split out block merging ... - (try_merge_blocks): ... here. New. - (merge_blocks_move_predecessor_nojumps): Remove edge arg. - Dump debugging data. - (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 - - * extend.texi (Bound member functions): Document unbound pmf - conversion. - -Tue Sep 21 14:55:11 EDT 1999 Andrew MacLeod - - * flow.c (split_edge): Handle insertion on a fallthrough edge which - has the EXIT_BLOCK as a dest. - -Tue Sep 21 14:51:23 EDT 1999 Andrew MacLeod - - * flow.c (remove_edge): New function to remove an edge from the - flow graph. - (remove_fake_successors): New function to remove fake successor edges. - (remove_fake_edges): New function to remove all fake edges from the - flow graph. - (add_fake_exit_edges): New function to add fake edges from all blocks - with no successors to the exit block. - * basic-block.h (remove_fake_edges, add_fake_exit_edges): Add - prototypes for new functions. - -Tue Sep 21 14:49:53 EDT 1999 Andrew MacLeod - - * config/mips/elf64.h (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): - Use Pmode to determine whether to output .dword or .word. - -Tue Sep 21 11:04:34 1999 Alex Samuel - - * tree.c (built_in_filename): New variable. - (BUILT_IN_FILENAME): New macro. - (init_tree_codes): Allocate built_in_filename. - (make_node): Use built_in_filename instead of string constant. - -Tue Sep 21 14:13:27 1999 Nick Clifton - - * configure.in: Add fr30 target. - * configure: Regenerate. - * config/fr30: New directory. - * config/fr30/crti.asm: New file. - * config/fr30/fr30.c: New file. - * config/fr30/crtn.asm: New file. - * config/fr30/fr30.h: New file. - * config/fr30/fr30.md: New file. - * config/fr30/lib1funcs.asm: New file. - * config/fr30/t-fr30: New file. - * config/fr30/xm-fr30.h: New file. - -Tue Sep 21 06:45:31 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (merge_blocks_move_successor_nojumps): Delete the - BARRIER at the end of the successor, not the BARRIER before - the successor. - - * pa.c (pa_add_gc_roots): Fix thinko in last change. - -Tue Sep 21 05:29:17 1999 Richard Earnshaw (rearnsha@arm.com) - - * stmt.c (any_pending_cleanups): Don't crash when - current_function->stmt is unset. - -Tue Sep 21 00:59:49 1999 Alexandre Oliva - - * emit-rtl.c (init_emit_once): Initialize const_int_rtx before - other initializations that may use it for relative offsets. - -Mon Sep 20 21:43:25 1999 Alexandre Oliva - - * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Use stabs. - (ASM_SPEC): Moved from sol2dbg.h. Added work-around for gas. - * config/i386/sol2dbg.h: Removed. - * config/i386/sol2gas.h: New file, to enable gas work-around. - * configure.in: Use i386/sol2gas.h on Solaris/x86 --with-gas. - Don't use sol2dbg.h. - * configure: Rebuilt. - -Mon Sep 20 13:29:41 1999 Mark Mitchell - - * invoke.texi (-fthis-is-variable): Remove documentation. - -Mon Sep 20 12:59:16 1999 Richard Henderson - - * basic-block.h (compute_bb_for_insn): Declare. - * flow.c (compute_bb_for_insn): Export. Don't accept the varray - to use; set size of basic_block_for_insn directly. - (find_basic_blocks): Update. - -Mon Sep 20 15:11:54 1999 Kaveh R. Ghazi - - * flow.c (verify_flow_info): Fix typo, "abort;" -> "abort ();". - -Mon Sep 20 14:56:34 1999 Kaveh R. Ghazi - - * crtstuff.c (ON_EXIT): Delete empty macro definition. - (__do_global_ctors_aux): Call atexit(), not ON_EXIT(). - -Mon Sep 20 15:25:35 1999 Nick Clifton - - * c-decl.c (c_decode_option): Extend comment. - -Mon Sep 20 14:43:37 1999 Nick Clifton - - * toplev.c (progname): Make 'const char *' - (flag_print_mem): Move out of main. - (version_flag): Move out of main. - (filename): Move out of main. - (debug_args): Remove g prefix from options. - (documented_lang_options): Remove cpplib specific options. - (display_help): Add g prefix to debug options. - (check_lang_option): Delete this function. - (decode_d_option): New function: Decode -d... option. - (decode_f_option): New function: Decode -f... option. - (decode_W_option): New function: Decode -W... option. - (decode_g_option): New function: Decode -g... option. - (independent_decode_option): New function: Decode a language - independent command line option. - (main): Invoke lang_decode_option and then - independent_decode_option on each command line option in - turn. - -Mon Sep 20 05:41:36 1999 Jeffrey A Law (law@cygnus.com) - - Revert this change. Gavin's patch to operand_equal_p is a better fix. - * fold-const.c (fold_range_test): Do not try to fold the range - test if the rhs or lhs has side effects. - - * basic-block.h (compute_flow_dominators): Declare. - - * gcse.c (alloc_code_hoist_mem): New function. - (free_code_hoist_mem, compute_code_hoist_vbeinout): Likewise. - (compute_code_hoist_data, hoist_expr_reaches_here_p): Likewise. - (hoist_code, one_code_hoisting_pass): Likewise. - (gcse_main): If optimizing for size, then hoist expressions - computed in multiple dominated basic blocks. - - * gcse.c (invalid_nonnull_info): New function. - (delete_null_pointer_checks): Likewise. - * rtl.h (delete_null_pointer_checks): Declare. - * toplev.c (rest_of_compilation): Call delete_null_pointer_checks. - - * flow.c (merge_blocks_move_predecessor_nojumps): New function. - (merge-blocks_move_successor_nojumps): Likewise. - (merge_blocks): Allow merging of some blocks, even if it requires - physical movement of the blocks, but not if it requires new jumps. - - * bitmap.c (debug_bitmap_file): Renmaed from bitmap_debug_file. - Callers and prototype changed. - * bitmap.h: Fix debug_bitmap and debug_bitmap_file prototypes. - -Mon Sep 20 06:56:32 1999 Alexandre Oliva - - * config/sparc/sol2.h (LINK_SPEC): Avoid the duplication of - -YP when both -p and -pg are present. From i386/sol2.h. - -Mon Sep 20 10:49:05 1999 Bernd Schmidt - - * Makefile.in (distclean): Delete tm_p.h. - * configure.in: Create a new file, "tm_p.h", from a list in - "tm_p_file". For ix86 systems, set up "tm_p_file" to include - "i386/i386-protos.h". - - * alias.c: Include "tm_p.h". - * c-typeck.c: Likewise. - * calls.c: Likewise. - * cse.c: Likewise. - * emit-rtl.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * final.c: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * gcse.c: Likewise. - * global.c: Likewise. - * haifa-sched.c: Likewise. - * integrate.c: Likewise. - * jump.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * optabs.c: Likewise. - * recog.c: Likewise. - * reg-stack.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * toplev.c: Likewise. - * tree.c: Likewise. - * unroll.c: Likewise. - * genattrtab.c (main): Make generated file include "tm_p.h". - * genemit.c (main): Likewise. - * genoutput.c (main): Likewise. - * genrecog.c (main): Likewise. - - * i386.h: Delete all prototypes. - * i386.c: Include "tm_p.h". - (ix86_attr_length_default): Call constant_call_address_operand - with correct number of arguments. - * i386-protos.h: New file. - * i386.md (unnamed patterns): Call constant_call_address_operand - with correct number of arguments. - (exception_receiver): Call load_pic_register with correct number - of arguments. - -Sun Sep 19 14:18:39 1999 Richard Henderson - - * c-pragma.c (mark_align_stack): Dereference the void* properly. - -Sun Sep 19 09:03:40 1999 Mark Mitchell - - * rtl.h (insns_safe_to_move_p): New function. - * loop.c (find_and_verify_loops): Use it. - * rtlanal.c (insns_safe_to_move_p): Define it. - -Sun Sep 19 02:54:33 1999 Richard Henderson - - * c-pragma.c: Include ggc.h. - * Makefile.in (c-pragma.o): Update. - -Sat Sep 18 16:01:18 1999 Alexandre Oliva - - * config/i386/sol2.h (CPP_SPEC): Support -[p]threads - (LIB_SPEC): Likewise. - (LINK_SPEC): Do not assert -z text with -shared -mimpure-text. - Reindent -YP/-p/-pg. - Copied from config/sparc/sol2.h. - -Sat Sep 18 11:52:43 1999 Richard Henderson - - * c-pragma.c (mark_align_stack): New. - (init_pragma): New. - * c-pragma.h (init_pragma): Declare it. - * c-lex.c (init_parse): Call it. - -Sat Sep 18 15:20:38 1999 Alexandre Oliva - - * configure.in: Pick up thread library on Solaris/x86 just - like on Solaris/sparc. - * configure: Rebuilt. - -Sat Sep 18 11:15:58 1999 Alex Samuel - - * rtl.h (global_rtx_index): New enum. - (global_rtl): Change to array of rtx. - (pc_rtx, cc0_rtx): Redefine accordingly. - (cc0_rtx, stack_pointer_rtx, frame_pointer_rtx): Likewise. - (hard_frame_pointer_rtx, arg_pointer_rtx): Likewise. - (virtual_incoming_args_rtx, virtual_stack_vars_rtx): Likewise. - (virtual_outgoing_args_rtx, virtual_cfa): Likewise. - (const_int_rtx): Change to array of rtx. - (const0_rtx, const1_rtx, const2_rtx, constm1_rtx): Redefine - accordingly. - * emit-rtl.c (global_rtl): Change to array of rtx. - (const_int_rtx): Change to aray of rtx. - (gen_rtx_CONST_INT): Redefine accordingly. - (init_emit_once): Allocate and initialize global_rtl. Likewise - for const_int_rtx. Add both as GC roots. - * genattrtab.c (global_rtl): Update declaration. - -1999-09-17 Ulrich Drepper - - * Makefile (USER_H): Add iso646.h back. - -Sat Sep 18 01:07:21 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (sched_analyze): Use free_INSN_LIST_list instead of - zapping the LOG_LINKS of sched_before_next_call. - - * pa.h (INSN_SETS_ARE_DELAYED): Delete. - * pa.c (insn_refs_are_delayed): Renamed from - insn_sets_and_refs_are_delayed. - -Fri Sep 17 15:19:01 1999 Mark Mitchell - - * functiion.h (struct function): Add x_whole_function_mode_p. - (retrofit_block): Declare. - * function.c (retrofit_block): New function. - (identify_blocks): Add assertions. Allow an incomplete set of - block notes if we're still generating code for the function. - * integrate.c: Include loop.h. - (expand_inline_function): Call find_loop_tree_blocks to map block - notes to blocks when in whole-function mode. Use retrofit_block - to insert new BLOCKs for the inlined function, rather than - insert_block. - * stmt.c (expand_fixup): Likewise. Don't use pushlevel/polevel. - * Makefile.in (integrate.o): Depend on loop.h. - -Fri Sep 17 15:11:20 1999 Mark Mitchell - - * tree.h (warn_about_unused_variables): Declare. - * stmt.c (warn_about_unused_variables): New function, split out - from ... - (expand_end_bindings): Here. - -Fri Sep 17 15:07:37 1999 Mark Mitchell - - * stmt.c (preserve_subexpressions_p): Don't crash when - current_function->stmt is unset. - -Fri Sep 17 15:03:16 1999 Mark Mitchell - - * stmt.c (expand_start_bindings): Allow callers to pass a flag - indicating that no NOTE_INSN_BLOCK_BEG note is required. - (expand_start_target_temps): Use it. - * except.c (expand_eh_region_start_for_decl): Likewise. - * expr.c (expand_expr): Likewise. - -Fri Sep 17 15:05:27 1999 Gavin Romig-Koch - - * fold-const.c (operand_equal_p): Pay attention to side effects. - -Fri Sep 17 11:14:17 1999 Jason Merrill - - * libgcc2.c (L_exit): Check for ON_EXIT, not HAVE_ON_EXIT. - * sparc/sunos4.h (HAVE_ON_EXIT): Remove. - - * tlink.c (scan_linker_output): Look for keywords before accepting - a mangled name in quotes. - -Thu Sep 16 16:47:08 1999 Richard Henderson - - * alpha/alpha-interix.h (DWARF2_UNWIND_INFO): Define to zero. - * alpha/osf2or3.h (DWARF2_UNWIND_INFO): Likewise. - -Thu Sep 16 16:35:41 1999 Richard Henderson - - * alpha.md: Revert Thu Nov 26 change that came in through the - last gcc2 merge: reinstate (plus (plus ...)) reload patterns. - Avoid earlyclobber when possible. - -Thu Sep 16 18:44:48 1999 Kaveh R. Ghazi - - * libgcc2.c (__do_global_ctors): Call atexit with one arg. - - * sparc/sunos4.h (on_exit): Wrap prototype parameters in PARAMS(). - Define HAVE_ON_EXIT. - -Thu Sep 16 18:06:35 1999 Kaveh R. Ghazi - - * system.h (CTYPE_CONV, TOUPPER, TOLOWER): New macros. Use - CTYPE_CONV in all ctype macros. - - * cccp.c (initialize_char_syntax): Use uppercase ctype macro - from system.h. - - * cexp.y (initialize_random_junk): Likewise. - - * c4x.c (c4x_interrupt_function_p, c4x_handle_pragma): Likewise. - - * i370.c (handle_pragma): Likewise. - - * i370.h (ASM_OUTPUT_LABELREF, ASM_OUTPUT_ASCII): Likewise. - - * v850.c (override_options): Likewise. - - * doprint.c (_doprnt): Likewise. - - * fixinc/fixincl.c (main, quoted_file_exists, extract_quoted_files): - Likewise. - - * fixinc/server.c (load_data): Likewise. - - * fold-const.c (real_hex_to_f): Likewise. - - * genattr.c (write_upcase, gen_attr): Likewise. - - * genattrtab.c (convert_const_symbol_ref, evaluate_eq_attr, - write_upcase): Likewise. - - * genemit.c (print_code): Likewise. - - * genopinit.c (gen_insn): Likewise. - - * genpeep.c (print_code): Likewise. - - * genrecog.c (print_code): Likewise. - - * optabs.c (init_libfuncs): Likewise. - -Thu Sep 16 14:03:32 1999 Mark Mitchell - - * haifa-sched.c (sched_analyze): Keep the list of notes organized - in pairs. - (reemit_notes): Likewise. - -Thu Sep 16 11:50:52 1999 Alex Samuel - - * ggc.h (ggc_root): Move to ggc-common.c. - (roots): Remove. - (ggc_mark_rtx, ggc_mark_tree): Change to macro. - (ggc_mark_rtvec, ggc_mark_tree_varray): Declare extern. - (ggc_mark_tree_hash_table, ggc_mark_string, ggc_mark): Likewise. - (ggc_mark_roots, ggc_mark_rtx_children, ggc_mark_tree_children): New. - * ggc-common.c (ggc_root): Move from ggc.h. - (roots): Declare, static. - (ggc_mark_rtx, ggc_mark_tree): Renamed to... - (ggc_mark_rtx_children, ggc_mark_tree_children): Don't check for - null or check/set mark bit. - (ggc_mark_roots): New. - * ggc-simple.c (ggc_collect): Call ggc_mark_roots. - -Thu Sep 16 11:37:32 1999 Richard Henderson - - * m32r.c: Include toplev.h. - (*): Add ATTRIBUTE_UNUSED as needed to arguments. - (gen_compare): Rename swap_p to must_swap to match uses. - Add default abort case. - (m32r_output_function_epilogue): Remove unused variables. - (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX. - * m32r.h (PROTO, STDIO_PROTO): Rename XPROTO; unconditionally - define to empty parameter list. Update all uses. - (predicate decls): Use enum machine_mode not int. - * m32r.md (movsi): Call abort, not fatal_insn. - (zero_branch_insn, rev_zero_branch_insn): Add default abort case. - -1999-09-14 Andrew Haley - - * config/mips/mips.md (movsi_usw): if operand 1 is const_int 0, - use $0 instead of 0. - -Thu Sep 16 10:53:36 1999 Bernd Schmidt - - * reload1.c (order_regs_for_reload): Move hard_reg_n_uses - computation out of loop over hard regs. - -Wed Sep 15 21:37:06 1999 Mark Mitchell - - * function.c (identify_blocks): Don't shadow a variable in an - outer scope. - * integrate.c (integrate_decl_tree): Don't use pushlevel, - pushdecl, or poplevel to build up the new BLOCK tree. - (expand_inline_function): Likewise. - (integrate_parm_decls): Likewise. - -Wed Sep 15 21:20:38 1999 Mark Mitchell - - * c-typeck.c (qualify_type): Merge qualifiers from both types. - -1999-09-15 Brad Lucier - - * toplev.c: Allow -f[no-]math-errno to set (clear) flag_errno_math - * invoke.texi: Document this change. - -Wed Sep 15 17:56:00 1999 Richard Henderson - - * emit-rtl.c (free_emit_status): Don't check DECL_DEFER_OUTPUT. - Free the struct. - (mark_emit_status): Renamed from mark_emit_state. - * except.c (mark_eh_status): Renamed from mark_eh_state. - Check not null before marking. - (free_eh_status): New. - * expr.c (mark_expr_status, free_expr_status): New. - * function.c (free_machine_status): New. - (free_after_parsing): New. - (free_after_compilation): Move bits to free_after_parsing; call - free_eh_status, free_expr_status; zero the marked members of the - function state. - (prepare_function_start): No can_garbage_collect. - Call init_eh_for_function. - (expand_dummy_function_end): Free up current_function state. - (mark_function_status): Renamed from mark_function_state. - (mark_function_chain): No can_garbage_collect. Call mark_expr_status. - * function.h (struct function): No can_garbage_collect. - (free_machine_status, free_after_parsing): Declare. - (free_eh_status, free_expr_status): Declare. - * ggc.h (mark_expr_status): Declare. - * stmt.c (free_stmt_status): Free the struct. - (mark_stmt_status): Renamed from mark_stmt_state. - (init_stmt): Don't call init_eh. - (init_stmt_for_function): Don't call init_eh_for_function. - * toplev.c (compile_file): Call init_eh. - (rest_of_compilation): Free basic block info before ggc_collect. - Call free_after_parsing; conditionally call free_after_compilation. - * varasm.c (mark_varasm_status): Renamed from mark_varasm_state. - Check not null before marking. - (free_varasm_status): Don't check DECL_DEFER_OUTPUT. Free the struct. - -Wed Sep 15 17:53:16 1999 Richard Henderson - - * c-lex.c (yylex): Initialize warn. - -Wed Sep 15 18:35:38 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (emit_move_sequence): Properly set the mode of the scratch - register when performing secondary reloads for the SAR register. - -Wed Sep 15 15:51:52 1999 Mark Mitchell - - * rtl.h (NOTE_BLOCK_NUMBER): Replace with ... - (NOTE_BLOCK): New macro. - (NOTE_BLOCK_LIVE_RANGE_BLOCK): Remove. - * function.h (identify_blocks): Change prototype. - * function.c (identify_blocks): Simplify. - (reorder_blocks): Likewise. - * ggc-common.c (ggc_mark_rtx): Mark the BLOCK associated with a - NOTE_INSN_BLOCK_{BEG,END}. - * haifa-sched.c (sched_analyze): Don't put NOTE_BLOCK_NUMBER on - the list of saved notes if the note isn't a - NOTE_INSN_BLOCK_{BEG,END}. - (move_insn1): Use NOTE_EH_HANDLER in comment, rather than - NOTE_BLOCK_NUMBER. - (reemit_notes): Adjust recreation of notes to reflect new saved - note structure. - * print-rtl.c (print_rtx): Print the address of the BLOCK when - printing a block note. - * stmt.c (block_vector): Remove. - (find_loop_tree_blocks): Simplify. - (unroll_block_trees): Likewise. - * tree.h (reorder_block): Change prototype. - -Wed Sep 15 14:39:35 1999 Jason Merrill - - * gbl-ctors.h: Lose HAVE_ATEXIT. Don't define ON_EXIT. - * libgcc2.c: Lose obsolete defn of WEAK_ALIAS. - (__bb_init_func, __bb_init_prg): Use atexit instead of ON_EXIT. - (__do_global_dtors): Likewise. Don't mess with _exit_dummy_decl. - (atexit, exit): Simplify. - * tm.texi: Document NEED_ATEXIT and ON_EXIT. Remove HAVE_ATEXIT. - * config/lots: Remove defns of HAVE_ATEXIT. - -Wed Sep 15 10:25:12 1999 Mark Mitchell - - * calls.c (precompute_arguments): Fix typo in comment. - * expr.c (preexpand_calls): Don't preexpand the cleanup in a - TARGET_EXPR. - -Wed Sep 15 09:59:59 1999 Mark Mitchell - - * dsp16xx.c (override_options): Fix typos in GC root registration. - -Wed Sep 15 15:23:28 1999 Philip Blundell - - * config/arm/linux-elf.h (MAKE_DECL_ONE_ONLY): Copy definition - from config/svr4.h. - (UNIQUE_SECTION_P, UNIQUE_SECTION): Likewise. - (FUNCTION_PROFILER): Redefine appropriately for Linux. - (CC1_SPEC): Likewise. - -Wed Sep 15 10:09:48 1999 Kaveh R. Ghazi - - * genattr.c (main): Add extern prototype. Call return, not exit. - * genattrtab.c (main): Likewise. - * gencheck.c (main): Likewise. - * gencodes.c (main): Likewise. - * genconfig.c (main): Likewise. - * genemit.c (main): Likewise. - * genextract.c (main): Likewise. - * genflags.c (main): Likewise. - * gengenrtl.c (main): Likewise. - * genopinit.c (main): Likewise. - * genoutput.c (main): Likewise. - * genpeep.c (main): Likewise. - * genrecog.c (main): Likewise. - - * genattr.c (get_insn_name): Mark parameter with ATTRIBUTE_UNUSED. - * genattrtab.c (get_insn_name): Likewise. - * gencodes.c (get_insn_name): Likewise. - * genconfig.c (get_insn_name): Likewise. - * genemit.c (get_insn_name): Likewise. - * genextract.c (get_insn_name): Likewise. - * genflags.c (get_insn_name): Likewise. - * genopinit.c (get_insn_name): Likewise. - * genpeep.c (get_insn_name): Likewise. - - * gencheck.c (usage): Add static prototype. - * genextract.c (print_path): Constify a char*. - * genopinit.c (optabs): Likewise. - * genoutput.c (operand_data, data, output_predicate_decls, - compare_operands): Likewise. - * genrecog.c (write_tree): Add default case in switch. - -Wed Sep 15 09:59:16 1999 Kaveh R. Ghazi - - * rtl.h (get_insn_name, print_rtl_with_bb): Add prototypes. - - * print-rtl.c (get_insn_name): Remove prototype. - - * toplev.h (progname): Declare const. - - * toplev.c (init_decl_processing, init_obstacks, init_tree_codes, - init_regs, init_optabs, init_stmt, init_reg_sets, dump_flow_info, - dump_sched_info, dump_local_alloc, regset_release_memory, - print_rtl, print_rtl_with_bb, rest_of_decl_compilation, - error_with_file_and_line, error_with_decl, error_for_asm, error, - fatal, warning_with_file_and_line, warning_with_decl, warning, - pedwarn, pedwarn_with_decl, pedwarn_with_file_and_line, sorry): - Remove redundant prototypes. - - (notice, check_lang_option, report_file_and_line, vnotice, - mark_file_stack): Add static prototype. - (set_fatal_function): Add prototype. - (vnotice, report_file_and_line, set_fatal_function, - check_lang_option): Constify a char*. - (main): Prototype. Call return, not exit. - -Wed Sep 15 09:50:18 1999 Kaveh R. Ghazi - - * aclocal.m4 (AC_GCC_C_LONG_DOUBLE): New macro. - - * configure.in (AC_GCC_C_LONG_DOUBLE): Call it. - - * gansidecl.h (HAVE_LONG_DOUBLE): Define if gcc for stage2. - - * ggc-simple.c (HAVE_LONG_DOUBLE): Test before using long double. - -Wed Sep 15 11:04:43 1999 Bernd Schmidt - - * function.c (assign_parms): Delete arg SECOND_TIME. Don't test it, - behave as if it's zero in all cases. - (expand_function_start): Adjust call to assign_parms. - * tree.h (assign_parms): Adjust prototype. - * objc/objc-act.c (hack_method_prototype): Adjust call to - assign_parms. - -Tue Sep 14 21:47:06 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (FIXED_BASE_PLUS_P): Do not consider referneces to - arg_pointer_rtx fixed if the argument pointer register is - not fixed. - (NONZERO_BASE_PLUS_P): Likewise. - -Tue Sep 14 20:26:02 1999 Richard Henderson - - * rtl.def (match_insn, match_insn2): Remove match_insn; rename - match_insn2 to match_insn. - * genrecog.c (add_to_sequence): Rename MATCH_INSN2. - -Tue Sep 14 20:10:29 1999 Richard Henderson - - * Makefile.in (USER_H): Remove va-foo.h. - - * ginclude/{va-alpha.h,va-arc.h,va-c4x.h,va-clipper.h,va-h8300.h, - va-i860.h,va-i960.h,va-m32r.h,va-m88k.h,va-mips.h,va-mn10200.h, - va-mn10300.h,va-pa.h,va-ppc.h,va-pyr.h,va-sh.h,va-sparc.h, - va-spur.h,va-v850.h}: Remove. - -Tue Sep 14 19:43:16 1999 Richard Henderson - - * sparc/sparc.md (eligible_for_return_delay): New attribute. - (in_return_delay): Use it instead of match_insn. - -Tue Sep 14 23:05:37 1999 Alexandre Oliva - - * config/alpha/va_list.h (va-alpha.h): Do not include. - (__gnuc_va_list): Typedef as in varargs.h. - -Tue Sep 14 18:14:03 1999 Richard Henderson - - * ggc-common.c (ggc_mark_tree): Mark DECL_SOURCE_FILE and - DECL_LIVE_RANGE_RTL. - -Tue Sep 14 16:47:08 1999 Mark Mitchell - - * except.c (expand_eh_region_start_for_decl): Use NOTE_EH_HANDLER, - not NOTE_BLOCK_NUMBER. - (expand_eh_region_end): Likewise. - (find_exception_handler_labels): Likewise. - (scan_region): Likewise. - (exception_optimize): Likewise. - (update_rethrow_references): Likewise. - (set_insn_eh_region): Likewise. - * final.c (final_scan_insn): Likewise. - * flow.c (make_edges): Likewise. - * integrate.c (expand_inline_function): Likewise. - * print-rtl.c (print_rtx): Likewise. - -Tue Sep 14 16:30:16 1999 Richard Henderson - - * ginclude/stdarg.h, ginclude/varargs.h: Implement in - terms of builtin functions and types. - - * mips.c (mips_build_va_list): New. - (mips_va_start, mips_va_arg): New. - * mips.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. - - * sh.c (sh_builtin_saveregs): Use get_varargs_alias_set. - (sh_build_va_list, sh_va_start, sh_va_arg): New. - * sh.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START, EXPAND_BUILTIN_VA_ARG): New. - -Tue Sep 14 16:20:24 1999 Richard Henderson - - * recog.h (struct recog_data): Make dup_num, operand_address_p, - n_operands, n_dups, n_alternatives `char' instead of `unsigned char'. - (struct insn_data): Likewise with n_operands, n_dups, - n_alternatives, output_format. - * regclass.c (scan_one_insn): Cast n_operands to int before - arithmetic inside comparison. - -Tue Sep 14 15:13:36 1999 Richard Henderson - - * toplev.c (compile_function): Unconditionally emit nop. - -Tue Sep 14 14:41:47 1999 Kaveh R. Ghazi - - * haifa-sched.c (actual_hazard): Move declaration of variable - `this_cost' into the scope where it is used. - -Tue Sep 14 14:14:28 1999 Kaveh R. Ghazi - - * c-pragma.c (handle_pragma_token): Wrap variables `name' and - `value' in HANDLE_PRAGMA_WEAK. Wrap variable `align' in - HANDLE_PRAGMA_PACK||HANDLE_PRAGMA_PACK_PUSH_POP. - - * genrecog.c (make_insn_sequence): Call memset, not bzero. - - * jump.c (find_insert_position): Don't declare or define unless - !HAVE_conditional_arithmetic. - (returnjump_p_1, delete_prior_computation): Add static prototypes. - - * mips-tdump.c (fatal, fancy_abort, main): Add extern prototypes. - - * recog.c (offsettable_address_p): Prototype function pointer. - (preprocess_constraints): Call memset, not bzero. - - * tree.c (tree_node_kind_names): Constify a char*. Make static. - (gcc_obstack_init): Don't declare. - (fix_sizetype): Add static prototype. - (gcc_obstack_init): Use prototype casts in call to _obstack_begin. - (tree_cons): Call memset, not bzero. - - * varasm.c (remove_from_pending_weak_list): Wrap declaration and - definition in macro ASM_WEAKEN_LABEL. - (mark_const_hash_entry): Add static prototype. - -Tue Sep 14 12:22:50 1999 Kaveh R. Ghazi - - * c-lex.c (handle_generic_pragma): Remove unused variable `c'. - - * unroll.c (find_common_reg_term, subtract_reg_term, - loop_find_equiv_value): Add static prototypes. - (unroll_loop): Wrap variable `prev' in macro HAVE_cc0. - (copy_loop_body): Remove unreachable break statement. - - * sparc.c (sparc_va_arg): Remove unused variable `tmp'. - - * sparc.h (sparc_va_start, sparc_va_arg): Add extern prototypes. - -Tue Sep 14 15:28:00 1999 Bernd Schmidt - - Undo some changes from the gcc2 merge: - * rtl.def (CONSTANT_P_RTX): Fix the comment for this rtx code. - * emit-rtl.c (gen_rtx_REG): Don't test special reg rtx's for null - pointers. - - Undo this change: - Sat Oct 3 07:20:28 1998 Stephen L Moshier - * emit-rtl.c (gen_lowpart_common): Disable optimization of - initialized float-int union if the value is a NaN. - -Tue Sep 14 04:03:44 1999 Mumit Khan - - * gthr-win32.h: New file. - - * i386/winnt.c (i386_pe_valid_decl_attribute_p): Recognize - shared as a valid attribute. - * i386/cygwin.h (ASM_OUTPUT_SECTION): Handle shared attribute. - * extend.texi: Document `shared' variable attribute. - -Tue Sep 14 04:01:46 1999 Loren Rittle - - * configure.in: Handle --enable-threads on FreeBSD. - * configure: Rebuit. - -Tue Sep 14 03:58:44 1999 Andreas Jaeger - - * configure.in: Add crtbeginS.o, crtendS.o for mips-linux; add - thread support. - * configure: Rebuilt. - -Tue Sep 14 03:47:23 1999 Joel Sherrill - Charles-Antoine Gauthier - Rosimildo DaSilva - - * configure.in (m68k-*-rtemscoff*): Added. - * configure.in (mips64orion-*-rtems*): Converted to ELF. - * configure.in (sparc-*-rtemsaout*): Added as alias for old - sparc-rtems configuration. - * configure.in (sparc-*-rtemself*): Added. - * configure.in (sparc-*-rtems*): Now ELF not a.out. - * config/i386/rtems.h: Added comment. - * config/sparc/rtemself.h: New file. - - * configure.in (m68k-rtemself): Added. - * config/elfos.h: Added ifndef wrapper for DWARF2_DEBUGGING_INFO - and DWARF_DEBUGGING_INFO. - * config/m68k/crti.s: New file. - * config/m68k/crtn.s: New file. - * config/m68k/t-crtstuff: New file. - * config/m68k/rtemself.h: New file. - - * configure.in (i[[34567]]86-*-rtemself*): Now uses crtstuff for - global ctor/dtor and C++ exception handling. - * config/i386/rtemself.h: Now uses crtstuff (crti.o + crtbegin.o) - for STARTFILE_SPEC and crtstuff (crtend.o + crtn.o) for - ENDFILE_SPEC. - * config/i386/t-rtems-i386: New File. - -Tue Sep 14 09:47:41 1999 Andreas Schwab - - * stmt.c (expand_end_case): Return right away if the case stack is - empty. - -Tue Sep 14 01:47:19 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (version.c): Remove rule incorrectly brought in from - the gcc2 merge. - -Tue Sep 14 01:42:27 1999 Marc Espie - - * Makefile.in: Prepend $(SHELL) to move-if-change calls. - * msdos/top.sed: Take into account a prepended $(SHELL) to - move-if-change. - * winnt/config-nt.sed: Likewise. Kill bogus substitution. - - * objc/Make-lang.in: Prepend $(SHELL) to move-if-change calls. - -Tue Sep 14 01:38:52 1999 J"orn Rennecke - - * regmove.c (fixup_match_1): Don't change an unchanging register. - (stable_but_for_p): Renamed to: - (stable_and_no_regs_but_for_p). Reject unchanging registers too. - Changed all callers. - -Tue Sep 14 01:33:15 1999 Andreas Schwab - - * loop.c (strength_reduce): Don't call reg_used_between_p if the - insn from BL2 is after the insn from BL. - -Mon Sep 13 21:06:01 1999 Richard Henderson - - * recog.h (INSN_OUTPUT_FORMAT_*): New. - (struct insn_data): Merge `template' and `outfun' into `output'. - Add `output_format'. - * genoutput.c (INSN_OUTPUT_FORMAT_*): New. - (struct data): Remove `outfun'; add `output_format'. - (name_for_index): Remove declaration. - (output_insn_data): Handle output formats. - (process_template): Emit the bare array for @. - (gen_expand, gen_split): Set output_format to NONE. - * output.h (get_insn_template): Declare. - * final.c (get_insn_template): New. - (final_scan_insn): Use it. - * toplev.c (compile_file): Likewise. - - * c4x/c4x.c (c4x_process_after_reload): Likewise. - * i860/i860.c (output_delayed_branch): Likewise. - (output_delay_insn): Likewise. - -1999-09-13 Alexandre Oliva - - * rtl.c (obstack_alloc_rtx): Removed. - -1999-09-13 17:03 -0700 Zack Weinberg - - * config/gmicro/gmicro.md: Disable move DF->DI anonymous pattern. - -Mon Sep 13 15:21:46 1999 Richard Henderson - - * i386.c (call_insn_operand): Reject const_int. - (expander_call_insn_operand): Use call_insn_operand. - -Mon Sep 13 17:44:28 1999 Kaveh R. Ghazi - - * gcc.c (getrusage): Wrap prototype arguments in PROTO(). - -1999-09-13 12:18 -0700 Zack Weinberg - - * config/i370/i370.md (mulsi, divsi, modsi anonymous insns): - Use DImode operation. - -1999-09-13 12:13 -0700 Zack Weinberg - - * gcc.c: Include sys/resource.h. - (report_times): New flag. - (execute): If report_times is set, calculate and report the - CPU time consumed by each subprocess. - - (rus, prus): New globals. - (option_map): Add --time. - (display_help): Document -time. - (process_command): Set report_times if -time is given. - Turn off -pipe if -time is given. - - * invoke.texi: Document new option -time. - - * configure.in: Check for getrusage. Check if we have to - prototype getrusage. - * acconfig.h: Add NEED_DECLARATION_GETRUSAGE. - * configure: Regenerate. - * config.in: Regenerate. - -Mon Sep 13 12:57:06 1999 Dave Brolley - - * cppinit.c (append_include_chain): Initialize 'next' and 'alloc' - fields. - -Mon Sep 13 10:01:33 1999 Nick Clifton - - * config/fp-bit.c: Define L_thenan_sf or L_thenan_df (as - appropriate) if FINE_GRAINED_LIBRARIES is not defined. - (nan): Return _thenan_sf or _thenan_df as appropriate. - (L_thenan_sf): Define _thenan_sf. - (L_thenan_df): Define _thenan_df. - - * Makefile.in (FPBIT_FUNCS): Add _thenan_sf. - (DPBIT_FUNCS): Add _thenan_df. - -Mon Sep 13 09:38:53 1999 Andreas Schwab - - * tree.c (fix_sizetype): Exchange the types for TYPE_SIZE and - TYPE_SIZE_UNIT. - -Sun Sep 12 23:28:20 1999 Kaveh R. Ghazi - - * Makefile.in (gcc.o, gccspec.o, cppspec.o): Depend on gcc.h. - - * gcc.h: New file. - (lang_specific_driver): Don't take a function pointer parameter. - All callers changed. - - * gcc.c: Include gcc.h. - (do_spec, fancy_abort,lang_specific_driver,lang_specific_pre_link, - lang_specific_extra_outfiles, fatal): Don't declare. - (multilib_defaults_raw): Constify. - (read_specs): Call memset, rather than bzero. - (main): Call return, not exit. - (lookup_compiler): Call memcpy, not bcopy. - (fatal): Make extern. - - * cppspec.c: Include gcc.h. - (lang_specific_driver): Initialize variable `quote'. Constify a - char*. All calls to the function pointer parameter now - explicitly call `fatal'. - - * gccspec.c (lang_specific_driver): Include gcc.h. - -Sun Sep 12 19:52:10 1999 Richard Earnshaw - - * arm.c (note_invalid_constants): Use recog_data.operand_type - for recog_op_type. - -Sun Sep 12 15:53:20 1999 Bernd Schmidt - - * tree.h (build_common_tree_nodes, build_common_tree_nodes_2): - Declare. - - * reload.h (reload_in, reload_out, reload_in_reg, reload_out_reg, - reload_reg_class, reload_inmode, reload_outmode, reload_optional, - reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, - reload_secondary_in_reload, reload_secondary_out_reload, - reload_secondary_in_icode, reload_secondary_out_icode, - reload_reg_rtx, reload_when_needed): Delete declarations. - (struct reload): New structure. - (rld): Declare new array. - * reload.c (reload_in, reload_out, reload_in_reg, reload_out_reg, - reload_reg_class, reload_inmode, reload_outmode, reload_optional, - reload_nongroup, reload_inc, reload_opnum, reload_secondary_p, - reload_secondary_in_reload, reload_secondary_out_reload, - reload_secondary_in_icode, reload_secondary_out_icode, - reload_reg_rtx, reload_when_needed): Delete definitions. - (rld): New array. - (whole file): Replace uses of the deleted arrays with uses of rld. - * reload1.c (whole file): Replace uses of the deleted arrays with - uses of rld. - (choose_reload_regs): Copy in/out of save_reload_reg_rtx with - explicit loops, not with bcopy. - -Sun Sep 12 05:00:24 1999 Richard Henderson - - * recog.h (insn_template, insn_outfun, insn_n_operands, insn_n_dups, - insn_n_alternatives, insn_operand_constraint, insn_operand_address_p, - insn_operand_mode, insn_operand_strict_low, insn_operand_predicate, - insn_name): Delete and consolidate into new structures. - (insn_operand_predicate_fn): New. - (insn_output_fn): New. - (insn_gen_fn): New. - (struct insn_operand_data): New. - (struct insn_data): New. - (insn_data): New. - (OUT_FCN): Update for insn_data change. - * builtins.c (expand_builtin_strlen): Likewise. - (expand_builtin_memcmp): Likewise. - * combine.c (make_extraction, simplify_comparison): Likewise. - * cse.c (canon_reg, cse_insn): Likewise. - * explow.c (allocate_dynamic_stack_space, probe_stack_range): Likewise. - * expmed.c (store_bit_field, extract_bit_field): Likewise. - (emit_store_flag): Likewise. - * expr.c (convert_move, emit_block_move): Likewise. - (clear_storage, emit_push_insn, expand_increment): Likewise. - (do_store_flag): Likewise. - * expr.h (GEN_FCN): Likewise. - (insn_gen_function): Die. - * final.c (final_scan_insn): Update for insn_data change. - (output_asm_name): Likewise. - * function.c (fixup_var_refs_1): Likewise. - * loop.c (check_dbra_loop): Likewise. - * optabs.c (expand_binop, expand_twoval_binop): Likewise. - (expand_unop, expand_complex_abs, emit_unop_insn): Likewise. - (prepare_cmp_insn, prepare_operand, emit_indirect_jump): Likewise. - (emit_conditional_move, gen_add2_insn, gen_sub2_insn): Likewise. - * recog.c (validate_replace_rtx_1, extract_insn): Likewise. - * regmove.c (gen_add3_insn): Likewise. - * reload.c (push_secondary_reload, combine_reloads): Likewise. - (find_reloads, find_reloads_address_1): Likewise. - (debug_reload_to_stream): Likewise. - * reload1.c (emit_reload_insns, gen_reload): Likewise. - * stmt.c (expand_end_case): Likewise. - * toplev.c (compile_file): Likewise. - - * c4x/c4x.c (c4x_process_after_reload): Likewise. - * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. - - * print-rtl.c (insn_name_ptr): Remove declaration. - (get_insn_name): Declare. - (print_rtx): Use it. - * genoutput.c (insn_name_ptr): Remove. - (next_operand_number): New. - (struct operand_data): New. - (null_operand, odata, odata_end): New. - (struct data): Use struct operand_data. - (idata, idata_end): Renamed from insn_data and end_of_insn_data. - (get_insn_name): Renamed from name_for_index. - (output_prologue): Define NO_MD_PROTOTYPES. - (output_predicate_decls): Break out from output_epilogue. - Iterate over the operands list. - (output_operand_data): Break out from output_epilogue. Emit - just the operands list. - (output_insn_data): Break out from output_epilogue. Emit just - the insn data. - (output_epilogue): Remove. - (output_get_insn_name): New. - (constraints, op_n_alternatives, predicates, address_p): Die. - (modes, strict_low, seen): Die. - (scan_operands): Take new param `d' instead of writing to - seven global variables. - (compare_operands): New. - (place_operands): New. - (validate_insn_alternatives): Update for struct data change. - (gen_insn): Don't zero or copy 7 global arrays. Update for - scan_operands; call place_operands. - (gen_peephole, gen_expand, gen_split): Likewise. - (main): Update for new output routines. - - * genattr.c (insn_name_ptr): Remove. - (get_insn_name): New function. - * genattrtab.c, gencodes.c, genconfig.c, genemit.c: Likewise. - * genextract.c, genflags.c, genopinit.c, genpeep.c: Likewise. - * genrecog.c: Likewise. - - * alpha.md (adddi3): Make `pattern' array static. - -Sun Sep 12 22:05:21 1999 Michael Hayes - - * config/c4x/c4x.h (c4x_rpts_cycles_string, - c4x_cpu_version_string): Constify char *. - * config/c4x/c4x.c (c4x_rpts_cycles_string, - c4x_cpu_version_string): Likewise. - -Sat Sep 11 23:28:33 1999 Richard Henderson - - * tree.c (save_tree_status): Revert 10 Sep change. - (restore_tree_status): Likewise. Call obstack_free with NULL - before freeing the obstack proper. - -Sat Sep 11 23:23:46 1999 Richard Henderson - - * cse.c (cse_main): If gc'ing, collect around cse_basic_block. - - * ggc-simple.c (ggc_pop_context): Fold outstanding bytes into - surrounding context. - -Sat Sep 11 19:52:43 1999 Mark Mitchell - - * tree.c (type_hash_canon): Put all types in the hash-table, when - GC'ing. - -Sat Sep 11 18:37:04 1999 Richard Henderson - - * recog.h (struct recog_data, recog_data): New. - (recog_foo variables): Kill. - * recog.c (recog_operand, recog_operand_loc): Kill. - (recog_dup_loc, recog_dup_num, recog_n_operands): Kill. - (recog_n_dups, recog_n_alternatives, recog_operand_mode): Kill. - (recog_constraints, recog_op_type, recog_operand_address_p): Kill. - (recog_data): Define. - (extract_insn): Update all recog_foo references to use recog_data. - (preprocess_constraints, constrain_operands): Likewise. - * final.c (final_scan_insn, cleanup_subreg_operands): Likewise. - * genattrtab.c (main): Likewise. - * genextract.c (main): Likewise. - * genoutput.c: Likewise. - * genrecog.c (write_subroutine, main): Likewise. - * local-alloc.c (block_alloc): Likewise. - * reg-stack.c (record_asm_reg_life, subst_asm_stack_regs): Likewise. - * regclass.c (scan_one_insn, record_reg_classes): Likewise. - * regmove.c (regmove_optimize, find_matches, fixup_match_1): Likewise. - * reload.c (find_reloads, find_reloads_toplev): Likewise. - * reload1.c (maybe_fix_stack_asms, eliminate_regs_in_insn): Likewise. - (reload_cse_simplify_operands): Likewise. - - * arc/arc.c (arc_final_prescan_insn): Likewise. - * arm/arm.c (note_invalid_constants, arm_final_prescan_insn): Likewise. - * h8300/h8300.c (notice_update_cc): Likewise. - * i386/i386.c (ix86_attr_length_default, ix86_agi_dependant): Likewise. - * i860/i860.c (output_delayed_branch, output_delay_insn): Likewise. - * mn10200/mn10200.c (notice_update_cc): Likewise. - * mn10300/mn10300.c (notice_update_cc): Likewise. - * romp/romp.c (update_cc): Likewise. - * sparc/sparc.c (check_pic): Likewise. - * v850/v850.c (notice_update_cc): Likewise. - - * genemit.c (main): Don't declare recog_operand. - -Sat Sep 11 12:41:55 1999 Alex Samuel - - * ggc.h (rtvec_def): Forward declare. - (tree_node): Likewise. - (ggc_root): Define. - (roots): Declare. - (ggc_set_mark_rtx): Add prototype. - (ggc_set_mark_rtvec): Likewise. - (ggc_set_mark_tree): Likewise. - * ggc-simple.c (ggc_root): Don't define. - (roots): Don't declare. - (ggc_mark_rtx): Remove. - (ggc_mark_rtvec): Likewise. - (ggc_mark_tree): Likewise. - (ggc_mark_varray): Likewise. - (ggc_mark_tree_hash_table_entry): Likewise. - (ggc_mark_tree_hash_table): Likewise. - (ggc_set_mart_rtx): New function. - (ggc_set_mark_rtvec): Likewise. - (ggc_set_mark_tree): Likewise. - (ggc_add_root): Remove. - (ggc_add_rtx_root): Likewise. - (ggc_remove_tree_root): Likewise. - (ggc_add_string_root): Likewise. - (ggc_add_tree_varray_root): Likewise. - (ggc_add_tree_hash_table_root): Likewise. - (ggc_del_root): Likewise. - (ggc_mark_rtx_ptr): Likewise. - (ggc_mark_tree_ptr): Likewise. - (ggc_mark_string_ptr): Likewise. - (ggc_mark_tree_varray_ptr): Likewise. - (ggc_mark_tree_hash_table_ptr): Likewise. - * ggc-common.c: New file. - * Makefile.in (OBJS): Add ggc-common.o. - (ggc-common.o): List dependencies. - -1999-09-10 22:37 -0700 Zack Weinberg - - * cppalloc.c (xstrdup): Use memcpy. - * cpperror.c (cpp_print_containing_files): Don't use - cpp_notice. - * cpplib.c (conditional_skip): Set temp->lineno. - (do_endif): Make error message less obscure. - (if_directive_name): New function. - (cpp_get_token [case EOF]): Unwind the if stack and generate - error messages for each unterminated conditional in this file. - (parse_string): Do not behave differently if -traditional. - -Fri Sep 10 14:04:07 1999 Richard Henderson - - * builtins.c (expand_builtin_va_arg): Cope with an array-type - va_list decomposing to pointer-type. - * rs6000.c (rs6000_va_start) Unwrap the ARRAY_TYPE to get at fields. - (rs6000_va_arg): Likewise. - -Fri Sep 10 13:21:21 1999 Jim Wilson - - * except.c (start_dynamic_handler): Compute size using - STACK_SAVEAREA_MODE. - -Fri Sep 10 16:01:23 1999 Kaveh R. Ghazi - - * protoize.c: Remove various __STDC__ and POSIX hacks. Don't - include directory headers. Don't define strrchr. Don't provide - my_* replacement functions. Prefer PTR over `pointer_type'. - Don't prototype system functions. Don't redefine getopt. - - (shortpath, fancy_abort, notice, savestring, dupnstr, substr, - safe_read, safe_write, save_pointers, restore_pointers, - is_id_char, in_system_include_dir, directory_specified_p, - file_excluded_p, unexpand_if_needed, abspath, check_aux_info, - find_corresponding_lparen, referenced_file_is_newer, - save_def_or_dec, munge_compile_params, gen_aux_info_file, - process_aux_info_file, identify_lineno, check_source, - seek_to_line, forward_to_next_token_char, output_bytes, - output_string, output_up_to, other_variable_style_function, - find_rightmost_formals_list, do_cleaning, careful_find_l_paren, - do_processing, is_syscalls_file, rename_c_file, find_extern_def, - find_static_definition, connect_defs_and_decs, add_local_decl, - add_global_decls, needs_to_be_converted, visit_each_hash_node, - add_symbol, lookup, free_def_dec, find_file, reverse_def_dec_list, - edit_fn_declaration, edit_formals_lists, edit_fn_definition, - scan_for_missed_items, edit_file, string_list_cons): Add static - prototypes. - (standard_exec_prefix, target_machine, target_version, - default_syscalls_dir, string_list, string_list_cons, find_file, - do_cleaning): Constify a char*. - (safe_read, safe_write): Use PTR, not a char*. - (is_id_char): Take an int, not a char. - (main): Add prototype. Call return, not exit. - -Fri Sep 10 16:48:26 1999 Andrew Haley - - * tree.c (type_hash_lookup): Check for equal TYPE_ALIGN fields - when comparing types. - -Fri Sep 10 08:43:32 1999 Richard Henderson - - * loop.c (basic_induction_var): Typo NULL_RTX -> NULL. - (strength_reduce): Release the varrays from the no-bivs early exit. - - * reload1.c (order_regs_for_reload): Init hard_reg_n_uses before - the loop over the registers. - - * tree.c (save_tree_status): Set maybepermanent_firstobj NULL - for a new obstack. - (restore_tree_status): Check that instead when freeing the obstack. - -Wed Sep 8 16:12:04 1999 Andrew Haley - - * alias.c (rtx_equal_for_memref_p): Allow CONST_DOUBLEs to be used - as pointers. - -Fri Sep 10 11:58:55 1999 Bernd Schmidt - - * i386.md (ashlqi3): For NON_QI_REG_P regs, use sall. Fix some - operand size modifiers. - -Fri Sep 10 10:32:32 1999 Bernd Schmidt - - * c-common.c (c_common_nodes_and_builtins): Don't build - va_list_type_node. - * c-common.h (enum c_tree_index and related accesor macros): Remove - everything now declared in tree.h. - * c-decl.c (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, - LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, WCHAR_UNSIGNED, FLOAT_TYPE_SIZE, - DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Don't provide defaults. - (error_mark_node, void_type_node, char_type_node, integer_type_node, - unsigned_type_node, ptr_type_node, va_list_type_node, - integer_zero_node, null_pointer_node, integer_one_node): Delete. - (init_decl_processing): Call build_common_tree_nodes and - build_common_tree_nodes_2 instead of building their nodes here. - Don't add roots for these nodes. - * stor-layout.c (size_zero_node, size_one_node): Delete. - (set_sizetype): Make a new node for bitsizetype each time. - * tree.c (global_trees): New variable. - (init_obstacks): Add a gc root for it. - (CHAR_TYPE_SIZE, SHORT_TYPE_SIZE, INT_TYPE_SIZE, - LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE, FLOAT_TYPE_SIZE, - DOUBLE_TYPE_SIZE, LONG_DOUBLE_TYPE_SIZE): Provide defaults. - (build_common_tree_nodes): New function. - (fix_sizetype): New function. - (build_common_tree_nodes_2): New function. - * tree.h (enum tree_index): New. - (global_trees): Declare. - Add accessor macros for all nodes now moved to global_trees. - Delete their declarations. - -Thu Sep 9 20:15:46 1999 Richard Henderson - - * c-decl.c (finish_function): When processing a nested function, - push and pop GC context around rest_of_compilation. - -Thu Sep 9 16:42:06 1999 Richard Henderson - - * i386.c (override_options): Remove ppro, pentium2, and p2 as aliases. - Default ix86_arch to PROCESSOR_I386. - * i386.h (CC1_CPU_SPEC): Don't add -march=foo. Remove -mno-foo. - (CPP_486_SPEC, CPP_586_SPEC, CPP_686_SPEC): Delete. - (CPP_CPU_DEFAULT_SPEC): Define to __tune_foo__. - (CC1_CPU_SPEC): Make -march=foo define __foo__, and provide - __tune_foo__ if no -mcpu. Make -mcpu=bar define __tune_bar__. - (EXTRA_SPECS): Remove deleted specs. - -Thu Sep 9 16:03:06 1999 Richard Henderson - - * function.c (assign_stack_local_1): Allocate from - function->x_frame_offset, not frame_offset. - -Thu Sep 9 14:36:31 1999 Mark Mitchell - - * ggc.h (lang_cleanup_tree): Remove. - * gcc-simple.c (ggc_free_tree): Don't call lang_cleanup_tree. - * ggc-callbacks.c (lang_cleanup_tree): Remove. - - * c-decl.c (finish_struct): Use ggc_alloc to allocate - TYPE_LANG_SPECIFIC when garbage collecting. - (lang_mark_tree): Mark TYPE_LANG_SPECIFIC. - (lang_cleanup_tree): Remove. - -Thu Sep 9 14:23:02 1999 Jason Merrill - - * defaults.h (EH_FRAME_SECTION, EH_FRAME_SECTION_ASM_OP): Define here. - * crtstuff.c: Not here. - * dwarf2out.c: Or here. - * libgcc2.c (__do_global_ctors, __do_global_dtors): Handle EH frame - info. - -Thu Sep 9 09:40:58 1999 Mark Mitchell - - * function.h (free_after_compilation): Remove decl parameter. - (free_varasm_status0: Likewise. - (free_emit_status): Likewise. - (free_stmt_status): Likewise. - (free_after_compilation): Likewise. - (init_lang_status): New variable. - (free_lang_status): Likewise. - * emit-rtl.c (free_emit_status): Make decl parameter implicit. - * function.c (init_lang_status): New variable. - (free_lang_status): Likewise. - (push_function_context_to): Don't set function::decl here. - (free_after_copmilation): Make decl parameter implicit. Call - free_lang_status if defined. - (prepare_function_start): Call init_lang_status if defined. - (init_function_start): Set function::decl here. - * profile.c (output_func_start_profiler): Don't call pushdecl - until we've actually started the function. - * stmt.c (free_stmt_status): Make decl parameter implicit. - * toplev.c (rest_of_compilation): Don't pass decl to - free_after_compilation. - * varasm.c (free_varasm_status): Likewise. - -Thu Sep 9 17:23:19 1999 Bernd Schmidt - - * except.c (call_get_eh_context): Add root when allocating static - tree variable. - -Thu Sep 9 15:24:59 BST 1999 Richard Earnshaw - - * arm.c: Include "ggc.h". - (arm_add_gc_roots): New function. - (arm_override_options): Call it. - (aof_pic_entry): Add a GC root for aof_pic_label when it's allocated. - - * arm.md (define_asm_attributes): Add a pool_range attribute. - -Thu Sep 9 12:32:57 BST 1999 Nathan Sidwell - - * extend.texi (Volatiles): New node. - -Thu Sep 9 03:37:31 1999 Richard Henderson - - * ggc-simple.c (IS_MARKED, IGNORE_MARK): New. - (GGC_ANY_MAGIC, GGC_ANY_MAGIC_MARK): New. - (struct ggc_any): Replace `mark' with `magic_mark'. - (ggc_alloc_string): Use memcpy, not bcopy. - (ggc_alloc_any): Set magic_mark. Update bytes_alloced_since_gc. - (ggc_free_{rtx,rtvec,tree,string}): Mark inline. - (ggc_free_any): New. - (ggc_mark_string): Use IGNORE_MARK. Calc back to struct gcc_string. - (ggc_mark): Use IGNORE_MARK. Abort if magic doesn't match. - (ggc_collect): Re-enable collection avoidance. Use GGC_ANY_MARK. - Use IS_MARKED. Use ggc_free_any. - -1999-09-09 Scott Bambrough - - * config/arm/linux-elf.h: define NO_IMPLICIT_EXTERN_C - -Thu Sep 9 01:55:21 1999 Richard Henderson - - * toplev.c (main): Always init_ggc. - -Wed Sep 8 23:53:22 1999 Richard Henderson - - * except.c (find_all_handler_type_matches): Free the list if - we found no matches. - - * combine.c (SUBST): Break out to a real function do_SUBST. - (SUBST_INT): Likewise. - * gcse.c (free_pre_mem): Free `temp_bitmap'. - (pre_insert): Free `inserted'. - * loop.c (basic_induction_var): Always set `location'. - - * function.c (expand_function_end): Add initial_trampoline as a root. - * rtl.h (init_varasm_once): Declare. - * toplev.c (compile_file): Call it. - * ggc-simple.c (ggc_mark_string_ptr): New. - (ggc_add_string_root): New. - (ggc_collect): Disable collection avoidance temporarily. - * ggc.h (ggc_add_string_root): Declare. - * except.c (create_rethrow_ref): Use ggc_alloc_string. - * optabs.c (init_libfuncs): Likewise. - * varasm.c (named_section): Use ggc_alloc_string. - (make_function_rtl): Likewise. - (make_decl_rtl): Likewise. - (assemble_static_space): Likewise. - (assemble_trampoline_template): Likewise. - (output_constant_def): Likewise. - (force_const_mem): Likewise. - (mark_const_hash_entry): New. - (mark_pool_sym_hash_table): New. - (mark_varasm_state): Use it. - (init_varasm_once): New. - - * expr.h (init_one_libfunc): Declare. - * optabs.c (init_one_libfunc): New. - (init_optabs): Use it. - * config/gofast.h: Likewise. - * config/sparc/sol2.h (INIT_SUBTARGET_OPTABS): Likewise. - * config/sparc/sparc.h (INIT_TARGET_OPTABS): Likewise. - -Thu Sep 9 13:46:06 1999 Geoffrey Keating - - * Makefile.in (cppexp.o): Depend on cpphash.h. - * cppexp.c (cpp_lex): Handle `defined (xxx)' for poisoned xxx. - Include cpphash.h. - * cpphash.c (special_symbol): Handle plain `xxx' for poisoned xxx. - * cpplib.c (do_define): Generalize to handle poisoned definitions, - redefining poisoned identifiers, etc. - (do_undef): Don't allow poisoned identifiers to be undefined. - (do_pragma): Add #pragma poison. - (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. - - * cccp.c: Add T_POISON node type. - (special_symbol): Handle `defined(xxx)' and plain `xxx' for - poisoned xxx. - (do_define): Generalize to handle poisoned definitions, - redefining poisoned identifiers, etc. - (do_undef): Don't allow poisoned identifiers to be undefined. - (do_pragma): Add #pragma poison. - (do_xifdef): Handle `#ifdef xxx' for poisoned xxx. - - * c-pragma.c (handle_pragma_token): Ignore #pragma poison. - * c-pragma.h: Add ps_poison state. We now always have generic - pragmas. - -Wed Sep 8 20:30:42 1999 Mark Mitchell - - * ggc.h (ggc_alloc): New function. - (ggc_mark): Likewise. - * ggc-simple.c (ggc_any): New structure. - (ggc_status): Add anys. - (n_anys_collected): New variable. - (ggc_alloc): Define. - (ggc_mark): Likewise. - (ggc_collect): Collect the anys. - -Wed Sep 8 20:15:14 1999 Kaveh R. Ghazi - - * c-decl.c (mark_binding_level): Make static to match prototype. - -Wed Sep 8 16:41:27 1999 Richard Henderson - - * flow.c (new_insn_dead_notes): Don't early out for preexisting regs. - -Wed Sep 8 16:07:52 1999 Richard Henderson - - * gengenrtl.c (CONST_DOUBLE_FORMAT): Take the size REAL_ARITHMETIC - will use into account. Expand the max width to 5. - * rtl.c: Likewise. - -Wed Sep 8 16:01:14 1999 Richard Henderson - - * ggc-simple.c (ggc_free_rtx): Poison the correct amount - for the rtx length. - -Wed Sep 8 15:23:54 1999 Richard Henderson - - * alpha.md (call value patterns): Remove the result predicates. - -Wed Sep 8 13:35:38 1999 Richard Henderson - - * Makefile.in (stmp-fixinc): Remove extraneous exit 1 from - last change. - -Wed Sep 8 15:32:16 1999 Kaveh R. Ghazi - - * system.h (sbrk, malloc, calloc, realloc): Backup prototypes - changed from extern char *, to extern PTR. Also fix typo in - NEED_DECLARATION_REALLOC test. - - * mips-tdump.c (malloc, calloc, realloc): Don't prototype. - -Wed Sep 8 11:40:47 1999 Kaveh R. Ghazi - - * gansidecl.h (__attribute__, ATTRIBUTE_UNUSED_LABEL, - ATTRIBUTE_UNUSED, ATTRIBUTE_NORETURN, ATTRIBUTE_PRINTF, - ATTRIBUTE_PRINTF_1, ATTRIBUTE_PRINTF_2, ATTRIBUTE_PRINTF_3, - ATTRIBUTE_PRINTF_4, ATTRIBUTE_PRINTF_5, GENERIC_PTR): Delete. - - * c-decl.c (field_decl_cmp): Use PTR instead of GENERIC_PTR. - - * cccp.c (pcfinclude): Likewise. - - * global.c (allocno_compare): Likewise. - - * haifa-sched.c (rank_for_schedule): Likewise. - - * local-alloc.c (qty_sugg_compare_1, qty_compare_1): Likewise. - - * reload1.c (hard_reg_use_compare, reload_reg_class_lower): Likewise. - - * stupid.c (stupid_reg_compare): Likewise. - - * tree.c (_obstack_allocated_p): Likewise. - - * varray.h (varray_data_tag, VARRAY_GENERIC_PTR_INIT): Likewise. - -1999-09-08 Bruce Korb autogen@linuxbox.com - - * Makefile.in: Give the hapless gperf user a hint about - why "gperf -F" fails. - -Wed Sep 8 04:43:22 1999 Richard Henderson - - * lists.c: Include ggc.h. - (zap_lists): New. - (init_EXPR_INSN_LIST_cache): Install it. - - * ggc-simple.c (init_ggc): Absorb the old init. - (ggc_push_context): Use xcalloc. - (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Likewise. - (ggc_collect): Add [rvts] tags to the collection stats. - -Wed Sep 8 11:14:25 1999 Andreas Schwab - - * cccp.c (main): Fix handling of -include and -imacros options. - -Wed Sep 8 02:23:08 1999 Jeffrey A Law (law@cygnus.com) - - * cpplib.c (cpp_push_buffer): Fix order of arguments. - -Wed Sep 8 04:44:09 1999 Alexandre Oliva - - * rtl.h (obstack_alloc_rtx): Removed, it's now static in - genrtl.c. - -Wed Sep 8 00:33:43 1999 Alasdair Baird - - * flow.c (insn_dead_p): Use XEXP rather than SUBREG_REG. - * haifa-sched.c (sched_analyze_1): Use XEXP rather than SUBREG_REG - and SET_DEST. Update comment. - -Wed Sep 8 18:55:17 1999 Michael Hayes - - * config/c4x/c4x.c: Include ggc.h. - (c4x_add_gc_roots): New function. - (c4x_override_options): Call c4x_add_gc_roots. - -Wed Sep 8 00:00:16 1999 Richard Henderson - - * defaults.h (TARGET_ESC): Move ... - * system.h: ... here, where Linas had it in the first place. Silly me. - -Tue Sep 7 23:46:35 1999 Linas Vepstas - - * c-common.c: Use ISGRAPH, ISLOWER, toupper. - * c-lex.c, cccp.c, cexp.c, cexp.y, cppexp.c, dwarf2out.c, genattr.c, - genattrtab.c, genemit.c, genextract.c, genpeep.c, tree.c: Likewise. - * system.h (IN_CTYPE_DOMAIN): Define to 1 if HOST_EBCDIC. - * defaults.h (TARGET_ESC): Add default. - -Tue Sep 7 23:36:59 1999 Linas Vepstas - - * configure.in: add i370-*-openedition, i370-*-mvs and - i370-*-linux targets - -Tue Sep 7 23:31:53 1999 Mark Mitchell - - * dsp16xxx.c: Include ggc.h - (override_options): Mark GC roots. - * mn10200.c: Include ggc.h. - (asm_file_start): Mark GC roots. - * tahoe.c: Include ggc.h. - (extensible_operand): Mark GC roots. - -Tue Sep 7 23:23:15 1999 Linas Vepstas - - * README: Add section discussing status of ELF ABI. - * i370.c: Fix misc spelling mistakes. - (i370_label_scan): Updated notes, exception handling. - (i370_function_prolog): Simplify ELF stack handling. - * i370.h: (FIXED_REGISTERS): Free up r12 for ELF. - (STACK_GROWS_DOWNWARD): ELF stack grows down. - (ASM_DECLARE_FUNCTION_NAME): Fix crazy malloc size. - * i370.md: (movdi): Add notes. - (floatsidf2): Use stack not rtca for scratch float area. - (iorsi3): Correct operand constraints. - * x-oe: Restore TAROUTOPTS which are used by pax. - -Tue Sep 7 22:39:18 1999 Mark Mitchell - - * rs6000.c: Include ggc.h. - (rs6000_add_gc_roots): New function. - (override_options): Call it. - -Tue Sep 7 22:09:03 1999 Richard Henderson - - * alpha.h (alpha_compare): New. - (alpha_compare_op0, alpha_compare_op1, alpha_compare_fp_p): Remove. - * alpha.c: Likewise for the definitions. - (alpha_emit_conditional_branch): Update for alpha_compare. - (alpha_emit_conditional_move): Likewise. - * alpha.md (cmpdf, cmpdi): Likewise. - (setcc patterns): Likewise. Zero alpha_compare after use. - (sne): Optimize (x != 0) into (0U < x). - -Tue Sep 7 21:55:02 1999 Richard Henderson - - * alpha.h (alpha_eh_epilogue_sp_ofs): Remove. - (struct machine_function): Declare; add eh_epilogue_sp_ofs. - (INIT_EXPANDERS): Remove. - * alpha.c: Include ggc.h. - (alpha_eh_epilogue_sp_ofs, alpha_return_addr_rtx): Remove. - (alpha_init_machine_status, alpha_mark_machine_status): New. - (override_options): Install them. - (struct machine_function): Moved to alpha.h. - (alpha_save_machine_status, alpha_restore_machine_status): Remove. - (alpha_init_expanders): Remove. - (alpha_return_addr): Adjust to use current_function->machine. - (alpha_ra_ever_killed): Likewise. - (alpha_expand_epilogue): Likewise. - * alpha.md (eh_epilogue): Likewise. - -Wed Sep 8 14:34:42 1999 Ian Piumarta - Melissa O'Neill - Geoffrey Keating - - * config/rs6000/rs6000.c (first_reg_to_save): Don't save fixed or - call-used registers (call-saved registers must still be contiguous - and end with r31, of course). - -Tue Sep 7 21:41:38 1999 Richard Henderson - - * c-typeck.c (type_lists_compatible_p): Use simple_type_promotes_to. - (self_promoting_type_p): Delete. - (self_promoting_args_p): Move ... - * c-common.c: ... here. - (c_common_nodes_and_builtins): Initialize lang_type_promotes_to. - (simple_type_promotes_to): New. - * builtins.c (lang_type_promotes_to): New. - (expand_builtin_va_arg): Use it to give diagnostic for illegal types. - * c-tree.h (C_PROMOTING_INTEGER_TYPE_P): Move ... - * c-common.h: ... here. - (self_promoting_args_p, simple_type_promotes_to): Declare. - * c-decl.c (duplicate_decls): Use simple_type_promotes_to. - (grokdeclarator): Likewise. - * tree.h (lang_type_promotes_to): Declare. - -Tue Sep 7 17:15:21 1999 Mark Mitchell - - Add some machine-dependent GC roots. - * sparc.c: Include ggc.h. - (sparc_add_gc_roots): New function. - (mark_ultrasparc_pipeline_state): Likewise. - (override_options): Call sparc_add_gc_roots. - * pa.c: Include ggc.h. - (pa_add_gc_roots): New function. - (mark_deferred_plabels): Likewise. - (override_options): Call pa_add_gc_roots. - * mips.c: Include ggc.h. - (mips_add_gc_roots): New function. - (override_options): Use it. - -Tue Sep 7 11:39:41 1999 Kaveh R. Ghazi - - * cpperror.c (cpp_file_line_for_message): Constify a char*. - - * cppexp.c (parse_number, parse_charconst, cpp_lex, - cpp_parse_expr): Add static prototypes. - (parse_charconst): Don't cast away const-ness. - (token): Constify a char*. - - * cppfiles.c (file_name_list, include_hash, find_include_file, - finclude, initialize_input_buffer): Constify a char*. - (file_cleanup, find_position): Add static prototypes. - - * cpphash.c (macro_cleanup, macarg, timestamp, special_symbol, - collect_expansion): Add static prototypes. - (cpp_install, create_definition, monthnames): Constify a char*. - - * cpphash.h (cpp_install): Likewise. - - * cppinit.c (known_suffixes, default_include, - dump_special_to_buffer, NAME, cpp_start_read, cpp_finish): Likewise. - (base_name, dump_special_to_buffer, initialize_dependency_output): - Add static prototypes. - - * cpplib.c (my_strerror): Constify a char*. - (null_underflow, null_cleanup, skip_comment, copy_comment, - copy_rest_of_line, handle_directive, pass_thru_directive, - get_directive_token, read_line_number, cpp_print_file_and_line, - v_cpp_error, v_cpp_warning, v_cpp_error_with_line, - v_cpp_warning_with_line, detect_if_not_defined, - consider_directive_while_skipping): Add static prototypes. - (pass_thru_directive, check_macro_name, cpp_expand_to_buffer, - cpp_pedwarn_with_file_and_line): Constify a char*. - - * cpplib.h (cpp_options, include_hash, progname, definition, - cpp_pedwarn_with_file_and_line, cpp_expand_to_buffer, - check_macro_name, cpp_pfatal_with_name, cpp_file_line_for_message, - find_include_file, deps_output, include_hash): Constify a char*. - - * cppmain.c (progname): Constify. - (main): Add prototype. Use return, not exit. - - * fix-header.c (fatal, add_symbols, lookup_std_proto, write_lbrac, - recognized_macro, check_macro_names, read_scan_file, write_rbrac, - inf_skip_spaces, inf_read_upto, inf_scan_ident, inf_scan_ident, - check_protection): Add static prototype. - (xfree): Remove. - (progname, recognized_macrom, recognized_extern): Constify a char*. - (main): Add prototype. - - * gen-protos.c (progname): Constify a char*. - -Tue Sep 7 00:47:52 1999 Mark Mitchell - - * emit-rtl.c (free_emit_status): Take decl as a parameter. - (init_emit_once): Add more GC roots. - * except.c (mark_func_eh_entry): New function. - (mark_eh_node): Mark false_label and rethrow_label. - (init_eh): Add more GC roots. - * function.c (free_after_compilation): Take decl as a parameter. - Call free_stmt_status. - (mark_function_state): Don't assume x_parm_reg_stack_loc is - non-NULL. - * function.h (free_after_compilation): Change prototype. - (free_varasm_status): Likewise. - (free_emit_status): Likewise. - (free_stmt_status): New function. - * ggc-simple.c (rtx, vecs, trees, strings, bytes_alloced_since_gc): - Remove, replacing with ... - (ggc_status): New structure. - (ggc_chain): New variable. - (init_gcc): Define. - (ggc_push_context): New function. - (ggc_pop_context): Likewise. - (ggc_alloc_rtx): Adjust for use of ggc_chain. - (ggc_alloc_rtvec): Likewise. - (ggc_alloc_tree): Likewise. - (ggc_alloc_string): Likewise. - (ggc_mark_rtx): Mark NOTE_SOURCE_FILE and NOTE_RANGE_INFO. - (ggc_mark_tree): Give language-dependent code a chance to mark - `x' nodes. - (ggc_mark_tree_varray): Handle empty arrays. - (ggc_collect): Adjust for use of ggc_chain. Clear - bytes_alloced_since_last_gc. - * ggc.h (ggc_pop_context): New function. - (ggc_push_context): Likewise. - * print-tree.c (print_node): Don't print obstacks when GC'ing. - * stmt.c (free_stmt_status): New function. - (init_stmt_for_function): Clear last_expr_value. - * toplev.c (rest_of_compilation): Always call free_after_compilation. - Conditionalize call to ggc_collect. - (main): Call init_ggc. - * tree.c (push_obstacks): Do the push, even when GC'ing. - (push_obstacks_nochange): Likewise. - (pop_obstacks): Liekwise. - * varasm.c (free_varasm_status): Take decl as a parameter. - -Tue Sep 7 08:15:49 1999 Gavin Romig-Koch - - * config/mips/mips.h (MULTILIB_ENDIAN_DEFAULT) : New macro. - (MULTILIB_ENDIAN_DEFAULT) : Use the new macro. - * config/mips/elf64.h (MULTILIB_DEFAULTS) : Use the new macro. - * config/mips/r3900.h (MULTILIB_DEFAULTS) : Use the new macro. - -Tue Sep 7 03:42:45 1999 Mark Klein (mklein@dis.com) - - * pa/x-pa-mpeix: New file for the MPE port. - - * pa/quadlib.asm: New file for long double support. - - * configure.in: Add hppa1.0-*-mpeix for MPE port. - * configure: Rebuilt. - -Tue Sep 7 10:08:40 1999 Andreas Schwab - - * final.c (shorten_branches): Fix last change. - -Tue Sep 7 00:30:32 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (ASM_OUTPUT_DOUBLE_INT): Delete. - -Mon Sep 6 22:44:47 1999 Jeffrey A Law (law@cygnus.com) - - * Merge from gcc2 snapshot Jan 9, 1999. See FSFChangeLog for - details. - -Mon Sep 6 22:31:28 1999 Kaveh R. Ghazi - - * c-aux-info.c (concat): Don't define. - - * cccp.c (my_strerror): Likewise. All callers changed to use - xstrerror instead. - (do_include): Call xstrdup, not xmalloc/strcpy. - (grow_outbuf): Don't check if xrealloc returns NULL, it can't. - (xmalloc, xrealloc, xcalloc, xstrdup): Don't define. - - * collect2.c (my_strsignal): Likewise. All callers changed to use - strsignal instead. - (locatelib): Call xstrdup, not xmalloc/strcpy. - - * 1750a.h (ASM_OUTPUT_INTERNAL_LABEL): Call xmalloc, not malloc. - - * dsp16xx.c (override_options): Call xstrdup, not xmalloc/strcpy. - - * i370.h (ASM_DECLARE_FUNCTION_NAME): Call xmalloc, not malloc. - - * mips.c (build_mips16_call_stub): Call xstrdup, not xmalloc/strcpy. - - * cppinit.c (cpp_options_init): Call xcalloc, not xmalloc/bzero. - - * dwarfout.c (dwarfout_init): Call concat, not xmalloc/strcpy/... - - * except.c (new_eh_region_entry): Call xmalloc/xrealloc, not - malloc/realloc. - (find_all_handler_type_matches): Likewise. Don't check return - value. - (get_new_handler, init_insn_eh_region, process_nestinfo): Call - xmalloc, not malloc. - (init_eh_nesting_info): Likewise. Call xcalloc, not xmalloc/bzero. - - * gcc.c (xstrerror, xmalloc, xrealloc): Don't define. - (init_spec): Call xcalloc, not xmalloc/bzero. - (set_spec): Call xstrdup, not save_string. - (record_temp_file): Call xstrdup, not xmalloc/strcpy. - (find_a_file): Call xstrdup, not xmalloc/strcpy. - (process_command): Call xstrdup, not save_string. - (main): Call xcalloc, not xmalloc/bzero. - - * gcov.c (xmalloc): Don't define. - (create_program_flow_graph): Call xcalloc, not xmalloc/bzero. - (scan_for_source_files): Call xstrdup, not xmalloc/strcpy. - (output_data): Call xcalloc, not xmalloc/bzero. - - * haifa-sched.c (schedule_insns): Call xcalloc, not xmalloc/bzero. - - * mips-tdump.c (xmalloc): Don't define. - (print_symbol): Call xmalloc, not malloc. - (read_tfile): Call xcalloc, not calloc. - - * mips-tfile.c (xfree, my_strsignal, xmalloc, xcalloc, xrealloc): - Don't define. All callers of xfree/my_strsignal changed to use - free/strsignal instead. - (allocate_cluster): Call xcalloc, not calloc. - - * objc/objc-act.c (lang_init): Call concat, not xmalloc/strcpy/... - Fix memory leak, free allocated memory. - - * prefix.c (translate_name): Call xstrdup, not save_string. - (update_path): Likewise. - - * profile.c (branch_prob): Call xstrdup, not xmalloc/strcpy. - - * protoize.c (xstrerror, xmalloc, xrealloc, xfree, savestring2): - Don't define. Callers of xfree/savestring2 changed to use - free/concat instead. - - * reload1.c (reload): Call xcalloc, not xmalloc/bzero. - (init_elim_table): Likewise. - - * resource.c (init_resource_info): Likewise. - - * stupid.c (stupid_life_analysis): Likewise. - - * toplev.c (xmalloc, xcalloc, xrealloc, xstrdup): Don't define. - (open_dump_file): Call concat, not xmalloc/strcpy/... - (clean_dump_file): Likewise. - (compile_file): Call xstrdup, not xmalloc/strcpy. - -Mon Sep 6 15:04:55 1999 Richard Henderson - - * v850.h (EXPAND_BUILTIN_VA_ARG): New. - * v850.c (v850_va_arg): New. - -Tue Sep 7 09:36:01 1999 Michael Hayes - - * haifa-sched.c: Tidy comments. - -Mon Sep 6 14:30:13 1999 Bernd Schmidt - - * Makefile.in (C_AND_OBJC_OBJS): Remove ggc-callbacks.o. - (c-parse.o, c-decl.o, c-lang.o, c-lex.o, c-common.o, - $(out_object_file)): Depend on ggc.h. - * c-common.c: Include "ggc.h". - (combine_strings): If doing GC, use ggc_alloc_string. - * c-decl.c: Include "ggc.h". - (ggc_p): Define with value 0. - (mark_binding_level): New function. - (init_decl_processing): Add GC roots. - (mark_c_function_context): New function. - (lang_mark_false_label_stack): New function. - (lang_mark_tree): New function. - (lang_cleanup_tree): New function. - * c-lang.c: Include "ggc.h". - (lang_init): Call c_parse_init. - * c-lex.c: Include "ggc.h". - (check_linenum): If doing GC, don't copy filenames to permanent - obstack. - * c-parse.in: Include "ggc.h". - (c_parse_init): New function. - * c-tree.h (c_parse_init, mark_c_function_context): Declare. - * objc/Make-lang.in (objc-parse.o): Depend on ggc.h. - - * except.c (mark_eh_state): Mark more state. - * function.c (mark_function_state): Likewise. - * ggc-simple.c (ggc_alloc_rtvec): Bring in sync with non-gc version. - (ggc_alloc_string) [GGC_DUMP]: Fix typo. - * toplev.c (mark_file_stack): New function. - (compile_file): If doing GC, use ggc_alloc_string on input filename. - (main): Add root for input_file_stack. - - * i386.c: Include "ggc.h". - (ix86_mark_machine_status): New function. - (override_options): Set mark_machine_status. - -Mon Sep 6 15:26:23 1999 Bernd Schmidt - - * tree.c (copy_node): Copy node contents also if doing GC. - -Mon Sep 6 08:42:06 1999 Alexandre Oliva - - * collect2.c (scan_libraries): Fix double-thinko :-). - -Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com) - - * collect2.c (scan_libraries): Fix thinko. - - * cse.c (delete_trivially_dead_insns): Do not skip the last - insn if it is a real insn. - -Sun Sep 5 18:57:42 1999 Mark Mitchell - - * Makefile.in (ggc-simple.o): Depend on hash.h. - * ggc.h (ggc_add_tree_hash_table_root): Declare. - (ggc_mark_tree_varray): Likewise. - (ggc_mark_tree_hash_table): Likewise. - * ggc-simple.c: Include hash.h. - (ggc_mark_tree_hash_table_ptr): New function. - (ggc_mark_tree_hash_table_entry): Likewise. - (ggc_mark_tree_hash_table): Likewise. - (ggc_add_tree_hash_table_root): Likewise. - * varray.h (const_equiv_data): Use struct rtx_def *, rather than - rtx, when defining fields. - -Sun Sep 5 18:57:42 1999 Bernd Schmidt - - * profile.c (output_func_start_profiler): Remove apparently - nonsensical call to start_sequence. - -Sun Sep 5 17:34:33 1999 Richard Henderson - - * clipper/clipper.c (clipper_va_start): Fix typos. - - * pyr/pyr.c (pyr_build_va_list, pyr_va_start, pyr_va_arg): New stubs. - * spur/spur.c (spur_build_va_list, spur_va_start): New stubs. - (spur_va_arg): New stub. - - * configure.in: Comment out pyramid. - -Sun Sep 5 19:11:01 1999 Michael Meissner - - * i386.h (MASK_{DEBUG_{ADDR,ARG},INTEL_SYNTAX}): Move so these - don't conflict with the bits that win32, cygwin, and dgux - defines. - -Sun Sep 5 09:31:56 1999 Richard Henderson - Bernd Schmidt - - * integrate.c (function_cannot_inline_p): Do not inline - functions with forced labels. - -Sun Sep 5 00:35:17 1999 Richard Henderson - Bernd Schmidt - Mark Mitchell - - * Makefile.in (ggc-simple.o): Depend on varray.h. - (rtl.o): Depend on ggc.h. - (genattrtab.o): Depend on ggc.h. - (print-tree.o): Likewise. - (fold-const.o): Likewise. - * emit-rtl.c (sequence_element_free_list): Remove, and all references. - (make_insn_raw): Don't cache insns when GC'ing. - (emit_insn_before): Likewise. - (emit_insn_after): Likewise. - (emit_insn): Likewise. - (start_sequence): Use xmalloc to allocate the sequence_stack. - (end_sequence): Add free to free it. - (gen_sequence): Don't cache insns when GC'ing. - (clear_emit_caches): Don't use sequence_element_free_list. - (init_emit): Use xcalloc, not xmalloc+bzero. - * fold-const.c (size_int_wide): Kill the cache, when GC'ing. - * function.c (pop_function_context_from): Use free to free the - fixup_var_refs_queue. - (put_reg_into_stack): Allocate it with xmalloc. - * genattrtab.c: Include ggc.h. - (operate_exp): Don't use obstack_free when GC'ing. - (simplify_cond): Likewise. - (simplify_text_exp): Likewise. - (optimize_attrs): Likewise. - * gengenrtl.c (gendef): Use ggc_alloc_rtx to allocate RTL, when - GC'ing. - (gencode): Generate a #include for ggc.h. - * ggc-callbacks.c (ggc_p): Define it to zero. - * ggc-none.c (ggc_p): Likewise. - * ggc-simple.c: Include varray.h. - (ggc_mark_tree_varray): New function. - (ggc_add_tree_varray_root): Likewise. - (ggc_mark_tree_varray_ptr): Likewise. - * ggc.h (ggc_p): Declare. - (varray_head_tag): Likewise. - (ggc_add_tree_varray_root): Declare. - * print-tree.c (print_node): Don't check for TREE_PERMANENT - inconsistencies when GC'ing. - * rtl.c: Include ggc.h. - (rtvec_alloc): Use ggc_alloc_rtvec when GC'ing. - (rtx_alloc): Use ggc_alloc_rtx when GC'ing. - (rtx_free): Don't call obstack_free when GC'ing. - * toplev.c (rest_of_compilation): Call ggc_collect after every - pass, if GC'ing. - * tree.c (push_obstacks): Do nothing, if GC'ing. - (pop_obstacks_nochange): Likewise. - (pop_obstacks): Likewise. - (make_node): Use ggc_alloc_tree when GC'ing. - (copy_node): Likewise. - (get_identifier): Use ggc_alloc_string when GC'ing. - (build_string): Likewise. - (make_tree_vec): Use ggc_alloc_tree when GC'ing. - (tree_cons): Likewise. - (build1): Likewise. - (type_hash_canon): Don't call obstack_free when GC'ing. - -Sat Sep 4 21:52:32 1999 Richard Henderson - - * haifa-sched.c (schedule_block): Use next_nonnote_insn instead - of NEXT_INSN when examining speculative insns for SCHED_GROUP_P. - -Sat Sep 4 20:40:19 1999 Richard Henderson - Bernd Schmidt - Mark Mitchell - - * Makefile.in (stor-layout.o): Depend on ggc.h. - (expr.o): Depend on ggc.h. - (profile.o): Depend on ggc.h. - (stor-layout.o): Depend on ggc.h. - * emit-rtl.c (init_emit_once): Add gc roots. - * expr.c: Include ggc.h. - (emit_block_move): Add gc roots. - (clear_storage): Likewise. - * expr.h (init_stor_layout_once): New function. - * profile.c: Include ggc.h. - (init_arc_profiler): profiler_label is a root. - * scan.c (make_sstring_space): Trust xrealloc to function - correctly with first parameter NULL. - * stor-layout.c: Include ggc.h. - (set_sizetype): Add gc root. - (init_stor_layout_once): New function. - * toplev.c (compile_file): Call it. - -Sat Sep 4 19:26:25 1999 Richard Henderson - Bernd Schmidt - Mark Mitchell - - * Makefile.in (tree.o): Depend on ggc.h. - (varasm.o): Likewise. - (function.o): Likewise. - (stmt.o): Likewise. - (except.o): Likewise. - (optabs.o): Likewise. - (emit-rtl.o): Likewise. - * emit-rtl.c: Include ggc.h. - (sequence_element_free_list): Remove, and all references. - (mark_sequence): New functions. - (mark_emit_state): New function. - * except.c: Include ggc.h. - (mark_eh_node, mark_eh_stack, mark_eh_queue): New functions. - (mark_tree_label_node): New functions. - (mark_eh_state): New function. - * function.c: Include ggc.h. - (mark_temp_slot, mark_function_chain): New functions. - (mark_function_state): New function. - (init_function_once): New function. - * function.h (init_function_once): New function. - * ggc-callbacks.c (lang_mark_false_label_stack): New function. - * ggc.h (label_node): Declare. - (eh_status, emit_status, stmt_status, varasm_status): Likewise. - (lang_mark_false_label_stack): New function. - (mark_temp_slot): Remove declaration. - (mark_function_chain): Likewise. - (mark_eh_state): Adjust prototype. - (mark_stmt_state, mark_emit_state, mark_varasm_state, mark_optab): - Likewise. - * optabs.c: Include ggc.h. - (mark_optab): New function. - (init_optabs): Add gc roots. - * stmt.c: Include ggc.h. - (mark_cond_nesting, mark_loop_nesting): New functions. - (mark_block_nesting, mark_case_nesting, mark_goto_fixup): Likewise. - (mark_stmt_state): New function. - * toplev.c (compile_file): Call init_function_once. - * tree.c: Include ggc.h. - (type_hash): Move declaration earlier in file. - (TYPE_HASH_SIZE, type_hash_table): Likewise. - (init_obstacks): Add gc roots. - (mark_type_hash): New function. - * varasm.c: Include ggc.h. - (mark_pool_constant): New function. - (mark_varasm_state): New function. - -Sat Sep 4 22:28:56 1999 Kaveh R. Ghazi - - * ggc-simple.c (ggc_root, ggc_collect): Wrap prototype with PROTO. - -Sat Sep 4 18:01:45 1999 Bernd Schmidt - - * c-decl.c (struct language_function): Renamed from struct c_function. - Delete elt NEXT. - (c_function_chain): Delete. - (push_c_function_context): New arg F. Don't warn about nested - functions here. Fill LANGUAGE elt of F. Delete code to update - c_function_chain. Don't call push_function_context. - (pop_c_function_context): New arg F. Restore from there instead of - from c_function_chain. Don't call pop_function_context. Clear out - LANGUAGE field of F when done. - * c-lang.c: Include "function.h" - (lang_init): Initialize save_lang_status and restore_lang_status. - * c-parse.in (nested_function, nested_function_notype): Warn about - nested functions. Call push_function_context/pop_function_context - instead of the _c_ variants. - * c-tree.h (push_c_function_context, pop_c_function_context): Update - prototype. - * Makefile.in (c-lang.o): Update dependencies. - - * emit-rtl.c (init_emit): Use xmalloc to allocate regno_reg_rtx, - regno_pointer_flag, regno_pointer_align. - (gen_reg_rtx): Use xrealloc to enlarge them. - (free_emit_status): New function. - * function.c (mark_machine_status, mark_lang_status): New variables. - (assign_stack_local_1): Renamed from assign_outer_stack_local. Merge - in some bits from assign_stack_local. All callers changed to use new - name. - (assign_stack_local): Just call assign_stack_local_1. - (free_after_compilation): New function. - (put_reg_into_stack): Simplify to always call assign_stack_local_1. - (trampoline_address): Likewise. - (assign_parms): Use xcalloc/xrealloc to allocate parm_reg_stack_loc. - (prepare_function_start): Explicitly clear some more variables. - * function.h (struct function): New elt can_garbage_collect. - (mark_machine_status, mark_lang_status): Declare variables. - (free_after_compilation, free_emit_status, free_varasm_status, - init_varasm_status): Declare functions. - * toplev.c (rest_of_compilation): Call free_after_compilation when - done with the current function. - * varasm.c (free_varasm_status): New function. - -Sat Sep 4 17:15:13 1999 Richard Henderson - - * sparc.h (EXPAND_BUILTIN_VA_START): Define. - (EXPAND_BUILTIN_VA_ARG): Define. - * sparc.c (sparc_va_start): New. - (sparc_va_arg): New. - -Sun Sep 5 11:11:59 1999 Michael Hayes - - * config/c4x/c4x.h (DBR_OUTPUT_SEQEND): Use XVECEXP not XEXPs. - -Sun Sep 5 10:13:19 1999 Michael Hayes - - * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Disable. - -Sat Sep 4 13:44:01 1999 Mark Mitchell - - * Makefile.in (C_AND_C_OBJS): Add gcc-callbacks.o. - (OBJS): Add $(GGC). - (ggc-callbacks.o): New target. - * ggc-callbacks.c: New file. - -Sat Sep 4 22:53:13 1999 Bernd Schmidt - - * expr.h: Collapse individual optab and libfunc vars to arrays. - (optab_index, libfunc_index): New enumerations. - (optab_table, libfunc_table): New arrays. - Add accessor macros for both. - - * optabs.c (optab_table, libfunc_table): New. - Delete declarations for individual optab and libfunc vars. - -Sat Sep 4 12:57:17 1999 Richard Henderson - - * i386/sco5.h (RETURN_POPS_ARGS): Name change ix86_return_pops_args. - -Sat Sep 4 11:19:52 1999 Richard Henderson - - * Makefile.in (GGC, GGC_LIB): New. - (HOST_RTL): Include ggc-none.o. - (ggc-simple.o): New target. - (ggc-none.o): Likewise. - * tree.h (tree_common): Add gc_mark. - * rtl.h (struct rtx_def): Steal a bit from code to make gc_mark. - (struct rtvec_def): Add gc_mark. - * emit-rtl.c (global_rtl): Update static initializers to contain - enough initializers. - * ggc.h, ggc-none.c, ggc-simple.c: New files. - * toplev.c (gc_time): New variable. - (all_time): New variable. - (compile_file): Print gc time. - (print_time): Calculate percentage of the whole. - -Sat Sep 4 13:11:01 1999 Bernd Schmidt - - Change obstack memory management and varasm constant pool handling so - that nested functions are treated like any other functions. - * function.c (init_machine_status): New variable. - (push_function_context_to): Set contains_functions for the outer - function. Don't call save_varasm_status. - (pop_function_context_from): Don't call restore_varasm_status. Don't - set current_function_contains_functions. - (prepare_function_start): Call init_varasm_status rather than - init_const_rtx_hash_table. Call (*init_machine_status) if the pointer - is non-null. - * function.h (struct function) Add field varasm. Delete fields - inline_obstacks, inl_emit, const_rtx_hash_table, first_pool, - last_pool, const_rtx_sym_hash_table, pool_offset, const_double_chain. - (init_machine_status): Declare. - (save_varasm_status, restore_varasm_status): Delete declarations. - (save_tree_status, restore_tree_status): Delete last argument. - * integrate.c (initialize_for_inline): Lose arg COPY. Delete copying - code. All callers changed. - (copy_decl_list, copy_decl_tree, copy_decl_rtls, copy_for_inline, - save_constants_in_decl_trees, restore_constants, save_constants, - save_for_inline_eh_labelmap, save_for_inline_copying): Delete - functions. - (inlining): New variable. - (reg_map, label_map, insn_map, orig_asm_operands_vector, - copy_asm_operands_vector, copy_asm_constraints_vector): Delete - variables. - (save_for_inline_nocopy): Don't save constants. - Don't set inl_emit field in current_function. - (expand_inline_function): Use emit field, not inl_emit, of the inlined - function. Set new variable inlining before - calling copy_rtx_and_substitute. - (copy_rtx_and_substitute): In MEM and SYMBOL_REF cases, handle - constant pool references if inlining is nonzero. - Delete ADDRESS and (most of the) CONST cases. - (output_inline_function): Save and restore current_function/ - current_function_decl. Delete restore_constants code. Don't call - init_const_rtx_hash_table. - * output.h (init_const_rtx_hash_table): Don't declare. - * rtl.h (struct function): Declare. - (get_pool_constant_for_function, get_pool_mode_for_function): Declare. - * toplev.c (rest_of_compilation): Don't treat nested functions or - functions containing them specially. Delete all code to deal with - save_for_inline_copying. - * tree.c (toplev_inline_obstacks, extra_inline_obstacks, - inline_obstacks): Delete variables. - (save_tree_status): Lose arg CONTEXT. All callers changed. - Simply allocate a new function_maybepermanent_obstack for the new - function, delete all the special cases. - Don't save inline_obstacks. - (restore_tree_status): Lose arg CONTEXT. All callers changed. - Delete special handling for function_maybepermanent_obstack; simply - free it if empty. - Don't restore inline_obstacks. - (permanent_allocation): Delete code that frees inline_obstacks. - (print_inline_obstack_statistics): Delete function. - (dump_tree_statistics): Don't call it. - * varasm.c (struct varasm_status): New. - (const_rtx_hash_table, const_rtx_sym_hash_table, first_pool, - last_pool, pool_offset, const_double_chain): Delete global - variables, replace with accessor macros. - (immed_double_const): Don't walk const_double_chain outside a - function, but don't treat nested functions specially anymore. - (immed_real_const_1): Likewise. - (clear_const_double_mem): Don't treat nested functions specially. - (init_const_rtx_hash_table): Deleted, code moved to init_varasm_status. - (save_varasm_status, restore_varasm_status): Delete functions. - (init_varasm_status): New function. - (force_const_mem): Don't treat nested functions specially. - (find_pool_constant): Accept new arg F, search for constants in - that function's pool rather than the current one. All callers - changed. - (get_pool_constant_for_function, get_pool_mode_for_function): New - functions. - - * i386.c (init_386_machine_status): New function, mostly from - clear_386_stack_locals. - (struct machine_functions): Rename element names to avoid name - clashes. - (pic_label_rtx, pic_label_name, i386_stack_locals): New accessor - macros, replacing global variables. - (clear_386_stack_locals, save_386_machine_status, - restore_386_machine_status): Delete functions. - (override_options): Initialize init_machine_status. - * i386.h (INIT_EXPANDERS): Delete macro. - (save_386_machine_status, restore_386_machine_status, - clear_386_stack_locals): Delete declarations. - -Sat Sep 4 16:56:28 1999 Michael Hayes - - * config/c4x/c4x.md (rptb_init): Renamed from *rptb_init. - (doloop_begin): Simplify pattern and use emit_jump_insn. - (doloop_end): Simplify pattern, switch operand order, - and use emit_jump_insn. - -Fri Sep 3 19:02:38 1999 Bernd Schmidt - - * function.h (struct function): Add new element LANGUAGE. - (save_lang_status): Declare new variable. - (restore_lang_status): Likewise. - * function.c (save_lang_status): Define. - (restore_lang_status): Likewise. - (push_function_context_to): Call language-specific save function. - (pop_function_context_from): Call language-specific restore function. - -Fri Sep 3 01:16:18 1999 Alasdair Baird - - * i386.md (movsf_1): Check REG_P before use of REGNO. - (movdf_1): Likewise. - (movxf_1): Likewise. - (extendsfdf2): Likewise. - (extendsfxf2): Likewise. - (extenddfxf2): Likewise. - -Sat Sep 4 11:37:15 1999 Michael Hayes - - * config/c4x/c4x.c (c4x_emit_move_sequence): Do not force large - constants into memory. - (c4x_shiftable_constant): New function. - * config/c4x/c4x.c (LEGITIMATE_CONSTANT_P): Allow any CONST_INT. - (c4x_shiftable_constant): Declare. - * config/c4x/c4x.md (loadqi_big_constant, loadhi_big_constant, - ashlqi3_noclobber): Add new patterns and associated splitters. - -Fri Sep 3 16:22:17 1999 Richard Henderson - - * dbxout.c (dbxout_init): Use xcalloc instead of xmalloc+bzero. - * dwarf2out.c (dwarf2out_frame_init): Likewise. - * final.c (shorten_branches): Likewise. - * global.c (global_alloc): Likewise. - * haifa-sched.c (build_control_flow): Likewise. - * stmt.c (check_for_full_enumeration_handling): Likewise. - (estimate_case_costs): Likewise. - -Fri Sep 3 15:49:56 1999 Mark Mitchell - - * rtl.h (RTL_CHECKC2): Fix typo in last change. - -Fri Sep 3 15:13:34 1999 Richard Henderson - - * flow.c (propagate_block): Use XEXP not SET_DEST for a USE. - (recompute_reg_usage): Likewise. - * rtlanal.c (find_regno_fusage): Likewise. - - * rtl.c (rtl_check_failed_code1): New function. - (rtl_check_failed_code2): New. - * rtl.h (RTL_CHECK1, RTL_CHECK2, RTVEC_ELT): Parenthesize args. - (RTL_CHECKC1, RTL_CHECKC2): New. - (XC*): New accessor macros. - (NOTE_*, LABEL_NAME, LABEL_NUSES, ADDRESSOF_REGNO): Use them. - (ADDRESSOF_DECL, JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF): Likewise. - (CONTAINING_INSN, REGNO, INTVAL, SUBREG_REG, SUBREG_WORD): Likewise. - (ASM_OPERANDS_*, MEM_ALIAS_SET, SET_SRC, SET_DEST): Likewise. - (TRAP_*, RANGE_INFO_*): Likewise. - -Fri Sep 3 15:10:20 1999 Kaveh R. Ghazi - - * Makefile.in (tlink.o): Don't depend on toplev.h. - - * collect2.c (c_file, o_file, export_file, import_file, ldout, - output_file, nm_file_name, ldd_file_name, strip_file_name, - c_file_name, prefix_list, libexts, is_ctor_dtor, find_a_file, - add_prefix, prefix_from_env, prefix_from_string, do_wait, - fork_execute, maybe_unlink, add_to_list, - extract_init_priority, write_list, dump_list, - dump_prefix_list, write_list_with_asm, write_c_file, - write_c_file_stat, write_c_file_glob, scan_prog_file, - scan_libraries, is_in_list, resolve_lib_name, use_import_list, - ignore_library, extract_string, notice, dump_file, target_machine, - collect_wait, collect_execute, libname, locatelib, aix_std_libs, - read_file, print_load_command): Constify a char*. - (fdopen, error, fatal, fatal_perror): Don't prototype. - (my_strerror): Remove. All callers use xstrerror instead. - (xcalloc, xmalloc, xrealloc, xstrdup, putenv): Remove definitions. - (main): Add prototype. Constify lots of char* ptrs. Change calls - to xcalloc/strcpy/strcat/... to one call to concat. - (main, scan_prog_file, scan_libraries): Use an intermediate - `const char **' to build an argv array. - (mapfile, libselect, libcompare, locatelib): Add prototypes. - - * collect2.h (collect_execute, collect_wait, dump_file, - file_exists): Constify a char*. - (ldout, c_file_name, temporary_obstack, permanent_obstack, - temporary_firstobj, vflag, debug): Add extern declarations. - (fancy_abort, error, notice, fatal, fatal_perror): Add prototypes. - - * tlink.c: Don't include toplev.h. - (vflag, debug, ldout, c_file_name, temporary_obstack, - permanent_obstack, temporary_firstobj): Don't declare. - (tlink_execute, frob_extension, symbol_hash_lookup, - file_hash_lookup, demangled_hash_lookup, tlink_init, freadsym, - recompile_files, read_repo_files, demangle_new_symbols, - scan_linker_output): Constify a char*. - (symbol_hash_newfunc, file_hash_newfunc, demangled_hash_newfunc, - do_tlink): Mark parameters with ATTRIBUTE_UNUSED. - -Fri Sep 3 18:09:24 1999 Andrew Haley - - * config/m68k/m68kelf.h: Set USE_GAS; this makes gcc generate jbsr - (relative) rather than jsr (absolute) subroutine call insns. - * config/m68k/m68k-coff.h: Ditto. - -Fri Sep 3 17:24:31 1999 Richard Earnshaw - - * arm.c (note_invalid_constants): No need to ignore ASMs, we can - now rework these too. - (arm_reorg): If an insn can't reach the end of the current pool, - ensure that we emit that pool before the insn. - -Fri Sep 3 09:14:32 1999 Marc Espie - - * tlink.c (scan_linker_output): Skip the initial underscore in - a mangled name if appropriate. - -Fri Sep 3 01:28:33 1999 Kaveh R. Ghazi - - * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length, - objc_tree_code_name, synth_id_with_class_suffix, warn_with_method, - error_with_ivar, gen_declarator, create_builtin_decl, - my_build_string, generate_descriptor_table, generate_ivars_list, - generate_dispatch_table, check_protocols, TAG_GETCLASS, - TAG_GETMETACLASS, TAG_MSGSEND, TAG_MSGSENDSUPER, TAG_EXECCLASS, - dump_base_name, lang_decode_option, build_encode_expr, - start_class, finish_class, encode_pointer, really_start_method, - gen_declaration, dump_interface, handle_class_ref, handle_impent): - Constify. - (objc_demangle, objc_printable_name, generate_struct_by_value_array): - Add static prototypes. - (build_objc_string_decl, build_selector_reference_decl, - encode_bitfield, build_class_reference_decl): Remove unused - parameter, all callers changed. - (maybe_objc_method_name): Mark with ATTRIBUTE_UNUSED. - (objc_printable_name): Likewise. Change second parameter to type int. - (init_objc): Use memcpy, not bcopy, to avoid casts. - -Thu Sep 2 21:49:52 1999 Richard Henderson - - * reload1.c (eliminate_regs_in_insn): Avoid eliminating the - reg notes on a deleted insn. - * gcse.c (hash_expr_1): Use XWINT on a CONST_DOUBLE. - -Thu Sep 2 20:18:12 1999 Jeffrey A Law (law@cygnus.com) - - * i386.c (ix86_attr_length_default): Handle TYPE_FXCH. - -Thu Sep 2 22:00:08 1999 J"orn Rennecke - - * stmt.c (expand_asm_operands): Fix index into inout_mode when - reading it. - -Thu Sep 2 13:00:48 1999 Richard Henderson - - * stmt.c (expand_asm_operands): Invoke MD_ASM_CLOBBERS if present. - * tm.texi (MD_ASM_CLOBBERS): Document it. - -Thu Sep 2 10:22:40 1999 Richard Henderson - - * dwarf2out.c (dwarf2out_line): Constify `lastfile'. - * except.c (expand_rethrow): Remove unused variable. - * expr.c (do_jump_by_parts_greater_rtx): Likewise. - * flow.c (replace_insns): Likewise. - (create_edge_list, verify_edge_list): Likewise. - * gcse.c (cprop_cc0_jump): Protect declaration with HAVE_cc0. - - * genemit.c (gen_expand): Only emit `operands[N]' decl if there - is special code to run. - (main): Don't define operands to emit_operand. - * genrecog.c (main): Don't emit an empty peephole2_insn function. - - * rtl.h (NOTE_BASIC_BLOCK): Use X0BBDEF. - - * alpha/alpha.h (normal_memory_operand): Declare. - (reg_no_subreg_operand): Declare. - * alpha/elf.h (ASM_DECLARE_OBJECT_NAME): Use HOST_WIDE_INT_PRINT_DEC. - -Thu Sep 2 10:19:20 1999 Richard Henderson - - * c-parse.in (compstmt_primary_start): New, broken out of first - part of compstmt handling in primary. - (primary): Use it. Add an error clause. - (compstmt_nostart): Renamed from compstmt; remove all - initial invocations of compstmt_start. - (compstmt): New. - -Thu Sep 2 01:35:50 1999 Marc Espie - - * protoize.c (gen_aux_info_file): Let pexecute call choose_temp_base if - needed. - -Thu Sep 2 00:43:59 1999 Finn Hakansson - - * combine.c (simplify_shift_const): Remove extra semicolon. - * dwarf2out.c (remove_AT): Likewise. - * expmed.c (expand_mult): Likewise. - * gcov.c (create_program_flow_graph): Likewise. - * reorg.c (mostly_true_jump): Likewise. - -Thu Sep 2 00:06:43 1999 Jeffrey A Law (law@cygnus.com) - - * fold-const.c (fold_range_test): Do not try to fold the range - test if the rhs or lhs has side effects. - - * combine.c (simplify_rtx): Recognize another case of a synthesized - sign extension. - - * varasm.c (mark_constant_pool): When marking indirect references, - only look at SYMBOL_REFs. - - * except.c (expand_fixup_region_end): Do not peek at - INSN_UID (node->entry->outer_context) for flag_new_exceptions. - -Thu Sep 2 13:52:53 1999 Geoffrey Keating - - * flags.h: New variables align_loops, align_loops_log, - align_jumps, align_jumps_log, align_labels, align_labels_log, - align_functions, align_functions_log. - * toplev.c: Define them. - (f_options): Handle -falign-* when they have no argument. - (main): Add logic to set variables for -falign-functions, - -falign-jumps, -falign-labels, -falign-loops. - Make it -fsched-verbose= and -finline-limit=. - (display_help): Change help to match options. - * final.c (LABEL_ALIGN): Default to align_labels_log. - (LABEL_ALIGN_MAX_SKIP): Default to align_labels-1. - (LOOP_ALIGN): Default to align_loops_log. - (LOOP_ALIGN_MAX_SKIP): Default to align_loops-1. - (LABEL_ALIGN_AFTER_BARRIER): Default to align_jumps_log. - (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to align_jumps-1. - * varasm.c (assemble_start_function): Handle align_functions. - - * config/sparc/sparc.h: Don't declare sparc_align_*. - Don't provide LABEL_ALIGN_AFTER_BARRIER or LOOP_ALIGN. - (DEFAULT_SPARC_ALIGN_FUNCS): Delete; take functionality into - sparc.c. - (FUNCTION_BOUNDARY): Fix incorrect use---it's not just a request, - it's a promise. - * config/sparc/sparc.c: Delete sparc_align_loops, - sparc_align_jumps, sparc_align_funcs and the corresponding string - variables. - (sparc_override_options): Default align_functions on ultrasparc. - Delete -malign-* handling. - - * config/mips/mips.c (override_options): On 64-bit targets, - try to align code to 64-bit boundaries. - (print_operand): New substitution, %~, - which aligns labels to align_labels_log. - * config/mips/mips.md (div_trap_normal): Use %~. - (div_trap_mips16): Likewise. - (abssi): Likewise. - (absdi2): Likewise. - (ffssi2): Likewise. - (ffsdi2): Likewise. - (ashldi3_internal): Likewise. - (ashrdi3_internal): Likewise. - (lshrdi3_internal): Likewise. - (casesi_internal): Likewise. - -Wed Sep 1 21:13:48 1999 Richard Henderson - - Merge new ia32 backend from the branch! - - * i386.h, i386.c, i386.md, reg-stack.c, i386/unix.h: Many changes. - See ChangeLog.P2 on new_ia32_branch for details. - - * rtl.h (stack_regs_mentioned_p): Delete prototype. - * i386/cygwin.h (SUBTARGET_PROLOGUE): No more do_rtl. - * i386/win32.h (SUBTARGET_PROLOGUE): Likewise. - * i386/gas.h (ASM_FILE_START): Define. - * i386/winnt.c (i386_pe_valid_decl_attribute_p): Update - for name change of ix86_valid_decl_attribute_p. - (i386_pe_valid_type_attribute_p): Similarly. - -Wed Sep 1 18:21:23 1999 Richard Henderson - - * emit-rtl.c (init_emit_once): Don't use GET_MODE_WIDER_MODE - to step through CC modes. - -Wed Sep 1 20:18:06 1999 J"orn Rennecke - - * regmove.c (fixup_match_1): Don't move INSN in front of P if - it would end up in the shadow of a live flags regsiter. - -Wed Sep 1 11:32:00 1999 Bernd Schmidt - - * reload1.c: Fix many indentation problems. - * reload.c: Likewise. - -Tue Aug 31 22:08:03 1999 Marc Espie - - * alias.c (non_local_reference_p): Constify fmt. - -Tue Aug 31 23:19:35 1999 Michael Meissner - - * config/i386/xm-cygwin.h (HAVE_DOS_BASED_FILE_SYSTEM): Define. - -Tue Aug 31 16:44:52 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (delete_trivially_dead_insns): Do not delete stores to - the internal_arg_pointer. - -Tue Aug 31 13:35:42 1999 Richard Henderson - - Merge peephole2 from new_ia32_branch: - * Makefile.in (STAGESTUFF): Add *.peephole2. - (mostlyclean): Likewise. - (recog.o): Depend on resource.h. - - * final.c (peephole): Conditionalize decl on HAVE_peephole. - (final_scan_insn): Likewise for the invocation of peephole. - * genconfig.c (main): Look for peephole and peephole2 patterns. - Emit HAVE_peephole* accordingly. - * genpeep.c (main): Conditionalize entire output on HAVE_peephole. - * flags.h (flag_peephole2): Declare. - * toplev.c: New pass peephole2. New flag -fpeephole2. - - * genattrtab.c (main): Count DEFINE_PEEPHOLE2. - * gencodes.c (main): Likewise. - * genextract.c (main): Likewise. - * genoutput.c (main): Likewise. - * genemit.c (max_operand_1): Look for the max scratch operand. - (gen_rtx_scratch): New. - (gen_exp): Use it, and pass on new arg subroutine_type. - (gen_expand): Take max scratch into account. - (gen_split): Emit peephole2 functions. - (output_peephole2_scratch): New. - (main): Include hard-reg-set.h and resource.h. Handle peephole2. - * genrecog.c (routine_type): Add PEEPHOLE2. - (IS_SPLIT): New. - (make_insn_sequence): Match outer parallel for peep2. Discard - top level scratches and dups. - (add_to_sequence): New args insn_type and top. Update all callers. - Handle toplevel peep2 matching insns. - (write_subroutine): Handle peep2. - (write_tree_1): Likewise. - (write_tree): Likewise. - (main): Likewise. - (change_state): New arg afterward. Update all callers. - Handle matching separate insns. - * recog.c (recog_next_insn): New. - (peephole2_optimize): New. - * rtl.def (DEFINE_PEEPHOLE2): New. - * resource.c (find_free_register): New argument last_insn. Use it - to find a register available through the entire span. - * resource.h (find_free_register): Update prototype. - -Tue Aug 31 11:51:06 1999 Jim Kingdon - - * i386.c (output_strlen_unroll): Don't write xops[7] - label if it wasn't set. - -1999-08-31 12:44 -0700 Zack Weinberg - - * cpplib.c (struct directive): Const-ify name pointer and - function pointer prototype. - (validate_else, 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_assert, do_unassert, - do_warning): Const-ify second arg. - (directive_table): Mark const. Reorder entries by frequency - of usage, record statistics. - -1999-08-31 12:20 -0700 Zack Weinberg - - * rtl.h (RTL_CHECK1, RTL_CHECK2): New macros which type- and - bounds- check RTL accesses if --enable-checking. - (RTVEC_ELT): Bounds check if --enable-checking. - (XWINT, XINT, XSTR, XEXP, XVEC, XMODE, XBITMAP, XTREE, - XBBDEF): Use RTL_CHECK1/RTL_CHECK2 as appropriate. - (XVECEXP, XVECLEN): Define in terms of XVEC, RTVEC_ELT, and - GET_NUM_ELEM. - (X0WINT, X0INT, X0STR, X0EXP, X0VEC, X0MODE, X0BITMAP, X0TREE, - X0BBDEF, X0ADVFLAGS): New macros for accessing '0' slots of RTXes. - - (ADDR_DIFF_VEC_FLAGS): Use X0ADVFLAGS. - (NOTE_SOURCE_FILE): Use X0STR. - (NOTE_BLOCK_NUMBER, NOTE_EH_HANDLER, LABEL_NUSES, - MEM_ALIAS_SET): Use X0INT. - (NOTE_RANGE_INFO, NOTE_LIVE_INFO, NOTE_BASIC_BLOCK, - JUMP_LABEL, LABEL_REFS, LABEL_NEXTREF, CONTAINING_INSN): - Use X0EXP. - * real.h (CONST_DOUBLE_CHAIN): Use X0EXP. - * rtl.c (copy_rtx, copy_most_rtx): Copy '0' slots with X0WINT. - (rtl_check_failed_bounds, rtl_check_failed_type1, - rtl_check_failed_type2, rtvec_check_failed_bounds): New - functions. - (fancy_abort): Fix comment. - - * cse.c (canon_hash): Read CONST_DOUBLE data slots with XWINT. - (cse_insn): Decrement LABEL_NUSES for jump target before - deleting jump insn. - * emit-rtl.c (gen_rtx_CONST_DOUBLE): Use X0EXP for slot 1. - * final.c (alter_subreg): Compute regno before changing x to - REG; set REGNO(x) after changing it. - * flow.c (count_basic_blocks): Use XWINT to inspect EH_REGION - notes containing CONST_INTs. - (delete_eh_regions): Use NOTE_EH_HANDLER. - * function.c (put_reg_into_stack): Make reg a MEM before - initializing it. - (fixup_var_refs_insns): Save REG_NOTES (insn) in case we - delete insn. - (gen_mem_addressof): Make reg a MEM before initializing it. - * integrate.c (copy_rtx_and_substitute): Copy '0' slots with - X0WINT. - * local-alloc.c (update_equiv_regs): Zap REG_NOTES before - deleting an insn, not after. - (block_alloc): Only look at PATTERN(insn) if we have to, and - only if it's format class 'i'. - * loop.c (check_dbra_loop): Check bl->biv->add_val is a - CONST_INT before using its INTVAL. - * print-rtl.c (print_rtx): Use X0STR. - * regmove.c (fixup_match_1): Don't look at PATTERN of - non-class-'i' insn chain elements. - * reload.c (loc_mentioned_in_p): Take address of - in->fld[1].rtx directly. - * reload1.c (reload): Change reg to a MEM before initializing - it. - * varasm.c (mark_constant_pool): Skip CONST_DOUBLES, which - have no names. - * config/i386/i386.md (decrement_and_branch_if_zero): Fix typo. - -Fri Aug 20 13:43:41 1999 Andrew Haley - - * config/mips/mips.c (machine_dependent_reorg): Force a - barrier to output the local constant pool if a barrier hasn't - been found at a natural point in the instruction stream. - -Mon Aug 30 22:04:36 1999 Kaveh R. Ghazi - - * c-parse.in (language_string): Constify. - - * dwarf2out.c (language_string): Remove declaration. - - * dwarfout.c (language_string): Likewise. - - * toplev.c (language_string, init_parse, finish_parse): Likewise. - - * tree.h (language_string, init_parse, finish_parse): Declare. - - * i386/sun386.h (language_string): Remove declaration. - - * mips.h (language_string): Likewise. - - * nextstep.h (language_string): Likewise. - - * nextstep21.h (language_string): Likewise. - - * rs6000.c (language_string): Likewise. - -Mon Aug 30 20:56:08 1999 Kaveh R. Ghazi - - * Makefile.in (OBJS, PROTO_OBJS): Remove getpwd.o. - (getpwd.o): Remove target. - - * getpwd.c: Delete file. Its in libiberty now. - - * dbxout.c (getpwd): Don't prototype. - * dwarf2out.c (getpwd): Likewise - * dwarfout.c (getpwd): Likewise - * final.c (getpwd): Likewise. - * protoize.c (getpwd): Likewise. - -Mon Aug 30 20:21:34 1999 Kaveh R. Ghazi - - * cse.c: (fold_rtx): Cast to HOST_WIDE_INT in left shift. - -Mon Aug 30 16:07:49 1999 Richard Henderson - - * flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not - mark_set_resources. - -Mon Aug 30 12:23:53 1999 Jim Wilson - - * fixinc/Makefile.in (subdir): New. - (fixincl.x, inclhack.sh, fixincl.sh): Use cp instead of $(CP). - (Makefile): New. - -Mon Aug 30 01:02:09 1999 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (copy_rtx_if_shared): A MEM which references - virtual_stack_vars_rtx or virtual_incoming_args_rtx can not - be shared. - - * invoke.texi: Fix typo. - - * dwarf2out.c (mem_loc_descriptor): New argument MODE. All callers - changed. Handle autoincrement addressing modes. - - * integrate.c (copy_rtx_and_substitute): Handle internal_arg_pointer - just like we would the virtual incoming args register when - integrating. - -Sun Aug 29 23:17:54 1999 David Edelsohn - - * rs6000.h (ASM_FILE_START): Specify complete filename, including - path, in .file directive. - -Sun Aug 29 05:06:43 1999 Russ Allbery - - * gcc.texi (External Bugs): Remove obsolete note about Perl on - SunOS. - -1999-08-29 08:38 -0700 Zack Weinberg - - * stdbool.h: Make the typedef name _Bool, with bool a #defined - alias. - -Sun Aug 29 09:36:50 1999 Kaveh R. Ghazi - - * tree.c (tree_code_name): Constify a char*. - - * tree.h (tree_code_name, decl_printable_name): Likewise. - - * function.h (struct function): Likewise. - - * toplev.c (decl_name, decl_printable_name): Likewise. - - * vax/vms.h (MAYBE_VMS_FUNCTION_PROLOGUE): Likewise. - - * objc/objc-act.c (decl_printable_name): Remove redundant prototype. - (init_objc): Remove function pointer cast. - -Sun Aug 29 05:01:17 1999 John David Anglin - - * pa.md (interspace_jump): New pattern. - (builtin_longjmp): New expander. - -1999-08-29 Bernd Schmidt - - * fp-bit.c (add, sub, multiply, divide, compare, _eq_f2, _ne_f2, - _gt_f2, _ge_f2, _lt_f2, _le_f2, float_to_si, float_to_usi, negate, - sf_to_df, df_to_sf): Fix potential problem with alias analysis. - -Sun Aug 29 04:30:52 1999 John Wehle (john@feith.com) - - * jump.c (delete_prior_computation): Also check calls - to constant functions. Don't bother checking for a - REG_UNUSED note before adding it. - (delete_computation): Handle multi-word hard registers - when synthesizing missing REG_DEAD notes for a register - which is both set and used by an insn. - -1999-08-29 Michael Hayes - - * loop.c (this_loop_info): New variable. - (loop_has_call, loop_has_volatile, loop_has_tablejump, - loop_continue, loops_enclosed): Replace with fields in this_loop_info. - All uses updated. - (prescan_loop, strength_reduce): New argument loop_info. All callers - updated. - (scan_loop): New variable loop_info, initialize to address of - this_loop_info. - (prescan_loop): Set loop_info->vtop if find NOTE_INSN_LOOP_VTOP. - Delete variable loop_has_multiple_exit targets and replace with - field in this_loop_info. - (find_and_verify_loops): Rename this_loop to this_loop_num. - (strength_reduce): Delete loop_iteration_info. Replace variable - loop_info with function argument of same name. - (insert_bct): Rework test for loop being completely unrolled. - - * loop.h (struct loop_info): New fields num, loops_enclosed, - has_call, has_volatile, has_tablejump, has_multiple_exit_targets, - has_indirect_jump, and cont. Redefine use of unroll_number. - (loop_unroll_number): Delete. - - * unroll.c (unroll_loop): Store loop unroll count in unroll_number - field of loop_info. - (loop_iterations): Delete variable vtop and instead use - loop_info->vtop computed in prescan_loop. - -Sun Aug 29 03:27:23 1999 Scott Weikart - - * fix-header.c (main): Do not pass a null pointer to strcmp. - -Sun Aug 29 03:18:48 1999 William Bader (william@nscs.fast.net) - - * configure.in (i[34567]86-*-sco3.2v4*): Target does not truncate - filenames. - * configure: Rebuilt. - -Sat Aug 28 19:36:05 1999 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize_1): Do not delete assignments to - internal_arg_pointer. - * cse.c (delete_trivially_dead_insns): Always consider a set of - the internal_arg_pointer live. - -Sat Aug 28 16:24:31 1999 Richard Henderson - - * flow.c (flow_delete_insn_chain): Rename from delete_insn_chain. - (update_life_info) [REG_WAS_0]: Search the original insns rather - than the new insns for the note. Fix typos finding note_dest. - If no dest found, discard the note rather than abort. - [REG_NOALIAS]: Handle as REG_NO_CONFLICT. - (replace_insns): Remove the old insn list after update_life_info - not before. - -Sat Aug 28 16:20:12 1999 Richard Henderson - - * haifa-sched.c (sched_analyze): Clear LOG_LINKS before calling - sched_analyze_insn. - (sched_analyze_1): Let add_dependence care for not adding dups. - (sched_analyze_2): Likewise. - (add_branch_dependences): Likewise. - -Sat Aug 28 15:58:16 1999 Mumit Khan - - * i386/winnt.c (export_list): New type. - (exports_head): Rename to - (export_head): this. - (i386_pe_record_exported_symbol): Add is_data flag. - (i386_pe_asm_file_end): Emit directive for exported variables. - * i386/cygwin.h (i386_pe_record_exported_symbol): Update - prototype. - * i386/cygwin.h (ASM_OUTPUT_COMMON): Specify symbol type. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - * i386/uwin.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - -Fri Aug 27 15:35:24 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (fold_rtx): Work around bug in Sun V5.0 compilers. - - * pa.c (emit_move_sequence): Do not stop on SUBREG_WORD of an - operand. - -Fri Aug 27 14:01:19 1999 Marc Espie - - * config/openbsd.h: Define SET_ASM_OP. - * tm.texi: cross-reference SET_ASM_OP in the index. - -1999-08-27 13:27 -0700 Zack Weinberg - - * rtl.c: Define CONST_DOUBLE_FORMAT to the appropriate format - for a CONST_DOUBLE, at compile time. Initialize rtx_length - and class_narrowest_mode at compile time. Kill init_rtl. - Mark rtx_length, mode_class, mode_size, mode_unit_size, - mode_wider_mode, mode_mask_array, class_narrowest_mode, and - rtx_format as const. Kill all references to EXTRA_CC_MODES or - EXTRA_CC_NAMES. - * rtl.def (CONST_DOUBLE): Use CONST_DOUBLE_FORMAT macro for - format. - * rtl.h: Declare rtx_length and rtx_format as const. - * machmode.def: Define CC(). Use CC() to define CCmode. If - EXTRA_CC_MODES is defined, expand it here. - * machmode.h: Declare mode_class, mode_size, mode_unit_size, - mode_wider_mode, mode_mask_array, and class_narrowest_mode as - const. Kill all references to EXTRA_CC_MODES. - - * toplev.c: Don't prototype or call init_rtl. - * optabs.c: Don't call init_mov_optab. - * genemit.c: Don't generate init_mov_optab. Don't call - init_rtl. - * gengenrtl.c: Duplicate calculation of CONST_DOUBLE_FORMAT - here. - * genattr.c, genattrtab.c, gencodes.c, genconfig.c, - genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, - genrecog.c: Don't call init_rtl. - - * arc.h, arm.h, c4x.h, i386.h, i960.h, m88k.h, pa.h, pdp11.h, - rs6000.h, sparc.h: Don't define EXTRA_CC_NAMES. Use CC() in - definition of EXTRA_CC_MODES. - - * md.texi: Kill ref to EXTRA_CC_NAMES. - * tm.texi: Document new way to define EXTRA_CC_MODES. - - * genrecog.c: Do not look up the name of a define_split. - (Unrelated bugfix.) - -Fri Aug 27 17:03:42 1999 Nick Clifton - - * config/v850/v850.md: Fix typo introduced by previous delta. - -Fri Aug 27 09:48:59 1999 Kaveh R. Ghazi - - * gcc.c (fatal): Make definition static to match prototype. - -Fri Aug 27 10:33:35 1999 Bernd Schmidt - - * combine.c (get_last_value): Don't look for earlier sets if the last - known set is somewhere in between the insns being combined. - -Fri Aug 27 10:03:12 BST 1999 Nathan Sidwell - - * configure.in: Don't use shell ! to negate exit codes - * configure: Regenerate - -Fri Aug 27 09:36:17 1999 Andreas Schwab - - * function.c (assign_stack_temp_for_type): Fix change of Mar 5 for - the fact that ALIGN is measured in bits, not bytes. - -1999-08-27 00:27 -0700 Zack Weinberg - - * errors.c: New file; defines functions error, warning, and - fatal, variables have_error and progname. - * errors.h: New file; prototypes and decls for stuff in errors.c. - - * Makefile: Add rules to build errors.o and - $(HOST_PREFIX)errors.o. Link genconfig, gencodes, genemit, - genopinit, genrecog, genextract, genpeep, genattr, and - genoutput with errors.o. Add errors.h to deps of genconfig.o, - gencodes.o, genemit.o, genopinit.o, genrecog.o, genextract.o, - genpeep.o, genattr.o, and genoutput.o. - - * genconfig.c, gencodes.c, genemit.c, genopinit.c, genrecog.c, - genextract.c, genpeep.c, genattr.c: Include errors.h. Don't - define or prototype fatal. Set progname at beginning of main. - * genoutput.c: Likewise, and don't define or prototype error - either. - - * c-typeck.c (c_expand_start_case): Return immediately if exp - is an ERROR_MARK. - * fold-const.c (operand_equal_p): Return immediately if arg1 - or arg0 are ERROR_MARKs. - * stor-layout.c (layout_type [case RECORD_TYPE]): Ignore - fields of type ERROR_MARK when calculating if the record can - go in a register. - -Fri Aug 27 01:03:48 1999 Jim Kingdon - with much help from Jeffrey A Law and Richard Henderson - - * i386.md: In the 6 insns which call output_fix_trunc, - earlyclobber operands[0]. - -Fri Aug 27 01:01:51 1999 Philip Blundell - - * jump.c (duplicate_loop_exit_test): Call reg_scan_update after - creating new registers. - -1999-08-26 23:09 -0700 Zack Weinberg - - * i386.h: Declare ix86_cpu_string, ix86_arch_string, - i386_reg_alloc_order, i386_regparm_string, - i386_align_loops_string, i386_align_jumps_string, - i386_align_funcs_string, i386_preferred_stack_boundary_string, - and i386_branch_cost_string as type "const char *". - * i386.c: Define all above strings as type "const char *". - -Thu Aug 26 20:36:30 1999 Jim Wilson - - * dwarf2out.c (output_aranges): Check DWARF_OFFSET_SIZE not PTR_SIZE - when emitting alignment padding. Emit padding byte of 0 instead of 4. - -Thu Aug 26 18:11:20 1999 Mark Mitchell - - * tree.c (array_type_nelts): Don't create RTL_EXPRs from - SAVE_EXPRs unless the SAVE_EXPRs have already been expanded. - -Thu Aug 26 19:33:23 1999 Jim Wilson - - * dwarf2out.c (DWARF2_ASM_LINE_DEBUG_INFO): Add default definition. - (debug_dwarf): Add DWARF2_ASM_LINE_DEBUG_INFO support. - (dwarf2out_line, dwarf2out_finish): Likewise. - * tm.texi (DWARF2_ASM_LINE_DEBUG_INFO): Add documentation. - -Thu Aug 26 16:10:56 1999 Gavin Romig-Koch - - * tree.c (lang_unsave_expr_now) : Correct return type. - * tree.h (lang_unsave_expr_now) : Same. - -Thu Aug 26 13:12:29 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (cint_ok_for_move): Use CONST_INT_OK_FOR_LETTER_P macros - instead of duplicating code. - -Thu Aug 26 18:32:32 1999 Bernd Schmidt - - * gcse.c (hash_scan_insn): Don't scan obvious no-ops. - -1999-08-26 09:42 -0700 Zack Weinberg - - * tree.h: fancy_abort always takes three args. - * resource.c: Move include of system.h before toplev.h. - -Thu Aug 26 09:46:16 1999 Nick Clifton - - * dwarf2out.c (mem_loc_descriptor): Accept LABEL_REFs as well - as SYMBOL_REFs. - -1999-08-25 22:10 -0700 Zack Weinberg - - * system.h: Don't redefine abort or trim_filename. - * rtl.h: Define abort to fancy_abort (__FILE__, __LINE__, 0) - or fancy_abort (__FILE__, __LINE__, __FUNCTION__) depending on - whether or not __FUNCTION__ is available. - * tree.h: Duplicate rtl.h's definition of abort, for files - that don't include rtl.h. Delete all code to perform type - checking with a compiler other than GCC. - * varray.h: Delete all code to perform type checking with a - compiler other than GCC. Make VARRAY_CHECK() always evaluate - its arguments exactly once, using a statement expression. - Adjust the VARRAY_ accessor macros to match. - * toplev.h (fatal_insn, fatal_insn_not_found): Kill. - (_fatal_insn, _fatal_insn_not_found): New fns, take info on - caller's location. Define fatal_insn and fatal_insn_not_found - as macros that use _fatal_insn and _fatal_insn_not_found. - (fancy_abort, trim_filename): Kill prototypes. - - * rtl.c (trim_filename): Move here from toplev.c. - (fancy_abort): New function. - (DIR_SEPARATOR): Provide default definition. - * tree.c (tree_check_failed, tree_class_check_failed): Go - through fancy_abort. - (tree_check, tree_class_check, cst_or_constructor_check, - expr_check): Delete. - * varray.c (varray_check_failed): New function. - * toplev.c (fatal_insn, fatal_insn_not_found): Replace with - _fatal_insn and _fatal_insn_not_found. Go through - fancy_abort. - (trim_filename, fancy_abort): Delete. - - * builtins.c (expand_builtin_args_info): Report ICE with abort. - * except.c (start_catch_handler): Report ICE with error/abort - combo. - * final.c (output_operand_lossage): Likewise. - * flow.c (verify_flow_info): Likewise. - - * gcc.c: Prototype fatal. - * gengenrtl.c: Undef abort after including rtl.h not system.h. - * genattr.c, genattrtab.c, genemit.c, genextract.c, - genflags.c, genopinit.c, genoutput.c, genpeep.c, genrecog.c: - Don't define fancy_abort. - -Wed Aug 25 17:56:59 1999 Richard Henderson - - * optabs.c (emit_cmp_and_jump_insns): Be more thorough in - canonization. - -Wed Aug 25 15:35:55 1999 Richard Henderson - - * m88k.h (VERSION_INFO2): Kill. - (VERSION_STRING): Kill. - (TM_RCS_ID): Kill. - (VERSION_INFO1): Tidy. - (TARGET_VERSION): Update. - * m88k/dgux.h (VERSION_INFO2): Kill. - (ASM_FIRST_LINE): Adjust for death of VERSION_STRING. - * m88k/luna.h (VERSION_INFO1): Tidy. - * m88k/sysv4.h (VERSION_INFO1): Likewise. - * m88k.c (out_rcs_id, tm_rcs_id): Kill. - (output_file_start): Adjust for death of VERSION_STRING. - -1999-08-25 13:51 -0700 Jim Meyering - - * cpplib.c (detect_if_not_defined): New function. - (do_if): Use it to detect potential once-only headers. - -Wed Aug 25 14:00:18 1999 Jason Merrill - - * c-common.c (combine_strings): Always set TREE_CONSTANT. - -Wed Aug 25 15:27:22 1999 Gavin Romig-Koch - - * combine.c (nonzero_bits) : Allow single-ly set registers to be - anywere in the function only if they are pseudos and set before - being used (not live at the start of the function). - (num_sign_bit_copies) : Same. - (get_last_value_validate) : Same. - (get_last_value) : Same. - -Wed Aug 25 11:13:29 1999 Richard Henderson - - * loop.c (express_from): Try harder to unify (* c N) and (* c M) - where N and M are constant and N is an integer multiple of M. - -Wed Aug 25 13:55:47 EDT 1999 Andrew MacLeod - - * sbitmap.h (sbitmap_intersection_of_succs): Add prototype. - (sbitmap_intersection_of_preds, sbitmap_union_of_succs, - sbitmap_union_of_preds): Add prototypes. - * sbitmap.c (sbitmap_intersection_of_succs): New function to compute - the intersection of successors with the new flow graph structures. - (sbitmap_intersection_of_preds): New function to compute the - intersection of predecessors with the new flow graph structures. - (sbitmap_union_of_succs): New function to compute the union of - successors with the new flow graph structures. - (sbitmap_union_of_preds): New function to compute the union of - predecessors with the new flow graph structures. - * gcse.c (compute_rdm, compute_available): Use new sbitmap routines. - (expr_reaches_here_p): Use edge and basic_block structures instead - of s_preds and s_succs. - (compute_cprop_avinout): Use new sbitmap routines. - (pre_expr_reaches_here_p): Use edge and basic_block structures instead - of s_preds and s_succs. - * flow.c (compute_flow_dominators): Compute dominators using - edges and basic blocks instead of s_preds and s_succs. - -Wed Aug 25 13:41:47 EDT 1999 Andrew MacLeod - - * lists.c (unused_insn_list, unused_expr_list): New file for - maintaining various types of lists. New statics for maintaining a - cache of available INSN_LIST and EXPR_LIST nodes. - (free_list): Static function for freeing a list of INSN/EXPR nodes. - (alloc_INSN_LIST): Function to get a free INSN_LIST node. - (alloc_EXPR_LIST): Function to get a free EXPR_LIST node. - (init_EXPR_INSN_LIST_cache): Initialize the cache lists. - (free_EXPR_LIST_list): Free an entire list of EXPR_LIST nodes. - (free_INSN_LIST_list): Free an entire list of INSN_LIST nodes. - (free_EXPR_LIST_node): Free an individual EXPR_LIST node. - (free_INSN_LIST_node): Free an individual INSN_LIST node. - * haifa-sched.c (unused_insn_list, unused_expr_list): Moved to flow.c - (free_list, alloc_INSN_LIST, alloc_EXPR_LIST): Moved to flow.c - (remove_dependence, free_pending_lists): Use new global routines. - (flush_pending_lists, sched_analyze_insn): Use new global routines. - (sched_analyze, compute_block_backward_dependences): Use new routines. - (sched_analyze_1, sched_analyze_2): Use new routines. - (schedule_insns): Use new global routines. - * rtl.h (init_EXPR_INSN_LIST_cache, free_EXPR_LIST_list): Add function - prototypes. - (free_INSN_LIST_list, free_EXPR_LIST_node): Add prototypes. - (free_INSN_LIST_node, alloc_INSN_LIST, alloc_EXPR_LIST): Add function - prototypes. - * toplev.c (rest_of_compilation): Initialize node cache. - * Makefile.in (OBJS): Add lists.o to list of object files. - (lists.o): Add dependencies. - -Wed Aug 25 17:31:56 1999 Nick Clifton - - * config/v850/v850.md: Fix compile time warning messages. - * config/v850/v850.c: Fix compile time warning messages. - * config/v850/v850.h: Fix compile time warning messages. - -Wed Aug 25 09:44:43 1999 Kaveh R. Ghazi - - * genattr.c (gen_attr): Add prototype arguments for get_attr_*(). - Remove unused prototype for `init_lengths'. - -Wed Aug 25 09:32:31 1999 Kaveh R. Ghazi - - * calls.c (emit_call_1): Mark parameter `stack_size' with - ATTRIBUTE_UNUSED. - (expand_call): Initialize variable `insn'. - (emit_library_call): Likewise for variable `high_to_save'. - (emit_library_call_value): Likewise. - (store_one_arg): Likewise for variables `lower_bound' and - `upper_bound'. - - * combine.c (try_combine): Likewise for variables `i2_code_number' - and `other_code_number'. - (find_split_point): Likewise for variables `pos', `unsignedp' and - `inner'. - (simplify_if_then_else): Likewise for variables `op' and `c1'. - (simplify_and_const_int): Remove unused variable `width'. - (merge_outer_ops): Likewise. - - * cse.c (simplify_binary_operation): Cast an INTVAL() to `unsigned - HOST_WIDE_INT' when comparing against one. - (simplify_relational_operation): Likewise. - (cse_insn): Initialize variables `src_eqv_volatile', - `src_eqv_in_memory', `src_eqv_in_struct', `src_eqv_hash' and `sets'. - - * final.c (init_final): Constify parameter `filename'. - (final_start_function): Mark parameter `optimize' with - ATTRIBUTE_UNUSED. - (profile_function): Likewise for parameters `first' and `optimize'. - (output_source_line): Likewise for parameter `file'. - - * integrate.c (subst_constants): Cast a value to `size_t' when - comparing against one. - (mark_stores): Initialize variable `mode'. Cast a value to - `size_t' when comparing against one. - - * integrate.h (MAYBE_EXTEND_CONST_EQUIV_VARRAY): Likewise. - - * loop.c (move_movables): Initialize variable `first'. - (strength_reduce): Likewise for variable `increment'. - (check_dbra_loop): Likewise for variable `comparison_val'. Cast a - value to `size_t' when comparing against one. - (load_mems): Initialize variable `end_label'. - - * output.h (init_final): Constify parameter. - - * reload.c (decompose): Initialize variable `base'. - - * reload1.c (reload): Likewise for variable `is_scalar'. - (spill_hard_reg): Mark parameter `dumpfile' with ATTRIBUTE_UNUSED. - (choose_reload_regs): Initialize variable `mode'. - (emit_reload_insns): Likewise for variable `store_insn'. - (reload_cse_noop_set_p): Mark parameter `insn' with - ATTRIBUTE_UNUSED. - (reload_combine): Initialize variable `set'. - - * unroll.c (unroll_loop): Likewise for variable `local_label'. - (copy_loop_body): Cast a value to `size_t' when comparing against - one. - - * varasm.c (assemble_variable): Initialize variable `size_tree'. - (const_hash): Add an `else abort()' in an if-else-if-else sequence. - (remove_from_pending_weak_list): Mark parameter `name' with - ATTRIBUTE_UNUSED. - -Wed Aug 25 11:18:39 1999 Bernd Schmidt - - * toplev.c (rest_of_compilation): Use decl_printable_name when opening - gcse dump file. - -Wed Aug 25 10:57:12 1999 Nick Clifton - - * config/arm/telf.h (ASM_WEAKEN_LABEL): Define. - (ASM_DECLARE_FUNCTION_NAME): Define. - (TYPE_ASM_OP, SIZE_ASM_OP, TYPE_OPERAND_FORMAT, - ASM_DECLARE_RESULT, ASM_DECLARE_OBJECT_NAME, - ASM_FINISH_DECLARE_OBJECT, ASM_DECLARE_FUNCTION_SIZE): Define if - not already defined. - -Wed Aug 25 01:36:11 1999 John David Anglin - - * calls.c (emit_call_1): Use call_pop/call_value_pop for all values - of n_popped when call/call_value are not defined. - -Wed Aug 25 01:25:14 1999 Jeffrey A Law (law@cygnus.com) - - * tm.texi: GNU CC -> GCC conversion. - (CC1_SPEC): Indicate it is used for all language front ends. - -Tue Aug 24 23:43:03 1999 Mark Mitchell - - * flow.c (delete_block): Spell NOTE_INSN_EH_REGION_BEG and - NOTE_INSN_EH_REGION_END correctly. - -Tue Aug 24 23:26:44 1999 Michael Tiemann - Jeff Law - - * loop.c (strength_reduce): Automatically unroll loops if the - unrolled loop size is smaller than the rolled loop size. - - * loop.c (insert_bct): Replace use of sdiv_optab with asr_optab - and delete comment that code should be rewritten. - -Tue Aug 24 22:56:35 1999 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (find_rgns): Mark a block found during the DFS search - as reachable. - - * haifa-sched.c (get_visual_tbl_length): Fix off-by-one error. - -Tue Aug 24 22:41:06 1999 Mumit Khan - - * fixinc/mkfixinc.sh: Don't fix uwin headers. - * i386/uwin.h (MD_STARTFILE_PREFIX): Define. - (LINK_SPEC): Add -u _main when building executables. - (ASM_DECLARE_FUNCTION): Update from Cygwin. - (ASM_FILE_END): Use the default for ix86-pe. - * i386/xm-uwin.h (HAVE_BCOPY): Undefine. - -Tue Aug 24 20:49:47 1999 Art Haas - - * final.c (output_addr_const): Handle case where ASM_OPEN_PAREN - and ASM_CLOSE_PAREN are empty strings. - -Wed Aug 25 12:46:22 1999 Fred Fish - Geoffrey Keating - - * Makefile.in (PREPROCESSOR_DEFINES): New macro. - (protoize.o): Use PREPROCESSOR_DEFINES and DRIVER_DEFINES. - (unprotoize.o): Ditto. - (test-protoize-simple): Don't define STD_PROTO_DIR. - * protoize.c: Use PARAMS rather than PROTO. Minor whitespace - changes to make 'test-protoize-simple' pass. - (STD_PROTO_DIR): Remove define. - (STANDARD_EXEC_PREFIX): Supply default define. - (standard_exec_prefix): New variable, init to STANDARD_EXEC_PREFIX. - (target_machine): New variable, init to DEFAULT_TARGET_MACHINE. - (target_version): New variable, init to DEFAULT_TARGET_VERSION. - (GET_ENV_PATH_LIST): New macro. - (default_syscalls_dir): No longer initialized to STD_PROTO_DIR. - (do_processing): Initialize default_syscalls_dir using new - macros. Use it to initialize syscalls_absolute_filename. - -Tue Aug 24 16:58:15 1999 Richard Henderson - - * jump.c (jump_optimize_1): Do cmov opt on any single-set; force - B into a register before emit_conditional_move. - -Tue Aug 24 15:37:03 1999 Richard Henderson - - * fold-const.c (fold): Reassociate (+ (+ (* a b) c) (* d e)) - as (+ (+ (* a b) (* d e)) c). Factor a common power-of-two - multiplicand out of (+ (* a b) (* c d)). - -Tue Aug 24 11:46:10 1999 Bob Manson - Richard Henderson - - * haifa-sched.c (split_hard_reg_notes): Move to flow.c - (new_insn_dead_notes): Likewise. - (update_n_sets): Likewise. - (update_flow_info): Move to flow.c, renamed to update_life_info; - extend to handle multiple source insns. - * flow.c: Include resource.h - (unlink_insn_chain): New. - (split_hard_reg_notes): New. - (maybe_add_dead_note): New. - (maybe_add_dead_note_use): New. - (find_insn_with_note): New. - (new_insn_dead_notes): New. - (update_n_sets): New. - (sets_reg_or_subreg_1, sets_reg_or_subreg): New. - (maybe_remove_dead_notes): New. - (update_life_info): New. - (prepend_reg_notes): New. - (replace_insns): New. - * output.h (update_life_info): Declare. - * recog.c (split_block_insns): Use update_life_info. - * resource.c (find_free_register): Use reg_alloc_order, don't use - fixed regs, make sure the mode is supported, don't use new regs. - (reg_dead_p): New. - * rtl.h (replace_insns): Declare. - -Tue Aug 24 13:48:39 1999 Nathan Sidwell - - * expr.c (expand_expr): Cope with COND_EXPRs with one - non-returning branch. - -Mon Aug 23 22:28:16 1999 Mark Mitchell - - * expr.c (store_expr): Always pass down the target, even when not - doing CSE. - -1999-08-24 Nick Clifton - - * configure.in: Define target_cpu_default for v850 targets. - * configure: Regenerate - - * config/v850/v850.h (TARGET_CPU_generic): Define. - (GO_IF_LEGITIMATE_ADDRESS): Insist that SImode and larger constant - addresses are 4 byte aligned. - - * config/v850/v850.c (print_operand): Cope with 'R' format DFmode - addresses. - -Tue Aug 24 09:32:07 1999 Kaveh R. Ghazi - - * genattr.c (function_unit_desc): Constify a char*. Add prototype. - (main): Add prototypes. - - * genattrtab.c (substitute_address, write_const_num_delay_slots, - attr_eq, attr_numeral, attr_equal_p, attr_copy_rtx): Prototype. - (write_attr_get): Emit prototypes along with function definition. - (write_eligible_delay): Mark a parameter with ATTRIBUTE_UNUSED. - (write_complex_function): Emit static prototype along with - function definition. - - * genemit.c (gen_split): Emit prototypes along with function - definition. - - * genoutput.c (output_epilogue): Add prototype to `insn_outfun'. - Likewise for predicates and `insn_operand_predicate'. - (process_template): Emit static prototype along with function - definition. - - * genrecog.c (make_insn_sequence): Constify a char*. Add - prototypes for get_split_*(). - (write_subroutine): Emit prototypes along with function - definition. - -Tue Aug 24 12:35:20 1999 Bernd Schmidt - - * gcse.c (find_avail_set): Follow chains of register-register copies. - Use oprs_not_set_p to guarantee that the returned value can be - substituted. - (cprop_insn): Don't verify the return value of find_avail_set with - oprs_not_set_p. - - * gcse.c (cprop_jump): New function, broken out of cprop_insn. - (cprop_cc0_jump): New function. - (cprop_insn): Break out new function cprop_jump and use it. - Also use cprop_cc0_jump for machines with CC0. - (cprop): Don't crash if cprop_insn turned the insn into a NOTE. - - * tree.h (current_function_calls_setjmp, - current_function_calls_longjmp): Delete declarations. - * dsp16xx.c: Include "function.h". - * elxsi.c: Likewise. - * gmicro.c: Likewise. - * h8300.c: Likewise. - * i370.c: Likewise. - * m32r.c: Likewise. - * mn10200.c: Likewise. - * mn10300.c: Likewise. - * ns32k.c: Likewise. - * spur.c: Likewise. - * v850.c: Likewise. - - * rtl.h (rtx_equal_function_value_matters): Declare. - * toplev.c (rtx_equal_function_value_matters): Don't declare. - * cse.c: Likewise. - * function.c: Likewise. - * emit-rtl.c: Likewise. - -Tue Aug 24 02:47:44 1999 Jeffrey A Law (law@cygnus.com) - - * expr.c (convert_move): Fix arguments to TRULY_NOOP_TRUNCATION - call. - -1999-08-24 Herman A.J. ten Brugge - - * jump.c (delete_barrier_successors) Match (set (pc) (pc)) insn - exactly. - -Mon Aug 23 23:35:52 1999 Matthias Klose - - * cpp.texi: Add a node documenting macro varargs (copied - from extend.texi). - -1999-08-23 22:23 -0700 Zack Weinberg - - * cppspec.c: Put a null pointer at the end of the new argv. - -Mon Aug 23 21:23:24 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in: Remove code to select/de-select the haifa - scheduler. Every scheduled port gets haifa now. - * configure: Rebuilt. - * flags.h, genattrtab.c, rtl.h, toplev.c: Remove HAIFA ifdefs. - * sched.c Deleted. - * Makefile.in: Corresponding changes. - -Mon Aug 23 16:04:13 1999 Bernd Schmidt - - * optabs.c (prepare_cmp_insn): Turn COMPARISON arg into a pointer. - All callers changed. - (prepare_float_lib_cmp): Likewise. - Use FLOAT_LIB_COMPARE_RETURNS_BOOL. - * expr.h (emit_float_lib_cmp): Delete declaration. - * tm.texi (FLOAT_LIB_COMPARE_RETURNS_BOOL): Document. - * sparc.h (FLOAT_LIB_COMPARE_RETURNS_BOOL): Define. - * sparc.md (bcc and scc patterns): Don't handle TFmode comparisons - specially. - (cmptf): Now conditional on TARGET_HARD_QUAD. - -Fri Aug 20 17:52:27 1999 Jim Wilson - - * resource.c (mark_target_live_regs): Use - PIC_OFFSET_TABLE_REG_CALL_CLOBBERED. - -Fri Aug 20 19:07:55 1999 Kaveh R. Ghazi - - * rtl.c (rtx_class, note_insn_name, reg_note_name): Constify. - - * rtl.h (rtx_class, reg_note_name, note_insn_name): Likewise. - - * genopinit.c (gen_insn): Use accessor macro, not `rtx_class'. - -Fri Aug 20 18:53:43 1999 Kaveh R. Ghazi - - * rtl.h (rtx_format): Constify a char*. - - * rtl.c (rtx_format): Likewise. - (copy_rtx, copy_most_rtx, read_rtx): Likewise. - (init_rtl): Use accessor macro, not `rtx_format'. - - * alias.c (rtx_equal_for_memref_p, find_symbolic_term): Constify a - char*. - - * caller-save.c (mark_referenced_regs): Likewise. - - * combine.c (subst, make_compound_operation, known_cond, - gen_rtx_combine, update_table_tick, get_last_value_validate, - use_crosses_set_p, mark_used_regs_combine, move_deaths): Likewise. - - * cse.c (rtx_cost, mention_regs, canon_hash, exp_equiv_p, - refers_to_p, canon_reg, fold_rtx, cse_process_notes, - count_reg_usage): Likewise. - - * emit-rtl.c (gen_rtx, copy_rtx_if_shared, reset_used_flags): - Likewise. - - * final.c (leaf_renumber_regs_insn): Likewise. - - * flow.c (mark_used_regs, find_use_as_address, dump_flow_info, - dump_edge_info, count_reg_references): Likewise. - - * function.c (fixup_var_refs_1, walk_fixup_memory_subreg, - fixup_stack_1, purge_addressof_1, instantiate_virtual_regs_1): - Likewise. - - * gcse.c (oprs_unchanged_p, hash_expr_1, expr_equiv_p, - oprs_not_set_p, expr_killed_p, compute_transp, find_used_regs, - add_label_notes): Likewise. - - * genattrtab.c (attr_rtx, attr_copy_rtx, encode_units_mask, - clear_struct_flag, count_sub_rtxs, count_alternatives, - compares_alternatives_p, contained_in_p, walk_attr_value, - write_expr_attr_cache): Likewise. - - * genconfig.c (walk_insn_part): Likewise. - - * genemit.c (max_operand_1, gen_exp): Likewise. - - * genextract.c (walk_rtx): Likewise. - - * genflags.c (num_operands): Likewise. - - * genoutput.c (scan_operands): Likewise. - - * genpeep.c (match_rtx): Likewise. - - * genrecog.c (add_to_sequence): Likewise. - - * haifa-sched.c (may_trap_exp, sched_analyze_2, attach_deaths): - Likewise. - - * integrate.c (save_constants, copy_for_inline, - copy_rtx_and_substitute, subst_constants, restore_constants): - Likewise. - - * jump.c (mark_jump_label, invert_exp, redirect_exp, - rtx_renumbered_equal_p, rtx_equal_for_thread_p): Likewise. - - * local-alloc.c (contains_replace_regs, memref_referenced_p): - Likewise. - - * loop.c (record_excess_regs, rtx_equal_for_loop_p, - add_label_notes, replace_call_address, count_nonfixed_reads, - invariant_p, find_single_use_in_loop, find_mem_givs, - find_life_end, maybe_eliminate_biv_1, update_reg_last_use): - Likewise. - - * print-rtl.c (reg_names, print_rtx): Likewise. - - * recog.c (validate_replace_rtx_1, find_single_use_1): Likewise. - - * reg-stack.c (stack_regs_mentioned_p, record_label_references, - record_reg_life_pat, swap_rtx_condition, goto_block_pat, - print_blocks): Likewise. - - * regclass.c (fix_register, record_address_regs, - reg_scan_mark_refs): Likewise. - - * regmove.c (stable_but_for_p): Likewise. - - * reload.c (loc_mentioned_in_p, operands_match_p, - find_reloads_toplevsubst_reg_equivs, find_reloads_address_1, - copy_replacements, refers_to_regno_for_reload_p, - refers_to_mem_for_reload_p, find_inc_amount, regno_clobbered_p, - reload_when_needed_name, reg_class_names, debug_reload_to_stream): - Likewise. - - * reload1.c (eliminate_regs, scan_paradoxical_subregs, - delete_address_reloads_1, count_occurrences, - reload_cse_mem_conflict_p, reload_combine_note_use, - add_auto_inc_notes): Likewise. - - * resource.c (mark_referenced_resources, mark_set_resources): - Likewise. - - * rtlanal.c (rtx_unstable_p, rtx_varies_p, rtx_addr_varies_p, - reg_mentioned_p, regs_set_between_p, modified_between_p, - modified_in_p, refers_to_regno_p, reg_overlap_mentioned_p, - rtx_equal_p, volatile_insn_p, volatile_refs_p, side_effects_p, - may_trap_p, inequality_comparisons_p, replace_rtx, replace_regs, - jmp_uses_reg_or_mem, for_each_rtx, regno_use_in): Likewise. - - * sched.c (sched_analyze_2, attach_deaths): Likewise. - - * stupid.c (stupid_mark_refs): Likewise. - - * unroll.c (remap_split_bivs): Likewise. - - * varasm.c (mark_constants): Likewise. - - * a29k/a29k.c (uses_local_reg_p): Likewise. - - * alpha/alpha.c (summarize_insn): Likewise. - - * arm/arm.c (symbol_mentioned_p, label_mentioned_p, - eliminate_lr2ip): Likewise. - - * arm/thumb.c (symbol_mentioned_p, label_mentioned_p): Likewise. - - * i386/i386.c (symbolic_reference_mentioned_p, copy_all_rtx, - reg_mentioned_in_mem): Likewise. - - * ns32k/ns32k.c (global_symbolic_reference_mentioned_p, - symbolic_reference_mentioned_p): Likewise. - - * romp/romp.c (unsigned_comparisons_p, hash_rtx): Likewise. - - * sh/sh.c (regs_used, mark_use): Likewise. - - * vax/vax.c (vax_rtx_cost): Likewise. - -Fri Aug 20 18:38:43 1999 Kaveh R. Ghazi - - * machmode.h (mode_name): Constify a char*. - - * rtl.c (mode_name): Likewise. - - * genopinit.c (gen_insn): Use accessor macro, not `mode_name'. - - * optabs.c (init_libfuncs): Constify a char*. - - * print-tree.c (mode_name): Remove redundant declaration. - (print_node): Use accessor macro, not `mode_name'. - - * reload1.c (dump_needs): Constify a char*. Use accessor macro, - not `mode_name'. - (new_spill_reg): Constify a char*. - - * tree.c (mode_name): Remove redundant declaration. - -Fri Aug 20 18:31:26 1999 Kaveh R. Ghazi - - * rtl.c (rtx_name): Constify a char*. - - * rtl.h (rtx_name, fix_sched_param): Likewise. - - * gmicro/gmicro.c (rtx_name): Remove redundant declaration. - (mypr): Use accessor macro, not `rtx_name'. - - * genemit.c (print_code): Constify a char*. - - * genopinit.c (gen_insn): Use accessor macro, not `rtx_name'. - - * genpeep.c (print_code): Constify a char*. - - * genrecog.c (print_code): Likewise. - - * graph.c (start_fct, start_bb, node_data, draw_edge, end_fct, - end_bb): Add static prototype. - (draw_edge): Constify a char*. - (end_bb): Remove unused parameter. - - * haifa-sched.c (fix_sched_param, safe_concat, print_exp - print_block_visualization): Constify a char*. - -Fri Aug 20 15:02:10 1999 Mark Mitchell - - * c-common.c (c_get_alias_set): Update comment. - -1999-08-20 Andreas Jaeger - - * linux.h (LIB_SPEC): Added. - -Fri Aug 20 22:32:17 1999 Michael Hayes - - * config/c4x/c4x.h (STARTFILE_SPEC): Don't def. - -1999-08-19 18:43 -0700 Zack Weinberg - - * tree.c (expr_check): Fix typo in last change. - -1999-08-19 14:44 -0700 Zack Weinberg - - * rtl.def (NOTE): Change format to "iuu0n". - (ADDR_DIFF_VEC): Change format to "eEee0". - (ADDRESSOF): Change format to "eit". - - * rtl.h (rtvec): Make "elem" an array of rtx, not rtunion. - (RTVEC_ELT): Change to match. - (XVECEXP): Use XVEC and RTVEC_ELT. - (INSN_UID, INSN_CODE, CODE_LABEL_NUMBER, NOTE_LINE_NUMBER, - ADDRESSOF_REGNO, REGNO, SUBREG_WORD): Use XINT. - (PREV_INSN, NEXT_INSN, PATTERN, REG_NOTES, - CALL_INSN_FUNCTION_USAGE, SUBREG_REG, SET_SRC, SET_DEST, - TRAP_CONDITION, TRAP_CODE): Use XEXP. - (INTVAL): Use XWINT. - (ADDRESSOF_DECL): Use XTREE. - (SET_ADDRESSOF_DECL): Delete. - (NOTE_DECL_NAME, NOTE_DECL_CODE, NOTE_DECL_RTL, - NOTE_DECL_IDENTIFIER, NOTE_DECL_TYPE): Kill. These have been - ifdefed out since 2.6 at least. - (gen_rtvec_vv): Delete prototype. - - * rtl.h (rtvec_alloc): rt->elem is now an array of rtx, - not rtunion. - (copy_most_rtx): Handle 't' format letter. - * emit-rtl.c (gen_rtvec_v): rt_val->elem is an array of rtx. - (gen_rtvec_vv): Delete function. All callers changed to use - gen_rtvec_v instead. - * print-rtl.c (print_rtx): Move special casing of NOTEs to - the '0' format letter. - - * function.c (gen_mem_addressof): Don't use - SET_ADDRESSOF_DECL; provide `decl' to gen_rtx_ADDRESSOF - instead. - * integrate.c (copy_rtx_and_substitute): Likewise. - Copy 't' slots with XTREE. - (subst_constants): Treat 't' slots like '[swi]' slots. - * cse.c (canon_hash, exp_equiv_p): Treat 't' slots like '0' slots. - * jump.c (rtx_equal_for_thread_p): Likewise. - * rtlanal.c (rtx_equal_p): Likewise. - * stmt.c (expand_end_case): gen_rtx_ADDR_DIFF_VEC now takes - only four arguments. - * gengenrtl.c (type_from_format): Provide correct types for - 'b' and 't' slots. - - - * tree.h [ENABLE_CHECKING] (TREE_CHECK, TREE_CLASS_CHECK): - If a recent gcc is in use (always in stage2 and beyond), use - statement expressions, so we don't make a function call unless - the check fails. Evaluate arguments exactly once. - (CHAIN_CHECK, DO_CHECK, DO_CHECK1, TREE_CHECK1, - TREE_CLASS_CHECK1, TYPE_CHECK1, DECL_CHECK1, CST_CHECK1): - Delete. - (CST_OR_CONSTRUCTOR_CHECK, EXPR_CHECK): Redefine such that - they evaluate their arguments exactly once, irrespective of - the compiler in use. - - * tree.c [ENABLE_CHECKING]: Define whichever set of functions - is used by the currently-enabled check macros. This is: - (tree_check_failed, tree_class_check_failed): For gcc. - (tree_check, tree_class_check, cst_or_constructor_check, - expr_check): For other compilers. - - * gencheck.c: Do not define any *_CHECK1 macros. - -Thu Aug 19 14:42:38 1999 Mike Stump - Mark Mitchell - - * c-common.c (c_get_alias_set): Fix support for pointers and - references. - -Thu Aug 19 11:51:22 EDT 1999 John Wehle (john@feith.com) - - * alias.c: Include tree.h. - (nonlocal_reference_p, mark_constant_function): New functions. - * flow.c (life_analysis): Call mark_constant_function. - * rtl.h (mark_constant_function): Declare it. - -Thu Aug 19 15:02:01 1999 Nick Clifton - - * config/rs6000/rs6000.c (rs6000_override_options): Fix test for - unrecognizable switches. - -Wed Aug 18 23:31:57 1999 J"orn Rennecke - - * loop.c (recombine_givs): Set ix field after sorting. - (recombine_givs): Remove bogus index / giv lockstep looping. - -Wed Aug 18 18:20:40 1999 Bernd Schmidt - - * expmed.c (emit_store_flag): If UNSIGNEDP, call unsigned_condition - on CODE. - (emit_store_flag_force): Use do_compare_rtx_and_jump. - (do_cmp_and_jump): Formatting fixes. - * expr.c (do_compare_and_jump): Renamed from compare; changed to call - do_compare_rtx_and_jump instead of compare_from_rtx. - (do_compare_rtx_and_jump): New function; mostly copied from - compare_from_rtx. - (do_jump_for_compare): Delete. - (expand_expr): Use do_compare_rtx_and_jump when handling MAX_EXPR and - MIN_EXPR. - (do_jump): Use do_compare_and_jump or do_compare_rtx_and_jump instead - of compare/do_jump_for_compare pairs. - (do_jump_by_parts_greater): Use do_jump_by_parts_greater_rtx. - (do_jump_by_parts_greater_rtx): Use do_compare_rtx_and_jump instead of - compare_from_rtx/do_jump_for_compare pairs. - (do_jump_by_parts_equality): Likewise. - (do_jump_by_parts_equality_rtx): Likewise. - * expr.h (do_compare_rtx_and_jump): Declare. - * optabs.c (prepare_cmp_insn): New function, contains most of the code - that used to be in emit_cmp_insn. - (cmp_available_p): New function. - (prepare_operand): New function. - (emit_cmp_and_jump_insn_1): New function, contains some code that used - to be in emit_cmp_insn. - (prepare_float_lib_cmp): Renamed from emit_float_lib_cmp; change some - parameters to be pointers; don't emit final compare but modify some of - the values pointed to by the args so the caller can perform the - correct comparison. - (expand_binop): Call emit_store_flag_force with signed forms of - comparison code. - (expand_abs): Use do_compare_rtx_and_jump instead of compare_from_rtx/ - emit_jump_insn pair. - (emit_cmp_and_jump_insn): Use prepare_cmp_insn and - emit_cmp_and_jump_insn_1. Call emit_queue. - (emit_cmp_insn): Just call emit_cmp_and_jump_insns with zero for LABEL - arg. - * flow.c (tidy_fallthru_edge): If HAVE_cc0, verify insn before a - jump sets cc0 before deleting it. - * integrate.c (expand_inline_function): Likewise. - * unroll.c (unroll_loop): Similar changes in several places. - (copy_loop_body): If HAVE_cc0, verify insn before a jump sets cc0 - before deleting it. - -Wed Aug 18 06:37:44 1999 Bernd Schmidt - - * Makefile.in (insn-recog.o): Update dependencies. - * genrecog.c (main): Make generated file include "function.h". - -Sat Aug 14 00:54:57 1999 Geoffrey Keating - - * cse.c (cse_insn): Call never_reached_warning when a jump is - changed to be unconditional. - * flags.h: Declare warn_notreached. - * flow.c (delete_block): Call never_reached_warning when - a block is deleted. - * jump.c (delete_barrier_successors): Call never_reached_warning - when we delete everything after a BARRIER. - (never_reached_warning): New function. - * rtl.h: Declare never_reached_warning. - * toplev.c (warn_notreached): New variable. - (lang_independent_options): Set warn_notreached - when -Wunreachable-code. - (compile_file): We need line numbers for -Wunreachable-code. - -Tue Aug 17 22:06:11 1999 Jan Hubicka - - * haifa-sched.c (insn_unit): Fix typo on out of range test. - * sched.c (insn_unit): Likewise. - -Tue Aug 17 21:57:23 1999 Andreas Schwab - - * combine.c (distribute_notes): Handle REG_EH_RETHROW. - -Tue Aug 17 17:39:43 EDT 1999 Andrew MacLeod - - * flow.c (create_edge_list): Use xmalloc, not malloc. - -Tue Aug 17 01:40:54 1999 Loren Rittle - - * fixinc/inclhack.def (no_double_slash): Do not trash single-line - C-style comments. Do not lose the character before double slash. - -Mon Aug 16 18:08:22 EDT 1999 Andrew MacLeod - - * basic-block.h (struct edge_list): Stucture to maintain a vector - of edges. - (EDGE_INDEX_NO_EDGE, EDGE_INDEX, INDEX_EDGE_PRED_BB, INDEX_EDGE_SUCC_BB, - INDEX_EDGE, NUM_EDGES): New Macros for accessing edge list. - (create_edge_list, free_edge-List, print_edge_list, verify_edge_list): - New function prototypes. - * flow.c (create_edge_list): Function to create an edge list. - (free_edge_list): Discards memory used by an edge list. - (print_edge_list): Debug output showing an edge list. - (verify_edge_list): Internal consistency check for an edge list. - (find_edge_index): Function to find an edge index for a pred and succ. - -Mon Aug 16 11:56:36 1999 Mark Mitchell - - * tree.c (type_hash_add): Use permalloc to allocate nodes in the - hashtable. - -Mon Aug 16 17:04:15 1999 Jorn Rennecke - - * mips.h (CLASS_CANNOT_CHANGE_SIZE): Define. - -Fri Aug 13 15:20:43 1999 Gerald Pfeifer - - * config/i386/freebsd.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -Fri Aug 13 10:21:28 1999 Nick Clifton - - * toplev.c (rest_of_compilation): Allow machine dependent - reorganization pass to place information into the RTL dump - file if it so wishes. - -Sun Aug 15 12:41:21 1999 Jim Wilson - - * explow.c (hard_function_value): Use VOIDmode instead of - MAX_MACHINE_MODE. - * stmt.c (expand_return): Likewise. - * stor-layout.c (get_best_mode): Likewise. - - * genemit.c (gen_expand): If next is MATCH_PAR_DUP, then output - emit call instead of emit_insn call. - -Sat Aug 14 15:04:06 1999 Mumit Khan - - * configure.in: Handle --disable/enable-win32-registry. - * install.texi: Document --disable/enable-win32-registry. - * acconfig.h (ENABLE_WIN32_REGISTRY): New macro. - (WIN32_REGISTRY_KEY): New macro. - * prefix.c: Use to enable/disable win32-specific code. - (lookup_key): Use versioned key. - * configure: Regenerate. - * config.in: Likewise. - -Fri Aug 13 17:41:55 1999 Jason Merrill - - * cpplib.c (read_line_number): New fn, split out of... - (do_line): Here. - -Fri Aug 13 14:18:27 1999 Gavin Romig-Koch - - tree.c (lang_unsave_expr_now) : New. - (unsave_expr_now): Call lang_unsave_expr_now. - tree.h (lang_unsave_expr_now) : New. - -Fri Aug 13 00:49:46 1999 Jason Merrill - - * toplev.c (flag_new_exceptions): On by default. - -1999-08-13 Michael Meissner - - * Makefile.in (GCC_FOR_TARGET): Move -B./ after the tooldir -B. - -Fri Aug 13 01:29:57 1999 Alexandre Oliva - - * dwarfout.c (fundamental_type_code): Return FT_boolean for - INTEGER_TYPE with precision==1, it's __java_boolean. - -Thu Aug 12 23:51:04 1999 J"orn Rennecke - - * global.c (prune_preferences): Move some invariants out of the - inner loop. - -Thu Aug 12 15:30:29 1999 Jesse Perry (jap@unx.dec.com) - - * configure.in (alpha*-dec-osf*): Add osf5. - -Sun Aug 1 22:24:03 1999 Philip Blundell - - * configure.in: Rework handling of ARM GNU/Linux slightly. - (arm*-*-linux-gnuoldld): New target. - * configure: Regenerate. - * install.texi (Configurations): Add arm-*-linux-gnu{oldld} and - arm-*-elf. Mention that arm-*-linux-gnuaout is obsolete. - * config/arm/linux-oldld.h: New file. - * config/arm/linux-elf26.h: Don't include linux-elf.h. - (TARGET_DEFAULT, SUBTARGET_LINK_SPEC, SUBTARGET_EXTRA_ASM_SPEC): - Don't define. - * config/arm/linux-elf.h (ASM_SPEC): Define. - (TARGET_DEFAULT, SUBTARGET_EXTRA_LINK_SPEC, - SUBTARGET_EXTRA_ASM_SPEC, CPP_APCS_PC_DEFAULT): Add definitions - for 26-bit APCS and old linker. - (CPP_PREDEFINES): Define `__arm__'; don't define `arm' or - `arm_elf'. - (FP_DEFAULT): Define to FP_SOFT3 for all machines. - * config/arm/linux-aout.h (CPP_PREDEFINES): Define `__arm__'; - don't define `arm' or `arm_elf'. - * config/arm/t-linux (EXTRA_MULTILIB_PARTS, MULTILIB_OPTIONS, - MULTILIB_DIRNAMES): Define. Fix typo in comment. - -Thu Aug 12 10:14:47 1999 Andreas Schwab - - * rtl.texi: Fix typo. - -Wed Aug 11 23:50:57 1999 Jason Merrill - - * invoke.texi (C++ Dialect Options): Add -fms-extensions. - -Wed Aug 11 12:59:37 1999 Mark Mitchell - - * extend.texi (C++ Signatures): Remove node. - * invoke.texi: Remove discussion of -fhandle-signatures, - signature, sigof, __signature__, and __sigof__. - -Wed Aug 11 03:38:25 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (JAVAGC): Removed. - -Wed Aug 11 02:13:26 1999 Mumit Khan - - * i386/cygwin.h (ASM_OUTPUT_ALIGNED_BSS): Define. - -1999-08-11 Mark Elbrecht - - * i386/djgpp.h (ASM_OUTPUT_ALIGNED_BSS): Define. - -1999-08-11 Richard Earnshaw (rearnsha@arm.com) - - * emit-rtl.c (mark_reg_pointer): Don't increase the alignment of - a register that is already known to be a pointer. - -1999-08-11 Bruce Korb - - * fixinc/inclhack.tpl: Only install assert.h conditionally. - * fixinc/inclhack.sh: Regenerated. - * fixinc/fixincl.sh: Regenerated. - -Wed Aug 11 00:34:22 1999 Joe Buck - - * invoke.texi: s/GNU CC/GCC/ for consistency with gcc.texi. - Fix documentation of -ansi flag to describe its C++ behavior. - Remove bogus reference to GCC 2.9. - -Tue Aug 10 17:19:02 1999 Jim Wilson - - * config/sh/sh.c (machine_dependent_reorg): Only call PUT_MODE on - note if it is non-NULL. - -Tue Aug 10 10:47:42 EDT 1999 Andrew MacLeod - - * except.h (eh_nesting_info): Add new structure definition. - (init_eh_nesting_info, free_eh_nesting_info): Add function prototypes. - (reachable_handlers, update_rethrow_references): Add function - prototypes. - * rtl.h (struct rtvec_def): Update comments. REG_EH_RETHROW takes - a rethrow symbol instead of an integer exception region number. - * flow.c (Make_edges): Use new exception nesting routines to determine - which handlers are reachable from a CALL or asynchronous insn. - Don't add an edge for calls with a REG_EH_REGION of -1 to non-local - goto receivers. - (delete_eh_regions): Update rethrow labels, and don't delete - regions which are the target of a rethrow. - * except.c (struct func_eh_entry): Add rethrow_ref field, now we can - avoid overloading the SYMBOL_REF_USED flag. - (rethrow_symbol_map): Use new rethrow_ref field. - (rethrow_used): Use new rethrow_ref field. - (expand_rethrow): REG_EH_RETHROW now has a SYMBOL_REF instead - of an integer. Fix formatting. - (output_exception_table_entry): Use new rethrow_ref field. - (can_throw): Check for EH_REGION_NOTE before deciding - whether a CALL can throw or not. - (scan_region): Call rethrow_used() instead of accessing data structure. - (update_rethrow_references): New function to make sure only regions - which are still targets of a rethrow are flagged as such. - (process_nestinfo): New static function to initialize a handler - list for a specific region. - (init_eh_nesting_info): New function to allocate and initialize - the list of all EH handlers reachable from all regions. - (reachable_handlers): New function to retrieve the list of handlers - reachable from a specific region and insn. - (free_eh_nesting_info): New function to dispose of a list of - reachable handlers. - -Tue Aug 10 10:39:31 EDT 1999 Andrew MacLeod - - * flow.c (split_edge): Set JUMP_LABEL field. - (commit_one_edge_insertion): Set head correctly for insert_before. - When inserting insns, update insn block numbers if allocated. - -Tue Aug 10 09:26:07 1999 Kaveh R. Ghazi - - * dwarf2out.c (dwarf2out_frame_debug_expr, add_incomplete_type, - retry_incomplete_types): Add static prototype. - (stripattributes, dwarf_cfi_name, ASM_OUTPUT_DWARF_STRING, - dwarf_tag_name, dwarf_attr_name, dwarf_form_name, - dwarf_stack_op_name, dwarf_type_encoding_name, add_AT_string, - dwarf2_name, add_name_attribute, lookup_filename, dwarf2out_line, - dwarf2out_start_source_file, dwarf2out_define, dwarf2out_undef): - Constify a char*. - - * dwarf2out.h (dwarf2out_define, dwarf2out_undef, - dwarf2out_start_source_file, dwarf2out_line): Likewise. - -Tue Aug 10 09:21:46 1999 Kaveh R. Ghazi - - * output.h (assemble_name): Constify a char*. - - * varasm.c (UNIQUE_SECTION, assemble_start_function, - assemble_variable, assemble_name): Likewise. - - * dwarf2out.c (ASM_NAME_TO_STRING): Likewise. - - * arm/pe.c (arm_pe_unique_section): Likewise. - - * i386/cygwin.h (STRIP_NAME_ENCODING): Likewise. - - * i386/i386-interix.h (STRIP_NAME_ENCODING): Likewise. - - * i386/interix.c (i386_pe_unique_section): Likewise. - - * i386/win32.h (STRIP_NAME_ENCODING): Likewise. - - * i386/winnt.c (i386_pe_unique_section): Likewise. - - * m32r/m32r.h (ASM_OUTPUT_LABELREF): Likewise. - - * mn10200/mn10200.h (ASM_OUTPUT_LABELREF): Likewise. - - * mn10300/mn10300.h (ASM_OUTPUT_LABELREF): Likewise. - - * pa/pa.c (output_call): Likewise. - - * pa/pa.h (ASM_OUTPUT_MI_THUNK): Likewise. - - * pa/som.h (ASM_OUTPUT_FUNCTION_PREFIX): Likewise. - - * rs6000/rs6000.c (rs6000_output_load_toc_table, output_toc): - Likewise. - - * rs6000/rs6000.h (RS6000_OUTPUT_BASENAME, STRIP_NAME_ENCODING): - Likewise. - - * rs6000/sol2.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - - * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_INT, - STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Likewise. - - * v850/v850.h (ASM_OUTPUT_LABELREF): Likewise. - -Mon Aug 9 19:54:05 1999 Kaveh R. Ghazi - - * real.c (GET_REAL, PUT_REAL): Use memcpy instead of bcopy. - -Mon Aug 9 19:36:00 1999 Kaveh R. Ghazi - - * tree.h (lang_identify): Constify a char*. - (print_error_function): Add extern prototype. Constify a char*. - - * c-lang.c (lang_identify): Constify a char*. - - * objc/objc-act.c (lang_identify): Constify a char*. - -Mon Aug 9 16:21:53 1999 Bernd Schmidt - - * genpeep.c (main): Make generated file include "function.h". - * arm.c (function_really_clobbers_lr): Delete INLINE_HEADER case. - -Mon Aug 9 10:08:50 1999 Bernd Schmidt - - * Makefile.in: Update dependencies. - * alias.c: Include "function.h" - * c-decl.c: Likewise. - * caller-save.c: Likewise. - * calls.c: Likewise. - * combine.c: Likewise. - * cse.c: Likewise. - * explow.c: Likewise. - * final.c: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * optabs.c: Likewise. - * profile.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reload.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * sched.c: Likewise. - * stupid.c: Likewise. - * config/1750a/1750a.c: Likewise. - * config/a29k/a29k.c: Likewise. - * config/arc/arc.c: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/thumb.c: Likewise. - * config/c4x/c4x.c: Likewise. - * config/clipper/clipper.c: Likewise. - * config/convex/convex.c: Likewise. - * config/fx80/fx80.c: Likewise. - * config/i860/i860.c: Likewise. - * config/m68k/m68k.c: Likewise. - * config/m88k/m88k.c: Likewise. - * config/mips/mips.c: Likewise. - * config/pdp11/pdp11.c: Likewise. - * config/pyr/pyr.c: Likewise. - * config/romp/romp.c: Likewise. - * config/sh/sh.c: Likewise. - * config/tahoe/tahoe.c: Likewise. - * config/vax/vax.c: Likewise. - * config/we32k/we32k.c: Likewise. - * config/sparc/sparc.c: Include "function.h". - (mem_min_alignment): Test current_function rather than - regno_pointer_align. - * config/pa/pa.c: Likewise. - (compute_frame_size): Delete declaration of - current_function_outgoing_args_size. - * config/arc/arc.h (current_function_varargs): Delete declaration. - * config/elxsi/elxsi.h (current_function_calls_alloca): Delete - declaration. - * config/i370/i370.h (current_function_outgoing_args_size): Delete - declaration. - * config/i386/i386.h (FINALIZE_PIC): Delete declaration of - current_function_uses_pic_offset_table. - * config/m68k/a-ux.h (FUNCTION_EXTRA_EPILOGUE): Delete declaration - of current_function_returns_pointer. - * config/m68k/altos3068.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/linux.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/m68kv4.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/mot3300.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/pbb.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m68k/tower-as.h (FUNCTION_EXTRA_EPILOGUE): Likewise. - * config/m88k/m88k.c: Include "function.h" - (call_used_regs, current_function_pretend_args_size, - current_function_outgoing_args_size, frame_pointer_needed): Delete - declarations. - * config/m88k/m88k.h (current_function_pretend_args_size): Delete - declaration. - * config/mips/mips.h (current_function_calls_alloca): Delete - declaration. - * config/mn10200/mn10200.h (current_function_needs_context, - rtx_equal_function_value_matters): Delete declarations. - * config/ns32k/ns32k (current_function_uses_pic_offset_table, - flag_pic): Delete declarations. - * config/pa/pa.h (current_function_pretend_args_size, - current_function_decl): Delete declarations. - * config/pa/som.h (current_function_varargs): Delete declaration. - * config/pdp11/pdp11.h (current_function_pretend_args_size): Delete - declaration. - * config/pyr/pyr.h (current_function_pretend_args_size, - current_function_args_size, current_function_calls_alloca): Delete - declarations. - * config/sh/sh.h (current_function_varargs): Delete declaration. - * config/sparc/sparc.h (current_function_outgoing_args_size, - current_function_calls_alloca, current_function_decl): Delete - declarations. - * config/spur/spur.h (current_function_pretend_args_size, - current_function_calls_alloca): Delete declarations. - * config/v850/v850.c (current_function_outgoing_args_size): Delete - declaration. - * config/vax/vms.h (current_function_name): Delete declaration. - * gcse.c: Include "function.h". - (current_function_name, current_function_calls_setjmp): Delete - declarations. - * haifa-sched.c: Include "function.h". - (forced_labels): Delete declaration. - * jump.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * genemit.c (main): Make generated file include function.h. - * genoutput.c (output_prologue): Likewise. - - * builtins.c (saveregs_value, apply_args_value): Delete variables. - * emit-rtl.c (reg_rtx_no, first_label_num, first_insn, last_insn, - sequence_rtl_expr, cur_insn_uid, last_linenum, last_filename, - regno_pointer_flag, regno_pointer_flag_length, regno_pointer_align, - regno_reg_rtx, sequence_stack): Delete variables. Add accessor - macros for some of them. - (emit_filename, emit_lineno): Delete declarations. - (gen_reg_rtx): Use memset/memcpy instead of bzero/bcopy. Access - regno_pointer_* variables through current_function. - (gen_inline_header_rtx): Delete function. - (save_emit_status): Delete function. - (set_new_last_label_num): New function. - (clear_emit_caches): New function. - (restore_emit_status): Just clear last_labelnum and call - clear_emit_caches. - (get_last_insn_anywhere): Variable sequence_stack is now accessed - through macro seq_stack. - (add_insn_after): Likewise. - (add_insn_before): Likewise. - (remove_insn): Likewise. - (pop_topmost_sequence): Likewise. - (in_sequence_p): Likewise. - (start_sequence_for_rtl_expr): Likewise. - (start_sequence): Likewise, and likewise for - sequence_rtl_expr/seq_rtl_expr. - (push_topmost_sequence): Likewise. - (end_sequence): Likewise. - (init_virtual_regs): Now takes a "struct emit_status *" argument. - All callers changed. Store into that pointer instead of globals. - (init_emit): Allocate emit elt of current_function. - Changes for sequence_rtl_expr/sequence_stack renaming. - Call clear_emit_caches instead of doing it in-line. - Access regno_pointer_* variables through current_function. - (init_emit_once) Don't clear sequence_stack. - - * expr.c (pending_stack_adjust, inhibit_defer_pop, pending_chain): - Delete variables. - (arg_pointer_save_area): Delete declaration. - (finish_expr_for_function): Renamed from init_queue; no longer static. - (init_expr): Don't call init_queue. - (save_expr_status, restore_expr_status): Delete functions. - (expand_expr): Changes to reflect new layout of struct function. - Don't access current_function_check_memory_usage when current_function - is 0. - * expr.h (forced_labels, save_expr_regs, saveregs_value, - apply_args_value, current_function_calls_alloca, inhibit_defer_pop, - current_function_outgoing_args_size, current_function_arg_offset_rtx, - current_function_uses_const_pool, function_call_count, - current_function_uses_pic_offset_table, nonlocal_labels, - current_function_internal_arg_pointer, nonlocal_goto_stack_level, - current_function_check_memory_usage, nonlocal_goto_handler_slots, - pending_stack_adjust, target_temp_slot_level, temp_slot_level): Delete - declarations. - (finish_expr_for_function): Declare. - * flags.h (current_function_has_nonlocal_label, - current_function_has_nonlocal_goto, current_function_is_thunk, - current_function_has_computed_jump): Delete declarations. - * flow.c (forced_labels): Delete declaration. - * function.c (current_function_pops_args, - current_function_returns_struct, current_function_returns_pcc_struct, - current_function_needs_context, current_function_calls_setjmp, - current_function_calls_longjmp, current_function_has_nonlocal_label, - current_function_has_nonlocal_goto, current_function_is_thunk, - current_function_has_computed_jump, current_function_calls_alloca, - current_function_contains_functions, current_function_returns_pointer, - current_function_epilogue_delay_list, current_function_args_size, - current_function_pretend_args_size, current_function_arg_offset_rtx, - current_function_outgoing_args_size, current_function_varargs, - current_function_stdarg, current_function_args_info, cleanup_label, - current_function_name, current_function_uses_const_pool, - current_function_instrument_entry_exit, current_function_return_rtx, - current_function_uses_pic_offset_table, nonlocal_labels, - current_function_internal_arg_pointer, current_function_cannot_inline, - current_function_check_memory_usage, function_call_count, - nonlocal_goto_handler_slots, nonlocal_goto_handler_labels, - nonlocal_goto_stack_level, return_label, save_expr_regs, - stack_slot_list, rtl_expr_chain, tail_recursion_label, temp_slots, - tail_recursion_reentry, arg_pointer_save_area, frame_offset, - context_display, trampoline_list, parm_birth_insn, invalid_stack_slot, - last_parm_insn, max_parm_reg, parm_reg_stack_loc, sequence_rtl_expr, - temp_slot_level, var_temp_slot_level, target_temp_slot_level): - Delete variables. - (push_function_context_to): Don't save them. Don't call - save_storage_status, save_emit_status or save_expr_status. - (pop_function_context_from): Don't restore them. Don't call - restore_storage_status or restore_expr_status. - (get_func_frame_size): New function. - (get_frame_size): Use it. - (assign_outer_stack_local): Reflect some member name changes in struct - function. - (put_reg_into_stack): Likewise. - (assign_stack_temp_for_type): sequence_rtl_expr was renamed to - seq_rtl_expr. - (fixup_var_refs): Likewise. - (fix_lexical_addr): Likewise. - (trampoline_address): Likewise. - (prepare_function_start): Clear field inlinable of current_function. - (init_function_for_compilation): New function. - (expand_dummy_function_end): New function. - (expand_function_end): Call finish_expr_for_function. - * function.h (struct emit_status): New; fields moved here from struct - function and from global variables. Add accessor macros for some of - the fields. - (struct expr_status): Likewise. - (REGNO_POINTER_ALIGN, REGNO_POINTER_FLAG): Moved here from regs.h. - (struct function): Add fields expr and emit, inlinable, inl_emit, - original_arg_vector, original_decl_initial, inl_last_parm_insn, - inl_max_label_num. Add many comments. - Add accessor macros for all elts of struct function that no longer - have a global variable. - (cleanup_label, return_label, frame_offset, tail_recursion_label, - tail_recursion_reentry, arg_pointer_save_area, rtl_expr_chain, - stack_slot_list): Delete declarations. - (get_func_frame_size): Declare. - (save_expr_status, restore_expr_status, save_emit_status, - save_storage_status, restore_storage_status): Delete declarations. - (init_virtual_regs): Declare. - * output.h (current_function_pops_args, - current_function_returns_struct, current_function_returns_pcc_struct, - current_function_needs_context, current_function_calls_setjmp, - current_function_calls_longjmp, current_function_calls_alloca, - current_function_has_nonlocal_label, current_function_varargs, - current_function_has_computed_jump, current_function_returns_pointer, - current_function_contains_functions, current_function_args_size, - current_function_pretend_args_size, current_function_stdarg, - current_function_outgoing_args_size, current_function_args_info, - current_function_name, current_function_return_rtx, - current_function_epilogue_delay_list, - current_function_uses_const_pool, current_function_cannot_inline): - Delete declarations. - * regs.h (reg_rtx_no, regno_pointer_flag, regno_pointer_flag_length, - regno_reg_rtx): Delete declaration. - (REGNO_POINTER_FLAG): Delete macro. - * stmt.c (expand_goto): Changes to reflect that some fields in struct - function were renamed. - * stor-layout.c (save_storage_status, restore_storage_status): Delete - functions. - * toplev.c: Include "function.h". - (current_function_decl): Delete declaration. - (compile_file): Call init_dummy_function_start and - expand_dummy_function_end around some initializations that need to - emit rtl. - (rest_of_compilation): Use DECL_SAVED_INSNS properly. - Call init_function_for_compilation. - * unroll.c: Include "function.h" - (unroll_loop): Access regno_pointer_* variables through - current_function. - - * tree.h (struct tree_decl): Add elt f to saved_insns member. - (DECL_SAVED_INSNS): use it. - (expand_dummy_function_end): Declare. - (init_function_for_compilation): Declare. - * calls.c (calls_function_1): Change use of DECL_SAVED_INSNS now - that it's no longer an INLINE_HEADER. - (expand_call): Likewise. - * integrate.c (finish_inline): Delete function. - (max_parm_reg, parm_reg_stack_loc): Delete declarations. - (initialize_for_inline): Delete min_labelno, max_labelno and max_reg - args. Don't generate an INLINE_HEADER rtx, just return the arg - vector. All callers changed. - (save_for_inline_copying): Create a duplicate struct emit_status to - hold the emit state for compiling the current function. Use this and - the other new fields in struct function that are for integration - instead of an INLINE_HEADER. - Use memcpy instead of bcopy. - Store the current struct function in DECL_SAVED_INSNS of fndecl. - (save_for_inline_nocopy): Similar changes, except no new emit_status - is needed here. - (expand_inline_function): Get information from function structure, - not from an inline header rtx. - (output_inline_function): Lose code to extract the necessary - information from an inline header; simply put back the function - structure into current_function. Clear its inlinable elt. - * rtl.def (INLINE_HEADER): Delete. - * rtl.h: Delete all accessors for an INLINE_HEADER. - (gen_inline_header_rtx): Delete declaration. - (regno_reg_rtx, regno_pointer_align, nonlocal_goto_handler_labels): - Delete declarations. - (REGNO_POINTER_ALIGN): Delete. - (clear_emit_caches): Declare. - (set_new_last_label_num): Declare. - -Mon Aug 9 01:52:24 1999 Jason Merrill - - * print-tree.c (print_node): Print base for OFFSET_TYPEs. - - * except.c (expand_eh_region_start_for_decl): Always start a new block. - * stmt.c (is_eh_region): Make sure current_function is present, too. - -Mon Aug 9 01:15:24 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (HARD_REGNO_MODE_OK): Correctly handle FPregs, even when - for 64bit PA targets. - - * pa.h (SELECT_SECTION): Define. - * som.h (SELECT_SECTION): Delete. - -Sun Aug 8 15:13:20 1999 Kaveh R. Ghazi - - * alias.c (init_alias_analysis): Wrap call to - `prologue_epilogue_contains' within HAVE_prologue||HAVE_epilogue. - -1999-08-07 Bruce Korb - - * fixinc/inclhack.def(irix_asm_apostrophe): IRIX 5.2's - contains an asm comment with an apostrophe - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -Sat Aug 7 19:37:07 1999 Richard Henderson - - * function.c (init_function_start): Clear prologue & epilogue. - (prologue_epilogue_contains): New function. - * alias.c (init_alias_analysis): Use it. - * rtl.h (prologue_epilogue_contains): Declare it. - -Sat Aug 7 19:32:16 1999 Richard Henderson - - * jump.c (onlyjump_p): New function. - * rtl.h: Declare it. - * flow.c (delete_unreachable_blocks): Use onlyjump_p instead - of condjump_p in calling tidy_fallthru_edge and merge_blocks. - -Sat Aug 7 17:09:36 1999 Richard Henderson - - * global.c (build_insn_chain): Use EXECUTE_IF_SET_IN_REG_SET - to invert loops. Simplify block scanning. - -Sat Aug 7 02:11:13 1999 Bernd Schmidt - - * gcse.c (hash_scan_set): Treat SYMBOL_REFs like CONST_INTs. - (cprop_insn): Treat SYMBOL_REFs like CONST_INTs. - -1999-08-07 Jonathan Larmour - - * config/sparc/liteelf.h: New file to support sparclite-elf target - * config/sparc/t-sp86x: New file to support sparc86x targets - * config/sparc/sp86x-aout.h: New file to support sparc86x-aout target - * config/sparc/sp86x-elf.h: New file to support sparc86x-elf target - * configure.in: Support above target triplets - * configure: Regenerated - -Sat Aug 7 01:39:27 1999 Philippe De Muyter - - * fixinc/server.c (server_setup): Do not prefix function used as - parameter with `&'. - -Sat Aug 7 00:21:20 1999 Richard Henderson - - * alpha.md (movhi and movqi patterns): Correct predicate for !BWX. - Remove fp reg alternatives. - -Sat Aug 7 00:06:54 1999 Jeffrey A Law (law@cygnus.com) - - * Makefiin (TAROUTOPTS): Kill. - (install-headers-tar): Use "xpf" for tar headerfile extraction - * i370/x-oe (TAROUTOPTS): Delete. - * m68k/x-apollo68 (TAROUTOPTS): Delete. - * m68k/x-hp320 (TAROUTOPTS): Delete. - * m68k/x-hp320g (TAROUTOPTS): Delete. - * gcc.texi: Update bug reporting text. - -1999-08-6 Herman A.J. ten Brugge - - * reg-stack.c (change_stack) Fixed problem with negative array index. - -Fri Aug 6 23:08:44 1999 Jeffrey A Law (law@cygnus.com) - - * extend.texi, install.texi: Fix spelling mistakes. - - * Makefile.in (PREMADE_ATTRTAB_MD, PREMADE_ATTRTAB): Delete. - (s-attrtab); No longer try to use pre-made insn-attrtab file. - * mips/t-bsd: Delete references to obsolete PREMADE_ATTRTAB and - PREMADE_ATTRTAB_MD. - * mips/t-ecoff: Likewise. - * mips/t-elf: Likewise. - * mips/t-mips: Likewise. - * mips/t-osfrose: Likewise. - * mips/t-r3900: Likewise. - * mips/t-svr3: Likewise. - * mips/t-svr4: Likewise. - * mips/t-ultrix: Likewise. - - * gcc.texi: Document recommend means to provide software floating - point libraries in libgcc.a - -1999-08-06 Jason Merrill - - * c-lex.c (yylex): We can have a number with no digits. - -Fri Aug 6 16:53:55 EDT 1999 John Wehle (john@feith.com) - - * jump.c (delete_prior_computation): New function, broken - out of delete_computation. Check for side effects with - side_effects_p instead of FIND_REG_INC_NOTE. Handle - multi-word hard registers. - (delete_computation): Use it. Check for side effects with - side_effects_p instead of FIND_REG_INC_NOTE. Synthesize a - missing REG_DEAD note for a register which is both set and - used by an insn. - -Fri Aug 6 11:05:29 1999 Jeffrey A Law (law@cygnus.com) - - * elf.h (TEXT_SPACE_P, FUNCTION_NAME_P): Delete. - (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT): Likewise. - (ASM_FILE_START): Import _mcount with the right type. - (ASM_DECLARE_FUNCTION_NAME): Define. - (ASM_OUTPUT_EXTERNAL, ASM_OUTPUT_EXTERNAL_LIBCALL): Define. - * pa.c (output_function_prologue): Always emit the function's label - here. - * pa.h (TEXT_SPACE_P): Define. - (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. - (ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_GLOBALIZE_LABEL): Likewise. - * som.h (TEXT_SPACE_P): Delete. - (FUNCTION_NAME_P, ENCODE_SECTION_INFO, STRIP_NAME_ENCODING): Likewise. - (ASM_GLOBALIZE_LABEL, ASM_OUTPUT_INT): Likewise. - -Thu Aug 5 19:29:39 1999 Jim Wilson - - * expr.c (emit_group_load): Allow src to be a CONCAT. - -Thu Aug 5 22:27:15 1999 J"orn Rennecke - - * config/sh/lib1funcs.asm (___movstrSI0): Change or r0,r0,r0 to nop. - (___mulsi3): Use '!' comment character. - -Thu Aug 5 13:34:14 1999 Bernd Schmidt - - * reload1.c (maybe_fix_stack_asms): Also declare P as "const char *". - -Thu Aug 5 02:40:42 1999 Jeffrey A Law (law@cygnus.com) - - * gcc.c: Update URLs and mail addresses. - * gcc.texi: Likewise. - -Thu Aug 5 01:14:13 1999 Daniel Jacobowitz - - * rs6000.c (current_file_function_operand): Return zero for - weak functions. - (rs6000_encode_section_info): Do not set SYMBOL_REF_FLAG for - weak symbols. - * rs6000.h (ENCODE_SECTION_NIFO): Do not set SYMBOL_REF_FLAG - for weak symbols. - -Thu Aug 5 00:56:30 1999 Geoffrey Keating - - * rs6000.c (rs6000_stack_info): For ABI_V4/ABI_SOLARIS -fpic, always - allocate space in the stack frame for the PIC register. - -Thu Aug 5 00:20:47 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.md (xordi3, anddi3): These patterns are not available on - the coldfire. - -Wed Aug 4 23:39:20 1999 Mark Mitchell - - * real.c (GET_REAL): Don't violate ANSI/ISO aliasing rules. - (PUT_REAL): Likewise. - -Wed Aug 4 20:45:04 1999 J"orn Rennecke - - * final.c (shorten_branches): Don't add an alignment for loops - that have no label inside. - -Wed Aug 4 16:39:24 1999 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memcmp, expand_builtin_strcmp): Wrap - prototypes in macro HAVE_cmpstrsi. - - * cpplib.c (cpp_get_token): Remove unused label `op3'. - - * emit-rtl.c (operand_subword): Remove unused variable - `bits_per_word'. - - * rtl.c (shallow_copy_rtx): Remove unused variable `format_ptr'. - - * tree.c (chainon): Wrap variable `t2' in macro ENABLE_CHECKING. - -Wed Aug 4 13:29:23 1999 Zack Weinberg - - * cpphash.c (macroexpand): Delete leading whitespace when arg - is concatenated before. - (unsafe_chars): Correct test for whether + and - can extend a - token. - - * cppinit.c (cpp_start_read): Do dependencies for - -include/-imacros files also. - - * cpplib.c (cpp_scan_buffer): In no-output mode, don't bother - tokenizing non-directive lines. - (cpp_expand_to_buffer): Temporarily disable no-output mode. - * cppmain.c: In no-output mode, just call cpp_scan_buffer for - the input file. - -Wed Aug 4 12:53:44 1999 Jason Merrill - - * expr.c (expand_expr, case PLUS_EXPR): Fix parallel case, too. - - * c-lex.c: Sync with C++ frontend. - (linemode): New variable. - (parse_float): imag, conversion_errno, and type are output only. - (yylex): Adjust. Move initial '.' case into main switch. - Use linemode. - (handle_generic_pragma): Just deal with tokens. - (readescape): Use ISXDIGIT and ISGRAPH. - * c-parse.in: Add END_OF_LINE token. - - * c-lex.c (lang_init): Generalize. - (nextchar): Remove. Replace uses with UNGETC. - (skip_white_space): Handle linemode here. Optimize for cpplib. - (skip_white_space_on_line): Remove. - (extend_token_buffer_to): New fn. - (extend_token_buffer): Use it. - (read_line_number, check_newline): Just deal with tokens. - (token_getch, token_put_back): New fns. - (yylex): Use them. More cpplib optimizations. Simplify. - -Wed Aug 4 12:53:44 1999 Michael Tiemann - Jason Merrill - - * c-lex.c (init_parse): Set cpp_token to CPP_DIRECTIVE. - (consume_string): Make this smart about USE_CPPLIB. - (check_newline): Rewrite to be intelligent about USE_CPPLIB. - (yylex): Rewrite to be intelligent about USE_CPPLIB. - Also, clean up cases where we redundantly set token_buffer[0]. - (read_line_number): New fn. - (ignore_escape_flag): New variable. - -Wed Aug 4 13:12:17 1999 Jeffrey A Law (law@cygnus.com) - - * a29k/t-a29kbare: Fix some comments. - (LIB2FUNCS_EXTRA): Remove fp-bit.c and dp-bit.c - (FPBIT, DPBIT): Define. - * a29k/t-vx29k: Likewise. - * arc/t-arc: Likewise. - * arm/t-arm-elf: Likewise. - * arm/t-bare: Likewise. - * arm/t-pe: Likewise. - * arm/t-pe-thumb: Likewise. - * arm/t-semi: Likewise. - * arm/t-thumb: Likewise. - * arm/t-thumb-elf: Likewise. - * arm/t-thumb-linux: Likewise. - * h8300/t-h8300: Likewise. - * i960/t-i960: Likewise. - * i960/t-vxworks960: Likewise. - * m32r/t-m32r: Likewise. - * mips/t-ecoff: Likewise. - * mips/t-elf: Likewise. - * mips/t-r3900: Likewise. - * pa/t-pro: Likewise. - * rs6000/t-aix43: Likewise. - * rs6000/t-beos: Likewise. - * rs6000/t-newas: Likewise. - * rs6000/t-ppccomm: Likewise. - * rs6000/t-rs6000: Likewise. - * rs6000/t-winnt: Likewise. - * rs6000/t-xnewas: Likewise. - * rs6000/t-xrs6000: Likewise. - * sh/t-sh: Likewise. - * sparc/t-elf: Likewise. - * sparc/t-sparcbare: Likewise. - * sparc/t-sparclite: Likewise. - * sparc/t-splet: Likewise. - * v850/t-v850: Likewise. - * mn10200/t-mn10200: Fix comments. - * mn10300/t-mn10300: Likewise. - - * pa.md (divsi3, udivsi3, modsi3, umodsi3 expanders): Clobber a new - dummy operand. Allocate a new pseudo for the dummy operand. - (divsi3, udivsi3, modis3, umodsi3 patterns): Corresponding changes. - - * pa.md (movqi, movhi patterns): Do not expose FP regs to regclass. - -Wed Aug 4 11:53:55 1999 Tom Tromey - - * configure: Rebuilt. - * configure.in: Removed --enable-java-gc option and JAVAGC subst. - -Wed Aug 4 09:06:14 1999 Richard Earnshaw (rearnsha@arm.com) - - * recog.c (preproces_constraints): Zero recog_op_alt before - processing the constraints. - - * arm.c (typedef minipool_node): Renamed from pool_node. - (minipool_vector, minipool_size, minipool_vector_label): Similarly. - (add_minipool_constant): New function. - (dump_minipool): New function. - (find_barrier): Remove special case for getting the insn size of - an insn that references the constant pool. - (minipool_fixup): New structure. - (push_minipool_barrier): New function. - (push_minipool_fix): New function. - (note_invalid_constants): New function. - (add_pool_constant, dump_table, fixit, broken_move): Delete. - (arm_reorg): Rewrite code to fix up the constant pool into a - series of mini-pools embedded in the insn stream. - (arm_output_epilogue): New function, made mainly from the body - of output_func_epilogue. - (output_func_epilogue): Move insn generation part of epilogue code - to arm_output_epilogue. - * arm.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Delete. - * arm.md (pool_range): New attribute. - (zero_extendqidi2): Add attribute pool_range. - (zero_extend_hisi_insn, load_extendqisi, extendhisi_insn, - extendqihi_insn, extendqisi_insn, movdi, movsi_insn, pic_load_addr, - pic_load_addr_based_insn, movhi_insn_arch4, movhi_insn_littleend, - movhi_insn_bigend, loadhi_si_bigend, movsf_hard_insn, movsf_soft_insn, - movdf_hard_insn, movdf_soft_insn, movxf_hard_insn): Likewise. - (epilogue): New expand. - (epilogue_insn): New insn. Call arm_output_epilogue. - - * arm.c (arm_poke_function_name): Undo change of July 17. Tidy up. - * arm.h (TARGET_SWITCHES): Add missing doc string for TARGET_DEFAULT. - -Mon Aug 2 19:18:44 1999 Jason Merrill - - * linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -1999-08-04 Mark Elbrecht - - * config/i386/djgpp.h (BSS_SECTION_ASM_OP): Define. - -Wed Aug 4 02:15:32 1999 Richard Henderson - - * jump.c (delete_insn): Delete the addr_vec when deleting a tablejump. - -Wed Aug 4 01:48:08 1999 Jim Kingdon - - * global.c: Fix comment. - -Wed Aug 4 01:43:01 1999 Ian Lance Taylor - - * gcc.c (access_check): New static function. - (find_a_file): Use it when searching a directory list. - * collect2.c (find_a_file): Don't accept directories found when - searching a directory list. - -Wed Aug 4 01:40:43 1999 Philippe De Muyter - - * tlink.c (symbol_hash_lookup): Do not prefix functions used as - function parameters with `&'. - (file_hash_lookup, demangled_hash_lookup, tlink_init): Ditto. - -Wed Aug 4 01:08:44 1999 Jeffrey A Law (law@cygnus.com) - - * flow.c (delete_unreachable_blocks): Do not call merge_blocks - or tidy_fallthru_edge if the last insn in the block is not - an unconditional jump or a simple conditional jump. - -Tue Aug 3 20:21:20 1999 J"orn Rennecke - - * Makefile.in (c-decl.o): Depends on defaults.h. - -Tue Aug 3 14:14:52 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (HARD_REGNO_NREGS): FP registers are always 4 bytes wide for - PA1.1 and above. - (CLASS_MAX_NREGS): Likewise. - -Tue Aug 3 03:51:20 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Fix dumb thinko in last change. - -Tue Aug 3 10:36:13 1999 Bernd Schmidt - - * reload1.c (maybe_fix_stack_asms): Declare CONSTRAINTS as - "const char *". - -Mon Aug 2 23:45:45 1999 Hans-Peter Nilsson - - * dwarf2out.c (add_location_or_const_value_attribute): Correct - test for sizes of passed and declared parameter types. - -Tue Aug 3 00:03:41 1999 Kaveh R. Ghazi - - * fixincludes: Fix the return type of bsearch, char* -> void*. - - * fixinc/inclhack.def: Likewise. - -Mon Aug 2 18:29:32 1999 Mark Mitchell - - * invoke.texi (-fdump-translation-unit): New option. - -Mon Aug 2 17:54:19 1999 Richard Henderson - - * expr.h (PROMOTE_PROTOTYPES): Move ... - * defaults.h: ... to here. - * c-decl.c: Include defaults.h instead of expr.h. - * c-typeck.c: Include defaults.h. - -Mon Aug 2 17:10:24 1999 Mark Mitchell - - * toplev.h (errorcount): Declare. - (warningcount): Likewise. - (sorrycount): Likewise. - * c-lex.c (errorcount): Don't declare. - * dwarf2out.c (errorcount): Don't declare. - -Mon Aug 2 17:02:08 1999 Jason Merrill - - * config/libgloss.h: Add a note discouraging use with ELF. - * configure.in: Don't use libgloss.h for ELF targets. - Always use_collect2 on a.out targets. - -Mon Aug 2 16:27:42 1999 Jim Wilson - - * combine.c (force_to_mode, case LSHIFTRT): Add goto shiftrt. - (force_to_mode, case ASHIFTRT): Add shiftrt label. - -Tue Aug 3 00:45:02 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, update - reg note of NEXT->insn. - -1999-08-02 Jakub Jelinek - - * real.c (PUT_REAL): Clear unused bytes if long double is IEEE quad. - -1999-08-02 Jakub Jelinek - - * c-decl.c (get_parm_info, store_parm_decls): Change all uses of - PROMOTE_PROTOTYPES, so that it tests it as a C expression. - Ensure expr.h is included. - * c-typecheck.c (convert_arguments): Ditto. - - * expr.h: Supply default for PROMOTE_PROTOTYPES (0). - - * config/arc/arc.h: Define PROMOTE_PROTOTYPES to 1. - * config/convex/convex.h: Ditto. - * config/dsp16xx/dsp16xx.h: Ditto. - * config/fx80/fx80.h: Ditto. - * config/gmicro/gmicro.h: Ditto. - * config/i370/i370.h: Ditto. - * config/i386/i386.h: Ditto. - * config/m32r/m32r.h: Ditto. - * config/m68k/m68k.h: Ditto. - * config/m88k/m88k.h: Ditto. - * config/mips/mips.h: Ditto. - * config/pa/pa.h: Ditto. - * config/pyr/pyr.h: Ditto. - * config/tahoe/tahoe.h: Ditto. - * config/we32k/we32k.h: Ditto. - - * config/sparc/sparc.h: Define PROMOTE_PROTOTYPES - based on arch size. - - * config/i1750a/i1750a.h: Define PROMOTE_PROTOTYPES to 0. - - * config/i860/paragon.h: Remove PROMOTE_PROTOTYPES - from comment. - - * tm.texi: Document new usage of PROMOTE_PROTOTYPES. - -1999-08-02 Richard Henderson - - * m32r.c (m32r_setup_incoming_varargs): Use get_varargs_alias_set - for the register spill block. - (m32r_va_arg): New. - * m32r.h (EXPAND_BUILTIN_VA_ARG): New. - (EXPAND_BUILTIN_SAVEREGS): Delete #if 0 code. - - * m32r.h (INT8_P): Don't short-cut test with (unsigned). - (INT16_P, CMP_INT16_P, UINT16_P): Likewise. - (UPPER16_P, UINT24_P, INT32_P, UINT5_P): Likewise. - -1999-08-02 Jakub Jelinek - - * config/sparc/linux.h: Define WCHAR_TYPE as "int" and undef - MAX_WCHAR_TYPE defined in sparc.h. - * config/sparc/linuxaout.h: Likewise. - * config/sparc/linux64.h: Likewise. - Also default to -mvis if CPU is UltraSPARC. - -1999-08-02 Jakub Jelinek - - * config/sparc/sparc.h (ASM_DECLARE_REGISTER_GLOBAL): New macro. - (RTX_OK_FOR_OLO10): Likewise. - (GO_IF_LEGITIMATE_ADDRESS): If assembler supports offsetable - %lo(), allow it in addresses... - (PRINT_OPERAND_ADDRESS): ... and print it appropriately. - * config/sparc/sparc.md (sethi_di_medlow_embmedany_pic): sethi %lo() - does not make sense. - * config/sparc/sparc.c (sparc_hard_reg_printed): New array. - (sparc_output_scratch_registers): New function. - (output_function_prologue, sparc_flat_output_function_prologue): Use - it. - * varasm.c (make_decl_rtl): Use ASM_DECLARE_REGISTER_GLOBAL if - defined. - * tm.texi (ASM_DECLARE_REGISTER_GLOBAL): Document it. - * configure.in: Add check for .register pseudo-op support in as and - check for offsetable %lo(). - * acconfig.h: Add templates for the above checks. - * configure: Regenerate. - -1999-08-02 Richard Henderson - - * sparc/linux64.h (TARGET_DEFAULT): Remove MASK_APP_REGS. - * sparc/sol2-sld-64.h (TARGET_DEFAULT): Likewise. - * sparc/sol2.h (TARGET_DEFAULT): Likewise. - -Mon Aug 2 23:46:45 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, fix up - reg_biv_class. - -1999-08-02 Jakub Jelinek - - * config/float-sparc.h: New file. - * configure.in: Use float_format=sparc for sparc-*-linux-gnulibc1, - sparc-*-linux-gnu and sparc64-*-linux*. - -1999-08-02 Franz Sirl - - * rs6000.c (rs6000_va_list): Type is an array. - (rs6000_va_start): Don't doubly adjust for varargs. - (rs6000_va_arg): Evaluate long long GPR adjustment. - -Mon Aug 2 16:15:57 1999 David Edelsohn - - * rs6000/aix43.h (SUBTARGET_SWITCHES): Use -m64 and -m32 instead of - -maix64 and -maix32. - (ASM_SPEC, ASM_CPU_SPEC, CPP_SPEC, CPP_CPU_SPEC, LIB_SPEC, - LINK_SPEC): Change appropriately. - * rs6000/rs6000.c (short_cint_operand): Use CONST_OK_FOR_LETTER_P. - (u_short_cint_operand): Likewise. - * rs6000/rs6000.md (movdi splitters): Add TARGET_POWERPC64 support - for 64-bit hosts. - * rs6000/t-aix43 (MULTILIB): Change to -m64. - - * invoke.texi (RS/6000 Submodel): Document 64-bit processor options. - -Mon Aug 2 16:15:57 1999 Geoff Keating - - * rs6000/rs6000.c (num_insns_constant_wide): Correct - for type promotion. - (add_operand): Get test correct for 64-bit HOST_WIDE_INT. - (non_add_cint_operand): Likewise. - (logical_operand): Likewise. - (non_logical_cint_operand): Likewise. - (print_operand): Correct printf()s for 64-bit HOST_WIDE_INT. - (print_operand_address): Correct printf() for 64-bit HOST_WIDE_INT. - (rs6000_select_rtx_section): Suppress warning. - (small_data_operand): Suppress warning. - (rs6000_got_register): Suppress warning. - * rs6000/rs6000.md (andsi3): HOST_WIDE_INT is a signed - type, so `J' is generally the wrong constraint for a SImode value; - use `L' instead. - (andsi3_internal2): Likewise. - (andsi3_internal3): Likewise. - (iorsi3_internal1): Likewise. - (xorsi3_internal1): Likewise. - (movsi): Likewise. - (movsf_softfloat): Likewise. - (scc insns): Likewise. - (movsi+2): Preserve sign bits of SImode constant. - (floatsidf2_internal+1): Sign-extend SImode constant correctly. - (movdf+1): Sign-extend properly. - (movdi_32+1): Sign-extend properly. - (scc insns): Sign-extend properly. - - * md.texi (RS/6000 EXTRA_CONSTRAINTS): Update documentation for J, - K, L, and T. - -1999-08-02 Richard Henderson - - * alpha.c (override_options): Move ev6 alpha_tp frobbing out of - -mcpu parsing code. - (print_operand): Notice alpha_fptm not alpha_tp for sw completion. - * alpha.md (all fp insns): Likewise. - -1999-08-02 Nick Clifton - - * config/v850/v850.h (STRICT_ALIGNMENT): Only define if not - already defined. - -Mon Aug 2 03:38:33 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (legitimize_pic_address): Clarify comments. Do not call the - pic_load_label generator directly. - * pa.md (pic_load_label): Clarify comments. Remove modes on operands. - No longer a named pattern. - -Mon Aug 2 09:38:10 1999 Nick Clifton - - * explow.c (force_reg): Call force_operand if X does not - satisfy general_operand. - -Mon Aug 2 01:34:22 1999 Jeffrey A Law (law@cygnus.com) - - * fix-header.c (main): When testing for CONTINUED, use string - equality, not pointer equality. - -Mon Aug 2 01:27:24 1999 Dan Nicolaescu - - * sparc.c (sparc_block_profiler): Use the %g2 register, not %o0. - -Sun Aug 1 22:46:42 1999 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Fix loop which deletes insns after a jump - that has become an unconditional jump. - - * m68k.c (output_function_prologue): Fix typo in CPU32 case. - (output_function_epilogue): Similarly. - -Sun Aug 1 20:14:00 1999 Bernd Schmidt - - * tree.h (init_dummy_function_start): Declare. - -Sun Aug 1 12:55:31 1999 Bernd Schmidt - - * stmt.c (emit_filename, emit_lineno, expr_stmts_for_value, - last_expr_type, last_expr_value, block_start_count, block_stack, - stack_block_stack, cond_stack, loop_stack, case_stack, nesting_stack, - nesting_depth, goto_fixup_chain): Delete global vars; now allocated - dynamically in stmt elt of struct function for each function. - (struct nesting): Rename function_call_count elt to n_function_calls, - target_temp_slot_level to block_target_temp_slot_level. All users - changed. - (struct stmt_status): New structure definition. - Add many accessor macros for stmt_status elements which previously - were global variables. - (init_stmt_for_function): Allocate stmt elt for current_function. - Reflect that block_start_count was renamed to - current_block_start_count. - (save_stmt_status, restore_stmt_status): Delete functions. - (preserve_subexpressions_p): Don't access loop_stack when outside - a function. - (expand_start_bindings): Reflect that block_start_count was renamed to - current_block_start_count. - (expand_fixup): Likewise. - (expand_decl): Don't access block_stack when outside a function. - (expand_decl_cleanup): Likewise. - (expand_dcc_cleanup): Likewise. - (expand_dhc_cleanup): Likewise. - (expand_anon_union_decl): Likewise. - (set_file_and_line_for_stmt): New function. - (in_control_zone_p): New function. - - * function.h (struct function): Add new elt stmt. - Delete elts block_stack, stack_block_stack, cond_stack, loop_stack, - case_stack, nesting_stack, nesting_depth, block_start_count, - last_expr_type, last_expr_value, expr_stmts_for_value, emit_filename, - emit_lineno, goto_fixup_chain. - (save_eh_status, restore_eh_status, save_stmt_status, - restore_stmt_status): Delete declarations. - * function.c (push_function_context_to): Don't call save_stmt_status. - (pop_function_context_to): Don't call restore_stmt_status. - * tree.h (in_control_zone_p): Declare. - * rtl.h (set_file_and_line_for_stmt): Declare. - - * emit-rtl.c (emit_line_note): Don't set emit_filename/emit_lineno; - call set_file_and_line_for_stmt. - -Thu Jul 31 12:34:45 1999 Joe Buck - - * gcc.texi: Use terms "GNU Compiler Collection" and "GCC". - Also update copyright. - -Sat Jul 31 11:10:07 1999 Bernd Schmidt - - * c-pragma.c: Don't include "except.h". - * emit-rtl.c: Likewise. - * stor-layout.c: Likewise. - * tree.c: Likewise. - * varasm.c: Likewise. - - * flow.c: Include "function.h". - * tree.h (init_dummy_function_start): Declare new function. - - * except.h (struct eh_status): New structure. - (struct label_node, struct eh_entry): Declare even if tree.h hasn't - been included. - (eh_return_stub_label, ehstack, catchstack, ehqueue, - catch_clauses, false_label_stack, caught_return_label_stack, - protect_list, current_function_ehc): Add accessor macros for the - corresponding fields in current_function->eh; delete declarations - for all items that used to be declared here. - * except.c (eh_return_stub_label, ehstack, catchstack, ehqueue, - catch_clauses, false_label_stack, caught_return_label_stack, - protect_list, current_function_ehc): Delete variables. - (init_eh_for_function): Allocate current_function->eh. - (save_eh_status, restore_eh_status): Delete functions. - - * function.h (struct function): Add fields next_global and eh. - Delete all exception handling related fields. - * function.c (current_function): New variable. - (all_functions): New variable. - (push_function_context_to): Don't allocate a struct function, - use current_function instead. Call init_dummy_function_start when - outside a function. Clear current_function before returning. - (pop_function_context_from): Restore current_function. - Don't free the restored struct function. - (prepare_function_start): New function. - (init_dummy_function_start): New function. - (init_function_start): Break out some code into prepare_function_start - and call it here. - - * stmt.c (save_stmt_status): Don't call save_eh_status. - (restore_stmt_status): Don't call restore_eh_status. - - * Makefile.in: Update dependencies. - -Sat Jul 31 04:10:01 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (compute_frame_size): Use STARTINg_FRAME_OFFSET instead - of depending on a magic constant value. Update comments. - (hppa_expand_prologue): Similarly. - - * pa.md (reload_indi, reload_outdi): Allow any register for the - original reload register. - -Fri Jul 30 19:41:35 1999 Jim Wilson - - * cccp.c (print_help): Change marcos to macros. - -1999-07-30 Richard Henderson - - * c-typeck.c (initializer_constant_valid_p): Move ... - * c-common.c (initializer_constant_valid_p): ... here. Use - FOO_TYPE_P instead of tests against TREE_CODE. Allow subtraction - of label addresses. - * c-common.h (initializer_constant_valid_p): Declare. - * c-tree.h (initializer_constant_valid_p): Remove. - -Fri Jul 30 16:33:42 1999 Mathias Froehlich - - * config/i386/sol2-c1.asm: Align the stack. - * config/i386/sol2-gc1.asm: Likewise. - -1999-07-30 Vladimir Makarov - - * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Change -Av8 onto - -Asparclite for sparc86x. - (CPP_CPU32_DEFAULT_SPEC, CPP_CPU_SPEC): Remove -D__sparc_v8__ for - sparc86x. - (ASM_CPU_SPEC): Use -Asparclite for sparc86x. - -Fri Jul 30 14:53:56 1999 Jakub Jelinek - - * config/sparc/linux64.h (CC1_SPEC): Preserve CPU specified by - the user if using the non-default arch size in BI_ARCH configuration. - * config/sparc/sol2-sld-64.h (CC1_SPEC): Ditto. - - * config/sparc/sparc.md (cmp_mul_set, cmp_udiv_cc_set): - Fix patterns so that they actually match. - (cmp_sdiv_cc_set): Ditto, also don't require g0 to be zero. - (mulsidi3_sp64, const_mulsidi3_sp64): New patterns. - (const_mulsidi3_sp32): Renamed from const_mulsidi3, only on - TARGET_HARD_MUL32. - (mulsidi3): Reflect this in the expand. - (smulsi3_highpart): Only on TARGET_ARCH32. - (umulsidi3_sp64, const_umulsidi3_sp64): New patterns. - (const_umulsidi3_sp32): Renamed from const_umulsidi3. - (umulsidi3): Reflect this in the expand. - (umulsi3_highpart): Only on TARGET_ARCH32. - (divsi3_sp32): Renamed from divsi3, only on TARGET_ARCH32, - don't require g0 to be zero. - (udivsi3_sp32): Renamed from udivsi3, only on TARGET_ARCH32. - ({,u}divsi3): New expands. - ({,u}divsi3_sp64): New patterns. - (after lshrdi3_v8plus): Four new patterns to help combiner - optimizing nested mixed mode shifts. - - * config/sparc/sparc.c (sparc_override_options): Use deprecated - v8 instructions if optimizing for UltraSPARC I, II, IIi, as it - speed things up. Don't use them by default on plain v9 in 64bit - mode, according to what SPAMv9 sais. - - * config/sparc/sparc.h: Fix comments, e.g. Linux already preserves - top 32 bits of %[og][0-7] in signal handlers. - Also, TARGET_HARD_MUL32 now is only true for TARGET_ARCH32. - -Fri Jul 30 03:00:41 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (zvdep_imm32): Renamed from zvdep_imm. - (ashlsi3): Corresponding changes. - - * pa.c (compute_zdepwi_operands): Renamed from compute_zdepi_operands. - -Thu Jul 29 18:37:13 1999 Jeffrey A Law (law@cygnus.com) - - * pa.h (FIRST_PARM_CALLER_OFFSET): Delete. - -Thu Jul 29 19:01:58 1999 Bernd Schmidt - - * arm.h (Hint): Delete macro. - Substitute HOST_WIDE_INT for Hint in some prototypes. - * arm.c: Substitute HOST_WIDE_INT for Hint in one prototype. - -Thu Jul 29 09:21:42 1999 Nick Clifton - - * builtins.c (expand_builtin_setjmp): Use force_operand to - make sure that the buffer address is in a suitable form to be - passed to force_reg. - -Wed Jul 28 12:50:48 1999 Geoff Keating - - * config/mips/mips.c: system.h handles MIN and MAX, don't undefine - them here. - -Wed Jul 28 13:18:35 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (indirect_jump): Remove mode from match_operand. Verify - proper mode in the condition string. - (icacheflush, dcacheflush): Remove modes from match_operands. - - * pa.c (emit_move_sequence): Always convert scratch_reg to the - proper mode before using it. - - * pa.md (adddi3, subdi3): Turn into a define_expand/define_insn - pair. - - * pa.c (store_reg): Do not call add_high_const generator directly. - (load_reg, set_reg_plus_d): Likewise. - * pa.md (add_high_const): No longer a named pattern. - - * pa.c (legitimize_address): Consistently use Pmode rather than - SImode. Do not call gen_pic2_highpart directly anymore. - * pa.md (pic2_highpart): No longer a named pattern. - (pic2_lo_sum): Similarly. Reformat to make more readable. - - * pa.md (call, call_value): Use "word_mode" instead of "SImode" as - needed. - - * README: Update. - -Wed Jul 28 11:28:04 1999 Franz Sirl - - * builtins.c (expand_builtin): Typo in call to expand_builtin_ffs. - -Wed Jul 28 11:23:48 1999 Richard Henderson - - * pa.c (hppa_builtin_saveregs): Use get_varargs_alias_set - and tag the spill mems. - (hppa_va_start): New. - (hppa_va_arg): New. - * pa.h (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - -Wed Jul 28 11:22:21 1999 Richard Henderson - - * mn10300.c (mn10300_builtin_saveregs): Use get_varargs_alias_set - and tag the spill mems. - (mn10300_va_start): New. - (mn10300_va_arg): New. - * mn10300.h (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - -Wed Jul 28 11:20:19 1999 Richard Henderson - - * mn10200.c (mn10200_va_arg): New. - * mn10200.h (EXPAND_BUILTIN_VA_ARG): New. - -Wed Jul 28 11:19:06 1999 Richard Henderson - - * builtins.c (std_expand_builtin_va_arg): Use int_size_in_bytes - rather than play with TREE_INT_CST_LOW. - -1999-07-27 Philip Blundell - - * config/arm/telf.h: Include dbxelf.h. - (CPP_PREDEFINES): Only define if not already defined. - (ASM_IDENTIFY_GCC): Likewise. - (SUBTARGET_EXTRA_SECTIONS): Likewise. - (SUBTARGET_EXTRA_SECTION_FUNCTIONS): Likewise. - * config/arm/thumb.h (LINK_SPEC): Only define if not already - defined. - (DBX_DEBUGGING_INFO): Don't define. - * config/arm/linux-telf.h: New file. - * config/arm/linux-tgas.h: New file. - * config/arm/t-thumb-linux: New file. - * config/arm/uclinux-elf.h: New file. - * config/arm/uclinux-telf.h: New file. - * configure.in (arm-*-uclinux, thumb-*-linux-gnu, - thumb-*-uclinux): New targets. - * configure: Regenerate. - -Tue Jul 27 23:20:21 1999 Jeffrey A Law (law@cygnus.com) - - * pa.md (post_store, pre_load): New expanders. - (post_stwm, pre_ldwm): Renamed to post_stw and pre_ldw respectively. - (post_ldwm, pre_stwm): Make these unnamed patterns since we never - need to directly generate RTL for them. - * pa.c (hppa_expand_prologue, hppa_expand_epilogue): Corresponding - changes. - -Tue Jul 27 16:05:52 1999 David Edelsohn - - * aix43.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add rs64a and PPC630. - * rs6000.c (processor_target_table): Add powerpc64, rs64a, and PPC630. - (rs6000_cpu): Choose between 32-bit and 64-bit default processors. - (secndary_reload_class): Make TARGET_ELF conditional compile. - (print_operand_address): Similar. - (output_toc): Print all values as hex. - (get_issue_rate): Rearrange and add RS64A and PPC630. - * rs6000.h (processor_type): Add RS64A and PPC630. - (PROCESSOR_POWERPC64): New. - (PROMOTE_MODE): Use word_mode. - (RTX_COSTS): Add RS64A and PPC630. - * rs6000.md (scheduling information): Add lmul and ldiv - representing 64-bit integer multiply and divide. Add rs64a and - PPC630 information. - (ashldi3): Add support for "rldic" instruction. - * sysv4.h (PROCESSOR_DEFAULT): Change to PROCESSOR_750. - -Tue Jul 27 15:31:53 1999 Vladimir Makarov - - * config/sparc/sparc.c (sparc_override_options): Enable SPARCLITE - instead of V8 for sparclite86x in cpu_table. - -Tue Jul 27 17:49:42 1999 Bernd Schmidt - - * config/arm/coff.h (ASM_FILE_START): If generating SDB output, call - output_file_directive. - -Tue Jul 27 03:15:33 1999 Jason Merrill - - * expr.c (expand_expr, case PLUS_EXPR): Get the mode from the - tree for op1, not the rtl. - -Tue Jul 27 00:18:34 1999 Richard Henderson - - * m88k.c (m88k_builtin_saveregs): Break out the constructor code - to m88k_va_start, leaving only the register spill. - (m88k_build_va_list): New. - (m88k_va_start): New. - (m88k_va_arg): New. - * m88k.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - -Mon Jul 26 19:07:11 1999 Geoff Keating - - * config/rs6000/rs6000.c (rs6000_expand_builtin_saveregs): - Rename from expand_builtin_saveregs. - * config/rs6000/rs6000.h (EXPAND_BUILTIN_SAVEREGS): Change caller. - -Mon Jul 26 22:52:47 1999 Richard Henderson - - * i960.c (i960_setup_incoming_varargs): Use get_varargs_alias_set - for the register spill block. - (i960_build_va_list): New. - (i960_va_start): New. - (i960_va_arg): New. - * i960.h (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * i960.md (store_multiple): Use change_address on individual mems. - -Mon Jul 26 22:43:12 1999 Richard Henderson - - * builtins.c (stabilize_va_list): Don't INDIRECT_REF through - an ARRAY_TYPE. - (std_expand_builtin_va_start): Back out one word if !stdarg_p. - (expand_builtin_va_end): Evaluate arg for side effects. - * c-common.c (c_common_nodes_and_builtins): Construct a - va_list_arg_type_node to handle array decomposition to pointer. - -Mon Jul 26 18:51:34 1999 Richard Henderson - - * except.c (st_dynamic_cleanup): Use force_operand on the - buffer's address. - -Mon Jul 26 16:43:26 1999 Richard Henderson - - * c4x.h (EXPAND_BUILTIN_VA_ARG): New. - * c4x.c (c4x_va_arg): New. - -Mon Jul 26 12:30:09 1999 Jason Merrill - - * cpplib.c (cpp_get_token): Don't return a CPP_POP if the buffer - has manual_pop set. - -1999-07-26 Nathan Sidwell - - * eh-common.h (__eh_matcher): Prototype correctly. - -Mon Jul 26 17:24:51 1999 Philip Blundell - - * config/arm/thumb.h (THUMB_FLAG_SINGLE_PIC_BASE): Define. - (TARGET_SINGLE_PIC_BASE): Likewise. - (GOT_PCREL, NEED_GOT_RELOC, NEED_PLT_RELOC): Provide default - definitions. - (TARGET_CALLEE_INTERWORKING): Fix typo in comment. - (TARGET_SWITCHES): Add -m{no-}single-pic-base. - (TARGET_OPTIONS): Add -mpic-register=N. - (OUTPUT_INT_ADDR_CONST): New macro. - (INDEX_REGISTER_RTX_P, PIC_OFFSET_TABLE_REGNUM, FINALIZE_PIC, - LEGITIMATE_PIC_OPERAND_P): Likewise. - (LEGITIMIZE_ADDRESS, GOT_IF_LEGITIMATE_ADDRESS): Support PIC. - (ASM_OUTPUT_INT): Use OUTPUT_INT_ADDR_CONST rather than calling - output_addr_const directly. - (PRINT_OPERAND_PUNCT_VALID_P): Accept `|' for compatibility with - ARM port. - (thumb_pic_register, thumb_pic_register_string): Declare. - - * config/arm/thumb.c (symbol_mentioned_p): New function: Imported - from arm.c. - (label_mentioned_p): New function: Imported from arm.c. - (legitimize_pic_address): New function: Imported from arm.c. - (is_pic):New function: Imported from arm.c. - (thumb_finalize_pic):New function: Imported from arm.c. - (add_constant): Cope with PIC constants. - (fixit): Cope with PIC constants. - (output_return): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_function_prologue): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_expand_prologue): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_unexpand_epilogue): Do not treat the PIC register as live if - TARGET_SINGLE_PIC_BASE is true. - (thumb_print_operand): Accept '|'. - (thumb_override_options): Process PIC options. - - * config/arm/thumb.md (movsi): Support PIC. - (call_insn): Change "i" constraint to "X". - (call_value_insn): Likewise. - (consttable_4, consttable_8, consttable_end): Set and clear - "making_const_table" as appropriate. - (pic_load_addr, pic_add_dot_plus_four): New insns. - - * invoke.texi (Thumb Options): Fix spelling. Document new - options -msingle-pic-base and -mpic-register=. - -1999-07-26 Andrew Haley - - * config/m32r/initfini.c (__init): Use a full word immediate for - __fini: this allows it to be placed in any memory region. - - * config/m32r/t-m32r: Compile crtinit.o and crtfini.o for - -mmodel=medium. This is OK for all memory models. - -Mon Jul 26 11:58:46 1999 Nick Clifton - - * config/arm/arm.c: Replace %R%s in asm_fprintf strings with %r. - * config/arm/arm.h: Replace %R%s in asm_fprintf strings with %r. - -Mon Jul 26 10:23:36 1999 Nick Clifton - - * final.c (asm_fprintf): Accept ASM_FPRINTF_EXTENSIONS, if - defined. - - * tm.texi: Document ASM_FPRINTF_EXTENSIONS. - -Sun Jul 25 23:51:59 1999 Richard Henderson - - * i860.h (EXPAND_BUILTIN_SAVEREGS): New. - (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * i860.c (output_delayed_branch): Disable. - (output_delay_insn): Likewise. - (i860_saveregs): New. - (i860_build_va_list): New. - (i860_va_start): New. - (i860_va_arg): New. - * i860.md: Disable all peepholes using output_delayed_branch. - * i860/sysv4.h (I860_SVR4_VA_LIST): New. - -Sun Jul 25 23:44:13 1999 Richard Henderson - - * clipper.h (EXPAND_BUILTIN_SAVEREGS): Remove argument. - (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * clipper.c (clipper_builtin_saveregs): Only dump registers. - Return the address of the save area. - (clipper_build_va_list): New. - (clipper_va_start): New. - (clipper_va_arg): New. - -Sun Jul 25 22:56:47 1999 Richard Henderson - - * arc.h (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * arc.c (arc_setup_incoming_varargs): Set alias set of - varargs save area. - (arc_va_start): New. - (arc_va_arg): New. - -Sun Jul 25 22:45:55 1999 Richard Henderson - - * alpha.h (EXPAND_BUILTIN_SAVEREGS): Delete. - (BUILD_VA_LIST_TYPE): New. - (EXPAND_BUILTIN_VA_START): New. - (EXPAND_BUILTIN_VA_ARG): New. - * alpha.c (alpha_builtin_saveregs): Delete. - (alpha_build_va_list): New. - (alpha_va_start): New. - (alpha_va_arg): New. - -Sun Jul 25 21:40:33 1999 Jeffrey A Law (law@cygnus.com) - - * config/svr4.h (CTORS_SECTION_ASM_OP): Do not emit directives in - column zero. - (DTORS_SECTION_ASM_OP, INIT_SECTION_ASM_OP): Likewise. - (FINI_SECTION_ASM_OP, ASM_OUTPUT_SECTION_NAME): Likewise. - - * gcc.texi: More changes related to list conversion. - * invoke.texi: Likewise. - -Sun Jul 25 18:15:39 1999 Richard Henderson - - * builtins.c (expand_builtin_saveregs): Remove static, remove exp - and ignore arguments, bail if no EXPAND_BUILTIN_SAVEREGS. - (expand_builtin_next_arg): Accept ARGLIST not EXP. - (stabilize_va_list): New function. - (std_expand_builtin_va_start): New function. - (expand_builtin_va_start): New function. - (get_varargs_alias_set): New function. - (std_expand_builtin_va_arg): New function. - (expand_builtin_va_arg): New function. - (expand_builtin_va_end): New function. - (expand_builtin_va_copy): New function. - (expand_builtin): Call them. - * c-common.c (c_common_nodes_and_builtins): Build __builtin_va_list, - __builtin_{varargs_start,stdarg_start,end,copy}. - (build_va_arg): New function. - * c-common.h (CTI_PTR_TYPE, ptr_type_node): Delete. - (build_va_arg): Declare. - * c-decl.c (ptr_type_node, va_list_type_node): New. - * c-parse.gperf (__builtin_va_arg): New. - * c-parse.in (VA_ARG): New token. - (unary_expr): Recognize it. - * expr.c (expand_expr): Expand VA_ARG_EXPR. - * expr.h (std_expand_builtin_va_start): Declare. - (std_expand_builtin_va_arg): Declare. - (expand_builtin_va_arg): Declare. - (get_varargs_alias_set): Declare. - * tree.def (VA_ARG_EXPR): New. - * tree.h (BUILT_IN_VARARGS_START): New. - (BUILT_IN_STDARG_START, BUILT_IN_VA_END): New. - (ptr_type_node, va_list_type_node): Declare. - * tm.texi (EXPAND_BUILTIN_SAVEREGS): Kill unused ARGLIST argument. - * m32r.h (EXPAND_BUILTIN_SAVEREGS): Likewise. - * m88k.h, m88k.c: Likewise. - * mn10300.h, mn10300.c: Likewise. - * pa.h, pa.c: Likewise. - * rs6000.h, rs6000.c: Likewise. - * sh.h, sh.c: Likewise. - * sparc.h, sparc.c: Likewise. - - * emit-rtl.c (operand_subword): Copy alias set. - (change_address): Likewise. - -Sun Jul 25 15:04:37 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (compute_frame_size): Scan all the used callee saved registers, - not just the first one. - -Fri Jul 23 14:09:58 1999 Philip Blundell - - * config/arm/arm.h (TARGET_SWITCHES): Add - -m{no-}single-pic-base. Correct help string for -mshort-load-words. - (TARGET_OPTIONS): Add -mpic-register=. - (ARM_FLAG_SINGLE_PIC_BASE, TARGET_SINGLE_PIC_BASE): Define. - (arm_pic_register_string): Declare. - (NEED_PLT_GOT): Delete, replace with ... - (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. New macros. - (OUTPUT_INT_ADDR_CONST): Replace NEED_PLT_GOT with NEED_GOT_RELOC. - (ASM_OUTPUT_MI_THUNK): Replace NEED_PLT_GOT with NEED_PLT_RELOC. - * config/arm/arm.c (arm_override_options): Add new option - -mpic-register=N. - (arm_pic_register_string): New variable. - (arm_finalize_pic): Respect TARGET_SINGLE_PIC_BASE. - (output_func_prologue): If TARGET_SINGLE_PIC_BASE, treat the PIC - register as never live. Use NEED_PLT_RELOC not NEED_PLT_GOT. - (output_return_instruction): Likewise. - * config/arm/elf.h (NEED_PLT_GOT): Delete, replace with ... - (NEED_GOT_RELOC, NEED_PLT_RELOC): ... these. Define to flag_pic. - * config/arm/arm.md: Use NEED_PLT_RELOC in place of NEED_PLT_GOT. - - * invoke.texi (ARM Options): Fix spelling. Remove duplicate - mention of -msched-prolog. Document new options -msingle-pic-base - and -mpic-register=. - -Thu Jul 22 18:23:56 1999 Richard Henderson - - * haifa-sched.c (reemit_notes): Tidy. - * sched.c (reemit_notes): Duplicate 1998-08-31 patch to - haifa's routine. - -Thu Jul 22 18:21:04 1999 Richard Henderson - - * explow.c (trunc_int_for_mode): New function. - (plus_constant_wide): Use it. - * combine.c (simplify_and_const_int): Likewise. - (merge_outer_ops): Likewise. - (simplify_shift_const): Likewise. - * cse.c (simplify_unary_operation): Likewise. - (simplify_binary_operation): Likewise. - * emit-rtl.c (operand_subword): Likewise. - * rtl.h: Declare it. - -Thu Jul 22 14:34:59 1999 Bernd Schmidt - - * config/arm/arm.c (arm_print_operand): Fix typo in 'M' case - (use NUM_REGS instead of NUM_INTS). - -Thu Jul 22 11:25:20 1999 Bernd Schmidt - - * builtins.c: New file. - * expr.c (saveregs_value, apply_args_value): Delete definition, - moved into builtins.c. - (string_constant): No longer static. - (get_pointer_alignment, c_strlen, get_memory_rtx, expand_builtin, - apply_args_size, apply_result_size, result_vector, - expand_builtin_apply_args, expand_builtin_apply, - expand_builtin_return): Delete functions, moved into builtins.c. - (INCOMING_REGNO, OUTGOING_REGNO): Delete unused macros. - * expr.h (saveregs_value, apply_args_value): Declare variables. - (expand_builtin, string_constant): Declare functions. - * Makefile.in: Update to build builtin.o. - -Wed Jul 21 00:46:58 1999 Mark P. Mitchell - - * defaults.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): New macro. - * tm.texi (DWARF2_GENERATE_TEXT_SECTION_LABEL): Define it. - * dwarf2out.c (dwarf2out_init): Don't output a label to mark the - start of the text section if DWARF2_GENERATE_TEXT_SECTION_LABEL is - false. - * config/mips/iris6.h (DWARF2_GENERATE_TEXT_SECTION_LABEL): - Define to zero. - -1999-07-21 Michael Meissner - - * print-rtl.c (print_rtx): Print the names of the virtual - registers. - -Wed Jul 21 16:00:32 1999 Nick Clifton - - * config/arm/arm.h (INITIAL_ELIMINATION_OFFSET): Fix typo - introduced in previous delta. - -Wed Jul 21 14:30:51 1999 Bernd Schmidt - - * c-lang.c (finish_file): Rename void_list_node to void_list_node_1 - to avoid name clash. - -Wed Jul 21 08:39:22 1999 Gavin Romig-Koch - - * c-lex.c (yylex) : Correct the test for overflow when lexing - integer literals. - -Tue Jul 20 18:02:42 1999 Richard Henderson - - * haifa-sched.c (insn_cost): FREE implies cost 0 and vice versa. - (adjust_priority): Always call ADJUST_PRIORITY. - (schedule_insn): Only put insns into the ready at cost 0. - (schedule_block): Remove redundant initial sort. Give clock_var - and can_issue_more to MD_SCHED_REORDER. Requeue if hazard cost - is not 0. - * tm.texi (MD_SCHED_REORDER): Update docs. - - * sparc.h (MD_SCHED_REORDER): Update. Set CAN_ISSUE_MORE. - * sparc.c (ultra_reorder_called_this_block): Delete. - (ultrasparc_sched_init): Don't set it. - (ultrasparc_sched_reorder): Don't check it. - -Tue Jul 20 17:07:54 1999 Richard Henderson - - * rs6000.h (struct rs6000_args): Add sysv_gregno. - * rs6000.c (init_cumulative_args): Init sysv_gregno. - (function_arg_boundary): Align DFmode. - (function_arg_advance): Restructure for ABI_V4; use sysv_gregno - to get fp reg and stack overflow correct. - (function_arg): Likewise. - (function_arg_pass_by_reference): True for TFmode for ABI_V4. - (setup_incoming_varargs): Restructure for ABI_V4; use - function_arg_advance to skip final named argument. - (expand_builtin_saveregs): Properly unskip the last integer arg - when doing varargs. Adjust overflow location calculation. - - * ginclude/va-ppc.h (struct __va_list_tag): Make gpr and fpr - explicitly unsigned. - (__VA_FP_REGSAVE): Use new OFS argument instead of AP->fpr directly. - (__VA_GP_REGSAVE): Similarly. - (__va_longlong_p): Delete. - (__va_arg_type_violation): New declaration. - (va_arg): Restructure. Flag promotion errors. Align double. - TFmode passed by reference. - - * rs6000.md (movdi_32+1): Use GEN_INT after arithmetic - in the HOST_BITS_PER_WIDE_INT > 32 case. - -Tue Jul 20 12:37:30 1999 Hans-Peter Nilsson - - * dwarf2out.c (output_abbrev_section): Terminate with a zero. - -Tue Jul 20 12:12:27 1999 Jason Merrill - - * gcc.c (default_compilers, cpp-output): Pass -fpreprocessed. - * toplev.c (documented_lang_options): Add -fpreprocessed. - * cpplib.h (struct cpp_buffer): Add preprocessed. - * cppinit.c (cpp_handle_option): Handle -fpreprocessed. - (cpp_start_read): Don't expand macros or emit an initial #line - directive if -fpreprocessed. - -Tue Jul 20 12:12:09 1999 Michael Tiemann - - * cpplib.h (struct cpp_buffer): Added manual_pop for - better C++ tokenization. - * cpplib.c (cpp_get_token): Return CPP_EOF if manual_pop. - Also, support C++ tokenization for ->*, .*, ? operators. - * c-common.c (cpp_token): Make non-static. - -Tue Jul 20 11:24:19 1999 Bernd Schmidt - - * c-common.h: New file. - * c-common.c (permanent_obstack): Delete unused declaration. - (c_global_trees): New array. - (c_common_nodes_and_builtins): New function; split off common code - from init_decl_processing in both c-decl.c and cp/decl.c. - * c-tree.h: Delete lots of declarations of tree nodes; replaced by - c_global_trees and accessor macros defined in c-common.h. - Include c-common.h. - * c-decl.c: Delete definitions for tree nodes that were replaced by - c_global_trees. - (init_decl_processing): Build void_list_node. - Call c_common_nodes_and_builtins; delete code to generate the common - builtins here. - * objc/objc-act.c (build_module_descriptor): Rename variable - void_list_node to avoid clash with c-common.h. - - * Makefile.in: Update dependencies. - * objc/Make-lang.in: Likewise. - -Mon Jul 19 14:22:18 1999 Mark P. Mitchell - - * config/mips/iris6gld.h (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P): Likewise. - (UNIQUE_SECTION): Likewise. - -1999-07-19 Linas Vepstas - - * config/i370/README: New file. - * config/i370/linux.h: New file. - * config/i370/mvs.h: New file. - * config/i370/oe.h: New file. - * config/i370/t-linux: New file. - * config/i370/t-mvs: New file. - * config/i370/t-oe: New file. - * config/i370/x-oe: New file. - * config/i370/xm-linux.h: New file. - * config/i370/xm-mvs.h: New file. - * config/i370/xm-oe.h: New file. - - * i370.c (label_node_t): Add first_ref_page, label_addr, - label_first_ref, label_last_ref members. - (mvs_need_base_reload): Renamed from mvs_label_emitted. - (MAX_MVS_LABEL_SIZE): Define. - (MAX_LONG_LABEL_SIZE): Define. - (alias_node_t, alias_anchor, alias_number): New. - (mvs_function_table): Reorder for EBCDIC. - (ascebc, ebcasc): Unconditionally define. - (i370_branch_dest, i370_branch_length): New functions. - (i370_short_branch, i370_label_scan): New functions. - (mvs_get_label): Renamed from mvs_add_label. Search for - an existing label before creating a new one. - (mvs_add_label): New function. - (mvs_get_label_page): New function. - (mvs_free_label_list): Renamed from mvs_free_label. Iterate - over the entire list. - (mvs_check_page) [TARGET_HLASM]: Use BASR not BALR. - (mvs_check_page) [TARGET_ELF_ABI]: New function. - (mvs_add_alias, mvs_need_alias): New functions. - (mvs_get_alias, mvs_check_alias): New functions. - (handle_pragma): New function. - (mvs_function_check): New function. - (unsigned_jump_follows_p): Search harder. - (i370_function_prolog) [TARGET_HLASM]: Handle LE370. Scan labels. - (i370_function_prolog) [TARGET_ELF_ABI]: New function. - * i370.h (TARGET_VERSION): Delete. - (CPP_SPEC, CPP_PREDEFINES): Delete. - (mvs_label_emitted): Delete. - (TARGET_EBCDIC): Delete. - (MAP_CHARACTER): Define only if TARGET_EBCDIC. - (HANDLE_PRAGMA): Define. - (HARD_REGNO_NREGS): Handle complex modes. - (HARD_REGNO_MODE_OK): Likewise. - (CLASS_MAX_NREGS): Likewise. - (RET_REG): Likewise. - (EXTRA_CONSTRAINT): Define. - (RETURN_IN_MEMORY): True for DImode. - (TRAMPOLINE_TEMPLATE): Use gen_rtx instead of GEN_INT. - (FUNCTION_PROFILER): Delete. - (COUNT_REGS): Fail if REG_P but not REG_OK_FOR_BASE_P. - (NOTICE_UPDATE_CC): Correct handling of MULT, DIV, logicals and shifts. - (TARGET_ESC, TARGET_BELL): Conditionally define for TARGET_EBCDIC. - (TARGET_BS, TARGET_TAB, TARGET_NEWLINE): Likewise. - (TARGET_VT, TARGET_FF, TARGET_CR): Likewise. - (ASM_FILE_START): Add "RMODE ANY". - (ASM_OUTPUT_EXTERNAL): Check for aliases. - (ASM_GLOBALIZE_LABEL): Likewise. - (ASM_OUTPUT_LABELREF): Likewise. - (ASM_OUTPUT_COMMON): Likewise. - (PRINT_OPERAND): Handle 'K', 'W', default. - (PRINT_OPERAND_ADDRESS): New. - (Lots of defines): Add support for TARGET_ELF_ABI. - * i370.md (attr length): New. Define for all patterns. - (*): Lots of tweeks to assembly output and constraints. - -Mon Jul 19 15:09:29 1999 David Edelsohn - - * rs6000.md (arithmetic, logical, and shift Rc combiner patterns): - Disable patterns performing SImode comparisons with SImode values - if TARGET_POWERPC64 and instruction does not sign-extend or does - not mask to narrower than SImode, i.e. where bit 31 and bit 63 may - differ for signed quantities. - (indirect_jump): Add expander to choose RTL based on TARGET_64BIT. - (tablejump): Patterns contingent on TARGET_64BIT not TARGET_POWERPC64. - (decrement_and_branch_on_count): Add 64-bit variant. - -Mon Jul 19 09:36:27 1999 Bernd Schmidt - - * final.c (output_asm_insn): When searching for the matching string - for a given dialect, don't run past the end of the list of - alternatives if there are fewer alternatives in the template than - dialects. - -1999-07-17 Alexandre Oliva - - * gcc.texi: Update e-mail addresses and URLs to gcc.gnu.org. - Removed paragraph about compression of files and size limitation, - duplicated in the FAQ. Use gcc-patches for posting patches. - * gcc.c (main): Updated URL with bug reporting instructions to - gcc.gnu.org. Removed e-mail address. - * system.h (abort): Likewise. - -1999-07-17 Kaveh R. Ghazi - - * Makefile.in (stmp-multilib-sub): Make the files extracted - from $(LIBGCC1) writable. - -Sat Jul 17 14:25:46 1999 Nick Clifton - - * config/arm/aout.h: Reformat for improved readability. - - * config/arm/arm.h: Reformat for improved readability. - Replace uses of fprintf with asm_fprintf where appropriate. - (ARM_DECLARE_FUNCTION_NAME): New macro: Perform any generic ARM - function declaration assembler actions. - (NUM_INTS): New macro: Convert from bytes to words. - (NUM_REGS): New macro: Compute number of registers required to - hold a quanitity of tyep MODE. - (NUM_REGS2): New macro: Like NUM_REGS but also copes with BLKmode - types. - (NUM_ARG_REGS): New macro: The number of argument registers - available. - (ARG_REGISTER): New macro: Compute the register number of the Nth - argument register. - (LAST_ARG_REGNUM): New macro: The number of the last argument - register. - (SP_REGNUM): New macro: Register number of the stack pointer. - (FP_REGNUM): New macro: Register number of the frame pointer. - (FUNCTION_ARG, FUNCTION_ARG_PARTIAL_NREGS, INIT_CUMULATIVE_AGS, - FUNCTION_ARG_ADVANCE, SETUP_INCOMING_VARARGS): Change - CUMULATIVE_ARGS so that it counts registers not bytes. - - * config/arm/arm.c: Rename TARGET_THUMB_INTERWORK to - TARGET_INTERWORK. - Replace uses of fprintf with asm_fprintf where appropriate. - (output_ascii_pseudo_op): Replace with version from thumb.c - - * config/arm/coff.h (ASM_FILE_START): Emit ASM_APP_OFF. - - * config/arm/elf.h (CPP_PREDEFINES): Replace with - SUBTARGET_CPP_SPEC. - (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. - (ASM_FILE_START): Emit ASM_APP_OFF. - -Fri Jul 16 13:48:09 1999 Jeffrey A Law (law@cygnus.com) - - * pa.c (compute_frame_size): Round frame according to - STACK_BOUNDARY rather than a hardwired value. - - * pa.h (POINTER_SIZE, PARM_BOUNDARY): Define in terms of BITS_PER_WORD. - - * configure.in (hppa*-*-hpux11*): Use symbolic MASK_PA_11 instead - of "1". - * configure: Rebuilt. - - * configure.in (hppa*-*-linux*): New configuration. - * configure: Rebuilt. - * pa.h (MAX_OFILE_ALIGNMENT): Delete. - * pa/som.h (MAX_OFILE_ALIGNMENT): Define. - * pa/pa-linux.h: New file. - * pa/t-linux: New file. - * pa/xm-linux.h: New file. - - * pa.c (hppa_legitimize_address): Change references from SImode to - either Pmode or word_mode as appropriate. - (emit_move_sequence, store_reg, load_reg): Likewise. - (set_reg_plus_d, hppa_expand_prologue): Likewise. - (output_mul_insn): Likewise. - * pa.h (PROMOTE_MODE): Likewise. - (INITIALZE_TRAMPOLINE): Likewise. - (Pmode): Define to word_mode. - - * pa.c (compute_frame_size): Use UNITS_PER_WORD instead of hardwired - value of 4. Allocate 8 bytes for each FP register save. - (hppa_expand_epilogue): Use UNITS_PER_WORD instead of harwarewired - value of 4. - (hppa_expand_prologue): Likewise. - * pa.h (PROMOTE_MODE): Likewise. - (HARD_REGNO_MODE_OK, FUNCTION_ARG_SIZE): Likewise. - (FUNCTION_ARG_BOUNDARY): Likewise. - - * invoke.texi (HPPA Options): Remove -mspace/-mno-space. - - * pa.c (out_of_line_prologue_epilogue): Delete. - (override_options): Remove -mspace related code. - (hppa_expand_prologue, hppa_expand_epilogue): Likewise. - (compute_frame_size): Only allocate space for register that - actually need to be saved. - * pa.h (MASK_SPACE, TARGET_SPACE): Delete. - (TARGET_SWITCHES): Remove -mspace, -mno-space - * pa/t-pa (LIB2FUNCS_EXTRA): Remove ee.asm and ee_fp.asm - * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. Remove -mspace multilib. - * pa/ee.asm, pa/ee_fp.asm: Delete. - - * pa/elf.h (ASM_OUTPUT_DOUBLE_INT): Define. - - * config/svr4.h (CONST_SECTION_ASM_OP): Do not emit assembler - directive in column zero. - -Fri Jul 16 01:39:57 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.c (output_function_prologue): Fix computation of save mask - when generating PIC code. - -Thu Jul 15 15:40:09 1999 Jim Wilson - - * tree.c (build_type_attribute_variant): Move current_obstack restore - after build_qualified_type call. - -1999-07-15 Mark Mitchell - - * configure.in: Use t-iris6, even with GNU LD. - * config/mips/iris6gld.h: Fix typo in linker spec. - * config/mips/t-iris6gld: Remove. - -Thu Jul 15 15:15:43 1999 David Edelsohn - - * rs6000.md (insv, extzv): Remove SImode dependence in named - patterns. Explicitly generate DImode RTL if PowerPC64 and - operand is DImode. - (insvdi): Reverse start and size in instruction template. - -1999-07-12 Joseph S. Myers - - * invoke.texi: Typo fixes. - -Wed Jul 14 23:28:06 1999 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (gen_realpart): Issue an error for cases GCC can not - handle at this time instead of silently generating incorrect code. - (gen_imagpart): Likewise. - - * reload.c (find_reloads): Emit a USE for a pseudo register without - a hard register if we could not create an optional reload for the - pseudo. - -Wed Jul 14 23:45:48 1999 J"orn Rennecke - - * c-typeck.c (output_init_element, process_init_element): - When advancing constructor_unfilled_fields for a RECORD_TYPE, - check for nameless bit fields. - -Wed Jul 14 01:57:39 1999 Richard Henderson - - * regclass.c (scan_one_insn): Notice subregs that change the - size of their operand. - (record_reg_classes): Use that to obey CLASS_CANNOT_CHANGE_SIZE. - -Wed Jul 14 01:41:42 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (alpha*-*-*): Include alpha/t-ieee. - * configure: Rebuilt. - * alpha/t-ieee: New file. - -Tue Jul 13 10:45:58 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.c (find_addr_reg): Do not select r0 as an address - register. - -Tue Jul 13 00:46:18 1999 Philippe De Muyter - - * m68k/x-mot3300 (XCFLAGS): List of big files now includes `cse.o'. - -Mon Jul 12 14:29:15 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (movsf): Do not force easy FP constants into memory. - - * expr.c (expand_expr, case PLUS_EXPR): Pass constants through - immed_double_const to ensure they are properly truncated then - sign extended. - -Mon Jul 12 10:40:01 1999 Vladimir Makarov - - * config/arm/thumb.c (thumb_reorg): Call replace_symbols_in_block - always unless NO_DEBUG is used. Compile this code - unconditionally. - (replace_symbols_in_block): Compile it unconditionally. - -Sun Jul 11 12:32:32 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (i?86-*-elf*): New target. - * configure: Rebuilt. - * i386/i386elf.h, i386/t-i386elf: New files. - -Fri Jul 9 22:39:44 1999 Jason Merrill - - * toplev.c (main): Don't complain about saying -gdwarf. - (rest_of_compilation): Remove redundant code. - -Fri Jul 9 19:08:55 1999 Jim Wilson - - * unroll.c (unroll_loops): Don't delete named CODE_LABELs. - -Fri Jul 9 18:54:18 1999 Felix Lee - - * config/i960/i960.c (ret_label): Change asm label from "LR:" to - "Li960R:", to avoid name clash. - -Fri Jul 9 10:48:28 1999 Bernd Schmidt - - * loop.c (check_dbra_loop): When reversing a loop, delete all - REG_EQUAL notes referencing the reversed biv except those which are - for a giv based on it. - -Fri Jul 9 03:51:52 1999 Jeffrey A Law (law@cygnus.com) - - * version.c: Drop "gcc-" prefix from version #. - -Thu Jul 8 18:06:30 1999 Jason Merrill - - * dwarf2out.c (dwarf2out_line): Emit a line number comment after - the label if we're being verbose. - -Thu Jul 8 14:18:46 1999 Richard Henderson - - * m68k.c (output_function_prologue): Add pic register to mask - if live and flag_pic. - (output_function_epilogue): Likewise. - -Thu Jul 8 12:55:12 1999 Jeffrey A Law (law@cygnus.com) - - * dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Do not put assembler - directives in column zero. - - * pa/elf.h (ASM_FILE_START): Define. - * pa/som.h (ASM_FILE_START): Include .level directives. - * pa/hpux10.h (ASM_FILE_START): Delete. - * pa/hpux11.h (ASM_FILE_START): Delete. - - * pa/elf.h (BSS_SECTION_ASM_OP): Use .section .bss. - -Thu Jul 8 18:03:19 1999 J"orn Rennecke - - * reload1.c (choose_reload_regs): Never call remove_address_replacements - when reload_out equals reload_in. - -Thu Jul 8 16:50:14 1999 Nick Clifton - - * invoke.texi (Spec Files): New node: Describe the contents of - spec files. - -Thu Jul 8 10:28:25 1999 Craig Burley - - * invoke.texi (DEC Alpha Options): Put @end table at - beginning of line, to avoid confusing texi2html. - -Thu Jul 8 09:22:06 1999 Nick Clifton - - * config/arm/elf.h (ASM_OUTPUT_INTERNAL_LABEL): Fixed typo - introduced in previous delta. - -Wed Jul 7 02:00:04 1999 Franz Sirl - - * reload1.c (gen_reload): When synthesizing a 3 operand add - sequence, improve test for when to reload OP1 into the reload - register instead of OP0. - -Wed Jul 7 01:38:03 1999 Jim Wilson - - * unroll.c (unroll_loop): Don't delete NOTE_INSN_DELETED_LABEL notes. - -1999-07-07 Manfred Hollstein - - * m88k/dguxbcs.h (CPP_SPEC): Add missing \ in multi-line - string literal. - -Wed Jul 7 01:16:43 1999 Richard Henderson - - * ginclude/varargs.h (__builtin_va_alist_t): New typedef. - (va_dcl): Use __builtin_va_alist_t. - -Wed Jul 7 01:14:42 1999 Jason Merrill - - * dwarf2out.c (gen_struct_or_union_type_die): Only remember types - on the permanent_obstack. - * dwarfout.c (output_type): Likewise. - -Tue Jul 6 15:25:32 1999 Gavin Romig-Koch - - * c-common.c (unsigned_type,signed_type,signed_or_unsigned_type) : - Merged from c-typeck.c and cp/typeck.c. - * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : - Merged into c-common. - -Tue Jul 6 13:06:01 1999 Dave Brolley - - * c-lex.c (errorcount): Declare it. - (finish_parse): Update errorcount when using CPPLIB. - -1999-07-06 Bruce Korb - - * fixinc/inclhack.def(end_else_label): Double the backslash so - sed gets a chance to see it. - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -Fri Jul 2 18:49:51 1999 Nick Clifton - - Add framework to support armv5 architecture when it becomes - available: - - * config/arm/arm.c (FL_ARCH5): New processor capability flag. - (arm_arch5): New variable. - (all_architectures): Add armv5 line. - * config/arm/arm.h (CPP_CPU_ARCH_SPEC): Define __ARM_ARCH_5__ if - -march=armv5 is specified on the command line. - (arm_arch5): Export this variable. - * invoke.texi: Document new string accepted by -march= switch for - ARM ports. - - * config/arm/arm.h: Replace use of constant 12 as a register - number with IP_REGNUM. Similarly 14 and LR_REGNUM. - * config/arm/arm.c: Replace use of constant 12 as a register - number with IP_REGNUM. Similarly 14 and LR_REGNUM. - - * config/arm/elf.h: Tidy up. - * config/arm/coff.h: Tidy up. - -Thu Jul 1 19:08:13 1999 Mark P. Mitchell - - * gcc/configure.in (mips-sgi-irix6*): Handle --with-gnu-ld. - * gcc/config/mips/t-iris6gld: New file. - * gcc/config/mips/iris6gld.h: Likewise. - -Fri Jul 2 13:23:39 1999 Gavin Romig-Koch - - * c-decl.c (widest_integer_literal_type_node, - widest_unsigned_literal_type) : New. - (init_decl_processing): Handle/use the two new types. - * c-common.c (type_for_size,type_for_mode) : Same. - * c-lex.c (yylex) : Same. - * c-typeck.c (unsigned_type,signed_type,signed_or_unsigned_type) : - Same. - * c-tree.h (widest_integer_literal_type_node, - widest_unsigned_literal_type) : New. - -Fri Jul 2 03:05:44 1999 Jeffrey A Law (law@cygnus.com) - - * dwarfout.c (field_byte_offset): Correctly compute the object's - byte offset for the first bit of a field which crosses an alignment - boundary on a !BYTES_BIG_ENDIAN target. - -Fri Jul 2 01:36:36 1999 Robert Lipe - - * fixinc.svr4: Fix by deleting protos for htons and - ntohs. - -Fri Jul 2 00:46:47 1999 Richard Henderson - Jeff Law - - * ginclude/varargs.h (va_dcl): Use word_mode for type of - __builtin_va_list. - - * except.c: Include intl.h. - (expand_eh_return): Set current_function_cannot_inline. - (save_eh_status, restore_eh_status): Twiddle eh_return_stub_label. - * function.h (struct function): Add eh_return_stub_label. - * flow.c (delete_unreachable_blocks): Don't merge across EH edges. - * Makefile.in (except.o): Depend on intl.h. - -Fri Jul 2 00:04:23 1999 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Handle PRE_INC and PRE_DEC the - same as offsettable in cases 1 and 2. - -Thu Jul 1 20:54:10 1999 Richard Henderson - - * alpha.md (extqh): Define as 64-((R&7)*8) instead of 56-(((R-1)&7)*8). - (extlh, extwh): Likewise. - -Thu Jul 1 11:05:25 1999 Gavin Romig-Koch - - * c-lex.c (yylex): Improve 'integer constant out of range' messages. - -Wed Jun 30 16:51:41 1999 Nick Clifton - - * configure.in: Add arm-pe and thumb-pe targets. - * configure: Regenerate. - - * thumb.c (arm_naked_function_p): New function: Determines if - a function is naked (has no gcc generated prologue/epilogue). - (is_called_in_ARM_mode): Return true if the func has the - interfacearm attribute. - (output_return): Do not generate a return for naked functions. - (thumb_function_prologue): Do not generate a prologue for - naked functions. - (thumb_expand_prologue): Do not generate a prologue for naked - functions. - (thumb_expand_epilogue): Do not generate an epilogue for naked - functions. - (arm_valid_machine_decl_attribute): New function, copied from - arm.c: Permit naked and interfacearm attributes. - - * config/arm/pe.c: New file: Support code for arm-pe target. - * config/arm/pe.h: New file: Header file for arm-pe target. - * config/arm/tpe.h: New file: Header file for thumb-pe target. - * config/arm/t-thumb-pe: New file: Makefile fragment for - thumb-pe target. - -1999-07-01 Mark Kettenis - - * config/i386/gnu.h (CPP_SPEC): Define __PIC__ and __pic__ if - -fPIC or -fpic is specified. - -Wed Jun 30 03:31:54 1999 Jeffrey A Law (law@cygnus.com) - - * expr.c (emit_block_move): Use copy_to_mode_reg for - !TARGET_MEM_FUNCTIONS case too. - - * configure.in (hppa*-*-*): Add som.h or elf.h to tm_file as - appropriate. - * configure: Rebuilt. - (hppa1.1-*-pro*, hppa1.1-*-rtems*): Define target_cpu_default. - * pa.h: Include dbxelf.h. Delete various dbx/stabs related - definitions made redundant by dbxelf.h inclusion. Delete - lots of definitions related to assembly output that are - specific to the SOM object format. - * pa.c (output_function_prologue): Do not emit the function's - name for OBJ_ELF. - * pa-pro-end.h (STARTFILE_SPEC): Undefine before redefining. - * pa-pro.h: Deleted. - * som.h: New file with SOM specific definitions. - * elf.h: New file with ELF specific definitions. - - * elfos.h (const_section): Output a tab before assembler directives. - (ctors_section, dtors_section): Likewise. - (ASM_OUTPUT_SECTION_NAME): Likewise. - - * pa/pa1.h: Delete unused file. - -Tue Jun 29 01:37:53 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa*-hp-hpux11*): New configuration. - * configure: Rebuilt. - * pa/pa-hpux11.h: New file. - * pa.h (CPP_SPEC): Conditionally add -D__STDC_EXT__ to the cpp - command line. - - * mips.md (leasi, leadi): New patterns. - - * expr.c (emit_block_move): Properly handle case where one of the - block move arguments has a queued increment or decrement. - (clear_storage): Similarly. Fix formatting goof. - -1999-06-28 "David O'Brien" - - * fixinc/inclhack.def(stdio_va_list): This patch Removes a - semicolon from the BSD VA_LIST replacement expression. - - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - - * fixinc/mkfixinc.sh: Have `i[34567]86-*-freebsd*' machines - now use the fixincl program. - -Mon Jun 28 05:28:12 1999 Jeffrey A Law (law@cygnus.com) - - * m68k.h (CONDITIONAL_REGISTER_USAGE): Define for !SUN_FPA - case. Also make the PIC register call_used. - - * m68k.h (FINALIZE_PIC): Delete. - * m68k.c (finalize_pic): Delete. - -Mon Jun 28 05:16:35 1999 Richard Henderson - - * m68k.h (PREFERRED_RELOAD_CLASS): Don't force any FP const_doubles - to memory. - -Mon Jun 28 04:07:27 1999 David Edelsohn - - * expmed.c (expand_divmod): Ensure unsigned value fits in reg_note. - -Sun Jun 27 02:39:08 1999 Richard Henderson - - * jump.c (jump_optimize_1): Validate the cmov copy to a temporary. - -Sat Jun 26 17:18:18 1999 David Edelsohn - - * rs6000.c (print_operand, case 'L'): Use plus_constant_for_output. - -Fri Jun 25 11:33:24 1999 Richard Henderson - - * alpha.c (override_options): Add -mcpu=ev45 as an alias for ev4. - -Fri Jun 25 13:41:25 1999 David Edelsohn - - * rs6000.c (output_toc): Always use hex values for floating-point - constants. Store single-precision values in upper-half of TOC - entry in 64-bit mode. - * rs6000.md (floatsidf2, floatunssidf2): Add !TARGET_POWERPC64 - to final constraints. - (fix_truncdfsi2 splitter): Change pattern matching fctiwz. - (fctiwz): Improve accuracy of RTL for pattern. - -Fri Jun 25 11:26:38 1999 Gavin Romig-Koch - - * expr.c (expand_expr): Allow RTL_EXPR's through the - MAX_INTEGER_COMPUTATION_MODE checks. - -Fri Jun 25 06:06:37 1999 Richard Henderson - - * alpha.h (MASK_SUPPORT_ARCH, MASK_CPU_EV5, MASK_CPU_EV6): Define - such that MASK_SUPPORT_ARCH is not negative. - -Fri Jun 25 05:35:44 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (verify_dominator): Properly handle ADDR_VEC and - ADDR_DIFF_VEC insns that appear inside loops. - -Thu Jun 24 22:54:05 1999 David Edelsohn - Jeff Law - - * rs6000.md (movdf_hardfloat32): Revert previous patch. - Handle LO_SUM the same as offsettable in cases 1 and 2. - * rs6000.c (find_addr_reg): Revert previous patch. - -Thu Jun 24 22:43:12 1999 Philippe De Muyter - - * system.h (strstr): New external function declaration. - * acconfig.h (NEED_DECLARATION_STRSTR): New define slot. - * configure.in (GCC_NEED_DECLARATIONS): Check for strstr. - * config.in, configure: Rebuilt. - -1999-06-24 Tom Tromey - - * gcc.c (main): Read user-specified specs files after computing - additional startfile_prefixes. - -Thu Jun 24 15:00:47 1999 Mark Mitchell - - Revert these two patches: - - Thu Jun 17 21:34:24 1999 J"orn Rennecke - * loop.c (strength_reduce): When doing biv->giv conversion, update - reg note of NEXT->insn. - - Thu Jun 17 17:22:07 1999 J"orn Rennecke - * loop.c (strength_reduce): When doing biv->giv conversion, fix up - reg_biv_class. - (recombine_givs): Set ix field after sorting. - -Wed Jun 23 21:26:00 1999 J"orn Rennecke - - * rtlanal.c (reg_referenced_p): Use reg_overlap_mentioned_p - for the parts of an UNSPEC / UNSPEC_VOLATILE. - -1999-06-23 Bruce Korb - - *fixinc/inclhack.def: Add fix development commentary - (read_ret_type): reactivate and add selection clause - (zzz_*): tweak output file name to match what is used in hackshell.tpl - *fixinc/{fixincl.x|inclhack.sh}: regen - -Wed Jun 23 00:48:21 1999 Jason Merrill - - * expr.c (expand_expr): STRIP_NOPS before checking against - MAX_INTEGER_COMPUTATION_MODE - (check_max_integer_computation_mode): Likewise. - -Tue Jun 22 20:23:43 1999 Jim Wilson - - * md.texi (smul@var{m}3_highpart): Add missing 's' prefix. - -1999-06-22 Jim Wilson - - * expr.c (store_expr): When target is a promoted subreg, return a - promoted subreg as a result. - -Tue Jun 22 17:14:58 1999 Michael Meissner - - * dwarf2out.c (dwarf2out_frame_debug_expr): Reformat to match GNU - coding standards. - (dwarf2out_define): Mark unused parameters appropriately. - (gen_unspecified_parameters_die): Ditto. - (gen_subprogram_die): Fix signed/unsigned warnings. - (gen_variable_die): Ditto. - -1999-06-22 Bruce Korb - - * fixinc/inclhack.def(end_else_label): combined else_label - and endif_label and fixed the sed expression. - *fixinc/{fixincl.x|inclhack.sh}: regen - -Tue Jun 22 01:58:18 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (movdf_hardfloat32): Use %X instead of always emitting - 'x' when handling non-offsettable addresses - -Tue Jun 22 00:20:05 1999 Richard Earnshaw (rearnsha@arm.com) - - * final.c (shorten_branches): Don't try to split an insn that has - been deleted. - -Mon Jun 21 12:47:39 1999 Mark Mitchell - - * config/mips/mips.c (symbolic_expression_p): New function. - (mips_select_rtx_section): Put symbolic expressions in the - data section, not the read-only data section. - -Mon Jun 21 22:13:06 1999 Jeffrey A Law (law@cygnus.com) - - * rs6000.md (find_addr_reg): Handle LO_SUM addresses. - -Mon Jun 21 20:10:42 1999 Richard Henderson - - * collect2.c (main): Log frame table count. - (GCC_OK_SYMBOL) [ECOFF]: Accept stGlobal. - (scan_prog_file) [COFF]: Handle frame tables. - - * alpha/alpha.h (UNALIGNED_SHORT_ASM_OP): Define. - (UNALIGNED_INT_ASM_OP, UNALIGNED_DOUBLE_INT_ASM_OP): Define. - * alpha/elf.h: Undef them again. - * alpha/vms.h: Remove their definitions. - -Tue Jun 22 03:17:53 1999 J"orn Rennecke - - * sh.c (machine_dependent_reorg): When fixing up fp pcloads, - remove the clobber of r0 and change the REG_UNUSED note to - REG_INC. - -1999-06-21 Jakub Jelinek - - * real.c (ereal_from_double): Fix for 64-bit big endian hosts. - * emit-rtl.c (gen_lowpart_common): Add case for hosts where double - fits in HOST_WIDE_INT and one uses union to access a long constant - as double. - -Mon Jun 21 17:18:25 1999 Richard Henderson - - * sparc.c (sparc_override_options): Don't allow profiling for - code models other than medlow. - (sparc_function_profiler): New function from old FUNCTION_PROFILER - macro. Use ASM_GENERATE_INTERNAL_LABEL and MCOUNT_FUNCTION. - (sparc_function_block_profiler): Likewise. Use user_label_prefix. - (sparc_block_profiler): Likewise. - (sparc_function_block_profiler_exit): Likewise. - * sparc.h (FUNCTION_PROFILER): Call new sparc.c function. - (FUNCTION_BLOCK_PROFILER): Likewise. - (BLOCK_PROFILER): Likewise. - (FUNCTION_BLOCK_PROFILER_EXIT): Likewise. - (MCOUNT_FUNCTION): New. - * sparc/pbd.h (FUNCTION_PROFILER): Delete. - (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Delete. - * sparc/sun4o3.h (FUNCTION_PROFILER): Delete. - (MCOUNT_FUNCTION): New. - * sparc/sysv4.h (FUNCTION_BLOCK_PROFILER): Delete. - (BLOCK_PROFILER): Delete. - (MCOUNT_FUNCTION): New. - -Mon Jun 21 14:11:29 1999 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Fix typo in case 2. - -Mon Jun 21 12:27:17 1999 Vladimir Makarov - - * config/mips/elf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Add the macros. - - * config/m68k/m68kelf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/sh/sh.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - - * config/arm/telf.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_ALIGNED_BSS): - Ditto. - -Mon Jun 21 14:58:42 1999 Nick Clifton - - * config/arm/arm.h: Add cpp support for ARM920 and ARM920T cpu - types. - -Mon Jun 21 06:22:21 1999 Mark Elbrecht - - * i386/djgpp.h (LIB_SPEC): New. - (STARTFILE_SPEC): New. - - * i386/xm-djgpp.h (NO_SYS_SIGLIST): Deleted. Now obsolete. - -Mon Jun 21 06:19:33 1999 Philippe De Muyter - - * fixinc/Makefile.in (gnu-regex.o): Do not define STDC_HEADERS in - compiler flags. - - * system.h (WSTOPSIG): New macro. - -Mon Jun 21 05:33:15 1999 Mumit Khan - - * c-pragma.c (push_alignment): Don't ignore alignments greater than - 4 bytes. - (insert_pack_attributes): Take into account member natural - alignment. - - * i386/winnt.c (exports_head): New static variable. - (i386_pe_record_exported_symbol): New function. - (i386_pe_asm_file_end): Use. - * i386/cygwin.h (ASM_OUTPUT_COMMON): Record the exported - symbols to be emitted at end of assembly. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - - * i386/uwin.h (CPP_SPEC): Use -idirafter instead -iprefix and - -iwithprefix. - -Mon Jun 21 04:44:31 1999 Jeffrey A Law (law@cygnus.com) - - * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Fix paren error introduced - in last change. - -Sun Jun 20 17:27:20 1999 Richard Henderson - - * haifa-sched.c (sched_analyze_1): Use free_list instead of - zapping reg_last_uses directly. - (sched_analyze_2, sched_analyze_insn): Likewise. - (sched_analyze): Likewise. Don't clear reg_last_uses on calls. - -Sun Jun 20 16:57:29 1999 David Edelsohn - - * rs6000.md (movdf_hardfloat32): Use worst case insn length - attributes for cases 1 and 2. - -Sat Jun 19 22:52:55 1999 Richard Henderson - - * haifa-sched.c (sched_analyze): Mark call-user regs as clobbered - instead of set. - -Sat Jun 19 05:40:07 1999 Philip Blundell - - * arm.c (arm_reload_in_hi): Invert sense of test on BYTES_BIG_ENDIAN. - -Sat Jun 19 05:25:05 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (CONDITIONAL_REGISTER_USAGE): If flag_pic, never use - PIC_OFFSET_TABLE_REGNUM for general alloaction. - (INITIAL_ELIMINATION_OFFSET): Count the fact that the PIC register - must be stacked if it is used for PIC accesses. - * arm.c (use_return_insn): Handle PIC register specially. - (output_return_instruction): Likewise. - (output_func_{prologue,epilogue}): Likewise. - (output_expand_prologue): Likewise. - - * arm.md (*adddf_esfdf_df): Renamed from *adddf_df_esfdf. - (*strsi_predec): Renamed from *strqi_predec. - (*loadsi_shiftpreinc): Renamed from *loadqi_shiftpreinc. - (*loadsi_shiftpredec): Renamed from *loadqi_shiftpredec. - - * arm.c (arm_override_options): Remove warning about PIC code - not being supported. - -Fri Jun 18 23:47:06 1999 David Edelsohn - - * rs6000.c (find_addr_reg): New function. - * rs6000.h (find_addr_reg): Declare. - (offsettable_addr_operand): Delete. - * rs6000.md (movdf_hardfloat32): Handle non-offsettable loads - from and stores to GPRs. - -Fri Jun 18 15:44:18 1999 Richard Henderson - - * alpha.c (alpha_expand_block_move): Use get_insns rather than - gen_sequence as argument to emit_no_conflict_block. - -Fri Jun 18 07:02 1999 Bruce Korb - - * fixinc/mkfixinc.sh: enable the fixincl program for DG/UX - * fixinc/inclhack.def(dgux_int_varargs): script must end with \n - *fixinc/fixincl.x: regen - *fixinc/inclhack.sh: regen - -Thu Jun 17 15:06:10 PDT 1999 Don Lindsay - - * added support for -mpcrel (PC relative addressing for m68k) - based on code done by Michael Tiemann . - * invoke.texi (m68000 options): Add documentation for -mpcrel flag. - * m68k.c (print_operand_address): Handle 32-bit PIC case. - (comments for general_src_operand): Add some explanation - about EXTRA_CONSTRAINTS. - (OVERRIDE_OPTIONS): Enable -fPIC in combination with -mpcrel. - * m68kelf.h (OVERRIDE_OPTIONS): Ditto. - (LEGITIMATE_PIC_OPERAND_P): Fix typo. - (LEGITIMATE_PIC_OPERAND_P): Re-derive from m68k.h case. - * m68k.h (LEGITIMATE_PIC_OPERAND_P): Fix delete-o. - (INDIRECTABLE_1_ADDRESS): Delete spurious '/' at end of macro. - (OVERRIDE_OPTIONS): Change behavior so that -mpcrel implies -fpic - if not already set. - (OVERRIDE_OPTIONS): Merge in changes from m68k.h. - * m68k.h (TARGET_PCREL): New target flag. - (TARGET_SWITCHES): Add "pcrel" as a recognized switch. - (OVERRIDE_OPTIONS): Add checks for -mpcrel. - (LEGITIMATE_PIC_OPERAND_P): Don't normally accept anything that - contains a SYMBOL_REF. Relax this constraint during reload, since - we want to use the predicates, not reload's built-in concept of a - valid memory address, to control what insns need reloading. - (EXTRA_CONSTRAINT): Define constraints to accept pc-relative - operands (essentially 'g', 'm', and 's' under normal circumstances). - * m68k.c (print_operand): Cause printing of pc-relative addresses - to include pc register. - (print_operand_address): Ditto. - (general_src_operand): Accept operands that are not only - general_operands, but are also valid when used as a pc-relative - source. - (nonimmediate_src_operand): Similar, for nonimmediate_operands. - (memory_src_operand): Similar, for memory_operands. - (pcrel_address): New predicate to accept the special case of a - pc-relative address. - * m68k.md (many patterns): Rewrite common SImode, HImode, and - QImode insns to accept *_src_operand instead of *_operand where - pc-relative operands can fit. For example, a pc-relative operand - can be used as a memory source operand for addsi3, but not as a - memory destination. - * hp320.h linux.h m68kv4.h (LEGITIMATE_PIC_OPERAND_P) as in m68k.h. - -Fri Jun 18 09:11:07 1999 Nick Clifton - - * config/arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS): New Marco: USe - .thumb_set pseudo op to mark aliases of thumb functions. - -Wed Jun 16 18:19:13 1999 Nick Clifton - - * varasm.c (assemble_alias): Use ASM_OUTPUT_DEF_FROM_DECLS in - preference to ASM_OUTPUT_DEF, if it is defined. - - * tm.texi: Document new, optional target macro - ASM_OUTPUT_DEF_FROM_DECLS. - -Thu Jun 17 15:07 1999 Bruce Korb - - * fixincludes: ISCNTL patch - * fixinc/inclhack.def (ioctl_fix_ctrl): Fix the definition of [_]*ISCTRL(). - (dgux_int_varargs): new for DG/UX - * fixinc/{fixincl.x,inclhack.sh}: Regenerated. - -Thu Jun 17 21:34:24 1999 Jeff Law - - * invoke.texi (ia32 options): Fix typo. - -Thu Jun 17 21:34:24 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, update - reg note of NEXT->insn. - -Thu Jun 17 14:25:08 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (move_movables): Note issues with replacing REGs with - SUBREGs. - * mips.h (GO_IF_LEGITIMATE_ADDRESS): Handle SUBREGs properly. - -Thu Jun 17 13:28:30 1999 David O'Brien - - * i386/freebsd-elf.h (LINK_SPEC): Fix typo. - - * i386/freebsd-elf.h (FUNCTION_PROFILER): labels are not needed and - the reference to `mcount' was not correct for the ELF on FreeBSD. - -Thu Jun 17 17:22:07 1999 J"orn Rennecke - - * loop.c (strength_reduce): When doing biv->giv conversion, fix up - reg_biv_class. - - (recombine_givs): Set ix field after sorting. - -Thu Jun 17 02:54:30 1999 Jeffrey A Law (law@cygnus.com) - - * emit-rtl.c (operand_subword): Tighten checks for when it is safe - to safe to extract a subword out of a REG. - -Thu Jun 17 01:45:24 1999 J"orn Rennecke - - * sh.md (mulsi3): Don't add a no-op move at the end. - -Wed Jun 16 20:29:00 1999 J"orn Rennecke - - * cse.c (cse_insn): Don't put hard register source into tables for - the last insn of a libcall. - -Wed Jun 16 19:44:33 1999 J"orn Rennecke - - * loop.c (strength_reduce): Insert sets of derived givs at every - biv increment, even if it's the only one. - -Wed Jun 16 10:33:02 1999 Jason Merrill - - * dwarfout.c (add_incomplete_type): New fn. - (output_type): Call it. - (retry_incomplete_types): New fn. - (dwarfout_finish): Call it. - - From Eric Raskin : - (output_type): Output types for bases. - -Tue Jun 15 12:51:23 1999 Alexandre Oliva - - * mips.c (mips_output_conditional_branch): Add `break' - between `default' label and `close braces'. - -Tue Jun 15 01:55:20 1999 David O'Brien - - * i386/freebsd-elf.h (LINK_SPEC): clean up the linking library - specifications and make it realistic. - (LIB_SPEC): Likewise. - -Mon Jun 14 15:38:43 1999 Jim Wilson - - * config/mips/mips.c (mips_secondary_reload_class): Check for - (PLUS (SP) (REG)) and return appropriate register class. - * config/mips/mips.md (reload_insi): Delete predicate for operand 1. - Handle (PLUS (SP) (REG)). - (tablejump): In mips16 code, use emit_insn instead of emit_jump_insn. - (tablejump_mips161, tablejump_mips162): Use emit_jump_insn instead - of emit_insn for tablejump. - -Mon Jun 14 17:26:40 1999 David Edelsohn - - * rs6000.c (output_prolog): RS6000_CALL_GLUE must be - asm_fprintf format string by itself. - (output_function_profiler): Likewise. - -Mon Jun 14 12:57:38 1999 David Mosberger - - * combine.c (simplify_logical, case AND): Only call - simplify_and_const_int if the mode is no wider than HOST_WIDE_INT - or the constant is positive. - -Mon Jun 14 11:43:41 1999 Nick Clifton - - * configure.in: Fix typo in rs6000-ibm-aix4 case. - * configure: Regenerate. - -Mon Jun 14 03:55:40 1999 Jeffrey A Law (law@cygnus.com) - - * configure.in (rs6000-ibm-aix4.3*, powerpc-ibm-aix4.3*): Do not - require a sub-version #. - * configure: Rebuilt. - -1999-06-14 Robert Lipe (robertlipe@usa.net) - - * svr4.h (DWARF2_DEBUGGING_INFO): Check for redefinition. - -Mon Jun 14 10:30:52 BST 1999 Nathan Sidwell - - * c-typeck.c (process_init_element): Detect excess elements in - char array initializer. - -1999-06-14 Andreas Jaeger - - * gcc.texi: Mention gcc 2.96 instead of egcs 1.00. - -Sat Jun 12 22:29:48 EDT 1999 Jerry Quinn - - * invoke.texi (Option Summary): Add -fpermissive flag. - -Sat Jun 12 03:40:42 1999 Jeffrey A Law (law@cygnus.com) - - * sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Do nothing with operands - that require PIC code sequences. - -Wed Jun 9 16:29:01 1999 Nick Clifton - - * configure.in: Add new target: thumb-elf. - * configure: Regenerate. - * config/arm/t-thumb-elf: New file: Makefile fragment for - thumb-elf build. - * config/arm/telf.h: New file: Header file for thumb-elf - build. - -Fri Jun 11 03:17:51 1999 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (libgcc2): Pass MAYBE_USE_COLLECT2 as an argument. - * libgcc2.c (__CTOR_LIST, __DTOR_LIST); Do not provide - initializers is some circumstances. - - * fixinc/inclhack.def (endif_label): Add additional selector for - more bogus stuff after #endif statements. - * fixinc/inclhack.sh, fixinc/fixincl.x: Rebuilt. - -Thu Jun 10 20:44:36 1999 Mumit Khan - - * i386/cygwin.h (SET_ASM_OP): Define. - -Thu Jun 10 20:37:57 1999 Mumit Khan - - * reg-stack.c (stack_reg_life_analysis): Find all the RETURN insns. - -Thu Jun 10 19:23:00 1999 J"orn Rennecke - - * sh.h (TARGET_HARWARD, TARGET_HARVARD): Changed the former to the - latter. - - * sh.md (ic_invalidate_line_i): Remove second alternative. - -Thu Jun 10 06:55 1999 Bruce Korb - - *fixinc/inclhack.def(sun_auth_proto): We do not know how to - test for the presence of valid prototypes. Delete bypass expr. - (ioctl_fix_ctrl): Correct the selection expression. - (no_double_slash): Correct quoting rules - *fixinc/fixincl.x: regen - *fixinc/inclhack.sh: regen - -Thu Jun 10 15:08:15 1999 Nick Clifton - - * config/arm/arm.c (struct all_cores): Add ARM920 and ARM920t. - -Wed Jun 9 15:57:57 1999 Franz Sirl - - * rs6000.md (movsi_got_internal_mem): Delete. - * rs6000.h (CONDITIONAL_REGISTER_USAGE): Mark PIC_OFFSET_TABLE_REGNUM. - (GOT_TOC_REGNUM): Delete. - (PIC_OFFSET_TABLE_REGNUM): Define. - (FINALIZE_PIC): Disable. - * rs6000.c (rs6000_got_register): New code for fixed pic register. - (rs6000_replace_regno): Delete. - (rs6000_finalize_pic): Likewise. - (output_prolog): Handle PIC_OFFSET_TABLE_REGNUM. - -Wed Jun 9 19:44:26 1999 J"orn Rennecke - - * loop.c (loop_insn_first_p): Don't compare LUIDs when P - is a note; use <= for the compare; advance P while it is - a NOTE. - -Wed Jun 9 13:12:24 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/inclhack.def (no_double_slash): Fix quoting for test. - * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh; Rebuilt. - - * varasm.c (remove_from_pending_weak_list): Verify t->name - is non-NULL before passing it to strcmp. - -Wed Jun 9 06:50 1999 Bruce Korb - - *fixinc/inclhack.def(sun_auth_proto): bypass the patch if - the typed arguments are not part of a comment - (ioctl_fix_ctrl): Added a purpose comment - *fixinc/fixincl.x: regenerate - *fixinc/inclhack.sh: regenerate - -Wed Jun 9 22:57:02 1999 Michael Hayes - - * invoke.texi: Add C4x invocation docs. - -Wed Jun 9 22:34:38 1999 Michael Hayes - - * config/c4x/c4x.h (TARGET_EXPOSE_LDP, LEGITIMIZE_RELOAD_ADDRESS): - Define new macros. - * config/c4x/c4x.c (c4x_emit_move_sequence, src_operand): Use - TARGET_EXPOSE_LDP. - (c4x_legitimize_reload_address): New function. - * config/c4x/c4x.md: Update docs. - -Wed Jun 9 04:14:48 1999 Jeffrey A Law (law@cygnus.com) - - * fixincludes: Avoid removing '.'. - * fixinc/fixinc.svr4: Likewise. - * fixinc/fixinc.winnt: Likewise. - * fixinc/inclhack.tpl: Likewise. - * fixinc/fixincl.sh, fixinc/inclhack.sh: Rebuilt. - -1999-06-09 Kaveh R. Ghazi - - * fixinc/inclhack.def (sun_catmacro): Escape parens in the select - pattern. - * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuilt. - -Wed Jun 9 03:10:34 1999 Mumit Khan - - * c-pragma.c (handle_pragma_token): Handle `#pragma pack()' - correctly. - -Tue Jun 8 13:06:15 1999 Jim Wilson - - * configure.in (rs6000-ibm-aix4.[12]*): Change rx6000 to rs6000. - * configure: Regenerate. - -Tue Jun 8 05:47:48 1999 Richard Earnshaw (rearnsha@arm.com) - - * optabs.c (expand_cmplxdiv_wide): Use expand_abs to get the absolute - values. - -Mon Jun 7 22:30:37 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/inclhack.def (avoid_bool): Also catch - "typedef [unsigned] int bool". - * fixinc/inclhack.sh, fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. - - * m68k/x-hp3bsd44: Delete obsolete and incorrect file. - * configure.in (m68k-hp-bsd4.4): No longer use x-hp3bsd44. - * configure: Rebuilt. - -Mon Jun 7 22:05:03 1999 Mark Kettenis - - * config/i386/gnu.h: Include right after , - such that we can override its definitions if necessary. - (CPP_SPEC): New define. Support processor specific predefines via - %(cpp_cpu). - (CC1_SPEC): New define. Support processor specific compiler - options via %(cc1_cpu). - (STARTFILE_SPEC): New define. Use crt0.o instead of crt1.o for - -static. - -1999-06-07 Kaveh R. Ghazi - - * fixinc/inclhack.def (math_gcc_ifndefs): Insert whitespace - between sed's -e flag, and the open-quote following it. - * fixinc/fixincl.x, fixinc/fixincl.sh: Rebuilt. - -Mon Jun 7 20:34:20 1999 Robert Lipe - Jeffrey A Law (law@cygnus.com) - - * varasm.c (assemble_start_function): Remove the function - from the pending weak decls list when we define a function. - (assemble_variable): Similarly for variables. - (weak_finish): Ignore items on the list with a NULL name. - (remove_from_ending_weak_list); New function to "remove" an item - from the pending weak declarations list. - -Mon Jun 7 19:27:07 1999 Jerry Quinn - - * pa.md (fmpyfadd, fmpynfadd, fnegabs): New patterns. - -Mon Jun 7 14:07:39 1999 Dave Brolley - - * c-lex.c (GETC): Redefine to call getch. - (UNGETC): Redefine to call put_back. - (putback_buffer): New structure type. - (putback): New static structure. - (getch): New function. - (put_back): New function. - (yylex): Replace unused bytes from bad multibyte character. - -Mon Jun 7 13:33:39 1999 Dave Brolley - - * cpplib.c (do_define): Cast `alloca' return value. - (do_include, do_undef, do_pragma): Likewise. - * cpphash.c (dump_definition): Cast `xstrdup' and `alloca' return - values. - * cppfiles.c (initialize_input_buffer): Cast `xmalloc' return values. - * gcc/cppspec.c (lang_specific_driver): Cast xmalloc return value. - -Sun Jun 6 11:58:34 1999 Jakub Jelinek - - * sparc.md (abstf2): This should be an expand. - (split after abstf2_notv9): Fix mode. - (abstf2_hq_v9): New pattern. - (abstf2_v9): Only use when no hard quad. - (absdf2_v9): Fix if target is not the same as source. - (ashrsi3_extend, ashrsi3_extend2, lshrsi3_extend, lshrsi3_extend2): - Add correct output constraints. - -Sat Jun 5 17:04:16 1999 Craig Burley - - From Dave Love to egcs-patches on 20 May 1999 17:38:38 +0100: - * invoke.texi: Clarify text vis-a-vis Intel CPUs. - -Sat Jun 5 12:11:24 1999 Mark Mitchell - - * mips.h (mips_output_conditional_branch): New function. - (mips_adjust_insn_length): Likewise. - (ASSEMBLER_SCRATCH_REGNUM): New macro. - (ADJUST_INSN_LENGTH): Likewise. - * mips.c (print_operand): Add `F' and `W' for floating-point - comparison opcodes. - (machine_dependent_reorg): Adjust MIPS16 code; instruction-lengths - are now in bytes. - (mips_adjust_insn_length): New function. - (mips_output_conditional_branch): New function. - * mips.md (length): Adjust attribute definition to handle - conditional branches. Change lengths to bytes, rather than - instructions throughout. Remove length attribute from - instructions whose length is four bytes, and rely on the default - instead. - (dslot): Fix typo in comment. - Reword conditional branch patterns to use - mips_output_conditional_branch. - -Fri Jun 4 13:30:27 1999 Rainer Orth - - * alpha/osf.h (CPP_SUBTARGET_SPEC): Handle -threads. - (LIB_SPEC): Likewise. - Link with -lprof1_r for -g/-pg. - -1999-06-04 Andreas Schwab - - * loop.c (check_dbra_loop): Fix change of Jan 19. - -Fri Jun 4 00:12:40 1999 Marc Espie - - * freebsd-elf.h (SWITCH_TAKES_ARG): Redefine, not define. - (STARTFILE_SPEC): Define, override the svr4.h version. - (ENDFILE_SPEC): Likewise. - -Thu Jun 3 23:58:55 1999 Jeffrey A Law (law@cygnus.com) - - * fixinc/inclhack.def (limits_ifndefs): Also apply to sys/limits.h - * fixinc/fixincl.x: Regenerated. - * fixinc/inclhack.sh: Regenerated. - -Fri Jun 4 05:42:23 1999 J"orn Rennecke - - * sh.c (barrier_align): Don't return early for normal branch/barrier - when optimizing for SH2. - -Thu Jun 3 22:27:50 1999 Robert Lipe - - * i386/udk.h (LINK_SPEC): Correct linker search path for - system libraries. - -Fri Jun 4 03:20:40 1999 J"orn Rennecke - - * sh.c (fixup_addr_diff_vecs): Emit braf reference label. - (braf_label_ref_operand): Delete. - * sh.h (PREDICATE_CODES): Remove braf_label_ref_operand. - * sh.md (casesi_jump_2): Operand1 is now the inside of a - label_ref, and has no predicate. - The pattern has a predicate to guard against invalid substitutions. - (dummy_jump): Delete. - (casesi): Update use of casesi_jump_2. - -Thu Jun 3 07:48 1999 Bruce Korb - - *fixinc/inclhack.def(Io_Def_Quotes): corrected sed expression - *fixinc/fixincl.x: regenerate - *fixinc/inclhack.sh: regenerate - -Thu Jun 3 02:15:07 1999 Jason Merrill - - * dwarf2out.c (add_incomplete_type): New fn. - (gen_struct_or_union_type_die): Call it. - (retry_incomplete_types): New fn. - (dwarf2out_finish): Call it. - -Thu Jun 3 01:19:03 1999 Jeffrey A Law (law@cygnus.com) - - * gcse.c (insert_insn_end_bb): Correct placement of insns when the - current block starts with a CODE_LABEL and ends with a CALL and - we can not find all the argument setup instructions for the CALL. - -Wed Jun 2 15:44:15 1999 Mark Mitchell - - Revert this change: - * fold-const.c (fold): STRIP_NOPS when deciding whether or not - something is a candidate for optimize_bit_field_compare. - -Wed Jun 2 21:53:05 1999 J"orn Rennecke - - * sh.h (CONST_OK_FOR_I, CONST_OK_FOR_L): Cast VALUE to HOST_WIDE_INT. - -Wed Jun 2 12:25:55 1999 Richard Henderson - - * alpha.c (override_options): Thinko in last patch. - - * alpha/osf.h (CPP_SUBTARGET_SPEC): Define. - (LIB_SPEC): Recognize -pthread. - -Wed Jun 2 08:42:55 1999 Nick Clifton - - * config/arm/tcoff.h (USER_LABEL_PREFIX): Synchronize with - definition in config/arm/coff.h - * config/arm/coff.h: Add comment about USER_LABEL_PREFIX. - -Wed Jun 2 07:07 1999 Bruce Korb - - * fixinc/fixincl.c(global def): Add FD_SHELL_SCRIPT to mark - fixes that need "file=xxx\n" prepended before invocation - (start_fixer - new): starting the fixer process is complex enough - to warrent its own routine. It prepends the "file=xxx\n" stuff. - (process): uses the new routine; omit usage of putenv() - * fixinc/fixincl.tpl: mark shell scripts with FD_SHELL_SCRIPT - * fixinc/fixincl.x: regenerate - -Wed Jun 2 02:29:07 1999 Jeffrey A Law (law@cygnus.com) - - * README, configure.in, gcc.1, gcc.texi: Update name (egcs -> gcc) - and version #s (1.1 -> 2.96) as needed. - * README.g77: Kill way out of date file in the toplevel directory. - -Wed Jun 2 00:52:34 1999 David O'Brien - - * configure.in (i[34567]86-*-freebsdelf): Don't include linux.h, - i386/freebsd-elf.h no longer requires it. Instead include svr4.h. - * configure: Rebuilt. - * i386/freebsd-elf.h (DEFAULT_VTABLE_THUNKS): Define. - (ASM_COMMENT_START, ASM_APP_ON, ASM_APP_OFF, SET_ASM_OP): Likewise. - (PREFERRED_DEBUGGING_TYPE, WCHAR_UNSIGNED): Likewise. - (SWITCH_TAKES_ARG): Likewise. - * i386/freebsd.h: Remove FREEBSD_NATIVE support. - * config/t-freebsd: Moved from config/i386/ so it can used for all - FreeBSD targets. - -Mon May 31 02:22:55 1999 Philippe De Muyter - - * m68k/x-mot3300 (XCFLAGS): Fixed to match stb.o, not f/stb.o. - -Wed Jun 2 00:08:34 1999 Robert Lipe - - * configure.in (i[34567]86-*-udk*): Install headers with cpio. - * configure: Rebuilt. - -Tue Jun 1 19:06:22 1999 David Edelsohn - - * rs6000/aix41.h (RS6000_CALL_GLUE): Define. - * rs6000/aix43.h (RS6000_CALL_GLUE): Likewise. - * rs6000/rs6000.c (rs6000_file_start): Use putc. - (rs6000_output_load_toc_table): Same. - (output_prolog, output_mi_thunk): Same. - * rs6000/rs6000.h (SELECT_SECTION): Formatting. - (ASM_GLOBALIZE_LABEL): Use putc. - -Mon May 31 15:23:23 1999 Richard Henderson - - * alpha.md (reload_*_help): New patterns and splitters. - (reload_*): Use them. - (mov[qh]i): Likewise. - -Mon May 31 11:48:07 1999 Mark Mitchell - - * cccp.c (handle_directive): Handle backslash-newlines in quoted - strings correctly. - -Mon May 31 09:36:11 1999 Cort Dougan - - * rs6000/linux.h (LINK_SPEC): Use emulation elf32ppclinux. - -Mon May 31 11:40:20 EDT 1999 John Wehle (john@feith.com) - - * flow.c (mark_regs_live_at_end, insn_dead_p, - mark_set_1, mark_used_regs): Only give FRAME_POINTER_REGNUM - and HARD_FRAME_POINTER_REGNUM special treatment if reload - hasn't run or the frame pointer is needed. - * haifa-sched.c (attach_deaths): Likewise. - * sched.c (attach_deaths): Likewise. - -Mon May 31 00:46:17 1999 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize_1): Only set CAN_REACH_END if - calculate_can_reach_end returns nonzero. - - * configure.in (native gas tests): Search for an assembler in the - same manner that the installed compiler will. - * configure: Rebuilt. - * tm.texi (MD_EXEC_PREFIX): Note need to update configure.in too. - - * alias.c (find_base_term): Improve handling of addresses - constructed from binary operations. - -Sun May 30 14:29:17 1999 Eric Raskin (ehr@listworks.com) - - * dgux.h (STARTFILE_SPEC): Fix incorrectly matched curly-braces. - -Sun May 30 14:19:13 1999 Jeffrey A Law (law@cygnus.com) - - * function.h (cleanup_label, frame_offset): Declare. - (tail_recursion_label, tail_recursion_reentry): Likewise. - (arg_pointer_save_area, rtl_expr_chain): Likewise. - * stmt.c (cleanup_label, frame_offset): Delete extern declarations. - (tail_recursion_label, tail_recursion_reentry): Likewise. - (arg_pointer_save_area, rtl_expr_chain): Likewise. - -Sat May 29 19:08:10 1999 Philip Blundell - - * config/arm/aout.h (ASM_OUTPUT_ALIGN): Only define if not already - defined. - * config/arm/elf.h (ASM_OUTPUT_ALIGN): Define. - (MAX_OFILE_ALIGNMENT): Define. - -Fri May 28 21:40 1999 Robert Lipe - - * fixincl.c: Replace local include scheme with #includes of - gansidecl.h and system.h. - * procopen.c: Likewise. - * server.c: Likewise. - -Fri May 28 03:47:03 1999 Eric Raskin (ehr@listworks.com) - - * i386/t-dgux (EXTRA_PARTS): Add crti.o - (crti.o): Add build rule and dependencies. - * fixinc/fixinc.dgux: Use modified _int_varargs.h - -Fri May 28 03:41:02 1999 Franz Sirl - - * rs6000/sysv4.h (CC1_SPEC): Add support for -profile - (LIB_LINUX_SPEC): Likewise. - (LIB_LINUX_SPEC): Add support for -pthread - (CPP_OS_LINUX_SPEC): Likewise. - (CPP_SYSV_SPEC): Avoid redefinitions if both -fpic and -fPIC are - specified. - -Thu May 27 13:04:52 1999 H.J. Lu (hjl@gnu.org) - - * i386.c (output_fp_cc0_set): Don't check the JUMP_INSN code for - conditional move. - (notice_update_cc, output_float_compare): Enable TARGET_CMOVE support. - (output_float_compare, output_fp_cc0_set): Fix the FLOAT comparison - for IEEE math and CC_FCOMI. - (put_jump_code): No IEEE if CC_FCOMI is set. - -1999-05-27 Andreas Schwab - - * fold-const.c (fold_truthop): Make the field reference unsigned - when converting a single bit compare. - -Thu May 27 02:40:48 1999 J"orn Rennecke - - * loop.c (strength_reduce): Don't do biv->giv conversion on constants. - -Thu May 27 02:09:27 1999 Jeffrey A Law (law@cygnus.com) - - * varasm.c (STRIP_NAME_ENCODING): Remove default definition. - * output.h (STRIP_NAME_ENCODING): Strip '*' like the old varasm - version did. - - * reload.c (push_reload): Do not call remove_address_replacements - when presented with identical optional reloads. - -Wed May 26 14:18:05 1999 Richard Henderson - - * alpha.h (MASK_FIX, TARGET_FIX): New. - (MASK_*): Reorganize constants. - (CPP_AM_FIX_SPEC): New. - (TARGET_SWITCHES): Add FIX. - (EXTRA_SPECS): Likewise. - (CPP_CPU_EV6_SPEC): Use FIX, not CIX. - (SECONDARY_MEMORY_NEEDED): Likewise. - (REGISTER_MOVE_COST): Likewise. - * alpha.c (override_options): Add FIX support. Always use - ALPHA_TP_PROG for ev6. - * alpha.md (sqrt and mov[sd]i patterns): Use FIX, not CIX. - * alpha/elf.h (ASM_FILE_START): Look at FIX too. - * configure.in (target_cpu_default2) [ev6]: Use FIX, not CIX. - -Wed May 26 09:53:05 1999 Mark Mitchell - - * fold-const.c (fold): STRIP_NOPS when deciding whether or not - something is a candidate for optimize_bit_field_compare. - -Wed May 26 09:40:02 1999 Mark Mitchell - - * gcc.texi (Passes): Document branch-shortening. - * invoke.texi (Debugging Options): Document the fact that `-dp' - outputs length information for instructions. - -Wed May 26 08:49:31 1999 Nick Clifton - - * flow.c: Revert previous delta. - -Wed May 26 06:05:10 1999 Nick Clifton - - * flow.c (insn_dead_p): Check against frame_pointer_rtx not - FRAME_POINTER_REGNUM. - (mark_set_1): Ditto. - (mark_used_regs): Ditto. - -Wed May 26 02:19:31 1999 Philip Blundell - - * arm.h (NEED_PLT_GOT): Fix mistake in last change. - (GOT_PCREL): New macro. Define to 1 if not already defined. - * arm/elf.h (GOT_PCREL): Define to 0. - * arm.c (arm_finalize_pic): Take into account the setting of - GOT_PCREL. - -Tue May 25 14:06:06 1999 Jeffrey A Law (law@cygnus.com) - - * output.h (STRIP_NAME_ENCODING): Provide default definition. - * dwarf2out.c (ASM_NAME_TO_STRING): Use STRIP_NAME_ENCODING. - - * flow.c (mark_set_1): Do not record BLKmode stores as dead - store elimination candidates. - -Tue May 25 08:55:57 1999 Gavin Romig-Koch - - * config/mips/mips.h (ASM_OUTPUT_DOUBLE_INT) : Use 'dword' if - TARGET_GAS. - -Mon May 24 20:30:08 1999 Jim Wilson - - * configure.in (rs6000-ibm-aix4.[12]*): Delete use of aix41-gld.h. - Add use of x-aix41-gld. - -Mon May 24 16:44:09 1999 Jakub Jelinek - - * sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Define. - (ASM_OUTPUT_DESTRUCTOR): Define. - -Mon May 24 14:35:24 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Do not clear NOT_EVERY_ITERATION at the - last CODE_LABEL in a loop if we have previously passed a jump - to the top of the loop. - -Mon May 24 07:56:29 1999 Nick Clifton - - * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): Fix blunder made when - applying Philip's patch. - -Mon May 24 01:02:12 1999 Mark Mitchell - - * stmt.c (expand_end_bindings): Ignore any elements of VARS that - are not VAR_DECLs. - -Sun May 23 20:31:16 1999 Jeffrey A Law (law@cygnus.com) - - * loop.c (strength_reduce): Grow reg_single_usage as needed. - -Sun May 23 10:13:20 1999 David O'Brien - - * i386/freebsd-elf.h (LINK_SPEC): Change -static to -Bstatic. - Also remove a useless comment. - -Sun May 23 10:05:23 1999 Jerry Quinn - - * pa.md (negdf2,negsf2): Use fneg instead of fsub on pa 2.0. - -Sat May 22 21:02:06 1999 David Edelsohn - - * collect2.c (main): Only generate import or export file and add - to link arguments if non-empty. Use xmalloc not alloca. - (write_{export,import}_file): Delete. - (write_aix_file): New function. - (locatelib): Use xmalloc not malloc. - (GCC_OK_SYMBOL): Do not check type if aix64. - -Sat May 22 09:35:51 1999 Philip Blundell - - Based on patch by Scott Bambrough and Pat Beirne: - * config/arm/arm.c (making_const_table): New variable. - * config/arm/arm.h (making_const_table): Declare. - (OUTPUT_INT_ADDR_CONST): Mark symbols as position independent if - appropriate. - * config/arm/arm.md (consttable_4, consttable_8, consttable_end): - Keep track of when we are building the constant table. - -Sat May 22 09:34:22 1999 Philip Blundell - - * config/arm/arm.c (arm_override_options): Fix erroneous warning - message. - -Sat May 22 09:06:33 1999 Nick Clifton - - * config/arm/arm.h (NEED_PLT_GOT): Only define if not already - defined. - -Sat May 22 07:17:05 1999 Nick Clifton - - * tm.texi (FUNCTION_ARG): Correct description of a stack element - in a PARALLEL. - -Sat May 22 01:27:49 1999 Mark Mitchell - - * expr.h (lang_expand_constant): Guard with #ifdef TREE_CODE. - -Fri May 21 21:19:02 1999 Franz Sirl - - * rs6000.c (output_mi_thunk): Enable full support again. - -Fri May 21 20:09:52 1999 J"orn Rennecke - - * sh.h (BRANCH_COST): Define. - -Thu May 20 10:00:42 1999 Stephen L Moshier - - * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include. - -Thu May 20 09:58:57 1999 Jan Hubicka - - * function.c (assign_stack_local): Align stack slot properly. - (assign_outer_stack_local): Likewise. - -Thu May 20 10:38:43 1999 Mark Mitchell - - * expr.h (lang_expand_constant): Declare. - * toplev.c (lang_expand_constant): Define it. - * varasm.c (output_constant): Use it. - -Thu May 20 11:28:53 1999 Kaveh R. Ghazi - - * optabs.c (expand_cmplxdiv_straight, expand_cmplxdiv_wide): - Change function definitions to K&R style. - -Thu May 20 08:16:39 1999 Bruce Korb - - * fixinc/fixincl.c: We must not ignore SIGCLD now. - -Thu May 20 07:06:39 1999 Alexandre Oliva - - * fixinc/Makefile.in(gnu-regex.o): add $(INCLUDES) to compile options - * fixinc/fixincl.c(wait_for_pid): K&R-ify arguments - (several places): omit static initialization - (process): use single fd, since only the read fd is used - * fixinc/gnu-regex.c: define 'const' away, if not supported - * fixinc/procopen.c(several places): omit static initialization - * fixinc/server.c: define 'volitile' away, if not supported - -1999-05-20 Andreas Schwab - - * config/dbxcoff.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Use - asm_fprintf and %L to generate the label name. - * config/dbxelf.h (DBX_OUTPUT_MAIN_SOURCE_FILE_END): Likewise. - (ASM_OUTPUT_SOURCE_LINE): Correct generation of internal labels. - -Thu May 20 01:40:55 1999 Jeffrey A Law (law@cygnus.com) - - * jump.c (can_reverse_comparison_p): Do not abort if the comparison - insn for a conditional jump can not be found. - -Wed May 19 23:58:58 1999 Jeffrey A Law (law@cygnus.com) - - * mips.h (ENCODE_SECTION_INFO): Do not perform GP optimizations - on variables in specific sections other than .sbss and .sdata. - -Wed May 19 03:56:56 1999 Mark Mitchell - - * stmt.c (expand_return): Call start_cleanup_deferral and - end_cleanup_deferral around conditional code. - -Wed May 19 08:40:08 1999 Bruce Korb - - * fixinc/fixincl.tpl: Avoid depending on ANSI C features for - filename lists. Utilizes new "krstr" AutoGen function. - * fixinc/fixincl.x: Rebuilt. - -Wed May 19 02:47:11 1999 Jan Hubicka (hubicka@freesoft.cz) - - * i386.c (output_float_compare): Avoid GNU-C extensions. - -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. diff --git a/gcc/ChangeLog.3 b/gcc/ChangeLog.3 deleted file mode 100644 index 52df96025fb..00000000000 --- a/gcc/ChangeLog.3 +++ /dev/null @@ -1,16860 +0,0 @@ -2000-06-30 Mark Mitchell - - * Makefile.in (c-common.o): Don't depend on c-tree.h or c-lex.h. - * c-common.c (ridpointers): Declare. - * c-common.h (enum rid): Declare. - (NORID): Likewise. - (ridpointers): Likewise. - * c-lex.c (ridpointers): Don't declare. - (init_lex): Initialize ridpointers. - * c-lex.h (enum rid): Don't declare. - (NORID): Likewise. - (RID_FIRST_MODIFIER): Likewise. - (ridpointers): Likewise. - -2000-06-30 J. David Anglin - - * pa/som.h (ASM_WEAKEN_LABEL): Export weak data symbols so that they - have global scope. - -2000-06-30 Martin von Loewis - - * invoke.texi (-Wreturn-type): In C++, a missing return type is - always an error. - -2000-06-30 Catherine Moore - - * c-common.c (decl_attributes): Differentiate between - types and type decls for alignment. - -2000-06-30 Nathan Sidwell - - * cpp.texi: Document #pragma GCC dependency - * cppfiles.c (open_include_file): Set date to unknown. - (_cpp_compare_file_date): New function. - (read_include_file): Set file date. - * cpphash.h (struct include_file): Add date member. - (_cpp_compare_file_date): Prototype. - * cpplib.c (parse_include): Add trail parameter. Adjust. - (do_include): Adjust parse_include call. - (do_import): Likewise. - (do_include_next): Likewise. - (gcc_pragmas): Add dependency pragma. - (do_pragma_dependency): New pragma. - -2000-06-29 Jason Merrill - - * dwarf2out.c (output_loc_operands): Don't abort on codes that have - no operands. - -2000-06-29 Jim Wilson - - * config/ia64/ia64.h (PREFERRED_RELOAD_CLASS): Return NO_REGS for - a volatile mem and FR_REGS. - -2000-06-29 Mark Mitchell - - * c-common.c: Include c-common.h, not c-lex.h or c-tree.h. - * c-common.h (flag_const_strings): Declare. - (warn_format): Likewise. - (flag_traditional): Likewise. - (flag_isoc99): Likewise. - (warn_parentheses): Likewise. - (warn_conversion): Likewise. - (C_TYPE_OBJECT_P): Likewise. - (C_TYPE_INCOMPLETE_P): Likewise. - (C_TYPE_FUNCTION_P): Likewise. - (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. - (C_EXP_ORIGINAL_CODE): Likewise. - (build_unary_op): Likewise. - (build_binary_op): Likewise. - (lvalue_p): Likewise. - (default_conversion): Likewise. - (common_type): Likewise. - * c-tree.h (C_TYPE_OBJECT_P): Remove. - (C_TYPE_INCOMPLETE_P): Likewise. - (C_TYPE_FUNCTION_P): Likewise. - (C_TYPE_OBJECT_OR_INCOMPLETE_P): Likewise. - (C_EXP_ORIGINAL_CODE): Likewise. - (common_type): Likewise. - (default_conversion): Likewise. - (build_binary_op): Likewise. - (build_unary_op): Likewise. - (lvalue_p): Likewise. - (flag_const_strings): Likewise. - (warn_format): Likewise. - (warn_conversion): Likewise. - (flag_traditional): Likewise. - (flag_isoc99): Likewise. - (warn_parentheses): Likewise. - -2000-06-29 James E. Wilson - - * config/ia64/linux.h (LINK_SPEC): Change so.1 to so.2. - - * config/ia64/ia64.h (MODES_TIEABLE_P): Only tie if mode class is the - same. Only tie XFmode with XFmode. - -2000-06-29 Zack Weinberg - - * c-decl.c, timevar.c, tlink.c: Include intl.h. - * Makefile.in: Update deps. - -2000-06-29 Andrew Haley - - * toplev.c (main): On an IA-64, make flag_unwind_tables defauit - to true. - -2000-06-29 Andrew Haley - - * config/ia64/linux.h (JMP_BUF_SIZE): Size is in Pmode units, not - bytes: remove the multiply by 8. - -2000-06-29 Philipp Thomas - - * rtl.c : Revert NLS changes. - * gcc.c : Fix bug in display_help introced by my last changes. - -Wed Jun 28 21:09:33 2000 Raja R Harinath - - * dbxout.c (dbxout_symbol, case RESULT_DECL, VAR_DECL): Use - DECL_CONTEXT, not DECL_FIELD_CONTEXT. - -2000-06-29 Michael Hayes - - * flow.c (flow_depth_first_order_compute): Fix algorithm. - -2000-06-28 Philipp Thomas - - * c-decl.c : Mark strings for translation. - (parmlist_tags_warning): Use distinct messages instead - of conditional expressions. - * diagnostic.c (v_message_with_decl): Mark string for translation. - * gcc.c: Mark messages for translation. - (display_help): Combine messages into one string where necessary. - * mips-tfile: Add intl.h. Mark messages for translation. - * rtl.c (fatal_with_file_and_line): Modify function for NLS. Mark - messages for translation. - * timevar.c: Mark messages for translation. - * tlink.c: Likewise. - * toplev.c: Likewise. - -Wed Jun 28 15:39:26 2000 Donn Terry (donnte@microsoft.com) - - * i386-interix.h (STRIP_NAME_ENCODING): Declare _new_name properly. - - * alpha/alpha-interix.h: Delete redundant -Asystem(interix), - use -isystem instead of -idirafter. - * i386/i386-interix.h: Likewise. - -2000-06-28 Jason Merrill - - * dwarf2out.c (output_loc_operands): Don't support >1 byte output - unless DWARF2_DEBUGGING_INFO is defined. - (ASM_OUTPUT_DWARF_*): Wrap normal output defs with #ifndefs. - -2000-06-28 Richard Henderson - - * config/alpha/alpha.c (summarize_insn): Ignore SCRATCH. - -2000-06-28 Jakub Jelinek - - * cpplex.c (output_line_command): Output correct #line if a header - is including itself and is not protected against multiple inclusion. - -2000-06-28 Zack Weinberg - - * cppfiles.c (open_include_file): If open(2) returns EMFILE or - ENFILE, close all cached file descriptors and try again. - (_cpp_execute_include): Keep a count of the number of times - each header is included. - (close_cached_fd): New function. - * cpphash.h (struct include_file): Rename before to - include_count; all users updated. Make include_count and sysp - unsigned short. - * cppinit.c (cpp_finish): If -H, report headers that could use - reinclude guards. - (report_missing_guard): New function. - -Wed Jun 28 14:46:58 MET DST 2000 Jan Hubicka - - * i386.md (prologue_set_got): Set length_immediate field. - (testqi_ccno_1): Add missing '@' character. - -2000-06-27 Jason Merrill - - * dwarf2out.c (expand_builtin_init_dwarf_reg_sizes): Use - DWARF_FRAME_REGNUM. - -2000-06-27 Andrew Macleod - - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA2): Provide default when no - unsigned macros available. - -2000-06-27 Richard Henderson - - * config/ia64/ia64.c (emit_insn_group_barriers): Special case - epilogue_deallocate_stack. - - * config/ia64/ia64.c (ia64_print_operand) [case D]: Emit - completers for UNORDERED and ORDERED as well. - * config/ia64/ia64.md (bunordered, bordered): New. - (sunordered, sordered): New. - -Tue Jun 27 12:14:12 MET DST 2000 Jan Hubicka - - * genattrtab.c (write_attr_value): Do not abort for CONST_INT operands. - * i386.c (ix86_attr_length_default): Kill. - (ix86_attr_length_immediate_default, ix86_attr_length_address_default): - New. - * i386-protos.h (ix86_attr_length_default): Kill - (ix86_attr_length_immediate_default, ix86_attr_length_address_default): - Add prototype - * i386.md (attribute type): Add "test". - (attribute length_prefix): Kill. - (attribute length_opcode): Kill. - (attribute i387, mode, length_immediate, length_address, prefix_data16, - prefix_rep, prefix_0f, modrm): New. - (attribute length): Compute using the new attributes. - (attribute pent_prefix): New. - (attribute pent_pair): Compute using pent_prefix. - (all insn patterns): Set mode,modrm and immediate_length attributes where - needed. - (cmpsi patterns): Compute sizes properly for test instruction. - (movsi, movhi patterns): Compute sizes properly for eax shortcuts. - (movstricthi_xor, movstrictqi_xor): New patterns. - (andsi/andhi): Use splitters to generate xor instructions. - (xorqi_ext_1): New pattern. - (movstricthi->movstricthi_xor peep2): New. - -Tue Jun 27 12:03:03 MET DST 2000 Jan Hubicka - - * i386.md (addqi_low_1): Remove. - -2000-06-27 Philipp Thomas - - * 1750a.h: Mark help strings for options/switches for translation. - * a29k.h: Likewise. - * alpha.h: Likewise. - * arm.h: Likewise. - * pe.h: Likewise. - * riscix.h: Likewise. - * c4x.h: Likewise. - * clipper.h: Likewise. - * convex.h: Likewise. - * elxsi.h: Likewise. - * fr30.h: Likewise. - * fx80.h: Likewise. - * h8300.h: Likewise. - * i370.h: Likewise. - * cygwin.h: Likewise. - * dgux.h: Likewise. - * djgpp.h: Likewise. - * i386.h: Likewise. - * osf1elf.h: Likewise. - * osfrose.h: Likewise. - * sco5.h: Likewise. - * win32.h: Likewise. - * i860.h: Likewise. - * paragon.h: Likewise. - * i960.h: Likewise. - * ia64.h: Likewise. - * m32r.h: Likewise. - * mcore.h: Likewise. - * mips.h: Likewise. - * mn10300.h: Likewise. - * ns32k.h: Likewise. - * pdp11.h: Likewise. - * pj.h: Likewise. - * aix.h: Likewise. - * aix41.h: Likewise. - * aix43.h: Likewise. - * beos.h: Likewise. - * rs6000.h: Likewise. - * sysv4.h: Likewise. - * linux.h: Likewise. - * linux64.h: Likewise. - * sp64-elf.h: Likewise. - * sparc.h: Likewise. - * splet.h: Likewise. - * v850.h: Likewise. - * convex.h (TARGET_SWITCHES): Provide descriptions and mark them - for translation. - * sp86x-aout.h: Remove bogus first definition of SUBTARGET_SWITCHES. - Properly document option and mark for translation. - * sp86x-elf.h: Likewise. - -2000-06-27 Bernd Schmidt - - Add MMX and SSE registers to i386 machine description. - * i386-protos.h (ix86_constant_alignment, ix86_data_alignment, - ix86_local_alignment): Declare. - - * i386.h (TARGET_MMX, TARGET_SSE): New. - (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS, - REG_ALLOC_ORDER, HARD_REGNO_NREGS, HARD_REGNO_MODE_OK, - REG_CLASS_NAMES, REG_CLASS_CONTENTS,REG_CLASS_FROM_LETTER, - enum reg_class, HI_REGISTER_NAMES): Added MMX/SSE registers. - (FIRST_SSE_REG, LAST_SSE_REG, SSE_REGNO_P): New. - (FIRST_MMX_REG, LAST_MMX_REG, MMX_REGNO_P, MMX_REG_P): New macros. - (RETURN_IN_MEMORY): Handle MMX/SSE. - (REG_PARM_STACK_SPACE): Added so the first three TImode parameters - also get stack space. - (MUST_PASS_IN_STACK): Added TImode to the default definition. - (CUMULATIVE_ARGS): Added sse_nregs, sse_regno and sse_words. - (MMX_REGISTER_NAMES): New. - (ALIGN_MODE_128): New macro. - (CONSTANT_ALIGNMENT): Code moved out-of-line; just call the function. - (DATA_ALIGNMENT): Likewise. - (LOCAL_ALIGNMENT): Likewise. - (CONDITIONAL_REGISTER_USAGE): Make MMX/SSE regs fixed if not - TARGET_MMX/TARGET_SSE. - (VALID_SSE_REG_MODE, VALID_MMX_REG_MODE): New macros. - (REG_CLASS_FROM_LETTER): 'y' for MMX regs. - (SECONDARY_MEMORY_NEEDED): Be conservative about copying between - SSE/MMX regs and something else. - (CLASS_MAX_NREGS): 1 for SSE and MMX regs. - (REGISTER_MOVE_COST): 10 if trying to move between MMX and SSE regs, - 3 if moving between MMX regs and something else. - - * i386.c (reg_class): Add SSE_REGS, MMX_REGS. - (regclass_map): Add MMX/SSE registers. - (print_operand): Add code to print XMMWORD as appropriate. - (ix86_split_movdi): Abort for MMX regs. - (init_cumulative_args): Also allow SSE_REGS - (function_arg_advance, function_arg): Likewise - (print_reg): Support 'm'. Add case for TImode. - (override_options): TARGET_SSE implies TARGET_MMX. - (ix86_constant_alignment, ix86_data_alignment, ix86_local_alignment): - New functions. - - * config/i386/unix.h (VALUE_REGNO): VECTOR_MODE values go to - FIRST_SSE_REG. - * config/i386/ptx4-i.h (RETURN_IN_MEMORY): Return MMX values in - memory. - * config/i386/sysv4.h (RETURN_IN_MEMORY): Likewise. - * config/i386/i386elf.h (RETURN_IN_MEMORY): Likewise. - -2000-06-26 Geoff Keating - - * ssa.c (struct rename_set_data): Change the name of field - 'set_dest' to 'old_reg'. Add comments. - (struct rename_context): Change the name of 'set_data' to - 'new_renames'. Add new field 'done_renames'. - (create_delayed_rename): New function. - (apply_delayed_renames): New function. - (rename_insn_1): Use the new functions. Handle CLOBBERS. Handle - SUBREGs and similar by emitting a move. - (new_registers_for_updates): Delete, functionality moved to - apply_delayed_renames. - (rename_block): Handle moves emitted by rename_insn_1 by putting - them into a SEQUENCE with the original insn. Add sanity checks - and comments. - (rename_equivalent_regs_in_insn): Don't handle SUBREGs specially. - (rename_equivalent_regs): Expand SEQUENCEs out to individual insns. - -2000-06-26 Andrew Macleod - Jason Merrill - - * dwarf2.h (enum dwarf_call_frame_info): Add - DW_CFA_def_cfa_expression. - * dwarf2out.c (union dw_cfi_oprnd_struct): Add a pointer to a - dw_loc_descr_struct entry. - (struct cfa_loc): New structure to track a CFA location. - (lookup_cfa): Take a cfa_loc parameter instead of a reg and an offset. - (lookup_cfa_1): Take a cfa_loc parameter instead of a reg and an - offset, plus handle DW_CFA_def_cfa_expression. - (def_cfa_1): Use to be dwarf2out_def_cfa, only now it uses a - cfa_loc record. - (dwarf2out_def_cfa): Entry point maintained for compatibility. - (dwarf_cfi_name): Add DW_CFA_def_cfa_expression. - (cfa_reg, cfa_offset): Replace with cfa_loc record 'cfa'. - (cfa_store_reg, cfa_store_offset): Replace with cfa_loc 'cfa_store'. - (initial_return_save, dwarf2out_stack_adjust): Use cfa.reg, not - cfa_reg. - (dwarf2out_frame_debug_expr): Use new cfa_loc records. Recognize rtl - sequences for the new DW_CFA_def_cfa_expression record. - (dwarf2out_frame_debug): Use new variables/fields.A - (output_cfi): Handle DW_CFA_def_cfa_expression. - (output_cfa_loc): New function to generate a CFI record for - DW_CFA_def_cfa_expression. - (get_cfa_from_loc_descr): New function to get a cfa_loc record from - a dw_loc_descr sequeunce. - (build_loc_descr): Build a dw_loc_descr from a cfa_loc record. - (dwarf_stack_op_name, new_loc_descr, add_loc_descr, size_of_loc_descr, - size_of_locs, output_loc_operands, output_loc_sequence): Move into - unwind info section. - * frame.h (frame_state): Add base_offset and indirect fields. - * frame-dwarf2.c (decode_stack_op): New function to interpret a - dw_loc_descr operation. - (execute_cfa_insn): Add support for DW_CFA_def_cfa_expression. - (struct frame_state): Add base offset and indirect fields. - * libgcc2.c (next_stack_level): Support indirect loading for CFA. - -2000-06-26 Joseph S. Myers - - * c-decl.c (grokdeclarator): Don't warn about `long long' in C99. - Make warnings about implicit int be pedwarns in C99. Don't warn - about duplicate type qualifiers in C99. - (start_function): Make warning about implict int return type be a - pedwarn in C99. - * c-lex.c (yylex): Don't warn about `long long' in C99. - * c-typeck.c (c_expand_return): In C99, always pedwarn about - `return' with no value in function returning non-void. - -2000-06-26 Richard Henderson - - * c-typeck.c (pedwarn_c99): New. - * diagnostic.c (verror, vwarning, vpedwarn): Export. - * toplev.h: Prototype them. - -2000-06-26 J. David Anglin - - * c-typeck.c (digest_init): Return error_mark_node node when - TREE_TYPE (init) == error_mark_node. - -2000-06-26 Philipp Thomas - - * aclocal.m4 (AM_WITH_NLS): Don't set MSGFMT or GMSGFMT to no, - test for msgfmt without path instead. - * configure: Rebuilt. - -2000-06-25 Theodore Papadopoulo - - * gengenrtl.c (special_rtx): Fix typo in comment. - -2000-06-26 Michael Hayes - - * mklibgcc.in (LIB2FUNCS): Add missing space. - -2000-06-24 Bernd Schmidt - - * tree.h (enum tree_index): Add vector type nodes. - Add accessor macros for them. - (TYPE_REPRESENATION_TYPE): New macro. - * tree.c (build_common_tree_nodes_2): Build these nodes. - (finish_vector_type): New function. - * c-common.c (type_for_mode): Handle vector modes. - * tm.texi (VECTOR_MODE_SUPPORTED_P): Document. - - * dbxout.c (dbxout_type): Handle VECTOR_TYPEs. - * dwarf.h (enum dwarf_fundamental_type): Add 128 bit integers. - * dwarf2out.c (lookup_type_die): Handle VECTOR_TYPEs. - (gen_type_die): Likewise. - * dwarfout.c (dwarf_fund_type_name): Handle 128 bit integers. - (fundamental_type_code): Likewise. - (type_is_fundamental): VECTOR_TYPEs aren't. - (output_type): Handle VECTOR_TYPEs. - -2000-06-25 Kazu Hirata - - * config/arm.c: Fix a comment typo. - * config/arm.h: Likewise. - -2000-06-25 Philipp Thomas - - * aclocal.m4 (AM_WITH_NLS): Set create_catalogs=no if no catalog - compiler found. - AM_GNU_GETTEXT: Don't set CATALOGS if create_catalogs=no. - * configure: Rebuilt. - -2000-06-25 John David Anglin - - * config/vax/vax.h (TARGET_SWITCHES): Provide descriptions. - -2000-06-25 Herman A.J. ten Brugge - - * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2FUNCS when generating - libgcc.a. - -2000-06-24 Marc Espie - - * collect2.c (resolve_lib_name): Move '/' check out of loop. - -2000-06-24 Dirk Duellmann - - * ginclude/stddef.h (NULL): define for non-gnu C++ parsers as 0. - -2000-06-24 Jakub Jelinek - - * stmt.c (expand_decl_cleanup): Emit a dummy insn after - last_unconditional_cleanup. - -2000-06-24 Bernd Schmidt - - * tree.def (VECTOR_TYPE): New node type. - * tree.h: Adjust some comments to reflect addition of vector types. - (TYPE_VECTOR_SUBPARTS): New macro. - * stor-layout.c (layout_type): Handle VECTOR_TYPE. - * c-convert.c (convert): Likewise. - * convert.c (convert_to_integer): Handle vector modes. - (convert_to_vector): New function. - * convert.h (convert_to_vector): Declare. - * expr.c (convert_move): Handle vector modes. - * expmed.c (extract_bit_field): Don't abort for vector modes. - -2000-06-24 Marek Michalkiewicz - - * config/avr/avr-protos.h (avr_hard_regno_mode_ok): New prototype. - * config/avr/avr.c (out_adj_frame_ptr, out_set_stack_ptr): - New functions, common code moved from function_{prologue,epilogue} - and extended to support the -mtiny-stack option. - (function_prologue, function_epilogue): Use them. - Use lo8/hi8 consistently for asm output readability. - (avr_hard_regno_mode_ok): New function. - * config/avr/avr.h (TARGET_SWITCHES): Fix typo. Add -mtiny-stack. - (UNITS_PER_WORD): Define as 4 (not 1) when compiling libgcc2.c. - (HARD_REGNO_MODE_OK): Call the avr_hard_regno_mode_ok function. - * config/avr/avr.md (*mov_sp_r): Add support for -mtiny-stack. - Write SPH before SPL. - (*movqi): No need to disable interrupts for just one "out" - in alternative 5. Change length attribute from 4 to 1. - * config/avr/libgcc.S (__prologue_saves__, __epilogue_restores__): - Write SPH before SPL. - -2000-06-24 Bernd Schmidt - - * rtl.texi (Vector Operations): New node. - (Arithmetic): Add ss_plus, us_plus, ss_minus, us_minus. - (Conversions): Add ss_truncate, us_truncate. - * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_REORDER, - VEC_CONST, VEC_DUPLICATE, SS_PLUS, SS_MINUS, SS_TRUNCATE, - US_TRUNCATE): New rtx codes. - * machmode.def: Add vector modes. - * machmode.h (enum mode_class): Add MODE_VECTOR_INT and - MODE_VECTOR_FLOAT. - (INTEGER_MODE_P): Check for MODE_VECTOR_INT. - (FLOAT_MODE_P): Check for MODE_VECTOR_FLOAT. - (VECTOR_MODE_P): New. - -2000-06-24 Nathan Sidwell - - * cpp.texi: Clarify #pragma GCC namespace. - -2000-06-24 Philipp Thomas - - * aclocal.m4(AM_GNU_GETTEXT): If LINGUAS isn't set, build - all catalogs specified in ALL_LINGUAS. - * configure: Rebuilt. - -2000-06-23 Jakub Jelinek - - * config/sparc/sparc.md (reload_outdi+1): Handle - HOST_BITS_PER_WIDE_INT == 64 case correctly. - (adddi3_insn_sp32+1, adddi3_insn_sp32+2, andsi3+2): Likewise. - -2000-06-23 Geoffrey Keating - - * alias.c (fixed_scalar_and_varying_struct_p): Don't examine - struct vs. scalar-ness when -fno-strict-aliasing. - -2000-06-23 Nathan Sidwell - - * cpplib.c (struct pragma_entry): New structure. - (pragma_dispatch): Pragma dispatcher. - (top_pragmas, gcc_pragmas): New static variables. - (do_pragma): Use pragma_dispatch. - (do_pragma_gcc): New pragma handler. - * cpp.texi: Update. - -2000-06-23 Jakub Jelinek - - * calls.c (compute_argument_addresses): Force stack slots into - alias set 0. - * expr.c (emit_push_insn): Force pushes into alias set 0. - -2000-06-23 Richard Henderson - - * config/ia64/ia64.md (pred_rel_mutex): Only take one register. - * config/ia64/ia64.c (emit_predicate_relation_info): Adjust to match. - -2000-06-22 Jason Merrill - - * toplev.c (compile_file): Always call timevar_print. - * Makefile.in (calls.o): Depend on TIMEVAR_H. - -2000-06-22 Nathan Sidwell - - * varasm.c (constant_descriptor): Make contents unsigned char. - (mark_const_hash_entry): Adjust. - (const_hash): Just hash the code of unknown nodes. - (compare_constant_1): Adjust for unsigned char. - Use language specific expander on unknown nodes. - (record_constant_1): Likewise. - -2000-06-21 Zack Weinberg - - * cppfiles.c (cpp_make_system_header): New function. - * cpplib.h: Prototype it. - * cpplib.c (do_line, do_pragma_system_header): Use it. - * fix-header.c (read_scan_file): Use it. - - * fix-header.c (check_macro_names): Cast second arg of - cpp_defined to const unsigned char *. - (read_scan_file): Make getchar_call const unsigned char. - -2000-06-21 Zack Weinberg - - * cppfiles.c: Include splay-tree.h, not hashtab.h. - (redundant_include_p, make_IHASH, hash_IHASH, eq_IHASH): Delete. - (destroy_include_file_node): New. - (_cpp_init_include_hash): Rename _cpp_init_include_table. - Create a splay tree, not a hash table. - (open_include_file): Look up the path in the include table, - do the multiple include optimization here, etc. - (cpp_included): Walk the path. - (find_include_file): Just walk the path calling - open_include_file, or call it directly for an absolute path. - (_cpp_fake_ihash): Rename _cpp_fake_include and update for new - scheme. - (read_include_file): Update for new scheme. Don't close the - file unless reading fails. - (_cpp_execute_include, cpp_read_file): Tweak for new scheme. - - * cpphash.h (struct ihash, NEVER_REINCLUDE): Delete. - (struct include_file): New. - (NEVER_REREAD, DO_NOT_REREAD, CPP_IN_SYSTEM_HEADER): New - macros. - (CPP_PEDANTIC, CPP_WTRADITIONAL): Update. - Update prototypes. - - * cppinit.c: Include splay-tree.h. - (cpp_reader_init, cpp_cleanup): Update. - - * cpplib.h (struct cpp_buffer): Change ihash field to - 'struct include_file *inc'. Remove system_header_p. - (struct cpp_reader): Change all_include_files to a - struct splay_tree_s *. - - * cpplex.c: Update all references to cpp_buffer->ihash and/or - cpp_buffer->system_header_p. - (cpp_pop_buffer): Close file here, only if DO_NOT_REREAD. - - * Makefile.in (SPLAY_TREE_H): New macro. - (cppfiles.o, cppinit.o): Update dependencies. - -Wed Jun 21 11:05:48 2000 Martin Buchholz - - * invoke.texi (g++): "g++" is not a script anymore. - -2000-06-20 J. David Anglin - - * function.c (round_down): Delete obsolete prototype. - - * pa.h (CPP_SPEC): Add whitespace after -D__STDC_EXT__. - -2000-06-20 Zack Weinberg - - * configure.in: Use 'test a = b' not 'test a == b'. - * configure: Regen. - - * Makefile.in (fix-header): Link with $(LIBS) not $(HOST_LIBS). - - * Makefile.in: Remove all references to HOST_INTLLIBS. - - * cpplex.c (parse_name): Don't warn about $ in identifiers if - skipping. - -2000-06-20 Philipp Thomas - - * config/pa/pa.h(TARGET_SWITCHES): Require binutils 2.10 or later - for PA 2.0. - -Mon Jun 19 23:26:40 2000 J"orn Rennecke - - * Take REG_INC notes into account. - -2000-06-19 Zack Weinberg - - * c-parse.in (undeclared_variable_notice): Moved to c-typeck.c. - (primary: IDENTIFIER): Just call build_external_ref. - * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: - Regenerate. - * c-lex.c (lastiddecl): Remove. - (yylex): Replace all instances of lastiddecl with local - variables. - - * c-typeck.c (build_external_ref): New function. Treat decls - with C_DECL_ANTICIPATED mostly the same as nonexistent decls. - Look up the decl from the id here. Call lookup_objc_ivar. - * c-lang.c (lookup_objc_ivar): Stub. - * objc/objc-act.c (lookup_objc_ivar): New function. - - * c-tree.h: Prototype lookup_objc_ivar and build_external_ref. - * c-lex.h: Don't declare lastiddecl. - -2000-06-19 Benjamin Chelf - - * c-common.h (IF_COND): Added documentation. - (THEN_CLAUSE): Likewise. - (ELSE_CLAUSE): Likewise. - (WHILE_COND): Likewise. - (WHILE_BODY): Likewise. - (DO_COND): Likewise. - (DO_BODY): Likewise. - (RETURN_EXPR): Likewise. - (EXPR_STMT_EXPR): Likewise. - (FOR_INIT_STMT): Likewise. - (FOR_COND): Likewise. - (FOR_EXPR): Likewise. - (FOR_BODY): Likewise. - (SWITCH_COND): Likewise. - (SWITCH_BODY): Likewise. - (CASE_LOW): Likewise. - (CASE_HIGH): Likewise. - (GOTO_DESTINATION): Likewise. - (COMPOUND_BODY): Likewise. - (ASM_CV_QUAL): Likewise. - (ASM_STRING): Likewise. - (ASM_OUTPUTS): Likewise. - (ASM_INPUTS): Likewise. - (ASM_CLOBBERS): Likewise. - (DECL_STMT_DECL): Likewise. - (STMT_EXPR_STMT): Likewise. - (LABEL_STMT_LABEL): Likewise. - - * c-common.def: Added documenetion for SRCLOC, EXPR_STMT, - COMPOUND_STMT, DECL_STMT, IF_STMT, FOR_STMT, WHILE_STMT, DO_STMT, - RETURN_STMT, BREAK_STMT, CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, - LABEL_STMT, ASM_STMT, SCOPE_STMT, CASE_LABEL, STMT_EXPR. - -2000-06-19 Kaveh R. Ghazi - - * configure.in (--enable-checking): Update --help doc to reflect - new defaults. Ensure $ac_save_IFS is set before $IFS is changed. - -Sun Jun 18 21:42:15 2000 Richard Kenner - - * gcse.c (insert_insn_end_bb): Always put after NOTE_INSN_BASIC_BLOCK. - - * function.c (put_var_into_stack): Don't reference DECL_ fields - if input is a SAVE_EXPR. - Use set_mem_attributes in COMPLEX case. - -2000-06-18 Richard Henderson - - * config/ia64/ia64-protos.h (process_for_unwind_directive): Declare. - (ia64_file_start): Declare. - * config/ia64/ia64.h (ADDL_REGNO_P): Don't compare unsigned against 0. - (GR_REGNO_P): Likewise. - * config/ia64/ia64.c: Many prototypes. - (ia64_reg_numbers): Constify. - (ia64_input_reg_names, ia64_local_reg_names): Likewise. - (ia64_section_threshold): Make unsigned. - (ia64_print_operand): Constify. - (fix_range): Constify. - (ia64_init_builtins): Don't compare signed vs unsigned. - (ia64_expand_builtin): Likewise. - - * config/ia64/ia64.h (EXTRA_CONSTRAINT): New. - (CONSTRAINT_OK_FOR_Q): New. - * config/ia64/ia64.md (movdi_internal): Use Q for fp<->mem. - (movsf_internal, movdf_internal): Likewise. - (cmovdi_internal): Rewrite so that constraints and predicates match; - simplify splitters. - (cmovsi_internal): Likewise. - - * config/ia64/ia64.h (ASM_SPEC): Add -x for gas. - (ASM_FILE_START): New. - * config/ia64/ia64.c (ia64_file_start): New. - (rtx_needs_barrier): Handle pred.rel.mutex. - (emit_predicate_relation_info): New. - * config/ia64/ia64.md (pred_rel_mutex): New. - * config/ia64/linux.h (ASM_SPEC): Define. - * config/ia64/sysv4.h (ASM_FILE_START): Define. - - * config/ia64/ia64.c (ia64_encode_section_info): Fix thinko - filtering global register variables. - -2000-06-18 Kaveh R. Ghazi - - * c-common.c (add_c_tree_codes): Fix definition for traditional C. - -2000-06-17 Michael Meissner - - * gcc.c (do_spec_1, '%v3' case): Do not abort if patch level is - not present and there is a field after a '-'. - -2000-06-17 Bruce Korb - - * fixinc/check.tpl: finish the implementation of multiple tests - for a single fix - * fixinc/inclhack.def(ctrl_quotes_def): add a second test - (io_quotes_def): add a second test - (various): reorder `files' so that "limits.h" is never first - * fixinc/tests/base/*: update the testing output - -Sat Jun 17 10:33:59 2000 Richard Kenner - - * gcc.texi: Remove reference to stupid.c. - -2000-06-16 Benjamin Chelf - - * c-common.c (c_tree_code_type): New array. - (c_tree_code_length): Likewise. - (c_tree_code_name): Likewise. - (add_c_tree_codes): New function. - - * c-common.h (add_c_tree_codes): Declare. - (enum c_tree_code): New enum. - - * c-lex.c (init_parse): Added call to add_c_tree_codes. - -2000-06-16 Kaveh R. Ghazi - - * fixinc/inclhack.def (ctrl_quotes_def, io_quotes_def): Modify - select pattern to also match macro defs with only one argument. - -Thu Jun 15 18:56:12 2000 Jeffrey A Law (law@cygnus.com) - - * i386.md: Create new [right,left] rotate and right shift - patterns to optimize shift by 1 bit for certain ia32 processors. - Update patterns which perform left shifts to optimize shift by - 1 bit for certain ia32 processors. - * i386.c (const_int_1_operand): New predicate. - * i386.h (PREDICATE_CODES): Handle const_int_1_operand. - * i386-protos.h (const_int_1_operand): Prototype. - -Wed Jun 14 23:46:26 2000 J"orn Rennecke - - * mips.c (machine_dependent_reorg): Fix braces for nested if. - -2000-06-14 Geoff Keating - - * rs6000.c (toc_hash_eq): Use CODE_LABEL_NUMBER to compare - LABEL_REFs. - -2000-06-14 Richard Henderson - - * conflict.c (conflict_graph_compute): Don't look for REG_INC. - - * config/ia64/ia64.c (ia64_setup_incoming_varargs): Don't emit - auto-inc code. - - * print-rtl.c (print_rtx): Emit space before mem alias set. - -2000-06-14 David Edelsohn - - * rs6000.c (expand_block_move): Fix typo in earlier change. - (print_operand): Remove unused variables neg and op. - (toc_hash_mark_entry): Fix prototype. - -2000-06-14 Benjamin Chelf - - * c-common.h (IF_COND): Moved here from cp/cp-tree.h. - (THEN_CLAUSE): Likewise. - (ELSE_CLAUSE): Likewise. - (WHILE_COND): Likewise. - (WHILE_BODY): Likewise. - (DO_COND): Likewise. - (DO_BODY): Likewise. - (RETURN_EXPR): Likewise. - (EXPR_STMT_EXPR): Likewise. - (FOR_INIT_STMT): Likewise. - (FOR_COND): Likewise. - (FOR_EXPR): Likewise. - (FOR_BODY): Likewise. - (SWITCH_COND): Likewise. - (SWITCH_BODY): Likewise. - (CASE_LOW): Likewise. - (CASE_HIGH): Likewise. - (GOTO_DESTINATION): Likewise. - (COMPOUND_BODY): Likewise. - (ASM_CV_QUAL): Likewise. - (ASM_STRING): Likewise. - (ASM_OUTPUTS): Likewise. - (ASM_INPUTS): Likewise. - (ASM_CLOBBERS): Likewise. - (DECL_STMT_DECL): Likewise. - (STMT_EXPR_STMT): Likewise. - (LABEL_STMT_LABEL): Likewise. - (SCOPE_BEGIN_P): Likewise. - (SCOPE_END_P): Likewise. - (SCOPE_STMT_BLOCK): Likewise. - (SCOPE_NULLIFIED_P): Likewise. - (SCOPE_NO_CLEANUPS_P): Likewise. - (SCOPE_PARTIAL_P): Likewise. - (ASM_VOLATILE_P): Likewise. - (STMT_LINENO): Likewise. - (STMT_LINENO_FOR_FN_P): Likewise. - - * c-common.def: New file. Added SRCLOC, SIZEOF_EXPR, ARROW_EXPR, - ALIGNOF_EXPR, EXPR_STMT, COMPOUND_STMT, DECL_STMT, IF_STMT, - FOR_STMT, WHILE_STMT, DO_STMT, RETURN_STMT, BREAK_STMT, - CONTINUE_STMT, SWITCH_STMT, GOTO_STMT, LABEL_STMT, ASM_STMT, - SCOPE_STMT, CASE_LABEL, STMT_EXPR. - - * gencheck.c (tree_codes[]): Added '#include "c-common.def"'. - -2000-06-14 David O'Brien - - * gcc.c (main): Quiet compiler warnings. argv is assumed to be - writable in parts of the GCC code. - - * config/elfos.h (ASM_GENERATE_INTERNAL_LABEL): Make printf - specification match cast. - -Wed Jun 14 09:25:57 2000 Jeffrey A Law (law@cygnus.com) - - * configure.in: Revert AC_TYPE_GETGROUPS patch from June 13. - * configure, config.in: Rebuilt. - * sys-protos.h: Similarly. - -Wed Jun 14 03:39:58 EDT 2000 John Wehle (john@feith.com) - - * ifcvt.c (EDGE_COMPLEX): Move definition ... - * basic-block.h (EDGE_COMPLEX): ... here. - - * loop.c (check_dbra_loop): Specify the register when - generating REG_NONNEG notes and don't generate duplicates. - -2000-06-13 Jakub Jelinek - - * tree.h (TYPE_USER_ALIGN, DECL_USER_ALIGN): Define. - (struct tree_type, struct tree_decl): Add user_align member. - * stor-layout.c (layout_decl): Set DECL_USER_ALIGN. - (place_union_field): If BIGGEST_FIELD_ALIGNMENT is defined - and DECL_USER_ALIGN 0, cap alignment to this value. - (place_field): Likewise. - (finalize_type_size): Set TYPE_USER_ALIGN. - (layout_type): Likewise. - (initialize_sizetypes): Likewise. - * c-common.c (decl_attributes): Set TYPE_USER_ALIGN resp. - DECL_USER_ALIGN to 1. - * c-decl.c (duplicate_decls): Set DECL_USER_ALIGN. - (xfer_tag): Set TYPE_USER_ALIGN. - (finish_struct): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. - (finish_enum): Likewise. - * stmt.c (expand_decl): Set DECL_USER_ALIGN. - (expand_anon_union_decl): Likewise. - * tree.c (make_node): Set DECL_USER_ALIGN resp. TYPE_USER_ALIGN. - (build_index_type): Set TYPE_USER_ALIGN. - (build_range_type): Likewise. - (build_common_tree_nodes_2): Likewise. - * tm.texi (BIGGEST_FIELD_ALIGNMENT): Document the changed meaning. - -2000-06-13 Andreas Jaeger - - * configure.in: Use --enable-checking=misc,tree,gc by default if - no --enable-checking option is given and for - --enable-checking=yes. - * configure: Rebuilt. - -2000-06-13 Richard Henderson - - * libgcc2.c (ia64_throw_helper): Use __builtin_return_address. - (__throw): Don't pass the address of a label. - - * config/ia64/ia64.c (ia64_compute_frame_size): Use - current_function_is_leaf. - (ia64_expand_prologue): Likewise. Modify return_address_pointer_rtx - instead of reg_names[RETURN_ADDRESS_REGNUM]. - (ia64_init_machine_status): Reset return_address_pointer_rtx. - * config/ia64/ia64.h (RETURN_ADDRESS_POINTER_REGNUM): Rename - from RETURN_ADDRESS_REGNUM. Update all uses. - (RETURN_ADDR_RTX): Use return_address_pointer_rtx; return - zero instead of null on failure. - (ELIMINABLE_REGS): Add ra->b0 elimination. - (CAN_ELIMINATE): Update accordingly. - (INITIAL_ELIMINATION_OFFSET): Likewise. - (REGISTER_NAMES): Use an illegal assembler name for - RETURN_ADDRESS_POINTER_REGNUM. - -2000-06-13 Richard Henderson - - * config/ia64/ia64.h (enum reg_class): Remove FR_INT_REGS, FR_FP_REGS, - GR_AND_FR_INT_REGS, GR_AND_FR_FP_REGS. - (REG_CLASS_NAMES): Likewise. - (REG_CLASS_CONTENTS): Likewise. - (FR_FP_REGNO_P, FR_INT_REGNO_P): Remove. - (HARD_REGNO_MODE_OK): Remove references to them. - (REGNO_REG_CLASS): Likewise. - (REG_CLASS_FROM_LETTER): Likewise. - (CLASS_MAX_NREGS): Likewise. - (REGISTER_MOVE_COST): Likewise. - * config/ia64/ia64.c (ia64_secondary_reload_class): Likewise. - * config/ia64/ia64.md (*): Replace "e" constraints with "f". - (movqi_internal): Special case moves from zero. - (movhi_internal, movsi_internal): Likewise. - (movdi_internal): Likewise. Fill out "f" constraints. - (movsf_internal): Fill out "r" constraints. - (movdf_internal): Likewise. - -2000-06-13 Richard Henderson - - * flow.c (insn_dead_p): Keep sets to PIC_OFFSET_TABLE_REGNUM - alive before reload. - - * haifa-sched.c (struct deps): Add in_post_call_group_p. - (add_dependence): Handle notes between SCHED_GROUP_P insns. - (remove_dependence): Always define. - (set_sched_group_p): New. - (sched_analyze_2): Use it. - (sched_analyze_insn): Don't special-case naked uses. Look for - and extend in_post_call_group_p. - (sched_analyze): Clear stale SCHED_GROUP_P. Set in_post_call_group_p. - (init_deps): Clear in_post_call_group_p. - -2000-06-13 Richard Henderson - - * combine.c (subst): Use CLASS_CANNOT_CHANGE_MODE and - CLASS_CANNOT_CHANGE_MODE_P instead of CLASS_CANNOT_CHANGE_SIZE - and hard-coded tests. - (simplify_set): Likewise. - (gen_lowpart_for_combine): Likewise. - * emit-rtl.c (gen_lowpart_common): Likewise. - * global.c (find_reg): Likewise. - * local-alloc.c (find_free_reg): Likewise. - * recog.c (register_operand): Likewise. - * regclass.c (init_reg_sets_1): Likewise. - (record_operand_costs, regclass): Likewise. - * reload.c (push_reload): Likewise. - * reload1.c (choose_reload_regs): Likewise. - * flow.c (mark_used_regs): Conditionally set REG_CHANGES_MODE. - * local-alloc.c (struct qty): Rename changes_size to changes_mode. - Update all references. - * regs.h (struct reg_info_def): Likewise. - (REG_CHANGES_MODE): Rename from REG_CHANGES_SIZE. - * tm.texi (CLASS_CANNOT_CHANGE_MODE): Document. - (CLASS_CANNOT_CHANGE_MODE_P): Likewise. - - * config/alpha/alpha.h (CLASS_CANNOT_CHANGE_MODE): Rename. - (CLASS_CANNOT_CHANGE_MODE_P): New. - * config/mips/mips.h: Likewise. - * config/pa/pa32-regs.h: Likewise. - * config/pa/pa64-regs.h: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/sh/sh.h: Likewise. - * config/ia64/ia64.h (CLASS_CANNOT_CHANGE_MODE): New. - (CLASS_CANNOT_CHANGE_MODE_P): New. - * config/avr/avr.h (CLASS_CANNOT_CHANGE_SIZE): Remove dead code. - * config/d30v/d30v.h: Likewise. - -2000-06-13 J. David Anglin - - * configure.in: Add AC_TYPE_GETGROUPS test. - * sys-protos.h: Use GETGROUPS_T * for second arg of getgroups. - * configure: Rebuilt. - * config.in: Rebuilt. - -2000-06-13 Richard Henderson - - * explow.c (set_mem_attributes): Do nothing for NULL type. - -Tue Jun 13 14:45:10 2000 Jeffrey A Law (law@cygnus.com) - - * config/m68k/openbsd.h (ASM_SPEC): pass down options to assembler - correctly. - -2000-06-13 James E. Wilson - - * config/ia64/ia64.md (movxf_internal): Add missing "e" to ldf/stf. - -Tue Jun 13 14:05:35 2000 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (gensupport.o): Remove bogus $(HOST_PREFIX) reference. - -2000-06-13 Philipp Thomas - - * configure.in(ALL_LINGUAS): Changed en_UK to en_GB. - * configure: Rebuilt. - -2000-06-07 David O'Brien - - * configure.in: Adjust FreeBSD bits to match changes to config.guess. - We now default to ELF for the i386, and a.out is the special case. - * configure: Rebuilt. - -Tue Jun 13 10:05:30 2000 Hans-Peter Nilsson - - * final.c (final_scan_insn): Delete notes between cc0 setter and - user when restarting from setter. - -2000-06-13 J. David Anglin - - * vax.h (INDEX_TERM_P): Define evaluation order of &&'s in || and - cast to squelch signed/unsigned warnings. - -2000-06-13 Zack Weinberg - - * cpplib.c (handle_directive): Print non-NUL-terminated string - with %.*s. - -2000-06-12 Michael Meissner - - * ifcvt.c (dead_or_predicable): Don't do conditional execution - path if the machine needs extra support to do conditional - execution. - -Mon Jun 12 17:04:17 2000 Jeffrey A Law (law@cygnus.com) - - * print-rtl.c (print_rtx, case MEM): Use HOST_WIDE_INT_PRINT_DEC - to print the alias set. - * print-tree.c (print_node, DECL_* nodes and case 't'): Similarly. - -2000-06-12 J. David Anglin - - * config/float-vax.h: Add GFLOAT defines. - -Mon Jun 12 9:44:00 2000 Mark Klein - - * configure.in: Update tm dependencies for MPE. - * configure: Rebuilt. - -2000-06-12 H.J. Lu - - * gengenrtl.c (obstack_alloc_rtx): Correct the allocated size. - -2000-06-12 David Edelsohn - - * aix41.h (SUBTARGET_SWITCHES): Delete threads. - (CPP_SPEC): Change mthreads to pthread. - (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - * aix43.h (SUBTARGET_SWITCHES): Delete threads. - (CPP_SPEC): Change mthreads to pthread. - (LIB_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - * rs6000-protos.h (reg_or_arith_cint_operand): New. - * rs6000.c (reg_or_arith_cint_operand): New. - (num_insns_constant_wide): Decorate unsigned constant. - * rs6000.h (PREDICATE_CODES): Add reg_or_arith_cint_operand. - * rs6000.md (addsi3): Use new predicate. - (subsi3, adddi3, subdi3): Likewise. - -2000-06-12 Mark Mitchell - - * c-common.c (lang_get_alias_set): Fix typo. - -2000-06-12 Richard Earnshaw - - * flow.c (mark_used_regs): Revert last change. - (life_analysis): Remove PROP_AUTOINC if running after reload. - (propagate_one_insn): PROP_AUTOINC is always off after reload. - -2000-06-11 Richard Earnshaw - - * flow.c (mark_used_regs): Don't call find_auto_inc after reload - has run. - -2000-06-11 Kaveh R. Ghazi - - * bb-reorder.c (build_scope_forest): Initialize variable - `curr_scope'. - - * calls.c (expand_call): Likewise for variables - `save_pending_stack_adjust' and `save_stack_pointer_delta'. - - * i386.c (function_arg_advance, function_arg): Cast to avoid - signed/unsigned warnings. - - * i386.h (MEMORY_MOVE_COST): Likewise. - - * ifcvt.c (cond_exec_process_if_block): Initialize variables - `else_start' and `else_end'. - - * libgcc2.h (__eh_alloc, __eh_free): Prototype. - - * regrename.c (rr_replace_reg): Initialize variable `dest_subregno'. - -2000-06-10 Mark Mitchell - - * Makefile.in (libintl.a): Depend on intl.all. - -2000-06-09 H.J. Lu (hjl@gnu.org) - - * Makefile.in (c-parse.o): Also depend on output.h. - -2000-06-09 Rodney Brown - - * mcore-protos.h: discards const warning removal. - * mcore.c: discards const warning removal. - -2000-06-09 Kazu Hirata - - * config/h8300/lib1funcs.asm: Declare the machine architecture at - the beginning of the file. - -2000-06-09 J. David Anglin - - * real.h: Add prototype for ldexp. - -2000-06-09 Zack Weinberg - - * ggc-none.c, ggc-simple.c, ggc-page.c (ggc_alloc_obj): Rename - it ggc_alloc, drop second argument, never clear returned memory. - * ggc-common.c (ggc_alloc_string): Use ggc_alloc. - (ggc_alloc_cleared): New. - * ggc.h: Prototype ggc_alloc and ggc_alloc_cleared, not - ggc_alloc_obj. Remove ggc_alloc macro. - (ggc_alloc_rtx, ggc_alloc_rtvec, ggc_alloc_tree): Use ggc_alloc. - - * rtl.c (rtvec_alloc): Clear the vector always. - (rtx_alloc): Clear the first word always. Remove dirty - obstack tricks (this routine is no longer a bottleneck). - * tree.c (make_node): Clear the new node always. - (make_tree_vec): Likewise. - (tree_cons): Clear the common structure always. - (build1): Likewise; also, clear TREE_COMPLEXITY. - * gengenrtl.c: Use puts wherever possible. Remove extra - newlines. - (gendef): Clear the first word of an RTX in the generator - function, irrespective of ggc_p. Initialize '0' slots to - NULL. - (genlegend): Don't generate obstack_alloc_rtx routine, just a - thin wrapper macro around obstack_alloc. - - * stmt.c (expand_fixup): Use ggc_alloc. - * c-typeck.c (add_pending_init): Use ggc_alloc. - * emit-rtl.c (init_emit_once): Clear CONST_DOUBLE_CHAIN(tem). - * varasm.c (immed_double_const): Set CONST_DOUBLE_MEM(r) to - const0_rtx when it is created. - (immed_real_const_1): Set CONST_DOUBLE_CHAIN(r) to NULL_RTX if - we are not in a function. - - * tree.c (tree_class_check_failed): Make second arg an int. - * tree.h: Update prototype. - -2000-06-09 Geoff Keating - - * tree.h (VOID_TYPE_P): Don't look at the TYPE_MAIN_VARIANT - of an error_mark_node. - -Fri Jun 9 20:35:13 2000 Denis Chertykov - - * config/avr/avr.c (asm_output_section_name): bugfix. - -2000-06-09 Jason Merrill - - * timevar.def: Add TV_EXPAND. - * timevar.c (timevar_print): Update timing information. - * calls.c (try_to_integrate): Push to TV_INTEGRATION for inlining. - - * stmt.c (expand_return): Check for error_mark_node. - -2000-06-09 Kaveh R. Ghazi - - * configure.in: Also avoid wrapping auto-build.h with IN_GCC. - - * scan-types.sh (VALUE) Wrap use with double quotes to protect - variable against filename expansion when it contains "char *". - - * system.h (SSIZE_MAX): Delete backup definition. - - * cppfiles.c (read_include_file): Use INTTYPE_MAXIMUM(ssize_t) - instead of SSIZE_MAX. - -2000-06-09 Jakub Jelinek - - * configure.in: Check whether gas supports -relax. - * configure, config.in: Rebuilt. - * config/sparc/sparc.h (ASM_RELAX_SPEC): Define. - (EXTRA_SPECS): Add asm_relax. - (ASM_SPEC): Add %(asm_relax). - (TARGET_SWITCHES): Add -mrelax and -mno-relax. - * config/sparc/linux64.h (LINK_ARCH_SPEC): Rename to LINK_SPEC. - (LINK_SPEC): Pass -relax to linker unless -mno-relax or -r. - (ASM_SPEC): Add %(asm_relax). - * config/sparc/linux.h (LINK_SPEC, ASM_SPEC): Likewise. - * config/sparc/sparc.c (output_sibcall): If HAVE_AS_RELAX_OPTION, - never use sethi/jmpl for leaf tail calls. Use or with rs2 %g0 - instead of mov, so that gas can further optimize it. - -2000-06-08 James E. Wilson - - * dwarf2out.c (size_of_die, case dw_val_class_const): Use - size_of_sleb128. - (value_format, case dw_val_class_const): Use sdata format. - (output_die): Call output_sleb128. - -2000-06-08 James E. Wilson - - * dwarf2out.c (ASM_OUTPUT_DWARF_DATA8): Add new macro that uses - UNALIGNED_DOUBLE_INT_ASM_OP. Rename old macro to - ASM_OUTPUT_DWARF_CONST_DOUBLE. - (output_die, case dw_val_class_unsigned_const): Correct call to - ASM_OUTPUT_DWARF_DATA8. - (output_die, case dw_val_class_long_long): Use - ASM_OUTPUT_DWARF_CONST_DOUBLE. - * tree.c (host_integerp): Accept unsigned HOST_WIDE_INT values when - pos is zero. - - * config/ia64/ia64-protos.h (ia64_output_end_prologue): Add. - (output_function_prologue): Fix mispelling. - (output_function_prologue, output_function_epilogue): Reorder to - match ia64.c definition order. - * config/ia64/ia64.c (ia64_expand_prologue): Add comment. - (ia64_expand_epilogue): Set RTX_FRAME_RELATED_P on stack restore insns. - Use r3 instead of r2 for large stack restores. - (ia64_output_end_prologue): New function. - (process_set): Emit ".restore sp" for epilogue stack restores. - * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Define. - -2000-06-08 Jakub Jelinek - - * dbxout.c (dbxout_type_fields): Don't segfault on fields with - incomplete types. - -2000-06-08 Nathan Sidwell - - * frame.c (end_fde_sort): Remove extraneous erratic array test. - -2000-06-08 Denis Perchine - - * frame.c (start_fde_sort): Don't malloc (0). - -2000-06-07 Zack Weinberg - - * c-decl.c (pushdecl): Do not call COMPLETE_TYPE_P on - error_mark_node. - * print-tree.c (print_node): The transparent_union_flag means - different things for unions and arrays. Do not inspect it - with TYPE_TRANSPARENT_UNION. - -2000-06-06 Jakub Jelinek - - * cpplib.c (do_ifdef, do_ifndef): Don't segfault if parse_ifdef - returned NULL. - -Wed Jun 7 20:34:33 2000 Denis Chertykov - - * config/avr/avr.c (asm_output_section_name): output section - attributes. - * config/avr/libgcc.S (.text.libgcc): declare section attributes. - -2000-06-06 James E. Wilson - - * frame.h (struct unwind_info_ptr): Collapse version, flags, and length - fields into header field. - (IA64_UNW_HDR_LENGTH, IA64_UNW_HDR_FLAGS, IA64_UNW_HDR_VERSION): New - macros to access length, flags, and version info from header field. - * config/ia64/crtbegin.asm (__do_frame_setup_aux): Delete here. - * config/ia64/crtend.asm (__do_frame_setup_aux): Add here. - (__do_global_ctors_aux): Fix caller. - * config/ia64/frame-ia64.c (get_unwind_record): Change parameter - prologue_flag to header. Pass to read_P_record. - (read_P_record): New argument header. Implement P4 format. - Multiply P7_T_SIZE by 16. - (execute_one_ia64_descriptor): New static local region_header. Pass to - get_unwind_record. Copy r to region_header if r is a header record. - (print_all_records): Likewise. - (__build_ia64_frame_state): Use IA64_UNW_HDR_LENGTH. - (__get_personality, __get_except_table): Likewise. - * config/ia64/ia64.c (process_set): Do not divide offsets by 4. - -2000-06-06 Philipp Thomas - - * configure.in (AC_C_INLINE): Added. - * aclocal.m4 (AM_WITH_NLS): Enable --with-included-gettext by default. - * configure: Regenerate. - -2000-06-06 Mark Mitchell - - * c-common.h (c_language_kind): New type. - (c_language): New variab.e - * c-common.c (lang_get_alias_set): Don't put structures in - nonzero alias sets in C++. - * c-decl.c (c_language): Define it. - * c-lex.c (doing_objc_thang): Remove. - * c-tree.h (doing_objc_thang): Make it a macro. - * objc/objc-act.c (lang_decode_option): Set c_language, not - doing_objc_thang. - -2000-06-06 Gabriel Dos Reis - - * diagnostic.c (output_maximum_width): Remove. - (doing_line_wrapping): Tweak. - (diagnostic_buffer): New object. - (global_output_buffer): New object. - (output_destroy_prefix): New function. - (default_initialize_buffer): Likewise. - (reshape_diagnostic_buffer): Likewise. - (initialize_diagnostics): Likewise. - (output_clear): Tweak. - (line_wrapper_printf): Adjust call to init_output_buffer. - (vline_wrapper_message_with_location): Likewise. Use - output_destroy_prefix. - (v_message_with_decl): Likewise. - - * diagnostic.h (struct output_buffer): Constify prefix. - (init_output_buffer, output_get_prefix): Constify. - (diagnostic_message_length_per_line): Likewise. - (reshape_diagnostic_buffer): Declare. - (default_initialize_buffer): Declare. - (initialize_diagnostics): Declare. - (diagnostic_buffer): Declare new obbject. - - * toplev.c: #include diagnostic.h - (display_help): Document diagnostic formatting options. - (decode_f_option): Handle diagnostic formatting options. - (main): Setup initialization for diagnostic messages outputter. - - * toplev.h (set_message_length): Remove. - - * Makefile.in (toplev.o): Depends upon diagnostic.h - - * invoke.texi : Document diagnostics formatting options. - -Tue Jun 6 19:25:32 2000 Philippe De Muyter - - * configure.in (Make the links): Typo fix : the file that must be - included without #ifdef IN_GCC is `auto-host.h', not `auto-config.h'. - * configure: File rebuilt. - -2000-06-06 Nathan Sidwell - - * eh-common.h (EH_ALLOC_SIZE, EH_ALLOC_ALIGN): New #defines. - (eh_context): Add alloc_mask and alloc_buffer emergency fallback - space. - * libgcc2.c (__eh_alloc): Moved from cp/exception.cc. Fallback on - emergency eh_context buffer, if malloc fails. - (__eh_free): Moved from cp/exception.cc. Release to emergency - eh_context buffer, if appropriate. - -2000-06-06 Jason Merrill - - * expr.c (store_expr): Fix typo. - -2000-06-06 Kaveh R. Ghazi - - * m68k.c (legitimize_pic_address): Move prototype ... - - * m68k-protos.h (legitimize_pic_address): ... here. - - * m68k.md (legitimize_pic_address): Delete prototypes. - (untyped_call): Invoke GEN_CALL(), not gen_call(). - - * nextstep.c: Include system.h and toplev.h. - (get_directive_line): Don't prototype. - (handle_pragma): Mark parameters with ATTRIBUTE_UNUSED and constify. - - * nextstep.h (handle_pragma): Prototype. - (SECTION_FUNCTION): Prototype FUNCTION(). Move prototype of - objc_section_init ... - (EXTRA_SECTION_FUNCTIONS): ... here. - -Tue Jun 6 08:17:26 2000 Richard Kenner - - * sdbout.c (struct sdb_file): NAME now const. - (sdbout_init): input_file_name now const. - (sdbout_start_new_source_file): FILENAME now const. - * sdbout.c (sdbout_init, sdbout_start_new_source_file): Reflect above. - -2000-06-06 Gabriel Dos Reis - - * c-typeck.c (build_conditional_expr): Handle complex data types. - -2000-06-05 Jason Merrill - - * explow.c (maybe_set_unchanging): New function, broken out from... - (set_mem_attributes): Here. - * expr.h: Declare it. - * stmt.c (expand_decl): Call it. - -2000-06-05 Richard Henderson - - * reload1.c (choose_reload_regs): Mind CLASS_CANNOT_CHANGE_SIZE - while looking for a register to inherit from. - -2000-06-05 Jason Merrill - - * Makefile.in (libgcc.ready): Lose. - (libgcc.mk): Just use mv, not move-if-change. - (LIBGCC_DEPS): New macro. - (libgcc.a): Use it. - (stmp-multilib): Likewise. - * mklibgcc.in (stmp-dirs): New target. Make everything depend on - it rather than the directories themselves. - (LIB2ADD): Depend on the list file rather than 'force'. - - * fold-const.c (fold, case COND_EXPR): Elide conversion between - cv-qualified versions of types. - -Mon Jun 5 14:06:18 2000 Richard Kenner - - * config/sparc/sparc.c (short_branch): Correct error in range - computation. - -2000-06-05 J. David Anglin - - * fixinc/inclhack.def: New include hacks for ultrix. - * (nested_ultrix): Replaced by ultrix_nested_svc. - * (ultrix_atof_param): test_text string added. - * (ultrix_ifdef): Modified select string. - -2000-06-05 Zack Weinberg - - * objc/objc-act.c (generate_method_descriptors): Register - objc_method_prototype_template as a GC root. - (comp_method_with_proto): Register function_type as a GC root. - (comp_proto_with_proto): Replace function_type1 and - function_type2 with a two-element array; register it as a GC root. - - (generate_protocols, build_protocol_initializer, - generate_protocol_list, build_category_initializer, - build_shared_structure_initializer): Do not cache cast_type - and/or cast_type2. - -2000-06-05 J. David Anglin - - * function.c (assign_parms): Add missing argument to set_mem_attributes - call. - -2000-06-05 Nathan Sidwell - - * tree.h (VOID_TYPE_P): New macro. - (COMPLETE_OR_VOID_TYPE_P): Use VOID_TYPE_P. - * c-decl.c (grokdeclarator): Use VOID_TYPE_P. - (get_parm_info): Likewise. - (store_parm_decls): Likewise. - (combine_parm_decls): Likewise. - (finish_function): Likewise. - * c-typeck.c (build_function_call): Likewise. - (build_binary_op): Likewise. - (build_conditional_expr): Likewise. - (internal_build_compound_expr): Likewise. - (convert_for_assignment): Likewise. - * stmt.c (expend_expr_stmt): Likewise. - (warn_if_unused_value): Likewise. - (expand_return): Likewise. - * c-parse.in (primary): Likewise. - * c-parse.y, c-parse.c, c-parse.h: Regenerate. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. - -Mon Jun 5 06:46:28 2000 Richard Kenner - - * alias.c (get_alias_set): If compnent is addressable, use alias - set of component. - * c-decl.c (init_decl_processing): Don't call record_component_aliases. - (grokdeclarator): Likewise. - * c-typeck.c (common_type): Likewise. - -2000-06-04 Alex Samuel - - * Makefile.in (OBJS): Remove dyn_string.o - (dyn-string.o): Delete rule. - * dyn-string.c: Delete file - * dyn-string.h: Likewise. - -2000-06-04 Kaveh R. Ghazi - - * Makefile.in (intl.*): Honor nonzero exit codes in the intl - subdir. - -2000-06-03 Geoff Keating - - * alias.c (record_component_aliases): Don't inspect - DECL_NONADDRESSABLE_P of non-FIELD_DECL components of structures. - -Sat Jun 3 19:05:30 2000 Michael Meissner - - * ifcvt.c (process_insns): If IFCVT_MODIFY_INSN is defined, call - it with the pattern to do machine dependent work. - (cond_exec_process_if_block): If IFCVT_MODIFY_TESTS is defined, - use it to modify the true/false tests used in conditional - execution. If IFCVT_MODIFY_FINAL and IFCVT_MODIFY_CANCEL are - defined, invoke them if the conversion to conditional execution - was successful or not. - - * tm.texi (IFCVT_MODIFY_TESTS): Document. - (IFCVT_MODIFY_INSN): Ditto. - (IFCVT_MODIFY_FINAL): Ditto. - (IFCVT_MODIFY_CANCEL): Ditto. - -Sat Jun 3 15:26:13 2000 Matt Kraai - - * toplev.c (main): Fix misspellings of possibility and language. - -2000-06-03 Richard Henderson - - * alias.c (record_alias_subset): Initialize has_zero_child in the - superset. - -2000-06-03 Richard Earnshaw (rearnsha@arm.com) - - * arm.md (untyped_call): Use GEN_CALL macro. - -2000-06-02 Pekka Nikander - - * Makefile.in: Use $(MAKE) not "make" - -Fri Jun 2 19:31:03 2000 Richard Kenner - - * alias.c (struct alias_set_entry): New field has_zero_child. - (mem_in_disjoint_alias_sets_p): Return 0 if set in either ase. - (get_alias_set): If language-dependent routine set TYPE_ALIAS_SET, - do nothing. - Call record_component_aliases for aggregate types. - (record_alias_subset): Set has_zero_child. - (record_component_aliases, case ARRAY_TYPE): Do nothing if - TYPE_NONALIASES_COMPONENT. - (record_component_aliases, case RECORD_TYPE): Test - DECL_NONADDRESSABLE_P. - * c-decl.c (grokdeclarator): Set DECL_NONADDRESSABLE_P instead - of TREE_ADDRESSABLE. - * calls.c (initialize_argument_information): Only test - TYPE_TRANSPARENT_UNION for UNION_TYPE. - * function.c (assign_parms): Likewise. - * integrate.c (function_cannot_inline_p): Likewise. - * stor-layout.c (finish_record_layout): Don't call - record_component_aliases. - * tree.h (struct tree_int_cst): Use struct tree_common. - (struct tree_real_cst, struct tree_string): Likewise. - (struct tree_complex, struct tree_identifier): Likewise. - (struct tree_list, struct tree_vec, struct tree_exp): Likewise. - (struct tree_block, struct tree_type, struct tree_decl): Likewise. - (TYPE_TRANSPARENT_UNION): Use UNION_TYPE_CHECK. - (TYPE_NONALIASES_COMPONENT): New macro. - (TYPE_AMBIENT_BOUNDEDNESS): Use FUNCTION_TYPE_CHECK. - (DECL_NONADDRESSABLE_P): New macro. - (struct tree_decl): Reorder bits for clarity of how many left; - add non_adressable. - -2000-06-02 Jason Merrill - - * Makefile.in (libgcc.a): Also depend on $(LIB2ADD). - * mklibgcc.in (force): New target. - Make LIB2ADD stuff depend on it. - -2000-06-02 Richard Henderson - - * alias.c (lang_get_alias_set): Remove. - (get_alias_set): Call it directly, not indirectly. - * c-common.c (lang_get_alias_set): Rename from c_get_alias_set. - * c-common.h (c_get_alias_set): Don't declare. - * c-decl.c (init_decl_processing): Don't set lang_get_alias_set. - * expr.h (lang_get_alias_set): Declare as function, not pointer. - -2000-06-02 Bruce Korb - - * fixinc/server.c(sig_handler): resume closing server on SIGPIPE - (server_setup): define the server's master pid - (close_server): actually do the deed IFF we are the server's master - -2000-06-02 Jakub Jelinek - - * c-common.c (c_get_alias_set): Check whether signed_type did not - return its argument before calling get_alias_set on the result. - -2000-06-02 Andrew MacLeod - - * expr.c (emit_group_load): Fix typo, GET_MODE not GET_CODE. - -Fri Jun 2 00:22:52 2000 J"orn Rennecke - - * sh.h (CPP_SPEC): Add -D__NOMACSAVE__ for -mnomacsave. - (CONDITIONAL_REGISTER_USAGE): Mac registers are call used - for TARGET_NOMACSAVE. - (NOMACSAVE_BIT): Define. - (TARGET_NOMACSAVE): Define. - (TARGET_SWITCHES): Add "nomacsave". - -2000-06-02 Toshiyasu Morita - - * sh.md (untyped_call): Remove excess parameters - -2000-06-01 Loren J. Rittle - - * fixinc/inclhack.def (osf_namespace_a): Relax expression to - match that used before the conversion to c_fix style. - * fixinc/fixincl.x: regenerate - -2000-06-01 Stan Cox - - * varray.h (VARRAY_PUSH_GENERIC_PTR, VARRAY_PUSH_CHAR_PTR): Fix - macro argument typo. - -2000-06-01 Zack Weinberg - - * cpplex.c (maybe_macroexpand): Use CPP_WTRADITIONAL. Improve - error message. - * cpplib.c (parse_include): Remove support for VAX-C - "#include starlet" misfeature. - -2000-05-31 Laurynas Biveinis - - * cppfiles.c: conditionally define O_BINARY. - (open_include_file): pass O_BINARY to open(). - -2000-06-01 Richard Henderson - - * i960.c (i960_br_predict_opcode): Remove. - (i960_print_operand) [+]: Emit branch prediction hints. - (i960_function_arg): Return early for VOIDmode. - (i960_round_align): Return early for incomplete types. - * i960.h (PRINT_OPERAND_PUNCT_VALID_P): New. - * i960.md (all conditional branches): Add "%+". - -Thu Jun 1 12:24:21 2000 Richard Kenner - - * alias.c (get_alias_set): Don't call language-specific routine more - than is needed and clean up code a bit. - * c-common.c (c_get_alias_set): All references whose type - is char get alias set 0, but character types need not. - * varasm.c (make_function_rtl): Don't call set_mem_attributes. - (make_decl_rtl): Don't call it for FUNCTION_DECL. - -2000-06-01 Bruce Korb - - * fixinc/tests/base/...: new base result files - -Thu Jun 1 09:37:35 2000 Clinton Popetz - - * config/i386/i386.c (ix86_use_fcomi_compare): Make global. - * config/i386/i386-protos.h (ix86_use_fcomi_compare): Declare. - * config/i386/i386.md (*fp_jcc_3, *fp_jcc_4): Disable if we - will use FCOMI. - -2000-06-01 Richard Henderson - - * Makefile.in (c-decl.o): Depend on $(EXPR_H), not expr.h. - - * c-decl.c (init_decl_processing): Set lang_get_alias_set first thing. - -2000-05-31 Richard Henderson - - * config/ia64/ia64.c (sdata_symbolic_operand): Consider small - CONSTANT_POOL_ADDRESS_P addresses for .sdata. - * config/ia64/sysv4.h (SELECT_RTX_SECTION): New. - -2000-05-31 Richard Henderson - - * config/ia64/ia64-protos.h (ia64_expand_prediction): Remove. - * config/ia64/ia64.c (ia64_expand_prediction): Move code ... - (ia64_print_operand) [+]: ... here. Use current_output_insn. - * config/ia64/ia64.h (PRINT_OPERAND_PUNCT_VALID_P): New. - * config/ia64/ia64.md (all branch/call patterns): Use %+. - -2000-05-31 Richard Henderson - - * ifcvt.c (cond_exec_process_insns): Don't ever ignore clobbers. - -2000-05-31 Richard Henderson - - * ifcvt.c (merge_if_block): Be prepared for JOIN to have no - remaining edges. - (find_if_block): Allow THEN with no outgoing edges. - * flow.c (merge_blocks_nomove): Remove a barrier not following - a jump as well. - -2000-05-31 Richard Henderson - - * flow.c (propagate_block): Move initialization of mem_set_list ... - (init_propagate_block_info): ... here. Also track blocks with - no successors; don't scan insns if ! PROP_SCAN_DEAD_CODE. - -2000-05-31 Richard Henderson - - * jump.c (jump_optimize_1): Revert 05-18 change. - -2000-05-31 Mark Mitchell - - * invoke.texi: Remove documentation for -fguiding-decls. - -2000-05-31 Richard Henderson - - * configure.in: Fix typo last change. - -2000-05-31 Philipp Thomas - - * configure.in (enable-nls): Enable if build == host, i.e. when - not building a canadian cross compiler. - (enable-maintainer-mode): Added for use with i18n. - * aclocal.m4 (AM_GNU_GETTEXT): Only build catalogs that are a - cross section of ALL_LINGUAS and LINGUAS. - * configure: Rebuild. - -2000-05-31 Bruce Korb - - * fixinc/check.tpl: rework to use test result tree - * fixinc/Makefile.in: change invocation of check script - * fixinc/check.diff: No longer needed - * fixinc/fixincl.x: regenerate - * fixinc/inclhack.def: add new tests - * fixinc/tests/base/arch/i960/archI960.h: New test result - * fixinc/tests/base/curses.h: modified test result - * fixinc/tests/base/stdio.h: ditto - * fixinc/tests/base/time.h: ditto - * fixinc/tests/base/sys/asm.h: ditto - * fixinc/tests/base/sys/stat.h: ditto - * fixinc/tests/base/sys/wait.h: ditto - -Wed May 31 13:17:20 2000 Philippe De Muyter - - * except.c (clear_function_eh_region): Do not free NULL. - -Wed May 31 08:07:52 2000 Richard Kenner - - * Makefile.in (c-decl.o): Depend on rtl.h and expr.h. - * alias.c (struct alias_entry): alias_set is HOST_WIDE_INT. - (REG_BASE_VALUE): Remove unneeded cast to unsigned. - (get_alias_set_entry): ALIAS_SET arg is HOST_WIDE_INT. - (find_base_decl): New function, from c_find_base_decl in c-common.c. - (new_alias_set): Moved from tree.c; return is HOST_WIDE_INT. - (get_alias_set): Likewise. - Major rework to do more things and allow language-specific code - to just handle special-cases. - (record_alias_subset): Args are HOST_WIDE_INT. - (record_component_alias): Local vars are HOST_WIDE_INT. - Don't handle COMPLEX_EXPR. - (get_varargs_alias_set): Moved from builtins.c. - (get_frame_alias_set): New function. - * builtins.c (expand_builtin_return_address): Use frame alias set. - (expand_builtin_setjmp, expand_builtin_longjmp): Use alias set - for setjmp buffer. - (get_memory_rtx): Rework to use set_mem_attributes. - (get_varargs_alias_set): Deleted from here. - * c-common.c (c_apply_type_quals_to_decl): Alias sets now HOST_WIDE_INT. - (c_find_base_decl): Deleted from here. - (c_get_alias_set): Remove many cases and rework to just handle - C-specific cases. - * c-common.h (c_get_alias_set): Returns HOST_WIDE_INT. - * c-decl.c (rtl.h, expr.h): Now included. - (init_decl_processing): Call record_component_aliases on array types. - (grokdeclarator): Likewise. - Set TREE_ADDRESSABLE for all fields that are not bitfields. - * c-typeck.c (common_type): Call record_component_aliases for array. - * caller-save.c (setup_save_areas): Rework register loop for unsigned. - Set all save areas to the frame alias set. - * calls.c (initialie_argument_information): Call set_mem_attributes. - (compute_argument_addresses, expand_call): Likewise. - * explow.c (set_mem_attributes): New function. - (stabilize): Use MEM_COPY_ATTRIBUTES and force_reg. - * expr.c (struct move_by_pieces): Remove {to,from}_{struct,readonly}. - LEN and OFFSET now HOST_WIDE_INT. - (clear_by_pieces): Similar changes. - (move_by_pieces): LEN now HOST_WIDE_INT; don't set deleted fields. - (move_by_pieces_ninsns): Now returns unsigned HOST_WIDE_INT. - (move_by_pieces_1): Don't use deleted fields, use MEM_COPY_ATTRIBUTES. - (clear_by_pieces_1): Likewise. - (emit_push_insn): Call set_mem_attributes. - (expand_expr, case INDIRECT_REF): Likewise. - (expand_expr, case VAR_DECL): Call change_address. - * expr.h (ADD_PARM_SIZE, SUB_PARM_SIZE): Use host_integerp and - tree_low_cst. - (get_varargs_alias_set, get_frame_alias_set): New decls. - (record_base_value, record_alias_subset, lang_get_alias_set): Likewise. - (new_alias_set, set_mem_attributes): Likewse. - * function.c (struct temp_slot): ALIAS_SET is HOST_WIDE_INT. - (assign_stack_temp_for_type): Likewise. - Can split slot even if alias set since can copy. - Set MEM_ALIAS_SET and MEM_SET_IN_STRUCT_P. - (assign_temp): Use host_integerp and tree_low_cst. - (put_var_into_stack): Properly handle SAVE_EXPR. - (put_addressof_into_stack): Likewise. - (assign_parms): Call set_mem_attributes. - Delete #if 0 code. - (fix_lexical_address): Put reference to chain into frame alias set. - (expand_function_start): Call set_mem_attributes. - * integrate.c (expand_inline_function): Likewise. - * recog.c (adj_offsettable_operand): Use MEM_COPY_ATTRIBUTES. - * regmove.c (try_apply_stack_adjustment): Likewise. - * reload.c (push_reload, make_memloc): Likewise. - * reload1.c (alter_reg): Make alias sets for spilled pseudos. - * rtl.def (MEM): Update comment. - * rtl.h (MEM_ALIAS_SET): Now uses XCWINT. - (move_by_pieces): Change length to HOST_WIDE_INT. - (record_base_value, record_alias_subset): Delete from here. - * stmt.c (expand_decl): Call set_mem_attributes. - * stor-layout.c (finish_record_layout): Call record_component_aliases.i - * toplev.c (compile_file): Call init_alias_once earlier. - * tree.c (lang_get_alias_set, get_alias_set, new_alias_set): Deleted - from here: now in alias.c. - * tree.h (struct tree_type): alias_set is HOST_WIDE_INT. - (struct tree_decl): Likewise. - (get_alias_set, new_alias_set, lang_get_alias_set): Deleted from here. - * varasm.c (make_function_rtl, make_decl_rtl): Call set_mem_attributes. - (output_constant_def, force_const_mem): Likewise. - - * flow.c (propagate_block): If block has no successors, stores to - frame are dead if not used. - -2000-05-31 Nathan Sidwell - - * stmt (expand_end_case): Reorder conversion sequence for jump - table to avoid extra truncations. - -Wed May 31 01:31:42 2000 Jeffrey A Law (law@cygnus.com) - - * ifcvt.c (cond_exec_process_if_block): Do nothing if the last insn - in the block is more than just a simple conditional branch. - (noce_process_if_block): Similarly. - -Tue May 30 22:25:57 2000 Alexandre Oliva - - * optabs.c (prepare_float_lib_cmp): Protect *px and *py from - queue. - -2000-05-30 Michael Meissner - - * dwarf2out.c (dwarf2out_frame_debug_expr): Ignore HIGH - instructions. Treat LO_SUM operations as loading the full integer - constant. - -2000-05-30 Richard Henderson - - * combine.c (get_pos_from_mask): Test exact_log2 result as signed. - -2000-05-30 Richard Henderson - - * bb-reorder.c (emit_jump_to_block_after): Protect use of HAVE_return. - -2000-05-30 Bruce Korb - - * fixinc/tests/*: Added expected result files for fixinc's make check - * fixinc/fixfixes(char_macro_*_fix): Restore original algorithm - -2000-05-30 Richard Henderson - - * config/alpha/alpha.md (*setne_internal): Use match_operator - instead of working down from insn. - -2000-05-30 Kaveh R. Ghazi - - * invoke.texi (-Wtraditional): Update WRT function macros. - -Tue May 30 09:57:32 2000 Philippe De Muyter - - * except.c (free_exception_table): Do not free NULL. - -2000-05-29 Zack Weinberg - - * cpplib.c (do_if): Don't save and restore only_seen_white here. - * cppexp.c (_cpp_parse_expr): Save and restore only_seen_white - and skipping here. - -2000-05-29 Richard Earnshaw (rearnsha@arm.com) - - * flow.c (mark_used_reg): If a register is unconditionally live, - remove any conditional death information. - -2000-05-29 Richard Henderson - - * final.c (current_output_insn): New. - (final_scan_insn): Set it. - * output.h: Declare it. - -2000-05-29 Richard Henderson - - * stor-layout.c (finalize_record_size): Fix typo. - - * jump.c (redirect_jump): Don't emit NOTE_INSN_FUNCTION_END - if nlabel is null. - -2000-05-29 Zack Weinberg - - * cpplib.h (cpp_reader): Remove if_stack. Change - potential_control_macro to a cpp_hashnode *. Add skipping flag. - * cpphash.h (struct ihash): Change control_macro to a - cpp_hashnode * and shorten name to cmacro. - Add NEVER_REINCLUDE constant. - - * cppfiles.c (redundant_include_p): Drop cpp_reader argument. - Examine the cmacro node directly, no need to call cpp_defined. - (_cpp_execute_include, read_include_file): Set cmacro to - NEVER_REINCLUDE, not U"". - * cpplex.c (cpp_push_buffer): Don't set new->if_stack. - (cpp_get_token): If pfile->skipping is true, discard text and - keep scanning until we hit a directive; don't expand macros. - - * cpplib.c (struct if_stack): Remove if_succeeded, add - was_skipping. Change control_macro to a cpp_hashnode * and - shorten name to cmacro. Remove typedef IF_STACK. - (parse_ifdef), detect_if_not_defined): Return a cpp_hashnode *. - (conditional_skip, skip_if_group, - consider_directive_while_skipping): Delete. - (push_conditional): New. - (_cpp_handle_directive): Don't process directives other than - conditionals if we are skipping. - - (do_ifdef, do_ifndef, do_if, do_else, do_elif, do_endif): - Update to new scheme. - (validate_else): Skip rest of line here, unconditionally. - (_cpp_unwind_if_stack): The stack is per-buffer. Force - pfile->skipping off. - - (all): Remove `scare quotes' from error messages. - -2000-05-29 Richard Henderson - - * function.c (emit_return_into_block): New line_note arg; emit it. - (thread_prologue_and_epilogue_insns): Attempt to locate a line note - for the close brace to accompany HAVE_return. Move all line notes - following the epilogue to before the NOTE_INSN_EPILOGUE_BEG. - -2000-05-29 Richard Henderson - - * longlong.h [__alpha] (count_leading_zeros): New. - (count_trailing_zeros): New. - (COUNT_LEADING_ZEROS_0): New. - - * config/alpha/alpha.c (alpha_zero_comparison_operator): New. - (alpha_split_conditional_move): New. - * config/alpha/alpha-protos.h: Prototype them. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - (CPP_CPU_DEFAULT_SPEC): Fix typo for EV67. - * config/alpha/alpha.md: Update ffs cix commentary. - (*ze_and_ne): New. - (*nabssf2, *nabsdf2): New. - (*mov[qhsd]icc_internal): Use add_operand. - (if_then_else constant splitters): New. - (*cmp_sadd_di, *cmp_sadd_si, *cmp_sadd_sidi): New. - (*cmp_ssub_di, *cmp_ssub_si, *cmp_ssub_sidi): New. - -2000-05-29 Richard Henderson - - * combine.c (force_to_mode) [MINUS]: Convert subtraction from - a constant to NEG or NOT when conditions allow. - - * combine.c (combine_simplify_rtx): Don't create an if_then_else - unless both args are general_operand. Don't canonicalize plus - to ior unless it helps. - - * toplev.c (rest_of_compilation): Set no_new_pseudos after flow1; - instead track register_life_up_to_date. Toggle no_new_pseudos - around if_convert. - -2000-05-28 Geoff Keating - - * config/rs6000/rs6000.c (output_cbranch): Escape '%' characters - so output_operand doesn't see them. - -Sun May 28 18:37:07 2000 Clinton Popetz - - * lcm.c (make_preds_opaque): Fix comment. - (optimize_mode_switching): Use NORMAL_MODE instead of - MODE_USES_IN_EXIT_BLOCK. Change leftover instance of - FP_MODE_NONE to no_mode. Rename MODE_AT_ENTRY to NORMAL_MODE. - Handle insertions before an existing NOTE_INSN_BASIC_BLOCK. - * tm.texi (OPTIMIZE_MODE_SWITCHING): Refer to NORMAL_MODE. - (MODE_USES_IN_EXIT_BLOCK): Delete. - (MODE_AT_ENTRY) Rename to NORMAL_MODE. - * sh.h (MODE_USES_IN_EXIT_BLOCK): Delete. - (MODE_AT_ENTRY): Rename to NORMAL_MODE. - (MODE_NEEDED): Don't look for USE. - (EPILOGUE_USES): Define. - -Sun May 28 23:26:59 2000 Philippe De Muyter - - * mklibgcc.in (all): Variable initialized to `libgcc'. - -2000-05-28 Gabriel Dos Reis - - * toplev.h (skip_leading_substring): New macro. - * toplev.c (decode_f_option): Use skip_leading_substring instead - of strncmp. - (decode_W_option): Likewise. - -2000-05-28 Nick Clifton - - * tm.texi (CONDITIONAL_REGISTER_USAGE): Document that it can - modify reg_names. - -2000-05-28 Richard Henderson - - * regclass.c (record_operand_costs): Protect reg_changes_size - with CLASS_CANNOT_CHANGE_SIZE. - - * loop.c (instrument_loop_bct): Set JUMP_LABEL on the new insn. - -2000-05-28 Richard Henderson - - * function.c (diddle_return_value): A pcc-style struct return - returns a pointer. - -2000-05-27 Zack Weinberg - - * cppfiles.c: Read files in, using mmap if possible, then - prescan them separately. - (read_file, read_with_read): New functions. - * cpplex.c: Don't define UCHAR_MAX. - (_cpp_read_and_prescan): Rename to _cpp_prescan. Don't read - the file here. - - * cppinit.c (handle_option): Automatically define __cplusplus, - __OBJC__, __ASEEMBLER__, _LANGUAGE_FORTRAN here when we see - the respective -lang switch. - - * cpphash.h (enum node_type, struct hashnode, _cpp_lookup - prototype): Move to... - * cpplib.h: ... here. Rename struct hashnode to struct - cpp_hashnode and give it a typedef. Rename _cpp_lookup to - cpp_lookup. Add 'fe_value' slot, a union tree_node *. - -2000-05-27 Geoffrey Keating - - * config/rs6000/rs6000.md (movsi): Constify 'name'. - - * regclass.c [CLASS_CANNOT_CHANGE_SIZE] - (class_can_change_size): New variable. - (reg_changes_size): New variable. - (init_reg_sets_1): Initialize class_can_change_size. - (record_operand_costs): Remove subreg_changes_size. - Don't pass it around. Instead update reg_changes_size. - (regclass): Initialize and free reg_changes_size. If a register - changes size, don't preference it to a class that contains - registers that can't change size. - (record_reg_classes): Don't look at subreg_changes_size. - -2000-05-27 Richard Henderson - - * print-rtl.c (reg_names): Remove const. - * regclass.c (reg_names): Likewise. - * regs.h (reg_names): Likewise. - * hard-reg-set.h (reg_names): Likewise. - -2000-05-27 Richard Henderson - - * config/rs6000/rs6000.md (untyped_call): Use GEN_CALL. - -2000-05-27 Richard Henderson - - * config/alpha/alpha.c (alpha_does_function_need_gp): Test - TARGET_PROFILING_NEEDS_GP in the if, instead of with an ifdef. - (alpha_expand_prologue): Emit prologue_mcount if needed. - * config/alpha/alpha.h (TARGET_PROFILING_NEEDS_GP): Default to 0. - * config/alpha/alpha.md (prologue_mcount): New. - * config/alpha/linux.h (FUNCTION_PROFILER): Remove. - (TARGET_PROFILING_NEEDS_GP): Undef before redefining. - * config/alpha/netbsd.h: Likewise. - -2000-05-27 Richard Henderson - - * config/alpha/elf.h (SELECT_SECTION): Mirror Kenner's May 19 - change to config/elfos.h. - -2000-05-27 Richard Henderson - - * Makefile.in (resource.o): Depend on except.h. - * except.h (output_exception_table_data): Prototype. - * genconfig.c (gen_peephole2): Prototype. - * genemit.c (main): Include ggc.h. - * genoutput.c: Revert parts of last change: include errors.h - (main): Set progname. - * recog.c: Include hard-reg-set.h before recog.h. - * resource.c: Include except.h. - - * config/alpha/alpha-protos.h (alpha_arg_info_reg_val): Protect - with RTX_CODE. - (alpha_write_linkage): Protect with BUFSIZ. - (alpha_need_linkage): Update prototype. - * config/alpha/alpha.c (function_arg): Move VMS code here. - (alpha_links_base): Remove. - (alpha_links): New. - (mark_alpha_links_node, mark_alpha_links): New. - (alpha_write_one_linkage): New. - (alpha_need_linkage): Use a splay tree. Build the linkage symbol. - (alpha_write_linkage): Use splay_tree_foreach. - * config/alpha/alpha.md (call_vms): Use alpha_need_linkage - to get the linkage symbol. - (call_value_vms): Likewise. - * config/alpha/elf.h (output_file_directive): Remove decl. - (ctors_section, dtors_section): Prototype. - (sbss_section, sdata_section): Prototype. - * config/alpha/vms.h (FUNCTION_ARG): Remove. - (readonly_section, link_section, literals_section): Prototype. - (ctors_section, dtors_section): Prototype. - (vms_valid_decl_attribute_p): Remove decl. - (alpha_arg_type, alpha_arg_info_reg_val): Likewise. - -2000-05-27 Geoff Keating - - * reload.c (get_secondary_mem): Don't widen floating-point modes. - - * combine.c (subst): Honor CLASS_CANNOT_CHANGE_SIZE when - substituting the REG in a (subreg:X (reg:Y ...)). - -2000-05-28 Neil Booth - - * cpplex.c (_cpp_lex_line): Merge vertical space. Flag - first token of a line BOL. Update EOF code for this. - Remove illegal directive check - it appears in the (not - yet committed) caller. - * cpplib.h (BOL): New flag. - -2000-05-28 Neil Booth - - * cpplex.c (_cpp_init_toklist): No comment space to initialize. - (_cpp_free_toklist): No comment space to free. - (expand_comment_space): Remove. - (save_comment_space): Place the comment in the current token and - not in a separate comment space. - (_cpp_lex_line): Save comments during plain code and #define - directives only. - * cpplib.h (struct _cpp_toklist): Remove comment space. - -2000-05-28 Neil Booth - - * cppexp.c (parse_assertion): Supply extra argument to - _cpp_init_toklist. - * cpplib.c (do_assert, do_unassert): Similarly. - * cpphash.h (_cpp_init_toklist) Update. - (_cpp_expand_token_space): New. - (DUMMY_TOKEN, NO_DUMMY_TOKEN): New. - * cpplex.c (_cpp_init_toklist): New argument. - (parse_string2): New argument multiline_ok. - (spell_token): Take a const cpp_token *. - (INIT_NAME): Replace with INIT_TOKEN_NAME. Update tokens_used. - (SPELL_ macros): Replace with enum. - (expand_token_space): Replace with _cpp_expand_token_space. - Take COUNT argument. - (IS_DIRECTIVE): Update. - (_cpp_lex_line): Update token structure before parsing number. - Don't assume start at beginning of token list. - (save_comment): Use INIT_TOKEN_NAME. - -2000-05-27 Zack Weinberg - - * configure.in (stage1_warn_cflags): Add -Wstrict-prototypes - -Wmissing-prototypes. - * configure: Regenerate. - * gcc.texi: Remove explanation of MD_CALL_PROTOTYPES. - - * builtins.c, calls.c: Change all instances of gen_call_* or - gen_sibcall_* to GEN_CALL_* and GEN_SIBCALL_*. - * calls.c (struct_value_size_rtx): Separate definition from - initialization to avoid unused variable warning. - - * genflags.c (gen_macro): New function. - (gen_proto): Call it for gen_call_* and gen_sibcall_*. - (gen_nonproto): Delete. - (gen_insn): Put all insns on the same obstack. - (main): Generate prototypes for everything unconditionally. - - * configure.in: Add AC_CHECK_TYPE(ssize_t). Remove commented - out check for wchar_t. - * acconfig.h: Add template for ssize_t. Remove @TOP@. - * system.h: Add infrastructure for defining missing - TYPE_MAX/TYPE_MIN macros. Use it to provide fallback - definitions of UCHAR_MAX and SSIZE_MAX. - * configure: Regenerate. - * config.in: Regenerate. - - * Makefile.in (libgcc2.ready): Rename to libgcc.ready. - Depend on $(LANGUAGES) as well as $(GCC_PATCHES) and fixed - headers. - (clean): No need to delete libgcc1.a, libgcc1-asm.a, - libgcc2.a, or libgcc1.null. - -2000-05-27 Richard Henderson - - * Makefile.in (recog.o): Don't depend on resource.h. - * recog.c: Don't include resource.h. - (recog_last_allowed_insn): Remove. - (recog_next_insn): Remove. - (struct peep2_insn_data): New. - (peep2_insn_data, peep2_current): New. - (peep2_next_insn): New. - (peep2_regno_dead_p, peep2_reg_dead_p): New. - (peep2_find_free_register): New. - (peephole2_optimize): Track life information by insn as we go. - * recog.h: Update declarations. - * resource.c (find_free_register, reg_dead_p): Remove. - * resource.h: Remove their declarations. - * toplev.c: Include hard-reg-set.h before recog.h. - - * genconfig.c (max_insns_per_peep2): New. - (gen_peephole2): New. - (main): Call it. - * genemit.c (output_peephole2_scratches): Generate calls to - peep2_find_free_register; adjust surrounding code. - (main): Have insn-emit.c include hard-reg-set.h before recog.h. - * genrecog.c (change_state): Don't track last_insn. - (write_action): Write into *_pmatch_len before accepting. - (write_tree): Adjust peephole2_insns and subroutines to match. - - * config/i386/i386.md (all peepholes): Use peep2_regno_dead_p. - - * config/alpha/alpha.c (hard_fp_register_operand): Mind the mode. - (hard_int_register_operand): New. - * config/alpha/alpha-protos.h: Declare it. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - * config/alpha/alpha.md (peep2 patterns): Use hard_int_register_operand - as needed; use peep2_reg_dead_p instead of dead_or_set_p. - -2000-05-27 Richard Henderson - - * function.c (thread_prologue_epilogue_insns): Don't move the - line note at the head of the chain. Only force a lineno note - before the end of block 0. - -2000-05-27 Richard Henderson - - * gensupport.c (collect_insn_data): Record the maximum number - of alternatives, not the last seen. - - * genoutput.c: Don't include errors.h. - (struct data): Add lineno member. - (have_error): New. - (scan_operands): Use message_with_line instead of error. - (validate_insn_alternatives): Likewise. - (gen_insn): Accept and store the pattern's line number. - (gen_peephole, gen_expand, gen_split): Likewise. - (main): Don't set progname. Pass line_no to gen_foo. - -2000-05-27 Richard Henderson - - * config/d30v/d30v.c (d30v_print_operand): Handle ':'. - * config/d30v/d30v.h (PRINT_OPERAND_PUNCT_VALID_P): Accept ':'. - * config/d30v/d30v.md (attr predicable): New. - (all insn patterns): Mark non-predicable patterns; use %: on the rest. - (andsi3*): Unify into one pattern. - (iorsi3*, xorsi3*): Likewise. - (peephole2 patterns): Use peep2_reg_dead_p; verify not a - conditional return. - (old cond_exec patterns): Remove. - (define_cond_exec): New. - -Sat May 27 11:01:27 2000 Richard Kenner - - * tree.h (TREE_CODE_LENGTH): New macro. - * c-common.c (c_find_base_decl): Use it. - * expr.c (safe_from_p): Likewise. - * print-tree.c (print_node): Likewise. - * tree.c (make_node, copy_node, get_identifier): Likewie. - (first_rtl_op, contains_placeholder_p, substitute_in_expr): Likewise. - (build, build_nt, build_parse_node, simple_cst_equal): Likewise. - * fold-const.c (make_range): Likewise. - (fold): Likewise; also use first_rtl_op. - * c-iterate.c (collect_iterators): Use first_rtl_op. - * calls.c (calls_function_1): Likewise; also rename TYPE to CLASS. - Use IS_EXPR_CODE_CLASS. - (preexpand_calls): Likewise. - * ggc-common.c (ggc_mark_trees): Rework to use first_rtl_op - and TREE_CODE_LENGTH. - * stmt.c (warn_if_unused_value): If no operands, no unused value. - -2000-05-26 Geoffrey Keating - - * config/rs6000/rs6000.md (movsi_internal1): Use '%a1' rather - than '%1(%*)'. - (movdi_internal64): Likewise. - - * config/rs6000/rs6000.md: Correct order of operands for DImode - boolean patterns. - - * config/rs6000/rs6000.c (boolean_or_operator): New function. - * config/rs6000/rs6000-protos.h (boolean_or_operator): Prototype it. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_or_operator. - * config/rs6000/rs6000.md: Use boolean_or_operator instead of - boolean_operator for the boolean patterns without NOTs. - - * config/rs6000/rs6000.c (reg_or_logical_cint_operand): Rename - from reg_or_u_cint_operand. Change comment and behavior. - (logical_operand): Clean up, add assertion. - (non_logical_cint_operand): Also check for - reg_or_logical_cint_operand. - * config/rs6000/rs6000.h (PREDICATE_CODES): Update. - * config/rs6000/rs6000.md (iorsi3): Use reg_or_logical_cint_operand - in the expander. - (xorsi3): Likewise. - (iordi3): Likewise. - (xordi3): Likewise. - -2000-05-26 Mark Mitchell - - * tree.h (struct record_layout_info): Rename to (struct - record_layout_info_s). - * stor-layout.c (start_record_layout): Replace - `record_layout_info' with `record_layout_info_s'. - -2000-05-26 Richard Earnshaw - - * flow.c (find_label_refs): New function. - (find_basic_blocks_1): Call it for each alternative of a call - placeholder. - -2000-05-26 Richard Earnshaw - - * ifcvt.c (cond_exec_get_condition): Set test_if to the SET_SRC - of get_pc. - -2000-05-25 Richard Henderson - - * config/alpha/alpha.c (alpha_comparison_operator): Don't be - so strict about DImode. - (alpha_swapped_comparison_operator): Likewise. - * config/alpha/alpha.md (*setne_internal): Name it. Allow - any integer output mode. - (*setcc_internal): Likewise. - (*setcc_swapped_internal): Likewise. - (*movdicc_internal, *movdicc_lbc, *movdicc_lbs): Name them. - (*mov[qhs]icc_internal): New. - (*mov[qhs]icc_lbc, *mov[qhs]icc_lbs): New. - -2000-05-25 J. David Anglin - - * vax.h (CPP_SPEC): Define __GFLOAT and GFLOAT when -mg is specified. - -2000-05-25 Richard Henderson - - * bb-reorder.c (reorder_block_def): Reorder elements for size. - Remove add_jump; add next; replace flags with visited. - (rbd_init): Remove. - (REORDER_BLOCK_HEAD, REORDER_BLOCK_VISITED): Remove. - (REORDER_BLOCK_FLAGS, REORDER_BLOCK_INDEX): Remove. - (REORDER_BLOCK_ADD_JUMP, REORDER_BLOCK_EFF_HEAD): Remove. - (REORDER_BLOCK_EFF_END, REORDER_BLOCK_SCOPE): Remove. - (RBI): New. - (reorder_index, reorder_last_visited): Remove. - (skip_insns_after_block): Rewrite to use a switch. - (get_common_dest): Remove. - (chain_reorder_blocks): Remove. - (record_effective_endpoints): Split out from reorder_basic_blocks. - (make_reorder_chain): Likewise. Loop until all blocks are placed. - (make_reorder_chain_1): Renamed from old make_reorder_chain. - Only construct the reorder chain, do not move insns. Try harder - to tail recurse. - (label_for_bb, emit_jump_to_block_after): New. - (fixup_reorder_chain): Use them. Do bulk block movement. Examine - and adjust the jump insns appropriately. Fixup basic_block_info. - (verify_insn_chain): Always define. - (relate_bbs_with_scopes): Call xmalloc, not xcalloc. Fix thinko - in allocation size. - (make_new_scope): Don't write zeros to calloc'd space. - (build_scope_forest): Rely on xrealloc to DTRT. - (reorder_basic_blocks): Don't build loop nest. Don't fail if - profile_arc_flag. Streamline EH test. - - * flow.c (redirect_edge_succ, redirect_edge_pred): New. - * basic-block.h: Declare them. - -2000-05-25 Alexandre Oliva - - * emit-rtl.c (reset_used_decls): New function. - (unshare_all_rtl_again): Call it. - -2000-05-25 Zack Weinberg - - * cpplex.c (maybe_macroexpand): Warn about function-like - macros used in non-function context, if -Wtraditional. - -2000-05-25 Mark Mitchell - - * recog.c (peephole2_optimize): Use INSN_P. - -2000-05-25 Richard Henderson - - * ifcvt.c (seq_contains_jump): New. - (noce_try_store_flag_constants): Use it to fail conversion. - (noce_try_store_flag_inc, noce_try_store_flag_mask): Likewise. - -2000-05-25 Mark Mitchell - - * except.h (can_throw): Declare it. - * except.c (can_throw): Give it external linkage. - * resource.c (find_dead_or_set_registers): Use can_throw. - -2000-05-25 Richard Henderson - - * flow.c (mark_set_1): Don't record conditionally dead memory. - -2000-05-25 Jan Hubicka - - * combine.c (try_combine): Use any_condjump_p, any_uncondjump_p - and pc_set at the place of simplejump_p and condjump_p. - * cse.c (record_jump_equiv): Likewise. - * emit-rtl.c (emit): Likewise. - * explow.c (find_next_ref): Likewise. - * flow.c (tidy_fallthru_edge): Likewise. - (init_propagate_block_info): Likewise. - * gcse.c (delete_null_pointer_checks): Likewise. - * ifcvt.c (cond_exec_get_condition, noce_get_condition, - dead_or_predicable): Likewise. - * integrate.c (copy_insn_list): Likewise. - * loop.c (scan_loop, verify_dominator, find_and_verify_loops, - for_each_insn_in_loop, check_dbra_loop, get_condition, - insert_bct, load_mems): Likewise. - * resource.c (find_dead_or_set_registers): Likewise. - * sibcalls.c (simplejump_p): Likewise. - * unroll.c (copy_loop_body, reg_dead_after_loop): Likewise. - -2000-05-25 David Edelsohn - - * rs6000.c (expand_block_move): Add 64-bit PowerPC doubleword move - to STRING case. Use doubleword STRING move for TARGET_POWERPC64 - when unaligned. - * rs6000.h (CONST_OK_FOR_LETTER_P, 'J'): unsigned HOST_WIDE_INT. - (RETURN_ADDR_RTX): Use COUNT and FRAME, not count and frame. - (LEGITIMIZE_RELOAD_ADDRESS): unsigned HOST_WIDE_INT high. - * rs6000.md: Name various internal patterns. - -2000-05-25 Jan Hubicka - - * jump.c (invert_exp_1): Remove first argument, use pc_set - to get the expression. - (redirect_exp): Make static; redirect only the pc_set expression, - remove first argument. - (invert_exp): Remove first argument, make static. - (jump_optimize): Use any_condjump_p, any_uncondjump_p and - any_onlyjump at most places where we originaly did condjump_p - and simplejump_p. - (jump_back_p, follow_jumps, thread_jumps): Likewise. - (delete_barrier_succesors): Use pc_set. - (invert_jump_1, invert_jump, redirect_jump_1, redirect_jump): Update - calls of invert_exp and redirect_exp. - * rtl.h (redirect_exp, invert_exp): Remove. - * unroll.c (copy_loop_body): Use invert_jump and redirect_jump. - -2000-05-25 Richard Henderson - - * stmt.c (expand_end_bindings): Fix thinko last change. - -2000-05-25 Andrew MacLeod - Andrew Haley - - * except.c (func_eh_entry): Add emitted field. - (new_eh_region_entry): Set emitted field to 0; - (output_exception_table_entry): Only emit previously un-emitted data, - and send it to the eh_data section. - (output_exception_table): Break out common parts. Output - exception table for entire compilation unit to eh_data section. - (output_exception_table_data): Common parts of output_exception_table. - Send output to eh_data section. - (output_function_exception_table): Output exception table data for - a single function to eh_data section. - (free_exception_table): New external to free the table. - * except.h (free_exception_table): Add prototype. - (output_function_exception_table): Add prototype. - * final.c (final_end_function): Output function exception table - for IA64_UNWIND_INFO. - (final_scan_insn): Emit any unwind directives for an insn. - - * frame-dwarf2.c: New file containing all DWARF 2 specific code - from frame.c. - * frame.c: Remove all DWARF 2 specific code. - * config/ia64/frame-ia64.c: New file. - (gthread_stuff): Make all gthread available with - IA64_UNWIND_INFO. - (dwarf_fde): Define an IA64 struct for dwarf_fde. - (__register_frame_info, __register_frame): Move to common area of file. - (__register_frame_info_table, __register_frame_table): Move to common i - area. - (__deregister_frame_info, __deregister_frame): Move to common area. - (__frame_init, find_fde): New versions for IA64_UNWIND_INFO. - (read_uleb128): New version for ia64. - (get_unwind_record): Read the next IA-64 unwind record. - (read_R_record): Read a region header record. - (process_a_b_reg_code): X record helper. - (read_X_record): Read an X format record. - (read_B_record): Read a B format record. - (P3_record_types): List of record types matching the P3 format. - (P7_record_types): List of record types matching the P7 format. - (P8_record_types): List of record types matching the P8 format. - (read_P_record): Read a P format record. - (init_ia64_reg_loc): Set default fields for a register. - (init_ia64_unwind_frame): Set defaults for all register records. - (execute_one_ia64_descriptor): Execute one descriptor record. - (rse_address_add): Calculate the position of a local reg in memory. - (normalize_reg_loc): Turn a location descriptor into a memory address. - (maybe_normalize_reg_loc): Only normalize a descriptor if it falls - within a specified PC offset range. - (get_real_reg_value): Given a register location, retrieve its value. - (set_real_reg_value): Change the value of a register location. - (copy_reg_value): Copy reg values, if needed. - (copy_saved_reg_state): Copy all registers that need to be copied. - (process_state_between): Normalize all frame register records that - fall within the specified PC range. - (frame_translate): Take a processed frame description, and turn - everything into addresses. - (build_ia64_frame_state ): Find and create frame state record for a PC. - (get_personality): Get the personality routine for a given frame. - (get_except_table): Get the exception table for a given frame. - (record_name): Unwind record names for debugging. - (print_record): Print and unwind record. - (print_all_records): Print an entire unwind image. - (__ia64_backtrace): Print a backtrace. - (ia64_backtrace_helper): New function. - (__register_frame_info_aux): New function. - * config/ia64/crtend.asm (__do_frame_setup_aux): New function. - - * frame.h (enum unw_record_type): New unwind record types. - (struct unw_p_record, unw_b_record, unw_x_record) : New unwind records. - (struct unw_r_record, unwind_record): New unwind record structs. - (struct unwind_info_ptr): Unwind information layout. - (IA64_UNW_LOC_TYPE_*): Macros for different types for location - descriptors. - (struct ia64_reg_loc): Register location description. - (struct ia64_frame_state): Location of all registers in a frame. - (struct object): Add pc_base and fde_end for IA64_UNWIND_INFO. - * libgcc2.c (__ia64_personality_v1): Personality routine. - (__calc_caller_bsp): Calculate the bsp register for the caller's - frame. - (ia64_throw_helper): Figure out who to return to and set up the - registers. - (__throw): Throw routine. - - * output.h (assemble_eh_align, assemble_eh_label): New functions - to generate EH info where we want it. - (assemble_eh_integer): New function. - * toplev.c (compile_file): Output module level exception table for - non-ia64 targets. - (main): Set exceptions_via_longjump and flag_new_exceptions based - on IA64_UNWIND_INFO too. - - * varasm.c (assemble_eh_label): Generate a label via - ASM_OUTPUT_EH_LABEL if it has been specified. - (assemble_eh_align): Generate an alignment directive via - ASM_OUTPUT_EH_ALIGN if it has been specified. - (assemble_eh_label): Generate an integer value via - ASM_OUTPUT_EH_type if they have been specified. - * config/ia64/ia64.c (rtx_needs_barrier): Add flushrs. - (ia64_init_builtins): Add __builtin_ia64_bsp - and __builtin_ia64_flushrs. - (ia64_expand_builtin): Add IA64_BUILTIN_BSP and - IA64_BUILTIN_FLUSHRS. - * config/ia64/ia64.h (ia64_builtins): Add IA64_BUILTIN_BSP and - IA64_BUILTIN_FLUSHRS. - - * config/ia64/ia64.md (flushrs): New insn to flush the register - stack. Add to unspec list. - - * config/ia64/crtbegin.asm (frame_object): Change size. - (__do_frame_setup_aux): New function. - * config/ia64/crtend.asm: call __do_frame_setup_aux. - * config/ia64/t-ia64 (LIB2ADDEH): Add. - * Makefile.in (LIB2ADDEH): Add. - (LIB2ADD): Use LIB2ADDEH. - -2000-05-24 Richard Henderson - - * recog.c (offsettable_address_p): If mode size is zero, assume - BIGGEST_ALIGNMENT. - -2000-05-24 J. David Anglin - - * configure.in: Check for -Wno-long-long option support and improve - handling of warning CFLAGS for stages 1 and 2. - * Makefile.in (WARN_CFLAGS): Move definition to configure.in. - * configure: Regenerate. - -Wed May 24 19:37:53 2000 Jeffrey A Law (law@cygnus.com) - - * gcc.texi: Remove contributor list. Instead include contrib.texi. - * contrib.texi: New file. - -Thu May 25 02:27:22 2000 J"orn Rennecke - - * loop.c (basic_induction_var): Avoid double recording of an increment. - -Thu May 25 02:19:27 2000 J"orn Rennecke - - * Back out this patch: - Tue Dec 7 19:22:06 1999 Richard Henderson - * loop.h (struct induction): Add multi_insn_incr. - * loop.c (basic_induction_var): New multi_insn_incr argument. - Set it if we search back through previous insns for the biv. - (record_biv): New multi_insn_incr argument; fill in struct induction. - (strength_reduce): Discard an iv with multiple bivs, any of - which require multiple insns to increment. - - * loop.c (check_insn_for_bivs): Remove bits copied from above patch. - -Thu May 25 02:09:10 2000 J"orn Rennecke - - * rtl.h (loc_mentioned_in_p): Declare. - * reload.c (loc_mentioned_in_p): Moved from here... - * rtlanal.c (loc_mentioned_in_p): to here. No longer static. - Fix loop increment for 'E' handling. - * loop.c (strength_reduce): When doing biv->giv conversion, - take multi-insn biv increments into account. - -2000-05-24 Jason Merrill - - * stmt.c (expand_end_bindings): Look through NOTEs to find a - BARRIER. - -2000-05-24 Mark Mitchell - - * calls.c (expand_call): Handle cleanups in tail-recursion - arguments analogously to cleanups in sibling calls. - -2000-05-24 Kaveh R. Ghazi - - * simplify-rtx.c: Rename macro SIGN_EXTEND to HWI_SIGN_EXTEND. - All callers changed. - -2000-05-24 Alexandre Oliva - - * expr.c (expand_assignment, store_expr, expand_expr, - expand_expr_unaligned): Set in_check_memory_usage while emitting - chkr_check_addr libcall. - -2000-05-24 Nick Clifton - - * fold-const.c (extract_muldiv): When constructing a - multiplier/divisor, do not expect const_binop to correctly - determine if overflow has occurred, so check explicitly. - -2000-05-24 Alexandre Oliva - - * c-decl.c (build_enumerator): Don't modify the value's type, - convert it. - -2000-05-24 Andreas Jaeger - - * mips.h (LINKER_ENDIAN_SPEC): Pass -EL to linker by default. - -2000-05-24 Eric Christopher - - * configure.in: Redefine inhibit_libc conditions. - * libgcc2.c: Remove inhibit_libc conditional define. - * configure: Regenerate. - -2000-05-24 Phil Edwards - - * configure.in: For --enable-languages=LIST, check for empty LIST. - * configure: Regenerate. - -2000-05-24 Lars Brinkhoff - - * pdp11.h (STACK_BOUNDARY): Define. - -2000-05-24 Jakub Jelinek - - * ifcvt.c (if_convert): Update life info globally. - -2000-05-24 Alexandre Oliva - - * emit-rtl.c (unshare_all_decls): New function. - (unshare_all_rtl): Call it. - -2000-05-23 Nick Clifton - - * configure.in: Treat 'strongarm' as if it were 'arm' when - determining cpu type. - - * configure: Regenerate. - - * config/arm/arm.c: Change 'char *' to 'const char *' for cases - where constant strings are involved. - - * config/arm/arm.h (arm_condition_codes): Change type to 'const - char *'. - - * config/arm/arm-protos.h: Change 'char *' to 'const char *' for - cases where constant strings are involved. - -Tue May 23 15:08:31 2000 Clinton Popetz - - * config/sh/sh.c (gen_far_branch, split_branches): Update - to reflect new prototypes for redirect_jump and invert_jump. - (sh_insn_length_adjustment): Get rid of const warnings. - -2000-05-23 Kazu Hirata - - * invoke.texi (Options for Debugging Your Program or GCC): Update - the names of dump files. - -Tue May 23 13:58:52 2000 Philippe De Muyter - - * configure.in (NO_MINUS_C_MINUS_O): Fix thinko in previous fix. - * configure: Regenerated. - -2000-05-23 Zack Weinberg - - * simplify-rtx.c (SIGN_EXTEND): New macro. - (simplify_unary_operation, simplify_binary_operation, - simplify_relational_operation): Use SIGN_EXTEND. Make low - halves of (low, high) pairs unsigned if they weren't already. - (simplify_ternary_operation): Cast INTVAL to unsigned before - comparing to a MODE_BITSIZE. - -2000-05-23 Kaveh R. Ghazi - - * aclocal.m4 (gcc_AC_CHECK_DECL, gcc_AC_CHECK_DECLS): New macros - rewritten from the internals of gcc_AC_NEED_DECLARATION{S}. - - * configure.in (gcc_AC_CHECK_DECLS): Call this instead of - gcc_AC_NEED_DECLARATIONS. - - * dwarfout.c: Don't prototype time(). - - * gcc.c: Check HAVE_DECL_* instead of NEED_DECLARATION_*. - - * system.h: Likewise. - - * toplev.c: Likewise. - -2000-05-23 Zack Weinberg - - * c-decl.c (pushdecl): Invert sense of test for non-global types. - -Tue May 23 18:11:42 2000 J"orn Rennecke - - * reload1.c (reload_cse_move2add): Honor TRULY_NOOP_TRUNCATION. - -2000-05-23 Jonathan Larmour - - * config/mips/elf64.h (CTOR_LISTS_DEFINED_EXTERNALLY): Define - -Tue May 23 06:50:29 2000 Richard Kenner - - * config/alpha/alpha.c: Remove #ifdef HAIFA since now only scheduler. - (alpha_start_function): Never write ..ng label if VMS or NT. - (alpha_align_insns): Remove GP_IN_USE arg. - Alignment now unsigned. - (alpha_reorg): Don't pass GP_IN_USE arg to alpha_align_insns. - * config/alpha/alpha.md (prologue_ldgp): Split into one define_expand - and two define_insn's. - -2000-05-22 Richard Henderson - - * combine.c (simplify_comparison): Use trunc_int_for_mode. - -2000-05-22 Richard Henderson - - * stor-layout.c (place_field): Change rli->size to rli->offset. - -2000-05-22 Richard Henderson - - * function.c (thread_prologue_and_epilogue_insns): Make sure - existing line number notes appear after the prologue. - -Mon May 22 21:49:00 2000 Richard Kenner - - * config/alpha/alpha.c (alpha_fnname): New static variable. - (print_operand, case '~'): New case. - (alpha_expand_prologue): Emit prologue_ldgp insn if needed. - (alpha_start_function): Set alpha_fnname. - Write "ng" label if no ldgp; don't write ldgp insn. - * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): New case '~'. - * config/alpha/alpha.md (prologue_ldgp): New define_insn. - -Mon May 22 11:30:48 2000 Clinton Popetz - - * jump.c (jump_optimize_1): Don't increment LABEL_NUSES - on deleted labels. - -2000-05-22 Zack Weinberg - - * varasm.c (eh_frame_section): Revert change to argument list. - -Mon May 22 13:14:03 2000 Richard Kenner - - * optabs.c (can_extend_p): Allow unsignedp to have any nonzero value. - (gen_extend_insn, can_fix_p, can_float_p): Likewise. - - * final.c (final_scan_insn, case NOTE_INSN_FUNCTION_BEG): Remove - dangling "else" that causes "break" to be conditional. - Also remove unneeded code at start. - -Mon May 22 17:31:35 2000 Philippe De Muyter - - * m68k/m68k.h (STORE_FLAG_VALUE): Macro set to (-1), not -1. - * fx80/fx80.h, i370/i370.h, m88k/m88k.h (STORE_FLAG_VALUE): Ditto. - * gmicro/gmicro.h, we32k/we32k.h (STORE_FLAG_VALUE): Ditto. - -2000-05-22 Jakub Jelinek - - * config/sparc/sparc.md (movdf_insn_v9only_vis): fzero has - just one argument. - -Mon May 22 06:57:49 2000 Richard Kenner - - * alias.c (record_component_aliases): New function. - * tree.h: Clean up some declarations and comments. - (record_component_aliases): New declaration. - * tree.c (get_alias_set): If type and has alias set, use it. - -2000-05-22 Richard Henderson - - * simplify-rtx.c (simplify_ternary_operation): Try to simplify - IF_THEN_ELSE to a setcc form. - * jump.c (can_reverse_comparison_p): Be prepared for insn null. - -2000-05-21 Kaveh R. Ghazi - - * fixinc/inclhack.def (sun_malloc): Handle `calloc'. - (sun_malloc, sysz_stdtypes_for_sun): Add test_text. - -Sun May 21 16:42:31 2000 Richard Kenner - - * combine.c (try_combine): Handle i3_subst_into_i2 case when I2 is - not a PARALLEL. - -2000-05-20 Alexandre Oliva - - * config/mn10300/mn10300.md (movdi, movdf): 64-bit clean-up. - * config/mn10300/mn10300.c (print_operand): Likewise. - - * final.c (split_double): Right shift of negative values is not - portable. - - * ifcvt.c (if_convert): Scan and kill dead code. - - * emit-rtl.c (unshare_all_rtl): Store the copied rtx. - -2000-05-20 Zack Weinberg - - * diagnostic.c: Eliminate implicit int. - * except.c, gcc.c: Add static prototypes. - * final.c (final_end_function): Mark file arg ATTRIBUTE_UNUSED. - * gensupport.c (process_rtx): Use XVEC to initialize vector - slot of 'split'. - - * print-rtl.c: If DEBUG_REGISTER_NAMES, define static - debug_reg_names instead of static reg_names. If not, define - global reg_names. - * regclass.c: Don't define global reg_names unless - DEBUG_REGISTER_NAMES is defined. - - * reload1.c (order_regs_for_reload): Remove unused variable. - * varasm.c: Include output.h after defaults.h. Define - eh_frame_section as function of no args, not of unspecified args. - - * gcc.c: Constify argbuf; arguments to store_arg, - process_command, main; elements of struct command and struct - switchstr; local variables in execute, process_command, main. - -2000-05-20 Bruce Korb - - * fixinc/inclhack.def: many applications of c_fix=format + tests - * fixinc/check.diff: regenerated - * fixinc/fixincl.x: regenerated - -Sat May 20 09:30:55 2000 Richard Kenner - - * alias.c: Clarify some comments. - (record_base_value): REGNO is unsigned. - * rtl.h (record_base_value): Likewise. - - * alias.c (aliases_everything_p): Don't special-case QImode here. - * c-common.c (c_get_alias_set): Do it here. - Handle BIT_FIELD_REF by getting alias info for arg. - Use POINTER_TYPE_P. - -2000-05-20 Alexandre Oliva - - * mklibgcc.in: Restore rule to create ${dir}. - -Sat May 20 08:45:41 2000 H.J. Lu - - * Makefile.in (libgcc.mk): Depend on xgcc$(exeext) for - GCC_FOR_TARGET used by MULTILIBS. - * mklibgcc.in: Make sure each .o file depends on the - directory it will be in. - Make the multilib directory depends libgcc. - -Sat May 20 08:29:28 2000 H.J. Lu - - * Makefile.in (bootstrap): Unset LANG_LIB2FUNCS for stage 1. - -Sat May 20 07:27:35 2000 Alexandre Oliva - - * fold-const.c (make_range): Handle degenerated intervals. - Fixes c-torture/execute/991221-1.c - -Fri May 19 18:16:31 2000 Richard Kenner - - * cse.c (cse_basic_block): Only call find_reg_note if REG_NOTES not 0. - * reload.c (find_equiv_reg): Likewise. - * alias.c (init_alias_analysis): Likewise. - Only call prologue_epilogue_contains on insns. - * basic-block.h (REG_SET_TO_HARD_REG_SET): Call new function. - * bb-reorder.c (hard-reg-set.h): Include earlier. - * haifa-sched.c (hard-reg-set.h): Likewise. - * ifcvt.c (hard-reg-set.h): Likewise. - * local-alloc.c (hard-reg-set.h): Likewise. - * loop.c (hard-reg-set.h): Likewise. - * predict.c (hard-reg-set.h): Likewise. - * regrename.c (hard-reg-set.h): Likewise. - * flow.c (hard-reg-set.h): Likewise. - (reg_set_to_hard_reg_set): New function. - * bitmap.c (regs.h, basic-block.h): No longer include. - (bitmap.h): Now include. - * conflict.c (hard-reg-set.h): Include. - * profile.c (hard-reg-set.h): Likewise. - * print-rtl.c (hard-reg-set.h): Likewise. - * sbitmap.c (hard-reg-set.h): Likewise. - * toplev.c (hard-reg-set.h): Likewise. - * unroll.c (hard-reg-set.h, basic-block.h): Likewise. - * hard-reg-set.h (reg_names): Now constant. - * regs.h (reg_names): Likewise. - * regclass.c (reg_names): Likewise. - * loop.h (basic-block.h): No longer include. - (bitmap.h): Now include. - * reload1.c (order_regs_for_reload): Avoid loop over reg sets. - * Makefile.in (LOOP_H, sbitmap.o, profile.o): Reflect above changes. - (toplev.o, print-rtl.o, conflict.o, unroll.o, bitmap.o): Likewise. - -2000-05-19 Jan Hubicka - Richard Henderson - - * basic-block.h (struct edge_def): New field "count". - (struct basic_block_def): Likewise. - * flow.c (entry_exit_blocks): Add count fileds. - (split_edge): Keep count information up-to-date. - (dump_edge_info, dump_flow_info): Dump count fields. - - * final.c (count_instrumented_edges): Rename to edge from arc. - (end_final): Update users. - * profile.c: Include expr.h, basic-block.h. - (struct adj_list, ARC_TARGET, ARC_SOURCE, ARC_COUNT): Kill. - (struct bb_info, label_to_bb, label_to_bb_size, bb_graph): Kill. - (ignore_next_note, return_label_execution_count): Kill. - (bbg_file_name, da_file_name): Kill. - (edge_info, bb_info): New structures. - (EDGE_INFO, BB_INFO, GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): New macros. - (count_instrumented_edges, total_num_edges): Rename to edge from arc. - (total_num_edges_instrumented): Likewise. - (init_arc, expand_spanning_tree): Kill. - (fill_spanning_tree, tablejump_entry_p): Kill. - (instrument_edges): Rewrite from instrument_arcs to use - commit_edge_insertions infrastructure. - (compute_branch_probabilities): Remove arguments; rewrite for - CFG infrastructure; use rtl_dump_file directly. - (branch_prob, find_spanning_tree): Likewise. - (union_groups, find_group): New. - (init_branch_prob): Make bbg_file_name and da_file_name local. - (end_branch_prob): Use rtl_dump_file directly. - (init_edge_profiler): Rename to edge from arc. - (output_arc_profiler): Kill. - (gen_edge_profiler): New. - (output_func_start_profiler): Turn off profiling. Make the - constructor static when we can. - * rtl.h (branch_prob, end_branch_prob): Update prototypes. - - * toplev.c (DFI_flow): Remove. - (DFI_cfg, DFI_life): New. - (dump_file): Update accordingly. - (compile_file): Call end_branch_prob if profile_arc_flag too. - (rest_of_compilation): Move flow1 cfg creation to DFI_cfg. Do edge - profiling after the CFG is built. Move flow1 life analysis to - DFI_life. Always estimate remaining probabilities. - -2000-05-19 Richard Henderson - - * ifcvt.c (find_if_case_2): Don't allow THEN to be EXIT. - - * flow.c (make_edges): The sibling call edge to exit is abnormal. - -2000-05-19 Richard Henderson - - * jump.c (redirect_jump): Add delete_unused argument. Don't - remove labels and code following when LABEL_NUSES goes to zero. - (invert_jump): Likewise. - (jump_optimize_1): Fix redirect/invert arguments. - (do_cross_jump, thread_jumps): Likewise. - * flow.c (split_edge): Likewise. - * reorg.c (optimize_skip): Likewise. - (reorg_redirect_jump, relax_delay_slots, dbr_schedule): Likewise. - * profile.c (instrument_arcs): Likewise. - * loop.c (find_and_verify_loops): Likewise. Fix indentation. - * rtl.h: Update prototypes. - -Fri May 19 12:05:13 2000 Clinton Popetz - - * ssa.c (convert_from_ssa): Tell life_analysis we need death - notes. - (make_regs_equivalent_over_bad_edges): Only look at abnormal - critical edges. - -2000-05-19 Zack Weinberg - - * cpphash.c (funlike_macroexpand): Make sure not to walk p1 - past l1 when deleting whitespace and markers. - - * cpplex.c (_cpp_scan_until): Clear AUX field of tokens. - * cpplib.c (do_unassert): Put the list to compare against on - the stack. - -2000-05-19 Bruce Korb - - * fixinc/README: cleaned up old documentation - * fixinc/check.diff: regenerated & verified on OSR5 on ix86 - * fixinc/check.tpl: compute the list of needed directories - emit "#if defined(name)" because of conflict - omit machine name differences from output differences - * fixinc/inclhack.def( m88k_multi_incl ): Use `wrap' function - (machine_name): change test text to use `sed' markers - * fixinc/fixincl.x: regen - -Fri May 19 06:49:35 2000 Richard Kenner - - * config/elfos.h (SELECT_SECTION): Don't access DECL_INITIAL of - a CONSTRUCTOR. - -2000-05-18 Chris Demetriou - - * gcc.texi (MULTILIB_EXCEPTIONS): Correct example and update - it to match the current practice. - -2000-05-18 Mark Mitchell - - * Makefile.in (STAGESTUFF): Fix typo in spelling of s-under. - -2000-05-18 Richard Henderson - - * rtlanal.c (insn_dependant_p, insn_dependant_p_1): New. - * rtl.h (insn_dependant_p): Declare it. - * loop.c (strength_reduce): Use it. - -2000-05-18 Alexandre Oliva - - * config/mn10300/mn10300.c (expand_prologue, expand_epilogue): - 16-bit and 64-bit clean-up. - -2000-05-18 Mark Elbrecht - - * configure.in (*-pc-msdosdjgpp): Set float_format to none. - * configure: Rebuilt. - -2000-05-18 Zack Weinberg - - * genopinit.c: Use $ for escape sequences in optab patterns. - Remove backslashes from optab patterns. Change $A, $B, $C to - expand to (int) whatever instead of just whatever; remove - explicit (int) from all optab patterns. - - * gensupport.c (xmalloc, xrealloc, xstrdup): Provide. - * genattr.c, genattrtab.c, gencodes.c, genconfig.c, genemit.c, - genextract.c, genflags.c, genopinit.c, genoutput.c, genpeep.c, - genrecog.c: Remove private copies of xmalloc, xrealloc, and - xstrdup. - -2000-05-18 Richard Henderson - - * jump.c (jump_optimize_1): Base minimum insn count during - find_cross_jump on BRANCH_COST. - -2000-05-18 Jakub Jelinek - - * print-rtl.c (print_rtx): Only print note line number as string - if between NOTE_INSN_BIAS and NOTE_INSN_MAX. - * final.c (final_scan_insn): Do nothing for note line number 0. - -2000-05-18 Jakub Jelinek - - * gcc-common.c (ggc_mark_rtx_children): Mark NOTE_EXPECTED_VALUE - from NOTE_INSN_EXPECTED_VALUE notes and NOTE_SOURCE_FILE from - NOTE_INSN_DELETED_LABEL. - -2000-05-18 Nick Clifton - - * config/arm/unknown-elf.h (UNIQUE_SECTION): Place constant, - uninitialized data in .rodata not .bss, and do not interpret an - error in the initialisation value as meaning that the variable - should be placed in the .bss section. - -Thu May 18 12:10:18 2000 Philippe De Muyter - - * configure.in (NO_MINUS_C_MINUS_O): Test `$ac_cv_prog_cc_${ac_cc}_c_o', - not `$ac_cv_prog_cc_cc_c_o'. - * configure: Regenerated. - -2000-05-18 Chris Demetriou - Richard Henderson - - * c-common.h (enum c_tree_index): Add g77 type entries. - (g77_integer_type_node, g77_uinteger_type_node): New. - (g77_longint_type_node, g77_ulongint_type_node): New. - * c-decl.c (init_decl_processing): Initialize them. - -2000-05-18 Richard Henderson - - * config/h8300/h8300.md (subs patterns): Use %G to negate. - - * config/h8300/h8300.c (ok_for_bclr): Take a HOST_WIDE_INT. - (small_power_of_two): Likewise; use exact_log2. - (adds_subs_operand, one_insn_adds_subs_operand): Remove. - (output_adds_subs): Remove. - (two_insn_adds_subs_operand): New. - (split_adds_subs): New. - * config/h8300/h8300-protos.h: Update. - * config/h8300/h8300.h (CONST_OK_FOR_J): Cast to uns HOST_WIDE_INT. - (CONST_OK_FOR_L): Match strict adds operands. - (CONST_OK_FOR_N): Match struct subs operands. - * config/h8300/h8300.md (adds_subs insns): Remove. - (addhi patterns): Output adds/subs directly. - (addsi_h8300h): Likewise. - (addhi/addsi splitters): New. Decompose two_insn_adds_subs_operand. - -2000-05-18 Zack Weinberg - - * cppexp.c (parse_assertion): New. - (lex): Call it for CPP_HASH. Remove CPP_ASSERTION case. - (_cpp_parse_expr): Remove case '#'. Don't set - parsing_if_directive. - * cpphash.c (collect_objlike_expansion, - collect_funlike_expansion, collect_params, - _cpp_create_definition): The list no longer has a trailing - VSPACE token. - * cpphash.h (enum node_type): Add T_ASSERTION. - (struct hashnode): Remove aschain, add pred. - (struct predicate): New. - Update prototypes. - - * cpplex.c (expand_token_space): Handle both offset and - nonoffset lists. - (init_token_list, _cpp_free_token_list, _cpp_parse_assertion): Delete. - (_cpp_init_toklist, _cpp_clear_toklist, _cpp_free_toklist, - _cpp_slice_toklist, _cpp_squeeze_toklist, _cpp_equiv_tokens, - _cpp_equiv_toklists): New. - (_cpp_scan_line): Rename to _cpp_scan_until; add ability to - stop at any single-character token, not just newline. - (_cpp_lex_token): Remove special cases for #define and #if. - (cpp_get_token): Expect # as a separate token type. Remove - DIRECTIVE case. - (_cpp_get_directive_token): Remove DIRECTIVE case. - (_cpp_lex_line, _cpp_lex_file, _cpp_init_input_buffer): Update. - - * cpplib.c (_cpp_check_directive): Set dirno and - SYNTAX_INCLUDE bit of flags, not dir_handler and dir_flags. - (_cpp_handle_directive): Run # through the same logic - as normal directives. - (do_define): Don't set parsing_define_directive. Use - _cpp_scan_until. The list does not have a VSPACE at the end. - (do_if): Save, clear, and restore only_seen_white around - _cpp_parse_expr. - (skip_if_group): s/CPP_DIRECTIVE/CPP_HASH/ - (do_assert, do_unassert): Rewrite. - - * cpplib.h (TTYPE_TABLE): Remove CPP_ASSERTION. - (LIST_OFFSET): New flag. - (struct cpp_toklist): Replace dir_handler and dir_flags with - dirno and flags. - (struct cpp_reader): Remove parsing_if_directive and - parsing_define_directive. - -2000-05-18 Kaveh R. Ghazi - - * fixinc/inclhack.def (broken_cabs): Update fix to handle comments - following the cabs decl which terminate on the following line. - Add the corresponding test_text case. - -2000-05-18 Neil Booth - - * cppinit.c (cpp_reader_init): Initialize col_adjust and - default tab stop size. - (no_num, OPT_ftabstop): New. - (handle_option): Handle "ftabstop=" command-line option. - (print_help): Document it. - * cpplex.c (COLUMN): Remove. - (handle_newline): Reset col_adjust. - (skip_whitespace): Update col_adjust as tabs encountered. - (_cpp_lex_line): Update to use col_adjust. Call - skip_whitespace for all whitespace. - * cpplib.h (struct cpp_options): New member tabstop. - (struct cpp_reader): New member col_adjust. - (CPP_BUF_COL): Update. - (CPP_BUF_COLUMN): New. - * cpp.texi: Document "-ftabstop=" command line option. - -Wed May 17 18:19:41 2000 Philippe De Muyter - - * configure.in (NO_MINUS_C_MINUS_O): Macro made availabe for AC_OUTPUT - files. - * configure: Rebuilt. - -Wed May 17 18:06:12 2000 John David Anglin - - * mklibgcc.in Add missing -DL$name when compiling modules in libgcc1.c. - - * tree.c (build_common_tree_nodes): Do not build TI nodes unless - HOST_BITS_PER_WIDE_INT is >= 64. - -2000-05-17 Richard Henderson - - * jump.c (jump_optimize_1): Remove inactive but real insns - in jump-to-next-insn optimization. - -2000-05-17 Richard Henderson - - * toplev.c (rest_of_compilation): Don't call optimize_mode_switching - unless OPTIMIZE_MODE_SWITCHING. Conditionally set no_new_pseudos. - Don't call recompute_reg_usage if no_new_pseudos is true. - * lcm.c (optimize_mode_switching): Move ifdefs outside function. - Return true if we did work; update global life information. - * basic-block.h (optimize_mode_switching): Update decl. - -2000-05-17 Neil Booth - - * cpplex.c (expand_name_space): Don't use ptrdiff_t. - -2000-05-17 Zack Weinberg - - * cpplib.c: New feature, #pragma system_header. - * cpp.texi: Document special treatment of system headers, and - the various mechanisms to get a header that special treatment. - -2000-05-17 Kaveh R. Ghazi - - * system.h (offsetof): Define at the very end, to ensure we prefer - the platform's definition if available. - -2000-05-16 Bruce Korb - - * fixinc/fixincl.c: improve the debug displays, ignore SIGPIPE - * fixinc/server.c: likewise - * fixinc/fixfixes.c( char_macro_def_fix ): fix regex - + #ifdef debugging code + use #def constant for - sub-pattern count - * fixinc/inclhack.def( hpux11_fabsf ): Keep HP-UX 11 from stomping - on C++ math namespace - -2000-05-17 Kaveh R. Ghazi - - * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix): - Don't check the return value of sprintf. Use asprintf to avoid - buffer overflows. - -Wed May 17 17:27:44 2000 Andrew Cagney - - * flags.h (warn_unused_function, warn_unused_label, - warn_unused_parameter, warn_unused_variable, warn_unused_value): - Replace ``warn_unused''. - (set_Wunused): Add declaration. - * toplev.c (set_Wunused): New function. - (warn_unused_function, warn_unused_label, warn_unused_parameter, - warn_unused_variable, warn_unused_value): New variables. - (W_options): Add -Wunused-function, -Wunused-function, - -Wunused-label, -Wunused-parameter, -Wunused-variable and - -Wunused-value. Delete -Wunused. Handled in decode_W_option. - - * toplev.c (decode_W_option): Update -Wunused flags by calling - set_Wunused. - * c-decl.c (c_decode_option): Ditto for -Wall. - - * stmt.c (expand_expr_stmt, expand_expr_stmt, - warn_about_unused_variables): Replace warn_unused with more - explicit warn_unused_value et.al. - * function.c (expand_function_end): Ditto. - * c-typeck.c (internal_build_compound_expr, - internal_build_compound_expr): Ditto. - * c-decl.c (poplevel, pop_label_level): Ditto. - * toplev.c (check_global_declarations): Replace warn_unused with - check for either warn_unused_function or warn_unused_variable. - - * gcc.1, invoke.texi (Warning Options): Document - -Wunused-function, -Wunused-function, -Wunused-label, - -Wunused-parameter, -Wunused-variable and -Wunused-value options. - -Wed May 17 10:28:12 2000 Philippe De Muyter - - * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Find libgcc1.c in - $(srcdir), not in the current directory. - -2000-05-16 Richard Henderson - - * config/ia64/crtbegin.asm (__dso_handle): Mark hidden if the - assembler supports it. - (.fini, .init): Use a gp-relative indirect call. - (__do_global_dtors_aux): Preserve the gp; rebundle. - (__do_frame_setup): Likewise. - * config/ia64/crtend.asm (.IA_64.unwind): Don't terminate with -1. - (.init): Use a gp-relative indirect call. - (__do_global_ctors_aux): Preserve the gp. - -2000-05-16 Richard Henderson - - * flow.c (commit_one_edge_insertion): Be prepared for a return - insn to be inserted on the edge with a normal jump. - * jump.c (jump_optimize_1): Don't look to create return isns. - - * flow.c (flow_delete_insn): Don't adjust reference count of notes. - * jump.c (jump_optimize_1): Likewise. - (returnjump_p): Verify the argument is a JUMP_INSN. - * rtl.def (NOTE): Add 5th element for NOTE_INSN_DELETED_LABEL. - -2000-05-16 Nick Clifton - - * config/m32r/m32r.c (small_insn_p): Use INSN_P() to replace - GET_RTX_CLASS (GET_CODE ()) == 'i'. - (large_insn_p): Ditto. - (m32r_is_insn): New function: Return true if the insn contains - an executable instruction. - (m32r_adjust_insn): Use m32r_is_insn. - (m32r_sched_reorder): Use m32r_is_insn. - (m32r_sched_variable_issue): Use m32r_is_insn. - -2000-05-16 Franz Sirl - - * rs6000/rs6000.c (rs6000_select_section): Treat CONSTRUCTOR like - VAR_DECL. - - * rs6000/sysv4.h (ASM_OUTPUT_DWARF_ADDR): Delete unused variable. - - * rs6000/sysv4.h (CPP_OS_LINUX_SPEC): Define __unix and __linux - according to given options. - -Tue May 16 12:17:31 2000 Jeffrey A Law (law@cygnus.com) - - * mn10200.h (PREFERRED_RELOAD_CLASS): Do not prefer DATA_REGS - if X has VOIDmode either. - (LIMIT_RELOAD_CLASS): Similarly. - - * mn10200.md (indirect_jump, tablejump): Use "register_operand", - not "general_operand" to match the processor's capabilities. - -2000-05-16 Bruce Korb - - * fixinc/README: corrected return address - * fixinc/check.diff: regenerate, now that test works - * fixinc/fixfixes.c(format_fix,format_write): reformatted - (char_macro_def_fix,char_macro_use_fix): corrected and - rewrote to use regex to parse the text - * fixinc/inclhack.def: more testing - * fixinc/fixincl.x: regenerated - - * fixinc/inclhack.def: added several "test_text" attributes - changed several fixes to use `c_fix = format' - re-alphabetized the fixes - - * fixinc/check.diff: regenerate - * fixinc/fixincl.x: regenerate - * fixinc/check.tpl: added `sparc' and `netinet' to the list - of created dirs - - -2000-05-16 Alexandre Oliva - - * config/mn10300/mn10300.h (ASM_OUTPUT_DWARF2_ADDR_CONST): Remove. - -2000-05-15 Richard Henderson - - * toplev.c (rest_of_compilation): Run full jump pass before - find_basic_blocks of flow2. - -2000-05-15 Richard Henderson - - * jump.c: Fix typos and clarify commentary from last change. - (any_condjump_p): Verify SET_SRC is an IF_THEN_ELSE. - (safe_to_remove_jump_p): Remove. - (condjump_label): Use pc_set. - -2000-05-15 Richard Henderson - - * ifcvt.c (cond_exec_process_insns): Drop USE and CLOBBER insns - that get in the way after reload. - (cond_exec_process_if_block): Skip a label heading THEN block. - -2000-05-15 Richard Henderson - - * varasm.c (output_constant_pool): Abort instead of converting - (improperly) deleted labels to zero. - -2000-05-16 Neil Booth - - * cpplex.c (parse_string2): Update comment. - (cpp_lex_line): No special assertion treatment for '('. - * cpplib.c (DIRECTIVE_TABLE): Remove SYNTAX_ASSERT. - * cpplib.h (SYNTAX_ASSERT): Remove. - -Mon May 15 21:45:36 MET DST 2000 Jan Hubicka - - * jump.c (condjump_p): Mark as depreached. - (any_condump_p): New. - (any_uncondump_p): New. - (pc_set): New. - (safe_to_remove_jump_p): New. - * rtl.h (any_condump_p, any_uncondjump_p, pc_set - safe_to_remove_jump_p): Declare. - -Mon May 15 21:07:20 MET DST 2000 Jan Hubicka - - * calls.c: Re-install both patches reverted by last patch. - (struct arg_data): New field tail_call_reg. - (initialize_argument_information): Initialize tail_call_reg - (load_register_parameters): New argument flags, use - tail_call_reg when emiting tail call sequence. - (expand_call): Update call of load_register_parameters; - copy unadjusted_args_size to adjusted_args_size. - -Mon May 15 19:01:42 MET DST 2000 Jan Hubicka - - * loop.c (scan_loop, strength_reduce, loop_optimize): Change unroll_p - and bct_p parameters to flags. - * loop.h (LOOP_UNROLL, LOOP_BCT): New constants. - * rtl.h (loop_optimize): Update prototype. - * toplev.c (rest_of_compilation): Update call of loop_optimize. - -2000-05-15 Jakub Jelinek - - * calls.c (expand_call): Move expand_start_target_temps call after - start_sequence(). - -2000-05-15 Neil Booth - - * cpphash.c (trad_stringify, warn_trad_stringify, - collect_params): Make some pointers pointers to const. - * cpplex.c (auto_expand_name_space) Guaranteed to always - expand by at least one character. - (SPELL_CHAR, SPELL_NONE): Temporarily reverse order. - (struct token_spelling): Use const U_CHAR * rather than PTR. - (expand_name_space): Fix up token pointers if name space - is moved when expanding. - (INIT_NAME, cpp_scan_line, parse_name, parse_number, - parse_string2, save_comment, spell_token, cpp_output_list): - Update so the routines handle tokens with a direct pointer to - their text, rather than an offset into the token's list's namebuf. - (_cpp_lex_line): Rearrange for clarity. - - * cpplib.c (_cpp_check_directive): Similarly. - (do_define): Make SYM a pointer to const. - * cpplib.h (struct cpp_name): Replace offset with direct pointer. - (CPP_INT, CPP_FLOAT): Spelling type should be SPELL_IDENT. - (TOK_OFFSET): Delete. - (TOK_NAME): Update. - -2000-05-14 Geoffrey Keating - - * config/rs6000/rs6000.h (RETURN_ADDRESS_OFFSET): Correct for - 64-bit ABI. - - * config/rs6000/rs6000.c (logical_operand): Rewrite to take MODE - into account. - (logical_u_operand): Delete. - (non_logical_cint_operand): Rewrite to take MODE into account. - (non_logical_u_cint_operand): Delete. - (boolean_operator): New function. - (print_operand): Add new %q operand. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add boolean_operator, - remove logical_u_operand and non_logical_u_cint_operand, - update logical_operand and non_logical_cint_operand. - * config/rs6000/rs6000.md: Rewrite the patterns for performing - logical operations to use %q. - - * config/rs6000/rs6000.md (movsi): Don't modify RTL in-place. - (movdi): Make similar to movsi. - * config/rs6000/rs6000.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): There - is no such thing as a DImode CONST_DOUBLE. - * config/rs6000/rs6000.c (output_toc): Likewise. - - * config/rs6000/rs6000.c (output_cbranch): Don't output prediction - codes when old mnemonics are in use. Print register names - for cc registers when requested. - - * optabs.c (expand_float): Don't allow mode widening that causes - double rounding. - - * invoke.texi (RS/6000 and PowerPC Options): Update -m64/-m32 - flags to their current names -maix64 and -maix32. - -2000-05-14 Bruce Korb - - * fixinc/fixfixes.c(wrap_fix): new fix - inserts text before - and/or after current text of file - * fixinc/fixlib.c(must_malloc): - * fixinc/fixlib.h(must_malloc): + reformatting - * fixinc/inclhack.def: replace the "1i" and "$a" sed commands - with usages of ``c_fix = wrap;'' - Add several tests and use the ``c_fix = format'' fixer more. - * fixinc/fixincl.x: regen - * fixinc/check.diff: regen - * fixinc/check.tpl: emit the associated header with the missing - test message - -Sun May 14 17:58:59 2000 Hans-Peter Nilsson - - * mklibgcc.in (building libgcc1) [Xlibgcc1.a]: Do not use unset - variables $src and $dst. - -2000-05-13 Gabriel Dos Reis - - * diagnostic.h (DIAGNOSTICS_SHOW_PREFIX_ONCE): New macro. - (DIAGNOSTICS_SHOW_PREFIX_NEVER): Likewise. - (DIAGNOSTICS_SHOW_PREFIX_EVERY_LINE): Likewise. - (struct output_buffer: emitted_prefix_p, prefixing_rule): New - fields. - (set_message_prefixing_rule): Declare. - - * diagnostic.c: (current_prefixing_rule): New variable. - (set_message_prefixing_rule): Define. - (output_set_prefix): Adjust buffer->emitted_prefix_p. - (init_output_buffer): Adjust Initialization. - (output_emit_prefix): Rewrite. Take prefixing rules into account. - -Sat May 13 11:05:47 2000 Philippe De Muyter - - * ifcvt.c (if_convert): Do not free NULL. - -2000-05-12 H.J. Lu (hjl@gnu.org) - - * gthr-dce.h: Add support for libobjc. - * gthr-posix.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-vxworks.h: Likewise. - * gthr-single.h: Likewise. - * gthr-win32.h: Likewise. - -2000-05-12 Nick Clifton - - * config/fr30/fr30.c (fr30_move_double): New function: Emit code - to move a double word value. - (di_operand): New function: Return true if the operand is suitbale - for a double word move operation. - (nonimmediate_di_operand): New function: Return true if the - operand is a DImode register or MEM. - - * config/fr30/fr30.h (PREDICATE_CODES): Add di_operand and - nonimmediate_di_operand. - - * config/fr30/fr30-protos.h Add fr30_move_double, di_operand, and - nonimmediate_di_operand. - - * config/fr30/fr30.md (movdi): New pattern. Required because - other patterns generate DImode results. - (movdi_insn): New pattern. - -2000-05-12 Richard Henderson - - * config/alpha/alpha.c (struct shadow_summary): Define - bitfields as type unsigned int. - -Sat May 13 00:09:59 2000 Denis Chertykov - - * config/avr/t-avr: Added definition of FLOAT while generates - fp-bit.c - - * config/avr/avr.md: `NEXT_INSN (insn)' substituted to `insn' in - peepholes for tst+jump = sbrs/sbrc optimization. - -Fry May 12 20:03:00 CEST 2000 Jan Hubicka - - * expr.c (emit_push_insn): Do not adjust stack pointer when - preallocating. - -Fri May 12 19:03:58 2000 Philippe De Muyter - - * ggc-simple.c (offsetof): Macro fallback definition moved from here .. - * system.h (offsetof): ... to here. - -2000-05-12 Richard Henderson - - * Makefile.in (final.o): Depend on BASIC_BLOCK_H. - * final.c (final_end_function): Use app_disable. Rearrange note - handling into a switch. Emit deleted labels. - (output_asm_label): Generate label strings for deleted labels. - * flow.c (tail_recursion_label_list): New. - (find_basic_blocks_1): Set label_value_list directly. Collect list - of tail recursion labels from call_placeholders. Don't add deleted - labels to the label value list. - (cleanup_cfg): Use free_EXPR_LIST_list. - (flow_delete_insn_chain): Turn non-removable labels into notes. - (flow_delete_block): Don't disable deleting the block because of - a non-removable label. - (tail_recursion_label_p): New. - (merge_blocks_move_predecessor_nojumps): Don't disable the merge - because of a label. - (merge_blocks_move_successor_nojumps): Likewise. Also move a - jump table. - (merge_blocks): Disable a merge because of tail recursion labels. - * ifcvt.c (merge_if_block): Don't disable a merge because of a label. - Use a more accurate measure of not merging the join block. - (find_if_block): Don't disable conversion because of a label. - (find_if_case_1, find_if_case_2): Likewise. - * jump.c (duplicate_loop_exit_test): Preserve the kind of list - element when copying. - (squeeze_notes): Also leave EH notes. - (mark_jump_label): Ignore deleted labels. Use an INSN_LIST for - REG_LABEL notes. - (delete_insn): Preserve LABEL_NAME in NOTE_SOURCE_FILE when - deleting a label. - * print-rtl.c (print_rtx): Print NOTE_SOURCE_FILE for - NOTE_INSN_DELETED_LABEL. Print `[# deleted]' for a label_ref - referring to a deleted label. Convert tail handling to a switch. - * rtl.def (CODE_LABEL): Rearrange elements to be compatible with NOTE - for NOTE_INSN_DELETED_LABEL. - (NOTE): Fix commentary. - * rtl.h (REG_LABEL): Update commentary wrt INSN_LIST. - (REG_CC_SETTER, REG_CC_USER, REG_LIBCALL): Likewise. - (CODE_LABEL_NUMBER, LABEL_NAME): Update index. - (LABEL_NUSES, LABEL_REFS): Likewise. - * unroll.c (copy_loop_body): Don't copy NOTE_INSN_DELETED_LABEL. - -2000-05-12 Bruce Korb - - * fixinc/fixfixes.c(format_write): buglet & relaxed rules - * fixinc/check.diff: updated - * fixinc/inclhack.def: corrected & added some test_text-s - * fixinc/genfixes: removed unneeded options to autogen invocation - * fixinc/fixincl.tpl: Specified the output file - * fixinc/fixfixes.c: visual appearance - * fixinc/fixincl.x: regenerate - -2000-05-12 Zack Weinberg - - * fixinc/fixfixes.c (IO_use_fix, IO_defn_fix, CTRL_use_fix, - CTRL_defn_fix): Delete. - (fix_char_macro_defines, fix_char_macro_uses): Rename to - char_macro_def_fix and char_macro_use_fix, respectively. Put - them into the FIXUP_TABLE. Get the string to search for from - a c_fix_arg. - - (format_write): New function. - (format_fix): Use it. - - (FIX_PROC_HEAD): Constify text parameter. - (machine_name_fix): Constify all char *s. - * fixtests.c (skip_quote): Remove double static. - - * inclhack.def (io_def_quotes, io_use_quotes, ctrl_def_quotes, - ctrl_use_quotes): Update for new scheme. - * fixincl.x: Regenerate. - -2000-05-12 Alexandre Oliva - - * config/mn10300/mn10300.h (PREFERRED_DEBUGGING_TYPE): Redefine as - DWARF2_DEBUG. - (DWARF2_ASM_LINE_DEBUG_INFO): Define. - (ASM_OUTPUT_DWARF2_ADDR_CONST): Define. - -2000-05-11 Robert Lipe - - * fixinc/inclhack.def (hpux8_bogus_inlines): Delete bypass for SCO. - * fixincl.x: Regenerate. - -2000-05-11 Richard Henderson - - * calls.c: Revert both 05-09 patches. - -2000-05-11 Alexandre Oliva - - * config/mn10300/mn10300.c (print_operand): Print FP constants in - hexadecimal. - * config/mn10300/mn10300.md (movsf, movdf): Use the `F' constraint - for FP values. - - * mklibgcc.in (EQ): Define it to an equal sign in the Makefile, - and replace any occurrences of `=' in multilib dirs with `$(EQ)'. - -2000-05-11 Jason Merrill - - * fixinc/fixincl.c (run_compiles): Don't crash on null pz_machine. - -2000-05-11 Zack Weinberg - - * fixinc/fixfixes.c, fixinc/fixtests.c: Update commentary. - -Thu May 11 22:28:05 2000 Denis Chertykov - - * config/avr/avr-protos.c (jump_over_one_insn_p): New declaration. - * config/avr/avr.c (jump_over_one_insn_p): New function. - * config/avr/avr.md: New peepholes added. Output test and - conditional jump to "sbrc" or "sbrs" command. - -2000-05-11 Mark Elbrecht - - * cppmain.c (main): Use IS_DIR_SEPARATOR. - -2000-05-11 Jakub Jelinek - - * except.c (find_exception_handler_labels_1): New function. - (find_exception_handler_labels): Split into two functions, dive - into CALL_PLACEHOLDERs when looking for exception handler labels. - -2000-05-11 Stan Cox - - * regrename.c (replace_reg_in_block): Improve REG_DEAD handling. - * timevar.def (TV_RENAME_REGISTERS): Move before TV_SCHED2. - * toplev.c (rest_of_compilation): Call regrename_optimize before sched2. - -2000-05-11 Bruce Korb - - * fixinc/fixfixes.c (double_slash_fix): obsolete - (else_endif_label_fix): obsolete - (format_fix): new, unused as yet - (main): obsolete - * fixinc/fixlib.h: added fix description struct for use by format_fix - * fixinc/fixincl.c: removed the struct & test for SIGIOT befure using - * fixinc/Makefile.in: compile fixfixes.c and fixtests.c as separate - modules. Removed the vestiges of the script version. - Added support for "make check". - * fixinc/check.diff: base diff file (needs work!!) - * fixinc/check.tpl: quiet the fixup output - * fixinc/fixtests.c (main): obsolete - * fixinc/fixincl.sh: don't bother copying fixincl to .. - * fixinc/fixincl.tpl: provide for arguments to c_fix routines - -Thu May 11 11:57:02 MET DST 2000 Jan Hubicka - - * toplev.c (rest_of_compilation): Remove dead code after - combine. - -2000-05-11 Zack Weinberg - - * cpphash.c (collect_funlike_expansion): Make "# is not - followed by a macro argument name" a pedwarn, not an error. - Preserve the # in the output. Suppress the warning if lang_asm. - -Thu May 11 01:19:31 2000 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa*64*-*-hpux11*): New target for PA64 support. - * configure: Rebuilt. - -2000-05-10 Laurynas Biveinis - - * i386/xm-djgpp.h (XREF_FILE_NAME): Add mising brace. - -2000-05-10 Kazu Hirata - - * combine.c (try_combine): Fix a typo. - -Wed May 10 21:31:44 2000 Jim Wilson - - * config/ia64/ia64.md (insv): Add comment. - -2000-05-10 Richard Henderson - - * Makefile.in (libgcc.a, stmp-multilib): Depend on FPBIT and DPBIT. - * mklibgcc.in: Rewrite to not use functions. Don't shortcut - dependencies on FPBIT and DPBIT. - -2000-05-10 Nick Clifton - - * flow.c (find_auto_inc): Do not bias REG_N_REFS by loop_depth - when optimising for size. - (mark_used_regs:) Ditto. - (try_pre_increment_1): Ditto. - -2000-05-10 Zack Weinberg - - * cppexp.c (lex): Use %.*s to print non-NUL-terminated string. - Make error message friendlier. - - * cpphash.h (struct hashnode): Use struct hack for name - member. - * cpphash.c (struct hashdummy): New. - (eq_HASHNODE): Second argument is a hashdummy, not a HASHNODE. - (make_HASHNODE): No need to set ->name pointer. Correct - setting of p. - (cpp_lookup): Make 'dummy' a struct hashdummy. Tidy up a bit. - -2000-05-10 Richard Henderson - - * flow.c (find_basic_blocks_1): Remove any spare bb_note - after completion. - -2000-05-10 Bruce Korb - - * fixinc/gnu-regex.c: reg_syntax_t re_syntax_options must be static - -2000-05-10 Eric Schweitz - - * dwarfout.c (dwarfout_finish): Call retry_incomplete_types - after we enter .debug. - -2000-05-10 Jason Merrill - - * dwarf2out.c (gen_subprogram_die): Fixup die_parent for the - abstract instance of a nested inline function. - - * stor-layout.c (finish_record_layout): finalize_type_size - before laying out the pending_statics. - -Wed 10 May 09:36:47 2000 Neil Booth - - * cpplex.c (spell_token): New function. - (spell_string, spell_comment, spell_name): fold into - spell_token. - (I, S): Add macros. - (E, H): Remove macros. - (save_comment): Save comment opening characters too. - (_cpp_lex_file): Update to use spell_token. Tidy up comment - handling. - * cpplib.h (I, S): Add macros. - (E, H): Remove macros. - (TTYPE_TABLE): Update entries for new speller. - (SYNTAX_ASSERT): Remove. - -Wed 10 May 09:08:30 2000 Neil Booth - - * cpplex.c (_cpp_lex_line): Maintain PREV_WHITESPACE flag - when removing escaped newlines. Reverse sense of test for - escaped newline. - -2000-05-09 Richard Henderson - - * flow.c (find_basic_blocks_1): Do not delete the first - bb_note we run across. - (create_basic_block): Use reorder_insns to move an existing - bb_note to the correct place. - -2000-05-09 Richard Henderson - - * calls.c (expand_call): Increment currently_expanding_call - before calling optimize_tail_recursion. - -Tue May 9 18:54:16 2000 Richard Kenner - - * reload1.c (reload_combine): Fix errors in last change. - -2000-05-09 Zack Weinberg - - * gcc.c (used_arg): Skip over a semicolon at the end of the - split-up loop; don't break out of it. - - * Makefile.in (WARN_CFLAGS): Add -Wwrite-strings. - (tree.o): Depend on output.h. - - * c-decl.c (pending_invalid_xref_file, - current_function_prototype_file): Constify. - (pushdecl): Constify a local char *. - (define_label): Constify filename parameter. - * c-lex.c (init_parse): Constify parameter and return value. - * c-typeck.c (c_expand_asm_operands): Constify filename parameter. - * c-tree.h: Update prototypes. - * c-parse.in: Constify filename member of %union, and if_stmt_file. - * c-parse.y, c-parse.c, c-parse.h, objc/objc-parse.y, - objc/objc-parse.c: Regenerate. - - * dwarfout.c (dwarfout_init): Constify main_input_filename parameter. - * dwarfout.h: Update prototypes. - * expr.c (expand_expr): Constify a local char *. - * flags.h: Constify main_input_filename. - * function.c (expand_function_end): Constify filename parameter. - * genrecog.c (make_insn_sequence): Use a character array for - c_test_pos. - (main): Remove unused variables. - * input.h: Constify input_filename, main_input_filename, and - file_stack.name. Update prototypes. - * output.h: Declare first_global_object_name and - weak_global_object_name here, as const char *. - * stmt.c (expand_asm_operands): Constify filename parameter. - * toplev.c (compile_file, push_srcloc, debug_start_source_file): - Constify filename parameter. - (input_filename, main_input_filename): Constify. - * toplev.h: Update prototypes. - * tree.c: Include output.h. Don't declare - first_global_object_name or weak_global_object_name. Clean up string - bashing in get_file_function_name_long. - * tree.h (struct tree_decl): Constify filename member. - (input_filename): Constify. - Update prototypes. - * varasm.c (first_global_object_name, weak_global_object_name): - Constify. - (assemble_start_function, assemble_variable): Clean up string bashing. - - * gcc.c: Constify all spec-related strings initialized, - transitively, from string constants. Constify all strings - and string variables related to multilibs. - (set_spec, read_specs): Cast argument to free to PTR. - (used_arg): Do not modify multilib_matches. Use strncmp plus - length comparison to compare multilib switches. - * genmultilib: Constify everything declared in multilib.h. - -Tue May 9 22:28:03 2000 Denis Chertykov - - * flow.c (flow_delete_insn): Use INSN_DELETED_P for marking insn - as deleted. - -Tue May 9 20:52:43 2000 Denis Chertykov - - * config/avr/avr-protos.h (extra_constraint): change a type of - second argument from char to int to avoid warnings. - (asm_output_byte): Likewise. - - * config/avr/avr.c (MAX_LD_OFFSET) New macro. - (initial_elimination_offset): Handle elimination from - FRAME_POINTER_REGNUM to STACK_POINTER_REGNUM. - (legitimate_address_p): Use MAX_LD_OFFSET. - (legitimize_address): Likewise. - (out_movqi_r_mr): Likewise. - (out_movhi_r_mr): Likewise, use `fatal_insn' instead of `fatal'. - (out_movsi_r_mr): Use MAX_LD_OFFSET. - (out_movsi_mr_r): Likewise. - (out_movqi_mr_r): Likewise. - (out_movhi_mr_r): Likewise. - (notice_update_cc): Correct CC for the ashrqi3 with the shift - count as CONST_INT != 6. - (ashlqi3_out): Coding style modifications. Run `fatal_insn' if - shift count is a CONSTANT_P, but not a CONST_INT. - (ashlhi3_out): Coding style modifications. - (ashlsi3_out): Likewise. - (ashrhi3_out): Likewise. - (ashrsi3_out): Likewise. - (lshrhi3_out): Likewise. - (lshrsi3_out): Likewise. - (ashrqi3_out): Generate shift for any known constant count without - scratch register. Run `fatal_insn' if shift count is a CONSTANT_P, - but not a CONST_INT. - (lshrqi3_out): Coding style modifications. Run `fatal_insn' if - shift count is a CONSTANT_P, but not a CONST_INT. - (extra_constraint): change a type of - second argument from char to int to avoid warnings. - (asm_output_byte): Likewise. - (asm_file_end): Output size generated commands count as a hex - number too. - - * config/avr/avr.h (RETURN_ADDR_RTX): New macro. - - * config/avr/avr.md (addhi3): Fragment commented by &&0 is - removed. - (ashlqi3): Values of "length" attribute changed. Shift count - uses constraints 'n' instead of 'i'. - (ashrqi3): Likewise. Values of "cc" attribute changed. Generate - shifts without clobber register. - (lshrqi3): Shift count uses constraints 'n' instead of 'i'. - (call_insn): Correct test for which_alternative == 1 (was 0). - (call_value_insn): Likewise. - - * config/avr/t-avr: Remove definition of FLOAT while generates - fp-bit.c - -2000-05-09 Bruce Korb - - * fixinc/check.tpl: Template for checking fixes - * fixinc/inclhack.def: Added 'test_text' for many fixes - disable hpux8_bogus_inlines on SCO - * fixinc/fixinc.sco: Oh, yes, we don't need this any more. - -Tue May 9 16:30:27 MET DST 2000 Jan Hubicka - - * calls.c (expand_call): Reorganize somewhat in order - to avoid unnecesary recalculation inside loop and make - tail call failure code cleaner. - -Tue May 9 06:30:20 2000 Richard Kenner - - * alias.c (nonlocal_reference_p): Minor reformatting. - * reload.c (find_equiv_reg): Simplify logic for - CALL_INSN_FUNCTION_USAGE since can't have SUBREG or pseudos and - some some reformatting. - * reload1.c (reload_combine): Don't assume everything in - CALL_INSN_FUNCTION_USAGE is a REG and clean up code a bit. - -2000-05-08 Richard Henderson - - * final.c (current_insn_predicate): New. - (final_scan_insn): Set it. - * output.h (current_insn_predicate): Declare. - - * ifcvt.c (cond_exec_process_insns): New argument prob_val. - Attach it to call insns. - (cond_exec_process_if_block): Track probability for true and - false branches. - (dead_or_predicable): Likewise. - - * predict.c (PROB_NEVER, PROB_VERY_UNLIKELY): New. - (PROB_UNLIKELY, PROB_EVEN, PROB_LIKELY): New. - (PROB_VERY_LIKELY, PROB_ALWAYS): New. - (estimate_probability, expected_value_to_br_prob): Use them. - - * config/ia64/ia64-protos.h (ia64_expand_prediction): Declare. - * config/ia64/ia64.c (ia64_print_operand_address): Handle 'j'. - (ia64_expand_prediction): New. - (emit_insn_group_barriers): Don't look at notes. Emit barriers - as needed after calls. - (ia64_epilogue_uses): Mark b0 used. - * config/ia64/ia64.md (beq_true, beq_false): Remove. - (bne_true, bne_false): Remove. - (eq_return, eq_not_return, ne_return, ne_not_return): Remove. - (br_true, br_false): New. Use predicate_operator and - ia64_expand_prediction. - (return_true, return_false): Likewise. - (call_internal): Use ia64_expand_prediction. Don't emit stop bit. - (call_internal1, call_value_internal): Likewise. - (call_value_internal1, call_multiple_values_internal1): Likewise. - - * config/ia64/ia64.c (ia64_direct_return): Require frame size zero. - - * config/ia64/ia64.md (extendsfdf2): Split only after reload. - -2000-05-08 Richard Henderson - - * rtlanal.c (may_trap_p): Consider old-style and volatile - asms to trap. - -Mon May 8 17:16:48 2000 Jim Wilson - - * config/ia64/ia64.h (RETURN_ADDR_RTX): Use COUNT not count. - -2000-05-08 Richard Henderson - - * config/ia64/ia64.h (predicate_operator): Declare. - - * config/ia64/ia64.md (extendsfdf2): Split the nop case out - of existence. - - * gensupport.c (process_rtx): Copy and post-process each member - of the define_insn rtvec individually. - -Mon 8 May 22:17:35 2000 Neil Booth - - * cpplex.c (spell_token): New function. - (TOKEN_LEN): Add 1 for whitespace. - (_cpp_lex_file): Update to use spell_token. - * cpplib.h (E): Remove. - (TTYPE_TABLE): Update CPP_VSPACE entry. - -2000-05-08 Richard Henderson - - * flow.c (init_propagate_block_info): Watch out for conditional - branch to next instruction, and thus one outgoing edge. - - * config/ia64/ia64.c (ia64_encode_section_info): Exit early - for global register variables; don't special case __[CD]TOR_LIST__; - mind ggc_p for string allocation. - -2000-05-08 Nick Clifton - - * config/i386/i386.h (ELIMINABLE_REGS): Fix comment. - -2000-05-08 Bruce Korb - - * fixinc/mkfixinc.sh: fixinc.sco is no longer used - i?86-*-msdosdjgpp* no longer uses fixincludes - * fixinc/genfixes: inclhack.sh and fixincl.sh are no longer generated - * fixinc/inclhack.sh: deleted - * fixinc/hackshell.tpl: deleted - * fixinc/inclhack.tpl: deleted - * fixinc/Makefile.in: Remove dependencies on above - * fixinc/fixincl.sh: "DO NOT EDIT" text modified - -2000-05-08 Andreas Jaeger - - * config/mips/linux.h: Remove undefines which disabled .ctor/.dtor - support. - -2000-05-07 Zack Weinberg - - * Makefile.in (LOOSE_CFLAGS): Add /g modifiers to both sed - substitutions. - -Sun 7 May 08:43:53 2000 Neil Booth - - * cpplex.c: Move new lexer definitions and prototypes - to top. Conditional include these and the code if - NEW_LEXER is defined. Rename functions whose names - clash if this code included. - -Sun May 7 00:54:57 EDT 2000 John Wehle (john@feith.com) - - * rtl.def (COND_EXEC): Clarify. - - * i386.md (extendsidi2): Clobber (reg:CC 17) in the - same fashion as zero_extendsidi2. - -2000-05-06 Richard Henderson - - * config/ia64/ia64.c (predicate_operator): New. - (ia64_print_operand): Handle 'J'. - (rtx_needs_barrier): Handle COND_EXEC. - * config/ia64/ia64.h (BRANCH_COST): Define. - (PREDICATE_CODES): Update. - * config/ia64/ia64.md: Document used unspec values. - (attr predicable): New. - (movxf, movxf_internal): New. - (extendsfdf2): Don't comment out nop. - (floatdidf2): Remove. - (truncxfsf2, truncxfdf2, floatdixf2): New. - (abssi2, absdi2): Put the neg in the "true" slot. - (conditional branch instructions): Mark not predicable. - (cmov*_internal): Use predicate_operator. Split to cond_exec. - (abs*_internal): Likewise. - (alloc, set_bsp): Mark not predicable. - (barrier, insn_group_barrier, flush_cache): Likewise. - (define_cond_exec): New. - -2000-05-06 Richard Henderson - - * c-decl.c: Include "tm_p.h". - - * config/ia64/ia64-protos.h: Rearrange decls to reduce ifdef madness. - (fetchadd_operand, ia64_expand_fetch_and_op): Declare. - (ia64_expand_op_and_fetch): Declare. - * config/ia64/ia64.c: Include "toplev.h". Kill trailing whitespace. - (setjmp_operand): Constify variables for XSTR. - (ia64_encode_section_info): Likewise. - (ia64_print_operand): Use %d for exact_log2; cast 32-bit printed - values to int. - (ia64_asm_output_external): Constify name. - (process_set): Use HOST_WIDE_INT_PRINT_DEC for frame size. - (process_for_unwind_directive): Provide switch default. - (ia64_expand_compare_and_swap): Remove unused variables. - (ia64_expand_builtin): Likewise. - * config/ia64/ia64.h (ASM_OUTPUT_BYTE): Mask and cast value to int - for printing. - - * config/ia64/ia64.c (sdata_symbolic_operand): Mark unused args. - (symbolic_operand, function_operand, setjmp_operand): Likewise. - (shift_count_operand, shift_32bit_count_operand): Likewise. - (shladd_operand, fetchadd_operand, ia64_function_prologue): Likewise. - (ia64_function_epilogue, ia64_setup_incoming_varargs): Likewise. - (ia64_function_arg_partial_nregs, ia64_function_value): Likewise. - (ia64_print_operand_address, ia64_secondary_reload_class): Likewise. - (ia64_expand_builtin): Likewise. - (call_multiple_values_operation): Make dest_regno unsigned. - -2000-05-06 Richard Henderson - - * rtl.def (DEFINE_COND_EXEC): New. - * md.texi: Document it. - - * gensupport.c (input_file): Remove. - (struct queue_elem): Add lineno. - (rtx_ready_queue): Remove. - (errors): New. - (predicable_default): New. - (predicable_true, predicable_false): New. - (define_attr_queue, define_attr_tail): New. - (define_insn_queue, define_insn_tail): New. - (define_cond_exec_queue, define_cond_exec_tail): New. - (other_queue, other_tail): New. - (queue_pattern): New. - (process_rtx): Add patterns to the appropriate queues. - (is_predicable, identify_predicable_attribute): New. - (n_alternatives, collect_insn_data): New. - (alter_predicate_for_insn, alter_test_for_insn): New. - (shift_output_template, alter_output_for_insn): New. - (process_one_cond_exec, process_define_cond_exec): New. - (init_md_reader): Read the entire file. Process define_cond_exec. - (read_md_rtx): Return elements from the queues. - -2000-05-06 Richard Henderson - - * flow.c (mark_set_1): Don't update conditional life info - if the register is not_dead. - -2000-05-06 Zack Weinberg - - * Makefile.in (STAGESTUFF): Add genrtl.c and genrtl.h. - (mostlyclean): Also delete fixincl, fixinc.sh, and - specs.ready, and make clean in the fixinc subdir. - -2000-05-06 Richard Henderson - - * Makefile.in (gensupport.o): Compile for the host. - (host-prefix gensuuprt.o): Remove. - (genflags.o): Depend on gensupport.h and OBSTACK_H. - (genattrtab.o): Likewise. - (gencodes.o): Depend on gensupport.h. - (genemit.o, genopinit.o, genrecog.o, genextract.o): Likewise. - (genpeep.o, genattr.o, genoutput.o): Likewise. - - * gensupport.c (obstack, rtl_obstack): New. - (init_md_reader): Initialize rtl_obstack. - * gensupport.h (rtl_obstack): Declare. - (message_with_line): Declare. - - * genattr.c: Remove all traces of obstack manipulation. - * gencodes.c, genconfig.c, genemit.c, genextract.c: Likewise. - * genopinit.c, genoutput.c, genpeep.c, genrecog.c: Likewise. - - * genattrtab.c (obstack, rtl_obstack): Remove. - (main): Don't init rtl_obstack. - * genflags.c: Likewise. - - * genrecog.c (message_with_line): Move ... - * gensupport.c: ... here. - -2000-05-06 Richard Henderson - - * c-typeck.c (build_c_cast): Remove dead code. - -2000-05-06 Richard Henderson - - * flow.c (split_edge): Don't allocate global_live_at_start for - the new block unless the old blocks had them as well. - - * flow.c (mark_set_1): Respect not_dead when updating reg_live. - - * ifcvt.c (noce_process_if_block): Don't use an insn_b from - test_bb if a or b uses x. - -2000-05-06 Zack Weinberg - - * cpphash.h: Remove conditional #define of __extension__. - * rtl.h: Add __extension__ to RTL_CHECK1, RTL_CHECK2, - RTL_CHECKC1, RTL_CHECKC2, and RTVEC_ELT macros - (ENABLE_RTL_CHECKING only). - * tree.h: Add __extension__ to TREE_CHECK, TREE_CLASS_CHECK, - CST_OR_CONSTRUCTOR_CHECK, and EXPR_CHECK macros - (ENABLE_TREE_CHECKING only). - * varray.h: Add __extension__ to VARRAY_CHECK macro - (ENABLE_CHECKING only). - -2000-05-06 Richard Earnshaw (reanrsha@arm.com) - - Use new tail-calling mechanism on ARM. - * arm.md (sibcall, sibcall_value): New expands. - (sibcall_insn, sibcall_value_insn, sibcall_epilogue): New insns. - (tailcalling peepholes): Delete. - (push_multi): Simplify. - * arm.c (lr_save_eliminated): Delete definition. - (pattern_really_clobbers_lr, function_really_clobbers_lr): Delete. - (output_return_instruction): Remove checks on lr_save_eliminated. - (output_arm_prologue): Remove old tail-calling code. - (arm_output_epilogue): New parameter, really_return. All callers - changed. Handle tail-calling epilogues. - * arm.h (lr_save_eliminated): Delete declaration. - (frame_pointer_needed): Delete declaration. - * arm-protos.h (arm_output_epilogue): Adjust prototype. - - * arm.md (is_thumb): Examine symbol thumb_code, not expression - TARGET_ARM. - * arm.c (thumb_code): Define it. - (arm_override_options): Set it. - * arm.h (thumb_code): Declare it. - -2000-05-06 Richard Earnshaw (reanrsha@arm.com) - - * arm-protos.h (arm_dllexport_name_p, arm_dllimport_name_p): Constify. - -2000-05-06 Richard Earnshaw (reanrsha@arm.com) - - * arm.c (arm_gen_load_multiple, arm_gen_store_mulitple): Don't add - bogus clobber to insns. - (load_multiple_operation, store_mulitple_operation): Don't check - for it. - * arm.md (ldmsi_postinc, stmsi_postinc): Adjust accordingly. - - * arm.md (and_scc, ior_scc): Add missing mode. - - * arm.md (call_value_symbol): Remove predicate from op2. - - * arm.h (SPECIAL_MODE_PREDICATES): Define. - -Sat May 6 06:25:56 2000 Richard Kenner - - * expr.c (get_subtarget): New function. - (force_operand, expand_expr, do_store_flag): Use it. - - * toplev.c (compile_file): Don't take strlen of NAME if null. - -2000-05-06 David Edelsohn - - * xcoffout.c (xcoff_current_include_file, - xcoff_current_function_file, xcoff_lastfile): Constify char *. - (xcoffout_source_file, xcoffout_source_line): Make filename 'const - char *'. - (xcoffout_declare_function): Make name 'const char *'. - (xcoffout_end_epilogue): Make fname 'const char *' - * xcoffout.h (xcoff_current_include_file, xcoff_lastfile, - xcoffout_declare_function, xcoffout_source_line): Match above. - - * aix43.h (SUBTARGET_OVERRIDE_OPTIONS): -mpowerpc64 without - -maix64 is error. - * rs6000.c (print_operand): Fix lossage typo. - (output_cbranch): Remove "cr" decoration for now. - * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Make alias 'const char *'. - -Sat May 6 06:55:32 2000 Denis Chertykov - - * config/avr/avr.c (out_shift_with_cnt): Bugfix for shift by - constant count. - -2000-05-05 Bruce Korb - - * fixinc/genfixes: Improve the matching for make target names - -2000-05-05 Catherine Moore - - * c-common.c (decl_attributes): For TYPE_DECLs attach the - attribute to the decl. - * c-decl.c (pushdecl): Propagate the USED attribute to the - type copy. - -2000-05-05 Richard Henderson - - * rtlanal.c (reg_overlap_mentioned_p): Treat parallels in the - same way emit_group_load does. - -2000-05-05 Mark Elbrecht - - * gcc.c (set_input) [HAVE_DOS_STYLE_FILE_SYSTEM]: Skip drive name. - - * toplev.c (output_file_directive): Use IS_DIR_SEPARATOR. - (main): Likewise. - -2000-05-05 Rodney Brown - - * pa.h (FUNCTION_ARG_ADVANCE): Warning removal. - -Fri May 5 10:29:21 2000 Marc Espie - - * config/openbsd.h (LINK_SPEC): pass correct flags to ld - to support -shared, on platforms with dynamic libraries. - -Fri May 5 10:27:06 2000 Philippe De Muyter - - * system.h (S_ISBLK): Provide fallback definition. - -2000-05-05 Geoff Berry - - * extend.texi (Extended Asm): Document inability to give asm - statements access to condition codes. - -2000-05-05 Marek Michalkiewicz - - * varasm.c (asm_emit_uninitialised): Use 0, not NULL - as arg 2 of UNIQUE_SECTION. - -Fri May 5 10:11:41 2000 Jeffrey A Law (law@cygnus.com) - - * predict.c: Remove May 4 change. - * bb-reorder.c (make_reorder_chain): Do not perform block movement - if we have predicted the branch at 50-50 probability. - -2000-05-05 Richard Henderson - - * flow.c (init_propagate_block_info): Fix merge error - in HAVE_conditional_execution code. - -Fri May 5 07:43:50 2000 Denis Chertykov - - * config/avr/avr.c (out_shift_with_cnt): Genetare a more optimal - shift cycle for unknown shift count. Also generates dec + brpl. - (ashlqi3_out): Don't generate dec + brpl which now generates by - `out_shift_with_cnt'. - (ashlhi3_out): Likewise. - (ashlsi3_out): Likewise. - (ashrqi3_out): Likewise. - (ashrhi3_out): Likewise. - (ashrsi3_out): Likewise. - (lshrqi3_out): Likewise. - (lshrhi3_out): Likewise. - (lshrsi3_out): Likewise. - -2000-05-04 Mark Elbrecht - - * gcc.c (free_split_directories): Correct typo in explanation - of make_relative_prefix. - -2000-05-04 Geoff Keating - - * config/rs6000/rs6000.h (PREDICATE_CODES): Add floating-point - comparison codes to branch_comparison_operator. - -2000-05-04 Richard Henderson - - * ifcvt.c (noce_process_if_block): Always reset X in the A == B case. - -2000-05-04 Richard Henderson - - * Makefile.in (FPBIT_FUNCS): Remove _df_to_usi. - (DPBIT_FUNCS): Remove _sf_to_usi. - (stmp-multilib): Pass LIB1ASMSRC to libgcc.mk. - - * ifcvt.c (noce_process_if_block): Fail if A or B modified - between condition and jump. - - * libgcc2.c (near eh_context_specific): Comment #endif string. - * longlong.h: Don't use strings with embedded newlines. - -2000-05-04 Geoff Keating - - * config/rs6000/rs6000-protos.h: Add output_cbranch. - * config/rs6000/rs6000.c (ccr_bit_negated_p): Delete. - (print_operand): Delete %t and %T codes. - (output_cbranch): New function. Support branch prediction. - * config/rs6000/rs6000.md: Use output_cbranch for - conditional branches and returns. - -2000-05-04 Jason Merrill - - * simplify-rtx.c (simplify_ternary_operation): Cast to unsigned. - * stor-layout.c (place_field): Likewise. - * integrate.h (struct inline_remap): Make regno_pointer_align unsigned. - * expr.c (store_expr): Make align unsigned. - * explow.c (plus_constant_wide): Make low words unsigned. - * expmed.c (choose_multiplier): Likewise. - * fold-const.c (fold): Likewise. - * tree.h (build_int_2): Likewise. - * tree.c (build_int_2_wide, tree_int_cst_msb): Likewise. - * emit-rtl.c (gen_reg_rtx): Add cast to unsigned char*. - (init_emit): Change cast to unsigned char*. - * varasm.c (compare_constant_1): Add cast to char*. - * gcse.c (delete_null_pointer_checks): Change cast to unsigned int*. - * reload1.c (reload): Likewise. - - * rtl.h (MEM_SET_IN_STRUCT_P): Use do { } while (0). - -Thu May 4 14:37:23 2000 Jeffrey A Law (law@cygnus.com) - - * predict.c (estimate_probability): If no prediction was found, then - predict the successor that is the next physical block (if such a - successor exists). - -2000-05-04 Richard Henderson - - * config/alpha/t-alpha (LIB2FUNCS_EXTRA): Use qrrnd.asm in place. - -2000-05-04 Kaveh R. Ghazi - - * system.h: Don't wrap with HAVE_SYS_TYPES_H. - -2000-05-04 Mumit Khan - - * i386/cygwin.h (CPP_PREDEFINES): Don't define __STDC__. Move - attribute macros from here ... - (CPP_SPEC): to here. - * i386/mingw32.h (CPP_PREDEFINES): Likewise. - (CPP_SPEC): Likewise. - * i386/crtdll.h (CPP_PREDEFINES): Delete attribute macros. - - * Makefile.in ($(HOST_PREFIX_1)gensupport.o): Add build rule. - (libgcc.a): Pass LIB1ASMSRC to libgcc.mk. - -2000-05-04 Kaveh R. Ghazi - - * bb-reorder.c (get_next_bb_note, get_prev_bb_note): Prototype. - - * diagnostic (vbuild_message_string, build_message_string, - build_location_prefix, output_get_prefix, init_output_buffer, - output_notice, vline_wrapper_message_with_location, - v_message_with_decl, default_print_error_function): De-constify. - (set_real_maximum_length): Prototype. - - * diagnostic.h (struct output_buffer, init_output_buffer, - output_get_prefix, output_set_prefix): De-constify. - - * function.c (init_function_start): Constify. - - * gensupport.c (remove_constraints, process_rtx): Prototype. - - * gthr-posix.h: Indent uses of #pragma. - - * objc/objc-act.c (ggc_mark_imp_list, ggc_mark_hash_table): - Prototype. - - * predict.c (find_expected_value): Delete prototype. - (expected_value_to_br_prob): Initialize variable `ev_reg'. - - * sbitmap.h (debug_sbitmap): Prototype. - - * ssa.c (compute_coalesced_reg_partition): Prototype. - - * stor-layout.c (debug_rli): Prototype. - - * tree.h (round_down): Prototype. - (init_function_start): Constify. - -2000-05-04 Zack Weinberg - - * cpphash.h: #define __extension__ away if GCC_VERSION < 2095 - (overly conservative). Change extern inline wrappers to - static inline, define them always, use PARAMS properly. - * cpplex.c (_cpp_get_directive_token): Don't issue pedantic - whitespace warnings for \f and \v at the beginning of a line. - -Thu May 4 10:03:50 2000 Jeffrey A Law (law@cygnus.com) - - * haifa-sched.c (schedule_insns): Free the flow edge list when it - is no longer needed - -2000-05-04 Bruce Korb - - * fixincl/inclhack.def: added broken_cabs - - Remove `extern double cabs' declarations from math.h - * fixincl/inclhack.sh: regen - * fixincl/fixincl.x: regen - * fixincl/fixincl.c: Remove BOGOSITY code - * fixincl/mkfixinc.sh: Remove code for installing "shell" version - -Thu May 4 09:45:12 2000 Richard Kenner - - * rtl.h (MEM_COPY_ATTRIBUTES): Also copy RTX_UNCHANGING_P and - MEM_ALIAS_SET. - * alias.c (canon_rtx): Don't copy RTX_UNCHANGING_P or MEM_ALIAS_SET - when calling MEM_COPY_ATTRIBUTES. - * emit-rtl.c (operand_subword, change_address): Likewise. - * explow.c (stabilize): Likewise. - * expr.c (protect_from_queue, emit_move_insn_1): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - * combine.c (combine_simplify_rtx): Don't copy RTX_UNCHANGING_P - when calling MEM_COPY_ATTRIBUTES. - (make_extraction, simplify_shift_const, gen_lowpart_for_combine): - Likewise. - * cse.c (gen_lowpart_if_possible): Likewise. - * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. - * optabs.c (gen_move_insn): Likewise. - * recog.c (validate_replace_rtx_1): Likewise. - * simplify-rtx.c (add_mem_for_addr): Likewise. - * stmt.c (expand_anon_union_decl): Likewise. - * config/arm/arm.md: Likewise. - * config/h8300/h7300.c (fix_bit_operand): Likewise. - * config/m88k/m88k.c (legitimize_address, block_move_loop): Likewise. - (block_move_no_loop, block_move_sequence): Likewise. - * config/rs6000/rs6000.c (expand_block_move_mem): Likewise. - * config/alpha/alpha.c (get_aligned_mem): Likewise. - Clear MEM_ALIAS_SET. - * final.c (alter_subreg): Don't copy MEM_ALIAS_SET when calling - MEM_COPY_ATTRIBUTES. - -2000-05-03 Robert Lipe - - * configure.in (i[34567]86-*-isc*) [tmake_file]: Add t-i386bare - to suppress libgcc1. - (i[34567]86-*-sco3.2v5*) Likewise. - (i[34567]86-*-sco3.2v4*) Likewise. - (i[34567]86-*-sco) Likewise. - (i[34567]86-*-solaris2) Likewise. - (i[34567]86-*-sysv5*) Likewise. - (i[34567]86-*-sysv4*) Likewise. - (i[34567]86-*-udk*) Likewise. - (i[34567]86-*-sysv*) Likewise. - -2000-05-03 Zack Weinberg - - * cpphash.h (U): New define, to correct type of string constants. - (ustrcmp, ustrncmp, ustrlen, uxstrdup, ustrchr): New wrapper - routines, to do casts when passing unsigned strings to libc. - * cppexp.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c: Use them. - - * cppfiles.c (_cpp_execute_include): Make filename an U_CHAR *. - * cpphash.c (_cpp_quote_string): Make string an U_CHAR *. - * cppinit.c (dump_special_to_buffer): Make macro name an U_CHAR *. - * cpplex.c (parse_ifdef, parse_include, validate_else): Make - second argument an U_CHAR *. - - * cppinit.c (builtin_array): Make name and value U_CHAR *, add - length field, clean up initializer. - (ISTABLE): Add __extension__ to designated- - initializers version. - * cpplex.c (CHARTAB): Likewise. - - * mbchar.c: Add dummy external declaration to the !MULTIBYTE_CHARS - case so the file won't be empty. - -Wed May 3 21:01:46 2000 Jason Eckhardt - - * bb-reorder.c (struct reorder_block_def): Member succ removed. - (REORDER_BLOCK_SUCC): Removed. - (enum reorder_skip_type): Removed. - (skip_insns_between_block): Renamed to skip_insns_after_block. - Removed second argument. Removed dead code and cleaned up. - (make_reorder_chain): Removed use of REORDER_BLOCK_SUCC. - (reorder_basic_blocks): Remove use of REORDER_SKIP_AFTER. Removed - second parameter to skip_insns_after_block. - -Wed May 3 13:29:54 2000 Richard Kenner - - * tree.c (staticp, case LABEL_DECL): New case. - -2000-05-03 Richard Henderson - - * Makefile.in (start.encap): Do not depend on LIBGCC1. - - * mklibgcc1.in: Fix typo last change. - -2000-05-03 Jason Merrill - - * Makefile.in (WARN_CFLAGS): Add -pedantic -Wno-long-long. - (LOOSE_CFLAGS): New: CFLAGS without -pedantic and -Wtraditional. - (GCC_CFLAGS): Use it. - (LANG_FLAGS_TO_PASS): New: SUBDIR_FLAGS_TO_PASS with LOOSE_CFLAGS. - * cp/Make-lang.in, java/Make-lang.in, f/Make-lang.in, ch/Make-lang.in, - objc/Make-lang.in: Use it. - -2000-05-03 Jason R Thorpe - - * config/i386/i386.md (lshrqi2_cmpno): Use q not r in constraint. - -2000-05-03 Richard Henderson - - * mklibgcc.in: Restrict OLDCC=GCC test to native. Equate - LIBGCC1 empty with libgcc1.null. - -Wed May 3 12:55:46 2000 Jim Wilson - - * fold-const.c (extract_muldiv, case MAX_EXPR): Don't allow signedness - change. - -2000-05-03 Greg McGary - - * tree.h (tree_common): Add bounded_flag member. Remove - inaccurate comment about number of remaining bits. - (BOUNDED_INDIRECT_TYPE_P, BOUNDED_POINTER_TYPE_P, - BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P, - MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P, - TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, - TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED): New macros. - (TYPE_QUAL_BOUNDED): New constant. - (TYPE_QUALS): Handle bounded qualifier. - (TREE_EXPR_QUALS, TREE_FUNC_QUALS): New macros. - (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT, - TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH, - TYPE_AMBIENT_BOUNDEDNESS): New macros. - (MAX_POINTER_DEPTH, VA_LIST_POINTER_DEPTH): New constants. - (tree_type): Add pointer_depth member. Remove - inaccurate comment about number of remaining bits. - (DECL_POINTER_DEPTH): Add macro. - (tree_decl): Add pointer_depth member. - -Wed May 3 22:52:53 2000 Denis Chertykov - - * config/avr/avr-protos.h (test_hard_reg_class): Declared. - * config/avr/avr.c (ashrhi3_out): optimized shift by 15. - (lshrhi3_out): Likewise. - (ashrsi3_out): bugfix in shift by 8. - (test_hard_reg_class): New function. - * config/avr/avr.md: Bugfix inside conditions in peepholes. - (ashlhi3): removed define_expand of this pattern. - (*ashlhi3_insn): renamed to ashlhi3. - (ashlsi3): removed define_expand of this pattern. - (*ashlsi3_insn): renamed to ashlsi3. - (ashrqi3): removed define_expand of this pattern. - (*ashrqi3_insn): renamed to ashrqi3. - (ashrhi3): removed define_expand of this pattern. - (*ashrhi3_insn): renamed to ashrhi3. - (ashrsi3): removed define_expand of this pattern. - (*ashrsi3_insn): renamed to ashrsi3. - (lshrhi3): removed define_expand of this pattern. - (*lshrhi3_insn): renamed to lshrhi3. - (lshrsi3): removed define_expand of this pattern. - (*lshrsi3_insn): renamed to lshrsi3. - -2000-05-03 Rodney Brown - - * config/mcore/mcore.c: Replacing inclusion of "stdio,h" with - inclusion of "system.h". - -Wed May 3 11:43:53 2000 Jim Wilson - - * config/ia64/ia64.c (ia64_encode_section_info): Add check for - TREE_ASM_WRITTEN. - -2000-05-03 David Mosberger - - * config/ia64/ia64.c (ia64_override_options): Force -mconstant-gp - if -mauto-pic is on. - (ia64_epilogue_uses): Mark "gp" (r1) as used by the epilogue if - -mconstant-gp is in effect and function-descriptors are being used - to make indirect calls. - * config/ia64/ia64.h (MASK_CONST_GP): New macro. - (MASK_AUTO_PIC): Ditto. - (TARGET_CONST_GP): Ditto. - (TARGET_AUTO_PIC): Ditto. - (TARGET_SWITCHES): Add -mconstant-gp and -mauto-pic options. - (ASM_OUTPUT_DOUBLE_INT): Don't generate @fptr() if -mauto-pic or - -mno-pic is in effect. - (ASM_OUTPUT_XDATA_DOUBLE_INT): Ditto. - * config/ia64/ia64.md (movdi): Use gen_load_gprel64() if - -mauto-pic is in effect. - (gprel64_offset): New pattern. - (load_gprel64): Ditto. - (call): Handle -mauto-pic like -mno-pic (don't use fptr). If - -mconstant-gp is in effect, no need to preserve gp around direct - calls. - (call_value): Ditto. - * config/ia64/linux.h (PROFILE_BEFORE_PROLOGUE): Define. - (FUNCTION_PROFILER): Define. - * config/ia64/sysv4.h (ASM_OUTPUT_CONSTRUCTOR): Don't generate - @fptr() directive when -mno-pic or -mauto-pic is in effect. - (ASM_OUTPUT_DESTRUCTOR): Ditto. - -2000-05-03 Richard Henderson - - * Makefile.in (STAGESTUFF): Add libgcc libgcc.mk. - (libgcc1.null, libgcc1.cross, libgcc1.a): Remove targets. - (libgcc1-asm.a, libgcc1.S, libgcc2.a): Remove targets. - (mklibgcc, libgcc.mk): New targets. - (libgcc.a): Use libgcc.mk. - (stmp-multilib): Likewise. - (stmp-multilib-sub): Remove. - (mostlyclean): Don't delete libgcc2 temp files. - * configure.in (AC_PROG_CC_C_O): Add. - (NO_MINUS_C_MINUS_O): Substitute it. - (all_outputs): Add mklibgcc. - * mklibgcc.in: New file. - -2000-05-03 Jason Merrill - - * cppexp.c (op_t): Make an int. - - * rtlanal.c (dead_or_set_regno_p): Remove unused variable. - - * varasm.c (initializer_constant_valid_p): Fix parenthesis. - - * gensupport.c (process_rtx): Fix macros used. - -2000-05-03 Richard Henderson - - * flow.c (propagate_one_insn): Also don't PROP_REG_INFO for - call-clobbered registers of a call. - -Wed May 3 12:40:53 2000 Clinton Popetz - - * gensupport.c: New file. - * gensupport.h: New file. - * Makefile.in (HOST_RTL): Depend on gensupport. - (gensupport.o) New rule. - * genattr.c: Use gensupport for reading .md files. - * genattrtab.c: Ditto. - * gencodes.c: Ditto. - * genconfig.c: Ditto. - * genemit.c: Ditto. - * genextract.c: Ditto. - * genflags.c: Ditto. - * genopinit.c: Ditto. - * genoutput.c: Ditto. - * genpeep.c: Ditto. - * genrecog.c: Ditto. - * rtl.def (define_insn_and_split): New DEF_RTL_EXPR. - * md.texi (Insn Splitting): Document define_insn_and_split. - -Tue May 2 00:20:30 2000 Jason Eckhardt - - * flow.c (verify_flow_info): Added two more sanity checks. The - first checks that the blocks are numbered consecutively. The second - checks that n_basic_blocks is actually equal to the number of - basic blocks in the insn chain. - -2000-05-03 Zack Weinberg - - * cpplib.h: Add accessor macros for token lists. - * cpplib.c, cpphash.c, cpplex.c: Use them. - -Wed May 3 09:29:17 2000 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): Don't check for checking - memory usage if not in a function. - * varasm.c (initializer_constant_valid_p, case ADDR_EXPR): Only - return address if static. - -Wed May 3 13:14:49 MET DST 2000 Jan Hubicka - - * ifcvt.c (noce_try_cmove_arith): Use may_trap_p to thest - whether address may trap. - -Tue May 2 23:38:37 2000 Jason Eckhardt - - * bb-reorder (chain_reorder_blocks): Changed code to test for - EDGE_FALLTHRU rather than making erroneous assumption that the - first outgoing edge is the fall-through edge. - -Tue May 2 18:20:31 2000 Donald Lindsay - - * config/mips/mips.c (mips_build_va_list,mips_va_start,mips_va_arg): new - ABI for varargs, across all MIPS. This is incompatible because the - va_list (__builtin_va_list) structure is different, so a compilation - unit passing a va_list and a compilation unit being passed one, should - both be compiled with the same ABI. (The old structure had two - pointers, now it has three.) - -Tue May 2 19:18:43 2000 Jason Eckhardt - - * bb-reorder.c (struct reorder_block_def): Remove members end, - block_begin, and block_end. - (REORDER_BLOCK_OLD_END): Delete. - (REORDER_BLOCK_BEGIN): Delete. - (REORDER_BLOCK_END): Delete. - (chain_reorder_blocks): Remove dead code. - -Tue May 2 17:06:53 2000 Jason Eckhardt - - * bb-reorder.c (remove_scope_notes): Check for both types of scope - notes as the end of a basic block before deleting. - -2000-05-02 Mumit Khan - - * final.c (final_start_function): Fix spelling of "necessary". - -2000-05-02 Jason Merrill - - * toplev.c (debug_ignore_block): Return int. - * dwarf2out.c (dwarf2out_ignore_block): Likewise. - * toplev.h, dwarf2out.h: Adjust. - * emit-rtl.c (remove_unnecessary_notes): Test return value. - - * emit-rtl.c (remove_unnecessary_notes): Fix spelling of "necessary". - * toplev.c, final.c, rtl.h: Adjust. - -2000-05-02 Zack Weinberg - - * aclocal.m4 (gcc_AC_CHECK_PROG_VER): New macro. - * configure.in: Look for makeinfo in the unified tree, then - for a system makeinfo which is sufficiently new. - * Makefile.in: If configure says makeinfo is too old, don't - build or install Info documentation. - -2000-05-02 Zack Weinberg - - * cpphash.c (collect_params): Fix off-by-one error. - (dump_hash_helper): Dump all four macro nodetypes. - -2000-05-02 Jakub Jelinek - - * cpphash.c (trad_stringify): Adjust p after stringification as - well. - -2000-05-02 Zack Weinberg - - * cpplib.h (CPP_POP, parse_cleanup_t): Delete. - (cpp_buffer): Remove cleanup, seen_eof, manual_pop members. - - * cppfiles.c (file_cleanup): Delete. - * cpphash.c (macro_cleanup): Delete. - (collect_objlike_expansion, collect_funlike_expansion, - macarg, scan_arguments): Remove CPP_POP case. - - * cpplex.c (null_cleanup): Delete. - (cpp_pop_buffer): Do the work that was done in the cleanups - here. Call _cpp_unwind_if_stack from here. - (_cpp_expand_to_buffer, cpp_scan_buffer_nooutput, - cpp_scan_buffer): Run until we see CPP_EOF and the top of - stack is the buffer _below_ the one we stacked. - (cpp_get_token): Always pop an exhausted buffer. Return - CPP_EOF unless it's a macro buffer. Don't call _cpp_handle_eof. - * cpplib.c (skip_if_group): Don't call cpp_get_token to - increment the line number. - (_cpp_handle_eof): Rename to _cpp_unwind_if_stack. - - * fix-header.c (read_scan_file) [parsing getchar()]: Run until - we see CPP_EOF and the top of stack is the buffer _below_ the - one we stacked. - * scan-decls.c: Likewise. - -2000-05-02 Andrew Haley - - * config/ia64/ia64.c (ia64_encode_section_info): Handle the case - where this function is called for the second time on a decl that - has had its section info changed in such a way as to move it out - of small data/bss. - * config/ia64/ia64.h (REDO_SECTION_INFO_P): New definition. - -2000-05-01 Richard Henderson - - * ifcvt.c (dead_or_predicable): Set merge_bb->end to the insn before - the sequence we're moving, not to merge_bb->head. - -2000-05-01 Richard Henderson - - * configure.in (alpha*-*-linux-gnulibc1*) [tmake_file]: Remove - reference to alpha/t-linux. - (alpha*-*-linux-gnu*): Likewise. - * configure: Rebuild. - - * calls.c (expand_call): Don't emit reg notes for a sibcall. - - * flow.c (calculate_global_regs_live): Skip for_each_successor_phi - if not in SSA form. - - * ifcvt.c (if_convert): Only verify_flow_info if ENABLE_CHECKING. - -2000-05-01 Jason Merrill - - * integrate.c (copy_decl_for_inlining): Copy TREE_READONLY and - TREE_THIS_VOLATILE. - -2000-05-01 Richard Henderson - - * ifcvt.c (noce_emit_cmove): Conditionally compile call to - emit_conditional_move. - -2000-05-01 Jakub Jelinek - - * config/ia64/linux.h (LINK_SPEC): Use /lib/ld-linux-ia64.so.1 - as the dynamic linker. - -2000-05-01 Zack Weinberg - - * cppfiles.c (open_include_file): Open file in blocking mode. - (read_include_file): Don't fcntl(fd, F_SETFL, 0) anymore. - Only exclude block devices and directories. - - * cpphash.c (_cpp_make_hashnode): Rename make_HASHNODE, now - static. Allocate the hashnode and its string in the same - block of memory. - (del_HASHNODE): Don't free h->name. - (_cpp_lookup): If there is no entry for this string, create - one, of type T_VOID. - (_cpp_lookup_slot): Delete. - * cpphash.h: Update prototypes. - - * cpplex.c (maybe_macroexpand): Check for hp->type == T_VOID, - not hp == NULL. - * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert, - do_unassert, cpp_defined): Use _cpp_lookup. Don't create a - node here, just fill in the value field properly. "Delete" - entries by setting the value field to T_VOID. Check for - hp->type == T_VOID, not hp == NULL. - - * Makefile.in (cpplib.o): Don't depend on $(HASHTAB_H). - * cpperror.c, cppexp.c, cpplex.c, cpplib.c: Don't include - hashtab.h. - -2000-05-01 Alexandre Oliva - - * config/mn10300/mn10300.c (print_operand_address): Do not add - zero to SP. - - * config/mn10300/mn10300.c (expand_epilogue): If SP is to be - adjusted by less than 256 bytes, use ret regardless of having any - callee-saved register to restore. - -2000-05-01 Laurynas Biveinis - - * tm.texi (TARGET_HAS_F_SETFLKW): Fix typo. - -2000-05-01 Mark Elbrecht - - * config/i386/djgpp.h (INT_ASM_OP): Define. - (CPP_PREDEFINES): Rename MSDOS to __MSDOS__. - (ASM_WEAKEN_LABEL): Define. - (MASK_BNU210): Define. - (SUBTARGET_SWITCHES): Define. - (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY): Define. - (MAKE_DECL_ONE_ONLY): Define. - (UNIQUE_SECTION_P, UNIQUE_SECTION): Define. - -2000-05-01 Mumit Khan - - * i386/cygwin.h (INT_ASM_OP): Define. - -Mon May 1 18:20:06 2000 Denis Chertykov - - * config/avr/avr.c (address_cost): renamed to avr_address_cost. - * config/avr/avr.h (ADDRESS_COST): use avr_address_cost. - -Mon May 1 17:50:44 2000 Denis Chertykov - - * config/avr/avr.c (asm_file_start): output 0 as r0 and 1 as r1 in - __tmp_reg__ and __zero_reg__ initialization. - -2000-04-30 Richard Henderson - - * flow.c (propagate_one_insn): Mark sets even when the insn is dead. - - * ifcvt.c (noce_process_if_block): Fail the conversion if X is - referenced bewteen the condition and the jump. Don't delete - anything but the jump. - -Sun Apr 30 22:48:24 2000 Jason Eckhardt - - * bb-reorder.c (scope_def): New struct. - (scope_forest_info): New struct. - (struct reorder_block_def): New member "scope". - (REORDER_BLOCK_SCOPE): New macro. - (relate_bbs_with_scopes): New function and prototype. - (make_new_scope): Likewise. - (build_scope_forest): Likewise. - (remove_scope_notes): Likewise. - (insert_intra_1): Likewise. - (insert_intra_bb_scope_notes): Likewise. - (insert_inter_bb_scope_notes): Likewise. - (rebuild_scope_notes): Likewise. - (free_scope_forest_1): Likewise. - (free_scope_forest): Likewise. - (dump_scope_forest): Likewise. - (dump_scope_forest_1): Likewise. - (chain_reorder_blocks): Set REORDER_BLOCK_SCOPE for new block. - Update REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for new - block. - (reorder_basic_blocks): Added calls to build_scope_scope_forest - and remove_scope_notes before reordering is done. Added calls to - rebuild_scope_notes, free_scope_forest, and reorder_blocks after - after reordering is done. - -2000-40-30 Bruce Korb - - * fixinc/inclhack.def: Added definitions needed by OSR5, - removed two stale entries (defined away with OLD_CPP). - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -2000-04-30 Richard Henderson - - * ifcvt.c (dead_or_predicable): Manually squeeze non-movable notes - from the last insn in the sequence. - -2000-04-30 Zack Weinberg - - * cpplex.c (cpp_idcmp): New function. - * cpplib.h: Prototype it. - * scan_decls.c (scan_decls): Use it to inspect token names. - * fix-header.c (read_scan_file): Likewise. Set system_header_p on - the file being run through the preprocessor. - (check_macro_names): Provide length of token to cpp_defined. - - * Makefile.in: Remove stale warning message. - - * cppfiles.c (redundant_include_p): Provide length of token to - cpp_defined. - * cpphash.c (_cpp_make_hashnode, _cpp_lookup_slot): Hash - values are unsigned int. - (_cpp_lookup, _cpp_lookup_slot): Do not calculate the length. - (_cpp_lookup_slot): Do not calculate the hash, either. - * cpphash.h: Update prototypes. - * cpplib.c (do_define, do_undef, do_pragma_poison, do_assert): - Hashes are unsigned int. Calculate hash here, pass by value - to _cpp_lookup_slot. - -2000-04-30 Bernd Schmidt - - * simplify-rtx.c (check_value_useless): Delete function. - (discard_useless_locs): Don't call it; manage N_USELES_VALUES counter - by hand. - (cselib_invalidate_regno): Likewise. - (cselib_invalidate_mem_1): Likewise. - (references_value_p): Recognize useless values by the fact that they - have no locations. - (discard_useless_values): Likewise. - (cselib_record_set): This may turn a useless value - into a useful one. - -2000-04-30 Richard Henderson - - * config/d30v: New port. - - * configure.in (d30v-*): Set fp format. - * configure: Rebuild. - -2000-04-30 Richard Henderson - - * ifcvt.c: New file. - * Makefile.in (OBJS): Add it. - (ifcvt.o): New target. - * jump.c (jump_optimize_1): Remove all code related to if-conversion, - and conditional arithmetic. - (find_insert_position): Remove. - * timevar.def (TV_IFCVT, TV_IFCVT2): New. - * toplev.c (DFI_ce, DFI_ce2): New. - (dump_file): Add ce and ce2 dumps. - (rest_of_compilation): Run if_convert a couple o times. Set - cse_not_expected after cse2. Don't set no_new_pseudos until - after sched1 or recompute_reg_usage. - -2000-04-30 Richard Henderson - - * config/alpha/t-crtbe (crtbegin.o): Add "-I.". - (crtend.o, crtbeginS.o, crtendS.o): Likewise. - -2000-04-30 Richard Henderson - - * flow.c (struct reg_cond_life_info): New. - (struct propagate_block_info): Add reg_cond_dead and reg_cond_reg. - (init_propagate_block_info): Initialize them. - (free_propagate_block_info): Destruct them. - (mark_set_1): Consider conditional life before killing a register. - (mark_regno_cond_dead): New. - (free_reg_cond_life_info): New. - (flush_reg_cond_reg_1, flush_reg_cond_reg): New. - (ior_reg_cond, not_reg_cond, nand_reg_cond): New. - (mark_used_reg): Record conditional life. - - * haifa-sched.c (schedule_insns): Disable death counting - sanity check for HAVE_conditional_execution. - -2000-04-30 Richard Henderson - - * Makefile.in (TIMEVAR_H): New. - (ggc-simple.o, ggc-page.o, toplev.o, timevar.o): Use it. - (timevar.h): Remove rule. - -2000-04-29 Richard Henderson - - * config/alpha/crtend.asm: Use C comments instead of #. - * config/alpha/crtbegin.asm: Likewise. Mark __dso_handle hidden. - - * config/alpha/elf.h (SELECT_SECTION): Treat CONSTRUCTOR like VAR_DECL. - -2000-04-29 Zack Weinberg - - * cpphash.h (enum node_type: Take out T_MCONST. - (union hashval): Move into struct hashnode. - (struct hashnode): Pack tighter. Remove file, line, col - members. - * cpphash.c: Constify most of the macro-definition structures. - (struct definition): Replace by struct object_defn - and struct funct_defn. Put file, line, column information - here. All users updated to match. - (_cpp_create_definition, _cpp_macroexpand): Remove special - case for #define WORD OTHERWORD. - * cpplib.c (do_undef): Remove T_MCONST case. - - * cpphash.h: Move struct reflist, struct definition, and the - DEFINITION typedef to cpphash.c. Use 'struct definition *' in - union hashval. _cpp_free_definition takes a HASHNODE pointer. - * cpphash.c (_cpp_free_definition): Free data pointed to by - MCONST, XCONST, MACRO, and FMACRO nodes properly. - (_cpp_create_definition, del_HASHNODE): Just call - _cpp_free_definition to clear out a hashnode. - * cpplib.c (do_pragma_poison): Likewise. - -Sat Apr 29 12:25:17 2000 Alexandre Oliva - - * config/mn10300/mn10300.h (FIRST_DATA_REGNUM, - LAST_DATA_REGNUM, FIRST_ADDRESS_REGNUM, LAST_ADDRESS_REGNUM, - FIRST_EXTENDED_REGNUM, LAST_EXTENDED_REGNUM): New macros. - (REGNO_SP_P): Redefine in terms of STACK_POINTER_REGNUM. - (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_EXTENDED_P, - REGNO_AM33_P): Redefine in terms of the new macros. - (CONDITIONAL_REGISTER_USAGE, REGNO_REG_CLASS): Likewise. - (FUNCTION_VALUE, LIBCALL_VALUE, FUNCTION_VALUE_REGNO_P, - STRUCT_VALUE): Likewise. - (STACK_POINTER_REGNUM, FRAME_POINTER_REGNUM, - ARG_POINTER_REGNUM, STATIC_CHAIN_REGNUM): Likewise. Moved. - -Sat Apr 29 01:18:45 MET DST 2000 Jan Hubicka - - * regmove.c (struct record_stack_memrefs_data): New. - (record_stack_memrefs): New function. - (combine_stack_adjustments_for_block): Use it. - -Sat Apr 29 01:15:27 MET DST 2000 Jan Hubicka - - * calls.c (calls_function_1): Properly handle TREE_LIST expressions; - use special_function_p to detect alloca. - -Fri Apr 28 16:30:33 2000 Marc Espie - - * gcc.texi: Fixes for makeinfo 4.0 --html. - -2000-04-28 Zack Weinberg - - * pcp.h: Delete file. - -2000-04-28 Kazu Hirata - - * h8300.c (function_epilogue): Clean up flags when the last insn - in a function is a barrier. - -2000-04-28 Chris Demetriou - - * configure.in (sparc-hal-solaris2*): protect [] glob from - my expansion. - (mips*-*-ecoff*, mips*-*-elf*, mips*-*-*): use MASK_ defines - rather than hard-coded constants in target_cpu_default2. - * configure: Regenerate. - -2000-04-28 Jason Merrill - - * tree.c (get_callee_fndecl): Extract the initial value from - a readonly decl. - -2000-04-28 Richard Henderson - - * varasm.c (record_constant_1): Record the CODE_LABEL when - taking the address of a LABEL_REF. - -2000-04-28 Richard Henderson - Jan Hubicka - - * calls.c (combine_pending_stack_adjustment_and_call): Return the - adjustment; don't do the stack adjust. - (expand_call): Call compute_argument_block_size right before - allocating the block; update comment; don't do alignment sanity - checking for sibling call; use args_size instead of - unadjusted_args_size before args_size is adjusted. Use - combine_pending_stack_adjustment_and_call to compute stack adjust - for must_preallocate case. - - * expr.c (push_block): Remove shadow `temp' in inner scope. - -2000-04-28 Jason Merrill - - * toplev.c (rest_of_compilation): Call - note_deferral_of_defined_inline_function even if the function - can't be inlined. - -2000-04-28 Scott Bambrough - - * cpplex.c (_cpp_scan_line): Fix buffer overwrite. - -2000-04-28 Richard Henderson - - * toplev.c (rest_of_type_compilation): Fix sdb TIMEVAR typo. - -2000-04-28 Kaveh R. Ghazi - - * timevar.c (init_timevar): DeANSIfy function definition. - -2000-04-27 Alex Samuel - - * Makefile.in (timevar.o): Depend on flags.h. - * timevar.c (unused_stack_instances): New variable. - (timevar_push): Take a timevar_stack_def from - unused_stack_instances if available. - (timevar_pop): Push the popped timevar_stack_def onto - unused_stack_instances. - (TIMEVAR_ENABLE): New macro. - (timevar_def): Make standalone a 1-bit field. Add field used. - (get_time): Rename parameter to now. Return after clearing it if - not TIMEVAR_ENABLE. - (init_timevar): Do nothing if not TIMEVAR_ENABLE. - (timevar_pop): Likewise. - (timevar_stop): Likewise. - (timevar_push): Likewise. Mark the timing variable as used. - (timevar_start): Likewise. - (timevar_print): Do nothing if not TIMEVAR_ENABLE. Don't print - timevars that were never used. - -2000-04-27 Mark Mitchell - - * c-common.c (c_apply_type_quals_to_decl): REFERENCE_TYPES are - always TREE_READONLY. - -2000-04-27 Ulrich Drepper - - * i386.h (FUNCTION_BLOCK_PROFILER_EXIT): Generate mem reference - for call instruction with mode QImode. - -2000-04-27 Alex Samuel - - * Makefile.in (OBJS): Add timevar.o. - (toplev.o): Depend on timevar.h. - (ggc-simple.o): Likewise. - (ggc-page.o): Likewise. - (timevar.o): New rule. - (timevar.h): New rule. - - * timevar.h: New file. - * timevar.c: Likewise. - * timevar.def: Likewise. - - * toplev.h (gc_time, parse_time, varconst_time): Remove. - * toplev.c: Use timevar_push and timevar_pop instead of TIMEVAR - throughout. - (TIMEVAR): Remove macro. - (gc_time, parse_time, varconst_time, integration_time, jump_time, - cse_time, gcse_time, loop_time, cse2_time, branch_prob_time, - flow_time, combine_time, regmove_time, sched_time, - local_alloc_time, global_alloc_time, flow2_time, peephole2_time, - sched2_time, dbr_sched_time, reorder_blocks_time, - rename_registers_time, shorten_branch_time, stack_reg_time, - to_ssa_time, from_ssa_time, final_time, symout_time, dump_time, - all_time): Remove. - (compile_file): Don't initialize time variables. Call - init_timevar and start TV_TOTAL timer. Call timevar_print instead - of many calls to print_time. - (rest_of_compilation): Add timing for reload_cse_regs. - (get_run_time): Removed to timevar.c. - (print_time): Likewise. - (get_run_time): Implement using TV_TOTAL time variable. - (print_time): Get total run time from get_run_time. - * ggc-page.c (ggc_collect): Push and pop TV_GC instead of - computing elapsed time explicitly. - * ggc-simple.c (ggc_collect): Likewise. - (gc_time): Remove declaration. - -2000-04-27 Mark Mitchell - - * calls.c (combine_pending_stack_adjustment_and_call): New function. - (expand_call): Use it. - -2000-04-27 Jan Hubicka - - * flow.c (mark_set_1): Handle MEMs in ZERO_EXTRACT/SIGN_EXTRACT - fields. - -Thu Apr 27 12:47:00 2000 Alexandre Oliva - - * config/mn10300/mn10300.md (movhi): Simplify. Prefer data - registers. - -Thu Apr 27 17:33:05 MET DST 2000 Jan Hubicka - - * function.c (epilogue_done): Pass whole insn to record_insns. - -Thu Apr 27 16:55:28 MET DST 2000 Jan Hubicka - - * cse.c (CSE_ADDRESS_COST): Remove. - (find_best_addr): Add new parameter "MODE", use address_cost instead - of CSE_ADDRESS_COST - (address_cost): New. - (fold_rtx): Update call of find_best_addr. - * rtl.h (address_cost): Declare. - * loop.c (general_induction_var): Add new parameter "MODE", use - address_cost instead of ADDRESS_COST - (init_loop): Use address_cost instead of ADDRESS_COST. - (check_insn_for_givs): Update call of general_induction_var. - (find_mem_givs): Likewise. - (consec_sets_giv): Likewise. - * config/i386/i386.h (ADDRESS_COST): Call ix86_address_cost. - * i386.c (ix86_address_cost): New. - * i386-protos.h (ix86_address_cost): Declare. - -Thu Apr 27 11:45:16 2000 Alexandre Oliva - - * config/mn10300/mn10300.md (movqi): Simplify. Prefer data - registers. - -Thu Apr 27 16:11:00 MET DST 2000 Jan Hubicka - - * expr.c (store_expr): Use clear_storage instead of direct memset - libcall. - -Thu Apr 27 10:36:51 2000 Alexandre Oliva - - * config/mn10300/mn10300.c (mn10300_address_cost): Test - ASHIFT, AND and LABEL_REF. - -Thu Apr 27 15:08:46 MET DST 2000 Jan Hubicka - - * invoke.texi (-foptimize-sibling-calls): Fix. - -Thu Apr 27 14:54:22 MET DST 2000 Jan Hubicka - - * loop.c (load_mems) Don't use hard registers for the hoisting. - - * unroll.c (unroll_loop): Avoid overflow in the n_iterations - calculation; rename const_equiv array in the preconditioning code - from loop_unroll to loop_unroll_precondition - -2000-04-27 Richard Henderson - - * flow.c (struct propagate_block_info): Remove new_dead, new_live; - add new_set. - (propagate_one_insn): Clear it. Don't update reg_live here. - (init_propagate_block_info): Update for pbi member changes. - (free_propagate_block_info): Likewise. - (mark_set_1): Know that zero_extract, sign_extract, and - strict_low_part don't kill their argument. Alter hard subregs. - Update new_set for non-CLOBBER sets. Update reg_live. - (find_auto_inc): Update reg_live, not new_dead. - (mark_used_reg): Update reg_live, not new_live. Examine new_set - to determine if the reg in question was set this insn. Only update - reg info with PROP_REG_INFO. - -2000-04-26 Richard Henderson - - * flow.c (allocate_reg_life_data): Set max_regno here ... - (life_analysis): ... not here. - - * flow.c (calculate_global_regs_live): Force stack pointer - live at end. - -2000-04-26 Richard Henderson - - * jump.c (redirect_exp_1): Rework from old redirect_exp. Never - commit change group changes. - (invert_exp_1): Similarly. - (redirect_exp, invert_exp): Use them. - (redirect_jump_1): New. - (invert_jump_1): New. - (jump_optimize_1): Remove code subsumed by condexec.c. - * rtl.h (invert_jump_1, redirect_jump_1): Declare. - -2000-04-26 Richard Henderson - - * rtlanal.c (dead_or_set_regno_p): Use find_regno_note. - - * genconfig.c (main): Set all HAVE_foo to 1. - - * graph.c (node_data): Use GET_NOTE_INSN_NAME instead of local array. - -2000-04-26 Alex Samuel - - * invoke.texi: Document -fssa flag. - -2000-04-26 Richard Henderson - - * flow.c (count_reg_sets_1): Remove. - (count_reg_sets, count_reg_references): Remove. - (recompute_reg_usage): Implement with update_life_info. - Reallocate life data. - -2000-04-26 Richard Henderson - - * flow.c (update_life_info): Consider blocks null to mean the - universal set. - (calculate_global_regs_live): Likewise. - (life_analysis): Do that instead of collecting all_blocks. - -2000-04-26 Richard Henderson - - * flow.c (tidy_fallthru_edge): Don't delete the jump when it's - a still-valid conditional jump. - -2000-04-26 Richard Henderson - - * jump.c (invert_jump): Always invert REG_BR_PROB. Do it correctly. - - * bb-reorder.c (reorder_basic_blocks): Don't run estimate_probability. - * flow.c (calculate_loop_depth): Remove. - * output.h (calculate_loop_depth): Don't declare. - * toplev.c (rest_of_compilation): Expand calculate_loop_depth - inline; run estimate_probability at the same time. - -2000-04-26 Neil Booth - - * cpplib.h: "~=" is not a single pp-token. - * cpplex.c: Correct commentary. - -2000-04-26 Richard Henderson - - * flow.c (mark_set_1): New arguments code and flags; update all - callers. Track regno_first and regno_last; do HARD_REGNO_NREGS - test in one place. Tidy flags tests. Don't bias REG_N_REFS by - loop_depth when optimizing for size. Do new_dead update after - emitting REG_UNUSED notes. Merge mark_set_reg code. - (mark_set_reg): Remove. - (propagate_one_insn): Use mark_set_1 for call-clobbered registers; - arrange to not emit REG_UNUSED notes. - -2000-04-26 Richard Henderson - - * flow.c (find_auto_inc): Use pbi->bb instead of BLOCK_FOR_INSN. - * ssa.c (convert_from_ssa): Don't run compute_bb_for_insn. - -2000-04-26 Richard Henderson - - * flow.c (propagate_one_insn): Break out from propagate_block. - (init_propagate_block_info): Likewise. - (free_propagate_block_info): Likewise. - (propagate_block): Use them. Export. - * basic-block.h: Declare them all. - -2000-04-26 Richard Henderson - - * basic-block.h (life_analysis): Declare here ... - * output.h: ... not here. - * flow.c (life_analysis): Remove nregs parameter; replace - remove_dead_code with flags. Remove ssa dead code check. - Only init alias analysis if we'll use it. - * reg-stack.c (reg_to_stack): Update life_analysis arguments. - * ssa.c (convert_to_ssa): Likewise. - (convert_from_ssa): Likewise. - * toplev.c (rest_of_compilation): Likewise. - -2000-04-26 Richard Henderson - - * flow.c (flow_delete_block): Rename from delete_block. Export. - * basic-block.h (flow_delete_block): Declare. - -2000-04-26 David S. Miller - - * optabs.c (emit_libcall_block): Verify insns with INSN_P before - taking a PATTERN of it. - -2000-04-26 - - * cpplex.c (spell_other, spell_char): Remove. - (SPELL_CHAR): New. - (token_spelling, trigraph_map): Use unsigned chars. - (_cpp_lex_line): Tidy up the switch statement. - * cpplib.h: Implement spell_char with spell_string. - (C): New. - -2000-04-26 - - * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Warning removal. - * pa/pa64-regs.h (HARD_REGNO_MODE_OK): Warning removal. - -2000-04-26 Kaveh R. Ghazi - - * dwarf2out.c (dw_cfi_oprnd_struct, dw_fde_struct, add_fde_cfi, - reg_save, dwarf2out_frame_debug_expr, dwarf2out_def_cfa, - dwarf2out_window_save, dwarf2out_args_size, dwarf2out_reg_save, - dwarf2out_return_save, dwarf2out_return_reg, - dwarf2out_stack_adjust, dwarf2out_frame_debug, primary_filename, - add_AT_lbl_id, add_AT_lbl_offset, type_tag, decl_start_label, - gen_compile_unit_die, dwarf2out_init): Constify a char*. - - * dwarf2out.h (dwarf2out_init): Likewise. - - * dwarfout.c (filename_entry, primary_filename, last_filename, - type_tag, output_compile_unit_die, dwarfout_init): Likewise. - - * tree.h (dwarf2out_def_cfa, dwarf2out_window_save, - dwarf2out_args_size, dwarf2out_reg_save, dwarf2out_return_save, - dwarf2out_return_reg): Likewise. - -2000-04-26 Andreas Jaeger - - * extend.texi (Function Attributes): Fix description of pure - attribute. - -2000-04-26 Jason Merrill - - * integrate.c (output_inline_function): Do clear DECL_DEFER_OUTPUT - before calling rest_of_compilation. - -2000-04-26 Andreas Jaeger - - * config/mips/linux.h: Remove erroneous commit of #if 0/#endif in - last patch. - -2000-04-25 Richard Henderson - - * cse.c (cse_insn): Emit barrier after unconditional jump. - - * calls.c (expand_call): Disable tail call generation once - rtx_equal_function_value_matters is false. - - * reg-stack.c (convert_regs_1): Treat EDGE_ABNORMAL_CALL edges - like EDGE_EH edges. - -2000-04-25 Jason Merrill - - * dwarf2out.c (add_bound_info): Don't crash on an unexpanded SAVE_EXPR. - - * dwarfout.c (output_decl): Ignore NAMESPACE_DECLs. - - * dwarf2out.c (gen_subprogram_die): The class-scope declaration DIE - is the primary DIE for a member function. - (gen_decl_die): Call set_decl_origin_self here. - * dwarfout.c (output_decl): And here. - * integrate.c (output_inline_function): Not here. - Don't clear DECL_INLINE until after calling rest_of_compilation. - (set_decl_origin_self): No longer static. - * tree.h: Add prototype. - * toplev.c (note_deferral_of_defined_inline_function): Only write - out abstract instance for actual inlines. - -2000-04-25 Alexandre Oliva - - * config/mn10300/mn10300.h (REG_CLASS_FROM_LETTER): Return - EXTENDED_REGS only if TARGET_AM33. - * config/mn10300/mn10300.md (movsi, addsi): Avoid exposing - SP_REGS to register allocation and reloading unless absolutely - necessary. - (movsi3): Remove special-case of adding non-constants to SP. - -2000-04-25 Kaveh R. Ghazi - - * aclocal.m4 (gcc_AC_NEED_DECLARATION): This macro now requires - INCLUDES to search and does not provide any of its own. Also it - now accepts optional ACTION-IF-NEEDED and ACTION-IF-NOT-NEEDED - parameters. Also it does not call AC_DEFINE. - (gcc_AC_NEED_DECLARATIONS): Likewise. Also this macro now calls - AC_DEFINE and provides for automatic entries for autoheader. - (gcc_AC_FUNC_PRINTF_PTR): Cleanup C code in test. - - * configure.in (gcc_AC_NEED_DECLARATIONS): Save and restore CFLAGS - so we can pass -I flags and include gansidecl.h/system.h in this - test. - - * acconfig.h: Delete all NEED_DECLARATION_* entries. - -2000-04-25 Kaveh R. Ghazi - - * acconfig.h (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, - ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, - ENABLE_GC_ALWAYS_COLLECT): Delete entries. - - * configure.in (ENABLE_STD_NAMESPACE, ENABLE_CHECKING, - ENABLE_TREE_CHECKING, ENABLE_RTL_CHECKING, ENABLE_GC_CHECKING, - ENABLE_GC_ALWAYS_COLLECT): Use three argument form of AC_DEFINE - for these macros. Clean up spacing and linewraps. - -2000-04-26 Jason Merrill - - * calls.c (expand_call): Use get_callee_fndecl. - - * print-tree.c (print_node): Print the chain of an _EXPR. - -Tue Apr 25 16:16:04 2000 Andrew MacLeod - Jim Wilson - Andrew Haley - - * config/ia64/crtbegin.asm: Add IA-64 unwind support. Correct alloc - and gp save/restore problems. - * config/ia64/crtend.asm: Add IA-64 unwind support. - * config/ia64/ia64.c (ia64_compute_frame_size): Don't include pr_size - in fr_pad_size calculation. - (save_restore_insns): Move PR save area. Correct uses of - RTX_FRAME_RELATED_P. - (ia64_expand_prologue): Mark alloc with RTX_FRAME_RELATED_P. - (ia64_expand_epilogue): Add eh_epilogue support. - (ia64_function_prologue): Emit .prologue directive. - (ia64_init_machine_status, ia64_mark_machine_status): New functions. - (ia64_override_options): Set init_machine_status and - mark_machine_status. - (rtx_needs_barrier): Handle bsp reads and writes. - (spill_offset, sp_offset, spill_offset_emitted, tmp_reg, tmp_saved): - New static variables. - (process_set, process_for_unwind_directive): New functions. - * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR, ASM_OUTPUT_XDATA_SHORT, - ASM_OUTPUT_XDATA_INT, ASM_OUTPUT_XDATA_DOUBLE_INT, ASM_OUTPUT_EH_CHAR, - ASM_OUTPUT_EH_SHORT, ASM_OUTPUT_EH_INT, ASM_OUTPUT_EH_DOUBLE_INT): New - macros. - (EH_FRAME_SECTION_ASM_OP): Define to IA_64.unwind section. - (IA64_UNWIND_INFO, HANDLER_SECTION, IA64_UNWIND_EMIT): Define. - (struct machine_function): Define. - * config/ia64/ia64.md (bsp_value, set_bsp, eh_epilogue): New patterns. - -2000-04-25 Bruce Korb - - * fixinc/Makefile.in: make the removal of old programs more - robust - * fixinc/mkfixinc.sh: use the two new targets in the Makefile: - install-bin and install-sh - -2000-04-25 Nick Clifton - - * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): If not - defined, define to return zero. - (function_cannot_inline_p): If a function has any target - specific attributes, then use the macro - FUNCTION_ATTRIBUTE_INLINABLE_P to allow the target to decide - whether it can be inlined. If it cannot, issue a suitable - explanation. - - * tm.texi: Add a new node 'Inlining' to document the new macro - FUNCTION_ATTRIBUTE_INLINABLE_P. - -2000-04-25 Zack Weinberg - - * cpplib.h (struct cpp_buffer): Add 'mapped' flag; fix - commentary. - -2000-04-25 Neil Booth - - Restore previous patch, plus the following fixes: - - * cpphash.c (_cpp_create_definition): Test PREV_WHITESPACE in - flags, not CPP_OPEN_PAREN. - * cpplex.c (expand_token_space, init_token_list, - cpp_free_token_list): Put the dummy token at list->tokens[-1]. - (_cpp_lex_line, _cpp_lex_file): token list is 0-based. - -Tue Apr 25 14:06:40 2000 Alexandre Oliva - - * config/i386/freebsd.h (INT_ASM_OP): Define. - -Tue Apr 25 14:51:07 MET DST 2000 Jan Hubicka - - * loop.c (strength_reduce): Fix typo in the last checkin. - -Tue Apr 25 07:33:12 2000 Richard Kenner - - * stor-layout.c (finalize_record_size): Simplify to use existing - functions. - (compute_record_mode): No longer static. - * tree.h (compute_record_mode): New declaration. - -2000-04-25 Neil Booth - - * Revert my patch below until cause of build failures - determined. - -2000-04-25 Richard Henderson - - * combine.c (combine_instructions): Add missing argument - to try_combine. - - * toplev.c (rest_of_compilation): Delay sibcall optimization - until after emit_eh_context. - -2000-04-24 Nick Clifton - - * combine.c (combine_instructions): Do not try to combine a - sequence of insns when the second insn has been replaced by a - note. - -Mon Apr 24 17:34:18 2000 Mumit Khan - - * gcc.c (load_specs): New static function. - (read_specs): Use it. - - * gcc.c (lookup_compiler): Make multiple passes for case - insensitive filesystems. - -2000-04-24 Neil Booth - - * cpphash.c: replace HSPACE_BEFORE with PREV_WHITESPACE. - * cpphash.h (_cpp_check_directive): new. - * cpplex.c (handle_newline, cpp_free_token_list, - init_trigraph_map, trigraph_ok, trigraph_replace, - backslash_start, skip_block_comment, skip_line_comment, - skip_whitespace, parse_name, parse_number, parse_string, - copy_comment, _cpp_lex_line, spell_char, spell_string, - spell_comment, spell_name, spell_other, _cpp_lex_file, - _cpp_output_list): new. - (expand_name_space): take length argument. - (init_token_list): add comment list initialisation. - (cpp_scan_line): use auto_expand_name_space. PREV_WHITESPACE - instead of HSPACE_BEFORE. - - * cpplib.c (_cpp_check_directive): new - * cpplib.h (cpp_name, PREV_WHITESPACE, PREV_COMMENT, - DIGRAPH, UNSIGNED_INT, TOK_NAME): new. - (HSPACE_BEFORE): delete. - (TTYPE_TABLE): rearrange. - (struct cpp_toklist): update. - -2000-04-24 Kaveh R. Ghazi - - * aclocal.m4 (gcc_AC_HEADER_STRING, gcc_AC_FUNC_PRINTF_PTR, - gcc_AC_C_VOLATILE, gcc_AC_FUNC_MKDIR_TAKES_ONE_ARG): Use the three - argument form of AC_DEFINE. - - * configure.in (DEFAULT_LINKER, DEFAULT_ASSEMBLER, - HAVE_INTTYPES_H, PACKAGE, VERSION, ENABLE_WIN32_REGISTRY, - WIN32_REGISTRY_KEY, HAVE_GAS_SUBSECTION_ORDERING, HAVE_GAS_WEAK, - HAVE_GAS_HIDDEN, HAVE_AS_REGISTER_PSEUDO_OP, AS_SPARC64_FLAG, - HAVE_AS_OFFSETABLE_LO10, ENABLE_NEW_GXX_ABI): Likewise. - - * acconfig.h: Delete stubs made redundant by 3-arg AC_DEFINE. - -2000-04-24 Kaveh R. Ghazi - - * Makefile.in (GCC_FOR_TARGET, GCC_CFLAGS, LIBGCC2_INCLUDES, - deduced.h): Use -isystem, not -I, for including system headers. - -2000-04-24 Nick Clifton - - * config/fr30/fr30.md (addsi3): Do not use small add instruction if - the source register is the frame pointer or arg pointer. - (addsi3_small_int): Disallow if source register is the frame - pointer or arg pointer. - -2000-04-24 Kaveh R. Ghazi - - * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Delete redundant - call to AC_MSG_RESULT. - -2000-04-24 Martin v. Löwis - - * invoke.texi: Correct grammatical errors, document - -fno-gnu-keywords as identical to -fno-asm for C++. - -2000-04-24 Kaveh R. Ghazi - - * aclocal.m4: (GCC_HEADER_STRING, GCC_NEED_DECLARATION, - GCC_NEED_DECLARATIONS, GCC_FUNC_VFPRINTF_DOPRNT, - GCC_FUNC_PRINTF_PTR, GCC_PROG_LN_S, GCC_PROG_LN, GCC_C_VOLATILE, - AC_GCC_C_LONG_DOUBLE, GCC_FUNC_MKDIR_TAKES_ONE_ARG, - EGCS_PROG_INSTALL): Rename autoconf macros with prefix gcc_AC_. - - * configure.in (AC_GCC_C_LONG_DOUBLE, GCC_PROG_LN, GCC_PROG_LN_S, - GCC_C_VOLATILE, EGCS_PROG_INSTALL, GCC_HEADER_STRING, - GCC_FUNC_VFPRINTF_DOPRNT, GCC_FUNC_PRINTF_PTR, - GCC_NEED_DECLARATIONS, GCC_FUNC_MKDIR_TAKES_ONE_ARG): Invoke with - new macros names. - -2000-04-24 Mumit Khan - - * c-pragma.c (push_alignment): Use BITS_PER_UNIT macro. - (pop_alignment): Likewise. - (handle_pragma_token): Likewise. - -2000-04-24 Robert Lipe - - * tree.h (tree_decl): Member `mode' now ENUM_BITFIELD. - -2000-04-24 Hiroyuki Machida - - * combine.c (try_combine): Update reg_nonzero_bits of - newi2pat before newpat. - -Mon Apr 24 10:19:48 MET DST 2000 Jan Hubicka - - * loop.c (strength_reduce): Simplify test to INSN_P. - (record_giv): Attempt to simplify the add value, use CONSTANT_P - expressions instead of CONST_INT. - (express_from_1): Likewise. - -2000-04-24 Mark Mitchell - - * regs.h (reg_n_max): Don't declare. - * flow.c (reg_n_max): Don't define. - * regclass.c (renumber): Don't initialize to zero. - (regno_allocated): Likewise. - (reg_n_max): Define. - (allocate_reg_info): Don't initialize unnecessarily. - -Mon Apr 24 00:21:36 2000 Jeffrey A Law (law@cygnus.com) - - * genattrtab.c (find_attr): Initialize unsigned_p, func_units_p - and blockage_p in the newly allocated attribute. - -Sun Apr 23 20:16:49 2000 Alexandre Oliva - - * config/mn10300/mn10300.md (addsi): `inc4' on address - registers does not modify cc, but `inc' on an extended - register does. - -Sun Apr 23 16:24:35 2000 Denis Chertykov - - * reload.c (find_equiv_reg): Checks all valueno regs - as a reload_reg_p regs. - -2000-04-23 Zack Weinberg - - * cpphash.c (collect_objlike_expansion): Add sanity check. - (special_symbol): Remove case T_CONST, T_XCONST, T_MCONST. If - the buffer is the empty string, return. Mark __DATE__ and - __TIME__ as XCONST nodes, not MCONST. - (_cpp_macroexpand): Avoid pushing an empty buffer. - (funlike_macroexpand): Don't pop token_buffer here. - -Sun Apr 23 18:37:53 2000 Alexandre Oliva - - * config/mn10300/mn10300.h (REGNO_IN_RANGE_P): New macro. - (REGNO_DATA_P, REGNO_ADDRESS_P, REGNO_SP_P): New macros. - (REGNO_EXTENDED_P, REGNO_AM33_P): New macros. - (REGNO_OK_FOR_BASE_P): Define in terms of them. - (REGNO_OK_FOR_BIT_BASE_P, REGNO_OK_FOR_INDEX_P): Likewise. - (REG_OK_FOR_BASE_P): Define in terms of the REGNO macro. - (REG_OK_FOR_BIT_BASE_P, REG_OK_FOR_INDEX_P): Likewise. - -Sun Apr 23 22:23:08 MET DST 2000 Jan Hubicka - - * loop.c (simplify_giv_expr): Be more agressive on simplifying - constant MULT givs. - -2000-04-23 Zack Weinberg - - * cpphash.h (struct definition): Move file, line, col members... - (struct hashnode): ... here. Also add 'disabled' flag. - (enum node_type): Add T_VOID, T_XCONST, T_FMACRO, and - T_IDENTITY. Remove T_DISABLED. - Update prototypes. - - * cpphash.c (_cpp_dump_definition): Split out dump_DEFINITION. - (collect_expansion): Split into collect_objlike_expansion and - collect_funlike_expansion. - (_cpp_macroexpand): Split out scan_arguments, stringify, and - funlike_macroexpand. - (_cpp_compare_defs): Rename compare_defs, make static. - (_cpp_make_hashnode): Initialize hp->disabled. - (macro_cleanup): Adjust for new token types. Clear - m->disabled. - (_cpp_create_definition): Move code here to determine what - sort of macro it is, and code to check for redefinitions, from - do_define. Implement a few simple cases without creating a - full DEFINITION. - (_cpp_macroexpand, special_symbol, _cpp_dump_definition): - Handle the simple cases. - (push_macro_expansion): Set buf->has_escapes and hp->disabled - here. - - * cppinit.c (builtin_array): Change MCONST to XCONST - everywhere. - * cpplex.c (maybe_macroexpand): Handle IDENTITY macros here; - fix check for disabled and function-like macros. - * cpplib.c (do_define): Move most logic to - _cpp_create_definition. - (do_undef): Handle new special token types. - -Sun Apr 23 14:27:44 MET DST 2000 Jan Hubicka - - * loop.c (maybe_eliminate_biv_1): Use GET_CODE (x) == CONST_INT instead - of CONSTANT_P for mult_val; always use validate_change to update insn. - -2000-04-22 Zack Weinberg - - * cpphash.c (trad_stringify, add_pat): New functions. - (collect_expansion): Restore support for -traditional syntax. - Use trad_stringify and add_pat. - (_cpp_macroexpand): Restore support for -traditional semantics. - * cpplex.c (_cpp_scan_line): Don't change space_before if we - get a COMMENT token. - (_cpp_lex_token): Provide COMMENT tokens to caller if - traditional and parsing_define_directive. - (skip_comment): Warn about // comments if -Wtraditional. - * cpplib.c (do_define): Fix typo. Create EMPTY nodes with - proper node type. - (do_undef): Don't warn about undefining EMPTY nodes. - -Sat Apr 22 22:35:38 MET DST 2000 Jan Hubicka - - * loop.c (strength_reduce): Fix biv removal code. - -2000-04-22 Richard Henderson - - * predict.c (estimate_probability): Examine both sides of - a branch for no exits. Use 90% not 50% for predict taken. - Reorg for one copy of note generation code. - -2000-04-22 Richard Henderson - - * flow.c (mark_used_reg): Hack around rs6000 eliminable pic reg. - -2000-04-22 Richard Henderson - - * diagnostic.c (init_output_buffer): Don't initialize format_args. - (output_clear): Likewise. - (output_printf): Use va_copy. - (vline_wrapper_message_with_location): Likewise. - (v_message_with_decl): Likewise. - (line_wrapper_printf): VA_START infor buffer.format_args directly. - * system.h (va_copy): Provide default implementation. - -2000-04-22 Richard Henderson - - * predict.c (expected_value_to_br_prob): Don't bomb if op1 of - the collected condition is not a constant. - -2000-04-22 Gabriel Dos Reis - - * diagnostic.h: New file. - - * Makefile.in (diagnostic.o): Depends on diagnostic.h - - * diagnostic.c: Tweak. Rationalize the output logic. Adjust - various function prototypes. - (diagnostic.h): #include. - (struct output_buffer): Move into diagnostic.h. - (get_output_prefix): Rename to output_get_prefix. Export. - (init_output_buffer): Export. Break out. Adjust initialization. - (output_space_left, output_append): Export. - (output_newline): Rename to output_add_newline. Export. - (output_clear): Nullify additional output_buffer fields. - (output_puts): Rename to output_add_string. Export. - (dump_output): Rename to output_flush_on. Export. - (build_location_prefix): Constify return-type. - (emit_output_prefix): Rename to output_emit_prefix. Export. - (set_real_maximum_length): New function. - (output_set_maximum_length): Ditto - (output_clear): Ditto. - (output_add_character): Ditto. - (output_add_integer): Ditto. - (output_add_space): Ditto. - (output_format): Ditto. - (output_printf): Adjust buffer initialization. - (vline_wrapper_message_with_location): Ditto. - (v_message_with_decl): Ditto. Adjust call to output_puts - and get_output_prefix. - (default_print_error_function): Adjust buffer initialization. - -Sat Apr 22 06:45:04 2000 Richard Kenner - - * expr.c (preexpand_calls, case CALL_EXPR): Don't look at TYPE_SIZE - of VOID_TYPE. - -Fri Apr 21 18:33:09 2000 Alexandre Oliva - - * config/mn10300/mn10300.h (REGNO_REG_CLASS): Use NO_REGS instead - of explicit 0. - -Fri Apr 21 18:30:00 2000 Alexandre Oliva - - * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more - accurate data about SP moves. - -Fri Apr 21 18:28:28 2000 Alexandre Oliva - - * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added - aliases to AM33 registers. - -Fri Apr 21 18:26:17 2000 Alexandre Oliva - - * config/mn10300/mn10300.h (REG_CLASS_CONTENTS): Added register 16 - to all EXTENDED bitmaps. - -Fri Apr 21 18:17:12 2000 Alexandre Oliva - - * config/mn10300/mn10300-protos.h (mn10300_address_cost): Declare. - * config/mn10300/mn10300.h (ADDRESS_COST): New macro. - * config/mn10300/mn10300.c (mn10300_address_cost): New function. - -Fri Apr 21 18:11:56 2000 Alexandre Oliva - - * config/mn10300/mn10300.md (movdi, movdf): Do not use `movu' when - the operand is not constant. - -Fri Apr 21 14:58:29 2000 Denis Chertykov - - * reload.c (find_equiv_reg): Checks all valueno and regno regs - as a call-clobbered regs. - -Fri Apr 21 13:30:26 2000 Richard Kenner - - * rtl.c: Use NOTE_INSN_REPEATED_LINE_NUMBER and NOTE_INSN_RANGE_BEG. - * rtl.h: Likewise. - * rtl.def: Update comment. - * function.c (expand_function): Use NOTE_INSN_REPEATED_LINE_NUMBER. - * integrate.c (expand_inline_function): Likewise. - * profile.c (branch_prob): Likewise. - * ggc-common.c (ggc_mark_rtx_children): Use NOTE_INSN_RANGE_BEG. - * print-rtl.c (print_rtx): Likewise. - * haifa-sched.c (sched_analyze, unlink_other_notes): Likewise. - (reemit_notes): Likewise; also use enum insn_note. - - * stor-layout.c (layout_decl): Only set DECL_MODE if not already set. - (place_field): Properly compute know and actual alignment. - - * gengenrtl.c (gencode): Write obstack_alloc_rtx function start - in proper format. - - * cse.c (cse_insn): In (set REG0 REG1) case, remove a REG_EQUAL - note for REG1. - -2000-04-21 Zack Weinberg - - * cpphash.c (struct arg, struct arglist): Const-ify strings. - (warn_trad_stringify, duplicate_arg_p): New helper functions. - (collect_expansion): Rewrite to scan over a token list. - Remove -traditional support. - (collect_formal_parameters): Rename to collect_params; rewrite - to scan over a token list. - (_cpp_create_definition): Adjust to scan a token list. - (_cpp_macroexpand): Remove -traditional support. - (_cpp_compare_defs): Whitespace is now canonicalized. - (comp_def_part): Delete function. - - * cpphash.h: Update prototypes. - * cpplex.c (init_token_list): Don't set lineno if there is no - buffer. - (pedantic_whitespace): New function. - (_cpp_scan_line): Mark tokens that had hspace before. Don't - consume a newline. Use pedantic_whitespace. - (_cpp_lex_token): Remove support for -traditional macros. - (_cpp_get_define_token): Delete. - (_cpp_get_directive_token): Do the real work here. Use - pedantic_whitespace. - (_cpp_init_input_buffer): Initialize pfile->directbuf. - - * cpplib.c (get_macro_name): Delete. - (do_define): Read the entire line into pfile->directbuf, then - feed the token list to _cpp_create_definition. - * cpplib.h (HSPACE_BEFORE): new define. - (struct cpp_reader): Add a toklist member, "directbuf". - - * predict.c (estimate_probability): New heuristic: if a jump - branches around a block with no successors, predict it taken. - Disentangle control flow. - -2000-04-20 Richard Henderson - - * loop.c (emit_iv_add_mult): Revert last change. - -2000-04-20 Zack Weinberg - - * cpplib.h (enum cpp_ttype): Add token types for all - punctuators. Distinguish pp-numbers from valid C numbers. - Give some tokens better names. Initialize from macro. - (struct cpp_name, cpp_token, cpp_toklist): New data - structures. - Update prototypes. - * cpplex.c (bump_column, expand_name_space, - expand_token_space, init_token_list, cpp_output_list, - _cpp_scan_line): New functions. - (output_line_command): Add third argument, new line number. - * cpphash.h: Update prototypes. - * cppexp.c, cpphash.c, cpplib.c, scan-decls.c: Update for new - token names. - -2000-04-20 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_floatuns): Emit missing barrier. - -2000-04-20 Zack Weinberg - - * c-common.c (decl_attributes) [A_ALIAS]: Set TREE_USED on the - object pointed to. - -Thu Apr 20 14:19:18 MET DST 2000 Jan Hubicka - - * loop.c (emit_iv_add_mult): Simplify it's input and emit - REG_EQUAL note explaining the calculated value. - - * calls.c (expand_call): Avoid unnecesary precalculation - and outgoing parameters space guarding for sibling calls. - (store_one_arg): Likewise. - -Thu Apr 20 08:01:07 2000 Richard Kenner - - * toplev.c (enum dump_file_index, dump_file): Add DFI_sibling. - (rest_of_compilation): Write sibling dump file and account - for time as jump time. - * invoke.texi: Update documentation on dump flags. - -2000-04-19 Marek Michalkiewicz - - * avr.c: #include "system.h" instead of and . - -2000-04-19 Zack Weinberg - - * cpphash.c (special_symbol): Represent an empty macro with - "\r \r " not just "\r ". - (_cpp_macroexpand): Correct condition for the foo ( ) special - case. - (unsafe_chars): Handle EOF as second argument. - (push_macro_expansion): Simplify test for removing escape at - end. Do not trim both escapes if there is no text in between. - -2000-04-19 Jim Blandy - - * dwarf2out.c (DWARF2_ADDR_SIZE): New macro. Use it instead - of PTR_SIZE, when appropriate. - -2000-04-19 Mark Mitchell - - * system.h (ONLY_INT_FIELDS): Make sure it is defined. - (USE_ENUM_BITFIELDS): Fix typo. - -Wed Apr 19 12:14:55 2000 Richard Kenner - - * stor-layout.c (place_field): Set rli->offset_align properly. - -2000-04-19 Kaveh R. Ghazi - - * mips.h (BITS_PER_WORD, UNITS_PER_WORD, UNITS_PER_FPREG, - INT_TYPE_SIZE, LONG_TYPE_SIZE, POINTER_SIZE, POINTER_BOUNDARY, - PARM_BOUNDARY): Remove unnecessary casts. - -Wed Apr 19 12:02:37 MET DST 2000 Jan Hubicka - - * calls.c (precompute_arguments): Remove must_preallocate and - args_size calls. - (expand_call): Update call of precompute_arguments. - - * loop.c (check_insn_for_bivs, for_every_insn_in_loop, - check_insn_for_givs): Break out from ... - (strength_reduce) ... here; use for_every_insn_in_loop to call - check_insn_for_givs. - * loop.h (for_every_insn_in_loop): Declare. - (loop_insn_callback): New type. - -2000-04-18 Zack Weinberg - - * cpplib.c (do_pragma_poison): Strings in the token buffer are - not nul-terminated. - -Tue Apr 18 16:04:12 2000 Jim Wilson - - * config/ia64/sysv4.h (SELECT_SECTION): Use data_section if - flag_pic and RELOC. - -2000-04-18 Zack Weinberg - - * cccp.c, cexp.y, cexp.c, cccp.1: Removed. - - * configure.in: Delete --disable-cpplib option and all - references to cpp_main. - * configure: Regenerate. - * Makefile.in: Remove all references to CCCP, CCCP_OBJS, - @cpp_main@, cccp.c, cexp.c, cexp.y, cexp.output, cexp.o, - cccp.o, cccp, or cppmain. Link cppmain.o straight to - cpp$(exeext). Add --no-headers to makeinfo command line when - generating INSTALL. Install and uninstall cpp.1 manpage, not - cccp.1. - * install.texi: Delete all references to cexp.y/cexp.c. - Delete ancient instructions for compiling GCC on 3b1. - * INSTALL: Regenerate. - - * cppfiles.c, cpplib.h, jump.c, protoize.c, c-lex.c, mips/t-ecoff, - mips/t-elf, mips/t-r3900: Remove references to cccp.c. - * convex.h, fx80.h, m68k.h, pdp11.h: Remove references to - cexp.c/cexp.y. - * xm-linux.h, xm-os2.h, romp.h: Remove definition of BSTRING, - which is no longer tested anywhere. - - * cppinit.c (handle_option): Don't run error message through - gettext twice. - -Tue Apr 18 14:16:47 2000 Richard Kenner - - * conflict.c (conflict_graph_add): Pass enum type to htab_find_slot. - * cpperror.c (hashtab.h): Now include. - * cppexp.c (hashtab.h): Likewise. - * cpplex.c (hashtab.h): Likewise. - * cppfiles.c (hashtab.h): Likewise. - (find_include_file, _cpp_calc_hash, cpp_read_file): Pass enum type - to htab_find_slot_with_hash. - * cpphash.c (hashtab.h): Now include. - (_cpp_lookup_slot): INSERT is now enum insert_option. - * cpphash.h (_cpp_lookup_slot): Likewise. - * cppinit.c (hashtab.h): Include earlier. - (initialize_builtins): Pass enum to htab_find_slot. - * cpplib.c (hashtab.h): Now include. - (do_define, do_undef): Pass enum type to _cpp_lookup_slot. - (do_pragma_poison, do_assert): Likewise. - * emit-rtl.c (gen_rtx_CONST_INT): Pass enum to - htab_find_slot_with_hash. - * simplify-rtx.c (cselib_lookup_mem, cselib_lookup): Likewise. - * tree.c (type_hash_add): Likewise. - (build1): Minor cleanup. - - * ggc-common.c: Add missing blanks. - * print-tree.c (print_node): Print DECL_OFFSET_ALIGN. - * tree.h (DECL_OFFSET_ALIGN): Fix typo in comment. - - * stmt.c (mark_case_node): New function. - (mark_case_nesting): Call it. - - * expmed.c (emit_store_flag): If comparing two-word integer - with zero, can optimize NE, EQ, GE, and LT. - - * c-decl.c (mark_binding_level): Use 'for' instead of `while'. - * conflict.c: Minor cleanups. - * optabs.c: Add blank line - * simplify-rtx.c: Minor cleanups. - -2000-04-18 Stan Cox - - * gengenrtl.c (genlegend): Fix misspelling. - -2000-04-18 Robert Lipe - - * configure.in (ENUM_BITFIELDS_ARE_UNSIGNED): Added. Check that - bitfields of the host compiler are not signed quantities. - * config.in: Regenerate. - * configure: Regenerate. - * system.h (USE_ENUM_BITFIELDS): Added. - (ENUM_BITFIELDS): Added. - * rtl.h (rtx_def): Members `code', `mode', now ENUM_BITFIELD. - (SHORT_ENUM_BUG): Deleted. - * tree.h (tree_common): Members `code', `mode', `built_in_class', - now ENUM_BITFIELD. - * config/i386/xm-sco.h (ONLY_INT_FIELDS): Deleted. - (CODE_FIELD_BUG): Likewise. - * config/m68k/x-apollo68 (CC): Deleted SHORT_ENUM_BUG. - (OLD_CC): Likewise. - * config/m68k/x-ccur (X_CFLAGS): Likewise. - -2000-04-18 Mark Mitchell - - * cpplex.c (_cpp_lex_token): Don't call CPP_BUMP_LINE when the - mark is active. - -2000-04-17 Zack Weinberg - - * cppexp.c (lex): Don't assume tokens are NUL terminated. - * cpplib.c (do_include, do_import, do_include_next, - read_line_number, detect_if_not_defined): Likewise. - * cpphash.c (collect_expansion): Likewise. - (special_symbol, _cpp_macroexpand): Check return from - cpp_file_buffer. - * cpphash.h (CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q): Delete - macros. Delete all uses. - - * gcc.dg/cpp-mi.c: Add two more test cases. - * gcc.dg/cpp-mind.h, gcc.dg/cpp-mindp.h: New files. - -2000-04-17 Richard Henderson - - * bb-reorder.c (fixup_reorder_chain): Don't look up new block again. - (reorder_basic_blocks): If no epilogue in rtl, force last block last. - -2000-04-17 Mark Mitchell - - * function.c (expand_function_start): Use hard_function_value to - compute the RTL to use for DECL_RESULT. - -Mon Apr 17 23:35:29 MET DST 2000 Jan Hubicka - - * i386.c (athlon_cost): Fix lea, divide and XFmode move costs. - (x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall): New global variables. - (ix86_adjust_cost): Handle MEMORY_BOTH on places MEMORY_STORE was only - alloved; fix load penalties for Athlon. - * i386.h (x86_integer_DFmode_moves, x86_partial_reg_dependency, - x86_memory_mismatch_stall): Declare. - (TARGET_INTEGER_DFMODE_MOVES, TARGET_PARTIAL_REG_DEPENDENCY, - TARGET_MEMORY_MISMATCH_STALL): New. - * i386.md (athlon scheduling parameters): Fix latencies according to - Athlon Optimization Manual. - (sahf, xchg, fldcw, leave instruction patterns): Set athlon_decode to - vector. - (fsqrt instruction patterns): Set athlon_decode to direct. - (movhi_1): Promote for TARGET_PARTIAL_REG_DEPENDENCY and for - PARTIAL_REGISTER_STALL with !TARGET_HIMODE_MATH machines. - (movqi_1): Handle promoting correctly for TARGET_PARTIAL_REG_DEPENDENCY - and TARGET_PARTIAL_REGISTER_STALL machines. - (pushdf_nointeger): New pattern. - (pushdf_integer): Rename from pushdf. - (movdf_nointger): Enable for !TARGET_INTEGER_DFMODE_MOVES machines. - (movdf_intger): Disable for !TARGET_INTEGER_DFMODE_MOVES machines. - -2000-04-17 Richard Henderson - - * loop.c (canonicalize_condition): Add WANT_REG argument. - Stop the search if we match it. - * expr.h (canonicalize_condition): Update decl. - * predict.c (expected_value_to_br_prob): Use it. Track last - expected value note. - (find_expected_value): Remove. - - * reorg.c (mostly_true_jump): Always use BR_PROB if present. - -2000-04-17 Zack Weinberg - - * aclocal.m4 (AM_GNU_GETTEXT): Don't AC_REQUIRE([AC_FUNC_MMAP]). - (AC_FUNC_MMAP_FILE): New macro, tests read-only private map of - a plain file. - * configure.in: Call AC_FUNC_MMAP_FILE. - * configure: Regenerate. - * config.in: Regenerate. - - * intl/loadmsgcat.c: Test HAVE_MMAP_FILE not HAVE_MMAP. - * fixinc/fixincl.c: Likewise. - -2000-04-17 Richard Henderson - - * builtins.c (expand_builtin_expect): New. - (expand_builtin): Call it. - * builtins.def (BUILT_IN_EXPECT): New. - * c-common.c (c_common_nodes_and_builtins): Declare __builtin_expect. - * extend.texi: Document it. - - * predict.c (expected_value_to_br_prob): New. - (find_expected_value): New. - * basic-block.h (expected_value_to_br_prob): Declare. - * toplev.c (rest_of_compilation): Invoke it. - - * rtl.h (NOTE_EXPECTED_VALUE): New. - (NOTE_INSN_EXPECTED_VALUE): New. - * rtl.c (note_insn_name): Update. - * print-rtl.c (print_rtx): Reorg NOTE_LINE_NUMBER special - cases; handle NOTE_INSN_EXPECTED_VALUE. - -2000-04-17 Jakub Jelinek - - * config/sparc/sparc.c (eligible_for_sibcall_delay): Cannot use - leaf sibcall delay slot if flag_pic. - (output_sibcall): Always emit call for leaf sibcall if flag_pic. - -2000-04-17 Kaveh R. Ghazi - - * Makefile.in (stmp-fixproto): Acknowledge errors in fixproto. - - * fixproto: If fix-header fails, exit with an error. - -Mon Apr 17 14:59:36 MET DST 2000 Jan Hubicka - - * cse.c (struct check_dependence_data): New. - (check_dependence): New function. - (invalidate): Use check_depdenence. - -2000-04-16 Mark Mitchell - - * dwarf2out.c (DWARF_CIE_DATA_ALIGNMENT): Adjust, now that - UNITS_PER_WORD is unsigned. - - * tree.h (struct tree_common): Remove misleading comment. - -2000-04-16 Dave Pitts - - * Makefile.in ($(srcdir)/c-parse.y: c-parse.in): Enclose the whole - message in quotes. Otherwise, IBM's make program treats the '#' as the - start of a comment and ignores the remainder of the line. - - * c-lex.c (yylex): Change for EBCDIC, lower case characters precede - upper case. - * cccp.c (initialize_char_syntax): Allow for holes in EBCDIC. - * cexp.y (initialize_random_junk): Likewise. - * cppfiles.c (find_include_file): Cast alloca return value. - * cppinit.c (initialize_standard_includes): Likewise. - * cpplib.c (cpp_define, cpp_undef): Likewise. - * defaults.h (ASM_OUTPUT_ASCII): Use ISPRINT. - * final.c (output_asm_insn): Allow for holes in EBCDIC. - * fold-const.c (CHARMASK): New. - (real_hex_to_f): Use it. - * real.c (CHARMASK): New. - (etoasc, asctoeg): Use it. - (asctoeg): EBCDIC lower case characters precede upper case. - - * i370.c (mvs_add_label): Change spacing for coding conventions. - * i370.h (ASM_OUTPUT_CASE_LABEL): Change to the data CSECT for the - outputting case vectors. - (ASM_OUTPUT_CASE_END): New, put assembler back into code CSECT. - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Remove page check, - since vector in in the data CSECT. - (ASM_OUTPUT_REG_POP, ASM_OUTPUT_REG_PUSH): Restore to correct operation. - * i370.md (Many patterns): Put the length in the XL directives. - (movdi): Put back STM and MVC in definition. - (floatsidf2): Correct TARGET_ELF_ABI pattern and add back the LE370 - pattern using the TCA. - * oe.h (CPP_SPEC): Added to allow trigraphs. - * xm-oe.h (HOST_BITS_PER_LONGLONG): Change to 32. IBM's compiler does - not support the "long long" type. - -2000-04-16 Mark Mitchell - - * config/mips/mips-protos.h (mips_legitimate_address_p): New - function. - (mips_reg_mode_ok_for_base_p): Likewise. - * config/mips/mips.h (REG_OK_STRICT_P): Don't define. - (REG_OK_FOR_INDEX_P): Define unconditionally. - (REG_MODE_OK_FOR_BASE_P): Use mips_reg_mode_ok_for_base_p. - (GO_IF_LEGITIMATE_ADDRESS): Use mips_legitimate_address_p. - * config/mips/mips.c (mips16_simple_memory_operand): Adjust now - that GET_MODE_SIZE is unsigned. - (mips_reg_mode_ok_for_base_p): Define. - (mips_legitimate_address_p): Likewise. Adjust now - that GET_MODE_SIZE is unsigned. - (block_move_loop): Make the number of bytes unsigned. - (expand_block_move): Likewise. - (function_arg): Make the loop counter unsigned to match the - boundary condition. - -2000-04-16 Richard Henderson - - * rtl.h (enum insn_note): New enumeration. Subsume - NOTE_INSN_DELETED and friends. - (GET_NOTE_INSN_NAME): Adjust index by NOTE_INSN_BIAS. - * rtl.c (note_insn_name): Tweak string order. - -2000-04-15 Zack Weinberg - - * cpplex.c (_cpp_read_and_prescan): Enlarge len by setting it - to offset * 2. - - * cpplex.c (output_line_command): Remove debugging prints. - (cpp_output_tokens): Don't write out a zero-length buffer or - try to see if it has a newline in it. - (_cpp_expand_to_buffer): Copy the source buffer before pushing. - (_cpp_read_and_prescan): Move shift-down of pushback bytes to - the end of the loop. Use memmove. Don't read past the end of - the buffer. Remove trailing newlines from error messages. - -2004-04-16 Neil Booth - - * cpphash.h (SYNTAX_INCLUDE, SYNTAX_ASSERT, directive_handler): new. - * cpplib.c: Add new syntax flags to directive table, and - supporting macros. - -2000-04-15 Ulrich Drepper - - * i386.c (ix86_expand_epilogue): Yes, the x86 can pop 64k at once - using ret $N. - -2000-04-15 David Edelsohn - - * toplev.c (display_help): Prefix "f" to "sched-verbose=". - * haifa-sched.c: Update -fsched-verbose comments to use "=". - -Sat Apr 15 10:59:19 2000 Richard Kenner - - * Makefile.in (ggc-page.o): Now includes toplev.h. - * ggc-page.c (toplev.h): Now included. - (gc_time): Remove declaration. - (ggc_collect): TIME now long. - * toplev.c (parse_time, varasm_time, gc_time): Still global; all - others static. - * toplev.h (gc_time, parse_time, gc_time): New declarations. - - * toplev.c: Make *_time variable long to reduce chance of overflow. - (TIMEVAR): Likewise for `otime'. - (print_time): Arg is now long; compute percentage in FP and round. - * toplev.h (print_time): Arg is long. - - * tree.c: Minor whitespace changes. - - * configure.in (alpha*-*-*): Add config/alpha/t-alpha. - * configure: Rebuilt. - * libgcc2.c (__fixunstfDI): Renamed from __fixunstfdi. - (__fixunsxfDI): Renamed from __fixunsxfdi. - (__fixunsdfDI): Renamed from __fixunsdfdi. - (__fixunssfDI): Renamed from __fixunssfdi. - (__floatdisf): Use proper type in REP_BIT macro. - (__fixunsxfSI): Renamed from __fixunsxfsi. - (__fixunsdfSI): Renamed from __fixunsdfsi. - (__fixunssfSI): Renamed from __fixunssfsi. - * libgcc2.h: Add cases for MIN_UNITS_PER_WORD > 4. - Change location of macros and upper-case some names as above. - * longlong.h ([alpha]): Use PARAMS, not __P in decl of __udiv__qrnnd. - * config/alpha/t-alpha, config/alpha/qrnnd.asm: New files. - - * varasm.c (assemble_variable): Add cast to remove warning. - (immed_real_const_1): Only use CONST[01]_RTX if not in nested function. - - * flow.c (count_basic_blocks, find_basic_blocks_1): Remove last change. - * optabs.c (emit_libcall_block): If have REG_EH_REGION, update - region number to -1. - -2000-04-15 Richard Earnshaw (rearnsah@arm.com) - - * emit-rtl.c (unshare_all_rtl_again): Unmark everything, then - call unshare_all_rtl. - - * arm.md (movhi): REGNO_POINTER_ALIGN is now bits. - -Fri Apr 14 16:58:45 2000 Jim Wilson - - * config/ia64/lib1funcs.asm (__divdi3, __moddi3, __udivdi3, __umoddi3): - Use .s1 not .s0 for all FP instructions. - -2000-04-14 Zack Weinberg - - * cpplex.c (cpp_output_tokens, cpp_scan_buffer_nooutput): New public - interfaces. - (safe_fwrite, output_line_command): New static functions. - (cpp_expand_to_buffer): Now private to cpplib. - (cpp_scan_buffer): Take a printer. - - * cpphash.h: Update prototypes. - * cpplib.h: Update prototypes. - (cpp_printer): New. - (cpp_buffer): Remove last_nominal_fname. - (cpp_reader): Remove lineno. - - * cppmain.c: Use a cpp_printer. - * fix-header.c: No need to inhibit line commands. Call - cpp_start_read with no printer. - - * cpperror.c (cpp_notice_from_errno): Provide default name. - * cppfiles.c (make_IHASH, _cpp_fake_ihash): New functions. - (find_include_file, cpp_read_file): Use make_IHASH. - (file_cleanup): Set control_macro and clear - input_stack_listing_current here. - (_cpp_execute_include): Don't output entering-file marker. - * cpphash.c (special_symbol): Look for the line number in the - buffer, not the reader. - (_cpp_macroexpand): No need to disable line commands. - (_cpp_dump_definition): No need to generate line commands. - (dump_hash_helper): Remove excess newline from output. - * cppinit.c (dump_special_to_buffer): No need to generate line - commands. - (cpp_printer_init): New. - (cpp_start_read): Take a printer, and start it up if it's not - NULL. No need to generate line commands. - (cpp_finish): Expect no buffers stacked at all. Take a - printer argument, and flush the output buffer if it's not - NULL. - * cpplex.c (_cpp_lex_token): Return EOF if there's no buffer. - Don't put two hashes at the beginning of an assertion. - (cpp_get_token): Don't increment pfile->lineno or emit line - commands here. Return EOF if there's no buffer when we get - EOF. - * cpplib.c (do_define, skip_if_group): - No need to disable line commands. - (_cpp_output_line_command): Delete function. - (do_line): Don't emit line commands here, but set things up so - they will be emitted if necessary. Use _cpp_fake_ihash to - make unique nominal_fnames if necessary. - (do_elif, do_else, _cpp_handle_eof): Call cpp_error_with_line - with 0 for column, not -1. - (_cpp_handle_eof): Don't set the control macro here. Don't - clear input_stack_listing_current here. Don't emit line - commands. - -2000-04-14 Geoff Keating - - * config/rs6000/sysv4.h (LINK_START_SOLARIS_SPEC): Define to empty - always, use the default SVR4 start address. - - * config/rs6000/linux.h (LINK_SPEC): Don't define. - (LINK_SHLIB_SPEC): Define. - (LINK_START_DEFAULT_SPEC): Define. - (LINK_OS_DEFAULT_SPEC): Define. - - * config/rs6000/sysv4.h (ENDFILE_SPEC): Use the %(endfile_*) macros. - - * config/rs6000/eabi.asm (__eabi): Call __init rather than - __do_global_ctors to handle constructors. - * config/rs6000/sysv4.h (STARTFILE_ADS_SPEC): Use crtbegin. - (STARTFILE_YELLOWKNIFE_SPEC): Likewise. - (STARTFILE_MVME_SPEC): Likewise. - (STARTFILE_SIM_SPEC): Likewise. - (ENDFILE_ADS_SPEC): Use crtend. - (ENDFILE_YELLOWKNIFE_SPEC): Likewise. - (ENDFILE_MVME_SPEC): Likewise. - (ENDFILE_SIM_SPEC): Likewise. - (STARTFILE_SOLARIS_SPEC): Use crtbegin/crtbeginS. - (ENDFILE_SOLARIS_SPEC): Use crtend/crtendS. - (STARTFILE_LINUX_SPEC): Use crtbeginS for shared objects. - (ENDFILE_LINUX_SPEC): Use crtendS for shared objects. - * config/rs6000/t-ppccomm (LIB2FUNCS_EXTRA): Don't build eabi-ctors.o. - (EXTRA_MULTILIB_PARTS): Build crtbeginS/crtendS. - (CRTSTUFF_T_CFLAGS_S): Define. - * config/rs6000/eabi-ctors.c: Delete. - - * config/rs6000/eabi-ci.asm (__init): Align stack to 16-byte - boundary. - (__fini): Likewise. - * config/rs6000/eabi-cn.asm (__init): Allow for 16-byte stack frame. - boundary. - (__fini): Likewise. - -Fri Apr 14 16:09:02 2000 Jim Wilson - - * combine.c (force_to_mode, case LSHIFTRT): Check that shift shift - plus mask size is smaller or equal to the mode size. - -Fri Apr 14 18:07:30 2000 Richard Kenner - - * print-rtl.c (print_rtx, case NOTE): Don't blow up if NOTE_BASIC_BLOCK - not yet set. - - * expr.c (reload.h): Now included. - (emit_block_move): Set volatile_ok when checking for movstr. - (emit_move_1): Check for replacements in addresses in multi-word case. - * Makefile.in (expr.o): Now includes reload.h. - - * flow.c (count_basic_blocks): Remove unused var PREV_CALL. - Never have a LIBCALL end a basic block. - (find_basic_blocks_1): Likewise. - Reorganize CALL_INSN cases. - - * sbitmap.h (EXECUTE_IF_SET_IN_SBITMAP): Revert last change. - -Fri Apr 14 10:54:22 2000 Jim Wilson - - * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Drop obsolete - completers from mov.ret instruction. - -2000-04-14 Richard Henderson - - * fold-const.c (extract_muldiv): Don't distribute and widen - multiply across plus for non-sizetype unsigned types. - -2000-04-14 Richard Henderson - - * flow.c (find_auto_inc): Don't autoinc eliminable registers. - If the original source is dead in the incr insn, it's dead now. - -Fri Apr 14 07:40:32 2000 Richard Kenner - - * stor-layout.c (layout_decl): Properly compare KNOWN_ALIGN to - see if DECL_BIT_FIELD needs to still be set. - - * tree.h (struct tree_type): Make PRECISION 9 bits and MODE 7. - - * dbxout.c (dbxout_type, case INTEGER_TYPE): Don't call - print_int_cst_octal with something that's not an INTEGER_CST. - - * config/alpha/alpha.c (alpha_emit_floatuns): Ensure we pass a REG - and not a SUBREG to a FLOAT rtl. - -Thu Apr 13 19:39:56 2000 Clinton Popetz - - * emit-rtl.c (try_split): Avoid infinite loop if the split - results in a sequence that contains the original insn. - -2000-04-13 Andreas Jaeger - - * config/mips/mips.c (expand_block_move): Pass alignment - argument to move_by_pieces in bits, not bytes. - - * config/mips/linux.h (CPP_PREDEFINES): Also define __PIC__ and - __pic__ for little endian. - -2000-04-13 Andreas Jaeger - - * config/i386/i386-protos.h: Add prototype for - uno_comparison_operator. - -Thu Apr 13 15:55:08 MET DST 2000 Jan Hubicka - - * alias.c (nonlocal_reference_p): Take care of CALL_INSNS's fusage. - * calls.c (ECF_PURE): New flag. - (emit_call_1): Handle ECF_PURE calls. - (initialize_argument_information): Unset ECF_PURE flag too. - (precompute_arguments): Precompute for ECF_PURE too. - (expand_call): Handle ECF_PURE calls too. - (emit_library_call_value_1): Rename no_queue argument to fn_type, - accept value of 2 as pure function. - (emit_library_call_value, emit_library_call): Rename no_queue argument - to fn_type. - * optabs.c (prepare_cmp_insn): Pass fn_type 2 to memcmp call. - - * tree.h (DECL_IS_PURE): New macro. - (struct tree_decl): Add pure_flag. - * c-common.c (enum attrs): Add attribute "pure". - (init_attributes): Initialize attribute "pure" - (decl_attributes): Handle attribute "pure". - * extend.texi (Attribute "pure"): Document. - * calls.c (expand_call): Add (mem:BLK (scratch)) to "equal from" - in pure function. - (flags_from_decl_or_type): Support attribute "pure". - -2000-04-13 Jason Merrill - - * cpplex.c (_cpp_lex_token): Handle digraphs. Don't null-terminate - the token except for numbers and identifiers. - -Thu Apr 13 00:09:16 EDT 2000 John Wehle (john@feith.com) - - * i386.c (ix86_expand_binary_operator, - ix86_expand_unary_operator): Check no_new_pseudos - instead of reload_in_progress and reload_completed. - (ix86_split_ashldi, ix86_split_ashrdi, - ix86_split_lshrdi): Check no_new_pseudos instead - of reload_completed. - -2000-04-12 Jeffrey A Law (law@cygnus.com) - - * function.c (purge_addressof): Unshare any shared rtl created by - purge_addressof and its children. - -2000-04-12 Mark Mitchell - - * function.c (aggregate_value_p): VOID_TYPE nodes are never - aggregates. - -2000-04-05 Andreas Jaeger - - * config/mips/linux.h (SUBTARGET_ASM_SPEC): Use proper flags if - not compiling PIC code, add flags for mabi=64. - (SUBTARGET_CPP_SIZE_SPEC): New. - (SUBTARGET_CPP_SPEC): New. - (CPP_PREDEFINES): Define __PIC__ and __pic__. PIC code is default - for MIPS/Linux and lots of code needs these defines. - -Wed Apr 12 22:44:11 2000 Hans-Peter Nilsson - - * reorg.c (fill_slots_from_thread): Check side_effects_p when - trying the "opposite arithmetic" approach. - -Wed Apr 12 20:51:20 2000 J"orn Rennecke - - * sh.h (STRUCT_VALUE): Just 0 for TARGET_HITACHI. - (struct sh_args): Add new field force_mem. - (INIT_CUMULATIVE_ARGS): Initialize it. - (FUNCTION_ARG, FUNCTION_ARG_ADVANCE): Act on it. - -Wed Apr 12 17:20:41 MET DST 2000 Jan Hubicka - - * calls.c (expand_call): Do not reverse args in "equal from" field. - (emit_library_call_value_1): Emit_libcall_block for const and pure - function. - -Wed Apr 12 16:00:25 2000 J"orn Rennecke - - * reload1.c (reload_combine): Don't enable optimization for fixed - registers when encountering a BARRIER. - -Wed Apr 12 15:54:11 MET DST 2000 Jan Hubicka - - * builtins.c (expand_builtin_memcmp): Do expansion even with - !HAVE_cmpstrsi, do libcall when gen_strcmpsi fails. - - * calls.c (expand_call): Do NO_DEFER_POP unconditionally once - stack is properly aligned; add sanity checking for aligned - stack pointer. - (expand_library_call_value_1): Add sanity checking for aligned - stack pointer. - -Wed Apr 12 07:51:54 2000 Catherine Moore - - * calls.c (emit_library_call_value_1): Change 3rd arg to - locate_and_pad_parm to disregard the setting of partial. - -Wed Apr 12 08:47:38 2000 Richard Kenner - - * tree.c (unsave_expr_now_r, unsafe_for_reeval): Properly do TREE_LIST. - - * print-rtl.c (print_rtx): For CALL_PLACEHOLDER, output the - CALL_INSN from the normal case. - -Fri Apr 7 12:23:04 MET DST 2000 Jan Hubicka - - * i386.c (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): - New global variables. - (ix86_emit_epilogue_adjustment): Do not attempt to use pop for the - adjustment. - * i386.h (x86_sub_esp_4, x86_sub_esp_8, x86_add_esp_4, x86_add_esp_8): - Declare, - (TARGET_SUB_ESP_4, TARGET_SUB_ESP_8, TARGET_ADD_ESP_4, - TARGET_ADD_ESP_8): New macros. - * i386.md: Add peep2s to convert esp adjustments to push and pop - instructions. - (pushsi_prologue, popsi_epilogue): New patterns. - -2000-04-12 Jakub Jelinek - - * real.c (toe64): Remove stale #endif from the last change. - -2000-04-12 Stephen L Moshier - - * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Comment. - * real.c (toe64): Revert previous change. - -2000-04-12 Jakub Jelinek - - * objc/objc-act.c: Include ggc.h. - (objc_tree_index, objc_global_trees): Convert most of the - static tree variables into a static array with previous names - as defines. - (objc_ellipsis_node): New variable. - (lang_init): Call objc_act_parse_init and c_parse_init. - Create objc_ellipsis_node. - (build_selector_translation_table): Use objc_ellipsis_node instead - of (tree)1. - (hack_method_prototype): Likewise. - (get_arg_type_list): Likewise. - (start_method_def): Likewise. - (continue_method_def): Likewise. - (gen_method_decl): Likewise. - (ggc_mark_imp_list): New function. - (ggc_mark_hash_table): New function. - (objc_act_parse_init): New function. - * objc/objc-act.h (objc_ellipsis_node): Add extern variable. - * c-parse.in (c_parse_init): For objc add roots of objc specific - local tree variables. - * objc/objc-parse.y: Rebuilt. - * objc/objc-parse.c: Rebuilt. - (opt_parm_list): Use objc_ellipsis_node instead of (tree)1. - -Wed Apr 12 01:00:44 EDT 2000 John Wehle (john@feith.com) - - * cse.c (delete_trivially_dead_insns): Also delete insns - that copy a register to itself where the destination is - a strict_low_part. - -2000-04-11 Richard Henderson - - * flow.c (struct propagate_block_info): Add new_dead, new_live. - (propagate_block): Initialize them. Use them in parallel instead - of one tmp variable, ie revert much of the 0408 and 0407 functional - changes, but keep the structural changes. - (mark_set_regs): Take new_dead from propagate_block_info instead. - (mark_set_1, mark_set_reg): Likewise. - (mark_used_regs): Likewise with new_live. - (mark_used_reg): Likewise. Revert 0408 change. - -2000-04-11 Nick Clifton - - * config/arm/arm.h: (INCOMING_RETURN_ADDR_RTX): Remove Dwarf2 - restriction. - (DWARF_FRAME_RETURN_COLUMN): Remove Dwarf2 restriction. - -2000-04-11 Alexandre Oliva - - * config/elfos.h (SELECT_SECTION): Decide whether to use a data or - const section to output a CONSTRUCTOR based on the same conditions - used for VAR_DECLs. - -Tue Apr 11 09:55:59 2000 Jeffrey A Law (law@cygnus.com) - - * pa/long-double.h (FIX_TRUNCTFSI2_LIBCALL): Tweak for PA64. - * pa/pa-protos.h (output_call): Add additional argument indicating - if the call is a sibling/tail call. - (compute_zdepdi_operands, output_64bit_and): Prototype new functions. - (compute_64bit_ior, cmpib_comparison_operator): Likewise. - (function_arg, function_arg_partial_nregs): Likewise - * pa/pa.c (override_options): Always set flag_pic for TARGET_64BIT. - (emit_move_sequence): Zero extend certain constants as needed - for TARGET_64BIT. - (compute_zdepdi_operands, output_64bit_and): New functions. - (output_64bit_ior, function_arg): Likewise. - (cmpib_comparison_operator, function_arg_partial_nregs): Likewise. - (compute_frame_size, hppa_expand_prologue): Handle TARGET_64BIT. - (hppa_expand_epilogue, return_addr_rtx, hppa_va_arg): Likewise. - (hppa_builtin_saveregs, output_cbranch, output_bb): Likewise. - (output_bvb): Likewise. - (output_millicode_call): Return pointer is in %r2 for TARGET_64BIT. - (output_call): New argument 'sibcall'. Generate sibcall sequences - as needed. - (print_operand); Handle cases 'Q', 'p', and 'z' for TARGET_64BIT. For - (ouput_arg_descriptor): Do not emit argument descriptors for - TARGET_64BIT. - * pa/pa.h (TARGET_PA_11, TARGET_PA_20): Only define if not already - defined. - (TARGET_64BIT, PROMOTE_FUNCTION_RETURN): Define. - (FUNCTION_OK_FOR_SIBALL): Define. - (CPP_PA10_SPEC, CPP_PA11_SPEC, CPP_PA20_SPEC): Define. - (CPP_CPU_DEFAULT_SPEC, SUBTARGET_EXTRA_SPECS, EXTRA_SPECS): Likewise. - (CPP_SPEC): Use new spec infrastructure. - (BITS_PER_WORD, UNITS_PER_WORD): Handle TARGET_64BIT. - (STACK_BOUNDARY, FUNCTION_BOUNDARY, PIC_OFFSET_TABLE_REGNUM): Likewise. - (RETURN_IN_MEMORY, EXTRA_CONSTRAINT, FIRST_PARM_OFFSET): Likewise. - (REG_PARM_STACK_SPACE, STACK_POINTER_OFFSET): Likewise. - (STACK_DYNAMIC_OFFSET, FUNCTION_VALUE): Likewise. - (FUNCTION_ARG_PASS_BY_REFERENCE, FUNCTION_ARG_CALLEE_COPIES): Likewise. - (TRAMPOLINE_TEMPLATE, TRAMPOLINE_SIZE): Likewise. - (INITIALIZE_TRAMPOLINE, LEGITIMATE_CONSTANT_P): Likewise. - (CONST_OK_FOR_LETTER_P, MOVE_RATIO): Likewise. - (FUNCTION_ARG); Call out to C code. - (FUNCTION_ARG_PARTIAL_NREGS): Likewise. - (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Define. - (MIN_UNITS_PER_WORD): Likewise. - * pa/pa.md (cmpdi): New expander. - (scc patterns, movstrsi): Not available for TARGET_64BIT. - (64bit conditional arithmetic): New patterns. - (absdi2, smindi3, umindi3, smaxdi3, umaxdi3): New patterns. - (movsicc): Not available if modes on all the operands to not match. - (movdicc): New expander and associated patterns. - (64bit branches): New patterns. - (pre_load, post_store): Generate appropriate code for TARGET_64BIT. - (pre_ldd, post_std): New patterns. - (64bit addil, load low part): New patterns. - (special movsf constant): Not available for TARGET_64BIT. - (movsf, movdf expanders): Force constants into memory. - (32bit movdf/movdi patterns): Disable for TARGET_64BIT. - (64bit movdf/movdi patterns): New patterns. - (zero_extendqidi2, zero_extendhidi2, zero_extendsidi2): New patterns - for TARGET_64BIT. - (extendqidi2, extendhidi2, extendsidi2): Similarly. - (adddi3 expander): Allow "arith_operand" for second input. - (32bit adddi3, subdi3, uaddcm): Disable for TARGET_64BIT. - (64bit adddi3, subsi3, uaddcm): New patterns for TARGET_64BIT. - (mulsi3 expander): Revamp slightly so it supports TARGET_64BIT too. - (muldi3): New expander for TARGET_64BIT. - (divsi3, udivsi3, modsi3, umodsi3): Fourth operand must be (reg:SI 2) - for TARGET_64BIT. - (32bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm): Disable - patterns for TARGET_64BIT. - (64bit anddi3, iordi3, xordi3, andcm, negdi2, uaddcm, shadd): New - patterns for TARGET_64BIT. - (64bit bit insertion/extractions): New patterns for TARGET_64BIT. - (64bit shifts/rotates): New patterns/expanders for TARGET_64BIT. - (sibcall_epilogue): New expander. - (casesi): Tweak for TARGET_64BIT. - (call expanders): Set & use the outgoing argument pointer. Use the - 64bit call patterns as needed. Add additional arg to output_call. - (call_internal_reg_64bit, call_value_internal_reg_64bit): New pattern. - (sibcall, sibcall_internal_symref): New expanders. - (sibcall_value, sibcall_value_internal_symref - (interspace_jump): Turn into an expander + matching patterns. - (canonicalize_funcptr_for_compare): Not needed for TARGET_64BIT. - * pa/pa64-regs.h: Eliminate trigraph sequences. - * pa/pa64-start.h (TARGET_PA_20): Fix typo. - -2000-04-11 Zack Weinberg - - * cppexp.c, cpphash.c, cpphash.h, cpplex.c, cpplib.c, - cpplib.h, cppmain.c, fix-header.c, scan-decls.c: Replace - cpp_token with cpp_ttype everywhere. - * cpperror.c, cpphash.c, cpplex.c, cpplib.c, scan-decls.c: - Replace cpp_buf_line_and_col with CPP_BUF_LINE and/or - CPP_BUF_COL. Line and column numbers are unsigned int, not - long. - * cpplex.c (cpp_buf_line_and_col): Delete. - * cpplib.h (struct cpp_buffer, struct cpp_reader): Change - 'long lineno' to 'unsigned int lineno'. - (CPP_BUF_LINE, CPP_BUF_COL): New macros. - -2000-04-11 Martin v. Löwis - - * extend.texi: ISO C99 is not a draft anymore. - * invoke.texi: ISO C++ is not a draft anymore. - * cpp.texi: __cplusplus is required by the ISO standard. - - * extend.texi (-fthis-is-variable): Undocument. - * flags.h (warn_template_debugging): Remove declaration. - * gcc.1 (-fall-virtual, -fenum-int-equiv, -fthis-is-variable, - -Wenum-clash, -Wtemplate-debugging): Undocument. - -2000-04-10 Nick Clifton - - * config/arm/arm.h (HOST_INT): New macro: Declare a HOST_WIDE_INT - integer. - (HOST_UINT): New macro: Declare an unsigned HOST_WIDE_INT - integer. - (ARM_SIGN_EXTEND): Use HOST_UINT. - (STRIP_NAME_ENCODING): Prevent warnings about redefinitions. - (ASM_OUTPUT_LABELREF): Prevent warnings about redefinitions. - (INCOMING_RETURN_ADDR_RTX): Only define if Dwarf2 is supported. - (DWARF_FRAME_RETURN_COLUMN): Only define if Dwarf2 is supported. - - * config/arm/arm.c: (const_ok_for_arm): Use HOST_UINT. - (arm_gen_constant): Use HOST_UINT. - (arm_canonicalize_constant): Use HOST_UINT. - (arm_reload_in_hi): Use HOST_UINT. - (arm_reload_out_hi): Use HOST_UINT. - (output_multi_immediate): Use HOST_UINT. - (int_log2): Use HOST_UINT. - (arm_poke_function_name): Use HOST_UINT. - (arm_output_epilogue): Use arm_volatile_func(). - (output_thumb_prologue): Use arm_strip_name_encoding(). - -Mon Apr 10 15:40:59 2000 Richard Kenner - - * sbitmap.c (sbitmap_a_subset_b_p): Rework loop to avoid potential - of sequence point problems. - -2000-04-10 Nathan Sidwell - - * rtl.def (ASHIFT, ROTATE, ASHIFTRT, LSHIFTRT, ROTATERT): - Recomment. - * tree.def (LSHIFT_EXPR, RSHIFT_EXPR): Recomment. - -Mon Apr 10 07:21:13 2000 Richard Kenner - - * sbitmap.h: Whitespace changes and use upper-case macro args. - (struct simple_bitmap_def): All sizes now unsigned. - (EXECUTE_IF_SET_IN_SBITMAP): Internal vars now _X instead of X_. - * sbitmap.c (sbitmap_alloc): N_ELMS now unsigned; also local vars. - (sbitmap_vector_alloc): Parms and local vars now unsigned. - (sbitmap_zero): Cast bzero arg to PTR. - (sbitmap_vector_zero, sbitmap_vector_one): Parm and Local var unsigned. - (sbitmap_union_of_diffs): Change loop index to unsigned and rework - loop to make structure clearer. - (sbitmap_not, sbitmap_difference, sbitmap_a_and_b): Likewise. - (sbitmap_a_or_b, sbitmap_a_subset_b_p, sbitmap_a_or_b_and_c): Likewise. - (sbitmap_a_and_b_or_c): Likewise. - (sbitmap_intersection_of_succs): Minor cleanups. - (sbitmap_intersection_of_preds, sbitmap_union_of_succs): Likewise. - (sbitmap_union_of_preds): Likewise. - (sbitmap_first_set_bit, dump_sbitmap): Local variables now unsigned. - (debug_sbitmap): New function. - - * c-convert.c (convert): Handle REFERENCE_TYPE like POINTER_TYPE. - * c-typeck.c (convert_for_assignment): Likewise. - - * expmed.c (init_expmed): Don't free objects we make. - * emit-rtl.c (gen_rtx_CONST_INT, init_emit_once): Minor cleanups. - - * expr.c (get_inner_reference): Correct some WITH_RECORD_EXPR cases. - (expand_expr, case CONVERT_EXPR): Pass proper alignment to store_field. - - * gcse.c (expr_hash_table_size): Now unsigned. - (compute_ae_gen): Local variable `i' now unsigned. - (compute_ae_kill, pre_insert_copies, pre_delete, pre_gcse): Likewise. - (compute_transout, hoist_code): Likewise. - (compute_local_properties): Likewise, also hash_table_size. - (alloc_expr_hash_table): N_INSNS now unsigned. - (delete_null_pointer_checks): Mark arg F as unused. - - * regrename.c: Minor cleanups, including chang some variables - to unsigned int. - -2000-04-10 Neil Booth - - * cpplex.c (skip_block_comment): Use pointer arithmetic rather - than GETC (). - * cpphash.h: (CPP_BUMP_BUFFER_LINE_CUR, CPP_BUMP_LINE_CUR): New. - -2000-04-10 Martin v. Löwis - - * invoke.texi (-fno-gnu-keywords): Remove classof, headof, - __classof__, and __headof__ from the list of gnu keywords. - (-ansi): Remove -foperator-names from list of implied options. - Do not call it ANSI C++. - (-foperator-names): Document as -fno-operator-names. - -2000-04-09 Zack Weinberg - - * cpphash.c (timestamp): Delete. - (del_HASHNODE): If type is T_MCONST, free value.cpval. - (special_symbol): Remove unnecessary braces. Remove - T_VERSION. Treat T_STDC like T_CONST unless - STDC_0_IN_SYSTEM_HEADERS. Render both __DATE__ and __TIME__ - when one is encountered, then convert them into T_MCONST - nodes. - * cppinit.c (builtin_array): version_string is T_MCONST. - __STDC__ has a "1" in its cpval. Don't have a terminator - entry. Clean up which entries are dumped. - (initialize_builtins): Only __STDC__ gets the special - -traditional treatment. Count the length of builtin_array. - Render version_string here. - * cpphash.h: Remove T_VERSION. Add T_MCONST. - * cpplib.h (struct cpp_reader): Remove timebuf. - -2000-04-09 Richard Henderson - - * genrecog.c (pred): Update comparison_operator for the unordered - operators. - - * config/i386/i386.c (no_comparison_operator): Disallow unordered - operators. - (fcmov_comparison_operator): Allow UNORDERED/ORDERED. - (uno_comparison_operator): New. - (put_condition_code): Handle UNORDERED/ORDERED. - (unsigned_comparison): Likewise. - (ix86_fp_compare_mode): Broken out of ix86_expand_fp_compare. - (ix86_use_fcomi_compare, ix86_prepare_fp_compare_args): Likewise. - (ix86_expand_fp_compare): Use them. Take scratch as argument, - update all callers. Handle all 8 unordered operators. - (ix86_expand_setcc): Lose the unordered argument, update all callers. - (ix86_expand_branch): Likewise. Don't fully expand fp branches. - * config/i386/i386.h (PREDICATE_CODES): Update. - * config/i386/i386-protos.h (ix86_expand_fp_compare): Declare. - (ix86_expand_branch, ix86_expand_setcc): Update. - * config/i386/i386.md (sunordered, sordered): New. - (suneq, sunge, sungt, sunle, sunlt, sltgt): New. - (bunordered, bordered): New. - (buneq, bunge, bungt, bunle, bunlt, bltgt): New. - (*fp_jcc_1, *fp_jcc_2, *fp_jcc_3, *fp_jcc_4): New. - (*fp_jcc_5, *fp_jcc_6, and splitters): New. - -2000-04-09 Philip Blundell - - * config/arm/arm.h (ARM_NAME_ENCODING_LENGTHS): Strip `*' too. - -Sun Apr 9 15:16:14 EDT 2000 John Wehle (john@feith.com) - - * i386.md (fix_truncsfhi2, fix_truncdfhi2, - fix_truncxfhi2): New patterns. - * i386.c (output_fix_trunc): Handle converting to HImode. - -2000-04-08 Alex Samuel - - * ssa.c (convert_to_ssa): Eliminate dead code when calling - life_analysis. - (convert_from_ssa): Call compute_bb_for_insn before life_analysis. - (for_each_successor_phi): Change parameter to basic_block. - (coalesce_regs_in_successor_phi_nodes): Likewise. - (coalesce_regs_in_copies): Likewise. - (compute_coalesced_reg_partition): Use basic_block instead of index. - * rtl.h (convert_to_ssa): Delete. - (convert_from_ssa): Likewise. - (successor_phi_fn): Likewise. - (for_each_successor_phi): Likewise. - (in_ssa_form): Likewise. - * basic-block.h (convert_to_ssa): Moved from rtl.h. - (convert_from_ssa): Likewise. - (successor_phi_fn): Likewise. - (in_ssa_form): Likewise. - (for_each_successor_phi): Likewise. Change parameter to basic_block. - * flow.c (calculate_global_regs_live): Pass a basic_block to - for_each_successor_phi. - -2000-04-08 Richard Henderson - - * flow.c (mark_used_reg): Use reg_set_p to determine if a register - was modified in the current insn. - -2000-04-08 Richard Earnshaw (rearnsha@arm.com) - - * arm/thumb.md: Delete. - * arm/thumb-protos.h: Delete. - -2000-04-08 Richard Earnshaw (rearnsha@arm.com) - - Merge changes from merged-arm-thumb-backend-branch onto trunk. - - 2000-04-08 Richard Earnshaw (rearnsha@arm.com) - - * Merge trunk code from tag merged-arm-thumb-backend-merge_20000408 - into branch. - - * arm.md (nop): Use the standard RTL expression. Don't code as a - define_expand. - (*arm_nop, *thumb_nop): Delete. - - * arm.c (const_ok_for_arm): Don't use ANSI extensions for defining - constants. Use casts instead. - (arm_gen_constant, arm_rtx_costs, arm_reload_in_hi, arm_reload_out_hi, - output_multi_immediate, arm_poke_function_name): Likewise. - * arm.h (ARM_LEGITIIMIZE_RELOAD_ADDRESS, ARM_SIGN_EXTEND, - MASK_RETURN_ADDDR): Likewise. - - 2000-03-31 Richard Earnshaw (rearnsha@arm.com) - - * Merge trunk code from tag merged-arm-thumb-backend-merge_20000325 - into branch. - - * arm.md (eh_epilogue): New function. - * arm.h (struct machine_function): Move to here ... - * arm.c: ... from here. - (arm_output_epilogue): Support epilogues for __builtin_eh_return. - (thumb_exit): Extra parameter eh_ofs. All callers changed. - Handle epilogues for __builtin_eh_return. Make bit-fields unsigned. - - 2000-03-30 Nick Clifton - - * config/arm/semi.h (ASM_SPEC): Restore definition. - (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. - - * config/arm/elf.h (ASM_SPEC): Restore definition. - (SUBTARGET_EXTRA_ASM_SPEC): Define if not already defined. - - * config/arm/arm.h (ASM_SPEC): Remove definition. - (SUBTARGET_EXTRA_ASM_SPEC): Remove definition. - - 2000-03-26 Bernd Schmidt - - * config/arm/arm.c: Disable -fschedule-insns for Thumb. - - 2000-03-24 Nick Clifton - - Various formating tidyups, elimination of compile time - warnings and synchronisation with internal sources: - - * config/arm/arm-protos.h (assemble_align): Add prototype. - (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. - (gen_comapre_reg): Rename to arm_gen_compare_reg. - (arm_return_addr_rtx): Rename to arm_return_addr. - - * config/arm/arm.c: Include except.h. - Define shorter typenames for strict minipool_node and struct - minipool_fix. - (arm_return_in_memory): For WinCE return all structures <= 32 bits - in memory. - (gen_rotated_half_load): Rename to arm_gen_rotated_half_load. - (gen_comapre_reg): Rename to arm_gen_compare_reg. - - * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not - already defined. - (ASM_SPEC): Define if not already defined. - (ASM_OUTPUT_DEF_FROM_DECLS): Define. - - * config/arm/arm.md: Rename references to gen_rotated_half_load to - arm_gen_rotated_half_load, and references to gen_comapre_reg to - arm_gen_compare_reg. - (indirect_jump): Only accept register operands. - (load_indirect_jump): Keep this pattern since combine can generate - it. - - * config/arm/coff.h: Include aout.h. - (MULTILIB_DEFAULTS): Only define if not already defined. - - * config/arm/elf.h (ASM_OUTPUT_DEF_FROM_DECLS): Move definition - into arm.h (so that COFF ports can support thumb based aliases). - (ASM_SPEC): Move definition into arm.h - - * config/arm/linux-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Remove - redundant apcs spec. - (ASM_SPEC): Move definition to arm.h - - * config/arm/semi.h (ASM_SPEC): Move definition to arm.h - - * config/arm/unknown-elf.h (ASM_OUTPUT_SECTION_NAME): Add support - for entries in the .bss section - - 2000-03-23 Nick Clifton - - * config/arm/arm.h (THUMB_INITIAL_ELIMINATION_OFFSET): Pass 0 - to thumb_far_jump_used_p. - - * config/arm/arm-protos.h (thumb_far_jump_used_p): Take a - single integer parameter. - - * config/arm/arm.c (struct machine_function): Add two new - fields, 'far_jump_used' and 'arg_pointer_live'. - (thumb_far_jump_used_p): Once the decision has been made that - far jumps might be used, always return true. - If being called from the initial elimination offset macro then - do not bother to perform the test if the arg pointer is not - being used. - (thumb_unexpand_epilogue): Pass 1 to thumb_far_jump_used_p(). - (output_thumb_prologue): Pass 1 to thumb_far_jump_used_p(). - - 2000-03-23 Richard Earnshaw (rearnsha@arm.com) - - * arm.c (output_return_instruction): Handle more cases where we can - return from a function with an ldr instruction. - (arm_output_epilogue): Likewise. - - * arm.c (thumb_expand_prologue): Don't clobber the frame pointer - if we need to push a large stack frame and there are no callee-saved - registers. - - * arm.c (arm_debugger_arg_offset): An offset of 0 is also valid - in ARM code if the frame pointer has been eliminated. - - * arm.md (epilogue, *epilogue_insns, consttable_*, align_4): Renumber - unspec_volatile arguments to avoid duplicates. - (consttable_1, consttable_2): Fixes for big-endian mode. - - * arm.md (all ARM-mode load insns): Add neg_pool_range attribute - as appropriate. - - Re-write constant pool code. - * arm.c (minipool_node, minipool_fix): New types. - (minifix): Delete type. - (arm_add_minipool_constant): Delete. - (arm_compute_minipool_offsets, arm_find_barrier, - arm_find_minipool_constant, fixup_compare, sort_fixups): Likewise. - (get_jump_table_size): Now returns HOST_WIDE_INT. - (move_minipool_fix_forward_ref, add_minipool_forward_ref): New - functions. - (move_minipool_fix_backward_ref, add_minipool_backward_ref): Likewise. - (assign_minipool_offsets, arm_print_value): Likewise. - (dump_minipool): Rewrite. - (arm_barrier_cost): New function. - (create_fix_barrier): New function. - (push_minipool_barrier): New function. - (push_minipool_fix): Record additional information about the fixup - required. - (note_invalid_constants): Remove push for (UNSPEC 3). Don't - check the mode of what needs fixing. - (arm_reorg): Rewrite. - - 2000-03-08 Nick Clifton - - * config/arm/arm.md (indirect_jump): Force constant addresses into - a register. - - 2000-03-01 Bernd Schmidt - - * config/arm/arm.md: Add splitter to turn SF moves into SI moves. - - 2000-02-24 Nick Clifton - - * config/arm/arm.c (thumb_expand_prologue): Make sure that stack - adjust is word aligned. - (thumb_expand_epilogue): Make sure that stack adjust is word - aligned. - - * config/arm/elf.h (ASM_FILE_START): Fix type of version string. - - 2000-02-24 Bernd Schmidt - - * config/arm/arm.h (THUMB_GO_IF_LEGITIMATE_ADDRESS): Allow frame - pointer relative addresses. - - 2000-02-10 Richard Earnshaw - - * arm.c (find_barrier): Find the last barrier within the allowed - range. - - 2000-02-09 Nick Clifton - - * config/arm/arm-protos.h: Replace PROTO with PARAMS. - - 2000-02-09 Nick Clifton - - * config/arm/linux-elf.h (FUNCTION_PROFILER): Rename to - ARM_FUNCTION_PROFILER. - - * config/arm/netbsd.h (FUNCTION_PROFILER): Rename to - ARM_FUNCTION_PROFILER. - - * config/arm/linux-oldld.h: Imported from mainline sources. - - 2000-02-07 Nick Clifton - - * config/arm/lib1funcs.asm: Merge in thumb functions from - lib1thumb.asm. - - * config/arm/lib1thumb.asm: Delete. - - 2000-02-04 Nick Clifton - - * config/arm/arm.c: Sychronised with current Red hat local - sources. - * config/arm/arm.h: Ditto. - * config/arm/arm-protos.h: Ditto. - - 2000-02-02 Bernd Schmidt - - * arm.c (soft_df_operand): Reject SUBREGs containing a constant. - - * arm.c (arm_gen_movstrqi): Generate halfword stores rather than two - byte stores. - - 2000-02-02 Nick Clifton - - * config/arm/thumb.c (thumb_exit): Additional fix for same bug. - - * config/arm/arm.md (epilogue): Fix rtl checking abort because - (return) was emited using an emit_insn() call. - - 2000-01-31 Nick Clifton - - * config/arm/arm.c (output_thumb_prologue): Fix bug generating - thumb stack frame. - (thumb_exit): Move frame pointer back into hard frame pointer - register if backtracing is being used. - - 2000-01-13 Richard Earnshaw (rearnsha@arm.com) - - * Merge trunk code from tag merged-arm-thumb-backend-merge_20000113 - into branch. - - 1999-12-15 Bernd Schmidt - - * config/arm/arm.md (neg_pool_offset): Provide default for new - attribute. - (arm_movsi_insn): Add neg_pool_offset attribute. - * config/arm/arm.c (arm_find_barrier): Replace arg FIX with an - rtx for the insn that starts the scan and an unsigned long for its - address. Add MIN_OFFSET and PINSERTED args. All callers changed. - Change scan to ignore insns before MIN_OFFSET. Store size of inserted - instructions in *PINSERTED. - (struct minipool_fixup): Add MIN_ADDRESS elt. - (sort_fixups): Compute it. - (arm_reorg): Changes to support inserting pools before the insn to be - fixed up. - - 1999-12-08 Bernd Schmidt - - * config/arm/elf.h (MULTILIB_DEFAULTS): Add "marm". - * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Add "marm". - * config/arm/coff.h (MULTILIB_DEFAULTS): Add "marm". - - Wed Nov 3 10:04:07 1999 Nick Clifton - - * config/arm/semi.h (TARGET_VERSION): Do not define if already - defined. - (TARGET_DEFAULT): Do not define if already defined. - - Tue Nov 2 10:37:25 1999 Nick Clifton - - * config/arm/arm.md (anddi3): Allow disjoint source operands. - (iordi3): Allow disjoint source operands. - (xordi3): Allow disjoint source operands. - (negdi2): Permit construction for ARM and Thumb. - (arm_negdi2): Renamed version of old negdi2 pattern. - (thumb_negdi2): New pattern: Only permit non-overlapping - source and destination. - - Fri Oct 29 18:52:38 1999 Nick Clifton - - * config/arm/arm.c (thumb_expand_prologue): Emit a USE of the - scratch low register so that it will not be deleted. - - Fri Oct 29 15:23:48 1999 Nick Clifton - - * config/arm/pe.h (ARM_PE): Define. - - * config/arm/arm.c (arm_valid_machine_decl_attribute): Allow - interfacearm attribute if this is a PE toolchain. - (output_return_instruction): Do not emit anything if the function - has the naked attribute set. - (is_called_in_ARM_mode): If the function has the interfacearm - attribute then return true. - (thumb_expand_prologue): Do not generate a prologue for naked - functions. - (thumb_expand_epilogue): Do not generate an epilogie for a naked - function. - (output_thumb_prologue): Do not bother if the function is naked. - Strip PE encoding from function name before emitting. - - Thu Oct 28 11:05:13 1999 Richard Earnshaw - - * arm.md (pic_load_addr): Fix constraints. - - * arm.md (casesi_insn): Fix mis-applied patch. - - * arm.md ("core" function unit): Add rules for single- and - multi-cycle insns. - (All TARGET_THUMB patterns): Add "type" attribute information - where needed. - * arm.c (arm_adjust_cost): Reduce the cost of a data dependency if - the following insn is a CALL. - - * arm.c (thumb_expand_epilogue): Add a use of the adjusted stack - pointer. - * arm.h (CONDITIONAL_REGISTER_USAGE): Nail down the - ARM_HARD_FRAME_POINTER_REGNUM when TARGET_APCS_FRAME. - (FRAME_POINTER_REQUIRED): Only check TARGET_APCS_FRAME if TARGET_ARM. - - Wed Oct 27 14:40:48 1999 Nick Clifton - - * config/arm/linux-gas.h: oops - this file was missed out when the - branch was created... - - Tue Oct 26 17:07:38 1999 Richard Earnshaw - - * thumb.c: Deleted. Move contents to ... - * arm.c: ... here. - * t-arm-aout, t-arm-coff, t-arm-elf, t-linux, t-netbsd, t-semi: Remove - rule for thumb.o - * configure.in (arm*-*-*): Remove thumb.o from extra_objs list. - * configure: Regen. - - * arm-protos.h: Use RTX_CODE and tidy up long lines. Don't - declare a prototype for asm_output_align(); - - * arm.c (thumb_condition_code): Delete. - (arm_print_operand): Always use arm_condition_code array. - - * arm.c (thumb_return_addr_rtx): Delete. - (arm_save_machine_status, arm_restore_machine_status): Delete. - (arm_init_machine_status, arm_mark_machine_status): New functions. - (arm_init_expanders): Update accordingly. - (arm_return_addr): Renamed from arm_return_addr_rtx. Rewrite. - (thumb_expand_prologue): Delete code referencing thumb_return_addr_rtx. - * arm.h (RETURN_ADDR_RTX): Call arm_return_addr(). - - Tue Oct 26 13:24:16 1999 Nick Clifton - - * configure.in : Fix arm-*-aout target to use new t-arm-aout - script. - * config/arm/t-arm-aout: New file: Makefile script for arm-*-aout - targets. - - Tue Oct 26 11:27:12 1999 Nick Clifton - - * config/arm/thumb.c (output_thumb_prologue): Fix bug creating - stack backtrace structure. - - * config/arm/arm-protos.h: Add prototypes for functions defined in - arm/pe.h. - - * config/arm/arm.c (arm_override_options): Fix selection of - attributes of default processor. - - * config/arm/coff.h: Delete needless #include. - - * config/arm/pe.c: Delete unused code. - - * config/arm/pe.h (CPP_DEFINES): Delete - (SUBTARGET_CPP_SPEC): Define. - (ASM_DECLARE_FUNCTION_NAME): Use ARM_DECLARE_FUNCTION_NAME. - - * config/arm/t-pe: Add -DInhibit_libc to allof libgcc.a to build. - - Mon Oct 25 15:42:09 1999 Richard Earnshaw (rearnsha@arm.com) - - * arm.h (TARGET_APCS_FRAME): Renamed from TARGET_APCS -- all uses - updated. - (CAN_DEBUG_WITHOUT_FP): Define. - (FIXED_REGISTERS): Make r11 call-saved. - (CALL_USED_REGISTERS): Likewise. - (CONDITIONAL_REGISTER_USAGE): Fix r11 if TARGET_APCS_FRAME. - (FRAME_POINTER_REQUIRED): Correct logic for determining when a - frame-pointer is required. - (TARGET_DEFAULT): Make default setting include ARM_FLAG_APCS_FRAME. - * arm.c (arm_override_options): Warn about -mno-apcs-frame and -g - if the target normally needs a stack frame in non-leaf functions. - (use_return_insn): Correct logic for determining when a return - instruction can be used. - (output_return_instruction): Handle the frame-pointer register as - a normal register when not TARGET_APCS_FRAME. - (arm_output_prologue): Likewise. - (arm_output_epilogue): Likewise. - (output_func_epilogue): Likewise. - (arm_expand_prologue): Likewise. - * netbsd.h semi.h (TARGET_DEFAULT): Add ARM_FLAG_APCS_FRAME. - - * arm.c (use_return_insn): No need to check floating point regs if - TARGET_SOFT_FLOAT. - (arm_find_minipool_constant): Correct typo; use GET_CODE to get - the code of value stored in the minipool array. - (arm_add_minipool_constant): Likewise. - -2000-04-08 Kaveh R. Ghazi - - * basic-block.h (conflict_graph_enum_fn): K&R fix. - -2000-04-08 Kaveh R. Ghazi - - * tree.c (tree_expr_nonnegative_p): New function. - - * tree.h (tree_expr_nonnegative_p): Declare. - - * c-typeck.c (build_binary_op): Call `tree_expr_nonnegative_p' to - elide some sign_compare warnings. - (build_conditional_expr): Likewise. - -Sat Apr 8 00:21:51 EDT 2000 John Wehle (john@feith.com) - - * i386.md (ashrsi3, ashrhi3, ashrqi3): Fix typo. - - * 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. - -2000-04-08 Neil Booth - - * cppexp.c (parse_charconst): Null does not end character - constants. - * cppinit.c (ISTABLE): Null character handled as whitespace. - * cpplex.c (null_warning): new function. - (skip_string): Emit warning if nulls encountered. - (_cpp_skip_hspace): Emit warning if nulls encountered. - (_cpp_lex_token): Emit warning if nulls encountered. Drop - them. - * cpp.texi: Update. - -2000-04-07 Richard Henderson - - * flow.c (loop_depth): Remove. - (reg_next_use, cc0_live, mem_set_list): Replace with ... - (struct propagate_block_info): New. - (life_analysis): Don't allocate reg_next_use. - (propagate_block_delete_insn): Break out of propagate_block. - Use flow_delete_insn to unlink rather than use NOTE_INSN_DELETED. - (propagate_block_delete_libcall): Likewise. - (propagate_block): Create a propagate_block_info struct to pass - to subroutines. Allocate one not two temporary regsets. Don't - clobber memory for const calls. Look for clobbers in - CALL_INSN_FUNCTION_USAGE. - (mark_set_regs): Recognize COND_EXEC. - (mark_set_reg): Break out of mark_set_1. - (mark_used_reg): Break out of mark_used_regs. - (mark_used_regs): Recognize COND_EXEC. - (insn_dead_p): Use propagate_block_info struct. - (libcall_dead_p, invalidate_mems_from_autoinc): Likewise. - (find_auto_inc, try_pre_increment_1): Likewise. - (print_rtl_with_bb): Dump regs live at end too. - (count_reg_sets_1): Pass in loop_depth. - (count_reg_sets, count_reg_references): Likewise. - (recompute_reg_usage): Provide it. - -2000-04-07 Richard Henderson - - * Makefile.in (conflict.o): Depend on $(RTL_H) and $(BASIC_BLOCK_H) - not the raw files. - -2000-04-07 Zack Weinberg - - * cpplib.c (do_elif): Skip the rest of the line if we're - not going to bother evaluating it. - (skip_if_group): Clear pfile->only_seen_white. Reorder loop - to avoid pointless calls to the lexer. - -Fri Apr 7 11:50:54 2000 Jim Wilson - - * config/ia64/ia64.c: Delete stdio.h and ctype.h includes. - -2000-04-07 Jason Merrill - - * calls.c (expand_call): emit_queue if we're trying a sibcall. - -2000-04-07 Jakub Jelinek - - * config/sparc/t-linux64 (tcrtbeginS.o, tcrtendS.o): Remove. - -2000-04-06 Geoff Keating - - * Makefile.in: Build crtbeginS and crtendS like crtbegin and - crtend so they can be multilibbed. - (STAGESTUFF): Remove s-crt and s-crtS. - -2000-04-07 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_conditional_move): Fail - if we discover we need a pseudo and no_new_pseudos is true. - * config/alpha/alpha.md (ne:DI insn): New. - (trunctfsf2, sne): Emit NE instead of non-canonical LTU. - -2000-04-07 Richard Henderson - - * rtl.def (COND_EXEC): New. - * rtl.h (COND_EXEC_TEST, COND_EXEC_CODE): New. - * tm.texi (MAX_CONDITIONAL_EXECUTE): Document. - - * genconfig.c (have_cond_arith_flag): Remove. - (have_cond_exec_flag): New. - (walk_insn_part): Detect COND_EXEC, not arithmetic in IF_THEN_ELSE. - (main): Print HAVE_conditional_execution. - - * haifa-sched.c (haifa_classify_insn): Recognize COND_EXEC. - (sched_analyze_insn, print_pattern): Likewise. - * reload.c (find_equiv_reg): Likewise. - * rtlanal.c (reg_referenced_p): Likewise. - (note_stores, dead_or_set_regno_p): Likewise. - (reg_overlap_mentioned_p): Rewrite to use a switch. - - * ggc.h (struct rtx_def): Forward declare. - - * print-rtl.c (debug_rtx_range): New. - * rtl.h (debug_rtx_range): Declare. - - * varray.h (VARRAY_ACTIVE_SIZE, VARRAY_POP_ALL): New. - - * gcse.c (gcse_main): Don't rebuild the CFG here. - (delete_null_pointer_checks): Likewise. - * ssa.c (convert_to_ssa): Likewise. - * toplev.c (rest_of_compilation): Do it here instead. Combine - sequential calls to TIMEVAR. Consistently use `insns' instead of - `get_insns()'. Always split insns after reload when optimizing. - - * basic-block.h (merge_blocks_nomove): Declare. - (tidy_fallthru_edge): Declare. - * flow.c (merge_blocks_nomove): Document as merging into previous - blocks. Remove cruft from between blocks; remove all edges out of A. - (tidy_fallthru_edge): Export. - -2000-04-06 Alex Samuel - - * ssa.c (compute_conservative_reg_partition): Declare with - void arguments. - * toplev.c (clean_dump_file): Remove previously-deleted function - inadvertantly merged back in. - * conflict.c (conflict_graph_add): Use a single call to - htab_find_slot to look up and insert. - -2000-04-06 Richard Henderson - - * genrecog.c (*): Rename _last_insn to last_insn. - (make_insn_sequence): Set the position of the peephole2 C test - to be at the last insn. - -2000-04-06 Richard Henderson - - * flow.c (compute_flow_dominators): Free worklist. - -2000-04-06 Michael Matz - - * flow.c (compute_flow_dominators): Process blocks FIFO not LIFO. - -2000-04-06 Alex Samuel - - * rtl.h (INSN_P): New macro. - (successor_phi_fn): New typedef. - (for_each_successor_phi): New prototype. - (in_ssa_form): New variable. - (PHI_NODE_P): Likewise. - * flow.c (calculate_global_regs_live): Add to new_live_at_end from - phi nodes in successors. - (mark_used_regs): Add PHI case. - (set_phi_alternative_reg): New function. - (life_analysis): Assert that dead code elimination is not selected - when in SSA form. - * toplev.c (to_ssa_time): New variable. - (from_ssa_time): Likewise. - (compile_file): Zero to_ssa_time and from_ssa_time. - Print time to convert to and from SSA. - (rest_of_compilation): Time convert_to_ssa and convert_from_ssa. - (print_time): Compute percent fraction as integer. - * ssa.c (PHI_NODE_P): Moved to rtl.h. - (convert_to_ssa): Check if we're already in SSA. - Don't eliminate dead code in life_analysis. - Rerun flow and life analysis at bottom. - (eliminate_phi): Use canonical regnos when adding nodes. - (mark_reg_in_phi): New function. - (mark_phi_and_copy_regs): Likewise. - (convert_from_ssa): Rerun life analysis at top. - Use coalesced partition. - Check for removing a phi node at the end of the block. - (compute_coalesced_reg_partition): New function. - (coalesce_regs_in_copies): Likewise. - (coalesce_reg_in_phi): Likewise. - (coalesce_regs_in_successor_phi_nodes): Likewise. - (for_each_successor_phi): Likewise. - (rename_context): New struct. - (rename_block): Use a rename_context with rename_insn_1. When - renaming sets of a subreg, emit a copy of the entire reg first. - (rename_insn_1): Treat data as a rename_context *. Save current - insn in set_data. - (rename_set_data): Add field set_insn. - * Makefile.in (HASHTAB_H): Move up in file. - (OBSTACK_H): New macro. - (collect2.o): Use OBSTACK_H in dependencies. - (sdbout.o): Likewise. - (emit-rtl.o): Likewise. - (simplify-rtx.o): Likewise. - (fix-header.o): Likewise. - (OBJS): Add conflict.o. - (conflict.o): New rule. - * basic-block.h: Include partition.h. - (conflict_graph): New typedef. - (conflict_graph_enum_fn): Likewise. - (conflict_graph_new): New prototype. - (conflict_graph_delete): Likewise. - (conflict_graph_add): Likewise. - (conflict_graph_conflict_p): Likewise. - (conflict_graph_enum): Likewise. - (conflict_graph_merge_regs): Likewise. - (conflict_graph_print): Likewise. - (conflict_graph_compute): Likewise. - * conflict.c: New file. - -2000-04-06 Jason Merrill - - * tlink.c (read_repo_files): Don't look for .rpo info for - linker flags. - -Thu Apr 6 20:39:26 2000 J"orn Rennecke - - * sh.h (STRUCT_VALUE, RETURN_IN_MEMORY): Define. - -Thu Apr 6 19:34:08 2000 J"orn Rennecke - - * config/sh/lib1funcs.asm (___udivsi3_i4): - ( __SH4_SINGLE__ / __SH4_SINGLE_ONLY__ variant): value for fpscr - only depends on FMOVD_WORKS. - -Thu Apr 6 19:11:47 2000 J"orn Rennecke - - * config/sh/lib1funcs.asm (___udivsi3_i4): When using fmovd, - make double constant 8-byte aligned. - -2000-04-06 Jakub Jelinek - - * config/sparc/sparc.md (movtf_insn_sp32, movtf_insn_vis_sp32, - movtf_no_e_insn_sp32, movtf_insn_hq_sp64, movtf_insn_hq_vis_sp64, - movtf_no_e_insn_sp64): Accept loading 0.0 into GENERAL_REGS. - (movtf_insn_sp64, movtf_insn_vis_sp64): Likewise. - Accept storing GENERAL_REGS into offsetable memory. - * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Don't allow - building a TFmode constant other than 0.0L into GENERAL_REGS. - -2000-04-06 Clinton Popetz - - * regrename.c (regrename_optimize): Handle no REG_ALLOC_ORDER. - -2000-04-06 Zack Weinberg - - * cpphash.c (CPP_IS_MACRO_BUFFER, FORWARD, PEEKC): Delete. - (macro_cleanup): No need to cast pbuf->macro. - (collect_expansion): Use _cpp_get_define_token. Goto done if - it returns VSPACE. Remove check for trailing space after - CPP_COMMENT. - (_cpp_create_definition): Don't diddle flags here. Return - directly on error. - (unsafe_chars): Handle c1 being EOF. - (push_macro_expansion): Use unsafe_chars for both accidental-paste - checks. Don't push the buffer till after we're done with - them. - * cpplex.c (PEEKBUF, GETBUF, FORWARDBUF): New. - (PEEKN, FORWARD, GETC, PEEKC): Use them. - (cpp_push_buffer): Don't set new->alimit. Set new->mark - appropriately. - (_cpp_parse_assertion): Don't NUL terminate. - (_cpp_lex_token): Fix -traditional macro handling. Don't skip - hspace before calling _cpp_parse_assertion. Remove all sets - of only_seen_white. Treat '\f' as hspace. Don't do anything - special with '\n' here. - (maybe_macroexpand): Handle T_EMPTY hash entries without - pushing a buffer at all. - (cpp_get_token): Handle clearing only_seen_white here. Handle - incrementing the line number here. Clear - potential_control_macro as well as only_seen_white, if - appropriate. - (cpp_get_non_space_token): Don't eat CPP_POP tokens. - (_cpp_get_define_token): New function, basically like - _cpp_get_directive_token was but doesn't eat horizontal space. - Don't do anything with only_seen_white here. - (_cpp_get_directive_token): Just call _cpp_get_define_token - repeatedly till it returns non-hspace. - - * cpplib.c (PEEKN, FORWARD, GETC, PEEKC): Delete. - (conditional_skip, skip_if_group): Return int. - (DIRECTIVE_TABLE): Change origin of all conditional directives - to "COND". - (TRAD_DIRECT_P): New macro. - (_cpp_handle_directive): Use _cpp_get_directive_token. Issue - an error for a bogus directive, unless -lang-asm. Use - TRAD_DIRECT_P. Loop calling handler functions till one returns - zero. - (get_macro_name): Don't diddle flags here. - (do_define): Diddle flags here. Use _cpp_get_directive_token. - Create T_EMPTY nodes for #define macro /* nothing */. - (do_undef): Don't copy the name. Use _cpp_get_directive_token. - Use hp->name when calling pass_thru_directive. - (do_if, do_else, do_elif, do_ifdef, do_ifndef, conditional_skip): - Return the result of conditional_skip and/or skip_if_group. - Don't call _cpp_output_line_command. - (consider_directive_while_skipping): Use _cpp_get_directive_token. - Issue -Wtraditional warnings as appropriate. Don't complain - about unrecognized directives. If we are to stop skipping, - return the number of the directive that ended the skip. - (skip_if_group): Use _cpp_get_directive_token. Turn off macro - expansion and line commands while skipping. Return the result - of consider_directive_while_skipping, if nonzero. - (do_endif): Just set potential_control_macro here. - (validate_else): Use _cpp_get_directive_token. - (do_assert, do_unassert): Don't save pointers into the - token_buffer across calls to the lexer. Use - _cpp_get_directive_token. - - * cpplib.h (cpp_buffer): Remove alimit and colno. Make mark a - pointer, not an offset. Replace 'data', which was a generic - pointer, with 'macro', which points to a struct hashnode. - (cpp_reader): Add 'potential_control_macro' pointer. - * cpphash.h (T_UNUSED): Replace with T_EMPTY. - (CPP_BUF_GET, CPP_FORWARD): Delete. - (CPP_IN_COLUMN_1, ADJACENT_TO_MARK): New macros. - (CPP_IS_MACRO_BUFFER, CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, - ACTIVE_MARK_P): Update. - (_cpp_get_define_token): New internal function. - * cppfiles.c (read_include_file): Don't set fp->alimit or fp->colno. - -2000-04-05 Benjamin Kosnik - - * configure.in: And here. - * configure: Regenerate. - * acconfig.h: Add ENABLE_STD_NAMESPACE to set flag_honor_std if - --enable-libstdcxx-v3 is passed at configure time. - * config.h.in: Regenerate. - -2000-04-05 Mark Mitchell - - * final.c (final): Use xcalloc to allocate line_note_exists. - * function.c (free_after_compilation): Free the temp_slots. - (assign_stack_temp_for_type): Use xmalloc to allocate temp_slots. - (combine_temp_slot): Free temp_slots when they get combined. - (purge_addressof): Fix typo in comment. - * stmt.c (mark_goto_fixup): Mark the fixup itself. - (expand_fixup): Allocate the fixup with ggc_alloc_obj. - - * ggc.h: Include varray.h. - (ggc_pending_trees): Declare. - (ggc_mark_tree_children): Remove declaration. - (ggc_mark_tree): Just push unmarked trees on ggc_pending_trees. - * ggc-common.c (ggc_pending_trees): New variable. - (ggc_mark_roots): Call ggc_mark_trees. - (ggc_mark_tree_children): Rename to ggc_mark_trees. Process all - the ggc_pending_trees. - * Makefile.in (GGC_H): New variable. Use it throughout in place - of ggc.h. - -Thu Apr 6 00:30:50 2000 J"orn Rennecke - - * sh.h (FUNCTION_ARG_PARTIAL_NREGS): Accommodate an unsigned - GET_MODE_SIZE. - -Wed Apr 5 23:17:10 2000 J"orn Rennecke - - * sh.c (sh_insn_length_adjustment): New function. - * sh-protos.h (sh_insn_length_adjustment): Declare. - * sh.h (ADJUST_INSN_LENGTH): Use it. - -Wed Apr 5 12:35:18 2000 Hans-Peter Nilsson - - * optabs.c (emit_libcall_block): Remove spurious REG_EQUAL notes - from the insn where REG_RETVAL is added. - (emit_no_conflict_block): Ditto. - - * md.texi (Standard Names): Clarify when movX is needed. - - * combine.c (simplify_comparison) [MINUS]: Do not replace - all (op (minus A B) 0) with (op A B). - -Wed Apr 5 18:03:31 2000 Toshiyasu Morita (toshi.morita@sega.com) - J"orn Rennecke - - * sh.md (block_lump_real_i4): Add missing clobber of T_REG - (block_lump_real): Likewise. - -2000-04-05 Chris Demetriou - - * mips.h (MASK_DEBUG_A, MASK_DEBUG_B, MASK_DEBUG_C): Zero the - remaining nonzero debugging masks. - -Wed Apr 5 09:44:07 2000 Jeffrey A Law (law@cygnus.com) - - * basic-block.h (verify_flow_info): Declare. - (flow_loop_outside_edge_p): Declare. - * flow.c (verify_flow_info): Remove declaration. - (clear_log_links, flow_loop_outside_edge_p): Likewise. - -Wed Apr 5 09:34:26 2000 Philippe De Muyter - - * m68k/m68k-protos.h (finalize_pic): Turn prototype off using `#if 0', - not C++ comments. - -2000-04-05 Jakub Jelinek - - * config/sparc/sparc.md (snedi_zero+1, neg_snedi_zero+1, - snedi_zero_trunc+1, seqdi_zero+1, neg_seqdi_zero+1, - seqdi_zero_trunc+1): Allow splits only if registers are - different. - -2000-04-04 Ulrich Drepper - - * acconfig.h: Add HAVE_GAS_HIDDEN. - * config.in: Regenerated. - * configure.in: Add test for .hidden pseudo-op in gas. - * configure: Regenerated. - * crtstuff.c: Include auto-host.h. - Emit additional .hidden pseudo-op for __dso_handle if the - assembler knows about it. - -2000-04-04 Philippe De Muyter - - * cpphash.c (_cpp_free_definition): Test argnames, not nargs >= 0, - before freeing argnames. - * cpplib.c (do_ifndef): Cast return value of xstrdup. - -2000-04-05 Michael Meissner - - * config/rs6000/rs6000.c (print_operand): Patch from Jonathan - Walton to make memory references with update - work wtih -mregnames. - -2000-04-04 Kaveh R. Ghazi - - * regrename.c (regno_first_use_in): Wrap prototype in PARAMS. - (regrename_optimize): Rename variables `def_uses' and - `ext_basic_blocks' to avoid conflicts with similarly named - typedefs in traditional C. - - * calls.c (initialize_argument_information): Fix typo in previous - change. - -2000-04-04 Richard Henderson - - * regrename.c (consider_available): Test fixed_regs not - PIC_OFFSET_TABLE_REGNUM. - -2000-04-04 Geoff Keating - - * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbegin, - crtend. - (CRTSTUFF_T_CFLAGS_S): Delete definition. - * config/rs6000/sysv4.h (STARTFILE_LINUX_SPEC): Always use crtbegin. - (ENDFILE_LINUX_SPEC): Always use crtend. - * configure.in (powerpc-*-linux-gnulibc1): Don't define extra_parts. - (powerpc-*-linux-gnu): Likewise. - * configure: Regenerate. - - * config/rs6000/eabi.h: Don't include sysv4.h. - (MULTILIB_DEFAULTS): Don't define. - * config/rs6000/eabiaix.h: Don't include eabi.h. - * config/rs6000/eabile.h: Delete. - * config/rs6000/eabilesim.h: Delete. - * config/rs6000/eabisim.h: Don't include eabi.h. - * config/rs6000/linux.h: Don't include sysv4.h. - (JUMP_TABLES_IN_TEXT_SECTION): Don't redefine. - (MULTILIB_DEFAULTS): Don't redefine. - * config/rs6000/rtems.h: Don't include eabi.h. - * config/rs6000/sol2.h: Don't include sysv4le.h. - * config/rs6000/sysv4le.h: Don't include sysv4.h. - * config/rs6000/t-ppc: Delete. - * config/rs6000/t-ppcgas: Correct comment. - * config/rs6000/t-ppcos: Correct comment. Don't build - multilibs for -fPIC, rather use -fPIC -mstrict-align - as default. - * config/rs6000/t-ppc: Delete. - * config/rs6000/vxppc.h: Don't include sysv4.h. - * config/rs6000/vxppcle.h: Delete. - * configure.in: Use multiple header files for p2pc ELF targets - powerpc-eabiaix, powerpc-eabisim, powerpc-rtems, powerpcle-eabi, - powerpcle-eabisim, powerpc-elf, powerpcle-elf, powerpc-linux-gnu, - powerpc-linux-gnulibc1, powerpc-sysv, powerpcle-sysv, - powerpc-vxworks, powerpcle-vxworks. Assume GAS functionality is - always available for these platforms. - -2000-04-04 Richard Henderson - - * calls.c (try_to_integrate): Initialize reg_parm_stack_space. - -2000-04-04 Stan Cox - - * Makefile.in: Add rules for regrename.o - * regrename.c: New file. - * rtl.h (regrename_optimize): Add prototype. - * toplev.c (rename_registers_dump, flag_rename_registers): New variables - (compile_file, decode_d_option): Add support for -frename-registers. - (rest_of_compilation): Call regrename_optimize. - * config/ia64/ia64.h (HARD_REGNO_RENAME_OK, RENAME_EXTENDED_BLOCKS): - New macros. - -2000-04-04 Martin v. Löwis - - * Makefile (gccbug): New target. - (doc): Depend on it. - * gcc.texi (Bugs): Link subnodes. - (gccbug): New node. - * gccbug.in (CATEGORIES): Remove gc, host, profiling, libgcc. - Document severities, priorities, and classes in bug form. - -2000-04-04 Zack Weinberg - - * cpplex.c (trigraph_map, speccase): Combine into single - table, chartab. - (NORMAL, NONTRI): New macros. - (_cpp_read_and_prescan): Change to use unified table. Use - is_hspace to test for whitespace. - - * dbxout.c (CONTIN): If it doesn't have to do anything, give it a - definition that doesn't provoke the "empty body in an - if-statement" warning. - -2000-04-04 Clinton Popetz - - * builtins.c (expand_builtin_strlen): Force the source to - be a memory address. - -2000-04-04 Kaveh R. Ghazi - - * cpplib.c (D): Adjust to call CONCAT2 macro without whitespace. - -Tue Apr 4 19:17:20 MET DST 2000 Jan Hubicka - - * calls.c (ECF_MALLOC, ECF_MAY_BE_ALLOCA, ECF_RETURNS_TWICE, - ECF_LONGJMP, ECF_FORK_OR_EXEC): New constants. - (ECF_IS_CONST): Rename to ECF_CONST. - (special_function_p): Make static, change interface. - (flags_from_decl_or_type, try_to_integrate): Break out from ... - (expand_call) ... here; convert number of variables to flags. - (emit_library_call_vlue_1): Likewise. - (setjmp_call_p): New function. - (initialize_argument_information): Accepts flags as argument; - return flags. - (precompute_arguments): Likewise. - * tree.h (special_function_p): Remove. - (setjmp_call_p): Add prototype. - -2000-04-04 Jakub Jelinek - - * config/sparc/sparc.h (RTX_OK_FOR_OFFSET_P): Leave minor margin - so that addresses are offsetable by up to 16 bytes. - (GO_IF_LEGITIMATE_ADDRESS): Don't allow REG+REG addresses for - non-optimizing TARGET_ARCH32 in DF or DI modes because it is not - offsetable. - - * config/sparc/sparc.md (movdi_insn_sp64_novis): New pattern. - (movdi_insn_sp64_vis): Renamed from movdi_insn_sp64. - (movsf): Don't force any constant to memory if target is integer - hard register. - Move fp_zero_operand check below the const0_rtx check. - (movtf): Likewise. Also allow fp_zero_operand for stores into - memory. - (movdf): Likewise. Also allow fp_zero_operand for stores into - memory and into integer hard registers. - (clear_df, clear_dfp, movdf_const_intreg_sp32, - movdf_const_intreg_sp64): Remove. - (movdf_insn_sp32, movdf_no_e_insn_sp32): Redo constraints and - conditions. - (movdf_no_e_insn_v9_sp32): New pattern. - (movdf_insn_v9only): Remove. - (movdf_insn_v9only_novis, movdf_insn_v9only_vis): New patterns. - (movdf_insn_sp64): Remove. - (movdf_insn_sp64_novis, movdf_insn_sp64_vis): New patterns. - (movdf_no_e_insn_sp64): Allow storing 0.0 into memory. - (following splits): Rewrite conditions. Add two new splits - for storing 0.0 into memory and registers. - (clear_tf, clear_tf+1, clear_tfp, clear_tfp+1): Remove. - (movtf_insn_sp32): Redo constraints and conditions. - (movtf_insn_vis_sp32): New pattern. - (movtf_no_e_insn_sp32): Redo constraints and conditions. - (movtf_insn_hq_sp64): Likewise. - (movtf_insn_hq_vis_sp64): New pattern. - (movtf_insn_sp64): Redo constraints and conditions. - (movtf_insn_vis_sp64): New pattern. - (movtf_no_e_insn_sp64): Redo constraints and conditions. - (movtf_no_e_insn_sp64+1): New split for storing 0.0L into registers - or memory. - * config/sparc/sparc.c (sparc_override_options): Assume v9 if either - -mvis or -m64 to take down the number of various reload patterns. - -Tue Apr 4 00:41:53 2000 Jeffrey A Law (law@cygnus.com) - - * pa/pa-64.h: New file. - * pa/pa64-regs.h: New file. - * pa/pa64-start.h: New file. - * pa/t-pa64: New file. - * pa/xm-pa64hpux.h: New file. - -2000-04-03 Kaveh R. Ghazi - - * sparc.c (output_restore_regs): Prototype. - (sparc_emit_float_lib_cmp): Constification. - - * emit-rtl.c (const_int_htab_hash, const_int_htab_eq): Likewise. - - * reload1.c (reload_cse_delete_noop_set, reload_cse_simplify): - Prototype. - - * simplify-rtx.c (entry_and_rtx_equal_p): Constification. - (get_value_hash, hash_rtx): Likewise. - - * ssa.c (compute_conservative_reg_partition): Prototype. - - * tree.c (mark_hash_entry): Prototype. - -2000-04-03 Zack Weinberg - - * bb-reorder.c (verify_insn_chain): #ifdef out unless ENABLE_CHECKING. - * i386.h (FUNCTION_ARG_REGNO_P): Remove unnecessary test for N >= 0. - * i386.md (call_value, call_value_pop): Remove unused variable 'addr'. - - * gcc.c (C specs): Pass -fno-show-column to the preprocessor. - * objc/lang-specs.h: Likewise. - -2000-04-03 Neil Booth - - * cppexp.c: wrap long lines. New macros CPP_ICE, SYNTAX_ERROR - and SYNTAX_ERROR2. Replace `' in messages with ''. - (op_to_str): Make re-entrant. - (_cpp_parse_expr): Implement new error macros. Use | rather - than || to logically or 2 boolean integers. Simply expression - checking we have a left operand iff needed. - -2000-04-03 Nick Clifton - - * Makefile.in (diagnostic.o): Depend upon diagnostic.c - -2000-04-03 Philip Blundell - - * config/arm/linux-elf.h (SUBTARGET_EXTRA_LINK_SPEC): Fix typos. - -2000-04-03 Felix Lee - - * fixinc/server.c (find_shell): New function. Avoid $SHELL. - (run_shell): Use it. - -2000-04-03 Jonathan Larmour - - * Makefile.in (stmp-int-hdrs): Make include subdir here... - (stmp-fixproto): ...rather than here. - -Mon Apr 3 00:50:06 2000 Jason Eckhardt - - * pa.c (print_operand): Compute 'base' only inside the code paths - that use it. - -2000-04-03 Geoffrey Keating - - * stor-layout.c (byte_from_pos): Use TRUNC_DIV_EXPR rather than - CEIL_DIV_EXPR. - -2000-04-03 Philipp Thomas - - * i386.h (TARGET_SWITCHES): Remove bogus empty strings, fix typo. - -Mon Apr 3 00:02:59 2000 Brad Lucier - - * Makefile.in (alias.o): Depend on $(TREE_H). - -2000-04-02 Zack Weinberg - - * cppinit.c (cpp_start_read): Turn off -Wtraditional if - processing C++. - * cpplib.c (_cpp_handle_directive): Improve warnings for - traditional C and indented directives. - - * enquire.c, gsyslimits.h, limity.h, config/convex/fixinc.convex, - fixinc/fixinc.irix, fixinc/fixinc.sco, fixinc/fixinc.wrap, - fixinc/inclhack.def: Indent the # of #include_next one space. - * cp/rtti.c: Un-indent #if and #endif. - - * cppexp.c (_cpp_parse_expr): If lex returns '#', it's a - syntax error, but an error has already been printed. - * cpplex.c (_cpp_parse_assertion): Give a more specific error - message when called with nothing remaining on the line. - (_cpp_lex_token): If _cpp_parse_assertion fails, return an - OTHER token, not an ASSERTION. - * cpplib.c (do_assert): When we create a 'base' node, clear - its aschain pointer. - -2000-04-02 Neil Booth - - * cppexp.c: New typedef op_t. struct operation and struct - token updated to use it. - (op_to_str): New function. - (_cpp_parse_expr): Error messages modified to use op_to_str. - -2000-04-02 Michael Hayes - - * config/c4x/c4x.c (c4x_function_arg): Check for void_type_node - before checking MUST_PASS_IN_STACK. - -2000-04-02 Neil Booth - - * cppexp.c: New FINISHED dummy token. Combine operator initial - flags and initial priority into a single constant. New - EQUALITY macro. New operator flag SHORT_CIRCUIT. - (_parse_cpp_expr): Implement new constants. Take left operand - checks out of reduction loop. Handle SHORT_CIRCUIT. End of - parse indicated by reducing FINISHED token. Remove new lines - from cpp_error messages. - -2000-04-01 Mark Mitchell - - * emit-rtl.c (gen_rtx_CONST_INT): Create cached CONST_INTs on the - permanent obstack. - -2000-04-01 Zack Weinberg - - * cpplib.c: Include symcat.h. Add 'origin' field to struct - directive. Add origin values to DIRECTIVE_TABLE. Generate - the strings and function names on the fly. Take the #sccs - entry out of the table if SCCS_DIRECTIVE is not defined. - (_cpp_handle_directive): Decide if the # was at the beginning - of the line here. Issue -pedantic warnings for extended - directives here. Warn about K+R directives with the # - indented, and C89/extended directives with the # not indented, - here. - (do_import, do_include_next, do_warning, do_ident, do_sccs, - do_assert, do_unassert): Don't issue pedantic warning here. - - * cpphash.h: Add CPP_WTRADITIONAL macro. - * cpplib.h (struct cpp_options): Rename warn_stringify to - warn_traditional; update comments. - * cppinit.c (handle_option): Set warn_traditional not - warn_stringify. - * cpphash.c: Replace CPP_OPTION (pfile, warn_stringify) with - CPP_WTRADITIONAL (pfile). - * cpplex.c (_cpp_lex_token): Don't decide if directives should - be ignored in -traditional mode here. - - * cpplex.c: Copy ISTABLE macros from cppinit.c, and adapt them - to initialize speccase[] and trigraph_map[]. Delete all - references to pfile->input_speccase. Always treat '?' as a - special character. Remove table-initialization code from - _cpp_init_input_buffer. - - * cpplib.h (struct cpp_reader): Remove input_speccase field. - * cppinit.c (cpp_cleanup): Don't free input_speccase. - -2000-04-01 Richard Henderson - - * Makefile.in (STAGESTUFF): Wildcard all debugging dumps at once. - (mostlyclean): Likewise. - - * toplev.c (rtl_dump, jump_opt_dump, etc): Remove. - (struct dump_file_info, enum dump_file_index, dump_file): New. - (open_dump_file): Take a dump_file_index not a suffix, and a decl - not a string. Clean out file if we haven't yet done so. Do nothing - if the dump isn't enabled. - (close_dump_file): Do nothing if the dump isn't open. Dump - graph data if requested. - (dump_rtl, clean_dump_file): Remove. - (compile_file): Don't clean the dump files. Only finalize .bp dump - if flag_test_coverage or flag_branch_probabilities. Only finalize - .combine dump if optimizing. Iterate over dump_file to finalize the - graph dumps. - (rest_of_compilation): Update for open_dump_file/close_dump_file. - Convert all uses of dump_rtl. - (decode_d_option): Iterate over dump_file to implement 'a' and to - locate pass-specific dumps. - -2000-04-01 Neil Booth - - * cppexp.c: Redefine priority constants. - (_cpp_parse_expr): Replace left and right priority scheme with - single priority logic. Move LOGICAL to same place as COMPARE. - Remove bogus check for multiple unary +/- operators. - -2000-04-01 Neil Booth - - * cppexp.c: (_cpp_parse_expr): Numerical constants are pushed - within the switch statement. Binary operations break out of - the switch naturally. '(' tokens handled by forcing - immediate shift. ')' handled by forcing immediate reduce to - the previous '('. New error messages. - -2000-03-31 Geoff Keating - - * config/rs6000/rs6000.c (print_operand): Don't use %l for 'low - part', it's already in use. Use %K instead. Add a return at the - end of what is now %K. - * config/rs6000/rs6000.md (elf_low): Use %K instead of %l. - -Sat Apr 1 02:05:29 MET DST 2000 Jan Hubicka - - * builtins.c (expand_builtin_apply): Pass proper parameters to - allocate_dynamic_stack_space. - * calls.c (emit_call_1): Do not adjust stack pointer for SIB, - update stack_pointer_delta; do not update arg_size_so_far. - (compute_argument_block_size): Use stack_delta instead of - stack_pointer_pending and arg_size_so_far. - (expand_call): Add sanity checking for stack_pointer_delta; - save and restore stack_pointer_delta for SIB, use - stack_pointer_delta for alignment; do not update arg_space_so_far. - (emit_library_call_value): Use stack_pointer_delta for alignment. - (store_one_arg): Do not update arg_space_so_far. - * explow.c (adjust_stack, anti_adjust_stack): Update - stack_pointer_delta. - (allocate_dynamic_stack_space): Add sanity checking for - stack_pointer_delta. - * expr.c (init_expr, clear_pending_stack_adjust): Clear - stack_pointer_delta. - (emit_push_insn): Update stack_pointer_delta. - * function.h (struct expr_status): Add x_stack_pointer_delta; - remove x_arg_space_so_far. - (arg_space_so_far): Remove. - (stack_pointer_delta): New macro. - -2000-03-31 Zack Weinberg - - * cpplib.h: Merge struct cpp_options into struct cpp_reader. - Reorder struct cpp_options and struct cpp_reader for better - packing. Replace CPP_OPTIONS macro with CPP_OPTION which - takes two args. Change all 'char' flags to 'unsigned char'. - Move show_column flag into struct cpp_options. Don't - prototype cpp_options_init. - * cpphash.h, cpperror.c, cppexp.c, cppfiles.c, cpphash.c, - cppinit.c, cpplex.c, cpplib.c: - Replace CPP_OPTIONS (pfile)->whatever with - CPP_OPTION (pfile, whatever), and likewise for - opts = CPP_OPTIONS (pfile); ... opts->whatever; - - * cppinit.c (merge_include_chains): Take a cpp_reader *. - Extract CPP_OPTION (pfile, pending) and work with that - directly. - (cpp_options_init): Delete. - (cpp_reader_init): Turn on on-by-default options here. - Allocate the pending structure here. - (cl_options, enum opt_code): Define these from the same table, - kept in a large macro. Add -fshow-column and -fno-show-column - options. - - * cpperror.c (v_message): If show_column is off, don't print - the column number. - - * cppmain.c: Update for new interface. - * fix-header.c: Likewise. - -2000-03-30 Geoff Keating - - * config/rs6000/t-aix43 (AR_FLAGS_FOR_TARGET): Adjust for new - definition. - * Makefile.in (AR_FLAGS_FOR_TARGET): Is now the flags that - are passed to any invocation of AR_FOR_TARGET. - (AR_CREATE_FOR_TARGET): New macro. - (AR_EXTRACT_FOR_TARGET): New macro. - (ORDINARY_FLAGS_TO_PASS): Add AR_CREATE_FOR_TARGET, - AR_EXTRACT_FOR_TARGET. - (many places): Use AR_CREATE_FOR_TARGET, AR_EXTRACT_FOR_TARGET - in place of `$(AR_FOR_TARGET) $(AR_FLAGS_FOR_TARGET)' and - `$(AR_FOR_TARGET) x'. Pass AR_CREATE_FOR_TARGET and - AR_EXTRACT_FOR_TARGET to sub-makes. - -2000-03-31 Neil Booth - - * cppexp.c: Delete SKIP_OPERAND. Correct priority - PAREN_INNER_PRIO. - (_cpp_parse_expr): Check for multiple unary +/- operators. - Correct priorities of ':' and '?'. Treat ')' as having a - value. Ensure conditional expression is not void. - -2000-03-31 Mark Mitchell - - * alias.c (canon_rtx): Make it global. - (rtx_equal_for_memref_p): CONST_INT equality is now pointer - equality. - * cse.c (struct table_elt): Add canon_exp. - (insert): Clear it. - (invalidate): Canonicalize expressions only once. - * rtl.h (canon_rtx): Declare. - -2000-03-30 Mark Mitchell - - * Makefile.in (emit-rtl.o): Depend on HASHTAB_H. - * alias.c (reg_known_value): Add comments. - (init_alias_analysis): Likewise. - * cse.c (exp_equiv_p): CONST_INTs are equal iff they have the same - address. - (cse_basic_block): Fix typo in comment. - * emit-rtl.c: Include hashtab.h. - (const_int_htab): New variable. - (const_int_htab_hash): New function. - (const_int_htab_eq): Likewise. - (rtx_htab_mark_1): Likewise. - (rtx_htab_mark): Likewise. - (gen_rtx_CONST_INT): Cache all CONST_INTs. - (unshare_all_rtx): Fix formatting. - (init_emit_once): Initialize const_int_htab. - * rtl.c (rtx_equal_p): CONST_INTs are equal iff they have the same - address. - * rtl.texi: Document the fact that all CONST_INTs with the same - value are shared. - -2000-03-30 Richard Henderson - - * alpha.h (FUNCTION_BOUNDARY): Reduce to 128 bits. - -2000-03-30 Zack Weinberg - - * configure.in: Comment out --enable-c-cpplib stanza. - * configure: Regenerate. - -Thu Mar 30 06:32:51 2000 Richard Kenner - - * expr.c (store_constructor): Properly compute displacement and - alignment when offset is variable. - - * expmed.c (store_bit_field, store_fixed_bit_field): Fix more - cases of alignment in bytes. - -Thu Mar 30 13:30:40 2000 Jeffrey A Law (law@cygnus.com) - - * c-parse.in (cast_expr): Move change from March 21 into c-parse.in - since it is used to generate c-parse.y. - * objc-parse.c, objc-parse.y: Regenerated. - - * function.c (expand_function_end): Pass alignment argument to - emit_block_move in bits, not bytes. - -Thu Mar 30 06:32:51 2000 Richard Kenner - - * expr.c (move_by_pieces_ninsns): Fix one more missing align - correction. - - * expmed.c (store_fixed_bit_field): STRUCT_ALIGN is in bits. - - * calls.c (expand_call): Pass bit alignment to mark_reg_pointer. - * explow.c (memory_address, allocate_dynamic_stack_space): Likewise. - * function.c (assign_parms): Likewise. - * integrate.c (expand_inline_function): Likewise. - * stmt.c (expand_decl): Likewise. - (copy_rtx_and_substitute): Likewise. - * expr.c (expand_expr, expand_expr_unaligned): Likewise. - (clear_by_pieces): Fix error in last change. - * emit-rtl.c (init_emit): Set known registers alignment in bits. - * function.h (regno_pointer_align): Now unsigned. - * config/arm/arm.c (alignable_memory_operand): REGNO_POINTER_ALIGN - is in bits. - * config/i386/i386.c (aligned_operand): Likewise. - * config/sparc/sparc.c (mem_min_alignment): Likewise. - * config/alpha/alpha.c (aligned_memory_operand): Likewise. - (unaligned_memory_operand): Likewise. - (alpha_expand_block_move, alpha_expand_block_clear): Likewise. - Also make alignments and sizes unsigned and some whitespace cleanup. - (alpha_va_start): Do nothing if VALIST's type is error_mark_node. - - * builtins.c (get_pointer_alignment): Use host_integerp & tree_low_cst. - (expand_builtin_apply): Pass alignment to emit_block_move in bits. - (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. - (expand_builtin_memset): Likewise, but to clear_storage. - * calls.c (save_fixed_argument_area): Likewise, to move_by_pieces. - (restore_fixed_argument_area): Likewise. - (store_unaligned_arguments_into_pseudos): Likewise, to store_bit_field. - (load_register_parameters): Likewise, to emit_group_load. - (expand_call): Likewise, to emit_group_store and emit_block_move. - (emit_library_call_value_1): Likewise, to emit_block_move. - (store_one_arg): Likewise, and to emit_push_insn. - * expmed.c (extract_bit_field): Alignment is in bits, not bytes. - (extract_fixed_bit_field, extract_split_bit_field): Likewise. - * expr.c (move_by_pieces, move_by_pieces_ninsns): Likewise. - (emit_block_move, emit_group_load, emit_group_store): Likewise. - (clear_by_pieces, clear_storage, emit_push_insn): Likewise. - (expand_assigment, store_expr, store_constructor_field): Likewise. - (expand_expr_unaligned, do_jump, do_compare_and_jump): Likewise. - (store_constructor, store_field, get_inner_reference): Likewise. - Use host_integerp and tree_low_cst; sizes and positions HOST_WIDE_INT. - (expand_expr, case COMPONENT_REF): Likewise. - (copy_blkmode_from_regs): Use UNSIGNED_HOST_WIDE_INT for sizes - and positions; reindent code. - * expr.h (emit_cmp_insn, emit_cmp_and_jump_insns): Alignment unsigned. - * function.c (purge_addressof_1): Pass bit align to store_bit_field. - (assign_parms): Likewise to emit_group_store. - * optabs.c (prepare_cmp_insn): Alignment is in bits. - (emit_cmp_and_jump_insns, emit_cmp_insn): Likewise, and also unsigned. - * stmt.c (expand_value_return): Pass align in bits to emit_group_load. - (expand_return): Likewise to {extract,store}_bit_field. - * stor-layout.c (get_mode_alignment): Minor cleanup. - * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Align is in bits. - * config/sh/sh.h (MOVE_BY_PIECES_P): Likewise. - -2000-03-29 Nick Clifton - - * config/arm/arm.h: Undo effects of previous delta: - (ASM_SPEC): Do not define. - (SUBTARGET_EXTRA_ASM_SPEC): Do not define. - - * config/arm/linux-elf.h: (SUBTARGET_EXTRA_ASM_SPEC) Fix - typo. - -2000-03-29 Zack Weinberg - - * cppinit.c (cpp_start_read): Call initialize_dependency_output - only after reading in the primary source file. - -2000-03-29 Geoff Keating - - * c-common.c (c_common_nodes_and_builtins): The first parameter to - __builtin_va_start and __builtin_va_copy is now either a 'va_list' - or a reference to a va_list. - * builtins.c (stabilize_va_list): Simplify now we don't have to - work around C array address decay. - * c-typeck.c (convert_for_assignment): Handle assignment to - a reference parameter by taking the address of the RHS. - * ginclude/stdarg.h (va_start): Don't take address of first parameter. - (va_copy): Likewise. - (__va_copy): Likewise. - * ginclude/varargs.h (va_start): Likewise. - (__va_copy): Likewise. - -Wed Mar 29 15:44:53 2000 Jeffrey A Law (law@cygnus.com) - - * i386/djgpp.h: Remove extraneous "+". - - * stmt.c (stmt_loop_nest_empty): Fix thinko in last change. - - * calls.c (expand_call): Fix typo in last change. - -2000-03-29 Jason Merrill - - * tree.c (unsave_expr_1): Don't mess with a TARGET_EXPR that hasn't - been expanded. - -Wed Mar 29 15:39:10 2000 Richard Kenner - - * stor-layout.c (bit_from_pos, byte_from_pos): New functions. - (pos_from_byte, pos_from_bit, normalize_offset): Likewise. - (normalize_rli, rli_size_so_far, rli_size_unit_so_far): Use them. - * tree.c (bit_position, byte_position): Likewise. - * tree.h: Declare new functions. - -2000-03-29 Nick Clifton - - * config/arm/arm.c: Minor formatting changes/ - * config/arm/arm.h (SUBTARGET_EXTRA_ASM_SPEC): Define if not - already defined. - (ASM_SPEC): Define if not already defined. - -2000-03-29 Zack Weinberg - - * cppfiles.c (cpp_read_file): Don't pass zero-length string to - _cpp_calc_hash. - -2000-03-29 Jakub Jelinek - - * dwarf2out.c (gen_enumeration_type_die): If enum has a negative - value, don't output it as unsigned. - -Wed Mar 29 10:53:49 2000 Jeffrey A Law (law@cygnus.com) - - * stmt.c (stmt_loop_nest_empty): Allow cfun->stmt to be NULL. - -2000-03-29 Kaveh R. Ghazi - - * c-common.c (c_common_nodes_and_builtins): Don't special case - cplus_mode when declaring builtin bzero/bcmp, always avoid - prototype arguments. - -2000-03-29 Bruce Korb - - * fixinc/mkfixinc.sh: Initially set the variable "fixincludes" - to a non-file - -Wed Mar 29 15:08:01 MET DST 2000 Jan Hubicka - - Convert ACCUMULATE_OUTGOING_ARGS to an expression. - * calls.c (PUSH_ARGS_REVERSED) Change to expression. - (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default value. - (struct arg_data): Remove #ifdef ACCUMULATE_OUTGOING_ARGS. - (save_fixed_argument_area, restore_fixed_argument_area): - conditionize by #ifdef REG_PARM_STACK_SPACE only. - (emit_call): Change #ifdefs on ACCUMULATE_OUTGOING_ARGS - to conditions, handle RETURN_POPS_ARGS on ACCUMULATE_OUTGOING_ARGS. - (precompute_register_parameters): Avoid #ifdefs on - ACCUMULATE_OUTGOING_ARGS and PUSH_ARGS_REVERSED. - (stire_one_args): Likewise. - (expand_call): Likewise; conditionize PUSH_ROUNDING code by PUSH_ARGS. - (emit_library_call_value_1): Likewise. - (compute_argument_block_size): Align to STACK_BOUNDARY only for - ACCUMULATE_OUTGOING_ARGS. - * combine.c (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): Provide default - value. - (nonzero_bits): Conditionize PUSH_ROUNDING code by USE_PUSH. - (use_crosses_set_p): Likewise. - * all targets (ACCUMULATE_OUTGOING_ARGS define): Change to - #define ACCUMULATE_OUTGOING_ARGS 1. - * i386.c (ix86_compute_frame_size): Handle ACCUMULATE_OUTGOING_ARGS - frames. - * i386.h (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS): New - constants. - (TARGET_PUSH_ARGS, TARGET_ACCUMULATE_OUTGOING_ARGS): New macros. - (TARGET_SWITCHES): Add push-args, no-push-args, - accumulate-outgoing-args and no-accumulate-outgoing-args. - (ACCUMULATE_OUTGOING_ARGS, PUSH_ARGS): New macro. - * expr.c (ACCUMULATE_OUTGONG_ARGS, PUSH_ARGS): Provide default. - (push_block): Avoid ifdefs on ACCUMULATE_OUTGONG_ARGS - and PUSH_ROUNDING. - (emit_push_insn): Likewise. - * final.c (ACCUMULATE_OUTGOING_ARGS): Provide default. - (final_scan_insn): Avoid ifdefs on ACCUMULATE_OUTGOING_ARGS. - * function.c (ACCUMULATE_OUTGOING_ARGS): Provide default. - (STACK_DYNAMIC_OFFSET): Define correctly for both - ACCUMULATE_OUTGOING_ARGS and normal mode. - * invoke.texi (-mpush_args, -maccumulate-outgoing-args): Document. - * tm.texi (PUSH_ARGS): Document. - (ACCUMULATE_OUTGOING_ARGS, PUSH_ROUNDING): Update documentation. - -Wed Mar 29 11:51:13 MET DST 2000 Jan Hubicka - - * flags.h (flag_optimize_sibling_calls): Declare. - * calls.c (expand_call): Fail sibcall when - !flag_optimize_sibling_calls - * invoke.texi (flag_optimize_sibling_calls): Document. - * toplev.c (flag_optimize_sibling_calls): New global variable. - (f_options): Add flag_optimize_sibling_calls. - (rest_of_compilation): Conditionize - optimize_sibling_and_tail_recursive_calls by - flag_optimize_sibling_calls. - (main): Set flag_optimize_sibling_calls for -O2. - * stmt.c (expand_return): Conditionize tail recursion by - flag_optimize_sibling_calls. - -2000-03-29 Richard Henderson - - * config/i386/att.h (LOCAL_LABEL_PREFIX): Define. - (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Use it. - -2000-03-29 Nathan Sidwell - - * except.c (add_eh_table_entry): Mark type_info's as referenced. - -2000-03-29 Alexandre Oliva - - * config/rs6000/aix41.h (CPP_SPEC): Define _ANSI_C_SOURCE if -ansi - is given. - * config/rs6000/aix43.h (CPP_SPEC): Likewise. - * config/rs6000/rs6000.h (CPP_SPEC): Moved to... - * config/rs6000/aix.h: then modified likewise. - -2000-03-28 Richard Henderson - - * rtl.h: Redistribute enum reg_note documentation. - Kill trailing whitespace. - * rtl.c (reg_note_name): Adjust to match enum reg_note tweeks. - Kill trailing whitespace. - -2000-03-28 Zack Weinberg - - * cppfiles.c (hash_IHASH): Just return i->hash. - (cpp_included): Set dummy.hash using _cpp_calc_hash. Use - htab_find_with_hash. - (cpp_read_file): Likewise. - (find_include_file): Likewise. Properly initialize - ih->nshort. Share ih->name and ih->nshort if possible. - * cpphash.c (_cpp_calc_hash): New function. - (hash_HASHNODE): Just return h->hash. - (_cpp_lookup): Set dummy.hash using _cpp_calc_hash. Use - htab_find_with_hash. - * cpphash.h: Prototype _cpp_calc_hash. - * cppinit.c (initialize_builtins): Provide a valid hash - to _cpp_make_hashnode, using _cpp_calc_hash. - - * cpphash.c (collect_expansion): # is not a special character - in object-like macros. In -traditional mode, /**/ is not - token paste at the beginning or end of the line. - * cpplib.c (do_include, do_import, do_include_next): If - parse_include fails, return immediately. - -2000-03-28 Jason Merrill - - * config/arm/arm.md (return peepholes): Update to reflect the new - call insn patterns. - * config/arm/arm.c (arm_volatile_func): Also check - current_function_nothrow. - (output_return_instruction, output_func_prologue): Use it. - (arm_output_epilogue, arm_expand_prologue): Likewise. - -2000-03-27 Tom Tromey - - * gcc.c (handle_braces): In {x*...} case, break out of loop if - switch is found. - -Tue Mar 28 11:55:48 2000 Richard Kenner - - * expr.c (store_constructor): SIZE now signed. - For EXPR_SIZE, don't evaluate size; just needed if constant. - * fold-const.c (fold): Fix a number of cases when folded tree is - wrong type. - * function.c (flush_addressof): Reenable. - * tree.h (flush_addressof): Likewise. - * toplev.c (independent_decode_option): Look at strings_processed. - * config/alpha/alpha.h (MINIMUM_ATOMIC_ALIGNMENT): Cast to unsigned. - -Tue Mar 28 08:29:46 2000 Jan Hubicka - - * sibcall.c (identify_call_return_value): Find last call in the chain; - Allow stack adjustment after function call. - - * regmove.c (struct csa_memlist): Make mem field rtx *. - (record_one_stack_ref): Accept rtx * instead of rtx as parameter. - (try_apply_stack_adjustment): Replace whole MEM rtx. - (combine_stack_adjustments_for_block): Update calls - to record_one_stack_ref. - -2000-03-28 Neil Booth - - * cpplex.c (_cpp_read_and_prescan): Mark end of input buffer with - '\\' rather than a null character, so nulls are not special. Fix - "\\\n" handling in end-of-buffer conditions. Use trigraph map to - speed trigraph conversion. - (_cpp_init_input_buffer): Initialize trigraph map. - -2000-03-27 Alan Modra - - * config/i386/i386.c (output_387_binary_op): Correct intel - mode assembly output, and add spaces after commas in AT&T - output. Correct Unixware assembler comment. Document input - constraints. Comment fp operations. Reduce profligate buffer - size. Remove extraneous abort. Localize temp var. - (SYSV386_COMPAT): Define. Add !SYSV386_COMPAT code. - (output_fix_trunc): Add spaces after commas in assembly output. - -2000-03-27 Richard Henderson - - * i386-protos.h (ix86_match_ccmode): Declare. - * i386.c (ix86_match_ccmode): New. - (ix86_expand_fp_compare): Update for pattern renames. - (ix86_expand_strlensi_unroll_1): Likewise. - * i386.h (EXTRA_CC_MODES): Add CCZ. - (SELECT_CC_MODE): Use it for EQ/NE zero. - * i386.md (cmpsi_ccz_1): New. - (cmpqi_ccz_1): New. - (*testsi_ccz_1): New. - (testqi_ccz_1): New. - (cmpsi_ccno_1): Rename from cmpsi_0. - (testsi_ccno_1): Rename from testsi_1. - (testqi_ccno_1): Rename from testqi_1. - (*testqi_ext_ccz_0): Rename from testqi_ext_0. - (testqi_ext_ccno_0): Rename from *testqi_ext_1. - (*cmphi_0): Use ix86_match_ccmode. - (*cmpqi_ext_2, *addsi_2, *addhi_2, *addqi_2): Likewise. - (*subsi_2, *subhi_2, *subqi_2, *testhi_1): Likewise. - (*testqi_ext_1, *testqi_ext_2, *testqi_ext_3): Likewise. - (*andsi_2, *andhi_2, *andqi_2, *andqi_ext_0_cc): Likewise. - (*iorsi_2, *iorhi_2, *iorqi_2): Likewise. - (*xorsi_2, *xorhi_2, *xorqi_cc_1): Likewise. - (*one_cmplsi2_2, *one_cmplhi2_2, *one_cmplqi2_2): Likewise. - (*ashlsi3_cmpno, *ashlhi3_cmpno, *ashlqi3_cmpno): Likewise. - (*ashrsi3_cmpno, *ashrhi3_cmpno, *ashrqi3_cmpno): Likewise. - (*lshrsi3_cmpno, *lshrhi3_cmpno, *lshrqi3_cmpno): Likewise. - (appropriate peepholes): Likewise. - (*cmphi_1, *cmpqi_ccno_1, *cmpqi_1): Star out name. - (*subsi_3, *subhi_3, *subqi_3): Remove. - (*negdi2_1+1 splitter): Use CCZ for neg patterns. - (*negsi2_cmp, *neghi2_cmp, *negqi2_cmp): Remove. - (*negsi2_cmpz): Rename from *negsi2_cmpno, use CCZ. - (*neghi2_cmpz, *negqi2_cmpz): Similarly. - (x86_shift_adj_1): Use CCZ. - (*dbra_ge+1, *dbra_ge+2, ffssi2, ffssi_1): Likewise. - -2000-03-27 Stan Cox - - * resource.h (mark_resource_type): New. - * resource.c (find_dead_or_set_registers, mark_target_live_regs, - find_free_register): Use mark_resource_type. - (mark_set_resources): Change include_delayed_effects - to mark_resource_type. - * reorg.c (steal_delay_list_from_target, try_merge_delay_insns, - redundant_insn, fill_simple_delay_slots, fill_slots_from_thread): - Use mark_resource_type. - -2000-03-27 Richard Henderson - - * i386.md (call_pop_0, call_value_pop_0): New. - (call_pop_1): Remove constraint from unused arg. Support sibcalls. - (call_value_pop_1): Likewise. - (call_0, call_value_0): New. - (call_1, call_value_1): Remove constraint from unused arg. - -2000-03-27 Nick Clifton - - * invoke.texi (Spec Files): Document new spec % command created by - Tom Tromey's recent patch. - -2000-03-27 Jakub Jelinek - - * libgcc2.h (MIN_UNITS_PER_WORD): Define to UNITS_PER_WORD - if not defined. - -Mon Mar 27 06:04:22 2000 Richard Kenner - - * expr.c (expand_assignment): Fix typo in last change. - - * libgcc2.h: Use MIN_UNITS_PER_WORD, not UNITS_PER_WORD. - -Sun Mar 26 20:15:26 2000 Richard Kenner - - * c-convert.c (convert): Return if output or input type is ERROR_MARK. - * c-decl.c (duplicate_decls): Only look at DECL_BUILT_IN_NONANSI - and DECL_INLINE if FUNCTION_DECL. - (pushdecl, redeclaration_error_message): Likewise, for DECL_INLINE. - (store_parm_decls): Check for type of PARM_DECL being ERROR_MARK. - Use DECL_WEAK, not DECL_RESULT, to flag for already seen. - (combine_parm_decls): Likewise. - * ggc-common.c (gcc_mark_tree_children, case 'd'): Use DECL_RESULT_FLD. - * print-tree.c (print_node): Likewise. - Only test DECL_PACKED, DECL_INLINE, DECL_BIT_FIELD, and - DECL_TRANSPARENT_UNION on proper decl types. - Properly handly DECL_INCOMING_RTL and DECL_SAVED_INSNS. - * stor-layout.c (layout_decl): Only check DECL_PACKED and - DECL_BIT_FIELD of FIELD_DECL. - * tree.h (DECL_RESULT_FLD): New macro. - - * expr.c (expand_assignment): Add code to handle variable-sized - BLKmode case. - -2000-03-26 Richard Henderson - - * calls.c (expand_call): Pass parms not original exp to - optimize_tail_recursion. Mind return value instead of looking - for a barrier. - * stmt.c (optimize_tail_recursion): Take parameter list, not entire - call_expr. Move checks for call_expr and current_function_decl ... - (expand_return): ... here. - -2000-03-26 Tom Tromey - - * gcc.c (handle_braces): Recognize `%{ - - * jump.c (jump_optimize_1): Fix typo in elide optimizations - for minimal jump pass test. - -2000-03-26 Mark Mitchell - - * integrate.c (function_cannot_inline_p): Do inline functions that - return `void'. - -Sun Mar 26 11:37:55 2000 Richard Kenner - - * stor-layout.c (layout_type, set_sizetype): early_type_list is - now a list of TREE_LIST entries, not types. - * tree.c (build_common_tree_nodes_2): Eliminate dupliate type sets. - - * expmed.c (extract_bit_field): Ensure BITS_PER_WORD is signed in MAX. - * config/arm/pe.c (arm_pe_return_in_memory): Use host_integerp and - int_bit_position. - * config/mips/mips.c (function_arg): Likewise; also remove cast - and make variables unsigned or HOST_WIDE_INT and use tree_low_cst. - (mips_function_value): Use int_byte_position and make HOST_WIDE_INT. - * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Offsets are unsigned. - * config/mips/mips.h (BITS_PER_WORD, UNITS_PER_WORD): Cast to unsigned. - (UNITS_PER_FPREG, INT_TYPE_SIZE, LONG_TYPE_SIZE): Likewise. - (POINTER_SIZE, POINTER_BOUNDARY,PARM_BOUNDARY): Likewise. - (GP_REG_P, FP_REG_P, MD_REG_P, ST_REG_P): Ensure subtraction signed. - (struct mips_arg): arg_number, arg_words, fp_arg_words, and - num_adjusts now unsigned. - (FUNCTION_ARG_BOUNDARY): Remove unneeded cast. - * config/sparc/sparc.c (struct function_arg_record_value_parms): - NREGS now unsigned. - (function_arg_record_value_1): STARTBITPOS arg now HOST_WIDE_INT - as is BITPOS variable; use host_integerp and int_bit_position. - (function_arg_record_value_2): Likewise. - (function_arg_record_value_3): Arg BITPOS now HOST_WIDE_INT. - Variable REGNO now unsigned. - (function_arg_record_value): NREGS now unsigned. - -2000-03-26 Bernd Schmidt - - * jump.c (mark_all_labels): Handle CALL_PLACEHOLDERs. - -Sat Mar 25 09:12:10 2000 Richard Kenner - - * Rework fields used to describe positions of bitfields and - modify sizes to be unsigned and use HOST_WIDE_INT. - * alias.c (reg_known_value_size): Now unsigned. - * c-typeck.c (build_unary_op, case ADDR_EXPR): Use byte_position. - (really_start_incremental_init): Use bitsize_zero_node. - (push_init_level, pop_init_level, output_init_element): Likewise. - Use bitsize_unit_node and bitsize_one_node. - (output_pending_init_elements, process_init_element): Likewise. - * combine.c (combine_max_regno, reg_sign_bit_copies): Now unsigned. - (make_extraction): Position and length HOST_WIDE_INT and unsigned - HOST_WIDE_INT, respectively. - (get_pos_from_mask): Passed in value is unsigned HOST_WIDE_INT. - (num_sign_bit_copies): Returns unsigned. - BITWIDTH now unsigned; rework arithmetic. - Remove recursive call from arg to MAX. - (combine_instructions, init_reg_last_arrays): NREGS now unsigned. - (setup_incoming_promotions, can_combine_p, try_combine, simplify_set): - REGNO now unsigned. - (set_nonzero_bit_and_sign_copies): NUM now unsigned. - (find_split_point, expand_compound_operation, make_extraction): LEN - now unsigned HOST_WIDE_INT, POS now HOST_WIDE_INT. - (make_field_assignment): Likewise. - (combine_simplify_rtx): Add cast. - (expand_compound_operation): MODEWIDTH now unsigned; rework arithmetic. - (force_to_mode): WIDTH now unsigned; add cast. - (if_then_else_cond): SIZE now unsigned. - (nonzero_bits): MODE_WIDTH, RESULT_WIDTH, and WIDTH now unsigned. - (extended_count): Now returns unsigned. - (simplify_shift_const): COUNT unsigned; arg is now INPUT_COUNT. - Add SIGNED_COUNT variable; MODE_WORDS and FIRST_COUNT now unsigned. - (simplify_comparison): MODE_WIDTH now unsigned. - (update_table_tick): REGNO and ENDREGNO now unsigned; new var R. - (mark_used_regs_combine): Likewise; rework arithmetic. - (record_value_for_reg): REGNO, ENDREGNO, and I now unsigned. - (record_dead_and_set_regs, reg_dead_at_p, distribute_notes): Likewise. - (record_promoted_value): REGNO now unsigned. - (get_last_value_validate): REGNO, ENDREGNO, and J now unsigned. - (get_last_value): REGNO now unsigned. - (use_crosses_set_p): REGNO and ENDREGNO now unsigned. - (reg_dead_regno, reg_dead_endregno): Now unsigned. - (remove_death): Arg REGNO now unsigned. - (move_deaths): REGNO, DEADREGNO, DEADEND, OUREND, and I now unsigned. - (reg_bitfield_target_p): REGNO, REGNO, ENDREGNO, and ENDTREGNO - now unsigned. - * convert.c (convert_to_integer): INPREC and OUTPREC now unsigned. - * cse.c (struct qty_table_elem): FIRST_REG and LAST_REG now unsigned. - (struct cse_reg_info): REGNO now unsigned. - (cached_regno): Now unsigned. - (REGNO_QTY_VALID_P): Add cast. - (make_new_qty, make_regs_eqv, delete_reg_eqiv): Regno args unsigned. - (remove_invalid_regs): Likewise. - (remove_invalid_subreg_refs): Likewise; arg WORD also unsigned - as are variables END and I. - (get_cse_reg_info, insert): Likewise. - (mention_regs, invalidate_for_call): REGNO, ENDREGNO, and I unsigned. - (canon_hash): Likewise. - (insert_regs, lookup_for_remove): REGNO now unsigned. - (invalidate): REGNO, ENDREGNO, TREGNO, and TENDREGNO now unsigned. - New variable RN. - * dbxout.c (dbxout_parms, dbxout_reg_parms): Don't check for REGNO < 0. - * dwarf2out.c (dwarf2ou_frame_debug_expr): Remove cast. - * emit-rtl.c (subreg_realpart_p): Add cast. - (operand_subword): Arg I is now unsigned as is var PARTWORDS. - (operand_subword_force): Arg I is now unsigned. - * except.c (eh_regs): Variable I is now unsigned. - * explow.c (hard_function_value): BYTES is unsigned HOST_WIDE_INT. - * expmed.c (store_fixed_bit_field): Position is HOST_WIDE_INT; - length is unsigned HOST_WIDE_INT; likewise for internal variables. - (store_split_bit_field, extract_fixed_bit_field): Likewise. - (extract_split_bit_field, store_bit_field, extract_bit_field): - Likewise. - * expr.c (store_constructor_fields, store_constructor, store_field): - Positions are HOST_WIDE_INT and lengths are unsigned HOST_WIDE_INT. - (expand_assignment, expand_expr, expand_expr_unaligned): Likewise. - (do_jump): Likewise. - (move_by_pieces, move_by_pieces_ninsns, clear_by_pieces): - MAX_SIZE is now unsigned. - (emit_group_load): BYTEPOS is HOST_WIDE_INT; BYTELEN is unsigned. - (emit_group_store): Likewise. - (emit_move_insn): I now unsigned. - (store_constructor): Use host_integerp, tree_low_cst, and - bitsize_unit_node. - (get_inner_reference): Return bitpos and bitsize as HOST_WIDE_INT. - Rework all calculations to use trees and new fields. - * expr.h (promoted_input_arg): Regno now unsigned. - (store_bit_field, extract_bit_field): Adjust types of pos and size. - (mark_seen_cases): Arg is HOST_WIDE_INT. - * flow.c (verify_wide_reg_1): REGNO now unsigned. - * fold-const.c (decode_field_reference): Size and pos HOST_WIDE_INT; - precisions and alignments are unsigned. - (optimize_bit_field_compare, fold_truthop): Likewise. - (int_const_binop): Adjust threshold for size_int_type_wide call. - (fold_convert): Likewise. - (size_int_type_wide): Make table larger and fix thinko that only - had half of table used. - (all_ones_mask_p, fold): Precisions are unsigned. - * function.c (put_reg_info_stack): REGNO is unsigned. - (instantiate_decl): Size is HOST_WIDE_INT. - (instantiate_virtual_regs): I is unsigned. - (assign_parms): REGNO, REGNOI, and REGNOR are unsigned. - (promoted_input_arg): REGNO is unsigned. - * function.h (struct function): x_max_parm_reg is now unsigned. - * gcse.c (max_gcse_regno): Now unsigned. - (struct null_pointer_info): min_reg and max_reg now unsigned. - (lookup_set, next_set): REGNO arg now unsigned. - (compute_hash_table): REGNO and I now unsigned. - (handle_avail_expr): regnum_for_replacing now unsigned. - (cprop_insn): REGNO now unsigned. - (delete_null_pointer_checks_1): BLOCK_REG now pointer to unsigned. - * ggc-common.c (ggc_mark_tree_children, case FIELD_DECL): New case. - * global.c (set_preference): SRC_REGNO, DEST_REGNO, and I now unsigned. - * hard-reg-set.h (reg_class_size): Now unsigned. - * integrate.c (mark_stores): LAST_REG and I now unsigned; new UREGNO. - * jump.c (mark_modified_reg): I now unsigned; add cast. - (rtx_equal_for_thread_p): Add cast. - * loop.c (max_reg_before_loop): Now unsigned. - (struct_movable): REGNO now unsigned. - (try_copy_prop): REGNO arg unsigned. - (regs_match_p): XN and YN now unsigned. - (consec_sets_invariant_p, maybe_eliminate_biv): REGNO now unsigned. - (strength_reduce): Likewise; NREGS also unsigned. - (first_increment_giv, last_increment_giv unsigned): Now unsigned. - * loop.h (struct iv_class): REGNO now unsigned. - (max_reg_before_loop, first_increment_giv, last_increment_giv): - Now unsigned. - * machmode.h (mode_size, mode_unit_size): Now unsigned. - (mode_for_size, smallest_mode_for_size): Pass size as unsigned. - * optabs.c (expand_binop): I and NWORDS now unsigned. - (expand_unop): I now unsigned. - * print-tree.c (print_node): Don't print DECL_FIELD_BITPOS, but do - print DECL_FIELD_OFFSET and DECL_FIELD_BIT_OFFSET. - * real.c (significand_size): Now returns unsigned. - * real.h (significand_size): Likewise. - * regclass.c (reg_class_size): Now unsigned. - (choose_hard_reg_mode): Both operands now unsigned. - (record_reg_classes): REGNO and NR now unsigned. - (reg_scan): NREGS now unsigned. - (reg_scan_update): old_max_regno now unsigned. - (reg_scan_mark_refs): Arg MIN_REGNO and var REGNO now unsigned. - * reload.c (find_valid_class): BEST_SIZE now unsigned. - (find_dummy_reload): REGNO, NWORDS, and I now unsigned. - (hard_reg_set_here_p): Args BEG_REGNO and END_REGNO now unsigned. - Likewise for variable R. - (refers_to_regno_for_reload_p): Args REGNO and END_REGNO now unsigned, - as are variables INNER_REGNO and INNER_ENDREGNO; add new variable R. - (find_equiv_reg): Add casts. - (regno_clobbered_p): Arg REGNO now unsigned. - * reload.h (struct reload): NREGS now unsigned. - (refers_to_regno_for_reload_p): Regno args are unsigned. - (regno_clobbered_p): Likewise. - * reload1.c (reg_max_ref_width, spill_stack_slot_width): Now unsigned. - (compute_use_by_pseudos): REGNO now unsigned. - (find_reg): I and J now unsigned, new variable K, and change loop - variables accordingly; THIS_NREGS now unsigned. - (alter_reg): INHERENT_SIZE and TOTAL_SIZE now unsigned. - (spill_hard_reg): REGNO arg now unsigned; add casts. - (forget_old_reloads_1): REGNO, NR, and I now unsigned. - (mark_reload_reg_in_use): Arg REGNO and vars NREGS and I now unsigned. - (clear_reload_reg_in_use): Arg REGNO and vars NREGS, START_REGNO, - END_REGNO, CONFLICT_START, and CONFLICT_END now unsigned. - (reload_reg_free_p, reload_reg_reaches_end_p): Arg REGNO now unsigned. - (choose_reload_regs): MAX_GROUP_SIZE now unsigned. - (emit_reload_insns): REGNO now unsigned. - (reload_cse_move2add): Add cast. - (move2add_note_store): REGNO and I now unsigned; new variable ENDREGNO - and rework loop. - * resource.c (mark_referenced_resources, mark_set_resources): New - variable R; REGNO and LAST_REGNO now unsigned. - (mark_target_live_regs): J and REGNO now unsigned. - * rtl.c (mode_size, mode_unit_size): Now unsigned. - * rtl.h (union rtunion_def): New field rtuint. - (XCUINT): New macro. - (ADDRESSOF_REGNO, REGNO, SUBREG_WORD): New XCUINT. - (operand_subword, operand_subword_force): Word number is unsigned. - (choose_hard_reg_mode): Operands are unsigned. - (refers_to-regno_p, dead_or_set_regno_p): Regno arg is unsigned. - (find_regno_note, find_regno_fusage, replace_regs): Likewise. - (regno_use_in, combine_instructions, remove_death): Likewise. - (reg_scan, reg_scan_update): Likewise. - (extended_count): Return is unsigned. - * rtlanal.c (refers_to_regno_p): Args REGNO and ENDREGNO and vars I, - INNER_REGNO, and INNER_ENDREGNO now unsigned; new variable X_REGNO. - (reg_overlap_mentioned_p): REGNO and ENDREGNO now unsigned. - (reg_set_last_first_regno, reg_set_last_last_regno): Now unsigned. - (reg_reg_last_1): FIRS and LAST now unsigned. - (dead_or_set_p): REGNO, LAST_REGNO, and I now unsigned. - (dead_or_set_regno_p): Arg TEST_REGNO and vars REGNO and ENDREGNO - now unsigned. - (find_regno_note, regno_use_in): Arg REGNO now unsigned. - (find_regno_fusage): Likewise; also var REGNOTE now unsigned. - (find_reg_fusage): Variables REGNO, END_REGNO, and I now unsigned. - (replace_regs): Arg NREGS now unsigned. - * sdbout.c (sdbout_parms, sdbout_reg_parms): Don't check REGNO < 0. - * simplify-rtx.c (simplify_unary_operation): WIDTH now unsigned. - (simplify_binary_operation): Likewise. - (cselib_invalidate_regno): Arg REGNO and variables ENDREGNO, I, and - THIS_LAST now unsigned. - (cselib_record_set): Add cast. - * ssa.c (ssa_max_reg_num): Now unsigned. - (rename_block): REGNO now unsigned. - * stmt.c (expand_return): Bit positions unsigned HOST_WIDE_INT; - sizes now unsigned. - (all_cases_count): Just return -1 not -2. - COUNT, MINVAL, and LASTVAL now HOST_WIDE_INT. - Rework tests to use trees whenever possible. - Use host_integerp and tree_low_cst. - (mark_seen_cases): COUNT arg now HOST_WIDE_INT; - Likewise variable NEXT_NODE_OFFSET; XLO now unsigned. - (check_for_full_enumeration_handing): BYTES_NEEDED, I to HOST_WIDE_INT. - * stor-layout.c (mode_for_size): SIZE arg now unsigned. - (smallest_mode_for_size): Likewise. - (layout_decl): Simplify handing of a specified DECL_SIZE_UNIT. - KNOWN_ALIGN is now an alignment, so simplify code. - Don't turn off DECL_BIT_FIELD if field is BLKmode, but not type. - (start_record_layout): Renamed from new_record_layout_info. - Update to new fields. - (debug_rli, normalize_rli, rli_size_unit_so_far, rli_size_so_far): - New functions. - (place_union_field): Renamed from layout_union_field. - Update to use new fields in rli. - (place_field): Renamed from layout_field. - Major rewrite to use new fields in rli; pass alignment to layout_decl. - (finalize_record_size): Rework to use new fields in rli and handle - union. - (compute_record_mode): Rework to simplify and to use new DECL fields. - (finalize_type_size): Make rounding more consistent. - (finish_union_layout): Deleted. - (layout_type, case VOID_TYPE): Don't set TYPE_SIZE_UNIT either. - (layout_type, case RECORD_TYPE): Call new function names. - (initialize_sizetypes): Set TYPE_IS_SIZETYPE. - (set_sizetype): Set TYPE_IS_SIZETYPE earlier. - (get_best_mode): UNIT is now unsigned; remove casts. - * tree.c (bit_position): Compute from new fields. - (byte_position, int_byte_position): New functions. - (print_type_hash_statistics): Cast to remove warning. - (build_range_type): Use host_integerp and tree_low_cst to try to hash. - (build_index_type): Likewise; make subtype of sizetype. - (build_index_2_type): Pass sizetype to build_range_type. - (build_common_tree_nodes): Use size_int and bitsize_int to - initialize nodes; add bitsize_{zero,one,unit}_node. - * tree.h (DECL_FIELD_CONTEXT): Use FIELD_DECL_CHECK. - (DECL_BIT_FIELD_TYPE, DECL_QUALIFIER, DECL_FCONTEXT): Likewise. - (DECL_PACKED, DECL_BIT_FIELD): Likewise. - (DECL_FIELD_BITPOS): Deleted. - (DECL_FIELD_OFFSET, DECL_FIELD_BIT_OFFSET): New fields. - (DECL_RESULT, DECL_SAVED_INSNS): Use FUNCTION_DECL_CHECK. - (DECL_FRAME_SIZE, DECL_FUNCTION_CODE, DECL_NO_STATIC_CHAIN): Likewise. - (DECL_INLINE, DECL_BUILT_IN_NONANSI, DECL_IS_MALLOC): Likewise. - (DECL_BUILT_IN_CLASS, DECL_STATIC_CONSTRUCTOR): Likewise. - (DECL_STATIC_DESTRUCTOR, DECL_NO_CHECK_MEMORY_USAGE): Likewise. - (DECL_NO_INSTRUMENT_FUNCTION_ENTRY_EXIT, DECL_NO_LIMIT_STACK) Likewise. - (DECL_ORIGINAL_TYPE, TYPE_DECL_SUPPRESS_DEBUG): Use TYPE_DECL_CHECK. - (DECL_ARG_TYPE_AS_WRITEN, DECL_ARG_TYPE): Use PARM_DECL_CHECK. - (DECL_INCOMING_RTL, DECL_TRANSPARENT_UNION): Likewise. - (DECL_ALIGN): Adjust to new field in union. - (DECL_OFFSET_ALIGN): New field. - (DECL_ERROR_ISSUED, DECL_TOO_LATE): Use LABEL_DECL_CHECK. - (DECL_IN_TEXT_SECTION): Use VAR_DECL_CHECK. - (union tree_decl): Add struct for both aligns. - (enum tree_index): Add TI_BITSIZE_{ZERO,ONE,UNIT}. - (bitsize_zero_node, bitsize_one_node, bitsize_unit_node): Added. - (struct record_layout_info): Rework fields to have offset - alignment and byte and bit position. - (start_record_layout, place_field): Renamed from old names. - (rli_size_so_far, rli_size_unit_so_far, normalize_rli): New decls. - (byte_position, int_byte_position): Likewise. - (get_inner_reference): Change types of position and length. - * unroll.c (unroll_loop): New variable R; use for some loops. - MAX_LOCAL_REGNUM and MAXREGNUM now unsigned. - (calculate_giv_inc): Arg REGNO now unsigned. - (copy_loop_body): REGNO and SRC_REGNO now unsigned. - * varasm.c (assemble_variable): Clean up handling of size using - host_integerp and tree_low_cst. - (decode_addr_const): Use byte, not bit, position. - (output_constructor): bitpos and offsets are HOST_WIDE_INT; - use tree_low_cst and int_bit_position. - * objc/objc-act.c (build_ivar_list_initializer): Use byte_position. - -Fri Mar 24 20:13:49 2000 Jason Eckhardt - - * bb-reorder.c (REORDER_MOVED_BLOCK_END): Removed. - (reorder_block_def): New members eff_head and eff_end. - (REORDER_BLOCK_EFF_HEAD, REORDER_BLOCK_EFF_END): New macros. - (verify_insn_chain): New function. - (skip_insns_between_block): Add code to skip deleted insns. - Check for note before using. - (chain_reorder_blocks): Replace calls to skip_insns_between_block - with references to REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END. - Check for note before using. - (make_reorder_chain): Use INTVAL rather than XINT to get REG_BR_PROB. - (fixup_reorder_chain): Restructure, clean up, defect removal. - (reorder_basic_blocks): Remove last_insn and references to it. - Moved insn chain verification code into a new function (see above). - Delete defective code that sets last insn. - Initialize REORDER_BLOCK_EFF_HEAD and REORDER_BLOCK_EFF_END for - all blocks. - -2000-03-25 Michael Hayes - - * config/c4x/c4x.h (CPP_SPEC): Remove erroneous space. - -2000-03-24 Richard Henderson - - * tree.c (lang_safe_for_unsave): Remove. - (unsafe_for_reeval): Transmute and rename from safe_for_unsave, - allowing for two levels of unsafeness. Remove lang hook. - * tree.h: Update declarations. - * calls.c (expand_call): Rename safe_for_reeval to try_tail_call. - Create temporary VAR_DECLs to protect very unsafe_for_reeval trees. - Always fail sibcalls when there are pending cleanups. - -2000-03-24 Geoff Keating - - * flow.c (propagate_block): When we delete an ADDR_VEC, - also delete the BARRIER following it if there is one. - -2000-03-24 Richard Henderson - - * builtins.c (expand_builtin_bzero): Convert `length' argument - to sizetype. - -2000-03-24 Jakub Jelinek - - * sibcall.c (skip_copy_to_return_value): Use OUTGOING_REGNO for - comparison if regno's are equal. - * calls.c (initialize_argument_informat): Add ecf_flags argument. - Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. - (expand_call): Update caller. - Avoid making a sibling call if argument size of the callee is larger - than argument size of the caller. - Call hard_function_value with outgoing set if in sibcall pass. - Use FUNCTION_INCOMING_ARG if available and ECF_SIBCALL. - - * final.c (permitted_reg_in_leaf_functions, only_leaf_regs_used): - Change LEAF_REGISTERS from an array initializer to actual array - identifier. Move static global variable into the function. - (leaf_function_p): Allow SIBLING_CALL_P calls even outside of - sequences for leaf functions. - * global.c (global_alloc): Likewise. - * tm.texi (LEAF_REGISTERS): Update documentation. - - * config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Remove the ugly - TARGET_FLAT leaf disabling hack. - (LEAF_REGISTERS): Changed from an array initializer to actual array - identifier to avoid duplication and remove the above hack. - (FUNCTION_OK_FOR_SIBCALL): Define. - * config/sparc/sparc.md (sibcall): New attr type. Use it almost - always like call attribute. - (eligible_for_sibcall_delay): New attribute. - (sibcall): New delay type. - (sibcall, sibcall_value, sibcall_epilogue): New expands. - (sibcall_symbolic_sp32, sibcall_symbolic_sp64, - sibcall_value_symbolic_sp32, sibcall_value_symbolic_sp64): New insns. - * config/sparc/sparc.c (sparc_leaf_regs): New array. - (eligible_for_sibcall_delay, output_restore_regs, output_sibcall): - New functions. - (output_function_epilogue): Move part of the code into - output_restore_regs. - (ultra_code_from_mask, ultrasparc_sched_reorder): Handle - TYPE_SIBCALL. - * sparc-protos.h (output_sibcall, eligible_for_sibcall_delay): New - prototypes. - - * config/sparc/sparc.h (REVERSIBLE_CC_MODE): Revert Jan, 25 change - until infrastructure is finished. - -Fri Mar 24 13:49:45 2000 Jeffrey A Law (law@cygnus.com) - - * integrate.c (save_for_inline_nocopy): Clear in_nonparm_insns here. - (save_parm_insns): Not here. - -2000-03-24 Kaveh R. Ghazi - - * builtins.c (expand_builtin_bzero): New function. - (expand_builtin): Handle bzero. - - * builtins.def: Add BUILT_IN_BZERO. - - * c-common.c (c_common_nodes_and_builtins): Provide builtin - prototype & function for bzero. - -2000-03-23 Michael Meissner - - * config/alpha/alpha.md (TF floating point insns): Undo 2000-03-21 - change adding TARGET_FP to the TF floating point insns, except for - trunctfsf2, which generates direct calls to truncdfsf2. - -2000-03-23 Geoff Keating - - * config/rs6000/rs6000.h (ARG_POINTER_CFA_OFFSET): New definition, - try to protect against middle-end changes that break binary - compatibility. - (DWARF_FRAME_REGISTERS): New definition, likewise for backend. - -2000-03-24 Michael Hayes - - * config/c4x/c4x.md (load_immed_address): Add DP reg clobber. - -Thu Mar 23 17:10:48 2000 Richard Kenner - - * calls.c (expand_call): If TARGET is passed by reference and - is readonly, write a CLOBBER. - -2000-03-23 Kaveh R. Ghazi - - * builtins.c (expand_builtin): Handle bcmp. - - * builtins.def: Add BUILT_IN_BCMP. - - * c-common.c (c_common_nodes_and_builtins): Provide builtin - prototype & function for bcmp. - -Thu Mar 23 11:34:39 2000 Jim Wilson - - * config/ia64/ia64.c (rtx_needs_barrier, case UNSPEC): Move case 6... - (rtx_needs_barrier, case UNSPEC_VOLATILE): to here. - * config/ia64/ia64.md (pr_restore): Change UNSPEC to UNSPEC_VOLATILE. - -Thu Mar 23 16:04:40 2000 Andrew Haley - - * config/mips/mips.md (movdf_internal1a): Delete (set 'f', 'F') - alternative when using -fp64 -gp32. - -2000-03-22 Jason Merrill - - * config/rs6000/rs6000.h (DWARF_FRAME_RETURN_COLUMN): Define. - * config/alpha/alpha.h (DWARF_FRAME_RETURN_COLUMN): Define. - * config/sparc/sparc.h (DWARF_FRAME_RETURN_COLUMN): Define. - - * frame.h (frame_state): Revert last change. - * frame.c (execute_cfa_insn): Just don't record the save of a CFA reg. - * libgcc2.c (throw_helper): Revert last change. - -2000-03-22 Richard Henderson - - * stmt.c (expand_asm_operands): Don't promote the temporary. - -2000-03-22 Theodore Papadopoulo - - * builtin.c (get_pointer_alignment): Use DECL_P and TYPE_P macros. - * c-common.c (decl_attributes,check_format_info,truthvalue_conversion, - c_get_alias_set): Likewise. - * c-decl.c (duplicate_decls): Likewise. - * c-typeck.c (default_conversion,build_unary_op): Likewise. - * calls.c (initialize_argument_information): Likewise. - * dwarf2out.c (decl_class_context,add_abstract_origin_attribute): - Likewise. - * dwarfout.c (decl_class_context,output_type): Likewise. - * expr.c (get_inner_reference): Likewise. - * fold-const.c (simple_operand_p,fold): Likewise. - * function.c (aggregate_value_p): Likewise. - * stmt.c (expand_asm_operands): Likewise. - * varasm.c (named_section): Likewise. - -2000-03-22 Jason Merrill - - Implement dwarf2 exception handling for the ARM. - * config/arm/arm.h (INCOMING_RETURN_ADDR_RTX): Define. - (DWARF_FRAME_RETURN_COLUMN): Define. - * config/arm/arm.c (emit_multi_reg_push): Return rtx. Attach - REG_FRAME_RELATED_EXPR note. - (emit_sfm): Likewise. - (arm_expand_prologue): Set RTX_FRAME_RELATED_P on everything. - * dwarf2out.c (reg_save): Handle saving a register to itself. - (dwarf2out_frame_debug_expr): Handle an intermediate cfa reg. - * except.c (eh_regs): Don't use the static chain reg if it's - callee-saved. - * frame.h (frame_state): Add cfa_saved field. - * frame.c (execute_cfa_insn): Set it. - * libgcc2.c (throw_helper): Don't adjust sp if it's restored in - the epilogue. - * function.c (ARG_POINTER_CFA_OFFSET): Default to FIRST_PARM_OFFSET. - Now takes a parm. - (instantiate_virtual_regs): Adjust. - * tm.texi: Adjust. - * config/m68k/m68k.h (ARG_POINTER_CFA_OFFSET): Don't define. - * config/ns32k/ns32k.h (ARG_POINTER_CFA_OFFSET): Don't define. - * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): Take a parm. - - * dwarf2out.c (reg_number): Refer to FIRST_PSEUDO_REGISTER. - (initial_return_save): Use DWARF_FRAME_REGNUM, not reg_number. - -2000-03-22 Kaveh R. Ghazi - - * builtins.def: New file. - - * Makefile.in (TREE_H): Depend on builtins.def. - - * builtins.c (built_in_names): Use builtins.def. - - * tree.h (built_in_function): Likewise. - -2000-03-22 Mark Mitchell - - * tree.c (size_in_bytes): Return size_zero_node, not - integer_zero_node. - -2000-03-22 Geoff Keating - - * config/fp-bit.c (pack_d): Correct the case when a denormal - is rounded up and stops being denormal. - -2000-03-21 Richard Henderson - - * config/alpha/alpha.c (function_arg): Check for void_type_node - before using MUST_PASS_IN_STACK. - -2000-03-21 Stephane Carrez - - * regmove.c (combine_stack_adjustments_for_block): Check that - the stack pointer is a valid memory address. - -Wed Mar 22 11:44:50 MET 2000 Jan Hubicka - - * calls.c: re-install Mar 16 emit_library_call merge. - -2000-03-21 Jakub Jelinek - - * config/sparc/sparc.c (mem_min_alignment): If not optimizing, - we cannot be sure that if reload_completed base register will - be properly aligned. - -2000-03-21 Richard Henderson - - * flow.c (delete_block): Fix typo last change. - -2000-03-21 Mark Mitchell - - * c-common.c (c_expand_expr_stmt): Use COMPLETE_TYPE_OR_VOID_P, - not COMPLETE_TYPE_P, to check the type of the expression. - -2000-03-21 Michael Meissner - - * config/alpha/alpha.md (floating point insns): Add TARGET_FP to - all floating point insns that just tested the macro - TARGET_HAS_XFLOATING_LIBS. - (movsf/movdf recognizers): Add separate insns if -mno-fp-regs is - used to only use the gprs. - -2000-03-21 Nathan Sidwell - - * tree.h (COMPLETE_TYPE_P): New macro. - (COMPLETE_OR_VOID_TYPE_P): New macro. - (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): New macro. - * stor-layout.c (layout_type, case VOID_TYPE): Don't set TYPE_SIZE. - * c-aux-info.c (gen_type): Use them. - * c-common.c (c_expand_expr_stmt): Likewise. - * c-decl.c (poplevel, pushdecl, start_decl, finish_decl, - grokdeclarator, grokparms, finish_struct, start_function, - store_parm_decls, combine_parm_decls): Likewise. - * c-parse.y (cast_expr): Likewise. - * c-typeck.c (require_complete_type, c_sizeof, c_sizeof_nowarn, - c_size_in_bytes, c_alignof, build_component_ref, - build_indirect_ref, build_array_ref, convert_arguments, - build_binary_op, pointer_diff, build_unary_op, digest_init: Likewise. - * calls.c (initialize_argument_information): Likewise. - * convert.c (convert_to_integer): Likewise. - * dbxout.c (dbxout_typedefs, dbxout_type, dbxout_symbol): Likewise. - * dwarfout.c (location_or_const_value_attribute, - output_enumeration_type_die, output_structure_type_die, - output_union_type_die, output_type): Likewise. - * expr.c (safe_from_p, expand_expr): Likewise. - * function.c (assign_parms): Likewise. - * sdbout.c (sdbout_symbol, sdbout_one_type): Likewise. - * tree.c (build_array_type, build_function_type, - build_method_type, build_offset_type, build_complex_type): Likewise. - * c-parse.c, c-parse.h: Regenerated. - -2000-03-21 Michael Hayes - - * config/c4x/rtems.h: Include config/rtems.h. - -Tue Mar 21 09:24:00 2000 Denis Chertykov - - * config/avr/avr.c (encode_section_info): sets SYMBOL_REF_FLAG if - decl is a FUNCTION_DECL - -Mon Mar 20 19:53:53 2000 Jim Wilson - - * config/ia64/ia64.c (ia64_expand_prologue): Don't abort if leaf - function uses output registers. Don't save RP for leaf functions. - Do save RP even if no epilogue. - * config/ia64/ia64.h (FIXED_REGISTERS): Unmark in/out registers. - (CALL_USED_REGISTERS): Unmark in registers. - (REG_ALLOC_ORDER): Move out regs up, to near the top. Move in regs up, - to near the middle. - -2000-03-20 Geoff Keating - - * config/rs6000/rs6000.md (bunordered): New expander. - (bordered): New expander. - (buneq): New expander. - (bunge): New expander. - (bungt): New expander. - (bunle): New expander. - (bunlt): New expander. - (bltgt): New expander. - - * config/rs6000/rs6000.c (ccr_bit): Handle unordered comparisons. - (ccr_bit_negated_p): New function. - (print_operand): For %C, generate appropriate cror for UNEQ, - UNLT, UNGT, and LTGT. For %T and %t, use ccr_bit_negated_p. - -2000-03-20 Andreas Jaeger - - * sdbout.c (sdbout_one_type): Add braces to avoid "ambigous else" - warning. - - * tree.h (safe_for_unsave): Prototype. - -2000-03-20 Richard Henderson - - * regmove.c (stack_memref_p): Fix typo, reorg for readability. - (combine_stack_adjustments_for_block): Don't allow sp references - in the side of a set we're not fixing up. - * toplev.c (rest_of_compilation): Run combine_stack_adjustments - after life_analysis. - -2000-03-20 Richard Henderson - - * calls.c (expand_call): Don't bother generating tail call - sequences if there are pending cleanups. Use - expand_start_target_temps/expand_end_target_temps to elide - cleanups created during sibcall expansion. - -2000-03-20 Geoff Keating - - * configure.in: Set $IFS to a value if it doesn't already have one - in the --enable-checking handling. - * configure: Regenerate. - -2000-03-20 Martin v. Löwis - - * c-parse.in (SAVE_WARN_FLAGS): Use size_int. - * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: - Regenerated. - -Mon Mar 20 11:43:15 MET 2000 Jan Hubicka - - * jump.c (delete_noop_moves): Remove code attempting to - combine stack adjustments. - -2000-03-19 Martin v. Löwis - - * emit-rtl.c (push_to_full_sequence, end_full_sequence): New functions. - * except.c (emit_cleanup_handler): Use them. - (expand_end_all_catch): Likewise. - * function.c (fixup_var_refs): Likewise. - (expand_function_end): Clear catch_clauses_last. - * rtl.h (push_to_full_sequence, end_full_sequence): Declare. - * except.h (struct eh_status): New field x_catch_clauses_last. - (catch_clauses_last): New define. - - * Makefile.in (tree.o): Depend on HASHTAB_H. - * tree.c: Include hashtab.h. - (struct type_hash): Remove next field. - (TYPE_HASH_SIZE): Remove. - (TYPE_HASH_INITIAL_SIZE): New define. - (type_hash_table): Change type to htab_t. - (type_hash_eq, type_hash_hash, print_type_hash_statistics, - mark_hash_entry): New functions. - (init_obstacks): Allocate type hash. - (type_hash_lookup): Use htab functions. - (type_hash_add, mark_type_hash): Likewise. - (dump_tree_statistics): Call print_type_hash_statistics. - -2000-03-19 Kaveh R. Ghazi - - * rs6000/t-aix41: New file. - - * configure.in ({rs6000,powerpc}-ibm-aix4.[12]*): Use it. - -Sun Mar 19 13:27:30 2000 Hans-Peter Nilsson - - * tm.texi (Driver): Fix typos and tweak entry for - INCLUDE_DEFAULTS. - Move misplaced STRUCT_FORCE_BLK entry ... - (Storage Layout): ... to here. - (Run-time Target): Recommend having TARGET_MASK_... helper macros. - -2000-03-19 Richard Henderson - - * flow.c (delete_block): Delete the addr_vec along with the block. - (flow_delete_insn): Decrement LABEL_NUSES when deleting insns that - reference labels. - - * fold-const.c (extract_muldiv): Apply type check for defined - overflow to multiply as well as divide. - - * stor-layout.c (layout_decl): Don't abort on any zero sized decl. - -2000-03-18 Mark Mitchell - - * emit-rtl.c (remove_unnecessary_notes): Check that all - NOTE_INSN_BLOCK_BEG and NOTE_INSN_BLOCK_END notes have an - associated NOTE_BLOCK. - * function.h (identify_blocks): Update comments. - (reorder_blocks): Declare. - * function.c (identify_blocks): Don't take paramters. - (reorder_blocks): Don't take parameters. - * loop.h (find_loop_tree_blocks): Remove. - (unroll_block_trees): Likewise. - * loop.c (loop_optimize): Don't call find_loop_tree_blocks. Use - reorder_blocks instead of unroll_block_trees.h - * sibcall.c (optimize_sibling_and_tail_recursive_calls): Likewise. - * stmt.c (find_loop_tree_blocks): Remove. - (unroll_block_trees): Likewise. - * toplev.c (rest_of_compilation): Don't call find_loop_tree_blocks - in whole-function mode. - * tree.h (reorder_blocks): Remove declaration. - - * expr.c: Include intl.h. - * Makefile.in (expr.o): Depend on intl.h. - -2000-03-18 Richard Henderson - - * expr.c (emit_move_insn_1): Clarify cannot_inline message. - -2000-03-18 Mark Mitchell - - * tree.h (tree_index): Remove enumerals for integer types. - (integer_type_kind): New type. - (integer_types): New variable. - (char_type_node): Adjust. - (signed_char_type_node): Likewise. - (unsigned_char_type_node): Likewise. - (short_integer_type_node): Likewise. - (short_unsigned_type_node): Likewise. - (integer_type_node): Likewise. - (unsigned_type_node): Likewise. - (long_integer_type_node): Likewise. - (long_unsigned_type_node): Likewise. - (long_long_integer_type_node): Likewise. - (long_long_unsigned_type_node): Likewise. - * tree.c (integer_types): New variable. - (init_obstacks): Register it as a root. - -Sat Mar 18 14:38:00 2000 Jason Eckhardt - - * bb-reorder.c (reorder_basic_blocks): Update PREV_INSN as well as - NEXT_INSN. Update last insn in chain. - -2000-03-17 Jason Merrill - - * dwarf2out.c (dwarf2out_decl): Don't emit anything for types - with TYPE_DECL_SUPPRESS_DEBUG set. - -2000-03-18 Richard Henderson - - * flow.c (make_edges): Use INTVAL to access REG_EH_REGION value. - -2000-03-18 Richard Henderson - - * i386.c (call_insn_operand): Always allow SYMBOL_REF, - care for HALF_PIC_P. - (expander_call_insn_operand): Remove. - (ix86_expand_epilogue): New arg `emit_return' to control return insn. - * i386.h (PREDICATE_CODES): Update. - * i386.md (all call expanders): Remove predicates, remove special - handling for half-pic. - (*call_1, *call_value_1): Handle SIBLING_CALL_P insns. - (*call_pop_pic2, *call_pic2, *call_value_pop_2, *call_value_2): Remove. - (sibcall_epilogue): New. - -2000-03-17 Richard Henderson - - * rtlanal.c (single_set): Reject if the parallel has anything - except SET or USE or CLOBBER. - -2000-03-17 Jeff Law - Richard Henderson - - * Makefile.in (OBJS): Add sibcall.o. - (sibcall.o): New. - * sibcall.c: New file. - * calls.c (FUNCTION_OK_FOR_SIBCALL): Provide default. - (ECF_IS_CONST, ECF_NOTHROW, ECF_SIBCALL): New. - (emit_call_1): Replace `is_const' and `nothrow' with `ecf_flags'. - Emit sibcall patterns when requested. Update all callers. - (expand_call): Generate CALL_PLACEHOLDER insns when tail call - elimination seems feasable. - * final.c (leaf_function_p): Sibling calls don't discount being - a leaf function. - * flow.c (HAVE_sibcall_epilogue): Provide default. - (find_basic_blocks_1): Sibling calls don't throw. - (make_edges): Make edge from sibling call to EXIT. - (propagate_block): Don't remove sibcall_epilogue insns. - * function.c (prologue, epilogue): Turn into varrays. Update all uses. - (sibcall_epilogue): New. - (fixup_var_refs): Scan CALL_PLACEHOLDER sub-sequences. - (identify_blocks_1): Likewise. Break out from ... - (identify_blocks): ... here. - (reorder_blocks_1): Scan CALL_PLACEHOLDER. Break out from ... - (reorder_blocks): ... here. - (init_function_for_compilation): Zap prologue/epilogue as varrays. - (record_insns): Extend a varray instead of mallocing new memory. - (contains): Read a varray not array of ints. - (sibcall_epilogue_contains): New. - (thread_prologue_and_epilogue_insns): Emit and record - sibcall_epilogue patterns. - (init_function_once): Allocate prologue/epilogue varrays. - * genflags.c (gen_insn): Treat sibcall patterns as calls. - * integrate.c (save_parm_insns): Recurse on CALL_PLACEHOLDER patterns. - Broken out from ... - (save_for_inline_nocopy): ... here. - (copy_insn_list): Recurse on CALL_PLACEHOLDER patterns. - Broken out from ... - (expand_inline_function): ... here. - (copy_rtx_and_substitute): Handle NOTE_INSN_DELETED_LABEL. - (subst_constants): Handle 'n' formats. - * jump.c (jump_optimize_minimal): New. - (jump_optimize_1): New arg `minimal'; update callers. Elide most - optimizations if it's set. - * rtl.c (copy_rtx): Do copy jump & call for insns. - * rtl.h (struct rtx_def): Document use of jump and call for insns. - (SIBLING_CALL_P): New. - (sibcall_use_t): New. - * toplev.c (rest_of_compilation): Do init_EXPR_INSN_LIST_cache earlier. - Invoke optimize_sibling_and_tail_recursive_calls. - * tree.c (lang_safe_for_unsave): New. - (safe_for_unsave): New. - * tree.h (lang_safe_for_unsave, safe_for_unsave): Declare. - - * alpha.h (FUNCTION_OK_FOR_SIBCALL): New. - * alpha.md (sibcall, sibcall_value, sibcall_epilogue): New. - (*sibcall_osf_1, *sibcall_value_osf_1): New. - -2000-03-17 Mark Mitchell - - * objc/objc-act.c (encode_method_prototype): Pass types, not - PARM_DECLs, to int_size_in_bytes. - -Fri Mar 17 11:51:34 2000 Jim Wilson - - * config/ia64/ia64.md (mix4right_3op): Swap %1 and %2 in template. - - * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyrights again. - -Fri Mar 17 08:09:14 2000 Richard Kenner - - * Clean up usages of TREE_INT_CST_LOW. - * c-parse.in (RESTORE_WARN_FLAGS): Use tree_low_cst. - * c-parse.y, c-parse.c, objc/objc-parse.y, objc/objc-parse.c: - Regenerated. - * c-tree.h (min_precision): Move declaration to here. - * c-typeck.c (build_binary_op): Use host_integerp and tree_low_cst. - (build_unary_op, add_pending_init): Use bit_position. - (pending_init_member, process_init_element): Likewise. - (really_start_incremental_init, push_init_level, pop_init_level): - Don't make copies of nodes or modify them in place, use consistent - types when tracking positions, and use tree routines computations. - (set_init_index, output_init_element): Likewise. - (output_pending_init_elements, process_init_element): Likewise. - * dbxout.c (dbxout_type_fields): Use bit_position, host_integerp, - tree_low_cst and int_bit_position; also minor cleanup. - (dbxout_type_method_1, dbxout_range_type, dbxout_type): Likewise. - (print_cst_octal): Precision is unsigned. - (dbxout_symbol): Ensure DECL_INITIAL is in-range and use tree_low_cst. - * dwarf2out.c (ceiling): Input and output are unsigned HOST_WIDE_INT. - (simple_type_align_in_bits): Result is unsigned int. - Use tree_int_low_cst and host_integerp. - (simple_type_size_in_bits): Result is unsigned HOST_WIDE_INT. - (field_byte_offset): Result is HOST_WIDE_INT. - Change types of internal variables so alignments are unsigned int, - offsets are HOST_WIDE_INT and sizes are unsigned HOST_WIDE_INT. - Use host_integerp, tree_low_cst, and int_bit_position. - (add_bit_offset_attribute): Likewise. - (add_data_member_location_attribute): Use tree_cst_low. - (add_bound_info): Use host_integerp, integer_zerop, and integer_onep. - (add_bit_size_attribute): Use tree_low_cst. - (add_pure_or_virtual_attribute, gen_enumeration_type_die): Likewise. - * dwarfout.c: Similar changes to dwarf2out.c. - * expr.c (expand_expr, case ARRAY_REF): Remove redundant code. - * genoutput.c (n_occurrences): Return -1 for null string. - (strip_whitespace): Accept null string and make into function. - (scan_operands): Reflect above changes. - * sdbout.c (plain_type_1): Use host_integerp and tree_low_cst. - (sdbout_field_types, sdbout_one_type): Likewise; also use bit_position. - * ssa.c (rename_registers): Add missing cast of arg to bzero. - * tree.c (int_size_in_bytes): Check for too big to represent. - (bit_position, int_bit_position, host_integerp, tree_low_cst): New fns. - * tree.h (host_integerp, tree_low_cst, bit_position, int_bit_position): - New declarations. - (min_precision): Delete from here. - * varasm.c (decode_addr_const): Use host_integerp, bit_position, - and int_bit_position. - * objc/objc-act.c (encode_method_prototype): Sizes are HOST_WIDE_INT. - (encode_method_def): Likewise. - (build_ivar_list_initializer): Use int_bit_position. - (generate_shared_structures): Convert size. - (encode_type, encode_complete_bitfield): Use integer_zerop. - (encode_bitfield): Use tree_low_cst and int_bit_position. - -2000-03-17 Michael Hayes - - * config/c4x/c4x.h (CPP_SPEC): Fix typo. - -2000-03-17 Martin v. Löwis - - * call.c (special_function_p): It is only malloc if it returns - Pmode. - -2000-03-17 Michael Hayes - - * config/c4x/c4x.h (ASM_SPEC, CPP_SPEC, LINK_SPEC): Support C33. - (C33_FLAG, TARGET_C3X): Add macros. - (TARGET_SWITCHES): Add -m33 option. - * config/c4x/c4x.c (c4x_override_options): Test for TARGET_C33. - -2000-03-17 Michael Hayes - - * config/c4x/c4x.h (PARALLEL_INSN_FLAG): Add. - (PARALLEL_PACK_FLAG): Delete. - (TARGET_SWITCHES): Update. - (TARGET_PARALLEL): Use PARALLEL_INSN_FLAG. - -Thu Mar 16 18:52:32 2000 Richard Kenner - - * fold-const.c (fold): Fix a few cases when the returned result - is not of the same type as the input. - -2000-03-16 Nick Clifton - - * config/arm/arm.h (ASM_OUTPUT_MI_THUNK): Fix compile time - warning. - -2000-03-16 Kaveh R. Ghazi - - * libgcc2.h: Move prototypes above macros with the same name. - Wrap some function prototypes in the conditional which indicates - whether they are supported, i.e. "BITS_PER_UNIT == 8". - -2000-03-16 Richard Henderson - - * calls.c: Revert last two changes. - -2000-03-16 Bernd Schmidt - - * fp-bit.c (_unpack_d): If NO_DENORMALS is defined, anything that - has exponent 0 is a zero. - - * simplify-rtx.c (hash_rtx, case MEM/REG): Take into account that - HASH may already be nonzero. Add code/mode into hash value - immediately after repeat label. - (cselib_lookup): Don't leave the hash table in an inconsistent - state before a hash lookup operation. - -Thu Mar 16 17:03:10 MET 2000 Jan Hubicka - - * i386.md (all HI and QI mode non-move patterns): Conditionize - by TARGET_[HQ]IMODE_MATH. - * i386.h (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, - x86_promote_qi_regs): Declare. - (TARGET_HIMODE_MATH, TARGET_QIMODE_MATH, TARGET_PROMOTE_HI_REGS, - TARGET_PROMOTE_QI_REGS): New macros. - (PROMOTE_MODE): New macro. - * i386.c (x86_himode_math, x86_qimode_math, x86_promote_hi_regs, - x86_promote_qi_regs): New global variables. - -Thu Mar 16 16:50:44 MET 2000 Jan Hubicka - - * calls.c (emit_library_call_value_1): Break out from ...; handle - VOIDmode function calls too. - (emit_library_call_value): ... here. - (emit_library_call): Implement by calling emit_library_call_value_1. - -Thu Mar 16 16:01:30 MET 2000 Jan Hubicka - - * calls.c (expand_call): Do sanity checking on arg_space_so_far. - Update arg_space_so_far on stack adjustments. - (emit_library_call, emit_library_call_value): Likewise; take into - account arg_space_so_far and pending_stack_adjust when calculcating - the boundary. - -Thu Mar 16 09:02:19 2000 Jason Eckhardt - - * flow.c: Move all basic block reordering code into its own file. - (create_basic_block): Externalize. - * bb-reorder.c: New file. Copy all basic block reordering code from - flow.c to this file. - (reorder_basic_blocks): Fix fencepost error in for-loop. - (reorder_basic_blocks): Remove braces from single statement for-loops. - * basic-block.h: Add declaration for create_basic_block. - * Makefile.in: Add rules for bb-reorder.o. - -2000-03-16 Neil Booth - - * cppinit.c (handle_option): Implement #unassert directive - as -A- command line option. - (print_help): Update. - * cpptexi.c: Update. - -Thu Mar 16 02:14:16 2000 Hans-Peter Nilsson - - * md.texi (Standard Names): Document `jump'. - -2000-03-15 Jason Merrill - - * calls.c (emit_call_1): Nothrow functions can still have nonlocal - gotos. - -2000-03-15 Geoff Keating - - Merge changes from newppc-branch onto trunk. - - 2000-03-15 Geoff Keating - - * rs6000.c (toc_hash_table): Update for new hash table functions. - (toc_hash_function): Likewise. - (toc_hash_eq): Likewise. - (toc_hash_mark_entry): Likewise. - (toc_hash_mark_table): Likewise. - (output_toc): Likewise. - (rs6000_add_gc_roots): Likewise. - - 2000-03-15 Alexandre Oliva - - * t-aix43 (AR_FOR_TARGET): Deleted. Moved `-X32_64'... - (AR_FLAGS_FOR_TARGET): here. New macro. - - 2000-03-05 Clinton Popetz - - * config/rs6000/rs6000.c (rs6000_fpmem_offset, rs6000_fpmem_size, - fpmem_operand) Delete. - (xer_operand) New. - (rs6000_reg_names, alt_reg_names): Change fpmem to xer. - (machine_function): Remove fpmem_size, fpmem_offset, save_toc_p. - (rs6000_save_machine_status, rs6000_restore_machine_status, - rs6000_init_expanders, rs6000_stack_info, debug_stack_info): Remove - references to above variables. - (gpc_reg_operand): Use XER_REGNO_P instead of FPMEM_REGNO_P. - * config/rs6000/rs6000.h (REG_ALLOC_ORDER, REGISTER_NAMES, - DEBUG_REGISTER_NAMES): Chagne fpmem to xer. - (FPMEM_REGNO_P, FPMEM_REGNUM): Delete. - (XER_REGNO_P, XER_REGNO): New. - (rs6000_stack): Remove fpmem_p, fpmem_offset, fpmem_size. - (PREDICATE_CODES): Change fpmem_operand to xer_operand. - (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Change FPMEM_REGNO_P to - XER_REGNO_P. - (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS, - REG_CLASS_FROM_LETTER, CLASS_MAX_NREGS): Change FPMEM_REGS to XER_REGS, and remove FLOAT_OR_FPMEM_REGS. - (CLASS_CANNOT_CHANGE_SIZE): Change to FLOAT_REGS. - - 2000-02-29 Franz Sirl - - * aix.h (FP_SAVE_INLINE, ASM_OUTPUT_INTERNAL_LABEL_PREFIX, - TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP): Move here... - * rs6000.h: from here. - - * rs6000-protos.h (rs6000_select_section): Provide prototype. - (rs6000_select_rtx_section): Likewise. - (rs6000_encode_section_info): Likewise. - (sdata_section): Likewise. - (sdata2_section): Likewise. - (sbss_section): Likewise. - * sysv4.h (rs6000_select_section): Delete prototype. - (rs6000_select_rtx_section): Likewise. - (rs6000_encode_section_info): Likewise. - (sdata_section): Likewise. - (sdata2_section): Likewise. - (sbss_section): Likewise. - (REG_SAVE_AREA): Delete definition duplicated in rs6000.h. - - * sysv4.h: Delete various unnecessary #undef's and put a comment - on the remaining ones. - Change various comments according to coding standard. - - 2000-02-29 Clinton Popetz - - * config/rs6000/rs6000.h (MQ_REGNO, CR0_REGNO, CR1_REGNO, CR2_REGNO, - CR3_REGNO, CR4_REGNO, MAX_CR_REGNO): Define. - (CR0_REGNO_P) Remove. - * config/rs6000/rs6000.c (gpc_reg_operand, and64_operand, and_operand, - setup_incoming_varargs, mtcrf_operation, print_operand, - rs6000_stack_info, rs6000_emit_prologue, rs6000_emit_epilogue): - Use the above macros. - - 2000-02-24 Clinton Popetz - - * config/rs6000/rs6000.md: Added a new alternative for each - pattern that had a 'x' alternative but no 'y' alternative. - Added a new split for each of the above patterns. - - 2000-02-18 Geoff Keating - - * aix41.h (ASM_CPU_SPEC): Delete. - (CPP_CPU_SPEC): Delete. - - * aix.h (RS6000_OUTPUT_BASENAME): Define. - (ASM_OUTPUT_LABEL): Define. - (ASM_GLOBALIZE_LABEL): Define. - (STRIP_NAME_ENCODING): Define. - * rs6000.h (RS6000_OUTPUT_BASENAME): Don't define. - (STRIP_NAME_ENCODING): Don't define. - (ASM_OUTPUT_LABEL): Don't define. - (ASM_GLOBALIZE_LABEL): Don't define. - * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use assemble_name to output - names, and ASM_OUTPUT_LABEL to output labels, rather than - asm_fprintf. - (ASM_OUTPUT_LABEL): Define. - (ASM_OUTPUT_INT): Use assemble_name. - (ASM_OUTPUT_DWARF_ADDR): Use assemble_name. - (STRIP_NAME_ENCODING): Don't undefine first. - (RS6000_OUTPUT_BASENAME): Make equivalent to assemble_name for - ELF. - (ASM_OUTPUT_LABELREF): Don't prepend underscores to labels - specified with 'asm' even with -fleading-underscore. - * rs6000.c (print_operand): Use assemble_name when !TARGET_AIX. - (output_epilog): Likewise. - (output_toc): Likewise. - * tramp.asm: Handle -fleading-underscore correctly. - - * rs6000.md (builtin_setjmp_receiver): Also run for -fPIC and - -mminimal-toc. - (nonlocal_goto_receiver): Delete. - * rs6000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Delete. - - * rs6000.h (ASM_OUTPUT_DEF): Don't define. - (SET_ASM_OP): Define. - * sysv4.h (ASM_OUTPUT_DEF): Don't undefine. - - * rs6000.h (ASM_OUTPUT_ADDR_VEC_ELT): Don't define. - (ASM_LONG): Define. - - * rs6000.c (rs6000_dll_import_ref): Delete, not used. - * rs6000-protos.h (rs6000_dll_import_ref): Delete. - - * rs6000.h: Add 'u' to more constants. - - 2000-02-18 David Edelsohn - - * rs6000.md (mfcr+shift): Delete PowerPC64 version. - - 2000-02-15 David Edelsohn - - * rs6000.c (reg_or_u_cint_operand): New function. - (logical_operand): Handle 64-bit hosts. - (logical_u_operand): New function. - (non_logical_cint_operand): Handle 64-bit hosts. - (non_logical_u_cint_operand): New function. - * rs6000.h (DATA_SECTION_ASM_OP): Add tab. - (PREDICATE_CODES): Define new functions. - * rs6000-protos.h: Declare new functions. - * rs6000.md (iordi3, xordi3): Constant int must be unsigned 32-bits. - (movdi_64): Bracket code intended for 64-bit hosts. Create - CONST_DOUBLE for 32-bit values. - (scc insns): Generate DImode compares. - (mfcr insns): Create DImode versions. - (sge matchers): New patterns. - - 2000-02-15 Gabriel Paubert - - * rs6000.md: Correct instructions length attributes and - constraints on unsigned compare instructions. - (*ne0): Disable for PowerPC64. - - 2000-02-11 Geoff Keating - - * rs6000.c (output_function_profiler): Use .long for a 32-bit - quantity, fix profile1.C test failure under -fPIC. - - * rs6000.c: Add 'u' to many constants to suppress warnings. - (constant_pool_expr_1): Make static. - (rs6000_emit_eh_toc_restore): Remove unused 'r2'. - * rs6000.h: Add 'u' to many constants to suppress warnings. - - * rs6000.c (rs6000_emit_load_toc_table): Use LCTOC..1 under AIX - for the start of the TOC, instead of LCTOC..0. - * aix.h (toc_section): Use LCTOC..1 under AIX for the start - of the TOC. - * rs6000.md (load_toc_aix_si): Use LCTOC..1. - (load_toc_aix_di): Use LCTOC..1. - - * rs6000.h (LEGITIMIZE_ADDRESS): Turn into a function. - * rs6000.c (rs6000_legitimize_address): New function from - LEGITIMIZE_ADDRESS. Only use create_TOC_reference on - symbols in the constant pool that really are TOC references. - (print_operand_address): For ELF, write TOC offsets under - -fPIC as subtractions in the insn. - (output_toc): For ELF, define symbols in TOC as normal labels, - to match RTL. - (create_TOC_reference): Use gen_rtx_PLUS rather than gen_rtx. - * rs6000-protos.h (rs6000_legitimize_address): Prototype. - (create_TOC_reference): Prototype only when RTX_CODE is defined. - * rs6000.md (movsi): Only use create_TOC_reference on - symbols in the constant pool that really are TOC references. - - * rs6000.h (MACHINE_DEPENDENT_REORG): Don't define. - * rs6000.c (rs6000_reorg): Delete. - * rs6000-protos.h (rs6000_reorg): Delete. - - 2000-02-09 Geoff Keating - - * rs6000.h (INCOMING_RETURN_ADDR_RTX): New macro. - - * aix.h (SETUP_FRAME_ADDRESSES): Define. - * rs6000.c [TARGET_AIX] (insn_after_throw): New static variable. - [TARGET_AIX] (rs6000_aix_emit_builtin_unwind_init): New function. - [TARGET_AIX] (rs6000_emit_eh_toc_restore): New function. - * rs6000-protos.h: Prototype rs6000_emit_eh_toc_restore, - rs6000_aix_emit_builtin_unwind_init. - * rs6000.md (eh_epilogue) [TARGET_AIX]: Call - rs6000_emit_eh_toc_restore on AIX. - (return_eh_si): Use r2. - (return_eh_di): Use r2. - - * aix43.h: Turn on HAS_INIT_SECTION and LD_INIT_SWITCH, - since we're breaking binary compatibility anyway. - - 2000-02-09 Clinton Popetz - - * config/rs6000/rs6000-protos.h: (get_TOC_alias_set, uses_TOC, - constant_pool_expr_p): Declare them. - (constant_pool_expr_p): Declare it. - * config/rs6000/rs6000.c (toc_label_name): Define. - (rs6000_override_options): Set toc_label_name. - (input_operand): Allow any TOC_RELATIVE_EXPR_P. - (get_TOC_alias_set, constant_pool_expr_p, constant_pool_expr_1, - uses_TOC): New functions. - (print_operand): Delete old '*' case. - (print_operand_address): Use LEGITIMATE_CONSTANT_POOL_ADDRESS_P, - and strip off rtl for TOC before calling output_addr_const. - (rs6000_emit_load_toc_table): Use toc_label_name. - * config/rs6000/rs6000.h (TARGET_SWITCHES): Make msched-prolog - the default. - (LEGITIMATE_CONSTANT_POOL_BASE_P): Delete. - (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): New macros. - (LEGITIMATE_CONSTANT_POOL_ADDRESS_P): Use CONSTANT_POOL_EXPR_P. - (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Turn symbol_refs - into explicit TOC_REGISTER offsets. - (TOC_REGISTER): New macro. - * config/rs6000/rs6000.md (movsi, movdi): Emit rtl under - TARGET_TOC to reference TOC_REGISTER. - (load_toc_v4_PIC_1b): Add 4 to offset for toc reload. - * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Call - uses_TOC before emitting label references. - - 2000-02-05 Geoff Keating - - * rs6000.md (stack_tie): Fix warning. - - * eabi-ctors.c: Use 'asm' names for the start/end variables, - to handle -fleading-underscore. - * sysv4.h (ASM_DECLARE_FUNCTION_NAME): Use asm_fprintf and %U. - (USER_LABEL_PREFIX): New macro. - (ASM_OUTPUT_INTERNAL_LABEL_PREFIX): Use asm_fprintf and %L. - (ASM_OUTPUT_LABELREF): Use asm_fprintf and %U. - * t-ppccomm (MULTILIB_MATCHES_SYSV): Note that call-sysv and - call-linux can use the same multilibs. - * t-ppcgas (MULTILIB_OPTIONS): Don't need to have separate call-sysv - and call-linux multilibs. Do multilib with -fleading-underscore. - (MULTILIB_DIRNAMES): Follow MULTILIB_OPTIONS change. - (MULTILIB_EXCEPTIONS): Remove call-linux exceptions. Add restrictions - to call-aix. - - * sysv4.h (CPP_SYSV_SPEC): Define _SOFT_FLOAT for all those CPUs that - have MASK_SOFT_FLOAT set. - (CPP_FLOAT_DEFAULT_SPEC): New macro. - (SUBTARGET_EXTRA_SPECS): Set `cpp_float_default' to the value of - CPP_FLOAT_DEFAULT_SPEC. - - * rs6000.c (ccr_bit): Add some consistency checks and a variable 'reg'. - * rs6000.md: Whitespace change. - * sysv4.h (LINK_TARGET_SPEC): Whitespace change. - * sysv4le.h (LINK_TARGET_SPEC): Whitespace change. - - 2000-02-05 Geoff Keating - - * rs6000.md (eh_epilogue): New expander. - (eh_reg_restore): New expand/split/insn combination. - (return_eh_si): New insn. - (return_eh_di): New insn. - - * eabi-ci.asm: Put a label at the start of the .eh_frame section. - * eabi-cn.asm: Put a zero at the end of the .eh_frame section. - * eabi-ctors.c (__do_global_ctors): Register this object's - frame. Clean up. Call atexit() after the constructors. - (__do_global_dtors): Deregister this object's frame. Clean up. - Allow for recursive calls to exit(). - * rs6000.c (fixuplabelno): New variable. - * sysv4.h (ASM_OUTPUT_INT): Don't do .fixup if not - TARGET_RELOCATABLE, it slows down exec() under linux. - (ASM_OUTPUT_DWARF_ADDR): Do .fixup if TARGET_RELOCATABLE. - - * aix.h (ASM_OUTPUT_DWARF_ADDR_VAR): New macro. - (ASM_OUTPUT_DWARF_DELTA_VAR): New macro. - (ASM_OUTPUT_DWARF_DELTA2): New macro. - (ASM_OUTPUT_DWARF_DELTA4): New macro. - (ASM_OUTPUT_DWARF_ADDR_DELTA): New macro. - (ASM_OUTPUT_DWARF_ADDR): New macro. - (ASM_OUTPUT_DWARF_DATA4): New macro. - (ASM_OUTPUT_DWARF_DATA2): New macro. - (ASM_OUTPUT_DWARF_OFFSET4): New macro. - (ASM_OUTPUT_DWARF_OFFSET): New macro. - (UNALIGNED_INT_ASM_OP): New macro, fake definition. - - 2000-02-03 Geoff Keating - - * rs6000.c (rs6000_sr_alias_set): New variable. - (rs6000_override_options): Initialize rs6000_sr_alias_set. - (rs6000_emit_stack_tie): New function. - (rs6000_emit_allocate_stack): Specify RTX_FRAME_RELATED_P - in a way that dwarf2out can understand. - (rs6000_frame_related): New function. - (rs6000_emit_prologue): Use rs6000_sr_alias_set. Specify - RTX_FRAME_RELATED_P in a way that dwarf2out can understand. - Use rs6000_emit_stack_tie when needed. - (rs6000_emit_epilogue): Use rs6000_sr_alias_set. Don't set - RTX_FRAME_RELATED_P. Use rs6000_emit_stack_tie when needed. - * rs6000.md (stack_tie): New insn. - (return_internal_si): Allow return value to be in the count - register. - (return_internal_di): Likewise. - - * rs6000.c (output_mi_thunk): Remove unused variable `sp'. - - 2000-02-03 Geoff Keating - - * sysv4.h (LOCAL_LABEL_PREFIX): Define, for the use of dbxelf.h. - - 2000-01-31 Geoff Keating - - * rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): New macro. - - * rs6000.md (stmw): Use the right POWER opcode. - (lmw): Likewise. - - 2000-01-31 Kaveh R. Ghazi - - * rs6000-protos.h: New file. - - * rs6000.c: Include tm_p.h. Fix compile time warnings. - - * rs6000.h: Move prototypes to rs6000-protos.h. Fix compile time - warnings. - - * sysv4.h: Likewise. - - 2000-01-28 Geoff Keating - - * ../../configure.in: Delete powerpcle-*-winnt* - and powerpcle-*-pe|powerpcle-*-cygwin*. - * ../../configure: Regenerated. - * cygwin.h: Delete. - * rs6000.h (OBJECT_WINDOWS_NT): Delete. - (TARGET_WINDOWS_NT): Delete. - (ABI_NT): Delete. - (CALL_NT_DLLIMPORT): Delete. - Delete NT-specific code. - * rs6000.md, rs6000.c, sysv4.h: Delete NT-specific code. - * win-nt.h: Delete. - * t-winnt: Delete. - * nt-ci.asm: Delete. - * nt-cn.asm: Delete. - * ntstack.asm: Delete. - - 2000-01-27 Franz Sirl - - * rs6000.h (SELECT_RTX_SECTION): Move to aix.h. - (ASM_FILE_START): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_OUTPUT_LABELREF): Likewise. - (ASM_OUTPUT_SKIP): Likewise. - (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - (ASM_OUTPUT_ASCII): Likewise. - - 2000-01-27 Clinton Popetz - - * rs6000.c (rs6000_emit_load_toc_table): Use "LCG" and - reload_toc_labelno for non-prologue TOC reloads. Also, don't - increment rs6000_pic_labelno here. - (rs6000_emit_prologue): Pass TRUE to rs6000_emit_load_toc_table, - and increment rs6000_pic_labelno here. - - 2000-01-24 Geoffrey Keating - - * rs6000.md (fctiwz): Use (set (reg) (unspec:DI [(fix:SI ...)])) - rather than (set (subreg:SI (reg)) (fix:SI ...)) so that register - allocation knows (reg) is dead before the insn. - - 2000-01-21 Geoff Keating - - * rs6000.md (movsi_to_cr): Correct typo in output template. - - 2000-01-19 Geoffrey Keating - - * rs6000.c (rs6000_pic_labelno): Always define. - (rs6000_pic_func_labelno): Delete. - (lmw_operation): Check for a zero base register, - which doesn't mean what we want. - (stmw_operation): New function. - (print_operand): Define new 'l' modifier. - (rs6000_stack_info): We must save all 64 bits of the registers - if TARGET_POWERPC64. - (rs6000_output_load_toc_table): Delete. - (rs6000_emit_load_toc_table): New function. - (rs6000_allocate_stack_space): Delete. - (rs6000_emit_allocate_stack): New function. - (rs6000_emit_prologue): New function. - (output_prolog): Use rs6000_emit_prologue. - (rs6000_emit_epilogue): Change a few variable names to be - more accurate. Restore all 64 bits of the registers if - TARGET_POWERPC64. Only restore the FP registers which were used - if they are being saved/restored one-at-a-time. - (output_mi_thunk): Delete inefficient code generation. - (output_function_profiler): Don't use rs6000_output_load_toc_table. - * rs6000.h: Declare rs6000_emit_load_toc_table, - rs6000_allocate_stack_space, stmw_operation. Don't declare - rs6000_output_load_toc_table. - * rs6000.md (elf_high): Allow register 0, but discourage it - heavily. - (elf_low): Support loading into register 0. - (load_toc_aix_si): New pattern. - (load_toc_aix_di): New pattern. - (load_toc_v4_pic_si): New pattern. - (load_toc_v4_pic_di): New pattern. - (load_toc_v4_PIC_1): New pattern. - (load_toc_v4_PIC_1b): New pattern. - (load_toc_v4_PIC_2): New pattern. - (builtin_setjmp_receiver): Use rs6000_emit_load_toc_table. - (nonlocal_goto_receiver): Use rs6000_emit_load_toc_table. - (prologue): New expander. - (movesi_from_cr): New pattern. - (stmw): New pattern. - (save_fpregs_si): New pattern. - (save_fpregs_di): New pattern. - - 2000-01-19 Geoff Keating - - * rs6000.md (movsi): Don't use force_reg when no_new_pseudos. - (movdi): Likewise. - (movhi): Likewise. - (movqi): Likewise. - - 2000-01-19 Geoff Keating - - * rs6000.md (movsi_got): 'unspec 8' returns a SImode result, - at present. - (movsi_got_internal): Likewise. - (movsi_got_internal+1): Likewise. - (set_sp): 'unspec 7' does a SImode clobber. - - 2000-01-19 Geoff Keating - - * rs6000.md (floatsidf2): Don't use the fpmem "register", just - allocate a stack temporary. - (floatsidf2_internal): Likewise. - (floatsidf2_internal+1): Likewise. Don't do bizzare hacks - with unspec. - (floatunssidf2): Don't use the fpmem "register", just - allocate a stack temporary. - (floatunssidf2_internal): Likewise. - (floatunssidf2_internal+1): Likewise. Don't do bizzare hacks - with unspec. - (floatsidf2_loadaddr): Delete. - (floatsidf2_store1): Delete. - (floatsidf2_store2): Delete. - (floatsidf2_load): Delete. - (fix_truncdfsi2): Don't use the fpmem "register", just - allocate a stack temporary. - (fix_truncdfsi2_internal_si): Delete. - (fix_truncdfsi2_internal_di): Delete. - (fix_truncdfsi2_internal): New insn. - (fix_truncdfsi2_internal+1): Don't use the fpmem "register". - (fix_truncdfsi2_store): Delete. - (fix_truncdfsi2_load): Delete. - (fctiwz): Produce gen_fctiwz. - - 2000-01-19 Geoffrey Keating - - * eabi.h (INVOKE__main): Define. - * rs6000.c (rs6000_stack_info): Don't handle call to NAME__MAIN - specially. - (rs6000_emit_prologue): Likewise. - * rs6000.h (struct rs6000_stack): Don't keep track of whether - this is the main program. - - 2000-01-19 Geoff Keating - - * rs6000.c (rs6000_va_arg): Delete some unused variables. - - 2000-01-19 Geoff Keating - - * rs6000.c (rs6000_va_arg): On AIX, padding for small arguments - goes after the argument. - - 2000-01-12 Geoff Keating - - * rs6000.md: Document 'unspec' values used. - (epilogue): New expander. - (movesi_to_cr_one): New expander. - (movesi_to_cr and following): New pattern. - (lmw): New pattern. - (return_internal_si): New pattern. - (return_internal_di): New pattern. - (return_and_restore_fpregs_si): New pattern. - (return_and_restore_fpregs_di): New pattern. - * rs6000.h: Declare new functions. - * rs6000.c (rs6000_stack_info): Use current_function_is_leaf - rather than rs6000_calls_p. - (rs6000_makes_calls): Delete. - (lmw_operation): New function. - (mtcrf_operation): New function. - (rs6000_emit_epilogue): New function. - (output_epilog): Call rs6000_emit_epilogue and final if - !TARGET_SCHED_PROLOG, instead of writing text unconditionally. - - 2000-01-12 Geoff Keating - - * aix43.h (SUBSUBTARGET_SWITCHES): Document switches. - * aix41.h (SUBSUBTARGET_SWITCHES): Document switches. - * aix.h (SUBTARGET_SWITCHES): Document switches. - * rs6000.h: (TARGET_SWITCHES): Don't print options twice. Make - sched-prolog and sched-epilog the same. Document all the - switches. - (TARGET_OPTIONS): No longer allow -mdebug-. - - 2000-01-12 Geoff Keating - - * rs6000.h (ASM_FILE_END): Move to aix.h. - (EXTRA_SECTIONS): Move to aix.h. - (READONLY_DATA_SECTION): Move to aix.h. - (EXTRA_SECTION_FUNCTIONS): Move to aix.h. - (SELECT_SECTION): Move to aix.h. - (JUMP_TABLES_IN_TEXT_SECTION): Move to aix.h. - (INT_REGNO_P): Use symbolic name for ARG_POINTER_REGNUM. - (LINK_REGISTER_REGNUM): New definition. - (RETURN_ADDR_RTX): Use symbolic name for LINK_REGISTER_REGNUM. - (SLOW_UNALIGNED_ACCESS): Define in a way suitable for both - AIX and SVR4. - * sysv4.h: Delete the code between the inclusion of rs6000.h - and svr4.h. - (DWARF_DEBUGGING_INFO): Don't define, it's defined in elfos.h. - (FP_ARG_MAX_REG): Move generic definition to rs6000.h. - (RS6000_REG_SAVE): Move generic definition to rs6000.h. - (RS6000_SAVE_AREA): Move generic definition to rs6000.h. - * rs6000.md (floatsidf2_loadaddr): The first arg here is Pmode. - (fix_truncdfsi2_internal): Rename to fix_truncdfsi2_internal_si. - (fix_truncdfsi2_internal_di): New pattern. - (fix_truncdfsi2_store): The second arg here is Pmode too. - (fix_truncdfsi2_load): The second arg here is Pmode too. - (tablejumpdi): Now that switch tables hold only SImode values, - gcc needs to know how to add them to the pc which is DImode. - * rs6000.c (rs6000_stack_info): Use symbolic name for - LINK_REGISTER_REGNUM. - (output_mi_thunk) [!TARGET_ELF]: Don't define sp, it's not used. - (output_toc): Delete unused variables s1 and s2. - (output_ascii): Use fputs not fprintf on a variable string. - - 2000-01-07 David Edelsohn - - * rs6000.c (processor_target_table): Add power3 as alias for 630. - * aix43.h: Revert Aug 2 change. - (HAS_INIT_SECTION): Define, not visible yet. - (LD_INIT_SWITCH): Define, not visible yet. - * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. - - 2000-01-04 Joel Sherrill (joel@OARcorp.com> - - * config/rs6000/rtems.h: Include config/rtems.h. - - 2000-01-04 David Edelsohn - - * rs6000.h (HANDLE_PRAGMA_PACK): Define. - (SLOW_UNALIGNED_ACCESS): Define. - (CASE_VECTOR_MODE): Always use 32-bit offsets. - (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. - (EXTRA_SECTOIN_FUNCTIONS): Indent .csect pseudo-op. - (toc_section): Likewise and .toc pseudo-op. - (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in - 64-bit mode. - (TEXT_SECTION_ASM_OP): Likewise. - (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use - 32-bit offsets. - - 1999-12-17 Jakub Jelinek - - * config/rs6000/rs6000.h (TARGET_POWERPC64): Make sure - UNITS_PER_WORD and BITS_PER_WORD are compile time constants when - compiling libgcc2. - - 2000-01-06 Franz Sirl - - * rs6000.h: Move more stuff from here... - * aix.h: to here. - * sysv4.h: Cleanup accordingly. - * netware.h: Likewise - - 2000-01-05 Franz Sirl - - * rs6000.h: Continue cleanup. - * aix.h: Likewise. - * lynx.h: Likewise. - * netware.h: Likewise. - * sol2.h: Likewise. - * sysv4.h: Likewise. - * win-nt.h: Likewise. - - * rs6000.h (TARGET_SWITCHES): Add descriptions. - (TARGET_OPTIONS): Likewise. - - * sysv4.h (SUBTARGET_SWITCHES): Add descriptions. - (SUBTARGET_OPTIONS): Likewise. - - * rs6000.md: Fix compile time warnings. - - 2000-01-04 Geoff Keating - - vxworks patches from the Cygnus tree originally by - Michael Meissner and Vladimir Makarov - . - * sysv4.h (SUBTARGET_SWITCHES): Add vxworks. - (ENDFILE_SPEC): Likewise. - (LIB_VXWORKS_SPEC): New macro. - (STARTFILE_VXWORKS_SPEC): New macro. - (ENDFILE_VXWORKS_SPEC): New macro. - (LINK_START_VXWORKS_SPEC): New macro. - (LINK_OS_VXWORKS_SPEC): New macro. - (CPP_OS_VXWORKS_SPEC): New macro. - (SUBTARGET_EXTRA_SPECS): Add all the vxworks specs. - * vxppc.h: Rewrite to use proper configuration method. - * vxppcle.h: New file. - * ../../configure.in: Add powerpcle-wrs-vxworks*. - * ../../configure: Rebuilt. - - 2000-01-04 Geoff Keating - - Lots of changes to rs6000.h, sysv4.h, aix.h, - aix31.h, aix3newas.h, aix41.h, aix43.h, beos.h, - with the aim that rs6000.h is the first header - included and the others override it. - * aix.h: New file. - - * x-aix41-gld: Remove. - * x-aix43: Remove. - * x-aix41: Remove target-specific switches, and don't specify - -Wl,-bbigtoc as we don't need it any more. - * ../../configure.in: Use x-aix41 for ppc AIX 4.1 and above. - Use t-aix43 for AIX 4.3 and above. - * ../../configure: Regenerated. - - * rs6000.h (TARGET_SWITCHES): Add some initial prolog-scheduling - options, that don't do anything yet. - (MASK_SCHED_PROLOG): New macro. - (MASK_SCHED_EPILOG): New macro. - (TARGET_SCHED_PROLOG): New macro. - (TARGET_SCHED_EPILOG): New macro. - - 2000-01-04 Geoff Keating - - * rs6000.c: Correct comment, the `minimal' TOCs are actually - one per translation unit, not one per function. - (output_toc): Also do duplicate constant elimination - for per-translation-unit TOCs. - - * rs6000.md (nonlocal_goto_receiver): Put it back as before. Add - a comment explaining _exactly_ when this pattern gets used. - (builtin_setjmp_receiver): New pattern for better clarity. - (init_v4_pic): Move it into a section dealing with TOC registers. - - 1999-12-30 Geoff Keating - - * rs6000.c (toc_hash_table): New variable. - (rs6000_hash_constant): New function. - (toc_hash_function): New function. - (toc_hash_eq): New function. - (toc_hash_mark_entry): New function. - (toc_hash_mark_table): New function. - (output_toc): Don't output duplicate TOC entries in - a single file. - (rs6000_add_gc_roots): Add the hash table as a GC root. - * t-aix43: Move AR_FOR_TARGET and CLIB here from x-aix43, - where they clearly shouldn't be. This may need to be fixed - later when there is a GNU ar for AIX. - * x-aix43: Don't define CLIB or AR_FOR_TARGET. - Don't define BOOT_LDFLAGS as it is now not necessary. - - 1999-12-29 Geoff Keating - - * rs6000.c (rs6000_build_va_list): Use 'char *' rather than 'void *' - for va_list on AIX. Use unsigned_char_type_node rather than - constructing our own version on svr4. - - 1999-12-17 Geoff Keating - - * tramp.asm (__trampoline_size): Delete CYGNUS LOCAL comment, - since patently it's not. - - 1999-12-08 Geoff Keating - - * config/rs6000/rs6000.md (nonlocal_goto_receiver): Turn into - define_expand/define_insn pair, and handle restore of the - SVR4 -fpic register. - -Wed Mar 15 15:43:38 2000 Jeffrey A Law (law@cygnus.com) - - * acconfig.h (HAVE_GAS_WEAK): New define. - * configure.in (assembler weak support): Check for .weak support. - * config.in, configure: Rebuilt. - * pa/som.h (MAKE_DECL_ONE_ONLY, ASM_WEAKEN_LABEL): Only define if - HAVE_GAS_WEAK is defined. - -2000-03-15 Nick Clifton - - * config/arm/arm.c (arm_output_epilogue): Do not pass %c to - asm_fprintf(). - -2000-03-15 Zack Weinberg - - * cppfiles.c (open_include_file): New function. - (find_include_file, cpp_read_file): Use it. - -2000-03-15 Jason Merrill - - * cpphash.c (dump_hash_helper): Take the slot, not the element. - -Wed Mar 15 14:28:54 2000 Jason Eckhardt - - * flow.c (verify_flow_info): Check for unconditional return. - -Wed Mar 15 11:34:27 2000 Jim Wilson - - * config/ia64/ia64.md (restore_stack_nonlocal): New. - * config/ia64/lib1funcs.asm (__ia64_nonlocal_goto): Delete padding nop. - (__ia64_restore_stack_nonlocal): New. - * config/ia64/t-ia64 (LIB1ASMFUNCS): Add __restore_stack_nonlocal. - -2000-03-15 Alexandre Oliva - - * cpphash.c (collect_formal_parameters): Do not complain about - parameter names that just start with `__VA_ARGS__'. - -Wed Mar 15 13:26:58 MET 2000 Jan Hubicka - - * i386.md (movhi_1): Promote movw imm, reg to movl imm, reg and - movw reg, reg to movzwl reg, reg on PARTIAL_REGISTER_STALL machines. - * i386.c (pentiumpro_cost): Set mul cost to 4. - (x86_use_movx): Set for PPro. - -Wed Mar 15 13:07:05 MET 2000 Jan Hubicka - - * i386.md (ix86_compute_frame_size): stack_alignment_needed is - STACK_BOUNDARY for empty frames now. - -2000-03-14 Mark Mitchell - - * stor-layout.c (layout_union): Remove. - (layout_union_field): New function, split out from layout_union. - (finish_union_layout): Likewise. - (layout_field): Handle unions by calling layout_union_field. - (finish_record_layout): Handle unions. - (layout_type): Combine RECORD_TYPE, UNION_TYPE, and - QUAL_UNION_TYPE handling. - -Wed Feb 23 13:00:06 CET 2000 Jan Hubicka - - * flow.c (fixup_reorder_chain): Avoid double labels in the basic block; - end of basic block is jump_insn, not barrier; use create_basic_block - instead of creating basic block by hand. - -2000-03-14 Jason Eckhardt - - * flow.c (reorder_basic_blocks): Account for barriers when writing - over NEXT_INSN (last_bb->end). - (verify_flow_info): Add check for missing barriers. - -2000-03-14 Greg McGary - - * c-lex.h (enum rid): Add RID_BOUNDED & RID_UNBOUNDED. - * c-lex.c (init_lex): Handle RID_BOUNDED & RID_UNBOUNDED. - * c-parse.gperf (__bounded, __bounded__, __ptrbase, __ptrbase__, - __ptrextent, __ptrextent__, __ptrvalue, __ptrvalue__, - __unbounded, __unbounded__): New keywords. - * c-parse.in (PTR_VALUE PTR_BASE PTR_EXTENT): New tokens. - * c-parse.y, c-parse.c, c-parse.h: Regenerate. - * objc/objc-parse.y, objc/objc-parse.c: Regenerate. - -2000-03-14 Bernd Schmidt - - * cselib.h: New file. - * alias.c: Include "cselib.h". - (fixed_scalar_and_varying_struct_p): Accept the addresses of the - MEMs as two new arguments. - (get_addr): New static function. - (find_base_term): Handle VALUEs. - (memrefs_conflict_p): Likewise. - (true_dependence): Call get_addr on the addresses. - Call fixed_scalar_and_varying_struct_p with addresses that have been - passed through get_addr and canon_rtx. - (write_dependence_p): Move DIFFERENT_ALIAS_SETS_P test for consistency - with true_dependence. - Call get_addr on the addresses; don't call canon_rtx on the MEMs. - * loop.c: Include "cselib.h". - (load_mems): Process extended basic block that enters the loop with - cselib. Use that information to change initialization of the shadow - register so that a constant equivalence is seen by later passes. - * reload1.c: Include "cselib.h". - (reload_cse_invalidate_regno): Delete function. - (reload_cse_mem_conflict_p): Likewise. - (reload_cse_invalidate_mem): Likewise. - (reload_cse_invalidate_rtx): Likewise. - (reload_cse_regno_equal_p): Likewise. - (reload_cse_check_clobber): Likewise. - (reload_cse_record_set): Likewise. - (reg_values): Delete static variable. - (invalidate_regno_rtx): Likewise. - (reload_cse_delete_noop_set): New static function. - (reload_cse_simplify): New static function, broken out of - reload_cse_regs_1. - (reload_cse_noop_set_p): Delete unused argument INSN. - Just call rtx_equal_for_cselib_p on set source and destination. - (reload_cse_regs_1): Break out some code into reload_cse_simplify and - reload_cse_delete_noop_set. Delete code to keep track of values; use - cselib functions instead. Delete code to push/pop obstacks. - (reload_cse_simplify_set): Use cselib to find equivalent values. - Delete code to push/pop obstacks. - (reload_cse_simplify_operands): Likewise. - * rtl.def (VALUE): New rtx code. - * rtl.h (union rtunion_def): New elt rt_cselib. - (X0CSELIB, CSELIB_VAL_PTR): New macros. - * simplify_rtx.c: Include "ggc.h", "obstack.h", "cselib.h". - (new_elt_list, new_elt_loc_list, unchain_one_value, clear_table, - unchain_one_elt_list, unchain_one_elt_loc_list, check_useless_values, - discard_useless_locs, discard_useless_values, entry_and_rtx_equal_p, - hash_rtx, new_cselib_val, add_mem_for_addr, get_value_hash, - cselib_lookup_mem, cselib_subst_to_values, cselib_invalidate_regno, - cselib_mem_conflict_p, cselib_invalidate_mem, cselib_invalidate_rtx, - cselib_record_set, cselib_record_sets): New static functions. - (cselib_lookup, cselib_update_varray_sizes, cselib_init, - cselib_finish, cselib_process_insn, rtx_equal_for_cselib_p, - references_value_p): New functions. - (MAX_USELESS_VALUES, REG_VALUES): New macros. - (table, cselib_current_insn, next_unknown_value, cselib_nregs, - n_useless_values, reg_values, callmem, cselib_obstack, - cselib_startobj, empty_vals, empty_elt_lists, empty_elt_loc_lists): - New static variables. - * varray.h (union varray_data_tag): New elt te. - (VARRAY_ELT_LIST_INIT, VARRAY_ELT_LIST): New macros. - * Makefile.in (reload1.o, loop.o, simplify-rtx.o, alias.o): Update - dependencies. - -2000-03-14 Nick Clifton - - * gcc.c (do_spec_1): Catch the case where %* is used in a - substitution pattern, but it has not been initialized. - Issue a meaningful error message if an unrecognized operator - is encountered in a spec string. - -2000-03-14 Richard Earnshaw - - * function.c (prepare_function_start): Correctly initialize - cfun->stack_alignment_needed. - -2000-03-14 Zack Weinberg - - * cppfiles.c (find_include_file): Don't assume nshort is a - substring of name. - -Tue Mar 14 08:42:21 2000 Jeffrey A Law (law@cygnus.com) - - * configure.in (hppa configurations): Add pa32-regs.h to the - list of tm files as appropriate. - * configure: Rebuilt. - * pa.c (compute_frame_size): Remove explicit knowledge about FP - register numbering. - (hppa_expand_prologue, hppa_expand_epilogue): Likewise. - (fmpyaddoperands, fmpysuboperands): Likewise. - * pa.h: Remove various definitions which depend on knowing - how registers are numbered. - * pa32-regs.h: New file with PA32 register numbering specific - definitions. - -2000-03-14 Richard Henderson - - * regmove.c (combine_stack_adjustments): New. - (stack_memref_p, single_set_for_csa): New. - (free_csa_memlist, record_one_stack_memref): New. - (try_apply_stack_adjustment): New. - (combine_stack_adjustments_for_block): New. - * rtl.h (combine_stack_adjustments): Declare. - * toplev.c (rest_of_compilation): Call it. - - * i386.md: Revert 2000-01-16 change. - -2000-03-14 Martin v. Löwis - - * gccbug.in: Add web category, gcc specific classes. - -2000-03-14 Nathan Sidwell - - * stor-layout.c (finalize_record_size): Fix typo. - -2000-03-14 Stan Shebs - - * c-typeck.c (c_alignof): Error on incomplete types. - * extend.texi (Alignment): Document this. - -2000-03-13 Zack Weinberg - - * cppfiles.c: Include mkdeps.h. - (find_include_file, read_include_file): Remove _cpp_ prefix - from name, make static. - (_cpp_execute_include): New function, broken out of - do_include. - - * cpplib.c: Don't include mkdeps.h. - (struct directive): Remove type field. Reorder entries. The - function takes only one argument. - (struct if_stack): Make type field an int. - (directive_table): Rename to dtable. Generate it, the - prototypes of the directive handlers, and the enum for the - directive numbers, from a template macro. - (do_ifndef, do_include_next, do_import): New functions. - (do_define, do_include, do_endif, do_ifdef, do_if, do_else, - do_undef, do_line, do_elif, do_error, do_pragma, do_warning, - do_ident, do_assert, do_unassert, do_sccs): Take only one - argument. - (do_sccs): Define always, but alter behavior based on - SCCS_DIRECTIVE. - (_cpp_handle_directive, consider_directive_while_skipping): - Restructure for new directive table layout. - - (pass_thru_directive): Take a directive number, not a pointer - to a struct directive. - (parse_include): New function, broken out of do_include. - (do_include, do_import, do_include_next): Use parse_include - and _cpp_execute_include. - (do_elif, do_else): Test for T_ELSE specifically when checking - for #elif/#else after #else. - (parse_ifdef): New function, broken out of do_ifdef. - (validate_else): Expect a name arg without a leading #. - (if_directive_name): Delete. - (cpp_define, cpp_assert, cpp_undef, cpp_unassert): Call - directive handlers with only one argument. - - * cpphash.h: Update prototypes. - (enum node_type): Remove entries for directives. - * Makefile.in: Update dependencies. - - * cpphash.c (dump_hash_helper): Only dump nodes of type - T_MACRO. Emit a newline after each definition. - -2000-03-14 Martin v. Löwis - - * gccbug.in: New file. - * configure.in (all_outputs): Add gccbug. - * Makefile.in (install-common): Install gccbug. - (GCCBUG_INSTALL_NAME): New variable. - * configure: Rebuilt. - -2000-03-13 Jason Merrill - - * function.c (put_var_into_stack): Use type_for_mode to calculate - part_type. Use MEM_SET_IN_STRUCT_P. - * expr.c (store_field): Handle CONCAT. - (store_constructor): Use fields_length. - * tree.c (fields_length): New fn. - * tree.h: Declare it. - -2000-03-13 Zack Weinberg - - * Makefile.in (LIBCPP_OBJS): Add cpplex.o. - (cpplex.o): New target. - * po/POTFILES.in: Add cpplex.c. - - * cpplex.c (_cpp_grow_token_buffer, null_cleanup, - cpp_push_buffer, cpp_pop_buffer, cpp_scan_buffer, - cpp_expand_to_buffer, cpp_buf_line_and_col, cpp_file_buffer, - skip_block_comment, skip_line_comment, skip_comment, - copy_comment, _cpp_skip_hspace, _cpp_skip_rest_of_line, - _cpp_parse_name, skip_string, parse_string, - _cpp_parse_assertion, cpp_get_token, cpp_get_non_space_token, - _cpp_get_directive_token, find_position, - _cpp_read_and_prescan, _cpp_init_input_buffer): Move here. - (maybe_macroexpand, _cpp_lex_token): New functions. - - * cpplib.c (SKIP_WHITE_SPACE, eval_if_expr, parse_set_mark, - parse_goto_mark): Delete. - (_cpp_handle_eof): New function. - (_cpp_handle_directive): Rename from handle_directive. - (_cpp_output_line_command): Rename from output_line_command. - (do_if, do_elif): Call _cpp_parse_expr directly. - * cppfiles.c (_cpp_read_include_file): Don't call - init_input_buffer here. - * cpphash.c (quote_string): Move here, rename _cpp_quote_string. - * cppexp.c (_cpp_parse_expr): Diddle parsing_if_directive - here; pop the token_buffer and skip the rest of the line here. - * cppinit.c (cpp_start_read): Call _cpp_init_input_buffer - here. - - * cpphash.h (CPP_RESERVE, CPP_IS_MACRO_BUFFER, ACTIVE_MARK_P): - Define here. - (CPP_SET_BUF_MARK, CPP_GOTO_BUF_MARK, CPP_SET_MARK, - CPP_GOTO_MARK): New macros. - (_cpp_quote_string, _cpp_parse_name, _cpp_skip_rest_of_line, - _cpp_skip_hspace, _cpp_parse_assertion, _cpp_lex_token, - _cpp_read_and_prescan, _cpp_init_input_buffer, - _cpp_grow_token_buffer, _cpp_get_directive_token, - _cpp_handle_directive, _cpp_handle_eof, - _cpp_output_line_command): Prototype them here. - * cpplib.h (enum cpp_token): Add CPP_MACRO. - (CPP_RESERVE, get_directive_token, cpp_grow_buffer, - quote_string, output_line_command): Remove. - -2000-03-13 Bernd Schmidt - - * stmt.c (expand_end_case): RANGE may be signed, and when checking - whether it is too large we must also verify that it isn't negative. - -2000-03-13 Jakub Jelinek - - * config/sparc/sparc.md: Remove all traces of TARGET_LIVE_G0. - (movsi_zero_liveg0): Remove. - (movsf_insn_novis_liveg0): Remove. - (negsi2): Remove. - (negsi2_not_liveg0): Rename to negsi2. - (one_cmplsi2): Remove. - (one_cmplsi2_not_liveg0): Rename to one_cmplsi2. - (one_cmplsi2_liveg0): Remove. - * config/sparc/sparc.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE, - MASK_LIVE_G0, MASK_BROKEN_SAVERESTORE): Remove. - (CONDITIONAL_REGISTER_USAGE): Remove TARGET_LIVE_G0 if. - (PREDICATE_CODES): Remove zero_operand. - * config/sparc/sparc.c: Remove all traces of TARGET_LIVE_G0 and - TARGET_BROKEN_SAVERESTORE. - (zero_operand): Remove. - * config/sparc/splet.h (SUBTARGET_SWITCHES): Remove -mlive-g0, - -mno-live-g0, -mbroken-saverestore and -mno-broken-saverestore - options. - (SUBTARGET_OVERRIDE_OPTIONS): Remove. - * config/sparc/linux-aout.h (TARGET_LIVE_G0, - TARGET_BROKEN_SAVERESTORE): Remove. - * config/sparc/linux.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): - Remove. - * config/sparc/linux64.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): - Remove. - * config/sparc/sol2.h (TARGET_LIVE_G0, TARGET_BROKEN_SAVERESTORE): - Remove. - - * config/sparc/sparc.md (return_df_no_fpu): New pattern. - -2000-03-13 Zack Weinberg - - * cpplib.c (do_pragma_implementation): Fix off-by-one error - truncating a string. Don't assume tokens are nul terminated. - Problem noted by Andreas Jaeger - -2000-03-13 Jason Merrill - - * dwarf2out.c (add_name_and_src_coords_attributes): Only add - DW_AT_MIPS_linkage_name for TREE_PUBLIC decls. - (ASM_OUTPUT_DWARF_ADDR_CONST): Don't output trailing newline. - -2000-03-13 Richard Earnshaw - - * stor-layout.c (new_record_layout_info): Fix typo inside ifdef - STRUCTURE_SIZE_BOUNDARY. - -2000-03-13 Mark Mitchell - - * tree.h (record_layout_info_s): New structure. - (record_layout_info): New type. - (new_record_layout_info): New function. - (layout_field): Likewise. - (finish_record_layout): Likewise. - * stor-layout.c (layout_record): Remove. - (new_record_layout_info): New function. - (layout_field): New function, broken out from layout_record. - (finalize_record_size): Likewise. - (compute_record_mode): Likewise. - (finalize_type_size): New function, broken out from layout_type. - (finish_record_layout): Likewise. - (layout_type): Use them. - -2000-03-12 Zack Weinberg - - * cpphash.c: Don't include version.h. - (special_symbol) [case T_VERSION]: Look for the string in - hp->value.cpval; don't use version_string. - * cppinit.c (initialize_builtins): Set hp->value.cpval for - __VERSION__ to version_string. - * Makefile.in (cpphash.o): Update deps. - -2000-03-12 Zack Weinberg - - Convert cpplib to use libiberty/hashtab.c. - - * cpplib.h (struct cpp_reader): Make hashtab and - all_include_files of type 'struct htab *'. Delete HASHSIZE - and ALL_INCLUDE_HASHSIZE macros. - - * cpphash.h: Update prototypes. - (struct hashnode): Remove next, prev, and bucket_hdr members. - Make length a size_t. Add hash member. - (struct ihash): Remove next member. Add hash member. Make - name a flexible array member. - - * cppfiles.c: Include hashtab.h. - (include_hash): Delete. - (IHASHSIZE): New macro. - (hash_IHASH, eq_IHASH, _cpp_init_include_hash): New functions. - (cpp_included): Do the hash lookup here. - (_cpp_find_include_file): Rewrite. - (cpp_read_file): Put the "fake" hash entry into the hash - table. Honor the control_macro, if it turns out we've seen - the file before. Don't push the buffer here. - (_cpp_read_include_file): Push the buffer here. - (OMODES): New macro. Use it whenever we call open(2). - - * cpphash.c: Include hashtab.h. - (hash_HASHNODE, eq_HASHNODE, del_HASHNODE, dump_hash_helper, - _cpp_init_macro_hash, _cpp_dump_macro_hash, _cpp_make_hashnode, - _cpp_lookup_slot): New functions. - (HASHSIZE): new macro. - (hashf, _cpp_install, _cpp_delete_macro): Delete. - (_cpp_lookup): Use hashtab.h routines. - - * cppinit.c: Include hashtab.h. - (cpp_reader_init): Call _cpp_init_macro_hash and - _cpp_init_include_hash. Don't allocate hashtab directly. - (cpp_cleanup): Just call htab_delete on pfile->hashtab and - pfile->all_include_files. - (initialize_builtins): Use _cpp_make_hashnode and - htab_find_slot to add hash entries. - (cpp_finish): Just call _cpp_dump_macro_hash. - * cpplib.c: Include hashtab.h. - (do_define): Use _cpp_lookup_slot and _cpp_make_hashnode to - create hash entries. - (do_pragma_poison, do_assert): Likewise. - (do_include): Don't push the buffer here. Don't increment - system_include_depth unless _cpp_read_include_file succeeds. - (do_undef, do_unassert): Use _cpp_lookup_slot and htab_clear_slot - or htab_remove_elt. - (do_pragma_implementation): Use alloca to create copy. - - * Makefile.in: Update dependencies. - -2000-03-12 Kaveh R. Ghazi - - * cppinit.c (cl_directive_handler): More K&R fixing. - -Sat Mar 11 23:54:26 2000 Jim Wilson - - * config/ia64/ia64.c (ia64_compute_frame_size): Align size to - STACK_BOUNDARY. - * config/ia64/ia64.h (REGISTER_MOVE_COST): Add missing parentheses. - -2000-03-11 Kaveh R. Ghazi - - * cppinit.c (no_arg, no_ass, no_dir, no_fil, no_mac, no_pth): - Change from char[] to macros. - -2000-03-12 Neil Booth - - * cppinit.c (cpp_start_read): Update indirect function - call to K&R C. - -Sat Mar 11 16:18:12 2000 Jim Wilson - - * config/ia64/ia64.h (ADDITIONAL_REGISTER_NAMES): Fix typo in loc79 - entry. - - * config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/ia64/ia64.md, config/ia64/xm-ia64.h: Fix copyright messages. - -2000-03-11 Neil Booth - - * cppinit.c (struct pending option): Replace undef with a - pointer to a directive handling routine. - (struct cpp_pending): Replace separate assert_ and define_ - lists with one directive_ list. - (new_pending_define): Rename new_pending_directive. Extra - argument is the directive's handling routine. - (handle_option): Update to use new_pending_directive. - -2000-03-11 Neil Booth - - * cppfiles.c (file_cleanup, _cpp_find_include_file, - remap_filename, _cpp_read_include_file, actual_directory, - hack_vms_include_specification): Replace bcopy(), index() etc - calls. Add casts to some allocations. Make some variables - pointers to const [unsigned] char. - * cpphash.c (_cpp_install, macro_cleanup, collect_expansion, - collect_formal_parameters): Similarly. - * cppinit.c (struct pending_option, append_include_chain, - cpp_options_init, cpp_reader_init, initialize_standard_includes, - cpp_start_read, new_pending_define, handle_option): Similarly. - * cpplib.c (cpp_define, copy_comment, do_define, do_include, - do_undef, do_error, do_warning, do_pragma, do_pragma_once, - do_pragma_implementation, detect_if_not_defined, - do_ifdef, skip_if_group, cpp_get_token, parse_string, - do_assert, do_unassert): Similarly. - * cpplib.h (cpp_buffer, cpp_options): Update types. Update - function prototypes. - * mkdeps.c (deps_add_target, deps_add_dep): cast allocations. - -2000-03-10 Richard Henderson - - * builtins.c (expand_builtin_strlen): Revert last change. - Use emit_insn_before if we're at the beginning of a sequence. - -2000-03-10 Jason Merrill - - * builtins.c (expand_builtin_strlen): Make sure that we have something - at the beginning of the sequence. - - * toplev.c (rest_of_compilation): Also set TREE_NOTHROW for - deferred inlines. - - * invoke.texi (C++ Dialect Options): Document -fno-enforce-eh-specs. - -2000-03-10 Richard Henderson - - * except.c (can_throw): Use INTVAL on a CONST_INT. - (reachable_handlers): Likewise. - * flow.c (count_basic_blocks, find_basic_blocks_1): Likewise. - -2000-03-10 Andreas Jaeger - - * config/mips/linux.h: Undefine MD_EXEC_PREFIX and - MD_STARTFILE_PREFIX since those are not needed on linux. - (ASM_FILE_START): New, from mips/gnu.h. - -2000-03-09 Richard Henderson - Alex Samuel and others - - * Makefile.in (ssa.o): New rule. - (OBJS): Add ssa.o. - (STAGESTUFF): Add *.ssa and *.ussa. - (mostlyclean): Delete *.ssa, *.ussa, */*.ssa, */*.ussa. - * rtl.def (PHI): New RTL expression. - * rtl.h (clear_log_links): New declaration. - (convert_to_ssa): Likewise. - (convert_from_ssa): Likewise. - * flow.c (split_edge): If the entry node falls through to the - split edge's source block, split the entry edge. - (clear_log_links): New function. - * toplev.c (ssa_dump): New variable. - (flag_ssa): Likewise. - (f_options): Add "ssa". - (compile_file): Create SSA dump files. - (rest_of_compilation): Go to and from SSA if enabled. - (decide_d_option): Handle -de for SSA dump files. - * ssa.c: New file. - -Thu Mar 9 20:01:38 2000 Jim Wilson - - * expr.c (expand_assignment): For a CALL_EXPR, special case PARM_DECL - same as VAR_DECL. - -2000-03-09 Benjamin Kosnik - - * config/alpha/linux.h (WCHAR_TYPE): Make consistent. - -Thu Mar 9 18:10:02 2000 Jeffrey A Law (law@cygnus.com) - - * config/pa/pa-hpux10.h (LIB_SPEC): Correct typo in !p case. - (MD_STARTFILE_PREFIX_1): New macro. - -2000-03-09 Robert Lipe - - * config/ia64/ia64.c: Include system.h. - -2000-03-09 Jason Merrill - - * except.c (nothrow_function_p): If -fno-exceptions, just return. - (init_eh_nesting_info): Likewise. - - * tree.h (struct tree_common): Rename raises_flag to nothrow_flag. - (TREE_NOTHROW): Rename from TREE_RAISES. - * toplev.c (rest_of_compilation): Set it. - * print-tree.c (print_node): Adjust. - * tree.c (stabilize_reference, build, build1): Don't set TREE_RAISES. - (stabilize_reference_1, get_unwidened, get_narrower): Likewise. - * calls.c (emit_call_1): Add 'nothrow' parm. Add - REG_EH_REGION note as appropriate. - (libfunc_nothrow): New fn. - (emit_library_call, emit_library_call_value): Use it. - (expand_call): Check TREE_NOTHROW. - - * varasm.c (make_decl_rtl): Skip initial '*' when setting - DECL_ASSEMBLER_NAME. - -2000-03-09 Andreas Jaeger - - * mips/linux.h (NO_IMPLICIT_EXTERN_C): Define. - (TARGET_MEM_FUNCTIONS): Define. - -2000-03-09 Jason Merrill - - * i386.c (ix86_valid_type_attribute_p): Use compare_tree_int. - - * except.c (can_throw): See through a SEQUENCE. - (nothrow_function_p): New fn. - * except.h: Declare it. - * function.c (current_function_nothrow): New var. - (prepare_function_start): Initialize it. - * output.h: Declare it. - * toplev.c (rest_of_compilation): Set it. - * dwarf2out.c (dwarf2out_begin_prologue): Use it. - -2000-03-09 Zack Weinberg - - * cpphash.c (collect_formal_parameters): strncmp returns 0 for - match. (cpp_compare_defs): Count the nul separator when - advancing over argument names. - -2000-03-09 Bernd Schmidt - - * recog.c (preprocess_constraints): Matching constraints affect - same alternative/different operand, not same operand/different - alternative. - - * reload1.c (eliminate_regs_in_insn): Handle additions of eliminable - register and a constant specially. - -2000-03-08 Kaveh R. Ghazi - - * libgcc2.h: New file. - * libgcc2.c: Move macros, typedefs and prototypes to libgcc2.h. - -Wed Mar 8 16:19:42 2000 Jim Wilson - - * configure.in (ia64*-*-elf*, ia64*-*-linux*): New. - * configure: Regenerate. - * config/ia64: New. - -2000-03-08 Zack Weinberg - - * Makefile.in (LIBCPP_DEPS): New macro. - (cpplib.o, cpphash.o, cpperror.o, cppexp.o, cppfiles.o): Use - it to declare deps. - * cpperror.c: Include cpphash.h. - * cppexp.c: Include cpphash.h. Remove MULTIBYTE_CHARS - dingleberry. - (lex): Don't use CPP_WARN_UNDEF. - (_cpp_parse_expr): Return an int, the truth value. - * cppfiles.c: Include cpphash.h. - (_cpp_merge_include_chains): Move to cppinit.c and make static. - * cppinit.c (include_defaults_array): Disentangle. - (cpp_cleanup): Don't free the if stack here. - (cpp_finish): Pop off all buffers, not just one. - * cpplib.c (eval_if_expr): Return int. - (do_xifdef): Rename do_ifdef. - (handle_directive): Don't use CPP_PREPROCESSED. - (cpp_get_token): Don't use CPP_C89. - * fix-header.c: Don't use CPP_OPTIONS. - - * cpplib.h: Move U_CHAR, enum node_type, struct - file_name_list, struct ihash, is_idchar, is_idstart, - is_numchar, is_numstart, is_hspace, is_space, CPP_BUF_PEEK, - CPP_BUF_GET, CPP_FORWARD, CPP_PUTS, CPP_PUTS_Q, CPP_PUTC, - CPP_PUTC_Q, CPP_NUL_TERMINATE, CPP_NUL_TERMINATE_Q, - CPP_BUMP_BUFFER_LINE, CPP_BUMP_LINE, CPP_PREV_BUFFER, - CPP_PRINT_DEPS, CPP_TRADITIONAL, CPP_PEDANTIC, and prototypes - of _cpp_simplify_pathname, _cpp_find_include_file, - _cpp_read_include_file, and _cpp_parse_expr to cpphash.h. - Move struct if_stack to cpplib.c. Move struct cpp_pending to - cppinit.c. - Change all uses of U_CHAR to be unsigned char instead. - Delete CPP_WARN_UNDEF, CPP_C89, and CPP_PREPROCESSED. - -2000-03-08 Jason Merrill - - * dwarf2out.c (dw_fde_struct): Add 'nothrow'. - (dwarf2out_begin_prologue): Set it. - (output_call_frame_info): Don't emit EH unwind info for leaves. - - * flow.c (count_basic_blocks, find_basic_blocks_1): A rethrow - can occur outside of an EH region. - * except.c: Correct comments about rethrow behavior. - (rethrow_symbol_map): Do nothing if !flag_new_exceptions. - -2000-03-08 Andrew MacLeod - - * flow.c (make_edges): Always call make_eh_edge for calls. - -2000-03-08 Zack Weinberg - - * cpplib.h (parse_underflow_t, CPP_NULL_BUFFER): Delete. - (struct cpp_buffer): Remove fname and underflow fields. - (struct cpp_reader): Remove get_token field. - (struct include_hash): Rename to struct ihash. Add typedef to - IHASH. - (struct if_stack): Remove fname field. - (IF_STACK_FRAME): Rename to IF_STACK. - - * cpperror.c (print_containing_files): Trust that there are no - macro buffers below the top file buffer. - * cppfiles.c: Replace all references to 'struct include_hash' - with 'IHASH'. Rename initialize_input_buffer to - init_input_buffer. Don't set or reference cpp_buffer->fname, - use buffer->ihash->name instead. - * cpphash.c (special_symbol): Use cpp_file_buffer. Use NULL - not CPP_NULL_BUFFER. - * cppinit.c: Use NULL not CPP_NULL_BUFFER, IF_STACK not - IF_STACK_FRAME, IHASH not struct include_hash. - * cpplib.c: Rename eval_if_expression to eval_if_expr. Remove - null_underflow. Use IF_STACK not IF_STACK_FRAME, IHASH not - struct include_hash, NULL not CPP_NULL_BUFFER. Remove all - references to cpp_buffer->fname (delete entirely, or use - ->ihash->name instead) and IF_STACK->fname. - (cpp_push_buffer): Don't set new->underflow. - (do_include): Use cpp_file_buffer. - - * cpphash.c (collect_formal_parameters): Remove duplicate - increment of argslen. Pedwarn in C99 mode if __VA_ARGS__ is - used as a macro argument name. Don't append "..." to namebuf - for varargs macros. After we're done scanning, go through - namebuf and make it NUL separated, not comma separated. - (_cpp_compare_defs): Remove register tag from variables. - Expect defn->argnames to be NUL separated. - (_cpp_dump_definition): Expect defn->argnames to be NUL - separated and in forward order. - * cpphash.h: Update documentation of argnames field. - -2000-03-08 Richard Henderson - - * builtins.c (expand_builtin_strlen): Be prepared for strlensi - to fail. Don't pre-expand the source operand. - - * i386.md (strlensi): Initialize eoschar and align before use. - -2000-03-08 Jason Merrill - - * expr.c (expand_expr, case ARRAY_REF): Still check for missing - CONSTRUCTOR element. - -2000-03-08 Gavin Romig-Koch - - * mips.c (mips_expand_prologue): If the last - named argument is the vararg marker "va_list", treat it as - an unnamed argument. - -2000-03-08 Clinton Popetz - - * dbxout.c (dbxout_parms): When correcting for promoted - big-endian parameters, use the mode of the DECL_RTL rather - than UNITS_PER_WORD. - -2000-03-08 Nathan Sidwell - - * c-common.h (make_fname_decl): Declare. - * c-common.c (make_fname_decl): Define. - (declare_hidden_char_array): Remove. - (declare_function_name): Use make_fname_decl. - * c-decl.c (c_make_fname_decl): New function. - (init_decl_processing): Set make_fname_decl. - -Tue Mar 7 23:50:31 2000 Jeffrey A Law (law@cygnus.com) - - * cccp.c (handle_directive): Initialize backslash_newlines_p. - -2000-03-07 Philipp Thomas - - * po/POTFILES.in: Remove cppalloc.c from file list. - -2000-03-07 Steve Chamberlain - - * pj.c (pj_expand_prologue): current_function->args_info is - now current_function_args_info. - - * pj.h (STORE_FLAG_VALUE, USER_LABEL_PREFIX, - LOCAL_LABEL_PREFIX, ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Define. - -2000-03-08 Michael Hayes - - * config/c4x/c4x.h (PUT_SDB_TYPE): Define so that the type info is - output as hexadecimal rather than the default octal. - -2000-03-07 Zack Weinberg - - * cpphash.c (special_symbol): Fix thinko in previous commit. - -2000-03-07 Neil Booth - - * cppexp.c (struct operation, left_shift, right_shift, - cpp_parse_expr): Change some "char"s to "U_CHAR"s, and some - "int"s to "unsigned int"s. - * cpplib.c (detect_if_not_defined, do_assert, do_unassert): - Similarly. - * cpplib.h: Update for above. - * mkdeps.c (deps_init, deps_calc_target): Cast pointers - returned from allocations. - - * cppinit.c (opt_comp, parse_options): New functions. - (handle_option): Use parse_option to parse a single command - line option, that possibly takes an argument. - (cpp_handle_options): Sort the array of command line options on - first invocation (non-ASCII hosts only). - (print_help): Update. - -2000-03-07 Zack Weinberg - - * mkdeps.c (munge): Fix off-by-one bug and inconsistencies in - backslash counting loops. Problem noted by Matt Kraai . - - * cppfiles.c (_cpp_find_include_file): Make sure ih->name is - initialized. - * cppinit.c (cpp_cleanup): Free imp->nshort also. - - * cpperror.c (cpp_print_containing_files, - cpp_print_file_and_line, v_cpp_message): Rename to - print_containing_files, print_file_and_line, and v_message. - * cppexp.c (cpp_parse_expr, cpp_parse_escape, cpp_lex): Rename - to _cpp_parse_expr, parse_escape, and lex. - (parse_charconst): Remove broken multibyte support. - * cppfiles.c (include_hash): Make static. - (cpp_included): New function. - (merge_include_chains, find_include_file, finclude, - simplify_pathname): Rename to _cpp_merge_include_chains, - _cpp_find_include_file, _cpp_read_include_file, and - _cpp_simplify_pathname. - * cpphash.c (cpp_lookup, free_definition, delete_macro, - cpp_install, create_definition, macroexpand, compare_defs, - dump_definition): Rename to _cpp_lookup, _cpp_free_definition, - _cpp_delete_macro, _cpp_install, _cpp_create_definition, - _cpp_macroexpand, _cpp_compare_defs, and _cpp_dump_definition. - * cppinit.c (cpp_handle_option): Rename to handle_option, make - static. - * cpplib.c: Remove extern prototype of cpp_parse_expr. - - * cpphash.h: Update prototypes. - * cpplib.h: Likewise. Prototype _cpp_parse_expr here. - -2000-03-07 Andrew Haley - - * config/mips/mips.h (PTRDIFF_TYPE): Revert broken change; - PTRDIFF_TYPE should be based solely on Pmode. - (SIZE_TYPE): ditto. - -2000-03-07 Kaveh R. Ghazi - - * rtl.h (rtunion_def): Constify member `rtstr'. - (emit_line_note_after, emit_line_note, emit_line_note_force, - emit_note, decode_asm_operands): Constify. - - * cse.c (canon_hash): Likewise. - - * dbxout.c (dbxout_block): Likewise. - - * diagnostic.c (file_and_line_for_asm, v_error_for_asm, - v_warning_for_asm): Likewise. - - * dwarfout.c (function_start_label): Likewise. - - * emit-rtl.c (emit_line_note_after, emit_line_note, emit_note, - emit_line_note_force): Likewise. - - * final.c (last_filename, asm_insn_count, final_scan_insn, - output_source_line): Likewise. - - * function.h (struct emit_status): Likewise. - - * gcse.c (hash_expr_1): Likewise. - - * genattr.c (gen_attr, main): Likewise. - - * genattrtab.c (struct function_unit, current_alternative_string, - write_attr_valueq, n_comma_elts, next_comma_elt, attr_eq, - attr_numeral, check_attr_test, check_attr_value, - convert_set_attr_alternative, convert_set_attr, - compute_alternative_mask, simplify_by_exploding, gen_attr, - gen_unit): Likewise. - - * genflags.c (gen_insn): Likewise. - - * gengenrtl.c (type_from_format): Likewise. - - * genopinit.c (gen_insn): Likewise. - - * genoutput.c (n_occurrences, process_template, process_template): - Likewise. - - * ggc-page.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): - Likewise. - - * ggc-simple.c (ggc_set_mark, ggc_mark_if_gcable, ggc_get_size): - Likewise. - - * ggc.h (ggc_mark_string, ggc_mark, ggc_mark_if_gcable, - ggc_set_mark, ggc_get_size): Likewise. - - * objc/objc-act.c (build_module_descriptor, finish_objc): Likewise. - - * optabs.c (init_one_libfunc): Likewise. - - * output.h (assemble_start_function): Likewise. - - * recog.c (decode_asm_operands): Likewise. - - * toplev.c (rest_of_compilation): Likewise. - - * tree.h (emit_line_note_after, emit_line_note, - emit_line_note_force): Likewise. - - * varasm.c (asm_output_bss, asm_output_aligned_bss, - asm_emit_uninitialised, assemble_start_function, - assemble_variable, const_hash, compare_constant_1, - find_pool_constant, mark_constant_pool, assemble_alias): Likewise. - - * xcoffout.h (DBX_FINISH_SYMBOL): Likewise. - - * alpha/alpha.md (call_vms, call_value_vms): Likewise. - - * arm/aof.h (ASM_OUTPUT_ASCII): Likewise. - - * arm/aout.h (ASM_OUTPUT_ASCII): Likewise. - - * arm/arm-protos.h (output_ascii_pseudo_op, arm_dllexport_name_p, - arm_dllimport_name_p): Likewise. - - * arm/arm.c (arm_encode_call_attribute, output_ascii_pseudo_op): - Likewise. - - * arm/arm.h (ASM_OUTPUT_MI_THUNK): Likewise. - - * arm/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * arm/pe.c (arm_dllexport_name_p, arm_dllimport_name_p, - arm_mark_dllexport, arm_mark_dllimport, - arm_pe_encode_section_info): Likewise. - - * arm/telf.h (ASM_OUTPUT_DEF_FROM_DECLS, - ASM_FINISH_DECLARE_OBJECT): Likewise. - - * arm/thumb.c (thumb_function_prologue): Likewise. - - * arm/thumb.h (ASM_OUTPUT_ASCII): Likewise. - - * avr/avr.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * clipper/clix.h (ASM_OUTPUT_ASCII): Likewise. - - * fx80/fx80.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/cygwin.h (ASM_OUTPUT_SECTION_NAME): Likewise. - - * i386/freebsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * i386/i386-interix.h (ASM_OUTPUT_LIMITED_STRING, - ASM_OUTPUT_ASCII, ASM_OUTPUT_SECTION_NAME): Likewise. - - * i386/i386-protos.h (asm_output_function_prefix): Likewise. - - * i386/i386.c (asm_output_function_prefix): Likewise. - - * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/osfrose.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/sco5.h (ASM_FINISH_DECLARE_OBJECT, - ASM_OUTPUT_LIMITED_STRING, ASM_OUTPUT_ASCII, - ASM_OUTPUT_SECTION_NAME): Likewise. - - * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. - - * i860/paragon.h (ASM_OUTPUT_ASCII): Likewise. - - * i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. - - * m32r/m32r.c (m32r_encode_section_info): Likewise. - - * mcore-elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mcore/mcore.c (mcore_encode_section_info): Likewise. - - * mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mips/iris6.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * mips/mips.h (ASM_OUTPUT_IDENT): Likewise. - - * mips/mips.md (movdi, movsi): Likewise. - - * mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * netbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * openbsd.h (ASM_FINISH_DECLARE_OBJECT): Likewise. - - * ptx4.h (ASM_FINISH_DECLARE_OBJECT, ASM_OUTPUT_LIMITED_STRING, - ASM_OUTPUT_ASCII): Likewise. - - * rs6000/rs6000.c (rs6000_allocate_stack_space, output_epilog, - output_mi_thunk, output_toc): Likewise. - - * rs6000/rs6000.md (movsi): Likewise. - - * rs6000/sysv4.h (ASM_OUTPUT_INT, ASM_OUTPUT_SECTION_NAME): Likewise. - - * tahoe/harris.h (ASM_OUTPUT_ASCII): Likewise. - - * v850/v850.c (print_operand, print_operand_address, - v850_encode_data_area): Likewise. - -2000-03-07 Clinton Popetz - - * config/mips/mips.md (zero_extendsidi2): Always force operand - one to memory for mips16. - -Mon Mar 6 15:22:29 2000 Richard Kenner - - * tree.h (INT_CST_LT, INT_CST_LT_UNSIGNED): Remove unneeded casts. - (struct tree_int_cst): int_cst_low is now unsigned HOST_WIDE_INT. - (attribute_hash_list, type_hash_canon): hashcode is now unsigned. - (type_hash_lookup, type_hash_add, type_hash_list): Likewise. - (min_precision): Result is unsigned. - (add_double, neg_double, mul_double): Low word is unsigned. - (lshift_double, rshift_double, lrotate_double): Likewise. - (rrotate_double, div_and_round_double): Likewise. - (tree_floor_log2, compare_tree_int): New functions. - (preserve_rtl_expr_temps): New declaration. - * c-common.c (declare_hidden_char_array): Use compare_tree_int. - (decl_attributes): Use tree_log2 to find alignment. - Check for TREE_INT_CST_HIGH for format args. - (min_precision): Now unsigned. - Use tree_floor_log2. - (truthvalue_conversion): Delete long-disabled code. - * c-decl.c (finish_struct): Clean up tests on field width. - (finish_function): Use compare_tree_int. - * c-pragma.c (handle_pragma_token): Use tree_log2 for alignment. - * c-typeck.c (comptypes): Use tree_int_cst_equal. - (default_conversion, digest_init): Use compare_tree_int. - (build_binary_op): Use integer_all_onesp and compare_tree_int. - Fix type errors in forming masks. - * calls.c (initialize_argument_information): Use compare_tree_int. - * dbxout.c (dbxout_type): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. - * except.c (expand_eh_region_start_tree): Use compare_tree_int. - * expr.c (is_zeros_p, case INTEGER_CST): Use integer_zerop. - (store_field): Use compare_tree_int. - (expand_expr, case CONSTRUCTOR): Use TYPE_SIZE_UNIT. - (expand_expr, case ARRAY_REF): Use compare_tree_int. - (do_jump, case BIT_AND_EXPR): Use tree_floor_log2. - (do_store_flag): Use compare_tree_int. - * fold-const.c (encode, decode): Low part is always unsigned. - (force_fit_type, add_double, neg_double, mul_double): Likewise. - (lshift_double, rshift_double, lrotate_double): Likewise. - (rrotate_double, div_and_round_double, int_const_binop): Likewise. - (fold_convert): Use compare_tree_int. - (operand_equal_p, case INTEGER_CST): Use tree_int_cst_equal. - (invert_truthvalue, case INTEGER_CST): Likewise. - (fold): Use compare_tree_int; add casts for unsigned TREE_INT_CST_LOW. - * mkdeps.c (deps_dummy_targets): Make I unsigned. - * rtl.h (add_double, neg_double, mul_double): Low words are unsigned. - (lshift_double, rshift_double, lrotate_double, rrotate_double): - Likewise. - * stmt.c (expand_decl): Use compare_tree_int and mode_for_size_tree. - (expand_end_case): Use compare_tree_int. - (estimate_case_costs): Cast TREE_INT_CST_LOW to HOST_WIDE_INT. - * stor-layout.c (mode_for_size_tree): Use compare_tree_int. - (layout_decl): Likewise. - (layout_record, layout_union): Make sizes unsigned. - (layout_type, case VOID_TYPE): TYPE_SIZE must be bitsizetype. - (layout_type, case QUAL_UNION_TYPE): Use compare_tree_int. - * tree.c (struct type_hash): hashcode is unsigned. - (build_type_attribute_variant, type_hash_list): Likewise. - (type_hash_lookup, type_hash_add, type_hash_canon): Likewise. - (attribute_hash_list, build_array_type, build_method_type): Likewise. - (build_complex_type): Likewise. - (real_value_from_int_cst): Remove unneeded casts. - (integer_all_onesp): Add casts. - (tree_floor_log2, compare_tree_int): New functions. - (build_index_type): Use tree_int_cst_sgn. - * varasm.c (assemble_variable): Use compare_tree_int. - -2000-03-06 Jason Merrill - - * cpphash.c (collect_expansion): Also catch ## at start of macro. - - * varasm.c (make_decl_rtl): Don't add a number to members of - local classes. - (make_function_rtl): Likewise. - -2000-03-06 Alexandre Oliva - - * gcse.c (compute_can_copy): Adjust if/else blocks from rth's - patch from 2000-01-28. - -2000-03-06 Clinton Popetz - - * config/sh/sh.c: (barrier_align): Handle a delay slot that is - filled with an insn from the jump target. - -2000-03-07 Michael Hayes - - * config/c4x/c4x-protos.h (c4x_global_name): Constify char *. - (c4x_external_ref): Likewise. - * config/c4x/c4x.c (struct name_list): Likewise. - -1999-12-16 Ben Collins - - * Makefile.in: Pass a new MULTILIB_EXCLUSIONS option as the sixth - argument to genmultilib. - * genmultilib: accept new MULTILIB_EXCLUSIONS option and output - the contents into the multilib.h header. - * gcc.c: Declare multilib_exclusions for the specs file. - (set_multilib_dir): Use it. - (print_multilib_info): Likewise. - * t-linux64: Declare arguments for new MULTILIB_EXCLUSIONS option - to pass to genmultilib. - -2000-03-06 Kaveh R. Ghazi - - * builtins.c (built_in_class_names, built_in_names): Constify a - char*. - - * gmon-sol2.c (monstartup, moncontrol): Cast ptrs to long, not - int. - (_mcleanup): Ensure value matches format specifier in sprintf. - - * cpphash.c (special_symbol): Don't needlessly cast away - const-ness. - - * cppinit.c (base_name): Delete unused prototype. - - * mkdeps.c (deps_init): Make definition K&R safe. - - * tree.h (built_in_class_names, built_in_names): Constify a - char*. - -2000-03-06 Jakub Jelinek - - * config/sparc/sparc.c (eligible_for_epilogue_delay): Accept - floating point instructions for epilogue delay. - - * config/sparc/sparc.h (ASM_ARCH64_SPEC): Pass -no-undeclared-regs - to gas if it supports .register pseudo. - - * real.h (MAX_LONG_DOUBLE_TYPE_SIZE): Define to - LONG_DOUBLE_TYPE_SIZE if not defined. - Use MAX_LONG_DOUBLE_TYPE_SIZE instead of - LONG_DOUBLE_TYPE_SIZE in preprocessor if clauses. - * real.c: Likewise. - * gengenrtl.c: Likewise. - * print-rtl.c: Likewise. - * rtl.c: Likewise. - * config/sparc/sol2-sld-64.h (TARGET_DEFAULT): Set - MASK_LONG_DOUBLE_128. - * config/sparc/sol2.h (TARGET_DEFAULT): Likewise. - * config/sparc/sp64-elf.h (TARGET_DEFAULT): Likewise. - * config/sparc/linux64 (TARGET_DEFAULT): Likewise. - (SUBTARGET_SWITCHES): Define. - (CPP_ARCH32_SPEC): Define __LONG_DOUBLE_128__ if compiling - with -mlong-double-128. - (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. - (MAX_LONG_DOUBLE_TYPE_SIZE): Define. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. - (CC1_SPEC): Include -mlong-double-{64,128} as needed. - * config/sparc/linux.h (SUBTARGET_SWITCHES): Define. - (CPP_SUBTARGET_SPEC): Define __LONG_DOUBLE_128__ if compiling - with -mlong-double-128. - (LONG_DOUBLE_TYPE_SIZE): Define depending on target_flags. - (MAX_LONG_DOUBLE_TYPE_SIZE): Define. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define depending on CPP macros. - * config/sparc/sparc.h (MASK_LONG_DOUBLE_128, - TARGET_LONG_DOUBLE_128): Define. - * config/sparc/linux-aout.h (LONG_DOUBLE_TYPE_SIZE): Remove. - * config/sparc/sparc.c (sparc_override_options): Disallow 64bit - long double on TARGET_ARCH64. - -2000-03-06 Mark Mitchell - - * function.c (free_temps_for_rtl_expr): Don't free slots - that have been pushed into a higher level. - - Revert this patch: - 2000-03-05 Mark Mitchell - -2000-03-05 Mark Mitchell - - * basic-block.h (ALLOCA_REG_SET): Remove. - (INITIALIZE_REG_SET): New macro. - * flow.c (update_life_info): Use it. - (calculate_global_regs_live): Likewise. - (propagate_block): Likewise. - * global.c (build_insn_chain): Likewise. - * haifa-sched.c (schedule_region): Likewise. - -2000-03-05 Stephane Carrez - - * dwarf2out.c (UNALIGNED_WORD_ASM_OP): Support 2 bytes pointer. - (ASM_OUTPUT_DWARF_ADDR_CONST): Use UNALIGNED_WORD_ASM_OP. - (DWARF_ARANGES_PAD_SIZE): New define. - (output_aranges): Use it to pad the address range header. - (DWARF_ROUND): Fix for non power of 2 rounding. - -2000-03-05 Jason Merrill - - * mkdeps.c (deps_calc_target): Remove incorrect 'const'. - -2000-03-05 Mark Mitchell - - * tree.def (RTL_EXPR): Update documentation. - * tree.h (RTL_EXPR_HAS_NO_SCOPE): New macro. - * expr.c (expand_expr): Handle RTL_EXPR_HAS_NO_SCOPE. - * function.c (preserve_rtl_expr_temp): New function. - (preserve_rtl_expr_temps): Likewise. - (preserve_rtl_expr_result): Use it. - - Revert this patch: - 2000-03-04 Mark Mitchell - -2000-03-04 Thomas Schuster - - * regmove.c (copy_src_to_dest) Do not create src->dest move - for unchanging destination. - -2000-03-04 Mark Mitchell - - * function.h (struct sequence_stack): Remove rtl_expr. - (struct emit_staus): Likewise. - (seq_rtl_expr): Remove. - * tree.h (free_temps_for_rtl_expr): Don't declare. - (start_sequence_for_rtl_expr): Likewise. - * rtl.h (preserve_rtl_expr_result): Likewise. - * emit-rtl.c (start_sequence): Don't set sequence_rtl_expr. - (start_sequence_for_rtl_expr): Remove. - (push_topmost_sequence): Don't save sequence_rtl_expr. - (pop_topmost_sequence): Remove comment about not restoring it. - (end_sequence): Don't set seq_rtl_expr. - (init_emit): Don't initialize it. - (mark_sequence_stack): Don't mark it. - (mark_emit_status): Likewise. - * except.c (protect_with_terminate): Use - start_sequence_for_rtl_expr, not start_sequence. - * expr.c (expand_expr, case RTL_EXPR): Don't call - preserve_rtl_expr_result or free_temps_for_rtl_expr. - * function.c (assign_stack_temp_for_type): Don't set rtl_expr. - (preserve_rtl_expr_result): Remove. - (free_temps_for_rtl_expr): Likewise. - (pop_temp_slots): Likewise. - (mark_temp_slot): Don't mark the rtl_expr. - * stmt.c (expand_start_stmt_expr): Use start_sequence, not - start_sequence_for_rtl_expr. - -2000-03-04 Zack Weinberg - - * mkdeps.c, mkdeps.h: New files. - * po/POTFILES.in: Add them. - * Makefile.in (LIBCPP_OBJS): Add mkdeps.o. - (cpplib.o, cppinit.o): Depend on mkdeps.h. - (mkdeps.o): New target. - - * cppfiles.c: Delete deps_output. - * cppinit.c: Include mkdeps.h. Delete known_suffixes, - OBJECT_SUFFIX, and base_name. - (cpp_cleanup): Use deps_free. Free ihash->name when clearing - the include hash. - (initialize_dependency_output): Use deps_init, - deps_add_target, deps_calc_target, and deps_add_dep. Remove - all the unnecessary string bashing. - (cpp_finish): Use deps_write. Remove an unnecessary nesting - level. - * cpplib.c (do_include): Use deps_add_dep. - * cpplib.h (struct cpp_reader): Replace deps_buffer, - deps_allocated_size, deps_size, deps_column members with - single pointer to a struct deps. Delete prototype of - deps_output. - - * cppinit.c: Fix thinko in previous patch. - -Sat Mar 4 11:32:30 2000 Richard Kenner - - * machmode.h (mode_for_size, smallest_mode_for_size): SIZE now signed. - * stor-layout.c (mode_for_size, smallest_mode_for_size): Likewise. - (mode_for_size_tree): New function. - (layout_decl, layout_type): Call it and clean up BLKmode checks. - * tree.h (mode_for_size_tree): New declaration. - - * toplev.c (debug_ignore_block): Mark arg BLOCK as possibly unused. - -2000-03-04 Jason Merrill - - * stmt.c (is_body_block): Move... - * dwarfout.c, dwarf2out.c: ...from here. - * tree.h: Declare it. - * emit-rtl.c (remove_unnecessary_notes): Don't remove the body block. - * final.c (final_start_function): Do call remove_unnecessary_notes - when scheduling. - -2000-03-03 Zack Weinberg - - * config/vax/xm-vms.h: Define OBJECT_SUFFIX and EXECUTABLE_SUFFIX. - - * cpplib.h (_dollar_ok): New macro. - (is_idchar, is_idstart): Use it. - (IStable): Rename to _cpp_IStable. Declare it const if - gcc >=2.7 or C99. Delete all references to FAKE_CONST. - (is_idchar, is_idstart, is_numchar, is_numstart, is_hspace, - is_space): Update for renamed IStable. - - * cppinit.c: Delete all references to FAKE_CONST and CAT - macros. Define init_IStable as empty macro if gcc >=2.7 or - C99. Change TABLE() to ISTABLE and hardcode name of table. - (cpp_start_read): Don't change the IStable based on - dollars_in_ident. - - * cpphash.c (unsafe_chars): Add pfile argument. All callers - changed. Handle '$' for char1 correctly. - * cpplib.c (cpp_get_token): Use is_numchar when parsing numbers. - - * cppexp.c (tokentab2): Make const. - (cpp_lex): Make toktab const. - * cppinit.c (include_defaults_array): Make const. - (initialize_standard_includes): Make default_include const. - -2000-03-03 Jason Merrill - - * dwarf2out.c (dwarf2out_frame_debug): Add cast to silence warning. - (dwarf2out_decl): Functions can now have DECL_IGNORED_P. - (gen_decl_die): Likewise. - * dwarfout.c (dwarfout_file_scope_decl): Likewise. - (output_decl): Likewise. - - * varasm.c (make_function_rtl): If we change the name used in the - rtl, update DECL_ASSEMBLER_NAME accordingly. - (make_decl_rtl): Likewise. - - * toplev.c (rest_of_compilation): Tweak formatting. - - * toplev.c (rest_of_compilation): find_loop_tree_blocks before - remove_unnecessary_notes. - (debug_ignore_block): New fn. - * toplev.h: Declare it. - * emit-rtl.c (remove_unnecessary_notes): Call it. - * dwarf2out.c (dwarf2out_ignore_block): New fn. - * dwarf2out.h: Declare it. - * final.c (final_start_function): Don't call remove_unnecessary_notes - if we did insn scheduling. - -2000-03-03 Zack Weinberg - - * cppinit.c (cpp_handle_option): Set opts->pedantic directly. - * cpplib.h: Delete SET_CPP_PEDANTIC. - -Fri Mar 3 14:56:12 2000 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): Use bitfield case if - result is a RECORD_TYPE. - -2000-03-03 Jonathan Larmour - - * mips/elf.h (CTOR_LISTS_DEFINED_EXTERNALLY): Added. - -2000-03-03 Richard Henderson - - * alpha.c (alpha_emit_set_const_1): Re-order cases to prefer - addition over compliments over shifts. - -Fri Mar 3 12:49:28 2000 J"orn Rennecke - - * reload1.c (reload_combine_note_use): Handle return register USEs. - REG case: Handle multi-hard-register hard regs. - -Fri Mar 3 07:38:34 2000 Richard Kenner - - * md.texi: Document use of '*' in insn pattern name. - -2000-03-03 Jason Merrill - - * calls.c (special_function_p): operator new may not be malloc-like. - - * gcse.c (dump_hash_table): Really fix error in last change. - -2000-03-02 Denis Chertykov - - * avr.c (print_operand): Use print_operand_address instead of - output_addr_const. - * avr/libgcc.S: Cleanup code. - -2000-03-02 Richard Henderson - - * alpha.c (alpha_emit_set_const_1): Also try c + small constant. - -2000-03-02 Mark Mitchell - - * tree.h (TYPE_ALIGN_UNIT): New macro. - -2000-03-02 Clinton Popetz - - * i386.c: (constant_call_address_operand): Reject CONST_INT. - -2000-03-02 Jason Merrill - - * cpplib.h (CPP_PEDANTIC): Only true if system_header_p is not set - for the buffer. - (SET_CPP_PEDANTIC): New macro. - * cpplib.c (do_include): Don't bother checking system_header_p. - (do_warning, do_ident, do_assert, do_unassert): Likewise. - * cppinit.c (cpp_handle_option): Use SET_CPP_PEDANTIC. - - * function.h (struct expr_status): Add x_arg_space_so_far. - (arg_space_so_far): New macro. - * expr.c (init_expr): Initialize it. - * calls.c (emit_call_1): Reset it. - (compute_argument_block_size, expand_call): Use it. - (expand_call, store_one_arg): Increment it. - -Thu Mar 2 17:27:13 2000 Richard Kenner - - * varasm.c (output_constant): Strip off a CONVERT_EXPR to - a UNION_TYPE. - -2000-03-02 Zack Weinberg - - * cppfiles.c (cpp_read_file): New function. - - * cpphash.c (collect_expansion): Make sure to reset last_token - to NORM when we hit a string. Handle trailing whitespace - properly when the expansion is empty. - (create_definition): Disable line commands while parsing the - directive line. - (dump_definition): If pfile->lineno == 0, output a line - command ahead of the dump, and add a trailing newline. - - * cppinit.c (append_include_chain): Add fifth argument, which - indicates whether or not system headers are C++ aware. - (initialize_standard_includes): New function, - broken out of read_and_prescan. Pass 'cxx_aware' value from - the include_defaults_array on to append_include_chain. - (dump_special_to_buffer): Const-ify char array. - (builtin_array): Don't dump __BASE_FILE__. - (cpp_start_read): Use cpp_read_file. Reorder code for - clarity. Don't output line commands here for -D/-A/-U - switches. Don't call deps_output for files included with - -include or -imacros. - - * cpplib.c (do_define): Don't pay any attention to the second - argument. - (cpp_expand_to_buffer): Disable line commands while scanning. - (output_line_command): Work in the file buffer. - * cpplib.h: Remove no_record_file flag from struct cpp_reader. - Fix formatting of comments. Prototype cpp_read_file. - -Thu Mar 2 13:29:46 2000 Richard Kenner - - * c-common.c (c_common_nodes_and_builtins): Make sizetype_endlink - reference the language-equivalent of sizetype. - * c-typeck.c (comptypes): Treat sizetype like its language equivalent. - * fold-const.c (size_binop, size_diffop): Put back checks. - * gcse.c (dump_hash_table): Fix minor error in last change. - * stor-layout.c (set_sizetype): Set TYPE_DOMAIN of sizetype. - Clear TYPE_{NEXT,MAIN}_VARIANT and TYPE_{POINTER,REFERENCE}_to of - all sizetypes. - -Thu Mar 2 12:48:45 MET 2000 Jan Hubicka - - * calls.c (expand_call) Do not attempt to combine stack adjustments - with inhibit_defer_pop set. - -2000-03-01 Mark Mitchell - - * stor-layout.c (layout_decl): Allow front-ends to explicitly set - the DECL_SIZE for a FIELD_DECL. - -2000-03-01 Bruce Korb - - * fixinc/inclhack.tpl: remove unused symlinks - * fixinc/README: GCC Maintainer info - * fixinc/inclhack.sh: regen - * fixinc/fixincl.sh: regen - -2000-03-01 Zack Weinberg - - * cpphash.c (collect_expansion): Trim trailing white space - from macro definitions, but don't go past the last insertion - point. - -Wed Mar 1 12:14:31 MET 2000 Jan Hubicka - - * i386.md (mulqi3): New pattern. - -2000-02-29 Zack Weinberg - - * cpplib.h (CPP_ASSERTION, CPP_STRINGIZE, CPP_TOKPASTE): New - token types. - (struct cpp_reader): Add parsing_if_directive and - parsing_define_directive flags. - (struct cpp_options): Remove output_conditionals flag. - (check_macro_name): Delete prototype. - - * cpphash.h (struct macrodef): Delete. - (struct reflist): Separate from struct definition. - (struct definition): Remove unused fields. Add column number. - (create_definition): Returns a DEFINITION *. Takes a - cpp_reader * and an int. - - * cpphash.c (SKIP_WHITE_SPACE): Delete. - (PEEKC): Copy defn from cpplib.c. - (rest_extension, REST_EXTENSION_LENGTH): Delete. - (struct arg): New. - (struct arglist): Simplify. - (collect_expansion): Rewrite. Get tokens by calling - cpp_get_token. Add more error checking. - (collect_formal_parameters): New function, broken out of - create_definition and reworked to use get_directive_token. - (create_definition): All real work is now in collect_expansion - and collect_formal_parameters. do_define handles finding the - macro name. Return a DEFINITION, not a MACRODEF. - (macroexpand): Replace bcopy with memcpy throughout. Replace - character-at-a-time copy loop with memcpy and pointer increments. - (compare-defs): d1->argnames / d2->argnames might be null. - - * cpplib.c (copy_rest_of_line): Delete function. - (skip_rest_of_line): Do all the work ourselves. - (skip_string): New function. - (parse_string): Use skip_string. - (get_macro_name): New function. - (check_macro_name): Delete. - (copy_comment): Use CPP_RESERVE and CPP_PUTC_Q. - (cpp_skip_hspace): Use CPP_BUMP_LINE. - (handle_directive): ICE if we're called on a macro buffer. - (do_define): Determine macro name and type (funlike/objlike) - here. Expunge all uses of MACRODEF. - (cpp_push_buffer): Set line_base to NULL. - (do_undef, read_line_number): Don't worry about getting a POP token. - (eval_if_expression): Set/reset parsing_if_directive around - cpp_parse_expr. Don't clear only_seen_white. - (skip_if_group): Remove output_conditionals logic. Use - skip_rest_of_line. - (cpp_get_token): Return ASSERTION, STRINGIZE, and TOKPASTE - tokens under appropriate conditions. - (cpp_unassert): Call do_unassert not do_assert. Oops. - - * cppexp.c (parse_defined): New function, break out of - cpp_lex. - (cpp_lex): We now get CPP_ASSERTION tokens and can check them - ourselves, with cpp_defined. - * cppinit.c (cpp_handle_option, print_help): Delete -ifoutput. - - * gcc.dg/20000209-2.c: Turn off -pedantic-errors. - * gcc.dg/strpaste-2.c: New. - -2000-02-29 Mark Mitchell - - * fold-const.c (size_binop): Don't asert inputs are the same and - have TYPE_IS_SIZETYPE set. - (size_diffop): Likewise. - -2000-02-29 Jason Merrill - - * dwarfout.c (output_block): Output abstract blocks even if they - don't have TREE_ASM_WRITTEN set. - - * calls.c (emit_library_call): Check for null REG. - -2000-03-01 Martin von Loewis - - * c-decl.c (current_function_decl): Move to toplev.c. - (init_decl_processing): Don't add current_function_decl as a ggc - root here. - * dbxout.c (dbxout_symbol): Change return type to int. - (dbxout_symbol_location, dbxout_syms): Likewise. - (dbxout_block): Don't emit LBRAC/RBRAC pairs for blocks without - any locals. Use current_function_func_begin_label if set. - * dbxout.h (dbxout_symbol, dbxout_syms): Change return type. - * dwarf2out.c (dwarf2out_begin_prologue): Set - current_function_func_begin_label. - * final.c (final_start_function): Reset it. - * toplev.c (current_function_decl): Define it here. - (current_function_func_begin_label): New variable. - (main): Add both as ggc roots. - * tree.h (current_function_func_begin_label): Declare. - -Tue Feb 29 14:07:04 2000 Richard Kenner - - * gcse.c: Cleanups throughout: mostly white-space, but also - some minor rearrangement of code. - -Tue Feb 29 10:45:59 2000 Jeffrey A Law (law@cygnus.com) - - * calls.c (emit_library_call): Do not abort if FUNCTION_ARG - returns a PARALLEL. Use emit_group_load and use_group_regs - as needed. - (emit_library_call_value): Similarly. - - * pa/t-pa: Use quadlib.c instead of quadlib.asm. - * pa/quadlib.asm: Remove. - * pa/quadlib.c: New file. - - * configure.in (hpux10, hpux11, PA32 mode): Use i128 float format. - * configure: Rebuilt. - -2000-02-29 Philip Blundell - - * config/arm/conix-elf.h: New file. - * configure.in (arm*-*-conix*): New configuration. - * configure: Regenerate. - -2000-02-28 Jason Merrill - - * dwarf2out.c (gen_block_die): Output abstract blocks even if they - don't have TREE_ASM_WRITTEN set. - -Mon Feb 28 21:07:59 2000 Richard Kenner - - * Eliminate DECL_FIELD_SIZE. - * builtins.c (built_in_class_names, built_in_names): New variables. - * c-decl.c (finish_struct): Set specified size in DECL_SIZE. - * expr.c (expand_expr, case COMPONENT_REF): Get field size from - DECL_SIZE, not DECL_FIELD_SIZE. - * print-tree.c (print_node): Remove code that prints extra blank - lines in some cases. - Properly handle inline and builtin function cases. - * stor-layout.c (layout_decl): Get specified size from DEC_SIZE. - * tree.h (built_in_class_named, built_in_names): New declarations. - (union tree_decl): Rename internal unions to u1 and u2 and change - some of their components. - Add new field built_in_class. - (DECL_ALIGN, DECL_INCOMING_RTL, DECL_SAVED_INSNS, DECL_FRAME_SIZE): - Reflect above changes. - (DECL_FUNCTION_CODE, DECL_BUILT_IN_CLASS): Likewise. - (DECL_SET_FUNCTION_CODE, DECL_FIELD_SIZE): Deleted. - * objc/objc-act.c (objc_copy_list): Use DECL_SIZE, not DECL_FIELD_SIZE. - (encode_field_decl): Likewise; also remove obsolete test for bitfield. - -2000-02-28 Dmitri Makarov - - * extend.texi: Document ARM's support for long/short calls. - - * invoke.texi: Document ARM's -mlong-calls command line switch. - - * config/arm/arm-protos.h (arm_is_longcall_p): Add prototype. - (arm_encode_call_attribute): Add prototype. - (arm_set_default_type_attribute): Add prototype. - (arm_strip_name_encoding): Add prototype. - - * config/arm/arm.c (arm_init_cumulative_args): replace - initialisation og 'long_calls' field with initialisation of - 'call_cookie' field. - (enum arm_pragma_enum): New enum. - (arm_pragma_long_calls): New static variable. - (arm_process_pragma): Also process "#pragma long_calls_off". - (arm_valid_type_attribute_p): Accept short_call attribute. - (arm_comp_type_attributes): Check long/short call attributes. - (arm_encode_call_attribute): New function: Encode long_call - or short_call attribute in function name. - (arm_set_default_type_attributes): New function: Assign - default attributes to newly defined type. - (current_file_function_operand): New function: Return true if - the symbol is a function which has already been compiled. - (arm_is_longcall_p): New function: Return true if the - indicated function should be called via a long call. - (arm_get_strip_length): New function. Returns number of - prefix characters to be stripped from a function's name. - (arm_strip_name_encoding): New function. Strip prefix characters - from a function's name. - - * config/arm/arm.h (CUMULATIVE_ARGS): Replace 'long_call' field - with 'call_cookie'. - (SHORT_CALL_FAG_CHAR): Define. - (LONG_CALL_FAG_CHAR): Define. - (ENCODED_SHORT_CALL_ATTR_P): Define. - (ENCODED_LONG_CALL_ATTR_P): Define. - (ARM_NAME_ENCODING_LENGTHS): Define. - (STRIP_NAME_ENCODING): Define. - (ASM_OUTPUT_LABELREF): Define, and use to strip name encoding. - (ARM_ENCODE_CALL_TYPE): Define. - (ENCODE_SECTION): Invoke ARM_ENCODE_CALL_TYPE. - (ARM_DECLARE_FUNCTION_SIZE): Define. - (SET_DEFAULT_TYPE_ATTRIBUTES): Define. - - * config/arm/arm.md (call): Call arm_is_longcall_p to decide - if a long call is needed. - (call_value): Ditto. - (call_symbol): Ditto. - - * config/arm/elf.h (ASM_DECLARE_FUNCTION_SIZE): Add invocation of - ARM_DECLARE_FUNCTION_SIZE. - - * config/arm/pe.h (ARM_PE_FLAG_CHAR): Define. - (SUBTARGET_NAME_ENCODING_LENGTHS): Define. - (ARM_STRIP_NAME_ENCODING): Undefine. - (STRIP_NAME_ENCODING): Undefine. - (ASM_OUTPUT_LABELREF): Use arm_strip_name_encoding. - (ASM_DECLARE_FUNCTION_NAME): Ditto. - (ASM_OUTPUT_COMMON): Ditto. - (ASM_DECLARE_OBJECT_NAME): Ditto. - - * config/arm/pe.c (arm_dllexport_name_p): Check for - ARM_PE_FLAG_CHAR. - (arm_dllimport_name_p): Ditto. - (arm_mark_dllexport): Use ARM_PE_FLAG_CHAR. - (arm_mark_dllimport): Ditto. - -Mon Feb 28 22:11:12 2000 J"orn Rennecke - - * sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Define. - -2000-02-28 Mark Mitchell - - * xcoffout.c (xcoffout_begin_function): Fix typo in previous change. - -2000-02-28 Zack Weinberg - - * tm.texi: Document new target switch, NO_BUILTIN_WCHAR_TYPE. - * cppinit.c (builtin_array): Define __WCHAR_TYPE__ only if - NO_BUILTIN_WCHAR_TYPE is not defined. - (CPP_WCHAR_TYPE): Delete. - * cccp.c (main): Don't change wchar_type if cplusplus. - (special_symbol, initialize_builtins): Honor NO_BUILTIN_WCHAR_TYPE. - -2000-02-28 Nick Clifton - - * config/arm/arm-wince-pe.h (SIZE_TYPE): Define to "unsigned long". - -Mon Feb 28 14:21:15 2000 Catherine Moore - - * config/pa/som.h (MAKE_DECL_ONE_ONLY): Define. - (ASM_WEAKEN_LABEL): Define. - -Mon Feb 28 13:07:19 MET 2000 Jan Hubicka - - * expr.c (store_constructor): Do not emit USE. - * rtl.h (stupid_life_analysis): Remove. - -Mon Feb 28 07:03:27 2000 Richard Kenner - - * function.c (number_blocks): Reset next_block_index based on - what debugging format is used, not what is defined. - - * lcm.c: Minor reformatting throughout. - (reg_dies, reg_becomes_live): Properly handle multiple hard regs. - - * toplev.c (rest_of_compilation): Account for time in - optimize_mode_switching. - - * jump.c (jump_optimize_1): Don't call delete_barrier_successors - if only marking labels. - -Mon Feb 28 12:53:57 MET 2000 Jan Hubicka - - * calls.c (expand_call): Attempt to combine stack adjustments with - pending stack adjustments. - -Mon Feb 28 11:34:43 2000 J"orn Rennecke - - * loop.c (reg_in_basic_block_p): Don't abort when falling through - to the end of the function. - -2000-02-27 Mark Mitchell - - * emit-rtl.c (remove_unnecessary_notes): Remove notes for empty - blocks. - * final.c (next_block_index): Remove. - (max_block_depth): Likewise. - (pending_blocks): Likewise. - (init_final): Don't initialize them. - (final_start_function): Don't set next_block_index. Set up - BLOCK_NUMBER. - (final_scan_insn): Use BLOCK_NUMBER, not next_block_index. - * function.h (number_blocks): New function. - * function.c (get_block_vector): New function. - (identify_blocks): Use it. - (reorder_blocks): Set NOTE_BLOCK. - (number_blocks): New function. - * tree.def (BLOCK): Add documentation for TREE_ASM_WRITTEN flag. - * tree.h (BLOCK_NUMBER): New macro. - (tree_block): Add block_num field. - * dbxout.c (next_block_number): Remove. - (dbxout_init): Don't set it. - (dbxout_block): Only output blocks that have TREE_ASM_WRITTEN - set. Use BLOCK_NUMBER, rather than next_block_num, to determine - block numbers. - * toplev.c (rest_of_compilation): Always call - find_loop_tree_blocks. Fix indentation. - * dwarf2out.c (next_block_number): Remove. - (gen_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, - to determine block numbers. - (gen_inlined_subroutine_die): Likewise. - (gen_block_die): Only output blocks that have TREE_ASM_WRITTEN set. - (decls_for_scope): Don't increment next_block_number. - * dwarfout.c (next_block_number): Remove. - (output_lexical_block_die): Use BLOCK_NUMBER, not next_block_number, - to determine block numbers. - (output_inlined_subroutine_die): Likewise. - (output_block): Only output blocks that have TREE_ASM_WRITTEN set. - (output_decls_for_scope): Don't increment next_block_number. - * sdbout.c (next_block_number): Remove. - (sdbout_block): Use BLOCK_NUMBER. - (sdbout_begin_block): Simplify. - * xcoffout.c (next_block_number): Remove. - (xcoffout_block): Use BLOCK_NUMBER, not next_block_number. - (xcoffout_begin_block): Don't set next_block_number. - (xcoffout_begin_function): Likewise. Use BLOCK_NUMBER, not - next_block_number. - -Sun Feb 27 16:40:33 2000 Richard Kenner - - * builtins.c (c_strlen): Use size_diffop and return ssizetype value. - (expand_builtin_strcpy): Pass correct type to size_binop. - (expand_builtin_strcmp): Likewise. - Clean up conditional structure. - * c-decl.c (init_decl_processing): Don't call set_sizetype twice. - (complete_array_type): Don't use size_binop for MAXINDEX. - * c-typeck.c (c_sizeof): Use size_one_node and TYPE_SIZE_UNIT. - (c_sizeof_nowarn, c_size_in_bytes): Likewise. - (c_alignof): Use size_one_node. - (build_unary_op): Pass arg of proper type to size_binop. - (really_start_incremental_init, push_init_level): Use sizetype for - constructor{,_bit,_unfilled}_index. - (pop_init_label, output_init_element): Likewise. - (output_pending_init_elements, process_init_element): Likewise. - * calls.c (compute_argument_block_size): Field VAR is ssizetype. - * expr.c (store_expr): Use size_int. - (store_constructor): Use proper types for size_binop args. - (get_inner_reference, expand_expr, case ARRAY_REF): Likewise. - (expand_expr_unaligned): Likewise. - (string_contant): Return object of sizetype. - * expr.h (SUB_PARM_SIZE): Call size_diffop and pass proper types. - (ARGS_SIZE_RTX): Call ARGS_SIZE_TREE. - (ARGS_SIZE_TREE): Pass proper types to size_binop. - * fold-const.c (int_const_binop): Refine when size_int is called. - (fold_convert): Likewise. - (size_int_wide): Rework to take KIND as arg, only take low order - bits, handle new sizetype_tab datatype, and chain entries in - size_table. - (size_int_type_wide): New function. - (size_binop): Validate types of arguments. - (ssize_binop): Deleted. - (size_diffop): New function. - (extract_muldiv): Only fold division into multiplication for sizetypes. - * function.c (assign_parms): Use size_diffop and make sure - VAR field is of ssizetype; also pass proper type to size_binop. - (locate_and_pad_parm, pad_to_arg_alignment): Likewise. - (round_down): Deleted from here. - * store-layout.c (sizetype_tab): Now an array. - (sizetype_set, early_root_list): New variables. - (variable_size): Use size_one_node. - (round_up): Pass proper type to size_binop. - (round_down): Moved to here and corrected as above. - (layout_record): Pass proper arg types to size_binop. - (layout_type): Likewise. - If sizetype_set is zero, record the type just laid out. - (make_unsigned_type): Don't call set_sizetype; - (make_signed_type): Likewise; also, call fixup_signed_type. - (initialize_sizetypes): New function. - (set_sizetype): Make copy of types, set TYPE_IS_SIZETYPE, and - set name of bitsizetype to "bit_size_type". - Fix up type of sizes of all types made before call. - * tm.texi (ROUND_TYPE_SIZE_UNIT): New macro. - * tree.c (fix_sizetype): Deleted. - (build_common_tree_nodes): Call initialize_sizetypes. - (build_common_tree_nodes_2): Don't call fix_sizetype. - * tree.h (TYPE_IS_SIZETYPE): New macro. - (initialize_sizetype): New declaration. - (enum size_type_kind): New type. - (struct sizetype_tab): Deleted. - (sizetype_tab): Now array; adjust sizetype macros. - (size_diffop, size_int_type_wide): New functions. - (size_int_wide): Change number of args and type; access macros changed. - (ssize_int, sbitsize_int): New macros. - * config/i960/i960.h (ROUND_TYPE_SIZE): Use size_int. - (ROUND_TYPE_SIZE_UNIT): New macro. - -2000-02-27 Zack Weinberg - - * c-lex.c (putback_buffer): Make 'buffer' an unsigned char *. - -Sun Feb 27 07:44:17 2000 Richard Kenner - - * gcov-io.h (__fetch_long, __store_long, __read_long, __write_long): - Mark as possibly unused. - - * cse.c (cse_insn): Delete dead code involving tablejump. - Pass CODE_LABEL, not LABEL_REF to gen_jump and reset INSN_CODE. - - * Makefile.in (libcpp.a): Start by deleting it. - -2000-02-27 Alexandre Oliva - - * cpplib.h (enum file_change_code): Added rename_file. - * cpplib.c (do_line): If a filename is given, set file_change to - rename_file. - (output_line_command): If file_change is rename_file, always - output a # directive with the file name. - - * cpplib.c (do_pragma): Accept #pragma without consecutive token. - -2000-02-26 Mark Mitchell - - * integrate.c (copy_decl_for_inlining): Preserve TREE_ADDRESSABLE - when copying a PARM_DECL or RESULT_DECL. - -2000-02-26 Kaveh R. Ghazi - - * fix-header.c (recognized_function): Also fix prototypes for - functions taking "void". - -2000-02-26 Geoff Keating - - * reload1.c (do_output_reload): Check reg_reloaded_valid before - looking at reg_reloaded_contents. - -2000-02-26 Zack Weinberg - - * Makefile.in (STMP_FIXINC): New toggle. - (LIBGCC2_DEPS): Delete all references. - (stmp-headers): Delete target. All references either deleted - or changed to stmp-int-headers. - (all.cross): Don't depend on stmp-headers or STMP_FIXPROTO. - (LIBCPP_OBJS): Take out cppalloc.o. - (cppalloc.o): Delete target. - (stmp-int-hdrs): Depend on $(STMP_FIXINC). - (gen-protos, fix-header): Link with libiberty.a. - * build-make: Don't change FIXINCLUDES. Override STMP_FIXINC - to empty. - - * configure.in: Remove refs to strerror. - * acconfig.h: Take out NEED_DECLARATION_STRERROR. - * system.h: Take out strerror stanza. - - * cpperror.c (my_strerror): Delete function. - (cpp_error_from_errno, cpp_notice_from_errno): Use xstrerror. - * cppmain.c (main): Call xmalloc_set_program_name first thing. - * cppalloc.c: Delete file. - * gen-protos.c: Don't provide xrealloc. - - * fixinc/fixincl.c, fixinc/fixlib.c, fixinc/procopen.c: Use - xstrerror throughout. - -2000-02-26 Bruce Korb - - * fixinc/inclhack.def (undefine_null): the bypass pattern needs to - match for DOS headers, too. - * fixinc/inclhack.sh,fixincl.x: Regenerate. - -2000-02-26 Geoff Keating - - * config/elfos.h (ASM_OUTPUT_LABELREF): Don't define. The default - is right for most ELF targets. - * config/ns32k/ns32k.h (ASM_OUTPUT_LABELREF): Don't define. - Let the default file use %U properly. - * config/sh/elf.h (ASM_OUTPUT_LABELREF): Don't define. Use the - default. - - * config/fp-bit.c (pack_d): Properly handle rounding of denormal - numbers. - -Sat Feb 26 09:39:16 2000 Richard Kenner - - * toplev.c (documented_lang_options): Correct spelling error. - (decode_d_option, decode_f_option, main): Likewise. - - * toplev.c (print_time): Avoid SIGFPE when all_time is zero. - - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): Use .set at - to tell assembler it is permitted to expand large constants. - -2000-02-25 Mumit Khan - - * protoize.c: (AUX_INFO_SUFFIX): New macro. - (aux_info_suffix): Use. - (SAVE_SUFFIX): New macro. - (save_suffix): Use. - (munge_compile_parms): Fix typo in NUL. DJGPP supports /dev/null. - (gen_aux_info_file): Use aux_info_suffix instead of ".X". - (edit_file): Handle 8.3 restriction for DOS/DJGPP filenames. - - * invoke.texi (Running Protoize): Update documentation. - -2000-02-25 Mark Elbrecht - - * i386/djgpp.h (CPP_PREDEFINES): Remove Unix defines. - -2000-02-25 John Wehle (john@feith.com) - - * rtlanal.c (find_last_value): Allow NULL_RTX for valid_to. - -2000-02-25 Anthony Green - - * toplev.c (rest_of_compilation): Rebuild jump labels if - combine_instructions has created a new direct jump. - * combine.c (try_combine): Add new_direct_jump_p argument. Set it - when appropriate. - (combine_instructions): Call try_combine with new argument. - Return non-null value when new direct jump instruction is created. - * rtl.h: combine_instructions returns an int. - -Fri Feb 25 19:49:08 2000 Jeffrey A Law (law@cygnus.com) - - * cse.c (cse_insn): Replace the PATTERN of the insn with an new - jump when changing a computed jump into a jump to a known - target. - -Fri Feb 25 19:22:44 2000 Graham Stott - - * resource.c (mark_referenced_resources): Changed use SET_DEST (...) - to XEXP (..., 0) on RTL nodes which are not SET or CLOBBER. - - * i386.md (define_expand "clrstrsi"): Fix typo. - -Fri Feb 25 18:49:39 2000 "K. Richard Pixley" - - * rtl.texi: Fix typo. - -Fri Feb 25 20:02:35 2000 J"orn Rennecke - - * sh.c (calc_live_regs): Multiply value assigned to *COUNT_PTR by - UNITS_PER_WORD. Change caller initial_elimination_offset. - (rounded_frame_size): Take into account that argument pushed has - changed. Fix TARGET_ALIGN_DOUBLE problem. - -2000-02-25 Geoff Keating - - * haifa-sched.c (schedule_block): Explain the real reason - we delete REG_SAVE_NOTEs on the first insn of a block. - Don't delete REG_SAVE_NOTES for NOTE_INSN_SETJMP. - -2000-02-24 Mark Mitchell - - * input.h (push_srcloc): New function. - (pop_srcloc): Likewise. - * toplev.c (push_srcloc): Define it. - (pop_srcloc): Likewise. - -2000-02-24 Richard Henderson - - * flow.c (life_analysis): When collecting reg info, clear - regs_ever_live. - -Thu Feb 24 22:06:52 2000 J"orn Rennecke - - Fix bug exposed by reload.c no longer rounding the frame - size to BIGGEST_ALIGNMENT: - * sh.c (rounded_frame_size): New function. - (sh_expand_prologue, sh_expand_epilogue): Use it. - (initial_elimination_offset): Likewise. - -Thu Feb 24 20:04:11 2000 J"orn Rennecke - - Fix breakage from 6th Feb thread_prologue_and_epilogue_insns change: - * sh-protos.h (sh_need_epilogue): Declare. - * sh.c (sh_need_epilogue_known): New static variable. - (sh_need_epilogue): New function. - (function_epilogue): Clear need_epilogue_known. - * sh.md (return): Split into expander / insn pattern. - Make the expander conditional on ! sh_need_epilogue (). - -2000-02-24 Nathan Sidwell - - * machmode.h (get_mode_alignment): Declare. - (GET_MODE_ALIGNMENT): Call it. - * stor-layout.c (get_mode_alignment): New function. Make - sure alignment is always power of 2. - -2000-02-23 Zack Weinberg - - * i386.h: Remove useless definition of "I386" and misleading - comment above it. - -2000-02-23 Zack Weinberg - - * tree.h (TREE_SET_PERMANENT): New macro. Document conditions - under which TREE_PERMANENT will be set. - * tree.c (make_node, copy_node, make_tree_vec, tree_cons, - build1): Use TREE_SET_PERMANENT. - * print-tree.c (print_node): Don't report value of - TREE_PERMANENT if ggc_p is true. - - * c-common.c (c_get_alias_set): Don't use TREE_PERMANENT to - decide whether to give a type a new alias set. - * objc/objc-act.c (build_objc_string_object): Never copy the string. - * tree.c (make_node): Set DECL_IN_SYSTEM_HEADER irrespective - of value of 'obstack'. - - -2000-02-24 Michael Hayes - - * config/c4x/c4x.c (c4x_process_after_reload): Split all insns. - -2000-02-23 Alexandre Oliva - - * cpplib.h (enum cpp_token): Added CPP_WCHAR and CPP_WSTRING. - * cpplib.c (cpp_get_token): Produce them. - * cppexp.c (cpp_lex): Handle them. - -2000-02-23 Nick Clifton - - * config/arm/arm.c (arm_comp_type_attributes): Simply and - comment tests on type attributes. - -Wed Feb 23 16:42:21 2000 J"orn Rennecke - - * final.c (shorten_branches): Make value passed to LOOP_ALIGN - conform to documentation. - * sh.h (LOOP_ALIGN): If aligning loops, call sh_loop_align - to check for special cases. - * sh-protos.h (sh_loop_align): Declare. - * sh.c (sh_loop_align): Define. - -2000-02-22 Andrew Haley - - * config/mips/mips.h (GAS_ASM_SPEC): Pass -mgp32/-mgp64 to gas. - (SIZE_TYPE): Is 32 bits when using -mgp32. - (PTRDIFF_TYPE): Ditto. - -Wed Feb 23 07:26:27 2000 Richard Kenner - - * diagnostic.c (init_output_buffer): Handle case of null PREFIX. - -2000-02-23 Zack Weinberg - - * config/i386/i386.h: If IN_TARGET_LIBS is defined, make - BIGGEST_FIELD_ALIGNMENT a constant. - -2000-02-21 Jason Merrill - - * dwarf2out.c (output_line_info): Put the marker for the end of - the line number info at the actual end. - (gen_struct_or_union_type_die): Use decl_function_context - to check for local classes. - * dwarfout.c (output_type): Likewise. - -Tue Feb 22 01:38:57 2000 Jeffrey A Law (law@cygnus.com) - - * pa.h (FUNCTION_ARG_PASS_BY_REFERENCE): Handle pass-by-reference - for arguments with a mode, but no type. - (FUNCTION_ARG_CALLEE_COPIES): Similarly. - * t-pa (LIB2FUNCS_EXTRA): Add quadlib.asm. - * pa/long_double.h: New file. - * configure.in (hpux10, hpux11 configurations): hpux10 and hpux11 - both have 128bit wide long doubles. - * configure: Rebuilt. - -2000-02-21 Kaveh R. Ghazi - - * defaults.h (ASM_OUTPUT_ASCII): Constify a char*. - - * flow.c (get_common_dest, chain_reorder_blocks, make_reorder_chain, - fixup_reorder_chain, skip_insns_between_block): Add static prototypes. - (life_analysis): Wrap variable `i' with macro ELIMINABLE_REGS. - - * haifa-sched.c (rank_for_schedule): Don't cast away const-ness. - - * integrate.c (compare_blocks, find_block): Likewise. - - * rtl.c (fatal_with_file_and_line): Add ATTRIBUTE_PRINTF_2. - - * rtl.h (set_file_and_line_for_stmt): Constify a char*. - - * stmt.c (stmt_status, set_file_and_line_for_stmt, - expand_asm_operands): Likewise. - -Mon Feb 21 17:06:27 2000 Jason Eckhardt - - * predict.c (estimate_probability): Added the pointer heuristic to - the collection of static branch predictors. - -2000-02-21 Catherine Moore - - * config/mips/mips.h (ASM_SPEC): Add -mfix700. - * invoke.texi (-mfix7000): Document. - -2000-02-21 Gabriel Dos Reis - - * diagnostic.c (init_output_buffer): Make it possible to output at - least 32 characters if we're given a too long prefix. - -2000-02-20 Mark Mitchell - - * varasm.c (initializer_constant_valid_p): Call - lang_expand_constant to simplify the constant. - -2000-02-20 Bruce Korb - - * fixinc/inclhack.def(stdio_va_list): - typedef needs to be disabled. - * fixinc/inclhack.sh: regen - * fixinc/fixincl.x: regen - -2000-02-20 Geoff Keating - - * print-rtl.c (print_rtx): Don't print addresses when - flag_dump_unnumbered. - -2000-02-20 Kaveh R. Ghazi - - * sparc.c (sparc_output_scratch_registers): Mark parameter with - ATTRIBUTE_UNUSED. - (sparc_va_arg, sparc_flat_output_function_prologue, - sparc_flat_output_function_epilogue): Cast value to unsigned in - comparison. - (sparc_emit_float_lib_cmp): Remove unused variable `cmp'. - - * sparc.md: Add default case in switch. - -2000-02-19 Richard Henderson - - * c-typeck.c (add_pending_init): Don't abort for multiple - fields at the same offset. - (pending_init_member): Test the correct member. - -2000-02-19 Herman A.J. ten Brugge - - * except.c (start_dynamic_handler) : Use TYPE_MODE (integer_type_node) - instead of SImode. - (start_catch_handler) : Same. - -2000-02-19 Brad Lucier (lucier@math.purdue.edu) - - * Makefile.in: Have flow.o depend on $(EXPR_H) - -Sat Feb 19 18:43:13 2000 Richard Kenner - - * c-common.c (decl_attributes): Set DECL_SIZE_UNIT. - * c-decl.c (duplicate_decls, finish_enum): Likewise. - (finish_decl): Remove -Wlarger-than code from here. - * flags.h (id_clash_len): Now int. - (larger_than_size): Now HOST_WIDE_INT. - * fold-const.c (size_int_wide): No more HIGH parm; NUMBER is signed. - Clean up checking to see if in table. - (make_bit_field_ref): Remove extra parm to bitsize_int. - * ggc-common.c (ggc_mark_tree_children): Mark DECL_SIZE_UNIT. - * print-tree.c (print_node): Print DECL_SIZE_UNIT and TYPE_SIZE_UNIT. - * stmt.c (expand_decl): Use DECL_SIZE_UNIT for stack checking size - and for computing size of decl. - * stor-layout.c (layout_decl): Set DECL_SIZE_UNIT. - Move -Wlarger-than code to here. - (layout_record): Remove extra arg to bitsize_int. - Set TYPE_BINFO_SIZE_UNIT. - (layout_union): Remove extra arg to bitsize_int. - Use proper type for size of QUAL_UNION. - (layout_type): Remove extra arg to bitsize_int. - * toplev.c (id_clash_len): Now int. - (larger_than_size): Now HOST_WIDE_INT. - (decode_W_option): Clean up id-clash and larger-than- cases. - * tree.c (get_identifier, maybe_get_identifier): Remove unneeded casts. - (expr_align, case FUNCTION_DECL): DECL_ALIGN is not defined. - * tree.h (BINFO_SIZE_UNIT, TYPE_BINFO_SIZE_UNIT, DECL_SIZE_UNIT): New. - (struct tree_decl): New field size_unit. - (size_int_wide): No HIGH operand; NUMBER is now signed. - (size_int_2): Deleted. - (size_int, bitsize_int): Don't use it and rework args. - * varasm.c (assemble_variable, output_constructor): Use DECL_SIZE_UNIT. - -Fri Feb 18 20:01:58 2000 Jeffrey A Law (law@cygnus.com) - - * pa/quadlib.asm (_U_QFgt, _U_Qfge): Fix flags for _U_Qfcmp call. - -2000-02-18 Geoff Keating - - * invoke.texi (Warning Options): Add an explanation of why - you might want the -Wfloat-equal flag. - -Fri Feb 18 20:08:57 2000 Richard Kenner - - * bitmap.c (bitmap_operation): Avoid using -1 for index since unsigned. - * cppinit.c (new_pending_define): Add cast to avoid warning. - * expmed.c (extract_bit_field): Likewise. - * flow.c (enum reorder_skip_type): New type. - (skip_insns_between_blcok): New it. - Rework to avoid warning about possibly undefined variable. - * function.c (assign_parms): Make thisparm_boundary unsigned. - * genrecog.c (write_switch): Cast XWINT result to int. - * lcm.c: Many static fcns and vars now #ifdef OPTIMIZE_MODE_SWITCHING. - * mips-tfile.c (init_file): Make two versions of FDR initializer: - one for MIPS and one for Alpha. - (get_tag, copy_object): Add casts to avoid warnings. - * optabs.c (init_one_libfunc): Cast NAME to (char *). - * reload.c (find_reloads): Make TYPE enum reload_type. - * sbitmap.c (dump_sbitmap): J is unsigned; don't use "1L". - * unroll.c (unroll_loop): Initialize UNROLL_NUMBER. - * varasm.c (compare_constant_1): Add cast to avoid warning. - * config/alpha/alpha.c (alpha_emit_xfloating_libcall): Cast FUNC - to (char *). - (alpha_expand_unaligned_load, alpha_expand_unaligned_store): - Cast switch operand of size to int. - (alpha_expand_epilogue): Always initialize fp_offset and sa_reg. - * config/alpha/alpha.h (INITIAL_ELIMINATION_OFFSET): Add abort - in unhandled case. - -2000-02-18 Nick Clifton - - * config/arm/elf.h (ASM_OUTPUT_ALIGN): Do not generate - anything for an alignment of zero. - - * config/arm/thumb.h (ASM_OUTPUT_ALIGN): Do not generate - anything for an alignment of zero. - -2000-02-18 Martin von Loewis - - * gcc.texi (Bug Reporting): Refer to bugs.html. - (Bug Lists): Likewise. - * system.h (GCCBUGURL): New preprocessor define. - * rtl.c (fancy_abort): Use it. - * gcc.c (main): Likewise. - -2000-02-18 Richard Henderson - - * flow.c (INSN_VOLATILE, SET_INSN_VOLATILE, uid_volatile): Remove. - (life_analysis_1): Subsume into ... - (life_analysis): ... here. Force PROP_REG_INFO off after reload. - Use update_life_info for the relaxation. - (update_life_info): Update REG_BASIC_BLOCK for registers live on - entry and regs_live_at_setjmp. - (set_noop_p): Simplify. - (notice_stack_pointer_modification_1): Renamed from s/_1//. - (record_volatile_insns): Split into ... - (delete_noop_moves): ... here, - (notice_stack_pointer_modification): ... here, - (insn_dead_p): ... and here. - (propagate_block): Don't query INSN_VOLATILE. - (mark_used_regs): Mind !PROP_REG_INFO. - * toplev.c (rest_of_compilation): Call mark_constant_function here, - not in life_analysis. - -Fri Feb 18 01:29:22 EST 2000 John Wehle (john@feith.com) - - * loop.c (canonicalize_condition): New function, - broken out of get_condition. - (get_condition): Use it. - * expr.h (canonicalize_condition): Prototype it. - - * tree.h (tree_int_cst_msb): Declare. - * tree.c (tree_int_cst_msb): New function. - -2000-02-17 Mark Mitchell - - * stmt.c (set_file_and_line_for_stmt): Don't crash if cfun->stmt - isn't set. - - * invoke.texi (-fmessage-length=n): Document. - -2000-02-17 Jason Merrill - - * bitmap.c (bitmap_operation): Don't leak bitmap elements. - -2000-02-17 Mark Mitchell - - * function.c (thread_prologue_and_epilogue_insns): Put a line note - after the prologue. - -2000-02-17 Nick Clifton - - * config/arm/thumb.c: Replace includes of system headers with - #include "system.h". - -2000-02-16 Richard Henderson - - * configure.in (alpha-linux*, alpha-netbsd) [extra_parts]: - Add crtbeginS.o and crtendS.o. - * alpha/elf.h (STARTFILE_SPEC): Use crtbeginS.o. - (ENDFILE_SPEC): Use crtendS.o. - * alpha/t-crtbe (crtbeginS.o, crtendS.o): New targets. - - * alpha/crtbegin.asm (__do_frame_takedown): Merge into ... - (__do_global_dtors_aux): ... here. Call __cxa_finalize if - shared and present. - (__dso_handle): New variable. - * alpha/crtend.asm (__do_global_ctors_aux): Remove runtime - bias to __CTOR_END__. - -2000-02-16 Richard Henderson - - * Makefile.in (s-crtS, crtbeginS, crtendS): Prefix usage with $(T). - -Wed Feb 16 21:40:04 2000 Hans-Peter Nilsson - - * longlong.h (__clz_tab): Declare as static to match definition. - -2000-02-16 Mark Elbrecht - - * i386/xm-djgpp.h (LIBSTDCXX): Delete. Moved to config/i386/djgpp.h. - (XREF_FILE_NAME): Define. - - * i386/djgpp.h (DATA_SECTION_ASM_OP): Define. - (EH_FRAME_SECTION_ASM_OP): Define. - (IDENT_ASM_OP): Define. - (TEXT_SECTION_ASM_OP): Define. - (CPP_SPEC): Define. - (CTORS_SECTION_ASM_OP): Define. - (CTOR_SECTION_FUNCTION): Use it. - (DTORS_SECTION_ASM_OP): Define. - (DTOR_SECTION_FUNCTION): Use it. - -2000-02-16 Zack Weinberg - - * reg-stack.c (emit_swap_insn): Do not put a new insn before a - NOTE_BASIC_BLOCK. - - * flow.c (dump_regset, debug_regset, dump_bb, debug_bb, - debug_bb_n): New functions. - (dump_flow_info, print_rtl_with_bb): Use dump_regset. - * basic-block.h: Prototype new functions. - -Wed Feb 16 21:07:53 2000 Denis Chertykov - - * configure.in: Add support for avr target. - * configure: Rebuilt. - - * invoke.texi: Add AVR invocation docs. - * install.texi: Add information about AVR. - * md.texi: Add AVR constraint letters description. - * extend.texi: Add description for AVR specific attributes. - -2000-02-16 Jason Merrill - - * fixinc/fixinc.svr4: Wrap byteorder.h with extern "C". - -2000-02-16 Nick Clifton - - * emit-rtl.c (emit_insn): Move RTL check into make_insn_raw. - (make_insn_raw): Move RTL check here. - -2000-02-16 Kaveh R. Ghazi - - * version.c: Include gansidecl.h and version.h. - - * version.h: Wrap entire file in macro __GCC_VERSION_H__. - - * configure.in (gcc_version): When setting, narrow search to - lines containing `version_string'. - - * Makefile.in (mainversion): Likewise. - (GCC_H): New variable. - (gcc.h): Delete target. - (gcc.o, gccspec.o, cppspec.o): Depend on $(GCC_H), not gcc.h. - (version.o): Depend on version.h. - (dbxout.o): Don't depend on gcc.h. - -Wed Feb 16 15:04:49 2000 Hans-Peter Nilsson - Michael Meissner - - * md.texi (Simple Constraints): Add item about whitespace. - * genoutput.c (strip_whitespace): New. - (scan_operands) [MATCH_OPERAND, MATCH_SCRATCH]: Call - strip_whitespace for constraints. - Test pointer using NULL, not 0. - -2000-02-16 Alexandre Oliva - - * cpplib.c (do_line): Pedwarn for #line > 32767. - - * c-lex.c (readescape): Warn about '\x', but do not reject it. - -2000-02-15 Jonathan Larmour - - * gcc.c (default_compilers): Add new __GNUC_PATCHLEVEL__ define - to default cpp spec. - (do_spec_1): Add support for %v3 spec used by __GNUC_PATCHLEVEL__. - * cpp.texi: Document __GNUC_PATCHLEVEL__. - * cpp.1: Likewise. - - * objc/lang-specs.h: Add new __GNUC_PATCHLEVEL__ define to - default spec. - -2000-02-15 Denis Chertykov - - * configure.in: Add support for avr target. - -Wed Feb 16 03:21:43 2000 J"orn Rennecke - - * sh.h (OVERRIDE_OPTIONS): Don't set sh_addr_diff_vec_mode. - (sh_addr_diff_vec_mode): Don't declare. - * sh.c (sh_addr_diff_vec_mode): Delete. - -Wed Feb 16 01:27:52 2000 J"orn Rennecke - - * sh.md (mulsi3_highpart): Add REG_EQUAL note to last insn. - -Wed Feb 16 00:58:06 2000 J"orn Rennecke - - * sh.md (udivsi3_i1, divsi3_i1, umulhisi3_i, mulhisi3_i): Name. - (smulsi3_highpart_i): Name. - (udivsi3): Wrap emitted insns in REG_LIBCALL / REG_RETVAL notes. - (divsi3, mulhisi3, umulhisi3, mulsidi3, umulsidi3): Likewise. - (smulsi3_highpart, umulsi3_highpart): Likewise. - - (mulsidi3_i, umulsidi3_i): Make rtl describe operation - correctly independent of endianness. - (mulsidi3, umulsidi3): Now define_insn. Hide details that - confuse the optimizers. - (mulsidi3+1, umulsidi3+1): New define_split. - -Tue Feb 15 23:22:26 2000 Andrew Haley - - * config/sh/sh.md: Guard insn splits against illegal registers. - * config/sh/sh.h: Correct comment about macros. - -Tue Feb 15 22:30:36 2000 J"orn Rennecke - Andrew MacLeod - - * Makefile.in (lcm.o): Depend on insn-attr.h. - * basic-block.h (optimize_mode_switching): Declare. - * lcm.c (tm_p.h, insn-attr.h): #include. - (seginfo, bb_info): New structs. - (antic, transp, comp, delete, insert) : New file-scope static variables. - (new_seginfo, add_seginfo, make_preds_opaque, reg_dies): New functions. - (reg_becomes_live, optimize_mode_switching): Likewise. - * tm.texi: Add description of mode switching macros. - * toplev.c (rest_of_compilation): Call optimize_mode_switching. - - * sh-protos.h (remove_dead_before_cse): Remove prototype. - (fldi_ok, fpscr_set_from_mem): New prototypes. - * sh.h (OPTIMIZATION_OPTION): Remove sh_flag_remove_dead_before_cse set. - (CONST_DOUBLE_OK_FOR_LETTER_P, SECONDARY_INPUT_RELOAD_CLASS): - Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). - (sh_flag_remove_dead_before_cse): Remove declaration. - (NUM_MODES_FOR_MODE_SWITCHING, OPTIMIZE_MODE_SWITCHING): New macros. - (MODE_USES_IN_EXIT_BLOCK, MODE_NEEDED, MODE_AT_ENTRY): Likewise. - (MODE_PRIORITY_TO_MODE, EMIT_MODE_SET): Likewise. - * sh.c (broken_move): Disable fldi for (TARGET_SH4 && ! TARGET_FMOVD). - (barrier_align): Allow for JUMP_INSNS containing a parallel. - (machine_dependent_reorg): Remove sh_flag_remove_dead_before_cse set. - (fldi_ok): New function. - (get_fpscr_rtx): Add fpscr_rtx as GC root. - (emit_sf_insn): Only generate fpu switches when optimize < 1. - (emit_df_insn): Likewise. - (expand_fp_branch, emit_fpscr_use, remove_dead_before_cse): Delete. - (sh_flag_remove_dead_before_cse): Delete. - (get_free_reg, fpscr_set_from_mem): New functions. - * sh.md (movdf, movsf): Remove no_new_pseudos code. - (return): Remove emit_fpscr_use / remove_dead_before_cse calls. - -2000-02-15 Loren Rittle - - * ginclude/stddef.h: Correct usage of _BSD_RUNE_T_ for FreeBSD. - -2000-02-15 Kaveh R. Ghazi - - * Makefile.in (TREE_H, collect2.o, gcc.h, mips-tfile.o, cccp.o, - cpphash.o, cppinit.o, protoize.o, unprotoize.o): Depend on version.h. - - * cccp.c: Include version.h and/or don't declare `version_string'. - * collect2.c: Likewise. - * alpha.c: Likewise. - * arm/aof.h: Likewise. - * arm/coff.h: Likewise. - * arm/elf.h: Likewise. - * arm/pe.h: Likewise. - * arm/tcoff.h: Likewise. - * arm/telf.h: Likewise. - * arm/tpe.h: Likewise. - * arm/vxarm.h: Likewise. - * convex/convex.c: Likewise. - * i386/dgux.c: Likewise. - * i386/sun386.h: Likewise. - * m88k/m88k.c: Likewise. - * mcore/mcore-pe.h: Likewise. - * mips/mips.h: Likewise. - * romp/romp.h: Likewise. - * sh/sh.c: Likewise. - * cpphash.c: Likewise. - * cppinit.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * gcc.c: Likewise. - * gcc.h: Likewise. - * mips-tfile.c: Likewise. - * protoize.c: Likewise. - * toplev.c: Likewise. - * tree.h: Likewise. - - * version.c (version_string): Constify a char*. - - * version.h: New file. - -2000-02-14 Nick Clifton - - * configure.in: Add mcore-elf and mcore-pe targets. - * configure: Regenerate. - - * NEWS: Add note that MCore port has been contributed. - - * invoke.texi: Document command line switches for MCore port. - * install.texi: Add MCore to list of supported targets. - -2000-02-14 Geoff Keating - - * collect2.c (main) [COLLECT_EXPORT_LIST]: If we have frames, - then we will need to import the frame handling functions. - (scan_prog_file) [COLLECT_EXPORT_LIST]: We will also need - to import the frames themselves. - -Mon Feb 14 13:31:01 2000 Stan Cox - Jason Eckhardt - - * basic_block.h: Added prototype for reorder_basic_blocks. - * toplev.c: Changes to add -freorder-blocks and graph dump after - block reordering is done. - * flow.c (reorder_block_def): New structure for use during block - reordering. - (REORDER_BLOCK_*): New macros to access members of above structure. - (skip_insns_between_block, get_common_dest, chain_reorder_blocks, - make_reorder_chain, fixup_reorder_chain, reorder_basic_blocks): New - functions for block reordering. - -Mon Feb 14 11:24:44 2000 Hans-Peter Nilsson - - * gcc.texi (Passes): Fix typo. - * md.texi (Standard Names): Ditto. - * tm.texi (Storage Layout): Ditto. - -2000-02-13 Zack Weinberg - - * cpplib.c (do_define): Only free the old definition if it - actually had one. - -2000-02-13 Neil Booth - - * cppfiles.c (read_and_prescan): When emitting deferred - newlines, test speccase[] again instead of checking each - possible whitespace character in turn. When we encounter \r, - look behind for \n first, then ahead. - -2000-02-13 Zack Weinberg - - * cse.c (cse_altered): New internal flag. - (cse_insn): Set it if we changed an insn. - (cse_main): Clear cse_altered before each basic block. - Only garbage collect if cse_altered is true afterward. - -Sun Feb 13 14:12:28 2000 Rainer Orth - - * sparc/sol2.h (LIB_SPEC): Link -ldl if profiling. - -Sun Feb 13 13:21:55 2000 Jeffrey A Law (law@cygnus.com) - - * combine.c (simplify_comparison): Fix typo. - -Sun Feb 13 12:57:52 2000 Neil Booth - - * prefix.c (concat, lookup_key): Use xmalloc and xrealloc - consistently. - -2000-02-13 Michael Hayes - - * flow.c (flow_loop_tree_node_add): Use better algorithm by passing - previously inserted node instead of root node. Caller changed. - -2000-02-13 Michael Hayes - - * basic-block.h (FLOW_LOOP_FIRST_BLOCK, FLOW_LOOP_LAST_BLOCK): Delete. - -2000-02-12 Kaveh R. Ghazi - - * crtstuff.c (__do_global_ctors_aux, __reg_frame_ctor, - __dereg_frame_dtor): Add prototype argument. - - * gthr-dce.h (__gthread_active_p, __gthread_once): Likewise. - - * gthr-posix.h (__gthread_active_p, __gthread_once): Likewise. - - * gthr-solaris.h (__gthread_active_p, __gthread_once): Likewise. - - * gthr-vxworks.h (__gthread_once): Likewise. - - * gthr-win32.h (__gthread_active_p, __gthread_once): Likewise. - -Sat Feb 12 01:44:26 MET 2000 Jan Hubicka - - * i386.c (ix86_emit_restore_regs_using_mov): Break out from ... - (ix86_expand_epilogue): ... here. Use mov instead of add to restore - stack pointer in functions w/o saved registers, output LEAVE more often - on TARGET_USE_LEAVE machines. - -2000-02-07 Dmitri Makarov & Bernd Schmidt - - * config/arm/arm.c (arm_init_cumulative_args); New function: - Initlaise the CUMULATIE_ARGS strcuture for a function - definition. - (arm_function_arg): New function: Determine where to place a - function's argument. Also handles deciding the function's - call cookie. - (current_file_function_operand): New function: Return true if - the symbol is a function which has already been compiled. - (arm_is_long_call_p): New function: Return true if the - indicated function should be called via a long call. - (arm_valid_type_attribute_p): New function: Return true if the - attribute is a valid, arm specific, attribute. - (arm_comp_type_attribute): New function: Return true if the - two types have compatible, arm specific, attributes. - - * config/arm/arm.h (CUMULATIVE_ARGS): Redefine to be a - structure. - (FUNCTION_ARG): Redefine to call arm_function_arg. - (FUNCTION_ARG_PARTIAL_NREGS): Redefine to use correct - structure field. - (INIT_CUMULATIVE_ARGS): Redefine to call - arm_init_cumulative_args. - (FUNCTION_ARG_ADVANCE): Redefine to use correct structure - field. - (SETUP_INCOMING_VARARGS): Redefine to use correct structure - field. - (ARM_MARK_NEARBY_FUNCTION): New macro: Mark already compiled - functions. - (ENCODE_SECTION): Add call to ARM_MARK_NEARBY_FUNCTION. - (VALID_MACHINE_TYPE_ATTRIBUTE): Define. - (COMP_TYPE_ATTRIBUTES): Define. - - * config/arm/arm.md (call): Call arm_is_long_call_p to decide - if a long call is needed. - (call_value): Call arm_is_long_call_p to decide if a long call - is needed. - (call_symbol): Call arm_is_long_call_p to decide if a long call - is needed. - - * config/arm/arm-protos.h: Add prototype for arm_is_long_call_p. - -2000-02-11 Denis Chertykov - - * README.AVR: New file with information about the avr ports. - * config/avr: New directory with avr port files. - -2000-02-11 Andreas Jaeger - - * fixinc/Makefile.in (FIXINC_DEFS): Remove unneeded @fixinc_defs@. - -2000-02-11 Zack Weinberg - - * cpphash.c: Fix formatting, update commentary. - (dump_definition): Take three separate arguments instead of a - MACRODEF structure argument. - * cpphash.h: Update prototype of dump_definition. - * cppinit.c (cpp_finish): Update call of dump_definition. - - * cpplib.c (do_define): Always create new hash entry with - T_MACRO type. Remove redundant check for redefinition of - poisoned identifier. Update call of dump_definition. - (do_undef): Don't call check_macro_name. Rename sym_length to - len. - (do_error, do_warning): Don't use copy_rest_of_line or - SKIP_WHITE_SPACE. - (do_warning): Don't use pedwarn for the actual warning, - only the notice about its not being in the standard. (Fixes - bug with #warning in system headers.) - (do_ident): Stricter argument checking - accept only a single - string after #ident. Also, macro-expand the line. - (do_xifdef): Use cpp_defined. De-obfuscate. - - (do_pragma): Split out specific pragma handling to separate - functions. Use get_directive_token. Update commentary. Do - not pass on #pragma once or #pragma poison to the front end. - (do_pragma_once, do_pragma_implementation, do_pragma_poison, - do_pragma_default): New. - -Feb 11 12:30:53 2000 Jeffrey A Law (law@cygnus.com) - - * jump.c (jump_optimize_1): The first operand in a relational - can be a CONST_INT. - * optabs.c (emit_conditional_move): Handle relationals which - have a known true/false result. - -2000-02-11 Geoff Keating - - * function.c (thread_prologue_and_epilogue_insns): Don't insert - a RETURN insn into a block which already ends with a jump. - -2000-02-11 Geoff Keating - - * haifa-sched.c (BUF_LEN): Increase a lot. - -2000-02-11 Nick Clifton - - * configure.in: Add tm_p_file specification for thumb targets. - * configure: Regenerate. - - * config/arm/thumb-protos.h: New file: Prototypes for exported - functions defined in thumb.c. - -2000-02-11 Robert Lipe - - * Makefile.in (bootstrap-lean): Remove additional files. - (bootstrap2-lean): Likewise. - (VOL_FILES): List of files for above. - -2000-02-11 Nathan Sidwell - - * cpphash.c (special_symbol): Remove spurious argument to - cpp_lookup. - -2000-02-11 Joel Sherrill (joel@OARcorp.com> - - * configure.in: (i*86-*-rtems*): Swapped elf and coff - stanzas. - * configure: Rebuilt. - -2000-02-11 Rodney Brown - - * pa-protos.h: Wrap function_arg_padding in TREE_CODE #ifdef. - -Fri Feb 11 02:59:05 2000 Jeffrey A Law (law@cygnus.com) - - * pa.c, pa.h: Remove trigraph sequences within comments. - -Fri Feb 11 02:51:56 2000 Pavel Roskin - - * invoke.texi (PPC Options): -mno-new-mnenomics -> -mold-mnemonics. - -Fri Feb 11 02:48:30 2000 Brad Lucier (lucier@math.purdue.edu) - - * sbitmap.h: Make SBITMAP_ELT_BITS unsigned. - -2000-02-11 Michael Hayes - - * config/c4x/c4x.c (fp_zero_operand): Check for CONST_DOUBLE. - -2000-02-11 Michael Hayes - - * config/c4x/c4x.h (ASM_GLOBALIZE_LABEL): Use c4x_global_label. - (ASM_OUTPUT_EXTERNAL): Use c4x_external_ref. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - (ASM_FILE_END): Use c4x_file_end. - * config/c4x/c4x.c (c4x_global_label): New function. - (c4x_external_ref, c4x_file_end): Likewise. - - * config/c4x/c4x-protos.h (c4x_global_label): Add prototype. - (c4x_external_ref, c4x_end_file): Likewise. - -2000-02-10 Zack Weinberg - - * cppexp.c: Don't include cpphash.h. - (parse_charconst, cpp_lex): Use cpp_defined. - (cpp_lex): Use get_directive_token throughout. Remove - unnecessary cases from switch. Move assertion-handling code - down to OTHER case. - (cpp_parse_expr): If we see '+' or '-', check the context to - determine if they are unary or binary operators. Streamline - the jumps a bit. Do not call skip_rest_of_line. - - * cpplib.c: Make skip_rest_of_line and cpp_skip_hspace - static. Export get_directive_token. Update commentary. - (cpp_defined): New function. - (do_define): Remove reference to T_PCSTRING. Call - free_definition to release memory for old definition, when - redefining a macro. - (eval_if_expression): Set only_seen_white to 0 before calling - cpp_parse_expr. Call skip_rest_of_line after it returns. - (cpp_read_check_assertion): Don't preserve a pointer into the - token buffer across a call to cpp_get_token. - - * Makefile.in (cppexp.o): Don't depend on cpphash.h. - * cppfiles.c (redundant_include_p): Use cpp_defined. - * cpphash.c (free_definition): New function. - (delete_macro): Use it. Update commentary. - * cpphash.h: Typedef HASHNODE here. Prototype cpp_lookup and - free_definition. - * cpplib.h: Don't typedef HASHNODE here. Delete T_PCSTRING - from enum node_type. Prototype cpp_defined and get_directive_token. - Don't prototype cpp_lookup, skip_rest_of_line, or cpp_skip_hspace. - - * fix-header.c (check_macro_names): Use cpp_defined. - (read_scan_file): Set inhibit_warnings and inhibit_errors in - the options structure. - -2000-02-10 Franz Sirl - - * c-pragma.c (maximum_field_alignment): Remove duplicate declaration. - -2000-02-10 Jason Merrill - - * dwarf2out.c (add_abstract_origin_attribute): Check TREE_CODE (origin) - rather than die->die_tag. - -Thu Feb 10 16:26:49 2000 Richard Kenner - - * combine.c (make_extraction, force_to_mode): Avoid warning on - mixed-signedness conditionals. - (make_field_assignment, nonzero_bits): Likewise. - * expmed.c (store_fixed_bit_field): ALIGN arg now unsigned. - (store_split_bit_field, extract_split_bit_field): Likewise. - (extract_fixed_bit_field, store_bit_field, - * expr.c: Change alignment to be unsigned everywhere. - (move_by_pieces, store_constructor_field, store_constructor): - Alignment parm is unsigned. - (emit_block_move, emit_group_load, emit_group_store): Likewise. - (clear_storage, emit_push_insn, compare_from_rtx): Likewise. - (do_compare_rtx_and_jump): Likewise. - (move_by_pieces_ninsns, clear_by_pieces): Likewise. - Compare align with GET_MODE_ALIGNMENT. - (expand_expr_unaligned): Pointer to alignment is pointer to unsigned. - (get_inner_reference): Likewise. - (copy_blkmode_from_reg, emit_push_insn): Remove unneeded casts. - (expand_assignment): Local vars for alignment now unsigned. - (store_constructor, store_field, expand_expr, do_jump): Likewise. - (do_compare_and_jump): Likewise. - (store_field): Call new function expr_align. - * expr.h (emit_block_move, emit_group_load, emit_group_store): - Alignment arg now unsigned. - (clear_storage, emit_push_insn, compare_from_rtx): Likewise. - (do_compare_rtx_and_jump, store_bit_field): Likewise. - (extract_bit_field): Likewise. - * fold-const.c (add_double): Add cast to eliminate signedness warning. - * machmode.h (GET_MODE_ALIGNMENT): Result is unsigned. - (get_best_mode): Alignment arg is unsigned. - * rtl.h (move_by_pieces): Likewise. - * store-layout.c (maximum_field_alignment, set_alignment): - Now unsigned. - (layout_decl): Alignment arg is now unsigned. - Remove unneeded casts. - (layout_record, layout_union, layout_type): Remove unneeded casts. - Local alignment variables now unsigned. - (get_best_mode): Alignment arg now unsigned. - * tree.c (expr_align): New function. - * tree.h (expr_align): Likewise. - (maximum_field_alignment, set_alignment): Now unsigned. - (get_inner_reference): Alignment argument is now pointer to unsigned. - * varasm.c (assemble_variable): Add cast to eliminate warning. - -Thu Feb 10 12:56:47 2000 Jim Wilson - - * expmed.c (store_bit_field): If op0 and fieldmode are the same size, - then store directly into op0. - - * calls.c (expand_call): When emitting a NOTE_INSN_SETJMP, search for - the CALL_INSN, and emit the note immediately after it. - -2000-02-10 Nick Clifton - - * config/arm/thumb.md (epilogue): Include a (return) in the - generated insn, and emit it using emit_jump_insn not - emit_insn. - -Thu Feb 10 18:28:59 MET 2000 Jan Hubicka - - * function.c (assign_temp): Change zero-sized arrays to size 1. - * integrate.c (expand_inline_function): Do not update - stack_alignment_needed - * i386.c (compute_frame_size): Remove #ifdef PREFERRED_FRAME_BOUNDARY, - add some sanity checking, remove optimization for function with - zero frame size. - -2000-02-10 Kaveh R. Ghazi - - * flow.c (mark_regs_live_at_end): Delete unused variables. - - * ggc-page.c (ggc_page_print_statistics): bzero -> memset. - - * integrate.c (copy_rtx_and_substitute): Wrap variable `alignment' - in macro FRAME_GROWS_DOWNWARD. - - * stmt.c (expand_end_bindings): Delete unused variable. - - * unroll.c (iteration_info): Mark parameter `loop' with - ATTRIBUTE_UNUSED. - -2000-02-10 Alexandre Oliva - - * fixinc/server.c (load_data): Return NULL if the marker line is - not found. - (run_shell): If load_data returns NULL, retry the command once, in - a new shell. - - * configure: Rebuilt. - -2000-02-09 Bruce Korb - - * gcc/fixincludes: ** DELETED ** - * gcc/fixcpp: ** DELETED ** - * gcc/fixinc-nt.sed: ** DELETED ** - * gcc/just-fixinc: ** DELETED ** - * gcc/Makefile.in: Removed out-dated commentary - * gcc/configure.in: Removed fast-fixincludes disablement. - * MAINTAINERS(Ian Taylor) moved to "Write after approval" group. - -2000-02-09 Clinton Popetz - * function.c (thread_prologue_and_epilogue_insns): Uncomment - last change. - -2000-02-09 Richard Henderson - - * jump.c (delete_insn): Don't delete user labels at -O0. - -2000-02-09 Robert Lipe - - * Makefile.in (gen-protos): Don't depend on HOST_LIBDEPS. - Don't link with HOST_LIBS. - -2000-02-09 Zack Weinberg - - * configure.in: Correct --help text for --with-dwarf2. - Put tm-dwarf2.h after other tm files, if it's requested. - * configure: Regenerate. - * config/tm-dwarf2.h: #undef PREFERRED_DEBUGGING_TYPE before - defining it. - -2000-02-09 Zack Weinberg - - * cpplib.h: Provide HASHNODE typedef and forward decl of - struct hashnode only. Kill cpp_hashnode typedef. MACRODEF, - DEFINITION, struct hashnode, struct macrodef, struct - definition, scan_decls prototype, default defn of - INCLUDE_LEN_FUDGE moved elsewhere. - - * cpphash.h: MACRODEF, DEFINITION, struct macrodef, struct - definition, and struct hashnode moved here. Remove the unused - 'predefined' field from struct definition. Replace the 'args' - union with its sole member. All users updated (cpphash.c). - Delete HASHSTEP and MAKE_POS macros, and hashf prototype. Add - multiple include guard. - - * cpphash.c (hashf): Make static; use better algorithm; drop - HASHSIZE parameter; return an unsigned int. - (cpp_lookup): Drop HASH parameter. PFILE parameter is - used. Calculate HASHSIZE modulus here. - (cpp_install): Drop HASH parameter. Calculate HASHSIZE modulus - here. - (create_definition): Drop PREDEFINITION parameter. - * cpplib.c (do_define): Don't calculate a hash value here. - Don't pass (keyword == NULL) to create_definition. - - * scan.h: Prototype scan_decls here. - * cppfiles.c: Move INCLUDE_LEN_FUDGE default defn here. - * cppexp.c, cppfiles.c, cppinit.c, cpplib.c, fix-header.c: All - callers of cpp_lookup and cpp_install updated. - - * cpphash.c (macarg): Hoist all the flag diddling out of the - function... - (macroexpand): ... and out of the loop that calls macarg. - Skip over the initial paren before macro arguments with - cpp_get_non_space_token; point may be some distance before - that paren. Abort if it's not there. - - * cpplib.c (parse_clear_mark): Delete function. - (parse_set_mark, parse_goto_mark): Make static. - (ACTIVE_MARK_P): New macro. - (skip_block_comment, skip_line_comment): Do not bump the line - if ACTIVE_MARK_P is true. - (cpp_pop_buffer): The buffer to be popped may not have an - active mark. - (cpp_get_token): When looking for the initial paren before - macro arguments, only set a mark in a file buffer, Always - return to that mark before proceeding to call macroexpand or - return a NAME token. - - * cpplib.h: Remove prototypes of parse_set_mark, - parse_clear_mark, parse_goto_mark. - (struct cpp_options): Rename 'put_out_comments' to - 'discard_comments' and invert its sense. - * cppinit.c, cpphash.c, cpplib.c: All users of - put_out_comments changed to use discard_comments, with - opposite sense. - -2000-02-09 Clinton Popetz - - * function.c (thread_prologue_and_epilogue_insns): Don't delete - the edge from a block that both jumps and falls through to the - fallthru block. - -2000-02-09 Scott Bambrough - - * config/arm/arm.md (movsi): In PIC mode, make sure that a - constant source address is legitimate. - -2000-02-09 Philip Blundell - - * config/arm/arm.c (legitimize_pic_address): Handle LABEL_REF - correctly. - - * config/arm/arm.h (LEGITIMATE_CONSTANT_P): Allow anything when - generating PIC. - (LEGITIMATE_PIC_OPERAND): Disallow references to labels. - -2000-02-09 Zack Weinberg - - * cpplib.c (cpp_define, cpp_undef): Make sure the stacked buffer - ends with a newline and a NUL. Don't be so clever manipulating - strings. - -Wed Feb 9 14:18:08 MET 2000 Jan Hubicka - - * reload1.c (reload) Align stack frame to cfun->stack_alignment_needed, - not to BIGGEST_ALIGNMENT. - -2000-02-08 Geoff Keating - - * dwarf2.h (DW_CFA_GNU_negative_offset_extended): New constant. - * dwarf2out.c (dwarf_cfi_name): Print name of new constant. - (reg_save): Use DW_CFA_GNU_negative_offset_extended when needed. - (output_cfi): Handle output of DW_CFA_GNU_negative_offset_extended. - * frame.c (execute_cfa_insn): Handle - DW_CFA_GNU_negative_offset_extended. - -2000-02-08 Richard Henderson - - * flow.c (tidy_fallthru_edges): Split out from ... - (delete_unreachable_blocks): ... here. - (find_basic_blocks): Use it. - -Tue Feb 8 15:51:50 2000 Richard Kenner - - * stmt.c (expand_decl): Do set RTX_UNCHANGING_P for TREE_READONLY. - -2000-02-08 Zack Weinberg - - * Makefile.in (GEN_PROTOS_OBJS): Remove libcpp.a. - (gen_protos.o): Don't depend on cpplib.h or cpphash.h. - (fix-header.o): Don't depend on cpphash.h. - - * scan.c (hashstr): New function. - * scan.h: Prototype it. - * fix-header.c: Don't include cpphash.h. Use hashstr. - * gen-protos.c: Don't include cpphash.h or cpplib.h. Use - hashstr. Report hash table statistics. Add private - definition of xrealloc. - -2000-02-08 Kaveh R. Ghazi - - * i386.h (TARGET_SWITCHES): Fix typo in option name. - -2000-02-08 Clinton Popetz - - * function.c (thread_prologue_and_epilogue_insns): Don't replace - jumps with returns unless they are jumps to the fallthru block. - -Tue Feb 8 07:53:55 2000 Jan Hubicka - - * i386.md (addqi3_cc): Fix constraints. - -Tue Feb 8 01:39:45 2000 Hans-Peter Nilsson - - * function.c (emit_return_into_block): Wrap in #ifdef HAVE_return. - -2000-02-07 Mark Mitchell - - * cpplib.c (cpp_get_token): Call CPP_BUMP_LINE after reading a - carriage return after a macro name. - -2000-02-07 Fred Fish - - * i386/beos-elf.h: (ASM_IDENTIFY_GCC): Define to nothing - so the gcc2_compiled symbol doesn't confuse BeOS debuggers. - -2000-02-07 Zack Weinberg - - * cppfiles.c (deps_output): Count spacers in deps_column. - -2000-02-07 Neil Booth - - * cppinit.c (initialize_dependency_output): If there is no - suffix, don't try to look for known suffixes. Use strrchr. - (cpp_start_read): Remove duplicate initialization. - -Mon Feb 7 18:36:41 MET 2000 Jan Hubicka - - * calls.c (compute_argument_block_size): New argument - preferred_stack_boundary. - (expand_call): update cfun->preferred_stack_boundary, update call of - compute_argument_block_size - (emit_library_call): Increate cfun->preferred_stack_boundary - to PREFERRED_STACK_BOUNDARY - (emit_library_call_value): Likewise. - * explow.c (allocate_dynamic_stack_spave): Likewise. - * function.c (prepare_function_start): Set - cfun->preferred_stack_boundary - * function.h (struct function): Add preferred_stack_boundary field. - * integrate.c (expand_inline_function): Update - cfun->preferred_stack_boundary and cfun->stack_alignment_needed. - (copy_rtx_and_substitute): Align frame to stack_alignment_needed only. - * i386.c (compute_frame_size): Use cfun->preferred_stack_boundary. - -2000-02-06 Zack Weinberg - - * cpplib.c (my_strerror, cpp_error, cpp_error_with_line, - cpp_error_from_errno, cpp_warning, cpp_warning_with_line, - cpp_pedwarn, cpp_pedwarn_with_line, - cpp_pedwarn_with_file_and_line): Move to cpperror.c. - (cpp_print_file_and_line, v_cpp_error, v_cpp_warning, - v_cpp_error_with_line, v_cpp_warning_with_line, - cpp_message_from_errno, cpp_perror_with_name): Delete. - - * cpperror.c (cpp_print_containing_files): Take starting - buffer as argument. - (cpp_file_line_for_message): Rename to cpp_print_file_and_line. - (v_cpp_message): Now called directly by all entry points. - Remove -1 case. - (cpp_pfatal_with_name, cpp_message): Delete. - (cpp_notice_from_errno, cpp_ice): New functions. - (cpp_notice): Is now for reporting error conditions, just - without an associated file. - (cpp_error, cpp_error_with_line): Don't do anything if - opts->inhibit_errors is on. - (cpp_pedwarn_with_file_and_line): Take column argument also. - - * cpplib.h: Update prototypes of exported functions. - (struct cpp_options): Add inhibit_errors. - - * cppalloc.c, cppfiles.c: Use fprintf not cpp_notice for - non-error messages. Include intl.h. - - * cppinit.c, cppmain.c: Likewise. Also, use - cpp_notice_from_errno instead of cpp_perror_with_name or - cpp_pfatal_with_name, and cpp_notice instead of cpp_message. - - * cppexp.c, cpphash.c, cppinit.c, cpplib.c: Use cpp_ice to - report internal errors. - - * cpplib.c (do_define): Switch bcopy to memcpy. - Give cpp_pedwarn_with_file_and_line a dummy column argument. - - * cpplib.c (copy_rest_of_line): Revert previous change: don't - bail out early if we hit a line comment. - -2000-02-06 Richard Henderson - - * flow.c (flow_delete_insn, make_edge, remove_edge): Export. - * basic-block.h: Declare them. - * emit-rtl.h (active_insn_p): New. - (next_active_insn, prev_active_insn): Use it. - * rtl.h: Declare it. - * function.c (emit_return_into_block): New. - (thread_prologue_and_epilogue_insns): Insert return insns instead - of epilogues when possible. - * jump.c (jump_optimize_1): Remove code to insert a return insn - on the fallthru to the exit block. - - * i386.c (ix86_can_use_return_insn_p): Fail for large poped args - and for non-empty stack frames. - * i386.md (return): Expand to return-pop as needed. - -2000-02-06 Richard Henderson - - * simplify-rtx.c (simplify_relational_operation): Canonicalize - constant to op1 for testing. - -2000-02-06 Michael Hayes - - * config/c4x/c4x.md (*ldi_on_overflow): New pattern. - (fixuns_truncqfqi2): Use it. - -2000-02-06 Richard Henderson - - * i386.c (ix86_agi_dependant): Handle pro_epilogue_adjust_stack - as a TYPE_LEA insn. - - * i386.md (widening and peepholes): Mask the constant instead of - using gen_lowpart. - -2000-02-05 Zack Weinberg - - * cppfiles.c (read_and_prescan) [case SPECCASE_QUESTION]: Bump - input pointer before possibly branching off to the backslash - code. - * cpphash.c (macroexpand): Correctly delete \r escapes when - stringifying parameters. - * cpplib.c (copy_rest_of_line): Go directly to skip_block_comment - if we can; bail out early if we hit a line comment. - (handle_directive): Treat '# 123' in an .S file just like - '# '. Discard the shifted '#' if we hit '#\n'. - Return 1 for '# not_a_directive'. - (get_directive_token): Pop macro buffers here, so that - cpp_get_token can't sneakily move past a newline. - Add sanity checks. - (cpp_get_token): goto randomchar if handle_directive returns 0. - - * cppalloc.c: Update copyright. - * cpplib.c: Merge all the static function prototypes into one - block. - * cpplib.h: Remove #if 0 block. - - * cpperror.c: Remove #ifdef EMACS block. - * cppmain.c: Likewise. - * cpphash.c: Remove #if 0 blocks. - * cppinit.c: Remove #if 0 blocks, and the -lint option. - * cpplib.c: Remove #if 0 blocks and code referencing - pcp_inside_if or for_lint. Remove duplicate error message. - Fix error messages for #else after #else or #elif. Reformat. - Remove archaic TODO list. - * cpplib.h: Remove pcp_inside_if and for_lint flags. - -2000-02-05 Zack Weinberg - - * i386/osf1elf.h: Add missing backslash to multiline string. - -2000-02-05 Kaveh R. Ghazi - - * longlong.h [sparc] (udiv_qrnnd): Avoid stringifying macro arg. - -2000-02-05 Kaveh R. Ghazi - - * Makefile.in (c-common.o): Depend on $(EXPR_H). - - * c-common.c: Include expr.h. - - * c-pragma.c (mark_align_stack): Add prototype. - - * caller-save.c (add_stored_regs): Likewise. - - * combine.c (record_promoted_value): Likewise. - - * i386.c (ix86_sched_reorder_pentium, ix86_sched_reorder_ppro): - Likewise. - - * cppinit.c (new_pending_define): Likewise. - - * cpplib.c (skip_block_comment, skip_line_comment): Likewise. - - * dwarf2out.c (save_rtx, splice_child_die, reverse_die_lists, - AT_class, AT_flag, AT_int, AT_unsigned, AT_string, AT_ref, AT_loc, - AT_addr, AT_lbl, get_AT_ref, free_AT, free_die, local_scope_p, - class_scope_p): Likewise. - - * dwarf2out.h (dwarf2out_set_demangle_name_func, - dwarf2out_add_library_unit_info): Likewise. - - * ggc.h (ggc_page_print_statistics): Likewise. - - * haifa-sched.c (propagate_deps): Likewise. - - * reg-stack.c (next_flags_user, record_label_references): Likewise. - - * rtl.h (set_stack_check_libfunc): Likewise. - - * toplev.h (set_fatal_function): Likewise. - - * toplev.c (set_fatal_function): Delete prototype. - - * diagnostic.c: Deconstify functions returning malloc'ed ptrs. - -2000-02-05 Geoff Keating - - * ginclude/ppc-asm.h (FUNC_START): Use USER_LABEL_PREFIX. - (FUNC_END): Likewise. - -2000-02-05 Michael Hayes - - * caller-save.c: Include tm_p.h. - -2000-02-05 Michael Hayes - - * Makefile.in (libgcc.a): Add $(LIBGCC1) to libgcc.a after $(LIBGCC2). - -2000-02-04 Neil Booth - - * cccp.c (main): Check 'dir' for a NULL pointer before passing - it to strcmp. - -2000-02-04 Zack Weinberg - - * recog.h: Remove NO_MD_PROTOTYPES ifdefs. - * genflags.c: Use the max_operand_1 logic from genemit.c to - calculate how many arguments gen_insn prototypes have. Remove - NO_MD_PROTOTYPES ifdefs from the generated file. - * genoutput.c: Don't define NO_MD_PROTOTYPES in the generated - file. Cast gen_insn initializers to insn_gen_fn. - * config/alpha/vms.h: Don't define NO_MD_PROTOTYPES. - * gcc.texi: Remove documentation of NO_MD_PROTOTYPES. - -2000-02-04 Kaveh R. Ghazi - - * fixinc/Makefile.in (HDR): Add machname.h. - (clean): Likewise. - -2000-02-05 Michael Hayes - - * config/c4x/c4x.h (c4x_compare_op0, c4x_compare_op1): Move ... - (c4x_regclass_map, c4x_caller_save_map, c4x_rpts_cycles): Ditto. - (c4x_cpu_version): Ditto. - * config/c4x/c4x-protos.h: ... here. - -2000-02-04 Jason Merrill - - * dwarf2out.c (add_abstract_origin_attribute): Don't call - gen_abstract_function on our context if we're a nested function. - -2000-02-05 Michael Hayes - - * config/c4x/c4x.md (fixuns_truncqfqi2): Rewrite. - * config/c4x/libgcc.S (ufix_truncqfhi2n): Fix. - -2000-02-04 Bruce Korb - - * fixinc/genfixes(machname.h): - Move the functionality from gen-machine.h into this file. - UNdef MN_NAME_PAT if there are no names to change. - Also, be a little kinder when AutoGen is not present. - - * fixinc/Makefile.in(machname.h): - Change the generation rule to use genfixes. - - * fixinc/fixfixes.c(machine_name): - machine_name_fix's functionality now dependent upon whether - MN_NAME_PAT is defined. - - * fixinc/fixtests.c(machine_name): - ditto. - - * fixinc/fixlib.c(mn_get_regexps): conditional on definition - of MN_NAME_PAT. - - * fixinc/fixlib.h(mn_get_regexps): - ditto - - * fixinc/gen-machine.h: DELETED - -2000-02-04 Jan Hubicka - Richard Henderson - - * i386.c (SAVE_REGS_FIRST): Remove. - (ix86_initial_elimination_offset): Handle only SAVE_REGS_FIRST mode. - (ix86_compute_frame_size): Likewise. - (ix86_expand_prologue): Likewise. Use pro_epilogue_adjust_stack. - (ix86_emit_restore_regs): Remove. - (ix86_emit_epilogue_esp_adjustment): Use pro_epilogue_adjust_stack - when a frame pointer is in use. - (ix86_expand_epilogue): Handle only SAVE_REGS_FIRST mode. Use mov - instead of pop to restore a register when profitable; emit leave - when profitable. - (ix86_attr_length_default): Handle pro_epilogue_adjust_stack - as a TYPE_LEA insn. - (ix86_adjust_cost): Handle pro_epilogue_adjust_stack as TYPE_ALU. - * i386.md (prologue_allocate_stack): Remove. - (epilogue_deallocate_stack): Remove. - (pro_epilogue_adjust_stack): New. - -2000-02-04 Richard Henderson - - * function.c (diddle_return_value): Rework to use a callback function. - Use current_function_return_rtx if it's been set up. - (do_clobber_return_reg, clobber_return_register): New. - (do_use_return_reg, use_return_register): New. - (expand_function_end): Use them. - * stmt.c (expand_null_return): Likewise. - * function.h: Declare them. - * flow.c (mark_regs_live_at_end): Use diddle_return_value. - (mark_reg): Change arguments as appropriate for callback. - * integrate.c (expand_inline_function): Revert 19 Jan change. - -Fri Feb 4 20:25:42 2000 Hans-Peter Nilsson - - * tm.texi (Values in Registers): Fix typo: "fo" "for". - (Misc): Say the scheduler, not the Haifa scheduler. - -2000-02-04 Clinton Popetz - - * jump.c (mark_jump_label): Add in_mem param, check SYMBOL_REFs - when in_mem is set. Update all callers. - -2000-02-04 Richard Henderson - - * i386/openbsd.h (INT_ASM_OP): Define. - -Fri Feb 4 10:51:30 2000 Hans-Peter Nilsson - - * tm.texi: Fix various typos. - -Thu Feb 3 17:17:32 2000 Steve Ellcey - - * config/pa/pa-hpux11.h (LIB_SPEC): Correct typo in !p case. - (MD_STARTFILE_PREFIX_1): New macro. - -Thu Feb 3 15:08:13 MET 2000 Jan Hubicka - - * i386.md (movstrsi, clrstrsi): Support variable sized copies, align - destination when needed. - (strmovsi, strsetsi): New expander. - (strmovsi_1, strsetsi_1): New pattern. - * i386.h (MASK_NO_ALIGN_STROP, MASK_INLINE_ALL_STROP, - TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS): New macros. - (TARGET_SWITCHES) Add align-stringops and inline-all-stringops. - * invoke.texi (align-stringops, inline-all-stringops): Document. - -Wed Feb 2 23:04:47 2000 Krister Walfridsson - - * i386/netbsd.h (INT_ASM_OP): Define. - -2000-02-02 Zack Weinberg - - * cpplib.h (cpp_reader): Add new flag, no_directives. - * cpphash.c (macarg): Set it. - * cpplib.c (handle_directive): If no_directives is on and we - find a directive, issue an error and discard the line. - -Wed Feb 2 13:07:10 2000 Jim Wilson - - * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Delete 'E' check for - FP constants. Add ! TARGET_FPU check for FP constants. - -2000-02-02 Clinton Popetz - - * flow.c (find_basic_blocks): Don't kill label_value_list - here. - (cleanup_cfg): Kill it here. - -Wed Feb 2 08:12:30 2000 Richard Kenner - - * expr.c (store_field): Ensure ALIGN is no stricter than the - alignment of EXP. - -2000-02-02 Richard Henderson - - * jump.c (delete_insn): Partially revert 19 Jan change; - don't convert unused code labels to notes at -O0. - -2000-02-02 Herman A.J. ten Brugge - - * toplev.c (rest_of_compilation): Run rebuild_jump_labels after - split_all_insns to recreate REG_LABEL notes for flow2 pass. - -2000-02-01 Richard Henderson - - * i386.c (general_no_elim_operand): New. - (nonmemory_no_elim_operand): New. - (ix86_expand_move): Copy eliminable operands before a push. - * i386-protos.h: Declare new functions. - * i386.h (CAN_ELIMINATE): Simplify. - (PREDICATE_CODES): Update. - * i386.md (push insns): Don't allow eliminable register operands. - -2000-02-01 Richard Henderson - - * flow.c (mark_regs_live_at_end): Follow expand_function_end and - replace BLKmode with DECL_RTL's mode. - -2000-02-01 Zack Weinberg - - * frame.c (find_fde): Convert for loop to do-while so compiler - sees it's always executed at least once. - * libgcc2.c (BBINBUFSIZE): Kill. - (__bb_init_prg): Use fgets. - (__bb_exit_trace_func): Don't paste strings. - * unroll.c (unroll_loop): Initialize unroll_type, not - unroll_number, and tweak logic to match. - - * i386.c (ix86_expand_int_movcc): Add explicit 'return 0' in - all failure paths. - (ix86_flags_dependant): Likewise. Disentangle control flow. - (ix86_sched_reorder): Break guts out to - ix86_sched_reorder_pentium and ix86_sched_reorder_ppro. - (ix86_sched_reorder_ppro): Initialize pair2 and insnp before - any possible use. - - * i386.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Don't - use string concatenation. Don't save and restore esi. - - * fixinc/Makefile.in (fixincl.sh): Don't depend on inclhack.def. - (machname.h): Remove script to separate file. Use two-step - sequence so target is not created if script fails. - * fixinc/gen-machname.h: New file. Handle case where no non-reserved - identifiers are defined. - * fixinc/fixlib.c (mn_get_regexps): Return a flag: if MN_NAME_PAT is - an empty string, machine_name doesn't need to do anything at - all. - (is_cxx_header): Add more cases to regexp. - * fixinc/fixlib.h: Update prototype. - * fixinc/fixtests.c, fixinc/fixfixes.c: Update callers of - mn_get_regexps. - * fixinc/fixincl.c: Define NO_BOGOSITY. - - * fixinc/inclhack.def (no_double_slash, else_endif_label): Ifdef out. - (hp_sysfile): Add missing comma. - (math_exception): Put the wrapper ifdefs at the beginning and - the end of the file. - * fixinc/fixincl.x, fixinc/inclhack.sh: Regenerate. - -2000-02-01 Richard Henderson - - * sparc.c (fp_zero_operand): Turn into a normal predicate. - Use CONST0_RTX. Update all callers. - * sparc.h, sparc-protos.h: Update accordingly. - * sparc.md (fp mov insns): Use fp_zero_operand directly - where applicable. - -Wed Feb 2 02:59:45 2000 Hans-Peter Nilsson - - * tm.texi (Values in Registers): Fix typo in HARD_REGNO_NREGS - example. - -2000-02-01 Kaveh R. Ghazi - - * Makefile.in (specs.ready): New target. - (fixinc.sh): Depend on `specs.ready' instead of `specs'. - -2000-02-01 Kaveh R. Ghazi - - * fixinc.irix: Use unique filenames for writing into /tmp, - * fixinc.ptx: Likewise. - * fixinc.sco: Likewise. - * fixinc.svr4: Likewise. - * fixinc.winnt: Likewise. - -2000-02-01 Kaveh R. Ghazi - - * tsystem.h: New file. - - * Makefile.in (libgcc2.a, stmp-multilib, crtbegin.o, crtend.o, - s-crtS): Depend on tsystem.h. - - * crtstuff.c: Include tsystem.h. - * frame.c: Likewise. - * libgcc2.c: Likewise. - -Tue Feb 1 19:53:27 CET 2000 Jan Hubicka - - * builtins.c (expand_builtin_memset): Expand for variable sized - lengths too. - -2000-02-01 David Billinghurst - - * config/mips/iris6.h (SUBTARGET_ASM_SPEC) : Default ISA based - on ABI. - -Tue Feb 1 00:57:40 2000 Hans-Peter Nilsson - - * dwarfout.c (SHORT_TYPE_SIZE): Correct default. - - * tm.texi (Type Layout): Correct entry for CHAR_TYPE_SIZE. - -2000-01-31 Chandra Chavva - - * combine.c (try_combine) [HAVE_cc0]: Trying to check the missed - case 3->2 combining (combining with splitting) in which 2 is CC0 - setter/user and 3 is user. The rest of cases 2->1 and 3->2 are - checked at the begining of the function with the aid of calling - function 'can_combine_p'. - -2000-01-31 Dave Brolley - - * cccp.c (struct argdata): Redeclare 'newlines' field as 'int'. - -2000-01-31 Jason Merrill - - * jump.c (redirect_jump): Move a NOTE_INSN_FUNCTION_END to the - new label. - -2000-01-31 Kaveh R. Ghazi - - * gansidecl.h (PROTO, VPROTO, PVPROTO): Delete macros. - - * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): - PROTO -> PARAMS. - -2000-01-30 Zack Weinberg - - * i386/386bsd.h, i386/beos-pe.h, i386/bsd386.h, i386/crtdll.h, - i386/cygwin.h, i386/dgux.h, i386/djgpp-rtems.h, i386/djgpp.h, - i386/freebsd.h, i386/gnu.h, i386/i386-aout.h, i386/i386-coff.h, - i386/i386-interix.h, i386/i386elf.h, i386/linux.h, i386/lynx-ng.h, - i386/lynx.h, i386/mach.h, i386/mingw32.h, i386/moss.h, - i386/netbsd.h, i386/next.h, i386/openbsd.h, i386/osf1elf.h, - i386/ptx4-i.h, i386/rtems.h, i386/rtemself.h, i386/sco.h, - i386/sequent.h, i386/sun.h, i386/sysv4.h, i386/uwin.h, i386/vsta.h, - i386/vxi386.h, i386/win-nt.h, i386/win32.h: - Remove -Di386 -Acpu(i386) -Amachine(i386) from CPP_PREDEFINES. - - * i386/osf1elf.h, i386/scodbx.h, i386/seq-sysv3.h, i386/sysv5.h: - Add %(cpp_cpu) to CPP_SPEC. - - * i386/osf1elf.h, i386/osfelf.h, i386/osfrose.h: - Add %(cc1_cpu) to CC1_SPEC. - -2000-01-28 Ulrich Drepper - - * c-decl.c (c_decode_option): Accept optional numeric argument to - -Wformat and set warn_format. - * c-common.c: Don't emit warning about non-constant printf format - string unless warn_format > 1. - -2000-01-30 Richard Henderson - - * alpha.md (return_internal): Allow after reload only. - -2000-01-30 Richard Henderson - - * i386.c (ix86_compute_frame_size): Omit padding1 if the - local frame size is zero. - -2000-01-30 Richard Henderson - - * alpha.c (alpha_expand_epilogue): Don't emit the return insn. - * alpha.h (EPILOGUE_USES): New. Mark $26 live. - * alpha.md (return): Turn into an expander. - (return_internal): Don't use $26. - (epilogue): Emit the return insn. - -2000-01-30 Richard Henderson - - * alpha.md (negtf2, abstf2): Fix word order thinko. - (extendsftf2): New. - (trunctfsf2): Avoid intermediate rounding errors. - -2000-01-30 Zack Weinberg - - * cppfiles.c (find_position): Drop 'colp' argument, return the - new line base. - (read_and_prescan): Adjust to match. Don't ever manipulate - line or line_base except via find_position. - -2000-01-29 Zack Weinberg - - * c-parse.in: Apply Ulrich's changes from c-parse.y. - * c-parse.y, objc/objc-parse.y, c-parse.c, objc/objc-parse.c: - Regenerate. - -2000-01-29 Zack Weinberg - - * cpperror.c (cpp_file_line_for_message): If 'line' is zero, - just print "". If 'filename' is null or an - empty string, print "" for the filename. - * cpplib.c (do_define): Don't print the 'location of the - previous definition' message if we're still parsing the - command line. - (cpp_pedwarn_with_file_and_line): Always call - cpp_file_line_for_message. - -2000-01-29 Mark Mitchell - - * flow.c (mark_regs_live_at_end): Fix typo. - -2000-01-28 Ulrich Drepper - - * c-common.c: Adjust variable names, comments, help strings to c99. - * c-lex.c: Likewise. - * c-parse.y: Likewise. - * c-tree.h: Likewise. - * cccp.c: Likewise. - * cpplib.h: Likewise. - * c-decl.c: Likewise. Recognize options with names "*99" as well. - * cppinit.c: Likewise. - -2000-01-29 Herman A.J. ten Brugge - - * c4x.h (INIT_TARGET_OPTABS): Add all missing local optab entries. - * c4x.c: Define the optab rtx values. - (c4x_add_gc_roots): Add the ggc roots for these optab rtx values. - (c4x_emit_libcall): Use new optab rtx values. - (c4x_emit_libcall3): Likewise. - (c4x_emit_libcall_mulhi): Likewise. - * c4x-protos.h: Add prototypes for optab rtx values and change - prototypes for above c4x_emit_libcall functions. - -2000-01-29 Herman A.J. ten Brugge - - * c4x.c (c4x_output_ascii): Restrict line length of output when TI - syntax is used. - (c4x_function_prologue): Use regnames intead of float_reg_names when - TI syntax is used. - (c4x_function_epilogue): Likewise. - (c4x_print_operand): Likewise. - * c4x.h (HOST_WIDE_INT_PRINT_HEX): Redefine. - * c4x.md (set_high): Disable for TARGET_TI. - -2000-01-29 Herman A.J. ten Brugge - - * c4x.h (PREFERRED_RELOAD_CLASS): Change to restrict the reloading - of framepointer + constant to ADDR_REGS class. - * c4x.md (addqi3, addqi3_noclobber_reload): Update. - * c4x.c (std_or_reg_operand): New function. - * c4x-protos.h (std_or_reg_operand): Prototype it. - -2000-01-29 Herman A.J. ten Brugge - - * t-c4x: Change qi,qf,di,df into si,sf,hi,hf to generate same - object names as libgcc2.c. - * libgcc.S: Use newly defined names. - -Fri Jan 7 19:48:04 CET 2000 Jan Hubicka - * sbitmap.c (sbitmap_first_set_bit, sbitmap_last_set_bit): New - function. - * sbitmap.h (sbitmap_first_set_bit, sbitmap_last_set_bit): Declare. - * basic_block.h (FLOW_LOOP_FIRST_BLOCK): New macro. - (FLOW_LOOP_LAST_BLOCK): Likewise. - -2000-01-21 Michael Hayes - - * basic-block.h (struct loop): New fields 'first' and 'last'. - * flow.c (flow_loops_find): Compute loop->first and loop->last. - (flow_loops_dump): Use loop->first to check for NOTE_INSN_LOOP_BEG - and loop->last to check for NOTE_INSN_LOOP_END. - -Fri Jan 28 10:57:58 2000 Jason Eckhardt - - * predict.c (estimate_probability): Use the new FIRST and LAST fields - of the loop descriptor rather than HEADER and LATCH. Also added - missing break statements as well making some coding style modifications - as suggested by Michael Hayes. - -2000-01-28 Richard Henderson - - * flow.c (find_basic_blocks): Remove do_cleanup argument. - Break out that code ... - (cleanup_cfg): ... here. - (commit_one_edge_insertion): Detect a return instruction being - emitted to an edge. Emit a barrier following; clear fallthru. - (commit_edge_insertions): Verify CFG consistency. - * function.c (expand_function_start): Kill unused variable. - (expand_function_end): Likewise. - (thread_prologue_and_epilogue_insns): Use insert_insn_on_edge - to insert the epilogue. - - * gcse.c (gcse_main): Adjust for find_basic_blocks change. - (delete_null_pointer_checks): Likewise. - * output.h: Likewise. - * reg-stack.c (reg_to_stack): Likewise. - * toplev.c (rest_of_compilation): Likewise. Run - thread_prologue_and_epilogue_insns after rebuilding the CFG. - -2000-01-28 Richard Henderson - - * Makefile.in (flow.o): Revert 24 Jan change. - * flow.c (mark_regs_live_at_end): Likewise. Force BLKmode - FUNCTION_VALUE result to DECL_RESULT's mode. - - * haifa-sched.c (schedule_insns): Don't recompute reg info - after reload. - -2000-01-28 Zack Weinberg - - * configure.in: Make --enable-cpplib the default. - * configure: Regenerate. - * gcc.dg/990119-1.c: No longer expected to fail. - -2000-01-28 Bernd Schmidt - - * jump.c (jump_optimize_1): Delete an optimization that is also done - by merge_blocks in flow. - -2000-01-28 Kaveh R. Ghazi - - * diagnostic.c (build_message_string, output_printf, - line_wrapper_printf): Add ATTRIBUTE_PRINTF_*. - (build_location_prefix): Fix non-literal format string. - -2000-01-27 Richard Henderson - - * alpha.md (trunctfsf2): New. - -2000-01-27 Andrew Hobson - - * configure.in (alpha-dec-osf5): Enable MASK_SUPPORT_ARCH. - -2000-01-27 Zack Weinberg - - * cppinit.c (cpp_handle_option): Recognize C++ comments under - -std=gnu89. - * cpplib.c (skip_block_comment, skip_line_comment): Split code - out of... - (skip_comment) ... here. Permit C++ comments in system - headers always. Warn about C++ comments in user code under - -std=gnu89 -pedantic. - (copy_comment): Use skip_comment. - (cpp_skip_hspace, cpp_get_token): skip_comment can no longer - return EOF. - (consider_directive_while_skipping, do_else, do_endif): Call - validate_else unconditionally. - (validate_else): Check CPP_PEDANTIC here. Accept non-comment - text after the conditional in a system header. - * cpplib.h (struct cpp_buffer): Add flag - warned_cplusplus_comments. - -2000-01-27 Geoffrey Keating - - * emit-rtl.c (unshare_all_rtl): Unshare virtual parameters too. - Use unshare_all_rtl_1. - (unshare_all_rtl_again): New function. - (unshare_all_rtl_1): New function split out of unshare_all_rtl. - - * function.c (purge_addressof_1): Use unshare_all_rtl_again - rather than resetting the 'used' flags ourself. - - * toplev.c (rest_of_compilation): Add current_function_decl - to the unshare_all_rtl call. - * tree.h: Prototype unshare_all_rtl. - * rtl.h: Prototype unshare_all_rtl_again here. - -2000-01-27 Geoffrey Keating - - * genoutput.c (output_prologue): Include ggc.h in generated - files. - * Makefile.in (insn-output.o): Depends on ggc.h. - -2000-01-27 Ian Dall - Hans-Peter Nilsson - - * ns32k/xm-ns32k.h (memcpy, memset, memcmp): Delete. - Remove redundant include of xm-ns32k.h. - * ns32k/xm-genix.h (memcpy, memset, memcmp): Add definitions. - Remove redundant include of xm-ns32k.h. - * ns32k/xm-netbsd.h (memcpy, memset, memcmp): No longer undefine. - Remove redundant include of xm-ns32k.h. - * ns32k/netbsd.h (TARGET_DEFAULT): Enable multiply-add instructions. - - * ns32k/ns32k.h: Update comment on multiply-add instructions. - (TARGET_SWITCHES): Add documentation strings. - (DWARF_FRAME_REGNUM): Override default definition. - (REG_CLASS_CONTENTS): Add comments. - (SUBSET_P): Format to reduce line length. - (SMALL_REGISTER_CLASSES): Make a run time option. - (GO_IF_NONINDEXED_ADDRESS): Reformat. - (GO_IF_LEGITIMATE_ADDRESS): Ensure that cfun is non NULL before - dereferencing it. Braces to avoid "ambiguous else" were misplaced. - (regclass_map): fix typo in comment. - * ns32k/ns32k.c: Add spaces before parentheses for consistant style. - Prefer gen_rtx_FOO(...) to gen_rtx(FOO,...). - (trace, reg_or_mem_operand): Delete, unused function. - (calc_address_cost): Small offsets are cheaper than large ones. - (expand_block_move): Generate more efficient code when bytes is a - known at compile time. - * ns32k/ns32k.md: Alternate constraints for multiply-add instructions. - (udivmodsi4, udivmodhi4, udivmodqi4): Use nonimmediate_operand - instead of reg_or_mem_operand. - - * ns32k/ns32k.md: Use nonimmediate_operand or stricter for outputs, - not general_operand. Similarly use "=rm" or stricter, not "=g". - For input operands, use stricter constraints than "g" if not - general_operand. Similarly use stricter predicate than - "general_operand" when stricter constraints than "g" are present, - except for matching constraints. - (movstrsi): Use "memory_operand" for operands 0 and 1. - (truncsiqi2, truncsihi2, trunchiqi2): Remove. - (udivmoddisi4_internal): Use nonimmediate_operand for operand 0, - not reg_or_mem_operand. - (udivmoddisi4): Ditto. - Use nonimmediate_operand for operand 1, not reg_or_mem_operand. - Use nonimmediate_operand for operand 3, not register_operand. - (udivmoddiqi4_internal): Use register_operand for operand 1, not - reg_or_mem_operand. - -2000-01-27 Fred Fish - - * gthr-posix.h: Fix typo; compatibily -> compatibility. - * gthr-single.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-vxworks.h: Likewise. - * gthr-win32.h: Likewise. - * gthr.h: Likewise. - -2000-01-27 Zack Weinberg - - * cppinit.c: Add " (cpplib)" to end of string printed by - -v / --version. - -2000-01-27 Richard Henderson - - * alpha.c (alpha_emit_conditional_move): Use VOIDmode when - testing for a signed comparison. - (alpha_emit_floatuns): New. - * alpha-protos.h: Declare it. - * alpha.md (floatunsdisf2, floatunsdidf2): New. - (extendsfdf2): Tidy. - -2000-01-27 Jakub Jelinek - - * config/sparc/linux64.h (CC1_SPEC): If compiling -m32 with -g but - no -g option specifying debugging format, default to -gstabs+. - -Wed Jan 26 22:19:14 1999 J"orn Rennecke - - * calls.c (special_function_p): New argument fork_or_exec. - (expand_call): When profile_arc_flag is set and the function - is in the fork_or_exec group, call __bb_fork_func first. - * libgcc2.c, _bb module (__bb_fork_func): New function. - (__bb_exit_func): If fcntl F_SETLKW is available, use it to lock - output file. - * config/svr4.h (TARGET_HAS_F_SETLKW): Define. - * tree.h (special_function_p): Update prototype. - -2000-01-26 Richard Henderson - - * alpha.c (alpha_split_tfmode_pair): New. - * alpha-protos.h: Declare it. - * alpha.md (abstf2, negtf2): New. - (movtf insn): Add input G constraint. - (movtf splitter): Use alpha_split_tfmode_pair. - -2000-01-26 Kaveh R. Ghazi - - * i386/cygwin.h: PROTO -> PARAMS. - -2000-01-26 Jakub Jelinek - - * config/sparc/sparc.c (sparc_emit_float_lib_cmp): Handle - TARGET_ARCH32 again. Handle ORDERED, UN* and LTGT comparisons - using _Qp_cmp/_Q_cmp and testing the return value. - (print_operand): Call reverse_condition_maybe_unordered if - we are handling CCFPmode or CCFPEmode. - Handle ORDERED, UN* and LTGT comparisons. - * config/sparc/sparc.md (cmptf): Use even on TARGET_ARCH32 - if not TARGET_HARD_QUAD. - (seq, sne, sgt, slt, sge, sle, beq, bne, bgt, blt, bge, ble, - bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, bltgt): - Call sparc_emit_float_lib_cmp even on TARGET_ARCH32. - Adjust gen_b* calls so that they reflect return comparison of - sparc_emit_float_lib_cmp. - -2000-01-26 Alexandre Oliva - - * config/alpha/alpha.c (alpha_emit_xfloating_cvt): Do not assume - incoming operands array is large enough for one more operand. - (alpha_emit_xfloating_arith): Likewise. - -2000-01-25 Zack Weinberg - - * fixinc/Makefile.in (machname.h): SunOS 4 sed can't handle a - file with one line and no trailing newline. - Patch by Kaveh Ghazi . - * fixinc/fixtests.c (machine_name_test): Fix fencepost error - checking if the match is on the line. - * fixinc/gnu-regex.c: Provide regerror not __regerror. - -2000-01-25 Richard Henderson - - * sparc.c (output_cbranch): Fix accidental squashing of the - fp branch pre-delay nop. - -2000-01-25 Richard Henderson - - * tree.def (UNNE_EXPR): Remove. - * c-typeck.c (build_binary_op): Don't handle it. - * expr.c (expand_expr, do_jump, do_store_flag): Likewise. - - * rtl.def (UNNE): Remove. - (LTGT): Add. - * jump.c (reverse_condition): Update accordingly. - (swap_condition): Likewise. - (comparison_dominates_p): Handle unordered comparisons. - (reverse_condition_maybe_unordered): New. - * rtl.h (reverse_condition_maybe_unordered): Declare. - - * sparc.c (select_cc_mode): Update for UNNE/LTGT. - (output_cbranch): Use reverse_condition_maybe_unordered and LTGT. - * sparc.h (REVERSIBLE_CC_MODE): Always true. Update docs. - * sparc.md (bltgt): New. - -2000-01-25 Nick Clifton - - * emit-rtl.c (emit_insn): Only check machine class insns for - improper emission of a RETURN. - -2000-01-25 Richard Henderson - - * Makefile.in (flow.o): Depend on $(EXPR_H). - * flow.c (mark_regs_live_at_end): Use hard_function_value, i.e. - duplicate the structure of diddle_return_value for keeping regs live. - -2000-01-26 Michael Hayes - - * loop.c (current_loop_info): Delete. - (consec_sets_invariant_p): Add loop argument, update callers. - (get_condition_for_loop): Likewise. - (count_nonfixed_reads, update_giv_derive): Likewise. - (simplify_giv_expr, general_induction_var): Likewise. - (consec_sets_giv, recombine_givs): Likewise. - (move_movables): Delete loop_start and loop_end arguments, - add loop argument, and update callers. - (find_mem_givs, check_final_value): Likewise. - (record_giv, maybe_eliminate_biv, maybe_eliminate_biv_1): Likewise. - (loop_invariant_p): Rename from invariant_p, add loop argument, and - update callers. - (basic_induction_var): Add loop argument, delete loop_level argument, - and update callers. - * unroll.c (iteration_info): Delete loop_start and loop_end arguments, - add loop argument, and update callers. - (find_splittable_regs, find_splittable_givs): Likewise. - (reg_dead_after_loop, loop_find_equiv_value): Likewise. - (final_biv_value, final_giv_value, back_branch_in_range_p): Likewise. - (biv_total_increment): Delete loop_start and loop_end arguments; - update callers. - (precondition_loop_p): Delete loop_start and loop_info arguments; - update callers. - * loop.h (get_condition_for_loop): Add loop argument. - (biv_total_increment): Delete loop_start and loop_end arguments. - (precondition_loop_p): Delete loop_start and loop_info arguments; - add loop argument. - (final_biv_value): Delete loop_start and loop_end arguments; - add loop argument. - (final_giv_value, back_branch_in_range_p): Likewise. - -2000-01-25 Gavin Romig-Koch - - * config/mips/mips.h (LEGITIMATE_CONSTANT_P): Fix for mips16. - -2000-01-25 Gavin Romig-Koch - - * Makefile.in (c-gperf.h) : Change the "See" pointer to - point to the new "generated_files" doc. - -2000-01-25 Clinton Popetz - - * config/fp-bit.c (_unord_f2): Fix typo. - -2000-01-25 Zack Weinberg - - * c-common.c, c-decl.c, c-lang.c, c-lex.c, c-parse.in, c-pragma.c, - c-typeck.c, objc/objc-act.c: Remove all references to obstack - functions obsoleted by GC, such as push_obstacks_nochange, - end_temporary_allocation, savealloc, saveable_tree_cons, etc. - and code which existed only to decide whether or not to call - them. Remove now-unused NESTED argument from start_function; - all callers changed. Do not change behavior based on ggc_p. - The use of the ixp_obstack in c-iterate.c and the util_obstack - in objc/objc-act.c remain; these are not obsoleted by garbage - collection. - * c-tree.h: Update prototype for start_function. - - * c-parse.y, c-parse.c, objc/objc-parse.c, objc/objc-parse.y: Rebuild. - -2000-01-25 Clinton Popetz - - * config/mips/mips.md (zero_extendsidi2_internal): Disable for - mips16. - -2000-01-25 Richard Henderson - - * sparc-protos.h (select_cc_mode): Declare. - * sparc.c (select_cc_mode): New. Handle unordered compares. - (output_cbranch): Always reverse via code change. Handle - unordered compares. Factor tests and string updates. - * sparc.h (SELECT_CC_MODE): Split out to select_cc_mode. - (REVERSIBLE_CC_MODE): Also exclude CCFPmode. - * sparc.md (bunordered, bordered): New. - (bungt, bunlt, buneq, bunge, bunle): New. - -2000-01-25 Richard Henderson - - * dwarf2out.c (dwarf2out_init): Use ggc_add_rtx_varray_root. - * ggc-common.c (ggc_add_rtx_varray_root): New. - (ggc_mark_rtx_varray): New. - (ggc_mark_rtx_varray_ptr): New. Shift all ggc_mark_foo_ptr - functions down below ggc_mark_foo. - * ggc.h (ggc_add_rtx_varray_root, ggc_mark_rtx_varray): Declare. - -2000-01-25 Richard Henderson - - * alpha.c (secondary_reload_class): Don't allocate a secondary - for integral mode memories into FLOAT_REGS. Rearrange the more - complicated memory expression inward. - -2000-01-25 Zack Weinberg - - * inclhack.def: Fixes to play nicer with FreeBSD, and - corrections to comments. - (cxx_unready): Add select expression. - (irix_sockaddr): Add bypass expression. - (machine_ansi_h_va_list): New fix. - (stdio_va_list): No need to edit _BSD_VA_LIST_. - Split out addition of "#include " to... - (stdio_stdarg_h): ... here. - (systypes_for_aix): Rename to systypes_stdlib_size_t. Apply - to stdlib.h also. Do not munge _BSD_SIZE_T_. - (sysz_stdlib_for_sun): Delete duplicate fix for unprotected - size_t. - (ultrix_ifdef): Tighten up select expression. - - * fixincl.tpl: Exorcise 'exesel'. Rewrite calculations of - re_ct and max_mach to avoid use of shell. Make printed names - match names in inclhack.def. Use static copyright date. - Don't count c_test and test expressions as requiring regex_t - slots. Add some commentary. - * inclhack.tpl: Do not include the 'This script contains N - fixup scripts' line if PROGRAM is defined. Use static - copyright date. - -2000-01-24 Jason Merrill - - * dwarf2out.c: include "varray.h", not dyn-string.h. - (ASM_OUTPUT_DWARF2_ADDR_CONST, ASM_NAME_TO_STRING): Lose. - (addr_const_to_string, addr_to_string): Lose. - (ASM_OUTPUT_DWARF_ADDR_CONST): Copy from dwarfout.c. - (struct dw_val_struct): val_addr is now an rtx. - (add_AT_addr, AT_addr, free_AT, output_aranges): Adjust. - (used_rtx_varray): New varray. - (dwarf2out_init): Initialize it. - (save_rtx): New fn. - (mem_loc_descriptor, add_const_value_attribute): Call it instead of - addr_to_string. - * arm/telf.h, arm/unknown-elf.h, mn10200.h, mn10300.h, - sparc/sp64-elf.h: Remove definition of ASM_OUTPUT_DWARF2_ADDR_CONST. - * Makefile.in (dwarf2out.o): Update dependencies. - -2000-01-24 Richard Henderson - - * i386.c (i386_dwarf_output_addr_const): New. - * i386.h (ASM_OUTPUT_DWARF_ADDR_CONST): New. - - * dwarf2out.c (mem_loc_descriptor): Call ASM_SIMPLIFY_DWARF_ADDR - if defined. - * dwarfout.c (output_mem_loc_descriptor): Likewise. - * i386.c (i386_simplify_dwarf_addr): New. - * i386.h (ASM_SIMPLIFY_DWARF_ADDR): New. - -Mon Jan 24 16:56:10 2000 Jim Wilson - - * dwarf2out.c (gen_struct_or_union_type_die): Set complete if - TYPE_STUB_DECL is NULL. - -2000-01-24 Richard Henderson - - * builtins.c (expand_tree_builtin): Move ... - * c-common.c (expand_tree_builtin): ... here. - -2000-01-25 Michael Hayes - - * loop.h (LOOP_INFO): New accessor macro. - * basic-block.h (struct loop): Rename field `info' to `aux'. - * loop.c (scan_loop): Replace loop->info with LOOP_INFO (loop). - (prescan_loop, strength_reduce, check_dbra_loop, insert_bct): Likewise. - * unroll.c (loop_iterations, unroll_loop): Likewise. - -2000-01-24 Christopher Faylor - - * config/i386/t-cygwin: Accommodate new winsup directory layout - when searching for include files. - -2000-01-24 Richard Henderson - - * rtl.def: Add unordered fp comparisons. - * tree.def: Likewise. - * tree.h: Add ISO C 9x unordered fp comparison builtins. - - * builtins.c (expand_tree_builtin): New function. - * c-typeck.c (build_function_call): Use it. - (build_binary_op): Support unordered compares. - * c-common.c (c_common_nodes_and_builtins): Add unordered compares. - - * combine.c (known_cond): Handle reverse_condition returning UNKNOWN. - (reversible_comparison_p): Allow UNORDERED/ORDERED to be reversed. - * cse.c (fold_rtx): Check FLOAT_MODE_P before reversing. - (record_jump_equiv): Handle reverse_condition returning UNKNOWN. - * jump.c (reverse_condition): Don't abort for UNLE etc, but - return UNKNOWN. - (swap_condition): Handle unordered compares. - (thread_jumps): Check can_reverse before reversing. - * loop.c (get_condition): Likewise. Allow UNORERED/ORDERED to be - reversed for FP. - - * optabs.c (can_compare_p): New argument CODE. Verify branch or - setcc is present before acking for cmp_optab. Update all callers. - (prepare_float_lib_cmp, init_optabs): Handle UNORDERED. - * expmed.c (do_cmp_and_jump): Update for can_compare_p. - * expr.c (expand_expr): Likewise. Support unordered compares. - (do_jump, do_store_flag): Likewise. - * expr.h (enum libfunc_index): Add unordered compares. - - * Makefile.in (FPBIT_FUNCS): Add _unord_sf. - (DPBIT_FUNCS): Add _unord_df. - * config/fp-bit.c (_unord_f2): New. - * fp-test.c (main): Try unordered compare builtins. - - * alpha-protos.h (alpha_fp_comparison_operator): Declare. - * alpha.c (alpha_comparison_operator): Check mode properly. - (alpha_swapped_comparison_operator): Likewise. - (signed_comparison_operator): Likewise. - (alpha_fp_comparison_operator): New. - (alpha_emit_conditional_branch): Handle unordered compares. - * alpha.h (PREDICATE_CODES): Update. - * alpha.md (fp compares): Use alpha_fp_comparison_operator. - (bunordered, bordered): New. - -2000-01-24 Richard Henderson - - * alpha.c (alpha_emit_xfloating_cvt): Thinko in operand manipulation. - * alpha.md (movtf): New expander, insn, and splitter. - -Mon Jan 24 19:49:47 MET 2000 Jan Hubicka - - * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of - dead registers. - -Mon Jan 24 17:37:31 MET 2000 Jan Hubicka - - * i386.h (FIRST_PSEUDO_REGISTER): Set to 21. - (FIXED_REGISTERS, CALL_USED_REGISTERS, - REG_ALLOC_ORDER): Add frame pointer - (FRAME_POINTER_REGNUM): Set to 20 - (HARD_FRAME_POINTER_REGNUM): New macro. - (ELIMINABLE_REGS): Eliminate ARG_POINTER and FRAME_POINTER - to HARD_FRAME_POINTER. - (REGNO_OK_FOR_BASE_P): Accept FRAME_POINTER_REGNUM - (REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. - (REG_OK_FOR_BASE_NONSTRICT_P): Likewise. - (HI_REGISTER_NAMES): Add "frame". - (CAN_ELIMINATE): Handle FRAME_POINTER_REGNUM elimination. - (debug_reg): Handle FRAME_POINTER_REGNUM. - (reg_class): Add arg pointer and frame pointer to NON_Q_REGS, - GENERAL_REGS and INDEX_REGS. - * i386.c (SAVED_REGS_FIRST): new macro. - (AT_BP): Use hard_frame_pointer_rtx instead of frame_pointer_rtx - (ix86_decompose_address, memory_address_length): Likewise. - (regclass_map): Add frame pointer. - (call_insn_operand): Handle frame_pointer_rtx. - (reg_no_sp_operand): Likewise. - (ix86_decompose_address): Handle frame_pointer_rtx as stack_pointer_rtx. - (print_operand, legitimize_pic_address): Fix formating. - (ix86_compute_frame_size): Make static, update prototype, new - parameters padding1, padding2, use ix86_nsaved_regs, use - stack_alignment_needed. - (ix86_initial_elimination_offset): Handle FRAME_POINTER_REGNUM - to HARD_FRAME_POINTER_REGNUM conversions. - (ix86_expand_prologue): Handle SAVED_REGS_FIRST prologues. - (ix86_expand_epilogue): Handle SAVED_REGS_FIRST epilogues. - (print_reg): Abort on FRAME_POINTER_REGNUM - -Mon Jan 24 16:50:08 MET 2000 Jan Hubicka - - * i386.h (PREDICATE_CODES): Add aligned_operand. - * i386.c (aligned_operand): New function. - (ix86_aligned_p): Kill. - * i386.md (movhi_1): Emit mov for aligned operands. - (promoting peep2s): Use aligned_operand. - -2000-01-23 Zack Weinberg - - * fixinc/fixfixes.c (fix_char_macro_uses): Correct regular - expression to allow underscores in macro names. - (fix_char_macro_defines): Increment scanning pointer. - -2000-01-23 Richard Henderson - - * alpha/osf.h (TARGET_HAS_XFLOATING_LIBS): Define. - * alpha/osf5.h: New file. - * configure.in (alpha-*-osf5): Add it to tm_file. - - * emit-rtl.c (operand_subword): Support TFmode on a 64-bit target. - - * alpha-protos.h (alpha_emit_xfloating_arith): Declare. - (alpha_emit_xfloating_cvt, function_arg): Declare. - * alpha.c (alpha_emit_conditional_branch): Call - alpha_emit_xfloating_compare for TFmode compares. - (alpha_lookup_xfloating_lib_func): New. - (alpha_compute_xfloating_mode_arg): New. - (alpha_emit_xfloating_libcall): New. - (alpha_emit_xfloating_arith): New. - (alpha_emit_xfloating_compare): New. - (alpha_emit_xfloating_cvt): New. - (print_operand): Add default abort case. - (function_arg): Mind FUNCTION_ARG_PASS_BY_REFERENCE. - * alpha.h (TARGET_HAS_XFLOATING_LIBS): New. - (BIGGEST_ALIGNMENT): Increase to 128 bits. - (RETURN_IN_MEMORY): True for TF/TCmode. - (ALPHA_ARG_SIZE): TF/TCmode is passed indirect. - (FUNCTION_ARG): Move to function_arg. - (FUNCTION_ARG_PASS_BY_REFERENCE): New. - (ASM_OUTPUT_LONG_DOUBLE): New. - (ASM_OUTPUT_DOUBLE): Always output bits. - * alpha.md (addtf3, divtf3, multf3, subtf3, cmptf): New. - (fix_trunctfdi2, floatditf2, floatunsditf2): New. - (extenddftf2, trunctfdf2): New. - -2000-01-23 Alexandre Oliva - - * config/sparc/sol2-sld-64.h (TRANSFER_FROM_TRAMPOLINE): Moved... - * config/sparc/sol2.h: ... here. - -2000-01-24 Michael Hayes - - * basic-block.h (struct loops): New field `levels'. - * flow.c (flow_loops_level_compute): Traverse all outer loops. - (flow_loop_level_compute): Initialize level to 1. - (flow_loops_find): Set loops->levels. - (flow_loops_dump): Print loops->levels. - -2000-01-23 Richard Henderson - - * libgcc2.c (dwarf_reg_size_table): Size with DWARF_FRAME_REGISTERS. - (throw_helper): Iterate over DWARF_FRAME_REGISTERS. - -2000-01-23 Richard Henderson - - * i386.c (dbx_register_map, svr4_dbx_register_map): New. - * i386.h (DBX_REGISTER_NUMBER): Use them. - * i386/beos-elf.h, i386/freebsd-elf.h, i386/i386elf.h: Likewise. - * i386/linux.h, i386/osfrose.h, i386/ptx4-i.h: Likewise. - * i386/rtemself.h, i386/sco5.h, i386/sysv4.h: Likewise. - * i386/sequent.h: Kill incorrect comment. - -2000-01-23 Mark Mitchell - - * ggc-page.c (struct page_entry): Make `context_depth' an - `unsigned short'. - (struct globals): Likewise. - -2000-01-23 Clinton Popetz - - * loop.c (check_dbra_loop): When checking a loop for - reversability, check the source of any stores to ensure - they don't depend on an initial value. - -2000-01-23 Michael Hayes - - * config/c4x/c4x.h (ASM_OUTPUT_BSS): Redefine. - -2000-01-22 Zack Weinberg - - * fixinc/fixincl.c: Move declarations of 'pz_fname' and - 'pz_scan' into scope of entire function. Only affects - compiles with -DDEBUG. - -2000-01-22 Alan Modra - - * config/elfos.h (UNIQUE_SECTION): Restore uninitialized data - section naming to that prior to 2000-01-07 patch. - * config/mips/elf.h (UNIQUE_SECTION): Ditto. - * config/mips/elf64.h (UNIQUE_SECTION): Ditto. - * config/mips/iris6gld.h (UNIQUE_SECTION): Ditto. - * config/i386/interix.c (UNIQUE_SECTION): Ditto. - * config/i386/winnt.c (UNIQUE_SECTION): Ditto. - -2000-01-22 Bernd Schmidt - - * config/arm/arm.c (soft_df_operand): Reject SUBREGs containing a - constant. - -2000-01-21 Jim Wilson - - * fixinc/inclhack.tpl: Test for directory before trying to cd into it. - * fixinc/fixincl.sh, fixinc/inclhack.sh: Regenerate. - -2000-01-21 Zack Weinberg - - * cpphash.c (change_newlines): Delete function. - (struct argdata): Delete 'newlines' and 'use_count' fields. - (macroexpand): Remove code referencing those fields. - -2000-01-22 Michael Hayes - - * loop.c (loops_info): New variable. - (loop_optimize): Allocate loops->array and free it on exit. - Allocate memory for loops_info and assign to each loop, - replacing alloca. - (find_and_verify_loops): Do not allocate loops->array. - -2000-01-21 Zack Weinberg - - * fixinc/fixfixes.c (machine_name_fix): Don't free 'scratch'. - -2000-01-21 Jakub Jelinek - - * config/sparc/sparc.md (movsi_pic_label_ref): Avoid creating new - pseudos if expanded after first flow. - (movdi_pic_label_ref): Likewise. - -2000-01-20 Richard Henderson - - * jump.c (jump_optimize_1): Don't do addr_vec optimizations at -O0. - -2000-01-20 Zack Weinberg - - * Makefile.in (fixinc.sh): Depend on specs. - * fixinc/Makefile.in: Add rule to create machname.h. - (fixlib.o): Depend on machname.h. - * fixinc/fixtests.c (machine_name): New test. - * fixinc/fixfixes.c (machine_name): New fix. - * fixinc/fixlib.c (mn_get_regexps): New helper function for - the machine_name test and fix. - * fixinc/fixlib.h: Prototype it. - * fixinc/inclhack.def (machine_name): Use the C test and fix. - * fixinc/fixincl.x, fixinc/inclhack.sh: Rebuild. - - * gcc.c (do_spec_1) [case P]: Take care not to create - identifiers with three leading or trailing underscores. - - * fixinc/Makefile.in (FIXINC_DEFS): Add -DIN_GCC. - (fixincl): Don't specify libraries twice on link line. - (gnu-regex.o): Remove special rule. - * fixinc/gnu-regex.c: Define REGEX_MALLOC if C_ALLOCA was - defined by config.h. Do not define _REGEX_RE_COMP. - (regcomp): Allocate and initialize a fastmap. - * fixinc/gnu-regex.h: Do not define _REGEX_RE_COMP. - -2000-01-20 Brad Lucier - - * Makefile.in (predict.o): Depend on $(EXPR_H), not expr.h. - -2000-01-19 Richard Henderson - - * flow.c (propagate_block): Replace FIRST, LAST and BNUM - arguments with BB. Update all callers. Tidy line wrapping. - -2000-01-19 Clinton Popetz - - * emit-rtl.c (try_split): Return last_insn if we split the - last_insn. - -Thu Jan 20 01:01:23 MET 2000 Jan Hubicka - - * i386-protos.h (ix86_compute_frame_size): Remove prototype. - (ix86_initial_elimination_offset): Declare. - * i386.c (ix86_nsaved_regs): Break out from ... - (ix86_can_use_return_insn_p): ... here. - (ix86_emit_save_regs): Break out from ... - (ix86_expand_prologue): ... here. - (ix86_emit_epilogue_esp_adjustment, ix86_emit_restore_regs): Break - out from ... - (ix86_expand_epilogue): ... here. - (ix86_compute_frame_size): Make static, add prototype. - (ix86_initial_elimination_offset): Break out from ... - * i386.h (INITIAL_ELIMINATION_OFFSET): ... here. - -2000-01-19 Kaveh R. Ghazi - - * recog.h (OUT_FCN): Delete. - - * vax.md: Call `get_insn_template' instead of OUT_FCN. - -2000-01-19 Kaveh R. Ghazi - - * cppalloc.c: PROTO -> PARAMS. - * cpperror.c: Likewise. - * cppfiles.c: Likewise. - * cpplib.c: Likewise. - * cpplib.h: Likewise. - - * config/arm/arm-protos.h: PROTO -> PARAMS. - * config/arm/arm.c: Likewise. - * config/c4x/c4x.c: Likewise. - * config/fr30/fr30-protos.h: Likewise. - * config/nextstep.c: Likewise. - * config/pa/pa.c: Likewise. - * config/pj/pj.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/v850/v850-protos.h: Likewise. - * config/v850/v850.c: Likewise. - -2000-01-19 Kaveh R. Ghazi - - * i370-protos.h: New file. - - * i370.c: Include tm_p.h. Fix compile time warnings. - - * i370.h: Move prototypes to i370-protos.h. Fix compile time - warnings. - - * i370.md: Likewise. - -2000-01-19 Kaveh R. Ghazi - - * real.c (enan, einan, eiisnan, eiisneg, make_nan): Wrap in NANS. - (target_isinf, target_isnan, eisnan): Mark parameter with - ATTRIBUTE_UNUSED. - (eiisinf): Wrap in INFINITY. - (etoe113, etoe64, etoe53, etoe24): Wrap label `nonorm' in INFINITY. - (ibmtoe): Remove unused variable `rndsav'. - -Wed Jan 19 20:23:06 2000 J"orn Rennecke - - * sh.h (PASS_IN_REG_P): Remove extraneous paranthesis. - (GO_IF_LEGITIMATE_ADDRESS): Added missing tab. - -2000-01-19 Zack Weinberg - - * fixinc/Makefile.in: Correct dependencies of fixincl and fixincl.o. - * fixinc/fixfixes.c (IO_use, CTRL_use, IO_defn, CTRL_defn): New fixes. - (fix_char_macro_defines, fix_char_macro_uses): New functions. - - * fixinc/fixlib.c (is_cxx_header): Do the text scan with a regexp. - Recognize Emacs mode markers also. - * fixinc/fixtests.c (else_endif_label): Fix bug in recognition of - C++ comments in C++ headers. Call is_cxx_header only if - necessary. - - * fixinc/inclhack.def (avoid_bool): Add select for the problem and - bypass for ncurses. - (bsd43_io_macros, io_def_quotes, ioctl_fix_ctrl): Replace with... - (io_def_quotes, io_use_quotes, ctrl_def_quotes, ctrl_use_quotes): - ... these, which use the new C fixes. - (math_exception): Escape literal '+' in bypass expression. - - * fixinc/fixincl.x, fixinc/fixincl.sh, fixinc/inclhack.sh: - Regenerate. - -2000-01-19 Geoff Keating - - * rtlanal.c (reg_referenced_p): A CLOBBER of a MEM uses any REGs - inside the MEM. - -2000-01-20 Michael Hayes - - * loop.c (loop_optimize): Allocate loop_info structure for each loop - prior to calling scan_loop. - -Wed Jan 19 19:54:38 2000 J"orn Rennecke - - * sh.c (find_barrier, gen_block_redirect): Fix indentation. - (split_branches, calc_live_regs): Likewise. - -Wed Jan 19 19:12:36 2000 J"orn Rennecke - - * sh.md (fpu_single, fp_mode): New attributes. - -2000-01-20 Michael Hayes - - * loop.c (current_loop_info): Renamed from loop_info_data - and changed to a pointer. - (loop_optimize): Allocate loop_info structure for each loop - and initialize to zero. - (scan_loop): Set current_loop_info. - - * unroll.c (loop_iterations): Don't abort if REG_USERVAR_P set - on iteration_var. - -2000-01-19 Richard Henderson - - * stupid.c: Die die die. - * Makefile.in (OBJS): Remove stupid.o. - (stupid.o): Likewise. - - * except.c (emit_eh_context): Don't emit USEs for stupid. - * explow.c (probe_stack_range): Likewise. - * flags.h (obey_regdecls): Remove. - * flow.c (find_basic_blocks): Don't run try_merge_blocks - when not optimizing. - (life_analysis): Limit data collection when not optimizing. - (mark_regs_live_at_end): Always mark the return value registers. - (mark_used_regs): Remove dummy RETURN case. - (print_rtl_with_bb): Don't consult obey_regdecls. - * function.c (use_variable, use_variable_after): Remove. - (assign_parms): Consult optimize not obey_regdecls. - (expand_function_start): Don't emit USEs for stupid. - (expand_function_end): Likewise. - * global.c (build_insn_chain): Export. - * integrate.c (expand_inline_function): Kill return-value USE - handling code. - * jump.c (jump_optimize_1): Do simple jump optimizations and - dead code elimination. - (calculate_can_reach_end): Remove check_deleted argument. - (delete_insn): Patch out insns even when not optimizing. - * local-alloc.c (block_alloc): Don't do tying when not optimizing. - * rtl.h (use_variable, use_variable_after): Remove declarations. - (build_insn_chain): Declare. - * stmt.c (expand_value_return): Don't emit USEs for stupid. - (expand_end_bindings): Likewise. - (expand_decl): Likewise. Consult optimize not obey_regdecls. - * toplev.c (obey_regdecls): Remove. - (rest_of_compilation): Don't set it. Kill stupid in favor of - flow1, local-alloc, and reload. - (main): Don't set obey_regdecls. - - * config/nextstep.c (handle_pragma): Likewise. - - * alpha/alpha.md (allocate_stack): Don't emit USEs for stupid. - - * arm/arm.h (CONDITIONAL_REGISTER_USAGE): Don't fix reg 0 for stupid. - -2000-01-18 Kaveh R. Ghazi - - * alpha-protos.h: PROTO -> PARAMS. - * alpha.c: Likewise. - * elf.h: Likewise. - * h8300.c: Likewise. - * i386-protos.h: Likewise. - * i386.c: Likewise. - * m32r-protos.h: Likewise. - * m32r.c: Likewise. - * mips.c: Likewise. - * mips.md: Likewise. - * gmon-sol2.c: Likewise. - * sparc.c: Likewise. - -2000-01-18 Kaveh R. Ghazi - - * ns32k-protos.h: New file. - - * ns32k.c: Fix compile time warnings. - - * ns32k.h: Move prototypes to ns32k-protos.h. Fix compile time - warnings. - - * ns32k.md: Likewise. - -2000-01-18 Kaveh R. Ghazi - - * vax-protos.h: New file. - - * vax.c: Fix compile time warnings. - - * vax.h: Move prototypes to vax-protos.h. Fix compile time - warnings. - - * vax.md: Likewise. - - * vaxv.md: Likewise. - -2000-01-18 Kaveh R. Ghazi - - * romp-protos.h: New file. - - * romp.c: Fix compile time warnings. - - * romp.h: Move prototypes to romp-protos.h. Fix compile time - warnings. - - * romp.md: Likewise. - -2000-01-18 Kaveh R. Ghazi - - * we32k-protos.h: New file. - - * we32k.c: Fix compile time warnings. - - * we32k.h: Move prototypes to we32k-protos.h. Fix compile time - warnings. - -2000-01-18 Kaveh R. Ghazi - - * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. - - * except.c (eh_regs): Likewise. - - * final.c (output_operand): Likewise. - - * fold-const.c (target_isinf, target_isnan): Likewise. - -Tue Jan 18 16:19:55 MET 2000 Jan Hubicka - - * i386.h (BIGGEST_ALIGNMENT): Set to 128. - (BIGGEST_FIELD_ALIGNMENT): Set to (TARGET_ALIGN_DOUBLE ? 64 : 32) - - * i386.md (memstr): Do not use rep stosb for counts divisible by 4 - when optimize_size. - (clrstrsi): Rewrite. - (strsethi, strsetqi): New expanders. - (strsethi_1, strsetqi_1, rep_stossi, rep_stosqi): New insn patterns. - (cmpstrsi): Emit compare insn before cmpstrsi_1 - (cmpstrsi_nz): use flags, set type to str, prefix_length to 1. - (strlensi_1): Likewise. - (cmpstrsi_1): Likewise; do not output compare. - (strlen expander): Do not unroll when optimizing for size. - (*subsi3_carry): Rename to subsi3_carry - (addqi3_cc): New pattern. - * i386.h (processor_costs): Add move_ratio field. - (MOVE_RATIO): Use move_ratio field, set to 3 for OPTIMIZE_SIZE - * i386.c (*_cost): Set move_ratio. - (x86_unroll_strlen): Enable for Athlon, PPro and K6 too. - (x86_expand_strlensi_1): Rewrite the main loop. - -2000-01-17 Richard Henderson - - * combine.c (combine_simplify_rtx): Give FLOAT_STORE_FLAG_VALUE a mode. - * cse.c (find_comparison_args, fold_rtx): Likewise. - * integrate.c (subst_constants): Likewise. - * loop.c (get_condition): Likewise. - - * tm.texi (FLOAT_STORE_FLAG_VALUE): Update docs. - - * alpha.h (FLOAT_STORE_FLAG_VALUE): Use REAL_VALUE_ATOF. - -2000-01-18 Martin v. Löwis - - * c-parse.in (SAVE_WARN_FLAGS): Create an INTEGER_CST. - (RESTORE_WARN_FLAGS): Unpack it. - Change semantic type of extension to ttype. - * c-common.c (split_specs_attrs): Expect an INTEGER_CST. - * c-parse.y, c-parse.c, objc/objc-parse.y, - objc/objc-parse.c: Regenerate. - -2000-01-17 Zack Weinberg - - * fixinc/fixlib.c: Add copyright notice. - (compile_re): New function. - * fixinc/fixlib.h: Prototype compile_re. - - * fixinc/fixfixes.c, fixinc/fixtests.c, fixinc/fixincl.c: - Use compile_re to compile regular expressions. - - * fixinc/fixincl.c (egrep_test): Don't bother asking regexec - where the pattern matched. - - * fixinc/inclhack.def (sun_memcpy): Move to AAB_sun_memcpy, - use 'replace'. - (ultrix_ansi_compat): Likewise. - (interactv_add1): Rename to 'isc_omits_with_stdc', remove shell test, - add egrep test. - (interactv_add2, interactv_add3): Delete. - (x11_sprintf): Don't use filename glob. - * fixinc/fixincl.x, fixinc/inclhack.sh, fixinc/fixincl.sh: - Regenerate. - -2000-01-17 Kaveh R. Ghazi - - * print-rtl.c: PROTO -> PARAMS. - * real.c: Likewise. - * reg-stack.c: Likewise. - * resource.c: Likewise. - * sdbout.h: Likewise. - * simplify-rtx.c: Likewise. - * stor-layout.c: Likewise. - * stupid.c: Likewise. - * xcoffout.c: Likewise. - * xcoffout.h: Likewise. - -2000-01-17 Kaveh R. Ghazi - - * toplev.c: PROTO -> PARAMS. - * toplev.h: Likewise. - * tree.c: Likewise. - * tree.h: Likewise. - * unroll.c: Likewise. - * varasm.c: Likewise. - * varray.c: Likewise. - * varray.h: Likewise. - -2000-01-17 Kaveh R. Ghazi - - * reload.c: PROTO -> PARAMS. - * reload.h: Likewise. - * reload1.c: Likewise. - * reorg.c: Likewise. - * resource.h: Likewise. - * rtl.c: Likewise. - * rtl.h: Likewise. - * rtlanal.c: Likewise. - * sbitmap.h: Likewise. - * sdbout.c: Likewise. - * stack.h: Likewise. - * stmt.c: Likewise. - * system.h: Likewise. - -2000-01-17 Kaveh R. Ghazi - - * machmode.h: PROTO -> PARAMS. - * mbchar.h: Likewise. - * mips-tdump.c: Likewise. - * mips-tfile.c: Likewise. - * optabs.c: Likewise. - * output.h: Likewise. - * prefix.c: Likewise. - * profile.c: Likewise. - * protoize.c: Likewise. - * real.h: Likewise. - * recog.c: Likewise. - * recog.h: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * regs.h: Likewise. - -2000-01-17 Kaveh R. Ghazi - - * ggc-common.c: PROTO -> PARAMS. - * ggc-page.c: Likewise. - * ggc-simple.c: Likewise. - * ggc.h: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * gthr-win32.h: Likewise. - * haifa-sched.c: Likewise. - * halfpic.h: Likewise. - * integrate.c: Likewise. - * integrate.h: Likewise. - * jump.c: Likewise. - * lcm.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. - -2000-01-17 Kaveh R. Ghazi - - * genattr.c: PROTO -> PARAMS. - * 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. - -2000-01-16 Mark Mitchell - - * tree.h (BINFO_VPTR_FIELD): Augment documentation. - -2000-01-16 Alexandre Oliva - - * aclocal.m4 (AC_FUNC_MMAP_ZERO): New macro. - * configure.in (AC_FUNC_MMAP_ZERO): Use instead of AC_FUNC_MMAP. - * ggc-page.c: Replace HAVE_MMAP with HAVE_MMAP_ZERO. - * configure, config.in: Rebuilt. - -2000-01-16 Zack Weinberg - - * config/i386/i386.md: Add peephole to merge successive stack - adjusts. - -Sat Jan 15 15:41:14 EST 2000 John Wehle (john@feith.com) - - * gcse.c (insert_insn_end_bb): Use emit_block_insn_before - instead of emit_insn_before. Also handle NOTE_INSN_BASIC_BLOCK - when walking backwards to find all the parameter loads when - the basic block ends in a call. - -2000-01-15 Michael Hayes - - * loop.c (this_loop_info): Delete. - (uid_loop): Add in place of uid_loop_num. All uses updated. - (loop_number_exit_count): Delete and replace with entry in loop - structure. All uses updated. - (loop_number_loop_starts, loop_number_loop_ends): Likewise. - (loop_number_loop_cont, loop_number_cont_dominator): Likewise. - (loop_outer_loop): Likewise. - (loop_invalid, loop_number_exit_labels): Likewise. - (loop_used_count_register): Delete and replace with entry in - loop_info structure. - (find_and_verify_loops): Add loops argument. - (verify_dominator, mark_loop_jump, prescan_loop): Replace loop_start, - loop_end, etc. arguments with loop structure pointer. All callers - changed. - (loop_reg_used_before_p, scan_loop, strength_reduce): Likewise. - (check_dbra_loop, next_insn_in_loop, try_copy_prop): Likewise. - (load_mems_and_recount_loop_regs_set, load_mems): Likewise. - (insert_bct): Likewise. - (basic_induction_var): New argument level. - * loop.h (struct loop_info): Delete fields num, loops_enclosed, - vtop, and cont. Add used_count_register. - (uid_loop): Delete declaration. - (loop_number_exit_count): Likewise. - (loop_number_loop_starts, loop_number_loop_ends): Likewise. - (loop_number_loop_cont, loop_number_cont_dominator): Likewise. - (loop_outer_loop, loop_used_count_register): Likewise. - (loop_invalid, loop_number_exit_labels): Likewise. - (unroll_loop): Replace loop_start and loop_end arguments - with loop structure pointer. - (loop_precondition_p, loop_iterations): Likewise. - Include basic-block.h. - * unroll.c: (unroll_loop): Replace loop_start and loop_end arguments - with loop structure pointer. - (loop_precondition_p, loop_iterations): Likewise. - * basic-block.h (struct loop): New entries vtop, cont, - cont_dominator, start, end, top, scan_start, exit_labels, - exit_count. - * Makefile.in (LOOP_H): Add basic-block.h to dependencies. - -2000-01-15 Gerald Pfeifer - - * defaults.h (ASM_OUTPUT_ASCII): Use ISDIGIT. - -2000-01-14 Nathan Sidwell - - * config.in: Rebuilt for 2000-01-13 change to acconfig.h. - -2000-01-14 Kaveh R. Ghazi - - * pdp11-protos.h: New file. - - * pdp11.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * pdp11.h: Move prototypes to pdp11-protos.h. Fix compile time - warnings. - - * pdp11.md: Likewise. - - * 2bsd.h: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * mn10300-protos.h: New file. - - * mn10300.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * mn10300.h: Move prototypes to mn10300-protos.h. Fix compile time - warnings. - - * mn10300.md: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * mn10200-protos.h: New file. - - * mn10200.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * mn10200.h: Move prototypes to mn10200-protos.h. Fix compile time - warnings. - - * mn10200.md: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * h8300-protos.h: New file. - - * h8300.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * h8300.h: Move prototypes to h8300-protos.h. Fix compile time - warnings. - - * h8300.md: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * varasm.c (asm_output_bss): Mark parameters with ATTRIBUTE_UNUSED. - (asm_emit_uninitialised): Likewise. - -2000-01-13 Gavin Romig-Koch - - * config/mips/mips.h (ISA_HAS_INT_CONDMOVE): New. - * config/mips/mips.md: Use ISA_HAS_INT_CONDMOVE. - -2000-01-14 Clinton Popetz - - * config/mips/mips.c (override_options): Don't turn on extra - alignment for mips16. - -2000-01-14 Clinton Popetz - - * config/mips/mips.c (mips_va_arg): Fix fprv for the 32 bit - eabi, and make sure queued POSTINCREMENT rtl is emitted at - the right point. - -2000-01-14 Clinton Popetz - - * builtins.c (PAD_VARARGS_DOWN): Define. - (std_expand_builtin_va_arg): Use the above macro. - * config/mips/mips.h (PAD_VARARGS_DOWN): Define. - * tm.texi (Register Arguments): Document the above macro. - -2000-01-14 Nick Clifton - - * emit-rtl.c (emit_insn): If checking is enabled, make sure - that this function has not been used to emit a jump - instruction. - - * jump.c (return_jump_1): Cope with being passed a null rtx. - -2000-01-14 Kaveh R. Ghazi - - * eh-common.h: PROTO -> PARAMS. - * emit-rtl.c: Likewise. - * errors.c: Likewise. - * errors.h: Likewise. - * except.c: Likewise. - * except.h: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * expr.h: Likewise. - * final.c: Likewise. - * fix-header.c: 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. - -2000-01-14 Kaveh R. Ghazi - - * sh-protos.h: New file. - - * sh.c: Include insn-config.h, toplev.h, recog.h and tm_p.h. - Add static prototypes. Fix compile time warnings. - - * sh.h: Move prototypes to sh-protos.h. Fix compile time warnings. - * sh.md: Likewise. - * elf.h: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * arc-protos.h: New file. - - * arc.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * arc.h: Move prototypes to arc-protos.h. Fix compile time - warnings. - - * arc.md: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * dsp16xx-protos.h: New file. - - * dsp16xx.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * dsp16xx.h: Move prototypes to dsp16xx-protos.h. Fix compile time - warnings. - - * dsp16xx.md: Likewise. - -2000-01-14 Kaveh R. Ghazi - - * convex-protos.h: New file. - - * convex.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * convex.h: Move prototypes to convex-protos.h. Fix compile time - warnings. - -2000-01-14 Kaveh R. Ghazi - - * elxsi-protos.h: New file. - - * elxsi.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * elxsi.h: Move prototypes to elxsi-protos.h. Fix compile time - warnings. - - * elxsi.md: Likewise. - -2000-01-14 Clinton Popetz - - * config/mips/mips.h (REGISTER_MOVE_COST): Remove redundant - case for moving from HI/LO/HI_LO_REG. This makes the behavior - match the comment for MIPS16. - -Fri Jan 14 00:28:06 2000 Jeffrey A Law (law@cygnus.com) - - * flow.c (split_edge): Do not call set_block_for_insn if we - do not have a basic_block_for_insn structure. - - * fr30.h (TRAMPOLINE_TEMPLATE): Use nops to ensure the static chain - and destination functions are 32bit aligned within the trampoline. - (TRAMPOLINE_SIZE, INITIALIZE_TRAMPOLINE): Corresponding changes. - (TRAMPOLINE_ALIGNMENT): Define. - - * cse.c (cse_insn): When changing (set (pc) (reg)) to - (set (pc) (label_ref)), verify the change creates a valid insn. - - * fr30.c (call_operand): Tighten and rework to match rules for - call RTL expressions. - * fr30.h (PREDICATE_CODES, case call_operand): Only allow MEMs. - * fr30.md (call patterns): Improve constraints. - -Thu Jan 13 23:44:03 2000 Richard Henderson - - * fr30.c (fr30_expand_epilogue): Revert last change. - Use emit_jump_insn for the return insn. - -Thu Jan 13 14:46:03 2000 Jason Eckhardt - Stan Cox - - * predict.c: New file. Preliminary infrastructure work for static - branch prediction and basic block reordering. - * basic-block.h: Add prototype for estimate_probability. - * Makefile.in: Add rules for predict.o. - -2000-01-13 Jason Merrill - - * fixincludes (va_list): Use __not_va_list__ for the dummy. - * fixinc/*: Likewise. - -2000-01-13 Kaveh R. Ghazi - - * cccp.c: PROTO -> PARAMS. - * cexp.y: Likewise. - * collect2.c: Likewise. - * combine.c: Likewise. - * convert.h: Likewise. - * cse.c: Likewise. - * dbxout.c: Likewise. - * dbxout.h: Likewise. - * diagnostic.c: Likewise. - * doprint.c: Likewise. - * dwarf2out.c: Likewise. - * dwarf2out.h: Likewise. - * dwarfout.c: Likewise. - * dwarfout.h: Likewise. - * dyn-string.h: Likewise. - -2000-01-13 Kaveh R. Ghazi - - * calls.c (emit_call_1): Wrap varaible `struct_value_size_rtx' in - macro conditionals guarding use. - - * dwarf2out.c: Include "tm_p.h". - - * function.c (locate_and_pad_parm): Mark parameter with - ATTRIBUTE_UNUSED. - (expand_function_end): Likewise for variable `context'. - - * reorg.c (make_return_insns): Wrap prototype in macro HAVE_return. - -2000-01-13 Nick Clifton - - * config/fr30/fr30.c (fr30_expand_epilogue): Emit USEs of pop'ed - register to prevent compile time warnings. - -2000-01-13 Zack Weinberg - - * longlong.h [i386] (udiv_qrnnd): Rename 'd' argument to 'dv' - to avoid -Wtraditional warning. - -2000-01-13 Kaveh R. Ghazi - - * 1750a-protos.h: New file. - - * 1750a.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * 1750a.h: Move prototypes to 1750a-protos.h. Fix compile time - warnings. - - * 1750a.md: Likewise. - -2000-01-13 Kaveh R. Ghazi - - * a29k-protos.h: New file. - - * a29k.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * a29k.h: Move prototypes to a29k-protos.h. Fix compile time - warnings. - -2000-01-13 Kaveh R. Ghazi - - * clipper-protos.h: New file. - - * clipper.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * clipper.h: Move prototypes to clipper-protos.h. Fix compile time - warnings. - -Thu Jan 13 16:03:06 2000 J"orn Rennecke - - * reload1.c (reload_combine_note_store): Use HARD_REGNO_NREGS. - -2000-01-13 Nathan Sidwell - - * configure.in (--enable-new-gxx-abi): New option. - * acconfig.h (ENABLE_NEW_GXX_ABI): New define. - * Makefile.in (GXX_ABI_FLAG): New variable. - * configure: Regenerate. - -2000-01-13 Michael Hayes - - * stor-layout.c (layout_type): Use FORCE_STRUCT_BLK. - * tm.texi (FORCE_STRUCT_BLK): Document. - * config/c4x/c4x.h (FORCE_STRUCT_BLK): New macro. - -Wed Jan 12 23:12:47 2000 Hans-Peter Nilsson - - * config/ns32k/ns32k.md: Revert Jan 9 change. - - * genrecog.c (maybe_both_true_2): Do not compare a predicate-test - to a mode-test, if the predicate is address_operand. - -Wed Jan 12 22:34:00 2000 Jeffrey A Law (law@cygnus.com) - - * combine.c (if_then_else_cond): Be careful about what kinds - of RTL expressions are passed to operand_subword. - - * flow.c (split_edge): If we have to insert a new jump, make - sure to associate it with a basic block. - - * flow.c (commit_one_edge_insertion): A block with one successor - can end in a JUMP_INSN that is not a simplejump. - -2000-01-12 Robert Lipe - - * i386/sco5.h (INIT_SECTION_ASM_OP_COFF): Rename section to "ctor". - (BUILD_VA_LIST_TYPE): Define. - (EH_FRAME_SECTION_ASM_OP): Explictly define to better interact - with crtstuff.c. - -2000-01-12 Jason Merrill - - * cccp.c (do_pragma): Add cast to (char *). - -2000-01-12 Richard Henderson - Fred Fish - Jason Merrill - - * configure.in (i?86-*-beos{pe,elf,}*): Recognize. - * i386/t-beos, i386/x-beos, i386/xm-beos.h: New files. - * i386/beos-elf.h, i386/beos-pe.h: New files. - - * Makefile.in (CROSS_SYSTEM_HEADER_DIR): New. - * cross-make (SYSTEM_HEADER_DIR): Define using - CROSS_SYSTEM_HEADER_DIR. - - * gcc.c (LIBRARY_PATH_ENV): Provide default. - (process_command): Use it. - (main): Likewise. Kill trailing = from env vars. - (build_search_list): Put it back. - * collect2.c (main): Use LIBRARY_PATH_ENV. - - * configure.in (GCC_NEED_DECLARATIONS): Add environ. - * toplev.c: Use NEED_DECLARATION_ENVIRON. - - * tm.texi (Frame Layout): Document SMALL_STACK. - * c-common.c (c_common_nodes_and_builtins): Check it. - - * system.h: Undef alloca after including glibc's , - if USE_C_ALLOCA is defined. - - * gcc.c (set_input): New fn. - (main): After all input files are compiled, reset the input file - info to the first. - - * aclocal.m4 (rindex, index): If already defined, don't attempt - to redefine. - - * ginclude/varargs.h: (__va_list__): Define ifndef. - * ginclude/stdarg.h: Likewise. - - * ginclude/stddef.h (__WCHAR_TYPE__) [BEOS]: Use int - instead of unsigned char. - - * hash.h (true, false, boolean): Undef before enum. - - * expmed.c (choose_multiplier): Cast &mhigh_lo and &mhigh_hi to be - proper type of "HOST_WIDE_INT *", rather than their natural type of - "unsigned HOST_WIDE_INT *". - -2000-01-12 Kaveh R. Ghazi - - * svr3.h (ASM_FILE_START): Wrap if-clause in squigly brackets. - - * recog.c (memory_address_p): Mark parameter with ATTRIBUTE_UNUSED. - - * regclass.c (choose_hard_reg_mode): Likewise. - - * reload.c (find_valid_class, strict_memory_address_p): Likewise. - - * reorg.c (optimize_skip): Wrap prototype in macro conditionals. - -2000-01-12 Kaveh R. Ghazi - - * c-common.c: PROTO -> PARAMS. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * c-iterate.c: Likewise. - * c-lang.c: Likewise. - * c-lex.c: Likewise. - * c-lex.h: Likewise. - * c-parse.in: Likewise. - * c-pragma.c: Likewise. - * c-pragma.h: Likewise. - * c-tree.h: Likewise. - * c-typeck.c: Likewise. - * objc/objc-act.c: Likewise. - * objc/objc-act.h: Likewise. - -2000-01-12 Kaveh R. Ghazi - - * m88k-protos.h: New file. - - * m88k.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * m88k.h: Move prototypes to m88k-protos.h. Fix compile time warnings. - - * m88k.md: Likewise. - - * tekXD88.h: Likewise. - -2000-01-12 Kaveh R. Ghazi - - * m68k-protos.h: New file. - - * m68k.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * m68k.h: Move prototypes to m68k-protos.h. Fix compile time warnings. - - * mot3300.h: Likewise. - -2000-01-12 Richard Earnshaw - - * haifa-sched.c (split_edges): Pass edgeset_size as second arg to - extract_bitlst. - (extract_bitlist): Declare bitlen. - -2000-01-12 Zack Weinberg - - * i386/sysv5.h (CPP_SPEC, LIBSPEC): Add -pthreadT. - -2000-01-12 Bernd Schmidt - - * reload1.c (reload_reg_unavailable): New static variable. - (reload_reg_free_p): Test it. - (reload_reg_free_for_value_p): Test it instead of - reload_reg_used. - (choose_reload_regs_init): Compute it. - -Wed Jan 12 03:24:41 2000 Toshiyasu Morita (toshi.morita@sega.com) - - * reorg.c (fill_slots_from_thread): Check modified_in_p - before replacing. - -Wed Jan 12 03:20:31 2000 John Marshall - - * gcc.texi (Funding, GNU/Linux, Copying, Contributors): Format - these nodes even if INTERNALS is not set. - -Wed Jan 12 09:39:22 2000 Nick Burrett - - * gcse.c (delete_null_pointer_checks_1): Cope when - get_condition cannot determine the condition. - -2000-01-12 Gabriel Dos Reis - - * toplev.h (set_message_length): Declare. - - * diagnostic.c (obstack_chunk_alloc): Define macro. - (obstack_chunk_free): Likewise. - (struct output_buffer): New data structure. - (vmessage): Remove. - (output_maximum_width): New variable. - (doing_line_wrapping, set_message_length, init_output_buffer, - get_output_prefix, output_space_left, emit_output_prefix, - output_newline, output_append, output_puts, dump_output, - vbuild_message_string, build_message_string, build_location_prefix, - voutput_notice, output_printf, line_wrapper_printf, - vline_wrapper_message_with_location): New functions. Implement - automatic line wrapping. - (v_message_with_decl): Make it handle automatic line wrapping. - (v_error_with_file_and_line): Likewise. - (v_warning_with_file_and_line): Likewise. - (announce_function): Likewise. - (default_print_error_function): Likewise. - -2000-01-11 16:24 -0800 Zack Weinberg - - * cpplib.h (struct cpp_options): Change lang_asm to char. - Add lang_fortran. - * cppinit.c (builtin_array): Take out __STDC_VERSION__, it's - done in cpp_handle_option now. - (initialize_builtins): Take out special case code used only by - __STDC_VERSION__. - (cpp_handle_option): Turn off trigraphs and trigraph warnings - if -traditional. Recognize -lang-fortran and set - lang_fortran, also turn off cplusplus_comments. - (print_help): Document -lang-fortran. - * cpplib.c (handle_directive): Ignore `# 123 "file"' if - lang_asm. Ignore all directives other than `# 123 "file"' if - CPP_PREPROCESSED. - (cpp_get_token): If -traditional, don't recognize directives - unless the # is in column 1. - (parse_string): If lang_fortran or lang_asm, silently - terminate strings ('' or "") at end of line. - Remove unnecessary braces. - -2000-01-11 Alexandre Oliva - Richard Henderson - - * resource.c (mark_referenced_resources): Mark a set strict_low_part - as used. - * config/i386/i386.c (ix86_expand_setcc): Re-enable clear + set - strict_low_part when possible. - -2000-01-11 Kaveh R. Ghazi - - * alias.c: PROTO -> PARAMS. - * basic-block.h: Likewise. - * bitmap.c: Likewise. - * bitmap.h: Likewise. - * builtins.c: Likewise. - * c-aux-info.c: Likewise. - * caller-save.c: Likewise. - * calls.c: Likewise. - -2000-01-11 Kaveh R. Ghazi - - * Makefile.in (toplev.o): Depend on regs.h. - - * output.h (tdesc_section): Prototype. - - * regclass.c (copy_cost): Mark parameters with ATTRIBUTE_UNUSED. - - * sdbout.c: Include "tm_p.h". - - * toplev.c: Include "regs.h". - -Tue Jan 11 11:37:58 2000 Mike Stump - - * unroll.c (unroll_loop): Add EH support. - -2000-01-11 Kaveh R. Ghazi - - * pa-protos.h: New file. - - * pa.c: Include recog.h and tm_p.h. - (compute_zdepwi_operands, compute_movstrsi_length, - remove_useless_addtr_insns, store_reg, load_reg, set_reg_plus_d, - find_addr_reg, import_milli): Add static prototypes. - (pa_cpu_string, pa_arch_string): Constify a char*. - (legitimize_pic_address): Pass argument `mode' to pic_label_operand. - (read_only_operand): Add argument `mode'. - (singlemove_string, output_move_double, output_fp_move_double, - output_block_move, output_and, output_ior, output_ascii, - remove_useless_addtr_insns, milli_names, output_mul_insn, - output_div_insn, output_mod_insn, output_arg_descriptor, - output_cbranch, output_bb, output_bvb, output_dbra, , - output_millicode_call, output_call, hppa_encode_label, - output_parallel_movb, output_parallel_addb): Constify a char*. - (hppa_va_start): Mark parameter `stdarg_p' with ATTRIBUTE_UNUSED. - (output_parallel_addb): Remove extra arg to `constrain_operands' - - * pa.h: Move all prototypes to pa-protos.h. - (pa_cpu_string, pa_arch_string): Constify a char*. - (LEGITIMIZE_ADDRESS): Call `symbolic_operand' with mode argument. - - * pa.md: Call `function_label_operand' with mode argument. - Likewise for `read_only_operand'. - Fix nesting of parens in call to `symbolic_operand'. - -2000-01-11 Kaveh R. Ghazi - - * i860-protos.h: New file. - - * i860.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * i860.h: Move prototypes to i860-protos.h. Fix compile time warnings. - - * i860.md: Likewise. - -Tue Jan 11 18:59:35 MET 2000 Jan Hubicka - - * i386.md (movstrsi expander): Rewrite. - (movstrsi_1 insn): Deleted. - (strmovhi, strmovqi expander): New expanders. - (movshi_1, movsqi_1, rep_movsi, rep_movqi): New patterns. - * i386.c (x86_single_stringop): New global variable. - * i386.h (x86_single_stringop): Declare. - (TARGET_SINGLE_STRINGOP): New macro. - -2000-01-11 Clinton Popetz - - * config/mips/mips.c (mips_va_arg): For EABI, emit the queued - integer vararg POSTINCREMENT before the destination of the jump - for the hard fp case. - (function_arg_pass_by_reference): Pass a copy of CUM to - FUNCTION_ARG. - - * config/mips/mips.h (GO_IF_LEGITIMATE_ADDRESS): Move check - for CONSTANT_ADDRESS_P above while loop for subreg. - -2000-01-11 Clinton Popetz - - * flow.c (propagate_block): When a prologue/epilogue insn - is marked dead, unconditionally clear libcall_is_dead and - insn_is_dead, and only dump rtl if warnings aren't being - suppressed. - -Tue Jan 11 16:26:47 MET 2000 Jan Hubicka - - * i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD. - * i386.md (FIRST_PSEUDO_REGISTER): Set to 20. - (FIXED_REGISTERS): Set dirflag as fixed. - (CALL_USED_REGISTERS): Set dirflag as used. - (REG_ALLOC_ORDER): Set dirflag as last one. - (DIRFLAG_REG): New macro. - (MD_ASM_CLOBBERS): Asm clobber dirflag for backward compatibility. - (HI_REGISTER_NAMES): Add dirflag. - (DEBUF_PRINT_REG): Handle dirflag. - * i386.md (type attribute): New cld and str types. - (length_opcode attribute): Set cld and str to 1. - (memory attribute): Set str to unknown - it is not clear from the - patterns. - (pent_np function unit): Prefixed string operations takes 12 cycles - minimally; cld takes 2 cycles. - (ppro_uops attribute): Str is "many" and cld is "few". - (ppro_p0 unit): Handle cld here. - (k6_alux unit): Handle cld and str types. - (k6_load unit): It is ocupied by str opcodes. - (k6_store unit): It is ocupied by str opcodes. - (athlon_decode): Str is vector decoded. - (athlon_ieu): Handle str and cld. - (cld pattern): New. - (movstrsi, clrstr, cmpstr, strlen expander): Emit cld instruction - (movstrsi_1, clrstrsi_1, cmpstrsi_1, strlensi_1, - cmpstrsi_nz_1 insn): Do not output cld instruction - -Tue Jan 11 06:14:39 2000 David Starner - - * gcc.texi (G++ and GCC): Add Java and Chill. - (Bug Critera): Don't list languages. - - * gcc.texi (Incompatibilities): No longer claim most C compilers - are K&R. - - * gcc.texi (G++ and GCC): Update other front-ends list. - -Tue Jan 11 05:49:01 2000 Jeffrey A Law (law@cygnus.com) - - * i386.c (ix86_expand_setcc): Fix typo. - (ix86_expand_movcc): Similarly. - - * Band-aid until haifa's bitset implementation is nuked. - * haifa-sched.c (extract_bitlst): New parameter for size of the - bitset in bits. All callers changed. Avoid looking at undefined - bits in the bitset. - (edgeset_bitsize): New variable. - (schedule_region): Initialize edgeset_bitsize. - -2000-01-10 Kaveh R. Ghazi - - * Makefile.in (optabs.o): Depend on real.h - (resource.o): Depend on insn-attr.h - - * builtins.c (result_vector): Wrap prototype in macro conditions - governing definition and use. - - * c-common.c: Include tm_p.h. - - * c-lex.c: Likewise. - - * elfos.h: Constify a char*. - - * final.c (align_fuzz): Wrap prototype in macro HAVE_ATTR_length. - (get_attr_length, shorten_branches, profile_after_prologue): Mark - parameter with ATTRIBUTE_UNUSED. - - * fold-const.c (exact_real_inverse): Wrap variable `i' in - CHECK_FLOAT_VALUE. - - * haifa-sched.c (schedule_insns): Mark parameter with - ATTRIBUTE_UNUSED. - - * optabs.c: Include real.h. - - * real.h (ereal_atof): Add prototype arguments. - - * resource.c: Include insn-attr.h. - - * sdbout.c (sdbout_queue_anonymous_type, - sdbout_dequeue_anonymous_types): Wrap in macro - SDB_ALLOW_FORWARD_REFERENCES. - (sdbout_init, sdbout_start_new_source_file): Mark parameter with - ATTRIBUTE_UNUSED. - - * stmt.c (expand_return): Wrap variable `op0' in macro HAVE_return. - - * stupid.c: Include tm_p.h. - - * tree.c (real_value_from_int_cst): Mark parameter with - ATTRIBUTE_UNUSED. - -2000-01-10 Kaveh R. Ghazi - - * i960-protos.h: New file. - - * i960.c: Include tm_p.h. Add static prototypes. Fix compile - time warnings. - - * i960.h: Move prototypes to i960-protos.h. Fix compile time warnings. - -2000-01-10 Alexandre Oliva - - * combine.c (expand_field_assignment): Do not discard SUBREGs - while computing nonzero_bits. - -2000-01-09 Nick Clifton - - * config/arm/arm.c: Fix compile time warnings about signed vs - unsigned constants. - * config/arm/arm.h: Fix compile time warnings about signed vs - unsigned constants. - -2000-01-09 Philip Blundell - - * config/arm/arm.c (output_return_instruction): Use `ldr' rather - than `ldm' with only one register. - * config/arm/arm.md (push_multi): Use `str' rather than `stm' with - only one register. - - * config/arm/linux-gas.h (CLEAR_INSN_CACHE): Say that R0 is - clobbered. - -Sun Jan 9 17:50:23 2000 Hans-Peter Nilsson - - * config/ns32k/ns32k.md (load or push effective address): Operand 1 - must have SImode. - -2000-01-09 Kaveh R. Ghazi - - * elfos.h (ASM_OUTPUT_LIMITED_STRING): Add parentheses around - assignment used as truth value. - - * function.c (assign_temp): Mark parameter `dont_promote' with - ATTRIBUTE_UNUSED. Wrap variable `unsignedp' with macro - PROMOTE_FOR_CALL_ONLY. - - * genrecog.c (write_subroutine): Mark variable `operands' with - ATTRIBUTE_UNUSED. - - * optabs.c (prepare_cmp_insn): Mark parameter `align' with - ATTRIBUTE_UNUSED. - - * sdbout.c (sdbout_init): Likewise for parameter `asm_file'. - (sdbout_begin_block, sdbout_end_block): Likewise for `file'. - - * toplev.c (note_deferral_of_defined_inline_function): Likewise - for `decl'. - -2000-01-09 Michael Hayes - - * config/c4x.h: Tidy up comments. - * config/c4x.c: Likewise. - -Sun Jan 9 01:02:55 EST 2000 John Wehle (john@feith.com) - - * fold-const.c (lshift_double, rshift_double): Handle - shifting by 2 * HOST_BITS_PER_WIDE_INT correctly. - -2000-01-08 Alexandre Oliva - - * toplev.c (rest_of_compilation): Initialize cse_not_expected as - in prepare_function_start(). - -Sat Jan 8 12:12:46 2000 Nick Clifton - - * config/v850/v850.c (expand_epilogue): Interrupt functions no - longer allocate extra stack for function calls. - -2000-01-08 Michael Hayes - - * config/c4x/c4x.md (*subqf3_set): Fix typo. - -2000-01-08 Michael Hayes - - * config/c4x/c4x.h (CALLER_SAVE_PROFITABLE): Define as 0. - -2000-01-07 David Edelsohn - - * rs6000.c (processor_target_table): Add power3 as alias for 630. - * aix43.h: Revert Aug 2 change. - (HAS_INIT_SECTION): Define, not visible yet. - (LD_INIT_SWITCH): Define, not visible yet. - * t-aix43 (MULTILIB_OPTIONS): Revert Aug 2 change. - - * glimits.h (__LONG_MAX__): Recognize 64-bit AIX too. - - * collect2.c (main): Expand ld2 size further. - (export_object_lst): Cast assignment to avoid warning. - (main, LD_INIT_SWITCH): Add AIX 4.2+ -binitfini support. - (scan_prog_file, COFF): Do not collect initialization or - finalization functions generated for entire shared object if - init/fini support present. - -2000-01-07 Nick Clifton - - * config/elfos.h: Tidy up formatting of marcos. Make sure - that .section directives are always prefixed by a tab. - - * config/svr4.h: Add #include "elfos.h" and remove duplicate - definitions. - -2000-01-07 Matt Austern - - * fold-const.c (real_hex_to_f): Remove duplicate declaration of - expon. - -Fri Jan 7 01:55:34 2000 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (crtend.o): Pass @inhibit_libc@ to compilation of - crtstuff.c. - (crtbegin.o, s-crtS): Likewise. - -2000-01-06 Richard Henderson - - * alpha.md (adddi_2+1): Limit offset such that it will be - loadable with a single ldah+lda pair. - (adddi_2+2): Explicitly fail split if we can't make it work. - -2000-01-06 Mumit Khan - - * protoize.c: Conditionally include unistd.h. - (IS_SAME_PATH_CHAR): New macro. - (IS_SAME_PATH): New macro. - (CPLUS_FILE_SUFFIX): New macro. - (cplus_suffix): New static variable. - (is_abspath): New static function. - (in_system_include_dir): Handle DOS style pathnames. - (file_could_be_converted): Likewise. - (file_normally_convertible): Likewise. - (directory_specified_p): Likewise. - (file_excluded_p): Likewise. - (abspath): Likewise. - (shortpath): Likewise. - (referenced_file_is_newer): Likewise. - (save_def_or_dec): Likewise. - (do_processing): Likewise. - (main): Likewise. - (edit_file): Likewise. Use rename instead of link. - (rename_c_file): Likewise. Don't rename syscalls file. - (munge_compile_params): Define null device for DOS based systems. - (process_aux_info_file): Use binary mode if appliable. - (edit_file): Likewise. - * invoke.texi (Running Protoize): Document C++ suffixes used. - - * cccp.c: Delete PATH_SEPARATOR, DIR_SEPARATOR and - IS_DIR_SEPARATOR macros. - * collect2.c: Likewise. - * cppinit.c: Likewise. - * dwarf2out.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * prefix.c: Likewise. - * rtl.c: Likewise. - * toplev.c: Likewise. - * system.h: And move to here. - - * prefix.c (update_path): Fix typo in variable name. - -2000-01-06 Richard Henderson - - * flow.c (mark_set_1): Use loop_depth+1 as reference weight. - (find_auto_inc, mark_used_regs, try_pre_increment_1): Likewise. - (count_reg_sets_1, count_reg_references): Likewise. - (flow_loops_level_compute): Start counting actual loop depth at 1. - (flow_loops_find): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. - * regclass.c (regclass): Re-instate Jan 4 0-based loop_depth change. - -2000-01-06 Gabriel Dos Reis - - * defaults.h (DWARF_FRAME_REGISTERS): if not defined, default to - FIRST_PSEUDO_REGISTER - * dwarf2out.c: Don't include frame.h - * dwarfout.c: Likewise - * Makefile.in (dwarfout.o, dwarf2out.o): Remove dependence on - frame.h - -Thu Jan 6 13:44:59 CET 2000 Jan Hubicka - - * reg-stack.c (subst_stack_regs_pat): Handle correctly USEs of - dead registers. - - * i386.c (movsf splitter): Fix typo in my last checkin. - -2000-01-05 Nick Clifton - - * varasm.c (IN_NAMED_SECTION): Allow targets to provide their - own definition of this macro. - (asm_emit_uninitialised): Invoke UNIQUE_SECTION if either - flag_data_sections or UNIQUE_SECTION_P are true. - - * tm.texi (UNIQUE_SECTION): Document that it can be called for - uninitialized data decls. - - * config/i386/winnt.c (i386_pe_unique_section): Cope with - being called for uninitialized data. - - * config/i386/interix.c (i386_pe_unique_section): Cope with - being called for uninitialized data. - - * config/mips/elf.h (UNIQUE_SECTION): Cope with being called - for uninitialized data. - - * config/mips/elf64.h (UNIQUE_SECTION): Cope with being called - for uninitialized data. - - * config/mips/iri6gld.h (UNIQUE_SECTION): Cope with being called - for uninitialized data. - - * config/arm/unknown-elf.h (IN_NAMED_SECTION): Define. - (UNIQUE_SECTION_P): Always generate a unique section if - flag_data_sections is true. - (UNIQUE_SECTION): Also generate unique sections for - uninitialized data. - (ASM_OUTPUT_ALIGNED_BSS): Redefine to use named_section(). - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Redefine to use - named_section(). - -2000-01-06 Michael Hayes - - * config/c4x/t-c4x (TARGET_LIBGCC2_CFLAGS): Don't redefine SF, DF, - SI, or DI. - -2000-01-06 Michael Hayes - - * config/c4x/c4x.md (udivqi3, divqi3): Delete. - (umodqi3, modqi3, udivhi3, divhi3, umodhi3, modhi3, ffsqi2): Likewise. - (*smulqi3_highpart_noclobber, *umulqi3_highpart_noclobber): New. - (*lshrqi3_const_noclobber, *lshrqi3_nonconst_noclobber): Likewise. - (*ashrqi3_const_noclobber, *ashrqi3_nonconst_noclobber): Likewise. - - * c4x.h (INIT_TARGET_OPTABS): Define to init libcalls. - -2000-01-05 11:25 -0800 Zack Weinberg - - * c-decl.c (finish_enum): Simplify code to determine minimum and - maximum values of the enum, and calculate the type. Remove check - for FUNCTION_DECLs in the values list, which cannot happen. Replace - the DECL_INITIAL of each enumeration constant with a copy converted - to the enumeration type. When updating variant types, don't bother - updating the type itself. - - * c-typeck.c (build_binary_op): Simplify conditional expressions - when weeding out spurious signed-unsigned warnings. Add new - spurious warning category: if the unsigned quantity is an enum - and its maximum value fits in signed_type(result_type). Update - commentary. - (build_conditional_expr): Warn here if one alternative is signed - and the other is unsigned. - -2000-01-05 Nick Clifton - - * config/fr30/fr30.h: Remove extraneous comments. - -2000-01-05 Bernd Schmidt - - * reload1.c (choose_reload_regs): When disabling a reload, also - set reload_spill_index to -1. - -2000-01-04 Joel Sherrill (joel@OARcorp.com> - - * configure.in (m68*-*-rtemscoff*): New target, formal name for - old m68*-*-rtems*. - (m68*-*-rtemself*): New target. - (mips64orion-*-rtems*): Remove duplicate definition of tm_file. - (sparc*-*-rtemsaout*): New target, formal name for old sparc*-*-rtems*. - (sparc*-*-rtemself*): New target. - (sparc*-*-rtems*): Now elf not a.out. - * config/i386/rtems.h: Include config/rtems.h. - * config/i386/rtemself.h: Include config/rtems.h. - * config/i960/rtems.h: Include config/rtems.h. - * config/m68k/rtems.h: Include config/rtems.h. - * config/m68k/rtemself.h: Include config/rtems.h. - * config/mips/rtems64.h: Include config/rtems.h. - * config/pa/rtems.h: Include config/rtems.h. - * config/rs6000/rtems.h: Include config/rtems.h. - * config/sh/rtems.h: Include config/rtems.h. - * config/sh/rtemself.h: Include config/rtems.h. - * config/sparc/rtems.h: Include config/rtems.h. - * config/sparc/rtemself.h: Include config/rtems.h - -Tue Jan 4 23:59:26 2000 Denis Chertykov - - * final.c (shorten_branches): Correctly compute length of - asms without operands. - -Tue Jan 4 22:55:41 2000 Steve Chamberlain - - * configure.in: Add pj target. - * configure: Regenerate. - * config/pj: New directory. - * config/pj/lib1funcs.S: New file. - * config/pj/linux.h: New file. - * config/pj/pj.c: New file. - * config/pj/pj.md: New file. - * config/pj/pjl.h: New file. - * config/pj/t-pj: New file. - * config/pj/xm-pj.h: New file - -Tue Jan 4 22:30:16 2000 Jeffrey A Law (law@cygnus.com) - - * toplev.c (rest_of_compilation): Run shorten-branches before - reg-stack for now. - -2000-01-05 Michael Hayes - - * config/c4x/c4x.h (IS_XXX_REG, IS_XXX_REGNO): Swap behavior of - macros so that they're consistent with their names. - * config/c4x/c4x.c (IS_XXX_REG, IS_XXX_REGNO): Likewise. - * config/c4x/c4x.md (IS_XXX_REG, IS_XXX_REGNO): Likewise. - -2000-01-05 Michael Hayes - - * config/c4x/c4x.md (*addqi3_noclobber_reload): Ensure that CC never - modified inadvertently. - -2000-01-04 Joel Sherrill - - * configure.in (v850*-*-rtems*): New target. - * configure: Regenerate. - * config/v850/rtems.h: New file. - -2000-01-04 Mumit Khan - - * gthr-win32.h (__gthread_active_p): Support Mingw MT runtime. - (__gthread_key_create): Likewise. - (__gthread_key_dtor): Likewise. - (__gthread_once): Fix logic. - (__gthread_key_delete): Cast away constness. - - * i386/cygwin.h (SUBTARGET_SWITCHES): Add -mthreads option. - * invoke.texi: Document. - * i386/mingw32.h (CPP_SPEC): Use. - (LIBGCC_SPEC): Likewise. - * i386/crtdll.h (LIBGCC_SPEC): Likewise. - -2000-01-04 David Edelsohn - - * rs6000/sysv4.h (ASM_OUTPUT_DEF): Undefine. - (HANDLE_PRAGMA_PACK): Undefine. - (SLOW_UNALIGNED_ACCESS): Define. - -2000-01-04 David Edelsohn - - * expmed.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters - to default definition. - (store_bit_field): Call SLOW_UNALIGNED_ACCESS with mode and alignment. - (store_fixed_bit_field): Call macro with word_mode and alignment. - (extract_bit_field): Call macro with relevant mode and alignment. - * expr.c (SLOW_UNALIGNED_ACCESS): Add mode and align parameters - to default definition. - (move_by_pieces): Call SLOW_UNALIGNED_ACCESS with word_mode - and alignment. - (move_by_pieces_ninsns): Likewise. - (clear_by_pieces): Likewise. - (emit_push_insn): Likewise. - (store_field): Call macro with relevant mode and alignment. - (expand_expr): Likewise. - (expand_expr_unaligned): Likewise. - - * rs6000.h (HANDLE_PRAGMA_PACK): Define. - (SLOW_UNALIGNED_ACCESS): Define. - (CASE_VECTOR_MODE): Always use 32-bit offsets. - (ASM_FILE_END): Generate 64-bit symbol in 64-bit mode. - (EXTRA_SECTION_FUNCTIONS): Indent .csect pseudo-op. - (toc_section): Likewise and .toc pseudo-op. - (ASM_DECLARE_FUNCTION): Likewise. Align text more strictly in - 64-bit mode. - (TEXT_SECTION_ASM_OP): Likewise. - (ASM_OUTPUT_ADD_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Always use - 32-bit offsets. - - * a29k.h (SLOW_UNALIGNED_ACCESS): Add MODE and ALIGN parameters. - * alpha.h (SLOW_UNALIGNED_ACCESS): Likewise. - * arm/thumb.h (SLOW_UNALIGNED_ACCESS): Likewise. - * gmicro.h (SLOW_UNALIGNED_ACCESS): Likewise. - * fr30.h (SLOW_UNALIGNED_ACCESS): Likewise. - -Tue Jan 4 11:44:13 2000 Jeffrey A Law (law@cygnus.com) - - * regclass.c: Revert my Jan 4 change to loop cost computation. - -Tue Jan 4 19:22:39 MET 2000 Jan Hubicka - - * regclass.c (regclass): Do not obey REG_N_REFS in non-optimizing - compilation. - -2000-01-04 Stan Cox - - * haifa-sched.c (build_control_flow): Change unreachable simple - loop test to check if current block has only one predecessor. - (find_rgns): Initialize degree. Use dest as degree index, not src. - -2000-01-04 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strlen): Initialize variable `icode'. - - * calls.c (expand_call): Likewise for - `old_stack_arg_under_construction'. - - * cpphash.c (macroexpand): Likewise for `args' and `rest_zero'. - - * function.c (pad_to_arg_alignment): Likewise for `save_var' and - `save_constant'. - - * gcc.c (execute): Likewise for `ut' and `st'. - - * genattrtab.c (attr_rtx): Likewise for `rt_val'. - - * genopinit.c (gen_insn): Likewise for `m1', `m2' and `op'. - - * jump.c (jump_optimize_1): Likewise for `temp2'. - - * local-alloc.c (block_alloc): Likewise for `r1'. - - * loop.c (recombine_givs): Likewise for `life_start' and `life_end'. - - * reg-stack.c (check_asm_stack_operands): Likewise for `clobber_reg'. - (subst_asm_stack_regs): Likewise for `clobber_reg' and `clobber_loc'. - - * regmove.c (fixup_match_1): Likewise for `insn_const', `dst_node' - and `set2'. - - * reload.c (find_reloads): Likewise for `goal_alternative_number' - and `goal_earlyclobber'. - - * scan-decls.c (scan_decls): Likewise for `prev_id_end'. - - * sdbout.c (sdbout_one_type): Likewise for `member_scl'. - - * stupid.c (stupid_life_analysis): Likewise for `chain'. - - * unroll.c (copy_loop_body): Likewise for `copy'. - - * varasm.c (output_constructor): Likewise for `byte'. - -Tue Jan 4 15:34:34 MET 2000 Jan Hubicka - - * i386.c (ix86_expand_move): Allow pushes of memory, offload to memory - all FP constants for constant->reg moves. - (ix86_split_to_parts): Try to convert memory address into immediate - when available in the constant pool. - * i386.h (PREFERRED_RELOAD_CLASS): Allow CONST_DOUBLE->integer reg - moves. - (LEGITIMATE_CONSTANT_P): Return 1. - * i386.md (pushsf): New splitter to convert constant pool memory - reference to immediate. - (mov?f): Likewise; do not allow CONST_DOUBLE for reg moves before - reload. - -2000-01-04 Bernd Schmidt - - * i386.md (ashlsi3_cmpno): Don't accept variables shifts. - (ashlhi3_cmpno, ashlqi3_cmpno, ashrsi3_cmpno, ashrhi3_cmpno, - ashrqi3_cmpno, lshrsi3_cmpno, lshrhi3_cmpno, lshrqi3_cmpno): Likewise. - (rotlsi3_cmpno, rotlhi3_cmpno, rotlqi3_cmpno, rotrsi3_cmpno, - rotrhi3_cmpno, rotrqi3_cmpno): Likewise. - -2000-01-04 Martin von Löwis - - * ginclude/stdbool.h: Support compilation as C++. - -Tue Jan 4 01:35:13 2000 J"orn Rennecke - - * fold-const.c (make_range): Don't try to reverse an unbounded range. - -Tue Jan 4 00:18:46 2000 Jeffrey A Law (law@cygnus.com) - - * regclass.c (regclass): Properly compute loop_cost. Adjust - comments. - - * regclass.c: Fix minor whitespace problems. - -2000-01-03 Anthony Green - - * config/i386/i386.md (builtin_setjmp_receiver): New pattern. - Restore the pic register if required. - -2000-01-03 Ulrich Drepper - - * c-common.c (format_char_info): Update comment. - (check_format_info): Recognize 'z' modifier in the same way 'Z' - was recognized. Emit warning for formats new in ISO C99 only - if flag_isoc9x is not set. - -Mon Jan 3 12:59:54 2000 Mark P. Mitchell - - * config/mips/iris6gld.h: Fix typo in -mabi=n32 specs. - -Mon Jan 3 15:33:37 MET 2000 Jan Hubicka - - * combine.c (expand_compound_operation): Do not convert ZERO_EXTEND to - SIGN_EXTEND, convert SIGN_EXTEND to ZERO_EXTEND. - (make_compound_operation): Choose cheaper alternative between - ZERO_EXTEND and SIGN_EXTEND when sign bit is not set. - - * regclass.c (op_costs): Remove global variable. - (record_reg_classes): New parameter "op_costs" and "reg_pref". - (record_operand_costs): Break out from ... - (scan_one_insn): ... here. - (dump_regclass): Make dumps nicer. - (regclass): Dump preferrences choosed and changes done during passes. - -2000-01-03 Jakub Jelinek - - * config/sparc/sparc.c (gen_df_reg): Fix for 32bit SPARC. - -2000-01-03 Jakub Jelinek - - * config/sparc/sparc.c (gen_df_reg): New function. - * config/sparc/sparc-protos.h (gen_df_reg): Add prototype. - * config/sparc/sparc.md (movtf_no_e_insn_sp64+1, - movtf_no_e_insn_sp64+2, movtf_no_e_insn_sp64+3, movtf_cc_sp64+1, - movtf_cc_reg_sp64+1): Use it. - -2000-01-02 Mark Mitchell - - * integrate.c (copy_decl_for_inlining): Clear TREE_ADDRESSABLE on - copied LABEL_DECLs. - -Mon Jan 3 02:54:40 2000 Hans-Peter Nilsson - - * config/i386/i386.c (ix86_expand_unary_operator): Function - definition made void. - (ix86_expand_binary_operator): Update outdated preceding comment. - * config/i386/i386-protos.h (ix86_expand_unary_operator): Update - prototype. - - * config/i386/i386.c (override_options): Fix option-name typo. - -2000-01-02 Mark Mitchell - - * system.h (CEIL): Define. - * builtins.c (CEIL): Remove. - * expmed.c (CEIL): Likewise. - * expr.c (CEIL): Likewise. - * stor-layout.c (CEIL): Likewise. - -2000-01-02 Franz Sirl - - * expr.c (store_constructor_field): Fix typo introduced with last - gcc2 merge. - -2000-01-01 Mark Mitchell - - * tree.h (BINFO_N_BASETYPES): New macro. - -2000-01-01 Bernd Schmidt - - * 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.4 b/gcc/ChangeLog.4 deleted file mode 100644 index 25546c471dc..00000000000 --- 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 c5f3b54200f..00000000000 --- 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.6 b/gcc/ChangeLog.6 deleted file mode 100644 index 8e1510d0093..00000000000 --- a/gcc/ChangeLog.6 +++ /dev/null @@ -1,19208 +0,0 @@ -2001-12-31 Richard Henderson - - * config/ia64/ia64.c (mark_reg_gr_used_mask): Mind HARD_REGNO_NREGS. - -2001-12-31 Richard Henderson - - * regrename.c (build_def_use): Don't rename asm operands that - were originally hard registers. - (copyprop_hardreg_forward_1): Likewise. - (find_oldest_value_reg): Copy ORIGINAL_REGNO from source. - * varasm.c (make_decl_rtl): Use gen_rtx_raw_REG. Set ORIGINAL_REGNO. - -2001-12-31 Douglas B Rupp - - * config/alpha/vms.h (HAS_INIT_SECTION, NEED_ATEXIT): Remove. - (NAME__MAIN, SYMBOL__MAIN): Define. - -2001-12-31 Richard Henderson - - * cfgrtl.c (delete_insn): Check for not NOTE_INSN_DELETED_LABEL - before decrementing LABEL_NUSES from a jump table. - - * final.c (alter_subreg): Assign REGNO after changing the rtx code. - - * config/alpha/alpha.c (reg_no_subreg_operand): Reject all - non-registers. - -2001-12-31 Graham Stott - - * halfpic.h: Remove foward defs of tree_node and rtx_def. - - * toplev.h: Remove forward def of tree_node, rtx_def. - - * except.h: Remove forward def of tree_node, rtx_def and - define of tree, rtx. Also remove undefs. - - * basic-block.h: Remove forward def of tree_node and - define of tree. - -2001-12-30 Richard Henderson - - * cfglayout.c (scope_def, scope_forest_info, forest, - relate_bbs_with_scopes, make_new_scope, build_scope_forest, - remove_scope_notes, insert_intra_before_1, insert_intra_1, - insert_intra_bb_scope_notes, insert_inter_bb_scope_notes, - rebuild_scope_notes, free_scope_forest_1, dump_scope_forest, - dump_scope_forest_1, get_next_bb_note, get_prev_bb_note): Remove. - (fixup_reorder_chain): Don't set scope for bb. - (insn_scopes, scope_to_insns_initialize, set_block_levels, - change_scope, scope_to_insns_finalize): New. - (cfg_layout_initialize, cfg_layout_finalize): Update to match. - * cfglayout.h (scope_def, scope): Remove. - (reorder_block_def): Remove scope member. - (scope_to_insns_initialize, scope_to_insns_finalize): Declare. - * haifa-sched.c: Revert reemit_other_notes change. - * sched-ebb.c (schedule_ebbs): Don't call remove_unnecessary_notes. - Use scope_to_insns_initialize and scope_to_insns_finalize. - * sched-rgn.c (schedule_insns): Likewise. - -2001-12-31 Graham Stott - - * c-lex.c: Include tree.h before expr.h - - * c-typeck.c: Include rtl.h earlier. - - * tree.h (STRIP_NOPS): Remove extraneous semicolon. - (STRIP_SIGN_NOPS): Likewise. - (STRIP_TYPE_NOPS): Likewise. - (COMPLETE_OR_UNBOUND_ARRAY_TYPE_P): Add Parenthesis around - macro paramater. - - * final.c (struct bb_list): Delete. - (struct bb_str): Likewise. - - * cfgloop.c (flow_loop_entry_edges_find): Fix typo. - (flow_loop_exit_edges_find): Likewise. - - * gcse.c (gcse_main): Fix typos. - (alloc_gcse_mem): Likewise. - - * function.h: Remove undefs for rtx and tree. - -2001-12-30 Richard Henderson - - * loop.c (check_dbra_loop): Fix last change: examine both - has_multiple_exit_targets and exit_count. - -2001-12-30 Richard Henderson - - * integrate.c (copy_rtx_and_substitute): Fix error last change: - we need to unconditionally create a new mem. - -2001-12-30 Hans-Peter Nilsson - - * config/mmix/mmix.md ("*call_real"): Fix typo in comment. - * config/mmix/mmix.h (EXTRA_CONSTRAINT): Pass MMIX_REG_OK_STRICT - to mmix_extra_constraint. - * config/mmix/mmix.c (mmix_secondary_reload_class): Only handle - non-global register classes. Mark now unused parameters as such. - (mmix_extra_constraint, 'U'): Use new parameter strict and call - calling memory_operand_p or strict_memory_address_p, not - address_operand. - * config/mmix/mmix-protos.h (mmix_extra_constraint): Add parameter. - -2001-12-30 Kaveh R. Ghazi - - * unroll.c: Move include files above first use of `const'. - -2001-12-30 Jakub Jelinek - - * cfgrtl.c (try_redirect_by_replacing_jump): Allow redirect_jump - to fail if target is EXIT_BLOCK_PTR, die otherwise. - (redirect_edge_and_branch): Likewise. - * cfgcleanup.c (try_forward_edge): Don't force jump redirecting - if target is EXIT_BLOCK_PTR. - -2001-12-29 David Edelsohn - - * gcc.c (init_gcc_spec): Do not link with static libgcc.a if - gcc invoked with -shared. - -2001-12-29 Graham Stott - - * config/i386/i386.c (ix86_asm_dialect): Fix enum type. - - (override_options): Delete abs macro unused. - - (output_pic_addr_const): Use ASM_ATT/ASM_INTEL enumerations - when testing ASSEMBLER_DIALECT. - - (print_reg): Likewise. - (print_operand): Likewise. - (print_operand_address): Likewise. - (print_operand): abort if ASSEMBLER_DIALECT is unknown dialect. - - * config/i386/i386.h (ix86_asm_dialect): Fix enum type. - - (FIND_BASE_TERM): Fix typo. - -Sat Dec 29 15:48:54 2001 Richard Kenner - - * expr.c (store_field): Use adjust_address, not PUT_MODE. - (expand_expr, case VIEW_CONVERT_EXPR): Likewise. - * reload1.c (eliminate_regs, case SUBREG): Likewise, but use - adjust_address_nv. - * varasm.c (make_decl_rtl): Likewise. - * integrate.c (copy_rtx_and_substitute, case MEM): Likewise, but use - replace_equiv_address_nv. - - * varasm.c (decode_addr_const, case INTEGER_CST): Call - output_constant_def instead of looking at TREE_CST_RTL. - - * expr.c (convert_move): If -fforce-mem, force FROM to not be memory. - - * stor-layout.c (layout_decl): Don't misalign field of variable size - for packed record. - - * dwarf2out.c (compute_section_prefix): Avoid cast warning. - (gen_decl_die): Only check DECL_IGNORED_P on decls. - (dwarf2out_decl): Check for DECL_IGNORED_P only when needed. - -2001-12-29 Jakub Jelinek - - * cfglayout.c (insert_intra_before_1): New. - (insert_inter_bb_scope_notes): Emit sibling block notes which don't - span multiple basic blocks. - -2001-12-29 Richard Henderson - - * loop.c (prescan_loop): Set has_multiple_exit_targets for exception - edges. Rearrange jump interpretation code to use pc_set. - (check_dbra_loop): Examine has_multiple_exit_targets not exit_count. - - * sched-deps.c (sched_analyze_insn): Set scheduling barrier for - all insns that can throw, not just if flag_non_call_exceptions. - -2001-12-29 Stan Shebs - - * objc/objc-act.c (STRING_OBJECT_CLASS_NAME): Remove. - (default_constant_string_class_name): New global. - (objc_init): Set it. - (synth_module_prologue): Use it. - - * objc/objc-act.c: Apply various cosmetic and formatting changes. - -2001-12-29 Kazu Hirata - - * config/rs6000/darwin-tramp.asm: Fix comment formatting. - * config/rs6000/freebsd.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - -2001-12-28 Stan Shebs - - * objc/objc-act.c (build_module_descriptor): Make sure the init - function is not deferred. - (build_dispatch_table_initializer): Compute the method encoding if - not already done. - -2001-12-28 Kazu Hirata - - * doc/md.texi: Add @findex define_insn_and_split. - -2001-12-28 Hans Bohem - - * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. - * config/ia64/unwind-ia64.c (uw_init_context_1): Redo sp, psp, - bsp setup. Set pri_unat_loc to something reasonable. - (uw_install_context): Add missing cast. - (unw_access_gr): Fix off-by-1 indexing error. - -2001-12-28 Kazu Hirata - - * except.c: Fix comment formatting. - * flags.h: Likewise. - * flow.c: Likewise. - * predict.c: Likewise. - * simplify-rtx.c: Likewise. - * system.h: Likewise. - * vmsdbg.h: Likewise. - * vmsdbgout.c: Likewise. - -2001-12-28 Kazu Hirata - - * config/h8300/h8300.md: Fix formatting. - -2001-12-28 Geoff Keating - - * varasm.c (record_constant_1): Correct parameter to recursive - call in default case. - -2001-12-28 Jakub Jelinek - - * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT, - ASM_OUTPUT_DWARF_PCREL): Define. - * config/sparc/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - * configure.in (HAVE_AS_SPARC_UA_PCREL): Check whether as supports - .uaword %r_disp32() and linker handles it correctly. - * configure, config.in: Rebuilt. - -2001-12-28 Jakub Jelinek - - * c-typeck.c (store_init_value): If initializing object with array - type of unknown size by a compound literal, set object's size from - compound literal size. - * doc/extend.texi (Compound Literals): Adjust documentation. - -2001-12-28 Richard Henderson - - * real.c (etoe113, toe113): Ifndef INTEL_EXTENDED_IEEE_FORMAT. - (endian): Clear word 3 for INTEL_EXTENDED_IEEE_FORMAT. - (etartdouble): Invoke etoe64 for INTEL_EXTENDED_IEEE_FORMAT. - * real.h (REAL_VALUE_TO_TARGET_LONG_DOUBLE): Don't special case - INTEL_EXTENDED_IEEE_FORMAT. - -2001-12-27 Geoff Keating - - * combine.c (try_combine): Mask off sign bits when combining - stores to the low and high parts of a two-word value. - - * expr.c (expand_expr): Don't mark memory for non-constants as - constant. - -Thu Dec 27 20:39:55 2001 Richard Kenner - - * integrate.c (copy_rtx_and_substitute, case MEM): If inlining - and not for LHS, clear RTX_UNCHANGING_P. - -2001-12-28 Philipp Thomas - - * cppfiles.c (stack_include_file): Don't translate . - -2001-12-27 Roger Sayle - - * builtins.c (expand_builtin_memcmp): Optimize memcmp built-in - when all arguments are known constant. Fixes PR opt/3508. - -2001-12-27 Kazu Hirata - - * config/h8300/h8300.md (two anonymous patterns): Remove. - -2001-12-27 Richard Henderson - - * haifa-sched.c (reemit_other_notes): New. - (schedule_block): Use it. - * sched-ebb.c (schedule_ebbs): Call remove_unnecessary_notes. - * sched-rgn.c (schedule_insns): Likewise. - * cfglayout.c (remove_scope_notes): Handle removing note at - the end of the insn chain. - * function.c (debug_find_var_in_block_tree): New. - -2001-12-27 Alan Modra - David Edelsohn - - * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Simplify. - -2001-12-27 Jakub Jelinek - - * toplev.c (independent_decode_option): Re-add -aux-info option - handling. - -Thu Dec 27 09:50:44 2001 Richard Kenner - - * integrate.c (copy_insn_notes): Don't adjust REG_EH_REGION note - if special value. - -2001-12-26 Kaveh R. Ghazi - - * collect2.c (is_ctor_dtor): Const-ify. - * m88k-protos.h (output_file_start): Likewise. - * m88k.c (m88k_lang_independent_options, output_options, - output_file_start): Likewise. - * fix-header.c (files_to_ignore, std_include_entry, include_entry, - std_include_table, main): Likewise. - * protoize.c (longopts): Likewise. - * regclass.c (int_reg_class_contents): Likewise. - * toplev.c (dump_file, f_options, W_options): Make static. - (lang_independent_options, f_options, W_options): Const-ify. - * tree-dump.c (dump_file_info): Likewise. - * unroll.c (_factor): Make static. - -Wed Dec 26 17:55:50 2001 Richard Kenner - - * config/alpha/alpha.c (alpha_align_insns): Remove warning. - - * config/sparc/sparc.md (call struct patterns): Show starting - at two words long. - -2001-12-26 David Edelsohn - - * rs6000.h (ASM_CPU_SPEC, CPP_CPU_SPEC): Add mcpu=405. - * sysv4.h (CPP_SYSV_SPEC, CPP_OS_VXWORKS_SPEC): Add mcpu=405. - -2001-12-26 DJ Delorie - - * function.c (expand_main_function): Make sure stack adjustments - happen before sjlj exception setup. - -2001-12-26 David Edelsohn - - * rs6000.md (indirect_jump): Prefer CTR over LR. - * xcoff.h (ASM_DECLARE_FUNCTION_NAME): Handle weak function. - -Tue Dec 25 12:04:47 2001 Richard Kenner - - * dwarf2out.c: Reformatting and minor code rearrangement. - -2001-12-24 Douglas B. Rupp (rupp@gnat.com) - - * configure.in (quoted_stage_prefix_set_by_configure): Generate. - * configure: Regenerated. - * Makefile.in (SUBDIR_FLAGS_TO_PASS): Use - quoted_stage_prefix_set_by_configure. - -Mon Dec 24 10:24:59 2001 Richard Kenner - - * rtl.h (in_expr_list_p): New declaration. - * rtlanal.c (in_expr_list_p): New function. - * cfgcleanup.c: Reformatting and minor code rearrangement. - * cfglayout.c, cfgloop.c, cfgrtl.c: Likewise. - -2001-12-23 Richard Henderson - - PR c/5163: - * c-decl.c (duplicate_decls): As needed, set DECL_INLINE when - we have a function body associated. Minor cleanups. - (grokdeclarator): Do not set DECL_INLINE without a function body. - -2001-12-23 Richard Henderson - - * stmt.c (resolve_operand_names): Handle operand modifiers. - -2001-12-23 Richard Henderson - - * stmt.c (parse_input_constraint): Break out from ... - (expand_asm_operands): ... here. Loop over the operands twice, - the first time only calling mark_addressable. Correct and simplify - the conditions for spilling an output operand to memory. - -2001-12-23 Richard Henderson - - * config/alpha/alpha.c (call_operand) [OSF]: Disallow virtual regs. - - * config/alpha/alpha.md (UNSPEC_SIBCALL): New. - (sibcall, sibcall_value, sibcall_osf_1_er, sibcall_osf_1): Use it. - (sibcall_value_osf_1_er, sibcall_value_osf_1): Likewise. - -2001-12-23 Joseph S. Myers - - * c-typeck.c (c_start_case): Don't strip conversions from the - controlling expression. Partially fixes PR c/2454. - -2001-12-23 Joseph S. Myers - - * Makefile.in (USER_H): Remove proto.h. - * config.gcc (c*-convex-*): Set extra_headers=proto.h. - -2001-12-23 Kaveh R. Ghazi - - * arc.c (arc_hard_regno_mode_ok): Const-ify. - * arc.h (arc_hard_regno_mode_ok): Likewise. - * i386.c (x86_64_reg_class_name): Make static. - * m68k.c (regno_reg_class): Const-ify. - * m68k.h (regno_reg_class): Likewise. - * mcore.c (reg_class_from_letter): Likewise. - * mcore.h (reg_class_from_letter): Likewise. - * sh.c (reg_class_from_letter, ashiftrt_insns, shift_insns, - ext_shift_insns, ext_shift_amounts): Likewise. - * sh.h (reg_class_from_letter): Likewise. - * sparc.c (hard_regno_mode_classes, hard_32bit_mode_classes, - hard_64bit_mode_classes): Likewise. - * sparc.h (hard_regno_mode_classes): Likewise. - - * gcc.c (modify_target): Make static. - * gengenrtl.c (defs, formats): Likewise. - * reload1.c (elim_table_1, init_elim_table): Const-ify. - * tradcpp.c (directive, directive_table, handle_directive, - skip_if_group, run_directive): Likewise. - -2001-12-23 Richard Henderson - - * calls.c (expand_call): Don't turn off ECF_LIBCALL_BLOCK for - an invalid result register; do end the sequence properly. - (emit_library_call_value_1): Likewise. - -2001-12-22 Aldy Hernandez - - * config/rs6000/rs6000.h (rs6000_builtins): Add vsldoi variants. - - * config/rs6000/rs6000.md ("altivec_vsldoi_*"): Same. - - * config/rs6000/rs6000.c: Clean up some spacing and indentation. - (altivec_init_builtins): Add tree types for builtins with 4 bit - literals. - (bdesc_3arg): Add vsldoi variants. - -2001-12-22 Kaveh R. Ghazi - - * 1750a.h (datalbl, jmplbl): Declare array size explicitly. - * a29k.h (a29k_debug_reg_map): Likewise. - * arc.h (arc_regno_reg_class): Likewise. - * c4x-protos.h (c4x_regclass_map, c4x_caller_save_map): Likewise. - * convex.h (regno_reg_class, reg_class_from_letter): Likewise. - * d30v.h (regno_reg_class, reg_class_from_letter): Likewise. - * i386.h (regclass_map): Likewise. - * m32r.h (m32r_hard_regno_mode_ok, m32r_punct_chars): Likewise. - * mcore.h (regno_reg_class): Likewise. - * mips.h (mips_print_operand_punct, mips_char_to_class): - Likewise. - * ns32k.h (regclass_map): Likewise. - * pj.h (pj_debugreg_renumber_vec): Likewise. - * s390.h (regclass_map): Likewise. - * sh.h (regno_reg_class): Likewise. - * sparc.h (sparc_regno_reg_class): Likewise. - - * hard-reg-set.h (reg_class_contents): Likewise. - * machmode.h (class_narrowest_mode): Likewise. - -2001-12-22 David Edelsohn - - * loop.c (scan_loop, move_movables, count_one_set): Do not - overlook hard registers when computing statistics. - -Sun Dec 23 00:49:37 CET 2001 Jan Hubicka - - * calls.c (ECF_LIBCALL_BLOCK): New constant. - (emit_call_1, initialize_argument_information, - precompute_arguments, expand_call, - emit_library_call_value_1): Use ECF_LIBCALL_BLOCK - instead of ECF_PURE | ECF_CONST. Honnor LCT_CONST/LCT_PURE. - -2001-12-22 Joseph S. Myers - - * config.gcc (extra_headers): Move settings to math-68881.h and - ppc-asm.h to common code for CPU types. Use math-68881.h on all - m68k targets. - (header_files): Remove unused setting. - -2001-12-22 Kaveh R. Ghazi - - * elxsi.c: Include "hard-reg-set.h" and/or don't declare - `call_used_regs' explicitly. - * i860.c: Likewise. - * m68k.c: Likewise. - * ns32k.c: Likewise. - * pa.c: Likewise. - * vax.c: Likewise. - * we32k.c: Likewise. - -Fri Dec 21 23:30:14 CET 2001 Jan Hubicka - - * i386.h (TARGET_CPU_DEFAULT_pentium_mmx): New. - (TARGET_CPU_DEFAULT_*): Renumber. - -Sat Dec 22 12:20:20 EST 2001 John Wehle (john@feith.com) - - * rtl.h (subreg_lsb): Declare. - * rtlanal.c (subreg_lsb): Implement. - -Sat Dec 22 08:59:50 2001 Richard Kenner - - * predict.c: Reformatting and minor cleanups. - * cfg.c, cfganal.c, cfgbuild.c: Likewise. - - * expr.c (expand_expr, case ADDR_EXPR): Handling taking address of - SAVE_EXPR. - * function.c (gen_mem_addressof): Add missing tests for SAVE_EXPR. - (put_addressof_into_stack): Clarify code in setting of used_p. - - * calls.c (flags_from_decl_or_type): Move ECF_SP_DEPRESSED here. - (expand_call): Delete from here. - Do pending stack adjustments if ECF_SP_DEPRESSED. - - * dwarf2out.c (save_rtx): Deleted. - (mem_loc_descriptor): Do equivalent operation. - (add_const_value_attribute, case CONST): Likewise. - (add_name_and_src_coords_attributes): Likewise. - -2001-12-21 Kazu Hirata - - * config/h8300/h8300.h: Fix comment formatting. - -Fri Dec 21 17:30:15 2001 Jeffrey A Law (law@redhat.com) - - * pa.h (CPP_SPEC): If not in ANSI mode, define _INCLUDE_LONGLONG. - (CPLUSPLUS_CPP_SPEC): Define _INCLUDE_LONGLONG. - -2001-12-21 Robert Lipe - - * system.h (PREFETCH): Explictly undefine. - -2001-12-21 Richard Henderson - - * c-parse.in (SAVE_WARN_FLAGS): Save warn_traditional. - (RESTORE_WARN_FLAGS): Restore it. - (extension): Zero warn_traditional. - -2001-12-21 Kazu Hirata - - * doc/passes.texi: Fix a typo. - -2001-12-21 Kazu Hirata - - * config/h8300/h8300.h: Fix a comment typo. - -2001-12-21 Jakub Jelinek - - * combine.c (nonzero_bits): If using reg_nonzero_bits, - we don't know anything about bits outside of X mode. - (num_sign_bit_copies): Likewise. - -2001-12-21 Nick Clifton - - * config/arm/arm.md (prefetch): Use 'a' operand code. - -2001-12-20 Kaveh R. Ghazi - - * aclocal.m4 (gcc_AC_PROG_GNAT): Run prospective ada drivers in - subshells. - * configure.in: Likewise for perl Pod::Man. - - * configure: Regenerated. - -2001-12-20 Kaveh R. Ghazi - - * builtin-attrs.def (__builtin_printf_unlocked, - __builtin_fprintf_unlocked, printf_unlocked, fprintf_unlocked): - Mark with the __printf__ attribute. - - * builtins.c (expand_builtin_fputs): Add an `unlocked' parameter - and set the replacement function depending on it. - (expand_builtin): Skip BUILT_IN_*_UNLOCKED when not optimizing. - Handle BUILT_IN_*_UNLOCKED when optimizing. - - * builtins.def (DEF_EXT_FALLBACK_BUILTIN, - DEF_EXT_FRONT_END_LIB_BUILTIN): New macros. - Declare the "unlocked" stdio functions. - - * c-common.c (c_expand_builtin_printf, c_expand_builtin_fprintf): - Add an `unlocked' parameter and set the replacement function - depending on it. - (c_expand_builtin): Handle BUILT_IN_PRINTF_UNLOCKED and - BUILT_IN_FPRINTF_UNLOCKED. - - * doc/extend.texi (printf_unlocked, fprintf_unlocked, - fputs_unlocked): Document. - -2001-12-20 Josef Zlomek - - * cfgloop.c (flow_loops_find): Use the information of the depth - first search order of the CFG correctly when finding natural loops. - -2001-12-20 Richard Henderson - - * config/alpha/alpha.md (prologue_mcount): Update for explicit relocs. - -2001-12-20 Richard Henderson - - * config/alpha/alpha.c (call_operand) [OSF]: Accept pseudos. - * config/alpha/alpha.md (call_osf, call_value_osf): Don't force - operand into $27. - -2001-12-20 Joseph S. Myers - - * configure.in (all_headers, all_lib2funcs): Remove. - * configure: Regenerate. - * Makefile.in (LANG_EXTRA_HEADERS): Remove. - (USER_H): Don't include $(LANG_EXTRA_HEADERS). - * config/alpha/t-interix (USER_H): Don't include - $(LANG_EXTRA_HEADERS). - * config/i386/t-interix: Likewise. - * config/t-openbsd: Likewise. - -2001-12-20 Andreas Jaeger - - * libgcc2.c (__bb_exit_func): Remove unused variable. - (num_digits): Remove unused function. - -2001-12-20 Alan Shieh - - * config/arm/arm.c (arm_output_epilogue): Changed IP restore - to use ldmfd instead of ldmea. - * config/arm/arm.c (arm_compute_initial_elimination_offset): - Modified to reflect behavior of arm_expand_prologue when generating - interrupt handlers - -2001-12-20 Nick Clifton - - * config/arm/arm.c (arm_compute_save_reg0_reg12_mask): New - function. Compute which of registers r0 through r12 should be - saved onto the stack during a function's prologue. - (arm_compute_save_reg_mask): Use - arm_compute_save_reg0_reg12_mask. - (arm_compute_initial_elimination_offset): Use - arm_compute_save_reg0_reg12_mask. - - (arm_expand_prologue): Do not mark as save of the IP register - for an interrupt handler as being part of the frame creation - code. - -2001-12-20 Richard Henderson - - * varasm.c (assemble_real): Use REAL_VALUE_TO_x and assemble_integer - to emit floating point values. - (assemble_real_1): Remove. - - * 1750a/1750a.c (real_value_to_target_single): New. - (real_value_to_target_double): New. - * 1750a/1750a.h (TARGET_FLOAT_FORMAT): New. - (REAL_VALUE_TO_TARGET_SINGLE): New. - (REAL_VALUE_TO_TARGET_DOUBLE): New. - * 1750a/1750a-protos.h: Update. - - * 1750a/1750a.h, a29k/a29k.h, alpha/alpha.h, alpha/unicosmk.h, - alpha/vms.h, arc/arc.h, arm/aof.h, arm/aout.h, avr/avr.c, - avr/avr.h, c4x/c4x.h, clipper/clix.h, convex/convex.h, cris/cris.h, - d30v/d30v.h, dsp16xx/dsp16xx.c, dsp16xx/dsp16xx.h, elxsi/elxsi.h, - fr30/fr30.h, h8300/h8300.h, i370/i370.h, i386/i386.h, i386/i386elf.h, - i386/next.h, i386/ptx4-i.h, i386/sysv4.h, i860/fx2800.h, i860/i860.h, - i860/paragon.h, i860/sysv4.h, i960/i960-protos.h, i960/i960.c, - i960/i960.h, ia64/ia64.h, m32r/m32r.h, m68hc11/m68hc11.c, - m68hc11/m68hc11.h, m68k/3b1.h, m68k/altos3068.h, m68k/crds.h, - m68k/dpx2.h, m68k/hp320.h, m68k/m68k.h, m68k/mot3300.h, m68k/news.h, - m68k/next.h, m68k/next21.h, m68k/sgs.h, m68k/sun2o4.h, m68k/sun3.h, - m68k/tower-as.h, m88k/m88k.h, mcore/mcore.h, mips/mips-protos.h, - mips/mips.c, mips/mips.h, mmix/mmix-protos.h, mmix/mmix.c, - mmix/mmix.h, mn10200/mn10200.h, mn10300/mn10300.h, ns32k/encore.h, - ns32k/ns32k.h, pa/long_double.h, pa/pa.h, pdp11/pdp11.h, pj/pj.h, - romp/romp.c, romp/romp.h, rs6000/rs6000.h, s390/linux.h, sh/sh.h, - sparc/sparc.h, stormy16/stormy16.h, v850/v850.h, vax/vax.h, - vax/vaxv.h, we32k/we32k.h, doc/tm.texi: Remove ASM_OUTPUT_FLOAT, - ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE_FLOAT, - ASM_OUTPUT_SHORT_FLOAT, ASM_OUTPUT_THREE_QUARTER_FLOAT, and all - associated support routines. - -Thu Dec 20 16:58:46 CET 2001 Jan Hubicka - - * cfgcleanup.c (flow_find_cross_jump): Avoid incrementing of ninsns - if one of block does not contain jump. - (outgoing_edge_math): Revert last path; require edges to be noncomplex - nonfake to match single exit edge; require conditional jumps to not - have side effect. - -2001-12-20 Turly O'Connor - - * tm.texi (ASM_OUTPUT_OPERAND): Change documentation references to - "recog_operand" to "recog_data.operand". - * rtl.def: Likewise. - -2001-12-20 Jakub Jelinek - - * simplify-rtx.c (simplifi_binary_operation) [DIV]: If DIV has - narrower mode than op0, only return the bits in DIV's mode. - -2001-12-20 Jakub Jelinek - - * combine.c (distribute_notes): Avoid adding REG_LABEL notes - to JUMP_INSNs with JUMP_LABEL. - -2001-12-19 Aldy Hernandez - - * doc/install.texi: Add documentation for --enable-altivec. - - * config.gcc: Add support for --enable-altivec. - - * config/rs6000/altivec.h: New. - - * config/rs6000/linuxaltivec.h (SUBSUBTARGET_OVERRIDE_OPTIONS): - Define. Fix typo. - - * config/rs6000/rs6000.c (vrsave_operation): Change unspec to - unspec_volatile. - (generate_set_vrsave): Generate the unspec here instead of calling - an .md pattern. - (generate_set_vrsave): Use gen_rtvec. - (rs6000_emit_prologue): Replace call to gen_get_vrsave with - gen_rtx_SET. - - * config/rs6000/rs6000.md ("*movsi_internal1"): Add constraints - for setting special registers. - ("*set_vrsave_internal"): Use unspec_volatile. - ("set_vrsave"): Remove. - ("get_vrsave"): Remove. - - * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Add vrsave to - SPECIAL_REGS. - -2001-12-19 Bruce Korb - - * gcc/fixinc/inclhack.def: Remove all the fix suppression "fixes". - (strict_ansi_not_ctd): accommodate __STDC__ == 0 tests in UW 2.1.2 - * gcc/fixinc/mkfixinc.sh(i?86-*-sysv4.2uw2*): now uses fixincl program - * gcc/fixinc/base/...: adjust for changes in fixes - -2001-12-20 Joseph S. Myers - - * po/gcc.pot: Regenerate. - - * configure.in (all_diff_excludes, diff_excludes): Remove. - * configure: Regenerate. - * Makefile.in (LANG_DIFF_EXCLUDES): Remove. - * objc/config-lang.in (diff_excludes): Remove. - -2001-12-19 Dan Nicolaescu - - * config/sparc/sparc.md (ldd peephole2s): For load peepholes pass - the destination register as a parameter to mems_ok_for_ldd_peep. - For store peepholes pass NULL_RTX. Move all volatile checks ... - * config/sparc/sparc.c (mems_ok_for_ldd_peep): ... here. Add a - register parameter, check it's not the same as base for an address. - * config/sparc/sparc-protos.h (mems_ok_for_ldd_peep): Update. - -2001-12-19 Jakub Jelinek - - * config/ia64/ia64.c (ia64_single_set): Return first set for - prologue_allocate_stack and epilogue_deallocate_stack instructions. - -2001-12-19 Dale Johannesen - - * config/rs6000/rs6000.h: LEGITIMIZE_RELOAD_ADDRESS: - redefine in terms of rs6000_legitimize_reload_address(). - * config/rs6000/rs6000-protos.h: Add this function. - * config/rs6000/rs6000.c: Add this function. Includes - handling for Darwin FP constants. - -Wed Dec 19 11:01:21 2001 Jeffrey A Law (law@redhat.com) - - * config/pa/t-hpux-shlib: New file. - * config.gcc (hpux10, hpux11): Include t-hpux-shlib in tmake_file - for 32bit hpux10 & hpux11 configurations. - -2001-12-19 Nick Clifton - - * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Pass - -mno-fpu onto gas unless -mhard-float is specified. - (MULTILIB_DEFAULTS): Include msoft-float. - - * config/arm/t-xscale-coff (EXTRA_MULTILIB_PARTS): Remove definition. - - * config/arm/coff.h (SUPPORTS_INIT_PRIORITY): Define (to false). - * config/arm/elf.h (SUPPORTS_INIT_PRIORITY): Define (to true). - -Wed Dec 19 06:12:34 2001 Douglas B. Rupp - - * dwarf2out.c (add_name_and_src_coords_attributes): Fix VMS procedure - descriptor output. - -2001-12-18 Stan Shebs - - * rs6000.h (LOCAL_ALIGNMENT): Fix parens. - -Tue Dec 18 17:02:06 2001 Richard Kenner - - * emit-rtl.c (widen_memory_access): Only call compare_tree_int - on an INTEGER_CST. - -2001-12-18 David Edelsohn - - * rs6000.c (rs6000_override_options): Only use DI ops when - TARGET_64BIT. Fix typo. - -Tue Dec 18 16:39:46 CET 2001 Jan Hubicka - - * att.h (ASM_FILE_START): Use asm_dialect. - * linux.h (ASM_FILE_START): Likewise. - * gas.h (ASM_FILE_START): Likewise. - * i386.c (ix86_debug_arg_string, ix86_debug_addr_string, - ix86_asm_string, ix86_asm_dialect): New. - (override_options): Set asm_dialect. - * i386.h (MASK_MIX_SSE_I387, MASK_INTEL_SYNTAX, MASK_DEBUG_ARG, - MASK_DEBUG_ADDR): Kill. - (MASK_64BIT, MASK_NO_RED_ZONE): renumber. - (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Use string. - (ASSEMBLER_DIALECT): Use asm_dialect. - (TARGET_SWITCHES): Undocument deprecated items; deprecate intel-syntax; - remove debug-addr and debug-arg. - (TARGET_OPTIONS): Add debug-arg, debug-addr, asm. - (asm_dialect): New enum. - (ix86_debug_arg_string, ix86_debug_addr_string, - ix86_asm_string, ix86_asm_dialect): Declare. - * invoke.texi (-mintel-syntax): Remove. - (-masm): Document. - -Tue Dec 18 16:37:42 CET 2001 Jan Hubicka - - * libgcc2.c (__bb_exit_func): Kill -ax dumping code. - -2001-12-18 Jason Merrill - - C++ ABI change: destroy value arguments in caller. - * calls.c (initialize_argument_information): Pass the address of - the TARGET_EXPR temporary rather than storing it into another. - -Tue Dec 18 07:09:06 2001 Douglas B. Rupp - - * config/alpha/xm-vms.h (INCLUDE_DEFAULTS): Add /gnu/include. - * config/alpha/vms.h (STACK_CHECK_BUILTIN): #define 0 for VMS. - -2001-12-18 Jakub Jelinek - - * config/linux.h (PREFERRED_DEBUGGING_TYPE): Remove. - * config/sparc/linux.h (PREFERRED_DEBUGGING_TYPE): Remove. - * config/sparc/linux64.h (PREFERRED_DEBUGGING_TYPE): Remove. - (CC1_SPEC): Don't default to -gstabs+ if -m32. - -2001-12-05 David O'Brien - - * elfos.h (PREFERRED_DEBUGGING_TYPE): Change to DWARF2_DEBUG. - -2001-12-18 Joseph S. Myers - - * po/gcc.pot: Regenerate. - -2001-12-18 Kazu Hirata - - * config/h8300/h8300.c: Fix comment typos. - * config/h8300/h8300.h: Fix comment formatting. - -2001-12-17 Kaveh R. Ghazi - - * machmode.h (mode_name, mode_class, mode_size, mode_unit_size, - mode_bitsize, mode_mask_array, mode_wider_mode): Set array size in - declaration to NUM_MACHINE_MODES. - (mode_size, mode_unit_size): Set array type to unsigned char. - (mode_bitsize): Set array type to unsigned short. - - * rtl.c (rtx_length): Set array type to unsigned char. - (rtx_length, rtx_name, rtx_format, rtx_class): Set array size to - NUM_RTX_CODE. - (mode_bitsize): Set array type to unsigned short. - (mode_size, mode_unit_size): Set array type to unsigned char. - (mode_name, mode_class, mode_bitsize, mode_size, mode_unit_size, - mode_wider_mode, mode_mask_array): Set array size to - NUM_MACHINE_MODES. - - * rtl.h (rtx_length, rtx_name, rtx_format, rtx_class): Set array - size in declaration to NUM_RTX_CODE. - -2001-12-17 Richard Henderson - - * config/alpha/alpha.md (unop): Encode RB as $sp. - -2001-12-17 Neil Booth - - * Makefile.in: Update dependencies. - * c-lang.c: Remove unnecessary includes. - (deferred_fns, start_cdtor, finish_cdtor, defer_fn): Move to - c-objc-common.c. - (finish_file): Move body to c_common_finish_file. - * c-objc-common.c: Include varray.h and ggc.h. - (deferred_fns, start_cdtor, finish_cdtor, defer_fn, - expand_deferred_fns, c_objc_common_finish_file): Moved from c-lang.c. - (c_objc_common_init): Initialize deferred function array. - * c-tree.h (c_objc_common_finish_file, - static_ctors, static_dtors): New. -objc: - * Make-lang.in: Update dependencies. - * objc/objc-act.c: Don't include varray.h. - (defer_fn, deferred_fns): Move to c-objc-common.c. - (objc_init): Similarly for initialization of it. - (finish_file): Move some to c-objc-common.c, use - c_objc_common_finish_file. - -2001-12-17 Aldy Hernandez - - * config/rs6000/rs6000.c: Remove is_gpr_return_reg prototype. - -2001-12-17 Neil Booth - - * doc/cppinternals.texi: Update. - -Mon Dec 17 14:21:21 2001 Jeffrey A Law (law@redhat.com) - - * expmed.c (emit_store_flag): Extract updated comparison code - from the return value of compare_from_rtx. - * expr.c (do_store_flag): Similarly. - -2001-12-17 Nick Clifton - - * caller-save.c (init_caller_save): Use MODE_BASE_REG_CLASS in - preference to BASE_REG_CLASS. - * recog.c (preprocess_constraints): Ditto. - * regclass.c (record_operand_costs, scan_one_insn, regclass, - record_reg_classes, record_address_regs): Ditto. - * regrename.c (scan_rtx_address, scan_rtx, - replace_oldest_value_addr, replace_oldest_value_mem): Ditto. - * reload.c (find_reloads, find_reloads_address, - find_reloads_address_1): Ditto. - * reload1.c (maybe_fix_stack_asms): Ditto. - * defaults.h (MODE_BASE_REG_CLASS): Provide default - definition. - * doc/tm.texi: Document MODE_BASE_REG_CLASS. - - * config/arm/arm.h (MODE_BASE_REG_CLASS): Define. - -2001-12-17 Joseph S. Myers - - * doc/install.texi2html: Use -I $SOURCEDIR. - - Separate user and internals manuals. - * Makefile.in (info, $(docdir)/gcc.info, dvi, gcc.dvi): Update - dependencies. - ($(docdir)/gccint.info, gccint.dvi): New targets. - (maintainer-clean, install-info, uninstall): Update. - * doc/.cvsignore: Add gccint.info*. - * doc/include/gcc-common.texi: New file. - * doc/gcc.texi: Use it. Adjust to be a user-only manual. Put - copyright notice in a macro. Don't include ISBN unless FSFPRINT - is defined. - * doc/gccint.texi: New file. - * doc/configfiles.texi, doc/extend.texi, doc/invoke.texi, - doc/md.texi, doc/passes.texi, doc/tm.texi, doc/trouble.texi: - Update for separate user and internals manuals. - -2001-12-17 Dale Johannesen - - * config/rs6000/rs6000.h: CPP_CPU_SPEC: add mcpu=7400. - ASM_CPU_SPEC: Ditto. - RTX_COSTS: Fix timing info for 7450 multiply. - * config/rs6000/rs6000.md: Fix timing info for 7450 imul. - Allow floats to be kept in int regs in movsf_low, - movsf_low_st (Darwin only) - -2001-12-17 Aldy Hernandez - - * config/rs6000/rs6000.c (vrsave_operation): Recognize SETs in - parallel. - (is_gpr_return_reg): New. - (rs6000_emit_prologue): Call generate_set_vrsave with additional - argument. Save only registers in the mask. Attach - REG_FRAME_RELATED_EXPR note to altivec offsets. Do not call - rs6000_frame_related when saving VRSAVE. - (rs6000_emit_epilogue): Call generate_set_vrsave with additional - argument. Restore only registers in the mask. Restore altivec - registers after we restore CR. - (generate_set_vrsave): New parameter epiloguep. Generate unspec - sets instead of clobbers for call saved registers. - (altivec_frame_fixup): New. - -2001-12-17 Richard Henderson - - * config/sparc/sparc.md (movdi_zero): Remove. - (movdi_insn_sp32_v9): New. - -2001-12-17 Richard Henderson - - * cfgcleanup.c (outgoing_edges_match): Check for insn match with - a single outgoing edge too. - -Mon Dec 17 18:27:52 CET 2001 Jan Hubicka - - * cfgrtl.c (redirect_edge_and_branch): Do simplify abnormal - edges resulting from computed jump - -Mon Dec 17 17:57:05 CET 2001 Jan Hubicka - - * Makefile.in (cfgcleanup.o): Add cselib.h dependency. - * basic-block.h (CLEANUP_THREADING): New constant. - * cfgcleanup.c: Include cselib.h - (thread_jump, mark_effect): New functions. - (try_forward_edges): Do jump threading when asked for. - * jump.c (mark_modified_reg, save_regs, num_same_regs, modified_regs, - modified_mem, thread_jumps, rtx_equal_for-thread_p): Kill. - * rtl.h (thread_jumps, rtx_equal_for_thread_p): Kill. - * toplev.c (rest_of_compilation): Do now call thread_jumps; use - CLEANUP_THREAD instead. - -2001-12-17 Kaveh R. Ghazi - - * sparc/linux.h (STARTFILE_SPEC): Fix typo in last change. - -2001-12-17 Tom Rix - - * config/rs6000/rs6000.c (expand_block_move): Fix limits on max size - of bytes. - -2001-12-17 Richard Sandiford - - * target.h (asm_out.byte_op, asm_out.aligned_op, asm_out.unaligned_op, - asm_out.integer): New fields. - * target-def.h (TARGET_ASM_BYTE_OP, TARGET_ASM_ALIGNED_[HSDT]I_OP, - TARGET_ASM_UNALIGNED_[HSDT]I_OP, TARGET_ASM_INTEGER): New initializers. - (TARGET_ASM_ALIGNED_INT_OP, TARGET_ASM_UNALIGNED_INT_OP): Collect - the individual initializers together. - (TARGET_ASM_OUT): Add the new initializers. - * output.h (assemble_integer): Return bool. - (integer_asm_op): Declare. - (default_assemble_integer): Declare. - (assemble_aligned_integer): New interface to assemble_integer. - * varasm.c (integer_asm_op): New function to select pseudo-op. - (default_assemble_integer): Default implementation of asm_out.integer. - (assemble_integer): Use the new target hook. Split objects into - words or bytes if the target hook fails. Return bool. - * doc/tm.texi (ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE, ASM_OUTPUT_SHORT, - ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, ASM_OUTPUT_QUADRUPLE_INT, - UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Undocument. - Document new target hooks. - - * defaults.h (ASM_OUTPUT_ADDR_VEC_ELT): Use integer_asm_op. - * dwarf2asm.c (unaligned_integer_asm_op): Remove. - (dw2_assemble_integer): New. - (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset, - dw2_asm_output_pcrel, dw2_asm_output_addr, dw2_asm_output_addr_rtx, - dw2_asm_output_encoded_addr_rtx): Use it. - (dw2_asm_output_nstring): Use assemble_integer for the null terminator. - (dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128): Use - integer_asm_op to get the byte pseudo-op. Use assemble_integer - if it returns NULL. - * dwarf2asm.h (dw2_assemble_integer): Declare. - * dwarfout.c: Include dwarf2asm.h. Use dwarf2 functions for the - default implementation of most macros. - (output_unsigned_leb128): Use dw2_asm_output_data. - (output_signed_leb128, dwarfout_source_line): Likewise. - (output_reg_number): Use dw2_assemble_integer. - (generate_macinfo_entry): Separate the type and offset arguments. - Use assemble_integer to write the value. - (dwarfout_start_source_file): Update generate_macinfo_entry usage. - (dwarfout_end_source_file, dwarfout_define, dwarfout_undef): Likewise. - * final.c (output_addr_const): Don't put brackets round a subtracted - symbol value or ".". - * halfpic.c (half_pic_finish): Use assemble_aligned_integer. - - * config/1750a/1750a.c (assemble_integer_1750a): New, - * config/alpha/alpha.h (literal_section): Avoid ASM_OUTPUT_INT. - * config/arc/arc.c (arc_assemble_integer): New. - * config/arc/arc.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. - * config/arm/arm.c (arm_poke_function_name): Likewise. - (arm_assemble_integer): New, extracted from... - * config/arm/arm.h (OUTPUT_INT_ADDR_CONST): ...here, now removed. - (ARM_TRAMPOLINE_TEMPLATE, ARM_FUNCTION_PROFILER): Avoid ASM_OUTPUT_INT. - (ARM_FUNCTION_PROFILER): Likewise. - * config/avr/avr-protos.h (asm_output_byte): Remove. - (asm_output_char, asm_output_short): Remove. - * config/avr/avr.c (avr_assemble_integer): New. - (asm_output_byte, asm_output_char, asm_output_short): Remove. - * config/clipper/clipper.h (ASM_LONG): Remove. - * config/dsp16xx/dsp16xx-protos.h (asm_output_long): Remove. - * config/dsp16xx/dsp16xx.c (asm_output_long): Remove. - * config/elxsi/elxsi.c (elxsi_assemble_integer): New. - * config/i370/i370.c (i370_hlasm_assemble_integer): New. - * config/i370/i370.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_SHORT. - (ASM_BYTE, ASM_SHORT, ASM_LONG): Delete. - * config/i386/att.h, (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. - * config/i386/linux.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Use - ASM_LONG instead of UNALIGNED_INT_ASM_OP. - * config/i386/sco5.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Likewise. - (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. - * config/i386/sysv4.h (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Use - ASM_LONG instead of UNALIGNED_INT_ASM_OP. - * config/i860/fx2800.h (ASM_FILE_END): Avoid ASM_LONG. - * config/i860/i860.c (i860_output_function_epilogue): Likewise. - * config/i860/i860.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. - (ASM_SHORT, ASM_LONG): Undefine. - * config/i860/paragon.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. - * config/i860/sysv3.h (ASM_OUTPUT_ASCII): Likewise. - * config/i960/i960.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. - * config/ia64/ia64.c (ia64_assemble_integer): New. - * config/ia64/ia64.h (ASM_OUTPUT_DWARF_OFFSET): Use integer_asm_op. - (ASM_OUTPUT_DWARF_PCREL): Likewise. - * config/m68hc11/m68hc11.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_ADDR_DIFF_ELT, ASM_OUTPUT_ADDR_VEC_ELT): Avoid ASM_LONG. - (ASM_SHORT, ASM_LONG): Remove. - * config/m68k/m68k.h (INT_OP_GROUP): New macro. - (INT_OP_STANDARD, INT_OP_DOT_WORD, INT_OP_NO_DOT, INT_OP_DC): New - macros, the allowed values for INT_OP_GROUP. - * config/m68k/amix.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP - * config/m68k/atari.h (ASM_OUTPUT_ASCII): Likewise - * config/m68k/m68kelf.h (ASM_OUTPUT_ASCII): Likewise - * config/m68k/auxas.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP): Remove. - (INT_OP_GROUP): Define to INT_OP_NO_DOT. - * config/m68k/dpx2.h (ASM_LONG): Undefine. - (INT_OP_GROUP): Define to INT_OP_DC. - * config/m68k/dpx2g.h (ASM_LONG): Undefine. - * config/m68k/hp320.h (INT_OP_GROUP): Define to INT_OP_NO_DOT. - * config/m68k/lynx.h (ASM_LONG): Undefine. - * config/m68k/dpx2g.h (ASM_LONG): Undefine. - * config/m68k/m68kelf.h (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. - * config/m68k/m68kv4.h (ASM_OUTPUT_ASCII): Likewise. - (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_*. - * config/m68k/mot3300.h (INT_OP_GROUP): Define to INT_OP_STANDARD - for GAS and INT_OP_NO_DOT otherwise. - (ASM_CHAR, ASM_BYTE, ASM_SHORT, ASM_LONG): Remove. - (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Avoid ASM_LONG. - (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. - * config/m68k/sgs.h (BYTE_ASM_OP, WORD_ASM_OP, LONG_ASM_OP): Remove. - (INT_OP_GROUP): Define to INT_OP_STANDARD. - (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Avoid LONG_ASM_OP. - (ASM_OUTPUT_ASCII): Avoid BYTE_ASM_OP. - * config/m68k/tower-as.h (ASM_LONG): Remove. - (INT_OP_GROUP): Define to INT_OP_NO_DOT. - * config/m88k/m88k.c (output_tdesc): Avoid ASM_LONG. - * config/m88k/m88k.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. - (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Avoid ASM_LONG. - * config/mips/iris5.h (TARGET_IRIX5): Define. - * config/mips/mips.c (mips_assemble_integer): New. - * config/mips/sni-svr4.h (ASM_LONG): Undefine. - * config/mmix/mmix-protos.h (mmix_asm_output_double_int): Remove. - * config/mmix/mmix.c (mmix_assemble_integer): New. - (mmix_asm_output_double_int): Remove. - (mmix_print_operand): Call mmix_output_octa directly. - * config/mmix/mmix.h (ASM_LONG): Remove. - * config/ns32k/ns32k.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_INT. - * config/pa/pa.c (pa_assemble_integer): New. - (pa_override_options): Only use aligned DI ops on 64-bit targets. - Only use the unaligned ops if TARGET_GAS. - * config/pdp11/pdp11.c (pdp11_assemble_integer): New. - * config/pdp11/pdp11.h (TRAMPOLINE_TEMPLATE): Avoid ASM_OUTPUT_SHORT. - * config/pj/pj.h (ASM_LONG): Undefine. - * config/rs6000/linux64.h (RELOCATABLE_NEEDS_FIXUP): Undefine. - * config/rs6000/rs6000.c (rs6000_assemble_integer): New, mostly - extracted from ASM_OUTPUT_INT in sysv4.h. Use in_text_section() - and in_toc_section() rather than the in_section variable. - (rs6000_override_options): Only use DI ops when TARGET_POWERPC64. - * config/rs6000/sysv4.h (TOC_SECTION_FUNCTION): Add in_toc_section(). - (RELOCATABLE_NEEDS_FIXUP): Define. - * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Change space to tab. - * config/s390/linux.h (ASM_SHORT, ASM_LONG, ASM_QUAD): Remove. - (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): Use integer_asm_op - to get the word directive. - (ASM_OUTPUT_ASCII): Avoid ASM_BYTE_OP. - * config/s390/s390.c (s390_assemble_integer): New. - * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Use - integer_asm_op to get the word directive. - * config/sparc/sol2.h (ASM_SHORT, ASM_LONG): Remove. - * config/sparc/sparc-protos.h (output_double_int): Remove. - * config/sparc/sparc.c (output_double_int): Move to... - (sparc_assemble_integer): ...this new function. - (sparc_override_options): Only use .uaxword if TARGET_ARCH64. - * config/sparc/sparc.h (ASM_SHORT, ASM_LONG, ASM_LONGLONG): Remove. - * config/sparc/sysv4.h (ASM_LONG): Remove. - (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Avoid - ASM_LONG. - * config/vax/vax.h (TRAMPOLINE_TEMPLATE): Use assemble_aligned_integer. - * config/we32k/we32k.h (TRAMPOLINE_TEMPLATE): Likewise. - - * config/1750a/1750a.c, config/a29k/a29k.c, config/alpha/alpha.c, - config/arc/arc.c, config/arm/arm.c, config/avr/avr.c, config/c4x/c4x.c, - config/clipper/clipper.c, config/convex/convex.c, config/cris/cris.c, - config/d30v/d30v.c, config/dsp16xx/dsp16xx.c, config/elxsi/elxsi.c, - config/fr30/fr30.c, config/h8300/h8300.c, config/i370/i370.c, - config/i386/i386.c, config/i860/i860.c, config/i960/i960.c, - config/ia64/ia64.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c, - config/m68k/m68k.c, config/m88k/m88k.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/sh/sh.c, config/sparc/sparc.c, config/stormy16/stormy16.c, - config/v850/v850.c, config/vax/vax.c, config/we32k/we32k.c - (TARGET_ASM_BYTE_OP, TARGET_ASM_ALIGNED_HI_OP, - TARGET_ASM_ALIGNED_SI_OP, TARGET_ASM_ALIGNED_DI_OP, - TARGET_ASM_UNALIGNED_HI_OP, TARGET_ASM_UNALIGNED_SI_OP, - TARGET_ASM_UNALIGNED_DI_OP, TARGET_ASM_INTEGER): Redefine as - appropriate. - - * config/defaults.h, config/darwin.h, config/elfos.h, config/svr3.h, - config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h, - config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, config/c4x/c4x.h, - config/clipper/clipper.h, config/convex/convex.h, config/cris/cris.h, - config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h, - config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h, - config/i386/bsd.h, config/i386/djgpp.h, config/i386/i386.h, - config/i386/sco5.h, config/i386/sol2.h, config/i386/sun386.h, - config/i860/i860.h, config/i960/i960.h, config/ia64/ia64.h, - config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/auxas.h, - config/m68k/dpx2.h, config/m68k/hp320.h, config/m68k/m68k.h, - config/m68k/mot3300.h, config/m68k/sgs.h, config/m68k/tower-as.h, - config/m88k/m88k.h, config/mcore/mcore-elf.h, config/mcore/mcore.h, - config/mips/iris5.h, config/mips/iris6.h, config/mips/mips.h, - config/mmix/mmix.h, config/mn10200/mn10200.h, config/mn10300/mn10300.h - config/ns32k/encore.h, config/ns32k/ns32k.h, config/pa/pa-64.h, - config/pa/pa.h, config/pdp11/pdp11.h, config/pj/pj.h, - config/romp/romp.h, config/rs6000/linux64.h, config/rs6000/rs6000.h, - config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/linux.h, - config/sh/sh.h, config/sparc/linux64.h, config/sparc/sol2.h, - config/sparc/sp64-elf.h, config/sparc/sparc.h, config/sparc/sysv4.h, - config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h, - config/we32k/we32k.h (ASM_OUTPUT_CHAR, ASM_OUTPUT_BYTE, ASM_BYTE_OP, - ASM_BYTE, ASM_OUTPUT_SHORT, ASM_OUTPUT_INT, ASM_OUTPUT_DOUBLE_INT, - UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Undefine, where defined. - -2001-12-17 Stan Shebs - - * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Define. - (STACK_BOUNDARY): Remove definition. - (CPP_PREDEFINES): Define __POWERPC__. - -2001-12-17 Gerald Pfeifer - - * doc/c-tree.texi (Trees): Only refer to GCC. - -2001-12-17 Andreas Jaeger - - * c-common.def: Fix typo in comment. - -2001-12-16 David O'Brien - - * config.gcc (sparc64-*-freebsd*): Add target. - * config/sparc/freebsd.h: New file. - * config/sparc/sparc.h (LIB_SPEC, LINK_SPEC): Don't define. - * config/sparc/sunos4.h (LIB_SPEC, LINK_SPEC): Define. - * config/sparc/sysv4.h (CPP_PREDEFINES): Undefine before defining. - -2001-12-16 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_legitimize_address): Force both - PLUS operands into registers for altivec mode. - -2001-12-16 Aldy Hernandez - - * builtins.c (apply_args_size): Change regno to unsigned. - -2001-12-16 Aldy Hernandez - - * config/rs6000/rs6000.h (FUNCTION_ARG_REGNO_P): Change - ALTIVEC_ARG_MAX_REG to ALTIVEC_ARG_NUM_REG. - -2001-12-16 Zack Weinberg - - * c-typeck.c (error_init, pedwarn_init, warning_init): Call - gettext on argument before printing. - - * fold-const.c (negate_expr): Always call fold on new - NEGATE_EXPR. - -2001-12-17 Joseph S. Myers - - * c-common.def (COMPOUND_LITERAL_EXPR): Contain a DECL_STMT, not - a DECL directly. - * c-common.h (COMPOUND_LITERAL_EXPR_DECL_STMT): New. - (COMPOUND_LITERAL_EXPR_DECL): Adjust definition. - * c-decl.c (build_compound_literal): Put the decl inside a - DECL_STMT. - * doc/c-tree.texi (COMPOUND_LITERAL_EXPR): Update documentation. - Fixes PR c/5105. - -2001-12-16 Aldy Hernandez - - * config.gcc: Add powerpc-*-eabisimaltivec*. - -2001-12-16 Neil Booth - - * c-common.c, c-common.h (back_end_hook): Remove. - * c-lang.c (finish_file): Remove back_end_hook. - -Sun Dec 16 13:13:01 2001 Richard Kenner - - * expr.c (highest_pow2_factor, case INTEGER_CST): Fix error in - last change. - -2001-12-16 Richard Henderson - - * toplev.c (parse_options_and_default_flags): Don't enable - flag_cprop_registers at -O1. - -2001-12-16 Kaveh R. Ghazi - - * avr.c (avr_simplify_comparision_p, adjust_insn_length, - mask_one_bit_p, output_reload_insisf): Don't use the 'U' suffix. - * avr.h (reg_class): Likewise. - * avr.md: Likewise. - * mcore.c (try_constant_tricks, mcore_byte_offset, - mcore_halfword_offset): Likewise. - * sh.c (shl_sext_kind, gen_block_redirect, split_branches): Likewise. - * v850.c (not_power_of_two_operand): Likewise. - - * clipper/clix.h (ASM_OUTPUT_ASCII): Avoid signed/unsigned - warnings. - * convex.h (ASM_OUTPUT_ASCII): Likewise. - * i370.h (ASM_OUTPUT_ASCII): Likewise. - * i386/att.h (ASM_OUTPUT_ASCII): Likewise. - * i386/i386-interix.h (ASM_OUTPUT_ASCII): Likewise. - * i386/i386elf.h (ASM_OUTPUT_ASCII): Likewise. - * i386/ptx4-i.h (ASM_OUTPUT_ASCII): Likewise. - * i386/sco5.h (ASM_OUTPUT_ASCII): Likewise. - * i386/sun386.h (ASM_OUTPUT_ASCII): Likewise. - * i386/sysv4.h (ASM_OUTPUT_ASCII): Likewise. - * i860/bsd.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/3b1.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/amix.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/atari.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/crds.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/hp320.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/mot3300.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/sgs.h (ASM_OUTPUT_ASCII): Likewise. - * m68k/tower-as.h (ASM_OUTPUT_ASCII): Likewise. - * mips/bsd-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/mips-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/svr3-5.h (ASM_OUTPUT_ASCII): Likewise. - * mips/svr4-5.h (ASM_OUTPUT_ASCII): Likewise. - * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise. - * vax/vaxv.h (ASM_OUTPUT_ASCII): Likewise. - * we32k/we32k.h (ASM_OUTPUT_ASCII): Likewise. - - * i386/uwin.h (MD_STARTFILE_PREFIX): Avoid redefinition warnings. - * interix.h (TARGET_MEM_FUNCTIONS): Likewise. - * psos.h (CPP_PREDEFINES): Likewise. - * rs6000/linux64.h (ROUND_TYPE_ALIGN): Likewise. - * rs6000/xcoff.h (RS6000_MCOUNT, RS6000_ITRUNC, RS6000_UITRUNC, - ASM_OUTPUT_EXTERNAL): Likewise. - * sparc/liteelf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO): - Likewise. - * sparc/sp64-elf.h (UNALIGNED_DOUBLE_INT_ASM_OP): Likewise. - * sparc/sp86x-elf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO): - Likewise. - * sparc/sunos4.h (SUNOS4_SHARED_LIBRARIES): Likewise. - - * c-lex.c (lex_number): Use ISXDIGIT/hex_value. - * vax/xm-vms.h (FILE_NAME_NONDIRECTORY): Use ISUPPER/TOLOWER. - * fold-const.c (real_hex_to_f): Use hex_value. - * real.c (asctoeg): Use hex_value & ISXDIGIT. - * toplev.c (toplev_main): Call hex_init. - * tradcpp.c (main): Call hex_init. - - * nextstep-protos.h: New file. - * nextstep.c: Include "rtl.h", "output.h" & "tm_p.h". - * nextstep.h (INCLUDE_DEFAULTS): Delete LOCAL_INCLUDE_DIR and - STANDARD_INCLUDE_DIR from the CROSS_COMPILE clause. - (nextstep_asm_out_constructor, nextstep_asm_out_destructor, - handle_pragma): Move prototypes to nextstep-protos.h. - * config.gcc (i[34567]86-next-*, m68k-next-nextstep2*, - m68k-next-nextstep[34]*): Append nextstep-protos.h to tm_p_file. - -2001-12-16 Craig Rodrigues - - PR other/3725 - * configure.in: Add AC_SUBST(target_alias). - * configure: Regenerated. - -2001-12-15 Richard Henderson - - * config/alpha/alpha.md (sibcall_osf_1_er): New. - (sibcall_value_osf_1_er): New. - -2001-12-15 Dan Nicolaescu - - * config/sparc/sparc.c (mems_ok_for_ldd_peep): Rename from - addrs_ok_for_ldd_peep_withmem; take MEMs as parameters, not - addrs; eliminate restriction of only using fp and sp as base - registers. - * config/sparc/sparc-protos.h: Update. - * config/sparc/sparc.md (movdi): Use TARGET_V9 not TARGET_ARCH64. - (*cmp_cc_set, *cmp_ccx_set64, *movdi_zero): New insns derived - from old define_peepholes. - Convert all the ldd/std peepholes to peephole2. - -2001-12-15 Ulrich Weigand - - * s390.md (prologue, epilogue, *return_si, *return_di): New. - s390.c (find_unused_clobbered_reg, s390_frame_info, - save_fpr, restore_fpr, s390_emit_prologue, s390_emit_epilogue): New. - s390-protos.h (s390_emit_prologue, s390_emit_epilogue): Declare. - s390.c (s390_arg_frame_offset): Use s390_frame_info. - (leaf_function_flag, cur_is_leaf_function, - save_fprs, restore_fprs, force_const_mem_late): Remove. - (s390_function_prologue, s390_function_epilogue): Mostly remove. - s390.md (lit): New. Uses ... - s390.c (s390_output_constant_pool): ... this, so adapt and make global. - s390-protos.h (s390_output_constant_pool): Declare. - s390.md (load_multiple, store_multiple): Allow use after reload. - s390.c (load_multiple_operation, store_multiple_operation): Likewise. - s390.h (INCOMING_FRAME_SP_OFFSET): Define. - s390.h (CALL_REALLY_USED_REGISTERS): Define. - config/s390/linux64.h (CALL_USED_REGISTERS): Remove, now handled ... - s390.h (CONDITIONAL_REGISTER_USAGE): ... here. - s390.c (s390_sr_alias_set): New global variable, initialized ... - (override_options): ... here. New. - s390-protos.h (override_options): Declare. - s390.h (OVERRIDE_OPTIONS): Call it. - s390.c (s390_function_profiler): New. - s390-protos.h (s390_function_profiler): Declare. - s390.h (FUNCTION_PROFILER): Call it. - s390.c (s390_profile): Remove. - - * s390.c (reg_used_in_mem_p): PC reload counts as memory access. - (addr_generation_dependency_p): Consider literal pool register loads. - (s390_adjust_priority): Do not schedule load_multiple. - s390.md (attribute "type"): Define some additional types. - (function_unit "integer"): Adapt. - (many insns): Adapt "type" attribute setting. - - * s390.c (general_s_operand, s_imm_operand): New. - (s_operand): Remove old definition, call general_s_operand instead. - s390-protos.h (s_imm_operand): Declare. - s390.c (base_n_index_p, r_or_s_operand, r_or_s_or_im8_operand, - r_or_x_or_im16_operand, r_or_im8_operand): Remove. - s390-protos.h (r_or_s_operand, r_or_s_or_im8_operand, - r_or_x_or_im16_operand, r_or_im8_operand): Likewise. - s390.h (PREDICATE_CODES): Add s_imm_operand, remove r_or_s*_operand. - s390.md (many insns): Rework insn predicates. - - * s390.c (legitimate_pic_operand_p, legitimate_constant_p): Accept all - non-symbolic constants. Reload will force them because of ... - (s390_preferred_reload_class): ... this. New. - s390-protos.h (s390_preferred_reload_class): Declare. - s390.h (PREFERRED_RELOAD_CLASS): Call it. - s390.md (movdi, movsi, movdf, movsf, *reload_la_64 splitters, - *reload_la_31 splitters): Handle constants after reload. - (many insns): no longer force all constants immediately. - s390.c (legitimate_reload_constant_p): New helper routine. - s390-protos.h (legitimate_reload_constant_p): Declare. - s390.c (print_operand): Clean up CONST_INT case, add CONST_DOUBLE case. - - * s390.h (FIRST_PSEUDO_REGISTER, FRAME_POINTER_REGNUM, - HARD_FRAME_POINTER_REGNUM, REGISTER_NAMES): Add virtual frame pointer. - (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS): Update. - (ELIMINABLE_REGS, INITIAL_ELIMINATION_OFFSET): Likewise. - (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_NONSTRICT_P): Likewise. - (DWARF_FRAME_REGISTERS): Define. - s390.c (regclass_map): Add virtual frame pointer. - (legitimate_la_operand_p): Allow use of virtual frame pointer. - s390.md (*la_ccclobber, *addaddr_ccclobber): New. - (addaddr, addsi_64): Delete. - - * s390.h (HARD_REGNO_MODE_OK): Allow SImode and DImode values in - floating point registers. - (CLASS_CANNOT_CHANGE_MODE, CLASS_CANNOT_CHANGE_MODE_P): Define. - (ADDR_FP_REGS, GENERAL_FP_REGS): New register classes. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. - - * s390.md (movti): Replace multi-insn output with splitters. - (movdi_31, movdf_31): Likewise. - (movti_ss, movdi_ss, movsi_ss, movdf_ss, movsf_ss): New. - (movdi_lhi, movdi_lli, movdi_larl, movsi_lhi, movsi_lli): New. - (movdi_64, movdi_31, movsi, movdf_64, movdf_31): Adapt. - (movdf_soft_64, movdf_soft_31, movsf_soft): Remove. - (movsf_64, movsf_31): Remove, replace by ... - (movsf): ... this. - (movqi_64): Use lhi instead of llill. - (*movstrictqi, *movstricthi): Don't use (strict_low_part (mem)). - - * s390.md (extendsidi2, *extendsidi2, extendhidi2, *extendhidi2, - extendqidi2, extendhisi2, *extendhisi2, extendqisi2, - extendqihi2 and associated splitters): Reworked. - (zero_extendsidi2, zero_extendsidi2, *zero_extendsidi2, - zero_extendhidi2, *zero_extendhidi2, zero_extendqidi2, - zero_extendqidi2, *zero_extendqidi2, zero_extendhisi2, - *zero_extendhisi2_64, zero_extendhisi2_31, zero_extendqisi2, - *zero_extendqisi2_64, *zero_extendqisi2_mem_31, - zero_extendqisi2_reg_31, zero_extendqihi2, *zero_extendqisi2_64, - zero_extendqihi2, zero_extendqihi2_64, zero_extendqihi2_31, - and associated splitters): Likewise. - (*sethighqisi, *sethighhisi, *sethighqidi_64, *sethighqidi_31 - and associated splitters): New. - (truncdisi2, truncdihi2, truncdiqi2, truncsihi2, do_truncsihi2, - *truncsihi2_64, truncsiqi2, trunchiqi2): Remove. - (ashlhi3, ashrhi3, lshrhi3, abshi3): Remove. - s390.h (PROMOTE_PROTOTYPES): Remove. - config/s390/linux64.h (PROMOTE_PROTOTYPES): Likewise. - - * s390.md (muldi3): Delete, use instead ... - (mulsidi3): ... this. - (*muldi3_64): Rename to muldi3. - (mulsi_6432): Fix template. - (divdi3, moddi3): Delete, replace by ... - (divmoddi4): ... this. - (divmodtidi3): Fix template. - (divmodtisi3): New. - (udivdi3, umoddi3): Delete, replace by ... - (udivmoddi4): ... this. - (udivmodtidi3): Fix template. - (divsi3, modsi3): Delete, replace by ... - (divmodsi4): ... this. - (divmoddisi3): Fix template. - (udivsi3, umodsi3): Adapt. - - * s390.md (anddi3): Remove SS alternative, use instead ... - (anddi3_ss, anddi3_ss_inv): ... these. - (anddi3_ni): New. - (andsi3*, andhi3*, andqi3*): Likewise. - (iordi3): Remove SS alternative, use instead ... - (iordi3_ss, iordi3_ss_inv): ... these. - (iordi3_oi): New. - (iorsi3*, iorhi3*, iorqi3*): Likewise. - (iordi3_cc, iordi3_cconly, iorsi3_cc, iorsi3_cconly): New. - (xordi3): Remove SS alternative, use instead ... - (xordi3_ss, xordi3_ss_inv): ... these. - (xordi3_oi): New. - (xorsi3*, xorhi3*, xorqi3*): Likewise. - (xordi3_cc, xordi3_cconly, xorsi3_cc, xorsi3_cconly): New. - (one_cmpldi2, one_cmplsi2, one_cmplhi2, one_cmplqi2): - Expand to XOR with -1. - (*one_cmpldi2, *one_cmplsi2, *one_cmplhi2): Remove. - (cmpdi_tm): Delete, replace by ... - (cmpdi_tm_reg, cmpdi_tm_mem): ... these. - (cmpsi_cct): Delete, replace by ... - (cmpsi_tm_reg, cmpsi_tm_mem): ... these. - (cmpdi_tm2, cmpsi_tm2): Improve. - (cmphi_tm_sub, cmpqi_tm_sub, cmpqi_tm2, cmpqi_tm): New. - s390.c (s390_single_hi, s390_extract_hi, - s390_single_qi, s390_extract_qi): New helper routines. - s390-protos.h (s390_single_hi, s390_extract_hi, - s390_single_qi, s390_extract_qi): Declare. - s390.c (tmxx_operand, const1_operand): Remove. - s390-protos.h (tmxx_operand, const1_operand): Likewise. - s390.h (PREDICATE_CODES): Likewise. - - * s390.md (sqrtdf2, sqrtsf2): New. - - * s390.h (CRT_CALL_STATIC_FUNCTION): Define. - (check_and_change_labels): Remove section-change special case. - - * s390.h (RETURN_ADDR_RTX): Fix use of __builtin_return_address - in leaf functions. Needs ... - (DYNAMIC_CHAIN_RTX): ... this. New. - - * s390.c (emit_pic_move): Don't generate pseudos if no_new_pseudos. - - * s390.md (movstrdix_64, movstrsix_31, movstrdi_64, movstrsi_31, - clrstrsi_64, clrstrsi_31, cmpstr_64, cmpstr_31): Do not clobber - input operands using a match_dup clause. - (movstrdi, movstrsi, clrstrdi, clrstrsi, cmpstrdi, cmpstrsi): Adapt. - - * s390.md (floatdidf2, floatdisf2, floatsidf2, floatsidf2_ieee, - floatsisf2, floatsisf2_ieee): Add missing CC clobber. - - * s390.md (floatsidf2_ibm): Use correct operand. - - * s390.md (fixuns_truncdfdi2, fixuns_truncdfsi2, fix_truncdfsi2, - fixuns_truncsfdi2, fixuns_truncsfsi2, floatsidf2): Remove use of - non-portable constants. - s390.c (s390_gen_rtx_const_DI): New helper routine. - s390-protos.h (s390_gen_rtx_const_DI): Declare. - - * s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Fix alignment. - - * config/s390/linux.h (ASM_OUTPUT_SHORT, ASM_OUTPUT_CHAR, - ASM_OUTPUT_BYTE): Clean up assembly output. - (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGN): Remove duplicate definitions. - (ASM_OUTPUT_ASCII): Remove. - - * config/s390/t-linux (CRTSTUFF_T_CFLAGS_S): Define. - -2001-12-15 Zack Weinberg - - * unwind-dw2-fde-glibc.c: #define _Unwind_Find_FDE to itself - before including unwind-dw2-fde.c, if we are not using the - special code in this file. - -2001-12-15 Richard Henderson - - * config/alpha/alpha.h (TARGET_SWITCHES): Turn on - MASK_EXPLICIT_RELOCS if the assembler supports it. - * configure.in (HAVE_AS_EXPLICIT_RELOCS): New. - * configure, config.in: Rebuild. - -Sat Dec 15 17:53:03 2001 Richard Kenner - - * calls.c (emit_call_1): If ECF_SP_DEPRESSED, pretend have adjusted - for rounded_stack_size. - -2001-12-15 Joseph S. Myers - - * c-typeck.c, config/i386/i386.h, config/mcore/mcore.h, - config/ns32k/ns32k.h, config/rs6000/sysv4.h, fold-const.c, - toplev.c, cppinit.c, cppmacro.c, gcc.c: Use "built-in" and - "bit-field" spellings in messages. - * po/gcc.pot: Regenerate. - -2001-12-15 Joseph S. Myers - - * gcc.c, config/fr30/fr30.c, config/v850/v850-c.c, toplev.c: Use - American spelling in messages. - * po/gcc.pot: Regenerate. - -2001-12-15 Kazu Hirata - - * config/h8300/h8300.md: Adjust whitespacing. Remove - constraints from expanders. Replace \@ with @. - -2001-12-15 Richard Earnshaw - - * arm/unknown-elf.h (CPP_PREDEFINES): Add a suitable default. - -2001-12-15 Ulrich Weigand - - * regrename.c (copyprop_hardreg_forward): Do not keep register - value data live across abnormal call or eh egdes. - -Sat Dec 15 08:29:45 2001 Richard Kenner - - * expr.c (highest_pow2_factor, case INTEGER_CST): Return - BIGGEST_ALIGNMENT for 0. - -Sat Dec 15 14:13:03 CET 2001 Jan Hubicka - - * predict.def (PRED_NORETURN): Make probabilities match reality. - (PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL, PRED_ERROR_RETURN): - Likewise. - -2001-12-15 Jakub Jelinek - - * configure.in: Check for ld. - (HAVE_LD_EH_FRAME_HDR): Define if ld supports --eh-frame-hdr option. - * configure, config.in: Rebuilt. - * config.gcc: Add crtbeginT.o to extra_parts where needed. - * config/t-linux (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde-glibc - frame unwinding on Linux. - * config/t-linux-gnulibc1 (LIB2ADDEH, LIB2ADDEHDEP): Use unwind-dw2-fde - frame unwinding. - * config/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static. - (LINK_EH_SPEC): Define. - * config/i386/gnu.h (STARTFILE_SPEC): Use crtbeginT.o for -static. - * config/ia64/linux.h (STARTFILE_SPEC, LINK_EH_SPEC): Define. - * config/ia64/fde-glibc.c (_Unwind_IteratePhdrCallback): Don't - iterate further if pc falls into current library, but fde was not - found. - * config/sparc/linux.h (STARTFILE_SPEC): Use crtbeginT.o for -static - if using glibc. - (LINK_EH_SPEC): Define. - * config/sparc/linux64.h (STARTFILE_SPEC32, STARTFILE_SPEC64): - Use crtbeginT.o for -static. - (LINK_EH_SPEC): Define. - * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtbeginT.o. - * Makefile.in (crtbeginT.o): Add rule. - * gcc.c (init_gcc_specs): For -static-libgcc, use -lgcc -lgcc_eh. - If neither -static-libgcc nor -shared-libgcc is passed and -shared, - use -lgcc if LINK_EH_SPEC is defined and -lgcc_s -lgcc if not. - If none of the above switches are passed, use -lgcc -lgcc_eh. - (init_spec): If LINK_EH_SPEC is defined, prepend it to link_spec. - * mklibgcc.in: Don't include LIB2ADDEH objects into libgcc.a if - creating libgcc_s.so, put them into separate libgcc_eh.a instead. - * unwind-dw2-fde.c: Don't include any headers if this file - is included from other .c file. - * unwind-dw2-fde-glibc.c: New file. - * crtstuff.c (USE_PT_GNU_EH_FRAME, USE_EH_FRAME_REGISTRY): Define. - Use it instead of EH_FRAME_SECTION_NAME where appropriate. - -2001-12-14 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memcmp): Mark parameter with - ATTRIBUTE_UNUSED. - * cfgcleanup.c (insns_match_p): Likewise. - * regrename.c (mode_change_ok): Likewise. - * gcc.c (execute): Const-ify. - -2001-12-14 Aldy Hernandez - - * c-parse.in (typename): Do not split attributes. - Remove unsupported attributes warning. - - * c-decl.c (groktypename): Apply attributes. - -2001-12-14 Richard Henderson - - * config/ia64/ia64.c (spill_restore_mem): Mark iterator - initialization as possibly dead. - -2001-12-14 Richard Henderson - - * regrename.c (mode_change_ok): New. - (find_oldest_value_reg): Use it. - -2001-12-14 Richard Henderson - - * regrename.c (struct value_data): Add max_value_regs. - (init_value_data): Initialize it. - (kill_value): Kill values that overlap the dying register. - (set_value_regno): New. - (kill_set_value, kill_autoinc_value, copy_value): Use it. - (copyprop_hardreg_forward_1): Kill earlyclobber operands - before looking at inputs. - -2001-12-14 David Edelsohn - - * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DECLS): Handle - DECL_WEAK for function descriptors. - * config/rs6000/xcoff.h (HANDLE_PRAGMA_WEAK): Define if assembler - weak support present. - (ASM_WEAKEN_LABEL): Same. - -2001-12-14 Kazu Hirata - - * config/h8300/h8300.md (anonymous pattern): Add a missing - mode. - -2001-12-14 Kazu Hirata - - * config/h8300/h8300.c (h8300_adjust_insn_length): Fix a - comment typo. - -2001-12-14 Kazu Hirata - - * config/h8300/h8300.c (h8300_handle_eightbit_data_attribute): - Remove the initialization requierment. - (h8300_handle_tiny_data_attribute): Likewise. - -2001-12-14 Kazu Hirata - - * config/h8300/h8300.md (udivqi3): Remove. - (divqi3): Likewise. - (udivhi3): Likewise. - (divhi3): Likewise. - (umodqi3): Likewise. - (modqi3): Likewise. - (umodhi3): Likewise. - (modhi3): Likewise. - (udivmodqi3): New. - (divmodqi3): Likewise. - (udivmodhi3): Likewise. - (divmodhi3): Likewise. - -Sat Dec 15 01:39:12 CET 2001 Jan Hubicka - - * cfgcleanup.c (flow_find_cross_jump): Replace tests for note - by active_insn_p; count conditional jump as instruction. - -2001-12-14 DJ Delorie - Danny Smith - - * config/i386/cygwin.h (I386_PE_STRIP_ENCODING): Handle '*' - at SYM_NAME[0] or SYM_NAME[3]. - (STRIP_NAME_ENCODING): Don't check for leading '*'. - -2001-12-14 Ira Ruben - - Add -### option (displays driver-generated commands without - executing and quotes all arguments). - * doc/invoke.texi: Add -###. - * gcc.c (verbose_only_flag) - New flag. - * (execute): If -### write quoted arguments and return. - * (display_help): Print meaning of -###. - * (process_command): Handle -###. - -2001-12-14 Ira Ruben - - Fix to no allow -save-temps to clobber user's source file. - * gcc.c: Add static globals input_stat and input_stat_set. - (do_spec_1): For 'g', 'u', 'U' case with save_temps_flag - set, check that user's input file is not overwritten. - (set_input): Reset input_stat_set for each new file. - -Fri Dec 14 22:14:44 CET 2001 Jan Hubicka - - * predict.c (estimate_probability): Fix LOOP_EXIT heuristic. - -2001-12-14 Zack Weinberg - - * combine.c (record_dead_and_set_regs): Use - regs_invalidated_by_call. Don't note stores for CALL_INSNs. - -2001-12-14 Roger Sayle - - * builtins.def: Rename BUILT_IN_FSQRT to BUILT_IN_SQRT and - __builtin_fsqrt to __builtin_sqrt. - - * builtins.c (expand_builtin_mathfn,expand_builtin): Same. - * doc/extend.texi: Simplify documentation to match patch. - -Fri Dec 14 21:23:54 CET 2001 Jan Hubicka - - * config.gcc: Revamp target_cpu_default2 to strings; - support new x86 variants. - * i386.c (override_options): Default x86_cpu_string and x86_arch_string - properly; set prefetch_sse. - * i386.h (x86_prefetch_sse): Declare. - (TARGET_PREFETCH_SSE): New. - (CPP_CPU_DEFAULT_SPEC): Define according to the new macros. - (TARGET_CPU_DEFAULT_*): New. - -Thu Dec 13 21:57:13 CET 2001 Janis Johnson - Jan Hubicka - - * config/i386/i386.h (struct processor_costs): Add new members - prefetch_block and simultaneous_prefetches. - (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): New. - * config/i386/i386.c (processor_costs structs): Add values for - prefetch_block and simultaneous_prefetches. - * config/i386/i386.md (unspec values): Remove values for prefetch - operations, which now use the PREFETCH rtx code. - (prefetch_sse, prefetch_3dnow, prefetchw): Combine to use new - unified prefetch support. - -2001-12-14 Jason Merrill - - * diagnostic.c (sorry): Increment sorrycount before saving the - buffer state. - -Fri Dec 14 19:53:23 CET 2001 Jan Hubicka - - * i386.md (sqrt?f): Fix conditionals. - -Fri Dec 14 07:29:52 2001 Douglas B. Rupp - - * config.gcc (alpha64-dec-*vms*): New case. - * config/alpha/t-vms64, config/alpha/vms-crt0-64.c: New files. - * config/alpha/vms-psxcrt0-64.c, config/alpha/vms64.h: Likewise. - * config/alpha/xm-vms64.h: Likewise. - - * config/alpha/alpha.c (vms_attribute_table): Add new attributes. - (alpha_write_linkage): Test for null alpha_links. - (SECTION_VMS_GLOBAL, SECTION_VMS_INITIALIZE): New section attributes. - (vms_section_type_flags, vms_asm_named_section): Handle them. - -Fri Dec 14 12:05:14 CET 2001 Jan Hubicka - - * i386.c (ix86_fpmath, ix86_fpmath_string): New. - (override_option): Set ix86_fpmath. - * i386.h (MASK_MIX_SSE_I387): Remove. - (TARGET_SSE_MATH): New. - (TARGET_MIX_SSE_I387): Use ix86_fpmath. - (TARGET_SWITCHES): Remove "mix-sse-i387". - (fpmath_unit): New enum. - (ix86_fpmath, ix86_fpmath_string): Declare. - * i386.md (swapsf): Fix condition. - (add?f, sub?f, mul?f, div?f, sqrt?f, min?f): Use TARGET_SSE_MATH. - (fp_?f_*_nosse): New. - (fp_*): Use TARGET_SSE_MATH. - * invoke.texi (-mfpmath): Document. - (-msse2): Add. - -2001-12-14 Jason Merrill - - * dwarf2out.c (output_die): Print the string in the comment for - a DW_FORM_strp. - -2001-12-14 Richard Earnshaw - - * netbsd.h (COLLECT_SHARED_INIT_FUNC) - (COLLECT_SHARD_FINI_FUNC): Remove redundant semicolon. - * doc/tm.texi (COLLECT_SHARED_INIT_FUNC) - (COLLECT_SHARD_FINI_FUNC): Use @code where appropriate. - -2001-12-13 Richard Henderson - - * regrename.c (kill_value_regno): Simplify chain removal. - (kill_value): Kill all of HARD_REGNO_NREGS. - (kill_set_value): Use kill_value not kill_value_regno. - (kill_autoinc_value): Likewise. - (copyprop_hardreg_forward): Don't collect refresh_blocks. - Call delete_noop_moves. - -2001-12-13 Aldy Hernandez - - * attribs.c (c_common_attribute_table): Swap decl_req and type_req - for the mode attribute. - (handle_mode_attribute): Handle types, not decls. - -2001-12-13 Jason Merrill - - * c-common.h (COMPOUND_STMT_BODY_BLOCK): New macro. - -2001-12-13 Aldy Hernandez - - * config/rs6000/rs6000.md (eh_set_lr_di): Change scratch - constraint to base register. - (eh_set_lr_si): Same. - -2001-12-13 Hans-Peter Nilsson - - * expr.c (expand_expr, case ADDR_EXPR): Don't honor - flag_force_addr for modifier != EXPAND_CONST_ADDRESS, - modifier != EXPAND_INITIALIZER and modifier != EXPAND_SUM. - -Thu Dec 13 20:30:08 2001 Richard Kenner - - * expr.c (copy_blkmode_from_reg): Add missing braces to eliminate - warning and reformat comments. - (expand_assignment): Don't pass EXPAND_WRITE if LHS is component. - (highest_pow2_factor, case INTEGER_CST): Return BIGGEST_ALIGNMENT - if overflow. - -2001-12-12 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_override_options): Add - SUBSUBTARGET_OVERRIDE_OPTIONS. - - * config/rs6000/eabialtivec.h: New file. - - * config/rs6000/linuxaltivec.h: New file. - - * config.gcc: Add powerpc-*-eabialtivec and - powerpc-*-linux-gnualtivec. - -2001-12-13 Neil Booth - - * toplev.c (process_options, parse_options_and_default_flags): - Set flag_no_inline before the post_options hook. - -2001-12-13 Richard Henderson - - * emit-rtl.c (adjust_address_1): Don't adjust address if adjust - is false. - -2001-12-13 Richard Earnshaw - - * collect2.c (COLLECT_SHARED_INIT_FUNC) - (COLLECT_SHARD_FINI_FUNC): Define default values. - (write_c_file_stat): Use them to call construtor and destructor - functions in shared libraries. - * doc/tm.texi (COLLECT_SHARED_INIT_FUNC) - (COLLECT_SHARD_FINI_FUNC): Document them. - * config/netbsd.h (COLLECT_SHARED_INIT_FUNC) - (COLLECT_SHARD_FINI_FUNC): Define. - - * config/netbsd.h (LINK_SPEC): Don't pull in estart if creating a - shared library. Pass -shared through to the linker. - * config/arm/netbsd.h (LINK_SPEC): Likewise. - - * config/arm/t-netbsd (TARGET_LIBGCC2_CFLAGS): Add -fpic. - (SHLIB_EXT, SHLIB_NAME, SHLIB_SONAME, SHLIB_OBJS, SHLIB_LINK) - (SHLIB_INSTALL): Define. - -2001-12-13 Richard Earnshaw - - * arm.c (legitimize_pic_address): Handle LABEL_REFs in substantially - the same way as we handle SYMBOL_REFS. - -Thu Dec 13 07:47:24 2001 Richard Kenner - - * loop.c (remove_constant_addition): Fix prototype and whitespace. - (emit_prefetch_instructions): Remove warnings and whitespace - changes. - -Thu Dec 13 06:48:38 2001 Douglas B. Rupp - - * config/alpha/vms-cc.c (preprocess_args): Fix forward - declaration. - -Thu Dec 13 12:31:07 CET 2001 Jan Hubicka - - * predict.c (estimate_probability): Reorganize opcode heuristics. - * predict.def (PRED_OPCODE_POSITIVE, PRED_OPCODE_NONEQUAL, - PRED_FPOPCODE): New. - - * i386.c (override_options): Recognize various CPU variants and set - SSE/MMX/3dNOW flags accordingly. - * i386.h (MASK_MMX_SET, MASK_SSE_SET, MASK_SSE2_SET, MASK_3DNOW_SET, - MASK_3DNOW_A_SET): New. - (MASK_ACCUMULATE_OUTGOING_ARGS_SET): New. - (MASK_NO_ACCUMULATE_OUTGOING_ARGS): Delete. - (MASK_*): Renumber. - (TARGET_FLAGS): Use new masks. - (CPP_CPU_SPECS): Recognize new CPU variants. - * invoke.texi (-mcpu): Update documentation. - - * flags.h (flag_prefetch_loop_arrays): Declare. - * loop.h (LOOP_PREFETCH): Define new constant. - * loop.c (strength_reduce): Call emit_prefetch_instructions. - (MAX_PREFETCHES, PREFETCH_BLOCKS_BEFORE_LOOP_MAX, - PREFETCH_BLOCKS_BEFORE_LOOP_MIN, PREFETCH_BLOCKS_IN_LOOP_MIN): New - constants. - (check_store_data): New structure. - (check_store, emit_prefetch_instructions, rtx_equal_for_prefetch_p): - New functions. - * toplev.c: Include insn-flags.h. - (flag_prefetch_loop_arrays): New global variable. - (lang_independent_option): Add -fprefetch-loop-arrays. - (rest_of_compilation) Pass LOOP_PREFETCH when flag_prefetch_loop_arrays - is set. - * Makefile.in (toplev.c): Depend on insn-flags.h. - * invoke.texi (-fprefetch-loop-arrays): Document. - - * predict.c (estimate_probability): Distribute the loop exit - probability according to number of exit edges. - - * cfgcleanup.c (insns_match_p): Break out from ...; - (flow_find_cross_jump): ... here; - (outgoing_edges_match): Add parameter MODE; attempt to match everything - except for tablejumps. - (try_crossjump_to_edge): Accept complex edges. - (try_crossjump_bb): Likewise. - -2001-11-29 Corey Minyard - - * recog.c (validate_replace_rtx_1): Use simplify_gen_binary - instead of plus_constant. - * simplify-rtx.c (neg_const_int): New. - (simplify_gen_binary, simplify_plus_minus): Use it. - -2001-12-12 Roger Sayle - - * builtins.c (expand_builtin_memset, expand_builtin_memcpy, - expand_builtin_strcpy): Additional arguments TARGET and MODE. - (expand_builtin_bzero, expand_builtin_strcpy, - expand_builtin_strncpy, expand_builtin_bzero): Pass additional - TARGET and MODE parameters to the above functions. - (expand_builtin_memset, expand_builtin_memcpy): Optimize the - case where the LEN parameter is constant zero. - (expand_builtin_memcmp): No longer conditional on - HAVE_cmpstrsi. Take an additional mode parameter. Optimize - the cases where len is either constant zero or one. - Optimize to call to memcpy, even if the memcpy isn't inlined. - (expand_builtin_strncpy): Optimize to call memcpy, even if the - memcpy isn't inlined. - (expand_builtin_strcmp, expand_builtin_strncmp): Always attempt - to optimize to a call to memcmp. - (expand_builtin): expand_builtin_memcmp can always be called, - and pass the required parameters to expand_builtin_memcmp, - expand_builtin_memset, expand_builtin_memcpy and - expand_builtin_strcpy. - -2001-12-12 David O'Brien - - * config.gcc (arm-*-freebsd*): Add target. - * config/arm/freebsd.h: New file. - * config/arm/arm.h (CPP_PREDEFINES): Do not define. - (CPP_SPEC): #undef before defining. - (CPP_CPU_ARCH_SPEC): Add -Acpu=arm -Amachine=arm. - * config/arm/conix-elf.h (CPP_PREDEFINES): Remove -Acpu=arm - -Amachine=arm. - * config/arm/linux-elf.h: Likewise. - * config/arm/netbsd.h: Likewise. - * config/arm/riscix.h: Likewise. - * config/arm/riscix1-1.h: Likewise. - * config/arm/semiaof.h: Likewise. - -2001-12-12 Richard Henderson - - * regrename.c (copyprop_hardreg_forward): New optimization. - (kill_value_regno, kill_value, init_value_data, kill_clobbered_value, - kill_set_value, kill_autoinc_value, copy_value, find_oldest_value_reg, - replace_oldest_value_reg, replace_oldest_value_addr, - replace_oldest_value_mem, copyprop_hardreg_forward_1, - debug_value_data, validate_value_data): New. - * rtl.h (copyprop_hardreg_forward): Declare. - * toplev.c (flag_cprop_registers): New. - (f_options): Add -fcprop-registers - (rest_of_compilation): Invoke it. - (parse_options_and_default_flags): Set it at -O1. - * doc/invoke.texi: Document it. - -2001-12-12 Jakub Jelinek - - * dwarf2out.c (dw_val_class): Add dw_val_class_range_list. - (DEBUG_RANGES_SECTION_LABEL): Define. - (ranges_section_label): Add. - (add_AT_range_list): New. - (print_die, sizeof_die, value_format): Handle dw_val_class_range_list. - (output_loc_list): Location expression length is always 2-byte. - (output_die): Handle dw_val_class_range_list. - (gen_lexical_block_die): Call add_AT_range_list. - (dwarf2out_init): Initialize ranges_section_label. - (dwarf2out_finish): Emit ranges_section_label. - -2001-12-12 Jakub Jelinek - - * c-typeck.c (digest_init): Allow initializing - static storage duration objects with compound literals. - * doc/extend.texi (Compound literals): Document the extension. - -2001-12-12 Richard Henderson - - * emit-rtl.c (adjust_address_1): Always copy address to avoid - shared rtl. - -Wed Dec 12 07:37:52 2001 Olivier Hainque - - * stmt.c (expand_end_case): Do subtraction of lower bound as trees - to avoid overflow. - -Wed Dec 12 07:35:24 2001 Douglas B. Rupp - - * cppfiles.c (read_include_file): Set buffer size properly when - file is shorter than expected. - -Wed Dec 12 08:35:33 2001 Nicola Pero - - * objc/objc-act.c (encode_complete_bitfield): Fixed encoding - enumeral types - encode them using 'i'. - -2001-12-12 Nathan Sidwell - - * doc/extend.texi (Deprecated Features): Deprecate implicit - typename. Document that named return and initializer lists are now - removed. - -2001-12-11 Roger Sayle - - * except.c (reachable_next_level): Handle ERT_UNKNOWN to avoid - compiler warning about enumeration values not being handled. - -2001-12-11 Momchil Velikov - - * config/fp-bit.c (pack_d): Cast to ``fractype'' for long long - shifts. - -2001-12-11 Richard Henderson - - * config/alpha/alpha.h (TARGET_FIXUP_EV5_PREFETCH): New. - * config/alpha/linux.h (TARGET_FIXUP_EV5_PREFETCH): New. - * config/alpha/alpha.md (prefetch): New. - -2001-12-11 Richard Henderson - - * combine.c (simplify_and_const_int): Simplify (AND (PLUS X Y) C) - if C has only low bits set and doesn't intersect with X or Y. - -Tue Dec 11 23:58:39 EST 2001 John Wehle (john@feith.com) - - * basic-block.h (flow_preorder_transversal_compute): Declare. - * cfganal.c (flow_preorder_transversal_compute): Implement. - -Tue Dec 11 23:54:27 EST 2001 John Wehle (john@feith.com) - - * cfganal.c (flow_depth_first_order_compute): Always - increment dfsnum. - -2001-11-30 Alan Matsuoka - - * combine.c (combine_simplify_rtx) : Can't simplify - cases that use mode class MODE_CC. - -2001-12-11 Richard Henderson - - * expmed.c (expand_divmod): Ignore sdiv_pow2_cheap for modes in - which there is no divide expander. - -2001-12-11 Richard Henderson - - * except.c (sjlj_find_directly_reachable_regions): Don't - consider RNL_BLOCKED a directly reachable region. - (sjlj_assign_call_site_values): Trust directly_reachable. - (sjlj_emit_dispatch_table): Likewise. - -2001-12-11 Richard Henderson - - * config/alpha/alpha.md (divmodsi_internal_er): Split, so that - we represent the address load's dependency on the gp. - (divmoddi_internal_er): Likewise. - (divmodsi_internal_er_1, divmoddi_internal_er_1): New. - -2001-12-11 Richard Henderson - - * emit-rtl.c (widen_memory_access): New. - * expr.h (widen_memory_access): Declare it. - * config/alpha/alpha.c (get_aligned_mem): Use it. - -2001-12-11 Richard Henderson - - * combine.c (simplify_shift_const): Move SHIFT_COUNT_TRUNCATED - simplification above out of range check. - -2001-12-11 Dan Nicolaescu - - * config/sparc/sparc.md (prefetch): New. - -2001-12-11 Aldy Hernandez - - * output.h (regno_uninitialized): Make argument unsigned. - - * flow.c (regno_uninitialized): Make regno unsigned. - -2001-12-11 David O'Brien - - * elfos.h (ENDFILE_SPEC, STARTFILE_SPEC): Do not define. - * config/cris/cris.h (ENDFILE_SPEC): Define. - * config/i386/i386elf.h ((ENDFILE_SPEC, STARTFILE_SPEC): Define. - * config/pa/elf.h: Likewise. - -2001-12-11 Richard Henderson - - * objc/objc-act.c (build_string_class_template): New. - (build_objc_string_object): Call it. - -2001-12-11 Steve Ellcey - - * doc/tm.texi (FUNCTION_ARG_REG_LITTLE_ENDIAN): New. - * defaults.h (FUNCTION_ARG_REG_LITTLE_ENDIAN): New. - * calls.c (store_unaligned_arguments_into_pseudos): Check - FUNCTION_ARG_REG_LITTLE_ENDIAN to see how structures - are passed/returned. - * expr.c (move_block_from_reg): Ditto. - (move_block_from_reg): Ditto. - (copy_blkmode_from_reg): Ditto. - * stmt.c (expand_return): Ditto. - * stor-layout.c (compute_record_mode): If - FUNCTION_ARG_REG_LITTLE_ENDIAN is set then check - MEMBER_TYPE_FORCES_BLK even if mode == VOIDmode. - * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Set to true - so that Structures of one field are still treated as structures. - (FUNCTION_ARG_REG_LITTLE_ENDIAN): New, set it to true. - (FUNCTION_ARG_PADDING): Set to ia64_hpux_function_arg_padding(). - (PAD_VARARGS_DOWN): Modify from default to not pad structures down. - * config/ia64/ia64-protos.h (ia64_hpux_function_arg_padding): New. - * config/ia64/ia64.c (ia64_hpux_function_arg_padding): New function - to special case handling of structure padding. - -2001-12-11 Daniel Berlin - - * sched-rgn.c (CONST_BASED_ADDRESS_P): CONST_INT -> CONSTANT_P. - (may_trap_exp): Stores only are risk if they trap, too, not just - if code == MEM. - -2001-12-11 Aldy Hernandez - - * flow.c (find_regno_partial): Indent properly. Add a default to - switch. - -2001-12-11 Neil Booth - - * c-common.c (combine_strings): Complain if concatenating - __FUNCTION__. - * c-parse.in (yylexname): Flag artificial strings. - * tree.h (TREE_ARTIFICIAL_STRING_P): New. -doc: - * extend.texi: Update. - -2001-12-11 Aldy Hernandez - - * c-common.c (type_for_mode): Handle unsigned vectors. - (type_for_mode): Remove redundant calls to TYPE_MODE. - - * tree.c (make_vector): New. - (build_common_tree_nodes_2): Use make_vector for vector types. - Add unsigned vector types. - - * tree.h (tree_index): Add unsigned types for vectors. - (unsigned_V16QI_type_node): New. - (unsigned_V4SI_type_node): New. - (unsigned_V8QI_type_node): New. - (unsigned_V8HI_type_node): New. - (unsigned_V4HI_type_node): New. - (unsigned_V2SI_type_node): New. - -2001-12-11 Stan Shebs - - * objc/objc-act.c (finish_message_expr): Fix misplaced parens in a - test of class names. - -2001-12-11 David O'Brien - - * config.gcc (m68020-*-elf*): Expand tm_file to include all needed - cpu configuration headers. - * config/h8300/elf.h: Include dbxelf.h. - * config/m68k/linux.h: Likewise. - * config/m68k/m68020-elf.h: Likewise. - * config/m68k/m68kv4.h: Likewise. - * config/sh/elf.h: Likewise. - * config/m68k/m68kemb.h: Add comment about the its purpose. - -2001-12-11 Richard Henderson - - * objc/objc-act.c (build_constructor): Cast initializer values - to the proper field types. - -2001-12-11 Jakub Jelinek - - * unwind-dw2.c (execute_cfa_program): Fix DW_CFA_restore handling. - -2001-12-10 Roger Sayle - - * builtins.c (expand_builtin): Use a switch statement to list - those functions not expanded without optimizations, instead of a - series of equality tests. - -Tue Dec 11 07:08:57 2001 Douglas B. Rupp - - * config/alpha/vms.h (LIB_SPEC): Define. - * config/alpha/xm-vms.h (INCLUDE_DEFAULTS): Don't set component field. - - * libgcc2.c (_bb): Remove ctime declaration. - - * Makefile.in (stage[1234]-start): $(LN_S) utilities in a manner - that works if LN_S = cp. - - * config/alpha/x-vms (version): Change "." to "_". - - * configure.in: Hardcode that vfork works on VMS host. - * configure: Regenerated. - -Mon Dec 10 18:37:31 2001 Douglas B. Rupp - - * gcc.c (convert_filename): Add do_obj parameter. Don't convert - unless do_obj true. - (process_command): Modify calls to convert_filename. - -2001-12-11 Rainer Orth - - * config/sparc/sol2-sld-64.h: Include dbxelf.h again. - -Mon Dec 10 15:54:27 2001 Jeffrey A Law (law@cygnus.com) - - * combine.c (known_cond): Check mode of each operand to determine - if COND is comparing floating point values. - -2001-12-10 David Edelsohn - - * rs6000.h (processor_type): Add PPC405. - (RTX_COSTS): Add PPC405. Correct rs64 and ppc630 multiply costs. - * rs6000.md: Add PPC405 information. Utilize imul2 and imul3 for - rios1, rs64, and ppc630 processors. - * rs6000.c (processor_target_table): Add PPC405. - -2001-12-10 Richard Henderson - - * config/alpha/alpha.md (unaligned_extendhidi): Call gen_lowpart - instead of hardcoding subregs into the _be and _le patterns. - -2001-12-10 Neil Booth - - * c-lex.c, c-parse.in, c-typeck.c: Revert concatenation changes. - -Mon Dec 10 09:19:11 2001 Richard Kenner - - * config/i386/i386.md (leave, leave_rex64): Adjust pattern to match - what insn does. - -2001-12-10 Joseph S. Myers - - * doc/cpp.texi: Don't condition menus on @ifinfo. Condition the - copyright notice formerly conditioned on @ifinfo on @ifnottex - instead. - -Mon Dec 10 06:15:44 2001 Richard Kenner - - * vmsdbgout.c (lookup_filename): Remove warning. - -Mon Dec 10 06:09:57 2001 Douglas B. Rupp - - * Makefile.in: Add $(OUTPUT_OPTION) to compilation rules. - - * config.gcc (alpha*-dec-vms*): Change to alpha*-dec-*vms* - (exeext, target_alias, prefix, local_prefix): Define. - * config/alpha/x-vms (USE_COLLECT2): Make empty. - * config/alpha/xm-vms.h (INCLUDE_DEFAULTS): Use Unix style - file specifications. Remove ".". - (GCC_INCLUDE_DIR): Remove redefinition (redundant). - * fixinc/mkfixinc.sh (alpha*-dec-vms*): Change to alpha*-dec-*vms* - -2001-12-09 Nathan Sidwell - - * Makefile.in (.po.gmo): Use POSIXLY_CORRECT argument ordering. - -Sun Dec 9 21:57:24 2001 Douglas B. Rupp - - * config/alpha/t-vms (EXTRA_PARTS): Append $(VMS_EXTRA_PARTS) - Add rules for building [vp]crt0.o - * config/alpha/vms.h (START_FILE_SPEC): Define. - * config/alpha/x-vms (VMS_EXTRA_PARTS): Define - * config/alpha/vms-crt0.c, config/alpha/vms-psxcrt0.c: New files. - * doc/invoke.texi: Document special Alpha/VMS options. - -Sun Dec 9 20:25:17 2001 Richard Kenner - - * hwint.h (HOST_BITS_PER_LONGLONG): Deal with __int64 type. - * vmsdbg.h (DST_SRC_COMMAND): Test for type of long long or __int64, - not GNUC. - -Sun Dec 9 20:19:32 2001 Richard Kenner - Douglas B. Rupp - - * tree.c (append_random_char): Conditionalize INO for VMS. - -2001-12-09 Richard Henderson - - * cfgcleanup.c (label_is_jump_target_p): New function. - (try_optimize_cfg): Use label_is_jump_target_p to check if label is - target of a JUMP_INSN from the preceding block. - -Sun Dec 9 18:40:07 2001 Douglas B. Rupp - - * vmsdbgout.c (lookup_filename): Assign null string instead - of null pointer to fnam. - -2001-12-09 Richard Henderson - - * config/alpha/alpha.c (alpha_align_insns): Suppress realignment - immediately after a call; insert nops before a call. - -2001-12-09 Richard Henderson - - * config/alpha/alpha.c (alpha_align_insns): Use align_functions, - not FUNCTION_BOUNDARY. - * config/alpha/alpha.h (TRAMPOLINE_ALIGNMENT): New. - * config/alpha/alpha32.h, config/alpha/vms.h: Likewise. - * config/alpha/unicosmk.h (FUNCTION_BOUNDARY): Remove. - -2001-12-09 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_function_block_profiler, - mmix_block_profiler, mmix_function_block_profiler_exit): Delete - unused functions. - * config/mmix/mmix-protos.h (mmix_function_block_profiler, - mmix_block_profiler, mmix_function_block_profiler_exit): Delete - prototypes. - - * config/cris/cris.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): - Delete obsoleted macros. - -2001-12-09 Joseph S. Myers - - * doc/cpp.texi, doc/cppinternals.texi, doc/invoke.texi, - doc/md.texi, doc/rtl.texi, doc/tm.texi: Use American spelling. - - * ChangeLog.2, ChangeLog.3, ChangeLog.5, ChangeLog, alias.c, - cfgbuild.c, expmed.c, expr.c, final.c, flow.c, fold-const.c, - function.c, config/alpha/alpha.md, config/alpha/vms-ld.c, - config/arm/arm.c, config/arm/arm.h, config/c4x/libgcc.S, - config/i370/i370.c, config/i386/i386.c, - config/i386/i386-interix.h, config/i386/i386.md, - config/i386/i386.h, config/i386/netbsd-elf.h, config/ia64/ia64.c, - config/m32r/m32r-protos.h, config/mcore/mcore.h, - config/rs6000/rs6000.h, config/sparc/linux64.h, - config/sparc/sparc.c, config/v850/v850-protos.h, - config/cris/cris.h, config/s390/s390.md, config/elfos.h: Fix - spelling errors. - -2001-12-09 Daniel Berlin - - * config/rs6000/rs6000.h (enum rs6000_builtins): Add remaining - altivec builtins (VCF?X, VCT?XS, VSEL, V*EFP, VRFI*). - - * config/rs6000/rs6000.c: Ditto. - - * config/rs6000/rs6000.md: Ditto. - -2001-12-09 Kaveh R. Ghazi - - * 1750a.md: Add default case in switch. - * alpha/vms.h (INITIAL_ELIMINATION_OFFSET): Add abort clause in - if-else statement. - * dsp16xx.c (print_operand_address): Likewise. - * i386/osf1elf.h (FUNCTION_PROFILER): Const-ify. - * ia64.md: Add missing braces. - * rs6000-protos.h (s8bit_cint_operand): Prototype. - * s390.h (INITIAL_ELIMINATION_OFFSET): Add abort clause in - if-else statement. - * stormy16.h (REG_CLASS_CONTENTS): Add missing braces. - * v850.h (OUTPUT_ADDR_CONST_EXTRA): Don't issue a `return'. - * dbxout.c (dbxout_source_file): Move a variable into the scope - where it is used. - * final.c (profile_function): Mark parameter with - ATTRIBUTE_UNUSED. - * genemit.c (gen_expand): Likewise for generated file. - * insn-addr.h (INSN_ADDRESSES_NEW): Avoid undefined behavior. - - * vmsdbg.h: Delete spurious close-comment. - (DST_HEADER): Fix typo in ENUM_BITFIELD parameter. - * vmsdbgout.c (write_modbeg): Define return type. - - * m68k/3b1.h (ASM_OUTPUT_ALIGN): Wrap in do-while(0). - * m68k/amix.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * m68k/atari.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * m68k/hp320.h (ASM_OUTPUT_ALIGN): Likewise. - * m68k/m68kelf.h (ASM_OUTPUT_ALIGN): Likewise. - * m68k/sgs.h (ASM_OUTPUT_ALIGN): Likewise. - * m68k/tower-as.h (ASM_OUTPUT_ALIGN): Likewise. - -2001-12-08 Tom Rix - - * config/rs6000/aix43.h (NON_POWERPC_MASKS): Delete MASK_STRING. - * config/rs6000/aix51.h (NON_POWERPC_MASKS): Same. - * config/rs6000/rs6000.md (load_multiple, store_multiple): Do not use - for powerpc64. - * config/rs6000/rs6000.md (movstrsi_8reg, movstrsi_6reg, - movstrsi_4reg, movstrsi_1_reg): Add powerpc64. - * config/rs6000/rs6000.c (expand_block_move): Do not use - gen_movstrsi_2reg and powerpc64. - -2001-10-08 Aldy Hernandez - - * c-common.h (rid): Add RID_CHOOSE_EXPR and - RID_TYPES_COMPATIBLE_P. - - * c-parse.in (reswords): Add __builtin_choose_expr. - Add __builtin_types_compatible_p. - Add CHOOSE_EXPR token. - Add TYPES_COMPATIBLE_P token. - Add production for CHOOSE_EXPR. - Add production for TYPES_COMPATIBLE_P. - - * doc/extend.texi (__builtin_choose_expr): Add documentation. - (__builtin_types_compatible_p): Likewise. - -2001-12-08 David Edelsohn - - * stor-layout.c (place_union_field): Apply ADJUST_FIELD_ALIGN - to unions. - -2001-12-08 Neil Booth - - * c-parse.in: Take string literals in assembler constructs, - not expressions. - * c-typeck.c (build_asm_stmt, simple_asm_stmt): No need to - check the strings are STRING_CSTs. - -2001-12-08 Neil Booth - - * c-lex.c (c_lex): Peek a token ahead for a string to concatenate, - using combine_strings to do the concatenation. - * c-parse.in: Replace uses of the string non-terminal with STRING. - Don't attempt string concatenation. - (OBJC_STRING): New terminal. - (string): Remove non-terminal. - (_yylex): Call combine_strings on function names. Generate - OBJC_STRING terminals; don't pass '@' on to yacc. - * c-typeck.c (simple_asm_stmt): Don't concatenate strings here. - (build_asm_stmt): Similarly. - -2001-12-08 Kaveh R. Ghazi - - * rtlanal.c (get_jump_table_offset): Delete unused variable. - -2001-12-08 Richard Earnshaw - - * arm.md (VUNSPEC_PREFETCH): Delete constant definition. - (prefetch): Rewrite using PREFETCH RTL primitive. - * arm.h (arm_builtins): Delete ARM_BUILTIN_PREFETCH). - * arm.c (arm_init_builtins): Don't initialize a builtin for - __builtin_prefetch here. - (arm_expand_builtin): Don't expand __builtin_prefetch here. - -2001-12-08 Richard Earnshaw - - * final.c (cleanup_subreg_operands): Use recog_data.operand_loc - in test for a subreg. - -2001-12-08 John David Anglin - - * rtl.c (rtx_equal_p): Check for null pointers when comparing rtx - strings. - -2001-12-07 Richard Henderson - - * doc/extend.texi: Fix typo last change. - - * c-decl.c (c_language): Remove duplicate. - -2001-12-07 Dale Johannesen - - * config/rs6000/darwin.h: Set MAX_LONG_TYPE_SIZE to 32. - * config/rs6000/rs6000.c (rs6000_emit_move): In Darwin- - specific codegen, eliminate a register copy. - (print_operand_address): Add support for Darwin's lo16(constant) - syntax. - (rs6000_machopic_legitimize_pic_address): Fix darwin-specific - generation of addresses within very large data objects. - (s8bit_cint_operand): New. - * config/rs6000/rs6000.md: Remove "iu" reference for 750/7400. - Move "mtjmpr" to correct functional unit for 750/7400/7450. - Add imul2 and imul3 insn types for multiplication by 16- and - 8-bit constants. - Change tablejump patterns to strongly discourage using LR - rather than CTR. - Add %lo16 patterns for Darwin loads and stores. - -2001-12-07 Kaveh R. Ghazi - - * alpha.md: Use (HOST_WIDE_INT)1<<63 in lieu of 0x8000000000000000. - -2001-12-07 Stephane Carrez - - * config/sparc/sparc.c (epilogue_renumber): Do not replace %fp - with %sp because it can cause the delayed instruction to load - below the stack. - -2001-12-07 Kaveh R. Ghazi - - * alpha.c (alpha_expand_unaligned_store, - alpha_expand_unaligned_store_words): Use constm1_rtx in place of - call to immed_double_const. - -2001-12-07 Aldy Hernandez - - * doc/extend.texi (Variable Attributes): Document vector_size. - - * attribs.c (c_common_attribute_table): Add vector_size. - (handle_vector_size_attribute): New. - (vector_size_helper): New. - (decl_attributes): Relayout the decl after calculating attribs. - -2001-12-07 Joseph S. Myers - - * doc/gcc.texi: Don't include install-old.texi. Adjust menu - description for Trouble section. - * doc/install-old.texi: Adjust for inclusion as chapter of new - installation manual. - * doc/install.texi, doc/include/fdl.texi, doc/install.texi2html: - Adjust to include old installation chapter as chapter of new - installation manual. - -Fri Dec 7 11:07:35 EST 2001 John Wehle (john@feith.com) - - * rtl.h (get_jump_table_offset): Declare. - * rtlanal.c (get_jump_table_offset): Implement. - -Fri Dec 7 07:06:17 2001 Richard Kenner - - * final.c (bb_head, bb_tail, bb_file_label_num, bb_func_label_num): - Deleted; were used only by BB profiler code. - (sbb_head, sbb_tail, sbb_label_num): Likewise. - (end_final): Delete now-unused vars I, PTR, and SPTR. - - * expr.c (store_field): Remove warning. - (expand_expr, case COMPONENT_REF, case VIEW_CONVERT_EXPR): Likewise. - (highest_pow2_factor, case MIN_EXPR, case MAX_EXPR): Add cases. - (highest_pow2_factor, case *_DIV_EXPR): Only can do something if - divisor constant power of 2. - (highest_pow2_factor, case COMPOUND_EXPR): Look at operand 1. - -2001-12-07 Kaveh R. Ghazi - - * alpha.c (function_arg): Cast value to HOST_WIDE_INT before - shifting. - -2001-12-06 Aldy Hernandez - - * rs6000.h (PRE_GCC3_DWARF_FRAME_REGISTERS): New. - (DWARF_FRAME_REGISTERS): Delete. - -2001-12-06 Janis Johnson - - * builtin-types.def (BT_FN_VOID_PTR_VAR): New. - * builtins.def (BUILT_IN_PREFETCH): Change arguments. - * builtins.c (expand_builtin_prefetch): Two arguments are now optional, - with defaults for read prefetch with high degree of locality. - * doc/extend.texi (__builtin_prefetch): Update documentation. - * doc/md.texi (prefetch): Add documentation. - -2001-12-06 Rainer Orth - - * fixinc/inclhack.def (stdio_va_list): Handle __VA_LIST__ in Tru64 - UNIX V5.1A stdio.h. - * fixinc/fixincl.x: Regenerate. - Fixes PR libf2c/4826. - -2001-12-06 Aldy Hernandez - Richard Henderson - - * doc/tm.texi (DWARF_FRAME_REGISTERS): Add documentation. - (PRE_GCC3_DWARF_FRAME_REGISTERS): Same. - - * unwind-dw2.c (__frame_state_for): Change DWARF_FRAME_REGISTERS - to PRE_GCC3_DWARF_FRAME_REGISTERS. - (frame_state): Same. - (PRE_GCC3_DWARF_FRAME_REGISTERS): Define if not already defined. - -2001-12-06 Kaveh R. Ghazi - - * langhooks.c (lhd_staticp): Mark parameter with - ATTRIBUTE_UNUSED. - -2001-12-06 H.J. Lu - - * Makefile.in (.po.gmo): Use "-test -d po || mkdir po" to - reduce noise. - (.po.pox): Likewise. - (o/$(PACKAGE).pot): Likewise. - -2001-12-06 Alexandre Oliva - - * tree.c (get_callee_fndecl): Move DECL_ABSTRACT_ORIGIN-following... - * tree-inline.c (expand_call_inline): ... here. - -2001-12-06 H.J. Lu - - * Makefile.in (.po.gmo): Use "-mkdir po" for parallel build. - (.po.pox): Likewise. - (o/$(PACKAGE).pot): Likewise. - -2001-12-06 David O'Brien - - * config.gcc: Include dbxelf.h before elfos.h. - * elfos.h: Don't include dbxelf.h, let config.gcc handle it. - -2001-12-06 Zack Weinberg - - * cppfiles.c (open_file): If we've opened a directory by - mistake, close it. - (find_include_file): Avoid turning / into // or // into ///. - -2001-12-06 Nick Clifton - - * config/arm/arm.h (STRUCT_VALUE): Suppress definition. - (STRUCT_VALUE_REGNUM): Restore definition. - -2001-12-06 Andrew MacLeod - - * flow.c (find_regno_partial): Return register, not the expression - the register is in. - -Thu Dec 6 09:24:12 2001 Richard Kenner - - * function.c (handle_epilogue_set): Check for FP setting case when - SP is set from FP in same insn. - -2001-12-06 Nick Clifton - - * config/arm/arm.c (load_multiple_sequence): Pass pointer to - RTX when calling alter_subreg(). - (store_multiple_sequence): Pass pointer to RTX when calling - alter_subreg(). - -Thu Dec 6 06:55:13 2001 Richard Kenner - - * function.c (assing_parms): Fix typo in last change. - * config/clipper.c (clipper_builtin_saveregs): Remove Checker code. - * config/m88k/m88k.c (m88k_builtin_saveregs): Likewise. - * config/pa/pa.c (hppa_builtin_saveregs): Likewise. - * config/sparc/sparc.c (sparc_builtin_saveregs): Likewise. - -2001-12-06 Alan Modra - - * config/rs6000/rs6000.c (rs6000_unique_section): Simplify and - correct code selecting section. - -Thu Dec 6 12:45:33 CET 2001 Jan Hubicka - - * final.c (count_basic_block, add_bb, add_bb_string): - Kill. - (end_final, final_start_function, final, final_scan_insn, - leaf_function_p): Kill BB profiler related code. - * flags.h (profile_block_flag): Kill. - * libgcc2.c (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE, - BB_BUCKETS, BBINBUFSIZE, bb_edge, bb_func_mode, bb_func, - __bb, bb_src, bb_dst, bb_tracefile, bb_hashbuckets, - bb_func_head, bb_callcount, bb_mode, bb_stack, bb_stacksize - reported, GOPENDECOMPRESS, GOPENCOMPRESS, gopen, gclose, - __bb_exit_trace_func, __bb_init_prg, __bb_trace_func, - __bb_trace_func_ret, __bb_init_file, __bb_trace_ret, - __bb_init_trace_func): Kill. - * toplev.c (profile_block_flag): Kill. - (indepdendent_decode_option, process_options): Kill -a related code. - * alpha.c (direct_call_operand): Likewise. - * arm.c (arm_expand_prologue, thumb_expand_prologue, - thumb_expand_epilogue): Likewise. - * c4x.c (c4x_expand_prologue, c4x_null_epilogue_p): Likewise. - * c4x.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * d30v.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * fr30.c (fr30_expand_prologue): Kill BB profiler related code. - * i386.c (ix86_can_use_return_insn_p, ix86_expand_prologue, - ix86_expand_epilogue, ix86_expand_epilogue): Kill BB profiler related - code. - (ix86_output_function_block_profiler, ix86_output_block_profiler): Kill. - * i386.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * fr30.c (fr30_expand_prologue): Kill BB profiler related code. - * i960.c (i960_output_function_prologue): Kill BB profiler related - code. - * ia64.c (ia64_compute_frame_size): Likewise. - * ia64.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * m32r.c (m32r_expand_prolofue): Kill BB profiler related code. - * m68hc11.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * m68k.c (m68k_output_function_epilogue): Kill BB profiler related code. - * m68k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * m88k.c (output_options, m88k_layout_frame, m88k_expand_prologue): - Kill BB profiler related code. - * m88k.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * mips.c (mips_expand_prologue): Kill BB profiler related code. - * mmix.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * rs6000.c (rs6000_override_options): Kill BB profiler related code. - * s960.c (s390_function_prologue): Kill BB profiler related code. - * s960.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * linux-aout.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. - * linux.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. - * linux64.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. - * sol2.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. - * sparc.c (sparc_override_options, eligible_for_sibcall_delay, - sparc_nonflat_function_epilogue): Kill BB profiler related code. - (sparc_function_block_profiler, sparc_block_profiler, - sparc_function_block_profiler_exit): Kill. - * sparc.h (OVERRIDE_OPTIONS): Kill BB profiler related code. - (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * sun4o3.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. - * sunos4.h (MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Kill. - * stormy16.h (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - * doc/invoke.texi: Kill documentation of -a and -ax. - * tm.texi (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER, - FUNCTION_BLOCK_PROFILER_EXIT, MACHINE_STATE_SAVE, - MACHINE_STATE_RESTORE): Kill. - -2001-10-26 Steve Christiansen - - * doc/rtl.texi: Use a table to display RTL format characters. - -2001-12-06 Bo Thorsen - - * config/i386/linux64.h (LINK_SPEC): Correct name of dynamic linker. - -Wed Dec 5 19:18:53 2001 Richard Kenner - - * function.c (keep_stack_depressed): Check global_live_at_start - of EXIT_BLOCK for temp register and verify it isn't in equiv_reg_src. - -2001-12-05 David O'Brien - - * config.gcc (powerpc-*-freebsd*): Use the proper tmake_file files, - as set by the generic FreeBSD configure framework. - -2001-12-04 Jason Merrill - - * langhooks.h (struct lang_hooks_for_tree_inlining): Add - start_inlining, end_inlining. - * tree-inline.c (expand_call_inline): Call them. - * langhooks-def.h (LANG_HOOKS_TREE_INLINING_START_INLINING): Define. - (LANG_HOOKS_TREE_INLINING_END_INLINING): Define. - (LANG_HOOKS_TREE_INLINING_INITIALIZER): Add them. - * langhooks.c (lhd_tree_inlining_start_inlining): New fn. - (lhd_tree_inlining_end_inlining): New fn. - -2001-12-05 Neil Booth - - * c-common.c (shadow_warning): New function, moved from cp/decl.c. - * c-common.h (shadow_warning): New. - * c-decl.c: Include c-common.h. - (warn_if_shadowing): New, broken out of pushdecl. - (pushdecl): Use warn_if_shadowing. - (store_parm_decls): Prevent duplicate -Wshadow warnings. - -Wed Dec 5 17:59:19 2001 Douglas B. Rupp - - * config/alpha/vms.h (SIZE_TYPE, PTRDIFF_TYPE): Remove, were disabled. - (DOLLARS_IN_IDENTIFIERS, LINK_SPEC): Remove duplicate. - (LIB_SPEC): Remove. - -Wed Dec 5 16:03:04 2001 Richard Kenner - - * doc/c-tree.texi (RECORD_TYPE, UNION_TYPE): Expand on definition. - (QUAL_UNION_TYPE): New type. - - * varasm.c (output_constant, case ERROR_MARK): New case. - - * attribs.c (handle_no_check_memory_usage_atribute): Deleted. - (c_com): Delete its reference. - * builtins.c: Delete memory checking code. - * calls.c, expr.c, function.c, stmt.c: Likewise. - * builtins.c (expand_builtin_arg_info): Remove reference to - EXPAND_MEMORY_USE_* modifiers. - * explow.c (expr_size): Likewise. - * expr.c (expand_expr, expand_increment): Likewise. - * expr.h (ARGS_SIZE_RTX): Likewise. - * function.c (assign_parms, expand_pending_sizeso): Likewise. - * c-decl.c (duplicate_decls): Don't handle DECL_NO_CHECK_MEMORY_USAGE. - * expr.c (in_check_memory_usage): Delete. - (get_push_address, get_memory_usage_from_modifier): Delete. - (expand_assigment): Use EXPAND_WRITE on destination. - (expand_expr): Delete ro_modifier. - * expr.h (expand_modifier): Delete EXPAND_MEMORY_* entries and - add EXPAND_WRITE. - (memory_use_mode): Delete. - * flags.h (flag_check_memory_usage): Deleted. - (flag_prefix_function_name): Likewise. - * function.c (expand_function_start): Don't set - current_function_check_memory_usage. - * function.h (check_memory_usage): Delete. - * libfuncs.h, optabs.c: Delete chkr_* stuff. - * stmt.c (expand_asm_opernd): Change EXPAND_MEMORY_USE_WO to - EXPAND_WRITE. - * toplev.c (flag_check_memory_usage): Deleted. - (flag_prefix_function_name): Likewise. - (f_options, process_options): Delete references to above. - * tree.h (DECL_NO_CHECK_MEMORY_USAGE): Deleted. - * varasm.c (CHKR_PREFIX): Deleted. - (make_decl_rtl): Remove flag_prefix_function_name handling. - (assemble_name): Likewise. - * doc/extend.texi: Remove no_check_memory_usage attribute. - * doc/invoke.texi: Remove -fcheck-memory-usage - and -fprefix-function-name. - -2001-12-05 Andreas Schwab - - * Makefile.in (STMP_FIXPROTO, STMP_FIXINC): Use substituted values - from autoconf. - -2001-12-05 Nick Clifton - - * config.gcc: Include arm/xscale-coff.h before arm/arm.h. - -2001-12-05 William Cohen - - * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Correct typo in - instruction. - -2001-12-05 Daniel Berlin - - * config/rs6000/rs6000.h (enum rs6000_builtins): Add more altivec - builtins. - - * config/rs6000/rs6000.md: Modeling of 7450 altivec changed to - better reflect reality (change from Apple's tree). - Add more of altivec instructions. - Add ftruncv4sf2 pattern. - Remove more unspecs (vector merge instructions, etc). - - * config/rs6000/rs6000.c (bdesc_3arg): New, for 3 argument altivec - builtins. - (bdesc_1arg): New, for 1 argument altivec builtins. - (altivec_expand_builtin): Handle unary and ternary ops. - (altivec_init_builtins): Ditto. - -Wed Dec 5 09:33:39 2001 Richard Kenner - - * config/alpha/vms.h (ADA_LONG_TYPE_SIZE): New macro. - * doc/tm.texi (ADA_LONG_TYPE_SIZE): Document it. - -2001-12-05 Jakub Jelinek - - * gcse.c (store_killed_in_insn): Consider pure calls - as potential store killers in addition to normal calls. - -2001-12-05 Jakub Jelinek - - * expr.c (expand_expr): When checking promoted value, use - DECL_MODE (exp) and not mode. - -2001-12-05 Jakub Jelinek - - * c-typeck.c (output_init_element): Call digest_init - just once, not in each if branch and check its return value for - error_mark_node. - -2001-12-05 Jakub Jelinek - - * c-decl.c (pushdecl): Only increase n_incomplete if pushed decl's - type is RECORD_TYPE, UNION_TYPE or ARRAY_TYPE thereof. - (finish_struct): Break the loop if n_incomplete went to 0. - For ARRAY_TYPE, if it is not TYPE_DECL, layout the decl too. - -Wed Dec 5 07:41:13 2001 Douglas B. Rupp - - * config/alpha/alpha.c (alpha_va_start): Update VMS case. - -Wed Dec 5 07:27:42 2001 Richard Kenner - Douglas B. Rupp - - * vmsdbg.h, vmsdbgout.c: Add documentation and minor cleanups. - * doc/invoke.texi: Add -gvms. - * doc/passes.texi: Add mention of vmsdbgout.c. - * doc/tm.texi: Document VMS debugging output. - -Wed Dec 5 06:26:27 2001 Richard Kenner - - * function.h (tree, rtx): Remove no-longer-needed definitions. - - * function.c (keep_stack_depressed): Refine check for register - clobbered over call. - - * expr.c (store_expr): When copying string constant into array, - use functions that update memrefs instead of computations on - addresses to better track MEMs. Also properly handle 32/64 pointers. - (expand_expr): Use TARGET even if not reg for multi-word CONSTRUCTOR. - (expand_expr, case CONSTRUCTOR): Fix errors in parms to assign_temp. - - * emit-rtl.c (component_ref_for_mem_expr): Try harder to find decl - underneath COMPONENT_REFs. - (set_mem_attributes): Also strip VIEW_CONVERT_EXPR. - -2001-12-05 Neil Booth - - * toplev.c (display_target_options): Don't print twice. - -Wed Dec 5 00:42:16 EST 2001 John Wehle (john@feith.com) - - * emit-rtl.c (set_unique_reg_note): Don't set - a REG_EQUAL or REG_EQUIV note if multiple sets - are present. - -2001-12-04 John David Anglin - - * cfgrtl.c (verify_flow_info): Allow jump table data in fallthru if - CASE_DROPS_THROUGH. - -2001-12-04 Andrew MacLeod - - * rtl.h (initialize_uninitialized_subregs): New prototype. - * toplev.c (rest_of_compilation): Call initialize_uninitialized_subregs - when optimization is on. - * flow.c (find_regno_partial): Find subregs within an expression. - (initialize_uninitialized_subregs): Initialize live on entry registers - which are used in subreg expressions. - -2001-12-04 Phil Edwards - - * Makefile.in: Add INSTALL_SCRIPT using INSTALL definition. - -2001-12-04 DJ Delorie - - * fixinc/fixincl.c (initialize): Avoid problemsome macro - parameter names (PR 3388). - -2001-12-05 Alan Modra - - * config/rs6000/rs6000.c (rs6000_legitimize_address): Fix typo. - * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Here too. - -2001-12-04 Joseph S. Myers - - * c-common.def (COMPOUND_LITERAL_EXPR): New. - * c-common.c (c_expand_expr): Handle COMPOUND_LITERAL_EXPR. - (c_staticp): New function. - * c-common.h (COMPOUND_LITERAL_EXPR_DECL): New. - (c_staticp): Declare. - * c-typeck.c (default_function_array_conversion, build_unary_op): - Don't handle CONSTRUCTOR specially. - (lvalue_p, mark_addressable): Handle COMPOUND_LITERAL_EXPR. - * c-decl.c (build_compound_literal): New function. - * c-tree.h (build_compound_literal): Declare. - * c-parse.in (primary): Use build_compound_literal. - * c-lang.c (LANG_HOOKS_STATICP): Define. - * objc/objc-lang.c (LANG_HOOKS_STATICP): Likewise. - * doc/c-tree.texi: Document COMPOUND_LITERAL_EXPR. - * doc/extend.texi: Update documentation of compound literals. - Fixes PR c/4787. - -2001-12-04 Joseph S. Myers - - * langhooks.h (struct lang_hooks): Add staticp. - * langhooks-def.h (lhd_staticp, LANG_HOOKS_STATICP): New. - (LANG_HOOKS_INITIALIZER): Add LANG_HOOKS_STATICP. - * langhooks.c (lhd_staticp): New function. - * tree.c (staticp): Call lang_hooks.staticp for language-specific - tree codes. - -2001-12-04 Neil Booth - - * cppspec.c (lang_specific_driver): Set is_cpp_driver. - * gcc.c (process_command): Ensure the cpp driver sees - --help and --target-help, and that the help is printed - exactly once. - -2001-12-04 David Edelsohn - - * config/elfos.h (ASM_OUTPUT_INTERNAL_LABEL): Display count unsigned. - -2001-12-04 Hans-Peter Nilsson - - * config/cris/cris.h (OPTIMIZATION_OPTIONS): Don't unset - flag_strict_aliasing. Use separate assignment statements. - -2001-12-04 Zack Weinberg - - * build-make, cross-make: Delete file. - * configure.in: Set and substitute CROSS, ALL, - SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_PREFIX_1, HOST_CC, - HOST_CFLAGS, STMP_FIXINC, and STMP_FIXPROTO depending on - whether build == host and host == target. Do not - AC_SUBST_FILE build_overrides or cross_overrides. Do not - AC_SUBST cross_defines or extra_c_flags. - * Makefile.in (NATIVE_SYSTEM_HEADER_DIR): New. - (SYSTEM_HEADER_DIR, HOST_PREFIX, HOST_CC, HOST_PREFIX, - HOST_PREFIX_1, HOST_CFLAGS, ALL, INTERNAL_CFLAGS): Set - partially or completely with autoconf-substituted @variable@ - notation. - (INSTALL_TARGET, @cross_defines@, @cross_overrides@, - @build_overrides@, @extra_c_flags@, all.build, install-build, - install-cross-rest, install-float-h-cross): Deleted. - (install-normal): Rename to install. Delete old "install" - indirection rule. - -2001-12-04 Andrew MacLeod - - * stmt.c (expand_return): Clear destination instead of clobbering it - when setting a return value via bitsets. - -2001-12-04 Alexandre Oliva - - * tree.c (get_callee_fndecl): Only use DECL_ABSTRACT_ORIGIN if - it has DECL_SAVED_TREE. - - * c-decl.c (duplicate_decls): Revert rth's patch. If newdecl - is in a different binding level, get its abstract origin to be - olddecl. - * tree-inline.c (expand_call_inline): Move DECL_INITIAL sanity - check earlier. - * tree.c (get_callee_fndecl): Follow DECL_ABSTRACT_ORIGIN if - DECL_INITIAL is NULL. - -2001-12-04 Jakub Jelinek - - * flow.c (ior_reg_cond): Return NULL if ! add and rtx wasn't optimized. - Return correct value if one of the subexpressions was optimized to - 0 resp. 1. Optimize (x | A) | x and (x & A) | x. - (and_reg_cond): Similarly. - -2001-12-04 Jakub Jelinek - - * function.c (assign_parms): Set last_named only for last named - argument. - -2001-12-04 Joseph S. Myers - - * doc/install.texi: Use the GFDL. Include years from old install - manual in copyright notice. Include copyright and GFDL notice on - HTML index page. Include usual footer on testing.html. - * doc/install.texi2html: Build gfdl.html. Use -I - $SOURCEDIR/include. - * doc/include/fdl.texi: Adapt for use in the install manual. - -2001-12-04 Joseph S. Myers - - * doc/install.texi: Document that installed native compiler for - building cross compilers should be GCC 2.95 or later. - -2001-12-03 Eric Christopher - - * config/mips/mips.h (CALL_REALLY_USED_REGISTERS): New macro. - * config/mips/mips.md: Check TARGET_DEBUG_D_MODE before split - patterns. - -2001-12-03 Janis Johnson - - * rtl.def (PREFETCH): New rtx code. - * doc/rtl.texi (PREFETCH): Add documentation. - * function.c (instantiate_virtual_regs_1): Handle PREFETCH rtx. - * rtlanal.c (reg_referenced_p): Ditto. - * sched-vis.c (print_exp): Ditto. - * ssa-dce.c (find_inherently_necessary): Ditto. - - * config/ia64/ia64.h (SIMULTANEOUS PREFETCHES): Define. - (PREFETCH_BLOCK): Define. - * config/ia64/ia64.md (itanium_class): Add lfetch. - (prefetch, prefetch_internal): New. - - * builtin-types.def (BT_FN_VOID_PTR_INT_INT): New. - * builtins.def (BUILT_IN_PREFETCH): New. - * builtins.c (expand_builtin_expect): New. - (expand_builtin): Call it. - * doc/extend.texi: Document __builtin_prefetch. - - * config/i386/i386.md (prefetch): Rename as prefetch_sse to avoid - conflicts with new generic prefetch functionality. - * config/i386/i386.c (ix86_expand_builtin): Use new name for - prefetch_sse. - -2001-12-02 Ziemowit Laski - - * objc/Make-lang.in: Update copyright. - (OBJC_OBJS): Add objc-lang.o. - (objc-lang.o): New rule. - * objc/config-lang.in: Fix file description and update - copyright. - * objc/objc-act.c: Do not include langhooks.h and - langhooks-def.h - (lang_hooks): Move (along with LANG_HOOKS...) to objc-lang.c. - (objc_post_options): Move to objc-lang.c. - (objc_init_options): Move to objc-lang.c. - (objc_init): Make non-static. - (objc_decode_option): Make non-static. - (HASHFUNCTION): Remove macro. - (hash_func): New function. - (hash_enter): Replace HASHFUNCTION with hash_func. - (hash_lookup): Replace HASHFUNCTION with hash_func. - (maybe_objc_tree_codes): New function. - (init_objc): Move ObjC tree code initialization to - maybe_objc_tree_codes(). - * objc/objc-act.h (GCC_OBJC_ACT_H): New include guard. - (objc_init): New public prototype. - (objc_decode_option): New public prototype. - (maybe_add_objc_tree_codes): New public prototype. - * objc/objc-lang.c: New file. - (lang_hooks): Moved from objc-act.c. - (objc_post_options): Moved from objc-act.c. - (objc_init_options): Moved from objc-act.c. - -2001-12-03 Geoff Keating - - * emit-rtl.c (gen_lowpart_common): Avoid unwanted sign-extension - of array elements. - -2001-12-03 Neil Booth - - PR c/4988 - * gcc.c (process_command): Don't add a preprocessor option for - --help and --target-help; cc1 is enough. - -2001-12-03 Neil Booth - - * c-decl.c (grokdeclarator): Use ISO word. - * cppinit.c: Remove leading capital from diagnostic messages, as - per GNU coding standards. - * emit-rtl.c: Similarly. - * final.c: Similarly. - * gcc.c: Similarly. - * tradcpp.c: Similarly. - * config/arm/arm.c: Similarly. - * config/arm/arm.h: Similarly. - * config/avr/avr.c: Similarly. - * config/avr/avr.h: Similarly. - * config/c4x/c4x.c: Similarly. - * config/cris/cris.c: Similarly. - * config/cris/cris.h: Similarly. - * config/d30v/d30v.c: Similarly. - * config/dsp16xx/dsp16xx.c: Similarly. - * config/dsp16xx/dsp16xx.h: Similarly. - * config/h8300/h8300.c: Similarly. - * config/i386/i386.c: Similarly. - * config/i386/xm-djgpp.h: Similarly. - * config/i960/i960.h: Similarly. - * config/m32r/m32r.c: Similarly. - * config/m68hc11/m68hc11.c: Similarly. - * config/m88k/m88k.c: Similarly. - * config/m88k/m88k.h: Similarly. - * config/mcore/mcore.c: Similarly. - * config/mcore/mcore.h: Similarly. - * config/mips/mips.c: Similarly. - * config/mmix/mmix.c: Similarly. - * config/pa/pa.c: Similarly. - * config/rs6000/rs6000.c: Similarly. - * config/rs6000/sysv4.h: Similarly. - * config/s390/s390.c: Similarly. - * config/sparc/sparc.c: Similarly. - * config/v850/v850-c.c: Similarly. - * config/v850/v850.c: Similarly. - -2001-12-03 Zack Weinberg - - * rs6000.h (RETURN_IN_MEMORY): Cast result of - int_size_in_bytes to unsigned HOST_WIDEST_INT so that -1 > 8. - -Mon Dec 3 09:18:34 2001 Jeffrey A Law (law@cygnus.com) - - * mn10200.md (negsf2): Use -0x8000 instead of 0x8000 for - bit twiddling constant. - -Mon Dec 3 16:16:37 CET 2001 Jan Hubicka - - * gcse.c (delete_null_pointer_checks_1): Do not use delete_list; - call purge_dead_edges after removing. - (delete_null_pointer_checks): Do not handle delete_list. - - * cfgbuild.c (inside_basic_block_p, control_flow_insn_p): Break out from ... - (count_basic_blocks): ... here. - (find_basic_blocks, find_bb_boundaries): Cleanup. - - * stor-layout.c (fixup_signed_type, fixup_unsigned_type): Avoid - overflow for types greater then 2 * HOST_WIDE_INT. - - * reload.c (find_reloads): Update the duplicates after swapingg. - -Mon Dec 3 13:52:19 CET 2001 Jan Hubicka - - * i386.md (movabsqi*): Use 'b' prefix instead of 'q'. - -2001-12-02 Zack Weinberg - - * config/rs6000/rs6000.h (MASK_ALTIVEC_ABI, - MASK_LONG_DOUBLE_128): Delete. - (MASK_AIX_STRUCT_RET, MASK_AIX_STRUCT_RET_SET, - TARGET_AIX_STRUCT_RET): New flags. - (TARGET_SWITCHES): Remove entries for -mlong-double-128 and - -mlong-double-64. Add entries for -m(no-)aix-struct-return - and -m(no-)svr4-struct-return. - (TARGET_OPTIONS): Add entry for -mlong-double-. - (rs6000_long_double_size_string, rs6000_long_double_type_size, - rs6000_altivec_abi): Declare. - (TARGET_LONG_DOUBLE_128, TARGET_ALTIVEC_ABI, - LONG_DOUBLE_TYPE_SIZE): Change definitions to match. - (RETURN_IN_MEMORY): If !TARGET_AIX_STRUCT_RET, return - structures of size <= 8 bytes in registers. - (PRINT_OPERAND_PUNCT_VALID_P): Take out '$' and '*'. - - * config/rs6000/rs6000.c (rs6000_long_double_size_string, - rs6000_long_double_type_size, rs6000_altivec_abi): New - globals. - (rs6000_override_options): Set rs6000_long_double_type_size - from rs6000_long_double_size_string, if nonzero. Set the - MASK_AIX_STRUCT_RET bit in target_flags from DEFAULT_ABI, if - not already set. - (rs6000_parse_abi_options): Set rs6000_altivec_abi, not a - target_flags bit. - (rs6000_init_builtins): This hook now takes no arguments. - - * config/rs6000/netbsd.h, config/rs6000/linux.h: Define - DRAFT_V4_STRUCT_RET to 1. - -2001-12-03 Joseph S. Myers - - * c-typeck.c (really_start_incremental_init, push_init_level): - Avoid constructor_max_index being other than an INTEGER_CST. - -2001-12-02 David Edelsohn - - * config/rs6000/xcoff.h (ASM_OUTPUT_INTERNAL_LABEL): Display count - unsigned. - (ASM_GENERATE_INTERNAL_LABEL): Same. - (UNIQUE_SECTION): Fix typo. - -2001-12-02 Richard Henderson - - * c-decl.c (duplicate_decls): Conditionalize DECL_SAVED_TREE copy. - -2001-12-02 Richard Henderson - - * rtl.h (mem_attrs): Rename decl to expr; adjust all users. - (MEM_EXPR): Rename from MEM_DECL; adjust all users. - * emit-rtl.c (set_mem_expr): Rename from set_mem_decl. - * expr.h, final.c, reload1.c: Adjust users. - - * alias.c (nonoverlapping_component_refs_p): New. - (decl_for_component_ref, adjust_offset_for_component_ref): New. - (nonoverlapping_memrefs_p): Use them. - * emit-rtl.c (component_ref_for_mem_expr): New. - (set_mem_attributes): Use it. - (set_mem_offset): New. - * expr.c (expand_assignment): Call set_mem_attributes for - inner references; adjust the memory offset as needed. - * print-rtl.c (print_mem_expr): New. - (print_rtx): Use it. - -Sun Dec 2 09:22:25 2001 Douglas B. Rupp - - * config/x-interix3 (SYSTEM_HEADER_DIR): Put back default. - - * config/alpha/vms.h (VMS_DEBUGGING_INFO): New macro. - (PREFERRED_DEBUGGING_TYPE): Define as VMS_AND_DWARF2_DEBUG. - (ASM_SPEC): Don't redefine. - (OPTIMIZATION_OPTIONS, OVERRIDE_OPTIONS, LINK_SPEC): Define. - * config/alpha/t-vms (EXTRA_PARTS): Use; add rule for vms-dwarf2.asm. - * config/alpha/vms-dwarf2.asm: New file. - - * Makefile.in (OBJS): Add vmsdbgout.c and its rule. - * c-lex.c (init_c_lex): Test for VMS_AND_DWARF2_DEBUG. - * debug.h (gcc_debug_hooks): Add vmsdbg_debug_hooks. - (vmsdbgout_after_prologue): New declaration. - * defaults.h (VMS_DEBUGGING_INFO): Add to PREFERRED_DEBUGGING_TYPE. - * dwarf2.h (dwarf_attribute): New DW_AT_VMS_rtnbeg_pd_address. - * dwarf2out.c (dwarf2out_do_frame): Test for VMS_AND_DWARF2_DEBUG. - (dwarf2out_frame_finish): Test for VMS_AND_DWARF2_DEBUG. - (dwarf_attr_name): Use DW_AT_VMS_rtnbeg_pd_address. - (add_name_and_src_coords_attributes): Test VMS_DEBUGGING_INFO - * final.c (final_start_function): Test for VMS_AND_DWARF2_DEBUG. - Test VMS_DEBUGGING_INFO. - (final_end_function): Test for VMS_AND_DWARF2_DEBUG. - (final_scan_insn): Test for VMS_AND_DWARF2_DEBUG and VMS_DEBUG. - * flags.h (debug_info_type): Add VMS_DEBUG and VMS_AND_DWARF2_DEBUG. - * toplev.c (compile_file): Test VMS_DEBUGGING_INFO, VMS_DEBUG, and - VMS_AND_DWARF2_DEBUG. - (rest_of_type_compilation): Test for VMS_AND_DWARF2_DEBUG. - (decode_g_option): Add "vms" to debug_type_names. - (process_options): Set vmsdbg_debug_hooks if -gvms. - (lang_independent_init): Emit line number for VMS unless -g0. - * tree.c: (build_complex_type): Test for VMS_AND_DWARF2_DEBUG. - * vmsdbg.h, vmsdbgout.c: New files. - -Sun Dec 2 09:03:06 2001 Richard Kenner - - * cfgbuild.c (SET_STATE): Add cast to eliminate warning.a - -2001-12-02 Kaveh R. Ghazi - - * cfgrtl.c (purge_all_dead_edges): Initialize variable. - * dwarf2out.c (is_cxx): Prototype. - * local-alloc.c (block_alloc): Avoid 'unsigned>=0 is always true' - warning. - * objc/objc-act.c (defer_fn): Avoid signed/unsigned warning. - -Sun Dec 2 07:12:30 2001 Richard Kenner - - * libgcc2.c (__bb_exit_func): Fix line wrap problems. - -2001-12-02 Geoff Keating - - * config/rs6000/rs6000.h (SLOW_UNALIGNED_ACCESS): Simplify. - * config/rs6000/rs6000.c (rs6000_emit_move): Use adjust_address - rather than simplify_subreg. Check for volatile-ness. Check that - we're not splitting one slow operation into two slow operations. - -2001-12-02 David Edelsohn - - * emit-rtl.c (gen_lowpart_common): Cast array element to HOST_WIDE_INT - before shifting. - -2001-12-02 Neil Booth - - * c-decl.c (duplicate_decls, push_parm_decl): Remove leading - capital from diagnostics. - * c-lex.c (cb_file_change): Similarly. - * c-parse.in : Similarly. - * cfgrtl.c (verify_flow_info): Similarly. - * collect2.c: Similarly. - * cppfiles.c (find_include_file): Similarly. - * cppinit.c (cpp_handle_option): Similarly. - * cpplex.c (cpp_spell_token): Similarly. - * cppmain.c (do_preprocessing): Similarly. - * gcc.c (translate_options, process_command, do_spec1, - main, pfatal_execute): Similarly. - * genattr.c (main): Similarly. - * genattrtab.c (check_attr_test, operate_exp, simplify_test_exp, - write_test_expr, main): Similarly. - * gencodes.c (main): Similarly. - * genconfig.c (main): Similarly. - * genconstants.c (main): Similarly. - * genemit.c (main): Similarly. - * genextract.c (main): Similarly. - * genflags.c (main): Similarly. - * genopinit.c (main): Similarly. - * genoutput.c (process_template, main): Similarly. - * genpeep.c (main): Similarly. - * genrecog.c (main): Similarly. - * gensupport.c (is_predicable, identify_predicable_attribute, - alter_predicate_for_insn, init_md_reader_args, main): Similarly. - * ggc-page.c (alloc_anon): Similarly. - * mips-tfile.c (add_string, add_procedure, add_file, read_line, - parse_begin, parse_bend, parse_def, parse_end, parse_file, - parse_stabs_common, parse_stabs, write_varray, write_object, - read_seek, copy_object, main, error): Similarly. - * profile.c (compute_branch_probabilities): Similarly. - * reg-stack.c (check_asm_stack_operands): Similarly. - * reload.c (find_reloads): Similarly. - * reload1.c (spill_failure, failed_reload): Similarly. - * rtl-error.c (_fatal_insn_not_found): Similarly. - * toplev.c (read_integral_parameter, crash_signal, - decode_f_option, set_target_switch, parse_options_and_default_flags) - : Similarly. - * tradcif.y (parse_number, yylex): Similarly. - * tradcpp.c (main, fancy_abort): Similarly. - * tree.c (tree_check_failed): Similarly. - * varray.c (varray_check_failed): Similarly. - * xcoffout.c (xcoff_output_standard_types): Similarly. -objc: - * objc-act.c (get_object_ref, lookup_and_install_protocols, - build_objc_string_object, objc_declare_alias, build_ivar_chain, - finish_message_expr, build_protocol_expr, is_public, - start_class): Similarly. - -2001-12-01 Neil Booth - - * c-decl.c (duplicate_decls, parmlist_tags_warning): Remove - trailing period from diagnostics. - * c-lex.c (cb_file_change): Similarly. - * cppmacro.c (check_trad_stringification): Similarly. - * gcc.c (do_spec_1): Similarly. - * genattr.c (main): Similarly. - * genattrtab.c (main, operate_exp, make_length_attrs): Similarly. - * gencodes.c (main): Similarly. - * genconfig.c (main): Similarly. - * genconstants.c (main): Similarly. - * genemit.c (main): Similarly. - * genextract.c (main): Similarly. - * genopinit.c (main): Similarly. - * genoutput.c (main): Similarly. - * genpeep.c (main): Similarly. - * genrecog.c (main): Similarly. - * mips-tfile.c (add_file, error): Similarly. - * profile.c (init_branch_prob): Similarly. - * reload1.c (spill_failure): Similarly. - * stmt.c (parse_output_constraint): Similarly. - * varasm.c (assemble_variable): Similarly. - -2001-12-01 Kaveh R. Ghazi - - * m68k.c (init_FPA_table): Provide static prototype. - * mips/abi64.h (mips_function_value): Move prototype to ... - * mips-protos.h (mips_function_value): ... here. - * mips.c: Include halfpic.h. - * output.h (rdata_section): Prototype. - - * h8300.c (h8300_asm_named_section): Wrap with !OBJECT_FORMAT_ELF. - * m88k.c (m88k_svr3_asm_out_constructor, - m88k_svr3_asm_out_destructor): Wrap with CTOR_LIST_BEGIN && - !OBJECT_FORMAT_ELF. - * mcore.c (mcore_asm_named_section): Wrap with OBJECT_FORMAT_ELF. - * sh.c (sh_asm_named_section): Wrap with !OBJECT_FORMAT_ELF. - * sparc.c (sparc_elf_asm_named_section): Wrap with OBJECT_FORMAT_ELF. - -2001-12-01 Geoff Keating - - * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Complex - LO_SUM addresses less than word size are not legitimate, - because they lead to invalid SUBREGs. - * config/rs6000/rs6000.c (rs6000_legitimize_address): Likewise. - -2001-12-01 Olivier Hainque - - * unroll.c (loop_iterations): Give up on jumps with null JUMP_LABEL - while scanning for multiple back edges. - -2001-12-01 Franz Sirl - - * ginclude/ppc-asm.h (JUMP_TARGET): New macro. - * config/rs6000/tramp.asm: Use it. - -2001-12-01 Zack Weinberg - - * gencheck.c, gengenrtl.c: Don't define xmalloc. - * gensupport.c: Don't define xstrdup, xcalloc, xrealloc, - xmalloc. - -2001-11-30 John David Anglin - - * pa.c (output_ascii): Cast `p' to unsigned char. - -2001-11-30 Daniel Berlin - - * config/rs6000/rs6000.c (altivec_expand_builtin): add - ALTIVEC_BUILTIN_LD_INTERNAL_4sf and ALTIVEC_BUILTIN_ST_INTERNAL_4sf, - *_16qi,_8hi, rename existing V4SI ones to *_4si. - (altivec_init_builtins): Ditto. - (bdesc_2arg): Rename CODE_FOR_* to match changes in MD file. - - * config/rs6000/rs6000.md: Add attribute types vecsimple, - veccomplex, vecfloat, and vecperm, for altivec instructions. - Modify altivec patterns to use appropriate attribute type. - Modify altivec patterns to match RTL operations where appropriate - (IE no unspec where we can avoid it). - Add vector unit scheduling for ppc7450. - Rename patterns to what they are where appropriate - (altivec_vaddfp->addv4sf3, etc) - - * config/rs6000/rs6000.h (enum rs6000_builtins): Change VRS->VSR. - Pass -mppc, and define _ARCH_PPC, if -mcpu=7450 is used. - - * config/rs6000/sysv4.h: Add -mcpu=7450. - - * testsuite/gcc.dg/altivec-1.c: Update test to take into account renamed - _builtin_altivec_ld_interal function. - -2001-11-30 Kaveh R. Ghazi - - * configure.in (AC_CHECK_FUNCS): Delete strtoul, bsearch, popen, - strchr, strrchr, isascii, gettimeofday. - * config.in, configure: Regenerate. - -2001-11-30 Zoltan Hidvegi - - * unroll.c (unroll_loop): Correct special exit cases. - -2001-11-30 Stephane Carrez - - * config/sparc/sparc.c (DF_MODES_NO_S): Fix pr/3623, define to - accept DFmode and DImode only. - -2001-11-30 Aldy Hernandez - - * config/rs6000/rs6000.h (STARTING_FRAME_OFFSET): Adjust for altivec. - (STACK_DYNAMIC_OFFSET): Same. - -2001-11-30 Richard Henderson - - * c-decl.c (duplicate_decls): Copy DECL_SAVED_TREE. - -2001-11-30 Aldy Hernandez - - * config/rs6000/rs6000.h (CALL_REALLY_USED_REGISTERS): New. - (CONDITIONAL_REGISTER_USAGE): Set call_really_used_registers to - the values in call_used_registers. - -Fri Nov 30 12:48:26 2001 Jeffrey A Law (law@cygnus.com) - - * gthr-dce.h: If _DCE_THREADS is not defined, then just include - gthr-single. - -2001-11-30 Jason Merrill - - * dwarf2out.c (is_cxx): New fn. - (add_data_member_location_attribute): Check it. - * dbxout.c (dbxout_type): Only look at BINFO_VPTR_FIELD for C++. - -Fri Nov 30 08:26:57 2001 Richard Kenner - - * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Handle const1_rtx. - -2001-11-30 Daniel Berlin - - * genopinit.c (gen_insn): Handle MODE_VECTOR_INT and - MODE_VECTOR_FLOAT as allowed. - -2001-11-29 Zack Weinberg - - Purge cruft now we have build libiberty. - - * Makefile.in (OBSTACK, VFPRINTF, DOPRINT, STRSTR, - HOST_OBSTACK, HOST_VFPRINTF, HOST_DOPRINT, HOST_STRSTR, - USE_HOST_OBSTACK, USE_HOST_VFPRINTF, USE_HOST_DOPRINT, - USE_HOST_STRSTR): Delete variables. - (vfprintf.o, doprint.o, strstr.o, splay-tree.o, obstack.o, - hashtab.o, safe-ctype.o, $(HOST_PREFIX_1)obstack.o, - $(HOST_PREFIX_1)vfprintf.o, $(HOST_PREFIX_1)doprint.o, - $(HOST_PREFIX_1)strstr.o), $(HOST_PREFIX_1)): Delete rules. - (LIBIBERTY, BUILD_LIBIBERTY): New variables. - (LIBDEPS): Now just $(INTLDEPS) $(LIBIBERTY). - (LIBS): Now just $(INTLLIBS) @LIBS@ $(LIBIBERTY). - (HOST_LIBDEPS): Now just $(BUILD_LIBIBERTY). - (HOST_LIBS): Ditto. - (HOST_RTL): Remove hashtab.o safe-ctype.o. - (OBJS): Remove splay-tree.o. - (gen-protos): Depend on $(HOST_LIBS), not ../libiberty/libiberty.a. - (distclean): No need to delete splay-tree.c obstack.c - hashtab.c safe-ctype.c. - (mostlyclean): Delete build copies of print-rtl.c bitmap.c - errors.c ggc-none.c (all prefixed with $(HOST_PREFIX_1). - * aclocal.m4 (gcc_AC_FUNC_VFPRINTF_DOPRNT, gcc_AC_FUNC_STRSTR): - Delete. - * configure.in: Don't use them. - Set and substitute @FORBUILD@. - * config.in, configure: Regenerate. - * doprint.c: Move to libiberty/_doprnt.c. - * doc/configterms.texi: Document that libiberty is now built - up to three times. Fix typo. - -2001-11-30 Jason Merrill - - * dwarf2out.c (add_data_member_location_attribute): Do the - right thing for virtual bases. - * dbxout.c (dbxout_type): For a virtual base, print the offset - within the vtable. - -2001-11-29 Zoltan Hidvegi - - * doloop.c (doloop_valid_p): Check for LTU and GTU as well. - -2001-11-29 Aldy Hernandez - - * config/rs6000/rs6000.c (function_arg): Unnamed vector arguments - go in memory. - Remove unused attribute for named. - -2001-11-29 Kaveh R. Ghazi - - * genattrtab.c (attr_rtx_1): New function containing the - majority of `attr_rtx'. Move variable declarations into the - scope where they are used. Eliminate unnecessary gotos. - (attr_rtx): Now just a wrapper for `attr_rtx_1' using VA_OPEN, - VA_FIXEDARG, and VA_CLOSE. - -2001-11-30 Hans-Peter Nilsson - - * config/cris/cris.c (cris_notice_update_cc): Check first - destination also against overlap with cc_status.value2 and second - destination against overlap with cc_status.value1. For overlaps, - clear overlapped value, don't just CC_STATUS_INIT. - - * config/cris/cris.h (EXTRA_CONSTRAINT_T): Fix spacing and FIXME. - Fix typo in comment. - (LINK_SPEC): Remove whitespace at end of line. - -2001-11-29 Jakub Jelinek - - * c-lex.c (init_c_lex): Canonicalize "-" filename to "". - -2001-11-29 Jakub Jelinek - - * gcc.c (ASM_DEBUG_SPEC): Only check HAVE_AS_G*_DEBUG_FLAG - macros for the supported debugging types. - -2001-11-29 Craig Rodrigues - - PR other/4932 - * config/i386/i386.c (print_operand): Verify that the - argument to %c is a constant and not a conditional which - needs to be reversed. - -Thu Nov 29 11:12:59 2001 Geoffrey Keating (geoffk@redhat.com) - - * emit-rtl.c (gen_lowpart_common): Fix conversion of - REAL_VALUE_TYPEs to an array of target integers. Fix extraction - of low part of those arrays for 32bit and 64bit hosts. - -2001-11-29 Kaveh R. Ghazi - - * Makefile.in (insn-output.o): Depend on insn-codes.h. - -2001-11-29 Joseph S. Myers - - * configure.in (target_list): Add generated-manpages. - * configure: Regenerate. - * Makefile.in (generated-manpages): Depend on - lang.generated-manpages. - * objc/Make-lang.in (objc.generated-manpages): New dummy target. - -2001-11-29 Nick Clifton - - * config/arm/crti.asm (_init): Add .thumb_func if compiled - with -mthumb. - (_fini): Add .thumb_func if compiled with -mthumb. - -2001-11-28 Eric Christopher - - * config/mips/mips.c (override_options): Fix thinko in mips_tune - for mips32/mips64. Remove MASK_SOFT_FLOAT configuration bits. - -Thu Nov 29 00:24:15 EST 2001 John Wehle (john@feith.com) - - * alpha.md (tablejump): Use pic_offset_table_rtx - instead of gen_rtx_REG. - -Wed Nov 28 15:36:13 2001 Jeffrey A Law (law@cygnus.com) - - * expr.c (store_expr): When copying a string constant into an - array, reset the known alignment of the MEM for the section to - be cleared to BITS_PER_UNIT. - -2001-11-28 Hans-Peter Nilsson - - * config/cris/cris.c: Remove whitespace at end of line. - -Wed Nov 28 14:51:23 2001 Douglas B. Rupp - - * config.gcc (i[34567]86-*-interix3*): New case. - * config/x-interix3, config/interix3.h, config/i386/i386-interix3.h: - New files. - -2001-11-28 Richard Henderson - - * config/alpha/alpha.md (sibcall_osf_1, sibcall_value_osf_1): Use - symbolic_operand as the predicate. - -2001-11-28 Richard Henderson - - * doloop.c (doloop_modify_runtime): Properly select induction - variable; skip late entry test if biv initializer created by loop. - -Wed Nov 28 08:21:47 2001 Richard Kenner - - * tree.h (EXPR_WFL_LINECOL): Used by Java in node other than - EXPR_WITH_FILE_LOCATION, so change checks and documentation. - - * tree.h (TREE_VIA_PROTECTED): Update to show can be in TREE_VEC. - - * tree.h: Add missing checks on some macros; make formatting more - consistent. - - * stor-layout.c (put_pending_size): Look for SAVE_EXPR if not at top - level; only add to pending_sizes if find it. - - * langhooks.c (lhd_safe_from_p): Add ATTRIBUTE_UNUSED. - - * df.c (iterate_dataflow_sbitmap, iterate_dataflow_bitmap): - Add casts to remove warnings. - - * Makefile.in (OBJS): Sort alphabetically. - - * print-rtl.c (print_rtx): If RTX code is bad, just say so. - Also minor cleanups. - -Wed Nov 28 06:52:27 2001 Arnaud Charlet - - * Makefile.in (ORDINARY_FLAGS_TO_PASS): Remove STAGE_PREFIX. - (FLAGS_TO_PASS): Add STAGE_PREFIX. - (SUBDIR_FLAGS_TO_PASS): Apply PREPEND_DOTDOT_TO_RELATIVE_PATH - to STAGE_PREFIX. - -Wed Nov 28 10:42:19 CET 2001 Jan Hubicka - - * cse.c (true_dependence_in_rtx): New function. - (invalidate): Use it. - - * c-common.h (GOTO_FAKE_P): New macro. - * tree-inline.c (GOTO_FAKE_P): Set. - * c-tree.texi (GOTO_FAKE_P): Document. - - * varasm.c (assemble_variable): Set reloc to 3 for error_mark - containing pointers. - (output_addressed_constants): Check for local/external relocations. - * elfos.h (SELECT_SECTION): Classify data section. - * tm.texi (SELECT_SECTION): Update documentation. - - * cfganal.c (flow_dfs_compute_reverse_add_bb): set visited bit. - (flow_dfs_compute_reverse_execute): Add only unvisited blocks. - -2001-11-27 Kaveh R. Ghazi - - * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Also provide defaults when we have - OBJECT_FORMAT_ROSE. - -2001-11-28 Hans-Peter Nilsson - - * config/cris/cris.c: Tweak spacing for prototypes. - (LOSE_AND_RETURN): New macro. - (cris_operand_lossage): New function. - (cris_print_index, cris_print_base): Use cris_operand_lossage - rather than fatal_insn. - (cris_print_operand, cris_print_operand_address): Use - LOSE_AND_RETURN rather than fatal_insn and internal_error. - (cris_output_addr_const): Use LOSE_AND_RETURN and - output_operand_lossage rather than fatal_insn and internal_error - for valid but unexpected rtx expressions. - - * config/cris/cris.c (cris_split_movdx): Don't call alter_subreg - for a SUBREG in src or dest, abort instead. - -2001-11-28 Bryce McKinlay - - * doc/passes.texi: Remove reference to c-dump.c. Update tree inlining - doc. - -2001-11-27 Jakub Jelinek - - * gcc.c (ASM_DEBUG_SPEC): Use conditional expression rather than - preprocessor define. If only DBX_DEBUGGING_INFO or only - DWARF2_DEBUGGING_INFO is supported for the target, provide - appropriate definitions. - -2001-11-27 Neil Booth - - * Makefile.in: Update, and add c-objc-common.o dependencies. - * c-lang.c: Remove unnecessary includes. - (c_init): Move bulk of code to c_objc_common_init, and call it. - (c_tree_printer, c_missing_noreturn_ok_p, c_disregard_inline_limits, - inline_forbidden_p, c_cannot_inline_tree_fn): Move to - c-objc-common.c. - * c-objc-common.c: New. Mostly pulled from c-lang.c. - * c-tree.h (c_disregard_inline_limits, c_cannot_inline_fn, - c_objc_common_init, c_missing_noreturn_ok_p): New. - * toplev.c: Update comment. - * doc/passes.texi: Update. -objc: - * objc-act.c (LANG_HOOKS_TREE_INLINING_CANNOT_INLINE_TREE_FN, - LANG_HOOKS_TREE_INLINING_DISREGARD_INLINE_LIMITS, - LANG_HOOKS_TREE_INLINING_ANON_AGGR_TYPE_P): Override. - (objc_init): Update to use c_objc_common_init. - -2001-11-27 Neil Booth - - * cpphash.c (_cpp_init_hashtable): Update. - * cpphash.h (struct spec_nodes): Remove n_L. - * cpplex.c (_cpp_lex_direct): Check for prefix L separately. - -2001-11-17 Richard Henderson - - * unroll.c (loop_iterations): Move last change ... - * doloop.c (doloop_modify_runtime): ... here. - -2001-11-17 Corey Minyard - Richard Henderson - - * unroll.c (loop_iterations): Detect one situation in which we - overestimate the number of iterations. - -2001-11-27 Rainer Orth - - * gcc.c (set_input): Export. - Move declaration ... - gcc.h (set_input): ... here. - -2001-11-27 Rainer Orth - - * gcc.c (set_collect_gcc_options): New function, split out from - main. - Ignore elided switches. - (do_spec): Invoke before executing command. - (do_spec_1): Likewise. - Fixes PR other/3968. - -2001-11-27 Hans-Peter Nilsson - - * config/cris/cris.h (INT_ASM_OP): Remove. - -2001-11-27 Rainer Orth - - * config/i386/sol2.h (WINT_TYPE): Redefine. - (WINT_TYPE_SIZE): Likewise. - -2001-11-27 Kaveh R. Ghazi - - * collect2.c: Check HAVE_DUP2 instead of NO_DUP2. - (dup2): Make static and add prototype. - * m68k/plexus.h: Don't define NO_DUP2. - * configure.in (AC_CHECK_FUNCS): Add dup2. - * config.in, configure: Regenerate. - - * ia64/aix.h (REG_SIZE): Don't #undef. - * sparc.h (REG_SIZE): Delete. - * flow.c (mark_used_regs): Don't use REG_SIZE. - * regs.h (REG_SIZE): Delete. - -2001-11-27 Andreas Schwab - - * gcc.c: Fix typo PREFERRED_DEBUGGING_FORMAT -> - PREFERRED_DEBUGGING_TYPE. - -Tue Nov 27 08:21:47 2001 Richard Kenner - - * Makefile.in (c-lang.o): Depends on langhooks-def.h. - (expr.o, varasm.o): Depends on langhooks.h. - * c-common.c (c_safe_from_p): Always declare. - (c_expand_expr): Refine when declared. - * c-lang.c (c-common.h): Now include. - (LANG_HOOKS_SAFE_FROM_P): Define new hook. - (c_init): Don't set lang_safe_from_expr. - * expr.c (langhooks.h): Now include. - (lang_safe_from_p): No longer define. - (safe_from_p): Use lang hook. - (expand_expr): Set IGNORE if VOID_TYPE result of VIEW_CONVERT_EXPR too. - (expand_expr, case VIEW_CONVERT_EXPR): Pass ro_modifier down. - * expr.h (lang_expand_constant, lang_safe_from_p): Delete. - * langhooks-def.h (lhd_return_tree, lhd_safe_from_p): New decls. - (LANG_HOOKS_EXPAND_CONSTANT, LANG_HOOKS_SAFE_FROM_P): New hooks. - * langhooks.c (lhd_return_tree, lhd_safe_from_p): New functions. - * langhooks.h (struct lang_hooks): New fields expand_constant - and safe_from_p. - * output.h (output_constant): Size arg is HOST_WIDE_INT. - * stmt.c (expand_decl_init): No longer need to expand constant - for CONST_DECL. - * stor-layout.c (put_pending_size): Don't check for SAVE_EXPR. - * toplev.c (lang_expand_constant): Delete var. - * tree.c (save_expr): Don't put another SAVE_EXPR around simple - operations on SAVE_EXPR. - * varasm.c (langhooks.h): Now include. - (compare_constant_1): Use lang_hooks, not lang_expand_constant. - (record_constant_1, output_addressed_constants): Likewise. - (initializer_constant_valid_p, output_constant): Likewise. - (output_constant_def): Process no-defer of string constant. - (output_addressed_constants, case ADDR_EXPR): Use handled_component_p. - (output_constant): Strip more conversions. - Track our size and pad for the rest. - (array_size_for_constructor): Remove code for non-byte STRING_CST. - (output_constructor): SIZE now HOST_WIDE_INT. - -2001-11-27 Richard Henderson - - * ifcvt.c (noce_try_store_flag_constants): Test for overflow - in computing DIFF. - -2001-11-27 Zack Weinberg - - * cppfiles.c (read_include_file): Add comment. - -2001-11-26 Richard Henderson - - * toplev.c (rest_of_compilation): Call free_bb_for_insn before exit. - -2001-11-26 Richard Henderson - - * config/ia64/sysv4.h (DBX_DEBUGGING_INFO): Undef. - * config/ia64/aix.h (PREFERRED_DEBUGGING_TYPE): Remove - commented out override. - -2001-11-26 Neil Booth - - * cppfiles.c (stack_include_file): Don't optimize zero-length - files. - (read_include_file): NUL-terminate read files. - * cpplex.c (handle_newline, skip_escaped_newlines, - get_effective_char, skip_whitespace, parse_identifier, - parse_identifier_slow, parse_number, parse_string, - _cpp_lex_direct): Optimize for the fact that buffers are guaranteed - NUL-terminated. - * cpplib.c (destringize_and_run, cpp_define, handle_assertion): - Be sure buffers are NUL terminated. - * cppmacro.c (warn_of_redefinition): Kill compile warning. - -2001-11-26 Neil Booth - - * c-common.c: Include tree-inline.h. - (c_language): Move separate definitions here. - (c_common_init_options, c_common_post_options): New. - (c_common_lang_init): Rename c_common_init. - * c-common.h (c_common_lang_init): Similarly. - (c_common_init_options, c_common_post_options): New. - * c-lang.c (c_post_options): Move body to c_common_post_options. - (c_init_options): Use c_common_init_options. - (c_init): Update. - * langhooks.def: Rearrange. - * langhooks.h: Rearrange, and improve comments. - * toplev.c (do_compile): New function. - (toplev_main): Use it. - (lang_independent_f_options, parse_options_and_default_flags, - process_options): Remove trailing periods. - * Makefile.in: Update. -objc: * objc-act.c (objc_post_options, objc_init_options): Use c-common.c - functions. - (ojbc_init): Update. - -2001-11-26 Richard Henderson - - * config/alpha/alpha.md (unop): Add 0 offset for some gas versions. - -2001-11-26 DJ Delorie - - * expr.c (store_constructor): Actually use the value computed - if WORD_REGISTER_OPERATIONS. - -2001-11-26 Richard Henderson - - * config/elfos.h (SELECT_SECTION): Don't check TREE_READONLY - for CONSTRUCTOR. - -2001-11-26 David Edelsohn - - * rs6000.c (output_mi_thunk): Handle minimal-toc and call - correct function on AIX. - -2001-11-26 Alexandre Oliva - - * toplev.c (process_options): Don't force - flag_optimize_sibling_calls to zero just because exceptions are - enabled. - -Mon Nov 26 12:37:05 2001 Jeffrey A Law (law@cygnus.com) - - * df.h (transfer_function_sbitmap): Use PARAMS around argument - list in function prototypes. - (transfer_function_bitmap): Likewise. - -2001-11-26 Loren J. Rittle - - * config/stormy16/stormy16.h: Remove DEFAULT_VTABLE_THUNKS. - * config/i386/netbsd-elf.h: Likewise. - -2001-11-26 David Edelsohn - - * doc/trouble.texi: Remove outdated RS/6000 comments. - -Mon Nov 26 13:49:41 CET 2001 Jan Hubicka - - * final.c (walk_alter_subreg): Fix return value. - -Mon Nov 26 11:36:20 CET 2001 Jan Hubicka - - * sparc.c (sparc_absnegfloat_split_legitimate): Do not call - alter_subreg. - * sparc.md (post-reload splitters): Do not call alter_subreg. - * cfgrtl.c (purge_dead_edges): Fix typo in previous fix. - -2001-11-25 Aldy Hernandez - - * regclass.c (choose_hard_reg_mode): Handle vector arguments. - -2001-11-26 Alan Modra - - * final.c: (insn_lengths): Make it an int *, so that large jump - tables don't overflow. - -2001-11-25 Joseph S. Myers - - * c-format.c (FMT_FLAG_DOLLAR_GAP_POINTER_OK): New. - (format_types): Use it for scanf. - (dollar_arguments_pointer_p): New. - (init_dollar_format_checking): Store details of which arguments - are pointers. - (maybe_read_dollar_number): Reallocate dollar_arguments_pointer_p. - (finish_dollar_format_checking): Take extra parameter - pointer_gap_ok. Treat unused arguments differently if - pointer_gap_ok and the unused arguments are pointers. - (check_format_info_main): Pass extra argument to - finish_dollar_format_checking. - * doc/invoke.texi (-Wno-format-extra-args): Document behavior when - unused arguments are present between used arguments with operand - numbers. - -2001-11-25 Daniel Berlin - - * df.c: Add prototypes for hybrid_search_bitmap and - hybrid_search_sbitmap. - (hybrid_search_bitmap): New function. - (hybrid_search_sbitmap): New function. - (iterative_dataflow_sbitmap): Change to use hybrid_search_sbitmap. - (iterative_dataflow_bitmap): Ditto. - -2001-11-25 Stephane Carrez - - * config/m68hc11/m68hc11.md (peephole2): New peephole2 to optimize - address computations. - -2001-11-25 Stephane Carrez - - * config/m68hc11/m68hc11.c (d_register_operand): Must accept - register b (low part of d). - -2001-11-25 Stephane Carrez - - * config/m68hc11/m68hc11.h (FUNCTION_PROFILER): Fix label name - passed to mcount. - -Sun Nov 25 06:22:09 2001 Douglas B. Rupp - - * config/alpha/vms-ld.c, config/alpha/vms-cc.c: New files. - * config/alpha/x-vms: New file, to compile the above. - * config.gcc (alpha*-dec-vms*): Add x-vms. - -2001-11-24 Hans-Peter Nilsson - - * genextract.c (main): Set ro_loc for peepholes. - -Sat Nov 24 17:04:10 2001 Douglas B. Rupp - - * fix-header.c (main): Move inf_buffer termination and inf_limit - calculation to after read. - - * config/alpha/xm-vms.h (FILE_TYPE): Remove undef and baggage. - (__UNIX_FOPEN): Define. - -Sat Nov 24 16:11:00 2001 Richard Kenner - - * function.c (assign_stack_temp_for_type): Clear alias set before - setting new one. - -2001-11-23 David Edelsohn - - * rs6000.c (print_operand, case 'v'): Use HOST_WIDE_INT_PRINT_HEX - format. - * rs6000.md (cmptf): Fix typo. - -2001-11-23 Richard Sandiford - - * final.c (output_addr_const): Output PC as '.' even if !flag_pic. - * varasm.c (output_constructor): Use assemble_integer rather - than ASM_OUTPUT_BYTE. - -2001-11-23 Andreas Jaeger - - * cpplex.c (cpp_interpret_charconst): Use HOST_WIDE_INT for sign - extension. - -2001-11-23 Nick Clifton - - * config/arm/xscale-coff.h (SUBTARGET_CPU_DEFAULT): Override - default definition. - (SUBTARGET_EXTRA_ASM_SPEC): Remove previous definition. - (MULTILIB_DEFAULTS): Remove previous definition. - -2001-11-23 Neil Booth - - * cppmacro.c (warn_of_redefinition): Warn regardless of -pedantic. - * gcc.dg/cpp/mi6.c, gcc.dg/cpp/redef2.c: Update. - -2001-11-22 Kaveh R. Ghazi - - * cris.h: Revert thinko in last patch. - -2001-11-23 Joseph S. Myers - - * ChangeLog.0, ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog, - FSFChangeLog.10, c-decl.c, cppfiles.c, cppinit.c, cpplex.c, - cpplib.c, cppmain.c, cse.c, df.c, diagnostic.c, dominance.c, - dwarf2out.c, dwarfout.c, emit-rtl.c, errors.c, except.c, except.h, - explow.c, function.c, gcse.c, genrecog.c, predict.c, regmove.c, - sched-rgn.c, ssa-ccp.c, stmt.c, toplev.c: Fix spelling errors. - - * predict.c, reg-stack.c: Fix spelling errors. - -2001-10-09 Andrew Haley - - * calls.c (check_sibcall_argument_overlap): Use slot_offset for - start of stack slot. - -2001-11-22 Graham Stott - - * cfgrtl.c (try_redirect_by_replacing_jump): Fix typo, emit - replacement jump after original jump. - - (verify_flow_info): Remove redundent initialisation. - Handle reaching end of insn list before finding a BARRIER. - Only issue one missing barrier diagnostic. - -2001-11-22 Graham Stott - - * local-alloc.c (combine_regs): Handle SUBREG_REG being a MEM. - -Thu Nov 22 06:49:14 2001 Richard Kenner - - * config/i386/i386.md (leave, leave_rex64): Have RTL reflect what - insn actually does. - -2001-11-22 Nick Clifton - - * doc/invoke.texi (M32R/D Option Summary): Document -m32r switch. - Fix typo -mm32rx=> -m32rx. - - * config/arm/arm.c (arm_elf_asm_named_section): Only build for elf - targets. - - * config.gcc (xscale-coff): Add necessary header files to - tm_file variable. - -2001-11-20 Zack Weinberg - - * rs6000.c (output_cbranch): Use $, not %$, in output template. - -2001-11-21 Bryce McKinlay - - * tree-dump.c: Rename from c-dump.c. Include c-tree.h, not c-common.h. - (lang_type_quals): Declare. - (dequeue_and_dump): Use lang_hooks.tree_dump.type_quals function to - retrieve language-specific qualifiers for a type node, instead of - C_TYPE_QUALS. Likewise for lang_hooks.tree_dump.dump_tree instead of - lang_dump_tree. - * tree-dump.h: Rename from c-dump.h. - * c-common.h (C_TYPE_QUALS): Removed. - Move declarations for tree-dump.c interface to... - * tree.h: ... here. Remove lang_dump_tree. - * langhooks.h (struct lang_hooks_for_tree_dump): New. - (struct lang_hooks): Add tree_dump hooks. - * langhooks.c (lhd_tree_dump_dump_tree): New function. - (lhd_tree_dump_type_quals): New function. - * langhooks-def.h (lhd_tree_dump_dump_tree, lhd_tree_dump_type_quals): - Declare. - (LANG_HOOKS_INITIALIZER): Add tree_dump hooks. - * Makefile.in: Move tree-dump.o to language-independent back-end. - -2001-11-21 Kaveh R. Ghazi - - * 1750a.h (DBX_REGISTER_NUMBER): Don't define. - * alpha.h (DBX_REGISTER_NUMBER): Likewise. - * arc.h (DBX_REGISTER_NUMBER): Likewise. - * arm/aout.h (DBX_REGISTER_NUMBER): Likewise. - * avr.h (DBX_REGISTER_NUMBER): Likewise. - * c4x.h (DBX_REGISTER_NUMBER): Likewise. - * clipper.h (DBX_REGISTER_NUMBER): Likewise. - * convex.h (DBX_REGISTER_NUMBER): Likewise. - * cris.h (DBX_REGISTER_NUMBER): Likewise. - * dsp16xx.h (DBX_REGISTER_NUMBER): Likewise. - * elxsi.h (DBX_REGISTER_NUMBER): Likewise. - * fr30.h (DBX_REGISTER_NUMBER): Likewise. - * h8300.h (DBX_REGISTER_NUMBER): Likewise. - * i370.h (DBX_REGISTER_NUMBER): Likewise. - * i860.h (DBX_REGISTER_NUMBER): Likewise. - * i860/paragon.h (DBX_REGISTER_NUMBER): Likewise. - * i860/sysv3.h (DBX_REGISTER_NUMBER): Likewise. - * i860/sysv4.h (DBX_REGISTER_NUMBER): Likewise. - * m32r.h (DBX_REGISTER_NUMBER): Likewise. - * m68hc11.h (DBX_REGISTER_NUMBER): Likewise. - * m88k.h (DBX_REGISTER_NUMBER): Likewise. - * mcore/mcore-elf.h (DBX_REGISTER_NUMBER): Likewise. - * mcore.h (DBX_REGISTER_NUMBER): Likewise. - * mn10200.h (DBX_REGISTER_NUMBER): Likewise. - * mn10300.h (DBX_REGISTER_NUMBER): Likewise. - * pdp11.h (DBX_REGISTER_NUMBER): Likewise. - * romp.h (DBX_REGISTER_NUMBER): Likewise. - * rs6000.h (DBX_REGISTER_NUMBER): Likewise. - * rs6000/sysv4.h (DBX_REGISTER_NUMBER): Likewise. - * s390/linux.h (DBX_REGISTER_NUMBER): Likewise. - * stormy16.h (DBX_REGISTER_NUMBER): Likewise. - * v850.h (DBX_REGISTER_NUMBER): Likewise. - * vax.h (DBX_REGISTER_NUMBER): Likewise. - * we32k.h (DBX_REGISTER_NUMBER): Likewise. - - * defaults.h (DBX_REGISTER_NUMBER): Provide a default. - * doc/tm.texi (DBX_REGISTER_NUMBER): Update. - -2001-11-21 H.J. Lu - - * config/rs6000/sysv4.h (LIB_SPEC): Fix a typo. - -2001-11-21 Kaveh R. Ghazi - - * s390.c (s390_va_arg): Eliminate ALIGN parameter in call to - emit_cmp_and_jump_insns. - - * stormy16.c (xstormy16_expand_builtin_va_arg, - xstormy16_expand_casesi): Likewise. - -Wed Nov 21 17:37:16 2001 Richard Kenner - - * function.c (keep_stack_depressed): Major rework. - (handle_epilogue_set, emit_equiv_load): New functions. - (thread_prologue_and_epilogue_insns): keep_stack_depressed now - has return value. - * jump.c (returnjump_p_1): Also return 1 if SET with SET_IS_RETURN_P. - * rtl.h (SET_IS_RETURN_P): New macro. - - * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Refine slightly - and also support TREE_ADDRESSABLE. - * tree.def (VIEW_CONVERT_EXPR): Document TREE_ADDRESSABLE. - -2001-11-21 David Edelsohn - - * rs6000.md (cmptf_internal1): Replace %$ with $. - -Wed Nov 21 16:44:01 2001 Douglas B. Rupp - - * cppfiles.c (STAT_SIZE_TOO_BIG): Define. - (read_include_file): Use STAT_SIZE_TOO_BIG. - - * cppinit.c (INO_T_COPY): Define. - (INO_T_EQ): Uppercase parameters. - (append_include_chain): Use INO_T_COPY. - -2001-11-21 Richard Sandiford - - * cfg.c: Fix typos and formatting in the introductory comment. - -Wed Nov 21 12:38:37 CET 2001 Jan Hubicka - - * profile.c (compute_branch_probabilites): Compute probabilities - for entry/exit edges; estimate probabilities for zero counts. - -2001-11-21 Jakub Jelinek - - * explow.c (probe_stack_range): Use LCT_NORMAL as second argument - to emit_library_call. - * function.c (expand_main_function, expand_function_start, - expand_function_end): Likewise. - * profile.c (output_func_start_profiler): Likewise. - * stmt.c (expand_nl_goto_receivers): Use LCT_NORETURN as - second argument to emit_library_call. - * optabs.c (prepare_cmp_insn): Use LCT_CONST_MAKE_BLOCK - as second argument to emit_library_call. - * calls.c (emit_library_call): Update fn_type description. - -2001-11-21 Jakub Jelinek - - * c-decl.c (c_expand_deferred_function): Only call c_expand_body - if fndecl is still DECL_INLINE and has DECL_RESULT. - -2001-11-20 Kaveh R. Ghazi - - * clipper.c (clipper_movstr): Avoid uninitialized warning. - * i960.c (is_mask, legitimize_address): Likewise. - * m88k.c (m88k_expand_prologue): Likewise. - * m88k.md: Likewise. - * mcore.c (emit_new_cond_insn): Likewise. - * stormy16.c (xstormy16_emit_cbranch): Likewise. - -2001-11-20 Zack Weinberg - - * config.gcc: Delete powerpcle-*-solaris2* stanza. - * config/rs6000/eabi.asm, config/rs6000/rs6000.c, - config/rs6000/rs6000.h, config/rs6000/rs6000.md, - config/rs6000/sol-ci.asm, config/rs6000/sol-cn.asm, - config/rs6000/sysv4.h, config/rs6000/t-ppccomm, - config/rs6000/t-ppcos: Expunge all references to Solaris. - - * config/rs6000/sol-c0.c, config/rs6000/sol2.h: Delete. - - * config/rs6000/rs6000.md: Replace '%$' with '$' in all - output templates. - * config/rs6000/rs6000.h: Define DEFAULT_PCC_STRUCT_RETURN to 0, - and change RETURN_IN_MEMORY to just check AGGREGATE_TYPE_P. - -2001-11-20 Kaveh R. Ghazi - - * sh.md: Avoid uninitialized warnings. - * vax.c (vax_rtx_cost): Likewise. - -2001-11-15 Aldy Hernandez - - * rs6000.c (direct_return): Check if we are saving altivec - registers. - (first_altivec_reg_to_save): New. - Updated stack frame layout comments. - (rs6000_stack_info): Calculate altivec register save size. - Save link register if we saved some altivec registers. - (rs6000_stack_info): Align save size to 16 if altivec abi or - abi_darwin. - (rs6000_stack_info): Calculate altivec register offsets. - (rs6000_stack_info): Add altivec info to save_size. - (debug_stack_info): Add altivec debug info. - (rs6000_emit_prologue): Save altivec registers and vrsave. - (compute_vrsave_mask): New. - (altivec_expand_builtin): Remove unused variables. - (rs6000_parse_abi_options): Add static qualifier. - (rs6000_expand_builtin): Remove unused parameters. - (altivec_expand_builtin): Cast bdesc_2arg to get rid of warning. - (altivec_init_builtins): Same. - (is_altivec_return_reg): New. - (vrsave_operation): New. - (ALTIVEC_REG_BIT): New. - (generate_set_vrsave): New. - - * rs6000.md (get_vrsave): New. - (set_vrsave): New. - (*set_vrsave_internal): New. - - * rs6000.h (rs6000_stack): Add first_altivec_reg_save, - altivec_save_offset, vrsave_save_offset, altive_size, vrsave_size, - altivec_padding_size, vrsave_mask. - (TOTAL_ALTIVEC_REGS): New. - (EPILOGUE_USES): Add VRSAVE_REGNO. - -2001-11-20 Jeff Law - - * unroll.c (copy_loop_body): Update LABEL_NUSES for the - exit label as necessary. - -2001-11-20 Brad Kaiser - - * reload1.c (elimination_effects): Use function_invariant_p - instead of CONSTANT_P when considering register equivalences. - -2001-11-20 David O'Brien - - * config.gcc: Add FreeBSD/PowerPC target. - (powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*, - powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*, - powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*, - powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*, - powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*, - powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*): Add - freebsd-spec.h to tm_file. - (rs6000-*-lynxos*): Add lynx.h to tm_file. - * config/freebsd.h: Tidy up. - (USING_CONFIG_FREEBSD): Define. - (FBSD_SWITCH_TAKES_ARG, FBSD_WORD_SWITCH_TAKES_ARG, - FBSD_CPP_PREDEFINES, FBSD_CPP_SPEC, FBSD_STARTFILE_SPEC, - FBSD_ENDFILE_SPEC, FBSD_LIB_SPEC): Remove (moved to freebsd-spec.h). - (TARGET_HAS_F_SETLKW): Define. - (ASM_OUTPUT_IDENT): Delete, the elfos.h definition is fine. - * config/freebsd-spec.h: New file. - * config/rs6000/freebsd.h: New file. - * config/rs6000/rs6000.h (TARGET_VERSION): Do not define. - * config/rs6000/rs6000.c: Test for USING_ELFOS_H rather than - USING_SVR4_H to know when to turn on ELF support. - * config/rs6000/sysv4.h (TARGET_VERSION, CPP_PREDEFINES): Don't undef, - define only if not already defined. - Add FreeBSD support. - * config/rs6000/aix.h (TARGET_VERSION): Define. - * config/rs6000/beos.h: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/mach.h: Likewise. - * config/rs6000/lynx.h (TARGET_VERSION): Likewise. - Don't include lynx.h directly. - -2001-11-20 Graham Stott - - * unwind-dw2-fde.c (__deregister_frame_info_bases): - Fix lossage in last change return OB. - -Tue Nov 20 11:56:12 2001 Douglas B. Rupp - - * config/alpha/xm-vms.h (_POSIX_EXIT): Define. - Remove unneeded exit related macros. - -2001-11-20 David Edelsohn - - * rs6000.c (rs6000_emit_eh_toc_restore): Remove ALIGN parm. - - * rs6000.c (rs6000_emit_move): Add TFmode case. - * sysv4.h (MASK_LONG_DOUBLE_128, TARGET_LONG_DOUBLE_128, - LONG_DOUBLE_TYPE_SIZE, MAX_LONG_DOUBLE_TYPE_SIZE, - LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Move from here... - * rs6000.h: ... to here. - * rs6000.md (movtf, extenddftf2, extendsftf2, trunctfdf2, - trunctfsf2, floatditf2, floatsitf2, fix_trunctfdi2, - fix_trunctfsi2, negtf2, abstf2, nabstf2, cmptf): New patterns. - -Tue Nov 20 06:41:38 2001 Richard Kenner - - * emit-rtl.c (get_mem_attrs): Fix typo. - -2001-11-20 Jakub Jelinek - - * c-lang.c (finish_file): Backout 2001-11-16 - changes, instead set DECL_DEFER_OUTPUT for static inline functions - before calling c_expand_deferred_function. - -2001-11-20 Jakub Jelinek - - * unwind-dw2-fde.c (__register_frame_info_bases, __register_frame): - Don't register empty .eh_frame sections. - (__deregister_frame_info_bases, __deregister_frame): Don't - unregister them either. - -2001-11-19 Geoffrey Keating - - * configure.in (HAVE_AS_GDWARF2_DEBUG_FLAG): Define. - (HAVE_AS_GSTABS_DEBUG_FLAG): Define. - * configure: Regenerate. - * config.in: Add dummy definitions of new flags. - * toplev.c (PREFERRED_DEBUGGING_TYPE): Move definition to... - * defaults.h (PREFERRED_DEBUGGING_TYPE): ... here. - * gcc.c (ASM_DEBUG_SPEC): New macro. - (asm_debug): New static variable. - (default_compilers): Add asm_debug when assembling from - user input. - (static_specs): Add asm_debug. - -2001-11-20 Loren J. Rittle - - * config.gcc (*-*-freebsd*): Remove configuration block. - -2001-11-19 Loren J. Rittle - - bootstrap/4422 - * configure.in: Setup ability to run ./stage[1234]/xgcc in - fixinc *as if* it were a proper lang subdirectory. - * configure: Rebuilt. - -2001-11-19 Loren J. Rittle - - * config/freebsd.h: Remove DEFAULT_VTABLE_THUNKS (again). - -2001-11-19 Kaveh R. Ghazi - - * 1750a.md: Don't use hex format for a const_int. - -2001-11-19 Geoffrey Keating - - * expmed.c (extract_bit_field): Don't create invalid SUBREGs. - -2001-11-19 Zack Weinberg - - * mkconfig.sh: Undefine ENABLE_NLS if GENERATOR_FILE is - defined (prevents link errors when gettext isn't in the system - library). - -2001-11-19 DJ Delorie - - * read-rtl.c (ISDIGIT, ISSPACE): Make sure we have these. - (validate_const_int): New. - (read_rtx): Validate constant integers. - * config/i386/i386.md (pmulhrwv4hi3): Use decimal constants. - -2001-11-19 Jakub Jelinek - - * doc/hostconfig.texi (DUMPFILE_FORMAT): Move into the table. - -Mon Nov 19 16:57:44 2001 Douglas B. Rupp - - * toplev.c (DUMPFILE_FORMAT): Define default. - (open_dump_file): Use DUMPFILE_FORMAT in sprintf. - (close_dump_file, compile_file): Likewise. - * config/alpha/xm-vms.h (DUMPFILE_FORMAT): Define. - * doc/hostconfig.texi (DUMPFILE_FORMAT): Document - -2001-11-19 Jeff Law - - * gcse.c (cprop_jump): Clear JUMP_LABEL field when we create - a nop-jump. - -2000-11-19 Neil Booth - - * cppmacro.c (_cpp_backup_tokens): Revert previous check-in. - Don't fall off the base token run. - -2001-11-19 Jason Wilkins - - * Makefile.in: Use INSTALL_SCRIPT not INSTALL_PROGRAM. - -Mon Nov 19 15:13:43 2001 Richard Kenner - - * tree.def (VIEW_CONVERT_EXPR): New tree code. - * tree.h (handled_component_p): New declaration. - * alias.c (handled_component_p): Move function from here ... - * expr.c (handled_component_p): ... to here and non longer static. - (is_zeros_p, case VIEW_CONVERT_EXPR): New case. - (store_field): Remove unneeded MEM_COPY_ATTRIBUTES call. - (get_inner_reference): Handle VIEW_CONVERT_EXPR. - (expand_expr, case VAR_DECL): Clean up handling of re-layout case. - (expand_expr, case VIEW_CONVERT_EXPR): New case. - (expand_expr, cse ADDR_EXPR): No need to copy if already - BIGGEST_ALIGNMENT. - * fold-const.c (fold, case VIEW_CONVERT_EXPR): New case. - * varasm.c (initializer_constant_value_p, case VIEW_CONVERT_EXPR): New. - (output_constant): Handle VIEW_CONVERT_EXPR. - * dwarf2out.c (loc-descriptor_from_tree, add_bound_info): - Add new case for VIEW_CONVERT_EXPR. - -2001-11-19 Kaveh R. Ghazi - - * a29k/unix.h (ASM_FILE_START): Const-ify. - * i386/beos-elf.h (INCLUDE_DEFAULTS): Remove semi-colon. - * i386/isc.h (ASM_FILE_START): Const-ify. - * i386/sun386.h (ASM_FILE_START): Likewise. - * m32r.md: Likewise. - * m68k/auxas.h (ADDITIONAL_REGISTER_NAMES): Add missing brackets. - * m68k/auxgas.h ADDITIONAL_REGISTER_NAMES): Likewise. - * m68k/tower.h (REGISTER_NAMES): Remove semi-colon. - * mn10200.md: Initialize variable. - -Mon Nov 19 18:06:21 CET 2001 Jan Hubicka - - * gcse.c (try_replace_reg): Copy RTX before creating note. - - * df.h (df_ref_flags): New uenum. - (DF_REF_FLAGS): New macro. - (struct ref): Add field "flags". - * df.c (HANDLE_SUBREG): Remove. - (df_ref_create): Likewise; set flags field of ref. - (df_def_record_1): Strip down read_write subreg; remove - commented out code; set READ_WRITE flag. - (read_modify_subreg_p): New static function. - (df_uses_record): Cleanup SET handling; set READ_WRITE flag; - new argument "flags". - (df_insn_refs_record): Update call of df_uses_record. - (df_insn_modify): Avoid #if 0 around comment. - (df_dump): Dump the read/write flag. - - * predict.c (propagate_freq): Make cyclic_probability and frequency - volatile - - * i386.c (ix86_cc_mode): Accept USE. - - * cfgrtl.c (purge_dead_edges): Cleanup EDGE_ABNORMAL flag if computed - jump is turned into simplejump. - -2001-11-19 Joseph S. Myers - - * doc/fragments.texi, doc/trouble.texi: Remove links to old - installation chapter. - * doc/gcc.texi: Don't claim that this manual documents - installation. Mark Installation menu entry as being out of date. - -Mon Nov 19 07:21:35 2001 Douglas B. Rupp - - * config/alpha/xm-vms.h: Don't define macros that autoconf handles. - (SUCCESS_EXIT_CODE, FATAL_EXIT_CODE): Define for posix compatibility. - * gcc.c (exit): Remove definition for VMS; moved to xm-vms.h. - -2001-11-19 Jason Merrill - - * cppmacro.c (_cpp_backup_tokens): Pop cur_run before decrementing - cur_token, not after. - - * config/clipper/clix.h, config/h8300/elf.h, config/mips/linux.h: - Lose ASM_OUTPUT_CONSTRUCTOR. - * system.h: Poison it and INT_ASM_OP. - * c-lang.c (finish_file): Don't check for it. - * libgcc2.c (L_ctors): Check TARGET_ASM_CONSTRUCTOR instead. - -2001-11-18 Kaveh R. Ghazi - - * mmix.c (mmix_cc1_ignored_option): Const-ify. - (mmix_init_machine_status): Make static to match declaration. - (mmix_unique_section): Const-ify. - (mmix_output_quoted_string): Avoid automatic aggregate - initialization. - (mmix_output_register_setting): Likewise. - (mmix_output_shiftvalue_op_from_str): Likewise. - - * mmix.h (mmix_cc1_ignored_option): Const-ify. - (ASM_OUTPUT_BYTE): Fix format specifier warning. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - -2001-11-18 Craig Rodrigues - - PR c/4448 - * gthr-win32.h: (__gthread_objc_thread_exit): Fix variable - name __objc_thread_exit_status so that it matches the - variable defined in objc/thr.h. - -2001-11-18 Craig Rodrigues - - PR bootstrap/4020 - * mklibgcc.in: Add missing semi-colons. - * Makefile.in: Same. - -Sun Nov 18 16:47:00 2001 Richard Kenner - - * expr.c (expand_expr, case VAR_DECL): Update alignment of DECL_RTL - after re-laying out decl in incomplete case. - (expand_expr, case ADDR_EXPR): Fix typo in copy case. - -2001-11-18 Joseph S. Myers - - * doc/install-old.texi: Move some sections out to ... - * doc/collect2.texi, doc/configfiles.texi, doc/headerdirs.texi: - ... here. New files. Make into chapters rather than sections. - * doc/gcc.texi: Include the new files and add menu entries for - them. - * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. - -Sun Nov 18 14:13:52 2001 Richard Kenner - - * tree.h (TYPE_ALIGN_OK): New flag. - * emit-rtl.c (set_mem_attributes): Handle it. - * expr.c (emit_single_push_insn): Only set to alias set 0 if - doing sibcall optimization. - (expand_expr, case COMPONENT_REF): Call set_mem_attributes on case - when make temporary. - (expand_expr, case CONVERT_EXPR): Simplify convert-to-union case. - (expand_expr, case ADDR_EXPR): Abort if TYPE_ALIGN_OK and need copy. - - * sdbout.c (sdbout_symbol): Avoid warning due to &DECL_RTL. - -2001-11-18 Joseph S. Myers - - * c-decl.c (c_decode_option): Give deprecation warning for - -traditional. - * doc/invoke.texi (-traditional): Note that this option is - deprecated. - -Sun Nov 18 07:40:07 2001 Douglas B. Rupp - - * config/alpha/alpha.c (alpha_start_function, VMS): Cast shift - arg to HOST_WIDE_INT, not long. - - * config/alpha/vms.h (DIR_SEPARATOR, PREFIX). Don't define. - (HAS_INIT_SECTION): Define. - (REAL_ARITHMETIC): Don't undefine. - -2001-11-18 Egor Duda - - * config/i386/cygwin.h: Strip leading '*' from name, if any. - -2001-11-18 Neil Booth - - * Makefile.in (c-parse.o, c-common.o): Update dependencies. - * c-common.c: Include diagnostic.h. - (c_common_finish): New. - * c-common.h (c_common_finish): New. - * c-lang.c (LANG_HOOKS_FINISH): Override. - * c-parse.in: Don't include diagnostic.h. - (finish_parse): Remove. - * langhooks.h: Update comments. - * toplev.c (lang_dependent_init): New prototype. - (finalize): New. - (compile_file): Split cleanup code out to finalize. - (lang_dependent_init): Stop if lang_hooks.init fails. - (toplev_main): Update. - * tree.h (finish_parse): Remove. -objc: - * objc-act.c (LANG_HOOKS_FINISH): Override. - -Sat Nov 17 23:30:44 2001 Douglas B. Rupp - - * config/alpha/t-vms (LIB2FUNCS_EXTRA): Add vms_tramp.asm. - * config/alpha/vms_tramp.asm: New file. - * config/alpha/vms-tramp.asm: Removed. - -2001-11-18 Joseph S. Myers - - * c-common.c (struct disabled_builtin, disabled_builtins, - disable_builtin_function, builtin_function_disabled_p): New. - (builtin_function_2): Check for disabled built-in functions. - * c-common.h (disable_builtin_function): Declare. - * c-decl.c (c_decode_option): Handle -fno-builtin-FUNCTION. - * doc/invoke.texi: Document -fno-builtin-FUNCTION. - * doc/extend.texi: Mention -fno-builtin-FUNCTION. - -2001-11-17 Craig Rodrigues - - PR target/4606 - * config.gcc: Remove reference to va-clipper.h. - -2001-11-17 Stan Shebs - - * config/rs6000/rs6000.h (REG_CLASS_CONTENTS): Fix the - AltiVec-related bitfields. - -Sat Nov 17 12:06:31 2001 Richard Kenner - - * except.c (enum eh_region_type): Add ERT_UNKNOWN. - (mark_eh_region, case ERT_UKNONW): New case. - -2001-11-17 Christopher Faylor - Corinna Vinschen - - * config/i386/cygwin.h: Search target specific include directory for - w32api stuff, if appropriate. - -Sat Nov 17 08:20:44 2001 Douglas Rupp - - * config/alpha/vms.h (REG_ALLOC_ORDER): Redefine. - -2001-11-16 Aldy Hernandez - - * config/rs6000/rs6000.md: Change all ldvx to lvx. - -2001-11-16 Alexandre Oliva - - * gensupport.c (process_rtx): Don't assume filename is the first - argument of any rtl. - -2001-11-16 John David Anglin - - * vax-protos.h (reg_was_0_p): New prototype. - * vax.md (movsi, movhi, movqi): Use reg_was_0_p. - * vax.c (follows_p, reg_was_0_p): New functions. - -2001-11-16 John David Anglin - - * vax.md (casesi): Swap arguments in "(plus:SI (pc) (mult))". Reformat. - (casesi1): Likewise. Define new pattern which arises by simplification - when operand 1 is a constant int. Correct pattern which arises by - simplification when operand 1 is zero. - -2001-11-16 David O'Brien - - * config.gcc (arm*-*-rtems*, arm-*-coff*, armel-*-coff*, - arm-*-vxworks*, arm-*-riscix1.[01]*, arm-*-riscix*, - arm-semi-aout, armel-semi-aout, arm-semi-aof, armel-semi-aof, - arm*-*-netbsd*, arm*-*-linux*, arm*-*-uclinux*, arm*-*-aout, - arm*-*-ecos-elf, arm*-*-elf, arm*-*-conix*, arm*-*-oabi, - arm-*-pe*, strongarm-*-elf*, strongarm-*-coff*, strongarm-*-pe, - xscale-*-elf, xscale-*-coff: Include various CPU headers via tm_file. - * config/arm/aof.h: Don't include arm.h. - * config/arm/aout.h: Likewise. - * config/arm/coff.h: Don't include semi.h and aout.h. - * config/arm/elf.h: Don't include aout.h. - * config/arm/netbsd.h: Don't include netbsd.h and aout.h. - (TARGET_VERSION): Undef before defining. - (ARM_OS_NAME): Likewise - (TARGET_DEFAULT): Likewise - (TARGET_MEM_FUNCTIONS): Do not need to undefine now. - * config/arm/pe.h: Don't include arm/coff.h. - * config/arm/riscix.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Use - SUBTARGET_CPP_SPEC rather than overiding the arm.h CPP_SPEC definition. - * config/arm/riscix1-1.h: Likewise. - * config/arm/rix-gas.h: Don't include riscix.h. - (DBX_CONTIN_LENGTH): Undef before defining. - * config/arm/semi.h: Don't include aout.h. - * config/arm/semiaof.h: Don't include aof.h. - * config/arm/strongarm-coff.h: Don't include coff.h. - * config/arm/strongarm-pe.h: Don't include strongarm-coff.h and pe.h. - * config/arm/vxarm.h: Don't include arm/coff.h. - * config/arm/xscale-coff.h: Don't include coff.h. - -Fri Nov 16 15:22:35 2001 Richard Kenner - - * config/pa/pa.c: Reflect changes in calling sequences of alter_reg and - emit_cmp_insn. - -2001-11-16 Andreas Jaeger - - * cfglayout.c (fixup_fallthru_exit_predecesor): Make void, rename - to .... - (fixup_fallthru_exit_predecessor): ... this. - Change callers and prototype. - -2001-11-16 Bernd Schmidt - - * config/i386/i386.c (ix86_expand_sse_comi): Generate setcc by - hand; don't use gen_setcc_2. - (ix86_expand_builtin): Fix pshufw. - * config/i386/i386.md (maskncmpv4sf3, vmmmaskncmpv4sf3): Special - case UNORDERED to emit the right assembler instruction. - (mmx_pshufw): Lose operand 2. - (cvtsi2ss): Fix representation. - From Graham Stott: - (mmx_clrdi, sse_clrti, stmxcsr, ldmxcsr): Set memory attribute. - -2001-11-16 Joseph S. Myers - - * doc/include/linux-and-gnu.texi: Remove. - * doc/gnu.texi: New. - * doc/gcc.texi: Include gnu.texi instead of linux-and-gnu.texi. - * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. - -2001-11-16 Kazu Hirata - - * config/a29k/a29k.c: Fix comment formatting. - * config/a29k/a29k.h: Likewise. - * config/arc/arc.c: Likewise. - * config/arc/arc.h: Likewise. - * config/vax/vax.c: Likewise. - * config/vax/vax.h: Likewise. - * config/we32k/we32k.c: Likewise. - * config/we32k/we32k.h: Likewise. - -2001-11-16 Jeff Law - - * unroll.c (copy_loop_body): Initialize JUMP_LABEL field after - creating a new jump insn. - -Fri Nov 13 09:06:25 2001 Richard Kenner - - * expr.c (expand_expr, case ADDR_EXPR): Refine test for when to - copy misaligned data. - * varasm.c (assemble_variable): Set alignment into MEM when changed. - -2001-11-16 Graham Stott - - * optabs.c (prepare_cmp_insn): Correct lossage in last change fix - OPALIGN type. - -2001-11-16 Olivier Hainque - - * except.c: Support for catching a list of types with a single handler - (struct eh_region): Change type and filter to lists for catch regions. - (mark_eh_region): Mark the filter list for GC also. - (expand_start_catch): Always build a list if argument not NULL and - register each type of the list through add_type_for_runtime. - (duplicate_eh_region_1): Change type into type_list for catch regions. - (assign_filter_values): Assign a filter to each type associated with a - catch region. Assign filter for NULL types in a unique entry in the - filter list. - (build_post_landing_pads): Emit compare and jump for each filter of - the list associated with a catch region. - (reachable_next_level): When the type thrown is known, stop the search - as soon as one type within a catch list matches. Also, a handler is - potentially reachable only if at least one of the types it catches - has not been previously caught. - (collect_one_action_chain): Retrieve the filter for a NULL type list - from the first filter list entry. For non NULL type lists, add an - action record for every filter assigned. - * except.h: Reflect changes in comment before expand_start_catch. - -Fri Nov 16 07:12:51 2001 Richard Kenner - - * expr.c (expand_expr, case ADDR_EXPR): Only copy for misaligned if - BLKmode. - -Fri Nov 16 06:37:05 2001 Andreas Tobler - - * config/sparc/sparc.c: Remove ALIGN arg from emit_cmp_insn. - -2001-11-16 Jakub Jelinek - - * c-lang.c (finish_file): Don't emit static inline functions if - they weren't referenced. - -2001-11-15 Stan Shebs - - * expr.c (expand_expr, case COMPONENT_REF): Fix variable ref. - -2001-11-16 Bryce McKinlay - - * config/s390/s390.md: Remove ALIGN arg from emit_cmp_and_jump_insns - call. - * config/i386/i386.md: Likewise. - -Thu Nov 15 21:40:16 2001 Richard Kenner - - * timevar.c (rtl.h): Include so get fancy abort. - -2001-11-15 Dale Johannesen - - * config/darwin.h (SELECT_RTX_SECTION): Force address - initializers into 'const' section - * config/rs6000/rs6000.c (rs6000_emit_cmove): Fix mode of - if_then_else to match result, not operands - -Thu Nov 15 17:57:48 2001 Richard Kenner - - * alias.c (nonoverlapping_memrefs): Use REGNO_PTR_FRAME_P. - * emit-rtl.c (change_address): Fix typo in default alignment. - (adjust_address_1): Use mode of NEW, not MODE, when setting size. - * expr.c (highest_pow2_factor, case WITH_RECORD_EXPR): New case. - * rtl.h (REGNO_PTR_FRAME_P): New macro. - - * expr.c (store_field): Pass tree instead of max size; callers changed. - Change handling of alignment. - Only copy to_rtx if is TARGET. - (expand_expr_unaligned): Delete; callers now use expand_expr. - (emit_cmp_insn): No longer take ALIGN parm; all callers changed. - (expand_assignment): Change handling of alignment. - Only copy to_rtx if was original. - (get_inner_reference): No longer return alginment; callers changed. - (expand_expr, case COMPONENT_REF): Change handling of alignment. - (expand_expr, case ADDR_EXPR): Make copy if not sufficiently aligned. - (compare_from_rtx): Delete ALIGN parm; all callers changed. - (do_compare_rtx_and_jump): Likewise. - * expr.h: Reflect above changes. - * tree.h: Likewise. - * dwarf2out.c (loc_descriptor_from_tree): Remove ALIGN parameter - to get_inner_reference. - * builtins.c: Remove ALIGN parm in call to emit_cmp_and_jump_insns. - * doloop.c, except.c, explow.c, loop.c, stmt.c, unroll.c: Likewise. - * optabs.c: Likewise. - (prepare_cmp_insn): Now static; remove ALIGN parm. Callers changed. - (emit_cmp_and_jump_insns): Remove ALIGN parm; all callers changed. - * expmed.c: Remove ALIGN arg from calls to compare_from_rtx, - compare_rtx_and_jump, and emit_cmp_jump_insns. - * fold-const.c: Remove PALIGN in calls to get_inner_reference. - * function.c (assign_stack_temp_for_type): No longer static. - * optabs.h (emit_cmp_insn): Remove ALIGN parm. - (prepare_cmp_insn): Delete declaration. - * rtl.h (assign_stack_temp_for_type): Add declaration. - * config/alpha/alpha.c, config/d30v/d30v.c: Reflect above changes. - * config/clipper/clipper.c, config/h8300/h8300.c: Likewise. - * config/i386/i386.c,config/mips/mips.c: Likewise. - * config/i860/i860.c, config/ia64/ia64.c: Likewise. - * config/rs6000/rs6000.c, config/sh/sh.c: Likewise. - -2001-11-15 Stan Shebs - - * config/rs6000/rs6000.h: Fix a comment typo. - (RTX_COSTS): Sort processor versions better. - -2001-11-15 Kazu Hirata - - * config/h8300/h8300.md: Fix insn length of bit insns. - -2001-11-15 Jason Merrill - - * dwarf2out.c (dwarf2out_finish): Don't abort because of orphan - DIEs if there were errors in the source. - - * config/alpha/alpha-interix.h, config/alpha/elf.h, - config/arm/coff.h, config/i386/djgpp.h, config/i386/i386.c, - config/i386/i386.h, config/i386/sco5.h, config/i960/i960-coff.h, - config/m68k/coff.h, config/m88k/m88k.h, config/m88k/m88k.c, - config/pa/pa64-hpux.h, config/sh/sh.h, config/sparc/litecoff.h, - config/elfos.h, config/lynx.h, config/netware.h, - config/m68hc11/m68hc11.h, config/mcore/mcore-pe.h, - config/s390/linux64.h: Remove definitions of INT_ASM_OP, change - uses to use ASM_LONG. - -2001-11-15 Alan Matsuoka - - * gensupport.c process_include : Change call to alloca to - xmalloc. - -2001-11-15 Aldy Hernandez - - * config/rs6000/rs6000.md: Use spaces instead of tabs in output - templates. - -Thu Nov 15 08:36:39 2001 Richard Kenner - - * final.c (alter_subreg): If simplify_subreg can't do anything, - handle REG ourselves and abort for others. - -2001-11-15 Richard Hodson - - * config/h8300/h8300.c (dosize): Avoid corrupting R3 in interrupt - routines. - -2001-11-15 Neil Booth - - * fix-header.c (read_scan_file): Update. - -Thu Nov 15 08:36:39 2001 Richard Kenner - - * toplev.c (toplev_main): Don't start timing until after - command-line options are parsed. - -2001-11-15 Andreas Schwab - - * config.gcc: Set STMP_FIXPROTO and FIXPROTO_DEFINES in target - makefile frag, not host makefile frag. - (m88k-dg-dguxbcs*): Add m88k/t-dgux to tmake_file. - (hppa*): Add pa/t-bsd to tmake_file where no special xmake_file is - used. - (hppa*-*-openbsd*): Don't use nonexitent pa/t-openbsd. - * config/m88k/t-dguxbcs: Remove definitions already in t-dgux. - * config/m88k/t-dgux (STMP_FIXPROTO): Define. - * config/i386/t-cygwin (STMP_FIXPROTO): Define. - * config/i386/t-dgux (STMP_FIXPROTO): Define. - * config/x-interix: Don't define STMP_FIXPROTO and - FIXPROTO_DEFINES. - * config/t-interix: New file, define STMP_FIXPROTO. - * config/i386/x-beos (STMP_FIXPROTO): Don't define here. - * config/i386/t-beos (STMP_FIXPROTO): Define here instead. - * config/t-svr4 (FIXPROTO_DEFINES): Define. - * config/arm/t-riscix (FIXPROTO_DEFINES): Define. - * config/i386/t-sco5 (FIXPROTO_DEFINES): Define. - * config/i386/t-sco5gas (FIXPROTO_DEFINES): Define. - * config/m68k/t-hp3200: Renamed from x-hp3200. - * config/i370/t-oe: Renamed from x-oe. - * config/mips/t-iris: Renamed from x-iris. - * config/pa/t-bsd: Renamed from x-pa. - * config/pa/t-pa-hpux: Renamed from x-pa-hpux. - * config/x-linux, config/i386/x-cygwin, config/i386/x-dgux, - config/m88k/x-dgux, config/x-svr4, config/arm/x-riscix, - config/i386/x-sco5, config/m68k/x-hp320g, config/mips/x-iris6, - config/rs6000/x-cygwin: Remove files. - - * configure.in: Check for target objdump and use that in eh_frame - optimization test. - * configure: Regenerated. - -2001-11-15 Jakub Jelinek - - * jump.c (squeeze_notes): Return true if no real insns were found. - * rtl.h (squeeze_notes): Adjust prototype. - * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): If - squeeze_notes finds no real instructions, abort. - (merge_blocks_move_successor_nojumps): Likewise. - * loop.c (find_and_verify_loops): Likewise. - * stmt.c (expand_end_case): Likewise. - * ifcvt.c (dead_or_predicable): Return TRUE if squeeze_notes doesn't - find any real instructions. - - * config/ia64/ia64.c (ia64_adjust_cost): Handle SUBREGs. - - * cfgcleanup.c (try_optimize_cfg): If try_simplify_condjump optimized - conditional jump, request updating life into for the block - containing it. Fix a typo which prevented life info update. - Clear blocks bitmap before using it. - -2001-11-15 Neil Booth - - * c-common.c: Include c-lex.h. - (c_common_lang_init): Change prototype. Call init_c_lex and - init_pragma from here. - * c-common.h (c_common_lang_init): Change prototype. - * c-decl.c (init_decl_processing): Rename. Call c_parse_init. - * c-lang.c (c_init): Change prototype. Update. - (c_init_options): Update. - * c-lex.c (cpp_filename): Remove. - (init_c_lex): Update. Read the main file, and get the original - file name. - (yyparse): Finish the command line options. - * c-parse.in (c_parse_init): Call init_reswords here. - (init_parse): Remove. - * c-tree.h (c_init_decl_processing): New. - * cpphash.c (_cpp_init_hashtable): After initializing the hash - table, populate it. - * cppinit.c (read_original_filename, cpp_finish_options): New. - (cpp_create_reader): New prototype. Defer hash table initialization. - (cpp_start_read): Rename cpp_read_main_file. Initialize the - hash table. Get the original filename. - * cpplib.h (cpp_create_reader): Update. - (cpp_start_read): Remove. - (cpp_read_main_file, cpp_finish_options): New. - * cppmain.c (main, do_preprocessing): Update. - * langhooks.h (struct langhooks): Update init prototype. - * toplev.c (general_init, parse_options_and_default_flags, - process_options, lang_indpendent_init, lang_dependent_init, - init_asm_output): New; perform the bulk of initialization. - (compile_file): Move most of initialization to above functions. - (debug_hooks): Initialize statically. - (set_Wunused): Relocate. - (toplev_main): Move most of initialization to other init functions. - Have a clear logic flow. - * tree.h (init_parse, init_decl_processing): Remove. -objc: - * objc-act.c (objc_init): Update prototype, combine with old - init_parse. - (objc_init_options): Update. - - -2001-11-15 Andreas Jaeger - - * cfgrtl.c (purge_all_dead_edges): Use int as argument for - portability. - * basic-block.h: Adjust prototype. - -2001-11-15 Kazu Hirata - - * config/rs6000/aix31.h: Fix comment formatting. - * config/rs6000/beos.h: Likewise. - * config/rs6000/darwin.h: Likewise. - * config/rs6000/eabi.asm: Likewise. - * config/rs6000/linux.h: Likewise. - * config/rs6000/linux64.h: Likewise. - * config/rs6000/lynx.h: Likewise. - * config/rs6000/netbsd.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/rs6000/sol2.h: Likewise. - * config/rs6000/tramp.asm: Likewise. - * config/rs6000/xcoff.h: Likewise. - * config/rs6000/xm-beos.h: Likewise. - -2001-11-14 Alan Matsuoka - - * rtl.def (INCLUDE) : Define. - * gensupport.c (init_include_reader, process_include, - save_string) : New functions to implement an include facility - in .md files. - * gensupport.h : Add prototype for init_md_reader_args. - * genattr.c genattrtab.c gencodes.c genconfig.c genemit.c - genextract.c genflags.c genopinit.c genoutput.c - genpeep.c genrecog.c: Change call to init_md_reader to - init_md_reader_args. - * md.texi: Document (include "path") and -I directives for RTL - generation tools. - -2001-11-14 DJ Delorie - - * integrate.c (get_hard_reg_initial_reg): New. - * integrate.h (get_hard_reg_initial_reg): Prototype. - * local-alloc.c (block_alloc): Don't tie pseudos that - represent call-saved hard regs' initial values. - -2001-11-14 Kaveh R. Ghazi - - * m68k/linux.h: Include not "linux.h" to avoid infinite - recursion. - -2001-11-14 Roger Sayle - - * fold-const.c (fold): Optimize strlen comparisons against zero. - -2001-11-14 David O'Brien - - * config.gcc (sparc64-wrs-vxworks*, sparc-*-netbsd*, sparc-*-openbsd*, - sparc-*-chorusos*, sparc-*-elf*, sparc-*-linux*aout*, - sparc-*-linux*libc1*, sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtems*, - sparc-*-rtemself*, sparc-hal-solaris2*, sparc-*-solaris2*, - sparc-*-sunos4.0*, sparc-*-sunos4*, sparc-*-sunos3*, sparc-*-sysv4*, - sparc-*-vxsim*, sparclite-*-aout*, sparclite-*-elf*, sparc86x-*-aout*, - sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*, sparc64-*-linux*): - Include various CPU headers via tm_file. a.out based platforms now - properly include sparc/aout.h. sol2.h usage now implies including - elfos.h, svr4.h, and sparc/sysv4.h. - * config/netbsd.h (TARGET_MEM_FUNCTIONS): Undef before defining it. - Also define to '1'. - * sparc/sparc.h (CPP_PREDEFINES, TARGET_VERSION, WORD_SWITCH_TAKES_ARG, - SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE): - Remove. They are a.out specific and belong in sparc/aout.h. - * sparc/aout.h (TARGET_VERSION, WORD_SWITCH_TAKES_ARG, SELECT_SECTION, - ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, - DBX_REGISTER_NUMBER, ASM_OUTPUT_SOURCE_LINE): Define. Moved here from - sparc/sparc.h. - * sparc/litecoff.h (WORD_SWITCH_TAKES_ARG, ASM_DECLARE_FUNCTION_NAME, - TEXT_SECTION_ASM_OP, DATA_SECTION_ASM_OP, DBX_REGISTER_NUMBER): Define. - Moved here from sparc/sparc.h. - * config/sparc/linux-aout.h (DEFAULT_PCC_STRUCT_RETURN): Undef before - defining. - * config/sparc/linux64.h (UNALIGNED_DOUBLE_INT_ASM_OP): Undef before - * config/sparc/lynx.h: Don't include lynx.h. - (SELECT_SECTION): Do not undef. - * config/sparc/openbsd.h: Don't include sparc/sparc.h. - * config/sparc/sol2-sld-64.h: Include sparc/sparc.h, elfos.h, svr4.h, - and sparc/sysv4.h. - * config/sparc/sol2.h: Don't include sparc/sparc.h and sparc/sysv4.h. - * config/sparc/sp64-aout.h (CPP_PREDEFINES): Don't define. Get from - sparc/aout.h now. - * config/sparc/sp64-elf.h (DWARF_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO): - Don't undef, there is no need. - * config/sparc/splet.h (CPP_PREDEFINES): Define. - * config/sparc/sun4o3.h (CPP_PREDEFINES): Likewise. - * config/sparc/sunos4.h (CPP_PREDEFINES): Likewise. - Don't include sparc/sparc.h. - * config/sparc/sysv4.h (WORD_SWITCH_TAKES_ARG, ASM_OUTPUT_SOURCE_LINE, - SELECT_SECTION, ASM_DECLARE_FUNCTION_NAME, TEXT_SECTION_ASM_OP, - DATA_SECTION_ASM_OP): Don't undef, there is no need now. Don't include - elfos.h and svr4.h. - (TARGET_VERSION): Define. - * config/sparc/vxsim.h (TARGET_VERSION): Define. - -Wed Nov 14 19:46:08 CET 2001 Jan Hubicka - - * cfglayout.c (fixup_fallthru_exit_predecesor): New static function. - (cfg_layout_finalize): Use it. - * bb-reorder.c (HAVE_epilogue): Remove. - (make_reorder_chain): Do not care special placement of - last basic block. - - * predict.c (expected_value_to_br_prob): Delete the note - once transformed. - - * c-decl.c (c_expand_body): Fix TV_EXPAND nesting problem; - measure integration time separately. - -Wed Nov 14 12:30:57 2001 Richard Kenner - - * function.c (struct temp_slot): ALIGN now unsigned. - -2001-11-14 Kazu Hirata - - * config/dsp16xx/dsp16xx.c: Fix comment formatting. - * config/dsp16xx/dsp16xx.h: Likewise. - * config/dsp16xx/dsp16xx.md: Likewise. - -2001-11-14 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Reorganize the code - that deals with 7-bit shifts in HImode. - -Wed Nov 14 14:17:05 CET 2001 Jan Hubicka - - * dbxout.c (dbxout_symbol_location): Update call of alter_subreg. - * final.c (walk_alter_subreg): Take pointer; update call of alter_subreg. - (final_scan_insn): Update call of alter_subreg. - (cleanup_subreg_operands): Likewise. - (alter_subreg): Rewrite using simplify_subreg. - (output_address, output_operand): Update call of alter_subreg. - * output.h (alter_subreg): Update prototype. - * sdbout.c (sdbout_symbol): Update call of alter_subreg. - * simplify-rtx.c (simplify_subreg): Copy ORIGINAL_REGNO. - * Makefile.in (final.o): Add dependency on expr.h - -Wed Nov 14 06:37:54 2001 Richard Kenner - - * c-lang.c (finish_file): Make I unsigned to eliminate warning. - -2001-11-13 Jeff Sturm - - * doc/install.texi (sparc-*-linux*): Mention requirements for - binutils and glibc. - -2001-11-14 Joseph S. Myers - - * Makefile.in (POD2MAN): Don't include --section=1. - (manext): Rename to man1ext. All users changed. - (man7ext): New. - (man7dir): New. - (generated-manpages): Also depend on $(docdir)/gfdl.7, - $(docdir)/gpl.7, and $(docdir)/fsf-funding.7. - ($(docdir)/gcov.1, $(docdir)/cpp.1, $(docdir)/gcc.1): Include - --section=1 in calls to $(POD2MAN). - ($(docdir)/gfdl.7, $(docdir)/gpl.7, $(docdir)/fsf-funding.7): New. - (maintainer-clean, install, uninstall): Handle the new man pages. - ($(docdir)/cpp.info, cpp.dvi): Depend on fdl.texi. - (installdirs): Create man7dir. - * doc/cpp.texi: Include GFDL in this manual. In the man page, - refer to gfdl(7) for the GFDL. Apply Front Cover and Back Cover - texts to man page. Include gpl(7), gfdl(7) and fsf-funding(7) in - the SEE ALSO man page section. - * doc/gcov.texi: Apply GFDL to man page. Include gpl(7), gfdl(7) - and fsf-funding(7) in the SEE ALSO man page section. - * doc/invoke.texi: Apply GFDL to man page. Include gpl(7), - gfdl(7) and fsf-funding(7) in the SEE ALSO man page section. - * doc/include/fdl.texi, doc/include/funding.texi, - doc/include/gpl.texi: Adjust for conversion by texi2pod.pl. - * doc/.cvsignore: Add gfdl.7, gpl.7 and fsf-funding.7. - -2001-11-13 Richard Henderson - - * dwarf2asm.c (dw2_force_const_mem): Set PUBLIC or STATIC - as appropriate for the artificial decl. - -2001-11-13 Richard Henderson - - * loop.c (combine_movables): Turn off combination until - move_movables validation bugs are fixed. - -2001-11-13 DJ Delorie - - * config.gcc (powerpc|rs6000): Set default cpp options based - on --with-cpu settings. - * config/rs6000/softfloat.h: New. - -2001-11-13 Kazu Hirata - - * config/h8300/h8300.c (shift_alg_si): Use special code for - 25-bit shifts on H8S. - (get_shift_alg): Generate special code for 25-bit shifts on - H8S. - -2001-11-13 Jakub Jelinek - - * emit-rtl.c (adjust_address_1): Add ADJUST argument. - (adjust_automodify_address_1): New. - * expr.h (adjust_address, adjust_address_nv): Adjust. - (adjust_automodify_address, adjust_automodify_address_nv): Define. - (adjust_address_1): Update prototype. - (adjust_automodify_address_1): Add prototype. - * expr.c (move_by_pieces_1): Use adjust_automodify_address. - (store_by_pieces_2): Likewise. - -Tue Nov 13 05:45:40 2001 Richard Kenner - - * Makefile.in (explow.o): Now depends on ggc.h. - * explow.c (ggc.h): Include. - (set_stack_check_libfunc): Mark stack_check_libfunc as ggc root. - - * Makefile.in (expr.o): Depends on insn-attr.h. - * expr.c (insn-attr.h): New include. - (force_operand): If INSN_SCHEDULING, deal with paradoxical SUBREG - of MEM. - (highest_pow2_factor, case INTEGER_CST): Handle negative values. - (expand_expr): Remove unneeded mark_temp_addr_taken calls and - clean up related usage in ADDR_EXPR. - (expand_expr_unaligned): Likewise. - - * emit-rtl.c (change_address): Fix typo in alias setting. - -2001-11-13 Kaveh R. Ghazi - - * Makefile.in (cfgcleanup.o): Depend on insn-config.h - -2001-11-12 Craig Rodrigues - - PR bootstrap/3451 - * c-pragma.c: Rename macros BAD, BAD2, BAD_ACTION to - GCC_BAD, GCC_BAD2, GCC_BAD_ACTION. - -2001-11-12 David O'Brien - - * config.gcc (sparc-tti-*, sparc64-wrs-vxworks*, sparc-wrs-vxworks*, - sparclite-wrs-vxworks*, sparc-*-aout*, sparc-*-netbsd*, - sparc-*-chorusos*, sparc-*-linux*aout*, sparc-*-linux*libc1*, - sparc-*-linux*, sparc-*-lynxos*, sparc-*-rtemsaout*, sparc-*-rtems*, - sparc-*-rtemself*, sparc-*-solaris2*, sparc-*-sunos3*, sparc-*-sysv4*, - sparc-*-vxsim*, sparclet-*-aout*, sparclite-*-coff*, sparclite-*-aout*, - sparc86x-*-aout*, sparc86x-*-elf*, sparc64-*-aout*, sparc64-*-elf*, - sparc64-*-linux*): Include various CPU headers via tm_file. - * config/svr3.h (ASM_OUTPUT_IDENT): Undef before defining it. - (SELECT_SECTION): Likewise. - (SELECT_RTX_SECTION): Likewise. - * config/sparc/sparc_bi.h: New file. - * config/sparc/aout.h: Don't include sparc/sparc.h and aoutos.h. - * config/sparc/linux-aout.h: Likewise. - * config/sparc/linux.h: Don't include sparc/sysv4.h. - * config/sparc/linux64.h: Likewise. - (SPARC_BI_ARCH): Don't define. sparc_bi.h will do it instead. - * config/sparc/lite.h: Don't include sparc/sparc.h and gofast.h. - * config/sparc/litecoff.h: Don't include sparc/lite.h, svr3.h, - and dbxcoff.h - (ASM_OUTPUT_IDENT): Do not #undef. - (SELECT_SECTION): Likewise. - (SELECT_RTX_SECTION): Likewise. - * config/sparc/liteelf.h: Don't include gofast.h. - * config/sparc/lynx-ng.h: Don't include sparc/sparc.h and lynx-ng.h. - * config/sparc/lynx.h: Don't include sparc/sparc.h. - * config/sparc/pbd.h: Likewise. - * config/sparc/netbsd.h: Don't include sparc/sparc.h and netbsd.h. - * config/sparc/rtems.h: Don't include sparc/aout.h and rtems.h. - * config/sparc/rtemself.h: Don't include rtems.h. - * config/sparc/sol2-64.h: Don't include sparc/sol2-sld-64.h. - * config/sparc/sol2-sld-64.h (SPARC_BI_ARCH): Don't define, include - sparc_bi.h instead. - * config/sparc/sol2-sld.h: Don't include sparc/sol2.h. - * config/sparc/sol2.h: Include sparc/sparc.h directly. - * config/sparc/sp64-aout.h: Don't include sparc/sparc.h and aoutos.h. - * config/sparc/sp64-elf.h: Don't include sparc/sol2.h. - * config/sparc/sp86x-aout.h: Don't include sparc/sparc.h and gofast.h. - * config/sparc/sp86x-elf.h: Don't include gofast.h. - * config/sparc/splet.h: Don't include sparc/aout.h. - * config/sparc/sun4o3.h: Don't include sparc/sparc.h. - * config/sparc/sysv4.h: Don't include sparc/sparc.h directly. - * config/sparc/vxsim.h: Don't include sparc/sysv4.h. - * config/sparc/vxsparc.h: Don't include sparc/aout.h and gofast.h. - * config/sparc/vxsparc64.h: Don't include gofast.h. - (SPARC_BI_ARCH): Don't define. sparc_bi.h will do it instead. - -2001-11-12 Joseph S. Myers - - * doc/standards.texi: Mention C99 TC1. - -2001-11-12 Kaveh R. Ghazi - - * mips-protos.h (mips_output_conditional_branch): Const-ify. - * mips.c (mips_output_conditional_branch): Likewise. - -2001-11-12 Kazu Hirata - - * config/h8300/h8300.c (shift_alg_si): Use special code for - 15-bit logical shifts and 31-bit logical shifts. - (get_shift_alg): Generate special code for 15-bit and 31-bit - logical shifts. - -2001-11-12 Kazu Hirata - - * config/h8300/h8300.c (shift_alg_qi): Use rotations when - doing 6-bit logical shifts on H8S. - (shift_alg_qi): Use special code for 21-bit shifts on H8S. - (get_shift_alg): Generate special code for 21-bit shifts on - H8S. - -2001-11-12 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Remove a redundant - label. - -Mon Nov 12 11:58:26 2001 Richard Kenner - - * alias.c (nonoverlapping_memrefs_p): Only update size from memref - if both size and offset known. - -2001-11-12 David O'Brien - - * config/ia64/freebsd.h: Fix misspelling. - -2001-11-12 Joseph S. Myers - - * doc/gcc.texi: Move several chapters out to ... - * doc/configterms.texi, doc/fragments.texi, doc/hostconfig.texi, - doc/include/linux-and-gnu.texi, doc/interface.texi, - doc/makefile.texi, doc/passes.texi, doc/portability.texi: - ... here. New files. - * doc/gcc.texi, doc/contrib.texi: Move section headings into - contrib.texi. - * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. - -2001-11-12 Kazu Hirata - - * config/alpha/alpha-interix.h: Fix comment formatting. - * config/alpha/alpha.c: Likewise. - * config/alpha/alpha.h: Likewise. - * config/alpha/alpha32.h: Likewise. - * config/alpha/freebsd.h: Likewise. - * config/alpha/unicosmk.h: Likewise. - * config/alpha/vms.h: Likewise. - -2001-11-12 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Remove redundant code. - -2001-11-12 Jakub Jelinek - - * dbxout.c (dbxout_symbol_location): Avoid emitting invalid register - numbers. - -Mon Nov 12 05:18:42 2001 Richard Kenner - - * emit-rtl.c (set_mem_attributes): If making object, can set alignment - from type. - (replace_equiv_address): Call update_temp_slot_address. - - * dwarf2out.c (loc_descriptor_from_tree, case COMPOUND_EXPR): New case. - - * alias.c (nonoverlapping_memrefs_p): Handle DECL_RTL being a CONCAT. - -2001-11-12 Kazu Hirata - - * config/h8300/h8300.c (shift_alg_qi): New. - (shift_alg_hi): Likewise. - (shift_alg_si): Likewise. - (get_shift_alg): Change the type of count to unsigned int. - Use the tables. - -2001-11-11 Alexandre Oliva - - * Makefile.in (c-lang.o): Depend on $(VARRAY_H). - * c-decl.c (c_expand_body): Take argument can_defer_p. Use it - to decide whether to defer a function. - (finish_function): Adjust. - (c_expand_deferred_function): New function. - * c-lang.c (deferred_fns): New variable. - (c_init): Initialize it, and mark it as a root. - (defer_fn): New function. - (finish_file): Expand all deferred functions. - * c-tree.h (defer_fn): Declare. - (c_expand_deferred_function): Likewise. - * objc/Make-lang.in (objc-act.o): Depend on $(VARRAY_H). - * objc-act.c (deferred_fns): New variable. - (objc_init): Initialize it, and mark it as a root. - (defer_fn): New function. - (finish_file): Expand all deferred functions. - -2001-11-11 Kaveh R. Ghazi - - * alpha.c (unicosmk_special_name): Prototype. - (unicosmk_ssib_name): Delete unused variable. - * alpha/unicosmk.h (common_section, ssib_section): Prototype. - * alpha/vms.h (PREFIX): Undef before defining. - * arm/pe.h (SUBTARGET_NAME_ENCODING_LENGTHS): Likewise. - * i370/i370.c (mvs_hash_alias): Prototype. Wrap with macro - controlling usage. Const-ify. - (alias_number): Delete unused variable. - * m32r/m32r.c (m32r_sched_init): Add missing argument. - (m32r_expand_block_move): Fix uninitialized warnings. - * mn10300/mn10300.h (REGNO_IN_RANGE_P): Fix 'unsigned >=0 is - always true' warnings. - * openbsd.h (TARGET_MEM_FUNCTIONS): Don't redefine. - * sh/sh.c: Include "integrate.h". - (output_far_jump): Fix uninitialized warning. - * final.c (shorten_branches): Avoid automatic aggregate - initialization. - * integrate.c (subst_constants): Likewise. - -2001-11-11 Kazu Hirata - - * config/h8300/h8300.c (shift_alg): Remove SHIFT_MAX. - (get_shift_alg): Remove redundant code. - -2001-11-11 Kazu Hirata - - * config/pa/milli64.S: Fix comment formatting. - * config/pa/pa-64.h: Likewise. - * config/pa/pa-linux.h: Likewise. - * config/pa/pa-protos.h: Likewise. - * config/pa/pa.c: Likewise. - * config/pa/pa.h: Likewise. - * config/pa/pa32-linux.h: Likewise. - * config/pa/pa32-regs.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/pa/pa64-regs.h: Likewise. - * config/pa/som.h: Likewise. - -2001-11-11 Joseph S. Myers - - * doc/gcc.texi: Move several chapters out to ... - * doc/bugreport.texi, doc/contribute.texi, doc/frontends.texi, - doc/service.texi, doc/standards.texi, doc/trouble.texi, - doc/vms.texi: ... here. New files. - * Makefile.in ($(docdir)/gcc.info, gcc.dvi): Update dependencies. - -2001-11-11 Joseph S. Myers - - * ChangeLog.2, ChangeLog.3, ChangeLog.4, ChangeLog.5, ChangeLog, - cfg.c, cfganal.c, cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, - collect2.c, combine.c, config.in, configure, configure.in, - conflict.c, dwarf2out.c, dwarfout.c, except.c, final.c, flow.c, - genattrtab.c, ggc-page.c, jump.c, lcm.c, predict.c, reg-stack.c, - reload1.c, rtlanal.c, sched-rgn.c, toplev.c, unwind-dw2-fde.h: Fix - spelling errors. - -Sun Nov 11 05:56:01 2001 Richard Kenner - - * config/rs6000/rs6000.c (rs6000_hash_constant, toc_hash_eq): - Adjust operand number in CONST_DOUBLE. - - * expmed.c (extract_bit_field): No longer pass in alignment. - (extract_fixed_bit_field, extract_split_bit_field): Likewise. - (store_bit_field, store_fixed_bit_field, store_split_bit_field): - Likewise. - * expr.c (store_constructor, store_constructor_field): Likewise. - (store_field, emit_group_load, emit_group_store): Likewise. - * expr.h (emit_group_load, emit_group_store): Delete ALIGN parm. - (store_bit_field, extract_bit_field): Likewise. - * calls.c, expr.c, function.c: Change calls to above functions. - * ifcvt.c, stmt.c: Likewise. - - * alias.c (nonoverlapping_memrefs_p): Not overlapping if one base is - constant and one is on frame. - If know memref offset, adjust size from decl. - -2001-11-11 Kaveh R. Ghazi - - * alpha/unicosmk.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT): Fix - format specifier warning. - * convex.h (ASM_OUTPUT_BYTE): Likewise. - * elfos.h (ALIGN_ASM_OP): Undef before defining. - * i386/att.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier - warning. - * i386/bsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386/gas.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386-interix.h (gen_stdcall_suffix): Prototype. - * i386.h (ASM_OUTPUT_BYTE): Fix format specifier warning. - * i386elf.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_LONG_DOUBLE): Likewise. - * i386/interix.c (gen_stdcall_suffix): Const-ify. - * i386/next.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Fix format - specifier warnings. - * i386/osfrose.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386/ptx4-i.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_LONG_DOUBLE): Likewise. - * i386/sco5.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386/sequent.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386/sun386.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386/svr3dbx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * m68k/3b1.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_LONG_DOUBLE, - ASM_OUTPUT_FLOAT, ASM_GENERATE_INTERNAL_LABEL): Likewise. - * m68k/altos3068.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise. - * m68k/amix.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL): - Likewise. - * m68k/atari.h (ASM_OUTPUT_ASCII, ASM_GENERATE_INTERNAL_LABEL): - Likewise. - * m68k/crds.h (ASM_OUTPUT_DOUBLE, PRINT_OPERAND): Likewise. - * m68k/dpx2.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, ASM_OUTPUT_FLOAT_OPERAND): - Likewise. - * m68k/hp320.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_BYTE): - Likewise. - * m68k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE): - Likewise. - * m68k/m68kv4.h (ASM_OUTPUT_ASCII): Delete unused variable. - * m68k/mot3300.h (ASM_OUTPUT_BYTE): Fix format specifier warning. - * m68k/news.h (PRINT_OPERAND): Likewise. - * m68k/next.h (ASM_OUTPUT_DOUBLE, ASM_OUTPUT_FLOAT, - ASM_OUTPUT_FLOAT_OPERAND, ASM_OUTPUT_DOUBLE_OPERAND): Likewise. - * m68k/next21.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise. - * m68k/plexus.h (ASM_SPEC): Insert space between macro name and - definition. - * m68k/sgs.h (ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_FLOAT, ASM_OUTPUT_ASCII, ASM_OUTPUT_FLOAT_OPERAND, - ASM_OUTPUT_DOUBLE_OPERAND): Fix format specifier warnings. - * m68k/sun3.h (ASM_OUTPUT_FLOAT_OPERAND): Likewise. - * m68k/tower-as.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_LONG_DOUBLE, ASM_OUTPUT_FLOAT, ASM_OUTPUT_BYTE, - PRINT_OPERAND): Likewise. - * m88k/m88k.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_BYTE): - Likewise. - * mips/elf.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise. - * mips/elf64.h (PUT_SDB_SIZE, ASM_DECLARE_OBJECT_NAME): Likewise. - * mips/iris5gas.h (PUT_SDB_SIZE): Likewise. - * mips/linux.h (ASM_DECLARE_OBJECT_NAME): Likewise. - * mips.c (mips_output_external_libcall): Mark parameter with - ATTRIBUTE_UNUSED. - (mips_asm_file_start): Move variable into the scope where it's - used. - * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise. - * mips/netbsd.h (ASM_DECLARE_OBJECT_NAME): Likewise. - * mips/sni-gas.h (PUT_SDB_SIZE): Likewise. - * ns32k/encore.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * ns32k.c (print_operand): Likewise. - * pa.c (print_operand, output_div_insn): Likewise. - * pa.h (ASM_OUTPUT_MI_THUNK, ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_BYTE, PRINT_OPERAND_ADDRESS): Likewise. - * pa/pa64-hpux.h (UNIQUE_SECTION): Const-ify. - * sparc/linux.h (ASM_GENERATE_INTERNAL_LABEL): Fix format - specifier warnings. - * sparc/linux64.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * sparc/pbd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_OUTPUT_SOURCE_LINE): Don't list macro arguments in undef. - * sparc/vxsim.h (ASM_GENERATE_INTERNAL_LABEL): Fix format - specifier warnings. - * svr3.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - - * sdbout.c (sdbout_end_epilogue): Mark parameter with - ATTRIBUTE_UNUSED. - * varasm.c (assemble_global): Likewise. - -2001-11-11 H.J. Lu - - * config.gcc: Add "elfos.h svr4.h" to $tm_file for Linux/mips. - -Sun Nov 11 01:26:00 CET 2001 Jan Hubicka - - * final.c (*_MAX_SKIP): Use *_max_skip variables. - * flags.h (align_loops_max_skip, align_jumps_max_skip, - align_labels_max_skip): New global variables. - * toplev.c (align_loops_max_skip, align_jumps_max_skip, - align_labels_max_skip): New global variables. - (toplev_main): Set new variables. - * i386.c (override_options): Set max_skip values. - -2001-11-10 Geoffrey Keating - - * doc/tm.texi (Label Output): Document ASM_OUTPUT_LABEL_REF. - * final.c (output_addr_const): Use ASM_OUTPUT_LABEL_REF. - * config/stormy16/stormy16.c (xstormy16_print_operand): For '%C', - don't print an @fptr for labels either. - (xstormy16_output_addr_vec): Don't print @fptr here. - * config/stormy16/stormy16.h (ASM_OUTPUT_LABEL_REF): New macro. - -Sat Nov 10 08:50:50 2001 Jeffrey A Law (law@cygnus.com) - - * ssa-ccp.c (examine_flow_edges): Use old-style definition, not - an ANSI/ISO definitino. - (ssa_const_prop): Likewise. - -2001-11-10 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_reg_names): Remove leading "v" or - altivec registers. - -2001-11-09 Kaveh R. Ghazi - - * cppexp.c (parse_number): Use ISXDIGIT/hex_value. - * cpplex.c (hex_digit_value): Use hex_p/hex_value. - * cppmain.c (general_init): Call hex_init. - * tradcif.y (parse_number): Use TOLOWER/ISXDIGIT/hex_value/hex_p. - - * config.gcc (i[34567]86-dg-dgux*): Don't set `out_file'. - - * i386/dgux.h (ASM_FILE_START): Set to the meaningful portions - of dgux.c:output_file_start(). - - * i386/dgux.c: Delete file. - -2001-11-09 Richard Henderson - - * config/alpha/alpha.c (decl_in_text_section): New. - (current_file_function_operand): Use it. - (alpha_encode_section_info, alpha_end_function): Likewise. - -2001-11-07 David O'Brien - - * config.gcc: Add FreeBSD/IA-64 target. Expand config/i64/elf.h headers. - * config/i64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove, - they are OS specific. Use CPP_CPU_SPEC rather than CPP_PREDEFINES, - so OS specific files and use CPP_PREDEFINES for their needs. - * config/i64/elf.h (TARGET_VERSION): Add. Also, move inclusion of - target headers to tm_file. - * config/ia64/aix.h (TARGET_VERSION): Likewise. - * config/ia64/hpux.h (TARGET_VERSION): Likewise. - * config/ia64/linux.h (TARGET_VERSION): Likewise. - (FUNCTION_PROFILER): Remove. - * config/ia64/ia64.h (FUNCTION_PROFILER): Update definition using the - version in config/ia64/linux.h. - * config/ia64/freebsd.h: New file. - * config/freebsd.h: Tidy up. - (_USING_CONFIG_FREEBSD): Define. - (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__. - (FBSD_CPP_SPEC): Define generic FreeBSD spec. - (FBSD_STARTFILE_SPEC): Likewise. - (FBSD_ENDFILE_SPEC): Likewise. - (FBSD_LIB_SPEC): Likewise. - (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed. - (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers - set an ELF-improper one. - -2001-11-09 John David Anglin - - * pa.c (emit_move_sequence): Use cint_ok_for_move to check whether a - constant can be loaded in a single instruction to a register. When - loading immediate constants, use PLUS instead of HIGH/LO_SUM. Use - depdi for insertion of most significant 32-bits on 64-bit hosts. - * pa.h (LEGITIMATE_CONSTANT_P): Accept constants that can be built - with ldil/ldo/depdi instruction sequence on 64-bit hosts. - * pa.md: New addmove pattern for adding constant_int to HImode - register and moving result to HImode register. Remove HImode HIGH - and LO_SUM patterns. - -2001-11-09 Neil Booth - - * Makefile.in: Update. - * c-decl.c (print_lang_decl, print_lang_type): Remove. - (print_lang_identifier): Rename c_print_identifier. - * c-lang.c (LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New. - (print_lang_statistics, lang_print_xnode): Remove. - * c-parse.in (set_yydebug): Rename c_set_yydebug. - * c-tree.h (c_set_yydebug, c_print_identifier): New. - * langhooks-def.h (lhd_print_tree_nothing, lhd_set_yydebug): New. - LANG_HOOKS_PRINT_STATISTICS, LANG_HOOKS_PRINT_XNODE, - LANG_HOOKS_PRINT_DECL, LANG_HOOKS_PRINT_TYPE, - LANG_HOOKS_PRINT_IDENTIFIER, LANG_HOOKS_SET_YYDEBUG): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New members. - (lang_print_tree_hook): New. - * langhooks.c (lhd_print_tree_nothing, lhd_set_yydebug): New. - * print-tree.c: Include langhooks.h. - (print_node): Update. - * toplev.c (decode_d_option): Update. - * tree.c: Include langhooks.h. - (dump_tree_statistics): Update. - * tree.h (print_lang_statistics, print_lang_decl, print_lang_type, - print_lang_identifier, set_yydebug, lang_print_xnode): Remove. -objc: - * objc-act.c (LANG_HOOKS_PRINT_IDENTIFIER, - LANG_HOOKS_SET_YYDEBUG): Override. - (lang_print_xnode, print_lang_statistics): Remove. - -2001-11-09 Richard Henderson - - * dwarf2asm.c (dw2_force_const_mem): Invoke STRIP_NAME_ENCODING - on the symbol string. - -2001-11-09 Kaveh R. Ghazi - - * pa/elf.h (ASM_DECLARE_FUNCTION_NAME, - ASM_OUTPUT_EXTERNAL_LIBCALL): Undef before defining. - * config.gcc (hppa1.1-*-rtems*): Remove duplicate clause. - - * clipper.h (ASM_OUTPUT_REG_POP): Fix typo. - - * tlink.c (recompile_files): Copy strings passed to `putenv'. - -2001-11-09 Geoffrey Keating - - * tree.h (TYPE_VOLATILE): Trap use not on TYPEs. - (TYPE_READONLY): Likewise. - - * flow.c (insn_dead_p): Allow for AUTO_INC notes all the time. - - * config/stormy16/stormy16.h (ASM_SPEC): Revert last change, - don't pass --gdwarf2 to the assembler if the compiler will also - provide debug info. - - * config/stormy16/stormy16.c (xstormy16_expand_casesi): - Don't change INDEX. - -Fri Nov 9 17:51:09 2001 Richard Kenner - - * alias.c (nonoverlapping_memrefs_p): New function. - (true_dependence, canon_true_depenence, write_dependence_p): Call it. - - * emit-rtl.c (set_mem_attributes): Get alignments for constants. - -2001-11-09 Aldy Hernandez - - * rs6000.h (REG_CLASS_CONTENTS): Add VRSAVE bit to ALL_REGS. - (CONDITIONAL_REGISTER_USAGE): Disable AltiVec registers unless - generating altivec code. - (FIXED_REGISTERS): VRSAVE is fixed. - (CALL_USED_REGISTERS): VRSAVE is call used. - -2001-11-09 Jason Eckhardt - - * config/mips/mips.c (mips_output_conditional_branch): Do not hard - code the branch target as ".+16/.+12", but rather use labels. - -Fri Nov 9 11:27:42 2001 Jeffrey A Law (law@cygnus.com) - - * config/pa/milli64.S: Use %r25 and %r0 instead of arg1 and r0 - to work around limitations of certain versions of GAS. - - * pa.md (mulsi3): Remove PA64 hack to work around SUBREG issues. - (muldi3): Update due to SUBREG_BYTE changes. - (casesi): Similarly. - -2001-11-09 Zack Weinberg - - * doc/invoke.texi: Remove comment referring to -xf77-version. - -2001-11-09 Kazu Hirata - - * config/convex/convex.c: Fix comment formatting. - * config/convex/convex.h: Likewise. - -2001-11-08 Zack Weinberg - - * Makefile.in (.po.pox): Look both in srcdir and builddir - for $(PACKAGE).pot. - (po/$(PACKAGE).pot): Don't move-if-change the new potfile over - to the source directory. - -2001-11-09 Ben Elliston - Michael Meissner - Andrew MacLeod - Richard Henderson - Nick Clifton - Catherine Moore - - * m32r.c: Add support for m32rx processor. - * m32r.h: Ditto. - * m32r.md: Ditto. - * t-m32r: Ditto. - * m32r-protos.h: Add prototypes for m32rx functions. - * doc/invoke.texi: Document -m32rx option. - -2001-11-09 Jakub Jelinek - - * config/sparc/sparc.md (movdf): Avoid calling validize_mem during - or after reload. - -2001-11-09 Gerald Pfeifer - - * doc/install.texi2html: Use $MAKEINFO --no-split. - -2001-11-09 Andreas Schwab - - * Makefile.in ($(HOST_PREFIX_1)rtl.o, - $(HOST_PREFIX_1)print-rtl.o, $(HOST_PREFIX_1)bitmap.o, - $(HOST_PREFIX_1)vfprintf.o, $(HOST_PREFIX_1)doprint.o, - $(HOST_PREFIX_1)strstr.o, $(HOST_PREFIX_1)errors.o, - $(HOST_PREFIX_1)ggc-none.o): Update dependencies. - -2001-11-09 H.J. Lu - - * config/mips/mips.c (mips_output_function_prologues): Cast - `tsize' to long for output. - -2001-11-09 Neil Booth - - * c-lang.c (LANG_HOOKS_NAME): New. - (lang_hooks): Constify. - (c_init_options): Update. - (lang_identify): Remove. - * c-parse.in (language_string): Remove. - * dbxout.c: Include langhooks.h. - (dbxout_symbol_location): Update. - * dwarf2out.c: Include langhooks.h. - (gen_compile_unit_die): Update. - * dwarfout.c: Include langhooks.h. - (prototyped_attribute, output_compile_unit_die): Update. - * langhooks-def.h (LANG_HOOKS_NAME, LANG_HOOKS_IDENTIFIER_SIZE): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New members. Constify. - * stringpool.c: Don't include toplev.h. - (set_identifier_size): Remove. - * toplev.c (toplev_main): Initialize identifier size. - (print_version): Update. - * tree.h (language_string, init_lex, lang_identify, - set_identifier_size): Remove. - * Makefile.in: Update dependencies. - * config/darwin.c: Include langhooks.h. - (func_name_maybe_scoped): Update. - * config/darwin.h (ASM_END_FILE): Update. - * config/nextstep.h (ASM_END_FILE): Update. - * config/nextstep21.h (ASM_END_FILE): Update. - * config/i386/sun386.h (ASM_END_FILE): Update. - * config/rs6000/rs6000.c (ASM_END_FILE): Include langhooks.h. - (rs6000_output_function_epilogue): Update. -objc: - * objc-act.c (LANG_HOOKS_NAME): Override. - (struct lang_hooks): Constify. - (objc_init_options): Update. - (lang_identify): Remove. - -Fri Nov 9 00:25:18 EST 2001 John Wehle (john@feith.com) - - * fold-const.c (lshift_double): Honor PREC. - (rshift_double): Likewise. - -2001-11-08 Kazu Hirata - - * config/1750a/1750a.c: Fix comment formatting. - * config/1750a/1750a.h: Likewise. - -2001-11-08 Phil Edwards - - * configure.in (--enable-languages): Be more permissive about - syntax. Check for empty lists better. Warn about $LANGUAGES. - * configure: Regenerated. - -2001-11-08 Richard Henderson - - * dwarf2asm.c (dw2_force_const_mem): Fix typo. - -2001-11-08 Geoffrey Keating - - * config.gcc: Rename stormy16 to xstormy16. - * config/stormy16/stormy-abi: Likewise. - * config/stormy16/stormy16-protos.h: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/stormy16/stormy16.md: Likewise. - -2001-11-06 Geoffrey Keating - - * tree.h (TYPE_VOLATILE): Add enable-checking code. - (TYPE_READONLY): Likewise. - -Thu Nov 8 18:00:55 2001 Richard Kenner - - * reload1.c (reload): Don't delete equiv insn if can throw. - - * expr.c (emit_block_move): If X is readonly emit CLOBBER for it. - (clear_storage): Likewise, for OBJECT. - -Thu Nov 8 16:23:51 2001 Jeffrey A Law (law@cygnus.com) - - * pa.c (emit_move_sequence): Fix SUBREG expression to - use proper byte offset when extending a constant from - SImode to DImode. - -2001-11-09 Jakub Jelinek - - * cfgrtl.c (purge_dead_edges): Remove REG_EH_REGION note for insns - which cannot throw. - -Thu Nov 8 18:00:55 2001 Richard Kenner - - * explow.c (convert_memory_address, case SUBREG): Only return - inner object if SUBREG_PROMOTED_VAR_P or known to be pointer. - -2001-11-08 Richard Henderson - - * Makefile.in (GCC_FOR_TARGET): Add build_tooldir/sys-include. - (CROSS_SYSTEM_HEADER_DIR): Use build_tooldir not tooldir. - (ORDINARY_FLAGS_TO_PASS, stmp-fixinc): Likewise. - -2001-11-08 Aldy Hernandez - - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add -maltivec. - -2001-11-08 Jakub Jelinek - - * dwarf2out.c (debug_str_hash): New. - (struct indirect_string_node): New. - (struct dw_val_struct): Change type of val_str to it. - (DEBUG_STR_SECTION_FLAGS): Define. - (add_AT_string): Push string into hashtable, increment reference - counter. - (AT_string): Return string from ht_identifier. - (AT_string_form): New. - (free_AT): For dw_val_class_str, just decrement reference counter. - (size_of_string): Remove. - (size_of_die): Use AT_string_form to decide what size the string - occupies in DIE. - (size_of_pubnames): Use strlen instead of size_of_string. - (value_format): Use AT_string_form for dw_val_class_str. - (output_die): Output DW_FORM_strp strings using - dw2_asm_output_offset. - (indirect_string_alloc, output_indirect_string): New. - (dwarf2out_finish): Emit .debug_str strings if there are any. - -2001-11-08 Andreas Franck - - * configure.in: Add AC_ARG_PROGRAM to support program name - transformation with --program-prefix, --program-suffix and - --program-transform-name. - * configure: Regenerated. - * Makefile.in (GCC_INSTALL_NAME, CPP_INSTALL_NAME, - PROTOIZE_INSTALL_NAME, UNPROTOIZE_INSTALL_NAME, GCOV_INSTALL_NAME, - GCCBUG_INSTALL_NAME, GCC_CROSS_NAME, CPP_CROSS_NAME, - PROTOIZE_CROSS_NAME, UNPROTOIZE_CROSS_NAME): Handle - program_transform_name the way suggested by autoconf. - (GCC_TARGET_INSTALL_NAME): Define. - (install-driver): Use the transformed target alias name. - -2001-11-08 Richard Henderson - - * config/mips/mips.c (save_restore_insns): Remove GP from the - restore registers mask early instead of special casing it inside - the loop. - -2001-11-08 Neil Booth - - * cp/decl.c (shadow_warning): New function. - (pushdecl): Improve -Wshadow warnings. Don't give both a warning - and an error when a block scope decl shadows a parameter. - -2001-11-08 Richard Henderson - - * config/fp-bit.h (usi_to_float): Define for US_SOFTWARE_GOFAST - case as well. - -2001-11-08 John David Anglin - - * pa.md (negdf2, negsf2): Use multiplication rather than subtraction - to implement floating negation on processors prior to PA 2.0. - -2001-11-08 Jakub Jelinek - - * dwarf2asm.c (mark_indirect_pool_entry, mark_indirect_pool): New. - (USE_LINKONCE_INDIRECT): Define. - (dw2_output_indirect_constant_1): Try to output indirect constants - into linkonce sections if possible. - (dw2_force_const_mem): Likewise. Register indirect_pool with GGC. - (dw2_output_indirect_constants): Likewise. - -2001-11-07 Aldy Hernandez - - * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Add vrsave. - -2001-11-07 Neil Booth - - * c-decl.c (pushdecl): Remove file and line. - * c-typeck.c (pop_init_level): Remove size. - -2001-11-07 Aldy Hernandez - - * doc/invoke.texi: Add -maltivec, -mno-altivec, and -mabi=altivec - for rs6000. - - * config/rs6000/rs6000.h (MASK_ALTIVEC): New. - (TARGET_ALTIVEC): New. - (TARGET_SWITCHES): Add altivec. - (FIRST_PSEUDO_REGISTER): Change to 109. - (CALL_USED_REGISTERS): Same. - (FIRST_ALTIVEC_REGNO): New. - (LAST_ALTIVEC_REGNO): New. - (ALTIVEC_REGNO_P): New. - (UNITS_PER_ALTIVEC_WORD): New. - (ALTIVEC_VECTOR_MODE): New. - (FIXED_REGISTERS): Add altivec registers. - (REG_ALLOC_ORDER): Same. - (HARD_REGNO_NREGS): Adjust for altivec registers. - (HARD_REGNO_MODE_OK): Same. - (MODES_TIEABLE_P): Same. - (REGISTER_MOVE_COST): Same. - (REGNO_REG_CLASS): Same. - (reg_class): Add ALTIVEC_REGS. - (REG_CLASS_NAMES): Same. - (REG_CLASS_CONTENTS): Same. - (REG_CLASS_FROM_LETTER): Add 'v' constraint for ALTIVEC_REGS. - (ALTIVEC_ARG_RETURN): New. - (FUNCTION_VALUE): Handle VECTOR_TYPE. - (LIBCALL_VALUE): Handle altivec vector modes. - (VECTOR_MODE_SUPPORTED_P): New. - (ALTIVEC_ARG_MIN_REG): New. - (ALTIVEC_ARG_MAX_REG): New. - (ALTIVEC_ARG_NUM_REG): New. - (FUNCTION_VALUE_REGNO_P): Return true for altivec return register. - (FUNCTION_ARG_REGNO_P): Support passing args in altivec registers. - (REGISTER_NAMES): Add altivec regs. - (DEBUG_REGISTER_NAMES): Same. - (ADDITIONAL_REGISTER_NAMES): Same. - (rs6000_builtins): New. - (MD_EXPAND_BUILTIN): New. - (MD_INIT_BUILTINS): New. - (LEGITIMATE_OFFSET_ADDRESS_P): This addressing mode is not valid - for AltiVec instructions. - (LEGITIMATE_LO_SUM_ADDRESS_P): Same. - (HARD_REGNO_MODE_OK): Altivec modes can only go in altivec - registers. - (SECONDARY_MEMORY_NEEDED): We need memory to copy vector modes. - (TARGET_SWITCHES): Add no-altivec. - (DATA_ALIGNMENT): Align vectors to 128 bits. - (TARGET_OPTIONS): Add abi= option. - Add rs6000_abi_string extern. - (LOCAL_ALIGNMENT): New. - (CPP_CPU_SPEC): Define __ALTIVEC__ when -maltivec. - (MASK_ALTIVEC_ABI): New. - (TARGET_ALTIVEC_ABI): New. - (CONDITIONAL_REGISTER_USAGE): Set first 20 AltiVec registers to - call-saved. - (STACK_BOUNDARY): Adjust for altivec. - (BIGGEST_ALIGNMENT): Same. - (rs6000_args): Add vregno. - (USE_ALTIVEC_FOR_ARG_P): New. - (FIXED_REGISTERS): Add vrsave register. - (CALL_USED_REGISTERS): Same. - (CONDITIONAL_REGISTER_USAGE): Set VRSAVE info. - (VRSAVE_REGNO): New. - (reg_class): Add VRSAVE_REGS. - (REG_CLASS_NAMES): Same. - (REG_CLASS_CONTENTS): Same. - (REGNO_REG_CLASS): Same. - - * config/rs6000/sysv4.h (STACK_BOUNDARY): Adjust for altivec. - (ABI_STACK_BOUNDARY): Same. - (BIGGEST_ALIGNMENT): Same. - (ADJUST_FIELD_ALIGN): Remove undef. Define anew. - (ROUND_TYPE_ALIGN): Same. - - * config/rs6000/aix.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT - to 64. - - * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT - to 64. - - * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Change BIGGEST_ALIGNMENT - to 64. - - * config/rs6000/rs6000.c (rs6000_expand_builtin): New. - (altivec_expand_builtin): New. - (altivec_init_builtins): New. - (TARGET_EXPAND_BUILTIN): New. - (TARGET_INIT_BUILTINS): New. - (rs6000_init_builtins): New. - (struct builtin_description): New. - (bdesc_2arg): New. - (rs6000_reg_names): Add altivec registers. - (alt_reg_names): Same. - (secondary_reload_class): Altivec regs can hold altivec regs and - memory. - (rs6000_emit_move): Force constants into memory for AltiVec moves. - (print_operand): Add 'y' case for printing altivec memory - operands. - (rs6000_legitimize_address): Legitimize vector addresses into - [REG+REG] or [REG]. - (altivec_expand_binop_builtin): New. - New string rs6000_current_abi. - (rs6000_override_options): Call rs6000_parse_abi_options. - (rs6000_parse_abi_options): New. - (function_arg_boundary): Vector arguments must be 16 - byte aligned. - (function_arg_advance): Handle vector arguments. - (function_arg_partial_nregs): Same. - (init_cumulative_args): Same. - (function_arg): Same. - - * config/rs6000/rs6000.md (altivec_lvx): New. - (type): Add altivec attribute. - (movv4si): New. - (*movv4si_internal): New. - (movv16qi): New. - (*movv16qi_internal): New. - (movv8hi): New. - (*movv8hi_internal1): New. - (movv4sf): New. - (*movv4sf_internal1): New. - (altivec_stvx): New. - (vaddubm): New. - (vadduhm): New. - (vadduwm): New. - (vaddfp): New. - (vaddcuw): New. - (vaddubs): New. - (vaddsbs): New. - (vadduhs): New. - (vaddshs): New. - (vadduws): New. - (vaddsws): New. - (vand): New. - (vandc): New. - (vavgub): New. - (vavgsb): New. - (vavguh): New. - (vavgsh): New. - (vavguw): New. - (vavgsw): New. - (vcmpbfp): New. - (vcmpequb): New. - (vcmpequh): New. - (vcmpequw): New. - (vcmpeqfp): New. - (vcmpgefp): New. - (vcmpgtub): New. - (vcmpgtsb): New. - (vcmpgtuh): New. - (vcmpgtsh): New. - (vcmpgtuw): New. - (vcmpgtsw): New. - (vcmpgtfp): New. - (vcmpgefp): New. - (vcmpgtub): New. - (vcmpgtsb): New. - (vcmpgtuh): New. - (vcmpgtsh): New. - (vcmpgtuw): New. - (vcmpgtsw): New. - (vcmpgtfp): New. - (vmaxub): New. - (vmaxsb): New. - (vmaxuh): New. - (vmaxsh): New. - (vmaxuw): New. - (vmaxsw): New. - (vmaxfp): New. - (vmrghb): New. - (vmrghh): New. - (vmrghw): New. - (vmrglb): New. - (vmrglh): New. - (vmrglw): New. - (vminub): New. - (vminsb): New. - (vminuh): New. - (vminsh): New. - (vminuw): New. - (vminsw): New. - (vminfp): New. - (vmuleub): New. - (vmulesb): New. - (vmuleuh): New. - (vmulesh): New. - (vmuloub): New. - (vmulosb): New. - (vmulouh): New. - (vmulosh): New. - (vnor): New. - (vor): New. - (vpkuhum): New. - (vpkuwum): New. - (vpkpx): New. - (vpkuhss): New. - (vpkshss): New. - (vpkuwss): New. - (vpkswss): New. - (vpkuhus): New. - (vpkshus): New. - (vpkuwus): New. - (vpkswus): New. - (vrlb): New. - (vrlh): New. - (vrlw): New. - (vslb): New. - (vslh): New. - (vslw): New. - (vsl): New. - (vslo): New. - (vsrb): New. - (vrsh): New. - (vrsw): New. - (vsrab): New. - (vsrah): New. - (vsraw): New. - (vsr): New. - (vsro): New. - (vsububm): New. - (vsubuhm): New. - (vsubuwm): New. - (vsubfp): New. - (vsubcuw): New. - (vsububs): New. - (vsubsbs): New. - (vsubuhs): New. - (vsubshs): New. - (vsubuws): New. - (vsubsws): New. - (vsum4ubs): New. - (vsum4sbs): New. - (vsum4shs): New. - (vsum2sws): New. - (vsumsws): New. - (vxor): New. - -2001-11-07 Daniel Berlin - - * Makefile.in (df.o): Add fibheap.h to dependencies. - - * df.h: Add prototypes for transfer functions, iterative_dataflow - functions. - (enum df_flow_dir): New enum. - (enum df_confluence_op): New enum. - (struct df): Add inverse_rts_map. - - * df.c: Add sbitmap.h to the list of includes. - (df_rd_global_compute): Removed. - (df_ru_global_compute): Removed. - (df_lr_global_compute): Removed. - (df_rd_transfer_function): New function. - (df_ru_transfer_function): New function. - (df_lr_transfer_function): New function. - (df_analyse_1): allocate/compute/free df->inverse_rts_map. - Use iterative_dataflow_bitmap instead of df_*_global_compute. - (iterative_dataflow_sbitmap): New function. - (iterative_dataflow_bitmap): New function. - -2001-11-07 Joseph S. Myers - - * doc/gcc.texi: Move terminology and spelling conventions to - htdocs/codingconventions.html. - -2001-11-07 Graham Stott - - * cse.c (cse_insn): Emit BARRIER after unconditional jump. - -Wed Nov 7 13:33:34 CET 2001 Jan Hubicka - - * expmed.c (expand_mult): Force operand to register before computing - cost. - * i386.c (x86_decompose_lea): New global vairable. - * i386.h (x86_decompose_lea): Declare. - (TARGET_DECOMPOSE_LEA): New macro. - (RTX_COST): Handle leas properly. - -2001-11-06 Richard Henderson - - * config/alpha/elf.h (DO_SELECT_SECTION): TREE_READONLY is not - defined for a CONSTRUCTOR; don't check it. - -2001-11-06 Danny Smith - - * gcov.c (output_data): Use IS_ABSOLUTE_PATHNAME to - test for absolute pathnames. - -2001-11-06 Olivier Hainque - - * unwind-dw2.c (execute_cfa_program): Evaluate call frame - instructions up to the target pc inclusive. - -2001-11-06 Steve Christiansen - - * loop.c (loop_regs_scan): Don't invalidate PIC register. - -2001-11-06 Eric Christopher - - * config/mips/mips.md(movdf_internal2): Add constraints for float - to general register move. - * config/mips/elf64.h: Add default ABI. - -2001-11-06 Neil Booth - - * alias.c:: Include langhooks.h. - * emit-rtl.c: Similarly. - * toplev.c: Similarly. - * tree-inline.c: Similarly. - * langhooks-def.h: New, the old langhooks.h. Give the default - hooks a common prefix. - * langhooks.h: Contents extracted from toplev.h. - * toplev.h: Move langhook stuff to langhooks.h. - * langhooks.c: Give default hooks a common prefix. - - * c-lang.c: Include langhooks-def.h. - * objc/objc-act.c: Similarly. - * Makefile.in: Update. - * objc/Make-lang.in: Update. - -2001-11-06 Joseph S. Myers - - * doc/install.texi: Document that configure options not listed in - this file are unsupported. Document --with-system-zlib. - -Tue Nov 6 09:21:34 2001 Richard Kenner - - * rtl.h (mem_for_const_double): New declaration. - * varasm.c (mem_for_const_double): New function. - * config/convex/convex.md (movdf): Use it. - * config/m68k/hp320.h (LEGITIMATE_PIC_OPERAND_P): Likewise. - * config/m68k/linux.h, config/m68k/m68k.h: Likewise. - * config/m68k/m68kv4.h: Likewise. - - * config/alpha/alpha.h (SECONDARY_MEMORY_NEEDED): Adjust for addition - of new GP reg classes. - - * expr.c (store_field): When making temp object for unaligned - component, set it to alias set 0. - -2001-11-06 Joseph S. Myers - - * c-common.c (c_expand_expr_stmt): Apply default conversions to - non-lvalue arrays if C99. - * c-typeck.c (default_conversion): Split out code handling - array-to-pointer and function-to-pointer conversions into a - separate default_function_array_conversion function. - (default_function_array_conversion): New function. Keep track of - whether any NON_LVALUE_EXPRs were stripped. Return non-lvalue - arrays unchanged outside C99 mode instead of giving an error for - them. - (build_component_ref): Use pedantic_non_lvalue when handling - COMPOUND_EXPR. Don't handle COND_EXPR specially. - (convert_arguments): Use default_function_array_conversion. - (build_unary_op): For ADDR_EXPR, take a flag indicating whether - non-lvalues are OK. - (unary_complex_lvalue): Likewise. - (internal_build_compound_expr): Use - default_function_array_conversion. Apply default conversions to - function in compound expression. - (build_c_cast, build_modify_expr, digest_init, build_asm_stmt): - Use default_function_array_conversion. - * doc/extend.texi: Update documentation of subscripting non-lvalue - arrays. - Fixes PR c/461. - -2001-11-05 Zack Weinberg - - * aclocal.m4: (AM_WITH_NLS): Don't look at ALL_LINGUAS. - (AM_GNU_GETTEXT): Set CATALOGS to a list of .gmo files - corresponding to the complete set of .po and .gmo files in - the source directory's po subdir, modified by LINGUAS. Don't - look at ALL_LINGUAS. - * configure.in: Don't set ALL_LINGUAS. - * configure: Regenerate. - - * Makefile.in (.po.gmo): Don't move into source directory. - (.po.pox): Clarify comments. - (install-po): Look for .gmo files in both srcdir and objdir; - don't fail if a file is totally missing. - (distclean): rmdir ada subdirectory too. - -2001-11-05 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_select_section): Handle - CONSTRUCTORs _correctly_. - -2001-11-05 Neil Booth - - * c-decl.c (delete_block): Remove. - * c-tree.h (delete_block): Remove. - -2001-11-05 Neil Booth - - * cppexp.c (lex, parse_defined): Update warning about defined. - -2001-11-05 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_select_section): Handle - CONSTRUCTORs too. - -2001-11-05 Nick Clifton - - * config/arm/arm.c (arm_return_in_memory): Cope with - int_size_in_bytes returning -1. - - * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Handle - DECL being NULL. - -Mon Nov 5 16:15:25 CET 2001 Jan Hubicka - - * Makefile.in (bb-reorder.o): Add dependency on cfglayout.h; - remove unneeded dependencies; - (cfglayout.o): New. - * cfglayout.c, cfglayout.h: New files; break out from ... - * bb-reorder.c: ... here; Remove unneeded includes; - -2001-11-04 Alan Modra - - * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Mark r2 as used. - -2001-11-04 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_emit_move): Handle 64-bit - mode as well. Do not explicitly create intermediate regs. - -2001-11-04 Kaveh R. Ghazi - - * arm/aof.h (aof_text_section, aof_data_section): Don't declare. - (common_section): Delete unused variable. - (ASM_OUTPUT_ASCII): Fix signed/unsigned warnings. - (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning. - * arm-protos.h (arm_poke_function_name, aof_add_import, - aof_delete_import): Const-ify. - * arm.c (legitimize_pic_address): Wrap variables in the macro - controlling their usage. - (arm_finalize_pic): Mark variable with ATTRIBUTE_UNUSED. - (arm_poke_function_name, pic_chain, import, aof_add_import, - aof_delete_import): Const-ify. - * i386.c (ix86_osf_output_function_prologue): Const-ify. - * i386/sysv4.h (ASM_OUTPUT_FLOAT, ASM_OUTPUT_DOUBLE, - ASM_OUTPUT_LONG_DOUBLE): Fix format specifier warnings. - * i860/fx2800.h (DBX_OUTPUT_STANDARD_TYPES): Const-ify. - * i860/sysv3.h: Add missing comment closure. - * m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Add missing semi-colon. - * m88k/dgux.h (SELECT_RTX_SECTION): Add missing argument in call - to symbolic_operand. - - * config.gcc (m680[02]0-*-*): Rename case from m68000-*-*. - (i960-*-*): Set tmake_file. - (sparc86x-*-elf*): Fix typo in header name. - - * sched-rgn.c (schedule_insns): Delete unused variable. - -2001-11-04 Neil Booth - - PR c/2820 - * c-typeck.c (lookup_field): Rework to return a chain down to - the looked-up field. - (build_component_ref): Use the new lookup_field to handle - nested anonymous entities correctly. - -Sun Nov 4 11:53:31 2001 Richard Kenner - - * config/sparc/sparc.c (sparc_emit_set_const32, GEN_HIGHINT64): - Change parameters to gen_rtx_CONST_DOUBLE. - (GEN_INT64, sparc_emit_set_const64): Likewise. - * config/sparc/sparc.md (movdf split): Likewise. - -2001-11-03 Geoffrey Keating - - * unroll.c (calculate_giv_inc): Use find_last_value rather - than just hoping the last instruction is the right SET. - [Fixes 990604-1.c on stormy16.] - - * config/stormy16/stormy16.h (LIB_SPEC): Don't supply any libgloss - library at all if -T is used. - - * config/stormy16/stormy16.c (stormy16_print_operand): Avoid - some uses of uninitialized variables in error cases. - - * config/stormy16/stormy16.c (stormy16_output_shift): Don't - look at 'temp' if we won't be using it. - - * config/stormy16/stormy16.h (CONST_COSTS): Define. - (RTX_COSTS): Define. - (ADDRESS_COST): Define. - (MEMORY_MOVE_COST): Allow for memory_move_secondary_cost. - - * config/stormy16/stormy16.h (ASM_SPEC): Pass -g to the assembler. - - * config/stormy16/stormy16.h (ASM_OUTPUT_MI_THUNK): Call - stormy16_asm_output_mi_thunk. - * config/stormy16/stormy16.c (stormy16_asm_output_mi_thunk): New - function. - * config/stormy16/stormy16-protos.h - (stormy16_asm_output_mi_thunk): New prototype. - -2001-11-04 Joseph S. Myers - - * ChangeLog.2, ChangeLog.4, ChangeLog.5, ChangeLog, - FSFChangeLog.10, FSFChangeLog.11, alias.c, attribs.c, - caller-save.c, calls.c, cfg.c, cfganal.c, cfgcleanup.c, cfgrtl.c, - cppmacro.c, fold-const.c, ifcvt.c, local-alloc.c, profile.c, - sched-int.h, toplev.c, config/alpha/alpha.c, - config/alpha/alpha.md, config/c4x/c4x.h, config/cris/cris.h, - config/cris/cris.md, config/i370/i370.md, config/i386/i386.c, - config/i386/i386.h, config/i386/i386.md, config/i386/xm-djgpp.h, - config/ia64/ia64.c, config/m68hc11/m68hc11.c, config/m68k/m68k.md, - config/mcore/mcore.h, config/mmix/mmix.c, config/ns32k/ns32k.h, - config/ns32k/ns32k.md, config/rs6000/rs6000.c, - config/rs6000/sysv4.h, config/sh/sh.md: Fix spelling errors. - -2001-11-03 Kaveh R. Ghazi - - * Makefile.in (dbxout.o): Depend on function.h. - * collect2.c (is_in_list): Hide unused function. - * dbxout.c: Include function.h. - (source_label_number, dbxout_source_line, dbxout_source_file, - dbxout_function_end, dbxout_begin_function): Wrap/move inside - macros controlling usage. - * gcc.c (TARGET_EXECUTABLE_SUFFIX): Undef before defining. - * output.h (exports_section): Prototype. - - * convex.c (convex_output_function_prologue): Fix format specifier - warning. - (asm_declare_function_name): Fix signed/unsigned warning. - (print_operand): Fix format specifier warning. - * convex.h (S_REGNO_P, A_REGNO_P): Fix signed/unsigned warning. - * dsp16xx-protos.h (uns_comparison_operator, - num_1600_core_shifts): Prototype. - * dsp16xx.c: Include tm_p.h, not dsp16xx-protos.h. - (frame_size, frame_pointer_offset): Delete. - (dsp16xx_output_function_prologue, dsp16xx_output_function_epilogue): - Make static. Fix format specifier warnings. - * dsp16xx.h (IS_ACCUM_REG): Fix unsigned>=0 warning. - (EXTRA_SECTION_FUNCTIONS): Prototype const_section. - * dsp16xx.md: Add default case in switches. - * fr30.h (IN_RANGE): Delete. - * ia64.h (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings. - * mcore-protos.h (mcore_output_cmov): Const-ify. - * mcore.c (mcore_output_cmov): Likewise. - * mcore.h (switch_to_section): Make static and prototype. - * mn10200.h (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Fix - unsigned>=0 warnings. - * mn10300.h (REGNO_IN_RANGE_P): Likewise. - * rs6000-protos.h (read_only_data_section, - read_only_private_data_section): Prototype. - * rs6000.h (ASM_OUTPUT_BYTE): Fix format specifier warning. - * sh.c (sh_adjust_cost): Mark parameter with ATTRIBUTE_UNUSED. - * sh.h (GENERAL_REGISTER_P): Fix unsigned>=0 warning. - -2001-11-03 Kaveh R. Ghazi - - * dwarf2asm.c (dw2_asm_output_pcrel): Mark parameters with - ATTRIBUTE_UNUSED. - * final.c (final_scan_insn): Add brackets around body of if-stmt. - * gcc.c (convert_filename): Add static prototype. Const-ify. - Wrap variable in macros controlling its use. - * output.h (sdata_section): Add prototype. - - * 1750a.h (EXTRA_SECTION_FUNCTIONS): Add prototype. - (ASM_OUTPUT_ASCII): Avoid signed/unsigned warning. - * c4x.h (INIT_SECTION_FUNCTION): Add prototype. - (ASM_FILE_START): Const-ify. - (ASM_OUTPUT_BYTE_FLOAT, ASM_OUTPUT_SHORT_FLOAT): Fix format - specifier warning. - * c4x.md: Don't use the 'U' integer suffix. - * clipper.md (clipper_movstr): Delete declaration. - * d30v-protos.h (d30v_move_2words): Const-ify. - (debug_stack_info): Add prototype. - * d30v.c: Include "integrate.h". - (d30v_function_arg_boundary, d30v_function_arg, - d30v_function_arg_partial_nregs, d30v_function_arg_advance): Avoid - signed/unsigned warnings. - (d30v_print_operand_memory_reference, d30v_move_2words): - Const-ify. - * d30v.h (REG_CLASS_FROM_LETTER): Use unsigned array subscript. - * fr30.c (fr30_pass_by_reference, fr30_pass_by_value): Prototype. - * fr30.md: Const-ify. - * h8300.h (EXTRA_SECTION_FUNCTIONS): Add prototype. - * i370.c (i370_label_scan, mvs_get_label): Make definition static. - (mvs_get_label_page): Hide unused static function. - * i860.c (current_function_original_name): Const-ify. - * i860/sysv3.h (current_function_original_name): Likewise. - * i860/sysv4.h (current_function_original_name): Likewise. - * i960.md: Add default case in switches. Remove unused variable. - * i960/vx960-coff.h (MULTILIB_DEFAULTS): Undef before defining. - * m32r.md: Const-ify. - * m68hc11-protos.h (m68hc11_asm_file_start): Const-ify. - * m68hc11.c: Include "reload.h". - (static_chain_reg, print_options, m68hc11_asm_file_start): - Const-ify. - * m68hc11.md: Delete unused variable. Const-ify. Add parens - around & in comparison. - * mcore.h (TARGET_ASM_NAMED_SECTION): Undef before defining. - * mn10200.c (shift_mode): Remove trailing comma. - * mn10300-protos.h (output_tst): Const-ify. - * mn10300.c (output_tst): Likewise. - * pa/long_double.h (ASM_OUTPUT_LONG_DOUBLE): Fix format specifier - warnings. - * pa-protos.h (output_ascii): Use regular char *, not unsigned. - * pa.c (output_ascii): Likewise. - * pa/som.h (EXTRA_SECTION_FUNCTIONS): Add prototype. - * pdp11.md (expand_unop): Delete declarations. - * pj-protos.h (pj_output_addsi3): Const-ify. - * pj.c (pj_output_push_int, pj_output_load, pj_output_inc, - pj_output_cnv_op, mode_to_char, pj_output_varidx, pj_print_cond, - unique_src_operand): Add prototypes. - (pj_output_store_into_lval): Make definition static. - (pj_function_incoming_arg): Don't use unary plus. - (pj_output_addsi3): Const-ify. - * romp.md (get_symref): Delete declarations. - * v850-c.c (mark_current_function_as_interrupt): Don't return - value from void function. - * v850.c: Include "integrate.h". - * v850.h (ASM_OUTPUT_LABELREF): Const-ify. - * vax-protos.h (const_section): Add prototype. - -2001-11-03 Aldy Hernandez - - * machmode.def: Add documentation for the seventh argument in - vector modes. - -2001-11-04 Hans-Peter Nilsson - - * doc/invoke.texi (MMIX Options) <-mno-knuthdiv>: Say remainder - consistently. - <-mno-toplevel-symbols>: Change @code{:} to @samp{:}. - <-melf>: Don't have markup for ELF acronym. - -2001-11-03 Hans-Peter Nilsson - - * config.gcc (mmix-*-*): New target. - * doc/invoke.texi: Document MMIX options. - * doc/contrib.texi: Add note about MMIX port to my entry. - * config/mmix/t-mmix: New file. - * config/mmix/mmix.h: New file. - * config/mmix/mmix-protos.h: New file. - * config/mmix/mmix.c: New file. - * config/mmix/mmix.md: New file. - * config/mmix/crti.asm: New file. - * config/mmix/crtn.asm: New file. - -2001-11-03 Kazu Hirata - - * config/sparc/linux-aout.h: Fix comment formatting. - * config/sparc/linux.h: Likewise. - * config/sparc/linux64.h: Likewise. - * config/sparc/lynx.h: Likewise. - * config/sparc/pbd.h: Likewise. - * config/sparc/sol2-sld-64.h: Likewise. - * config/sparc/sol2.h: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sparc.md: Likewise. - * config/sparc/sunos4.h: Likewise. - * config/sparc/vxsim.h: Likewise. - * config/sparc/vxsparc.h: Likewise. - * config/sparc/vxsparc64.h: Likewise. - -Sat Nov 3 10:37:56 2001 Richard Kenner - - * cselib.c (cselib_subst_to_values, case CONST_DOUBLE): Remove - reference to CONST_DOUBLE_MEM in comment. - * emit-rtl.c (gen_rtx_CONST_DOUBLE): Remove one operand. - (gen_rtx, case CONST_DOUBLE): Call it with one less operand. - (init_emit_once): Don't clear CONST_DOUBLE_MEM. - * function.c (pop_function_context_from): Don't call - restore_varasm_status. - * function.h (restore_varasm_status): Delete declaration. - * gengenrtl.c (CONST_DOUBLE_FORMAT): Delete CONST_DOUBLE_MEM slot. - * rtl.c: Likewise. - * rtl.def (CONST_DOUBLE): Update comment. - * rtl.h (CONST_DOUBLE_HIGH, CONST_DOUBLE_LOW): Update operand number. - (CONST_DOUBLE_CHAIN): Likewise. - (CONST_DOUBLE_MEM): Delete. - (gen_rtx_CONST_DOUBLE): Update parameters. - * varasm.c (struct varasm_status): x_pool_offset now HOST_WIDE_INT. - Remove reference to CONST_DOUBLE_MEM. - (const_alias_set): New variable. - (immed_double_const): Change call to gen_rtx_CONST_DOUBLE. - (immed_real_const_1): Adjust tests for 0, 1, and 2. - Don't set CONST_DOUBLE_MEM. - (clear_const_double_mem): Don't do anything with const_tiny_rtx. - (output_constant_def): Don't look at TREE_CST_RTL if INTEGER_CST. - Put constant in const_alias_set. - (struct pool_constant): ALIGN now unsigned. - OFFSET now HOST_WIDE_INT. - Delete LABEL. - (restore_varasm_status): Deleted. - (mark_pool_constant): Mark desc->rtl. - (force_const_mem): Rework to store rtl in hash table, - not CONST_DOUBLE_MEM. - Put constant in const_alias_set. - (find_pool_constant): Check desc->rtl. - (mark_constants, mark_constant): Don't special-case CONST_DOUBLE. - (init_varasm_once): Initialize const_alias_set. - - * expr.c (expand_expr, case ADDDR_EXPR): If at top level, don't call - force_const_mem. - - * reload.c (combine_reloads): Don't combine an output reload if there - are other reloads around for part of the output. - - * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGINGP_P if T is a - constant expression. - (set_mem_decl): New function. - * expr.h (set_mem_decl): New declaration. - * final.c (get_decl_from_op): Don't use ORIGINAL_REGNO if not pseudo. - (output_asm_operand_names): Add tab. - * reload1.c (alter_reg): Set decl of MEM from REG_DECL. - - * builtins.c (get_memory_rtx): Properly set MEM alias set and - attributes. - -2001-11-03 Joseph S. Myers - - * doc/extend.texi, doc/gcc.texi, doc/install.texi, doc/tm.texi: - Use "invalid" instead of "illegal". Use @r in comments in - examples. - -2001-11-02 Neil Booth - - * c-decl.c (pushdecl): Move block inside if conditional to remove - possibility of a segfault. Lookup block-level extern - variables in enclosing scopes correctly. - - * testsuite/gcc.c-torture/compile/20001018-1.x: Remove XFAIL. - -2001-11-02 Aldy Hernandez - - * expmed.c (store_bit_field): Use simplify_gen_subreg to make - SUBREG so we avoid SUBREGing memory. - - * expmed.c (store_bit_field): Same. - -2001-11-02 DJ Delorie - - * config/rs6000/rs6000.c (rs6000_emit_move): Make sure that - using FP registers for DImode mem-mem moves is acceptable. - -2001-11-02 Aldy Hernandez - - * builtins.c (apply_args_size): Handle vector arguments. - (apply_result_size): Same. - - * machmode.def: Set WIDER mode field for all vector entries. - -2001-11-02 Graham Stott - - * recog.c (decode_asm_operands): Check that the SRC is ASM_OPERANDS. - -2001-11-01 Eric Christopher - - * config.gcc: Revert part of earlier patch. - * config/mips/linux.h: Ditto. - * df.c: Include tm_p.h to avoid warnings. - * config/mips/mips.h (ABI_GAS_ASM_SPEC): Add defaults. Adjust - #if/#endif. - * config/mips/mips.c: Define mips_abi regardless. - (mips_output_function_prologues): Add long casts for .frame - output. - (override_options): Allow use of ABI_32. - -2001-11-01 Kazu Hirata - - * config/m68hc11/m68hc11.c: Fix comment formatting. - * config/m68hc11/m68hc11.h: Likewise. - * config/m68hc11/m68hc11.md: Likewise. - -2001-11-01 Neil Booth - - * c-typeck.c (default_conversion): Retain the original expression - codes. - * gcc.dg/Wparentheses.c: New tests. - -2001-11-01 David S. Miller - - * doc/install.texi (Specific, sparc-sun-solaris2*): Bring - 64-bit SPARC description more in line with reality. - -2001-11-01 Joseph S. Myers - - * Makefile.in (GCOV_OBJS): Add version.o. - * gcov.c: Include "version.h" and . - (gcov_version_string): Remove. - (print_usage): Take a parameter to determine whether this is a - call from --help or an error message. Give fuller output that - follows the GNU Coding Standards for --help. - (print_version): New function. - (options): New. - (process_args): Use getopt_long. Support long options. Follow - GNU Coding Standards for --help and --version. - * doc/gcov.texi: Document long options. - Addresses part of PR other/704. - -2001-11-01 John David Anglin - - * pa.c (output_move_double): Fix typo in double load. - -2001-11-01 Kazu Hirata - - * config/h8300/h8300.c (h8300_encode_label): Compute a string - before passing it to ggc_alloc_string. - -2001-11-01 Kazu Hirata - - * config/m68k/3b1.h: Fix comment formatting. - * config/m68k/3b1g.h: Likewise. - * config/m68k/a-ux.h: Likewise. - * config/m68k/amix.h: Likewise. - * config/m68k/apollo68.h: Likewise. - * config/m68k/atari.h: Likewise. - * config/m68k/aux-exit.c: Likewise. - * config/m68k/ccur-GAS.h: Likewise. - * config/m68k/crds.h: Likewise. - * config/m68k/dpx2.h: Likewise. - * config/m68k/dpx2g.h: Likewise. - * config/m68k/hp310.h: Likewise. - * config/m68k/hp320.h: Likewise. - * config/m68k/isi.h: Likewise. - * config/m68k/linux.h: Likewise. - * config/m68k/lynx.h: Likewise. - * config/m68k/m68k-psos.h: Likewise. - * config/m68k/m68k.c: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m68k/m68k.md: Likewise. - * config/m68k/m68kelf.h: Likewise. - * config/m68k/m68kv4.h: Likewise. - * config/m68k/mot3300.h: Likewise. - * config/m68k/news.h: Likewise. - * config/m68k/next.h: Likewise. - * config/m68k/pbb.h: Likewise. - * config/m68k/plexus.h: Likewise. - * config/m68k/sgs.h: Likewise. - * config/m68k/sun3.h: Likewise. - * config/m68k/tower.h: Likewise. - * config/m68k/vxm68k.h: Likewise. - -2001-10-31 DJ Delorie - - * config/mips/mips.h (mips_cache_flush_func): Prototype. - (TARGET_OPTIONS): Support -mflush-func= and -mno-flush-func. - (INITIALIZE_TRAMPOLINE): Use mips_cache_flush_func if nonzero. - * config/mips/mips.c (mips_cache_flush_func): New. - * doc/invoke.texi: Document the new options. - -2001-10-31 Hans-Peter Nilsson - - * config.gcc (cris-*-linux*, tm_file): Rearrange order. - * config/cris/linux.h (LIB_SPEC, STARTFILE_SPEC): Don't redefine. - - * config/cris/cris.h (EH_RETURN_DATA_REGNO): Fix formatting. - - * config/cris/cris.c: Include output.h after tree.h but before - target.h. - -2001-10-31 Zack Weinberg - - * Makefile.in (INTL_TARGETS, POSUB): Delete all references. - (INTL_SUBDIRS): Just intl. - (.SUFFIXES): Add .gmo .po .pox. - (native): Also depend on build-@POSUB@. - (intl.all, intl.install): Depend on config.h and things it includes. - (po-generated): New target; depend on c-parse.c and tradcif.c. - (install-normal): Also depend on install-@POSUB@. - (XGETTEXT, GMSGFMT, MSGMERGE, PACKAGE, CATALOGS): New variables. - (build-, install-, build-po, update-po, install-po, - .po.gmo, .po.pox, $(PACKAGE).pot, po/$(PACKAGE).pot): New rules. - - * aclocal.m4: Prefix each entry in CATALOGS with "po/" - * configure.in: Don't munge XGETTEXT. Don't generate - po/Makefile.in. - * configure: Regenerate. - - * exgettext: Delete. - * config/m68k/m68k.h: Add doc strings for -msky and -mnosky. - * objc/Make-lang.in: Replace $(INTL_TARGETS) with po-generated. - -2001-10-31 Kazu Hirata - - * config/h8300/h8300.md (two anonymous patterns): New. - -2001-10-31 Aldy Hernandez - - * tree.h (tree_index): Add support for V16QI and V8HI. - (V8HI_type_node): New. - (V16QI_type_node): New. - - * tree.c (build_common_tree_nodes_2): Same. - - * c-common.c (type_for_mode): Same. - -2001-10-31 Kazu Hirata - - * config/i386/att.h: Fix comment formatting. - * config/i386/beos-elf.h: Likewise. - * config/i386/bsd.h: Likewise. - * config/i386/bsd386.h: Likewise. - * config/i386/crtdll.h: Likewise. - * config/i386/cygwin.asm: Likewise. - * config/i386/cygwin.h: Likewise. - * config/i386/djgpp.h: Likewise. - * config/i386/freebsd-aout.h: Likewise. - * config/i386/freebsd.h: Likewise. - * config/i386/gas.h: Likewise. - * config/i386/i386-interix.h: Likewise. - * config/i386/i386-protos.h: Likewise. - * config/i386/i386.c: Likewise. - * config/i386/i386.h: Likewise. - * config/i386/i386.md: Likewise. - * config/i386/i386elf.h: Likewise. - * config/i386/interix.c: Likewise. - * config/i386/isc.h: Likewise. - * config/i386/isccoff.h: Likewise. - * config/i386/iscdbx.h: Likewise. - * config/i386/linux.h: Likewise. - * config/i386/lynx.h: Likewise. - * config/i386/mingw32.h: Likewise. - * config/i386/netbsd-elf.h: Likewise. - * config/i386/next.h: Likewise. - * config/i386/osf1elf.h: Likewise. - * config/i386/osfrose.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/i386/seq-gas.h: Likewise. - * config/i386/seq-sysv3.h: Likewise. - * config/i386/sequent.h: Likewise. - * config/i386/sol2.h: Likewise. - * config/i386/sun386.h: Likewise. - * config/i386/uwin.asm: Likewise. - * config/i386/uwin.h: Likewise. - * config/i386/vxi386.h: Likewise. - * config/i386/win32.h: Likewise. - * config/i386/winnt.c: Likewise. - * config/i386/xm-cygwin.h: Likewise. - * config/i386/xm-mingw32.h: Likewise. - -2001-10-31 Kazu Hirata - - * builtins.def: Fix comment typos. - * config/alpha.c: Likewise. - * config/arm/arm.c: Likewise. - * config/avr/avr.h: Likewise. - * config/d30v/d30v.c: Likewise. - * config/d30v/d30v.h: Likewise. - * config/d30v/d30v.md: Likewise. - * config/dsp16xx/dsp16xx.c: Likewise. - * config/fr30/fr30.c: Likewise. - * config/fr30/fr30.md: Likewise. - * config/i386/i386.c: Likewise. - * config/i860/i860.c: Likewise. - * config/i960/i960.c: Likewise. - * config/ia64/ia64.c: Likewise. - * config/mips/mips.c: Likewise. - * config/pa/pa.c: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/s390/s390.c: Likewise. - * config/sparc/sparc.c: Likewise. - -2001-10-30 Kazu Hirata - - * config/mips/elf.h: Fix comment formatting. - * config/mips/elf64.h: Likewise. - * config/mips/iris5.h: Likewise. - * config/mips/iris5gas.h: Likewise. - * config/mips/iris6.h: Likewise. - * config/mips/isa3264.h: Likewise. - * config/mips/linux.h: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/mips.md: Likewise. - * config/mips/mips16.S: Likewise. - * config/mips/netbsd.h: Likewise. - * config/mips/osfrose.h: Likewise. - * config/mips/r3900.h: Likewise. - * config/mips/sni-svr4.h: Likewise. - * config/mips/svr4-t.h: Likewise. - * config/mips/ultrix.h: Likewise. - -2001-10-30 Daniel Berlin - - * bitmap.c (bitmap_element_free): Don't forget to update head->indx - when we update head->current. - -2001-10-30 Neil Booth - - * tree.c (id_string_size): Remove. - (dump_tree_statistics): Update. - * toplev.c (compile_file): If dumping stats, dump tree stats too. - -Tue Oct 30 19:00:43 CET 2001 Jan Hubicka - - * sched-rgn.c (schedule_insns): Fix comment. - -2001-10-30 Zack Weinberg - - * configure.in: Correct previous change: don't assume that - gas's version number _isn't_ the last thing on the line, or - isn't the only number on the line, either. - * configure: Regenerate. - -2001-10-30 Kazu Hirata - - * cfgcleanup.c: Fix a comment typo. - -2001-10-30 Kazu Hirata - - * alias.c: Fix comment formatting. - * recog.c: Likewise. - * config/cris/cris.c: Likewise. - * config/cris/cris.h: Likewise. - * config/i960/i960.c: Likewise. - * config/i960/i960.h: Likewise. - -2001-10-30 Kazu Hirata - - * config/arm/arm.c: Fix a comment typo. - * config/arm/arm.h: Likewise. - * config/ia64/ia64.c: Likewise. - -2001-10-30 Jakub Jelinek - - * emit-rtl.c (set_unique_reg_note): Don't create REG_EQUAL or - REG_EQUIV notes for ASM_OPERANDS. Return the new note (if any). - * rtl.h (set_unique_reg_note): Change return value. - * gcse.c (try_replace_reg): Use set_unique_reg_note. - * cse.c (cse_insn): Likewise. - * expr.c (emit_move_insn): Likewise. - * explow.c (force_reg): Likewise. - * local-alloc (update_equiv_regs): Likewise. - * loop.c (move_moveables, load_mems): Likewise. - * reload (find_reloads): Likewise. - -2001-10-30 Paolo Bonzini - - Localization fixes. - * c-decl.c (parmlist_tags_warning, start_struct, - check_for_loop_decls): Separate messages for struct, union and - enum cases to allow for languages in which they have different - genders. - * c-format.c (scanf_flag_specs): Separate short and long name of - the assignment suppression feature. - (check_format_types): Localize "pointer" and "different types" - strings. - * c-lex.c (lex_number): Localize "an unsigned long int" and - related strings. - (lex_string) [MULTIBYTE_CHARS]: Use initial lowercase letter on - warning message. - * c-typeck.c (build_unary_up): Separate messages for increment and - decrement cases to allow for languages in which they use different - articles. Localize the strings "increment" and "decrement" in one - case. - -Tue Oct 30 11:08:11 CET 2001 Jan Hubicka - - * lcm.c (optimize_mode_switching): Do not rebuild liveness information - when no changes has been made. - - * gcse.c (reg_set_bitmap): Turn into reg_set. - (modify_mem_list_set, canon_modify_mem_list_set) - (clear_modify_mem_tables, free_modify_mem_tables): New. - (gcse_main); Use free_modify_mem_tables. - (free_gcse_mem): Likewise; free the bitmaps. - (alloc_gcse_main): Initialize the bitmaps. - (canon_list_insert): Set canon_modify_mem_list_set. - (record_last_mem_set_info): Likewise; set modify_mem_list_set. - (compute_hash_table): Use clear_modify_mem_tables. - (reset_opr_set_tables): Likewise. - (oprs_not_set_p): reg_set_bitmap is regset. - (mark_set, mark_clobber): Likewise. - - * df.h (DF_EQUIV_NOTES): New constant. - (df_insn_refs_record): Record uses inside or REG_EQUIV/EQUAL notes - when asked for. - - * sched-rgn.c (CHECK_DEAD_NOTES): New constant. - (init_regions, schedule_insns): Conditionalize the checking - code by CHECK_DEAD_NOTES; avoid multiple calls to update_life_info. - -Tue Oct 30 11:02:31 CET 2001 Jan Hubicka - - * i386.md (movti_rex64 splitter): Fix condition. - -2001-10-29 Zack Weinberg - - * configure.in: Do not assume that gas's version number is the - last thing on the first line of as --version output. - * configure: Regenerate. - - * tradcpp.c: Include intl.h. Rename WARNING, ERROR, FATAL to - MT_WARNING, MT_ERROR, MT_FATAL. - (main): Call gcc_init_libintl. - (v_message): Call gettext on msgid and "warning: " - * tradcif.y: Include intl.h. - (yyerror): Make parameter definition consistent with - prototype. Call gettext on msgid argument. - -2001-10-29 Kaveh R. Ghazi - - * combine.c (num_sign_bit_copies): Avoid signed/unsigned - warnings. - - * sparc/sol2.h: Include when L_trampoline is defined. - -Mon Oct 29 19:22:07 2001 Richard Kenner - - * reload1.c (eliminate_regs): Test for reg_renumber being allocated - before referencing it. - -2001-10-26 DJ Delorie - - * config/rs6000/sysv4.h (LINK_SPEC): Allow -msdata=none to - override -G, and force -G0. - -2001-10-29 Joseph S. Myers - - * ChangeLog.2, ChangeLog.3, ChangeLog.4, FSFChangeLog.10, - FSFChangeLog.11, c-common.c, c-common.def, c-common.h, c-decl.c, - c-dump.c, c-typeck.c, except.c, sdbout.c, simplify-rtx.c, - timevar.h, tree.h, varasm.c: Fix spelling errors and typos. - - * loop.h (struct induction): Rename ext_dependant to - ext_dependent. - * loop.c: Change all uses. - (check_ext_dependant_givs): Rename to check_ext_dependent_givs. - All callers changed. - * timevar.c (DEFTIMEVAR): Fix spelling of identifier__ parameter. - -2001-10-29 Joseph S. Myers - - * c-parse.in (expr_no_commas, primary), c-typeck.c - (parser_build_binary_op): Use IS_EXPR_CODE_CLASS. - -2001-10-29 David Edelsohn - - Undo assemble_name change in earlier patch. - -Mon Oct 29 21:11:40 2001 Nicola Pero - - * objc/objc-act.c (finish_message_expr): For the GNU runtime: when - determining the type of the receiver, do not check that TREE_CODE - of receiver is CALL_EXPR before calling receiver_is_class_object(). - (receiver_is_class_object): For the GNU runtime: recognize - the case that the receiver is self in a class method context. - Check that TREE_CODE of receiver is CALL_EXPR when checking that - the receiver is a call to objc_get_class. - -2001-10-29 John David Anglin - - * pa.md (floatunssisf2): Set subreg 0 of operand 2 to zero. - -Mon Oct 29 07:23:33 2001 Richard Kenner - - * Makefile.in (OBJS): Put all files in alphabetical order. - - * dwarf2out.c (add_const_value_attribute): Fix error in last - change. - -Mon Oct 29 12:43:06 CET 2001 Jan Hubicka - - * basic-block.h (purge_all_dead_edges): Add update_life_p argument. - * cfgcleanup.c (merge_blocks): Update the life flag after merging; - fix warning. - * cfgrtl.c (purge_all_dead_edges): Allow updating of liveness. - (life_analysis): call purge_all_dead_edges after deleting noops. - (delete_noop_move): Do not purge CFG. - * toplev.c (rest_of_compilation): Update purge_all_dead_edges call. - -2001-10-28 David Edelsohn - - * config/rs6000/aix31.h (ASM_OUTPUT_EXTERNAL): Use assemble_name. - * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): Delete. - (ASM_GLOBALIZE_LABEL): Use assemble_name. - (ASM_OUTPUT_COMMON): Likewise. - * config/rs6000/rs6000.c (print_operand): Use assemble_name. - (rs6000_output_function_epilogue): Likewise. - (output_mi_thunk): Fix typo. - (rs6000_output_symbol_ref): Use assemble_name. - (output_toc): Likewise. - * config/rs6000/sysv4.h (RS6000_OUTPUT_BASENAME): Delete. - * config/rs6000/xcoff.h (RS6000_OUTPUT_BASENAME): Delete; - assemble_name calls STRIP_NAME_ENCODING. - (ASM_OUTPUT_LABEL): Use assemble_name. - (ASM_GLOBALIZE_LABEL): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_OUTPUT_ALIGNED_COMMON): Indent pseudo-op. Use assemble_name. - (ASM_OUTPUT_LOCAL): Likewise. - -Sun Oct 28 15:45:16 2001 Richard Kenner - - * builtins.c (get_memory_rtx): Handle POINTERS_EXTEND_UNSIGNED case. - (expand_builtin_apply, expand_builtin_return): Likewise. - (expand_builtin_va_arg, expand_builtin_va_copy): Likewise. - -2001-10-28 Joseph S. Myers - - * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4, - ChangeLog.5, ChangeLog, FSFChangeLog.10, FSFChangeLog.11, - c-common.c, c-common.h, c-parse.in, c-typeck.c, cfg.c, config.gcc, - configure, configure.in, except.c, except.h, flow.c, function.c, - gcc.c, gcse.c, genrecog.c, libgcc2.c, loop.c, loop.h, params.def, - predict.def, predict.h, reg-stack.c, regmove.c, sched-deps.c, - sched-int.h, sibcall.c, ssa.c, stringpool.c, toplev.c, tree.c, - unroll.c: Fix spelling errors. - - * doc/extend.texi, doc/invoke.texi: Fix spelling. - - * doc/gcc.texi: Document use of "dependent" and American spelling. - -Sun Oct 28 17:05:36 CET 2001 Jan Hubicka - - * expr.c (emit_group_load): Support CONCATs by storing them to memory - and reloading. - -Sun Oct 28 09:59:54 2001 Richard Kenner - - * expr.c (store_constructor_field): Only call adjust_address on MEM. - -Sun Oct 28 16:48:09 CET 2001 Jan Hubicka - - * genrecog.c (write_switch): Output if before switch for - DT_elt_zero_wide_safe. - -2001-10-28 Kaveh R. Ghazi - - * Makefile.in (toplev.o, halfpic.o): Depend on halfpic.h - * i386/osfrose.h (SUBTARGET_SWITCHES): Add missing comma. - (FUNCTION_PROFILER): Const-ify. - * halfpic.c: Include "expr.h", "output.h" and "halfpic.h". - (eliminate_constant_term, assemble_name, output_addr_const): - Remove declarations. - (ptr_half_pic_address_p, half_pic_hash): Prototype. - (all_refs, half_pic_prefix, half_pic_hash, half_pic_declare, - half_pic_external, half_pic_address_p, half_pic_ptr): Const-ify. - * halfpic.h (ptr_half_pic_address_p, half_pic_finish): Prototype. - (half_pic_declare, half_pic_external): Const-ify. - * toplev.c: Include "halfpic.h". - -2001-10-28 Joseph S. Myers - - * config/alpha/alpha.md, config/arm/arm.c, config/arm/arm.h, - config/d30v/d30v.h, config/fr30/fr30.c, config/i370/x-oe, - config/i386/i386.c, config/i386/i386-interix.h, - config/i386/i386.md, config/i386/i386.h, config/i386/sco5.h, - config/i860/i860.h, config/i860/i860.md, config/m68k/aux-exit.c, - config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.md, - config/ns32k/ns32k.h, config/pa/pa.c, config/rs6000/rs6000.c, - config/sparc/sparc.c, config/m68hc11/m68hc11.c, - config/cris/cris.c, config/cris/cris.h, config/s390/s390.c, - config/s390/s390.h, config/stormy16/stormy16.h, doc/tm.texi: Fix - spelling errors. - - * ChangeLog.0, ChangeLog.1, ChangeLog.2, ChangeLog.3, ChangeLog.4, - ChangeLog.5, ChangeLog, ChangeLog.lib, FSFChangeLog.10, ONEWS, - c-common.c, caller-save.c, cfg.c, cfgcleanup.c, cfgrtl.c, - collect2.c, df.h, diagnostic.h, final.c, gcse.c, gthr.h, - haifa-sched.c, jump.c, local-alloc.c, profile.c, protoize.c, - regmove.c, reload1.c, rtlanal.c, sched-vis.c, ssa.c, stmt.c, - system.h, toplev.c: Fix spelling errors. - -Sat Oct 27 17:32:04 2001 Richard Kenner - - * gcse.c (insert_insn_end_bb): Don't assume PAT is a SET. - - * dwarf2out.c (reg_number): Abort if pseudo. - (reg_loc_descriptor): Return 0 if pseudo. - (is_based_loc): Return 0 if pseudo. - (mem_loc_descriptor): Return 0 for pseudo and handle 0 return from - recursive calls. - (concat_loc_descriptor): Return 0 if either part's descriptor is 0. - (loc_descriptor): Return 0 if can't find location and handle 0 - return from recursive calls. - (loc_descriptor_from_tree): Likewise. - Fix handling of indirect. - Also return 0 for PLACEHOLDER_EXPR. - Clean up COMPONENT_REF cases. - (add_AT_location_descriptor): Simplify, but handle 0 return from - loc_descriptor. - (add_const_value_attribute): Avoid shift count warning. - (add_bound_info): Remove test for PLACEHOLDER_EXPR here. - Set comp_unit_die as context if not in function. - - * config/mips/mips-protos.h: Break up long lines. - Remove needless #ifdef/#endif blocks. - Don't declare functions declared in file made by genpreds or recog.h. - * config/mips/mips.c (mips_output_function_prologue): TSIZE - is now HOST_WIDE_INT; delete unneeded casts. - * config/mips/mips.h: Don't use #elif. - - * expr.c (stor_constructor_field): Always call adjust_address. - Copy TARGET before changing its alias set. - (store_field): Likewise, for TO_RTX. - (get_inner_reference): Stop at PLACEHOLDER_EXPR if can't find - replacement. - (safe_from_p, case ADDR_EXPR): Properly check for conflict. - (find_placeholder): Return 0 if can't find object. - (expand_expr, case PLACEHOLDER_EXPR): Abort if find_placeholder - returns 0. - -Sat Oct 27 16:31:23 CEST 2001 Jan Hubicka - - * ifcvt.c (if_convert): Call clear_aux_for_blocks. - -Sat Oct 27 12:12:09 CEST 2001 Jan Hubicka - - * cfgcleanup.c (merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successors_nojumps): Set BB_UPDATE_LIFE. - (merge_blocks): Properly udpate life after making edge nonfallthru. - * cfgrtl.c (merge_blocks_nomove): Update global_live_at_end. - -2001-10-26 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Remove redundant code. - -2001-10-26 Neil Booth - - * c-typeck.c (convert_arguments): When comparing for enumeral - type equality, use TYPE_MAIN_VARIANT. - * gcc.dg/Wconversion.c: New tests. - -2001-10-26 Kazu Hirata - - * s390/s390.c: Fix comment typos. - * s390/s390.h: Likewise. - * s390/s390.md: Likewise. - -2001-10-26 Alexandre Oliva - - * tree-inline.c (WALK_SUBTREE_TAIL): New macro. - (walk_tree): Use it for tail calls where appropriate. - -2001-10-26 Alexandre Oliva - - * cse.c (check_for_label_ref): Don't require REG_LABEL notes for - non-local label_refs. - -2001-10-26 Kazu Hirata - - * config/h8300/h8300.md (4 anonymous patterns): New. - -2001-10-26 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Clean up. Return the - algorithm through the shift_info structure. - (emit_a_shift): Update the use of get_shift_alg. - -2001-10-27 Daniel Berlin - - * sched-rgn.c: Remove bitset typedef. - Change bitset to sbitmap in prototypes / variable types. - Remove bbset_size. - Remove edgeset_bits. - Remove edgeset_size. - s/BITSET_ADD/SET_BIT/g - s/BITSET_INVERT/sbitmap_ones/g - s/BITSET_INTER/sbitmap_a_and_b/g - s/BITSET_UNION/sbitmap_a_or_b/g - s/BITSET_DIFFER/sbitmap_difference/g - s/bitset_member/TEST_BIT/g - (BITSET_*): Removed. - (bitset_member): Removed. - (extract_bitlst): Rewrite, now that we have sbitmaps, we can use - EXECUTE_IF_SET_IN_SBITMAP. - (split_edges): Rewrite, use sbitmap functions instead of bitset - operations. - (schedule_region): Allocate/free sbitmaps, rather than bitsets. - -2001-10-26 Andreas Schwab - - * reload1.c (emit_input_reload_insns): Fix parens in last - (undocumented) change that was supposed to change only whitespace. - -Fri Oct 26 07:18:08 2001 Richard Kenner - - * cfgcleanup.c (BB_SET_FLAG, BB_CLEAR_FLAG): Add cast to avoid warning. - - * local-alloc.c (update_equiv_regs): Don't make REG_EQUAL note for - ASM_OPERANDS. - -2001-10-26 Andreas Jaeger - - * flow.c (clear_log_links): Remove unused variable. - * cfgcleanup.c (cleanup_cfg): Likewise. - -2001-10-26 Alexandre Oliva - - * tree-inline.c (remap_decl): Don't copy size and size_unit here. - (remap_save_expr): Map a remapped SAVE_EXPR to error_mark_node. - -2001-10-26 Richard Henderson - - * config/alpha/alpha.h (enum reg_class): Add R24_REG, R25_REG; - rename PV_REG to R27_REG. - (REG_CLASS_CONTENTS, REGNO_REG_CLASS): Update. - (REG_CLASS_FROM_LETTER): Update. - (PREFERRED_RELOAD_CLASS): Don't widen a reg class. - * config/alpha/alpha.md (divsi3): Don't hard-code r24, r25, r27. - (udivsi3, modsi3, umodsi3): Likewise. - (divdi3, udivdi3, moddi3, umoddi3): Likewise. - -2001-10-26 Richard Henderson - - * cfg.c (clear_aux_for_blocks): Split out of ... - (free_aux_for_blocks): here. - (clear_aux_for_edges): Split from ... - (free_aux_for_edges): here. - * basic-block.h: Declare them. - * lcm.c (compute_antinout_edge): Use them. - (compute_laterin, compute_available, compute_nearerout): Likewise. - (optimize_mode_switching): Likewise. - -2001-10-26 Richard Henderson - - * Makefile.in (unstage*): Remove as, ld, collect-ld before - moving everything back to the main build directory. - -2001-10-26 Christopher Faylor - - * config/i386/cygwin.h: Search target specific include directory, if - appropriate. - -2001-10-25 Kaveh R. Ghazi - - * dwarf2out.c (PTR_SIZE, default_eh_frame_section): Move outside - of macro guards. Fix #endif comment. - - * output.h (default_exception_section, default_eh_frame_section): - Move prototypes outside of macro guard. - - * crtstuff.c: Fix #endif comment. - -Thu Oct 25 12:21:58 2001 Jeffrey A Law (law@cygnus.com) - - * doc/md.texi (movMM): Clarify semantics of storing into a - non-paradoxical SUBREG. - -2001-10-25 Zack Weinberg - - * langhooks.c (lang_hook_default_clear_binding_stack): New. - (lang_hook_default_get_alias_set): Move next to other alias - hooks. - * langhooks.h: Prototype lang_hook_default_clear_binding_stack. - (LANG_HOOKS_CLEAR_BINDING_STACK): New macro. - (LANG_HOOKS_INITIALIZER): Add it. - * toplev.h (struct lang_hooks): Add clear_binding_stack. - * toplev.c (compile_file): Call lang_hooks.clear_binding_stack - instead of a loop calling poplevel. - -2001-10-25 Nick Clifton - - * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Replace - occurrences of #elif with #if...#endif. - -2001-10-25 Kaveh R. Ghazi - - * cris.h (EH_RETURN_DATA_REGNO): Fix unsigned>=0 warning. - -Thu Oct 25 08:46:06 2001 Richard Kenner - - * alias.c (can_address_p): No longer static. - * emit-rtl.c (get_mem_attrs): New parameter, MODE; all callers changed. - Return 0 if all parameters are default values. - (set_mem_attributes): Set MEM_KEEP_ALIAS_SET_P. - (adjust_address_1): Try harder to compute a size. - * expr.c (expand_assignment, store_constructor): If can't address, - set MEM_KEEP_ALIAS_SET_P. - (store_constructor_field): Don't change set if MEM_KEEP_ALIAS_SET_P. - (store_field): Likewise. - (store_constructor): Simplify call to store_constructor_field. - * expr.h (can_address_p): New declaration. - * gensupport.c (gen_rtx_CONST_INT): New function. - * rtl.h (MEM_KEEP_ALIAS_SET_P): New macro. - (MEM_SIZE): Get size from mode, if not set and not BLKmode. - (MEM_COPY_ATTRIBUTES): Copy MEM_KEEP_ALIAS_SET_P. - - * stmt.c (expand_end_case): Remove orig_minval and use tree_low_cst. - -2001-10-24 Christopher Faylor - - * config/i386/cygwin.h: Use proper path for mingw crt files when - -mno-cygwin. - -Wed Oct 24 18:43:42 2001 Richard Kenner - - * dwarf2out.c (file_info_cmp): Always return consistent results. - -2001-10-24 Roger Sayle - - * stmt.c (expand_end_case): Index jumptables from zero for - suitably small values of minval. - -2001-10-24 Jakub Jelinek - - * stor-layout.c (place_union_field): If any field was aligned with - attribute aligned, set record type's TYPE_USER_ALIGN. - (place_field): Likewise. - (finalize_record_size): Don't clear TYPE_USER_ALIGN. - (layout_type) [ARRAY_TYPE]: Copy element's TYPE_USER_ALIGN. - -2001-10-24 Zack Weinberg - - * c-common.h (struct c_common_identifier): Remove rid_code field. - (C_RID_CODE): Use ->node.rid_code instead of ->rid_code. - - * c-typeck.c (constructor_designated): New local flag. - (struct constructor_stack): Add "designated" field to match. - (start_init): Clear it. - (really_start_incremental_init, push_init_level): Push and - clear it. - (pop_init_level): Pop it. - (set_designator): Set it. - - (pop_init_level): Suppress "missing initializer" warnings if - constructor_designated is true. - (process_init_element): Suppress warning about union - initialization under traditional C, if constructor_designated - is true. - -Wed Oct 24 15:35:38 2001 Richard Kenner - - * integrate.c (copy_rtx_and_substitute, case CALL): Fix error in last - change. - -Wed Oct 24 13:26:12 2001 Jeffrey A Law (law@cygnus.com) - - * h8300.h (RETURN_ADDR_RTX): Remove old, incorrect definition. - -2001-10-24 Dan Nicolaescu - - * ssa-ccp.c (ssa_ccp_substitute_constants): Don't do anything if - the node was already a set to a constant. - -Wed Oct 24 12:41:19 2001 Richard Kenner - - * emit-rtl.c (set_mem_attributes): Fix typo in last change. - * print-rtl.c (print_rtx, case MEM): Improve display of MEM_DECL. - -2001-10-24 Kaveh R. Ghazi - - * s390/linux.h (ASM_OUTPUT_BYTE): Fix format specifier warnings. - (ASM_OUTPUT_ASCII): Const-ify. Fix signed/unsigned warning. - (ASM_OUTPUT_MI_THUNK): Fix format specifier warnings. - * s390.c (s390_final_chunkify): Don't use string concatenation. - (s390_function_prologue, s390_function_epilogue): Const-ify. - * s390.h (FUNCTION_PROFILER): Remove unused variable. - -2001-10-24 Jakub Jelinek - - * c-decl.c (finish_decl): Don't add DECL_STMTs for nested function - prototypes. - -2001-10-23 Stan Shebs - - * config/rs6000/x-darwin: Use -no-cpp-precomp instead of - -traditional-cpp in first-stage compilation. - -Tue Oct 23 21:45:40 2001 Richard Kenner - - * gensupport.c (target_flags): Add. - -Tue Oct 23 13:05:53 2001 Richard Kenner - - * darwin-protos.h (constructor_section, destructor_section, - mod_init_section, mod_term_section): Prototype. - * darwin.c (machopic_finish, update_non_lazy_ptrs, update_stubs): - Const-ify. - * darwin.h (ASM_DECLARE_OBJECT_NAME, ASM_DECLARE_FUNCTION_NAME): - Likewise. - (SECTION_FUNCTION): Prototype `FUNCTION'. Delete - objc_section_init declaration. - (EXTRA_SECTION_FUNCTIONS): Prototype objc_section_init. - (objc_section_init, try_section_alias): Make static. - (alias_section): Make static and hide unused function. - (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier warning. - -Tue Oct 23 13:05:53 2001 Richard Kenner - - * alias.c (can_address_p): Compnonents are not addressable if - the containing type has alias set 0. - (get_alias_set): Rework to use STRIP_NOPS. - Only call front-end routine on object, type, or object with - NOPs stripped, not inner values. - Use language hook to call front-end routine. - * builtins.c (get_memory_rtx): Always call set_mem_attributes. - (expand_builtin_apply): Call set_mem_align on MEMs we make. - Don't pass alignment to emit_block_move. - (expand_builtin_memcpy, expand_builtin_va_copy): Likewise. - (expand_builtin_memset): Likewise, but for clear_storage. - * c-common.c (lang_get_alias_set): Renamed to c_common_alias_set - and remove C++ specific parts. - * c-common.h (c_common_get_alias_set): Add declaration. - * c-lang.c (LANG_HOOKS_GET_ALIAS_SET): New macro. - * calls.c (emit_call_1): Fix typo in sibcall_pop case. - (save_fixed_argument_area): Call set_mem_align. - Remove alignment in call to emit_block_move. - (emit_library_call_value_1, store_one_arg): Likewise. - (target_for_arg): Remove; disabled long ago. - * emit-rtl.c (set_mem_attributes): Rework to only call get_mem_attrs - once and similar cleanups. - (offset_address): Use proper introductory comment. - * expr.c (emit_block_move): Use alignment from that of MEM args, not - from explicit operand; all callers changed. - (clear_storage): Likewise. - (expand_assignment): Don't call set_mem_alias_set on to_rtx. - (store_field): Remove kludge on alias set used for to_rtx. - (highest_pow2_factor, case *_DIV_EXPR): Never return 0. - (expand_expr_unaligned): Call set_mem_attributes instead of - set_mem_alias_set. - * expr.h (emit_block_move, clear_storage): Remove ALIGN argument. - * function.c (assign_stack_temp_for_type): Set MEM alignment. - (expand_function_end): Track MEM attributes of trampolines. - * ifcvt.c (noce_try_cmove_arith): Set alignment of new MEM. - * integrate.c (copy_rtx_and_substitute, case CALL): Copy memory - attributes from original. - * langhooks.c (lang_hook_default_get_alias_set): New function. - (hook_get_alias_set_0): New function. - * langhooks.h (hook_get_alias_set_0): New declaration. - (lang_hook_default_get_alias_set): Likewise. - (LANG_HOOKS_GET_ALIAS_SET): New macro; add to initializer. - * reload1.c (alter_reg): Use adjust_address_nv. - * rtl.c (get_mode_alignment): Moved to here. - * rtl.h (MEM_ALIGN): Take default from mode, if not BLKmode, and - change default if unknown from 1 to BITS_PER_UNIT. - * stor-layout.c (get_mode_alignment): Remove from here. - * toplev.h (struct lang_hoks): Add get_alias_set field. - * tree.h (lang_get_alias_set): Delete declaration. - * config/arc/arc.c (arc_setup_incoming_varags): Set MEM alignment. - * config/i386/i386.c (ix86_setup_incoming_varargs): Likewise. - (ix86_va_arg): Likewise. - * config/i960/i960.c (i960_setup_incoming_varargs): Likewise. - * config/pa/pa.c (hppa_builtin_saveregs): Likewise. - * config/sparc/sparc.c (sparc_va_arg): Likewise. - * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. - (expand_block_move_mem): Remove dead code. - -2001-10-22 Neil Booth - - * c-common.c (warn_div_by_zero): New. - * c-common.h (warn_div_by_zero): New. - * c-decl.c (c_decode_option): Take it on the command line. - * c-typeck.c (build_binary_op): Warn about division by zero. - * doc/invoke.texi: Document the new command line option, fix - documentation of -Wmultichar. - * testsuite/gcc.dg/divbyzero.c: New tests. - * testsuite/gcc.dg/noncompile/20010524-1.c: Update. - -Tue Oct 23 15:30:23 CEST 2001 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Cleanup; use expand_simple_*op. - - * toplev.c (rest_of_compilation): Use CLEANUP_UPDATE_LIFE - to avoid update_life_info call. - * basic-block.h (CLEANUP_UPATE_LIFE): Define. - * cfgcleanup.c (bb_flags): New enum. - (BB_FLAGS, BB_SET_FLAG, BB_CLEAR_FLAG, FORWARDER_BLOCK_P): New macros. - (notice_new_block, update_forwarder_flag): New functions. - (try_simplify_condjump): Use FORWARDER_BLOCK_P. - (try_forward_edges): Likewise; update flags. - (merge_blocks): Likewise. - (outgoing_edges_match): Likewise. - (try_crossjump_to_edge): Likewise. - (try_optimize_cfg): Likewise; initialize and clear the flags; - recompute life info if needed. - (cleanup_cfg): No need to clear aux pointers. - -2001-10-23 Alexandre Oliva - - * config/i386/i386.c (override_options): Default to minimum - stack alignment when optimizing for code size. - * doc/invoke.texi (-mpreferred-stack-boundary): Document the - change. - - * config/i386/i386.c (override_options): Set upper limit of - -mpreferred-stack-boundary to 12. - -2001-10-22 Zack Weinberg - - * recog.c (peephole2_optimize): Add default case to switch. - -2001-10-23 Joseph S. Myers - - * doc/gcc.texi (Sending Patches): Remove. - -2001-10-22 Hans-Peter Nilsson - - * unwind-dw2-fde.c (fde_unencoded_compare): Derefer pc_begin - fields when comparing. - -2001-10-22 Kaveh R. Ghazi - - * arm.h (HOST_INT, HOST_UINT): Delete. Remove all uses. - * arm.c (HOST_INT, HOST_UINT): Likewise. - -2001-10-22 Stan Shebs - - * config/darwin-protos.h (darwin_exception_section): Declare. - (darwin_eh_frame_section): Declare. - -Mon Oct 22 18:21:25 CEST 2001 Jan Hubicka - - * i386.md (movti_rex64): Fix mode. - -2001-10-22 Stan Shebs - - * target.h (struct gcc_target): Add asm_out.exception_section, - asm_out.eh_frame_section. - * target-def.h (TARGET_ASM_EXCEPTION_SECTION): New macro. - (TARGET_ASM_EH_FRAME_SECTION): New. - (TARGET_INITIALIZER): Update. - * output.h (default_exception_section): Declare. - (default_eh_frame_section): Declare. - * dwarf2out.c: Include target.h. - (output_call_frame_info): Call target hook for eh frames. - (default_eh_frame_section): New function. - * except.c: Include target.h. - (output_function_exception_table): Call target hook for exception - section. - * varasm.c (default_exception_section): Rename from - exception_section, remove EXCEPTION_SECTION macro. - - * config/darwin.h (darwin_eh_frame_section): New function. - (EXCEPTION_SECTION): Remove. - (TARGET_ASM_EXCEPTION_SECTION): Define. - * config/nextstep.h (EH_FRAME_SECTION_ASM_OP): Remove. - (nextstep_exception_section): New function. - (nextstep_eh_frame_section): New function. - (TARGET_ASM_EXCEPTION_SECTION): Define. - (TARGET_ASM_EH_FRAME_SECTION): Define. - - * config/pa/som.h (EXCEPTION_SECTION): Remove. - (TARGET_ASM_EXCEPTION_SECTION): Define. - * config/rs6000/sysv4.h, config/rs6000/xcoff.h - (EXCEPTION_SECTION): Remove. - (TARGET_ASM_EXCEPTION_SECTION): Define. - * config/stormy16/stormy16.h: Remove comments referencing - EXCEPTION_SECTION and EH_FRAME_SECTION_ASM_OP. - - * doc/tm.texi: Document TARGET_ASM_EXCEPTION_SECTION and - TARGET_ASM_EH_FRAME_SECTION. - -2001-10-22 Nick Clifton - - * config/mips/mips.md (mul_acc_si): Fix precedence of conditional - terms. - - * c-format.c: Fix spelling typo in comment. - - * sched-int.h: Fix typo in GCC preamble. - -2001-10-21 Craig Rodrigues - - PR debug/4252 - * doc/invoke.texi: Remove references to -fdump-translation-unit. - -2001-10-22 Richard Henderson - - * config/i386/i386.c (ix86_expand_clear): New. - * config/i386/i386-protos.h: Declare it. - * config/i386/i386.md (setcc peep2s): Use it. - (movsi_xor): Unexport. - -2001-10-22 Richard Henderson - - * flow.c (clear_log_links): Use free_INSN_LIST_list, not - free_EXPR_LIST_list for LOG_LINKS. - -2001-10-21 Robert Lipe - - * config/i386/i386.c (sco_asm_named_section): Delete. - (sco_asm_out_constructor): Delete. - * config/i386/sco5.h (ASM_QUAD): Undo damage from att.h. - (ASM_OUTPUT_DOUBLE_INT): Likewise. - (TARGET_ASM_CONSTRUCTOR): Delete. Use default. - (TARGET_ASM_NAMED_SECTION): Use default for ELF. - (EXCEPTION_SECTION): Delete EH scn renaming hack. - -2001-10-21 Kaveh R. Ghazi - - * c-format.c (maybe_read_dollar_number): Use safe-ctype macros - and/or fold extra calls into fewer ones. - * collect2.c (dump_file): Likewise. - * cppexp.c (parse_number): Likewise. - * cpplex.c (_cpp_lex_direct): Likewise. - * final.c (output_asm_insn, asm_fprintf): Likewise. - * fix-header.c (inf_scan_ident, main): Likewise. - * fixinc/fixfixes.c (char_macro_use_fix, char_macro_def_fix): - Likewise. - * fold-const.c (real_hex_to_f): Likewise. - * gen-protos.c (parse_fn_proto): Likewise. - * genattrtab.c (check_attr_test, check_attr_value): Likewise. - * genrecog.c (change_state, write_action): Likewise. - * gensupport.c (shift_output_template): Likewise. - * local-alloc.c (requires_inout): Likewise. - * mips-tfile.c (IS_ASM_IDENT): Likewise. - * protoize.c (is_id_char, main): Likewise. - * real.c (asctoeg): Likewise. - * recog.c (asm_operand_ok): Likewise. - * reload.c (find_reloads): Likewise. - * scan.c (scan_identget_token): Likewise. - * sched-vis.c (print_value): Likewise. - * stringpool.c (ggc_alloc_string): Likewise. - * toplev.c (read_integral_parameter, decode_g_option): Likewise. - * tradcif.y (parse_number, yylex, parse_escape): Likewise. - * tradcpp.c (rescan): Likewise. - * tree.c (clean_symbol_name): Likewise. - * varasm.c (decode_reg_name): Likewise. - - * alpha.h (ASM_OUTPUT_ASCII): Likewise. - * darwin.c (name_needs_quotes, func_name_maybe_scoped): Likewise. - * dsp16xx.h (ASM_OUTPUT_ASCII): Likewise. - * m88k.c (output_ascii): Likewise. - * m88k.h (OVERRIDE_OPTIONS): Likewise. - * mcore.h (REG_CLASS_FROM_LETTER): Likewise. - * ns32k/encore.h (ASM_OUTPUT_ASCII): Likewise. - * sh.h (REG_CLASS_FROM_LETTER): Likewise. - -2001-10-21 Neil Booth - - * langhooks.c (lang_hook_default_do_nothing, - lang_hook_default_decode_option): New defaults. - * langhooks.h: Make hooks unconditional and non-NULL. - * toplev.c (compile_file, toplev_main): Update. - * toplev.h: Update comments. - * objc/objc-act.c (lang_hooks): Update to new paradigm. - -2001-10-21 Kaveh R. Ghazi - - * arm.h (FUNCTION_ARG_REGNO_P): Use IN_RANGE. - - * system.h (IN_RANGE): New macro. - -2001-10-21 Zack Weinberg - - * aclocal.m4 (AM_WITH_NLS): Also create and substitute - INTLDEPS variable, which does not include $LIBICONV. - * Makefile.in: Use INTLDEPS in LIBDEPS. - * configure: Regenerate. - -2001-10-21 Neil Booth - - * cpphash.h (struct cpp_buffer): Delete read_ahead and extra_char. - * cpplex.c (lex_percent, lex_dot): Remove. - (get_effective_char, skip_block_comment, skip_line_comment, - parse_identifier_slow, parse_number, parse_string, save_comment, - _cpp_lex_direct): Update to do lookback freely. - (IF_NEXT_IS, BACKUP): New macros. - * cpplib.c (cpp_push_buffer): Don't set read_ahead and extra_char. - * cppmacro.c (paste_tokens): Update. - -2001-10-20 Nick Clifton - - * doc/invoke.texi (i386 and x86-64 Options): Fix typo. - -2001-10-20 Hans-Peter Nilsson - - * reload1.c (reload): Check CONSTANT_P before calling - LEGITIMATE_PIC_OPERAND_P. - * config/cris/cris.c (cris_legitimate_pic_operand): Revert - workaround of 2001-10-13. - -Sat Oct 20 15:16:10 CEST 2001 Jan Hubicka - - * i386.c (split_di): Handle splitting of DFmode. - -Sat Oct 20 07:27:14 2001 Richard Kenner - - * emit-rtl.c (set_mem_attributes): Alignment is in bits. - (adjust_address_1, offset_address): Likewise. - - * final.c (output_asm_operand_names): New fcn, from output_asm_insn. - (output_asm_insn): Call it for each line output. - Don't record an operand more than once. - - * toplev.h (struct lang_hooks): HONOR_READONLY now bool. - * main.c: Include config.h and system.h, but not ansidecl.h. - * Makefile.in (main.o): Update accordingly. - -Sat Oct 20 12:05:31 CEST 2001 Jan Hubicka - - * i386.h (SSE_REGPARM_MAX): Set to 8 for x86_64. - -Sat Oct 20 12:01:07 CEST 2001 Jan Hubicka - - * basic-block.h (find_sub_basic_blocks): Use sbitmap parameter. - * cfgbuild.c (find_bb_boundaries, compute_outgoing_frequencies): - Break out from ... - (find_sub_basic_blocks): ... here; - (find_many_sub_basic_blocks): New. - * recog.c (split_all_insns): Update find_sub_basic_blocks call. - - * i386.h (ASM_PREFERRED_EH_DATA_FORMAT): Define sdata4. - - * i386.c (ix86_va_arg): Kill indirect_p handling; fix aliasing issues.: - - * i386.c (split_di, split_ti): Revamp to use simplify_subreg. - - * timevar.def (TV_LIFE, TV_LIFE_UPDATE, TV_MODE_SWITCH): new. - * flow.c (update_life_info): Measure time. - * c-decl.c: Include timevar.h - (c_expand_body): Measure time. - * toplev.c (rest_of_compilation): Measure time of mode switching - separately. - * Makefile.in (c-decl.o, cfgcleanup.o): Add dependency. - - * toplev.c (flag_asynchronous_unwind_tables): New global variable. - (lang_independent_options): Add asynchronous-unwind-tables - (toplev_main): flag_asynchronous_unwind_tables implies - flag_unwind_tables. - * flags.h (flag_asynchronous_unwind_tables): Declare. - * dwarf2out.c (dwarf2out_stack_adjust): Take into account - flag_asynchronous_unwind_tables. - (output_call_frame_info): Likewise. - * invoke.texi (-fasynchronous-unwind-tables): Document. - * i386.c (optimization_options): Enable - flag_asynchronous_unwind_tables. - - * i386.c (ix86_expand_setcc): Always expect target to be QImode. - * i386.md (s* expanders): Destination is QImode. - - * toplev.c (rest_of_compilation): Do not call clear_log_links. - * rtl.h (clear_log_links): Kill. - * flow.c (clear_log_links): Make static; accept blocks parameter; - do no clear life info. - (update_life_info): Call clear_log_links. - - * cfganal.c (forwarder_block_p): Avoid active_insn_p calls. - -2001-10-20 Neil Booth - - * cpplex.c (handle_newline, skip_escaped_newlines, - get_effective_char, skip_block_comment, skip_line_comment, - parse_identifier_slow, parse_number, parse_string, - _cpp_lex_direct): Update to do more stepping back. - (trigraph_ok): Similarly. Rename trigraph_p. - (SAVE_STATE, RESTORE_STATE): Remove. - (BUFF_SIZE_UPPER_BOUND): Tweak. Add sanity check. - - * cpplib.c (destringize): Rename destringize_and_run, and - call run_directive directly. - (_cpp_do__Pragma): Simplify. - -2001-10-19 Kaveh R. Ghazi - - * pe.c (arm_pe_unique_section): Const-ify. - * pe.h (TARGET_ASM_NAMED_SECTION): Undef before defining. - (switch_to_section): Add static prototype. - - * output.h (drectve_section): Prototype. - -2001-10-19 Franz Sirl - - * config.gcc (i[34567]86-*-gnu*, arc-*-elf*, d30v-*, - fr30-*-elf, hppa*64*-*-linux*, parisc*64*-*-linux*, hppa*-*-linux*, - parisc*-*-linux*, i370-*-linux*, i[34567]86-*-chorusos*, - i[34567]86-*-elf*, i[34567]86-ncr-sysv4*, i[34567]86-*-netware, - i[34567]86-sequent-ptx4*, i[34567]86-sequent-sysv4*, - i[34567]86-*-beoself*, i[34567]86-*-beos*, i[34567]86-*-freebsd*, - i[34567]86-*-netbsdelf*, i[34567]86-*-linux*libc1, - i[34567]86-*-linux*, i[34567]86-moss-msdos*, i[34567]86-*-moss*, - i[34567]86-go32-rtems*, i[34567]86-*-rtems*, i[34567]86-*-rtemself*, - i[34567]86-*-solaris2*, i[34567]86-*-sysv5*, i[34567]86-*-sysv4*, - i[34567]86-*-udk*, i[34567]86-*-osf1*, i[34567]86-dg-dgux*, - i860-alliant-*, i860-*-sysv4*, ia64*-*-aix*, ia64*-*-linux*, - ia64*-*-hpux*, m32r-*-elf*, m88k-dg-dgux*, m88k-*-sysv4*, mcore-*-elf, - mips*-*-linux*, mn10200-*-*, mn10300-*-*, pj*-linux*, pjl-*, - powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*, - powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*, - powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*, - powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*, - powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*, - powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*, - rs6000-*-mach*, s390-*-linux*, s390x-*-linux*, sh-*-elf*, - sh-*-rtemself*, sh-*-rtems*, sh-*-linux*, stormy16-*-elf, - v850-*-rtems*, v850-*-*, x86_64-*-linux*), cris-*-aout, cris-*-elf, - cris-*-none, cris-*-linux*: Update ${tmfile} list. - (c4x-*-rtems*, c4x-*, i[34567]86-go32-rtems*, i[34567]86-*-rtemscoff*, - i[34567]86-*-rtems*, i[34567]86-*-rtemself*, i[34567]86-*-osf1*, - mn10200-*-*, mn10300-*-*, powerpc-*-beos*, powerpc-*-darwin*, - powerpc-wrs-vxworks*, powerpcle-wrs-vxworks*, v850-*-rtems*, - v850-*-*): Delete superflous ${cpu_type} setting. - * config/linux.h: Delete svr4.h include. - (SET_ASM_OP): Delete. - * config/netware.h (INT_ASM_OP): Undef before define. - * config/ptx4.h: Delete elfos.h include. - (PREFERRED_DEBUGGING_TYPE): Undef instead of wrapping. - * config/svr4.h: Delete elfos.h include. Update commentary. - * config/arc/arc.h, config/d30v/d30v.h, config/fr30/fr30.h, - config/m32r/m32r.h, config/m88k/sysv4.h, config/mn10200/mn10200.h, - config/mn10200/mn10300.h, config/stormy16/stormy16.h, - config/v850/v850.h: Delete svr4.h include. - * config/i370/linux.h, config/i386/osf1elf.h, config/m68k/linux.h, - config/m68k/m68kv4.h, config/m88k/sysv4.h, - config/sparc/sysv4.h: Update includes. - * config/i386/beos-elf.h, config/i386/netware.h, config/i386/ptx4-i.h, - config/i386/rtemself.h, config/i386/sol2.h, config/i386/sysv4.h, - config/i386/sysv5.h, config/i386/udk.h, config/ia64/linux.h, - config/m88k/dguxbcs.h: Delete includes. - * config/i386/dgux.h, config/i386/osf1elfgdb.h: Delete include. - (PREFERRED_DEBUGGING_TYPE): Undef before defining it. - * config/i860/fx2800.h (ASM_OUTPUT_SOURCE_LINE): Undef before defining - it. - * config/m88k/dgux.h: Delete include. - (SDB_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): Undef before - defining it. - * config/pj/pj.h (ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_INTERNAL_LABEL, ASM_OUTPUT_SKIP): Undef before defining it. - * config/sh/elf.h: Update include. - (SDB_DEBUGGING_INFO, DWARF2_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE, - DWARF2_ASM_LINE_DEBUG_INFO): Move behind includes. - -2001-10-19 Catherine Moore - - * config/stormy16/stormy-abi: Updates to varargs descriptions. - * config/stormy16/stormy16.c (stormy16_build_va_list): Reverse - base and count fields. - (stormy16_expand_builtin_va_start): last_reg_count changed to - size_of_reg_args. Use count + size in first comparison. - -Fri Oct 19 15:24:39 2001 Richard Kenner - - * langhooks.h (LANG_HOOKS_HONOR_READONLY): New macro. - * toplev.h (struct lang_hooks): New field HONOR_READONLY. - * emit-rtl.c (set_mem_attributes): Set RTX_UNCHANGING_P from - TREE_READONLY and TYPE_READONLY if lang_hooks.honor_readonly. - Set alignment from type if INDIRECT_REF. - (adjust_address_1, offset_address): Simplify alignment compuitation. - * expr.c (expand_expr, case INDIRECT_REF): Don't set RTX_UNCHANGING_P - here; done by set_mem_attributes. - -2001-10-19 Kaveh R. Ghazi - - * Makefile.in (rtlanal.o): Depend on $(TM_P_H). - * arm-protos.h (rdata_section, zero_init_section, common_section): - Prototype. - * arm.h (ASM_OUTPUT_DEF_FROM_DECLS): Const-ify. - * avr.h (ASM_OUTPUT_SKIP): Rename macro parameter to avoid - traditional mode stringification. - * function.c (thread_prologue_and_epilogue_insns): Wrap variable - in macros controling its use. - * rtlanal.c: Include tm_p.h. - * varasm.c (asm_output_aligned_bss): Mark parameter with - ATTRIBUTE_UNUSED. - (assemble_constant_align, assemble_start_function, assemble_align, - assemble_variable, assemble_trampoline_template, - output_constant_def_contents): Wrap potentially empty if-stmt body - in brackets. - -2001-10-19 Kaveh R. Ghazi - - * a29k-protos.h (literal_section): Prototype. - * a29k.h (ASM_FILE_START): Don't discard pointer qualifier. - * a29k.md: Ensure function pointers are prototyped. - * genattrtab.c (write_eligible_delay): Mark parameter with - ATTRIBUTE_UNUSED. - -2001-10-19 Kaveh R. Ghazi - - * calls.c (emit_call_1): Mark parameter with ATTRIBUTE_UNUSED. - * 1750a.c (print_operand): Fix format specifier warning. - * 1750a.h (ASM_FILE_START): Don't discard pointer qualifier. - * 1750a.md: Likewise. - * gcc.c (init_gcc_specs): Wrap with ENABLE_SHARED_LIBGCC. - * genemit.c (output_add_clobbers): Mark parameter with - ATTRIBUTE_UNUSED. - * genrecog.c (write_subroutine): Likewise. - * integrate.c (expand_inline_function): Delete unused variable. - * varasm.c (remove_from_pending_weak_list): Wrap with - ASM_WEAKEN_LABEL. - -2001-10-19 Jakub Jelinek - - * simplify-rtx.c (simplify_plus_minus): Negate constant iff its neg - field is different to previous argument's neg field. - - * config/alpha/alpha.c (summarize_insn): Don't abort on ASM_INPUT. - -Fri Oct 19 15:24:39 2001 Richard Kenner - - * final.c (get_decl_from_op): New function. - (output_asm_insn): Call it; write "*" when item with decl is address. - -2001-10-19 Janis Johnson - - * doc/install.texi (Specific, sparc-sun-solaris2*) Copy documentation - about 64-bit support from the 3.0_branch version. - -2001-10-19 Zack Weinberg - - * aclocal.m4 (AM_WITH_NLS): AC_DEFINE HAVE_LIBINTL_H and - USE_INCLUDED_LIBINTL when appropriate. - * configure, config.in: Regenerate. - * Makefile.in (datadir): Set to @datadir@. - (intl.o): Also depend on $(CONFIG_H) and system.h. - - * intl.c: Factor out common gettext initialization sequence. - (gcc_init_libintl): New function. - * intl.h: Include intl/libgnuintl.h if USE_INCLUDED_LIBINTL; - otherwise include libintl.h if HAVE_LIBINTL_H; otherwise turn - off NLS. Add multiple include guard. No need to #ifdef-guard - an #undef. Prototype gcc_init_libintl here. - - * collect2.c (main), cppmain.c (general_init), gcc.c (main), - gcov.c (main), protoize.c (main), toplev.c (toplev_main): - Use gcc_init_libintl. - -2001-10-19 Catherine Moore - - * config/stormy16/stormy16.h (ASM_COMMENT_START): Define. - - * config/stormy16/stormy16.c (stormy16_split_move): Make - sure that REG_INC notes are present for auto_inc operands. - -2001-10-19 Andreas Jaeger - - * configure: Regenerated. - * configure.in: Add x86_64 to switch statements. - -2001-10-18 Richard Henderson - - * config/alpha/alpha.md (sibcall_osf_1): Load destination - address into $27 explicitly. - (sibcall_value_osf_1): Likewise. - -Thu Oct 18 16:07:39 2001 Richard Kenner - - * emit-rtl.c (gen_reg_rtx): Also reallocate reg_decl array. - (offset_address): New function. - (free_emit_status): Free regno_decl. - (init_emit): Pass proper number of elements to xcalloc. - Allocate regno_decl. - (mark_emit_status): Mark regno_decl values. - * expr.c (highest_pow2_factor): New function. - (expand_assigment): Use it and offset_address. - Properly handle ptr_mode vs. Pmode in offset calculation. - (store_constructor, expand_expr_unaligned): Likewise. - (expand_expr, case COMPONENT_EXPR): Likewise. - * expr.h (offset_address): New decl. - * function.h (struct emit_status): Add regno_decl. - (REGNO_DECL): New macro. - * final.c (output_asm_name): Move in file and don't conditionalize - on flag_print_asm_name. - (output_asm_insn): Only call output_asm_name if flag_print_asm_name. - Output names of operands, if known. - * function.c (assign_parms): Set REGNO_DECL. - * integrate.c (integrate_decl_tree): Likewise. - * stmt.c (expand_decl): Likewise. - * regclass.c (reg_scan_mark_refs): Propagate REGNO_DECL for copies. - -2001-10-18 Alexandre Oliva - - * attribs.c (handle_noinline_attribute): New function. - (handle_used_attribute): Likewise. - (c_common_attribute_table): Added noinline and used. - * doc/extend.texi (Function Attributes): Document them. - * c-decl.c (duplicate_decls): Propagate DECL_UNINLINABLE. - Warn when merging inline with attribute noinline. - (start_decl, start_function): Warn if inline and attribute - noinline appear in the same declaration. - -2001-10-17 Neil Booth - - * config.gcc: Update c4x and i370 for C front end-specific - dependencies. - * config/c4x/c4x-c.c: New. - * config/c4x/c4x-protos.h (c4x_handle_pragma): Remove. - (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree): - New declarations. - * config/c4x/c4x.c: Don't include c-lex.h or c-pragma.h. - (code_tree, data_tree, pure_tree, noreturn_tree, interrupt_tree): - Make extern. - (c4x_init_pragma): Remove. - (c4x_parse_pragma, c4x_pr_CODE_SECTION, c4x_pr_DATA_SECTION, - c4x_pr_FUNC_IS_PURE, c4x_pr_FUNC_NEVER_RETURNS, c4x_pr_INTERRUPT, - c4x_pr_ignored): Move to c4x-c.c. - * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update. - * config/c4x/t-c4x: Update. - * config/i370/i370-c.c: New. - * config/i370/i370.c: Don't include c-lex.h or c-pragma.h. - (i370_pr_map): Move to i370-c.c. - * config/i370/t-i370: New. - - * doc/tm.texi: Update. - -2001-10-17 Stan Shebs - - * config/rs6000/rs6000.c: Make assorted mechanical formatting and - typo fixes throughout. - (machopic_output_stub): Remove some dead code. - -2001-10-17 Richard Earnshaw - - * cpplex.c (_cpp_get_buff): Fix off-by-one error that caused memory - leak. - -Wed Oct 17 05:26:39 2001 Richard Kenner - - * Makefile.in (print-rtl.o): Depend on TREE_H. - * alias.c (get_alias_set): Make two passes over objects to first - see if inner object is access via restricted pointer. - Defer allocating alias set for restricted pointer until here. - Call find_placeholder with second arg nonzero. - Minor cleanups. - * c-common.c (c_apply_type_quals_to_decl): Defer getting alias - set for restricted pointer types. - * emit-rtl.c (set_mem_attributes): Set more attributes. - (set_mem_align, change_address, adjust_address_1): New functions. - (change_address_1): Now static. - (adjust_address, adjust_address_nv): Deleted. - (replace_equiv_address): Call change_address_1. - * expr.c (get_inner_reference): Handle PLACEHOLDER_EXPR. - (find_placeholder): Get starting point from PLIST arg. - (expand_expr, case PLACEHOLDER_EXPR): Initialize find_placeholder arg. - * expr.h (set_mem_align, change_address, adjust_address_1): New decls. - (adjust_address, adjust_address_nv): New macros. - * print-rtl.c (tree.h): New include. - (print_rtx, case MEM): Print all memory attributes. - -2001-10-17 Richard Henderson - - * config/alpha/alpha.c (direct_call_operand): Don't fall off end. - -2001-10-16 Matt Kraai - - * c-tree.texi: Eliminate duplicated word. - * cpp.texi: Likewise. - * install.texi: Likewise. - * invoke.texi: Likewise. - * tm.texi: Likewise. - -2001-10-17 Michael Collison - - * dsp16xx.c: Fix comment formatting to match GNU standards. - (dsp16xx_output_function_prologue): Change type of 'size' - parameter from 'int' to HOST_WIDE_INT. - (dsp16xx_output_function_epilogue): Change type of 'size' - parameter from 'int' to HOST_WIDE_INT. - -2001-10-16 Richard Henderson - - * configure.in (HAVE_AS_GOTOFF_IN_DATA): New x86 check. - * configure, config.in: Rebuild. - - * config/i386/i386.c (ix86_output_addr_vec_elt): New. - (ix86_output_addr_diff_elt): New. - * config/i386/i386.h (ASM_OUTPUT_ADDR_VEC_ELT): Use them. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - (JUMP_TABLES_IN_TEXT_SECTION): New. - * config/i386/i386.md (tablejump): Handle HAVE_AS_GOTOFF_IN_DATA. - * config/i386/i386-protos.h: Update. - - * config/i386/386bsd.h, config/i386/beos-elf.h, - config/i386/freebsd-aout.h, config/i386/freebsd.h, - config/i386/i386-interix.h, config/i386/i386elf.h, - config/i386/linux.h, config/i386/netbsd-elf.h, - config/i386/netbsd.h, config/i386/openbsd.h, - config/i386/ptx4-i.h, config/i386/rtemself.h, - config/i386/sco5.h, config/i386/sysv4.h, config/i386/x86-64.h - (ASM_OUTPUT_ADDR_DIFF_ELT, JUMP_TABLES_IN_TEXT_SECTION): Remove. - -2001-10-16 Florian Weimer - - * stmt.c (expand_asm_operands): Update commentary. - -2001-10-16 Stan Shebs - - * config/darwin.h (GCC_NAME): Remove, no longer used. - (NO_MATH_LIBRARY): Ditto. - (MATH_LIBRARY): Define to emptiness. - (DWARF2_DEBUGGING_INFO): Define. - (PREFERRED_DEBUGGING_TYPE): Define. - (EXTRA_SECTION_FUNCTIONS): Add darwin_exception_section. - (EXCEPTION_SECTION): Define. - (ASM_PREFERRED_EH_DATA_FORMAT): Define. - * config/darwin.c (darwin_encode_section_info): Handle case of - DECL_INITIAL being error_mark_node. - -2001-10-16 Richard Henderson - - * alpha.c (current_file_function_operand): Don't fail for profiling. - (direct_call_operand): New. - * alpha-protos.h: Declare it. - * alpha.h (EXTRA_CONSTRAINT): Use it. - (PREDICATE_CODES): Add it. - (ASM_OUTPUT_MI_THUNK): Remove. - * alpha32.h (ASM_OUTPUT_MI_THUNK): Remove. - * alpha.md (sibcall_osf_1, sibcall_value_osf_1): Add 's' alternative. - -2001-10-16 Krister Walfridsson - - * config/i386/netbsd-elf.h (ASM_OUTPUT_ADDR_DIFF_ELT): Define. - (JUMP_TABLES_IN_TEXT_SECTION): Define. - -Wed Oct 17 00:21:31 CEST 2001 Jan Hubicka - - * cfg.c (free_edge): Break out from .... - (remove_edge): ... here. - (clear_edges): Use free_edge. - - * att.h (ASM_QUAD): Add comment. - * bsd.h, sco5.h, sun386.h (ASM_QUAD): Define. - -Wed Oct 17 00:01:02 CEST 2001 Jan Hubicka - - * i386.c (split_ti): New function. - (ix86_split_to_parts): Support TImodes. - * i386.h (VALID_INT_MODE_P): Add TImode. - * i386.md (movdi splitter): Fix. - (movti): Support 64bit integer registers. - (movti_rex64): New function and splitter. - - * i386.c (*_cost): Add movsx/movzx cost. - * i386.h (struct processor_costs): Add movsx/movzx fields. - (RTX_COSTS): Handle zero/sign extend + avoid believing that - 64bit operations require split on 64bit machine. - (CONST_COST): Make large 64bit constants expensive on 64bit compilation. - - * i386.c (ix86_setup_incoming_varargs): Fix mode of PLUS. - (ix86_expand_move): Avoid pushes of memory if size does not match; - move long constants to register. - (x86_initialize_trampoline): Fix mode. - * i386.h (ASM_OUTPUT_ADDR_VEC_ELT, ASM_OUTPUT_ADDR_DIFF_ELT): - Use ASM_QUAD on 64bit. - * i386.md (test pattern): Disallow impossible constants. - (tablejump PIC expander): Fix emitting of sum. - (movdicc_rex64): Rename to movdicc. - * linux64.h (LINK_SPEC): Add missing '%'. - -2001-10-16 Alexandre Oliva - - * tree-inline.c (inlinable_function_p): Leave it up to the - front-end to turn -finline-functions into DECL_INLINE set for all - functions. - -2001-10-16 Stan Shebs - - * config/rs6000/darwin.h (ASM_COMMENT_START): Define. - -2001-10-16 Alan Modra - - * recog.c: Formatting and comment typo fixes. - - * configure.in (gcc_cv_as_bfd_srcdir): New. Use it to find gas - version in single tree build. - * configure: Regenerate. - -2001-10-15 David Edelsohn - - * config/rs6000/rs6000.md (cr_logical): Swap order of CODE and - MODE arguments to gen_rtx and compare operand with const0_rtx. - -2001-10-15 Neil Booth - - * system.h: Poison old unused target macros. - * config/dsp16xx.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove. - * config/stormy16/stormy16.c: Update references to obsolete macros. - * config/stormy16/stormy16.h: Similarly. - * config/stormy16/stormy16.md: Similarly. - * config/cris/cris.h: Similarly. - -2001-10-15 Neil Booth - - * cpplib.c (struct pragma_entry): Store the name as a hashnode. - (lookup_pragma_entry, insert_pragma_entry, do_pragma, - cpp_register_pragma): Update accordingly. - -2001-10-14 Neil Booth - - * c-pragma.h (cpp_register_pragma_space): Remove. - * cpplib.h (cpp_register_pragma_space): Remove. - * cpplib.c (lookup_pragma_entry, insert_pragma_entry): New. - (cpp_register_pragma_space): Remove. - (cpp_register_pragma): Simplify using lookup_pragma_entry, - add sanity checks. - (do_pragma): Similarly. - (_cpp_init_internal_pragmas): Don't register namespaces. - - * config/v850/v850.h (REGISTER_TARGET_PRAGMAS): - Don't register namespaces. - * cp/lex.c (init_cp_pragma): Similarly. - * doc/tm.texi: Update. - -2001-10-10 Craig Rodrigues - - PR c/4157 - * config/i386/cygwin.h: Add missing space to MINGW_INCLUDES - -2001-10-13 Michael Collison - - * config/dsp16xx/dsp16xx.md: Rewrite for more efficient code and - add scheduling support. - * config/dsp16xx/dsp16xx.h: Rewrite for more efficient code. - * config/dsp16xx/dsp16xx.c: Rewrite for more efficient code. - * config/dsp16xx/dsp16xx-protos.h: Add new function prototypes. - - -2001-10-13 Hans-Peter Nilsson - - * config/cris/cris.c (cris_legitimate_pic_operand): Kludge around - missing CONSTANT_P test in core GCC. - -2001-10-12 Neil Booth - - * cppmain.c (struct printer): New member source. - (scan_translation_unit): Fix spacing at start of lines. - (cb_line_change): Update. - - * gcc.dg/cpp/spacing2.c: New test. - -2001-10-12 Hans-Peter Nilsson - - * config/cris/arit.c: Use __builtin_labs, not abs. - - * config/cris/cris.h (SET_STRIPPABLE_EXECUTABLE): Don't define. - - * config/cris/cris.c (cris_target_asm_function_epilogue): Move - misplaced sprintf and fprintf argument. - -2001-10-12 Zack Weinberg - - * ABOUT-NLS, aclocal.m4: Update i18n framework from gettext 0.10.40. - * configure.in, Makefile.in: Take out obsolete check-po logic. - * configure, config.in: Regenerate. - -2001-10-12 Ziemowit Laski - - * objc/objc-act.c (finish_objc): Correct precondition for emitting - symtab declarations. - -2001-10-12 Stan Shebs - - * config/rs6000/rs6000.c: Remove uses of "register" specifier in - declarations of arguments and local variables. - -2001-10-12 Christopher Faylor - - * config/i386/cygwin.h: Revert erroneous checkin of crtbegin and - ENDFILE_SPEC definition. - -2001-10-12 Kazu Hirata - - * gthr-dce.h: Fix comment formatting. - * gthr-posix.h: Likewise. - * gthr-single.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-vxworks.h: Likewise. - * gthr-win32.h: Likewise. - -2001-10-12 Jakub Jelinek - - * final.c (output_asm_insn): Make sure assembly dialects are - terminated, not nested. Output `|' and `}' characters if they - don't appear inside assembly dialect selection. - * config/i386/i386.md (rep_movdi_rex64, rep_movsi, rep_movsi_rex64, - rep_movqi, rep_movqi_rex64, rep_stosdi_rex64, rep_stossi, - rep_stossi_rex64, rep_stosqi, rep_stosqi_rex64, strsetsi_1, - strsetsi_rex_1): Add {} braces. - -2001-10-11 Zack Weinberg - - * toplev.c (compile_file): Ignore return value from yyparse. - Always pop any nested binding levels after yyparse returns. - -2001-10-11 Richard Henderson - - * doc/c-tree.texi (Expression trees): Add VTABLE_REF. - -2001-10-11 Richard Henderson - - * dwarf2out.c (add_const_value_attribute): If long < HOST_WIDE_INT, - fall back to add_AT_long_long for large CONST_INT. - -2001-10-11 Richard Henderson - - * config/i386/i386.md (setcc splitters): Add four splitters to - simplify compound compares that simplify_comparison can't handle. - -2001-10-11 Zack Weinberg - - * cpplex.c (digraph_spellings, token_spellings): Make static. - -2001-10-11 Franz Sirl - - * unroll.c (loop_iterations): Fixup last patch. - -2001-10-11 Richard Henderson - - * rtl.h (REG_VTABLE_REF): New. - * rtl.c (reg_note_name): Add it. - * combine.c (distribute_notes): Handle it. - * final.c (final_scan_insn): Handle it. - * tree.def (VTABLE_REF): New. - * expr.c (expand_expr): Handle it. - * varasm.c (assemble_vtable_entry, assemble_vtable_inherit): New. - * output.h: Declare them. - -2001-10-11 Richard Henderson - - * dwarf2out.c (rtl_for_decl_location): If no DECL_RTL, look - for a DECL_INITIAL. - -2001-10-11 David Edelsohn - - * config/rs6000/xcoff.h (UNALIGNED_DOUBLE_INT_ASM_OP): Only - available in 64-bit mode. - -2001-10-11 Hans-Peter Nilsson - - * config.gcc: Add cris-*-aout, cris-*-elf, cris-*-none, - cris-*-linux* cases. - * config/cris/cris-protos.h: New file. - * config/cris/cris.c: New file. - * config/cris/cris.h: New file. - * config/cris/cris.md: New file. - * config/cris/linux.h: New file. - * config/cris/aout.h: New file. - * config/cris/arit.c: New file. - * config/cris/cris_abi_symbol.c: New file. - * config/cris/mulsi3.asm: New file. - * config/cris/t-aout: New file. - * config/cris/t-cris: New file. - * config/cris/t-elfmulti: New file. - * config/cris/t-linux: New file. - * doc/invoke.texi: Add CRIS options. - * doc/install.texi (Specific): Add blurb for CRIS. - -2001-10-10 Hartmut Schirmer - - * config/float-i128.h: Make sure __STDC__VERSION__ is defined - before using it. - * config/float/i32.h: Likewise. - * config/float-i386.h: Likewise. - * config/float-i64.h: Likewise. - * config/float-m68k.h: Likewise. - * config/float-sh.h: Likewise. - * config/float-sparc.h: Likewise. - -2001-10-11 Hans-Peter Nilsson - - * doc/contrib.texi: Add note about CRIS port to my entry. - -2001-10-11 Kazu Hirata - - * basic-block.h: Fix formatting. - * bitmap.h: Likewise. - * cpplib.h: Likewise. - * c-tree.h: Likewise. - * diagnostic.h: Likewise. - * flags.h: Likewise. - * ggc.h: Likewise. - * longlong.h: Likewise. - * real.h: Likewise. - * reload.h: Likewise. - * rtl.h: Likewise. - * tree.h: Likewise. - -2001-10-10 Richard Henderson - - * c-parse.in (asm_operand): Allow named operands. - * genconfig.c (max_recog_operands): Set to 29. - * local-alloc.c (requires_inout): Skip multiple digits. - * recog.c (asm_operand_ok): Likewise. - (preprocess_constraints): Use strtoul for matching constraints. - (constrain_operands): Likewise. - * regmove.c (find_matches): Likewise. - * reload.c (find_reloads): Likewise. - * stmt.c (parse_output_constraint): Don't reject in-out - constraint on operands > 9. Reject '[' in constraint. - (expand_asm_operands): Handle named operands. Use strtoul - for matching constraints. - (check_operand_nalternatives): Split out from expand_asm_operands. - (check_unique_operand_names): New. - (resolve_operand_names, resolve_operand_name_1): New. - - * doc/extend.texi (Extended Asm): Document named operands. - * doc/md.texi (Simple Constraints): Document matching constraints - on operands > 9. - -2001-10-10 Richard Henderson - - * combine.c (try_combine): Handle a SEQUENCE of one insn. - - * i386.c (test splitter): Narrow tests vs paradoxical subregs. - (jcc splitters): Add two splitters to simplify compound compares - that simplify_comparison can't handle. - -2001-10-10 Richard Henderson - - * langhooks.c: Include langhooks.h. - * Makefile.in (langhooks.o): Depend on it. - -Wed Oct 10 23:49:06 EDT 2001 John Wehle (john@feith.com) - - * rtlanal.c (noop_move_p): Insns with a REG_RETVAL note - should not be considered as a no-op. - * flow.c (delete_noop_moves): Handle REG_LIBCALL notes. - -2001-10-10 Stan Shebs - - * alias.c: Remove uses of "register" specifier in declarations - of arguments and local variables. - * c-common.c: Ditto. - * c-convert.c: Ditto. - * c-decl.c: Ditto. - * c-format.c: Ditto. - * c-semantics.c: Ditto. - * c-typeck.c: Ditto. - * caller-save.c: Ditto. - * calls.c: Ditto. - * cfg.c: Ditto. - * cfgbuild.c: Ditto. - * cfgrtl.c: Ditto. - * collect2.c: Ditto. - * combine.c: Ditto. - * convert.c: Ditto. - * cppexp.c: Ditto. - * cppfiles.c: Ditto. - * cse.c: Ditto. - * dbxout.c: Ditto. - * defaults.h: Ditto. - * df.c: Ditto. - * dwarf2out.c: Ditto. - * dwarfout.c: Ditto. - * emit-rtl.c: Ditto. - * explow.c: Ditto. - * expmed.c: Ditto. - * expr.c: Ditto. - * final.c: Ditto. - * fix-header.c: Ditto. - * floatlib.c: Ditto. - * flow.c: Ditto. - * fold-const.c: Ditto. - * function.c: Ditto. - * gcc.c: Ditto. - * gcse.c: Ditto. - * gen-protos.c: Ditto. - * genattrtab.c: Ditto. - * gencheck.c: Ditto. - * genconfig.c: Ditto. - * genemit.c: Ditto. - * genextract.c: Ditto. - * genflags.c: Ditto. - * gengenrtl.c: Ditto. - * genoutput.c: Ditto. - * genpeep.c: Ditto. - * genrecog.c: Ditto. - * gensupport.c: Ditto. - * global.c: Ditto. - * gmon.c: Ditto. - * graph.c: Ditto. - * haifa-sched.c: Ditto. - * hard-reg-set.h: Ditto. - * hash.c: Ditto. - * integrate.c: Ditto. - * jump.c: Ditto. - * lists.c: Ditto. - * local-alloc.c: Ditto. - * loop.c: Ditto. - * mips-tdump.c: Ditto. - * mips-tfile.c: Ditto. - * optabs.c: Ditto. - * prefix.c: Ditto. - * print-rtl.c: Ditto. - * read-rtl.c: Ditto. - * real.c: Ditto. - * recog.c: Ditto. - * reg-stack.c: Ditto. - * regclass.c: Ditto. - * regmove.c: Ditto. - * reload.c: Ditto. - * reload1.c: Ditto. - * reorg.c: Ditto. - * resource.c: Ditto. - * rtl.c: Ditto. - * rtlanal.c: Ditto. - * scan.c: Ditto. - * sched-deps.c: Ditto. - * sched-rgn.c: Ditto. - * sdbout.c: Ditto. - * simplify-rtx.c: Ditto. - * stmt.c: Ditto. - * stor-layout.c: Ditto. - * toplev.c: Ditto. - * tradcif.y: Ditto. - * tradcpp.c: Ditto. - * tree.c: Ditto. - * unroll.c: Ditto. - * varasm.c: Ditto. - * xcoffout.c: Ditto. - -2001-10-10 Richard Henderson - - * rtl.h (can_reverse_comparison_p): Remove. - -2001-10-10 Christopher Faylor - - * config/i386/cygwin.h: Avoid adding include files if -nostdinc is - used. - -2001-10-10 Danny Smith - - * config/i386/mingw32.h (WIN32_NO_ABSOLUTE_INST_DIRS): New define. - (Thanks to Chris Faylor for suggesting macro name). - (CPP_PREDEFINES): Define __MINGW32__ but don't set value; add more - WIN32 defines. - (STANDARD_INCLUDE_DIR): Remove i386- from directory name. - (STANDARD_INCLUDE_COMPONENT): Change to MINGW. - (MATH_LIBRARY): Undef before definition. - (OUTPUT_QUOTED_STRING): Likewise. - * config/i386/cygwin.h: Use WIN32_NO_ABSOLUTE_INST_DIRS. - -2001-10-10 Richard Henderson - - * unwind-dw2-fde.c (fde_compare_t): Change return type to int. - (fde_unencoded_compare): Likewise. Don't use subtraction to get - a tristate comparison value. - (fde_single_encoding_compare, fde_mixed_encoding_compare): Likewise. - -2001-10-10 Franz Sirl - - PR c++/4512 - * unroll.c (loop_iterations): Ignore insns generated by loop - unrolling. - - * config.gcc (mips*-*-gnu*): Delete support. - * config/mips/gnu.h: Remove. - -2001-10-10 Kazu Hirata - - * calls.c: Fix formatting. - * c-decl.c: Likewise. - * cfgcleanup.c: Likewise. - * combine.c: Likewise. - * cppfiles.c: Likewise. - * cpplib.c: Likewise. - * cppmacro.c: Likewise. - * crtstuff.c: Likewise. - * cse.c: Likewise. - * dwarf2out.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * gcse.c: Likewise. - * genattrtab.c: Likewise. - * ggc-page.c: Likewise. - * integrate.c: Likewise. - * libgcc2.c: Likewise. - * loop.c: Likewise. - * optabs.c: Likewise. - * profile.c: Likewise. - * protoize.c: Likewise. - * real.c: Likewise. - * recog.c: Likewise. - * reload1.c: Likewise. - * reload.c: Likewise. - * reorg.c: Likewise. - * resource.c: Likewise. - * sched-rgn.c: Likewise. - * sdbout.c: Likewise. - * stmt.c: Likewise. - * toplev.c: Likewise. - * varasm.c: Likewise. - -2001-10-10 Janis Johnson , Alexandre Oliva - - * langhooks.c: Include rtl.h, insn-config.h and integrate.h. - * Makefile.in (langhooks.o): Add dependencies. - -Wed Oct 10 00:41:29 EDT 2001 John Wehle (john@feith.com) - - * rs6000.c (rs6000_emit_load_toc_table): Don't - strdup the toc label. - (create_TOC_reference): Likewise. - -2001-10-09 Danny Smith - - * config.gcc (i[34567]86-*-mingw32*): Make msvcrt-dependent - version default. - -2001-10-09 Danny Smith - - * config/i386/i386.c (ix86_attribute_table): Correct - min_len, max_len fields for dllimport, dllexport and shared. - -2001-10-10 Joseph S. Myers - - * doc/c-tree.texi, doc/cppinternals.texi, doc/extend.texi, - doc/install.texi, doc/md.texi, doc/rtl.texi, doc/tm.texi: - Consistently use "nonzero" instead of "non-zero". - -2001-10-09 Kazu Hirata - - * acconfig.h: Fix comment formatting. - * c-dump.h: Likewise. - * c-tree.h: Likewise. - * conditions.h: Likewise. - * expr.h: Likewise. - * function.h: Likewise. - * gthr.h: Likewise. - * hwint.h: Likewise. - * integrate.h: Likewise. - * intl.h: Likewise. - * loop.h: Likewise. - * optabs.h: Likewise. - -2001-10-09 Kazu Hirata - - * c-common.h: Fix comment formatting. - * c-dump.c: Likewise. - * cfg.c: Likewise. - * diagnostic.h: Likewise. - * except.c: Likewise. - * gcc.h: Likewise. - * gcov-io.h: Likewise. - * genattrtab.c: Likewise. - * output.h: Likewise. - * predict.h: Likewise. - * reload1.c: Likewise. - * reload.h: Likewise. - * resource.h: Likewise. - * scan.h: Likewise. - * system.h: Likewise. - * tree.h: Likewise. - * tree-inline.c: Likewise. - * tsystem.h: Likewise. - * varasm.c: Likewise. - * xcoffout.h: Likewise. - -2001-10-09 Joseph S. Myers - - * doc/gcc.texi: Document preference for "nonzero" over "non-zero". - -2001-10-09 Joseph S. Myers - - * config/alpha/freebsd.h, config/alpha/lib1funcs.asm, - config/i386/i386elf.h, config/i386/netbsd-elf.h, - config/i386/netware.h, config/mcore/gfloat.h, - config/mcore/mcore.c, config/mcore/mcore.h, config/mcore/mcore.md, - config/netware.h, gccbug.in: Update FSF address. - -2001-10-09 Kazu Hirata - - * c-common.c: Fix comment typos. - * cfgrtl.c: Likewise. - * collect2.c: Likewise. - * cpplex.c: Likewise. - * doloop.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * expr.c: Likewise. - * fold-const.c: Likewise. - * gcc.c: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * global.c: Likewise. - * ifcvt.c: Likewise. - * loop.c: Likewise. - * optabs.c: Likewise. - * protoize.c: Likewise. - * regclass.c: Likewise. - * reorg.c: Likewise. - * rtl.h: Likewise. - * stmt.c: Likewise. - * tree.h: Likewise. - * doc/cpp.texi: Likewise. - * doc/c-tree.texi: Likewise. - * doc/extend.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/objc.texi: Likewise. - * doc/tm.texi: Likewise. - -2001-10-08 Richard Henderson - - * varasm.c (set_named_section_flags): Initialize "declared". - -2001-10-08 Robert Lipe - - * varasm.c (struct in_named_entry): Add declared. - (named_section_first_declaration): New function. - (default_elf_asm_named_section): Use it. - * output.h (named_section_first_declaration): New. - -2001-10-08 Richard Henderson - - * i386.md (movsi_xor): Export. - (setcc peep2): Use it when available; add an alternative to - match zero_extendhisi2_and. - -2001-10-08 Kaveh R. Ghazi - - * romp-protos.h (romp_initialize_trampoline): New function. - * romp.c (romp_initialize_trampoline): Likewise. - * romp.h (INITIALIZE_TRAMPOLINE): Define in terms of - romp_initialize_trampoline. - -2001-10-08 Kaveh R. Ghazi - - * m68k/3b1.h (ASM_OUTPUT_SOURCE_LINE): Don't reference `last_linenum'. - * m68k/auxas.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * m68k/crds.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * m68k/mot3300.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - -2001-10-08 Franz Sirl - - * unroll.c (loop_iterations): Extend check for multiple back edges. - -2001-10-08 Alexandre Oliva - - * langhooks.h: New file. - * Makefile.in (OBJS): Added langhooks.o. - (c-lang.o): Depend on langhooks.h. - (c-common.o): Don't depend on tree-inline.h. - (tree-inline.o): Depend on toplev.h. - (langhooks.o): New rule. - * c-common.c: Don't include tree-inline.h. - (c_mark_lang_decl): Mark argument c as unused. - (c_common_lang_init): Don't initialize hooks here. - * c-lang.c: Include langhooks.h, then override some macros. - (lang_hooks): Initialize with macros in langhooks.h. - (c_init): Don't initialize hooks here. - * toplev.c (struct lang_hooks_for_tree_inlining): New struct. - (struct lang_hooks): Add tree_inlining. Refer to langhooks.h. - * tree-inline.c: Include toplev.h. Don't define hook variables. - * tree-inline.h: Don't define hook types nor declare hook - variables. Move macros to... - * langhooks.c: ... new file, as functions. Adjust all callers. - -2001-10-08 Jeffrey A Law - - * sibcall.c (optimize_sibling_and_tail_recursive_calls): Call - purge_mem_unchanging_flag on all instructions, not just on those - before NOTE_INSN_FUNCTION_BEG. - -2001-10-08 Neil Booth - - * cppmacro.c (_cpp_create_definition): Leave comments off. - - * doc/cpp.texi: Update. - -2001-10-08 DJ Delorie - - * c-decl.c (grokfield): Make sure the only unnamed fields - we're allowing are either structs or unions. - * doc/extend.texi: Add documentation for the unnamed field - extension. - -2001-10-08 Zack Weinberg - - * aclocal.m4 (gcc_AC_PROG_GNAT): New. - * configure.in: Use it. - * configure: Regenerated. - * config/pa/t-linux, config/pa/t-pa, config/pa/t-pa64, - config/pa/t-pro: Set T_ADAFLAGS, not ADA_CFLAGS. - -2001-10-08 Neil Booth - - * cppfiles.c (open_file): Don't mark zero-length files - never-reread here. Don't output diagnostics here either. - (stack_include_file): Mark them never-reread here. - (_cpp_read_file): Update. - -2001-10-08 Richard Henderson - - * config/i386/sol2.h (UNALIGNED_DOUBLE_INT_ASM_OP): New. - -2001-10-08 Richard Henderson - - * expr.c (store_expr): When converting a CONST_INT for storage - in a SUBREG, convert it to both SUBREG modes before stripping - the SUBREG. - -2001-10-08 Richard Henderson - - * varasm.c (restore_varasm_status): New. - * function.h: Declare it. - * function.c (pop_function_context_from): Call it. - -2001-10-08 Richard Henderson - - * c-common.h (struct c_lang_decl): Add declared_inline. - * c-tree.h (DECL_DECLARED_INLINE_P): New. - * c-lang.c (c_disregard_inline_limits): Use it. - * c-decl.c (duplicate_decls): Likewise. - (pushdecl, redeclaration_error_message): Likewise. - (pushdecl): Allocate DECL_LANG_SPECIFIC if needed. - (grokdeclarator): Likewise. Set DECL_DECLARED_INLINE_P. - Set DECL_INLINE if -finline-functions. - (store_parm_decls): Don't allocate DECL_LANG_SPECIFIC here. - -2001-10-08 Neil Booth - - * cppmacro.c (funlike_invocation_p): Move some logic to caller - in enter_macro_context. Create a padding token in its own context - if necessary when the search for '(' fails. - (enter_macro_context): Update. - -2001-10-07 Joseph S. Myers - - * ChangeLog.2, c-decl.c, config/i386/i386.md, doc/gcc.texi, gcc.c, - genmultilib, toplev.c: Fix spelling errors of "separate" as - "seperate", and corresponding spelling errors of related words. - -2001-10-07 Kaveh R. Ghazi - - * builtins.c (expand_builtin_setjmp_receiver): Const-ify. - * c-common.c (fname_var_t, c_tree_code_type, c_tree_code_length): - Likewise. - * c-dump.c (dump_option_value_info): Likewise. - * c-format.c (format_length_info, format_char_info, - format_flag_spec, format_flag_pair, format_kind_info): Likewise. - * collect2.c (names): Likewise. - * cppdefault.h (default_include): Likewise. - * cppexp.c (suffix, vsuf_1, vsuf_2, vsuf_3): Likewise. - * flow.c (life_analysis): Likewise. - * gcc.c (dir_separator_str, modify_target, option_map, - target_option_translations, spec_list_1, extra_specs_1, - init_spec): Likewise. - * gcov.c (gcov_version_string): Likewise. - * genattr.c (write_units): Likewise. - * genattrtab.c (make_length_attrs, write_function_unit_info): Likewise. - * gengenrtl.c (rtx_definition, defs): Likewise. - * genrecog.c (pred_table): Likewise. - * global.c (global_alloc): Likewise. - * lcm.c (optimize_mode_switching): Likewise. - * local-alloc.c (find_free_reg): Likewise. - * params.h (param_info): Likewise. - * predict.c (predictor_info): Likewise. - * protoize.c (unexpansion_struct): Likewise. - * real.c (bmask): Likewise. - * recog.h (insn_operand_data, insn_data): Likewise. - * regclass.c (initial_fixed_regs, initial_call_used_regs): Likewise. - * stmt.c (expand_nl_goto_receiver): Likewise. - * toplev.c (da, debug_args, lang_opt, documented_lang_options, - target_switches, target_options): Likewise. - * tradcif.y (token, tokentab2, yylex): Likewise. - * tree.h (attribute_spec): Likewise. - - * alpha.c (override_options, alpha_lookup_xfloating_lib_func): - Likewise. - * arc.c (arc_output_function_epilogue): Likewise. - * arm.c (processors, all_cores, all_architectures, - arm_override_options, isr_attribute_arg, isr_attribute_args, - arm_isr_value): Likewise. - * avr.c (mcu_type_s, reg_class_tab, order_regs_for_local_alloc): - Likewise. - * c4x.c (c4x_int_reglist): Likewise. - * d30v.c (override_options): Likewise. - * h8300.c (shift_insn): Likewise. - * i386.c (size_cost, i386_cost, i486_cost, pentium_cost, - pentiumpro_cost, k6_cost, athlon_cost, pentium4_cost, ix86_cost, - ix86_expand_sse_comi, ix86_expand_sse_compare, override_options, - builtin_description, bdesc_comi, bdesc_2arg, bdesc_1arg, - ix86_init_mmx_sse_builtins, ix86_expand_builtin): Likewise. - * i386.h (processor_costs, ix86_cost): Likewise. - * m68hc11.c (m68hc11_cost, m6811_cost, m6812_cost): Likewise. - * m68hc11.h (processor_costs, m68hc11_cost): Likewise. - * m68k.c (codes_68881, codes_FPA): Likewise. - * m88k.c (mode_from_align, max_from_align, all_from_align, - best_from_align, m_options): Likewise. - * m88k.h (ORDER_REGS_FOR_LOCAL_ALLOC): Likewise. - * mcore.c (mode_from_align): Likewise. - * mips/elf64.h (UNIQUE_SECTION): Likewise. - * mips/iris6gld.h (UNIQUE_SECTION): Likewise. - * mips.c (mips_sw_reg_names, mips_regno_to_class): Likewise. - * mips.h (mips_regno_to_class): Likewise. - * ns32k.c (scales): Likewise. - * pa.c (import_string, magic_milli): Likewise. - * rs6000.c (alt_reg_names, rs6000_override_options): Likewise. - * sparc.c (leaf_reg_remap, sparc_override_options, - reg_leaf_alloc_order, reg_nonleaf_alloc_order, reg_alloc_orders): - Likewise. - * sparc.h (sparc_cpu_select, leaf_reg_remap): Likewise. - -2001-10-07 Dale Johannesen - - * reload1.c (reload_reg_free_p): Teach register interference - checking that multiple output reloads are emitted in - reverse order. - reload1.c (reload_reg_reaches_end_p): Ditto. - reload1.c (reloads_conflict): Ditto. - -2001-10-07 Joseph S. Myers - - * doc/c-tree.texi, doc/tm.texi: Consistently put NULL and - NULL_TREE inside @code. - -2001-10-07 Joseph S. Myers - - * doc/gcc.texi: Document consistent style of "32-bit", - "Objective-C", and "@code{NULL}". - -2001-10-06 Zack Weinberg - - * cpplex.c (enum spell_type): Add SPELL_NUMBER. - (cpp_token_len, cpp_spell_token, cpp_output_token, - _cpp_equiv_tokens): Handle it. - * cpplib.h (TTYPE_TABLE): Use SPELL_NUMBER for CPP_NUMBER and - CPP_COMMENT, SPELL_NONE for CPP_PADDING and CPP_EOF. - * cppexp.c (_cpp_parse_expr): Use the correct operator code in - error messages. - -Sat Oct 6 07:42:39 2001 Richard Kenner - - * gcc.c (default_compilers): Remove .ada. - -2001-10-06 Neil Booth - - * doc/cppinternals.texi: Update. - -2001-10-06 Zack Weinberg - - * gcc.c (main): Set this_file_error if the appropriate - compiler for a language has not been installed. - -2001-10-06 Ulrich Weigand - - * config/s390/s390.c (s390_va_arg): Use set_mem_alias_set. - -2001-10-05 Joseph S. Myers - - * gccbug.in (CATEGORIES): Add ada. - -2001-10-05 Catherine Moore - - * config/stormy16/stormy-abi: Document abi changes. - * config/stormy16/stormy16.h (REG_ALLOC_ORDER): Redefine. - (ICALL_REGS): New register class. - (NUM_ARGUMENT_REGISTERS): Now 6. - (DEFAULT_PCC_STRUCT_RETURN): Don't try to return structs - in registers. - (REG_CLASS_FROM_LETTER): Map 'z' to ICALL_REGS. - * config/stormy16.md (call_internal, call_value_internal, - indirect_jump): Use new 'z' constraint. - -2001-10-05 Neil Booth - - * doc/cppinternals.texi: Update. - -2001-10-05 Richard Henderson - - * dwarf2out.c (FRAME_BEGIN_LABEL): New. - (output_call_frame_info): Use it instead of __FRAME_BEGIN__ and - the gas section-name-as-label feature. - -2001-10-05 Neil Booth - - * doc/cppinternals.texi: Update. - -Fri Oct 5 08:17:46 2001 Richard Kenner - - * config/i386/i386.c (ix86_split_to_parts): Use trunc_int_for_mode - to ensure valid SImode constants. - -2001-10-05 Alexandre Oliva - - * Makefile.in (c-decl.o): Depend on tree-inline.h. - (c-lang.o): Likewise, as well as insn-config.h and integrate.h. - * c-decl.c: Include tree-inline.h. - (c_expand_body): Call optimize_inline_calls. Determine whether - a function is inlinable upfront, and only clear - DECL_SAVED_TREE, DECL_INITIAL and DECL_ARGUMENTS if it isn't. - * c-lang.c: Include tree-inline.h, insn-config.h and integrate.h. - (c_disregard_inline_limits): New function. - (inline_forbidden_p, c_cannot_inline_tree_fn): Likewise. - (c_post_options): Enable tree inlining if inlining is enabled. - Don't inline trees when instrumenting functions. - (c_init): Initialize lang_disregard_inline_limits and - lang_cannot_inline_tree_fn. - * tree-inline.c (initialize_inlined_parameters): Handle calls - with fewer arguments than declared parameters, and fewer - parameters than passed arguments. Don't assume value is a - DECL. - (declare_return_variable): Convert return value back to the - original type, if it was promoted. - (tree_inlinable_function_p): New function. - (inlinable_function_p): Don't look at DECL_INLINE if we're - inlining all functions. Make it work with a NULL id. - Re-check DECL_UNINLINABLE after language-specific checks. - * tree-inline.h (tree_inlinable_function_p): Declare it. - * integrate.c (save_for_inline): Don't bother to prepare argvec - when not inlining. - * cse.c (check_for_label_ref): Don't check deleted labels. - - * Makefile.in (tree-inline.o): Depend on newly-included headers. - * tree-inline.c: Include headers needed for the functions moved in. - (struct inline_data, INSNS_PER_STMT): Moved from cp/optimize.c. - (remap_decl, remap_block, copy_scopy_stmt, copy_body_r): Likewise. - (copy_body, initialize_inlined_parameters): Likewise. - (declare_return_variable, inlinable_function_p): Likewise. - (expand_call_inline, expand_calls_inline): Likewise. - (optimize_inline_calls, clone_body): Likewise. - (walk_tree, walk_tree_without_duplicates): Moved from cp/tree.c. - (copy_tree_r, remap_save_expr): Likewise. - -2001-10-04 Alexandre Oliva - - * Makefile.in (OBJS): Added tree-inline.o. - (c-common.o): Depend on tree-inline.h. - (tree-inline.o): New target. - * c-common.c: Include tree-inline.h. - (c_mark_lang_decl): Don't mark saved_tree. - (c_common_lang_init): Set lang_anon_aggr_type_p. - * c-common.h (walk_tree_fn, DECL_SAVED_TREE): Moved to tree.h. - (struct c_lang_decl): Moved saved_tree to tree_decl. - * ggc-common.c: Mark saved_tree and inlined_fns of FUNCTION_DECLs. - * integrate.h (function_attribute_inlinable_p): Declare it. - * integrate.c (function_attribute_inlinable_p): Export it. - * tree-inline.c: New file. Define variables declared in... - * tree-inline.h: New file. Declare functions to be moved to - tree-inline.c. Define macros and declare types and hooks for - language-specific tree inlining. - (flag_inline_trees): Moved definition from cp/decl2.c. - * tree.h (walk_tree_fn, DECL_SAVED_TREE): Moved from c-common.h. - (TREE_READONLY_DECL_P, DECL_INLINED_FNS): Moved from cp/cp-tree.h. - (struct tree_decl): Moved saved_tree from c_lang_decl and - inlined_fns from C++'s lang_decl. - -2001-10-04 Loren J. Rittle - - * Makefile.in (STAGE2_FLAGS_TO_PASS): Remove patches which - propagated HOST_CC, HOST_CFLAGS, HOST_LDFLAGS and HOST_CPPFLAGS. - -2001-10-04 Neil Booth - - * doc/cppinternals.texi: Update. - -2001-10-04 Eric Christopher - - * config/mips/mips.c (init_cumulative_args): Remember to set - cum->prototype. - * config.gcc: Redo linux configuration. Add target_cpu_default - of soft-float to all mipsisa32 combinations and tx39. - * config/mips/linux.h: Remove include of mips.h. - -2001-10-03 Loren J. Rittle - - * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CFLAGS, - HOST_LDFLAGS and HOST_CPPFLAGS. - -2001-10-03 Ziemowit Laski - - * c-parse.in (objc_inherit_code, objc_pq_context, - objc_public_flag): Make static. - (objc_interface_context, objc_implementation_context, - objc_method_context, objc_ivar_chain, objc_ivar_context): Move to - global tree array in objc/objc-act.[ch]. - (methoddef): Remove unnecessary code. - - * objc/objc-act.c: (hashed_attribute, hashed_entry, imp_entry): - Hoist struct definitions to objc-act.h. - (nst_method_hash_list, cls_method_hash_list, imp_list, imp_count, - cat_count): Place declaration in objc-act.h. - (objc_tree_index): Move enumeration to objc-act.h. - (objc_global_trees): Place declaration and macro accessors in - objc-act.h. - (implementation_context): Remove duplicate; use - objc_implementation_context instead: - (method_context): Remove duplicate; use objc_method_context - instead. - (objc_ellipsis_node, objc_method_prototype_template, - implemented_classes, function_type): Move global vars to - objc_global_trees. - (init_objc): Use LAST_BASE_TREE_CODE instead of LAST_CODE. - (build_message_expr): Move actual construction of ObjC message - send nodes to finish_message_expr. - (finish_message_expr): New routine, contains code formerly in - build_message_expr. - * objc/objc-act.h (finish_message_expr): New prototype. - (objc_ivar_chain, objc_method_context, objc_ellipsis_node): Remove - declarations; these vars are now part of objc_global_trees. - (objc_tree_index, objc_global_trees): Move definitions from - objc-act.c. - * objc/objc-tree.def: Update copyright info. - -Wed Oct 3 12:22:11 EDT 2001 John Wehle (john@feith.com) - - * dwarf2asm.c (unaligned_integer_asm_op): Abort if - op is NULL. - * sparc/sysv4.h (UNALIGNED_DOUBLE_INT_ASM_OP): Use - only if TARGET_ARCH64. - -2001-10-02 Bernd Schmidt - - * doc/extend.texi: Fix some problems with previous checkin. - * doc/invoke.texi: Likewise. - -2001-10-02 Neil Booth - - * cpphash.h: Update comments. - (cpp_context): Update. - (spec_nodes): Remove n__Pragma. - * cppinit.c (cpp_create_reader): Update. - (builtin_array): Add _Pragma. - * cpplib.h: Update comments. - (NODE_DISABLED, BT_PRAGMA): New. - (cpp_start_lookahead, cpp_stop_lookahead): Remove prototypes. - * cppmacro.c (struct cpp_macro): Remove disabled. - (builtin_macro): Return int, handle _Pragma, push the new token - on the context stack. - (funlike_invocation_p): Unconstify, update. - (enter_macro_context): Handle builtins here. - (replace_args, push_token_context, push_ptoken_context): - Update for prototype changes. - (_cpp_pop_context): Update. - (cpp_get_token): Don't handle buitins, nor _Pragma here. - (cpp_sys_macro_p): Update. - (_cpp_free_definition): Clear disabled flag. - (_cpp_create_definition): Upate. - * cppmain.c: Update comments. - -Tue Oct 2 12:46:01 CEST 2001 Bo Thorsen , - Andreas Jaeger , - Jan Hubicka - - * doc/invoke.texi (i386 Options): Document x86-64 options. - (i386 and x86-64 Options): Rename i386 options section. - - * config/i386/i386.h (TARGET_UNWIND_INFO): New. - (TARGET_SWITCHES): Add -munwind-info. - (MASK_NO_UNWIND_INFO): New. - (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define for - biarch compilation. - (ASM_OUTPUT_DOUBLE_INT): New. - - * config/i386/linux64.h: New spec file for Linux x86-64 support. - * config.gcc: Fix tm_file settings for x86-64. - * config/i386/x86-64.h: New file with OS independent x86-64 - definitions. - * config/i386/biarch64.h: New file used to configure compiler - to biarch/64bit compilation. - - * config/i386/i386.c: (override_options): Set flags default - for 64bit compilation. - -Tue Oct 2 12:46:01 CEST 2001 Jan Hubicka - - * i386.c (legitimize_pic_address): Add missing bits of 64bit support. - (ix86_expand_int_movcc): Optimize DImode conditional moves with - constants on x86_64. - (ix86_attr_length_immediate_default): Support MODE_DI. - * i386.md (fixdi splitter): Add missing "&& 1" in splitter - condition. - (indirect_jump, tablejump): Turn into expander. - -2001-10-02 Joseph S. Myers - - * c-common.c (c_format_attribute_table): Make format and - format_arg attributes apply to function types rather than to - decls. - (is_valid_printf_arglist): Construct an attribute list and pass - that to check_function_format rather than a name. - * c-common.h (check_function_format): Adjust prototype. - * c-decl.c (duplicate_decls): Preserve attributes from type of - built-in decl when allowing for harmless conflict in types. - * c-format.c (record_function_format, - record_international_format, function_format_list, - international_format_info, international_format_list): Remove. - (function_format_info): Remove next, name and assembler_name. - Make format_num and first_arg_num be unsigned HOST_WIDE_INT. - (decode_format_attr): New. - (handle_format_attribute): Handle receiving a type rather than a - decl. Call decode_format_attr. Store format information in a - function_format_info. - (handle_format_arg_attribute): Correct comment. Handle receiving - a type rather than a decl. Use unsigned HOST_WIDE_INT for - arg_num. - (check_format_info_recurse, check_format_info_main): Take argument - numbers as unsigned HOST_WIDE_INT. - (check_function_format): Take a list of attributes from the - function type rather than a name or assembler name. Check for - format attributes in that list and the attributes on the type of - the current function rather than looking through - function_format_list. - (check_format_info): Use unsigned HOST_WIDE_INT for argument - numbers. - (check_format_info_recurse): Take format_arg attributes from the - type of the function calls rather than using - international_format_list. Allow for multiple format_arg - attributes. - * c-typeck.c (build_function_call): Pass type attributes to - check_function_format rather than name or assembler name. Don't - require there to be a name or assembler name to check formats. - -2001-10-02 Joseph S. Myers - - * attribs.c (decl_attributes): Possibly call - insert_default_attributes to insert default attributes on - functions in a lazy manner. - * builtin-attrs.def: New file; define the default format and - format_arg attributes. - * c-common.c (c_format_attribute_table): Move to earlier in the - file. - (c_common_nodes_and_builtins): Initialize format_attribute_table. - (enum built_in_attribute, built_in_attributes, - c_attrs_initialized, c_init_attributes, - c_common_insert_default_attributes): New. - (c_common_lang_init): Don't initialize format_attribute_table. Do - call c_init_attributes. - * Makefile.in (c-common.o): Depend on builtin-attrs.def. - * c-common.h (init_function_format_info): Don't declare. - (c_common_insert_default_attributes): Declare. - * c-decl.c (implicitly_declare, builtin_function): Call - decl_attributes. - (init_decl_processing): Don't call init_function_format_info. - (insert_default_attributes): New. - * c-format.c (handle_format_attribute, - handle_format_arg_attribute): Be quiet about inappropriate - declaration when applying default attributes. - (init_function_format_info): Remove. - * tree.h (enum attribute_flags): Add ATTR_FLAG_BUILT_IN. - (insert_default_attributes): Declare. - -2001-10-02 Joseph S. Myers - - * c-format.c (CPLUSPLUS_STD_VER): Define to STD_C94. - -2001-10-01 Jim Wilson - - * sched-deps.c (add_dependence): When elide conditional dependence, - check that insn doesn't modify cond2. - -2001-10-01 Dale Johannesen - - * config/rs6000/rs6000.h (enum processor_type): Add support - for 7400 (G4) and 7450. - (RTX_COSTS): Ditto. - * config/rs6000/rs6000.c (rs6000_override_options): Ditto. - (rs6000_issue_rate): Ditto. - (rs6000_adjust_cost): Fix cycle counts for compares. - (debug_stack_info): Fix an obvious typo. - * config/rs6000/rs6000.md: Add functional units for 7400 and 7450. - * doc/invoke.texi: Document. - * config/rs6000/darwin.h (TARGET_DEFAULT): Set to be reasonable - for Darwin. - (PROCESSOR_DEFAULT): Ditto. - -2001-10-01 Loren J. Rittle - - * Makefile.in (STAGE2_FLAGS_TO_PASS): Propagate HOST_CC. - (fixinc.sh): Map CC, CFLAGS and LDFLAGS to HOST_* versions for - later recursive make invocation. - -2001-10-01 Hans Boehm - - * optabs.c (emit_libcall_block): When using non-call exceptions, - don't add REG_LIBCALL reg notes to trapping calls. - -2001-10-01 David Billinghurst - - * flow.c (propagate_block_delete_libcall): Remove unused first arg - (propagate_one_insn): Update for above change - -2001-10-01 David Billinghurst - - * unwind-sjlj.c (_Unwind_GetRegionStart, _Unwind_GetDataRelBase, - _Unwind_GetTextRelBase): Argument is unused. - -Mon Oct 1 19:20:57 2001 Richard Kenner - - * alias.c (get_alias_set): Try to replace PLACEHOLDER_EXPR. - Loop through NOPs, placeholders, and components. - Don't go through NOPs if change mode. - (record_alias_subset): Do nothing if SUBSET and SET are the same. - * emit-rtl.c (set_mem_alias_set): Enable check. - * expr.c (find_placeholder): New function. - (expand_expr, case PLACEHOLDER_EXPR): Use it. - (expand_expr, case COMPONENT_EXPR): Always copy OP0 when we need - to modify it and avoid unneeded copies. - * expr.h (expand_expr): Always define. - (find_placeholder): New declaration. - -2001-10-01 Stephane Carrez - - * config/m68hc11/m68hc11.md ("add-split"): Fix add split when - operand 2 is the stack pointer. - ("addr-peephole"): Fix address computation peephole when operand 2 - is the stack pointer. - -Mon Oct 1 09:26:41 2001 Richard Kenner - - * config/i386/i386.c (ix86_va_arg): Call set_mem_alias_set. - (ix86_setup_incoming_varargs): Likewise. - -2001-10-01 Jason Merrill - - * stor-layout.c (layout_type): Don't complain about too-large - array here. - -Mon Oct 1 06:43:41 2001 Richard Kenner - - * function.c (keep_stack_depressed): Don't use delete_insn. - - * expr.h (set_mem_alias_set): Move decl to here. - * rtl.h (mem_attrs): New typedef and struct. - (union rtunion_def): Add field for mem_attrs. - (X0MEMATTR, MEM_ATTRS): New macros. - (MEM_ALIAS_SET): Use MEM_ATTRS. - (MEM_DECL, MEM_OFFSET, MEM_SIZE, MEM_ALIGN): New macros. - (MEM_COPY_ATTRIBUTES): Copy MEM_ATTRS. - (set_mem_alias_set): Delete decl from here. - - * alias.c (set_mem_alias_set): Delete from here. - * emit-rtl.c (mem_attrs_htab): New variable. - (rtx_htab_mark, rtx_htab_mark_1): Deleted. - (mem_attrs_htab_hash, mem_attrs_htab_eq): New functions. - (mem_attrs_mark, get_mem_attrs): Likewise. - (gen_rtx_MEM): Clear MEM_ATTRS. - (set_mem_attributes): Move to here. - (set_mem_alias_set): Likewise, and call get_mem_attrs. - (init_emit_once): const_int_htab now deletable htab. - Initialize mem_attrs_htab. - * explow.c (set_mem_attributes): Delete from here. - * function.c (put_var_into_stack): Clear MEM_ATTRS. - (gen_mem_addressof): Likewise; rework to use set_mem_attributes. - * ggc-common.c (ggc_mark_rtx_children, case MEM): New case. - * reload1.c (reload): Rework changing REG to MEM. - -2001-09-30 H.J. Lu - - * acconfig.h (PREFIX_INCLUDE_DIR): New variable. - * config.in: Rebuild. - -2001-09-30 Stephane Carrez - - * config/m68hc11/m68hc11.md ("cmpqi_1"): Fix constraints. - ("tsthi_1"): Avoid allocation in register y. - ("*movqi_68hc12"): Reorganize and fix constraints. - ("zero_extendqisi2"): Prefer d over x and y for operand 1. - ("addqi3"): Likewise. - ("addhi3"): Fix constraints. - ("*logicalhi3_zexthi"): Disparage soft registers. - -2001-09-30 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Fix move of sp - to tmp reg. - -2001-09-30 Stephane Carrez - - * config/m68hc11/m68hc11.h(INCOMING_RETURN_ADDR_RTX): Remove so - that we use setjmp/longjmp exceptions. - -2001-09-30 Neil Booth - - * cpphash.h (POOL_ALIGN, POOL_FRONT, POOL_LIMIT, POOL_BASE, - POOL_SIZE, POOL_ROOM, POOL_COMMIT, struct cpp_chunk, - struct cpp_pool, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve, - _cpp_pool_alloc, _cpp_next_chunk): Remove. - (_cpp_extend_buff, BUFF_ROOM): Update. - (_cpp_append_extend_buff): New. - (struct cpp_reader): Remove macro_pool, add a_buff. - * cppinit.c (cpp_create_reader): Initialize a_buff, instead of - macro_pool. - (cpp_destroy): Free a_buff instead of macro_pool. - * cpplex.c (new_chunk, chunk_suitable, _cpp_next_chunk, - new_chunk, _cpp_init_pool, _cpp_free_pool, _cpp_pool_reserve, - _cpp_pool_alloc, ): Remove. - (parse_number, parse_string): Update use of _cpp_extend_buff. - (_cpp_extend_buff): Update. - (_cpp_append_extend_buff, cpp_aligned_alloc): New. - * cpplib.c (glue_header_name, parse_answer): - Update use of _cpp_extend_buff. - (cpp_register_pragma, cpp_register_pragma_space): Use - _cpp_aligned_alloc. - (do_assert, do_unassert): Check for EOL, update. - * cppmacro.c (stringify_arg, collect_args): Update to use - _cpp_extend_buff and _cpp_append_extend_buff. - (save_parameter, parse_params, alloc_expansion_token, - _cpp_create_definition): Rework memory management. - -2001-09-29 Andris Pavenis - - * config/i386/xm-djgpp.h (GCC_DRIVER_HOST_INITIALIZATION): Don't - update md_exec_prefix. - (UPDATE_PATH_HOST_CANONICALIZE): Don't free PATH as it can point - to string constant. - -2001-09-30 Ulrich Weigand - - * config/s390/s390.h (EXTRA_CC_MODES): Add CCLmode. - (SELECT_CC_MODE): Use s390_select_ccmode. - * config/s390/s390-protos.h (s390_select_ccmode): Add. - * config/s390/s390.c (s390_select_ccmode): New. - (s390_match_ccmode): Add CCLmode. - (s390_branch_condition_mask, s390_branch_condition_mnemonic): New. - (output_branch_condition, output_inverse_branch_condition): Removed. - (print_operand): Use s390_branch_condition_mnemonic. - * config/s390/s390.md (addsi3_cc, addsi3_cconly, addsi3_cconly2, - subsi3_cc, subsi3_cconly): Use logical instructions and CCLmode. - (bunordered, bordered, buneq, bungt, bunlt, bnuge, bunle, bltgt): New. - - * config/s390/s390.c (check_and_change_labels): Preserve CC mode - when converting conditional branches to far branches. - * config/s390/s390.md (cmpstr_const, cmpstr_64, cmpstr_31, cmpint_si, - cmpint_di): Use CCSmode instead of CCUmode. - - * config/s390/s390.c (legitimate_la_operand_p): New. - * config/s390/s390-protos.h (legitimate_la_operand_p): Add. - * config/s390/s390.md (movsi): Convert load address patterns to - arithmetic operations when necessary. - (addaddr_picR, addaddr_picL, addaddr_picN): Removed. - (do_la): Renamed to *do_la and use legitimate_la_operand_p. - (*do_la_reg_0): Don't use before reload. - - * config/s390/s390.c (legitimize_address): Make more efficient - use of two-register addressing mode. - - * config/s390/s390.c (s390_function_prologue): Fix incorrect prolog - with -mno-backchain in some corner cases. - - * config/s390/s390.md (cmpsi_cct): Operands 0 and 1 do not commute. - -2001-09-29 Alexandre Oliva - - * reload.c (find_reloads): Mark new USE insns with QImode. - (find_reloads_toplev, find_reloads_address, subst_reg_equivs, - find_reloads_subreg_address): Likewise. - * regrename.c (note_sets, clear_dead_regs): Abort if pseudos are - encountered. - * reload1.c (reload_combine_note_use): Likewise, inside USEs and - CLOBBERs. - (reload): Make sure there are no USEs with mode other than - VOIDmode. At the end, remove those marked with QImode. - -2001-09-29 Per Bothner - - * cppdefault.c (cpp_include_defaults): Also search PREFIX_INCLUDE_DIR. - * Makefile.in (includedir): Rename to local_includedir. - (includedir): Define as $(prefix)/include. - * config.in (PREFIX_INCLUDE_DIR): New variable. - * configure.in (PREFIX_INCLUDE_DIR): Test for new variable. - -2001-09-29 Bernd Schmidt - - * config/i386/i386.c (init_mmx_sse_builtins): Fix type of storelps and - storehps builtins. - * doc/extend.texi (Vector Extensions): New node. - * doc/invoke.texi (Machine Dependent Options): Add documentation for - i386 -mmmx, -msse, -m3dnow. - -Sat Sep 29 15:08:16 CEST 2001 Jan Hubicka - - * doc/invoke.texi (Optimize Options): Revert an accidental checkin. - -2001-09-29 Hans-Peter Nilsson - - * cse.c (cse_insn) [HAVE_cc0]: Fix typo delete-insn -> delete_insn. - - * doc/invoke.texi (Optimize Options): Delete spurious @table. - -2001-09-28 Richard Henderson - - * varasm.c (assemble_integer): Bound alignment check by - BIGGEST_ALIGNMENT. - - * cfgrtl.c (redirect_edge_and_branch): Abort if redirect_jump fails. - -2001-09-28 Rainer Orth - - * config/i386/sol2.h (CPLUSPLUS_CPP_SPEC): Define. - -2001-09-25 Bernd Schmidt - - Mostly from Graham Stott - * c-common.c (type_for_mode): Add support for V2SFmode. - * tree.c (build_common_tree_nodes_2): Likewise. - * tree.h (enum tree_index, global_trees): Likewise. - * config/i386/i386.c (x86_3dnow_a): New variable. - (override_options): Support 3Dnow extensions. - (bdesc_2arg, bdesc_1arg): Some SSE instructions are also part of - Athlon's version of 3Dnow. - (ix86_init_mmx_sse_builtins): Create 3Dnow builtins. - (ix86_expand_builtin): Handle them. - (ix86_hard_regno_mode_ok): Support V2SFmode if using 3Dnow. - * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, TARGET_3DNOW, - TARGET_3DNOW_A): New macros. - (TARGET_SWITCHES): Add 3Dnow switches. - (VALID_MMX_REG_MODE_3DNOW): New macro. - (VECTOR_MODE_SUPPORTED_P): Use it. - (enum ix86_builtins): Add entries for 3Dnow builtins. - * config/i386/i386.md (movv2sf_internal, movv2sf, pushv2sf, pf2id, - pf2iw, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3, eqv2sf3, - pfmaxv23sf3, pfminv2sf3, mulv2sf3, femms, prefetch_3dnow, prefetchw, - pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pavgusb, pfrcpv2sf2, - pfrcpit1v2sf3, pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, - pmulhrwvhi3, pswapdv2si2, pswapdv2sf2): New patterns. - (mmx_pmovmskb, mmx_maskmovq, sse_movntdi, umulv4hi3_highpart, - mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pextrw, - mmx_pshufw, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, sfence, - sfence_insn, prefetch): Make these available if TARGET_SSE or - TARGET_3DNOW_A. - -Fri Sep 28 19:18:40 CEST 2001 Jan Hubicka - - * i386-protos.h (ix86_setup_incoming_varargs, ix86_va_arg, - ix86_va_start, ix86_build_va_list): Declare. - * i386.c (ix86_setup_incoming_varargs, ix86_va_arg, - ix86_va_start, ix86_build_va_list): New global functions. - * i386.md (sse_prologue_save_insn): New insn. - (sse_prologue_save): New expander. - * i386.h (EXPAND_BUILTIN_VA_ARG, EXPAND_BUILTIN_VA_START, - BUILD_VA_LIST_TYPE, SETUP_INCOMING_VARARGS): New macros. - -2001-09-28 Neil Booth - - * cpplex.c (new_buff, _cpp_get_buff, _cpp_extend_buff): - Use size_t everywhere, make definitions consistent with - prototypes. - -Fri Sep 28 14:59:34 CEST 2001 Jan Hubicka - - * gcse.c (replace_store_insn): Use delete_insn. - * loop.c (move_movables): Likewise; avoid delete_insn - from clobbering notes moved elsewhere. - (check_dbra_loop): Use delete_insn. - * ssa.c (convert_from_ssa): Likewise. - * cse.c (cse_insn): Use delete_insn. - -2001-09-28 Neil Booth - - * cpphash.h (struct cpp_buff): Make unsigned. - (_cpp_get_buff): Take length of size_t. - (_cpp_unaligned_alloc): New. - (BUFF_ROOM, BUFF_FRONT, BUFF_LIMIT): New. - (struct cpp_reader): Remove ident_pool. Add u_buff. - * cppinit.c (cpp_create_reader): Initialize u_buff, not ident_pool. - (cpp_destroy): Destroy u_buff, not ident_pool. - * cpplex.c (parse_number, parse_string, save_comment, - cpp_token_as_text): Update to use the unaligned buffer. - (new_buff): Make unsigned. - (_cpp_unaligned_alloc): New. - * cpplib.c (glue_header_name): Update to use the unaligned buffer. - * cppmacro.c (new_number_token, builtin_macro, stringify_arg): - Similarly. - (collect_args): Make unsigned. - -2001-09-27 Zack Weinberg - - * cpplex.c (cpp_output_token): Use a putc loop for - SPELL_OPERATOR, and fwrite for SPELL_IDENT. - - * configure.in: Detect fwrite_unlocked and fprintf_unlocked. - * configure, config.in: Regenerate. - * system.h: Replace fwrite and fprintf with their unlocked - variants if available. - -2001-09-27 Richard Henderson - - * dwarf2out.c (dwarf2out_frame_finish): Never elide .debug_frame - in favor of .eh_frame. - -2001-09-27 Aldy Hernandez - - * config/rs6000/rs6000.h (FUNCTION_VALUE): Change hardcoded 33 and 3 - to macros. - (LIBCALL_VALUE): Likewise. - -2001-09-27 Neil Booth - - * cpphash.h: Update comment. - * cpplex.c: Update comments. - (_cpp_can_paste): Remove. - * cpplib.h (_cpp_can_paste): Remove. - * cppmacro.c (paste_tokens, paste_all_tokens): Update to use the - lexer rather than _cpp_can_paste. - -2001-09-27 Neil Booth - - * doc/cppinternals.texi: Update. - -2001-09-26 Neil Booth - - * cpphash.h (struct cpp_pool): Remove locks and locked. - (struct cpp_context): Add member buff. - (struct cpp_reader): Remove member argument_pool. - (_cpp_lock_pool, _cpp_unlock_pool): Remove. - * cppinit.c (cpp_create_reader, cpp_destroy): Argument_pool is dead. - * cpplex.c (chunk_suitable): Remove pool argument. - (MIN_BUFF_SIZE, BUFF_SIZE_UPPER_BOUND, EXTENDED_BUFF_SIZE): New. - (new_buff, _cpp_extend_buff): Update. - (_cpp_get_buff): Fix silly pointer bug. Be more selective about - which buffer is returned. - (_cpp_next_chunk, _cpp_init_pool): Pool locking removed. - (_cpp_lock_pool, _cpp_unlock_pool): Remove. - * cppmacro.c (lock_pools, unlock_pools): Remove. - (push_ptoken_context): Take a _cpp_buff. - (enter_macro_context): Pool locking removed. - (replace_args): Use a _cpp_buff for the replacement list with - arguments replaced. - (push_token_context): Clear buff. - (expand_arg): Use _cpp_pop_context. - (_cpp_pop_context): Free a context's buffer, if any. - -2001-09-26 DJ Delorie - - * c-typeck.c (digest_init): Check for sizeless arrays. - -2001-09-26 Richard Henderson - - * optabs.c (init_one_libfunc): Create a dummy function type - instead of using error_mark_node. - -2001-09-26 Neil Booth - - * cpphash.h (struct _cpp_buff, _cpp_get_buff, _cpp_release_buff, - _cpp_extend_buff, _cpp_free_buff): New. - (struct cpp_reader): New member free_buffs. - * cppinit.c (cpp_destroy): Free buffers. - * cpplex.c (new_buff, _cpp_release_buff, _cpp_get_buff, - _cpp_extend_buff, _cpp_free_buff): New. - * cpplib.h (struct cpp_options): Remove unused member. - * cppmacro.c (collect_args): New. Combines the old parse_arg - and parse_args. Use _cpp_buff for memory allocation. - (funlike_invocation_p, replace_args): Update. - -Wed Sep 26 13:20:51 CEST 2001 Jan Hubicka - - * final.c (final_scan_insn): Use delete_insn instead of delete_note. - -2001-09-25 Andrew Haley - - * except.c (sjlj_mark_call_sites): Change address inside sequence. - -2001-09-24 Andrew Haley - - * config/sh/linux.h (LINK_SPEC): Set dynamic-linker to agree with - glibc. - -2001-09-25 Janis Johnson - Jim Wilson - - * doc/install.texi (Specific, ia64-*-linux): Document. - -Tue Sep 25 17:13:56 CEST 2001 Jan Hubicka - - * Makefile.in (cfgrtl.o): Add. - * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, - free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, - free_aux_for_edge): Declare. - * cfg.c - (HAVE_return): Undefine. - * basic-block.h (alloc_block, alloc_aux_for_block, alloc_aux_for_blocks, - free_aux_for_block, alloc_aux_for_edge, alloc_aux_for_edges, - free_aux_for_edge): New global functions. - (first_delete_block): New static variable. - (init_flow): Clear first_delete_block. - (basic_block_for_insn, label_value_list, tail_recursion_label_list, - can_delete_note_p, can_delete_label_p, commit_one_edge_insertion, - try_redirect_by_replacing_jump, last_loop_beg_note, - back_edge_of_syntactic_loop_p, force_nonfallthru_and_redirect, - delete_insn, delete_insn_chain, create_basic_block_structure, - create_basic_block, flow_delete_block, compute_bb_for_insn, - free_bb_for_insn, update_bb_for_insn, set_block_for_insn, - set_block_for_new_insns, split_block, merge_blocks_nomove, - block_label, try_redirect_by_replacing_jump, last_loop_beg_note, - redirect_edge_and_branch, force_nonfallthru_and_redirect, - force_nonfallthru, redirect_edge_and_branch_force, tidy_fallthru_edge, - tidy_fallthru_edges, split_edge, insert_insn_on_edge, - commit_one_edge_insertion, commit_edge_insertions, dump_bb, debug_bb, - debug_bb_n, print_rtl_with_bb, verify_flow_info, purge_dead_edges, - purge_all_dead_edges): Move to .... - * cfgrtl.c: New file; .... Here. - - * bb-reorder.c (fixup_reorder_chain): Use alloc_aux_for_block. - (reroder_basic_block): Use alloc_aux_for_blocks. - * predict.c (estimate_bb_frequencies): Likewise; use - alloc_aux_for_edges. - * profile.c (compute_branch_probabilities): Likewise. - (branch_prob): Likewise. - * reg-stack.c (reg_to_stack): Likewise. - - * emit-rtl.c (emit_insns_after): Never return NULL. - - * basic-block.h (set_block_for_new_insns): Delete. - * cfgrtl.c (set_block_for_new_insns): Delete. - - * cfgcleanup.c (try_optimize_cfg): Add fake exit edges for noreturn - calls when crossjumping. - - * cfgcleanup.c (try_simplify_condjump): Cleanup invert_jump call. - * unroll.c (copy_loop_body): Use delete_insn. - - * final.c (final, final_scan_insn): Use delete_insn/delete_note. - * function.c (fixup_var_refs_insn, fixup_var_refs_1, - keep_stack_depressed): Likewise. - * gcse.c (cprop_cc0_jump): Likewise. - * local-alloc.c (update_equiv_regs): Likewise. - * loop.c (scan_loop, loop_delete_insns): Likewise. - * regmove.c (try_auto_increment, fixup_match_1): Likewise. - * reload1.c (reload, calculate_needs_all_insns, reload_as_needed, - delete_output_reload, delete_address_reloads_1, - reload_cse_delete_noop_set, reload_combine, reload_cse_move2add): - Likewise. - * sibcall.c (replace_call_placeholder): Likewise. - * cse.c (cse_insn): Likewise. - -2001-09-25 Bernd Schmidt - - From Graham Stott - (def_builtin): Only define builtins appropriate for target_flags. All - callers changed. - (builtin_decsription): Add new field mask which is used to determine - when to define the builtin via the macro def_builtin. - - (bdesc_comi): Initialize new mask fields. - (bdesc_2srg): Likewise. - (bdesc_1arg): Likewise. - - * config/i386/i386.c (ix86_init_builtins): Correct return type - building v4hi_ftype_v4hi_int_int tree node. - (ix86_expand_sse_comi): Fix typo swapping operands. - Don't swap comparison condition, it is already swapped. - (ix86_expand_sse_compare): Before swapping operands - move operand 1 into new rtx and not the target rtx. - Don't swap comparison condition, it is already swapped. - Always check whether we need to create a new TARGET. - - * config/i386/i386.md: (sse_comi) Fix typos. - (sse_ucomi): Likewise. - (cvtss2si): Fix operand 0 contraint. - (cvttss2si): Likewise. - (sse_unpckhps): Fix mode for operand 2. - (sse_unpcklps): Likewise. - -2001-09-25 Graham Stott - - * sibcall.c (skip_copy_to_return_value): Tighten return value - copy check. - -2001-09-24 David Edelsohn - - * rs6000.c (lwa_operand): Address must be word aligned. - -Mon Sep 24 18:57:59 2001 Richard Kenner - - * tree.c (type_hash_marked_p): Consider as marked if debug symbol - number has been set. - (type_hash_mark): Mark type itself. - -2001-09-24 Neil Booth - - * c-lex.c (cb_def_pragma): Update. - (c_lex): Update, and skip padding. - * cppexp.c (lex, parse_defined): Update, remove unused variable. - * cpphash.h (struct toklist): Delete. - (union utoken): New. - (struct cpp_context): Update. - (struct cpp_reader): New members eof, avoid_paste. - (_cpp_temp_token): New. - * cppinit.c (cpp_create_reader): Update. - * cpplex.c (_cpp_temp_token): New. - (_cpp_lex_direct): Add PREV_WHITE when parsing args. - (cpp_output_token): Don't print leading whitespace. - (cpp_output_line): Update. - * cpplib.c (glue_header_name, parse_include, get__Pragma_string, - do_include_common, do_line, do_ident, do_pragma, - do_pragma_dependency, _cpp_do__Pragma, parse_answer, - parse_assertion): Update. - (get_token_no_padding): New. - * cpplib.h (CPP_PADDING): New. - (AVOID_LPASTE): Delete. - (struct cpp_token): New union member source. - (cpp_get_token): Update. - * cppmacro.c (macro_arg): Convert to use pointers to const tokens. - (builtin_macro, paste_all_tokens, paste_tokens, funlike_invocation_p, - replace_args, quote_string, stringify_arg, parse_arg, next_context, - enter_macro_context, expand_arg, _cpp_pop_context, cpp_scan_nooutput, - _cpp_backup_tokens, _cpp_create_definition): Update. - (push_arg_context): Delete. - (padding_token, push_token_context, push_ptoken_context): New. - (make_string_token, make_number_token): Update, rename. - (cpp_get_token): Update to handle tokens as pointers to const, - and insert padding appropriately. - * cppmain.c (struct printer): New member prev. - (check_multiline_token): Constify. - (do_preprocessing, cb_line_change): Update. - (scan_translation_unit): Update to handle spacing. - * scan-decls.c (get_a_token): New. - (skip_to_closing_brace, scan_decls): Update. - * fix-header.c (read_scan_file): Update. - - * doc/cpp.texi: Update. - -2001-09-24 Kaveh R. Ghazi - - * c-aux-info.c (affix_data_type): Use ATTRIBUTE_MALLOC. Avoid - leak by passing malloc'ed pointer to reconcat, not concat. - -2001-09-24 DJ Delorie - - * varasm.c (array_size_for_constructor): Handle STRING_CSTs also. - -2001-09-24 Ulrich Weigand : - - * flow.c (delete_dead_jumptables): Delete jumptable if the only - reference is from the literal pool. - -2001-09-24 Janis Johnson - - * doc/install.texi (Final install): Request additional information - in mail about successful builds. - -2001-09-24 John David Anglin - - * pa.c (return_addr_rtx): Return NULL_RTX if count is not zero. Use - initial value of return pointer register instead of value in frame-20. - Revise comments. - -2001-09-24 John David Anglin - - * som.h (ASM_OUTPUT_EXTERNAL): Improve formatting. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Only generate a .IMPORT statement for - the libcall if there isn't a referenced identifier for the symbol. - -2001-09-24 John David Anglin - - * pa.h (TRAMPOLINE_TEMPLATE): Add two words to the template for - non 64-bit machines. Use these as a plabel for the trampoline. - (TRAMPOLINE_SIZE): Adjust size for new words. - (INITIALIZE_TRAMPOLINE): Initialize new words. - (TRAMPOLINE_ADJUST_ADDRESS): New. Adjust address to make it a - pointer to the plabel in the trampoline. - -2001-09-24 John David Anglin - - * pa.c (function_arg): Pass floating arguments in both general and - floating registers in indirect (dynamic) calls when generating code - for the 32 bit ABI and the HP assembler. - -2001-09-24 Rainer Orth - - * doc/install.texi: Markup fixes. - Use Solaris 2, SunOS 4 as appropriate. - (Specific, *-*-solaris2*): Explain this. - Unconditionally warn against /usr/ucb tools. - Remove Sun as warning, obsolete. - Move X11 header bug workaround here, update patches. - (Specific, sparc-sun-solaris2*): Detail Sun as fix status. - (Specific, sparc-sun-solaris2.7): Update patch 106950 status. - -2001-09-23 Zack Weinberg - - * errors.h (warning, error, fatal, internal_error): Don't mark - with ATTRIBUTE_PRINTF_n. - * toplev.h (internal_error, fatal_io_error, warning, error, - pedwarn, pedwarn_with_file_and_line, warning_with_file_and_line, - error_with_file_and_line, sorry, error_for_asm, warning_for_asm): - Likewise. - -Sun Sep 23 18:19:48 2001 Richard Kenner - - * function.c (pop_function_context_from): var_refs_queue - and temp slots now in GC memory. - (mark_function_status, free_after_compilation): Likewise; - also struct function now in GC memory. - (assign_stack_temp_for_type): struct temp_slot now in GC memory. - (combine_temp_slots): Likewise. - (schedule_fixup_var_refs): var_refs_queue now in GC memory. - (prepare_function_start): Use GC memory for struct function. - (mark_temp_slot): Deleted. - (gcc_mark_struct_function): struct function now in GC memory. - - * fold-const.c (extract_muldiv, case PLUS_EXPR): Only adjust - code for division, not modulus. - - * rtl.def (MEM): Remove obsolete part of comment. - -2001-09-22 Joseph S. Myers - - * c-format.c (init_function_format_info): Check __builtin_printf - and __builtin_fprintf even if -ffreestanding. Check C99 functions - in gnu89 mode. - -Sat Sep 22 09:09:32 2001 Richard Kenner - - * c-common.c (format_attribute_table): Remove decl. - * tree.h (format_attribute_table, lang_attribute_table): New decls. - (lang_attribute_common): Likewise. - - * function.c (fix_lexical_address): Use set_mem_alias_set. - (expand_function_start): Likewise. - * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Likewise. - - * varasm.c (output_constant): Fix unused variable warning. - - * attribs.c: New file, from c-common.c. - (attribute_tables): Now four elements. - (format_attribute_table, lang_attribute_common): New variables. - (init_attributes): Reflect above changes. - (handle_mode_attribute): Delete check for wider than uintmax. - * c-common.c: Delete parts moved to attribs.c. - (enum attrs): Deleted; unused. - (c_format_attribute_table): New variable. - (c_common_lang_init): Initialize format_attribute_table with it. - * c-common.h (decl_attributes): Remove decl. - * tree.h (decl_attribute): Move it to here. - * Makefile.in (C_AND_OBJS_OBJS): Add attribs.o. - (attribs.o): New rule. - -2001-09-22 Andreas Jaeger - - * builtins.c (c_getstr): Remove unused variable. - -2001-09-21 Richard Henderson - - * reload1.c (reload): Use delete_insn instead of splatting - NOTE_INSN_DELETED. - -2001-09-21 Richard Henderson - - * reload.c (push_secondary_reload): Don't check for "=" in output - constraint after ""->ALL_REGS check. - -2001-09-21 Richard Henderson - - * predict.c (expected_value_to_br_prob): Use pc_set. - - * optabs.c (init_one_libfunc): Gen a FUNCTION_DECL for use by - ENCODE_SECTION_INFO; get SYMBOL_REF from make_decl_rtl. - -2001-09-21 Richard Henderson - - * rtl.h (LCT_RETURNS_TWICE): New. - * calls.c (emit_call_1): Set current_function_calls_setjmp for - ECF_RETURNS_TWICE. - (emit_library_call_value_1): Map LCT_RETURNS_TWICE - to ECF_RETURNS_TWICE. - * except.c (sjlj_emit_function_enter): Use LCT_RETURNS_TWICE for - call to setjmp. - - * unwind-sjlj.c: Invent the setjmp.h declarations if inhibit_libc. - - * config/stormy16/stormy16.h (DONT_USE_BUILTIN_SETJMP): New. - (JMP_BUF_SIZE): New. - -2001-09-21 Richard Henderson - - * config/stormy16/stormy16.h (REG_CLASS_FROM_LETTER): Map 'd' - to R8_REGS. - -2001-09-21 Richard Henderson - - * tree.def (FDESC_EXPR): New. - * expr.c (expand_expr): Handle it. - * varasm.c (initializer_constant_valid_p): Likewise. - (output_constant): Likewise. - * defaults.h (TARGET_VTABLE_USES_DESCRIPTORS): New. - * config/ia64/ia64.h (TARGET_VTABLE_USES_DESCRIPTORS): New. - (ASM_OUTPUT_FDESC): New. - * doc/tm.texi: Document the new macros. - -21-09-2001 Richard Earnshaw (reanrsha@arm.com) - - * cfgcleanup.c (merge_blocks_move_successor_nojumps): Don't leave - ADDR_VEC or ADDR_DIFF_VEC jump insns as part of the basic block - once merging is complete. - -Fri Sep 21 11:20:12 2001 Richard Kenner - - * integrate.c (allocate_initial_values): Eliminate unused arg warning. - -21-09-2001 Richard Earnshaw (reanrsha@arm.com) - - * cfgcleanup.c (flow_find_cross_jump): Delete any REG_EQUAL notes - that would be invalid after a merge. - -Fri Sep 21 14:24:29 CEST 2001 Jan Hubicka - - * basic-block.h (flow_delete_insn, flow_delete_insn_chain): Kill. - * cfg.c (delete_insn): Rename from ....; use remove_insn; do not - remove some labels. - (flow_delete_insn): This one. - (delete_insn_chain): Rename from ...; do not care labels. - (flow_delete_insn_chain): ... this one. - (flow_delete_block): Remove the insns one BB has been expunged. - (merge_blocks_nomove): Likewise. - (try_redirect_by_replacing_jump): Use delete_insn[_chain]; do not care - updating BB boundaries. - (tidy_fallthru_edge): Likewise. - (commit_one_edge_insertion): Likewise. - * cfgbuild.c (find_basic_block): Likewise. - (find_basic_blocks_1): Likewise. - * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Likewise. - (try_crossjump_to_edge): Likewise. - (try_optimize_cfg): Likewise. - * cse.c (delete_trivially_dead_insns): Likewise. - * df.c (df_insn_delete): Likewise. - * doloop.c (doloop_modify): Use delete_related_insns. - * emit-rtl.c (try_split): Likewise. - (remove_insn): Update BB boundaries. - * expect.c (connect_post_landing_pads): Use delete_related_insns. - * flow.c (delete_dead_jumptables): Use delete_insn[_chain]; do not care - updating BB boundaries. - (propagate_block_delete_insn): Likewise. - (propagate_block_delete_libcall): Likewise. - * function.c (delete_handlers): Use delete_related_insns. - (thread_prologue_and_epilogue_insns): Likewise. - * gcse.c (delete_null_pointer_checks): Use delete_related_insns. - * genpeep.c (gen_peephole): Use delete_related_insns. - * ifcvt.c (noce_process_if_block): Use delete_insn; do not care updating - BB boundaries. - (find_cond_trap): Likewise. - * integrate.c (save_for_inline): Use delete_related_insns. - (copy_insn_list): Likewise. - * jump.c (pruge_linie_number_notes): Likewise. - (duplicate_loop_exit_test): Likewise. - (delete_computation): Likewise. - (delete_related_insn): Rename from ...; use delete_insn - (delete_insn): ... this one. - (redirect_jump): Use delete_related_insns. - * loop.c (scan_loop): Likewise. - (move_movables): Likewise. - (find_and_verify_loops): Likewise. - (check_dbra_loop): Likewise. - * recog.c (peephole2_optimize): Likewise. - * reg-stack.c (delete_insn_for_stacker): Remove. - (move_for_stack_reg): Use delete_insn. - * regmove.c (combine_stack_adjustments_for_block): Likewise. - * reload1.c (delete_address_reloads): Use delete_related_insns. - (fixup_abnormal_edges): Use delete_insn. - * recog.c (emit_delay_sequence): Use delete_related_insns. - (delete_from-delay_slot): Likewise. - (delete_scheduled_jump): likewise. - (optimize_skip): Likewise. - (try_merge_delay_insns): Likewise. - (full_simple_delay_slots): Likewise. - (fill_slots_from_thread): Likewise. - (relax_delay_slots): Likewise. - (make_return_insns): Likewise. - (dbr_schedule): Likewise. - * rtl.h (delete_insn): Rename to delete_related_insns. - (delete_insn, delete_insn_chain): New prototypes. - * ssa-ccp (sse_fast_dce): Remove deleting of DEF, as it is done - by df_insn_delete already. - * ssa-dce.c (delete_insn_bb): Use delete_insn. - * ssa.c (convert_from_ssa): Use delete_related_insns. - * unroll.c (unroll_loop): Likewise. - (calculate_giv_inc): Likewise. - (copy_loop_body): Likewise. - - * i386-protos.h (ix86_libcall_value, ix86_function_value, - ix86_function_arg_regno_p, ix86_function_arg_boundary, - ix86_return_in_memory, ix86_function_value): Declare. - * i386.c (x86_64_int_parameter_registers, x86_64_int_return_registers): - new static valurables. - (x86_64_reg_class): New enum - (x86_64_reg_class_name): New array. - (classify_argument, examine_argument, construct_container, - merge_classes): New static functions. - (optimization_options): Enable flag_omit_frame_pointer and disable - flag_pcc_struct_return on 64bit. - (ix86_libcall_value, ix86_function_value, - ix86_function_arg_regno_p, ix86_function_arg_boundary, - ix86_return_in_memory, ix86_function_value): New global functions. - (init_cumulative_args): Refuse regparm on x86_64, set maybe_vaarg. - (function_arg_advance): Handle x86_64 passing conventions. - (function_arg): Likewise. - * i386.h (FUNCTION_ARG_BOUNDARY): New macro. - (RETURN_IN_MEMORY): Move offline. - (FUNCTION_VALUE, LIBCALL_VALUE): Likewise. - (FUNCTION_VALUE_REGNO_P): New macro. - (FUNCTION_ARG_REGNO_P): Move offline. - (struct ix86_args): Add maybe_vaarg. - * next.h (FUNCTION_VALUE_REGNO_P): Delete. - * unix.h (FUNCTION_VALUE_REGNO_P): Delete. - -2001-09-21 Hartmut Penner - - * s390.md: Changed attributes for scheduling. - * s390.c: (s390_adjust_cost, s390_adjust_priority) - Changed scheduling - -2001-09-21 Joseph S. Myers - - Table-driven attributes. - * c-decl.c, config/alpha/alpha.c, config/arc/arc.c, - config/arm/arm.c, config/arm/pe.c, config/avr/avr.c, - config/avr/avr.h, config/d30v/d30v.h, config/fr30/fr30.h, - config/h8300/h8300.c, config/i386/cygwin.h, config/i386/winnt.c, - config/m32r/m32r.c, config/mcore/mcore.c, config/sh/sh.c, - config/stormy16/stormy16.h, config/v850/v850.c, doc/c-tree.texi, - doc/tm.texi, ggc-common.c, integrate.c, print-tree.c, tree.c, - tree.h: Rename DECL_MACHINE_ATTRIBUTES to DECL_ATTRIBUTES. - * tree.h (struct tree_decl): Change machine_attributes to - attributes. - * doc/c-tree.texi: Document that all attributes are now attached - to decls and types. - * c-common.c (add_attribute, attrtab, attrtab_idx, - default_valid_lang_attribute, valid_lang_attribute): Remove. - (attribute_tables, attributes_initialized, - c_common_attribute_table, default_lang_attribute_table): New - variables. - (handle_packed_attribute, handle_nocommon_attribute, - handle_common_attribute, handle_noreturn_attribute, - handle_unused_attribute, handle_const_attribute, - handle_transparent_union_attribute, handle_constructor_attribute, - handle_destructor_attribute, handle_mode_attribute, - handle_section_attribute, handle_aligned_attribute, - handle_weak_attribute, handle_alias_attribute, - handle_no_instrument_function_attribute, - handle_no_check_memory_usage_attribute, handle_malloc_attribute, - handle_no_limit_stack_attribute, handle_pure_attribute): New - functions. - (init_attributes, decl_attributes): Rewrite to implement - table-driven attributes. - * c-common.h (enum attribute_flags): Move to tree.h. - * c-format.c (decl_handle_format_attribute, - decl_handle_format_arg_attribute): Rename to - handle_format_attribute and handle_format_arg_attribute. Update - for table-driven attributes. - * c-common.h (decl_handle_format_attribute, - decl_handle_format_arg_attribute): Remove prototypes. - (handle_format_attribute, handle_format_arg_attribute): Add - prototypes. - * c-decl.c (grokdeclarator): Handle attributes nested inside - declarators. - * c-parse.in (setattrs, maybe_setattrs): Remove. - (maybe_type_quals_setattrs): Rename to maybe_type_quals_attrs. - Update to handle nested attributes properly. - (maybe_resetattrs, after_type_declarator, - parm_declarator_nostarttypename, notype_declarator, absdcl1_noea, - absdcl1_ea, direct_absdcl1): Update to handle nested attributes - properly. - (make_pointer_declarator): Update to handle nested attributes - properly. - * doc/extend.texi: Update documentation of limits of attributes - syntax. Warn about problems with attribute semantics in C++. - * target.h (struct target): Remove valid_decl_attribute and - valid_type_attribute. Add attribute_table and - function_attribute_inlinable_p. - * target-def.h (TARGET_VALID_DECL_ATTRIBUTE, - TARGET_VALID_TYPE_ATTRIBUTE): Remove. - (TARGET_ATTRIBUTE_TABLE, TARGET_FUNCTION_ATTRIBUTE_INLINABLE_P): - Add. - (TARGET_INITIALIZER): Update. - * integrate.c (FUNCTION_ATTRIBUTE_INLINABLE_P): Remove default - definition. - (function_attribute_inlinable_p): New function. Check for the - presence of any machine attributes before using - targetm.function_attribute_inlinable_p. - (function_cannot_inline_p): Update. - * Makefile.in (integrate.o): Update dependencies. - * doc/tm.texi: Update documentation of target attributes and - example definition of TARGET_VALID_TYPE_ATTRIBUTE. - * tree.c (default_valid_attribute_p, valid_machine_attribute): - Remove. - (default_target_attribute_table, - default_function_attribute_inlinable_p): New. - (lookup_attribute): Update comment to clarify handling of multiple - attributes with the same name. - (merge_attributes, attribute_list_contained): Allow multiple - attributes with the same name but different arguments to appear in - the same attribute list. - * tree.h (default_valid_attribute_p): Remove prototype. - (struct attribute_spec): New. - (default_target_attribute_table): Declare. - (enum attribute_flags): Move from c-common.h. Add - ATTR_FLAG_TYPE_IN_PLACE. - (default_function_attribute_inlinable_p): Declare. - * config/alpha/alpha.c (vms_valid_decl_attribute_p): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (vms_attribute_table): New. - * config/arc/arc.c (arc_valid_decl_attribute): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (arc_attribute_table, arc_handle_interrupt_attribute): New. - * config/arm/arm.c (arm_valid_type_attribute_p, - arm_valid_decl_attribute_p, arm_pe_valid_decl_attribute_p): - Remove. - (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't - define. - (TARGET_ATTRIBUTE_TABLE): Define. - (arm_attribute_table, arm_handle_fndecl_attribute, - arm_handle_isr_attribute): New. - * config/avr/avr.c (avr_valid_type_attribute, - avr_valid_decl_attribute): Remove. - (TARGET_VALID_DECL_ATTRIBUTE, TARGET_VALID_TYPE_ATTRIBUTE): Don't - define. - (TARGET_ATTRIBUTE_TABLE): Define. - (avr_attribute_table, avr_handle_progmem_attribute, - avr_handle_fndecl_attribute): New. - * config/c4x/c4x.c (c4x_valid_type_attribute_p): Remove. - (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (c4x_attribute_table, c4x_handle_fntype_attribute): New. - * config/h8300/h8300.c (h8300_valid_decl_attribute): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (h8300_attribute_table, h8300_handle_fndecl_attribute, - h8300_handle_eightbit_data_attribute, - h8300_handle_tiny_data_attribute): New. - * config/i386/i386-protos.h (ix86_valid_type_attribute_p, - i386_pe_valid_decl_attribute_p, i386_pe_valid_type_attribute_p): - Remove prototypes. - (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New - declarations. - * config/i386/i386.c (ix86_valid_type_attribute_p: Remove. - (TARGET_VALID_TYPE_ATTRIBUTE, TARGET_VALID_DECL_ATTRIBUTE): Don't - define. - (TARGET_ATTRIBUTE_TABLE): Define. - (ix86_attribute_table, ix86_handle_cdecl_attribute, - ix86_handle_regparm_attribute): New. - * config/i386/winnt.c (i386_pe_valid_decl_attribute_p, - i386_pe_valid_type_attribute_p): Remove. - (ix86_handle_dll_attribute, ix86_handle_shared_attribute): New. - * config/ia64/ia64.c (ia64_valid_type_attribute): Remove. - (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (ia64_attribute_table): New. - * config/m32r/m32r.c (m32r_valid_decl_attribute, interrupt_ident1, - interrupt_ident2, model_ident1, model_ident2): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (init_idents): Update. - (m32r_attribute_table, m32r_handle_model_attribute): New. - * config/m68hc11/m68hc11.c (m68hc11_valid_type_attribute_p): - Remove. - (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (m68hc11_attribute_table, m68hc11_handle_fntype_attribute): New. - * config/mcore/mcore.c (mcore_valid_decl_attribute): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (mcore_attribute_table, mcore_handle_naked_attribute): New. - * config/ns32k/ns32k.c (ns32k_valid_type_attribute_p): Remove. - (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (ns32k_attribute_table, ns32k_handle_fntype_attribute): New. - * config/rs6000/rs6000.c (rs6000_valid_type_attribute_p): Remove. - (TARGET_VALID_TYPE_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (rs6000_attribute_table, rs6000_handle_longcall_attribute): New. - * config/sh/sh.c (sh_valid_decl_attribute): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (sh_attribute_table, sh_handle_interrupt_handler_attribute, - sh_handle_sp_switch_attribute, sh_handle_trap_exit_attribute): - New. - * config/stormy16/stormy16.c (stormy16_valid_type_attribute): - Remove. - (TARGET_VALID_TYPE_ATTRIBUTE): Don't define - (TARGET_ATTRIBUTE_TABLE): Define. - (stormy16_attribute_table, stormy16_handle_interrupt_attribute): - New. - * config/v850/v850.c (v850_valid_decl_attribute): Remove. - (TARGET_VALID_DECL_ATTRIBUTE): Don't define. - (TARGET_ATTRIBUTE_TABLE): Define. - (v850_attribute_table, v850_handle_interrupt_attribute, - v850_handle_data_area_attribute): New. - * config/v850/v850-c.c (mark_current_function_as_interrupt): - Return void. Call decl_attributes instead of - valid_machine_attribute. - -Fri Sep 21 01:49:41 2001 J"orn Rennecke - - * sh-protos.h (sh_pr_n_sets): Declare. - * sh.c (calc_live_regs): If the initial value for PR has been copied, - look at the copy to determine if PR needs to be saved. - sh_pr_n_sets: New function. - * sh.h (RETURN_ADDR_RTX): Use get_hard_reg_initial_val. - (ALLOCATE_INITIAL_VALUE): Define. - - * sh.c (initial_elimination_offset): - Fix RETURN_ADDRESS_POINTER_REGNUM case. - -Fri Sep 21 01:13:56 2001 J"orn Rennecke - - * integrate.c (allocate_initial_values): New function. - * integrate.h (allocate_initial_values): Declare. - * local-alloc.c (local_alloc): Move call to allocate_reg_info from - here... - * reload1.c (reload): And initialization of reg_equiv_memory_loc - from here... - * toplev.c (rest_of_compilation): To here. - Call allocate_initial_values. - * tm.texi: add description for ALLOCATE_INITIAL_VALUE. - -Thu Sep 20 09:00:27 2001 Richard Kenner - - * ggc-page.c (ggc_marked_p): Properly convert return to boolean. - -2001-09-20 DJ Delorie - - * c-typeck.c (really_start_incremental_init): Discriminate - between zero-length arrays and flexible arrays. - (push_init_level): Detect zero-length arrays and handle them - like fixed-sized arrays. - * expr.c (store_constructor): Handle zero-length arrays and - flexible arrays correctly. - * doc/extend.texi: Update zero-length array notes. - -2001-09-20 Jim Wilson - - * config/ia64/ia64.c (itanium_split_issue): Allow max 2 FP per cycle. - (insn_matches_slot): Handle TYPE_L and TYPE_X slots when checking - for issue port conflicts. - (cycle_end_fill_slots): TYPE_L instructions take two slots. - -2001-09-20 Andrew MacLeod - - * testsuite/gcc.c-torture/execute/990208-1.x: New. XFAIL at -O3 - on ia64. - -Thu Sep 20 09:00:27 2001 Richard Kenner - - * fold-const.c (hashtab.h): Include. - (int_const_binop): Remove FORSIZE arg and compute from type; all - callers changed. - Call size_int_type_wide for all single-word constants. - (size_htab_hash, size_htab_eq): New functions. - (size_int_type_wide): Rework to use hash table. - * ggc-common.c (hashtab.h): Include. - (struct d_htab_root): New struct. - (d_htab_roots): New variable. - (ggc_add_deletable_htab, ggc_htab_delete): New functions - (ggc_mark_roots): Handle deletable htabs. - * ggc-page.c (ggc_marked_p): New function. - * ggc-simple.c (ggc_marked_p): Likewise. - * ggc.h: Reformatting throughout. - (ggc_marked_p, ggc_add_deletable_htab): New declarations. - * tree.c (init_obstacks): Make type_hash_table a deletable root. - (type_hash_add): Allocate struct type_hash from GC memory. - (mark_hash_entry, mark_type_hash): Deleted. - (type_hash_marked_p, type_hash_mark): New functions. - * Makefile.in (ggc-common.o, fold-const.o): Include hashtab.h. - -Thu Sep 20 12:49:34 2001 J"orn Rennecke - - * sh.c (shiftcosts): Don't use shiftcosts array for modes wider - than SImode. - -Thu Sep 20 09:00:27 2001 Richard Kenner - - * stor-layout.c (layout_type, case ARRAY_TYPE): Kludge to disable - array-too-large test for signed sizetype. - -Thu Sep 20 12:19:36 CEST 2001 Jan Hubicka - - * i386.md (indirect_jump): Allow Pmode operand. - (tablejump): LIkewise; perform expansion to 64bit mode. - * i386.c (symbolic_operand): Allow 64bit PIC references. - (pic_symbolic_operand): Likewise. - (ix86_find_base_term): Strip the 64bit PIC references. - (legitimate_pic_address_disp_p): Handle 64bit PIC. - (legitimize_pic_address): Likewise. - (i386_simplify_dwarf_addr): Strip down the 64bit PIC references. - * i386.h (CASE_VECTOR_MODE): Set to SImode for 64bit PIC compilation. - -2001-09-19 Alexandre Petit-Bianco - - * stringpool.c (get_identifier_with_length): New function. - * tree.h (get_identifier_with_length): New prototype. - -2001-09-19 Alan Modra - David Edelsohn - - Revert: - * config/rs6000/rs6000.c (logical_operand): CONST_INTs are - already sign-extended. - - * config/rs6000/aix.h (INIT_TARGET_OPTABS): Define TFmode handlers. - * config/rs6000/rs6000.c (logical_operand): Always compare op as - HOST_WIDE_INT. - (rs6000_emit_set_long_const): Avoid unnecessary shift. - (output_profile_hook): Declare label_name const. - * config/rs6000/rs6000.md (boolcsi3, boolcdi3): Change predicates - to match constraints. - -2001-09-19 Stan Shebs - - * alias.c: Fix typos in comments. - * sched-rgn.c (init_ready_list): Ditto. - * unwind-dw2.c (uw_frame_state_for): Ditto. - * unwind-dw2-fde.c (_Unwind_Find_FDE): Ditto. - * unwind.inc (_Unwind_RaiseException_Phase2): Ditto. - * config/rs6000/rs6000.c (rs6000_adjust_priority): Ditto. - -2001-09-19 Richard Henderson - - * cfg.c (force_nonfallthru_and_redirect): Handle redirecting - to the exit block. - * Makefile.in (cfg.o): Depend on TM_P_H. - -2001-09-19 Richard Henderson - - * config/alpha/alpha.c (local_symbol_p): Split out from ... - (local_symbolic_operand): ... here. - (small_symbolic_operand): Check mode. - (global_symbolic_operand): New. - (input_operand): Reject symbolics if explicit relocs. - (call_operand): Tidy. - (alpha_legitimize_address): Use movdi_er_high_g. - (alpha_expand_mov): Likewise. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - * config/alpha/alpha.md (UNSPEC_LITERAL, UNSPEC_LITUSE): New. - (UNSPEC_LDGP2, UNSPECV_PLDGP2): New. - (UNSPECV_LDGP2): Remove. - (all call patterns): Use 's' not 'i' for symbolic constraint. - (call_osf call_value_osf): Use call_operand. - (all osf call patterns): Use $gp. New peepholes for explicit relocs. - (movdi_er_nofix, movdi_er_fix): Remove symbolic alternative. - (prologue_ldgp_1_er): Remove. - (ldgp_er_1, ldgp_er_2, prologue_ldgp_er_2): New. - (builtin_setjmp_receiver_er patterns): Use them. - (exception_receiver_er): Likewise. - -2001-09-19 Richard Henderson - - * cfgbuild.c (find_sub_basic_blocks): Handle insns that can throw. - - * emit-rtl.c (try_split): Copy NORETURN, SETJMP, ALWAYS_RETURN - and NON_LOCAL_GOTO notes. - * recog.c (peephole2_optimize): Likewise. Handle EH_REGION; - copy over CALL_INSN_FUNCTION_USAGE. - -2001-09-18 Catherine Moore - - * config/stormy16/stormy16.h (DEFAULT_PCC_STRUCT_RETURN): - Define as 0. - -2001-09-18 Ulrich Weigand : - - * config.gcc (s390-*-linux-*, s390x-*-linux*): Switch to - new-style tm_file specification. Specify correct tm_p_file, - md_file, and out_file for s390x. - - * config/s390/linux.h, linux64.h: Don't include other target - macro header files. Now handled via tm_file. - - * config/s390/linux.h, s390.h: (IEEE_FLOAT, TARGET_IEEE_FLOAT, - TARGET_IBM_FLOAT): Move from linux.h to s390.h to ensure they - are defined before use. - -Tue Sep 18 09:51:11 2001 Eric Christopher - - * config/mips/mips.c (mips_asm_file_start): Conditionalize Elf - code generation only for Gnu assembler. - -2001-09-18 Catherine Moore - - * config/stormy16 (LIB_SPEC): Remove -lnosys. - -2001-09-18 Richard Sandiford - - * config/mips/mips.c (mips_frame_set): New. - (mips_emit_frame_related_store): When storing two 32-bit FPRs, use - a parallel frame-related expression with a set for each register. - -2001-09-18 Philip Blundell - - * config/arm/lib1funcs.asm (L_dvmd_lnx): Don't rely on kernel - header files. - -2001-09-17 Dale Johannesen - - * config/rs6000/rs6000.h (FIXED_REGISTERS): Use FIXED_R2. - * config/rs6000/aix.h (FIXED_R2): Define. - * config/rs6000/darwin.h (FIXED_R2): Define. - * config/rs6000/sysv4.h (FIXED_R2): Define. - -2001-09-17 Jeff Sturm - - * except.c (dw2_build_landing_pads): New local - clobbers_hard_regs. Emit an ASM_INPUT as a scheduling - barrier after clobbers. Fixes c++/4012. - -2001-09-17 Kaveh R. Ghazi - - * gcc.c (find_file): Use ACONCAT in lieu of alloca/strcpy/strcat. - -2001-09-17 Joseph S. Myers - - * dostage2, dostage3, listing, make-l2.com, makefile.vms, - patch-apollo-includes, vmsconfig.com: Remove obsolete files. - -2001-09-17 Kaveh R. Ghazi - - * c-aux-info.c (affix_data_type): Use ASTRDUP in lieu of - alloca/strcpy. - -2001-09-17 Neil Booth - - * cpphash.h (_cpp_lex_direct): New. - * cpplex.c (_cpp_lex_token): Update. - (lex_token): Rename _cpp_lex_direct; lex into pfile->cur_token, - and increment that pointer. - * cppmacro.c (alloc_expansion_token): New. - (lex_expansion_token): Lex macro expansion directly into - macro storage. - -2001-09-16 Brad Lucier - - * Makefile.in: Make rtl-error.o depend on $(CONFIG_H). - -Sun Sep 16 21:59:46 CEST 2001 Jan hubicka - - * basic-block.h (free_bb_for_insn): Declare. - * bb-reorder.c (label_for_bb): Use block_label. - (emit_jump_to_block_after): Remove. - (insert_intra_1): Do not update block_for_insn. - (insert_inter_bb_scope_notes): Likewise; update bb->end - * cfg.c (free_bb_for_insn): New. - (try_rediret_by_replacing_jump): Avoid set_block_for_new_insns call. - (force_nonfallthru_and_redirect): Likewise; do not update BB boundaries. - (commit_one_edge_insertion): Likewise. - (commit_one_edge_insertion): Do not update BB boundary. - (commit_edge_insertions): Do not call compute_bb_for_insn. - * cfgbuild.c (find_basic_blocks): Do not free basic_block_for_insn. - * cfgcleanup.c (merge_blocks_move_predecessor): Use reorder_insns_nobb. - (merge_blocks_move_successor_nojumps): Likewise. - (try_crossjump_to_edge): Do not update block_for_insn. - * combine.c (combine_instructions): Remove compute_bb_for_insn call. - * df.c (df_pattern_emit_later): Do not update BB boundary. - (df_jump_pattern_emit_after): Likewise. - (df_insn_move_before): Use emit_insn_before. - * emit-rtl.c (try_split): Emit after trial to get bb boundary updated - properly. - (add_insn_after, add_insn_before, emit_insns_after): Update BB - boundaries and basic_block_for_insn. - (reorder_insns_nobb): Rename from reorder_insns. - (reorder_insns): New. - (emit_block_insn_before, emit_block_insn_after): Kill. - * flow.c (check_function_return_warnings): Do not call - compute_bb_for_insn; Do not free basic_block_for_insn. - (attempt_auto_inc): Do not update basic_block_for_insn. - * function.c (emit_return_into_block): Likewise; - do not update BB boundaries. - * gcse.c (handle_avail_expr): Do not update basic_block_for_insn. - (insert_insn_end_bb): Use emit_insn_before; Likewise. - (pre_insert_copy_insn): Likewise. - (update_ld_motion_notes): Likewise. - (insert_insn_start_bb): Likewise. - (replace_store_insn): Likewise. - * ifcvt.c (noce_process_if_block): Likewise. - (if_convert): Do not call compute_bb_for_insn. - * lcm.c (optimize_mode_switching): Do not update BB boundaries. - Use emit_insn_before and emit_insn_after. - * recog.c (split_all_insns): Do not update BB boundaries; - Do not call compute_bb_for_insn. - (peephole2_optimize): Do not update BB boundaries. - * reg-stack.c (emit_pop_insn): Use emit_insn_after and - emit_insn_before. - (emit_swap_insn): Likewise. - (convert_regs_1): Likewise. - * reload1.c (reload): Call compute_bb_for_insn. - * rtl.h (reorder_insns_nobb): Declare. - * ssa.c (rename_equivalent_regs): Use emit_insn_before. - * toplev.c (rest_of_compilation): Call free_bb_for_insn - at places CFG is invalidated; do not call compute_bb_for_insn. - - * cfg.c (expunge_block): Invalidate BB structure. - - * (merge_blocks_nomove): Update properly BLOCK_FOR_INSN - array. - - * cfg.c (verify_flow_info): Verify the basic_block_for_insn array. - -2001-09-16 Neil Booth - - * cpphash.h (_cpp_lex_token): Update prototype. - * cpplex.c (_cpp_lex_token): New prototype. - * cpplib.c (skip_rest_of_line, check_eol, _cpp_handle_directive, - lex_macro_node, read_flag, do_pragma_poison): Update. - * cppmacro.c (cpp_get_token, parse_params, - lex_expansion_token): Update. - -2001-09-16 Neil Booth - - * cppmain.c (scan_translation_unit): Don't worry about - putting a space after hashes. - * cpplib.c (directive_diagnostics): New. - (_cpp_handle_directive): Update to use directive_diagnostics. - (run_directive): Don't toggle prevent_expansion. - (do_line): Backup in case of the line extension. - * cpplib.h (cpp_lexer_pos): Remove. - * cppmacro.c (_cpp_create_definition): Precede a leading # - with whitespace. - -2001-09-15 Richard Henderson - - * c-typeck.c (comptypes): Handle zero-length arrays properly. - -2001-09-15 Roman Lechtchinsky - - * c-common.c (c_promoting_integer_type_p): Handle ?Imode types. - -2001-09-15 Neil Booth - - PR preprocessor/3571 - * tradcpp.c (handle_directive): Skip non-vertical space. - -2001-09-15 Neil Booth - - * cppmain.c (setup_callbacks): Set line callback only - if outputting preprocessed source. - -2001-09-15 Kaveh R. Ghazi - - * collect2.c (main): Const-ification. - * gcc.c (translate_options, process_command): Use xstrdup in - lieu of xmalloc/strcpy. - (main): Use concat in lieu of xmalloc/strcpy/strcat. - -2001-09-14 Roman Lechtchinsky - - * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Fix - example. - -2001-09-15 Neil Booth - - * scan-decls.c (scan_decls): Fix typo. - -2001-09-15 Neil Booth - - * cpphash.h (struct cpp_reader): Remove lexer_pos, directive_pos. - Split mlstring_pos into mls_line and mls_col. - * cppinit.c (cpp_create_reader): Initialize line to 1. - (cpp_destroy): Free tokenruns. - (push_include): Don't update lexer_pos. - * cpplex.c (unterminated, parse_string): Update. - (lex_token): Don't update lexer_pos, update. - * cpplib.c (if_stack): Save line instead of line + col. - (start_directive, _cpp_do__Pragma, do_else, do_elif, - push_conditional, _cpp_pop_buffer): Update. - * cppmacro.c (funlike_invocation_p): Don't save lexer_pos. - (_cpp_create_definition): Update. - -2001-09-15 Eric Christopher - - * config/mips/abi64.h: Add support for MEABI. - -2001-09-15 Eric Christopher - - * config/mips/mips.md: Add unspec #2. - (reload_indi): Use. - (reload_outdi): Ditto. - (reload_outsi): Ditto. - (HILO_delay): New. - -2001-09-15 Eric Christopher - Jason Eckhardt - - * config.gcc: Add mipsisa32 target and mipsisa32-linux target. - * config/mips/isa32-linux.h: New file. - * config/mips/isa3264.h: Ditto. - * config/mips/mips-protos.h: Add mips_hard_regno_nregs. - * config/mips/mips.c (mips_hard_regno_nregs): Move here from mips.h. - (output_block_mode): Support MEABI. - (function_arg): Ditto. Fix floating point arg passing. - (mips_va_start): Ditto. - (override_options): Add isas 32 and 64, meabi, mips32 and mips64 - processors. - (mips_asm_file_start): Add new section to pass abi to gdb. - (function_arg_pass_by_reference): Support MEABI. - (mips_parse_cpu): Support mips32 and mips64 processors. - * config/mips/mips.h: Support ABI_MEABI, TARGET_MIPS4KC, - TARGET_MIPS5KC. Support isa32 and isa64. - (processor_type): Add r4kc, r5kc, r20kc. - (GENERATE_MULT3_SI): New. - (GENERATE_MULT3_DI): Ditto. - (GENERATE_MULT3): Remove. - (ISA_HAS_64BIT_REGS): Add isa == 64. - (ISA_HAS_8CC): Add mips_isa = 32 and 64. - (ISA_HAS_MADD_MSUB): New. - (ISA_HAS_CLZ_CLO): Ditto. - (ISA_HAS_DCLZ_DCLO): Ditto. - (ABI_GAS_ASM_SPEC): New. - (GAS_ASM_SPEC): Use. Add support for mips32, mips64. - (ASM_SPEC): Ditto. - (LINK_SPEC): Ditto. - (SUBTARGET_CC1_SPEC): Ditto. - (SUBTARGET_CPP_SIZE_SPEC): Ditto. - (PAD_VARARGS_DOWN): Support MEABI. - (HARD_REGNO_NREGS): Move to mips.c. - (ASM_OUTPUT_IDENT): Add #undef. - * config/mips/mips.md: Add r4kc, r5kc, r20kc. - (mulsi3): Use GENERATE_MULT3_SI. - (mulsi3_mult3): Ditto. Support mips32, mips64. - (mul_acc_si): Use ISA_HAS_MADD_MSUB. - (mul_sub_si): New pattern. - (unnamed splitters): New. - (muldi3): Use GENERATE_MULT3_DI. - (muldi3_internal2): Ditto. - (movdicc): Support mips32. - * config/mips/t-isa3264: New file. - -2001-09-15 Hans-Peter Nilsson - - * rtl.h (FIND_REG_INC_NOTE) [HAVE_PRE_INCREMENT - || HAVE_PRE_DECREMENT || HAVE_POST_INCREMENT - || HAVE_POST_DECREMENT]: Call find_regno_note for REGs. - - * reorg.c (fill_slots_from_thread): After call to - steal_delay_list_from_target, update own_thread as new_thread may - have branched. - -2001-09-14 Neil Booth - - * cpperror.c (print_location): Take line and column, for - default positioning use the previously lexed token. - (_cpp_begin_message): Take line and column. - (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, - cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update. - * cpphash.h (_cpp_begin_message): Update prototype. - * cppinit.c (push_include): Don't set output line. - * cpplex.c (_cpp_lex_token): Callback for start of new output lines. - * cpplib.c (do_diagnostic, _cpp_pop_buffer): Update. - (do_pragma): Kludge for front ends. Don't expand macros at all. - * cpplib.h (cpp_lookahead, cpp_token_with_pos, cpp_get_line): Remove. - (struct cpp_token): Remove output_line. - (struct cpp_callbacks): New member line_change. - * cppmacro.c (builtin_macro, paste_all_tokens, replace_args, - cpp_get_token): Preserve BOL flag. - (cpp_get_line): Remove. - (_cpp_backup_tokens): Remove useless abort(). - * cppmain.c (cb_line_change): New. - (scan_translation_unit): Don't worry about starting new lines here. - * scan-decls.c (scan_decls): Update. - * c-lex.c (c_lex, init_c_lex): Update. - (cb_line_change, src_lineno): New. - -Fri Sep 14 13:54:50 EDT 2001 John Wehle (john@feith.com) - - * tree.c (append_random_chars): Generate the random - characters in a reproducable fashion. - -2001-09-14 Richard Henderson - - * config/i386/i386.c (internal_label_prefix): New. - (internal_label_prefix_len): New. - (override_options): Set them. - (local_symbolic_operand): New. - (legitimate_pic_address_disp_p): Use it. - (legitimize_pic_address): Likewise. - -2001-09-14 Marc Espie - - * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Generate reference to GOT - correctly. - -2001-09-14 Roman Lechtchinsky - - * config/alpha/alpha.md (unaligned_extendhidi_be): Fix. - * config/alpha/unicosmk.h (INIT_TARGET_OPTABS): New. - -2001-09-14 Nick Clifton - - * rtlanal.c (subreg_regno_offset): Add semicolon to end of - invocation of SUBREG_REGNO_OFFSET. - - * haifa-sched.c: Fix typo in FSF copyright statement. - * sched-deps.c: Fix typo in FSF copyright statement. - * sched-ebb.c: Fix typo in FSF copyright statement. - * sched-rgn.c: Fix typo in FSF copyright statement. - * sched-vis.c: Fix typo in FSF copyright statement. - - * config.gcc: Move inclusion of arm elf specific header files - from the files themselves into the tm_file variable. Make - sure that elfos.h is included before target specific elf - headers. - * config/arm/aout.h (NO_DOLLAR_IN_LABEL): Only define if not - already defined. - (ASM_OUTPUT_ASCII, ASM_OUTPUT_SKIP): Protect definition. - * config/arm.arm.h (TARGET_MEM_FUNCTIONS, - ASM_OUTPUT_CASE_LABEL): Protect definition. - (CC1_SPEC, FP_DEFAULT, ARM_FUNCTION_PROFILE): Only define if - not already defined. - * config/arm/conix-elf.h: (USER_LABEL_PREFIX, - LOCAL_LABEL_PREFIX, MAKE_DECL_ONE_ONLY, UNIQUE_SECTION): - Remove duplicate definition. - (READONLY_DATA_SECTION, SUBTARGET_EXTRA_SECTION, - (SUBTARGET_EXTRA_SECTION_FUNCTION, RDATA_SECTION_ASM_OP, - (RDATA_SECTION_FUNCTION): Remove redundant definition. - (STARTFILE_SPEC, ENDFILE_SPEC): Protect definition. - Remove inclusion of arm/elf.h. - * config/arm/unknown-elf.h: as for conix-elf.h. - (STARTFILE_SPEC): Include crti.o and crtn.o. - * config/arm/linux-elf.h: as for conix-elf.h. - * config/arm/ecos-elf.h: Remove inclusion of unknown-elf.h. - * config/arm/strongarm-elf.h: Remove inclusion of - unknown-elf.h. - * config/arm/xscale-elf.h: Remove inclusion of unknown-elf.h. - * config/arm/unknown-elf-oabi.h: Remove inclusion of - unknown-elf.h and elf.h. - * config/arm/uclinux-elf.h: Remove inclusion of linux-elf.h. - * config/arm/linux-gas.h (DBX_DEBUGGING_INFO, - ASM_WEAKEN_LABEL): Remove redundant definition. - * config/arm/elf.h: Test for inclusion of elfos.h - (USER_LABEL_PREFIX, ASM_DECLARE_RESULT, ASM_DECLARE_RESULT, - ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT_NAME, - SUBTARGET_EXTRA_SECTION, SUBTARGET_EXTRA_SECTION_FUNCTION, - EXTRA_SECTIONS, INT_ASM_OP, ASM_WEAKEN_LABEL): Remove - redundant definition. - (TYPE_OPERAND_FMT, ASM_DECLARE_FUNCTION_NAME, - ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_INTERNAL_LABEL, - ASM_OUTPUT_ALIGNED_COMMON): Protect definition. - * t-arm-elf (EXTRA_MULTILIB_PARTS): Add crti.o and crtn.o. - Add rules to build crti.o and crtn.o - * crti.asm: New file. - * crtn.asm: New file. - -2001-09-13 Neil Booth - - * c-parse.in (_yylex): Use _cpp_backup_tokens. - * cpphash.h (struct tokenrun): Add prev. - (struct lexer_state): Remove bol. - (struct cpp_reader): Remove old lookahead stuff, add lookaheads. - (_cpp_free_lookaheads, _cpp_release_lookahead, _cpp_push_token) - : Remove. - * cppinit.c (cpp_create_reader): Don't set bol. - (cpp_destroy): Don't free lookaheads. - * cpplex.c (lex_directive): Remove. - (next_tokenrun): Update. - (_cpp_lex_token): Clean up logic. - (lex_token): Update to return a pointer to lexed token, since it - can move to the start of the buffer. Simpify newline handling. - * cpplib.c (SEEN_EOL): Update. - (skip_rest_of_line): Remove lookahead stuff. - (end_directive): Line numbers are already incremented. Revert - to start of lexed token buffer if we can. - (_cpp_handle_directive, do_pragma, do_pragma_dependency, - parse_answer): Use _cpp_backup_tokens. - (run_directive, cpp_pop_buffer): Don't set bol, set saved_flags - instead. Don't check for EOL. - (do_include_common, do_line, do_pragma_system_header): Use - skip_rest_of_line. - * cpplib.h (BOL, _cpp_backup_tokens): New. - * cppmacro.c (save_lookahead_token, take_lookahead_token, - alloc_lookahead, free_lookahead, _cpp_free_lookaheads, - cpp_start_lookahead, cpp_stop_lookahead, _cpp_push_token): Remove. - (builtin_macro): Don't use cpp_get_line. - (cpp_get_line): Short term kludge. - (parse_arg): Handle directives in arguments here. Back up when - appropriate. Store EOF at end of argument list. - (funlike_invocation_p): Use _cpp_backup_tokens. - (push_arg_context): Account for EOF at end of list. - (cpp_get_token): Remove lookahead stuff. Update. - -2001-09-13 Kaveh R. Ghazi - - * c-parse.in (yyerror): Const-ification and/or static-ization. - * c-typeck.c (push_member_name): Likewise. - * collect2.c (main): Likewise. - * dbxout.c (dbxout_parms): Likewise. - * diagnostic.c (format_with_decl): Likewise. - * dwarf2out.c (output_ranges): Likewise. - * dwarfout.c (fundamental_type_code): Likewise. - * except.c (dw2_output_call_site_table): Likewise. - * gcc.c (do_spec_1): Likewise. - * genopinit.c (optabs): Likewise. - * objc/objc-act.c (synth_id_with_class_suffix, start_class, - gen_declaration_1, handle_impent): Likewise. - * protoize.c (default_include, in_system_include_dir, abspath): - Likewise. - * sched-vis.c (visualize_stall_cycles): Likewise. - * sdbout.c (plain_type_1, sdbout_end_function, - sdbout_end_epilogue): Likewise. - * varasm.c (decode_reg_name): Likewise. - - * 1750a.c (mod_regno_adjust): Likewise. - * alpha.c (alpha_write_one_linkage, - unicosmk_output_default_externs): Likewise. - * arm.c (arm_condition_codes): Likewise. - * arm.h (arm_condition_codes): Likewise. - * avr.c (output_movsisf, encode_section_info): Likewise. - * darwin.h (GEN_BINDER_NAME_FOR_STUB, GEN_SYMBOL_NAME_FOR_SYMBOL): - Likewise. - * i386.c (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise. - * i386.h (hi_reg_name, qi_reg_name, qi_high_reg_name): Likewise. - * m88k.c (output_function_profiler): Likewise. - * mips.c (mips_output_conditional_branch): Likewise. - * ns32k.c (ns32k_out_reg_names): Likewise. - * ns32k.h (ns32k_out_reg_names): Likewise. - * pj.c (pj_output_rval): Likewise. - * rs6000.c (GEN_LOCAL_LABEL_FOR_SYMBOL): Likewise. - * sparc.c (sparc_flat_function_prologue, - sparc_flat_function_epilogue): Likewise. - -2001-09-13 Markus Werle - Gerald Pfeifer - - * doc/install.texi (Binaries): Add "Binaries for HP-UX 11.00 at - Aachen University of Technology". - -2001-09-13 Andreas Schwab - - * config/float-m68k.h: Define DECIMAL_DIG and FLT_EVAL_METHOD for - C99. - -2001-09-13 Richard Henderson - - * config/alpha/alpha.c (small_symbolic_operand): New. - (override_options): Set MASK_SMALL_DATA based on pic/PIC. - (some_operand, input_operand): Don't handle HIGH. - (alpha_legitimize_address): Use it. Emit HIGH with PLUS gp. - (alpha_expand_mov): Likewise. - (print_operand) [H]: Just print HIGH symbol. - (print_operand_address): Handle small data. - * config/alpha/alpha.h (MASK_SMALL_DATA, TARGET_SMALL_DATA): New. - (TARGET_SWITCHES): Add -msmall-data/large-data. - (PIC_OFFSET_TABLE_REGNUM): New. - (PREFERRED_RELOAD_CLASS): Don't handle HIGH. - (PREDICATE_COES): Update. - * config/alpha/alpha.md (adddi_er_high): New. - (adddi_er_low): Handle small data. - * config/alpha/elf.h (DO_SELECT_SECTION): If SMALL_DATA, - prefer .sdata to .rodata. - (SELECT_RTX_SECTION): Likewise. - -2001-09-12 Josh Martin - - * fixinc/inclhack.def(hpux11_size_t): Keep HP-UX headers from - defining __size_t and leaving size_t undefined. - -2001-09-12 Diego Novillo - - * basic-block.h (expunge_block): Declare. - * cfg.c (expunge_block): Remove static declaration. - -2001-09-12 Richard Henderson - - * integrate.c (copy_insn_list): Copy label name from - NOTE_INSN_DELETED_LABEL. - -2001-09-12 Kaveh R. Ghazi - - * c-common.c (c_tree_code_name): Const-ification. - * c-decl.c (c_decode_option): Likewise. - * c-typeck.c (warn_for_assignment): Likewise. - * collect2.c (libexts, is_ctor_dtor, main, ignore_library): - Likewise. - * cppinit.c (output_deps): Likewise. - * dependence.c (dependence_string, direction_string): Likewise. - * dwarf2out.c (output_ranges): Likewise. - * fixinc/fixfixes.c (emit_gnu_type): Likewise. - * fixinc/gnu-regex.c (re_error_msgid): Likewise. - * gcc.c (standard_exec_prefix, standard_exec_prefix_1, - standard_startfile_prefix, standard_startfile_prefix_1, - standard_startfile_prefix_2, tooldir_base_prefix, - standard_bindir_prefix, find_a_file): Likewise. - * genattrtab.c (make_length_attrs): Likewise. - * gencheck.c (tree_codes): Likewise. - * genemit.c (gen_split): Likewise. - * genrecog.c (special_mode_pred_table): Likewise. - * graph.c (graph_ext): Likewise. - * protoize (default_include): Likewise. - * reload.c (reload_when_needed_name): Likewise. - * sched-vis.c (visualize_stall_cycles): Likewise. - * tlink.c (recompile_files): Likewise. - * toplev.c (decode_g_option): Likewise. - * tradcpp.c (output_deps): Likewise. - * varasm.c (decode_reg_name): Likewise. - - * arm.c (arm_condition_codes, strings_fpa, thumb_condition_code): - Const-ification. - * arm.md: Likewise. - * avr.c (avr_regnames, encode_section_info): Likewise. - * c4x.c (float_reg_names): Likewise. - * darwin.h (ASM_GLOBALIZE_LABEL): Likewise. - * elfos.h (const_section): Likewise. - * i386.c (ix86_comp_type_attributes): Likewise. - * i386/win32.h (STRIP_NAME_ENCODING): Likewise. - * ia64/aix.h (UNIQUE_SECTION): Likewise. - * ia64.c (type_names): Likewise. - * m68hc11.c (reg_class_names): Likewise. - * m88k.c (m_options): Likewise. - * mips.c (mips_output_conditional_branch, mips_unique_section): - Likewise. - * rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - * sparc.c (sparc_flat_function_prologue, sparc_flat_function_epilogue, - ultra_code_names): Likewise. - * sparc.h (OVERRIDE_OPTIONS): Likewise. - -2001-09-12 Jakub Jelinek - - * configure.in (gcc_cv_as_shf_merge): Fix a typo. - Use --fatal-warnings option for gas. - * configure: Rebuilt. - -2001-09-12 Roman Lechtchinsky - - * doc/install.texi (Specific, alphaev5-cray-unicosmk*): Document. - -2001-09-11 Jim Wilson - - * alias.c (clear_reg_alias_info): Only handle pseudo registers. - -2001-10-11 Matt Kraai - - * builtins.c (c_strlen): Treat an offset too large for a - HOST_WIDE_INT as out of range. - -Tue Sep 11 18:57:47 CEST 2001 Jan Hubicka - - * basic-block.h (EDGE_CRITICAL): Remove; renumber other flags. - (EDGE_CRITICAL_P): New predicate. - * cfg.c (force_nonfallthru_and_redirect, split_edge): Kill EDGE_CRITICAL - handling. - (insert_insn_on_edge): Use EDGE_CRITICAL_P. - (dump_edge_info): Remove "crit". - * cfganal.c (mark_critical_edges): Kill. - * cfgbuild.c (find_basic_blocks): Remove mark_critical_edges call. - * cfgcleanup.c (cleanup_cfg): Likewise. - * profile.c (instrument_edges): Use EDGE_CRITICAL_P. - (find_spanning_tree): Likewise. - * reg-stack.c (convert_regs_1): Likewise. - * ssa.c (mark_regs_equivalent_over_bad_edges): Likewise. - - * basic-block.h (create_basic_block_structure): New. - (create_basic_block): Update prototype. - (force_nonfallthru): New. - * bb-reorder.c (fixup_reorder_chain): Fixup use force_nonfallthru. - * cfg.c (create_basic_block_structure): Rename from create_basic_block; - handle updating of block_for_insn, creating of empty BBs and BBs at - the end of INSN chain. - (create_basic_block): New function. - (split_block): Use create_basic_block. - (force_nonfallthru_and_redirect): Break out from ...; cleanup - (redirect_edge_and_branch_force): ... here. - (force_nonfallthru): New. - (split_edge): Rewrite to use force_nonfallthru and create_block. - * cfgbuild.c (find_basic_blocks_1): Use create_basic_block_structure. - (find_basic_blocks): Free basic_block_for_insn. - * cfgcleanup.c (merge_blocks): Use force_nonfallthru. - - * cfg.c: Fix formating. - * cfgcleanup.c: Fix formating. - (merge_blocks, tail_recursion_label_p): Return bool. - (merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps): Return void. - -2001-09-11 Jakub Jelinek - - * configure.in: Check whether assembler supports section merging. - * config.in: Rebuilt. - * configure: Rebuilt. - * varasm.c (variable_section, output_constant_pool): Pass alignment - to SELECT_SECTION and SELECT_RTX_SECTION. - (mergeable_string_section): New. - (mergeable_constant_section): New. - (default_elf_asm_named_section): Output SECTION_MERGE and - SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. - * output.h (mergeable_string_section): New. - (mergeable_constant_section): New. - (SECTION_MERGE, SECTION_STRINGS, SECTION_ENTSIZE): Define. - * toplev.c (flag_merge_constants): New. - (f_options): Add -fmerge-constants and -fmerge-all-constants - options. - (toplev_main): Default to -fno-merge-constants if not optimizing. - * flags.h (flag_merge_constants): Add extern. - * invoke.texi (-fmerge-constants, -fmerge-all-constants): Document. - * tm.texi (SELECT_SECTION, SELECT_RTX_SECTION): Document added third - argument. - * config/elfos.h (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): - Define if assembler has working .subsection -1 support. - (SELECT_RTX_SECTION, SELECT_SECTION): Add third macro argument. - Put constant into special SHF_MERGE sections if the linker should - attempt to merge duplicates. - * config/ia64/sysv4.h (SELECT_RTX_SECTION, SELECT_SECTION): Add third - macro argument. - Put constant into special SHF_MERGE sections if the linker should - attempt to merge duplicates. - * config/alpha/elf.h: Likewise. - (ASM_SECTION_START_OP, ASM_OUTPUT_SECTION_START): Define if assembler - has working .subsection -1 support. - * config/nextstep.h: Add third argument to SELECT_RTX_SECTION and - SELECT_SECTION. - * config/svr3.h: Likewise. - * config/darwin.h: Likewise. - * config/arm/aof.h: Likewise. - * config/arm/linux-elf.h: Likewise. - * config/avr/avr.h: Likewise. - * config/c4x/c4x.h: Likewise. - * config/d30v/d30v.h: Likewise. - * config/i386/dgux.h: Likewise. - * config/i386/osfrose.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/i386/svr3gas.h: Likewise. - * config/ia64/aix.h: Likewise. - * config/m32r/m32r.h: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m88k/dgux.h: Likewise. - * config/m88k/m88k.h: Likewise. - * config/mcore/mcore-pe.h: Likewise. - * config/mips/mips.h: Likewise. - * config/pa/pa.h: Likewise. - * config/pa/pa-linux.h: Likewise. - * config/romp/romp.h: Likewise. - * config/rs6000/sysv4.h: Likewise. - * config/rs6000/xcoff.h: Likewise. - * config/s390/linux.h: Likewise. - * config/sparc/sparc.h: Likewise. - * config/sparc/sysv4.h: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/v850/v850.h: Likewise. - * config/vax/vms.h: Likewise. - * config/arm/arm.c (arm_elf_asm_named_section): Output SECTION_MERGE - and SECTION_STRINGS flags plus SECTION_ENTSIZE entity size. - * config/sparc/sparc.c (sparc_elf_asm_named_section): Use - default_elf_asm_named_section for SHF_MERGE sections. - -Tue Sep 11 17:55:54 CEST 2001 Jan Hubicka - - * bb-reorder.c (fixup_reorder_chain): Fallthru edge to exit block - is OK. - -2001-09-11 Joseph S. Myers - - * c-common.c (split_specs_attrs): Allow for empty attributes with - empty TREE_PURPOSE. Fixes PR c/4294. - -Tue Sep 11 11:37:52 CEST 2001 Jan Hubicka - - * basic-block.h (cached_make_edge, make_single_succ): New. - (make_edge): Remove first parameter. - * bb-reroder.c (fixup_reorder_chain): Use make_single_succ_edge. - * cfg.c (cached_make_edge): Rename from make_edge; return newly - created edge; use obstack allocation. - (make_edge, make_single_succ_edge): New. - (first_removed_edge): New static variable. - (init_flow): Initialize first_removed_edge and n_edges. - (clear_edges): Use remove_edge. - (flow_delete_block): Likewise. - (remove_edge): Add removed edges to the removed edges list. - (split_block, redirect_edge_and_branch_force, split_edge): - Use make_edge. - * cfganal.c (flow_call_edges_add): Updaet make_edge call. - (add_noreturn_fake_exit_edges): Likewise. - (connect_infinite_loops_to_exit): Liekwise. - * cfgbuild.c (make_label_edge, make_edges, find_sub_basic_blocks): - Use cached_make_edge. - * cfgcleanup.c (try_crossjump_to_edge): Use make_single_succ_edge. - * profile.c (branch_prob): Update make_edge call. - * ssa-dce.c (ssa_eliminate_dead_code): Likewise. - -2001-09-11 Richard Henderson - - * config/alpha/alpha.c: Tidy formatting. - (local_symbolic_operand): Verify mode. - (alpha_sa_mask): Ignore unicos for eh_return. - (alpha_expand_epilogue): Handle sp_adj2 zero, not NULL. - * config/alpha/alpha.md (umk divsi patterns): Remove. - (extendsfdf2): Remove unicos check. - (tablejump): Merge vms and unicos code; always use direct set - plus label_ref use. - -2001-09-11 Roman Lechtchinsky - - * config.gcc (alpha*-*-unicosmk*): New target. - - * config/alpha/alpha-protos.h (symbolic_operand, - unicosmk_add_call_info_word, unicosmk_add_extern, - unicosmk_defer_case_vector, unicosmk_unique_section, - unicosmk_output_align, unicosmk_text_section, unicosmk_data_section, - unicosmk_asm_file_start, unicosmk_asm_file_end, - unicosmk_output_common): Declare. - - * config/alpha/alpha.c (NUM_ARGS, override_options, call_operand, - direct_return, function_arg, alpha_va_start, alpha_va_arg, - alpha_does_function_need_gp, alpha_end_function): Support Cray - Unicos/Mk. - (alpha_init_machine_status, alpha_mark_machine_status, - alpha_free_machine_status, unicosmk_output_deferred_case_vectors, - unicosmk_gen_dsib, unicosmk_output_ssib, unicosmk_need_dex, - unicosmk_asm_named_section, unicosmk_insert_attributes, - unicosmk_section_type_flags, symbolic_operand, - unicosmk_output_module_name, unicosmk_output_default_externs, - unicosmk_output_dex, unicosmk_output_externs, - unicosmk_output_addr_vec, unicosmk_ssib_name, - unicosmk_initial_elimination_offset, unicosmk_asm_file_start, - unicosmk_asm_file_end, unicosmk_output_common, - unicosmk_section_type_flags, unicosmk_unique_section, - unicosmk_add_call_info_word, unicosmk_text_section, - unicosmk_data_section, unicosmk_extern_list, unicosmk_extern_head, - unicosmk_add_extern, unicosmk_dex, unicosmk_dex_list, - unicosmk_dex_count, unicosmk_special_name): New. - (TARGET_INSERT_ATTRIBUTES, TARGET_SECTION_TYPE_FLAGS): Define for - TARGET_ABI_UNICOSMK. - (get_aligned_mem, alpha_expand_unaligned_load, - alpha_expand_unaligned_store, alpha_expand_unaligned_load_words, - alpha_expand_unaligned_store_words): Support big-endian mode. - (print_operand): Likewise. New format specifier 't'. Use - TARGET_AS_SLASH_BEFORE_SUFFIX. - (alpha_is_stack_procedure): Rename from vms_is_stack_procedure. - (alpha_pv_save_size): Update with above change. - (alpha_sa_mask, alpha_sa_size, alpha_expand_prologue, - alpha_start_function, alpha_expand_epilogue): Likewise. Support Cray - Unicos/Mk. - - * config/alpha/alpha.h (TARGET_ABI_UNICOSMK): New. - (TARGET_ABI_OSF): Exclude TARGET_ABI_UNICOSMK. - (TARGET_AS_SLASH_BEFORE_SUFFIX): New. - (EXTRA_CONSTRAINT): New constraint 'U'. - (PREDICATE_CODES): Add symbolic_operand. - - * config/alpha/alpha.md (UNSPEC_UMK_LAUM, UNSPEC_UMK_LALM, - UNSPEC_UMK_LAL, UNSPEC_UMK_LOAD_CIW): New constants. - (mulsi3, *mulsi_se, mulvsi3): Disable for TARGET_ABI_UNICOSMK. - (integer division and modulus patterns): Split in default and - Unicos/Mk versions. - (*divmodsi_internal, *divmoddi_internal): Disable for - TARGET_ABI_UNICOSMK. - (unaligned_extend?idi, unaligned_load?i, unaligned_store?i): Split in - little-endian and big-endian versions. - (ext, ins, msk): Likewise. - (extv, extzv, insv): Support big-endian mode. - (call, call_value, tablejump): Support TARGET_ABI_UNICOSMK. - (call_umk, call_value_umk, *call_umk, tablejump_umk, - *tablejump_umk_internal, *call_value_umk): New. - (*movdi_nofix): Add pattern for loading an address into a register on - TARGET_ABI_UNICOSMK. - (umk_laum, umk_lal, umk_lalm, *umk_load_ciw): New. - (umk_mismatch_args, arg_home_umk): New. - (various insns): Don't use mov, fmov, nop, fnop and unop. - (realign): Support TARGET_ABI_UNICOSMK. - - * config/alpha/unicosmk.h: New file. - * config/alpha/t-unicosmk: New file. - - * fixinc/inclhack.def (unicosmk_restrict): New. - * fixinc/fixincl.x: Regenerate. - - * ginclude/stddef.h (size_t): Check for and define __SIZE_T__. - (wchar_t): Check for and define __WCHAR_T__. - -2001-09-11 Richard Sandiford - - * combine.c (simplify_shift_const): Treat shifts by the mode - size as undefined. - -2001-09-11 Neil Booth - - * cpphash.h (struct tokenrun): New. - (struct cpp_context): New member bol. - (struct cpp_reader): New members. - (_cpp_init_tokenrun): New. - * cppinit.c (cpp_create_reader): Set up the token runs. - * cpplex.c (lex_directive, lex_token, next_tokenrun): New. - (lex_token): New internalised version of _cpp_lex_token. Don't - handle directives or the multiple include optimization here any - more. Simply lex a token. - * cpplib.c (run_directive): Clear bol. - (_cpp_pop_buffer): Set bol. - * cppmacro.c (funlike_invocation_p): Keep tokens whilst parsing - arguments. - -2001-09-11 Michael Meissner - - * config/mips/mips.h (CC1_SPEC): If -mgp32 default to -mfp32, and - give an error if the user uses -mfp32. - (CPP_FPR_SPEC): Define __mips_fpr to be 32 or 64 depending on the - default options. - (CPP_SPEC): Define __mips_fpr to be 32 or 64, depending on the - floating point register size. - (EXTRA_SPECS): Add CPP_FPR_SPEC. - - * config/mips/netbsd.h (ASM_FINISH_DECLARE_OBJECT): Use - HOST_WIDE_INT_PRINT_DEC to properly print the result of - int_size_in_bytes. - * config/mips/elf.h (ASM_FINISH_DECLARE_OBJECT): Ditto. - * config/mips/elf64.h (ASM_FINISH_DECLARE_OBJECT): Ditto. - -2001-09-11 Hans-Peter Nilsson - - * dbxout.c (dbxout_parms): Fix typo in comment. - * unroll.c (loop_find_equiv_value): Ditto. - * toplev.c (rest_of_compilation): Ditto. - * loop.c (scan_loop): Ditto. - * dwarf2out.c (struct dw_fde_struct): Ditto. - -2001-09-10 Zack Weinberg - - * cpplex.c (parse_identifier): Fast-path optimize. Avoid - copying identifier when we're just going to throw it away. - (parse_identifier_slow): New routine to handle abnormal cases. - (_cpp_lex_token): Update call site. - - * hashtable.c (ht_lookup): Don't assume that the string we've - been given is NUL-terminated. - * system.h: #define __builtin_expect(a, b) to (a) if not - GCC >=3.0. - -2001-09-10 Michael Meissner - - * config.gcc (sparc64-*-solaris2): Add alias to be compatible with - binutils, gdb. - -2001-09-10 David Edelsohn - - * config/rs6000/t-aix43 (SHLIB_INSTALL): Use mode 751 (a+x,r-o). - -Mon Sep 10 16:26:44 2001 Richard Kenner - - * builtins.c (c_getstr): Correct thinko in last change and further - cleanup. - -2001-09-10 Tim Freeman - - * dwarf2out.c (incomplete_types, decl_scope_table): Make them - into varray's and register them as roots with the garbage - collector so they are not collected too soon. - -Mon Sep 10 14:21:26 CEST 2001 Jan Hubicka - - * Makefile.in (cfg.o, cfganal.o, cfgloop.o, cfgbuild.o, cfgcleanup.o): - New. - * basic-block.h (flow_obstack, label_value_list, - tail_recursion_label_list): Declare - (tidy_fallthru_edges): Declare. - (expunge_block, last_loop_beg_note): Delete. - (can_fallthru, flow_nodes_print, flow_edge_list_print): Declare. - * cfg.c: New file - (basic_block_for_insn, label_value_list): Move from flow.c; make global. - (n_basic_blocks, n_edges, basic_block_info, entry_exit_blocks, - init_flow, clear_edges, can_delete_note_p, can_delete_label_p, - flow_delete_insn, flow_delete_insn_chain, create_basic_block, - expunge_block, flow_delete_block, compute_bb_for_insn, - update_bb_for_insn, set_block_for_insn, set_block_for_new_insns, - make_edge, remove_edge, redirect_edge_succ, redirect_edge_succ_nodup, - redirect_edge_pred, split_block, marge_blocks_nomove, block_label, - try_redirect_by_replacing_jump, last_loop_beg_note, - redirect_edge_and_branch, redirect_edge_and_branch_force, - tidy_fallthru_edge, tidy_fallthru_edges, back_edge_of_syntactic_loop_p, - split_edge, insert_insn_on_edge, commit_one_edge_insertion, - commit_edge_insertions, dump_flow_info, debug_flow_info, - dump_edge_info, dump_bb, debug_bb, debug_bb_n, print_rtl_with_bb, - verify_flow_info, purge_dead_edges, purge_all_dead_edges): - Move here from flow.c - * cfganal.c: New file. - (forwarder_block_p, can_fallthru, mark_critical_edges, - mark_dfs_back_edges, need_fake_edge_p, flow_call_edges_add, - find_unreachable_blocks, create_edge_list, free_edge_list, - print_edge_list, verify_edge_list, find_edge_index, flow_nodes_print, - flow_edge_list_print, remove_fake_successors, remove_fake_edges, - add_noreturn_fake_exit_edges, connect_infinite_loops_to_exit, - flow_reverse_top_sort_order_compute, flow_depth_first_order_compute, - flow_dfs_compute_reverse_init, flow_dfs-compute_reverse_add_bb, - flow_dfs-compute_reverse_execute, flow_dfs_compute_reverse_finish); - Move here from flow.c - * cfgbuild.c: New file - (count_basic_blocks, find_label_refs, make_label_edge, make_eh_edge, - make_edges, find_basic_blocks_1, find_basic_blocks, - find_sub_basic_blocks): Move here from flow.c - * cfgcleanup.c: New file. - (try_simplify_condjump, try_forward_edges, tail_recursion_label_p, - merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps, merge_blocks, - flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, - try_crossjump_bb, try_optimize_cfg): Move here from flow.c - (delete_unreachable_blocks, cleanup_cfg): Likewise; return true - if succeeded. - * cfgloop.c: New file - (flow_loops_cfg_dump, flow_loop_nested_p, flow_loop_dump, - flow_loops_dump, flow_loops_free, flow_loop_entry_edges_find, - flow_loop_exit_edges_find, flow_loop_nodes_find, - flow_loop_pre_header_scan, flow_loop_pre_header_find, - flow_loop_tree_node_add, flow_loops_tree_build, - flow_loop_level_compute, flow_loops_level_compute, flow_loop_scan, - flow_loops_find, flow_loops_update, flow_loop_outside_edge_p): - Move here from flow.c - * flow.c: Remove everything moved elsewhere - * output.h (cleanup_cfg): Return bool. - - * bb-reorder.c (reorder_block_def): Remove 'index'. - (insert_intra_1): Add argument BB, set block for new note. - (make_reorder_chain): Do not depdent on BB indexes. - (make_reorder_chain_1): Do not use BB indexes. - (label_for_bb): Likewise; set BB for new insn. - (emit_jump_to_block_after): Likewise. - (fixup_reorder_chain): Sanity check that all basic blocks - are chained; verify newly created insn chain; remove - undocnitional jump simplifying; Do not use BB indexes; - properly initialize count and frequency information; - dump reordered sequence. - (insert_intra_bb_scope_notes): update call of insert_intra_1. - (insert_inter_bb_scope_notes): Set block for new insn. - (reorder_basic_blocks): Dump flow info before reoredering. - -Mon Sep 10 06:47:35 2001 Richard Kenner - - * alias.c (clear_reg_alias_info): Use K&R format definition. - Avoid unsigned warning. - * builtins.c: Use "unsigned int", not "unsigned". - (target_char_cast): Use host_integerp and tree_low_cst. - (expand_builtin_args_info, expand_builtin_frame_address): Likewise. - (c_strlen): Likewise; OFFSET now HOST_WIDE_INT. - (c_getstr): Likewise. - (std_expand_builtin_va_arg): Use int_size_in_bytes. - (builtin_memcpy_read_str): Avoid unsigned warning. - (expand_builtin_memcpy): Alignments are unsigned. - (expand_builtin_strncpy, expand_builtin_memset): Likewise. - (expand_builtin_expect_jump): Use integer_zerop and integer_onep. - * predict.c (expensive_function_p): LIMIT now unsigned. - * resource.c (mark_target_live_regs): Make some vars unsigned. - * sdbout.c: Use "unsigned int", not "unsigned". - (MAKE_LINE_SAFE): Add cast to avoid unsigned warning. - (sdbout_source_line): Likewise. - (sdbout_record_type_name): Remove "const" for NAME declaration. - * config/alpha/alpha.c (alpha_expand_block_move): Whitespace fixes. - -2001-09-10 Richard Sandiford - - * calls.c (store_one_arg): Expand comment. - -2001-09-10 Roman Lechtchinsky - - * calls.c (store_one_arg): Make sure that the entire argument is - pushed if STACK_PARMS_IN_REG_PARM_AREA is defined. - -2001-09-09 Richard Henderson - - * emit-rtl.c (adjust_address): Fix mode for LO_SUM. - -Sun Sep 9 10:43:17 CEST 2001 Jan Hubicka - - * loop.c (combine_givs): Fix computing of benefit once giv is combined. - -2001-09-09 Richard Henderson - - * config/alpha/alpha.c (alpha_next_sequence_number): New. - (alpha_this_literal_sequence_number): New. - (alpha_this_gpdisp_sequence_number): New. - (some_operand, input_operand): Add HIGH. - (local_symbolic_operand): New. - (alpha_encode_section_info): New. - (alpha_legitimate_address_p): Allow LO_SUM. - (alpha_legitimize_address): Generate HIGH+LO_SUM. - (alpha_expand_mov): Likewise. - (secondary_reload_class): Check memory_operand not general_operand - for FP_REGS test. - (alpha_expand_unaligned_load): Force LO_SUM addresses into a register. - (alpha_expand_unaligned_store): Likewise. - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_clear): Likewise. - (print_operand): Handle %#, %*, %H. - (print_operand_address): Handle LO_SUM. - (find_lo_sum): New. - (alpha_does_function_need_gp): Use it. - (alpha_expand_block_move): Fix signed compare warnings. - (alpha_sa_mask, alpha_align_insns): Likewise. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (TARGET_EXPLICIT_RELOCS): New. - (MASK_EXPLICIT_RELOCS): New. - (TARGET_SWITCHES): Add -mexplicit-relocs. - (EXTRA_CONSTRAINT): Add 'T'. - (PREFERRED_RELOAD_CLASS): HIGH goes in GENERAL_REGS. - (ASM_APP_ON, ASM_APP_OFF): Turn on and off asm macro expansion. - (ENCODE_SECTION_INFO): Out line. - (REDO_SECTION_INFO_P): New. - (STRIP_NAME_ENCODING): New. - (ASM_OUTPUT_LABELREF): New. - (PRINT_OPERAND_PUNCT_VALID_P): Add #, *. - (PREDICATE_CODES): Update. - * config/alpha/alpha.md (divmodsi_internal_er, divmoddi_internal_er, - call_osf_1_er_noreturn, call_osf_1_er, movdi_er_low, movdi_er_nofix, - movdi_er_fix, prologue_ldgp_1_er, builtin_setjmp_receiver_sub_label_er, - builtin_setjmp_receiver_er, exception_receiver_1_er, - call_value_osf_1_er): New patterns. - (sibcall_osf_1, sibcall_value_osf_1): Remove register alternative. - (movqi, movhi, movsi): Add explicit $31 base register to lda. - * config/alpha/elf.h (ASM_FILE_START): Set nomacro if explicit relocs. - (FINAL_PRESCAN_INSN): New. - -Sat Sep 8 22:00:55 CEST 2001 Jan Hubicka - - * reg-stack.c (subst_stack_regs_pat): Fix fcmov reversal code. - -2001-09-08 Andreas Jaeger - - * i386.h (TARGET_SWITCHES): Fix description. - -2001-09-07 David Edelsohn - - * rs6000.c (num_insns_constant): Compute number of instructions - more accurately. - - * doc/install.texi: Explain AIX exception handling work-around. - Update URL for AIX fixes. - -2001-09-07 Jim Wilson - - * alias.c (clear_reg_alias_info): New. - * flow.c (attempt_auto_inc): Call clear_reg_alias_info. - * rtl.h (clear_reg_alias_info): Declare. - -2001-09-07 Roman Lechtchinsky - - * real.c (EMUSHORT,EMUSHORT_SIZE): Use HImode if no 16-bit type is - available. - (UEMUSHORT): New. Use instead of unsigned EMUSHORT. - (m16m,edivm,emulm): Change declaration to match definition. - -2001-09-07 Roman Lechtchinsky - - * reload.c (push_reload): Check for subreg_lowpart_p instead of - SUBREG_BYTE being 0 when determining if the inner part of a subreg - can be reloaded. - -2001-09-07 Roman Lechtchinsky - - * c-common.c (signed_or_unsigned_type): Handle machine mode types - which have no corresponding C type. - * fold_const.c (target_isinf,target_isnan,target_negative): Update - the representation of 64-bit doubles to work with 64-bit ints. - -2001-09-07 Aldy Hernandez - - * config/mips/mips.c (override_options): Do not override ISA when ABI - specified if MIPS_CPU_STRING_DEFAULT was specified. - -2001-09-07 Richard Henderson - - * loop.c (record_giv): Avoid simplifying MULT to ASHIFT. - (express_from_1): Wrap lines. - * rtlanal.c (commutative_operand_precedence): Rename from - operand_preference; export. - * rtl.h: Declare it. - * simplify-rtx.c (simplify_gen_binary): Tidy +/- const_int handling. - (simplify_binary_operation): Invoke simplify_plus_minus on - (CONST (PLUS ...)) as well. - (struct simplify_plus_minus_op_data): New. - (simplify_plus_minus_op_data_cmp): New. - (simplify_plus_minus): Use them. Avoid infinite recursion with - simplify_binary_operation wrt CONST. - -Fri Sep 7 11:52:30 2001 Kazu Hirata - - * h8300-protos.h (general_operand_dst_push): Remove. - * h8300.c (general_operand_dst_push): Likewise. - * h8300.h (OK_FOR_T): Likewise. - (EXTRA_CONSTRAINTS): Do not use OK_FOR_T. - * h8300.md (pushqi_h8300): New. - (pushqi_h8300hs): Likewise. - (pushqi): Likewise. - (pushhi_h8300): Likewise. - (pushhi_h8300hs): Likewise. - (pushhi): Likewise. - -Fri Sep 7 12:56:26 2001 Richard Kenner - - * genattrtab.c (attr_printf): First arg is unsigned. - Clean up formatting of callers. - -2001-09-06 Aldy Hernandez - - * config/mips/mips.c (override_options): Allow abi32 with 64 bit - registers. - -2001-09-07 Andreas Jaeger - - * i386.h (TARGET_SWITCHES): Fix descriptions. - -2001-09-07 Matt Kraai - - * stor-layout.c (compute_record_mode): Check DECL_SIZE is set. - -2001-09-06 Ira Ruben - - Remove OP_IDENTIFIER. - * tree.def (OP_IDENTIFIER): Remove. - * tree.c (tree_node_kind enum): Remove op_id_kind. - (tree_node_kind_names): Remove "op_identifiers". - (make_node): Remove OP_IDENTIFIER test. - (build_op_identifier): Removed because it isn't being used. - * print-tree.c (print_node): Remove OP_IDENTIFIER case. - * cp/pt.c (tsubst): Remove OP_IDENTIFIER case. - -2001-09-06 Richard Henderson - - * simplify-rtx.c (simplify_binary_operation): Revert last change. - -2001-09-06 Richard Henderson - - * simplify-rtx.c (simplify_binary_operation): Simplify contents - of CONST. - -2001-09-06 Franz Sirl - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register - number used for CR register. - -Thu Sep 6 11:16:35 2001 Jeffrey A Law (law@cygnus.com) - Joern Rennecke (amylaar@cygnus.com) - - * h8300-protos.h (h8300_return_addr_rtx): New prototype. - * h8300.c (initial_offset): Handle offset between RP and FP. - (h8300_return_addr_rtx): New function. - * h8300.h (FIRST_PSEUDO_REGISTER): Bump now that we have a - return register. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Corresponding changes. - (REG_ALLOC_ORDER, RETURN_ADDRESS_POINTER_REGNUM): Likewise. - (REG_CLASS_CONTENTS, ELIMINABLE_REGS): Likewise. - (CAN_ELIMINATE, REGISTER_NAMES): - (RETURN_ADDR_RTX): Call h8300_return_addr_rtx. - -2001-09-06 Nathan Sidwell - - Remove TYPE_NONCOPIED_PARTS. - * tree.h (TYPE_NONCOPIED_PARTS): Remove. - (struct tree_type): Remove noncopied_parts. - * c-tree.h (TYPE_ACTUAL_ARG_TYPES): Map onto TYPE_BINFO. - * expr.c (save_noncopied_parts, init_noncopied_parts): Remove. - (fixed_type_p): Remove. - (expand_expr, INIT_EXPR): Don't deal with noncopied parts. - (expand_expr, MODIFY_EXPR): Likewise. - * ggc-common.c (ggc_mark_trees): Remove TYPE_NONCOPIED_PARTS. - * doc/c-tree.texi: Remove TYPE_NONCOPIED_PARTS FIXME. - -2001-09-06 Alan Modra - - * config/rs6000/rs6000.c (mask_operand): Use signed vars to avoid - compiler warnings. - (mask64_operand): Likewise. - (includes_rldic_lshift_p): Likewise. - (includes_rldicr_lshift_p): Likewise. - -2001-09-05 Ziemowit Laski - - * objc/objc-act.c (build_message_expr): If a class method cannot - be found, do not issue a warning if a corresponding instance - method exists in the root class. - -2001-09-05 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_mov): Initialize temp. - -2001-09-05 Zack Weinberg - - * function.c (ggc_mark_struct_function): Mark f->outer. - * toplev.c (rest_of_compilation): Clear DECL_SAVED_INSNS here... - * integrate.c (output_inline_function): ... not here. - -Wed Sep 5 17:28:49 CEST 2001 Jan Hubicka - - * profile.c (branch_prob): Call add_noreturn_fake_exit_edges. - - * i386.c (size_cost): New static variable. - (override_function): Use size_cost when -Os is specified. - - * i386.c (ix86_expand_prologue): Set use_fast_prologue_epilogue - properly; Use current_function_calls_eh_return. - (ix86_expand_epilogue): Avoid dummy optimize_size tests; - use leave to avoid dependency chain. - - * local-alloc.c (update_equiv_regs): Use CFG to iterate over INSN stream; - get BB loop_depth instead of computing it from LOOP notes. - - * reg-stack.c (subst_stack_reg_pat): Handle reversal of conditional moves. - -2001-09-05 John David Anglin - - * som.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - * pa.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP): Define - -2001-09-05 Jeffrey A Law (law@cygnus.com) - Jason Merrill (jason@redhat.com) - - * stor-layout.c (layout_type): Complain if an array's size can - not be represented in a size_t. - - * config/h8300/elf.h (ENDFILE_SPEC, STARTFILE_SPEC): Define. - -2001-09-05 David Billinghurst - - * gcc.c: (process_command) Add parentheses around assignment - used as truth value. - -2001-09-05 Richard Sandiford - - * config/mips/mips.c (save_restore_insns): Don't mark any register - save slots as unchanging if current_function_calls_eh_return. - -2001-09-05 Richard Henderson - - * config/alpha/alpha.c (alpha_legitimate_address_p): New. - * config/alpha/alpha-protos.h: Declare it. - * config/alpha/alpha.h (GO_IF_LEGITIMATE_ADDRESS): Move to c file. - (NONSTRICT_REG_OK_FOR_BASE_P): Rename from non-strict macro. - (NONSTRICT_REG_OK_FP_BASE_P): Likewise. - (STRICT_REG_OK_FOR_BASE_P): Rename from strict macro. - (REG_OK_FOR_BASE_P): Select one of the above. - -2001-09-05 Richard Sandiford - - * config/mips/t-elf (EXTRA_PARTS): Use EXTRA_MULTILIB_PARTS instead. - (crti.o): Prefix name of object file with $(T). - (crtn.o): Likewise. - -2001-09-05 David S. Miller - - * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC. - * config/sparc/linux64.h: Likewise. - -2001-09-05 Andreas Jaeger - - * doc/invoke.texi (i386 Options): -mwide-multiply is not - available anymore, remove the documentation. - (i386 Options): Fix typo, cleanup index entries. - - * prefix.c (concat): Remove, we can use the version from liberty. - -2001-09-05 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_mov, alpha_expand_mov_nobwx): - New functions split out of md file expanders. - * config/alpha/alpha-protos.h: Declare them. - * config/alpha/alpha.md (movqi, movhi, movsi, movdi): Use them. - -2001-09-05 Neil Booth - - * cppmacro.c (funlike_invocation_p): No need to restore context. - -2001-09-04 Richard Henderson - - * reload.c (push_reload): Export. - * reload.h (push_reload): Declare it. - - * config/alpha/alpha.h (LEGITIMIZE_ADDRESS): Move out o' line. - (LEGITIMIZE_RELOAD_ADDRESS): Likewise. - * config/alpha/alpha.c (alpha_legitimize_address): New. - (alpha_legitimize_reload_address): Likewise. - * config/alpha/alpha-protos.h: Declare them. - -2001-09-04 Stan Shebs - - * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Define. - * config/darwin.c (machopic_stub_name): Account for internally - generated lib calls such as memcpy. - -2001-09-04 Richard Henderson - - * unwind.h (_UA_END_OF_STACK): New flag. - * unwind.inc (_Unwind_ForcedUnwind_Phase2): Set it. - -Tue Sep 4 11:16:35 2001 Jeffrey A Law (law@cygnus.com) - - * h8300/elf.h (LINK_SPEC): Redefine appropriately for the H8. - -2001-09-04 Richard Sandiford - - * config/mips/mips.c (save_restore_insns): Change base_offset to - fp_offset in second call to mips_emit_frame_related_store. - -2001-09-04 Hans-Peter Nilsson - - * doc/rtl.texi: Mention that besides as a CODE_LABEL, a label can - sometimes be represented as a NOTE of type - NOTE_INSN_DELETED_LABEL. - (Insns): Document NOTE_INSN_DELETED_LABEL. - -2001-09-04 Nathan Sidwell - - * c-common.h (tree_dump_index): Add more comments. - * c-dump.c (dump_files): Name flags `tree' rather than `ast'. - (dump_option_value_info): New struct. - (dump_options): New array. - (dump_switch_p): Parse switch options symbolically. - * doc/invoke.texi (-fdump-ast): Rename to ... - (-fdump-tree): ... here. Document that options are symbolic, and - not all are applicable. - -2001-09-04 David S. Miller - - * config/sparc/sparc.md (define_splits): Kill constraints. - - Cleanup redundant and unused insn attributes. - * config/sparc/sparc.md (define_attr "insn"): Kill address, unary, - binary, and move. Mark ialu as default. - (commented out define_function_unit "alu"): Kill. - (define_attr "use_clobbered"): Kill. - (whole file): Kill address insn type references. Replace - all unary/binary/move references with ialu. - * config/sparc/sparc.c (whole file): Kill TYPE_ADDRESS - references. Replace TYPE_{UNARY,BINARY,MOVE} references with - TYPE_IALU. - - Simplify length insn attribute and make more judicious use - of insn attribute defaulting. - * config/sparc/sparc.md (all insns with length > one): Mark as - insn type multi if real instructions, else use default if - it is a forced splitter. - (all insns with length == one): Use default insn length. - (all insns of type ialu): Use default insn type. - - Fix erroneous insn attribute settings. - (addx): Set insn type to misc. - (mulsidi3_sp64, const_mulsidi3_sp64, umulsidi3_sp64, - const_umulsidi3_sp64): Set insn type to imul. - - Track SFmode vs DFmode insns according to UltraSPARC - scheduling rules. - * config/sparc/sparc.md ("fptype"): New attribute, default - to "single". - (all DFmode single insns): Mark as fptype "double". - -2001-09-03 Jakub Jelinek - - * loop.c (express_from_1): Fix CONSTANT_P(a) case. - -2001-09-03 Richard Henderson - - * function.h (struct function): Add arg_pointer_save_area_init. - * function.c (expand_function_end): Init arg_pointer_save_area. - (get_arg_pointer_save_area): Do not init arg_pointer_save_area - when called from a nested function. - -2001-09-02 Angela Marie Thomas - - * fixinc/Makefile.in: Regenerate fixincl.x only if maintainer-mode - is enabled. - -Sun Sep 2 18:37:54 CEST 2001 Jan Hubicka - - * reload1.c (fixup_abnormal_edges): Allow NOTEs in the sequence. - -2001-09-01 Geoffrey Keating - - * expr.c (push_block): Make sane use of STACK_GROWS_DOWNWARD. - (emit_push_insn): Use specified padding direction when - STACK_PUSH_CODE is POST_INC. - - * config/stormy16/stormy16.h (DWARF2_UNWIND_INFO): Define to 0. - -2001-09-01 Kaveh R. Ghazi - - * mips.h (INITIAL_ELIMINATION_OFFSET): Add missing `else abort'. - -2001-09-01 Neil Booth - - * cppinit.c (cpp_start_read): Free the imacros list as we - traverse it. Don't free the chains before returning. - (_cpp_push_next_buffer): Only try pushing buffers if we've - completed -imacros handling. - -2001-08-31 Eric Christopher - - * gcc.c (handle_braces): Add explaination for abort. - -2001-08-30 Roman Zippel - - * expmed.c (store_bit_field): Update to patch from 2001-08-27: - move adjustment of bitpos instead. - -2001-08-31 Zack Weinberg - - * function.c: Remove all_functions. Make outer_function_chain - static. - (init_function_start): Don't add new function structure to - all_functions. - (find_function_data, push_function_context_to, - pop_function_context_from, put_var_into_stack, - trampoline_address): Update for changed structure element names. - (push_function_context_to): Disentangle. - (free_after_compilation): Also free F. - (expand_dummy_function_end): Don't free cfun here. - (put_var_into_stack): Comment why we can't use find_function_data here. - (fix_lexical_addr, trampoline_address, ): Use find_function_data. - (mark_function_chain): Split into maybe_mark_struct_function and - ggc_mark_struct_function. Export the latter. - (init_function_once): Mark from cfun and outer_function_chain; - not all_functions. - - * function.h (struct function): Kill next_global. Rename next - to outer. All users updated to match. - (all_functions, outer_function_chain): Don't declare. - - * ggc-common.c (ggc_mark_trees): Mark DECL_SAVED_INSNS. - * integrate.c (output_inline_function): Clear DECL_SAVED_INSNS, - don't touch f->inlinable, after calling rest_of_compilation. - - * tree.h: Forward-declare struct function. Prototype - ggc_mark_struct_function. - -2001-08-31 Kazu Hirata - - * config/h8300/h8300.md (*andorhi3): Fix typos. - -2001-08-31 Kaveh R. Ghazi - - * calls.c (emit_library_call_value): Don't use a fixed - argument after VA_CLOSE, i.e. out of scope in traditional C. - - * emit-rtl.c (gen_rtvec): Likewise. - -2001-08-31 Kaveh R. Ghazi - - * Makefile.in (c-pragma.o): Depend on output.h. - (reorg.o): Depend on except.h. - - * c-pragma.c: Include output.h. - - * reorg.c: Include except.h. - - * unwind-dw2.c: Call __builtin_alloca, not alloca. - -2001-08-31 Richard Henderson - - * sched-deps.c (add_dependence): Don't elide dependency if the - conditional used by insn is modified in elem. - -2001-08-31 Nick Clifton - - * config/v850/v850.h (OUTPUT_ADDR_CONST_EXTRA): Define. - -2001-08-31 Diego Novillo - - * c-decl.c (c_decode_option): Skip '-f' prefix before calling - dump_switch_p. - -2001-08-31 Geoffrey Keating - - * config/stormy16/stormy16.c (stormy16_asm_out_destructor): New - function. - (stormy16_asm_out_constructor): New function. - (TARGET_ASM_CONSTRUCTOR): Define. - (TARGET_ASM_DESTRUCTOR): Define. - -2001-08-31 Andreas Jaeger - - * gcse.c (add_label_notes): REG_LABEL is an INSN_LIST. - * loop.c (add_label_notes): Likewise. - * reload.c (find_reloads): Likewise. - * config/sh/sh.c (machine_dependent_reorg): Likewise. - -2001-08-31 Jason Merrill - - * unwind-pe.h (read_uleb128, read_sleb128): Move actual reading - code here. Take _Unwind_{W,Sw}ord*. - (read_encoded_value_with_base): Use them. - * unwind-dw2.c (_Unwind_FrameState): Make cfa_offset and cfa_reg - words. - (extract_cie_info): Simplify read_?leb128 handling. - (execute_stack_op, execute_cfa_program): Likewise. - * unwind-dw2-fde.c (get_cie_encoding): Likewise. - -2001-08-31 Geoffrey Keating - - * config/stormy16/stormy16.c (stormy16_expand_epilogue): Use - the frame pointer to pop the stack if convenient. - - * config/stormy16/stormy16.c (stormy16_initialize_trampoline): - Don't use post-increment before combine. - * config/stormy16/stormy16.h (STATIC_CHAIN_REGNUM): Don't use - a call-saved register. - -2001-08-31 Andreas Jaeger - - * jump.c (mark_jump_label): Revert patch from 2001-08-28, the - code was correct. - -2001-08-30 Geoffrey Keating - - * config/stormy16/stormy16.md (udivmodhi4): Express using UDIV/UMOD, - not DIV/MOD, of course. - -2001-08-30 Vladimir Makarov - - * rtl.def: Undo my patch commited 2001-08-27. - - * genattrtab.c: Ditto. - - * rtl.h: Ditto. - - * sched-int.h: Ditto. - - * target-def.h: Ditto. - - * target.h: Ditto. - - * haifa-sched.c: Ditto. - - * sched-rgn.c: Ditto. - - * sched-vis.c: Ditto. - - * Makefile.in: Ditto. - - * doc/md.texi: Ditto. - - * doc/tm.texi: Ditto. - - * doc/contrib.texi: Ditto. - - * doc/gcc.texi: Ditto. - - * genattrtab.h: Remove it. - - * genautomata.c: Remove it. - - * genattr.c: Undo my patch and Richard Henderson's patch commited - 2001-08-27. - -Thu Aug 30 19:22:15 2001 J"orn Rennecke - - * config.gcc (h8300-*-elf*): New case. - * h8300.h (CPP_SPEC): Add subtarget_cpp_spec. - (SUBTARGET_CPP_SPEC): Define. - (EXTRA_SPECS): Define. - (SUBTARGET_EXTRA_SPECS): Define. - * config/h8300/crti.asm, config/h8300/crtn.asm: New files. - * config/h8300/elf.h, config/h8300/t-elf: Likewise. - -Thu Aug 30 18:50:37 2001 J"orn Rennecke - - * t-h8300 (LIB1ASMFUNCS): Add _fixunssfdi and _fixunssfsi_asm. - (LIB2FUNCS_EXTRA): Define. - config/h8300/lib1funcs.asm: New part: L_fixunssfsi_asm . - config/h8300/fixunssfsi.c: New file. - -2001-08-30 Kazu Hirata - - * config/h8300/h8300.md (zero_extendqihi2): Changes to - define_expand to accommodate target-specific attributes. - (anonymous zero_extendqihi2 patterns): New. - -Thu Aug 30 18:10:56 2001 J"orn Rennecke - - * h8300.md (*andorhi3): New pattern. - -Thu Aug 30 16:00:31 2001 J"orn Rennecke - - * h8300.c (dosize): Fix test for "sub". - -Thu Aug 30 10:21:43 2001 J"orn Rennecke - - * c-typeck.c (pointer_diff): Try to eliminate common term before - doing conversions. - -2001-08-30 Nick Clifton - - * config/arm/arm.c (arm_compute_initial_elimination_offset): - Account for the saves of the FP registers. - - * config/arm/unknown-elf.h (TEXT_SECTION): Delete. - (TEXT_SECTION_ASM_OP): Define. - (INIT_SECTION_ASM_OP): Define. - (FINI_SECTION_ASM_OP): Define. - (SUBTARGET_EXTRA_SECTIONS): Remove trailing comma. - (RDATA_SECTION_FUNCTION): Provide prototype. - -2001-08-29 Geoffrey Keating - - * reload1.c (move2add_note_store): Correct typo checking for - argument pushes. - -2001-08-29 Andrew MacLeod - - * gcse.c (compute_hash_table): The SRC part of an insn with a RETVAL - note should not be considered outside the libcall block. - -2001-08-29 Kaveh R. Ghazi - - * genattrtab.c (attr_printf): Use VA_OPEN/VA_FIXEDARG/VA_CLOSE. - -2001-08-29 Kazu Hirata - - * config/h8300/h8300.md (movsi_h8300hs): Make it 64-bit safe. - -2001-08-29 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - emit_logical_op. - * config/h8300/h8300.c (emit_logical_op): New. - * config/h8300/h8300.md (andhi3): Use emit_logical_op. - (andsi3): Likewise. - (iorhi3): Likewise. - (iorsi3): Likewise. - (xorhi3): Likewise. - (xorsi3): Likewise. - -2001-08-29 John David Anglin - - * pa.c (move_operand): Cast GET_MODE_SIZE results to HOST_WIDE_INT for - comparison with rtx INTVAL. - (pa_output_function_prologue): Don't mix signed and unsigned in `?' - expression. - * pa.h (FUNCTION_ARG_SIZE): Likewise. - -2001-08-29 Kazu Hirata - - * config/h8300/lib1funcs.asm: Update the copyright. Fix - comment typos. - -2001-08-29 Kazu Hirata - - * config/h8300/h8300.md (anonymous movhi pattern): Don't move - (reg n) to (mem (pre_dec (reg n)) - (anonymous movsi pattern): Likewise. - -2001-08-29 Kazu Hirata - - * config/h8300/h8300.h (RETURN_ADDR_RTX): New. - -2001-08-29 Kazu Hirata - - * config/h8300/h8300.md (movsi_h8300hs): Optimize loading of - several special constants. - -2001-08-29 Kazu Hirata - - * config/h8300/lib1funcs.asm: Fix comment typos. - -2001-08-29 Kaveh R. Ghazi - - * iris6.h (ASM_DECLARE_OBJECT_NAME, ASM_FINISH_DECLARE_OBJECT): - Fix format specifier warnings. - - * irix6-libc-compat.c (inet_ntoa, inet_lnaof, inet_netof, - inet_makeaddr, semctl): Prototype. - - * mips.c (compute_frame_size): Fix signed/unsigned warnings. - (save_restore_insns): Use base_offset, not gp_offset. - - * mips.h (GP_REG_OR_PSEUDO_STRICT_P): Fix signed/unsigned warning. - (ASM_OUTPUT_BYTE): Fix format specifier warning. - -2001-08-29 Richard Henderson - - * bb-reorder.c (function_tail_eff_head): New. - (record_effective_endpoints): Set it. - (fixup_reorder_chain): Use it. - -2001-08-28 Kaveh R. Ghazi - - * dwarf2asm.c (dw2_asm_output_nstring): Fix typo in previous change. - -2001-08-28 Dale Johannesen - - * config/darwin.c (machopic_function_base_name): Add const - qualifier to a string. - (darwin_encode_section_info): Ditto. - -2001-08-28 Kaveh R. Ghazi - - * tree.c (default_valid_attribute_p): Don't use PARAMS on a - function definition. - -2001-08-28 Daniel Berlin - - * df.h (struct df): Add rts_order variable. - - * df.c (df_visit_next_rts): New function. - (df_visit_next): Renamed to df_visit_next_rc - (df_analyse_1): Allocate/compute/free rts_order as well. - (df_rd_global_compute): Use df_visit_next_rc instead of - df_visit_next. - (df_ru_global_compute): Use df_visit_next_rts instead of - df_visit_next. - - * flow.c (flow_reverse_top_sort_order_compute): New function. - - * basic-block.h: Add prototype. - -2001-08-28 Daniel Berlin - - * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): For unreachable - blocks, the BB_REACHABLE is now set, rather than aux being - non-NULL. Update the test to reflect this. - -2001-08-28 Eric Christopher - - * config/mips/crtn.asm: Add comment explaining 16 byte alignment. - config/mips/crti.asm: Ditto. - -2001-08-28 Eric Christopher - Richard Henderson - - * c-pragma.h (add_weak): Move prototype from here... - * output.h (add_weak): ... to here. - * varasm.c (add_weak): Fix typo. - * config/mips/crti.asm: New file. - * config/mips/crtn.asm: Ditto. - * config/mips/elf.h (SBSS_SECTION_ASM_OP) Add #undef. - (CTOR_LISTS_DEFINED_EXTERNALLY): Remove. - (INVOKE__main): Ditto. - (INIT_SECTION_ASM_OP): New. - (FINI_SECTION_ASM_OP): Ditto. - (STARTFILE_SPEC): Add crti. - (ENDFILE_SPEC): Add crtn. - * config/mips/elf64.h: Same. - * config/mips/rtems64.h (INVOKE__main, NAME__MAIN, SYMBOL__MAIN): - Remove. - * config/mips/vxworks.h: Ditto. - * config/mips/t-elf: Support crti and crtn. - -2001-08-28 Alexandre Oliva - - * jump.c (mark_jump_label): Fix typo: REG_LABEL is EXPR_LIST, not - INSN_LIST. - -2001-08-28 Richard Henderson - - * config/ia64/ia64.md (andcmbi3, iorcmbi3): Fix typos. - (one_cmplbi2 splitter): Remove redundant test. - -2001-08-28 Dale Johannesen - - * config/rs6000/darwin.h (DEFAULT_SIGNED_CHAR): Define. - -2001-08-28 Danny Smith - - * config/i386/cygwin.h (BIGGEST_FIELD_ALIGNMENT): Set to 64. - -2001-08-28 Stan Shebs - - * config/darwin.h (ASM_OUTPUT_LABELREF): Handle '*' names. - (UNALIGNED_SHORT_ASM_OP): Define. - (UNALIGNED_INT_ASM_OP): Define. - -2001-08-28 Will Cohen - - * config/rs6000/rs6000.md (store_multiple): Correct RTL - generation for first set. - -2001-08-27 Roman Zippel - - * flow.c (redirect_edge_succ_nodup): Return new edge. - (try_simplify_condjump): Use new edge. - * basic-block.h (redirect_edge_succ_nodup): Update prototype. - - * cse.c (cse_basic_block): Skip note instructions. - -2001-08-27 Richard Henderson - - * combine.c (combine_simplify_rtx): Don't reverse condition - if there is no reverse for the condition. - (simplify_comparison): Don't simplify subregs from INT to FP. - - * config/m68k/m68k.md (sordered, sordered_1, sunordered, sunordered_1, - suneq, suneq_1, sunge, sunge_1, sungt, sungt_1, sunle, sunle_1, - sunlt, sunlt_1, sltgt, sltgt_1, fsogt_1, fsoge_1, fsolt_1, fsole_1, - bordered, bunordered, buneq, bunge, bungt, bunle, bunlt, bltgt, - bordered_rev, bunordered_rev, buneq_rev, bunge_rev, bungt_rev, - bunle_rev, bunlt_rev, bltgt_rev): New patterns. - -2001-08-27 Roman Zippel - - * config/m68k/m68k.md (subreghi1ashrdi_const32, bsetmemqi, - bsetmemqi+1, strict_low_part peephole): Fix SUBREG_BYTE offset. - (pushqi1): New. - (adddi_dilshr32, adddi_dishl32): Only data register can be - source for mem destination. - - * expmed.c (store_bit_field): Ignore adjustment to bitpos - and use bitnum to decide about register move. - -2001-08-27 Richard Henderson - - * genattr.c (main): Emit state_t even when not doing scheduling. - -2001-08-27 Roman Zippel - Richard Henderson - - * gcse.c (reg_first_set, reg_last_set): Replace with ... - (reg_avail_info, current_bb): ... these. - (oprs_unchanged_p, record_last_reg_set_info): Use them. - (compute_hash_table): Likewise. - -2001-08-27 Roman Zippel - - * flow.c (verify_flow_info): Use checksums to verify edges. - -2001-08-27 Richard Henderson - - * genautomata.c (expand_automata): Always create a description. - -2001-08-27 Geoffrey Keating - - * optabs.c (expand_binop): Correctly handle the carry in multiword - add/subtract operations. - -2001-08-27 Fred Fish - - * ginclude/stddef.h: Fix typo, __SIZE__TYPE__ should be - __SIZE_TYPE__. - -2001-08-27 Geoffrey Keating - - * reload.c (find_reloads_toplev): Back out this change: - - 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. - -2001-08-27 Vladimir Makarov - - * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET, - PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON, - AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New - RTL constructions. - - * genattr.c (main): New variable num_insn_reservations. Increase - it if there is DEFINE_INSN_RESERVATION. Output automaton based - pipeline hazard recognizer interface. - - * genattrtab.h: New file. - - * genattrtab.c: Include genattrtab.h. - (attr_printf, check_attr_test, make_internal_attr, - make_numeric_value): Move protypes into genattrtab.h. Define them - as external. - (num_dfa_decls): New global variable. - (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, - DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET, - DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION, - DEFINE_INSN_RESERVATION. Call expand_automata and write_automata. - - * genautomata.c: New file. - - * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them. - - * sched-int.h: (curr_state): Add the external definition for - automaton pipeline interface. - (haifa_insn_data): Add comments for members blockage and units. - - * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, - TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, - TARGET_SCHED_DFA_POST_CYCLE_INSN, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, - TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New - macros. - (TARGET_SCHED): Use the new macros. - - * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn, - dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn, - first_cycle_multipass_dfa_lookahead, init_dfa_bubbles, - dfa_bubble): New members in gcc_target.sched. - - * haifa-sched.c (insert_schedule_bubbles_p): New variable. - (MAX_INSN_QUEUE_INDEX): New macro for automaton interface. - (insn_queue): Redefine it as pointer to array. - (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of - INSN_QUEUE_SIZE. - (max_insn_queue_index_macro_value): New variable. - (curr_state, dfa_state_size, ready_try): New varaibles for - automaton interface. - (ready_element, ready_remove, max_issue): New function prototypes - for automaton interface. - (choose_ready): New function prototype. - (insn_unit, blockage_range): Add comments. - (unit_last_insn, unit_tick, unit_n_insns): Define them for case - FUNCTION_UNITS_SIZE == 0. - (insn_issue_delay, actual_hazard_this_instance, schedule_unit, - actual_hazard, potential_hazard): Add comments. - (insn_cost): Use cost -1 as undefined value. Remove - LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton - pipeline interface. - (ready_element, ready_remove): New functions for automaton - interface. - (schedule_insn): Add new code for automaton pipeline interface. - (queue_to_ready): Add new code for automaton pipeline interface. - Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE. - (debug_ready_list): Print newline when the queue is empty. - (max_issue): New function for automaton pipeline interface. - (choose_ready): New function. - (schedule_block): Add new code for automaton pipeline interface. - Print ready list before scheduling each insn. - (sched_init): Add new code for automaton pipeline interface. - Initiate insn cost by -1. - (sched_finish): Free the current automaton state and finalize - automaton pipeline interface. - - * sched-rgn.c: Include target.h. - (init_ready_list, new_ready, debug_dependencies): Add new code for - automaton pipeline interface. - - * sched-vis.c: Include target.h. - (get_visual_tbl_length): Add code for automaton interface. - (target_units, print_block_visualization): Add comments. - - * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB, - USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables. - (sched-rgn.o, sched-vis.o): Add new dependency file target.h. - (getruntime.o, genautomata.o): New entries. - (genattrtab.o): Add new dependency file genattrtab.h. - (genattrtab): Add new dependencies. Link it with `libm.a'. - (getruntime.o, hashtab.o): New entries for canadian cross. - - * doc/md.texi: Description of automaton based model. - - * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST): - Add comments. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, - TARGET_SCHED_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_DFA_POST_CYCLE_INSN, - TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, - TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new - hook descriptions. - (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE, - MAX_DFA_ISSUE_RATE): New macro descriptions. - - * doc/contrib.texi: Add dfa based scheduler contribution. - - * doc/gcc.texi: Add more information about genattrtab. - -2001-08-27 Diego Novillo - - * flow.c (flow_loop_dump): Do not display insn UIDs if this is not - an RTL basic block. - -2001-08-27 Richard Henderson - - * function.c (expand_function_end): Don't init arg_pointer_save_area. - (get_arg_pointer_save_area): New. Create an init it here. - (fix_lexical_addr): Use it. - * function.h: Declare it. - * builtins.c (expand_builtin_setjmp_receiver): Use it. - * stmt.c (expand_nl_goto_receiver): Use it. - -2001-08-27 Richard Henderson - - * final.c (final_scan_insn): Don't enter APP_ON mode for - empty asm strings. - - * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Use proper - alignment for assemble_integer for DW_EH_PE_aligned. - * except.c (output_function_exception_table): Likewise. - -2001-08-26 Andreas Jaeger - - * c-tree.h: Add prototyp for c_sizeof_nowarn. - -2001-08-25 Dan Nicolaescu - - * ssa-ccp.c (ssa_const_prop): Free ssa_edges. - -2001-08-27 Alan Modra - - * config/rs6000/rs6000.c (mask_operand): Rewrite without - bit-shifting loop. - (mask64_operand): Likewise. - (rldic_operand): Delete. - (includes_lshift64_p): Delete. - (includes_rldic_lshift_p): New function. - (includes_rldicr_lshift_p): New function. - (print_operand): Don't call rldic_operand in case 'W'. - * config/rs6000/rs6000-protos.h (rldic_operand): Remove. - (includes_lshift64_p): Remove. - (includes_rldic_lshift_p): Declare. - (includes_rldicr_lshift_p): Declare. - * config/rs6000/rs6000.h (PREDICATE_CODES): Remove rldic_operand. - * config/rs6000/rs6000.md : - Replace match_operand rldic_operand predicate with - const_int_operand. Replace includes_lshift64_p condition with - includes_rldic_lshift_p. - : New. - -2001-08-27 Andreas Jaeger - - * emit-rtl.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout. - * errors.c: Likewise. - * final.c: Likewise. - * dwarf2asm.c: Likewise. - * doprint.c (checkit): Likewise. - * diagnostic.c: Likewise. - * collect2.c: Likewise. - * calls.c: Likewise. - * c-semantics.c (build_stmt): Likewise. - * c-format.c (status_warning): Likewise. - * c-errors.c (pedwarn_c99): Likewise. - * builtins.c (validate_arglist): Likewise. - * config/pj/pj.c (pj_printf): Likewise. - * fix-header.c: Likewise. - * gcc.c: Likewise. - * gcov.c (fnotice): Likewise. - * gensupport.c (message_with_line): Likewise. - * mips-tfile.c: Likewise. - * protoize.c (notice): Likewise. - * read-rtl.c (fatal_with_file_and_line): Likewise. - * rtl-error.c: Likewise. - * tradcpp.c: Likewise. - * tree.c: Likewise. - * cp/tree.c (build_min_nt): Likewise. - (build_min): Likewise. - * cp/lex.c: Likewise. - * cp/errfn.c: Likewise. - * cp/rtti.c (create_pseudo_type_info): Likewise. - -Sun Aug 26 20:25:44 2001 Denis Chertykov - - * df.c (df_uses_record): Return after recording all uses - in ASM_OPERANDS. - -2001-08-26 Daniel Berlin - - * df.c (df_insn_modify): Realloc the INSN table here, if - necessary, here, too. - -2001-08-26 Aldy Hernandez - - * config/mips/mips.c (mips_function_value): Handle complex return - values. - -2001-08-25 Hans-Peter Nilsson - - * reload1.c (reload): Make all entries in reg_equiv_memory_loc - unshared. - * reload.c (make_memloc): Copy result if it is still - reg_equiv_memory_loc[regno] on return. - (subst_reloads) [ENABLE_CHECKING]: Check that none of - reg_equiv_constant, reg_equiv_memory_loc, reg_equiv_address and - reg_equiv_mem are modified by the substitutions. - -Sat Aug 25 23:07:35 CEST 2001 Jan Hubicka - - * predict.c (expensive_function_p): New. - * rtl.h (expensive_function_p): Declare. - * i386.c (FAST_PROLOGUE_INSN_COUNT): New constant. - (use_fast_prologue_epilogue): New static variable. - (expand_prologue): Set it; emit short prologues if unset. - (expand_epilogue): Likewise. - -2001-08-22 Geoffrey Keating - - * config.gcc: Add stormy16-*-elf case. - * config/stormy16/stormy-abi: New file. - * config/stormy16/stormy16-lib2.c: New file. - * config/stormy16/stormy16-protos.h: New file. - * config/stormy16/stormy16.c: New file. - * config/stormy16/stormy16.h: New file. - * config/stormy16/stormy16.md: New file. - * config/stormy16/t-stormy16: New file. - -Sat Aug 25 15:46:51 CEST 2001 Jan Hubicka - - * i386.h (no-accumulate-outgoing-args): Use proper mask. - -2001-08-24 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_initialize_trampoline): Function - descriptor members are pointer size, not constant 4. - * config/rs6000/rs6000.md (define_splits): Remove more unused - constraints. - -2001-08-24 Kaveh R. Ghazi - - * sparc.h (ASM_OUTPUT_BYTE): Fix format specifier warning. - -2001-08-24 Andreas Jaeger , rkl@connect.org.uk - - * cp/rtti.c (VPARAMS): Fix parameter. - -2001-08-24 Zack Weinberg - - * expmed.c: Default-#define HAVE_insv, HAVE_extv, and HAVE_extzv - to zero. - (mode_for_extraction): No need for #ifdefs. Add default-case abort - to switch. - (store_bit_field): Eliminate insv_bitsize variable. Put HAVE_insv - in if controlling use of insv. - (extract_bit_field): Likewise, for extv and extzv. - -Fri Aug 24 17:27:46 CEST 2001 Jan Hubicka - - * i386.md (movcc peep2): Fix load of 0. - -2001-08-24 Kaveh R. Ghazi - - * fold-const.c (tree_expr_nonnegative_p): Handle *_DIV_EXPR, - *_MOD_EXPR, SAVE_EXPR and NON_LVALUE_EXPR. - -2001-08-23 Jason Merrill - - * c-pragma.h: Move weak_syms and weak_decls... - * varasm.c: ...here. Now static. - (declare_weak, weak_finish, remove_from_pending_weak_list): Don't - depend on HANDLE_PRAGMA_WEAK. - - * c-common.c (c_alignof, c_alignof_expr): Move here... - * c-typeck.c: ...from here. - * c-tree.h, c-common.h: Adjust. - -2001-08-23 Bernd Schmidt - - * config/ia64/ia64.c (rws_update): If !pred, set write_count - instead of incrementing it. - - * config/ia64/ia64.c (ia64_sched_reorder): When there's more than one - asm ready, don't try to move them all into the same array element. - -Thu Aug 23 17:21:43 CEST 2001 Jan Hubicka - - * function.c (thread_prologue_and_epilogue_insns): Avoid - fallthru flag on edge to exit. - - * i386.md (trunc?fsi splitter): Conditionionize for non-sse. - - * flow.c (delete_noop_moves, propagate_block_delete_insn): Purge - dead edges. - -2001-08-23 Lars Brinkhoff - - * config/mcore/mcore.h (MACHINE_DEPENDENT_SIMPLIFY): Remove. - * config/mcore/mcore.c (mcore_dependent_simplify_rtx): Likewise. - * config/mcore/mcore-protos.h (mcore_dependent_simplify_rtx): - Remove prototype. - -2001-08-23 Lars Brinkhoff - - * genconstants.c, genpreds.c, libfuncs.h, optabs.h, rtl-error.h: - replace "GNU CC" with "GCC". - -2001-08-23 Richard Henderson - - * config/ia64/ia64.c (ia64_register_move_cost): Add mode arguemnt. - Reorganize. Handle ADDL like GR, add GR_AND_BR. Handle TFmode. - (ia64_secondary_reload_class): Need GR between AR/BR and anything. - Need GR between FR and not GR_AND_FR. - * config/ia64/ia64-protos.h (ia64_register_move_cost): Update. - * config/ia64/ia64.h (reg_class): Add GR_AND_BR_REGS, move - AR regs before GR regs. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update. - (PREFERRED_RELOAD_CLASS): Tweak for reordered classes. - (REGISTER_MOVE_COST): Update. - (MEMORY_MOVE_COST): Add GR_AND_FR_REGS. - -2001-08-23 Richard Henderson - - * regclass.c (init_reg_sets_1): Don't assume cost 2 within - a register class. - -2001-08-22 Geoffrey Keating - - * reload1.c (emit_reload_insns): Don't look for notes - on a NULL store_insn. - -2001-08-22 Kaveh R. Ghazi - - * sparc.c (uns_small_int): Don't reference a constant >32-bit. - (addrs_ok_for_ldd_peep): Fix signed/unsigned warning. - (sparc_flat_function_prologue, sparc_flat_function_epilogue): Fix - format specifier warnings. - (sparc_sched_reorder): Mark parameter with ATTRIBUTE_UNUSED. - -2001-08-22 David Billinghurst - - * config/i386/i386-protos.h: Correct declaration of - i386_pe_asm_named_section. - -2001-08-22 John David Anglin - - * pa32-regs.h (CONDITIONAL_REGISTER_USAGE): Add declaration for - variable i. - * pa64-regs.h (CONDITIONAL_REGISTER_USAGE): Likewise. - -2001-08-22 Neil Booth - - * cpperror.c (print_location): Don't show _Pragma. - * cppfiles.c (_cpp_pop_file_buffer): Handle -include file pushing - and file change callback generation here. - (stack_include_file): Update use of cpp_push_buffer. - * cpphash.h (_cpp_pop_file_buffer): Update prototype. - (struct cpp_buffer): Remove type, pfile members. - * cppinit.c (cpp_handle_option): Use free_chain. - * cpplex.c (_cpp_lex_token): Don't do -include file pushing here. - (skip_escaped_newlines, get_effective_char, lex_percent): Take - a cpp_reader rather than a cpp_buffer. - (skip_escaped_newlines, get_effective_char, skip_block_comment, - skip_line_comment, parse_string, lex_percent, lex_dot, - _cpp_lex_token): Update accordingly. - * cpplib.c (_cpp_pop_buffer): Don't do file change callback - generation here. - (cpp_push_buffer): Update prototype. - (run_directive): Update use of cpp_push_buffer. - (_cpp_do__Pragma, cpp_define, cpp_define_builtin, cpp_undef, - handle_assertion): Update use of run_directive. - * cpplib.h (enum cpp_buffer_type): Remove. - (cpp_push_buffer): Update prototype. - * fix-header.c (read_scan_file): Update. - -2001-08-22 Matt Kraai - - * gcc.c (struct prefix_list): Change prefix to const char *. - -2001-08-22 Matt Kraai - - * final.c (final_scan_insn): Call ADDR_VEC_ALIGN on next insn. - -2001-08-22 Jason Merrill - - * explow.c (set_mem_attributes): Avoid returning a bogus alias set - from a new MEM. - - * jump.c (squeeze_notes): Take parms by reference. Handle END being - a squeezable note. - * rtl.h: Adjust. - * ifcvt.c (dead_or_predicable): Adjust. - * loop.c (find_and_verify_loops): Adjust. - * stmt.c (expand_end_case): Adjust. - * flow.c (merge_blocks_move_successor_nojumps): Adjust. Modify the - head and end insn pointers in the basic block, not just local copies. - (merge_blocks_move_predecessor_nojumps): Likewise. - -2001-08-22 Lars Brinkhoff - - * Makefile.in, alias.c, basic-block.h, bb-reorder.c, bitmap.c, - bitmap.h, builtin-types.def, builtins.c, builtins.def, - c-aux-info.c, c-common.c, c-common.def, c-common.h, - c-convert.c, c-decl.c, c-dump.c, c-dump.h, c-errors.c, - c-format.c, c-lang.c, c-lex.c, c-lex.h, c-parse.in, - c-pragma.c, c-pragma.h, c-semantics.c, c-tree.h, c-typeck.c, - caller-save.c, calls.c, collect2.c, collect2.h, combine.c, - conditions.h, config.gcc, configure.frag, configure.in, - conflict.c, convert.c, convert.h, cppspec.c, crtstuff.c, - cse.c, cselib.c, cselib.h, dbxout.c, dbxout.h, defaults.h, - dependence.c, df.c, df.h, diagnostic.c, diagnostic.h, - doloop.c, dominance.c, dwarf.h, dwarf2.h, dwarf2asm.c, - dwarf2asm.h, dwarf2out.c, dwarf2out.h, dwarfout.c, - emit-rtl.c, errors.c, errors.h, except.c, except.h, - exgettext, explow.c, expmed.c, expr.c, expr.h, final.c, - fixproto, flags.h, flow.c, fold-const.c, fp-test.c, - function.c, function.h, gbl-ctors.h, gcc.c, gcc.h, gcc.hlp, - gccspec.c, gcov-io.h, gcse.c, genattr.c, genattrtab.c, - gencheck.c, gencodes.c, genconfig.c, genemit.c, - genextract.c, genflags.c, gengenrtl.c, genmultilib, - genopinit.c, genoutput.c, genpeep.c, genrecog.c, - gensupport.c, gensupport.h, ggc-callbacks.c, ggc-common.c, - ggc-none.c, ggc-page.c, ggc-simple.c, ggc.h, global.c, - graph.c, graph.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, haifa-sched.c, halfpic.c, halfpic.h, - hard-reg-set.h, hwint.h, ifcvt.c, input.h, insn-addr.h, - integrate.c, integrate.h, jump.c, lcm.c, libgcc2.c, - libgcc2.h, lists.c, local-alloc.c, loop.c, loop.h, - machmode.def, machmode.h, main.c, mbchar.c, mbchar.h, - mips-tdump.c, mips-tfile.c, mklibgcc.in, mkmap-flat.awk, - mkmap-symver.awk, optabs.c, output.h, params.c, params.def, - params.h, predict.c, predict.def, predict.h, prefix.c, - prefix.h, print-rtl.c, print-tree.c, profile.c, protoize.c, - read-rtl.c, real.c, real.h, recog.c, recog.h, reg-stack.c, - regclass.c, regmove.c, regrename.c, regs.h, reload.c, - reload.h, reload1.c, reorg.c, resource.c, resource.h, rtl.c, - rtl.def, rtl.h, rtlanal.c, sbitmap.c, sbitmap.h, - sched-deps.c, sched-ebb.c, sched-int.h, sched-rgn.c, - sched-vis.c, sdbout.c, sdbout.h, sibcall.c, simplify-rtx.c, - ssa-ccp.c, ssa-dce.c, ssa.c, ssa.h, stmt.c, stor-layout.c, - stringpool.c, system.h, timevar.c, timevar.def, timevar.h, - tlink.c, toplev.c, toplev.h, tree.c, tree.def, tree.h, - tsystem.h, unroll.c, unwind-dw2-fde.c, unwind-dw2-fde.h, - unwind-dw2.c, unwind-pe.h, unwind-sjlj.c, unwind.h, - unwind.inc, varasm.c, varray.c, varray.h, xcoffout.c, - xcoffout.h: replace "GNU CC" with "GCC". - -2001-08-21 Richard Henderson - - * final.c (LABEL_ALIGN_AFTER_BARRIER): Default to no alignment. - (final_scan_insn): Consider jump tables data even if we have no - independent text section if !JUMP_TABLES_IN_TEXT_SECTION. Use - ADDR_VEC_ALIGN. - * config/ia64/ia64.h (JUMP_TABLES_IN_TEXT_SECTION): Remove. - (ASM_OUTPUT_CASE_END): Remove. - (ASM_OUTPUT_ADDR_DIFF_ELT): Emit pc-relative references. - * config/ia64/ia64.md (tablejump): Decode pc-relative references. - * config/ia64/sysv4.h (ASM_OUTPUT_BEFORE_CASE_LABEL): Remove. - -2001-08-21 Richard Henderson - - * config/ia64/ia64.c (emit_all_insn_group_barriers): Flush state - at barrier insns. Emit stop bits before barriers. - - * flow.c (flow_find_cross_jump): Don't consider unconditional - return insns for commoning. - - * final.c (compute_alignments): Fix typo. - - * expmed.c (CODE_FOR_insv, gen_insv): Provide defaults. - (CODE_FOR_extv, gen_extv, CODE_FOR_extzv, gen_extzv): Likewise. - (store_bit_field): Use mode_for_extraction more places. - (extract_bit_field): Likewise. - -2001-08-21 Zack Weinberg - - * caller-save.c: Don't include insn-codes.h. - (reg_save_code, reg_restore_code): Make arrays of int. - All uses updated to match. - (insert_save, insert_restore): No need to initialize "code" - variable upon declaration. - * Makefile.in: update dependencies; fix typo in clean rule. - -2001-08-21 Richard Henderson - - * ifcvt.c (find_if_block): Allow join_bb as EXIT. - (merge_if_block): Handle fallout from same. - -2001-08-21 Kaveh R. Ghazi - - * builtins.c (type_to_class): Fix typo in last change. - -2001-08-21 Richard Henderson - - * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't emit '#' if - ia64_asm_output_label. - - * config/ia64/crtbegin.asm (__do_global_dtors_aux): Use saved - copy of gp while the real gp register contains garbage. - -2001-08-21 Zack Weinberg - - * expmed.c (mode_for_extraction): New function. - (store_bit_field, extract_bit_field): Use it. - * expr.h: Prototype it and provide an enum for its first argument. - - * combine.c, function.c, recog.c: Don't include insn-codes.h. - Use mode_for_extraction rather than testing HAVE_insv/extv/extzv - and digging through the insn_data tables. - * Makefile.in: Update dependencies. - -2001-08-22 Neil Booth - - * cppfiles.c (stack_include_file): line-map.c now handles include - depth. - (handle_missing_handler): Similarly. - (_cpp_execute_include): Similarly. - (_cpp_pop_file_buffer): Similarly. - * cpphash.h (struct cpp_reader): Remove system_include_depth, - buffer_stack_depth and include_depth. - * cpplib.c (do_include_common): line-map.c now handles include depth. - (cpp_push_buffer): Similarly. - (_cpp_pop_buffer): Similarly. - * cppmacro.c (builtin_macro): Update. - * line-map.c (init_line_maps): Set depth. - (add_line_map): Increment "used" earlier. Update and use the - include depth. - (trace_include): Use the include depth. - * line-map.h (struct line_maps): New member depth. - -2001-08-21 Neil Booth - - * cppfiles.c (stack_include_file): Don't handle -H here. - * cppinit.c (cpp_start_read): Set include tracing after - cpp_post_options and after stacking the main file. - * line-map.c (trace_include): New. - (init_line_maps, add_line_map): Update. - * line-map.h (struct line_maps): New member trace_includes. - -2001-08-21 Neil Booth - - * cppfiles.c (stack_include_file): Harmonize system headerness tests. - * cppfiles.c (stack_include_file): Only stack a file if there - is something to do. Return a boolean indicating whether a - buffer was stacked or not. - (_cpp_execute_include): Similarly. - (_cpp_read_file): Similarly. - * cpphash.h (_cpp_read_file, _cpp_execute_include): Update prototypes. - -2001-08-21 Sam Steingold - - * tradcpp.c (rescan): define obufp_before_macroname before RECACHE - (RECACHE): keep obufp_before_macroname up to date - -2001-08-21 Zack Weinberg - - * stmt.c: Don't include insn-codes.h. - (expand_end_case): Machine specific logic moved to expr.c. - No need to worry about __builtin_classify_type. - (check_for_full_enumeration_handling, emit_case_nodes): - Kill #if 0 blocks. - - * builtins.o (expand_builtin_classify_type): Split up so code - can be shared with fold_builtin_classify_type. - (type_to_class, fold_builtin_classify_type): New functions. - (fold_builtins): Handle __builtin_classify_type. - - * expr.c (do_tablejump): Now static. - (case_values_threshold, try_casesi, try_tablejump): New; - code mostly from stmt.c (expand_end_case). - (expr.h): Update prototypes. - - * Makefile.in (stmt.o): Update dependencies. - -2001-08-21 Will Cohen - - * configure/alpha/alpha.h (CONDITIONAL_REGISTER_USAGE): Added local - declaration of variable i. - * configure/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Added local - declaration of variable i. - -2001-08-21 Richard Henderson - - * crtstuff.c: Fix thinko last change. Move list tails to start - of CRT_END section. Tidy ifdefs. - (__EH_FRAME_BEGIN__): Always static for ELF. - (__do_global_ctors_1): Rename from __frame_dummy. - * config/mips/iris6.h (LINK_SPEC): Update for __do_global_ctors_1 - name change; don't hide __EH_FRAME_BEGIN__. - -2001-08-21 Richard Henderson - - * gdbinit.in: Move break on exit after break on fancy_abort. - - * config/ia64/ia64.c (ia64_return_in_memory): True for variable - sized types. - -2001-08-21 Neil Booth - - * cpphash.h (_cpp_push_next_buffer): New. - * cppinit.c (do_includes): Remove. - (push_include, free_chain, _cpp_push_next_buffer): New. - (cpp_start_read): Use them to rework command line option handling. - (cpp_handle_option): Combine handling of -include and -imacros. - * cpplex.c (_cpp_lex_token): Push a new -include buffer if - appropriate. Always insert missing \n at EOF. - * cpplib.c (start_directive): Get the directive position right. - * cppmain.c (cb_file_change): Always print the first line, unless - preprocessed. - -2001-08-20 Andreas Jaeger - - * profile.c (compute_branch_probabilities): Remove extra new-line - in error message. - * flow.c (verify_flow_info): Likewise. - -2001-08-20 Diego Novillo - - * basic-block.h (basic_block): Add new field 'flags'. - (BB_REACHABLE): Define. - (expunge_block): Declare. - * flow.c (ENTRY_BLOCK_PTR): Initialize field 'flags'. - (EXIT_BLOCK_PTR): Ditto. - (expunge_block): Remove static declaration. - (cleanup_cfg): Clear bb->aux on every basic block. - (find_unreachable_blocks): Set BB_REACHABLE bit in bb->flags when - computing reachability. - (delete_unreachable_blocks): Delete block b if b->flags has - BB_REACHABLE unset. - -2001-08-20 Diego Novillo - - * doc/invoke.texi: Replace references to -fdump-tree with -fdump-ast. - -2001-08-20 Kaveh R. Ghazi - - * sparc.c (sparc_variable_issue): Fix typo in last change. - -2001-08-20 Richard Henderson - - * varasm.c (assemble_integer): Document ppc-eabi -mrelocatable losage. - -2001-08-20 John David Anglin - - * pa.h (RETURN_IN_MEMORY): Improve comment. - -2001-08-20 Janis Johnson - - * doc/invoke.texi (Profiling options): Clarify the interactions - between -fprofile-arcs and -ftest-coverage, -fprofile-arcs. - -2001-08-20 Jeffrey Oldham - - * crtstuff.c (__do_global_ctors): Fix typo in preprocessing - command. - -2001-08-20 Matt Kraai - - * gcc.c (make_relative_prefix): Allocate a sufficiently large - buffer. - -2001-08-20 Richard Henderson - - * final.c (end_final): Fix typo last change. - -2001-08-20 Neil Booth - - * cppinit.c (init_standard_includes): The returned buffer - is already malloc-ed. - * gcc.c (add_prefix): Similarly. - * prefix.c (translate_name): Update to support clear buffer - ownership rules. - (update_path): Similarly. Be sure to free any newly allocated - key. UPDATE_PATH_HOST_CANONICALIZE takes only one argument. - (tr): New function. - * prefix.h (update_path): Update prototype and document. - * config/i386/xm-djgpp.h (UPDATE_PATH_HOST_CANONICALIZE): Clean - up and update to new buffer ownership rules. - * doc/gcc.texi (UPDATE_PATH_HOST_CANONICALIZE): Update. - -Mon Aug 20 01:44:50 CEST 2001 Jan Hubicka - - * final.c (compute_alignments): New function. - (init_insn_lengths): Do not care label_align. - (LABEL_ALIGN_AFTER_BARRIER): Default to 1. - (LABEL_ALIGN_AFTER_BARRIER_MAX_SKIP): Default to 0. - (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): New. - (shorted_branches): Realloc label_align array; do - not call init_insn_lengths; Do not care about loop alignments. - * output.h (compute_alignments): Declare. - * toplev.c (rest_of_compilation): Call compute_alignments. - * tm.texi (JUMP_ALIGN, JUMP_ALIGN_MAX_SKIP): Document. - - * predict.c (block_info_def): Add npredecesors, remove nvisited; - change visited to tovisit. - (propagate_freq): Use faster traversing algorithm. - (estimate_loops_at_level, estimate_bb_frequencies): Change visited - to tovisit; reverse meaning. - - * predict.c (struct block_info_def): Remove nvisited. - (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions. - (estimate_bb_frequencies): Call mark_dfs_back_edges. - -2001-08-19 Geoffrey Keating - - * doc/invoke.texi (MIPS Options): Document -mfused-madd. - * config/mips/mips.h (MASK_NO_FUSED_MADD): New. - (TARGET_FUSED_MADD): New. - (TARGET_SWITCHES): Add -mfused-madd, -mno-fused-madd. - * config/mips/mips.md: Add TARGET_FUSED_MADD as condition to - the multiply-add instructions. - -2001-08-19 Richard Henderson - - * dwarf2asm.c (dw2_output_indirect_constant_1): The symbol ref - is aligned to pointer size. - -2001-08-19 Richard Henderson - - * config/ia64/ia64.c (ia64_cycle_display): Only emit cycle - display markers during final schedule. - -2001-08-19 Richard Henderson - - * function.c (gen_mem_addressof): Don't call get_alias_set if no decl. - -2001-08-19 Richard Henderson - - * config/ia64/ia64.h (STRIP_NAME_ENCODING): Handle @ and * - in the same string. - (ASM_NAME_TO_STRING): Remove. - * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Handle @ and * - in the same string. Remove support for expressions. - -2001-08-19 Richard Henderson - - * config/i386/i386.md (tablejump): Make an expander; handle - pic relative addressing here. - (tablejump_1): Rename from tablejump_pic. - (casesi): Remove. - -2001-08-19 Richard Henderson - - * regclass.c (fix_register): Fix typo. - -2001-08-18 Richard Henderson - - * config/ia64/unwind-ia64.c (UNW_REG_B0): New. - (struct _Unwind_Context): Expand br_loc to hold it. - (uw_frame_state_for): Handle leaf functions better. - (uw_update_reg_address): Update for br_loc change. - -2001-08-18 Richard Henderson - - * crtstuff.c: Move list heads before code that uses them. - (__JCR_LIST__): Remove initial null. - (frame_dummy, __frame_dummy): Do java registration here ... - (__do_global_ctors_aux): ... not here. - - * config/ia64/crtbegin.asm (dtor_ptr): Make gp-relative. - (__do_global_dtors_aux): Update to match. - (__JCR_LIST__, __do_jv_register_classes): New. - (.init): Call it. - * config/ia64/crtend.asm (__JCR_END__): New. - (__do_global_ctors_aux): Use a GPREL64I reloc to __CTOR_END__ - instead of an indirect LTOFF22 reloc. - -2001-08-18 Richard Henderson - - * flow.c (mark_regs_live_at_end): Use regs_invalidated_by_call. - * regclass.c (init_reg_sets_1): Fix typo. - * config/ia64/ia64.c (ar_pfs_reg_operand): New. - (ia64_expand_call): Pass ar.pfs to sibcall expanders. - (ia64_compute_frame_size): Make ar.unat live when in use. - (ia64_epilogue_uses): Reformat; do not check current_function_is_leaf - for ar.pfs; remove ar.unat handling. - * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): ar.unat is - call-saved. - (PREDICATE_CODES): Add ar_pfs_reg_operand. - * config/ia64/ia64-protos.h: Update decls. - * config/ia64/ia64.md (sibcall_nopic): Use ar.pfs. - (sibcall_pic): Likewise. - -2001-08-18 Richard Henderson - - * config/ia64/ia64.c (ia64_sched_reorder2): Also skip past - pred_rel_mutex when searching for insn_group_barrier. - * config/ia64/ia64.md (cycle_display): Combine the expander - and insn patterns. - - * config/ia64/ia64.c (ia64_internal_sched_reorder): Emit stop - bit before asm as needed. - -2001-08-18 Richard Henderson - - * timevar.def (TV_MACH_DEP): New. - * toplev.c (rest_of_compilation): Use it. - * config/ia64/ia64.c (ia64_reorg): Push to TV_SCHED2. - -2001-08-18 Zack Weinberg - - * unwind-dw2.c (execute_stack_op): Add default aborts to - the inner switches to prevent warnings. - -2001-08-18 Richard Henderson - - * timevar.h (struct timevar_time_def): Change element type to float. - (ticks_to_msec, clocks_to_msec): Likewise. - (TICKS_TO_MSEC, CLOCKS_TO_MSEC): Rescale to seconds; use type float. - (get_time): Likewise. - (timevar_print): Adjust zero check and printing to match. - -2001-08-18 Zack Weinberg - - * doc/extend.texi, doc/gcc.texi, doc/install-old.texi, - doc/invoke.texi, doc/md.texi, doc/rtl.texi, doc/include/gpl.texi: - Eliminate overfull or underfull hboxes. - -2001-08-18 Zack Weinberg - - * cpperror.c: Use VA_OPEN/VA_CLOSE/VA_FIXEDARG throughout. - -2001-08-18 Zack Weinberg - - * haifa-sched.c: Convert to target hooks. Macros replaced - are ISSUE_RATE, ADJUST_COST, ADJUST_PRIORITY, MD_SCHED_INIT, - MD_SCHED_REORDER, MD_SCHED_REORDER2, MD_SCHED_VARIABLE_ISSUE, - MD_SCHED_FINISH, and HAVE_cycle_display. - * target-def.h (TARGET_SCHED_ADJUST_COST, - TARGET_SCHED_ADJUST_PRIORITY, TARGET_SCHED_ISSUE_RATE, - TARGET_SCHED_VARIABLE_ISSUE, TARGET_SCHED_INIT, - TARGET_SCHED_FINISH, TARGET_SCHED_REORDER, - TARGET_SCHED_REORDER2, TARGET_SCHED_CYCLE_DISPLAY): - New hook #defines to be overridden. - (TARGET_SCHED): Bring them all together. - (TARGET_INITIALIZER): Update. - * target.h: Don't forward declare struct rtx_def. Use 'rtx' - instead of 'struct rtx_def *' throughout. - (struct sched): New set of hooks for the scheduler. - * Makefile.in (haifa-sched.o): Depend on target.h. - * doc/tm.texi: Document the new scheduler hooks, together in - their own section, instead of scattered around. - Fix a bunch of underfull/overfull hboxes. - - * a29k.h, alpha.h, arm.h, c4x.h, convex.h, d30v.h, i386.h, - ia64.h, m32r.h, m88k.h, mips.h, pa.h, rs6000.h, s390.h, sh.h, - sparc.h: Don't define any of the old scheduler macros. - - * a29k.c, alpha.c, arm.c, c4x.c, convex.c, d30v.c, i386.c, - ia64.c, m32r.c, m88k.c, mips.c, pa.c, rs6000.c, s390.c, sh.c, - sparc.c: Create hook functions from code extracted from - corresponding target header, or make existing hooks static, as - appropriate. Set the appropriate entries in targetm. - - * alpha-protos.h, arm-protos.h, c4x-protos.h, d30v-protos.h, - i386-protos.h, ia64-protos.h, m32r-protos.h, pa-protos.h, - rs6000-protos.h, s390-protos.h, sparc-protos.h: - Remove prototypes for functions which are now static. - - * d30v.h, d30v.c, m32r.h, m32r.c: Remove #ifdef HAIFA and - related gunk; the Haifa scheduler is now the only choice. - -2001-08-18 Zack Weinberg - - * optabs.h (OTI_flodiv, flodiv_optab): Kill. - * genopinit.c: Put floating point divide insns in sdiv_optab. - * expr.c (expand_expr): Use sdiv_optab, not flodiv_optab. - * config/gofast.h, config/c4x/c4x.h, - config/ia64/hpux_longdouble.h, config/mips/mips.h, - config/pa/long_double.h, config/rs6000/sysv4.h, - config/sparc/sparc.h: Put floating point divide libcalls in sdiv_optab. - * optabs.c (init_optab): Break into new_optab, init_optab, init_optabv. - (init_optabs): Use init_optabv for overflow-trapping optabs. - Don't init flodiv_optab. Give mov_optab, movstrict_optab, and - cmp_optab RTX codes so have_insn_for can find them. - - * optabs.c (expand_simple_binop, expand_simple_unop, - have_insn_for, gen_sub3_insn): New interfaces. - * expr.h: Prototype new functions. - (enum optab_methods): Move here from optabs.h. - - * builtins.c, combine.c, doloop.c, function.c, ifcvt.c, - loop.c, profile.c, simplify-rtx.c, stmt.c, unroll.c: - Use new functions instead of working directly with optabs. - * doloop.c, ifcvt.c, loop.c, profile.c, simplify-rtx.c, - unroll.c: Don't include optabs.h. - * caller-save.c, combine.c, function.c, stmt.c: Just include - insn-codes.h, not optabs.h. - * Makefile.in: Update dependencies. - - * combine.c (make_compound_operation, simplify_comparison): - Fix typos testing for this or that instruction. - -2001-08-18 Herman A.J. ten Brugge - - * mklibgcc.in: Prefer LIB1ASMFUNCS over LIB2_DIVMOD_FUNCS when - generating libgcc.a. - -2001-08-18 Kaveh R. Ghazi - - * except.c (TYPE_HASH): Delete. - - * objc/objc-act.c (HASHFUNCTION): Cast to size_t, not - HOST_WIDE_INT. - - * tree.c (TYPE_HASH): Delete. - - * tree.h (TYPE_HASH): Define. - -2001-08-18 Graham Stott - - * config/mips/mips.md (adddi3_internal_2+1): Remove constraints from - define_split. - (adddi3_internal_2+2): Likewise. - (eh_set_lr_di+1): Likewise. - -2001-08-17 Richard Henderson - - * defaults.h (UNALIGNED_SHORT_ASM_OP, UNALIGNED_INT_ASM_OP, - UNALIGNED_DOUBLE_INT_ASM_OP, ASM_BYTE_OP): Move from ... - * dwarf2asm.c: ... here. - * dwarfout.c: Remove them. - - * varasm.c (assemble_integer): Add align parameter. - (assemble_real, output_constant, output_constructor): Likewise. - * output.h: Update decls. - * dwarf2asm.c, final.c, varasm.c, config/darwin.c, config/nextstep.c, - config/alpha/alpha.c, config/arm/arm.md, config/clipper/clipper.c, - config/m88k/m88k.c, config/mcore/mcore.md, config/mips/mips.h, - config/mips/mips.md, config/pa/pa.c, config/rs6000/rs6000.c, - config/rs6000/rs6000.h, config/s390/s390.h, config/sh/sh.md: - Update all callers. - - * final.c (end_final): Abort profile block generation if we - haven't layed it out properly. - * output.h (assemble_eh_integer): Remove stale decl. - * varasm.c (assemble_zeros): Tidy; use assemble_integer. - (min_align): New. - (assemble_integer): Handle unaligned data. - (assemble_real): Abort on unaligned data. - (output_constructor): Don't assume ASM_OUTPUT_ALIGN 0 does - anything useful. - (default_dtor_section_asm_out_destructor): Use assemble_align. - (default_named_section_asm_out_constructor): Likewise. - (default_ctor_section_asm_out_constructor): Likewise. - * config/darwin.c (machopic_asm_out_constructor): Likewise. - (machopic_asm_out_destructor): Likewise. - * config/nextstep.c (nextstep_asm_out_constructor): Likewise. - (nextstep_asm_out_destructor): Likewise. - * config/alpha/alpha.c (vms_asm_out_constructor): Likewise. - (vms_asm_out_destructor): Likewise. - -2001-08-17 Richard Henderson - - * config/mips/iris6.h (TARGET_IRIX6): New. - (current_section_name, current_section_flags): New. - (ASM_OUTPUT_ALIGN, ASM_FILE_START, ASM_FILE_END): New. - (MAX_OFILE_ALIGNMENT): New. - (ASM_OUTPUT_ALIGNED_LOCAL): Use bss_section. - * config/mips/mips.c (mips_make_temp_file, temp_filename): Remove. - (copy_file_data): Split out from - (mips_asm_file_end): ... here. - (mips_asm_file_start): Remove extra .section directive. Use - tmpfile instead of mips_make_temp_file. - (mips_unique_section): Use const char * as needed for warnings. - (iris6_asm_named_section_1): Renamed from iris6_asm_named_section; - re-add align parameter. - (iris6_asm_named_section): New. - (iris_section_align_entry_eq, iris_section_align_entry_hash): New. - (iris6_asm_output_align, iris6_section_align_1): New. - (iris6_asm_file_start, iris6_asm_file_end): New. - * config/mips/mips-protos.h: Update decls. - -2001-08-17 Janis Johnson - - * doc/install.texi (Install GCC): Add links to build status pages. - (Specific): Ditto. - (Final install): Ditto; request updates for specific info - -2001-08-17 Neil Booth - - * cpperror.c (print_location): Don't take a file name; use the - line map instead. - (_cpp_begin_message): Similarly. - (cpp_ice, cpp_fatal, cpp_error, cpp_error_with_line, cpp_warning, - cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line): Update. - (cpp_pedwarn_with_file_and_line): Remove. - * cppfiles.c (stack_include_file): Update; set filename to stdin - here when appropriate. - * cpphash.h (struct cpp_buffer): Remove nominal_fname. - (_cpp_begin_message): Don't take a file name. - * cppinit.c: Add comment. - * cpplex.c: Fix end-of-directive indicator. - * cpplib.c: Don't include intl.h. - (run_directive, do_diagnostic): Update. - (do_line): Update to not use nominal_fname. - (cpp_push_buffer): Don't take a filename. - * cpplib.h (struct ht): Remove. - (cpp_push_buffer): Don't take a filename. - (cpp_pedwarn_with_file_and_line): Remove. - * cppmacro.c (struct cpp_macro): Remove file. - (builtin_macro): Update. - (_cpp_create_definition): Update. - * cppmain.c: Correct comment. - * fix-header.c (read_scan_file): Update. - -2001-08-17 Kazu Hirata - - * sbitmap.c: Fix comment formatting. - * sched-deps.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * ssa.c: Likewise. - * ssa-ccp.c: Likewise. - * stor-layout.c: Likewise. - * timevar.c: Likewise. - * toplev.c: Likewise. - * unwind-dw2.c: Likewise. - * unwind-dw2-fde.c: Likewise. - * varasm.c: Likewise. - -2001-08-17 John David Anglin - - * pa.h (RETURN_IN_MEMORY): Return types with a size that is varable - or larger than an integer in memory. - -2001-08-17 Zack Weinberg - - * system.h: Forward-declare struct rtx_def, struct rtvec_def, - and union tree_node. Typedef rtx, rtvec, and tree. Fix comment. - * rtl.h: Don't forward-declare union tree_node here. Don't - typedef rtx or rtvec here. Change all uses of struct rtx_def *, - struct rtvec_def *, or union tree_node * to use rtx, rtvec, - and tree respectively. - * tree.h: Don't forward-declare struct rtx_def here. Don't - typedef tree here. Change all uses of struct rtx_def *, - struct rtvec_def *, or union tree_node * to use rtx, rtvec, - and tree respectively. - -2001-08-17 Richard Henderson - - * config/mips/elf.h, config/mips/elf64.h, config/mips/netbsd.h, - config/mips/openbsd.h: Fix typos last change. - -2001-08-17 Gerald Pfeifer - - * doc/invoke.texi (Optimize Options): The default for - -finline-limit is 600. - -2001-08-17 Richard Henderson - - * varasm.c (text_section): Allow TEXT_SECTION to override the - printing of TEXT_SECTION_ASM_OP. - * dwarf2out.c (TEXT_SECTION_NAME): Rename from TEXT_SECTION. - (DATA_SECTION, BSS_SECTION): Remove. - * dwarfout.c (TEXT_SECTION_NAME, DATA_SECTION_NAME, DATA1_SECTION_NAME, - RODATA_SECTION_NAME, RODATA1_SECTION_NAME, BSS_SECTION_NAME): - Rename from s/_NAME//. - * config/mips/mips.h (TARGET_FILE_SWITCHING): Add !TARGET_MIPS16. - (ASM_DECLARE_FUNCTION_NAME): Move file switching ... - (TEXT_SECTION): ... here. New. - * config/mips/elf.h (TEXT_SECTION): New; no file switching. - * config/mips/elf64.h, config/mips/netbsd.h: Likewise. - * config/mips/openbsd.h: Likewise. - * config/mips/mips.c (mips_asm_file_start): Tidy file switching test. - (mips_asm_file_end): Likewise test. - (mips_output_function_epilogue): Likewise. Switch back to data - section after emitting the function. - - * doc/tm.texi (Sections): Document TEXT_SECTION. - -2001-08-17 Richard Henderson - - * dwarf2out.c (dwarf2out_init): Don't emit .debug_loc label here. - (dwarf2out_finish): Do it here. Emit .debug_loc before .debug_info. - -2001-08-17 Richard Henderson - - * varasm.c (assemble_variable): Don't overalign if DECL_USER_ALIGN. - * crtstuff.c (__CTOR_LIST__, __DTOR_LIST__, __EH_FRAME_BEGIN__, - __JCR_LIST__, __CTOR_END__, __DTOR_END__, __FRAME_END__,__JCR_END__): - Add aligned attribute. - -2001-08-17 Andrew Haley - - * config/sh/sh.md: Add modes to unspecs in first insn to match - those in the second. - - * Makefile.in: Fix collect2 copy for Cygwin. - -Fri Aug 17 15:48:57 CEST 2001 Jan Hubicka - - Install the proper patch. - * function.c (put_var_into_stack): Temporarily clear DECL_RTL. - (assign_params): Avoid setting DECL_RTL to unfinished RTX. - (expand_function_start): Likewise. - * stmt.c (expand_decl): Likewise. - * varasm.c (make_decl_rtx): Likewise. - -Fri Aug 17 15:41:35 CEST 2001 Jan Hubicka - - * final.c: Undo my previous accidental checkin. - * output.h: Likewise. - * tm.texi: Likewise. - -2001-08-16 Richard Henderson - - * varasm.c (named_section_flags): Remove align parameter. - * varasm.c, dwarf2out.c: Update all callers. - * output.h: Update prototypes. - - * target.h (target.asm_out.named_section): Remove align parameter. - * varasm.c, config/a29k/a29k.c, config/alpha/alpha.c, - config/arm/arm.c, config/c4x/c4x.c, config/h8300/h8300.c, - config/i386/i386.c, config/i386/winnt.c, config/m68k/m68k.c, - config/mcore/mcore.c, config/mips/mips.c, config/rs6000/rs6000.c, - config/sh/sh.c, config/sparc/sparc.c: Update implementations to match. - - * varasm.c (in_named_entry_eq, in_named_entry_hash): New. - (get_named_section_flags, set_named_section_flags): New. - (named_section_flags): Use them. - (named_section): Do decl vs section flags check here... - (default_section_type_flags): ... not here. - (init_varasm_once): Create in_named_htab. - (resolve_unique_section): Mark reloc unused. - -2001-08-16 Richard Henderson - - * varasm.c (force_const_mem): Keep pool alignment in bits. - (output_constant_pool): Use assemble_align. - -2001-08-16 Zack Weinberg - - * doc/tm.texi: Remove extra @table command. - -2001-08-16 Zack Weinberg - - * final.c (shorten_branches): Clear the end of the label_align - array only if we made it larger. Break up messy expressions - for clarity. - - * diagnostic.c (internal_error): Check for error recursion - before doing ICE suppression. - - * timevar.c: Timing variables now count in milliseconds. - (init_timevar): Set up ticks_to_msec and clocks_to_msec here. - (get_time): Not here. - (timevar_print): Don't print any timer whose user, cpu, and - wall times are all zero as displayed. - * timevar.h: Update comment aboout units. Make timevar - counters unsigned. - -Thu Aug 16 17:39:45 CEST 2001 Jan Hubicka - - * function.c (put_var_into_stack): Temporarily clear DECL_RTL. - (assign_params): Avoid setting DECL_RTL to unfinished RTX. - (expand_function_start): Likewise. - * stmt.c (expand_decl): Likewise. - * varasm.c (make_decl_rtx): Likewise. - -2001-08-16 Jason Merrill - - * stor-layout.c (layout_decl): Don't set DECL_USER_ALIGN. - (finalize_record_size): Don't set TYPE_USER_ALIGN. - -2001-08-16 Matt Kraai - - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Remove unused - variables. - -2001-08-16 Andreas Jaeger - - * config/s390/s390.c: Include "debug.h" for dwarf2out_do_frame - prototype. - -Wed Aug 15 15:22:52 EDT 2001 John Wehle (john@feith.com) - - * rtl.h (only_sets_cc0_p): New prototype. - * jump.c (sets_cc0_p): Handle INSN. - (only_sets_cc0_p): New function. - * flow.c (merge_blocks_nomove): Use only_sets_cc0_p. - (tidy_fallthru_edge): Likewise. - * integrate.c (copy_insn_list): Likewise. - * unroll.c (unroll_loop): Likewise. - (copy_loop_body): Likewise. - -2001-08-15 Jason Eckhardt - - * config/i960/i960.md (trap): Change "faulteq.t" to "faulte.t". - -Wed Aug 15 14:24:22 CEST 2001 Jan Hubicka - - * predict.c (struct block_info_def): Remove nvisited. - (propagate_freq): Use EDGE_DFS_BACK to detect irreducible regions. - (estimate_bb_frequencies): Call mark_dfs_back_edges. - - * i386.c (ix86_agi_dependant): Lea causes AGI only on the Pentium - (ix86_adjust_cost): Teach scheduler that latency to load operand can - be masked. - -Wed Aug 15 12:41:32 CEST 2001 Jan Hubicka - - * predict.def: Update hitrates. - -2001-08-15 Richard Henderson - - * except.c (TYPE_HASH): Cast to size_t, not HOST_WIDE_INT. - -Tue Aug 14 17:30:59 2001 Jeffrey A Law (law@cygnus.com) - - * flow.c (commit_one_edge_insertion): Don't separate a LOOP_BEG - note from its associated jump. - -2001-08-14 Ulrich Weigand - - * config/s390/linux64.h (CPP_PREDEFINES): Define __s390__ - also on 64-bit s390x targets. - -2001-08-14 Nick Clifton - - * config/arm/arm.c (arm_compute_initial_elimination_offset): New - function. - (arm_expand_prologue): Handled nested functions which take a - variable argument list. - * config/arm/arm.h (ARM_INITIAL_ELIMINATION_OFFSET): Replace - macro with an invocation of - arm_compute_initial_elimination_offset. - * config/arm/arm-protos.h: Prototype - arm_compute_initial_elimination_offset. - -2001-08-14 Gerald Pfeifer - - * doc/install.texi (Specific, avr): Fix markup. - (Specific, c4x): Ditto. - -2001-08-14 Matt Kraai - - * predict.c (dump_prediction): Change `bool' parameter to `int'. - -2001-08-14 Gabriel Dos Reis - - * Makefile.in (OBJS): Add rtl-error.o - (rtl-error.o): New rule. - (diagnostic.o): Adjust dependency. - diagnostic.c (file_and_line_for_asm, diagnostic_for_asm, - error_for_asm, _fatal_insn, _fatal_insn_not_found, - warning_for_asm): Move to... - rtl-error.c: ...here. New file. - -2001-08-14 Richard Henderson - - * dwarf2out.c (dwarf2out_frame_finish): Never emit .eh_frame - if USING_SJLJ_EXCEPTIONS. - -2001-08-14 Steve Ellcey - - * tlink.c (scan_linker_output): Check string for unsatisfied in - addition to undefined and unresolved. - -2001-08-14 Graham Stott - - * libgcc2.c (*): Replace EH_FRAME_SECTION with - EH_FRAME_SECTION_NAME. - -Tue Aug 14 14:57:07 CEST 2001 Jan Hubicka - - * genattrtab.c (simplify_test_exp_in_temp): New function. - (simplify_test_exp): Avoid explicit use of temporary obstack. - (simplify_cond, insert_right_side, evaluate_eq_attr, - simplify_and_tree, simplify_or_tree, eliminate_known_true): - Use simplify_test_exp_in_temp. - (optimize_attrs): Iterate until expression stabilizes. - -2001-08-13 Ulrich Weigand : - - * glimits.h: Remove the __LONG_MAX__ special case for s390x. - * config/s390/linux64.h: Define __LONG_MAX__ in CPP_PREDEFINES. - -2001-08-13 Richard Henderson - - * config/arm/unknown-elf.h (CTOR_LIST_BEGIN, CTOR_LIST_END): Remove. - (DTOR_LIST_BEGIN, DTOR_LIST_END): Remove. - * config/arm/conix-elf.h: Likewise. - -2001-08-13 Geoffrey Keating - - * config/svr4.h (LINK_SPEC): Don't do -Wl, here, it is done - in gcc.c. - * config/rs6000/sysv4.h (LINK_SPEC): Likewise. - - * gcse.c (hash_scan_set): Expressions that are set as part of - jump instructions are not available. - -2001-08-13 Ulrich Weigand - - * config/s390/s390.c (print_operand, s390_function_prologue, - s390_va_start): Fixed HOST_WIDE_INT type mismatch. - -2001-08-13 Richard Henderson - - * config/rs6000/xcoff.h (EH_FRAME_IN_DATA_SECTION): New. - * defaults.h (EH_FRAME_SECTION_NAME): Respect it. - * doc/tm.texi (Exception Region Output): Document it. - -2001-08-13 Geoffrey Keating - - * config/rs6000/sysv4.h (PREFERRED_DEBUGGING_TYPE): Use - DWARF2 instead of stabs by default. - -2001-08-13 David Edelsohn - - * config/rs6000/rs6000.c: Include optabs.h. - -2001-08-13 David Edelsohn - - * config/rs6000/eabi.asm: Define 64-bit versions of FPR - save/restore routines. - * ginclude/ppc-asm.h: Define 64-bit FUNC_* macros. - -2001-08-13 Andreas Jaeger - - * gcc.c (init_spec): Revert last patch by Theodore Papadopoulo, - the english is correct. - -2001-08-13 Zack Weinberg - - * expr.h: Split out optab- and libfunc-related code to... - * optabs.h, libfuncs.h: ... these new headers. - - * Makefile.in (CONFIG_H, EXPR_H): Take out insn-codes.h. - (OPTABS_H): New. - (various .o rules): Add $(OPTABS_H) and/or libfuncs.h to - dependencies. - * mkconfig.sh: Don't include insn-codes.h from config.h. - - * reload.h: Use #ifdef GCC_INSN_CODES_H to decide whether - enum insn_code is available. Move reload_in_optab and - reload_out_optab array declarations to optabs.h. - * regmove.c (gen_add3_insn): Move to optabs.c, export from - there, prototype in expr.h. - * gencodes.c: Cleanup: zap global variables, don't use - printf where puts will do, don't bother defining MAX_INSN_CODE - which nothing uses, let CODE_FOR_nothing get its value implicitly. - - * genemit.c, genopinit.c: Include optabs.h in generated file. - * genoutput.c: Include insn-codes.h in generated file. - * builtins.c, caller-save.c, combine.c, doloop.c, explow.c, - expmed.c, expr.c, function.c, ifcvt.c, loop.c, optabs.c, profile.c, - reload1.c, simplify-rtx.c, stmt.c, unroll.c, config/alpha/alpha.c, - config/arm/arm.c, config/c4x/c4x.c, config/clipper/clipper.c, - config/i386/i386.c, config/ia64/ia64.c, config/mn10300/mn10300.c, - config/pj/pj.c, config/sh/sh.c, config/sparc/sparc.c: - Include optabs.h. - * builtins.c, calls.c, dwarf2out.c, except.c, expr.c, function.c, - optabs.c, stmt.c, config/c4x/c4x.c, config/clipper/clipper.c, - config/m88k/m88k.c, config/sparc/sparc.c: - Include libfuncs.h. - * reload.c: Include expr.h and optabs.h before reload.h. - * config/alpha/alpha.c: Include tree.h before reload.h. - * config/pa/pa.c: Include expr.h, optabs.h, libfuncs.h, - and reload.h in that order. - * config/sparc/sparc.c: Include debug.h. - * recog.c: Include insn-codes.h. - -2001-08-13 Andreas Jaeger - - * config.gcc: Use t-slibgcc-elf to build shared libgcc_s on - s390*linux. - -2000-08-13 Theodore Papadopoulo - - * dwarf2out.c (output_cfa_loc): Fix typo in comment. - * gcc.c (init_spec): Fix typo in comment. - * varasm.c (data_section): Fix typo in comment. - -Mon Aug 13 02:27:39 CEST 2001 Jan Hubicka - - * predict.c (dump_prediction): New argument "USED". - (combine_predictions_for_insn): Determine the used heuristics, - output the case no heuristic applied. - * predict.def (PRED_DS_THEORY, PRED_NO_HEURISTIC): New. - -2001-08-13 Andreas Jaeger - - * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Don't capitalize - register %rip. - -2001-08-13 Kazu Hirata - - * jump.c: Fix formatting. - -2001-08-13 Kazu Hirata - - * config/h8300/h8300.md (zero_extendqihi2): Correct the insn - length. - -2001-08-12 Geoffrey Keating - - * loop.c (check_dbra_loop): Use condjump_label to compute - jump_label. - - * rtl.h: Move prototypes of rtx_alloc and rtvec_alloc around - to better document the files they're in. - -2001-08-12 Zack Weinberg - - * recog.h (struct insn_operand_data): Shrink 'mode' field - to 16 bits. - -2001-08-12 Kazu Hirata - - * gcc.c: Fix comment formatting. - * gccspec.c: Likewise. - * gcov.c: Likewise. - * gcse.c: Likewise. - * genemit.c: Likewise. - * gengenrtl.c: Likewise. - * genrecog.c: Likewise. - * gensupport.c: Likewise. - * ggc-page.c: Likewise. - * global.c: Likewise. - * graph.c: Likewise. - * ifcvt.c: Likewise. - * integrate.c: Likewise. - * lcm.c: Likewise. - * libgcc2.c: Likewise. - * loop.c: Likewise. - * mbchar.c: Likewise. - * optabs.c: Likewise. - * predict.c: Likewise. - * prefix.c: Likewise. - * profile.c: Likewise. - * protoize.c: Likewise. - * real.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * resource.c: Likewise. - * rtlanal.c: Likewise. - * rtl.c: Likewise. - -2001-08-12 Kazu Hirata - - * doc/tm.texi (ENCODE_SECTION_INFO): Add documentation on how - a tree representing a constant is passed to the macro. - -2001-08-12 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_elf_asm_out_constructor): New. - (rs6000_elf_asm_out_destructor): New. - * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): Remove. - (DTORS_SECTION_ASM_OP): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - (ASM_OUTPUT_INT): Don't hack TARGET_RELOCATABLE for constructors. - -2001-08-12 David Edelsohn - - Revert: - 2001-08-02 Rainer Orth - * gcc.c (set_collect_gcc_options): New function, split out from - main. - Ignore elided switches. - (do_spec_1): Invoke before executing command. - (set_input): Export. - Move declaration ... - * gcc.h (set_input): ... here. - * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input - file. - -2001-08-12 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): Fix - thinko wrt TARGET_RELOCATABLE. - -2001-08-12 Neil Booth - - * fix-header.c (cb_file_change): Update prototype. - -2001-08-11 Zack Weinberg - - * toplev.c (set_float_handler): Make static. - * toplev.h: Don't prototype set_float_handler. - - * simplify-rtx.c: Don't include setjmp.h. - (simplify_unary_real, simplify_binary_real, simplify_binary_is2orm1): - New functions. - (simplify_unary_operation, simplify_binary_operation): Use them, - via do_float_handler. - - * fold-const.c: Don't include setjmp.h. - (exact_real_inverse_1): New function. - (exact_real_inverse): Use it, via do_float_handler. - - * varasm.c: Don't include setjmp.h. - (assemble_real_1): New function. - (assemble_real): Use it, via do_float_handler. - Call internal_error if we get a trap here. - - * c-parse.in, cse.c, cselib.c, config/i386/i386.c, - config/pj/pj.c, config/s390/s390.c: Don't include setjmp.h. - -2001-08-11 Zack Weinberg - - * defaults.h: Define PREFERRED_STACK_BOUNDARY to - STACK_BOUNDARY if not already defined. - - * calls.c, function.c, reload1.c, explow.c: Don't default - PREFERRED_STACK_BOUNDARY. Remove all #if/#ifdef on - PREFERRRED_STACK_BOUNDARY and/or STACK_BOUNDARY. - - * explow.c (allocate_dynamic_stack_space): Change unsafe #if - to run-time test. - - * doc/tm.texi: Document that STACK_BOUNDARY is required; - clarify difference between it and PREFERRED_STACK_BOUNDARY. - -2001-08-11 Neil Booth - - * cppmacro.c (enter_macro_context): Push macro expansions even - if empty. - -2001-08-11 Franz Sirl - - * config/rs6000/rs6000.c: Include integrate.h to silence warning. - (rs6000_elf_section_type_flags): Actually return a value. - -2001-08-11 Ulrich Weigand - - * s390.c, s390.h, s390.md, s390-protos.h, linux.h, t-linux: - Clean up code: add missing comments and prototypes, fix warnings, - remove obsolete code, fix spacing to conform to coding style. - -2001-08-11 Ulrich Weigand - - * config/s390/s390.c (targetm): Define TARGET_ASM_OPEN_PAREN - and TARGET_ASM_CLOSE_PAREN. - (regclass_map): CC register belongs to class NO_REGS. - (legitimize_pic_address): Don't generate unnecessary moves - (to avoid confusing loop optimization). - (check_and_change_labels): Replace jump_long by indirect_jump. - (s390_final_chunkify): Don't start a new literal pool on section - switch in 64-bit code. - (s390_va_start, s390_va_arg): Fixed incorrect sizes for 64-bit. - - * config/s390/s390.h (TARGET_SWITCHES): Renamed debug_arg to debug. - (MAX_BITS_PER_WORD, MAX_LONG_TYPE_SIZE): Set to 64 (for 64-bit). - (HARD_REGNO_MODE_OK, RETURN_IN_MEMORY): Support complex integer - modes correctly. - (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Remove CC_REGS. - (EH_RETURN_HANDLER_RTX): Fixed incorrect offset for 64-bit. - (CONST_COSTS): Fixed incorrect costs. - - * config/s390/s390.md (fixuns_trunc[sd]f[sd]i2, udivsi3, umodsi3): - Use emit_jump instead of emit_jump_insn (gen_jump). - (divsi3, modsi3): Clobber low word of divmoddisi3 before shifting - (to avoid confusing flow analysis). - (tablejump, tablejump1, tablejump2): Removed. Replaced by casesi. - (casesi, casesi_jump): New. - (jump_long): Removed. Functionality merged into indirect_jump. - (indirect_jump): Accept address_operand, not just register_operand. - (cjump_long, icjump_long): Use same logic as indirect_jump. - (builtin_setjmp_setup, builtin_setjmp_receiver, builtin_longjmp): - Fixed broken setjmp/longjmp handling. - (do_builtin_setjmp_setup): Removed. - - * config/s390/linux.h (ASM_OUTPUT_DOUBLE_INT): Work around - broken GNU as versions that don't accept .quad with large - negative values. Use hexadecimal output instead. - (ASM_OUTPUT_ADDR_DIFF_ELT): Adapt to new casesi insn. - (ASM_OPEN_PAREN, ASM_CLOSE_PAREN, FUNCTION_PROLOGUE, - FUNCTION_EPILOGUE): Removed. Now in targetm. - - * config/s390/linux64.h (CALL_USED_REGISTERS): Add CC register. - - * config/s390/fixdfdi.h: Add missing copyright statement. - Fix type conflicts on 64-bit. Add missing SFmode routines. - - * s390.c, s390.h, s390.md, linux.h, linux64.h: Fixed incorrect - email address. - -2001-08-11 Richard Henderson - - * rtl.h (REG_EH_RETHROW): Remove. - * rtl.c (reg_note_name): Update. - * combine.c (distribute_notes): Don't check for it. - -2001-08-11 Richard Henderson - - * combine.c (distribute_notes): Place REG_SETJMP. - -2001-08-11 Richard Henderson - - * doc/extend.texi (Arrays and pointers implementation): Discourage - relying on sign-extension of pointers. - -2001-08-11 H.J. Lu - - * config/mips/linux.h (EXTRA_SECTIONS): Remove in_ctors and - in_dtors. - (EXTRA_SECTION_FUNCTIONS): Remove DTORS_SECTION_ASM_OP and - RDATA_SECTION_ASM_OP. - -2001-08-11 Gerald Pfeifer - - * doc/install.texi (Specific, c4x): Fix cross-reference to the - main manual to work both for info and HTML versions. - -2001-08-11 Neil Booth - Matt Kraai - - * cpphash.c (_cpp_destroy_hashtable): Use ht_destroy. - * cpphash.h (CPP_IN_SYSTEM_HEADER): Fix. - (struct cpp_pool): New member first. - * cppinit.c (append_include_chain): Plug memory leaks. - * cpplib.c (cpp_register_pragma, cpp_register_pragma_space): - Allocate pragma structures from the (aligned) macro pool to - avoid leaking memory. - * cpplex.c (_cpp_init_pool, _cpp_free_pool): Use pool->first - so we don't leak memory. - * hashtable.c (ht_destroy): New. - * hashtable.h (ht_destroy): New. - -2001-08-11 Neil Booth - Franz Sirl - - * c-lex.c (map): Make const. - (cb_file_change): Update for callback passing a line map. - Don't assume we have a previous map. Remove sanity check - about popping too many files. - * cpperror.c (print_location): Make map const. - * cppfiles.c (stack_include_file): Update; line maps now hold sysp. - (cpp_make_system_header): Similarly. - (search_from): Similarly. - (_cpp_execute_include): Don't remember where we came from. - * cpphash.h (struct cpp_buffer): Remove return_to_line, sysp. - (struct cpp_reader): Make map const. - (CPP_IN_SYSTEM_HEADER, _cpp_do_file_change): Update. - * cpplib.c (do_line): Update; line maps now hold sysp. - (cpp_push_buffer): Similarly. - (_cpp_do_file_change): Similarly; callback with map instead. - (cpp_get_line_maps): Constify return value. - (_cpp_pop_buffer): Update. - * cpplib.h (struct cpp_file_change): Remove. - (struct cpp_callbacks): Update. - (cpp_get_line_maps): Constify return value. - * cppmacro.c (_cpp_create_definition): Update. - * cppmain.c (struct printer): Constify map. - (maybe_print_line): Similarly. - (print_line): Similarly. Deduce flags 1 and 2 here. - (cb_file_change): Update. - * line-map.c (free_line_maps): Warn regardless. - (add_line_map): Return pointer to const. When passed NULL to_file - with LC_LEAVE, use the obvious values for the return point so the - caller doesn't have to figure them out. - (lookup_line): Return pointer to const. - (print_containing_files): Take pointer to const. - * line-map.h (struct line_map): New members reason, sysp. - (add_line_map): Return pointer to const. - (lookup_line): Similarly. - (print_containing_files): Take pointer to const. - -2001-08-10 Roman Zippel - Richard Henderson - - * regmove.c (regmove_optimize): Avoid setting a register twice in - a parallel set. - -2001-08-10 Richard Henderson - - * doc/extend.texi (Arrays and pointers implementation): Document - behavior of pointer/integer conversion. - -2001-08-10 Ulrich Weigand - - * glimits.h (__LONG_MAX__): Add s390x as 64-bit architecture. - -2001-08-10 Richard Henderson - - * doc/extend.texi (C Implementation): New chapter. - * doc/gcc.texi (Top): Link it in. - -2001-08-10 Andrew Cagney - - * doc/install.texi (Specific): Fix CVS merge botch. - -2001-08-10 Richard Henderson - - * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): Protect with - ifdef CTOR_LIST_BEGIN instead of INIT_SECTION_ASM_OP. - -2001-08-10 Zack Weinberg - - * calls.c, function.c: Always define PREFERRED_STACK_BOUNDARY - if not already defined. Remove all #ifdefs on STACK_BOUNDARY; - this macro is now required. - - * cselib.c (cselib_process_insn), flow.c (propagate_block), - loop.c (find_and_verify_loops), reload.c (reload): Check - for rtx code of CALL_INSN, not CALL, when deciding if we - need to check for REG_SETJMP note. - - * gcse.c (compute_hash_table, compute_store_table): Update - the #ifdef NON_SAVING_SETJMP code to the new REG_SETJMP - logic. - - * config/avr/avr.c: Fix typo. - * config/convex/convex.c (expand_movstr): Use adjust_address. - * config/dsp16xx/dsp16xx.c: Define dsp16xx_compare_gen - variable. - * config/dsp16xx/dsp16xx.md: Correct calls to replace_equiv_address. - * config/elxsi/elxsi.c: Include tree.h, expr.h, regs.h, and flags.h. - Fix typo. - * config/elxsi/elxsi.h: Don't define Rmode (typo for Pmode?) - Do define STACK_BOUNDARY. - * config/i370/i370.c: Include expr.h. - * config/i860/sysv3.h, config/i860/sysv4.h, config/m32r/m32r.h, - config/pa/som.h, config/v850/v850.h: Take in_ctors and - in_dtors out of EXTRA_SECTIONS; take CTORS_SECTION_FUNCTION - and DTORS_SECTION_FUNCTION out of EXTRA_SECTION_FUNCTIONS. - * config/m88k/m88k.c: Include c-tree.h after expr.h. - * config/pdp11/pdp11.c: Include expr.h and toplev.h. - * config/romp/romp.c: Include expr.h after tree.h. - Include toplev.h. - (output_fpop): Use xmalloc, not oballoc. - * config/we32k/we32k.c: Include expr.h. - -2001-08-10 Kazu Hirata - - * config/h8300/h8300.h: Fix formatting. - -2001-08-08 Jason Merrill - - * c-common.h (RETURN_NULLIFIED_P): Lose. - * c-semantics.c (genrtl_return_stmt): Don't check it. - -2001-08-10 Richard Sandiford - - * config/mips/mips.c (mips_add_large_offset_to_sp): New function. - (mips_annotate_frame_insn): New function. - (mips_emit_frame_related_store): New function. - (save_restore_insns): Don't mark instructions that set up the base - registers as frame-related. Add REG_FRAME_RELATED_EXPR notes to - the store instructions instead. - (mips_expand_prologue): If the stack size is moved into a temporary - register, do not mark that move as frame-related. Add a - REG_FRAME_RELATED_EXPR note to the stack adjustment instruction. - -2001-08-10 Richard Sandiford - - * config/mips/mips.c (save_restore_insns): Don't mark the RA's - stack slot as unchanging if current_function_calls_eh_return. - -2001-08-10 Richard Sandiford - - * config/mips/mips.md (reload_incc): Use HARD_REGNO_NREGS to - access the second half of the TFmode scratch operand. - -2001-08-10 Anthony Green - - * java/class.c (emit_register_classes): Conditionalize code on - JCR_SECTION_NAME. - -2001-08-10 Gerald Pfeifer - - * doc/install.texi (Specific, avr): Fix cross-reference to the - main manual to work both for info and HTML versions. - -2001-08-09 John David Anglin - - * stmt.c (expand_null_return_1): Remove code to generate simple returns - and "use_goto" argument. - (expand_null_return, expand_value_return): Update all callers. - * function.c (expand_function_end): Remove code to generate simple - return. - * config/vax/vax.md (epilogue): New expander for function return. - * doc/md.texi (epilogue): Remove "if defined". - -2001-08-09 Zack Weinberg - - * Makefile.in: Partially revert my previous change: - put -DGENERATOR_FILE back in HOST_CFLAGS, take it out - of the hashtab.o and safe-ctype.o rules. - -2001-08-09 Richard Henderson - - * Makefile.in (MAYBE_USE_COLLECT2): Remove; purge all uses. - (USE_COLLECT2): Remove duplicate definition. - * config.gcc (a29k-udi, a29k-wrs-vxworks) [tm_file]: Remove a29k/udi.h. - (use_collect2): Remove dead code. - * configure.in (use_collect2): Remove will_use_collect2 and - maybe_use_collect2; add USE_COLLECT2 to host_xm_defines and xm_defines. - * configure: Rebuild. - - * target.h (targetm.asm_out.constructor): New. - (targetm.asm_out.destructor, targetm.have_ctors_dtors): New. - * target-def.h (TARGET_ASM_CONSTRUCTOR): New. - (TARGET_ASM_DESTRUCTOR, TARGET_HAVE_CTORS_DTORS): New. - * varasm.c (in_ctors, in_dtors): New. - (assemble_constructor, assemble_destructor): Remove. - (default_stabs_asm_out_destructor): New. - (default_named_section_asm_out_destructor): New. - (dtors_section, default_dtor_section_asm_out_destructor): New. - (default_stabs_asm_out_constructor): New. - (default_named_section_asm_out_constructor): New. - (ctors_section, default_ctor_section_asm_out_constructor): New. - * output.h: Update declarations. - * c-decl.c (c_expand_body): Use target hooks instead of - assemble_constructor and assemble_destructor. - * profile.c (output_func_start_profiler): Likewise. - * objc/objc-act.c (finish_objc): Likewise. - (build_module_descriptor): Tidy. Set TREE_PUBLIC properly - for the constructor. - * objc/Make-lang.in (objc-act.o): Depend on TARGET_H. - - * crtstuff.c (CTORS_SECTION_ASM_OP): Don't define. - (DTORS_SECTION_ASM_OP): Likewise. - (__CTOR_LIST__): Use attribute section when possible. - (__DTOR_LIST__, __CTOR_END__, __DTOR_END__): Likewise. - - * defaults.h (EH_FRAME_SECTION_NAME): Don't depend on - ASM_OUTPUT_CONSTRUCTOR. - - * config/darwin.c (machopic_asm_out_constructor): New. - (machopic_asm_out_destructor): New. - * config/darwin-protos.h: Update declarations. - * config/darwin.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - * config/nextstep.c (nextstep_asm_out_constructor): New. - (nextstep_asm_out_destructor): New. - * config/nextstep.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - * config/nextstep21.h: Undef TARGET_ASM_*STRUCTOR instead of - ASM_OUTPUT_*STRUCTOR. - * config/i386/aix386ng.h: Likewise. - - * config/elfos.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Remove. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): No ctors/dtors. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. - * config/lynx.h: Likewise. - * config/netware.h: Likewise. - * config/psos.h: Likewise. - * config/alpha/alpha-interix.h: Likewise. - * config/alpha/elf.h: Likewise. - * config/arc/arc.h: Likewise. - * config/arm/aof.h: Likewise. - * config/arm/coff.h: Likewise. - * config/arm/elf.h: Likewise. - * config/c4x/c4x.h: Likewise. - * config/h8300/h8300.h: Likewise. - * config/i386/cygwin.h: Likewise. - * config/i386/djgpp.h: Likewise. - * config/i386/i386-coff.h: Likewise. - * config/i386/i386-interix.h: Likewise. - * config/i386/sco5.h: Likewise. - * config/i386/vsta.h: Likewise. - * config/i386/win32.h: Likewise. - * config/i960/i960-coff.h: Likewise. - * config/ia64/sysv4.h: Likewise. - * config/m68hc11/m68hc11.h: Likewise. - * config/m68k/coff.h: Likewise. - * config/m68k/mot3300.h: Likewise. - * config/m88k/m88k.h: Likewise. - * config/mcore/mcore-pe.h: Likewise. - * config/mcore/mcore.h: Likewise. - * config/mips/elf.h: Likewise. - * config/mips/elf64.h: Likewise. - * config/mips/iris6.h: Likewise. - * config/pa/pa64-hpux.h: Likewise. - * config/rs6000/sysv4.h: Likewise. - * config/sh/sh.h: Likewise. - * config/sparc/litecoff.h: Likewise. - - * config/svr3.h (CTORS_SECTION_ASM_OP): Remove. - (CTORS_SECTION_FUNCTION, DTORS_SECTION_FUNCTION): Remove. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. - * config/1750a/1750a.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - * config/a29k/a29k.c: Move include of tree.h. - * config/a29k/udi.h: Delete file. - * config/alpha/alpha.c (vms_asm_out_constructor): New. - (vms_asm_out_destructor): New. - * config/alpha/vms.h (EXTRA_SECTIONS): No ctors/dtors. - (EXTRA_SECTION_FUNCTIONS): Likewise. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - * config/c4x/c4x.c: Move include of tree.h. - * config/clipper/clipper.c (clix_asm_out_constructor): New. - (clix_asm_out_destructor): New. - * config/clipper/clix.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - * config/i386/aix386.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR): New. - * config/i386/i386.c (ix86_svr3_asm_out_constructor): New. - (sco_asm_out_constructor): New. - * config/i386/sco5.h (TARGET_ASM_CONSTRUCTOR): New. - * config/i386/svr3gas.h: Remove stack grows up code. - Remove code duplicated from i386/sysv3.h. - (TARGET_ASM_CONSTRUCTOR): New. - (ASM_OUTPUT_CONSTRUCTOR, ASM_OUTPUT_DESTRUCTOR): Remove. - (DTORS_SECTION_FUNCTION, CTORS_SECTION_FUNCTION): Remove. - * config/i386/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR): New. - * config/m68hc11/m68hc11.c (m68hc11_asm_out_constructor): New. - (m68hc11_asm_out_destructor): New. - * config/m68hc11/m68hc11.h (TARGET_ASM_CONSTRUCTOR): New. - (TARGET_ASM_DESTRUCTOR): New. - * config/m68k/auxgas.h: Don't undef ASM_OUTPUT_*STRUCTOR. - * config/m68k/dpx2.h: Properly undef all the bits inherited from - config/svr3.h pertaining to section manipulation. - * config/m68k/dpx2g.h: Remove #if 0 code. - * config/m68k/m68k.c (m68k_svr3_asm_out_constructor): New. - * config/m68k/tower-as.h (ASM_OUTPUT_SOURCE_LINE): Fix typo. - (ASM_OUTPUT_CONSTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR): New. - * config/m88k/m88k.c (m88k_layout_frame): Don't use assign_stack_local. - (m88k_svr3_asm_out_constructor): New. - (m88k_svr3_asm_out_destructor): New. - * config/m88k/sysv3.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - * config/mips/mips.h: Remove #if 0 ASM_OUTPUT_*STRUCTOR code. - * config/rs6000/aix.h: Likewise. - * config/mips/rtems64.h: Don't undef removed constructor related bits. - * config/mips/vxworks.h: Likewise. - * config/rs6000/lynx.h: Likewise. - * config/sh/elf.h: Likewise. - * config/rs6000/sysv4.h (CTORS_SECTION_ASM_OP): New. - (DTORS_SECTION_ASM_OP): New. - * config/sparc/linux64.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - * config/sparc/sol2-sld-64.h: Likewise. - * config/vax/vax.c (vms_asm_out_constructor): New. - (vms_asm_out_destructor): New. - * config/vax/vms.h (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - - * doc/tm.texi (@node Initialization): Update. - -2001-08-09 Richard Henderson - - * config/alpha/crtbegin.asm (__JCR_LIST__): New. - (__do_global_dtors_aux): Use gp-relative static data to avoid - one dynamic relocation. - (__do_frame_setup): Register Java classes. - * config/alpha/crtend.asm (__JCR_END__): New. - -2001-08-09 Zack Weinberg - - * Makefile.in (HOST_CFLAGS): Take out -DGENERATOR_FILE. - (CONFIG_H, TCONFIG_H, TM_P_H): Update. - (GEN, STAGESTUFF): Add new files. - (insn-constants.h, s-constants, tm-preds.h, s-preds, - genconstants, genpreds, genconstants.o, genpreds.o): New rules. - (hashtab.o, safe-ctype.o): Add -DGENERATOR_FILE. - * mkconfig.sh: Include tm-preds.h in tm_p.h; insn-constants.h - as well as insn-codes.h and insn-flags.h in config.h; and no - extra headers in tconfig.h and hconfig.h. - - * gencodes.c: Eliminate code to generate predicate declarations - or #defines for md-file constants. - * genconstants.c, genpreds.c: New files. - - * i386.md: Re-order guard expressions such that TARGET_64BIT - comes first, when this permits better optimization. Add - TARGET_64BIT to more x86-64 patterns. Add comment explaining - why this is desirable. - -2001-08-09 Jakub Jelinek - - * config/ia64/fde-glibc.c: Require glibc 2.2.4+ headers. - (find_fde_for_dso): Remove. - (_Unwind_IteratePhdrCallback): New. - (_Unwind_FindTableEntry): Use dl_iterate_phdr. - * config/ia64/crtbegin.asm (__ia64_app_header): Remove. - -Thu Aug 9 11:30:20 2001 Richard Kenner - - * expr.c (emit_single_push_insn): Only exists ifdef PUSH_ROUNDING. - (move_by_pieces_1): If would call it, abort if no PUSH_ROUNDING. - -2001-08-09 Graham Stott - - * sched-vis.c (MAX_VISUAL_NO_UNIT): Define. - (vis_no_unit): Use it. - (visualize_no_unit): Add the insn only if room exists. - -2001-08-09 Graham Stott - - * predict.c (estimate_probability): Replace magic numbers with - appropriate enumeration. - -2001-08-09 Graham Stott - - * cppexp.c (EXTRACT_PRIO): Uppercase and parenthsize macro - parameter. - (EXTRACT_FLAGS): Likewise. - -2001-08-09 Aldy Hernandez - - * config/mips/mips.c (mips_legitimate_address_p): Check for - CONST_INT in last patch. - -2001-08-08 Anthony Green - - * java/class.c (emit_register_classes): Use assemble_jcr if - possible. Keep the original mechanism as a fallback. - * defaults.h (JCR_SECTION_NAME): Define if we have named section - and weak symbol support. - * crtstuff.c (__JCR_LIST__): Define. - (__JCR_END__): Define. - (_Jv_RegiserClasses): Define weak symbol if possible. - (__do_global_ctors_aux): Register classes for ELF targets with - weak symbol support. - -2001-08-08 Kazu Hirata - - * dbxout.c: Fix comment formatting. - * dependence.c: Likewise. - * df.c: Likewise. - * diagnostic.c: Likewise. - * dominance.c: Likewise. - * doprint.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * except.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - -2001-08-08 Franz Sirl - - * global.c (retry_global_alloc): Avoid shadowing allocno. - -2001-08-08 Mark Mitchell - - * except.c (remove_fixup_regions): Fix typo. - -2001-08-08 Jan van Male - - * emit-rtl.c (adjust_address, adjust_address_nv): Cast offset to - unsigned HOST_WIDE_INT to avoid warning. - * final.c (final): Cast INSN_UID to unsigned to avoid warning. - * flow.c (set_block_for_new_insns): Likewise. - -Wed Aug 8 21:08:14 CEST 2001 Jan Hubicka - - * sibcall.c (return_value_pseudo): New static variable. - (skip_copy_to_return_value): Handle return_value_pseudo. - (call_ends_block_p): Ensure that return_value_pseudo is set. - (optimize_sibling_and_tail_recursive_call): Discover the - load of pseudo return value in alternate exit block. - -Wed Aug 8 21:06:43 CEST 2001 Jan Hubicka - - * calls.c (ECF_ALWAYS_RETURN): New constant. - (emit_call_1): Add REG_ALWAYS_RETURN note if needed. - (expand_call): Use LCF_ALWAYS_RETURN for __bb_fork_func. - (emit_library_call_value_1): Handle LCT_ALWAYS_RETRUN. - * flow.c (need_fake_edge_p): Handle REG_ALWAYS_RETURN. - * rtl.c (reg_note_name): New name. - * rtl.h (enum reg_note): Add REG_ALWAYS_RETURN. - -2001-08-07 Aldy Hernandez - - * config/mips/mips.c (mips_legitimate_address_p): Limit "la" addresses. - -2001-08-08 Jason Merrill - - * alias.c (get_alias_set): Return a previously calculated - alias set for a VAR_DECL. - * function.c (gen_mem_addressof): Calculate the alias set before - touching the RTL. - -Wed Aug 8 18:44:37 CEST 2001 Jan Hubicka - - * predict.def: Set hitrates according our experimental run. - -Wed Aug 8 18:01:58 CEST 2001 Jan Hubicka - - * i386.h (HARD_REGNO_RENAME_OK): New macro. - -2001-08-08 H.J. Lu - - * config/mips/mips.c (mips_unique_section): New. Copied from - config/mips/elf.h. - - * config/mips/mips-protos.h (mips_unique_section): New - prototype. - - * config/mips/elf.h (UNIQUE_SECTION): Use mips_unique_section. - - * config/mips/little.h: New. Generic little endian mips - targets. Only mips*-*-linux* is converted to use it so far. - - * config/mips/linux.h: Include "gofast.h" and "mips/mips.h". - (WCHAR_TYPE): Defined - (WCHAR_TYPE_SIZE): Likewise. - (INIT_SUBTARGET_OPTABS): Likewise. - (BSS_SECTION_ASM_OP): Likewise. - (SBSS_SECTION_ASM_OP): Likewise. - (ASM_OUTPUT_ALIGNED_BSS): Likewise. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (UNIQUE_SECTION): Likewise. - (EXTRA_SECTIONS): Likewise. - (ASM_OUTPUT_CONSTRUCTOR): Likewise. - (ASM_OUTPUT_DESTRUCTOR): Likewise. - (ASM_OUTPUT_DEF): Likewise. - (HANDLE_SYSV_PRAGMA): Removed. - (NO_IMPLICIT_EXTERN_C): Likewise. - (TARGET_MEM_FUNCTIONS): Likewise. - (STARTFILE_SPEC): Likewise. - (ENDFILE_SPEC): Likewise. - (LIB_SPEC): Likewise. - (INVOKE__main): Likewise. - (CTOR_LIST_BEGIN): Likewise. - (CTOR_LIST_END): Likewise. - (DTOR_LIST_BEGIN): Likewise. - (DTOR_LIST_END): Likewise. - (SET_ASM_OP): Likewise. - (ASM_OUTPUT_SOURCE_LINE): Likewise. - (ASM_OUTPUT_DEF): Likewise. - (ASM_OUTPUT_IDENT): Likewise. - - * config/mips/mips.h (ASM_SPEC): Undefine before define. - (CPLUSPLUS_CPP_SPEC): Likewise. - (ASM_APP_ON) Redefine only if not defined. - (ASM_APP_OFF): Likewise. - (ASM_OUTPUT_SOURCE_LINE): Likewise. - (ASM_OUTPUT_IDENT): Likewise. - - * config.gcc: Update tm_file for Linux/mips. - -2001-08-08 Bernd Schmidt - - * cselib.c (cselib_record_sets): If insn is predicated, turn - sources into IF_THEN_ELSEs. - - * config/ia64/ia64.md (cond_opsi2_internal, cond_opsi2_internal_b): - Turn into define_insn_and_split. - - * sched-deps.c: Include "cselib.h". - (add_insn_mem_dependence, sched_analyze_1, sched_analyze_2): - Use cselib to turn memory addresses into VALUEs. - (sched_analyze): Call cselib_init/cselib_finish if necessary. - * sched-int.h (struct sched_info): New member USE_CSELIB. - * sched-ebb.c (ebb_sched_info): Initialize it. - * sched-rgn.c (rgn_sched_info): Likewise. - * Makefile.in (sched-deps.o): Update dependencies. - - * cselib.h (cselib_subst_to_values): Declare. - * cselib.c (cselib_subst_to_values): No longer static. Allow MEMs - that have no value and autoincs to be handled by generating a new - dummy value. - -2001-08-08 Graham Stott - - * final.c (shorten_branches): Update the INSN_ADDRESSES of insns - within fixed length SEQUENCE. - -2001-08-08 Graham Stott - - * diagnostic.h (diagnostic_format_decoder): Parenthesize macro parameter. - (diagnostic_prefixing_rule): Likewise. - (diagnostic_line_cutoff): Likewise. - (diagnostic_kind_count): Likewise. - -2001-08-08 Graham Stott - - * alias.c (find_base_decl): Delete redundent assignment. - -2001-08-08 Graham Stott - - * dependence.c (INDEX_LIMIT_CHECK): Uppercase macro parameter. - (abs): Uppercase and paranthesize macro parameter. - (MEM_DEPENDENCY): Add whitespace. - -2001-08-08 Graham Stott - - * config/mips/mips.c (mips_legitimate_address_p): Fix enable checking - failure check for CONST_INT - -2001-08-08 Graham Stott - - * flow.c (back_edge_of_syntactic_loop_p): Add whitespace. - (libcall_dead_p): Likewise. - - (mark_used_regs): Constify fmt. - (find_use_as_address): Likewise. - -2001-08-08 Graham Stott - - * c-typeck.c (RESTORE_SPELLING_DEPTH): Uppercase and parenthesize macro - parameter. - -2001-08-08 Graham Stott - - * combine.c (combine_simplify_rtx): Update comment and - remove erroneous test. - -2001-08-07 Neil Booth - - * cppinit.c (cpp_finish): Pop the final buffer without comment. - * cpplex.c (_cpp_lex_token): Don't pop the final buffer; and - take care to avoid multiple no-newline at EOF warnings in that - case. - -Tue Aug 7 22:18:06 CEST 2001 Jan Hubicka - - * calls.c (expand_call): Do not emit INSN_SETJMP note. - (emit_library_call_value_1): Likewise. - (emit_call_1): Emit REG_SETJMP note. - * cse.c (cse_end_of_basic_block): Use REG_SETJMP instead - of INSN_SETJMP - * cselib.c (cselib_process_insn): Likewise. - * flow.c (propagate_block): Likewise. - * loop.c (find_and_verify_loops): Likewise. - * reload.c (find_equiv_regs): Likewise. - * reload1.c (reload): Likewise. - * resource.c (mark_referenced_resources, - mark_set_resources): Likewise. - * sched-deps (sched_analyze_insn, sched_analyze): Likewise. - * final.c (final_scan_insn): Remove NOTE_INSN_SETJMP. - * haifa-sched.c (unlink_other_notes): Likewise. - (reemit_notes): Likewise. - * sched-ebb.c (sched_ebb): Likewise. - * sched-rgc.c (sched_region): Likewise. - * rtl.c (note_insn_name): Likewise. - (reg_note_name): Add REG_SETJMP - * rtl.h (reg_note): Add REG_SETJMP. - (insn_note): Remove NOTE_INSN_SETJMP. - - * profile.c (branch_prob): Add fake edges for setjmp. - -2001-08-07 Daniel Jacobowitz - - * config.gcc: Quote target_cpu_default2 correctly for - powerpc*-*-* targets. - -2001-08-07 Neil Booth - - * cpplib.h, line-map.h: Update comments. - * cppmain.c (printer_init): Move inline. - (maybe_print_line, print_line): Take a map pointer. - (cb_ident, cb_define, cb_undef, cb_include, cb_def_pragma): Update. - (cb_file_change): Don't use prior value of print.map. - -2001-08-07 David Edelsohn - - * doc/install.texi: Document fine-grained multilib configuration. - -Tue Aug 7 16:52:54 CEST 2001 Jan Hubicka - - * rtlanal.c (find_first_parameter_load): Call note_stores - only on the instructions. - -Tue Aug 7 14:56:16 CEST 2001 Jan Hubicka - - * alias.c (nonlocal_mentioned_p): - Rename CONST_CALL_P to CONST_OR_PURE_CALL_P - * calls.c (emit_call_1): Likewise. - * cse.c (cse_insn, invalidate_skipped_block): Likewise. - * cselib.c (cselib_process_insn): Likewise. - * df.c (df_insns_modify): Likewise. - * flow.c (need_fake_edge_p): Likewise. - (propagate_one_insn): Likewise. - * haifa-sched.c (reemit_notes): Likewise. - * integrate.c (copy_insn_list): Likewise. - * jump.c (delete_prior_computation): Likewise. - * local-alloc.c (validate_equiv_mem): Likewise. - * loop.c (scan_loop): Likewise. - * predict.c (estimate_probability): Likewise. - * reload.c (reload): Likewise. - * sched-deps (sched_analyze): Likewise. - * rtl.h (CONST_CALL_P): rename to CONST_OR_PURE_CALL_P. - * gcse.c (compute_hash_table): Likewise. - (mark_call): Likewise. - (store_killed_in_insn): Likewise. - -2001-08-07 Jason Merrill - - * c-semantics.c (make_rtl_for_local_static): Use DECL_RTL_SET_P. - -2001-08-06 Richard Henderson - - * varasm.c (assemble_gc_entry): Remove. - * output.h: Likewise. - -2001-08-06 Richard Henderson - - * varasm.c (assemble_constructor): Take a symbol_ref and a - priority instead of a bare string. Move priority handling - here from cp/decl2.c. - * output.h: Update decls. - - * c-decl.c (c_expand_body): Update calls to assemble_constructor - and assemble_destructor. - * profile.c (output_func_start_profiler): Likewise. - * objc/objc-act.c (finish_objc): Likewise. - (build_module_descriptor): Return the symbol not the symbol name. - -2001-08-06 David Edelsohn - - * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): Add whitespace. - * config/rs6000/linux64.h (RS6000_MCOUNT): Define. - ({SAVE,RESTORE}_FP_{PREFFIX,SUFFIX}): Define. - * config/rs6000/rs6000.h (ASM_OUTPUT_DOUBLE_INT): Remove whitespace. - * config/rs6000/sysv4.h (DOUBLE_INT_ASM_OP): Add whitespace. - * config/rs6000/xcoff.h (DOUBLE_INT_ASM_OP): Add whitespace. - -2001-08-06 Neil Booth - - * cpperror.c (print_containing_files): Moved to line-map.c. - (print_location): line-map.c handles re-listing or otherwise. - * cpphash.h (struct lexer_state): Remove next_bol. - (struct cpp_buffer): Remove include_stack_listed. - * cpplib.c (do_line, cpp_push_buffer, _cpp_pop_buffer): - Remove faked buffer handling. - (_cpp_do_file_change): Tweak. - * cpplib.h (enum cpp_buffer_type): Remove BUF_FAKE. - * cppmain.c (struct printer): Remove filename. - (print_line, cb_file_change): Update accordingly. - * line-map.c: Include intl.h. - (init_line_maps): Initialize last_listed. - (free_line_maps): Sanity check, warn if ENABLED_CHECKING. - (add_line_map): Sanity check inputs, warn if ENABLED_CHECKING. - (print_containing_files): New. - * line-map.h (struct line_maps): New member last_listed. - (print_containing_files, INCLUDED_FROM): New. - * Makefile.in: Update. - * po/POTFILES.in: Add line-map.c. - -2001-08-06 Richard Henderson - - * except.c (convert_from_eh_region_ranges_1): Never mark - USE or CLOBBER insns as throwing. - - * expr.c (store_constructor): Don't clobber memory targets. - -2001-08-06 Andreas Jaeger - - * profile.c (branch_prob): Remove unused variable insn. - - * Makefile.in (local-alloc.o): Add dependency on except.h. - - * local-alloc.c: Include except.h for can_throw_internal prototype. - -2001-08-06 Richard Henderson - - * config/i386/i386.h (FORCE_PREFERRED_STACK_BOUNDARY_IN_MAIN): New. - * function.c (expand_main_function): Implement it. - * doc/tm.texi: Document it. - -2001-08-06 Stan Shebs - - * doc/install.texi: Document powerpc-*-darwin* details. - -2001-08-06 Daniel Berlin - - * config/rs6000/aix.h (CPP_CPU_SPEC): Move back to rs6000.h - (ASM_CPU_SPEC): Move back to rs6000.h - #undef CPP_DEFAULT_SPEC and ASM_DEFAULT_SPEC before redefining them. - - * config/rs6000/darwin.h (DOUBLE_INT_ASM_OP): New macro. - - * config/rs6000/linux.h: Remove vtable thunks stuff we accidently - readded. - - * config/rs6000/linux64.h: Ditto. - - * config/rs6000/rs6000.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back - to here. Define default ASM_DEFAULT_SPEC and CPP_DEFAULT SPEC to - nothing. - - Remove accidently readded definitions of FUNCTION_PROLOGUE, - FUNCTION_EPILOGUE, ASM_OPEN_PAREN, ASM_CLOSE_PAREN - - * config/rs6000/sysv4.h: Move CPP_CPU_SPEC and ASM_CPU_SPEC back - to rs6000.h - -2001-08-05 Richard Henderson - - * local-alloc.c (update_equiv_regs): Do not move insns that - can throw. - -2001-08-05 Jan Hubicka - - * Makefile.in (reload1.o): Add dependency on except.h - * basic-block.h (purge_all_dead_edges, purge_dead_edges): Update - prototypes. - * flow.c (purge_dead_edges, purge_all_dead_edges): Return bool - indicating whether edges has been cleaned up. - * reload1.c: Include except.h. - (fixup_abnormal_edges): Accept deleted insns. - * toplev.c (rest_of_compilation): Purge dead edges unconditionally - after combine. - -2001-08-06 Neil Booth - - * cpplib.c (do_line): Correct line number after pop_buffer. - -2001-08-05 Neil Booth - - PR preprocessor/3824 - * line-map.c: Update comments. - * line-map.h: Update comments. - * tradcif.y: Don't consider large numbers unsigned. - -2001-08-05 Neil Booth - - PR preprocessor/3081 - * c-lex.c (map): New. - (cb_file_change): Update map and use it. - (cb_def_pragma, cb_define, cb_undef): Use map and line. - (c_lex): Update to use map. - * cpperror.c (print_location): Move to using logical line numbers. - * cppfiles.c (stack_include_file): Update for new _cpp_do_file_change. - (cpp_make_system_header): Similarly. - (_cpp_execute_include): Stop line numbering hacks. Store the - line we will return to. - * cpphash.h (CPP_BUF_LINE): Remove. - (struct cpp_buffer): Remove lineno and pseudo_newlines. - Add map and return_to_line. - (_cpp_do_file_change): Update. - * cppinit.c (cpp_start_read): Update line kludge. - * cpplex.c (handle_newline): Don't update lineno and pseudo_newlines. - (trigraph_ok): Use logical line numbers for diagnostics. - (skip_block_comment): Likewise. - (skip_whitespace): Likewise. - (skip_line_comment): Use pfile->line instead. - (_cpp_lex_token): Update to use logical line numbering exclusively. - Handle BOL locally. Accept new lines in directives, but keep - pfile->line decremented. Diagnostics use logical lines. Update - directive handling. - * cpplib.c (SEEN_EOL): New. - (skip_rest_of_line, check_eol): Use it. - (end_directive): Increase line number when accepting the newline - at the end of a directive. - (run_directive): Simplify. - (do_line): Bad LC_LEAVEs become LC_RENAMEs. Update. - (_cpp_do_file_change): Update to take buffer line number as an - argument, and store the current map in the cpp_reader. Remove - line number kludges. - (_cpp_do__Pragma): Restore output position after a _Pragma. - (cpp_push_buffer): Don't set output line or lineno. - (_cpp_pop_buffer): Transfer more info from a faked buffer. - Remove line kludge. Set output_line. - * cppmacro.c (builtin_macro): Update handling of __LINE__. - (parse_arg): Use logical lines. - (save_lookahead_token): Save EOFs too now. - * cppmain.c (struct printer): Fix comments. - (printer_init): Simplify, let caller do errors. - (scan_translation_unit, check_multiline_token, dump_macro): Update. - (maybe_print_line): Simplify. - (print_line): Don't print a linemarker if -P. - (cb_define, cb_undef, cb_def_pragma, cb_ident, cb_include): Update. - (cb_file_change): Simplify. - * line-map.h (LAST_SOURCE_LINE): Fix. - (CURRENT_LINE_MAP): New. - -2001-08-05 Bernd Schmidt - - * doloop.c (doloop_modify_runtime): Properly compute number of - iterations if loop was unrolled. - - * alias.c (rtx_equal_for_memref_p): VALUEs are only identical - if their CSELIB_VAL_PTRs are. - - * config/ia64/ia64.c (struct spill_fill_data): New member prev_insn. - (setup_spill_pointers): Initialize it. - (spill_restore_mem): Set it. - (do_spill, do_restore): Use it to add REG_INC note. - * config/ia64/ia64.md (movti_internal): Add REG_INC notes as needed. - - * config/ia64/ia64.c (ia64_sched_reorder): Defer scheduling of - asms if other insns are available. - - * config/ia64/ia64.c (condop_operator): New predicate. - * config/ia64/ia64.h (PREDICATE_CODES): Add it. - * config/ia64/ia64.md (cond_opsi2_internal and splitters): New - patterns. - - * expr.c (expand_expr, case COND_EXPR): Prefer working with a - temporary register than directly using a MEM. - -2001-08-04 Hans-Peter Nilsson - - * config/sh/sh.c (sh_asm_named_section): Fix typo in align - parameter in last change. - -2001-08-04 Zack Weinberg - - * sparc.md: Don't use #if inside C test expression. - -2001-08-04 Richard Henderson - - * i386.c: Revert 07-30 ix86_output_main_function_alignment_hack. - -2001-08-04 Neil Booth - - * cpphash.h (struct cpp_reader): New member directive_line. - * cpplib.h (struct cpp_callbacks): Update prototypes of callbacks. - * cpplib.c (do_define, do_undef, do_ident, do_include_common, - do_pragma): Pass line to callbacks. - (start_directive): Record line of directive. - * cppmain.c (cb_ident, cb_define, cb_undef, cb_def_pragma, - cb_include): Similarly. - * c-lex.c (cb_ident, cb_define, cb_undef, cb_def_pragma): - Similarly. - -2001-08-04 Hans-Peter Nilsson - - * config/d30v/d30v.h: Fix typo in start of UNIQUE_SECTION - comment. - -Sat Aug 4 13:51:36 CEST 2001 Jan Hubicka - - * loop.c (try_copy_prop); Kill invalidated REG_EQUAL notes. - - * reload1.c (fixup_abnormal_edges): New static function. - (reload): Use it. - - * flow.c (need_fake_edge_p): New function. - (flow_call_edges_add): Fix handling of noreturn and sibling calls; - avoid call insn to be very last insn in the insn stream. - - * profile.c (branch_prob): Call flow_call_edges_add instead of - doing that by hand; cleanup cfg to re-merge basic blocks once - we are done. - -2001-08-04 Neil Booth - - * Makefile.in (CPPLIB_H): New, so that dependencies on cpplib.h - are also on line-map.h. - * cppfiles.c (stack_include_file): Update. - * cpphash.h (struct cpp_buffer): New member return_at_eof. - (_cpp_pop_buffer): New. - * cppinit.c (cpp_destroy, cpp_finish): Update. - (do_includes): Mark each buffer to return at EOF. - * cpplex.c (_cpp_lex_token): Pop buffers at EOF. Continue or - return as requested. - * cpplib.c (run_directive, do_line, cpp_push_buffer): Update. - (cpp_pop_buffer): Rename _cpp_pop_buffer. Stop skipping. - * cpplib.h (cpp_pop_buffer): Remove. - (cpp_scan_buffer_nooutput): Rename cpp_scan_nooutput. - * cppmacro.c (cpp_scan_buffer_nooutput): Similarly. No need to pop - buffers. - * cppmain.c (scan_buffer): Rename scan_translation_unit. No need - to pop buffers. - (do_preprocessing): Update. - * fix-header.c (read_scan_file): Update. No need to pop buffers. - * c-parse.in (_yylex): Similarly. - * scan-decls.c (scan_decls): Similarly. - * line-map.h: Update comments. - - * objc/Make-lang.in (objc-act.o): Update dependencies. - -2001-08-04 Stephane Carrez - - * config/m68hc11/m68hc11.md ("cmphi_1", "cmpqi_1"): Allow memory - and soft register for operand 0. - ("cmphi_z_used", "cmpqi_z_used"): Allow memory for operand 0. - -2001-08-04 Stephane Carrez - - * config/m68hc11/m68hc11.md ("bitcmpqi"): Allow memory and soft - register for operand 0. - ("bitcmpqi_z_used"): Allow memory for operand 0. - (split "bitcmpqi"): New split to handle address reg as operand 1. - -2001-08-04 Andreas Jaeger - - * gcse.c: Revert Daniel's last patch. - -2001-08-03 Zack Weinberg - - * sparc-protos.h: Add prototypes for fp_zero_operand and - reg_or_0_operand. - * sh-protos.h: Add prototype for fpul_operand. - -2001-08-04 Hans-Peter Nilsson - - * doc/extend.texi (Other Builtins): Fix typo in last change. - -2001-08-03 Richard Henderson - - * target.h (gcc_target): Add asm_out.named_section, - section_type_flags, have_named_sections. - * target-def.h (TARGET_ASM_NAMED_SECTION): New. - (TARGET_HAVE_NAMED_SECTIONS): New. - (TARGET_SECTION_TYPE_FLAGS): New. - - * Makefile.in (toplev.o): Depend on TARGET_H. - (varasm.o, dbxout.o): Likewise. - * c-common.c (decl_attributes): Check targetm.have_named_sections - instead of ifdef ASM_OUTPUT_SECTION_NAME. - * dbxout.c (dbxout_function_decl): Likewise. - (dbxout_function_end): Likewise. - * toplev.c (compile_file): Likewise. - * varasm.c (exception_section): Likewise. - * cp/decl2.c (finish_objects): Likewise. - - * defaults.h (EH_FRAME_SECTION): Remove. - (EH_FRAME_SECTION_ASM_OP): Remove. - (EH_FRAME_SECTION_NAME): New. - (UNIQUE_SECTION): Don't depend on ASM_OUTPUT_SECTION_NAME. - (UNIQUE_SECTION_P): Remove. - * dwarf2out.c (SECTION_FORMAT): Remove. - (ASM_OUTPUT_SECTION): Remove. - (output_call_frame_info): Use named_section_flags. - (output_comp_unit, dwarf2out_start_source_file): Likewise. - (dwarf2out_end_source_file, dwarf2out_define): Likewise. - (dwarf2out_undef, dwarf2out_init, dwarf2out_finish): Likewise. - * varasm.c (in_eh_frame, eh_frame_section): Remove. - (named_section_flags): New. - (named_section): Use it and targetm.section_type_flags. - (resolve_unique_section): New. - (assemble_start_function): Use it. - (asm_emit_uninitialised, assemble_variable): Likewise. - (default_section_type_flags): New. - (default_no_named_section, default_elf_asm_named_section): New. - (default_coff_asm_named_section, default_pe_asm_named_section): New. - * output.h: Update varasm.c decls. - (SECTION_*): New flags. - - * crtstuff.c: Check EH_FRAME_SECTION_NAME not EH_FRAME_SECTION_ASM_OP. - (__EH_FRAME_BEGIN__, __FRAME_END__): Use attribute section. - - * config/elfos.h (UNIQUE_SECTION_P): Remove. - * config/alpha/elf.h, config/arm/linux-elf.h: Likewise. - * config/arm/pe.h, config/arm/unknown-elf.h: Likewise. - * config/i386/cygwin.h, config/i386/djgpp.h: Likewise. - * config/i386/i386-interix.h, config/i386/win32.h: Likewise. - * config/ia64/sysv4.h, config/mcore/mcore-pe.h: Likewise. - * config/mips/elf.h, config/mips/elf64.h: Likewise. - * config/mips/iris6gld.h, config/mips/mips.h: Likewise. - * config/pa/pa64-hpux.h, - - * config/elfos.h (ASM_OUTPUT_SECTION_NAME): Remove. - (TARGET_ASM_NAMED_SECTION): New. - * config/psos.h, config/a29k/a29k.h, config/alpha/elf.h: Likewise. - * config/alpha/vms.h, config/arm/coff.h: Likewise. - * config/arm/conix-elf.h, config/arm/elf.h: Likewise. - * config/arm/linux-elf.h, config/arm/pe.h: Likewise. - * config/arm/unknown-elf.h, config/avr/avr.h: Likewise. - * config/c4x/c4x.h, config/h8300/h8300.h: Likewise. - * config/i386/cygwin.h, config/i386/djgpp.h: Likewise. - * config/i386/i386-interix.h, config/i386/i386elf.h : Likewise. - * config/i386/sco5.h, config/i386/win32.h: Likewise. - * config/m68k/coff.h, config/mcore/mcore-pe.h: Likewise. - * config/mcore/mcore.h, config/mips/elf.h: Likewise. - * config/mips/elf64.h, config/mips/iris6.h: Likewise. - * config/mips/netbsd.h, config/mips/openbsd.h: Likewise. - * config/pa/pa64-hpux.h, config/rs6000/sysv4.h: Likewise. - * config/rs6000/xcoff.h, config/sh/sh.h: Likewise. - * config/sparc/sysv4.h: Likewise. - - * config/nextstep.h: Error until named sections implemented. - - * config/a29k/a29k.c (a29k_asm_named_section): New. - * config/alpha/alpha.c (SECTION_VMS_OVERLAY): New. - (vms_section_type_flags, vms_asm_named_section): New. - * config/arm/arm.c (arm_elf_asm_named_section): New. - * config/avr/avr.c (asm_output_section_name): Remove. - * config/avr/avr-protos.h: Update. - * config/c4x/c4x.c (c4x_asm_named_section): New. - * config/h8300/h8300.c (h8300_asm_named_section): New. - * config/i386/i386.c (sco_asm_named_section): New. - * config/i386/winnt.c (SECTION_PE_SHARED): New. - (i386_pe_section_type_flags): New. - (i386_pe_asm_named_section): New. - * config/i386/i386-protos.h: Update. - * config/m68k/m68k.c (m68k_coff_asm_named_section): New. - * config/mcore/mcore.c (mcore_asm_named_section): New. - * config/mips/mips.c (iris6_asm_named_section): New. - * config/mips/mips.h (ENCODE_SECTION_INFO): Use DECL_ONE_ONLY - instead of UNIQUE_SECTION_P. - * config/rs6000/rs6000.c (rs6000_elf_section_type_flags): New. - (xcoff_asm_named_section): New. - * config/sh/sh.c (sh_asm_named_section): New. - * config/sparc/sparc.c (sparc_elf_asm_named_section): New. - - * config/i386/djgpp.h (EH_FRAME_SECTION_ASM_OP): Remove. - * config/i386/sco5.h (EH_FRAME_SECTION_ASM_OP*): Remove. - (EH_FRAME_SECTION_NAME): New. - (EXCEPTION_SECTION): New. - * config/ia64/ia64.h (EH_FRAME_SECTION_ASM_OP): Remove. - (DEBUG_*_SECTION): Remove. - * config/m68k/rtemself.h (EH_FRAME_SECTION_ASM_OP): Remove. - * config/mips/iris6.h (DEBUG_*_SECTION): Remove. - (EH_FRAME_SECTION_ASM_OP): Remove. - - * doc/tm.texi (UNIQUE_SECTION_P): Remove. - (ASM_OUTPUT_SECTION_NAME): Remove. - (TARGET_ASM_NAMED_SECTION): New. - (TARGET_HAVE_NAMED_SECTIONS): New. - (TARGET_SECTION_TYPE_FLAGS): New. - (EH_FRAME_SECTION_ASM_OP): Remove. - (EH_FRAME_SECTION_NAME): New. - -2001-08-03 Zack Weinberg - - * builtins.c (fold_builtin_constant_p): Return integer_zero_node - for complex expressions when cfun == 0. - * doc/extend.texi: Document that __builtin_constant_p can be - used in data initializers as well as functions. - -2001-08-03 Alexandre Oliva - - * config/mn10300/mn10300.h (CONDITIONAL_REGISTER_USAGE): Declare - variable I locally, instead of expecting a declaration in the - calling context. - -2001-08-03 Richard Henderson - - * except.c (collect_one_action_chain): Add an explicit cleanup - action if regions surrounding a catch were encoded entirely - within the call-site entry. - -2001-08-03 Richard Henderson - - * dbxout.c (dbxout_symbol_location): Flatten subregs first; - don't take REGNO of a non-register. - -2001-08-03 John David Anglin - - * gthr-dce.h (__GTHREAD_MUTEX_INIT_FUNCTION and - __GTHREAD_MUTEX_INIT_DEFAULT): New macros for mutex initialization. - (__gthread_key_delete): Remove code for __PTHREAD_LIBRARY_VERSION_1 >= 1 - (__gthread_mutex_init_function): New function for mutex initialization. - -2001-08-03 Daniel Berlin - - * Makefile.in: Revert screwed up commit. - -2001-08-03 Stephane Carrez - - * config/m68hc11/t-m68hc11-gas (T_CPPFLAGS): Add _ctor and _dtor. - * config/m68hc11/larith.asm (_exit): Split in several sub-sections - merged by linker script to get a final _exit(). - (__do_global_dtors): New for destructor handling in specific exit - section. - (__do_global_ctors): New for constructors in specific install section. - (__map_data_section): Map data sections before running constructors. - * config/m68hc11/m68hc11.h (INT_ASM_OP): Define to use .word. - (CTORS_SECTION_ASM_OP): Define to put in readonly section. - (DTORS_SECTION_ASM_OP): Likewise. - (CTORS_SECTION_FUNCTION): Define to force a reference to - __do_global_ctors. - (DTORS_SECTION_FUNCTION): Likewise for __do_global_dtors. - -2001-08-03 Daniel Berlin - - * ChangeLog: Fix date on previous ChangeLog entry for GCSE. - - * Makefile.in: Add df.h to gcse.c dependencies. - -2001-08-03 John David Anglin - - * varasm.c (output_constant_def_contents): Use for the length of a - string constant either its TREE_STRING_LENGTH or its int_size_in_bytes - depending on which is larger. - -2001-08-03 Daniel Berlin - - * gcse.c: Include df.h for use as a dataflow analyzer. - Remove regvec. - Declaration of reg_set_info: gone. - New df_analyzer variable used by store motion. - (reg_set_info): Deleted. - (mark_mem_regs): New function, analyze regs used by a mem. - (store_ops_ok): Use dataflow analyzer results to determine if - necessary regs are changed in the block. - (find_moveable_store): Remove check for symbol ref, we can handle - much more complex expressions now. - (compute_store_table): Remove most of the code, it's unnecessary - now that the dataflow analyzer records the info for us. - (store_killed_after): Add parameter to say whether to do the - store_ops_okay test, used to speed up testing when we already know - the answer, and just want to know if the store itself was killed. - (build_store_vector): Largely rewritten to calculate the various - vectors properly, and somewhat optimized. - (store_motion): Init the df_analyzer, get REG_DEF chains. - Also handle trapping expressions (since mems almost always trap) - (simple_mem): Redefine what a simple mem is. - -2001-08-03 DJ Delorie - - * ifcvt.c (noce_get_alt_condition): Don't make an auxiliary - set from a constant part of the condition. - -2001-08-01 Andrew Cagney - - * mkdeps.c (deps_add_default_target): Make local variable - ``start'' a const char pointer. - * dwarf2out.c (compute_section_prefix): Localize use of ``p''. - -2001-08-03 Rainer Orth - - * doc/install.texi (Configuration): Fix markup. - (Specific, i?86-*-udk): Likewise. - (Specific, alpha*-dec-osf*): Warn against --with-gnu-as, - --with-gnu-ld. - Document --enable-threads and --enable-libgcj status. - (Specific, mips-sgi-irix*): Canonicalize triples. - (Specific, mips-sgi-irix5): Warn about problems with this config. - Mention required GNU as patch. - Native assembler problems are fixed. - (Specific, mips-sgi-irix6): Update O32 ABI support status. - Document --enable-threads and --enable-libgcj status. - -2001-08-02 Nick Clifton - - * Makefile.in, mklibgcc.in: Restore changes with fixed invocation - of mkinstalldirs. - -2001-08-03 Richard Henderson - - * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't write to - constant data. - -2001-08-03 Richard Henderson - - * rtlanal.c (find_first_parameter_load): Stop if we - reach a CODE_LABEL at BOUNDARY. - -2001-08-03 Richard Henderson - - * config/alpha/alpha.md (force_movdi): New insn. - * config/alpha/alpha.c (alpha_expand_prologue): Use it. - Tweek FRP marking of VMS prologue insns. - * config/alpha/vms.h (EPILOGUE_USES): New. - -2001-08-02 Richard Henderson - - * Makefile.in, mklibgcc.in: Revert mkinstalldirs change. - -2001-08-02 Lars Brinkhoff - - * combine.c, config.gcc, cse.c, defaults.h, real.c, reload.c, - simplify-rtx.c, config/alpha/alpha.h, config/avr/avr.h, - config/convex/convex.h, config/d30v/d30v.c, - config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, - config/elxsi/elxsi.h, config/fr30/fr30.h, config/m88k/m88k.c, - config/mips/mips.h, config/mn10200/mn10200.h, - config/mn10300/mn10300.h, config/pdp11/pdp11.md, - config/v850/v850.h, config/vax/openbsd.h, - config/vax/openbsd1.h, config/vax/ultrix.h, - config/vax/vax-protos.h, config/vax/vax.c, config/vax/vax.h, - config/vax/vax.md, config/vax/vaxv.h, config/vax/xm-vms.h, - cp/decl2.c, doc/contrib.texi, doc/cpp.texi, doc/gcc.texi, - doc/install.texi, doc/invoke.texi, doc/md.texi, doc/rtl.texi, - doc/tm.texi: consistently use "VAX", "VAXen", and "MicroVAX" - in comments and documentation. - -2001-08-03 Neil Booth - - * line-map.c: New. - * line-map.h: New. - * Makefile.in (line-map.o): New. - (LIBCPP_OBJS, LIBCPP_DEPS): Update. - * c-lex.c (cb_file_change): Update for new cpp_file_change structure. - * cpperror.c (print_containing_files): Similarly. - (print_location): Update. Don't output a space before _Pragma. - * cppfiles.c (stack_include_file): Set to line 1 immediately. - (stack_include_filee, cpp_make_system_header): Update. - (_cpp_execute_include): Get logical line number right for calling - as-yet-unterminated #include. - * cpphash.h (struct cpp_reader): Add line_maps. - (_cpp_do_file_change): Update. - * cppinit.c (cpp_create_reader): Initialize line maps. - (cpp_destroy): Destroy line maps. - (cpp_start_read): Get logical line number right. - * cpplex.c (parse_string): Only warn once for multi-line strings. - Use boolean variable for null warning. - * cpplib.c (_cpp_handle_directive): End the directive if it isn't - already. - (do_include_common): End the directive early. - (do_line): Don't warn about out-of-range lines in preprocessed - source. Update. Remove unused variables. - (_cpp_do_file_change): Update for new line mapping. - (pragma_cb): New typedef. - (cpp_register_pragma): Stop looking ahead before calling the - handler. Clean up. - (do_pragma_system_header): End directive early. - (cpp_get_line_maps): New. - (cpp_pop_buffer): Fudge logical line. Update. - * cpplib.h: Include line-map.h - (enum cpp_fc_reason): Remove. - (struct cpp_file_change): Update. - (cpp_get_line_maps): New. - * cppmain.c (struct_printer): New member map. - (cb_file_change): Update for new mappings. - * fix-header.c (cb_file_change): Similarly. - -2001-08-02 Nick Clifton - - * Makefile.in (libgcc.mk): Define mkinstalldirs. - * mklibgcc.in: Use mkinstalldirs instead of mkdir. - -2001-08-02 Lars Brinkhoff - - * config/vax/vax.c: include expr.h. - -2001-08-02 Nick Clifton - - * Makefile.in ($(srcdir)/configure): Only rebuild in - maintainer mode. - ($(srcdir)/config.in): Only define in maintainer mode. - ($(srcdir)/cstamp-h.in): Only define in maintainer mode. - -2001-08-02 David Edelsohn - - * doc/install.texi (Install GCC: Binaries): Update Bull info. - -2001-08-02 Rainer Orth - - * gcc.c (set_collect_gcc_options): New function, split out from - main. - Ignore elided switches. - (do_spec_1): Invoke before executing command. - (set_input): Export. - Move declaration ... - * gcc.h (set_input): ... here. - * config/alpha/osf.h (ASM_FINAL_SPEC): Use %U.s to refer to input - file. - -2001-08-02 Nathan Sidwell - - Kill -fhonor-std. - * doc/c-tree.texi (Namespaces): Remove std & -fhonor-std - interaction. - * doc/invoke.texi (C++ Dialect Options): Remove -fno-honor-std. - -2001-08-02 Richard Sandiford - - * mips.md (movdicc): Make conditional on TARGET_64BIT. Likewise - for the unnamed instructions it expands to. - -2001-08-02 Richard Henderson - - * regclass.c (call_really_used_regs): Conditionally define. - (init_reg_sets_1): Don't use it if not defined. - (fix_register): Similarly, don't set it. - -2001-08-01 Gerald Pfeifer - - * params.def (PARAM_MAX_INLINE_INSNS): Change default to 600. - Correct comment that had been missed in the previous change. - -2001-08-01 Stan Shebs - - * config/darwin.c (machopic_stub_name): Try matching by name. - (update_stubs): New function. - (darwin_encode_section_info): Call it and update_non_lazy_ptrs - unconditionally. - -2001-08-01 Richard Henderson - - * except.c (output_function_exception_table): Use assemble_align. - * varasm.c (assemble_eh_label): Remove. - (assemble_eh_align, assemble_eh_integer): Remove. - -2001-08-01 Robert Lipe - - * dwarfout.c: Remove reference to README.DWARF. - -2001-08-01 Andrew MacLeod - - * regclass.c (call_really_used_regs): New array for registers which - are actually used by a call. - (init_reg_sets_1): Initialize regs_invalidated_by_call with the - new array. - (fix_register): Set call_really_used too. - * config/ia64/ia64.h (CALL_REALLY_USED_REGISTERS): Initialize. - * doc/tm.texi (CALL_REALLY_USED_REGISTERS): Document. - -2001-08-01 Richard Henderson - - * read-rtl.c (read_name): Consider \r whitespace. - -2001-07-11 Andrew Cagney - - * config.gcc: Recognize powerpc-*-netbsd*. - - * doc/install.texi (Host/target specific installation notes for - GCC): Mention powerpc-*-netbsd*. - - * config/rs6000/netbsd.h: New file. - (STANDARD_STARTFILE_PREFIX, LINK_SHLIB_SPEC): Redefine. - (LIB_DEFAULT_SPEC, STARTFILE_DEFAULT_SPEC): Redefine. - (ENDFILE_DEFAULT_SPEC, LINK_START_DEFAULT_SPEC): Redefine. - (LINK_OS_DEFAULT_SPEC, CPP_OS_DEFAULT_SPEC): Redefine. - (TARGET_VERSION): Redefine. - - * config/rs6000/t-ppccomm (MULTILIB_MATCHES_SYSV): Recognize - mcall-netbsd as a match for mcall-sysv. - (EXTRA_MULTILIB_PARTS): Add ncrti$(objext) and ncrtn$(objext). - (ncrti.S, ncrtn.S): New targets. - ($(T)ncrti$(objext), $(T)ncrtn$(objext)): New targets. - - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Recognize - "netbsd' as a V4 ABI. - (ASM_SPEC): Check for -mcall-netbsd. - (CC1_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC): Ditto. - (CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC): Ditto. - (LIB_SPEC, ENDFILE_SPEC): Ditto. - (LIB_NETBSD_SPEC, STARTFILE_NETBSD_SPEC): Define. - (ENDFILE_NETBSD_SPEC, LINK_START_NETBSD_SPEC): Define. - (LINK_OS_NETBSD_SPEC, CPP_OS_NETBSD_SPEC): Define. - (SUBTARGET_EXTRA_SPECS): Add NetBSD specs. - - * doc/invoke.texi (Option Summary): Add -mcall-netbsd. - (RS/6000 and PowerPC Options): Mention -mcall-netbsd. - -2001-08-01 Mark Kettenis - - * unwind-pe.h (base_of_encoded_value, read_encoded_value): Define - only if NO_BASE_OF_ENCODED_VALUE isn't defined. - * unwind-dw2-fde.c (NO_BASE_OF_ENCODED_VALUE): Define before - including "unwind-pe.h". - -Wed Aug 1 20:01:42 CEST 2001 Jan Hubicka - - * rs6000.md (define_splits): Kill unused constraints. - -Wed Aug 1 20:02:12 CEST 2001 Graham Stott - Jan Hubicka - - * function.c (thread_prologue_and_epilogue_insns): Kill code - dealing with non-existent CFG. - -2001-08-01 Kazu Hirata - - * alias.c: Fix comment formatting. - * bitmap.c: Likewise. - * builtins.c: Likewise. - * calls.c: Likewise. - * c-common.c: Likewise. - * c-decl.c: Likewise. - * c-dump.c: Likewise. - * c-lex.c: Likewise. - * collect2.c: Likewise. - * combine.c: Likewise. - * conflict.c: Likewise. - * cppfiles.c: Likewise. - * cppinit.c: Likewise. - * cpplex.c: Likewise. - * cpplib.c: Likewise. - * cppmacro.c: Likewise. - * cppspec.c: Likewise. - * c-pragma.c: Likewise. - * crtstuff.c: Likewise. - * cse.c: Likewise. - * cselib.c: Likewise. - * c-semantics.c: Likewise. - * c-typeck.c: Likewise. - -2001-08-01 H.J. Lu - - * config/mips/linux.h (ASM_OUTPUT_IDENT): Defined. - -2001-08-01 H.J. Lu - - * gcc/config/mips/linux.h (ASM_OUTPUT_SOURCE_LINE): Defined. - -2001-08-01 Ziemowit Laski - - * c-parse.in (OBJC_NEED_RAW_IDENTIFIER): Define macro and flag for - contextualizing Objective-C class name lookup by the lexer. - (typespec_reserved_nonattr): Disable ObjC class name lookup after - seeing a TYPESPEC. - (protocoldef): Add support for forward @protocol declarations. - (yylexname): Suppress ObjC class name lookup in certain contexts; - re-enable after lookup is complete. - (_yylex): Re-enable ObjC class name lookup when certain - punctuation marks are seen. - - * objc/objc-act.c (check_protocol_recursively): New function used - for finding circular dependencies in protocols. - (objc_declare_protocols): New function for handling forward - @protocol declarations. - (receiver_is_class_object): Detect the case when 'self' is used - inside of a class method. - (build_message_expr): Issue a warning if class method is desired - but instance method is found instead. - (conforms_to_protocol): Streamline. - (objc_comptypes): Detect the fact that 'Bar foo' conforms to - protocol Foo, even if 'Bar foo' does not. - (check_protocols): Streamline. - (start_protocol): Add checks for circular and duplicate protocol - definitions. - (encode_aggregate_within): For typedefs of structs, encode the - underlying struct. - * objc/objc-act.h (PROTOCOL_DEFINED): New tree accessor. - (objc_declare_protocols): New prototype. - -2001-08-01 Neil Booth - - * cpphash.h (struct cpp_reader): New members line, pseudo_newlines. - * cpplex.c (handle_newline): Update prototype. Maintain logical - line number. - (skip_escaped_newlines, skip_block_comment, parse_string): - Update accordingly. - (_cpp_lex_token): Update, and store token position within the token. - * cpplib.h (struct cpp_token): Add line and column entries. - * cppmacro.c (replace_args): Position stringified tokens correctly. - -2001-08-01 Andreas Jaeger - - * basic-block.h: Add prototype for last_loop_beg_note. - -2001-07-31 Alexandre Petit-Bianco - - * expr.c (safe_from_p): Use WITH_CLEANUP_EXPR_RTL instead of - RTL_EXPR_RTL while handling WITH_CLEANUP_EXPR nodes. Fixed typo in - comment. - (expand_expr): Use WITH_CLEANUP_EXPR_RTL instead of RTL_EXPR_RTL - while handling WITH_CLEANUP_EXPR node. Use second operand calling - expand_decl_cleanup. - * tree.c (firt_rtl_op): The third operand of WITH_CLEANUP_EXPR is - the first RTX. - (simple_cst_equal): WITH_CLEANUP_EXPR node to use its second - operand while calling simple_cst_equal. - * tree.def (WITH_CLEANUP_EXPR): Switched operands: the second - operand is the cleanup expression, the third is the RTL_EXPR. - * tree.h (WITH_CLEANUP_EXPR_RTL): New macro. - -2001-07-31 Jeff Sturm - - * except.c (duplicate_eh_regions): Test n_array[i] for NULL. - -2001-07-31 matthew green - - * config.gcc (i386-*-netbsdelf): New description. - * config/i386/netbsd-elf.h: New file. - -2001-07-30 Geoffrey Keating - - * loop.c (check_dbra_loop): Use single_set to compute - jump_label. - -2001-07-31 Daniel Berlin - - PowerPC reorg and support for powerpc64-*-linux*. - - Also fixes emitting of constants on 32 bit and 64 bit - platforms. - - * config.gcc: powerpc64-*-linux* is a new target. - Things that needed aix.h now also include xcoff.h - - * config/rs6000/rs6000.h: Split XCOFF specific stuff into - xcoff.h. - Move AIX specific stuff into aix.h. - (TARGET_AIX): Renamed to TARGET_XCOFF, since the AIX ABI is used - with more than just XCOFF now. - (SET_ASM_OP): Remove, now defined where needed. - (FUNCTION_PROLOGUE): New macro definition. - (FUNCTION_EPILOGUE): New macro definition. - (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): New macro definition. - - * config/rs6000/xcoff.h: New file. - - * config/rs6000/linux64.h: New file. - - * config/rs6000/darwin.h: Copy needed AIX alignment definitions. - -2001-07-31 Alan Modra - - * rs6000.c (print_operand_address): Handle ELF syntax. - (output_toc): Simplify. Use DOUBLE_INT_ASM_OP. - * rs6000.md (load_toc_aix_di): Handle ELF syntax. - * rs6000.h (ASM_OUTPUT_DOUBLE_INT, ASM_LONG): Use DOUBLE_INT_ASM_OP. - -2001-07-31 David Edelsohn - - * rs6000.c (rs6000_override_options): Only disable - flag_function_sections for XCOFF. - (exact_log2_cint_operand): New predicate. - (reg_or_{add,sub}_cint64_operand): New predicates. - (add_operand): Compare CONST_INT with fewer function calls. - (rs6000_emit_set_const, rs6000_emit_set_long_const): New functions. - (print_operand, case 'p'): Ensure positive operand. - (rs6000_emit_load_toc_table): No load_toc_v4_pic_di. - * rs6000.h (CONST_OK_FOR_LETTER_P, case 'N'): Ensure positive value. - (PREDICATE_CODES): Add new predicates. - * rs6000.md (addsi3): Split 32-bit constants more correctly. - (divsi3, modsi3): Ensure positive power-of-2. - (adddi3): Use new predicate. Split 32-bit constants more - correctly. Re-arrange splitter to handle any constant. - (subdi3): Use new predicate. - (divdi3, moddi3): Ensure positive power-of-2. - (movdi): Use rs6000_emit_set_const. - (load_toc_v4_pic_di): Delete. - -2001-07-31 Graham Stott - - * function.c (pad_below): Revert 2001-07-26 patch. - -Tue Jul 31 15:37:35 CEST 2001 Jan Hubicka - - * reg-stack (convert_regs_1): Fix best edge condition. - -Tue Jul 31 15:33:27 CEST 2001 Jan Hubicka - - * jump.c (duplicate_loop_exit_test): Better test for jumps - entering the loop; create loop pre_header. - -2001-07-31 Hartmut Penner - - * doc/install.texi: Add s390 and s390x as new targets. - * doc/invoke.texi: Add documentation of S/390 and zSeries - target options. - * doc/md.texi: Add documentation of S/390 and zSeries constraints. - -2001-07-30 Roman Zippel - - * config/m68k/m68k.md: Replace all general_operand with - nonimmediate_operand for all destinations. - * config/m68k/m68k.c (not_sp_operand): Likewise. - -Mon Jul 30 23:20:34 EDT 2001 John Wehle (john@feith.com) - - * flow.c (merge_blocks): Return 1 if an extra jump is inserted. - -2001-07-30 Richard Henderson - - * config/ia64/ia64.h (DEBUG_RANGES_SECTION): New. - * config/mips/iris6.h (DEBUG_RANGES_SECTION): New. - -2001-07-30 Roman Zippel - - * config/m68k/m68k.h (TARGET_SWITCHES/TARGET_OPTIONS): - Add missing doc strings - * config/m68k/linux-aout.h (SUBTARGET_SWITCHES): Likewise - * config/m68k/linux.h (SUBTARGET_SWITCHES): Likewise - -Mon Jul 30 22:16:08 CEST 2001 Jan Hubicka - - * i386.c (ix86_output_main_function_alignment_hack): New function. - (TARGET_ASM_FUNCTION_PROLOGUE): Default to it. - - * flow.c (mark_dfs_back_edges): Move from loop_p ; mark back - edges by EDGE_DFS_BACK flag. - (dump_edge_info): Add dfs_back flag. - * basic-block.h (EDGE_DFS_BACK): New constant. - (mark_dfs_back_edges): Declare. - * alias.c (loop_p): Remove. - (mark_constant_function): Use mark_dfs_back_edges. - - * reg-stack.c (block_info_def): Add predecessors counter and stack_out. - (reg_to_stack): Call mark_dfs_back_edges; count the predecessors. - (compensate_edge): Break out from ... - (convert_regs_1): ... here; do smart choosing of stack_out to copy. - (convert_regs_2): Set block_done once block is really done; - Do updating of the predecessors counts. - - * toplev.c (rest_of_compilation): Recompute block_for_insn - before post-reload cfg_cleanup. - * function.c (thread_prologue_epilogue_insns): - Call set_block_for_new_insns when emitting prologue directly. - -2001-07-30 Andreas Jaeger - - * jump.c: Add prototype for mark_modified_reg. - - * cse.c (set_live_p): Add unused attribute. - - * gcov.c (calculate_branch_probs): Use gcov_type to avoid - overflow. - (scan_for_source_files): Use long for count to avoid overflow. - (output_data): Likewise. - (output_data): Don't use string concatatenation to silence gcc - -traditional. - - * predict.c: Fix typos and grammar. - - * gcse.c (insert_insn_end_bb): Remove unused variables. - -Mon Jul 30 21:54:53 CEST 2001 Jan Hubicka - - * flow.c (mark_set_1): Use REG_FREQ_FROM_BB. - (attempt_auto_inc): LIkewise. - (mark_used_reg): Likewise. - (try_pre_increment_1): Likewise. - * regclass.c (regclass): Likewise. - * global.c (allocno_compare): Update comment; change scaling factor. - * local-alloc.c (QTY_CMP_PRI): Likewise. - * regs.h (REG_FREQ_FROM_BB): New. - (REG_FREQ_MAX): Likewise. - -2001-07-30 H.J. Lu - - * config/mips/linux.h (CPLUSPLUS_CPP_SPEC): Add - -D_GNU_SOURCE. - -2001-07-30 H.J. Lu (hjl@gnu.org) - - * config/mips/linux.h (ASM_DECLARE_FUNCTION_NAME): Defined. - (ASM_DECLARE_FUNCTION_SIZE): Likewise. - (FUNCTION_NAME_ALREADY_DECLARED): Likewise. - -2001-07-30 Nick Clifton - - * config/arm/t-arm-elf (MULTILIB_EXCEPTIONS): Skip -mthumb as well - as -mthumb-interwork when -mcpu=arm7 is specified. - -Mon Jul 30 17:44:43 CEST 2001 Jan Hubicka - - * predict.def (noreturn, loop branch, loop exit): Mark as first - match heuristics. - -Mon Jul 30 12:52:11 CEST 2001 Jan Hubicka - - * combine.c (try_combine): Avoid barrier after noop jumps. - -2001-07-29 Neil Booth - - * cpphash.h (struct cpp_reader): Remove import_warning. - * cpplib.c (skip_rest_of_line): Don't bother turning off - macro expansion. - (parse_include): Move include handling to... - (do_include_common): ... here. Move import warning from... - (do_import): ... here. - (do_pragma_poison): Don't do a callback for poison identifiers. - * cpplib.h (struct cpp_callbacks): Don't do poison callbacks. - * cppmain.c (setup_callbacks): Similarly. - -Sun Jul 29 23:26:50 CEST 2001 Jan Hubicka - - * rtlanal.c (parms_set, find_first_parameter_load): Break out from...; - handle multiple sets. - * except.c (sjlj_mark_call_sites): .... here. - * gcse.c (insert_insn_end_bb): Use find_first_parameter_load. - -Sun Jul 29 21:38:45 CEST 2001 Jan Hubicka - - Suggested by Richard Henderson and Richard Kenner: - * combine.c (recog_for_combine): Use the fake recog - only if instruction does not match. - * rtl.h (NOOP_MOVE_INSN_CODE): New. - * rtlanal.c (noop_move_p): Always return 1 for NOOP_MOVE_INSN_CODE. - - * combine.c (try_combine): Discover noop jump as direct jump. - -2001-07-29 Daniel Berlin - - * df.c (df_rd_global_compute): Add successors to worklist, not - current item. - (df_ru_global_compute): Ditto. - -2001-07-27 Daniel Berlin - - * regclass.c (reg_scan_mark_refs): Increment REG_N_REFS when we - increment REG_N_SETS. - -2001-07-26 Daniel Berlin - - * sbitmap.h: New prototype for sbitmap_a_xor_b. - - * sbitmap.c (sbitmap_a_xor_b): New function. - ifdef the basic block stuff on IN_GCC. - -2001-07-29 Neil Booth - - * cppexp.c (parse_defined): Always record the macro name. - (lex): Don't worry about identifiers, or special-case - CPP_NOT here. - (_cpp_parse_expr): Figure out at the end of the routine - whether we saw a valid !defined() expression. - * cppfiles.c (stack_include_file): Update for mi_valid. - (_cpp_pop_file_buffer): Similarly. - * cpplex.c (_cpp_lex_token): Similarly. - * cpphash.h (enum mi_state, enum mi_ind, mi_state, - mi_if_not_defined, mi_lexed): Remove. - (mi_valid): New. - * cpplib.c (do_if): Simplify. - (do_endif, push_conditional, _cpp_handle_directive): Update - for renaming of mi_state to mi_valid. -doc: - * cpp.texi: Add index entries for digraphs, and add comment - that C++ refers to them as alternative tokens. - -Sun Jul 29 18:59:13 CEST 2001 Jan Hubicka - - * basic-block.h (CLEANUP_PRE_LOOP): New. - * except.c (finish_eh_generation): Update call of cleanup_cfg. - * sibcall.c (optimize_sibling_calls): Likewise. - * toplev.c (rest_of_compilation): Likewise. - * flow.c (try_forward_edges): Take argument MODE; - do not forward over loop pre-headers if CLEANUP_PRE_LOOP. - (try_optimize_cfg): Update call of try_forward_edges. - -Sun Jul 29 18:59:56 CEST 2001 Roman Zippel - Jan Hubicka - - * (validate_replace_rtx_1): Fix simplification of MINUS. - -2001-07-29 Neil Booth - - PR preprocessor/3669 - * cppinit.c (init_dependency_output): Turn off dump requests - if sending dependencies to stdout. - -2001-07-28 Richard Henderson - - * flow.c (life_analysis): Elide PROP_ALLOW_CFG_CHANGES if - not optimizing. - -2001-07-28 Golubev I. N. - - * config/i386/sco5.h (DWARF2_DEBUGGING_INFO): Define. - -2001-07-28 Kazu Hirata - - * config/h8300/h8300.h (ENCODE_SECTION_INFO): Check to see if DECL - is VAR_DECL first to prevent an ICE. - -2001-07-28 Richard Henderson - - * varasm.c (immed_real_const_1): Don't elide special cases for - nested functions. - (clear_const_double_mem): Clear const_tiny_rtx too. - -2001-07-28 Richard Henderson - - * dwarf2out.c (dw_val_class_offset): New. - (struct dw_ranges_struct, dw_ranges_ref): New. - (ranges_table, ranges_table_allocated): New. - (ranges_table_in_use, RANGES_TABLE_INCREMENT): New. - (add_AT_offset, add_ranges, output_ranges): New. - (print_die, output_die): Handle dw_val_class_offset. - (attr_checksum, size_of_die, value_format): Likewise. - (gen_lexical_block_die): Handle non-contiguous blocks. - (gen_block_die): Likewise. - (dwarf2out_finish): Add a DW_AT_entry_pc to the compilation unit - if needed. Dump the ranges table. - * final.c (final_start_function): Remove unnecessary notes and - rebuild the block tree before numbering the blocks. - * function.c (reorder_blocks_0): Walk the existing block tree - to unmark all blocks. - (reorder_blocks_1): Create block fragments when duplicate block - notes are seen. - (reorder_fix_fragments): New. - (reorder_blocks): Call it. - * tree.h (BLOCK_FRAGMENT_ORIGIN, BLOCK_FRAGMENT_CHAIN): New. - -2001-07-28 Richard Henderson - - * emit-rtl.c (adjust_address): Make a copy of the memory address. - -2001-07-28 Richard Henderson - - * flow.c (add_to_mem_set_list): New function. - (init_propagate_block_info): Use it. - (mark_set_1): Likewise. - (insn_dead_p): Canonicalize memory address for dead store - comparison. Allow wider mode stores to kill narrower mode stores. - (invalidate_mems_from_autoinc): Use invalidate_mems_from_set. - (invalidate_mems_from_set): Don't handle MEMs. - -2001-07-28 Kazu Hirata - - * config/h8300/h8300.h: Fix formatting. - -Sat Jul 28 23:35:22 CEST 2001 Jan Hubicka - - * basic-block.h (EDGE_FREQUENCY): New macro. - * bb-reorder (fixup_reorder_chain): Set counts and frequencies - for new BB/edges. - * flow.c (find_sub_basic_blocks): Likewise. - (try_crossjump_to_edge): Likewise; use EDGE_FREQUENCY - (redirect_edge_and_branch): Use EDGE_FREQUENCY. - - * predict.c (DEF_PREDICTOR): New argument FLAGS. - (HITRATE): New macro. - (PRED_FLAG_FIRST_MATCH): New constant. - (predictor_info): New field flgags. - (combine_predictions_for_insn): Use DS theory to combine - probabilities; set the edge probabilities when finished. - (estimate_probability): Avoid duplicated matches - of LOOP_BRANCH heuristics for nested loops; update comment. - * predict.def: Add flags for each prediction, set probabilities - according to B&L paper. - * predict.h (DEF_PREDICTOR): New argument FLAGS. - - * profile.c (compute_branch_probabilities): Cleanup way the edge - probabilities are computed and REG_BR_PROB notes are dropped; if - values does not match, emit error. - (init_branch_prob): Do error instead of warning when profile driven - feedback is missing or corrupt. - -2001-07-27 DJ Delorie - - * ifcvt.c (noce_get_alt_condition): If the condition is a compare - against a constant, try to adjust the compare to have the desired - constant in it so that min/max optimizations happen more often. - -Fri Jul 27 17:53:00 CEST 2001 Jan Hubicka - - * flow.c (last_loop_beg_note): New function. - (redirect_edge_and_branch): Use it. - (split_edge): Likewise. - - * alias.c (loop_p): Avoid uninitialized memory access. - - * flow.c (try_forward_edges): Avoid accessing freed memory. - - * flow.c (backward_edge_of_syntactic_loop_p): Avoid uninitialized - variable access. - -2001-07-26 Andrew Haley - Joern Rennecke - - * config/sh/linux.h (CPP_DEFAULT_CPU_SPEC): New. - (SUBTARGET_CPP_ENDIAN_SPEC): New. - (SUBTARGET_CPP_SPEC): New. - (CPP_SPEC): Remove. - * config/sh/sh.h (SUBTARGET_CPP_ENDIAN_SPEC): New. - (SUBTARGET_CPP_PTR_SPEC): New. - (CPP_DEFAULT_CPU_SPEC): New. - (EXTRA_SPECS): Add SUBTARGET_CPP_ENDIAN_SPEC, - SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. - (CPP_SPEC): Break out parts into SUBTARGET_CPP_ENDIAN_SPEC, - SUBTARGET_CPP_PTR_SPEC, and CPP_DEFAULT_CPU_SPEC. - (SUBTARGET_CPP_SPEC): Define as an empty string. - -2001-07-27 Gerald Pfeifer - - * doc/install.texi (Configuration): Properly link the host - specific instructions also when generating HTML. - -Fri Jul 27 00:33:35 EDT 2001 John Wehle (john@feith.com) - - * flow.c (redirect_edge_and_branch_force): Test - target->global_live_at_start. - -2001-07-26 Richard Henderson - - * simplify-rtx.c (avoid_constant_pool_reference): Export. - * rtl.h (avoid_constant_pool_reference): Declare it. - * dwarf2out.c (add_location_or_const_value_attribute): Use it. - (add_const_value_attribute): Use add_AT_unsigned for unsigned values. - -Thu Jul 26 22:30:22 CEST 2001 Jan Hubicka - - * rtl.h (cleanup_barriers): Declare. - * jump.c (cleanup_barriers): New function. - * toplev.c (rest_of_compilation): Call cleanup_barriers - before loop optimizer and after bb_reorder. - - * flow.c (back_edge_of_syntactic_loop_p): New. - (split_edge): Use it. - -2001-07-26 Rainer Orth - - * glimits.h (_MACH_MACHLIMITS_H_): Delete. - -Thu Jul 26 22:22:21 2001 Denis Chertykov - - * cse.c (cse_process_notes): Replace any registers if the address - remains valid. - -Thu Jul 26 14:04:03 EDT 2001 John Wehle (john@feith.com) - - * basic-block.h (PROP_ALLOW_CFG_CHANGES): Define. - (PROP_FINAL): Include PROP_ALLOW_CFG_CHANGES. - (propagate_block): Update prototype. - * flow.c (update_life_info): Simplify the CFG and - recalculate the global regs which are alive when - removing dead code during a global update. - (propagate_block): Return nonzero if an INSN is - deleted. - -2001-07-26 Rainer Orth - - * Makefile.in (LIBICONV): Define. - -2001-07-26 Catherine Moore - - * config/v850/v850.h (ENCODE_SECTION_INFO): Change order - of conditional to avoid tree checking errors. - -2001-07-26 Kazu Hirata - - * regmove.c (regmove_optimize): Don't replace a reg with - another reg of a different mode. - -2001-07-26 Andrew MacLeod - - * params.def (PARAM_MAX_PENDING_LIST_LENGTH): Add parameter to - limit length of dependency flush list. - * params.h (MAX_PENDING_LIST_LENGTH): Define. - * sched-int.h (struct deps): Add pending_flush_length field. - * sched-deps.c (flush_pending_lists): Last_pending_memory_flush now - has 1 element in it. - (sched_analyze_1): Use MAX_PENDING_LIST_LENGTH. - (sched_analyze): After a jump, if the pending memory flush list is too - large, flush the pending lists. - (init_deps): Initialize pending_flush_length to 0. - * doc/invoke.texi (max_pending_list_length): Document parameter. - -2001-07-26 Neil Booth - - * toplev.c, varasm.c, final.c: Include xcoffout.h if appropriate. - * dbxout.c (dbxout_global_decl): Move outside #ifdef. - * Makefile.in (varasm.o, final.o, toplev.o): Update dependencies. - -2001-07-26 Neil Booth - - * cpphash.h (struct_lexer_state): Delete was_skipping. - Move skipping here from struct cpp_reader. - * cpplex.c (parse_identifier): Update. - (_cpp_lex_token): Don't skip tokens in a directive. - * cpplib.c (struct if_stack): Update. - (start_directive, end_directive): Don't change skipping state. - (_cpp_handle_directive): Update. - (do_ifdef, do_ifndef, do_if, do_elif): Similarly. - (do_else, do_endif): Update; only check for excess tokens if not - in a skipped conditional block. - (push_conditional): Update for new struct if_stack. - -2001-07-26 Graham Stott - - * function.c (locate_and_pad_parm): Also pad initial offset - so that the total argument size also includes the padding. - -2001-07-26 Graham Stott - - * gensupport.c (alter_output_for_insn): Correct enable checking failure - change XSTR to XTMPL. - - (process_one_cond_exec): Likewise - -2001-07-25 Richard Henderson - - * varasm.c (assemble_variable): Create DECL_RTL before setting - TREE_ASM_WRITTEN. - -Thu Jul 26 00:19:30 CEST 2001 Jan Hubicka - - * predict.c (estimate_probability): Avoid duplicated predictions. - - * loop.c (find_and_verify_loops): Grok multiple barriers. - -Wed Jul 25 18:00:05 2001 Richard Kenner - - * config/alpha/alpha.c (print_operand, case '/'): Don't write '/'. - - * dbxout.c: Consistently use putc instead of fputc. - (print_wide_int): New function; call instead of direct fprintf. - (dbxout_type_index): Adjust calls of CHARS to be more accurate. - (dbxout_type_fields, dbxout_type_method_1): Likewise. - (dbxout_type_methods, dbxout_range_type, dbxout_type): Likewise. - (print_int_cst_octal): Likewise. - (print_octal): Show we wrote characters. - (dbxout_type): Set have_used_extensions in more places. - -2001-07-25 Catherine Moore - - * config/v850/v850.c (v850_va_arg): Use addr - instead of valist to build incr. - -Wed Jul 25 22:48:59 CEST 2001 Jan Hubicka - - * flow.c (delete_dead_jumptables): New function. - (life_analyzis): Call it. - * bb-reorder.c (skip_insns_after_block): Handle contradictory - sequences. - -2001-07-25 Richard Henderson - - * except.c (reachable_handlers): Handle a region being removed - out from under a RESX. - -2001-07-25 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_conditional_move): Always - swap GE/GT if it is an fp comparison. - -2001-07-25 Andrew Haley - - * alias.c (rtx_equal_for_memref_p): Allow strings as types in - operands. - -Wed Jul 25 08:25:01 2001 Jeffrey A Law (law@cygnus.com) - - * ssa.c (rename_insn_1): Do not wrap an assignment to a - paradoxical SUBREG inside a SEQUENCE. Fix minor formatting - glitch. - - * ssa-ccp.c (visit_expression): Handle CALL_INSNs that can - throw an exception. - (visit_expression): When attempting to simplify an expression, - retrieve any modes for arguments before they are simplified - to constants. - -2001-07-25 Andrew MacLeod - Janis Johnson - - * stmt.c (expand_goto): A nonlocal goto can be a call too. - * builtins.c (expand_builtin_longjmp): Reverse label and static chain - pointer parameters to match documented usage of nonlocal_goto. - * config/ia64/ia64.md (nonlocal_goto): Revert label and static chain - parameters to their correct order. - * config/sparc/sparc.md (nonlocal_goto): Revert label and static chain - parameters to their correct order. - -2001-07-25 Andrew MacLeod - - * config/ia64/ia64.h (STRIP_NAME_ENCODING): Strip out '*' as well. - -2001-07-25 Jan Hubicka - Richard Henderson - - * flow.c (find_sub_basic_blocks): Fix handling of the last BB in - the sequence. - (make_edges): New argument update_p; populate the edge cache if set. - (find_basic_blocks): Update make_edges invocation. - -2001-07-24 Joel Sherrill - - * config/i960/i960.h (CPP_SPEC): Define _SOFT_FLOAT for -msoft-float. - -2001-07-24 Joel Sherrill - - * config/sparc/rtems.h (CPP_PREDEFINES): Remove redundant - -Acpu and -Amachine.h. - * config/sparc/rtemself.h (CPP_PREDEFINES): Likewise. - Corrected header to say ELF not a.out. - * config/sparc/sparc.h (CPP_CPU_SPEC): Define _SOFT_FLOAT - when given -msoft-float. - -2001-07-24 Joel Sherrill - - * config.gcc (arm*-*-rtems*): Include crtinit.o and crtfini.o as - extra multilib parts like arm-elf. - (i960-*-coff*, i960-*-rtems): Should not use collect2. - (m68020-*-elf*, m68k-*-elf*, m68k-*-rtems*): Include crtinit.o and - crtfini.o as extra multilib parts. - -2001-07-24 Joel Sherrill - - * configure.in: Add rtems as a supported thread model. - * gthr-rtems.h: Add missing entry point __gthread_active_p. - * configure: Rebuilt. - -2001-07-24 Lars Brinkhoff - - * stor-layout.c (get_mode_alignment): make it work when - BITS_PER_UNIT is not a power of two. - * builtins.c (get_pointer_alignment): Likewise. - -2001-07-24 Richard Henderson - - * simplify-rtx.c (avoid_constant_pool_reference): Coerce - the retrieved constant into the expected mode. - -Wed Jul 25 01:41:27 CEST 2001 Jan Hubicka - - * flow.c (try_simplify_condjump): Avoid duplicated edges. - (verify_flow_info): Check for duplicated edges; clarify - error reporting. - - * flow.c (block_label): Update basic_block_for_insn. - (commit_edge_insertions): Call compute_bb_for_insn. - - * flow.c (purge_dead_edges): Handle conditional jumps and conditional - returns too. - - * flow.c (redirect_edge_and_branch, - try_optimize_cfg): Use redirect_edge_succ_nodup - (redirect_edge_succ_nodup): New. - * basic_block.h (redirect_edge_succ_nodup): Declare. - - * toplev.c (rest_of_compilation): Rebuild CFG before cfg_cleanup - after gcse. - -Wed Jul 25 00:32:49 CEST 2001 Jan Hubicka - - * flow.c (try_forward_edges): Accept fallthru edge; Update comment. - (try_crossjump_to_edge): Update commetns. - (try_crossjump_bb): Likewise. - -2001-07-24 Richard Henderson - - * combine.c (distribute_notes): Move set of need_refresh - for noop_move_p down to catch all cases. - -Tue Jul 24 20:32:44 CEST 2001 Jan Hubicka - - * recog.c (split_all_insns_noflow): New. - * rtl.h (split_all_insns_noflow): Declare. - * ia64.c (ia64_reorg): Use split_all_insns_noflow. - * m68hc11.c (m68hc11_reorg): Likewise. - * sh.c (machine_dependent_reorg): Likewise. - * toplev.c (rest_of_compilation): Likewise for last split_all_insns - call. - -2001-07-18 Andrew Haley - - * config/sh/sh.md (ashlsi3_std splitter): Split only after reload. - (ashlsi3_n splitter): Likewise. - (lshrsi3_n splitter): Likewise. - - (GOTaddr2picreg): Make const SImode. - (sym_label2reg): Likewise. - (symGOT2reg): Likewise. - (symGOTOFF2reg) Likewise. - - (casesi_worker_0): Make unspec SImode. - -2001-07-18 Andrew Haley - - * config/sh/sh.c (barrier_align): Check that an operand really is - an insn before extracting its INSN_CODE. - -2001-07-24 Andrew Haley - - * config/sh/sh.h (OVERRIDE_OPTIONS): Add braces to get rid of - dangling else. - - * config/sh/sh.h (INITIALIZE_TRAMPOLINE): Truncate operands - for SImode to prevent overflow. - -2001-07-24 Rainer Orth - - * config/mips/irix6-libc-compat.c: New file. - * config/mips/t-iris6 (LIB2FUNCS_STATIC_EXTRA): Use it. - * doc/install.texi (Specific, mips*-sgi-irix6): Mention structure - passing workaround. - -2001-07-24 lars brinkhoff - - * rtl.texi (REG_POINTER): Document. - (Machine Modes): Document BImode, OImode, PQImode, PHImode, - QFmode, HFmode, TQFmode, QCmode, and HCmode. - -Tue Jul 24 10:49:40 CEST 2001 Jan Hubicka - - * flow.c (delete_noop_moves): Do not confuse libcall regions. - -2001-07-23 Richard Henderson - - * flow.c (try_simplify_condjump): Use tidy_fallthru_edge. - -2001-07-23 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - general_operand_dst_push. - * config/h8300/h8300.c (general_operand_dst_push): New. - * config/h8300/h8300.h (OK_FOR_T): New. - (EXTRA_CONSTRAINT): Use it. - * config/h8300/h8300.md (movqi_push): Remove and integrate into - the existing movqi pattern. - (movhi_push): Likewise. - - * reload.c: Fix comment typos. - -Mon Jul 23 23:34:07 CEST 2001 Jan Hubicka - - * gcse.c (cprop_insn): Update call of cprop_cc0_jump. - -2001-07-23 H.J. Lu (hjl@gnu.org) - - * doc/extend.texi: Update __builtin_return_address and - __builtin_frame_address. - -2001-07-23 Richard Henderson - - * config/i386/i386.c (ix86_expand_setcc): Don't use method 0 - before CSE. - * config/i386/i386.md: New setcc+movzbl peephole2. - -2001-07-23 Neil Booth - - * objc/Make-lang.in (objc-act.o): Depend on debug.h. - * objc/objc-act.c: Include debug.h. - (synth_module_prologue): Save and restore debug hooks too. - -2001-07-23 lars brinkhoff - - * tm.texi (TARGET_FLOAT_FORMAT): Document IBM_FLOAT_FORMAT - and C4X_FLOAT_FORMAT. - (BOOL_TYPE_SIZE): Document. - -Mon Jul 23 11:54:23 2001 Clinton Popetz - - * unroll.c (loop_iterations): Fix miscalculation of initial - giv offset. - -2001-07-13 Andrew Haley - - * doc/tm.texi (MD_CAN_REDIRECT_BRANCH): New macro. - * config/sh/sh.h (MD_CAN_REDIRECT_BRANCH): New macro. - * config/sh/sh.c (sh_can_redirect_branch): New function. - * config/sh/sh-protos.h (sh_can_redirect_branch): Declare. - * reorg.c (steal_delay_list_from_target): Use - MD_CAN_REDIRECT_BRANCH to see if redirection is possible. - -Mon Jul 23 17:20:18 CEST 2001 Jan Hubicka - - * flow.c (try_simplify_condjump): Unlink insn chain on - fallthru edge; use can_fallthru. - -Mon Jul 23 16:03:19 CEST 2001 Jan Hubicka - - * basic-block.h (find_sub_basic_block): Declare. - * flow.c (make_edges): New arguments MIN and MAX; - (find_sub_basic_blocks): Revamp to use make_edges - and purge_dead_edges. - (find_basic_blocks): Update call of find_sub_basic_block. - - * recog.c (split_all_insns): Always expect CFG to be consistent; - call find_sub_basic_blocks in case something has changed. - * toplev.c (rest_of_compilation): Always call split_all_insns once CFG - has been built. - - * basic-block.h (delete_noop_moves): Declare. - * combine.c (combine_instructions): Call it. - (recog_for_combine): Tolerate noop moves - (distribute_notes): Force refresh when register dies at noop move. - * flow.c (delete_noop_moves): Use BB structure; delete JUMP insns - too. - (life_analysis): Update delete_noop_moves call. - (set_noop_p): Move too ... - * rtlanal.c (noop_move_p): ... here. - * rtl.h (noop_move_p): Declare. - - * basic-block.h (purge_all_dead_edges, purge_dead_edges): New functions. - * toplev.c (rest_of_compilation): Conditionally call purge_all_dead_edges - after combine. - * gcse.c (cprop_cc0_jump, cprop_insn): New argument "basic_block". - (cprop_jump): Likewise; call purge_dead_edges if substitution succeeded. - -2001-07-23 Hans-Peter Nilsson - - * reload.c (push_reload): Fix typo in comment. - (find_reloads_address): Ditto. - (reg_overlap_mentioned_for_reload_p): Ditto in head comment. - -2001-07-22 Richard Henderson - - * flow.c: Grammar check and clarify a lot of comments. - (try_simplify_condjump): Rename variables to be clearer. - (try_forward_edges): Skip complex and fallthru edges. - Rearrange tests to avoid duplicate checks. - (flow_find_cross_jump): Likewise. - (outgoing_edges_match): Allow match if neither branch has - probability data. Loosen probability match to 5%. - (try_crossjump_to_edge): Hoist repeated indirection into - local variables. - (try_crossjump_bb): Don't check complex edges. Eliminate - redundant crossjump tests. - (try_optimize_cfg): Fix use of bool. Reorganize cheaper - checks before more expensive checks. - -2001-07-22 Richard Henderson - - * fold-const.c (fold): Test vs FLOAT_TYPE_P instead of - INTEGRAL_TYPE_P when folding comparisons with operand_equal_p - arguments. - -2001-07-22 Richard Henderson - - * m68k.c (const_uint32_operand): Abort if mode is <= 32 bits. - (const_sint32_operand): Likewise. - * m68k.md (anon mulsi pattern): Use const_int_operand not - const_sint32_operand. - (umulsi3_highpart): Zero extend a constant input. - (smulsi3_highpart): Don't bother checking SImode constant. - (const_umulsi3_highpart): Give op3 DImode. - (const_smulsi3_highpart): Likewise. - -2001-07-22 Richard Henderson - - * flow.c (split_block): Make sure bb_note is included in the - new block when splitting before a label. - -Sun Jul 22 23:28:56 CEST 2001 Jan Hubicka - - * basic-block.h (redirect_edge_and_branch_force, - redirect_edge_and_branch, block_label, forwarder_block_p): Declare. - * flow.c (redirect_edge_and_branch_force, - redirect_edge_and_branch, block_label, forwarder_block_p): Make global. - (redirect_edge_and_branch_force): Fix copying of lifeness information. - (block_label): Handle EXIT_BLOCK_PTR by returning NULL. - * ifcvt.c (dead_or_predictable): Take BB as an new destination - instead of label; update CFG after transformation. - (find_if_case_1): Update call, use redirect_edge_and_branch_force - for finishing the transformation; handle even case where ELSE - does not follow THEN. - (find_if_case_2): Update call of dead_or_predictable; simplify - CFG update. - - * emit-rtl.c (split_branch_probability): New global variable. - (try_split): Take care to set split_branch_probability and - create REG_BR_PROB note for new jump insns. - * md.texi (define_split): Document new feature. - - * i386.c (ix86_split_fp_branch): Redistribute branch probability notes. - -2001-07-22 Neil Booth - - * varasm.c: Don't inlcude dbxout.h, sdbout.h or xcoffout.h. - (asm_out_file): Remove redundant declaration. - (assemble_asm): Remove old #if 0 block. - (assemble_variable): Remove end of function; debug output is - now handled with global_decl. Remove old #if 0 block. Update. - Remove saved_in_section and associated no-op code. - * Makefile.in (varasm.o): Correct dependencies. - -Sun Jul 22 17:55:11 2001 Alexandre Oliva - - * config/i386/freebsd-aout.h (ASM_PREFERRED_EH_DATA_FORMAT): Use - the definition in defaults.h. - -Sun Jul 22 21:31:04 CEST 2001 Jan Hubicka - - * jump.c: Update comments. - (delete_barrier_successors, delete_unreferenced_labels, - delete_noop_moves, tension_vector_labels, delete_from_jump_chain, - delete_labelref_insn, redirect_tablejump, jump_optimize_1, - jump_optimize, jump_optimize_minimal): Kill. - (rebuild_jump_labels): Move code from jump_optimize_1. - (purge_line_number_notes): Likewise. - (copy_loop_headers): Likewise. - * reg-stack.c: Update comment. - * stmt.c: Likewise. - * rtl.h (jump_optimize, jump_optimize_1, JUMP_NOOP_MOVES, - JUMP_AFTER_REGSCAN): Kill. - * toplev.c (rest_of_compilation): Use cleanup_cfg, call - purge_line_number_notes and copy_loop_headers. - -2001-07-22 Neil Booth - Richard Henderson - - * dbxout.c (dbxout_global_decl): New. - (xcoff_debug_hooks, dbx_debug_hooks): Use it. - * sdbout.c (sdbout_finish): New. - (sdbout_debug_hooks): Use it, add comments. - (sdbout_global_decl): Defer initialized public vars to - sdbout_finish. - * varasm.c (assemble_variable): Don't output debug information - for file-scope variables. - -2001-07-22 Richard Henderson - - * config/alpha/alpha.c (get_trap_mode_suffix): New. - (get_round_mode_suffix): New. - (print_operand): Use them for [/]. Remove support for [&'`()+]. - * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Update. - * config/alpha/alpha.md (attr round_suffix): New. - (attr trap_suffix): New. - (all insns): Set them appropriately. Use %/ instead of the - myriad punctuators. - -2001-07-22 Neil Booth - - * dbxout.c, sdbout.c, varasm.c: Revert most recent debug patch. - -2001-07-22 Richard Henderson - - * regrename.c (regrename_optimize): Compute nregs for each - potential target register. - -2001-07-21 Neil Booth - Richard Henderson - - * dbxout.c (dbxout_global_decl): New. - (xcoff_debug_hooks, dbx_debug_hooks): Use it. - * sdbout.c (sdbout_finish): New. - (sdbout_debug_hooks): Use it, add comments. - (sdbout_global_decl): Defer initialized public vars to - sdbout_finish. - * varasm.c (assemble_variable): Don't output debug information - for file-scope variables. - -2001-07-21 H.J. Lu (hjl@gnu.org) - - * config/mips/mips.c (mips_cpu): Moved into ... - (override_options): Here. - - * config/mips/mips.h (mips_cpu_attr): Replace mips_cpu with - mips_tune. - (mips_cpu): Removed. - -2001-07-21 Stephane Carrez - - * config/m68hc11/m68hc11.md ("andqi3"): Accept d as second operand. - ("iorqi3"): Likewise. - ("xorqi3"): Likewise. - ("*addhi3"): Fix constraint to avoid reloading in a soft register. - ("*subhi3_sp): Likewise. - ("*subhi3"): Likewise. - ("extendhisi2"): Accept D, X and Y as source operand to avoid - reload problems. - -2001-07-21 Nathan Sidwell - - * doc/tm.texi: Remove DEFAULT_VTABLE_THUNKS. - * config/freebsd.h: Likewise. - * config/linux.h: Likewise. - * config/openbsd.h: Likewise. - * config/alpha/linux-elf.h: Likewise. - * config/arm/linux-elf.h: Likewise. - * config/d30v/d30v.h: Likewise. - * config/fr30/fr30.h: Likewise. - * config/ia64/aix.h: Likewise. - * config/ia64/ia64.h: Likewise. - * config/mips/linux.h: Likewise. - * config/pj/pj.h: Likewise. - * config/rs6000/linux.h: Likewise. - * config/sparc/linux.h: Likewise. - * config/sparc/linux64.h: Likewise. - -2001-07-20 Bruce Korb - - * fixinc/fixincl.c(test_for_changes): force unsigned char comparisons - because getc() and char* may disagree on signedness. - -2001-07-20 Richard Henderson - - * doc/rtl.texi (REG_DEAD): Update for current semantics. - - * flow.c (try_redirect_by_replacing_jump): Correctly compute which - insns to delete in the presence of cc0 in a jump insn. - -Fri Jul 20 22:14:49 CEST 2001 Roman Zippel - Jan Hubicka - - * m68k.md (zero_extend?i?i2 expander): Use gen_lowpart instead - of doing the change by hand. - -Fri Jul 20 21:59:42 CEST 2001 Jan Hubicka - - * rtlanal.c (set_noop_p): Return true for noop jumps. - - * expr.c (emit_single_push_insn): Add call to push expander. - * expr.h (optab_index): Add OTI_push - (push_optab): New constant. - * genopinit.c (optabs): Add push_optab. - * optabs.c (init_optab): Init push optab. - * md.texi (push??1): Document - -2001-07-20 Stephane Carrez - - * config/m68hc11/m68hc11.md ("movdi", "movdi_internal"): Use an - expand to emit the pattern; put a REG_INC note for push/pop - instructions. - ("movdf", "movdf_internal"): Likewise. - ("movsi", "movsi_internal"): Likewise. - ("movsf", "movsf_internal"): Likewise. - ("movhi", "movqi"): Emit a REG_INC note for push/pop instructions. - -2001-07-20 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_gen_highpart): Don't use - gen_highpart. - -2001-07-20 Daniel Berlin - - * params.def: Change default max inline insns to 100. - -2001-07-20 Diego Novillo - - * combine.c (combine_simplify_rtx): Generate a new shift operation - when simplifying the first operand of a (neg (ashift)) expression. - -2001-07-20 Roman Lechtchinsky - - * regclass.c (N_REG_INTS): Use only 32 bits per element. - -2001-07-20 Kelley Cook - - * doc/install.texi (sparc-sun-solaris*): Add in 4.x assembler bug - information. Move rest into ... - (*-*-solaris): ... here. Eliminate redundant information and - reword necessary packages section. Delete 4.x assembler bug info. - (sparc-sun-*): Merge into ... - (sparc-sun-sunos*): here. - -2001-07-20 Catherine Moore - - * config/v850/v850.md (casesi): Generate LABEL_REF - with Pmode. - -Fri Jul 20 14:12:57 CEST 2001 Jan Hubicka - - * i386-protos.h (ix86_zero_extend_to_Pmode): Declare. - * i386.c (ix86_zero_extend_to_Pmode): Make global. - * i386.md (strclrsi expander): Use it. - -Fri Jul 20 13:24:16 CEST 2001 Jan Hubicka - - * integrate.c (copy_insn_list): handle - NOTE_INSN_DELETED_LABEL, as if it were CODE_LABEL. - (copy_rtx_and_substitute): Likewise; behave to NOTE_INSN_DELETED_LABEL - identically as to CODE_LABEL. - - * fold-const (fold): Convert A/B/C to A/(B*C) and - A/(B/C) to (A/B)*C - - * except.c (connect_post_landing_pads): Delete the RESX insns. - -2001-07-20 Aldy Hernandez - - * config/mips/mips.h (ISA_HAS_NMADD_NMSUB): New macro. - - * config/mips/mips.md (nmadd/nmsub): Use macro. - -2001-07-20 Nathan Sidwell - - * cppinit.c (remove_dup_dir): Make static. - (remove_dup_dirs): Make static. Only warn about preempting a - system directory with a non-system directory. - -2001-07-19 Geoffrey Keating - - * ifcvt.c (noce_try_store_flag_constants): Correct order - of parameters to trunc_int_for_mode. - -2001-07-19 Mark Mitchell - - * reorg.c (fill_simple_delay_slots): If an instruction might throw - an exception that will be caught within this function, do not fill - its delay slot with any subsequent instruction. - -2001-07-19 Steve Ellcey - - * tm.texi (POINTERS_EXTEND_UNSIGNED) Modify definition. - * optabs.c (can_extend_p) Check HAVE_ptr_extend for a specialized - pointer extension instruction. - * combine.c (nonzero_bits,num_sign_bit_copies) Likewise. - * simplify-rtx.c (simplify_unary_operation) Likewise. - * explow.c (convert_memory_address) Check value of - POINTERS_EXTEND_UNSIGNED to avoid some conversions when - less than zero. - * config/ia64/t-hpux (LIBGCC, INSTALL_LIBGCC, MULTILIB_OPTIONS, - MULTILIB_DIRNAMES, MULTILIB_MATCHES) Add multilib support. - * config/ia64/hpux.h (CPP_SPEC, ASM_SPEC, SUBTARGET_SWITCHES) - Add Multilib Support. - (POINTERS_EXTEND_UNSIGNED) Define for ILP32 support. - * config/ia64/ia64.h (MASK_ILP32, TARGET_ILP32, SUBTARGET_SWITCHES) - Add Multilib Support. - (POINTER_SIZE, LONG_TYPE_SIZE, MAX_LONG_TYPE_SIZE) Modify for ILP32 - support. - * config/ia64/ia64.c (rtx_needs_barrier) Add support for addp4. - * config/ia64/ia64.md (ptr_extend) New instruction to "swizzle" - a 32 bit HP-UX pointer into a 64 bit HP-UX pointer. - -2001-07-19 Alexandre Oliva - - * simplify-rtx.c (simplify_replace_rtx): Try to obtain mode from - old and new operands in `<', `3' and `b'. - -2001-07-19 Neil Booth - - * Makefile.in (emit-rtl.o, c-decl.o): Depend on debug.h. - (final.o): Don't depend on xcoffout.h, dbxout.h or sdbout.h. - (toplev.o): Don't depend on xcoffout.h. - * c-decl.c: Include debug.h - (duplicate_decls): Use debug hook. - * dbxout.c (dbxout_source_file, dbxout_args): Make static. - (dbx_debug_hooks, xcoff_debug_hooks): Update. - (dbxout_types): Remove. - * dbxout.h (dbxout_source_file, dbxout_types, dbxout_args): Remove. - * debug.c (do_nothing_debug_hooks): Update. - (debug_true_tree, debug_nothing_rtx): New. - * debug.h (struct rtx_def): New. - (struct gcc_debug_hooks): New hooks ignore_block, - outlining_inline_function and label. - (debug_true_tree, debug_nothing_rtx, dwarf2out_frame_init, - dwarf2out_frame_finish): New. - * dwarf2out.c (dwarf2out_ignore_block, dwarf2out_abstract_function): - Make static, update prototype. - (dwarf2_debug_hooks): Update. - * dwarf2out.h (dwarf2out_ignore_block, dwarf2out_abstract_function, - dwarf2out_frame_init, dwarf2out_frame_finish): Remove. - * dwarfout.c (dwarf_debug_hooks): Update. - * emit-rtl.c: Include debug.h. - (remove_unnecessary_notes): Use debug hook. - * final.c: Don't include dbxout.h, xcoffout.h or sdbout.h. - (final_scan_insn): Use debug hook. - * integrate.c (output_inline_function): Use debug hook. - * sdbout.c (sdbout_toplevel_data, sdbout_label): Make static. - (sdb_debug_hooks): Update. - * sdbout.h (sdbout_label, sdbout_toplevel_data): Remove. - * toplev.c: Don't include xcoffout.h. - (note_outlining_of_inline_function, debug_ignore_block): Remove. - * toplev.h (note_outlining_of_inline_function, debug_ignore_block): - Remove. - * tree.h (dwarf2out_do_frame): Remove. - -2001-07-19 Catherine Moore - - * config/v850/v850.h (ASM_OUTPUT_LABELREF): Restore. - -2001-07-19 Geoffrey Keating - - * reload1.c (eliminate_regs_in_insn): When updating a set - to the frame pointer to the hardware frame pointer, perform - the update always not just when REPLACE is set. - - * reload1.c (choose_reload_regs): Don't inherit a reload - that crosses multiple registers if registers past the first - don't fit in the desired class. - - * ifcvt.c (noce_try_store_flag_constants): Use trunc_int_for_mode - when negating constants. - -2001-07-19 Toon Moene - - * tree.def: Document restriction on {L|R}SHIFT_EXPR's second argument. - * doc/tree.texi: Ditto. - -2001-07-19 Mark Kettenis - Jakub Jelinek - - * unwind-dw2.c (_Unwind_FrameState): Add eh_ptr. - (extract_cie_info): Handle "eh" augmentation properly, - remember eh_ptr. - (struct frame_state, __frame_state_for): New. - -2001-07-19 Rainer Orth - - * config/alpha/osf.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL, - HANDLE_SYSV_PRAGMA): Define. - * mips-tfile.c (add_ext_symbol): Pass complete symbol ptr, inline - previous args. - (copy_object): Caller changed. - -2001-07-19 Andreas Schwab - - * configure.in (assembler dwarf2 debug_line support): Define nop - insn for m68k. - * configure: Regenerated. - -2001-07-19 Neil Booth - - * Makefile.in (toplev.o, dwarfout.o, final.o): Don't depend on - dwarfout.h. - * dbxout.c (dbxout_function): Rename dbxout_function_decl, move - to conditionally compiled block. - (dbx_debug_hooks, xcoff_debug_hooks): Update. - * dbxout.h (dbxout_function): Remove. - * debug.c (do_nothing_debug_hooks): Update. - * debug.h (struct gcc_debug_hooks): New hooks function_decl, - global_decl, deferred_inline_function. - * dwarf2out.c (dwarf2_debug_hooks): Update. - (dwarf2out_global_decl): New. - * dwarfout.c: Don't include dwarfout.h. - (dwarfout_global_decl, dwarfout_function_decl, - dwarfout_deferred_inline_function): New. - (dwarf_debug_hooks): Update. - * dwarfout.h: Remove. - * final.c: Don't include dwarfout.h. - * sdbout.c (sdbout_global_decl): New. - (sdbout_debug_hooks): Update. - * toplev.c: Don't include dwarfout.h. - (check_global_declarations, rest_of_compilation): Use new debug hooks. - (note_deferral_of_defined_inline_function): Remove. - * toplev.h (note_deferral_of_defined_inline_function): Remove. - * ch/Makefile.in (lex.o): No dependence on dwarfout.h. - * ch/lex.c: Don't include dwarfout.h. - * cp/Make-lang.in (decl2.o): No dependence on dwarfout.h, dwarf2out.h. - (semantics.o, optimize.o): Depend on debug.h not dwarfout.h. - * cp/decl2.c: Don't include dwarfout.h and dwarf2out.h. - * cp/optimize.c: Include debug.h. - (maybe_clone_body): Use debug hook. - * cp/semantics.c: Include debug.h. - (expand_body): Use debug hook. - * po/POTFILES.in: Remove dwarfout.h. - -2001-07-19 Neil Booth - - * c-lex.c (c_lex): Remove CPP_INT, CPP_FLOAT cases. - * c-parse.in (yyerror, _yylex): Similarly. - * cppexp.c (parse_number, parse_defined, lex, _cpp_parse_expr): - Don't use CPP_INT, CPP_FLOAT; CPP_NUMBER is enough. - Update comments. - * cpplib.h (CPP_INT, CPP_FLOAT): Remove. - * cp/spew.c (read_token, yyerror): Remove CPP_INT, CPP_FLOAT cases. - -2001-07-18 Jeff Sturm - - * dwarf2out.c (dwarf2out_abstract_function): Don't emit - in-class declaration at -g1. Fixes c++/2814. - -2001-07-18 Richard Henderson - - * doc/md.texi (reload_in/out): Document restrictions in predicates - and constraints for these patterns. Document empty string matching - ALL_REGS. - -2001-07-18 Rainer Orth - - * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Check for ASM_WEAKEN_LABEL. - -Wed Jul 18 20:47:36 CEST 2001 Jan Hubicka - - * cse.c: Undo my previous patch. - -2001-07-18 Tom Tromey - - For PR java/2812: - * configure: Rebuilt. - * configure.in: Don't check for iconv.h or iconv(); use AM_ICONV - instead. - * aclocal.m4 (AM_ICONV): New macro from Bruno Haible. - -Wed Jul 18 18:46:30 CEST 2001 Richard Henderson - Jan Hubicka - - * flow.c (redirect_edge_and_branch): Bail out on complex edges. - (try_optimize_cfg): Do not remove tail recursive labels before sibcall. - * jump.c (mark_jump_label): Do not forward branches. - -Wed Jul 18 18:35:01 CEST 2001 Jan Hubicka - - * cse.c (delete_trivially_dead_insns): Delete the libcall block - when return value is unused. - -Wed Jul 18 18:28:16 CEST 2001 Jan Hubicka - - * gcse.c (pre_insert_copy_insn): Call update_ld_motion_stores. - -Wed Jul 18 12:05:29 2001 Nicola Pero - - * gthr-posix.h (__gthread_objc_mutex_trylock): Fixed return value - on error. We can't blindly return the result of - pthread_mutex_trylock because it returns a positive number on - error, while we must return -1 on error. - (__gthread_objc_mutex_lock, __gthread_objc_mutex_unlock): Similar - fixes. - Reported by Stephen Brandon . - -2001-07-18 Andreas Jaeger - - * integrate.c (output_inline_function): Correct type of debug_hooks. - -2001-07-18 Toon Moene - - * combine.c (combine_simplify_rtx): DIV can be treated - associatively for floats if unsafe math optimisations are enabled. - -2001-07-17 Richard Henderson - - * reload.c (push_secondary_reload): Accept empty-string for ALL_REGS. - -2001-07-17 Richard Henderson - - * calls.c (prepare_call_address): New parameter SIBCALLP. If true, - don't force the function address into a register. - (expand_call, emit_library_call_value_1): Update callers. - * builtins.c (expand_builtin_apply): Likewise. - * expr.h (prepare_call_address): Update decl. - -2001-07-17 Chandrakala Chavva - - * config.gcc: For *-*-chorusos triplet, get chorus.h file from - config directory. - * config/i386/chorus.h: Move up. - * config/sparc/chorus.h: Likewise. - * config/rs6000/chorus.h: Likewise. - * config/chorus.h: Moved here. - -2001-07-17 Andreas Schwab - - * configure.in (assembler eh_frame optimization): Handle big - endian. - * configure: Regenerated. - -Tue Jul 17 23:43:31 CEST 2001 Jan Hubicka - - * expr.c (epxand_expr): Convert divisions into multiplications by - reciprocals if -ffast-math. - -2001-07-17 Neil Booth - - * dbxout.c (dbxout_really_begin_function): Rename to - dbxout_begin_function. - (dbx_debug_hooks, xcoff_debug_hooks): Update. - (dbxout_begin_function): Remove. - (dbxout_function): Update. - (dbxout_source_line): Update prototype. - * dbxout.h (dbxout_begin_function): Remove. - * debug.c (do_nothing_debug_hooks): Update. - (debug_nothing_tree): Update. - (debug_nothing_charstar_rtx): Remove. - * debug.h (union tree_node): Declare. - (struct rtx_def): Remove. - (gcc_debug_hooks): New hooks begin_prologue, end_prologue, - begin_function. Change source_line prototype. - (debug_nothing_tree): New. - (debug_nothing_charstar_rtx): Delete. - (dwarf2out_begin_prologue): Moved from ... - * tree.h: ... here. - * dwarf2out.c (dwarf2_debug_hooks): Update. - (dwarf2out_begin_prologue): Update prototype. If genuine dwarf2 - debug info, call dwarf2out_source_line. - (dwarf2out_souce_line): Update prototype. - * dwarfout.c (dwarfout_begin_function): Rename dwarfout_end_prologue. - Change prototype, make static. - (dwarfout_source_line): Update prototype. - (dwarf_debug_hooks): Update. - * dwarfout.h (dwarfout_begin_function): Remove. - * final.c (final_start_function, final_scan_insn): Use appropriate - debug hooks, update to use notice_source_line. - (output_source_line): Rename notice_source_line. Don't call the - source_line debug hook. - * sdbout.c (sdbout_begin_function): Rename sdbout_begin_prologue, - make static, update prototype. - (sdbout_mark_begin_function): Rename sdbout_begin_function, update - prototype. - (sdbout_end_prologue): New. - (sdbout_source_line): Update prototype. - (sdbout_debug_hooks): Update. - (sdbout_symbol): Remove unused var. - * sdbout.h (sdbout_begin_function, sdbout_mark_begin_function): - Delete. - * varasm.c: Include debug.h. - (assemble_start_function): Use begin_function debug_hook. - * xcoffout.c (xcoffout_begin_prologue): Rename xcoffout_begin_function, - update with prototype. - (xcoffout_source_line): Update prototype. - * xcoffout.h (xcoffout_begin_prologue): Rename xcoffout_begin_function, - update prototype. - (xcoffout_source_line): Update prototype. - -2001-07-17 Richard Henderson - - * c-typeck.c (build_binary_op): Do not shorten unsigned - right shift after sign extension. - -Tue Jul 17 16:56:05 CEST 2001 Jan Hubicka - - * combine.c (combine_simplify_rtx): Attempt to simplify - a*(b/c) as (a*b)/c for floats in unsafe_math mode. - - * simplify-rtx.c (avoid_constatn_pool_reference): New static function. - (simplify_binary_operation, simplify_unary_operation, - simplify_relational_operation): Use it. - - * combine.c (combine_simplify_rtx): Don't do associative law - on divisions; allow associative law on floats. - -2001-07-17 H.J. Lu - Rainer Orth - - * c-pragma.h (HANDLE_PRAGMA_WEAK): Define iff ASM_WEAKEN_LABEL and - ASM_OUTPUT_WEAK_ALIAS are defined. - * defaults.h (ASM_OUTPUT_WEAK_ALIAS): Define if possible. - * config/mips/iris6.h (ASM_OUTPUT_WEAK_ALIAS, ASM_WEAKEN_LABEL): - Moved ... - * config/mips/iris5.h: ... here. - (HANDLE_SYSV_PRAGMA): Defined as 1. - * varasm.c (weak_finish): Use ASM_OUTPUT_WEAK_ALIAS. - * doc/tm.texi (ASM_OUTPUT_WEAK_ALIAS): Support the undefined weak - symbol. - -2001-07-17 Joseph S. Myers - - * c-parse.in (all_prefix_attributes): New variable. - (PUSH_DECLSPEC_STACK, POP_DECLSPEC_STACK): New macros. - (maybe_resetattrs): New production. - (c_parse_init, datadef, fndef, datadecl, setspecs, setattrs, decl, - maybe_type_quals_setattrs, initdecls, notype_initdecls, initdcl, - notype_initdcl, nested_function, notype_nested_function, - component_decl, components, components_notype, - component_declarator, component_notype_declarator, - absdcl_maybe_attribute, parm, firstparm, setspecs_fp, ivar_decl, - ivars, mydecl, myparm): Update. Avoid prefix attributes just - after a comma being applied to more than one declarator. - * doc/extend.texi (Attribute Syntax): Update. Remove - documentation of bugs that are no longer present. - -2001-07-13 Eric Christopher - - * config/mips/mips.h: Change TUNE_MIPS* options to use - mips_tune. - (EXTRA_SPECS): Add cc1_cpu_spec. - * config/mips/mips.md (muldf3): Fix typo. - -2001-07-16 Richard Henderson - - * config/m68k/m68k.c: Include expr.h and reload.h. - (print_operand_address) [16 bit int]: Cast INTVAL to int for %d. - [general int]: Use HOST_WIDE_INT_PRINT_DEC. - -2001-07-16 Daniel Berlin - Richard Henderson - - * cse.c (set_live_p): Take INSN argument for cc0; update callers. - (insn_live_p): Fix fall off end of function. - (dead_libcall_p): Remove COUNTS argument; update callers. - (delete_trivially_dead_insns): Remove unused variables. - -2001-07-17 Andreas Jaeger - - * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix output format for - x86-64 pic support. - - * lcm.c (optimize_mode_switching): Avoid warning for unused - variable if !NORMAL_MODE. - - * flow.c (try_crossjump_to_edge): Remove unused variable. - -2001-07-16 John David Anglin - - * inclhack.def (ultrix_atexit_param): New hack to fix ultrix 4.3 - atexit declaration in stdlib.h. - -2001-07-16 Richard Begg - - * fixinc/inclhack.def(hpux_vsnprintf): brokenness in stdio.h - -Mon Jul 16 22:48:00 CEST 2001 Jan Hubicka - - * basic-block.h (CLEANUP_PRE_SIBCALL): New constant. - * except.c (finish_eh_generation): Update call of cleanup_cfg; - do rebuild_jump_labels instead of jump_optimize - * sibcall.c (optimize_sibling_and_tail_recursive_call): Likewise. - * toplev.c (rest_of_compulation): Likewise for -Wreturn_type. - * flow.c (try_optimize_cfg): Remove unneeded code_labels. - - * flow.c: Include timevar.h - (find_basic_block): Push/pop timevar; - (cleanup_cfg): Likewise. - * timevar.def (TV_CFG, TV_CLEANUP_CFG): New. - * Makefile: Add dependencies on timevar.h - - * integrate.c (save_for_inline): Kill all BASIC_BLOCK notes. - (copy_insn_list): Avoid killing of BASIC_BLOCK notes. - - * rtl.h (delete_trivially_dead_insns): Add new parameter. - * toplev.c (rest_of_compilation): Update calls. - * cse.c (set_live_p, insn_live_p, dead_libcall_p): Break out from ... - (delete_trivially_dead_insns): ... here; accept new argument - preserve_basic_blocks; preserve basic blocks if set. - - * reg-stack.c (stack_regs_mentioned): Return 0 if - stack_regs_mentioned_data is not initialized. - (reg_to_stack): Make stack_regs_mentioned survive after the - reg-stack is completted; do not call cleanup_cfg. - * toplev.c (rest_of_compilation): Do cleanup_cfg before bb-reorder; - make cleanup_cfg after bb-reorder to output to debug file. - -2001-07-16 Richard Henderson - - * regclass.c (init_reg_sets): Use only 32 bits per initializer - from int_reg_class_contents. - -2001-07-16 Richard Henderson - - * hard-reg-set.h (regs_invalidated_by_call): Declare. - * regclass.c (regs_invalidated_by_call): Move from cse.c. - (init_reg_sets_1): Move initialization from cse_main. - * cse.c (regs_invalidated_by_call): Move to regclass.c. - (cse_main): Move its initialization also. - * df.c (df_insn_refs_record): Use regs_invalidated_by_call. - * flow.c (propagate_one_insn): Likewise. - * gcse.c (compute_hash_table): Likewise. - (compute_kill_rd, compute_store_table): Likewise. - * sched-deps.c (sched_analyze_1): Likewise. - -Mon Jul 16 18:07:07 2001 J"orn Rennecke - - * gcse.c (pre_insert_copy_insn): Use gen_move_insn instead of - gen_rtx_SET. - -2001-07-16 Steve Ellcey - - * dominance.c (calc_dfs_tree_nonrec): Reverse order of tests - in if statement so we don't access undefined memory. - -2001-07-16 Daniel Berlin - - * gcse.c: Update comment at top. - Update comment on mem handling. - mem_last_set, mem_first_set, mem_set_in_block: gone. - Declaration of reg_set_info: gone. - (oprs_unchanged_p): Don't use mem_*set_* anymore. They are - pointless with load_killed_in_block_p (they are *more* - conservative then it, not less, and less accurate). - (oprs_not_set_p): Ditto. - (alloc_gcse_mem): Don't allocate mem_set_in_block - (free_gcse_mem): Don't free it, either. - (record_last_mem_set_info): Update comment in front, remove - mem_*set_* stuff. Note the reason we don't handle stores directly - here. - (compute_hash_table): Update comments to reflect reality. Remove - mem_*set_* references. - (reset_opr_set_tables): Remove mem_*set_* references. - (mark_call): Ditto. - (mark_set): Ditto. Also remove double sets of bitmaps for REG's. - (mark_clobber): Ditto (on both parts, we double set here too). - (expr_killed_p): Remove mem_set_in_block test. - (compute_transp): Remove mem_set_in_block test. - - * ssa-ccp.c: (optimize_unexecutable_edges): Add note about removal - of edge, and removal of phi alternative to dump file. - (ssa_ccp_substitute_constants): Add note about register now being - constant, and which uses were replaced in what insns to dump file. - -2001-07-16 Andreas Jaeger - - * gcov.c (output_data): Use HOST_WIDEST_INT_PRINT_DEC to output - variables of type HOST_WIDEST_INT. - - * libgcc2.c (__bb_exit_func): Handle gcov_type as long long. - (__bb_exit_func): Correct type of count_max to avoid overflow. - (num_digits): Handle long long argument. - - * combine.c (gen_lowpart_for_combine): Remove unused variable. - -2001-07-16 Neil Booth - - * output.h (sdb_begin_function_line): Restore as an extern - variable. - * sdbout.c (sdb_begin_function_line): Make extern. - -2001-07-15 Richard Henderson - - * machmode.def (Pmode): Redefine if GENERATOR_FILE. - * genrecog.c (maybe_both_true_mode): New. - (maybe_both_true_2): Use it. - (write_switch): Don't put Pmode in a switch. - * rtl.c (mode arrays): Don't explicitly size them. - -Sun Jul 15 14:07:36 CEST 2001 Jan Hubicka - - * toplev.c (rest_of_compilation): Fix register_life_up_to_date - handling; move unconditional splitting before mode switching. - - * i386.md (type): Add fistp type. - (i387, length_attr, scheduling definitions): Handle this type. - (fix_trunc?f?i2): Revamp to use mode switching. - (fix_trunct?f?i_nonmemory, fix_trunc?f?i_memory): New patterns. - * i386.h (fp_cw_mode): New enum - (OPTIMIZE_MODE_SWITCHING, NUM_MODES_FOR_MODE_SWITCHING, MODE_NEEDED, - MODE_PRIORITY_TO_MODE, ENUM_MODE_SET): New macros. - -Sun Jul 15 12:53:51 2001 Richard Kenner - - * Makefile.in (integrate.o): Add debug.h. - * integrate.c (debug.h): Add. - (output_inline_function): Save, reset, and restore debug_hooks. - -2001-07-15 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_xfloating_compare): Use CCmode - instead of COMPARE for the EQUIV expression. - -2001-07-15 Richard Henderson - - * flow.c (redirect_edge_and_branch_force): Initialize - global_live_at_start and global_live_at_end. - (allocate_bb_life_data): Export. - * basic-block.h (allocate_bb_life_data): Declare. - * toplev.c (rest_of_compilation): Call it. - -2001-07-15 Richard Henderson - - * config/alpha/alpha.c (alpha_tablejump_addr_vec): New. - (alpha_tablejump_best_label): New. - * config/alpha/alpha-protos.h: Declare them. - * config/alpha/alpha.md: Use braced strings for code blocks. - (tablejump_osf): Break out add with r29. - (tablejump_osf_internal): Remove. - (tablejump_osf_nt_internal): Rename from tablejump_nt_internal, - use alpha_tablejump_addr_vec and alpha_tablejump_best_label. - -Sun Jul 15 00:53:35 CEST 2001 Jan Hubicka - - * loop.c (scan_loop): Add USEs inside PARALLELs into dependencies - of the movable. - - * toplev.c (rest_of_compilation): Allow new pseudoes for mode switching. - - * i386-protos.h (ix86_split_fp_branch): Update prototype. - (ix86_fp_jump_nontrivial_p): New. - * i386.md (fp_jcc_?): Update call of split_fp_branch; - use ix86_fp_jump_nontrivial_p. - * i386.c (ix86_fp_jump_nontrivial_p): New. - (ix86_split_fp_branch): Accept code instead of rtx. - (ix86_expand_compare): Expand comparison early in case - doing so is resonably cheap. - -2001-07-15 Nick Clifton - - * config/rs6000/sysv4.h (CPP_ENDIAN_BIG_SPEC): Assert 'endian' - not 'machine'. - (CPP_ENDIAN_LITTLE_SPEC): Assert 'endian' not 'machine'. - (CPP_ENDIAN_SOLARIS_SPEC): Assert 'endian' not 'machine'. - -2001-07-15 Neil Booth - - * dbxout.c (dbxout_source_line): Make static, update prototype. - (dbx_debug_hooks, xcoff_debug_hooks): Add new hooks. - (dbxout_init, dbxout_finish, dbxout_source_line, - dbxout_begin_block, dbxout_end_block): Update for new prototypes. - * dbxout.h (dbxout_source_line): Delete. - * debug.c (debug_nothing_file, debug_nothing_file_int, - debug_nothing_file_charstar_rtx): New. - (do_nothing_debug_hooks): Update. - (debug_nothing_void, debug_nothing_charstar_rtx, - dwarf2out_end_epilogue): New. - (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename. - * debug.h (struct rtx_def): Declare. - (gcc_debug_hooks): New hooks source_line, end_epilogue - and end_function. - (debug_nothing_void, debug_nothing_charstar_rtx, - dwarf2out_end_epilogue): New. - (debug_nothing_file_charstar, debug_nothing_file_int_int): Rename. - * dwarf2out.c (dwarf2out_source_line): Make static, update prototype. - (dwarf2_debug_hooks): Update. - (dwarf2out_init, dwarf2out_finish, dwarf2out_source_line, - dwarf2out_begin_block, dwarf2out_end_block): Update for new prototypes. - * dwarf2out.h (dwarf2out_source_line): Remove. - * dwarfout.c (dwarfout_end_epilogue, dwarfout_end_function): - Make static, update prototype. - (dwarfout_init, dwarfout_finish, dwarfout_source_line, - dwarfout_begin_block, dwarfout_end_block): Update for new prototypes. - (dwarf_debug_hooks): Update. - * dwarfout.h (dwarfout_end_epilogue, dwarfout_source_line, - dwarfout_end_function): Remove. - * final.c (profile_function): Use debug hooks for ending functions - and epilogues. - (output_source_line, final_end_function): Update prototype, - use debug hooks. - (final_start_function, final_scan_insn): Update. - * output.h (sdb_begin_function_line): Remove. - (final_end_function): Update prototype. - * sdbout.c (sdb_begin_function_line): Make static. - (PUT_SDB_EPILOGUE_END): Move to sdbout_end_epilogue. - (sdbout_source_line): New. - (sdbout_end_epilogue, sdbout_end_function): Make static, update - prototypes. - (sdb_debug_hooks): Update. - (sdbout_init, sdbout_source_line, - sdbout_begin_block, sdbout_end_block): Update for new prototypes. - * sdbout.h (sdbout_end_epilogue, sdbout_end_function): Remove. - * toplev.c (compile_file, rest_of_compilation): Update. - * tree.h (dwarf2out_end_epilogue): Move to debug.h. - * xcoffout.c (xcoffout_source_line, xcoffout_begin_block, - xcoffout_end_block, xcoffout_end_epilogue, xcoffout_end_function): - Update for prototype changes. - * xcoffout.h (xcoffout_source_line, xcoffout_begin_block, - xcoffout_end_block, xcoffout_end_epilogue): Update prototypes. - -2001-07-15 Richard Henderson - - * config/alpha/alpha.h (TARGET_ABI_OSF): New. - (TARGET_ABI_WINDOWS_NT, TARGET_ABI_OPEN_VMS): Rename; update users. - * config/alpha/alpha-protos.h: Update TARGET_ABI_* users. - * config/alpha/alpha.c: Likewise. - * config/alpha/alpha.md: Likewise. - * config/alpha/alpha32.h: Likewise. - * config/alpha/vms.h: Likewise. - (OPEN_VMS): Remove. - -2001-07-14 Richard Henderson - - * config/alpha/alpha.md: Use define_constants for unspec values. - Substitute throughout. - -2001-07-14 Tim Josling - - * tree.def (EXPON_EXPR) remove. Never supported anyway. - -2001-07-14 John David Anglin - - * pa.md: Remove unused constraints from define_split's. - -2001-04-14 Richard Henderson - - * ifcvt.c (find_cond_trap): Test for exit block. - -Sun Jul 15 00:50:20 CEST 2001 Jan Hubicka - - Re-install recently reverted patch. - * emit-rtl.c (try_split): Update mark_jump_label call. - * flow.c (find_sub_basic_blocks): Likewise. - * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump, - jump_back_p): Kill. - (mark_all_labels): Kill second parameter. - (jump_optimize, jump_optimize_1): Kill cross_jump parameter. - (rebuild_jump_labels, jump_optimize_minimal): Update call - of jump_optimize_1. - (jump_optimize_1): Kill crossjumping code. - (mark_jump_label): Kill cross_jump parameter. - * rtl.h (mark_jump_label, jump_optimize): Update prototypes. - (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill. - * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do - splitting. - * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before - DFI_bpro. - (dump_file_info): Likewise. - (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass; - reorganize passes to do reg-stack first, bb-reorder second. - * invoke.texi (-d letters doc): Remove the jump2 pass. - -2001-07-14 Richard Henderson - - * ifcvt.c (find_cond_trap): New. - (find_if_header): Call it. - (merge_if_block): Relax existing jump sanity check. - * jump.c (jump_optimize_1): Remove conditional trap handling. - -2001-07-14 Alan Modra - - * config/pa/pa.c (emit_hpdiv_const): Return reg is r2 for 64-bit - millicode. - (insn_refs_are_delayed): Correct comment. - * config/pa/pa.h (INSN_REFERENCES_ARE_DELAYED): Likewise. - * config/pa/pa.md (mulsi3): If TARGET_64BIT, clobber r2 - instead of r31. Make associated insn !TARGET_64BIT, and - provide an additional 64-bit insn that clobbers r2. - (divsi3): Likewise. - (udivsi3): Likewise. - (modsi3): Likewise. - (umodsi3): Likewise. - -Sat Jul 14 02:58:38 CEST 2001 Jan Hubicka - - * bb-reorder.c (skip_insn_after_block): Get past the line number notes. - - * flow.c (redirect_edge_and_branch_force, split_edge, - try_crossjump_to_edge): Use set_block_for_new_insns. - * bb-reorder.c (emit_jump_to_block_after): Call set_block_for_new_insns. - -2001-07-13 H.J. Lu (hjl@gnu.org) - - * config/elfos.h (UNIQUE_SECTION): Enable .bss section with - the correct patch. - -2001-07-13 Geoffrey Keating - - Revert H.J. Lu's UNIQUE_SECTION patch of 2001-07-13. - -2001-07-13 Joseph S. Myers - - * c-common.c (decl_attributes): Take a pointer to the node to - which attributes are to be attached, and a flags argument. - * c-common.h (enum attribute_flags): New. - (decl_attributes): Update prototype. - * c-decl.c (start_decl, push_parm_decl, finish_struct, - finish_enum, start_function): Update calls to decl_attributes. - * c-parse.in (component_declarator, component_notype_declarator, - label): Update calls to decl_attributes. - -Fri Jul 13 23:04:00 2001 Denis Chertykov - - * config/avr/avr.md (strlenhi): PARALLEL keyword removed. - * config/avr/avr.c (legitimate_address_p): Return value changed - from letter to register classes. For better debugging. - -2001-07-13 Kazu Hirata - - * jump.c (reversed_comparison_code_parts): Fix comment typos. - -2001-07-13 H.J. Lu (hjl@gnu.org) - - * config/elfos.h (UNIQUE_SECTION): Enable .bss section. - -2001-07-13 Marc Espie - - * config.gcc (*-*-openbsd*): Add fragment to compile libgcc - correctly for shared configurations. - * config/t-libgcc-pic: New. - * config/{i386,m68k,sparc}/t-openbsd: New. - * config/openbsd.h: Include cpu_spec in cpp_spec where needed. - Support -shared. Support debugging libraries with -g. - * config/i386/openbsd.h: Correct ASM_COMMENT_START. Ensure dwarf2 - frame information does not emit pointer diffs. - * config/sparc/openbsd.h: Ensure dwarf2 frame information does not - emit pointer diffs. - -2001-07-13 Geoffrey Keating - - Revert Jan Hubicka's patch of Fri Jul 13 14:46:21 CEST 2001. - -2001-07-13 David Edelsohn - - * combine.c (try_combine): Ensure const_int pow2 is positive. - -2001-07-13 Hartmut Penner - - * config.gcc: Add configuration for s/390. - * config/s390/s390.c: New. Subroutines for code generation. - * config/s390/s390.h: New. Definitions for s/390. - * config/s390/s390-protos.h: New. Prototypes. - * config/s390/linux.h: New. Definitions for linux for s/390. - * config/s390/linux64.h: New. Definitions for linux for zSeries. - * config/s390/t-linux: New. Makefile fragment. - * config/s390/s390.md: New. Machine description for s/390 and zSeries. - * config/s390/fixdfdi.h: New. Fix L_fix*di. - -Fri Jul 13 14:46:21 CEST 2001 Jan Hubicka - - * emit-rtl.c (try_split): Update mark_jump_label call. - * flow.c (find_sub_basic_blocks): Likewise. - * jump.c (cross_jump_death_matters, find_cross_jump, do_cross_jump, - jump_back_p): Kill. - (mark_all_labels): Kill second parameter. - (jump_optimize, jump_optimize_1): Kill cross_jump parameter. - (rebuild_jump_labels, jump_optimize_minimal): Update call - of jump_optimize_1. - (jump_optimize_1): Kill crossjumping code. - (mark_jump_label): Kill cross_jump parameter. - * rtl.h (mark_jump_label, jump_optimize): Update prototypes. - (JUMP_CROSS_JUMP, JUMP_CROSS_JUMP_DEATH_MATTERS): Kill. - * reg-stack.c (reg_to_stack): Do not rebuild if not needed; do - splitting. - * toplev.c (enum dump_file_index): Kill DFI_jump2; put DFI_stack before - DFI_bpro. - (rest_of_compilation): Update calls to jump_optimize; kill jump2 pass; - reorganize passes to do reg-stack first, bb-reorder second. - * invoke.texi (-d letters doc): Remove the jump2 pass. - -2001-07-12 Steve Ellcey - - * toplev.c (compile_file): Put call of ASM_FILE_START inside ifdef. - -Thu Jul 12 17:57:16 CEST 2001 Jan Hubicka - - * flow.c (try_optimize_cfg): Delete whole chain of trivially dead - basic blocks. - (verify_flow_info): Make diagnostics prettier. - -Thu Jul 12 16:48:54 CEST 2001 Jan Hubicka - - * flow.c (find_basic_blocks_1): Do not emit NOP after call. - - * flow.c (outgoing_edges_match): Return early if condition reversal - failed. - -2001-07-06 Richard Sandiford - - * config/mips/mips.c (print_operand): Extend '%D' to memory operands. - (mips_move_2words): When splitting a move into two instructions, - prefix the second address operand with '%D'. - -2001-07-12 Neil Booth - - * Makefile.in (final.o): Depend on debug.h. - * dbxout.c (dbxout_begin_block, dbxout_end_block): New. - (dbx_debug_hooks): Add new hooks. - (xcoff_debug_hooks): New. - * debug.c (debug_nothing_file_int_int): New. - (do_nothing_debug_hooks): Update. - * debug.h (gcc_debug_hooks): New hooks begin_block and end_block. - (debug_nothing_file_int_int): New. - * dwarf2out.c (dwarf2out_begin_block, dwarf2out_end_block): Make - static, update prototype. - (dwarf2_debug_hooks): Update. - * dwarf2out.h (dwarf2out_begin_block, dwarf2out_end_block): Remove. - * dwarfout.c (dwarfout_begin_block, dwarfout_end_block): Make - static, update prototype. - (dwarf_debug_hooks): Update. - * dwarfout.h (dwarfout_begin_block, dwarfout_end_block): Remove. - * final.c: Include debug.h. - (final_scan_insn): Use debug hooks when beginning and ending blocks. - * sdbout.c (sdbout_begin_block, sdbout_end_block): Make - static, update prototype. - (sdb_debug_hooks): Update. - * sdbout.h (sdbout_begin_block, sdbout_end_block): Remove. - * toplev.c: Distinguish between xcoff and dbx. - - * f/lex.c (ffelex_file_pop_, ffelex_file_push_, ffelex_hash_): - Call all debug hooks, not just dwarf ones. - -2001-07-11 Timothy Wall - - * config.gcc: Add configuration for AIX5/IA64. - * config/ia64/aix.h: New. AIX5/IA64-specific configuration. - * config/ia64/crt[in].asm: New. Generic static ctor/dtor - support prefix/suffix code. - * config/ia64/t-aix: New. Makefile fragment. - * config/ia64/unwind-aix.c: New. Unwind table entry lookup. - -2001-07-11 Kazu Hirata - - * recog.c (validate_change): Fix a comment typo. - -2001-07-11 Neil Booth - - * Makefile.in (c-lex.o): Wrap long lines. Depend on debug.h. - * c-lex.c (cb_file_change, cb_define, cb_undef): Use debug - hooks directly. - * dbxout.c (dbx_debug_hooks): Add new hooks. - (dbxout_start_new_source_file): Rename dbxout_start_source_file, - make static. - (dbxout_resume_previous_source_file): Rename dbxout_end_source_file, - make static. - * dbxout.h (dbxout_start_new_source_file, - dbxout_resume_previous_source_file): Delete. - * debug.c (do_nothing_debug_hooks): Add new hooks. - (debug_nothing_init_finish): Rename debug_nothing_file_charstar. - (debug_nothing_int_charstar, debug_nothing_int): New. - * debug.h (gcc_debug_hooks): New hooks define, undef, - start_source_file and end_source_file. - (debug_nothing_init_finish): Rename debug_nothing_file_charstar. - (debug_nothing_int_charstar, debug_nothing_int): New. - * dwarf2out.c (dwarf2_debug_hooks): Add new hooks. Move into - the conditionally compiled section. - (dwarf2out_start_source_file, dwarf2out_end_source_file, - dwarf2out_define, dwarf2out_undef): Make static. - * dwarf2out.h (dwarf2out_start_source_file, dwarf2out_end_source_file, - dwarf2out_define, dwarf2out_undef): Remove. - * dwarfout.c (dwarf_debug_hooks): Add new hooks. - (dwarfout_start_source_file, dwarfout_end_source_file, - dwarfout_define, dwarfout_undef): Make static. - (dwarfout_start_source_file_check, - dwarfout_end_source_file_check): New. - (dwarfout_define, dwarfout_finish): Update. - * dwarfout.h (dwarfout_start_new_source_file, - dwarfout_resume_previous_source_file, dwarfout_define, - dwarfout_undef): Remove. - * sdbout.c (sdb_debug_hooks): Add new hooks. - (sdbout_start_new_source_file): Rename sdbout_start_source_file, - make static. - (sdbout_resume_previous_source_file): Rename sdbout_end_source_file, - make static, take an arg. - * sdbout.h (sdbout_start_new_source_file, - sdbout_resume_previous_source_file): Delete. - * toplev.c (debug_start_source_file, debug_end_source_file, - debug_define, debug_undef): Delete. - * toplev.h (debug_start_source_file, debug_end_source_file, - debug_define, debug_undef): Delete. - - * java/jcf-parse.c: Include debug.h. - (parse_class_file): Update to use debug hooks directly. - * java/Make-lang.in (jcf-parse.o): Depend on debug.h. - -Wed Jul 11 10:07:18 2001 Richard Kenner - - * alias.c (set_mem_alias_set): New function. - * rtl.h (set_mem_alias_set): Declare it. - * builtins.c (expand_builtin_return_addr): Call it instead of - using MEM_ALIAS_SET accessor. - (expand_builtin_setjmp_setup, expand_builtin_longjmp): Likewise. - (get_memory_rtx, expand_builtin_va_arg): Likewise. - (expand_builtin_va_copy):Likewise. - * caller-save.c (setup_save_areas): Likewise. - * calls.c (compute_argument_addresses): Likewise. - * explow.c (set_mem_attributes): Likewise. - * expr.c (emit_single_push_insn, emit_push_insn): Likewise. - (expand_assignment, store_constructor_field, store_field): Likewise. - (expand_expr_unaligned): Likewise. - * function.c (assign_stack_temp_for_type): Likewise. - (put_reg_into_stack, gen_mem_addressof): Likewise. - * ifcvt.c (noce_try_cmove_arith): Likewise. - * reload1.c (reload, alter_reg): Likewise. - * config/alpha/alpha.c (get_aligned_mem): Likewise. - (alpha_set_memflags_1, alpha_expand_unaligned_load): Likewise. - (alpha_expand_unaligned_store): Likewise - (alpha_expand_unaligned_load_words): Likewise. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_block_clear, alpha_expand_prologue): Likewise. - (alpha_expand_epilogue): Likewise. - * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. - * config/clipper/clipper.c (clipper_builtin_saveregs): Likewise. - * config/i386/i386.c (legitimize_pic_address): Likewise. - * config/i960/i960.c (setup_incoming_varargs): Likewise. - * config/ia64/ia64.c (spill_restore_mem): Likewise. - * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. - * config/m8k/m88k.c (m88k_builtin_saveregs): Likewise. - * config/mips/mips.c (mips_va_arg): Likewise. - * config/mn10300/mn10300.c (mn10300_builtin_saveregs): Likewise. - * config/pa/pa.c (hppa_builtin_saveregs): Likewise. - * config/rs6000/rs6000.c (rs6000_emit_move): Likewise. - (setup_incoming_varargs, rs6000_va_arg): Likewise. - (rs6000_emit_eh_toc_restore, rs6000_emit_prologue): Likewise. - (rs6000_emit_epilogue): Likewise. - * config/sh/sh.c (sh_builtin_saveregs): Likewise. - * config/sparc/sparc.c (sparc_va_arg): Likewise. - * config/v850/v850.c (v850_va_arg): Likewise. - -Wed Jul 11 21:27:25 CEST 2001 Jan Hubicka - - * flow.c (merge_blocks_move_successor_nojumps): Do not crash - when fallthru edge is present. - (mege_blocks): Handle case where creation of jump insn - is required. - - * basic-block.h (CLEANUP_EXPENSIVE, CLEANUP_CROSSJUMP, - CLEANUP_POST_REGSTACK): New constants. - * except.c (finish_eh_generation): Update call of cleanup_cfg, - * jump.c (rtx_renumbered_equal_p): Handle 't' fields. - * output.h (cleanup_cfg): Update prototype. - * reg-stack.c (reg_to_stack): Use cleanup_cfg instead of jump_optimize - * sibcall.c (optimize_sibling_and_tail_recursive_call): Update - cleanup_cfg call; kill missleading comment. - * toplev.c (rest_of_compilation): Update all cleanup_cfg calls. - * flow.c (merge_blocks, try_optimize_cfg, cleanup_cfg): Accept mode - parameter; control optimizations performed using it. - (flow_find_cross_jump, outgoing_edges_match, try_crossjump_to_edge, - try_crossjump_bb): New functions. - -2001-07-11 John David Anglin - - * pa.c (pa_output_function_prologue): Delete prototype. Make function - extern. - * pa.h (ASM_OUTPUT_MI_THUNK): Rename output_function_prologue to - pa_output_function_prologue. - * pa-protos.h (pa_output_function_prologue): New prototype. - -2001-07-11 John David Anglin - - * stmt.c (emit_case_nodes): Widen high and low instead of new_bound - and low to get correct sign extension in low+high test. - -2001-07-11 Janis Johnson - - * gcov.c (arcdata): Use gcov_type to fix branch percentage - for large hit count. - - * profile.c (branch_prob): Fix .bbg info for computed gotos - and C++ EH code. - -2001-07-11 Mark Mitchell - - * stmt.c (parse_output_constraint): New function, split out - from ... - (expand_asm_operands): ... here. Use parse_output_constraint. - * tree.h (parse_output_constraint): Declare it. - -2001-07-11 Richard Henderson - - * bitmap.c: Comment some functions; fiddle whitespace. - (bitmap_free): Don't export. - (bitmap_element_allocate): Use memset. - * bitmap.h (bitmap_free): Don't declare. - -2001-07-11 Daniel Berlin - - * gcse.c, lcm.c, sched-deps.c: - s/free on sbitmap vectors/sbitmap_vector_free on sbitmap vectors/g - - * flow.c (flow_loops_find): Free dom if we found no loops, since - we aren't going to save it. - - * lcm.c (pre_edge_rev_lcm): Free st_antin, st_antout when we are - done. - -Wed Jul 11 09:00:48 2001 Jeffrey A Law (law@cygnus.com) - - * ssa-ccp.c (ssa_fast_dce): Free worklist when completed. - -Wed Jul 11 10:07:18 2001 Richard Kenner - - * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Add dummy version - #ifndef DWARF2_DEBUGGING_INFO. - -2001-07-11 Richard Sandiford - - * simplify-rtx.c (simplify_gen_subreg): Return null for QUEUED rtxes. - -2001-07-11 Richard Sandiford - - * config/mips/mips.c (gen_int_relational): Tell the caller not to - reverse a branch if a NE comparison is implemented with GTU. - -2001-07-11 Richard Sandiford - H.J. Lu - - * mips.md (call_internal1): Use CONSTANT_ADDRESS_P to check for - constant addresses. - (call_internal2): Likewise. - (call_value_internal1): Likewise. - (call_value_internal2): Likewise. - (call_value_multiple_internal1): Likewise. - (call_value_multiple_internal2): Likewise. - -2001-07-10 Kazu Hirata - - * calls.c (emit_library_call_value_1): Fix a comment typo. - * dwarf2out.c (mem_loc_descriptor): Likewise. - * config/i386/i386.c (ix86_expand_aligntest): Likewise. - -2001-07-11 David Billinghurst - - * simplify-rtx.c (simplify_subreg): Fix typo in comment - -Tue Jul 10 07:27:53 2001 Richard Kenner - - * recog.c (offsettable_address_p): Handle LO_SUM case. - * config/mips/mips.c (double_memory_operand): Use adjust_address_nv - instead of plus_constant. - -2001-07-10 Stephane Carrez - - * reload1.c (merge_assigned_reloads): After a RELOAD_OTHER merge, - fix setting of the reloads of that reload to RELOAD_FOR_OTHER_ADDRESS. - -Tue Jul 10 07:27:53 2001 Richard Kenner - - * config/rs6000/rs6000.c (print_operand, case 'L', 'Y', 'Z'): Use - adjust_address_nv instead of plus_constant. - -2001-07-10 Neil Booth - - * Makefile.in (toplev.o, sdbout.o, dbxout.o, dwarfout.o, - dwarf2out.o): Depend on debug.h, wrap long lines. - * dbxout.c: Include debug.h. - (dbx_debug_hooks): New. - (dbxout_init): Make static, take just 2 args. - (dbxout_finish): Make static. - * dbxout.h (dbxout_init, dbxout_finish): Delete. - * debug.c: New file. - * debug.h: New file. - * dwarf2out.c: Include debug.h. - (dwarf2_debug_hooks): New. - (dwarf2out_init): Make static. - (dwarf2out_finish): Make static, take 2 args. - * dwarf2out.h (dwarf2out_init, dwarf2out_finish): Delete. - * dwarfout.c: Include debug.h. - (dwarf_debug_hooks): New. - (dwarfout_init): Make static. - (dwarfout_finish): Make static, take 2 args. - * dwarfout.h (dwarfout_init, dwarfout_finish): Delete. - * sdbout.c: Include debug.h. - (sdb_debug_hooks): New. - (sdbout_init): Make static, take 2 args. - * sdbout.h (sdbout_init): Delete. - * toplev.c: Include debug.h. - (debug_hooks): New. - (compile_file): Set deubg_hooks based on command line options. - Use the hooks unconditionally rather than conditional compilation. - -Tue Jul 10 09:04:45 2001 Jeffrey A Law (law@cygnus.com) - - * ssa-ccp.c (first_phi_node): Remove. Replace uses with calls to - first_insn_after_basic_block_note instead. - - * df.c (df_bb_refs_unlink): #if 0 out for now. - -2001-07-10 David Billinghurst - - * diagnostic.c (finish_diagnostic): Rename to - diagnostic_finish. Make it take an 'output_buffer *'. Adjust - calls thourghout. - -2001-07-10 Jason Merrill - - * dwarf2out.c (dwarf2out_line): Emit -dA comment even when we have - .loc support. - - * collect2.c (main): Set COLLECT_NO_DEMANGLE for subprocesses. - (dump_file): Only pad the demangled name with spaces if the - mangled name was padded with spaces. - -2001-07-10 Bernd Schmidt - - * bb-reorder.c (make_reorder_chain_1): Correct branch/fallthru - edge detection. - -Tue Jul 10 07:27:53 2001 Richard Kenner - - * expr.c (expand_expr, case COMPONENT_REF): Don't force using bitfield - extraction if no direct load if either EXPAND_CONST_ADDRESS or - EXPAND_INITIALIZER. - - * emit-rtl.c (adjust_address, adjust_address_nv): Change criteria for - whether can put offset inside LO_SUM to check mode alignment, not size. - -2001-07-10 Gabriel Dos Reis - - * doc/tm.texi (Misc): Fix thinko. - -2001-07-10 Jan van Male - - * regmove.c (replace_in_call_usage): Fix warnings. - * sched-deps.c (add_dependence): Fix warnings. - * simplify-rtx.c (simplify_subreg): Likewise. - Return NULL_RTX instead of NULL. - - * reg-stack.c (emit_swap_insn): Eliminate warnings. - (subst_asm_stack_regs): Likewise. - - * combine.c (num_sign_bit_copies): Cast bitwidth to int to avoid - warnings. - - * dwarf2out.c (output_call_frame_info): Declare i as int. - (build_abbrev_table): Declare n_alloc as int. - (dwarf2out_finish): Initialize die. - * except.c: Declare sjlj_funcdef_number as unsigned. - (connect_post_landing_pads): Declare j as unsigned. - (convert_to_eh_region_ranges): Initialize call_site. - (output_function_exception_table): Initialize tt_format_size. - * expr.c (move_by_pieces_1): Initialize to1. - (store_constructor): Initialize minelt and maxelt. - * flow.c (mark_regs_live_at_end): Declare i as unsigned. - * function.c (instantiate_decls): Avoid signed/unsigned warning. - - * c-decl.c (combine_parm_decls): Unused, remove. - * c-tree.h: Remove prototype for combine_parm_decls. - - * reload.c (push_reload): Fix warning. - (regno_clobbered_p): Likewise. - * reload1.c (replace_pseudos_in_call_usage): Likewise. - (reload_combine): Likewise. - - * bitmap.c: Rename bitmap_zero to bitmap_zero_bits to fix warnings. - * bitmap.h: Rename bitmap_zero to bitmap_zero_bits to fix - warnings. - * bitmap.c (bitmap_operation): Change user. - * bitmap.h (EXECUTE_IF_AND_COMPL_IN_BITMAP): Likewise. - -2001-07-10 Eric Christopher - - * config/mips/mips.c (override_options): Fix typo. - -2001-07-09 Stan Shebs - - * target.h (struct gcc_target): New fields init_builtins and - expand_builtin. - * target-def.h (TARGET_INIT_BUILTINS): New macro. - (TARGET_EXPAND_BUILTIN): New macro. - (TARGET_INITIALIZER): Add them. - * builtins.c: Include target.h. - (expand_builtin): Use targetm.expand_builtin. - (default_init_builtins): New function. - (default_expand_builtin): New function. - * expr.h (default_init_builtins): Declare. - (default_expand_builtin): Declare. - * c-common.c (c_common_nodes_and_builtins): Use - targetm.init_builtins. - * defaults.h (MD_INIT_BUILTINS): Remove. - * Makefile.in (builtins.o): Depend on target.h. - - * config/arm/arm.c (TARGET_INIT_BUILTINS): Define. - (TARGET_EXPAND_BUILTIN): Define. - * config/arm/arm.h (MD_INIT_BUILTINS): Remove. - (MD_EXPAND_BUILTIN): Remove. - - * config/c4x/c4x.c (TARGET_INIT_BUILTINS): Define. - (TARGET_EXPAND_BUILTIN): Define. - (c4x_init_builtins): Make endlink arg a local. - (c4x_print_operand): Fix typos in adjust_address usages. - * config/c4x/c4x-protos.h (c4x_init_builtins): Update decl. - * config/c4x/c4x.h (MD_INIT_BUILTINS): Remove. - (MD_EXPAND_BUILTIN): Remove. - - * config/i386/i386.c (TARGET_INIT_BUILTINS): Define. - (TARGET_EXPAND_BUILTIN): Define. - (ix86_init_mmx_sse_builtins): New function, was ix86_init_builtins. - (ix86_init_builtins): Call new function only if TARGET_MMX. - * config/i386/i386-protos.h (ix86_init_mmx_sse_builtins): Declare. - * config/i386/i386.h (MD_INIT_BUILTINS): Remove. - (MD_EXPAND_BUILTIN): Remove. - - * config/ia64/ia64.c (TARGET_INIT_BUILTINS): Define. - (TARGET_EXPAND_BUILTIN): Define. - * config/ia64/ia64.h (MD_INIT_BUILTINS): Remove. - (MD_EXPAND_BUILTIN): Remove. - - * doc/tm.texi: Document these changes. - -2001-07-09 Diego Novillo - - * basic-block.h (tree_node): Forward declare if needed. - (struct basic_block_def): Add fields 'head_tree' and 'end_tree'. - (BLOCK_HEAD_TREE): Define. - (BLOCK_END_TREE): Define. - (struct loops): Rename field 'tree' to 'tree_root'. - * flow.c (entry_exit_blocks): Add initializers for 'head_tree' and - 'end_tree'. - (flow_loops_tree_build): Rename reference to field 'tree' to - 'tree_root'. - (flow_loops_level_compute): Ditto. - * predict.c (estimate_bb_frequencies): Ditto. - * tree.h (struct tree_common): Add field 'aux'. - -2001-07-09 Stan Shebs - - * config/darwin.c (darwin_encode_section_info): Don't mark any - DECL_EXTERNAL node as defined. - -2001-07-09 John David Anglin - - * pa.c (pa_init_machine_status, pa_mark_machine_status, - pa_free_machine_status, hppa_init_pic_save): Delete. - (hppa_pic_save_rtx): New. Use get_hard_reg_initial_val. - (hppa_profile_hook): Use hppa_pic_save_rtx. - * pa.h (struct machine_function, PIC_OFFSET_TABLE_SAVE_RTX, - hppa_init_pic_save): Delete. - (hppa_pic_save_rtx): Declare. - * pa.md (call, call_value, sibcall, sibcall_value, - builtin_setjmp_receiver): Use hppa_pic_save_rtx. - -2001-07-09 Kazu Hirata - - * config/h8300/t-h8300 (LIB1ASMFUNCS): Add _floatdisf and _fixsfdi. - * config/mn10200/t-mn10200 (LIB1ASMFUNCS): Likewise. - -2001-07-09 Andreas Jaeger - - * output.h: Add declaration of final_forward_branch_p. - - * config/i386/i386.c (output_fix_trunc): Remove unused variable. - - * varray.c: Include errors.h for internal_error and trim_filename - declarations. - - * Makefile.in (varray.o): Add errors.h. - -2001-07-09 Toon Moene - - * expr.h: Adjust prototypes for have_add2_insn, have_sub2_insn. - * optabs.c (have_add2_insn): Check whether the add insn chosen - really accepts the operands. (have_sub2_insn): Ditto for sub insn. - * reload1.c (reload_cse_move2add): Adjust calls of have_add2_insn. - -Mon Jul 9 13:26:40 2001 Jeffrey A Law (law@cygnus.com) - - * Makefile.in (OBJS): Add ssa-ccp.o - (ssa-ccp.o): Add dependencies. - * toplev.c (DFI_ssa_ccp): New dump file enum. - (dump_file): Add entry for dumping after SSA CCP. - (flag_ssa_ccp): New flag variable. - (f_options): Add -fssa-ccp. - (rest_of_compilation): Run SSA CCP if requested. - * timevar.def (TV_SSA_CCP): New timevar. - * ssa.c (mark_phi_and_copy_regs): Handle deleted PHI nodes. - * doc/gcc.texi (Passes): Add documentation for SSA CCP pass. - Fix minor typo in SSA DCE documentation. - * doc/invoke.texi: Add documentation for new flag -fssa-ccp. - Add documentation for new dump option. Renumber dump files - appropriately. - -Mon Jul 9 21:36:00 CEST 2001 Jan Hubicka - - * emit-rtl.c (gen_highpart_mode): New. - * rtl.h (gen_highpart_mode): Declare. - * sparc.md (insn splitters): Use gen_highpart_mode, whenever the - operand can be VOIDmode constant. - -Mon Jul 9 17:23:10 CEST 2001 Jan Hubicka - - * flow.c (redirect_edge_and_branch_force): New. - (can_fallthru): Ensure that basic blocks are succeeding. - (try_optimize_cfg): Do not delete basic block if it is the last one. - - * flow.c (try_redirect_by_replacing_jump): Do not remove - jumps with side effects, unlink chain on fallthru edge; - set block for new jump instruction; avoid basic block to - over by line number note. - - * flow.c (try_simplify_condjump): Verify that the condjump - is not always falling through. - - Re-install patch: - * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter. - - * flow.c (forwarder_block_p): Fix for fallthru blocks. - (try_redirect_by_replacing_jump): Update properly the count - and frequency information. - -Mon Jul 9 06:41:07 2001 Richard Kenner - - * emit-rtl.c (adjust_address, adjust_address_nv): Handle an - address that is a LO_SUM specially. - * explow.c (plus_constant_wide, case LO_SUM): Deleted. - - * c-lang.c (start_cdtor): Remove extra parameter from start_function. - - * emit-rtl.c (adjust_address_nv, replace_equiv_address_nv): New fcns. - (operand_subword): Use them. - (change_address_1): Renamed from change_address; new arg VALIDATE. - * expr.h: Reflect above changes; change_address now macro. - * alias.c (canon_rtx): Use replace_equiv_address_nv instead of - making MEM. - * cselib.c (add_mem_for_addr): Likewise. - * expr.c (protect_from_queue, emit_move_insn_1): Likewise. - * regmove.c (try_apply_stack_adjustment): Likewise. - * reload.c (push_reload, make_memloc): Likewise. - * reload1.c (eliminate_regs): Likewise. - * simplify-rtx.c (simplify_replace_rtx): Likewise. - * caller-save.c (setup_save_areas): Use adjust_address_nv instead of - adjust_addess. - * combine.c (make_extraction, simplify_shift_const): Likewise. - (gen_lowpart_for_combine): Likewise. - * cse.c (gen_lowpart_if_possible): Likewise. - * function.c (fixup_var_refs_1, purge_addressof_1): Likewise. - * expr.c (expand_expr, case COMPONENT_REF): Likewise. - * optabs.c (gen_move_insn): Likewise. - * reload1.c (alter_reg): Likewise. - * simplify-rtx.c (simplify_subreg): Likewise. - * stmt.c (expand_anon_union_decl): Likewise. - * recog.c (validate_replace_rtx_1): Likewise. - (expr.h): Include. - * Makefile.in (recog.o): Add $(EXPR_H). - * explow.c (stabilize): Call replace_equiv_address. - * expr.c (move_by_pieces_1, store_by_pieces_2): Likewise. - * final.c (alter_subreg): OFFSET is HOST_WIDE_INT. - -2001-07-03 Andrew Haley - - * expmed.c (store_fixed_bit_field): Don't use a mode bigger than - the mode of the memory location. - -2001-07-09 Bo Thorsen - - * config/i386/unix.h (ASM_OUTPUT_MI_THUNK): Fix x86-64 vtable support. - -2001-07-09 Neil Booth - - * final.c (output_addr_const): Use target opening and - closing parentheses. - * target-def.h: Define TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN - defaults, add to TARGET_ASM_OUT. - * target.h (struct gcc_target): Add open_paren and close_paren. - * doc/md.texi: Update. - * doc/tm.texi: Document TARGET_ASM_FUNCTION_END_PROLOGUE, - TARGET_ASM_FUNCTION_BEGIN_EPILOGUE, TARGET_ASM_OPEN_PAREN and - TARGET_ASM_CLOSE_PAREN. - * config/i386/i386.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN): - Override. - * config/pdp11/pdp11.c (TARGET_ASM_OPEN_PAREN, TARGET_ASM_CLOSE_PAREN): - Override. - * config/1750a/1750a.h (ASM_OPEN_PAREN, ASM_CLOSE_PAREN): Remove. - * config/a29k/a29k.h: Similarly. - * config/alpha/alpha.h: Similarly. - * config/arc/arc.h: Similarly. - * config/arm/aof.h: Similarly. - * config/arm/aout.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/i370/i370.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. - -2001-07-09 Joseph S. Myers - - * doc/c-tree.texi: Document representation of attributes. - -2001-07-08 Joseph S. Myers - - * doc/tm.texi: Update some places for the rename of target to - targetm. Fix typo. - -2001-07-08 Joseph S. Myers - - * target.h (struct gcc_target): Add insert_attributes. - * target-def.h (TARGET_INSERT_ATTRIBUTES): Define. - (TARGET_INITIALIZER): Update. - * tree.c, tree.h (default_insert_attributes): New function. - Update comments on other default functions to refer to targetm, - not target. - * doc/tm.texi (INSERT_ATTRIBUTES): Update to document - TARGET_INSERT_ATTRIBUTES. - (SET_DEFAULT_DECL_ATTRIBUTES): Remove. - * c-common.c (decl_attributes): Use targetm.insert_attributes. - Don't use PRAGMA_INSERT_ATTRIBUTES. - * Makefile.in (c-common.o): Depend on $(TARGET_H). - * c-decl.c (start_decl, start_function): Don't call - SET_DEFAULT_DECL_ATTRIBUTES. - * config/c4x/c4x.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define. - * config/c4x/c4x-protos.h (c4x_set_default_attributes): Don't - declare. - * config/c4x/c4x.c (TARGET_INSERT_ATTRIBUTES): Define. - (c4x_check_attribute): Avoid modifying attribute list itself. - (c4x_set_default_attributes): Rename to c4x_insert_attributes. - Make static. - * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Don't define. - * config/sh/sh-protos.h (sh_pragma_insert_attributes): Don't - declare. - * config/sh/sh.c (TARGET_INSERT_ATTRIBUTES): Define. - (sh_pragma_insert_attributes): Rename to sh_insert_attributes. - Make static. - * config/v850/v850.h (SET_DEFAULT_DECL_ATTRIBUTES): Don't define. - * config/v850/v850-protos.h (v850_set_default_decl_attr): Don't - declare. - * config/v850/v850.c (TARGET_INSERT_ATTRIBUTES): Define. - (v850_set_default_decl_attr): Rename to v850_insert_attributes. - Adjust parameters. Make static. - -2001-07-08 Joseph S. Myers - - * c-common.c (decl_attributes): Only take a single attributes - parameter. - * c-common.h (decl_attributes): Update prototype. - * c-decl.c (start_decl, start_function): Only take a single - attributes parameter. Update calls to decl_attributes. - (finish_struct, finish_enum): Update calls to decl_attributes. - (push_parm_decl): Expect unified list of attributes. Update call - to decl_attributes. - * c-parse.in (fndef, initdcl, notype_initdcl, nested_function, - notype_nested_function, component_declarator, - component_notype_declarator, label): Update calls to - decl_attributes. - (absdcl_maybe_attribute, parm, firstparm, myparm): Unify attribute - lists that are passed to push_parm_decl. - * c-tree.h (start_function, start_decl): Update prototypes. - * config/sh/sh-protos.h, config/sh/sh.c - (sh_pragma_insert_attributes): Only take a single attributes - parameter. - * config/sh/sh.h (PRAGMA_INSERT_ATTRIBUTES): Likewise. - * doc/tm.texi (INSERT_ATTRIBUTES): Update. - * objc/objc-act.c (define_decl, generate_objc_symtab_decl, - build_module_descriptor, generate_static_references, - generate_strings, build_selector_translation_table, - generate_descriptor_table, generate_protocols, - generate_ivars_list, generate_dispatch_table, - generate_protocol_list, generate_category, - generate_shared_structures, really_start_method, add_objc_decls, - generate_classref_translation_entry): Update calls to start_decl - and start_function. - (build_tmp_function_decl, start_method_def): Unify attribute lists - that are passed to push_parm_decl. - -2001-07-08 Neil Booth - - * final.c (no_asm_to_stream): New. - (final_scan_insn): Use target structures for prologue ends - and epilogue starts. - * output.h (no_asm_to_stream): New. - * target-def.h (TARGET_ASM_FUNCTION_END_PROLOGUE, - TARGET_ASM_FUNCTION_BEGIN_EPILOGUE): New. - (TARGET_ASM_OUT): Update. - * target.h (struct gcc_target): New members function_end_prologue - and function_begin_epilogue. - * config/1750/1750.h (ASM_OUTPUT_FUNNAM): Delete as unused. - * config/alpha/alpha-protos.h (output_end_prologue): Delete. - * config/alpha/alpha.c (output_end_prologue): Rename to - alpha_output_function_end_prologue. Use in target struct - and make static. - * config/alpha/alpha.h (FUNCTION_END_PROLOGUE): Delete. - * config/ia64/ia64-protos.h (ia64_output_end_prologue): Delete. - * config/ia64/ia64.c (ia64_output_end_prologue): Rename to - ia64_output_function_end_prologue. Use in target struct - and make static. - (ia64_function_prologue, ia64_function_epilogue): Rename - mistyped prototypes. - * config/ia64/ia64.h (FUNCTION_END_PROLOGUE): Delete. - * config/m88k/m88k-protos.h (m88k_end_prologue, m88k_begin_epilogue): - Delete. - * config/m88k/m88k.c (m88k_end_prologue, m88k_begin_epilogue): Rename - an use in target struct, make static. - * config/ia64/ia64.h (FUNCTION_END_PROLOGUE, FUNCTION_BEGIN_EPILOGUE): - Delete. - -2001-07-08 Richard Henderson - - * stmt.c (emit_case_nodes): Convert modes properly in low+high test. - -2001-07-08 Richard Henderson - - * config/i386/i386.md: Remove constraints strings from define_split - and define_peephole2 patterns. - (eh_return_si, eh_return_di): Split eh_return_1 for modes. - (eh_return): Use them. - -2001-07-08 Richard Henderson - - * doc/tm.texi (Exception Handling): New subnode of Stack and Calling. - Document MD_FALLBACK_FRAME_STATE_FOR. - -2001-07-07 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_initial_elimination_offset): - Take into account m68hc11_sp_correction for FRAME_POINTER_REGNUM - elimination. - * config/m68hc11/m68hc11.h (STARTING_FRAME_OFFSET): Use 0. - -2001-07-07 Nick Clifton - - * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Append # to end - of the label inside NAME as opposed to just the end of NAME. - -2001-07-07 Neil Booth - - * config/alpha/alpha-protos.h (vms_valid_decl_attribute_p): Delete. - * config/alpha/alpha.c (alpha_init_machine_status, - alpha_mark_machine_status, alpha_free_machine_status): Delete. - (TARGET_VALID_DECL_ATTRIBUTE): Define for VMS. - (vms_valid_decl_attribute_p): Make static, conditionally compile. - * config/alpha/alpha.h (VALID_MACHINE_DECL_ATTRIBUTE): Delete. - -2001-07-06 Stan Shebs - - * target.h (targetm): Rename global from "target", so as not to - conflict with local variables. - * c-decl.c: Ditto. - * c-typeck.c: Ditto. - * final.c: Ditto. - * tree.c: Ditto. - * cp/decl.c: Ditto. - * cp/decl2.c: Ditto. - * cp/typeck.c: Ditto. - * 1750a/1750a.c: Ditto. - * a29k/a29k.c: Ditto. - * arc/arc.c: Ditto. - * arm/arm.c: Ditto. - * avr/avr.c: Ditto. - * clipper/clipper.c: Ditto. - * convex/convex.c: Ditto. - * d30v/d30v.c: Ditto. - * dsp16xx/dsp16xx.c: Ditto. - * elxsi/elxsi.c: Ditto. - * fr30/fr30.c: Ditto. - * h8300/h8300.c: Ditto. - * i370/i370.c: Ditto. - * i386/i386.c: Ditto. - * i860/i860.c: Ditto. - * i960/i960.c: Ditto. - * ia64/ia64.c: Ditto. - * m32r/m32r.c: Ditto. - * m68hc11/m68hc11.c: Ditto. - * m68k/m68k.c: Ditto. - * m88k/m88k.c: Ditto. - * mips/mips.c: Ditto. - * ns32k/ns32k.c: Ditto. - * pa/pa.c: Ditto. - * pdp11/pdp11.c: Ditto. - * romp/romp.c: Ditto. - * rs6000/rs6000.c: Ditto. - * sh/sh.c: Ditto. - * sparc/sparc.c: Ditto. - * vax/vax.c: Ditto. - * we32k/we32k.c: Ditto. - * doc/tm.texi: Update the manual to match. - -2001-07-06 Richard Henderson - - * except.h (MUST_USE_SJLJ_EXCEPTIONS): Examine the value of - DWARF2_UNWIND_INFO not just whether it is defined. - -2001-07-06 Diego Novillo - - * combine.c (combine_simplify_rtx): Also recompute 'mode' if the - call to simplify_binary_operation returns a new pattern. - -2001-07-06 Roman Lechtchinsky - - * glimits.h (__SHRT_MAX__): New. - (SHRT_MIN, USHRT_MAX): Define in terms of SHRT_MAX. - (SHRT_MAX): Define in terms of __SHRT_MAX__. - -2001-07-06 Jan van Male - - * alias.c (base_alias_check): Cast GET_MODE_UNIT_SIZE to int to - avoid warnings. - -2001-07-06 Richard Henderson - - * bitmap.c (bitmap_release_memory): Move adjacent to the - allocation functions. - (bitmap_first_set_bit, bitmap_last_set_bit): Streamline knowing - the implementation. Binary search for the set bit. - (bitmap_union_of_diff): Allocate the temporary on the stack - instead of using xmalloc. - -2001-07-06 Richard Henderson - - * genrecog.c (validate_pattern): Warn for constraints in - define_{expand,split,peephole2}. Remove strict_low_part - before looking up match_dup. - -2001-07-06 DJ Delorie - - * doc/gcc.texi (Makefile): Rename to be a more general purpose - chapter about various build hints and history. Add section - talking about the various types of native and cross builds. - -2001-07-06 Neil Booth - - * Makefile.in (final.o): Depend on target.h. - * final.c: Include target.h. - (default_function_pro_epilogue): New. - (final_start_function): Use target structure for function prologues. - (final_end_function): Use target structure for function epilogues. - * fold-const.c (real_hex_to_f): Constify s and p. - * output.h (default_function_pro_epilogue): New. - * real.h (real_hex_to_f): Update prototype. - * target-def.h (TARGET_ASM_FUNCTION_PROLOGUE, - TARGET_ASM_FUNCTION_EPILOGUE, TARGET_ASM_OUT): New. - (TARGET_INITIALIZER): Update. - * target.h (gcc_target): Add struct asm_out. - * doc/tm.texi: Update. - -config: - Update each arch to use TARGET_ASM_FUNCTION_PROLOGUE and - TARGET_ASM_FUNCTION_EPILOGUE. Move macro code to functions - in cpu/cpu.c, or rename old functions consistently. Take - a HOST_WIDE INT not an int as the SIZE parameter. Remove now - redundant macros and prototypes. Make new functions static. - - * 1750a/1750a.c: Similarly. - * 1750a/1750a.h: Similarly. - * a29k/a29k-protos.h: Similarly. - * a29k/a29k.c: Similarly. - * a29k/a29k.h: Similarly. - * arc/arc-protos.h: Similarly. - * arc/arc.c: Similarly. - * arc/arc.h: Similarly. - * arm/arm-protos.h: Similarly. - * arm/arm.c: Similarly. - * arm/arm.h: Similarly. - * avr/avr-protos.h: Similarly. - * avr/avr.c: Similarly. - * avr/avr.h: Similarly. - * clipper/clipper-protos.h: Similarly. - * clipper/clipper.c: Similarly. - * clipper/clipper.h: Similarly. - * convex/convex.c: Similarly. - * convex/convex.h: Similarly. - * d30v/d30v-protos.h: Similarly. - * d30v/d30v.c: Similarly. - * d30v/d30v.h: Similarly. - * d30v/d30v.md: Similarly. - * dsp16xx/dsp16xx-protos.h: Similarly. - * dsp16xx/dsp16xx.c: Similarly. - * dsp16xx/dsp16xx.h: Similarly. - * elxsi/elxsi.c: Similarly. - * elxsi/elxsi.h: Similarly. - * fr30/fr30.c: Similarly. - * fr30/fr30.md: Similarly. - * h8300/h8300-protos.h: Similarly. - * h8300/h8300.c: Similarly. - * h8300/h8300.h: Similarly. - * i370/i370-protos.h: Similarly. - * i370/i370.c: Similarly. - * i370/i370.h: Similarly. - * i386/i386.c: Similarly. - * i386/osf1elf.h: Similarly. - * i386/osfrose.h: Similarly. - * i860/i860-protos.h: Similarly. - * i860/i860.c: Similarly. - * i860/i860.h: Similarly. - * i960/i960-protos.h: Similarly. - * i960/i960.c: Similarly. - * i960/i960.h: Similarly. - * ia64/ia64-protos.h: Similarly. - * ia64/ia64.c: Similarly. - * ia64/ia64.h: Similarly. - * m32r/m32r-protos.h: Similarly. - * m32r/m32r.c: Similarly. - * m32r/m32r.h: Similarly. - * m68hc11/m68hc11-protos.h: Similarly. - * m68hc11/m68hc11.c: Similarly. - * m68hc11/m68hc11.h: Similarly. - * m68k/crds.h: Similarly. - * m68k/dpx2.h: Similarly. - * m68k/m68k-protos.h: Similarly. - * m68k/m68k.c: Similarly. - * m68k/m68k.h: Similarly. - * m68k/news.h: Similarly. - * m88k/m88k-protos.h: Similarly. - * m88k/m88k.c: Similarly. - * m88k/m88k.h: Similarly. - * mips/mips-protos.h: Similarly. - * mips/mips.c: Similarly. - * mips/mips.h: Similarly. - * ns32k/merlin.h: Similarly. - * ns32k/ns32k.c: Similarly. - * ns32k/ns32k.h: Similarly. - * ns32k/tek6000.h: Similarly. - * pa/pa-protos.h: Similarly. - * pa/pa.c: Similarly. - * pa/pa.h: Similarly. - * pdp11/2bsd.h: Similarly. - * pdp11/pdp11-protos.h: Similarly. - * pdp11/pdp11.c: Similarly. - * pdp11/pdp11.h: Similarly. - * romp/romp-protos.h: Similarly. - * romp/romp.c: Similarly. - * romp/romp.h: Similarly. - * rs6000/rs6000-protos.h: Similarly. - * rs6000/rs6000.c: Similarly. - * rs6000/rs6000.h: Similarly. - * rs6000/sysv4.h: Similarly. - * sh/sh-protos.h: Similarly. - * sh/sh.c: Similarly. - * sh/sh.h: Similarly. - * sparc/sparc-protos.h: Similarly. - * sparc/sparc.c: Similarly. - * sparc/sparc.h: Similarly. - * vax/vax.c: Similarly. - * vax/vax.h: Similarly. - * vax/vms.h: Similarly. - * we32k/we32k.c: Similarly. - * we32k/we32k.h: Similarly. - -Fri Jul 6 11:47:59 2001 Jeffrey A Law (law@cygnus.com) - - * basic-block.h (first_insn_after_basic_block_note): Declare. - * flow.c (first_insn_after_basic_block_note): Define. Moved - from... - * ssa.c (first_insn_after_basic_block_note): Remove. - * ssa-dce.c (find_inherently_necessary): Consider BARRIERs - necessary. - (ssa_eliminate_dead_code): Properly update the CFG and PHI - nodes when we find a dead conditional branch. Insert BARRIERs - after any blocks with no successors, but which do not have - any BARRIERs. - -2001-07-06 Zack Weinberg - - * varray.c (varray_check_failed): Use internal_error. - -2001-07-05 Andrew Haley - - * Makefile.in (LIB2_DIVMOD_FUNCS): New. - (LIB2FUNCS): Move divmod functions to LIB2_DIVMOD_FUNCS. - * mklibgcc.in: Compile LIB2_DIVMOD_FUNCS. - -2001-07-02 Jason Merrill - - * dwarf2out.c (mem_loc_descriptor): Only look through a constant pool - reference if the target constant is also a SYMBOL_REF. - -2001-07-05 Eric Christopher - - * config/mips/mips.h (MASK_MIPS3900): Remove. - (MASK_MIPS16,MASK_NO_CHECK_ZERO_DIV,MASK_CHECK_RANGE_DIV, - MASK_UNINIT_CONST_IN_RODATA): Change for 3900 mask removal. - (TARGET_MIPS3900): Change to use mips_arch. - (TARGET_MIPS4000): New. - (TARGET_MIPS4100): New. - (TARGET_MIPS4300): New. - (TARGET_SWITCHES): Change 3900 and 4650 options to NULL. - (SUBTARGET_TARGET_OPTIONS): Add -march. Change help text - for -mipsX. - (GENERATE_BRANCHLIKELY): Move TARGET_MIPS3900. - (ISA_HAS_BRANCHLIKELY): To here. - (CC1_CPU_SPEC): New. - (CC1_SPEC): Use here. Remove 4650 and 3900 options. - (mips_arch_string): Declare. - (mips_arch): Declare. - (TARGET_OPTIONS): Add -march and -mtune. - - * config/mips/mips.c (mips_arch_string): New. - (mips_arch): New. - (override_options): Handle -march for codegen and -mtune - for scheduling. Use mips_arch. Move tx39 target default here. - (mips_parse_cpu): Move error message to override_options. - - * config/mips/r3900.h (TARGET_DEFAULT): Remove. - - * config/mips/mips.md: Use TARGET_MIPS4000 and TARGET_MIPS4300. - - * doc/invoke.texi (Option Summary): Add -march and -mtune entries. - (MIPS Options): Ditto. Change mcpu entry to historical text. - -2001-07-05 H.J. Lu (hjl@gnu.org) - - * config/mips/mips.c (mips_parse_cpu): New function to parse - -march=*/-mcpu=*. - -2001-07-05 Jim Wilson - - * config/ia64/lib1funcs.asm: Revert 2001-07-02 change. - * config/ia64/t-ia64: Likewise. - (LIB1ASMFUNCS): Update comment. - -2001-07-05 David Edelsohn - - * doc/install.texi (Install GCC: Binaries): Fix typo. - -2001-07-04 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*ashlsi3"): Operand 1 can be a memory - reference using the stack pointer, adjust it since we push Y - temporarily. - ("*ashrsi3"): Likewise. - ("*lshrsi3"): Likewise. - -2001-07-05 Stephane Carrez - - * config/m68hc11/m68hc11.h (RETURN_ADDR_RTX): Fix return address - when -fomit-frame-pointer is used. - -2001-07-05 Jeffrey Oldham - - * flow.c: Reverse Jan Hubicka's patch of 02July2001. - (try_redirect_by_replacing_jump): Reverse updating properly the - count and frequency information. Reverse removing cc0 setter. - (forwarder_block_p): Reverse fixing for fallthru blocks. - -2001-07-05 DJ Delorie - - * gcc.c (TARGET_OPTION_TRANSLATE_TABLE): New. - (translate_options): If the above is defined, use it to map - given options to new options. - * doc/tm.texi: Document it. - -2001-07-05 Brad Lucier - Gerald Pfeifer - - * doc/invoke.texi (Optimize Options): Document that -fgcse may - cause programs using computed gotos to run more slowly. - -2001-07-05 Rainer Orth - - * doc/install.texi (Specific): Markup, spelling and typo fixes. - Fixed sorting. - Consistently require binutils 2.11.2, not prereleases. - (Specific, decstation-*): Canonicalize as mips-dec-*. - (Specific, i?86-*-sco3.2v5*): Remove make bootstrap requirement, - always necessary. - (Specific, m68k-altos): Removed reference to README.altos, deleted. - (Specific, mips-*): Reword MIPS C compiler requirements. - (Specific, powerpc*-*-*): New, mention --with-cpu once. - (Specific, sunv5): Removed, obsolete. - -2001-07-05 Nathan Sidwell - - * dwarf2out.c (output_loc_list): Use an all ones mask for - .text asm output and don't rely on long long - literals. Reformat some long lines. - -2001-07-05 Andreas Jaeger - - * doc/gcc.texi (GNU/Linux): Remove accidental re-add of GPL - section. - -2001-07-04 Daniel Berlin - - * dwarf2out.c (dwarf2out_define): Update comment. - (dwarf2out_undef): Ditto. - (dwarf2out_start_source_file): Ditto. - (dwarf2out_end_source_file): Ditto. - (dwarf2out_finish): Output DW_MACINFO_end_file for primary file, - since we never call the start/end debug hook for the primary file. - -2001-07-04 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Remove an extra operand - from shll. - -2001-07-04 Nathan Sidwell - - * cppinit.c (remove_dup_dirs): Inform if a system include - directory is being reordered. - * doc/invoke.texi (Directory Options): GCC warns if you hide a - system include. - * doc/cpp.texi (Search Paths): Likewise. - * doc/gcc.texi (Interoperation): Remove information about - -I/usr/include. - -2001-07-04 Nathan Sidwell - - * varray.h (VARRAY_TOP_GENERIC_PTR): Remove spurious parameter. - (VARRAY_TOP_CHAR_PTR): Likewise. - -2001-07-04 Kaveh R. Ghazi - - * gcc.c (process_command): Don't assign elements of a const char*. - -Wed Jul 4 13:40:02 2001 Richard Kenner - - * emit-rtl.c (change_address): Don't abort if invalid address while - reload is in progress. - -2001-07-04 Daniel Berlin - - * c-lex.c (cb_file_change): Pass line number to - debug_start_source_file. - (cb_undefine): Pass correct line number to debug_undef. - - * toplev.c (debug_start_source_file): Add line number to - parameters. Pass it along to dwarf2out_start_source_file. - (decode_g_option): Stop resetting debug level back to normal when - we change debug formats, unless the current level is - none. (Before, -g3 -gdwarf-2 would use debug level 2, rather than - 3). - - * toplev.h (debug_start_source_file): Add line number to - parameters. - - * dwarf2out.h (dwarf2out_start_source_file): Add line number to - parameters. - - * dwarf2out.c (dwarf2out_start_source_file): Add line number to - parameters. - Output debug_macinfo data for starting file if requested. - (dwarf2out_end_source_file): Output debug_macinfo data for ending - file if requested. - (dwarf2out_define): Output debug_macinfo data for defining a macro - if requested. - (dwarf2out_undef): Output debug_macinfo data for undefining a - macro if requested. - (DEBUG_MACINFO_SECTION): New. DWARF2 macro info section name. - (DEBUG_MACINFO_SECTION_LABEL): New. DWARF2 macro info section label. - (macinfo_section_label): New. DWARF2 macro info section label. - (dwarf2out_init): If we want macro info, output the start label - for the section. - (dwarf2out_finish): If we want macro info, add a DW_AT_macro_info - attribute to the compilation unit die pointing to the macro info. - -2001-07-04 Daniel Berlin - - * dwarf2out.c (new_loc_list): Move to inside #ifdef - DWARF2_DEBUGGING_INFO. - (add_loc_descr_to_loc_list): Ditto. - (output_loc_list): Ditto. - Also, fix thinko in curr not being initialized. - (gen_internal_sym): Ditto. - -Wed Jul 4 13:40:02 2001 Richard Kenner - - * emit-rtl.c (replace_equiv_address): New function. - * expr.h (replace_equiv_address): New declaration. - * explow.c (validize_mem): Call it instead of change_address and - also call if -fforce-addr and address is constant. - * expr.c: Replace more calls to change_address with adjust_address - and/or replace_equiv_address or to validize_mem. - * function.c, regmove.c, config/alpha/alpha.c: Likewise. - * config/arm/arm.md, config/clipper/clipper.md: Likewise. - * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise. - * config/i370/i370.md, config/i860/i860.md: Likewise. - * config/i960/i960.md, config/mips/mips.c: Likewise. - * config/mips/mips.md, config/pa/pa.md: Likewise. - * config/pdp11/pdp11.md, config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.md, config/sh/sh.md: Likewise. - -2001-07-04 Kaveh R. Ghazi - - * bitmap.c (bitmap_union_of_diff): Don't use BITMAP_ALLOCA. - - * bitmap.h (BITMAP_ALLOCA): Don't pass alloca as an argument to a - function. - -2001-07-04 Joseph S. Myers - - * doc/include: New directory. - * doc/fdl.texi: Move to doc/include/fdl.texi. - * doc/texinfo.tex: Move to doc/include/texinfo.tex. - * doc/include/funding.texi, doc/include/gpl.texi: New files. - * doc/gcc.texi: Use funding.texi and gpl.texi. - * Makefile.in ($(docdir)/cpp.info, $(docdir)/gcc.info, - $(docdir)/cppinternals.info, cpp.dvi. gcc.dvi. cppinternals.dvi): - Update dependencies and use -I $(docdir)/include. - -2001-07-04 Anthony Green - - * config/v850/t-v850 (v850-c.o): Add missing dependencies. - -2001-07-04 Gerald Pfeifer - - * doc/install.texi (sparc64-*-*): Remove garbage. - -Wed Jul 4 09:07:44 2001 Jan van Male - - * i386.c (ix86_expand_builtin, case IX86_BUILTIN_SETPS): - Fix typo in last change to use adjust_address. - -2001-07-04 Gerald Pfeifer - - * doc/install.texi (Specific): Update information for *-*-solaris*. - -Tue Jul 3 22:33:15 2001 Richard Kenner - - * explow.c (plus_constant_wide): Reinitialize Y for restart. - -2001-07-03 Stan Shebs - - * config/darwin.h (SECTION_FUNCTION): Remove WAS_TEXT argument, remove - case for flag_no_mach_text_sections. - (EXTRA_SECTION_FUNCTIONS): Remove arg from uses of SECTION_FUNCTION. - * config/darwin.c (flag_no_mach_text_sections): Remove. - * config/darwin-protos.h (darwin_init_pragma): Remove decl. - -Tue Jul 3 15:35:52 2001 Richard Kenner - - * explow.c (plus_constant_wide, case PLUS): Call find_constant_term - and avoid checking for constant as first operand. - * recog.c (find_constant_term_loc): No longer static. - (adj_offettable_operand): Delete. - * rtl.h (adj_offsettable_operand): Delete declaration. - (find_constant_term): Add declaration. - * caller-save.c: Replace calls to adj_offsettable_operand with calls - to adjust_address. - * config/arm/arm.c, config/c4x/c4x.c: Likewise. - * config/clipper/clipper.md, config/h8300/h8300.c: Likewise. - * config/i386/i386.c, config/i386/i386.md: Likewise. - * config/i860/i860.c, config/i960/i960.c: Likewise. - * config/i960/i960.md, config/m68hc11/m68hc11.c: Likewise. - * config/m68k/m68k.c, config/m68k/m68k.md: Likewise. - * config/m88k/m88k.md, config/mcore/mcore.c: Likewise. - * config/mips/mips.c, config/mips/mips.md: Likewise. - * config/mn10200/mn10200.c, config/mn10300/mn10300.c: Likewise. - * config/ns32k/ns32k.c, config/ns32k/ns32k.md: Likewise. - * config/pa/pa.c, config/pdp11/pdp11.c: Likewise. - * config/pdp11/pdp11.md, config/sh/sh.c, config/v850/v850.c: Likewise. - * config/vax/vax.md, config/ns32k/ns32k.c: Likewise. - * config/ns32k/ns32k.md: Likewise. - -2001-07-03 Zack Weinberg - - * rtl.c (copy_rtx): Handle 'T' format letter. - * gensupport.c (collect_insn_data): Likewise. - * print-rtl.c (print_rtx): Print 'T' slots like 's'. - -2001-07-03 Nick Clifton - - * doc/invoke.texi (Directory Options): Specifiy range for in - -B option. Use 'dir' not 'foo' as example directory name. - -2001-07-03 Rainer Orth - - * config/i386/sol2.h (ASM_PREFERRED_EH_DATA_FORMAT): Define. - Fixes PRs bootstrap/3067, bootstrap/3249, bootstrap/3275. - -2001-07-03 Joseph S. Myers - - * doc/cppinternals.texi: Improve formatting and logical markup. - -2001-07-03 Andreas Jaeger - - * Makefile.in (insn-recog.o): Add dependency on reload.h. - - * genrecog.c (write_header): Include reload.h for prototypes in - insn-recog.c. - -2001-07-03 Neil Booth - -config: - * i386/cygwin.h (VALID_MACHINE_DECL_ATTRIBUTE, - VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - * i386/i386-protos.h (i386_pe_valid_decl_attribute_p, - i386_pe_valid_type_attribute_p): Add. - * i386/i386.c (TARGET_INITIALIZER): Override for cygwin targets. - * i386/winnt.c (i386_valid_decl_attribute_p): Return directly. - -Mon Jul 2 21:52:19 2001 Richard Kenner - - * explow.c (plus_constant_wide, case LO_SUM): New case. - (plus_constant_for_output_wide): Delete. - * rtl.h (plus_constant_for_output): Delete. - * alias.c (canon_rtx, init_alias_analysis): Call plus_constant - instead of plus_constant_for_output. - * recog.c (offsettable_address_p, adj_offsettable_operand): Likewise. - * config/darwin.c, config/arm/arm.c, config/m68k/m68k.c: Likewise. - * config/m88k/m88k.c, config/mips/mips.c, config/pa/pa.c: Likewise. - * config/rs6000/rs6000.c, config/sparc/sparc.c: Likewise. - * config/sparc/sparc.md: Likewise. - Convert some change_address calls to adjust_address. - -2001-07-03 Joseph S. Myers - - * doc/extend.texi, doc/gcc.texi, doc/invoke.texi, doc/md.texi, - doc/rtl.texi, doc/tm.texi: Improve formatting. Improve - documentation of -std and -Wwrite-strings. - -2001-07-02 Geoffrey Keating - - * cse.c (canon_hash): Don't register registers in very small - register classes, as extending their lifetime might cause - reload to fail. - -Mon Jul 2 23:14:00 CEST 2001 Jan Hubicka - - * flow.c (try_redirect_by_replacing_jump): Remove cc0 setter. - - * flow.c (forwarder_block_p): Fix for fallthru blocks. - (try_redirect_by_replacing_jump): Update properly the count - and frequency information. - -Mon Jul 2 14:20:13 2001 Jeffrey A Law (law@cygnus.com) - - * toplev.c (dump_file_index): Move SSA dumps just after first - jump dump. - (dump_file): Corresponding changes. - (rest_of_compilation): Move SSA path to just after the first - jump pass. - * doc/gcc.texi (Passes): Update due to movement of SSA path. - * doc/invoke.texi: Update dump file #s as they were completely - out of date with reality. - -2001-07-02 Geoffrey Keating - - * doc/tm.texi (Frame Layout): Document STACK_PUSH_CODE. - - * expr.c (emit_move_insn_1): Deal with non-default - STACK_PUSH_CODE. - - * expr.c (emit_single_push_insn): Fix warning. - -2001-07-02 Toshiyasu Morita - - * expr.c (emit_move_insn_1): Avoid modifying - cfun->expr->x_stack_pointer when PUSH_ROUNDING is defined. - -Mon Jul 2 15:33:31 2001 Richard Kenner - - * emit-rtl.c (adjust_address): New function. - * expr.h (adjust_address): Add declaration. - * builtins.c: Replace some calls to change_address with calls to it - or to validize_mem. - * caller-save.c, dwarf2out.c, except.c, expmed.c, expr.c: Likewise. - * function.c, config/a29k/a29k.md, config/alpha/alpha.c: Likewise. - * config/arm/arm.c, config/convex/convex.c: Likewise. - * config/dsp16xx/dsp16xx.md, config/fr30/fr30.c: Likewise. - * config/i386/i386.c, config/i386/i386.md: Likewise. - * config/ia64/ia64.c, config/ia64/ia64.md: Likewise. - * config/m32r/m32r.c, config/m68k/m68k.md: Likewise. - * config/m88k/m88k.c, config/mips/mips.md: Likewise. - * config/ns32k/ns32k.c, config/rs6000/rs6000.c: Likewise. - * config/sh/sh.c, config/sparc/sparc.md: Likewise. - -2001-07-02 Jim Wilson - - * config/ia64/ia64.h: Delete obsolete lib1funcs.asm comment. - -2001-07-02 Steve Ellcey - - * config/ia64/t-ia64: Change LIB1ASMFUNCS to use single underscore. - * config/ia64/lib1funcs.asm: Change macro names to match t-ia64. - -2001-07-02 Zack Weinberg - - * cppinit.c (lang_defaults): New table. - (set_lang): Just read from lang_defaults into the live options - structure. - -2001-07-02 Zack Weinberg - - * Makefile.in (doc): Depend on $(GENERATED_MANPAGES). - * doc/.cvsignore: Add gcc.1, cpp.1, gcov.1. - * doc/gcc.1, doc/cpp.1, doc/gcov.1: Removed. - -2001-07-02 Rainer Orth - - * doc/install.texi: Various spelling and markup fixes. - (Installing GCC): Component specific installation instructions are - gone. - Fix reference. - Warn about removing old install dir in the presence of shared libs. - (Configuration): Invoke with options target to match configure - --help. - Consistently refer to gas, gld pathnames. - Invert --enable-multilib documentation. - Remove references to old compiler versions. - -Mon Jul 2 12:50:51 2001 Richard Kenner - - * flow.c (try_simplify_condjump): Fix typo in updating fallthru flags. - -2001-07-02 Rainer Orth - - * doc/install.texi (Specific, mips*-sgi-irix4): Split from IRIX 5 - section. - (Specific, mips*-sgi-irix5): Note IDO download. - Reworded MIPS C hints. - Use GNU as instead of GAS. - Markup fixes. - Removed SGI Freeware reference, IRIX 6 only. - (Specific, mips*-sgi-irix6): Removed ranlib caveats, obsolete. - Note N64 library requirement/workaround. - Update O32 hints. - Complete list of structure passing bug victims. - -2001-07-02 Gerald Pfeifer - - * doc/install.texi: Remove CVS Id. - -2001-07-02 Andreas Jaeger - - * ssa-dce.c (note_inherently_necessary_set): Add unused attribute. - (find_inherently_necessary): Remove unused variable. - -2001-07-02 Nathan Sidwell - - * c-common.h (TDI_inlined): New ast dump phase. - (dump_flag_name): New function. - * c-dump.c (dump_files): Add inlined phase. - (dump_flag_name): Define. - * doc/invoke.texi (-fdump-ast-inlined): Document. - -Mon Jul 2 06:29:36 2001 Richard Kenner - - * stor-layout.c (layout_decl): Revert change to handling of alignment - in packed types. - -Sun Jul 1 11:53:52 2001 Richard Kenner - - * c-common.c (decl_attributes, case A_MODE): Don't call layout_decl - for FIELD_DECL. - -2001-07-01 Geoffrey Keating - - * doc/tm.texi (FUNCTION_ARG): Document that the last call - is special. - -2001-07-01 Nathan Sidwell - - * tlink.c (recompile_files): Remove COMPILER_PATH and - LIBRARY_PATH from the environment. - -2001-07-01 Zack Weinberg - - * c-common.h (enum rid): Add RID_FIRST_AT, RID_LAST_AT, - RID_LAST_PQ. Move RID_FIRST_PQ down with the other FIRST/LAST - enumerators. - (OBJC_IS_AT_KEYWORD, OBJC_IS_PQ_KEYWORD): New macros. - - * c-parse.in (OBJC_STRING): Kill. - (objc_string): Decompose to [objc_string] '@' STRING. - (reswords): Take the leading '@' off all the Objective-C keywords. - (objc_rid_sans_at): Kill. - (init_reswords): Don't initialize it. - (yylexname): Use OBJC_IS_AT_KEYWORD and OBJC_IS_PQ_KEYWORD. - (_yylex): Kill reconsider label. Look ahead one token after - an '@'; if we get an identifier, check whether it's an - Objective-C @-keyword. If so, return the keyword. Otherwise, - put back the token and return the '@' as a terminal. - - * cpplib.c (lex_macro_node): Remove unnecessary check for - leading '@' on identifier. Clarify control flow and commentary. - -Sun Jul 1 11:53:52 2001 Richard Kenner - - * cse.c (new_label_ref): Variable deleted. - (insert): Remove set of new_label_ref. - (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. diff --git a/gcc/ChangeLog.7 b/gcc/ChangeLog.7 deleted file mode 100644 index 022212bfa87..00000000000 --- a/gcc/ChangeLog.7 +++ /dev/null @@ -1,21543 +0,0 @@ -2002-06-30 Devang Patel - - * objc/objc-act.c (finish_file): Avoid finish_objc() if - -fsyntax-only. - -Fri Jun 28 17:22:37 2002 Denis Chertykov - Frank Ch. Eigler - Matthew Green - Richard Henderson - Dave Hudson - Jeff Johnston - Alan Lehotsky - Bernd Schmidt - Graham Stott - - * doc/extend.texi: Add ip2k port to description of attribute - naked. - * doc/install.texi (Specific): Add ip2k description. - * doc/install-old.texi (Configurations): Add ip2k to possible - cpu types. - * doc/md.texi: Document ip2k constraints. - * config/ip2k/crt0.S: New file. - * config/ip2k/ip2k-protos.h: New file. - * config/ip2k/ip2k.c: New file. - * config/ip2k/ip2k.h: New file. - * config/ip2k/ip2k.md: New file. - * config/ip2k/libgcc.S: New file. - * config/ip2k/t-ip2k: New file. - -2002-06-30 Hans-Peter Nilsson - - * config/mmix/mmix.md ("return"): New pattern. - * config/mmix/mmix.h (TARGET_MASK_USE_RETURN_INSN) - (TARGET_USE_RETURN_INSN): New macros. - (TARGET_DEFAULT): Include TARGET_MASK_USE_RETURN_INSN. - (TARGET_SWITCHES): Add -msingle-exit and -mno-single-exit. - * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Fix spacing. - (MMIX_POP_ARGUMENT): New macro. - (mmix_target_asm_function_prologue): When no epilogue is executed, - just emit a blank line. Use MMIX_POP_ARGUMENT with final POP insn. - (mmix_print_operand) : New case. - (mmix_print_operand_punct_valid_p): Match '.'. - (mmix_use_simple_return): New function. - * config/mmix/mmix-protos.h (mmix_use_simple_return): Prototype. - * doc/invoke.texi (Option Summary) : Add - -msingle-exit, -mno-single-exit. - (MMIX Options): Ditto. - -2002-06-30 Aldy Hernandez - - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Fix typos. - -2002-06-30 Kaveh R. Ghazi - - * gengtype.c (oprintf): Move VA_CLOSE after all fixedarg uses. - -2002-06-30 Alan Modra - - * unroll.c (loop_iterations): Handle EQ loops. - -2002-06-29 David Edelsohn - - * config/rs6000/rs6000.md (ctrdi): Allocate pseudo for FPR - constraint in define_expand, not splitter. - Formatting. - -2002-06-29 Aldy Hernandez - - * config/i386/i386.c (ix86_init_mmx_sse_builtins): Use - build_function_type_list instead of build_function_type. - - * config/ia64/ia64.c (ia64_init_builtins): Same. - - * config/alpha/alpha.c (alpha_init_builtins): Same. - - * config/rs6000/rs6000.c (altivec_init_builtins): Same. - - * config/arm/arm.c (arm_init_builtins): Same. - - * tree.h: Add build_function_type_list prototype. - - * tree.c (build_function_type_list): New. - -2002-06-29 Kaveh R. Ghazi - - * collect2.c (scan_prog_file): Fix typo in message. - -2002-06-28 Aaron Lehmann - - * fold-cont.c: Remove unused CHARMASK. - -2002-06-29 Neil Booth - - PR preprocessor/7150 - * cppmain.c (scan_translation_unit_trad): Simplify. - * cppmacro.c (cpp_scan_nooutput): Handle traditional case. - -2002-06-29 Neil Booth - - * config/i386/crtdll.h: Define EXTRA_OS_CPP_BUILTINS. - Don't use CPP_PREDEFINES. - * config/i386/cygwin.h (EXTRA_OS_CPP_BUILTINS): New. - Used TARGET_OS_CPP_BUILTINS in preference to CPP_PREDEFINES. - * config/i386/djgpp.h, config/i386/i386-coff.h, - config/i386/i386-interix.h, config/i386/i386-interix3.h, - config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mingw32.h, - config/i386/openbsd.h, config/i386/ptx4-i.h, config/i386/sysv3.h, - config/i386/uwin.h: Similarly. - -2002-06-29 Herman A.J. ten Brugge - - * c4x.h: (TARGET_CPU_CPP_BUILTINS): Check flag_inline_functions and - flag_inline_trees to enable inlining. - -2002-06-28 Phil Edwards - - * configure.in (gcc_gxx_include_dir): Change to match versioned - C++ headers if --enable-version-specific-runtime-libs is used. - * configure: Regenerate. - -2002-06-28 Jan Hubicka - - * gcse.c (gcse_emit_move_after): Use gen_move_insn to produce the move. - -2002-06-28 Stephen Clarke - - * combine.c (combine_simplify_rtx): Pass the mode of the - shift count, not the shift operation when trying to simplify - a shift on a SHIFT_COUNT_TRUNCATED target. - -2002-06-28 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*addsi3"): Use 'o' constraint to - avoid the auto increment addressing modes. - ("*subsi3"): Likewise. - (split for add/sub on address): For 68HC12 push the value on - the stack and do the operation with a pop. - -2002-06-28 Neil Booth - - * cpplib.c (_cpp_handle_directive): Move #define-specific - code to the #define handler... - (do_define): ...here. - (lex_macro_node): No longer a need to check for comments here. - -2002-06-28 Stephane Carrez - - * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define. - * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options): - Declare. - * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New, - do not reorder basic blocks at the end when optimizing for size. - -2002-06-28 Stephane Carrez - - * config/m68hc11/m68hc11.c (autoinc_mode): New function. - (m68hc11_make_autoinc_notes): New function. - (m68hc11_split_move): Be very cautious when spliting a move with - auto increment/decrement modes because this may result in incompatible - directions; add REG_INC notes to the resulting insn for CSE reg. - -2002-06-28 Stephane Carrez - - * config/m68hc11/m68hc11.c (register_indirect_p): For 68HC12 a constant - can be a valid address. - -2002-06-28 Aldy Hernandez - - * config/rs6000/rs6000.c: Remove unusued variables from last - patch. - -2002-06-27 Aldy Hernandez - - Revert: - * config/rs6000/rs6000.c (rs6000_override_options): Move - *SUBTARGET_OVERRIDE_OPTIONS before the -m options. - -2002-06-27 Aldy Hernandez - - * config/rs6000/rs6000.c (altivec_expand_builtin): Move - lvx/stv/dst builtins... - (altivec_expand_ld_builtin): ...to here. - (altivec_expand_st_builtin): ...here. - (altivec_expand_dst_builtin): ...and here (respectively). - -2002-06-28 Bob Wilson - - * config/xtensa/xtensa.h (RETURN_IN_MEMORY): Update comment. - -2001-06-08 Bernd Schmidt - - * emit-rtl.c (gen_lowpart_common): Don't create paradoxical FLOAT_MODE - subregs. - * recog.c (general_operand, register_operand): Disallow them. - -2002-06-28 Neil Booth - - PR preprocessor/7138 - * cpplib.c (_cpp_handle_directive): Do traditional - preparation after setting state.angled_headers. - * cpptrad.c (scan_out_logical_line): Fix potential - quote bug. - -2002-06-27 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_override_options): Move - *SUBTARGET_OVERRIDE_OPTIONS before the -m options. - -2002-06-27 Bob Wilson - - * config/xtensa/xtensa.md: Give "*xxx" names to all unnamed insn's. - (*lsiu, *ssiu, movstrsi_internal, zero_cost_loop_start, - zero_cost_loop_end): Remove unnecessary "parallel" from insns. - -2002-06-27 Roger Sayle - - * config/d30v/d30v.h: Remove commented out STACK_REGS #defines. - * config/stormy16/stormy16.h: Likewise. - - * config/stormy16/stormy16.h (CUMULATIVE_ARGS): Replace typedef - with #define. - -2002-06-26 Gerald Pfeifer - - * doc/install.texi (Binaries): Add Sinix/Reliant Unix. Move - Hitachi entry. Make punctuation more consistent. - -2002-06-27 Matt Kraai - - * doc/install.texi: Change ` bit' to `-bit'. - * doc/md.texi: Change `-bits' to `-bit'. - * doc/tm.texi: Change `-bits' to ` bits'. - -2002-06-27 Daniel Berlin - - * gcse.c (hoist_code): Rewrite to only get list of dominated - blocks once per BB. Also fix reversed test (by removing need for - the test at all). - -2002-06-27 Neil Booth - - * cpphash.h (_cpp_set_trad_context): Remove. - * cpplib.c (prepare_directive_trad): Do nothing for #define. - (cpp_push_buffer, _cpp_pop_buffer): Don't call _cpp_set_trad_context. - * cpptrad.c: Update comments. - (_cpp_read_logical_line_trad): Let scan_logical_line handle - updating the current context. - (scan_logical_line): Update the current context. - (_cpp_create_trad_definition): Similarly. - (_cpp_set_trad_context): Remove. - -2002-06-27 Neil Booth - - PR preprocessor/7070 - * c-lex.c (cb_def_pragma): Don't try to spell CPP_EOF. - -2002-06-26 Bob Wilson - - * config/xtensa/xtensa-protos.h (xtensa_return_addr): Declare. - config/xtensa/xtensa.c (xtensa_return_addr): New function. - config/xtensa/xtensa.h (RETURN_ADDR_RTX): Use xtensa_return_addr. - config/xtensa/xtensa.md (fix_return_addr): New pattern. - -2002-06-26 Kaveh R. Ghazi - - * mips.c (coprocessor_operand, coprocessor2_operand, - symbolic_operand): Move prototypes from here... - * mips-protos.h (coprocessor_operand, coprocessor2_operand, - symbolic_operand): ...to here. - -Wed Jun 26 16:32:57 2002 J"orn Rennecke - - * config/sh/crt1.asm: remove _stack label definition - and sentinel value. - -2002-06-26 Kaveh R. Ghazi - - * varasm.c: Include real.h before output.h. - -2002-06-26 Aldy Hernandez - - * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Revert change to - check for TARGET_ALTIVEC. - -2002-06-26 Nathanael Nerode - - * config.gcc (vax-*-vms*): Make obselete. - -2002-06-25 Kaveh R. Ghazi - - * gcc.c (warn_std): Delete. - -2002-06-25 Loren J. Rittle - - * doc/extend.texi: Fix formatting of last checkin. - -2002-06-25 Rainer Orth - - * config/alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Remove leading - underscore from __IEEE_FP and __IEEE_FP_INEXACT. - -2002-06-25 Aldy Hernandez - - * doc/extend.texi (PowerPC AltiVec Built-in Functions): Document - discrepancies from motorola's documentation. - -Tue Jun 25 21:51:13 2002 J"orn Rennecke - - * optabs.c (expand_vector_binop, expand_vector_unop): Don't assume - GET_MODE_UNIT_SIZE (mode) == UNITS_PER_WORD. - - * config/sh/lib1funcs.asm (udivdi3): Make first divide step - produce a 32 bit result before normalization, then normalize with a - left shift. Compute approximative error of 2nd reciprocal - approximation in 2's complement. Fix mask generation from upper - longword of second divide stage result. - For large divisor, fix shift count used to truncate first stage - divide result; make decision if to adjust upwards based on comparison - of higher parts of normalized values. - (udivdi): Likewise. Undo normalization of result for large divisor - case. - -2002-06-25 David S. Miller - - * config/sparc/sparc.md: Change \\{t,n} to \{t,n}. - -2002-06-25 Neil Booth - - * cpplib.c (do_include_common): Revert to correct line number - if -traditional. - * cpptrad.c (scan_out_logical_line): Treat null directive as - white space. Invlidate MI optimization for non-whitespace - text outside a directive. - -2002-06-24 Kaveh R. Ghazi - - * Makefile.in (SHELL): Set to @SHELL@. - * fixinc/Makefile.in (SHELL): Likewise. - - * mips.md (fixuns_truncdfsi2, fixuns_truncdfdi2, - fixuns_truncsfsi2, fixuns_truncsfdi2): Avoid automatic aggregate - initialization. - -2002-06-24 Jeff Law - - * flow.c (propagate_one_insn): When removing an insn - with a REG_LIBCALL note but not the entire libcall sequence, - delete the associated REG_RETVAL note. - -Mon Jun 24 21:05:09 2002 J"orn Rennecke - - * lib1funcs.asm (sdivsi3): Add optimized SH64 implementations. - (udivsi3): Likewise. Rewrite SH1 implementation. - (udivdi3, divdi3, umoddi3, moddi3): New SHmedia functions. - * sh.md (R20_REG, R21_REG, R22_REG, R23_REG, FR23_REG): New constants. - (udivsi3_i1_media, divsi3_i1_media): Fix clobber list. - * config/sh/t-sh64 (LIB1ASMFUNCS): (_udivdi3, _divdi3, _umoddi3): Add. - (_moddi3): Likewise. - - * lib1funcs.asm (ic_invalidate): Add data cache line writeback. - - * sh.h (FUNCTION_ARG_ADVANCE): Take SHCOMPACT_FORCE_ON_STACK - arguments into account for stack_regs. - -2002-06-24 Matt Kraai - - * doc/extend.texi: Change `@dots{}' to `/* @r{@dots{}} */' - in examples. - -2002-06-24 Art Haas - - * doc/extend.texi (Other Builtins): Change `...' to `@dots{}'. - * doc/tm.texi (Frame Layout): Likewise. - -2002-06-20 Steve Ellcey - - * gcc/config.gcc (ia64*-*-hpux*): Set use_collect2 to no. - Set float_format to i128. - -2002-06-24 David S. Miller - - * config/sparc/sparc.c (INIT_TARGET_OPTABS): If ARCH64, set the - 32-bit ABI libfuncs to NULL. - - * config/sparc/sparc.md: Use define_insn_and_split. Use braced - strings instead of quoted strings for code blocks. - - * expmed.c (expand_divmod): Do not set optab1/optab2 to the shift - optabs if op1 is const0_rtx. - - * Makefile.in (GTFILES): Add basic-block.h - * basic-block.h (label_value_list, tail_recursion_label_list): - Mark with GTY. - -2002-06-24 Neil Booth - - * cpptrad.c (scan_out_logical_line): Check recursing only when - we know we have a macro invocation in the function-like case. - Only call _cpp_handle_directive if we know we have a good - directive, or we want to reject a bad directive. - -2002-06-24 Alan Modra - - * doloop.c (doloop_valid_p): Correct comment. - (doloop_modify_runtime ): Simplify. - (doloop_modify_runtime ): Don't emit code when NE. - -Thu Jun 20 00:26:53 2002 Denis Chertykov - - * config.gcc: Add support for ip2k. - -2002-06-23 Jan Hubicka - Jeff Law - - * function.h (struct emit_status): Clarify potential contents - of regno_reg_rtx array. - * integrate.c (copy_rtx_and_substitute): Update comments. Make - sure entry in regno_reg_rtx is a REG before checking REG_POINTER. - - * reg-stack.c (convert_regs_exit): Push the registers to stack in - proper order. - -2002-06-22 Ulrich Weigand - - PR middle-end/6963 - * function.c (assign_stack_temp_for_type): Do not return - the same MEM rtx for multiple uses of a stack slot. - -2002-06-22 David S. Miller - - PR target/6841 target/6770 target/6719 - * config/sparc/sparc.h (PREFERRED_RELOAD_CLASS): Return - NO_REGS for constant X when CLASS is GENERAL_OR_FP_REGS or - GENERAL_OR_EXTRA_FP_REGS. - -2002-06-22 Neil Booth - - * cpptrad.c (struct fun_macro): Add line number. - (scan_out_logical_line): Set it, and use it to report unterminated - macro invocations. - -2002-06-21 Kaveh R. Ghazi - - * genautomata.c (copy_node, VLA_PTR_CREATE, VLA_PTR_EXPAND, - VLA_PTR_ADD, VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD, - DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, DECL_EXCL, DECL_PRESENCE, - DECL_ABSENCE, DECL_RESERV, DECL_INSN_RESERV, REGEXP_UNIT, - REGEXP_RESERV, REGEXP_SEQUENCE, REGEXP_REPEAT, REGEXP_ALLOF, - REGEXP_ONEOF, check_name): Const-ify. - -2002-06-21 Matt Thomas - - * config/vax/vax.c (vax_output_function_prologue): Use - REGISTER_PREFIX. Fix some indentation. - * config/vax/vax.h (FUNCTION_PROFILER): Use reg_names[]. - (VAX_ISTREAM_SYNC): Define. - (INITIALIZE_TRAMPOLINE): Use VAX_ISTREAM_SYNC. Move the - i-stream sync to the end. - (REGISTER_PREFIX): Define as "". - (ASM_OUTPUT_MI_THUNK): Use REGISTER_PREFIX. - -2002-06-21 Jason Thorpe - - * config.gcc (ns32k-*-netbsd*): Remove from list of obsolete - configurations. - -2002-06-21 Kaveh R. Ghazi - - * tree.c (tree_node_kind, tree_node_counts, tree_node_sizes, - tree_node_kind_names): Wrap in GATHER_STATISTICS macro. - -2002-06-21 Matt Thomas - - * config/vax/netbsd.h: Adjust a comment. - (TARGET_DEFAULT): Redefine as 0. - -2002-06-21 Richard Henderson - - * bb-reorder.c (make_reorder_chain_1): Search harder for the - vax casesi fallthru edge. - * cfglayout.c (cleanup_unconditional_jumps): Use - redirect_edge_succ_nodup. Do not delete ADDR_VEC insns as dead. - * cfgrtl.c (force_nonfallthru_and_redirect): Place redirection - block after ADDR_VEC. - -2002-06-21 Rainer Orth - - * config/sparc/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. - -2002-06-21 Neil Booth - - * cpperror.c (cpp_error): For traditional CPP, default to - diagnostics on pfile->line. - * cpplib.c (prepare_directive_trad): Set line number for - diagnostics for #define too. - * cpptrad.c (skip_whitespace): Skip comments properly. - (_cpp_expansions_different_trad): Initialize quote2. - -2002-06-21 Hans-Peter Nilsson - - * config/mmix/mmix.md: Change GNU CC to GCC in file header comment. - * config/mmix/mmix.h: Ditto. - * config/mmix/mmix-protos.h: Ditto. - * config/mmix/mmix.c: Ditto. Fix typo in comment. - * config/mmix/mmix-modes.def: Change GNU CC to GCC in file header - comment. Comment extra CC modes. - -2002-06-20 Jan Hubicka - - * cfglayout.c (scope_to_insns_initialize): Call set_block_levels. - (scope_to_insns_finalize): Do not call set_block_levels; handle - sequences. - (choose_inner_scope): New. - * rtl.h (choose_inner_scope): Declare. - -2002-06-20 John David Anglin - - * pa-protos.h (pa_asm_output_mi_thunk): Change third argument to - HOST_WIDE_INT. - * pa.c (pa_asm_output_mi_thunk): Likewise. - (n_deferred_plabels): Change type to size_t. - (output_deferred_plabels, output_call): Use size_t instead of int. - -2002-06-20 Richard Henderson - - PR target/4041 - * config/m68k/m68k.md (zero_extendsidi2): Create expander; duplicate - pattern and adjust constraints for coldfire. - -2002-06-20 Richard Henderson - - * explow.c (probe_stack_range): Use gen_rtx_fmt_ee. - -2002-06-20 Chris Demetriou - - * config.gcc (mipsisa64-*-elf*, mipsisa64el-*-elf*): New targets. - -2002-06-20 Chris Demetriou - - * config/mips/mips.h (ISA_HAS_FP4): Fix comment to reflect use. - -2002-06-20 Stan Shebs - - * dominance.c: Include errors.h instead of error.h. - -2002-06-20 Neil Booth - - * cppexp.c (cpp_interpret_integer): Don't force traditional - numbers to be unsigned. - * cpplib.c (prepare_directive_trad): Set line number for - diagnostics. - * cpptrad.c (scan_out_logical_line): Continue scanning out - at start of buffer. - * gcc.c (trad_capable_cpp): Use cc1 always. - -2002-06-20 Jeffrey Law - - * i386.h (TARGET_DEFAULT): Do not turn on frame pointer - elimination in leaf functions by default yet. - -2002-06-20 Richard Sandiford - - * combine.c (make_extraction): Reapply to the argument of an ASHIFT. - -2002-06-20 Rainer Orth - - * config/sparc/t-crtfm (crtfastmath.o): Prefix with $(T) for - multilibs. - * config/sparc/t-sol2-64 (EXTRA_MULTILIB_PARTS): Add crtfastmath.o. - Fixes PR other/6836. - -Thu Jun 20 19:42:21 CEST 2002 Jan Hubicka - Pavel Nejedly - - Mon Jun 10 20:42:34 CEST 2002 Jan Hubicka - - * basic-block.h: Do not include et-forest.h - (dominance_info): Declare as struct dominance-info. - * cfglayout.c (cleanup_unconditional_jumps): Remove the edge before - deleting block. - * dominance.c (struct dominance_info): Define. - (BB_NODE, SET_BB_NODE): New macros. - (bb_hash_func, bb_eq_func): Kill. - (calculate_dominace_info, free_dominacne_info, set_immediate_dominator, - nearest_common_dominator, dominated_by_p, recount_dominator, - add_to_dominance_info, delete_from_dominance_info): update for new - representation. - (get_dominated_by, redirect_immediate_dominators): Rewrite using - enumerate_sons. - * ifcvt.c (process_double_test_block, merge_if_block, find_cond_trap, - find_if_case_1, find_if_case_2): Remove killed blocks from dominance - structure. - - * et-forest.h: Update copyright; revamp all function to operate on - nodes - (et_forest_value): Kill. - (et_forest_enumerate_sons, et_forest_node_value): New. - * et-forest.c: Update copyright. - * et-forest.h: Update copyright; revamp all function to operate on - nodes - (et_forest_value): Kill. - (et_forest_enumerate_sons, et_forest_node_value): New. - - Thu Jun 6 22:43:43 CEST 2002 Jan Hubicka - - * basic-block.h: Inlude et-forest.h - (basic_block_def): Kill dominator. - (dominance_info): New type. - (loops): Use dominace_info. - (dominace handling functions): Take dominace_info as argument - instead of bitmaps. - (create_preheader): Likewise. - * cfg.c (entry_exit_blocks): Kill dominator. - (dump_flow_info): Do not dump dominators. - * cfglayout.c (cleanup_unconditonal_jumps): Delete deleted block from - dominators. - * cfgloop.c (flow_pre_header_find): Use dominacne_info. - (flow_loops_pre_header_scan, make_forwarder_block, - canonicale_loop_headers, flow_loops_find): Likewise. - * dominance.c: Include error.h - (idoms_to_doms): Kill. - (bb_hash_func, bb_eq_func): New static functions. - (debug_dominace_info): New global function. - (calculate_dominance_info): Use new et forest structure. - (free_dominace_info, get_immediate_dominator, set_immediate_dominator, - get_dominated_by, redirect_immediate_dominators, - nearest_common_dominator, dominated_by_p, verify_dominators, - recount_dominator, iterate_fix_dominators, add_to_dominace_info, - delete_from_dominance_info): New global functions. - * gcse.c (domnators): CHange to dominance_info. - (alloc_hoist_mem): Do not alloc dominators - (free_code_hoist_mem): Use free_dominance_info. - (compute_code_hoist_data): Use dominance_info. - (hoist_code): Likewise. - * ifcvt.c (post_dominators): Likewise. - (find_if_case_2, if_convert): Likewise. - * predict.c (process_note_predictions, process_note_prediction, - estimate-probability): Likewise. - * sched-rgn.c (find_rgns, init_regions): Likewise. - * ssa-dce.c (find_all_control_dependences, fint_control_depemndence, - find_pdom, delete_insn_bb, ssa_eliminate_dead_code): Likewise. - * ssa.c (compute_dominance_frontiers_1, rename_block, rename_registers, - find_evaluations, convert_to_ssa): Likewise. - * ssa.h (compute_dominance_frontiers): Likewise. - - Thu Jun 6 22:57:34 CEST 2002 Pavel Nejedly - - * Makefile.in (et-forest.c): Add. - * et-forest.c: New file. - * at-forest.h: New file. - -2002-06-20 Kaveh R. Ghazi - - * c-decl.c (c_decode_option): Use ARRAY_SIZE in lieu of explicit - array size calculation. - * gengtype.c (NUM_BASE_FILES, create_file, write_gc_root): - Likewise. - - * diagnostic.c (diagnostic_kind_text): Const-ify. - * gengtype.c (lang_names): Likewise. - -Thu Jun 20 17:25:29 CEST 2002 JAn HUbicka - - * combine.c (subst): Be prepared for simplify_subreg to return VOIDmode. - -2002-06-20 Rainer Orth - - * config/sol2.h: New file. - * config.gcc (i?86-*-solaris2*): Include it before i386/sol2.h. - (sparc64-wrs-vxworks*): Include it before sparc/sol2.h. - (sparc-*-chorusos*): Likewise. - (sparc-*-elf*): Likewise. - (sparc-*-rtems*, sparc-*-rtemself*): Likewise. - (sparc64-*-solaris2*, sparcv9-*-solaris2*): Likewise. - (sparc-hal-solaris2*): Likewise. - (sparc-*-solaris2*): Likewise. - (sparclite-*-elf*): Likewise. - (sparc86x-*-elf*): Likewise. - (sparc64-*-elf*): Likewise. - - * config/i386/sol2.h (PREFERRED_DEBUGGING_TYPE): Moved to - config/sol2.h. - (ASM_SPEC): Override config/sol2.h version for now. - Removed obsolete GAS_REJECTS_MINUS_S variant. - (WINT_TYPE, WINT_TYPE_SIZE): Moved to config/sol2.h. - (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise. - (TARGET_OS_CPP_BUILTINS): Likewise. - Assert system=unix. - (CPP_SPEC): Simplified using new CPP_SUBTARGET_SPEC. - (LIB_SPEC, ENDFILE_SPEC, STARTFILE_SPEC, LINK_SPEC): Moved to - config/sol2.h. - (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise. - (ASM_CPU_SPEC): Define. - (SUBTARGET_EXTRA_SPECS): Define. - - * config/sparc/sol2-bi.h (LONG_DOUBLE_TYPE_SIZE): Removed, already - in config/sparc/sol2.h. - (ASM_SPEC): Moved to config/sol2.h. - (CPP_CPU_SPEC): Simplified. - (STARTFILE_SPEC32): Likewise, renamed to STARTFILE_ARCH32_SPEC for - consistency. - (STARTFILE_SPEC64): Renamed to STARTFILE_ARCH64_SPEC. - (STARTFILE_ARCH_SPEC): Use new names STARTFILE_ARCH32_SPEC, - STARTFILE_ARCH64_SPEC. - (STARTFILE_SPEC): Moved to config/sol2.h - (SUBTARGET_EXTRA_SPECS): Add startfile_arch. - (LINK_ARCH32_SPEC): Moved to config/sol2.h. - (LINK_ARCH64_SPEC): Simplified. - (LINK_ARCH_SPEC): Redefined config/sol2.h version for 64-bit support. - (LINK_SPEC): Moved to config/sol2.h - - * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Moved to - config/sol2.h. - Use BITS_PER_WORD for size. - (WINT_TYPE, WINT_TYPE_SIZE): Likewise. - (HANDLE_PRAGMA_REDEFINE_EXTNAME): Likewise. - (CPP_PREDEFINES): Removed OS-specific part handled by - TARGET_OS_CPP_BUILTINS. - (CPP_SUBTARGET_SPEC): Moved to config/sol2.h. - (CPLUSPLUS_CPP_SPEC): Removed, handled by TARGET_OS_CPP_BUILTINS. - (ASM_SPEC): Moved to config/sol2.h. - (PREFERRED_DEBUGGING_TYPE): Likewise. - (STARTFILE_SPEC, LIB_SPEC, LINK_SPEC): Likewise. - (SWITCH_TAKES_ARG, STDC_0_IN_SYSTEM_HEADERS): Likewise. - (TARGET_DEFAULT): Reordered to match config/sparc/sol2-bi.h version. - (TRANSFER_FROM_TRAMPOLINE): Moved to config/sol2.h - - * config.gcc (i?86-*-solaris2*): Removed obsolete gas support. - * config/i386/sol2gas.h: Removed. - -Thu Jun 20 12:14:01 CEST 2002 Jan Hubicka - - * i386.md (xorqi_1_slp, xorqi_2_slp): New patterns. - -2002-06-16 Aldy Hernandez - - * gcc.c-torture/execute/simd-1.c: New. - - * gcc.dg/simd-1.c: New. - - * doc/extend.texi (Vector Extensions): Document that we can - specify simd types not specifically supported by the hardware. - Document that simd types can be used as function arguments. - Document that signness does make a difference in SIMD types. - Misc cleanups and revisions to the vector extensions section. - - * simplify-rtx.c (simplify_subreg): Simplify subregs of vector - constants. - - * expr.c (vector_mode_valid_p): New. - - * expr.h: Add vector_mode_valid_p. - - * defaults.h (VECTOR_MODE_SUPPORTED_P): Set default. - - * c-common.c (type_for_mode): Always build vector nodes regardless - of VECTOR_MODE_SUPPORTED_P. - (handle_mode_attribute): Error if we can't emulate a nonexisting - vector mode. - (handle_vector_size_attribute): Same. - - * optabs.c (expand_binop): Open-code vector operations. - (expand_unop): Open-code vector unops. - (expand_vector_binop): New. - (expand_vector_unop): New. - - * c-typeck.c (build_binary_op): Allow vectors in binops. - Allow vectors in conditional operatiors. - (build_unary_op): Allow vectors in unary minus. - - * config/rs6000/rs6000.h (ALTIVEC_VECTOR_MODE): Conditionalize on - TARGET_ALTIVEC. - -2002-05-20 Richard Henderson - - * c-common.c (c_common_get_alias_set): Correctly handle characters. - Rearrange order of expressions; don't handle vectors here. - * alias.c (get_alias_set): Let vectors match their components. - -2002-06-19 Chris Demetriou - - * config/mips/mips.c (mips_emit_prefetch): Use hints which - match desired locality. - -2002-06-19 Dhananjay R. Deshpande - - * config/h8300/h8300.c (TARGET_INSERT_ATTRIBUTES): Define. - (h8300_insert_attributes): New. - -2002-06-19 Akim Demaille - - * c-parse.in (initelt: identifier ':' initval): Add an empty - action to fix a type clash. - (aliasdecl, classdef): Add the missing closing `;'. - Whitespace changes. - * gengtype-yacc.y (typedef_struct): Add an empty action to preevnt - $$ = $1 type clashes. - -2002-06-19 Eric Christopher - - * config/mips/mips.c (symbol_operand): New function. - (mips_emit_prefetch): Ditto. - * config/mips/mips-protos.h: Define. - * config/mips/mips.h (ISA_HAS_PREFETCH): Define. - (CONSTANT_ADDRESS_P): Adjust, use TARGET_GAS. - (LEGITIMIZE_ADDRESS): Ditto. - * config/mips/mips.md (prefetch, prefetch_si_address, - prefetch_si, prefetch_di_address, prefetch_di): New patterns. - -2002-06-19 Eric Christopher - - * config/fp-bit.h: Add unordered defines for gofast. - -2002-06-19 Vladimir Makarov - - * genautomata.c (DECL_UNIT, DECL_BYPASS, DECL_AUTOMATON, - DECL_EXCL, DECL_PRESENCE, DECL_ABSENCE, DECL_RESERV, - DECL_INSN_RESERV, REGEXP_UNIT, REGEXP_RESERV, REGEXP_SEQUENCE, - REGEXP_REPEAT, REGEXP_ALLOF, REGEXP_ONEOF): New macros with - checking and without it. - (decl_name, decl_mode_check_failed, regexp_name, - regexp_mode_check_failed): New functions. - (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set, - gen_presence_set, gen_absence_set, gen_automaton, - gen_regexp_repeat, gen_regexp_allof, gen_regexp_oneof, - gen_regexp_sequence, gen_reserv, gen_insn_reserv, - automaton_decl_hash, automaton_decl_eq_p): Use the macros. - (find_automaton_decl): Ditto. Set up mode of work_automaton_decl. - (insn_decl_hash, insn_decl_hash, insn_decl_eq_p): Use the macros. - (find_insn_decl): Ditto. Set up mode of work_insn_decl. - (decl_hash, decl_eq_p): Use the macros. - (find_decl): Ditto. Set up mode of work_decl. - (process_excls, process_presence_absence, process_decls, - check_automaton_usage, process_regexp, process_regexp_decls, - check_usage, loop_in_regexp, check_loops_in_regexps, - process_regexp_cycles, add_advance_cycle_insn_decl, - initiate_states, initiate_excl_sets, - initiate_presence_absence_sets, copy_insn_regexp, transform_1, - transform_2): Use the macros. - (transform_3): Ditto. Check mode before making transformations of - ALLOF. - (regexp_transform_func, transform_insn_regexps, - process_unit_to_form_the_same_automaton_unit_lists, - form_the_same_automaton_unit_lists_from_regexp, - form_the_same_automaton_unit_lists, - process_seq_for_forming_states, process_alts_for_forming_states, - create_alt_states, form_ainsn_with_same_reservs, make_automaton, - form_arcs_marked_by_insn, NDFA_to_DFA, set_new_cycle_flags, - estimate_one_automaton_bound, compare_max_occ_cycle_nums, - units_to_automata_heuristic_distr, create_ainsns, - units_to_automata_distr, create_automata): Use the macros. - (form_regexp): Ditto. Fix typo in access to fields of ALLOF. - (longest_path_length, min_issue_delay_pass_states, - output_dead_lock_vect, output_tables, output_insn_code_cases, - output_internal_insn_latency_func, output_print_reservation_func, - output_description, output_automaton_units, generate): Use the - macros. - (make_insn_alts_attr): Ditto. Check case when there are not - alternatives in the reservation. - (make_internal_dfa_insn_code_attr, make_default_insn_latency_attr, - make_bypass_attr, form_important_insn_automata_lists, - expand_automata): Use the macros. - -2002-06-20 Tim Josling - - * Makefile.in: Clean up code to check for misspecified languages - in enable-languages. - -2002-06-19 Andrew Pinski - - * cpptrad.c (_cpp_replacement_text_len): initialize len. - -2002-06-19 Jason Merrill - - * Makefile.in (unstrap, restrap): New targets. - (bootstrap): Mention restrap. - -2002-06-19 Matt Kraai - - * except.c (ehl_free): Remove. - - * doc/tm.texi (TARGET_CPU_CPP_BUILTINS): Correct misnamings of - builtin_define and builtin_define_std. - -2002-06-19 Ian Dall - - * config/ns32k/ns32k.md: Give "*xxx" names to all unnamed insn's. - (sCOND): Restrict operand class so that gcc knows how to reload them. - (bitfield_set): Merge two unnamed insn's using alternatives. - (call_value): Remove constraint on unused uperand. - (udivmodhi4, udivmodsi4, udivmoddihi4_internal): Remove. - (udivmoddiqi4_internal, udivmoddihi4, udivmoddiqi4): Remove. - - * longlong.h (count_trailing_zeros): Escape newline and beautify. - -2002-06-19 Mark Mitchell - - * Makefile.in (QMTEST_DIR): Simplify definition. - -2002-06-19 Nick Clifton - - * config/d30v/d30v.h (CUMULATIVE_ARGS): Replace typedef with - #define. - -2002-06-19 Neil Booth - - * cpphash.h (struct cpp_reader): Make date and time strings. - (_cpp_builtin_macro_text, _cpp_copy_replacement_text, - _cpp_replacement_text_len): New. - * cppinit.c (cpp_create_reader): Update. - (init_builtins): Register appropriate builtins for -traditional-cpp. - * cppmacro.c (new_number_token): Remove. - (_cpp_builtin_macro_text): New. - (builtin_macro): Use it. - (cpp_macro_definition): Update to handle traditional macros. - * cppmain.c (cb_line_change): Don't do column positioning for - traditional output. - * cpptrad.c (enum ls): Rename ls_fun_macro to ls_fun_open. New - state ls_fun_close. - (skip_whitespace): Fix. - (maybe_start_funlike): Don't set state.parsing_args. - (scan_out_logical_line): Remove duplicate error. Use lex_state - rather than state.parsing_args. - (push_replacement_text): Handle builtins. - (_cpp_replacement_text_len, _cpp_copy_replacement_text): New. - -2002-06-18 Hans-Peter Nilsson - Kaveh R. Ghazi - - * config/fp-bit.c (_fpmul_parts, _fpdiv_parts): Mark with - attribute __always_inline__. - -2002-06-18 Bob Wilson - - * config/xtensa/xtensa.h (FUNCTION_PROFILER): Respect flag_pic - when generating the call to _mcount. - (NO_PROFILE_COUNTERS): Define. - -2002-06-18 Richard Henderson - - * print-rtl.c (print_rtx): Adjust NOTE argument numbers for - 2002-06-02 change. - -Tue Jun 18 20:53:32 2002 J"orn Rennecke - - * t-sh (MULTILIB_EXCEPTIONS): Set to ml. - config/sh/t-linux (MULTILIB_EXCEPTIONS): Clear. - * config/sh/t-netbsd (MULTILIB_EXCEPTIONS): Likewise. - * config/sh/t-sh64 (MULTILIB_EXCEPTIONS): Likewise. - - * sh-protos.h (sh_pr_interrupt): Declare. - * sh.c (sh_pr_interrupt): New function. - (print_operand, calc_live_regs, sh_expand_prologue): Use it. - (sh_hard_regno_rename_ok): Likewise. - * sh.h (NORMAL_MODE): FP_MODE_NONE for interupt handlers. - -2002-06-18 Vladimir Makarov - - * rtl.def (DEFINE_AUTOMATON): Add description of new options - `time' and `v'. Fix incorrect description of option `w'. - - * doc/md.texi: Ditto. - - * genautomata.c (TIME_OPTION, V_OPTION): New macros. - (gen_automata_option): Process the new options. - (transform_2, transform_3): Initialize some variables. - (initiate_automaton_gen): Use the new macros. - -2002-06-18 Richard Sandiford - - * config/mips/mips-protos.h (mips_initial_elimination_offset): Declare. - (mips_set_return_address, mips_restore_gp): Declare. - * config/mips/mips.h (struct mips_frame_info): Move to mips.c - (current_frame_info): Remove. - (INITIAL_ELIMINATION_OFFSET): Use mips_initial_elimination_offset. - * config/mips/mips.c: Remove uses of current_frame_info. - (struct mips_frame_info): Moved from mips.h. Remove 'insns_len'. - (struct machine_function): Add 'frame' and 'insns_len'. - (current_frame_info, zero_frame_info): Remove. - (mips_restore_gp, mips_set_return_address): New. - (mips_initial_elimination_offset): New. - * config/mips/mips.md (exception_receiver): Use mips_restore_gp. - (eh_return define_split): Use mips_set_return_address. - -2002-06-18 Neil Booth - - * cpplib.c (dtable): Update. - (end_directive): Decrement expansion prevention count. - Clear state.in_expression. - (prepare_directive_trad): Set state.in_expression. - Increment expansion prevention count. - * cpptrad.c (enum ls): New. - (_cpp_overlay_buffer): Set overlaid_buffer. - (_cpp_remove_overlay): Use overlaid_buffer. - (_cpp_read_logcial_line_trad): Update buffer when it might - have changed. - (scan_out_logical_line): Handle state transitions for assertions - and defined() in #if, and for funlike invocations including the - directive case. Handle '<' and '>' as a quote mechanism in - #include. Warn about unterminated macro invocations. - * cpphash.h (struct lexer_state): New member in_expression. - (struct cpp_reader): New member overlaid buffer. - -2002-06-18 Hans-Peter Nilsson - - * config/cris/arit.c (do_31div, __Udiv, __Umod): Mark prototype - __always_inline__. - -2002-06-18 Alan Modra - - * config/ia64/ia64.md (doloop_end_internal): Correct rtl. - - * doloop.c (doloop_optimize): Extract pattern from insn. - -2002-06-17 Matt Kraai - - * doc/extend.texi (Function Attributes): Remove `,...' from @var. - -2002-06-17 Jeff Law - - * libgcc2.c: Do not include symcat.h or machmode.h. - -2002-06-17 Richard Henderson - - PR target/6922 - * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND. - -2002-06-17 Tom Tromey - - * dwarfout.c: Include function.h. - -2002-06-17 Andreas Schwab - - * print-rtl.c (print_rtx): Print space before vector, not after. - (debug_rtx): Clear sawclose before printing. - (debug_rtx_list): Print newline after each list element. - (debug_rtx_range): Likewise. - -2002-06-17 Richard Henderson - - * function.h (struct function) [funcdef_no]: Rename profile_label_no. - (current_function_funcdef_no): Similarly. - * function.c (funcdef_no): Similarly. - (prepare_function_start): Set current_function_funcdef_no. - (expand_function_start): Don't set current_function_profile_label_no. - * dwarf2out.h (current_funcdef_number): Remove. - * dwarf2out.c (current_funcdef_number): Remove. Replace with - current_function_funcdef_no throughout. - * dwarfout.c, vmsdbgout.c: Similarly. - * except.c (sjlj_funcdef_number): Remove. - (sjlj_emit_function_enter): Use current_function_funcdef_no instead. - (output_function_exception_table): Likewise. - * final.c (profile_function): Use current_function_funcdef_no - instead of current_function_profile_label_no. - -2002-06-17 Vladimir Makarov - - * sched-ebb.c (init_ready_list): Check INSN_P first. - -Mon Jun 17 17:26:15 2002 J"orn Rennecke - - * sh.md (divsi3): Update way how to find insns in a sequence. - - * reload1.c (merge_assigned_reloads): Don't change reloads - other than RELOAD_FOR_INPUT_ADDRESS / RELOAD_FOR_INPADDR_ADDRESS - to RELOAD_OTHER when there are conflicting input reloads. - -2002-06-17 Richard Earnshaw (rearnsha@arm.com) - - * function.c (epilogue_done): Correctly build a sequence of insns for - a sibcall epilogue. - -2002-06-17 Nick Clifton - - * config/fr30/fr30.h (CUMULATIVE_ARGS): Replace typedef with - #define. - - * config/m32r/m32r.md: Replace gen_sequence with get_insns. - -2002-06-16 Richard Henderson - - * config/i386/i386.h (BIGGEST_FIELD_ALIGNMENT): Define instead - of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. - -2002-06-16 Richard Henderson - - PR opt/6722 - * regclass.c (globalize_reg): Update regs_invalidated_by_call. - -2002-06-16 Neil Booth - - * config.gcc: Add i386/sysv4-cpp.h; remove i386-aout.h from vxworks. - * config/i386/i386-aout.h, config/i386/i386elf.h, - config/i386/sysv4.h: Remove CPP_PREDEFINES. - * config/i386/linux64.h, config/i386/i386elf.h, config/i386/mach.h, - config/i386/netware.h, config/i386/rtemself.h, config/i386/sco5.h, - config/i386/sol2.h, config/i386/vsta.h, config/i386/vxi386.h, - config/i386/win32.h: Use TARGET_OS_CPP_BUILTINS rather than - CPP_PREDEFINES and part of CPP_SPEC. - * config/i386/sysv4-cpp.h: New. - -2002-06-16 Richard Henderson - - PR c/7030 - * dwarf2out.c (modified_type_die): Don't assign the qualified die - to the unqualified type. - -Sun Jun 16 22:16:10 CEST 2002 Jan Hubicka - - * i386-protos.h (x86_field_alignment): Declare. - * i386.c (x86_field_alignment): Define. - * i386.h (ADJUST_FIELD_ALIGNMENT): New. - (BIGGEST_FIELD_ALIGNMENT): Kill. - -2002-06-16 Richard Henderson - - * vax.md (casesi): Use emit_jump_insn. Tidy expander pattern. - -2002-06-16 Richard Henderson - - * c-common.c (flag_ms_extensions): Move from c++ front end. - * c-common.h (flag_ms_extensions): Declare. - * c-decl.c (c_decode_option): Add -fms-extensions. - (grokfield): Don't accept anonymous structures in ISO C mode; - accept only unnamed anonymous structures in GNU C mode; accept - Plan 9 extensions in MS mode. - * c-parse.in (SAVE_EXT_FLAGS, RESTORE_EXT_FLAGS): Rename from - SAVE/RESTORE_WARN_FLAGS; add flag_iso frobbing; update all callers. - (extension): Clear flag_iso. - * doc/invoke.texi (C Dialect Options): Add -fms-extensions. - -2002-06-16 Hans-Peter Nilsson - - PR target/7042 - * reorg.c (make_return_insns) [DELAY_SLOTS_FOR_EPILOGUE]: Exit - early if current_function_epilogue_delay_list is non-empty. - * config/cris/cris.md ("return"): Add sanity check asserting that - current_function_epilogue_delay_list is empty. - -2002-06-16 Jeff Law - - * emit-rtl.c (gen_rtx_REG): Temporarily turn off automatic - sharing of hard registers. - - * toplev.c (rest_of_compilation): Remove redundant conditional. - - * toplev.c (rest_of_compilation): Perform a simpler, less costly - cleanup of the CFG when not optimizing. - -2002-06-16 Alan Modra - - * gcc.c (main): Correct startfile_prefix_spec check. - -2002-06-12 Geoffrey Keating - - * config.gcc: Revert rth's patch of 2002-05-18. Instead, - include both darwin.o and rs6000-c.o. - -2002-06-15 Roger Sayle - - * expr.c (compare_from_rtx): Call simplify_relational_operation - on all comparisons, not just those between integer constants, - with the correct (possibly unsigned) comparison code. - (do_compare_rtx_and_jump): Likewise. - -2002-06-15 John David Anglin - - * Makefile.in (tm_defines): New configuration variable. - (cs-config.h, cs-hconfig.h, cs-tconfig.h): Rename DEFINES to XM_DEFINES. - Pass tm_defines in TM_DEFINES. - (cs-tm_p.h): Rename DEFINES to XM_DEFINES. Pass TM_DEFINES. - * config.gcc (tm_defines): New configuration variable. - (hppa*-*-* | parisc*-*-*): Use tm_defines instead of pa-700.h and - pa-7100.h headers. Change hppa1* scheduling default to 7100LC. - * configure.in: Substitute tm_defines. - * configure: Rebuilt. - * mkconfig.sh: Rename DEFINES to XM_DEFINES. Output TM_DEFINES. - * doc/install.texi: Update. - * pa/pa-700.h: Delete file. - * pa/pa-7100.h: Delete file. - -2002-06-15 Roger Sayle - - * fold-const.c (comparison_to_compcode): New function to convert - an comparison TREE CODE into a bit-based representation. - (compcode_to_comparison): New function to convert from this bit - based representation back to a comparison TREE CODE. - (fold_truthop): Simplify (x - - * tm.texi (MEMBER_TYPE_FORCES_BLK): Document MODE argument. - - * stor-layout.c (compute_record_mode): Remove check for - FUNCTION_ARG_REG_LITTLE_ENDIAN and VOIDmode when checking for - MEMBER_TYPE_FORCES_BLK. Pass new mode field to - MEMBER_TYPE_FORCES_BLK. - - * config/ia64/hpux.h (MEMBER_TYPE_FORCES_BLK): Same. - - * config/c4x/c4x.h (MEMBER_TYPE_FORCES_BLK): Same. - -2002-06-14 Jeff Sturm - - * config/sparc/sparc.h (DYNAMIC_CHAIN_ADDRESS): Add SPARC_STACK_BIAS. - -2002-06-14 Steve Ellcey - - * configure.in (USE_UNWIND_EXCEPTIONS): Add support to set - USE_UNWIND_EXCEPTIONS if --enable-libunwind-exceptions is set. - * configure, config.in: Regenerate. - -2002-06-14 Eric Botcazou - - * loop.c (check_final_value): Use v->always_executed - instead of v->always_computable. - * unroll.c (final_giv_value): Don't calculate the final - value as a function of the biv if the giv is not computed - for every loop iteration. - -2002-06-14 Eric Botcazou - - * loop.c (for_each_insn_in_loop): Fix formatting and comments. - -2002-06-14 Eric Botcazou - - PR c/6677 - * convert.c (convert_to_integer) [LSHIFT_EXPR]: Don't pass - the truncation down when the target type is signed. - [trunc1]: Use unsigned arithmetic for LSHIFT_EXPR. - * fold-const.c (extract_muldiv) [NOP_EXPR]: Don't pass through - the conversion if the target type is a smaller type. - -2002-06-14 Richard Henderson - - * fold-const.c (fold) [compare ops]: Move X>=C / X - - * config/alpha/alpha.md (builtin_zapnot): Fix op2 mode. - -2002-06-14 Franz Sirl - - * rtl.h (SCHED_GROUP_P): Disallow CODE_LABEL, BARRIER and NOTE. - * sched-deps.c (add_dependence): Likewise. - (group_leader): Likewise. - * sched-rgn.c (init_ready_list): Likewise. - * doc/rtl.texi: Adjust accordingly. - -2002-06-13 Jeffrey Law - - * gcse.c (delete_null_pointer_checks_1): Inform caller if any - null pointer checks were eliminated. Update prototype. - (delete_null_pointer_checks): Similarly. - * rtl.h (delete_null_pointer_checks): Update prototype. - * toplev.c (rest_of_compilation): Only run cleanup_cfg if - delete_null_pointer_checks deletes one or more null - pointer checks. Do not run cleanup_cfg before gcse, the - CFG is accurate and optimized at that point.. - - * rs6000.c (rs6000_frame_related): Avoid unwanted sharing - of hard registers. - -2002-06-14 Ulrich Weigand - - * Makefile.in (libgcc.mk): Depend on specs. - -Fri Jun 14 12:15:11 2002 J"orn Rennecke - - * sh.md (mulsi3): Update way how to find insns in a sequence. - -Fri Jun 14 12:04:02 2002 Dhananjay R. Deshpande - - * sh.h: Define HARD_REGNO_RENAME_OK - * sh.c: sh_hard_regno_rename_ok: New. If current function has - interrupt_handler attribute, only registers saved on stack are OK. - * sh-protos.h: Declare sh_hard_regno_rename_ok. - -2002-06-14 Kaz Kojima - - * config/sh/sh.md (jump): Emit jump insn. - (call_pcrel): Get pattern of the result of gen_call_site. - (call_value_pcrel, sibcall_pcrel, GOTaddr2picreg): Likewise. - -2002-06-14 Neil Booth - - * cpphash.h (struct cpp_buffer): Remove saved_line_base. - * cpptrad.c: Update comments. - (skip_whitespace, copy_comment): Take a new parameter. - (skip_escaped_newlines): Don't duplicate escaped newline test. - (copy_comment): Different location for CUR, decide here how - to copy / replace the comment. - (skip_whitespace): Copy whitespace. - (_cpp_overlay_buffer, _cpp_remove_overlay): Don't play with line_base. - (scan_out_logical_line): Let copy comment handle keeping or - replacing comments. - (scan_parameters, _cpp_create_trad_definition): Update. - -2002-06-13 Alan Lehotsky - - * reload.c (get_secondary_mem,find_reloads_address, - find_reloads_address_1): Pass reference to MEM to find_reloads_address - so that LEGITIMIZE_RELOAD_ADDRESS will be called. - -2002-06-13 Jessica Han - - * defaults.h (TARGET_VTABLE_ENTRY_ALIGN): New. - (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New. - * doc/tm.texi: Document them. - * config/ia64/ia64.h (TARGET_VTABLE_ENTRY_ALIGN): New. - (TARGET_VTABLE_DATA_ENTRY_DISTANCE): New. - (TARGET_VTABLE_USES_DESCRIPTORS): 4 word descriptors for 32-bit mode. - (ASM_OUTPUT_FDESC): Likewise. - -2002-06-13 Eric Christopher - - * diagnostic.c (output_format): Fix thinko. - -Thu Jun 13 22:34:33 2002 J"orn Rennecke - - * config/sh/coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Don't define. - (DWARF2_UNWIND_INFO): Define to 0. - - * config/sh/sh.c (calc_live_regs): Don't use initial_value - optimization for PR_MEDIA_REG. - -2002-06-13 Neil Booth - - * cpphash.h (_cpp_lex_identifier_trad): Remove. - * cpplib.c (end_directive): Don't skip, always remove overlay - apart from #define. - (prepare_directive_trad): Handle NULL pfile->directive. - (_cpp_handle_directive): Always call prepare_directive_trad - if traditional. - * cppmain.c (check_multiline_token): Rename account_for_newlines, - generalize inputs. - (scan_translation_unit_trad): Use it. - * cpptrad.c (skip_comment): Rename copy_comment, copy comment to - output, get escaped newline in comment close correct. - (check_output_buffer, skip_whitespace): Update. - (_cpp_lex_identifier_trad): Remove. - (scan_out_logical_line): Handle -C and comments in directives - properly. - -Thu Jun 13 20:18:38 2002 J"orn Rennecke - - * config.gcc: Add support for sh[234]*-*-elf*, sh[2346lbe]*-*-linux*. - * config/sh/linux.h (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT. - * sh.h (SELECT_SH1, SELECT_SH2, SELECT_SH3, SELECT_SH3E): New macros. - (SELECT_SH4_NOFPU, SELECT_SH4_SINGLE_ONLY, SELECT_SH4): Likewise. - (SELECT_SH4_SINGLE, SELECT_SH5_64, SELECT_SH5_64_NOFPU): Likewise. - (SELECT_SH5_32, SELECT_SH5_32_NOFPU, SELECT_SH5_COMPACT): Likewise. - (SELECT_SH5_COMPACT_NOFPU): Likewise. - (TARGET_SWITCHES): Use them. - (TARGET_CPU_DEFAULT): Define if not already defined. - (TARGET_DEFAULT): Use it. - (LINK_DEFAULT_CPU_EMUL): Value now depends on TARGET_CPU_DEFAULT. - * config/sh/t-linux (MULTILIB_OPTIONS): Use MULTILIB_ENDIAN. - * config/sh/t-monolib: New file. - -2002-06-13 Roger Sayle - - * toplev.c (rest_of_compilation): Simplify (and correct) the - logic of the first delete-null-pointer-checks pass. - -Thu Jun 13 18:24:17 CEST 2002 Jan Hubicka - - * i386.c (ix86_expand_movstr): Fix pasto. - -Thu Jun 13 18:18:17 CEST 2002 Jan Hubicka - - * reload.c (find_valid_class): Fix thinko in my previous patch. - -2002-06-13 Ulrich Weigand - - * config/s390/s390.h (TARGET_CPU_CPP_BUILTINS): New macro. - * config/s390/linux.h (TARGET_OS_CPP_BUILTINS): New macro. - (CPP_PREDEFINES, CPP_SPEC, CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): Remove. - (EXTRA_SPECS): Remove cpp_arch31 and cpp_arch64. - -2002-06-13 Gabriel Dos Reis - - * tree-inline.c (expand_call_inline): Don' mess with _DECL - fields. - -2002-06-13 Gabriel Dos Reis - - * diagnostic.c (output_format): Recognize "%H" as a format - specifier for a location_t. - (text_specifies_location): New function. - (diagnostic_set_info): Use it. - -2002-06-13 Jeffrey Law - - * emit-rtl.c (static_regno_reg_rtx): Define. - (init_emit_once): Initialize static_regno_reg_rtx. - (init_emit): Copy static_regno_reg_rtx into regno_reg_rtx instead - of building new hard reg objects once per function. - (gen_rtx_REG): Try to share hard regs. - * regclass.c (init_fake_stack_mems): New function broken out from - init_regs. - * rtl.h (init_fake_stack_mems): Declare. - * toplev.c (lang_independent_init): Call init_regs before - init_emit_once. Call init_fake_stack_mems after init_emit_once. - - * i386.md (extenddfxf2, extenddftf2): Fix typo/thinko. - - * alias.c (argument_registers): Remove. - (init_alias_once): Initialize static_reg_base_value here. Remove - initialization of argument_registers. - (init_alias_once_per_function): Remove. - (init_alias_analysis): Copy all the entries from static_reg_base_value - into new_reg_base_value all at once. - * rtl.h (init_alias_once_per_function): Remove declaration. - * function.c (prepare_function_start): Do not call - init_alias_once_per_function. - - * caller-save.c (init_caller_save): Use gen_rtx_INSN instead of - starting a sequence and emitting an INSN. - -2002-06-13 Richard Sandiford - - * config/mips/r3900.h (MIPS_CPU_STRING_DEFAULT): Make lower case. - -2002-06-13 David S. Miller - - * expmed.c (init_expmed): Remove duplicate init of 'reg'. - -2002-06-13 Neil Booth - - * cpplib.c (end_directive): Handle line skipping. Only remove - the rest of the line if the directive was valid. - * cppmacro.c (_cpp_push_text_context): Set NODE_DISABLED when - expanding a traditional macro. - * cpptrad.c (recursive_macro): New. - (read_logical_line_trad): Handle skipping. - (scan_out_logical_line): Continue after a successful directive. - Don't expand macros whilst skipping, or if recursing. - (_cpp_create_trad_definition): scan_out_logical_line now sets - the output current position. - -2002-06-12 Eric Christopher - - From Chris Demetriou - * config/mips/mips.h (ISA_HAS_FP4): Add ISA_MIPS64 and fix - comment. - (ISA_HAS_MADD_MSUB): Ditto. - (ISA_HAS_NMADD_NMSUB): Ditto. - -2002-06-12 Eric Christopher - - * config.gcc: Consolidate little endian handling and - little/big endian targets. - * config/mips/elfl.h: Remove file. - * config/mips/elfl64.h: Ditto. - * config/mips/ecoffl.h: Ditto. - * config/mips/r3900.h (SUBTARGET_CPP_SPEC): Remove. - -2002-06-12 Geoffrey Keating - - * gengtype.h (xvasprintf): New prototype. - (xasprintf): New prototype. - (struct outf): New. - (get_output_file): Return an outf_p. - (header_file): Is now an outf_p. - (base_files): Now are outf_p. - (oprintf): New. - * gengtype.c: Replace all output FILE * with outf_p; use oprintf - rather than stdio operations. Use xasprintf in a few places, - when appropriate. - (xvasprintf): New. - (xasprintf): New. - (struct filemap): Delete. - (files): Delete. - (output_files): New. - (oprintf): New. - (create_file): Create an outf_p. Add parameter to indicate output - file name, change all callers. - (open_base_files): Create gtype-desc.c here. - (get_output_file_with_visibility): Rewrite. - (get_output_file_name): Just look at 'name' field in struct outf. - (close_output_files): Rewrite. - -2002-06-12 Jason Thorpe - - * config/vax/vax.h (MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT) - (MASK_G_FLOAT): Define. - (TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT): Use them. - (TARGET_SWITCHES): Likewise. - (TARGET_DEFAULT): Likewise. - -2002-06-12 Daniel Jacobowitz - - * config/mips/elf.h (DWARF2_DEBUG_INFO): Define. - * config/mips/mips.c (mips_output_filename): Don't print a - ".file" directive if we are using DWARF-2. - (mips_output_function_prologue): Do not emit source file - name for TARGET_GAS. - -Wed Jun 12 16:45:13 CEST 2002 Jan Hubicka - - * i386.md (shift patterns): Use (TARGET_SHIFT1 || optimize_size) to - decide whether emit the short opcode. - * i386.h (x86_shift1): Declare. - (TARGET_SHIFT1): New macro. - * i386.c (x86_shift1): New global variable. - - * toplev.c (rest_of_compilation): Call find_basic_block pre-loop - unconditionally; make loop to rebuild CFG; kill unnecesary - find_basic_block calls; kill compute_bb_for_insn call. - * cfgbuild.c (find_basic_blocks): Kill compute_bb_for_insn call. - * haifa-sched.c (sched_init): Likewise. - * ssa-ccp.c (ssa_const_prop): Likewise. - * ssa-dce.c (ssa_eliminate_dead_code): Likewise. - -2002-06-11 David S. Miller - - * emit-rtl.c (emit_*_scope): Only access INSN_SCOPE if - active_insn_p. - -2002-06-11 Richard Henderson - - * c-common.c (builtin_define_type_max): New. - (cb_register_builtins): Define __SCHAR_MAX__, __SHRT_MAX__, - __INT_MAX__, __LONG_MAX__, __LONG_LONG_MAX__, __CHAR_BIT__. - - From Joseph S. Myers: - * glimits.h: Rewrite to expect the double underscore definitions - from the compiler. - - * config/alpha/unicosmk.h, config/avr/avr.h, config/h8300/h8300.h, - config/i386/linux64.h, config/ia64/aix.h, config/ia64/hpux.h, - config/ia64/ia64.h, config/m68hc11/m68hc11.h, config/m68hc11/m68hc12.h, - config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, - config/pa/pa.h, config/rs6000/aix43.h, config/rs6000/aix51.h, - config/rs6000/linux64.h, config/s390/linux.h, config/sh/sh.h, - config/stormy16/stormy16.h: Don't define any of __SHRT_MAX__, - __INT_MAX__, __LONG_MAX__, or __LONG_LONG_MAX__. - -2002-06-11 Richard Henderson - - * config/alpha/alpha.c (ALPHA_BUILTIN_THREAD_POINTER): New. - (ALPHA_BUILTIN_SET_THREAD_POINTER): New. - (code_for_builtns): Update. - (alpha_init_builtins): Add __builtin_thread_pointer and - __builtin_set_thread_pointer. - (alpha_expand_builtin): Handle void builtins. - * doc/extend.texi (Alpha Built-in Functions): Update. - -2002-06-11 Hans-Peter Nilsson - - PR target/6997 - * config/cris/cris.md ("sleu"): Set attribute "cc" to "none". - -2002-06-11 Zack Weinberg - - * config.gcc: Make the name of the extra-modes file adjustable - by target stanzas. - (s390x, strongarm, xscale stanzas): Use this facility. - * configure.in: Update to match. - * configure: Regenerate. - -2002-06-11 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_emit_minmax): Treat unsigned - max/mins as unsigned GE compares. - -2002-06-11 Jason Thorpe - - * config.gcc (vax-*-bsd*): Add vax/bsd.h to ${tm_file}. - * config/vax/bsd.h: New file. - * config/vax/netbsd.h: Add missing notice. - (CPP_PREDEFINES): Remove. - (TARGET_OS_CPP_BUILTINS): Define. - (CPP_SPEC): Use NETBSD_CPP_SPEC. - * config/vax/openbsd.h: Update copyright years. - (CPP_PREDEFINES): Remove. - (TARGET_OS_CPP_BUILTINS): Define. - * config/vax/ultrix.h: Likewise. - * config/vax/vaxv.h: Likewise. - * config/vax/vms.h: Likewise. - * config/vax/vax.h (TARGET_CPU_CPP_BUILTINS): Define. - (CPP_PREDEFINES, CPP_SPEC): Remove. - -Wed Jun 12 01:50:28 CEST 2002 Jan Hubicka - - * i386.md (addqi_1_slp, subqi_1_slp - (andqi_ext0, testqi_ext0): Remove unnecesary check. - (addhi*, addqi*): Simplify "dec" condition. - (testsi to testqi splitters): Remove TARGET_PROMOTE_QImode check. - (and, or, xor to QImode splitters): New. - (iorqi_ext*): New. - (xorqi_ext_0): New. - (xorqi_ext_1): Rename to xorqi_ext_2; bring to sync with and versions. - (andqi_ext_1_rex64): New. - (ashrqi*_slp): New. - (ashlqi*_slp): New. - (lshlqi*_slp): New. - (rotrqi3*_slp): New. - (rotlqi3*_slp): New. - -2002-06-11 Geoffrey Keating - - * config.gcc (powerpc*-*-*, rs6000-*-*-*): Don't bother including - softfloat.h. - * config/rs6000/vxppc.h (CPP_ENDIAN_BIG_SPEC): Delete. - (CPP_ENDIAN_LITTLE_SPEC): Delete. - * config/rs6000/sysv4le.h (CPP_ENDIAN_DEFAULT_SPEC): Delete. - * config/rs6000/sysv4.h (CPP_SYSV_SPEC): Delete _SOFT_FLOAT setting, - __LONG_DOUBLE_128__ setting, _CALL_* setting. - (CPP_DEFAULT_SPEC): Delete. - (CPP_FLOAT_DEFAULT_SPEC): Delete. - (CPP_LONGDOUBLE_DEFAULT_SPEC): Delete. - (CPP_SYSV_DEFAULT_SPEC): Delete. - (CPP_ENDIAN_BIG_SPEC): Delete. - (CPP_ENDIAN_LITTLE_SPEC): Delete. - (CPP_ENDIAN_SPEC): Delete. - (CPP_SPEC): Don't include cpp_endian, cpp_cpu. - (SUBTARGET_EXTRA_SPECS): Delete cpp_sysv_default, cpp_endian_default, - cpp_endian, cpp_endian_big, cpp_endian_little, cpp_float_default, - cpp_longdouble_default. - * config/rs6000/softfloat.h: Delete. - * config/rs6000/rs6000.h (CPP_CPU_SPEC): Delete. - (EXTRA_SPECS): Delete cpp_cpu. - (TARGET_CPU_CPP_BUILTINS): New. - * config/rs6000/rs6000-protos.h (rs6000_cpu_cpp_builtins): New - prototype. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): New. - * config/rs6000/linux64.h (CPP_PREDEFINES): Remove endianness defines. - (CPP_DEFAULT_SPEC): Delete. - * config/rs6000/eabiaix.h (CPP_SYSV_DEFAULT_SPEC): Delete. - * config/rs6000/darwin.h (CPP_PREDEFINES): Don't define __BIG_ENDIAN__. - * config/rs6000/beos.h (CPP_SPEC): Remove cpp_cpu. - (CPP_DEFAULT_SPEC): Delete. - * config/rs6000/aix51.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC. - (CPLUSPLUS_CPP_SPEC): Likewise. - (CPP_CPU_SPEC): Delete. - (CPP_DEFAULT_SPEC): Delete. - * config/rs6000/aix43.h (CPP_SPEC): Remove cpp_cpu, -D_ARCH_PPC. - (CPLUSPLUS_CPP_SPEC): Likewise. - (CPP_CPU_SPEC): Delete. - (CPP_DEFAULT_SPEC): Delete. - * config/rs6000/aix41.h (CPP_SPEC): Remove cpp_cpu. - (CPP_DEFAULT_SPEC): Delete. - * config/rs6000/aix.h (CPP_SPEC): Remove cpp_cpu. - (CPP_DEFAULT_SPEC): Delete. - - * doc/gty.texi: Small updates. - -2002-06-12 Gabriel Dos Reis - - * objc/objc-act.c (warn_with_ivar): Adjust calls to - diagnostic_count_error. - (warn_with_method): Likewise. - - * diagnostic.h (warnings_are_errors_message): New field of - diagnostic_context. - (diagnostic_count_error): Rename to diagnostic_count_diagnostic to - match semantics. - * diagnostic.c: Adjust calls to diagnostic_count_error through out. - (diagnostic_count_diagnostic): Make aware of other kinds of - diagnostics. - (diagnostic_initialize): Initialize warnings_are_errors_message field. - -2002-06-11 Tom Tromey - - For PR java/6520: - * fold-const.c (fold_convert): Don't modify existing tree's type. - -2002-06-11 Geoffrey Keating - - * config/rs6000/ppc-asm.h: Remove some Windows NT leftovers. - -2002-06-11 Richard Henderson - - * caller-save.c (init_caller_save): Clear INSN_CODE each iteration. - -2002-06-11 Richard Henderson - - * defaults.h (EH_FRAME_SECTION_NAME): Don't define if - DWARF2_UNWIND_INFO is false. - -2002-06-11 Bob Wilson - - * config/xtensa/t-xtensa (LIBGCC1_TEST, CROSS_LIBGCC1): Delete. - - * config/s390/s390.c (emit_prologue): gen_store_multiple - returns an insn now, not a pattern. - -2002-06-11 Rainer Orth - - * Makefile.in (gccinstall.dvi): Pass absolute pathnames to - $(TEXI2DVI) -o. - -Tue Jun 11 21:53:37 CEST 2002 Jan Hubicka - - * i386.c (x86_promote_QImode): Set for Athlon - (x86_fast_prefix): New global variable. - (x86_arch_always_fancy_math_387): Fix formating. - * i386.h (x86_fast_prefix): Declare - (TARGET_FAST_PREFIX): define. - * i386.md (and to strict_low_part, HI to SI - promoting splitter): Use new macro. - - * i386.h (RTX_COSTS): float_extend is not for free for SSE. - -2002-06-11 Zack Weinberg - - * Makefile.in (distclean): Delete junk left in testsuite - directory, too. - -2002-06-11 Jeffrey Law - - * emit-rtl.c (try_split): Use INSN_LAST, not LAST_INSN to get the - last insn created by the splitter. - - * caller-save.c (init_caller_save): Move creation of SAVEINSN - and RESTINSN into the scope of the sequence. - - * mips.c (mips_expand_prologue): Use emit_jump_insn for trivial - RETURN insns. - - * loop.c (loop_regs_scan): Avoid useless generation of REG objects. - - * mips.c (function_arg_advance): gen_ashldi3 returns an INSN now, - not the pattern. So extract the pattern from the insn. - - * mips.c (embedded_pic_fnaddr_reg): Fix typo. - -2002-06-11 Ulrich Weigand - - * config/s390/s390.md (movsi): Only use floating point - register alternatives when operands are already fprs. - (movdi_31, movdi_64): Likewise. - -2002-06-11 David S. Miller - - * emit-rtl.c (try_split): Do not abort on non-INSN_P. - Only run RTX equality checks on INSN_P rtl. - -2002-06-11 Ulrich Weigand - - * config/s390/s390.md (reload_base, ltorg): Remove. - * s390.c (s390_stop_dump_lit_p, s390_dump_literal_pool, - s390_asm_output_pool_prologue, s390_pool_start_insn): Remove. - * s390-protos.h (s390_stop_dump_lit_p, s390_dump_literal_pool, - s390_asm_output_pool_prologue): Likewise. - * s390.h (s390_pool_start_insn): Likewise. - - * s390.c (s390_output_symbolic_const): Remove support for - old-style pool chunks. - (s390_function_epilogue): Likewise. - (s390_output_constant_pool): Likewise. Also, fix incorrect - alignment for 64-bit literal pools. - (print_operand_address): Remove 'y' and 'Y' format flags. - * s390.h (ASM_OUTPUT_POOL_PROLOGUE): Remove support for - old-style pool chunks. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Likewise. - (ASM_OUTPUT_POOL_EPILOGUE): Remove. - (S390_CHUNK_MAX, S390_CHUNK_OV, S390_POOL_MAX): Remove. - - * s390.c (consttable_operand): New function. - * s390-protos.h (consttable_operand): Declare it. - * s390.h (PREDICATE_CODES): Add consttable_operand. - * s390.md (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, reload_base2): New insns. - * s390.c (struct constant, struct constant_pool): New data types. - (constant_modes, gen_consttable): New variables. - (s390_start_pool, s390_end_pool, s390_add_pool, - s390_dump_pool, s390_free_pool): New functions. - (s390_chunkify_pool): Completely reimplement literal pool - overflow handling. - - * s390.c (s390_pool_overflow): New variable. - * s390.h (s390_pool_overflow): Declare it. - * s390.md (cjump, icjump): Use it to adapt length for out-of-range - jumps in literal pool overflow situations. - - * s390.c (s390_decompose_address): Accept new-style pool chunk offsets. - (s390_frame_info): Account for possible use of RETURN_REGNUM - by new literal pool overflow code. - (s390_emit_prologue): Likewise. - -2002-06-05 David S. Miller - - Delete SEQUENCE rtl usage outside of reorg and ssa passes. - * rtl.h (gen_sequence, emit_insns, emit_insns_before, - emit_insns_before_scope, emit_insns_after, - emit_insns_after_scope): Delete declaration. - * ada/misc.c (insert_code_for): Use emit_insn* instead of - emit_insns_foo. - * config/alpha/alpha.c (alpha_set_memflags_1): Abort on SEQUENCE. - (alpha_set_memflags): Fix comment. - (set_frame_related_p): Use get_insns instead of gen_sequence. - * config/alpha/alpha.md (setjmp receiver splitter): Avoid - emitting no insns. - * config/arm/arm.c (arm_finalize_pic): Use get_insns instead of - gen_sequence. - (arm_gen_load_multiple, arm_gen_store_multiple): Likewise. - * config/fr30/fr30.c (fr30_move_double): Likewise. - * config/i386/i386.c (ix86_expand_int_movcc, ix86_expand_movstr): - Likewise. - * config/ia64/ia64.c (spill_restore_mem): Likewise. - * config/ia64/ia64.md (conditional move spliiter): Avoid emitting - no insns. - * config/m32r/m32r.c (gen_split_move_double): Use get_insns - instead of gen_sequence. - * config/mips/mips.c (embedded_pic_fnaddr_reg): Likewise. - (mips_expand_prologue, mips16_gp_pseudo_reg): Likewise. - * config/sh/sh.c (sh_need_epilogue): Likewise. - * config/sparc/sparc.md (current_function_calls_alloca, flat): New - attributes. - (setjmp pattern and split): Use them to avoid splitter which emits - no RTL. - * genattrtab.c (main): Emit include of function.h - * config/stormy16/stormy16.c (xstormy16_split_cbranch): Use - get_insns instead of gen_sequence. - * config/cris/cris.c (cris_split_movdx): Likewise. - * emit-rtl.c (emit_insns*): Kill. - (try_split): Expect insn list instead of SEQUENCE. - (make_jump_insn_raw, make_call_insn_raw): Fix comments. - (emit_*insn*): Reimplement to work with INSN lists and PATTERNs. - Make them abort if a SEQUENCE is given and RTL checking is - enabled. - (emit_*_scope): Don't forget to set scope on final insn. - (gen_sequence): Move from here... - * ssa.c (gen_sequence): To here as private function. - * builtins.c (expand_builtin_apply_args): Use emit_insn_foo, fix - comments. - (expand_builtin_return, expand_builtin_mathfn): Likewise. - (expand_builtin_strlen): Use get_insns instead of gen_sequence. - (expand_builtin_saveregs): Use emit_insn_foo, fix comments. - (expand_builtin_expect_jump): Use get_insns and fix comments. - * calls.c (try_to_integrate): Use emit_insn_foo. - (expand_call, emit_library_call_value_1): Likewise. - * expr.c (emit_queue): Handle insn lists instead of SEQUENCE. - (emit_move_insn_1): Use get_insns instead of gen_sequence. - (expand_expr): Use emit_insn_foo. - * cfgrtl.c (commit_one_edge_insertion): Use emit_insn_foo. - * except.c (build_post_landing_pads): Likewise. - * flow.c (attempt_auto_inc): Likewise. - * stmt.c (expand_fixup, fixup_gotos, expand_nl_handler_label, - expand_nl_goto_receivers, expand_decl_cleanup): Likewise. - * function.c (fixup_var_refs_insn): Use get_insns instead of - gen_sequence. - (fixup_var_refs_1): Likewise and expect insn list from gen_foo. - (fixup_memory_subreg): Use get_insns instead of gen_sequence. - (fixup_stack_1, purge_addressof_1, expand_main_function, - get_arg_pointer_save_area): Likewise. - (optimize_bit_field, instantiate_virtual_regs_1, assign_parms, - expand_function_end): Use emit_insn_foo. - (record_insns, keep_stack_depressed): Work with insn list instead - of SEQUENCE, fix comments. - * ifcvt.c (noce_emit_store_flag, noce_try_store_flag, - noce_try_store_flag_constants, noce_try_store_flag_inc, - noce_try_store_flag_mask, noce_emit_cmove, noce_try_cmove_arith, - noce_try_minmax, noce_try_abs): Use emit_insn_foo. - (noce_process_if_block): Use get_insns instead of gen_sequence. - * optabs.c (add_equal_note): Work with insn list, fix comments. - (expand_binop): Expect insn list from GEN_FCN(), use emit_insn_foo. - (expand_unop, expand_complex_abs, expand_unop_insn, - expand_no_conflict_block): Likewise. - (gen_move_insn): Use get_insns instead of gen_sequence. - (gen_cond_trap): Likewise. - * integrate.c (copy_rtx_and_substitute): Likewise. - (emit_initial_value_sets): Use emit_insn_foo. - * reload1.c (emit_output_reload_insns, emit_reload_insns): Likewise. - (fixup_abnormal_edges): Avoid losing REG_NOTES more intelligently - now that RTL generators give insn lists. - * sibcall.c (replace_call_placeholder): Use emit_insn_foo. - * doloop.c (doloop_modify, doloop_modify_runtime): Use get_insns - instead of gen_sequence. - (doloop_optimize): Work with insn lists instead of SEQUENCE rtl. - * explow.c (emit_stack_save, emit_stack_restore): Use get_insns - instead of gen_sequence. - * loop.c (move_movables, emit_prefetch_instructions, - gen_add_mult, check_dbra_loop, gen_load_of_final_value): - Likewise. - (loop_regs_update): Work with insn list instead of SEQUENCE rtl. - (product_cheap_p): Likewise, and add commentary about RTL wastage - here. - * lcm.c (optimize_mode_switching): Use get_insns instead of - gen_sequence. - * profile.c (gen_edge_profiler): Likewise. - * regmove.c (copy_src_to_dest): Likewise. - * reg-stack.c (compensate_edge): Likewise and fix comment. - * gcse.c (process_insert_insn): Likewise. - (insert_insn_end_bb): Work with insn list instead of SEQUENCE rtl. - * jump.c (delete_prior_computation): Update comment. - * genemit.c (gen_expand, gen_split, main): Use get_insns instead - of gen_sequence, update comments to match. - * recog.c (peephole2_optimize): Work with insn lists instead of - SEQUENCE rtl. - * sched-vis.c (print_pattern): Abort on SEQUENCE. - * unroll.c (unroll_loop, find_splittable_givs, final_giv_value): - Use get_insns instead of gen_sequence. - (copy_loop_body): Likewise and don't emit dummy NOTE. - * genrecog.c: Don't mention SEQUENCE rtl in comments. - * combine.c (try_combine): Expect insn lists from split generator. - * reorg.c (relax_delay_slots): Emit SEQUENCE into insn list by - hand. - -2002-06-11 Roger Sayle - Andreas Jaeger - - * cfgbuild.c: Update copyright years. - -2002-06-11 Andreas Schwab - - * config/m68k/m68k.h (PREDICATE_CODES): Define. - -2002-06-11 Eric Christopher - - * doc/tm.texi (Run-time Target): Add comment about flag_iso - and strict ANSI. - * config/mips/ecoff.h (CPP_PREDEFINES): Remove. - * config/mips/ecoffl.h: Ditto. - * config/mips/elf64.h (SUBTARGET_CPP_SPEC): Remove. - (CPP_PREDEFINES): Ditto. - * config/mips/elfl64.h: Ditto. - * config/mips/elfl.h: Ditto. - * config/mips/iris3.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): #if 0 - out until irix header consolidation. - * config/mips/iris5.h (CPP_PREDEFINES, SUBTARGET_CPP_SPEC): Replace - with SUBTARGET_OS_CPP_BUILTINS. - * config/mips/iris6.h: Ditto. - (CPLUSPLUS_CPP_SPEC): Remove. - * config/mips/linux.h: Ditto. - * config/mips/netbsd.h: Ditto. - * config/mips/openbsd.h: Ditto. - * config/mips/rtems.h: Ditto. - * config/mips/rtems64.h: Ditto. - * config/mips/sni-svr4.h: Ditto. - * config/mips/mips.h (ISA_MIPS1, ISA_MIPS2, ISA_MIPS3, ISA_MIPS4, - ISA_MIPS32, ISA_MIPS64): New defines. - (GENERATE_MULT3_SI, HAVE_SQRT_P, ISA_HAS_64BIT_REGS, - ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, ISA_HAS_8CC, ISA_HAS_FP4, - ISA_HAS_COND_TRAP, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB, - ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Use. - (TARGET_CPU_CPP_BUILTINS): Define. - (CPP_PREDEFINES, LONG_MAX_SPEC, CPP_FPR_SPEC, CPP_SPEC): Remove. - * config/mips/mips.md (mulsi3_mult3): Use ISA_MIPS32/64. - (movdicc): Remove check for ISA_MIPS32. - (bunordered, bordered, bungt, bunlt, buneq, bunge, bunle, - sunordered_df, sunordered_sf, sordered_df, sordered_sf, - sunlt_df, sunlt_sf, sungt_df, sungt_sf, suneq_df, suneq_sf, sunge_df, - sunge_sf, sunle_df, sunle_sf): New patterns. - -2002-06-11 Neil Booth - - * Makefile.in: Update cppmain.o. - * cpphash.h (struct cpp_reader): Move some members to a - nested structure. - (trad_line): Rename saved_line. - (_cpp_read_logical_line_trad): Update. - (_cpp_remove_overlay): New. - * cppinit.c (cpp_create_reader): No need to set saved_line. - (cpp_destroy): Update. - (cpp_read_main_file): Only overlay if compiling. - * cpplex.c (continue_after_nul): Return false if in directive. - * cpplib.c (EXPAND): New. - (directive_table, SEEN_EOL): Update. - (end_directive): Remove overlay if traditional; don't skip - line in traditional #define. - (prepare_directive_trad): New. - (_cpp_handle_directive, run_directive): Update for traditional - directives. - (lex_macro_node): Simplify, don't use lex_identifier_trad. - * cpplib.h (struct options): Add preprocess_only. - * cppmain.c: Don't include intl.h. - (cpp_preprocess_file): Set options->preprocess_only. - (scan_translation_unit_trad): Fix, and print line numbers. - * cpptrad.c (check_output_buffer, lex_identifier, scan_parameters, - maybe_start_funlike, scan_out_logical_line, replace_args_and_push, - save_replacement_text, _cpp_create_trad_definition): Update for - variable renaming. - (_cpp_overlay_buffer): Save line number. - (_cpp_remove_overlay): Rename from restore_buff, restore line. - (_cpp_read_logical_line_trad): Don't handle overlays here. - (scan_out_logical_line): Process directives. - -2002-06-11 Danny Smith - - * gthr-win32.h: Wrap functions in extern "C". - (__gthread_key_t): Typedef as unsigned long, - not win32 DWORD. - (__GTHREAD_ONCE_INIT): Use 0, not win32 FALSE. - (__gthread_mutex_t): Typedef as void*, not win32 HANDLE. - (__gthr_win32_once, __gthr_win32_key_create, - __gthr_win32_key_delete, __gthr_win32_getspecific, - __gthr_win32_setspecific, __gthr_win32_mutex_init_function, - __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock, - __gthr_win32_mutex_unlock): Declare. - (__gthread_once,__gthread_key_create, - __gthread_key_delete, __gthread_getspecific, - __gthread_setspecific, __gthread_mutex_init_function, - __gthread_mutex_lock,__gthread_mutex_trylock, - __gthread_mutex_unlock): Call corresponding - __gthr_win32_* extern implementations if #defined - __GTHREAD_HIDE_WIN32API. - * config/i386/t-mingw32 (LIB2FUNCS_EXTRA): Set to - $(srcdir)/config/i386/gthr-win32.c - * config/i386/gthr-win32.c: New implementation file. - (__gthr_win32_once, __gthr_win32_key_create, - __gthr_win32_key_delete, __gthr_win32_getspecific, - __gthr_win32_setspecific, __gthr_win32_mutex_init_function, - __gthr_win32_mutex_lock,__gthr_win32_mutex_trylock, - __gthr_win32_mutex_unlock): New functions, based on - static inlines in gthr-win32.h. - -2002-06-10 Bob Wilson - - * config/xtensa/xtensa.c (override_options): Don't warn about - using -fpic or -fPIC when PIC is enabled by default. - -2002-06-10 Roger Sayle - - * toplev.c (rest_of_compilation): Revert flag_if_conversion change. - -2002-06-10 Zack Weinberg - - * Makefile.in (MACHMODE_H): Add @extra_modes_file@. - * configure.in: If $srcdir/config/${cpu_type}/${cpu_type}-modes.def - exists, substitute its pathname as @extra_modes_file@, define - EXTRA_MODES_FILE to be an appropriate string to #include it - with, and define EXTRA_CC_MODES to 1. - - * machmode.def: Update comments. Include EXTRA_MODES_FILE if - it's defined. Get rid of redundancy in calling sequence for - CC; don't use it to define CCmode, to avoid a warning. - * libgcc2.c: Include symcat.h for the sake of machmode.def. - - * arc-modes.def, arm-modes.def, c4x-modes.def, i386-modes.def, - i960-modes.def, ia64-modes.def, m88k-modes.def, mmix-modes.def, - pa-modes.def, pdp11-modes.def, rs6000-modes.def, sparc-modes.def: - New files. - * arc.h, arm.h, c4x.h, i386.h, i960.h, ia64.h, m88k.h, mmix.h, - pa.h, pdp11.h, rs6000.h, sparc.h: Don't define EXTRA_CC_MODES. - - * doc/sourcebuild.texi, doc/tm.texi: Document new scheme for - defining extra CC modes. - -2002-06-10 Roger Sayle - Andreas Jaeger - - * cfgrtl.c (create_basic_block_structure): Remove index argument - and use last_basic_block++ instead. (create_basic_block): Update. - * cfgbuild.c (find_basic_blocks_1): Likewise. - - * cfgrtl.c (compute_bb_for_insn): Remove unused "max" argument. - * haifa-sched.c (sched_init): Update compute_bb_for_insn caller. - * sched-ebb.c (schedule_ebbs): Likewise. - * sched-rgn.c (schedule_insns): Likewise. - * ssa-ccp.c (ssa_const_prop): Likewise. - * ssa-dcs.c (ssa_eliminate_dead_code): Likewise. - * toplev.c (rest_of_compilation): Likewise. - * config/ia64/ia64.c (ia64_reorg): Likewise. - -2002-06-10 Roger Sayle - - * simplify-rtx.c (simplify_replace_rtx): Allow replacement - of matching registers. - -2002-06-10 Roger Sayle - - * toplev.c (rest_of_compilation): Disable early if-conversion pass. - * gcse.c (bypass_conditional_jumps): Fix typo in setcc test. - -2002-06-10 Hans-Peter Nilsson - - * config/mmix/mmix.h: Improve comments. - (CPP_SPEC, CPP_PREDEFINES): Don't define. - (TARGET_CPU_CPP_BUILTINS): Define. - (CANONICALIZE_COMPARISON): Don't define, replace with comment. - (PREDICATE_CODES) <"mmix_reg_or_8bit_or_256_operand">: Remove - unused predicate. - * config/mmix/mmix.c (MMIX_OUTPUT_REGNO): Add cast to avoid - compiler warning. - (mmix_constant_address_p): Remove another - redundant test before case. - (mmix_canonicalize_comparison): Remove unused function. - (mmix_print_operand_address): Don't test and adjust for operand in - non-canonical format. - (mmix_reg_or_8bit_or_256_operand): Remove unused predicate. - (mmix_gen_compare_reg): Don't use CANONICALIZE_COMPARISON. - -2002-06-10 Zack Weinberg - - * config/m32r/m32r.h: Don't define SELECT_CC_MODE. - * config/m32r/m32r-protos.h: Don't prototype m32r_select_cc_mode. - * config/m32r/m32r.c: Don't define m32r_select_cc_mode. - (gen_compare): Use CCmode unconditionally. - -2002-06-10 Jakub Jelinek - - PR optimization/6759 - * cse.c (cse_insn): Fold src_eqv just once, store it folded back into - the REQ_EQUAL note. - -2002-06-10 Jakub Jelinek - - PR c/6660 - * c-decl.c (grokfield): Allow user defined types if they declare - structs or unions for unnamed fields. - -2002-06-10 Jakub Jelinek - - PR c/6809 - * print-rtl.c (print_mem_expr): Don't crash on unnamed fields. - -2002-06-10 Jakub Jelinek - - PR optimization/6842 - * combine.c (combine_simplify_rtx) [SUBREG]: Don't ICE if VOIDmode - operand subreg cannot be simplified. - -2002-06-10 Jakub Jelinek - - * varasm.c (const_hash): Handle FDESC_EXPR like ADDR_EXPR. - (compare_constant): Likewise. - (output_addressed_constants): Likewise. - -2002-06-10 Jakub Jelinek - - * cfgcleanup.c (try_optimize_cfg): Make sure merge_blocks doesn't - merge bb with itself. - -2002-06-10 Richard Henderson - - * config/alpha/alpha.md (builtin_zap): Fix thinkos expanding mask. - (builtin_zapnot): Likewise. - - * config/alpha/ev5.md: Don't combine shift and mvi insns in one - reservation. - -2002-06-10 Eric Christopher - - * config/i386/i386.c (ix86_osf_output_function_prologue): Remove - prototype and function. - (TARGET_ASM_FUNCTION_PROLOGUE): Remove OSF version. - (call_insn_operand): Remove half pic references. - (legitimate_address_p): Ditto. - * config/i386/i386.h: Remove half pic defines. - -2002-06-10 Eric Christopher - - * doc/extend.texi (Return Address): Add note explaining the side- - effects of inlining on __builtin_return_address. - -2002-06-10 Tom Tromey - - * Makefile.in (LANGHOOKS_DEF_H): Include langhooks-def.h. - (c-common.o): Depend on langhooks.h. - -2002-06-10 Neil Booth - - * cpphash.h (_cpp_read_logical_line_trad, - _cpp_expansions_different_trad): Update prototypes. - * cpplex.c (continue_after_nul): New. - * cppmain.c: Include cpphash.h. - (scan_translation_unit_trad): New. - (cpp_preprocess_file): Call it. - * cpptrad.c (_cpp_read_logical_line_trad): Take new parameter - overlay. - (_cpp_expansions_different_trad): Update prototype. - -Mon Jun 10 18:02:24 2002 J"orn Rennecke - - Fix cfi generation for SH[1-4]: - - * sh.c (frame_insn): New function. - (output_stack_adjust): Add parameter emit_fn. All callers changed. - (push): Now returns rtx. Use frame_insn. - (sh_expand_prologue): Clear RTX_FRAME_RELATED_P for second push - of a DF register. - * sh.h (INCOMING_RETURN_ADDR_RTX, DWARF_FRAME_RETURN_COLUMN): Define. - -2002-06-10 Zack Weinberg - - * Makefile.in (STAGESTUFF): Add s-gtype, gt-*.h, gtype-*.h, - and gtype-desc.c. - (mostlyclean): Delete specs.h, options.h, gencheck.h here... - (distclean): ... not here. But do delete all testsuite/*.log, - testsuite/*.sum files here. Delete mkheaders. Delete - po/*.gmo and the testsuite directory in a split tree build. - -2002-06-10 Jeffrey Law - - * alias.c (static_reg_base_value): New to hold RTL for - items allocated once per function for the aliasing code. - (init_alias_once_per_function): Initialize static_reg_base_value. - (init_alias_analysis): Avoid throw-away allocations of RTL by - using pre-computed values in static_reg_base_value. - * function.c (prepare_function_start): Call - init_alias_once_per_function appropriately. - * rtl.h (init_alias_once_per_function): Declare. - * caller-save (init_caller_save): Restructure slightly to - avoid lots of silly RTL generation. - * expr.c (init_expr_once): Likewise. - * reload1.c (reload_cse_regs_1): Allocate throw-away register - RTL object here. Pass it into children. - (reload_cse_simplify_operands): Use passed-in register RTL - object. - (reload_cse_simplify): Pass through throw-away register - RTL object. - -2002-06-10 Daniel Berlin - - * Makefile.in (ssa.o): Add dependency on $(RTL_H), which was missing. - -2002-06-10 Richard Sandiford - - * gcc.c (process_command): Avoid assignment to read-only location. - Fix sizeof calculation. - -2002-06-10 Neil Booth - - * cpphash.h (struct cpp_macro): Put comments on their own lines. - (_cpp_expansions_different_trad): New. - * cppmacro.c (warn_of_redefinition): Fix for traditional case. - * cpptrad.c (canonicalize_text): New. - (scan_out_logical_line): Handle no arguments correctly. - (save_replacement_text): Commit memory when finished. - (_cpp_expansions_different_trad): New. - -2002-06-10 Tim Josling - - * gengtype.c (unnamed enum containing BASE_FILE_*): Add languages - TREELANG and COBOL. - (lang_names): Add treelang and cobol. - (get_file_basename): Add code to support treelang and cobol as - 4th and 5th users of c-common.c. - -2002-06-09 Geoffrey Keating - - * Makefile.in (install-driver): Install driver as - $(target_alias)-gcc-$(version). - * gcc.c (spec_version): Make const. - (process_command): Handle -V and -b by using exec. - * doc/invoke.texi (Target Options): Restore -V option, - update docs for -b option. - -2002-06-10 Tim Josling - - * configure.in (remaining_languages_check): - Added check that all languages specified were found. - Exit if not found. Previous behavior was silent failure. - * configure: Regenerated. - -2002-06-10 Tim Josling - - First steps to making treelang documentation compliant, based on - instructions in sourcebuild.texi. Also add to gcc.c list of - default languages. - - * doc/contrib.texi: Add self as contributor of treelang. - - * doc/frontends.texi: Add mention of treelang. - - * doc/invoke.texi (Overall Options): Add mention of treelang. - - * doc/standards.texi: Add mention of treelang. - -2002-06-09 Hans-Peter Nilsson - - * config/cris/cris.c: Include ggc.h - -2002-06-09 Neil Booth - - * cpphash.h (_cpp_push_text_context): Update. - (_cpp_arguments_ok): New. - * cppmacro.c (_cpp_arguments_ok): New, split out from... - (collect_args): ...here. - (_cpp_push_text_context): Change inputs. - * cpptrad.c (struct fun_macro, maybe_start_funlike, save_argument, - replace_args_and_push): New. - (lex_identifier, _cpp_lex_identifier_trad, scan_parameters): - Don't use IS macros directly. - (scan_out_logical_line): Handle function-like macro argument - collection. - (push_replacement_text): Update. - (replacement_length): Remove. - (_cpp_create_trad_definition): Don't skip whitespace before - checking for '('. - -2002-06-09 Marek Michalkiewicz - - * config/avr/avr.c (avr_mcu_types): Update for new devices. - * config/avr/avr.h (TARGET_SWITCHES, AVR_MEGA): Add -mshort-calls. - (LINK_SPEC, CRT_BINUTILS_SPECS): Update for new devices. - * config/avr/avr.md ("type" and "length" attributes): New type - "xcall", length 1 or 2 if AVR_MEGA. Use in all patterns that - output a single "call" or "rcall" insn depending on device size. - * config/avr/t-avr (MULTILIB_MATCHES): Update for new devices. - -2002-06-09 David Edelsohn - - * config/rs6000/{aix43.h,aix5.1} (ASM_CPU_SPEC): Add power3 - synonym for 630. Add power4. Remove embedded processors. Use -m604 - assembler option. - (CPP_CPU_SPEC): Add power3 and power4. - (PROCESSOR_DEFAULT): Change to 604e. - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Similar additions. - (CPP_CPU_SPEC): Similar additions. - (enum process_type): Add POWER4. - (RTX_COSTS): Add POWER4. - (CPP_CPU_SPEC): Similar additions. - * config/rs6000/linux64.h (PROCESSOR_DEFAULT): Define. - (PROCESSOR_DEFAULT64): Define. - * config/rs6000/rs6000.c (rs6000_override_options): Add power4. - (rs6000_adjust_cost): Add 603, 604, 604e, 620, 630, Power4 to - branch adjustment. - (rs6000_issue_rate): Add Power4. - * config/rs6000/rs6000.md (cpu attr): Add power4. - (iu compare): Remove 604, 604e, 620, 630. - Add basic Power4 scheduling information. - (mfcr/mtcrf): Change type attribute to cr_logical. - -2002-06-08 Kaveh R. Ghazi - - * gengtype.h (error_at_line): Use PARAMS, not VPARAMS. Add - ATTRIBUTE_PRINTF_2. - * gengtype-lex.l: Fix format specifier warning. - - * genautomata.c: Don't include ctype.h or limits.h. Use ISSPACE, - not isspace. - * gengtype-lex.l: Don't include ctype.h and use ISSPACE/ISIDNUM in - lieu of isspace/IDchar. - * gengtype.c: Likewise for ctype.h and ISALNUM vs isalnum. - * read-rtl.c: Likewise for ctype.h. Don't define ISDIGIT or - ISSPACE. - -2002-06-08 Zack Weinberg - - * Makefile.in (LIBCPP_OBJS): Take out version.o. - * cpphash.h (cpp_reader): Take out print_version member. - * cppinit.c: (cpp_handle_option): Don't do anything with - -version. Just set help_only for --version, --target-help. - Just set verbose option for -v. - (cpp_post_options): Don't print a version string. - -2002-06-08 Marek Michalkiewicz - - * config/avr/avr.c (TARGET_SECTION_TYPE_FLAGS): New. - (avr_section_type_flags): New, handle .noinit* sections. - -2002-06-08 Jason Thorpe - - * config/sh/netbsd-elf.h (SUBTARGET_EXTRA_SPECS): Define - and include netbsd_entry_point. - (SUBTARGET_LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF. - (NETBSD_ENTRY_POINT): Define. - -2002-06-08 Jason Thorpe - - * config/sh/sh.h (SUBTARGET_EXTRA_SPECS): Define empty - if not already defined. - (EXTRA_SPECS): Add SUBTARGET_EXTRA_SPECS. - -2002-06-08 Marek Michalkiewicz - - * config/avr/avr.c (avr_regs_to_save): No need to save any registers - in a noreturn function. - (avr_output_function_prologue, avr_output_function_epilogue): - Correct function size calculation. Do not crash on empty function. - (avr_output_function_epilogue): No need for epilogue after a BARRIER. - -2002-06-08 Jason Thorpe - - * config/mips/netbsd.h (SUBTARGET_EXTRA_SPECS): Add - netbsd_link_spec and netbsd_entry_point. - (LINK_SPEC): Use %(netbsd_link_spec). - (NETBSD_ENTRY_POINT): Define. - -2002-06-08 Jason Thorpe - - * config/sparc/netbsd-elf.h (LINK_ARCH32_SPEC): Only specify - linker emulation. - (LINK_ARCH64_SPEC): Likewise. - (LINK_SPEC, NETBSD_ENTRY_POINT): Define. - (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and netbsd_entry_point. - -2002-06-08 Marc Espie - - * lists.c (free_list): Fix typo in comment. - -2002-06-08 Andreas Jaeger - - * lcm.c (optimize_mode_switching): Add unused attribute for - variable. - - * sched-deps.c (sched_analyze): Remove unused variable. - -2002-06-08 Gabriel Dos Reis - - * diagnostic.def: Don't capitalize diagnostict descriptors. - -2002-06-08 Jason Thorpe - - * config/m68k/netbsd-elf.h (EXTRA_SPECS): Add netbsd_entry_point. - (LINK_SPEC): Define as NETBSD_LINK_SPEC_ELF. - (NETBSD_ENTRY_POINT): Define. - -2002-06-08 Jason Thorpe - - * config/i386/netbsd-elf.h (LINK_SPEC): Define as - NETBSD_LINK_SPEC_ELF. - (SUBTARGET_EXTRA_SPECS): Add netbsd_entry_point. - (NETBSD_ENTRY_POINT): Define. - * config/i386/netbsd64.h (LINK_SPEC): Use %(netbsd_link_spec). - (SUBTARGET_EXTRA_SPECS): Add netbsd_link_spec and - netbsd_entry_point. - (NETBSD_ENTRY_POINT): Define. - -2002-06-08 Jason Thorpe - - * config/alpha/netbsd.h (SUBTARGET_EXTRA_SPECS): Add - netbsd_link_spec and netbsd_entry_point. - (LINK_SPEC): Use %(netbsd_link_spec). - (NETBSD_ENTRY_POINT): Define. - -2002-06-08 Jason Thorpe - - * config/netbsd-elf.h (LINK_SPEC): Rename to... - (NETBSD_LINK_SPEC_ELF): ...this. Use %(netbsd_entry_point) - to specify program entry point. - -2002-06-07 Jeff Law - - * simplify-rtx.c (simplify_gen_relational): Simplify RTL of the form - (ne (comp x y) 0) into (comp x y) where comp is a comparison code. - Simplify (eq (comp x y) 0) into (revcomp x y) if the sense of the - comparison code comp can be reversed. - -2002-06-07 Roger Sayle - - * fold-const.c (fold) [EQ_EXPR]: Place both integer and real - constants last in comparisons. Optimize (x+1.0)>0.0 into the - equivalent x > -1.0 when -ffast-math. - -2002-06-07 Jason Thorpe - - * config.gcc (mips*-*-netbsd*): Add mips/t-netbsd to ${tmake_file}. - * config/mips/t-netbsd: New file. - -2002-06-07 Zack Weinberg - - * cppinit.c (COMMAND_LINE_OPTIONS): Give all relevant -W - options their own entries. - (parse_option): Clarify comment. - (cpp_handle_option): Remove 'ignore' parameter and OPT_W - special case. Replace if/strcmp chain for -W options with - use of new OPT_* entries for them. - (cpp_handle_options): Update to match. - * cpplib.h: Remove last parameter to cpp_handle_option from prototype. - * c-decl.c: Update call to cpp_handle_option. - -2002-06-07 Akim Demaille - - * gengtype-yacc.y (optionseqopt): Add the ending `;' to the action. - Whitespace changes. - -2002-06-07 Jeffrey Law - - * sched-deps.c (free_deps): Avoid calling free_INSN_LIST_list - on empty lists. - -2002-06-07 H.J. Lu (hjl@gnu.org) - - * configure.in: Add --enable-__cxa_atexit. - * configure: Regenerated. - * config.in: Likewise. - - * defaults.h (DEFAULT_USE_CXA_ATEXIT): New. Defined to be 0 if - not defined. - -2002-06-07 Gabriel Dos Reis - - * diagnostic.c (diagnostic_build_prefix): Fix initialization. - -2002-06-07 Jason Thorpe - - * config/mips/netbsd.h (CACHE_FLUSH_FUNC): Define. - -2002-06-07 Jason Merrill - - * cppexp.c (num_equality_op): Use a temporary variable to work - around gcc 3.0.4 bug. - -2002-06-07 Gabriel Dos Reis - - * diagnostic.c (diagnostic_build_prefix): Tidy. - -2002-06-07 Neil Booth - - * cpptrad.c (struct block, BLOCK_HEADER_LEN, BLOCK_LEN, - scan_parameters, save_replacement_text, replacement_length): New. - (scan_out_logical_line): Take a macro and save parameters if - non-NULL. - (_cpp_logical_line_trad): Update. - (_cpp_create_trad_definition): Update to handle function-like - macros. - * cpplex.c (new_buff): Update. - (struct dummy, DEFAULT_ALIGNMENT, CPP_ALIGN): Move... - * cpphash.h: ...here. - (CPP_ALIGN2, _cpp_save_parameter): New. - * cppmacro.c (save_parameter): Rename, export. - (parse_params): Update. - -2002-06-07 Andreas Jaeger - - * config/mmix/mmix.c: Remove extra broken prototype for - mmix_init_machine_status. - -2002-06-06 Geoffrey Keating - - * gengtype.c: Add comments before all the routines. - -2002-06-07 Jason Thorpe - - * config.gcc (sh5*-*-netbsd*): Remove sh/t-netbsd-sh5-32 - from and add t-sh64 to ${tmake_file}. - (sh64*-*-netbsd*): Add t-sh64 to ${tmake_file}. - * config/sh/t-netbsd-sh5 (LIB1ASMFUNCS): Remove. - * config/sh/t-netbsd-sh5-32: Remove. - * config/sh/t-netbsd-sh5-64 (MULTILIB_OPTIONS): Use - MULTILIB_ENDIAN. - (MULTILIB_DIRNAMES): Define. - -Thu Jun 6 23:14:46 CEST 2002 Jan Hubicka - - * i386.md (and promoting splitters): Disable QI to SImode promoting - when doing so changes immediate to be 32bit. - - * rtl.h (emit_*_scope): Declare. - * emit-rtl.c (emit_*_scope): New global functions. - (try_split): Copy scope. - * ifcvt.c (noce_try_store_flag, noce_try_store_flag_constants, - noce_try_flag_inc, noce_try_store_flag_mask, noce_try_cmove, - noce_try_cmove_arith, noce_try_minmax, noce_try_abs, - noce_process_if_block, find_cond_trap): Copy scopes. - * recog.c (peephole2_optimize): likewise. - -2002-06-06 Jeffrey Law - - * h8300.h (OK_FOR_U): Fix thinko exposed by flag checking. - -Thu Jun 6 21:06:25 2002 J"orn Rennecke - - * gengtype-lex.l (INITIAL): New rule for "'"("\\".|[^\\])"'". - -2002-06-06 Rainer Orth - - * Makefile.in (TEXI_GCCINSTALL_FILES): Define. - ($(docdir)/gccinstall.info): New target. - (info): Depend on it. - (gccinstall.dvi): New target. - (dvi): Depend on it. - * doc/.cvsignore: Ignore new info files. - * doc/install.texi (@setfilename): Reflect new info filename. - -Thu Jun 6 15:57:23 2002 J"orn Rennecke - - * sh.c (machine_dependent_reorg): Don't set RTX_UNCHANGING_P - on an UNSPEC. - -Thu Jun 6 07:17:43 2002 Nicola Pero - - PR objc/6834 - * objc/objc-lang.c (LANG_HOOKS_GET_ALIAS_SET): Define to be - c_common_get_alias_set. - (LANG_HOOKS_SAFE_FROM_P): Define to be c_safe_from_p. - -2002-06-06 John David Anglin - - * emit-rtl.c (get_first_nonnote_insn, get_last_nonnote_insn): New - functions. - * rtl.h (get_first_nonnote_insn, get_last_nonnote_insn): Declare. - * avr/avr.c (avr_output_function_epilogue): Use above to determine - function size. - * pa/pa.c (pa_output_function_prologue): Likewise. - -2002-06-05 David S. Miller - - * integrate.c (subst_constants): Handle 'B' RTL format. - -2002-06-05 Eric Christopher - - * varasm.c (make_decl_rtl): Fix comment for removed - halfpic.c. - -2002-06-05 Eric Christopher - - * Makefile.in: Remove missed halfpic bits. - -2002-06-05 Eric Christopher - - * toplev.c: Remove half-pic. - * config/mips/mips.c: Ditto. - * config/mips/mips.h: Ditto. Remove unused defines. - * config/mips/openbsd.h: Update comment to reflect above. - * config/mips/mips.md: Remove half-pic constraints. - * halfpic.h: Delete. - * halfpic.c: Ditto. - -2002-06-05 Jeffrey Law - - * pa.h (EXTRA_CONSTRAINT, T case): Further refine so that it - rejects (mem (lo_sum (reg) (unspec))), but will allow - (mem (lo_sum (reg) (symbol_ref)) for PA2.0. - -2002-06-05 Neil Booth - - * cpphash.h (_cpp_create_definition): Update prototype. - (_cpp_push_text_context, _cpp_create_trad_definition): New. - ( cpp_lex_identifier_trad): New. - (_cpp_set_trad_context): New. - * cppinit.c (cpp_finish_options): Don't conditionalize builtins. - * cpplib.c (SEEN_EOL): Update. - (lex_macro_node): Update for -traditional. - (cpp_push_buffer, _cpp_pop_buffer): Similarly. - * cppmacro.c (_cpp_create_definition): Split into - create_iso_definition() and _cpp_create_trad_definition(). - (warn_of_redefinition): Update prototype; handle traditional - macros. - (_cpp_push_text_context): New. - * cpptrad.c (skip_whitespace, push_replacement_text): New. - (lex_identifier): Call ht_lookup with correct start. - (_cpp_lex_identifier_tradm _cpp_create_trad_definition, - _cpp_set_trad_context): New. - (scan_out_logical_line): Update to handle changing contexts. - -Wed Jun 5 20:42:31 2002 J"orn Rennecke - - * config.gcc (sh-*-elf*, sh64*-*-elf*): Unify. - (shl*-*-elf*): Add. - * config/sh/t-be (MULTILIB_ENDIAN): Set. - * config/sh/t-le (MULTILIB_ENDIAN): Likewise. - * t-sh (MULTILIB_ENDIAN): Set. - (MULTILIB_OPTIONS): Use it. - * t-sh64 (MULTILIB_OPTIONS): Likewise. - (MULTILIB_DIRNAMES): Likewise. - -2002-06-05 Gabriel Dos Reis - - * toplev.h (report_error_function): Remove. - - * diagnostic.h (location_t): New datatype. - (text_info): Likewise. - (diagnostic_info): Likewise. - (output_prefix): New macro. - (diagnostic_last_function_changed): Likewise. - (diagnostic_set_last_function): Likewise. - (diagnostic_last_module_changed): Likewise. - (diagnostic_set_last_module): Likewise. - (report_diagnostic): Now macro. - (diagnostic_set_info): Declare. - - * diagnostic.c (report_problematic_module): Rename to - diagnostic_repor_current_module. - (set_diagnostic_context): Remove. - (count_error): Rename to diagnostic_error_count. - (error_function_changed): Remove. - (record_last_error_function): Likewise. - (error_module_changed): Likewise. - (record_last_error_module): Likewise. - (context_as_prefix): Rename to diagnostic_build_prefix. - (flush_diagnostic_buffer): Rename to diagnostic_flush_buffer. - (diagnostic_set_info): New function. - - * objc/objc-act.c: #include diagnostic.h - (error_with_ivar): Adjust call to count_error. - (warn_with_method): Likewise. - * objc/Make-lang.in (objc-act.o): Depend on diagnostic.h - -2002-06-05 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_build_va_list): Use - lang_hooks.types.make_type instead of make_node; set up - __va_list_tag type decl. - (xtensa_builtin_saveregs): Remove broken use of - RTX_UNCHANGING_P and unnecessary use of MEM_IN_STRUCT_P - for saved registers; add varargs alias set. - -2002-06-05 Neil Booth - -config: - * alpha/gnu.h: Undef TARGET_OS_CPP_BUILTINS. - * i386/beos-elf.h: Use TARGET_OS_CPP_BUILTINS rather than - CPP_PREDEFINES and part of CPP_SPEC. - i386/freebsd-aout.h, i386/gas.h, i386/gnu.h, i386/linux-aout.h, - i386/linux.h, i386/moss.h, i386/xm-vsta.h: Similarly. - -Wed Jun 5 15:20:58 CEST 2002 Jan Hubicka - - * reg-stack.c (reg_to_stack): Do not call find_basic_blocks. - -2002-06-05 Alan Modra - - * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Define. - -2002-06-04 Zack Weinberg - - * gengtype-yacc.y: Make sure all rules end with a semicolon. - -2002-06-04 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_init_machine_status): Fix - typo in function prototype and include "ggc.h" header. - -2002-06-04 Richard Henderson - - * config/alpha/alpha.c (mode_mask_operand): Simplify without ifdefs. - (print_operand) ['U']: Likewise. - (alpha_expand_unaligned_store): Correct constants for 32-bit cross. - (alpha_expand_unaligned_store_words): Likewise. - (alpha_expand_builtin_vector_binop): Fix typo. - (enum alpha_builtin, code_for_builtin): Add remaining ext, ins, msk, - umulh, and cix insns. - (one_arg_builtins): Add cix builtins. - (two_arg_builtins): Add ext, ins, msk, umulh builtins. - (alpha_expand_builtin): Fix typo in arity. - * config/alpha/alpha.md (UNSPEC_CTLZ, UNSPEC_CTPOP): New. - (builtin_extbl, builtin_extwl, builtin_extll, builtin_extwh, - builtin_extlh, builtin_insbl, builtin_inswl, builtin_insll, - builtin_insql, builtin_inswh, builtin_inslh, builtin_insqh, - builtin_mskbl, builtin_mskwl, builtin_mskll, builtin_mskql, - builtin_mskwh, builtin_msklh, builtin_mskqh, builtin_cttz, - builtin_ctlz, builtin_ctpop): New. - * doc/extend.texi (Alpha Built-in Functions): Update. - -2002-06-04 Geoffrey Keating - - * gengtype.c (write_gc_root): Don't unnecessarily prevent - global variable-length arrays being roots. - - * config.gcc (powerpc-*-darwin*): Set config_gtfiles. - * configure.in (config_gtfiles): New variable. - (all_gtfiles): Initialize from config_gtfiles. - * configure: Regenerate. - -2002-06-04 Neil Booth - -config/i386: - * beos-elf.h, cygwin.h, djgpp.h, gas.h, gnu.h, i386-interix.h, - i386-interix3.h, i386elf.h, linux-aout.h, linux.h, linux64.h, - mingw32.h, netbsd-elf.h, netbsd.h, netbsd64.h, rtemself.h, - sco5.h, sol2.h, sysv3.h, sysv4.h, sysv5.h, uwin.h, vxi386.h, - win32.h (CPP_SPEC): Remove cpp_cpu. - * i386.h (TARGET_CPU_CPP_BUILTINS): Use. - (CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Die! - -2002-06-04 Janis Johnson - - * config/ia64/ia64.c (gen_thread_pointer): Fix variable name. - -2002-06-04 Jeff Law - Michael Matz - - * sched-int.h (struct deps): New field libcall_block_tail_insn. - * sched_deps.c (init_deps): Initialize libcall_block_tail_insn. - * sched_deps.c (sched_analyze_insn): If libcall_block_tail_insn - is set, then mark the current insn as being part of a libcall - scheduling group. - (sched_analyze): Set and clear libcall_block_tail_insn appropriately. - - * haifa-sched.c (schedule_block): Do not count USE or CLOBBER - insns against the issue rate. - -Tue Jun 4 19:29:42 CEST 2002 Jan Hubicka - - * cfglayout.c (duplicate_insn_chain): Kill NOTE_INSN_RANGE notes. - * final.c (final_scan_insn): Likewise. - * ggc-common.c (ggc_mark_rtx_children_1): Likewise; use - NOTE_EXPECTED_VALUE instead of NOTE_RANGE. - * haifa-sched.c (unlink_other_notes): Likeewise. - (reemit_notes): Likewise. - * print-rtl.c (print_rtx): Likewise. - * sched-deps (sched-analyze): Likewise. - * rtl.c (note_insn_name): Likewise. - * rtl.h (NOTE_RANGE_INFO, NOTE_LIVE_INFO): Kill. - (enum insn_note): Kill NOTE_INSN_RANGE_*, NOTE_INSN_LIVE. - (RANGE_*): Kill. - -2002-06-04 Jason Thorpe - - * varasm.c (mark_constants): Handle RTX format 'B'. - -2002-06-04 Neil Booth - - * cpphash.h (FIRST, LAST, CUR, RLIMIT): New. - (struct cpp_context): Add traditional fields. - * cppmacro.c (paste_all_tokens, push_ptoken_context, - push_token_context, cpp_get_token, _cpp_backup_tokens): Update. - * cpptrad.c (skip_comment, lex_identifier, - _cpp_read_logical_line_trad, scan_out_logical_line): Update. - -2002-06-04 Kazu Hirata - - * gbl-ctors.h: Fix formatting. - * gcc.c: Likewise. - * gccspec.c: Likewise. - * gcov.c: Likewise. - * gcov-io.h: Likewise. - * gcse.c: Likewise. - * ggc-common.c: Likewise. - * ggc.h: Likewise. - * ggc-page.c: Likewise. - * ggc-simple.c: Likewise. - * global.c: Likewise. - * graph.h: Likewise. - * gthr-dce.h: Likewise. - * gthr.h: Likewise. - * gthr-posix.h: Likewise. - * gthr-rtems.h: Likewise. - * gthr-solaris.h: Likewise. - * gthr-win32.h: Likewise. - -2002-06-03 Geoffrey Keating - - Merge from pch-branch: - - * gengtype.h (UNION_OR_STRUCT_P): New macro. - * gengtype.c (write_gc_structure_fields): Use it. - (write_gc_root): Use it here too. - - * gengtype.c (write_gc_structure_fields): Assume that lengths - of typenames fit into an 'int'; don't pass a size_t to "%d" in - printf. - (write_gc_marker_routine_for_structure): Likewise. - (write_gc_types): Likewise. - (write_gc_root): Likewise. - - * varray.h (VARRAY_CLEAR): New. - (varray_clear): Prototype. - * varray.c (varray_clear): New. - * cselib.c (reg_values_old): New. - (used_regs_old): New. - (cselib_init): Use cached varrays if available to avoid - generating large amounts of garbage. - (cselib_finish): Don't throw away old varrays. - - * final.c (insn_addresses_): Move out of ifdef. - - * varray.c (uses_ggc): Make more varray kinds GCable. - * varray.h (union varray_data_tag): Let gengtype see - fields 'generic' and 'te'. - * reg-stack.c: Include gt-reg-stack.h, ggc.h. - (stack_regs_mentioned_data): Move out of ifdef; mark with gengtype. - (reg_to_stack): Don't call VARRAY_FREE. - * insn-addr.h (INSN_ADDRESSES_FREE): Don't use VARRAY_FREE. - (insn_addresses_): Use gengtype to mark. - * gengtype.c (write_gc_structure_fields): Handle arrays of generic - pointers; handle generic pointers in unused union fields. - (get_output_file_with_visibility): Include cselib.h, - insn-addr.h in gtype-desc.c. - * function.c (prologue): Use gengtype to mark. - (epilogue): Likewise. - (sibcall_epilogue): Likewise. - * dependence.c: Include gt-dependence.h, ggc.h. - (struct def_use): Use gengtype to mark. - (struct loop): Likewise. - (struct induction): Likewise. - (struct dependence): Likewise. - (def_use_chain): Likewise. - (dep_chain): Likewise. - (loop_chain): Likewise. - (induction_chain): Likewise. - (init_dependence_analysis): Don't free anything, just clear pointers. - (build_def_use): Use GGC to allocate def_use. - (add_loop): Use GGC to allocate loop. - (find_induction_variable): Use GGC to allocate induction. - (check_node_dependence): Use GGC to allocate induction, dependence. - (dump_node_dependence): Don't free varrays. - (end_dependence_analysis): Likewise. - * cselib.h (struct cselib_val_struct): Use gengtype to mark. - (struct elt_loc_list): Likewise. - (struct elt_list): Likewise. - * cselib.c: Don't include obstack.h. - (hash_table): Use gengtype to mark. - (reg_values): Use gengtype to mark. - (used_regs): Use gengtype to mark. - (cselib_obstack): Delete. - (cselib_startobj): Delete. - (empty_vals): Mark as deletable. - (empty_elt_lists): Mark as deletable. - (empty_elt_loc_lists): Mark as deletable. - (new_elt_list): Use GGC to allocate struct elt_list. - (new_elt_loc_list): Use GGC to allocate struct elt_loc_list. - (clear_table): Don't delete obstack; don't unnecessarily clear - deletable variables. - (new_cselib_val): Use GGC to allocate struct cselib_val. - (cselib_init): Don't set up obstacks. Use GGC to allocate - hash table. - (cselib_finish): Just clear variables, don't free anything. - * Makefile.in (cselib.o): Remove dependency on $(OBSTACK_H). - (reg-stack.o): Add dependency on gt-reg-stack.h, $(GGC_H). - (dependence.o): Add dependency on gt-dependence.h, $(GGC_H). - (GTFILES): Add insn-addr.h, cselib.h, dependence.c, reg-stack.c. - (gt-reg-stack.h): New rule. - (gt-dependence.h): New rule. - (gtype-desc.o): Add cselib.h, insn-addr.h. - - * varray.c: Use only necessary headers. - (element_size): New. - (uses_ggc): New. - (varray_init): Take type, not size. Use GGC if appropriate. - (varray_grow): Update for change to struct varray_head_tag. - Use GGC if appropriate. - * varray.h (struct const_equiv_data): Use gengtype. - (enum varray_data_enum): New. - (union varray_data_tag): Use gengtype. - (struct varray_head_tag): Use gengtype. Replace size field with - enum varray_data_enum. - (varray_init): Update prototype. - (VARRAY_SCHED_INIT): Delete. - (VARRAY_*_INIT): Update for change to varray_init. - (VARRAY_SCHED): Delete. - (VARRAY_PUSH_SCHED): Delete. - (VARRAY_TOP_SCHED): Delete. - * tree.h: Update for change to length specifier. - * tree-inline.c (optimize_inline_calls): Don't use VARRAY_FREE. - (clone_body): Likewise. - * ssa.h (ssa_definition): Use gengtype to mark. - * ssa.c (convert_from_ssa): Don't use VARRAY_FREE. - * ssa-dce.c (ssa_eliminate_dead_code): Don't use VARRAY_FREE. - * rtl.h (struct rtvec_def): Update for change to length specifier. - * integrate.c (expand_inline_function): Don't use VARRAY_FREE. - (struct initial_value_struct): Update for change to length specifier. - * ggc.h (ggc_add_rtx_varray_root): Delete prototype. - (ggc_add_tree_varray_root): Delete prototype. - (ggc_mark_rtx_varray): Delete prototype. - (ggc_mark_tree_varray): Delete prototype. - * ggc-common.c (ggc_add_rtx_varray_root): Delete. - (ggc_add_tree_varray_root): Delete. - (ggc_mark_rtx_varray): Delete. - (ggc_mark_tree_varray): Delete. - (ggc_mark_rtx_varray_ptr): Delete. - (ggc_mark_tree_varray_ptr): Delete. - * gengtype.h (enum typekind): Remove TYPE_VARRAY. - (create_varray): Delete prototype. - * gengtype.c (varrays): Delete. - (create_varray): Delete. - (adjust_field_type): Detect array of string pointers. - (process_gc_options): Remove code to handle varray_type option. - (set_gc_used_type): Remove TYPE_VARRAY case. - (output_escaped_param): New. - (write_gc_structure_fields): Use output_escaped_param on all - parameters. Handle 'skip' with 'use_param' option. Handle - arrays of strings. Remove TYPE_VARRAY handling. - (write_gc_roots): Use boolean to detect 'length' option. - * gengtype-yacc.y (VARRAY_TYPE): Delete token. - (struct_fields): Call adjust_field_type on array fields. - (type): Remove VARRAY_TYPE case. - (type_option): Likewise. - * gengtype-lex.l: Don't consider varray_type a keyword. - * function.h: Update for change to length specifier. - (free_eh_status): Delete prototype. - * function.c (free_after_compilation): Don't call free_eh_status. - (reorder_blocks): Don't use VARRAY_FREE. - * except.c (struct eh_status): Update for change to length specifier. - remove varray_type specifier. - (free_eh_status): Delete. - * dwarf2out.c: Include gt-dwarf2out.h. - (used_rtx_varray): Use gengtype to mark, move - outside ifdefs. - (incomplete_types): Likewise. - (decl_scope_table): Likewise. - (dwarf2out_init): Don't call ggc_add_tree_varray_root. - * cfglayout.c (scope_to_insns_finalize): Don't use VARRAY_FREE. - * c-tree.h (struct lang_type): Update for change to length specifier. - * c-parse.in (yylexstring): Don't use VARRAY_FREE. - * c-objc-common.c: Include gt-c-objc-common.h. - (deferred_fns): Mark for gengtype. - (c_objc_common_init): Don't call ggc_add_tree_varray_root. - (expand_deferred_fns): Just set deferred_fns to 0 to free it. - * Makefile.in (c-objc-common.o): Add gt-c-objc-common.h. - (gtype-desc.o): Update dependencies. - (dwarf2out.o): Add gt-dwarf2out.h. - (varray.o): Update dependencies. - (GTFILES): Add varray.h, ssa.h, dwarf2out.c, c-objc-common.c. - (gt-c-objc-common.h): New rule. - (gt-dwarf2out.h): New rule. - * objc/objc-act.c (build_objc_string_object): Don't use VARRAY_FREE. - - * doc/gty.texi (GTY Options): Correct spelling. - (GGC Roots): Likewise. - * Makefile.in (TEXI_CPP_FILES): New. - (TEXI_GCC_FILES): New. - (TEXI_GCCINT_FILES): New. - (TEXI_CPPINT_FILES): New. - ($(docdir)/cpp.info): Use new macros. - ($(docdir)/gcc.info): Likewise. - ($(docdir)/gccint.info): Likewise. - ($(docdir)/cppinternals.info): Likewise. - (cpp.dvi): Likewise. - (gcc.dvi): Likewise. - (gccint.dvi): Likewise. - (cppinternals.dvi): Likewise. - - * Makefile.in ($(docdir)/gccint.info): Depend on gty.texi. - * doc/gccint.texi (Top): Include gty.texi. - * doc/gty.texi: New file. - - * bitmap.c: Include ggc.h, gt-bitmap.h. - (bitmap_ggc_free): New. - (bitmap_elem_to_freelist): New. - (bitmap_element_free): Use bitmap_elem_to_freelist. - (bitmap_element_allocate): Allow use of GGC. - (bitmap_clear): Use bitmap_elem_to_freelist. - (bitmap_copy): Update for change to bitmap_element_allocate. - (bitmap_set_bit): Likewise. - (bitmap_operation): Update for changes elsewhere. - (bitmap_initialize): Allow to create bitmaps that will use GGC. - * bitmap.h (struct bitmap_element_def): Use gengtype. - (struct bitmap_head_def): Likewise. Also add 'using_obstack' field. - (bitmap_initialize): Add extra parameter. - (BITMAP_OBSTACK_ALLOC): Update for change to bitmap_initialize. - (BITMAP_ALLOCA): Delete. - (BITMAP_XMALLOC): Update for change to bitmap_initialize. - (BITMAP_GGC_ALLOC): New. - * Makefile.in (gtype-desc.o): Add bitmap.h. - (bitmap.o): Add gt-bitmap.h, $(GGC_H). - (GTFILES): Add bitmap.c. - (gt-bitmap.h): New rule. - ($(HOST_PREFIX_1)bitmap.o): Add gt-bitmap.h. - * basic-block.h: Update for changes to bitmap_initialize. - * except.c (exception_handler_label_map): Move into... - (struct eh_status): Here. - (struct eh_region): Make 'aka' GCable. - (free_eh_status): Don't need to specially handle - exception_handler_label_map. - (add_ehl_entry): Update for changes to exception_handler_label_map. - (find_exception_handler_labels): Likewise. - (remove_exception_handler_label): Likewise. - (maybe_remove_eh_handler): Likewise. - (for_each_eh_label): Likewise. - (remove_eh_handler): Allocate 'aka' using GGC. - * gengtype.c (get_output_file_with_visibility): Add bitmap.h - to list of includes. - - * gengtype.c (write_gc_marker_routine_for_structure): Name - the routines 'gt_ggc_mx_*' instead of 'gt_ggc_m_*'. - (write_gc_types): Arrange for the tests with NULL to be inlined. - (write_gc_roots): Update uses of procedure pointers. - * ggc-common.c (gt_ggc_mx_rtx_def): Rename from gt_ggc_m_rtx_def. - - * Makefile.in (explow.o): Add dependency on gt-explow.h. - (sdbout.o): Add dependency on gt-sdbout.h. - - * emit-rtl.c (const_int_htab): Use gengtype to clear unused entries. - (mem_attrs_htab): Likewise. - (init_emit_once): Don't call ggc_add_deletable_htab. - * fold-const.c (size_htab): Use gengtype to clear unused entries. - (size_int_type_wide): Don't call ggc_add_deletable_htab. - * gengtype.c (finish_root_table): Add LASTNAME and TNAME - parameters, use them, change callers. - (write_gc_root): Add IF_MARKED parameter, use it, change callers. - (write_gc_roots): Handle 'if_marked' option. - (main): Don't need to call set_gc_used_type any more. - * ggc.h (ggc_htab_marked_p): Delete. - (ggc_htab_mark): Delete. - (struct ggc_cache_tab): New. - (gt_ggc_cache_rtab): New declaration. - * ggc-common.c (struct d_htab_root): Delete. - (d_htab_roots): Delete. - (ggc_add_deletable_htab): Delete. - (ggc_htab_delete): Handle new htab-deleting mechanism. - (ggc_mark_roots): Use new htab-deleting mechanism. - * tree.c (type_hash_table): Use gengtype to clear unused entries. - Make static. - (init_obstacks): Don't call ggc_add_deletable_htab. - - * objc/objc-act.h (struct hashed_attribute): Use gengtype. - (struct hashed_entry): Likewise. - (nst_method_hash_list): Likewise. - (cls_method_hash_list): Likewise. - (HASH_ALLOC_LIST_SIZE): Delete. - (ATTR_ALLOC_LIST_SIZE): Delete. - * objc/objc-act.c (hash_init): Use ggc to allocate - nst_method_hash_list, cls_method_hash_list. - (hash_enter): Use ggc to allocate; allocate one entry at a time. - (hash_add_attr): Likewise. - (ggc_mark_hash_table): Delete. - (objc_act_parse_init): Delete. - (objc_init): Delete reference to objc_act_parse_init. - * tlink.c: Replace hash.h with hashtab.h. Explicitly include - obstack.h. Replace references to 'struct hash_table' with htab_t. - (struct symbol_hash_entry): Replace hash header with key field. - (struct file_hash_entry): Replace hash header with key field. - (struct demangled_hash_entry): Replace hash header with key field. - (hash_string_eq): New. - (hash_string_hash): New. - (symbol_hash_newfunc): Delete. - (symbol_hash_lookup): Modify to use htab_t. - (file_hash_newfunc): Delete. - (file_hash_lookup): Modify to use htab_t. - (demangled_hash_newfunc): Delete. - (demangled_hash_lookup): Modify to use htab_t. - (tlink_init): Modify to use htab_t. - * hash.h: Delete. - * hash.c: Delete. - * ggc.h: Delete forward structure declarations. - Delete prototypes for deleted functions. - * ggc-common.c: Don't include hash.h. - (ggc_add_tree_hash_table_root): Delete. - (ggc_mark_tree_hash_table_entry): Delete. - (ggc_mark_tree_hash_table): Delete. - (ggc_mark_tree_hash_table_ptr): Delete. - * gengtype.c (write_gc_structure_fields): Allow param_is option. - (write_gc_marker_routine_for_structure): Use visibility of - the parameter if there is one. - * function.c: Replace hash.h with hashtab.h. Replace references - to 'struct hash_table *' with htab_t. - (struct insns_for_mem_entry): Include a plain key. - (fixup_var_refs_insns_with_hash): Update to use htab_t. - (insns_for_mem_newfunc): Delete. - (insns_for_mem_hash): Update to use htab_t. - (insns_for_mem_comp): Likewise. - (insns_for_mem_walk): Likewise. - * c-lang.c: Include ggc.h. - * Makefile.in (OBJS): Remove hash.o. - (c-lang.o): Add GGC_H. - (COLLECT2_OBJS): Remove hash.o. - (tlink.o): Remove hash.h, add HASHTAB_H and OBSTACK_H. - (ggc-common.o): Remove hash.h. - (function.o): Remove hash.h, add HASHTAB_H. - (genautomata.o): Remove hash.h, add HASHTAB_H. - - * varasm.c (mark_const_str_htab_1): Delete. - (mark_const_str_htab): Delete. - (const_str_htab_del): Delete. - (const_str_htab): Use gengtype to mark. - (init_varasm_once): Use gengtype to mark hashtables. Use GC to - allocate them. - * tree.c (mark_tree_hashtable_entry): Delete. - (mark_tree_hashtable): Delete. - * tree.h (mark_tree_hashtable): Delete prototype. - * ggc.h (ggc_test_and_set_mark): Treat (void *)1 like NULL. - (ggc_mark): Likewise. - (ggc_calloc): New. - (htab_create_ggc): New. - * ggc-common.c (ggc_calloc): New. - * gengtype.h (enum typekind): Add TYPE_PARAM_STRUCT. - (struct type): Add param_struct structure. - * gengtype.c (param_structs): New. - (adjust_field_type): Handle param_is option. - (set_gc_used_type): Handle TYPE_PARAM_STRUCT. - (get_output_file_with_visibility): Include hashtab.h in gtype-desc.c. - (write_gc_structure_fields): Add new PARAM parameter. Update - callers. Handle use_param option. Handle TYPE_PARAM_STRUCT. - (write_gc_marker_routine_for_structure): Add new PARAM parameter. - Use it to generate function name. Update callers. - (write_gc_types): Add new PARAM_STRUCTS parameter. Update callers. - Process them. - (write_gc_roots): Handle TYPE_PARAM_STRUCT. Allow param_is - option. - (main): Define PTR as pointer-to-scalar. Don't specially - mark deferred_string or ehl_map_entry. - * gengtype-yacc.y (PARAM_IS): Add new token. - (externstatic): Use adjust_field_type. - (type_option): Add PARAM_IS. - * gengtype-lex.l: Add rule for typedef of function pointers. - Add rule for PARAM_IS. - (IWORD): Add size_t. - * except.c (exception_handler_label_map): Use gengtype to mark. - (type_to_runtime_map): Likewise. - (mark_ehl_map_entry): Delete. - (mark_ehl_map): Delete. - (init_eh): Use gengtype for roots; use GC to allocate hash tables. - (t2r_mark_1): Delete. - (t2r_mark): Delete. - * Makefile.in (gtype-desc.o): Correct dependencies. - (GTFILES): Add hashtab.h. - (genautomata.o): Actually uses hashtab.h. - - * Makefile.in (stringpool.o): Add $(GGC_H). - (dwarf2asm.o): Likewise. - (GTFILES): Add hashtable.h. - * c-common.h (struct c_common_identifier): Use gengtype. - * c-decl.h (c_mark_tree): Delete. - * c-lang.c (LANG_HOOKS_MARK_TREE): Delete. - * c-tree.h (struct lang_identifier): Use gengtype. - (union lang_tree_node): New. - (c_mark_tree): Delete prototype. - * dwarf2out.c [!DWARF2_DEBUGGING_INFO]: Define dummy - dwarf2_debug_hooks. - * gengtype-lex.l (IWORD): Allow 'bool'. - (ptr_alias): Match. - * gengtype-yacc.y (ALIAS): New token. - (type_option): New rule. - (option): Use type_option. - * gengtype.c (process_gc_options): New. - (set_gc_used_type): Use it. - (write_gc_structure_fields): Add 'bitmap' parameter, change callers. - Add new variable 't' to hold the type of the field being processed. - Add more error checking. Use UNION_P when looking at 'desc' option. - Handle language-specific structures containing other - language-specific structures. - (write_gc_types): Handle 'ptr_alias' option. - (main): Don't need to specially output lang_type, lang_decl, lang_id2. - * ggc-common.c (ggc_pending_trees): Delete. - (ggc_mark_roots): Don't manipulate ggc_pending_trees. - (ggc_mark_trees): Delete. - (gt_ggc_m_tree_node): Delete. - * ggc.h (ggc_pending_trees): Delete. - (ggc_mark_tree): Make alias of gt_ggc_m_tree_node. - * hashtable.h (ht_identifier): Use gengtype. - * langhooks-def.h (LANG_HOOKS_MARK_TREE): Delete. - * langhooks.h (struct lang_hooks): Delete mark_tree. - * sdbout.c [! SDB_DEBUGGING_INFO]: Define dummy sdb_debug_hooks - anyway. - * system.h: Poison LANG_HOOKS_MARK_TREE. - * tree.c (tree_node_structure): New. - * tree.h (struct tree_common): Use gengtype. - (struct tree_int_cst): Likewise. - (struct tree_real_cst): Likewise. - (struct tree_string): Likewise. - (struct tree_complex): Likewise. - (struct tree_vector): Likewise. - (struct tree_identifier): Likewise. - (struct tree_list): Likewise. - (struct tree_vec): Likewise. - (struct tree_exp): Likewise. - (struct tree_block): Likewise. - (struct tree_type): Likewise. - (struct tree_decl): Likewise. - (enum tree_structure_enum): New. - (union tree_node): Use gengtype, with an alias. - (tree_node_structure): Prototype. - * objc/objc-lang.c (LANG_HOOKS_MARK_TREE): Delete. - - Merge to tag pch-merge-20020430. The LANG_HOOKS_FUNCTION_MARK - macro was deleted. The LANG_HOOKS_FUNCTION_FREE macro was renamed - to LANG_HOOKS_FUNCTION_FINAL. - * Makefile.in (GTFILES): Add bitmap.h. - * except.c (struct eh_region): Mark field 'aka' to be skipped. - - * config/alpha/alpha.c [TARGET_ABI_UNICOSMK] - (alpha_init_machine_status): Give proper type. - * Makefile.in (c-lang.o): Depend on gtype-c.h. - (optabs.o): Depend on gt-optabs.h. - (GTFILES): Add optabs.o. - (gt-optabs.h): Add rule. - * optabs.c: Include gt-optabs.h. - - * gengtype.c (set_gc_used_type): Correct some errors in last change. - (write_gc_structure_fields): If a field which should be NULL is - not, abort. - * c-pragma.c: Move struct align_stack and variable alignment_stack - out from the ifdef. - - * config/xtensa/t-xtensa: Add dependencies for gt-xtensa.h. - * config/xtensa/xtensa.c: Include gt-cris.h. - (struct machine_function): Use gengtype to mark. - * config/mmix/mmix.h (struct machine_function): Use gengtype - to mark. - * config/cris/t-cris: Add dependencies for gt-cris.h. - * config/cris/cris.c: Include gt-cris.h. - (struct machine_function): Use gengtype to mark. - * config/rs6000/rs6000.h (struct machine_function): Use gengtype - to mark. - * doc/tm.texi (Per-Function Data): Delete references to - mark_machine_status. - * config/ia64/ia64.c (ia64_override_options): Don't set - mark_machine_status. - * config/i386/i386.c (override_options): Likewise. - * config/d30v/d30v.c (d30v_init_expanders): Likewise. - * config/arm/arm.c (arm_init_expanders): Likewise. - * config/alpha/alpha.c (override_options): Likewise. - * gengtype.h (enum gc_used_enum): Add GC_MAYBE_POINTED_TO. - * gengtype.c (set_gc_used_type): Handle 'maybe_null' option. - (write_gc_structure_fields): Don't handle 'really' option. - Handle 'maybe_null' option. - (write_gc_types): Handle 'maybe_null' option. - * function.h (struct function): Don't use "really". - (mark_machine_status): Delete declaration. - (mark_lang_status): Delete declaration. - (gt_ggc_mr_machine_function): Delete prototype. - (gt_ggc_mr_language_function): Delete prototype. - * function.c (mark_machine_status): Delete. - (mark_lang_status): Delete. - (gt_ggc_mr_machine_function): Delete. - (gt_ggc_mr_language_function): Delete. - * c-tree.h (mark_c_function_context): Delete prototype. - * c-objc-common.c (c_objc_common_init): Don't set mark_lang_status. - * c-decl.c (struct language_function): Rename from struct - c_language_function. Update uses. Use gengtype to mark. - (mark_c_function_context): Delete. - * c-common.h (struct c_language_function): Rename from struct - language_function. - (mark_stmt_tree): Delete prototype. - (c_mark_lang_decl): Delete prototype. - (mark_c_language_function): Delete prototype. - * c-common.c (mark_stmt_tree): Delete. - (c_mark_lang_decl): Delete. - (mark_c_language_function): Delete. - - * gengtype.h (enum typekind): Add TYPE_LANG_STRUCT. - (lang_bitmap): New typedef. Use where appropriate. - (struct type): Add gc_used field, lang_struct field. - (UNION_P): New macro. - (new_structure): New prototype. - (find_structure): Remove 'pos' parameter. Change all callers. - * gengtype-lex.l: Update for changes to find_structure. - * gengtype-yacc.y (typedef_struct): Use new_structure. - (yacc_ids): Suppress warning. - (type): Use new_structure. - * gengtype.c (string_type): Update for changes to struct type. - (find_structure): Just find a structure, don't worry about - creating one. - (new_structure): New. - (note_yacc_type): Use new_structure. - (set_gc_used_type): New. - (set_gc_used): New. - (write_gc_structure_fields): Allow for pointers to TYPE_LANG_STRUCT. - (write_gc_types): Handle TYPE_LANG_STRUCT. - (write_gc_marker_routine_for_structure): New. - (main): Call set_gc_used. Add some calls to set_gc_used_type - for places where GCC doesn't use gengtype properly yet. - * ggc.h (gt_ggc_m_rtx_def): Don't prototype. - (gt_ggc_m_tree_node): Likewise. - - * varasm.c (copy_constant): Call expand_constant if we hit - something we can't recognize. - - * ggc-common.c (ggc_mark_rtvec_children): Delete. - (ggc_mark_rtx_children): Use generic name for ggc_mark_rtvec. - (lang_mark_false_label_stack): Delete. - * rtl.h (struct rtvec_def): Use gengtype to mark. - * ggc.h (ggc_mark_rtvec): Delete. - (gt_ggc_m_rtvec_def): Delete. - (ggc_mark_nonnull_tree): Delete. - (ggc_mark_rtvec_children): Delete prototype. - (lang_mark_false_label_stack): Delete declaration. - - * gengtype.h (note_yacc_type): Add prototype. - * gengtype.c (note_yacc_type): New function. - * gengtype-lex.l: Add lexer support for yacc files. - * gengtype-yacc.y (start): Extract union from yacc files. - (yacc_union): New rule. - (yacc_typematch): New rule. - (yacc_ids): New rule. - (enum_items): Tweak for efficiency. - (optionseq): Likewise. - - * c-common.h (struct language_function): Use gengtype. - (struct c_lang_decl): Likewise. - * c-tree.h (struct lang_decl): Likewise. - (struct lang_type): Likewise. - * c-decl.c (lang_mark_tree): Use generated marker routines to mark - tree language substructures. - - * stringpool.c (mark_ident): Replace ggc_mark_nonnull_tree with - ggc_mark_tree. - * dwarf2asm.c (mark_indirect_pool_entry): Likewise. - - * varasm.c (struct rtx_const): Remove 'skip' tags for scalar arrays. - - * stmt.c (struct nesting): Add discriminator. Use gengtype to - mark. Remove 'data.block.cleanup_ptr' field. - (struct stmt_status): Use usual technique to mark struct nesting. - (gt_ggc_mr_nesting_cond): Delete. - (gt_ggc_mr_nesting_loop): Delete. - (gt_ggc_mr_nesting_block): Delete. - (gt_ggc_mr_nesting_case_stmt): Delete. - (expand_start_cond): Set discriminator. - (expand_start_loop): Likewise. - (expand_start_null_loop): Likewise. - (expand_start_bindings_and_block): Set discriminator. Don't set - deleted fields. - (expand_decl_cleanup): Replace 'cleanup_ptr' with - &thisblock->data.block.cleanups. - (expand_start_case): Set discriminator. - (expand_start_case_dummy): Set discriminator. - - * ggc-callbacks.c: Remove. - - * gengtype.h (struct type): Add 'u.s.bitmap' field. - (find_structure): Add 'pos' parameter. - * gengtype-lex.l: Update callers to find_structure. - * gengtype-yacc.y: Likewise. - * gengtype.c (find_structure): Allow for structures to be defined - in multiple language backends. - (get_output_file_with_visibility): Include debug.h in gtype-desc.c. - (counter): Rename to gc_counter. - (write_gc_structure_fields): Fail when writing out fields for - an incomplete structure. Ignore arrays of scalars. Handle - 'tree_vec' special. - (write_gc_types): Reset counter for each procedure written. - - * stmt.c (add_case_node): Use GGC to allocate struct case_node. - (free_case_nodes): Delete. - (expand_end_case_type): Delete call to free_case_nodes. - - * Makefile.in (cselib.o): Include gt-.h. - (gcse.o): Likewise. - (profile.o): Likewise. - (alias.o): Likewise. - (GTFILES): Add alias.c, cselib.c, gcse.c, profile.c, and - alphabetize backend files. - (gt-alias.h, gt-cselib.h, gt-gcse.h, gt-profile.h): New rules. - * alias.c: Use gengtype for roots. - * c-common.h (struct stmt_tree_s): Use gengtype. - * c-decl.c: Use gengtype for roots. - * cselib.c: Use gengtype for roots. - * expr.c: Use gengtype for roots. - * fold-const.c: Use gengtype for roots. - * gcse.c: Use gengtype for roots. - * gengtype-lex.l: Handle typedefs of function types. - Allow for empty array bounds. - Allow processing to stop on initializers. - * gengtype-yacc.y (externstatic): Stop processing on initializers. - (semiequal): New rule. - * gengtype.c (create_file): Tidy output files. - (get_output_file_with_visibility): Fix paren warning. Fix bug - involving multiple input files mapping to one output file. - (write_gc_structure_fields): Skip arrays of scalars. - (write_gc_types): Tidy output files. - (write_gc_root): New function. - (write_gc_roots): Fix bugs, add support for roots that are - structures. - * ggc-common.c (ggc_mark_rtx_ptr): Delete. - (ggc_mark_tree_ptr): Delete. - (ggc_add_rtx_root): Delete. - (ggc_add_tree_root): Delete. - (ggc_del_root): Delete. - * integrate.c (get_func_hard_reg_initial_val): Use ggc_alloc to - allocate struct initial_value_struct. - * profile.c: Use gengtype for roots. - * sdbout.c: Use gengtype for roots. - * varasm.c (mark_weak_decls): Delete unused prototype. - (mark_const_hash_entry): Delete unused function. - * config/darwin-protos.h: Use gengtype for roots. - (machopic_add_gc_roots): Delete. - * config/arm/arm.c: Use gengtype for roots. - * config/arm/arm.h: Use gengtype for roots. - * config/c4x/c4x-protos.h: Use gengtype for roots. - * config/c4x/c4x.c (c4x_add_gc_roots): Delete. - * config/d30v/d30v-protos.h: Use gengtype for roots. - * config/d30v/d30v.c (d30v_add_gc_roots): Delete. - * config/dsp16xx/dsp16xx.c (override_options): Use gengtype for roots. - * config/dsp16xx/dsp16xx.h: Use gengtype for roots. - * config/ia64/ia64-protos.h: Use gengtype for roots. - * config/ia64/ia64.c (ia64_add_gc_roots): Delete. - * config/m68hc11/m68hc11-protos.h: Use gengtype for roots. - * config/m68hc11/m68hc11.c (z_reg): Make global. - (z_reg_qi): Make global. - (m68hc11_add_gc_roots): Delete. - * config/mcore/mcore-protos.h: Use gengtype for roots. - * config/mcore/mcore.c (mcore_add_gc_roots): Delete. - * config/mips/mips.c (mips_add_gc_roots): Delete. - * config/mips/mips.h: Use gengtype for roots. - * config/mmix/mmix.c (override_options): Use gengtype for roots. - * config/mmix/mmix.h: Use gengtype for roots. - * config/mn10200/mn10200.c (asm_file_start): Use gengtype for roots. - * config/mn10200/mn10200.h: Use gengtype for roots. - * config/pa/pa.c: Use gengtype for roots, marking. - (struct deferred_plabel): Use GGC, gengtype. - (pa_add_gc_roots): Delete. - (mark_deferred_plabels): Delete. - * config/pj/pj-protos.h: Use gengtype for roots. - * config/pj/pj.h (OVERRIDE_OPTIONS): Don't define. - * config/rs6000/rs6000.c: Use gengtype for roots. Don't call - machopic_add_gc_roots. - * config/rs6000/rs6000.h: Use gengtype for roots. - * config/rs6000/t-darwin (darwin.o): Add dependency on gt-darwin.h. - (gt-darwin.h): Add rule. - * config/sh/sh.c: Use gengtype for roots. - * config/sh/t-sh ($(out_object_file)): Add dependency on gt-sh.h. - (gt-sh.h): Add rule. - * config/sparc/sparc.c: Use gengtype for roots. - (sparc_add_gc_roots): Delete. - (struct ultrasparc_pipeline_state): Use GGC, gengtype. - (mark_ultrasparc_pipeline_state): Delete. - * config/sparc/sparc.h: Use gengtype for roots. - - * Makefile.in (c-parse.o): Update dependencies. - (c-common.o): Likewise. - (GTFILES): Add c-common.h, c-tree.h, c-common.c, c-parse.in. - Add dependencies for the files they generate. - * c-common.c: Replace ggc_add_* uses with GTY annotations. - * c-common.h: Likewise. - * c-decl.c: Likewise. - (gt_ggc_mp_binding_level): Delete. - * c-lang.c: Include gtype-c.h. - * c-parse.in: Replace ggc_add_* uses with GTY annotations. Include - gt-c-parse.h. - * c-pragma.h: Replace ggc_add_* uses with GTY annotations. - (gt_ggc_mp_align_stack): Delete. - * c-tree.h: Replace ggc_add_* uses with GTY annotations. - * function.c: Replace ggc_add_* uses with GTY annotations. - (gt_ggc_mp_function): Delete. - * function.h: Replace ggc_add_* uses with GTY annotations. - * gengtype.c (lang_names): New. - (NUM_BASE_FILES): New. - (open_base_files): Create language base files. - (startswith): New. - (get_file_basename): New. - (get_base_file_bitmap): New. - (get_output_file_with_visibility): Rename from get_output_file. - Add more mappings for various C/Objc filenames. - (finish_root_table): New. - (write_gc_roots): Handle dependencies and scoping properly. - * gengtype.h: Add prototypes for new functions. - * ggc-common.c (struct deletable_root): Delete. - (deletables): Delete. - (ggc_add_deletable_root): Delete. - (ggc_mark_roots): No need to deal with deleted functionality. - * ggc.h (ggc_add_deletable_root): Delete prototype. - * objc/Make-lang.in (objc-act.o): Add gtype-objc.h dependency. - (gtype-objc.h): Add rule to create. - * objc/config-lang.in (gtfiles): New. - * objc/objc-act.c: Allocate imp_list using GGC. Replace uses of - ggc_add_* with GTY markers. Include gtype-objc.h. - (ggc_mark_imp_list): Delete. - * objc/objc-act.h: Replace uses of ggc_add_* with GTY markers. - * objc/objc-lang.c: Random Whitespace Change. - - * except.h (exception_handler_labels): Delete. - (get_exception_handler_labels): New. - * except.c (exception_handler_labels): Delete. - (struct eh_status): Add exception_handler_labels field. - (doing_eh): Don't add exception_handler_labels as root. - (free_eh_status): Don't need to free exception_handler_labels. - (get_exception_handler_labels): New. - (find_exception_handler_labels): Update for move of - exception_handler_labels. - (remove_exception_handler_label): Likewise. - * cfgrtl.c (can_delete_label_p): Use get_exception_handler_labels. - * jump.c (rebuild_jump_labels): Likewise. - * loop.c (find_and_verify_loops): Likewise. - * sched-rgn.c (is_cfg_nonregular): Likewise. - - * gengtype.c (write_gc_structure_fields): Handle variable-length - TYPE_ARRAYs. - - * varasm.c (struct weak_syms): Use GGC, gengtype. - (mark_weak_decls): Delete. - (weak_decls): Likewise. - (add_weak): Likewise. - (remove_from_pending_weak_list): Likewise. - (init_varasm_once): Likewise. - - * Makefile.in (gtype-desc.o): Add libfuncs.h dependency. - (GTFILES): Add tree.h, libfuncs.h, emit-rtl.c, explow.c, - stor-layout.c, regclass.c, and lists.c. - Add dependencies of gt-emit-rtl.h gt-explow.h gt-stor-layout.h - gt-regclass.h and gt-lists.h on s-gtype. - * emit-rtl.c: Use gengtype for roots. Include gt-emit-rtl.h. - * except.c: Use gengtype for roots. - * explow.c: Use gengtype for roots. Include gt-explow.h. - * expr.h (init_stor_layout_once): Delete prototype. - * function.c: Use gengtype for roots. - * gengtype-lex.l: Add ENT_EXTERNSTATIC lexing. - * gengtype-yacc.y (start): Can also be an externstatic. - (externstatic): New production. - (struct_fields): Correct array bounds inversion for 2-d arrays. - * gengtype.c (variables): New variable. - (note_variable): New function. - (get_output_file): Include libfuncs.h into gtype-desc.c. - (get_output_file_name): New function. - (write_gc_structure_fields): Suppress warnings. - (write_gc_types): Make static. - (put_mangled_filename): New function. - (write_gc_roots): New function. - (main): Call write_gc_roots. - * gengtype.h (note_variable): Prototype. - (get_output_file_name): Prototype. - (write_gc_types): Delete prototype. - * ggc.h: Clean up unnecessary structure predefinitions. - (struct ggc_root_tab): Define. - (gt_ggc_m_rtx_def): Make function, not macro. - (gt_ggc_m_tree_node): Likewise. - * libfuncs.h: Use gengtype for roots. - * lists.c: Use gengtype for roots. Include gt-lists.h. - (init_EXPR_INSN_LIST_cache): Delete. - * optabs.c: Use gengtype for roots. - (gt_ggc_mp_optab): Delete. - * optabs.h: Use gengtype for roots. - * regclass.c: Use gengtype for roots. Include gt-regclass.h. - * rtl.h: Use gengtype for roots. - (init_EXPR_INSN_LIST_cache): Delete prototype. - * stor-layout.c: Use gengtype for roots. - Include gt-stor-layout.h. - (init_stor_layout_once): Delete. - * toplev.c: Use gengtype for roots. Delete calls to deleted - routines. - * tree.c: Use gengtype for roots. - * tree.h: Use gengtype for roots. - * varasm.c: Use gengtype for roots. - - * Makefile.in (GTFILES): Add @all_gtfiles@. - * configure: Regenerate. - * configure.in: Construct all_gtfiles from the gtfiles definitions - in config-lang.in. - * gengtype-yacc.y (type): Warn about duplicate structure names. - * gengtype.c (get_output_file): Handle .c files in language - subdirectories. - - * Makefile.in (GTFILES): Run gengtype on all the config files - and on the target .c file. - * except.c (mark_eh_region): Delete. - (init_eh_for_function): Use GGC on struct eh_status. - (mark_eh_status): Delete. - (free_eh_status): Use GGC. - (expand_eh_region_start): Use GGC to - (collect_eh_region_array): Allocate last_region_number using GGC. - (duplicate_eh_region_1): Use GGC to allocate struct eh_region. - (remove_eh_handler): Let GGC free struct eh_region. - (add_call_site): Use GGC to reallocate call_site_record array. - * function.c (init_machine_status): Update calling sequence. - (mark_machine_status): Likewise. - (mark_lang_status): Likewise. - (prepare_function_start): Update init_machine_status call. - (mark_function_status): Delete. - (maybe_mark_struct_function): Delete. - (ggc_mark_struct_function): Delete. - (gt_ggc_mp_function): New. - (gt_ggc_mr_machine_function): New. - (gt_ggc_mr_language_function): New. - (init_function_once): Use canonical names. - * function.h (struct function): Use gengtype. - (init_machine_status): Return the structure. - (mark_machine_status): Take a 'void *'. - (mark_lang_status): Likewise. - * ggc-common.c (ggc_mark_trees): Use canonical name for - ggc_mark_struct_function. - * tree.h (ggc_mark_struct_function): Delete prototype. - * config/alpha/alpha.c (alpha_mark_machine_status): Delete. - (alpha_init_machine_status): Likewise. - (override_options): Use canonical name for alpha_mark_machine_status. - * config/alpha/unicosmk.h (struct machine_function): Use gengtype. - * config/arm/arm.h (struct machine_function): Use gengtype. - * config/arm/arm.c (arm_mark_machine_status): Delete. - (arm_init_machine_status): Update calling sequence. - (arm_init_expanders): Use canonical name for arm_mark_machine_status. - * config/cris/cris.c (cris_init_machine_status): Update - calling sequence. - * config/d30v/d30v.h (struct machine_function): Use gengtype. - * config/d30v/d30v.c (d30v_init_machine_status): Update - calling sequence. - (d30v_mark_machine_status): Delete. - * config/i386/i386.c: Include gt-i386.h. - (struct machine_function): Use gengtype. - (ix86_init_machine_status): Update calling sequence. - (ix86_mark_machine_status): Delete. - (override_options): Use canonical namke for ix86_mark_machine_status. - * config/ia64/ia64.h (struct machine_function): Use gengtype. - * config/ia64/ia64.c (ia64_init_machine_status): Update calling - sequence. - (ia64_mark_machine_status): Delete. - (ia64_override_options): Use canonical name for - ia64_mark_machine_status. - * config/mmix/mmix.c (mmix_init_machine_status): Update calling - sequence. - * config/rs6000/rs6000.c (rs6000_init_machine_status): Likewise. - * config/xtensa/xtensa.c (xtensa_init_machine_status): Likewise. - * gengtype.c (get_output_file): Fix warning. - (main): Add prototype to suppress warning. - * tree.c: Remove tree_hash_mark prototype. - - * tree.h (init_stmt): Delete prototype. - * toplev.c (lang_independent_init): Don't call init_stmt. - * stmt.c (ALLOC_NESTING): Use GGC for 'struct nesting'. - (stmt_obstack): Delete. - (POPSTACK): No need to free 'struct nesting'. - (gt_ggc_mr_nesting_cond): Use canonical names. - (gt_ggc_mr_nesting_loop): Use canonical names. - (gt_ggc_mr_nesting_block): Use canonical names. - (gt_ggc_mr_nesting_case_stmt): Use canonical names. - (mark_stmt_status): Delete. - (init_stmt): Delete. - (clear_last_expr): Clear both last_expr_type and last_expr_value. - Use it everywhere that last_expr_type was cleared. - * lists.c (init_EXPR_INSN_LIST_cache): Use ggc_add_deletable_root. - (zap_lists): Delete. - * ggc.h (ggc_add_deletable_root): Prototype. - (mark_stmt_status): Remove prototype. - * ggc-common.c (ggc_add_deletable_root): New. - (ggc_mark_roots): Handle deletable roots. - * function.c (ggc_mark_struct_function): Use canonical name - for mark_stmt_status. - * emit-rtl.c (free_sequence_stack): New. - (start_sequence): Use a freelist for sequences. - (end_sequence): Likewise. - (init_emit_once): Add free_sequence_stack as a deleteable root. - * c-pragma.c Include gt-c-pragma.h. - (struct align_stack): Use gengtype. - (push_alignment): Use GGC for struct align_stack. - (mark_align_stack): Delete. - (gt_ggc_mp_align_stack): New. - (init_pragma): Use canonical name for mark_align_stack. - * c-decl.c: Include gt-c-decl.h. - (struct binding_level): Use gengtype. - (make_binding_level): Use GGC; handle the freelist here. - (pop_binding_level): New. - (pushlevel): Move code into make_binding_level. - (push_label_level): Likewise. - (poplevel): Move code into pop_binding_level. - (pop_label_level): Likewise. - (mark_binding_level): Delete. - (gt_ggc_mp_binding_level): New. - (c_init_decl_processing): Use canonical name for mark_binding_level. - Add free_binding_level as deletable root. - (mark_c_function_context): Use canonical name for mark_binding_level. - * Makefile.in (c-decl.o): Add gt-c-decl.h. - (c-pragma.o): Add gt-c-pragma.h. - (GTFILES): Add c-decl.c and c-pragma.c. - (gt-c-decl.h, gt-c-pragma.h): Create using gengtype. - - * tree.c (struct type_hash): Use gengtype. - (init_obstacks): Use canonical name for type_hash_mark. - (type_hash_mark): Delete. - Include gt-tree.h. - * rtl.h (struct mem_attrs): Use gengtype. - * optabs.h (struct optab): Use gengtype. - * optabs.c (expand_binop): Squish signed/unsigned warning. - (mark_optab): Make local, use canonical name, use autogenerated - marker procedure. - (init_optabs): Use canonical name for mark_optab. - (new_optab): Use GGC to allocate optabs. - * ggc.h: Delete mark_optab prototype. - * ggc-common.c (ggc_mark_rtx_children): Use canonical name for - mem_attrs marker procedure. - * gengtype.c (get_output_file): Include headers in gtype-desc.c - explicitly rather than deducing them from file names. - (write_gc_structure_fields): Handle arrays of structures. - (main): Return nonzero exit code if errors occur during output. - * emit-rtl.c (mem_attrs_mark): Delete. - (init_emit_once): Use canonical name for mem_attrs marker procedure. - * Makefile.in (gtype-desc.o): Explicitly name dependencies. - (tree.o): Depend on gt-tree.h. - (GTFILES): Add rtl.h, optabs.h, tree.c. - (gt-tree.h): Add it to s-gtype rule. - - * .cvsignore: Ignore gengtype flex/bison generated files. - * Makefile.in (GGC_H): Add gtype-desc.h. - (OBJS): Add gtype-desc.o. - (GEN): Add gengtype. - (STAGESTUFF): Add gengtype. - (varasm.o): Add gt-varasm.h. - (stmt.o): Add gt-stmt.h. - (except.o): Add gt-except.h. - (integrate.o): Add gt-integrate.h. - (GTFILES): New. - Add new rules for new files. - * configure: Regenerate. - * configure.in: Correct defaults.h paths. - * emit-rtl.c (mark_sequence_stack): Delete. - (mark_emit_status): Delete. - (start_sequence): Allocate sequence structures using GGC. - (end_sequence): Allocate sequence structures using GGC. - * except.c: Use gengtype for various structures. Include - gt-except.h. - * expr.c (mark_expr_status): Delete. - * function.c: Use gengtype for various structures. Include - gt-function.h. - (mark_function_status): Use standard gt_ggc names for marker functions. - (ggc_mark_struct_function): Likewise. - * function.h: Use gengtype for various structures. - * gengtype-lex.l: New file. - * gengtype-yacc.y: New file. - * gengtype.c: New file. - * gengtype.h: New file. - * ggc.h: Include gtype-desc.h. Alias some marker procedures to - the standard names. Remove some now-unnecessary prototypes. - * integrate.c: Use gengtype for various structures. Include - gt-integrate.h. - (mark_hard_reg_initial_vals): Delete. - * integrate.h (mark_hard_reg_initial_vals): Delete. - * stmt.c: Use gengtype for various structures. Include - gt-stmt.h. - (mark_case_node): Delete. - (mark_goto_fixup): Delete. - (mark_stmt_status): Use standard gt_ggc names for marker functions. - * system.h: Define GTY to empty. In flex/bison files, - don't poison malloc or realloc, instead just define them to - xmalloc and xrealloc. - * varasm.c: Use gengtype for various structures. Include - gt-varasm.h. Use standard gt_ggc names for marker functions. - (mark_pool_constant): Delete. - (mark_varasm_status): Delete. - (decode_rtx_const): #if 0 out non-typesafe hack. - - * function.h (free_lang_status): Mark as obsolete. - * function.c (free_lang_status): Mark as obsolete. - * c-decl.c (push_c_function_context): Use GC to allocate and free - struct language_function. - (pop_c_function_context): Likewise. - * c-common.c (mark_c_language_function): Mark struct - language_function. - - * doc/tm.texi (Per-Function Data): Don't document free_machine_status. - Document that the machine_function structures must be allocated - using GC. Update mark_machine_status documentation. - * function.h: Don't declare free_machine_status. - * function.c (free_machine_status): Don't define. - (free_after_compilation): Don't call free_machine_status. - (ggc_mark_struct_function): Mark f->machine. Call - mark_machine_status only on non-NULL pointers. - * system.h: Poison free_machine_status. - * config/xtensa/xtensa.c (xtensa_init_machine_status): Use GC on - struct machine_function. - (xtensa_free_machine_status): Delete. - (override_options): Don't set free_machine_status. - * config/rs6000/rs6000.c (rs6000_override_options): Don't set - free_machine_status. - (rs6000_init_machine_status): Use GC on struct machine_function. - (rs6000_free_machine_status): Delete. - * config/ia64/ia64.c (ia64_init_machine_status): Use GC on struct - machine_function. - (ia64_mark_machine_status): Likewise. - (ia64_free_machine_status): Delete. - (ia64_override_options): Don't set free_machine_status. - * config/i386/i386.c (override_options): Don't set - free_machine_status. - (ix86_init_machine_status): Use GC on struct machine_function. - (ix86_mark_machine_status): Likewise. - (ix86_free_machine_status): Delete. - * config/d30v/d30v.c: (d30v_init_machine_status): Use GC on struct - machine_function. - (d30v_mark_machine_status): Likewise. - (d30v_free_machine_status): Delete. - (d30v_init_expanders): Don't set free_machine_status. - * config/arm/arm.c (arm_mark_machine_status): Use GC on struct - machine_function. - (arm_init_machine_status): Likewise. - (arm_free_machine_status): Delete. - (arm_init_expanders): Don't set free_machine_status. - * config/alpha/alpha.c (override_options): Don't set - free_machine_status. - (alpha_init_machine_status): Use GC on struct machine_function. - (alpha_mark_machine_status): Likewise. - (alpha_free_machine_status): Delete. - - * varasm.c (compare_constant): Fix typo. - - * varasm.c: Don't include obstack.h. - (struct varasm_status): x_const_rtx_hash_table is a hash of rtxes. - (struct rtx_const): Give substructures names, improve formatting. - (struct constant_descriptor): Delete. - (struct constant_descriptor_tree): New, based on constant_descriptor. - (const_hash_table): Is a hash table of trees. - (mark_const_hash_entry): Is used for hashes of trees. Mark - constant_descriptor_tree structure. - (mark_const_str_htab_1): Mark deferred_string structure. - (compare_constant): Rewrite to compare trees. - (compare_constant_1): Delete. - (record_constant): Delete. - (record_constant_1): Delete. - (output_constant_def): Use struct constant_descriptor_tree. - Don't duplicate trees twice. - (struct constant_descriptor_rtx): New. - (struct pool_constant): Used for rtx constants. - (init_varasm_status): Update for change to struct varasm_status. - (mark_varasm_status): Likewise. - (free_varasm_status): Delete. - (compare_constant_rtx): Rewrite to handle constant_descriptor_rtx. - (record_constant_rtx): Likewise. - (mem_for_const_double): Update to use struct constant_descriptor_rtx. - (force_const_mem): Likewise. - * Makefile.in (varasm.o): Doesn't depend on obstack.h. - * function.c (free_after_compilation): Don't use free_varasm_status. - * function.h: Don't prototype free_varasm_status. - - * ggc-common.c (ggc_realloc): Handle X being NULL. - - * ggc-common.c (ggc_realloc): New function. - * ggc.h: Prototype it. - * emit-rtl.c (free_emit_status): Delete. - (init_emit): Allocate emit subarrays using GC. - (gen_reg_rtx): Reallocate subarrays using GC. - (init_emit): Use GC to allocate 'struct emit_status' and its - subarrays. - (mark_emit_status): Mark structure and its subarrays. - * stmt.c (free_stmt_status): Delete. - * expr.c (free_expr_status): Delete. - * function.h: Remove prototypes for deleted functions. - * function.c (free_after_compilation): Don't use deleted functions. - Don't call free() on x_parm_reg_stack_loc. - (free_after_parsing): Don't use free_stmt_status. - (assign_parms): Use GC to allocate and resize x_parm_reg_stack_loc. - (mark_function_status): Mark x_parm_reg_stack_loc. - - * varasm.c (init_varasm_status): Use GC to allocate - 'struct varasm_status' and its fields x_const_rtx_hash_table - and x_const_rtx_sym_hash_table. - (mark_varasm_status): Mark them. - (free_varasm_status): Use GC to free them. - * expr.c (init_expr): Use GC to allocate 'struct expr_status'. - (mark_expr_status): Mark the structure itself. - (free_expr_status): Use GC to free the structure. - * stmt.c (free_stmt_status): Use GC to free 'struct stmt_status'. - (mark_stmt_status): Mark the 'struct stmt_status' itself. - (init_stmt_for_function): Allocate the structure for GC. - - * dwarf2out.c (lookup_type_die): Use TYPE_SYMTAB_DIE. - (equate_type_number_to_die): Likewise. - * tree.h (TYPE_SYMTAB_DIE): New macro. - (struct die_struct): Predeclare. - (struct tree_type): Add field symtab.die. Add a tag - to the union type of field symtab. - - * varray.h (VARRAY_RTVEC_INIT): A varray of rtvec contains - 'struct rtvec_def *', not 'struct rtvec_def'. - - * function.h (original_arg_vector): Make a real rtvec. - * function.c (ggc_mark_struct_function): Adjust. - * integrate.c (expand_inline_function): Adjust. - -2002-06-04 Jason Thorpe - - * config.gcc (sh5-*-netbsd*, sh5l*-*-netbsd*) - (sh64-*-netbsd*, sh64l*-*-netbsd*): New targets. - * config/sh/netbsd-elf.h (TARGET_VERSION_ENDIAN) - (TARGET_VERSION_CPU): Define according to the - default target. - (TARGET_VERSION): Use TARGET_VERSION_ENDIAN and - TARGET_VERSION_CPU. - (TARGET_OS_CPP_BUILTINS): Use NETBSD_OS_CPP_BUILTINS_LP64 - if TARGET_SHMEDIA64. - (LINK_DEFAULT_CPU_EMUL): Define according to the - default target. - (SUBTARGET_LINK_EMUL_SUFFIX): Define. - (SUBTARGET_LINK_SPEC): Define. - (LINK_SPEC): Use SH_LINK_SPEC. - (ASM_SPEC): Remove. - (TARGET_DEFAULT): Use TARGET_CPU_DEFAULT. - (FUNCTION_PROFILER): Add cases for TARGET_SHMEDIA32 - and TARGET_SHMEDIA64 which abort, for now. - * config/sh/t-netbsd-sh5: New file. - * config/sh/t-netbsd-sh5-32: New file. - * config/sh/t-netbsd-sh5-64: New file. - -2002-06-03 Falk Hueffner - Richard Henderson - - * config/alpha/alpha.c (reg_or_const_int_operand): New. - (some_operand, input_operand): Accept CONST_VECTOR. - (alpha_extra_constraint): Add 'W'. - (alpha_expand_zap_mask): New. - (alpha_expand_builtin_vector_binop): New. - (enum alpha_builtin): New. - (zero_arg_builtins, one_arg_builtins, two_arg_builtins): New. - (alpha_init_builtins, alpha_expand_builtin): New. - (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): New. - * config/alpha/alpha.h (VECTOR_MODE_SUPPORTED_P): New. - (PREDICATE_CODES): Update. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md (UNSPEC_CMPBGE, UNSPEC_ZAP, - UNSPEC_AMASK, UNSPEC_IMPLVER, UNSPEC_PERR, UNSPECV_RPCC): New. - (movv8qi, movv8qi_fix, movv8qi_nofix): New. - (movv4hi, movv4hi_fix, movv4hi_nofix): New. - (movv2si, movv2si_fix, movv2si_nofix): New. - (uminv8qi3, sminv8qi3, uminv4hi3, sminv4hi3): New. - (umaxv8qi3, smaxv8qi3, umaxv4hi3, smaxv4hi3): New. - (builtin_cmpbge, builtin_extql, builtin_extqh, builtin_zap, - builtin_zap_1, builtin_zapnot, builtin_zapnot_1, builtin_amask, - builtin_implver, builtin_rpcc, builtin_minub8, builtin_minsb8, - builtin_minuw4, builtin_minsw4, builtin_maxub8, builtin_maxsb8, - builtin_maxuw4, builtin_maxsw4, builtin_perr, builtin_pklb, - pklb, builtin_pkwb, pkwb, builtin_unpkbl, unpkbl, - builtin_unpkbw, unpkbw): New. - * doc/extend.texi (Alpha Built-in Functions): New. - -2002-06-03 Richard Henderson - - * crtstuff.c (__EH_FRAME_BEGIN__): Conditionalize on - USE_EH_FRAME_REGISTRY, not EH_FRAME_SECTION_NAME. - -2002-06-03 Richard Henderson - - * config/alpha/alpha-protos.h: Eliminate unneeded ifdefs. - - * config/alpha/alpha.c (reg_or_0_operand): Use CONST0_RTX. - (const0_operand): New. - (reg_or_fp0_operand, fp0_operand): Remove. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md: Replace all uses of reg_or_fp0_operand - and fp0_operand with reg_or_0_operand and const0_operand. - -2002-06-03 Dan Nicolaescu - - * alias.c (nonoverlapping_memrefs_p): Fix off by one error. - -2002-06-03 Roger Sayle - - * gcse.c (cprop_jump): Use single_set to get the pattern - from the setcc argument. - -2002-06-03 Gabriel Dos Reis - - * diagnostic.h (diagnostic_count): Move from output_buffer to - diagnostic_context. - (diagnostic_kind_count): Adjust definition. - -Mon Jun 3 19:11:53 CEST 2002 Jan Hubicka - - * except.c (except.c): Do not rebuild CFG. - * toplev.c (rest_of_compilation): Recompute CFG after sibcall - optimization. - -Mon Jun 3 11:53:01 CEST 2002 Jan Hubicka - - * integrate.c (copy_insn_list): Properly pace the INSN_SCOPE copies. - * toplev.c: Include cfglahout.h - * Makefile.in (toplev.c): Add dependnecy. - -2002-06-03 Neil Booth - - * config/i386/i386.h (TARGET_CPU_CPP_BUILTINS): New. - (CPP_CPU32_SPEC, CPP_CPU64_SPEC): Kill. - (CPP_CPUCOMMON_SPEC): Rename CPP_CPU_SPEC. - -2002-06-03 Jason Thorpe - - * config/ns32k/netbsd.h: Update copyright years. - (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Remove. - * config/ns32k/ns32k.h (CPP_PREDEFINES): Remove. - (TARGET_CPU_CPP_BUILTINS): Define. - -2002-06-02 Kazu Hirata - - * emit-rtl.c: Fix formatting. - * errors.h: Likewise. - * except.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * expr.h: Likewise. - -2002-06-02 Kazu Hirata - - * config/h8300/elf.h: Fix formatting. - * config/h8300/rtems.h: Likewise. - -2002-06-03 Jason Thorpe - - * config/rs6000/netbsd.h (DRAFT_V4_STRUCT_RET): Remove. - -2002-06-02 Tom Tromey - - * fixinc/fixincl.x: Rebuilt. - * fixinc/inclhack.def (thread_keyword): Match `*__thread'. - -2002-06-02 Neil Booth - -config/i370: - * i370.h (TARGET_CPU_CPP_BUILTINS): Use. - * linux.h: Use TARGET_OS_CPP_BUILTINS rather than CPP_PREDEFINES. - * mvs.h: Similarly. - * oe.h: Similarly. - -Mon Jun 3 00:18:20 CEST 2002 Jan Hubicka - - * final.c (final): Allow notes to not have computed addresses; - kill no longer needed STACK_REGS ifdef. - -2002-06-02 Richard Henderson - - * gcse.c (bypass_conditional_jumps): Fix typo last change. - -Sun Jun 2 23:02:11 CEST 2002 Jan Hubicka - - * loop.c (emit_prefetch_instructions): Properly place the address - computation. - -Sun Jun 2 22:56:48 CEST 2002 Jan Hubicka - - * basic-block.h (basic_block_for_insn, BLOCK_FOR_INSN): Kill. - (set_block_for_insn): Turn into macro. - * cfgbuild.c (find_basic_block): Do not clear basic_block_for_insn. - * cfglayout.c (insn_scopes): Kill. - (scope_to_insns_initialize): Do not use insn_scopes. - (scope_to_insns_finalize): Likewise. - (duplicate_insn_chain): Likewise. - (cfg_layout_initialize, cfg_layout_finalize): Do not turn scopes to notes. - * cfgrtl.c (basic_block_for_insn): Kill. - (delete_insn_and_edges, delete_insn_chain_and_edges): Simplify. - (create_basic_block_structure): Use reorder_insns. - (compute_bb_for_insn): Do not use basic_block_for_insn. - (merge_blocks_nomove): Likewise. - (update_bb_for_insn): Likewise. - (verify_flow_info): Likewise. - (set_block_for_insn): Kill. - * combine.c (try_combine): Update gen_rtx_INSN call. - * emit-rtl.c (gen_label_rtx): Update gen_rtx_CODE_LABEL call. - (mark_insn_raw, make_jump_insn_raw, make_call_insn_raw): Clear - scopes and BBs. - (add_insn_after, add_insn_before, remove_insn, reorder_insns): Simplify. - (emit_note_before, emit_note_after, emit_line_note_after, emit_note): - Clear BB. - (emit_insns_after): Simplify. - (emit_copy_of_insn_after): Copy scope. - * final.c (final_start_function): Lower scopes. - * flow.c (check_function_return_warnings): Do not rely on deleted insn. - * integrate.c (copy_insn_list): Cope scopes. - * jump.c (duplicate_loop_exit_test): LIkewise; simplify. - * loop.c (loop_optimize): Do not care block notes. - * print-rtl.c (print_rtx): Print BB. - * recog.c (apply_change_group): Simplify. - * rtl.c (copy_rtx): Handle 'B'. - * rtl.def (INSN, CALL_INSN, JUMP_INSN, NOTE): Add extra fields. - * rtl.h (Field accessors): Update indexes. - * sched-ebb.c (schedule_ebbs): Do not lower notes. - * sched-rgn.c (schedule_insns): Likewise. - * toplev.c (rest_of_compilation): Lower notes. - * unroll.c (unroll_loop): Do not care scoping notes. - (copy_loop_body): Copy scopes. - -2002-06-02 Neil Booth - -config/h8300: - * elf.h: Use TARGET_OS_CPP_BUILTINS rather than - SUBTARGET_SPEC. - * rtems.h: Similarly. - * h8300.h (CPP_PREDEFINES, CPP_SPEC, SUBTARGET_CPP_SPEC, - EXTRA_SPECS, SUBTARGET_EXTRA_SPECS): Remove. - (TARGET_CPU_CPP_BUILTINS): Use. - -2002-06-02 Richard Henderson - - * alias.c: Include target.h. - (mark_constant_function): Use targetm.binds_local_p instead - of checking TREE_PUBLIC ourselves. - * Makefile.in (alias.o): Add TARGET_H. - -2002-06-02 Neil Booth - - * c-lex.c: Update copyright and file description. - -2002-06-02 Neil Booth - - * config/fr30/fr30.h: Update to new CPP macros. - -2002-06-02 Neil Booth - - * config/dsp16xx/dsp16xx.h: Update to new CPP macros. - -2002-06-02 Neil Booth - Zack Weinberg - - * c-common.c (c_common_init): Override cpplib's default - warn_long_long setting. - * c-lex.c (lex_number): Replace with interpret_integer, - interpret_float, narrowest_unsigned_type and - narrowest_signed_type, taking advantage of the new - cpplib functionality. - * cpperror.c (_cpp_begin_message): If a warning is turned - into an error, avoid printing "warning:". - * cppexp.c (cpp_num_sign_extend): New. - * cppinit.c: Update comment. - * cpplib.h (cpp_num_sign_extend): New. - * tree.h: Update comment. - -2002-06-02 Gabriel Dos Reis - - * diagnostic.h (struct diagnostic_context): Add new member - internal_error. - (internal_error_function): Remove declaration. - * diagnostic.c (internal_error_function): Remove definition.. - (internal_error): Adjust use. - -2002-06-02 Richard Henderson - - * rtl.h (CC0_P): New. - * gcse.c (cprop_jump): Use it with single_set. Tweak dump text. - (cprop_insn): Allow any mode register; use CC0_P. CSE out single_set. - (bypass_block): Save old dest block for dump text. - (bypass_conditional_jumps): Allow any mode register; use CC0_P. - Allow only true SET insns, not single_set. - -2002-06-02 Gabriel Dos Reis - - * diagnostic.c (diagnostic_finish): Rename to output_flush. - (clear_disgnostic_info): Rename to output_clear_data. Use false - instead of 0 for boolean value. - Adjust function call throughout. - -Sun Jun 2 19:15:27 CEST 2002 Jan Hubicka - - * cfgrtl.c (commit_one_edge_insertion): Fix warning. - * gcse.c (bypass_conditional_jumps): CSE out single_set call. - -2002-06-02 Neil Booth - - * d30v.h (CPP_PREDEFINES): Replace with - (TARGET_CPU_CPP_BUILTINS): New. - -2002-06-02 Roger Sayle - - * config/alpha/alpha.h [ASM_OUTPUT_LABELREF]: Fix typo. - -Sun Jun 2 12:11:52 CEST 2002 Jan Hubicka - - * gcse.c (bypass_conditional_jumps): Use single set to obtain set. - -2002-06-02 Richard Henderson - - * rtlanal.c (volatile_refs_p): Not automatically true for CALL. - -2002-06-02 Marek Michalkiewicz - - Support for C++ constructors/destructors. - * config/avr/avr.c (avr_output_function_epilogue): Jump to exit() - instead of looping if main() returns. - (asm_file_start): Output global symbols that cause .data and .bss - initialization code to be linked in, unconditionally for now. - (avr_asm_out_ctor, avr_asm_out_dtor): New functions. - * config/avr/avr.h (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): New. - (TARGET_ASM_CONSTRUCTOR, TARGET_ASM_DESTRUCTOR): New. - (LIBSTDCXX): New. - * config/avr/libgcc.S (_exit): Split in .fini9 and .fini0 sections. - (__tablejump__): New. - (__do_copy_data, __do_clear_bss): New. - (__do_global_ctors, __do_global_dtors): New. - * config/avr/t-avr (LIB1ASMFUNCS): Add _copy_data, _clear_bss, - _ctors, _dtors. - -2002-06-02 Neil Booth - - * c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): New. - (CPP_SPEC, CPP_PREDEFINES): Kill. - * c4x/rtems.h (CPP_PREDEFINES): Kill. - (TARGET_OS_CPP_BUILTINS): New. - -Sat Jun 1 23:29:51 CEST 2002 Jan Hubicka - - * Makefile.in (tracer.o): New. - * params.def (TRACER_*): New options. - * rtl.h (tracer): Declare. - * timevar.def (TV_TRACER): New. - * toplev.c (dump_file_index): Add DFI_tracer. - (dump_file_info): Add tracer. - (flag_tracer): New. - (lang_indepdenent_options): Add tracer. - (rest_of_compilation): Call tracer. - * tracer.c: New file. - * invoke.texi (-ftracer): Document. - (--param tracer-*): Document. - -2002-06-01 Daniel Berlin - - * tree-inline.c (expand_call_inline): Make the statement - expression we generate have a COMPOUND_STMT. - -2002-06-01 Roger Sayle - - * gcse.c (cprop_cc0_jump): Function deleted. - (cprop_jump): Take an additional argument which is the possibly - NULL cc setting insn immediately before the conditional jump. - When a MODE_CC set is present, substitute it into the JUMP_INSN - before attempting the constant propagation. - (cprop_insn): Recognize cc setters followed by conditional jumps - as a special case. Use cprop_jump instead of cprop_cc0_jump. - (cprop_one_pass): Call bypass_conditional_jumps if altering jumps. - (find_bypass_set): New function based upon find_avail_set used by - cprop, but finds constant expressions available at the end of - basic blocks. - (bypass_block): New function. Given a basic block that begins - with a conditional jump and multiple incoming edges, perform - the jump bypass optimization. - (bypass_conditional_jumps): New function. Call bypass_block with - each suitable basic block in the CFG using a simple single pass. - -2002-06-01 Roger Sayle - - * tree.c (real_minus_onep): New function to test for -1.0. - * fold-const.c (fold) [MULT_EXPR]: Optimize -1.0*x into -x. - -2002-06-01 Roger Sayle - - * fold-const.c (fold_truthop): Transform "a || b" into "(a|b) != 0" - and "!p && !q" into "(p|q) == 0" under suitable conditions. - -2002-06-01 Andreas Jaeger - - * cppexp.c (cpp_classify_number): Cast precission to int for - correct printf format. - -2002-06-01 Marek Michalkiewicz - - * config/avr/avr.c (avr_mcu_types): Remove devices that were once - expected, but don't really exist: atmega83, atmega85, attiny10. - * config/avr/avr.h (LINK_SPEC): Update to use the new avr[1-5] ld - emulations for all devices. - (CRT_BINUTILS_SPECS): Remove atmega83, atmega85, attiny10. - * config/avr/t-avr (MULTILIB_MATCHES): Remove atmega83, atmega85. - -2002-06-01 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - h8300_shift_needs_scratch_p. - * config/h8300/h8300.c (h8300_shift_needs_scratch_p): New. - * config/h8300/h8300.h (OK_FOR_R): New. - (OK_FOR_S): Likewise. - (OK_FOR_T): Likewise. - (EXTRA_CONSTRAINT): Call OK_FOR_R, OK_FOR_S, and OK_FOR_T. - * config/h8300/h8300.md (anonymous shift patterns): Use - constraints R, S, and T. - -Sat Jun 1 11:23:22 CEST 2002 Zdenek Dvorak - - * basic-block.h (struct basic_block_def): New field loop_father. - (BB_VISITED): New flag. - (struct loop): New field pred, removed field shared. - (struct loops): New field parray. - (LOOP_EXITS_DOMS): Removed. - (flow_loop_tree_node_add, flow_loop_tree_node_remove, - flow_loop_nested_p, flow_bb_inside_loop_p, get_loop_body, - dfs_enumerate_from, loop_preheader_edge, loop_latch_edge, - add_bb_to_loop, remove_bb_from_loops, find_common_loop, - verify_loop_structure): Declare. - * cfg.c (entry_exit_blocks): Initialize loop_father field. - * cfganal.c (dfs_enumerate_from): New function. - * cfgloop.c (HEAVY_EDGE_RATIO): New constant. - (flow_loop_entry_edges_find, flow_loop_exit_edges_find, - flow_loop_nodes_find, flow_loop_level_compute, flow_loop_nested_p, - flow_loop_dump, flow_loops_dump, flow_loops_free, - flow_loop_tree_node_add, flow_loop_level_compute, - flow_loops_level_compute, flow_loop_scan, flow_loops_update, - flow_loop_outside_edge_p): Modified for new infrastructure. - (make_forwarder_block, canonicalize_loop_headers, glb_enum_p, - redirect_edge_with_latch_update, flow_loop_free): New static functions. - (flow_loop_tree_node_remove, flow_bb_inside_loop_p, - get_loop_body, add_bb_to_loop, remove_bb_from_loops, - find_common_loop, verify_loop_structure, loop_latch_edge, - loop_preheader_edge): New functions. - (flow_loops_cfg_dump): Do not show dominators, as this information - does not remain up to date long. - (flow_loops_find): Store results in new format. - * predict.c (propagate_freq, estimate_probability, - estimate_loops_at_level, estimate_bb_frequencies): Use new loop - infrastructure. - -2002-06-01 Alan Lehotsky - - * except.c (nothrow_function_p): Walk epilogue delay list - checking the insn, not the chain for potential throws. - -2002-05-31 Zack Weinberg - - * Makefile.in (INSTALL_CPP, UNINSTALL_CPP): Remove. - (install): Refer to install-cpp directly. - (uninstall-cpp): Folded into uninstall rule. - * configure.in: Delete all code relating to --disable-cpp. - * configure: Regenerate. - * config/t-install-cpp: Delete. - -2002-05-31 Richard Henderson - - * configure.in (HAVE_AS_TLS): Add alpha tests. - * configure: Rebuild. - * config/alpha/alpha.c (TARGET_AS_TLS): New. - (alpha_tls_size, alpha_tls_size_string): New. - (overide_options): Set it. Always install machine_status hooks. - (input_operand): Accept got tls predicates. - (local_symbol_p): Merge into ... - (local_symbolic_operand): ... here. Reject tls symbols. - (global_symbolic_operand): Likewise. - (tls_symbolic_operand_1, dtp16_symbolic_operand): New. - (dtp32_symbolic_operand, gotdtp_symbolic_operand): New. - (tp16_symbolic_operand, tp32_symbolic_operand): New. - (gottp_symbolic_operand, tls_symbolic_operand_type): New. - (alpha_encode_section_info): Handle TLS symbols. - (alpha_strip_name_encoding): Likewise. - (alpha_legitimate_address_p): Likewise. - (alpha_legitimize_address): Likewise. - (alpha_expand_mov): Early exit to avoid nop moves. - (struct machine_function): Move from unicosmk.h. Add some_ld_name. - (alpha_init_machine_status, alpha_mark_machine_status, - alpha_free_machine_status): Always define. - (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New. - (print_operand, print_operand_address): Add TLS relocs. - * config/alpha/alpha.h (HAVE_AS_TLS): Default 0. - (MASK_TLS_KERNEL, TARGET_TLS_KERNEL): New. - (TARGET_SWITCHES): Add -mtls-kernel. - (alpha_tls_size, alpha_tls_size_string): New. - (TARGET_OPTIONS): Add -mtls-size=. - (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, - REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Add R0_REG. - (ASM_OUTPUT_LABELREF): Skip %. - (PRINT_OPERAND_PUNCT_VALID_P): Add &. - (PREDICATE_CODES): Update. - * config/alpha/alpha.md (UNSPEC_TLSGD_CALL, UNSPEC_TLSLDM_CALL, - UNSPEC_TLSGD, UNSPEC_TLSLDM, UNSPEC_DTPREL, UNSPEC_TPREL, - UNSPEC_TP, UNSPECV_SET_TP): New. - (adddi_er_lo16_dtp, adddi_er_hi32_dtp, adddi_er_lo32_dtp, - adddi_er_lo16_tp, adddi_er_hi32_tp, adddi_er_lo32_tp, load_tp, - set_tp, movdi_er_tlsgd, movdi_er_tlsldm, movdi_er_gotdtp, - movdi_er_gottp, call_value_osf_tlsgd, call_value_osf_tlsldm): New. - (call_value_osf_2_er): Accept anything as op4. - * config/alpha/alpha-protos.h: Update. - * config/alpha/unicosmk.h (struct machine_function): Move to alpha.c. - -2002-05-31 Zack Weinberg - - * cppinit.c (append_include_chain): Always pay attention to - cxx_aware when setting new->sysp. Remove ATTRIBUTE_UNUSED - marker on argument. - -2002-05-31 Kazu Hirata - - * target.h: Fix formatting. - * timevar.h: Likewise. - * tlink.c: Likewise. - * toplev.c: Likewise. - * toplev.h: Likewise. - * tree.c: Likewise. - * tree-dump.h: Likewise. - * tree.h: Likewise. - * tree-inline.h: Likewise. - * unroll.c: Likewise. - * unwind-dw2.c: Likewise. - * unwind-dw2-fde.c: Likewise. - * unwind-dw2-fde-glibc.c: Likewise. - * unwind-dw2-fde.h: Likewise. - * unwind.h: Likewise. - * unwind-sjlj.c: Likewise. - * varasm.c: Likewise. - * varray.h: Likewise. - * vmsdbg.h: Likewise. - * vmsdbgout.c: Likewise. - * xcoffout.h: Likewise. - -2002-05-31 Igor Shevlyakov - - * expr.c (compare_from_rtx): Generate comparison between op0 and op1 - rather than cc0 and 0 in a case when HAVE_cc0 is not defined. - -2002-05-31 Matthew Woodcraft - - * gcc.c (cpp_unique_options): Remove "-d" options. - (cpp_debug_options): New spec string. - (default_compilers): Use it. - * objc/lang-specs.h: Likewise. - -2002-05-31 Nathanael Nerode - - * gcc/Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with - BUILD_PREFIX, BUILD_PREFIX_1, to correct nomenclature. - * gcc/mklibgcc.in: Likewise. - * gcc/config/arc/t-arc: Likewise. - * gcc/configure.in: Likewise. - * gcc/configure: Regenerate. - -2002-05-31 Stan Shebs - Turly O'Connor - - * c-decl.c (struct binding_level): Change int field n_incomplete - to tree list incomplete_list. - (clear_binding_level): Init field with NULL. - (pushdecl): Add incomplete type to list. - (mark_binding_level): Mark the incomplete list. - (finish_struct): Scan the incomplete list for types instead - of all decls in the current binding level. - -2002-05-31 John David Anglin - - * pa.c (output_millicode_call): Add missing '%' characters. - (output_call): Likewise. - -2002-05-31 David Edelsohn - - * config/rs6000/xcoff.h (HOT_TEXT_SECTION_NAME): Define. - (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. - -2002-05-31 Alan Lehotsky - - * varasm.c (mark_constant_pool): Walk epilogue delay list - checking the insn, not the chain for potential constants. - -Fri May 31 12:38:43 2002 J"orn Rennecke - - * config/sh/elf.h (ASM_SPEC): Use subtarget_endian_asm_spec. - -Fri May 31 13:50:19 CEST 2002 Jan Hubicka - - * i386.c (classify_argument): Properly handle base types. - - * dwarf2out.c (expand_builin_init_dwarf_reg_sizes): - Store first DWARF_FRAME_REGISTERS dwarf registers, not pseudo - registers. - -Fri May 31 13:37:54 CEST 2002 Jan Hubicka - - * gcse.c (gcse_emit_move_after): New. - (pre_delete, hoist_store): Use it. - - * reload1.c (emit_input_reload_insns): Use constrain_operands - instead of constraint_accepts_reg_p to verify optimization. - (constraint_accepts_reg_p): Kill. - - * reload1.c (reload_cse_delete_noop_set): Kill. - (reload_cse_simplify): Use delete_insn_and_edges. - -2002-05-31 Zdenek Dvorak - - * cfgloop.c (flow_loops_find): Initialize first and last fields - correctly. - -2002-05-31 Neil Booth - - * c-common.c (builtin_define_std): Correct logic. - -2002-05-31 John David Anglin - - * pa.c (output_millicode_call): Correct "be,l" insn for TARGET_PA_20. - (output_call): Likewise. - -2002-05-31 John David Anglin - - * pa.c: Move output.h include after tree.h include. - (pa_asm_output_mi_thunk): Constify identifier lab. - -2002-05-31 Jason Thorpe - - * config/ns32k/ns32k.h: Define named constants for the - bits in target_flags and use them. - * config/ns32k/netbsd.h (TARGET_DEFAULT): Use named constants. - -2002-05-30 John David Anglin - - * config.gcc (tm_file): Prefix pa/pa-700.h to tm_file list for PA1.0 - architecture and pa/pa-7100.h for PA1.1 architecture, respectively. - * pa/pa.c (override_options): Use TARGET_SCHED_DEFAULT to select - default scheduling model. - * pa/pa.h (TARGET_SCHED_DEFAULT): Define if not defined to "8000". - * pa/pa-700.h (TARGET_SCHED_DEFAULT): New file for "700" scheduling. - * pa/pa-7100.h (TARGET_SCHED_DEFAULT): New file for "7100" scheduling. - * doc/install.texi (hppa*-*-*): Document default scheduling. - -2002-05-30 John David Anglin - - * pa.c (following_call): Check TARGET_JUMP_IN_DELAY. - -2002-05-31 Jason Thorpe - - * config.gcc (ns32k-*-netbsd*): Set tm_file to - "${tm_file} netbsd.h netbsd-aout.h ns32k/netbsd.h" - * config/ns32k/netbsd.h: Don't include ns32k/ns32k.h, - netbsd.h, or netbsd-aout.h. - -2002-05-31 Jason Thorpe - - * longlong.h (count_trailing_zeros): Add missing \, and clean up - whitespace in __ns32000__ case. - -2002-05-31 Aldy Hernandez - - * expr.c (expand_expr): Output partially zeroed out vectors with - output_constant_def. - -2002-05-30 Jason Thorpe - - * config.gcc (sh[123456789l]*-*-*): Set cpu_type to sh. - (sh-*-netbsdelf*) - (shl*-*-netbsdelf*): New targets. - * config/sh/netbsd-elf.h: New file. - * config/sh/t-netbsd: New file. - -2002-05-30 Richard Henderson - Eric Botcazou - - PR optimization/6822 - * config/i386/i386.c (ix86_expand_int_movcc): Don't cast INTVAL - to unsigned int for op1 comparisons. Use gen_int_mode. - -2002-05-30 Eric Botcazou - - * expmed.c (const_mult_add_overflow_p): New. - * expr.h: Declare it. - * loop.c (maybe_eliminate_biv_1) [COMPARE]: Use it. - Don't eliminate the biv if the giv has a constant multiplier and - the rhs argument of the comparison does satisfy the predicate. - Use expand_mult_add to compute the replacement constant. - -2002-05-30 Osku Salerma - - * c-common.c (c_common_attribute_table): Add "may_alias" entry. - (c_common_get_alias_set): Handle it. - * doc/extend.texi: Document it. - -2002-05-30 Richard Henderson - - * defaults.h (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill. - * toplev.c (process_options): Don't check it. - * doc/tm.texi: Don't document it. - * config/i386/linux.h (SUBTARGET_FRAME_POINTER_REQUIRED): New. - (TARGET_ALLOWS_PROFILING_WITHOUT_FRAME_POINTER): Kill. - * config/i386/i386.c (ix86_frame_pointer_required): Suppress leaf - frame pointer optimization if current_function_profile. - -2002-05-30 Kazu Hirata - - * langhooks.c: Fix formatting. - * langhooks.h: Likewise. - * lcm.c: Likewise. - * libgcc2.c: Likewise. - * lists.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * loop.h: Likewise. - -2002-05-30 Marc Espie - - * config.gcc (sparc64-*-openbsd*): New. - * config/sparc/openbsd1-64.h: New. - * config/sparc/openbsd64.h: New. - -2002-05-30 Jeff Law - - * flow.c (propagate_one_insn): Revise yesterday's patch. Delete - a dead insn with a REG_RETVAL note when the entire libcall is not - dead and remove the associated REG_LIBCALL note at the same time. - -Thu May 30 19:54:30 2002 J"orn Rennecke - - * lcm.c (output.h): #include. - (compute_earliest): Remove hack to treat renumbered EXIT_BLOCK - as an ordinary block. - (optimize_mode_switching): Don't pretend that the exit block is - an ordinary block, or handle sucessors of entry block specially. - Instead, split edges from entry block and to exit block, and - put a computing definition on the thus gained post-entry-block, - and a need on the pre-exit-block. - -Thu May 30 20:28:01 CEST 2002 Jan Hubicka - - * gengenrtl.c (type_from_format, accessor_from_format): Support 'B'. - * rtl.texi: Document 'B' - -2002-05-30 Jason Thorpe - - * config/m68k/netbsd-elf.h (LONG_DOUBLE_TYPE_SIZE): Compute - at run-time. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Set to 96 if not __mc68010__. - -2002-05-30 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_expand_unop_builtin): Return - const0_rtx instead of NULL_RTX when in error. - (altivec_expand_abs_builtin): Same. - (rs6000_expand_binop_builtin): Same. - (altivec_expand_predicate_builtin): Same. - (altivec_expand_stv_builtin): Same. - (rs6000_expand_ternop_builtin): Same. - (altivec_expand_builtin): Same. - -2002-05-29 David S. Miller - - * rtl.h (clear_emit_caches): Delete. - * integrate.c (output_inline_function): Don't call it. - * emit-rtl.c (restore_emit_status, init_emit): Likewise. - (clear_emit_caches): Delete definition. - (SEQUENCE_RESULT_SIZE, sequence_result, free_insn): Likewise. - -2002-05-30 Hans-Peter Nilsson - - * config/mmix/mmix.c: Include real.h. - (mmix_constant_address_p): Remove redundant test before switch. - -2002-05-29 Jason Thorpe - - * config/mips/mips.h (READONLY_DATA_SECTION_ASM_OP): Define - only if not already defined. - -2002-05-29 Kazu Hirata - - * config/h8300/h8300-protos.h: Remove prototypes for - ok_for_bclr and small_power_of_two. - * config/h8300/h8300.c (small_power_of_two): Remove. - (ok_for_blcr): Likewise. - (fix_bit_operand): Make WHAT deal with an integer instead of a - constraint character. - * config/h8300/h8300.h (CONST_OK_FOR_O): Remove. - (CONST_OK_FOR_P): Likewise. - (CONST_OK_FOR_LETTER_P): Do not call CONST_OK_FOR_O or - CONST_OK_FOR_P any more. - * config/h8300/h8300.md (andqi3): Adjust to the new prototype - of fix_bit_operand. - (iorqi3): Likewise. - (xorqi3): Likewise. - -2002-05-29 Jason Thorpe - - * config/mips/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Make sure this is undefined. - (CPP_SPEC): Place -D__mips=1 at the beginning of the spec, - since it is no longer in CPP_PREDEFINES. Don't -U__MIPSEL__ - or -U__MIPSEB__ before defining one or the other. Instead, - use %(subtarget_endian_default) if neither -EB nor -EL are - specified. - (SUBTARGET_EXTRA_SPECS): Define. - (SUBTARGET_CPP_SPEC): Remove __LONG64 handling. Use - %(netbsd_cpp_spec). - -2002-05-29 Hans-Peter Nilsson - - * doc/md.texi (Patterns): Note pattern condition pitfall - for unnamed insn. - -2002-05-29 Aldy Hernandez - - * rs6000.c: (altivec_expand_builtin): Only expand altivec builtins - when TARGET_ALTIVEC. Move handling of generic unary, binary, and - ternary operations from here... - (rs6000_expand_builtin): ...to here. - New argument expandedp. - Change all instances of altivec_expand_binop_builtin to - rs6000_expand_binop_builtin. - (altivec_expand_unop_builtin): Rename to - rs6000_expand_unop_builtin. - (altivec_expand_binop_builtin): Rename to - rs6000_expand_binop_builtin. - (altivec_expand_ternop_builtin): Rename to - rs6000_expand_ternop_builtin. - -2002-05-29 Richard Henderson - - * config/i386/biarch64.h (TARGET_64BIT_DEFAULT): Define with value. - (TARGET_BI_ARCH): Likewise. - * config/i386/i386.h: Test TARGET_64BIT_DEFAULT by value. - (TARGET_SWITCHES): Combine target defaults here not in TARGET_DEFAULT. - (TARGET_64BIT_DEFAULT): Default to 0. - (TARGET_DEFAULT): Default to MASK_OMIT_LEAF_FRAME_POINTER. - -2002-05-29 Richard Henderson - - * config/i386/i386.c (USE_HIDDEN_LINKONCE): New. - (get_pc_thunk_name): New. - (output_set_got): Use it. - (ix86_asm_file_end): If USE_HIDDEN_LINKONCE, emit get_pc thunks - into linkonce sections. - -2002-05-29 Jason Thorpe - - * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Make sure this is undefined. - (CPP_SUBTARGET_SPEC64, CPP_SUBTARGET_SPEC32): Remove. - (CPP_SUBTARGET_SPEC): Don't provide different versions for - default-32 and default-64. Just always use %(netbsd_cpp_spec). - (SUBTARGET_EXTRA_SPECS): Remove cpp_subtarget_spec32 and - cpp_subtarget_spec64. Add netbsd_cpp_spec. - * config/sparc/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Make sure this is undefined. - (SUBTARGET_EXTRA_SPECS): Define. - (CPP_SPEC): Use %(netbsd_cpp_spec). - -2002-05-29 Jeff Law - - * pa.h (ASM_OUTPUT_MI_THUNK): Remove unwanted semi-colon. - - * flow.c (propagate_one_insn): Do not remove a dead insn if it - contains a REG_RETVAL note. - - * haifa-sched (sched_analyze): Remove another useless clearing - of SCHED_GROUP_P I missed yesterday. - - * pa.h (ASM_OUTPUT_MI_THUNK): Move implementation into pa.c. - * pa.c (pa_asm_output_mi_thunk): New function. - * pa-protos.h (pa_asm_output_mi_thunk): Declare. - -2002-05-29 Neil Booth - Marek Michalkiewicz - - * config/avr/avr.c (avr_base_arch_macro, avr_extra_arch_macro): New. - (avr_asm_only_p): Make non-static. - (enum avr_arch): Remove. - (avr_arch_types): New. - (avr_mcu_types): Update. - (avr_override_options): Use avr_arch_types table instead of switch. - * avr.h (CPP_PREDEFINES): Die. - (avr_base_arch_macro, avr_extra_arch_macro): New. - (TARGET_CPU_CPP_BUILTINS): New. - (CPP_SPEC, EXTRA_SPECS): Simplify. - (CPP_AVR1_SPEC, CPP_AVR2_SPEC, CPP_AVR3_SPEC, CPP_AVR4_SPEC, - CPP_AVR5_SPEC): Die. - -2002-05-29 Jason Thorpe - - * config/arm/netbsd.h (TARGET_OS_CPP_BUILTINS): Use - NETBSD_OS_CPP_BUILTINS_AOUT. - (SUBTARGET_EXTRA_SPECS): Define. - (CPP_SPEC): Use %(netbsd_cpp_spec). - -2002-05-29 Richard Henderson - - * config/i386/i386.c (ix86_output_function_epilogue): New. - (TARGET_ASM_FUNCTION_EPILOGUE): New. - (pic_label_name): Remove. - (pic_labels_used): New. - (ix86_asm_file_end): Emit one pc load stub for each register used. - (output_set_got): Generate deep pc load to any register. - (ix86_select_alt_pic_regnum): New. - (ix86_save_reg): Don't save pic register if we can find a valid - call-clobbered replacement. - (ix86_expand_prologue): If we found a valid replacement, renumber - pic_offset_table_rtx. - * config/i386/i386.h (PIC_OFFSET_TABLE_REGNUM): Look at - pic_offset_table_rtx after reload. - (REAL_PIC_OFFSET_TABLE_REGNUM): New. - * config/i386/i386.md (set_got): Make insn, not expander. - (set_got_nopic, set_got_deep, set_got_nodeep): Remove. - -2002-05-29 Richard Henderson - - * config/i386/i386.c (ix86_compute_frame_layout): Do add bottom - alignment for alloca. - -2002-05-29 Richard Henderson - - * config/i386/i386.c (output_pic_addr_const): Lowercase rip. - (print_operand_address): Only add rip for symbolic addresses - for which we do not have another relocation type. - -2002-05-29 Jason Thorpe - - * config/m68k/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define. - (EXTRA_SPECS): Add netbsd_cpp_spec. - (CPP_SPEC): Use %(netbsd_cpp_spec). - (CPP_PREDEFINES): Remove. - * config/m68k/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. - (EXTRA_SPECS): Define. - (CPP_SPEC): Use %(netbsd_cpp_spec). - (CPP_PREDEFINES): Remove. - -2002-05-29 Neil Booth - - PR preprocessor/6844 - * cppmacro.c (cpp_macro_definition): Reserve space for terminating - NUL. - -2002-05-29 Eric Christopher - - * config/mips/linux.h (SUBTARGET_CPP_SPEC): Add support for - mips5/mips32/mips64 and _MIPS_ISA_MIPSXX. - -2002-05-29 Nick Clifton - - * config/fr30/fr30.md: Remove previous restriction on splits. - Enforce conformance through gen_lowpart and cont_int_operand. - * config/fr30/fr30.h (BSS_SECTION_ASM_OP): Use ".section .bss" - as the assembler does not support ".bss". - -2002-05-29 Jason Thorpe - - * config/i386/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Remove. - (SUBTARGET_EXTRA_SPECS): Define. - (CPP_SPEC): Use %(netbsd_cpp_spec). - * config/i386/netbsd.h (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES): Remove. - (SUBTARGET_EXTRA_SPECS): Define. - (CPP_SPEC): Use %(netbsd_cpp_spec). - * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Define. - (CPP_PREDEFINES, CPP_LP64_SPEC, CPP_SUBTARGET_SPEC): Remove. - (SUBTARGET_EXTRA_SPECS): Remove cpp_lp64 and cpp_subtarget. - Add netbsd_cpp_spec. - (CPP_SPEC): Remove %(cpp_subtarget), add %(netbsd_cpp_spec). - -2002-05-29 Neil Booth - Zack Weinberg - - * cppexp.c (cpp_num): Move to cpplib.h. - (CPP_ERROR): Remove. - (interpret_float_suffix, interpret_int_suffix): New. - (struct suffix, vsuf_1, vsuf_2, vsuf_3): Remove. - (cpp_classify_number, cpp_interpret_integer): New. - (interpret_number): Remove. - (eval_token): Update to use new routines. - * cpphash.h (cpp_num_part): Move to cpplib.h. - * cppinit.c (cpp_post_options): Set warn_long_long. - * cpplib.h (struct cpp_options): Add warn_long_long. - (cpp_num, cpp_num_part, CPP_N_CATEGORY, CPP_N_INVALID, - CPP_N_INTEGER, CPP_N_FLOATING, CPP_N_WIDTH, CPP_N_SMALL, - CPP_N_MEDIUM, CPP_N_LARGE, CPP_N_RADIX, CPP_N_DEC, CPP_N_HEX, - CPP_N_OCTAL, CPP_N_UNSIGNED, CPP_N_IMAGINARY, cpp_classify_number, - cpp_interpret_integer): New. - -2002-05-29 Joel Sherrill - - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Use -m403 and -m405. - -2002-05-29 Jason Thorpe - - * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Use - NETBSD_OS_CPP_BUILTINS_ELF and NETBSD_OS_CPP_BUILTINS_LP64. - (CPP_SUBTARGET_SPEC): Define. - (SUBTARGET_EXTRA_SPECS): Define. - (CPP_SPEC): Remove. - -2002-05-29 Chris Lattner - - * ssa.c (rename_insn_1): Rename uses of undefined registers to - prevent confusion if/when the register is defined. - -2002-05-29 Hans-Peter Nilsson - - PR target/6838 - * config/cris/cris.md: Fix typos and thinkos in comments. - ("*mov_sideqi_biap_mem"): Remove '*' in constraint for operand 4, - second alternative. - ("*mov_sidehi_biap_mem", "*mov_sidesi_biap_mem"): Ditto. - ("*mov_sideqi_mem"): Similar, but for operand 3. - ("*mov_sidehi_mem", "*mov_sidesi_mem"): Ditto. - (splitter for mov_sideqi_mem, mov_sidehi_mem, mov_sidesi_mem): - Remove spurious mode specifier on operand 2. - -2002-05-29 Kazu Hirata - - * config/h8300/h8300-protos.h: Remove the prototype for - o_operand. - Add prototypes for single_one_operand and single_zero_operand. - * config/h8300/h8300.c (o_operand): Remove. - (single_one_operand): New. - (single_zero_operand): Likewise. - (print_operand): For 'V' operand, and the operand with 0xff. - For 'V' and 'W' operands, do not and the bit position with 7. - * config/h8300/h8300.md (various anonymous patterns): Replace - use of exact_log2 with single_one_operand/single_zero_operand. - -2002-05-29 Ulrich Weigand - - * config/s390/linux.h (MD_FALLBACK_FRAME_STATE_FOR): New. - -2002-05-29 Ulrich Weigand - - * config/s390/s390.c (legitimate_pic_operand_p): Do not - accept symbolic LARL operands. - (s390_emit_epilogue): Do not set FRAME_RELATED_P on - epilogue insns. - -2002-05-29 Hartmut Penner - - * config/s390/s390.md (cmpstr_64/31): Mark whole - input registers as used. - -2002-05-28 Richard Henderson - - * config/i386/i386.c (ix86_save_reg): Examine regs_ever_live, - not current_function_uses_pic_offset_table and - current_function_uses_const_pool; examine current_function_profile. - (ix86_expand_prologue): Likewise. Add pic_offset_table_rtx as - input to blockage if needed. - (ix86_expand_call): Do not set current_function_uses_pic_offset_table. - (legitimize_pic_address): Likewise. Set regs_ever_live for - pic_offset_table_rtx when invoked during reload. - * config/i386/i386.h (FINALIZE_PIC): Remove. - * config/i386/i386.md (tablejump): Reformat. Do not set - current_function_uses_pic_offset_table. - (tls_global_dynamic, tls_local_dynamic_base): Likewise. - (blockage): Accept anything as operand 0. - -2002-05-28 Jason Thorpe - - * config/netbsd-aout.h (NETBSD_OS_CPP_BUILTINS_AOUT): Define - common CPP built-ins for all NetBSD a.out targets. - * config/netbsd-elf.h (NETBSD_OS_CPP_BUILTINS_ELF): Define - common CPP built-ins for all NetBSD ELF targets. - * config/netbsd.h: Add missing notice. - (NETBSD_OS_CPP_BUILTINS_COMMON): Define common CPP built-ins - for all NetBSD targets. - (NETBSD_OS_CPP_BUILTINS_LP64): Define common CPP built-ins - for all NetBSD targets using an LP64 code model. - (NETBSD_CPP_SPEC): Define CPP_SPEC parts common to all - NetBSD targets. - -2002-05-28 Richard Henderson - - * flow.c (update_life_info_in_dirty_blocks): Only do a partial - update if UPDATE_LIFE_LOCAL. - -2002-05-28 Toshiyasu Morita - - * config/sh/sh.c: Include real.h for REAL_VALUE_TYPE. - -Tue May 28 21:16:18 2002 J"orn Rennecke - Jason R. Thorpe - - config/sh reorganization to factor out endianness and coff: - - * config/sh/little.h: New file. - * config/sh/sh.h (TARGET_ENDIAN_DEFAULT): If not already - defined, define to 0 to select big-endian. - (SUBTARGET_ASM_ENDIAN_SPEC): Define according to TARGET_ENDIAN_DEFAULT. - (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT. - * config/sh/sh64.h (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT. - * config/sh/t-be: New file. - * config/sh/t-le: New file. - - * sh.h (SDB_DEBUGGING_INFO, #include "dbxcoff.h"): Moved to sh/coff.h. - (SDB_DELIM, MAX_OFILE_ALIGNMENT, IDENT_ASM_OP): Likewise. - (TARGET_ASM_NAMED_SECTION, ASM_OUTPUT_SKIP): Likewise. - (USER_LABEL_PREFIX, LOCAL_LABEL_PREFIX): Likewise. - (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL): Likewise. - (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. - (ASM_FILE_END, ASM_DECLARE_FUNCTION_NAME): Deleted. - (CPP_SPEC, SUBTARGET_CPP_ENDIAN_SPEC): Likewise. - (SUBTARGET_CPP_SPEC, CPP_DEFAULT_CPU_SPEC, CPP_PREDEFINES): Likewise. - (EXTRA_SPECS): Remove SUBTARGET_CPP_ENDIAN_SPEC and - CPP_DEFAULT_CPU_SPEC. Add LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL, - SUBTARGET_LINK_EMUL_SUFFIX and SUBTARGET_LINK_SPEC. - (LINK_SPEC): Define to SH_LINK_SPEC. - (TARGET_CPU_CPP_BUILTINS, SH_LINK_SPEC): Define. - (LINK_EMUL_PREFIX, LINK_DEFAULT_CPU_EMUL): Likewise. - (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise. - (CPP_SPEC): Reduce to %(subtarget_cpp_spec). - (TARGET_ENDIAN_DEFAULT): Define if not already defined. - * config/sh/coff.h: New file. - (TARGET_ASM_NAMED_SECTION): Now default_coff_asm_named_section - (TARGET_OBJFMT_CPP_BUILTINS): Define. - * config/sh/elf.h (IDENT_ASM_OP): No need to #undef at the start. - (ASM_FILE_END, ASM_OUTPUT_SOURCE_LINE): Likewise. - (DBX_OUTPUT_MAIN_SOURCE_FILE_END, TARGET_ASM_NAMED_SECTION): Likewise. - (ASM_DECLARE_FUNCTION_NAME, MAX_OFILE_ALIGNMENT, SIZE_TYPE): Likewise. - (PTRDIFF_TYPE): Likewise. - ("dbxelf.h", "elfos.h", "svr4.h"): Don't #include. - (CPP_PREDEFINES): Don't define. - (TARGET_OBJFMT_CPP_BUILTINS): Define. - (LINK_SPEC): Define to SH_LINK_SPEC. - (LINK_EMUL_PREFIX): Redefine. - * config/sh/linux.h: (SUBTARGET_CPP_SPEC): Remove -fpic / -fPIC cases. - (SUBTARGET_CPP_ENDIAN_SPEC, CPP_DEFAULT_CPU_SPEC): Remove redefinition. - (CPP_PREDEFINES, SUBTARGET_ASM_ENDIAN_SPEC): Likewise. - (CC1_SPEC, CC1PLUS_SPEC, LINK_SPEC): Likewise. - (TARGET_OS_CPP_BUILTINS): Define. - (TARGET_DEFAULT): Redefine. - (SUBTARGET_LINK_EMUL_SUFFIX, SUBTARGET_LINK_SPEC): Likewise. - * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Remove. - (LINK_SPEC): Don't redefine. - (LINK_DEFAULT_CPU_EMUL): Redefine. - (TARGET_DEFAULT): Include TARGET_ENDIAN_DEFAULT. - * sh.c (sh_asm_named_section): Don't declare / define. - * t-linux (MULTILIB_OPTIONS): Rely on pre-set endianness option. - * config.gcc (sh-*-elf* tm_file): Add dbxelf.h elfos.h svr4.h. - (sh64-*-elf* tm_file): Likewise. - (sh-*-rtemself* tm_file): Likewise. - (sh-*-linux* tm_file): Likewise. Add sh/little.h. - (sh-*-linux* tmake_file): Add sh/t-le. - (sh-*-rtems* tm_file): Add sh/coff.h - (sh-*-* tm_file): Likewise. - -Tue May 28 21:16:18 2002 J"orn Rennecke - - * sh.h (LEGITIMATE_PIC_OPERAND_P): Check for SYMBOL_REF before using - CONSTANT_POOL_ADDRESS_P. - - * coff.h (HAS_INIT_SECTION, INVOKE__MAIN): Define. - -2002-05-28 David Edelsohn - Jeff Law - - * optabs.c (expand_binop): Fix nwords sign warnings. - generate pseudo for add_optab. - - * sched-deps.c (sched_analyze): Do not clear SCHED_GROUP_P. - * haifa-sched.c (move_insn): Clear SCHED_GROUP_P after it is used. - -2002-05-28 Marc Espie - - * config/i386/openbsd.h (HAVE_GAS_MAX_SKIP_P2ALIGN): Remove, - inherited from gas.h. - (ASM_QUAD): Undef. OpenBSD does not support it. - -2002-05-28 Danny Smith - - * doc/install.texi (binaries): Change mingw binaries - link to www.mingw.org. - -2002-05-28 Zdenek Dvorak - - * cfgloop.c (flow_loops_cfg_dump): Use bb->index, not i. - -2002-05-28 Richard Henderson - - * config/i386/i386.c (ix86_compute_frame_layout): Do not add - bottom alignment for leaf functions. - -2002-05-28 Zack Weinberg - - * config/pa/milli32.S, config/pa/lib1funcs.asm, - config/sparc/sol2-g1.asm: Delete unused files. - -2002-05-28 Richard Henderson - - * cfg.c (dump_flow_info): Print bb->index, not i, for block number. - - * flow.c (calculate_global_regs_live): Rename call_used to - invalidated_by_call. Initialize from regs_invalidated_by_call - instead of call_used_regs. - - * varasm.c (default_binds_local_p): Check TREE_PUBLIC before - DECL_EXTERNAL. - -2002-05-28 Zack Weinberg - - * tree.h: Don't include real.h. - Forward-declare struct realvaluetype. - (struct tree_real_cst): Point to the REAL_VALUE_TYPE, do not - contain it. - (TREE_REAL_CST_PTR): New accessor. - (TREE_REAL_CST): Update. - * real.h: Include machmode.h. - (realvaluetype): Make it struct realvaluetype, not a typedef. - (build_real): Prototype here. - - * tree.c: Include real.h. - (build_real): Allocate the REAL_VALUE_TYPE as a separate - object in GC memory, set TREE_REAL_CST_PTR to point to it. - (build_real_from_int_cst): Use build_real. - * ggc-common.c (ggc_mark_trees): Mark TREE_REAL_CST_PTR of a - REAL_CST. - - * builtins.c, c-common.c, c-lex.c, dwarf2out.c, expr.c, - fold-const.c, print-tree.c, real.c: Include real.h. - * Makefile.in: Update dependency lists. - -2002-05-28 Zdenek Dvorak - - * basic-block.h (last_basic_block): Declare. - (expunge_block_nocompact): Declaration removed. - (compact_blocks): Declare. - * cfg.c (last_basic_block): New variable. - (expunge_block_nocompact): Removed. - (expunge_block): Do not compact basic blocks. - (compact_blocks): New. - * cfganal.c (flow_call_edges_add): Use the fact that bb indices no - longer change. - * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Set - last_basic_block. - * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Do not change - real positions of blocks. - (delete_unreachable_blocks): Simplified -- quadratic behavior now - cannot occur. - (cleanup_cfg): Compact blocks. - * cfgrtl.c (create_basic_block): Insert basic blocks to the end of - basic_block_info varray. - (flow_delete_block): Comment update. - (back_edge_of_syntactic_loop_p): Modify position check code. - (verify_flow_info): Update checking. - * flow.c (calculate_global_regs_live): Use FOR_EACH_BB. - * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed. - (find_if_case_1, find_if_case_2, if_convert): Use the fact that bb - indices no longer change. - * lcm.c (optimize_mode_switching): Replace n_basic_blocks with - last_basic_block. - * predict.c (estimate_bb_frequencies): Remove unneccessary code. - * profile.c (branch_prob): Compact blocks. - * sched-rgn.c (find_rgns): Replace n_basic_blocks with - last_basic_block. - -2002-05-28 Kazu Hirata - - * config/h8300/h8300.md (two anonymous patterns): New. - -2002-05-28 David S. Miller - - * config/sparc/sparc.md (cpu): Tidy. - (type): Delete 'return', add 'ialuX', 'flushw', 'iflush', and - 'trap'. - (in_call_delay): Delete reference to 'return' type. - (eligible_for_return_delay, in_return_delay, define_delay - referencing those): Delete. - (rest of file): Use new type attributes as appropriate. - * config/sparc/sparc-protos.h (eligible_for_return_delay): Delete. - * config/sparc/sparc.c (eligible_for_return_delay): Likewise. - * config/sparc/ultra1_2.md (us1_single): New reservation. - (us1_ialuX): Likewise. - * config/sparc/ultra3.md (us3_single): Likewise. - (us3_ialuX): Likewise. - (us3_imul, us3_idiv): Tweak. - -2002-05-28 Richard Henderson - - * config/alpha/alpha.c (alpha_in_small_data_p): Return false for - STRING_CST. - -2002-05-28 Richard Henderson - - * config.gcc: Obsolete mn10200. - -2002-05-28 Neil Booth - - * cppexp.c (interpret_number): Optimize for single-digit - and less-than-half-precision cases. - (num_trim, num_positive, num_div_op): Cast constants. - -2002-05-27 Bo Thorsen - - * config/i386/libgcc-x86_64-glibc.ver: Copy this file from the - 3.1 branch. The file was made by Jakub Jelinek. - * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Add i386 - support so multilib doesn't break. And don't define this at all - when -Dinhibit_libc is used. - (MULTILIB_DEFAULTS): Always set default to 64 bit compilation. - * config/i386/t-linux64: Implement full multilib support. Patch - originally done by Andreas Jaeger and Jakub Jelinek. - -2002-05-27 Roger Sayle - - * c-common.c: Add support for __attribute__((nothrow)) to specify - that a function cannot throw an exception (using TREE_NOTHROW). - (handle_nothrow_attribute): New function to process this attribute. - - * doc/extend.texi: Document the new nothrow function attribute. - -2002-05-27 H.J. Lu (hjl@gnu.org) - - * cppexp.c (num_trim): Use 1UL instead of 1 for long int. - (num_positive): Likewise. - (num_div_op): Likewise. - -2002-05-27 Neil Booth - - * c-common.c (c_common_init): Always use intmax_t. - -2002-05-27 Neil Booth - - * c-common.c (c_common_init): Use intmax_t for now. - -2002-05-24 Andrew Haley - - * fold-const.c (fold): Don't convert (T)(x & c) into (T)x & (T)c - if T is a boolean type. - -2002-05-27 Zdenek Dvorak - - * basic-block.h (last_basic_block): Defined as synonym for - n_basic_blocks. - * cfganal.c (mark_dfs_back_edges, flow_reverse_top_sort_order_compute, - flow_depth_first_order_compute, flow_preorder_transversal_compute, - flow_dfs_compute_reverse_init): Replaced relevant occurences of - n_basic_blocks with last_basic_block. - * cfgbuild.c (make_edges): Likewise. - * cfgloop.c (flow_loop_scan, flow_loops_find): Likewise. - * cfgrtl.c (verify_flow_info, purge_all_dead_edges): Likewise. - * combine.c (combine_instructions): Likewise. - * df.c (df_alloc, df_analyse_1, df_analyse, iterative_dataflow_sbitmap, - iterative_dataflow_bitmap): Likewise. - * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree, - calc_idoms, idoms_to_doms): Likewise. - * flow.c (update_life_info_in_dirty_blocks, free_basic_block_vars): - Likewise. - * gcse.c (gcse_main, alloc_gcse_mem, compute_local_properties, - compute_hash_table, expr_reaches_here_p, one_classic_gcse_pass, - one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p, - one_pre_gcse_pass, compute_transpout, delete_null_pointer_checks_1, - delete_null_pointer_checks, compute_code_hoist_vbeinout, - hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass, - compute_store_table, build_store_vectors): Likewise. - * haifa-sched.c (sched_init): Likewise. - * ifcvt.c (if_convert): Likewise. - * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete, - pre_edge_lcm, compute_available, compute_nearerout, - compute_rev_insert_delete, pre_edge_rev_lcm, optimize_mode_switching): - Likewise. - * predict.c (estimate_probability, process_note_prediction, - note_prediction_to_br_prob): Likewise. - * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX): Likewise. - * recog.c (split_all_insns, peephole2_optimize): Likewise. - * regrename.c (copyprop_hardreg_forward): Likewise. - * resource.c (init_resource_info): Likewise. - * sched-rgn.c (build_control_flow, find_rgns, compute_trg_info, - init_regions, schedule_insns): Likewise. - * ssa-ccp.c (ssa_const_prop): Likewise. - * ssa-dce.c (ssa_eliminate_dead_code): Likewise. - * ssa.c (compute_dominance_frontiers, - compute_iterated_dominance_frontiers, convert_to_ssa): Likewise. - - * df.c (df_refs_unlink): Fix FOR_EACH_BB usage (in #if 0'ed code) - * gcse.c (alloc_rd_mem, alloc_avail_expr_mem): Use n_blocks for vector - sizes consistently. - -Mon May 27 14:28:12 CEST 2002 Jan Hubicka - - * basic-block.h (can_hoist_p, hoist_insn_after, hoist_insn_to_edge): - new. - * rtlanal.c (hoist_test_store, can_hoist_insn_p, hoist_update_store, - hoist_insn_after, hoist_insn_to_edge): New. - -Mon May 27 12:14:02 CEST 2002 Jan Hubicka - - * basic-block.h (PEOP_SCAN_DEAD_STORES): New. - (PROP_FINAL): Include. - * flow.c (life_analysis, update_life_info, - init_propagate_block_info, mark_set_1, mark_used_rgs): - Support SCAN_DEAD_STORE. - -2002-05-27 Neil Booth - - * c-common.c (c_common_init): Set CPP arithmetic precision. - * cppexp.c (cpp_num_part): Move typedef ... - * cpphash.h: ...here; make unsigned HOST_WIDE_INT. - * cppinit.c (cpp_create_reader): Default to host long arithmetic. - (sanity_checks): Update. - -2002-05-26 Geoffrey Keating - - * Makefile.in (INSTALL_HEADERS): Add 'install-mkheaders'. - (mkheaders): New rule. - (install-mkheaders): New rule. - * configure.in (all_outputs): Add mkheaders. - * configure: Regenerate. - * mkheaders.in: New file. - -2002-05-26 Jakub Jelinek - - * cse.c (fold_rtx): Don't optimize if SUBREG changes mode class. - -2002-05-26 Andreas Jaeger - - * cfg.c (dump_flow_info): Remove extra argument to fprintf. - -2002-05-26 Neil Booth - - * cppexp.c (possible_sum_sign, integer_overflow, left_shift, - right_shift): Remove. - (cpp_num, cpp_num_part, PART_PRECISION, HALF_MASK, LOW_PART, - HIGH_PART): New. - (struct op): Use cpp_num. - (num_zerop, num_eq, num_positive, num_greater_freq, num_trim, - num_part_mul, num_unary_op, num_binary_op, num_negate, - num_bitwise_op, num_inequality_op, num_equality_op, num_mul, - num_div_op, num_lshift, num_rshift, append_digit): New. - (interpret_number, parse_defined, eval_token, reduce): Update - for two-integer arithmetic. - (binary_handler): New typedef. - (optab): Update. - (COMPARE, EQUALITY, BITWISE, MINMAX, UNARY, SHIFT): Delete. - (_cpp_parse_expr, reduce): Update to handle two-integers. - * cpplib.c (_cpp_test_assertion): Back up on CPP_EOF. - -2002-05-26 Marek Michalkiewicz - - * config/avr/avr-protos.h (avr_out_sbxx_branch): Declare. - * config/avr/avr.c (jump_over_one_insn_p): Take length of the - branch insn into account, do not assume 1. - (avr_out_sbxx_branch): New function. Optimize cases of skipping - over single word insn. Handle upper half of I/O space too. - * config/avr/avr.md (*sbrx_branch): Use it. - (*sbrx_and_branchhi, *sbrx_and_branchsi): Likewise. - (*sbix_branch, *sbix_branch_bit7): Likewise. - (*sbix_branch_tmp, *sbix_branch_tmp_bit7): New. - Use RTL peepholes to optimize register operand sign tests. - -2002-05-26 Marek Michalkiewicz - - * config/avr/avr.c (avr_asm_only_p): New variable. - (avr_override_options): Set it here if AVR1. - (asm_file_start): Test it here, report an error if set. - -2002-05-26 Kazu Hirata - - * alias.c: Fix formatting. - * attribs.c: Likewise. - * bb-reorder.c: Likewise. - * bitmap.c: Likewise. - * bitmap.h: Likewise. - * builtins.c: Likewise. - -Sun May 26 14:00:44 CEST 2002 Jan Hubicka - - * reload.c (find_valid_class): Accept new argument DEST, - choose class accordingly. - (push_reload): Update callers. - -2002-05-26 Andreas Jaeger - - * combine.c (combine_instructions): Do not indent #if for - traditional C. - -2002-05-25 Richard Henderson - - * c-pragma.c (apply_pragma_weak): Convert value identifier to - string for decl_attributes. - (handle_pragma_weak): Call assemble_alias if we're modifying - an existing decl. - -2002-05-25 Richard Henderson - - PR target/6788 - * config/sparc/sparc.c (sparc_output_mi_thunk): New implementation - using rtl instead of fprintf. - * config/sparc/sparc.h (ASM_OUTPUT_MI_THUNK): Use it. - * config/sparc/sparc-protos.h: Update. - -2002-05-25 Neil Booth - - * Makefile.in (C_COMMON_H): Fix. - Update other targets. - * c-common.c: Don't include c-lex.h. - (builtin_define_with_value): Make static and prototype. - (builtin_define_std): Move from c-lex.h. - * c-common.h (init_c_lex): Move from c-lex.h. - * c-decl.c: Don't include c-lex.h. - (make_pointer_declarator): Move from c-parse.in. - * c-lex.c: Don't include c-lex.h. - * c-lex.h: Remove. - * c-parse.in: Don't include c-lex.h; include c-pragma.h. - (make_pointer_declarator): Move to c-decl.c. - * c-pragma.c: Don't include c-lex.h. - * c-pragma.h (yydebug, YYDEBUG, parse_in, c_lex): Move from c-lex.h. - * c-tree.h (make_pointer_declarator): New. -doc: - * passes.texi, tm.texi: Update. -objc: - * Make-lang.in: Update and correct. - * objc-act.c: Don't include c-lex.h or cpplib.h. -treelang: - * treetree.c: Don't include c-lex.h. -config: - * darwin-c.c: Don't include c-lex.h. - * c4x/c4x-c.c: Don't include c-lex.h. - * c4x/t-c4x: Update. - * i370/i370-c.c: Don't include c-lex.h. - * i370/t-i370: Update. - * i960/i960-c.c: Don't include c-lex.h. - * i960/i960.c: Don't include cpplib.h, c-lex.h or c-pragma.h. - * i960/t-960bare: Update. - * i960/t-vxworks: Update. - * rs6000/rs6000-c.c: Don't include c-lex.h; include c-pragma.h. - * rs6000/t-darwin: Update. - * rs6000/t-rs6000-c-rule: Update. - * v850/v850-c.c: Don't include c-lex.h. - * v850/v850.c: Don't include c-lex.h or cpplib.h. - - -2002-05-25 Kazu Hirata - - * tree.def: Fix typos. - * doc/install.texi: Likewise. - -2002-05-25 Richard Henderson - - * configure.in (HAVE_AS_TLS): Add ia64 test. - * configure: Rebuild. - * config/ia64/ia64.c (ia64_tls_size_string, ia64_tls_size): New. - (override_options): Set it. - (TARGET_HAVE_TLS): New. - (sdata_symbolic_operand): Look for 's'. - (tls_symbolic_operand): New. - (ia64_expand_load_address): Abort for tls symbols. - (gen_tls_get_addr): New. - (gen_thread_pointer): New. - (ia64_expand_move): Split out from movdi. Handle tls symbols. - (rtx_needs_barrier): Add new unspecs. - (ia64_encode_section_info): Handle tls symbols. - (ia64_strip_name_encoding): Strip two encoding chars. - * config/ia64/ia64.h (ia64_tls_size, ia64_tls_size_string): New. - (TARGET_TLS14, TARGET_TLS22, TARGET_TLS64): New. - (TARGET_OPTIONS): Add tls-size. - (ENCODE_SECTION_INFO_CHAR): Rename from SDATA_NAME_FLAG_CHAR. - * config/ia64/ia64.md (UNSPEC_LTOFF_DTPMOD, UNSPEC_LTOFF_DTPREL, - UNSPEC_DTPREL, UNSPEC_LTOFF_TPREL, UNSPEC_TPREL, UNSPEC_LD_BASE): New. - (movqi, movhi, movsi, movdi, movti): Use ia64_expand_move. - (movsf, movdf): Likewise. - (movdi_symbolic): Use match_scratch. Don't split if we won't - have a scratch availiable. - (load_ltoff_dtpmod, load_dtprel, load_dtprel64, load_dtprel22, - add_dtprel, add_dtprel14, add_dtprel22, load_ltoff_tprel, load_tprel, - load_tprel64, load_tprel22, add_tprel, add_tprel14, add_tprel22): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/sysv4.h (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use - sdata_symbolic_operand. - (ASM_OUTPUT_LABELREF): Strip two characters. - -2002-05-25 Kazu Hirata - - * combine.c (simplify_set): Remove an unnecessary subreg. - -2002-05-25 Marek Michalkiewicz - - * config/avr/avr.c (avr_handle_progmem_attribute): Handle TYPE_DECL. - - * config/avr/avr.h (BSS_SECTION_ASM_OP, ASM_OUTPUT_BSS): New. - -2002-05-25 Gabriel Dos Reis - - * toplev.c (output_clean_symbol_name): Fix another thinko. Gosh. - -2002-05-25 Roger Sayle - - * simplify-rtx.c (simplify_gen_relational): Simplify the RTX - (cond (compare x y) 0) into the equivalent (cond x y). - -2002-05-25 Gabriel Dos Reis - - * toplev.c (output_clean_symbol_name): Use xstrdup. Fix thinko. - -2002-05-24 Zack Weinberg - - * config.gcc: Remove all stanzas for previously obsoleted - systems. Where necessary, add explicit error stanzas to - prevent removed systems from being misidentified as something - else. Begin a fresh obsoletions list, with the systems that - were reprieved last round. - * doc/install.texi: Remove all mention of dead targets. - * fixinc/mkfixinc.sh: Likewise. - - * config/arm/arm.h: Bit 31 of target_flags is no longer - reserved. - - * config/1750a/1750a-protos.h, config/1750a/1750a.c, - config/1750a/1750a.h, config/1750a/1750a.md, config/1750a/ms1750.inc, - config/a29k/a29k-protos.h, config/a29k/a29k.c, config/a29k/a29k.h, - config/a29k/a29k.md, config/a29k/rtems.h, config/a29k/t-a29kbare, - config/a29k/t-vx29k, config/a29k/unix.h, config/a29k/vx29k.h, - config/alpha/osf12.h, config/alpha/osf2or3.h, - config/arm/arm-wince-pe.h, config/arm/arm.h, config/arm/riscix.h, - config/arm/riscix1-1.h, config/arm/rix-gas.h, config/arm/t-riscix, - config/clipper/clipper-protos.h, config/clipper/clipper.c, - config/clipper/clipper.h, config/clipper/clipper.md, - config/clipper/clix.h, config/convex/convex-protos.h, - config/convex/convex.c, config/convex/convex.h, - config/convex/convex.md, config/convex/fixinc.convex, - config/convex/proto.h, config/elxsi/elxsi-protos.h, - config/elxsi/elxsi.c, config/elxsi/elxsi.h, config/elxsi/elxsi.md, - config/i386/386bsd.h, config/i386/aix386.h, config/i386/aix386ng.h, - config/i386/bsd386.h, config/i386/dgux.h, config/i386/djgpp-rtems.h, - config/i386/isc.h, config/i386/iscdbx.h, config/i386/linux-oldld.h, - config/i386/next.h, config/i386/osf1-ci.asm, config/i386/osf1-cn.asm, - config/i386/osf1elf.h, config/i386/osf1elfgdb.h, config/i386/osfelf.h, - config/i386/osfrose.h, config/i386/rtems.h, config/i386/seq-gas.h, - config/i386/seq-sysv3.h, config/i386/seq2-sysv3.h, - config/i386/sequent.h, config/i386/sun.h, config/i386/sun386.h, - config/i386/t-dgux, config/i386/t-next, config/i386/t-osf, - config/i386/t-osf1elf, config/i860/bsd-gas.h, config/i860/bsd.h, - config/i860/fx2800.h, config/i860/i860-protos.h, config/i860/i860.c, - config/i860/i860.h, config/i860/i860.md, config/i860/mach.h, - config/i860/paragon.h, config/i860/sysv3.h, config/i860/sysv4.h, - config/i860/t-fx2800, config/i860/varargs.asm, config/m68k/a-ux.h, - config/m68k/altos3068.h, config/m68k/apollo68.h, - config/m68k/aux-crt1.c, config/m68k/aux-crt2.asm, - config/m68k/aux-crtn.asm, config/m68k/aux-exit.c, - config/m68k/aux-low.gld, config/m68k/aux-mcount.c, - config/m68k/auxas.h, config/m68k/auxgas.h, config/m68k/auxgld.h, - config/m68k/auxld.h, config/m68k/ctix.h, config/m68k/dpx2.h, - config/m68k/dpx2.ifile, config/m68k/dpx2cdbx.h, config/m68k/dpx2g.h, - config/m68k/isi-nfp.h, config/m68k/isi.h, config/m68k/lynx-ng.h, - config/m68k/lynx.h, config/m68k/math-3300.h, config/m68k/news.h, - config/m68k/news3.h, config/m68k/news3gas.h, config/m68k/newsgas.h, - config/m68k/next.h, config/m68k/next21.h, config/m68k/rtems.h, - config/m68k/t-aux, config/m68k/t-lynx, config/m68k/t-next, - config/m68k/x-next, config/m88k/dgux.h, config/m88k/dgux.ld, - config/m88k/dguxbcs.h, config/m88k/dolph.h, config/m88k/dolphin.ld, - config/m88k/luna.h, config/m88k/m88k-coff.h, config/m88k/sysv3.h, - config/m88k/t-bug, config/m88k/t-dgux, config/m88k/t-dgux-gas, - config/m88k/t-dguxbcs, config/m88k/t-dolph, config/m88k/t-m88k-gas, - config/m88k/t-tekXD88, config/m88k/tekXD88.h, config/m88k/tekXD88.ld, - config/mips/bsd-4.h, config/mips/bsd-5.h, config/mips/dec-bsd.h, - config/mips/dec-osf1.h, config/mips/elflorion.h, - config/mips/iris4loser.h, config/mips/mips-5.h, config/mips/news4.h, - config/mips/news5.h, config/mips/nws3250v4.h, config/mips/osfrose.h, - config/mips/svr3-4.h, config/mips/svr3-5.h, config/mips/svr4-4.h, - config/mips/svr4-5.h, config/mips/svr4-t.h, config/mips/t-bsd, - config/mips/t-bsd-gas, config/mips/t-svr3, config/mips/t-svr3-gas, - config/mips/t-svr4, config/mips/t-svr4-gas, config/mips/t-ultrix, - config/mips/ultrix.h, config/nextstep-protos.h, config/nextstep.c, - config/nextstep.h, config/nextstep21.h, config/ns32k/encore.h, - config/ns32k/merlin.h, config/ns32k/pc532-mach.h, - config/ns32k/pc532-min.h, config/ns32k/pc532.h, - config/ns32k/sequent.h, config/ns32k/tek6000.h, - config/ns32k/tek6100.h, config/ns32k/tek6200.h, config/pj/lib1funcs.S, - config/pj/linux.h, config/pj/pj-protos.h, config/pj/pj.c, - config/pj/pj.h, config/pj/pj.md, config/pj/pjl.h, config/pj/t-pj, - config/sparc/rtems.h, config/we32k/we32k-protos.h, - config/we32k/we32k.c, config/we32k/we32k.h, config/we32k/we32k.md: - Delete file. - -2002-05-24 Richard Henderson - - * flags.h (TLS_MODEL_GLOBAL_DYNAMIC): Set to 1. - * toplev.c (flag_tls_default) Set to TLS_MODEL_GLOBAL_DYNAMIC. - * config/i386/i386.c (tls_model_chars): Add leading space. - (tls_symbolic_operand): Don't bias by 1. - (legitimize_address): Don't unbias by 1. - -2002-05-24 Toshiyasu Morita - - * lcm.c (optimize_mode_switching): Change bb used as indices - to bb->index. - -2002-05-24 Richard Henderson - - * config/ia64/ia64.c (ia64_reorg): Use update_life_info instead - of update_life_info_in_dirty_blocks. - -2002-05-24 Jakub Jelinek - - PR other/6782 - * final.c (get_mem_expr_from_op): Return 0 if op is NULL. - -2002-05-24 Neil Booth - - PR preprocessor/6780 - * cppmacro.c (enter_macro_context): Clear state.angled_headers. - -2002-05-24 Jim Blandy - - * dwarf2out.c (dwarf2out_finish): Don't forget to emit a final - entry with a type code of zero, marking the end of the compilation - unit's macro info. - -2002-05-24 Richard Henderson - - * varasm.c (asm_output_bss): Always output one byte. - * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. - -2002-05-24 Bryce McKinlay - - * tree.c (decl_type_context): Return NULL_TREE if decl's context is a - namespace. - -2002-05-24 Andreas Jaeger - - * ggc-page.c (alloc_page): Cast variables of type size_t to - unsigned long, adjust printf format string. - (ggc_alloc): Likewise. - (ggc_print_statistics): Likewise. - (ggc_print_statistics): Correct printf format string for SCALE to - use unsigned long. - -2002-05-24 Danny Smith - - * config/i386/mingw32.h (CPP_SPEC): Remove -remap. - -2002-05-23 Gabriel Dos Reis - Zack Weinberg - - * config/i386/mingw32.h (OUTPUT_QUOTED_STRING): Properly output - quoted strings. - * dwarf2out.c (lookup_filename): Properly quote filename in .file - directive in assembly file. - * config/m68k/dpx2.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise. - * config/m88k/m88k.h (ASM_OUTPUT_SOURCE_FILENAME): Likewise. - * config/pj/pj.h (ASM_FILE_START): Likewise. - * config/rs6000/xcoff.h (ASM_FILE_START): Likewise. - * config/avr/avr.c (asm_file_end): Likewise. - * toplev.c (output_quoted_string): Handle possibly signed plain - char. - * toplev.h (output_clean_symbol_name): Declare - * toplev.c (output_clean_symbol_name): Define. - * config/alpha/alpha.c (unicosmk_output_module_name): Use it. - * config/1750a/1750a.h (ASM_FILE_START): Likewise. - -2002-05-24 Alan Modra - - * config/rs6000/rs6000.c (output_toc): Mask longs to 32 bits. - -2002-05-23 Vladimir Makarov - - * genautomata.c (reserv_sets_hash_value): Use shift equal to 3/4 - of size of unsigned. - -2002-05-23 Richard Henderson - - * configure.in (HAVE_AS_TLS): New test. - * config.in, configure: Rebuild. - * config/i386/i386.c (TARGET_HAVE_TLS): Set if HAVE_AS_TLS. - (ix86_tls_dialect_string, ix86_tls_dialect): New. - (override_options): Set it. - (tls_model_chars, tls_symbolic_operand): New. - (tls_symbolic_operand_1, global_dynamic_symbolic_operand): New. - (local_dynamic_symbolic_operand, initial_exec_symbolic_operand): New. - (local_exec_symbolic_operand): New. - (get_pic_label_name): Merge into output_set_got. - (ix86_asm_file_end): Emit pic_label_name if defined. - (legitimate_constant_p, constant_address_p): New. - (legitimate_pic_operand_p): New. - (legitimate_pic_address_disp_p): Handle GOTTPOFF, NTPOFF, DTPOFF. - (legitimate_address_p): Likewise. - (ix86_encode_section_info): Rename from i386_; handle tls decls. - (ix86_strip_name_encoding): New. - (get_thread_pointer): New. - (legitimize_address): Handle tls symbols. - (output_pic_addr_const): Handle GOTTPOFF, TPOFF, NTPOFF, DTPOFF. - Remove UNSPEC_PLT. - (struct machine_function): Add some_ld_name. - (get_some_local_dynamic_name, get_some_local_dynamic_name_1): Set it. - (print_operand) [&]: Use it. Handle UNSPEC_TP. - (output_addr_const_extra): New. - (maybe_get_pool_constant): New. - (ix86_split_to_parts): Use it. - (ix86_expand_move): Handle tls symbols. - (ix86_tls_get_addr): New. - * config/i386/i386.h (TARGET_GNU_TLS, TARGET_SUN_TLS): New. - (TARGET_OPTIONS): Add tls-dialect. - (CONSTANT_ADDRESS_P): Use new out-of-line function. - (LEGITIMATE_CONSTANT_P): Likewise. - (LEGITIMATE_PIC_OPERAND_P): Likewise. - (TARGET_STRIP_NAME_ENCODING): New. - (ASM_OUTPUT_LABELREF): New. - (PRINT_OPERAND_PUNCT_VALID_P): Add '&'. - (OUTPUT_ADDR_CONST_EXTRA): New. - (PREDICATE_CODES): Update. - (ix86_tls_dialect, ix86_tls_dialect_string): New. - * config/i386/i386.md: Regroup and renumber unspec constants. - (tls_global_dynamic_gnu, tls_global_dynamic_sun): New. - (tls_local_dynamic_base_gnu, tls_local_dynamic_base_sun): New. - (tls_global_dynamic, tls_local_dynamic_base): New. - (tls_local_dynamic_once): New. - * config/i386/i386-protos.h: Update. - -2002-05-23 Richard Henderson - - * genemit.c (gen_insn): Print file:lineno comment before function. - (main): likewise. - * gensupport.c (struct queue_elem): Add filename member. - (queue_pattern): Initialize it; update all callers. - (process_include): Don't free filename. - (read_md_rtx): Set read_rtx_filename. - -2002-05-23 Hans Boehm - - * config/ia64/linux.h (IA64_GATE_AREA_END): Adjust for 64K pages. - -2002-05-23 Richard Henderson - - * config/i386/i386.c (output_set_got): Fix typo in pic no-deep case. - -2002-05-23 Richard Henderson - - * doc/extend.texi (C++98 Thread-Local Edits): Update with - commentary from Mark. - -2002-05-23 Zdenek Dvorak - - * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): - Use FOR_EACH_BB macros to iterate over basic block chain. - * cfg.c (clear_edges, clear_bb_flags, dump_flow_info, - alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges): - Likewise. - * cfganal.c (set_edge_can_fallthru_flag, flow_call_edges_add, - find_unreachable_blocks, create_edge_list, verify_edge_list, - remove_fake_edges, add_noreturn_fake_exit_edges, - flow_preorder_transversal_compute, flow_dfs_compute_reverse_execute): - Likewise. - * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks, - find_sub_basic_blocks): Likewise. - * cfgcleanup.c (try_optimize_cfg, delete_unreachable_blocks): - Likewise. - * cfglayout.c (record_effective_endpoints, cleanup_unconditional_jumps): - Likewise. - * cfgloop.c (flow_loops_cfg_dump, flow_loops_find): - Likewise. - * cfgrtl.c (compute_bb_for_insn, tidy_fallthru_edges, - commit_edge_insertions, commit_edge_insertions_watch_calls, - print_rtl_with_bb, verify_flow_info, purge_all_dead_edges): Likewise. - * combine.c (combine_instructions, reg_dead_at_p): Likewise. - * conflict.c (conflict_graph_compute): Likewise. - * df.c (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1, - df_modified_p, df_refs_unlink, df_dump): Likewise. - * dominance.c (calc_dfs_tree, calculate_dominance_info): Likewise. - * final.c (compute_alignments): Likewise. - * flow.c (update_life_info, update_life_info_in_dirty_blocks, - delete_noop_moves, calculate_global_regs_live, allocate_bb_life_data, - count_or_remove_death_notes): Likewise. - * gcse.c (oprs_unchanged_p, record_last_reg_set_info, - compute_hash_table, compute_kill_rd, compute_rd, compute_ae_kill, - classic_gcse, compute_transp, cprop, compute_pre_data, - compute_transpout, invalidate_nonnull_info, - delete_null_pointer_checks_1, delete_null_pointer_checks, - compute_code_hoist_vbeinout, hoist_code, compute_ld_motion_mems, - compute_store_table, build_store_vectors, store_motion): Likewise. - * global.c (global_conflicts, mark_elimination): Likewise. - * graph.c (print_rtl_graph_with_bb): Likewise. - * haifa-sched.c (sched_init): Likewise. - * ifcvt.c (if_convert): Likewise. - * lcm.c (compute_antinout_edge, compute_laterin, compute_insert_delete, - compute_available, compute_nearerout, compute_rev_insert_delete, - optimize_mode_switching): Likewise. - * local-alloc.c (local_alloc, update_equiv_regs): Likewise. - * predict.c (estimate_probability, note_prediction_to_br_prob, - propagate_freq, counts_to_freqs, expensive_function_p, - estimate_bb_frequencies): Likewise. - * profile.c (instrument_edges, get_exec_counts, - compute_branch_probabilities, compute_checksum, branch_prob, - find_spanning_tree): Likewise. - * recog.c (split_all_insns, peephole2_optimize): Likewise. - * reg-stack.c (reg_to_stack, convert_regs_entry, convert_regs): - Likewise. - * regclass.c (scan_one_insn, regclass): Likewise. - * regmove.c (mark_flags_life_zones, regmove_optimize, - record_stack_memrefs): Likewise. - * regrename.c (regrename_optimize, copyprop_hardreg_forward): Likewise. - * reload1.c (reload, reload_combine, fixup_abnormal_edges): Likewise. - * resource.c (find_basic_block): Likewise. - * sched-ebb.c (schedule_ebbs): Likewise. - * sched-rgn.c (is_cfg_nonregular, build_control_flow, - find_single_block_region, find_rgns, schedule_insns) - * sibcall.c (optimize_sibling_and_tail_recursive_call) - * ssa-ccp.c (optimize_unexecutable_edges, - ssa_ccp_df_delete_unreachable_insns): Likewise. - * ssa-dce.c (ssa_eliminate_dead_code): Likewise. - * ssa.c (find_evaluations, compute_dominance_frontiers_1, - rename_block, convert_to_ssa, compute_conservative_reg_partition, - compute_coalesced_reg_partition, rename_equivalent_regs, - convert_from_ssa): Likewise. - * config/ia64/ia64.c (emit_predicate_relation_info, process_epilogue, - process_for_unwind_directive): Likewise. - - * df.c (FOR_ALL_BBS): Removed. - * gcse.c (struct null_pointer_info): Type of current_block field - changed. - (struct reg_avail_info): Type of last_bb field changed. - * config/ia64/ia64.c (block_num): Removed. - (need_copy_state): Type changed. - (last_block): New. - -2002-05-23 Neil Booth - - * cppinit.c (mark_named_operators): Split out from init_builtins. - (cpp_finish_options): Call it from here instead. - -2002-05-23 Jason Thorpe - - * builtin-attrs.def: Update copyright years. - (ATTR_NONNULL): New attribute identifier. - (ATTR_NONNULL_1, ATTR_NONNULL_2, ATTR_NONNULL_3): New - attribute tree lists. - (DEF_FORMAT_ATTRIBUTE): Chain a nonnull attribute for the - format operand. - (ATTR_FORMAT_ARG_1, ATTR_FORMAT_ARG_2): Use... - (DEF_FORMAT_ARG_ATTRIBUTE): ...this to generate format_arg - attribute lists. Chain the appropriate nonnull attribute. - * c-format.c (check_format_arg): Remove null format string - warning. - * testsuite/gcc.dg/format/null-1.c: New test. - -2002-05-23 Rainer Orth - - * Makefile.in (ADAC): Define. - (SYSLIBS): Define. - (.SUFFIXES): Move before language makefile fragments. - (STAGE2_FLAGS_TO_PASS): Use stage CC as ADAC. - -2002-05-23 Mark Mitchell - - * varasm.c (make_decl_rtl): Don't allow weak variables to be - placed in common. - -Thu May 23 19:43:41 CEST 2002 Jan Hubicka - - * cfg.c (dump_flow_info): Print results of - maybe_hot/probably_never_executed predicates. - * toplev.c (open_dump_file): Print function frequency. - -2002-05-23 David S. Miller - - * cse.c (approx_reg_cost_1, approx_reg_cost): Recode to not use - regsets. - -2002-05-23 Jason Thorpe - - * c-common.c (warn_nonnull): Declare. - (c_common_attribute_table): Add "nonnull" attribute. - (handle_nonnull_attribute, check_function_nonnull, nonnull_check_p, - check_nonnull_arg, get_nonnull_operand, check_function_arguments, - check_function_arguments_recurse): New functions. - * c-common.h (warn_nonnull): Declare extern. - (check_function_arguments, check_function_arguments_recurse): New - prototypes. - * c-decl.c (c_decode_option): Add -Wnonnull option. - * c-format.c (set_Wformat): Set warn_nonnull if enabling - format checking. - (format_check_context): New structure. - (check_format_info_recurse): Remove recursion and rename to... - (check_format_arg): ...this. Update comment. - (check_format_info): Use check_function_arguments_recurse. - * c-typeck.c (build_function_call): Call check_function_arguments - instead of check_function_format. - * doc/extend.texi: Document "nonnull" attribute. - * doc/invoke.texi: Docuemnt -Wnonnull option. - * testsuite/gcc.dg/nonnull-1.c: New test. - * testsuite/gcc.dg/nonnull-2.c: New test. - -2002-05-23 David S. Miller - - * basic-block.h (CLEANUP_NO_INSN_DEL): Define it. - * cfgcleanup.c (cleanup_cfg): If it is set do not - attempt to delete trivially dead insns. - * except.c (finish_eh_generation): Pass it to cleanup_cfg. - * toplev.c (rest_of_compilation): Document non-trivial aspect - the RTL before optimize_save_area_alloca is run. - -2002-05-23 Neil Booth - - * c-lex.c (indent_level): Remove. - (cb_file_change, c_lex): Remove indent level handling. - * c-lex.h (indent_level): Remove. - * input.h (struct file_stack): Remove indent_level. - * toplev.c (push_srcloc): Remove indent_level handling. - -2002-05-23 Jakub Jelinek - - PR target/6753 - * config/i386/i386.md (sse_movdfcc, sse_movdfcc_eq): Use Y instead - of x in constraints for clarity. - (sse_mov?fcc split): abort if op2 == op3. - (sse_movsfcc_const0_1, sse_movsfcc_const0_2, sse_movsfcc_const0_3, - sse_movsfcc_const0_4): Add earlyclobber. - (sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3, - sse_movdfcc_const0_4): Likewise. Use DFmode, not SFmode. - Use Y instead of x in constraints. - -2002-05-23 Richard Henderson - - * doc/extend.texi (C99 Thread-Local Edits): New subsection. - (C++98 Thread-Local Edits): New subsection. - - * config/i386/i386.c, config/i386/i386.h: Tidy comments and whitespace. - (ix86_arch): Set type to enum processor_type. - - * config/i386/i386.md (movsi_1, movdi_1_rex64): Use - LEGITIMATE_PIC_OPERAND_P not SYMBOLIC_CONST. - -2002-05-23 Jakub Jelinek - - * configure.in: Fix as version test for binutils 2.12.1 releases - (without dates). - * configure: Rebuilt. - -2002-05-23 Richard Henderson - - * config/i386/i386.c (get_pic_label_name): New. - (load_pic_register): Remove. - (output_set_got): New. - (ix86_expand_prologue): Use gen_set_got; mark insn REG_MAYBE_DEAD. - * config/i386/i386.md (UNSPEC_SET_GOT): New. - (UNSPECV_PROLOGUE_SET_GOT, UNSPECV_PROLOGUE_GET_PC): Remove. - (prologue_set_got, prologue_get_pc): Remove. - (set_got, set_got_nopic, set_got_deep, set_got_nodeep): New. - (builtin_setjmp_receiver): Use gen_set_got. - * config/i386/i386-protos.h: Update. - -Thu May 23 09:22:23 CEST 2002 Jan Hubicka - - * gcse.c (hash_expr): Do not use alias set for hashing. - -2002-05-22 Kevin Buettner - - * dbxout.c (dbxout_class_name_qualifiers): New function. - (dbxout_symbol): Output class/struct qualifiers for a .stabs entry. - -2002-05-23 Neil Booth - - * cpperror.c (_cpp_begin_message): No special casing - of CPP_FATAL_LIMIT. - * cppinit.c (sanity_checks): s/DL_FATAL/DL_ICE/. - (output_deps, cpp_handle_option, cpp_post_options): Use DL_ERROR. - * cpplib.c (do_include_common): Use DL_ERROR. - * cpplib.h (CPP_FATAL_LIMIT, CPP_FATAL_ERRORS, DL_FATAL): Remove. - (DL_ICE): Renumber. - * fix-header.c (read_scan_file): Update. - -2002-05-22 Richard Henderson - - * config/i386/i386.c (ix86_expand_call): New function, extracted - from md call patterns. Add pic_offset_table_rtx to - CALL_INSN_FUNCTION_USAGE when needed. - * config/i386/i386.md (call_pop, call): Use ix86_expand_call. - (call_value_pop, call_value, untyped_call): Likewise. - (call_exp, call_value_exp): Remove. - * config/i386/i386-protos.h: Update. - -2002-05-22 Richard Henderson - - * varasm.c (default_section_type_flags): Check for VAR_DECL - before using DECL_THREAD_LOCAL. - -2002-05-22 David Edelsohn - - * config/rs6000/aix43.h (LINK_SPEC): Add PE initializer. - (STARTFILE_SPEC): Delete PE crt0.o. - * config/rs6000/aix51.h: Same. - * config/rs6000/rs6000.c: Use TARGET_XCOFF, not OBJECT_FORMAT_COFF. - * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Append [DS] to - function descriptor symbol. Use RS6000_OUTPUT_BASENAME. - (ASM_OUTPUT_DEF_FROM_DECLS): Use RS6000_OUTPUT_BASENAME. - * config/rs6000/xcoff.h (ASM_OUTPUT_DEF): Define. - -2002-05-22 Richard Henderson - - * varasm.c (default_section_type_flags): Handle tls data and - default sections. - (default_unique_section): Handle tls sections. - -2002-05-23 Alan Modra - - * configure.in (CROSS): Define NATIVE_CROSS. - * configure: Regenerate. - * gcc.c (STARTFILE_PREFIX_SPEC): Define. - (startfile_prefix_spec): New var. - (static_specs): Add startfile_prefix_spec. - (do_spec_2): Split out from.. - (do_spec): ..here. - (main): Process startfile_prefix_spec. - * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC) Change name of - dynamic linker. - (STARTFILE_PREFIX_SPEC): Define. - (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Rewrite without - absolute paths. - -2002-05-22 Kazu Hirata - - * cpperror.c: Fix formatting. - * cppexp.c: Likewise. - * cppfiles.c: Likewise. - * cpphash.c: Likewise. - * cpphash.h: Likewise. - * cppinit.c: Likewise. - * cpplex.c: Likewise. - * cpplib.c: Likewise. - * cppmacro.c: Likewise. - * cppmain.c: Likewise. - * cppspec.c: Likewise. - -2002-05-22 Jakub Jelinek - - * combine.c (force_to_mode): Use gen_int_mode. - Don't clear CONST_INT bits outside of mode. - -2002-05-22 Richard Henderson - - * fixinc/inclhack.def (thread_keyword): Match __thread as last arg. - * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild. - -2002-05-22 Jakub Jelinek - - PR c/6643 - * emit-rtl.c (widen_memory_access): Only call compare_tree_int - if DECL_SIZE_UNIT is INTEGER_CST. - -2002-05-22 Richard Henderson - - * flow.c (life_analysis): Delete broken reg_label check. - -2002-05-22 Richard Henderson - - * fixinc/inclhack.def (thread_keyword): Allow as any prototype arg. - * fixinc/fixincl.x, fixinc/tests/base/pthread.h: Rebuild. - -Wed May 22 18:39:57 2002 J"orn Rennecke - - * t-sh (LIB2FUNCS_EXTRA): Now embed-bb.c. - (embed-bb.c): New rule. - * t-sh64 (LIB2FUNCS_EXTRA): Don't change. - * config/sh/embed_bb.c: Delete. - -Wed May 22 18:25:29 2002 J"orn Rennecke - - * c-common.c (cb_register_builtins): Don't indent '#' of #define. - -2002-05-22 Kazu Hirata - - * config/h8300/h8300.md (*andorqi3): New. - -2002-05-22 Neil Booth - - PR preprocessor/6517 - * Makefile.in: Update. - * c-common.c (c_common_post_options): Add preprocessor - errors to the error count. - * c-lang.c (c_post_options): Kill. - (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. - * hooks.h: Add header guards. - * langhooks-def.h: Include hooks.h. - (LANG_HOOKS_POST_OPTIONS): Update. - * langhooks.h (struct lang_hooks): Update post_options. - * toplev.c (parse_options_and_default_flags): Update. -objc: - * objc-lang.c (objc_post_options): Kill. - (LANG_HOOKS_POST_OPTIONS): Use c_common_post_options. - -2002-05-21 Bruce Korb - - * fixinc/tests/base/pthread.h(THREAD_KEYWORD_CHECK): add fix check - * fixinc/inclhack.def(thread_keyword): use c_fix = format. - * fixinc/fixincl.x: regen. - -2002-05-21 Kazu Hirata - - * cfgbuild.c: Fix formatting. - * cfg.c: Likewise. - * cfgcleanup.c: Likewise. - * cfglayout.c: Likewise. - * cfgloop.c: Likewise. - * cfgrtl.c: Likewise. - -2002-05-21 Richard Henderson - - * c-common.h (enum rid): Add RID_THREAD. - * c-decl.c (start_decl): Do not set DECL_COMMON for tls variables. - (grokdeclarator): Grok __thread. - * c-parse.in (reswords): Add __thread. - (rid_to_yy): Add RID_THREAD. - - * tree.h (DECL_THREAD_LOCAL): New. - (struct tree_decl): Add thread_local_flag. - * print-tree.c (print_node): Dump DECL_THREAD_LOCAL. - * tree.c (staticp): TLS variables are not static. - - * target-def.h (TARGET_HAVE_TLS): New. - * target.h (have_tls): New. - * output.h (SECTION_TLS): New. - * varasm.c (assemble_variable): TLS variables can't be common for now. - (default_section_type_flags): Handle .tdata and .tbss. - (default_elf_asm_named_section): Handle SECTION_TLS. - (categorize_decl_for_section): Handle DECL_THREAD_LOCAL. - - * flags.h (flag_tls_default): Declare. - * toplev.c (flag_tls_default): Define. - (display_help): Display help for it. - (decode_f_option): Set it. - - * doc/extend.texi (Thread-Local): New node describing language-level - thread-local storage. - * doc/invoke.texi (-ftls-model): Document. - - * fixinc/inclhack.def (thread_keyword): New. - * fixinc/fixincl.x: Rebuild. - -2002-05-21 Jeffrey A Law - - * optabs.c (expand_binop): For double-word integer multiplies, - do not compute intermediate results into something that is - not a register (such as a SUBREG or MEM). - - * i386.c (ix86_sched_reorder_ppro): Fix typo/thinko. - (ix86_sched_reorder): Make sure to initialize scheduling - data even when there's only one insn in the ready queue. - -2002-05-21 Vladimir Makarov - - * genautomata.c (reserv_sets_hash_value): Fix a typo. - -2002-05-21 Vladimir Makarov - - * genautomata.c (reserv_sets_hash_value): Define hash_value as - set_el_t. Transform the hash value into unsigned. - (output_cycle_reservs): Fix bug with output of repeated `nothing'. - (transform_3): Add code to process `(A,B)+(D,E)'. - -2002-05-21 NIIBE Yutaka - - * reload1.c (do_output_reload): Run delete_output_reload - only if optimizing. - -2002-05-21 Roger Sayle - - PR middle-end/6600 - * expr.c (STORE_MAX_PIECES): New macro to avoid immediate constants - larger than INTEGER_CST. (store_by_pieces_1): Use it here... - (can_store_by_pieces): ... and here to limit the largest mode used. - Add a comment to document this function. - -2002-05-21 Richard Henderson - - * flow.c (life_analysis): Fix test for deleted label. - -2002-05-21 Neil Booth - - * doc/tm.texi: Fix typo. - -2002-05-21 Zack Weinberg - - * c-common.c (c_common_init): Set options->unsigned_char from - flag_signed_char. - (cb_register_builtins): Define __STRICT_ANSI__ and - __CHAR_UNSIGNED__ here... - * cppinit.c (init_builtins): Not here. - (cpp_create_reader): unsigned_char option defaults to 0, not - !DEFAULT_SIGNED_CHAR. - (COMMAND_LINE_OPTIONS, cpp_handle_option): Lose -fsigned-char - and -funsigned-char. - - * cpphash.h (struct spec_nodes): Kill n__STRICT_ANSI__. - * cpphash.c (_cpp_init_hashtable): Don't set it. - * cppmacro.c (builtin_macro) [BT_STDC]: Use the language setting - directly. Clarify comment. - -2002-05-21 Zdenek Dvorak - - * bb-reorder.c (make_reorder_chain_1): Use prev_bb/next_bb to get to - neighboring basic blocks. Use ENTRY_BLOCK_PTR->next_bb instead of - BASIC_BLOCK (0). Use EXIT_BLOCK_PTR->prev_bb instead of - BASIC_BLOCK (n_basic_blocks - 1). - * cfganal.c (can_fallthru, flow_call_edges_add, - flow_preorder_transversal_compute): Too. - * cfgbuild.c (make_edges, find_basic_blocks, find_many_sub_basic_blocks, - find_sub_basic_blocks): Too. - * cfgcleanup.c (try_simplify_condjump, try_optimize_cfg): Too. - * cfglayout.c (skip_insns_after_block, fixup_reorder_chain, - fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge): Too. - * cfgrtl.c (tidy_fallthru_edges, verify_flow_info): Too. - * combine.c (this_basic_block): Type changed to basic_block. - (combine_instructions, set_nonzero_bits_and_sign_copies, try_combine, - nonzero_bits, num_sign_bit_copies, get_last_value_validate, - get_last_value, distribute_notes, distribute_links): Too. - * final.c (compute_alignments): Too. - * flow.c (regno_uninitialized, regno_clobbered_at_setjmp): Too. - * function.c (thread_prologue_and_epilogue_insns): Too. - * gcse.c (compute_code_hoist_vbeinout): Too. - * global.c (build_insn_chain): Too. - * ifcvt.c (find_if_block, find_cond_trap): Too. - * predict.c (last_basic_block_p, note_prediction_to_br_prob): Too. - * regmove.c (regmove_optimize): Too. - * resource.c (find_basic_block): Too. - * sched-ebb.c (schedule_ebbs): Too. - * ssa-dce.c (find_control_dependence, find_pdom): Too. - -2002-05-21 Andreas Jaeger - - * cppinit.c (sanity_checks): Avoid printf mismatch warnings. - -2002-05-21 Richard Henderson - - * reg-stack.c (swap_rtx_condition, subst_stack_regs_pat): Use - unspec names, not numbers. - -2002-05-21 Joseph S. Myers - - * doc/sourcebuild.texi: Mention snapshot-README and - snapshot-index.html as needing updating for new front ends. - -2002-05-21 Kaveh R. Ghazi - - * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): Avoid warnings when - disabling checking, and avoid multiple evaluation of RTX. - -2002-05-21 Richard Earnshaw - - * bitmap.c (bitmap_find_bit): Return early if we have the correct - element cached. - -Tue May 21 10:51:54 CEST 2002 Jan Hubicka - - * profile.c (gen_edge_profiler): Set alias set before the memory is - used. - -2002-05-20 David S. Miller - - * cselib.c (max_value_regs): New. - (cselib_lookup, cselib_invalidate_regno): Initialize it when - adding new entries to the REG_VALUES table and we are dealing with - a hard register. - (clear_table): Initialize it. - (cselib_invalidate_regno): Use it to determine which hard - registers to scan when mode is not VOIDmode. - -2002-05-20 Duraid Madina - - * tradcpp.c (fixup_newlines): Use old-style function header. - -2002-05-20 Krister Walfridsson - - * reload1.c (reload_cse_simplify): Fix typo in rtx code check. - -2002-05-20 H.J. Lu (hjl@gnu.org) - - Base on suggestions from Zhang Fuxin : - - * config/mips/mips.h (DFMODE_NAN): Defined. - (SFMODE_NAN): Likewise. - -2002-05-20 Dale Johannesen - - * combine.c (cant_combine_insn_p): Back out my - previous patch. - -2002-05-20 Kazu Hirata - - * params.c: Fix formatting. - * params.h: Likewise. - * predict.c: Likewise. - * prefix.c: Likewise. - * print-rtl.c: Likewise. - * print-tree.c: Likewise. - * profile.c: Likewise. - -2002-05-20 H.J. Lu (hjl@gnu.org) - - * gcc/config/mips/linux.h (SDB_DEBUGGING_INFO): Undefine. - -2002-05-20 Nick Clifton - - * config/arm/arm-wince-pe.h (ASM_SPEC): Pass -mcpu and -march - switches straight on to the assembler, do not abbreviate them. - * config/arm/elf.h (ASM_SPEC): As above. - * config/arm/semi.h (ASM_SPEC): As above. - * config/arm/unknown-elf-oabi.h (ASM_SPEC): As above. - * config/arm/xscale-coff.h (SUBTARGET_ASM_SPEC): Pass - -mcpu=xscale on to the assembler by default. - * config/arm/xscale-elf.h (SUBTARGET_ASM_SPEC): As above. - -2002-05-20 Richard Henderson - - * cse.c (canon_hash): Reorder do_not_record test. Always - allow pic_offset_table_rtx. - -2002-05-19 Toon Moene - - * optabs.c (expand_cmplxdiv_wide): Use complex_part_zero_p. - (expand_binop): Ditto (3 times). - -2002-05-19 Mark Mitchell - - * Makefile.in (distclean): Remove QMTest stuff. - (QMTEST_PATH): New variable. - (QMTESTFLAGS): Likewise. - (QMTESTRUNFLAGS): Likewise. - (QMTEST): Likewise. - (QMTEST_GPP_TESTS): Likewise. - (QMTEST_DIR): Likewise. - (QMTEST_DIR/context): New target. - (qmtest-g++): Likeise. - (qmtest-gui): Likewise. - (QMTEST_DIR/gpp-expected.qmr): Likewise. - -2002-05-19 Aldy Hernandez - - * config/rs6000/rs6000.h (FUNCTION_VALUE): Only return vectors in - an altivec register if TARGET_ALTIVEC. - - * config/rs600/rs6000.c (rs6000_emit_move): Change VECTOR_MODE_P - to ALTIVEC_VECTOR_MODE. - (rs6000_va_arg): Only vectors of type AltiVec are 16 byte aligned. - (rs6000_va_arg): Vectors may go in registers if they are not - altivec vectors. - -2002-05-19 Kazu Hirata - - * protoize.c: Fix formatting. - -2002-05-19 Richard Henderson - - * gensupport.c (init_include_reader): Merge into ... - (process_include): ... here. Simplify composite path creation. - Plug memory leaks. Fix file/line number tracking. Do not - process_define_cond_exec. Return void. - (process_rtx): Don't check process_include return value. - -2002-05-20 Zdenek Dvorak - - * basic_block.h (struct basic_block_def): Added prev_bb and next_bb - fields. - (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for - traversing basic block chain. - (create_basic_block_structure, create_basic_block): Declaration changed. - (link_block, unlink_block): Declare. - * cfg.c (entry_exit_blocks): Initialize new fields. - (link_block, unlink_block): New. - (expunge_block_nocompact): Unlink basic block. - (dump_flow_info): Print prev_bb/next_bb fields. - * cfgbuild.c (find_basic_blocks_1, find_basic_blocks): Modified. - * cfgcleanup.c (merge_blocks_move_predecessor_nojumps): Modified. - * cfglayout.c (fixup_reorder_chain, cfg_layout_duplicate_bb): Modified. - * cfgrtl.c (create_basic_block_structure, create_basic_block, - split_block, force_nonfallthru_and_redirect, split_edge): Modified. - (verify_flow_info): Check that list agrees with numbering. - -2002-05-19 Neil Booth - - * c-common.c (preprocessing_asm): New macro. - * c-lex.h (builtin_define, builtin_assert): Use pfile. -doc: - * tm.texi: Update. -config/alpha: - * alpha.h (CPLUSPLUS_CPP_SPEC): Remove. - (CPP_SPEC): Simplify. - (TARGET_CPU_CPP_BUILTINS): Update. - * freebsd.h (TARGET_OS_CPP_BUILTINS): New. - (CPP_SPEC): Simplify. - * linux.h (CPLUSPLUS_CPP_SPEC): Remove. - (TARGET_OS_CPP_BUILTINS): Update. - * osf.h (CPP_XFLOAT_SPEC): Kill. - (TARGET_OS_CPP_BUILTINS): Update. - (CPP_SUBTARGET_SPEC, SUBTARGET_EXTRA_SPECS): Simplify. - * osf5.h (CPP_XFLOAT_SPEC): Kill. - * vms.h (CPP_SUBTARGET_SPEC): Kill. - (TARGET_OS_CPP_BUILTINS): Update. - -2002-05-19 Richard Henderson - - * varasm.c (default_binds_local_p): Fix typo. - -2002-05-19 Marek Michalkiewicz - - * config/avr/avr.c (machine_dependent_reorg): Sign extend the - CONST_INT operand to the correct mode after adding 1 to it. - -2002-05-19 Mark Mitchell - - * config.gcc (powerpc-wrs-windiss*): New target. - -2002-05-19 Franz Sirl - - * config/rs6000/rs6000.md (ashrdi3_no_power): New. - (ashrdi3): Use it. - -2002-05-18 Mark Mitchell - - * configure.in (AC_CHECK_FUNCS): Add checks for scandir and - alphasort. - * config.in: Regenerated. - * configure: Regenerated. - -2002-05-19 Richard Henderson - - * target-def.h (TARGET_BINDS_LOCAL_P): New. - * target.h (struct gcc_target): Move boolean fields to the end. - Add binds_local_p. - * varasm.c (default_binds_local_p): New. - * output.h: Declare it. - - * config/alpha/alpha.c (alpha_encode_section_info): Use the new hook. - * config/cris/cris.c (cris_encode_section_info): Likewise. - * config/i386/i386.c (i386_encode_section_info): Likewise. - * config/ia64/ia64.c (ia64_encode_section_info): Likewise. - * config/sh/sh.c (sh_encode_section_info): Likewise. - - * doc/tm.texi (TARGET_IN_SMALL_DATA_P): New. - (TARGET_BINDS_LOCAL_P): New. - -2002-05-19 Richard Henderson - - * system.h (BLOCK_PROFILER, BLOCK_PROFILER_CODE, - FUNCTION_BLOCK_PROFILER, FUNCTION_BLOCK_PROFILER_EXIT, - MACHINE_STATE_SAVE, MACHINE_STATE_RESTORE): Poison. - - * toplev.c (display_help): Kill -a -ax help. - - * config/1750a/1750a.h, config/alpha/alpha.h, - config/clipper/clipper.h, config/dsp16xx/dsp16xx.h, - config/h8300/h8300.h, config/i960/i960.h, config/m68k/tower-as.h, - config/m88k/m88k.h, config/vax/vax.h, config/we32k/we32k.h: - (FUNCTION_BLOCK_PROFILER, BLOCK_PROFILER): Kill. - - * libgcc2.c [L_bb] (BLOCK_PROFILER_CODE): Kill. - * config/m68k/sun3.h (BLOCK_PROFILER_CODE): Kill. - - * config/i386/i386-protos.h (ix86_output_block_profiler): Kill. - (ix86_output_function_block_profiler): Kill. - * config/m68hc11/m68hc11.c (m68hc11_block_profiler): Kill. - (m68hc11_function_block_profiler): Kill. - * config/m68hc11/m68hc11-protos.h: Update. - * config/m88k/m88k.c (output_block_profiler): Kill. - (output_function_block_profiler): Kill. - * config/m88k/m88k-protos.h: Update. - -2002-05-19 Richard Henderson - - * system.h (STRIP_NAME_ENCODING): Poison it. - * output.h (STRIP_NAME_ENCODING): Remove. - (default_strip_name_encoding): Declare. - * target-def.h (TARGET_STRIP_NAME_ENCODING): New. - * target.h (strip_name_encoding): New. - * varasm.c (default_strip_name_encoding): New. - - * dwarf2asm.c, varasm.c, config/darwin.c, config/darwin.h, - config/alpha/alpha.c, config/arm/pe.c, config/avr/avr.c, - config/cris/cris.c, config/i386/cygwin.h, config/i386/interix.c, - config/i386/winnt.c, config/m32r/m32r.h, config/mcore/mcore-elf.h, - config/mcore/mcore-pe.h, config/mcore/mcore.c, config/mcore/mcore.h, - config/mips/mips.c, config/mn10200/mn10200.h, config/mn10300/mn10300.h, - config/pa/pa.c, config/pa/pa.h, config/pa/som.h, - config/rs6000/rs6000.c, config/rs6000/sysv4.h, config/rs6000/xcoff.h, - config/v850/v850.h: Use the hook, not the macro. - - * config/darwin-protos.h, config/darwin.c, config/darwin.h, - config/alpha/alpha.c, config/alpha/alpha.h, config/h8300/h8300.c, - config/h8300/h8300.h, config/i386/cygwin.h, config/i386/i386-interix.h, - config/i386/i386-protos.h, config/i386/win32.h, config/i386/winnt.c, - config/ia64/ia64.c, config/ia64/ia64.h, config/m32r/m32r.c, - config/m32r/m32r.h, config/mcore/mcore.c, config/mcore/mcore.h, - config/pa/pa.c, config/rs6000/rs6000.c, config/rs6000/sysv4.h, - config/rs6000/xcoff.h, config/sh/sh.c, config/sh/sh.h, - config/v850/v850.c, config/v850/v850.h: - Move STRIP_NAME_ENCODING to out-of-line function and add - TARGET_STRIP_NAME_ENCODING. - - * config/arm/arm.c, config/arm/arm.h, config/mmix/mmix-protos.h, - config/mmix/mmix.c, config/mmix/mmix.h: Replace STRIP_NAME_ENCODING - with TARGET_STRIP_NAME_ENCODING referencing existing function; - make function static. - - * xcoffout.c: Include target.h - * Makefile.in (xcoffout.o): Update. - - * config/avr/avr.c (avr_encode_section_info): Correct prototype. - * config/avr/avr.h (STRIP_NAME_ENCODING): Remove. - * config/rs6000/rs6000.c (rs6000_xcoff_unique_section): Mark - reloc argument unused. - * config/sh/sh.c (TARGET_ENCODE_SECTION_INFO): New. - - * doc/tm.texi (TARGET_STRIP_NAME_ENCODING): Update from previous - STRIP_NAME_ENCODING docs. - -2002-05-19 Andreas Jaeger - - * gengenrtl.c: Add prototype for excluded_rtx. - - * real.h: Add prototype for exact_real_truncate. - -2002-05-18 Richard Henderson - - * system.h (ENCODE_SECTION_INFO): Poison it. - * target-def.h (TARGET_ENCODE_SECTION_INFO): New. - * target.h (encode_section_info): New. - * varasm.c (make_decl_rtl, output_constant_def): Use it. - * hooks.c (hook_tree_int_void): New. - * hooks.h: Declare it. - - * config/darwin.h, config/alpha/alpha-protos.h, config/alpha/alpha.c, - config/alpha/alpha.h, config/arm/pe.h, config/avr/avr-protos.h, - config/avr/avr.c, config/avr/avr.h, config/c4x/c4x-protos.h, - config/c4x/c4x.c, config/c4x/c4x.h, config/cris/cris-protos.h, - config/cris/cris.c, config/cris/cris.h, config/i386/cygwin.h, - config/i386/win32.h, config/ia64/ia64-protos.h, config/ia64/ia64.c, - config/ia64/ia64.h, config/m32r/m32r-protos.h, config/m32r/m32r.c, - config/m32r/m32r.h, config/m68hc11/m68hc11-protos.h, - config/m68hc11/m68hc11.c, config/m68hc11/m68hc11.h, - config/mcore/mcore-protos.h, config/mcore/mcore.c, - config/mcore/mcore.h, config/mmix/mmix-protos.h, config/mmix/mmix.c, - config/mmix/mmix.h, config/rs6000/rs6000-protos.h, - config/rs6000/sysv4.h, config/stormy16/stormy16-protos.h, - config/stormy16/stormy16.c, config/stormy16/stormy16.h: - Replace ENCODE_SECTION_INFO with TARGET_ENCODE_SECTION_INFO - referencing existing function. Make function static. - - * config/a29k/a29k.c, config/a29k/a29k.h, config/arc/arc.c, - config/arc/arc.h, config/arm/arm.c, config/arm/arm.h, - config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c, - config/i370/i370.h, config/i386/i386-interix.h, config/i386/i386.c, - config/i386/i386.h, config/i386/interix.c, config/m88k/m88k.c, - config/m88k/m88k.h, config/mips/mips.c, config/mips/mips.h, - config/ns32k/ns32k.c, config/ns32k/ns32k.h, config/pa/pa.c, - config/pa/pa.h, config/romp/romp.c, config/romp/romp.h, - config/rs6000/linux64.h, config/rs6000/xcoff.h, config/s390/s390.c, - config/s390/s390.h, config/sh/sh.c, config/sh/sh.h, - config/sparc/sparc.c, config/sparc/sparc.h, config/v850/v850.c, - config/v850/v850.h, config/vax/vax.c, config/vax/vms.h, - config/xtensa/xtensa.c, config/xtensa/xtensa.h: - Move ENCODE_SECTION_INFO to out-of-line function and add - TARGET_ENCODE_SECTION_INFO. - - * config/darwin.h (ASM_DECLARE_FUNCTION_NAME): Use hook, not macro. - (ASM_DECLARE_OBJECT_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): Likewise. - - * config/arm/pe.h (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Rename - from SUBTARGET_* - (switch_to_section): Replace in_rdata case with in_readonly_data. - - * config/h8300/h8300.c (h8300_encode_label): Make static. - * config/h8300/h8300-protos.h: Update. - - * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): Rename - from rs6000_encode_section_info; make static. - (rs6000_xcoff_encode_section_info): New. - - * config/v850/v850.c (v850_encode_data_area): Make static. - * config/v850/v850-protos.h: Update. - - * config/vax/vax.c: Include flags.h. - (vms_select_section): Fix typo. - - * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update from previous - ENCODE_SECTION_INFO docs. - -2002-05-18 Richard Henderson - - * config/darwin.h (DARWIN_REGISTER_TARGET_PRAGMAS): Rename from - REGISTER_TARGET_PRAGMAS. - * config/rs6000/darwin.h (REGISTER_TARGET_PRAGMAS): Redefine. - - * config.gcc: Do not use rs6000-c.c on powerpc-darwin. - -2002-05-18 Richard Henderson - - * system.h (SELECT_RTX_SECTION): Poison. - * target-def.h (TARGET_ASM_SELECT_RTX_SECTION): New. - * target.h (select_rtx_section): New. - * varasm.c (output_constant_pool): Use it. - (default_select_rtx_section, default_elf_select_rtx_section): New. - * output.h: Declare them. - - * config/darwin.h (SELECT_RTX_SECTION): Move ... - * config/darwin.c (machopic_select_rtx_section): ... here. - * config/darwin-protos.h: Update. - - * config/nextstep.h (SELECT_RTX_SECTION): Move ... - * config/nextstep.c (machopic_select_rtx_section): ... here. - (nextstep_select_section): Rename variable to avoid macro clash. - * config/nextstep-protos.h: Update. - - * config/elfos.h, config/svr3.h, config/arm/aof.h, config/c4x/c4x.h, - config/i386/dgux.h, config/i386/osfrose.h, config/i386/sco5.h, - config/i386/svr3gas.h, config/i860/paragon.h, config/ia64/aix.h, - config/m32r/m32r.h, config/m68k/dpx2.h, config/m68k/lynx.h, - config/m68k/m68k.h, config/m68k/tower-as.h, config/m88k/dgux.h, - config/mcore/mcore-pe.h, config/mips/mips.h, config/mmix/mmix.h, - config/pa/pa-linux.h, config/pa/pa.h, config/romp/romp.h, - config/rs6000/lynx.h, config/rs6000/sysv4.h, config/s390/linux.h, - config/sparc/sysv4.h, config/xtensa/elf.h, config/xtensa/linux.h - (SELECT_RTX_SECTION): Remove. - - * config/darwin.h, config/elfos.h, config/nextstep.h, - config/ia64/aix.h, config/ia64/sysv4.h, config/alpha/alpha.c, - config/mips/mips.c, config/romp/romp.c, config/rs6000/sysv4.h, - config/rs6000/xcoff.h, config/s390/s390.c, config/sparc/aout.h, - config/sparc/lynx.h, config/xtensa/xtensa.c - (TARGET_ASM_SELECT_RTX_SECTION): New. - - * config/alpha/elf.h (SELECT_RTX_SECTION): Move ... - * config/alpha/alpha.c (alpha_elf_select_rtx_section): ... here. - * config/ia64/sysv4.h (SELECT_RTX_SECTION): Move ... - * config/ia64/ia64.c (ia64_select_rtx_section): ... here. - (ia64_aix_select_rtx_section): New. - * config/mips/iris6.h (READONLY_DATA_SECTION_ASM_OP): Undef before - redefining. - * config/mips/mips.c (mips_select_rtx_section): Make static. - Support ELF SHF_MERGE features. - * config/mips/mips-protos.h: Update. - * config/rs6000/xcoff.h (SELECT_RTX_SECTION): Move ... - * config/rs6000/rs6000.c (rs6000_xcoff_select_rtx_section): ... here. - (rs6000_elf_select_rtx_section): Rename from rs6000_select_rtx_section; - make static, fall back to default_elf_select_rtx_section. - * config/rs6000/rs6000-protos.h: Update. - * config/sparc/sparc.h (SELECT_RTX_SECTION): Move ... - * config/sparc/sparc.c (sparc_aout_select_rtx_section): ... here. - * config/sparc/sunos4.h (on_exit): Declare only if IN_LIBGCC2. - * config/romp/romp.c (romp_select_rtx_section): New. - * config/s390/s390.c (s390_select_rtx_section): New. - * config/xtensa/xtensa.c: Include output.h. Shuffle local function - declarations before target macro definition. - (xtensa_emit_call): Use static buffer. - (xtensa_select_rtx_section): New. - * config/xtensa/xtensa.h (MAX_INT_TYPE_SIZE): Remove. - (IMPLICIT_FIX_EXPR, EASY_DIV_EXPR): Remove. - (ASM_OUTPUT_POOL_PROLOGUE): Update call to resolve_unique_section. - - * doc/tm.texi (TARGET_ASM_SELECT_RTX_SECTION): Update from - SELECT_RTX_SECTION docs. - -Sun May 19 00:24:23 CEST 2002 Jan Hubicka - - * i386.md (movsi/movdi): Fix template. - (sse2 patterns): Set attributes consistently. - - * i386.md (pushqi2, ashrqi_*): Fix constraint. - -2002-05-18 Toon Moene - - * optabs.c (complex_part_zero_p): New. - * (expand_cmplxdiv_straight): Use it. - * (expand_cmplxdiv_wide): Ditto. - * (expand_binop): Ditto. - -2002-05-18 Richard Henderson - - * final.c (HAVE_READONLY_DATA_SECTION): New. - (shorten_branches): Use it instead of ifdefs. - * varasm.c (enum in_section): Add in_readonly_data. - (text_section, data_section): Tidy. - (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present. - - * config/darwin.h, config/nextstep.h, config/h8300/elf.h, - config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h - (READONLY_DATA_SECTION): Don't undef. - - * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h, - config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h, - config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef. - - * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h, - config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h, - config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h, - config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove. - - * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h, - config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h, - config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, - config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h, - config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h, - config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h, - config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h, - config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from - CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP. - - * config/elfos.h, config/netware.h, config/1750a/1750a.h, - config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h, - config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h, - config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h, - config/pa/pa64-hpux.h, config/sparc/litecoff.h - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. - - * config/elfos.h, config/netware.h, config/svr3.h, - config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h, - config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, - config/h8300/h8300.h, config/i386/i386-interix.h, - config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h, - config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove. - - * config/elfos.h, config/netware.h, config/svr3.h, - config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h, - config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h, - config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h, - config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove. - - * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h, - config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h, - config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h, - config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h, - config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h, - config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h, - config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h, - config/rs6000/sysv4.h, config/v850/v850.h - (EXTRA_SECTIONS): Remove in_const/in_rdata. - (EXTRA_SECTION_FUNCTIONS): Remove accompanying function. - - * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h, - config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h, - config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h, - config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section. - * config/alpha/alpha.c (alpha_start_function): Likewise. - (alpha_write_linkage): Likewise. - * config/m32r/m32r.c (m32r_select_section): Likewise. - * config/m88k/m88k.c (m88k_select_section): Likewise. - * config/mips/mips.c (mips_select_rtx_section): Likewise. - * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise. - (rs6000_elf_select_section): Likewise. - * config/v850/v850.c (v850_select_section): Likewise. - - * config/1750a/1750a.h, config/i860/sysv3.h - (READONLY_DATA_SECTION_ASM_OP): New. - READONLY_DATA_SECTION_ASM_OP. - * config/i386/interix.c, config/i386/winnt.c - (i386_pe_unique_section): Always use .rdata prefix. - * config/pa/som.h (readonly_data): Always switch to read-only section. - (READONLY_DATA_SECTION): Predicate on flag_pic. - * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis. - * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New. - (READONLY_DATA_SECTION): Update. - -2002-05-18 Jason Thorpe - - * c-common.c (c_common_post_options): Warn if -Wformat-zero-length - is used without -Wformat. - * c-common.h (warn_format_zero_length): Declare extern. - * c-decl.c (warn_options): Add "format-zero-length". - * c-format.c (warn_format_zero_length): Declare. - (set_Wformat): Set warn_format_zero_length for -Wformat. - (check_format_info): Only warn about zero-length formats if - warn_format_zero_length is true. Include the format type - name in the warning message. - * doc/invoke.texi: Document -Wformat-zero-length. - * testsuite/gcc.dg/format/zero-length-1.c: New test. - -2002-05-18 Kazu Hirata - - * timevar.c: Fix formatting. - * tlink.c: Likewise. - * toplev.c: Likewise. - * tree-dump.c: Likewise. - * tree-inline.c: Likewise. - -2002-05-18 Neil Booth - - * cppinit.c (cpp_post_options): If preprocessed, turn off - traditional. If traditional, turn off column numbers. - * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional. - * cpptrad.c (handle_newline): Update line_base. - (skip_comment): Handle -Wcomment. - -2002-05-17 Zack Weinberg - - * cppinit.c (struct builtin): Remove unused fields. - (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill. - (operator_array): New - was second half of builtin_array. - (init_builtins): Simplify loop over builtin_array/operator_array. - -2002-05-18 Neil Booth - - * defaults.h (UNIQUE_SECTION): Remove. - * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison. - -2002-05-17 Richard Henderson - - * expr.c (init_expr_once): Don't use start/end_sequence. - Use rtx_alloc instead of emit_insn. - * toplev.c (lang_dependent_init): Run init_expr_once here ... - (lang_independent_init): ... not here. - -2002-05-17 Jason Thorpe - - * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__. - -2002-05-17 Marek Michalkiewicz - - * config/avr/avr.c (avr_regs_to_save): New function. Also check - for fixed registers, possibly used for global register variables. - (initial_elimination_offset, avr_output_function_prologue, - avr_output_function_epilogue): Move common code to avr_regs_to_save. - -2002-05-17 Neil Booth - - * Makefile.in: Update for cpptrad.c. - * cpphash.h (struct cpp_buffer): New members for buffer - overlays. - (struct cpp_reader): New members for traditional output. - (_cpp_read_logical_line, _cpp_overlay_buffer): New. - * cppinit.c (cpp_create_reader): Set trad_line. - (cpp_destroy): Free trad_out_base if used. - (cpp_read_main_file): Overlay an empty buffer if traditional. - (cpp_finish_options): Don't do builtins. - (COMMAND_LINE_OPTIONS): Add -traditional-cpp. - (cpp_handle_option): Handle it. - * cpplex.c (continue_after_nul): New. - (_cpp_lex_direct): Use handle_nul. - * cpplib.h (struct cpp_options): New traditional option. - * cpptrad.c: New file. - -2002-05-17 Neil Booth - - * c-common.c (c_common_init_options): Use C89 for Objective-C, - and set the options flag. - * cppinit.c (lang_flags): Remove objc. - (lang_defaults): Remove OBJC and OBJCXX. - (set_lang): Update. - (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++. - (cpp_handle_option): Remove -+ and -lang-objc++. - For ObjC, just set a flag. - (print_help): Update. - * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX. - -2002-05-17 Rainer Orth - - * doc/install.texi (Specific, mips-sgi-irix6): Document need to - bootstrap with -mips3. - -2002-05-17 Kazu Hirata - - * final.c: Fix formatting. - * fix-header.c: Likewise. - * flow.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - -2002-05-17 David S. Miller - - PR c/6689, PR optimization/6615 - * local-alloc.c (struct equivalence): Rename 'src' to 'src_p' - and make it a pointer to rtx. Update comments. - (update_equiv_regs): When scanning for equivalences, record - address of SET_SRC (set) in reg_equiv[].src_p. Dereference - it while making the equiv replacements. - -2002-05-17 Rainer Orth - - * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo. - -2002-05-17 kaz Kojima - - * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P - when encoding visibility into SYMBOL_REF_FLAG. - -2002-05-17 Richard Sandiford - - * expr.c (force_operand): Fix reversed move. - -2002-05-17 Kurt Wall - - * doc/install.texi (Testing): Mention two common DejaGnu warnings - that can be ignored. - -2002-05-16 Gerald Pfeifer - - * doc/install.texi (Final install): Recommend to install into a - "clean" target directory. - -2002-05-17 Richard Henderson - - * config/ia64/ia64.md: Use braced strings instead of quoted strings - for code blocks. Tidy whitespace. - -2002-05-17 Richard Henderson - - * hooks.c (hook_tree_bool_false): New. - * hooks.h: Declare it. - * target-def.h (TARGET_ASM_SELECT_SECTION): New. - (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New. - * target.h (select_section, unique_section): New. - (in_small_data_p): New. - * varasm.c (resolve_unique_section): Use hooks instead of macros. - (variable_section, output_constant_def_contents): Likewise. - (default_select_section, default_unique_section): New. - (categorize_decl_for_section, default_elf_select_section): New. - * output.h: Declare them. - - * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove. - (TARGET_ASM_SELECT_SECTION): New. - (SELECT_SECTION): Move ... - * config/darwin.c (machopic_select_section): ... here. - * config/darwin-protos.h: Update. - - * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New. - (SELECT_SECTION): Move ... - * config/nextstep.c (nextstep_select_section): ... here. - * config/nextstep-protos.h: Update. - - * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION): New. - * config/svr3.h (SELECT_SECTION): Remove. - - * config/alpha/alpha.c (unicosmk_unique_section): Make static. - (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New. - (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New. - (alpha_encode_section_info): Use it. - * config/alpha/alpha-protos.h: Update. - * config/alpha/elf.h (DO_SELECT_SECTION): Remove. - (SELECT_SECTION, UNIQUE_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION): New. - * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove. - - * config/arm/pe.h (UNIQUE_SECTION): Remove. - (TARGET_ASM_UNIQUE_SECTION): New. - - * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New. - (avr_unique_section): Rename from unique_section; make static. - * config/avr/avr-protos.h: Update. - * config/avr/avr.h (UNIQUE_SECTION): Remove. - - * config/c4x/c4x.h (SELECT_SECTION): Remove. - - * config/i386/cygwin.h (UNIQUE_SECTION): Remove. - (TARGET_ASM_UNIQUE_SECTION): New. - * config/i386/i386-interix.h: Likewise. - * config/i386/win32.h: Likewise. - * config/i386/djgpp.h (UNIQUE_SECTION): Remove. - * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro. - * config/i386/sco5.h (SELECT_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION): New. - * config/i386/svr3gas.h (SELECT_SECTION): Remove. - - * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION - instead of SELECT_SECTION. - * config/m68k/dpx2.h: Likewise. - * config/rs6000/lynx.h: Likewise. - - * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. - * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New. - (ia64_in_small_data_p): New. - (ia64_encode_section_info): Use it. Reorganize overlarge conditional. - (ia64_aix_select_section, ia64_aix_unique_section): New. - * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove. - (SELECT_SECTION, UNIQUE_SECTION): Remove. - - * config/m32r/m32r.h (SELECT_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION): New. - * config/m32r/m32r.c (m32r_select_section): Take align argument. - * config/m32r/m32r-protos.h: Update. - - * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New. - (SELECT_SECTION): Move ... - * config/m88k/m88k.c (m88k_select_section): ... here. - - * config/mcore/mcore-pe.h (SELECT_SECTION): Remove. - * config/mcore/mcore.h (UNIQUE_SECTION): Remove. - * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New. - (mcore_unique_section): Make static. - * config/mcore/mcore-protos.h: Update. - - * config/mips/elf.h (UNIQUE_SECTION): Remove. - (TARGET_ASM_UNIQUE_SECTION): New. - * config/mips/elf64.h: Likewise. - * config/mips/iris6gld.h: Likewise. - * config/mips/linux.h: Likewise. - * config/mips/mips-protos.h: Update. - * config/mips/mips.c (mips_select_section): Add align argument. - * config/mips/mips.h (SELECT_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION): New. - - * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove. - * config/mmix/mmix.c (mmix_select_section): Remove. - (mmix_unique_section): Remove. - * config/mmix/mmix-protos.h: Update. - - * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New. - (SELECT_SECTION): Move ... - * config/pa/pa.c (pa_select_section): ... here. - * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove. - - * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename - from rs6000_select_section and make static. - (rs6000_elf_unique_section): Similarly. - (rs6000_xcoff_select_section): From xcoff.h. - (rs6000_xcoff_unique_section): Likewise. - * config/rs6000/rs6000-protos.h: Update. - * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove. - (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New. - * config/rs6000/xcoff.h: Likewise. - - * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New. - (SELECT_SECTION): Move ... - * config/sparc/sparc.c (sparc_aout_select_section): ... here. - - * config/v850/v850.h (SELECT_SECTION): Move ... - * config/v850/v850.c (v850_select_section): ... here. - (TARGET_ASM_SELECT_SECTION): New. - - * config/vax/vms.h (SELECT_SECTION): Move ... - * config/vax/vax.c (vms_select_section): ... here. - (TARGET_ASM_SELECT_SECTION): New. - - * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs - for the target hooks. - -2002-05-17 Nick Clifton - - * config/arm/arm.c (emit_multi_reg_push): Do not set - RTX_FRAME_RELATED_P on the SEQUENCE. - -2002-05-16 Richard Henderson - - * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before - splitting. Use split_all_insns; update_life_info_in_dirty_blocks. - -2002-05-16 Richard Henderson - - * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo. - - * config/ia64/ia64.c (saveable_obstack): Do not declare. - -2002-05-16 Richard Henderson - - * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c, - cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c, - conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c, - gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c, - local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c, - recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c, - reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c, - sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c: - Revert "Basic block renumbering removal", and two followup patches. - -2002-05-16 Jason Thorpe - - * lcm.c (optimize_mode_switching): Revert previous change. - -2002-05-16 Zdenek Dvorak - - * sched-rgn.c (schedule_insns): Initialize large_region_blocks - with only extant block numbers. - -2002-05-16 Jason Thorpe - - * lcm.c (optimize_mode_switching): Fix typo. - -2002-05-16 Zdenek Dvorak - - * flow.c (calculate_global_regs_live): Queue blocks in program order. - -2002-05-16 Rainer Orth - - * doc/install.texi (Configuration): Document PWDCMD. - -2002-05-16 Dale Johannesen - - * combine.c (cant_combine_insn_p): Reenable combinations - involving hard regs unless CLASS_LIKELY_SPILLED_P. - -2002-05-16 Neil Booth - - * c-common.c (cb_register_builtins): Handle more built-ins - here rather than in gcc.c specs. - * gcc.c (cpp_unique_options): Move many built-ins to c-common.c. - (cpp_options): Pass -O flags even when only preprocessing. - * toplev.c (set_fast_math_flags): New prototype. - (fast_math_flags_set_p): New. - (set_no_fast_math_flags): Remove. - (decode_f_option): Update. - * toplev.h (set_fast_math_flags): Update. - (fast_math_flags_set_p): New. - (set_no_fast_math_flags): Remove. -config: - * c4x/c4x.c (c4x_override_options): Update. - -2002-05-16 Zack Weinberg - - * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX): - Default-define here. - (builtin_define_with_value): Can now wrap the expansion in - quotation marks if such is wanted. - (cb_register_builtins): Update calls to builtin_define_with_value. - Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__ - here. - (c_common_init): Set options->stdc_0_in_system_headers. - * c-lex.h: Update prototype of builtin_define_with_value. - * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX - and REGISTER_PREFIX. - - * cppinit.c (VERS, ULP, C, X): Kill. - (builtin_array): Remove entries for __VERSION__, - __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and - __HAVE_BUILTIN_SETJMP__. Make __STDC__ always a builtin, not - a constant. - (init_builtins): Kill off a bunch of now-dead code. - (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and - -fno-leading-underscore. - (cpp_handle_option): Remove code to set user_label_prefix. - (cpp_post_options): Likewise. - - * cpplib.h (struct cpp_options): Remove user_label_prefix. - (stdc_0_in_system_headers): New. - * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile, - stdc_0_in_system_headers) too to decide the value of __STDC__. - - * tradcpp.c (user_label_prefix): Kill. - (main): Remove code handling -f(no-)leading-underscore. - (initialize_builtins): Don't define __REGISTER_PREFIX__ - or __USER_LABEL_PREFIX__. - (install_value): Wrap compound statement in dummy loop so the - macro works properly in an if statement. - - -2002-05-16 Janis Johnson - - * loop.h (struct loop_info): Add member has_prefetch. - * loop.c (PREFETCH_CONDITIONAL): Change default to 1. - (prescan_loop): Initialize has_prefetch. - (struct prefetch_info): Change prefetch_in_loop and - prefetch_before_loop from bit fields to ints. - (emit_prefetch_instructions): Several small fixes. - (check_dbra_loop): Don't reverse loop that uses prefetch. - -2002-05-16 Rainer Orth - - * Makefile.in: Allow for PWDCMD to override hardcoded pwd. - * configure.in: Likewise. - * fixinc/check.tpl: Likewise. - * fixinc/fixinc.dgux: Likewise. - * fixinc/fixinc.svr4: Likewise. - * fixinc/fixinc.winnt: Likewise. - * fixinc/fixincl.sh: Likewise. - * fixproto: Likewise. - * configure: Regenerate. - -2002-05-16 Zdenek Dvorak - - Basic block renumbering removal: - * basic_block.h (struct basic_block_def): Renamed index to sindex, - added prev_bb and next_bb fields. - (n_basic_blocks): Renamed to num_basic_blocks. - (last_basic_block): New, index of last basic block. - (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for - traversing basic block chain. - (BLOCK_NUM): index -> sindex. - (create_basic_block_structure, create_basic_block): Declaration changed. - (debug_num2bb): Declare. - (expunge_block_nocompact): Declaration removed. - (link_block, unlink_block, compact_blocks): Declare. - * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified. - * cfg.c (entry_exit_blocks): Initialize new fields. - (clear_edges, alloc_block, expunge_block, cached_make_edge, - redirect_edge_pred, dump_flow_info, dump_edge_info, - alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges, - free_aux_for_edges): Modified. - (link_block, unlink_block, compact_blocks, debug_num2bb): New. - (expunge_block_nocompact): Removed. - * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add, - find_unreachable_blocks, create_edge_list, print_edge_list, - verify_edge_list, flow_edge_list_print, remove_fake_successors, - remove_fake_edges, flow_reverse_top_sort_order_compute, - flow_depth_first_order_compute, flow_preorder_transversal_compute, - flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb, - flow_dfs_compute_reverse_execute): Modified. - * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1, - find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks): - Modified. - * cfgcleanup.c (try_simplify_condjump, try_forward_edges, - merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps, merge_blocks, - outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb, - try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified. - * cfglayout.c (skip_insns_after_block, label_for_bb, - record_effective_endpoints, scope_to_insns_finalize, - fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps, - fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge, - cfg_layout_duplicate_bb): Modified. - * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump, - flow_loop_entry_edges_find, flow_loop_exit_edges_find, - flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan, - flow_loops_find, flow_loop_outside_edge_p): Modified. - * cfgrtl.c (create_basic_block_structure, create_basic_block, - flow_delete_block, compute_bb_for_insn, split_block, - try_redirect_by_replacing_jump, redirect_edge_and_branch, - force_nonfallthru_and_redirect, tidy_fallthru_edge, - back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion, - commit_edge_insertions, commit_edge_insertions_watch_calls, - dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges, - purge_all_dead_edges): Modified. - * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies, - try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate, - get_last_value, reg_dead_at_p, distribute_notes, distribute_links): - Modified. - * conflict.c (conflict_graph_compute): Modified. - * df.c (FOR_ALL_BBS): Removed. - (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1, - df_modified_p, df_analyse, df_refs_unlink, df_insn_modify, - df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified. - * df.h (DF_BB_INFO, DF_REF_BBNO): Modified. - * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree, - calc_idoms, idoms_to_doms, calculate_dominance_info): Modified. - * final.c (compute_alignments, final_scan_insn): Modified. - * flow.c (verify_local_live_at_start, update_life_info, - update_life_info_in_dirty_blocks, free_basic_block_vars, - delete_noop_moves, calculate_global_regs_live, - initialize_uninitialized_subregs, allocate_bb_life_data, - regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1, - mark_used_reg, count_or_remove_death_notes): Modified. - * function.c (thread_prologue_and_epilogue_insns): Modified. - * gcse.c (struct null_pointer_info): Change typo of current_block - to basic_block. - (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets, - oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info, - compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd, - alloc_avail_expr_mem, expr_killed_p, compute_ae_kill, - expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr, - classic_gcse, one_classic_gcse_pass, compute_transp, cprop, - one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work, - pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert, - pre_delete, one_pre_gcse_pass, compute_transpout, - invalidate_nonnull_info, delete_null_pointer_checks_1, - free_code_hoist_mem, compute_code_hoist_vbeinout, - hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass, - compute_ld_motion_mems, store_ops_ok, find_moveable_store, - compute_store_table, build_store_vectors, insert_insn_start_bb, - insert_store, replace_store_insn, free_store_memory, store_motion): - Modified. - * global.c (global_alloc, global_conflicts, mark_elimination, - build_insn_chain): Modified. - * graph.c (print_rtl_graph_with_bb): Modified. - * haifa-sched.c (sched_init): Modified. - * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed. - (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2, - if_convert): Modified. - * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin, - compute_insert_delete, pre_edge_lcm, compute_available, - compute_farthest, compute_nearerout, compute_rev_insert_delete, - pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching): - Modified. - * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified. - * loop.c (loop_dump_aux): Modified. - * predict.c (combine_predictions_for_insn, estimate_probability, - last_basic_block_p, process_note_prediction, process_note_predictions, - note_prediction_to_br_prob, propagate_freq, counts_to_freqs, - expensive_function_p, estimate_bb_frequencies, - compute_function_frequency): Modified. - * print-rtl.c (print_rtx): Modified. - * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges, - get_exec_counts, compute_branch_probabilities, compute_checksum, - branch_prob, find_spanning_tree): Modified. - * recog.c (split_all_insns, peephole2_optimize): Modified. - * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge, - convert_regs_1, convert_regs_2, convert_regs): Modified. - * regclass.c (scan_one_insn, regclass): Modified. - * regmove.c (mark_flags_life_zones, regmove_optimize, - combine_stack_adjustments): Modified. - * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified. - * reload1.c (reload, reload_combine, copy_eh_notes): Modified. - * reorg.c (dbr_schedule): Modified. - * resource.c (find_basic_block, init_resource_info): Modified. - * sbitmap.c (sbitmap_intersection_of_succs, - sbitmap_intersection_of_preds, sbitmap_union_of_succs, - sbitmap_union_of_preds): Modified. - * sched-deps.c (init_dependency_caches): Modified. - * sched-ebb.c (schedule_ebbs): Modified. - * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions, - find_rgns, compute_trg_info, init_regions, schedule_insns): Modified. - * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified. - * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges, - ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns, - ssa_const_prop): Modified. - * ssa-dce.c (set_control_dependent_block_to_edge_map_, - find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified. - * ssa.c (remove_phi_alternative, find_evaluations, - compute_dominance_frontiers_1, compute_iterated_dominance_frontiers, - insert_phi_node, rename_block, convert_to_ssa, eliminate_phi, - make_regs_equivalent_over_bad_edges, - make_equivalent_phi_alternatives_equival, - compute_conservative_reg_partition, - coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition, - rename_equivalent_regs, convert_from_ssa, for_each_successor_phi): - Modified. - -2002-05-16 Mark Mitchell - - * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH. - -2002-05-16 Nick Clifton - - * config/arm/arm.c (arm_rtx_costs): Check for RTX being a - SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P. - (arm_adjust_cost): Check for RTX being a SYMBOL_REF before - calling CONSTANT_POOL_ADDRESS_P. - * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code - to decide whether to define __arm__ or __thumb. - (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a - SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P. - -2002-05-16 Neil Booth - - * config/arc/arc.h (CPP_PREDEFINES): Remove. - (CPP_SPEC): Update. - (TARGET_CPU_CPP_BUILTINS): New. - -2002-05-16 Neil Booth - - * cpphash.h (cpp_macro): Move here, and make expansion a union. - * cppmacro.c (cpp_macro): Remove. - (enter_macro_context, replace_args, warn_of_redefinition, - _cpp_create_definition, cpp_macro_definition): Update. - -2002-05-16 Jason Merrill - - * config/mips/mips.c (mips_output_external): Don't do sdata - optimization for a variable with DECL_COMDAT set. - -2002-05-15 Aldy Hernandez - - * config/rs6000/altivec.h: Cleanups for tighter typechecking. - Cleanups for accepting modifiers on pointers. - Fix predicate typos. - Allow long pointers as well as int pointers. - -2002-05-15 Richard Henderson - - * varasm.c (merge_weak): Remove special case for extern and common. - -2002-05-15 Matt Hiller - - * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if - XFAILing. - * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto. - * testsuite/gcc.c-torture/compile/920520-1.x: Ditto. - * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now. - * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto. - * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto. - * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto. - -2002-05-15 Aldy Hernandez - - * reload1.c (forget_old_reloads_1): Do not use subreg offset. - -2002-05-15 Aldy Hernandez - - * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register. - ("altivec_mfvscr"): Read from VSCR. - - Add vscr sets for the following insns: altivec_vctuxs, - altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs, - altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs, - altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs, - altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss, - altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus, - altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus, - altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs, - altivec_vsubshs, altivec_vsubuws, altivec_vsubsws, - altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs, - altivec_vsum2sws, altivec_vsumsws. - - * config/rs6000/rs6000.h: Add VSCR fixed register. - (CALL_REALLY_USED_REGISTERS): Add vscr. - (CALL_USED_REGISTERS): Same. - (FIXED_REGISTERS): Same. - (REG_ALLOC_ORDER): Same. - (reg_class): Add VSCR_REGS. - (REG_CLASS_NAMES): Same. - (REG_CLASS_CONTENTS): Same. - (VSCR_REGNO): New. - (REGISTER_NAMES): Add vscr. - (DEBUG_REGISTER_NAMES): Same. - (ADDITIONAL_REGISTER_NAMES): Same. - (FIRST_PSEUDO_REGISTER): Increment. - (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register. - -2002-05-15 Jakub Jelinek - - * fold-const.c (fold): Fix a typo. - -2002-05-15 Eric Botcazou - - * fold-const.c (fold) [LT_EXPR]: Move the transformation of a - comparison against the highest or lowest integer value before - the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)' - transformation and that of an unsigned comparison against 0 - right after. - -2002-05-15 Richard Henderson - - * varasm.c (merge_weak): Error for any weakening after definition. - Adjust weakening after use warning to catch more cases. - (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently. - * config/alpha/alpha.c (alpha_encode_section_info): Do not abort. - -Wed May 15 10:38:27 CEST 2002 Jan Hubicka - - * invoke.texi (-malign-double): Re-add lost warning. - - * i386-protos.h (x86_output_mi_thunk): Declare. - * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ... - * i386.c (x86_output_mi_thunk): ... here; handle 64bits. - - * dwarf2out.c (output_call_frame_info): Do not skip unwind info - when flag_asynchronous_unwind_tables is set. - - * flags.h (flag_reorder_functions): Declare. - * function.c (prepare_function_start): Initialize frequnecy. - * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New. - * Makefile.in (predict.o): Add dependency on target.h and params.h - * defaults.h (HOT_TEXT_SECTION_NAME, - UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros. - * predict.c (choose_function_section): New function. - (estimate_bb_frequencies): Use it. - * toplev.c (flag_reorder_functions): New global variable. - (lang_independent_options): New. - (parse_options_and_default_flags): Set. - * varasm.c (assemble_start_function): Bypass functdion alignment - for never executed functions. - * invoke.texi (-freorder-blocks, -freorder-functions): Document. - (param hot-bb-count-fraction, hot-bb-frequency-fraction): New. - * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME): - Document. - - Thu Jan 3 21:52:09 CET 2002 Jan Hubicka - - * predict.c: Inlude profile.h - (MIN_COUNT): Rename to MIN_COUNT_FRACTION - (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p): - Use the information about maximal counter in the program. - - Thu Dec 20 22:14:00 CET 2001 Jan Hubicka - - * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p, - probably_never_executed_bb_p): New functions. - * cfgcleanup.c (outgoing_edges_match): Use them. - * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros. - (maybe_hot_bb_p, probably_cold_bb_p, - probably_never_executed_bb_p): New functions. - - * function.h (function): Add new field function_frequency. - * predict.c (compute_function_frequency): New function. - (estimate_probability): Call it. - -2002-03-09 Jakub Jelinek - - PR optimization/5172, optimization/5200 - * gcse.c (gcse_main): Disable store_motion. - -2002-05-14 Zack Weinberg - - * c-parse.in (MODIFIED_WCHAR_TYPE): New macro. - (c_common_nodes_and_builtins): Use it. - (builtin_define_with_value): New function. - (cb_register_builtins): Define __SIZE_TYPE__, - __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here, - using builtin_define_with_value. Use consistent notation when - defining __GXX_WEAK__. - (WCHAR_TYPE_SIZE): Don't redefine. - (combine_strings): Don't use WCHAR_TYPE_SIZE. - - * cppdefault.h: Don't provide defaults for SIZE_TYPE, - PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE. - * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc. - * tradcpp.c (initialize_builtins): Likewise. - * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__. - - * c-lex.h (builtin_define_with_value): Prototype. - * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE, - NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE. - * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc. - - * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h, - config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h, - config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h, - config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h, - config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h, - config/sparc/linux64.h, config/sparc/netbsd-elf.h, - config/sparc/sol2-bi.h, config/sparc/sparc.h: - Do not define NO_BUILTIN_SIZE_TYPE etc. Remove all references - to __SIZE_TYPE__ etc from all spec strings. When this makes - extra specs empty, delete them. - -2002-05-14 John David Anglin - - * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling - for PA8000 or generating dwarf2 call frame information. - (output_call): Remove DO_FRAME_NOTES check from return pointer - optimization. - (following_call): Return 0 when scheduling for PA8000 or generating - dwarf2 call frame information. Revise comment. - -2002-05-14 Neil Booth - -config/alpha: - * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP - and __IEEE_FP_INEXACT as appropriate. - (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus. - (CPP_SPEC): Remove ieee defines. - * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu. - -2002-05-14 Richard Henderson - - * config/i386/i386.c (ix86_save_reg): Make regno unsigned. - (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill. - -2002-05-14 Neil Booth - - * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define. - (CPP_SPEC): Update. - (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC, - CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC, - CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC, - CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove. - (EXTRA_SPECS): Update. - * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h, - arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h, - arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and - define TARGET_OS_CPP_BUILTINS if necessary. - -2002-05-14 Neil Booth - - * gcc.c (cpp_options): Must pass -m* and -f* options - to the front end even when only preprocessing. - (cc1_options): Remove redundant -lang-c. - * tradcpp.c (main): Ignore -m options. -objc: - * lang-specs.h: Similarly. - -2002-05-14 Vladimir Makarov - - * genautomata.c (transform_3): Add code for transformation - `(A,B,...)+C -> A+C,B,...'. - -Tue May 14 12:48:22 CEST 2002 Jan Hubicka - - * final.c (end_final): Do not output profile_arcs constructor, when - no functions are instrumented. - -Tue May 14 12:38:30 CEST 2002 Jan Hubicka - - * i386.md (testsi to testqi_zext_1 splitter): Fix typo. - -2002-05-14 Gerald Pfeifer - - * doc/install.texi: Remove special markup originally required for - HTML generation with texi2html. - -2002-05-14 Andreas Schwab - - * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of - SELECT_SECTION. - (UNIQUE_SECTION): Define to get small data correctly. - - * varasm.c (resolve_unique_section): Add third parameter - flag_function_or_data_sections and use it instead of - flag_function_sections. - (assemble_start_function): Pass flag_function_sections. - (asm_emit_uninitialised): Pass flag_data_sections. - (assemble_variable): Likewise. - -2002-05-14 Richard Henderson - - * config/i386/i386.md: Use define_constants for unspec numbers. - * config/i386/i386.c: Likewise. - -2002-05-13 Neil Booth - - * doc/contrib.texi: Update my entry. - -2002-05-13 Mark Mitchell - - * fixinc/inclhack.def (winidss_valist): Limit applicability. - * fixinc/fixincl.x: Regenerated. - * fixinc/tests/base/math.h: Update. - * fixinc/tests/base/testing.h: Likewise. - -2002-05-13 Zack Weinberg - - * genattr.c (gen_attr): Don't emit a comma after the last - enumerator. - -2002-05-13 Richard Henderson - - * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created - by non-local gotos. - * recog.c (peephole2_optimize): Likewise. - -2002-05-13 Andris Pavenis - - * cppfiles.c (open_file): Change mode (DJGPP only) of redirected - input to O_BINARY. - -2002-05-13 Jeffrey A Law (law@redhat.com) - - * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx. - Update prototype and callers. - (propagate_one_insn): Stack pointer adjustments kill MEMs on - the mem_set_list which reference the stack pointer, as do - calls to constant functions as they may clobber outgoing - argument space. - - * i386.c (ia32_multipass_dfa_lookahead): Prototype. - - * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define. - (ia32_multipass_dfa_lookahead): New function. - -2002-05-13 Neil Booth - - * gcc.c (SWITCH_TAKES_ARG): Remove 'V'. - (translate_options): Remove 'V'. - (process_command): Similarly. -doc: - * invoke.texi: Remove documentation of 'V'. - -2002-05-13 Ulrich Weigand - - * config/s390/linux.h: Revert 2002-04-22 changes. - -2002-05-13 Scott Marks - - * config/fr30/fr30.md: Only allow splits of immediate loads - if the destination is a register. - -2002-05-13 Neil Booth - - * Makefile.in (c-common.o, cppinit.o): Update. - * c-common.c: Include except.h. - (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__. - Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS. - * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here. - * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS, - CPP_PREDEFINES): Handle here. -config: - * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h, - alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h, - alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define - TARGET_OS_CPP_BUILTINS. - * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define. - (CPP_SPEC, EXTRA_SPECS): Update. - (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC, - CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC, - CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC, - CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC, - CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove. -doc: - * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove. - (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define. - -2002-05-12 Zack Weinberg - - * emit-rtl.c (global_rtl): Update comment. - (const_double_htab, const_double_htab_hash, - const_double_htab_hash, lookup_const_double): New. - (const_int_htab_hash, const_int_htab_eq): Remove const - qualifiers, which cause tons of warnings with RTL checking on. - (gen_rtx_CONST_DOUBLE): Deleted. - (const_double_from_real_value): New function - bears some - resemblance to the former immed_real_const_1. - (immed_double_const): Moved here from varasm.c and - simplified. - (gen_rtx_REG): Make REGNO unsigned to squelch warnings. - (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG. - (gen_rtx): Use immed_double_const. - (init_emit_once): Initialize the const_double_htab. Use - REAL_VALUE_FROM_INT where possible. Can now use - CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx. - * varasm.c (struct varasm_status): Remove x_const_double_chain. - (const_double_chain, immed_real_const, clear_const_double_mem): Delete. - (immed_double_const, immed_real_const_1): Moved to emit-rtl.c. - (init_varasm_status, mark_varasm_status): Don't touch - x_const_double_chain. - - * output.h: Delete prototype for clear_const_double_mem. - * real.h: Make REAL_VALUE_TYPE a macro again. Remove leading - '0' slot from all CONST_DOUBLE_FORMAT definitions. Prototype - const_double_from_real_value, not immed_real_const_1, and use - it to define CONST_DOUBLE_FROM_REAL_VALUE. Define new macro - CONST_DOUBLE_ATOF. - * rtl.h (CONST_DOUBLE_CHAIN): Kill. - (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust. - (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes. - (gen_rtx_REG): Second arg is unsigned. - - * gengenrtl.c (special_rtx): Take out CONST_DOUBLE. - (excluded_rtx): New, return true for CONST_DOUBLE. - (genmacro): Write nothing for excluded codes. - * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE. - * expr.c (expand_expr): Likewise. - * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the - CONST_DOUBLE_CHAIN. - * toplev.c (rest_of_compilation): Don't call - clear_const_double_mem. - - * config/rs6000/rs6000.c (rs6000_float_const): Delete. - (rs6000_hash_constant): Remove CONST_DOUBLE special case. - (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases. - * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const. - * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF. - * config/dsp16xx/dsp16xx.md, config/mips/mips.md, - config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE. - * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const. - -2002-05-12 Kaveh R. Ghazi - - * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define. - -2002-05-12 Tom Tromey - - * tree.h (copy_node): Don't mention TREE_PERMANENT. - -2002-05-12 Zack Weinberg - - * gensupport.c (n_comma_elts): Moved here from genattrtab.c. - (scan_comma_elt): New function. Accepts whitespace in comma lists. - * gensupport.h: Prototype new routines. - * genattr.c (gen_attr): Use scan_comma_elt. Avoid unnecessary - use of printf. - * genattrtab.c (n_comma_elts): Moved to gensupport.c. - (next_comma_elt): Use scan_comma_elt. - - * config/i386/i386.md: Use new attribute notation to break up - long lines in define_attr forms. - -2002-05-12 Richard Henderson - - * expr.c (compress_float_constant): New. - (emit_move_insn): Use it. - (float_extend_from_mem): New. - (init_expr_once): Initialize it. - * real.c (exact_real_truncate): New. - - * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets - dropped into memory; penalize for size. - (RTX_COSTS): FLOAT_EXTEND is free. - * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2, - extenddfxf2, extenddftf2): Accept constants and drop them to memory. - -2002-05-12 Richard Henderson - - * profile.h (profile_info): Add missing extern to declaration. - * profile.c (profile_info): Define it. - -2002-05-11 John David Anglin - - * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers - used for DImode and TImode. - -2002-05-11 Neil Booth - - * cpplex.c (_cpp_lex_direct): When in a directive at EOF - fake a newline. - -2002-05-11 Zack Weinberg - - * config/rs6000/rs6000.c (rs6000_default_long_calls, - rs6000_longcall_switch, rs6000_set_default_type_attributes): New. - (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it. - (rs6000_override_options): Handle -m(no-)longcall. - (init_cumulative_args, output_mi_thunk): Check for both - longcall and shortcall attributes on the function. - (rs6000_attribute_table): Add "shortcall". - (rs6000_handle_longcall_attribute): Update comment. - (altivec_expand_unop_builtin, altivec_expand_binop_builtin, - altivec_expand_ternop_builtin): Add default clauses to switches - to silence warnings. - - * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and - rs6000_default_long_calls. Define REGISTER_TARGET_PRAGMAS. - (TARGET_OPTIONS): Add longcall and no-longcall. - - * config/rs6000/rs6000.md (call_nonlocal_sysv, - call_value_nonlocal_sysv): Split by alternatives. One pair - accepts only SYMBOL_REFs and rejects if CALL_LONG is set in - the call cookie. The other pair accepts only LR/CTR and has - no restriction. - - * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza): - Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to - tmake_file. - * config/rs6000/rs6000-c.c: New file. - * config/rs6000/t-rs6000-c-rule: New file. - * config/rs6000/rs6000-protos.c: Add multiple-include guard. - Prototype rs6000_pragma_longcall. - - * doc/extend.texi: Document shortcall attribute. - * doc/invoke.texi: Document -mlongcall, -mno-longcall. - -2002-05-11 John David Anglin - - * reorg.c (dbr_schedule): Remove unnecessary test. - -Sat May 11 14:34:35 CEST 2002 Jan Hubicka - - * i386.md (testsi to testqi spliters): New. - - 2002-01-14 Josef Zlomek - - cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU. - - Wed Jan 9 2002 Josef Zlomek - - * basic-block.h: New flag EDGE_CAN_FALLTHRU - * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges - that can be made fallthru. - - Mon Nov 12 16:25:53 CET 2001 Jan Hubicka - - * cfglayout.c (cleanup_unconditional_jumps): New static function. - (cfg_layout_initialize): Use it. - -2002-05-11 Marek Michalkiewicz - - * config/avr/avr.c (avr_mcu_types): Update supported devices. - * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - -2002-05-11 Kazu Hirata - - * dbxout.c: Fix formatting. - * dependence.c: Likewise. - * df.c: Likewise. - * diagnostic.c: Likewise. - * doloop.c: Likewise. - * dominance.c: Likewise. - * doschk.c: Likewise. - * dwarf2asm.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - -2002-05-10 Richard Henderson - - * final.c (end_final): Tidy whitespace. Don't honor flag_pack_struct. - Convert integers constants as needed. Replace "nwords" field with - "sizeof_bb". - (final): Save profile data if cfun->arc_profile, not profile_arc_flag. - * function.h: Fix typo in comment. - * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb". - -2002-05-10 Roger Sayle - - * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127) - into the equivalent (signed char)c > 0. - -2002-05-10 Janis Johnson - - * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New. - (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS. - (struct prefetch_info): Fix spelling of member bytes_accessed. - (emit_prefetch_instructions): Make dump messages more regular; - restructure code to add more dump messages; use new macros for - heuristics. (There are no code generation changes in any of this). - -2002-05-10 David S. Miller - - * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment. - (struct rtx_def): Update unchanging flag comment. - * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description. - * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs - to be handled to INSN too. - (dbr_schedule): Likewise. - * resource.c (next_insn_no_annul): Likewise. - - * cse.c (rtx_cost): Remove multiplication by power of 2 special - casing. - -2002-05-14 Gerald Pfeifer - - * doc/install.texi (Specific, *-*-solaris2*): Update passus on - setting CONFIG_SHELL to /bin/ksh and remove alternate trick to - (possibly) work around broken /bin/sh. - -2002-05-10 Rainer Orth - - * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and - . as N64/N32 libgcc_s.so subdirs. - -2002-05-10 David S. Miller - - * config/sparc/sparc.md: Use define_constants for unspec numbers. - - * rtl.h (struct rtx_def): Document unchanging and in_struct flags - more accurately. - (INSN_ANNULLED_BRANCH_P): Only valid for JUMP_INSN and CALL_INSN, fix - comment. - (INSN_FROM_TARGET_P): Valid also for CALL_INSN. - * doc/rtl.texi: Document these macros more accurately. - * recog.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P for - JUMP_INSNs and CALL_INSNs. - * resource.c (whole file): Only mess with INSN_ANNULLED_BRANCH_P - or INSN_FROM_TARGET_P if the code is appropriate. - -2002-05-10 Marek Michalkiewicz - - * config/avr/avr.c (print_operand): Check that addr is a SYMBOL_REF - before using SYMBOL_REF_FLAG (addr). - - * config/avr/avr-protos.h (avr_io_address_p): Declare. - * config/avr/avr.c (io_address_p): Rename to avr_io_address_p. - Make non-static. Update all callers. - * config/avr/avr.md (*cbi, *sbi, *sbix_branch, *sbix_branch_bit7): - New insns to clear/set/test a single bit in I/O address space. - -2002-05-09 Kaveh R. Ghazi - - * rtl.h (ENABLE_RTL_FLAG_CHECKING): Also check for gcc >= 2.7. - -2002-05-09 Neil Booth - - * Makefile.in: Update. - * c-common.c (flag_iso, flag_undef, cb_register_builtins, - builtin_define_std): New. - (c_common_init): Register CPP builtins callback. - * c-common.h (flag_iso, flag_undef): New. - * c-decl.c (c_decode_option): Set flag_iso and flag_undef. - * c-lex.c: Don't include target.h. - (cb_register_builtins): Move to c-common.c. - (init_c_lex): Don't register hook here. - * c-lex.h (builtin_define, builtin_assert, builtin_define_std): New. - (cpp_define, cpp_assert): Remove. - * gcc.c (cc1_options): Pass -undef to front end. - * target-def.h (TARGET_REGISTER_CPP_BUILTINS): Remove. - (TARGET_INITIALIZER): Update. - * target.h (struct cpp_reader): Don't predeclare. - (struct gcc_target): Remove cpp builtin hook. - * tree.c (default_register_cpp_builtins): Remove. -doc: - * tm.texi: Update. - -2002-05-09 Neil Booth - - * cppexp.c (_cpp_expand_op_stack): Set op_limit. - -2002-05-09 Rainer Orth - - * config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Define. - (SHLIB_LINK, SHLIB_INSTALL): Adjust. - -2002-05-09 Jakub Jelinek - - * config/sparc/t-linux64 (SHLIB_MAPFILES): Set. - * config/sparc/libgcc-sparc-glibc.ver: New file. - * config/cris/t-linux (SHLIB_MAPFILES): Remove. - * mklibgcc.in: Preprocess SHLIB_MAPFILES with ml flags. - -2002-05-09 Jakub Jelinek - - PR target/6429 - * Makefile.in (libgcc.mk): Pass SHLIB_SLIBDIR_SUFFIXES to mklibgcc. - * mklibgcc.in: If SHLIB_SLIBDIR_SUFFIXES is defined, put libgcc_s - shared libraries into multilib dirs, with SONAME libgcc_s.so.1 for - base multilibs. - * config/t-slibgcc-elf-ver (SHLIB_LINK): Adjust for the above. - * config/t-slibgcc-sld (SHLIB_LINK): Likewise. - * config/sparc/t-linux64 (SHLIB_SLIBDIR_SUFFIXES): Define. - * config/sparc/t-sol2-64 (SHLIB_SLIBDIR_SUFFIXES): Define. - -2002-05-09 Richard Henderson - - * config/ia64/ia64.md: Use define_constants for unspec numbers. - * config/ia64/ia64.c: Likewise. - -2002-05-09 Richard Sandiford - - * config/mips/mips.c (mips_add_large_offset_to_sp): Remove FILE arg. - (save_restore_insns): Likewise. - (mips_expand_prologue, mips_expand_epilogue): Update callers. - (highpart_shift_operator): Attach ATTRIBUTE_UNUSED to mode argument. - -Thu May 9 11:50:09 2002 Jeffrey A Law (law@redhat.com) - - * athlon.md, k6.md, pentium.md, ppro.md): New files. - * i386.md: Move scheduling information into new files. - - * i386.md (type attribute): Add "rotate" for rotate insns. - (rotate insns): Set type to "rotate". - (various attributes and function units): Treat rotate like shift. - (pent_pair attribute): Only rotates by one bit position are - pairable. - (sbb insns): Explicitly set pent_pair attribute on a couple - that were missing it. - -Thu May 9 18:29:24 2002 J"orn Rennecke - - * sh.c (sh_builtin_saveregs): If starting with an odd fp register, - make sure that buffer starts on odd word address. - (sh_va_arg): Skip odd fp registers when reading a double precision - value. - -2002-05-09 Neil Booth - - * tree.h (preserve_data, object_permanent_p, type_precision): - Remove. - -2002-05-09 Neil Booth - - * cpplib.c (cpp_init_internal_pragmas): Remove #pragma poison. - * cppmacro.c (paste_all_tokens): Bad pastes are a hard error. -doc: - * cpp.texi: Update for removal of obsolete features. - -Thu May 9 07:46:18 2002 Jan Hubicka - Jeffrey A Law (law@redhat.com) - - * i386.c (ia32_use_dfa_pipeline_interface): New function. Use - the DFA interface for Pentium processors. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): DEFINE. - (attr_pent_pair, ix86_pent_find_pair): Remove. - (ix86_sched_reorder_pentium): Remove. - (ix86_sched_reorder): Remove reordering for Pentium. - * i386.md (Pentium scheduling): Rewrite using DFA description. - -Thu May 9 14:55:39 CEST 2002 Jan Hubicka - - * cfganal.c (can_fallthru): Fix fast path. - * cfgrtl.c (verify_flow_info): Avoid crash on conditionals - with edges to the next block. - -Thu May 9 14:52:45 CEST 2002 Jan Hubicka - Pavel Nejedly - - * final.c (end_final): Use C trees to output data structures for profiling. - - * Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h - (profile.o): New dependency profile.h - (final.o): New dependency profile.h - * profile.h: New file. New global structure profile_info. - * final.h (count_edges_instrumented_now): Declare. - (current_function_cfg_checksum): Declare. - (function_list): New structure. - (functions_head, functions_tail): New static variables. - (end_final): Emits more data, removed some -ax stuff. - (final): Stores function names and chcksums. - * gcov-io.h (__write_gcov_string): New function. - (__read_gcov_string): New function. - * gcov.c (read_profile): New function. - (create_program_flow_graph): Uses read_profile instead of reading - da_file. - (read_files): Removed da_file checking, it's done by read_profile now. - * libgcc2.c (bb_function_info): New structure. - (bb): New field in structure, removed some -ax stuff. - (__bb_exit_func): Changed structure of da_file. - * profile.c (count_edges_instrumented_now): New global variable. - (current_function_cfg_checksum): New global variable. - (max_counter_in_program): New global variable. - (get_exec_counts): New function. - (compute_checksum): New function. - (instrument_edges): Sets count_edges_instrumented_now. - (compute_branch_probabilities): Uses get_exec_counts instead of - reading da_file. - (branch_prob): Calls compute_checksum and writes extra data to bbg_file. - (init_branch_prob): Removed da_file checking, done in get_exec_counts - now. - (end_branch_prob): Removed da_file checking, done in get_exec_counts - now. - * gcov.texi: Updated information about gcov file format. - -2002-05-09 Kazu Hirata - - * sbitmap.c: Fix formatting. - * scan.c: Likewise. - * scan-decls.c: Likewise. - * sched-deps.c: Likewise. - * sched-ebb.c: Likewise. - * sched-rgn.c: Likewise. - * sched-vis.c: Likewise. - * sdbout.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * ssa.c: Likewise. - * ssa-ccp.c: Likewise. - * ssa-dce.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * stringpool.c: Likewise. - -2002-05-09 David S. Miller - - * config/sparc/sol2.h (ASM_CPU_SPEC): Handle -mcpu=v9. - -2002-05-07 David S. Miller - - * config/sparc/sparc.h (TARGET_BUGGY_QP_LIB): Define to zero. - * config/sparc/sol2.h (TARGET_BUGGY_QP_LIB): Override to one. - * config/sparc/sparc.c (emit_soft_tfmode_libcall): If the Qp - library implementation clobbers the output before the inputs - are fully consumed, use stack temporary for the output. - -2002-05-09 Jason Thorpe - - * config/netbsd.h (CPP_SPEC): Remove. - * config/i386/netbsd-elf.h (CPP_SPEC): Define. - * config/i386/netbsd.h (CPP_SPEC): Define. - * config/ns32k/netbsd.h (CPP_SPEC): Define. - * config/sparc/netbsd-elf.h (CPP_SPEC): Remove. - * config/sparc/netbsd.h (CPP_SPEC): Define. - * config/vax/netbsd.h (CPP_SPEC): Define. - -2002-05-08 Kazu Hirata - - * read-rtl.c: Fix formatting. - * real.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * reload.c: Likewise. - * resource.c: Likewise. - * rtlanal.c: Likewise. - * rtl.c: Likewise. - * rtl-error.c: Likewise. - -2002-05-08 John David Anglin - - * pa/pa-64.h (MAX_WCHAR_TYPE_SIZE): Delete. - * pa/pa.h (MAX_WCHAR_TYPE_SIZE): Delete. - -2002-05-08 Bernd Schmidt - - * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Tweak previous change to - use __SSE2__ macro instead. - * config/i386/xmmintrin.h: Likewise. - -2002-05-08 Janis Johnson - - * rtl.h (RTL_FLAG_CHECK*): Add an argument for the macro name, - and use it in all invocations of these macros. Clean up comments. - * rtl.c (rtl_check_failed_flag): Add an argument for the name - of the flag access macro whose check failed. - * doc/rtl.texi (Flags): Document additional flag uses. - -2002-05-08 Robert Spier - Neil Booth - - PR preprocessor/6521 - * cppfiles.c (handle_missing_header): Don't do anything - different for <> includes. -doc: - * cppopts.texi: Update documentation for -MG. - -2002-05-08 Neil Booth - - * cpplex.c (cpp_interpret_charconst): Truncate as well as - sign-extend. -doc: - * cpp.texi: Clarify multichar charconst valuation. - -2002-05-08 Mark Mitchell - - * doc/invoke.texi: Document -mwindiss option. - -2002-05-08 Jason Merrill - - * dwarf2out.c (output_call_frame_info): Don't emit a CIE with no FDEs. - - * dwarf2out.c (gen_type_die): Abort on broken recursion. - - PR c++/6381 - * dwarf2out.c (rtl_for_decl_location): Only expand INTEGER_CST and - REAL_CST. - -2002-05-08 Nick Clifton - - * config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/ - little-endian multilibs to override arm/thumb multilibs. - Do not build hardware floating point multilibs, nor apcs-26 - multilibs for the Thumb. - -2002-05-08 Mark Mitchell - - PR c/6569. - * varasm.c (mark_weak): New function. - (merge_weak): Use it. Do not call declare_weak. - (declare_weak): Use merge_weak. - -Wed May 8 13:12:11 CEST 2002 Jan Hubicka - - * cse.c (dead_libcall_p): Update counts. - (delete_trivially_dead_insns): Update call of dead_libcall_p. - -Wed May 8 11:08:50 CEST 2002 Jan Hubicka - - * cfglayout.c (function_tail_eff_head): Rename to ... - (function_footer): ... this one. - (unlink_insn_chain): New functions. - (label_for_bb): Only call block_label and emit debug message. - (record_effective_endpoints): Actually unlink the headers and footers. - (fixup_reorder_cahin): Re-insert the unlinked sequences. - (cfg_layout_duplicate_bb): Use duplicate_insn_chain. - * cfglayout.h (struct reorder_block_def): New fields footer/header; - remove eff_head/eff_end. - * rtl.h (set_first_insn): Declare. - * emit-rtl.c (set_first_insn): New function. - - * cfglayout.c (fixup_reorder_chain): Dump duplicated - (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge, - cfg_layout_duplicate_bb): New global function. - (duplicate_insn_chain): New static function. - * cfglayout.h (cfg_layout_can_duplicate_bb_p, cfg_layout_rerirect_edge, - cfg_layout_duplicate_bb): Declare. - (struct reorder_block_def): Add "original" field. - * emit-rtl.c (emit_copy_of_insn_after): New function. - * rtl.h (emit_copy_of_insn_after): Declare. - - * cfglayout.c (fixup_fallthru_exit_predecessor): Kill. - (fixup_reorder_chain): properly handle edges to exit block. - -Wed May 8 11:10:31 CEST 2002 Zdenek Dvorak - Jan Hubicka - - * basic-block.h (note_prediction_to_br_prob): declare. - * c-semantics.c: Include predit.h - (expand_stmt): predict GOTO_STMT as not taken. - * cfgcleanup.c: (delete_unreachable_blocks): Make global. - (cleanup_cfg): Do not free tail_recursion_list. - * cfgrtl.c (can_delete_note_p): Delete NOTE_INSN_PREDICTION. - (flow_delete_block): Kill predictions past end of basic block. - * output.h (delete_unreachable_blocks): Declare. - * predict.c (predicted_by_p, process_note_predictions, - process_note_prediction, last_block_p): New function. - (estimate_probability): Bypass loop on PRED_CONTINUE; - do not handle noreturn heuristics; kill PRED_RETURN; add - PRED_EARLY_RETURN. - * predict.def (PRED_CONTINUE, PRED_EARLY_RETURN, PRED_GOTO, - PRED_CONST_RETURN, PRED_NEGATIVE_RETURN, PRED_NULL_RETURN): New. - * predict.h (IS_TAKEN): New constant. - * print-rtl.c (print_rtx): Pretty print NOTE_INSN_PREDICTION. - * rtl.c (NOTE_INSN_PREDICTION): New. - * rtl.h (NOTE_PREDICTION, NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS): - New macro. - (insn_note): add NOTE_INSN_PREDICTION. - * sibcall.c (optimize_sibling_and_tail_recursive_call): Do not build - CFG; free tail_recursion_label_list. - * stmt.c: Include predict.h; - (return_prediction): New. - (expand_value_return): Use it. - * toplev.c: Lower NOTE_INSN_PREDICTION before sibcall. - -2002-05-08 Richard Sandiford - - * config/mips/mips.md: Name the unspecs with define_constant. - (*HILO_delay): Rename to 'hilo_delay' (no star). - (reload_indi): Replace gen_rtx_UNSPEC with gen_hilo_delay. - (reload_outdi, reload_outsi): Likewise. - -2002-05-07 Kazu Hirata - - * toplev.c: Fix formatting. - -2002-05-07 Janis Johnson - - * config.in (ENABLE_RTL_FLAG_CHECKING): New. - * configure.in (ac_rtlflag_checking): New. - * doc/install.texi (--enable-checking): Document RTL flag checking. - -2002-05-07 Neil Booth - - * c-common.c (c_common_init): Set options->unsigned_wchar. - * cppinit.c (cpp_create_reader): Default unsigned_wchar, - group target dependencies. - (init_builtins, cpp_handle_option): Update. - * cpplex.c (cpp_interpret_charconst): Update. - * cpplib.h (struct cpp_options): Add unsigned_wchar, rename - signed_char to unsigned_char, group target dependencies. - * defaults.h (WCHAR_UNSIGNED): Remove. - * system.h (WCHAR_UNSIGNED, MAX_CHAR_TYPE_SIZE): Poison. -config: - * freebsd.h, interix.h, alpha/freebsd.h, arm/freebsd.h, - i386/386bsd.h, i386/beos-elf.h, i386/bsd386.h, i386/cygwin.h, - i386/djgpp.h, i386/freebsd-aout.h, i386/i386-interix.h, - i386/win32.h, ia64/freebsd.h, mips/netbsd.h, rs6000/freebsd.h, - sh/elf.h, sh/sh.h, sparc/freebsd.h: Remove WCHAR_UNSIGNED. -doc: - * tm.texi: Remove MAX_CHAR_TYPE_SIZE. - -2002-05-07 Mark Mitchell - - * fixinc/inclhack.def (windiss_math1): New fix. - (windiss_math2): Likewise. - (windiss_valist): Likewise. - * fixinc/fixincl.x: Regenerated. - -2002-05-07 Andreas Jaeger - - * genautomata.c (output_internal_min_issue_delay_func): Add - ATTRIBUTE_UNUSED to avoid warning with empty dfa. - (output_internal_trans_func): Likewise. - -Tue May 7 10:06:22 2002 Jeffrey A Law (law@redhat.com) - - * pa.c (hppa_profile_hook): Use force_reg to get the address - of the profile hook into an appropriate pseudo register. - -2002-05-07 Mark Mitchell - - * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -mwindiss. - (LINK_START_SPEC): Handle it. - (LINK_OS_SPEC): Likewise. - (CPP_SPEC): Likewise. - (STARTFILE_SPEC): Likewise. - (LIB_SPEC): Likewise. - (ENDFILE_SPEC): Likewise. Do not assume crtsavres.o is used on - all platforms. - (CRTSAVRES_DEFAULT_SPEC): New macro. - (LIB_WINDISS_SPEC): New macro. - (CPP_OS_WINDISS_SPEC): Likewise. - (STARTFILE_WINDISS_SPEC): Likewise. - (ENDFILE_WINDISS_SPEC): Likewise. - (LINK_START_WINDISS_SPEC): Likewise. - (LINK_OS_WINDISS_SPEC): Likewise. - * config/rs6000/windiss.h: New file. - -2002-05-07 Aldy Hernandez - - * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos. - -2002-05-06 David S. Miller - - * config/sparc/sparc.md (shift insns): Do not mask off - second operand, 'I' constraint and SHIFT_COUNT_TRUNCATED - take care of it. - -2002-05-06 Richard Henderson - - PR c++/6212 - * expr.c (highest_pow2_factor_for_type): New. - (expand_assignment): Use it. - -2002-05-06 Aldy Hernandez - - * config/rs6000/rs6000.md ("altivec_mtvscr"): Change to - unspec_volatile. - ("altivec_mfvscr"): Same. - -2002-05-06 Janis Johnson - - * rtl.h (struct rtx_def): Update comments. - (RTL_FLAG_CHECK[12345678]): New. (rtl_check_failed_flag): Declare. - (RTL_FLAG): New. (CLEAR_RTX_FLAGS): New. (flag access macros): Use - RTL_FLAG_CHECK macros with list of expected RTL codes. - * rtl.c (copy_rtx, shallow_copy_rtx): Use RTX_FLAG macro. - (rtl_check_failed_flag): New. - * reload1.c (reload): Use REG macro before changing rtx to MEM. - (reload_cse_noop_set_p): Check rtx code before using access macro. - * config/ia64/ia64.c (process_for_unwind_directive): Check rtx code - before using access macro. - -2002-05-06 Janis Johnson - - * doc/rtl.texi (Flags): Update to reflect current usage. - -2002-05-06 Roger Sayle - - PR opt/3995 - * fold-const.c (sign_bit_p): New function. - (fold) [EQ_EXPR]: Use this to convert (A & C) == 0 into A >= 0 and - (A & C) != 0 into A < 0, when constant C is the sign bit of A's type. - Reapply fold when converting (A & C) == C into (A & C) != 0. - (fold_binary_op_with_conditional_arg): Fix typo in comment. - -2002-05-07 Neil Booth - - * c-common.c (warn_multichar): New. - (c_common_init): Set CPP's warn_multichar. - * c-common.h (warn_multichar): New. - * c-decl.c (warn_multichar): Remove. - * c-lex.c (lex_charconst): Update. - * c-tree.h (warn_multichar): Remove. - * cppexp.c (eval_token): Sign-extend charconst value. - * cppinit.c (cpp_create_reader): Set warn_multichar. - * cpplex.c (cpp_interpret_charconst): Don't sign-extend - each character. Update prototype. Sign-extend the result. - * cpplib.h: Fix conditions. - (struct cpp_options): Add new warning flag. - (cpp_interpret_charconst): Update prototype. -doc: - * cpp.texi: Update documentation. - -2002-05-06 Vladimir Makarov - - * genautomata.c (form_the_same_automaton_unit_lists_from_regexp): - Fix typo in usage of allof instead of unit. - -2002-05-06 Richard Henderson - - * recog.c (if_test_bypass_p): Accept multiple set insns for OUT, - and any jump or call for IN. - -2002-05-06 Bernd Schmidt - - * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Define __SSE2_BUILTINS__ if - -msse2. - * config/i386/xmmintrin.h: Use it to conditionalize SSE2 support. - -2002-05-06 Roger Sayle - - * fold-const.c (lshift-double): Cast the high word to an unsigned - HOST_WIDE_INT when extracting sign bit to avoid compiler warning. - (div_and_round_double): Cast carry to a signed HOST_WIDE_INT to - avoid compiler warning. (fold): Remove redundant code from - BIT_AND_EXPR as integer operands are canonicalized to be arg1. - -2002-05-06 Jeff Law - - * pa-protos.h (hppa_fpstore_bypass_p): Declare. - * pa.c (pa_adjust_cost): Remove all true dependency cost - adjustments. Also remove support for non-DFA scheduling. - * pa.md (700, 7100, 7100lc, 7200, 7300): Use bypass mechanism - to adjust true dependency costs. Update various comments. - (7100lc, 7200, 7300 scheduling): Simplify by combining the - FP ALU & MPY units into a single unit. - -2002-05-06 Catherine Moore - - * config/v850/v850.c (compute_register_save_size): Make sure - to count all of the registers that will be saved. - -Mon May 6 18:03:11 CEST 2002 Jan Hubicka - - * i386.c (q_regs_operand): Use ANY_QI_REGS_P. - -2002-05-06 David S. Miller - - * config/sparc/sparc.c (emit_soft_tfmode_libcall): Do not - allow result to overlap input operands in memory. - -2002-05-06 Neil Booth - -doc: - * cpp.texi: Update multichar charconst docs. - -2002-05-06 Neil Booth - - * cpplex.c (cpp_interpret_charconst): Sign-extend each - character. Don't ignore excess characters. Treat - multicharacter character constants as signed. - (cpp_parse_escape): Clarify diagnostic. - -2002-05-05 Jakub Jelinek - - * config/sparc/sparc.md (ashlsi3): If shift count is const1_rtx, - use add instead of shift. - (ashldi3_sp64): Likewise. - (ashlsi3_const1, ashldi3_const1): Remove. - * config/sparc/sparc.h (PREDICATE_CODES): Add const1_operand. - * config/sparc/sparc.c (const1_operand): New. - -2002-05-05 Jason Thorpe - - * config.gcc (alpha*-*-netbsd*): Don't use crtstuff. - -2002-05-05 Jakub Jelinek - - PR target/6561 - * config/sparc/sparc.md (muldi3_v8plus): Handle %1 equal to %2. - -2002-05-05 Richard Henderson - - * config/alpha/alpha.c (alpha_adjust_cost): Remove everything but - memory latency adjustments. - (alpha_variable_issue): Remove. - (alpha_use_dfa_pipeline_interface): New. - (alpha_multipass_dfa_lookahead): New. - * config/alpha/alpha.md: Remove define_function_unit scheduling; - include new dfa scheduling. - (attr type): Add none. - (blockage): Use it. - * config/alpha/ev4.md: New. - * config/alpha/ev5.md: New. - * config/alpha/ev6.md: New. - -2002-05-05 David S. Miller - - * recog.c (store_data_bypass_p): Handle CLOBBER inside PARALLEL. - -2002-05-05 Kazu Hirata - - * cse.c: Fix formatting. - * emit-rtl.c: Likewise. - -2002-05-05 Vladimir Makarov - - * genautomata.c (initiate_states): Add additional guard to - initialize `units_array'. - -2002-05-05 Vladimir Makarov - - * genautomata.c (form_the_same_automaton_unit_lists_from_regexp, - process_unit_to_form_the_same_automaton_unit_lists, - form_the_same_automaton_unit_lists - check_unit_distributions_to_automata): New prototypes and - functions. - (check_automata): Rename it into `check_automata_insn_issues'. - (unit_decl): New fields `the_same_automaton_unit' and - `the_same_automaton_message_reported_p'. - (unit_decl_t): New typedef. - (the_same_automaton_lists): New gloval variable. - (unit_regexp, unit_set_el, units_array, units_cmp, - output_get_cpu_unit_code_func): Use the typedef. - (evaluate_max_reserv_cycles): Increment - `description->max_insn_reserv_cycles'. - (initiate_states): Don't increment `max_cycles_num'. - (transform_insn_regexps): Move code around transformation of - regexps from `generate'. - (generate): Remove call of `transform_insn_regexps'. - (expand_automata): Call `transform_insn_regexps' and - `check_unit_distributions_to_automata'. Check errors before - `generate'. - - * config/sparc/ultra3.md (us3_a0, us3_a1): Move the units into - automaton `ultrasparc3_1'. - -2002-05-05 Neil Booth - - * c-common.c (c_common_init): Set up CPP arithmetic. - * cppinit.c (cpp_create_reader): Default CPP arithmetic to - something reasonable for the host. - (sanity_checks): Add checks. - (cpp_read_main_file): Call sanity_checks() from here... - (cpp_post_options): ... not here. - * cpplex.c (cpp_interpret_charconst): Get max_chars right. - * cpplib.h (struct cpp_options): New member int_precision. - -2002-05-05 Franz Sirl - - * doc/install.texi (powerpc-*-linux-gnu*): Update build requirements. - -2002-05-04 David S. Miller - - * config/sparc/linux.h, config/sparc/linux64.h - (HANDLE_PRAGMA_PACK_PUSH_POP): Don't define twice. - - * config/sparc/sparc.c (sparc_rtx_costs): Describe costs of - more RTX codes. - * config/sparc/sparc.h (RTX_COSTS_CASES): List those new codes. - - * recog.c (store_data_bypass_p): Handle out_insn being a PARALLEL - of SETs. - -2002-05-05 Tim Josling - - * treelang; New directory for new sample language treelang. - -2002-05-04 Neil Booth - - * Makefile.in (c-lex.o): Update. - * c-lex.c: Include target.h. - (cb_register_builtins): New. - (init_c_lex): Set builtins callback. - * c-lex.h (cpp_define, cpp_assert): New prototypes. - * cppinit.c (init_builtins): Use callback, including for - GXX_WEAK. - * cpplib.h (struct cpp_callbacks): New member. - * target-def.h (TARGET_REGISTER_CPP_BUILTINS): New. - (TARGET_INITIALIZER): Update. - * target.h (struct gcc_target): New hook. - * tree.c (default_register_cpp_builtins): New. - * tree.h (default_register_cpp_builtins): New. -doc: - * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Document. - -2002-05-04 Neil Booth - - * cppinit.c (MAX_WCHAR_TYPE_SIZE): Move to cpplib.h - (cpp_post_options): Move sanity checks to... - (sanity_checks): New. - * cpplex.c (maybe_read_ucs): Fix prototype. - (parse_string, cpp_parse_escape): Cast for %c format specifier. - * cpplib.h (cppchar_t): Use unsigned long or unsigned long long - if necessary. - -2002-05-04 Bernd Schmidt - - * config/i386/i386.c (bdesc_2arg): Add a couple of missing SSE2 - builtins. Use V2DI patterns instead of TI for logical operations. - (ix86_init_mmx_sse_builtins): Add a couple of missing SSE2 builtins. - Correct definitions of psadbw, pmovmskb128, movntdq, cvtdq2ps. - (ix86_expand_builtins): Change the pattern used for movntdq. - * config/i386/i386.md (sse2_andv2di3, sse2_iorv2di3, sse2_xorv2di3, - sse2_nandv2di3): New patterns. - (sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3): Correct modes - on operands. - (sse2_movntv2di): Renamed from sse2_movntti and modes adjusted. - (cvtdq2pd): Correct mode on operand 1. - (sse2_umulsidi3): Describe without unspec. - (sse2_psadbw, mmx_psadbw): Describe with unspec; use more appropriate - machine modes. - (lshrv2di3): Renamed from sse2_lshrv2di3 and removed unspec. - (ashlv2di3): Likewise, from sse2_ashlv2di3. - (ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, - ashlv4si3, ashlv2di3): Use SImode for shift count. - (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti, lshrv2di3_ti, - lshrv4si3_ti, lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): - New patterns. - * config/i386/xmmintrin.h (__v2df, __v2di, __v4si, __v8hi, __v16qi): - New typedefs. - (__m128i, __m128d): New macros. - (_mm_add_pd, _mm_add_sd, _mm_sub_pd, _mm_sub_sd, _mm_mul_pd, - _mm_mul_sd, _mm_div_pd, _mm_div_sd, _mm_sqrt_pd, _mm_sqrt_sd, - _mm_min_pd, _mm_min_sd, _mm_max_sd, _mm_max_pd, _mm_and_pd, - _mm_andnot_pd, _mm_xor_pd, _mm_or_pd, _mm_cmpeq_pd, _mm_cmplt_pd, - _mm_cmple_pd, _mm_cmpgt_pd, _mm_cmpge_pd, _mm_cmpneq_pd, - _mm_cmpnlt_pd, _mm_cmpnle_pd, _mm_cmpngt_pd, _mm_cmpnge_pd, - _mm_cmpord_pd, _mm_cmpunord_pd, _mm_cmpeq_sd, _mm_cmplt_sd, - _mm_cmple_sd, _mm_cmpgt_sd, _mm_cmpge_sd, _mm_cmpneq_sd, - _mm_cmpnlt_sd, _mm_cmpnle_sd, _mm_cmpngt_sd, _mm_cmpnge_sd, - _mm_cmpord_sd, _mm_cmpunord_sd, _mm_comieq_sd, _mm_comilt_sd, - _mm_comile_sd, _mm_comigt_sd, _mm_comige_sd, _mm_comineq_sd, - _mm_ucomieq_sd, _mm_ucomieq_sd, _mm_ucomilt_sd, _mm_ucomile_sd, - _mm_ucomigt_sd, _mm_ucomige_sd, _mm_ucomineq_sd, _mm_cvtepi32_pd, - _mm_cvtepi32_ps, _mm_cvtpd_epi32, _mm_cvtpd_pi32, _mm_cvtpd_ps, - _mm_cvttpd_epi32, _mm_cvttpd_pi32, _mm_cvtpi32_pd, _mm_cvtps_epi32, - _mm_cvttps_epi32, _mm_cvtps_pd, _mm_cvtsd_si32, _mm_cvttsd_si32, - _mm_cvtsd_ss, _mm_cvtsi32_sd, _mm_cvtss_sd, _mm_unpackhi_pd, - _mm_unpacklo_pd, _mm_loadh_pd, _mm_storeh_pd, _mm_storel_pd, - _mm_movemask_pd, _mm_packs_epi16, _mm_packs_epi32, _mm_packus_epi16, - _mm_unpackhi_epi8, _mm_unpackhi_epi16, _mm_unpackhi_epi32, - _mm_unpacklo_epi8, _mm_unpacklo_epi16, _mm_unpacklo_epi32, - _mm_add_epi8, _mm_add_epi16, _mm_add_epi32, _mm_add_epi64, - _mm_adds_epi8, _mm_adds_epi16, _mm_adds_epu8, _mm_adds_epu16, - _mm_sub_epi8, _mm_sub_epi16, _mm_sub_epi32, _mm_sub_epi64, - _mm_subs_epi8, _mm_subs_epi16, _mm_subs_epu8, _mm_subs_epu16, - _mm_madd_epi16, _mm_mulhi_epi16, _mm_mullo_epi16, _mm_mul_pu16, - _mm_mul_epu16, _mm_sll_epi16, _mm_sll_epi32, _mm_sll_epi64, - _mm_sra_epi16, _mm_sra_epi32, _mm_srl_epi16, _mm_srl_epi32, - _mm_srl_epi64, _mm_slli_epi16, _mm_slli_epi32, _mm_slli_epi64, - _mm_srai_epi16, _mm_srai_epi32, _mm_srli_epi16, _mm_srli_epi32, - _mm_srli_epi64, _mm_and_si128, _mm_andnot_si128, _mm_or_si128, - _mm_xor_si128, _mm_cmpeq_epi8, _mm_cmpeq_epi16, _mm_cmpeq_epi32, - _mm_cmpgt_epi8, _mm_cmpgt_epi16, _mm_cmpgt_epi32, _mm_max_epi16, - _mm_max_epu8, _mm_min_epi16, _mm_min_epu8, _mm_movemask_epi8, - _mm_mulhi_epu16, _mm_maskmoveu_si128, _mm_avg_epu8, _mm_avg_epu16, - _mm_sad_epu8, _mm_stream_si32, _mm_stream_si128, _mm_stream_pd, - _mm_movpi64_epi64, _mm_clflush, _mm_lfence, _mm_mfence): New - functions. - (_mm_shufflehi_epi16, _mm_shufflelo_epi16, _mm_shuffle_epi32, - _mm_extract_epi16, _mm_insert_epi16, _mm_shuffle_pd): New macros. - -2002-05-04 Kazu Hirata - - * dwarf2out.c: Fix formatting. - * varasm.c: Likewise. - -2002-05-04 David Edelsohn - - PR c/6543 - * config/rs6000/rs6000.md (sCC pattern and splitter): Remove - clobber and use result as temporary value. - -Sat May 4 13:20:54 CEST 2002 Jan Hubicka - - * expr.c (force_operand): Use expand_simple_* to handle more - cases. - -2002-05-04 Neil Booth - - * c-lex.c (lex_string): Let cpp_parse_escape handles truncation - and sign-extension. - (lex_charconst): Update for change in prototype of - cpp_interpret_charconst. Extend from cppchar_t to HOST_WIDE_INT - appropriately. - * cpphash.h (BITS_PER_CPPCHAR_T): New. - * cppinit.c (cpp_create_reader): Initialize them for no - change in semantics. - (cpp_post_options): Add sanity checks. - * cpplex.c (cpp_parse_escape): Handle precision, sign-extension - and truncation issues. Calculate in type cppchar_t. - (MAX_CHAR_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Remove. - (cpp_interpret_charconst): Calculate in type cppchar_t. Handle - run-time dependent precision correctly. Return whether the - result is signed or not. - * cpplib.c (dequote_string): Use cppchar_t; update. - * cpplib.h (cppchar_signed_t): New. - struct cpp_options): New precision members. - (cpp_interpret_charconst, cpp_parse_escape): Update prototypes. - * cppexp.c (eval_token): Update. - -2002-05-03 David S. Miller - - * config/sparc/sparc-protos.h (sparc_rtx_costs): New. - * config/sparc/sparc.c (sparc_rtx_costs): New function - implementing RTX_COSTS and CONST_COSTS. - * config/sparc/sparc.h (CONST_COSTS): Delete. - (RTX_COSTS_CASES): Define. - (RTX_COSTS): Expand RTX_COSTS_CASES and use sparc_rtx_costs to do - the work. - - * config/sparc/sparc.md (DFA schedulers): Split out... - * config/sparc/cypress.md, config/sparc/hypersparc.md, - config/sparc/sparclet.md, config/sparc/supersparc.md, - config/sparc/ultra1_2.md, config/sparc/ultra3.md: ... into here. - - * config/sparc/sparc.c (LEAF_REGISTERS): Do not do ifdef - checks on it, always defined for SPARC. - - * config/sparc/sparc.h (REG_ALLOC_ORDER, REG_LEAF_ALLOC_ORDER): - Tweak, and add more detailed comments. - -2002-05-03 Zack Weinberg - - * Re-apply patch accidentally reverted with - DFA scheduler merge: remove all rules and variables to slurp - source files out of libiberty and rebuild them with HOST_CC. - ($(HOST_PREFIX_1)varray.o): New rule. - (genattrtab rule): Word wrap. - -2002-05-03 Jason Thorpe - - * config/i386/netbsd64.h (CPP_LP64_SPEC): Define. - (CPP_SUBTARGET_SPEC): Define. - (SUBTARGET_EXTRA_SPECS): Redefine, adding cpp_lp64 and - cpp_subtarget specs. - (CPP_SPEC): Redefine to include %(cpp_subtarget). - -2002-05-03 David S. Miller - - * target-defs.h (TARGET_SCHED_CYCLE_DISPLAY): Delete. - * target.h (struct gcc_target): Delete cycle_display member. - - * config/ia64/ia64.c (ia64_emit_insn_before): Put it back. - (rtx_needs_barrier): Delete reference to cycle_display unspec. - (ia64_sched_reorder2): Mention need for cycle display handling - once such notes exist. - -2002-05-03 Richard Henderson - - * real.c (etoasc): Strip most trailing zeros for clarity. - * sched-vis.c: Include real.h. - (print_value): Use REAL_VALUE_TO_DECIMAL as needed. - * Makefile.in (sched-vis.o): Add real.h. - -2002-05-03 David S. Miller - - * haifa-sched.c (rank_for_schedule): Revert 2002-05-02 change, - no longer needed. - -2002-05-03 Aldy Hernandez - - * config/rs6000/rs6000.c (altivec_expand_binop_builtin): Error out - when we get an out of range literal. - (altivec_expand_ternop_builtin): Same. - (altivec_expand_unop_builtin): Same. - (altivec_expand_builtin): Same, for dss. - (altivec_expand_builtin): Use trees instead of rtl when - determining literal argument validity. - -2002-05-03 David S. Miller - - Delete cycle display scheduling hook. - * config/ia64/ia64.c (ia64_cycle_display, - TARGET_SCHED_CYCLE_DISPLAY, ia64_emit_insn_before): Delete. - (ia64_sched_reorder2): Don't check for CODE_FOR_cycle_display - and use emit_insn_before instead of ia64_emit_insn_before. - * config/ia64/ia64.md (unspec usage): Delete cycle display. - (cycle_display): Delete insn pattern. - * config/sparc/sparc.md (unspec usage): Delete cycle display. - (cycle_display): Delete insn pattern. - * config/sparc/sparc.c (sparc_cycle_display, - TARGET_SCHED_CYCLE_DISPLAY): Delete. - * doc/md.texi (cycle_display): Don't mention. - * doc/tm.texi (TARGET_SCHED_CYCLE_DISPLAY): Likewise. - -2002-05-03 Richard Henderson - - * recog.c (store_data_bypass_p, if_test_bypass_p): New. - * recog.h: Declare them. - - * config/sparc/sparc.c (ultrasparc_store_bypass_p): Remove. - * config/sparc/sparc.md: Use store_data_bypass_p instead. - * config/sparc/sparc-protos.h: Update. - -2002-05-03 Jason Thorpe - - * config/sparc/netbsd-elf.c (CPP_SUBTARGET_SPEC64): Remove - -D__arch64__. Add -D_LP64. - (CPP_ARCH32_SPEC): Redefine to match the non-bi-arch version - from sparc.h. - (CPP_ARCH64_SPEC): Likewise. - (NO_BUILTIN_PTRDIFF_TYPE): Undef. - (NO_BUILTIN_SIZE_TYPE): Undef. - -2002-05-03 Vladimir Makarov - - * genautomata.c (min_issue_delay_pass_states): Change return type - in the prototype. - (min_issue_delay_pass_states): Change the algorithm. - (min_issue_delay): Set up min_insn_issue_delay for the state. - (output_min_issue_delay_table): Interchange the nested loops and - and initiate min_insn_issue_delay for states. - -Fri May 3 22:59:15 CEST 2002 Jan Hubicka - - * cfgcleanup.c (try_optimize_cfg): Call merge_block only when - jump is simplejump. - -Fri May 3 22:53:37 CEST 2002 Jan Hubicka - - * i386.c (expand_movstr, expand_clrstr): Fix inline-all-stringops - sequence. - -2002-05-03 Richard Henderson - - PR opt/6534 - * ifcvt.c (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): Insert new - code before JUMP, not EARLIEST. - -2002-05-03 Joseph S. Myers - - * c-format.c (check_format_info_main): Don't check for presence of - parameter for * width until after operand number has been read, - and only check for it if format parameters are available. - Fixes PR c/6547. - -2002-05-03 Jason Thorpe - - * config/alpha/netbsd.h (CPP_PREDEFINES): Add -D_LP64. - (LINK_SPEC): Undef before defining. - -2002-05-03 Jakub Jelinek - - PR preprocessor/6489 - * tradcpp.c (fixup_newlines): New. - (main, finclude): Use it. - -2002-05-03 Richard Sandiford - - * config/mips/elf64.h (UNIQUE_SECTION): Use mips_unique_section. - * config/mips/mips.c (mips_unique_section): Strip encoding from - decl name. - -2002-05-03 Jakub Jelinek - - * config/i386/i386.c (ix86_expand_int_movcc): Truncate to proper - mode. - -2002-05-03 Rainer Orth - - * doc/install.texi (Installing): Mention GCC 3.1 buildstats. - (Specific): Removed buildstats references. - (Specific, hppa*-hp-hpux11): Adjust for GCC versions > 3.0. - (Specific, sparc-sun-solaris2*): Update 64-bit hints for GCC 3.1. - Accomodate Solaris versions beyond 8. - (Specific, sparc-sun-solaris2.7): Update as path for GCC 3.1. - (Specific, *-*-solaris2.8): Removed, obsolete. - -2002-05-03 Jakub Jelinek - - PR target/6542 - * config/sparc/sparc.h (leaf_reg_remap): Remove const. - (CONDITIONAL_REGISTER_USAGE): For TARGET_FLAT make - fill leaf_reg_remap with identity. - * config/sparc/sparc.c (leaf_reg_remap): Remove const. - -2002-05-03 Kazu Hirata - - * config/h8300/crti.asm: Remove trailing spaces. - * config/h8300/h8300.c: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - -2002-05-02 Jason Merrill - - * defaults.h (BOOL_TYPE_SIZE): Move default here from cp/decl.c. - * c-decl.c (c_init_decl_processing): Use it. - * config/rs6000/darwin.h (BOOL_TYPE_SIZE): Define to INT_TYPE_SIZE. - * config/i960/i960.h (BOOL_TYPE_SIZE): Don't define. - * config/mcore/mcore.h (BOOL_TYPE_SIZE): Don't define. - -2002-05-03 Kazu Hirata - - * regrename.c: Fix formatting. - * tree.c: Likewise. - -Fri May 3 13:34:43 CEST 2002 Jan Hubicka - - * i386.md (attribute memory): Handle compares properly. - -Fri May 3 10:51:38 CEST 2002 Jan Hubicka - - * i386.md (sse_clrsf, sse_clrsi): Set memory attribute - to none. - -2002-05-02 Kazu Hirata - - * function.c: Fix formatting. - -2002-05-02 Jan Hubicka - - * haifa-sched.c (schedule_insn): Print table of instructions and - reservations. - (sched_block): Do not print ready list at verbosity level 1. - * sched-vis.c (print_insn): Make global. - * sched-ebb.c (ebb_print_insn): Rename from... - (print_insn): ... this one. - * sched-int.h (print_insn): Declare - -2002-05-02 Richard Henderson - - * haifa-sched.c (rank_for_schedule): Skip past last_scheduled_insn - emitted by cycle_display. - -2002-05-02 Loren J. Rittle - - * doc/install.texi (*-*-freebsd*): Update to latest status. - -2002-05-02 Jakub Jelinek - - PR target/6540 - * config.gcc (sparc*-*-solaris2*): Set float_format to i128. - * config/float-sparc.h: Assume 128-bit long double if - __LONG_DOUBLE_128__ is defined. - -2002-05-02 Vladimir Makarov - - * genattrtab.c (write_function_unit_info): Add a dummy element - when num_units == 0. - -2002-05-02 Herman A.J. ten Brugge - - * predict.c: (propagate_freq, estimate_bb_frequencies): Use - TYPE_MODE (double_type_node) instead of DFmode. - -Thu May 2 19:50:04 CEST 2002 Jan Hubicka - - * cfgrtl.c (try_redirect_by_replacing_jump): Do not kill computed - jumps post reload. - * toplev.c (rest_of_compilation): Revert Richard's patch. - -2001-05-02 John David Anglin - - * pa/x-ada (ADA_CFLAGS): Rename to X_ADA_CFLAGS. - -2002-05-02 Catherine Moore - - * config/v850/v850.h (TRAMPOLINE_TEMPLATE): Change r5 to r20. - -2002-05-02 Kazu Hirata - - * combine.c: Fix comment typos. - * expr.c: Likewise. - * genautomata.c: Likewise. - * stmt.c: Likewise. - * tree.h: Likewise. - -2002-05-02 Joseph S. Myers - - * doc/install.texi: State GNAT version requirements. - -2002-05-02 Nick Clifton - - * config/fr30/fr30.h (GO_IF_LEGITIMATE_ADDRESS): Accept any form - of the frame pointer or arg pointer register which strict register - checking is not enabled. - -2002-05-02 Aldy Hernandez - - * gcc.dg/altivec-8.c: New. - - * config/rs6000/rs6000.c (rs6000_legitimate_address): Disallow - PRE_INC and PRE_DEC for altivec modes. - -2002-05-01 Bruce Korb - - * fixinc/check.tpl(set-writable): make sure the function exists first - * fixinc/inclhack.def(alpha_assert): fix test_text - * fixinc/tests/base/assert.h: add in missing result - -2002-05-01 Jeff Law - - * pa.h (EXTRA_CONSTRAINT): Don't accept PIC addresses for the - 'T' constraint. - -2002-05-01 Joel Brobecker - - * dbxout.c (dbxout_type): Emit size information for range types, - as well, but only when using GDB extensions. - -2002-05-01 Richard Henderson - - * configure.in (HAVE_GAS_HIDDEN): Replace SPARC feature test with - target-independent gnu binutils date test. - -2002-05-01 Richard Henderson - - * cfgcleanup.c (merge_blocks_move_successor_nojumps): Emit dump - info before expunging the block. - -2002-05-01 Jakub Jelinek - - * cppinit.c (cpp_handle_option) [-dM]: Don't set no_output here... - (cpp_post_options): ...but here. Disable -dD, -dN and -dI when - -M -or -MM is in effect. - -2002-05-01 Zack Weinberg - - * config.gcc: Correct test of --enable-obsolete. Obsolete all - A29k configurations. - * doc/install.texi: Update to match. - -2002-05-01 Franz Sirl - - PR bootstrap/6514 - * varasm.c (globalize_decl): Compare DECL_ASSEMBLER_NAME to check - for duplicates. Always loop over whole list. - -Wed May 1 10:32:37 2002 Richard Kenner - - * reload.c (find_reloads, case 'p'): Set BADOP to 0. - -2002-05-01 Joel Sherrill - - * config/sparc/t-elf (sparc-rtems, sparc-elf): Build assembly - support routines. - -2002-05-01 Joel Sherrill - - * config/arm/rtems-elf.h: Add #undef TARGET_VERSION to prevent warning. - -2002-05-01 David Edelsohn - - * rs6000.md (abssi2_nopower): Convert to define_insn_and_split. - (nabs_nopower): Same. - (floatdisf2): New pattern. - (absdi2): Convert to define_insn_and_split. - (nabsdi2): Same. - (trunctfsf2): Same. - (floatditf2): Same. - (floatsitf2): Same. - (fix_trunctfdi2): Same. - (fix_trunctfsi2): Same. - -2002-05-01 Joseph S. Myers - - * doc/install.texi: Update Texinfo version requirement - documentation. - -2002-05-01 Jakub Jelinek - - PR target/6512, PR target/5628 - * config/sparc/sparc.md (movdf_insn_v9only_novis): Don't allow >= %f32 - when memory is not aligned. - (movdf_insn_v9only_vis): Likewise. - * config/sparc/sparc.h (SECONDARY_INPUT_RELOAD_CLASS): Request a FP_REGS - temporary for EXTRA_FP_REGS DFmode load from unaligned memory. - (SECONDARY_OUTPUT_RELOAD_CLASS): Similarly. - -2002-05-01 Aldy Hernandez - - * gcc.dg/altivec-7.c: New. - - * config/rs6000/altivec.h: Cleanup. - -2002-04-30 Aldy Hernandez - - * doc/invoke.texi (Option Summary): Add -mvrsave=. - (RS/6000 and PowerPC Options): Document -mvrsave=. - - * config/rs6000/rs6000.c (rs6000_altivec_vrsave): New global. - (rs6000_altivec_vrsave_string): Same. - (rs6000_override_options): Call rs6000_parse_vrsave_option. - (rs6000_parse_vrsave_option): New. - (rs6000_stack_info): Only generate vrsave instructions when - TARGET_ALTIVEC_VRSAVE. - - * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -mvrsave= option. - (rs6000_altivec_vrsave_string): Define extern. - (rs6000_altivec_vrsave): Same. - (TARGET_ALTIVEC_VRSAVE): New. - -2002-04-30 Richard Henderson - - PR opt/6516 - * toplev.c (rest_of_compilation): Don't run cross-jump before - bb-reorder. - -2002-04-30 Tom Rix - - * regrename.c (build_def_use, copyprop_hardreg_forward_1): Sanity - check which_alternative. - -2002-04-30 Kazu Hirata - - * cpplex.c: Fix comment formatting. - * function.c: Likewise. - * integrate.c: Likewise. - * regrename.c: Likewise. - * sibcall.c: Likewise. - * simplify-rtx.c: Likewise. - * tree-inline.c: Likewise. - -2002-04-30 John David Anglin - - * config.gcc (hppa1.1-*-pro*, hppa1.1-*-osf*, hppa1.1-*-rtems*, - hppa1.0-*-osf*, hppa1.1-*-bsd*, hppa1.1-*-hpux10*, hppa2*-*-hpux10*, - hppa1.0-*-hpux10*, hppa*64*-*-hpux11*, hppa1.1-*-hpux11*, - hppa2*-*-hpux11*, hppa1.0-*-hpux11*, hppa*-*-lites*): Define xmake_file. - * pa/t-linux, pa/t-pa, pa/t-pa64, t-pro (T_ADAFLAGS): Delete. - * pa/x-ada: New file. Define ADA_CFLAGS. - -2002-04-30 Hans-Peter Nilsson - - * config/mmix/mmix.h (MMIX_LAST_STACK_REGISTER_REGNUM): Renamed - from MMIX_LAST_REGISTER_FILE_REGNUM. - (NO_IMPLICIT_EXTERN_C): Remove cryptic obsolete comment. - (struct machine_function): New member highest_saved_stack_register - previously static variable in mmix.c. - (MACHINE_DEPENDENT_REORG): Define. - * config/mmix/mmix.c (highest_saved_stack_register): Deleted. - (MMIX_OUTPUT_REGNO): New. - (mmix_target_asm_function_prologue): Move calculation of last used - saved-stack-register into... - (mmix_machine_dependent_reorg): New function. Update to also handle - !TARGET_ABI_GNU. - (mmix_print_operand): Apply MMIX_OUTPUT_REGNO when emitting - register names, simplify somewhat by new variable regno. - : Remove fixed FIXME. Always emit highest used saved - register. - (mmix_print_operand_address): Apply MMIX_OUTPUT_REGNO when - emitting register names. - (mmix_asm_output_reg_push, mmix_asm_output_reg_pop): Ditto. - (mmix_dbx_register_number): Apply MMIX_OUTPUT_REGNO here too. - Remove fixed FIXME. - * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): - Declare. - - * config/mmix/mmix.md ("divmoddi4"): Update head comment. - -2002-04-30 Richard Henderson - - * config/sparc/sparc.c (emit_soft_tfmode_libcall, - emit_soft_tfmode_binop, emit_soft_tfmode_unop, emit_soft_tfmode_cvt, - emit_hard_tfmode_operation, emit_tfmode_binop, emit_tfmode_unop, - emit_tfmode_cvt): New. - * config/sparc/sparc.md (extendsftf2, extenddftf2, trunctfsf2, - trunctfdf2, floatsitf2, floatunssitf2, floatditf2, floatunsditf2, - fix_trunctfsi2, fixuns_trunctfsi2, fix_trunctfdi2, fixuns_trunctfdi2, - addtf3, subtf3, multf3, divtf3, sqrttf2): Use them. - * config/sparc/sparc-protos.h: Update. - -2002-04-30 Janis Johnson - - * install.texi (Final install): Add to the list of info to include - in a report of a successful bootstrap, and add link to 3.1 list. - -Tue Apr 30 19:15:36 CEST 2002 Jan Hubicka - - * i386.md (type): Add new SSE/MMX subtypes, remove usused fop1. - (mode): Add vector modes - (i387): Kill attribute. - (unit): New attribute. - (length_immediate): Grok new types. - (prefix_data16, prefix_rep, prefix_0f): Fix for SSE/MMX. - (modrm): Use "unit". - (memory): Handle MMX/SSE properly. - (scheduling descriptions): Kill uses of fop1. - (sse, mmx, fp patterns): Set type and mode properly. - -Tue Apr 30 09:31:59 2002 Jeffrey A Law (law@redhat.com) - - * pa.c (override_options): Default to PA8000 scheduling. - * doc/invoke.texi (HP-PA options): Mention newly added 7300 - scheduling parameter. - - * pa.md (7100lc, 7200, 7300 scheduling): Slightly refine - handling of double precision multiplies. - - * pa.md (7100lc, 7200, 7300 scheduling): Refine handling of - fpdiv and fpsqrt instructions. - (7200 & 7300 scheduling): Fix typo in handling of - store-load and store-store penalties. - -2002-04-30 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Use MIPS instead of Mips and - mips. Add two missing commas. - -2002-04-30 Paolo Carlini - - * doc/contrib.texi (Contributors): Update Paolo Carlini's - and Benjamin Kosnik's entries. - -2002-04-29 David S. Miller - - * config/sparc/sparc.h (BRANCH_COST, PREFETCH_BLOCK, - SIMULTANEOUS_PREFETCHES): Tune for UltraSPARC-III. - * config/sparc/sparc.md (call + jmp 32-bit peepholes): Likewise. - * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise. - -2002-04-29 Franz Sirl - - * combine.c (find_split_point): Use gen_int_mode. - -2002-04-29 Vladimir Makarov - - Merging code from dfa-branch: - - 2002-04-24 Vladimir Makarov - - * genautomata.c (output_reserv_sets): Fix typo. - - 2002-04-23 Vladimir Makarov - - * genautomata.c (output_reserv_sets): Remove - next_cycle_output_flag. - - Thu Apr 18 08:57:06 2002 Jeffrey A Law (law@redhat.com) - - * sched-rgn.c (init_ready_list): Make the DFA code handle - USE/CLOBBER insns in the same way as the traditional - scheduler. - (new_ready): Similarly.. - - 2002-04-17 Vladimir Makarov - - * haifa-sched.c (schedule_block): Change the DFA state only after - issuing insn. - - Wed Apr 17 15:38:36 2002 Jeffrey A Law (law@redhat.com) - - * pa.c (hppa_use_dfa_pipeline_interface): New function. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define. - (override_options): Add PA7300 scheduling support. - (pa_adjust_cost): Update various comments. Properly - handle anti and output dependencies when using the - DFA scheduler. - (pa_issue_rate): Add PA7300 scheduling support. - (pa_can_combine_p): Call extract_insn before calling - constrain_operands (taken from mainline tree). - * pa.h (enum processor_type): Add PROCESSOR_PA7300. - * pa.md (cpu attr): Add 7300. Rewrite pipeline - descriptions using DFA descriptions. Add PA7300 - scheduling support. - - 2002-03-30 David S. Miller - - Add UltraSPARC-III DFA scheduling support. - * config/sparc/sparc.md (define_attr type): Add fpcrmove. - Update FP conditional move on register insn patterns to use it, as - appropriate. - (define_attr cpu): Add ultrasparc3. - (define_attr us3load_type): New, update integer load patterns to - set it, as appropriate. - (define_automaton): Add ultrasparc3_0 and ultrasparc3_1. - (rest): Add UltraSPARC3 scheduling description. - * config/sparc/sparc.h (TARGET_CPU_ultrasparc3): New. - (PROCESSOR_ULTRASPARC3): New. - ({ASM,CPP}_CPU64_DEFAULT_SPEC): Handle ultrasparc3. - ({ASM,CPP}_CPU_SPEC): Likewise. - (REGISTER_MOVE_COST): Likewise. - (RTX_COSTS): Likewise. - * config/sparc/sparc.c (sparc_override_options, - sparc_initialize_trampoline, sparc64_initialize_trampoline, - sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead, - sparc_issue_rate): Likewise. - * config/sparc/sol2.h: Likewise. - * config/sparc/sol2-sld-64.h: Likewise. - * config/sparc/linux64.h: Likewise. - - 2002-03-22 Vladimir Makarov - - * doc/md.texi: Add comments about usage the latency time for the - different dependencies and about case when two or more conditions - in different define_insn_reservations returns TRUE for an insn. - - * doc/md.texi: Add reference for automaton based pipeline - description. - - 2002-03-04 Vladimir Makarov - - * doc/passes.texi: Add missed information about genattrtab. - - 2002-03-01 Vladimir Makarov - - * genautomata.c (output_automata_list_transition_code): Check - automata_list on NULL. - - 2002-02-28 Vladimir Makarov - - * genautomata.c (output_insn_code_cases, - output_automata_list_min_issue_delay_code, - output_automata_list_transition_code, - output_automata_list_state_alts_code): Comment the functions. - - 2002-02-22 Vladimir Makarov - - * genautomata.c (automata_list_el_t): New typedef. - (get_free_automata_list_el,free_automata_list_el, - free_automata_list, automata_list_hash, automata_list_eq_p, - initiate_automata_lists, automata_list_start, automata_list_add, - automata_list_finish, finish_automata_lists, - output_insn_code_cases, output_automata_list_min_issue_delay_code, - output_automata_list_transition_code, - output_automata_list_state_alts_code, add_automaton_state, - form_important_insn_automata_lists): New functions and prototypes. - (insn_reserv_decl): Add members important_automata_list and - processed_p. - (ainsn): Add members important_p. - (automata_list_el): New structure. - (first_free_automata_list_el, current_automata_list, - automata_list_table): New global variables. - (create_ainsns): Initiate member important_p. - (output_internal_min_issue_delay_func): Generate the switch and - call output_insn_code_cases. - (output_internal_trans_func, output_internal_state_alts_func): - Ditto. - (generate): Call initiate_automata_lists. - (automaton_states): New global variable. - (expand_automata): Call form_important_insn_automata_lists. - (write_automata): Call finish_automata_lists. - - 2002-02-21 Vladimir Makarov - - * genautomata.c (add_excls, add_presence_absence): Check that - cpu units in the sets belong the same automaton. - - * rtl.def (EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET): Add comment - about that cpu units in the sets belong the same automaton. - - * doc/md.texi: Ditto. - - 2001-12-20 Naveen Sharma - Nitin Gupta - - * config/sh/sh.c (sh_use_dfa_interface): New function. - - (sh_issue_rate): New Function. - TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE: define. - TARGET_SCHED_ISSUE_RATE: define. - - * config/sh/sh.md: Add DFA based pipeline description for SH4. - - (define_attr insn_class): New attribute used for DFA - scheduling. - (define_insn cmpgtsi_t): Set attribute insn_class mt_group. - (cmpgesi_t,cmpgtusi_t,cmpgeusi_t,cmpeqsi_t, - cmpeqdi_t): Likewise. - - (add,addc1,addsi3,subc,subc1,*subsi3_internal, - negc,negsi2,ashldi3_k,lshrdi3_k,ashrdi3_k): Set insn_class - ex_group. - (iorsi3,rotlsi3_1,rotlsi3_31,rotlsi3_16): Likewise. - - 2001-10-03 Vladimir Makarov - - * haifa-sched.c (queue_to_ready): Remove unnecessary condition for - break. - - 2001-10-03 Vladimir Makarov - - * genautomata.c (DFA_INSN_CODES_LENGTH_VARIABLE_NAME): New macro. - (output_dfa_insn_code_func): Expand dfa_insn_codes if it is - necessary. - (output_dfa_start_func): Initiate new variable insn_codes_length, - (write_automata): Output definition of the new variable. - - 2001-10-02 David S. Miller - - * haifa-sched.c (advance_one_cycle): New function. - (schedule_block): Use it. - (queue_to_ready): Use it, and also make sure to advance the DFA - state on all stall cycles, not just those where insn_queue links - are found. - - 2001-10-02 Richard Sandiford - - * haifa-sched.c (max_issue): Remove last_p argument. Only return - nonzero if the highest-priority instruction could be scheduled. - (choose_ready): Remove last argument from max_issue call. - - 2001-09-28 David S. Miller - - * config/sparc/sparc.c (sparc_use_sched_lookahead): Use 4 for - ultrasparc and 3 for other multi-issue sparcs. - - 2001-09-27 David S. Miller - - * config/sparc/sparc.md (cycle_display): New pattern. - * config/sparc/sparc.c (sparc_cycle_display): New. - (TARGET_SCHED_CYCLE_DISPLAY): Set it. - - 2001-09-25 David S. Miller - - Convert all of SPARC scheduling to DFA - * config/sparc/sparc.md: Kill all define_function_unit - directives and replace with DFA equivalent. - * config/sparc/sparc.c (ultrasparc_adjust_cost, - mark_ultrasparc_pipeline_state, ultra_cmove_results_ready_p, - ultra_fpmode_conflict_exists, ultra_find_type, - ultra_build_types_avail, ultra_flush_pipeline, - ultra_rescan_pipeline_state, ultrasparc_sched_reorder, - ultrasparc_variable_issue, ultrasparc_sched_init, - sparc_variable_issue, sparc_sched_reorder, ultra_code_from_mask, - ultra_schedule_insn, ultra_code_names, ultra_pipe_hist, - ultra_cur_hist, ultra_cycles_elapsed): Kill. - (sparc_use_dfa_pipeline_interface, sparc_use_sched_lookahead, - ultrasparc_store_bypass_p): New. - * config/sparc/sparc-protos.h (ultrasparc_store_bypass_p): - Declare. - - 2001-09-24 David S. Miller - - * haifa-sched.c (ready_remove): Fix thinko, we want to copy around - ready->vec[foo] not ready[foo]. - - 2001-09-07 Vladimir Makarov - - * doc/md.texi: Correct examples for define_insn_reservations - `mult' and `div'. - - 2001-09-07 Vladimir Makarov - - * genautomata.c (create_automata): Print message about creation of - each automaton. - (generate): Remove printing meease about creation of - automata. - - 2001-09-05 David S. Miller - - * config/sparc/linux.h: Set CPLUSPLUS_CPP_SPEC. - * config/sparc/linux64.h: Likewise. - - 2001-08-31 Vladimir Makarov - - * haifa-sched.c (insn_cost, schedule_insn, queue_to_ready, - schedule_block, sched_init, sched_finish): Add missed calls of - use_dfa_pipeline_interface. - - * sched-rgn.c (init_ready_list, new_ready, debug_dependencies): - Ditto. - - * sched-vis.c (get_visual_tbl_length): Ditto. - - 2001-08-27 Richard Henderson - - * genattr.c (main): Emit state_t even when not doing scheduling. - - 2001-08-27 Richard Henderson - - * genautomata.c (expand_automata): Always create a description. - - 2001-08-27 Vladimir Makarov - - * rtl.def (DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, EXCLUSION_SET, - PRESENCE_SET, ABSENCE_SET, DEFINE_BYPASS, DEFINE_AUTOMATON, - AUTOMATA_OPTION, DEFINE_RESERVATION, DEFINE_INSN_RESERVATION): New - RTL constructions. - - * genattr.c (main): New variable num_insn_reservations. Increase - it if there is DEFINE_INSN_RESERVATION. Output automaton based - pipeline hazard recognizer interface. - - * genattrtab.h: New file. - - * genattrtab.c: Include genattrtab.h. - (attr_printf, check_attr_test, make_internal_attr, - make_numeric_value): Move protypes into genattrtab.h. Define them - as external. - (num_dfa_decls): New global variable. - (main): Process DEFINE_CPU_UNIT, DEFINE_QUERY_CPU_UNIT, - DEFINE_BYPASS, EXCLUSION_SET, PRESENCE_SET, ABSENCE_SET, - DEFINE_AUTOMATON, AUTOMATA_OPTION, DEFINE_RESERVATION, - DEFINE_INSN_RESERVATION. Call expand_automata and write_automata. - - * genautomata.c: New file. - - * rtl.h (LINK_COST_ZERO, LINK_COST_FREE): Remove them. - - * sched-int.h: (curr_state): Add the external definition for - automaton pipeline interface. - (haifa_insn_data): Add comments for members blockage and units. - - * target-def.h (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, - TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, - TARGET_SCHED_DFA_POST_CYCLE_INSN, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, - TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): New - macros. - (TARGET_SCHED): Use the new macros. - - * target.h (use_dfa_pipeline_interface, init_dfa_pre_cycle_insn, - dfa_pre_cycle_insn, init_dfa_post_cycle_insn, dfa_post_cycle_insn, - first_cycle_multipass_dfa_lookahead, init_dfa_bubbles, - dfa_bubble): New members in gcc_target.sched. - - * haifa-sched.c (insert_schedule_bubbles_p): New variable. - (MAX_INSN_QUEUE_INDEX): New macro for automaton interface. - (insn_queue): Redefine it as pointer to array. - (NEXT_Q, NEXT_Q_AFTER): Use MAX_INSN_QUEUE_INDEX instead of - INSN_QUEUE_SIZE. - (max_insn_queue_index_macro_value): New variable. - (curr_state, dfa_state_size, ready_try): New varaibles for - automaton interface. - (ready_element, ready_remove, max_issue): New function prototypes - for automaton interface. - (choose_ready): New function prototype. - (insn_unit, blockage_range): Add comments. - (unit_last_insn, unit_tick, unit_n_insns): Define them for case - FUNCTION_UNITS_SIZE == 0. - (insn_issue_delay, actual_hazard_this_instance, schedule_unit, - actual_hazard, potential_hazard): Add comments. - (insn_cost): Use cost -1 as undefined value. Remove - LINK_COST_ZERO and LINK_COST_FREE. Add new code for automaton - pipeline interface. - (ready_element, ready_remove): New functions for automaton - interface. - (schedule_insn): Add new code for automaton pipeline interface. - (queue_to_ready): Add new code for automaton pipeline interface. - Use MAX_INSN_QUEUE_INDEX instead of INSN_QUEUE_SIZE. - (debug_ready_list): Print newline when the queue is empty. - (max_issue): New function for automaton pipeline interface. - (choose_ready): New function. - (schedule_block): Add new code for automaton pipeline interface. - Print ready list before scheduling each insn. - (sched_init): Add new code for automaton pipeline interface. - Initiate insn cost by -1. - (sched_finish): Free the current automaton state and finalize - automaton pipeline interface. - - * sched-rgn.c: Include target.h. - (init_ready_list, new_ready, debug_dependencies): Add new code for - automaton pipeline interface. - - * sched-vis.c: Include target.h. - (get_visual_tbl_length): Add code for automaton interface. - (target_units, print_block_visualization): Add comments. - - * Makefile.in (GETRUNTIME, HASHTAB, HOST_GETRUNTIME, HOST_HASHTAB, - USE_HOST_GETRUNTIME, USE_HOST_HASHTAB, HOST_VARRAY): New variables. - (sched-rgn.o, sched-vis.o): Add new dependency file target.h. - (getruntime.o, genautomata.o): New entries. - (genattrtab.o): Add new dependency file genattrtab.h. - (genattrtab): Add new dependencies. Link it with `libm.a'. - (getruntime.o, hashtab.o): New entries for canadian cross. - - * doc/md.texi: Description of automaton based model. - - * doc/tm.texi (TARGET_SCHED_ISSUE_RATE, TARGET_SCHED_ADJUST_COST): - Add comments. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, - TARGET_SCHED_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_DFA_POST_CYCLE_INSN, - TARGET_SCHED_INIT_DFA_POST_CYCLE_INSN, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, - TARGET_SCHED_INIT_DFA_BUBBLES, TARGET_SCHED_DFA_BUBBLE): The new - hook descriptions. - (TRADITIONAL_PIPELINE_INTERFACE, DFA_PIPELINE_INTERFACE, - MAX_DFA_ISSUE_RATE): New macro descriptions. - - * doc/contrib.texi: Add dfa based scheduler contribution. - - * doc/gcc.texi: Add more information about genattrtab. - -Mon Apr 29 17:19:10 2002 Richard Kenner - - * reload1.c (eliminate_regs, case SUBREG): Fix typo in - adjust_address_nv call. - -2002-04-29 Janis Johnson - - * doc/install.texi (Testing): Provide additional information, and - a stronger encouragement, for running the testsuites. - -2002-04-29 DJ Delorie - - * config/mips/mips.c (mips_parse_cpu): Warn if the CPU name is - given in upper case. - -2002-04-29 Rainer Orth - - * fixinc/inclhack.def (solaris_widec): Include in - Solaris 2 if missing. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/widec.h: New file. - -2002-04-29 Nick Clifton - - * toplev.c (f_options): Add "profile" switch so that - -fno-profile can be used to disable -p. - -2002-04-29 Bernd Schmidt - - * c-common.c (type_for_mode): Add support for V2DFmode, V2DImode, - UV2DImode. - * tree.c (build_common_tree_nodes_2): Likewise. - * tree.h (enum tree_index): Likewise. - (V2DF_type_node, V2DI_type_node, unsigned_V2DI_type_node): Define. - - * config/i386/i386.c (bdesc_comi, bdesc_2arg, bdesc_1arg): Add SSE2 - entries. - (init_mmx_sse_builtins): Initialize SSE2 builtins. - (ix86_expand_builtin): Add support for SSE2 builtins. - * config/i386/i386.h (VALID_SSE2_REG_MODE): New macro. - (VALID_SSE_REG_MODE): Use it. - (VECTOR_MODE_SUPPORTED_P): Allow SSE2 modes here as well. - (enum ix86_builtins): Add SSE2 builtins. - * config/i386/i386.md (movv2df_internal, movv2df, movv8hi_internal, - movv8hi, movv16qi_internal, movv16qi, pushv2df, pushv8hi, pushv16qi, - addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3, vmmulv2df3, - divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3, vmsminv2df3, - sse2_anddf3, sse2_nanddf3, sse2_iordf3, sse2_xordf3, sqrtv2df2, - vmsqrtv2df2, maskcmpv2df3, maskncmpv2df3, vmmaskcmpv2df3, - vmmaskncmpv2df3, sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, - sse2_maskmovdqu, sse2_movntv2df, sse2_movntti, sse2_movntsi, cvtdq2ps, - cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq, cvtpd2pi, - cvttpd2pi, cvtpi2pd, cvtsd2si, cvttsd2si, cvtsi2sd, cvtsd2ss, - cvtss2sd, cvtpd2ps, cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, - ssaddv16qi3, ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, - subv4si3, subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, - mulv8hi3, smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3, - sse2_umulv2siv2di3, sse2_pmaddwd, sse2_clrti, sse2_uavgv16qi3, - sse2_uavgv8hi3, sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, - sse2_pshuflw, sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, - gtv8hi3, gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, - ashrv8hi3, ashrv4si3, lshrv8hi3, lshrv4si3, sse2_lshrv2di3, - ashlv8hi3, ashlv4si3, sse2_ashlv2di3, sse2_ashlti3, sse2_lshrti3, - sse2_unpckhpd, sse2_unpcklpd, sse2_packsswb, sse2_packssdw, - sse2_packuswb, sse2_punpckhbw, sse2_punpckhwd, sse2_punpckhdq, - sse2_punpcklbw, sse2_punpcklwd, sse2_punpckldq, sse2_movapd, - sse2_movupd, sse2_movdqa, sse2_movdqu, sse2_movdq2q, sse2_movq2dq, - sse2_movhpd, sse2_movlpd, sse2_loadsd, sse2_movsd, sse2_storesd, - sse2_shufpd, sse2_clflush, sse2_mfence, mfence_insn, sse2_lfence, - lfence_insn): New patterns. - (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Renamed from - sse_andti3_sse2, sse_nandti3_sse2, sse_iorti3_sse2, sse_xorti3_sse2. - -Mon Apr 29 17:03:24 CEST 2002 Jan Hubicka - - * i386.md (sse_mov?fcc*): Revert patch of Mar 14th. - -2002-04-29 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add Paolo Carlini and - Janis Johnson. - Update Richard Henderson, Jakub Jelinek, and Mark Mitchell. - Refer to Objective-C instead of ObjC, SPARC instead of sparc, - and CPU instead of cpu. - -Mon Apr 29 13:36:41 CEST 2002 Jan Hubicka - - * toplev.c (flag_if_conversion, flag_if_conversion2): New static - variables. - (lang_independent_options): Add -fif-conversion, -fif-conversion2 - (rest_of_compilation): Do if conversion only when asked for. - (parse_options_and_default_flags): Set new variables to 1 for -O1 - * invoke.texi (-fif-conversion, -fif-conversion2): Document. - -Mon Apr 29 13:02:50 CEST 2002 Jan Hubicka - - * i386.c (dbx64_register_map): Fix typo. - -Mon Apr 29 12:18:35 CEST 2002 Jan Hubicka - - * predict.c (real_zero, real_one, real_almost_one, real_br_prob_base, - real_one_half, real_bb_freq_max): New static variables. - (debug_profile_bbauxs): Kill. - (process_note_predictions): Kill unused variable. - (block_info_def, edge_info_def): Use REAL_VALUE_TYPE instead of - volatile double. - (propagate_freq): Use REAL_ARITHMETICS. - (estimate_bb_frequencies): Likevise; init new static variables. - * Makefile.in (predict.o): Add dependency on real.h - -2002-04-28 David S. Miller - - PR target/6500 - * config/sparc/sparc.md (prefetch): Emit properly for 32-bit vs. - 64-bit TARGET_V9. Do not use prefetch page, use prefetch for - several {reads,writes} instead. - * config/sparc/sparc.h (PREFETCH_BLOCK, SIMULTANEOUS_PREFETCHES): - Define. - -2002-04-27 David S. Miller - - PR target/6494 - * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Be mindful - of the stack bias. - - * config/sparc/linux.h, config/sparc/linux64.h: Don't bother - including signal.h and sys/ucontext.h, not needed. - -2002-04-29 Hans-Peter Nilsson - - * varasm.c (output_constant_def): Correct test for not calling - ENCODE_SECTION_INFO for INTEGER_CST. - -2002-04-29 Neil Booth - - * cppexp.c (lex): Move some code to _cpp_parse_expr, but - keep most cases as function eval_token. - (eval_token): New function. - (_cpp_parse_expr): Read token here for improved diagnostics. - Don't use op_as_text. Detect bad ':' here. - (reduce): Don't detect bad ':' here. - (op_as_text): Remove. - * cpphash.h (_cpp_test_assertion): Change prototype. - * cpplib.c (_cpp_test_assertion): Change prototype. - -2002-04-28 Richard Henderson - - PR c/5154 - * ggc-common.c (ggc_mark_rtx_children_1): Rename from... - (ggc_mark_rtx_children): New. - -2002-04-28 Jakub Jelinek - - PR target/6496 - * config/sparc/sparc.md (call + jump 32-bit peepholes): Disable jump - after call peepholes for UltraSPARC. - (call + jump 64-bit peepholes): Remove. - -2002-04-28 Franz Sirl - - PR c/6497 - * config/rs6000/rs6000.md (sCC patterns): Remove clobber and use - result as temporary value. - -2002-04-28 Jakub Jelinek - - PR c++/6396 - * toplev.c (rest_of_compilation): Only run regrename and copy - propagation if optimizing. - -2002-04-28 Jakub Jelinek - - PR optimization/6475 - * reload1.c (alter_reg): Only call set_mem_expr if I is home pseudo - register of REGNO_DECL (i). - * Makefile.in (reload1.o): Add $(TREE_H). - -2002-04-28 Neil Booth - - * cppexp.c (lex): Update to use state.skip_eval. - (struct op): Remove prio and flags members. - (FLAG_BITS, FLAG_MASK, PRIO_SHIFT, EXTRACT_PRIO, EXTRACT_FLAGS, - SHORT_CIRCUIT, RIGHT_ASSOC, ..._PRIO, op_to_prio): Remove. - (LEFT_ASSOC): New macro. - (optab): New table of operator priorities and flags. - (SHIFT): Update. - (_cpp_parse_expr): Clean up logic. Return bool. Use a - malloc-ed parser stack. - (reduce): New; reduce the operator stack. - (_cpp_expand_op_stack): Expand the operator stack as necessary. - * cpphash.h (struct op): Predeclare. - (struct cpp_reader): New members op_stack, op_limit. - (struct lexer_state): New member skip_eval. - (_cpp_parse_expr): Update. - (_cpp_expand_op_stack): New. - * cpplib.c (do_if): Update. - * cppinit.c (cpp_create_reader): Create op stack. - (cpp_destroy): And destroy it. - * cpplib.h (CPP_LAST_CPP_OP): Correct. - (TTYPE_TABLE): Correct. - -2002-04-28 Franz Sirl - - PR c/6343 - * c-decl.c (duplicate_decls): Call merge_weak. - * c-pragma.c (apply_pragma_weak): Warn about misuse. - * output.h (merge_weak): Prototype merge_weak. - * varasm.c (merge_weak): New function. - (declare_weak): Make sure we don't give an error on VAR_DECLs. - Mark RTL with SYMBOL_REF_WEAK. - -2002-04-27 Kurt Garloff - - * tree-inline.c (inlinable_function_p): Improve heuristics - by using a smoother function to cut down allowable inlinable size. - * param.def: Add parameters max-inline-insns-single, - max-inline-slope, min-inline-insns that determine the exact - shape of the above function. - * param.h: Likewise. - -2002-04-26 Richard Henderson - - * c-parse.in (malloced_yyss, malloced_yyvs): New. - (yyoverflow): Re-add. Set them. - (free_parser_stacks): New. - * c-common.h: Declare it. - * c-lex.c (c_common_parse_file): Call it. - -2002-04-26 Richard Henderson - - * cfgrtl.c (tidy_fallthru_edge): Don't use next_real_insn - for fallthru search. - -2002-04-26 Eric Christopher - - PR optimization/3700 - * config/mips/mips.c (mips_issue_rate): Define. New function. - (TARGET_SCHED_ISSUE_RATE): Use. - -2002-04-25 David S. Miller - - PR target/6422 - * reorg.c (optimize_skip): Do not allow exception causing - instructions to be considered for delay slots. - (fill_simply_delay_slots, fill_slots_from_thread): Likewise. - (relax_delay_slots): Do not try to consider exception causing - instructions as redundant. - -2002-04-26 Richard Henderson - - PR c/5225 - * c-typeck.c (build_unary_op) [CONVERT_EXPR]: Invoke non_lvalue. - -2002-04-26 Mark Mitchell - - PR bootstrap/6445 - * config/i386/i386.md (untyped_call): Return the value in a float - register if TARGET_FLOAT_RETURNS_IN_80387, not just if - TARGET_80387. - -2002-04-26 Alexandre Oliva - - * tree.c (tree_int_cst_lt): Compare constants whose types differ - in unsigned-ness correctly. - -2002-04-26 John David Anglin - - * pa.h (FUNCTION_OK_FOR_SIBCALL): Don't do sibcalls when using the - portable runtime model. - -2002-04-26 Richard Henderson - - * c-parse.in (yyoverflow): Revert. - -2002-04-26 David Edelsohn - Richard Henderson - - * config/rs6000/rs6000.md (sCC pattern): Remove clobber and use - result as temporary value. - -2002-04-26 Richard Henderson - - PR c/3581 - * c-common.c (fix_string_type): Split out of ... - (combine_strings): ... here. Take a varray, not a tree list. - (c_expand_builtin_printf): Use fix_string_type. - * c-common.h: Update decls. - * c-parse.in (string): Remove. Update all uses to use STRING - instead, and not call combine_strings. - (yylexstring): New. - (_yylex): Use it. - * c-typeck.c (simple_asm_stmt): Don't call combine_strings. - (build_asm_stmt): Likewise. - * objc/objc-act.c (my_build_string): Use fix_string_type. - (build_objc_string_object): Build varray for combine_strings. - -2002-04-26 Bo Thorsen - - * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Define for - x86-64. - -2002-04-26 Neil Booth - - * cppexp.c (CPP_UMINUS, CPP_UPLUS): New. - (HAVE_NO_R_OPERAND): Remove. - (HAVE_VALUE): Remove. - (op_to_prio): Update. - (UNARY): Don't alter flags. - (_cpp_parse_expr): want_value used to indicate whether - a number or unary operator is expected next. Distinguish - unary and binary +/-. - (op_as_text): Update for unary operators. - -2002-04-25 Richard Henderson - - PR c/2161 - * c-parse.in (yyoverflow): New. - -2002-04-25 Richard Henderson - - PR c/2098 - * c-common.c (shorten_compare): Simplfy conditions leading to - the generation of a warning. - -2002-04-25 Richard Henderson - - PR c/2035 - * expmed.c (extract_bit_field): Fall through to generic code rather - than aborting on subreg special case. - -2002-04-25 David S. Miller - - * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Add back check - for DECL being NULL. - -2002-04-25 Steve Christiansen - - * doc/md.texi (Machine Constraints): Add IA-64 constraints. - -2002-04-25 Eric Botcazou - - * c-decl.c (grokdeclarator): Remove outdated ??? note - on invalid declaration of flexible array members. - -2002-04-25 Richard Henderson - - * doc/invoke.texi: Document -gdwarf{,-2} vs debug level. - -2002-04-25 Ulrich Weigand - - * config/s390/s390.c (s390_emit_epilogue): Always restore registers - needed by the compiler, even if they are used as global regs. - -2002-04-25 Matt Hiller - - * mips.c (mips_class_max_nregs, mips_register_move_cost): New - functions. - * mips.h (CLASS_MAX_NREGS, REGISTER_MOVE_COST): Redefine as calls - of the corresponding functions. - * mips-protos.h (mips_class_max_nregs, mips_register_move_cost): - New prototypes. - -2002-04-25 Matt Hiller - - * config/mips/mips.h (mips_sw_reg_names): Declare as extern. - - (ALL_COP_ADDITIONAL_REGISTER_NAMES): New macro. - (FIRST_PSEUDO_REGISTER): Redefine considering coprocessor - registers, adjust comment accordingly. - (FIXED_REGISTERS, CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTERS, - reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGISTER_NAMES, - DEBUG_REGISTER_NAMES, REG_ALLOC_ORDER): Adjust to include entries - for coprocessor registers. - (ADDITIONAL_REGISTER_NAMES): Include - ALL_COP_ADDITIONAL_REGISTER_NAMES. - - (COP0_REG_FIRST, COP0_REG_LAST, COP0_REG_NUM, - COP2_REG_FIRST, COP2_REG_LAST, COP2_REG_NUM, - COP3_REG_FIRST, COP3_REG_LAST, COP3_REG_NUM, - COP0_REG_P, COP2_REG_P, COP3_REG_P, ALL_COP_REG_P, - COPNUM_AS_CHAR_FROM_REGNUM, COP_REG_CLASS_P): New macros. - - (mips_char_to_class): Adjust comment to include coprocessor - constraint letters. - - * config/mips/mips.c (coprocessor_operand, coprocessor2_operand): - New functions. - (mips_reg_names, mips_regno_to_class): Include coprocessor - information. - (mips_sw_reg_names): Ditto, make non-static. - (mips_move_1word): Handle moves to and from coprocessor registers. - (mips_move_2words): Handle moves to and from coprocessor - registers. - (mips_class_max_nregs, mips_register_move_cost): Handle - coprocessor register classes. - (override_options): Initialize mips_char_to_class and - mips_hard_regno_mode_ok properly for coprocessor registers. - - * config/mips/mips.md (movdi_internal, movdi_internal2, - movsi_internal1, movsi_internal2): Add constraint-sets for - coprocessor registers. - * testsuite/gcc.c-torture/mipscop-1.c: New testcase. - * testsuite/gcc.c-torture/mipscop-1.x: Disable above if target - isn't mips. - * testsuite/gcc.c-torture/mipscop-2.c: New testcase. - * testsuite/gcc.c-torture/mipscop-2.x: Disable above if target - isn't mips. - * testsuite/gcc.c-torture/mipscop-3.c: New testcase. - * testsuite/gcc.c-torture/mipscop-3.x: Disable above if target - isn't mips. - * testsuite/gcc.c-torture/mipscop-4.c: New testcase. - * testsuite/gcc.c-torture/mipscop-4.x: Disable above if target - isn't mips. - - * doc/tm.texi: Document feature. - -2002-04-25 Neil Booth - - * integrate.c (function_attribute_inlinable_p): Simplify. - Check the table pointer is not NULL. - -2002-04-25 Steven Bosscher - - * doc/c-tree.texi: Fix typo in introduction. - -2002-04-25 Neil Booth - - * c-common.h (c_common_parse_file): Update. - * c-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. - * c-lex.c (YYDEBUG): Get from c-lex.h. - (c_common_parse_file): Update. - * c-lex.h (YYDEBUG, yydebug): New. - * c-parse.in (YYDEBUG): Get from c-lex.h. - (c_set_yydebug): Remove. - * c-tree.h (c_set_yydebug): Remove. - * langhooks-def.h (lhd_do_nothing_i): New. - (lhd_set_yydebug, LANG_HOOKS_SET_YYDEBUG): Remove. - (LANG_HOOKS_PARSE_FILE, LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_do_nothing_i): New. - (lhd_set_yydebug): Remove. - * langhooks.h (struct lang_hooks): Update. - * toplev.c (set_yydebug): New. - (compile_file): Update call to parse_file hook. - (decode_d_option): Update. -objc: - * objc-lang.c (LANG_HOOKS_SET_YYDEBUG): Remove. - -Wed Apr 24 23:45:37 2002 J"orn Rennecke - - * loop.c (load_mems): Don't change the interface of called functions. - - * calls.c (expand_call): Take current_function_pretend_args_size - into account when setting argblock for sibcalls. - -2002-04-24 Matt Hiller - - * cpplex.c: Remove conditional #undef of MULTIBYTE_CHARS. - * c-lex.c: Ditto. - - * cpplex.c (skip_line_comment): Process comment one multibyte - character at a time rather than one char at a time, if - appropriate. - (parse_string): Process string one multibyte character at a time - rather than one char at a time, if appropriate. - * c-lex.c (lex_string): Lex and copy multibyte strings - appropriately. - * cpplib.h (cppchar_t): Change to unsigned. - -2002-04-24 Richard Henderson - - PR c/3467 - * c-decl.c (grokdeclarator): Don't pedwarn variable sized arrays - for c99. - -Wed Apr 24 21:51:54 2002 J"orn Rennecke - - * sh.c (sh_va_arg): If argument was passed by reference, - dereference the pointer. - - * sh.h (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic. - - * sh.md (divsi3_i4_media): Use match_operand for input values - rather than hard registers. - (divsi3 - TARGET_SHMEDIA_FPU case): Don't ferry values - unnecessarily through hard registers. Keep copies of pseudo - registers outside of the libcall sequence. - - * sh.md (casesi_shift_media): Add modes. - - * sh.h (RETURN_IN_MEMORY): Return variable size BLKmode - values in memory. - -2002-04-24 Neil Booth - - * attribs.c (c_common_attribute_table): Move table and handlers - to c-common.c. - (format_attribute_table, lang_attribute_table, - lang_attribute_common): Remove. - (init_attributes): Replace NULL pointers with pointers to the - empty table. - (handle_packed_attribute, handle_nocommon_attribute, - handle_common_attribute, handle_noreturn_attribute, - handle_noinline_attribute, handle_always_inline_attribute, - handle_used_attribute, handle_unused_attribute, - handle_const_attribute, handle_transparent_union_attribute, - handle_constructor_attribute, handle_destructor_attribute, - handle_mode_attribute, handle_section_attribute, - handle_aligned_attribute, handle_weak_attribute, - handle_alias_attribute, handle_visibility_attribute, - handle_no_instrument_function_attribute, handle_malloc_attribute, - handle_no_limit_stack_attribute, handle_pure_attribute, - handle_deprecated_attribute, handle_vector_size_attribute, - vector_size_helper): Move to c-common.c. - * c-common.c (c_common_attribute_table, - handle_packed_attribute, handle_nocommon_attribute, - handle_common_attribute, handle_noreturn_attribute, - handle_noinline_attribute, handle_always_inline_attribute, - handle_used_attribute, handle_unused_attribute, - handle_const_attribute, handle_transparent_union_attribute, - handle_constructor_attribute, handle_destructor_attribute, - handle_mode_attribute, handle_section_attribute, - handle_aligned_attribute, handle_weak_attribute, - handle_alias_attribute, handle_visibility_attribute, - handle_no_instrument_function_attribute, handle_malloc_attribute, - handle_no_limit_stack_attribute, handle_pure_attribute, - handle_deprecated_attribute, handle_vector_size_attribute, - vector_size_helper): Move from attribs.c. - * c-common.h (c_common_attribute_table, - c_common_format_attribute_table): New. - * c-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, - LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine. - * langhooks-def.h (LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE, - LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, LANG_HOOKS_ATTRIBUTE_TABLE): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): 3 new attribute hooks. - * target-def.h (TARGET_ATTRIBUTE_TABLE): Default to NULL. - * target.h: Update comment. - * tree.c (default_target_attribute_table): Remove. - * tree.h (default_target_attribute_table, format_attribute_table, - lang_attribute_table, lang_attribute_common): Remove. -objc: - * objc-lang.c (LANG_HOOKS_COMMON_ATTRIBUTE_TABLE, - LANG_HOOKS_FORMAT_ATTRIBUTE_TABLE): Redefine. - -2002-04-24 Jason Merrill - - * dwarf2.h (enum dwarf_attribute): Add DW_AT_GNU_vector. - * dwarf2out.c (dwarf_attr_name): Support it. - (gen_array_type_die): Emit it. - (lookup_type_die): No special handling for VECTOR_TYPE. - (gen_type_die): Hand VECTOR_TYPE off to gen_array_type_die. - -2002-04-24 Richard Henderson - - * config/mips/mips.md (movdi_usd): Renumber. - -2002-04-24 David S. Miller - - PR target/6420 - * config/sparc/sparc.h (FUNCTION_OK_FOR_SIBCALL): Return false if - 32-bit SPARC and current_function_returns_struct is true. - -Wed Apr 24 13:48:25 CEST 2002 Jan Hubicka - - * loop.c (canonicalize_condition): Use gen_int_mode. - -2002-04-24 Aldy Hernandez - - * config/rs6000/altivec.h: Cleanup file. Add non individual - variants. - (vec_vaddubm): New. - (vec_vadduhm): New. - (vec_vadduwm): New. - (vec_vaddfp): New. - (vec_vaddcuw): New. - (vec_vaddubs): New. - (vec_vaddsbs): New. - (vec_vadduhs): New. - (vec_vadduws): New. - (vec_vaddsws): New. - (vec_vand): New. - (vec_vandc): New. - (vec_vavgub): New. - (vec_vavgsb): New. - (vec_vavguh): New. - (vec_vavgsh): New. - (vec_vavguw): New. - (vec_vavgsw): New. - (vec_vrfip): New. - (vec_vcmpbfp): New. - (vec_vcmpequb): New. - (vec_vcmpequh): New. - (vec_vcmpequw): New. - (vec_vcmpeqfp): New. - (vec_vcmpgefp): New. - (vec_vcmpgtub): New. - (vec_vcmpgtsb): New. - (vec_vcmpgtuh): New. - (vec_vcmpgtsh): New. - (vec_vcmpgtuw): New. - (vec_vcmpgtsw): New. - (vec_vcmpgtfp): New. - (vec_vcmpgefp): New. - (vec_vcfux): New. - (vec_vcfsx): New. - (vec_vctsxs): New. - (vec_vctuxs): New. - (vec_vexptefp): New. - (vec_vrfim): New. - (vec_lvx): New. - (vec_lvebx): New. - (vec_lvehx): New. - (vec_lde): Add vector float variant. - (vec_lvewx): New. - (vec_lvxl): New. - (vec_vlogefp): New. - (vec_vmaddfp): New. - (vec_vmhaddshs): New. - (vec_vmaxub): New. - (vec_vmaxsb): New. - (vec_vmaxuh): New. - (vec_vmaxsh): New. - (vec_vmaxuw): New. - (vec_vmaxsw): New. - (vec_vmaxsw): New. - (vec_vmaxfp): New. - (vec_vmrghb): New. - (vec_vmrghh): New. - (vec_vmrghw): New. - (vec_vmrglb): New. - (vec_vmrglh): New. - (vec_vmrglw): New. - (vec_vminub): New. - (vec_vminsb): New. - (vec_vminuh): New. - (vec_vminsh): New. - (vec_vminuw): New. - (vec_vminsw): New. - (vec_vminfp): New. - (vec_vmladduhm): New. - (vec_vmhraddshs): New. - (vec_msumubm): New. - (vec_vmsummbm): New. - (vec_vmsumuhm): New. - (vec_vmsumshm): New. - (vec_vmsumuhs): New. - (vec_vmsumshs): New. - (vec_vmuleub): New. - (vec_vmulesb): New. - (vec_vmuleuh): New. - (vec_vmulesh): New. - (vec_vmuloub): New. - (vec_mulosb): New. - (vec_vmulouh): New. - (vec_vmulosh): New. - (vec_vnmsubfp): New. - (vec_vnor): New. - (vec_vor): New. - (vec_vpkuhum): New. - (vec_vpkuwum): New. - (vec_vpkpx): New. - (vec_vpkuhus): New. - (vec_vpkshss): New. - (vec_vpkuwus): New. - (vec_vpkswss): New. - (vec_vpkshus): New. - (vec_vpkswus): New. - (vec_vperm): New. - (vec_vrefp): New. - (vec_vrlb): New. - (vec_vrlh): New. - (vec_vrlw): New. - (vec_vrfin): New. - (vec_vrsqrtefp): New. - (vec_vsel): New. - (vec_vslb): New. - (vec_vslh): New. - (vec_vslw): New. - (vec_vsldoi): New. - (vec_vsl): New. - (vec_vslo): New. - (vec_vspltb): New. - (vec_vsplth): New. - (vec_vspltw): New. - (vec_vspltisb): New. - (vec_vspltish): New. - (vec_vspltisw): New. - (vec_vsrb): New. - (vec_vsrh): New. - (vec_vsrw): New. - (vec_vsrab): New. - (vec_vsrah): New. - (vec_vsraw): New. - (vec_vsr): New. - (vec_vsro): New. - (vec_stvx): New. - (vec_stvebx): New. - (vec_stvehx): New. - (vec_stvewx): New. - (vec_stvxl): New. - (vec_vsububm): New. - (vec_vsubuhm): New. - (vec_vsubuwm): New. - (vec_vsubfp): New. - (vec_vsubcuw): New. - (vec_vsububs): New. - (vec_vsubsbs): New. - (vec_vsubuhs): New. - (vec_vsubshs): New. - (vec_vsubuws): New. - (vec_vsubsws): New. - (vec_vsum4ubs): New. - (vec_vsum4sbs): New. - (vec_vsum4shs): New. - (vec_vsum2sws): New. - (vec_vsumsws): New. - (vec_vrfiz): New. - (vec_vupkhsb): New. - (vec_vupkhpx): New. - (vec_vupkhsh): New. - (vec_vupklsb): New. - (vec_vupklpx): New. - (vec_vupklsh): New. - (vec_vxor): New. - -2002-04-23 Eric Botcazou - - PR c/5430 - * fold-const.c (split_tree): Add MINUS_LITP parameter; separate - added literals from substracted literals. - (associate_trees): Don't convert MINUS_EXPR into PLUS_EXPR. - (fold) [associate]: Preserve MINUS_EXPR if needed. - -2002-04-23 Zack Weinberg - - * doc/install.texi: Clarify which versions of alpha*-dec-osf* - are obsoleted. - -2002-04-23 Tom Tromey - - * gcc.c: Added --resource. For PR java/6314. - -2002-04-23 David O'Brien - - * cp/g++spec.c: Use profiled libstdc++ and libm with -p/-pg. - * config/freebsd.h (MATH_LIBRARY_PROFILE): Use the _p verions of - these libraries. - -2002-04-23 David O'Brien - - * config/freebsd.h(OBJECT_FORMAT_ELF): Define. - -Tue Apr 23 14:24:25 CEST 2002 Jan Hubicka - - * i386.c (ix86_output_addr_diff_elt): Avoid x86_64 binutils bug - workaround. - (ix86_expand_int_movcc): Avoid x86_64 compilation chrash. - (ix86_expand_clrstr): Fix typo. - * loop.c (gen_load_of_final_value): New. - (loop_givs_rescan, strength_reduce, check_dbra_loop): - Use it. - -2002-04-23 Roger Sayle - - * builtins.c (builtin_memset_gen_str): New function. - (expand_builtin_memset): Optimize the case of constant length, but - unknown value. - -2002-04-23 Aldy Hernandez - - * config/rs6000/altivec.h (vec_step): Remove extraneous - parentheses. - (vec_ctu): Cast return. - -2002-04-23 Alan Modra - - PR target/6413 - * function.h: (struct function): Add profile_label_no field. - (current_function_profile_label_no): Define. - * function.c: (profile_label_no): New static var. - (expand_function_start): Increment it, and copy to - current_function_profile_label_no. - * output.h (profile_label_no): Delete. - * final.c (profile_label_no): Delete. - (profile_function): Use current_function_profile_label_no. - (final_end_function): Don't increment profile_label_no here. - * config/i386/i386.c (ix86_osf_output_function_prologue): Replace - profile_label_no with current_function_profile_label_no. - * config/pa/pa.c (current_function_number): Delete. - (pa_output_function_prologue): Don't output profile label here. - (hppa_profile_hook): Use label_no param rather than - current_function_number. - (FUNC_BEGIN_PROLOG_LABEL): Move to .. - * config/pa/pa.h: .. here. - (FUNCTION_PROFILER): Output profile label here. - -2002-04-22 Eric Christopher - - * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Revert - patch of 2002-04-09 due to binutils issues. - (FUNCTION_ARG_REGNO_P): Ensure even numbered float register. - -2002-04-22 Aldy Hernandez - - * config/rs6000/rs6000.md ("*movv4si_internal"): Change 'm' - constraint to 'o' for m=r and r=m alternatives. - ("*movv8hi_internal1"): Same. - ("*movv16qi_internal1"): Same. - ("*movv4sf_internal1"): Same. - -2002-04-22 Janis Johnson - - * rtl.h (RTX_FLAG): New macro. - * emit-rtl.c (copy_most_rtx): Use macros to access rtx flags. - * final.c (alter_subreg): Use macro to access rtx flag. - * integrate.c (copy_rtx_and_substitute): Use new access macro. - * print-rtl.c (print_rtx): Use new access macro. - - * cse.c (insert): Check rtx code before accessing flag. - - * genattrtab.c (ATTR_IND_SIMPLIFIED_P, ATTR_CURR_SIMPLIFIED_P, - ATTR_PERMANENT_P, ATTR_EQ_ATTR_P): New. - (attr_hash_add_string, attr_rtx_1, attr_copy_rtx, check_attr_test, - convert_const_symbol_ref, make_canonical, make_alternative_compare, - evaluate_eq_attr, attr_rtx_cost, simplify_test_exp_in_temp, - simplify_test_exp, optimize_attrs, simplify_by_exploding, - find_and_mark_used_attributes, unmark_used_attributes, - add_values_to_cover, simplify_with_current_value, - simplify_with_current_value_aux, clear_struct_flag, walk_attr_value, - copy_rtx_unchanging, main): Use new access macros. - -2002-04-22 Tom Rix - - * expmed.c (init_expmed): Generate shifted constant once. - -2002-04-22 Zack Weinberg - - * c-lex.c (lex_charconst): Call convert to get constant in - proper type; don't just smash the type field. - Fixes PR c/6300. - - * config.gcc: Add list of obsolete configurations. Disallow - building these without --enable-obsolete. - * doc/install.texi: Document --enable-obsolete and obsoletion - policy. Mention obsoletion of individual targets in - appropriate places. - -2002-04-22 Richard Henderson - - * config/sparc/sol2-bi.h (ASM_DEBUG_SPEC): New. - -2002-04-22 Mark Mitchell - - PR f/6138. - * function.c (fixup_memory_subreg): Add promoted_mode parameter. - (walk_fixup_memory_subreg): Likewise. - (fixup_var_refs_insn): Adjust accordingly. - (fixup_var_refs_1): Likewise. - -2002-04-22 Ulrich Weigand - - * config/s390/linux.h: (LIBPATH_SPEC, LIBPATH_ARCH31_SPEC, - LIBPATH_ARCH64_SPEC): Define. - (EXTRA_SPECS): Add libpath, libpath_arch31, libpath_arch64. - (STARTFILE_SPEC, ENDFILE_SPEC): Define; use libpath. - (LINK_ARCH31_SPEC): Add libpath_arch31 to search path. - (LINK_ARCH64_SPEC): Add libpath_arch64 to search path. - -2002-04-22 Joel Sherrill - - * gthr-rtems.h: Correct prototypes to remove warnings. - -2002-04-22 Richard Henderson - - PR c/6344 - * alias.c (canon_true_dependence): Special case (mem:blk (scratch)). - - * gcse.c (free_insn_expr_list_list): New. - (clear_modify_mem_tables): Use it. Fix bit set usage. - (canon_list_insert): Use EXPR_LISTs for expressions. - (record_last_mem_set_info): Factor BLOCK_NUM (insn). - -2002-04-22 Neil Booth - - * cppfiles.c (_cpp_pop_file_buffer): Return void. Move - file change and include code to _cpp_pop_buffer. - * cpphash.h (struct pending_option): Predeclare. - (struct cpp_reader): New member next_include_file. - (_cpp_pop_file_buffer): Update. - (_cpp_push_next_buffer): Update, rename. - * cppinit.c (cpp_destroy): Free include chain and pending here. - (cpp_finish_options): Simplify. - (_cpp_push_next_buffer): Rename and clean up. - * cpplib.c (cpp_pop_buffer): Move code from _cpp_pop_file_buffer. - Clarify. - * cppmacro.c (cpp_scan_nooutput): Set return_at_eof here. - -2002-04-22 Aldy Hernandez - - * config/rs6000/altivec.h (vec_xor): Add variant for both args - being vector signed int. - (vec_andc): Same. - (vec_xor): Add variant for both args being vector signed char. - Remove redundant variant. - (vec_andc): Same. - -2002-04-21 David S. Miller - - * config/sparc/sparc.md (set then compare DI mode peephole2): Fix - compare mode in output RTL. - -2002-04-22 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Correct - style and formatting of previous patch. - -2002-04-22 Alan Modra - - * config/rs6000/rs6000.c (rs6000_override_options): Always clear - flag_pic for ABI_AIX. - -2002-04-21 Neil Booth - - * cppexp.c (struct op, parse_number): Replace U_CHAR with uchar. - * cppfiles.c (read_include_file): Similarly. - * cpphash.h (DSC, U_CHAR, ustrcmp, ustrncmp, ustrlen, - uxstrdup ustrchr, ufputs): Similarly. - * cppinit.c (TRIGRAPH_MAP, cpp_destroy): Similarly. - * cpplex.c (parse_slow, unescaped_terminator_p, save_comment, - cpp_ideq, parse_identifier, parse_number): Similarly. - * cpplib.c (struct directive, dequote_string, D, run_directive, - cpp_push_buffer): Similarly. - * cppmacro.c (new_string_token, builtin_macro, cpp_quote_string, - _cpp_create_definition, check_trad_stringification, - cpp_macro_definition): Similarly. - -2002-04-21 Neil Booth - - * cppmacro.c (funlike_invocation_p): Don't step back - over CPP_EOF. - -2002-04-21 David Edelsohn - - * config/rs6000/rs6000.c (output_profile_hook): Do not increment - labelno. - -2002-04-20 Joseph S. Myers - - * doc/invoke.texi: Remove Chill references. - * doc/gcc.texi: Update last modified date. - -2002-04-20 Kazu Hirata - - * config/h8300/lib1funcs.asm (___mulsi3): Remove unnecessary - push and pop. Replace add.l with add.w. - -2002-04-20 Toshiyasu Morita - - * config/h8300/lib1funcs.asm (___mulsi3): Use hardware - multiply instructions for H8/300H case. - -2002-04-20 Toshiyasu Morita - - * config/h8300/lib1funcs.asm (___cmpsi2, ___ucmpsi2): - Bum three instructions from each routine. - -2002-04-20 Neil Booth - - * Makefile.in: Update. - * decl.c (push_c_function_context, pop_c_function_context, - mark_c_function_context): Rename for consistency. - * c-objc-common.c (c_objc_common_init): Langhooks set elsewhere. - * c-tree.h (push_c_function_context, pop_c_function_context, - mark_c_function_context): Rename for consistency. - * c-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED, - LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine. - * function.c (init_lang_status, save_lang_status, - restore_lang_status, mark_lang_status, free_lang_status): - Move to langhooks.h. - (push_function_context_to, pop_function_context_from, - free_after_parsing, prepare_function_start, ggc_mark_struct_function): - Update. - * function.h (init_lang_status, save_lang_status, - restore_lang_status, mark_lang_status, free_lang_status): - Move to langhooks.h. - * langhooks-def.h (LANG_HOOKS_FUNCTION_INIT, - LANG_HOOKS_FUNCTION_FREE, LANG_HOOKS_FUNCTION_ENTER_NESTED, - LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK, - LANG_HOOKS_FUNCTION_INITIALIZER): New. - (LANG_HOOKS_INITIALIZER): Update. - (lhd_do_nothing_f): New. - * langhooks.h (struct lang_hooks_for_functions): New. - (struct lang_hooks): New hooks. - * langhooks.c (lhd_do_nothing_f): New. -objc: - * objc-lang.c (LANG_HOOKS_FUNCTION_ENTER_NESTED, - LANG_HOOKS_FUNCTION_LEAVE_NESTED, LANG_HOOKS_FUNCTION_MARK): Redefine. - -2002-04-19 David S. Miller - - * config/sparc/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Define. - * config/sparc/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Likewise. - -2002-04-19 Jakub Jelinek - - PR optimization/3756 - * config/i386/i386.c (ix86_expand_int_movcc): Optimize - x = ((int) y < 0) ? cst1 : cst2. - -2002-04-19 Jakub Jelinek - - PR c/6358 - * function.c: Reapply patch for c/6358. - (expand_function_end): Copy decl_rtl's mode, not - current_function_return_rtx mode. - -2002-04-19 Joel Sherrill - - * config/rtems.h (STARTFILE_SPEC, ENDFILE_SPEC): Fix for non-ELF - targets. - -2002-04-19 Tom Tromey - - * doc/install.texi (Specific): Update status of Solaris 2.8. - For PR libgcj/6158. - -2002-04-19 Andreas Schwab - - * real.c: Allow sizeof (REAL_VALUE_TYPE) > 2*NE. - (PUT_REAL): Restore old definition. - -2002-04-19 Dan Nicolaescu - Gerald Pfeifer - - * doc/install.texi (Specific, sparc-sun-solaris2*): Mention that - binutils 2.11.2 and higher generate smaller binaries than Sun's - native tools. - -2002-04-19 Mark Mitchell - - PR c++/6352 - * toplev.c (rest_of_compilation): Do not defer functions for which - TREE_SYMBOL_REFERENCED has already been set. - -Fri Apr 19 15:53:03 CEST 2002 Jan Hubicka - - * i386.md (movsi_1, movhi_1): Force reload to use more flexible - alternative. - -2002-04-19 Neil Booth - - * builtins.c: Include langhooks.h. - (lang_type_promotes_to): Remove. - (expand_builtin_va_arg): Use new hook. - * c-common.c (c_common_nodes_and_builtins): Don't set hook. - (simple_type_promotes_to): Move to c-typeck.c. - * c-common.h (simple_type_promotes_to): Remove. - * c-decl.c (duplicate_decls, grokdeclarator): Update. - * c-format.c: Include langhooks.h. - (check_format_types): Update. - * c-tree.h (c_type_promotes_to): New. - * c-typeck.c (c_type_promotes_to): Move from c-common.c. - (type_lists_compatible_p): Update. - * langhooks-def.h (lhd_type_promotes_to): New. - (LANG_HOOKS_TYPE_PROMOTES_TO): New. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. - * langhooks.c (lhd_type_promotes_to): New. - * langhooks.h (struct lang_hooks_for_types): New hook. - * tree.h (lang_type_promotes_to): Remove. -objc: - * objc-lang.c (LANG_HOOKS_TYPE_PROMOTES_TO): Redefine. - -2002-04-18 Richard Henderson - - * function.c: Revert patch for c/6358. - -2002-04-18 Richard Henderson - - * ifcvt.c (find_cond_trap): Handle cases with no proper THEN or JOIN - blocks. Handle multiple references to the TRAP block. Handle - non-adjacent THEN and OTHER blocks. - -2002-04-18 Richard Henderson - - * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): Don't - crash with no type for by-mode libcalls. - - * config/ia64/ia64.md (conditional_trap): Fix predicate polarity. - -2002-04-18 Bob Wilson - - * config/xtensa/lib2funcs.S (__xtensa_libgcc_window_spill, - __xtensa_nonlocal_goto): Use a syscall instructions to flush - the register windows. - -2002-04-18 Zack Weinberg - - * real.h: Define REAL_VALUE_TYPE_SIZE as 96 or 160, as - appropriate. Document need for extended precision even when - MAX_LONG_DOUBLE_TYPE_SIZE is smaller. Define REAL_WIDTH here, - based on REAL_VALUE_TYPE_SIZE. Use REAL_WIDTH to size - REAL_VALUE_TYPE. Define CONST_DOUBLE_FORMAT here. Use #error - instead of relying on later syntax error when REAL_WIDTH > 5. - * real.c: Define NE based only on whether or not we have a - full 128-bit extended type (not INTEL_EXTENDED_IEEE_FORMAT). - Require sizeof(REAL_VALUE_TYPE) == 2*NE. Unconditionally - define GET_REAL and PUT_REAL as simple memcpy operations; no - need to byteswap or round. - Use #error instead of #ifdef-ing out the entire file, for - prompt error detection. - - * rtl.c, gengenrtl.c: No need to calculate CONST_DOUBLE_FORMAT here. - -2002-04-18 David S. Miller - - * config/sparc/sparc.h (BRANCH_COST): Define. - - * fold-const.c (BRANCH_COST): Don't provide default here, expr.h - does it. - -2002-04-18 Hans-Peter Nilsson - - * flow.c (update_life_info): Ignore return value of cleanup_cfg. - Mask out PROP_SCAN_DEAD_CODE | PROP_KILL_DEAD_CODE in - propagate_block calls after relaxation loop using new variable - stabilized_prop_flags. - -2002-04-18 Richard Henderson - - * config/ia64/ia64.c (ia64_function_arg_pass_by_reference): New. - (ia64_va_arg): Expect variable sized types by reference. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use - ia64_function_arg_pass_by_reference. - -2002-04-18 Richard Henderson - - * ifcvt.c: Include except.h. - (block_has_only_trap): Break out from find_cond_trap. - (find_cond_trap): Use it. Always delete the trap block. - (merge_if_block): Allow then block null. Be less simplistic about - what insns can end a block. - * Makefile.in (ifcvt.o): Depend on except.h. - - * config/ia64/ia64.md (trap, conditional_trap): New. - -2002-04-18 Jakub Jelinek - - PR c/6358 - * function.c (assign_parms): Assign hard current_function_return_rtx - register here... - (expand_function_end): ...not here. - -2002-04-18 Neil Booth - - * c-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. - * c-tree.h (c_incomplete_type_error): New. - * c-typeck.c (require_complete_type, build_component_ref): Update. - (incomplete_type_error): Rename. - * langhooks-def.h (lhd_incomplete_type_error): New. - (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): New. - (LANG_HOOKS_FOR_TYPES_INITIALIZER): Update. - * langhooks.c (lhd_incomplete_type_error): New. - * langhooks.h (struct lang_hooks_for_types): New hook. - * tree.c (size_in_bytes): Use new hook. - * tree.h (incomplete_type_error): Remove. -objc: - * objc-lang.c (LANG_HOOKS_INCOMPLETE_TYPE_ERROR): Redefine. - -2002-04-18 Zack Weinberg - - * config/arc/arc.md: Remove #if HOST_FLOAT_FORMAT != - TARGET_FLOAT_FORMAT blocks. - -2002-04-18 Gerald Pfeifer - - * doc/install.texi (Downloading the source): Do not mention Chill - any longer, but mention Ada. - (Configuration): Do not mention Chill any longer. - -2002-04-18 Hans-Peter Nilsson - - * config/cris/cris.h (TARGET_VERSION): Remove local version number. - -Thu Apr 18 17:14:08 CEST 2002 Jan Hubicka - - * i386.h (SSE_FLOAT_MODE_P): Fix bogus conflict resolution - in last patch. - -2002-04-18 Jakub Jelinek - - * fold-const.c (fold): Use (*lang_hooks.types.unsigned_type) - instead of unsigned_type. - -Thu Apr 18 15:49:12 CEST 2002 Jan Hubicka - - * i386.h (SSE_FLOAT_MODE_P): Kill bogus TARGET_SSE_MATH check. - * i386.md (sse_mov?fcc*): Swap operands for cases they will be swapped - later. - -2002-04-18 Bernd Schmidt - - * attribs.c (vector_type_node_list): New static variable. - (handle_vector_size_attribute): Use it to avoid generating a - new type node each time we are called. - - * combine.c (subst): Avoid trying to make a vector mode subreg of - an integer constant. - (gen_lowpart_for_combine): Likewise. - -2002-04-18 Roger Sayle - Jakub Jelinek - - * fold-const.c (fold) [NOP_EXPR]: Convert (T)(x&c) into ((T)x&(T)c) - for integer constant c (if x has unsigned type or sign bit is not - set in c). This folds the zero/sign extension into the bit-wise and - operation. - -2002-04-18 Jakub Jelinek - - PR middle-end/6205 - * config/i386/i386.md (movsf_1): Use pxor only if TARGET_SSE2, - otherwise xorps. - -2002-04-17 NIIBE Yutaka - - * config/sh/elf.h: Undefine ASM_OUTPUT_CASE_LABEL. - -2002-04-17 Nick Clifton - - * gcc.c (read_specs): Detect and fail if an attempt is made to - rename a spec string to an already existing string. - -2002-04-17 Ulrich Weigand - - * config/s390/s390.c (legitimize_pic_address): Do not generate - illegal address constant without CONST. - -2002-04-17 Kaveh R. Ghazi - - * sparc/linux64.h (CC1_SPEC): Error for -m32 and -m64. - * sparc/netbsd-elf.h (CC1_SPEC32, CC1_SPEC64): Likewise. - -2002-04-17 Ulrich Weigand - - PR optimization/6305 - * config/s390/s390.c (s390_expand_plus_operand): Use find_replacement - to make sure previous reloads are taken into account. Generate - better code if one operand is an in-range immediate constant. - -2002-04-16 Andrew Haley - - * doc/install.texi (Building): libgcj requires GNU make. - -2002-04-17 Jakub Jelinek - - PR bootstrap/6315 - * config/sparc/sparc.md (movtf reg<-reg split): Allow spliting - even if hard quad and register is not floating. - (movtf reg<-mem split): Disallow splitting if hard quad and - register is floating. - (movtf mem<-reg split): Likewise. - * config/sparc/sparc.c (fp_register_operand): New predicate. - * config/sparc/sparc.h (PREDICATE_CODES): Add fp_register_operand. - -2002-04-17 Zack Weinberg - - * Makefile.in (PROTO_OBJS): Add cppdefault.o. - (protoize.o): Take $(PREPROCESSOR_DEFINES) off command line. - (unprotoize.o): Ditto. Build from protoize.c. Define - UNPROTOIZE on command line. - * protoize.c: Include cppdefault.h. Delete include_defaults. - (in_system_include_dir): Use cpp_include_defaults (defined in - cppdefault.o). - * unprotoize.c: Delete file. - -2002-04-17 Aldy Hernandez - - * config/rs6000/altivec.h (vec_ld): Add array variants. - (vec_lde): Same. - (vec_ldl): Same. - -2002-04-17 Alan Matsuoka - Aldy Hernandez - - * config/rs6000/altivec.h: Define __ALTIVEC__. - (bool): New. - (__pixel): New. - (pixel): New. - (vec_cfux): New. - (vec_vmaddfp): New. - (vec_vsldoi): New. - Add parentheses to all macro arguments. - -2002-04-16 Richard Henderson - - PR c++/6320 - * except.c (remove_eh_handler): Insert inner regions at beginning - of sibling chain. Refactor expressions. - -2002-04-16 Richard Henderson - - * config/sparc/sol2-bi.h (AS_SPARC64_FLAG): New. - * config/sparc/sol2-gas-bi.h: New file. - * config.gcc (sparc*-solaris): Add it as needed. - * configure.in (AS_SPARC64_FLAG): Remove check. - * config.in, configure: Regenerate. - - * config/sparc/sol2-bi.h (CC1_SPEC): Error for -m32 and -m64. - -2002-04-16 Richard Henderson - - * config/mips/mips.c (override_options): Don't override N32 for - a 64-bit ISA. - - PR 6202 - * config/mips/mips.md (can_delay): Split out of existing define_delays. - (HILO_delay): Set can_delay false. - -2002-04-16 Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_output_function_prologue): Compute - instruction addresses. - (rs6000_output_function_epilogue): Likewise. - -2002-04-16 Paolo Carlini - - * c-parse.in (poplevel, compstmt_start, - compstmt_primary_start): Add ending ';', in accordance - with POSIX. - -2002-04-16 Richard Henderson - - * config.gcc (sparcv9-solaris): Configure for 64-bit default. - Adjust tm_file order to get TARGET_DEFAULT set properly. - (sparc-solaris): Configure 2.[78] for 64-bit multilibs. - * doc/install.texi (sparc-solaris): Update. - -2002-04-16 Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_emit_cmove): Fail if modes of - comparison operands do not match each other or if modes of - conditions do not match result. - -2002-04-16 Hartmut Penner - - PR target/6305 - * config/s390/s390.md (mulsidi3): Set both subregs of the - multiword register. - -2002-04-16 Aldy Hernandez - - * config/rs6000/altivec.h (vec_addc): Type check. - -2002-04-16 Jakub Jelinek - - PR middle-end/6279 - * expr.c (store_expr): Don't copy if DECL_RTL (exp) == target. - - * expr.c (safe_from_p): Cleanup: use DECL_RTL_IF_SET. - -2002-04-15 Richard Henderson - - * config/mips/abi64.h (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Set - call_really_used_regs too. - -2002-04-15 Richard Henderson - - * config/alpha/gnu.h (CPP_PREDEFINES): Underscores for gnu_hurd. - -2002-04-15 David S. Miller - - * rtlanal.c (note_stores): Don't present PARALLEL SET_DESTs - as being CLOBBERed. - -2002-04-16 Jakub Jelinek - - PR c/6290 - * config/rs6000/rs6000.c (easy_vector_constant): Return 1 if the - CONST_VECTOR is { 0, ... 0 }. - -2002-04-15 Loren J. Rittle - - * doc/install.texi (Installing GCC: Configuration): Clarify - the only supported ways to configure gcc. - -2002-04-15 Roland McGrath - - * config.gcc (alpha*-*-gnu*): New target configuration. - * config/alpha/gnu.h: New file for it. - * config/gnu.h (TARGET_MEM_FUNCTIONS): #undef before #define. - -2002-04-16 Mark Mitchell - - * c-common.h (STMT_EXPR_NO_SCOPE): New macro. - * c-common.c (c_expand_expr): Respect STMT_EXPR_NO_SCOPE. - * tree.h (expand_start_stmt_expr): Update prototype. - * stmt.c (expand_start_stmt_expr): Add has_scope parameter. - * tree-inline.c (expand_call_inline): Set STMT_EXPR_NO_SCOPE - on the STMT_EXPR created for the inline function. - -2002-04-15 Richard Henderson - - * config/alpha/linux.h, config/arm/linux-elf.h, config/i370/linux.h, - config/i386/linux-aout.h, config/i386/linux-oldld.h, - config/i386/linux.h, config/i386/linux64.h, config/ia64/linux.h, - config/m68k/linux-aout.h, config/m68k/linux.h, config/mips/linux.h, - config/pa/pa-linux.h, config/pj/linux.h, config/s390/linux.h, - config/sh/linux.h, config/sparc/linux-aout.h, config/sparc/linux.h, - config/sparc/linux64.h, config/xtensa/linux.h (CPP_PREDEFINES): - Define __gnu_linux__, not gnu_linux. - * config/rs6000/sysv4.h (CPP_OS_GNU_SPEC): Likewise for gnu_hurd. - -2002-04-15 Mark Mitchell - - Remove Chill front end. - * gcc.c (default_compilers): Remove Chill entries. - * ch: Remove directory. - * doc/frontends.texi: Remove information about Chill. - * doc/sourcebuild.texi: Likewise. - * doc/standards.texi: Likewise. - -2002-04-15 Douglas B Rupp - - * config/alpha/vms.h (INCLUDE_DEFAULTS): Add /gnu/lib/gcc-lib/include. - (LONGLONG_STANDALONE): Define. - -2002-04-15 David S. Miller - - * config/sparc/sparc.c (sparc_emit_float_lib_cmp): - Call emit_library_call with LCT_NORMAL. - (sparc_initialize_trampoline): Use LCT_foo instead of - magic constant in emit_library_call invocations. - (sparc64_initialize_trampoline): Likewise. - (sparc_profile_hook): Likewise. - * config/sparc/sparc.md: Likewise. - - * config/sparc/sparc.c (sparc_extra_constraint_check): - Fix type of argument 'c'. - * config/sparc/sparc-protos.h (sparc_extra_constraint_check): - Likewise. - -2002-04-15 Gabriel Dos Reis - - * diagnostic.h (output_buffer_state): Redefine. - (output_format_decoder): New macro. - (output_prefixing_rule): Likewise. - (output_line_cutoff): Likewise. - (diagnostic_format_decoder): Adjust. - (diagnostic_prefixing_rule): Likewise. - (diagnostic_line_cutoff): Likewise. - (diagnostic_state): Likewise. - (diagnostic_kind_count): Likewise. - (diagnostic_buffer): Now a macro. - - * diagnostic.c (diagnostic_buffer): Remove definition. - (output_is_line_wrapping): Adjust. - (set_real_maximum_length): Likewise. - (output_set_maximum_length): Likewise. - (init_output_buffer): Likewise. - (lhd_print_error_function): Likewise. - (output_do_verbatim): Likewise. - -2002-04-14 Neil Booth - - * cpperror.c (print_location): Don't print include chain - if line == 0. - (cpp_begin_message): Update to use DL_ macros. - (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning, - cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, - cpp_notice, cpp_notice_from_errno): Remove. - (cpp_error, cpp_error_with_line): Update to take a diagnostic - level. - (cpp_errno): New. - * cppexp.c (CPP_ICE): Remove. - (SYNTAX_ERROR, SYNTAX_ERROR2, parse_number, parse_defined, - lex, integer_overflow, _cpp_parse_expr): Update. - * cppfiles.c (read_include_file, find_include_file, - handle_missing_header, _cpp_read_file, remap_filename): Update. - * cpphash.h (enum error_type): Remove. - (_cpp_begin_message): Update. - * cppinit.c (append_include_chain, remove_dup_dirs, output_deps, - cpp_handle_option, cpp_post_options): Update. - * cpplex.c (trigraph_p, skip_escaped_newlines, skip_block_comment, - skip_whitespace, parse_identifier, parse_slow, parse_string, - _cpp_lex_direct, cpp_spell_token, maybe_read_ucs, cpp_parse_escape, - cpp_interpret_charconst): Update. - * cpplib.c (check_eol, directive_diagnostics, _cpp_handle_directive, - lex_macro_node, do_undef, glue_header_name, parse_include, - do_include_common, read_flag, do_line, do_linemarker, do_ident, - cpp_register_pragma, do_pragma_once, do_pragma_system_header, - do_pragma_poison, do_pragma_dependency, _cpp_do__Pragma, do_else, - do_elif, do_endif, parse_answer, parse_assertion, do_assert, - _cpp_pop_buffer, do_diagnostic): Update. - * cpplib.h (DL_WARNING, DL_WARNING_SYSHDR, DL_PEDWARN, DL_ERROR, - DL_FATAL, DL_ICE, DL_EXTRACT, DL_WARNING_P): New. - (cpp_ice, cpp_fatal, cpp_error_from_errno, cpp_warning, - cpp_warning_with_line, cpp_pedwarn, cpp_pedwarn_with_line, - cpp_notice, cpp_notice_from_errno): Remove. - (cpp_error, cpp_error_with_line): Update to take a diagnostic - level. - (cpp_errno): New. - * cppmacro.c (builtin_macro, stringify_arg, paste_all_tokens, - collect_args, enter_macro_context, save_parameter, parse_params, - _cpp_create_definition, check_trad_stringification, - cpp_macro_definition): Update. - * cppmain.c (cpp_preprocess_file): Update. - * fix-header.c (read_scan_file): Update. - -2002-04-14 Andreas Schwab - - * config/ia64/linux.h (CPP_PREDEFINES): Fix missing backslash. - -2002-04-14 Jeroen Dobbelaere - - * config/arm/linux-elf.h (CPLUSPLUS_CPP_SPEC): Define. - -2002-04-13 Mark Mitchell - - * config/i386/gnu.h (CPP_PREDEFINES): Define __gnu_hurd__, - not gnu_hurd. - -2002-04-13 Hans-Peter Nilsson - - * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Fix typo. - -2002-04-13 Joel Sherrill - - * config/sparc/t-elf: Enable v8 multilibs. Impacts - sparc-elf and sparc-rtems targets. - -2002-04-13 Mark Mitchell - - * alpha/linux.h: Define __gnu_linux__ wherever __linux__ is - defined, and __gnu_hurd__ wherever __GNU__ is defined. - * arm/linux-elf.h: Likewise. - * cris/aout.h: Likewise. - * cris/linux.h: Likewise. - * i370/linux.h: Likewise. - * i386/gnu.h: Likewise. - * i386/linux-aout.h: Likewise. - * i386/linux-oldld.h: Likewise. - * i386/linux.h: Likewise. - * i386/linux64.h: Likewise. - * ia64/linux.h: Likewise. - * m68k/linux-aout.h: Likewise. - * m68k/linux.h: Likewise. - * mips/linux.h: Likewise. - * pa/pa-linux.h: Likewise. - * pj/linux.h: Likewise. - * rs6000/sysv4.h: Likewise. - * s390/linux.h: Likewise. - * sh/linux.h: Likewise. - * sparc/linux-aout.h: Likewise. - * sparc/linux.h: Likewise. - * sparc/linux64.h: Likewise. - * xtensa/linux.h: Likewise. - -2002-04-13 Richard Sandiford - - * stmt.c (check_unique_operand_names): Expect operand names to - be strings rather than identifiers. Use simple_cst_equal to - compare them. - (resolve_operand_name_1): Make same identifier to string change here. - * c-parse.in (asm_operand): Convert a named operand into a string. - * cp/parse.y (asm_operand): Likewise. - -2002-04-13 Andreas Schwab - - * config/ia64/ia64.h (CPP_SPEC): Include %(cpp_cpu). - -2002-04-12 Mark Mitchell - - Revert these changes: - - 2002-04-06 Mark Mitchell - - PR c++/5571 - * stor-layout.c (layout_decl): Reset the RTL for the decl. - -2002-04-12 Richard Henderson - - * config.gcc (sparcv9-*-solaris2): Default to 32-bit code. - (sparc*-*-solaris): Clean up header files. - * configure.in (AS_SPARC64_FLAG): Error out if can't find it - and plan on generating 64-bit code. - * toplev.c (decode_g_option): Remove LINKER_DOES_NOT_WORK_WITH_DWARF2. - * config/sparc/sol2-64.h: Delete and reuse for default 64-bit code. - * config/sparc/sol2-sld-64.h: Rename ... - * config/sparc/sol2-bi.h: ... here. Remove the bits that checked - for AS_SPARC64_FLAG not defined. - * config/sparc/sol2-gld-bi.h: New. - * config/sparc/sol2-sld.h: Remove. - * config/sparc/sol26-sld.h: New. - * config/sparc/sol2.h: Tidy comments. - * doc/install.texi: Document sparc-solaris configury changes. - -2002-04-12 Richard Henderson - - * recog.c (offsettable_address_p): Match the logic in adjust_address. - - * config/sparc/sparc.h (LEGITIMIZE_RELOAD_ADDRESS): Handle TFmode - in 64-bit mode only. Use only for 32-bit or MEDLOW. - -2002-04-12 Rainer Orth - - * config/alpha/osf.h (LINK_SPEC): Pass -S to silence ld warnings. - -Fri Apr 12 15:42:59 2002 Jeffrey A Law (law@redhat.com) - - * pa.c (pa_can_combine_p): Call extract_insn before calling - constrain_operands. - -2002-04-12 Douglas B Rupp - - * config/i386/i386-interix.h (EH_FRAME_IN_DATA_SECTION): Define. - (TARGET_ASM_NAMED_SECTION, RETURN_IN_MEMORY) Define. - (DEFAULT_PCC_STRUCT_RETURN): Define as 0. - (CPP_PREDEFINES): Handle __declspec. - * config/i386/t-interix (USER_H): Remove. - -2002-04-12 DJ Delorie - - * integrate.c (compare_blocks): Make comparisons safe for when - sizeof(int) < sizeof(char *). - (find_block): Likewise. - -2002-04-12 Jan Hubicka - David Edelsohn - - * config/rs6000/rs6000.c (call_operand): Allow LINK and COUNT - registers. - (symbol_ref_operand): New. - * config/rs6000/rs6000.h (PREDICATE_CODES): Add symbol_ref_operand. - * config/rs6000/rs6000.md (call_nonlocal_aix): Use symbol_ref_operand. - -2002-04-12 Andreas Schwab - - * config/ia64/ia64.h (ASM_SPEC): Moved from here ... - * config/ia64/sysv4.h (ASM_SPEC): ... to here, so that it - overrides the definition in config/svr4.h. - -2002-04-12 Eric Norum - - * config/rtems.h, config/a29k/rtems.h, config/arm/rtems-elf.h, - config/c4x/rtems.h, config/h8300/rtems.h, config/i386/rtems.h, - config/i386/rtemself.h, config/i960/rtems.h, config/m68k/rtems.h, - config/m68k/rtemself.h, config/mips/rtems.h, config/mips/rtems64.h, - config/pa/rtems.h, config/rs6000/rtems.h, config/sh/rtems.h, - config/sh/rtemself.h, config/sparc/rtems.h, config/sparc/rtemself.h, - config/v850/rtems.h (*-rtems*): Cleanup pass to move common - definitions to config/rtems.h and make the targets more similar. - -Fri Apr 12 08:06:54 2002 Richard Kenner - - * expr.c (expand_assigment): Remove duplicate conversions #ifdef - POINTERS_EXTEND_UNSIGNED. - (store_constructor, expand_expr, case COMPONENT_REF): Likewise. - (store_expr): Use TYPE_MODE (sizetype), not ptr_mode. - - * emit-rtl.c (widen_memory_access): Don't do anything if MEMOFFSET - not specified. - -Fri Apr 12 12:11:26 2002 J"orn Rennecke - - * sh.c (calc_live_regs, sh_pr_n_sets): Use of PR_MEDIA_REG / PR_REG - depends on TARGET_SHMEDIA, not TARGET_SH5. - -2002-04-12 Hans-Peter Nilsson - - * function.c (fixup_var_refs_1) : - For paradoxical (subreg VAR), replace VAR, don't try the subreg. - -Fri Apr 12 10:51:38 2002 J"orn Rennecke - - * sh.c (broken_move): Constant 0. / 1. load is OK if there is - no r0 clobber. - -2002-04-12 Andreas Schwab - - * config/ia64/ia64.h (EXTRA_SPECS): Fix missing backslash. - -2002-04-12 Richard Henderson - - PR bootstrap/4191 - * config/d30v/d30v.h (INIT_SECTION_ASM_OP): Don't undef. - - * flow.c (mark_used_reg): Manage reg_cond_dead properly for - modes spanning multiple hard regs. - - * recog.c (peephole2_optimize): Rebuild jump labels as needed. - -2002-04-11 John David Anglin - - * pa.c (pa_output_function_prologue): Don't accumulate the total - number of code bytes when using TARGET_64BIT, or gas, SOM and not - the portable runtime. - (output_deferred_plabels): Handle 64bit plabels. - (output_cbranch): Use $PIC_pcrel$0 for pc relative relocations when - generating pic code using the GAS assembler for object formats that - are not SOM (ie., ELF32 and ELF64). - (output_millicode_call): Check attribute type if attribute length is 28. - Likewise use $PIC_pcrel$0. Only call get_attr_length and - dbr_sequence_length once. - (output_call): Likewise use $PIC_pcrel$0, and call get_attr_length and - dbr_sequence_length once. - * pa.h (TARGET_SOM): Define if not defined. - * pa.md (pattern to load address of label): Likewise use $PIC_pcrel$0 - with GAS and not SOM. - (jump, call_internal_reg, call_value_internal_reg): Likewise. - * som.h (OBJ_SOM): Rename to TARGET_SOM. Undefine before defining. - -2002-04-11 David O'Brien - - * config/freebsd.h (NO_IMPLICIT_EXTERN_C, SCCS_DIRECTIVE): Give value. - (DEFAULT_PCC_STRUCT_RETURN) Do not redefine. - (USER_LABEL_PREFIX, HANDLE_SYSV_PRAGMA, IDENT_ASM_OP, - DWARF2_DEBUGGING_INFO, DBX_DEBUGGING_INFO, PREFERRED_DEBUGGING_TYPE): - elfos.h and dbxelf.h values are fine now. - * config/i386/freebsd.h, config/alpha/freebsd.h - (DEFAULT_PCC_STRUCT_RETURN): Define to 0. - -2002-04-11 David O'Brien - - * config/ia64/aix.h (CPP_PREDEFINES): Do not define _LP64/__LP64__ - or set Acpu or Amachine. Reformat. - (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not - define. - (LINK_SPEC): Do not need to undef. - * config/ia64/elf.h (ASM_EXTRA_SPEC): Define. - * config/ia64/freebsd.h (LINK_SPEC): Do not need to undef. - (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not - define. - * config/ia64/hpux.h (ASM_EXTRA_SPEC): Define. - (ASM_SPEC): Do not define, use ASM_EXTRA_SPEC instead. - (LINK_SPEC): Do not need to undef. - (DONT_USE_BUILTIN_SETJMP): Do not define. - * config/ia64/ia64.h (ASM_SPEC, ASM_EXTRA_SPEC): Add. - (CPP_CPU_SPEC): Define _LP64, set Acpu and Amachine. Remove -Dia64. - (DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Define. - Remove trailing spaces. - * config/ia64/linux.h (CPP_PREDEFINES): Do not define _LP64/__LP64__, - __ELF__, or set Acpu or Amachine. Reformat. - (ASM_SPEC, DONT_USE_BUILTIN_SETJMP, PROFILE_BEFORE_PROLOGUE): Do not - define. - -2002-04-11 David O'Brien - - * config.gcc (ia64-*-freebsd*): Fix ordering of tm_files to match - all other *-*-freebsd* targets. - -2002-04-11 Richard Henderson - - * config.gcc (alpha*-*-linux*ecoff): Detect and reject. - -2002-04-11 David O'Brien - - * config.gcc (alpha*-*-openbsd, alpha64-dec-*vms,alpha*-dec-*vms): - Include {cpu}/{cpu}.h thru tm_file. - (alpha*-*-linux*ecoff): Remove target. - * config/alpha/elf.h (CPP_SUBTARGET_SPEC): Define __ELF__. - (LINK_SPEC): Remove, is not OS independent. - * config/alpha/freebsd.h (CPP_SPEC): Do not define __ELF__. - (LINK_SPEC): Do not need to #undef any longer. - * config/alpha/linux-ecoff.h (LINK_SPEC): Do not need to #undef - any longer. - * config/alpha/linux-elf.h (SUB_CPP_PREDEFINES): Do not define - __ELF__. - (LINK_SPEC): Moved here from alpha/elf.h. - * config/alpha/linux.h (CPP_PREDEFINES): No longer consumer of - SUB_CPP_PREDEFINES. - * config/alpha/linux-ecoff.h: Remove. - * config/alpha/netbsd.h (CPP_PREDEFINES): Do not define __ELF__. - (CPP_SPEC): Define _POSIX_SOURCE as needed. - (CPP_SUBTARGET_SPEC): Do not define. - (LINK_SPEC): Do not need to #undef any longer. - * config/alpha/openbsd.h: Do not directly include alpha/alpha.h. - * config/alpha/vms.h: Likewise. - -2002-04-11 Richard Sandiford - - * doc/extend.texi: Remove old claim that typedefs cannot have - an alignment attribute. - -2002-04-11 Jakub Jelinek - - PR optimization/6177 - * expr.c (expand_expr) [COMPONENT_REF]: Handle op0 CONCAT if - bitpos is 0 and bitsize CONCAT size. - -2002-04-11 Jakub Jelinek - - PR c/6223 - * combine.c (if_then_else_cond): Use trunc_int_for_mode on nz. - -2002-04-10 David O'Brien - - * config/alpha/freebsd.h: Minor reformatting. - (CPP_SPEC): Define ELF and add cpp_subtarget. - (ASM_SPEC): No longer needed. - -2002-04-11 Richard Henderson - - * config/sparc/sparc.md (movdi_insn_sp32): Add o/J alternative. - (movdi_insn_sp32_v9): Likewise. Only allow stx with aligned memory. - (dimode mem/zero splitter): New. - -2002-04-11 Hans-Peter Nilsson - - * config/cris/cris.c (cris_override_options): Tweak error message - for PIC not implemented. - - * config/cris/cris.h: Tweak comments related to parameter-passing. - - * t-cris (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc here. - -2002-04-10 Richard Henderson - - * except.c (add_ehl_entry): Allow duplicates after landing pad - creation. - -2002-04-10 David Edelsohn - - * config/rs6000/t-aix43 (SHLIB_NM_FLAGS): Add -X32_64. - -2002-04-10 Toon Moene - - * c-decl.c (c_init_decl_processing): Move generation of - decls for g77_integer_type_node and friends from here ... - * c-common.c (c_common_nodes_and_builtins): ... to here. - -2002-04-10 Ulrich Weigand - - * reload1.c (choose_reload_regs): HARD_FRAME_POINTER_REGNUM - is only used as frame pointer when frame_pointer_needed is true. - -2002-04-10 Richard Earnshaw - - PR target/817 - * arm.md (arm_movdi): Adjust neg_pool_range attribute to allow - for the fact that the pool entry uses two words. - (movdf_hard_insn): Similarly. Also, ADR instruction can span - 1k bytes. - (movdf_soft_insn): Similarly. - (movxf_hard_insn): Adjust neg_pool_range attribute to allow - for the fact that the pool entry uses three words. - -2002-04-10 Richard Sandiford - - * config/mips/mips.c (mips_va_arg): When using the struct version - of the EABI va_list, allow arguments in the register save area to - take up less room than a stack argument. - -2002-04-10 Richard Henderson - - * expr.c (expand_expr) [INTEGER_CST]: Don't force into registers - if EXPAND_INITIALIZER. - -2002-04-09 Richard Henderson - - * config/alpha/alpha.md (movdi_er_maybe_g): New. - * config/alpha/alpha.c (alpha_expand_mov): Use it. - -2002-04-10 Alan Modra - - PR optimization/6233 - * rtlanal.c (pure_call_p): New function. - * rtl.h (pure_call_p): Declare. - * loop.c (prescan_loop): Use it to set has_nonconst_call. - * gcse.c (store_killed_in_insn): Use pure_call_p here too. - -2002-04-09 Eric Christopher - - * config/mips/mips.h (ASM_OUTPUT_ALIGNED_DECL_COMMON): Add additional - information to .comm directive. - -2002-04-09 Richard Henderson - - PR c/5078 - * expr.c (expand_expr) [INTEGER_CST]: Force overflows into registers. - -2002-04-09 Richard Henderson - - * basic-block.h (flow_delete_block_noexpunge): Declare. - (expunge_block_nocompact): Declare. - * cfg.c (expunge_block_nocompact): Split out from ... - (expunge_block): ... here. - * cfgrtl.c (can_delete_label_p): Don't use exception_handler_labels. - (flow_delete_block_noexpunge): Split out from ... - (flow_delete_block): ... here. - * cfgcleanup.c (delete_unreachable_blocks): Compact while - removing dead blocks. - * except.c (exception_handler_labels): Remove. - (exception_handler_label_map): New. - (struct eh_region): Add aka member. - (mark_ehl_map_entry, mark_ehl_map, free_region): New. - (ehl_hash, ehl_eq, ehl_free, add_ehl_entry): New. - (for_each_eh_label, for_each_eh_label_1): New. - (init_eh): Register exception_handler_label_map. - (free_eh_status): Use free_region. - (find_exception_handler_labels): Use the map, not the list. - (remove_exception_handler_label): Likewise. - (maybe_remove_eh_handler): Likewise. - (remove_eh_handler): Use the region aka bitmap. - * except.h (exception_handler_labels): Remove. - (for_each_eh_label): Declare. - * jump.c (rebuild_jump_labels): Don't check exception_handler_labels. - * loop.c (invalidate_loops_containing_label): New. - (find_and_verify_loops): Use it. Use for_each_eh_label. - * sched-rgn.c (is_cfg_nonregular): Use - current_function_has_exception_handlers. - -2002-04-09 Richard Henderson - - * sbitmap.c (sbitmap_union_of_diff, sbitmap_a_and_b, sbitmap_a_xor_b, - sbitmap_a_or_b, sbitmap_a_or_b_and_c, sbitmap_a_and_b_or_c): - Do not return changed status. - (sbitmap_union_of_diff_cg, sbitmap_a_and_b_cg, sbitmap_a_xor_b_cg, - sbitmap_a_or_b_cg, sbitmap_a_or_b_and_c_cg, sbitmap_a_and_b_or_c_cg): - New functions that do return changed status. - * sbitmap.h: Update decls. - * gcse.c, lcm.c: Use _cg functions as needed. - -Tue Apr 9 19:15:57 2002 J"orn Rennecke - - * config.gcc (sh-*-elf*): Use sh/embed-elf.h instead of sh/elf.h. - (sh64-*-elf*, sh-*-rtemself*): Likewise. - * config/sh/embed_bb.c: New file. - * config/sh/embed-elf.h: New file. - * sh.h (CPP_SPEC): Supply __SIZE_TYPE__ and __PTRDIFF_TYPE__ - if -m[12345]* option is given. Don't use subtarget_cpp_ptr_spec. - (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and - __PTRDIFF_TYPE__ . - (SUBTARGET_CPP_PTR_SPEC): Don't define. - (EXTRA_SPECS): Remove subtarget_cpp_ptr_spec. - Add subtarget_asm_endian_spec. - (ASM_SPEC): Use subtarget_asm_endian_spec. - (SUBTARGET_ASM_ENDIAN_SPEC): Define. - (RETURN_ADDR_RTX): Use PR_MEDIA_REG for TARGET_SH5. - (WCHAR_UNSIGNED): Define. - (SH_ELF_WCHAR_TYPE, SH_DBX_REGISTER_NUMBER): Define. - (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER. - (ALLOCATE_INITIAL_VALUE): Use PR_MEDIA_REG for TARGET_SH5. - Fix value. - * sh.c (calc_live_regs): Use PR_MEDIA_REG for TARGET_SH5. - (sh_adjust_cost): Likewise. - sh64.h (CPP_DEFAULT_CPU_SPEC): Add settings for __SIZE_TYPE__ and - __PTRDIFF_TYPE__ . - (SUBTARGET_CPP_PTR_SPEC, WCHAR_TYPE): Don't #undef/ #define. - (WCHAR_TYPE_SIZE): Likewise. - (ASM_SPEC): Use subtarget_asm_endian_spec. - (SH_ELF_WCHAR_TYPE): #undef/ #define. - (MAX_WCHAR_TYPE_SIZE): Don't #undef. - * config/sh/elf.h (WCHAR_UNSIGNED): #undef . - (MAX_WCHAR_TYPE_SIZE): Don't #define . - (WCHAR_TYPE, WCHAR_TYPE_SIZE): #undef / #define . - (USER_LABEL_PREFIX): Don't #undef /#define . - (DBX_REGISTER_NUMBER): Use SH_DBX_REGISTER_NUMBER. - * config/elf/linux.h (USER_LABEL_PREFIX): Don't #undef /#define . - (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE, WCHAR_TYPE_SIZE): Likewise. - (ASM_SPEC): Likewise. - (SUBTARGET_ASM_ENDIAN_SPEC): #undef / #define . - (CC1_SPEC): don't supply -m3 for -m4*, -m5*. - * t-sh: (LIB1ASMFUNCS): Use LIB1ASMFUNCS_CACHE. - (LIB2FUNCS_EXTRA): Define. - * t-sh64 (LIB2FUNCS_EXTRA): Define. - * config/sh/t-linux (LIB1ASMFUNCS): Don't redefine. - (LIB1ASMFUNCS_CACHE): Define. - (LIB2FUNCS_EXTRA): Redefine empty. - -2002-04-08 Richard Henderson - - * reorg.c (get_branch_condition): Use reversed_comparison_code. - -2002-04-09 Stephane Carrez - - * config/m68hc11/larith.asm (__map_data_section): Fix condition - and optimize for size. - (__do_global_ctors): Fix pointer comparison. - (__do_global_dtors): Likewise. - -2002-04-09 David S. Miller - - * config/sparc/sparc.c (sparc_extra_constraint_check): New - function, implementing EXTRA_CONSTRAINTS. For memory constraints, - allow reloading pseudos. - * config/sparc/sparc.h (EXTRA_CONSTRAINTS): Use it. - * config/sparc/sparc-protos.h: Declare it. - - * config/sparc/sparc.c (const64_is_2insns): Kill signed vs. - unsigned comparison warning. - (output_restore_regs): Mark leaf_function as unused. - -Tue Apr 9 09:35:45 2002 Richard Kenner - - * expr.c (is_aligning_offset): New function. - (expand_expr, case COMPONENT_EXPR): Call it. - -2002-04-08 David S. Miller - - PR target/6082 - * config/sparc/freebsd.h (SPARC_DEFAULT_CMODEL): Set to CM_MEDLOW - - Make init_priority work on SPARC when using GNU ld. - * config/sparc/linux.h, config/sparc/linux64.h, - config/sparc/netbsd-elf.h, config/sparc/freebsd.h - (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Undefine. - * config/sparc/sol2-gld.h: New file to do the same. - * config.gcc (sparc*-*-solaris2*): If gnu_ld=yes add - sparc/sol2-gld.h to tm_file. - - PR optimization/4328 - * config/sparc/sparc.h (EXTRA_CONSTRAINT): Add new constraint 'W'. - * doc/md.texi: Document it. - * config/sparc/sparc.md (movdi_insn_sp64_novis, - movdi_insn_sp64_vis, movdf_insn_sp32, movdf_insn_v9only_novis, - movdf_insn_v9only_vis, movdf_insn_sp64_novis, - movdf_insn_sp64_vis): Use it as MEM constraing with 'e' registers. - * config/sparc/sparc.c (mem_min_alignment): Fix comment. - -2002-04-08 Andreas Jaeger - - * stmt.c (expand_asm_operands): Revert last patch from Richard - Henderson. - -2002-04-08 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add John David Anglin and Loren - J. Rittle (the latter also to Testers). Update David O'Brien's entry. - -2002-04-08 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add David O'Brien. - -2002-04-08 Alan Modra - - * configure.in (auto-build.h): Use target_alias and build_alias - when running configure. - (gcc_cv_as, gcc_cv_ld): Search install paths when build != host too. - (gcc_cv_nm, gcc_cv_objdump): Set for build != host too. - * configure: Regenerate. - -2002-04-07 David S. Miller - - * config.gcc (sparc64-*-linux*): Add t-crtfm to tmake_file. - -2002-04-07 John David Anglin - - PR 5933 - * pa.h (ASM_OUTPUT_MI_THUNK): Use indirect jump to target function when - generating 32-bit pic code. - -2002-04-06 Jason Thorpe - - * cppinit.c (cpp_create_reader): Initialize - discard_comments_in_macro_exp. - (COMMAND_LINE_OPTIONS): Add "-CC" option. - (cpp_handle_option): Handle "-CC" option. - * cpplex.c (save_comment): If saving a C++ comment in - a directive, convert it to a C comment. - (_cpp_lex_direct): Pass second comment start character to - save_comment to indicate comment type. - * cpplib.c (_cpp_handle_directive): If processing - a "#define" directive and discard_comments_in_macro_exp - is false, re-enable saving of comments. - (lex_macro_node): If discard_comments_in_macro_exp is false, - discard any comments before the macro identifier. - * cpplib.h (struct cpp_options): Add discard_comments_in_macro_exp - member. - * cppmacro.c (cpp_get_token): If expanding a macro while - processing a directive, discard any comments we might encounter. - (parse_params): If discard_comments_in_macro_exp is false, - ignore comments in the macro parameter list. - * gcc.c (cpp_unique_options): Add "-CC" option. - (option_map): Map "--comments-in-macros" to "-CC". - * doc/cppopts.texi: Document "-CC" option. - * f/lang-specs.h: Add "-CC" option. - * testsuite/gcc.dg/cpp/maccom1.c: New test. - * testsuite/gcc.dg/cpp/maccom2.c: New test. - * testsuite/gcc.dg/cpp/maccom3.c: New test. - * testsuite/gcc.dg/cpp/maccom4.c: New test. - * testsuite/gcc.dg/cpp/maccom5.c: New test. - * testsuite/gcc.dg/cpp/maccom6.c: New test. - -2002-04-06 John David Anglin - - PR middle-end/6180 - * reorg.c (dbr_schedule): Don't reposition prologue and epilogue notes. - -2002-04-06 Mark Mitchell - - PR c++/5571 - * stor-layout.c (layout_decl): Reset the RTL for the decl. - - PR opt/5120 - * sibcall.c (optimize_sibling_and_tail_recursive_call): Clear - RTX_UNCHANGING_P for the functions arguments when a tail call - is made. - -2002-04-06 Jason Merrill - - * toplev.c (flag_no_inline, flag_really_no_inline): Default to 2. - (parse_options_and_default_flags): Set them appropriately. - * c-common.c (c_common_post_options): Don't set flag_really_no_inline. - -2002-04-06 Hans-Peter Nilsson - - * config/mmix/t-mmix (TARGET_LIBGCC2_CFLAGS): Don't -Dinhibit_libc - here. - - * config/mmix/mmix.h (INITIAL_ELIMINATION_OFFSET): Remove spurious - semicolon. - - * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Variable-size - types come in by-reference. Fix typo in comment. - -2002-04-05 David S. Miller - - * config/sparc/freebsd.h (ENDFILE_SPEC): Add crtfastmath bits. - * config.gcc (sparc64-wrs-vxworks, sparc-*-chorusos, - sparc-*-rtems*, sparclite-*-elf* sparc86x-*-elf*, sparc64-*-elf*, - {sparc64,ultrasparc}-*-freebsd*): Add sparc/t-crtfm to tmake_file. - -2002-04-05 David S. Miller - - * config/sparc/sparc.c (sparc_nonflat_function_epilogue): If we - are not going to emit return instructions, emit at least a nop - for the sake of sane backtraces. - -2002-04-05 Richard Henderson - - * doc/rtl.texi (Regs and Memory): Document (mem:BLK (scratch)). - -2002-04-05 Jakub Jeilnek - - * mklibgcc.in: Use $tmpmapfile, not tmp-$@. - -2002-04-05 Alexandre Oliva - - * config/mips/mips.h (ISA_HAS_BRANCHLIKELY, ISA_HAS_CONDMOVE, - ISA_HAS_FP4, ISA_HAS_MADD_MSUB, ISA_HAS_NMADD_NMSUB, - ISA_HAS_CLZ_CLO, ISA_HAS_DCLZ_DCLO): Disable if TARGET_MIPS16. - -2002-04-05 Andreas Schwab - - * c-convert.c: Include c-common.h. - * Makefile.in (c-convert.o): Updated. - -2002-04-05 Jakub Jelinek - - * mklibgcc.in: Use separate libgcc.map for each multilib. - * Makefile.in (distclean): Don't remove libgcc.map here. - -2002-04-05 Jakub Jelinek - - * Makefile.in (s-mlib): Handle --disable-multilib by separate - genmultilib invocation. - -2002-04-04 Richard Sandiford - - * config/mips/mips.h (CUMULATIVE_ARGS): Rename fp_regs to num_fprs - to avoid clash with Irix header file sys/ucontext.h. Rename gp_regs - to num_gprs for symmetry. - * config/mips/mips.c: Adjust accordingly. - -2002-04-04 Neil Booth - - * c-common.c (truthvalue_conversion): Rename, update. - * c-common.h (c_common_truthvalue_conversion): New. - * c-convert.c (convert): Update. - * c-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. - * c-parse.in (expr_no_commas, if_prefix, select_or_iter_stmt): Update. - * c-typeck.c (build_binary_op, build_unary_op, - build_conditional_expr): Update. - * fold-const.c (constant_boolean_node, fold): Use langhook. - * langhooks-def.h (LANGHOOK_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New hook. - * stmt.c (expand_decl_cleanup): Use langhook. - * tree.h (truthvalue_conversion): Remove. -objc: - * objc-lang.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Redefine. - -2002-04-05 Alan Modra - - * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Add crtsavres.o - Add rules to make null object file. - -2002-04-04 Jim Blandy - - * cppmacro.c (cpp_macro_definition): Do not emit spaces after - macro formal parameter names. - -2002-04-04 David S. Miller - - * calls.c (store_one_arg): If ECF_SIBCALL, use tail_call_reg. - -2002-04-04 Richard Henderson - - PR middle-end/5099 - * stmt.c (expand_asm_operands): Validate outputs vs asm_operand_ok. - Support copies into and out of memory. Don't accept allows_reg - and allows_mem as gospel. - -2002-04-04 Richard Henderson - - PR opt/6165 - * alias.c (true_dependence): Force (mem:blk (scratch)) to conflict. - (write_dependence_p): Likewise. - -2002-04-04 Richard Henderson - - * predict.c (estimate_bb_frequencies): Do frequency calculation - with a volatile temporary. - -2002-04-04 Ulrich Weigand - - * config/s390/linux.h (LOCAL_LABEL_PREFIX): Define. - -2002-04-04 Jakub Jelinek - - PR c++/6119 - * final.c (final_start_function): Don't bump profile_label_no here... - (final_end_function): ...but here. - -2002-04-04 Jakub Jelinek - - * config/sparc/sparc.md (pic): New attribute. - (do_builtin_setjmp_setup): Save %fp, %i7 and %l7 for TARGET_V9 - into stack slots. - (split after do_builtin_setjmp_setup): New. - -2002-04-04 Jakub Jelinek - - PR fortran/6106 - * config/sparc/sparc.h (MIN_UNITS_PER_WORD): Backout 2001-01-01 - change. - -2002-04-04 Jakub Jelinek - - * config/sparc/sparc.c (sparc_va_arg): Adjust va_list by - UNITS_PER_WORD for zero sized aggregates. - -2002-04-03 David S. Miller - - * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): No need for a new - one-character spec for this, just use %(link_gcc_c_sequence). - -2002-04-03 David S. Miller - - * config/sparc/crtfastmath.c (FPRS_NS): Delete bogus little-endian - handling. - -2002-04-03 John David Anglin - - * pa-linux.h (INCOMING_RETURN_ADDR_RTX): Move. - (DWARF_FRAME_RETURN_COLUMN): Move. - (ASM_PREFERRED_EH_DATA_FORMAT): Define. - (ASM_MAYBE_OUTPUT_ENCODED_ADDR_RTX): Define. - * pa.c (except.h, predict.h): Include. - (FRP): Delete. - (store_reg_modify, set_reg_plus_d): Revise prototypes. - (output_ascii): Add cast. - (store_reg_modify): Revise to add frame notes. - (set_reg_plus_d): Likewise. - (compute_frame_size): Include space for eh data registers in frame if - the current function calls eh_return. - (hppa_expand_prologue): Ensure register %r2 is saved if the current - function calls eh_return. Save eh data registers if the current - function calls eh_return. Fix code to add frame notes. Emit - blockage to prevent insns with frame notes being scheduled in the - delay slot of calls. - (hppa_expand_epilogue): Restore eh data registers and do final stack - adjustment if the current function calls eh_return. Don't add frame - notes. - (output_call): Revise for change in length of call insn. Don't do - return pointer adjustment for an unconditional jump in the delay slot - of a call when using frame notes. - * pa.h (EH_RETURN_DATA_REGNO): Revise for TARGET_64BIT compatibility. - (EH_RETURN_HANDLER_RTX): Use saved value on stack. - (ARG_POINTER_CFA_OFFSET): Define. - * pa.md (return_external_pic): New pattern. - (prologue): Correct formatting. Use return_external_pic if current - function calls eh_return. - (call_internal_symref, call_value_internal_symref, - sibcall_internal_symref, sibcall_value_internal_symref): Change default - lengths of short, long non-pic, and long pic calls to 8, 68, and 84, - respectively. - (exception_receiver): Use hppa_pic_save_rtx () to restore pic register. - - * configure.in ("assembler dwarf2 debug_line support"): Add hppa*-*-* to - list of targets to check using "nop" insn. - * configure: Rebuilt. - -2002-04-04 Alan Modra - - * config/rs6000/t-linux64 (EXTRA_MULTILIB_PARTS): Define. - -2002-04-03 David S. Miller - - * gcc.c (LINK_GCC_C_SEQUENCE_SPEC): New spec to override the gcc/c - library sequence passed to the linker. - (LINK_COMMAND_SPEC): Use it. - * doc/tm.texi: Document it, and mention from LINK_COMMAND_SPEC as - a macro a target can use to avoid overriding LINK_COMMAND_SPEC. - * config/sparc/sparc.h (LINK_GCC_C_SEQUENCE_SPEC): Define. - -2002-04-03 Jason Merrill - - * except.c (struct eh_status): Remove protect_list. - (begin_protect_partials, end_protect_partials): Remove. - (add_partial_entry): Remove. - * except.h: Remove prototypes. - - * expr.c (expand_expr) [WITH_CLEANUP_EXPR, TARGET_EXPR]: Use - expand_decl_cleanup_eh. - - PR c++/5636 - * tree.h (CLEANUP_EH_ONLY): New macro. - * stmt.c (expand_decl_cleanup_eh): New fn. - (expand_cleanups): Check CLEANUP_EH_ONLY. - * c-semantics.c (genrtl_decl_cleanup): Just take the CLEANUP_STMT. - Use expand_decl_cleanup_eh. - (expand_stmt): Adjust. - * c-common.h: Adjust prototype. - -2002-04-04 Hans-Peter Nilsson - - * config/cris/cris.c (cris_target_asm_function_prologue): Cast - uses of PIC_OFFSET_TABLE_REGNUM to int to silence warnings. - (cris_target_asm_function_epilogue): Ditto. - (cris_initial_frame_pointer_offset): Ditto. - (cris_simple_epilogue): Ditto. - (cris_expand_builtin_va_arg): Variable-size types come in - by-reference. - -2002-04-03 David S. Miller - - * config/sparc/crtfastmath.c (FPRS_NS): Get it right for - little-endian. - (set_fast_math): Correct 'fsr' type. - -2002-04-03 Richard Henderson - - PR opt/3569 - * langhooks.h (lang_hooks.decls.warn_unused_global): New. - * toplev.c (check_global_declarations): Use it. - * langhooks-def.h (lhd_warn_unused_global_decl): Declare. - (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. - (LANG_HOOKS_DECLS): Add it. - * langhooks.c (lhd_warn_unused_global_decl): New. - * c-decl.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. - * c-objc-common.c (c_warn_unused_global_decl): New. - * c-tree.h (c_warn_unused_global_decl): Declare. - * objc/objc-lang.c (LANG_HOOKS_WARN_UNUSED_GLOBAL_DECL): New. - -2002-04-03 Neil Booth - - * langhooks-def.h (lhd_set_decl_assembler_name, - LANG_HOOKS_SET_DECL_ASSEMBLER_NAME): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_set_decl_assembler_name): New, from tree.c - * langhooks.h (struct lang_hooks): New hook. - * tree.c (set_decl_assembler_name): Move to langhooks.c. - (lang_set_decl_assembler_name): Remove. - (init_obstacks): Don't set hook. - (decl_assembler_name): New function. - * tree.h (DECL_ASSEMBLER_NAME): Turn into a function call. - (decl_assembler_name): New. - (lang_set_decl_assembler_name): Remove. - -2002-04-03 Jakub Jelinek - - * configure.in (HAVE_SPARC_UA_PCREL_HIDDEN): Test whether %r_disp32() - works properly with .hidden symbols. - * configure: Rebuilt. - * config.in: Rebuilt. - * config/sparc/sparc.h (ASM_PREFERRED_EH_DATA_FORMAT): Use - DW_EH_PE_absptr for flag_pic && GLOBAL if %r_disp32() doesn't work - properly with .hidden symbols. - -2002-04-03 Jakub Jelinek - - PR middle-end/6102 - * df.c (df_insn_refs_record): Use XEXP not SET_DEST to access - USE argument. - -2002-04-03 Richard Henderson - - PR opt/4120 - * sched-rgn.c (sets_likely_spilled): New. - (sets_likely_spilled_1): New. - (add_branch_dependences): Use it. - -2002-04-02 Richard Henderson - - PR opt/4311 - * loop.h (LOOP_FIRST_PASS): New. - * loop.c (strength_reduce): Mind it when deciding to unroll. - * toplev.c (rest_of_compilation): Set it. - -2002-04-02 David S. Miller - - * config/sparc/sparc.md (ldd peephole2s): Fix final arg to - mems_ok_for_ldd_peep when the order of the loads being examined - is reversed. - * config/sparc/sparc.c (mems_ok_for_ldd_peep): Expand upon - existing comment to increase comprehension of this situation. - -2002-04-02 Zack Weinberg - - * config/sh/sh.md: Don't use union real_extract. - -2002-04-02 Richard Henderson - - * libgcc2.c (__bb_exit_func): Revert 03-31 change. - -2002-04-02 David O'Brien - - * config.gcc (i386-dg-dgux, i386-go32-msdos , i386-go32-rtems, - i386-ibm-aix, i386-moss-msdos, i386-ncr-sysv4, i386-next-, - i386-pc-msdosdjgpp, i386-sequent-bsd, i386-sequent-ptx1, - i386-sequent-ptx2, i386-sequent-ptx4, i386-sun-sunos, - i386-wrs-vxworks, i386-*-aout, i386-*-beoself, i386-*-bsd, - i386-*-bsdi, i386-*-chorusos, i386-*-coff, i386-*-elf, - i386-*-freebsd5, i386-*-freebsd-aout, i386-*-gnu, i386-*-interix, - i386-*-interix3, i386-*-isc, i386-*-linux, i386-*-linuxaout, - i386-*-linuxoldld, i386-*-lynxos, i386-*-mach, i386-*-mingw32, - i386-*-netbsd, i386-*-netbsdelf, i386-*-netware, i386-*-openbsd, - i386-*-osf1, i386-*-osfrose, i386-*-pe , i386-*-rtems, - i386-*-rtemscoff, i386-*-sco3.2v5, i386-*-solaris2, i386-*-sysv, - i386-*-sysv4, i386-*-sysv5, i386-*-udk, i386-*-uwin, i386-*-vsta, - i386-*-win32, x86_64-*-freebsd5, x86_64-*-linux, x86_64-*-netbsd): - Include as many configury headers via tm_file as possible. This - includes among others i386/unix.h, i386/bsd.h, i386/gas.h. - * config/openbsd-oldgas.h: New file. - * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/att.h, - config/i386/bsd.h, config/i386/djgpp.h, config/i386/freebsd-aout.h, - config/i386/gas.h, config/i386/gstabs.h, config/i386/i386-aout.h, - config/i386/i386-coff.h, config/i386/i386-interix.h, - config/i386/iscdbx.h, config/i386/linux-aout.h, - config/i386/linux-oldld.h, config/i386/lynx-ng.h, config/i386/lynx.h, - config/i386/mach.h, config/i386/netbsd.h, config/i386/next.h, - config/i386/openbsd.h, config/i386/osfelf.h, config/i386/osfrose.h, - config/i386/sco5.h, config/i386/seq-gas.h, config/i386/seq-sysv3.h, - config/i386/seq2-sysv3.h, config/i386/sequent.h, config/i386/sun.h, - config/i386/sun386.h, config/i386/svr3dbx.h, config/i386/svr3gas.h, - config/i386/sysv3.h, config/i386/uwin.h, config/i386/vsta.h, - config/i386/vxi386.h: Do not directly include configury headers. - * config/i386/cygwin.h, config/i386/djgpp.h, config/i386/win32.h: - Directly include configury headers that are no longer automatically - included by the above headers. - * config/i386/att.h, config/i386/bsd.h (TARGET_VERSION): Do not define. - * config/i386/386bsd.h, config/i386/aix386ng.h, config/i386/cygwin.h, - config/i386/djgpp.h, config/i386/i386-aout.h, config/i386/i386-coff.h, - config/i386/lynx-ng.h, config/i386/lynx.h, config/i386/mach.h, - config/i386/netbsd.h, config/i386/openbsd.h, config/i386/rtems.h, - config/i386/seq-sysv3.h, config/i386/sequent.h, config/i386/svr3gas.h, - config/i386/sysv3.h, config/i386/vsta.h, config/i386/vxi386.h - (TARGET_VERSION): Define. - * config/i386/beos-elf.h, config/i386/freebsd.h, - config/i386/i386-interix.h, config/i386/i386elf.h, config/i386/linux.h, - config/i386/linux64.h, config/i386/netbsd-elf.h, config/i386/netbsd64.h, - config/i386/osfelf.h, config/i386/osfrose.h, config/i386/ptx4-i.h, - config/i386/sco5.h, config/i386/sysv4.h - (TARGET_VERSION): Do not need to protect. - * config/i386/freebsd64.h (TARGET_VERSION): Fix style. - * config/i386/386bsd.h, config/i386/cygwin.h, config/i386/djgpp.h, - config/i386/freebsd-aout.h, config/i386/i386-aout.h, - config/i386/i386-interix.h, config/i386/linux-aout.h, - config/i386/linux-oldld.h, config/i386/mach.h, config/i386/netbsd.h, - config/i386/openbsd.h, config/i386/vsta.h, config/i386/win32.h - (YES_UNDERSCORES): Do not define - not needed. - * config/i386/bsd.h, config/i386/gas.h (LPREFIX, - ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL, - USER_LABEL_PREFIX): Do not handle the "NO_UNDERSCORES" case. - * config/i386/i386-coff.h, config/i386/lynx.h, config/i386/lynx-ng.h - (LPREFIX, ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_INTERNAL_LABEL, - USER_LABEL_PREFIX): Define. (handles the "NO_UNDERSCORES" case) - * config/i386/isc.h: Preserve comment from config/i386/isccoff.h. - * config/i386/isccoff.h, config/i386/v3gas.h: Remove. - -2002-04-02 Eric Botcazou - Richard Henderson - - PR c/5484 - * function.c (assign_temp): Accept either type or decl argument. - Detect variables whose size is too large to fit into an integer. - * stmt.c (expand_decl): Pass the decl, not the type. - -2002-04-02 David O'Brien - - * protoize.c: Match include directory usage with cppdefault.c. - -2002-04-03 Jeffrey A Law (law@redhat.com) - Hans-Peter Nilsson - - * combine.c (simplify_comparison): Avoid narrowing a comparison - with a paradoxical subreg when doing so would drop signficant bits. - -2002-04-02 Steve Ellcey - - * builtins.c (expand_builtin_prefetch): Force op0 pointer to Pmode - if POINTERS_EXTEND_UNSIGNED is defined. - -2002-04-02 Richard Henderson - - PR opt/3967 - * local-alloc.c (contains_replace_regs): LO_SUM may contain - replace regs. - -2002-04-02 Richard Henderson - - * doc/standards.texi: Document required freestanding libc entry points. - -2002-04-02 Alan Modra - - * config/rs6000/rs6000.md (ctrdi*): Add FPR constraint and - associated splitter. Remove MQ constraint. - (ctrdi_internal4): Correct CCmode clobber. - -2002-04-02 John David Anglin - - * milli64.S ($$dyncall): New function. - * t-linux (LIB1ASMFUNCS): Revise module list. - (LIB1ASMSRC): Use pa/milli64.S. - -2002-04-02 Richard Henderson - - * fixinc/inclhack.def (AAB_solaris_sys_varargs_h): Move and - rename solaris_sys_varargs_h. - -Tue Apr 2 06:47:40 2002 Richard Kenner - - * stor-layout.c (layout_type, case ARRAY_TYPE): Give one-element array - the same mode as its component. - -2002-04-02 Richard Henderson - - PR opt/190 - * final.c (this_is_asm_operands): Export. - * output.h (this_is_asm_operands): Declare. - * config/i386/i386.c (print_operand): Error odd asm operands. - -2002-04-02 Richard Henderson - - PR opt/420 - * config/m68k/m68k.md (dbcc peepholes): Match four forms of dbra. - -2002-04-01 Richard Henderson - - PR target/1538 - * fixinc/inclhack.def (solaris_sys_varargs_h): New. - * fixinc/fixincl.x: Rebuild. - -2002-04-01 Richard Henderson - - * config/ia64/unwind-ia64.c: Include ia64intrin.h. - (atomic_alloc, atomic_free): New. - (SIZE, MASK_FOR, PTR_IN): New. - (emergency_reg_state, emergency_reg_state_free): New. - (emergency_labeled_state, emergency_labeled_state_free): New. - (reg_state_alloced, labeled_state_alloced): New. - (alloc_reg_state, free_reg_state): New. - (alloc_label_state, free_label_state, free_label_states): New. - (push, pop, dup_state_stack, free_state_stack): Use them. - (desc_label_state): Likewise. - (uw_frame_state_for): Free label states and state stack. - (uw_update_reg_address): Eliminate warnings. - -2002-04-01 Vladimir Makarov - - * config/pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON, - ASM_OUTPUT_ALIGNED_LOCAL): Redefine them. - -2002-04-01 Neil Booth - - * c-decl.c (grokdeclarator): Update. - * c-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. - * c-tree.h (c_mark_addressable): New. - * c-typeck.c (default_function_array_conversion, build_unary_op, - build_array_ref, convert_for_assignment): Update. - (mark_addressable): Rename. - * calls.c (try_to_integrate, expand_call): Use langhook. - * expr.c (expand_expr): Use langhook. - * langhooks-def.h (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New hook. - * stmt.c (expand_asm_operands): Use langhook. - * tree.h (mark_addressable): Remove. -objc: - * objc-lang.c (LANG_HOOKS_MARK_ADDRESSABLE): Redefine. - -2002-04-01 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_va_arg): Fix compiler warning - in previous change. - -2002-04-01 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_va_arg): Fix to handle arguments - for which MUST_PASS_IN_STACK is true (e.g., variable-sized types). - -2002-04-01 Neil Booth - - * c-common.c (unsigned_conversion_warning, convert_and_check, - unsigned_type, signed_type, shorten_compare, - c_common_get_alias_set, c_common_nodes_and_builtins): Use new hooks. - (unsigned_type, signed_type, signed_or_unsigned_type): Rename. - * c-common.h (unsigned_type, signed_type, signed_or_unsigned_type): - New. - * c-decl.c (grokdeclarator): Update. - * c-format.c (check_format_types): Update. - * c-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, - LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. - * c-typeck.c (build_binary_op, convert_for_assignment): Update. - * convert.c (convert_to_integer): Use new hooks. - * expmed.c (make_tree): Use new hooks. - * expr.c (store_expr): Use new hooks. - * fold-const.c (operand_equal_for_comparison_p, build_range_check, - all_ones_mask_p, unextend, fold): Use new hooks. - * langhooks.h (struct lang_hooks_for_types): New hooks. - * tree.h (signed_or_unsigned_type, signed_type, - unsigned_type): Remove. -objc: - * objc-lang.c (LANG_HOOKS_SIGNED_TYPE, LANG_HOOKS_UNSIGNED_TYPE, - LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): New. - -2002-03-31 Richard Henderson - - * config/ia64/unwind-ia64.c (alloc_spill_area): Fix offset. - (desc_frgr_mem): Fix reference to f16-f31. - -2002-03-31 Kaveh R. Ghazi - - * rtl.h (RTL_CHECK1, RTL_CHECK2, RTL_CHECKC1, RTL_CHECKC2, - RTVEC_ELT): Const-ify. - * varray.h (VARRAY_CHECK): Const-ify. - * ggc.h (ggc_mark_rtx, ggc_mark_tree, ggc_mark_nonnull_tree, - ggc_mark_rtvec, ggc_mark): Const-ify. - -2002-04-01 Neil Booth - - * diagnostic.c: Include langhooks-def.h. - * Makefile.in (diagnostic.o): Update. - -2002-03-31 Neil Booth - - * c-common.c (c_unsafe_for_reeval): Rename. - * c-common.h (c_unsafe_for_reeval): Rename. - * c-decl.c (finish_incomplete_decl): Rename. - (c_init_decl_processing): Don't set langhook. - * c-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL, - LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. - * c-objc-common.c (c_objc_common_init): Don't set langhook. - * c-tree.h (finish_incomplete_decl): Rename. - * langhooks-def.h (lhd_unsafe_for_reeval): New. - (LANG_HOOKS_FINISH_INCOMPLETE_DECL, LANG_HOOKS_UNSAFE_FOR_REEVAL): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_unsafe_For_reeval): New. - * langhooks.h (struct langhooks): New hooks. - * toplev.c (incomplete_decl_finalize_hook): Remove. - (wrapup_global_declarations): Update. - * tree.c (lang_unsafe_for_reeval): Remove. - (unsafe_for_reeval): Update. - * tree.h (lang_unsafe_for_reeval, incomplete_decl_finalize_hook): - Remove. -objc: - * objc-lang.c (LANG_HOOKS_FINISH_INCOMPLETE_DECL, - LANG_HOOKS_UNSAFE_FOR_REEVAL): Redefine. - -2002-03-31 Neil Booth - - * diagnostic.c (print_error_function): Remove. - (default_print_error_function): Rename. - (report_error_function): Update. - * diagnostic.h (print_error_function): Remove. - (default_print_error_function): Remove. - * langhooks-def.h (struct diagnostic_context): Predeclare. - (lhd_print_error_function, LANG_HOOKS_PRINT_ERROR_FUNCTION): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct diagnostic context): Predeclare. - (struct lang_hooks): New hook. - -2002-03-31 Franz Sirl - - * config/rs6000/rs6000.h (RS6000_PIC_OFFSET_TABLE_REGNUM): New. - (PIC_OFFSET_TABLE_REGNUM): Use it and return INVALID_REGNUM if - !flag_pic. - (CONDITIONAL_REGISTER_USAGE): Adjust accordingly. - * config/rs6000/rs6000.h: Use RS6000_PIC_OFFSET_TABLE_REGNUM instead - of PIC_OFFSET_TABLE_REGNUM thruout. - * config/rs6000/rs6000.md: Likewise. - * config/rs6000/darwin.h: Likewise. - -Sun Mar 31 14:43:24 2002 Richard Kenner - - * emit-rtl.c (adjust_address_1, offset_address): Cast value to - unsigned HOST_WIDE_INT, not unsigned int. - -2002-03-31 Jakub Jelinek - - PR middle-end/6096, middle-end/6098, middle-end/6099 - * reorg.c (emit_delay_sequence): Only increment LABEL_NUSES for - CODE_LABELs. - (fill_slots_from_thread): Likewise. - -2002-03-31 Jakub Jelinek - - * config/sparc/sparc.c (function_arg_record_value_1): Pass complex - floating fields in float regs. - (function_arg_record_value_2): Likewise. - -2002-03-31 Hans-Peter Nilsson - - * config/mmix/mmix.md (define_constants): Remove misleading - FIXME. Add MMIX_fp_rO_OFFSET. - ("nonlocal_goto_receiver"): Don't have stack-frame address of - saved rO as part of the pattern. Remove FIXME. - ("*nonlocal_goto_receiver_expanded"): Similar. Generate address - here, at output-time. - -2002-03-31 Jakub Jelinek - - PR middle-end/6100 - * config/sparc/sparc.c (output_cbranch): Use REG_BR_PROB, not - REG_BR_PRED. - (output_v9branch): Likewise. - -2002-03-31 Alexandre Oliva - - * gcc.c: Revert previous patch for now. - * config/i386/djgpp.h: Likewise. - -2002-03-31 Hans-Peter Nilsson - - * config/mmix/crti.asm (_init): Register _fini with atexit. - * config/mmix/crtn.asm (_fini): Add omitted "POP 0,0". - -2002-03-31 Richard Henderson - - PR target/3997 - * config/alpha/elf.h (ASM_OUTPUT_DEF): Tidy. - (ASM_OUTPUT_DEF_FROM_DECLS): New. - -2002-03-31 Richard Henderson - - * libgcc2.c (__bb_exit_func): Make static. - - * config/alpha/alpha.md (trap): New. - -2002-03-31 Richard Henderson - - * builtins.c (expand_builtin_va_arg): Give warnings not errors for - promoted argument types; build trap. - (expand_builtin_trap): New. - (expand_builtin): Use it. - * stmt.c (expand_nl_goto_receivers): Likewise. - * expr.h (expand_builtin_trap): Declare. - * libfuncs.h (LTI_abort, abort_libfunc): New. - * optabs.c (init_optabs): Init abort_libfunc. - -2002-03-31 Alexandre Oliva - - * gcc.c (LIBGCC_SPEC): Folded %L and duplicate %G here... - (LINK_COMMAND_SPEC): ... from here. - (init_gcc_specs): Duplicate it here too, omitting - shared_name in the second copy. - (init_spec): Test for duplicate - * config/i386/djgpp.h (LINK_COMMAND_SPEC): Remove `%L %G'. - -2002-03-30 David S. Miller - - * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Likewise. - -2002-03-30 Roger Sayle - Richard Henderson - - * regmove.c (combine_stack_adjustments_for_block): Avoid - emitting a stack adjustment of zero bytes. Let delete_insn - update bb->head. - -2002-03-30 Richard Henderson - - * config/sparc/sparc.c: Remove all references to TARGET_EPILOGUE. - (sparc_emitting_epilogue): New. - (leaf_label, output_return, sparc_return_peephole_ok): Remove. - * config/sparc/sparc-protos.h: Update. - * config/sparc/sparc.h (MASK_EPILOGUE, TARGET_EPILOGUE): Remove. - (TARGET_SWITCHES): Update. - * config/sparc/sparc.md (return): Remove. - (return_*): Use sparc_emitting_epilogue, not !TARGET_EPILOGUE. - * config/sparc/freebsd.h, config/sparc/linux64.h, config/sparc/lite.h, - config/sparc/liteelf.h, config/sparc/netbsd-elf.h, - config/sparc/sol2-sld-64.h, config/sparc/sol2.h, - config/sparc/sp64-aout.h, config/sparc/sp64-elf.h, - config/sparc/sp86x-aout.h, config/sparc/sp86x-elf.h, - config/sparc/splet.h, config/sparc/vxsparc64.h (TARGET_DEFAULT): - Remove MASK_EPILOGUE. - * doc/invoke.texi: Update. - -2002-03-30 Daniel Berlin - - * dwarf2out.c (dwarf2out_define): Remove start_source_file call, - CPP will start the file for us. - -2002-03-30 Richard Henderson - - PR target/5446 - * config/ia64/ia64.c (group_barrier_needed_p): Special case - prologue_allocate_stack. - (ia64_single_set): Use insn codes for recognition of special - cases, not rtl matching. - * config/ia64/ia64.md (prologue_allocate_stack): Op 3 is in-out. - -Sat Mar 30 23:48:41 CET 2002 Jan Hubicka - - * cfgbuild.c (find_basic_blocks_1): Clear aux for blocks. - -2002-03-30 Richard Henderson - - PR target/6032 - * config/sparc/sparc.h (OVERRIDE_OPTIONS): Don't override -fpic - or -fomit-frame-pointer with profiling. - (SUBTARGET_OVERRIDE_OPTIONS): Remove. - (FUNCTION_PROFILER): Do nothing. - (PROFILE_HOOK): New. - * config/sparc/sparc.c (sparc_override_options): Don't check - code models for profiling. - (sparc_function_profiler): Remove. - (sparc_profile_hook): New. - * config/sparc/sparc-protos.h: Update. - -2002-03-30 Jakub Jelinek - - PR optimization/6086 - * combine.c (combine_simplify_rtx): If simplify_rtx failed because - of SUBREG of volatile MEM or because the MEM was mode dependent, - return CLOBBER instead of unmodified SUBREG. - -Sat Mar 30 14:08:55 CET 2002 Jan Hubicka - - * local-alloc.c (local_alloc): Avoid call of update_equiv_regs - when not optimizing. - - * toplev.c (rest_of_compilation): Cann mark_constant_function - only when optimizing. - - * flow.c (calculate_global_regs_live): Ensure that all AUX fields - are NULL. - - * cfgcleanup.c (bb_flags): Add BB_NONTHREADABLE_BLOCK. - (thread_jump): Set BB_NONTHREADABLE_BLOCK, check it. - (try_optimize_cfg): clear all AUX fields. - - * 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. - -2002-03-29 Richard Henderson - - PR target/5672 - * expr.c (expand_expr): Pass along EXPAND_INITIALIZER one more place. - -2002-03-29 Franz Sirl - - * config/rs6000/rs6000.c (rs6000_va_arg): Correctly set register count - for aggregate and TFmode types. - -2002-03-29 Hans-Peter Nilsson - - * cfg.c (dump_flow_info): Guard against NULL regno_reg_rtx[i]. - -2002-03-29 Richard Henderson - - PR target/5886 - * config/ia64/aix.h (CPP_PREDEFINES): Add -D_LP64. - * config/ia64/hpux.h, config/ia64/linux.h: Likewise. - -2002-03-29 Richard Henderson - - PR target/6041 - * config/i386/i386.c (x86_arch_always_fancy_math_387): New. - (override_options): Disable NO_FANCY_MATH_387 if the arch allows. - * config/i386/i386.h (x86_arch_always_fancy_math_387): New. - * config/i386/i386.md (sqrtxf2, sqrtextendsfxf2, sinxf2): Fix - conditional. - * docs/invoke.texi: Update -mno-fancy-math-387 docs. - -2002-03-29 Dale Johannesen - - * loop.c (combine_movables): Do allow combination of pseudos. - -2002-03-29 Loren J. Rittle - - * config.gcc (*-*-freebsd*): Enable creation of libgcc_s.so. - * config/t-slibgcc-elf-ver (SHLIB_LC): Add macro and use it. - No functional change except ... - * config/t-slibgcc-nolc-override (SHLIB_LC): Override it. New file. - * doc/install.texi (*-*-freebsd*): Document port configuration. - -2002-03-29 Neil Booth - - * Makefile.in (convert.o, calls.o, expmed.o): Update. - * attribs.c (handle_mode_attribute, handle_vector_size_attribute): - Use new hooks. - * builtin-types.def (BT_PTRMODE): Update. - * c-common.c (type_for_size): Rename c_common_type_for_size. - (type_for_mode): Similarly. - (shorten_compare, pointer_int_sum, c_common_nodes_and_builtins): - Use new hook. - * c-bommon.h (c_common_type_for_size, c_common_type_for_mode): New. - * c-decl.c (finish_enum, build_enumerator): Use new hooks. - * c-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIZE): - Redefine. - * c-typeck.c (common_type, comptypes, default_conversion): - Use new hooks. - * calls.c: Include langhooks.h. - (emit_library_call_value_1): Use new hooks. Avoid redundant - calls. - * convert.c: Include langhooks.h - (convert_to_pointer, convert_to_integer): Use new hooks. - * except.c (init_eh): Similarly. - * expmed.c: Include langhooks.h. - (expand_mult_add): Use new hooks. - * expr.c (store_expr, store_constructor, expand_expr, do_jump, - try_casesi): Similarly. - * fold-const.c (optimize_bit_field_compare, make_range, - decode_field_reference, fold_truthop, fold): Similarly. - * function.c (assign_stack_local_1, assign_stack_temp_for_type, - put_var_into_stack): Similarly. - * langhooks-def.h (LANG_HOOKS_TYPE_FOR_MODE, - LANG_HOOKS_TYPE_FOR_SIZE): New. - (LANG_HOOKS_TYPES_INITIALIZER): Update. - * langhooks.h (lang_hooks_for_types): New hooks. - * stmt.c (expand_decl_cleanup, emit_case_nodes): Use new hooks. - * tree.c (get_unwidened, get_narrower): Similarly. - * tree.h (type_for_mode, type_for_size): Remove. - * varasm.c (force_const_mem): Use new hooks. - * utils2.c (nonbinary_modular_operation): Update. -objc: - * objc-act.c (handle_impent): Update. - * objc-lang.c (LANG_HOOKS_TYPE_FOR_MODE, LANG_HOOKS_TYPE_FOR_SIaZE): - Redefine. - -2002-03-29 Steve Ellcey - - * config/ia64/ia64.md (*ptr_extend_plus_1, *ptr_extend_plus_2): New. - * config/ia64/ia64.c (basereg_operand): New. - * config/ia64/ia64-protos.h (basereg_operand): Declare. - * config/ia64/ia64.h (PREDICATE_CODES): Add basereg_operand. - -2002-03-29 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_target_asm_function_prologue): Correct - unwind information when frame_pointer_needed. - (mmix_assemble_integer): Tweak wording in comment. - -2002-03-29 Neil Booth - - * Makefile.in (except.o): Update. - * except.c: Include langhooks.h. - (init_eh): Use langhook. - * langhooks-def.h (LANG_HOOKS_MAKE_TYPE, - LANG_HOOKS_FOR_TYPES_INITIALIZER): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (lang_hooks_for_types): New. - (struct lang_hooks): Add it. - * tree.c (make_lang_type_fn, make_lang_type): Remove. - * tree.h (make_lang_type_fn, make_lang_type): Remove. -config: - * alpha/alpha.c: Include langhooks.h. - (alpha_build_va_list): Use langhook. - * d30v/d30v.c: Include langhooks.h. - (d30v_build_va_list): Use langhook. - * i386/i386.c: Include langhooks.h. - (ix86_build_va_list): Use langhook. - * rs6000/rs6000.c (rs6000_build_va_list): Use langhook. - * s390/s390.c: Include langhooks.h. - (s390_build_va_list): Use langhook. - * stormy16/stormy16.c: Include langhooks.h. - (stormy16_build_va_list): Use langhook. - -2002-03-29 Jakub Jelinek - - PR c++/5964 - * config/sparc/sparc.md (empty_delay_slot, branch_type): New - attributes. - (length): Compute variable length for branches/calls/jumps here. - (branch, inverted_branch, normal_fp_branch, inverted_fp_branch, - normal_fpe_branch, inverted_fpe_branch): Remove length attribute, - define branch_type attribute. - (divsi3_sp32): Maximum length is 6 not 7. - (call_address_struct_value_sp32, call_symbolic_struct_value_sp32, - call_address_untyped_struct_value_sp32, - call_symbolic_untyped_struct_value_sp32): Set length to 3 not 2. - * config/sparc/sparc.c (empty_delay_slot): New function. - * config/sparc/sparc.h (ADJUST_INSN_LENGTH): Remove. - * config/sparc/sparc-protos.h (empty_delay_slot): Add prototype. - -2002-03-29 Jakub Jelinek - - * combine.c (set_nonzero_bits_and_sign_copies): Don't call - nonzero_bits if not needed. - (nonzero_bits) [XOR]: Likewise. - (nonzero_bits) [REG]: Use reg_last_set_nonzero_bits even if - reg_last_set_mode and mode are both MODE_INT, but not equal. - (record_value_for_reg): Compute reg_last_set_nonzero_bits - in nonzero_bits_mode for MODE_INT modes. - -2002-03-28 Richard Henderson - - PR target/5715 - * config/alpha/osf.h (ASM_SPEC): Don't pass any special options - to GAS. Correct drift between alternatives. - -2002-03-28 Richard Henderson - - PR target/6087 - * reload1.c (fixup_abnormal_edges): Move insn to edge via sequence. - -2002-03-28 Alexandre Oliva - - * config/i386/freebsd.h (LINK_SPEC): Don't pass default - emulation to the linker. - -2002-03-28 Loren J. Rittle - - * config/alpha/freebsd.h (LINK_SPEC): Likewise. - * config/sparc/freebsd.h (LINK_SPEC): Likewise. - -Thu Mar 28 16:35:31 2002 Jeffrey A Law (law@redhat.com) - - * combine.c (simplify_and_const_int): Make sure to apply mask - when force_to_mode returns a constant integer. PR3311. - -2002-03-28 John David Anglin - - * pa-linux.h (LOCAL_LABEL_PREFIX): Define. - -2002-03-28 Gerald Pfeifer - - * doc/invoke.texi (Warning Options): Refer to C++ Dialect Options - and Objective-C Dialect Options. - -2002-03-28 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_conditional_branch): TFmode NE - comparison should be done vs !=0 not >0 return code. Tidy cases. - -2002-03-28 Richard Henderson - - * c-decl.c (finish_function): New arg can_defer_p. Pass it - on to c_expand_body. - * c-tree.h (finish_function): Update decl. - * c-objc-common.c, c-parse.in, objc/objc-act.c: Update calls. - -Thu Mar 28 19:13:36 CET 2002 Jan Hubicka - - * ifcvt.c (if_convert): Clear aux_for_blocks early enough. - -Thu Mar 28 13:21:53 CET 2002 Jan Hubicka - - * rtlanal.c: Include flags.h - (may_trap_p): Do not mark FP operations if trapping - if !flag_trapping_math - * Makefile.in (rtlanal.o): Add dependency on flag.h - * ifcvt.c (noce_operand_ok): Avoid the lameness. - -2002-03-27 Zack Weinberg - - * mips.md: Use dconst1, not 1.0, as first argument of - REAL_VALUE_LDEXP. Don't use union real_extract. - -2002-03-28 Alan Modra - - * configure.in (gcc_cv_as): Use $target_alias in directory searchs - rather than $target. Heed program_prefix and - program_transform_name. Search for gas in cross-compiler case too. - "test -x" rather than "test -f". - (gcc_cv_ld): Likewise. - (gcc_cv_nm): Heed program_prefix and program_transform_name. - (gcc_cv_objdump): Likewise. - * configure: Regenerate. - -2002-03-27 Neil Booth - - * Makefile.in (attribs.o): Update. - * attribs.c: Include langhooks.h. - (decl_attributes): Use langhook. - * c-decl.c (insert_default_attributes): Rename. - * c-tree.h (c_insert_default_attributes): New. - * langhooks-def.h (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES):New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New hook. - * tree.h (insert_default_attributes): Remove. -objc: - * objc-lang.c (LANG_HOOKS_INSERT_DEFAULT_ATTRIBUTES): Redefine. - -2002-03-27 Andreas Schwab - - * config/i386/i386.c (classify_argument): Also check for - QUAL_UNION_TYPE. - -2002-03-27 Rainer Orth - - * doc/install.texi (alpha*-dec-osf*): Don't need --enable-libgcj - any more. - -Wed Mar 27 23:19:30 CET 2002 Jan Hubicka - - * i960.md (ret): Set PC. - (nonlocal_goto): Fix expander. - * builtins.c (epxand_builin_longjmp): Check that we've emitted - some jump or call. - -Wed Mar 27 23:11:35 CET 2002 Jan Hubicka - - * optabs.c (emit_no_conflict_block, emit_libcall_block): Avoid nesting - of libcall regions. - -Wed Mar 27 22:54:14 CET 2002 Zdenek Dvorak - - * cfgrtl.c (merge_blocks_nomove): Use set_block_for_insn instead of - assigning to BLOCK_FOR_INSN directly. - -Wed Mar 27 22:33:05 CET 2002 Jan Hubicka - - * i386.c (ix86_output_addr_diff_elt): Remove binutils bug workaround. - -2002-03-27 Neil Booth - - * c-common.c (c_expand_expr): Fix prototype. - * c-common.h (c_expand_expr): Always declare, update. - * c-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. - * c-objc-common.c (c_objc_common_init): No global hook. - * expr.c (expand_expr): Use langhook. - * expr.h (enum expand_modifier): Conditionally declare. - * langhooks-def.h (lhd_expand_expr, LANG_HOOKS_EXPAND_EXPR): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_expand_expr): New. - * langhooks.h (struct lang_hooks): New hook. - * toplev.c (lang_expand_expr_t, lang_expand_expr): Delete. - (lang_independent_init): Don't default hook. -objc: - * objc-lang.c (LANG_HOOKS_EXPAND_EXPR): Redefine. - -2002-03-27 Richard Henderson - - PR target/6054 - * config/ia64/ia64.c (ia64_expand_call): Use pic patterns for - TARGET_CONST_GP. Simplify conditions. - -2002-03-27 Richard Henderson - - * config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h, - config/sparc/netbsd-elf.h, config/sparc/pbd.h, config/sparc/sol2.h, - config/sparc/vxsim.h (LOCAL_LABEL_PREFIX): Define. - -2002-03-27 Danny Smith - - * config/i386/cygwin.h (TARGET_DLL, TARGET_WIN32, - TARGET_CYGWIN, TARGET_WINDOWS): Remove unused switches. - (MASK_DLL, MASK_WIN32, MASK_CYGWIN, MASK_WINDOWS): - Remove unnecessary masks. - (MASK_NOP_FUN_DLLIMPORT): Use an unused an bit. - (SUBTARGET_SWITCHES): Use empty masks for -mwin32, -mcygwin, - -mwindows, -mdll switches and their negations. - -2002-03-27 Neil Booth - - * gcc-common.c (lang_mark_false_label_stack): Remove. - * ggc.h (lang_mark_false_label_stack): Similarly. - -2002-03-26 Vladimir Makarov - - * pa/pa-pro-end.h (CPP_PREDEFINES): Add -D__pro__. - - * pa/lib2funcs.asm: Don't use .SPACE and .SUBSPACE if __pro__ - or __rtems_ is defined. - -2002-03-26 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_set_const): Add a REG_EQUAL note - if a non-trivial load was emitted. - (alpha_emit_set_const_1): Remove obsolete extension. Fix thinko - in high+extra+low case. - -2002-03-26 Richard Henderson - - * config.gcc (sparc*-solaris): Use float_format=sparc. - -2002-03-26 Richard Henderson - - * config/sparc/sparc.h (MAX_WCHAR_TYPE_SIZE): Don't define. - * config/sparc/linux-aout.h (MAX_WCHAR_TYPE_SIZE): Don't undef. - * config/sparc/linux.h, config/sparc/linux64.h: Likewise. - * config/sparc/sol2.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Redefine. - (WINT_TYPE_SIZE): Fix at 32. - -2002-03-26 Richard Henderson - - * toplev.c (rest_of_compilation): Delay emit_initial_value_sets - until after eh landing pad generation. - * config/alpha/alpha.c (alpha_gp_save_rtx): Use gen_mem_addressof. - * config/alpha/alpha.md (exception_receiver_2): Only accept MEMs. - -2002-03-26 Richard Henderson - - * expr.h (ADD_PARM_SIZE): One more convert for INC. - -2002-03-26 Phil Edwards - - * gcc.c (cpp_options): Preserve relative ordering of -pedantic - and warning switches. - (cc1_options): Likewise. - -2002-03-26 Hans Boehm - - * config/ia64/linux.h (MD_FALLBACK_FRAME_STATE_FOR): - Restore more of the signal context. Set no_reg_stack_frame. - * config/ia64/unwind-ia64.c (unw_state_record): - Add no_reg_stack_frame, comments. - (uw_frame_state_for): Initialize when field to UNW_WHEN_NEVER. - (uw_update_context): Adjust bsp when unwinding from leaf, - but not signal frame. - -2002-03-26 David Edelsohn - - * config/rs6000/aix51.h (WCHAR_TYPE): Define. - -2002-03-26 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_va_arg): Handle variable-sized types. - -2002-03-26 Richard Earnshaw - - PR target/5621 - * arm.md (define_asm_attributes): Reapply patch of Thu Sep 9, 1999: - "Add a pool_range attribute", which was lost during the ARM/Thumb - merge. - -2002-03-26 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_valid_move): Allow move from - a register into the MAC16 accumulator. - -2002-03-26 Andrew Cagney - - * doc/invoke.texi (Option Summary): Mention -Wswitch-enum. - (Warning Options): Document -Wswitch-enum. - * toplev.c (W_options): Add -Wswitch-enum. Update comment on - -Wswitch. - (warn_switch_enum): Define variables. - * flags.h (warn_switch_enum): Declare variables. - * stmt.c (expand_end_case_type): When warn_switch_enum / - -Wswitch-enum, perform switch checks. - Fix PR c/5044. - -2002-03-26 Richard Earnshaw - - * arm.md (reload_mulsi3, reload_mulsi_compare0, reload_muladdsi) - (reload_mulsi_compare0_scratch, reload_muladdsi_compare0) - (reload_muladdsi_compare0_scratch): Delete. - -2002-03-26 Loren J. Rittle - - * doc/install.texi (*-*-freebsd*): Update. - -2002-03-26 Richard Henderson - - * expr.h (ADD_PARM_SIZE): Cast INC to ssizetype. - (SUB_PARM_SIZE): Cast DEC to ssizetype. - - * config/alpha/alpha.c (alpha_va_arg): Read MUST_PASS_IN_STACK - types from the normal argument frame. - - * config/sparc/sparc.c (function_arg_pass_by_reference): Pass - variable sized objects by reference. - (sparc_va_arg): Receive them by reference too. - -2002-03-26 Hartmut Penner - - * config/s390/s390.c (s390_emit_epilogue): Change epilogue - code to not restoring global registers. - -2002-03-26 Neil Booth - - * Makefile.in (ggc-common.o): Update. - * c-decl.c (lang_mark_tree): Rename c_mark_tree. - * c-lang.c (LANG_HOOKS_MARK_TREE): Redefine. - * c-tree.h (c_mark_tree): New. - * ggc-common.c: Include langhooks.h. - (gcc_mark_trees): Use new langhook. - * ggc-callbacks.c: Delete file. - * ggc.h (lang_mark_tree): Remove. - * langhooks-def.h (LANG_HOOKS_MARK_TREE): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New hook. -objc: - * objc-lang.c (LANG_HOOKS_MARK_TREE): Redefine. - -2002-03-25 Zack Weinberg - - * doc/cpp.texi: Exclude entire Top node from printed manual. - Move option index after directive index. Insert page breaks - before GFDL and concept index. Index environment variables - with command line options. - * doc/cppenv.texi: Use @vtable for environment variable list. - Add paragraph explaining semantics of empty elements in path - variables. Exclude a cross-reference to Fishkill from the - manpage. Remove an unnecessary cross-reference of the entry - right above the referer. Don't use @anchor in text that goes - into manpage. - * doc/cppopts.texi: Cross-reference the environment variables - section, not the specific environment variable, for consistency. - -2002-03-25 Richard Henderson - - * recog.c (peephole2_optimize): Distribute EH_REGION -1 notes - anywhere in the block. Don't refer to insns that have been - removed from the chain. Iterate backward through the new insns. - Don't refer to edges that have been removed. - -2002-03-26 Alan Modra - - * combine.c (simplify_comparison ): Correct - test for overflow of constant. - -2002-03-25 Richard Earnshaw - - PR target/2623 - * arm.md (loadhi_preinc, loadhi_predec, loadhi_shiftpreinc) - (loadhi_shiftpredec, loadhi-with-writeback peephole): Don't use - these patterns on arm_archv4. - -2002-03-25 Danny Smith - - * config/i386/mingw32.h (WINT_TYPE): Define as "short unsigned - int". - -2002-03-25 Zack Weinberg - - * toplev.c: Don't include setjmp.h. Kill float_handler_set, - float_handled, float_handler, float_signal, set_float_handler, - and do_float_handler. Set handler for SIGFPE to crash_signal. - * toplev.h: Don't prototype do_float_handler. - - * c-lex.c: Fold parse_float into lex_number. Make warning - about portability of hex float constants more informative, and - don't issue it on top of a syntax error. - * fold-const.c: Fold const_binop_1 and fold_convert_1 into - their callers. - * real.h: Define REAL_VALUE_ABS here... - * simplify-rtx.c: ... not here. Fold check_fold_consts, - simplify_unary_real, simplify_binary_real, and - simplify_binary_is2orm1 into their callers. - * tree.c: Fold build_real_from_int_cst_1 into caller. - - * doc/tm.texi: Document REAL_VALUE_ABS and REAL_VALUE_NEGATIVE. - - * tsystem.h: Include float.h here... - * libgcc2.c: ... not here. - -2002-03-25 Nick Clifton - - Fixes for: PR bootstrap/3591, target/5676 - * config/mcore/mcore.h (CC1_SPEC): Define only if not already - defined. Do not disable exceptions or rtti. - * config/mcore/mcore-pe.h (CC1_SPEC): Define before including - mcore.h. Disable exceptions and rtti, since they are not - supported by EPOC. - -2002-03-25 Neil Booth - - * c-decl.c (maybe_build_cleanup): Remove. - * expr.c (expand_expr): Use langhook. - * langhooks-def.h (lhd_return_null_tree, - LANG_HOOKS_MAYBE_BUILD_CLEANUP): New. - (LANGHOOKS_INITIALIZER): Update. - * langhooks.c (lhd_return_null_tree): New. - * langhooks.h (struct lang_hooks): New hook. - * tree-inline.c (initialize_inlined_parameters): Use langhook. - * tree.h (maybe_build_cleanup): Remove. - -2002-03-25 Jakub Jelinek - - * regrename.c (build_def_use): Move recog_memoized - before extract_insn. - -2002-03-25 Jakub Jelinek - - PR target/6043 - * expr.c (emit_group_store): Handle storing into CONCAT. - -2002-03-25 Jakub Jelinek - - * regrename.c (build_def_use): Share RTL between MATCH_OPERATOR and - corresponding MATCH_DUP. - -2002-03-24 Richard Henderson - - * unroll.c (unroll_loop): Zero label_map. - - * gcse.c: Include except.h. - * Makefile.in (gcse.o): Update. - -2002-03-24 Richard Henderson - - * varasm.c (asm_emit_uninitialised): Revert 2002-03-14 change. - Do resolve_unique_section before shared data clause. - -2002-03-24 Richard Henderson - - * config/alpha/elf.h (STARTFILE_SPEC): Use crtbeginT with -static. - -2002-03-24 Richard Henderson - - * recog.c (peephole2_optimize): Split blocks when EH insns are - generated in the middle of a block. Do global life update if - zapped EH edges. - -2002-03-24 Richard Henderson - - * mips.c (mips_function_value): Only promote_mode for non-libcalls. - -2002-03-24 Neil Booth - - preprocessor/3951 - * gcc.c (cpp_options): Pass -MD through as -MD not -M -MF. - * cppinit.c (cpp_handle_option): Set no_ouput if -MD or -MMD. - (init_dependency_output): Don't make no_output decision here. - -2002-03-24 Andrew Cagney - - * stmt.c (check_for_full_enumeration_handling): Remove tests of - warn_switch. Update description. - (expand_end_case_type): Call check_for_full_enumeration_handling - when warn_switch. - -2002-03-24 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_autoinc_compatible_p): New function. - (m68hc11_split_move): Call it to see if the source and destination - operands use the same direction auto inc/dec mode, otherwise make the - source an offsetable memory operand and generate an add. - -2002-03-24 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*subsi3_zero_extendhi"): Allow address - register for operand 2. - ("*subsi3_zero_extendqi"): Likewise. - ("*iorhi3_gen"): Do the operation on the upper bits and then lower - bits so that it is compatible with a pop. - ("*andhi3_gen"): Likewise. - ("xorhi3"): Likewise. - -2002-03-24 Neil Booth - - * cppinit.c (cpp_handle_option): Set warn_endif_labels if - -pedantic here... - (cpp_post_options): ... not here. - -2002-03-24 Neil Booth - Aldy Hernandez - - Removal of separate preprocessor cpp0. - - * Makefile.in (GCC_PASSES, STAGESTUFF, LIBCPP_OBJS, - cpp0, install-common): Update. - * c-common.c (flag_preprocess_only): New. - (c_common_init): Preprocess for -E. - * c-common.h (flag_preprocess_only): New. - * c-decl.c (c_decode_option): Handle -E and -std=c++98. - * c-objc-common.c (c_init_decl_processing): Exit quickly - for NULL return from c_common_init. - * cpplib.h (cpp_preprocess_file): New. - * cppmain.c (main, general_init, pfile, progname): Remove. - (do_preprocessing): Rename cpp_preprocess_file, don't call - cpp_finish. Don't close stdout here. - (setup_callbacks): Update prototype. - * gcc.c (trad_capable_cpp, cpp_unique_options, default_compilers): - Update. - * tradcpp.c (main): Ignore -quiet. -objc: - * lang-specs.h (default_compilers): Preprocess with cc1obj. - -2002-03-24 Richard Henderson - - PR optimization/5742 - * machmode.def: Add inner mode field to complex modes. - * config/mips/mips.c (mips_function_value): Always define. Add - new argument to handle libcalls. - * config/mips/mips.h (LIBCALL_VALUE): Use mips_function_value. - (FUNCTION_VALUE): Likewise. - * config/mips/abi64.h (FUNCTION_VALUE): Remove. - * config/mips/mips-protos.h: Update. - -2002-03-23 Richard Henderson - - * config/sparc/sparc.c (sparc_emit_floatunsdi): New. - * config/sparc/sparc-protos.h: Update. - * config/sparc/sparc.md (floatunsdisf2, floatunsdidf2): New. - -2002-03-23 Richard Henderson - - * config/sparc/gmon-sol2.c (internal_mcount): Assume either - _start or _init begins the text segment. - -2002-03-23 David Edelsohn - - * config/rs6000/rs6000.h (RETURN_IN_MEMORY): Cast to HOST_WIDE_INT - not HOST_WIDEST_INT. - (RS6000_ARG_SIZE): Remove unsigned cast of int_size_in_bytes. - -2002-03-23 Richard Earnshaw - - PR java/5489 - * arm.md (return, sibcall_epilogue): Pass const_true_rtx as the - operand argument to output_return_instruction. - * arm.c (arm_print_operand, case 'd'): If the operand is - const_true_rtx then just return. - (arm_print_operand, case 'D'): If the operand is const_true_rtx - then abort. - -2002-03-23 Andrew Cagney - - * doc/invoke.texi (Option Summary): Mention -Wswitch-default. - (Warning Options): Document -Wswitch-default. - * toplev.c (W_options): Add -Wswitch-default. Update comment on - -Wswitch. - (warn_switch_default): Define variable. - (warn_switch): Update comment. - * flags.h (warn_switch_default): Declare variable. - (warn_switch): Update comment. - * stmt.c (expand_end_case): Check for and, when - warn_switch_no_default, warn of a missing default case. - -2002-03-23 Alan Modra - - * real.h (N): Special case 128 bit doubles. - - * combine.c (simplify_comparison): When widening modes, ignore - sign extension on CONST_INTs. - -2002-03-22 Bob Wilson - - * config/xtensa/xtensa.c (print_operand): Fix incorrect mode - passed to adjust_address. Fix comment formatting. - - -2002-03-22 Zack Weinberg - - * real.h: Don't define REAL_INFINITY or REAL_IS_NOT_DOUBLE. - Always make REAL_VALUE_TYPE a struct containing an array of - HOST_WIDE_INT, not a double. Tidy up the code deciding how - big it is. Don't declare or use union real_extract. - - * emit-rtl.c (init_emit_once), varasm.c (immed_real_const_1, - decode_rtx_const, output_constant_pool), config/a29k/a29k.c - (print_operand), config/arm/arm.c (output_move_double), - config/arm/arm.md (consttable_4, consttable_8), - config/romp/romp.c (output_fpops), config/s390/s390.h - (ASM_OUTPUT_SPECIAL_POOL_ENTRY), config/xtensa/xtensa.c - (xtensa_output_literal): Don't use union real_extract. - - * config/dsp16xx/dsp16xx.c (print_operand), config/i860/i860.c - (sfmode_constant_to_ulong), config/ns32k/merlin.h - (PRINT_OPERAND), config/ns32k/ns32k.c (print_operand), - config/pdp11/pdp11.h (PRINT_OPERAND), config/we32k/we32k.h - (PRINT_OPERAND): Don't use local version of union - real_extract. - - * config/convex/convex.c (check_float_value), config/vax/vax.c - (vax_float_literal), config/m88k/m88k.md (divdf3), - config/dsp16xx/dsp16xx.md (fixuns_trunchfhi2), - config/pdp11/pdp11.c (output_move_quad): Don't do host - arithmetic on target floating point quantities. - - * config/a29k/a29k.md, config/dsp16xx/dsp16xx.c - (output_dsp16xx_float_const): Don't test HOST_FLOAT_FORMAT. - - * fold-const.c (fold), simplify-rtx.c (simplify_binary_real): - Use MODE_HAS_INFINITIES rather than #ifdef REAL_INFINITY. - - * real.c (earith): Test INFINITY rather than REAL_INFINITY; - NANS implies INFINITY, so can drop #ifdef NANS inside #ifndef - INFINITY. - * print-rtl.c (print_rtx): Disable code which needs - floating-point emulator. - * libgcc2.c: Include float.h and use DBL_MANT_DIG, - FLT_MANT_DIG, to define DF_SIZE and SF_SIZE, rather than - depending on HOST_FLOAT_FORMAT to be defined properly. - - * config/1750a/1750a.c (get_double, float_label): Delete. - (print_operand): Delete huge commented-out chunk. Use - REAL_VALUE_TO_DECIMAL. - * config/1750a/1750a-protos.h: Delete prototypes of deleted - functions. - * config/convex/convex.h: Always set TARGET_FLOAT_FORMAT to - IEEE_FLOAT_FORMAT. - * config/i370/i370.h (PRINT_OPERAND [TARGET_HLASM version]): - Use REAL_VALUE_TO_DECIMAL as ELF version does. - * config/m88k/m88k.c (real_power_of_2_operand, - legitimize_operand): Take the REAL_VALUE_TYPE and/or union - real_extract out of the union; run the input through - REAL_VALUE_TO_TARGET_DOUBLE, then plug the pair of longwords - from that into the union. - * config/pdp11/pdp11.c (output_move_double): Rearrange - parentheses to make automatic indenter happy. - - * doc/tm.texi (Cross-compilation): Rename node to "Floating - Point" and rewrite to describe current situation. Also adjust - documentation of REAL_VALUE_TO_TARGET_SINGLE and friends to - match code. - * doc/rtl.texi: Adjust cross reference. - -2002-03-22 Bob Wilson - - * config/xtensa/xtensa-protos.h (non_acc_reg_operand): Remove. - (xtensa_valid_move, xtensa_preferred_reload_class): Define. - * config/xtensa/xtensa.c (non_acc_reg_operand): Remove. - (xtensa_valid_move, xtensa_preferred_reload_class): Define to - prevent use of sp as a reload register. - (xtensa_emit_move_sequence): Use xtensa_valid_move instead of - non_acc_reg_operand. - * config/xtensa/xtensa.h (PREDICATE_CODES): Remove non_acc_reg_operand. - (PREFERRED_RELOAD_CLASS): Move code to xtensa_preferred_reload_class. - * config/xtensa/xtensa.md (movsi_internal, movhi_internal, - movqi_internal): Use xtensa_valid_move instead of non_acc_reg_operand. - -2002-03-22 Neil Booth - - * cpphash.h (struct cpp_reader): Remove mls_line and mls_col. - * cpplex.c (unterminated): Delete. - (parse_string): No string literal may extend over multiple - lines. Suppress the error when preprocessing assembly. - * cppmain.c (scan_translation_unit): Strings are single-line. - - * doc/cpp.texi: Update to match. - -2002-03-22 Jakub Jelinek - - PR optimization/5854 - * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_VALUE_P): Use K for 0. - Shut up warnings. - (CONST_DOUBLE_OK_FOR_LETTER_P): Use G for 0.0. - (EXTRA_CONSTRAINT): Use S for non-push memory operand. - * config/m68hc11/m68hc11.c (m68hc11_split_move): Handle setting from - const0 if scratch register was not allocated. - (m68hc11_reload_operands, m68hc11_gen_lowpart, m68hc11_gen_highpart, - m68hc11_z_replacement): Replace gen_rtx (CONST_INT, VOIDmode, ...) - with GEN_INT (...). - (m68hc11_reorg): Compute BLOCK_FOR_INSN before reload_cse_regs. - * config/m68hc11/m68hc11.md: Replace gen_rtx (CONST_INT, VOIDmode, ...) - with GEN_INT (...) everywhere. Remove constraints in define_split - patterns. - (movdi_internal, movdf_internal, movsi_internal, movsf_internal): Don't - require scratch register for setting 0 into regs/non-pushable memory. - -2002-03-22 Alexandre Oliva - - * config/mips/mips.h (MASK_RETURN_ADDR): Define. - (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define. - -2002-03-22 Phil Edwards - - * cpplib.h (struct cpp_options): New member, warn_endif_labels. - * cppinit.c (cpp_create_reader): On by default. - (cpp_handle_option): Handle -W[no-]endif-labels. - (cpp_post_options): Also enable if -pedantic. - * cpplib.c (do_else): Use it. - (do_endif): Likewise. - * doc/cppopts.texi: Document new option. - * doc/invoke.texi: Document new option. - -2002-03-22 Lars Brinkhoff - - * config/i386/i386.c, config/i386/i386.md: Change all occurences - of GEN_INT (trunc_int_for_mode (...)) to gen_int_mode (...). - -2002-03-22 Alexandre Oliva - - * flow.c (calculate_global_regs_live): Clear aux fields of - ENTRY and EXIT. - -2002-03-22 Jakub Jelinek - - * config/v850/v850.c (v850_reorg): Only call alter_subreg on - REG or MEM subregs, pass rtx * instead of rtx to it. - * config/i860/i860.c (output_delayed_branch, output_delay_insn): Pass - rtx * instead of rtx to alter_subreg. - * config/m32r/m32r.c (gen_split_move_double): Likewise. - * config/pj/pj.c (pj_output_rval): Likewise. - -2002-03-22 Richard Henderson - - PR target/3177 - * config/ia64/ia64.h (CUMULATIVE_ARGS): Add int_regs. - (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Update. - * config/ia64/ia64.c (ia64_function_arg_advance): Set int_regs. - (ia64_expand_prologue): Look at int_regs, not words, for number - of incomming int regs. - -2002-03-22 Andrew MacLeod - - * expr.c (expand_expr): A RESULT_DECL is part of a call. - -Fri Mar 22 16:30:42 CET 2002 Jan Hubicka - - * toplev.c (flag_loop_optimize, flag_crossjumping): - New static variables. - (rest_of_compilation): Conditionalize crossjumping and - loop optimizer. - (parse_options_and_default_flags): Default loop_optimize and - crossjumping. - (lang_independent_options): Add -fcrossjumping and -floop-optimize - * invoke.texi (crossjumping, loop-optimize): Document. - -2002-03-22 Richard Sandiford - - * real.c (eiisneg): Move outside #ifdef NANS. - -Fri Mar 22 12:08:36 CET 2002 Jan Hubicka - - * cfgcleanup.c (outgoing_edges_math): Fix condition; relax - frequencies match; avoid match on different loop depths. - (try_crossjump_to_bb): Kill tests that no longer brings time - savings. - * cfgrtl.c (force_nonfallthru_and_redirect): Fix loop_depth - updating code. - (split_edge): Likewise. - - * flow.c (update_life_info_in_dirty_blocks): Fix uninitialized - variable. - - * Makefile.in (cfgrtl): Add insn-config.h depenendency. - * cfgrtl.c: Include insn-config.h - (split_block) Dirtify block in presence of conditional execution - -2002-03-22 Richard Sandiford - - * config/mips/abi64.h (SETUP_INCOMING_VARARGS): Undefine. - * config/mips/mips-protos.h (mips_setup_incoming_varargs): Declare. - (function_arg): Constify CUMULATIVE_ARGS. - (function_arg_partial_nregs, function_arg_pass_by_reference): Likewise. - * config/mips/mips.h (UNITS_PER_FPVALUE): Zero when TARGET_SOFT_FLOAT. - (UNITS_PER_DOUBLE): New macro. - (SETUP_INCOMING_VARARGS): Define. Use mips_setup_incoming_varargs. - (CUMULATIVE_ARGS): Reformat. Remove num_adjusts workaround and - last_arg_fp field. Replace arg_words and fp_arg_words with gp_regs, - fp_regs and stack_words. - (EABI_FLOAT_VARARGS_P): New macro. - * config/mips/mips.c (struct mips_arg_info): New. - (mips_arg_info): New function. - (function_arg_advance): Use it. Add adjustment instructions here - rather than in function_arg. - (function_arg): Constify CUMULATIVE_ARGS. Use mips_arg_info. Check - for VOIDmode at the beginning of the function. - (function_partial_nregs): Constify CUMULATIVE_ARGS. Use mips_arg_info. - (function_arg_pass_by_reference): Likewise. - (mips_setup_incoming_varags): New, largely based on old abi64.h code. - (mips_build_va_list): Test EABI_FLOAT_VARARGS_P. - (mips_va_start): Likewise. Use the new stack_words field of - CUMULATIVE_ARGS to set up overflow area. Reformat. - (mips_va_arg): Test EABI_FLOAT_VARARGS_P. Unify EABI handling of - doubles and other types, aligning the overflow pointer for non-doubles - too. Remove some code duplication. Replace hard-coded constants. - -2002-03-22 Richard Sandiford - - * config/mips/mips.h (FUNCTION_ARG_REGNO_P): Simplify. - (CLASS_UNITS): Undefine. - (CLASS_MAX_NREGS): Use FP_INC. - * config/mips/mips.c (compute_frame_size): Likewise. - (override_options): Use FP_INC and UNITS_PER_FPVALUE. - -2002-03-22 Neil Booth - - * cpplex.c (parse_identifier_slow): Rename parse_slow, adjust - prototype, and handle lexing numbers and identifiers. - (parse_identifier): Update to new form of parse_slow. - (parse_number): Fast path only, use parse_slow otherwise. - (_cpp_lex_direct): Update calls to parse_number. - -2002-03-21 DJ Delorie - - * bb-reorder.c (make_reorder_chain_1): Protect against - when redundant edges are omitted. - * predict.c (dump_prediction): Likewise. - -2002-03-21 Richard Henderson - - PR target/5996 - * fixinc/inclhack.def (solaris_stdio_tag): New. - * fixinc/fixincl.x: Regenerate. - -2002-03-21 Eric Botcazou - - PR c/5597 - * c-typeck.c (process_init_element): Flag non-static - initialization of a flexible array member as illegal. - -2002-03-22 Alan Modra - - * config/rs6000/t-linux64: New. - * config.gcc (powerpc64-*-linux* ): Drop t-ppcos and - t-ppccomm. Use t-rs6000 and t-linux64. - (powerpc64-*-gnu* ): Likewise. - * mklibgcc.in (SHLIB_MKMAP_OPTS): New variable. - * mkmap-symver.awk (dotsyms): If set, output .foo as well as foo. - * Makefile.in (SHLIB_MKMAP_OPTS): Pass to mklibgcc. - -2002-03-21 Aldy Hernandez - - * langhooks.c (lhd_tree_inlining_cannot_inline_tree_fn): Check - flag_really_no_inline instead of optimize == 0. - - * c-objc-common.c (c_cannot_inline_tree_fn): Same. - - * cp/tree.c (cp_cannot_inline_tree_fn): Same. - - * flags.h (flag_really_no_inline): New. - - * c-common.c (c_common_post_options): Initialize - flag_really_no_inline. - - * toplev.c (flag_really_no_inline): New. - -2002-03-21 Jakub Jelinek - - * config/avr/avr.md (length): Fix length computation for - conditional branches. - -2002-03-21 Neil Booth - - * Makefile.in (fold-const.o, stor-layout.o, stmt.o, - sdbout.o, profile.o): Update. - * c-common.c (c_common_nodes_and_builtins): Use pushdecl - langhook. - * c-common.h (gettags): Move here from tree.h. - * c-tree.h (pushdecl, pushlevel, poplevel, set_block, - insert_block, getdecls, kept_level_p, global_bindings_p): New. - * dbxout.c (dbxout_init): Use getdecls langhook. - * expr.c (expand_expr): Use insert_block langhook. - * fold-const.c: Include langhooks.h. - (fold_range_test, fold_binary_op_with_conditional_arg, - fold): Use global_bindings_p langhook. - * integrate.c (expand_inline_function): Use insert_block langhook. - * langhooks-def.h (LANG_HOOKS_DECLS, LANG_HOOKS_PUSHLEVEL, - LANG_HOOKS_POPLEVEL, LANG_HOOKS_GLOBAL_BINDINGS_P, - LANG_HOOKS_INSERT_BLOCK, LANG_HOOKS_SET_BLOCK, LANG_HOOKS_PUSHDECL, - LANG_HOOKS_GETDECLS): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_clear_binding_stack): Use global_bindings_p - langhook. - * langhooks.h (struct lang_hooks_for_decls): New. - (struct lang_hooks): Update. - * profile.c: Include langhooks.h. - (output_func_start_profiler): Use new langhooks. - * sdbout.c: Include langhooks.h. - (sdbout_init, sdbout_finish): Use getdecls langhook. - * stmt.c: Include langhooks.h. - (expand_fixup, fixup_gotos): Use new langhooks. - * stor-layout.c: Include langhooks.h. - (variable_size): Use global_bindings_p langhook. - * toplev.c (compile_file): Use getdecls langhook. - * tree-inline.c (remap_block): Use insert_block langhook. - * tree.h (pushdecl, pushlevel, poplevel, set_block, gettags, - insert_block, getdecls, kept_level_p, global_bindings_p): Remove. - -2002-03-21 Richard Henderson - - * config/rs6000/rs6000.c (rs6000_select_rtx_section): Put symbolic - constants in .data when -fpic. - -2002-03-21 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Use GNU/Linux instead of Linux - where appropriate. - -2002-03-21 Tom Tromey - - * config/i386/sol2.h (ASM_QUAD): Undef. Fixes PR bootstrap/5948. - -Thu Mar 21 09:50:48 2002 Richard Kenner - - * config/ia64/ia64.c (hfa_element_mode, case ARRAY_TYPE): Recurse. - - * expr.c (emit_group_store): Don't copy const0_rtx to a CONCAT. - -2002-03-21 Eric Botcazou - Richard Henderson - - PR c/5354 - * c-common.c (c_expand_expr): Preserve result of a statement - expression if needed. - -2002-03-21 Jakub Jelinek - - PR bootstrap/4195 - * genrecog.c (maybe_both_true_mode): Remove. - (maybe_both_true_2, write_switch): Revert 2001-07-17 changes. - * machmode.def (Pmode): Likewise. - -Thu Mar 21 01:55:06 EST 2002 John Wehle (john@feith.com) - - * alias.c: (nonlocal_mentioned_p): Use for_each_rtx. - (nonlocal_mentioned_p_1): New function. - (nonlocal_referenced_p, nonlocal_referenced_p_1): Likewise. - (nonlocal_set_p, nonlocal_set_p_1): Likewise. - (mark_constant_function): Recognize pure functions. - * rtl.h (global_reg_mentioned_p): New prototype. - * rtlanal.c (global_reg_mentioned_p, - global_reg_mentioned_p_1): New function. - -2002-03-21 Rainer Orth - - * fixinc/inclhack.def (alpha_assert): Fix assert macro in Tru64 - UNIX assert.h. - * fixinc/fixincl.x: Regenerate. - -2002-03-20 Jason Merrill - - * config/i386/cygwin.h (DWARF2_UNWIND_INFO): Define to 0. - -2002-03-20 Michael Meissner - - * doc/invoke.texi (Optimize Options): Document that -O2 sets - -fstrict-aliasing. - -2002-03-20 Bob Wilson - - * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Emit a - ".literal_position" directive before the constant pool. - -2002-03-20 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Update Geoffrey Keating. - Add Craig Rodrigues. - Add Brad Lucier to testers. - -2002-03-20 Jakub Jelinek - - PR target/4792 - * config/arc/arc.md (movsicc, movdicc, movsfcc, movdfcc): Add mode - to if_then_else. - (movsicc_insn, movdicc_insn, movsfcc_insn, movdfcc_insn): Likewise. - * config/arc/arc.c (arc_final_prescan_insn): Use extract_insn_cached - instead of insn_extract. - -2002-03-20 Jakub Jelinek - - PR bootstrap/4192 - * config/fr30/fr30.md (jump): Remove clobber of fixed register. - - * genemit.c (output_added_clobbers_hard_reg_p): Only output return - stmt if some case has been output. - -2002-03-20 Jakub Jelinek - - PR c/5972 - * config/i386/i386.md (movdicc_c_rex64, movsicc_noc, movhicc_noc, - movsfcc_1, movdfcc_1): Add %O2. - * config/i386/i386.c (print_operand): Handle %ON. - Print . before float condition codes in Sun as cmov syntax. - * config/i386/sol2.h (CMOV_SUN_AS_SYNTAX): Define for Sun as. - * config.gcc (i[34567]86-*-solaris2*): Remove comment which is - no longer true. - -2002-03-20 Philip Blundell - - * config/arm/arm.c (arm_output_epilogue): Don't generate separate - return instruction if PC was popped. - -2002-03-20 Bob Wilson - - * config/xtensa/xtensa.md: Remove unused type attributes. - (adddi_carry, subddi_carry): Change type attribute to "multi". - -2002-03-19 Dale Johannesen - - PR optimization/5999, middle-end/5731 - * expr.c (expand_expr) [RDIV_EXPR]: Only convert real divisions into - multiplications by reciprocals. - -2002-03-20 Neil Booth - - * Makefile.in: Update. - * c-common.c: Include langhooks.h. - (inline_forbidden_p): Use new hook. - * diagnostic.c: Include langhooks.h. - (format_with_decl, announce_function, - default_print_error_function): Use new hook. - * dwarf2out.c (dwarf2_name): Use new hook. - * function.c: Include langhooks.h. - (init_function_start): Use new hook. - * langhooks-def.h (lhd_decl_printable_name): New. - (LANGHOOKS_DECL_PRINTABLE_NAME): New. - (LANGHOOKS_INITIALIZER): Update. - * langhooks.c (lhd_decl_printable_name): New. - * langhooks.h (struct lang_hooks): New hook. - * toplev.c (decl_name, decl_printable_name): Remove. - (open_dump_file): Use new hook. - (process_options): Remove old hook. - * tree.h (decl_printable_name): Remove. -objc: - * objc-act.c (objc_init): Remove old hook. - (objc_printable_name): Export. - * objc-act.h (objc_printable_name): New. - * objc-lang.c (LANG_HOOKS_DECL_PRINTABLE_NAME): Redefine. - -2002-03-19 Jim Blandy - - * c-lex.c (cb_file_change): Pass the #inclusion's line number to - the start_source_file debug hook, not the current line number. - -2002-03-19 Richard Henderson - - * flow.c (EH_USES): Provide default. - (calculate_global_regs_live): Use it for EH edges and noreturn calls. - * doc/tm.texi (EH_USES): New. - - * config/ia64/ia64.c (ia64_eh_uses): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.h (EH_USES): New. - -2002-03-19 Richard Henderson - - * varasm.c (output_constant_def): Fix stupid typo. - -2002-03-19 Richard Henderson - - PR 5879 - * except.c (current_function_has_exception_handlers): New. - * except.h: Declare it. - * sibcall.c (optimize_sibling_and_tail_recursive_call): Use it. - Combine tests that disable all sibcalls for the function. - -2002-03-19 Olivier Hainque - - * varasm.c (output_constant_def): Don't call ENCODE_SECTION_INFO - for INTEGER_CST. - -2002-03-19 Richard Henderson - - PR 5977, 5991 - * config/ia64/ia64.c: Revert 2002-03-01 patch. - * config/ia64/ia64.h (INIT_EXPANDERS): New. - -2002-03-19 Jim Blandy - - * cppmacro.c (cpp_macro_definition): Emit a space after the macro - name, even if the replacement list contains no tokens, as required - by Dwarf. - -2002-03-19 Jason Merrill - - * varasm.c (globalize_decl): Get the name from the RTL, not - DECL_ASSEMBLER_NAME. - - * Makefile.in (LIBGCC2_DEBUG_CFLAGS): Set to -g. - -2002-03-19 Bob Wilson - - * config/xtensa/xtensa.md (adddi3, adddi_carry, subdi3, - subdi_carry): Define. - -2002-03-19 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Only warn - about -fpic/-fPIC if extra_warnings set. - -2002-03-19 David Edelsohn - - * expr.c (expand_expr): Sign-extend CONST_INT generated from - TREE_STRING_POINTER. - * fold-const.c (fold): Delete #if 0 ARRAY_REF case. - -Tue Mar 19 14:12:32 2002 Richard Kenner - - * config/sparc/sparc.h (CAN_ELMINIATE): Can only eliminate FP - in favor of SP if FRAME_POINTER_REQUIRED is false. - -2002-03-19 Lars Brinkhoff - - * emit-rtl.c (gen_int_mode): New function. - * rtl.h: Prototype for it. - * combine.c (make_extraction, simplify_comparison), expmed.c - (store_bit_field, expand_mult_highpart, expand_divmod), expr.c - (convert_modes, store_field), optabs.c (expand_fix), - simplify-rtx.c (neg_const_int, simplify_unary_real), - - * config/rs6000/rs6000.c, config/rs6000/rs6000.md: - Use it instead of GEN_INT (trunc_int_for_mode (...)). - -2002-03-19 Jakub Jelinek - - PR c/5656 - * langhooks.h (struct lang_hooks_for_tree_inlining): Add - convert_parm_for_inlining. - * c-lang.c (LANG_HOOKS_TREE_INLINING_CONVERT_PARM_FOR_INLINING): - Define. - * langhooks-def.h: Likewise. - * objc/objc-lang.c: Likewise. - * langhooks.c (lhd_tree_inlining_convert_parm_for_inlining): New - function. - * tree-inline.c (initialize_inlined_parameters): - Call convert_parm_for_inlining lang hook if needed. - * c-typeck.c (c_convert_parm_for_inlining): New function. - * c-tree.h (c_convert_parm_for_inlining): Add prototype. - -2002-03-18 Mark Mitchell - - * calls.c (precompute_arguments): Do not assume that temporaries - can be destroyed after expanding the argument. - (expand_call): Likewise. - -2002-03-15 Eric Christopher - - * config/mips/mips.md (movdf_internal2): Add two new move constraints. - Fix register preference on last change. - * config/mips/mips.c (mips_return_in_memory): New function. - * config/mips/mips.h (RETURN_IN_MEMORY): Use. - * config/mips/mips-protos.h: Declare. - * config/mips/abi64.h (RETURN_IN_MEMORY): Remove. Add to above. - * config/mips/elf64.h: Add #ifndef/#endif brackets around defaults. - -2002-03-18 Alexandre Oliva - - * config/mips/mips.md (andsi3) [TARGET_MIPS16]: Force operand 1 to - a register too. - (anddi3, iorsi3): Likewise. - - * config/mips/mips.h (ENCODE_SECTION_INFO) [TARGET_MIPS16]: Don't - use %gprel for symbols that are going to be placed in linkonce - sections. - - * config/mips/mips.h (ELIMINABLE_REGS): Can't eliminate - RETURN_ADDRESS_POINTER_REGNUM to $ra. - (CAN_ELIMINATE): Only eliminate it to $sp if a frame pointer is - not needed. Disregard leaf_function_p(). - (INITIAL_ELIMINATION_OFFSET): Adjust for elimination of rap to - mips16 frame pointer. - * config/mips/mips.md (store ra): Only to small SP offsets. - 2001-08-22 Graham Stott - * config/mips/mips.h (RETURN_ADDR_RTX): For a leaf function - return a REG rtx for the return address register. - -2002-03-18 Bob Wilson - - * config/xtensa/xtensa.h (GO_IF_MODE_DEPENDENT_ADDRESS): Treat - constant-pool addresses as "mode-dependent". - (GO_IF_LEGITIMATE_ADDRESS): Rename macro arguments. - -2002-03-18 Jakub Jelinek - - PR target/5740 - * expr.c (emit_group_load): Use extract_bit_field if - needed for CONCAT arguments. - -2002-03-18 Richard Earnshaw - - PR target/4863 - * arm.md (tablejump): Make this a define_expand. For PIC add the - offset to the base of the table. - (thumb_tablejump): Matcher for Thumb tablejump insn. - * config/arm/aout.h (ASM_OUTPUT_ADDR_DIFF_ELT): Output thumb entries - as the difference of two labels. - * config/arm/aof.h (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - * config/arm/elf.h (JUMP_TABLES_IN_TEXT_SECTION): Only put ARM jump - tables in the code. - * config/arm/coff.h (JUMP_TABLES_IN_TEXT_SECTION): Likewise. - * arm.c (get_jump_table_size): If the table is not in the text - section, return zero. - -2002-03-18 Bernd Schmidt - - * config/arm/arm.c (arm_gen_movstrqi): Use gen_lowpart instead - of gen_rtx_SUBREG. - (arm_reload_out_hi): Use gen_lowpart instead of - gen_rtx_SUBREG to access QImode components. - * config/arm/arm.md: Disable zero_extend split for QImode - subregs in BIG_ENDIAN mode. - (storehi_bigend): Match use of least significant byte. - (storeinthi): Remove extraneous SUBREG. - Add missing construction of operands[2]. - (movhi): Use gen_lowpart in place of gen_rtx_SUBREG. - (movqi): Use gen_lowpart in place of gen_rtx_SUBREG. - Replace gen_rtx (SUBREG) with gen_rtx_SUBREG. - -2002-03-18 Aldy Hernandez - - * config/rs6000/rs6000.h (PREDICATE_CODES): Add PARALLEL to - any_operand. - -2002-03-17 Richard Henderson - - * config/alpha/alpha.c (alpha_emit_set_const_1): Build add insns - explicitly. - -2002-03-17 Hans-Peter Nilsson - - * config/mmix/mmix.md ("fixuns_truncdfdi2"): Use (unsigned_fix:DI - (unsigned_fix:DF op1)), not (unsigned_fix:DI (fix:DF op1)). - -2002-03-17 Kaveh R. Ghazi - - * ifcvt.c (dead_or_predicable): Fix uninitialized variable. - - * predict.c (estimate_bb_frequencies): Delete unused variables. - -2002-03-17 Richard Henderson - - * config/ia64/ia64.c (ia64_attribute_table): Move before - targetm definition. Make static. - -2002-03-17 Neil Booth - - * c-common.h (yyparse, c_common_parse_file): New. - * c-lang.c: Include c-common.h. - (LANG_HOOKS_PARSE_FILE): Redefine. - * c-lex.c: Include c-common.h. - (yyparse): Rename c_common_parse_file. Call yyparse. - * c-parse.in (yyparse): Remove macro. - * c-tree.h (yyparse_1): Remove. - * langhooks-def.h (LANG_HOOKS_PARSE_FILE): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hoooks): New hook parse_file. - * toplev.c (compile_file): Use parse_file hook. - * tree.h (yyparse): Remove. - * objc/objc-lang.c (LANG_HOOKS_PARSE_FILE): Redefine. - -2002-03-17 Hans-Peter Nilsson - - * config/mmix/mmix.md ("truncdfsf2"): Correct operator is - float_truncate, not fix. - ("*truncdfsf2_real"): Ditto. - ("*nonlocal_goto_receiver_expanded"): Fix output template formatting. - - * config/mmix/mmix.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Don't define. - -2002-03-16 Alexandre Oliva - - * config/mips/mips.h (CAN_ELIMINATE): Don't eliminate rap to $fp - (s8), but rather HARD_FRAME_POINTER_REGNUM. Add parentheses - where appropriate. Make the second reference to - leaf_function_p a function call, as intended. Reindented. - - * config/mips/mips.h (ISA_HAS_COND_TRAP): Not available on MIPS16. - * config/mips/mips.md (trap) [TARGET_MIPS16]: Emit `break 0'. - - * config/mips/mips.md (addsi3, adddi3): Use scratch register to - add register to non-constant into sp. - - * config/mips/mips-protos.h (embedded_pic_fnaddr_reg): New. - * config/mips/mips.h (embedded_pic_fnaddr_rtx): Lose. - (mips16_gp_pseudo_rtx): Lose. - (INIT_EXPANDERS): Deleted. - * config/mips/mips.c (mips_init_machine_status): New. - (mips_free_machine_status): New. - (mips_mark_machine_status): New. - (override_options): Set them. - (embedded_pic_fnaddr_rtx, mips16_gp_pseudo_rtx): Moved to... - (struct machine_function): ... new. Replaced all references. - (mips_add_gc_roots): Don't mark them. - (embedded_pic_fnaddr_reg): New, extracted from... - (embedded_pic_offset): ... here. - * config/mips/mips.md (movdi): Call embedded_pic_fnaddr_reg. - (movsi): Likewise. - -2002-03-16 Neil Booth - - * cppinit.c: Revert -MD removal. - -2002-03-16 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't use - soft registers by default for 68HC12. - (m68hc11_conditional_register_usage): Don't use Z register for 68HC12 - when compiling with -fomit-frame-pointer. - (expand_prologue): Use push/pop to allocate 4-bytes of locals on 68HC12. - (expand_epilogue): Likewise. - (m68hc11_gen_rotate): Use exg when rotating by 8. - -2002-03-16 Stephane Carrez - - * config/m68hc11/m68hc11-protos.h (ix_reg): Declare. - * config/m68hc11/m68hc11.md ("addsi3"): Use general_operand for sources. - (splits): Remove unused add splits. - ("*addhi3_68hc12"): Tune constraints. - ("addhi_sp"): Try to use X instead of Y in all cases and if the - constant fits in 8-bits and D is dead use abx/aby instructions. - ("*addhi3"): Remove extern declaration of ix_reg. - ("*subsi3"): Optimize and provide new split. - ("subhi3"): Cleanup. - ("*subhi3_sp"): Avoid saving X if we know it is dead. - (arith splits): For 68hc12 save the address register on the stack - and do the arithmetic operation with a pop. - -2002-03-16 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*movqi_68hc12"): Fix constraints, avoid - allocating QImode in address registers. - ("*movqi_m68hc11"): Likewise. - -Sat Mar 16 12:57:28 CET 2002 Jan HUbicka - - * cfgcleanup.c (cleanup_cfg): Fix updating of liveness. - -2002-03-16 Neil Booth - - * cppinit.c (print_help): Display -MD and -MMD. - Don't display usage string. Update assertion syntax and - typo. - (COMMAND_LINE_OPTIONS): Remove OPT_MD, OPT_MMD. - (cpp_handle_option): Update. - -2002-03-15 Chris Demetriou - - * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Provide an - MEABI case for each definition of SUBTARGET_CPP_SIZE_SPEC, - and define it so that regardless of target CPU size, - __SIZE_TYPE__ and __PTRDIFF_TYPE__ are defined in terms - of "int" rather than "long." - -2002-03-15 Richard Henderson - - * config/alpha/alpha.c (alpha_va_arg): Manipulate the type - size as a tree. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.md ("tstqi_1"): Try to use ldab instead of tst. - ("tstqi" split): Avoid using memory for tstqi on address register. - (splits): Remove constraints. - ("cmphi_1_hc12"): New from "cmphi_1" and tuned for 68HC12. - ("cmpdf", "cmpsf"): Remove since not used. - ("*tbeq", "*tbne", "*tbeq8", "*tbne8"): Also look in cc_status.value2. - (peephole2): New peepholes to optimize tstqi and pre inc/dec addressing. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.md ("negsi2"): Optimize inline case. - ("neghi2"): Tighten constraints. - ("one_cmplsi2"): Optimize and simplify split. - * config/m68hc11/larith.asm (__negsi2): Likewise for library. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.md ("logicalsi3_zexthi"): Fix constraints - and split of AND operation to clear the upper bits. - ("*logicalsi3_zextqi"): Likewise. - ("*logicallhi3_zexthi_ashift8"): Likewise. - ("*logicalsi3_silshr16"): Likewise. - ("logicalsi3_silshl16"): Likewise. - ("anddi3", "iordi3", "xordi3" splits): Remove constraints. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_symbolic_p): New function. - (m68hc11_indirect_p): New function. - (m68hc11_override_options): Must set MASK_NO_DIRECT_MODE for 68HC12. - (m68hc11_gen_highpart): Use TARGET_NO_DIRECT_MODE instead of - TARGET_M6812. - (asm_print_register): Likewise. - * config/m68hc11/m68hc11-protos.h (m68hc11_symbolic_p): Declare. - (m68hc11_indirect_p): Declare. - * config/m68hc11/m68hc11.h (EXTRA_CONSTRAINT): New constraint 'R', 'Q'. - (TARGET_NO_DIRECT_MODE, TARGET_RELAX): New. - (TARGET_SWITCHES): New option -mrelax. - * config/m68hc11/m68hc11.md ("andsi3"): Allow soft register for - destination. - ("iorsi3", "xorsi3"): Likewise. - ("andhi3", "andqi3", "iorhi3", "iorqi3"): Use a define_expand. - ("*andhi3_mem"): New to handle destination in memory with bclr - and a scratch register. - ("*andqi3_mem", "*iorhi3_mem", "*iorqi3_mem"): Likewise. - ("*andhi3_const"): New when operand2 is constant. - ("*andqi3_const", "*iorhi3_const", "*iorqi3_const"): Likewise. - ("*andhi3_gen"): Cleanup of the old "andhi3". - ("*andqi3_gen", "*iorhi3_gen", "*iorqi3_gen"): Likewise. - ("xorqi3"): Update constraints. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_small_indexed_indirect_p): Look - for reg_equiv_memory_loc when the operand is a register that does - not get a hard register (stack location). - (tst_operand): After reload, accept all memory operand. - (symbolic_memory_operand): Fix detection of symbolic references. - * config/m68hc11/m68hc11.h (VALID_CONSTANT_OFFSET_P): For 68HC12 - accept symbols and any constant. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.c (emit_move_after_reload): Add a REG_INC - note on the insn that sets the soft frame register. - (must_parenthesize): ix and iy are also reserved names. - (print_operand_address): One more place where parenthesis are required - to avoid confusion with register names. - (m68hc11_gen_movhi): Allow push of stack pointer. - (m68hc11_check_z_replacement): Fix handling of parallel with a - clobber. - (m68hc11_z_replacement): Must update the REG_INC notes to tell what - the replacement register is. - * config/m68hc11/m68hc11.h (REG_CLASS_CONTENTS): Switch Z_REGS - and D8_REGS classes. - (MODES_TIEABLE_P): All modes are tieable except QImode. - -2002-03-15 Stephane Carrez - - * config/m68hc11/larith.asm (___adddi3): Optimize saving of result. - (___subdi3): Likewise. - (__mulsi3, __mulhi32): Avoid using _.tmp scratch location. - (__map_data_section): Optimize 68hc11 case. - -2002-03-15 Stephane Carrez - - * config/m68hc11/m68hc11.c (m6812_cost): Make cost of add higher - than a shift to avoid adding a register with itself. - (m68hc11_memory_move_cost): Take into account NO_REGS. - (m68hc11_register_move_cost): Update and use memory move cost - for soft registers. - (m68hc11_address_cost): Make cost of valid offset not 0 so that - it gives more opportunities to cse to optimize. - * config/m68hc11/m68hc11.h (REGISTER_MOVE_COST): Pass the mode. - * config/m68hc11/m68hc11-protos.h (m68hc11_register_move_cost): Update. - -2002-03-15 Mark Mitchell - - * c-common.c (statement_code_p): Handle CLEANUP_STMT. - * c-common.def (CLEANUP_STMT): New tree node. - * c-common.h (CLEANUP_DECL): New macro. - (CLEANUP_EXPR): Likewise. - * c-semantics.c (expand_stmt): Handle CLEANUP_STMT. - * expr.c (expand_expr): Tidy. - * tree-dump.c (dequeue_and_dump): Handle CLEANUP_STMT. - * tree-inline.c (initialize_inlined_parameters): Clean up - new local variables. - -2002-03-15 Jakub Jelinek - - PR bootstrap/4128 - * config/sparc/sparc.c (gen_v9_scc): Move early clobber test - before movrXX only, use reg_overlap_mentioned_p. - Only special case NE if just one insn can be generated. - -2002-03-15 Jason Merrill - - * varasm.c (assemble_variable): Call resolve_unique_section before - checking DECL_SECTION_NAME. Use zeros for a decl with DECL_INITIAL - of error_mark_node. - -2002-03-15 Richard Earnshaw - - PR target/5170 - * arm.md (split pattern for thumb shiftable immediates): Add comment - explaining non-obvious test. - -2002-03-15 Richard Earnshaw - - PR target/5712 - * arm.md (movaddr, movaddr_insn): Delete. - -2002-03-15 Jason Merrill - - * toplev.c (wrapup_global_declarations): Clarify variable handling. - -fkeep-static-consts doesn't apply to comdats. - -2002-03-14 Richard Henderson - - * c-decl.c: Include c-pragma.h. - (start_decl, start_function): Invoke maybe_apply_pragma_weak. - (finish_function): Tidy. - * c-pragma.c: Include c-common.h. - (pending_weaks, apply_pragma_weak, maybe_apply_pragma_weak): New. - (handle_pragma_weak): Use them. - (init_pragma): Register pending_weaks. - * c-pragma.h (maybe_apply_pragma_weak): Declare. - * print-tree.c (print_node): Print DECL_WEAK. - * varasm.c (mark_weak_decls): Remove. - (remove_from_pending_weak_list): Remove. - (add_weak): Remove. - (asm_emit_uninitialised): Call globalize_decl for weak commons. - (weak_decls): Make a tree_list. - (declare_weak): Cons weak_decls directly. - (globalize_decl): Remove weak_decls elements directly. - (weak_finish): Simplify weak_decls walk. Don't weaken unused - symbols. Don't pretend to handle aliases. - (init_varasm_once): Update weak_decls registry. - * Makefile.in: Update dependencies. - -2002-03-14 Richard Henderson - - PR target/5312 - * config/ia64/ia64.c: Include tm_p.h last. - (gen_nop_type): Remove duplicate definition. - (cycle_end_fill_slots): Set sched_data for second L slot. - (maybe_rotate): Call cycle_end_fill_slots to fill in nop slots. - (nop_cycles_until): Fix typos. - -2002-03-15 Jakub Jelinek - - PR optimization/5891 - * unroll.c (copy_loop_body) [CALL_INSN]: Copy SIBLING_CALL_P flag. - -2002-03-14 David Mosberger , Hans Boehm - - * config/ia64/unwind-ia64.c: Handle copy_state and label_state - descriptors correctly. - -2002-03-14 Michael Meissner - - * params.def (PARAM_MAX_UNROLLED_INSNS): New macro, default to - 100, allowing MAX_UNROLLED_INSNS to be overridden. - - * params.h (MAX_UNROLLED_INSNS): Define so it can be overridden by - --param. - - * unroll.c (params.h): Include. - (MAX_UNROLLED_INSNS): Delete, now in params.h. - - * doc/invoke.texi (--param max-unroll-insns): Document. - - * Makefile.in (unroll.o): Add $(PARAMS_H) dependency. - -2002-03-14 Richard Earnshaw - - * arm.md: Fix warnings about constraints in peepholes and splits. - -2002-03-14 Zack Weinberg - - * cpphash.h (struct lexer_state): Remove line_extension member. - * cpplib.c (dequote_string, do_linemarker): New functions. - (linemarker_dir): New data object. - (DIRECTIVE_TABLE): No longer need to interpret #line in - preprocessed source. Delete obsolete comment about return - values of handlers. - (end_directive, directive_diagnostics, _cpp_handle_directive): - Don't muck with line_extension. - (directive_diagnostics): No need to issue warnings for - linemarkers here. - (_cpp_handle_directive): Issue warnings for linemarkers here, - when appropriate. Dispatch linemarkers to do_linemarker, not - do_line. - (do_line): Code to handle linemarkers split out to do_linemarker. - Convert escape sequences in filename argument, both places. - - * cppmacro.c (quote_string): Rename cpp_quote_string and - export. All callers changed. - * cpplib.h (cpp_quote_string): Prototype. - * cppmain.c (print_line): Call cpp_quote_string on to_file - before printing it. - - * doc/cpp.texi: Document that escapes are now interpreted in - #line and in linemarkers, and that non-printing characters are - converted to octal escapes when linemarkers are generated. - -Thu Mar 14 19:04:29 CET 2002 Jan Hubicka - - * emit-rtl.c (try_split): Use delete_insns. - * recog.c (split_all_insns): Fix terminating condition. - -2002-03-14 Richard Earnshaw - Jeroen Dobbelaere - - PR target/5828 - * arm.c (arm_output_epilogue): Fix floating-point register save - adjustment when using a frame pointer. - -2002-03-14 Richard Sandiford - - * config/mips/mips.h (FP_INC, UNITS_PER_FPVALUE): New macros. - * config/mips/mips.c (compute_frame_size): Retrofit them here. - (save_restore_insns, mips_expand_epilogue): And here. - (build_mips16_call_stub): And here. - (mips_function_value): Use the new macros to decide whether a single - or complex float can be returned in floating-point registers. Return - a parallel rtx in the complex case. - -Thu Mar 14 11:03:12 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Add CLEANUP_UPDATE_LIFE to cfg_cleanup - call after liveness analysis. - - * recog.c (split_insn): Use delete_insn_and_edges. - - * cfgrtl.c (verify_flow_info): Be permisive about non-any_condjump - instructions to have branch prediction notes. - * ia64reorg.c (ia64_reorg): Do not rebuild CFG. - -2002-03-14 Geoffrey Keating - - * configure.in: Don't pass -Wno-long-long to a ADA compiler - that doesn't support it. - * configure: Regenerate. - -2002-03-13 Jakub Jelinek - - PR target/5626 - * config/sparc/sparc.md (normal_branch, inverted_branch, - normal_fp_branch, inverted_fp_branch, normal_fpe_branch, - inverted_fp_branch): Adjust calls to output_cbranch. - Set length attribute. - (normal_int_branch_sp64, inverted_int_branch_sp64): Adjust calls to - output_v9branch. Set length attribute. - * config/sparc/sparc.c (fcc0_reg_operand, noov_compare64_op): New - predicates. - (noov_compare_op): Handle CCX_NOOVmode the same way as CC_NOOVmode. - (output_cbranch): Likewise. Handle far branches. - (output_v9branch): Handle far branches. - * config/sparc/sparc-protos.h (output_cbranch, output_v9branch): - Adjust prototypes. - * config/sparc/sparc.h (PREDICATE_CODES): Add fcc0_reg_operand and - noov_compare64_op predicates. - -2002-03-13 Jason Merrill - - * gthr-posix.h (__gthread_active_p): Move __gthread_active_ptr - into the function and constify it. - * gthr-dce.h, gthr-solaris.h: Likewise. - -2002-03-13 David Edelsohn - - * config/rs6000/rs6000.h (PAD_VARARGS_DOWN): Define. - * config/rs6000/rs6000.c (rs6000_va_arg): Use - std_expand_builtin_va_arg if not ABI_V4. - -2002-03-13 Jason Merrill - - * varasm.c (globalize_decl): New fn. - (assemble_start_function): Use it. - (asm_emit_uninitialized): Use it. - (assemble_alias): Use it. - (assemble_variable): Use it. - -2002-03-13 Hans-Peter Nilsson - - * config/cris/cris.c (cris_target_asm_function_prologue): Revert - 2002-03-12 internal visibility change. - (cris_encode_section_info): Consider MODULE_LOCAL_P when encoding - visibility into SYMBOL_REF_FLAG. - -2002-03-13 Ulrich Weigand - - * expr.c (expand_expr, case NE_EXPR): Do not call copy_to_reg with - VOIDmode operand. Add compile-time optimization for constant results. - -2002-03-12 Jason Merrill - - * c-typeck.c (convert_for_assignment): Don't allow conversions - between pointers and references. Only allow lvalues to convert to - reference. - -2002-03-13 Hartmut Penner - - * config/s390/s390.h (PROFILE_BEFORE_PROLOGUE): Emit profile code - before prologue, to avoid scheduling problems. - -2002-03-13 Jakub Jelinek - - * config/sparc/sparc.h (INITIAL_FRAME_POINTER_OFFSET): Remove. - (ELIMINABLE_REGS): Add sfp->sp. - (INITIAL_ELIMINATION_OFFSET): Compute sfp->sp offset too. - -2002-03-13 Jakub Jelinek - - PR optimization/5892 - * config/ia64/ia64.c (rotate_one_bundle): Update current packet. - -2002-03-13 Jakub Jelinek - - * loop.c (basic_induction_var): Don't call convert_modes if mode - classes are different. - -2002-03-12 Richard Henderson - - PR optimization/5901 - * function.c (reposition_prologue_and_epilogue_notes): Position - the markers after/before the last/first insn not deleted. - -2002-03-12 Richard Henderson - - PR optimization/5878 - * config/arc/arc.h, config/cris/cris.h, config/i386/i386.h, - config/m68k/m68k.h, config/s390/s390.h, config/sparc/sparc.h - (PIC_OFFSET_TABLE_REGNUM): Conditionalize on flag_pic. - - * config/arm/arm.h config/i386/i386.h, config/m68k/m68k.h, - config/sparc/sparc.h (CONDITIONAL_REGISTER_USAGE): Set - PIC_OFFSET_TABLE_REGNUM based on INVALID_REGNUM not flag_pic. - - * config/arc/arc.h (CONDITIONAL_REGISTER_USAGE): New. - * config/arm/arm.c (arm_pic_register): Init to INVALID_REGNUM. - (arm_override_options): Set arm_pic_register if TARGET_APCS_STACK - also. Don't set it if not flag_pic. - * config/i386/i386.c (ix86_save_reg): Trust PIC_OFFSET_TABLE_REGNUM - to be INVALID_REGNUM when not used. - -2002-03-13 Aldy Hernandez - - * expmed.c (store_bit_field): Reset alias set for memory. - (extract_bit_field): Same. - -2002-03-12 Kaveh R. Ghazi - - * c-common.c (c_tree_code_type, c_tree_code_length, - c_tree_code_name, add_c_tree_codes): Delete. - * c-common.h (add_c_tree_codes): Delete. - * c-lang.c (tree_code_type, tree_code_length, tree_code_name): - Define. - * c-objc-common.c (c_objc_common_init): Don't call - add_c_tree_codes, instead set lang_unsafe_for_reeval. - * objc/objc-act.c (objc_tree_code_type, objc_tree_code_length, - objc_tree_code_name, add_objc_tree_codes): Delete. - (objc_init): Don't call add_objc_tree_codes. - * objc/objc-lang.c (tree_code_type, tree_code_length, - tree_code_name): Define. - * toplev.c (lang_independent_init): Don't set - tree_code_length[IDENTIFIER_NODE]. - * tree.c (tree_code_type, tree_code_length, tree_code_name): - Delete definitions, moved to language front-ends. - * tree.def (IDENTIFIER_NODE): Hardwire the length. - * tree.h (tree_code_type, tree_code_length, tree_code_name): - Const-ify. - (tree_code_length): Change type to unsigned char. - -2002-03-12 Richard Henderson - - * config/i386/i386.c (ix86_expand_prologue): Revert 2002-03-03 - internal visibility change. - -2002-03-12 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_expand_block_move): Use - validize_mem() instead of change_address to avoid clobbering - memory attributes. - -2002-03-12 Neil Booth - - * c-lex.h (position_after_whitespace): Remove. - -2002-03-12 Jakub Jelinek - - * c-lex.c (cb_ident, c_lex): Remove unnecessary cast. - (lex_string): Use unsigned char pointers. - -2002-03-12 Ulrich Weigand - - * reload1.c (reload): Ignore MEM REG_EQUIV notes if the equivalent - is not a valid memory_operand. - -2002-03-12 Bob Wilson - - * config/xtensa/xtensa-config.h: Define XCHAL_HAVE_LOOPS. - * config/xtensa/lib1funcs.asm: Fix copyright to include - special case for libgcc files. - (__udivsi3): Avoid loop instructions when XCHAL_HAVE_LOOPS is 0. - (__divsi3): Likewise. - (__umodsi3): Likewise. - (__modsi3): Likewise. - * config/xtensa/lib2funcs.S: Fix copyright to include - special case for libgcc files. - -2002-03-12 Tom Rix - - * collect2.c (resolve_lib_name): Move outside of - OBJECT_FORMAT_COFF ifdef. - (ignore_library): Same. - -2002-03-12 Bob Wilson - - * config/xtensa/t-xtensa (CRTSTUFF_T_CFLAGS_S): Define. - -2002-03-12 Bob Wilson - - * config/xtensa/xtensa.h (ASM_OUTPUT_POOL_PROLOGUE): Switch - to function_section before writing out the constant pool. - -2002-03-12 David Edelsohn - - * config/rs6000/rs6000.h (PREDICATE_CODES): Add any_operand and - zero_constant. - * config/rs6000/rs6000.c (easy_fp_constant): Fix formatting. - -2002-03-12 Alan Modra - - * config/rs6000/rs6000.md (addsi3): Optimize sign extension. - (adddi3): Likewise. - (movdf): Likewise. - (movdi): Likewise. - (cmpsi splitter): Likewise. - (modsi3): Fail if <= 0. - * config/rs6000/rs6000.c (reg_or_add_cint64_operand): Remove - redundant test when HOST_BITS_PER_WIDE_INT != 32. - (reg_or_sub_cint64_operand): Likewise. - (num_insns_constant_wide): Optimize sign extension. - (rs6000_legitimize_address): Likewise. - -2002-03-12 Andrew MacLeod - - * config/sparc/linux.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - * config/sparc/linux64.h (HANDLE_PRAGMA_PACK_PUSH_POP): Define. - -2002-03-12 Andrew MacLeod - - * config/sparc/sparc.h (RETURN_ADDR_RTX): Include v9 stack bias in - address calculation. - -2002-03-12 Ulrich Weigand - - * config/s390/s390.md (reload_insi, reload_indi): Change mode of - scratch register to DImode / TImode. - config/s390/s390.c (s390_expand_plus_operand): Make sure scratch - register used does not overlap the target. - -2002-03-12 Kaveh R. Ghazi - - * Makefile.in (debug.o): Depend on debug.h. - * dbxout.c (dbx_debug_hooks, xcoff_debug_hooks): Const-ify. - * debug.c (do_nothing_debug_hooks): Likewise. - * debug.h (debug_hooks, do_nothing_debug_hooks, dbx_debug_hooks, - sdb_debug_hooks, xcoff_debug_hooks, dwarf_debug_hooks, - dwarf2_debug_hooks, vmsdbg_debug_hooks): Likewise. - * dwarf2out.c (dwarf2_debug_hooks): Likewise. - * dwarfout.c (dwarf_debug_hooks): Likewise. - * integrate.c (output_inline_function): Likewise. - * objc/objc-act.c (synth_module_prologue): Likewise. - * sdbout.c (sdb_debug_hooks): Likewise. - * toplev.c (debug_hooks): Likewise. - * vmsdbgout.c (vmsdbg_debug_hooks): Likewise. - -2002-03-12 Kaveh R. Ghazi - - * 1750a.h, a29k.h, arc.h, arm.h, c4x.h, clipper.h, cris.h, d30v.h, - dsp16xx.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, i960.h, - m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, mmix.h, mn10300.h, - ns32k.h, pa.h, pdp11.h, pj.h, romp.h, s390.h, stormy16.h, - v850.h, vax.h, we32k.h, xtensa.h (POINTER_SIZE): Delete. - * defaults.h (POINTER_SIZE): Define. - * doc/tm.texi (POINTER_SIZE): Document default. - -2002-03-12 Kaveh R. Ghazi - - * mn10200.h (PTRDIFF_TYPE): Change it to a signed type. - -2002-03-11 Richard Henderson - - * toplev.c (rest_of_compilation): Call purge_all_dead_edges - if rebuild_label_notes_after_reload. - -2002-03-12 Hans-Peter Nilsson - - * config/cris/cris.c (cris_target_asm_function_prologue): Do not - emit pic register load if "internal" visibility. - (cris_print_operand): Avoid traditional-warning for 0xffffffff. - (cris_expand_builtin_va_arg): Do all computations on trees. - -2002-03-11 Richard Henderson - - * rtlanal.c: Include recog.h. - (keep_with_call_p): Fix thinko. - * Makefile.in (rtlanal.o): Update dependencies. - -2002-03-11 Chris Meyer - - * genflags.c (gen_insn): Use IS_VSPACE. - * genoutput.c (output_insn_data): Likewise. - (process_template): Likewise. - -2002-03-11 Richard Henderson - - * toplev.c (rest_of_compilation): Don't compile if we've had errors. - -2002-03-11 Neil Booth - - * Makefile.in: Update. - * doc/cppenv.texi, cppopts.texi: Split out of cpp.texi and gcc.texi. - Update documentation. - * doc/gcc.texi: Include cppopts.texi and cppenv.texi. - * doc/cpp.texi: Include cppopts.texi and cppenv.texi. - -2002-03-11 Zack Weinberg - - * Makefile.in: Give texi2pod its input file as a command line - argument, not on stdin. - -2002-03-11 Dan Nicolaescu - Daniel Berlin - - C++ alias analysis improvement. - * alias.c (record_component_aliases): Record aliases for base - classes too. - -2002-03-11 Ulrich Weigand - - * config/s390/s390.h (REG_ALLOC_ORDER): Add missing register. - -2002-03-11 Douglas B Rupp - - * toplev.c (vms_fopen): Remove, not needed. - - * vmsdbgout.c (lookup_filename): Adjust creation date for GMT. - - * config/alpha/xm-vms.h (__UNIX_FWRITE): Define. - - * config/alpha/alpha.c (alpha_sa_size, VMS): Don't reserve space - for FP, already done later. - - * toplev.c (debug_args): Add entry for VMS_DEBUG. - * vmsdbgout.c (vmsdbgout_init): Fix typo in call to xmalloc. - -2002-03-11 Richard Sandiford - - * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO): New. - (MODE_HAS_NANS, MODE_HAS_INFINITIES): Evaluate to false if - LARGEST_EXPONENT_IS_NORMAL for the given mode. - (MODE_HAS_SIGN_DEPENDENT_ROUNDING): False when ROUND_TOWARDS_ZERO. - * real.c (eadd1): Make rounding dependent on !ROUND_TOWARDS_ZERO. - (ediv, emul, eldexp, esqrt): Likewise. - (etoe113, etoe64, etoe53, etoe24, etodec, etoibm, etoc4x): Likewise. - (e24toe): Only check NaNs & infinities if !LARGEST_EXPONENT_IS_NORMAL. - (saturate): New function. - (toe53, toe24): Saturate on overflow if LARGEST_EXPONENT_IS_NORMAL. - (make_nan): Use a saturation value instead of a NaN if - LARGEST_EXPONENT_IS_NORMAL. Warn when this happens. - * fp-bit.c (pack_d): Saturate on NaN, infinite or overflowing - inputs if LARGEST_EXPONENT_IS_NORMAL. Represent subnormals as - zero if NO_DENORMALS. Only round to nearest if !ROUND_TOWARDS_ZERO. - (unpack_d): No NaNs or infinities if LARGEST_EXPONENT_IS_NORMAL. - (_fpmul_parts, _fpdiv_parts): Only round to nearest if - !ROUND_TOWARDS_ZERO. - * doc/tm.texi (LARGEST_EXPONENT_IS_NORMAL): Document. - (ROUND_TOWARDS_ZERO): Document. - -2002-03-11 Andreas Jaeger - - * cfg.c (dump_flow_info): Remove unused variable. - -2002-03-11 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_expand_builtin_va_arg): Do all - computations on trees. - -2002-03-10 Richard Henderson - - PR 5693: - * reload.c (copy_replacements_1): New. - (copy_replacements): Use it to recurse through the rtx. - -2002-03-10 Richard Henderson - - * loop.c (strength_reduce): Compute number of iterations as - unsigned HOST_WIDE_INT. - -2002-03-10 Richard Henderson - - * sched-rgn.c (add_branch_dependences): Don't allow insns that throw - to move away from the end of the block. - -2002-03-10 Neil Booth - - PR preprocessor/5899 - * cppinit.c (init_dependency_output): Don't ignore -dM etc. - -2002-03-10 Kaveh R. Ghazi - - * mbchar.c (JIS_state_table, JIS_action_table): Const-ify. - - * attribs.c (decl_attributes): Fix signed/unsigned warning. - -2002-03-10 Hans-Peter Nilsson - - * config/mmix/mmix.c: Improve comments. - (mmix_target_asm_function_prologue): Drop variable - empty_stack_frame. Don't allocate unused slot above fp. - (mmix_target_asm_function_epilogue): Mirror prologue changes. - * config/mmix/mmix.h (MMIX_GNU_ABI_REG_ALLOC_ORDER): Don't have - brace in first column. - (enum reg_class): Ditto. - (FIRST_PARM_OFFSET): Now 0. - (USER_LABEL_PREFIX): Remove #if 0:d definition. - -2002-03-10 Kaveh R. Ghazi - - * combine.c (make_extraction): Fix error in last change. - -2002-03-09 Kaveh R. Ghazi - - * c4x.c (c4x_fp_reglist): Const-ify. - * cris.c (cris_print_operand): Likewise. - * i386.c (ix86_va_arg): Likewise. - * ia64/unwind-ia64.c (unw_decode_table): Likewise. - * m32r.c (m32r_hard_regno_mode_ok): Likewise. - * m32r.h (m32r_hard_regno_mode_ok): Likewise. - * mcore.c (regno_reg_class, mcore_unique_section): Likewise. - * mcore.h (regno_reg_class): Likewise. - * mips.c (gen_int_relational): Likewise. - * ns32k.c (ns32k_reg_class_contents, regclass_map): Likewise. - * ns32k.h (ns32k_reg_class_contents, regclass_map): Likewise. - * pdp11.c (move_costs): Likewise. - * pj.h (INITIALIZE_TRAMPOLINE): Likewise. - * s390.c (s390_branch_condition_mnemonic, regclass_map): - Likewise. - * s390.h (regclass_map): Likewise. - * sh.c (shift_amounts): Likewise. - * sh.md (rotlsi3): Likewise. - -2002-03-09 Geoffrey Keating - - * config/rs6000/rs6000.md (ne0+4): Add extra CLOBBER. - (ne0+5): Use new clobber to generate proper shift pattern. - Patch by Michael Matz . - -2002-03-09 Andreas Schwab - - * gcc.c (validate_all_switches): Also handle `%W{...}'. - -2002-03-09 Geoffrey Keating - - * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Don't define. - -2002-03-09 Jakub Jelinek - - PR middle-end/5877 - * expr.c (highest_pow2_factor): Check TREE_INT_CST_LOW - even for non-representable constants. - -Sat Mar 9 07:20:01 2002 Richard Kenner - - * emit-rtl.c (copy_most_rtx): Accept EXPR_LIST for may_share. - * function.c (fixup_var_refs): Add MAY_SHARE parameter. - (fixup_var_refs_insns, fixup_var_refs_insns_with_has): Likewise. - (fixup_var_refs_insn, fixup_var_refs_1): Likewise. - (pop_function_context): Compute MAY_SHARE parameter for - fixup_var_refs. - (fixup_var_refs_1, case MEM): Pass MAY_SHARE to copy_most_rtx, not VAR. - (gen_mem_addressof): Call fixup_var_refs with new parm. - - * combine.c (make_extraction): Don't make extension of CONST_INT. - -2002-03-09 Alexandre Oliva - - * config/mips/mips.c (function_arg_pass_by_reference): Force to 0 - in o32 and o64 ABIs. - * config/mips/abi64.h (MUST_PASS_IN_STACK): Define as in expr.h, - but getting fixed-size structs passed in registers regardless of - padding in o32 and o64 ABIs. - - * config/mips/mips.c (mips_va_arg): Apply big-endianness address - offset before loading address of argument passed by transparent - reference. - -2002-03-08 John David Anglin - - * t-pa64 (LIB1ASMFUNCS, LIB1ASMSRC): Delete. - -2002-03-09 Alexandre Oliva - - * config/mips/mips.c (mips_expand_prologue): Set regno of vararg - marker such that registers after it are saved. - -2002-03-08 Kaveh R. Ghazi - - * sparc.c (arith_4096_operand): Fix error in last change. - -2002-03-08 Alexandre Oliva - - * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Remove duplicate - defaults for MEABI. - -2002-03-08 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_va_arg): Fix alignment for - vectors. - -2002-03-08 Aldy Hernandez - - * config/rs6000/sysv4.h (BIGGEST_ALIGNMENT): Change for altivec. - -Fri Mar 8 21:27:49 CET 2002 Jan Hubicka - - * cfgrtl.c (purge_dead_edges): Set BB_DRITY flags if edge has been - removed; fix return value. - * combine.c (combine_instructions): Dirtify blocks where we failed to - update liveness; purge dead edges; use update_life_info_in_dirty_blocks. - * toplev.c (rest_of_compilation): Do not purge_dead_edges after combine. - -2002-03-08 Kaveh R. Ghazi - - * gcse.c (insert_insn_end_bb): Fix typo in last change. - -Fri Mar 8 21:08:52 CET 2002 Jan Hubicka - - * recog.c (peephole2_optimize): Re-distribute EH edges. - -2002-03-08 Neil Booth - - * expr.c (expand_expr): Use unsave lang hook. - * langhooks-def.h (LANG_HOOKS_UNSAVE): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (struct lang_hooks): New hook unsave. - * tree.c (lang_unsave, lang_unsave_expr_now): Remove. - (unsave_expr_1): Remove unused lang_unsave_expr_now. - (unsave_expr_now_r): Rename lhd_unsave. Update. Return input. - (unsave_expr_now): Remove. - * tree.h (unsave_expr_now, lang_unsave, - lang_unsave_expr_now): Remove. - (lhd_unsave): New. - -2002-03-08 Andreas Jaeger - - * flow.c (propagate_block_delete_insn): Remove unused variable. - -2002-03-08 Kazu Hirata - - * config/h8300/h8300.c (h8300_adjust_insn_length): Tighten - insn length for memory load/store. - -2002-03-08 Craig Rodrigues - - * doc/install.texi (--with-libiconv-prefix): Document. - -2002-03-08 Michael Y. Brukman - - * doc/sourcebuild.texi: Fix typo. - -2002-03-08 Jakub Jelinek - - PR c/3711 - * builtins.c (std_expand_builtin_va_arg): Do all computations on - trees. - -Fri Mar 8 06:48:45 2002 Richard Kenner - - * rtl.c (copy_most_rtx): Move from here ... - * emit-rtl.c (copy_most_rtx): ... to here. - -2002-03-08 Alexandre Oliva - - * config/mips/mips.h (LONG_MAX_SPEC): Rewrite, along with - SUBTARGET_CPP_SIZE_SPEC. - * config/mips/abi64.h (LONG_MAX_SPEC): Delete. - - * config/mips/mips.h (SUBTARGET_CPP_SIZE_SPEC): Simplify. - -2002-03-07 Matt Hiller - - * gensupport.c (first_dir_md_include): Renamed from include; - change all references. - (last_dir_md_include): Renamed from last_include; change all - references. - (init_md_reader): Unconditionally initialize base_dir whether or - not filename is a relative path. - -2002-03-07 Alexandre Oliva - - * config/fp-bit.c (_unord_f2): Compile it in even if - US_SOFTWARE_GOFAST is enabled. - - * config/gofast.h (GOFAST_RENAME_LIBCALLS): Set gt and ge as - NULL_RTX. Set all HFmode operations as NULL_RTX. - * optabs.c (prepare_float_lib_cmp) : If libfunc is - NULL_RTX, try reversing the comparison and the operands. - -2002-03-06 Ulrich Weigand - - * genextract.c (walk_rtx): Recurse into MATCH_PAR_DUP. - genoutput.c (scan_operands): Recurse into MATCH_PAR_DUP - and MATCH_OP_DUP. - -Thu Mar 7 16:54:10 CET 2002 Jan Hubicka - - * reload1.c (reload_cse_delete_noop_set): Purge dead edges. - -Thu Mar 7 16:33:54 CET 2002 Jan Hubicka - - * basic-block.h (fixup_abnormal_edges): Declare. - * reload1.c (fixup_abnormal_edges): New function. - * reg-stack.c (convert_regs): Use it. - - * gcse.c (insert_insn_end_bb): Handle trapping insns. - - * gcse.c (hash_scan_set): Refuse instructions with EH edges. - -2002-03-07 Richard Sandiford - - * defaults.h (MODE_HAS_NANS, MODE_HAS_INFINITIES): New. - (MODE_HAS_SIGNED_ZEROS, MODE_HAS_SIGN_DEPENDENT_ROUNDING): New. - * flags.h (HONOR_NANS, HONOR_INFINITIES, HONOR_SIGNED_ZEROS): New. - (HONOR_SIGN_DEPENDENT_ROUNDING): New. - * builtins.c (expand_builtin_mathfn): Use HONOR_NANS. - * c-common.c (truthvalue_conversion): Reduce x - y != 0 to x != y - unless x and y could be infinite. - (expand_unordered_cmp): New, mostly split from expand_tree_builtin. - Check that the common type of both arguments is a real, even for - targets without unordered comparisons. Allow an integer argument - to be compared against a real. - (expand_tree_builtin): Use expand_unordered_cmp. - * combine.c (combine_simplify_rtx): Use the new HONOR_... macros. - * cse.c (fold_rtx): Likewise. Fix indentation. - * fold-const.c (fold_real_zero_addition_p): New. - (fold): Use it, and the new HONOR_... macros. - * ifcvt.c (noce_try_minmax): Use the new HONOR_... macros. - * jump.c (reversed_comparison_code_parts): After searching for - the true comparison mode, use HONOR_NANS to decide whether it - can be safely reversed. - (reverse_condition_maybe_unordered): Remove IEEE check. - * simplify-rtx.c (simplify_binary_operation): Use the new macros - to decide which simplifications are valid. Allow the following - simplifications for IEEE: (-a + b) to (b - a), (a + -b) to (a - b), - and (a - -b) to (a + b). - (simplify_relational_operation): Use HONOR_NANS. - * doc/tm.texi: Document the MODE_HAS_... macros. - -2002-03-07 Richard Earnshaw - - * combine.c (simplify_comparison): If simplifying a logical shift - right and compare with constant, force the comparison to unsigned. - -2002-03-07 Aldy Hernandez - - * doc/invoke.texi: Add documentation for -mabi=no-altivec. - - * config/rs6000/rs6000.c (rs6000_parse_abi_options): Add - -mabi=no-altivec - (alt_reg_names): Remove % for vrsave. - -2002-03-06 Richard Henderson - - PR optimization/5844 - * genemit.c (gen_exp): New argument used. Invoke copy_rtx - if used indicates we've already emitted one copy of an operand. - (gen_insn, gen_expand, output_add_clobbers): Supply a null used. - (gen_split): Supply a non-null used. - -2002-03-06 Ulrich Weigand - - * reload1.c (reload): Unshare all rtl after reload is done. - - * simplify-rtx.c (simplify_plus_minus): Do not abort, - but simply fail if the expression is too complex to simplify. - (simplify_gen_binary): Handle simplify_plus_minus failures. - -Wed Mar 6 20:32:09 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Do jump threading before SSA path; - consistently call delete_trivially_dead_insns after CSE and GCSE; - fix DFI_life dumping; do jump threading after liveness; do crossjumping - after liveness2; update comment in last crossjumping. - * cfgcleanup.c (try_crossjump_to_edge): Dirtify block. - -Wed Mar 6 12:27:10 2002 Jeffrey A Law (law@redhat.com) - - * ssa-ccp.c (ssa_fast_dce): Update the DF def-use chains - after completing fast dead code elimination. - - * m68k.h (CONST_COSTS): Lower cost of 0.0 when used inside a - COMPARE operator. - -2002-03-06 Phil Edwards - - * version.c: Fix misplaced leading blanks on first line. - -Wed Mar 6 19:08:03 CET 2002 Jan Hubicka - - * cfgrtl.c (verify_flow_info): Accept RESX as EH edge source. - -Wed Mar 6 18:14:43 CET 2002 Jan Hubicka - - * cfgcleanup.c (mentions_nonequal_regs): New function. - (thread_jump): Use it. - * toplev.c (rest_of_compilation): Run jump threading after - liveness. - -2002-03-06 Jakub Jelinek - - * ssa-ccp.c (ssa_ccp_substitute_constants): Backout 2002-03-05 - patch. - -Wed Mar 6 11:28:19 CET 2002 Jan Hubicka - - * predict.c (estimate_bb_frequencies): Do not reload the - frequencies from notes. - -Wed Mar 6 10:59:39 CET 2002 Jan Hubicka - - * cfgrtl.c (delete_insn_and_edges, delete_insn_chain_and_edges): New. - * rtl.h (delete_insn_and_edges, delete_insn_chain_and_edges): Declare - - * basic-block.h (update_life_info, update_life_info_in_dirty_blocks, - delete_noop_moves): Return indeger. - * flow.c (ndead): New variable. - (propagate_block_delete_insn): Use delete_insn_and_edges; remove - BB argument; update callers. - (propagate_block_delete_libcall): Use delete_insn_chain_and_edges. - (life_analysis): Do not call purge_all_dead_edges. - (update_life_info): Return number of deleted insns; print statistics. - (update_life_info_in_dirty_blocks): likewise. - (delete_noop_moves): Use delete_insn_and_edges; print statistics; - return number of insns deleted. - - * cse.c: Include timevar.h - (delete_trivially_dead_insns): Kill preserve_basic_blocks argument; - iterate until stabilizes; print statistics; return number of killed - insns. - * Makefile.in: (cse.o): Add timevar.h dependency - * rtl.h (delete_trivially_dead_insns): New. - * timever.def: Add TV_DELETE_TRIVIALLY_DEAD timer. - * toplev.c (rest_of_compilation): Update callers. - - * cfgcleanup.c (try_optimize_cfg): Kill blocks. - (try_optimize_cfg): Do not update liveness. - (cleanup-cfg): Loop until try_optimize_cfg and dead code - removal stabilizes; use delete_trivially_dead_insns. - - * cfgrtl.c (verify_flow_info): Sanity check outgoing edges. - -2002-03-05 Zack Weinberg - - * cppmain.c (setup_callbacks): Disable #pragma and #ident - callbacks when processing assembly language. - -2002-03-05 John David Anglin - - * pa.h (ASM_FILE_END): Define. - * som.h (ASM_FILE_END): Delete. - - * pa.c (function_arg): Don't pass floats in general registers in - indirect calls if TARGET_ELF32. - -2002-03-05 Richard Henderson - - * config/i386/i386.md (floatsidf2): Conditionalize on hard-float. - -2002-03-05 Danny Smith - - * gthr-win32.h (__GTHREAD_MUTEX_INIT_DEFAULT): Define. - -2002-03-05 Jakub Jelinek - - * mklibgcc.in: Prepend a tab before .hidden, add $flags to gcc - -r command line. Don't hide any symbols if not building - shared libgcc. - -Tue Mar 5 18:31:27 CET 2002 Jan Hubicka - - * cfg.c (dump_flow_info): Warn about profile mismatches. - * cfgrtl.c (verify_flow_info): Few aditional sanity checks. - (purge_dead_edges): Remove REG_BR_PROB notes on simplejumps. - -2002-03-05 Jakub Jelinek - - * expmed.c (emit_store_flag): Don't test BITS_PER_WORD * 2 - wide volatile memory by parts. - -2002-03-05 Jakub Jelinek - - * ssa-ccp.c (ssa_ccp_substitute_constants): Don't crash if def - is NULL. - -2002-03-05 Richard Henderson - - * rs6000.h (TOTAL_ALTIVEC_REGS): Fix off-by-one error. - -2002-03-04 Geoffrey Keating - - * toplev.c (documented_lang_options): Document more - language-specific options. - * doc/invoke.texi (Warning Options): Correct documentation for - -Wno-multichar, -Wno-div-by-zero, and -Wsystem-headers. - * c-decl.c (c_decode_option): Use a table to handle warning options. - -2002-03-05 Hans-Peter Nilsson - - * config/mmix/mmix.h (ENCODE_SECTION_INFO): Pass on new second - parameter to mmix_encode_section_info. - (LINK_SPEC): Don't defsym __.MMIX.start..text if linking - relocatably. Always produce ELF, not mmo if linking relocatably. - * config/mmix/mmix.c (mmix_encode_section_info): If new parameter - first is nonzero, don't add symbol prefix. - * config/mmix/mmix-protos.h (mmix_encode_section_info): Tweak - prototype accordingly. - -2002-03-04 Krister Walfridsson - - * config.gcc (*-*-netbsd*): Add t-slibgcc-elf-ver to tmake_file. - -2002-03-05 Joseph S. Myers - - * configure.in: Increase required makeinfo version to 4.1. - * configure: Regenerate. - -2002-03-04 Geoffrey Keating - - * .cvsignore: Remove *.info* and genrtl*; these files are generated - elsewhere now. - -2002-03-04 Joseph S. Myers - - * doc/include/texinfo.tex: Update to version 2002-03-01.06. - * doc/invoke.texi: Fix @math uses. - -Mon Mar 4 15:33:54 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Cleanup CFG after dead jumptables - removal - -2002-03-03 Aldy Hernandez - - * config.gcc (powerpc-*-eabialtivec*): Use t-ppcendian. - (powerpc-*-eabisimaltivec*): Same. - - * config/rs6000/t-ppcendian: New. - -2002-03-04 Herman A.J. ten Brugge - - * c4x-protos.h, c4x.h, c4x.c, c4x.md: Add new functions - nonimmediate_src_operand and nonimmediate_lsrc_operand to - disallow ZERO_EXTEND with CONST_INT or CONST_DOUBLE. - -2002-03-03 Richard Henderson - - * toplev.c (rest_of_decl_compilation): Revert last two changes. - -2002-03-03 Zack Weinberg - - * emit-rtl.c, final.c, fold-const.c, gengenrtl.c, optabs.c, - print-tree.c, real.c, real.h, recog.c, rtl.c, simplify-rtx.c, - tree.c, config/m68k/m68k.c: - Remove all #ifndef REAL_ARITHMETIC blocks, make all #ifdef - REAL_ARITHMETIC blocks unconditional. Delete some further - #ifdef blocks predicated on REAL_ARITHMETIC. - * flags.h, toplev.c: Delete remaining references to - flag_pretend_float. - - * doc/invoke.texi: Remove documentation of -fpretend-float. - * doc/tm.texi: Describe the various REAL_* macros as provided by - real.h, not by the target configuration files. - - * config/alpha/alpha.h, config/alpha/unicosmk.h, config/arm/arm.h, - config/avr/avr.h, config/c4x/c4x.h, config/convex/convex.h, - config/cris/cris.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, - config/h8300/h8300.h, config/i370/i370.h, config/i386/i386.h, - config/i386/osf1elf.h, config/i960/i960.h, config/ia64/ia64.h, - config/m32r/m32r.h, config/m68hc11/m68hc11.h, config/m68k/dpx2.h, - config/m68k/linux-aout.h, config/m68k/linux.h, config/m68k/m68k.h, - config/m68k/sun3.h, config/m68k/vxm68k.h, config/mcore/mcore.h, - config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, - config/mn10300/mn10300.h, config/pa/pa.h, config/pj/pj.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/sol2.h, config/sparc/sparc.h, config/sparc/vxsim.h, - config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vax.h, - config/xtensa/xtensa.h: - Do not define, undefine, or mention in comments any of - REAL_ARITHMETIC, REAL_VALUE_ATOF, REAL_VALUE_HTOF, - REAL_VALUE_ISNAN, REAL_VALUE_ISINF, - REAL_VALUE_TO_TARGET_SINGLE, REAL_VALUE_TO_TARGET_DOUBLE, - REAL_VALUE_TO_TARGET_LONG_DOUBLE, REAL_VALUE_TO_DECIMAL, - REAL_VALUE_TYPE, REAL_VALUES_EQUAL, REAL_VALUES_LESS, - REAL_VALUE_LDEXP, REAL_VALUE_FIX, REAL_VALUE_UNSIGNED_FIX, - REAL_VALUE_RNDZINT, REAL_VALUE_UNSIGNED_RNDZINT, - REAL_INFINITY, REAL_VALUE_NEGATE, REAL_VALUE_TRUNCATE, - REAL_VALUE_TO_INT, or REAL_VALUE_FROM_INT. - -2002-03-03 Kaveh R. Ghazi - - * 1750a.h, a29k.h, alpha.h, arc.h, arm.h, avr.h, c4x.h, clipper.h, - convex.h, cris.h, d30v.h, dsp16xx.h, elxsi.h, fr30.h, h8300.h, - i370.h, i386.h, i860.h, i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, - m88k.h, mcore.h, mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, - pa.h, pdp11.h, pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, - stormy16.h, v850.h, vax.h, we32k.h, xtensa.h (BITS_PER_WORD): - Delete. - * defaults.h (BITS_PER_WORD): Define. - * doc/tm.texi (BITS_PER_WORD): Document default value. - - * 1750a.h, avr.h, convex.h, d30v.h, dsp16xx.h, fr30.h, ia64.h, - m68hc11.h, m88k.h, mips.h, pdp11.h, rs6000.h, sparc.c, - stormy16.h, xtensa.h, vmsdbgout.c (CHAR_TYPE_SIZE): Delete. - -2002-03-03 Kaveh R. Ghazi - - * attribs.c (init_attributes, decl_attributes): Use ARRAY_SIZE in - lieu of explicit sizeof/sizeof. - * i386.c (override_options, ix86_init_mmx_sse_builtins, - ix86_expand_builtin): Likewise. - * mips.c (mips_add_gc_roots): Likewise. - * mmix.c (mmix_output_condition): Likewise. - * rs6000.c (rs6000_override_options, altivec_expand_builtin, - altivec_init_builtins): Likewise. - * sparc.c (mark_ultrasparc_pipeline_state): Likewise. - * cppexp.c (Nsuff, parse_number): Likewise. - * cppinit.c (builtin_array_end): Likewise. - * gcc.c (n_default_compilers, process_command): Likewise. - * genpreds.c (output_predicate_decls): Likewise. - * ggc-page.c (NUM_EXTRA_ORDERS): Likewise. - * lcm.c (N_ENTITIES): Likewise. - * stor-layout.c (set_sizetype): Likewise. - -2002-03-03 Richard Henderson - - * toplev.c (rest_of_decl_compilation): Do not invoke make_decl_rtl - for types or labels. - -2002-03-03 Richard Henderson - - * c-decl.c (start_decl): Initialized variables are not common. - -2002-03-02 Per Bothner - - * gcc.c (option_map): Suport new --bootclasspath option. - --CLASSPATH is now just an alias for --classpath. - -2002-03-02 Richard Henderson - - * config/i386/i386.h (ix86_expand_prologue): Do not emit pic register - load if "internal" visibility. - * doc/extend.texi: Document visibility meanings. - -2002-03-02 Richard Henderson - - * config/i386/i386.h (ENCODE_SECTION_INFO): MODULE_LOCAL_P applies - to functions as well. - -2002-03-02 Richard Henderson - - * attribs.c (handle_alias_attribute): Don't call assemble_alias. - (handle_visibility_attribute): Don't call assemble_visibility. - * toplev.c (rest_of_decl_compilation): Invoke make_decl_rtl even - without asmspec. Invoke assemble_alias when needed. - * varasm.c (maybe_assemble_visibility): New. - (assemble_start_function, assemble_variable, assemble_alias): Use it. - -2002-03-02 Richard Henderson - - * varasm.c (make_decl_rtl): Remove call to REDO_SECTION_INFO_P; - invoke ENCODE_SECTION_INFO with first call flag. - - * config/darwin-protos.h, config/darwin.c, config/darwin.h, - config/a29k/a29k.h, config/alpha/alpha-protos.h, config/alpha/alpha.c, - config/alpha/alpha.h, config/arc/arc.h, config/arm/arm-protos.h, - config/arm/arm.h, config/arm/pe.c, config/arm/pe.h, - config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, - config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, - config/cris/cris-protos.h, config/cris/cris.c, config/cris/cris.h, - config/d30v/d30v.h, config/h8300/h8300.h, config/i370/i370.h, - config/i386/cygwin.h, config/i386/i386-interix.h, config/i386/i386.h, - config/i386/osfrose.h, config/i386/win32.h, config/i386/winnt.c, - config/ia64/ia64-protos.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/m32r/m32r-protos.h, config/m32r/m32r.c, config/m32r/m32r.h, - config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.h, config/m88k/m88k.h, - config/mcore/mcore-protos.h, config/mcore/mcore.c, - config/mcore/mcore.h, config/mips/mips.h, config/ns32k/ns32k.h, - config/pa/pa.h, config/romp/romp.h, config/rs6000/linux64.h, - config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, - config/rs6000/sysv4.h, config/rs6000/xcoff.h, config/s390/s390.h, - config/sh/sh.h, config/sparc/sparc.h, - config/stormy16/stormy16-protos.h, config/stormy16/stormy16.c, - config/stormy16/stormy16.h, config/v850/v850.h, config/vax/vms.h, - config/xtensa/xtensa.h, doc/tm.texi: ENCODE_SECTION_INFO now takes - FIRST argument. As needed, examine it and do nothing. - - * config/darwin.h, config/alpha/alpha.h, config/arm/pe.h, - config/i386/cygwin.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h, - config/mcore/mcore.h: Remove REDO_SECTION_INFO_P. - - * config/arm/t-pe (pe.o): Add dependencies. - -2002-03-02 Kaveh R. Ghazi - - * a29k.h, alpha.h, arc.h, arm.h, avr.h, clipper.h, convex.h, - cris.h, d30v.h, elxsi.h, fr30.h, h8300.h, i370.h, i386.h, i860.h, - i960.h, ia64.h, m32r.h, m68hc11.h, m68k.h, m88k.h, mcore.h, - mips.h, mmix.h, mn10200.h, mn10300.h, ns32k.h, pa.h, pdp11.h, - pj.h, romp.h, rs6000.h, s390.h, sh.h, sparc.h, stormy16.h, v850.h, - vax.h, we32k.h, xtensa.h: (BITS_PER_UNIT): Delete. - * defaults.h (BITS_PER_UNIT): Define. - * doc/tm.texi (BITS_PER_UNIT): Document default value. - -2002-03-02 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - compute_a_shift_length. - * config/h8300/h8300.c (h8300_asm_insn_count): New. - (compute_a_shift_length): Likewise. - (h8300_adjust_insn_length): Do not adjust insn length of shift - insns. - * config/h8300/h8300.md (anonymous shift patterns): Use - compute_a_shift_length. - -Sat Mar 2 06:30:14 2002 Richard Kenner - - * config/sparc/sparc.c (sparc_initialize_trampoline): Use - trunc_int_for_mode. - - * emit-rtl.c (offset_address): Call update_temp_slot_address. - -2002-03-01 Kaveh R. Ghazi - - * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-zero-initialized-in-bss. - * doc/invoke.texi (-fno-zero-initialized-in-bss): Document. - * flags.h (flag_zero_initialized_in_bss): Declare. - * toplev.c (flag_zero_initialized_in_bss): New flag. - (lang_independent_options): Add flag_zero_initialized_in_bss. - * tree.c (initializer_zerop): New function. - * tree.h (initializer_zerop): Declare. - * varasm.c (assemble_variable): If we can emit bss, put zero - initializers in the bss section. - -2002-03-02 Alan Modra - - * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): AIX assembler doesn't - like more than one symbol per .weak directive. - -2002-03-01 Richard Henderson - - * config/ia64/ia64.c (ia64_initial_elimination_offset): Do not - adjust argument_pointer by pretend_args_size. - (ia64_va_start): Adjust va_start address by -pretend_args_size. - -2002-03-01 Kazu Hirata - - * config/h8300/h8300.c (h8300_adjust_insn_length): Clean up. - -Fri Mar 1 20:59:14 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Delete dead jumptables before - loop. - * flow.c (delete_dead_jumptables): Make global. - * rtl.h (delete_dead_jumptables): Declare. - -2002-03-01 David Edelsohn - - * config/rs6000/rs6000.h (HANDLE_PRAGMA_PACK): Delete. - * config/rs6000/darwin.h (HANDLE_SYSV_PRAGMA): Define. - * config/rs6000/xcoff.h (COLLECT_EXPORT_LIST): Delete. - -2002-03-01 Kazu Hirata - - * config/h8300/h8300-protos.h: Fix formatting. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - -2002-03-01 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Support 16-bit - constant addresses. - * config/h8300/h8300.h (TINY_CONSTANT_ADDRESS_P): New. - -2002-02-28 Richard Henderson - - * expmed.c (store_bit_field): Prevent generation of CONCATs; - pun complex values as integers; use gen_lowpart instead of - gen_rtx_SUBREG. - (extract_bit_field): Likewise. - -2002-03-01 Alan Modra - David Edelsohn - - * doc/tm.texi (ASM_WEAKEN_DECL): Document. - (ASM_WEAKEN_LABEL): Mention ASM_WEAKEN_DECL. - (SUPPORTS_WEAK): Likewise. - * output.h (add_weak): Add tree param. - * varasm.c (add_weak): Likewise. Save decl. - (struct weak_syms): Add decl field. - (mark_weak_decls): New function. - (init_varasm_once): ggc_add_root mark_weak_decls. - (assemble_start_function): Use ASM_WEAKEN_DECL. - (assemble_variable): Likewise. - (assemble_alias): Likewise. - (declare_weak): Pass decl to add_weak. - (weak_finish): Use ASM_WEAKEN_DECL. Try to find decl. - (remove_from_pending_weak_list): Declare and define for - ASM_WEAKEN_DECL. - * c-pragma.c (handle_pragma_weak): Adjust add_weak call. - * c-pragma.h (HANDLE_PRAGMA_WEAK): Define if ASM_WEAKEN_DECL too. - * defaults.h (SUPPORTS_WEAK): Likewise. - * config/rs6000/linux64.h (ASM_DECLARE_FUNCTION_NAME): Don't emit - .weak for code sym. Do emit .size for descriptor sym. - (ASM_DECLARE_FUNCTION_SIZE): Define. - * config/rs6000/rs6000.h (ASM_WEAKEN_DECL): Define. - (ASM_OUTPUT_DEF_FROM_DECLS): Don't emit .weak here. Don't output - .lglobl unless TARGET_XCOFF. Formatting fixes. - * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Don't emit - .weak for code sym. - (HANDLE_PRAGMA_WEAK): Remove. - (ASM_WEAKEN_LABEL): Remove. - * config/rs6000/aix.h (HANDLE_SYSV_PRAGMA): Define. - -2002-03-01 Jason Merrill - - * tree.h (TARGET_EXPR_SLOT, TARGET_EXPR_INITIAL): New macros. - (TARGET_EXPR_CLEANUP): New macro. - -2002-02-28 Steve Ellcey - - * doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition - to take ptr_extend into account as third type of extension. - (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit - fields used by SUBREG_PROMOTED_UNSIGNED_P. - * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro. - (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1. - * calls.c (precompute_arguments): Use new macro. - (expand_call): Ditto. - * combine.c (nonzero_bits): Ditto. - (record_promoted_value): Ditto. - * expr.c (store_expr): Ditto. - (expand_expr): Ditto. - * function.c (assign_parms): Ditto. - -2002-02-28 Alexandre Oliva - - * gcc.c (init_gcc_specs): Get -static and -static-libgcc to - override -shared and -shared-libgcc. - -2002-02-28 David O'Brien - - * config.gcc (sparc64-*-freebsd): Explicitly accept a cpu specification - of "ultrasparc". - * config/sparc/freebsd.h: Do not use MASK_FASTER_STRUCTS. It appears - to be broken. - -2002-02-28 Richard Henderson - - * config/ia64/ia64.c (ia64_adjust_cost): All non-MM consumers have - 4 cycle latency from MM producers. - (ia64_internal_sched_reorder): Likewise with pipeline flush. - -2002-02-28 Jakub Jelinek - - * mklibgcc.in: Don't use GNU make extension. - -2002-02-28 Neil Booth - - * c-parse.in (STATIC): New terminal. - (scspec): New non-terminal. Update productions accordingly. - (program): Remove bogus ifc / end ifc. - (array_declarator): Simplify production using STATIC. - -2002-02-28 Jim Meyering - - * cpplex.c (cpp_parse_escape): Restore mistakenly-removed code: - \a still means TARGET_BELL. - -2002-02-28 Richard Henderson - - * haifa-sched.c (sched_emit_insn): New. - (schedule_block): Use last_scheduled_insn to track last insn. - * sched-int.h (sched_emit_insn): Prototype. - * config/ia64/ia64.c (last_issued): Remove. - (ia64_variable_issue): Don't set it. - (nop_cycles_until): Use sched_emit_insn. - -2002-02-28 Andrew MacLeod - - * config/sparc/sparc.c (sparc64_initialize_trampoline): Generate sign - extended constants. - -2002-02-28 Kazu Hirata - - * config/h8300/h8300.c: Fix formatting. - * config/h8300/h8300.h: Likewise. - -2002-02-28 Marek Michalkiewicz - - * config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29 - which may overwrite the high byte of the frame pointer. - -2002-02-28 Bo Thorsen - - * config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation. - (STARTFILE_SPEC): Add 64 bit files. - (ENDFILE_SPEC): Likewise. - -2002-02-28 Jason Merrill - - * c-decl.c (finish_function): Only warn about missing return - statement with -Wreturn-type. - -Don Feb 28 11:24:30 CET 2002 Jan Hubicka - - * cfgrtl.c (purge_dead_edges): Fix handling of EH edges. - - * i386.h (CONDITIONAL_REGISTER_USAGE): Do not write to - PIC_OFFSET_TABLE_REGNUM when it is INVALID_REGNUM - -Don Feb 28 11:07:36 CET 2002 Jan Hubicka - - * basic-block.h (BB_REACHABLE): Renumber. - (BB_DIRTY, BB_NEW): New flags. - (clear_bb_flags): Declare. - (update_life_info_in_dirty_blocks): Declare. - * cfg.c (clear_bb_flags): New function. - * cfgrtl.c (create_basic_block_structure): Set flags to BB_NEW. - * emit-rtl.c (add_insn_after, add_insn_before, remove_insn, - reorder_insns, emit_insn_after): Mark block as dirty. - * flow.c (update_life_info): Fix clearing of PROP_LOG_LINKS. - (update_life_info_in_dirty_blocks): New function. - * recog.c (apply_change_group): Dirtify block. - - * cse.c (cse_insn): Reorder emitting of jump insn to keep - cfg consistent. - * gcse.c (delete_null_pointer_checks): Likewise. - - * toplev.c (dump_file_index): Move cse2 after bp, - add DFI_null - (dump_file_info): Similary. - (rest_of_compilation): Avoid most of CFG rebuilds; - do first if converision after null pointer checks, do cse2 - after branch prediction; avoid full liveness rebuild after - initializing subregs. - * invoke.texi (-d options): Document -du, renumber. - - * cfgcleanup.c (bb_flags): Remove BB_UPDATE_LIFE. - (notice_new_block): Do not set BB_UPDATE_LIFE. - (try_forward_edges, merge_blocks_move_predecessor_nojumps, - merge_blocks_move_successor_nojumps, merge_blocks, - try_crossjump_to_edge): Likewise. - (try_optimize_cfg): Likewise; use update_life_info_in_dirty_blocks. - * cfgrtl.c (merge_blocks_nomove): Copy b's flags to a. - * ifcvt.c (SET_UPDATE_LIFE, UPDATE_LIFE): Kill. - (merge_of_block): Do not use life_data_ok. - (find_if_case_1): Do not use SET_UPDATE_LIFE. - (if_convert): Use BB_DIRTY mechanizm to update life. - * lcm.c (optimize_mode_switching): Update - update_life_info_in_dirty_blocks - -2002-02-28 Neil Booth - - * Makefile.in (integrate.o): Update. - * c-decl.c (copy_lang_decl): Rename. - * c-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. - * integrate.c: Include langhooks.h. - (copy_decl_for_inlining): Update to use langhook. - * langhooks-def.h (lhd_do_nothing_t, - LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): New. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_do_nothing_t): New. - * langhooks.h (struct lang_hooks): Add dup_lang_specific_decl. - * tree.h (copy_lang_decl): Remove. -objc: - * objc-lang.c (LANG_HOOKS_DUP_LANG_SPECIFIC_DECL): Redefine. - -2002-02-27 Andrew MacLeod - - * dwarf2out.c (stack_adjust_offset): Add support for POST_INC, - POST_DEC, and POST_MODIFY. - -2002-02-27 Zack Weinberg - - * c-typeck.c (digest_init): Remove unused parameter; all - callers changed. - -2002-02-27 Geoffrey Keating - - * expmed.c (expand_shift): Correctly test for low part of a - subreg. - -2002-02-27 Ulrich Weigand - - * config/s390/s390.c (s390_chunkify_pool): Do not confuse - insn UIDs with insn addresses. - -2002-02-27 Zack Weinberg - - * c-common.c, c-common.h, c-decl.c, c-lex.c, c-parse.in, - c-tree.h, c-typeck.c, cppexp.c, cpplex.c, cpplib.c, cpplib.h, - cppmacro.c, objc/lang-specs.h, objc/objc-act.c, - builtin-types.def, builtins.def, dwarf2out.c, dwarfout.c, - gcc.c, toplev.c: Delete code implementing -traditional mode. - - * doc/bugreport.texi, doc/cpp.texi, doc/extend.texi, - doc/invoke.texi, doc/standards.texi, doc/trouble.texi: - Document removal of -traditional mode for compilation, and - remove documentation only relevant to that mode. - - * config/nextstep.h, config/ptx4.h, config/svr4.h, - config/convex/convex.h, config/d30v/d30v.h, - config/i386/dgux.h, config/i386/osf1elf.h, - config/i386/osfelf.h, config/i386/osfrose.h, - config/i386/sco5.h, config/i386/sol2.h, config/m68k/a-ux.h, - config/m68k/hp310.h, config/m88k/dgux.h, - config/m88k/dguxbcs.h, config/m88k/luna.h, config/m88k/m88k.c, - config/m88k/m88k.h, config/m88k/openbsd.h, - config/mips/abi64.h, config/mips/osfrose.h, - config/mips/svr4-5.h, config/mips/svr4-t.h, - config/sparc/sol2-sld-64.h, config/sparc/sol2.h, - config/stormy16/stormy16.h: Remove all references to - -traditional from target specs. Delete all mention of the - no-longer-necessary TRADITIONAL_RETURN_FLOAT macro. Also - delete a couple of commented-out definitions of - DOLLARS_IN_IDENTIFIERS, with (incorrect) commentary referring - to -traditional. - - * system.h: Poison TRADITIONAL_RETURN_FLOAT. - * doc/tm.texi: Remove mention of TRADITIONAL_RETURN_FLOAT macro. - -2002-02-27 Zack Weinberg - - * mklibgcc.in: Don't use \n in a line subject to - interpretation by echo. - -2002-02-27 Graham Stott - - * config/rs6000/rs6000.h (ASM_OUTPUT_DEF_FROM_DELC): - Constify NAME. - - * loop.c (prescan_loop): Handle PARALLEL. - - * unroll.c (loop_iterations): Return 0 if the add_val for - a BIV is REG. - - * final.c (output_operand_lossage): Constify PFX_STR. - - * df.c (df_insn_refs_record): Use XEXP (x, 0) for USE. - -Wed Feb 27 10:45:19 CET 2002 Jan Hubicka - - * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Remove. - * x86-64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Allways define. - -Wed Feb 27 10:39:20 CET 2002 Jan Hubicka - - * linux64.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - -2002-02-27 Neil Booth - - * cpplex.c (_cpp_lex_token): Handle directives in macro - arguments. - * cpplib.c (_cpp_handle_directive): Save and restore state - if parsing macro args when entering a directive. - * cppmacro.c (collect_args): No need to handle directives - in macro arguments. - (enter_macro_context, replace_args): Use the original macro - definition in case it was redefined whilst collecting arguments. -doc: - * cpp.texi: Update. - -2002-02-26 David Edelsohn - - * config/rs6000/aix43.h (THREAD_MODEL_SPEC): Delete. - * config/rs6000/aix51.h (THREAD_MODEL_SPEC): Delete. - * config/rs6000/rs6000.c (rs6000_return_addr): Use efficient - method on AIX. - * config/rs6000/rs6000.md (movsi_low): Use gpc_reg_operand. - (movsi_low_st, movdf_low, movdf_low_st, movsf_low, movsf_low_st): Same. - (load_toc_v4_PIC_2): Same. - -2002-02-26 Alan Modra - - * config/rs6000/rs6000.md (load_toc_aix_di): Handle TARGET_RELOCATABLE. - -2002-02-26 Richard Henderson - - * config/alpha/alpha.md (ashldi_se): Re-enable. - -2002-02-26 Richard Henderson - - * config/alpha/alpha.c (alpha_encode_section_info): Examine - MODULE_LOCAL_P; improve commentary. - -2002-02-26 Zack Weinberg - - * doc/cpp.texi: Clarify documentation of relationship between - #line and #include. - -2002-02-26 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype for - compute_logical_op_length. Add the prototype for - compute_logical_op_cc. - * config/h8300/h8300.c (compute_logical_op_length): Figure out - code from operands. - (compute_logical_op_cc): New. - * config/h8300/h8300.md: Combine all the logical op patterns - in HImode and SImode. Use compute_logical_op_cc. - -2002-02-26 Kelley Cook - - * config/i386/i386.c (print_operand): Don't append ATT-style - length suffixs to x87 opcodes when in Intel mode. - -2002-02-26 Ryan T. Sammartino - - * emit-rtl.c (gen_const_vector_0): Remove TYPE argument. - (init_emit_once): Update calls. - * fixinc/gnu-regex.c (_GNU_SOURCE): Remove. - (init_syntax_once): Prototype. - -2002-02-26 John David Anglin - - * pa-linux.h (LIB_SPEC): Update definition. - * pa32-linux.h (LINK_COMMAND_SPEC): Delete. - -2002-02-26 Richard Henderson - - * config/ia64/ia64.c (nop_cycles_until): Do init_insn_group_barriers - if we emitted a stop bit. - -2002-02-26 Jakub Jelinek - - * configure.in (libgcc_visibility): Substitute. - * configure: Rebuilt. - * mklibgcc.in: If libgcc_visibility = yes, make libgcc.a global - defined symbols .hidden. - -2002-02-26 Jakub Jelinek - - * attribs.c (c_common_attribute_table): Add visibility. - (handle_visibility_attribute): New function. - * varasm.c (assemble_visibility): New function. - * output.h (assemble_visibility): Add prototype. - * tree.h (MODULE_LOCAL_P): Define. - * crtstuff.c (__dso_handle): Use visibility attribute. - * config/i386/i386.h (ENCODE_SECTION_INFO): Set SYMBOL_REF_FLAG - for MODULE_LOCAL_P symbols too. - * config/ia64/ia64.c (ia64_encode_section_info): Handle - MODULE_LOCAL_P symbols the same way as local symbols. - Add SDATA_NAME_FLAG_CHAR even if decl was explicitely forced - into .sdata/.sbss by the user. - * doc/extend.texi (Function Attributes): Document visibility - attribute. - -2002-02-26 Jakub Jelinek - - PR debug/5770 - * dwarf2out.c (rtl_for_decl_location): Return CONST_STRING for - STRING_CST initializer spanning the whole variable without - embedded zeros. - If expand_expr returned MEM, don't use it. - -2002-02-26 Alexandre Oliva - - * dwarf2out.c (gen_inlined_subroutine_die): If block is abstract, - generate a die for the lexical block. - -2002-02-26 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - compute_logical_op_length. - * config/h8300/h8300.c (compute_logical_op_length): New. - * config/h8300/h8300.md (anonymous logical patterns): Use - compute_logical_op_length for length. - -2002-02-26 Aldy Hernandez - - * dwarf2out.c (modified_type_die): Do not call type_main_variant - for vectors. - (gen_type_die): Same. - - * attribs.c (handle_vector_size_attribute): Set debug information. - -2002-02-26 Daniel Egger - - * config/rs6000/rs6000.md: Swap define_insn attributes to - fix incorrect generation of merge high instructions instead - of merge low. - -2002-02-26 Aldy Hernandez - - * c-typeck.c (really_start_incremental_init): Use - bitsize_zero_node for vectors. - -2002-02-26 Aldy Hernandez - - * config/rs6000/rs6000.md (get_vrsave_internal): Fix typo. - ("*set_vrsave_internal"): Same. - -2002-02-25 Richard Henderson - - * expr.c (expand_expr) [MULT_EXPR]: Do not apply distributive law - in EXPAND_SUM case. Use host_integerp/tree_low_cst. - -2002-02-25 Jakub Jelinek - - PR target/5755 - * config/i386/i386.c (ix86_return_pops_args): Only pop - fake structure return argument if it was passed on the stack. - -2002-02-25 Jason Merrill - - * attribs.c (decl_attributes): Also re-layout PARM_DECL and - RESULT_DECL. - -2002-02-25 Alexandre Oliva - - * gcc.c (init_gcc_specs): Get -shared-libgcc along with -shared to - link with shared_name only. - * doc/invoke.texi (Link Options): Document new behavior. - -2002-02-25 Aldy Hernandez - - * c-typeck.c (push_init_level): Handle vectors. - -2002-02-25 Alexandre Oliva - - * config/sparc/sparc.c (const64_high_operand): Zero-extend - operands of SPARC_SETHI_P. - (input_operand): Likewise. - (sparc_emit_set_const32): Likewise. - * config/sparc/sparc.h (SPARC_SETHI_P): Disregard TARGET_ARCH64. - (SPARC_SETHI32_P): Zero-extend operand from 32 bits. - (CONST_OK_FOR_LETTER_P): Use SETHI32 for `K'. Add `N' as SETHI. - * config/sparc/sparc.md (movdi_insn_sp64_novis): Use `N'. - (movdi_insn_sp64_vis): Likewise. - (movdi split, movdf split): Use SETHI32. - * doc/md.texi: Document SPARC constraints L, M and N. - -2002-02-25 Aldy Hernandez - - * config/rs6000/rs6000.md ("get_vrsave_internal"): New. - ("*set_vrsave_internal"): use mfspr for Darwin. - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Call - gen_get_vrsave_internal. - -Sun Feb 24 16:38:56 2002 Richard Kenner - - * optabs.c (widen_operand): Properly handle CONST_INT for NO_EXTEND. - -2002-02-24 Neil Booth - - * cpplex.c (cpp_interpret_charconst): Get signedness or - otherwise of wide character constants correct. - * cppexp.c (lex): Get signedness of wide charconsts correct. - -Sun Feb 24 07:41:31 2002 Richard Kenner - - * optabs.c (widen_operand): Only call convert_modes for - promoted SUBREG if signedness matches. - * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns. - -2002-02-23 Neil Booth - - * cpplib.c (glue_header_name): Use local buffer to build up - header name. - -2002-02-23 Neil Booth - - * doc/cpp.texi, doc/invoke.texi: Update documentation for -MM. - -2002-02-23 Kazu Hirata - - * config/h8300/h8300.c (output_simode_bld): Handle H8/300 and - H8/300[HS] separately. - * config/h8300/h8300.md: Remove the early clobber constraint - from bit field patterns. - -2002-02-23 Kazu Hirata - - * config/h8300/h8300.md (mulqihi3): Tighten predicates to - register_operand. - (mulhisi3): Likewise. - (umulqisi3): Likewise. - (umulhisi3): Likewise. - -2002-02-23 Neil Booth - - * cppinit.c (output_deps): Correct test for stdout output. - (init_dependency_output): Cure warning. - -Sat Feb 23 08:42:47 2002 Richard Kenner - - * expr.c (store_expr): When converting expression to promoted - equivalent type, allow using SUBREG_REG of TARGET as the target - of the expansion of EXP. - * loop.c (basic_induction_var, case SUBREG): Always look inside. - * config/alpha/alpha.c (rtx_equiv_function_matters): Delete decl. - (alpha_emit_set_const): Handle SImode when can't make new pseudos. - (alpha_emit_set_const_1, alpha_sa_mask): Use no_new_pseudos. - * config/alpha/alpha.md (addsi3, subsi3): Don't use if optimizing. - -2002-02-23 Joseph S. Myers - - * doc/contribute.texi, doc/extend.texi, doc/install.texi, - doc/invoke.texi, doc/md.texi, doc/passes.texi, doc/rtl.texi, - doc/standards.texi, doc/tm.texi: Remove trailing whitespace. - -2002-02-23 Jakub Jelinek - - PR optimization/5747 - * loop.c (scan_loop): Update reg info if move_movables created new - pseudos. - -2002-02-23 David Edelsohn - - * gcc.c (init_gcc_spec): Revert last change. - -2002-02-23 David Edelsohn - - * config/rs6000/rs6000.md (load_toc_aix_{si,di}): Use - gpc_reg_operand constraint. - -2002-02-23 Alan Modra - - * config/rs6000/rs6000.c (num_insns_constant): Fix formatting. - Simplify comparison of `low'. - (add_operand): Fix formatting. - (non_add_cint_operand): Use CONST_OK_FOR_LETTER_P. - (mask_operand): Disallow mask to wrap in 64-bit mode. - (rs6000_stack_info): Remove redundant test setting push_p. - (output_toc): Fix formatting. - * config/rs6000/rs6000.md (boolsi3, boolcsi3 splitters): Use - cc_reg_not_cr0_operand constraint. - (booldi3, boolcdi3 splitters): Same. - -2002-02-23 Aldy Hernandez - - * config/rs6000/altivec.h: Add extra level of parentheses on casts. - -2002-02-22 David Edelsohn - - * gcc.c (init_gcc_spec): Do not link with static libgcc.a if - gcc invoked with -shared-libgcc. - -2002-02-22 Jakub Jelinek - - PR c++/5748 - * stmt.c (expand_anon_union_decl): Set TREE_USED on the anon union - decl if any of elements was TREE_USED. - -2002-02-22 Alexandre Oliva - - * config/sparc/sol2.h: Don't include sys/mman.h. - * config/sparc/sparc.c (arith_operand): Use SMALL_INT32. - (arith_4096_operand): Don't throw high bits away. - (const64_operand): Take sign extension of CONST_INTs into account. - (const64_high_operand, sparc_emit_set_const32): Likewise. - (GEN_HIGHINT64): Likewise. - (sparc_emit_set_const64_quick1): Likewise. - (const64_is_2insns): Likewise. - (print_operand): Use trunc_int_for_mode for sign extension. - * config/sparc/sparc.h (SMALL_INT32): Likewise. - * config/sparc/sparc.md (movqi): Sign-extend CONST_DOUBLE - chars. Assume CONST_INT is already properly sign-extended. - (movdi split): Sign-extend each SImode part. - (andsi3 split): Don't mask high bits off, so that result - remains properly sign-extend. - (iorsi3 split): Likewise. - (xorsi3 split): Likewise. - -2002-02-22 Richard Sandiford - - * fold-const.c (fold): Fix typo in comments. - -2002-02-21 Diego Novillo - - * Makefile.in (langhooks.o): Update dependencies. - -2002-02-21 Diego Novillo - - * langhooks.c: Include flags.h. - -2002-02-21 Aldy Hernandez - - * testsuite/gcc.dg/attr-alwaysinline.c: New. - - * c-common.c (c_common_post_options): Set inline trees by - default. - - * doc/extend.texi (Function Attributes): Document always_inline - attribute. - Update documentation about inlining when not optimizing. - - * cp/decl.c (duplicate_decls): Merge always_inline attribute. - - * cp/tree.c (cp_cannot_inline_tree_fn): Do not inline at -O0 - unless DECL_ALWAYS_INLINE. - - * c-objc-common.c (c_cannot_inline_tree_fn): Do not inline at -O0 - unless DECL_ALWAYS_INLINE. - (c_disregard_inline_limits): Disregard if always_inline set. - - * langhooks.c (lhd_tree_inlining_disregard_inline_limits): - Disregard if always_inline set. - (lhd_tree_inlining_cannot_inline_tree_fn): Do not inline at -O0 - unless DECL_ALWAYS_INLINE. - - * attribs.c (handle_always_inline_attribute): New. - (c_common_attribute_table): Add always_inline. - - * config/rs6000/altivec.h: Add prototypes for builtins - requiring the always_inline attribute. - -2002-02-21 Eric Christopher - - * expmed.c (store_bit_field): Try to simplify the subreg - before generating a new one when when the mode size of - value is less than maxmode. - -2002-02-21 Richard Henderson - - * emit-rtl.c (offset_address): Use simplify_gen_binary rather - than gen_rtx_PLUS to form the sum. - * explow.c (force_reg): Rearrange to not allocate new pseudo - when force_operand returns a register. - * expr.c (expand_assignment): Allow offset_rtx expansion to - return a sum. Do not force addresses into registers. - (expand_expr): Likewise. - * simplify-rtx.c (simplify_gen_binary): Use simplify_plus_minus - to canonicalize arithmetic that didn't simpify. - (simplify_plus_minus): New argument force; update - all callers. Don't split CONST unless we can do something with it, - and wouldn't lose the constness of the operands. - - * config/i386/i386.c (legitimize_pic_address): Recognize UNSPECs - that we generated earlier. - -2002-02-21 Tom Tromey - - * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Removed. - (output_line_info): Use constant `1', with a long explanatory - comment. - * system.h (DWARF_LINE_MIN_INSTR_LENGTH): Poison. - -Thu Feb 21 22:43:44 2002 J"orn Rennecke - - * jump.c (redirect_jump): If old label has no UID, don't try to - delete it. - -Thu Feb 21 21:17:21 2002 J"orn Rennecke - - * sh.md (insv): Provide byte offsets for gen_rtx_SUBREG. - If input is constant, do shifts at compile time. - -2002-02-21 Joseph S. Myers - - * doc/extend.texi: Fix some more overfull hboxes. - -2002-02-21 Jakub Jelinek - - PR optimization/4994 - * config/i386/i386.md (movsi_1, movsf_1): Support MMX -> MMX - register moves. - -2002-02-21 Jakub Jelinek - - PR c++/4574 - * expr.h (expand_and): Add mode argument. - * expmed.c (expand_and): Add mode argument. - (expand_mult_highpart_adjust, emit_store_flag): Adjust callers. - * expr.c (store_field, expand_expr, do_store_flag): Likewise. - * except.c (expand_builtin_extract_return_addr): Likewise. - * config/alpha/alpha.c (alpha_initialize_trampoline): Likewise. - * config/sparc/sparc.c (sparc_initialize_trampoline): Likewise. - * config/c4x/c4x.h (INITIALIZE_TRAMPOLINE): Likewise. - Use GEN_INT (x) instead of gen_rtx (CONST_INT, VOIDmode, x). - * config/c4x/c4x.md: Use GEN_INT (x) instead of - gen_rtx (CONST_INT, VOIDmode, x). - -2002-02-21 Jakub Jelinek - - PR c/4697: - * stmt.c (warn_if_unused_value): Move side effects test once more. - -2002-02-20 Torbjorn Granlund - - * config/avr/avr.md: Add more patterns for mized-mode add and subtract - (addsi3_zero_extend, subhi3_zero_extend1, subsi3_zero_extend). - -Thu Feb 21 16:20:46 2002 Alexandre Oliva - - * rtlanal.c (replace_rtx): Don't make a CONST_INT the operand of - SUBREG or ZERO_EXTEND. - -Thu Feb 21 15:35:46 2002 J"orn Rennecke - - * sh.h (current_function_anonymous_args): Remove. - (SETUP_INCOMING_VARARGS): Don't set it - just check that one - of current_function_varargs and current_function_stdarg is set. - * sh.c (sh_expand_prologue): Check current_function_varargs / - current_function_stdarg / TARGET_SH5 instead of - current_function_anonymous_args. - - * sh64.h (TARGET_VERSION): Define. - -2002-02-20 David Edelsohn - - * config/rs6000/rs6000.h (EPILOGUE_USES): Conditionalize - VRSAVE_REGNO on TARGET_ALTIVEC. - -2002-02-20 Alan Modra - - * config/rs6000/rs6000.c (includes_lshift_p): Mask irrelevant - bits of SImode const_int. - (includes_rshift_p): Likewise. - (print_operand): Call mask_operand and mask64_operand with correct - mode. - (rs6000_output_function_epilogue): Pad traceback table to word. - * config/rs6000/rs6000.h (MASK_64BIT): Correct comment. - (EXTRA_CONSTRAINT, 'S' and 'T'): Call mask_operand and - mask64_operand with correct mode. - (FUNCTION_ARG_REGNO_P): Correct parentheses. - -2002-02-20 Jakub Jelinek - - PR debug/4461 - * varasm.c (get_pool_constant_mark): New. - * rtl.h (get_pool_constant_mark): Add prototype. - * dwarf2out.c (mem_loc_descriptor): A pool constant cannot - be represented if it has not been output. - -2002-02-20 Alexandre Oliva - - * combine.c (do_SUBST): Sanity check substitutions of - CONST_INTs, and reject them in SUBREGs and ZERO_EXTENDs. - (subst): Simplify SUBREG or ZERO_EXTEND instead of SUBSTing a - CONST_INT into its operand. - (known_cond): Likewise, for ZERO_EXTEND. - * simplify-rtx.c (simplify_unary_operation): Fix condition to - allow for simplification of wide modes. Reject CONST_INTs in - ZERO_EXTEND when their actual mode is not given. - -2002-02-20 Alexandre Oliva - - * c-decl.c (pushdecl): If no global declaration is found for an - extern declaration in block scope, try a limbo one. - -2002-02-20 Jakub Jelinek - - PR c++/4401 - * c-common.c (pointer_int_sum): Moved from... - * c-typeck.c (pointer_int_sum): ...here. - * c-common.h (pointer_int_sum): Add prototype. - -2002-02-20 Jakub Jelinek - - PR c++/5713 - * c-decl.c (duplicate_decls): Return 0 if issued error about - redeclaration. - -2002-02-20 Roger Sayle - Jakub Jelinek - - PR c/4389 - * tree.c (host_integerp): Ensure that the constant integer is - representable in a HOST_WIDE_INT or an unsigned HOST_WIDE_INT - when pos is zero or nonzero respectively. Clarify comment. - * c-format.c (check_format_info_recurse): Fix host_integerp - usage; the pos argument should be zero when assigning to a - signed HOST_WIDE_INT. - -2002-02-20 Richard Henderson - - * config/i386/i386.c (ix86_expand_vector_move): Use the mode - of the operand, rather than assuming TImode. - (ix86_expand_binop_builtin): Cope with commutative patterns - using nonimmediate_operand for both operands. - (ix86_expand_timode_binop_builtin): Likewise. - (ix86_expand_store_builtin): Validate operand 1. - (ix86_expand_unop1_builtin): Likewise. - -2002-02-20 Philip Blundell - - PR 5705 - * config/arm/arm.h (HARD_REGNO_RENAME_OK): New macro. - -2002-02-20 Richard Henderson - - PR c/5615 - * expr.h (ARGS_SIZE_TREE): Convert size.var to ssizetype. - -2002-02-20 Tom Tromey - - * config/fr30/fr30.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. - * config/sh/sh.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. - * config/pj/pj.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. - * config/cris/cris.h (DWARF_LINE_MIN_INSTR_LENGTH): Removed. - * dwarf2out.c (DWARF_LINE_MIN_INSTR_LENGTH): Define - unconditionally. - -Wed Feb 20 00:03:25 EST 2002 Alan Matsuoka - - * config/rs6000/rs6000.h (LEGITIMATE_OFFSET_ADDRESS_P): Look - for (const_int 0) in X not just INTVAL. - -2002-02-20 Joseph S. Myers - - * doc/extend.texi: Avoid or reduce overfull hboxes. - -2002-02-20 Diego Novillo - - * expmed.c (store_bit_field): Do not store bit fields using SUBREG - operations if the field does not start at a mode boundary. - -2001-02-20 Joel Sherrill - - * config/a29k/rtems.h, config/arm/rtems-elf.h, config/h8300/rtems.h, - config/mips/rtems.h: Use new style of -Asystem= rather than -Asystem(). - Also done for -Acpu and -Amachine. - -2002-02-20 Neil Booth - - * cppinit.c (init_dependency_output): Take deps output file - from -o if none given with -MF. Suppress normal output. - * gcc.c (cpp_unique_options): Have -M and -MM imply -E. - * doc/cpp.texi, doc/invoke.texi: Update. - -2002-02-19 Zack Weinberg - - * toplev.c (output_quoted_string): Write unprintable - characters with octal escapes. - -2002-02-19 David Edelsohn - - * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Set - really_call_used[VRSAVE_REGNO] if not Altivec. - -2002-02-19 Alan Modra - - * config/rs6000/rs6000.c (u_short_cint_operand): Mask op with - MODE_MASK. - (constant_pool_expr_1): Fix formatting. - (rs6000_legitimize_reload_address): Likewise. - -Tue Feb 19 20:13:57 2002 Richard Kenner - - * config/sparc/sparc.md (nonlocal_goto): Use hard_frame_pointer_rtx - now that we have one. - -2002-02-19 Zack Weinberg - - * tree.h (struct tree_common): Remove aux. Add unused_0 at - end of first block of bitfields (which was only seven bits); - rename dummy to unused_1; remove comment which is no longer true. - -2002-02-19 Gaute B Strokkenes - - * doc/c-tree.texi (Classes, TYPE_BINFO): Fix typo. - -2002-02-19 Philip Blundell - - PR 5399 - * config/arm/arm.h (THUMB_LEGITIMATE_CONSTANT_P): Accept anything - if generating PIC. - - PR 5054 - * config/arm/arm.md (call_insn) [TARGET_THUMB]: Use - arm_is_longcall_p rather than inspecting call-type cookie - directly. - (call_value_insn) [TARGET_THUMB]: Likewise. - -2002-02-19 Graham Stott - - * config/i386/i386.c (ix86_expand_builtin): Fix typo. - -2002-02-19 David Edelsohn - - * config/rs6000/linux64.h (LINK_OS_LINUX_SPEC): Look in /lib64. - ({STARTFILE,ENDFILE}_LINUX_SPEC): Define. - (FP_SAVE_INLINE): Delete. - - * config/rs6000/sysv4.h (ENDFILE_SPEC): Add crtsaveres.o. - * config/rs6000/eabi.asm: Remove ABI save restore routines. - * config/rs6000/t-ppccomm: Build crtsavres.o. - * config/rs6000/crtsavres.asm: New file. - -2002-02-19 Philip Blundell - - * config/arm/arm.c (use_return_insn): Don't reject interrupt - functions. - (arm_compute_save_reg_mask): Save LR for interrupt functions too. - (output_return_instruction): Allow interrupt functions to return with - ldmfd sp!, {... pc}^. Use LDR to restore any single register. - (arm_expand_prologue): Subtract 4 before stacking LR in an - interrupt function. - -2002-02-19 Philip Blundell - - * config/arm/arm.c (arm_encode_call_attribute): Operate on any - decl, not just FUNCTION_DECL. - (legitimize_pic_address): Handle local SYMBOL_REF like LABEL_REF. - (arm_assemble_integer): Likewise. - * config/arm/arm.h (ARM_ENCODE_CALL_TYPE): Allow any decl to be - marked local. - -2002-02-19 matthew green - - * config.gcc (sparc-*-netbsdelf*): Enable target. - (sparc64-*-netbsd*): New target. - * config/sparc/netbsd-elf.h: New file. - * config/sparc/t-netbsd64: New file. - -2002-02-19 Gaute B Strokkenes - - * doc/rtl.texi (Flags, MEM_SCALAR_P): Fix typo. - -2002-02-19 Ryan T. Sammartino - - * doc/invoke.texi: explicitly list the style guidelines that - -Weffc++ checks for. - -Tue Feb 19 12:37:23 CET 2002 Jan Hubicka - - * regmove.c (regmove_optimize): Avoid increasing of register pressure. - -2002-02-19 Neil Booth - - PR other/5718 - * gcc.c (cpp_unique_options): Treat -o as indicating object file - only if not -E. If -E, pass -o through to the preprocessor. - -2002-02-19 Kazu Hirata - - * config/h8300/h8300.h (REGNO_REG_CLASS): Replace a literal - register number with an appropriate macro. - -2002-02-19 Bryce McKinlay - - * doc/rtl.texi (Constants): Close @code tag. - -2002-02-19 Aldy Hernandez - - * config/i386/i386.md ("mmx_uavgv8qi3"): Use const_vector. - ("mmx_uavgv4hi3"): Same. - ("pmulhrwv4hi3"): Same. - - * tree-inline.c (walk_tree): Handle vectors. - - * c-common.c (constant_expression_warning): Handle vectors. - (overflow_warning): Same. - - * sched-deps.c (sched_analyze_2): Handle vectors. - - * rtlanal.c (rtx_unstable_p): Handle vectors. - (rtx_varies_p): Same. - (count_occurrences): Same. - (regs_set_between_p): Same. - (modified_between_p): Same. - (modified_in_p): Same. - (volatile_insn_p): Same. - (volatile_refs_p): Same. - (side_effects_p): Same. - (may_trap_p): Same. - (inequality_comparisons_p): Same. - (replace_regs): Same. - (computed_jump_p_1): Same. - - * rtl.c (DEF_MACHMODE): Change all definitions to accept 8th - argument. - (inner_mode_array): New. - (copy_rtx): Handle vectors. - (copy_most_rtx): Same. - (rtx_equal_p): Same. - (get_mode_alignment): Adjust for vectors. - - * resource.c (mark_referenced_resources): Handle vectors. - (mark_set_resources): Same. - - * reload1.c (eliminate_regs): Handle vectors. - (elimination_effects): Same. - (scan_paradoxical_subregs): Same. - - * reload.c (subst_reg_equivs): Handle vectors. - - * regrename.c (scan_rtx): Handle vectors. - - * regclass.c (reg_scan_mark_refs): Handle vectors. - - * recog.c (find_single_use_1): Handle vectors. - - * local-alloc.c (equiv_init_varies_p): Handle vectors. - (contains_replace_regs): Same. - (memref_referenced_p): Same. - - * integrate.c (copy_rtx_and_substitute): Handle vectors. - (subst_constants): Same. - - * genattrtab.c (attr_copy_rtx): Handle vectors. - (encode_units_mask): Same. - (clear_struct_flag): Same. - (count_sub_rtxs): Same. - - * gcse.c (want_to_gcse_p): Handle vectors. - (oprs_unchanged_p): Same. - (hash_expr_1): Same. - (oprs_not_set_p): Same. - (expr_killed_p): Same. - (compute_transp): Same. - (store_ops_ok): Same. - - * function.c (purge_addressof_1): Do not allow paradoxical subregs - of vectors. - (fixup_var_refs_1): Same. - (instantiate_virtual_regs_1): Same. - - * fold-const.c (operand_equal_p): Handle vectors. - (fold): Same. - (rtl_expr_nonnegative_p): Same. - - * flow.c (mark_used_regs): Handle vectors. - - * df.c (df_uses_record): Handle vectors. - - * cselib.c (cselib_subst_to_values): Handle vectors. - (cselib_mem_conflict_p): Same. - (hash_rtx): Same. - - * cse.c (canon_reg): Handle vectors. - (fold_rt): Same. - (cse_process_notes): Same. - (count_reg_usage): Same. - (canon_hash): Same. - - * alias.c (nonlocal_mentioned_p): Add case for CONST_VECTOR. - - * combine.c (mark_used_regs_combine): Add case for CONST_VECTOR. - - * emit-rtl.c (init_emit_once): Generate const0_rtx for vectors. - (gen_rtx): Handle CONST_VECTOR. - (gen_const_vector_0): New. - (copy_rtx_if_shared): CONST_VECTORs can be shared. - (reset_used_flags): Same. - (copy_insn_1): Same. - (initializer_constant_valid_p): Handle VECTOR_CST. - - * doc/c-tree.texi (Expression trees): Document VECTOR_CST. - - * doc/rtl.texi (Constants): Document const_vector. - (CONST0_RTX): Update for vectors. - (RTL sharing): Same. - - * print-tree.c (print_node): Add case for VECTOR_CST. - - * tree.h (TREE_VECTOR_CST_ELTS): New. - (struct tree_vector): New. - (union tree_node): Add vector node. - (build_vector): Add prototype. - - * tree.def (VECTOR_CST): New. - - * tree.c (build_vector): New. - - * expmed.c (make_tree): Handle CONST_VECTOR. - - * rtl.h (CONSTANT_P): CONST_VECTORs are constants too. - (CONST_VECTOR_ELT): New. - (CONST_VECTOR_NUNITS): New. - - * machmode.h (GET_MODE_INNER): New. - (DEF_MACHMODE): Accept 8th arg. - - * machmode.def: Add 8th argument for vector inner mode. - Add inner vector modes for vectors. - - * rtl.def (VEC_CONST): Remove. - (CONST_VECTOR): New. - - * expr.c (clear_storage): Allow vectors. - (is_zeros_p): Handle VECTOR_CST. - - * varasm.c (output_constant_pool): Handle vectors. - (rtx_const): Add veclo and vechi fields. - (kind): Add RTX_VECTOR. - (decode_rtx_const): Add case for vector. - - * config/rs6000/rs6000-protos.h: Add zero_constant. - - * config/rs6000/rs6000.c (rs6000_emit_move): Handle vector - constants. Force easy vector constants into memory. - (easy_vector_constant): New. - (emit_easy_vector_constant): New. - (rs6000_legitimize_reload_address): Do not generate bad reloads on - darwin. - - * config/rs6000/rs6000.md ("altivec_lvx"): Reflect what - instruction does. - ("altivec_lvxl"): Same. - (altivec_lvebx): Same. - (altivec_lvehx): Same. - (altivec_lvewx): Same. - ("*movv4si_const0"): New. - ("*movv4sf_const0"): New. - ("*movv8hi_const0"): New. - ("*movv16qi_const0"): New. - -2002-02-18 Kazu Hirata - - * config/h8300/h8300.c (notice_update_cc): Use - cc_status.value2. - -2002-02-18 Kazu Hirata - - * config/h8300/h8300.md (divmod patterns): Change the - constraints for operands[1] to register_operand. - -2002-02-18 Kazu Hirata - - * config/h8300/h8300-protos.h: Remove the prototype for - p_operand. - * config/h8300/h8300.c (p_operand): Remove. - * config/h8300/h8300.md: Replace p_operand with - const_int_operand. - -2002-02-18 Philip Blundell - - * config/arm/arm.c (arm_compute_save_reg_mask): Fix typo in - comment. - (output_return_instruction): Allow use of LDR to unstack - return addresss even for interrupt handlers or when - interworking. If compiling for ARMv5, use interworking-safe - return instructions by default. Remove duplicated code and - lengthy "strcat" sequences. - -2002-02-18 Franz Sirl - - * config/rs6000/sysv4.h (STARTFILE_SPEC): Use crtbeginT.o for -static. - (LINK_EH_SPEC): Define. - * config/rs6000/t-ppccomm (EXTRA_MULTILIB_PARTS): Add crtbeginT.o. - -2002-02-18 Ulrich Weigand - - * config/s390/s390.c (s390_emit_prologue): Do not set the - frame_related flag for call-clobbered registers. - -Mon Feb 18 15:07:35 CET 2002 Jan Hubicka - - * i386.c (classify_argument): Properly classify SSE/MMX modes and VOIDmode. - (construct_container): Fix handling of SSE operands. - (ix86_expand_builtin): Fix handling of 64bit pointers. - (mmx_maskmovq_rex): New pattern. - -Mon Feb 18 11:55:55 CET 2002 Jan Hubicka - - * regrename.c (kill_set_value): Handle subregs properly. - -2002-02-18 David Billinghurst - - * objc/objc-act.c (handle_impent): Remove leading '*' - from objc_class_name. - -2002-02-17 Richard Henderson - - * config/alpha/alpha.c (some_small_symbolic_operand, - some_small_symbolic_operand_1, split_small_symbolic_operand, - split_small_symbolic_operand_1): Rename from *symbolic_mem_op*. - Handle small SYMBOL_REFs anywhere, not just inside memories. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - * config/alpha/alpha.md (small symbolic operand splitter): Update. - -2002-02-17 Roland McGrath - - * config.gcc (powerpc-*-gnu-gnualtivec*, - powerpc-*-gnu*, powerpc64-*-gnu*): New configurations. - * config/rs6000/gnu.h: New file. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): - Grok "gnu" in rs6000_abi_name. - (ASM_SPEC, CC1_SPEC, LINK_START_SPEC, LINK_OS_SPEC, - CPP_ENDIAN_SPEC, CPP_SPEC, STARTFILE_SPEC, LIB_SPEC, ENDFILE_SPEC): - Grok -mcall-gnu analogous to -mcall-linux et al. - (LIB_GNU_SPEC, STARTFILE_GNU_SPEC, ENDFILE_GNU_SPEC, - LINK_START_GNU_SPEC, LINK_OS_GNU_SPEC, CPP_OS_GNU_SPEC): New macros. - (SUBTARGET_EXTRA_SPECS): Add *_os_gnu specs using them. - -2002-02-17 Jakub Jelinek - - PR c/3444: - * c-typeck.c (build_binary_op) [BIT_XOR_EXPR]: Remove explicit - shortening. - -2002-02-17 Philipp Thomas - - * config/cris/cris.h: Undefine STARTFILE_SPEC and - ENDFILE_SPEC before (re)defining them. - -2002-02-17 Kazu Hirata - - * config/h8300/h8300.c: Fix formatting. - * config/h8300/h8300.h: Likewise. - -2002-02-17 Philipp Thomas - - * doc/tm.texi: Explain why empty strings should not be - marked for translation. - -2002-02-17 Philipp Thomas - - * final.c (output_operand_lossage): Changed to accept - printf style arguments. Change calls where necessary. - * output.h (output_operand_lossage): Change declaration - accordingly. Update copyright. - * config/arc/arc.c config/fr30/fr30.c config/m32r/m32r.c - config/m88k/m88k.c : Adapt all calls to output_operand_lossage. - Update copyright date where necessary. - - * config/i386/i386.c (print_operand): Likewise. Remove use of - sprintf. - - * config/cris/cris.c (cris_operand_lossage): Likewise. - Rename parameter so that exgettext recognizes it as - translatable message. - (LOSE_AND_RETURN): Rename parameter to msgid. - -2002-02-17 Kazu Hirata - - * config/h8300/h8300.h (CONDITIONAL_REGISTER_USAGE): Replace a - hard coded register number with an appropriate macro. - (HARD_REGNO_MODE_OK): Likewise. - (ARG_POINTER_REGNUM): Likewise. - (STATIC_CHAIN_REGNUM): Likewise. - (RETURN_ADDRESS_POINTER_REGNUM): Likewise. - * config/h8300/h8300.md (define_constants): Define more - register numbers. - -2002-02-17 Philipp Thomas - - * config/i386/i386.h: Don't mark empty strings for translation. - -2002-02-16 H.J. Lu - - * config/mips/linux.h (ASM_PREFERRED_EH_DATA_FORMAT): New. - -2002-02-16 Zack Weinberg - - * cppinit.c (merge_include_chains): Check for brack being - NULL before attempting to merge it with qtail. - -2002-02-16 Andrew Cagney - - * config/rs6000/netbsd.h (PREFERRED_DEBUGGING_TYPE): Set to - DBX_DEBUG. - -2002-02-16 John David Anglin - - * pa/t-pa, pa/t-pro, som.h: Revert last patch. - -2002-02-16 John David Anglin - - * pa/t-pa (LIB2FUNCS_EXTRA): Don't build lib2funcs.asm. - * pa/t-pro (LIB2FUNCS_EXTRA): Likewise. - * som.h (DO_GLOBAL_DTORS_BODY): Delete define. - -Sat Feb 16 13:48:50 2002 Richard Kenner - - * config/alpha/alpha.md (*movsi_nt_vms_nofix): Was *movsi_nt_vms; - now only if !TARGET_FIX. - (*movsi_nt_vms_fix): New pattern. - -2002-02-16 Douglas B Rupp - - * config/alpha/alpha.c: Implement null frame procedure types on VMS. - (alpha_procedure_type): Replaces alpha_is_stack_procedure. - (alpha_sa_mask, alpha_sa_size): Reflect above change. - (alpha_pv_save_size, alpha_expand_prologue): Likewise. - (alpha_start_function, alpha_expand_epilogue): Likewise. - (unicosmk_gen_dsib): Likewise. - -Sat Feb 16 13:39:09 2002 Richard Kenner - - * expr.c (store_constructor): Handle target REG case for ARRAY_TYPE. - -2002-02-16 Ulrich Weigand - - * config/s390/s390.c (pool_stop_uid, other_chunk, far_away, - check_and_change_labels, s390_final_chunkify): Delete. - (s390_split_branches, s390_chunkify_pool): New functions. - (s390_function_prologue): Call them. - - * config/s390/s390.h (S390_REL_MAX): Delete. - (S390_CHUNK_MAX, S390_CHUNK_OV): Adjust values. - - * config/s390/s390.md (cjump, icjump, jump): Fix length - attribute calculation. - - -2002-02-15 David Edelsohn - - * config/rs6000/linux64.h (STRIP_NAME_ENCODING): Delete. - * config/rs6000/ppc-asm.h (JUMP_TARGET): Define for powerpc64. - -2002-02-15 John David Anglin - - * gcc.c (init_gcc_specs): Revert patch from 2002-02-15. - * config/pa/pa-linux.h (LIB_SPEC): Likewise. - * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Likewise. - -2002-02-15 Richard Sandiford - - * c-decl.c (grokdeclarator): Prevent a segfault on unnamed decls. - -2002-02-15 Richard Sandiford - - * reload.c (find_dummy_reload): Check that an output register - is valid for its mode. - -2002-02-14 Alexandre Oliva - - * combine.c (known_cond): After replacing the REG of a SUBREG, try - to simplify it. - - * function.c (assign_parms): Demote promoted argument passed by - transparent reference. - -2001-02-14 Joel Sherrill - - * config/arm/rtems-elf.h, config/h8300/rtems.h: Removed redundant - -Acpu() and -Amachine() to eliminate warnings. - -2002-02-14 Ulrich Weigand - - * config/s390/linux.h (ASM_OUTPUT_ALIGNED_BSS): New. - -2002-02-14 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype for - const_costs. - * config/h8300/h8300.c (const_costs): Treat SET as a little - more expensive operation. - * config/h8300/h8300.h (DEFAULT_RTX_COSTS): Update the - reference to const_costs. - -2002-02-14 Hans-Peter Nilsson - - * config.gcc (c4x-*-rtems*): Fix typo in tm_file setting. - -2002-02-14 Jakub Jelinek - - PR c/5503: - * c-decl.c (duplicate_decls): If builtin type has TYPE_ARG_TYPES NULL, - use arguments from newtype. - -2002-02-13 Eric Christopher - - * config/mips/mips.c (override_options): Add check for march/mipsX - on the same command line. Fix error message in cpu processing. - Remove architecture and ISA checks. - -2002-02-14 Aldy Hernandez - - * config/rs6000/darwin.h (ROUND_TYPE_ALIGN): Adjust for vectors. - - * config/rs6000/sysv4.h (ROUND_TYPE_ALIGN): Add MAX. - -2002-02-14 Aldy Hernandez - - * config/rs6000/rs6000.md ("*movv4si_internal"): Add m<-r and r<-r - alternatives. - ("*movv8hi_internal1"): Same. - ("*movv16qi_internal1"): Same. - ("*movv4sf_internal1"): Same. - - * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Do - not push_reload for altivec modes. - -2002-02-13 Joel Sherrill - - * config.gcc (a29k-*-rtems), config/a29k/rtems.h: General cleanup across - all RTEMS targets including removal of #includes from config/*/rtems*.h - file and adding them to tm_file setting. Added xm_defines=POSIX to - many targets. - * config.gcc (c4x-*-rtems), config/c4x/rtems.h: Ditto. - * config.gcc (h8300-*-rtems), config/h8300/rtems.h: Ditto. - * config.gcc (hppa1.1-*-rtems), config/pa/rtems.h: Ditto. - * config.gcc (i960-*-rtems), config/i960/rtems.h: Ditto. - * config.gcc (m68k-*-rtems*), config/m68k/rtems.h, - config/m68k/rtemself.h: Ditto. - * config.gcc (mips*-*-rtems*), config/mips/rtems.h, - config/mips/rtems64.h: Ditto. - * config.gcc (powerpc-*-rtems*), config/rs6000/rtems.h: Ditto. - * config.gcc (sh-*-rtems*), config/sh/rtems.h, config/sh/rtemself.h: - Ditto. - * config.gcc (sparc-*-rtems*), config/sparc/rtems.h, - config/sparc/rtemself.h: Ditto. - * config.gcc (v850-*-rtems*), config/v850/rtems.h: Ditto. - * config.gcc (arm-rtems), config/arm/rtems-elf.h: Ditto plus moved - arm-rtems stanza closer to other arm-elf targets and made arm-rtems - more like arm-elf. - * config.gcc (i[34567]86-*-rtems*), config/i386/djgpp-rtems.h, - config/i386/rtems.h, config/i386/rtemself.h: Ditto plus i386-rtemself - target made more similar to i386-elf. - * config/i386/t-rtems-i386: Added soft float support and multilibs. - * config/m68k/t-m68kbare: Add 68040 and 68060 as multilib alternatives to - be similar to config/m68k/t-m68kelf. - * gthr-rtems.h: Encapsulate with extern "C" for C++. - -Wed Feb 13 23:41:15 CET 2002 Jan Hubicka - - * regmove.c (kill_value): Handle subregs. - -Wed Feb 13 23:34:30 CET 2002 Jan Hubicka - - * i386.md (mul patterns): Allow memory operand to be first; - add expanders where needed; fix constraints. - (min?f_nonieee, max?f_nonieee, SSE TImode patterns): - Allow memory operand to be the first. - - * i386.c (ix86_prepare_fp_compare_args): Fix condition for swapping - operands. - -2002-02-13 Jakub Jelinek - - PR c/5681: - * expr.c (safe_from_p): Pass VOIDmode to true_dependence instead of - GET_MODE (x). - -2002-02-13 Jakub Jelinek - - PR optimization/5547: - * config/i386/i386.c (i386_simplify_dwarf_addr): Simplify - all valid IA-32 address modes involving non-scaled %ebx and - GOT/GOTOFF as displacement. - -2002-02-13 Ulrich Weigand - - * config/s390/s390.c (s390_final_chunkify): Re-run shorten_branches - after emitting ltorg insns. - - * config/s390/s390.md (*cmpdf_ccs_0, *cmpdf_ccs, *cmpsf_ccs_0, - *cmpsf_ccs, truncdfsf2_ieee, *adddf3, *addsf3, *subdf3, *subsf3, - *muldf3, *mulsf3, *divdf3, *divsf3, *negdf2, *negsf2, *absdf2, - *abssf2): Fix "op_type" attribute. - -2002-02-13 Douglas B Rupp - - * mkconfig.sh: Avoid using a subshell redirect. - ($output.T): Change to $(output)T. - (ENABLE_NLS): Remove unneeded undef. - - * config/alpha/vms.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX): Define. - * config/alpha/x-vms (libsubdir): Define. - - * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Handle - register frame procedures. Optimize retrieving context. - - * config/alpha/t-vms (MULTILIB_OPTIONS): Define. - (MULTILIB_DIRNAME, LIBGCC, INSTALL_LIBGCC): Likewise. - * config/alpha/vms.h (ASM_FILE_START): Write .arch directive. - -Wed Feb 13 09:45:08 2002 Richard Kenner - - * alias.c (find_base_term, case ZERO_EXTEND, case SIGN_EXTEND): - Make same change as for find_base_value. - -2002-02-13 Kazu Hirata - - * config/h8300/h8300.h (MODES_TIEABLE_P): Accept a combination - of QImode and SImode. - -2002-02-13 Kazu Hirata - - * config/h8300/h8300.c (h8300_adjust_insn_length): Correct the - length computation of movsi. - * config/h8300/h8300.md (movsi_h8300hs): Correct the length. - -2002-02-13 Kazu Hirata - - * config/h8300/h8300.md (subqi3): Tighten the predicate for - operands[2] to register_operand. - -Wed Feb 13 10:35:56 CET 2002 Jan Hubicka - - * i386.md (fop_*_comm_*): allow nonimmediate in the first operand. - -2002-02-12 Aldy Hernandez - - * config/rs6000/rs6000.md: Use predicate altivec_register_operand - for altivec_lvx* and altivec_stvx*. - ("*movv4si_internal"): Add constraint for loading from GPRs. - ("*movv8hi_internal1"): Same. - ("*movv16qi_internal1"): Same. - ("*movv4sf_internal1"): Same. - - * config/rs6000/rs6000.c (altivec_register_operand): New. - - * config/rs6000/rs6000.h (PREDICATE_CODES): Add - altivec_register_operand. - -2002-02-13 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_assemble_integer) : Don't - handle SYMBOL_REF. - -2002-02-13 Stan Shebs - - * c-typeck.c (digest_init): Handle vectors. - (really_start_incremental_init): Same. - (pop_init_level): Same. - (process_init_element): Same. - - * varasm.c (output_constant): Same. - - * expr.c (clear_storage): Same. - (store_constructor): Same. - -2002-02-12 Eric Christopher - - * explow.c (hard_function_value): Add comment explaining - signed/unsigned comparison. - -2002-02-12 Jakub Jelinek - - * jump.c (never_reached_warning): Add finish argument. - If finish is NULL, stop on CODE_LABEL, otherwise stop before first - real insn after end. - * rtl.h (never_reached_warning): Adjust prototype. - * cse.c (cse_insn): Pass NULL as finish to never_reached_warning. - * cfgrtl.c (flow_delete_block): Pass b->end as finish to - never_reached_warning. - -2002-02-12 Graham Stott - - * config/hp/pa.h (GO_IF_LEGITIMATE_ADDRESS): Fix typos. - -2002-02-12 Kazu Hirata - - * config/h8300/h8300.c (shift_alg_hi): Improve the 15-bit - logical shifts on H8/300. - (shift_alg_si): Improve several shifts on H8/300. - (get_shift_alg): Likewise. - -2002-02-12 Graham Stott - - * config/pa/pa.c (compute_movstrsi_length): Fix typos. - -Tue Feb 12 10:12:56 2002 Richard Kenner - - * alias.c (find_base_value, case ZERO_EXTEND, case SIGN_EXTEND): - Handle #ifdef POINTERS_EXTEND_UNSIGNED. - -2002-02-11 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_assemble_integer) : Handle - non-CONST_INT through default_assemble_integer. - : Likewise, for non-CONST_INT, non-SYMBOL_REF. - : Abort for CONST_DOUBLE. - -2002-02-11 John David Anglin - - * gcc.c (init_gcc_specs): Add static libgcc to link when "-shared" - is specified. - * config/pa/pa-linux.h (LIB_SPEC): Delete. - * config/pa/pa32-linux.h (LINK_COMMAND_SPEC): Delete. - -2002-02-11 Andrew Haley - - * config/stormy16/stormy16.md (zero_extendqihi2): New. - -2002-02-11 Alexandre Oliva - - * regrename.c (regrename_optimize): Don't accept a - part-clobbered register if the replaced register is not part - clobbered. - - * calls.c (store_one_arg): In the non-BLKmode non-partial case, - take padding into account when computing the argument value. - - * config/sh/sh.h (FUNCTION_ARG_REGNO_P): Fix parenthesizing error. - - * combine.c (try_combine): Apply substitutions in - CALL_INSN_FUNCTION_USAGE too. - -2002-02-11 Aldy Hernandez - - * config/rs6000/rs6000.c (altivec_init_builtins): Handle - __builtin_altivec_abs*. - (bdesc_abs): New. - - * config/rs6000/rs6000.h (rs6000_builtins): Add - ALTIVEC_BUILTIN_ABS*. - - * config/rs6000/altivec.h: Use const char for builtins expecting - literals. - (vec_abs): New versions for C and C++. - (vec_abss): Same. - -2002-02-10 Kazu Hirata - - * config/h8300/h8300.h (INITIALIZE_TRAMPOLINE): Simplify by - using Pmode. - -2002-02-10 Kazu Hirata - - * config/h8300/h8300.h (STACK_POINTER_REGNUM): Use the - constant definition from h8300.md. - (FRAME_POINTER_REGNUM): Likewise. - * config/h8300/h8300.md (define_constants): Add FP_REG. - -2002-02-10 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Remove redundant code. - -2002-02-10 Kazu Hirata - - * config/h8300/h8300-protos.h: Remove the prototype for byte_reg. - * config/h8300/h8300.c (byte_reg): Make it static. - -2002-02-10 Richard Henderson - - PR c/5623 - * c-typeck.c (incomplete_type_error): Handle flexible array members. - -2002-02-10 Richard Henderson - - PR c++/5624 - * tree.c (append_random_chars): Don't abort if main_input_filename - does not exist. - -2002-02-10 Hans-Peter Nilsson - - * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): Disable. - -2002-02-10 Kazu Hirata - - * config/h8300/h8300.md (pushhi1_h8300): Correct the mode used. - (pushhi1): Likewise. - -2002-02-10 John David Anglin - - * pa.c (reg_before_reload_operand): Don't accept a SUBREG operand. - * pa.h (PREDICATE_CODES): Adjust codes for reg_before_reload_operand. - -2002-02-09 David O'Brien - - * config/sparc/freebsd.h(TARGET_DEFAULT): Add MASK_EPILOGUE setting and - remove MASK_VIS. - (ASM_CPU_DEFAULT_SPEC): Remove. Default setting is fine. - -2002-02-09 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Use sub.w to clear - a half of an SImode register on H8/300. - -Sat Feb 9 18:28:02 CET 2002 Jan Hubicka - - * i386.md (movdi_2): Add missing '!'. - -2002-02-09 Kazu Hirata - - * config/h8300/h8300.h: Fix formatting. Remove commented-out - definitions. - -2002-02-09 Kazu Hirata - - * config/h8300/h8300.md (length): Correct the distance valid - for the short branch. - -2002-02-09 Kazu Hirata - - * config/h8300/h8300.md (iorhi3): Tighten the predicates. - -2002-02-09 Alexandre Oliva - - * config/sh/sh.h (REGISTER_NATURAL_MODE): Save part-clobbered - registers in SImode. - (HARD_REGNO_CALL_PART_CLOBBERED) [TARGET_SHMEDIA32]: Set r18 as - part-clobbered. - - * config/sh/sh.c (expand_prologue): Fix mis-applied 2001-11-09's - patch. - - Contribute sh64-elf. - 2002-02-09 Alexandre Oliva - * config/sh/sh.c (TARGET_CANNOT_MODIFY_JUMPS_P): Define to... - (sh_cannot_modify_jumps_p): New function. - 2002-02-05 Alexandre Oliva - * config/sh/sh.c (TARGET_MS_BITFIELD_LAYOUT_P): Define to... - (sh_ms_bitfield_layout_p): New function. - 2002-02-04 Alexandre Oliva - Zack Weinberg - * config/sh/sh.h (TRAMPOLINE_ADJUST_ADDRESS): Use - expand_simple_binop instead of expand_binop. - 2002-02-03 Alexandre Oliva - * config/sh/sh.h (OVERRIDE_OPTIONS) [! TARGET_SH5]: Disable - use of .quad and .uaquad. - * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP, - TARGET_ASM_ALIGNED_DI_OP): Add comment pointing to the above. - 2002-01-24 Alexandre Oliva - * config/sh/sh.md (movdi_const, movdi_const_32bit, - movdi_const_16bit): Make sure all CONSTs have modes. - (sym2PIC): Ditto, but by adjusting all callers. - * config/sh/sh.c (calc_live_regs) [TARGET_SHCOMPACT]: Set pr_live - if the prologue calls the SHmedia argument decoder or register - saver. - 2002-01-24 Alexandre Oliva - * config/sh/sh.c (TARGET_ASM_UNALIGNED_DI_OP): Define. - (TARGET_ASM_ALIGNED_DI_OP): Likewise. - (sh_expand_epilogue): Don't emit USE of return target register. - (prepare_move_operands): Legitimize DImode PIC addresses. - (sh_media_register_for_return): Skip tr0, used to initialize the - PIC register. - (sh_expand_prologue): Remove explicit USE of return register. - (nonpic_symbol_mentioned_p): PC is non-PIC. Don't recurse in - CONST_DOUBLEs. UNSPEC_GOTPLT is PIC. - * config/sh/sh.h (ASM_OUTPUT_DOUBLE_INT): Removed, obsolete. - (OVERRIDE_OPTIONS): Don't disable PIC on SH5. - (EXTRA_CONSTRAINT_S): Use MOVI_SHORI_BASE_OPERAND_P instead of - EXTRA_CONSTRAINT_T. - (GOT_ENTRY_P, GOTPLT_ENTRY_P, GOTOFF_P, PIC_ADDR_P): New. - (MOVI_SHORI_BASE_OPERAND_P): New. - (NON_PIC_REFERENCE_P, PIC_REFERENCE_P): New. - (EXTRA_CONSTRAINT_T): Define in terms of them. - (OUTPUT_ADDR_CONST_EXTRA): Handle UNSPEC_GOTPLT. - * config/sh/sh.md (movsi_media, movsi_media_nofpu, - movdi_media, movdi_media_nofpu): Add SIBCALL_REGS class to - alternatives supporting TARGET_REGS. - (UNSPEC_GOTPLT): New constant. - (movdi split): Move incrementing of LABEL_NUSES... - (movdi_const, movdi_const_32bit): Here. Use - MOVI_SHORI_BASE_OPERAND_P instead of EXTRA_CONSTRAINT_T. - (movdi_const_16bit): New. - (call, call_value) [flag_pic]: Use GOTPLT. - (call_pop, call_value_pop): New expands. - (call_pop_compact, call_pop_rettramp): New insns. - (call_value_pop_compact, call_value_pop_rettramp): New insns. - (sibcall) [flag_pic]: Use GOT. - (builtint_setjmp_receiver): Remove bogus, unused expand. - (GOTaddr2picreg): Implement for SHcompact and SHmedia. - (*pt, *ptb, ptrel): New insns. - (sym2GOT): Handle DImode GOT. - (sym2GOTPLT, symGOTPLT2reg): New expands. - (sym2PIC): New expand. - (shcompact_return_tramp): Use GOTPLT to return trampoline. - (shcompact_return_tramp_i): Use return register explicitly. - * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SHMEDIA]: Don't - disable flag_reorder_blocks. - 2002-01-19 Alexandre Oliva - * config/sh/sh.md (sibcall_compact): Reorder return, uses and - clobbers, for clarity. - (sibcall_epilogue) [TARGET_SHCOMPACT]: Mark saving and - restoring of r0 in macl as MAYBE_DEAD. - 2002-01-18 Alexandre Oliva - * config/sh/sh.h (LONG_DOUBLE_TYPE_SIZE): Define. - * config/sh/sh.md (movv4sf_i, movv16sf_i): Fix uses of - alter_subreg all over. - (jump) [TARGET_SHMEDIA]: FAIL to create new jumps after - reload, instead of emitting instructions that would require - reloading. - (casesi_load_media): Add missing modes. - 2001-11-09 Alexandre Oliva - * config/sh/sh.c (sh_expand_prologue): Mark the PIC register - as used if the argument decoder is called. - 2001-08-28 Alexandre Oliva - * config/sh/sh.md (udivsi3, divsi3): Load libcall symbol name in - Pmode, then extend it to DImode if necessary. - 2001-08-28 Stephen Clarke - * config/sh/sh.h (LEGITIMATE_CONSTANT_P): Don't accept DFmode - constants in FPU-enabled SHmedia, let them be loaded from memory. - 2001-08-28 Alexandre Oliva - * config/sh/sh.md (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): - Adjust whitespace in assembly output templates. - 2001-08-28 Stephen Clarke - * config/sh/sh.md (movdicc_false, movdicc_true, movdicc): Adjust - mode of if_then_else. - 2001-08-04 Alexandre Oliva - * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): Override definition in - sh.h. - 2001-07-26 Andrew Haley - Joern Rennecke - * config/sh/sh64.h (CPP_DEFAULT_CPU_SPEC): New. - (SUBTARGET_CPP_PTR_SPEC): New. - (SUBTARGET_CPP_SPEC): Remove. - 2001-07-06 Chandrakala Chavva - * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1): - Fix typo in previous checkin. - 2001-07-11 Chandrakala Chavva - * config/sh/sh.h (MODES_TIEABLE_P): Fix redact indentations. - 2001-07-10 Chandrakala Chavva - Alexandre Oliva - * config/sh/sh.h (MODES_TIEABLE_P): Don't tie modes wider than - what single FP register can hold for SHmedia target. - 2001-07-06 Chandrakala Chavva - Alexandre Oliva - * config/sh/sh.md (movsf_media_nofpu+1, movdf_media_nofpu+1): - Do not split into SUBREG. - 2001-06-14 Alexandre Oliva - * config/sh/ushmedia.h, config/sh/sshmedia.h: Updated signatures - and added new functions as specified in SH5 ABI r9. - 2001-06-04 Alexandre Oliva - * config/sh/lib1funcs.asm (GCC_nested_trampoline): Align to an - 8-byte boundary. - 2001-06-03 Alexandre Oliva - * config/sh/sh.c (dump_table): Add const0_rtx in calls of - gen_consttable_4 and gen_consttable_8. Emit multiple labels - and consttable_window_ends. - 2001-06-03 Graham Stott - * config/sh/sh.md (movdi split): Remove unused variable last_insn. - 2001-05-16 Alexandre Oliva - * config/sh/sh.c (print_operand): Handle floating-point pair, - vector and matrix registers. - * config/sh/sh.h (REGISTER_MOVE_COST): Take floating-pointer - vector modes into account. - * config/sh/sh.md (movv2sf): Split move between registers into - movdf. - (movv4sf, movv16sf): Introduce insns that get split only after - reload. - * config/sh/shmedia.h: Fix Copyright dates. - * config/sh/ushmedia.h: Likewise. Move loop counter - declarations into conditionals that uses them. - (sh_media_FVADD_S, sh_media_FVSUB_S): Fix off-by-one error in - loop boundary. - * config/sh/sshmedia.h: Fix Copyright dates. - (sh_media_PUTCFG): Fix constraints. - 2001-05-12 Alexandre Oliva - * config/sh/sh.h (TARGET_PTRMEMFUNC_VBIT_LOCATION): Define to - ptrmemfunc_vbit_in_delta for SH5. - 2001-05-08 Alexandre Oliva - * config/sh/sh.h (TARGET_SWITCHES): Document -m5-*. - * invoke.texi: Likewise. - 2001-04-14 Alexandre Oliva - * config/sh/lib1funcs.asm (GCC_push_shmedia_regs, - GCC_push_shmedia_regs_nofpu, GCC_pop_shmedia_regs, - GCC_pop_shmedia_regs_nofpu): New global symbols. - * config/sh/t-sh64 (LIB1ASMFUNCS): Add them. - * config/sh/sh.h (SHMEDIA_REGS_STACK_ADJUST): New macro. - * config/sh/sh.c (calc_live_regs): Account for PR's saving in - compact function with nonlocal labels. - (sh_expand_prologue) [SHcompact]: Push SHmedia regs if needed. - (sh_expand_epilogue) [SHcompact]: Pop them when appropriate. - (initial_elimination_offset): Account for their stack space. - * config/sh/sh.md (shmedia_save_restore_regs_compact): New insn. - * config/sh/sh.md (movsi_media, movsi_media_nofpu, movqi_media, - movhi_media, movdi_media, movdi_media_nofpu, movdf_media, - movdf_media_nofpu, movsf_media, movsf_media_nofpu): Require at - least one of the operands to be a register. - (movv2sf): Likewise. Renamed to movv2sf_i. - (movdi, movdf, movv2sf, movv4sf, movv16sf, movsf): - prepare_move_operands() before emitting SHmedia insns. - 2001-04-03 Alexandre Oliva - * config/sh/crti.asm (init, fini) [__SH5__ && ! __SHMEDIA__]: - Don't save nor initialize r12. Don't mis-align the stack. - Pad the code with a nop. - * config/sh/crti.asm: Don't restore r12. Don't mis-align the - stack. - 2001-03-13 Alexandre Oliva - * gcc/longlong.h (__umulsidi3, count_leading_zeros) - [__SHMEDIA__]: Implement. - 2001-03-11 Alexandre Oliva - * config/sh/sh.md: Set latency of `pt' closer to reality. - (movsi_media, movsi_media_nofpu, movdi_media, movdi_media_nofpu, - movdf_media, movdf_media_nofpu, movsf_media, movsf_media_nofpu): - Set move, load and store type attributes. - * config/sh/sh.c (sh_loop_align) [TARGET_SH5]: Set to 3. - * config/sh/sh.h (OVERRIDE_OPTIONS) [TARGET_SH5]: Disable - profiling. - * config/sh/sh.h (PROMOTE_MODE): Sign-extend SImode to DImode. - * config/sh/sh-protos.h (sh_media_register_for_return): Declare. - * config/sh/sh.c (sh_media_register_for_return): New function. - (sh_expand_prologue) [TARGET_SHMEDIA]: Copy r18 to an available - branch-target register. - (sh_expand_epilogue) [TARGET_SHMEDIA]: Explicitly USE it. - * config/sh/sh.md (return_media_i): Use any call-clobbered - branch-target register. - (return_media): If r18 wasn't copied in the prologue, copy it - here. - * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE) [TARGET_SHMEDIA]: - Clear class FP0_REGS. - * config/sh/sh64.h (LINK_SPEC): Removed incorrect default copied - from elf.h. - 2001-03-08 DJ Delorie - * config/sh/sh.h (OVERRIDE_OPTIONS): Disable relaxing for SHMEDIA. - 2001-02-09 Alexandre Oliva - * config/sh/sh.md (sibcall_compact): Set fp_mode to single. - 2001-02-07 Alexandre Oliva - * config/sh/sh.h (INT_ASM_OP) [SHMEDIA64]: Use `.quad'. - 2001-02-03 Alexandre Oliva - * config/sh/sh.h (INIT_CUMULATIVE_ARGS): Compute size of BLKmode - return value correctly for call_cookie. - 2001-02-01 Alexandre Oliva - * config/sh/crt1.asm (start): Modified so as to call - ___setup_argv_and_call_main. - 2001-01-26 Alexandre Oliva - * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't count stack_regs in - SHmedia mode. - 2001-01-20 Alexandre Oliva - * config/sh/sh.h (STRIP_DATALABEL_ENCODING): New macro. - (STRIP_NAME_ENCODING): Use it. - (ASM_OUTPUT_LABELREF): Likewise. Don't call assemble_name(). - 2001-01-19 Alexandre Oliva - * config/sh/sh.md (sgeu) [! SHMEDIA]: Fix invocation of - prepare_scc_operands(). - * config/sh/sh.h (SH_DATALABEL_ENCODING): Change to "#"... - (DATALABEL_SYMNAME_P): ... so that we don't need memcmp here. - 2001-01-17 Alexandre Oliva - * config/sh/sh.h (STRIP_NAME_ENCODING): Strip leading `*'. - 2001-01-13 Alexandre Oliva - * config/sh/sh.md (shcompact_incoming_args): Use R0_REG. - * config/sh/sh.md (R7_REG, R8_REG, R9_REG): Define as constants, - used in shcompact_incoming_args. - * config/sh/sh.c (sh_expand_epilogue): Fix thinko in previous - change. - * config/sh/crt1.asm (start) [SH5]: Switch to single-precision - mode. - * config/sh/lib1funcs.asm (sdivsi3_i4, udivsi3_i4, set_fpscr): - Adjust accordingly. - * config/sh/sh.c (sh_expand_prologue, sh_expand_epilogue): - Simplify. Adjust. Add sanity check. - * config/sh/sh.h (TARGET_SWITCHES) [5-compact]: Set - FPU_SINGLE_BIT. - * config/sh/sh.md (udivsi3_i4_single, divsi3_i4_single): Match - TARGET_SHCOMPACT. - (udivsi3, divsi3): Use them. - (force_mode_for_call): New insn. - (call, call_value, sibcall_value): Emit it before SHcompact - calls. - 2001-01-11 Alexandre Oliva - * config/sh/sh.md (call, call_value, sibcall): Make sure the - call cookie is non-NULL before taking its value. - 2001-01-10 Alexandre Oliva - * config.gcc (sh64): Set target_requires_64bit_host_wide_int. - 2001-01-09 Alexandre Oliva - * config/sh/sh.md (shcompact_incoming_args): Set argument memory - block. - * config/sh/sh.h (STATIC_CHAIN_REGNUM) [SH5]: Use r1. - * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r0 as - temporary for stack adjusts. Use MACL and MACH to pass - arguments to shcompact_incoming_args. - * config/sh/sh.md (shcompact_incoming_args): Adjust. Don't - clobber r1. - * config/sh/lib1funcs.asm (shcompact_incoming_args): Likewise. - (nested_trampoline): Load static chain address into r1. - * config/sh/sh.md (movdi_media splits): Fix sign-extension. - 2001-01-07 Alexandre Oliva - * config/sh/sh.md (casesi): Sign-extend the first two operands, - and use signed compares for them. - * config/sh/sh.c (dump_table): Don't emit 8-byte constants after - 4-byte ones. Instead, inter-leave them, maintaining the 8-byte - ones properly aligned. - (find_barrier): Account for extra alignment needed for 8-byte wide - constants. - (machine_dependent_reorg): Require a label for the second 4-byte - constant after an 8-byte one. - * config/sh/lib1funcs.asm (sdivsi3): Fix typo in yesterday's - change. - 2001-01-05 Alexandre Oliva - * config/sh/sh.c (machine_dependent_reorg) [SHCOMPACT]: Reset - last_float when switching float modes. - * config/sh/sh.md (movdf) [SH5]: Don't use stack-pointer - auto-increment for general-purpose registers. - * config/sh/lib1funcs.asm (sdivsi3) [SHMEDIA]: Sign-extend the - result. - * config/sh/sh.c (sh_expand_prologue) [SH5]: Use r1 as temporary - for stack adjust. - * config/sh/sh.c (sh_builtin_saveregs): Support using all - registers for varargs. - 2001-01-01 Alexandre Oliva - * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Simplify. - * config/sh/sh.h (CALL_COOKIE_STACKSEQ, - CALL_COOKIE_STACKSEQ_SHIFT, CALL_COOKIE_STACKSEQ_GET): New macros. - (CALL_COOKIE_INT_REG_SHIFT): Adjust. - (FUNCTION_ARG_ADVANCE): Use SHCOMPACT_FORCE_ON_STACK. Adjust - call_cookie accordingly. - (FUNCTION_ARG): Test SHCOMPACT_FORCE_ON_STACK. - (SHCOMPACT_BYREF): Likewise. - (SHCOMPACT_FORCE_ON_STACK): New macro. - * config/sh/sh.c (sh_expand_prologue): Use new call_cookie format. - (sh_builtin_saveregs): Likewise. - * config/sh/lib1funcs.asm (shcompact_call_trampoline, - shcompact_incoming_args): Use new shift values. Support - sequences of consecutive and non-consecutive pushes/pops. - * config/sh/sh.md (return): Don't explicitly use PR_REG. - 2001-01-05 Hans-Peter Nilsson - * config/sh/sh.h (TEXT_SECTION): Define. - * config/sh/elf.h (ASM_FILE_START): Output TEXT_SECTION_ASM_OP. - 2001-01-05 Alexandre Oliva - * config/sh/sh.h (INIT_CUMULATIVE_LIBCALL_ARGS): New macro. - * config/sh/sh.h (BASE_RETURN_VALUE_REG): Use FP regs for - return values on FPU-enabled SHmedia. - (FUNCTION_VALUE_REGNO_P): Mark FIRST_FP_RET_REG as used on - FPU-enabled SHmedia. - (INIT_CUMULATIVE_ARGS): Set up return trampoline only if - value is returned in a non-FP reg and is not returned by - reference. - * config/sh/sh.md (shcompact_return_tramp_i): Change type to - jump_ind. - 2000-01-04 Alexandre Oliva - * config/sh/sh.h (SH_MIN_ALIGN_FOR_CALLEE_COPY): New. - (FUNCTION_ARG_CALLEE_COPIES): Require argument to be - quad-aligned to be passed by callee-copy reference. - 2001-01-03 Alexandre Oliva - * config/sh/elf.h (MAX_WCHAR_TYPE_SIZE): Define. - * config/sh/sh64.h (MAX_WCHAR_TYPE_SIZE): Undefine. - 2001-01-02 Alexandre Oliva - * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix error in - copying low-numbered FP regs to r7 and r8. - * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Don't request copying of - FP regs to general-purpose regs only if the copy was passed on the - stack. - * config/sh/lib1funcs.asm (shcompact_call_trampoline): Fix typo in - copying FP reg to r9. - * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Use trampoline to - copy FP regs to general-purpose regs only in outgoing calls. - * config/sh/sh.md (movdf_media, movsf_media): Revert incorrect - change from 2000-10-30. Adjust for 64-bit (or 32-bit) - HOST_WIDE_INT. - * config/sh/sh.h (struct sh_args): Document all fields. - (FUNCTION_OK_FOR_SIBCALL): Functions that receive arguments - passed partially on the stack should not consider making - sibcalls. - * config/sh/sh.h (FUNCTION_ARG_ADVANCE): Add byref regs to - stack_regs only for incoming calls. When passing FP args, - make sure there are FP regs available before modifying - call_cookie. - (SHCOMPACT_BYREF): Pass double args in general-purpose - registers by reference. - 2000-12-30 Alexandre Oliva - * config/sh/sh.h (FUNCTION_OK_FOR_SIBCALL) [SHCOMPACT]: Don't - attempt to generate sibcalls if the caller got any arguments - by reference. - * config/sh/lib1funcs.asm (set_fpscr) [SH5]: Default to double. - * config/sh/sh.c (dump_table) [SHCOMPACT]: Align DImode and DFmode - to 8-byte boundaries. - * config/sh/sh.md (shcompact_preserve_incoming_args): New insn. - * config/sh/sh.h (CALL_COOKIE_INT_REG_GET): New macro. - * config/sh/sh.c (sh_expand_prologue): Preserve args that will be - stored in the stack. - * config/sh/lib1funcs.asm (ct_main_table, ia_main_table): Arrange - for the offsets to have the ISA bit set. - (shcompact_call_trampoline): Document. Swap r0 and r1, to match - invocation. Use beq instead of bgt to mark end of sequence of - loads. - (shcompact_incoming_args): Fix store of r2. Use beq instead of - bgt to mark end of sequence of stores. - * config/sh/sh.c (arith_operand): Don't check whether - CONST_OK_FOR_J for now. - * config/sh/sh.md (movdf_media, movsf_media): Use HOST_WIDE_INT - instead of long for conversion. - 2000-12-29 Alexandre Oliva - * config/sh/sh.c (print_operand_address): Convert INTVAL to int - before passing it to fprintf. - 2000-12-28 Alexandre Oliva - * config/sh/crt1.asm (start): Reset SR.FD, to enable the FP unit. - Call set_fpscr before reading/writing SR. - * config/sh/crt1.asm (start): Set SR.SZ and SR.PR, but not SR.FR. - Call set_fpscr. - * config/sh/lib1funcs.asm: Add `.align 2' directives before - SHmedia code. - (FMOVD_WORKS): Define on SH5 with FPU. - (set_fpscr): Define on SH5. Remove separate _fpscr_values - setting. - * config/sh/t-sh64 (LIB1ASMFUNCS): Add _set_fpscr instead of - _fpscr_values. - 2000-12-28 Hans-Peter Nilsson - * config/sh/lib1funcs.asm (ct_main_table): Align contents to even - address. - (ia_main_table): Ditto. - 2000-12-27 Alexandre Oliva - * config/sh/sh.h (MAX_WCHAR_TYPE_SIZE): Don't define. - * config/sh/sh64.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Reinstate - the definitions from sh.h. - * config/sh/sh.h (PTRDIFF_TYPE): Define as conditional on - TARGET_SH5. - (SUBTARGET_CPP_SPEC): Arrange for __PTRDIFF_TYPE__ to be defined. - * config/sh/elf.h (PTRDIFF_TYPE): Likewise. - * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise. - 2000-12-26 Alexandre Oliva - * config/sh/sh.md (movdi_media split): Don't add REG_LABEL notes. - Increment LABEL_NUSES. - - * config/sh/sh.h (SIZE_TYPE): Define as conditional on - TARGET_SH5. - (SUBTARGET_CPP_SPEC): Arrange for __SIZE_TYPE__ to be always - defined. - * config/sh/elf.h (SIZE_TYPE): Likewise. - * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Likewise. - * config/sh/lib1funcs.asm (shcompact_call_trampoline, - shcompact_incoming_args): Load switch table addresses using - datalabel. - * config/sh/sh.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__. - (NO_BUILTIN_SIZE_TYPE): Define. - (SIZE_TYPE): Don't define. - * config/sh/sh64.h (SUBTARGET_CPP_SPEC): Define __SIZE_TYPE__. - * config/sh/sh.h (CPP_SPEC): Fixed typo that prevented the - definition of __SH5__=32 for -m5-compact-nofpu. - * config/sh/sh.c (barrier_align): Ensure 32-bit alignment after - ADDR_DIFF_VEC. - 2000-12-24 Alexandre Oliva - * config/sh/sh.h (FUNCTION_ARG_PADDING): Removed. - 2000-12-23 Alexandre Oliva - * config/sh/sh.h (TARGET_CACHE32): Enable on SH5. - (FUNCTION_BOUNDARY): Ensure 32-bit alignment for SHmedia. - (INSN_LENGTH_ALIGNMENT): Likewise. - 2000-12-22 Alexandre Oliva - * config/sh/sh.md (call, call_value, sibcall): Simplify - copying of non-branch-target register. - 2000-12-22 Alexandre Oliva - * glimits.h (__LONG_MAX__): Revert 2000-12-13's patch. - * config/sh/sh.h (CPP_SPEC): Define it here for 64-bit SHmedia. - 2000-12-22 Alexandre Oliva - * config/sh/sh.h (GET_SH_ARG_CLASS): Handle complex - floating-point values as structs. - (FUNCTION_ARG): Use SH5_PROTOTYPED_FLOAT_ARG. - (SH5_PROTOTYPELESS_FLOAT_ARG): List FP registers before - general-purpose register. - (SH5_PROTOTYPED_FLOAT_ARG): New macro. - 2000-12-20 Alexandre Oliva - * config/sh/sh.md (addsi3): Force operand1 to reg for SHmedia. - * config/sh/sh.md (movsi_media): Split CONST_DOUBLE loads too. - * config/sh/sh.h (DATALABEL_REF_P): Don't require the CONST. - (ENCODE_SECTION_INFO): Enclose variables and constants in - DATALABEL unspecs. - (SH_DATALABEL_ENCODING, DATALABEL_SYMNAME_P): Define. - (STRIP_NAME_ENCODING): Strip SH_DATALABEL_ENCODING off. - (ASM_OUTPUT_LABELREF, AMS_OUTPUT_SYMBOL_REF): Define. - * config/sh/sh.c (gen_datalabel_ref): Use UNSPEC_DATALABEL - only for LABEL_REFs. For SYMBOL_REFs, prepend - SH_DATALABEL_ENCODING to the symbol name. - * config/sh/sh.md (indirect_jump): Use SUBREG instead of - convert_mode(). - 2000-12-20 Alexandre Oliva - * config/sh/sh.md (casesi): Enclose ADDR_DIFF_VEC address in - UNSPEC_DATALABEL. - * config/sh/sh.c (gen_datalabel_ref): Accept LABEL_REFs. - * config/sh/sh.h (DATALABEL_REF_NO_CONST_P): Likewise. - (DATALABEL_REF_P): Don't require CONST. - (ASM_OUTPUT_ADDR_DIFF_ELT): On SH5, output datalabel before - REL label. - 2000-12-19 Alexandre Oliva - * config/sh/sh.md (extendhidi2, extendqidi2): Use arithmetic shift - right. - 2000-12-18 Alexandre Oliva - * config/sh/sh.md (movsi_media, call, call_value, sibcall): - Use shallow_copy_rtx and PUT_MODE to change the mode of - SYMBOL_REFs, LABEL_REFs, CONSTs, etc. - * config/sh/sh.h (PREFERRED_RELOAD_CLASS): Reload SYMBOL_REFs - on SHmedia using GENERAL_REGs. - * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i, - bltu_media_i): Fix reversion of conditions. - 2000-12-18 Alexandre Oliva - * config/sh/sh.md (zero_extendhidi2): Use logical shift right. - * config/sh/sh.c (output_far_jump): Save r13 in macl. - 2000-12-17 Alexandre Oliva - * config/sh/sh.c (gen_datalabel_ref): Fix mode of the UNSPEC. - 2000-12-16 Alexandre Oliva - * config/sh/lib1funcs.asm (ic_invalidate): Define for SH5. - (GCC_nested_trampoline): Likewise. - * config/sh/sh-protos.h (gen_datalabel_ref): Declare. - * config/sh/sh.c (gen_datalabel_ref): Define. - * config/sh/sh.h (TRAMPOLINE_SIZE): Adjust for SH5. - (INITIALIZE_TRAMPOLINE): Likewise. - (TRAMPOLINE_ADJUST_ADDRESS): Define. - (DATALABEL_REF_NO_CONST_P, DATALABEL_REF_P): Define. - (EXTRA_CONSTRAINT_T): Match DATALABEL unspecs. - (OUTPUT_ADDR_CONST_EXTRA): Handle DATALABEL unspecs. - * config/sh/sh.md (UNSPEC_DATALABEL): New constant. - (ic_invalidate): Adjust for SH5. - (ic_invalidate_line_media, ic_invalidate_line_compact): New insns. - * config/sh/t-sh64 (LIB1ASMFUNCS): Added _ic_invalidate and - _nested_trampoline. - 2000-12-15 Alexandre Oliva - * config/sh/sh.h (MOVE_MAX): Set to 8 for SHmedia, 4 elsewhere. - (MOVE_MAX_PIECES): Set to 8 on SHmedia too. - 2000-12-14 Alexandre Oliva - * config/sh/sh.h (DBX_REGISTER_NUMBER): Adjust for sh64-elf-gdb. - * config/sh/elf.h (DBX_REGISTER_NUMBER): Likewise. - 2000-12-14 Alexandre Oliva - * config/sh/sh.c (target_reg_operand): Match only target-branch - registers and pseudos that aren't virtual registers. - * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]: - Copy operands that don't match target_reg_operand to pseudos. - (call_media, call_value_media, sibcall_media): Use - target_reg_operand instead of target_operand. - 2000-12-13 Alexandre Oliva - * glimits.h (__LONG_MAX__) [SH5 == 64]: Adjust for 64 bits. - * config/sh/sh.c (target_reg_operand): Match hardware registers - other than branch-target registers. - * config/sh/sh.md (zero_extendqidi2): Input operand is %1. - * config/sh/lib1funcs.asm (sdivsi3) [SH5]: Make it global. - (fpscr_values) [SH5 == 32]: Define. - * config/sh/t-sh64 (LIB1ASMFUNCS): Add fpscr_values. - * config/sh/sh.md (call, call_value, sibcall) [TARGET_SHMEDIA]: - Handle function addresses coming in SUBREGs. - 2000-12-12 Alexandre Oliva - * config/sh/lib1funcs.asm (shcompact_call_trampoline, - shcompact_return_trampoline): Use datalabel where appropriate. - 2000-12-09 Alexandre Oliva - * config/sh/sh.h (SECONDARY_OUTPUT_RELOAD_CLASS): Use a - general-purpose register to copy one branch-target register to - another. - 2000-12-06 Alexandre Oliva - * config/sh/sh.c (target_operand): Accept LABEL_REFs and - SYMBOL_REFs with VOIDmode. - * config/sh/sh.md (ble_media_i, blt_media_i, bleu_media_i, - bltu_media_i): New insns. - 2000-12-06 Alexandre Oliva - * config/sh/sh.h (RETURN_IN_MEMORY): Adjust for SH5 ABI. - (INIT_CUMULATIVE_ARGS): Likewise. - 2000-12-01 Alexandre Oliva - * machmode.def (V16SFmode): New mode. - * c-common.c (type_for_mode): Support V2SF and V16SF. - * tree.c (build_common_tree_nodes_2): Likewise. - * tree.h (tree_index): Likewise. - * calls.c (emit_call_1): Take args_so_far. Adjust all - callers. Introduce CALL_POPS_ARGS. - * tm.texi (CALL_POPS_ARGS): Document. - * config/sh/crt1.asm: Implement in SHmedia mode. - * config/sh/crti.asm, config/sh/crtn.asm: Likewise - * config/sh/elf.h (ASM_SPEC, LINK_SPEC): Support SH5 flags. - (DBX_REGISTER_NUMBER): Renumber registers for SH5. - * config/sh/lib1funcs.asm: Disable functions unused in SH5. - Implement divsi and udivsi in SHmedia mode. Introduce - SHcompact trampolines. - * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): Use DImode - only in SHmedia64. - (regno_reg_class): Rewrite. - (fp_reg_names): Remove. - (sh_register_names, sh_additional_register_names): New. - (print_operand): Added `u'. Support SUBREGs in addresses. - Add parentheses around shifted CONSTs. - (output_file_start): Output .mode and .abi directives. - (shiftcosts, addsubcosts, multcosts): Adjust. - (output_stack_adjust): Compute alignment. Sanity-check SIZE. - (push_regs): Take array of HOST_WIDE_INTs. Adjust callers. - (calc_live_regs): Output to array of HOST_WIDE_INTs. Count - bytes, not registers. Take into account the need for the - SHcompact incoming args trampoline. Adjust all callers. - (sh_expand_prologue): Take stack_regs into account. Call - incoming args trampoline. Keep stack aligned as per SH5 ABI. - (sh_expand_epilogue): Take stack_regs into accoutn. Keep - stack aligned as per SH5 ABI. - (sh_builtin_saveregs): Support SH5 ABI. - (sh_build_va_list, sh_va_start): Likewise. - (initial_elimination_offset): Take alignment into account. - Compute location of PR according to the SH5 stack frame. - (arith_reg_operand): Reject branch-target registers. - (shmedia_6bit_operand): New. - (logical_operand): Use CONST_OK_FOR_P on SHmedia. - (target_reg_operand): Match DImode only. Accept SUBREGs. - (target_operand): New. - * config/sh/sh.h (CPP_SPEC, SUBTARGET_CPP_SPEC): Support SH5 flags. - (CONDITIONAL_REGISTER_USAGE): Implement SH5 ABI. Initialize - SIBCALL_REGS for SHmedia. - (TARGET_SH3E, TARGET_SH4): Only if SH1_BIT is set too. - (TARGET_FPU_DOUBLE, TARGET_FPU_ANY): New. - (TARGET_SHMEDIA32, TARGET_SHMEDIA64): New. - (TARGET_SWITCHES): New SH5 flags. - (OVERRIDE_OPTIONS): Set SH5-specific options. Use - VALID_REGISTER_P to disable unsupported registers. - (LONG_TYPE_SIZE, LONG_LONG_TYPE_SIZE): Set. - (POINTER_SIZE, PARM_BOUNDARY): Adjust. - (FUNCTION_ARG_PADDING): Define. - (FASTEST_ALIGNMENT): Adjust. - (SH_REGISTER_NAMES_INITIALIZER): New. - (sh_register_names): Declare. - (DEBUG_REGISTER_NAMES): Define. - (REGISTER_NAMES): Define based on sh_register_names. - (SH_ADDITIONAL_REGISTER_NAMES_INITIALIZER): New. - (sh_additional_register_names): Declare. - (LAST_GENERAL_REG, LAST_FP_REG, LAST_XD_REG): Adjust for SHmedia. - (FIRST_TARGET_REG, LAST_TARGET_REG): Define. - (TARGET_REGISTER_P, SHMEDIA_REGISTER_P, VALID_REGISTER_P): Define. - (REGISTER_NATURAL_MODE): Define. - (FIRST_PSEUDO_REGISTER): Adjust. - (FIXED_REGISTERS, CALL_USED_REGISTERS): Adjust. - (HARD_REGNO_CALL_PART_CLOBBERED): Define. - (HARD_REGNO_NREGS, HARD_REGNO_MODE_OK): Adjust. - (VECTOR_MODE_SUPPORTED_P): Define. - (REG_CLASS_CONTENTS): Adjust. - (SMALL_REGISTER_CLASSES): Adjust. - (REG_ALLOC_ORDER): Adjust. - (INDEX_REG_CLASS): Adjust. - (CONST_OK_FOR_O, CONST_OK_FOR_P): New. - (CONST_OK_FOR_LETTER_P): Adjust. - (PREFERRED_RELOAD_CLASS): Adjust. - (SECONDARY_OUTPUT_RELOAD_CLASS): Adjust. - (SECONDARY_INPUT_RELOAD_CLASS): Adjust. - (NPARM_REGS, FIRST_PARM_REG, FIRST_RET_REG): Adjust. - (FIRST_FP_PARM_REG): Adjust. - (CALL_POPS_ARGS): Define. - (FUNCTION_ARG_REGNO_P): Adjust. - (struct sh_args): New fields. - (GET_SH_ARG_CLASS): Adjust. - (INIT_CUMULATIVE_ARGS): Adjust. - (INIT_CUMULATIVE_INCOMING_ARGS): Define. - (FUNCTION_ARG_ADVANCE): Adjust. - (FUNCTION_ARG): Adjust. - (FUNCTION_ARG_PASS_BY_REFERENCE, SHCOMPACT_BYREF): Define. - (FUNCTION_ARG_CALLEE_COPIES): Define. - (SH5_PROTOTYPELESS_FLOAT_ARG): Define. - (STRICT_ARGUMENT_NAMING): Define. - (PRETEND_OUTGOING_VARARGS_NAMED): Adjust. - (FUNCTION_ARG_PARTIAL_NREGS): Adjust. - (SH5_WOULD_BE_PARTIAL_NREGS): Define. - (SETUP_INCOMING_VARARGS): Adjust. - (HAVE_POST_INCREMENT, HAVE_PRE_DECREMENT): Adjust. - (USE_LOAD_POST_INCREMENT, USE_STORE_PRE_DECREMENT): Adjust. - (REGNO_OK_FOR_INDEX_P, REG_OK_FOR_INDEX_P): Adjust. - (SUBREG_OK_FOR_INDEX_P): Adjust. - (EXTRA_CONSTRAINT_S): Update. - (EXTRA_CONSTRAINT_T): New. - (EXTRA_CONSTRAINT): Adjust. - (GO_IF_LEGITIMATE_INDEX): Adjust. - (GO_IF_LEGITIMATE_ADDRESS): Adjust. - (LEGITIMIZE_ADDRESS, LEGITIMIZE_RELOAD_ADDRESS): Adjust. - (MOVE_MAX): Adjust. - (MAX_MOVE_MAX): Define. - (Pmode): Adjust. - (CONST_COSTS): Adjust. - (REGISTER_MOVE_COST): Adjust. - (BRANCH_COST): Adjust. - (TEXT_SECTION_ASM_OP): Adjust. - (DBX_REGISTER_NUMBER): Adjust. - (ASM_OUTPUT_DOUBLE_INT): New. - (UNALIGNED_DOUBLE_INT_ASM_OP): New. - (PREDICATE_CODES): Adjust. - (PROMOTE_MODE): Adjust. - (CRT_CALL_STATIC_FUNCTION): Do not define for SHmedia. - * config/sh/sh.md (AP_REG, PR_REG, T_REG, GBR_REG): Renumber. - (MACH_REG, MACL_REG, FPUL_REG, RAP_REG, FPSCR_REG): Renumber. - (PR_MEDIA_REG, T_MEDIA_REG, R10_REG): New. - (DR0_REG, DR2_REG, DR4_REG): Renumber. - (TR0_REG, TR1_REG, TR2_REG): New. - (XD0_REG): Renumber. - (UNSPEC_COMPACT_ARGS): New. - (type): Added pt and ptabs. - (length): Default to 4 on SHmedia. Default pt length to 12 - and 20 on SHmedia32 and SHmedia64, respectively. - (pt): New function unit. - (movdi, movsi): Add types pt and ptabs. Don't increment LABEL_NUSES. - Add whitespace between operands of SHmedia instructions. - (movdicc): Fix. - (adddi3_media, addsi3_media): Adjust constraints. - (subsi3) [SHmedia]: Force operand 1 into a register. - (udivsi3_i1_media, udivsi3_i4_media): New. - (udivsi3): Support SHmedia. - (divsi3_i1_media, divsi3_i4_media): New. - (divsi3): Support SHmedia. - (anddi3, iordi3, xordi3): Adjust constraints. - (zero_extendhidi2, zero_extendqidi2): New. - (extendsidi2, extendhidi2, extendqidi2): New. - (push, pop, push_e, push_fpul, push_4): Disable on SH5. - (pop_e, pop_fpul, pop_4): Likewise. - (movsi_media): Support FP and BT registers. - (movsi_media_nofpu): New. Adjust splits to DImode. - (lduw, ldub): Renamed to zero_extend* above. - (movqi_media): Fix typo. - (movdi_media): Support FP and BT registers. - (movdi_media_nofpu): New. Adjust splits for SHmedia32. - (movdi_const_32bit): New. - (shori_media): Require immediate operand. Use `u' for output. - (movdf_media, movsf_media): Simplified. - (movdf_media_nofpu, movsf_media_nofpu): New. - (movdf, movsf): Adjust - (movv2sf, movv2sf, movv16sf): New. - (beq_media, beq_media_i): Adjust constraints. Don't use - scratch BT register. - (bne_media, bne_media_i): Likewise. - (bgt_media, bgt_media_i): Likewise. - (bge_media, bge_media_i): Likewise. - (bgtu_media, bgtu_media_i): Likewise. - (bgeu_media, bgeu_media_i): Likewise. - (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu, - bunordered): Emit jump insn. Force operands to registers when - needed. - (jump_media, jump): Simplify. - (call_compact, call_compact_rettramp): New. - (call_value_compact, call_value_compact_rettramp): New. - (call_media, call_value_media): Simplify. - (sibcall_compact, sibcall_media): New. - (call, call_value): Adjust for SHmedia and SHcompact. - (sibcall, sibcall_value, untyped_call): Likewise. - (sibcall_epilogue): Preserve r0 across epilogue for SHcompact. - (indirect_jump): Adjust for SHmedia. - (casesi_jump_media): New. - (nop): Re-enable for SHmedia. - (call_site): Restrict to SH1. - (casesi): Adjust for SHmedia. - (casesi_shift_media, casesi_load_media): New. - (return): Explicitly use PR register. Call return trampoline - on SHcompact. - (return_i): Explicitly use PR register. - (shcompact_return_tramp, shcompact_return_tramp_i): New. - (return_media): Adjust. - (shcompact_incoming_args): New. - (epilogue): Adjust. - (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust. - (movstrsi): Disable on SH5. - (fpu_switch0, fpu_switch1, movpsi): Enable on SH4. - (addsf3, addsf3_media): Test TARGET_SHMEDIA_FPU. - (subsf3, subsf3_media): Likewise. - (mulsf3, mulsf3_media, mac_media): Likewise. - (divsf3, divsf3_media): Likewise. - (floatdisf2, floatsisf2_media): Likewise. Adjust constraints. - (floatsisf2, fux_truncsfsi2): Likewise. - (fix_truncsfdi2, fix_truncsfsi2_media): Likewise. Adjust - constraints. - (cmpeqsf_media, cmpgtsf_media, cmpgesf_media): Likewise. - (cmpunsf_media, cmpsf): Likewise. - (negsf2, negsf2_media, sqrtsf2, sqrtsf2_media): Likewise. - (abssf2, abssf2_media): Likewise. - (adddf3, adddf3_media, subdf3, subdf3_media): Likewise. - (muldf3, muldf3_media, divdf3, divdf3_media): Likewise. - (floatdidf2, floatsidf2_media): Likewise. Adjust constraints. - (floatsidf2, fix_truncdfsi2): Likewise. - (fix_truncdfdi2, fix_truncdfsi2_media): Likewise. Adjust - constraints. - (cmpeqdf_media, cmpgtdf_media): Likewise. - (cmpgedf_media, cmpundf_media, cmpdf): Likewise. - (negdf2, negdf2_media, sqrtdf2, sqrtdf2_media): Likewise. - (absdf2, absdf2_media): Likewise. - (extendsfdf2, extendsfdf2_media): Likewise. - (truncsfdf2, truncsfdf2_media): Likewise. - * config/sh/sh64.h: New file. - * config/sh/t-sh64: New file. - * config/sh/shmedia.h: New file. - * config/sh/ushmedia.h: New file. - * config/sh/sshmedia.h: New file. - * configure.in: Added sh64-*-elf. - * configure: Rebuilt. - 2000-10-10 Alexandre Oliva - * config/sh/sh.c (GEN_MOV, GEN_ADD3, GEN_SUB3): New macros. - (reg_class_from_letter): Use `b' for TARGET_REGS. - (print_operand): Support `%M', `%m', `AND' and - `ASHIFTRT'. Do not precede constants with `#' on SHmedia. - (andcosts): Adjust for SHmedia. - (output_stack_adjust, sh_expand_prologue, sh_expand_epilogue): - Likewise. - (target_reg_operand): New function. - * config/sh/sh-protos.h (target_reg_operand): Declare. - * config/sh/sh.h (CONDITIONAL_REGISTER_USAGE): Don't disable - FP registers on SH5. - (HARD_REGNO_MODE_OK): Accept them whenever they're acceptable - on SH4. - (TARGET_REGISTER_P): New macro. - (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Added TARGET_REGS. - (FUNCTION_VALUE): Use DImode for promoted types on SHmedia. - (EXTRA_CONSTRAINT_S): New macro. - (EXTRA_CONSTRAINT): Adjust. - (FLOAT_TYPE_SIZE): Define to 32. - (Pmode): DImode on SHmedia. - (CONST_COSTS): Adjust for SHmedia literals. - (PREDICATE_CODES): Added target_reg_operand. - (PROMOTE_MODE): Promote signed types to DImode on SHmedia. - * config/sh/sh.md: Remove all attrs from SHmedia insns. - (cmpeqdi_media, cmpgtdi_media, cmpgtudi_media): New insns. - (cmpdi): Accept SHmedia. - (movdicc_false, movdicc_true): New insns. - (movdicc): New expand. - (adddi3): Accept arith_operand for op2, but FAIL on SH1 if - no_new_pseudos. - (addsi3_media): Match `S' constraint. - (anddi3, andcdi3, iordi3, xordi3, negdi_media): New insns. - (negdi2): Expand for SHmedia. - (one_cmpldi2): New expand. - (zero_extendsidi2): Change from expand to insn. - (extendsidi2): Add constraints. - (movdi_media, movsi_media): Change `%x' to `%M'. Use `%m' for - LD/ST address. Fix SI immediate loading split. - (movhi_media, movqi_media, lduw, ldub): New insns. - (movhi, movqi): Accept SHmedia. - (shori_media, movdi_media): Relax input constraints. Split - symbolic constants. - (movdf_media, movsf_media): New insn. New split to movdi. - (movdf, movsf): Match on SHmedia. - (beq_media, bne_media, bgt_media, bge_media, bgtu_media, - bgeu_media): New insns and splits. New insns with `_i' suffix. - (beq, bne, bgt, blt, ble, bge, bgtu, bltu, bgeu, bleu): Adjust. - (bunordered): New expand. - (jump_compact): Renamed from `jump'. - (jump_media): New insn. - (jump): New expand. - (call_media, call_value_media): New insns. - (call, call_value): Adjust. - (indirect_jump_compact): Renamed from `indirect_jump'. - (indirect_jump_media): New insn. - (indirect_jump): New expand. - (untyped_call, return): Accept SHmedia. - (return_media): New insn. - (prologue, epilogue, blockage): Accept SHmedia. - (seq, slt, sle, sgt, sge, sgtu, sltu, sleu, sgeu, sne): Adjust. - (sunordered): New expand. - (addsf3, subsf3, mulsf3, divsf3, floatsisf2, fix_truncsfsi2, - cmpsf, negsf2, sqrtsf2, abssf2): Adjust for SHmedia. - (addsf3_media, subsf3_media, mulsf3_media, mac_media, - divsf3_media, floatdisf2, floatsisf2_media, fix_truncsfdi2, - fix_truncsfsi2_media, cmpeqsf_media, cmpgtsf_media, - cmpgesf_media, cmpunsf_media, negsf2_media, sqrtsf2_media, - abssf2_media): New insns. - (adddf3, subdf3, muldf3, divdf3, floatsidf2, fix_truncdfsi2, - cmpdf, negdf2, sqrtdf2, absdf2): Adjust for SHmedia. - (adddf3_media, subdf3_media, muldf3_media, divdf3_media, - floatdidf2, floatsidf2_media, fix_truncdfdi2, - fix_truncdfsi2_media, cmpeqdf_media, cmpgtdf_media, - cmpgedf_media, cmpundf_media, negdf2_media, sqrtdf2_media, - absdf2_media): New insns. - (extendsfdf2, truncdfsf2): Adjust for SHmedia. - (extendsfdf2_media, truncdfsf2_media): New insns. - 2000-09-14 Alexandre Oliva - * config/sh/sh.c (machine_dependent_reorg): On shmedia, skip for now. - * config/sh/sh.h (CONST_OK_FOR_J): Document. - (LEGITIMATE_CONSTANT_P): Accept CONST_DOUBLEs on shmedia. - * config/sh/sh.md (adddi3): New expand. - (adddi3_media, adddi3z_media): New insns. - (adddi3_compact): Renamed from adddi3. - (addsi3_media): Use add.l r63 to add constant zero. - (subdi3): New expand. - (subdi3_media): New insn. - (subdi3_compact): Renamed from subdi3. - (mulsidi3): New expand. - (mulsidi3_media): New insn. - (mulsidi3_compact): Renamed from mulsidi3. - (umulsidi3): New expand. - (umulsidi3_media): New insn. - (umulsidi3_compact): Renamed from umulsidi3. - (ashlsi3_media, ashrsi3_media, lshrsi3_media): New insns. - (ashlsi3, ashrsi3, lshrsi3): Use them. - (ashldi3_media, ashrdi3_media, lshrdi3_media): New insns. - (ashldi3, ashrdi3, lshrdi3): Use them. - (zero_extendsidi2): New expand. - (extendsidi2): New insn. - (movsi_media): New insn. Split to movdi to load constants. - (movsi): Enable for shmedia. - (movdi_media): New insn. Use shori_media to load wide constants. - (short_media): New insn. - (movdi): Enable for shmedia. - 2000-09-08 Alexandre Oliva - * config/sh/sh.h (CPP_SPEC): Added `m5'. - (SUBTARGET_CPP_SPEC): Added `!m5'. - (SH5_BIT, TARGET_SH5, TARGET_SHMEDIA, TARGET_SHCOMPACT): New macros. - (TARGET_SWITCHES): Added `5' and `5-compact'. Added SH1_BIT - to all other SH variants. - (TARGET_DEFAULT): Set to SH1_BIT. - (OVERRIDE_OPTIONS): Recognize sh5 CPU. - (BITS_PER_WORD): Raise to 64 on shmedia. - (MAX_BITS_PER_WORD): Change to 64. - (MAX_LONG_TYPE_SIZE, MAX_WCHAR_TYPE_SIZE): Set to MAX_BITS_PER_WORD. - (INT_TYPE_SIZE): Keep as 32. - (UNITS_PER_WORD): Raise to 8 on shmedia. - (MIN_UNITS_PER_WORD): Keep as 4. - (POINTER_SIZE): Raise to 64 on shmedia. - (CONST_OK_FOR_J): New macro. - (CONST_OK_FOR_LETTER_P): Use it. - (processor_type): Add PROCESSOR_SH5. - * config/sh/sh.md: Conditionalize all expands, insns and - splits to TARGET_SH1. - (cpu): Added sh5. - (addsi3_compact): Renamed from... - (addsi3): Now an expand. - (addsi3_media, subsi3_media): New insns. - (subsi3): Don't negate constants with SHmedia. - - * hooks.c: New file. - * hooks.h: New file. - * Makefile.in (HOOKS_H): New. - (TARGET_DEF_H): Added $(HOOKS_H). - (OBJS): Added hooks.o. - (cfgcleanup.o, bb-reorder.o): Added target.h. - (hooks.o): Added dependencies. - * target-def.h (TARGET_CANNOT_MODIFY_JUMPS_P): New, added to... - (TARGET_INITIALIZER): this. - * doc/tm.texi (TARGET_CANNOT_MODIFY_JUMPS_P): Document. - * target.h (struct gcc_target): Added cannot_modify_jumps_p. - * bb-reorder.c: Include target.h. - (reorder_basic_blocks): Skip if cannot modify jumps. - * cfgcleanup.c: Include target.h. - (try_optimize_cfg): Skip merge blocking if cannot modify jumps. - -2002-02-08 Chris Demetriou - - * config/mips/mips.md (casesi_internal, casesi_internal_di): - Protect jump delay slot instructions with .set noreorder and - .set nomacro. - -2002-02-08 Chris Demetriou - - * config/mips/mips.md (casesi_internal_di): Calculate - the index into the target offset table correctly. - -2002-02-08 Richard Henderson - - * expr.c (expand_expr): Mind EXPAND_INITIALIZER for truncation also. - * final.c (output_addr_const): Accept and discard SUBREG. - * varasm.c (decode_addr_const): Don't abort on unknown expressions -- - mark them unknown instead. - (simplify_subtraction): Handle RTX_UNKNOWN. - (initializer_constant_valid_p): Strip NOP_EXPRs that narrow the mode. - -2002-02-08 David Edelsohn - - * doc/invoke.texi (RS/6000 and PowerPC Options): Fix typo. - -2002-02-08 Richard Henderson - - * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): New. - -2002-02-08 Andreas Jaeger - - * config.gcc (x86_64-*-linux): Add t-linux64 makefile fragment. - * config/i386/t-linux64: New file. - -2002-02-08 Jakub Jelinek - - * c-common.c (c_expand_expr): Revert 2002-02-06 patch. - * c-parse.in (compstmt): Clear last_expr_type. - -2002-02-07 Richard Henderson - - * loop.c (strength_reduce): Sink final_value when not - eliminating a biv. - -2002-02-07 David O'Brien - - * config/sparc/freebsd.h: Fix mismatched spec {. - -2002-02-07 Richard Henderson - - * cfgrtl.c: Include recog.h and insn-config.h. - (keep_with_call_p): Fix general_operand invocation. - * Makefile.in (cfgrtl.o): Update dependencies. - -2002-02-07 Kazu Hirata - - * config/h8300/h8300.c (two_insn_adds_subs_operand): Revise a - comment. Accept HImode only if TARGET_H8300. - -2002-02-07 Eric Christopher - - * config/mips/crtn.asm: Cleanup #ifdefs. - -2002-02-07 Eric Christopher - - * config/mips/crti.asm: Add changes for mips16. mips16 uses - register 7 as RA instead of $31. - * config/mips/crtn.asm: Ditto. - * config/mips/mips.c (mips_move_2words): Add case for - TARGET_MIPS16 when HOST_BITS_PER_WIDE_INT >= 64. - (compute_frame_size): Fix typo. - (save_restore_insns): Ditto. Make documentation about using - register $7 as return register more precise. - (mips_expand_epilogue): Fix comment. Add code to work around not - being able to add to the stack pointer directly. - * config/mips/mips.h (EH_RETURN_DATA_REGNO): Change register number - to 2 for TARGET_MIPS16 as we need 6 and 7 as clobbers in the - epilogue. - -2002-02-07 Tom Rix - - * config/rs6000/rs6000.c (reg_or_aligned_short_operand): New. For - immediates in ldu and stdu DS opcode field. - * config/rs6000/rs6000.md (movdi_update, movdi_update1): Use. - * config/rs6000/rs6000-protos.h: Add reg_or_aligned_short_operand. - * config/rs6000/rs6000.h (PREDICATE_CODES): Same. - -2002-02-07 Jeff Sturm - - * config/sparc/sparc.c (compute_frame_size): Don't correct frame - offset for stack bias. - -2002-02-07 H.J. Lu - - * config/mips/linux.h (SUBTARGET_ASM_DEBUGGING_SPEC): Defined. - -2002-02-07 Ulrich Weigand - - * testsuite/gcc.dg/cpp/charconst-2.c: Add -fsigned-char option. - -Thu Feb 7 12:14:17 CET 2002 Jan Hubicka - - * i386-protos.h (x86_order_regs_for_local_alloc): Declare - * i386.c (x86_order_regs_for_local_alloc): New global function. - * i386.h (REG_ALLOC_ORDER): CLeanup. - (ORDER_REGS_FOR_LOCAL_ALLOC): New. - -2002-02-07 Richard Henderson - - PR optimization/2463 - * alias.c (find_base_value): Recall base values for fixed hard regs. - * loop.c (loop_regs_update): Don't use single_set on non-insns. - -2002-02-07 Alexandre Oliva - - * config/mips/mips.md (define_delay) [mips16]: Adjust required - length. - -2002-02-06 Richard Henderson - - PR c/5609 - * stmt.c (resolve_operand_name_1): Take more care with mixed - named and unnamed operands. - -2002-02-06 Janis Johnson - Jan Hubicka - - * loop.c (remove_constant_addition): Avoid clobbering a shared - CONST expression. - -2002-02-06 Ulrich Weigand - - * config.gcc (s390x-*-linux*): Add t-linux64 makefile fragment. - * config/s390/t-linux64: New file. - * config/s390/libgcc-glibc.ver: New file. - -2002-02-06 Ulrich Weigand - - * config/s390/linux64.h: Delete file. - * config/s390/s390x.h: New file. - * config.gcc (s390x-*-linux*): Use s390x.h instead of linux64.h - as target header file. - * config/s390/linux.h (TARGET_VERSION): Define depending on - DEFAULT_TARGET_64BIT. - (CPP_SPEC, ASM_SPEC, LINK_SPEC): Likewise. - (SIZE_TYPE, PTRDIFF_TYPE): Likewise. - (NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_PTRDIFF_TYPE): Define. - (CPP_ARCH31_SPEC, CPP_ARCH64_SPEC): New defines. - (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC): New defines. - (EXTRA_SPEC): New define. - * config/s390/s390.h (TARGET_VERSION): Define depending on - DEFAULT_TARGET_64BIT. - (MASK_RETURN_ADDR): Add run-time check for TARGET_64BIT. - -2002-02-06 Jason Merrill - - * c-decl.c (finish_function): Warn about a non-void function with - no return statement and no abnormal exit. - (current_function_returns_abnormally): New variable. - (start_function): Clear it. - (struct c_language_function): Add returns_abnormally. - (push_c_function_context): Save it. - (pop_c_function_context): Restore it. - (builtin_function): Set TREE_THIS_VOLATILE on return fns. - (grokdeclarator): Set C_FUNCTION_IMPLICIT_INT on functions without - an explicit return type. - * c-tree.h: Declare current_function_returns_abnormally. - (C_FUNCTION_IMPLICIT_INT): New macro. - * c-typeck.c (build_function_call): Set it. - (c_expand_return): Set current_function_returns_value even if the - value is erroneous. - -2002-02-06 Jakub Jelinek - - PR c/5420: - * c-common.c (c_unsafe_for_reeval): Make COMPOUND_LITERAL_EXPR - unsafe for reevaluation. - -2002-02-06 Jakub Jelinek - - PR c/5482: - * c-common.c (c_expand_expr) [STMT_EXPR]: If last expression is not - EXPR_STMT, but COMPOUND_STMT, recurse into it. - -2002-02-06 Richard Henderson - - * cfganal.c (keep_with_call_p): Source for fixed_reg dest must - be a general_operand. Dest for function value must be a pseudo. - -2002-02-06 Nick Clifton - - * dbxout.c (dbxout_symbol_location): Accept LABEL_REFs as well - as SYMBOL_REFs from the constant pool. - -2002-02-06 Alexandre Oliva - - * dbxout.c (dbxout_parms): Apply DEBUGGER_ARG_OFFSET to parameters - passed by invisible reference. - -2002-02-05 Richard Henderson - - * config/sparc/sparc.h (ARG_POINTER_CFA_OFFSET): No stack bias. - -2002-02-06 Hans-Peter Nilsson - - Implement using "base addresses" in insn operands as default. - * config/mmix/mmix.c (mmix_conditional_register_usage): if - -mabi=gnu, modify fixed_regs to fit the GNU ABI. - (mmix_extra_constraint): Use 'R' to indicate that GETA should be - used to read the rtx value. - (mmix_target_asm_function_epilogue): Fix spacing. - (mmix_constant_address_p): Handle TARGET_BASE_ADDRESSES. - (mmix_legitimate_address): Ditto. - (mmix_encode_section_info): Set SYMBOL_REF_FLAG on rtx:es that - should be loaded with a GETA insn. Don't allocate needless extra - char for nul termination and fix misleading comment. - (mmix_print_operand_address): Handle constants if - TARGET_BASE_ADDRESSES. - (mmix_output_register_setting): Use base addressing if - TARGET_BASE_ADDRESSES and the number of insns is 3. - * config/mmix/t-mmix (MULTILIB_EXTRA_OPTS): New. - * config/mmix/mmix.md ("movdi"): Change the alternative with GETA - to use R as constraint, add LDA to match s. - * config/mmix/mmix.h (TARGET_BASE_ADDRESSES): New. - (TARGET_DEFAULT): Add TARGET_MASK_BASE_ADDRESSES. - (TARGET_SWITCHES): Add -mbase-addresses, -mno-base-addresses. - (FIXED_REGISTERS): Make registers $231..$246 fixed by default. - (MMIX_MMIXWARE_ABI_REG_ALLOC_ORDER): Move $231..$246 last, in - order with other fixed registers. - (MMIX_GNU_ABI_REG_ALLOC_ORDER): Put forward $231, in order with - other parameter/call-clobbered registers. - * doc/invoke.texi (Option Summary) : Add - -mbase-addresses, -mno-base-addresses. - (MMIX Options): Ditto. - -2002-02-05 John David Anglin - - * pa.h (PREDICATE_CODES): Add reg_before_reload_operand. - -2002-02-06 Aldy Hernandez - - * config/rs6000/altivec.h: Change elem to _S_elem. - -2002-02-05 Jason Thorpe - - * config/netbsd.h (WCHAR_TYPE): Define. - (WCHAR_TYPE_SIZE): Ditto. - (WINT_TYPE): Ditto. - * config/alpha/netbsd.h (WCHAR_TYPE): Remove. - (WCHAR_UNSIGNED): Ditto. - (WCHAR_TYPE_SIZE): Ditto. - (WINT_TYPE): Ditto. - * config/arm/netbsd.h: Likewise. - * config/i386/netbsd-elf.h: Likewise. - * config/i386/netbsd.h: Likewise. - * config/m68k/netbsd-elf.h: Likewise. - * config/m68k/netbsd.h: Likewise. - * config/ns32k/netbsd.h: Likewise. - * config/sparc/netbsd.h: Likewise. - * config/vax/netbsd.: Likewise. - -2002-02-05 Alexandre Oliva - - * target.h (struct gcc_target): Added ms_bitfield_layout_p. - * target-def.h (TARGET_MS_BITFIELD_LAYOUT_P): New. Added to... - (TARGET_INITIALIZER): this. - * doc/tm.texi (TARGET_MS_BITFIELD_LAYOUT_P): Document. - (BITFIELD_NBYTES_LIMITED): Markup fix. - * tree.h (default_ms_bitfield_layout_p): Declare. - (record_layout_info): Added prev_field. - * tree.c (default_ms_bitfield_layout_p): New fn. - * c-decl.c (finish_struct): Disregard EMPTY_FIELD_BOUNDARY and - PCC_BITFIELD_TYPE_MATTERS for MS bit-field layout. - * stor-layout.c: Include target.h. - (start_record_layout): Initialize prev_field. - (place_field): Handle MS bit-field layout, and disregard - EMPTY_FIELD_BOUNDARY, BITFIELD_NBYTES_LIMITED and - PCC_BITFIELD_TYPE_MATTERS in this case. Update prev_field. - * Makefile.in (stor-layout.o): Adjust dependencies. - -2002-02-05 Jason Merrill - - * collect2.c (dump_file): Pass DMGL_VERBOSE to cplus_demangle. - -2002-02-05 Andreas Jaeger - - * crtstuff.c: Fix comments. - -2002-02-05 Richard Henderson - - PR fortran/3393 - * loop.c (loop_iv_add_mult_emit_before): Copy multiplier as well. - (loop_iv_add_mult_sink, loop_iv_add_mult_hoist): Likewise. - - PR fortran/3392 - * config/mips/mips.c (function_arg): Handle TImode. - (function_arg_advance): Likewise. - -2002-02-05 Aldy Hernandez - - * config/rs6000/altivec.h (vec_step_help): Rename to - __vec_step_help. - -2002-02-05 Aldy Hernandez - - * config/rs6000/altivec.h: Fix typos. - -2002-02-05 Jason Thorpe - - * config/arm/netbsd.h: Correct a comment. - -2002-02-05 Aldy Hernandez - - * config/rs6000/rs6000.c (altivec_init_builtins): Fix typo - building void typed builtins. - - * config/rs6000/altivec.h (vec_ld*): Fix typos. - (vec_step): Implement for C++. - -Mon Feb 4 19:23:19 2002 Richard Kenner - - * final.c (final_scan_insn): Add case for NOTE_INSN_LOOP_END_TOP_COND. - -2002-02-04 Richard Henderson - - * combine.c (nonzero_bits): Re-introduce special case for - sp/fp/ap wrt REGNO_POINTER_ALIGN. - -2002-02-05 Aldy Hernandez - - * doc/extend.texi: Warn about unsupported usage of altivec - builtins. - - * config/rs6000/rs6000.md (altivec_vcmp*_p): Remove. - (altivec_predicate_*): New. - - * config/rs6000/altivec.h: Rewrite predicates to use new builtins. - Add C++ version of vec_*() functions. - - * config/rs6000/rs6000.c (bdesc_altivec_preds): New. - (bdesc_2arg): Remove altivec predicates. - (altivec_expand_builtin): Handle predicates. - (altivec_init_builtins): Handle predicates. - (altivec_expand_predicate_builtin): New. - -2002-02-04 John David Anglin - - * pa.c (DO_FRAME_NOTES): Move forward. - (store_reg): Revise handling of frame notes. - (load_reg): Likewise. - (set_reg_plus_d): Likewise. - (hppa_expand_prologue): Likewise. - (hppa_expand_epilogue): Likewise. - -2002-02-04 John David Anglin - - * unwind-dw2-fde-glibc.c: Define _GNU_SOURCE if not defined. - -2002-02-04 Jakub Jelinek - - PR c/4475, c++/3780: - * c-common.def (SWITCH_STMT): Add SWITCH_TYPE operand. - * c-common.h (SWITCH_TYPE): Define. - * c-typeck.c (c_start_case): Set SWITCH_TYPE. - * stmt.c (all_cases_count): Set lastval to thisval at end of loop. - Rename spareness variable to sparseness. - (expand_end_case_type): Renamed from expand_end_case, use orig_type - if non-NULL instead of TREE_TYPE (orig_index). - * tree.h (expand_end_case_type): Renamed from expand_end_case. - (expand_end_case): Define using expand_end_case_type. - * c-semantics.c (genrtl_switch_stmt): Pass SWITCH_TYPE - to expand_end_case_type. - * doc/c-tree.texi (SWITCH_STMT): Document SWITCH_TYPE. - -2002-02-04 John David Anglin - - * pa.h (PREFERRED_STACK_BOUNDARY): Define to match standard rounding. - (BIGGEST_ALIGNMENT): Change to 128. - -2002-02-04 John David Anglin - - * pa32-linux.h (LINK_COMMAND_SPEC): Define. - -2002-02-04 John David Anglin - - * pa.md (call_internal_reg_64bit): Remove unused variable. - -2002-02-04 Nick Clifton - - * config/arm/arm.h (machine_function): Add uses_anonymous_args - field. - (SETUP_INCOMING_VARARGS): Set uses_anonymous_args. - * config/arm/arm.c (current_function_anonymous_args): Delete, - replace uses with cfun->machine->uses_anonymous_args. - (arm_reorg): Do not reset uses_anonymous_args. - - * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any value in - any geenral register. - -2001-02-04 Bernd Schmidt s - - * cfgrtl.c (force_nonfallthru_and_redirect): Don't try to redirect - the entry block. - -2002-02-04 Richard Henderson - - * combine.c (force_to_mode): Remove STACK_BIAS code. - (nonzero_bits): Likewise. Replace sp/fp special case with - REGNO_POINTER_ALIGN. - - * config/sparc/sparc.h (FRAME_POINTER_REGNUM): Change to SFP. - (HARD_FRAME_POINTER_REGNUM): New. - (FIRST_PSEUDO_REGISTER, REG_CLASS_CONTENTS): Update. - (FIXED_REGS, CALL_USED_REGS): Update. - (REG_ALLOC_ORDER, REGISTER_NAMES): Update. - (CONDITIONAL_REGISTER_USAGE): Update for HFP. - (HARD_REGNO_NREGS): Update for SFP. - (STACK_POINTER_OFFSET): Include bias here ... - (FIRST_PARM_OFFSET): ... not here. - (STACK_BIAS): Remove. - (INIT_EXPANDERS): New. - (STARTING_FRAME_OFFSET): Do not include bias. - (ELIMINABLE_REGS, CAN_ELIMINATE, INITIAL_ELIMINATION_OFFSET): New. - (REGNO_OK_FOR_INDEX_P, REGNO_OK_FOR_BASE_P): Update for SFP. - (REG_OK_FOR_INDEX_P, REG_OK_FOR_BASE_P): Likewise. - * config/sparc/aout.h (DBX_REGISTER_NUMBER): Update for HFP. - * config/sparc/litecoff.h, config/sparc/sol2.h: Likewise. - * config/sparc/sparc.c (mem_min_alignment): Update for HFP. - (sparc_nonflat_function_prologue, epilogue_renumber): Likewise. - (MUST_SAVE_REGISTER): Likewise. - (sparc_flat_function_prologue): Likewise. - (sparc_flat_function_epilogue): Likewise. - (HARD_FRAME_POINTER_MASK): Rename from FRAME_POINTER_MASK. - (sparc_init_modes): SFP is GENERAL_REGS. - (sparc_builtin_saveregs): SFP does not have bias applied. - -2002-02-04 Richard Henderson - - * config/alpha/alpha.c (current_function_is_thunk): Don't check - current_function_is_thunk. - (alpha_sa_mask): Distinguish between current_function_is_thunk - called from ASM_OUTPUT_MI_THUNK and not. - (alpha_does_function_need_gp): Thunks always need gp. - (alpha_start_function, alpha_output_function_end_prologue): Likewise. - (alpha_output_mi_thunk_osf): New. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (ASM_OUTPUT_MI_THUNK): New. - -2002-02-04 Richard Sandiford - - * c-typeck.c (build_c_cast): Warn when qualifiers are added to - function types, not when they're taken away. - -Mon Feb 4 09:05:58 2002 Jeffrey A Law (law@redhat.com) - - * cfgrtl.c (try_redirect_by_replacing_jump): Remove associated - CODE_LABEL and jump table when replacing a table jump with a - simple jump. - -2002-02-04 Ulrich Weigand - - * config/s390/s390-protos.h (legitimize_la_operand, - s390_secondary_input_reload_class, s390_plus_operand, - s390_expand_plus_operand): Add prototypes. - - config/s390/s390.c (s390_secondary_input_reload_class, - s390_plus_operand, s390_expand_plus_operand): New functions. - - (struct s390_address): New member 'pointer'. - (s390_decompose_address): Compute it. - (legitimate_la_operand_p): Use it. - (legitimize_la_operand): New function. - (movti, movdi, movdf splitters): Call it. - - config/s390/s390.h (SECONDARY_INPUT_RELOAD_CLASS): Define. - (PREDICATE_CODES): Add s390_plus_operand. - - config/s390/s390.md (adddi3_inv_64, addaddr_ccclobber): Delete. - (la_ccclobber): Allow GENERAL_REGS as output operand. - - (reload_load_address, *reload_load_address_reg_0, *la, *do_la_reg_0, - *reload_la_64, *reload_la_31 and splitters): Delete, replace by ... - (*la_64, *la_31, reload_indi, reload_insi): ... these. - -2002-02-04 Ulrich Weigand - - * gcc/config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Fixed - register names for regular asm () construct. - -2002-02-04 Jakub Jelinek - - * config/i386/i386.md (movsf_1): Allow moving SF values in MMX - registers. - -2002-02-04 Jakub Jelinek - - * combine.c (recog_for_combine): Create a dummy insn with PATTERN - pat for recog. - -2002-02-04 Hartmut Penner - - * varasm.c (decode_rtx_const): Allow unspec (symbol_ref) in - constant pool to be identical by string address and index. - -2002-02-04 Anthony Green - - * output.h (SECTION_OVERRIDE): Define. - * varasm.c (named_section): Obey SECTION_OVERRIDE. - -2002-02-03 Jason Thorpe - - * config.gcc (arm*-*-netbsdelf*): Placeholder to prevent match - by existing arm*-*-netbsd* (a.out) target. - (ns32k-*-netbsdelf*): Likewise. - (sparc-*-netbsdelf*): Likewise. - (vax-*-netbsdelf*): Likewise. - -2002-02-03 Danny Smith - - * gthr-win32.h: Protect against conflicting typedef for BOOL in windows - headers and libobjc headers. - -2002-02-03 Mumit Khan - - * gthr-win32.h (__mingwthr_key_dtor): Use extern "C" linkage for C++. - (_mingw.h): Remove duplicate include. - -2002-02-03 Jason Thorpe - - * config.gcc: Set cpu_type to m68k for 68010, as well. - (m68010-*-netbsdelf*): New... - (m68k*-*-netbsdelf*): ...targets. - * config/m68k/netbsd-elf.h: New file. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.c (hand_list): Move inside function_arg. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.c (h8_push_ops): Move inside - h8300_init_once. - (h8_pop_ops): Likewise. - (h8_move_ops): Likewise. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.c (os_task): Make it static. - (monitor): Likewise. - (pragma_saveall): Likewise. - -2002-02-02 Alexandre Oliva - - * config/sh/sh.md (ic_invalidate_line): Make sure the immediate - constant is a valid sign-extension for Pmode. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.c: Fix formatting. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.md: Fix formatting. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.md (one_cmpl patterns): Tighten the - predicates of operands[1]. Split the patterns for each - processor variant. - -2002-02-02 Kazu Hirata - - * config/h8300/h8300.md (xor patterns): Tighten the predicates - of operands[1] to register_operand. - -2002-02-02 Neil Booth - - * cpphash.h (struct spec_nodes): Remove n__CHAR_UNSIGNED__. - * cpphash.c (_cpp_init_hashtable): Similarly. - * cppinit.c (cpp_create_reader): Default the signed_char flag. - (init_builtins): Define __CHAR_UNSIGNED__ appropriately. - (COMMAND_LINE_OPTIONS): Recognize -f{un,}signed-char. - (cpp_handle_option): Handle the new options. - * cpplex.c (cpp_interpret_charconst): Use new flag. - * cpplib.h (struct cpp_options): New member signed_char. - * gcc.c (cpp_unique_options): Remove %c spec and documentation. - (cpp_options): Handle -fsigned-char and -funsigned-char. - (static_specs): Remove signed_char_spec. - (do_spec1): Don't handle %c. - * system.h: Poison SIGNED_CHAR_SPEC. - * tradcif.y (yylex): Use flag_signed_char. - * tradcpp.h (flag_signed_char): New. - * tradcpp.c (flag_signed_char): New. - (main): Handle new command-line options. - (initialize_builtins): Define __CHAR_UNSIGNED__ if appropriate. -config: - * alpha/alpha.h (SIGNED_CHAR_SPEC): Remove. - * avr/avr.h: Remove old comments. - * i960/i960.h (CPP_SPEC): Pass -fsigned-char if -mic*. - (CC1_SPEC): Pass -fsigned-char if -mic*. - (SIGNED_CHAR_SPEC): Remove. -doc: - * tm.texi (SIGNED_CHAR_SPEC): Remove documentation. - -2002-02-01 Eric Christopher - - From Daniel Jacobowitz - * config/mips/mips.h (FUNCTION_PROFILER): Fix function profiling. - * config/mips/linux.h (ASM_OUTPUT_REG_PUSH): Undefine. - (ASM_OUTPUT_REG_POP): Ditto. - -2002-02-02 Neil Booth - - * c-decl.c, tree.c, tree.h, objc/objc-act.c: Revert bitfield - patch. - -2002-02-02 Jakub Jelinek - - * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Add missing | separators. - -2002-02-02 Jakub Jelinek - - PR c/5304: - * expmed.c (expand_mult_highpart): Use immed_double_const for wide_op1 - unconditionally. - -2002-02-01 Janis Johnson - - * cfganal.c: Include tm_p.h. - (keep_with_call_p): Fix the test that determines if a register holds - the return value of a call. - -2002-02-01 DJ Delorie - - * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): If - we are given conflicting registers, switch to the other one we - had allocated for us. - * config/sparc/sparc.md (reload_indi, reload_outdi): Pass op[2] - as TImode so we know when the "other" register is available. - -2002-02-01 David O'Brien - - * config/sparc/sol2-sld-64.h: Include sparc/biarch64.h rather than - sparc/sparc_bi.h. - -2002-02-01 Janis Johnson - - * cfganal.c (keep_with_call_p): New function. - (flow_call_edges_add): Prevent splitting a block between a call and - a single-set instruction that should be kept in the same block. - -2002-02-01 Craig Rodrigues - - * doc/install.texi (avr): Update outdated URL. - -2002-01-30 Andrew Haley - - * config/stormy16/stormy16.md (pushqi): New. - (popqi): New. - (pushhi): New. - (pophi): New. - (movhi): Remove stack operands. - (movqi): Likewise. - * config/stormy16/stormy16.h (PREDICATE_CODES): Add - nonimmediate_nonstack_operand. - * config/stormy16/stormy16.c (nonimmediate_nonstack_operand): - New. - * config/stormy16/stormy16-protos.h (nonimmediate_nonstack_operand) - New. - -2002-01-31 Jason Merrill - - * Makefile.in (c-parse.c): Handle .output file. - * objc/Make-lang.in (objc-parse.c): Likewise. - -2002-02-01 Alexandre Oliva - - * config/mips/mips.h (ENDIAN_SPEC): Output the endianness flag if - the -me[lb] option is given. Don't output the default flag - twice. - -2002-01-31 Zack Weinberg - - * c-lex.c (yyparse): Call debug_hooks->start_source_file for - the primary source file; this has not been done yet. - * c-decl.c (c_expand_body): Reset input_filename from - DECL_SOURCE_FILE (fndecl) before calling init_function_start. - -2002-01-31 Kazu Hirata - - * rtlanal.c (subreg_regno_offset): Do not use - SUBREG_REGNO_OFFSET. - * system.h: Add SUBREG_REGNO_OFFSET to the GCC poison list. - * doc/tm.texi (SUBREG_REGNO_OFFSET): Remove. - -2002-01-31 Joseph S. Myers - - * gccbug.in: Follow GNU Coding Standards for --version. Use GCC - version rather than GNATS version in --version output. - -2002-01-31 Richard Sandiford - - * ifcvt.c (noce_process_if_block): Make a copy of the destination - when copying back from a temporary. - -2002-01-30 Richard Henderson - - * ifcvt.c (dead_or_predicable): Handling merging when other_bb - and new_dest are the same. - -2002-01-30 Richard Henderson - - PR opt/5076 - * rtl.h (NOTE_INSN_LOOP_END_TOP_COND): New. - * rtl.c (note_insn_name): Update. - * emit-rtl.c (remove_unnecessary_notes): Kill it. - * stmt.c (expand_end_loop): Kill jump opt code. Use LOOP_END_TOP_COND - to perform loop rotation. - (expand_exit_loop_top_cond): New. - * tree.h (expand_exit_loop_top_cond): Declare it. - * c-semantics.c (genrtl_while_stmt): Use it. - (genrtl_for_stmt): Likewise. - -2002-01-30 Alexandre Oliva - - * config/mips/mips.h (PARM_BOUNDARY): Guarantee alignment of - arguments to 64-bit boundaries on 64-bit ABIs. - -2002-01-30 Steve Ellcey - - * loop.c (loop_invariant_p): Special case pic_offset_table_rtx. - -2002-01-31 Joseph S. Myers - - * c-decl.c (grokdeclarator): Handle type being a typedef for an - invalid type. - -2002-01-30 David O'Brien - - * config.gcc: Include sparc/biarch64.h rather than sparc/sparc_bi.h. - * config/sparc/sparc_bi.h: Remove file. - * config/sparc/biarch64.h: New file (rename of sparc_bi.h). - -2002-01-30 Richard Henderson - - * sched-deps.c (sched_analyze): Make a call read the frame pointer. - -2002-01-30 Zack Weinberg - - * expmed.c (emit_store_flag): Call protect_from_queue on op0 and op1. - -2002-01-30 Jason Merrill - - * dwarf2out.c (dwarf_cfi_name): Add other DWARF 3 codes. - (output_cfi): Likewise. Disable DW_CFA_GNU_negative_offset_extended. - (reg_save): Use DW_CFA_offset_extended_sf instead. - - * dwarf2out.c (dwarf2out_finish): Don't abort if there were errors. - -2002-01-29 Jakub Jelinek - - * cselib.c (cselib_record_sets): Use IF_THEN_ELSE result - in cselib_lookup. - -2002-01-29 Aldy Hernandez - - * rs6000.md ("*call_value_local32"): Remove constraints. - ("*call_value_local64"): Same. - ("*call_value_indirect_nonlocal_aix32"): Same. - ("*call_value_nonlocal_aix32"): Same. - ("*call_value_indirect_nonlocal_aix64"): Same. - ("*call_value_nonlocal_aix64"): Same. - ("*call_value_nonlocal_sysv"): Same. - -2002-01-29 Richard Henderson - - * config/alpha/elf.h (SDB_DEBUGGING_INFO): Undef. - -2002-01-29 Richard Henderson - - * expr.c (force_operand): Ignore flag_pic for detecting pic - address loads. - * regclass.c (init_reg_sets_1): Test fixed_regs not flag_pic - for determining if PIC_OFFSET_TABLE_REGNUM is call-clobbered. - * resource.c (mark_target_live_regs): Use regs_invalidated_by_call - instead of open-coded loop. - * doc/tm.texi (PIC_OFFSET_TABLE_REGNUM): Clarify that it must - be fixed when in use. - -2002-01-29 Richard Henderson - - * sched-int.h (struct deps_reg): Add uses_length, clobbers_length. - * sched-rgn.c (propagate_deps): Update them. - * sched-deps.c (sched_analyze_insn): Update them. Flush the - clobbers list when either gets too long. - -2002-01-29 Jakub Jelinek - - * config/i386/i386.h (LIMIT_RELOAD_CLASS): Handle LEGACY_REGS - and INDEX_REGS the same as GENERAL_REGS. - (SECONDARY_OUTPUT_RELOAD_CLASS): Likewise. - -2002-01-29 Neil Booth - - * tree.c (build_nonstandard_integer_type): Correct prototype. - -2002-01-29 Ulrich Weigand - - * config/s390/s390.md (movstrsico, movstrdix_64, - movstrsix_31): Remove, replace by ... - (movstrdi_short, movstrsi_short, movstrdi_long, - movstrsi_long): ... these. New. - (movstrdi, movstrsi): Adapt. - - (rotldi3, rotlsi3, ashldi3, *ashldi3_31, *ashldi3_64, - ashlsi3, lshrdi3, *lshrdi3_31, *lshrdi3_64, lshrsi3): - Remove unnecessary CC clobber. - (*ashrdi3_cc_31, *ashrdi3_cconly_31, *ashrdi3_cc_64, - *ashrdi3_cconly_64, *ashrsi3_cc, *ashrsi3_cconly): New. - - (divmoddi4): Don't partially initialize TImode register. - -2002-01-29 Geoffrey Keating - - * doc/sourcebuild.texi (C Tests): Document gcc.dg/debug directory. - -2002-01-29 Richard Henderson - - * flow.c (print_rtl_and_abort): Remove. - (print_rtl_and_abort_fcn): Remove. - (verify_local_live_at_start): Use dump_bb instead. - (verify_wide_reg): Likewise. Take a basic_block, not rtl endpoints. - (verify_wide_reg_1): Return 2 on mode test failure. - -2002-01-29 Neil Booth - - PR c/3325, c/3326, c/2511, c/3347 - * c-decl.c (enum_decl_context): Remove BITFIELD. - (grokdeclarator): Take bitfield width as an input. - Ensure bitfields are given the correct type. Perform - bitfield width validation with build_bitfield_integer_type - rather than waiting for finish_struct. - (grok_typename, grok_typename_in_parm_context, start_decl, - push_parmdecl, grokfield, start_function): Update calls to - grokdeclarator. - (build_bitfield_integer_type): New function. - (finish_struct): Move bitfield validation to grokdeclarator - and build_bitfield_integer_type. - * tree.c (build_nonstandard_integer_type): New function. - * tree.h (build_nonstandard_integer_type): New prototype. -objc: - * objc-act.c (objc_copy_list): Remove DECL_INITIAL kludge. - -2002-01-29 Jakub Jelinek - - PR other/1502: - * cppinit.c (cpp_handle_option): Add ignore argument, if it is zero, - don't ignore unrecognized -W* options. - (cpp_handle_options): Pass 1 as last argument to cpp_handle_option. - * cpplib.h (cpp_handle_option): Adjust prototype. - * c-decl.c (c_decode_options): Pass 0 as last argument to - cpp_handle_option. - - PR c/2896: - * gcc.c (cpp_unique_options): Split from cpp_options. - (cpp_options): Source cpp_unique_options. - (default_compilers): Use cpp_unique_options instead of cpp_options - when used together with cc1_options. - (static_specs): Add cpp_unique_options. - * objc/lang-specs.h: Use cpp_unique_options instead of cpp_options - when used together with cc1_options. - -2002-01-29 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype of - output_a_shift. - * config/h8300/h8300.c (output_a_shift): Remove an unused - argument 'insn'. Remove redundant code. - * config/h8300/h8300.md: Adust to the new prototype of - output_a_shift. - -2002-01-29 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototypes of - emit_a_rotate and expand_a_rotate. - * config/h8300/h8300.c (emit_a_rotate): Change the type of the - first argument to 'enum rtx_code'. - (expand_a_rotate): Likewise. - -2002-01-28 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype of - output_simode_bld. - * config/h8300/h8300.c (output_simode_bld): Remove an argumen - 'log2'. - * config/h8300/h8300.md: Adjust to the new prototype. - -2002-01-28 Kazu Hirata - - * conifg/h8300/h8300.c (h8300_adjust_insn_length): Remove - redundant code. - -2002-01-28 John David Anglin - - * emit-rtl.c (gen_rtx_REG): Check that the PIC_OFFSET_TABLE_REGNUM - is a fixed register before returning pic_offset_table_rtx. - * loop.c (scan_loop): Don't hoist insns that set pic_offset_table_rtx - when PIC_OFFSET_TABLE_REG_CALL_CLOBBERED is defined. - -2002-01-28 Jason Merrill - - * dwarf2.h: Sync with src version. - -2002-01-28 Paul Koning - - * builtin-types.def (BT_FN_VOID_CONST_PTR_VAR): Replace - BT_FN_VOID_PTR_VAR. - * builtins.def (BUILT_IN_PREFETCH): Change first argument to be const. - * doc/extend.texi (__builtin_prefetch): Update documentation: - first argument is now const void ptr. - -2002-01-28 Kazu Hirata - - * config/h8300/h8300-protos.h: Remove an unused prototype. - -2002-01-28 Roman Zippel - - * toplev.c (lang_independent_init): Round up identifier size. - -2002-01-28 Richard Earnshaw - - * config.gcc: Revert previous change. - -2002-01-28 Andris Pavenis - - * config/i386/djgpp.h: Use STRIP_NAME_ENCODING in macro UNIQUE_SECTION - -2002-01-28 Richard Earnshaw - - * config.gcc (*-*-netbsdelf*): Set up generic parameters. - (*-*-netbsd*): Always use collect2. Remove collect2 settings from - other non-elf netbsd config frags. - * config/netbsd-aout.h (STARTFILE_SPEC): Don't pull in c++rt0 since - collect2 will does that. - * config/netbsd.h (LIBGCC_SPEC): Add white space before -lgcc, so that - shared-lib frobbing will work. - -2002-01-28 Kazu Hirata - - * config/h8300/h8300.h: Fix formatting. - * config/h8300/h8300.md: Likewise. - -2002-01-28 Loren J. Rittle - - * fixinc/inclhack.def (strict_ansi_not): Add a bypass based on - the old, removed AAA_standards fix. - * fixinc/fixincl.x: Rebuilt. - -2002-01-28 Hans-Peter Nilsson - - * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Change to emit - atexit call in crtbegin, hooked in after call to frame_dummy; - register EH before registering __fini__start. - -2002-01-28 Aldy Hernandez - - * config/rs6000/altivec.h: Remove spurious semicolons. - -2002-01-27 Kazu Hirata - - * config/h8300/h8300.md: Replace dead bit extraction patterns - with ones that work. - -Sun Jan 27 13:23:40 2002 Richard Kenner - - * emit-rtl.c (get_mem_attrs): Don't default alignment for non-BLKmode - if not STRICT_ALIGNMENT. - * rtl.h (MEM_ALIGN): Likewise. - -2002-01-27 Craig Rodrigues - - * doc/invoke.texi (-fdump-translation-unit): Revert this - patch: 2001-10-21 Craig Rodrigues - -2002-01-27 Kazu Hirata - - * config/h8300/h8300.md (define_constants): New. - (anonymous patterns) Use defined constants appropriately. - -2002-01-27 Kazu Hirata - - * config/h8300/h8300.c (function_arg): Remove redundant code. - -2002-01-26 Richard Henderson - - * sched-deps.c (reg_pending_uses_head): New. - (reg_pending_barrier): Rename from reg_pending_sets_all. - (find_insn_list): Don't mark inline. - (find_insn_mem_list): Remove. - (add_dependence_list, add_dependence_list_and_free): New. - (flush_pending_lists): Replace only_write param with separate - for_read and for_write parameters. Update all callers. Use - add_dependence_list_and_free. - (sched_analyze_1): Do not add reg dependencies here; just set - the pending bits. Use add_dependence_list. - (sched_analyze_2): Likewise. - (sched_analyze_insn): Replace schedule_barrier_found with - reg_pending_barrier. Add all dependencies for pending reg - uses, sets, and clobbers. - (sched_analyze): Don't add reg dependencies for calls, just - set pending bits. Use regs_invalidated_by_call. Treat - sched_before_next_call as a normal list, not a fake insn. - (init_deps): No funny init for sched_before_next_call. - (free_deps): Free pending mems lists. Don't zero reg_last. - (init_deps_global): Init reg_pending_uses. - (finish_deps_global): Free it. - * sched-int.h (deps): Make in_post_call_group_p boolean. Update docs. - (find_insn_mem_list): Remove. - * sched-rgn.c (concat_INSN_LIST, concat_insn_mem_list): New. - (propagate_deps): Use them. Zero temp mem lists. - -2002-01-26 Richard Henderson - - * Makefile.in (CRTSTUFF_CFLAGS): New. - (crtbegin.o, crtend.o, crtbeginS.o, crtendS.o, crtbeginT.o): Use it. - * config.gcc (alpha-linux, alpha-freebsd, alpha-netbsd): Use plain - crtstuff.c instead of alpha assembly version. - * crtstuff.c (CRT_CALL_STATIC_FUNCTION): Rewrite to assume the - entire dummy function sequence. Use FORCE_CODE_SECTION_ALIGN - not FORCE_{INIT,FINI}_SECTION_ALIGN. - (__do_global_dtors_aux): Mark used. - (frame_dummy, __do_global_ctors_aux): Mark used. - (fini_dummy, init_dummy): Remove. - - * config/alpha/crtbegin.asm: Remove file. - * config/alpha/crtend.asm: Remove file. - * config/alpha/t-crtbe: Remove file. - * config/alpha/elf.h (CRT_CALL_STATIC_FUNCTION): New. - (LINK_EH_SPEC): New. - - * config/cris/cris.h (CRT_CALL_STATIC_FUNCTION): Rewrite old - FORCE_INIT_SECTION_ALIGN hack. Register __fini_start before - calling constructors. - * config/cris/linux.h (CRT_CALL_STATIC_FUNCTION): Undef. - - * config/i386/i386.h (CRT_CALL_STATIC_FUNCTION): New. - * config/i386/linux.h (CRT_CALL_STATIC_FUNCTION): Replace old - CRT_END_INIT_DUMMY hack. - * config/i386/sol2.h (FORCE_CODE_SECTION_ALIGN): Replace - FORCE_{INIT,FINI}_SECTION_ALIGN. - - * config/mcore/mcore-elf.h (FORCE_CODE_SECTION_ALIGN): Replace - FORCE_{INIT,FINI}_SECTION_ALIGN. - - * config/s390/s390.h (CRT_CALL_STATIC_FUNCTION): Update for new - invocation sequence. - * config/sh/sh.h (CRT_CALL_STATIC_FUNCTION): Likewise. - - * doc/tm.texi (CRT_CALL_STATIC_FUNCTION): Update. - (FORCE_CODE_SECTION_ALIGN): New. - -2002-01-26 Richard Henderson - - * config/cris/cris.c (cris_print_operand): Handle 64-bit CONST_INT. - -2002-01-26 Richard Henderson - - * config/alpha/alpha.c (alpha_sa_mask): Mark RA for unicos here too. - (alpha_sa_size): Use alpha_sa_mask to compute size of saved regs. - -2002-01-26 Kazu Hirata - - * config/h8300/h8300.md: Remove bit extraction patterns that - cannot be triggered. - Restrict each bit extraction pattern to a variant on which the - pattern is tested. - -2002-01-26 Joseph S. Myers - - * doc/include/texinfo.tex: Update to version 2002-01-04.07. - -2002-01-26 Kazu Hirata - - * config/h8300/h8300.md: Remove bit test patterns that cannot - be triggered. - Restrict each bit test pattern to a variant on which the - pattern is tested. - -2002-01-26 Kaveh R. Ghazi - - * builtins.c (expand_builtin_strncat): Remove redundant check for - INTEGER_CST. - -2002-01-25 David O'Brien - - * config/i386/x86-64.h (DEFAULT_PCC_STRUCT_RETURN): Do not overide - default setting. - * config/i386/freebsd64.h (DEFAULT_PCC_STRUCT_RETURN): Do not override - existing setting. - -2002-01-25 Geoffrey Keating - - * dbxout.c (dbxout_init): Use assemble_name rather than just - stripping off the first character. - (dbxout_source_file): Likewise. - -2002-01-25 DJ Delorie - - * config/sparc/sparc.c (sparc_emit_set_symbolic_const64): Compare - using rtx_equal_p, not by comparing pointers. - -2002-01-25 Steve Ellcey - - * emit-rtl.c (gen_rtx_REG): Always return the same rtx - for PIC_OFFSET_TABLE_REGNUM. - (init_emit_once): Use gen_raw_REG to initialize pic_offset_table_rtx. - -2002-01-25 David O'Brien - - * config.gcc (x86_64-*-freebsd*): New target. - (x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its - value. - (i[34567]86-*-freebsd*): Don't include svr4.h. - * config/i386/freebsd64.h: New file. - -2002-01-25 Douglas B Rupp - - * config/alpha/x-vms (version): Make static. - - * config/alpha/vms.h (MD_FALLBACK_FRAME_STATE_FOR): Fix error - in previous checkin. - - * Makefile.in (install-headers-cp): New target. - * config.gcc (alpha-dec-*vms*): Install headers with - install-headers-cp - -Fri Jan 25 22:42:49 CET 2002 Jan Hubicka - - * unroll.c (unroll_loop): Lower final_value to nonmemory operand; - avoid it's copies. - -Fri Jan 25 08:26:19 2002 Richard Kenner - - * builtins.c (expand_builtin_strncpy): Use integer_zerop instead - of compare_tree_int. - (expand_builtin_strncat): Likewise. - * c-decl.c (finish_struct): Use tree_low_cst. - * tree.h (compare_tree_int): Arg is unsigned HOST_WIDE_INT. - * tree.c (compare_tree_int): Likewise. - -2002-01-25 Ulrich Weigand - - * reload1.c (eliminate_regs_in_insn): Recognize frame pointer - adjustments even if they are implemented by more than two insns. - -Fri Jan 25 20:43:56 CET 2002 Jan Hubicka - - * df.c (df_ref_create, df_ref_record_1, df_ref_record): Kill BB arg. - * df.h (struct ref): Kill B. - (DF_REF_BB, DF_REF_BBNO): Use BLOCK_FOR_INSN. - - * basic-block.h (PROP_EQUAL_NOTES): New flag. - * flow.c (propagate_one_insn): Use it. - (mark_used_regs): Handle NIL. - -2002-01-25 Geoffrey Keating - - * config/stormy16/stormy16.md (tablejump_pcrel): Use a MEM - to help folding. - -2002-01-25 David Edelsohn - - * rs6000.md (prefetch): Make address V4SI mode so that the address - is restricted to legitimate form for instruction. - -2002-01-25 Bob Wilson - - * doc/install.texi (xtensa-*-elf): New target. - (xtensa-*-linux*): New target. - * doc/contrib.texi: Add myself. - -2002-01-25 Nick Clifton - - * config/arm/arm.c (arm_hard_regno_mode_ok): Allow any general - purpose register to hold an SImode (or smaller) value. - -2002-01-25 Jakub Jelinek - - * unwind-dw2-fde-glibc.c: If inhibit_libc, use __register_frame* - registry only. - * crtstuff.c: Likewise. - -2002-01-25 Kazu Hirata - - * config/h8300/h8300.md (negation patterns): Tighten - predicates to register_operand. - -2002-01-24 Aldy Hernandez - - * loop.c (emit_prefetch_instructions): Use the prefetch insn's - mode, not Pmode. - - * builtins.c (expand_builtin_prefetch): Same. - -2002-01-24 Alexandre Oliva - - * config/sh/sh.md (sym_label2reg): Make sure all CONSTs have - modes. - -2002-01-24 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Remove support for - operand character 'A'. - * config/h8300/h8300.md (three anonymous patterns): Replace - operand character 'A' with either 'T' or 'S'. - -2002-01-24 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Remove support for - operand character 'U'. - -2002-01-24 Andris Pavenis - - * config/i386/t-djgpp: Use NATIVE_SYSTEM_HEADER_DIR. - -2002-01-24 Nick Clifton - - * config/arm/arm.c (arm_hard_regno_mode_ok): Allow SImode - values to be assigned to the stack pointer. - -2002-01-14 Hartmut Penner - - * emit_rtl.c (gen_lowpart_common): Conversion from const_int - to const_double needs to be done right for big-endian systems. - -2002-01-24 Jason Merrill - - PR c++/2432 - * config/sparc/sparc.md (call-jump peepholes): Pass the right insn - to can_throw_internal. - -2002-01-23 Richard Henderson - - * fold-const.c (fold): Change UINT_MAX test to check vs precision - rather than TYPE_MAX_VALUE. Fix indentation and a bogus negation. - -2002-01-24 Alexandre Oliva - - * config/sh/sh.md (symGOT_load, sym2GOT, sym2GOTOFF): New expands. - (symGOT2reg): Use them, then set as GOT value as unchanging. - (symGOTOFF2reg): Set REG_EQUAL note. Use a different pseudo - as a temporary, if possible. - (symPLT_label2reg): Enclose (pc) in UNSPEC_PIC. Emit - sym@PLT-(.LPCS#+2-.) instead of sym@PLT+.-(.LPCS#+2). - -2002-01-23 Kazu Hirata - - * config/h8300/h8300.md: Fix xorqi and xorqi so that they will - accept to accept 0x80 as operands[2]. - -2002-01-24 Alexandre Oliva - - * config/sparc/sparc.md (fix_trunctfdi2): Correct typo in mode. - -2002-01-23 Richard Henderson - - * config/alpha/alpha.md (call_value_osf_1_er peepholes): Fix typo. - -2002-01-23 Aldy Hernandez - - * c-parse.in (parmlist_or_identifiers): Add maybe_attribute. - (parmlist_or_identifiers_1): Verify that only a parmlist follows - an attribute. - -2002-01-23 Richard Henderson - - * expr.c (move_by_pieces_1): Extend size before negation. - - * config/m68k/t-m68kbare (MULTILIB_OPTIONS): Add 68040 and 68060. - (MULTILIB_MATCHES): Remove 68040 and 68060 aliases. - (MULTILIB_EXCEPTIONS): Ignore 68881 and soft-float for 68040 and 68060. - * config/m68k/t-m68kelf: Likewise. - -2002-01-23 Bob Wilson - - * config/xtensa/elf.h: New file. - * config/xtensa/lib1funcs.asm: New file. - * config/xtensa/lib2funcs.S: New file. - * config/xtensa/linux.h: New file. - * config/xtensa/t-xtensa: New file. - * config/xtensa/xtensa-config.h: New file. - * config/xtensa/xtensa-protos.h: New file. - * config/xtensa/xtensa.c: New file. - * config/xtensa/xtensa.h: New file. - * config/xtensa/xtensa.md: New file. - * config.gcc (xtensa-*-elf*): New target. - (xtensa-*-linux*): New target. - * cse.c (canon_hash): Compare rtx pointers instead of register - numbers. This is required for the Xtensa port. - * integrate.c (copy_insn_list): Handle case where the static - chain is in memory and the memory address has to be copied to - a register. - * doc/invoke.texi (Option Summary): Add Xtensa options. - (Xtensa Options): New node. - * doc/md.texi (Machine Constraints): Add Xtensa machine constraints. - -2002-01-23 Zack Weinberg - - * diagnostic.c (internal_error): Do ICE suppression only - when ENABLE_CHECKING is not defined. - - * c-typeck.c (require_complete_type): Return error_mark_node - if type is error_mark_node. - -2002-01-23 Janis Johnson - - * toplev.c (process_options): Disable -fprefetch-loop-arrays with - -Os and issue a warning. - -2002-01-23 Zack Weinberg - - * doc/fragments.texi, doc/hostconfig.texi: Update to reflect - current (lack of) need for host configuration by hand. - - * doc/gccint.texi, doc/rtl.texi, doc/tm.texi: Adjust cross - references. Documentation of some target macros moved from - hostconfig.texi to tm.texi. - -2002-01-23 Will Cohen - - * config/arm/arm.h (THUMB_FUNCTION_PROFILER): Define if not currently - defined. - -2002-01-23 Kazu Hirata - - * config/h8300/h8300.md (*andorhi3): Accept 0x8000 as an - operand[3]. - -2002-01-23 Jason Merrill - - * tree.c (build1): Don't set TREE_READONLY on INDIRECT_REF. - - * function.c (assign_parms): Don't put args of inline functions - into registers when not optimizing. - -2002-01-23 Nick Clifton - - * config/arm/arm.md (UNSPEC_PROLOGUE_USE): New unspec constant. - (prologue_use): New pattern. - * config/arm/arm.c (expand_prologue): Use gen_prologue_use in - preference to gen_rtx_USE. - (thumb_expand_prologue): Use gen_prologue_use in preference to - gen_rtx_USE. - (thumb_expand_epilogue): Use gen_prologue_use in preference to - gen_rtx_USE. - -2002-01-23 Hans-Peter Nilsson - - * loop.c [!HAVE_prefetch] (CODE_FOR_prefetch): Define to 0. - -2002-01-23 Neil Booth - - PR c/3504 - * doc/extend.texi: Correct documentation of __alignof__. - -2002-01-22 Zack Weinberg - - * params.h: Rename arguments of DEFPARAM so that it will be - recognized as a translation keyword. - -2002-01-22 Aldy Hernandez - - * extend.texi: Document altivec functions. - Fix N-bit adjectives in X86 builtin documentation. - -2002-01-22 Alexandre Oliva - - * reload.c (reg_overlap_mentioned_for_reload_p): Handle PLUS and - auto_inc_dec values. - -2002-01-22 Richard Earnshaw - - * config/netbsd-aout.h (SWITCH_TAKES_ARG): Remove bogus white space - after backslash. - (ASM_DECLARE_OBJECT_NAME): Add missing backslash before final line. - -2002-01-22 Alexandre Oliva - - * config/i386/freebsd-aout.h (ASM_QUAD): Undefine. - -2002-01-22 Richard Henderson - - * config/alpha/alpha.c (split_small_symbolic_mem_operand): Use - copy_insn not copy_rtx. - -2002-01-23 Alan Modra - - * combine.c (simplify_and_const_int): Don't trunc_int_for_mode - "nonzero" as that might add "1" bits. Ensure "constop" is - properly sign extened. - (force_to_mode): Tweak for sign extended constop. - -2002-01-22 Richard Henderson - - * config/alpha/alpha.c (some_small_symbolic_mem_operand) Use - for_each_rtx instead of assuming we're already looking at the MEM. - (split_small_symbolic_mem_operand): Likewise. - * config/alpha/alpha.h (PREDICATE_CODES): Update. - * config/alpha/alpha.md (small symbolic memory splitters): Update. - -2002-01-22 Richard Henderson - - * config/alpha/alpha.md (divmodsi_internal_er): Generate lituse - sequence number for the literal. - (divmoddi_internal_er): Likewise. - -2002-01-22 Craig Rodrigues - - PR java/4972 - * aclocal.m4 (AM_ICONV): Put linking flags for libiconv - in LIBICONV variable. - * configure: Regenerated. - -2002-01-22 Krister Walfridsson - - * dependence.c (build_def_use): Remove array_idx. - - * dwarfout.c (last_filename): Remove. - (output_compile_unit_die): Remove last_filename. - -2002-01-22 Roger Sayle - Richard Henderson - - PR opt/3640 - * fold-const.c (fold): Optimize unsigned comparisons against - UINT_MAX (and similar unsigned constants). - -2002-01-22 Janis Johnson - - * Makefile.in (loop.o): Depend on OPTABS_H. - * loop.c (emit_prefetch_instructions): Check the prefetch operand - against the predicate. - - PR target/5379 - * config/i386/i386.md (prefetch_sse): Specify "p" as a constraint - for the address operand. - -2002-01-22 Richard Henderson - - * config/alpha/freebsd.h (FUNCTION_PROFILER): Remove. - -2002-01-22 Craig Rodrigues - - PR other/5450 - * config/i386/sysv4.h (CPP_SPEC): Define, and add CPU - preprocessor flags. - -2002-01-22 Jason Thorpe - - * config.gcc (x86_64-*-netbsd*): New target. - * config/i386/netbsd64.h: New file. - -2002-01-22 Aldy Hernandez - - * regrename.c (kill_value): Fix typo. - -2002-01-22 Aldy Hernandez - - * doc/tm.texi: Remove STARTING_FRAME_PHASE. - - * config/rs6000/rs6000.h: Same. - - * function.c (instantiate_virtual_regs): Remove - STARTING_FRAME_PHASE. - (assign_stack_local_1): Same. - Calculate frame phase. - -2002-01-22 Nick Clifton - - * config/arm/arm.h (CONDITIONAL_REGISTER_USAGE): Move 'regno' - variable declaration to outer scope in order to simplify - future extensions. - (HARD_REGNO_MODE_OK): Replace macro body with a with a call to - arm_hard_regno_mode_ok. - * config/arm/arm-protos.h: Add a prototype for - arm_hard_regno_mode_ok. - * config/arm/arm.c (soft_df_operand): Remove now redundant - check for DImode values using IP_REGNUM. - (nonimmediate_soft_df_operand): Remove now redundant check for - DImode values using IP_REGNUM. - (arm_hard_regno_mode_ok): New function. New check: make sure - that DImode values are not stored in IP_REGNUM. - - * config/arm/arm.c (arm_expand_prologue): Replace REG_MAYBE_DEAD - note with a USE. - (thumb_expand_prologue): Replace REG_MAYBE_DEAD note with a USE. - -2002-01-22 Jason Merrill - - * c-semantics.c (genrtl_compound_stmt): Only check nesting - consistency if this COMPOUND_STMT is scoped. - -2002-01-22 Kazu Hirata - - * predict.c: Fix formatting. - * print-tree.c: Likewise. - * protoize.c: Likewise. - * real.h: Likewise. - * rtl.h: Likewise. - * sbitmap.h: Likewise. - * scan.c: Likewise. - * sched-deps.c: Likewise. - * sched-vis.c: Likewise. - * sdbout.c: Likewise. - * sibcall.c: Likewise. - * ssa.c: Likewise. - * ssa-ccp.c: Likewise. - * ssa-dce.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * system.h: Likewise. - -Tue Jan 22 06:26:33 2002 Richard Kenner - - * tree.c (int_fits_type_p): If bounds of a subtype are variable, see - if fits in bounds of base type. - - * dwarf2out.c (equate_decl_number_to_die): Add "int" to decls. - (loc_descriptor_from_tree, case CALL_EXPR, case ADDR_EXPR): New. - (add_bound_info, default): If can't find a context, make a - SAVE_EXPR. - (dwarf2out_finish): Check for SAVE_EXPR in node->created_for. - -2002-01-22 Hans-Peter Nilsson - - * c-typeck.c (parser_build_binary_op): If result from - build_binary_op is ERROR_MARK just return error_mark_node without - further processing. - -2002-01-21 Jason Thorpe - - * config/netbsd.h (TARGET_HAS_F_SETLKW): define. - Split a.out-specific bits into... - * config/netbsd-aout.h: ...this. - * config/netbsd-elf.h: New file. - * config/alpha/netbsd-elf.h: Remove. - * config/alpha/netbsd.h: Rewrite for a NetBSD/alpha ELF target. - * config/i386/netbsd-elf.h (LIB_SPEC): Remove. - (STARTFILE_SPEC): Remove redundant definition. - (ENDFILE_SPEC): Likewise. - (LINK_SPEC): Likewise. - (CPP_SPEC): Likewise. - (ASM_SPEC): Likewise. - (LIB_SPEC): Likewise. - (SWITCH_TAKES_ARG): Likewise. - (TARGET_MEM_FUNCTIONS): Likewise. - (CPP_PREDEFINES): Redefine. - (ASM_FINAL_SPEC): Remove redefinition. - (ASM_COMMENT_START): Redefine. - (FUNCTION_PROFILER): Define. - (TARGET_VERSION): Redefine. - Comment and formatting cleanup. - * config/i386/netbsd.h: Include . - * config/m68k/netbsd.h: Include . - * config/mips/netbsd.h: Rewrite for NetBSD/mips ELF target, - big- or little-endian. - * config/ns32k/netbsd.h: Include . - * config.gcc (*-*-netbsd*): Add definitions common to all - NetBSD configs. - (alpha*-*-netbsd*): Remove redundant xm_defines, gas, and - gnu_ld definitions. Add netbsd-elf.h to and remove - alpha/netbsd-elf.h from tm_file. Remove alpha/t-crtfm from - tmake_file, and don't lose previous tmake_file contents. - (arm*-*-netbsd*): Add netbsd-aout.h to tm_file. - (i[34567]86-*-netbsdelf*): Remove redundant xm_defines, gas, and - gnu_ld definitions. Add netbsd-elf.h to tm_file. - (mips-dec-netbsd*): Remove as alias for mipsel-*-netbsd*. - (mipsel-*-netbsd*): Rename this to... - (mips*-*-netbsd*): ...this. Add elfos.h to tm_file. Add - mips/little.h to tm_file for mips*el-*. - (powerpc-*-netbsd*): Remove redundant xm_defines definition. - (sparc-*-netbsd*): Add netbsd-aout.h to tm_file. - (vax-*-netbsd*): Add netbsd-aout.h to tm_file. - -2002-01-21 John David Anglin - - * pa-protos.h (reg_before_reload_operand): New function prototype. - * pa.c (reg_before_reload_operand): New function implementation. - * pa.md (decrement_and_branch_until_zero, movb): Use it. Change "!*m" - contraints to "*m". - -2002-01-21 Franz Sirl - - * combine.c (simplify_and_const_int): Properly sign-extend CONSTOP. - -2002-01-21 John David Anglin - - * pa64-hpux.h (MD_EXEC_PREFIX): Set to "/usr/ccs/bin". - (MD_STARTFILE_PREFIX): Set to "/usr/ccs/lib/pa20_64/". - (MD_STARTFILE_PREFIX_1): Set to "/opt/langtools/lib/pa20_64/". - (EH_FRAME_IN_DATA_SECTION): Define and update comment on init sections. - (ENDFILE_SPEC): Undefine. - (STARTFILE_SPEC): Redefine for PA. - -2002-01-21 Franz Sirl - - * config/rs6000/t-ppccomm (CRTSTUFF_T_CFLAGS_S): Re-add -fPIC. - -2002-01-21 Daniel Jacobowitz - - * config.gcc: Add entries to supported PowerPC --with-cpu - types. - -2002-01-21 Jakub Jelinek - - * config/i386/i386.c (ix86_function_arg_regno_p): Never return - true for 64-bit mode only SSE registers in 32-bit mode. - -2002-01-21 Kazu Hirata - - * unwind-dw2.c: Fix formatting. - * unwind-dw2-fde.c: Likewise. - * unwind-dw2-fde.h: Likewise. - * unwind-pe.h: Likewise. - * varasm.c: Likewise. - * varray.h: Likewise. - -2002-01-21 Hans-Peter Nilsson - - Remove workaround for register stack overwrite bug in mmix. - * config/mmix/mmix.c (mmix_target_asm_function_prologue): Remove - support for TARGET_REG_STACK_FILL_BUG. - * config/mmix/mmix.h: Remove member has_call_without_parameters. - (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_REG_STACK_FILL_BUG): - Delete. - (TARGET_DEFAULT): Remove TARGET_MASK_REG_STACK_FILL_BUG. - (TARGET_SWITCHES): Remove -mreg-stack-fill-bug-workaround and - -mno-reg-stack-fill-bug-workaround. - * config/mmix/mmix.md ("call", "call_value"): Don't set struct - machine member has_call_without_parameters. - * doc/invoke.texi (Option Summary) : Remove - -mreg-stack-fill-bug-workaround and - -mno-reg-stack-fill-bug-workaround. - (MMIX Options): Ditto. - -2002-01-21 Kazu Hirata - - * config/h8300/h8300.c (function_arg): Replace 0 with NULL_RTX - as appropriate. - Remove redundant code. - -2002-01-21 Joseph S. Myers - - * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h, - config/c4x/c4x.h, config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, - config/fr30/fr30.h, config/ia64/ia64.h, config/m68hc11/m68hc11.h, - config/mips/mips.h, config/rs6000/rs6000.h, config/sparc/sparc.h, - config/stormy16/stormy16.h, config/v850/v850.h: Remove commented - out target macro definitions and non-target-specific comments - mostly taken from old versions of the manual. - -2002-01-20 Kazu Hirata - - * config/h8300/h8300.h: Fix comment formatting. - * config/ia64/aix.h: Likewise. - * config/ia64/ia64-protos.h: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ia64/ia64intrin.h: Likewise. - * config/ia64/linux.h: Likewise. - * config/ia64/unwind-aix.c: Likewise. - * config/ia64/unwind-ia64.c: Likewise. - -2002-01-20 Kazu Hirata - - * config/h8300/h8300.c: Revise comments about shift code. - -2002-01-20 Kazu Hirata - - * config/h8300/h8300.c (function_arg): Update a comment. - -2002-01-20 Kazu Hirata - - * config/h8300/h8300.md: Update the comments at the beginning - of the file. - -2002-01-20 Kazu Hirata - - * config/i370/i370.c: Fix comment formatting. - * config/i370/i370.h: Likewise. - * config/i370/i370.md: Likewise. - * config/i370/linux.h: Likewise. - -Sun Jan 20 18:40:14 2002 Richard Kenner - - * reg-stack.c (subst_stack_regs): Properly check for deleted insn. - - * dwarf2out.c (loc_descriptor_from_tree): Add TRUTH_*_EXPR cases. - (gen_struct_or_union_type_die): Don't SIGSEGV if no TYPE_STUB_DECL - in incomplete case. - -2002-01-20 Graham Stott - - * cfgloop.c (flow_loop_preheader_scan): Fix typo. - -2002-01-19 John David Anglin - - * config.gcc (hppa*64*-*-hpux11*): Fix tmake_file. - -2002-01-19 Tom Rix - - * config/rs6000/rs6000.md: Fix DF split for 64 bit hosts. - -2002-01-18 Aldy Hernandez - - * doc/tm.texi (STARTING_FRAME_PHASE): Document. - - * function.c (assign_stack_local_1): Adjust x_frame_offset with - STARTING_FRAME_PHASE. - (STARTING_FRAME_PHASE): New. - (instantiate_virtual_regs): Check saneness of - STARTING_FRAME_PHASE. - - * config/rs6000/rs6000.h (STARTING_FRAME_PHASE): New. - -2002-01-19 Alexandre Oliva - - * config/sh/sh.md (movdf_i4 split): Fix alter_subreg calls. - -2002-01-18 Craig Rodrigues - - * doc/install.texi (hppa*-hp-hpux11): Clarify that GCC 2.95.x cannot - be used for bootstrapping GCC 3.0. - -2002-01-18 Kazu Hirata - - * config/h8300/h8300.md: Fix an insn length. - -2002-01-18 Kazu Hirata - - * bitmap.h: Fix comment formatting. - * combine.c: Likewise. - * cppfiles.c: Likewise. - * c-pragma.h: Likewise. - * c-typeck.c: Likewise. - * df.c: Likewise. - * dwarf2out.c: Likewise. - * function.c: Likewise. - * gcc.c: Likewise. - * genattrtab.c: Likewise. - * gthr-win32.h: Likewise. - * haifa-sched.c: Likewise. - * predict.c: Likewise. - * rtlanal.c: Likewise. - * rtl.h: Likewise. - * unwind-dw2-fde.h: Likewise. - * unwind-pe.h: Likewise. - * vmsdbgout.c: Likewise. - -Thu Jan 17 15:28:26 2002 Richard Kenner - - * attribs.c (decl_attributes): Clear ATTR_FLAG_TYPE_IN_PLACE - if type_required and passed decl. - -2002-01-17 Aldy Hernandez - - * config.gcc (cpu_type): Include altivec.h in powerpc - extra_headers. - Same for darwin. - - * config/rs6000/altivec.h: New. - -2002-01-17 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Update assembler and exception - handling information. - * doc/trouble.texi (Interoperation): Add libstdc++ information - for AIX. - (Misunderstandings): Add template instantiation and static template - member information for AIX. - -2002-01-17 Jason Merrill - - * dbxout.c (dbxout_type): Support const and volatile. - - * except.c (add_partial_entry): Remove backwards compatibility code. - (end_protect_partials): Likewise. - -2002-01-17 Jakub Jelinek - - * config/ia64/ia64.md (prologue_use): New. - * config/ia64/ia64.c (ia64_expand_prologue): Use - gen_prologue_use instead of gen_rtx_USE. - (group_barrier_needed_p): Handle CODE_FOR_prologue_use the same way - as CODE_FOR_pred_rel_mutex. - (ia64_sched_reorder2): Likewise. - -2002-01-16 Eric Christopher - - * config/mips/r3900.h: Reformat. - (SUBTARGET_CPP_SIZE_SPEC): Remove. - * config/mips/isa3264.h (SUBTARGET_CPP_SIZE_SPEC): Ditto. - * config/mips/mips.h (ABI_GAS_ASM_SPEC): Default to "". - (SUBTARGET_CPP_SIZE_SPEC): Rewrite. - * config/mips/t-elf: Remove mips3 multilib. - -2002-01-16 H.J. Lu - - * config/mips/linux.h: Include "mips/abi64.h". - -2002-01-16 H.J. Lu - - * config/mips/t-linux: New. - - * config.gcc: Add mips/t-linux to tmake_file for mips*-*-linux*. - - * config/mips/linux.h: Don't include "gofast.h". - (INIT_SUBTARGET_OPTABS): Removed. - -2002-01-16 Kazu Hirata - - * config/h8300/h8300-protos.h: Replace emit_a_shift with - output_a_shift. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.md: Likewise. - -2002-01-16 Kazu Hirata - - * config/h8300/h8300.md (pushqi1_h8300): Use a tab instead of - spaces after an opcode name. - (pushqi1_h8300hs): Likewise. - (pushhi1_h8300hs): Likewise. - -2002-01-16 Kazu Hirata - - * doc/extend.texi: Replace "option" with "attribute" - appropriately. - -2002-01-16 Jakub Jelinek - - * config/alpha/alpha.c (some_small_symbolic_mem_operand): Look into - (and:DI () (const_int -8)). - (split_small_symbolic_mem_operand): Split - (mem (and:DI () (const_int -8)). - -2002-01-16 Jakub Jelinek - - PR target/5309: - * config/sparc/sparc.c (ultrasparc_adjust_cost): Handle TYPE_IDIV the - same way as TYPE_IMUL. - (ultrasparc_sched_reorder): Likewise. - * config/sparc/sparc.md (type): Add comment to update - ultrasparc_sched_reorder when making changes. - -2002-01-16 Kazu Hirata - - * doc/invoke.texi: Change the dump file name of block - reordering pass from 28.bbro to 29.bbro. - Mention -dk option. - -Wed Jan 16 17:54:22 CET 2002 Jan Hubicka - - * i386.md (minsf splitter): Fix pasto. - -2002-01-16 Nick Clifton - - * config/arm/arm.c (arm_expand_prologue): Add REG_MAYBE_DEAD note - to frame pointer initialisation instruction. - (thumb_expand_prologue): Add REG_MAYBE_DEAD note to frame pointer - initialisation instruction. - (soft_df_operand): Do not accept the IP register. - (nonimmediate_soft_df_operand): Do not accept the IP register. - -2002-01-16 Jakub Jelinek - - PR target/5357: - * config/sparc/sparc.c (sparc_override_options): Avoid MASK_V9 and - MASK_V8 being both set. - -2002-01-16 Ulrich Weigand - - * config/s390/s390.c (s390_emit_prologue): Do not emit USE - insn for GOT register; add REG_MAYBE_DEAD notes instead. - config/s390/s390.md (call, call_value): Add GOT register to - CALL_INSN_FUNCTION_USAGE where needed. - (call_exp, call_value_exp): New. - -2002-01-16 Nick Clifton - - * config/arm/arm.c: General formatting tidy up. - -2002-01-16 Graham Stott - - * calls.c (try_to_integrate): Use "(size_t)" intermediate - cast and when casting an integer literal to "rtx" pointer. - (expand_call): Likewise. - * flow.c (try_pre_increment): Likewise. - (find_use_as_address): Likewise. - * integrate.c (expand_iline_function): Likewise. - * regmove.c (try_auto_increment): Likewise. - -2002-01-16 Graham Stott - - * sched-rgn.c (passed): Use sbitmap_free. - (header): Likewise. - (inner): Likewise. - (in_queue): Likewise. - (in_stack): Likewise. - -2002-01-15 Eric Christopher - - * flow.c (propagate_one_insn): Change to use fatal_insn. - -2002-01-15 Kazu Hirata - - * expmed.c (extract_fixed_bit_field): Remove unused code. - * system.h: Poison SLOW_ZERO_EXTEND. - * doc/tm.texi: Remove. - * config/1750a/1750a.h (SLOW_ZERO_EXTEND): Remove. - * config/arm/arm.h: Likewise. - * config/avr/avr.h: Likewise. - * config/clipper/clipper.h: Likewise. - * config/convex/convex.h: Likewise. - * config/d30v/d30v.h: Likewise. - * config/dsp16xx/dsp16xx.h: Likewise. - * config/elxsi/elxsi.h: Likewise. - * config/fr30/fr30.h: Likewise. - * config/h8300/h8300.h: Likewise. - * config/i370/i370.h: Likewise. - * config/i386/i386.h: Likewise. - * config/m68k/m68k.h: Likewise. - * config/mips/mips.h: Likewise. - * config/ns32k/ns32k.h: Likewise. - * config/pdp11/pdp11.h: Likewise. - * config/pj/pj.h: Likewise. - * config/s390/s390.h: Likewise. - * config/sh/sh.h: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/v850/v850.h: Likewise. - * config/vax/vax.h: Likewise. - * config/we32k/we32k.h: Likewise. - -2002-01-15 Aldy Hernandez - - * config/rs6000/rs6000.md (altivec_stvx): Add parallels to stvx. - (altivec_lvsl): Change constraint to b. - (altivec_lvsr): Same. - (altivec_lvebx): Same. - (altivec_lvehx): Same. - (altivec_lvewx): Same. - (altivec_lvxl): Same. - (altivec_lvx): Same. - (altivec_stvx): Add parallel. - (altivec_stvxl): Same. - (altivec_stvehx): Same. - (altivec_stvebx): Same. - (altivec_stvebx): Same. - -2002-01-15 Aldy Hernandez - - * config.gcc: Change altivec.h to altivec-defs.h. - - * config/rs6000/altivec.h: Delete. - - * config/rs6000/altivec-defs.h: Add. - -2002-01-15 John David Anglin - - * vax.c (vax_rtx_cost): Return MAX_COST for unsupported MULT, UDIV - and UMOD modes. - - * vax.h (INDEX_TERM_P): Restrict indexing to modes which have a size - less than or equal to eight bytes. - - * vax.md (andsi3): Remove constraints and change SET destination - operand type to nonimmediate_operand. - (andhi3, andqi3): Likewise. Don't clear high order bits of operand 1 - when it is a CONST_INT. - -2002-01-15 Jason Merrill - - * c-common.def (FILE_STMT): New code. - * c-common.c (statement_code_p): It's a statement. - * c-common.h (stmt_tree_s): Add x_last_filename. - (FILE_STMT_FILENAME_NODE, FILE_STMT_FILENAME): New macros. - (last_expr_filename): New macro. - * c-semantics.c (begin_stmt_tree): Initialize it. - (add_stmt): If the filename changed, also insert a - FILE_STMT. - (expand_stmt): Handle seeing one. - -2002-01-15 Eric Christopher - - * flow.c (propagate_one_insn): Add error message and print out - insn for debugging. - -2002-01-15 Joseph S. Myers - - * system.h (ASM_IDENTIFY_GCC, STDC_VALUE, TRAMPOLINE_ALIGN, - ASM_IDENTIFY_GCC_AFTER_SOURCE): Poison. - * config/pdp11/pdp11.h (TRAMPOLINE_ALIGN): Rename to - TRAMPOLINE_ALIGNMENT. - * config/arm/arm.h, config/mcore/mcore.h: Likewise. Change value - to be in bits. - * config/i386/cygwin.h (PCC_BITFIELDS_TYPE_MATTERS): Rename to - PCC_BITFIELD_TYPE_MATTERS. - * config/interix.h (STDC_VALUE): Remove. Use - STDC_0_IN_SYSTEM_HEADERS. - * config/darwin.h (ASM_IDENTIFY_GCC), config/dsp16xx/dsp16xx.h - (ASM_IDENTIFY_GCC), config/stormy16/stormy16.h (ASM_IDENTIFY_GCC, - ASM_IDENTIFY_GCC_AFTER_SOURCE): Remove. - -2002-01-15 Craig Rodrigues - - * doc/install.texi (hppa*-hp-hpux11): --enable-threads does - not work on this platform currently. - -2002-01-15 Joseph S. Myers - - * c-typeck.c (build_unary_op): Don't wrap msgid argument of - readonly_warning in _(). - -2002-01-15 Douglas B Rupp - - * gcc.c (delete_if_ordinary): Backout previous change. - -2002-01-15 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Remove support for - unused operand characters. - - * read-rtl.c: Fix formatting. - * real.c: Likewise. - * recog.c: Likewise. - * regclass.c: Likewise. - * regmove.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * rtlanal.c: Likewise. - -2002-01-15 Kazu Hirata - - * config/i386/i386.c: Fix formatting. - -2002-01-15 Jakub Jelinek - - * c-typeck.c (process_init_element): Don't save_expr - COMPOUND_LITERAL_EXPR if just its initializer will be used. - -2002-01-15 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_output_function_epilogue): Do not - emit optional traceback table if optimize_size or TARGET_ELF. - * config/rs6000/rs6000.md (prefetch): New. - -2002-01-15 Andreas Jaeger - - * config.gcc (x86_64-*-*): Install mmintrin.h and xmmintrin.h. - -2002-01-15 Kazu Hirata - - * mips-tfile.c: Fix formatting. - -Tue Jan 15 00:56:11 CET 2002 Jan Hubicka - - * unroll.c (final_reg_note_copy): Fix previous commit. - -2002-01-14 Kazu Hirata - - * config/h8300/h8300-protos.h: Remove the prototype for - eq_operator. - * config/h8300/h8300.c (eq_operator): Remove. - -2002-01-14 Richard Henderson - - * config/i386/i386.md (prefetch): Tidy. - (prefetch_3dnow): Fix locality operand. - -2002-01-14 Richard Henderson - - * config/mips/mips.h (HI_AND_FP_REGS): New register class. - (CLASS_CANNOT_CHANGE_MODE): Disallow HI in little-endian mode. - -2002-01-14 Hans-Peter Nilsson - - * reload1.c (reload_combine): Pass reg_sum replacement through - copy_rtx in loop performing multiple changes. - -2002-01-14 Jakub Jelinek - - * except.c (remove_unreachable_regions): New. - (free_eh_status): Clear exception_handler_labels. - (convert_from_eh_region_ranges): Call remove_unreachable_regions. - (find_exception_handler_labels): Don't add the same label more than - once. - (remove_exception_handler_label): Don't die if - find_exception_handler_labels hasn't been called for the current - function yet. - -Mon Jan 14 21:26:13 CET 2002 Jan Hubicka - - * toplev.c (rest_of_compilation): Rebuild jump labels after - gcse. - -2002-01-14 Joseph S. Myers - - * doc/extend.texi: Move documentation of X86 built-in functions - here. - * doc/invoke.texi: From here. - * doc/sourcebuild.texi: Document location of documentation for - machine built-in functions. - -2002-01-13 Christopher Faylor - - * cppfiles.c (TEST_THRESHOLD): New macro. - (SHOULD_MMAP): Ditto. - (read_include_file): Use SHOULD_MMAP macro to decide when mmap should - be used. - -Mon Jan 14 20:23:34 CET 2002 Jan Hubicka - - * unroll.c (final_reg_note_copy): Properly handle - REG_LABEL - (unroll_loops): Fix LOOP_CONDITION heuristics. - -2002-01-14 Geoffrey Keating - - * doc/invoke.texi (Xstormy16 Options): Add xstormy16 option. - * doc/md.texi (Machine Constraints): Use @minus{} where appropriate. - -Mon Jan 14 20:18:19 CET 2002 Jan Hubicka - - * cfgcleanup.c (try_forward_edges): Avoid infinite loop at infinite - threaded loop. - -2002-01-14 Tom Rix - - * config/rs6000/rs6000.md: Fix typo with sradi. - -2002-01-14 Ulrich Weigand - - * config/s390/s390.md (movstrdix_64, movstrsix_31, movstrdi_64, - movstrsi_31, clrstrsi_64, clrstrsi_31): Improve RTL templates. - (clrstrdi, clrstrsi): Adapt callers. - - (extendsidi2, zero_extendsidi2): Remove no-conflict blocks. - - (movti splitter): Never use register 0 as base register. - -2002-01-14 Hartmut Penner - - * combine.c (simplify_shift_const): Always generate new rtx - for shift expression instead of reusing given expression. - -Mon Jan 14 07:08:55 2002 Richard Kenner - - * config/alpha/alpha.c (alpha_expand_mov): Don't call - alpha_legitimize_address unless mode is Pmode. - -2002-01-13 Geoffrey Keating - - * doc/md.texi (Modifiers): Document the '*' constraint for the - user. - - * doc/md.texi (Machine Constraints): Add constraints for xstormy16. - * doc/extend.texi (Function Attributes): 'interrupt' is valid - for xstormy16 too. - -2002-01-13 Richard Henderson - - * reload.c (find_reloads): Use a hard reg destination as reload reg - for an input reload of the source. - -2002-01-13 Gerald Pfeifer - - * doc/install.texi (Binaries): Make link to ftp.writtenword.com - more generic. - -Sun Jan 13 07:23:01 2002 Douglas B Rupp - - * Makefile.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2. - * mklibgcc.in (LIB2FUNCS): Split into LIB2FUNCS_1 and LIB2FUNCS_2. - - * config/alpha/x-vms (USE_COLLECT2): Set to empty. - -Sun Jan 13 06:55:31 2002 Richard Kenner - - * dwarf2out.c (mem_loc_descriptor, case ADDRESSOF): New case. - -2002-01-12 Tom Rix - - * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Use ior for - TARGET_POWERPC64. - -2002-01-12 Richard Henderson - - * config/i386/i386.c (bdesc_2arg): Mark psadbw MASK_3DNOW_A. - - * doc/invoke.texi: Update Alpha options. - - * doc/invoke.texi: Update i386 built-in function lists. - -Sat Jan 12 17:38:11 CET 2002 Jan Hubicka - - * unroll.c (final_reg_note_copy): Avoid crash on REG_LABEL note - referencing outside. - -Sat Jan 12 08:54:51 2002 Richard Kenner - - * diagnostic.c (warn_deprecated_use): Rework to lower indentation. - * expr.c (emit_move_insn_1): Remove warning, use HOST_WIDE_INT for - offsets, and change line folding. - * optabs.c (expand_binop): Remove warnings. - * sdbout.c (sdbout_record_type_name): Constify NAME to avoid warning. - -2002-01-12 Graham Stott - - * attribs.c (handle_deprecated_attribute): constify WHAT. - * diagnostic.c (warn_deprecated_use): Add braces, fixes - dangling else warning and constify WHAT. - * except.h (struct function, struct inline_remap): Move - struct tag forward defs before all prototypes. - (duplicate_eh_regions): Whitespace. - -2002-01-12 Nick Clifton - - * config/arm/arm.h (ARM_LEGITIMIZE_RELOAD_ADDRESS): Use - MODE_BASE_REG_CLASS. - (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use MODE_BASE_REG_CLASS. - -2002-01-12 Richard Henderson - - * config/i386/i386.c (override_options): If SSE, enable sse prefetch. - (ix86_expand_vector_move): New. - (bdesc_2arg): Remove andps, andnps, orps, xorps. - (ix86_init_mmx_sse_builtins): Make static. Remove composite builtins. - Remove old prefetch builtins. Special case the logicals removed above. - (ix86_expand_builtin): Likewise. - (safe_vector_operand): Use V4SFmode, not TImode. - (ix86_expand_store_builtin): Remove shuffle arg. Update callers. - (ix86_expand_timode_binop_builtin): New. - * config/i386/i386-protos.h: Update. - * config/i386/i386.h (enum ix86_builtins): Update. - * config/i386/i386.md: Correct predicates on MMX/SSE patterns. - Use ix86_expand_vector_move in vector move expanders. - (movti_internal, movti_rex64): Add xorps alternative. - (sse_clrv4sf): Rename and adjust from sse_clrti. - (prefetch): Don't work so hard. - (prefetch_sse, prefetch_3dnow): Use PREFETCH rtx, not UNSPEC. - * config/i386/xmmintrin.h (__m128): Use V4SFmode. - (_mm_getcsr, _mm_setcsr): Fix typo in builtin name. - -2002-01-11 Richard Henderson - - * config/i386/mmintrin.h: New file. - * config/i386/xmmintrin.h: New file. - * config.gcc (i?86-*-*): Add extra_headers. - * simplify-rtx.c (simplify_unary_operation): Handle saturating - truncation codes. - (simplify_binary_operation): Handle saturating arithmetic codes. - * config/i386/i386.c (ix86_expand_sse_comi): Return the full result, - not the lowpart subreg. - (ix86_expand_builtin): Return a TImode dummy register instead of 0 - on error. - * config/i386/i386.md (mmx_clrdi): Override memory attribute. - -2002-01-12 Michael Hayes - - * conflict.c (conflict_graph_compute): Free regsets when finished. - * ssa.c (compute_coalesced_reg_partition): Likewise. - -2002-01-12 Herman A.J. ten Brugge - - * global.c (find_reg): Check for HARD_REGNO_CALL_PART_CLOBBERED - every where we allocate a register. - -2002-01-12 Michael Hayes - - * gcse.c (compute_pre_data, pre_gcse): Use sbitmap_free. - * lcm.c (compute_earliest, compute_farthest): Likewise. - -2002-01-11 Janis Johnson - - * expr.c (expand_assignment): Fix misuse of MEM_KEEP_ALIAS_SET. - -2002-01-11 Janis Johnson - - * doc/rtl.texi (Insns): Fix 2 typos. - -2002-01-11 Joseph S. Myers - - * doc/invoke.texi: Avoid overfull hboxes. Add summary of D30V - options. Use @table @gcctabopt for MMIX options. Add index - entries for MMIX options. Start new paragraph with first - heading of the machine-dependent options. - -2002-01-11 Craig Rodrigues - - PR other/5299 - * config/ns32k/ns32k.md: Fix spelling mistake of "than" in comments. - * combine.c (force_to_mode): Same. - * reload1.c (clear_reload_reg_in_use): Same. - -2002-01-11 Nick Clifton - - * config/arm/arm.c (arm_gen_constant): Correct test of 'remainder' - and 'subtargets'. - -2002-01-11 Andreas Jaeger , - Brad Lucier - - * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove wrong - mcpu. - -Fri Jan 11 07:35:12 2002 Douglas B Rupp - - * config/alpha/vms.h: (MD_FALLBACK_FRAME_STATE_FOR): Fix errors. - Protect with IN_LIBGCC. - (LINK_EH_SPEC): Add required trailing space. - -Fri Jan 11 09:25:05 2002 Nicola Pero - - * c-tree.h: Move function declarations so that they are listed - under the filename which contains them. - (check_identifier, finish_decl_top_level, - lookup_name_current_level_global, shadow_record_fields): Remove. - -2002-01-11 Andreas Jaeger - - * config/i386/i386.h (CPP_CPUCOMMON_SPEC): Remove duplicated - march. - -2002-01-10 Richard Henderson - - * config/alpha/alpha.c (print_operand): Add 'J'. - * config/alpha/alpha.md (call_osf_1_er, call_value_osf_1_er): Take a - new operand with the sequence number for the lituse. When splitting - the insns, use gen_movdi_er_high_g and generate a sequence number. - (gen_movdi_er_high_g): Print the sequence number if nonzero. - -2002-01-10 Aldy Hernandez - - * config/rs6000/rs6000.c (altivec_init_builtins): Add support for - lvebx, lvehx, lvewx, lvxl, lvx, stvx, stvebx, stvehx, stvewx, - stvxl. - (altivec_expand_builtin): Same. - (altivec_expand_stv_builtin): New. - - * config/rs6000/rs6000.h (rs6000_builtins): Same. - - * config/rs6000/rs6000.md ("altivec_lvebx"): New. - ("altivec_lvehx"): New. - ("altivec_lvewx"): New. - ("altivec_lvxl"): New. - ("altivec_lvx"): New. - ("altivec_stvx"): New. - ("altivec_stvebx"): New. - ("altivec_stvehx"): New. - ("altivec_stvewx"): New. - ("altivec_stvxl"): New. - -2002-01-10 Richard Henderson - - * cfgrtl.c (delete_insn): Assert insn hasn't been deleted yet. - * reload1.c (delete_output_reload): Zap spill_reg_store. Take - care not to delete instructions twice. - -2002-01-10 Zack Weinberg - - * toplev.c: Don't declare environ (it's not used anywhere). - * configure.in: Don't check for declaration of environ. - * config/i386/xm-mingw32.h: Don't #define environ. - * config.in, configure: Regenerate. - -2002-01-10 Zack Weinberg - - * configure.in: Set stage1_cflags for powerpc-*-darwin*. - * configure: Regenerate. - - * config/interix.h: Set DO_GLOBAL_CTORS_BODY and - DO_GLOBAL_DTORS_BODY here, not in xm-interix.h. - * config/alpha/vms.h: Set INCLUDE_DEFAULTS here, not in - alpha/xm-vms.h. - * config/m68k/t-next: Set OTHER_FIXINCLUDES_DIRS and - LIMITS_H_TEST here, not in m68k/x-next. - * config/rs6000/beos.h: Set STANDARD_INCLUDE_DIR and - SYSTEM_INCLUDE_DIR here, not in rs6000/xm-beos.h. - - * config/x-interix: Don't set RANLIB, RANLIB_TEST, SHELL, - LIBGCC2_INCLUDES, or SYSTEM_HEADER_DIR. - * config/alpha/x-vms: Don't set USE_COLLECT2. Add comments. - - * config/i386/x-djgpp: Renamed i386/t-djgpp. - * config/m88k/x-dolph: Renamed m88k/t-dolph. - * config/m88k/x-texXD88: Renamed m88k/t-texXD88. - * config/pa/x-pa-mpeix: Renamed pa/t-mpeix. Update for - replacement of quadlib.asm with quadlib.c. - - * config/x-interix3, config/xm-interix.h, config/i386/x-beos, - config/i386/xm-osf1elf.h, config/rs6000/x-darwin, - config/rs6000/xm-beos.h: Delete file. - - * config.gcc: Update to match above changes. - -2002-01-10 Kazu Hirata - - * config/h8300/h8300.h: Fix comment typos. - * config/h8300/h8300.md: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - -2002-01-10 Dale Johannesen - - PR optimization/5269 - * unroll.c (precondition_loop_p): Make *increment be the correct - sign when n_iterations known, to avoid confusing caller. - -2002-01-10 Kazu Hirata - - * doc/extend.texi (deprecated): Fix a typo. - -Thu Jan 10 22:35:54 CET 2002 Jan Hubicka - - * basic-block.h (update_br_prob_note): Declare. - * cfgcleanup.c (try_simplify_condjump): Call update_br_prob_note. - (try_forward_edges): Care negative frequencies and update note. - (outgoing_edges_match): Tweek conditional merging heuristics. - (try_crossjump_to_edge): use update_br_prob_note. - * cfglayout.c (fixup_reorder_chain): Likewise. - * cfrtl.c (update_br_prob_note): New. - * ifcvt.c (dead_or_predicable): Call update_br_prob_note. - - * i386.c (ix86_decompose_address): Return -1 if address contains - shift. - (legitimate_address_p): Require ix86_decompose_address to return 1. - - * gcse.c (hash_scan_set): Use CONSTANT_INSN_P. - (cprop_insn): Likewise. - -2002-01-10 Kazu Hirata - - * toplev.c: Fix formatting. - * tree.c: Likewise. - * tree-dump.c: Likewise. - * unroll.c: Likewise. - * unwind-dw2.c: Likewise. - * unwind-dw2-fde.c: Likewise. - * unwind-dw2-fde-glibc.c: Likewise. - * unwind-sjlj.c: Likewise. - -2002-01-10 Joseph S. Myers - - * doc/invoke.texi: Document PDP-11 options. - -2002-01-10 Kazu Hirata - - * config/h8300/h8300.h: Fix formatting. - -2002-01-10 Ira Ruben - - Add __attribute__ ((deprecated)). - * extend.texi: Document __attribute__ ((deprecated)). - * invoke.texi: Document -Wno-deprecated-declarations. - * testsuite/g++.dg/other/deprecated.C: New C++ test. - * testsuite/gcc.dg/deprecated.c: New C test. - * attribs.c (enum attrs): Declare handle_deprecated_attribute(). - (c_common_attribute_table): Add "deprecated" entry. - (handle_deprecated_attribute): New function. - * c-decl.c (deprecated_states): New enum. - deprecated_state: State of "deprecated" handling. - (start_decl): Set deprecated_state based on attributes. - (grokdeclarator): Test for deprecated uses, propagate attribute. - * c-typeck.c (build_component_ref): Test for deprecated fields. - (build_external_ref): Test for deprecated primaries. - * diagnostic.c (warn_deprecated_use) New function to issue - warnings about __attribute__ ((depricated)) references. - * flags.h (warn_deprecated_decl): Extern declared for - -W[no-]deprecated-declarations option. - * print-tree.c (print_node): Show deprecated flag status. - * toplev.c (warn_deprecated_decl): Defined. - (W_options): Added "deprecated-declaration". - * toplev.h (warn_deprecated_use): Extern declared. - * tree.h (struct tree_common): Define deprecated_flag. - (TREE_DEPRECATED): New macro to access flag. - * cp/call.c (build_call): Test for deprecated calls. - * cp/class.c (add_implicitly_declared_members): Set global - flag to tell grokdeclarator to not issue deprecated warnings. - * cp/cp-tree.h: Add extern for adding_implicit_members. - * cp/decl.c (deprecated_states): New enum. - (start_decl): Set deprecated_state based on attributes. - (grokdeclarator): Test for deprecated uses, propagate attribute. - * cp/lex.c (do_identifier): Test for deprecated primaries. - * cp/typeck.c (build_component_ref): Test for deprecated fields. - -2002-01-10 Ira Ruben - - Fix to assign attributes to inline member functions. - * cp/decl.c (start_method): Handle attrlist. - -2002-01-10 Kazu Hirata - - * combine.c (expand_field_assignment): Use subreg_lsb(). - -2002-01-10 David Edelsohn - - * alias.c (find_base_value): Add cases for HIGH, PRE_INC, PRE_DEC, - POST_INC, POST_DEC, PRE_MODIFY, and POST_MODIFY. - (find_base_term): Add cases for TRUNCATE, PRE_MODIFY, and POST_MODIFY. - Recurse for any operand of AND as long as constant is nonzero. - -2002-01-10 Kazu Hirata - - * config/h8300/h8300.md: Remove constraints from expanders. - -2002-01-10 Kazu Hirata - - * varasm.c: Fix formatting. - * varray.c: Likewise. - * vmsdbgout.c: Likewise. - * xcoffout.c: Likewise. - -Thu Jan 10 17:19:12 CET 2002 Jan Hubicka - - * cfgcleanup.c (try_forward_edges): Properly initialize nthreaded_edges; - update edge probabilities to match. - -2002-01-10 Joseph S. Myers - - * Makefile.in ($(docdir)/gccint.info, gccint.dvi): Add additional - dependencies. - * doc/languages.texi, doc/sourcebuild.texi: New files. - * doc/configfiles.texi: Make a subsubsection. Update. - * doc/configterms.texi: Add @node. Remove warning that this isn't - instructions for building GCC. - * doc/makefile.texi: Make a subsection. - * doc/gccint.texi: Update. - -Thu Jan 10 16:39:58 CET 2002 Jan Hubicka - - * i386.md (sse_mov?fcc_const0_?): Fix constraints. - -Thu Jan 10 12:45:50 2002 Nicola Pero - - * doc/cpp.texi: Document the __OBJC__ preprocessor macro. - -Thu Jan 10 11:19:18 CET 2002 Jan Hubicka - - * optabs.c (expand_fix): Look for wider integer modes first. - - * i386.md (mov?f): Avoid the fake const double trick for medium - memory model. - (min?f*/max?f*): Prohibit memory operands for i387 variant. - (fop_df_4): Disable for SSE compilation. - -2002-01-10 Graham Stott - - * dwarf2out.c (indirect_string_alloc, output_indirect_string): - Move prototype into DWARF2_DEBUGGING_INFO conditional block. - -2002-01-10 Richard Henderson - - * config/alpha/alpha.md (extendsidi2_fix): Penalize f/f alternative. - -2002-01-10 Richard Henderson - - * regrename.c (find_oldest_value_reg): Fix typo in mode change check. - (copyprop_hardreg_forward_1): Likewise. Use mode_change_ok. - -2002-01-10 Kazu Hirata - - * combine.c (can_combine_p): Fix a comment typo. - -2002-01-09 Zack Weinberg - - * Makefile.in (s-gencheck, s-options, s-specs): Handle an - empty list correctly. Change loop index $t to $f for - consistency with rest of Makefile. - -2002-01-08 Aldy Hernandez - - * testuite/gcc.dg/altivec-4.c: Add test for mtvscr, dssall, - mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst. - - * config/rs6000/rs6000.c (altivec_expand_builtin): Add support for - mtvscr, dssall, mfvscr, dss, lvsl, lvsr, dstt, dst, dstst, dststt. - (altivec_init_builtins): Same. - (altivec_expand_unop_builtin): Return NULL_RTX on error. - (altivec_expand_binop_builtin): Same. - (altivec_expand_ternop_builtin): Same. - (bdesc_dst): New. - - * config/rs6000/rs6000.md ("altivec_mtvscr"): New. - ("altivec_vctuxs"): Fix typo. - ("altivec_vnmsubfp"): Same. - ("altivec_dssall"): New. - ("altivec_mfvscr"): New. - ("altivec_dss"): New. - ("altivec_lvsl"): New. - ("altivec_lvsr"): New. - ("altivec_dstt"): New. - ("altivec_dstst"): New. - ("altivec_dststt"): New. - ("altivec_dst"): New. - - * config/rs6000/rs6000.h (rs6000_builtins): Add mtvscr, dssall, - mfvscr, dss, lvsl, lvsr, dstt, dstst, dststt, dst. - -2002-01-09 Richard Henderson - - * config/alpha/alpha.md (prologue_mcount): Remove lituse_jsr reloc. - -2002-01-10 Hans-Peter Nilsson - - * config/mmix/mmix.c (mmix_asm_identify_gcc): Remove unused - function. - * config/mmix/mmix-protos.h (mmix_asm_identify_gcc): Don't - prototype. - * config/mmix/mmix.h (ASM_IDENTIFY_GCC): Remove unused macro. - -2002-01-09 Kazu Hirata - - * read-rtl.c: Fix formatting. - * real.c: Likewise. - * regclass.c: Likewise. - * regrename.c: Likewise. - * reg-stack.c: Likewise. - * reload1.c: Likewise. - * reload.c: Likewise. - * rtl.c: Likewise. - -2002-01-09 Kazu Hirata - - * rtlanal.c (find_reg_fusage): Use XEXP instead of SET_DEST - to extract items in the expr_list chain. - -2002-01-09 Richard Henderson - - * config/vax/vax.c (vax_rtx_cost): Never abort. - - * config/vax/vax.h (REAL_ARITHMETIC): Define. - -2002-01-09 Jan Hubicka - - * gcse.c (cprop_jump): Delete insn if simplified jump is no-op. - -2002-01-09 Richard Henderson - - * config/arm/arm.c (arm_gen_constant): Use trunc_int_for_mode. - Unify code from various alternatives. - -2002-01-09 Richard Henderson - - * regrename.c (copy_value): Ignore the copy if the source register - is present in the value chain with a narrower mode. - -2002-01-09 Herman A.J. ten Brugge - - * real.c (c4xtoe, toc4x): Do some special conversion on long doubles - for the c4x target. Also improve layout. - -2002-01-09 Richard Henderson - - * config/m32r/m32r.c (move_src_operand): Fix 32-bit int test. - * config/m32r/m32r.md (and ior xor splitters): Swap operands - to match insn patterns. - -2002-01-09 Richard Henderson - - * regrename.c (find_oldest_value_reg): Use gen_rtx_raw_REG. - (copyprop_hardreg_forward_1): Likewise. - -2002-01-09 John David Anglin - - * pa.md (decrement_and_branch_until_zero): Change predicate for - operand 0 from register_operand to reg_or_nonsymb_mem_operand. - -2002-01-09 Bryce McKinlay - - * ginclude/stddef.h: Define _BSD_WCHAR_T_DEFINED_ if _BSD_WCHAR_T_ - gets undefined. For Darwin. - -2002-01-09 Herman A.J. ten Brugge - - * config/c4x/c4x.h: Use PUSH_ARGS and PUSH_ROUNDING for stack passing. - -2002-01-09 Michael Hayes - - * config/c4x/c4x/md: Remove extraneous constraints from define_splits. - -2002-01-08 Richard Henderson - - * regrename.c (copy_value): Ignore overlapping copies. - -2002-01-08 Richard Henderson - - * config/alpha/alpha.c (alpha_split_conditional_move): Call copy_rtx - as needed to avoid shared structure. - -2002-01-08 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Fix 15-bit LSHIFTRT on - H8/300H and H8S. - -2002-01-08 Joseph S. Myers - - * doc/tm.texi (EASY_DIV_EXPR, IMPLICIT_FIX_EXPR, - LONGJMP_RESTORE_FROM_STACK, MAX_INT_TYPE_SIZE): Remove - documentation of obsolete macros. - * system.h: Poison these macros. - * config/1750a/1750a.h, config/a29k/a29k.h, config/alpha/alpha.h, - config/arc/arc.h, config/arm/arm.h, config/avr/avr.h, - config/c4x/c4x.h, config/clipper/clipper.h, - config/convex/convex.h, config/cris/cris.h, config/d30v/d30v.h, - config/dsp16xx/dsp16xx.h, config/elxsi/elxsi.h, - config/fr30/fr30.h, config/h8300/h8300.h, config/i370/i370.h, - config/i386/i386.h, config/i860/i860.h, config/i960/i960.h, - config/ia64/ia64.h, config/m32r/m32r.h, config/m68hc11/m68hc11.h, - config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h, - config/mips/mips.h, config/mmix/mmix.h, config/mn10200/mn10200.h, - config/mn10300/mn10300.h, config/ns32k/ns32k.h, config/pa/pa.h, - config/pdp11/pdp11.h, config/pj/pj.h, config/romp/romp.h, - config/rs6000/rs6000.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/we32k/we32k.h: Remove - definitions and commented out definitions of obsolete macros. - * config/mips/iris5.h (MAX_WCHAR_TYPE_SIZE): Don't define in terms - of MAX_INT_TYPE_SIZE. - -2002-01-08 Ulrich Weigand - - * config/s390/s390.c (s390_preferred_reload_class): Never - return ADDR_REGS if it isn't a subset of the given class. - * config/s390/s390.h (REGISTER_MOVE_COST): Penalize not just - FP_REGS, but all superclasses as well. - - * config/s390/s390.c (s390_function_profiler): Fix thinko. - - * config/s390/s390.md (cmpdi_ccu_mem, cmpsi_ccu_mem, - cmphi_ccu_mem, cmpqi_ccu_mem): First operand of compare - must not be a const_int. - -2002-01-08 Richard Henderson - - * Makefile.in (toplev.o): Depend on options.h. - (gcc.o): Depend on specs.h. - -2002-01-08 Jakub Jelinek - - * expr.c (store_expr): Convert VOIDmode constants back to target's - mode. - -2002-01-08 Gerald Pfeifer - - * doc/invoke.texi: Markup gcc as @command. Refer to - http://gcc.gnu.org/onlinedocs/gcc/Contributors.html instead - of http://gcc.gnu.org/thanks.html. - -2002-01-08 Dale Johannesen - - * config/rs6000/rs6000.md: Add missing int register - target case to movdf_low. - -2002-01-08 Zack Weinberg - - * Makefile.in (cs-tconfig.h): Don't depend on $(CONFIG_H) or - except.h. Remove commands to define USING_SJLJ_EXCEPTIONS. - (cppinit.o): Depend on except.h. - (gencheck.h, options.h, specs.h, s-gencheck, s-options, - s-specs): New rules. - - * configure.in: Don't AC_DEFINE_UNQUOTED PACKAGE or VERSION. - Don't create specs.h/options.h/gencheck.h here. Remove - unnecessary variable settings from last argument of AC_OUTPUT. - * config.in, configure: Regenerate. - * intl.c: Hardcode package name as "gcc". - - * cppinit.c: Include except.h. - (builtin_array): Define __USING_SJLJ_EXCEPTIONS__ when - appropriate. - * unwind-dw2.c, unwind-sjlj.c, config/ia64/unwind-ia64.c: - Use #if(n)def __USING_SJLJ_EXCEPTIONS, not #if - (!)USING_SJLJ_EXCEPTIONS. - * doc/cpp.texi: Document __USING_SJLJ_EXCEPTIONS__. - -2002-01-08 Joseph S. Myers - - * doc/tm.texi (ASM_OUTPUT_EH_REGION_BEG, ASM_OUTPUT_EH_REGION_END, - ASM_OUTPUT_LABELREF_AS_INT, DOESNT_NEED_UNWINDER, EH_TABLE_LOOKUP, - OBJC_SELECTORS_WITHOUT_LABELS, OMIT_EH_TABLE): Remove - documentation of obsolete macros. - * system.h: Poison these macros. - * config/d30v/d30v.h, config/ns32k/encore.h, - config/stormy16/stormy16.h: Remove definitions and commented out - definitions of obsolete macros. - -Tue Jan 8 15:56:41 2002 Nicola Pero - - * objc/objc-act.c (handle_class_ref): Mark the declaration of - %sobjc_class_ref_%s as used - to prevent unwanted compiler - warnings. - -2002-01-08 Ulrich Weigand - - * config/s390/linux.h (ASM_OUTPUT_LABELREF): Remove. - * config/s390/s390.c (s390_emit_epilog): Add REG_FRAME_RELATED_EXPR - to insn adjusting stack/frame pointer. - * config/s390/s390.md (reload_la_64, reload_la_31): Do not - accept operands that cause the insn to be non-splittable. - -2002-01-08 Graham Stott - - * c-tree.h (C_TYPE_FIELDS_READONLY): Uppercase macro parameter. - (C_TYPE_FIELDS_VOLATILE): Likewise. - (C_TYPE_BEING_DEFINED): Likewise. - (C_IS_RESERVED_WORD): Likewise. - (C_TYPE_VARIABLE_SIZE): Likewise. - (C_DECL_VARIABLE_SIZE): Likewise. - (C_MISSING_PROTOTYPE_WARNED): Likewise. - (C_SET_EXP_ORIGINAL_CODE): Likewise. - (C_TYPEDEF_EXPLICITLY_SIGNED): Uppercase macro parameter and remove - parenthesis. - (C_DECL_ANTICIPATED): Likewise. - (c_build_type_variant): Add parenthesis. - -2002-01-08 Joseph S. Myers - - * gcc.c (option_map): Remove --version. - (process_command): Handle -fversion following the GNU Coding - Standards. Partially addresses PR other/704. - -2002-01-08 Graham Stott - - * combine.c (combine_instructions): Fix typo. - -2002-01-08 Graham Stott - - * debug.h: Use "tree" and "rtx" throughout. - - * debug.c: Likewise. - -2002-01-08 Nick Clifton - - * dbxout.c (dbxout_symbol_location): If a symbol ref is in the - constant pool, use the pool's version of the symbol instead. - -2002-01-07 Richard Henderson - - * regrename.c (find_oldest_value_reg): Ignore the value chain if - the original register was copied in a mode with a fewer number of - hard registers than the desired mode. - (copyprop_hardreg_forward_1): Likewise. - (debug_value_data): Fix loop test. - * toplev.c (parse_options_and_default_flags): Reenable - -fcprop-registers at -O1. - -2002-01-07 Aldy Hernandez - - * config/rs6000/rs6000.c (bdesc_2arg): Add altivec predicates. - (altivec_init_builtins): New node v4si_ftype_v16qi_v16qi. - - * config/rs6000/rs6000.h (rs6000_builtins): Add enums for altivec - predicates. - - * config/rs6000/rs6000.md: Add altivec predicate patterns. - -2002-01-07 John David Anglin - - * pa.c (FUNC_BEGIN_PROLOG_LABEL, current_function_number): Define. - (pa_output_function_prologue): Output local label at the beginning of - the prologue when profiling. - (hppa_profile_hook): Use the local label rather than the function label. - * pa.h (PROFILE_BEFORE_PROLOGUE): Define. - -2002-01-07 Aldy Hernandez - - * config/rs6000/rs6000.c (print_operand): Remove extra space. - (altivec_expand_unop_builtin): Fix thinko. - (altivec_expand_binop_builtin): Same. - (altivec_expand_ternop_builtin): Same. - (altivec_expand_builtin): Same. - -2002-01-07 Richard Henderson - - * config/rs6000/xcoff.h (ASM_FILE_START): Reverted to profile_flag. - -2002-01-07 Jason Merrill - - * unwind-dw2.c (execute_cfa_program): Use < again. - -2002-01-07 Jakub Jelinek - - * predict.c (combine_predictions_for_insn): Avoid division by zero. - -2002-01-07 Jakub Jelinek - - * simplify-rtx.c (simplify_plus_minus): Bump n_ops for NOT. - Don't allow -1 - x -> ~x simplifications in the first pass. - -2002-01-07 Aldy Hernandez - - * rs6000.c (altivec_expand_ternop_builtin): Don't die on invalid - arguments. - (altivec_expand_binop_builtin): Same. - (altivec_expand_unop_builtin): Same. - (print_operand): Fix typo. - (bdesc_1arg): Add vupk* variants. - - * rs6000.h (rs6000_builtins): Add vupk* enums. - - * rs6000.md: Add altivec_vupk* variants. - -2002-01-07 Joseph S. Myers - - * doc/gcc.texi, doc/gccint.texi, doc/cppinternals.texi, - doc/install.texi, doc/invoke.texi, doc/rtl.texi: Update copyright - and last update dates. - -2002-01-07 Janis Johnson - - * doc/rtl.texi (Flags): Clean up documentation of RTL flags - -2002-01-07 Marek Michalkiewicz - - * config/avr/avr.c (avr_mcu_types): Add new MCU types. - * config/avr/avr.h (CPP_SPEC): Likewise. - (LINK_SPEC): Likewise. - (CRT_BINUTILS_SPECS): Likewise. - * config/avr/t-avr (MULTILIB_MATCHES): Likewise. - * doc/invoke.texi (AVR Options): Document them. - -Mon Jan 7 11:59:34 CET 2002 Jan Hubicka - - * unroll.c (copy_loop_body): Always properly update JUMP_LABEL and - LABEL_NUSES. - -2002-01-07 Graham Stott - - * config/i386/i386.h: Update copyright date. - (HALF_PIC_PTR): Add parenthesis. - (OPTIMIZATION_OPTIONS): Whitespace, add parenthesis and wrap. - (CONSTANT_ALIGNMENT): Add parenthesis. - (DATA_ALIGNMENT): Likewise. - (LOCAL_ALIGNMENT): Likewise. - (FUNCTION_ARG_BOUNDARY): Whitespace, add parenthesis and wrap. - (IS_STACK_MODE): Uppercase macro parameter, add parenthesis and wrap. - (CONDITIONAL_REGISTER_USAGE): Wrap in do {...} while (0). - (HARD_REGNO_NREGS): Add paranethesis. - (VALID_SSE_REG_MODE): Whitespace. - (VALID_MMX_REG_MODE): Whitespace. - (VALID_FP_MODE_P): Uppercase macros parameter and whitespace. - (ix86_hard_regno_mode_ok): Add parenthesis. - (HARD_REGNO_CALLER_SAVE_MODE): Whitespace. - (RETURN_IN_MEMORY): Whitespace. - (N_REG_CLASSES): Add parenthesis. - (INTEGER_CLASS_P): Add parenthesis and wrap. - (FLOAT_CLASS_P): Likewise. - (SSE_CLASS_P): Likewise. - (MMX_CLASS_P): Likewise. - (MAYBE_INTEGER_CLASS_P): Likewise. - (MAYBE_FLOAT_CLASS_P): Likewise. - (MAYBE_SSE_CLASS_P): Likewise. - (MAYBE_MMX_CLASS_P): Likewise. - (Q_CLASS_P): Likewise. - (GENERAL_REGNO_P): Uppercase macro parameter. - (REX_INT_REGNO_P): Uppercase macro parameter and wrap. - (FP_REGNO_P): Likewise. - (ANY_FP_REGNO_P): Uppercase macro parameter. - (SSE_REGNO_P): Likewise. - (SSE_REGNO): Likewise. - (SSE_REG_P): Likewise. - (SSE_FLOAT_MODE_P): Likewise. - (MMX_REGNO_P): Likewise. - (MMX_REG_P):Likewise. - (STACK_REG_P): Likewise. - (NON_STACK_REG_P): Likewise. - (STACK_TOP_P): Likewise. - (CONVERT_HARD_REGISTER_TO_SSA_P): Add parenthesis. - (PREFERRED_RELOAD_CLASS): Add parenthesis and whitespace. - (SECONDARY_MEMORY_NEEDED): Likewise. - (SECONDARY_OUTPUT_RELOAD_CLASS): Whitespace. - (MD_ASM_CLOBBERS): Whitespace and wrap. - (MUST_PASS_IN_STACK): Whitespace and wrap. - (RETURN_POPS_ARGS): Add parenthesis. - (INIT_CUMULATIVE_ARGS): Likewise. - (FUNCTION_ARG): Likewise. - (FUNCTION_OK_FOR_SIBCALL): Add parenthesis and whitespace. - (SETUP_INCOMING_VARARGS): Likewise. - (BUILD_VA_LIST_TYPE): Add parenthesis. - (EXPAND_BUILTIN_VA_START): Uppercase macro paremeters and add - parenthsis. - (EXPAND_BUILTIN_VA_ARG): Likewise. - (FUNCTION_PROFILER): Wrap in do { ... } while (0) and add parenthesis. - (INITIALIZE_TRAMPOLINE): Add parenthesis. - (INITIAL_ELIMINATION_OFFSET): Likewise. - (REGNO_OK_FOR_INDEX_P): Add parenthesis. - (REGNO_OK_FOR_BASE_P): Likewise. - (REGNO_OK_FOR_SIREG_P): Add parenthesis and wrap. - (REGNO_OK_FOR_DIREG_P): Likewise. - (REG_OK_FOR_INDEX_P): Whitespace. - (REG_OK_FOR_BASE_P): Whitespace. - (GO_IF_LEGITIMATE_ADDRESS): Wrap in do { ... } while (0) and add - parenthesis. - (FIND_BASE_TERM): Fix typo. - (LEGITIMIZE_ADDRESS): Wrap in { .. } while (0) and add parenthesis. - (REWRITE_ADDRESS): Uppercase macro parameter and whitespace. - (SYMBOLIC_CONST; Whitespace. - (GO_IF_MODE_DEPENDENT_ADDRESS):Wrap in { .. } while (0) and wrap. - (ENCODE_SECTION_INFO): Whitespace. - (FINALIZE_PIC): Remove do { ... } while (0). - (PROMOTE_MODE): Wrap in do { ... } while (0). - (CONST_COSTS): Whitespace. - (RTX_COSTS): Add paramethesis, whitespace and wrap. - (REGISTER_MOVE_COST): Add parenthesis. - (MEMORY_MOVE_COST): Likewise. - (EXTRA_CC_MODES): Whitespace. - (SELECT_CC_MODE): Add parenthesis and whitespace. - (DBX_REGISTER_NUMBER): Uppercase macro parameter and add parenthsis. - (ASM_PREFERRED_EH_DATA_FORMAT): Add parenthesis and whitespace. - (ASM_OUTPUT_LABEL): Add paramethesis. - (ASM_OUTPUT_REG_PUSH): Add parenthesis and whitespace. - (ASM_OUTPUT_REG_POP): Likewise. - (ASM_OUTPUT_ADDR_VEC_ELT): Add parenthesis. - (ASM_OUTPUT_ADDR_DIFF_ELT): Likewise. - - * config/i386/i386.c: Update copyright. - (CHECK_STACK_LIMIT): Add parenthesis. - (AT_BP): Uppercase macro parameter. - (x86_64_int_parameter_registers): Constify. - (x86_64_int_return_registers): Likewise. - (ix86_compare_op0): Use rtx. - (construct_container): Constify INTREG parameter. - (function_arg): Use rtx. - - * diagnostic.h: Update copyright date. - (output_buffer_state): Add parenthesis. - (output_buffer_format_args): Likewise. - - * combine.c (combine_instructions): Replace XEXP (links, 0) - with link. - -2002-01-06 H.J. Lu - - * cfgcleanup.c (thread_jump): Fix 2 typos. - -2002-01-06 Aldy Hernandez - - * config.gcc: Add support for --enable-altivec. - -2002-01-06 Craig Rodrigues - - * emit-rtl.c (gen_highpart): Add check for NULL_RTX. - -2002-01-06 Jakub Jelinek - - * objc/objc-act.c (handle_impent): Use assemble_variable to emit - __objc_class_name_*. - -2002-01-06 Craig Rodrigues - - * doc/install.texi (sparcv9-*-solaris2*): Add documentation. - -2002-01-06 Richard Henderson - - * reorg.c (emit_delay_sequence): Remove death notes, not merely - nop them out. Increment label reference count for REG_LABEL. - (fill_slots_from_thread): Frob label reference count around - delete_related_insns. - -2002-01-05 Richard Henderson - - * cfgcleanup.c (try_forward_edges): Detect infinite loops while - jump threading. - -2002-01-05 Richard Henderson - - * c-decl.c (c_expand_body): Don't call outlining_inline_function. - * integrate.c (output_inline_function): Likewise. - * toplev.c (rest_of_compilation): Do it here instead. Move call - to remove_unnecessary_notes after emitting abstract instance. - Force an emitted nested function to have its parent emited as well. - * dwarf2out.c (loc_descriptor_from_tree): Read mode after checking - for null. - (rtl_for_decl_location): Do not look at reload data structures - before reload has run. - -2002-01-05 Kazu Hirata - - * cse.c: Fix formatting. - * dwarf2asm.c: Likewise. - * dwarf2out.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * function.c: Likewise. - * gcov.c: Likewise. - * gencheck.c: Likewise. - * genrecog.c: Likewise. - * ggc-common.c: Likewise. - * ggc-page.c: Likewise. - * global.c: Likewise. - -2002-01-05 Kazu Hirata - - * combine.c: Fix formatting. - -2002-01-05 Craig Rodrigues - - PR middle-end/1557 - * config/ia64/ia64.h (RENAME_EXTENDED_BLOCKS): Remove. - -2002-01-05 David Edelsohn - - * config/rs6000/rs6000.h (TARGET_POWERPC): For IN_LIBGCC2, define - as 1 for __powerpc64__ as well. - - * config/rs6000/t-aix43 (T_ADAFLAGS): Define. - - * alias.c (find_base_value, PLUS/MINUS): If we found a base, - return it. - -2002-01-05 Daniel Berlin - - * lcm.c: Revert change, due to performance regression it causes on - SPEC because it's slightly more conservative (sigh, I hate - edge-based LCM). - -Sat Jan 5 11:52:05 CET 2002 Jan Hubicka - - * cfgcleanup.c (try_forward_edges): Allow multiple jump threading. - -2002-01-05 Neil Booth - - * doc/cppinternals.texi: Update. - -2002-01-05 Hans-Peter Nilsson - - * doc/invoke.texi (Option Summary) : Document - -mbranch-predict, -mreg-stack-fill-bug-workaround and their - negatives. - (MMIX Options): Ditto. Fix item/itemx typo for -mno-zero-extend. - * config/mmix/mmix.c (mmix_target_asm_function_prologue): Rework - kludge for pre-october-14th mmix versions to handle new-found bug - with PUSHJ/PUSHGO and the register stack. - * config/mmix/mmix.h (struct machine_function): Rename member - has_call_value_without_parameters to has_call_without_parameters. - All referers changed. - (TARGET_MASK_REG_STACK_FILL_BUG, TARGET_DEFAULT - TARGET_MASK_BRANCH_PREDICT): New macros. - (TARGET_SWITCHES): New options -mreg-stack-fill-bug-workaround, - -mno-reg-stack-fill-bug-workaround. - * config/mmix/mmix.md ("call"): Set struct machine member - has_call_without_parameters. - -Sat Jan 5 02:20:22 CET 2002 Jan Hubicka - - * cfgcleanup.c (thread_jump): Fix handling of reversed branches. - -Sat Jan 5 01:35:29 CET 2002 Jan Hubicka - - * cfgcleanup.c: Include tm_p.h - (mark_effect): Fix handling of hard register; fix handling of SET - -2002-01-04 Kazu Hirata - - * config/h8300/h8300.md (anonymous patterns): Check that - operands are registers before using REGNO on them. - -2002-01-03 Roland McGrath - - * doc/invoke.texi (RS/6000 and PowerPC Options): Add -mcall-gnu. - -2002-01-04 Jakub Jelinek - - * tree.h (expand_expr_stmt_value): Add maybe_last argument. - * c-common.h (genrtl_expr_stmt_value): Likewise. - * stmt.c (expand_expr_stmt): Pass 1 as maybe_last. - (expand_expr_stmt_value): Add maybe_last argument. - Don't warn about statement with no effect if it is the last statement - in expression statement. - * c-semantics.c (genrtl_expr_stmt): Pass 1 as maybe_last. - (genrtl_expr_stmt_value): Add maybe_last argument, pass it down to - expand_expr_stmt_value. - (expand_stmt) [EXPR_STMT]: Pass 1 as maybe_last to - genrtl_expr_stmt_value if t is the last EXPR_STMT in its scope. - * expr.c (expand_expr) [LABELED_BLOCK_EXPR, LOOP_EXPR]: Pass 1 - as maybe_last to expand_expr_stmt_value. - -Fri Jan 4 11:45:05 2002 Jeffrey A Law (law@redhat.com) - - * c-common.c (c_expand_start_cond): Expect the IF_STMT node to - be passed in, do not build it. - (c_begin_if_stmt): New function. - (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise. - * c-common.h (c_expand_start_cond): Update prototype. - (c_begin_if_stmt): Prototype new function. - (c_begin_while_stmt, c_finish_while_stmt_cond): Likewise. - * c-parse.in (if_prefix): Use c_begin_if_stmt, - c_begin_while_stmt and c_finish_while_stmt_cond. - -2002-01-04 William Cohen - - * config/pa/elf.h (ASM_FILE_START): Reverted to profile_flag. - * config/pa/pa-linux.h (ASM_FILE_START): Likewise. - * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise. - * config/pa/som.h (ASM_FILE_START): Likewise. - -2002-01-04 Daniel Berlin - - * lcm.c: Include df.h. - Add available_transfer_function prototype. - (compute_available): Rework to use iterative dataflow framework. - (struct bb_info): s/bb_info/lcm_bb_info/g to avoid conflict - with bb_info in df.h - (available_transfer_function): New function. - - * Makefile.in (lcm.o): add df.h to dependencies. - -2002-01-04 Richard Henderson - - * config/alpha/alpha.c (some_operand): Accept HIGH. - (input_operand): Likewise; accept simple references to globals. - (alpha_const_ok_for_letter_p): New, outlined from alpha.h. - (alpha_const_double_ok_for_letter_p): Likewise. - (alpha_extra_constraint): Likewise. - (alpha_preferred_reload_class): Likewise. Do not force - symbolic constants to memory. - (alpha_legitimate_address_p): Accept simple references - to small_symbolic_operand. - (alpha_legitimize_address): New arg scratch. Be prepared to be - called when no_new_pseudos. Emit simple symbolic references. - Split integers into low, high, and rest. - (alpha_expand_mov): Use alpha_legitimize_address. - (some_small_symbolic_mem_operand): New. - (split_small_symbolic_mem_operand): New. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.h (CONST_OK_FOR_LETTER_P): Out-line. - (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. - (EXTRA_CONSTRAINT): Likewise. - (PREFERRED_RELOAD_CLASS): Likewise. - (LEGITIMIZE_ADDRESS): Update for alpha_legitimize_address change. - (PREDICATE_CODES): Update. - * config/alpha/alpha.md: New post-reload splitters to convert - simplfied symbolic operands to the form that references $29. - (divide expanders): Use emit_move_insn, not gen_movdi_er_high_g. - (movdi_er_nofix, movdi_er_fix): Accept any symbolic operand. - -2002-01-03 Richard Henderson - - * local-alloc.c (function_invariant_p): Update commentary. - -2002-01-04 H.J. Lu - - * toplev.c (rest_of_compilation): Fix a typo when calling - cleanup_cfg. - -2002-01-03 Kazu Hirata - - * c-common.c: Fix formatting. - * diagnostic.c: Likewise. - * doloop.c: Likewise. - * dwarf2out.c: Likewise. - -2002-01-03 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Use 'not.w' instead - of 'neg.w' when xoring with 0x0000ffff or 0xffff0000. - -2002-01-03 Neil Booth - - * cpperror.c: Update comments and copyright. - * cppexp.c, cppfiles.c, cpphash.c, cpphash.h, cppinit.c, - cpplex.c, cpplib.c, cpplib.h, cppmacro.c, cppmain.c: Similarly. - -2002-01-03 John David Anglin - - * collect2.c (main): Use strcmp when testing for "-shared". - -2002-01-03 Neil Booth - - * cppmacro.c: Don't include intl.h. Update comments. - (new_number_token): Allocate enough buffer for 64-bit unsigned - integers; update prototype. - * cppmain.c: Update comments. - -2002-01-03 William Cohen - - * function.h (struct function): Add profile. - (current_function_profile): New. - doc/extend.texi: Update documentation. - * final.c (final_start_function): Use current_function_profile - instead of profile_flag. - (profile_after_prologue): Likewise. - * function.c (expand_function_start): Likewise. - (expand_function_start): Likewise. - * config/alpha/alpha.c (direct_call_operand): - (alpha_does_function_need_gp): Likewise. - (alpha_expand_prologue): Likewise. - * config/arm/arm.c (arm_expand_prologue): Likewise. - thumb_expand_prologue: Likewise. - * config/d30v/d30v.c (d30v_stack_info): Likewise. - * config/fr30/fr30.c (MUST_SAVE_RETURN_POINTER): Likewise. - (fr30_expand_prologue): Likewise. - * config/i386/cygwin.h (SUBTARGET_PROLOGUE): Likewise. - * config/i386/i386.c (ix86_osf_output_function_prologue): Likewise. - * config/i386/i386.h (FINALIZE_PIC): Likewise. - * config/i386/win32.h (SUBTARGET_PROLOGUE): Likewise. - * config/i960/i960.c (i960_output_function_prologue): Likewise. - * config/ia64/ia64.c (ia64_compute_frame_size): Likewise. - * config/m32r/m32r.c (MUST_SAVE_RETURN_ADDR): Likewise. - (m32r_expand_prologue): Likewise. - * config/m88k/m88k.c (m88k_layout_frame): Likewise. - (m88k_expand_prologue): Likewise. - * config/m88k/m88k.h (ADJUST_INSN_LENGTH): Likewise. - * config/mips/mips.c (compute_frame_size): Likewise. - (mips_expand_prologue): Likewise. - (mips_can_use_return_insn): Likewise. - * config/pa/elf.h (ASM_FILE_START): Likewise. - * config/pa/pa-linux.h (ASM_FILE_START): Likewise. - * config/pa/pa64-hpux.h (ASM_FILE_START): Likewise. - * config/pa/som.h (ASM_FILE_START): Likewise. - * config/romp/romp.c (romp_using_r14): Likewise. - * config/rs6000/rs6000.c (first_reg_to_save): Likewise. - (rs6000_stack_info): Likewise. - * config/rs6000/sysv4.h (ASM_DECLARE_FUNCTION_NAME): Likewise. - * config/rs6000/xcoff.h (ASM_FILE_START): Likewise. - * config/v850/v850.c (compute_register_save_size): Likewise. - -2002-01-03 Jakub Jelinek - - * simplify-rtx.c (simplify_binary_operation) [DIV]: If - gen_lowpart_common fails, use gen_lowpart_SUBREG. - -2002-01-03 Turly O'Connor - - * darwin.c (machopic_output_possible_stub_label): Don't generate - stub routines for pseudo-stubs which we've just defined. - -2002-01-03 Kazu Hirata - - * builtins.c: Fix formatting. - * c-typeck.c: Likewise. - * combine.c: Likewise. - * expr.c: Likewise. - * loop.c: Likewise. - -2002-01-03 Andreas Schwab - - * cppfiles.c (_cpp_pop_file_buffer): Change return type to bool - and return true if _cpp_push_next_buffer pushed a new include - file. - * cpplib.c (_cpp_pop_buffer): Only call obstack_free if - _cpp_pop_file_buffer did not push a new file. - * cpphash.h (_cpp_pop_file_buffer): Update declaration. - -2002-01-02 Eric Christopher - - * final.c (final_scan_insn): Change 0 -> NULL_RTX in - FIND_REG_INC_NOTE call. Update copyright. - * loop.c (canonicalize_condition): Ditto. - * reorg.c (delete_scheduled_jump): Ditto. - -2002-01-03 Kazu Hirata - - * gcse.c: Fix formatting. - -2002-01-03 Graham Stott - - * mkconfig.sh: Output to config.h, hconfig.h and tconfig.h - forward defs for struct tags rtx_def, union_tree, rtvec_def - also output corresponding typedefs for rtx, tree, and rtvec. - - * system.h: Move forward defs for struct tags rtx_def, union_tree, - rtvec_def along with corresponding typedefs for rtx, tree, and - rtvec to config.h, hconfig.h, tconfig.h. - -2002-01-03 Graham Stott - - * tree.h: Update copyright date. - (IS_EXPR_CODE_CLASS): Add parenthesis. - (TREE_SET_CODE): Add whitespace. - (TREE_CHECK): Add parenthesis. - (TREE_CLASS_CODE): Add parenthesis and wrap long line. - (CST_OR_CONSTRUCTOR_CHECK): - (EXPR_CHECK): Add parenthis, whitespace and wrap line. - (TREE_SYMBOL_REFERENCED): Whitespace. - (INT_CST_LT): Likewise. - (INT_CST_LT_UNSIGNED): Likewise. - (tree_real_cst): Unwrap comment. - (tree_string): Likewise. - (tree_complex): Likewise. - (IDENTIFIER_POINTER): correct cast. - (SAVE_EXPR_CONTEXT): Whitespace. - (EXPR_WFL_FILENAME_NODE): Likewise. - (EXPR_WFL_FILENAME): Remove parenthesis. - (DECL_ORIGIN): Add parenthesis. - (DECL_FROM_INLINE): Use NULL_TREE. - (build_int_2): Whitespace. - (build_type_variant): Add parenthesis. - - * gcc/jcf-parse.c: Update copyright date. - (yyparse): Constify resource_filename. - -2002-01-03 Graham Stott - - * rtl.h: Update copyright date. - (RTL_CHECK1): Wrap long line. - (RTL_CHECK2): Likewise. - (RTL_CHECKC1): Wrap long line and whitespace. - (RTL_CHECKC2): Likewise. - (XWINT): Whitespace. - (XINT): Likewise. - (XSTR): Likewise. - (XEXP): Likewise. - (XVEC): Likewise. - (XMODE): Likewise. - (XBITMAP): Likewise. - (XTREE): Likewise. - (XBBDEF): Likewise. - (XTMPL): Likewise. - (X0WINT): Likewise. - (X0INT):Likewise. - (X0UINT): Likewise. - (X0STR): Likewise. - (X0EXP): Likewise. - (X0VEC): Likewise. - (X0MODE): Likewise. - (X0BITMAP): Likewise. - (X0TREE): Likewise. - (X0BBDEF): Likewise. - (X0ADVFLAGS): Likewise. - (X0CSELIB): Likewise. - (X0MEMATTR): Likewise. - (XCWINT): Likewise. - (XCINT): Likewise. - (XCUINT): Likewise. - (XCSTR): Likewise. - (XCEXP): Likewise. - (XCVEC): Likewise. - (XCMODE): Likewise. - (XCBITMAP): Likewise. - (XCTREE): Likewise. - (XCBBDEF): Likewise. - (XCADVFLAGS): Likewise. - (XCCSELIB): Likewise. - (XC2EXP): Likewise. - (INSN_UID): Likewise. - (PREV_INSN): Likewise. - (PATTERN): Likewise. - (INSN_CODE): Likewise. - (PUT_REG_NOTE_KIND): Likewise. - (CODE_LABEL_NUMBER): Likewise. - (NOTE_SOURCE_FILE): Likewise. - (NOTE_BLOCK): Likewise. - (NOTE_EH_HANDLER): Likewise. - (NOTE_RANGE_INFO): Likewise. - (NOTE_LIVE_INFO): Likewise. - (NOTE_BASIC_BLOCK): Likewise. - (NOTE_EXPECTED_VALUE): Likewise. - (NOTE_LINE_NUMBER): Likewise. - (LABEL_NAME): Likewise. - (LABEL_NUSES): Likewise. - (LABEL_ALTERNATE_NAME): Likewise. - (ADDRESSOF_DECL): Likewise. - (JUMP_LABEL): Likewise. - (LABEL_NEXTREF): Likewise. - (REGNO): Likewise. - (ORIGINAL_REGNO: Likewise. - (HARD_REGISTER_NUM_P): Add parenthesis. - (SUBREG_REG): Whitespace. - (SUBREG_BYTE): Likewise. - (ASM_OPERANDS_TEMPLATE): Remove parenthesis. - (ASM_OPERANDS_OUTPUT_CONSTRAINT): Likewise. - (ASM_OPERANDS_OUTPUT_IDX): Likewise. - (ASM_OPERANDS_INPUT_VEC): Likewise. - (ASM_OPERANDS_INPUT_CONSTRAINT_VEC): Likewise. - (ASM_OPERANDS_INPUT): Likewise. - (ASM_OPERANDS_INPUT_LENGTH): Likewise. - (ASM_OPERANDS_INPUT_CONSTRAINT_EXP): Likewise. - (ASM_OPERANDS_INPUT_CONSTRAINT): Likewise. - (ASM_OPERANDS_INPUT_MODE): Likewise. - (ASM_OPERANDS_SOURCE_FILE): Likewise. - (ASM_OPERANDS_SOURCE_LINE): Likewise. - (MEM_SET_IN_STRUCT_P): Minor reformat. - (TRAP_CONDITION): Whitespace. - (TRAP_CODE): Likewise. - (COND_EXEC_TEST): Likewise. - (COND_EXEC_CODE): Likewise. - (FIND_REG_INC_NOTE): Uppercase macro args and add parenthesis. - (PHI_NODE_P): Add parenthesis. - (plus_constant): Whitespace and add parenthesis. - -2002-01-03 Kazu Hirata - - * config/avr/avr.c: Fix comment typos. - * config/c4x/c4x.md: Likewise. - * config/dsp16xx/dsp16xx.h: Likewise. - * config/dsp16xx/dsp16xx.md: Likewise. - * config/i386/i386.md: Likewise. - * config/ia64/ia64.c: Likewise. - * config/m32r/m32r.h: Likewise. - * config/m68hc11/m68hc11.md: Likewise. - * config/mmix/mmix.c: Likewise. - * config/mn10200/mn10200.c: Likewise. - * config/romp/romp.c: Likewise. - * config/sh/sh.c: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/stormy16/stormy16.md: Likewise. - -2002-01-03 Graham Stott - - * loop.h: Update copyright date. - (LOOP_MOVABLES): Fix typo. - (LOOP_REGS): Likewise. - (LOOP_IVS): Likewise. - -2002-01-03 Graham Stott - - * cppinit.c: Update copyright date. - Don't include output.h - * Makefile.in: Update copyright date. - Update dependency. - -2002-01-02 Craig Rodrigues - - PR c/5226 - * invoke.texi (-mthreads): Remove from documented RS/6000 options. - (-pthread) Add to RS/6000 options. - -2002-01-02 Kazu Hirata - - * except.c: Fix comment typos. - * loop.c: Likewise. - * varasm.c: Likewise. - * doc/tm.texi: Fix a typo. - -2002-01-02 Jakub Jelinek - - * c-typeck.c (output_init_element): Allow initializing static storage - duration objects with compound literals. - -2002-01-02 Richard Henderson - - * objc/objc-act.c (hack_method_prototype): Clear current_function_decl - after abusing it. - -2002-01-02 Kaveh R. Ghazi - - * gcc.c (default_compilers): Const-ify. - * mips-tdump.c (stab_names): Likewise. - * mips-tfile.c (map_coff_types, map_coff_storage, - map_coff_sym_type, map_coff_derived_type, stabs_symbol, - pseudo_ops_t, pseudo_ops): Likewise. - * protoize.c (default_include): Likewise - - * real.c (GET_REAL, PUT_REAL): Don't cast away const-ness. - (ezero, ehalf, eone, etwo, e32, elog2, esqrt2, epi): Const-ify. - Add array size in declaration. - (endian, emov, eisneg, eisinf, eisnan, eiisnan, eiisneg, emovi, - emovo, emovz, eiisinf, ecmpm, eaddm, esubm, m16m, edivm, emulm, - esub, eadd, eadd1, ediv, emul, e53toe, e64toe, e113toe, e24toe, - etoe113, etoe64, etoe53, etoe24, ecmp, eround, ltoe, ultoe, - eifrac, euifrac, e24toasc, e53toasc, e64toasc, e113toasc, etoasc, - efloor, efrexp, eldexp, eremain, dectoe, etodec, ibmtoe, etoibm, - c4xtoe, etoc4x, uditoe, ditoe, etoudi, etodi, esqrt, etens, - emtens, make_nan): Const-ify. - (TFbignan, TFlittlenan, XFbignan, XFlittlenan, DFbignan, - DFlittlenan, SFbignan, SFlittlenan): Make static and const-ify. - -2002-01-02 Joseph S. Myers - - * config.gcc (ia64-*-*): Set extra_headers. - (alpha*-dec-osf*): Likewise. Don't use alpha/t-osf. - * config/alpha/t-osf: Remove. - * config/ia64/t-ia64 (EXTRA_HEADERS): Remove. - -2002-01-02 David Edelsohn - - * config/rs6000/t-aix43: Revert previous change. - -2002-01-02 Jason Merrill - - * c-decl.c (c_expand_body): Call outlining_inline_function when - emitting an inline function out of line. - -2002-01-02 Richard Henderson - - * dwarf2out.c (limbo_die_node): Add created_for member. - (new_die): New argument created_for. Update all callers. - (mark_limbo_die_list): New. - (dwarf2out_init): Register limbo_die_list as a root. - (dwarf2out_finish): Force insert limbo dies into their function - context. - -2002-01-02 Nathan Sidwell - - PR c++/5089 - * doc/invoke.texi (-Wold-style-cast): Only warn about non-void casts. - -2002-01-02 Kazu Hirata - - * config/h8300/fixunssfsi.c: Update copyright. - Fix comment typos. - Fix formatting. - * config/h8300/h8300.c: Update copyright. - Eliminate warnings. - -2002-01-02 Kazu Hirata - - * config/romp/romp.c: Fix comment formatting. - * config/romp/romp.h: Likewise. - * config/romp/romp.md: Likewise. - * config/s390/s390.c: Likewise. - * config/stormy16/stormy16.c: Likewise. - * config/stormy16/stormy16.h: Likewise. - -2002-01-02 Alexandre Oliva - - * c-common.h (genrtl_expr_stmt_value): Declare. - * c-semantics.c (genrtl_goto_stmt): Redirect to... - (genrtl_goto_stmt_value): ... this new function. Pass new - argument down to expand_expr_stmt_value, taking - TREE_ADDRESSABLE into account. - * c-common.c (c_expand_expr): Mark the last EXPR_STMT of a - STMT_EXPR as addressable, i.e., one whose result we want. - * expr.c (expand_expr): Don't save expression statement value - of labeled_blocks or loop_exprs. - * stmt.c (expand_expr_stmt): Redirect to... - (expand_expr_stmt_value): ... this new function. Use new - argument to tell whether to save expression value. - (expand_end_stmt_expr): Reset last_expr_type and - last_expr_value if we don't have either. - * tree-inline.c (declare_return_variable): Mark its use - statement as addressable. - * tree.h: Document new use of TREE_ADDRESSABLE. - (expand_expr_stmt_value): Declare. - -2002-01-01 Tom Rix - - * config/rs6000/rs6000.c (rs6000_emit_set_long_const): Fix for use by - rs6000_emit_allocate_stack. - -2002-01-01 Joseph S. Myers - - * configure.in: Prepend ${srcdir}/config/${cpu_type}/ instead of - ${srcdir}/ginclude/ to every entry in extra_headers. - * configure: Regenerate. - * ginclude/math-3300.h: Rename to config/m68k/math-3300.h. - * ginclude/math-68881.h: Rename to config/m68k/math-68881.h. - * ginclude/ppc-asm.h: Rename to config/rs6000/ppc-asm.h. - * ginclude/proto.h: Rename to config/convex/proto.h. - -Tue Jan 1 17:12:56 2002 Richard Kenner - - * attribs.c (handle_vector_size_attribute): Use host_integerp - and tree_int_cst; remove warnings. - * caller-save.c (insert_restore): Add cast to get rid of warning. - (insert_save): Likewise. - * emit-rtl.c (adjust_address_1, offset_address): Likewise. - * regmove.c (find_matches): Add temporary var to kill a warning. - -2002-01-01 Douglas B Rupp - - * config/alpha/vms.h (DWARF2_UNWIND_INFO, EH_RETURN_HANDLER_RTX, - LINK_EH_SPEC, MD_FALLBACK_FRAME_STATE_FOR): Define. - * config/alpha/t-vms (EXTRA_PARTS): Add vms-dwarf2eh.o - (vms-dwarf2eh.o): Add Makefile rule. - * config/alpha/vms-ld.c (main): Handle vms-dwarf2eh.o. - * config/alpha/vms-dwarf2eh.asm: New file. - - * gcc.c (delete_if_ordinary): Delete all versions. - -2002-01-01 Hans-Peter Nilsson - - * config/mmix/mmix.md: Update FIXME to not mention - define_constants. - (MMIX_rJ_REGNUM): New define_constants constant. - ("movqi", "movsi", "movdi", "*movdicc_real_foldable", - "*movdicc_real"): Adjust contraints formatting. - ("*bCC_foldable"): Add %+ for P in output format and delete FIXME - for branch prediction. - ("*bCC", "*bCC_inverted_foldable", "*bCC_inverted"): Add %+ in - output template. - ("*call_real", "*call_value_real", "nonlocal_goto_receiver", - "*nonlocal_goto_receiver_expanded"): Use MMIX_rJ_REGNUM instead of - number. Delete related FIXMEs. - * config/mmix/mmix.h (MMIX_INCOMING_RETURN_ADDRESS_REGNUM): Change - from number to MMIX_rJ_REGNUM. - (TARGET_MASK_BRANCH_PREDICT): New. - (TARGET_DEFAULT): Change to TARGET_MASK_BRANCH_PREDICT. - (TARGET_SWITCHES): Update comment. Correct -mno-toplevel-symbols - value. Add -mbranch-predict and -mno-branch-predict. - (TARGET_VERSION): Drop date. - (ADDITIONAL_REGISTER_NAMES): Use MMIX_rJ_REGNUM, not number. - * config/mmix/mmix.c (mmix_encode_section_info): Correct condition - for finding out global symbols. - (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.8 b/gcc/ChangeLog.8 deleted file mode 100644 index 37774eebf50..00000000000 --- 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. diff --git a/gcc/ChangeLog.9 b/gcc/ChangeLog.9 deleted file mode 100644 index 8eed245136d..00000000000 --- a/gcc/ChangeLog.9 +++ /dev/null @@ -1,21488 +0,0 @@ -2003-06-30 Bruno Haible - - PR middle-end/6578 - * libgcc2.c (__subvsi3): Remove simplification that would not work - when subtracting -0x80000000. - (__subvdi3): Remove simplification that would return a wrong result. - (__mulvsi3): Fix overflow check. - (__absvdi2): Fix simplification that would return a wrong result. - (__mulvdi3): Fix overflow check. - -2003-06-30 Jeff Law - - * stmt.c (any_pending_cleanups): Lose argument THIS_CONTOUR, it - was always passed in the value '1'. Simplify body appropriately. - * tree.h (any_pending_cleanups): Corresponding changes. - * calls.c: (expand_call): Corresponding changes. - -2003-06-30 Kazu Hirata - - * combine.c (distribute_notes): Don't bother REG_WAS_0. - * cse.c (cse_insn): Likewise. - * final.c (final_scan_insn): Likewise. - * jump.c (duplicate_loop_exit_test): Likewise. - * rtl.c (reg_note_name): Remove REG_WAS_0. - * rtl.h (REG_WAS_0): Remove. - * unroll.c (final_reg_note_copy): Don't bother REG_WAS_0. - * config/avr/avr.c (output_movqi): Don't use reg_was_0. - (output_movhi): Likewise. - (output_movsisf): Likewise. - (reg_was_0): Remove. - * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't use - REG_WAS_0. - (m68hc11_gen_movqi): Likewise. - * config/vax/vax-protos.h: Remove the prototype for - reg_was_0_p. - * config/vax/vax.c (follows_p): Remove. - (reg_was_0_p): Likewise. - * config/vax/vax.md (movsi): Don't use reg_was_0_p. - (movhi): Likewise. - (movqi): Likewise. - * doc/rtl.texi (REG_WAS_0): Remove. - -2003-06-30 Mark Mitchell - - * config/rs6000/spe.h (__ev_set_spefscr_frmc): Set the flag. - -2003-06-30 Bob Wilson - - * config/xtensa/lib1funcs.asm: Use "xtensa-config.h" from - top-level include directory. - * config/xtensa/lib2funcs.S: Likewise. - * config/xtensa/xtensa.h: Likewise. - * config/xtensa/xtensa-config.h: Remove. - * doc/install.texi: Update location of "xtensa-config.h" header. - -2003-06-30 Ulrich Weigand - - * config/s390/s390.c (s390_extra_constraint): New function. - * config/s390/s390-protos.h (s390_extra_constraint): Declare it. - * config/s390/s390.h (EXTRA_CONSTRAINT): Use it. - * config/s390/s390.c (q_constraint): Remove. - * config/s390/s390-protos.h (q_constraint): Likewise. - * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Add 'R', 'S', 'T'. - (EXTRA_ADDRESS_CONSTRAINT): Define. - - * config/s390/s390.c (larl_operand): Refuse out-of-range operands. - (DISP_IN_RANGE, s390_short_displacement): New. - (legitimate_reload_operand_p): Support long displacements. - (s390_decompose_address): Likewise. - (legitimize_pic_address): Likewise. - (legitimize_address): Likewise. - (s390_fixup_clobbered_return_reg): Likewise. - (s390_emit_prologue, s390_emit_epilogue): Likewise. - (s390_output_mi_thunk): Likewise. - - * config/s390/s390.md (attr "op_type"): Add "RXY", "RSY", "SIY". - (attr "atype", attr "length"): Add defaults for new op_types. - (all insns): Change op_type attribute where appropriate. - - ("*movdi_lay", "*movsi_lay", "*extendqidi2", "*extendqisi2"): New insns. - ("*tmqi_ext", "*tmdi_mem", "*tmsi_mem", "*tmhi_mem", *tmqi_mem", - "*tstsi", "*tstsi_cconly", "*tsthiCCT", "*tsthiCCT_cconly", - "*tsthi", "*tsthi_cconly", "*tstqiCCT", "*tstqiCCT_cconly", - "*tstqi", "*tstqi_cconly", "*cmpsi_ccs_sign", "*cmpsi_ccs", - "*cmpsi_ccu", "*cmphi_ccu", "*cmpqi_ccu", "*cli", - "movti", "*movdi_64", "*movdi_31", "*movsi", "movhi", "movqi_64", - "movqi", "*movstrictqi", "*movstricthi", "movstrictsi", - "*movdf_64", "*movdf_31", "*movsf", - "*load_multiple_si", "*store_multiple_di", - "*sethighqisi", "*sethighhisi", "*sethighqidi_31", "*extendhisi2", - "*la_64", "*la_31", "*la_31_and", "force_la_31", - "*addsi3_carry1_cc", *addsi3_carry1_cconly", - "*addsi3_carry2_cc", *addsi3_carry2_cconly", - "*addsi3_cc", "*addsi3_cconly", "*addsi3_cconly2", - "*addsi3_sign", "*addsi3_sub", "addsi3", - "*subsi3_borrow_cc", "*subsi3_borrow_cconly", "*subsi3_cc", - "*subsi3_cconly", "*subsi3_sign", "*subsi3_sub", "subsi3", - "mulsi3" - "*andsi3_cc", "*andsi3_cconly", "andsi3", - "*andqi3_ss", "*andqi3_ss_inv", - "*iorsi3_cc", "*iorsi3_cconly", "iorsi3", - "*iorqi3_ss", "*iorqi3_ss_inv", - "*xorsi3_cc", "*xorsi3_cconly", "xorsi3", - "*xorqi3_ss", "*xorqi3_ss_inv", - "*tls_load_31"): Add alternatives for long-displacement instructions. - - ("*cmpdf_ccs", "*cmpdf_ccs_ibm", "*cmpsf_ccs", "*cmpsf_ccs_ibm", - "*load_multiple_di", "*store_multiple_di", - "*sethighqidi_64", "*zero_extendhisi2_31", - "truncdfsf2_ibm", "extendsfdf2_ieee", "extendsfdf2_ibm", - "adddf3", "*adddf3", "*adddf3_ibm", - "addsf3", "*addsf3", "*addsf3_ibm", - "subdf3", "*subdf3", "*subdf3_ibm", - "subsf3", "*subsf3", "*subsf3_ibm", - "mulsi_6432", "divmoddisi3", - "muldf3", "*muldf3", "*muldf3_ibm", - "mulsf3", "*mulsf3", "*mulsf3_ibm", - "divdf3", "*divdf3", "*divdf3_ibm", - "divsf3", "div*sf3", "*divsf3_ibm", - "sqrtdf2", "sqrtsf2", - "*cjump_long", "*icjump_long", "indirect_jump", "casesi_jump", - "*doloop_si_long", "*doloop_di_long", "bas_64", "bas_31", - "bas_r_64", "bas_r_31", "bas_tls_31", "bas_tls_64"): Adapt memory - and address constraints for instructions that do not accept long - displacements. - -2003-06-30 Hartmut Penner - Ulrich Weigand - - * config/s390/2084.md: New file. - * config/s390/s390.md: Include it. - * config/s390/s390.c (s390_adjust_priority): New function. - (TARGET_SCHED_ADJUST_PRIORITY): Define. - (s390_first_cycle_multipass_dfa_lookahead): New function. - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define. - (s390_sched_reorder2): New function. - (TARGET_SCHED_REORDER2): Define. - (s390_adjust_cost): Support PROCESSOR_2084_Z990 cpu type. - (s390_issue_rate): Likewise. - -Mon Jun 30 23:47:33 CEST 2003 Jan Hubicka - - * Makefile.in (GTFILES): Add cgraph.h. - * cgraph.c (known_decls): Remove. - (cgraph_hash, cgraph_nodes, cgraph_nodes_queue, - cgraph_varpool_hash, cgraph_varpool_nodes_queue): GTYize. - (cgraph_node): Do not allocate known_decls; use polutate hashtable. - (cgraph_varpool_node): Likewise; add next pointer. - (cgraph_varpool_nodes): New static variable. - * cgraph.h (cgraph_local_info, cgraph_global_info, cgraph_rtl_info, - cgraph_node, cgraph_edge, cgraph_varpool_node, cgraph_nodes, cgraph_n_nodes, - cgraph_varpool_n_nodes, cgraph_varpool_nodes_queue): GTYize. - * gengtype.c (open_base_files): Include cgraph.h - -2003-06-30 Volker Reichelt - - * Changelog: Remove ">>>>>>>" from previous change. - -2003-06-30 Volker Reichelt - - * config/cris/cris.c: Fix spelling for "testcase". - * config/cris/cris.h: Likewise. - * config/cris/cris.md: Likewise. - * config/mmix/crti.asm: Likewise. - * config/mmix/mmix.h: Likewise. - * config/mmix/mmix.md: Likewise. - -2003-06-30 Kazu Hirata - - * config/h8300/h8300.h (LEGITIMATE_CONSTANT_P): Make it always - 1. - -2003-06-30 Ulrich Weigand - - * config.gcc [s390*-*-*]: Support --with-arch, --with-tune, and - --with-mode configure options. - * config/s390/s390.h (OPTION_DEFAULT_SPECS): Define. - (DRIVER_SELF_SPECS): Define. - * config/s390/linux.h (ASM_SPEC): Pass architecture mode and cpu - architecture to assembler. - (LINK_SPEC): Merge 31-bit and 64-bit variants. - (LINK_ARCH31_SPEC, LINK_ARCH64_SPEC, EXTRA_SPECS): Remove. - * config/s390/s390.c (override_options): New default rules for - architecture mode and cpu architecture selection. - * doc/invoke.texi (-mesa, -mzarch, -march, -mtune): Document - new default rules. - - * config/s390/s390.h (enum processor_type): Add PROCESSOR_2084_Z990. - * config/s390/s390.md (attr "cpu"): Add "z990" processor type. - * config/s390/s390.c (override_options): Add "z990" to - processor_alias_table. - * doc/invoke.texi (-march): Document "z990" processor type. - - * config/s390/s390.c (s390_tune_flags, s390_arch_flags): New variables. - * config/s390/s390.h (s390_tune_flags, s390_arch_flags): Declare. - (enum processor_flags, TARGET_CPU_IEEE_FLOAT, TARGET_CPU_ZARCH, - TARGET_CPU_LONG_DISPLACEMENT, TARGET_LONG_DISPLACEMENT): New. - * config/s390/s390.c (override_options): Replace enum pta_flags by - enum processor_flags. Fill in s390_tune_flags and s390_arch_flags. - - * config/s390/s390.c (s390_cpu): Rename to ... - (s390_tune): ... this. - * config/s390/s390.h (s390_cpu, s390_tune): Likewise. - * config/s390/s390.c (s390_issue_rate, override_options): Likewise. - * config/s390/s390.md (attr "cpu"): Likewise. - -2003-06-30 Neil Booth - - * c-common.c (enum c_language_kind, flag_objc): Remove. - (fix_string_type, check_case_value, c_common_nodes_and_builtins, - c_add_case_label, finish_label_addr_expr, boolean_increment): - Use c_dialect_ macros. - * c-common.h (enum c_language_kind): Extend. - (c_dialect_cxx, c_dialect_objc): New. - (flag_objc): Remove. - (c_common_init_options): Update prototype. - * c-cppbuiltin.c (define__GNUC__, c_cpp_builtins): Use c_dialect_ - macros. - * c-decl.c (finsih_decl, grokfield, finish_struct): Use c_dialect_ - macros. - * c-format.c (C_STD_VER, C_STD_NAME): Similarly. - * c-lang.c (c_init_options): Remove. - (c_language): Define. - (LANG_HOOKS_INIT_OPTIONS): Use common hook. - * c-lex.c (lex_charconst): Use c_dialect_ macros. - * c-opts.c (lang_flags): Make function-local. - (c_common_init_options): Use c_dialect_ macros. Handle - C++ diagnostic requirements. - (c_common_handle_option, c_common_post_options): Use flag_cxx. - * c-parse.in (init_reswords): Use c_dialect_objc (). - * c-pch.c (get_ident): Use c_language. - * c-pretty-print.c (pp_c_bool_literal): Use c_dialect_ macros. - * c-typeck.c (comptypes, build_c_cast): Similarly. - * objc/objc-lang.c (c_language): Define. - (LANG_HOOKS_INIT_OPTIONS): Use common hook. - (objc_init_options): Remove. - -2003-06-30 Kazu Hirata - - * config/alpha/alpha.h (FUNCTION_ARG_PADDING): Remove. - * config/alpha/unicosmk.h: Don't #undef FUNCTION_ARG_PADDING. - -2003-06-30 Wolfgang Bangerth - - * doc/sourcebuild.texi: Don't reference gnats.html any more. - -2003-06-30 Kazu Hirata - - * config/h8300/h8300.c (compute_mov_length): Fix length of - mov:SF on H8/300. - -2003-06-30 Nick Clifton - - * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Make defintion - constant. - -Mon Jun 30 15:36:29 CEST 2003 Jan Hubicka - - (fyl2x_sfxf3, fyl2x_dfxf3, fscale_sfxf3, fscale_dfxf3): Fix condition. - -2003-06-30 Hartmut Penner - - * config/rs6000/rs6000.c (rs6000_split_altivec_in_gprs): New function. - (altivec_in_gprs_p): New function. - - * config/rs6000/rs6000-protos (rs6000_split_altivec_in_gprs): New - prototype. - (altivec_in_gprs_p): New prototype. - - * config/rs6000/altivec.md (*movv4si_internal): Change - multi-assembler alternative to '#'. Add postreload splitter to - handle this cases. - (*movv4hi_internal): Likewise. - (*movv4qi_internal): Likewise. - (*movv4sf_internal): Likewise. - -2003-06-30 Jason Merrill - - * defaults.h (PUSH_ARGS_REVERSED): Define default here. - * calls.c: Not here. - -2003-06-30 Ben Elliston - - * config/arm/arm.c (arm_rtx_costs): Remove #if 0 block. - (bad_signed_byte_operand): Likewise. - (arm_output_epilogue): Likewise. - (arm_final_prescan_insn): Likewise. - -2003-06-30 Rainer Orth - - * cfgrtl.c (mark_killed_regs): Cast HARD_REGNO_NREGS to int. - -2003-06-30 Rainer Orth - - * c-pch.c (c_common_write_pch): Flush asm_out_file to allow for - subsequent writes. - -Mon Jun 30 10:03:02 CEST 2003 Jan Hubicka - - * cfgrtl.c (verify_flow_info): Accept degenerated condjumps - in cfglayout mode. - -Mon Jun 30 09:52:39 CEST 2003 Jan Hubicka - - * i386.c (standard_80387_constant_p): Accept TFmode constants too. - (init_ext_80387_constants): Likewise. - (standard_80387_constant_rtx): Likewise. - * i386.md (atanxf): Disable for TARGET_128BIT_LONG_LONG - (atantf): Disable for !TARGET_128BIT_LONG_LONG - (fyl2x_sfxf3, fyl2x_dfxf3): Accept TFmode operands. - (fyl2x_xfxf3, fyl2x_tfxf3): Enable/disable as needed. - (fscale_sfxf3, fscale_dfxf3): Accept TFmode operands. - (fscale_xfxf3, fscale_tfxf3): Enable/disable as needed. - (frndinttf2): New. - (f2xm1tf2): New. - (exp?f2): Use expsf2_tf when needed. - (exp?f2_tf): New. - (exptf): New. - -2003-06-29 Uwe Stieber - - * config.gcc (sh*-*-kaos*): Put tm_file setting in separate case - statement from tmake_file set. - -2003-06-29 James E Wilson - - * reload.c (find_reloads): Change push_reloads to push_reload in - comment. - * reload1.c (eliminate_regs): Likewise. - (dump_needs): Delete prototype for deleted function. - -2003-06-29 Kaveh R. Ghazi - - * builtin-attrs.def (gcc_diag, gcc_cdiag, gcc_cxxdiag): New - format attributes. - * c-format.c (enum format_type): Add gcc_diag_format_type, - gcc_cdiag_format_type, and gcc_cxxdiag_format_type. - (gcc_diag_length_specs, gcc_cdiag_length_specs, - gcc_cxxdiag_length_specs, gcc_diag_flag_pairs, - gcc_cdiag_flag_pairs, gcc_cxxdiag_flag_pairs, gcc_diag_flag_specs, - gcc_cdiag_flag_specs, gcc_cxxdiag_flag_specs, gcc_diag_char_table, - gcc_cdiag_char_table, gcc_cxxdiag_char_table): New. - (format_types_orig): Add new data. - (find_char_info_specifier_index, init_dynamic_diag_info): New - functions. - (handle_format_attribute): Update to handle new format attributes. - -2003-06-29 Dara Hazeghi - - * doc/install.texi: Remove install documentation for obsoleted targets - i?86-*-sco, i?86-*-sco3.2v4, powerpcle-*-pe, powerpcle-*-winnt, - arm-*-aof. - Update information about IA64 toolchain, AIX make requirements, - and binutils for m68k-*-hpux and *-*-linuxaout targets. - -Mon Jun 30 00:50:43 CEST 2003 Jan Hubicka - - * regmove.c (regmove_optimize): Don't try to make src and dst match - when they are in different modes. - -Sun Jun 29 23:06:32 CEST 2003 Jan Hubicka - - * builtins.c (expand_builtin_mathfn, expand_builtin_mathfn_2): Avoid - busy work when builtin is not supported by the backend. - -2003-06-29 Zdenek Dvorak - - * loop.c (count_one_set): Fix detection of registers set in more - than one basic block. - -2003-06-29 Andreas Jaeger - - * target-def.h: Remove usage of OBJECT_FORMAT_ROSE. - * system.h: Poison OBJ_FORMAT_ROSE. - * doc/tm.texi (Macros for Initialization): Remove documentatin of - OBJECT_FORMAT_ROSE. - * config/rs6000/lynx.h: Remove undef of OBJECT_FORMAT_ROSE. - * collect2.c: Remove usage of OBJECT_FORMAT_ROSE. - -2003-06-29 John David Anglin - - * pa.c (update_total_code_bytes): New function. - (last_address): Number of bytes output for a function and its - associated thunks. - (compute_frame_size): Use BITS_PER_UNIT. - (pa_output_function_epilogue): Compute last_address. Use - update_total_code_bytes. - (output_lbranch): Handle long branch on portable runtime. - (attr_length_millicode_call, attr_length_call, - attr_length_indirect_call): Only use total_code_bytes for calls in - the text section. - (output_call): Only use an indirect call sequence when the target is - not local. - (pa_asm_output_mi_thunk): Handle updating of total_code_bytes. Improve - test to determine when an IA-relative branch can be used. Add various - long branch sequences. Avoid using an indirect branch on all ports - except SOM. - -2003-06-29 Ulrich Weigand - - * expr.c (clear_by_pieces): Fix prototype. - -2003-06-29 Andreas Jaeger - - * cse.c: Convert prototypes to ISO C90. - * cselib.c: Likewise. - * cselib.h: Likewise. - * dbxout.c: Likewise. - * debug.c: Likewise. - * df.c: Likewise. - * df.h: Likewise. - * dojump.c: Likewise. - * doloop.c: Likewise. - * dominance.c: Likewise. - * dwarf2asm.c: Likewise. - * dwarf2out.c: Likewise. - * dwarf2out.h: Likewise. - * dwarfout.c: Likewise. - * except.c: Likewise. - * except.h: Likewise. - * emit-rtl.c: Likewise. - * et-forest.c: Likewise. - * et-forest.h: Likewise. - * except.c: Likewise. - * explow.c: Likewise. - * expmed.c: Likewise. - * expr.c: Likewise. - * expr.h: Likewise. - -2003-06-29 Kazu Hirata - - * alloc-pool.c: Fix comment formatting. - * bitmap.c: Likewise. - * bitmap.h: Likewise. - * bt-load.c: Likewise. - * builtins.c: Likewise. - * caller-save.c: Likewise. - * cfganal.c: Likewise. - * cfgrtl.c: Likewise. - * collect2.c: Likewise. - * cse.c: Likewise. - * df.c: Likewise. - * diagnostic.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * expmed.c: Likewise. - * final.c: Likewise. - * flags.h: Likewise. - * fold-const.c: Likewise. - * gcc.c: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * genattrtab.c: Likewise. - * genautomata.c: Likewise. - * libgcov.c: Likewise. - * mips-tfile.c: Likewise. - * optabs.c: Likewise. - * prefix.c: Likewise. - * rtlanal.c: Likewise. - * stmt.c: Likewise. - * stor-layout.c: Likewise. - * toplev.c: Likewise. - * varasm.c: Likewise. - * vmsdbgout.c: Likewise. - -2003-06-29 Kazu Hirata - - * expr.c (emit_single_push_insn): If padding is needed - downward, adjust the stack pointer first, and then store the - data into the stack location using an offset. - -2003-06-29 Andreas Jaeger - - * collect2.h: Convert prototypes to ISO C90. - * collect2.c: Likewise. - * conflict.c: Likewise. - * coverage.c: Likewise. - * convert.h: Likewise. - * convert.c: Likewise. - -2003-06-29 Nathan Sidwell - - * c-decl.c (c_init_decl_processing): Use a location_t. Set input - filename to . - * tree.c (make_node): Just copy the current location. - -2003-06-29 Eric Botcazou - - PR optimization/11210 - * fold-const (decode_field_reference): Revert 2003-06-26 patch. - -2003-06-29 Neil Booth - - * toplev.c (flag_dummy): Remove. - (f_options): Restore flag pointers. - -2003-06-29 David Edelsohn - - * config/rs6000/rs6000.c (processor_target_table): Add 970. - * config.gcc: Add 970. - -2003-06-29 Kazu Hirata - - * dwarf2out.c (add_AT_string): Replace ggc_alloc_string (X, - -1) with ggc_strdup. - * stmt.c (expand_asm_operands): Likewise. - * config/rs6000/rs6000.md (builtin_setjmp_receiver): Likewise. - -2003-06-28 Kazu Hirata - - * config/ip2k/ip2k.c (ip2k_reorg): Use INSN_P instead of its - definition. - -2003-06-29 Franz Sirl - - * opts.c: Include insn-attr.h. - * Makefile.in (opts.o): Depend on INSN_ATTR_H. - -2003-06-27 J"orn Rennecke - - * flow.c (propagate_one_insn): Use proper test for a register - being part of the return value. - -2003-06-28 Kazu Hirata - - * config/avr/avr.c: Fix a comment typo. - -2003-06-28 Kazu Hirata - - * config/avr/avr-protos.h: Replace avr_simplify_comparision_p - with avr_simplify_comparison_p. - * config/avr/avr.c: Likewise. - -2003-06-28 Kazu Hirata - - * builtins.c: Follow spelling conventions. - * cgraph.c: Likewise. - * cpplex.c: Likewise. - * config/arm/arm.c: Likewise. - * config/arm/iwmmxt.md: Likewise. - * config/c4x/c4x-modes.def: Likewise. - * config/c4x/c4x.c: Likewise. - * config/c4x/c4x.h: Likewise. - * config/c4x/c4x.md: Likewise. - * config/i386/i386-interix.h: Likewise. - * config/mips/mips.h: Likewise. - -2003-06-28 Neil Booth - - * config/m68k/m68k.h (TARGET_CPU_CPP_BUILTINS): Predicate - __mc68020__ on TARGET_68020. - -2003-06-28 Kazu Hirata - - * config/h8300/h8300.c: Fix a comment typo. - -2003-06-28 Nathan Sidwell - - * c-parse.in (yylexstring): Use a location_t. - - * diagnostic.h (diagnostic_set_info): Replace file and lineno - parameters with a location_t. - * diagnostic.c (diagnostic_set_info): Replace file and lineno - parameters with a location_t. - (inform, warning, pedwarn, error, sorry, fatal_error, - internal_error, warning_with_decl, pedwarn_with_decl, - error_with_decl): Adjust. - * c-error.c (pedwarn_c99): Adjust. - * c-format.c (status_warning): Adjust. - * rtl-error.c (file_and_line_for_asm): Rename to ... - (location_for_asm): Return a location_t. - (diagnostic_for_asm): Adjust. - -2003-06-28 Neil Booth - - * cpptrad.c (skip_macro_block_comment): New. - (copy_comment): Use it if appropriate. - -2003-06-28 Kazu Hirata - - * gcse.c (compute_ld_motion_mems): Use INSN_P instead of its - definition. - (store_killed_in_insn): Likewise. - * print-rtl.c (print_rtx): Likewise. - * config/frv/frv.c (frv_final_prescan_insn): Likewise. - * config/m68hc11/m68hc11.c (dead_register_here): Likewise. - (m68hc11_reassign_regs): Likewise. - (m68hc11_reorg): Likewise. - -2003-06-28 Gabriel Dos Reis - - * diagnostic.c (output_integer_with_precision): New macro. - (output_format): Use it. Handle more format specifiers. - (output_long_decimal): Remove. - (output_unsigned_decimal): Likewise. - (output_long_unsigned_decimal): Likewise. - (output_octal): Likewise. - (output_long_octal): Likewise. - (output_hexadecimal): Likewise. - (output_long_hexadecimal): Likewise. - (output_long_long_decimal): Likewise. - -2003-06-28 Andreas Schwab - - * config/ia64/ia64.md: Follow recent emit_note API change. - -2003-06-28 Nathan Sidwell - - * c-parse.in (%union): Replace filename & lineno with location. - (save_filename, save_lineno): Remove. - (save_location): New. - (fndef, old_style_parm_decls_1, lineno_datadecl, lineno_decl, - nested_function, notype_nested_function, if_prefix, lineno_stmt, - lineno_label, label): Adjust. - -2003-06-28 Jakub Jelinek - - * builtins.c (c_strlen): Add only_value argument. - Handle COND_EXPR and COMPOUND_EXPR. - (expand_builtin_strlen): Optimize also strlen (i++ ? "foo" : "bar"). - Adjust c_strlen callers. - (expand_builtin_strcpy, expand_builtin_strncpy, - expand_builtin_strcmp, expand_builtin_strncmp, - expand_builtin_fputs, expand_builtin_sprintf, - fold_builtin): Adjust c_strlen callers. - -2003-06-28 Josef Zlomek - - * bb-reorder.c (find_traces_1_round): Do not send basic block - to next round when we are in the last round. - -2003-06-28 Neil Booth - - * Makefile.in: Update. - * opts.c: Include tm_p.h. - (handle_options): Make static. - (decode_options): Copied from toplev.c. - * opts.h (decode_options): New. - * toplev.c (parse_options_and_default_flags): Move most to opts.c, - some to... - (general_init): ...here. - (toplev_main): Use decode_options instead. - * toplev.h (save_argc, save_argv): New. - -2003-06-28 Kazu Hirata - - * explow.c (find_next_ref): Remove. - * rtl.h: Remove the prototype for find_next_ref. - -2003-06-27 Roger Sayle - - * config/alpha/alpha.md (anonymous define_split): Adjust emit_note - call to match recent API change. - -2003-06-27 Zack Weinberg - - * dbxout.c (flag_debug_only_used_symbols): Delete redundant - declaration. - - * c-format.c (check_format_string, get_constant) - * cfgrtl.c (rtl_split_edge): - Mark the definition static, matching the forward declaration. - -2003-06-27 Gunther Nikl - - * unwind-c.c (PERSONALITY_FUNCTION): Delete duplicate define. - - PR target/11014 - * config/m68k/m68k.c (m68k_output_mi_thunk): Use correct assembly - syntax for MIT / MOTOROLA. - - PR other/10240 - * configure.in: Removed $(XCFLAGS) from BUILD_CFLAGS for build != host. - * configure: Rebuilt. - -2003-06-27 Chris Demetriou - - * config/mips/mips.c (mips_build_va_list): Make padding in - va_list structure explicit to avoid -Wpadded warnings. - -2003-06-27 Ulrich Weigand - - * config/s390/s390.h (SECONDARY_OUTPUT_RELOAD_CLASS): Define. - * config/s390/s390.c (s390_secondary_output_reload_class): New function. - * config/s390/s390-protos.h (s390_secondary_output_reload_class): - Declare it. - * config/s390/s390.md ("reload_outti", "reload_outdi", - "reload_outdf"): New expanders. - - * config/s390/s390.md ("movti" + splitters): Handle non-offsettable - memory operands as source. - ("movdi" + splitters): Likewise. - ("movdf" + splitters): Likewise. - * config/s390/s390.c (s390_split_ok_p): New function. - * config/s390/s390-protos.h (s390_split_ok_p): Declare it. - -2003-06-27 Kazu Hirata - - * combine.c (force_to_mode): Replace the equality comparison - of INTVALs with a pointer equality comparison. - (simplify_comparison): Likewise. - -2003-06-27 Kazu Hirata - - * jump.c (rtx_renumbered_equal_p): Replace an expression that - is known to be 0 with 0. - -2003-06-27 Kazu Hirata - - * gcse.c (expr_equiv_p): Replace expressions that are known to - be 0 with 0. - -2003-06-27 Kazu Hirata - - * cse.c (fold_rtx): Replace the equality comparison of INTVALs - with a pointer equality comparison. - -2003-06-27 Kazu Hirata - - * rtlanal.c (reg_mentioned_p): Return 0 earlier if REG and IN - are known to be not equivalent. - -2003-06-27 Richard Henderson - - * config/alpha/alpha.c (function_arg): Don't pass small aggregates - in floating point registers. Validate that we don't receive complex - values here. Use #elif. - (return_in_memory, function_value): New. - (alpha_va_arg): Handle complex values as two arguments. - * config/alpha/alpha.h (RETURN_IN_MEMORY): Use return_in_memory. - (FUNCTION_VALUE, LIBCALL_VALUE): Use function_value. - (SPLIT_COMPLEX_ARGS): New. - * config/alpha/alpha-protos.h: Update. - -2003-06-27 Ulrich Weigand - - * ggc-page.c (inverse_table): Change type of mult to size_t. - (compute_inverse): Compute inverse using size_t, not unsigned int. - Compute inverse also for sizes larger than half a machine page. - -Fri Jun 27 18:36:12 CEST 2003 Jan Hubicka - - * toplev.c (rest_of_decl_compilation): Only varpoolize argument - when called before cgraph_optimize. - -2003-06-27 Zack Weinberg - - * config/darwin.h, config/elfos.h, config/i960/i960-coff.h - * config/m68k/coff.h: ASM_FILE_START_FILE_DIRECTIVE should - be TARGET_ASM_FILE_START_FILE_DIRECTIVE. - -Fri Jun 27 17:41:16 CEST 2003 Jan Hubicka - - * cgraph.c (cgraph_node, cgraph_varpool_node): Avoid re-initializing - of known_decls. - -2003-06-27 Hans-Peter Nilsson - - * defaults.h (REGISTER_MOVE_COST): Define default here. - * regclass.c: Don't define default REGISTER_MOVE_COST here. - * reload.c, reload1.c: Ditto. - -2003-06-27 Richard Earnshaw - - * flags.h: Really install previous change. - -2003-06-27 Nathan Sidwell - - * rtl.h (emit_note): Remove FILE parameter. - * emit-rtl.c (emit_line_note): Adjust emit_note call. - (emit_note): Remove FILE parameter. Adjust. - * builtins.c (expand_builtin_expect): Adjust emit_note call. - * c-semantics.c (genrtl_scope_stmt): Likewise. - (expand_stmt): Likewise. - * cfglayout.c (reemit_insn_block_notes): Likewise. - (duplicate_insn_chain): Likewise. - * except.c (expand_eh_region_start, expand_eh_region_end, - sjlj_emit_function_enter): Likewise. - * explow.c (probe_stack_range): Likewise. - * expr.c (emit_block_move_via_loop): Likewise. - * function.c (init_function_start, expand_function_start, - expand_function_end, thread_prologue_and_epilogue_insns): Likewise. - * integrate.c (expand_inline_function, copy_insn_list): Likewise. - * reg-stack.c (compensate_edge): Likewise. - * reload1.c (reload): Likewise. - * rtlanal.c (hoist_insn_to_edge): Likewise. - * stmt.c (expand_fixup, expand_start_loop, expand_start_null_loop, - expand_loop_continue_here, expand_end_loop, expand_continue_loop, - expand_exit_loop_top_cond, expand_value_return, - expand_start_bindings_and_block, expand_end_bindings, - expand_decl_cleanup, expand_start_case): Likewise. - * unroll.c (copy_loop_body - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Likewise. - * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. - * config/rs6000/rs6000.c (rs6000_emit_eh_toc_restore, - rs6000_emit_allocate_stack, rs6000_output_function_prologue, - rs6000_output_function_epilogue, rs6000_output_mi_thunk): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Likewise. - * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. - -2003-06-27 Nathan Sidwell - - * c-tree.h (grokfield): Remove unused filename and line parameters. - * c-decl.c (grokfield): Remove unused filename and line parameters. - * c-parse.in (component_decl): Adjust field grokking rules, adjust - grokfield calls. - (component_declarator): Likewise. - (component_notype_declarator): Likewise. - * objc/objc-act.c (build_module_descriptor): Adjust grokfield - calls. - (build_protocol_template, build_method_prototype_list_template, - build_method_prototype_template, build_category_template, - build_selector_template, build_class_template, - build_super_template, build_ivar_template, - build_ivar_list_template, build_method_list_template, - build_method_template, add_instance_variable): Likewise. - -2003-06-27 Kazu Hirata - - * stmt.c (do_jump_if_equal): Return 0 earlier if OP1 and - OP2 are known to be not equivalent. - -2003-06-26 Devang Patel - - * final.c (debug_flush_symbol_queue): New function. - (debug_queue_symbol): New function. - (debug_free_queue): New function. - (debug_nesting): New variable. - (symbol_queue): New variable. - (symbol_queue_index): Same. - (symbol_queue_size): Same. - * debug.h (debug_flush_symbol_queue): New. - (debug_queue_symbol): New. - (debug_free_queue): New. - (debug_nesting): New. - (symbol_queue_index): New. - * dbxout.c (DBXOUT_DECR_NESTING): New macro. - (DBXOUT_DECR_NESTING_AND_RETURN): New macro. - (dbxout_init): Delay symbol output. - (dbxout_global_decl): Save, set and reset TREE_USED bit around - dbxout_symbol() call. - (dbxout_begin_function): Same. - (dbxout_finish): Free symbol queue. - (dbxout_type): Put appropriate symbols in queue. - (dbxout_symbol): Put info for symbol's type in queue. - Decrement/Increment nesting counts flush symbol queue appropriately. - (dbxout_parms): Increment dbxout nesting. - (dbxout_reg_parms): Same. - * flags.h (flag_debug_only_used_symbols): New. - * toplev.c (flag_debug_only_used_symbols): New variable. - (lang_independent_options): Add entries for new option - -feliminate-unused-debug-symbols. - * common.opt: Add entry for -feliminate-unused-debug-symbols. - * opts.c (common_handle_options): Same. - * config/rs6000/darwin.h (CC1_SPEC): Interpret -gused as - -feliminate-unused-debug-symbols. - * doc/invoke.texi (Debugging Options): Document - -feliminate-unused-debug-symbols. - -2003-06-26 Roger Sayle - Jakub Jelinek - - * builtins.c (expand_builtin_sprintf): Use c_getstr and strlen to - obtain the format string instead of using TREE_STRING_POINTER and - TREE_STRING_LENGTH. Only optimize sprintf(dst,"%s",src) when the - return value is unused or the length of src is a known constant. - -2003-06-26 Richard Henderson - - * config/ia64/ia64.h (REGISTER_NAMES): R0 is really AP. - -2003-06-26 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_call): Don't add ar.pfs for sibcalls. - (ia64_split_call): Only load descriptor for GP register inputs. - (ia64_expand_epilogue): Check current_frame_info.mask not - current_function_is_leaf to restore ar.pfs. - -2003-06-26 Richard Henderson - - * emit-rtl.c (try_split): Append to new CALL_INSN_FUNCTION_USAGE - instead of replacing it. - -2003-06-26 Richard Henderson - - * flow.c (propagate_one_insn): Kill function return value - registers across tail calls. - - * flow.c (propagate_one_insn): Preserve live-at-end registers - across tail calls. - -2003-06-26 J"orn Rennecke - - * reload.c (can_reload_into): New function. - (push_reload): Use it. - -2003-06-26 Kazu Hirata - - * config/h8300/h8300.c (compute_a_rotate_length): Fix the - references to the amount of a rotation. - -2003-06-26 Nathanael Nerode - - * config/sh/coff.h: Don't include dbxcoff.h. - * config.gcc: List it here. - -2003-06-26 Kazu Hirata - - * postreload.c (reload_cse_simplify_set): Call cselib_lookup - earlier. Don't check if SRC is a constant. - -2003-06-26 Kazu Hirata - - * Makefile.in (OBJS): Add postreload.o. - Remove cselib.h from the dependency list for reload1.o. - Add a dependency list for postreload.o. - * reload.h: Change the comment for the prototype of - reload_cse_regs. - * reload1.c: Don't include cselib.h. - (reload_cse_regs): Move to postreload.c - (reload_cse_regs_1): Likewise. - (reload_cse_noop_set_p): Likewise. - (reload_cse_simplify_set): Likewise. - (reload_cse_simplify_operands): Likewise. - (RELOAD_COMBINE_MAX_USES): Likewise. - (reload_combine_ruid): Likewise. - (LABEL_LIVE): Likewise. - (reload_combine): Likewise. - (reload_combine_note_use): Likewise. - (reload_combine_note_store): Likewise. - (reg_set_luid): Likewise. - (reg_offset): Likewise. - (reg_base_reg): Likewise. - (reg_mode): Likewise. - (move2add_luid): Likewise. - (move2add_last_label_luid): Likewise. - (MODES_OK_FOR_MOVE2ADD): Likewise. - (reload_cse_move2add): Likewise. - (move2add_note_store): Likewise. - (reload_cse_simplify): Likewise. - * postreload.c: New. - -2003-06-26 Kazu Hirata - - * config/avr/avr.c (final_prescan_insn): Remove support for - -mrtl. - * config/avr/avr.h (MASK_RTL_DUMP): Remove. - (TARGET_RTL_DUMP): Likewise. - (TARGET_SWITCHES): Remove -mrtl. - -2003-06-26 Kazu Hirata - - * config/h8300/h8300-protos.h: Change emit_a_rotate to - output_a_rotate. Add a prototype for compute_a_rotate_length. - * config/h8300/h8300.c (emit_a_rotate): Change to - output_a_rotate. - (compute_a_rotate_length): New. - (h8300_adjust_insn_length): Remove. - * config/h8300/h8300.h (ADJUST_INSN_LENGTH): Remove. - * config/h8300/h8300.md (adjust_length): Remove. - (*rotlqi3_1): Use output_a_rotate and compute_a_rotate_length. - (*rotlhi3_1): Likewise. - (*rotlsi3_1): Likewise. - -2003-06-26 Roger Sayle - Richard Henderson - - * builtins.c (expand_builtin_mathfn): Always stabilize the argument - list against re-evaluation. If expand_unop fails, call expand_call - with the stabilized argument list rather than return NULL_RTX. - (expand_builtin_mathfn2): Likewise, always stabilize the argument - list, and call expand_call ourselves if expand_binop fails. - -2003-06-26 Eric Botcazou - - PR optimization/11210 - * fold-const (decode_field_reference): Strip only NOPs that - don't affect the sign. - -2003-06-26 Dhananjay Deshpande - - * gcc/config/sh/sh.md (push_fpscr): Enable for TARGET_SH2E. - (pop_fpscr, fpu_switch): Likewise. - -2003-06-26 Zdenek Dvorak - - * value-prof.c: New. - * value-prof.h: New. - * Makefile.in (value-prof.o): New. - (LIBGCOV): Add _gcov_merge_single and _gcov_merge_delta - (profile.o): Add value-prof.h and tree.h dependency. - * flags.h (flag_profile_values): Declare. - * gcov-io.h (GCOV_COUNTERS, GCOV_COUNTER_NAMES, GCOV_MERGE_FUNCTIONS): - Add new counters. - (GCOV_COUNTER_V_INTERVAL, GCOV_COUNTER_V_POW2, GCOV_COUNTER_V_SINGLE, - GCOV_COUNTER_V_DELTA): New counter sections. - (__gcov_merge_single, __gcov_merge_delta): Declare. - * flow.c (mark_used_regs): Set subregs_of_mode only when the - structure is initialized. - * libgcov.c (__gcov_merge_single, __gcov_merge_delta): New functions. - * profile.c: Include value-prof.h and tree.h. - (gen_interval_profiler, gen_pow2_profiler, gen_one_value_profiler, - gen_const_delta_profiler, instrument_values): New static functions. - (get_exec_counts): Fix comment. - (branch_prob): Invoke instrument_values. - * toplev.c (flag_profile_values): New flag. - * doc/invoke.texi (-fprofile-values): Document. - -2003-06-26 Zdenek Dvorak - - * Makefile.in (cfgrtl.o): Add expr.h dependency. - * cfgrtl.c: Include expr.h. - (mark_killed_regs, safe_insert_insn_on_edge): New - functions. - * config/i386/i386.h (AVOID_CCMODE_COPIES): Define. - * basic-block.h (safe_insert_insn_on_edge): Declare. - -2003-06-26 Neil Booth - - * c-opts.c (missing_arg): Make non-static. - (c_common_handle_option): Don't check for missing arguments. - * opts.c (handle_option): Check for missing arguments. - -2003-06-26 David Edelsohn - - * config/rs6000/power4.md (power4-veccomplex): Correct latency. - -2003-06-25 Loren James Rittle - - * configure.in (ld_vers): Portability [sed]. - * configure: Regenerate with autoconf213. - -2003-06-25 H.J. Lu - - * doc/extend.texi: Document new builtin functions for Intel - Prescott New Intrunctions. - - * doc/invoke.texi: Document new command-line options, -mpni and - -mno-pni, for Intel Prescott New Intrunctions. - - * config.gcc (extra_headers): Add pmmintrin.h for i[34567]86-*-*. - - * config/i386/i386.c (override_options): Turn on MASK_SSE2 - for -mpni. Turn on MASK_SSE for -msse2. - (bdesc_2arg): Add PNI builtins with 2 args. - (bdesc_1arg): Add PNI builtins with 1 arg. - (ix86_init_mmx_sse_builtins): Handle PNI builtins. - (ix86_expand_builtin): Likewise. - - * config/i386/i386.h (MASK_3DNOW, MASK_3DNOW_A, - MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT, - MASK_TLS_DIRECT_SEG_REFS): Renumbered. - (TARGET_PNI): New. - (TARGET_SWITCHES): Don't enable MASK_SSE for -msse2 here. Add - -mpni and -mno-pni. - (TARGET_CPU_CPP_BUILTINS): Defined __PNI__ for PNI. - (ix86_builtins): Add PNI builtins. - (config/i386/i386.md): Add PNI patterns. - - * config/i386/pmmintrin.h: New file. - -2003-06-25 Kazu Hirata - - * config/h8300/h8300.md (call): Fix the insn lengths. - (call_value): Likewise. - -Thu Jun 26 00:13:35 CEST 2003 Jan Hubicka - - * c-common.c (handle_used_attribute): Use mark_referenced. - * varasm.c (mark_referenced): Break out from ... - (assemble_name): ... here. - * tree.h (mark_referenced): Declare. - -2003-06-25 Wolfgang Bangerth - - * gccbug.in: Add PCH to list of categories. - -2003-06-25 Martin Schaffner - - * cppfiles.c: Clarify comments. - * cpphash.h: Likewise. - * cpplib.h: Likewise. - * cppmacro.c: Likewise. - * mkdeps.h: Likewise. - -2003-06-25 Neil Booth - - * c-opts.c (complain_wrong_lang, write_langs): Remove. - (c_common_handle_option): Complaints about wrong language are - handled in opts.c now. - * opts.c (complain_wrong_lang, write_langs, handle_options): New. - (find_opt): Fix thinko. - (handle_option): Update prototype. Complain about switches for - a different front end. - * opts.h (lang_names, handle_options): New. - (handle_option): Remove. - * opts.sh: Write out language names array. - * toplev.c (parse_options_and_default_flags): Use handle_options. - -2003-06-25 H.J. Lu - - * config/i386/i386.c (MASK_SSE1): Removed. - (MASK_SSE164): Removed. - (MASK_SSE264): Removed. - (bdesc_2arg): Replace MASK_SSE1 with MASK_SSE. Replace - MASK_SSE164 with MASK_SSE | MASK_64BIT. Replace MASK_SSE264 - with MASK_SSE2 | MASK_64BIT. - (bdesc_1arg): Likewise. - (ix86_init_mmx_sse_builtins): Likewise. - - * config/i386/i386.h (TARGET_SSE): Remove MASK_SSE2. - (TARGET_SWITCHES): Enable both MASK_SSE and MASK_SSE2 for - -msse2. - -2003-06-25 Kaveh R. Ghazi - - * hwint.h (HOST_WIDE_INT_PRINT, HOST_WIDE_INT_PRINT_C): New macros. - (HOST_WIDE_INT_PRINT_DEC_SPACE, - HOST_WIDE_INT_PRINT_UNSIGNED_SPACE, - HOST_WIDEST_INT_PRINT_DEC_SPACE, - HOST_WIDEST_INT_PRINT_UNSIGNED_SPACE): Delete. - (HOST_WIDE_INT_PRINT_DEC, HOST_WIDE_INT_PRINT_DEC_C, - HOST_WIDE_INT_PRINT_UNSIGNED, HOST_WIDE_INT_PRINT_HEX): Define in - terms of HOST_WIDE_INT_PRINT and possibly HOST_WIDE_INT_PRINT_C. - - * final.c (asm_fprintf): Use HOST_WIDE_INT_PRINT. - * ra-debug.c (dump_static_insn_cost): Likewise. - -2003-06-26 Nick Clifton - - * config/arm/arm.h (BIGGEST_FIELD_ALIGNMENT): Define instead - of ADJUST_FIELD_ALIGN if IN_TARGET_LIBS. - Replace occurances of '???' with 'XXX' incase they are - mistaken for trigraphs. - (THUMB_PRINT_OPERAND_ADDRESS): abort if a compound address - does not have a register for the first operand. - -2003-06-25 Dhananjay Deshpande - - * config/sh/sh.c (sh_register_move_cost): - Add case for moving between MAC_REGS. - -2003-06-25 Zack Weinberg - - PR 10178 - * langhooks.h (struct lang_hooks): Add no_body_blocks bool. - * langhooks-def.h (LANG_HOOKS_NO_BODY_BLOCKS): New; default false. - * c-lang.c, objc/objc-lang.c: Override LANG_HOOKS_NO_BODY_BLOCKS - to true. - * stmt.c (is_body_block): If lang_hooks.no_body_blocks, always - return 0. - -2003-06-25 Kaveh R. Ghazi - - * Makefile.in (bt-load.o): Depend on $(TM_P_H). - * bt-load.c: Include "tm_p.h". - -2003-06-25 Kazu Hirata - - * config/h8300/h8300.c (compute_mov_length): Adjust for the - new optimization. - * config/h8300/h8300.md (*movsi_h8300): Optimize the load of - an SImode constant whose upper and lower are the same. - -Wed Jun 25 11:31:59 CEST 2003 Jan Hubicka - - * varasm.c (assemble_name): Mark needed variables even when - global info is ready. - -2003-06-24 Jerry Quinn - - PR other/11280 - * gcc/doc/invoke.texi (Optimization Options): Remove -Os from - -freorder-functions description. - -2003-06-25 Josef Zlomek - - * dwarf2out.c (gen_field_die): Return if type of decl is error mark. - -2003-06-25 Neil Booth - - * opts.c (common_handle_option): Add missing break;s. - -2003-06-24 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - compute_mov_length. - * config/h8300/h8300.c (compute_mov_length): New. - * config/h8300/h8300.md (*movqi_h8300): Use it. - (*movqi_h8300hs): Likewise. - (movstrictqi): Likewise. - (*movhi_h8300): Likewise. - (*movhi_h8300hs): Likewise. - (movstricthi): Likewise. - (*movsi_h8300): Likewise. - (*movsf_h8300): Likewise. - (*movsi_h8300hs): Likewise. - (*movsf_h8300hs): Likewise. - -2003-06-24 Kazu Hirata - - * jump.c (next_nondeleted_insn): Remove. - * rtl.h: Remove the prototype for next_nondeleted_insn. - -2003-06-24 Roger Sayle - - PR optimization/11311 - * builtins.c (powi_cost): Fix typo. The number of multiplications - required is the number to reduce the argument, result, plus the - cost of calculating the residual, val [not n, the original value]. - -2003-06-24 Roger Sayle - - * config/alpha/osf5.h (TARGET_C99_FUNCTIONS): Define. - -2003-06-24 Richard Henderson - (blame to: Loren James Rittle ) - - * real.h (ieee_extended_intel_96_round_53_format): New. - * real.c (ieee_extended_intel_96_round_53_format): New. - * config/i386/freebsd.h (SUBTARGET_OVERRIDE_OPTIONS): Use it - for XFmode and TFmode. - -2003-06-24 Kazu Hirata - - * config/h8300/h8300.md (4 anonymous patterns): Give internal - names. - (movsi_h8300): Change the name to *movsi_h8300. - (movsi_h8300hs): Change the name to *movsi_h8300hs. - (movsf_h8300): Change the name to *movsf_h8300. - (movsf_h8300hs): Change the name to *movsf_h8300hs. - -2003-06-24 Jakub Jelinek - - * builtins.c (expand_builtin_strcpy): Don't evaluate side-effects in - src twice. - -2003-06-24 J"orn Rennecke - - Back out these patches: - 2003-06-02 J"orn Rennecke - * sh.h (OLD_ARG_MODE): New macro. - (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it. - (FUNCTION_ARG_1): Break out of: - (FUNCTION_ARG). Use OLD_ARG_MODE. - 2003-06-06 J"orn Rennecke - * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode - of the generated register. - - * sh.h (FUNCTION_ARG_SCmode_WART): Define. - (FUNCTION_ARG): Unless FUNCTION_ARG_SCmode_WART is defined and - an even number of floating point regs are in use, use the same - sequence of argument passing registers for SCmode as would be - used for two SFmode values. - * sh.c (sh_va_arg): If FUNCTION_ARG_SCmode_WART is defined, - swap real / imaginary parts in incoming SCmode values passed - in registers. - -2003-06-24 Falk Hueffner - - PR target/11260 - * config/alpha/alpha.md (sqrtdf2): Fix operand substitution. - -Tue Jun 24 18:49:33 CEST 2003 Jan Hubicka - - * Makefile.in (cgraph.o): Depend on output.h, not depend on - tree-inline.h - * cgraph.c: Do not include tree-inline.h; include output.h - (known_fns): Rename to ... - (known_decls): ... this one; update all uses. - (cgraph_varpool_hash): New static variable. - (cgraph_varpool_n_nodes, cgraph_varpool_nodes_queue): New global - variables. - (cgraph_varpool_hash_node, eq_cgraph_varpool_node, cgraph_varpool_node, - cgraph_varpool_node_for_identifier, cgraph_varpool_mark_needed_node, - cgraph_varpool_finalize_decl, cgraph_varpool_assemble_pending_decls): - New functions. - * cgraph.h (cgraph_varpool_node): New structure. - (cgraph_varpool_n_nodes, cgraph_varpool_nodes_queue): Declare. - (cgraph_varpool_node, cgraph_varpool_node_for_identifier, - cgraph_varpool_finalize_decl, cgraph_varpool_mark_needed_node, - cgraph_varpool_asemble_pending_decls): Declare. - * cgraphunit.c (record_call_1): Notice variable references. - (cgraph_finalize_compilation_unit): Assemble pending variables. - * toplev.c (wrapup_global_declarations): Use varpool. - (compile_file): Assemble pending declarations. - (rest_of_decl_compilation): Use varpool in unit-at-a-time mode. - * varasm.c (assemble_name): Notice varpool references. - -Tue Jun 24 13:52:11 CEST 2003 Jan Hubicka - - * langhooks-def.h (LANG_HOOKS_PREPARE_ASSEMBLE_VARIABLE): New macro. - * langhooks.h (lang_hooks_for_decls): Add prepare_assemble_variable. - * varasm.c (assemble_variable): Call prepare_assemble_variable. - -2003-06-23 Roger Sayle - - * builtins.c (expand_builtin): Use expand_builtin_pow to expand - calls for pow, powf, powl and their __builtin_ variants. - (expand_builtin_pow): If the second argument is a constant - integer and compiling with -ffast-math, use expand_powi to - generate RTL if powi_cost is less than POWI_MAX_MULTS. - (powi_cost): New function to return the number of multiplications - necessary to evaluate an Nth power, for integer constant N. - (expand_powi): New function to expand the RTL for evaluating - the Nth power of a floating point value, for integer constant N. - - * doc/tm.texi (POWI_MAX_MULTS): Document new target macro. - -Mon Jun 23 23:07:35 CEST 2003 Jan Hubicka - - * cgraph.c (cgraph_nodes_queue): Declare. - (eq_node): Take identifier as p2. - (cgraph_node): Update htab_find_slot_with_hash call. - (cgraph_node_for_identifier): New. - (cgraph_mark_needed_node): Move here from cgraphunit.c. - * cgraph.h (cgraph_nodes_queue): Declare. - (cgraph_node_for_identifier): Declare. - * cgraphunit.c (cgraph_finalize_function): Collect entry points here - instead of in cgraph_finalize_compilation_unit; constructors and - destructors are entry points. - (cgraph_finalize_compilation_unit): Reorganize debug outout; - examine nested functions after lowerng; call collect_functions hook. - (cgraph_mark_local_functions): DECL_COMDAT functions are not local. - (cgraph_finalize_compilation_unit): Do not collect entry points. - * varasm.c: Include cgraph.h - (assemble_name): Mark referenced identifier as needed. - - * cgraphunit.c (record_call_1): Use get_callee_fndecl. - -2003-06-23 Jakub Jelinek - - * config/i386/i386.c (x86_output_mi_thunk): Don't pass MEM to %P0, - just SYMBOL_REF. - * config/s390/s390.c (s390_output_mi_thunk): Avoid .plt in -m31 - mode, as it requires pic register loaded. - - * varasm.c (resolve_unique_section): Remove prototype. No longer - static. - * tree.h (resolve_unique_section): New prototype. - -2003-06-23 Andreas Schwab - - PR debug/9905 - * dwarf2out.c (loc_descriptor_from_tree): Handle MODIFY_EXPR by - recursing through first argument. - -2003-06-23 Kazu Hirata - - * ChangeLog.1: Fix a typo. - * cfgrtl.c: Fix comment typos. - * dwarf2out.c: Likewise. - * expmed.c: Likewise. - * genrecog.c: Likewise. - * jump.c: Likewise. - * rtlanal.c: Likewise. - * ssa-dce.c: Likewise. - * toplev.c: Likewise. - -2003-06-23 Kazu Hirata - - * doc/extend.texi: Fix typos. - * doc/md.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-06-23 Kazu Hirata - - * basic-block.h: Fix comment formatting. - * bt-load.c: Likewise. - * builtins.c: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-format.c: Likewise. - * coverage.c: Likewise. - * cpplib.h: Likewise. - * cpppch.c: Likewise. - * dbxout.c: Likewise. - * diagnostic.c: Likewise. - * dwarf2out.c: Likewise. - * expr.c: Likewise. - * fold-const.c: Likewise. - * function.c: Likewise. - * gcc.c: Likewise. - * gcov-io.c: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * profile.c: Likewise. - * real.h: Likewise. - * sched-deps.c: Likewise. - -2003-06-23 Roger Sayle - Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add a note on testing and - remove duplicates from testers list. - -2003-06-23 Nick Clifton - - * read-rtl.c (read_braced_string): Check for EOF. If - encountered issue an error message. - -2003-06-23 Kazu Hirata - - * doc/invoke.texi: Document dump options, dT and dW. - -2003-06-23 Kazu Hirata - - * genrecog.c (pred_table): Remove the entry for - mode_independent_operand. - * recog.c (next_insns_test_no_inequality): Remove. - (mode_independent_operand): Likewise. - * recog.h: Remove the prototype for mode_independent_operand. - -2003-06-22 Kazu Hirata - - * config/h8300/h8300.c (output_simode_bld): Use rotxl.l to - store into bit 0. - * config/h8300/h8300.md (*extzv_1_r_h8300hs): Change cc of the - second alternative to set_znv. - (*extzv_1_r_inv_h8300hs): Likewise. - -2003-06-23 Hans-Peter Nilsson - - * configure.in (in_tree_gas): Find out here whether GAS is ELF, - set in_tree_gas_is_elf accordingly. - (in_tree_ld): Find out whether LD emulation is ELF, set - in_tree_ld_is_elf accordingly. - (gcc_cv_as_subsections, gcc_cv_as_hidden, gcc_cv_as_leb128) - (gcc_cv_as_eh_frame, gcc_cv_as_shf_merge) - (gcc_cv_as_dwarf2_debug_line, gcc_cv_as_gdwarf2_flag) - (gcc_cv_as_gstabs_flag): Use $in_tree_gas_is_elf instead of - grepping gas/Makefile. - (gcc_cv_ld_ro_rw_mix, gcc_cv_ld_eh_frame_hdr, gcc_cv_ld_pie): Use - $in_tree_ld_is_elf instead of grepping ld/Makefile. - * configure: Regenerate. - -2003-06-22 Roger Sayle - - * builtins.c (expand_builtin_mathfn_2): Use tree_cons to build - up the stabilized argument list, not build_tree_list. - (expand_builtin_strcpy): Construct new argument list manually - instead of using chainon to modify the original argument list. - (expand_builtin_stpcpy): Construct new argument list manually - instead of using copy_list and chainon. - (expand_builtin_sprintf): New function. Optimize calls to - sprintf when the format is "%s" or doesn't contain a '%'. - (expand_builtin): Expand BUILT_IN_SPRINTF using the new function - expand_builtin_sprintf. - -2003-06-22 Andreas Schwab - - * function.c (set_insn_locators): Mark as unused. - -2003-06-22 Neil Booth - - * common.opt: Add -finline-limit. - * opts.c (common_handle_options): Handle it. - * opts.sh: Temporary kludge for -finline-limit. - * toplev.c (decode_f_option, independent_decode_option): Die. - (parse_options_and_default_flags): No independent_decode_option. - -2003-06-22 Andreas Jaeger - - * calls.c (emit_call_1): Readd lost ATTRIBUTE_UNUSED. - -2003-06-22 Kazu Hirata - - * doc/invoke.texi: Document dumps, .btl, .cfg, and .bypass. - -2003-06-22 Andreas Schwab - - * doc/invoke.texi: Remove leading `-' from options in index. - -2003-06-22 Kazu Hirata - - * bt-load.c: Follow spelling conventions. - -2003-06-22 Kazu Hirata - - * expr.c (emit_move_insn_1): Fix a comment typo. - -2003-06-22 Kazu Hirata - - * doc/invoke.texi: Alphabetize dump options. - -2003-06-22 Kazu Hirata - - * doc/invoke.texi: Remove a duplicate -dk. - -2003-06-22 Kazu Hirata - - * doc/invoke.texi: Update dump file names. - -2003-06-22 Zack Weinberg - - * config/i370/i370.c, config/i370/i370.h: Use HOST_CHARSET_ASCII - and HOST_CHARSET_EBCDIC, not HC_ASCII and HC_EBCDIC. - -2003-06-22 Kazu Hirata - - * doc/rtl.texi: Fix the @findex for pre_modify. - -2003-06-22 Andreas Jaeger - - * caller-save.c: Convert to ISO C90. - * calls.c: Likewise. - * cfg.c: Likewise. - * cfganal.c: Likewise. - * cfgbuild.c: Likewise. - * cfgcleanup.c: Likewise. - * cfghooks.c: Likewise. - * cfglayout.c: Likewise. - * cfglayout.h: Likewise. - * cfgloop.c: Likewise. - * cfgloop.h: Likewise. - * cfgloopanal.c: Likewise. - * cfgloopmainip.c: Likewise. - * cfgrtl.c: Likewise. - -2003-06-22 Richard Earnshaw - - * arm.h (BIGGEST_ALIGNMENT): Use TARGET_REALLY_IWMMXT for selecting - 64-bit alignment. - -2003-06-22 Richard Earnshaw - - * arm.md (all call_value patterns): Remove register constraints on - value operand. - -2003-06-22 Neil Booth - - * common.opt: More -f switches. - * opts.c (common_handle_options): Handle them. - * toplev.c (time_report): Make extern. - (f_options): USe flag_dummy. - (decode_f_option): No need to use f_options now. - * toplev.h (flag_cprop_registers, flag_ssa, flag_ssa_ccp, - flag_ssa_dce, time_report, flag_new_regalloc): Make extern. - -2003-06-22 Andreas Jaeger - - * c-lex.c: Convert to ISO C90. - * c-objc-common.c: Likewise. - * c-opts.c: Likewise. - * c-pch.c: Likewise. - * c-ppoutput.c: Likewise. - * c-pragma.h: Likewise. - * c-pretty-print.c: Likewise. - * c-pretty-print.h: Likewise. - * c-semantics.c: Likewise. - * c-tree.h: Likewise. - * c-typeck.c: Likewise. - - * c-lang.c: Convert to ISO C90. - -2003-06-22 Neil Booth - - * opts.c (find_opt): Fix to always guarantee a find of a - switch with joined parameter. - * opts.h (struct cl_option): New member back_chain. - * opts.sh: Update to calculate and add back_chain member. - -2003-06-22 Gabriel Dos Reis - - * diagnostic.h (output_host_wide_integer): Declare. - * diagnostic.c (output_long_long_decicaml): New function. - (output_host_wide_integer): Likewise. - (output_format): Use them. Handle "%ll" and "%w". - -2003-06-21 Jason Thorpe - - * config.gcc (*-*-netbsd*): Add t-libgcc-pic to tmake_file. - -2003-06-21 Zack Weinberg - - * aclocal.m4 (gcc_AC_C_CHARSET): Delete. - * configure.in: Don't use gcc_AC_C_CHARSET. - * configure, config.in: Regenerate. - * config/i370/i370.c, config/i370/i370.h: Use - (HOST_CHARSET == HC_EBCDIC) or (HOST_CHARSET == HC_ASCII) - instead of HOST_EBCDIC or !HOST_EBCDIC. Clarify comments a tad. - -2003-06-21 Neil Booth - - * Makefile.in: Update. - * common.opt: New switches. - * opts.c: Include diagnostic.h. - (common_handle_option): Handle new switches. - * toplev.c (flag_loop_optimize, flag_crossjumping, flag_if_conversion, - flag_if_conversion2, flag_delete_null_pointer_checks, - flag_rerun_cse_after_loop): Make extern. - (flag_dummy): New. - (f_options): Update to use flag_dummy for moved options. - (decode_f_option): Some switches moved to opts.c. - * toplev.h (flag_loop_optimize, flag_crossjumping, flag_if_conversion, - flag_if_conversion2, flag_delete_null_pointer_checks, - flag_rerun_cse_after_loop, flag_keep_static_consts, flag_peel_loops, - flag_tracer, flag_thread_jumps, flag_unroll_loops, - flag_unroll_all_loops, flag_unswitch_loops): New. - -Sat Jun 21 13:41:00 CEST 2003 Jan Hubicka - - * i386.c (ix86_va_arg): Fix allocation of temporary slot. - -2003-06-20 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - same_cmp_preceding_p. - * config/h8300/h8300.c (same_cmp_preceding): New. - * config/h8300/h8300.md: Extend peephole2's that transform - compare:SI into shorter sequences so that they can deal with - signed comparisons. - -2003-06-21 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Use Windows instead of Win32. - - Update Andreas Jaeger's entry. - - Merge the two entries of Kaveh Ghazi, David Edelsohn, and - Loren J. Rittle. - -2003-06-21 Nathanael Nerode - - * mkconfig.sh: Add multiple inclusion guards to generated headers. - -2003-06-20 Neil Booth - - * c-decl.c (store_parm_decls): Make saved_warn_shadow boolean. - * common.opt: Add remaining -W options and -g. - * diagnostic.c (warnings_are_errors): Remove. - * flags.h: Make most warning flags boolean. - * opts.c (common_handle_option): Handle remaining -W options, and -g. - Move many warning flags from toplev.c, making them boolean. - * toplev.c: Remove many warning flags. - (decode_W_option): Remove. - (decode_g_option): Make extern. Error on unknown switch. - (lang_independent_W_options): Use warn_dummy. - (independent_decode_option): Just handle -f switches now. - * toplev.h (decode_g_option): New. - -2003-06-20 Aldy Hernandez - - PR/11092 - * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Adjust for - vectors. - -2003-06-20 Kelley Cook - - * opts.sh: Tweak awk script for portability. - -2003-06-20 Mark Mitchell - - PR c++/10888 - * tree-inline.c (expand_call_inline): Do not warn about failing to - inline functions declared in system headers. - * doc/invoke.texi (-Winline): Expand on documentation. - -2003-06-20 Richard Henderson - - * config/alpha/alpha.c (alpha_file_start): Disable - file_start_file_directive for ELF and not MDEBUG. - -2003-06-20 J"orn Rennecke - - * sh.h (ROUND_TYPE_ALIGN): Remove. - -2003-06-20 Richard Henderson - - * hooks.c (hook_int_void_no_regs): Rename from - hook_reg_class_void_no_regs; change return type. - * hooks.h: Update. - * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Update. - * target.h (branch_target_register_class): Change return type to int. - Add documentation. - * config/sh/sh.c (sh_target_reg_class): Change return type. - * doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Likewise. - -2003-06-20 Andreas Tobler - - * c-format.c: Change _Bool to bool reverting part of the last - patch. - -2003-06-20 John David Anglin - - * som.h (ASM_OUTPUT_SOURCE_LINE): Use targetm.strip_name_encoding to - strip name encoding. - -2003-06-20 Rainer Orth - - * configure.in (gcc_cv_as_gstabs_flag): Disable if assembler warns. - * configure: Regenerate. - Fixes PR driver/9362. - -2003-06-20 Richard Kenner - - * config/alpha/alpha.c (alpha_file_start): Fix typo. - -2003-06-20 Rainer Orth - - * config/mips/mips.h (PUT_SDB_FUNCTION_END): Pass 0 as third arg - to ASM_OUTPUT_SOURCE_LINE. - -2003-06-20 Daniel Egger - Gerald Pfeifer - - * doc/install.texi (Building): Correct and improve statement - about parallel builds. - -2003-06-20 Andreas Jaeger - - * c-common.c: Change _Bool to bool reverting part of the last - patch. - -2003-06-20 Nathan Sidwell - - * tree.h (expand_function_end): Remove all parameters. - * function.c (expand_function_end): Remove all parameters. - Use input_location. Never expand_end_bindings. - * c-decl.c (c_expand_body_1): Adjust expand_function_end call. - * coverage.c (create_coverage): Likewise. - -2003-06-20 Nick Clifton - - * doc/extend.texi (ARM Built-in Functions): New node. Document - ARM builtin functions for iWMMXt support. - -2003-06-20 Eric Botcazou - - * doc/install.texi (--with-gnu-as): Mention SPARC/Solaris and - SPARC64/Solaris as platforms where --with-gnu-as makes a difference. - (--with-as): Add @anchor. - (--with-gnu-ld): Fix typo. - (--with-ld): Add @uref to --with-as. - -2003-06-19 Zack Weinberg - - * doc/tm.texi: Uniformly use @defmac for macros, rather than - @table items. Minor formatting and editorial corrections. - -2003-06-20 Neil Booth - - * line-map.c, line-map.h: Convert to ISO prototypes. - -2003-06-20 Zdenek Dvorak - - * gcse.c (store_killed_in_insn): Fix. - -2003-06-19 Zack Weinberg - - * target.h (asm_out.file_start, file_start_app_off, - file_start_file_directive): New hooks. - * target-def.h (TARGET_ASM_FILE_START_FILE_DIRECTIVE, - TARGET_ASM_FILE_START_APP_OFF, TARGET_ASM_FILE_START): - New hook-definition macros. - * doc/tm.texi: Document new hooks; remove docs of ASM_FILE_START. - * varasm.c (default_file_start): New. - * output.h: Prototype it. - * toplev.c (init_asm_output): Use targetm.asm_out.file_start. - * system.h: Poison ASM_FILE_START. - - * config/alpha/alpha.c (alpha_write_verstamp): Delete. - (alpha_file_start): New, define if !TARGET_ABI_UNICOSMK. - (unicosmk_asm_file_start): Rename unicosmk_file_start, - make static, take no arguments. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_END, - TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set as appropriate. - * config/alpha/unicosmk.h: Don't define ASM_FILE_START nor - TARGET_ASM_FILE_END. Remove reference to ASM_FILE_START in - comment. - * config/arc/arc.c (arc_asm_file_start): Rename - arc_file_start, take no arguments, make static. - (TARGET_ASM_FILE_START): Set it. - * config/arm/arm.c (aof_file_start): New static function. - (TARGET_ASM_FILE_START): Set it, when appropriate. - * config/arm/coff.h, config/arm/elf.h: - Set TARGET_ASM_FILE_START_APP_OFF to true. - * config/avr/avr.c (asm_file_start): Rename avr_file_start, - take no arguments, make static. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): - Set them. - * config/c4x/c4x.c (c4x_file_start): New static function. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): - Set them. - * config/cris/cris.c (cris_file_start): New static function. - (TARGET_ASM_FILE_START): Set it. - * config/dsp16xx/dsp16xx.c (coff_dsp16xx_file_start): Rename - dsp16xx_file_start, make static. - (luxworks_dsp16xx_file_start): Delete. - (TARGET_ASM_FILE_START): Set it. - * config/h8300/h8300.c (asm_file_start): Rename - h8300_file_start, make static, take no arguments. - (TARGET_ASM_FILE_START): Set it. - * config/i370/i370.c (i370_file_start): New static function. - (TARGET_ASM_FILE_START): Set it. - * config/i386/i386.c (x86_file_start): New static function. - (TARGET_ASM_FILE_START): Set it. - * config/i386/i386.h (X86_FILE_START_VERSION_DIRECTIVE, - X86_FILE_START_FLTUSED): New macros, default to false. - * config/i386/i386-interix.h: Override X86_FILE_START_FLTUSED to 1. - * config/i386/sysv4.h, config/i386/sco5.h: Override - X86_FILE_START_VERSION_DIRECTIVE to true. - * config/ia64/ia64.c (ia64_file_start): New static function. - (TARGET_ASM_FILE_START): Set it. - (emit_safe_across_calls): Take no arguments. - * config/ia64/ia64.md: Update to match. - * config/m32r/m32r.c (m32r_asm_file_start): Rename - m32r_file_start, make static, take no arguments. - (TARGET_ASM_FILE_START): Set it. - * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Rename - m68hc11_file_start, make static, take no arguments. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. - (print_options): Delete. - * config/m68k/m68k.c (m68k_hp320_file_start): New static function. - (TARGET_ASM_FILE_START_APP_OFF): Set. - * config/m68k/hp320.h: Set TARGET_ASM_FILE_START to - m68k_hp320_file_start. - * config/mips/mips.c (iris6_asm_file_start, mips_asm_file_start): - Make static, take no arguments. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. - * config/mmix/mmix.c (mmix_asm_file_start): Rename - mmix_file_start, make static, take no arguments. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. - * config/mn10300/mn10300.c (asm_file_start): Rename - mn10300_file_start, make static, take no arguments. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. - * config/ns32k/ns32k.c (TARGET_ASM_FILE_START_APP_OFF): Set. - * config/pa/pa.c (pa_file_start_level, pa_file_start_space, - pa_file_start_file, pa_file_start_mcount, pa_elf_file_start, - pa_som_file_start, pa_linux_file_start, pa_hpux64_gas_file_start, - pa_hpux64_hpas_file_start): New static functions. - * config/pa/elf.h: Set TARGET_ASM_FILE_START to pa_elf_file_start. - * config/pa/pa-linux.h: Set TARGET_ASM_FILE_START to - pa_linux_file_start. - * config/pa/pa64-hpux.h: Set TARGET_ASM_FILE_START to - pa_hpux64_gas_file_start or pa_hpux64_hpas_file_start, as - appropriate. - * config/pa/som.h: Set TARGET_ASM_FILE_START to pa_som_file_start. - * config/rs6000/rs6000.c: Include xcoffout.h when TARGET_XCOFF. - (rs6000_file_start): Make static, take no arguments. Reset - default_cpu under certain conditions. - (rs6000_xcoff_file_start): New function. - * config/rs6000/rs6000.h (TARGET_ASM_FILE_START): Set. - * config/rs6000/xcoff.h (TARGET_ASM_FILE_START, - TARGET_ASM_FILE_START_FILE_DIRECTIVE): Override. - * config/sh/sh.c (output_file_start): Rename - sh_file_start, make static, take no arguments. Merge in old - code from sh/elf.h's ASM_FILE_START, conditioned on TARGET_ELF. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. - * config/sh/sh.c (TARGET_ELF): Define to 0. - * config/sh/elf.h (TARGET_ELF): Redefine to 1. - * config/v850/v850.c (asm_file_start): Delete. - (TARGET_ASM_FILE_START_FILE_DIRECTIVE): Set. - * config/vax/vax.c (vax_file_start): New static function. - (TARGET_ASM_FILE_START, TARGET_ASM_FILE_START_APP_OFF): Set. - - * config/darwin.h: Override ASM_FILE_START_FILE_DIRECTIVE to false. - * config/elfos.h, config/svr3.h, config/arm/elf.h, config/arm/pe.h - * config/i386/att.h, config/i386/gas.h, config/i386/linux.h - * config/i386/sysv4.h, config/i386/sco5.h, config/i960/i960-coff.h - * config/m68k/coff.h, config/m68k/hp320.h, config/mcore/mcore-pe.h - * config/vax/vaxv.h: Set ASM_FILE_START_FILE_DIRECTIVE to true. - - * config/darwin.h, config/elfos.h, config/alpha/elf.h - * config/alpha/openbsd.h, config/alpha/osf.h, config/alpha/vms.h - * config/arc/arc.h, config/arm/aof.h, config/arm/aout.h - * config/arm/coff.h, config/arm/elf.h, config/arm/pe.h - * config/avr/avr.h, config/c4x/c4x.h, config/cris/cris.h - * config/dsp16xx/dsp16xx.h, config/h8300/elf.h, config/h8300/h8300.h - * config/i370/i370.h, config/i386/att.h, config/i386/gas.h - * config/i386/i386-interix.h, config/i386/linux.h, config/i386/sysv4.h - * config/i386/sco5.h, config/i960/i960-coff.h, config/i960/i960.h - * config/ia64/ia64.h, config/ia64/sysv4.h, config/m32r/m32r.h - * config/m68hc11/m68hc11.h, config/m68k/coff.h, config/m68k/m68k.h - * config/mcore/mcore-pe.h, config/mips/iris6.h, config/mips/mips.h - * config/mmix/mmix.h, config/mn10300/mn10300.h, config/ns32k/ns32k.h - * config/pa/elf.h, config/pa/pa-linux.h, config/pa/pa64-hpux.h - * config/pa/som.h, config/pdp11/pdp11.h, config/rs6000/linux64.h - * config/rs6000/lynx.h, config/rs6000/xcoff.h, config/sh/elf.h - * config/sh/sh.h, config/sparc/sparc.h, config/v850/v850.h - * config/vax/vax.h, config/vax/vaxv.h: Don't (re)define ASM_FILE_START. - - * config/alpha/alpha-protos.h, config/arc/arc-protos.h - * config/avr/avr-protos.h, config/dsp16xx/dsp16xx-protos.h - * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h - * config/m32r/m32r-protos.h, config/m68hc11/m68hc11-protos.h - * config/mips/mips-protos.h, config/mmix/mmix-protos.h - * config/mn10300/mn10300-protos.h, config/rs6000/rs6000-protos.h - * config/sh/sh-protos.h, config/v850/v850-protos.h: Update. - - * xcoffout.h, config/rs6000/aix.h, config/rs6000/xcoff.h: - Remove reference to ASM_FILE_START in comment. - * config/arm/aof.h, config/arm/aout.h, config/arm/freebsd.h - * config/arm/linux-gas.h, config/arm/netbsd-elf.h - * config/arm/netbsd.h: Delete definition of ARM_OS_NAME. - -2003-06-19 Graeme Peterson - - * gcc.c (target_sysroot_suffix, target_sysroot_hdrs_suffix, - SYSROOT_SUFFIX_SPEC, SYSROOT_HEADERS_SUFFIX_SPEC, sysroot_suffix_spec, - sysroot_hdrs_suffix_spec): New. - (static_specs): Initialize new variables. - (add_sysroot_suffix_prefix, do_spec_1, main): Use new variables. - * doc/tm.texi (SYSROOT_SUFFIX_SPEC, SYSROOT_HEADERS_SUFFIX_SPEC): - New macros. - -2003-06-19 Andreas Jaeger - - * c-aux-info.c: Convert to ISO C90. - * c-pragma.c: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-convert.c: Likewise. - * c-cppbuiltin.c: Likewise. - * c-dump.c: Likewise. - * c-decl.c: Likewise - * c-format.c: Likewise. - * c-incpath.c: Likewise. - * c-incpath.h: Likewise. - -2003-06-19 Roger Sayle - - * builtins.c (expand_errno_check): Assume that flag_errno_math - and HONOR_NANS have been tested before calling here. Only try - to set errno ourselves if the decl can't throw an exception. - (expand_builtin_mathfn): Move the code to stabilize the arg - after the main switch, so that that its only done when needed. - BUILT_IN_SQRT{,F,L} doesn't set errno if its arg is nonnegative. - Don't modify the original expr when stabilizing the argument. - (expand_builtin_mathfn_2): Likewise, move the code to stabilize - the args after the main switch, and don't modify the orginal exp. - -2003-06-19 Aldy Hernandez - - * expr.c (const_vector_from_tree): Initialize remaining elements - to 0. - -2003-06-19 Aldy Hernandez - - * config/rs6000/spe.md ("spe_evfscfsi"): Change operand types. - Change "fix" to "float". - -2003-06-19 Andreas Jaeger - - * c-tree.h: Remove declaration of poplevel. - - * tree.h: Remove declaration of approx_sqrt. - - * c-lex.c: Remove redundant declaration of asm_out_file. - - * flags.h: Remove declaration of warn_unknown_pragma and - main_input_filename. - - * rtl.h: Remove functions from fold-const.c since they're already - declared in tree.h. - - * regs.h: Remove redundant declaration of reg_names. - - * bt-load.c (migrate_btr_defs): Correct printf arguments. - - * protoize.c: Fix breakage from last patch. - -2003-06-19 J"orn Rennecke - - * hooks.h (hook_reg_class_void_no_regs): Only declare if tm.h - has been included. - -2003-06-18 James A Morrison - - * config/sparc/sparc.c: Update copyright year. - -2003-06-19 David Edelsohn - - * config/rs6000/rs6000.c (init_cumulative_args): Limit CALL_LIBCALL - to ABI_V4. - -2003-06-18 Joseph S. Myers - - PR bootstrap/4068 - * config/i386/liunx.h: Don't include sys/ucontext.h for glibc 2.0. - -2003-06-19 Kazu Hirata - - * config/h8300/h8300.c (TARGET_INITIALIZER and friends): Move - to the end of the file. Remove unnecessary prototypes. - -2003-06-19 Hans-Peter Nilsson - - * bt-load.c (migrate_btr_def) [INSN_SCHEDULING]: Conditionalize - calls to insn_default_latency and result_ready_cost. Initialize - def_latency to 1. - -2003-06-18 Richard Henderson - - * config/ia64/unwind-ia64.c (_Unwind_GetCFA): New. - (_Unwind_FindEnclosingFunction): Implement. - -2003-06-18 Kazu Hirata - - * toplev.c (rest_of_handle_sched): Hide the entire function if - INSN_SCHEDULING is not defined. - (rest_of_compilation): Call rest_of_handle_sched() only when - INSN_SCHEDULING is defined. - -2003-06-18 Stephen Clarke - J"orn Rennecke - - * bt-load.c: New file. - * Makefile.in (OBJS): Include bt-load.o - (bt-load.o): Add dependencies. - * flags.h (flag_branch_target_load_optimize): Declare. - (flag_branch_target_load_optimize2): Likewise. - * hooks.c (hook_reg_class_void_no_regs): New function. - (hook_bool_bool_false): Likewise. - * hooks.h (hook_reg_class_void_no_regs, hook_bool_bool_false): Declare. - * rtl.h (branch_target_load_optimize): Declare. - * target-def.h (TARGET_BRANCH_TARGET_REGISTER_CLASS): Define. - (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. - (TARGET_INITIALIZER): Include these. - * target.h (struct gcc_target): Add branch_target_register_class - and branch_target_register_callee_saved members. - * toplev.c (enum dump_file_index): Add DFI_branch_target_load - (dump_file) Add "tars" entry. - (flag_branch_target_load_optimize): New variable. - (flag_branch_target_load_optimize2): Likewise. - (lang_independent_options): Add entries for new options. - (rest_of_compilation): Call branch_target_load_optimize. - * doc/tm.texi (TARGET_BRANCH_TARGET_REGISTER_CLASS): Document. - (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. - * doc/invoke.texi: Document -fbranch-target-load-optimize and - -fbranch-target-load-optimize2. - * rtl.h (epilogue_completed): Declare. - * recog.c (epilogue_completed): New variable. - * toplev.c (rest_of_compilation): Set it. - * flow.c (mark_regs_live_at_end): Use it. - * config/ia64/ia64.c (ia64_output_mi_thunk): Set it. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Likewise. - * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. - - * sh.c (shmedia_space_reserved_for_target_registers): New variable. - (sh_target_reg_class): New function. - (sh_optimize_target_register_callee_saved): Likwise. - (shmedia_target_regs_stack_space): Likewise. - (shmedia_reserve_space_for_target_registers_p): Likewise. - (shmedia_target_regs_stack_adjust): Likewise. - (TARGET_BRANCH_TARGET_REGISTER_CLASS): Override. - (TARGET_BRANCH_TARGET_REGISTER_CALLEE_SAVED): Likewise. - (calc_live_regs): If flag_branch_target_load_optimize2 and - TARGET_SAVE_ALL_TARGET_REGS is enabled, and we have space reserved - for target registers, make sure that we save all target registers. - (sh_expand_prologue, sh_expand_epilogue): Take target register - optimizations into account. Collapse stack adjustments if that - is beneficial. - (initial_elimination_offset): Reserve space for target registers - if necessary. - * sh.h (SAVE_ALL_TR_BIT, TARGET_SAVE_ALL_TARGET_REGS): Define. - (OPTIMIZATION_OPTIONS): Enable flag_branch_target_load_optimize. - -2003-06-18 Nick Clifton - - * config.gcc: Add an extra_header for ARM targets. - Support configuring with --with-cpu=iwmmxt. - * doc/invoke.texi: Document new value for -mcpu= ARM switch. - * config/arm/aof.h (REGISTER_NAMES): Add iwmmxt register - names. Fix formatting. - * config/arm/aout.h (REGISTER_NAMES): Add iwmmxt register - names. - * config/arm/arm-protos.h (arm_emit_vector_const): New - prototype. - (arm_output_load_gr): New prototype. - * config/arm/arm.c (extra_reg_names1): Delete. - (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN, FL_IWMMXT, - * arch_is_iwmmxt): Define. - (all_cores, all_architecture): Add entry for iwmmxt. - (arm_override_options): Add support for iwmmxt. - (use_return_insn, arm_function_arg, arm_legitimate_index_p, - arm_print_value, arm_rtx_costs_1, output_move_double, - arm_compute_save_reg_mask, arm_output_epilogue, - arm_get_frame_size, arm_expand_prologue, arm_print_operand, - arm_assemble_integer, arm_hard_regno_ok, arm_regno_class): - Likewise. - (arm_init_cumulative_args): Count iwmmxt registers. - (arm_function_ok_for_sibcall): Return false of sibcall_blocked - has been set. - (struct minipool_node): Add fix_size field. - (add_minipool_forward_ref): Add support for 8-byte aligning of - the pool. - (add_minipool_backward_ref, add_minipool_offsets, - dump_minipool, push_minipool_fix): Likewise. - (struct builtin_description): New struct. - (builtin_description): New array of iwmmxt builtin functions. - (arm_init_iwmmxt_builtins): New function. - (arm_init_builtins): New function. - (safe_vector_operand): New function. - (arm_expand_binop_builtin): New function. - (arm_expand_unop_builtin): New function. - (arm_expand_builtin): New function. - (arm_emit_vector_const): New function. - (arm_output_load_gr): New function. - * config/arm/arm.h (TARGET_CPU_iwmmxt, TARGET_IWMMXT, - TARGET_REALLY_IWMMXT, arm_arch_iwmmxt, IWMMXT_ALIGNMENT, - TYPE_NEEDS_IWMMXT_ALIGNMENT, ADJUST_FIELD_ALIGN, - DATA_ALIGNMENT, LOCAL_ALIGNMENT, VECTOR_MODE_SUPPORTED_P): Define. - (BIGGEST_ALIGNMENT): Set to 64 if ATPCS support is enabled. - (CPP_CPU_ARCH_SPEC): Add entries for iwmmxt. - (FIXED_REGISTERS, CALL_USED_REGISTERS, REG_ALLOC_ORDER, - reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS, - REG_CLASS_FOR_LETTER): Add iwmmxt registers. - (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Disable iwmmxt - registers unless the iwmmxt target is selected. - (FIRST_IWMMXT_GR_REGNUM, LAST_IWMMXT_GR_REGNUM, - FIRST_IWMMXT_REGNUM, LAST_IWMMXT_REGNUM, IS_IWMMXT_REGNUM, - IS_IWMMXT_GR_REGNUM): Define. - (FIRST_PSEUDO_REGISTER): Bump to 63. - (struct machine_function): Add sibcall_blocked field. - (Struct CUMULATIVE_ARGS): Add iwmmxt_nregs, named_count and - nargs fields. - (enum arm_builtins): New enum list. - * config/arm/arm.md (UNSPEC_WSHUFH, UNSPEC_WACC, - UNSPEC_TMOVMSK, UNSPEC_WSAD, UNSPEC_WSADZ, UNSPEC_WMACS, - UNSPEC_WMACU, UNSPEC_WMACSZ, UNSPEC_WMACUZ, UNSPEC_CLRDI, - UNSPEC_WMADDS, UNSPEC_WMADDU): New unspecs. - (VUNSPEC_TMRC, VUNSPEC_TMCR, VUNSPEC_ALIGN8, VUNSPEC_WCMP_EQ, - VUNSPEC_WCMP_GTU, VUNSPEC_WCMP_GT): New vunspecs. - (movv2si, movv4hi, movv8qi): New expands for vector moves. - Include iwmmxt.md. - * config/arm/t-xscale-elf (MULTILIB_OPITONS): Add iwmmxt - multilib. - (MULTILIB_DIRNAMES, MULTILIB_REDUNDANT_DIRS): Likewise. - * config/arm/mmintrin.h: New ARM specific header file. - * config/arm/iwmmx.md: New iWMMXt specific machine patterns. - -2003-06-18 J"orn Rennecke - - * toplev.c (Remaining -d letters summary): Update. - -2003-06-18 Franz Sirl - - * config/rs6000/rs6000.c (init_cumulative_args): Add and handle LIBCALL - argument. - (function_arg): Handle CALL_LIBCALL flag. - * config/rs6000/rs6000-protos.h (init_cumulative_args): Update - prototype. - * config/rs6000/rs6000.h (CALL_LIBCALL): New macro. - (INIT_CUMULATIVE_LIBCALL_ARGS): New macro. - (INIT_CUMULATIVE_ARGS): Add LIBCALL argument. - (INIT_CUMULATIVE_INCOMING_ARGS): Likewise. - -2003-06-18 Neil Booth - - * Makefile.in: Update. - * common.opt: New options. - * opts.c (maybe_warn_unused_parameter, set_Wextra, handle_param, - set_Wunused): New. - (common_handle_option): Handle new options. - * toplev.c (set_target_switch): Export. - (set_Wextra, set_Wunused, maybe_warn_unused_parameter): Move to opts.c. - (decode_W_option): -Wunused and -Wextra handled in opts.c now. - (independent_decode_option): More options handled in opts.c now. - Change prototype. - * toplev.h (set_target_switch): New. - -2003-06-17 Robert Abeles - - PR debug/4252 - * c-opts.c (c_common_handle_option): Pass -fdump argument suffix - to dump_switch_p(). - * tree-dump.c (dump_switch_p): Remove redundant 'dump-' prefix - from static strings in dump_files. - -2003-06-17 Kaveh R. Ghazi - - * system.h (ANSI_PROTOTYPES, PTR_CONST, LONG_DOUBLE, VPARAMS, - VA_OPEN, VA_FIXEDARG, VA_CLOSE, VA_START): undef and poison these - libiberty macros. - -2003-06-17 Jason Merrill - - PR c++/10929 - * tree-inline.c (expand_call_inline): Don't warn about failing to - inline a function which was made inline by -finline-functions. - -2003-06-17 Kazu Hirata - - * config/h8300/h8300-protos.h: Update to ISO C. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - -2003-06-16 Nathanael Nerode - - * configure.in: Replace BUILD_CC references with CC_FOR_BUILD. - * configure: Regenerate. - * Makefile.in: Replace BUILD_CC references with CC_FOR_BUILD. - -2003-06-17 Ranjit Mathew - - * install.texi (Testing): Add information on how to run Java - runtime tests separately. - -2003-06-17 Rainer Orth - - * config/mips/mips.md (trap): Use break 0 when !TARGET_GAS. - - * config/mips/iris6-o32.h (MIPS_ISA_DEFAULT): Remove. - (MIPS_CPU_STRING_DEFAULT): Redefine to mips2. - -2003-06-17 Christopher Faylor - - * doc/install.texi: Add msvc rebuild caveat. - -2003-06-17 Kazu Hirata - - * config/sh/coff.h: Replace Hitachi with Renesas. - * config/sh/elf.h: Likewise. - * config/sh/embed-elf.h: Likewise. - * config/sh/lib1funcs.asm: Likewise. - * config/sh/sh-protos.h: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.h: Likewise. - * config/sh/sh.md: Likewise. - -2003-06-17 Kazu Hirata - - * ChangeLog.3: Fix comment typos. - * ChangeLog.6: Likewise. - * config/d30v/d30v.c: Likewise. - * config/h8300/h8300.md: Likewise. - * config/m32r/m32r.md: Likewise. - * config/mips/mips.c: Likewise. - * config/mips/mips.md: Likewise. - * config/ns32k/NOTES: Likewise. - -2003-06-17 Ranjit Mathew - Gerald Pfeifer - - * doc/sourcebuild.texi (libgcj Tests): Simplify instructions on how - to run Java runtime tests separately. - -2003-06-17 Kazu Hirata - - * config/h8300/h8300-protos.h: Update a comment. - -2003-06-17 J"orn Rennecke - - * sh.h (ROUND_TYPE_ALIGN, LOCAL_ALIGNMENT): Complex modes - are aligned like integral modes. - (SH5_WOULD_BE_PARTIAL_NREGS): Also test for CDImode and DCmode. - - * sh.h (EXTRA_CONSTRAINT_Csy): Allow PIC_DIRECT_ADDR_P. - (LEGITIMATE_PIC_OPERAND_P): Allow LABEL_REF. - * sh.md (*pt): Remove. - - * sh.h (REG_ALLOC_ORDER): Avoid squandering call-saved registers. - - * sh.md (return_media_rte): New pattern. - (return_media): Use it. - -2003-06-17 Kazu Hirata - - * doc/contrib.texi: Replace Hitachi with Renesas. - * doc/install.texi: Likewise. - * doc/invoke.texi: Likewise. - -2003-06-17 J"orn Rennecke - - * sh.h (CONST_OK_FOR_J16): Fix HOST_BITS_PER_WIDE_INT >= 64 - behaviour. - -2003-06-17 Franz Sirl - - * doc/tm.texi (MD_FALLBACK_FRAME_STATE_FOR): Mention MAKE_THROW_FRAME. - - * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Partly revert - 2003-01-23 patch. Corrected to handle kernels with changed ucontext. - - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Error on invalid - -msdata=eabi usages. - - * gcc/config/rs6000/sysv4.h (USE_LIBC_1): Delete all uses. - -2003-06-17 Kaveh R. Ghazi - - * alloc-pool.c: Don't check HAVE_LONG_DOUBLE. - * fixinc/gnu-regex.c: Don't define `volatile'. - * ggc-page.c: Don't check HAVE_LONG_DOUBLE. - * ggc-simple.c: Likewise. - * system.h: Don't define `volatile'. - - * aclocal.m4 (gcc_AC_C_VOLATILE, gcc_AC_C_LONG_DOUBLE): Delete. - * configure.in (gcc_AC_C_VOLATILE, gcc_AC_C_LONG_DOUBLE): Don't - call these macros. - * config.in, configure: Regenerated. - -2003-06-17 Richard Kenner - - * config/ia64/ia64.c (ia64_expand_builtin, case IA64_BUILTIN_BSP): - Handle POINTERS_EXTEND_UNSIGNED. - -2003-06-17 Rainer Orth - - * config/mips/mips.c (TARGET_ASM_UNALIGNED_DI_OP) [TARGET_IRIX5 && - !TARGET_IRIX6]: Define as NULL. - -2003-06-17 Eric Botcazou - - * config/sparc/sparc.c (sparc_va_arg): Don't align 16-byte+ structures. - -2003-06-17 Eric Botcazou - - * dbxout.c (dbxout_source_line_counter): New global variable. - Mark it with GTY(()). - (dbxout_source_line): Increment dbxout_source_line_counter - and pass it to ASM_OUTPUT_SOURCE_LINE. - * sdbout.c (sdbout_source_line_counter): New global variable. - Mark it with GTY(()). - (unnamed_struct_number): Mark it with GTY(()). - (sdbout_source_line): Increment sdbout_source_line_counter - and pass it to ASM_OUTPUT_SOURCE_LINE. - * xcoffout.c (ASM_OUTPUT_SOURCE_LINE): Add third parameter - (xcoffout_source_line): Pass 0 as third argument to - ASM_OUTPUT_SOURCE_LINE. - (xcoffout_begin_prologue): Likewise. - * config/dbxout.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - Use it instead of 'sym_lineno' but without incrementing it. - * config/dbxelf.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/lynx.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/ptx4.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/alpha/alpha.c (alpha_start_function): Pass 0 as third - argument to ASM_OUTPUT_SOURCE_LINE. - * config/alpha/alpha.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - * config/arm/aout.h: Remove useless comment. - * config/avr/avr.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - * config/i960/i960.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/m32r/m32r.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - Use it instead of 'sym_lineno' but without incrementing it. - * config/m68k/hp320.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - * config/mcore/mcore-pe.h (ASM_OUTPUT_SOURCE_LINE): Add third - parameter. Use it instead of 'sym_lineno' but without incrementing it. - * config/mips/mips.c (mips_output_function_prologue): Pass 0 as third - argument to ASM_OUTPUT_SOURCE_LINE. - * config/mips/mips.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - * config/mmix/mmix.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/pa/som.h (ASM_OUTPUT_SOURCE_LINE): Add third parameter. - Use it instead of 'sym_lineno' but without incrementing it. - * config/rs6000/linux64.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/sh/elf.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/sparc/aout.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * config/sparc/pbd.h (ASM_OUTPUT_SOURCE_LINE): Likewise. - * doc/tm.texi (ASM_OUTPUT_SOURCE_LINE): Document third parameter. - -2003-06-17 Richard Sandiford - - * config/mips/mips-protos.h (mips_expand_block_move): Declare. - (expand_block_move, output_block_move): Remove. - * config/mips/mips.h (enum block_move_type): Remove. - * config/mips/mips.c (block_move_call, output_block_move): Remove. - (mips_block_move_straight, mips_adjust_block_mem): New function. - (mips_block_move_loop): Renamed and reworked from block_move_loop. - (mips_expand_block_move): Likewise expand_block_move. Return false - to fall back on the target-independent code. - * config/mips/mips.md (movstrsi): Use mips_expand_block_move. - (movstrsi_internal*): Remove. - -2003-06-16 Zack Weinberg - - * cpplib.h, cpphash.h, cppcharset.c, cpperror.c, cppexp.c - * cppfiles.c, cpphash.c, cppinit.c, cpplex.c, cpplib.c - * cppmacro.c, cpppch.c, cpptrad.c, cppspec.c: Convert to - ISO C: new-style function declarations, no need for PARAMS, - no special punctuation on indirect function calls, use string - constant concatenation where convenient. - -2003-06-17 Andreas Jaeger - - * rtl.h: Remove declarations from coverage.h. - * toplev.c: Include coverage.h. - * Makefile.in (toplev.o): Depend on coverage.h. - - * toplev.h: Remove extra declaration of print_time. - - * gengtype.c (close_output_files): Remove duplicated declaration. - -2003-06-16 Nathanael Nerode - - * config/sparc/sysv4.h: Remove target-independent comment; - replace "GNU CC" with "GCC". - * config/vxworks.h: Replace "GNU compiler" with "GCC". - * config/sparc/aout.h, config/sparc/biarch64.h, config/sparc/elf.h, - config/sparc/freebsd.h, config/sparc/linux.h, config/sparc/linux64.h, - config/sparc/lite.h, config/sparc/litecoff.h, config/sparc/liteelf.h, - config/sparc/netbsd-elf.h, config/sparc/openbsd.h, - config/sparc/rtemself.h, config/sparc/sol2-64.h, - config/sparc/sol2-bi.h, config/sparc/sol2-gas-bi.h, - config/sparc/sol2-gld-bi.h, config/sparc/sol2-gld.h, - config/sparc/sol2.h, config/sparc/sp64-aout.h, - config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h, - config/sparc/sparc-protos.h, config/sparc/sysv4-only.h: Replace - "GNU compiler", "GNU CC" with "GCC". - * config/sparc/cypress.md, config/sparc/hypersparc.md, - config/sparc/sparc-modes.def, config/sparc/sparc.c, - config/sparc/sparc.md, config/sparc/sparclet.md, - config/sparc/supersparc.md, config/sparc/ultra1_2.md, - config/sparc/ultra3.md: Replace "GNU CC", "GNU Compiler", and - "GNU C Compiler" with "GCC". - * config/ip2k/ip2k.h: Replace "GNU CC" and "GNU compiler" with "GCC". - -2003-06-16 Aldy Hernandez - - * simplify-rtx.c (simplify_subreg): Do not over-extend vector - constants. - - * testsuite/gcc.c-torture/execute/simd-4.c: New. - -2003-06-16 Nathanael Nerode - - * config/ip2k/ip2k.h: Remove target-independent comments. - - * config.gcc: Explicitly mention elfos.h in ip2k entry. - * config/ip2k/ip2k.h: Don't #include it here. - -2003-06-16 Kaveh R. Ghazi - - * bitmap.c, builtins.c, c-incpath.c, cgraph.c, config/frv/frv.c, - config/mips/mips.c, cppfiles.c, cpphash.c, cppinit.c, cpplib.c, - dwarf2out.c, dwarfout.c, except.c, expr.c, expr.h, fold-const.c, - function.c, gcc.c, genoutput.c, gensupport.c, global.c, - haifa-sched.c, hashtable.c, ifcvt.c, integrate.c, local-alloc.c, - loop.c, mips-tdump.c, mips-tfile.c, mkdeps.c, protoize.c, - read-rtl.c, recog.h, reload1.c, sbitmap.c, ssa-dce.c, - stringpool.c, tlink.c, tree.c, varasm.c, varray.c: Don't use - the PTR macro. - - * gengtype.c: Don't use UNION_INIT_ZERO. - * system.h (UNION_INIT_ZERO): Delete. - -2003-06-16 Richard Henderson - - * simplify-rtx.c (simplify_subreg): Use GET_MODE_SIZE instead of - GET_MODE_UNIT_SIZE when simplifying constant vectors. - -2003-06-16 Andreas Jaeger - - * timevar.c (get_run_time): Remove function provided also by - libiberty. - * timevar.h: Remove get_run_time declaration. - -2003-06-16 Kazu Hirata - - * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): Remove - unreachable code. - -2003-06-16 Kaveh R. Ghazi - - * builtin-attrs.def, builtin-attrs.def, builtins.c, cpplex.c, - cpplib.c, gencheck.c, gengenrtl.c, machmode.def, protoize.c: Don't - use macros from "symcat.h", instead rely on ISO C. - - * system.h: Don't include "symcat.h". - * configure.in (AC_C_STRINGIZE): Delete. - * config.in, configure: Regenerate. - -2003-06-16 Richard Kenner - - * Makefile.in (install-mkheaders): Use INSTALL_SCRIPT for scripts. - - * tree.h (STMT_CHECK): New macro. - Also upper-case argument names on all checking macros and - fix some whitespace problems; assume CODE argument does not - have side-effects. - -2003-06-16 Kaveh R. Ghazi - - * scan.h: Convert to ISO C. - * system.h: Likewise. - - * c-format.c (dynamic_format_types): New pointer for dynamic data. - (find_length_info_modifier_index, init_dynamic_asm_fprintf_info): - New functions split out of... - (handle_format_attribute): ...here. - -2003-06-16 J"orn Rennecke - - * sh.h (REG_CLASS_FROM_LETTER): Change to: - (REG_CLASS_FROM_CONSTRAINT). - (CONST_OK_FOR_I): Rename to: - (CONST_OK_FOR_I08). Changed all users. - (CONST_OK_FOR_J): Rename to: - (CONST_OK_FOR_I16). Changed all users. - (CONST_OK_FOR_K): Rename to: - (CONST_OK_FOR_P27). Changed all users. - (CONST_OK_FOR_L): Rename to: - (CONST_OK_FOR_K08). Changed all users. - (CONST_OK_FOR_O): Rename to: - (CONST_OK_FOR_I06). Changed all users. - (CONST_OK_FOR_P): Rename to: - (CONST_OK_FOR_I10). Changed all users. - (CONSTRAINT_LEN, CONST_OK_FOR_I, CONST_OK_FOR_J16): Define. - (CONST_OK_FOR_J, CONST_OK_FOR_K, CONST_OK_FOR_P): Likewise. - (EXTRA_CONSTRAINT_A, EXTRA_CONSTRAINT_Bsc): Likewise. - (EXTRA_CONSTRAINT_B, PIC_OFFSET_P, PIC_DIRECT_ADDR_P): Likewise. - (EXTRA_CONSTRAINT_Cpg, EXTRA_CONSTRAINT_C): Likewise. - (EXTRA_MEMORY_CONSTRAINT,(EXTRA_CONSTRAINT_Sr0): Likewise. - (CONST_OK_FOR_LETTER_P): Replace with - (CONST_OK_FOR_CONSTRAINT_P). - (EXTRA_CONSTRAINT_S): Rename to: - (EXTRA_CONSTRAINT_C16). Changed all users. - (MOVI_SHORI_BASE_OPERAND_P): Don't allow direct addresses. - (EXTRA_CONSTRAINT_T): Rename to: - (EXTRA_CONSTRAINT_Csy). Changed all users. - (EXTRA_CONSTRAINT_Z): Remove. - (EXTRA_CONSTRAINT): Replace with: - (EXTRA_CONSTRAINT_STR). - (EXTRA_CONSTRAINT_U): Rename to: - (EXTRA_CONSTRAINT_Z). Changed all users. - * sh.c (and_operand): Use CONST_OK_FOR_J16. - * sh.md (cmpeqsi_t-1, cmpeqsi_t, adddi3_media): Use new constraints. - (addsi3_media, addsi3_compact, andsi3_compact, anddi3): Likewise. - (iorsi3, iordi3, xorsi3, xordi3, ashlsi3_std, ashlhi3_k): Likewise. - (lshrsi3_k, movsi_i, movsi_ie, movsi_i_lowpart, movsi_media): Likewise. - (movsi_media_nofpu, movqi_media, movhi_i, movhi_media): Likewise. - (*movdi_i, movdi_media, movdi_media_nofpu, shori_media): Likewise. - (movdf_media, movdf_media_nofpu, movv2sf_i, movv4sf_i): Likewise. - (movsf_media, movsf_media_nofpu, movsi_y, beq_media): Likewise. - (beq_media_i, bne_media, pt, ptb, movv8qi_i, movv2hi_i): Likewise. - (movv4hi_i, movv2si_i, negcmpeqv8qi, negcmpeqv2si): Likewise. - (negcmpeqv4hi, negcmpgtuv8qi, negcmpgtv2si, negcmpgtv4hi): Likewise. - (mcmv, mcnvs_lw, mcnvs_wb, mcnvs_wub, mextr_rl, mextr_lr): Likewise. - (mextr1, mextr2, mextr3, mextr4, mextr5, mextr6, mextr7): Likewise. - (mperm_w, mperm_w_little, mperm_w_big, msad_ubq_i): Likewise. - (mshards_q, mshfhi_b, mshflo_b, mshf4_b, mshf0_b, mshfhi_l): Likewise. - (mshflo_l, mshf4_l, mshf0_l, mshfhi_w, mshflo_w, mshf4_w): Likewise. - (mshf0_w, mshflo_w_x, mshfhi_l_di, mshfhi_l_di_rev): Likewise. - (mshflo_l_di_rev, mshflo_l_di_x, concat_v2sf): Likewise. - (mshflo_l_di_x_rev, subv2si3, subv4hi3, sssubv2si3): Likewise. - (sssubv4hi3): Likewise. - (movsf_i): Change I[08]/r to G/r. - (movsf_ie): Change f/{G,H}/c/X to f/{G,H}/c/Bsc. - - * sh.c (sh_output_mi_thunk): Use CONST_OK_FOR_ADD. - -2003-06-16 Vladimir Makarov - - * config/i386/i386.c (ix86_memory_move_cost): Fix typo. - -2003-06-16 Andreas Jaeger - - * basic-block.h: Remove duplicate prototype of - note_prediction_to_br_prob. - - * tree.h: Remove duplicate prototype of strip_float_extensions. - -2003-06-16 Kaveh R. Ghazi - - * config/c4x/c4x.c: Don't include "c-tree.h". - * config/pa/pa.c: Likewise. - * langhooks.c: Likewise. - * tree.h (poplevel): Declare. - -2003-06-16 Kazu Hirata - - * config/h8300/h8300.c (const_costs): Move this to ... - (h8300_rtx_costs): ... here. - -2003-06-16 Roger Sayle - - * optabs.h (enum optab_index): Add new OTI_tan and OTI_atan. - (tan_optab, atan_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize tan_optab and atan_optab. - * genopinit.c (optabs): Implement tan_optab and atan_optab - using tan?f2 and atan?f2 patterns. - * builtins.c (expand_builtin_mathfn): Handle BUILT_IN_TAN{,F,L} - using tan_optab, and BUILT_IN_ATAN{,F,L} using atan_optab. - Change the default value of errno_set to false. - (expand_builtin): Expand BUILT_IN_TAN{,F,L} and BUILT_IN_ATAN{,F,L} - using expand_builtin_mathfn. - - * config/i386/i386.md (atansf2, atandf2, atanxf2, atantf2): New - expander patterns implemented using existing atan2?f3 patterns. - -2003-06-16 Roger Sayle - - * expr.c (expand_expr ): If operand_equal_p considers - both operands of the addition equal, reuse the expanded RTL. - (expand_expr ): Likewise for multiplication. - -2003-06-16 Roger Sayle - Jeff Law - - * fold-const.c (operand_equal_p): Consider two calls to "const" - functions with identical non-volatile arguments to be equal. - Consider the FUNCTION_DECL for the "__builtin_foo" form of a - built-in function to be equal to the "foo" form. - -2003-06-16 Nathanael Nerode - - * config/rs6000/sysv4le.h: Remove target-independent comment. - Replace "GNU compiler" with "GCC" in comment. - -2003-06-16 Andreas Jaeger - - * tracer.c: Remove duplicate declaration. - - * toplev.c: Remove extra declaration of decode_d_option. - - * ssa.c: Remove duplicate declaration. - - * sreal.c: Remove extra declaration of dump_sreal. - - * reload1.c: Remove duplicate declarations. - - * integrate.c: Remove extra declaration of - set_decl_abstract_flags. - - * flow.c: Remove extra declaration of dump_flow_info. - - * alias.c: Remove extra declaration of get_addr. - -2003-06-16 Nathanael Nerode - - * config/rtems.h, config/sol2.h, config/svr4.h, config/usegas.h, - config/vxworks.h: GNU CC -> GCC. - - * convert.c, dwarf2out.c, dwarfout.c, emit-rtl.c, function.c, - lists.c, print-rtl.c, print-tree.c, read-rtl.c, rtl-error.c, - stmt.c, toplev.c, integrate.h, loop.h, machmode.h, rtl.h, - ssa.h, tree.def: Replace overly specific references to "GNU C" - and "GNU C Compiler" with references to "GCC". - -2003-06-16 J"orn Rennecke - - * sh.c (prepare_move_operand): Check if operand 0 is an invalid - memory reference. Fix test that checks if operand 1 is using r0. - * sh.md (movhi_i): Don't allow st.w r0,@(rX,rY) . - - * defaults.h (REG_CLASS_FROM_CONSTRAINT): Only define if not already - defined. - -2003-06-15 Nathan Sidwell - - * function.h (struct emit_status): Remove x_last_linenum, - x_last_filename. Add x_last_location. - * rtl.h: #include "input.h". - (NOTE_DATA): New. - * cfglayout.c (duplicate_insn_chain): Use emit_line_note for line - number notes. - * emit-rtl.c (last_linenum, last_filename): Remove. - (last_location): New. - (emit_line_note_after): LINE must always be >= 0. - (emit_line_note): Likewise. Check not duplicate here... - (emit_note): ... rather than here. - (emit_line_note_force, force_next_line_note, init_emit): Adjust. - * integrate.c (expand_inline_function): Use emit_line_note for - line number notes. - (copy_insn_list): Likewise. - * unroll.c (copy_loop_body): Likewise. - * Makefile.in (RTL_H): Add input.h. - -2003-06-16 Richard Sandiford - - * optabs.c (emit_libcall_block): Don't hoist insns past a label. - -2003-06-16 Richard Henderson - - * config/alpha/alpha-protos.h, config/alpha/elf.h, - config/alpha/osf.h, config/alpha/unicosmk.h, config/alpha/vms.h, - config/alpha/vms-cc.c, config/alpha/vms-ld.c: Update to ISO C. - * config/alpha/alpha.c: Likewise. Move targetm init to end of file. - Remove unneeded static function decls. - -2003-06-16 Neil Booth - - * c-opts.c (c_common_handle_option): s/on/value/. - (OPT_fabi_version_, OPT_ftabstop_, OPT_ftemplate_depth_): Use value - directly rather than converting the argument. - * c.opt: Update docs. Use UInteger where appropriate. - * common.opt: Use UInteger where appropriate. - * opts.c (integral_argument): New. - (handle_argument): Handle integral arguments, and optional - joined arguments. - (common_handle_option): Update. - * opts.h (CL_MISSING_OK, CL_UINTEGER): New. - * opts.sh: Handle JoinedOrMissing and UInteger flags. - -2003-06-16 Neil Booth - - * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Remove - unnecessary extern declaration. - -2003-06-15 Nathanael Nerode - - * config/gofast.h, config/interix.h, config/interix3.h, - config/libgloss.h, config/linux-aout.h, config/linux.h, - config/lynx-ng.h, config/lynx.h: GNU CC -> GCC. - * config/kaos.h: "GNU compiler" -> GCC. - * config/linux-aout.h, config/lynx.h: Clarify comment describing file. - - * config/ip2k/crt0.S, config/ip2k/ip2k-protos.h, - config/ip2k/ip2k.c, config/ip2k/ip2k.md, config/ip2k/libgcc.S: - GNU CC -> GCC. - - * config/svr3.h: Remove #if 0 code, misleading comments. - GNU CC -> GCC. - -2003-06-15 Zack Weinberg - - * vmsdbgout.c (vmsdbgout_finish): Rename parameter to - main_input_filename to avoid conflict with input_filename macro. - -2003-06-15 Neil Booth - - * config/mips/mips.h (asm_file_name, g_switch_set, - g_switch_value): Remove. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Remove - unnecessary extern declarations. - -2003-06-15 Neil Booth - - * config/frv/frv.h: Remove declaration of g_switch_value. - * config/m32r/m32r.h: Remove declaration of g_switch_value. - * config/m68hc11/m68hc11.c: Remove declaration of asm_file_name. - -2003-06-15 Neil Booth - - * opts.sh: Quote '+' in regex. - -2003-06-15 Andrew Pinski - - * config/rs6000/t-rs6000: Add dependence of cfglayout.h to rs6000.o. - * config/rs6000/rs6000.c: Include cfglayout.h. - * config/alpha/alpha.c: Likewise. - * config/ia64/ia64.c: Likewise. - * config/sparc/sparc.c: Likewise. - * config/sh/sh.c: Likewise. - -2003-06-15 Neil Booth - - * opts.sh: Quote '+' in regex. - -2003-06-15 Neil Booth - - * c-opts.c (lang_flags): Update for new spelling of flags. - (write_langs): Similarly. - * c.opt: Specify languages. - * opts.h: Remove languages. - * opts.sh: Recognise front-end defined languages. - * doc/sourcebuild.texi: Update. - -2003-06-15 Andreas Jaeger - - * alloc-pool.c: Convert to ISO C90 prototypes. - * alloc-pool.h: Likewise. - * alias.c: Likewise. - * attribs.c: Likewise. - * bb-reorder.c: Likewise. - * bitmap.h: Likewise. - * bitmap.c: Likewise. - * builtins.c: Likewise. - - * tree.h: Convert prototypes of attribs.c to ISO C90. - * basic-block.h: Convert prototypes of bb-reorder.c to ISO C90. - * rtl.h: Convert prototypes of alias.c and builtins.c to ISO C90. - * expr.h: Convert prototypes of builtins.c to ISO C90. - -2003-06-15 Roger Sayle - - * config/i386/i386.md (expsf2, expdf2, expxf2): New patterns to - implement exp, expf and expl built-ins as inline x87 intrinsics. - (UNSPEC_FSCALE, UNSPEC_FRNDINT, UNSPEC_F2XM1): New unspecs to - represent x87's fscale, frndint and f2xm1 insns respectively. - (*fscale_sfxf3, *fscale_dfxf3, *fscale_xf3): New insn patterns - to encode x87's "fscale" instruction followed by a pop. - (*frndintxf2): New insn pattern for "frndint". - (*f2xm1xf2): New insn pattern for "f2xm1". - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FRNDINT and - UNSPEC_F2XM1 like UNSPEC_{SIN,COS} and handle UNSPEC_FSCALE like - UNSPEC_FPATAN. - -2003-06-15 Richard Kenner - - * gencheck.c (main): Avoid generating duplicate macros. - - * Makefile.in (stagefeedback-start): Use $(SUBDIRS) instead of - knowing names of language subdirectories. - -2003-06-15 Neil Booth - - * c-pch.c (asm_file_name): Remove. - * common.opt: Add more switches. - * flags.h (g_switch_set): Boolify. - * opts.c (g_switch_value, g_switch_set, exit_after_options, - version_flag): Move from toplev.c. - (common_handle_option): Handle more switches from toplev.c. - * toplev.c (display_help, display_target_options, decode_d_option, - print_version): Make non-static, remove prototypes. - (aux_base_name, asm_file_name, aux_info_file_name): Constify. - (version_flag, g_switch_value, g_switch_set, exit_after_options): - Remove. - (independent_decode_option): Move some handlers to opts.c. - * toplev.h (aux_info_file_name, aux_base_name, asm_file_name, - exit_after_options, version_flag, display_help, display_target_options, - print_version, decode_d_option): New. - -2003-06-15 Kazu Hirata - - * config/alpha/alpha.md: Follow spelling conventions. - * config/arm/arm.c: Likewise. - * config/arm/arm.h: Likewise. - * config/arm/arm.md: Likewise. - * config/arm/crtn.asm: Likewise. - * config/m32r/m32r.c: Likewise. - * config/m32r/m32r.md: Likewise. - * config/rs6000/rs6000.c: Likewise. - -2003-06-15 Richard Henderson - - * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Call - insn_locators_initialize. - * config/ia64/ia64.c (ia64_output_mi_thunk): Likewise. - * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. - * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. - * config/sh/sh.c (sh_output_mi_thunk): Do it later. - -2003-06-15 Kazu Hirata - - * builtins.c (expand_builtin_expect_jump): Remove redundant - tests that are also in any_condjump_p(). - -2003-06-15 Kaveh R. Ghazi - - * libgcc2.c: Delete sysV68 L_trampoline section. - * config/m68k/mot3300-crt0.S: Delete file. - * config/m68k/mot3300Mcrt0.S: Likewise. - -2003-06-15 Nathanael Nerode - - * config/aoutos.h: Remove. - * config.gcc: Remove reference to aoutos.h. - * config/m68k/m68k-aout.h: Remove reference to aoutos.h. - -2003-06-14 Kazu Hirata - - * doc/install.texi: Follow spelling conventions. - * doc/tm.texi: Likewise. - * config/fp-bit.c: Likewise. - * config/arm/arm.c: Likewise. - * config/frv/frv.c: Likewise. - * config/ns32k/NOTES: Likewise. - * config/ns32k/STATUS: Likewise. - -2003-06-14 Roger Sayle - Zack Weinberg - - * rtl.h (STORE_FLAG_VALUE): Remove default definition from here. - * defaults.h (STORE_FLAG_VALUE): Move default definition to here. - * doc/tm.texi (STORE_FLAG_VALUE): Document the default value. - - * config/alpha/alpha.h (STORE_FLAG_VALUE): Remove definition. - * config/arc/arc.h (STORE_FLAG_VALUE): Likewise. - * config/arm/arm.h (STORE_FLAG_VALUE): Likewise. - * config/cris/cris.h (STORE_FLAG_VALUE): Likewise. - * config/i370/i370.h (STORE_FLAG_VALUE): Likewise. - * config/i386/i386.h (STORE_FLAG_VALUE): Likewise. - * config/i960/i960.h (STORE_FLAG_VALUE): Likewise. - * config/ia64/ia64.h (STORE_FLAG_VALUE): Likewise. - * config/ip2k/ip2k.h (STORE_FLAG_VALUE): Likewise. - * config/m32r/m32r.h (STORE_FLAG_VALUE): Likewise. - * config/mcore/mcore.h (STORE_FLAG_VALUE): Likewise. - * config/mips/mips.h (STORE_FLAG_VALUE): Likewise. - * config/mmix/mmix.h (STORE_FLAG_VALUE): Likewise. - * config/ns32k/ns32k.h (STORE_FLAG_VALUE): Likewise. - * config/pa/pa.h (STORE_FLAG_VALUE): Likewise. - * config/pdp11/pdp11.h (STORE_FLAG_VALUE): Likewise. - * config/sh/sh.h (STORE_FLAG_VALUE): Likewise. - * config/sparc/sparc.h (STORE_FLAG_VALUE): Likewise. - * config/v850/v850.h (STORE_FLAG_VALUE): Likewise. - * config/xtensa/xtensa.h (STORE_FLAG_VALUE): Likewise. - -2003-06-14 Nathan Sidwell - - * opts.sh (POSIXLY_CORRECT): Unset it. - - * tree.h (init_function_start): Remove filename and line paramters. - * function.c (init_function_start): Remove filename and line - parameters. Use DECL_SOURCE_LOCATION. - * c-decl.c (store_parm_decls): Adjust init_function_start call. - (c_expand_body_1): Likewise. - * coverage.c (create_coverage): Likewise. - * objc/objc-act.c (build_tmp_function_decl): Set line number to - zero. - (hack_method_prototype): Adjust init_function_start call. - -2003-06-14 Richard Earnshaw - - PR target/3724 - * arm/linux-elf.h (PROFILE_HOOK): Define. - -2003-06-14 Richard Earnshaw - - PR target/11183 - * arm.h (CANNOT_CHANGE_MODE_CLASS): Define. - -2003-06-14 Roger Sayle - - * opts.sh: Work around a mysterious feature in cygwin's gawk - where specifying the input files explicitly has a different - behavior to piping them via stdin. - -2003-06-14 Neil Booth - - * doc/sourcebuild.texi: Update. - -2003-06-14 Richard Earnshaw - - PR target/11183 - * arm.c (output_move_double): Pass SImode to adjust_address. - -2003-06-14 Neil Booth - - * Makefile.in: Update to use common.opt and lang_opt_files. - (c-options.c, c-options.h): Remove. - (options.c, options.h): Add. - * c-opts.c: Include options.h not c-options.h. - * common.opt: New file. - * configure, configure.in: Add lang_opt_files. - * opts.c: Include flags.h and diagnostic.h. - (common_handle_option): New. - (handle_option): Update to recognize common options and all - language-dependent options. - * opts.h (CL_F77, CL_JAVA, CL_ADA, CL_COMMON, CL_TREELANG): New. - (struct cl_option): Make flags of type int. - * opts.h: Flag option with front ends to which it applies. - Handle duplicate options. - * toplev.c (filename): Remove. - (independent_decode_option): Don't handle filenames and -quiet. - (process_options, do_compile): Update. - -2003-06-14 Nick Clifton - - * doc/install.texi (Specific): Add description of different - ARM supported file format targets. - -Sat Jun 14 11:12:04 CEST 2003 Jan Hubicka - - * reorg.c (emit_delay_sequence, dbr_schedule): Clear insn locators - inside delay slots. - -2003-06-13 Matt Kraai - - * unwind-c.c: Define NO_SIZE_OF_ENCODED_VALUE. - * unwind-pe.h (size_of_encoded_value): Do not define if - NO_SIZE_OF_ENCODED_VALUE is defined. - -2003-06-13 Roger Sayle - - * expr.c (expand_expr ): Handle the case of - expanding a complex constant into a CONCAT target. - -2003-06-13 Zack Weinberg - - * config/svr3.h (ASM_FILE_START): Don't use ASM_FILE_START_1. - (ASM_FILE_START_1): Delete. - * config/i386/att.h, config/i386/sco5.h, - config/i386/sysv3.h - (ASM_FILE_START_1): Delete. - -2003-06-13 Kelley Cook - - * config/i386/bsd.h: Remove ASM_FILE_START. - * config/i386/djgpp.h: Likewise. - * config/i386/gas.h (ASM_FILE_START): Output .file before .intel_syntax. - - * config/i386/djgpp.h: Move included unix.h, bsd.h, gas.h to ... - * config.gcc (i[34567]86-pc-msdosdjgpp): ... here. - -2003-06-13 Vladimir Makarov - - PR bootstrap/10835 - * haifa-sched.c (max_lookahead_tries, - cached_first_cycle_multipass_dfa_lookahead, - cached_issue_rate): New variables. - (max_issue): Check the number of tries. - (choose_ready): Calculate max_lookahead_tries. - (sched_init): Check cached_issue_rate. - -2003-06-13 Richard Henderson - - * cfgbuild.c (make_edges): Set ABNORMAL with SIBCALL. - * cfgrtl.c (purge_dead_edges): Expect it too. - -2003-06-13 Jim Wilson - Eric Botcazou - - PR bootstrap/10983 - * combine.c (make_extraction): Use gen_lowpart_for_combine - when extracting from a REG and not in the destination of a SET. - -2003-06-13 Doug Evans - - * tsystem.h (abort): Declare in inhibit_libc case to remove build - warnings for addvsi3, et.al. - -2003-06-13 Aldy Hernandez - - * c-common.c (handle_mode_attribute): Use VECTOR_MODE_P macro. - - * simplify-rtx.c (simplify_subreg): Same. - - * emit-rtl.c (gen_lowpart_common): Same. - -2003-06-13 Kazu Hirata - - * builtins.c: Fix comment typos. - * fold-const.c: Likewise. - -2003-06-13 Doug Evans - Kazuhiro Inaoka - - * config/m32r/m32r-protos.h (m32r_pass_by_reference): Declare. - * config/m32r/m32r.c (m32r_pass_by_reference): New fn. - (m32r_va_arg): Use it. - * config/m32r/m32r.h (FUNCTION_ARG_PASS_BY_REFERENCE): Ditto. - (RETURN_IN_MEMORY): Ditto. - -2003-06-13 Nathanael Nerode - - * c-typeck.c: Remove #if 0 clauses. - - PR other/1494 - * config/alpha/openbsd.h, config/i386/openbsd.h, - config/m68k/openbsd.h, config/sparc/openbsd.h: Remove - residual reference to EGCS. - -2003-06-13 Richard Earnshaw - - * arm.c (output_call_mem): If the address references the link-register - use an instruction sequence that avoids early-clobbering IP. - (eliminate_lr2ip): Delete. - -2003-06-13 Kaveh R. Ghazi - - * c-format.c (format_types_orig): Disallow '*' width/precision in - asm_fprintf format checks. - -2003-06-13 Ulrich Weigand - - * config/s390/s390.c (s390_va_arg): Fix alignment when retrieving - non-integral types from integer register save area slots. - -2003-06-13 Nathanael Nerode - - * config/i386/svr3dbx.h: GNU CC -> GCC; Intel 385 -> Intel 386. - -2003-06-13 Florian Weimer - - * doc/invoke.texi (SPARC Options): Document ``-mimpure-text''. - -2003-06-13 Kaz Kojima - - * config/sh/linux.h (TARGET_ASM_FILE_END): Set TARGET_ASM_FILE_END - to file_end_indicate_exec_stack. - -2003-06-12 Richard Henderson - - PR target/11089 - * config/i386/i386.md (sse_movaps): Use an expander to force - one operand to be a register. - (sse_movups): Likewise. - -2003-06-13 Doug Evans - - Remove some build warnings. - * config/m32r/initfini.c (__CTOR_LIST__,__DTOR_LIST__): Attribute used. - (__do_global_ctors,__do_global_dtors): Ditto. - -2003-06-12 Richard Henderson - - PR middle-end/10557 - * rtlanal.c (subreg_offset_representable_p): Relax subreg check. - -2003-06-13 Kazu Hirata - - * config/m32r/m32r.md: Fix a comment typo. - -2003-06-13 Eric Botcazou - Christian Ehrhardt - - PR target/10142 - * config/sparc/sparc.c (function_arg_record_value_parms): Add - new 'stack' field. - (function_arg_record_value_1): Set 'stack' to 1 if we run out of - integer slots for an integer field. - (function_arg_record_value_3): Shift vector index. - (function_arg_record_value_2): Likewise. - (function_arg_record_value): Initialize 'stack' to 0. - Set 'stack' to 1 if we run out of integer slots for an integer field. - Generate (parallel [(expr_list (nil) ...) ...]) if 'stack' is set to 1. - -2003-06-13 Eric Botcazou - - PR optimization/10955 - * unroll.c (unroll_loop): Fix off-by-one bug. - -2003-06-12 Aldy Hernandez - - * config/rs6000/rs6000.c (function_arg): Remove typo. - -2003-06-12 Richard Henderson - - * config/i386/i386.c (legitimate_constant_p): Handle UNSPEC_NTPOFF - and UNSPEC_DTPOFF. - -2003-06-12 Richard Henderson - - PR middle-end/10475 - * expmed.c (emit_store_flag): Use simplify_gen_subreg directly - for extracting sub-words. - -2003-06-12 Richard Henderson - - PR target/7594 - * config/m68k/m68k.md (zero_extendhisi2): Use gen_lowpart_SUBREG. - (zero_extendqihi2, zero_extendqisi2): Likewise. - -2003-06-12 Aldy Hernandez - - * config/rs6000/rs6000.c (function_arg): Always split vectors for - e500 if it's a stdarg function. - (function_arg_advance): Advance 2 registers for vectors in a - stdarg function. - (init_cumulative_args): Initialize stdarg. - (rs6000_spe_function_arg): New. - - * config/rs6000/rs6000.h (rs6000_args): Add stdarg. - -2003-06-12 Aldy Hernandez - - * config/rs6000/rs6000.h (MODES_TIEABLE_P): Add SPE vectors. - -2003-06-12 Roger Sayle - - PR middle-end/168 - * fold-const.c (tree_expr_nonnegative_p): Handle addition - and multiplication of zero extensions, floating point division, - and integer<->fp, fp<->fp and zero extension conversions. - The built-in ceil and floor functions preserve signedness. - -2003-06-12 Kazu Hirata - - * ChangeLog: Follow spelling conventions. - * ChangeLog.2: Likewise. - * c-decl.c: Likewise. - * cfgloop.h: Likewise. - * cgraph.c: Likewise. - * coverage.c: Likewise. - * cppcharset.c: Likewise. - * cpphash.h: Likewise. - * cpplex.c: Likewise. - * cpplib.c: Likewise. - * dbxout.c: Likewise. - * df.c: Likewise. - * dwarf2out.c: Likewise. - * dwarfout.c: Likewise. - * emit-rtl.c: Likewise. - * explow.c: Likewise. - * gcov-io.c: Likewise. - * gcov-io.h: Likewise. - * gcov.c: Likewise. - * gengtype.c: Likewise. - * ggc.h: Likewise. - * opts.c: Likewise. - * real.c: Likewise. - * reload.c: Likewise. - * stmt.c: Likewise. - -2003-06-12 Janis Johnson - - * doc/install.texi (m32r-*-elf): Change company to Renesas. - -Thu Jun 12 20:00:55 CEST 2003 Jan Hubicka - - * basic-block.h (flow_delete_block_noexpunge): Kill. - * cfgrtl.c (flow_delete_block_noexpunge): Merge to - rtl_delete_block. - -2003-06-10 Richard Henderson - - PR inline-asm/4823 - * reg-stack.c (any_malformed_asm): New. - (check_asm_stack_operands): Set it. - (convert_regs_1): Check it before aborting. - -2003-06-12 Aldy Hernandez - - * config/rs6000/spe.md: Change all clobbers of the accumulator to sets. - -2003-06-12 Jakub Jelinek - - * c-opts.c (complain_wrong_lang): Add on argument. - Print no- switch if on is false. - (c_common_decode_option): Adjust caller. - -2003-06-12 Ulrich Weigand - - * config/s390/s390.c (s390_emit_prologue): Use LA instead of AR - to initialize GOT register. - -2003-06-12 Roger Sayle - - * fold-const.c (tree_expr_nonnegative_p): Add support for - floating point constants, addition and multiplication. - -2003-06-12 J"orn Rennecke - - * sh.md (adddi3_compact, subdi3_compact): Add earlyclobber - constraint modifier for operand 0. - -2003-06-12 Hans-Peter Nilsson - - Don't warn on dollars in builtin macro definitions, - e.g. __REGISTER_PREFIX__. - * cpphash.h (struct cpp_reader): Move member warn_dollars... - * cpplib.h (struct cpp_options): ...to here. Change type to - unsigned char. - * cppinit.c (cpp_create_reader): Set it to 1 here. - (post_options): Don't set it here. - * c-opts.c (c_common_init_options): Reset it to 0 here. - (finish_options): Set it here. - * cpplex.c (forms_identifier_p): Tweak for new location of - warn_dollars. - - * configure.in (assembler dwarf2 debug_line support): Define insn - for cris-*-* and mmix-*-*. - * configure: Regenerate. - -2003-06-11 Uwe Stieber - - * config.gcc (arm*-*-kaos*, i[34567]86-*-kaos*, powerpc-*-kaos*, - powerpcle-*-kaos*, strongarm-*-kaos*): New targets. - (sh-*-elf*): Add sh*-*-kaos* support. - * config/kaos.h, config/arm/kaos-strongarm.h, config/arm/kaos-arm.h, - config/i386/kaos-i386.h, config/rs6000/kaos-ppc.h, - config/sh/kaos-sh.h: New files. - -2003-06-12 Kazu Hirata - - * gcse.c (fis_get_condition): Make it a global function. - * reload1.c (reload_cse_move2add): Detect implicit sets. - * rtl.h: Add a prototype for fis_get_condition. - -2003-06-11 Richard Henderson - - * stmt.c (expand_asm_operands): Don't warn for memories with - queued addresses. - -2003-06-11 Kaz Kojima - - * config/sh/sh.h (SUBTARGET_ASM_RELAX_SPEC): Rewrite without - brackets. - -2003-06-11 Neil Booth - - * hooks.c (hook_int_size_t_constcharptr_int_0): New. - * hooks.h (hook_int_size_t_constcharptr_int_0): New. - * langhooks-def.h (lhd_decode_option, LANG_HOOKS_DECODE_OPTION): Die. - (LANG_HOOKS_HANDLE_OPTION, LANG_HOOKS_INITIALIZER): Update. - * langhooks.c (lhd_decode_option): Remove. - * langhooks.h (struct lang_hooks): Remove decode_option. - * opts.c (handle_option): No longer use decode_option. - -2003-06-11 Zdenek Dvorak - - * cfgloopanal.c (variable_initial_value): Update the set of altered - registers correctly. - -2003-06-11 Roger Sayle - Kaveh R. Ghazi - - * config/d30v/d30v.h: Delete reference to ASM_FINAL_SPEC. - * config/i386/netbsd-elf.h: Likewise. - * config/m32r/m32r.h: Likewise. - * config/mn10300/mn10300.h: Likewise. - * config/stormy16/stormy16.h: Likewise. - * config/v850/v850.h: Likewise. - * config/vax/netbsd-elf.h: Likewise. - * config/xtensa/elf.h: Likewise. - * config/xtensa/linux.h: Likewise. - -2003-06-11 Rainer Orth - - * config/mips/iris5gas.h (MDEBUG_ASM_SPEC): Override to match - DWARF 2 default. - - * config/mips/dbxmdebug.h: New file. - * config.gcc (mips-sgi-irix6*o32, mips-sgi-irix5*): Use it with - gas and --with-stabs. - -2003-06-11 Ulrich Weigand - - * expr.c (can_move_by_pieces): align argument may be unused. - -2003-06-11 J"orn Rennecke - - * expr.c (convert_move): Handle moves between two CONCATs. - -2003-06-11 Kazu Hirata - - * config/h8300/h8300.h (RETURN_IN_MEMORY): Accept DImode if - !TARGET_H8300. - -2003-06-11 Kazu Hirata - - * config/h8300/h8300.c (final_prescan_insn): Don't dump rtl. - * config/h8300/h8300.h (MASK_RTL_DUMP): Remove. - (TARGET_RTL_DUMP): Likewise. - (TARGET_SWITHCES): Remove -mrtl-dump. - -2003-06-10 Richard Henderson - - * optabs.c (gen_cond_trap): Fix prepare_operand typo. - -2003-06-10 Richard Henderson - - * config/ia64/ia64.md (call_gp): Fix memory mode. - -2003-06-10 James E Wilson - - PR target/8812 - * reload1.c (choose_reload_regs): For equiv reg, add loop over all - hard regs for reload_reg_used_at_all and reg_class_contents checks. - -2003-06-10 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Remove support for - operand character 'b'. - Add the AND case to operand character 'c'. - * config/h8300/h8300.md (two anonymous patterns): Replace - operand character 'b' with 'c'. - -2003-06-10 Kazu Hirata - - * config/h8300/h8300.c (print_operand): Remove support for - operand character 'u'. - -2003-06-10 Nathanael Nerode - - * configure.in: Fix typo. - * configure: Regenerate. - -2003-06-10 Loren James Rittle - - * config/alpha/alpha.c (unicosmk_file_end): Add conditional - compilation guard. - -2003-06-10 J"orn Rennecke - - * sh-protos.h (function_symbol): Declare. - * sh.c (expand_block_move, expand_ashiftrt): Use it. - (sh_expand_prologue, sh_expand_epilogue): Likewise. - (sh_initialize_trampoline): Likewise. - (function_symbol): New function. - * sh.md (udivsi3, divsi3, mulsi3, ic_invalidate_line): Use it. - (initialize_trampoline, call, call_pop, call_value, sibcall): Likewise. - (call_value_pop, shcompact_return_tramp): Likewise. - - * sh.h (OVERRIDE_OPTIONS): Don't suppress --profile-arc-flag. - - * sh.md (GOTaddr2picreg): Use gen_lowpart to get lowpart of - target register. - -2003-06-10 DJ Delorie - - * doc/md.texi (Machine Constraints): Document stormy's Z - constraint. - -2003-06-10 Geoffrey Keating - - * except.c (call_site_base): Mark with GTY. - -2003-06-10 Richard Earnshaw - - * arm-proto.h: Convert to ISO C90 prototypes. - * arm.c: Likewise. - -2003-06-10 J"orn Rennecke - - * sh.c (sh_output_mi_thunk): Call insn_locators_initialize. - -2003-06-10 Steve Ellcey - - * calls.c (expand_call): Convert structure_value_addr to Pmode if - necessary. - -2003-06-10 Andrew Haley - - * langhooks-def.h (LANG_HOOKS_DECL_OK_FOR_SIBCALL): New. - (LANG_HOOKS_DECLS): Add LANG_HOOKS_DECL_OK_FOR_SIBCALL. - (lhd_decl_ok_for_sibcall): New. - * langhooks.c (lhd_decl_ok_for_sibcall): New. - * langhooks.h (lang_hooks_for_decls.ok_for_sibcall): New field. - * calls.c (expand_call): Check lang_hook before generating a - sibcall. - -2003-06-10 DJ Delorie - - * config/stormy16/stormy16.c (xstormy16_extra_constraint_p): Add Z, - which matches (const_int 0) for addhi3. - * config/stormy16/stormy16.md: Document known constraints. - (addhi3): Handle adding zero. - -2003-06-10 Kazuhiro Inaoka - - * config/m32r/m32r.h (HARD_REGNO_RENAME_OK): New. - * config/m32r/m32r.c (m32r_hard_regno_rename_ok): New. - * config/m32r/m32r-protos.h: Prototype it. - -2003-06-10 Janis Johnson - - * config/rs6000/eabi.h (TARGET_OS_CPP_BUILTINS): Define builtins - common to rs6000 sysv targets. - * config/rs6000/eabisim.h (TARGET_OS_CPP_BUILTINS): Ditto. - * config/rs6000/rtems.h (TARGET_OS_CPP_BUILTINS): Ditto. - -2003-06-10 Nick Clifton - - * config.gcc: Add arm-wince-pe target. - * config/arm/pe.h (MULTILIB_DEFAULTS): Define. - Add comment about default apcs26 support. - * config/arm/t-pe (MULTILIB_OPTIONS): Add an -mapcs-32 - multilib. - (MULTILIB_DIRNAMES): Add 'apcs32'. - * config/arm/t-wince-pe: New makefile fragment. - * config/arm/wince-pe.h: New file. Overrides a few definitions - in arm/pe.h - -2003-06-10 Roger Sayle - - * builtins.c (fold_builtin): Optimize cos(-x) as cos(x). - * fold-const.c (fold ): Convert -f(x) into f(-x) - when x is easily negated and f is sin, tan or atan. - (fold ): Optimize tan(x)*cos(x) and cos(x)*tan(x) as - sin(x) with flag_unsafe_math_optimizations. - (fold ): With flag_unsafe_math_optimizations fold - sin(x)/cos(x) as tan(x) and cos(x)/sin(x) as 1.0/tan(x). - -2003-06-10 Roger Sayle - - * fold-const.c (fold ): Don't fold x == x only if x - is a floating point type *and* we currently honor NaNs. - (fold ): Likewise. - -2003-06-10 Mark Mitchell - - PR c++/11131 - * tree-inline.c (inlinable_function_p): Call the language-specific - hook early. - -2003-06-09 David Taylor - - * config/rs6000/rs6000.c (rs6000_va_start, rs6000_va_arg): Skip over - the f_res field. - -2003-06-09 Nathanael Nerode - - * configure.in: Remove references to host_truncate_target. - * configure: Regenerate. - * config.gcc: Remove references to truncate_target, - host_truncate_target. - - * Makefile.in, configure.in, config/m68hc11/t-m68hc11-gas: - Replace "build_canonical" with build, "host_canonical" with host. - * configure.in: Use GCC_TOPLEV_SUBDIRS. - * aclocal.m4: Include ../config/acx.m4. - * configure: Regenerate. - -2003-06-09 David Taylor - - * config/rs6000/rs6000.c (rs6000_build_va_list): Give the two - bytes of padding in the __va_list_tag structure a name (reserved). - -2003-06-09 Jason Merrill - - * fold-const.c (operand_equal_p): Handle ADDR_EXPR and TRUTH_NOT_EXPR. - -2003-06-09 Osku Salerma - - * c-format.c (check_format_string, get_constant): New. - (handle_format_attribute, handle_format_arg_attribute, - decode_format_attr): Change to use above functions. - -2003-06-09 Richard Henderson - - * stmt.c (expand_asm_operands): Re-word warning. - -2003-06-08 Andrew Pinski - - PR target/8787 - * config/i386/djgpp.h (ASM_FILE_START): emit `.intel_syntax' - if -masm=intel. - -2003-06-09 James E Wilson - - * config/frv/cmovc.c, config/frv/cmovh.c, config/frv/cmovw.c, - config/frv/frvbegin.c, config/frv/frvend.c, config/frv/lib1funcs.asm: - Add libgcc exception. - -2003-06-09 David Edelsohn - Ayal Zaks - - * config/rs6000/rs6000.md (define_attr "type"): Add insert_word. - (insvsi*): Add insert_word attribute. - * config/rs6000/rs6000.c (rs6000_variable_issue): Add TYPE_INSERT_WORD. - * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, - power4.md,rios1.md,rios2.md,rs64.md}: Add insert_word. - -2003-06-09 Kazu Hirata - - * fold-const.c (fold): Fix a comment typo. - -2003-06-09 Nathan Sidwell - - * tree-inline.c (expand_call_inline): DECL_SOURCE_LINE_FIRST is - removed. - -2003-06-09 J"orn Rennecke - - * sh.c (gen_block_redirect): Use locators. - -2003-06-09 Richard Earnshaw - - * arm.h (THUMB_PRINT_OPERAND_ADDRESS): Use %wd in format and remove - cast to int. - -2003-06-09 Richard Sandiford - - * configure.in: Assume gas 2.14 and above can handle MIPS relocation - operators. - * configure: Regenerated. - -2003-06-09 Richard Sandiford - Alexandre Oliva - - * config/mips/mips.h (GLOBAL_POINTER_REGNUM): New macro. - (PIC_OFFSET_TABLE_REGNUM): Look at pic_offset_table_rtx after reload. - (STARTING_FRAME_OFFSET): Don't allocate a cprestore slot for - n32/64 PIC. - (MUST_SAVE_REGISTERS): Delete. - * config/mips/mips.c (mips_frame_info): Remove extra_size field. - (machine_function): Add global_pointer field. - (mips_classify_constant): Check for (const $gp) using pointer equality - with pic_offset_table_rtx. - (mips_classify_constant): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO. - (mips_restore_gp): Use current_function_outgoing_args_size. - (print_operand): Use PIC_OFFSET_TABLE_REGNUM instead of - GP_REG_FIRST + 28. Handle relocation strings that have - more than one '('. - (mips_reloc_string): Handle RELOC_LOADGP_HI and RELOC_LOADGP_LO. - (mips_global_pointer): New function. - (mips_save_reg_p): New function, mostly split out from... - (compute_frame_size): ...here. Remove handling of extra_size. - Reclaim args_size if no variables depend on it. Don't treat gp - as a special case: handle it in the main GPR loop. - (mips_initial_elimination_offset): Fix comment. - (save_restore_insns): Save every register in the GPR mask, - removing distinction between mask and real_mask. - (mips_output_function_prologue): Update .frame psuedo-op after - the removal of extra_size. Move the SVR4 PIC stack allocation - and cprestore instructions to mips_expand_prologue. - (mips_gp_insn): New function. - (mips_expand_prologue): Set REGNO (pic_offset_table_rtx) to - the chosen global pointer. Handle SVR4 PIC stack allocation - in the same way as other ABIs. Adjust varargs code accordingly. - Emit a cprestore insn after allocating the stack. Use mips_gp_insn - to emit the loadgp sequence. Follow it with a loadgp_blockage - if not using explicit relocs. - (mips_output_function_epilogue): Reinstate the default gp register. - (mips16_gp_pseudo_reg): Use pic_offset_table_rtx. - (mips16_optimize_gp): Likewise. - * config/mips/mips.md (UNSPEC_LOADGP): Remove. - (UNSPEC_SETJMP, UNSPEC_LONGJMP): Remove. - (UNSPEC_CPRESTORE, RELOC_LOADGP_HI, RELOC_LOADGP_LO): New. - (loadgp): Remove. - (loadgp_blockage, cprestore): New instructions. - (builtin_setjmp_setup): Implement using emit_move_insn. Use - pic_offset_table_rtx. - (builtin_setjmp_setup_32, builtin_setjmp_setup_64): Remove. - (builtin_longjmp): Use gen_raw_REG to force use of $28. - -2003-06-09 Richard Sandiford - - * config/mips/mips-protos.h (mips_output_division): Declare. - * config/mips/mips.h (MASK_CHECK_RANGE_DIV): Remove. - (MASK_BRANCHLIKELY): Use MASK_CHECK_RANGE_DIV's old number. - (TARGET_NO_CHECK_ZERO_DIV, TARGET_CHECK_RANGE_DIV): Remove. - (TARGET_CHECK_ZERO_DIV): New macro. - (TARGET_SWITCHES): Remove -mcheck-range-div & -mno-check-range-div. - * config/mips/mips.c (mips_output_division): New function. - * config/mips/mips.md (length): Take TARGET_CHECK_ZERO_DIV into - account when calculating the default length of a division. - (divmodsi4, divmoddi4, udivmodsi4, udivmoddi4): Turn into define_insns. - Enable regardless of optimization level. Use mips_output_division. - (divmodsi4_internal, divmoddi4_internal, udivmodsi4_internal, - udivmoddi4_internal, div_trap, div_trap_normal, div_trap_mips16, - divsi3, divsi3_internal, divdi3, divdi3_internal, modsi3, - modsi3_internal, moddi3, moddi3_internal, udivsi3, udivsi3_internal, - udivdi3, udivdi3_internal, umodsi3, umodsi3_internal, umoddi3, - umoddi3_internal): Remove. - -2003-06-09 Richard Sandiford - - * config/mips/mips.c (mips_reg_names): Change hilo entry to "". - (mips_sw_reg_names): Likewise. - (mips_regno_to_class): Change hilo entry to NO_REGS. - (hilo_operand): Use MD_REG_P. - (extend_operator): New predicate. - (override_options): Remove 'a' constraint. - (mips_secondary_reload_class): Remove hilo handling. Also remove - handling of (plus sp reg) reloads for mips16. - (mips_register_move_cost): Remove hilo handling. - * config/mips/mips.h (FIXED_REGISTERS): Make hilo entry fixed. - (MD_REG_LAST): Remove hilo from range. - (HILO_REGNUM): Delete. - (reg_class): Remove HILO_REG and HILO_AND_GR_REGS. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Update accordingly. - (PREDICATE_CODES): Add entry for extend_operator. - (DEBUG_REGISTER_NAMES): Change hilo entry to "". - * config/mips/mips.md: Remove hilo clobbers wherever they occur. - Remove constraints from multiplication define_expands. Remove - clobbers from "decorative" define_expand patterns. - (UNSPEC_HILO_DELAY): Delete. - (*mul_acc_si, *mul_sub_si): Add early-clobber to operand 6. - (mulsidi3, umulsidi3): Change pattern to match the TARGET_64BIT case. - Adjust C code to just emit insns for !TARGET_64BIT. - (mulsidi3_internal): Rename to mulsidi3_32bit. - (mulsidi3_64bit): Use a "d" constraint for the destination. - Use extend_operator so that the pattern can handle umulsidi3 as well. - Split the instruction after reload. - (*mulsidi3_64bit_parts): New pattern, generated by mulsidi3_64bit. - (umulsidi3_internal): Rename to umulsidi3_32bit. - (umulsidi3_64bit): Remove. - (*smsac_di, *umsac_di): Line-wrap fixes. - (udivsi3_internal): Don't allow operand 2 to be constant. - (udivdi3_internal, umodsi3_internal, umoddi3_internal): Likewise. - (movdi_internal2, movsi_internal): Remove hilo alternatives. - (reload_in[sd]i, reload_out[sd]i, hilo_delay): Remove. - -2003-06-09 Richard Sandiford - - PR target/10913 - * config/mips/mips.h (TARGET_FILE_SWITCHING, NO_DBX_FUNCTION_END, - PUT_SDB_SCL, PUT_SDB_INT_VAL, PUT_SDB_VAL, PUT_SDB_ENDEF, - PUT_SDB_TYPE, PUT_SDB_SIZE, PUT_SDB_DIM, PUT_SDB_START_DIM, - PUT_SDB_NEXT_DIM, PUT_SDB_LAST_DIM, PUT_SDB_TAG, PUT_SDB_SRC_FILE, - SDB_GENERATE_FAKE, TEXT_SECTION): Delete. - (PUT_SDB_DEF, PUT_SDB_PLAIN_DEF, PUT_SDB_BLOCK_START, - PUT_SDB_BLOCK_END, PUT_SDB_FUNCTION_END): Replace use of - asm_out_text_file with asm_out_file. - * config/mips/iris5gas.h (PUT_SDB_SIZE, PUT_SDB_TYPE): Likewise. - * config/mips/elf.h (TEXT_SECTION): Undefine. - * config/mips/elf64.h (TEXT_SECION): Undefine. - * config/mips/openbsd.h (TEXT_SECION): Undefine. - * config/mips/mips.c (asm_out_text_file, asm_out_data_file): Delete. - (override_options): Disable small-data optimizations unless using - gas or explicit relocations. - (mips_asm_file_start, mips_asm_file_end, mips_output_function_epilogue, - iris6_asm_named_section, iris6_asm_file_start): Remove code for - handling TARGET_FILE_SWITCHING. - (copy_file_data): Move into TARGET_IRIX6 block. - -2003-06-08 Richard Henderson - - * expr.h (EXPAND_MEMORY): New. - * expr.c (expand_expr): Check it. - * stmt.c (expand_asm_operands): Provide it when the constraint - requires a memory. Warn for memory input constraints without - a memory operand. - -2003-06-08 Kaveh R. Ghazi - - * varasm.c: Don't include c-tree.h. - -2003-06-08 Andreas Jaeger - - * predict.h: Convert to ISO C90 prototypes. - * predict.c: Likewise. - * tree-dump.h: Likewise. - * tree-dump.c: Likewise. - * diagnostic.h: Likewise. - * diagnostic.c: Likewise. - * combine.c: Likewise. - - * rtl.h: Convert prototypes of combine.c to ISO C90. - -Sun Jun 8 21:27:41 CEST 2003 Jan Hubicka - - * cfglayout.c (insn_scope): New static function - (block_locators_*, line_locators*, file_locators*): New static varrays. - (scope_to_insns_initialize): Use them. - (insn_line, insn_file): New functions. - (scope_to_insns_finalize): Use insn_scope. - (prologue_locator, epilogue_locator): New global variables. - * emit-rt.c (try_split, make_insn_raw, make_jump_insn_raw, - make_call_insn_raw, emit_copy_of_insn_after): Use locators. - (emit_insn_after_scope, emit_insn_before_scope - emit_jump_insn_after_scope, emit_jump_insn_before_scope - emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... - (emit_insn_after_setloc, emit_insn_before_setloc - emit_jump_insn_after_setloc, emit_jump_insn_before_setloc - emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; - use locators. - * final.c (notice_source_line): Use locators. - (final_start_function): Set initial source file and line. - (final_scan_insn): Use locators. - * ifcvt.c (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_process_if_block, find_cond_trap): Likewise. - * integrate.c (copy_insn_list): Likewise. - * jump.c (duplicate_loop_exit_test): LIkewise. - * print-rtl.c (print_rtx): Print locators. - * recog.c (peephole2_optimize): Likewise. - * rtl.h (INSN_SCOPE): Remove. - (emit_insn_after_scope, emit_insn_before_scope - emit_jump_insn_after_scope, emit_jump_insn_before_scope - emit_call_insn_after_scope, emit_call_insn_before_scope): Rename to... - (emit_insn_after_setloc, emit_insn_before_setloc - emit_jump_insn_after_setloc, emit_jump_insn_before_setloc - emit_call_insn_after_setloc, emit_call_insn_before_setloc): ... these; - (insn_file, insn_line, prologue_locator, epilogue_locator): Declare. - * unroll.c (copy_loop_body): Use locators. - * function.c (set_insn_locators): New function. - (thread_prologue_and_epilogue_insns): Set the locators accordingly. - -2003-06-08 Kazu Hirata - - * config/h8300/h8300.h (LONG_LONG_TYPE_SIZE): Set to 64. - * config/h8300/t-h8300 (LIB1ASMFUNCS): Remove _floatdisf - _fixsfdi _fixunssfdi. - (LIB2FUNCS_EXTRA): Add entries for clzhi2, ctzhi2, parityhi2, - popcounthi2. - (TARGET_LIBGCC2_CFLAGS): Remove -DDI=SI. - * config/h8300/clzhi2.c: New. - * config/h8300/ctzhi2.c: Likewise. - * config/h8300/parityhi2.c: Likewise. - * config/h8300/popcounthi2.c: Likewise. - -Sun Jun 8 15:52:17 CEST 2003 Jan Hubicka - - * i386.md (subsi_3_zext, sse2_nandv2di3): Fix predicates. - * i386.c (k8_avoid_jump_misspredicts): Fix debug output. - - * cfg.c (verify_flow_info): Move IL independent checks from cfgrtl here. - (dump_bb): New based on old dump_bb in cfgrtl.c - (debug_bb, debug_bb_n): Move the functions from cfgrtl.c here. - * cfghooks.h (cfgh_verify_flow_info): Return status. - * cfglayout.c (cfg_layout_finalize): Verify CFG correctness. - * cfgrtl.c (debug_bb, debug_bb_n): Move to cfg.c - (dump_bb): Remove generic parts. - (rtl_verify_flow_info_1): Break out from rtl_verify_flow_info. - (rtl_verify_flow_info): Only check things dependeing on linearized RTL. - -2003-06-08 Neil Booth - - * Makefile.in: Rename options.c and options.h to c-options.c and - c-options.h. - (OBJS): Remove options.o. - * c-opts.c: Don'tInclude c-options.h instead of options.h. - * opts.c: Don't include options.h. - (find_opt): Can't use enum opt_code or N_OPTS. - * opts.h (struct cl_option, cl_options, cl_options_count): Move from... - * opts.sh: ... here. - -2003-06-07 Eric Botcazou - Ulrich Weigand - - PR pch/9830 - * ggc-common.c (HAVE_MMAP_FILE): Include sys/types.h - if HAVE_MINCORE is defined. - (MAP_FAILED): Define if not defined. - (gt_pch_save): Test against MAP_FAILED. - (gt_pch_restore): If HAVE_MINCORE, use MAP_FIXED to force - the mapping address to the preferred base after checking it - is possible to do so. Test against MAP_FAILED. - * configure.in: Test for the presence of mincore in libc. - * config.in: Regenerate. - * configure: Regenerate. - -2003-06-07 Richard Henderson - - * config/alpha/alpha.c (alpha_setup_incoming_varargs): Fix - conditional compilation guard. - -2003-06-08 Kazu Hirata - - * optabs.c (expand_abs): Set result_unsignedp to 1 if - flag_trav is zero. - -2003-06-07 Richard Henderson - - * c-cppbuiltin.c (c_cpp_builtins): Define __EXCEPTIONS for C also. - -2003-06-07 Richard Henderson - - * basic-block.h (EDGE_SIBCALL): New. - (EDGE_ALL_FLAGS): Update. - * cfg.c (dump_edge_info): Add sibcall name. - * cfgbuild.c (make_edges): Use EDGE_SIBCALL. - * cfgrtl.c (purge_dead_edges): Handle sibcalls. - -2003-06-07 Andreas Jaeger - - * mklibgcc.in (lib2funcs): Remove _exit. - * libgcc2.c: Remove L_exit. - * gbl-ctors.h: Remove declarations dependend on NEED_ATEXIT. - - * system.h: Poison NEED_ATEXIT, ON_EXIT, EXIT_BODY. - - * doc/tm.texi (Misc): Remove NEED_ATEXIT, ON_EXIT, EXIT_BODY. - - * ggc.h: Convert to ISO C90 prototypes. - * ggc-none.c: Likewise. - * ggc-common.c: Likewise. - * ggc-page.c: Likewise. - * ggc-simple.c: Likewise. - - * crtstuff.c: Remove undefined usage of INIT_SECTION_PREAMBLE. - - * system.h: Poison INIT_SECTION_PREAMBLE. - -2003-06-07 Zack Weinberg - - * config.gcc (with_cpu handling): Translate sparc64 in - $machine to --with-cpu=v9. - * config/alpha/alpha.c - (TARGET_ASM_GLOBALIZE_LABEL [TARGET_ABI_UNICOSMK]): Correct definition. - (alpha_setup_incoming_varargs): #ifdef out when TARGET_ABI_UNICOSMK. - - * target.h: New hook asm_out.file_end. - * target.h: Update to match. New hook macro TARGET_ASM_FILE_END. - * toplev.c (compile_file): Use targetm.asm_out.file_end. - * system.h: Poison ASM_FILE_END. - * varasm.c (file_end_indicate_exec_stack): New. - * output.h: Prototype it. - * doc/tm.texi: Document TARGET_ASM_FILE_END and - file_end_indicate_exec_stack. Delete references to attasm.h. - - * config/darwin.h (TARGET_ASM_FILE_END): Reset to darwin_file_end. - (ASM_FILE_END): Delete; move code... - * config/darwin.c (darwin_file_end): Here; new function. - * config/darwin-protos.h: Prototype it. - * config/alpha/alpha.c (unicosmk_asm_file_end): Make static, - rename unicosmk_file_end. - * config/arm/aof.h (ASM_FILE_END): Delete; move code... - * config/arm/arm.c (aof_file_end): ... here; new static function. - Set TARGET_ASM_FILE_END to aof_file_end if AOF_ASSEMBLER. - Make aof_dump_imports and aof_dump_pic_table static. - * config/avr/avr.c (asm_file_end): Rename avr_file_end, make static. - Set TARGET_ASM_FILE_END to avr_file_end. - * config/c4x/c4x.c (c4x_file_end): Make static. Take no arguments. - Set TARGET_ASM_FILE_END to c4x_file_end. - * config/h8300/h8300.c (asm_file_end): Rename h8300_file_end, - make static. Take no arguments. Set TARGET_ASM_FILE_END to - h8300_file_end. - * config/i370/i370.h (ASM_FILE_END): Delete; move code... - * config/i370/i370.c (i370_file_end): ... here; new static function. - Set TARGET_ASM_FILE_END to i370_file_end. - * config/i386/i386.c (ix86_asm_file_end): Rename ix86_file_end. - Take no arguments. Call file_end_indicate_exec_stack if - NEED_INDICATE_EXEC_STACK; don't use SUBTARGET_FILE_END. - * config/i386/i386.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END. - Define NEED_INDICATE_EXEC_STACK to 0. - * config/i386/linux.h, config/i386/linux64.h: Redefine - NEED_INDICATE_EXEC_STACK to 1 instead of setting SUBTARGET_FILE_END. - * config/i386/winnt.c (i386_pe_asm_file_end): Rename to - i386_pe_file_end. Take no arguments. Use ix86_file_end. - * config/ia64/ia64.c (ia64_hpux_asm_file_end): Rename to - ia64_hpux_file_end, make static. Take no arguments. - * config/ip2k/ip2k.c (asm_file_start, asm_file_end, - commands_in_prologues, commands_in_epilogues): Delete. - (function_epilogue): Update to match. - * config/mips/mips.c (mips_asm_file_end): Rename mips_file_end, - make static. Take no arguments. - (iris6_asm_file_end): Rename iris6_file_end, make static, use - mips_file_end, take no arguments. - Set TARGET_ASM_FILE_END to iris6_file_end or mips_file_end as - appropriate. - * config/mmix/mmix.c (mmix_asm_file_end): Rename mmix_file_end, - make static, take no arguments. Set TARGET_ASM_FILE_END to - mmix_file_end. - * config/pa/pa.c (output_deferred_plabels): Make static, take - no arguments. Set TARGET_ASM_FILE_END to output_deferred_plabels. - * config/rs6000/xcoff.h (TARGET_ASM_FILE_END): Set it. - (ASM_FILE_END): Delete; move code... - * config/rs6000/rs6000.c (rs6000_xcoff_file_end): ... here; - new static function. - - * config/avr/avr.h, config/cris/cris.h, config/h8300/h8300.h - * config/mmix/mmix.h, config/mips/iris6.h, config/mips/mips.h: - Don't set ASM_FILE_END. - * config/alpha/linux-elf.h, config/m68k/linux.h, config/rs6000/linux.h - * config/rs6000/linux64.h, config/s390/linux.h, config/sparc/linux.h - * config/sparc/linux64.h: Set TARGET_ASM_FILE_END to - file_end_indicate_exec_stack; don't set ASM_FILE_END. - * config/alpha/unicosmk.h, config/i386/cygming.h - * config/ia64/hpux.h: Set TARGET_ASM_FILE_END, not ASM_FILE_END. - * config/arm/arm-protos.h, config/alpha/alpha-protos.h - * config/avr/avr-protos.h, config/c4x/c4x-protos.h - * config/h8300/h8300-protos.h, config/ia64/ia64-protos.h - * config/ip2k/ip2k-protos.h, config/mips/mips-protos.h - * config/mmix/mmix-protos.h, config/pa/pa-protos.h: Update. - -Sat Jun 7 18:32:13 CEST 2003 Jan Hubicka - - * i386.h (OPTION_DEFAULT_SPECS): Avoid -mcpu default when -march is - specified. - -Sat Jun 7 15:20:01 CEST 2003 Jan Hubicka - - * Makefile.in (stageprofile_build): Kill redundant target. - * i386.c (mdep_reorg): Don't pad jumps for Athlon. - -2003-06-07 Andreas Jaeger - - * doc/tm.texi (Costs): Remove DONT_REDUCE_ADDR documentation. - - * config/avr/avr.h: Remove comment regarding DONT_REDUCE_ADDR. - * config/dsp16xx/dsp16xx.h: Likewise. - * config/i386/i386.h: Likewise. - * config/ip2k/ip2k.h: Likewise. - -2003-06-07 Neil Booth - - * Makefile.in (OJBS, c-opts.o): Update. - (c-options.c, c-options.h): Rename options.h and options.c. - (options.h): Rename options_.h. - (opts.o): New. - * c-common.h (c_common_handle_option): Replace c_common_decode_option. - (c_common_init_options): Update prototype. - * c-lang.c (c_init_options): Update prototype. - (LANG_HOOKS_HANDLE_OPTION): Override. - (LANG_HOOKS_DECODE_OPTION): Drop. - * c-opts.c: Include opts.h and options.h instead of c-options.h - and c-options.c. - (lang_flags): Move to file scope. - (find_opt, c_common_decode_option): Remove. - (CL_C, CL_OBJC, CL_CXX, CL_OBJCXX, CL_JOINED, CL_SEPARATE, - CL_REJECT_NEGATIVE): Move to opts.h. - (missing_arg): Update prototype. - (c_common_init_options): Update for new prototype. - (c_common_handle_options): Filenames are passed as N_OPTS. - * hooks.c (hook_int_void_0): New. - * hooks.h (hook_int_void_0): New. - * langhooks-def.h (LANG_HOOKS_INIT_OPTIONS): New default. - (LANG_HOOKS_HANDLE_OPTION): Default to NULL for now. - (LANG_HOOKS_INITIALIZER): Update. - * langhooks.h (init_options): Update. - (handle_option): New. - * opts.c, opts.h: New files. - * opts.sh: Update c file to include opts.h and options.h. - * toplev.c: Include opts.h; change options.h to options_.h. - (parse_options_and_default_flags): Get lang_mask, use - handle_option for language-specific handling. - * objc/objc-lang.c (LANG_HOOKS_DECODE_OPTON): Drop. - (LANG_HOOKS_HANDLE_OPTION): Override. - (objc_init_options): Update. - -2003-06-07 Magnus Kreth - Thibaud Gaillard - - PR other/7031 - * Makefile.in (install-common): Remove GCOV_INSTALL_NAME instead of - gcov. - -2003-06-07 Kelley Cook - - * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Remove quotes in - section names. - * configure: Regenerate. - -2003-06-07 Alan Modra - - * config/rs6000/linux64.h (CRT_CALL_STATIC_FUNCTION): Define. - -2003-06-06 James E Wilson - - PR inline-asm/10890 - * reload1.c (merge_assigned_reloads): Abort only if two reloads have - different in fields. - -2003-06-06 Nathanael Nerode - - * configure.in: Make $(target_subdir) correspond with top level usage. - * Makefile.in: Likewise. - * configure: Regenerate. - -2003-06-06 John David Anglin - - * pa.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_COMMON, - ASM_OUTPUT_ALIGNED_LOCAL): Cast `SIZE' and `ALIGNED' parameters to - unsigned HOST_WIDE_INT. - * pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMOM, ASM_OUTPUT_ALIGNED_LOCAL): - Likewise. - * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON, ASM_OUTPUT_ALIGNED_LOCAL): - Likewise. - -2003-06-06 Kaveh R. Ghazi - - * doc/install.texi (Prerequisites): New section documenting - tools and packages necessary prior to building and/or - modifying GCC. - * doc/install.texi2html: Also generate prerequisites.html. - -2003-06-06 Richard Earnshaw - - PR target/11052 - * ifcvt.c (noce_process_if_block): Fail if the destination has - side-effects. - -2003-06-06 Jason Merrill - - * stmt.c (resolve_asm_operand_names): Rename from - resolve_operand_names. No longer static. Avoid needless copying. - Don't build array of constraints. - (expand_asm_operands): Build it here. - * tree.h: Declare resolve_asm_operand_names. - - * stmt.c (expand_decl): Put artificial vars into registers even - when not optimizing, and don't mark the regs as user vars. - -2003-06-06 J"orn Rennecke - - * sh.h (FUNCTION_ARG_1): Consistently use NEW_MODE for the mode - of the generated register. - -2003-06-06 Daniel Jacobowitz - - * config.gcc: Add a missing sparc64 case. - -2003-06-06 Jakub Jelinek - - * mklibgcc.in: Propagate .note.GNU-stack section if needed into - the .hidden assembly stubs. - -2003-06-06 H.J. Lu - - * config.gcc (extra_headers): Add emmintrin.h for i[34567]86-*-* - and x86_64-*-*. - - * config/i386/mmintrin.h: Update version and add alternate - intrinsic names. - * config/i386/xmmintrin.h: Likewise. - - * config/i386/xmmintrin.h: Include . Move SSE2 - intrinsics to ... - * config/i386/emmintrin.h: Here. New file. - -2003-06-06 Roger Sayle - - * fold-const.c (fold ): Re-fold the result of folding - fabs(-x) into fabs(x). Use tree_expr_nonnegative_p to determine - when the ABS_EXPR (fabs or abs) is not required. - (tree_expr_nonnegative_p): Move the logic that sqrt and exp are - always nonnegative from fold to here. Additionally, cabs and fabs - are always non-negative, and pow and atan are non-negative if - their first argument is non-negative. - - * builtins.c (fold_builtin_cabs): New function to fold cabs{,f,l}. - Evaluate cabs of a constant at compile-time. Convert cabs of a - non-complex argument into fabs. Convert cabs(z) into - sqrt(z.r*z.r + z.i*z.i) at the tree-level with -ffast-math or - -funsafe-math-optimizations or -ffast-math. - (fold_builtin): Convert BUILT_IN_FABS{,F,L} into an ABS_EXPR. - Fold BUILT_IN_CABS{,F,L} using fold_builtin_cabs. - -Thu Jun 5 20:51:09 CEST 2003 Jan Hubicka - - * sourcebuild.texi (Front End Directory): Document new hooks. - -Fri Jun 6 11:02:35 CEST 2003 Jan Hubicka - - * function.c (FLOOR_ROUND, CEIL_ROUND): Fix. - * i386.md (gen_pro_epilogue_adjust_stack): Deal with gigantic - stack frames. - (pro_epilogue_adjust_stack_rex64_2): New pattern - -Fri Jun 6 11:03:14 CEST 2003 Jan Hubicka - Pop Sebastian - Zdenek Dvorak - - * cfghooks.h, cfghooks.c: New files. - * Makefile.in (BASIC_BLOCK_H): Depends on cfghooks.h. - (OBJS): Add cfghooks.o. - (cfghooks.o): New rule. - * basic-block.h (split_edge): Rename to rtl_split_edge. - (verify_flow_info): Rename to rtl_verify_flow_info. - (cfghooks.h): Included here. - * cfgrtl.c (split_edge): Renamed rtl_split_edge. - (verify_flow_info): Renamed rtl_verify_flow_info. - * toplev.c (rest_of_compilation): Call rtl_register_cfg_hooks. - - * basic-block.h (split_block, split_edge, flow_delete_block, - redirect_edge_and_branch, redirect_edge_and_branch_force): Delete. - (flow_delete_block_noexpunge): Return void. - * cfg.c (verify_flow_info): New function. - * cfgcleanup.c (try_simplify_condjump, outgoing_edges_match, - try_crossjump_to_edge, try_optimize_cfg, delete_unreachable_blocks): - Use delete_block. - * cfglayout.c (function_footer): Rename to... - (cfg_layout_function_footer): ... this variable - (unlink_insn_chain): Make global. - (fixup_reorder_chain, record_effective_endpoints): Update. - (cleanup_unconditional_jumps): Use delete_block. - (cfg_layout_redirect_edge, cfg_layout_split_block): Move to cfgrtl.c - (cfg_layout_duplicate_bb): Use redirect_edge_and_branch_force. - (cfg_layout_initialize, cfg_layout_finalize): Update hooks. - * cfglayout.h (cfg_layout_redirect_edge, cfg_layout_split_block): Delete. - (cfg_layout_function_footer): Declare. - * cfgloopmanip (split_loop_bb): Do not update RBI. - (remove_bbs): Use delete_block. - (loop_reidrect_edge, loop_delete_branch_edge): Use - redirect_edge_and_branch. - (create_preheader): Use split_block and redirect_edge_and_branch_force. - (split_edge_with): Likewise. - * cfgrtl.c: Include cfglayout.h - (split_edge): Rename to ... - (rtl_split_edge) ... this one; make local. - (redirect_edge_and_branch): Rename to ... - (rtl_redirect_edge_and_branch) ... this one; make local. - (redirect_edge_and_branch_force): Rename to ... - (rtl_redirect_edge_and_branch_force) ... this one; make local. - (cfg_layout_delete_block, cfg_layout_delete_edge_and_branch_force): New. - (cfg_layout_redirect_edge_and_branch, cfg_layout_split_block): Move here from - cfglayout.c; update to directly call RTL counterparts. - (rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks): New functions. - * ifcvt.c (find_cond_trap): Use delete_block. - (find_if_case_1): Use delete_block. - (find_if_case_2): Use delete_block. - * rtl.h (unlink_insn_chain): Declare. - * toplev.c (rtl_reigster_cfg_hooks): New. - -2003-06-05 Richard Henderson - - * recog.c (peephole2_optimize): Revert last change. - -2003-06-05 Richard Henderson - - * recog.c (peephole2_optimize): Don't split block unless - can_throw_internal. - -2003-06-06 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Correct the syntax of rotxl. - * config/h8300/h8300.md (*addsi3_lshiftrt_16_zexthi): Likewise. - -2003-06-05 Kelley Cook - - PR optimization/4490 - * config/i386/i386.md: Don't use XFMode if TARGET_128BIT_LONG_DOUBLE. - * doc/invoke.texi (m96bit-long-double, m128bit-long-double): Reword - documentation to accurately reflect what these options do. - -2003-06-06 Kaz Kojima - - * config/sh/linux.h (STARTFILE_SPEC): Handle -pie. Simplify. - (ENDFILE_SPEC): Redefine to handle -pie. - -2003-06-05 Phil Edwards - - * Makefile.in (qmtest-g++): Use target_alias, not target. - -2003-06-05 Per Bothner - - * toplev.c (push_srcloc): Simplify behavior to save current location - and set current location to parameters. - (pop_srcloc): Simplify semantics. - (lang_dependent_init): Remove now-useless initial push_srcloc. - -2003-05-06 Richard Henderson - - * dwarf2out.c (loc_descriptor_from_tree): Return 0 for - language-specific tree codes. - -2003-06-05 John David Anglin - - PR middle-end/9986 - * pa.c (pa_init_builtins): Also set implicit_built_in_decls for - BUILT_IN_FPUTC_UNLOCKED to NULL_TREE. - -Thu Jun 5 18:32:46 CEST 2003 Jan Hubicka - - * install.tex: Document profiledbootstrap. - - * configure.in: Add support for lang.stageprofile and - lang.stagefeedback - * Makefile.in (clean, distclean): Kill new stages - (POSTSTAGE1_FLAGS_TO_PASS): Break from ... - (STAGE2_FLAGS_TO_PASS): ... this one. - (STAGEPROFILE_FLAGS_TO_PASS, STAGEFEEDBACK_FLAGS_TO_PASS): New. - (stage[2-4]_build): Add POSTSTAGE1_FLAGS_TO_PASS. - (stageprofile_build, stageprofile_copy, stagefeedback_build, - stagefeedback_copy): New. - (restageprofile, restagefeedback, stageprofile-start, - stageprofile, stagefeedback-start): Likewise. - -2003-06-05 David Miller - Richard Henderson - - * optabs.c (HAVE_conditional_trap): Provide default. - (gen_conditional_trap): Likewise. - (init_optabs): Merge init_traps. - (gen_cond_trap): Use prepare_operand. Restructure and avoid ifdef. - -Thu Jun 5 14:59:44 CEST 2003 Jan Hubicka - - * combine.c (simplify_if_then_else): (IF_THEN_ELSE (NE REG 0) (0) (8)) - is REG for nonzero_bits (REG) == 8. - -Thu Jun 5 13:23:51 CEST 2003 Jan Hubicka - - * i386.md (align): Fix warning; clarify what to do when no p2align - is available. - -2003-06-05 Nick Clifton - - * config.gcc (m32r-elf): Revert previous delta. - * config/m32r/t-m32r (crtinit.o): Fix rule to work with - multilibs. Remove m32rx specific version. - (crtfini.o): Likewise. - (EXTRA_MULTILIB_PARTS): Define. - -2003-06-05 Eric Botcazou - - * doc/md.texi (Machine Constraints): Correct the meaning of - constraints related to floating-point registers on SPARC. - -2003-06-05 Eric Botcazou - Paolo Bonzini - - PR target/10663 - * configure.in (HAVE_LD_RO_RW_SECTION_MIXING): Redirect - assembler and linker output to /dev/null. - Use a 'sed' construct instead of 'grep -A1'. - * configure: Regenerate. - -2003-06-04 Richard Henderson - - * config/i386/i386.c (struct ix86_address): Add seg. - (no_seg_address_operand): New. - (ix86_decompose_address): Restructure PLUS loop. Accept one - UNSPEC_TP if TARGET_TLS_DIRECT_SEG_REFS. Adjust ESP swap test - to test for a regnum, not stack_pointer_rtx. - (ix86_address_cost): Reduce cost if non-default segment. - (legitimate_address_p): Remove UNSPEC_TP check. - (get_thread_pointer): Add to_reg argument. Don't represent - the thread pointer as a memory load. - (legitimize_tls_address): Split out of ... - (legitimize_address): ... here. - (print_operand_address): Handle parts.seg. - (ix86_expand_move): Use legitimize_tls_address. - (ix86_rtx_costs): Handle UNSPEC_TP. - * config/i386/i386.h (MASK_TLS_DIRECT_SEG_REFS): New. - (TARGET_TLS_DIRECT_SEG_REFS): New. - (TARGET_SWITCHES): Add tls-direct-seg-refs. - (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): Default. - (PREDICATE_CODES): Add no_seg_address_operand. - * config/i386/i386.md (lea_1): Use it. - (lea_1_rex64, lea_1_zext, lea_2_rex64): Likewise. - (load_tp_si, add_tp_si, load_tp_di, add_tp_di): New. - * config/i386/linux.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New. - * config/i386/linux64.h (TARGET_TLS_DIRECT_SEG_REFS_DEFAULT): New. - * doc/invoke.texi: Add -mtls-direct-seg-refs. - -2003-06-04 Mark Mitchell - - * Makefile.in (QMTESTRUNFLAGS): Set for DejaGNU emulation. - (QMTEST_GPP_TESTS): Use "g++" by default. - (stamp-qmtest): Tweak database creation. - (QMTEST_DIR/context): Update context file format. - (qmtest-g++): Tweak command-line. - -2003-06-04 Kaveh R. Ghazi - - * Makefile.in (varasm.o): Don't set -Wno-error. - * rs6000/t-rs6000 (varasm.o, out_object_file): Don't clear. - -2003-06-04 Zack Weinberg - - PR bootstrap/3163 - * aclocal.m4 (AC_FUNC_MMAP_ANYWHERE, AC_FUNC_MMAP_FILE): Delete. - (gcc_AC_FUNC_MMAP_BLACKLIST): New. - * configure.in: Check for sys/mman.h and mmap in AC_CHECK_HEADERS - and AC_CHECK_FUNCS lists, respectively. Use - gcc_AC_FUNC_MMAP_BLACKLIST, not AC_FUNC_MMAP_ANYWHERE nor - AC_FUNC_MMAP_FILE. - * configure, config.in: Regenerate. - -2003-06-04 Kaveh R. Ghazi - - * arm/aout.h (ASM_OUTPUT_SKIP): Fix cast for format specifier warning. - * arm.c (arm_output_function_prologue): Fix format specifiers. - * arm.h (ARM_PRINT_OPERAND_ADDRESS): Likewise. - * m68k.c (m68k_output_mi_thunk): Use more readable %wd instead of - HOST_WIDE_INT_PRINT_DEC. - * vax.c (vax_output_function_prologue): Fix format specifiers. - -2003-06-04 Richard Henderson - - * cse.c (find_best_addr): Consider binary operators even if second - argument is not CONST_INT. - -2003-06-04 Zdenek Dvorak - - * doc/invoke.texi (max-cse-path-length): Document. - -2003-06-04 Richard Henderson - - * config/i386/i386.md (align): Use ASM_OUTPUT_*ALIGN macros. - -2003-06-04 Andrew Pinski - - * config/rs6000/darwin.h (RS6000_OUTPUT_BASENAME): - Remove semi-colon at the end of the expression. - -2003-06-04 Kaveh R. Ghazi - - * i370.c (mvs_function_name_length): Fix signed/unsigned warnings. - * i370.h (mvs_function_name_length): Likewise. - * i960.h (CONSTANT_ALIGNMENT): Likewise. - * mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * pa/pa-pro-end.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - * pa.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - * rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Delete unused - variable. - -2003-06-04 Daniel Jacobowitz - - * config.gcc: Reorganize --with-cpu logic. Set - configure_default_options according to the default CPU, --with-cpu, - --with-arch, --with-tune, --with-schedule, --with-abi, and - --with-float. Check for legal values of various options. - * configure.in: Define configure_default_options in configargs.h. - * configure: Regenerated. - * config/mips/mips.h (TARGET_DEFAULT_ARCH_P) - (TARGET_DEFAULT_FLOAT_P): New macros. - * gcc.c (do_option_spec): New function. - (struct default_spec, option_default_specs): New. - (main): Call do_option_spec. - * config/alpha/alpha.h, config/arm/arm.h, config/i386/i386.h, - config/mips/mips.h, config/pa/pa.h, config/rs6000/rs6000.h, - config/sparc/sparc.h (OPTION_DEFAULT_SPECS): Define. - - * doc/install.texi: Update --with-cpu documentation. Mention - --with-arch, --with-schedule, --with-tune, --with-abi, and - --with-float. - * doc/tm.texi (Driver): Document OPTION_DEFAULT_SPECS. - -2003-06-04 Daniel Jacobowitz - - * config.gcc: Only process --with-cpu logic in the third pass. - -2003-06-04 Daniel Jacobowitz - - * config.gcc: Reorganize --with-cpu section. Remove an - obsolete comment about the default CPU for x86-64. Fix - a typo for the ep9312. Update the list of supported PowerPC - CPUs. Support a limited set of new --with-cpu options - for i386. - -2003-06-04 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_complex_function_value): Unpack - complex numbers <= 32 bits into two registers. - -2003-06-04 Kaveh R. Ghazi - - * alpha.c (print_operand_address): Fix format specifier warnings. - * alpha/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - * alpha/vms.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - * arm/aof.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. - * arm/pe.h (ASM_OUTPUT_COMMON): Likewise. - * avr.h (ASM_OUTPUT_COMMON, ASM_GENERATE_INTERNAL_LABEL, - ASM_OUTPUT_SKIP): Likewise. - * c4x.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * dsp16xx.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * h8300.h (ASM_GENERATE_INTERNAL_LABEL, ASM_OUTPUT_COMMON): - Likewise. - * i370.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * i386/cygming.h (ASM_OUTPUT_COMMON): Likewise. - * i386/darwin.h (ASM_OUTPUT_COMMON): Likewise. - * i960.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * m68k/hp320.h (PRINT_OPERAND_ADDRESS): Likewise. - * mcore.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - * pdp11.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * ptx4.h (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - * sparc/freebsd.h (ASM_GENERATE_INTERNAL_LABEL): Likewise. - * svr3.h (ASM_OUTPUT_COMMON): Likewise. - -2003-06-04 J"orn Rennecke - - * c-decl.c (c_init_decl_processing): Clear input_file_name - while building common nodes. - * dwarf2out.c (gen_compile_unit_die, dwarf2out_finish): - Don't add working directory for strings like . - -2003-06-04 David Edelsohn - - * doc/install.texi (*-ibm-aix*): Native as and ld required - to bootstrap on AIX 5L. - -2003-06-04 Richard Henderson - - * c-common.c (handle_cleanup_attribute): New. - (c_common_attributes): Add it. - * c-decl.c (finish_decl): Honor the cleanup attribute. - * doc/extend.texi (Variable Attributes): Document it. - - * unwind-c.c: New file. - * Makefile.in (LIB2ADDEH): Add it. - * config/t-darwin, config/t-linux, config/t-linux-gnulibc1, - config/ia64/t-ia64: Likewise. - -2003-06-04 Jakub Jelinek - - * function.c (trampolines_created): New variable. - (expand_function_end): Set it when doing INITIALIZE_TRAMPOLINE. - * function.h (trampolines_created): Add. - * config/s390/linux.h (ASM_FILE_END): Define. - * config/alpha/linux-elf.h (ASM_FILE_END): Define. - * config/m68k/linux.h (ASM_FILE_END): Define. - * config/rs6000/linux.h (ASM_FILE_END): Define. - * config/rs6000/linux64.h (ASM_FILE_END): Define. - * config/rs6000/ppc-asm.h: Add .note.GNU-stack on powerpc-linux. - * config/sparc/linux.h (ASM_FILE_END): Define. - * config/sparc/linux64.h (ASM_FILE_END): Define. - * config/i386/i386.c (ix86_asm_file_end): Use SUBTARGET_FILE_END. - * config/i386/linux.h (SUBTARGET_FILE_END): Define. - * config/i386/linux64.h (SUBTARGET_FILE_END): Define. - -Wed Jun 4 18:39:33 CEST 2003 Jan Hubicka - - * i386.c (min_insn_size, k8_avoid_jump_misspredicts): New functions - (ix86_reorg): Use it. - * i386.md (align): New insn pattern. - -2003-06-04 Kaveh R. Ghazi - - * toplev.c (rest_of_type_compilation): Fix typo. - -2003-06-04 Jakub Jelinek - Alan Modra - - * config/i386/linux.h (NO_PROFILE_COUNTERS): Define to 1. - * config/i386/freebsd.h (NO_PROFILE_COUNTERS): Likewise. - * config/i386/netbsd-elf.h (NO_PROFILE_COUNTERS): Likewise. - * config/xtensa/xtensa.h (NO_PROFILE_COUTNERS): Likewise. - * config/darwin.h (NO_PROFILE_COUNTERS): Likewise. - * final.c (NO_PROFILE_COUNTERS): Define to 0 if not defined. - (profile_function): Allow NO_PROFILE_COUNTERS to be non-constant. - * config/rs6000/rs6000.c (output_profile_hook): Likewise. - - * configure.in (powerpc*-*, s390*-*): Set tls_as_opt. - Pass it to $gcc_cv_as. - * configure: Rebuilt. - - * config/rs6000/rs6000.c (rs6000_abi_name): Remove initializer. - (print_operand): Allow TARGET_AIX to be non-constant. - (rs6000_aix_emit_builtin_unwind_init, rs6000_emit_eh_toc_restore): - Define unconditionally. - (rs6000_elf_declare_function_name): New function. - * config/rs6000/rs6000.md (eh_return): Allow TARGET_AIX to be - non-constant. - * config/rs6000/linux64.h [!RS6000_BI_ARCH] (TARGET_64BIT): Define - to 1. - (DEFAULT_ARCH64_P, RS6000_BI_ARCH_P): Define. - [IN_LIBGCC2] (TARGET_64BIT): Define based on whether __powerpc64__ - is defined. - (TARGET_AIX): Define to 1 if TARGET_64BIT. - (PROCESSOR_DEFAULT): Remove. - (TARGET_RELOCATABLE, RS6000_ABI_NAME, INVALID_64BIT, - INVALID_32BIT, SUBSUBTARGET_OVERRIDE_OPTIONS): Define. - [RS6000_BI_ARCH] (OVERRIDE_OPTIONS, ASM_FILE_START): Define. - (ASM_DEFAULT_SPEC, ASM_SPEC, LINK_OS_LINUX_SPEC): Define for both - -m32 and -m64. - (MULTILIB_DEFAULTS): Define. - (SUBSUBTARGET_EXTRA_SPECS): Define. - (ASM_SPEC32, ASM_SPEC64, ASM_SPEC_COMMON): Define. - (TARGET_TOC): Define only if !RS6000_BI_ARCH. - (TARGET_NO_TOC): Remove. - [!RS6000_BI_ARCH] (TARGET_RELOCATABLE, TARGET_EABI, - TARGET_PROTOTYPE): Define to 0. - (NO_PROFILE_COUNTERS): Define to TARGET_64BIT. - (PROFILE_HOOK): Only call output_profile_hook if TARGET_64BIT. - (ADJUST_FIELD_ALIGN, ROUND_TYPE_ALIGN): Adjust to work properly - if !TARGET_64BIT. - (USER_LABEL_PREFIX): Remove. - (JUMP_TABLES_IN_TEXT_SECTION): Define to TARGET_64BIT. - (SETUP_FRAME_ADDRESSES): Only call rs6000_aix_emit_builtin_unwind_init - if TARGET_64BIT. - (TARGET_OS_CPP_BUILTINS): Handle both -m32 and -m64. - (LINK_OS_LINUX_SPEC32, LINK_OS_LINUX_SPEC64): Define. - (STARTFILE_LINUX_SPEC, ENDFILE_LINUX_SPEC): Remove. - (TOC_SECTION_ASM_OP): Define depending on TARGET_64BIT. - (MINIMAL_TOC_SECTION_ASM_OP): Likewise. - (SIZE_TYPE, PTRDIFF_TYPE, WCHAR_TYPE): Define depending on - TARGET_64BIT. - (RS6000_CALL_GLUE): Likewise. - (SAVE_FP_PREFIX, SAVE_FP_SUFFIX, RESTORE_FP_PREFIX, - RESTORE_FP_SUFFIX): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Remove. - (ASM_DECLARE_FUNCTION_SIZE, ASM_OUTPUT_SOURCE_LINE, - DBX_OUTPUT_BRAC, DBX_OUTPUT_NFUN): Only output dot before function - name if TARGET_64BIT. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY_P): Handle both TARGET_64BIT and - !TARGET_64BIT. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Remove undefs. - (ASM_PREFERRED_EH_DATA_FORMAT): Take TARGET_64BIT into account. - (DRAFT_V4_STRUCT_RET): Define. - (SIGNAL_FRAMESIZE): New enum value. - (MD_FALLBACK_FRAME_STATE_FOR): Define. - * config/rs6000/default64.h: New file. - * config/rs6000/sysv4.h (SUBTARGET_SWITCHES): Add -m32 and -m64 - options. - (SUBTARGET_OVERRIDE_OPTIONS): If rs6000_abi_name is NULL, set it - to RS6000_ABI_NAME. Only disallow mixing of -fPIC with -mcall-aixdesc - if !TARGET_64BIT. - [!RS6000_BI_ARCH] (SUBSUBTARGET_OVERRIDE_OPTIONS): Define. - (ASM_DECLARE_FUNCTION_NAME): Use rs6000_elf_declare_function_name - function. - (TARGET_OS_SYSV_CPP_BUILTINS): Define. - (TARGET_OS_CPP_BUILTINS): Use it. - (CPP_SYSV_SPEC): Remove. - (CPP_SPEC): Remove cpp_sysv. - (SUBTARGET_EXTRA_SPECS): Remove cpp_sysv. - Add SUBSUBTARGET_EXTRA_SPECS. - (SUBSUBTARGET_EXTRA_SPECS): Define. - * config/rs6000/biarch64.h: New file. - * config/rs6000/rs6000-protos.h (rs6000_elf_declare_function_name): - New prototype. - * config/rs6000/x-linux64: New file. - * config/rs6000/t-linux64: Build -m64, -m32 and -m32 -msoft-float - multilibs. - * config/rs6000/eabi-ci.asm: Protect with #ifndef __powerpc64__. - * config/rs6000/eabi-cn.asm: Likewise. - * config/rs6000/tramp.asm: Likewise. - * config/rs6000/sol-ci.asm: Likewise. - * config/rs6000/sol-cn.asm: Likewise. - * config/rs6000/linux.h (TARGET_64BIT): Define to 0. - (TARGET_OS_CPP_BUILTINS): Use TARGET_OS_SYSV_CPP_BUILTINS. - * config/rs6000/ppc-asm.h: Move __powerpc64__ section before - _CALL_AIXDESC section. - * config.gcc (powerpc64-*-linux*): Configure a bi-arch compiler, - defaulting to -m64 unless --with-cpu= is one of the 32-bit CPUs - or default32. - -2003-06-04 Daniel Jacobowitz - - * config.gcc: Revert accidentally committed ARM changes. - -2003-06-04 Roger Sayle - - * builtins.c (dconstpi, dconste): New mathematical constants. - (init_builtin_dconsts): New function to initialize dconstpi - and dconste. - (fold_builtin): Optimize exp(1.0) = e. Evaluate exp(x) at - compile time with -ffast-math when x is an integer constant. - Optimize tan(0.0) = 0.0. Optimize atan(0.0) = 0.0, - atan(1.0) = pi/4 and tan(atan(x)) = x with -ffast-math. - -2003-06-04 Roger Sayle - - * calls.c (expand_call): Avoid calling pure or const functions - when the result is ignored (or void) and none of the arguments - are volatile. Move warning diagnostic earlier in function. - -2003-06-04 Andreas Jaeger - - * system.h: Do not poison TDESC_SECTION_ASM_OP, - RDATA_SECTION_ASM_OP and SUBTARGET_PROLOGUE. - -2003-06-04 Kaveh R. Ghazi - - * final.c (asm_fprintf): Update comments, accept "-+ #0" flags, - optimize '%' case, handle %c, don't accept %p, %e, %f or %g, - handle %ll, optimize regular character case. - -2003-06-04 Zdenek Dvorak - - * Makefile.in (cse.o): Add params.h dependency. - * cse.c: Include params.h. - (PATHLENGTH): Removed. - (struct cse_basic_block_data): Make path array dynamic. - (cse_end_of_basic_block): Use PARAM_MAX_CSE_PATH_LENGTH instead - of PATHLENGTH. - (cse_main, cse_basic_block): Allocate path array. - * params.def (PARAM_MAX_CSE_PATH_LENGTH): New. - -Wed Jun 4 09:49:21 CEST 2003 Jan Hubicka - - * i386.c (ix86_reorg): Replace the jump instead of adding nop. - * i386.md (UNSPEC_REP): New constant. - (return_internal_long): New pattern. - -2003-06-04 Eric Botcazou - - PR optimization/11018 - * config/sparc/sparc.c (sparc_v8plus_shift): Use which_alternative - consistently to decide whether the scratch register is really - required. - -2003-06-04 Eric Botcazou - - PR optimization/10876 - * config/sparc/sparc.h (CONST_OK_FOR_LETTER): Add - new 'O' constraint for constant 4096. - (CONST_DOUBLE_OK_FOR_LETTER_P): Likewise. - * config/sparc/sparc.md (adddi3 expander): Canonicalize pattern. - Do not transform into MINUS insn for constant 4096. - (*adddi3_sp64 insn): Canonicalize pattern. Add new alternative - for constant 4096 as third operand. - (addsi3 expander): Remove. - (*addsi3 insn): Rename into 'addsi3'. Canonicalize pattern. Add - new alternative for constant 4096 as third operand. - (subdi3 expander): Do not transform into PLUS insn for constant 4096. - (*subdi3_sp64 insn): Add new alternative for constant 4096 as third - operand. - (subsi3 expander): Remove. - (*subsi3 insn): Rename into 'subsi3'. Add new alternative for - constant 4096 as third operand. - * doc/md.texi (Machine Constraints): Document new 'O' constraint for - the SPARC port. - -2003-06-03 Chris Demetriou - - * config/mips/t-linux64 (CRTSTUFF_T_CFLAGS_S): Define. - -2003-06-04 Andreas Jaeger - - * config/i386/uwin.h: Remove SUBTARGET_PROLOGUE. - - * config/i386/i386.c (ix86_expand_prologue): Do not use - SUBTARGET_PROLOGUE. - - * system.h: Poision SUBTARGET_PROLOGUE. - - * config/arm/arm-protos.h: Remove unused rdate_section prototype. - - * output.h: Remove TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP - dependend code. - - * system.h: Poison TDESC_SECTION_ASM_OP and RDATA_SECTION_ASM_OP. - - * system.h: Poison INSN_CACHE_DEPTH, INSN_CACHE_SIZE and - INSN_CACHE_LINE_WIDTH. - - * libgcc2.c (INSN_CACHE_PLANE_SIZE): Removed. - (__clear_cache): Remove code dependend on INSN_CACHE_DEPTH, - INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH. - - * doc/tm.texi (Trampolines): Remove INSN_CACHE_DEPTH, - INSN_CACHE_SIZE and INSN_CACHE_LINE_WIDTH. - - * dbxout.c (dbxout_type): Remove usage of DBX_OUTPUT_ENUM. - (dbxout_symbol): Remove usage of DBX_OUTPUT_CONSTANT_SYMBOL. - (dbxout_block): Remove usage of DBX_OUTPUT_CATCH. - (dbxout_block): Remove usage of DBX_LBRAC_FIRST. - (dbxout_source_file): Remove usage of DBX_OUTPUT_SOURCE_FILENAME. - (dbxout_init): Remove test for DBX_WORKING_DIRECTORY. - - * doc/tm.texi (DBX Options): Do not document DBX_LBRAC_FIRST, - DBX_OUTPUT_SOURCE_FILENAME and DBX_OUTPUT_ENUM and - DBX_WORKING_DIRECTORY. - - * system.h: Poison DBX_LBRAC_FIRST, DBX_OUTPUT_ENUM, - DBX_OUTPUT_SOURCE_FILENAME and DBX_WORKING_DIRECTORY. - - * config/frv/frv-protos.h: Remove unused const_section - declaration. - * config/vax/vax-protos.h: Likewise. - - * output.h: Remove CONST_SECTION_ASM_OP usage. - - * system.h: Poison CONST_SECTION_ASM_OP. - - * crtstuff.c (__do_global_dtors_aux): Remove usage of - CRT_GET_RFIB_TEXT. - (frame_dummy): Likewise. - * unwind-dw2-fde-glibc.c (_Unwind_IteratePhdrCallback): Likewise. - * system.h: Poison CRT_GET_RFIB_TEXT. - - * collect2.c (is_ctor_dtor): Remove CFRONT_LOSSAGE dependend code. - - * fix-header.c: Remove ADD_MISSING_EXTERN_C dependend variables. - (write_lbrac): Remove ADD_MISSING_EXTERN_C dependend code. - (recognized_function): Likewise. - (read_scan_file): Likewise. - -2003-06-03 Roger Sayle - - * optabs.c (expand_binop): Optimize complex multiplication for - the case of squaring a complex argument. - -2003-06-03 Roger Sayle - - * optabs.c (expand_binop): Attempt to reuse pseudos for duplicate - non-volatile operands of binary operations. - (prepare_cmp_insn): Likewise. - -2003-06-03 Roger Sayle - - * varasm.c (force_const_mem): Handle alignment of constants not - representable as a type in the front-end language. - -2003-06-03 Kazu Hirata - - * flow.c (initialize_uninitialized_subregs): Use - emit_move_insn instead of emitting a hardcoded move. - -2003-06-03 Richard Henderson - - * optabs.c (expand_abs_nojump): Split out from ... - (expand_abs): ... here. - * optabs.h (expand_abs_nojump): Declare. - * ifcvt.c: (noce_try_abs): Use expand_abs_nojump. - * Makefile.in (ifcvt.o): Depend on optabs.h. - -2003-06-03 Alan Modra - - * dwarf2out.c (DEBUG_STR_SECTION_FLAGS): Heed flag_merge_constants. - -2003-06-03 Jason Thorpe - - * config.gcc (default_use_cxa_atexit): New variable, defaults to no. - (*-*-netbsd[2-9]* | *-*-netbsdelf[2-9]*): Set default_use_cxa_atexit - to yes. - * configure.in: Allow default_use_cxa_atexit to determine the - value of DEFAULT_USE_CXA_ATEXIT if not explicitly enabled or - disabled. - * configure: Regenerate. - -2003-06-03 Douglas B Rupp - - * Makefile.in (TEXI_GCC_FILES): Remove vms.texi entry. - * doc/gcc.texi: Remove vms.texi section. - * doc/vms.texi: Remove obsolete file. - -2003-05-23 J"orn Rennecke - - * configure.in (inhibit_libc): Don't define when configuring - with --with-newlib --with-headers. - * configure: Regenerate. - - * t-sh: Remove LIB2FUNCS_EXTRA and embed-bb.c rules. - -2003-06-03 Rainer Orth - - * configure.in (gcc_cv_as_hidden): Disable .hidden completely on - IRIX 6 without GNU ld. - * configure: Regenerate. - -2003-06-03 Roger Sayle - - * expr.c (emit_move_insn_1): Use emit_move_insn to move the parts - of a complex number rather than invoke mov_optab directly. - -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. - -2003-06-03 Nathanael Nerode - - * config/i386/x86-64.h: Remove two target-independent comments; - replace "GNU CC" with "GCC". - -2003-06-03 Anthony Green - - * config/frv/t-frv (EXTRA_HEADERS): Remove media.h - -2003-06-03 Roger Sayle - - * builtins.def (BUILT_IN_CABS, BUILT_IN_CABSF, BUILT_IN_CABSL): - New builtins representing ISO C99's cabs, cabsf and cabsl. - * builtins.c (expand_builtin_fabs): New function. - (expand_builtin_cabs): New function. - (expand_builtin): Expand BUILT_IN_FABS{,F,L} and BUILT_IN_CABS{,F,L} - using expand_builtin_fabs and expand_builtin_cabs respectively. - - * doc/extend.texi: Document new cabs, cabsf and cabsl builtins. - -2003-06-03 Aldy Hernandez - - * function.c (assign_parms): Split complex arguments. - - * doc/tm.texi (SPLIT_COMPLEX_ARGS): Document. - - * expr.h (SPLIT_COMPLEX_ARGS): Define. - (split_complex_types): Protoize. - (split_complex_values): Protoize. - - * calls.c (expand_call): Split complex arguments on architectures - that require it. - (split_complex_values): New. - (split_complex_types): New. - - * config/rs6000/rs6000.c (rs6000_libcall_value): New. - (rs6000_function_value): Handle complex values on AIX. - (rs6000_complex_function_value): New. - - * config/rs6000/rs6000-protos.h (rs6000_libcall_value): Protoize. - - * config/rs6000/rs6000.h (LIBCALL_VALUE): Call function. - (SPLIT_COMPLEX_ARGS): New. - -2003-06-03 Jakub Jelinek - - * configure.in (HAVE_LD_PIE): Check for ld -pie. - * config.in: Rebuilt. - * configure: Rebuilt. - * toplev.c (flag_pie, flag_shlib): New variables. - (f_options): Add -fpie and -fPIE. - (parse_options_and_default_flags): Set flag_pic if -fpie/-fPIE. - Set flag_shlib if flag_pic and not -fpie/-fPIE. - * flags.h (flag_pic, flag_shlib): Add. - * varasm.c (default_binds_local_p): Use flag_shlib instead of - flag_pic. - * gcc.c (LINK_PIE_SPEC): Define. - (LINK_COMMAND_SPEC): Use LINK_PIE_SPEC. - (option_map): Add --pie -> -pie mapping. - * config/sol2.h (ASM_SPEC): Handle -fpie the same way as -fpic - and -fPIE the same way as -fPIC. - * config/openbsd.h (ASM_SPEC): Likewise. - * config/frv/frv.h (ASM_SPEC): Likewise. - * config/arm/linux-gas.h (SUBTARGET_CPP_SPEC): Likewise. - * config/arm/semi.h (ASM_SPEC): Likewise. - * config/arm/netbsd-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise. - * config/freebsd-spec.h (FBSD_CPP_SPEC): Likewise. - * config/i386/beos-elf.h (CC1_SPEC): Likewise. - * config/i386/freebsd-aout.h (ASM_SPEC): Likewise. - * config/m68k/linux.h (CPP_SPEC): Likewise. - * config/m68k/netbsd.h (ASM_SPEC): Likewise. - * config/m68k/openbsd.h (ASM_SPEC): Likewise. - * config/m68k/netbsd-elf.h (ASM_SPEC): Likewise. - * config/mips/linux.h (SUBTARGET_CPP_SPEC): Likewise. - * config/mips/openbsd.h (SUBTARGET_ASM_SPEC): Likewise. - * config/pa/pa-linux.h (CPP_SPEC): Likewise. - * config/netbsd-aout.h (ASM_SPEC): Likewise. - * config/rs6000/sysv4.h (ASM_SPEC, CPP_SYSV_SPEC): Likewise. - * config/rs6000/vxworks.h (CPP_SPEC): Likewise. - * config/sparc/linux.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise. - * config/sparc/linux64.h (CPP_SUBTARGET_SPEC, ASM_SPEC): Likewise. - * config/sparc/sparc.h (ASM_SPEC): Likewise. - * config/sparc/sp64-elf.h (ASM_SPEC): Likewise. - * config/sparc/sysv4.h (ASM_SPEC): Likewise. - * config/sparc/netbsd-elf.h (ASM_SPEC): Likewise. - * config/sparc/openbsd64.h (ASM_SPEC): Likewise. - * config/cris/linux.h (CRIS_ASM_SUBTARGET_SPEC): Likewise. - * config/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Handle -pie. - Simplify. - * config/alpha/elf.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * config/i386/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * config/ia64/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * config/rs6000/sysv4.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * config/rs6000/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * config/sparc/linux.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * config/sparc/linux64.h (STARTFILE_SPEC, ENDFILE_SPEC): Likewise. - * doc/invoke.texi: Document -pie, -fpie and -fPIE options. - -2003-06-03 Jakub Jelinek - - * builtins.c (expand_builtin_memcpy): Remove endp argument and endp - != 0 handling. Pass 0 to store_by_pieces. - (expand_builtin_mempcpy): Add endp argument. Don't call - expand_builtin_memcpy, call store_by_pieces resp. move_by_pieces - directly. If ignoring result, only do expand_call. - (expand_builtin_stpcpy): Likewise. Call expand_builtin_mempcpy - otherwise. - (expand_builtin_strncpy, expand_builtin_memset): Adjust - store_by_pices callers. - (expand_builtin): Adjust expand_builtin_memcpy and - expand_builtin_mempcpy callers. - * expr.c (can_move_by_pieces): New function. - (move_by_pieces): Add endp argument, return to resp. memory at end - or one byte earlier depending on endp. - (store_by_pieces): Likewise. - (emit_block_move): Adjust call to move_by_pieces. - (emit_push_insn): Adjust move_by_pieces caller. - * expr.h (can_move_by_pieces): New prototype. - (store_by_pieces): Adjust prototypes. - * rtl.h (move_by_pieces): Adjust prototype. - * config/mips/mips.c (expand_block_move): Adjust move_by_pieces - caller. - -2003-06-03 Ben Elliston - - * doc/md.texi (Processor pipeline description): Improve wording. - -2003-06-03 Neil Booth - - * c-opts.c (c_common_handle_option): New, pulled out of - c_common_decode_option. Substitute uses of argv. - (c_common_decode_option): Broken into two. - -2003-06-02 Roger Sayle - Zack Weinberg - - * emit-rtl.c (gen_complex_constant_part): Remove unnecessary - test of TREE_CONSTANT_POOL_ADDRESS_P. - -2003-06-02 Kaveh R. Ghazi - - * mips.c: Don't include output.h twice. - * stormy16.c: Likewise. - * xtensa.c: Likewise. - * output.h: Protect against multiple inclusion. - -2003-06-02 J"orn Rennecke - - * sh.h (OLD_ARG_MODE): New macro. - (FUNCTION_ARG_ADVANCE, FUNCTION_ARG_PASS_BY_REFERENCE): Use it. - (FUNCTION_ARG_1): Break out of: - (FUNCTION_ARG). Use OLD_ARG_MODE. - -2003-06-02 Kazuhiro Inaoka - - * gcc/config.gcc Add support multilib parts for m32rx processor. - -2003-06-02 Kaveh R. Ghazi - - * Makefile.in (c-options.c): Pass in $(AWK) to opts.sh. - (mostlyclean): Delete c-options.c and c-options.h. - -2003-06-02 Neil Booth - - * c-opts.c (CL_REJECT_NEGATIVE): New. - (c_common_decode_option): Update to use it. - * c.opt: Update documentation; use RejectNegative. - * opts.sh: Handle RejectNegative. - -2003-06-01 Zack Weinberg - - * ggc-page.c (init_ggc): Give better diagnostics on failure to - open /dev/zero. - * toplev.c (crash_signal): Reset handling for received signal - to SIG_DFL. - -2003-06-02 Ben Elliston - - * config/arm/arm.c (arm_use_dfa_pipeline_interface): Declare. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE): Define if not already. - (arm_use_dfa_pipeline_interface): Implement. - * config/arm/arm.md (arm): New automaton. - (write_buf): Remove function units; new cpu unit. - (write_blockage): Remove function units; new cpu unit. - (core): Remove function units; new cpu unit. - (r_mem_f_wbuf): New instruction reservation. - (store1_wbuf, store2_wbuf, store3_wbuf, store4_wbuf): Likewise. - (store1_ldsched, store2, store3, store4): Likewise. - (load_ldsched, load_ldsched_xscale, load_or_store): Likewise. - (mult, mult_ldsched, mult_ldsched_strongarm): Likewise. - (multi_cycle, single_cycle): Likewise. - * config/arm/fpa.md (armfp): New automaton. - (fpa): Remove function units; new cpu unit. - (fpa_mem): Remove function unit; new cpu unit. - (fdivx, fdivd, fdivs, fmul, ffmul, farith, ffarith): New reservations. - (r_2_f, f_2_r, f_load, f_store, r_mem_f, f_mem_r): Likewise. - -2003-06-01 Kaveh R. Ghazi - - * builtin-attrs.def (ATTR_ASM_FPRINTF): New. - * c-format.c (enum format_type): Add asm_fprintf_format_type. - (NOARGUMENTS, asm_fprintf_length_specs, asm_fprintf_flag_specs, - asm_fprintf_flag_pairs, asm_fprintf_char_table): New. - (format_types_orig): Renamed from format_types. Add new data. - (format_types): Declare as pointer. - (handle_format_attribute): Move later in file so we have all - necessary declarations. Add section to capture HOST_WIDE_INT. - * output.h (ATTRIBUTE_ASM_FPRINTF, __gcc_host_wide_int__): New. - (asm_fprintf): Mark with ATTRIBUTE_ASM_FPRINTF. - -2003-06-01 Andreas Jaeger - - * doc/tm.texi (Storage Layout): Remove ROUND_TYPE_SIZE and - ROUND_TYPE_SIZE_UNIT. - - * stor-layout.c (finalize_record_size): Remove usages of - ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT. - (finalize_type_size): Likewise. - (layout_type): Likewise. - - * system.h: Poison ROUND_TYPE_SIZE and ROUND_TYPE_SIZE_UNIT. - - * loop.c (check_insn_for_givs): Remove DONT_REDUCE_ADDR macro. - - * config/d30v/d30v.h: Remove text copied from the manual. - -2003-06-01 Roger Sayle - John David Anglin - Geoffrey Keating - - * emit-rtl.c (gen_lowpart_common): Handle interpreting integer - constants as condition code values. - -2003-06-01 DJ Delorie - - * cppmacro.c (warn_of_redefinition): Handle cases where the two - definitions have different numbers of tokens. - -2003-06-01 Andreas Jaeger - - * gen-protos.c (main): Readd unused attribute for argc. - -2003-06-01 Neil Booth - - * Makefile.in (c-options.c, c-options.h): Parallel make safe. - * c.opt: End in blank line. - * opts.sh: Take AWK from environment if available; use C locale. - -2003-06-01 Andreas Schwab - - * config/m68k/linux.h: Remove code protected by USE_GNULIBC_1. - -2003-06-01 Andreas Jaeger - - * gen-protos.c (main): Revert patch to check for argument. - -2003-06-01 Eric Botcazou - - PR target/11044 - * config/i386/i386.md (length attribute): Set length to 4 - for instructions of type "fcmp". - -2003-06-01 Andreas Jaeger - - * toplev.c: Use ISO C90 prototypes. - - * toplev.h: Use ISO C90 prototypes. - - * genrecog.c: Use ISO C90 prototypes. - (nodes_identical): Correct declaration to match prototype. - (maybe_both_true): Likewise. - (merge_trees): Likewise. - - * genpeep.c (gen_peephole): Remove #if 0 code. - Use ISO C90 prototypes. - - * genattrtab.c (copy_rtx_unchanging): Remove #if 0'ed code. - Remove #if 0'ed function simplify_by_alternatives. - (optimize_attrs): Remove #if 0'ed code. - Remove ^L. - Use ISO C90 prototypes. - (make_canonical): Remove #if 0'ed code. - (convert_const_symbol_ref): Remove #if 0'ed function. - - * gen-protos.c (main): Check for argument. - - * rtl.h: Use ISO C90 prototypes for functions from lists.c. - - * params.h: Use ISO C90 prototypes. - * params.c: Likewise. - * intl.c: Likewise. - * intl.h: Likewise. - * lists.c: Likewise. - * errors.c: Likewise. - * errors.h: Likewise. - * gencodes.c: Likewise. - * genpreds.c: Likewise. - * genattr.c: Likewise. - * gen-protos.c: Likewise. - * genflags.c: Likewise - * genconditions.c: Likewise. - * genautomata.c: Likewise. - * gencheck.c: Likewise. - * genconfig.c: Likewise. - * genconstants.c: Likewise. - * genemit.c: Likewise. - * genextract.c: Likewise. - * gengenrtl.c: Likewise. - * gengtype.c: Likewise. - * gengtype.h: Likewise. - * genopinit.c: Likewise. - * genoutput.c: Likewise. - * gensupport.c: Likewise. - * gensupport.h: Likewise. - - * sdbout.h: Use ISO C90 prototypes. - - * sdbout.c (CONTIN): Removed empty macro. - (sdbout_one_type): Remove CONTIN usages. - Remove ^Ls. - (tag_of_ru_type): Remove #if 0'ed function. - (sdbout_symbol): Remove #if 0'ed code. - (sdbout_one_type): Remove a #if 1. - (sdbout_one_type): Remove #if 0'ed code. - (sdbout_init): Remove RMS_QUICK_HACK_1 code. - Remove PARAMS, use ISO C90 prototypes for all functions. - -2003-06-01 Josef Zlomek - - * rtl.def (CONST_DOUBLE): Update comment. - -2003-06-01 Neil Booth - - * opts.sh: Remove path from sort. - -2003-06-01 Aldy Hernandez - - PR/9680 - * config/rs6000/rs6000.h (CANNOT_CHANGE_MODE_CLASS): Require - TARGET_SPE for SPE_VECTOR_MODE. - -2003-05-31 Aldy Hernandez - - * toplev.c (botch): Remove. - (do_abort): Remove. - (set_Wunused): Comment. - (set_Wextra): Comment. - Remove ^L's. - (rest_of_compilation): Factor out common code into functions. - (rest_of_handle_inlining): New. - (rest_of_handle_ssa): New. - (rest_of_handle_cse): New. - (rest_of_handle_gcse): New. - (rest_of_handle_loop_optimize): New. - (rest_of_handle_jump_bypass): New. - (rest_of_handle_sibling_calls): New. - (rest_of_handle_null_pointer): New. - (rest_of_handle_addresof): New. - (rest_of_handle_flow): New. - (rest_of_handle_branch_prob): New. - (rest_of_handle_if_conversion): New. - (rest_of_handle_tracer): New. - (rest_of_handle_loop2): New. - (rest_of_handle_cse2): New. - (rest_of_handle_life): New. - (rest_of_handle_combine): New. - (rest_of_handle_if_after_combine): New. - (rest_of_handle_regmove): New. - (rest_of_handle_sched): New. - (rest_of_handle_old_regalloc): New. - (rest_of_handle_new_regalloc): New. - (rest_of_handle_regrename): New. - (rest_of_handle_reorder_blocks): New. - (rest_of_handle_sched2): New. - (rest_of_handle_new_regalloc): New. - (rest_of_handle_old_regalloc): New. - (rest_of_handle_regrename): New. - (rest_of_handle_reorder_blocks): New. - (rest_of_handle_stack_regs): New. - (rest_of_handle_machine_reorg): New. - (rest_of_handle_delay_slots): New. - (rest_of_handle_final): New. - - * toplev.h (botch): Remove prototype. - (do_abort): Same. - -2003-05-31 Neil Booth - - * Makefile.in (c-opts.o, c-options.h): Update dependencies. - * c-opts.c: Include c-options.h and c-options.c. - (CL_C_ONLY, CL_OBJC_ONLY, CL_CXX_ONLY, CL_OBJCXX_ONLY): - Rename CL_C, CL_OBJC, CL_CXX, CL_OBJCXX. - (CL_ARG, CL_ALL, COMMAND_LINE_OPTIONS, struct cl_option, - OPT, opt_comp): Remove. - (missing_arg, c_common_init_options, c_common_decode_option, - write_langs): Update for macro redefinitions and enumeration - name changes. - * c.opt, opts.sh: New files. - * doc/passes.texi: Update. - -2003-05-31 Andreas Jaeger - - * function.c (trampoline_address): Remove ALLOCATE_TRAMPOLINE - usage. - - * doc/tm.texi (Trampolines): Remove ALLOCATE_TRAMPOLINE. - - * config/d30v/d30v.h: Remove traces of ALLOCATE_TRAMPOLINE. - - * system.h: Poison ALLOCATE_TRAMPOLINE. - - * doc/tm.texi (Misc): Remove HANDLE_PRAGMA. - * system.h: Poison HANDLE_PRAGMA. - -2003-05-31 Kazu Hirata - - * doc/invoke.texi: Update dump file names. - -2003-05-31 Kaveh R. Ghazi - - * c-format.c (format_length_info, format_char_info, - format_flag_spec, format_flag_pair, format_kind_info): - De-const-ify structure members. - -2003-05-31 Roger Sayle - - * flags.h (flag_wrapv): New flag controlling overflow semantics. - * toplev.c (flag_wrapv): Declare the variable with default false. - (lang_independent_options): New option "-fwrapv" to set the above. - - * fold-const.c (extract_muldiv_1): Disable optimization of (2*x)/2 - as x, when signed arithmetic overflow wraps around. - (fold): Optimize "-A - B" as "-B - A" if overflow wraps around. - * loop.c (basic_induction_var): Ignore BIVs that rely on undefined - overflow when flag_wrapv is true. - - * doc/invoke.texi: Document new -fwrapv command line option. - * doc/c-tree.texi: Mention that the overflow semantics of - NEGATE_EXPR, PLUS_EXPR, MINUS_EXPR and MULT_EXPR is dependent - upon both flag_wrapv and flag_trapv. - -2003-05-31 Eric Botcazou - - * doc/install.texi (mips-sgi-irix5): Add missing - HTML


marker. - -2003-05-31 Eric Botcazou - - * doc/md.texi (Machine Constraints): Document - missing SPARC constraints. - -2003-05-31 Eric Botcazou - - * doc/md.texi (Automaton pipeline description): Use - "type" instead of "cpu" as the attribute in the examples. - -2003-05-30 Stan Shebs - - * system.h: Poison OBJC_PROLOGUE. - -2003-05-30 Roger Sayle - - * emit-rtl.c (gen_complex_constant_part): New function for getting - the constant real or imaginary part of a complex constant. - (gen_realpart): Use it. - (gen_imagpart): Likewise. - -2003-05-30 Kazu Hirata - - * doc/invoke.texi: Fix typos. - * doc/rtl.texi: Likewise. - -2003-05-30 Dhananjay Deshpande - - * config/h8300/crti.asm: Use .h8300hn and .h8300sn for normal - mode. - * config/h8300/crtn.asm: Likewise. - * config/h8300/lib1funcs.asm: Likewise. - * config/h8300/h8300.c (asm_file_start): Likewise. - * config/h8300/elf.h (LINK_SPEC): Use h8300hnelf and - h8300snelf emulations for normal mode. - * config/h8300/h8300.h (LINK_SPEC): Use h8300hn and h8300sn - emulations for normal mode. - -2003-05-30 Dhananjay Deshpande - - * config/h8300/h8300.c (h8300_tiny_constant_address_p): Return - true if TARGET_NORMAL_MODE. - -2003-05-30 Roger Sayle - - * cse.c (cse_insn): Simplify REG_EQUAL note on libcalls when - making a substitution. - (dead_libcall_p): If directly replacing a libcall with a - constant value produces an invalid instruction, also try forcing - the constant into the constant pool. - * expr.c (emit_move_insn): Add a REG_EQUAL note when it is not - obvious that the source is a constant. - (compress_float_constant): Use set_unique_reg_note to place - REG_EQUAL notes on instructions. - -2003-05-30 Eric Christopher - - * config/mips/mips.c (extern_list): Add GTY marker. - (extern_head): Separate out definition. Add marker. - (mips_output_external): Use ggc_alloc for extern_list - allocation. - (mips_output_external_libcall): Ditto. - -2003-05-30 Florian Weimer - - * doc/install.texi: Ada-enabled bootstrap requires GNAT 3.14 or - later. - -2003-05-30 Kaveh R. Ghazi - - * vax.h (ASM_GENERATE_INTERNAL_LABEL): Fix format specifier - warnings. - (PRINT_OPERAND): Likewise. - -2003-05-30 Rainer Orth - - * config/mips/mips.h (SUBTARGET_ASM_DEBUGGING_SPEC): Move - -mdebug/-no-mdebug switches ... - (MDEBUG_ASM_SPEC): ... here. - Use only with gas. - (EXTRA_SPECS): Initialize mdebug_asm_spec. - -2003-05-29 Matt Kraai - - * gthr-gnat.c: Remove #undef UNUSED. - (__gnat_default_lock, __gnat_default_unlock): Prototype. - (__gnat_task_lock, __gnat_task_unlock): Make declarations - prototypes. - (__gnat_install_locks): Convert declaration to ISO C90, make - parameter declarations prototypes, and remove blank line. - * gthr-gnat.h (__gnat_install_locks): Make parameter - declarations prototypes. - -2003-05-29 Jason Merrill - - * Makefile.in (unstrap): Remove stage_last after make unstage1. - -2003-05-29 Roger Sayle - - * mips-tfile.c (PAGE_SIZE): Increase page size to 32K. - -2003-05-29 Roger Sayle - Kaveh Ghazi - - PR bootstrap/10169 - * mips-tfile.c (main): Use getopt_long instead of getopt. - Add new command line option --version to display version. - Treat --verbose like -v to report a single line version. - (options): New global variable for getopt_long. - * mips-tdump.c (main): Use getopt_long instead of getopt. - New command line options -v, --version and -verbose to display - the program version number (to match mips-tfile's behavior). - (options): New global variable for getopt_long. - - * gcov.c (options): Zero-terminate getopt_long array. - * gcov-dump.c (options): Likewise. - - * Makefile.in (mips-tdump.o): Add dependency on version.h. - -2003-05-29 Stan Shebs - - Remove OBJC_PROLOGUE everywhere. - * objc/objc-act.c (finish_objc): Remove use of OBJC_PROLOGUE. - * config/avr/avr.h: Remove no-op ref to OBJC_PROLOGUE. - * config/d30v/d30v.h: Similarly. - * config/ip2k/ip2k.h: Similarly. - * doc/tm.texi: Remove doc of OBJC_PROLOGUE. - -2003-05-29 Roger Sayle - - * c-semantics.c (genrtl_do_stmt_1): New function split out from... - (gen_rtl_do_stmt): ... here. Call genrtl_do_stmt_1. - (expand_unreachable_stmt): Expand unreachable while statements - using genrtl_do_stmt_1. - -2003-05-29 Richard Sandiford - - * config/mips/mips-protos.h (mips_output_load_label): Declare. - * config/mips/mips.c (mips_output_load_label): New function. - (mips_output_conditional_branch): Use it. - * config/mips/mips.md (jump): And here. - -2003-05-28 Bob Wilson - - * config/xtensa/xtensa-protos.h (smalloffset_double_mem_p): Delete. - (xtensa_split_operand_pair): New proto. - * config/xtensa/xtensa.c (move_operand): Handle DFmode and DImode. - (smalloffset_double_mem_p): Delete. - (gen_float_relational, printx, print_operand, xtensa_va_arg): - Fix whitespace. - (xtensa_split_operand_pair): New. - (xtensa_dbx_register_number): Fix formatting. - * config/xtensa/xtensa.h (EXTRA_CONSTRAINT): Remove 'S' constraint. - * config/xtensa/xtensa.md (movdi, movdf): Force constants to memory - instead of splitting them into single-word moves. Remove unnecessary - checks for reload_in_progress and reload_completed. - (movdi_internal, movdf_internal): Change to post-reload split patterns. - Add constraints to allow constant operands. - (movsf_internal): Allow CONST_INT operands. - -2003-05-27 Danny Smith - - * config.gcc (i[34567]86-*-mingw32*): Add host makefile - fragment i386/x-mingw32. - * config/i386/x-mingw32: New file. Make local_includedir - relative to EXEC_PREFIX. - -2003-05-27 Aaron W. LaFramboise - - * config/i386/mingw32.h (STANDARD_INCLUDE_DIR): Update. - (MD_STARTFILE_PREFIX): Define. - -2003-05-27 Denis Chertykov - - * cselib.c (cselib_invalidate_regno): Abort if hardreg have a - VOIDmode. - * cselib.c (cselib_process_insn): Pass reg_raw_mode for hardreg in - call of cselib_invalidate_regno. - -2003-05-28 Daniel Jacobowitz - - * config/mips/linux.h (LIB_SPEC): Add missing -lc and correct - -lthread to -lpthread. - -2003-05-28 Eric Botcazou - Bruce Korb - Arno Klaassen - - * fixinc/inclhack.def: Add missing declaration of getpagesize() - to unistd.h on Solaris 2.5.1. - Fix prototype of recv() and send() in sys/socket.h on - Solaris 2.5.1 and 2.6. - * fixinc/tests/base/unistd.h: Add solaris_unistd fix test. - * fixinc/tests/base/sys/socket.h: Add solaris_socket test. - * fixinc/check.tpl: Use 'diff -c', not 'diff -u'. - * fixinc/fixincl.x: Regenerate. - -2003-05-27 Jason Merrill - - * tree.c (expr_first, expr_length): New fns. - * tree.h: Declare them. - - * tree.c (iterative_hash_expr): Hash commutative expressions - consistently. - -2003-05-27 Richard Kenner - - * tree.h (contains_placeholder_p): Now returns bool. - (CONTAINS_PLACEHOLDER_P): New macro. - (type_contains_placeholder_p): New function. - * tree.c (save_expr): Remove code avoiding folding COMPONENT_REF. - (contains_placeholder_p): Now returns bool. - Rework to use CONTAINS_PLACEHOLDER_P macro. - (type_contains_placeholder_p): New function. - * fold-const.c (fold, case COMPONENT_REF): Don't fold if - type_contains_placeholder_p. - (fold_range_test, fold_mathfn_compare, fold_inf_compare, fold): - Use CONTAINS_PLACEHOLDER_P macro. - * builtins.c (fold_builtin): Likewise. - * calls.c (initialize_argument_information): Likewise. - * emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise. - * explow.c (expr_size): Likewise. - * expr.c (store_constructor, get_inner_reference): Likewise. - * function.c (assign_parms): Likewise. - * stor-layout.c (variable_size): Likewise. - -2003-05-25 Gabriel Dos Reis - - * diagnostic.h (output_verbatim, verbatim): Remove printf - attribute. - -2003-05-25 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Update Kean Johnston. - -2003-05-24 David Edelsohn - - * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add length attribute. - -2003-05-24 Nathanael Nerode - - * config/rs6000/440.md, config/stormy16/stormy16protos.h, - config/stormy16/stormy16.c, config/stormy16/stormy16.md: - Replace "GNU CC" with "GCC". - -2003-05-24 Matt Kraai - - * builtins.c (expand_builtin_memcpy): Use mode of dest_addr for - intermediate computation. - -2003-05-23 Eric Christopher - - * config/mips/mips.md (clzsi, clzdi): New patterns. - -2003-05-23 Geoffrey Keating - - * gcc.c (default_compilers): Use -o to specify preprocessor's output - file. Make -no-integrated-cpp work when building PCH files. - * objc/lang-specs.h: Likewise. - -2003-05-23 Nathanael Nerode - - * fixinc/Makefile.in: Correct description. - * fixinc/Makefile.in, fixinc/fixfixes.c, fixinc/fixincl.c, - fixinc/fixlib.c, fixinc/fixlib.h, fixinc/fixtests.c, - fixinc/genfixes: Replace "GNU CC" with "GCC". - -2003-05-23 Roger Sayle - - * builtins.def: Define atan, atanf, atanl, tan, tanf and tanl - builtin functions (and their __builtin_* variants). - * builtins.c (mathfn_built_in): Handle tan{,f,l} and atan{,f,l}. - (expand_builtin): Don't expand tan{,f,l} or atan{,f,l} when not - optimizing. - - * doc/extend.texi: Document new tan and atan builtins, and - their float and long double variants. - -2003-05-23 Jason Thorpe - - * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Define - __sparcv9 in the TARGET_ARCH64 case. - -Fri May 23 22:17:32 CEST 2003 Jan Hubicka - - * i386.c (ix86_reorg): Calls are also jumps. - -2003-05-23 J"orn Rennecke - - * cse.c (count_reg_usage): When processing an INSNs REG_EQUAL - note containing an EXPR_LIST, process all the arguments. - -Fri May 23 21:19:31 CEST 2003 Jan Hubicka - Andreas Jaeger - - * i386.h (TARGET_CPU_CPP_BUILTINS): Define __amd64 and __amd64__; - do not use assertion. - -2003-05-23 Mike Stump - - * tlink.c (scan_linker_output): Add support for darwin linker, as it - emits unresolved symbols one per line, consuming the entire line. - -2003-05-23 Larin Hennessy - Zack Weinberg - - * explow.c (allocate_dynamic_stack_space): Remove call to gen_probe. - * config/m68k/m68k.c (m68k_output_function_prologue): - Remove code under #if NEED_PROBE. - * config/m68k/m68k.h: Don't define NEED_PROBE. - * config/m68k/m68k.md: Remove "probe" insn. - * doc/md.texi: Remove documentation of "probe" pattern. - -2003-05-23 Dorit Naishlos - - * config/rs6000/rs6000.md (save_fpregs_{si,di}): Add branch attribute. - -2003-05-23 Eric Botcazou - - * doc/install.texi: Remove sparc64-*-*. Add sparc64-*-solaris2*. - Document sparcv9-*-solaris2* as a synonym for sparc64-*-solaris2*. - -2003-05-22 Roger Sayle - - * real.c (real_maxval): New function to return the largest finite - value representable in a given mode (i.e. FLT_MAX and DBL_MAX). - * real.h (real_maxval): Prototype here. - * fold-const.c (fold_inf_compare): Transform comparisons against - +-Infinity into comparisons against DBL_MAX (or equivalent). - -2003-05-22 Mike Stump - - * config.gcc (*-*-darwin*): Remove use_collect2=no, as it is the - default. - -2003-05-22 DJ Delorie - - * calls.c (expand_call): If the arg block is going to grow - downward, we need argblock to point to the top of the block, - not the bottom. - -2003-05-22 Richard Kenner - - * c-decl.c (duplicate_decls): Test DECL for ERROR_MARK. - - * expr.c (expand_expr, case CONSTRUCTOR): Put into memory if - constant and EXPAND_CONST_ADDRESS, not just EXPAND_INITIALIZER. - -2003-05-22 Kaveh R. Ghazi - - * m68hc11.c: Don't use the `0' flag for asm_fprintf specifiers. - * m68k.c: Likewise. - * m68k.h: Likewise. - -2003-05-22 Zack Weinberg - - PR other/2873 - * fixinc/inclhack.def (avoid_wchar_t_type): Add bypass - expressions to prevent triggering on recent curses.h, - linux/nls.h, or X11/Xlib.h. - (stdio_va_list): Add _G_va_list to bypass pattern. - (strict_ansi_not): Add bypass pattern for __SCO_VERSION__. - * fixinc/fixincl.x: Regenerate. - -2003-05-22 Rekha Bhintade - - * gcc/config/sh/sh.h (TARGET_SWITCHES): Display all the target - switches when --target-help option is specified. - -2003-05-22 Eric Botcazou - - PR bootstrap/10805 - * doc/install.texi (sparc-sun-solaris2.7): Document bootstrap - failure with Sun assembler 5.0 Alpha 03/27/98. - -2003-05-21 Loren James Rittle - - * config/sparc/freebsd.h (CPP_CPU64_DEFAULT_SPEC): Add -D__sparcv9 - to match system compiler convention. - -2003-05-21 Danny Smith - - * gthr-win32.h (__GTHREAD_HIDE_WIN32API): Test for nonzero - value, not just if defined. - Update copyright year. - -2003-05-21 John David Anglin - - PR target/6428 - * pa-hpux10.h (LINK_SPEC, LIB_SPEC): Move -L options for profiling - directories from LIB_SPEC to LINK_SPEC. Emit warning if `-p' or `-pg' - option is used without `-static'. - * pa-hpux11.h (LINK_SPEC, LIB_SPEC): Likewise. - * pa64-hpux.h (LINK_SPEC, LIB_SPEC): Likewise. - -2003-05-21 Bob Wilson - - * config/xtensa/xtensa.h (MASK_SERIALIZE_VOLATILE, - TARGET_SERIALIZE_VOLATILE): Delete. - (MASK_CONST16, MASK_ABS, MASK_ADDX): Renumber flag bits. - (TARGET_DEFAULT): Remove MASK_SERIALIZE_VOLATILE. - (TARGET_SWITCHES): Remove "-mserialize-volatile" and - "-mno-serialize-volatile". - * config/xtensa/xtensa.c (print_operand): Remove checks of - TARGET_SERIALIZE_VOLATILE. - * config/xtensa/xtensa.md (*lsiu, *ssiu): Likewise. - * doc/invoke.texi (Option Summary, Xtensa Options): Remove - "-mserialize-volatile" and "-mno-serialize-volatile" options. - -2003-05-21 Nathan Sidwell - - * c-parse.in (fndef): Set DECL_SOURCE_LINE and FILE earlier. - (nested_function): Likewise. - (notype_nested_function): Likewise. - -2003-05-21 Nick Clifton - - * config/stormy16/stormy-abi: Update overflow type for - R_XSTORMY16_16 reloc. - -2003-05-21 Nathan Sidwell - - * c-common.h (enum rid): Remove RID_BOUNDED, RID_UNBOUNDED. - * c-parse.in (reswords): Remove __bounded__ and __unbounded__. - (rid_to_yy): Remove RID_BOUNDED, RID_UNBOUNDED slots. - * print-tree.c (print_node): Remove ambient-boundedness. - * tree.h (tree_common): Remove bounded_flag. - (BOUNDED_INDIRECT_YPE_P, BOUNDED_POINTER_TYPE_P, - BOUNDED_REFERENCE_TYPE_P, MAYBE_BOUNDED_INDIRECT_TYPE_P, - MAYBE_BOUNDED_POINTER_TYPE_P, MAYBE_BOUNDED_REFERENCE_TYPE_P, - TREE_BOUNDED, TYPE_MAIN_VARIANTS_PHYSICALLY_EQUAL_P, - TYPE_MAIN_PHYSICAL_VARIANT, TYPE_BOUNDED, TYPE_QUAL_BOUNDED): - Remove. - (TYPE_QUALS): Remove BOUNDED. - (TREE_EXPR_QUALS, TREE_FUNC_QUALS): Remove. - (TYPE_BOUNDED_VALUE, TYPE_BOUNDED_BASE, TYPE_BOUNDED_EXTENT, - TYPE_BOUNDED_SUBTYPE, TYPE_UNBOUNDED_VARIANT, TYPE_POINTER_DEPTH, - TYPE_AMBIENT_BOUNDEDNESS, MAX_POINTER_DEPT, - VA_LIST_POINTER_DEPTH): Remove. - (struct tree_type): Remove pointer_depth. - -2003-05-20 Kaveh R. Ghazi - - * c-pretty-print.c (pp_c_integer_literal): Use - HOST_WIDE_INT_PRINT_DOUBLE_HEX. - -2003-05-20 Roger Sayle - Kazu Hirata - Joern Rennecke - - * gcse.c (cprop_jump): Make use of REG_EQUAL notes on both - setcc and jump, if they exist. If substituted instruction - fails to validate, store current effort in a REG_EQUAL note. - (cprop_insn): Don't attempt further substitutions if the - current instruction has been deleted. - (local_cprop_pass): Likewise. - - * jump.c (redirect_jump): Also update REG_EQUAL note, if - one is attached to the jump instruction. - (invert_jump): Delete REG_EQUAL note on jump, if one exists. - -2003-05-21 Danny Smith - - PR c++/9738 - * config/i386/winnt.c (i386_pe_encode_section_info): Enable - even if not first. - -2003-05-20 Kaveh R. Ghazi - - * genautomata.c (output_description, output_automaton_units, - output_state_arcs): Add missing specifiers. - -2003-05-20 Bob Wilson - - * config/xtensa/lib1funcs.asm: Avoid use of .Lfe* in .size directives. - (do_abs, do_addx2, do_addx4, do_addx8): New assembler macros. - (__mulsi3): Use do_addx* instead of ADDX* instructions. Formatting. - (nsau): Rename to do_nsau. Provide alternate version for use when - the NSAU instruction is available. - (__udivsi3, __divsi3, __umodsi3, __modsi3): Use do_nsau macro. - (__divsi3, __modsi3): Use do_abs macro instead of ABS instruction. - * config/xtensa/xtensa-config.h: Update comments to match binutils. - (XCHAL_HAVE_ABS, XCHAL_HAVE_ADDX): Define. - * config/xtensa/xtensa.h (MASK_ABS, MASK_ADDX): Define. - (TARGET_ABS, TARGET_ADDX): Define. - (TARGET_DEFAULT): Conditionally add MASK_ABS and MASK_ADDX. - (TARGET_SWITCHES): Add "abs", "no-abs", "addx", and "no-addx". - * config/xtensa/xtensa.md (*addx2, *addx4, *addx8, *subx2, *subx4, - *subx8): Set predicate condition to TARGET_ADDX. - (abssi2): Set predicate condition to TARGET_ABS. - * doc/invoke.texi (Option Summary): Document new "-mabs", "-mno-abs", - "-maddx", and "-mno-addx" options. - (Xtensa Options): Likewise. Also tag some opcode names with @code. - -2003-05-20 Kevin Ryde - Wolfgang Bangerth - - PR/10355 - * doc/extend.texi: Put a warning into the documentation - of attribute regparm. - -2003-05-20 Jason Merrill - - * tree.c (expr_last): New fn. - * tree.h: Declare it. - * objc/objc-act (expr_last): Rename to objc_expr_last. - -2003-05-20 J"orn Rennecke - - * sh.c (sh_register_move_cost): Add clase for moving between - FP registers and MAC registers. - -2003-05-19 John David Anglin - - * pa/milli64.S ($$mulI): Fix typo. - -2003-05-19 Matt Kraai - - * alias.c (nonlocal_mentioned_p, nonlocal_referenced_p) - (nonlocal_set_p): Remove initial blank line. - * dwarf2out.c (simple_type_size_in_bits): Likewise. - * et-forest.c (et_forest_create): Likewise. - * explow.c (stabilize): Likewise. - * fix-header.c (write_lbrac): Likewise. - * graph.c (start_fct, node_data): Likewise. - * jump.c (only_sets_cc0_p, sets_cc0_p): Likewise. - * rtlanal.c (global_reg_mentioned_p): Likewise. - * tree.c (bit_position): Likewise. - -2003-05-19 Alexandre Oliva - - * config/mips/linux64.h (LIB_SPEC): Add missing -lc and correct - -lthread to -lpthread. - -2003-05-19 Neil Booth - - * c-opts.c (c_common_decode_option): Don't accept dollars - as identifier characters in assembly. - * doc/cpp.texi: Document this. - -2003-05-19 Seth Arnold - Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_stack_info): Do not add - vrsave_size twice. - -2003-05-19 Aldy Hernandez - - * doc/tm.texi (function_arg): Fix typo. - -2003-05-19 Matt Austern - - * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-offsetof option. - * c-common.h (warn_invalid_offsetof): Declare. - * c-common.c (warn_invalid_offsetof): Define. - * doc/invoke.texi: Document -Winvalid-offsetof. - * testsuite/g++.dg/other/offsetof3.C: New. - * testsuite/g++.dg/other/offsetof4.C: New. - -2003-05-19 Kevin B. Hendricks - David Edelsohn - - * config/rs6000/rs6000.c (rs6000_alignment_string, - rs6000_alignment_flags): New variables. - (rs6000_parse_alignment_option): New function. - (rs6000_override_options): Call it. - * config/rs6000/rs6000.h (TARGET_OPTIONS): Add -malign-XXX option. - (MASK_ALIGN_POWER, MASK_ALIGN_NATURAL, TARGET_ALIGN_NATURAL): New - macros. - * config/rs6000/aix.h (ADJUST_FIELD_ALIGN): Always use COMPUTED - natural alignment if TARGET_NATURAL_ALIGNMENT - (ROUND_TYPE_ALIGN): Always use default record alignment if - TAGET_NATURAL_ALIGNMENT. - * config/rs6000/darwin.h (ADJUST_FIELD_ALIGN): Same - (ROUND_TYPE_ALIGN): Same. - * config/rs6000/linux64.h (ADJUST_FIELD_ALIGN): Same - (ROUND_TYPE_ALIGN): Same. - * doc/invoke.texi (Option Summary, PowerPC Options): Document - new options. - -2003-05-19 J"orn Rennecke - - * c-decl.c (finish_decl): When setting the DECL_ASSEMBLER_NAME - of a function using ASMSPEC, prepend a star. - -2003-05-19 Jason Merrill - - * tree-inline.c (copy_body_r): Avoid generating &* during inline - substitution. - -2003-05-19 Andrew Macleod - - * config/stormy16/stormy16.c (xstormy16_expand_prologue): Do - not mark assignments to the hard frame pointer as being stack - frame related. - (xstormy16_expand_epilogue): Mark adjustments to the stack - pointer as being stack frame related. - -2003-05-19 Richard Sandiford - - * config/mips/mips.h (ISA_HAS_LOAD_DELAY, ISA_HAS_XFER_DELAY, - ISA_HAS_FCMP_DELAY, ISA_HAS_HILO_INTERLOCKS): New macros. - (PREDICATE_CODES): Add hilo_operand. - * config/mips/mips.c (hilo_operand): New predicate. - (mips_adjust_insn_length): Account for the number nops that might - be needed to avoid hardware hazards. - * config/mips/mips.md (dslot): Remove attribute. - (hazard): New attribute. - (can_delay): Use it. Check for calls, branches & jumps. - (muldi3): Use the standard dmult pattern for mips16 code. - (muldi3_internal, muldi3_internal2): Adjust conditions accordingly. - -2003-05-19 Richard Sandiford - - * config/mips/mips-protos.h (final_prescan_insn, - mips_count_memory_refs, mips_fill_delay_slot): Remove. - * config/mips/mips.h (delay_type, dslots_load_total, - dslots_load_filled, dslots_jump_total, dslots_jump_filled, - dslots_number_nops, num_refs, mips_load_reg, mips_load_reg2, - mips_load_reg3, mips_load_reg4): Remove. - (MASK_STATS): Remove. - (MASK_EXPLICIT_RELOCS): Reuse its value. - (TARGET_STATS): Remove. - (TARGET_SWITCHES): Turn -mstats and -mno-stats into no-ops. - Warn that -mstats is now ignored. - (FINAL_PRESCAN_INSN): Undefine. - (DBR_OUTPUT_SEQEND): Remove handling of dslot statistics. - (ASM_OUTPUT_REG_POP): Likewise. - * config/mips/mips.c (dslots_load_total, dslots_load_filled, - dslots_jump_total, dslots_jump_filled, dslots_number_nops, num_refs, - mips_load_reg, mips_load_reg2, mips_load_reg3, mips_load_reg4, - mips_fill_delay_slot, mips_count_memory_refs, - final_prescan_insn): Remove. - (output_block_move): Remove calls to mips_count_memory_refs. - (print_operand): Remove printing of #nop for TARGET_STATS. - (mips_output_function_epilogue): Remove TARGET_STATS code. - Reorganize setting of fnnmae. - * config/mips/mips.md: Remove handling of dslot statistics - throughout file. Change all fcmp patterns into normal asm - templates, removing calls to mips_fill_delay_slot. - * doc/invoke.texi: Remove documentation of -mstats. - -2003-05-19 Richard Sandiford - - * config/mips/mips.c (mips_class_max_nregs): Return the number of - words in the mode. - -2003-05-19 Richard Sandiford - - * config/mips/mips.c (override_options): Disable explicit - relocs for old ABIs unless using gas. - -2003-05-18 Eric Christopher - - * config/mips/mips.h: Remove definition of g_switch_value. - -2003-05-18 Matt Kraai - - * flags.h (g_switch_value): Change to an unsigned - HOST_WIDE_INT. - * toplev.c (g_switch_value): Likewise. - - * config/alpha/alpha.c (small_symbolic_operand): Remove - g_switch_value cast. - (alpha_in_small_data_p): Cast size to an unsigned - HOST_WIDE_INT. - - * config/frv/frv.c (frv_in_small_data_p): Cast size to an - unsigned HOST_WIDE_INT. - * config/frv/frv.h (g_switch_value, g_switch_set): Remove. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Declare g_switch_set. - - * config/m32r/m32r.c (m32r_in_small_data_p): Cast size to an - unsigned HOST_WIDE_INT. - (m32r_asm_file_start): Use HOST_WIDE_INT_PRINT_UNSIGNED. - * config/m32r/m32r.h (g_switch_value, g_switch_set): Remove. - (ASM_OUTPUT_ALIGNED_COMMON): Declare g_switch_value. - - * config/rs6000/rs6000.c (rs6000_file_start): Use - HOST_WIDE_INT_PRINT_UNSIGNED. - (small_data_operand): Cast summand to unsigned HOST_WIDE_INT. - (rs6000_elf_in_small_data_p): Cast size to unsigned - HOST_WIDE_INT. - * config/rs6000/sysv4.h (g_switch_value, g_switch_set): - Remove. - (SUBTARGET_OVERRIDE_OPTIONS): Declare g_switch_value and - g_switch_set. - (ASM_OUTPUT_ALIGNED_LOCAL): Declare g_switch_value and remove - g_switch_value cast. - -2003-05-18 Roger Sayle - Zack Weinberg - - PR middle-end/10472 - * builtins.c (expand_builtin_memcpy): Call force_operand on - expressions and use simplify_gen_binary to create the addition. - -2003-05-18 Andreas Schwab - - * config/m68k/m68k.md: Use define_constants for unspec numbers. - -2003-05-18 Neil Booth - - * config/sparc/sparc.h: Define sparc for now. - -2003-05-18 Nathanael Nerode - - * config.gcc: Clear xm_file, md_file at the beginning of each pass. - - * config/stormy16/stormy16.h: Remove about 3000 lines of - target-independent comments. Update copyright notice. - - * doc/collect2.texi: GNU CC -> GCC. - * doc/headerdirs.texi: GNU CC -> GCC. - -2003-05-18 Gabriel Dos Reis - - * hashtable.h (struct ht_identifier): Add data member "hash_value". - * hashtable.c (ht_lookup): Use it when searching, remember. - (ht_expand): Do not recompute. - * tree.h (IDENTIFIER_HASH_VALUE): New macro. - -2003-05-18 Nathan Sidwell - - * gcov-io.c (gcov_read_bytes): Fix fread thinko. - -2003-05-18 Neil Booth - - * c-cppbuiltin.c (TARGET_OS_CPP_BUILTINS, TARGET_OBJFMT_CPP_BUILTINS): - Default here. - (c_cpp_builtins): Invoke TARGET_OBJFMT_CPP_BUILTINS(). - * defaults.h: Don't default TARGET_OS_CPP_BUILTINS here. - * config/elfos.h (TARGET_OBJFMT_CPP_BUILTINS): Define __ELF__. - * config/freebsd-spec.h, config/netbsd-elf.h, config/alpha/gnu.h, - config/arm/linux-elf.h, config/arm/rtems-elf.h, - config/arm/unknown-elf.h, config/cris/cris.h, config/cris/linux.h, - config/h8300/elf.h, config/i370/linux.h, config/i386/beos-elf.h, - config/i386/gnu.h, config/i386/linux.h, config/i386/linux64.h, - config/i386/moss.h, config/i386/rtemself.h, config/ia64/ia64.h, - config/m68k/rtemself.h, config/mcore/mcore-elf.h, config/mips/linux.h, - config/pa/pa-linux.h, config/rs6000/linux.h, config/rs6000/linux64.h, - config/rs6000/sysv4.h, config/rs6000/vxworks.h, config/s390/linux.h, - config/sh/coff.h, config/sh/elf.h, config/sh/rtemself.h, - config/sh/sh.h, config/sparc/linux.h, config/sparc/linux64.h, - config/sparc/openbsd64.h, config/sparc/sp64-elf.h, - config/sparc/sp86x-elf.h, config/xtensa/elf.h, config/xtensa/linux.h: - Don't define __ELF__. - * config/alpha.h, config/m68k/linux.h (TARGET_OBJFMT_CPP_BUILTINS): - Define __ELF__. - * doc/cpp.texi: Document __ELF__. - * doc/tm.texi: Document TARGET_OBJFMT_CPP_BUILTINS. * - -2003-05-17 Kaveh R. Ghazi - - * builtins.c (validate_arglist): Eliminate libiberty VA_ macros, - always use stdarg. - * c-errors.c (pedwarn_c99): Likewise. - * c-format.c (status_warning): Likewise. - * c-semantics.c (build_stmt): Likewise. - * calls.c (emit_library_call, emit_library_call_value): Likewise. - * collect2.c (notice, fatal_perror, fatal, error): Likewise. - * cpperror.c (cpp_error, cpp_error_with_line): Likewise. - * diagnostic.c (build_message_string, output_printf, - output_verbatim, verbatim, inform, warning, pedwarn, error, sorry, - fatal_error, internal_error, warning_with_decl, pedwarn_with_decl, - error_with_decl, fnotice): Likewise. - * dwarf2asm.c (dw2_asm_output_data, dw2_asm_output_delta, - dw2_asm_output_offset, dw2_asm_output_pcrel, dw2_asm_output_addr, - dw2_asm_output_addr_rtx, dw2_asm_output_nstring, - dw2_asm_output_data_uleb128, dw2_asm_output_data_sleb128, - dw2_asm_output_delta_uleb128, dw2_asm_output_delta_sleb128, - dw2_asm_output_encoded_addr_rtx): Likewise. - * emit-rtl.c (gen_rtx, gen_rtvec): Likewise. - * errors.c (warning, error, fatal, internal_error): Likewise. - * final.c (output_operand_lossage, asm_fprintf): Likewise. - * fix-header.c (fatal): Likewise. - * gcc.c (fatal, error, notice): Likewise. - * gcov.c (fnotice): Likewise. - * genattrtab.c (attr_rtx, attr_printf): Likewise. - * gengtype.c (error_at_line, xasprintf, oprintf): Likewise. - * gensupport.c (message_with_line): Likewise. - * mips-tfile.c (fatal, error): Likewise. - * protoize.c (notice): Likewise. - * ra-debug.c (ra_debug_msg): Likewise. - * read-rtl.c (fatal_with_file_and_line): Likewise. - * rtl-error.c (error_for_asm, warning_for_asm): Likewise. - * tree.c (build, build_nt, build_function_type_list): Likewise. - -2003-05-17 Neil Booth - - * defaults.h (TARGET_CPU_CPP_BUILTINS, CPP_PREDEFINES): Remove. - * gcc.c (cpp_predefines): Remove. - (cpp_unique_options, do_spec_1): Remove handling of CPP_PREDEFINES. - (static_specs): Remove predefines. - * system.h: Poison CPP_PREDEFINES. - * config/freebsd.h, config/openbsd.h, config/ptx4.h, config/svr3.h, - config/svr4.h, doc/tm.texi: Remove references to CPP_PREDEFINES. - -2003-05-17 Neil Booth - - * config/m68k/hp320.h, config/m68k/linux.h, config/m68k/m68k-none.h, - config/m68k/m68k.h, config/m68k/m68kemb.h, config/m68k/m68kv4.h, - config/m68k/openbsd.h, config/m68k/rtemself.h: Remove CPP_PREDEFINES, - use TARGET_OS_CPP_BUILTINS and TARGET_CPU_CPP_BUILTINS instead. - -2003-05-17 Neil Booth - - PR c/9209 - * c-common.c, c-common.h (dollars_in_ident): Remove. - * c-opts.c (DOLLARS_IN_IDENTIFIERS): Default to true. - (c_common_init_options, c_common_decode_option): Set dollars_in_ident. - * cpphash.h (warned_dollar): Rename warn_dollars. - * cppinit.c (struct lang_flags, lang_defaults, cpp_set_lang) - Permit dollars regardless of -std=. - (post_options): Set warn_dollars. - * cpplex.c (forms_identifier_p): Use warn_dollars. - * config/darwin.h, config/alpha/vms.h, config/m68hc11/m68hc11.h: - Remove redundant definitions of DOLLARS_IN_IDENTIFIERS. - * doc/cpp.texi, doc/cppopts.texi, doc/invoke.texi, doc/tm.texi: - Update documentation. - -2003-05-17 Andreas Schwab - - * config/m68k/m68k.c (m68k_output_function_prologue): Use - HOST_WIDE_INT_PRINT_DEC for fprintf and %wd for asm_fprintf when - formatting a HOST_WIDE_INT. - (m68k_output_function_epilogue): Likewise. - -2003-05-17 Zack Weinberg - - * doc/install.texi: Remove information about desupported targets. - -2003-05-17 Andreas Schwab - - * config/m68k/coff.h: Remove support for Sun FPA and Sun SKY board. - * config/m68k/linux.h: Likewise. - * config/m68k/m68k-none.h: Likewise. - * config/m68k/netbsd-elf.h: Likewise. - * config/m68k/sgs.h: Likewise. - * config/m68k/m68k.h: Likewise. - * config/m68k/m68k.md: Likewise. - * config/m68k/m68k.c: Likewise. - * doc/md.texi (Machine Constraints): Remove Sun FPA specific - constraints. - * doc/invoke.texi (Option Summary): Remove -mfpa. - (M680x0 Options): Likewise. - -2003-05-17 David Edelsohn - - * rs6000.c (rs6000_function_value): Simplify REAL_TYPE logic. - -2003-05-17 Neil Booth - - * config/sol2.h: Add TARGET_SUB_OS_CPP_BUILTINS. - * config/sparc/liteelf.h, config/sparc/openbsd64.h, - config/sparc/rtemself.h, config/sparc/sol2-64.h, - config/sparc/sp64-elf.h, config/sparc/sp86x-elf.h: - Update for use of TARGET_SUB_OS_CPP_BUILTINS. - -2003-05-17 Neil Booth - - * i960/i960.h, i960/rtems.h: Use TARGET_OS_CPP_BUILTINS and - TARGET_CPU_CPP_BUILTINS in preference to CPP_PREDEFINES. - -2003-05-17 Neil Booth - - * config.gcc (sparc-*-sysv4*): Add sparc/sysv4-only.h. - * sparc/aout.h, sparc/elf.h, sparc/freebsd.h, sparc/linux.h, - sparc/linux64.h, sparc/lite.h, sparc/litecoff.h, sparc/liteelf.h, - sparc/netbsd-elf.h, sparc/openbsd.h, sparc/openbsd64.h, - sparc/pbd.h, sparc/rtemself.h, sparc/sol2-64.h, sparc/sol2-bi.h, - sparc/sol2.h, sparc/sp64-elf.h, sparc/sp86-elf.h, sparc/sparc.h, - sparc/sysv4.h, - * sparc/sysv4-only.h: New. - -2003-05-17 Alan Modra - - * function.c (assign_parms): Check for zero size args. - -2003-05-16 Kaveh R. Ghazi - - * cfgloopanal.c (test_for_iteration): Use string concatentation on - HOST_WIDE_INT_PRINT_* format specifier to collapse multiple - function calls into one. - * dbxout.c (dbxout_symbol): Likewise. - * defaults.h (ASM_OUTPUT_SIZE_DIRECTIVE): Likewise. - * dwarf2asm.c (dw2_asm_output_data_uleb128, - dw2_asm_output_data_sleb128): Likewise. - * genrecog.c (debug_decision_2): Likewise. - * loop.c (emit_prefetch_instructions): Likewise. - * print-rtl.c (print_rtx): Likewise. - * print-tree.c (print_node_brief, print_node): Likewise. - * ra-debug.c (dump_igraph, dump_graph_cost, - dump_static_insn_cost): Likewise. - * ra-rewrite.c (dump_cost): Likewise. - * sdbout.c (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise. - * sreal.c (dump_sreal): Likewise. - * unroll.c (unroll_loop, precondition_loop_p): Likewise. - * varasm.c (assemble_vtable_entry): Likewise. - - * avr.c (avr_output_function_prologue, - avr_output_function_epilogue, print_operand): Fix format specifier - warnings. - (init_cumulative_args): Mark parameter with ATTRIBUTE_UNUSED. - * avr.h (FUNCTION_VALUE_REGNO_P): Fix signed/unsigned warnings. - -2003-05-16 Geoffrey Keating - - * config/rs6000/rs6000.c (expand_block_move): Unify the TARGET_STRING - and ! TARGET_STRING cases. - - * doc/cppopts.texi (-undef): Fix texinfo warning. - - * doc/cppopts.texi (-H): Document that -H works for PCH files too. - * cppfiles.c (validate_pch): When -H is used, print some information - about PCH files found. - -2003-05-16 Richard Kenner - - * config/mips/t-elf: Remove obsolete rules adding dependencies on tm.h. - * config/mips/t-isa3264, config/mips/t-r3900: Likewise. - * config/mips/t-sr71k: Likewise. - -2003-05-16 Kaveh R. Ghazi - - * arc.c (arc_output_function_prologue, - arc_output_function_epilogue): Fix format specifier warnings. - * arc.h (LARGE_INT): Fix signed/unsigned warnings. - - * v850.c (print_operand): Fix format specifier warnings. - - * ns32k.c (ADJSP, ns32k_output_function_prologue): Fix format - specifier warnings. - - * mcore.c (mcore_print_operand_address, mcore_print_operand): Fix - format specifier warnings. - - * ip2k.c (function_prologue, function_epilogue, print_operand): - Fix format specifier warnings. - * ip2k.md: Likewise. - - * i960.c (i960_output_function_prologue, i960_print_operand, - i960_print_operand_addr): Fix format specifier warnings. - - * i370.c (ascebc, ebcasc): Wrap in macros controlling usage. - (i370_output_function_prologue): Fix format specifier warnings. - * i370.h (PRINT_OPERAND): Likewise. - - * fr30.c (fr30_print_operand): Fix format specifier warnings. - - * dsp16xx.c (print_operand_address): Fix format specifier warning. - * dsp16xx.h (INCLUDE_DEFAULTS): Add missing initializers. - - * c4x.c (c4x_print_operand, c4x_print_operand_address): Fix format - specifier warnings. - - * alpha.c (print_operand_address, alpha_start_function, - unicosmk_output_ssib): Use string concatentation on - HOST_WIDE_INT_PRINT_* format specifier to collapse multiple - function calls into one. - * arm.c (arm_print_operand): Likewise. - * cris.c (cris_asm_output_mi_thunk): Likewise. - * frv.c (frv_asm_output_mi_thunk): Likewise. - * ia64.c (ia64_print_operand, process_set): Likewise. - * m68k.c (m68k_output_function_epilogue, m68k_output_mi_thunk): - Likewise. - * mips/iris5gas.h (PUT_SDB_SIZE): Likewise. - * mips.h (PUT_SDB_INT_VAL, PUT_SDB_SIZE): Likewise. - * pa.c (output_div_insn, pa_asm_output_mi_thunk): Likewise. - * pa.h (PRINT_OPERAND_ADDRESS): Likewise. - * rs6000.c (rs6000_va_start, print_operand_address): Likewise. - * s390.c (s390_assemble_integer): Likewise. - * sparc.c (sparc_flat_function_prologue, - sparc_flat_function_epilogue): Likewise. - * stormy16.c (xstormy16_print_operand_address, xstormy16_print_operand): Likewise. - * vax.c (vax_output_mi_thunk): Likewise. - - * frv.c (frv_print_operand_memory_reference): Fix format specifier - warning. - (frv_rtx_costs): Mark parameter with ATTRIBUTE_UNUSED. - - * m68k.c (m68k_output_function_epilogue): Fix format specifier - warnings. - - * stormy16-protos.h (xs_hi_general_operand, - xs_hi_nonmemory_operand): Prototype. - * stormy16.c (xstormy16_output_shift): Fix format specifier - warnings. - - * cris.c: Fix format specifier warnings. - -2003-05-16 Nick Clifton - - * config/arm/lib1funcs.asm: Fix typo: LSM instead of LSYM. - -2003-05-16 Wolfgang Bangerth - - * doc/bugreport.texi: Remove most of the of the preface of the - bugs section. - -2003-05-16 Jakub Jelinek - - * config/ia64/unwind-ia64.c (uw_update_reg_address): Handle - .save XX, r0. - -2003-05-15 Roger Sayle - - * config/alpha/alpha.h (ASM_OUTPUT_SKIP): Fix typo. - -2003-05-15 Eric Christopher - - * cfgcleanup.c (merge_blocks): Fix return value. - -2003-05-15 Eric Christopher - - * combine.c (expand_compound_operation): Make sure - that zero_extend operation is profitable. - -2003-05-15 Richard Henderson - - * config/alpha/linux.h, config/alpha/linux-elf.h: Remove - code protected by USE_GNULIBC_1. - -2003-05-15 Zack Weinberg - - * config.gcc: Purge all targets obsoleted in GCC 3.3. Also - remove hppa*-*-mpeix* which could not be built, and prune - files from tmake_file= or tm_file= lists that don't exist. - - * config/alpha/alpha-interix.h, config/alpha/alpha32.h - * config/alpha/t-interix, config/arm/conix-elf.h - * config/arm/t-arm-aout, config/arm/t-strongarm-coff - * config/arm/unknown-elf-oabi.h, config/i386/win32.h - * config/m68k/3b1.h, config/m68k/3b1g.h, config/m68k/amix.h - * config/m68k/atari.h, config/m68k/ccur-GAS.h, config/m68k/crds.h - * config/m68k/hp2bsd.h, config/m68k/hp3bsd.h - * config/m68k/hp3bsd44.h, config/m68k/linux-aout.h - * config/m68k/m68k-psos.h, config/m68k/mot3300.h - * config/m68k/pbb.h, config/m68k/plexus.h, config/m68k/sun2.h - * config/m68k/sun2o4.h, config/m68k/sun3.h, config/m68k/sun3mach.h - * config/m68k/sun3n.h, config/m68k/sun3n3.h, config/m68k/sun3o3.h - * config/m68k/t-mot3300, config/m68k/t-mot3300-gald - * config/m68k/t-mot3300-gas, config/m68k/t-mot3300-gld - * config/m68k/tower-as.h, config/m68k/tower.h - * config/m88k/aout-dbx.h, config/m88k/m88k-aout.h - * config/m88k/m88k-modes.def, config/m88k/m88k-move.sh - * config/m88k/m88k-protos.h, config/m88k/m88k.c - * config/m88k/m88k.h, config/m88k/m88k.md, config/m88k/openbsd.h - * config/m88k/sysv4.h, config/m88k/t-luna, config/m88k/t-luna-gas - * config/m88k/t-m88k, config/m88k/t-sysv4, config/mcore/gfloat.h - * config/mips/rtems64.h, config/mips/sni-gas.h - * config/mips/sni-svr4.h, config/mips/t-ecoff - * config/mn10200/lib1funcs.asm, config/mn10200/mn10200-protos.h - * config/mn10200/mn10200.c, config/mn10200/mn10200.h - * config/mn10200/mn10200.md, config/mn10200/t-mn10200 - * config/pa/pa-hiux.h, config/pa/pa-hpux7.h, config/pa/pa-hpux9.h - * config/pa/pa-oldas.h, config/pa/t-mpeix, config/psos.h - * config/romp/romp-protos.h, config/romp/romp.c - * config/romp/romp.h, config/romp/romp.md, config/rs6000/aix31.h - * config/rs6000/aix3newas.h, config/rs6000/mach.h - * config/sparc/bsd.h, config/sparc/hal.h - * config/sparc/linux-aout.h, config/sparc/lynx-ng.h - * config/sparc/lynx.h, config/sparc/netbsd.h - * config/sparc/sp86x-aout.h, config/sparc/splet.h - * config/sparc/sun4gas.h, config/sparc/sun4o3.h - * config/sparc/sunos4.h, config/sparc/t-chorus-elf - * config/sparc/t-halos, config/sparc/t-sparcbare - * config/sparc/t-splet, config/sparc/t-sunos41 - * config/v850/rtems.h: Delete file. - -2003-05-15 Aldy Hernandez - - * config/rs6000/rs6000-protos.h (function_value): Protoize. - - * config/rs6000/rs6000.h (FUNCTION_VALUE): Call function. - - * config/rs6000/rs6000.c (rs6000_function_value): New. - -2003-05-15 Philip Blundell - - * config/arm/arm.c (arm_is_xscale): Rename to arm_arch_xscale. - All uses updated. - (arm_tune_xscale): New variable. - (arm_override_options): Set it. - (arm_adjust_cost): Use it in place of arm_arch_xscale. - (arm_gen_load_multiple): Likewise. - (arm_gen_store_multiple): Likewise. - * config/arm/arm.md (is_xscale): Likewise. - * config/arm/arm.h (arm_tune_xscale): Declare. - -2003-05-15 Philip Blundell - - PR target/10730 - * config/arm/arm.c (adjacent_mem_locations): Reject offsets - involving invalid constants. - -2003-05-15 John David Anglin - - * pa.c (hppa_expand_prologue): Remove blockage. - -2003-05-15 Wolfgang Bangerth - - * doc/bugreport.texi: Remove most of the bug reporting - instructions and merge them into bugs.html. - -2003-05-14 Matt Kraai - - * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Cast - g_switch_value to unsigned HOST_WIDE_INT. - -2003-05-14 Eric Christopher - - * combine.c: Fix header comments. - (distribute_notes): Remove usage of elim_i1, elim_i2. Propagate - to all calls and prototype. - -2003-05-14 Roger Sayle - - PR optimization/10764 - * config/i386/i386.md (atan2df3, atan2sf3, atan2xf3, atan2tf3): - Add an explicit clobber to show that UNSPEC_FPATAN clobbers st(1). - (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): Likewise, - add an explicit clobber to show that UNSPEC_FYL2X clobbers st(1). - (logsf2, logdf2, logxf2, logtf2): Update expander patterns to match - the corresponding *fyl2x_?fxf3 instructions. - -2003-05-14 Bob Wilson - - * config/xtensa/lib2funcs.S (TRAMPOLINE_SIZE): Change from 49 to 59. - * config/xtensa/xtensa-config.h (XCHAL_HAVE_CONST16, - XCHAL_HAVE_L32R): New. - * config/xtensa/xtensa-protos.h (non_const_move_operand, - xtensa_load_constant, xtensa_function_prologue, - xtensa_function_epilogue): Delete prototypes. - (xtensa_expand_prologue): New. - * config/xtensa/xtensa.c (frame_size_const, - TARGET_ASM_FUNCTION_PROLOGUE, TARGET_MACHINE_DEPENDENT_REORG, - non_const_move_operand, xtensa_load_constant, xtensa_reorg, - xtensa_function_prologue): Delete. - (add_operand, xtensa_mem_offset): Formatting. - (move_operand): If the const16 option is available, allow any SFmode - and SImode constants. - (xtensa_emit_move_sequence): Inline the former contents of - xtensa_load_constant with modifications to handle the const16 option. - (override_options): Add xtensa_char_to_class['W'] and set it to - the general register class only if the const16 option is enabled. - Fix formatting. Disallow PIC when using the const16 option. - (print_operand): Reorganize to switch on "letter" instead of the - RTL code. Add output_operand_lossage calls for invalid cases. - Add support for 't' and 'b' letters. - (xtensa_expand_prologue): New function to replace - xtensa_function_prologue and xtensa_reorg. - (xtensa_function_epilogue): Declare this as static. Delete code - to print the retw.n or retw instruction. - (xtensa_return_addr): Use A0_REG instead of 0. - (xtensa_rtx_costs): Add costs for using the const16 option. - * config/xtensa/xtensa.h (MASK_CONST16, TARGET_CONST16): New. - (TARGET_DEFAULT): Add CONST16 if L32R instructions not available. - (TARGET_SWITCHES): Add "const16" and "no-const16". - (REG_CLASS_FROM_LETTER): Add comment about new 'W' letter. - (EXTRA_CONSTRAINT): Change 'T' constraint to only apply when not - using the const16 option. - (TRAMPOLINE_TEMPLATE): Rewrite to avoid hardwired use of l32r insn. - (TRAMPOLINE_SIZE): Change from 49 to 59. - (INITIALIZE_TRAMPOLINE): Adjust offsets to match new trampoline. - (GO_IF_LEGITIMATE_ADDRESS): Do not allow constant pool addresses - when using the const16 option. - (PREDICATE_CODES): Delete non_const_move_operand. - * config/xtensa/xtensa.md (define_constants): Add A1_REG, A8_REG, and - UNSPECV_ENTRY. - (movdi, movdf): If the source is a constant, always expand to a - sequence of movsi insns. - (movdi_internal, movdf_internal): Remove alternative using l32r insns. - (movsi_internal, movsf_internal): Add alternative using const16 insns. - (movsf): Add const16 support. - (entry, prologue, epilogue): New. - (set_frame_ptr): Add missing mode for unspec_volatile operation. - Likewise for subsequent split pattern. - * doc/invoke.texi (Option Summary, Xtensa Options): Document new - "-mconst16" and "-mno-const16" options. - -2003-05-14 Richard Henderson - - * config/ia64/ia64.c (ia64_expand_load_address): Force destination - to be DImode register. Merge load_symptr. - * config/ia64/ia64.md (load_symptr): Remove. - -2003-05-14 Richard Henderson - - * rtl.h (TREE_CONSTANT_POOL_ADDRESS_P): Rename from - DEFERRED_CONSTANT_P. - * integrate.c (copy_rtx_and_substitute): Update use. - * varasm.c (build_constant_desc): Set SYMBOL_REF_DECL - to the copy generated. - (maybe_output_constant_def_contents): Examine TREE_ASM_WRITTEN - of the constant to see if we should emit. - (mark_constant): Similarly. - (output_constant_def_contents): Set TREE_ASM_WRITTEN. - -2003-05-14 David Edelsohn - - * config/rs6000/rs6000.md (movsi_internal2): Use compare for self - move record condition. - (movdi_internal2): Same. - -2003-05-14 Nathan Sidwell - - * gcov-io.h (gcov_write_bytes, gcov_read_bytes): Remove here. - (GCOV_TAG_*) Force type to gcov_unsigned_t. - (GCOV_CHECK, GCOV_CHECK_READING, GCOV_CHECK_WRITING): New. - (struct gcov_var): Remove modified. Add start, length, offset, - overread. Have buffer array for libgcov. - (gcov_sync, gcov_seek): Definitions moved to gcov-io.c. - (gcov_position, gcov_rewrite, gcov_is_eof): Adjust. - * gcov-io.c (gcov_open): Set mode, do not read anything. - (gcov_close): Write final block. - (gcov_write_block, gcov_allocate): New. - (gcov_write_bytes): Make static. Write or allocate buffer. - (gcov_write_unsigned, gcov_write_counter): Buffer can never be - null. - (gcov_write_string): Adjust. - (gcov_write_tag) - (gcov_write_length): Adjust. Flush the block. - (gcov_write_tag_length): Buffer can never be null. - (gcov_read_bytes): Make static. Read in block. - (gcov_sync): Moved here. Adjust. - (gcov_seek): Moved here. Adjust. - * coverage.c (read_counts_file): Adjust. - * gcov-dump.c (print_prefix): Add position parameter. - (flag_dump_positions): New flag. - (options, main, print_usage): Add it. - (dump_file, tag_blocks, tag_arcs, tag_lines, tag_counters, - tag_summary): Adjust. - * gcov.c (read_graph_file, read_count_file): Adjust. - * libgcov.c (gcov_exit): Adjust. - - * Makefile.in (LIBGCC_DEPS): Use $(srcdir) on gcov files - (libgcov.a): Depend on libgcc.a. - (gcov.o, gcov-dump.o): Add gcov-io.c. - * mklibgcc.in (libgcov_c_dep): Use $(srcdir). - - * loop.c (check_dbra_loop): Factor common test. - -2003-05-14 Ben Elliston - - * doc/md.texi (Automaton pipeline description): Grammar fixes. - -2003-05-14 Richard Sandiford - - * target-def.h (TARGET_MACHINE_DEPENDENT_REORG): Define. - (TARGET_INITIALIZER): Include it. - * target.h (struct gcc_target): Add machine_dependent_reorg field. - * toplev.c (rest_of_compilation): Use targetm.machine_dependent_reorg. - * system.h: Poison MACHINE_DEPENDENT_REORG. - - * config/alpha/alpha-protos.h (alpha_reorg): Remove declaration. - * config/alpha/alpha.h (MACHINE_DEPENDENT_REORG): Remove. - * config/alpha/alpha.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (alpha_handle_trap_shadows): Remove "first insn" parameter. - (alpha_align_insns): Likewise. - (alpha_reorg): Likewise. Make static. Update calls to above - functions. - - * config/arm/arm-protos.h (arm_reorg): Remove declaration. - * config/arm/arm.h (MACHINE_DEPENDENT_REORG): Remove. - * config/arm/arm.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (arm_reorg): Remove parameter. Make static. - - * config/avr/avr-protos.h (machine_dependent_reorg): Remove. - * config/avr/avr.h (MACHINE_DEPENDENT_REORG): Remove. - * config/avr/avr.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (avr_reorg): Renamed from machine_dependent_reorg. Make static. - Remove parameter. - - * config/c4x/c4x-protos.h (c4x_process_after_reload): Remove. - * config/c4x/c4x.h (MACHINE_DEPENDENT_REORG): Remove. - * config/c4x/c4x.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (c4x_reorg): Renamed from c4x_process_after_reload. Make static. - Remove parameter. - - * config/d30v/d30v-protos.h (d30v_machine_dependent_reorg): Remove. - * config/d30v/d30v.h (MACHINE_DEPENDENT_REORG): Remove. - * config/d30v/d30v.c (d30v_machine_dependent_reorg): Remove. - - * config/frv/frv-protos.h (frv_machine_dependent_reorg): Remove. - * config/frv/frv.c: Remove orphaned comment. - - * config/i386/i386-protos.h (x86_machine_dependent_reorg): Remove. - * config/i386/i386.h (MACHINE_DEPENDENT_REORG): Remove. - * config/i386/i386.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (ix86_reorg): Renamed from x86_machine_dependent_reorg. Make static. - Remove parameter. - - * config/ia64/ia64-protos.h (ia64_reorg): Remove declaration. - * config/ia64/ia64.h (MACHINE_DEPENDENT_REORG): Remove. - * config/ia64/ia64.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (emit_insn_group_barriers): Remove "first insn" parameter. - (emit_all_insn_group_barriers): Likewise. - (ia64_reorg): Likewise. Make static. Update calls to above functions. - (ia64_output_mi_thunk): Update call to emit_all_insn_group_barriers. - - * config/ip2k/ip2k-protos.h (machine_dependent_reorg): Remove. - * config/ip2k/ip2k.h (MACHINE_DEPENDENT_REORG): Remove. - * config/ip2k/ip2k.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (ip2k_reorg): Renamed from machine_dependent_reorg. Make static. - Remove parameter. - - * config/m68hc11/m68hc11-protos.h (m68hc11_reorg): Remove declaration. - * config/m68hc11/m68hc11.h (MACHINE_DEPENDENT_REORG): Remove. - * config/m68hc11/m68hc11.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (m68hc11_reorg): Make static. Remove parameter. - - * config/mcore/mcore-protos.h (mcore_dependent_reorg): Remove. - * config/mcore/mcore.h (MACHINE_DEPENDENT_REORG): Remove. - * config/mcore/mcore.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (conditionalize_optimization): Remove parameter. - (mcore_reorg): Renamed from mcore_dependent_reorg. Remove parameter. - Make static. Update call to conditionalize_optimization. - - * config/mips/mips-protos.h (machine_dependent_reorg): Remove. - * config/mips/mips.h (MACHINE_DEPENDENT_REORG): Remove. - * config/mips/mips.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (mips_reorg): Renamed from machine_dependent_reorg. Remove parameter. - Make static. - - * config/mmix/mmix-protos.h (mmix_machine_dependent_reorg): Remove. - * config/mmix/mmix.h (MACHINE_DEPENDENT_REORG): Remove. - * config/mmix/mmix.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (mmix_reorg): Renamed from mmix_machine_dependent_reorg. Make static. - Remove parameter. - - * config/pa/pa-protos.h (pa_reorg): Remove declaration. - * config/pa/pa.h (MACHINE_DEPENDENT_REORG): Remove. - * config/pa/pa.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (pa_combine_instructions): Remove "first insn" parameter. - (remove_useless_addtr_insns): Likewise. - (pa_reorg): Likewise. Make static. Update calls to above functions. - - * config/rs6000/rs6000.h (MACHINE_DEPENDENT_REORG): Remove - commented-out definition. - - * config/s390/s390-protos.h (s390_machine_dependent_reorg): Remove. - * config/s390/s390.h (MACHINE_DEPENDENT_REORG): Remove. - * config/s390/s390.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (s390_reorg): Renamed from s390_machine_dependent_reorg. Make static. - Remove parameter. - - * config/sh/sh-protos.h (machine_dependent_reorg): Remove. - * config/sh/sh.h (MACHINE_DEPENDENT_REORG): Remove. - * config/sh/sh.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (sh_reorg): Renamed from machine_dependent_reorg. Make static. - Remove parameter. - (sh_output_mi_thunk): Call sh_reorg directly. - * config/sh/sh.md: Update comment. - - * config/stormy16/stormy16.h (MACHINE_DEPENDENT_REORG): Remove - commented-out definition. - - * config/v850/v850-protos.h (v850_reorg): Remove declaration. - * config/v850/v850.h (MACHINE_DEPENDENT_REORG): Remove. - * config/v850/v850.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (v850_reorg): Make static. Remove parameter. - - * config/xtensa/xtensa-protos.h (xtensa_reorg): Remove declaration. - * config/xtensa/xtensa.h (MACHINE_DEPENDENT_REORG): Remove. - * config/xtensa/xtensa.c (TARGET_MACHINE_DEPENDENT_REORG): Define. - (xtensa_reorg): Make static. Remove parameter. - - * doc/tm.texi (MACHINE_DEPENDENT_REORG): Remove. - (TARGET_MACHINE_DEPENDENT_REORG): Document. - -2003-05-13 Richard Henderson - - * c-decl.c (duplicate_decls): Re-invoke make_decl_rtl if - the old decl had instantiated DECL_RTL. - -2003-05-13 Mike Stump - - * doc/invoke.texi (Option Summary): Kill off documentation for -$. - -2003-05-13 Janis Johnson - - * config/rs6000/sysv4.h (OUTPUT_ASM_ALIGNED_LOCAL): Expect - HOST_WIDE_INT argument. - -2003-05-13 Jason Merrill - - * tree.h (STRIP_MAIN_TYPE_NOPS): New macro. - - * tree.c (iterative_hash_expr): New fn. - - * c-semantics.c (emit_local_var): Don't mess with temp slots if - there's no initializer. - -2003-05-13 Richard Sandiford - - * final.c (final_scan_insn): Apply the effects of frame-related - delay slot insns before emitting a delayed branch. - -2003-05-13 Nick Clifton - - * config/mcore/mcore.md (jump): Use emit_jump_insn. - -2003-05-13 Ulrich Weigand - - * config/s390/s390.h (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Second - parameter of ASM_OUTPUT_SKIP must have type unsigned HOST_WIDE_INT. - -2003-05-12 DJ Delorie - - * expr.c (move_by_pieces): Honor the alignment of TO and FROM. - (emit_push_insn): Don't use push when the source alignment is less - than the stack's push rounding. - -2003-05-13 Zack Weinberg - - * diagnostic.c (output_format): Add support for %m. - (output_printf, output_verbatim, diagnostic_set_info, - verbatim): Set err_no field of the text_info structure being - initialized. - (fatal_io_error): Delete function. - * diagnostic.h (text_info): Add err_no field. - * toplev.h (fatal_io_error): Delete prototype. - - * c-opts.c, c-pch.c, dwarfout.c, ggc-common.c, ggc-page.c, graph.c - * toplev.c, config/mips/mips.c, config/rs6000/host-darwin.c - * objc/objc-act.c: Replace all calls to fatal_io_error with - calls to fatal_error; add ": %m" to the end of all the affected - error messages. - -2003-05-13 Zack Weinberg - - * varasm.c (notice_rtl_inlining_of_deferred_constant): New function. - * rtl.h: Prototype it. - * integrate.c (copy_rtx_and_substitute ): Call it - when appropriate. - -2003-05-13 Ulrich Weigand - - * config/s390/s390.md ("*iordi3_oi"): Do not mark commutative. - ("*iorsi3_oi"): Likewise. - -2003-05-13 Richard Earnshaw - - * arm.md (compare_scc): Use shorter sequence for EQ case. - (ior_scc_scc_cmp, and_scc_scc_cmp): New insn-and-split patterns. - (and_scc_scc): Ensure split only applies when there is a dominance - of the comparisons. - (and_scc_scc_nodom): New insn-and-split pattern. - -2003-05-13 Richard Sandiford - - * unwind-dw2.c (uw_init_context_1): Don't pass &outer_cfa directly - to _Unwind_SetGRPtr(). - -2003-05-13 Michael Eager - - * Makefile.in: Initialize program_transform_cross_name from - @program_transform_name@ instead of target_alias. - -2003-05-12 Janis Johnson - Alan Modra - Jakub Jelinek - - * configure.in (HAVE_AS_TLS): Add powerpc and powerpc64 tests. - * configure: Rebuild. - * config/rs6000/rs6000-protos.h: Update. - * config/rs6000/rs6000.c (rs6000_tls_size): New. - (rs6000_tls_size_string): New. - (rs6000_parse_tls_size_option): New. - (rs6000_legitimize_tls_address): New. - (rs6000_tls_get_addr): New. - (rs6000_got_sym): New. - (rs6000_tls_symbol_ref): New. - (rs6000_tls_symbol_ref_1): New. - (rs6000_get_some_local_dynamic_name): New. - (rs6000_get_some_local_dynamic_name_1): New. - (TARGET_HAVE_TLS): New. - (TARGET_CANNOT_FORCE_CONST_MEM): New. - (rs6000_override_options): Handle -mtls-size option. - (constant_pool_expr_1): Handle TLS symbols. - (rs6000_legitimize_address): Handle TLS symbols. - (rs6000_tls_referenced_p): New. - (rs6000_legitimate_address): Handle TLS symbols. - (rs6000_emit_move): Handle TLS symbols. - (print_operand): Handle TLS symbols. - (uses_TOC): Handle TLS symbols. - (rs6000_emit_prologue): Use symbol for unspec constant. - * config/rs6000/rs6000.h (HAVE_AS_TLS): New. - (some_ld_name): New. - (LEGITIMATE_CONSTANT_P): Handle TLS symbols. - (PRINT_OPERAND_PUNCT_VALID_P): Handle TLS symbols. - (PREDICATE_CODES): Add rs6000_tls_symbol_ref. - * config/rs6000/rs6000.md (load_toc_v4_PIC_1, load_toc_v4_PIC_1b): - Support TLS. - (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_32, 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): New. - * config/rs6000/sysv4.h (SUBTARGET_OPTIONS): Add tls_size. - -2003-05-12 Neil Booth - - * Makefile.in (stage2_build, stage3_build, stage4_build): - Set BUILD_CC to the same as CC. - -2003-05-12 Neil Booth - - * alloc-pool.c (last_id): Put in ENABLE_CHECKING guards. - -2003-05-12 Andreas Schwab - - * config/ia64/ia64.c (ia64_function_ok_for_sibcall): Mark 'exp' - as unused. - (bundling): Initialize 'pos'. - (ia64_expand_builtin): Initialize 'rmode'. - -2003-05-12 David Edelsohn - - * config/rs6000/xcoff.h (ASM_OUTPUT_SKIP): Accept HOST_WIDE_INT. - (ASM_OUTPUT_ALIGNED_COMMON): Same. - (ASM_OUTPUT_LOCAL): Same. - -Mon May 12 21:53:29 CEST 2003 Jan Hubicka - - * varasm.c (output_constant): Fix underflow. - -2003-05-12 Mark Mitchell - - PR other/10745 - * configure.in: Correct detection of GNU ld version number. - * configure: Regenerated. - -2003-05-12 Zack Weinberg - - * diagnostic.c (diagnostic_for_decl): Take a - diagnostic_context argument. Restructure to be consistent - with diagnostic_report_diagnostic. - (diagnostic_count_diagnostic): Now static. Take a - diagnostic_info argument, not just a diagnostic_t. Some code - moved here from internal_error. Move a case label for - clarity. - (diagnostic_action_after_output): New function. Code moved - here from internal_error and fatal_error. - (bug_report_request): New #define so that this text appears in - only one place. - (diagnostic_report_diagnostic): Update to match changes to - diagnostic_count_diagnostic. Call diagnostic_action_after_output. - (diagnostic_set_info): Call gettext here. - - (pedwarn): Update comment. Don't call gettext here. - (sorry): Use report_diagnostic. Don't call gettext here. - (fatal_error): Remove final fnotice and exit, but call - real_abort to prevent warnings about noreturn function returning. - (internal_error): Likewise. Don't do ICE suppression here nor - call context->internal_error. - (warning_with_decl): Suppress for decls in system headers. - Adjust call to diagnostic_for_decl. - (pedwarn_with_decl): Likewise. - (error_with_decl): Adjust call to diagnostic_for_decl. - (error_recursion): Use bug_report_request. - - * diagnostic.h: Remove prototype of diagnostic_count_diagnostic. - * objc/objc-act.c (error_with_ivar, warn_with_method): Don't call - diagnostic_count_diagnostic. - -2003-05-12 John David Anglin - - * pa64-hpux.h (ASM_OUTPUT_ALIGNED_COMMON): Correct last patch. - -Mon May 12 15:57:54 CEST 2003 Jan Hubicka - - * rs6000/darwin.h (ASM_OUTPUT_COMMON): Accept HOST_WIDE_INT - * mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Fix warning. - * mips/mips.h (ASM_OUTPUT_SKIP): Fix typo in the previous patch. - -2003-05-12 Roger Sayle - - * doc/rtl.texi: Document zero_extract as a valid destination - of a set insn. - -2003-05-12 Richard Earnshaw - - * arm/lib1funcs.asm (LSYM): Define -- on ELF prefix a local symbol with - '.'. Change all local symbol definitions and references to use LSYM. - -Mon May 12 11:32:53 CEST 2003 Jan Hubicka - - * expr.h (assemble_static_space): Update prototype. - * output.h (assemble_zeros, output_constant): Likewise. - * elfos.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): Make it 64bit clean - * alpha.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASK_OUTPUT_LOCAL): Make - it 64bit clean. - * elf.h (ASM_OTUPUT_SKIP): Likewise. - * unicosmk.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMM): Likewise. - * arm.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): - Expect HOST_WIDE_INT operand. - * aout.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): - Expect HOST_WIDE_INT operand. - * unknown-elf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): - Expect HOST_WIDE_INT operand. - * avr.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): Expect - HOST_WIDE_INT operand. - * c4x.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP, - ASM_OUTPUT_BSS): Expect HOST_WIDE_INT operand. - * aout.h (ASM_OTUPUT_SKIP): Likewise. - * cris.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Likewise. - * darwin.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON): Likewise. - * dsp16xx.h (ASM_OTUPUT_SKIP): Likewise. - * frv.h (ASM_OTUPUT_SKIP): Likewise. - * h8300.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_LOCAL): Likewise. - * 370.h (ASM_OTUPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): - Make it 64bit - clean. - * att.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand. - * bsd.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): - Make it 64bit clean. - * darwin.h (ASM_OUTPUT_SKIP): Make it 64bit clean.. - * sco5.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Expect - HOST_WIDE_INT operand - * svr3gas.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): - Expect HOST_WIDE_INT operand - * sysv3.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT operand - * i960.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, - ASM_OUTPUT_ALIGNED_LOCAL): Expect HOST_WIDE_INT operand - * ip2k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): - Likewise. - * m32r.h (ASM_OUTPUT_COMMON): Likewise. - * 3b1.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): - Likewise. - * amix.h (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. - * crds.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_ALIGNED_LOCAL): Likewise. - * hp320.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, - ASM_OUTPUT_SKIP): Likewise. - * m68k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): - Likewise. - * m68kelf.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, - ASM_OUTPUT_SKIP): Likewise. - * m68kv4.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, - ASM_OUTPUT_SKIP): Likewise. - * mot3300.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise. - * netbsd-elf.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, - ASM_OUTPUT_SKIP): Likewise. - * sgs.h (ASM_OUTPUT_SKIP): Likewise. - * tower-as.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, - ASM_OUTPUT_SKIP): Likewise. - * m88k.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON, ASM_OUTPUT_SKIP): - Likewise. - * mcore.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_BSS, ASM_OUTPUT_SKIP): Likewise. - * iris.h (ASM_OUTPUT_LOCAL): Likewise. - * mips.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_SKIP): Likewise. - * ns32k.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, - ASM_OUTPUT_SKIP): Make it 64bit clean. - * pa-pro-end.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): - Make it 64bit clean. - * pa.h (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL, - ASM_OUTPUT_SKIP): Make it 64bit clean. - * hpux.h (ASM_OUTPUT_LOCAL, ASM_OUTPUT_ALIGNED_LOCAL): Make it - 64bit clean. - * romp.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect - HOST_WIDE_INT argument - * s390.h (ASM_OUTPUT_SKIP): Expect HOST_WIDE_INT argument. - * sh.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_LOCAL, ASM_OUTPUT_COMMON): Expect - HOST_WIDE_INT argument - * sol2.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument - * sparc.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON): HOST_WIDE_INT argument - * svr3.h (ASM_OUTPUT_SKIP): HOST_WIDE_INT argument - * vax.h (ASM_OUTPUT_SKIP, ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): - HOST_WIDE_INT argument - * vaxv.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument - * xtensa.h (ASM_OUTPUT_LOCAL): HOST_WIDE_INT argument - * varasm.c (asm_output_bss, asm_output_aligned_bss, - asm_emit_uninitialized, assemble_zeros, assemble_static_space): - HOST_WIDE_INT argument - -2003-05-10 Steven Bosscher - - * cgraphunit.c (cgraph_create_edges): Drop walk_tree in - favor of walk_tree_without_duplicates. Add comments. - -2003-05-12 Josef Zlomek - - * alloc-pool.h (ALLOC_POOL_ID_TYPE): New type. - (struct alloc_pool_def): New element 'id'. - * alloc-pool.c (fancy_abort): Extern function prototype. - (abort): Macro which uses fancy_abort. - (struct allocation_object_def): New structure. - (ALLOCATION_OBJECT_PTR_FROM_USER_PTR): New macro. - (USER_PTR_FROM_ALLOCATION_OBJECT_PTR): New macro. - (last_id): New variable. - (create_alloc_pool): Add the offset of u.data to size of element, - increase and use last_id. - (free_alloc_pool): Do the checking only when ENABLE_CHECKING. - (pool_alloc): Likewise. Set ID for elements. - (pool_free): Check whether the PTR was allocated from POOL. - -2003-05-11 Richard Henderson - - PR c/10675 - * c-decl.c: Include hashtab.h. - (detect_field_duplicates): New. - (finish_struct): Use it. - * Makefile.in (c-decl.o): Update. - * c-parse.in (structsp_attr): Nreverse component_decl_list results. - (component_decl_list, component_decl_list2, - components, components_notype): Build list in reverse order. - (enumlist): Clarify docs. Use TREE_CHAIN not chainon. - - * tree.c (chainon): Special case op2 null as well. - Reorg for clarity. - -2003-05-11 Roger Sayle - - * config/i386/i386.md (logsf2, logdf2, logxf2, logdf2): New patterns - to implement log, logf and logl built-ins as inline x87 intrinsics. - (UNSPEC_FYL2X): New unspec to represent x87's "fyl2x" instruction. - (*fyl2x_sfxf3, *fyl2x_dfxf3, *fyl2x_xf3, *fyl2x_tfxf3): New insn - patterns for x87's "fyl2x" instruction, used by log?f2 patterns. - - * reg-stack.c (subst_stack_regs_pat): Handle UNSPEC_FYL2X like - UNSPEC_FPATAN, i.e. replaces two stack operands with single result. - -2003-05-11 Kaveh R. Ghazi - - * Makefile.in (out_object_file): Don't set -Wno-error for ${cpu}.o. - - * sparc.c (print_operand): Fix uninitialized warning. - -2003-05-12 Zdenek Dvorak - - * cfgloopanal.c (num_loop_insns, average_num_loop_insns): Count only - real insns. - * loop-unroll.c (unroll_loop_runtime_iterations): Remove superfluous - condition. - -2003-05-11 Neil Booth - - * doc/cpp.texi: Fix typos. - -2003-05-11 Ulrich Weigand - - * config/s390/s390.c (s390_function_arg_float): New function. - (s390_function_arg_pass_by_reference): Use it. - (s390_function_arg_advance): Likewise. - (s390_function_arg): Likewise. - (s390_va_arg): Likewise - -2003-05-11 Nathan Sidwell - - * coverage.h (coverage_counter_alloc): New function. - * function.h (struct function): Remove arc_profile flag. - * coverage.c (fn_ident): Remove. - (fn_b_ctrs, no_coverage): New. - (get_coverage_counts): Use current_function_funcdef_no. - (coverage_counter_alloc): New. - (coverage_counter_ref): Adjust. - (coverage_begin_output): Check no_coverage. Use - current_function_funcdef_no. - (coverage_end_function): Likewise. - (create_coverage): Set no_coverage. Set DECL_UNINLINEABLE rather - than clearing flag_inline_functions. Do not clear arc_profile - flag. - * function.c (prepare_function_start): Do not set arc_profile - flag. - * profile.c (instrument_edges): Return number of instrumented - edges. Use a for loop. - (branch_prob): Call coverage_counter_alloc. Make BB_TO_GCOV_INDEX - local to here and simplify. Use profile_arc_flag not arc_profile - flag. - (find_spanning_tree): Reformat. - * toplev.c (rest_of_compilation): Use profile_arc_flags and - flag_test_coverage rather than arc_profile flag. - -2003-05-11 Gabriel Dos Reis - - * doc/invoke.texi (Wctor-dtor-privacy): Update documentation. - -2003-05-11 Richard Kenner - - * varasm.c (copy_constant, case VIEW_CONVERT_EXPR): New case. - -2003-05-11 Bruno Haible - - * cppfiles.c (find_or_create_entry): Preserve errno. - -2003-05-11 Neil Booth - - * c-cppbuiltin.c (c_cpp_builtins): Move __STDC_HOSTED__ into - cpplib as it's a Standard Predefined Macro. - * c-opts.c (finish_options): Pass flag_hosted to cpp_init_builtins. - * cppinit.c (_cpp_init_builtins): Take HOSTED. Define - __STDC_HOSTED__ appropriately. - * cpplib.h (_cpp_init_builtins): Update. - * fix-header.c (read_scan_file): Update. - * doc/cpp.texi, doc/cppopts.texi: Update documentation. - -2003-05-11 Gabriel Dos Reis - - PR C++/689 - PR C++/9257 - * c-opts.c (c_common_decode_option): Don't set - warn_ctor_dtor_privacy wen -Wall. - * c-common.c (warn_ctor_dtor_privacy): Don't turn on by default. - -2003-05-10 Alexandre Oliva - - * reload1.c (reload_cse_move2add): Revert part of my 2003-05-09's - patch. - -2003-05-10 Zack Weinberg - - * diagnostic.c: Reorder functions for clarity, putting all the - functions in the "error" family next to each other, and - likewise all the functions in the "error_with_decl" family. - Some other routines were moved too. Add comments. - (vbuild_message_string): Fold into sole caller. - - -2003-05-11 Ulrich Weigand - - * except.c (EH_RETURN_STACKADJ_RTX): Do not define. - (EH_RETURN_HANDLER_RTX): Likewise. - (expand_builtin_eh_return): Do not copy stack adjustment - if EH_RETURN_STACKADJ_RTX is not defined. - (expand_eh_return): Likewise. Also, do not pass stack - adjustment as argument to the eh_return pattern. - * except.h (MUST_USE_SJLJ_EXCEPTIONS): Do not define just - because EH_RETURN_STACKADJ_RTX is not defined. - * unwind-dw.c (uw_update_context_1): If EH_RETURN_STACKADJ_RTX - is not defined, treat stack pointer like a regular register. - (uw_init_context_1): Set up fake initial stack pointer register. - (uw_install_context_1): Do not compute stack adjustment if - EH_RETURN_STACKADJ_RTX is not defined. - - * config/i386/i386.md ("eh_return"): Remove first argument. - * config/mips/mips.md ("eh_return"): Likewise. - * config/rs6000/rs6000.md ("eh_return"): Likewise. - * config/sh/sh.md ("eh_return"): Likewise. - - * config/s390/s390.h (EH_RETURN_STACKADJ_RTX): Remove. - -2003-05-10 Alexander Aganichev - - * config/i386/i386.h (MODES_TIEABLE_P): Fix typo. - -2003-05-10 Nathan Sidwell - - * defaults.h (GCOV_TYPE_SIZE): Remove. - * gcov-io.h (gcov_type): Set to specific mode int on target. - (gcov_unsigned_t, gcov_position_t): New. - (GCOV_TYPE_NODE): New. - (GCOV_TAG_SUMMARY_LENGTH): Adjust. - (GCOV_COUNTERS_SUMMABLE): New. - (gcov_ctr_summary, gcov_sumary, gcov_fn_info, gcov_merge_fn, - gcov_ctr_info, gcov_info): Adjust types. - (gcov_var): Adjust types. - (gcov_write_unsigned, gcov_write_tag, - gcov_write_length, gcov_write_tag_length, gcov_write_summary, - gcov_read_unsigned, gcov_read_summary): Adjust gcov types. - (gcov_position, gcov_sync, gcov_seek): Adjust gcov types. - * gcov-io.c (gcov_write_unsigned, gcov_write_tag, - gcov_write_length, gcov_write_tag_length, gcov_write_summary, - gcov_read_unsigned, gcov_read_summary): Adjust gcov types. - * libgcov.c (gcov_crc32, gcov_version_mismatch, gcov_exit, - __gcov_init, __gcov_merge_add): Adjust gcov types. - * coverage.c (ctr_merge_functions): Constify. - (ctr_names): New. - (read_counts_file): Adjust gcov types. Only summarize & merge - summable counters. - (coverage_counter_ref): Use GCOV_TYPE_NODE. - (build_fn_info_type, build_fn_info_value, build_ctr_info_type, - build_ctr_info_value, build_gcov_info): Adjust types. - * profile.c (branch_prob): Adjust gcov types. - * gcov_dump (dump_file): Adjust gcov types. - -2003-05-10 Richard Earnshaw - - * arm.md (DOM_CC_X_AND_Y, DOM_CC_NX_OR_Y, DOM_CC_X_OR_Y): New - constants. - (ior_scc_scc, and_scc_scc): New insn_and_split patterns. - * arm.c (arm_select_dominance_cc_mode): Renamed from - select_dominance_cc_mode, no-longer static. Use DOM_CC... constants. - Callers updated. - * arm-protos.h (arm_select_dominance_cc_mode): Add prototype. - -2003-05-09 Roger Sayle - - * config/alpha/alpha.c (alpha_start_function): Declare frame_size - as unsigned to avoid signed/unsigned comparison warnings. - -2003-05-09 Bob Wilson - - * config/xtensa/xtensa.c (xtensa_emit_loop_end): Only use "nop.n" - instruction if the Xtensa density option is enabled. - -2003-05-09 Matt Kraai - - * mklibgcc.in: Remove extra quotes. - -2003-05-09 Mark Mitchell - - * config/rs6000/rs6000.c (spe_init_builtins): Fix typo in creation - of int_ftype_void. - -2003-05-09 Alexandre Oliva - - * reload1.c (reload_cse_move2add): Don't turn an implicit - truncation into a self-set in the narrow mode. - -2003-05-09 Richard Earnshaw - - * arm.md (clzsi2): The CLZ instruction is predicable. - -2003-05-09 Bob Wilson - - * config/xtensa/xtensa.c: Formatting. - -2003-05-09 Diego Novillo - - * tree-dump.c (dequeue_and_dump): Use CONSTRUCTOR_ELTS, - instead of TREE_OPERAND to access the operand of a - CONSTRUCTOR node. - -2003-05-09 Diego Novillo - - * tree-dump.c (dequeue_and_dump): CONSTRUCTOR nodes contain only - one operand. - -2003-05-09 Gabriel Dos Reis - - * toplev.h (warning_with_file_and_line): Don't declare. - (error_with_file_and_line): Likewise. - * diagnostic.c (error_with_file_and_line): Remove. - (warning_with_file_and_line): Likewise. - -2003-05-09 Gabriel Dos Reis - - * c-parse.in (if_stmt_locus): New object. - (if_prefix rule): Use it. Don't use warning_with_file_and_line. - (select_or_iter_stmt rule): Likewise. - (if_stmt_file): Remove. - (if_stmt_line): Likewise. - * jump.c: include "diagnostic.h" - (never_reached_warning): Don't use warning_with_file_and_line. - * Makefile.in (jump.o): Add dependce on diagnostic.h - -2003-05-09 Alan Modra - - * expr.c (move_block_from_reg): Remove "size" parm. Localize vars. - Move code handling pieces not larger than a word to.. - * function.c (assign_parms): ..here, but use change_address instead - of adjust_address and operand_subword, and expand_binop instead of - expand_shift. Adjust calls to move_block_from_reg. - * expr.h (move_block_from_reg): Update declaration. - (copy_blkmode_from_reg): Formatting. - * Makefile.in (function.o): Add $(OPTABS_H) to deps. - * config/alpha/alpha.c (alpha_setup_incoming_varargs): Adjust - move_block_from_reg calls. - * config/arc/arc.c (arc_setup_incoming_varargs): Likewise. - * config/i960/i960.c (i960_setup_incoming_varargs): Likewise. - * config/m32r/m32r.c (m32r_setup_incoming_varargs): Likewise. - * config/m88k/m88k.c (m88k_builtin_saveregsk): Likewise. - * config/mips/mips.c (mips_setup_incoming_varargs): Likewise. - * config/pa/pa.c (hppa_builtin_saveregs): Likewise. - * config/romp/romp.h (SETUP_INCOMING_VARARGS): Likewise. - * config/rs6000/rs6000.c (setup_incoming_varargs): Likewise. - * config/sh/sh.c (sh_builtin_saveregs): Likewise. - -2003-05-08 DJ Delorie - - * config/stormy16/stormy16.c (xstormy16_expand_builtin_va_arg): Fix - to handle arguments for which MUST_PASS_IN_STACK is true (e.g., - variable-sized types). - (xstormy16_function_arg): New. Pass them that way too. - * config/stormy16/stormy16-protos.h (xstormy16_function_arg): New. - * config/stormy16/stormy16.h (FUNCTION_ARG): Call it. - -2003-05-08 Aldy Hernandez - - * mklibgcc.in: Use mkinstalldirs when installing multilib - directories. - -2003-05-08 J"orn Rennecke - - * sh.c (gen_block_redirect, split_branches): Use CODE_FOR_jump_compact - instead of CODE_FOR_jump - -2003-05-08 Gabriel Dos Reis - - * objc/objc-act.c (error_with_ivar): Don't use - error_with_file_and_line. - (warn_with_method): Don't use warning_with_file_and_line. - -2003-05-08 Gabriel Dos Reis - - * stmt.c (emit_locus): New macro. - (emit_filename): Remove. - (emit_lineno): Likewise. - (struct stmt_status): Replace members x_emit_filename and - x_emit_lineno with x_emit_locus. - (set_file_and_line_for_stmt): Adjust. - (expand_expr_stmt_value): Don't use warning_with_file_and_line. - (warn_if_unused_value): Likewise. - (check_seenlabel): Likewise. - -2003-05-08 Gabriel Dos Reis - - * c-decl.c (define_label): Tidy. Don't use any of - error_with_file_and_line or warning_with_file_and_file. - (pending_xref_error): Likewise. - (store_parm_decls): Likewise. - (current_function_prototype_locus): New object. Package from - current_function_prototype_file and current_function_prototype_line. - (start_function): Use it. - (current_function_prototype_file): Remove. - (current_function_prototype_line): Remove; - -2003-05-08 Kaveh R. Ghazi - - * builtins.c (readonly_data_expr): New function. - (expand_builtin_memmove): Optimize any rodata source, not just - strings. - -2003-05-07 David Mosberger - - * unwind-libunwind.c (_Unwind_FindEnclosingFunction): New. - -2003-05-07 Richard Henderson - - * config/i386/i386.c (ix86_split_long_move): Fix base register - mode for XFmode splits for TARGET_64BIT. - -2003-05-07 Richard Henderson - - * sched-ebb.c (schedule_ebb): Supply the correct starting - block number to save_line_notes. - -2003-05-07 Richard Henderson - - * toplev.c (enum dump_file_index): Swap DFI_ce3, DFI_bbro. - (dump_file): Likewise. - -2003-05-07 David Mosberger - - * config/ia64/crtbegin.asm (__do_jv_register_classes): Don't - forget to preserve gp. - * config/ia64/crtend.asm (__do_global_ctors_au): Ditto. - - * config/ia64/crtbegin.asm (__do_jv_register_classes): Add missing - .prologue directive. - Use .skip instead of data8 for .bss section to make Intel - Assembler (ias) happy. Minor whitespace fixups. Make "nop 0" - explicit in the .mib bundles and remove the unnecessary stop - bits. Replace local labels with normal labels, to make ias - happy. Don't register __do_global_ctors_aux here, do it in - crtend.asm instead. - - * config/ia64/crtend.asm [HAVE_INIT_FINI_ARRAY]: Register - __do_global_ctors_aux in .init_array section instead of - declaring it as a hidden global. Replace local labels with - ordinary labels to make ias happy. - -2003-05-07 Richard Henderson - - PR c++/10570 - * except.c: Revert 04-01 and 04-02 forced-unwind changes. - * flags.h, toplev.c, doc/invoke.texi: Likewise. - - * unwind-dw2.c (_Unwind_GetCFA): Fix ptr->int conversion warning. - * unwind.inc (_Unwind_DeleteException): Check for null - exception_cleanup. - - * unwind-sjlj.c (_Unwind_SjLj_Resume_or_Rethrow): New. - * unwind.inc (_Unwind_Resume_or_Rethrow): New. - * unwind.h: Declare them. - * libgcc-std.ver (GCC_3.3): Export them. - -2003-05-07 Richard Henderson - - * unwind-dw2.c (_Unwind_GetCFA): Cast pointer to _Unwind_Ptr, - not _Unwind_Word. - -2003-05-07 Zack Weinberg - - * stmt.c (force_label_rtx): New function, based on logic - formerly found in expand_expr. - * expr.h: Prototype it. - * expr.c (expand_expr ): Use force_label_rtx if - appropriate. - * varasm.c (decode_addr_const ): Use force_label_rtx. - - * print-tree.c (debug_tree): Free the table after we're done - with it. Use putc. - -2003-05-07 Aldy Hernandez - - * config/rs6000/spe.h: Reverse arguments for __ev_subfw. - Unreverse arguments for __ev_subw. - - * config/rs6000/spe.md (evsubfw): Reverse arguments of assembly. - -2003-05-07 Nick Clifton - - * config/stormy16/stormy-abi: Update to include - R_XSTORMY16_FPTR16, R_XSTORMY16_LO16, R_XSTORMY16_HI16 and - R_XSTORMY16_12 relocs. - -2003-05-07 Alan Modra - - * function.c (assign_parms): Correct reversed reg_parm_stack_space - test. Add partial in-regs size to stack_args_size. - -2003-05-07 Gerald Pfeifer - - * doc/invoke.texi (Warning Options): Mark -Wmissing-declarations - as a C only option. - -2003-05-07 Nathan Sidwell - - * gcov-io.h (GCOV_LOCKED): New #define. - (GCOV_LINKAGE): Make sure it is #defined. - (gcov_write_string, gcov_write_tag, gcov_write_length, - gcov_read_string, gcov_time): Poison in libgcov. - (gcov_seek_end): Remove. - (gcov_write_tag_length, gcov_sync, gcov_rewrite): New. - (GCOV_TAG_FUNCTION_LENGTH, GCOV_TAG_BLOCKS_LENGTH, - GCOV_TAG_ARCS_LENGTH, GCOV_TAG_COUNTER_LENGTH, - GCOV_TAG_SUMMARY_LENGTH): New #defines. - (gcov_write_tag, gcov_write_length): Not in libgcov. - * gcov-io.c (gcov_open): Use GCOV_LOCKED. - (gcov_write_tag, gcov_write_length): Not in libgcov. - (gcov_write_tag_length): New. - (gcov_write_summary): Use gcov_write_tag_length. - * libgcov.c: Always #include gcov-io.h. - (IN_LIBGCOV): -1 for inhibit_libc, +1 otherwise. - (GCOV_LINKAGE): Define to nothing for L_gcov. - (gcov_exit): Replace gcov_write_tag, gcov_write_length with - gcov_write_tag_length. Use gcov_rewrite & gcov_seek. - * gcov.c (read_graph_file): Replace gcov_seek by gcov_sync. - (read_count_file): Likewise. - * gcov-dump.c (dump_file): Likewise. - * coverag.c (read_counts_file): Likewise. - -2003-05-06 Mark Mitchell - - PR other/10658 - * gcc.c (process_command): Update copyright date. - -2003-05-06 Phil Edwards - - * doc/install.texi (mips-*-*): Add note about libstdc++. - -2003-05-06 DJ Delorie - - * config/stormy16/stormy16.c (xstormy16_function_profiler): New. - * config/stormy16/stormy16.h (FUNCTION_PROFILER): Call it. - * config/stormy16/stormy16-protos.h (xstormy16_function_profiler): New. - -2003-05-06 - - * c-opts.c (COMMAND_LINE_OPTIONS): Reject -Wmissing-prototypes - and -Wstrict-prototypes if C++. - -2003-05-06 Aldy Hernandez - - * config/rs6000/linuxspe.h: New file. - - * config.gcc: Add powerpc-*-linux-gnuspe* target. - -2003-05-06 Richard Henderson - - * unwind-dw2.c (uw_update_context_1): Only set cfa as sp if - previous frame didn't save sp. Clear sp for next frame. - (uw_install_context_1): Honor saved sp from frame. - -2003-05-06 Richard Sandiford - - * config/mips/mips-protos.h (mips_subword, mips_output_move): Declare. - (mips_move_1word, mips_move_2words): Remove declaration. - (mips_split_64bit_move_p, mips_split_64bit_move): Declare. - (mips_restore_gp): Remove insn argument. - * config/mips/mips.h (FP_REG_RTX_P): New macro. - * config/mips/mips.c (volatile_buffer): Remove. - (mips_subword, mips_split_64bit_move_p, mips_split_64bit_move): New. - (mips_move_1word, mips_move_2words): Remove, replacing with... - (mips_output_move): ...this new function. - (mips_restore_gp): Remove insn argument. Adjust for above changes. - (print_operand): Make '%h' print %hi(op) for HIGH operands. Remove - handling of floating-point constants. Handle zero CONST_DOUBLE - arguments. - (mips_annotate_frame_insn): Replace with... - (mips_set_frame_expr): ...this, which just takes one argument. - (mips_frame_set): Change the register argument to an rtx. - (mips_emit_frame_related_store): Use mips_split_64bit_move_p to - check whether moves should be split. Use mips_split_64bit_move - to split them. Use mips_subword to generate the high and low - parts of a paired FPR. Adjust calls to frame_set and - mips_set_frame_expr. - (mips_expand_prologue): Simplify due to above changes. - * config/mips/mips.md: Add splitters for 64-bit moves on 32-bit - targets, replacing xisting register-only versions. - (UNSPEC_STORE_DF_HIGH): New unspec. - (UNSPEC_LOAD_DF_LOW, UNSPEC_LOAD_DF_HIGH): New unspecs. - (mulsi3_r4000, muldi3_internal2): Avoid use of mips_move_1word. - (*paradoxical_extendhidi2): Remove. - (movdi_internal, movdi_internal2): Use mips_output_move. - (*movdi_internal2_mips16, movsi_internal, movcc): Likewise. - (movsf_internal1, movsf_internal2): Likewise. - (movdf_internal1a): Likewise. Fix length and type of f <- G case. - (movdf_internal1b): Use mips_output_move. Fix type of f <- G case. - (movdf_internal2): Use mips_output_move. Fix lengths of FPR moves. - Add m <- G alternative. - (load_df_low, load_df_high, store_df_low): New patterns. - (movhi_internal): Use @ template instead of calling a function. - Remove unnecessary 'z' alternatives. - (movqi_internal): Likewise. - (exception_receiver): Update call to mips_restore_gp. - -2003-05-06 Richard Sandiford - - * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Remove. - (mips_delegitimize_address): Declare. - * config/mips/mips.h (ASM_SIMPLIFY_DWARF_ADDR): Undefine. - (FIND_BASE_TERM): Define. - * config/mips/mips.c (TARGET_DELEGITIMIZE_ADDRESS): Defi~e. - (mips_delegitimize_address): Renamed from mips_simplify_dwarf_addr. - Handle small-data addresses. - -2003-05-05 Roger Sayle - - * real.c (real_powi): New function to calculate the value of - a real raised to an integer power, i.e. pow(x,n) for int n. - (real_sqrt): Convert to using the faster do_add, do_multiply - and do_divide API for consistency with the rest of real.c. - * real.h (real_powi): Prototype here. - * builtins.c (fold_builtin): Avoid local variable mode when - evaluating sqrt at compile time. Attempt to evaluate pow at - compile-time, by checking for an integral exponent. - -2003-05-05 Richard Henderson - - * doc/extend.texi (Variable Attributes): Re-sort table and tidy. - -2003-05-05 David O'Brien - - * config/rs6000/sysv4.h (CPP_OS_FREEBSD_SPEC): Add __ELF__ to mirror - other FreeBSD ports. - (LINK_OS_FREEBSD_SPEC): Mirror conventions on other FreeBSD ports. - (_LITTLE_ENDIAN): Use __LITTLE_ENDIAN__ instead. - -2003-05-05 Janis Johnson - - * Makefile.in: (site.exp): Add ALT_CC_UNDER_TEST, add quotes around - expanded variables. - * doc/sourcebuild.texi (C tests): Describe gcc.dg/compat tests. - -2003-05-05 Zack Weinberg - - * rtl.h (STRING_POOL_ADDRESS_P): Rename to DEFERRED_CONSTANT_P. - * varasm.c (struct varasm_status): Add deferred_constants field. - (n_deferred_strings): Delete variable. - (n_deferred_constants): New #define. - (struct constant_descriptor_tree): Kill next and label fields. - (const_hash_table, MAX_HASH_TABLE): Delete. - (const_desc_htab): New static variable. - (const_hash): Rename const_desc_hash, and make it fit the - hashtab.h interface. - (const_desc_eq): New. - (const_hash_1, compare_constant): Const-ify arguments. - (build_constant_desc): Set DEFERRED_CONSTANT_P on all new - SYMBOL_REFs. Clarify comments. Don't set desc->label. - (output_constant_def): Do the lookup/insert using the - hashtab.h interface. Don't muck with n_deferred_constants or - DEFERRED_CONSTANT_P here. - Always call maybe_output_constant_def_contents. - (maybe_output_constant_def_contents): Take a pointer to the - descriptor, not the EXP and RTL separately. Return - immediately if this constant is not deferred. Defer output of - everything, except writable string constants. Update - n_deferred_constants here. - (output_constant_def_contents): Now takes just one argument, - an rtx. Clear DEFERRED_CONSTANT_P here. - (mark_constant_pool): Update for rename of n_deferred_strings. - (mark_constant): Don't clear DEFERRED_CONSTANT_P here. - - (init_varasm_status): Clear p->deferred_constants. - (init_varasm_once): Call htab_create_ggc for const_desc_htab. - -2003-05-05 Kaveh R. Ghazi - - * builtins.c (expand_builtin_stpcpy): Only expand when the length - of the source string can be evaluated at compile-time. - -2003-05-05 Aldy Hernandez - - * testsuite/gcc.c-torture/compile/simd-6.c: New. - - * c-typeck.c (digest_init): Handle arrays of vector constants. - -2003-05-05 Jakub Jelinek - - * builtins.c (expand_builtin_mempcpy): New function. - (expand_builtin_stpcpy): Optimize stpcpy whose return value is - ignored into strcpy no matter what arguments it has. - (expand_builtin) : Call - expand_builtin_mempcpy. - -2003-05-05 Aldy Hernandez - - * testsuite/gcc.dg/20030505.c: New. - - * c-typeck.c (convert_for_assignment): Opaque pointers can - interconvert. - - * config/rs6000/rs6000.c: New global opaque_p_V2SI_type_node. - (rs6000_init_builtins): Initialize opaque_p_V2SI_type_node. - (spe_init_builtins): Rename all pv2si_type_node to - opaque_p_V2SI_type_node. - Remove declaration of pv2si_type_node. - (is_ev64_opaque_type): Accept opaque pointers. - -2003-05-05 Geoffrey Keating - - * config/rs6000/rs6000.c (validate_condition_mode): Use - flag_finite_math_only. - (rs6000_reverse_condition): Never return UNKNOWN; use - flag_finite_math_only. - (rs6000_generate_compare): Use flag_finite_math_only. - (rs6000_emit_cmove): Handle UNLE. Support UNEQ under -ffast-math. - Use HONOR_* rather than flag_unsafe_math_optimizations. Correct - UNGE and GT cases. Handle UNEQ and LTGT when ! HONOR_NANS. - - * toplev.c (check_global_declarations): Suppress not-used warning - for volatile variables. - -2003-05-05 Olivier Hainque - - * expr.c (expand_expr, case BIT_FIELD_REF): Refine the test forcing - usage of bitfield instructions for mode1 != BLKmode, only ignoring - SLOW_UNALIGNED_ACCESS if the field is not byte aligned. - (store_field): Likewise. - -2003-05-05 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_expand_binop_builtin): Add - evsubifw to builtins accepting 5-bit unsigned constants. - (easy_vector_constant): Return if V1DImode. Fix typo. - -2003-05-05 Aldy Hernandez - - * config/rs6000/spe.h: Revert licensing change from last patch. - -2003-05-05 DJ Delorie - - * config/stormy16/stormy16.md (negsi2): Allocate the pseudos - before reload, but defer the split until after. - * config/stormy16/stormy16.c (xstormy16_expand_arith): Modify - to match. - -2003-05-05 David Edelsohn - - * config/rs6000/rs6000.h (ASM_CPU_SPEC): Add 440 support. - * config/rs6000/vxworks.h (CC1_SPEC): Use -mcpu=440 for t440. - -2003-05-05 Zdenek Dvorak - - * libgcov.c (__gcov_merge_add): Do not use gcov_type when inhibit_libc - is defined. - -2003-05-04 Kaveh R. Ghazi - - * builtin-attrs.def (ATTR_NOTHROW_NONNULL_1, - ATTR_NOTHROW_NONNULL_2, ATTR_NOTHROW_NONNULL_3): Renamed from - ATTR_NONNULL_1, ATTR_NONNULL_2 and ATTR_NONNULL_3. - - (ATTR_NOTHROW_NONNULL_1_2, ATTR_NOTHROW_NONNULL_1_4, - ATTR_CONST_NOTHROW_NONNULL_1, ATTR_PURE_NOTHROW_NONNULL_1, - ATTR_PURE_NOTHROW_NONNULL_1_2, ATTR_MALLOC_NOTHROW_NONNULL_1): - New. - - * builtins.def (DEF_EXT_FALLBACK_BUILTIN): Accept ATTRS argument. - (BUILT_IN_BZERO, BUILT_IN_BCOPY, BUILT_IN_BCMP): Update comment - - (BUILT_IN_INDEX, BUILT_IN_RINDEX, BUILT_IN_MEMCPY, - BUILT_IN_MEMMOVE, BUILT_IN_MEMCMP, BUILT_IN_MEMSET, - BUILT_IN_MEMPCPY, BUILT_IN_STRCAT, BUILT_IN_STRNCAT, - BUILT_IN_STPCPY, BUILT_IN_STRCPY, BUILT_IN_STRNCPY, - BUILT_IN_STRCMP, BUILT_IN_STRNCMP, BUILT_IN_STRLEN, - BUILT_IN_STRSTR, BUILT_IN_STRPBRK, BUILT_IN_STRSPN, - BUILT_IN_STRCSPN, BUILT_IN_STRCHR, BUILT_IN_STRRCHR, BUILT_IN_NAN, - BUILT_IN_NANF, BUILT_IN_NANL, BUILT_IN_NANS, BUILT_IN_NANSF, - BUILT_IN_NANSL, BUILT_IN_PUTS, BUILT_IN_FPUTC, BUILT_IN_FPUTS, - BUILT_IN_FWRITE, BUILT_IN_PUTS_UNLOCKED, BUILT_IN_FPUTC_UNLOCKED, - BUILT_IN_FPUTS_UNLOCKED, BUILT_IN_FWRITE_UNLOCKED, - BUILT_IN_STRDUP): Add "nonnull" attribute. - -2003-05-04 Richard Kenner - - * expr.c (store_field): Don't clobber TEMP in shift: it might be - a variable. - (get_inner_reference): Don't go through a VIEW_CONVERT_EXPR - whose purpose is to step up the alignment. - (expand_expr, case ADDR_EXPR): Force LO_SUM into memory, just like REG. - - * stor-layout.c (compute_record_mode): Relax restriction - on fields crossing word boundaries forcing BLKmode. - -2003-05-04 Neil Booth - - * cppinit.c (cpp_create_reader, post_options): Warn about - trigraphs unless explicity set or -trigraphs. - * cpplex.c (warn_in_comment): New. - (_cpp_process_line_notes): Better handling of -Wtrigraphs. - (_cpp_skip_block_comment): Add call to _cpp_process_line_notes. - * doc/cppopts.texi, doc/cpp.texi: Update. - -2003-05-04 Zdenek Dvorak - - * Makefile.in (LIBGCOV): Add _gcov_merge_add. - * gcov-io.h: Make GCOV_LINKAGE extern in libgcov and prevent resulting - namespace clash. - (GCOV_MERGE_FUNCTIONS): New. - (gcov_merge_fn): Declare. - (struct gcov_ctr_info): New field "merge". - (__gcov_merge_add): Declare. - * coverage.c (ctr_merge_functions): New. - (build_ctr_info_type, build_ctr_info_value): Initialize merge field - of gcov_ctr_info type. - * libgcov.c (__gcov_merge_add): New. - (gcov_exit): Call a hook to merge values of counters. - -2003-05-04 Gabriel Dos Reis - - * toplev.h (pedwarn_with_file_and_line): Don't declare. - * diagnostic.c (pedwarn_with_file_and_line): Remove. - -2003-05-04 Gabriel Dos Reis - - * varasm.c (assemble_variable): Don't use error_with_file_and_line. - -2003-05-04 Kaveh R. Ghazi - - * builtins.c (expand_builtin_constant_p, expand_builtin_strlen, - expand_builtin_frame_address): Update prototypes. - (expand_builtin_constant_p, expand_builtin_strlen, - expand_builtin_strcpy, expand_builtin_memset, - expand_builtin_bzero, expand_builtin_args_info, - expand_builtin_frame_address): Pass in just the argument(s) - needed, not the entire expression `exp'. - (expand_builtin): Update all calls to these functions. - -2003-05-03 Richard Henderson - - * builtins.c (expand_builtin) : Remove. - : New. - * builtins.def (BUILT_IN_DWARF_FP_REGNUM): Remove. - (BUILT_IN_DWARF_SP_COLUMN): New. - * dwarf2out.c (expand_builtin_dwarf_fp_regnum): Remove. - (expand_builtin_dwarf_sp_column): New. - * except.h: Update to match. - * unwind-dw2.c (execute_stack_op): Correct stack push typo. - (execute_cfa_program): Record location expression address - before extracting length. - (uw_update_context_1): Install old CFA into stack pointer column. - (uw_init_context_1): Set cfa_reg to stack pointer column. - -2003-05-03 Richard Henderson - - * config/rs6000/rs6000.c (constant_pool_expr_p): Make static and - return bool. - (toc_relative_expr_p): Likewise. - (SPE_CONST_OFFSET_OK): Move from rs6000.h. - (legitimate_constant_pool_address_p): Move from rs6000.h, change - into a function, downcase all users. - (legitimate_small_data_p): Likewise. - (legitimate_offset_address_p): Likewise. - (legitimate_indexed_address_p): Likewise. - (legitimate_indirect_address_p): Likewise. - (legitimate_lo_sum_address_p): Likewise. - (rs6000_mode_dependent_address): Likewise. - * rs6000.h (CONSTANT_POOL_EXPR_P, TOC_RELATIVE_EXPR_P): Remove. - (SPE_CONST_OFFSET_OK, LEGITIMATE_CONSTANT_POOL_ADDRESS_P, - LEGITIMATE_SMALL_DATA_P, LEGITIMATE_OFFSET_ADDRESS_P, - LEGITIMATE_INDEXED_ADDRESS_P, LEGITIMATE_INDIRECT_ADDRESS_P, - LEGITIMATE_LO_SUM_ADDRESS_P): Move into rs6000.c. - (LEGITIMATE_ADDRESS_INTEGER_P): Remove. - (GO_IF_MODE_DEPENDENT_ADDRESS): Use rs6000_mode_dependent_address. - * config/rs6000/rs6000-protos.h: Update. - -2003-05-03 Geoffrey Keating - - * config/rs6000/rs6000.h (REVERSIBLE_CC_MODE): Define. - (REVERSE_CONDITION): Define. - - * config/rs6000/rs6000.c (scc_comparison_operator): Make equivalent - to branch_positive_comparison_operator. - (ccr_bit): Check that sCOND conditions are actually a positive bit. - (print_operand): Remove %D substitution. - (rs6000_emit_sCOND): Generate complement operation to ensure that - sCOND input is a positive bit. - * config/rs6000/rs6000.md: Rearrange sCOND templates to be in the - same order as bCOND, and add the missing ones. Remove the %D - substitutions from the scc patterns. - - * simplify-rtx.c (simplify_relational_operation): Add case for - ! (fabs(x) < 0.0). - -2003-05-03 Bruce Korb - - * gcc/fixinc/fixincl.tpl(dne): restore this to force merge conflicts - in fixincl.x - * gcc/fixinc/inclhack.def(bsd_stdio_attrs_conflict): fix placement - -2003-05-03 Aldy Hernandez - - * config/rs6000/spe.h: Remove unecessary casts. Misc cleanups. - -2003-05-03 Zack Weinberg - - PR c/10604 - * c-common.c (warn_sign_compare): Initialize to -1. - * c-opts.c (c_common_init_options): Don't set warn_sign_compare here. - (c_common_decode_option ): Set warn_sign_compare - for C++ only. - (c_common_post_options): Set warn_sign_compare from extra_warnings - if it's still -1 at this point. - - * toplev.c (maybe_warn_unused_parameter): New static variable. - (set_Wextra): New static function. - (W_options): Remove "extra". - (decode_W_option): Call set_Wextra. - (independent_decode_option): Likewise. - (set_Wunused): Cooperate with set_Wextra in setting - warn_unused_parameter. - (rest_of_compilation): No need to check extra_warnings as - well as warn_uninitialized. - - * c-typeck.c (build_binary_op, build_conditional_expr): - No need to check extra_warnings as well as warn_sign_compare. - (internal_build_compound_expr): No need to check extra_warnings - as well as warn_unused_value. - * function.c (expand_function_end): No need to check extra_warnings - as well as warn_unused_parameter. - * stmt.c (expand_expr_stmt_value): No need to check extra_warnings - as well as warn_unused_value. - - * doc/invoke.texi: Clarify documentation of -Wsign-compare. - - * Makefile.in: Disable -Werror for gengtype-lex.o. - -2003-05-03 Olivier Hainque - - * emit-rtl.c (last_call_insn, add_function_usage_to): New functions. - * rtl.h (last_call_insn, add_function_usage_to): New prototypes. - * builtins.c (expand_builtin_apply): Use the new emit-rtl functions. - * calls.c (emit_call_1): Likewise. - (expand_call): For calls initializing constant memory, replace - emission of standalone mem /u clobber with function usage entry. - * expr.c (emit_block_move_via_libcall): Likewise. - * cse.c (count_reg_usage, case EXPR_LIST): New case. - * flow.c (propagate_one_insn): Pass entire operand of - CALL_INSN_FUNCTION_USAGE to mark_used_regs. - * integrate.c (try_constants): For CALL_INSNs, substitute constants - within the FUNCTION_USAGE also. - * loop.c (prescan_loop): Note clobbers of const mem mentioned in - FUNCTION_USAGE lists. - * reload1.c (replace_pseudos_in): Renamed. - (reload): Use it for clobbers surviving until the end of the reload. - -2003-05-03 Richard Kenner - - * expr.c (expand_expr, case VIEW_CONVERT_EXPR): Don't use - gen_lowpart on non-integer modes. - - * stor-layout.c (place_field): When adjusting offset_align, use - desired_align, not DECL_ALIGN. - -2003-05-03 Nathan Sidwell - - * c-decl.c (pending_invalid_xref_file): Remove. - (pending_invalid_xref_line): Remove. - (pending_invalid_xref_location): New. - (lookup_label): Use location_t and input_location directly. - (lookup_tag): Likewise. - (pending_xref_error): Likewise. - (c_expand_body_1): Likewise. - * c-common.c (x_expand_start_cond): Likewise. - * c-semantics.c (genrtl_for_stmt): Likewise. - (find_reachable_label): Likewise. - * expr.c (expand_expr): Likewise. - * integrate.c (output_inline_function): Likewise. - * tree-inline.c (find_alloca_call): Likewise. - (find_builtin_longjmp_call): Likewise. - * gcc.c (input_filename): Make static. - -2003-05-03 Richard Sandiford - - * config/mips/mips.md: Fix comment typo. - - * config/mips/mips.c (mips_integer_op): New structure. - (MIPS_MAX_INTEGER_OPS): Define. - (mips_const_insns): Use mips_build_integer to determine the number - of instructions needed to load a CONST_INT. - (move_operand): Reject compound CONST_INTs. - (mips_build_shift, mips_build_lower, mips_build_integer): New fns. - (mips_move_integer): New fn. - (mips_legitimize_const_move): Pass CONST_INTs to mips_move_integer. - (mips_legitimize_move): Only legitimize constants when moving - word or subword values. - -2003-05-02 Matt Kraai - - * Makefile.in (gcov-iov.h): Use move-if-change and a stamp. - -2003-05-02 Kaveh R. Ghazi - - * builtins.c (expand_builtin_stpcpy): Copy `arglist' before - modifying it. - -2003-05-03 Falk Hueffner - Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add Zdenek Dvorak, Aldy - Hernandez, and Kazu Hirata. Update Richard Henderson. - -2003-05-02 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_attribute_table): Add 'extern' - to tentative declaration. - - * config/rs6000/sysv4.h (SYMBOL_FLAG_SMALL_V4): Delete. - (SYMBOL_FLAG_SMALL_V4): Delete. - * config/rs6000/rs6000.c (small_data_operand): Use SYMBOL_REF_SMALL_P. - (rs6000_elf_encode_section_info): Don't set SYMBOL_FLAG_SMALL_V4. - (rs6000_elf_in_small_data_p): Add extra section names. Add - comment about TREE_PUBLIC test. - - * c-semantics.c (genrtl_switch_stmt, genrtl_if_stmt): Call - expand_stmt on result of expand_unreachable_stmt. - -2003-05-02 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add Daniel Berlin. - -2003-05-02 David Edelsohn - - * config/rs6000/{603.md,6xx.md,7450.md,7xx.md,rs64.md}: Decrease - number of automata. - - * config/rs6000/rs6000.c (symbol_ref_operand): Check - SYMBOL_REF_FUNCTION_P on AIX. - (current_file_function_operand): Same. - * config/rs6000/rs6000.md (call,call_value): Force non-function - symbol_ref into register on AIX. - -2003-05-02 Alan Modra - - * calls.c (struct arg_data): Move offset, slot_offset, size and - alignment_pad to struct locate_and_pad_arg_data. Update all refs. - (initialize_argument_information): Adjust call to locate_and_pad_parm. - Delete alignment_pad var. Don't calculate slot_offset here. - (emit_library_call_value_1): Delete alignment_pad, offset and size - vars. Use struct locate_and_pad_arg_data instead. Adjust refs. - Adjust call to locate_and_pad_parm. Don't tweak arg size for - partial in-regs here. Formatting fixes. - * expr.h (struct locate_and_pad_arg_data): New struct. - (locate_and_pad_parm): Adjust declaration. - * function.c (assign_parms): Localize vars. Use "locate" instead of - other arg location vars. Don't invoke FUNCTION_ARG or - FUNCTION_INCOMING_ARG unless pretend_named is different from - named_arg. Heed MUST_PASS_IN_STACK and set up "partial" before - calling locate_and_pad_parm. Adjust locate_and_pad_parm call. - Use slot_offset for stack home of reg parms. Correct test for - parm passed in memory. Formatting fixes. - (locate_and_pad_parm): Add "partial" to params. Replace offset_ptr - arg_size_ptr and alignment pad with "locate". Set slot_offset here. - Correct initial_offset_ptr handling. Localize vars. Always pad - locate->offset even when in_regs. - -2003-05-02 Nathan Sidwell - - * Makefile.in (TREE_H): Replace location.h with input.h. - (GTFILES) Remove location.h - (gt-lists.h): Replace gt-location.h with gt-input.h - * input.h (input_filename, input_line): Remove variables. - (location_s, location_t): Move from location.h. - (input_location): New. - (input_filename, input_line): New #defines. - * location.h: Remove. - * tree.h: Replace location.h with input.h. - (input_filename, input_line): Remove. - * diagnostic.h: Replace location.h with input.h. - * gcc.h (input_filename, input_filename_length): Remove declarations. - * toplev.c (input_filename, input_line): Remove. - (input_location): Define. - (push_srcloc, pop_srcloc): Adjust. - * diagnostic.c (diagnostic_report_current_module): Adjust. - -2003-05-02 Nick Clifton - - * configure.in: Add xstormy16 to list of targets that has a nop - instruction and hence which can be tested to see if the - assembler supports the --gdwarf2 switch. - * configure: Regenerate. - -2003-05-01 Falk Hueffner - - PR target/8257 - * config/alpha/alpha.c (alpha_sa_mask, alpha_expand_prologue, - alpha_start_function, alpha_expand_epilogue, unicosmk_gen_dsib): - Avoid undefined shifts by making the shift operand unsigned. - -2003-05-01 DJ Delorie - - * reload.c (find_reloads): Also check that all of a multi-reg - value is in the class. - -2003-05-01 Nathan Sidwell - - * scan.h (lineno): Revert the rename here. - -2003-05-01 Stan Shebs - - * config/darwin.c (darwin_encode_section_info): Call - default_encode_section_info. - -2003-05-01 David Edelsohn - - * config/rs6000/rs6000.md (define_attr "type"): Add mfjmpr. - (movsi_internal1): Use new mfjmpr attribute. - (movhi_internal): Same. - (movqi_internal): Same. - (movcc_internal1): Same. - (movdi_internal64): Same. - * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, - power4.md,rios1.md,rios2.md,rs64.md}: Add mfjmpr. - * config/rs6000/40x.md: Add fpu_405. - * config/rs6000/power4.md: Merge power4lsu and power4disp automata - into power4misc automata. Remove extraneous parentheses. - * config/rs6000/440.md: New file. - * config/rs6000/rs6000.c (processor_target_table): Add 440, - 440fp. Rename 405f to 405fp. - (function_arg_padding): Correct formatting. - (rs6000_rtx_costs): Add PROCESSOR_PPC440 cases. - -2003-05-01 Nathan Sidwell - - * input.h (lineno): Rename to ... - (input_line): ... here. - * tree.h (lineno): Rename to ... - (input_line): ... here. - * scan.h (lineno): Rename to ... - (input_line): ... here. - * toplev.c (lineno): Rename to ... - (input_line): ... here. - (push_srcloc, pop_srcloc): Rename lineno to input_line. - * c-common.c (c_expand_start_cond, fname_decl): Likewise. - * c-decl.c (poplevel, pop_label_level, lookup_label, lookup_tag, - store_parm_decls, c_expand_body_1): Likewise. - * c-errors.c (pedwarn_c99): Likewise. - * c-format.c (status_warning): Likewise. - * c-lex.c (fe_file_change, cb_def_pragma, c_lex): Likewise. - * c-opts.c (c_common_post_options, c_common_parse_file): Likewise. - * c-parse.in (save_filename, maybe_type_qual, ifc): Likwise. - * c-semantics.c (finish_stmt_tree, build_stmt, emit_local_var, - gentrtl_goto_stmt, genrtl_expr_stmt_value, genrtl_decl_stmt, - genrtl_if_stmt, genrtl_while_stmt, genrtl_do_stmt, - genrtl_return_stmt, genrtl_for_stmt, build_break_stmt, - build_continue_stmt, genrtl_switch_stmt, genrtl_asm_stmt, - prep_stmt, find_reachable_label, expand_unreachable_stmt): Likewise. - * coverage.c (create_coverage): Likewise. - * diagnostic.c (pedwarn, sorry, error, fatal_error, - internal_error, warning, diagnostic_report_current_module, - inform): Likewise. - * expr.c (expand_expr): Likewise. - * integrate.c (expand_inline_function, - output_inline_function): Likewise. - * rtl-error.c (file_and_line_for_asm): Likewise. - * tree-inline.c (find_alloca_call, find_builtin_longjmp_call, - walk_tree): Likewise. - * tree.c (make_node): Likewise. - * ada, cp, f, java, objc, treelang: Likewise. - * objc/objc-act.c (objc_init): Rename lineno to input_line. - (build_module_descriptor, build_selector_translation_table, - build_protocol_template, build_method_prototype_list_template, - build_category_template, build_selector_table, - build_class_template, build_super_template, build_ivar_template, - build_ivar_list_template, build_method_list_template, - build_method_template, add_instance_variable): Likewise. - - * dwarf2out.c (dwarf2out_init, dwarf2out_finish): Change parameter - name from input_filename. - -2003-04-30 Eric Christopher - Richard Sandiford - - * configure: Regenerate from patches below. - * combine.c (gen_lowpart_for_combine): Fix comment and add tests - for all symbolic operands. - * config/mips/mips.c: Migrate RTX_COSTS and CONST_COSTS - to function. - * config/mips/linux.h: Fix typo. - * Merge from mips-3_4-rewrite branch: - - 2003-04-07 Richard Sandiford - - * config/mips/mips.c (mips_classify_symbol): Add catch-all case for - handling local labels when TARGET_ABICALLS. - - 2003-04-04 Richard Sandiford - - * config/mips/mips-protos.h (mips_expand_epilogue): Add an - integer argument. - (mips_expand_call): Likewise. - * config/mips/mips.h (TARGET_SIBCALLS): New macro. - (FIXED_REGISTERS): Clear $31 entry. - (CALL_USED_REGISTERS, CALL_REALLY_USED_REGISTER): Likewise. - (EPILOGUE_USES): Define. - * config/mips/mips.c (mips_function_ok_for_sibcall): New function. - (TARGET_FUNCTION_OK_FOR_SIBCALL): Use it. - (override_options): Add a 'j' register class. - (mips_expand_call): Handle sibcalls - (mips_expand_epilogue): Handle epilogues for sibcalls. - * config/mips/mips.md (epilogue): Adjust call to mips_expand_epilogue. - (sibcall_epilogue): New pattern. - (call, call_value): Adjust calls to mips_expand_call. - (sibcall, sibcall_value): New expanders. - (sibcall_internal, sibcall_value_internal): New patterns. - (sibcall_value_multiple_internal): New pattern. - - 2003-03-25 Richard Sandiford - - * config/mips/mips.md (extended_mips16): New attribute. - (define_attr length): Default to 8 if extended_mips16 == yes. - (truncdisi2): Set extended_mips16 to yes for the sll alternative. - (truncdihi2, truncdiqi2, *extendsidi2): Likewise. - (call_internal): Set extended_mips16 to yes for direct jumps. - Remove redundant mode attribute. - (call_value_internal, call_value_multiple_internal): Likewise. - (call_split): Remove redundant mode attribute. - (call_value_split, call_value_multiple_split): Likewise. - - * config/mips/mips.c (mips_symbol_insns): Rework. Fix handling - of unaligned offsets. - - * config/mips/mips.c (mips_splittable_symbol_p): Fix handling - of SYMBOL_GENERAL. - - 2003-03-22 Richard Sandiford - - * config/mips/mips.h (TARGET_EXPLICIT_RELOCS): Add commentary. - * config/mips/mips.c (override_options): Disable -mexplicit-relocs - for mips16 code. - - 2003-03-22 Richard Sandiford - - * config/mips/mips.h (ADDRESS_COST): Define. - - 2003-03-20 Richard Sandiford - - * config/mips/mips.h (EXTRA_CONSTRAINT): Give existing meaning of - 'R' to 'U'. Make 'R' mean a single-instruction memory reference. - * config/mips/mips.md: Replace 'R' constraints with 'U'. - - 2003-03-18 Richard Sandiford - - * config/mips/mips.md (truncdisi2): Add commentary. Use sll instead - of a two-instruction sequence. Add register->memory alternative. - (truncdihi2, truncdiqi2): Likewise. - Rework shift/truncate instructions so that they only handle right - shifts of 32 (or more, in the case of arithmetic shifts). - Add patterns for truncate/sign-extend. - - 2003-03-13 Richard Sandiford - - * configure.in (mips*-*-*): Check for explicit relocation support. - * configure: Regenerate. - - 2003-03-13 Richard Sandiford - - * config/mips/mips.h (TARGET_SWITCHES): Add -mexplicit-relocs - and -mno-explicit-relocs. - (MASK_EXPLICIT_RELOCS): Define. - (TARGET_EXPLICIT_RELOCS): Use it. - (mips_split_addresses): Remove declaration. - * config/mips/mips.c (override_options): Update comment for - mips_split_addresses. Clear MASK_EXPLICIT_RELOCS for non-PIC n64. - - 2003-03-13 Richard Sandiford - - * combine.c (gen_lowpart_for_combine): Treat the lowpart Pmode of - a CONST as identity. Check the return value of gen_lowpart_common. - - 2003-03-13 Richard Sandiford - - * config/mips/mips.c (mips_legitimize_symbol): Handle small data - references for TARGET_EXPLICIT_RELOCS. - (mips_reloc_string): Return "%gp_rel(" for RELOC_GPREL16 if - !TARGET_MIPS16. - - 2003-03-13 Richard Sandiford - - * config/mips/mips.md: Replace 'IQ' mips16 constraints with just 'Q'. - (addsi3): Remove redundant constraints. - (addsi3_internal): Use separate register & constant alternatives. - Use a 'Q' constraint and "addiu" insn for the latter. - (adddi3_internal_3, addsi3_internal_2): Likewise. - - 2003-03-13 Richard Sandiford - - * config/mips/mips-protos.h (mips_expand_unaligned_load): Declare. - (mips_expand_unaligned_store): Declare. - * config/mips/mips.c (mips_get_unaligned_mem): New fn. - (mips_expand_unaligned_load, mips_expand_unaligned_store): New fns. - * config/mips/mips.md (UNSPEC_ULW, UNSPEC_USW): Remove. - (UNSPEC_ULD, UNSPEC_USD): Remove. - (UNSPEC_LWL, UNSPEC_LWR, UNSPEC_SWL, UNSPEC_SWR): New. - (UNSPEC_LDL, UNSPEC_LDR, UNSPEC_SDL, UNSPEC_SDR): New. - (extv, extzv): Use mips_expand_unaligned_load. - (insv): Use mips_expand_unaligned_store. Use a reg_or_0_operand - predicate for operand 3. - (movsi_ulw, movsi_usw): Replace with... - (mov_lwl, mov_lwr, mov_swl, move_swr): ...these new insns. - (movdi_uld, movdi_usd): Likewise replace with... - (mov_ldl, mov_ldr, mov_sdl, move_sdr): ...these insns. - - 2003-02-26 Richard Sandiford - - * config/mips/mips-protos.h (mips_global_pic_constant_p): Declare. - * config/mips/mips.h (LEA_REGS): New register class. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add entries for it. - (GR_REG_CLASS_P): Include LEA_REGS. - (DANGEROUS_FOR_LA25_P): New macro. - (EXTRA_CONSTRAINT): Add !DANGEROUS_FOR_LA25_P to R's condition. - Add a T constraint for the DANGEROUS_FOR_LA25_P case. - * config/mips/mips.c (mips_regno_to_class): Change GR_REGS - entries to LEA_REGS. - (mips_global_pic_constant_p): New function. - (override_options): Add 'e' register constraint. - (mips_secondary_reload_class): Return LEA_REGS when reloading - a dangerous constant into a class containing $25. - * config/mips/mips.md (movdi_internal2): Add an e <- T alternative. - (movsi_internal): Likewise. - - 2003-02-23 Richard Sandiford - - * config/mips/mips.h (TARGET_SPLIT_CALLS): New macro. - * config/mips/mips.md (call_split): New insn. - (call_value_split, call_value_multiple_split): New insns. - (call_internal): Turn into a define_insn_and_split. Split the - instruction into a call and $gp load if TARGET_SPLIT_CALLS. - (call_value_internal, call_value_multiple_internal): Likewise. - - 2003-02-23 Richard Sandiford - - * config/mips/mips.c (mips_reloc_string): Return "%got(" for - RELOC_GOT_PAGE and RELOC_GOT_DISP if !TARGET_NEWABI. - (mips_encode_section_info): Don't take symbol visibility into - account if TARGET_ABICALLS. Add more commentary. - * config/mips/mips.md: Add commentary above reloc constants. - - 2003-02-12 Richard Sandiford - - * config/mips/mips.c (mips_legitimize_const_move): New, extracted - from mips_legitimize_move. Legitimize constant pool references. - (mips_legitimize_move): Call mips_legitimize_const_move. Attach - a REG_EQUAL note to the last instruction. - - 2003-02-11 Richard Sandiford - - * config/mips/mips-protos.h (mips_simplify_dwarf_addr): Declare. - * config/mips/mips.h (TARGET_EXPLICIT_RELOCS, TARGET_NEWABI): New. - (ASM_SIMPLIFY_DWARF_ADDR): Define to mips_simplify_dwarf_addr. - (EXTRA_CONSTRAINT): Allow symbolic call addresses for TARGET_ABICALLS. - * config/mips/mips.md (UNSPEC_HIGH): New constant. - (UNSPEC_RELOC_GPREL16): Rename to... - (RELOC_GPREL16): ...this. - (RELOC_GOT_HI, RELOC_GOT_LO, RELOC_GOT_PAGE, RELOC_GOT_DISP): New. - (RELOC_CALL16, RELOC_CALL_HI, RELOC_CALL_LO): New. - (macro_calls): New attribute. - (length): Use it to set the default length of calls. Don't allow - calls to have delay slots if macro_calls is "yes". - (luisi, luidi): New patterns. - (lowsi, lowdi): Use '%R' to print the relocation. - (lowdi_extend): Remove. - (loadgp): Remove mode from operand 0. Use '%0' instead of '%a0'. - (call_internal): Merge alternatives. Always use "jal". - (call_value_internal, call_value_multiple_internal): Likewise. - (reloc_gprel16): Remove. - * config/mips/mips.c (mips_got_alias_set): New variable. - (mips_classify_constant): Handle the new relocation constants. - (mips_classify_symbol): Reverse the sense of SYMBOL_REF_FLAG for PIC. - (mips_symbolic_address_p): Return false if generating explicit relocs. - Otherwise allow local PIC symbols to have an offset. - (mips_splittable_symbol_p): New function. - (mips_classify_address): Use it to check whether a LO_SUM is valid. - (mips_const_insns): Always accept HIGH. - (call_insn_operand): Don't accept global symbols if using explicit - relocs. - (move_operand): Don't accept HIGH when generating PIC. - (mips_reloc, mips_lui_reloc): New functions. - (mips_force_temporary): Remove MODE argument. Expect VALUE to - be a valid right-hand-side for a SET pattern. - (mips_load_got, mips_load_got16, mips_load_got32): New functions. - (mips_emit_high): New function. - (mips_legitimize_symbol): Use mips_reloc for the mips16 gp-relative - case. Use mips_splittable_symbol_p to check whether a LO_SUM - address should be used. Use mips_emit_high to generate the - high part of such an address. Adjust the global symbol + offset - case to match the change to mips_force_temprorary. - (mips_legitimize_move): Shuffle call to mips_legitimize_symbol. - If generating explicit-reloc PIC, load the address of global - symbols from the GOT. Use mips_emit_high to emit the high part - of an address. - (mips_simplify_dwarf_addr): New function. - (mips_move_1word): Use lwc1 instead of l.s and swc1 instead of s.s. - (mips_move_2words): Likewise ldc1/l.d and sdc1/s.d if TARGET_64BIT. - (mips_expand_call): Load the addresses of global functions using - %call* relocs if generating explicit-reloc PIC. Don't generate - an exception_receiver pattern. - (override_options): Initialize mips_got_alias_set. - (print_relocation): Remove in favor of... - (mips_reloc_string): ...this new function. - (print_operand): Handle '%R'. Use mips_reloc_string. - (print_operand_address): Use print_operand to print the symbolic - part of a LO_SUM address. - (mips_output_function_prologue): Use .cprestore, reverting last patch. - (mips_encode_section_info): Factor out DECL_RTL accesses. Reverse - sense of SYMBOL_REF_FLAG for PIC, using binds_local_p to check - for local symbols. - - 2003-02-02 Eric Christopher - - * config/mips/mips.c (mips_sign_extend): Remove. - * config/mips/mips-protos.h: Ditto. - * config/mips/mips.md (movdi_internal2_extend): Remove. - (extendsidi2): Fix mode of convert_memory_address. - - 2003-01-24 Eric Christopher - - * config/mips/mips.md: Rewrite zero_extend* and extend* - patterns. Use explicit instructions and split after reload - for register extensions. - (ashlsi3_internal1_extend): New combiner pattern for - shift and extend combinations. - * config/mips/mips.h: Change Pmode back to ptr_mode - for performance enhancement. - * combine.c (expand_compound_operation): Make sure - that zero_extend operation is profitable. - - 2003-01-14 Richard Sandiford - - * config/mips/mips.h (TRAMPOLINE_TEMPLATE): Make size of stored - addresses depend on ptr_mode rather than Pmode. - (TRAMPOLINE_SIZE, TRAMPOLINE_ALIGNMENT): Update acoordingly. - (INITIALIZE_TRAMPOLINE): Rework to handle Pmode != ptr_mode. - (CASE_VECTOR_MODE): Use ptr_mode for !TARGET_MIPS16. - (ASM_OUTPUT_ADDR_VEC_ELT): Update accordingly. - * config/mips/mips.md (tablejump): Likewise. Remove Pmode - condition for selecting cpaddsi or cpadddi: use cpadd instead. - (tablejump_internal1): Remove condition. - (tablejump_internal2): Change condition to TARGET_64BIT. - (cpaddsi): Rename to... - (cpadd): ...this. - (cpadddi): Remove. - - 2003-01-09 Richard Sandiford - - * config/mips/mips-protos.h (mips16_constant_after_function_p, - mips_address_cost, mips_check_split, double_memory_operand, - mips16_gp_offset, mips16_gp_offset_p, mips16_constant, - pic_address_needs_scratch, symbolic_operand): Remove declarations. - (mips_legitimate_address_p): Return bool. - (mips_address_insns, mips_fetch_insns, mips_const_insns, - mips_legitimize_address, mips_legitimize_move, - mips_expand_call): Declare. - (mips_return_addr): Move outside #ifdef RTX_CODE. - - * config/mips/mips.h (ABI_HAS_64BIT_SYMBOLS): New macro. - (PIC_FN_ADDR_REG): New reg_class. - (REG_CLASS_NAMES, REG_CLASS_CONTENTS): Add corresponding entries. - (GR_REG_CLASS_P): True for PIC_FN_ADDR_REG. - (SMALL_OPERAND, SMALL_OPERAND_UNSIGNED, LUI_OPERAND, - CONST_HIGH_PART, CONST_LOW_PART, LUI_INT): New macros. - (SMALL_INT, SMALL_INT_UNSIGNED, CONST_OK_FOR_LETTER_P): Use new macros. - (EXTRA_CONSTRAINTS): Give new meanings to Q, R and S. - (CONSTANT_ADDRESS_P): Use mips_legitimate_address_p. - (LEGITIMATE_PIC_OPERAND): Undefine. - (LEGITIMATE_CONSTANT_P): Use mips_const_insns. - (LEGITIMIZE_ADDRESS): Use mips_legitimize_address. - (CONSTANT_AFTER_FUNCTION_P): Remove definition in #if 0 block. - (FUNCTION_MODE): Change to SImode. - (CONST_COSTS): Use mips_const_insns to calculate the cost of - most constants. Treat const_artih_operands specially if they - occur in a PLUS or MINUS. - (CONSTANT_POOL_COST): New macro. - (RTX_COSTS): Use mips_address_insns for MEMs, with a base cost of 2. - Add LO_SUM handling. - (ADDRESS_COST): Undefine. - (PREDICATE_CODES): Add symbolic_operand and const_arith_operand. - Add CONST to the list of codes for arith_operand. Add LABEL_REF - to call_insn_operand and remove CONST_INT. - - * config/mips/mips.c: Include integrate.h. - (SINGLE_WORD_MODE_P): New macro. - (mips_constant_type, mips_symbol_type, mips_address_type): New enums. - (mips_constant_info, mips_address_info): New structs. - (mips_regno_to_class): Map $25 to PIC_FN_ADDR_REG. - (mips_classify_constant, mips_classify_symbol, - mips_valid_base_register_p, mips_symbolic_address_p, - mips_classify_address, mips_symbol_insns, - mips16_unextended_reference_p, mips_address_insns, mips_const_insns, - mips_fetch_insns, mips_force_temporary, mips_add_offset, - mips_legitimize_symbol, mips_legitimize_address, mips_legitimize_move, - mips_print_relocation): New functions. - (const_arith_operand): New operand predicate. - (arith_operand): Use it. - (mips_const_double_ok, mips16_simple_memory_operand, - simple_memory_operand, double_memory_operand, mips_check_split, - mips_address_cost, pic_address_needs_scratch, mips16_gp_offset, - mips16_gp_offset_p, mips16_output_gp_offset, - mips16_constant_after_function_p, mips16_constant): Remove. - (call_insn_operand): Be more fussy about symbolic constants. - Use register_operand. - (move_operand): Use mips_symbolic_address_p to check symbolic - operands and general_operand to check the rest. - (symbolic_operand): Use mips_classify_constant. - (mips_legitimate_address_p): Use mips_classify_address. - (mips_move_1word): Combine handling of symbolic addresses. - Remove special treatment of gp-relative loads for TARGET_MIPS16. - (move_move_2words): Likewise. Assume addresses are offsettable - if they need to refer to more than one word. Add HIGH handling. - (mips_restore_gp): Use ptr_mode for the GP save slot. - (mips_expand_call): New function, combining the old mips.md - call and call_internal define_expands. If the address isn't - a call_insn_operand, force it into a register. For SVR4 PIC, - emit an exception_receiver instruction after the call. - (override_options): Only override flag_pic for TARGET_ABICALLS - if it is currently zero. Allow mips_split_addresses when - Pmode == DImode too, except when ABI_HAS_64BIT_SYMBOLS. - Add new register class letter, 'c'. - (print_operand): Use mips_classify_constant for constant operands. - (print_operand_address): Use mips_classify_address. - (mips_output_function_prologue): Don't use .cprestore. - (mips_expand_epilogue): For TARGET_MIPS16, only adjust the stack - via the frame pointer if current_function_calls_eh_return. - (mips_encode_section_info): For TARGET_ABICALLS, use SYMBOL_REF_FLAG - to mark whether a symbol is local or global. - (build_mips16_call_stub): Expect the address of the function rather - than a MEM reference to it. Update call generation sequences. - (mips16_optimize_gp): Remove Pmode checks. Temporarily disable - small-data adjustments. - - * config/mips/mips.md: Remove 'R'/'m' memory distinction. Use default - length for loads and stores. - (UNSPEC_CPADD, UNSPEC_RELOC_GPREL16): New constants. - (define_attr type): Add const and prefetch. - (define_attr length): Use mips_const_insns for const instructions. - Use mips_fetch_insns for load and store instructions. - (define_attr single_insn): New. - (define_attr can_delay): Use it. - (define_attr abicalls): Remove. - (define_delay): Use can_delay. Always allow calls to have delay slots. - (addsi3_internal_2): Add 'Q' constraint. - (movsi_ulw, movsi_usw, movdi_uld, movdi_usd): Set length to 8. - (high): Remove. - (lowsi): Renamed from low. - (lowdi): New pattern. - (movdi, movsi): Use mips_legitimize_move. Remove define_split. - (lwxc1, ldxc1, swxc1, sdxc1): Set length to 4. - (loadgp): Change operand 0 to an immediate_operand. - (tablejump): Use the same patterns for SVR4 PIC but emit a cpadd - beforehand. - (cpaddsi, cpadddi): New patterns. - (tablejump_internal3, tablejump_internal4): Remove define_expands - and associated define_splits. - (call, call_value): Use mips_expand_call. - (call_internal): New, replacing all existing call_internal* insns. - (call_value_internal): Likewise call_value_internal*. - (call_value_multiple_internal): Likewise call_value_multiple_internal*. - (untyped_call): Remove if (operands[0]) magic. - (prefetch_si_address, prefetch_si): Change type to "prefetch". - (prefetch_di_address, prefetch_di): Likewise. - (leasi, leadi): Remove. - (reloc_gprel16): New. - - * config/mips/5400.md (ir_vr54_hilo): Include const type. - * config/mips/5500.md (ir_vr55_hilo): Likewise. - * config/mips/sr71k.md (ir_sr70_hilo): Likewise. - - 2003-01-08 Eric Christopher - - * config.gcc (mipsisa32*): Change ABI_MEABI to ABI_EABI. - * config/mips/elf.h (STARTFILE_SPEC): Remove ABI_MEABI references and - configure check for libgloss. - * config/mips/elf64.h: Ditto. - * config/mips/mips.c: Remove ABI_MEABI. - * config/mips/mips.h: Ditto. - - 2002-11-05 Richard Sandiford - - Fix merge fallout. - * config/mips/mips.md (mul_acc_si): Reapply 2002-10-16 change. - (muldi3_internal): Remove outdated comment. - (*muls_di, *umuls_di): Fix comment and 64-bitness. - (*smsac_di, *umsac_di): Likewise. Reformat. - (umulsi3_highpart): Minor formatting tweaks. - (umulsi3_highpart_internal): Use only if !ISA_HAS_MULHI. Remove - redundant scratch operand. Minor formatting tweak. - (umulsi3_highpart_mulhi_internal): Use for !TARGET_64BIT as well. - (umulsi3_highpart_neg_mulhi_internal): Likewise. Fix asm template. - (smulsi3_highpart): As for the unsigned version. - (smulsi3_highpart_internal): Likewise. - (smulsi3_highpart_mulhi_internal): Likewise. - (smulsi3_highpart_neg_mulhi_internal): Likewise. - (smuldi3_highpart, umuldi3_highpart): Minor formatting tweaks. - (*smul_acc_di): Remove duplicated pattern. - (*umul_acc_di, *smul_acc_di): Reapply 2002-10-16 change. - (anddi3) [unnamed mips16 pattern]: Remove reintroduced length. - (zero_extendsidi2_internal2): Remove new, but commented-out pattern. - - 2002-10-22 Eric Christopher - - * config/mips/mips-protos.h (mips_return_addr): New. - * config/mips/mips.c (mips_return_addr): New. - (movdi_operand): Remove. - (se_register_operand): Ditto. - (se_reg_or_0_operand): Ditto. - (se_uns_arith_operand): Ditto. - (se_arith_operand): Ditto. - (se_nonmemory_operand): Ditto. - (extend_operator): Ditto. - (highpart_shift_operator): Ditto. - (mips_initial_elimination_offset): Remove return address pointer - elimination. - (mips_reg_names): Remove $ra. - (mips_regno_to_class): Ditto. - * config/mips/mips.h (POINTER_SIZE): Define based on TARGET_LONG64 - and TARGET_64BIT. - (POINTER_BOUNDARY): Remove. - (POINTERS_EXTEND_UNSIGNED): Define to 0. - (PROMOTE_MODE): Promote to Pmode. - (SHORT_IMMEDIATES_SIGN_EXTEND): Define. - (Pmode): Define to TARGET_64BIT. - (FUNCTION_MODE): Define as Pmode. - (mips_args): Remove deleted functions. - (SIZE_TYPE): Depend on POINTER_SIZE. - (PTRDIFF_TYPE): Ditto. - (FIXED_REGISTERS): Fix extra registers. - (CALL_USED_REGISTERS): Ditto. - (CALL_REALLY_USED_REGISTERS): Ditto. - (RAP_REG_NUM): Remove. - (RETURN_ADDRESS_POINTER_REGNUM): Ditto. - (RETURN_ADDR_RTX): Define to mips_return_addr. - (ELIMINABLE_REGS): Remove RETURN_ADDRESS_POINTER_REGNUM. - (CAN_ELIMINATE): Ditto. - * config/mips/mips.md: For DImode patterns, take into account - deletions above. Split mulsidi patterns into sign_extend and - zero_extend. - - 2002-10-16 Richard Sandiford - Michael Meissner - - * config/mips/mips.h (ISA_HAS_MACC): True for normal-mode vr4120 code. - * config/mips/mips.md (mulsi3_mult3): Add a define_peephole2 to - mop up unnecessarly moves through LO. - (*mul_acc_si): Remove vr5400 and vr5500 handling from here. - (*macc): New pattern for ISA_HAS_MACC. Add define_peephole2s to - change mtlo/macc sequences into mul/add sequences when a three- - address mul is available. - (*macc2): New pattern. Add a define_peephole2 to generate it. - (*mul_sub_si): Fix contraint for operand 5. - (*muls): Use in 32-bit code as well. - (*msac): Likewise. Use msub instead of msac in vr5500 code - if the destination is LO. Remove duplicate define_split. - (*muls_di): Use only in 32-bit code. Adjust rtl accordingly. - (*msac_di): Likewise. Fix formatting. - (smulsi3_highpart, umulsi3_highpart): Use mulhi in 32-bit code too. - (*xmulsi3_highpart_internal): Use only if !ISA_HAS_MULHI. - (*xmulsi3_highpart_mulhi): Use even if !TARGET_64BIT. - (*xmulsi3_neg_highpart_mulhi): Likewise. - (*mul_acc_64bit_di): Remove. - (*mul_acc_di): Use only in 32-bit code. Handle ISA_HAS_MACC as well. - - 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-09 Richard Sandiford - - * config/mips/mips.md (one_cmpldi2): Use only if TARGET_64BIT. - Remove DImode define_split for !TARGET_64BIT. - (anddi3): Remove !TARGET_64BIT support from here as well. - Change operand 2's predicate to se_uns_arith_operand. - Add constant alternatives to define_insn. - (iordi3, xordi3, *nordi3): Likewise. - (anddi3_internal1, xordi3_immed): Remove. - - 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. - - -2003-04-30 Diego Novillo - - * builtins.def (BUILTIN_CONSTANT_P): Mark as constant. - -2003-04-30 Geoffrey Keating - - * tree-inline.c (inlinable_function_p): Back out last change, it's - unnecessary. - -2003-04-30 Steven Bosscher - - * ggc-page.c (TREE_EXP_SIZE): Define. - (extra_order_size_table): New entry for expr trees with - two operands. - -2003-04-30 Gabriel Dos Reis - - * c-common.c (if_elt): Use location_t in lieu of "file, line" pair. - (c_expand_start_cond): Adjust. - (c_expand_end_cond): Don't use warning_with_file_and_file. - (shadow_warning): Likewise. - -2003-04-30 Nathan Sidwell - - * tree.h (DECL_POINTER_DEPTH): Remove. - (struct tree_decl): Remove pointer_depth. - -2003-04-30 Janis Johnson - - * config/rs6000/linux64.h (ASM_OUTPUT_LABELREF): Remove. - * config/rs6000/rs6000.c (rs6000_elf_strip_name_encoding): Remove. - (rs6000_xcoff_encode_section_info): Remove. - (current_file_function_operand): Use SYMBOL_REF_FLAGS; fix latent bug. - (rs6000_output_mi_thunk): Remove dead code; use SYMBOL_REF_FLAGS. - (small_data_operand, rs6000_emit_move, rs6000_elf_in_small_data_p,): - Use SYMBOL_REF_FLAGS. - (rs6000_elf_encode_section_info): Call default_encode_section_info for - generic flags, use SYMBOL_REF_FLAGS; code cleanups. - * sysv4.h (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove. - (SYMBOL_FLAG_SMALL_V4, SYMBOL_REF_SMALL_V4_P): New. - * xcoff.h (TARGET_ENCODE_SECTION_INFO): Remove. - (ASM_DECLARE_FUNCTION_NAME): Remove setting of SYMBOL_REF_FLAG. - -2003-04-30 Gabriel Dos Reis - - * diagnostic.c (output_pointer): Use HOST_PTR_PRINTF. - -2003-04-30 Andreas Schwab - - * doc/extend.texi (Other Builtins): Enclose multiple word data - type in braces for @deftypefn. - -2003-04-30 Richard Kenner - - * stor-layout.c (mode_for_size_tree): Use BLKmode if SIZE overflows. - - * doc/install.texi (--enable-threads): Document "gnat" option. - -2003-04-30 Gabriel Dos Reis - - * diagnostic.h (output_formatted_scalar): Tweak. - * diagnostic.c (output_long_decimal): Likewise. - (output_unsigned_decimal): Likewise. - (output_long_unsigned_decimal): Likewise. - (output_octal): Likewise. - (output_long_octal): Likewise. - (output_hexadecimal): Likewise. - (output_long_hexadecimal): Likewise. - (output_pointer): New function. - (output_format): Use it. Recognize "%p" format specifier. - -2003-04-30 Zdenek Dvorak - - * function.c (purge_addressof_1): Postpone insn in fewer cases. - -2003-04-29 Geoffrey Keating - - * config/rs6000/host-darwin.c (segv_handler): When -dH is used, - call abort() after running out of stack space. - - * c-typeck.c (function_types_compatible_p): Ignore incompatible - 'volatile' qualifiers on a function's return type in GNU mode. - -2003-04-29 Aldy Hernandez - - * expr.c (emit_group_load): Dump parallels of simd types to - memory. - -2003-04-29 Vladimir Makarov - - * genautomata.c (add_vect): Check undefined value for range type - too. - -2003-04-29 Phil Edwards - - * configure.in: More general test for cmp --ignore-initial. - * configure: Regenerate. - -2003-04-29 Richard Kenner - - * stor-layout.c (mode_for_size_tree): Use tree_low_cst. - (layout_decl, place_field): Likewise. - Also make minor type and whitespace changes. - - * tree.c (save_expr): Don't fold a COMPONENT_REF. - -2003-04-29 Olivier Hainque - - * calls.c (expand_call): When modes of target and valreg match, force - sibcall failure when target is a MEM. - -2003-04-29 Geoffrey Keating - - * tree-inline.c (inlinable_function_p): Don't support inlining - functions using varargs. - - * doc/invoke.texi (Overall Options): Mention -x objective-c-header. - - * dwarf2out.c (output_call_frame_info): No need to output EH - unwind information if all_throwers_are_sibcalls. - - * c-semantics.c (expand_unreachable_stmt): Return a tree. - (expand_stmt): Update for change to expand_unreachable_stmt. - (expand_unreachable_if_stmt): Likewise. - - * Makefile.in (quickstrap): Pass BOOT_CFLAGS to submake. - -2003-04-29 Jason Merrill - - PR middle-end/10336 - * jump.c (never_reached_warning): Really stop looking if we reach - the beginning of the function. - -2003-04-29 Bob Wilson - - * config/xtensa/elf.h (SIZE_TYPE, PTRDIFF_TYPE, USER_LABEL_PREFIX): - Remove redundant macros. - (WCHAR_TYPE, WCHAR_TYPE_SIZE): Change to "short unsigned int". - (LOCAL_LABEL_PREFIX): Define unconditionally. - (NO_DOT_IN_LABEL): Clarify comment. - * config/xtensa/linux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Add explicit - definition to "long int". - -2003-04-29 Alexander Kabaev - - bootstrap/10452 - * gengtype-yacc.y: Improve portability. - -2003-04-29 Zack Weinberg - - * config.gcc: Install obsolete target list for GCC 3.3. - * doc/install.texi: Mention in specific-target instructions - that certain configurations are deprecated. - -2003-04-29 Zack Weinberg - - * tree.h: Delete no-checking definition of CST_OR_CONSTRUCTOR_CHECK. - -2003-04-29 Kriang Lerdsuwanakij - - * c-pragma.c (maybe_apply_renaming_pragma): Fix typo. - * gcc.c (display_help): Likewise. - * toplev.c (f_options): Likewise. - * params.def (PARAM_MAX_INLINE_SCOPE): Likewise. - * config/c4x/c4x.h (TARGET_SWITCHES): Likewise. - * config/mcore/mcore.h (TARGET_SWITCHES): Likewise. - * config/s390/s390.h (TARGET_SWITCHES): Likewise. - * config/v850/v850.h (TARGET_SWITCHES): Likewise. - -2003-04-29 J"orn Rennecke - - * varasm.c (default_assemble_visibility): Use assemble_name. - -2003-04-29 David O'Brien - - * config/i386/freebsd64.h (LINK_SPEC): Mirror FreeBSD linker. - * config/rs6000/freebsd.h (LINK_SHLIB_SPEC): New macro. - (SIZE_TYPE): New macro. - * config/i386/freebsd-aout.h (NO_PROFILE_COUNTERS): New macro. - (SET_ASM_OP): New macro. - (HANDLE_SYSV_PRAGMA): New macro. - (ASM_WEAKEN_LABEL): New macro. - -2003-04-28 Mark Mitchell - - PR c++/10180 - * tree-inline.c (expand_call_inline): Call push_srcloc when - encountering EXPR_WITH_FILE_LOCATION. Honor warn_inline. - -2003-04-28 Mike Stump - - * gdbinit.in: Update to reflect new identifier structure. - -2003-04-28 Zack Weinberg - - * tree.h (TREE_CST_RTL, CST_OR_CONSTRUCTOR_CHECK): Delete. - (struct tree_int_cst, struct tree_real_cst, struct tree_string, - struct tree_complex, struct tree_vector): Remove RTL field. - (CONSTRUCTOR_ELTS): Use elt 0. - * tree.def (CONSTRUCTOR): Delete first of its two operands. - * varasm.c (output_constant_def): Remove early exit if - TREE_CST_RTL is set. Don't set TREE_CST_RTL. - (decode_addr_const): Don't mention TREE_CST_RTL in comment. - * target.h (select_section): Don't mention TREE_CST_RTL in comment. - * doc/tm.texi (encode_section_info): Don't talk about TREE_CST_RTL. - -2003-04-28 Jakub Jelinek - - * c-decl.c (finish_decl): When prototype with asmspec is found - for built-in, adjust built_in_decls as well as expr.c decls. - * expr.c (init_block_move_fn, init_block_clear_fn): New functions. - (emit_block_move_libcall_fn, clear_storage_libcall_fn): Use it. - * expr.c (init_block_move_fn, init_block_clear_fn): New prototypes. - -2003-04-28 Richard Henderson - - * config/sparc/sparc.c (print_operand): Add 's' to sign-extend. - * config/sparc/sparc.md (const_mulsidi3_v8plus): Fix mode of - integral constant mult operand. - (const_mulsidi3_sp32, const_mulsidi3_sp64): Likewise. - (const_smulsi3_highpart_v8plus): Likewise. - (const_smulsi3_highpart): Likewise. - (const_umulsidi3_sp32): Likewise; sign-extend it in the output. - (const_umulsidi3_sp64, const_umulsidi3_v8plus): Likewise. - (const_umulsi3_highpart_v8plus): Likewise. - (const_umulsi3_highpart): Likewise. - -2003-04-28 David O'Brien - - * config/i386/x86-64.h (NO_PROFILE_COUNTERS, HAVE_AS_DWARF2_DEBUG_LINE): - Define as 1. - -2003-04-28 David O'Brien - - * config/i386/i386.h (builtin_define): Add __amd64 and __amd64__. - -2003-04-28 Jakub Jelinek - - * builtins.def (BUILT_IN_BCOPY, BUILT_IN_MEMMOVE): New. - * builtin-types.def (BT_FN_VOID_CONST_PTR_PTR_SIZE): New. - * builtins.c (expand_builtin_memmove, expand_builtin_bcopy): New - functions. - (expand_builtin): Handle BUILT_IN_BCOPY and BUILT_IN_MEMMOVE. - -2003-04-28 Nick Clifton - - * config/arm/elf.h (ASM_OUTPUT_ALIGNED_COMMON): Remove definition. - -2003-04-27 Zack Weinberg - - * expr.c (expand_expr ): Always call - output_constant_def, use its result instead of TREE_CST_RTL (exp). - Can assume it has the form (mem (symbol_ref ".LCxxx")). - (expand_expr ): Can always just extract the - relevant field of a CONSTRUCTOR. - (expand_expr ): Make control flow explicit. - * varasm.c (output_constant_def): Can look at TREE_CST_RTL of - an INTEGER_CST. - -2003-04-27 Kazu Hirata - - * reload1.c (reg_set_luid): Fix a comment typo. - -2003-04-27 Zack Weinberg - - * varasm.c (const_str_htab_hash, const_str_htab_eq, STRHASH, - struct deferred_string, const_str_htab): Kill. - (n_deferred_strings): New static variable. - (build_constant_desc): Set SYMBOL_REF_DECL of the new - symbol_ref to point to the constant. - (output_constant_def): When a deferred string is forced out, - just clear STRING_POOL_ADDRESS_P and decrement n_deferred_strings. - (mark_constant): Likewise. - (maybe_output_constant_def_contents): When deferring a string - constant, just set STRING_POOL_ADDRESS_P and increment - n_deferred_strings. - (mark_constant_pool): Check n_deferred_strings, not the size - of const_str_htab. - (init_varasm_once): No need to create const_str_htab. - - * rtl.def, rtl.h, doc/rtl.texi: Document possibility that - SYMBOL_REF_DECL points to a constant. - -2003-04-26 Zack Weinberg - - * varasm.c (output_constant_def): Split out two new static - functions, build_constant_desc and maybe_output_constant_def_contents. - Restructure for comprehensibility. Don't call - output_addressed_constants. Treat defstr being non-NULL for - STRING_POOL_ADDRESS_P constants as an invariant. - (struct deferred_string): Remove labelno field. - (output_constant_def_contents): Kill labelno argument. Call - output_addressed_constants here. Use ASM_OUTPUT_LABEL, not - asm_out.internal_label. - (mark_constant): Update call to output_constant_def_contents. - Treat defstr being non-NULL for STRING_POOL_ADDRESS_P - constants as an invariant. - -2003-04-26 Richard Henderson - - * config/i386/i386.c (output_pic_addr_const): Use SYMBOL_REF_LOCAL_P. - (ix86_expand_call, ix86_rtx_consts): Likewise. - -2003-04-26 Kaveh R. Ghazi - - * doc/md.texi (cmpstr): Document additional restrictions. - -2003-04-26 Neil Booth - - * flags.h (time_report): Remove. - * timevar.c (timevar_enable): New. - (TIMEVAR_ENABLE): Remove, use timevar_enable. - (timevar_init): Rename from init_timevar. - * timevar.h (timevar_init): Rename from init_timevar. - * toplev.c (time_report): Make static. - (do_compile): Conditionally call init_timevar first. - (preprocess_options): Move some code to do_compile. - -2003-04-26 Stephane Carrez - - * doc/install.texi (Binaries): Mention binaries for HC11/HC12. - -2003-04-26 Neil Booth - - * _cpp_lex_direct: Remove pointless code. - -2003-04-26 Stephane Carrez - - * doc/extend.texi (Function Attributes): Document "near" and "far" - for 68HC11 and 68HC12. - -2003-04-25 Richard Kenner - - * expr.c (store_field): When making temporary for store, don't - make it TYPE_QUAL_CONST. - -2003-04-25 Phil Edwards - - * toplev.c (read_integral_parameter): Use "argument" in error - message to distinguish it from actual invalid options. - -2003-04-25 Bob Wilson - - * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous - addition of __PIC__ and __pic__ macros. - * config/xtensa/xtensa.h: Clean up indentation. - -2003-04-25 Bob Wilson - - * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of - _GNU_SOURCE. Add definitions of __PIC__ and __pic__. - (SUBTARGET_CPP_SPEC): Define. - (LIB_SPEC): Delete. - * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete. - * config/xtensa/xtensa.c (xtensa_declare_object): Delete. - * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS): - Define. - (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete. - (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define. - -2003-04-25 H.J. Lu - - * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode - for return mode. - (ia64_expand_builtin): Set rmode to SImode for - IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI, - IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and - IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode - for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI. - -2003-04-25 Phil Edwards - - * configure.in (make_compare_target): Test for GNU cmp and set this - variable appropriately. - * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean, - compare4-lean): Rename actual targets to slowcompare*. New compare* - targets depend on names based on make_compare_target. - * configure: Regenerated. - -2003-04-25 Richard Henderson - - * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm - to clobber ar.pfs and ar.unat. - (ia64_expand_prologue): Force alloc instruction if ar.pfs saved; - fix test for spilling ar.pfs to the stack. - -2003-04-25 Richard Henderson - - PR opt/10315 - * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper - checks during reload; use validize_mem instead of adjust_address. - -2003-04-26 Ben Elliston - - * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the - return values from recog_memoized(). - -2003-04-24 John David Anglin - - PR opt/8705 - * gcse.c (try_replace_reg): On a successful substitution of a constant - into a single set, try to simplify the source of the set. - * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a - constant source. - -2003-04-24 Neil Booth - - * cpplex.c (cpp_token_len): Tighten up. - (cpp_token_as_text): Need extra byte now. - * cpplib.c (glue_header_name): Need extra 2 bytes. - * cppmacro.c (cpp_macro_definition): Need extra byte. - -2003-04-24 Alexander Kabaev - - * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using - const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets - where they might be not present. Use their _sp64 equivalent - instead. - -Thu Apr 24 20:42:12 CEST 2003 Jan Hubicka - - * i386.md (cvtsi2sdq): Fix typo in previous patch. - -2003-04-24 Krister Walfridsson - - * configure.in: Check whether mbstowcs works. - * configure, config.in: Regenerate. - * intl.c: Use HAVE_WORKING_MBSTOWCS. - -2003-04-24 H.J. Lu - - * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di - for __sync_bool_compare_and_swap_di for int return type. - - * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di): - Change return type to int. - (__sync_bool_compare_and_swap): Likewise. - -Thu Apr 24 16:55:26 CEST 2003 Jan Hubicka - - * cfgbuild.c (make_edges): Do not use next_nonnote_insn when - looking for fallthru edge. - - * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul): - Fix. - (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload, - athlon-fvector): New. - (athlon_*): Revisit to match new optimization guide. - * i386.c (ix86_adjust_cost): Fix memory operand costs on Athlon/k8 - * i386.md (cvt??2?? patterns): Fix modes. - (fistp patterns): Set modes. - - Accidentaly commited with my earlier reload patch: - PR c/10308 - * reload.c (find_reloads_address_1): Reload plus at the place of - index register. - -2003-04-24 Nathan Sidwell - - New GCOV_TAG_FUNCTION layout - * coverage.c (struct function_list): Replace name with ident. - (struct counts_entry): Likewise. - (fn_ident): New. - (htab_counts_entry_hash, htab_counts_entry_eq, - htab_counts_entry_del): Adjust. - (reads_count_file, get_coverage_counts, - coverage_begin_output, coverage_end_function): Adjust. - (build_fn_info_type, build_fn_info_value): Likewise. - * gcov-dump.c (tag_function): Adjust. - * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV. - * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV. - * gcov.c (struct function_info): Add ident. - (read_graph_file, read_count_file): Adjust. - * libgcov.c (gcov_exit): Adjust. - -2003-04-23 Richard Henderson - - PR opt/8300 - * toplev.c (rest_of_compilation): Delay no_new_pseudos until - after initialize_uninitialized_subregs; update reg info assuming - new pseudos were created. - -2003-04-23 Neil Booth - - * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update. - * c-lex.c (MULTIBYTE_CHARS): Remove conditionals. - (lex_string): Take cpp_string with full spelling. - (cb_ident): Update. - (c_lex): Update diagnostics. - * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL. - (create_literal): New. - (lex_string): Unterminated literals have type CPP_OTHER. - (_cpp_lex_direct): Update calls to lex_string. Use create_literal - for CPP_OTHER. - (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify. - (_cpp_equiv_tokens, cpp_interpret_charconst): Update. - * cpplib.c (parse_include, do_line, do_linemarker, - destringize_and_run): Update for token storing full spelling. - * cpplib.h: Update token spelling types. - * cppmacro.c (stringify_arg, check_trad_stringification): - Update for token storing full spelling. - -2003-04-23 Ulrich Weigand - - * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop. - -2003-04-23 Richard Earnshaw - - * arm.h (TARGET_OPTIONS): Add value field. - -2003-04-23 Mark Mitchell - - * doc/extend.texi: Remove duplicate 2003 copyright date. - -2003-04-23 Nathan Sidwell - - * Makefile.in (LIBGCC_DEPS): Add gcov headers. - (libgcov.a): Depends on LIBGCC_DEPS. - * basic-block.h (profile_info): Moved here from coverage.h. Made - a pointer. - * coverage.c (struct function_list): Fixed array of counter types. - (struct counts_entry): Keyed by counter type, contains summary. - (profile_info): Moved to profile.c. - (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global - vars. - (profiler_label): Remove. - (ctr_labels): New. - (set_purpose, label_for_tag, build_counter_section_fields, - build_counter_section_value, build_counter_section_data_fields, - build_counter_section_data_values, build_function_info_fields, - build_function_info_value, gcov_info_fields, gcov_info_value): Remove. - (build_fn_info_type, build_fn_info_value, build_ctr_info_type, - build_ctr_info_value, build_gcov_info): New. - (htab_counts_entry_hash, htab_counts_entry_eq): Adjust. - (reads_counts_file): Adjust. - (get_coverage_counts): Takes counter number. Add summary - parameter. Adjust. - (coverage_counter_ref): Tkaes counter number. Adjust. Lazily - create counter array labels. - (coverage_end_function): Adjust. - (create_coverage): Adjust. - (find_counters_section): Remove. - * coverage.h (MAX_COUNTER_SECTIONS): Remove. - (struct section_info, struct profile_info): Remove. - (profile_info): Moved to basic-block.h. - (coverage_counter_ref): Takes a counter number. - (get_coverage_counts): Takes a counter number. Added summary - parameter. - (find_counters_section): Remove. - * gcov-dump.c (tag_arc_counts): Rename to ... - (tag_counters): ... here. Adjust. - (tag_table): Move tag_counters to 3rd entry. Remove - PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries. - (dump_file): Check for counter tag values here. - (tag_summary): Adjust. - * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust. - * gcov-io.h (GCOV_LOCKED): New. - (GCOV_TAG_ARC_COUNTS): Rename to ... - (GCOV_TAG_COUNTS_BASE): ... here. - (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY): - Remove. - (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New. - (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG, - GCOV_TAG_IS_COUNTER): New. - (struct gcov_ctr_summary): New. - (struct gcov_summary): Adjust. - (struct gcov_counter_section): Remove. - struct gcov_counter_section_data): Remove. - (struct gcov_function_info): Rename to ... - (struct gcov_fn_info): ... here. Adjust. - (struct gcov_ctr_info): New. - (struct gcov_info): Adjust. - * gcov.c (read_count_file): Adjust. - (output_lines): Adjust. - * libgcov.c (gcov_exit): Adjust. - (__gcov_flush): Adjust. - * mklibgcc.in (libgcc2_c_dep): Add gcov headers. - * predict.c (maybe_hot_bb_p, probably_cold_bb_p, - probably_never_executed_bb_p, compute_frequency_function): Adjust - profile_info use. - * profile.c (struct counts_entry): Remove. - (profile_info): Define here. - (get_exec_counts): Adjust get_coverage_counts call. - (compute_branch_probablilities): Remove find_counters_section - call. - (gen_edge_profiler): Adjust coverage_counter_ref call. - * tracer.c (tail_duplicate): Adjust profile_info use. - -2003-04-23 Roger Sayle - - PR optimization/10339 - * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn - directly instead of unsafely transforming call into a memcmp. - (expand_builtin_strncmp): Likewise. - -2003-04-22 Roger Sayle - - * alias.c (mark_constant_function): Check for constancy and - purity even of void functions. Update both the function decl - and the cgraph RTL info with the results. - -2003-04-22 Roger Sayle - - * real.c (do_add): Change to return a bool indicating that the - result of the operation may be inexact due to loss of precision. - (do_multiply): Likewise. - (do_divide): Likewise. - -2003-04-22 Geoffrey Keating - Loren James Rittle - - * dwarf2out.c (fde_table_allocated): Mark with GTY. - (decl_die_table_allocated): Likewise. - (abbrev_die_table_allocated): Likewise. - (line_info_table_allocated): Likewise. - (separate_line_info_table_allocated): Likewise. - (pubname_table_allocated): Likewise. - (arange_table_allocated): Likewise. - (ranges_table_allocated): Likewise. - (decl_die_table_in_use): Unconditionalize; mark with GTY. - (abbrev_die_table_in_use): Likewise. - (line_info_table_in_use): Likewise. - (separate_line_info_table_in_use): Likewise. - (pubname_table_in_use): Likewise. - (arange_table_in_use): Likewise. - (ranges_table_in_use): Likewise. - (have_location_lists): Likewise. - (emitcount): New GTY-marked static, moved... - (maybe_emit_file): ...from here. - (label_num): New GTY-marked static, moved... - (gen_internal_sym): ...from here. - -2003-04-22 Richard Henderson - - PR 8866 - * rtl.h (MEM_NOTRAP_P): New. - (MEM_COPY_ATTRIBUTES): Copy it. - * rtlanal.c (may_trap_p): Check it. - * expr.c (do_tablejump): Set it. - * doc/rtl.texi (Flags): Document it. - - * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes. - -2003-04-22 Olivier Hainque - - * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't - set FRP on stack adjustment for outgoing args if frame_pointer_needed. - -2003-04-22 Vincent Celier - - * gthr-gnat.h, gthr-gnat.c: new sources for implementation of - --enable-threads=gnat. - * Makefile.in: Add gthr-gnat.c to LIB2ADDEH. - * configure.in: Add gnat to the list of thread packages - * configure: Rebuild. - * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP - -2003-04-22 Neil Booth - - * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof. - -2003-04-22 Devang Patel - - * cpptrad.c (_cpp_replacement_text_len): Add check for macro - parameter count. - (_cpp_copy_replacement_text): Same. - -2003-04-22 Neil Booth - - * c-lex.c (c_lex): Handle CPP_OTHER differently. - * cppexp.c (_cpp_parse_expr): Similarly. - * cpplex.c (SPELL_CHAR): Remove. - (_cpp_lex_direct): Stray chars are saved as byte strings. - (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't - handle SPELL_CHAR. - (cpp_avoid_paste): Update handling of CPP_OTHER. - * cpplib.h: Spell CPP_OTHER like a number. - (struct cpp_token): Remove member c. - * cppmacro.c (stringify_arg): Update handling of CPP_OTHER. - -2003-04-22 David Turner - - * gbl-ctors.h: Add special license exception. - * libgcc2.h: Likewise. - * tsystem.h: Likewise. - * gcov-io.h: Likewise. - -2003-04-22 David Edelsohn - - * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT - macro defaulting to original BRANCH_COST heuristic. - * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document. - - * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define. - -2003-04-22 Aldy Hernandez - - * config/rs6000/t-spe: Merge in t-fprules into file. - - * config.gcc: Add t-spe to powerpc-eabispe. - -2003-04-22 Kean Johnston - - * tlink.c (recompile_files): Add missing '=' to putenv calls - -2003-04-22 Nathan Sidwell - - * ginclude/stddef.h: Provide C++ safe offsetof. - -2003-04-22 J"orn Rennecke - - * function.c (purge_addressof_1): In (mem (addressof (reg))) case - for reg notes, if there are no substitutions, just use a SUBREG. - -2003-04-21 Mark Mitchell - - * Makefile.in (calls.o): Depend on except.h. - * calls.c: Include except.h. - (emit_call_1): Call note_eh_region_may_contain_throw if - appropriate. - * except.c (eh_region): Add may_contain_throw. - (expand_eh_region_end_cleanup): Do not include handler code when - it cannot be reached. - (note_eh_region_may_contain_throw): New function. - * except.h (note_eh_region_may_contain_throw): New function. - -2003-04-21 Mark Mitchell - - * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous - changes. - -2003-04-21 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_override_options): No SPE means - 64-bit long doubles. - -2003-04-21 Olivier Hainque - - * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore - a number of conversions required for type consistency and previously - stripped off by STRIP_NOPS. - - * calls.c (expand_call): Prevent sibcall optimization for calls to - nested subprograms. - - * expmed.c (extract_bit_field): Reverse operands of && condition to - prevent a potential division by zero in the previously first branch. - * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero. - -2003-04-21 Joel Brobecker - - * dwarf2out.c (is_ada, is_ada_subrange_type): New functions. - (subrange_type_die): Likewise. - (modified_type_die): Emit a subrange_type DIE for Ada subrange types. - (is_c_family, is_cxx, is_java, is_fortran): Return bool and clean up. - -2003-04-21 Nathan Sidwell - - Break out coverage routines to new file. - * Makefile.in (COVERAGE_H): New variable - (C_OBJS): Add coverage.o - (coverage.o): New target. - (profile.o, loop-init.o, sched-ebb.o, predict.o, tracer.o): Adjust - dependencies. - (GTFILES): Adjust. - (gt-coverage.h): New target. - (gt-profile.h): Remove. - * profile.h: Remove. Move to ... - * coverage.h: ... here. New. #include gcov-io.h. - * gcov-io.h: Move function definitions to ... - * gcov-io.c: ... here. New. - * profile.c: Move coverage routines to coverage.c. - (instrument_edges, get_exec_counts, branch_prob, init_branch_prob, - end_branch_prob): Adjust. - * coverage.c: New. Coverage routines from profile.c - (coverage_counter_ref, coverage_init, coverage_finish, - coverage_end_function, coverage_begin_output, - coverage_counter_ref, get_coverage_counts): Define. - * gcov-dump.c, gcov.c: #include gcov-io.c. - * libgcov.c: Likewise. Adjust. - * loop-init.c: Don't #include profile.h - * tracer.c, predict.c, sched-ebb.c: Adjust #includes. - * rtl.h: Add coverage prototypes. - * toplev.c (compile_file): Init coverage, not branch_prob. - Always call coverage_finish. - (rest_of_compilation): Call coverage_end_function. - -2003-04-21 Matt Kraai - - * config/rs6000/rs6000.md (*movsf_softfloat): Add "h" <- "0" case. - -2003-04-21 Neil Booth - - * c-ppoutput.c (cb_include): Don't take a cpp_token. - * cppfiles.c: Don't undef strcmp. - (find_include_file): Don't take a cpp_token. Check for empty - file names. - (_cpp_execute_include, _cpp_compare_file_date): Don't take a cpp_token. - (cpp_push_include): Simplify. - * cpphash.h (_cpp_execute_include, _cpp_compare_file_date): Update. - * cpplib.c (glue_header_name): Return the file name, not a cpp_token. - (parse_include): Similary. Don't check for zero-length filenames. - (do_include_common, do_pragma_dependency): Update accordingly. - * cpplib.h (struct cpp_callbacks): Change prototype of include. - -2003-04-21 Richard Kenner - - * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for - details of conflict handling. - - * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case - when conversion overflows. - - * stor-layout.c (layout_decl): Don't set DECL_SIZE_UNIT if already set. - - * expr.c (store_constructor): Set RTX_UNCHANGING_P if readonly_field_p - before clearing. - -2003-04-21 Mark Mitchell - - * config/i386/winnt.c (i386_pe_mark_dllimport): Make the new RTL - have the same form as the old RTL. - -2003-04-21 Andreas Jaeger - - * cppcharset.c (_cpp_valid_ucn): Cast field precision to int. - -2003-04-20 Chris Lattner - Zack Weinberg - - * c-common.h, c-semantics.c: Rename genrtl_decl_cleanup to - genrtl_cleanup_stmt. Correct comment at head of - genrtl_cleanup_stmt (no such thing as a DECL_CLEANUP). - - * stmt.c (struct nesting): Kill n_function_calls. - (expand_start_bindings): Don't set - thisblock->data.block.n_function_calls. - (expand_end_bindings): Compare function_call_count against 0. - (expand_cleanups): Kill DONT_DO argument; all callers passed - NULL_TREE. All callers updated to match. - -2003-04-20 Zack Weinberg - - * varasm.c (struct deferred_constant, defer_addressed_constants_flag) - (defer_addressed_constants, output_deferred_addressed_constants): Kill. - (output_constant_def): Remove code predicated on - defer_addressed_constants_flag. - - * output.h: Remove prototypes of deleted functions. - * c-typeck.c (constructor_subconstants_deferred): Kill. - (struct initializer_stack): Remove 'deferred' field. - (start_init): Remove all references to the above. - (finish_init): Likewise. Also remove never-executed call to - output_deferred_addressed_constants. Pull assignment to - defstr out of if expression. - -2003-04-20 Neil Booth - - * cpphash.h (NOTE_ESC_NL, NOTE_ESC_SPACE_NL, NOTE_TRIGRAPH, - NOTE_NEWLINE): Remove. - * cpplex.c (_cpp_clean_line, _cpp_process_line_notes): Update - to handle new form of line note type. - -2003-04-20 Zack Weinberg - - * target.h (encode_section_info): Add new argument carrying - the RTL to be modified by the hook. - - * varasm.c (make_decl_rtl, output_constant_def): Update calls - to encode_section_info. - (default_encode_section_info): Take and use RTL argument, - don't use TREE_CST_RTL or DECL_RTL. - * output.h: Update prototype of default_encode_section_info. - * config/darwin.h (ASM_DECLARE_OBJECT_NAME) - (ASM_DECLARE_FUNCTION_NAME, ASM_OUTPUT_ALIGNED_DECL_LOCAL): - Update calls to encode_section_info. - - * config/darwin.c, config/arm/arm.c, config/arm/pe.c - * config/h8300/h8300.c, config/i386/winnt.c, config/m32r/m32r.c - * config/m68hc11/m68hc11.c, config/m88k/m88k.c, config/mcore/mcore.c - * config/mips/mips.c, config/mmix/mmix.c, config/pa/pa.c - * config/romp/romp.c, config/rs6000/rs6000.c, config/s390/s390.c - * config/v850/v850.c (TARGET_ENCODE_SECTION_INFO definitions): - Take and use RTL argument, don't use TREE_CST_RTL or DECL_RTL, - except for PE dllimport/dllexport. Update calls to - default_encode_section_info. - - * config/darwin-protos.h, config/arm/arm-protos.h, config/i386-protos.h: - Update prototypes. - - * doc/tm.texi (TARGET_ENCODE_SECTION_INFO): Update. - -2003-04-20 John David Anglin - - PR/8705 - * pa.md (movccfp): New expander. - (setccfp0, setccfp1): Rename to movccfp0 and movccfp1, respectively. - Reverse fcmp conditions. - -2003-04-20 Marek Michalkiewicz - - * config/avr/avr.md (*cmpqi_sign_extend): Handle negative values - of operand 1 correctly. - -2003-04-20 Nathan Sidwell - - * cpplex.c (_cpp_lex_direct): Set BOL for CPP_EOF tokens. - * gcov.c (output_lines): Don't be so fussy about going past EOF. - -2003-04-20 Neil Booth - - * Makefile.in (LIBCPP_OBJS): Add cppcharset.o. - (cppcharset.o): New target. - * c-lex.c (is_extended_char): Move to cppcharset.c. - (utf8_extend_token): Delete. - * cppcharset.c: New file. - * cpphash.h (_cpp_valid_ucn): New. - * cpplex.c (lex_identifier): Update prototype. - (continues_identifier_p): Rename forms_identifier_p. Handle UCN - escapes. - (maybe_read_ucs): Rename maybe_read_ucn. Update to use code - in cppcharset.c. - (lex_number, lex_identifier, cpp_parse_escape): Update. - (_cpp_lex_direct): Update to handle UCNs. - (cpp_avoid_paste): Don't paste to form a UCN. - -2003-04-19 Roger Sayle - - * builtins.c (expand_builtin): Don't expand a pure or const - built-in function if the result will be ignored and none of - its arguments are volatile. - -2003-04-19 Kean Johnston - - * unwind-dw2.c (_Unwind_GetCFA): cast return to avoid warning - * config.gcc: make SCO use dbxelf.h and elfos.h; only use one - target fragment now: t-sco5; dont compile crti.o. - * config/i386/sco5.h: major overhaul to remove all COFF remnants - and to use elfos.h for most definitions. - (BSS_SECTION_ASM_OP): set correct segment attributes. - (PREFERED_DEBUGGING_TYPE): set to DWARF-2. - (DWARF2_UNWIND_INFO): Always set to 1. - (MD_STARTFILE_PREFIX): Make /usr/gnu/lib the default. - (MD_STARTFILE_PREFIX_1): Define. - (MD_EXEC_PREFIX): Adjust to /usr/gnu/bin if using GAS. - (DEFAULT_LINKER): Define if not specified to configure. - (CTORS_SECTION_ASM_OP): Remove COFF crud. - (DTORS_SECTION_ASM_OP): Remove COFF crud. - (WINT_TYPE): Define. - (SDB_DEBUGGING_INFO): Remove. - (EXTRA_SECTIONS): Likewise. - (EXTRA_SECTION_FUNCTIONS): Likewise. - (CTOR_LIST_BEGIN): Likewise. - (CTOR_LIST_END): Likewise. - (INIT_SECTION_FUNCTION): Likewise. - (FINI_SECTION_FUNCTION): Likewise. - (SUBTARGET_FRAME_POINTER_REQUIRED): Likewise. - (LOCAL_LABEL_PREFIX): Likewise. - (NON_SAVING_SETJMP): Likewise. - (RETURN_POPS_ARGS): Likewise. - (ASM_OUTPUT_SKIP): Likewise. - (TARGET_ASM_NAMED_SECTION): Likewise. - (ASM_OUTPUT_INTERNAL_LABEL): Likewise. - (ASM_OUTPUT_EXTERNAL_LIBCALL): Likewise. - (ASM_OUTPUT_IDENT): Likewise. - (ASM_OUTPUT_CASE_LABEL): Likewise. - (ASM_OUTPUT_ASCII): Likewise. - (ASM_OUTPUT_LIMITED_STRING): Likewise. - (ASM_OUTPUT_ALIGNED_LOCAL): Likewise. - (ASM_OUTPUT_ALIGNED_COMMON): Likewise. - (ASM_GENERATE_INTERNAL_LABEL): Likewise. - (ASM_FINISH_DECLARE_OBJECT): Likewise. - (ASM_DECLARE_OBJECT_NAME): Likewise. - (ASM_DECLARE_FUNCTION_SIZE): Likewise. - (ASM_DECLARE_FUNCTION_NAME): Likewise. - (ASM_DECLARE_RESULT): Likewise. - (ASM_WEAKEN_LABEL): Likewise. - (SUPPORTS_WEAK): Likewise. - (APPLY_RESULT_SIZE): Likewise. - (LPREFIX): Likewise. - (ALIGN_ASM_OP): Likewise. - (ASCII_DATA_ASM_OP): Likewise. - (IDENT_ASM_OP): Likewise. - (ASM_SHORT): Likewise. - (ASM_LONG): Likewise. - (TYPE_ASM_OP): Likewise. - (SIZE_ASM_OP): Likewise. - (STRING_ASM_OP): Likewise. - (SKIP_ASM_OP): Likewise. - (EH_FRAME_SECTION_ASM_OP): Likewise. - (READONLY_DATA_SECTION_ASM_OP): Likewise. - (INIT_SECTION_ASM_OP): Likewise. - (FINI_SECTION_ASM_OP): Likewise. - (TEXT_SECTION_ASM_OP): Likewise. - (DATA_SECTION_ASM_OP): Likewise. - (TYPE_OPERANT_FORMAT): Likewise. - (ASM_SPEC): Remove COFF code. - (STARTFILE_SPEC): Likewise. Always use crti.o; add -p and -pp support; - cause -pg to emit an error; use pcrt1elf.o with -pp - (ENDFILE_SPEC): Likewise. - (TARGET_OS_CPP_BUILTINS): Add _SCO_DS_LL. - (CPP_SPEC): Remove COFF crud; always look in /usr/gnu/include first. - (LINK_SPEC): Remove COFF crud; use -E for environment switch not -R; - add -z alt_resolve to support weak symbols the way GCC wants them. - (LIB_SPEC): Use the profiler libraries in -p or -pp mode. - (LIBGCC_SPEC): Dont use -lgcc in -G mode. - (ASM_PREFERED_EH_DATA_FORMAT): Remove. - * config/i386/t-sco5 (TARGET_LIBGCC2_CFLAGS): Remove. - (CRTSTUFF_T_CFLAGS_S): Define. - (MULTILIB_OPTIONS): Likewise. - (MULTILIB_DIRNAMES): Likewise. - (MULTILIB_MATCHES): Likewise. - (MULTILIB_EXTRA_OPTS): Likewise. - (LIBGCC): Likewise. - (INSTALL_LIBGCC): Likewise. - (crti.o): Remove. - * config/i386/t-sco5gas: Remove. - * doc/install.texi: Updated for new OpenServer instructions. - * testsuite/gcc.dg/nest.c: Allow failure on SCO (-pg not supported) - -2003-04-19 Kean Johnston - - * fixinc/check.tpl: Allow user to over-ride diff program. - * fixinc/inclhack.def: Removed extraneous #ifndef SVR5. - (sco_math): Added test for SCO math header files. - (sco_regset): Added check for conflicts with ieeefp.h. - (svr4_disable_opt): Removed extraneous #ifdef SVR4. - * fixinc/fixincl.x: Regenerated - * fixinc/tests/base/math.h: Added sco_math tests. - * fixinc/tests/base/string.h: New file. - * fixinc/tests/base/sys/regset.h: New file. - -2003-04-19 Neil Booth - - * cpphash.h (struct cpp_buffer): Remove backup_to. - * cpplex.c (BACKUP, get_effective_char): Die. - (_cpp_skip_block_comment): Assume '*' is location on entry. - (continues_identifier_p): Respect -fno-dollars-in-identifiers. - (IF_NEXT_IS): Update. - (_cpp_lex_direct): Don't use backup_to; look ahead directly. - -2003-04-19 Matt Kraai - - * README.Portability: Move to a new section and obsolete K+R - portability issues. - -Sat Apr 19 14:56:17 CEST 2003 Jan Hubicka - - * rtlanal.c (subreg_offset_representable_p): Fix call of - subreg_lowpart. - -2003-04-19 Neil Booth - - * cpphash.h (struct cpp_reader): New member warned_dollar. - * cpplex.c (continues_identifier_p): New function. - (parse_identifier, parse_number, parse_string): Rename lex_identifer, - lex_number and lex_string, and simplify. - (parse_slow, unescaped_terminator_p): Die. - (_cpp_lex_direct): Update. - -2003-04-19 Richard Kenner - - * calls.c (expand_call): Provide init for old_stack_pointer_delta. - -2003-04-19 Nathan Sidwell - - * doc/invoke.texi (-fprofile-arcs): Mention -lgcov, locking and - fork behavior. - -2003-04-19 Neil Booth - - * cppexp.c (eval_token): Permit true and false even if pedantic. - -2003-04-19 Neil Booth - - * cpplex.c (skip_whitespace): Rearrange to avoid stage1 ICE. - -2003-04-19 Neil Booth - - * cppfiles.c (ENABLE_VALGRIND_CHECKING, VALGRIND_DISCARD, - MMAP_THRESHOLD, TEST_THRESHOLD, SHOULD_MMAP): Remove. - (struct include_file): Remove fefcnt, mapped members. - (open_file, stack_include_file, _cpp_pop_file_buffer): Disable caching. - (read_include_file): Don't use mmap, terminate buffers in '\r'. - (purge_cache): Don't use munmap. - * cpphash.h (CPP_BUF_COLUMN): Update. - (lexer_state): Remove lexing_comment. - (struct _cpp_line_note): New. - (struct cpp_buffer): New members cur_note, notes_used, notes_cap, - next_line and need_line. Remove col_adjust and saved_flags. - (_cpp_process_line_notes, _cpp_clean_line, _cpp_get_fresh_line, - _cpp_skip_block_comment, scan_out_logical_line): New. - (_cpp_init_mbchar): Remove. - * cppinit.c (init_library): Remove call to _cpp_init_mbchar. - (cpp_read_main_file): Set line to 1 earlier. - (post_options): -traditional-cpp doesn't want trigraphs. - * cpplex.c (MULTIBYTE_CHARS): Remove code predicated on this. - (add_line_note, _cpp_clean_line, _cpp_process_line_notes, - _cpp_get_fresh_line): New. - (handle_newline, skip_escaped_newlines, trigraph_p, - continue_after_nul, _cpp_init_mbchar): Remove. - (get_effective_char): Update. - (_cpp_skip_block_comment): Rename from skip_block_comment, simplify. - (skip_line_comment): Simplify. - (skip_whitespace, parse_identifier, parse_slow, parse_number, - parse_string): Update. - (cpp_lex_direct): Use clean lines and process line notes. Update. - (cpp_interpret_charconst): No MULTIBYTE_CHARS. - * cpplib.c (prepare_directive_trad): Call scan_out_logical_line - directly. - (_cpp_handle_directive): Don't set saved_flags. - (run_directive, destringize_and_run, cpp_define, cpp_define_builtin, - cpp_undef, handle_assertion, cpp_push_buffer): Update. - (_cpp_pop_buffer): Free notes. - * cppmacro.c (builtin_macro, paste_tokens): \n terminate buffer. - * cpppch.c (cpp_read_state): \n terminate buffer. - * cpptrad.c (skip_escaped_newlines, handle_newline): Remove. - (copy_comment): Use _cpp_skip_block_comment. - (skip_whitespace, lex_identifier, _cpp_read_logical_line_trad): - Simplify. - (_cpp_overlay_buffer, _cpp_remove_overlay, push_replacement_text, - save_replacement_text): Update. - (scan_out_logical_line): Update to use clean lines and process - line notes. - * fix-header.c (read_scan_file): Update. - -2003-04-18 Douglas B Rupp - - * unwind-dw2-fde.c (__register_frame_info_bases): Check for - null begin parameter (as well as pointer to null). - (__deregister_frame_info_bases): Likewise. - -2003-04-18 Richard Kenner - - * function.c (purge_addressof_1): For ADDRESSOF, see if SUB is a - hard or virtual register and copy into pseudo if replacement fails. - - * cfgcleanup.c (flow_find_cross_jump): Use INSN_P, not active_insn_p. - - * expmed.c (mask_rtx): Avoid undefined shifts for BITSIZE of 0. - -2003-04-18 Olivier Hainque - - * calls.c (expand_call): Move special case for constructor calls - to right place. Ensures constructor calls used to initialize - arguments get a clean outgoing argument block for themselves. - Move check for stack deallocation completeness until after last - deallocation. Add stack_pointer_delta to set of state - variables saved and restored along with current stack_level. - - * integrate.c (expand_inline_function): Ensure non-const actuals - don't end up const in the caller's flow after conversion to possibly - const formal type. - -2003-04-18 Vincent Celier - - * dwarf2out.c (loc_descriptor_from_tree): Treat all *_MOD_EXPR - and *_DIV_EXPR as TRUNC_*_EXPR. - -2003-04-18 Mark Mitchell - - * cfgrtl.c (try_redirect_by_replacing_jump): Create a basic block - for orphaned jump tables. - -2003-04-18 Kazu Hirata - - * reload1.c: Revert my previous patch on 2002-04-17. - -2003-04-18 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Prefer "bug fix" over "bugfix". - Add Segher Boessenkool. - -2003-04-18 Alexander Sotirov - - PR c/9177 - * c-decl.c (c_expand_body): Don't garbage collect the function - body if we are going to dump it later. - -2003-04-18 Richard Henderson - - * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): Remove. - (alpha_end_function): Don't set them. - (decl_in_text_section): Remove. - (alpha_encode_section_info): Remove. - (samegp_function_operand): Use SYMBOL_REF LOCAL_P and EXTERNAL_P. - (direct_call_operand): Use SYMBOL_REF_DECL and compare actual - sections, rather than decl_in_text_section results. - -2003-04-18 Roger Sayle - - * rtlanal.c (reg_overlap_mentioned_p): Handle ZERO_EXTRACT - and SIGN_EXTRACT. - -2003-04-18 Eric Botcazou - - PR optimization/7675 - * c-typeck.c (build_external_ref): Set the DECL_NONLOCAL flag - on VAR_DECL, PARM_DECL and FUNCTION_DECL from within - nested functions if they refer to declarations from parent functions. - * stmt.c (expand_decl): Don't put automatic variables in registers - if the DECL_NONLOCAL flag is set. - -2003-04-18 Hans-Peter Nilsson - - * gcse.c (compute_ld_motion_mems): For MEM destinations, only - consider those to be movable where the source matches - want_to_gcse_p. - (update_ld_motion_stores): In comment, refer to - compute_ld_motion_mems for validity of replacement. - -Fri Apr 18 01:28:51 CEST 2003 Jan Hubicka - - * gcov-dump.c (tag_summary): Remove max_sum - * gcov-io.h (gcov_summary, gcov_write_summary, - gcov_read_summary): Kill max_sum. - * libgcov.c (gcov_exit): Do one pass over the data. Make error - message more verbose. - - * emit-rtl.c (subreg_hard_regno): Check that register is - representable. - - * reload.c (reload_inner_reg_of_subreg): When register is not - representable, reload the whole thing. - (find_reloads): Likewsie. - * rtlanal.c (subreg_representable_p): New function. - - * profile.c (compute_branch_probabilities): Cleanup sanity checking; - allow negative probabilities for edges from the call to exit. - (branch_prob): Do not add fake edges for functions that may return - twice. - -2003-04-17 DJ Delorie - - * toplev.c (target_options): Add value field. - (set_target_switch): Handle target options with values. - * doc/tm.texi: Document how fixed vs variable target - options work. - * config/alpha/alpha.h, config/arc/arc.h, config/avr/avr.h, - config/c4x/c4x.h, config/cris/aout.h, config/cris/cris.h, - config/d30v/d30v.h, config/dsp16xx/dsp16xx.h, - config/frv/frv.h, config/i386/i386.h, config/ia64/ia64.h, - config/m32r/m32r.h, config/m68hc11/m68hc11.h, - config/m68k/m68k.h, config/m88k/m88k.h, config/mcore/mcore.h, - config/mips/mips.h, config/mmix/mmix.h, config/pa/pa.h, - config/rs6000/rs6000.h, config/rs6000/sysv4.h, - config/s390/s390.h, config/sparc/sparc.h, config/v850/v850.h: - Add value initializer to target options. - -2003-04-07 Loren James Rittle - - * cpppch.c (cpp_valid_state): Unconditionally initialize nl. - -2003-04-17 Kazu Hirata - - * reload1.c (move2add_last_cc0): New. - (reload_cse_move2add): Detect implicit sets. - (move2add_note_store): Notice a store into cc0. - -2003-04-17 Roger Sayle - - PR c/10375 - * c-decl.c (duplicate_decls): Preserve "const" and "noreturn" - function attributes. - -2003-04-17 Janis Johnson - - * doc/sourcebuild.texi (Test Suites): Document support for testing - binary compatibility (moved from testsuite/README.compat). - -2003-04-17 Richard Henderson - - * config/ia64/ia64.c (ia64_in_small_data_p): Disallow strings. - -2003-04-17 Simon Law - - * doc/include/gpl.texi: Fix double-spacing after "MA" to match - the one provided by the FSF. - -2003-04-17 Gerald Pfeifer - - * doc/install.texi (Binaries): Update URL and list of platforms - provided by ftp.thewrittenword.com. - -2003-04-17 Richard Henderson - - * config/xtensa/xtensa.c (xtensa_encode_section_info): Remove. - (call_insn_operand): Use SYMBOL_REF_LOCAL_P. - * config/xtensa/xtensa.md (call, call_value): Likewise. - -2003-04-17 Richard Henderson - - * config/v850/v850.c (print_operand): Use SYMBOL_REF_[ZST]DA. - (print_operand_address): Likewise. - (ep_memory_operand): Likewise. - (special_symbolref_operand): Likewise. - (v850_encode_data_area): Use SYMBOL_REF_FLAGS. - (v850_encode_section_info): Call default_encode_section_info. - (v850_strip_name_encoding): Remove. - * config/v850/v850.h (EXTRA_CONSTRAINT): Use SYMBOL_REF_[ZST]DA. - (ASM_OUTPUT_LABELREF): Remove. - (ZDA_NAME_FLAG_CHAR, ZDA_NAME_P): Remove. - (SDA_NAME_FLAG_CHAR, SDA_NAME_P): Remove. - (TDA_NAME_FLAG_CHAR, TDA_NAME_P): Remove. - (ENCODED_NAME_P): Remove. - (SYMBOL_FLAG_ZDA, SYMBOL_REF_ZDA_P): New. - (SYMBOL_FLAG_SDA, SYMBOL_REF_SDA_P): New. - (SYMBOL_FLAG_TDA, SYMBOL_REF_TDA_P): New. - -2003-04-17 Richard Henderson - - * config/stormy16/stormy16.c (xstormy16_encode_section_info): Kill. - * config/stormy16/stormy16.h (ASM_OUTPUT_SYMBOL_REF): Use - SYMBOL_REF_FUNCTION_P. - -2003-04-17 Richard Henderson - - * config/sparc/sparc.c (sparc_encode_section_info): Remove. - (data_segment_operand): Use SYMBOL_REF_FUNCTION_P. - (text_segment_operand): Likewise. - -2003-04-17 Richard Henderson - - * config/sh/sh.c (gen_datalabel_ref): Don't add SH_DATALABEL_ENCODING. - (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. - (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P. - (sh_encode_section_info): Remove. - (sh_strip_name_encoding): Remove. - * config/sh/sh.h (SH_DATALABEL_ENCODING): Remove. - (DATALABEL_SYMNAME_P, STRIP_DATALABEL_ENCODING): Remove. - (SH_TLS_ENCODING, TLS_SYMNAME_P, STRIP_TLS_ENCODING): Remove. - (ASM_OUTPUT_LABELREF): Remove. - (ASM_OUTPUT_SYMBOL_REF): Use SYMBOL_REF_FUNCTION_P. - * config/sh/sh.md (*): Use SYMBOL_REF_LOCAL_P. - -2003-04-17 Richard Henderson - - * config/s390/s390.c (SYMBOL_FLAG_ALIGN1): New. - (tls_model_chars): Remove. - (larl_operand): Use SYMBOL_REF_FLAGS. - (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. - (legitimize_pic_address): Use SYMBOL_REF_LOCAL_P. - (s390_output_mi_thunk): Likewise. - (s390_emit_prologue): Set SYMBOL_FLAG_LOCAL as needed. - (s390_function_profiler): Likewise. - (s390_encode_section_info): Use default_encode_section_info - and SYMBOL_FLAG_ALIGN1. - (s390_strip_name_encoding): Remove. - * config/s390/s390.h (ASM_OUTPUT_LABELREF): Remove. - * config/s390/s390.md (call, call_value): Use SYMBOL_REF_LOCAL_P. - (builtin_setjmp_receiver): Set SYMBOL_FLAG_LOCAL as needed. - -2003-04-17 Richard Henderson - - * config/ns32k/ns32k.c (ns32k_encode_section_info): Remove. - (global_symbolic_reference_mentioned_p): Use SYMBOL_REF_LOCAL_P. - (print_operand_address): Likewise. - - * config/ns32k/ns32k.h (CANNOT_CHANGE_MODE_CLASS): Add CLASS argument. - * config/ns32k/ns32k.c (expand_block_move): Don't check - flag_unroll_loops. - -2003-04-17 Richard Henderson - - * config/mcore/mcore.c (mcore_encode_section_info): Don't set - SYMBOL_REF_FLAG. - -2003-04-17 Richard Henderson - - * rtl.h (SYMBOL_FLAG_MACH_DEP_SHIFT): New. - - * config/m32r/m32r.c (SYMBOL_FLAG_MODEL_SHIFT): New. - (SYMBOL_REF_MODEL): New. - (LIT_NAME_P): Move from m32r.h. - (m32r_select_section): Remove. - (m32r_encode_section_info): Use SYMBOL_REF_FLAGS. - (m32r_strip_name_encoding): Remove. - (m32r_in_small_data_p): New. - (small_data_operand): Use SYMBOL_REF_SMALL_P. - (addr24_operand): Use SYMBOL_REF_MODEL. - (call26_operand): Likewise. - (addr32_operand): Tidy. - (m32r_print_operand): Use HOST_WIDE_INT_PRINT_HEX. - * config/m32r/m32r.h (RODATA_SECTION_ASM_OP): Remove. - (SDATA_SECTION_ASM_OP, SBSS_SECTION_ASM_OP): Remove. - (READONLY_DATA_SECTION_ASM_OP): Remove. - (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove. - (SDATA_SECTION_FUNCTION, SBSS_SECTION_FUNCTION): Remove. - (TARGET_ASM_SELECT_SECTION): Remove. - (SDATA_FLAG_CHAR, MEDIUM_FLAG_CHAR, LARGE_FLAG_CHAR): Remove. - (SDATA_NAME_P, SMALL_NAME_P, MEDIUM_NAME_P): Remove. - (LARGE_NAME_P, ENCODED_NAME_P): Remove. - (ASM_OUTPUT_LABELREF): Remove. - -2003-04-17 Richard Henderson - - * config/ip2k/ip2k.c (is_regfile_address): Use SYMBOL_REF_FUNCTION_P. - (encode_section_info): Remove. - * config/ip2k/ip2k-protos.h: Update. - -2003-04-17 Richard Henderson - - * varasm.c (default_encode_section_info): Don't set - SYMBOL_FLAG_EXTERNAL if not TREE_PUBLIC. - * config/i370/i370.c (i370_encode_section_info): Remove. - * config/i370/i370.h (CONSTANT_ADDRESS_P): Use SYMBOL_REF_EXTERNAL_P. - (PRINT_OPERAND, PRINT_OPERAND_ADDRESS): Likewise. - * config/i370/i370.md (movsi): Likewise. - - * config/i370/t-i370: Add missing backslash. - -2003-04-17 Eric Botcazou - - * doc/invoke.texi (inline-limit): Fix pasto. - -2003-04-17 Richard Henderson - - * config/h8300/h8300.c (SYMBOL_FLAG_FUNCVEC_FUNCTION): New. - (small_call_insn_operand): Use it. - (SYMBOL_FLAG_EIGHTBIT_DATA): New. - (h8300_eightbit_constant_address_p): Use it. - (SYMBOL_FLAG_TINY_DATA): New. - (h8300_tiny_constant_address_p): Use it. - (h8300_encode_label, h8300_strip_name_encoding): Remove. - (h8300_encode_section_info): Set SYMBOL_REF_FLAGS. - * config/h8300/h8300.h (TINY_DATA_NAME_P): Remove. - (ASM_OUTPUT_LABELREF): Remove. - -2003-04-16 Richard Henderson - - * config/frv/frv.c (symbol_ref_small_data_p): Remove. Replace - all users with SYMBOL_REF_SMALL_P. - (const_small_data_p): Use SYMBOL_REF_SMALL_P. - (frv_encode_section_info): Remove. - (frv_strip_name_encoding): Remove. - (frv_in_small_data_p): Merge tests from encode_section_info. - (frv_print_operand): Use '@' not SDATA_FLAG_CHAR. - * config/frv/frv.h (SDATA_FLAG_CHAR): Remove. - (SDATA_NAME_P): Remove. - (ASM_OUTPUT_ALIGNED_DECL_LOCAL): Use SIZE not SDATA_NAME_P. - (ASM_OUTPUT_LABELREF): Remove. - (PRINT_OPERAND_PUNCT_VALID_P): Use '@' not SDATA_FLAG_CHAR. - - * config/frv/frv.c (frv_asm_out_constructor): New. - (frv_asm_out_destructor): New. - * config/frv/frv.h (CTORS_SECTION_ASM_OP): New. - (DTORS_SECTION_ASM_OP): New. - (ASM_OUTPUT_CONSTRUCTOR): Remove. - (ASM_OUTPUT_DESTRUCTOR): Remove. - -2003-04-16 Richard Henderson - - * config/cris/cris.c (cris_gotless_symbol, cris_got_symbol): Use - SYMBOL_REF_LOCAL_P; abort if not pic. - (cris_encode_section_info): Remove. - -2003-04-16 Richard Henderson - - * config/c4x/c4x.c (c4x_encode_section_info): Remove. - (c4x_T_constraint): Use SYMBOL_REF_FUNCTION_P. - - * config/c4x/c4x.h (TARGET_CPU_CPP_BUILTINS): Declare - flag_inline_trees. - -2003-04-16 Richard Henderson - - * config/avr/avr.c (avr_encode_section_info): Remove. - (avr_insert_attributes): New. - (print_operand_address): Use SYMBOL_REF_FUNCTION_P. - (avr_assemble_integer): Likewise. - -2003-04-16 Richard Henderson - - * arc.c (arc_encode_section_info): Remove. - (arc_assemble_integer): Use SYMBOL_REF_FUNCTION_P. - (arc_print_operand, arc_print_operand_address): Likewise. - * arc.h (EXTRA_CONSTRAINT): Likewise. - -2003-04-16 Roger Sayle - - * c-semantics.c (find_reachable_label): New function to find a - potentially reachable label in an expression. - (expand_unreachable_if_stmt): Similar to expand_if_stmt but - assumes the start of the IF_STMT is unreachable (dead) code. - (expand_unreachable_stmt): Similar to expand_stmt but assumes - the start of the statement list is unreachable (dead) code. - (genrtl_if_stmt): If the controlling expression of the IF - is constant, use expand_unreachable_stmt for the THEN or ELSE - clause as appropriate. - (genrtl_switch_stmt): Use expand_unreachable_stmt to expand - the body of a SWITCH statement. - (expand_stmt): The code immediately following a "return", - "break", "continue" or "goto" is unreachable. - * Makefile.in (c-semantics.o): Depend upon tree-inline.h. - -2003-04-16 Richard Henderson - - * rtl.h (MEM_ALIAS_SET): Update documentation. - * doc/rtl.texi (Special Accessors): New node. - (SYMBOL_REF_FLAG): Note relationship with SYMBOL_REF_FLAGS. - -2003-04-16 Alexandre Oliva - - * reload1.c (reload_cse_noop_set_p): Return false if mode of - SET_DEST is not the same as that returned by... - * cselib.h (cselib_reg_set_mode): ... new function. - * cselib.c (cselib_reg_set_mode): Define it. - (REG_VALUES): Document semantics of first element as set mode. - (cselib_subst_to_values): Skip first element if ELT is NULL. - (cselib_lookup): Likewise. Insert past the first element. - (cselib_invalidate_regno): NULLify first element. - (cselib_record_set): Set first element. - -2003-04-16 Olivier Hainque - - * tree.c (skip_simple_arithmetics_at, saved_expr_p): New functions. - (save_expr): Replace loop by call to skip_simple_arithmetics_at. - * tree.h: Add prototypes for the two new functions. - * fold-const.c (fold_binary_op_with_conditional_arg): Replace test - updates introduced in the previous revision by call to saved_expr_p. - * stor-layout.c (put_pending_size): Use skip_simple_arithmetics_at. - - * expr.c (store_field): Force usage of bitfield instructions when - the field position requires it, whatever SLOW_UNALIGNED_ACCESS. - (expand_expr, case BIT_FIELD_REF): likewise. - -2003-04-16 Mark Mitchell - - PR middle-end/8866 - * cfgtrl.c (try_redirect_by_replacing_jump): Do not delete - jumptables. - -2003-04-16 Richard Henderson - - * config/ia64/ia64.c (sdata_symbolic_operand): Use - SYMBOL_REF_SMALL_P and SYMBOL_REF_LOCAL_P. - (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. - (function_operand): Use SYMBOL_REF_FUNCTION_P. - (ia64_expand_load_address): Likewise. - (ia64_assemble_integer): Likewise. - (ia64_encode_section_info): Remove. - (ia64_strip_name_encoding): Remove. - * config/ia64/ia64.h (ENCODE_SECTION_INFO_CHAR): Remove. - * config/ia64/sysv4.h (ASM_OUTPUT_LABELREF): Don't strip it. - -2003-04-16 Richard Henderson - - * config/alpha/alpha.c (SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP): New. - (samegp_function_operand): Use SYMBOL_FLAG_SAMEGP. - (direct_call_operand): Use SYMBOL_FLAG_NEAR. - (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P. - (small_symbolic_operand): Use SYMBOL_REF_SMALL_P. - (global_symbolic_operand): Similarly. - (tls_symbolic_operand_1): Use SYMBOL_REF_TLS_MODEL. - (tls_symbolic_operand_type): Likewise. - (alpha_encode_section_info): Use default_encode_section_info. - (alpha_strip_name_encoding): Remove. - (get_tls_get_addr): Split out from ... - (alpha_legitimize_address): ... here. - (alpha_emit_xfloating_libcall): Use init_one_libfunc. - (get_some_local_dynamic_name_1): Use SYMBOL_REF_TLS_MODEL. - (alpha_initialize_trampoline): Use init_one_libfunc. - (alpha_setup_incoming_varargs): Mark unused parameters. - (alpha_initial_elimination_offset): Likewise. - (alpha_end_function): Use SYMBOL_FLAG_NEAR, SYMBOL_FLAG_SAMEGP. - (unicosmk_unique_section): Use default_strip_name_encoding. - (unicosmk_ssib_name, unicosmk_output_externs): Likewise. - -2003-04-16 Aldy Hernandez - - * config.gcc: Add t-spe for eabispe. - - * config/rs6000/t-spe: New. - -2003-04-16 J"orn Rennecke - - Re-apply this patch: - - 2002-05-16 Dale Johannesen - * combine.c (cant_combine_insn_p): Reenable combinations - involving hard regs unless CLASS_LIKELY_SPILLED_P. - -2003-04-16 John David Anglin - - PR/10271 - * pa-protos.h (function_arg): Remove last argument. - * pa.c (function_arg): Likewise. Use CUMULATIVE_ARGS struct instead. - * pa.h (struct hppa_args): Add member incoming. - (INIT_CUMULATIVE_ARGS, INIT_CUMULATIVE_INCOMING_ARGS): Initialize - member incoming. - (FUNCTION_ARG): Revise call to function_arg. - (FUNCTION_INCOMING_ARG): Delete. - -2003-04-15 Zack Weinberg - - * configure.in: Unify the code which creates symlinks to a - just-built as, ld, objdump, and nm with the code that detects - their presence for purposes of feature tests. - * configure: Regenerate. - -2003-04-15 Zack Weinberg - - * varasm.c (output_constant_def): Do not consult - CONSTANT_AFTER_FUNCTION_P. Remove all code predicated on it. - (after_function_constants, output_after_function_constants): Delete. - * doc/tm.texi: Delete documentation of CONSTANT_AFTER_FUNCTION_P. - * config/mips/mips-protos.h, config/mips/mips.c - (mips16_constant_after_function_p): Delete. - * config/mips/mips.h: Delete #if-0-ed definition of - CONSTANT_AFTER_FUNCTION_P. - * config/d30v/d30v.h, config/stormy16/stormy16.h: Remove - mention of CONSTANT_AFTER_FUNCTION_P in comment. - -2003-04-15 Geoffrey Keating - - * tree.c (next_decl_uid): Mark with GTY. - (next_type_uid): Likewise. - -2003-04-15 J"orn Rennecke - - PR target/9594: - * sh.c (barrier_align): Also recognize stuff_delay_slot as - an indicator that a barrier was created by branch splitting. - -2003-04-15 Mark Mitchell - - * c-decl.c (implicitly_declare): Copy declarations that are going - to be placed in a local scope. - -2003-04-15 James A. Morrison - - * invoke.texi (Spec Files): Wrap if-exists-else example. - (MCore): Remove duplicate @itemx entries and @opindex entries. - -2003-04-15 Ulrich Weigand - - * unwind.inc (_Unwind_Backtrace): New function. - * unwind.h (_Unwind_Backtrace): Declare it. - * libgcc-std.ver (_Unwind_Backtrace): Export it. - -2003-04-14 Jason Merrill - - PR middle-end/10336, c++/10401 - * jump.c (never_reached_warning): Also stop looking if we reach the - beginning of the function. - -2003-04-15 Kaveh R. Ghazi - - PR target/10338 - PR bootstrap/10198 - PR bootstrap/10140 - * fixinc/gnu-regex.c (regerror): Use mempcpy not __mempcpy. - -2003-04-15 J"orn Rennecke - - * i386.md (abssf2_if+1): Make condition agree with abssf2_1 . - -2003-04-15 Richard Kenner - - * optabs.c (expand_binop): In multi-word add cases, ensure - XTARGET is copied to TARGET if they are different. - -2003-04-15 Olivier Hainque - - * except.c (resolve_fixup_regions): Avoid dereferencing null pointer - to region, possible after integration of function with unreachable - regions that were optimized away. - -2003-04-15 Jakub Jelinek - - * config/rs6000/rs6000.h (EPILOGUE_USES): Use register 2, - instead of TOC_REGISTER in epilogue in - current_function_calls_eh_return functions. - -2003-04-14 Mark Mitchell - - * doc/extend.texi (Empty Structures): Correct description of G++'s - handling of these structures. - - * c-decl.c (grokdeclarator): Reject extern redeclarations of - static variables. - -2003-04-14 Janis Johnson - - * config/rs6000/rs6000.md (define_constants): Define constants for - all UNSPEC usage, including new values for TLS support. - (aux_truncdfsf2, fctiwz, movsi_got, movsi_got_internal, - load_toc_aix_si, load_toc_aix_di, load_toc_v4_pic_si, - load_toc_v4_PIC_1, load_toc_v4_PIC_1b, load_macho_picbase, - macho_correct_pic, blockage, move_from_CR_ov_bit, movesi_from_cr, - stack_tie, movsi_to_cr_one, movsi_to_cr, mtcrfsi, eh_set_lr_si, - eh_set_lr_di): Use them. - * rs6000.c: (mtcrf_operation, uses_TOC, rs6000_emit_prologue, - rs6000_emit_epilogue) Use them. - - * rtl.h (SYMBOL_REF_TLS_MODEL): Fix mask value. - -2003-04-14 Neil Booth - - * Makefile.in (c-opts.o): Use custom action. - -2003-04-14 Douglas B Rupp - - * ifcvt.c (noce_process_if_block): Fail on BLKmode move. - -2003-04-14 Richard Kenner - - * stor-layout.c (layout_type, case ARRAY_TYPE): Add missing code to - handle "superflat arrays" in Ada. - - * integrate.c (expand_inline_function): Don't inline if would - lose /u on a BLKmode TARGET. - -2003-04-14 Joel Brobecker - - * dbxout.c (print_int_cst_bounds_in_octal_p): New function, - extracted from dbxout_type. - (dbxout_range_type): print large bounds in octal format. - (dbxout_type): Replace extracted code by call to - print_int_cst_bounds_in_octal_p. - - * dwarf2out.c (gen_compile_unit_die): Emit DW_LANG_Ada95 instead - of DW_LANG_Ada83 for Ada units. - -2003-04-14 Olivier Hainque - - * explow.c (round_push): Use HOST_WIDE_INT instead of int for the - temporary used to round CONST_INT sizes. - - * tree.c (int_fits_type_p): Extract generic checks from the case - of constant type bounds. Refine the checks against constant type - bounds to allow for possible decisions against each of these bounds - without requiring both bounds to be constant. - (tree_int_cst_msb): Put back. - * tree.h (tree_int_cst_msb): Likewise. - - * global.c (global_conflicts): Prevent allocation of call clobbered - hard regs to pseudos live across abnormal edges, as later passes are - not ready to handle them. - - * fold-const.c (fold): Reorder tests for conditional expressions. - - * expr.c (highest_pow2_factor): Return unsigned. - * expr.h (offset_address): Likewise. - * emit-rtl.c (offset_address): POW2 argument now unsigned. - -2003-04-14 Roger Sayle - - * builtins.c (expand_builtin_strlen): Evaluate the lengths of - string literals at compile-time. - -2003-04-14 Roger Sayle - - * fold-const.c (fold): Transform (c1 - x) cmp c2, where cmp is a - comparison operation and c1/c2 are floating point constants into - x swap(cmp) (c1 - c2). - -2003-04-14 Vladimir Makarov - - * genautomata.c (output_translate_vect): Fix a typo in loop - condition. - -2003-04-14 Hans-Peter Nilsson - - PR target/10377 - * config/cris/cris.md ("*mov_sideqi", "*mov_sidehi") - ("*mov_sidesi", "*mov_sideqi_mem", "*mov_sidehi_mem") - ("*mov_sidesi_mem", "*clear_sidesi", "*clear_sidehi") - ("*clear_sideqi", "*ext_sideqihi", "*ext_sideqisi") - ("*ext_sidehisi", "*op_sideqi", "*op_sidehi", "*op_sidesi") - ("*op_swap_sideqi", "*op_swap_sidehi", "*op_swap_sidesi") - ("*extopqihi_side", "*extopqisi_side", "*extophisi_side") - ("*extopqihi_swap_side", "*extopqisi_swap_side") - ("*extophisi_swap_side", 8th, 9th, 10th, 11th, 14th peepholes): - When next to constraint R, replace constraint i with n. - -Mon Apr 14 16:18:37 CEST 2003 Jan Hubicka - - PR opt/10024 - * cfgrtl.c (force_nonfallthru_and_redirect): Use unchecked_make_edge. - -2003-04-14 Kriang Lerdsuwanakij - - * doc/contrib.texi (Contributors): Correct my entry. - -2003-04-13 Roger Sayle - - * tree.h (DECL_BUILT_IN_NONANSI): Remove. - * c-common.c (builtin_function_2): Don't set DECL_BUILT_IN_NONANSI. - * c-decl.c (duplicate_decls): Use invariant DECL_BUILT_IN_NONANSI - implies DECL_BUILT_IN to simplify logic. - * print-tree.c (print_node): Don't dump DECL_BUILT_IN_NONANSI. - -2003-04-13 Roger Sayle - - * builtin-types.def (BT_FN_STRING_CONST_STRING): New builtin type. - (BT_FN_PTR_SIZE_SIZE): Likewise. - * builtins.def (BUILT_IN_MALLOC, BUILT_IN_CALLOC, BUILT_IN_STRDUP): - New built-in functions for malloc, calloc and strdup respectively. - * calls.c (special_function_p): No need to handle malloc-like - functions any longer. ECF_MALLOC is set via built-in attributes. - - * c-decl.c (duplicate_decls): Preserve pure and malloc attributes. - - * doc/extend.texi: Document these new built-in functions. - -2003-04-13 Kaveh R. Ghazi - - * builtins.c (expand_builtin_memcpy): Add `endp' argument, use it. - (expand_builtin_stpcpy): New. - (expand_builtin): Add BUILT_IN_MEMPCPY & BUILT_IN_STPCPY. - * builtins.def: Add mempcpy & stpcpy support. - * doc/extend.texi (mempcpy, stpcpy): Document new builtins. - -2003-04-13 Nick Clifton - - * config/rs6000/rs6000.c: Replace occurrences of "GNU CC" with - "GCC". - * config/rs6000/40x.md, config/rs6000/603.md, - config/rs6000/6xx.md, config/rs6000/7450.md, config/rs6000/7xx.md, - config/rs6000/8540.md, config/rs6000/aix.h, config/rs6000/aix31.h, - config/rs6000/aix3newas.h, config/rs6000/aix41.h, - config/rs6000/aix43.h, config/rs6000/aix51.h, - config/rs6000/aix52.h, config/rs6000/altivec-defs.h, - config/rs6000/altivec.h, config/rs6000/altivec.md, - config/rs6000/beos.h, config/rs6000/darwin.h, - config/rs6000/eabi.h, config/rs6000/eabialtivec.h, - config/rs6000/eabisim.h, config/rs6000/eabispe.h, - config/rs6000/freebsd.h, config/rs6000/gnu.h, - config/rs6000/host-darwin.c, config/rs6000/linux.h, - config/rs6000/linux64.h, config/rs6000/linuxaltivec.h, - config/rs6000/lynx.h, config/rs6000/mach.h, config/rs6000/mpc.md, - config/rs6000/netbsd.h, config/rs6000/power4.md, - config/rs6000/rios1.md, config/rs6000/rios2.md, - config/rs6000/rs6000-c.c, config/rs6000/rs6000-modes.def, - config/rs6000/rs6000-protos.h, config/rs6000/rs6000.c, - config/rs6000/rs6000.h, config/rs6000/rs6000.md, - config/rs6000/rs64.md, config/rs6000/rtems.h, config/rs6000/spe.h, - config/rs6000/spe.md, config/rs6000/sysv4.h, - config/rs6000/sysv4le.h, config/rs6000/vxworks.h, - config/rs6000/windiss.h, config/rs6000/xcoff.h: Likewise. - -2003-04-13 Nick Clifton - - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Delete - support for -mcall-aix switch. - * config/rs6000/eabiaix.h: Delete. - * config/rs6000/rs6000.h (rs6000_abi): Remove ABI_AIX_NODESC. - (RS6000_REG_SAVE, RS6000_SAVE_AREA, FP_ARGS_MAX_REG, - RETURN_ADDRESS_OFFSET): Remove use of ABI_AIX_NODESC. - * config/rs6000/rs6000-c.c (rs6000_cpu_cpp_builtins): Likewise. - * config/rs6000/rs6000.c (print_operand, rs6000_stack_info, - debug_stack_info, output_function_profiler, - rs6000_trampoline_size, rs6000_initialise_trampoline): Likewise. - * config/rs6000/rs6000.md (call, call_value, call_nonlocal_sysv, - call_indirect_nonlocal_sysv, call_value_indirect_nonlocal_sysv, - call_value_nonlocal_sysv, sibcall_value_nonlocal_sysv, - sibcall_nonlocal_sysv, sibcall_value_local64): Likewise. - * config/rs6000/t-ppcgas (MULTILIB_OPTIONS): Remove mcall-aix - multilibs. - (MULTILIB_DIRNAMES): Remove mcall-aix directories. - (MULTILIB_EXCEPTIONS): Delete. - (MULTILIB_MATCHES): Remove mcall-aix matches. - - * doc/fragments.texi: Replace -mcall-aix example with an ARM - one. - * doc/install.texi: Delete powerpc-*-eabiaix target. - * doc/invoke.texi: Remove documentation of mcall-aix switch. - * doc/tm.texi: Remove mcall-aix from example CPP_SPEC. - * config.gcc: Delete powerpc-*-eabiaix target. - -2003-04-13 Kazu Hirata - - * doc/invoke.texi: Fix typos. - * doc/tm.texi: Likewise. - -2003-04-12 Zack Weinberg - - * c-typeck.c (digest_init, push_init_level): Use CONSTRUCTOR_ELTS. - -2003-04-12 Zack Weinberg - - * tree.c (build_constructor): New function. - * tree.h: Prototype it. - - * c-typeck.c (build_c_cast, pop_init_level) - * profile.c (build_function_info_value, build_gcov_info_value) - (create_profiler): - Use build_constructor. - - * builtins.c (expand_builtin_args_info): Remove #if 0 blocks. - - * objc/objc-act.c (build_constructor): - Rename objc_build_constructor. Use build_constructor. - (build_objc_string_object, objc_add_static_instance) - (init_def_list, init_objc_symtab, init_module_descriptor) - (generate_static_references, build_selector_translation_table) - (build_descriptor_table_initializer, generate_descriptor_table) - (build_protocol_initializer, build_ivar_list_initializer) - (generate_ivars_list, build_dispatch_table_initializer) - (generate_dispatch_table, generate_protocol_list) - (build_category_initializer, build_shared_structure_initializer): - Update to match. - -2003-04-12 Zack Weinberg - - * intl.h: #define gcc_gettext_width to strlen when !ENABLE_NLS. - -2003-04-12 Stephane Carrez - - * config/m68hc11/m68hc11-protos.h - (m68hc11_eq_compare_operator): Declare - * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register new predicate. - * config/m68hc11/m68hc11.c (m68hc11_eq_compare_operator): New predicate - (d_register_operand): Check the operand mode. - (hard_addr_reg_operand): Likewise. - -2003-04-12 Stephane Carrez - - * config/m68hc11/m68hc11.md ("decrement_and_branch_until_zero"): New - pattern for dbcc/ibcc generation for 68HC12. - ("doloop_end"): New pattern. - ("m68hc12_dbcc_dec_hi"): New pattern for dbeq/dbne. - ("m68hc12_dbcc_inc_hi"): New pattern for ibeq/ibne. - ("m68hc12_dbcc_dec_qi"): New pattern. - ("m68hc12_dbcc_inc_qi"): New pattern. - (split): Add split for the above when we can't use dbcc/ibcc due to - reloading. - (peephole2): Add peephole2 to generate the above when possible. - -2003-04-12 Stephane Carrez - - * config/m68hc11/m68hc11.md ("bitcmpqi" split): No need to test the - mode of operand 0. - (peephole2 optimize const load): Likewise for operand 2. - ("*rotlhi3_with_carry"): Change pattern to a const 1 rotate which - clobbers CC_REGNUM. - ("*rotrhi3_with_carry"): Likewise. - (ashift:DI 1 split): Update pattern to create the above rotate. - (lshiftrt:DI 1 split): Likewise. - -2003-04-12 Stephane Carrez - - * config/m68hc11/m68hc11.md (SOFT_Z_REGNUM): New constant. - ("tstqi_z_used" split): Use it. - ("cmphi_z_used"): Likewise. - ("bitcmpqi_z_used"): Likewise; also use SP_REGNUM constant. - ("cmpqi_z_used"): Likewise. - -2003-04-12 Mark Mitchell - - PR c++/7910 - * config/i386/winnt.c (i386_pe_mark_dllimport): Fix thinko. - -2003-04-12 Zack Weinberg - - * configure.in: Check for wchar.h, mbstowcs, and wcswidth. - * configure, config.in: Regenerate. - * intl.c (gcc_gettext_width): New function. - * intl.h: Prototype it. - -2003-04-12 Stephane Carrez - - * config/m68hc11/m68hc11.h (TARGET_SWITCHES): Fix -mnominmax option; - recognize -mnorelax. - (reg_class): Add Z_OR_S_REGS to represent soft registers with Z - (REG_CLASS_NAMES): Add its name. - (REG_CLASS_CONTENTS): Define its content. - -2003-04-12 Stephane Carrez - - * config/m68hc11/larith.asm (memcpy): Use ARG macro to access stack - parameters so that offsets are valid for far definition. - (__mulsi3): Likewise and use ret to return. - (___adddi3, ___subdi3, ___notdi2, ): Don't use it to save the result. - -2003-04-12 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_hash_constant): Skip '0' fields. - -2003-04-12 Alexandre Oliva - - * mklibgcc.in (libgcc-stage-start): For every multilib directory - containing a libgcc.a, move lib* to the corresponding stage dir. - - * Makefile.in (stage1-start, stage2-start, stage3-start, - stage4-start): Move $(SPECS) to specs in stage dir. - (unstage1 unstage2 unstage3 unstage4): Move specs in stage dir - back as $(SPECS). - - * mklibgcc.in (libgcc-stage-start): Move into the stage directory - object files from the non-libgcc/ multilib directories as well. - -2003-04-11 Geoffrey Keating - - * profile.c (read_counts_file): Initialise 'checksum'. - - * emit-rtl.c (gen_rtx): Really correct typo. - - PR c++/9393 - * doc/invoke.texi (Debugging Options): Document -frandom-seed. - * configure.in: Check for gettimeofday. - * tree.c (flag_random_seed): Define. - (default_flag_random_seed): New. - (append_random_chars): Use flag_random_seed rather than trying - to acquire randomness here. - * tree.h (default_flag_random_seed): Declare. - * toplev.c (display_help): Add -frandom-seed and -fstack-limit-* - descriptions. - (decode_f_option): Handle -frandom-seed. - (print_switch_values): Call default_flag_random_seed. - * flags.h (flag_random_seed): Declare. - * configure: Regenerate. - * config.in: Regenerate. - * config/alpha/t-crtfm: Use -frandom-seed. - - * doc/extend.texi (Empty Structures): New. - - * c-pch.c: Include flags.h. Add comments to routines. - (struct c_pch_validity): New. - (get_ident): Update PCH file version number. - (pch_init): Output current debugging type. - (c_common_valid_pch): Check debugging type. - * Makefile.in (c-pch.o): Update dependencies. - * flags.h (debug_type_names): Declare. - * toplev.c (debug_type_names): Move out of decode_g_option. - -2003-04-11 Eric Christopher - - * emit-rtl.c (gen_rtx): Fix typos. - -2003-04-11 Richard Henderson - - * emit-rtl.c (gen_rtx): Zero '0' fields. - -2003-04-11 Richard Henderson - - PR c++/10202 - * expr.c (expand_expr): Use COMPLETE_OR_UNBOUND_ARRAY_TYPE_P - not COMPLETE_TYPE_P for re-invoking layout_decl. - -2003-04-11 Simon Law - - * doc/bugreport.texi: Fix paragraph breaking between sections - in preparation for TeXinfo's paragraph indentation fixes. - * doc/extend.texi: Ditto. - * doc/invoke.texi: Ditto. - * doc/objc.texi: Ditto. - * doc/gcov.texi: Wrap 'gcov' in @command{}. - * doc/invoke.texi (Darwin Options): Add a preamble. - -2003-04-11 Richard Henderson - - * config/i386/i386.c (tls_model_chars): Remove. - (ix86_encode_section_info, ix86_strip_name_encoding): Remove. - (local_symbolic_operand): Use SYMBOL_REF_LOCAL_P. - (tls_symbolic_operand): Use SYMBOL_REF_TLS_MODEL. - (tls_symbolic_operand_1): Likewise. - (legitimate_pic_address_disp_p): Use SYMBOL_REF_LOCAL_P. - * config/i386/i386.h (TARGET_ENCODE_SECTION_INFO): Remove. - (TARGET_STRIP_NAME_ENCODING, ASM_OUTPUT_LABELREF): Remove. - * config/i386/winnt.c (i386_pe_encode_section_info): Replace - bits "copied from i386.h" with default_encode_section_info. - -2003-04-11 Richard Henderson - - * rtl.def (SYMBOL_REF): Add two 0 fields. - * gengtype.c (adjust_field_rtx_def): Handle them. - * print-rtl.c (print_rtx): Print them. - * rtl.h (SYMBOL_REF_DECL, SYMBOL_REF_FLAGS): New. - (SYMBOL_FLAG_FUNCTION, SYMBOL_REF_FUNCTION_P): New. - (SYMBOL_FLAG_LOCAL, SYMBOL_REF_LOCAL_P): New. - (SYMBOL_FLAG_SMALL, SYMBOL_REF_SMALL_P): New. - (SYMBOL_FLAG_TLS_SHIFT, SYMBOL_REF_TLS_MODEL): New. - (SYMBOL_FLAG_EXTERNAL, SYMBOL_REF_EXTERNAL_P): New. - (SYMBOL_FLAG_MACH_DEP): New. - * optabs.c (init_one_libfunc): Zap fake SYMBOL_REF_DECL. - * varasm.c (make_decl_rtl): Set SYMBOL_REF_DECL. - (assemble_static_space): Set SYMBOL_REF_FLAGS. - (assemble_trampoline_template): Likewise. - (output_constant_def, force_const_mem): Likewise. - (default_encode_section_info): New. - * output.h: Declare it. - * target-def.h (TARGET_ENCODE_SECTION_INFO): Use it. - -2003-04-11 Richard Henderson - - * libfuncs.h (LTI_setbits, LTI_gcov_flush, LTI_gcov_init): New. - (setbits_libfunc, gcov_flush_libfunc, gcov_init_libfunc): New. - * optabs.c (init_optabs): Initialize them. - (init_libfuncs): Use init_one_libfunc. - * calls.c (expand_call): Use gcov_flush_libfunc. - * expr.c (store_constructor): Use setbits_libfunc. - * function.c (expand_main_function): Use init_one_libfunc. - * profile.c (create_profiler): Use gcov_init_libfunc and DECL_RTL. - -2003-04-11 Mark Mitchell - - * doc/c-tree.texi (Functions): Remove DECL_REAL_CONTEXT - documentation; add DECL_FRIEND_CONTEXT. - -2003-04-11 John David Anglin - - * doc/install.texi (hppa): Update links for HP-UX patches. Revise - notes on linker selection and configuration for 64-bit HP-UX port. - * doc/invoke.texi (hppa): Remove hppa text from description for - -ffunction-sections and -fdata-sections. Document -static, -nolibdld - and -threads options. - - * pa-hpux10.h (LIB_SPEC): Add link options to resolve dependency of - libc.a on libdld.sl when -static is specified and -nolibdld is not - specified. - * pa64-hpux.h (LIB_SPEC): Likewise. - * pa-hpux11.h (LIB_SPEC): Likewise. - (LINK_SPEC): Add __gcc_plt_call as an undefined symbol when -shared - is not specified. - -2003-04-11 Zack Weinberg - - * config/darwin-c.c (darwin_pragma_unused): Use lookup_name, - not IDENTIFIER_LOCAL_VALUE. - -2003-04-11 Richard Henderson - - PR c/10201 - * expr.c (expand_expr): Move DECL_RTL frobbing ... - * stor-layout.c (layout_decl): ... here. - -2003-04-11 James A. Morrison - - * doc/invoke.texi: Eliminate extra white-space caused by - @gccoptlist{ on its own line. - * doc/invoke.texi: Ensured there are two spaces between each option. - * doc/invoke.texi: Re-wrapped option lines that were too wide. - Added @gol to options that didn't have them. - -2003-04-11 Nathan Sidwell - - * Makefile.in (loop-init.o): Do not depend on gcov-io.h, - gcov-iov.h. - - Simplify interface to gcov reading and writing. - * gcov-io.h (gcov_file, gcov_position, gcov_length, gcov_buffer, - gcov_alloc, gcov_modified, gcov_errored): Move into ... - (struct gcov_var gcov_var): ... this static structure. - (gcov_write_unsigned, gcov_write_counter, gcov_write_string): - Return void. - (gcov_read_unsigned, gcov_read_couter, gcov_read_string): Return - read object. - (gcov_read_bytes, gcov_write_bytes): Set error flag on error. - (gcov_reserve_length): Remove. - (gcov_write_tag): New. - (gcov_write_length): Adjust. - (gcov_read_summary, gcov_write_summary): Adjust. - (gcov_eof, gcov_ok): Rename to ... - (gcov_is_eof, gcov_is_error): ... here. Return error code. - (gcov_save_position, gcov_resync): Rename to ... - (gcov_position, gcov_seek): ... here. - (gcov_skip, gcov_skip_string): Remove. - (gcov_error): Remove. - (gcov_open, gcov_close): Adjust. - * gcov.c (find_source): Take const char *, copy it on allocation. - (read_graph_file): Adjust. - (read_count_file): Adjust. - * libgcov.c (gcov_exit): Adjust. - * gcov-dump.c (tag_function, tag_blocks, tag_arcs, tag_lines, - tag_arc_counts, tag_summary): Return void. Adjust. - (struct tag_format): Adjust proc member. - (dump_file): Adjust gcov calls. - -2003-04-11 Alexandre Oliva - - * Makefile.in (fixinc.sh): Pass BUILD_LIBERTY as LIBERTY to - mkfixinc.sh. - * fixinc/mkfixinc.sh (defs): Add LIBERTY. - * configure.in (STMP_FIXINC, STMP_FIXPROTO): Don't disable on - build != host sysrooted builds. - * configure.in (SYSTEM_HEADER_DIR): Make sure it contains - TARGET_SYSTEM_ROOT even on sysrooted natives. - * configure: Rebuilt. - -2003-04-10 Zack Weinberg - - * c-decl.c (struct binding_level): Add shadowed_tags and - function_body; remove this_block, tag_transparent, and - subblocks_tag_transparent; update comments. - (clear_binding_level, lookup_tag_reverse): Kill. - (make_binding_level): Use ggc_alloc_cleared or memset. - (lookup_tag): Remove struct binding_level* parameter. All - callers changed. Just look at IDENTIFIER_TAG_VALUE, and - current_binding_level->tags if asked for thislevel_only or if - we might have to diagnose "struct foo; union foo;" - (pushlevel): Ignore argument. Do not push another binding - level on the transition from the parameters to the top level - of the function body; just tweak the flags and proceed. - (poplevel): Overhaul. Clear IDENTIFIER_TAG_VALUEs; on exiting - a function body, separate the parameter list from the - top-level local variables. - (set_block): Do nothing. - (pushtag): Set IDENTIFIER_TAG_VALUE and add an entry to - shadowed_tags if necessary. - (warn_if_shadowing): Nuke the special case for local shadowing - parameter. - (pushdecl): Do not create a shadow entry if we are replacing - an older decl in the same binding level. - (pushdecl_function_level): Tweak for new way of indicating - function scope. - (shadow_tag_warned): Use TYPE_NAME, not lookup_tag_reverse. - (start_function): Don't set subblocks_tag_transparent. - (finish_function): Fix up the binding_level stack for totally - empty functions. Otherwise, don't call poplevel. - - * c-common.c (shadow_warning): MANDATORY argument is no longer - necessary. Always use plain warning. - * c-common.h: Update to match. - - * cfglayout.c (scope_to_insns_initialize): Clear block when we - hit the FUNCTION_DECL. - * function.c: Do not create cyclic tree structure. - -2003-04-10 Zack Weinberg - - * c-tree.h (struct lang_identifier): Replace global_value, - local_value members with symbol_value, tag_value. Kill - implicit_decl and limbo_value. - (IDENTIFIER_GLOBAL_VALUE, IDENTIFIER_LOCAL_VALUE, - IDENTIFIER_LIMBO_VALUE, IDENTIFIER_IMPLICIT_DECL, - C_MISSING_PROTOTYPE_WARNED): Kill. - (IDENTIFIER_SYMBOL_VALUE, IDENTIFIER_TAG_VALUE, - C_DECL_IMPLICIT, C_DECL_ISNT_PROTOTYPE): New. - (C_DECL_ANTICIPATED): Rename to C_DECL_INVISIBLE. - (implicit_decl_warning, lookup_name_current_level, - record_function_scope_shadow): Don't prototype. - (pushdecl_function_level): Prototype. - - * c-decl.c (truly_local_externals): New variable. - (struct binding_level): Adjust commentary. - (get_function_binding_level, clear_limbo_values, - record_function_scope_shadow): Kill. - (lookup_name_current_level, implicit_decl_warning): Are now static. - (any_external_decl, record_external_decl): New static functions. - (clone_underlying type): Split out of pushdecl. - (c_print_identifier): Update to match changes to struct - lang_identifier. - (poplevel): Delete #if 0 block. Make externals invisible - instead of clearing their IDENTIFIER_SYMBOL_VALUEs. Don't - call clear_limbo_values. Refer to IDENTIFIER_SYMBOL_VALUE not - IDENTIFIER_GLOBAL_VALUE or IDENTIFIER_LOCAL_VALUE. - (duplicate-decls): For real parm decl after a forward decl, - set TREE_ASM_WRITTEN here. Allow void foo(...) followed by - foo(...) { } with only a warning. Say whether a previous - declaration was implicit. - (warn_if_shadowing): Now handles all shadowing, not just - local-over-local. Clarify comments. - (pushdecl): Rewritten. There is no longer a distinction - between global and local symbol values; they're all - IDENTIFIER_SYMBOL_VALUE. Call record_external_decl on all - DECL_EXTERNAL decls, and use any_external_decl to check - against previous externals. Kill #if 0 blocks. Don't - tolerate error_mark_node being NULL. - (pushdecl_top_level): Handle only those cases which - Objective C (the only user) needs. - (pushdecl_function_level): New function. - (implicitly_declare): Create ordinary decls with - C_DECL_IMPLICIT set. Recycle old decls, however they got - created. - (lookup_name): It's always IDENTIFIER_SYMBOL_VALUE. Return 0 - for C_DECL_INVISIBLE symbols. - (lookup_name_current_level): Likewise. Use chain_member. - (c_make_fname_decl): Don't muck with DECL_CONTEXT. - Use pushdecl_function_level. - (builtin_function): Use C_DECL_INVISIBLE. - (start_function): Don't muck with IDENTIFIER_IMPLICIT_DECL. - Use C_DECL_ISNT_PROTOTYPE and C_DECL_IMPLICIT. - (store_parm_decls): It's IDENTIFIER_SYMBOL_VALUE now. - (identifier_global_value): Same. Must scan - global_binding_level in extremis. - - * c-typeck.c (undeclared_variable): New static function, split - from build_external_ref. - (build_external_ref): Use DECL_CONTEXT, not - IDENTIFIER_LOCAL_VALUE, to decide whether a local hides - an instance variable. Restructure for clarity. - * objc/objc-act.c: Use identifier_global_value, not - IDENTIFIER_GLOBAL_VALUE. - -2003-04-08 Jonathan Wakely - - * doc/extend.texi (Template Instantiation): Refer to ISO standard, - not Working Paper. - * doc/invoke.texi (C++ Dialect Options): Same. - -2003-04-10 Zack Weinberg - - * tree.c (tree_operand_check_failed): New function. - * tree.h (TREE_OPERAND_CHECK, TREE_OPERAND_CHECK_CODE, - TREE_RTL_OPERAND_CHECK): New checking macros. - (TREE_OPERAND, SAVE_EXPR_CONTEXT, SAVE_EXPR_RTL, - RTL_EXPR_SEQUENCE, RTL_EXPR_RTL, WITH_CLEANUP_EXPR_RTL, - CONSTRUCTOR_ELTS, LABELED_BLOCK_LABEL, LABELED_BLOCK_BODY, - EXIT_BLOCK_RETURN, LOOP_EXPR_BODY, EXPR_WFL_NODE, - EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME, TARGET_EXPR_SLOT, - TARGET_EXPR_INITIAL, TARGET_EXPR_CLEANUP): Use the new - checking macros. - -Thu Apr 10 23:52:30 CEST 2003 Jan Hubicka - - PR inline-asm/8803 - * function.c (instantate_virtual_regs): Verify that all ASM statements - match after the virutal regs instantiation. - -2003-04-10 Steve Ellcey - - * ia64-protos.h (addp4_optimize_ok): New. - * ia64.c (addp4_optimize_ok): New. - * ia64.md (*ptr_extend_plus_1): Use addp4_optimize_ok. - (*ptr_extend_plus_2): Ditto. - -2003-04-10 Steve Ellcey - - * expr.c (expand_assignment): Extend offset_rtx with convert_to_mode - not with convert_memory_address. - (store_constructor): Ditto, and same for copy_size_rtx. - (expand_expr): Ditto. - -2003-04-10 Douglas B Rupp - - * config/i386/i386.c (ix86_ms_bitfield_layout_p): Fix formatting. - -2003-04-10 Bob Wilson - - * config/xtensa/lib2funcs.S (__xtensa_sync_caches): Flush data cache - even if it is configured to be write-through. - -2003-04-10 Ulrich Weigand - - * config/s390/s390.c (larl_operand): Do not allow symbols - marked with '@'. - (s390_encode_section_info): Mark symbols with forced 1-byte - alignment with '@'. - (s390_strip_name_encoding): Strip '@'. - (legitimize_pic_address): Handle symbols that are not valid - LARL operands in 64-bit mode. - -2003-04-10 Andrew Haley - - * tree-inline.c (inlinable_function_p): Disable inlining for - synchronized methods. - -2003-04-09 Steven Bosscher - - * c-common.h (lang_statement_code_p): Remove declaration. - (statement_code_p): Ditto. - (c_common_stmt_codes): Define; list of c-common statement codes. - (statement_code_p): New extern declaration. - (STATEMENT_CODE_P): Define. - (INIT_STATEMENT_CODES): Define. - * c-common.c (statement_code_p): Kill the function, declare - as an array of bools instead. - (lang_statement_code_p): Remove. - (walk_stmt_tree): Use STATEMENT_CODE_P not statement_code_p. - (c_safe_from_p): Ditto. - * c-objc-common.c (c_objc_common_init): Use INIT_STATEMENT_CODES - to initialize the statement_code_p array. - * tree-inline.c (walk_tree): Use STATEMENT_CODE_P instead of - statement_code_p. - (copy_tree_r): Ditto. - * cp/cp-tree.h (cp_stmt_codes): Define; list of C++ specific - statement tree codes. - * cp/lex.c (cxx_init): Add missing print line break. Use - INIT_STATEMENT_CODES to initialize the statement_code_p array. - * cp/parser.c (cp_parser_statement): Use STATEMENT_CODE_P - instead of statement_code_p. - * cp/pt.c (tsubst_expr): Ditto. - * cp/tree.c (verify_stmt_tree_r): Ditto. - (cp_statement_code_p): Remove. - (init_tree): Don't set lang_statement_code_p, it's gone. - -2003-04-09 Dan Nicolaescu - Zack Weinberg - - * regrename.c (struct du_chain): Use a bitfield for reg_class. - * cse.c (struct qty_table_elem, struct table_elt, struct set): - Use bitfields for fields holding enum rtx_code or - enum machine_mode values. Add comments explaining size choices. - -2003-04-09 Alexandre Oliva - - * config/fp-bit.c (unpack_d): Handle pair of doubles with - different signs correctly. - -2003-04-09 Vladimir Makarov - - * sched-deps.c (reg_pending_barrier_mode): New enumeration. - (reg_pending_barrier): Make it of the enumeration type. - (sched_analyze_2): Define the barrier as MOVE_BARRIER or - TRUE_BARRIER. - (sched_analyze): Ditto. - (sched_analyze_insn): Ditto. Use anti-dependencies for - MOVE_BARRIER and true-dependencies as TRUE_BARRIER. - (init_deps_global): Initialize the barrier as NO_BARRIER. - -2003-04-09 Vladimir Makarov - - * config/ia64/ia64.c (issue_nops_and_insn): Add new parameter. - Check that asm insn starts on a new cycle. Add nops after asm - insn to end bundle. - (bundling): Move insn type evaluation from the loop. Call - issue_nops_and_insn with the new parameter. Ignore changing - position for nops after asm insn. - -2003-04-09 Alexandre Oliva - - * optabs.c: Comment that gen_add2_insn and others may actually - return emitted insns, if the gen functions turn out to return - emitted insns. - * reload1.c (reload_cse_move2add): Cope with emitted insns from - gen_add2_insn. - -2003-04-09 Richard Henderson - - * config/ia64/ia64.c (move_operand): Allow symbolic_operand, - but not tls_symbolic_operand. - (ia64_expand_load_address): Remove scratch operand. - (ia64_expand_tls_address): Split out from ia64_expand_move. - (ia64_expand_move): Split symbolics only after reload. - (ia64_emit_cond_move): New. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.md (movsi_symbolic, movdi_symbolic): Remove. - (symbolic splitter): Accept SImode operands too. - (cmove splitter): Use ia64_emit_cond_move. - -2003-04-09 Nick Clifton - - * doc/install.texi: Note that ARM toolchains need binutils 2.13 or - newer. - * config/arm/elf.h (SUBTARGET_ASM_FLOAT_SPEC): Pass -mfpu=softfpa - instead of -mno-fpu. - * config/arm/semi.h (ASM_SPEC): Likewise. - * config/arm/xscale-elf.h (SUBTARGET_EXTRA_ASM_SPEC): Likewise, - but only if -msoft-float is specified pass. Otherwise pass - -mfpu=softvfp. - -2003-04-09 Zdenek Dvorak - - * function.c (purge_addressof): Use free_INSN_LIST_node instead of - free_EXPR_LIST_node. - -2003-04-08 Roger Sayle - - * fold-const.c (fold): Use "fold" following build in more places. - Optimize sqrt(x)*sqrt(x) as x, pow(x,y)*pow(z,y) as pow(x*z,y), - pow(x,y)*pow(x,z) as pow(x,y+z) and x/pow(y,z) as x*pow(y,-z). - -2003-04-08 Roger Sayle - - * builtins.c (fold_builtin): Constant fold expressions as x*0.5 - instead of x/2.0. Optimize sqrt(pow(x,y)) as pow(x,y*0.5), - log(pow(x,y)) as y*log(x), pow(exp(x),y) as exp(x*y), - pow(sqrt(x),y) as pow(x,y*0.5) and pow(pow(x,y),z) as pow(x,y*z). - Delete function scope "fcode" variable to avoid shadowing. - -2003-04-08 Kevin Buettner - - * dwarf2out.c (DWARF_ARANGES_HEADER_SIZE, DWARF_ARANGES_PAD_SIZE): - Take into account DWARF_INITIAL_LENGTH_SIZE. - -2003-04-08 Hans-Peter Nilsson - - * reorg.c (fill_slots_from_thread): When considering changing the - insn following a reg-to-reg copy insn to use the source reg of the - copy, bail out if there's overlap between the registers. - -2003-04-08 Zdenek Dvorak - - * function.c (postponed_insns): New. - (purge_addressof_1): Postpone processing of insns if addressofs - are not put into stack. - (purge_addressof): Process postponed insns. - -2003-04-08 J"orn Rennecke - - * sh.h (NORMAL_MODE): If interrupt handler and TARGET_FMOVD, - this is FP_MODE_DOUBLE . - * sh.c (ra.h): #include. - (push_regs): Add second parameter. Changed all callers. - If necessary, set fpscr before saving floating point registers. - (calc_live_regs): If interrupt handler and TARGET_FMOVD, always - do saves / restores with SZ == 1. - (sh_expand_prologue): If interrupt handler, don't use gen_toggle_sz. - (sh_expand_epilogue): Likewise. For TARGET_FMOVD, if floating point - registers are being restored, restore FPSCR only after restoring them. - -2003-04-08 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_init_builtins): Set opaque types - regardless of architecture. - (spe_init_builtins): Change V2SI and V2SF types to opaque types. - -2003-04-08 J"orn Rennecke - - * sh.c (push_regs, calc_live_regs): Return int. Take single - HARD_REG_SET * parameter. Changed all callers. - -Tue Apr 8 11:12:07 CEST 2003 Jan Hubicka - - * i386.c (legitimate_pic_address_disp_p): Do not accept PLUS in the - GOTOFF operand. - (legitimize_pic_address): Move plus outside the unspec. - * i386.c (legitimate_constant_p): Check (CONST (PLUS (UNSPEC ... - for validity. - -2003-04-08 Nathan Sidwell - - * gcov-io.h (gcov_save_position): Remove __inline__ from - declaration. - -2003-04-07 Matt Kraai - - * doc/install.texi: Use @command and @samp for single- and - multi-word commands respectively. - * doc/makefile.texi: Likewise. - * doc/sourcebuild.texi: Likewise. - -2003-04-07 Christian Ehrhardt - Richard Henderson - - PR c/9516 - * expr.c (safe_from_p): Rearrange to avoid deep recursion in - favor of looping and tail recursion for TREE_LIST and binops. - -2003-04-08 Zdenek Dvorak - - * loop.h (REGNO_FIRST_LUID, REGNO_LAST_LUID): Provide defaults - for insns without luid. - -2003-04-07 Glen Nakamura - - PR opt/8634 - * explow.c (maybe_set_unchanging): Don't flag non-static const - aggregate type initializers with RTX_UNCHANGING_P. - -2003-04-07 Richard Henderson - - PR opt/8634 - * function.c (purge_addressof_1): Don't try arithmetics for - unchanging memories. - -2003-04-07 Janis Johnson - - * doc/sourcebuild.texi (Test Suites): Document testing support for - gcov and profile-directed optimizations; describe gcc.misc-tests. - -Mon Apr 7 22:19:59 CEST 2003 Jan Hubicka - - PR target/10077 - * i386.md (movsi_1, movsi_nointerunit_1): Fix SSEMOV alternative. - -2003-04-07 Eric Botcazou - - * doc/rtl.texi (Comparison operations): Update to - record the allowed comparison modes. - -2003-04-07 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_common_init_builtins): Rename all - V2SI_type_node to opaque_V2SI_type_node. Rename all - V2SF_type_node to opaque_V2SF_type_node. - (rs6000_init_builtins): Define opaque_V2SI_type_node and - opaque_V2SF_type_node. - (is_ev64_opaque_type): The types opaque_V2SI_type_node and - opaque_V2SF_type_node are opaque types. - -2003-04-07 J"orn Rennecke - - * gcse.c (replace_store_insn): Use single_set. - -2003-04-07 Nathan Sidwell - - Change gcov file interface to single file at a time. - * gcov-io.h: Replace IN_LIBGCC1 with IN_LIBGCOV. Use IN_GCOV. - Convert to C89 prototypes. - (gcov_file, gcov_length, gcov_position, gcov_buffer, gcov_alloc, - gcov_error, gcov_modified): New static variables. - (gcov_open, gcov_close, gcov_read_bytes, gcov_write_bytes): New - functions. - (gcov_write_unsigned, gcov_write_counter, gcov_write_string, - gcov_read_unsigned, gcov_read_counter, gcov_read_string): Adjust. - (gcov_read_summary, gcov_write_summary): Adjust. - (gcov_save_position, gcov_reserve_length, gcov_write_length): - Adjust. - (gcov_resync, gcov_skip, gcov_skip_string): Adjust. - (da_file_open, da_file_close, da_file_eof, da_file_error): Remove. - (da_file_position, da_file_seek, da_file_write, da_file_read): - Remove. - (gcov_error, gcov_eof, gcov_ok, gcov_time): New functions. - * gcov.c (gcov_type): Don't typedef here. - (IN_GCOV): #define - (read_graph_file, read_count_file): Adjust. - * gcov-dump.c (gcov_type): Don't typedef here. - (IN_GCOV): #define. - (tag_function, tag_blocks, tag_arcs, tag_lines, tag_arc_counts): - Remove FILE parameter, adjust. - (struct tag_format): Adjust proc member. - (dump_file): Adjust. - * libgcov.c (IN_LIBGCOV): #define. - (gcov_exit): Adjust. - * loop-init.c: Don't #include gcov-io.h - * profile.c (struct counts_entry): New structure to hold counter - values. - (struct section_reference, struct da_index_entry): Remove. - (bbg_file, da_file): Remove. - (htab_counts_index_hash, htab_counts_index_eq, - htab_counts_index_del): Replace with ... - (htab_counts_entry_hash, htab_counts_entry_eq, - htab_counts_entry_del): ... these. - (cleanup_counts_index, index_counts_file): Remove. - (read_counts_file): New function. - (get_exec_counts): Adjust. - (compute_branch_probabilities): Don't free the exec counts here. - (branch_prob): Adjust. - (init_branch_prob): Adjust. - (end_branch_prob): Adjust. - -2003-04-07 Aldy Hernandez - - * doc/invoke.texi (RS/6000 and PowerPC Options): Document - -mfloat-gprs. - - * config/rs6000/rs6000.c: Delete rs6000_fprs. - Declare rs6000_float_gprs. - Declare rs6000_float_gprs_string. - (rs6000_parse_float_gprs_option): New. - (rs6000_override_options): Genericize rs6000_parse_* calls to use - rs6000_parse_yes_no_option. - Change check for cpu=8540, to use TARGET_E500. - (rs6000_parse_isel_option): Delete. - (rs6000_parse_spe_option): Delete. - (rs6000_parse_vrsave_option): Delete. - - * config/rs6000/rs6000.h: Rename rs6000_fprs to rs6000_float_gprs. - Define rs6000_float_gprs_string. - (TARGET_OPTIONS): Add rs6000_float_gprs option. - - * config/rs6000/eabi.h (TARGET_FPRS): Change to use rs6000_float_gprs. - - * config/rs6000/eabispe.h: Set rs6000_float_gprs. - -Mon Apr 7 14:36:24 CEST 2003 Jan Hubicka - - PR opt/10024 - * cfglayout.c (cfg_layout_redirect_edge): - Redirect any branch edges unified with the fallthru one. - * cfgrtl.c (force_nonfallthru_and_redirect): Do not special - case fallthru edges when called via cfglayout.c - -2003-04-07 J"orn Rennecke - - * c-typeck.c (output_init_element): Check for type == error_mark_node. - -2003-04-07 Kazu Hirata - - * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Always - split. - (a splitter): Do zero-extension via HImode. - -2003-04-07 James A. Morrison - - * doc/invoke.texi: Eliminate extra white-space caused by - @gccoptlist{ on its own line. - * doc/invoke.texi: Ensured there are two spaces between each option. - * doc/invoke.texi: Re-wrapped option lines that were too wide. - Added @gol to options that didn't have them. - -2003-04-07 James A Morrison - - * doc/extend.texi (Darwin Pragmas): Fix spelling of Mac OS. - -2003-04-06 Zack Weinberg - - * tree.c (tree_size): For all 'c' and 'x' nodes, look directly - at the sizes of the relevant structures, rather than relying - on TREE_CODE_LENGTH. Call lang_hooks.tree_size to get the - sizes of any such we don't know about. Use - lang_hooks.identifier_size for IDENTIFIER_NODE. - - (initializer_zerop): Use CONSTRUCTOR_ELTS. - * tree.def: Update commentary. Make fourth element of - the definition for all 'c' and 'x' nodes zero. - - * langhooks.h: New hook, tree_size / LANG_HOOKS_TREE_SIZE. - * langhooks-def.h: Update to match. - * langhooks.c: New default, lhd_tree_size. - - * c-common.def (SRCLOC): Kill. - * c-pretty-print.c (pp_c_postfix_expression [case SRCLOC]): - Remove entirely - was already #if-ed out. - - -2003-04-06 Zack Weinberg - - * mklibgcc.in: Use a here document to avoid running afoul of - shells that generate control-A from "echo \1". - -2003-04-06 Aldy Hernandez - - * doc/invoke.texi (RS/6000 and PowerPC Options): Document -mspe - option. - - * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Set - rs6000_spe. - - * config/rs6000/eabi.h (TARGET_E500): Define. - - * config/rs6000/rs6000.h (TARGET_E500): Define. - (TARGET_OPTIONS): Add spe= option. - Declare rs6000_spe and rs6000_spe_string extern. - - * config/rs6000/rs6000.c (branch_positive_comparison_operator): - Change TARGET_SPE to TARGET_E500. - (ccr_bit): Change TARGET_SPE to TARGET_E500. Check for - !TARGET_FPRS. - (print_operand): Same. - (rs6000_generate_compare): Same. - (output_cbranch): Same. - (rs6000_spe): Declare. - (rs6000_spe_string): Declare. - (rs6000_override_options): Call rs6000_parse_spe_option. - (rs6000_parse_spe_option): New. - -2003-04-06 Steven Bosscher - - * hashtable.c (gcc_obstack_init): Delete this function - and everything related to it. - * hashtable.h: Remove prototype. - * bitmap.c (bitmap_element_allocate): Cleanup redundant - defines. Cleanup some unnecessary whitespace. - * defaults.h (obstack_chunk_alloc): Redefine with - appropriate casts for libiberty obstacks. - (obstack_chunk_free): Ditto. - (OBSTACK_CHUNK_SIZE): Define, default to 0. - (gcc_obstack_init): Define as a call to _obstack_begin. - * tree.c (print_obstack_statistics): Delete this unused - function. - * tree.h (obstack): Don't forward-declare. - (print_obstack_statistics): Delete prototype. - (print_obstack_name): Ditto. - (gcc_obstack_init): Ditto. - * rtl.h (gcc_obstack_init): Ditto. - * java/jv-scan.c (gcc_obstack_init): Delete this - function, its prototype and related defines. - * java/jvgenmain.c (gcc_obstack_init): Delete this - function, and related defines. - * java/parse-scan.y (obstack_chunk_alloc): Don't define. - (obstack_chunk_free): Ditto - -2003-04-06 Geoffrey Keating - - * dbxout.c (dbxout_handle_pch): Move prototype out from - #if defined DBX_DEBUGGING_INFO. - -2003-04-05 Nathan Sidwell - - * gcov.c (struct arc_info): Replace local_span with cycle. - (struct block_info): Replace u.span with u.cycle. Add is_call_return. - (solve_flow_graph): Set is_call_return. - (add_line_counts): Adjust. In block mode, blocks attach to last line. - (accumulate_line_counts): Find graph cycles, not spanning tree. - (output_branch_count): Adjust. - (output_lines): Adjust. - * doc/gcov.texi: Update. - -2003-04-06 Kazu Hirata - - * config/h8300/h8300.md (*zero_extendqisi2_h8300hs): Change - the second alternative to "#". - -2003-04-05 Kazu Hirata - - * config/h8300/h8300.c (single_one_operand): Use GET_MODE_MASK. - (single_zero_operand): Likewise. - -2003-04-05 Daniel Berlin - - * Makefile.in (df.o): Depend on alloc-pool.h, not obstack.h. - * df.c: Include alloc-pool.h, not obstack.h. - (df_ref_obstack): Remove. - (df_ref_pool, df_link_pool): Add pools. - (df_alloc): Init the new pools. - (df_free): And free them. - (df_link_create): Use the pools. - (df_ref_create): Ditto. - -2003-04-05 Kazu Hirata - - * simplify-rtx.c: Fix formatting. - -2003-04-05 Andrew Pinski - - * config/rs6000/rs6000.c (addrs_ok_for_quad_peep): Allow addr2 - reg with reg1 == reg2 and offset1 = -8. - -2003-04-05 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_rtx_costs): Halve Power4 - multiply costs. Correct Power4 divide costs. - * config/rs6000/power4.md: Restore multiply and FP latency. - -2003-04-05 Zdenek Dvorak - - * alias.c (find_base_term): Export. - * rtl.h (find_base_term): Declare. - * gcse.c (find_moveable_store): Test for flag_non_call_exceptions - instead of flag_exceptions. Move test for parameter passing ... - (store_killed_in_insn): ... here. - -2003-04-05 Gerald Pfeifer - - PR bootstrap/10267 - * doc/install.texi (*-*-solaris2): /bin/ksh is not just recommended - for configuring. - -2003-04-04 Geoffrey Keating - - * dbxout.c (scope_labelno): Add GTY. - (have_used_extensions): Add GTY. - (source_label_number): Add GTY. - (lastfile): Add GTY. - (lastfile_is_base): New. - (base_input_file): New. - (dbxout_handle_pch): New. - (dbx_debug_hooks): Add handle_pch. - (xcoff_debug_hooks): Likewise. - (dbxout_function_end): Remove scope_labelno. - (dbxout_init): Set base_input_file. - (dbxout_handle_pch): New. - (dbxout_source_file): Honour lastfile_is_base. - * dwarfout.c (dwarf_debug_hooks): Add dummy handle_pch. - * sdbout.c (sdb_debug_hooks): Add dummy handle_pch. - * vmsdbgout.c (vmsdbg_debug_hooks): Add dummy handle_pch. - * dwarf2out.c (dwarf2_debug_hooks): Add dummy handle_pch. - * debug.c (do_nothing_debug_hooks): Add dummy handle_pch. - * debug.h (struct gcc_debug_hooks): Add handle_pch. - * c-pch.c (pch_init): Don't call start_source_file, but do call - handle_pch. - (c_common_write_pch): Call handle_pch. - (c_common_read_pch): Don't call start_source_file, - or end_source_file. - -Fri Apr 4 17:43:52 2003 Olivier Hainque - - * emit-rtl.c (get_mem_attrs): Adjust alignment tests determining - use of default attributes to agree MEM_ALIGN macro. - -Fri Apr 4 17:33:24 2003 Joel Brobecker - - * dbxout.c (dbxout_type): When printing type index of range type - whose bounds are printed in octal format, print type of parent type if - it exists so enumerated type descriptions are not transformed - into unsigned types. - -2003-04-04 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - compute_a_shift_cc. - * config/h8300/h8300.c (shift_one): Update the CC status. - (shift_two): Likewise. - (output_a_shift_cc): Set cc_inline and cc_special. - (compute_a_shift_cc): New. - * config/h8300/h8300.md (shift insns): Use compute_a_shift_cc. - -2003-04-04 Richard Henderson - - * cse.c (fold_rtx): Fix 03-30 change; do check insn non-null. - -2003-04-04 Loren James Rittle - - * fixinc/inclhack.def (bsd_stdio_attrs_conflict): New. - * fixinc/fixincl.x: Rebuilt. - * fixinc/tests/base/stdio.h: Regenerated. - -2003-04-04 Nathan Sidwell - - * gcov.c (accumulate_line_counts): Fix span tree merge bug. - -Fri Apr 4 15:58:52 2003 J"orn Rennecke - - * sh.h (ACTUAL_NORMAL_MODE): New macro, broken out of - (NORMAL_MODE). - * sh.c (fpscr_set_from_mem): Use ACTUAL_NORMAL_MODE. - -2003-04-04 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Add entries for Wolfgang - Bangerth, DJ Delorie, Christian Ehrhardt, Christopher Faylor, - Nathanael Nerode, Diego Novillo, Hartmut Penner, Volker Reichelt, - Danny Smith, and Ulrich Weigand. - Update Kriang Lerdsuwanakij and fix a typo in Janis Johnson's - entry. - -2003-04-04 Nick Clifton - - * config/sparc/sol2-bi.h: Revert previous delta. - * config/sparc/sol2-gas-bi.h (AS_SPARC64_FLAG): Prepend -TSO - -2003-04-04 Nick Clifton - - * config/v850/v850.c (expand_prologue): Only use register save - helper functions if long calls are not being used. - Add a clobber of r11 id using long calls. - (pattern_is_ok_for_prologue): Account for the extra clobber. - (construct_save_jarl): Likewise. - * config/v850/v850.md (prolog pattern): Do not use this pattern - for v850e's. - -2003-04-04 Andreas Schwab - - * stor-layout.c (layout_decl): Avoid syntax error in last change - when PCC_BITFIELD_TYPE_MATTERS is defined but not - EMPTY_FIELD_BOUNDARY. - -2003-04-03 Jason Merrill - - PR c/10175 - * jump.c (never_reached_warning): Revert patch of 2002-11-02. - Look backwards for a line note. - -2003-04-03 Neil Booth - - * fix-header.c (read_scan_file): Defer switch processing. - -2003-04-03 Matt Austern - - * cpppch.c (reset_ht): Remove. - (cpp_read_state): Remove loop to reset hashtable identifiers. - * ggc-common.c (gt_pch_save): Add call to gt_pch_fixup_stringpool - after pch file is written. - * ggc.h (gt_pch_fixup_stringpool): Declare. - * stringpool.c (ht_copy_and_clear): Define. Callback. Copy - hashnode's value to another hashtable, then clear the original. - (saved_ident_hash): Define. - (gt_pch_save_stringpool): Create saved_ident_hash, use it to - store definitions in ident_hash, and clear ident_hash. - (gt_pch_fixup_stringpool): Define. Restore definitions from - saved_ident_hash to ident_hash, then destroy saved_ident_hash. - -Thu Apr 3 22:27:40 CEST 2003 Jan Hubicka - - * cfgrtl.c (update_bb_for_insn): Do not set block for barriers. - -2003-04-03 Eric Botcazou - - PR optimization/10157 - * gcse.c (can_copy_p): Rename it to can_copy. - (can_copy_init_p): Remove. - (compute_can_copy): Use can_copy instead of can_copy_p. - (can_copy_p): New exported function. Call compute_can_copy. - (hash_scan_set): Use it. - (gcse_main): Don't call compute_can_copy. - (bypass_jumps): Don't call compute_can_copy. - * rtl.h (can_copy_p): Declare. - * loop.c (scan_loop): Don't move the source and add a reg-to-reg - copy if the mode doesn't support copy operations. - -2003-04-03 Jason Merrill - - * Makefile.in (unstrap): Also remove stage_last. - - * dwarf2out.c (lookup_filename): Don't check for "". - (dwarf2out_source_line): Don't do anything if line==0. - - * stor-layout.c (do_type_align): New fn, split out from... - (layout_decl): ...here. Do all alignment calculations for - FIELD_DECLs here. - (update_alignment_for_field): Not here. - (start_record_layout, debug_rli): Remove unpadded_align. - * tree.h (struct record_layout_info_s): Remove unpadded_align. - * c-decl.c (finish_enum): Don't set DECL_SIZE, DECL_ALIGN - or DECL_MODE on the CONST_DECLs. - (finish_struct): Don't mess with DECL_ALIGN. - -Thu Apr 3 18:57:19 CEST 2003 Jan Hubicka - - * i386.c (print_operand): Do not bypass output_addr_const at flag_pic. - -Thu Apr 3 17:08:09 2003 J"orn Rennecke - - * sh.c (sh_function_ok_for_sibcall): Return 0 if the current - function is an interrupt handler. - - * sh.c (sh_expand_epilogue): Avoid clash of temp register for - restoring target registers with EH_RETURN_STACKADJ_RTX; use - multiple registers in round-robin fashion. - -2003-04-03 Kaveh R. Ghazi - - * gengtype-lex.l (IWORD): Add CHAR_BITFIELD. - * system.h (CHAR_BITFIELD): New. - -2003-04-03 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Generalize to accept GT - and LE. - (another peephole2): Likewise. - -2003-04-03 Nick Clifton - - * config/sparc/sol2-bi.h (ASM_CPU64_DEFAULT_SPEC): Add -TSO. - (DEF_ARCH64_SPEC): Likewise. - -Thu Apr 3 09:53:40 CEST 2003 Jan Hubicka - - * i386.c (constant_address_p): Use legitimate_constant_p. - (legitimate_address_p): Do not use CONSTANT_ADDRESS_P. - -2003-04-02 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - gtle_operator. - * config/h8300/h8300.c (gtle_operator): New. - * config/h8300/h8300.h (PREDICATE_CODES): Add an entry for - gtle_operator. - * config/h8300/h8300.md (a peephole2): Generalize to accept GT - and LE. - -2003-04-02 Richard Henderson - - * libgcc-std.ver (_Unwind_GetCFA): New. - * unwind-dw2.c (_Unwind_GetCFA): New. - * unwind-libunwind.c (_Unwind_GetCFA): New. - * unwind-sjlj.c (_Unwind_GetCFA): New. - * unwind.h: Declare it. - -Thu Apr 3 00:31:21 CEST 2003 Jan Hubicka - - PR inline-asm/8088 - * i386.c (ix86_hard_regno_mode_ok): Return 0 for MMX/SSE registers - when MMX/SSE is not available. - -2003-04-02 Mike Stump - - * doc/install.texi (Specific): Update pointers to apple.com. - -Thu Apr 3 00:18:49 CEST 2003 Jan Hubicka - - * i386.c (override_options): Disable red zone by default on i386. - (compute_frame_layout, ix86_force_to_memory, ix86_free_from_memory): - Do not test TARGET_64BIT together with TARGET_RED_ZONE - -2003-04-02 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Tighten the condition. - -2003-04-02 Richard Henderson - - * longlong.h (umul_ppmm) [alpha]: Use __builtin_alpha_umulh. - -2003-04-02 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-04-02 Richard Henderson - - * except.c (sjlj_find_directly_reachable_regions): Recognize when - must-not-throw region has been deleted. - -2003-04-02 Richard Henderson - - * dwarf2out.c (output_call_frame_info): Ignore fde->nothrow as an - optimization when flag_exceptions not enabled. - -2003-04-02 Vladimir Makarov - - * config/rs6000/rs6000.c - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Redefine the - macros. - (rs6000_issue_rate): Add case for 8540. - (rs6000_use_sched_lookahead): New function. - - * config/rs6000/8540.md: Rename SIU units into SU ones and MIU - units into MU ones. - (ppc8540_branch, ppc8540_cr_logical): Add one cycle in the - reservation before retirement. - (ppc8540_multiply, ppc8540_load, ppc8540_store, - ppc8540_simple_float, ppc8540_vector_load, ppc8540_vector_store): - Remove additional cycle in the reservation before retirement. - (ppc8540_mfcr, ppc8540_mtcrf, ppc8540_mtjmpr): Add missed - reservation of ppc8540_issue. - -2003-04-02 Andreas Schwab - - * real.c (decode_ieee_single): Fix decoding of SNaN bit. - -2003-04-01 Richard Henderson - - * except.c (convert_from_eh_region_ranges_1): Smash REG_EH_REGION - notes for nothrow calls if flag_forced_unwind_exceptions. - (build_post_landing_pads): Mind flag_forced_unwind_exceptions. - (sjlj_find_directly_reachable_regions): Likewise. - (reachable_handlers): Likewise. - (can_throw_external): Likewise. - (collect_one_action_chain): Record cleanups after catch-all and - must-not-throw if flag_forced_unwind_exceptions. - * flags.h (flag_forced_unwind_exceptions): Declare. - * toplev.c (flag_forced_unwind_exceptions): New. - (lang_independent_options): Add it. - * doc/invoke.text: Add it. - -2003-04-01 David Mosberger - - * config/ia64/crti.asm: Clean up trailing whitespace. - Remove trailing hashes (#) from identifiers. - - * config/ia64/crtn.asm: Ditto. - - * config/ia64/crtend.asm: Remove trailing hashes (#) from - identifiers. - (__do_global_ctors_aux): Align to 32-byte boundary. Add unwind - directives. Drop explicit bundling---it just makes the code - harder to read. Don't save/restore gp needlessly. - - * config/ia64/crtbegin.asm: Remove trailing hashes (#) from - identifiers (they're only needed if the identifier would clash - with a register name otherwise). - (__do_global_dtors_aux): Align to 32-byte boundary. Add unwind - directives. Drop explicit bundling---it just makes the code - harder to read. - (__do_jv_register_classes): Ditto. - (.fini_array): Remove "progbits" (newer - assemblers don't like wrong section-types). - (.init_array): Ditto. - -2003-04-01 Roger Sayle - - PR fortran/9974 - * gcse.c (reg_killed_on_edge): New function to test whether the - given reg is overwritten by any instruction queued on an edge. - (bypass_block): Ignore substitutions killed on incoming edges. - Don't bypass outgoing edges that have queued instructions. - -2003-04-01 Alexandre Oliva - - * real.h (EXP_BITS): Make room for... - (struct real_value): ... added canonical bit. - (struct real_format): Added pnan. - (mips_single_format, mips_double_format, mips_extended_format, - mips_quad_format): New. - * real.c: Copy p to pnan in all formats. - (get_canonical_qnan, get_canonical_snan): Set canonical bit. - (real_nan): Use pnan to compute significand's shift. - (real_identical): Disregard significand in canonical - NaNs. - (real_hash): Likewise. Take signalling into account. - (encode_ieee_single, encode_ieee_double, encode_ieee_quad): - Disregard significand bits in canonical NaNs. Set all bits of - canonical NaN if !qnan_msb_set. - (encode_ibm_extended, decode_ibm_extended): Likewise. Use - qnan_msb_set to tell the base double format. - (ibm_extended_format): Use 53 as pnan. - (mips_single_format, mips_double_format, mips_extended_format, - mips_quad_format): Copied from the corresponding ieee/ibm - formats, with qnan_msb_set false. - * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Use mips_extended_format. - * config/mips/linux64.h (MIPS_TFMODE_FORMAT): Use mips_quad_format. - * config/mips/mips.c (override_options): Use mips_single_format - and mips_double_format. Default TFmode to mips_quad_format. - * config/mips/t-linux64 (tp-bit.c): Define QUIET_NAN_NEGATED. - * config/mips/t-irix6: Likewise. - * config/mips/t-mips (fp-bit.c, dp-bit.c): Likewise. - * config/fp-bit.c (pack_d, unpack_d): Obey it. - -2003-04-01 Geoffrey Keating - - * unwind-dw2-fde-darwin.c (DESTRUCTOR_MAY_BE_CALLED_LIVE): New. - (live_image_destructor): Reset image to initial state. - (examine_objects): Set DESTRUCTOR_MAY_BE_CALLED_LIVE. - -2003-04-01 Eric Botcazou - - * config/sparc/sparc.c (input_operand): Accept bare - CONSTANT_P_RTX operands. - -2003-04-01 Zdenek Dvorak - - * gcse.c (struct ls_expr): Added pattern_regs field. - (ldst_entry): Initialize it. - (extract_mentioned_regs, extract_mentioned_regs_helper): New. - (store_ops_ok): Use regs precomputed by them. - (find_loads, store_killed_in_insn, load_kills_store): Change return - type to bool. - (store_killed_before, store_killed_after): Take position of register - set in account. - (reg_set_info): Store position of the setter. - (gcse_main): Enable store motion. - (mems_conflict_for_gcse_p): Enable load motion of non-symbol mems. - (pre_insert_copy_insn, update_ld_motion_stores, insert_store): Prevent rtl - sharing. - (simple_mem): Enable store motion of non-symbol mems. - (regvec): Type changed. - (LAST_AVAIL_CHECK_FAILURE): New. - (compute_store_table_current_insn): New. - (build_store_vectors): Computation of availability and anticipatability - moved ... - (compute_store_table, find_moveable_store): ... here. - (delete_store): Remove senseless comment. - (store_motion): Reorganize. - -2003-04-01 Kevin Buettner - - * config/mips/mips.c (override_options): Provide mappings for - HI_REGNUM and LO_REGNUM. - * config/mips/mips.h (MD_DBX_FIRST): Define. - -2003-04-01 Franz Sirl - - * combine.c (merge_outer_ops): Fix typo. - - * varasm.c (make_decl_one_only): Revert 2003-03-09 patch. - -2003-04-01 David Edelsohn - - * config/rs6000/{40x.md,603.md,6xx.md,7450.md,7xx.md,mpc.md, - power4.md,rios1.md,rios2.md,rs64.md}: Change mult_compare to - imul_compare. Add lmul_compare. - * config/rs6000/power4.md: Bump some latencies. Model extra cycle - in second pair of dispatch slots. Model stores more accurately. - Tweak multiply model. Add bypasses for CR instructions dependent - on complicated compares. - * config/rs6000/rs6000.md (mulsi3): Name imul_compare patterns. - (muldi3): Add lmul_compare patterns. - * config/rs6000/rs6000.c (rs6000_variable_issue): Move FPLOAD_UX - and FPSTORE_UX to split instructions and add COMPARE, - DELAYED_COMPARE, IMUL_COMPARE, LMUL_COMPARE, IDIV, LDIV. - (rs6000_adjust_cost): Add IMUL_COMPARE and LMUL_COMPARE. - (rs6000_rtx_costs): Separate POWER4 multiply case. - -2003-04-01 Ulrich Weigand - - * config/s390/s390.c (s390_fixup_clobbered_return_reg): - Do nothing if __builtin_return_address was not used. - -Tue Apr 1 18:18:23 CEST 2003 Jan Hubicka - - * i386.md (test patterns): Allow memory operand in operand1. - -2003-04-01 Aldy Hernandez - - * testsuite/gcc.c-torture/execute/simd-3.c: New. - - * expr.c (expand_expr): Handle VECTOR_CST. - (const_vector_from_tree): New. - - * varasm.c (output_constant): Handle VECTOR_CST. - - * c-typeck.c (digest_init): Build a vector constant from a - VECTOR_TYPE. - - * config/rs6000/rs6000.c: Remove prototype for - easy_vector_constant. - (easy_vector_constant): Add mode parameter. Rewrite to handle - more easy constants. - (rs6000_emit_move): Pass mode to easy_vector_constant. - Call emit_easy_vector_insn for SPE V2SI vector constant moves. - (emit_easy_vector_insn): New. - (easy_vector_same): New. - (EASY_VECTOR_15): New macro. - (EASY_VECTOR_15_ADD_SELF): New macro. - (bdesc_2arg): Rename to xorv2si3. - (easy_vector_constant_add_self): New. - (input_operand): Allow vector constants. - - * config/rs6000/rs6000.h (PREDICATE_CODES): Add - easy_vector_constant, easy_vector_constant_add_self. - (EXTRA_CONSTRAINT): Add 'W'. - - * config/rs6000/rs6000-protos.h: Add prototype for - easy_vector_constant, emit_easy_vector_insn. - - * config/rs6000/altivec.md (xorv8hi3): New. - (xorv16qi3): New. - Remove all _const0 patterns. - (movv4si_internal): Rewrite to use code. Add vector constant to - vector alternative. Add splitter. - (movv8hi_internal): Same. - (movv16qi_internal): Same. - (movv4sf_internal): Same. - Change the unspecs for vspltis* to use constants. - - * config/rs6000/spe.md ("xorv4hi3"): New. - ("spe_evxor"): Rename to xorv2si3. - ("xorv1di3"): New. - Remove all _const0 patterns. - (movv2si_internal): Rewrite to use code. Add vector constant to - alternatives. Add splitter. - (movv4hi_internal): Add vector constant to alternatives. - (movv1di_internal): Same. - (movv2sf_internal): Same. - -2003-03-31 Mark Mitchell - - PR c/9936 - * c-decl.c (grokdeclarator): Clear SAVE_EXPR_CONTEXT for - variably-sized arrays in parameters. - (set_save_expr_context): New function. - (c_expand_body): Use it, via walk_tree. - -2003-03-31 Eric Christopher - - * combine.c (can_combine_p): Allow ZERO_EXTRACT and STRICT_LOW_PART. - (combinable_i3pat): Remove call to expand_field_assignment and - #if 0'd code. - -2003-03-31 Mark Mitchell - - PR c++/10278 - * c-common.c (finish_label_address_expr): Handle the - error_mark_node. - -2003-03-31 Richard Henderson - - * real.c (real_identical): Reorg so as to not compare - signalling for normals. - -2003-03-31 Stephane Carrez - - * config/m68hc11/m68hc11.c (hard_reg_operand): Check the mode. - -2003-03-31 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_gen_movhi): Don't rely on REG_WAS_0 - notes as they are boggus. - (m68hc11_gen_movqi): Likewise. - -2003-03-31 Stephane Carrez - - * config/m68hc11/m68hc11.c (expand_prologue): For an interrupt handler - save the soft registers after the frame pointer so that gdb can unwind - the frame more easily. - (expand_epilogue): Likewise in opposite order; allow to use X register - as scratch if the return value is by reference. - -2003-03-31 Jason Merrill - - PR java/10145 - * stor-layout.c (update_alignment_for_field): Respect - DECL_USER_ALIGN for zero-length bitfields, too. - * c-decl.c (finish_struct): Don't set DECL_ALIGN for normal - fields. - -2003-03-31 Matt Austern - - * cpppch.c (struct cpp_savedstate): Add defs and n_defs members. - (count_defs): Keep track of number of defs as well as total size. - (write_defs): Put every definition in cpp_savedstate's defs array. - (comp_hashnode): Define. Comparison function for qsort. - (cpp_write_pch_deps): Sort definitions before writing them. - (struct ht_node_list): Define. Like cpp_savedstate but simpler. - (collect_ht_nodes): Define. - (cpp_valid_state): When verifying that undefined identifiers in - the pch file are still undefined, read a sorted list of undefined - identifiers, collect all defined identifiers into a sorted list, - and walk through both lists to make sure there's no match. - -2003-03-31 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-03-31 Michael Matz - - * config/i386/i386.h (TARGET_FLT_EVAL_METHOD): Change 1 into 0. - -2003-03-31 Segher Boessenkool - - PR target/10177 - * config/rs6000/rs6000.h (HARD_REGNO_RENAME_OK): New. - * config/rs6000/rs6000.c (compute_vrsave_mask): Don't mark - all call-clobbered registers as used. - -2003-03-31 Michael Matz - - * cppexp.c (cpp_classify_number): Accept '.' after "0x". - * testsuite/gcc.dg/cpp/c99-hexfloat-3.c: New file. - -2003-03-31 Nathan Sidwell - - * gcov.c: Add -a & -u options. - (struct arc_info): Add local_span, is_call_non_return, - is_nonlocal_return, is_unconditional flags, remove is_call flag. - (struct block_info): Add flags, is_call_site, is_nonlocal_return - members. Make encodings a union with span member. - (struct function_info): Add blocks_executed, line, src, line_next - members. - (struct coverage_info): Make branches a union with blocks member. - (struct source_info): Add functions member. - (object_summary, program_count): New global variables. - (flag_all_blocks, flag_unconditional): New flags. - (find_source, output_branch_count): New functions. - (print_usage): Adjust. - (options): Adjust. - (process_args): Adjust. - (read_graph_file) : Adjust. - : Read flags. - : Adjust. - (read_count_file): Process SUMMARY tags. - (solve_flow_graph): Set is_unconditional and clear is_call_site - appropriately. - (add_branch_counts): Adjust. Don't count unconditional branches. - (add_line_counts): Deal with all-blocks mode, accumulate block - coverage. - (accumulate_line_counts): Adjust, generate local spanning tree for - all-blocks mode. - (output_lines): Adjust. - * profile.c (branch_prob): Alter GCOV_FUNCTION_TAG record. - * doc/gcov.texi: Document. - -2003-03-31 Kazu Hirata - - * config/h8300/h8300.md: Organize peephole2's that transform - (compare (reg:HI) (const_int)). - -2003-03-31 Roger Sayle - - * emit-rtl.c (dconstm2, dconsthalf): New real constants. - (init_emit_once): Initialize dconstm2 and dconsthalf here. - * real.h (dconstm2, dconsthalf): Add prototypes here. - * real.c (real_sqrt): Use dconsthalf rather than local copy. - * builtins.c (fold_builtin): When optimizing sqrt(exp(x)) as - exp(x/2.0) remember to fold the division if possible. - Fold sin(0.0) as 0.0, cos(0.0) as 1.0, pow(x,1.0) as x, - pow(x,-1.0) as 1.0/x, pow(x,2.0) as x*x, pow(x,-2.0) as - 1.0/(x*x) and pow(x,0.5) as sqrt(x). - -2003-03-31 Kazu Hirata - - * config/h8300/h8300.md (a new peephole2): New. - -2003-03-31 Richard Sandiford - - * gcse.c (simple_mem): Return false for floating-point accesses - if flag_float_store is true. - -2003-03-30 Roger Sayle - - * gcse.c (gcse_constant_p): New function to identify constants - suitable for constant propagation, including COMPARE with two - integer constant arguments. - (hash_scan_set): Use gcse_constant_p. - (find_avail_set): Likewise. - (cprop_insn): Likewise. - (do_local_cprop): Likewise. - (find_implicit_sets): Likewise. - (find_bypass_set): Likewise. - -2003-03-30 Matt Kraai - - * except.h: Remove definition of varray_type. - -2003-03-30 Richard Henderson - - PR opt/10011, opt/10252: - * toplev.c (rest_of_compilation): Run purge_builtin_constant_p - before post-gcse cse pass. - -2003-03-30 Roger Sayle - - * dojump.c (do_jump): Copy SUBREGs into a pseudo for comparison. - -2003-03-30 DJ Delorie - - * profile.c (instrument_edges): Make sure any newly created - jump insns have correct jump label info. - -2003-03-30 Richard Henderson - - * cfgbuild.c (make_edges): Use tablejump_p. - * cfgcleanup.c (label_is_jump_target_p): Likewise. - * cfglayout.c (cfg_layout_can_duplicate_bb_p): Likewise. - * cfgrtl.c (flow_delete_block_noexpunge): Likewise. - (try_redirect_by_replacing_jump): Likewise. - (redirect_edge_and_branch): Likewise. - * cse.c (fold_rtx): Likewise. - * jump.c (delete_related_insns): Likewise. - * rtlanal.c (get_jump_table_offset): Likewise. - * ssa-ccp.c (ssa_ccp_df_delete_unreachable_insns): Likewise. - -2003-03-30 Gabriel Dos Reis - - * Makefile.in (STRICT_WARN): Don't warn for ISO C constructs. - (STRICT2_WARN): Likewise. - -2003-03-30 Kaveh R. Ghazi - - PR other/6955 - * collect2.c (collect_wait): Use WCOREDUMP and fix output message. - * system.h (WCOREDUMP, WCOREFLG): Define if necessary. - -2003-03-30 Richard Henderson - - PR c/10083 - * config/alpha/alpha.md (umuldi3_highpart): Change to expander; - don't zero_extend const inputs. - -2003-03-30 Kazu Hirata - - * reload1.c (reload_cse_move2add): Fix a comment typo. - -2003-03-30 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Remove useless code. - -2003-03-29 Kazu Hirata - - * config/h8300/h8300.md (*iorsi3_and_ashift): New. - (*iorsi3_and_lshiftrt): Likewise. - (*iorsi3_zero_extract): Likewise. - -2003-03-29 Kazu Hirata - - * config/h8300/h8300.md (*insv_si_8_8): New. - (*insv_si_8_8_lshiftrt_8): Likewise. - (a peephole2): Likewise. - -2003-03-29 Gerald Pfeifer - - * doc/contrib.texi: Add Eric Botcazou and Roger Sayle. - Uniformly use bugfix instead of bug fix. - -2003-03-29 Gerald Pfeifer - - PR doc/895 - * ONEWS: Remove those items that already appear in the EGCS - release notes on our web pages. - -2003-03-29 Alan Modra - - * config/rs6000/rs6000.h (FUNCTION_VALUE_REGNO_P): Respect - TARGET_HARD_FLOAT. Reformat. - (FUNCTION_ARG_REGNO_P): Likewise, and remove unneeded casts. - -2003-03-28 Albert Chin-A-Young - - * gcc/fixinc/inclhack.def: Update solaris_mutex_init_1 to - work on Solaris 2.5.1. - -2003-03-28 Kazu Hirata - - * config/h8300/h8300.md (*addsi3_and_r_1): Put under plus:SI - section of h8300.md - (*addsi3_and_nor_r_1): Likewise. - -2003-03-29 Ulrich Weigand - - * config/s390/s390.c (s390_emit_prologoue): Make sure backchain is - set up before any trapping memory access if flag_non_call_exceptions. - -2003-03-29 Alan Modra - - * reload1.c (reload_as_needed): Allow a USE in asm reloads. - - * loop.c: (find_mem_in_note_1, find_mem_in_note): Comment. - -2003-03-28 Nathanael Nerode - - * configure.in: Clarify comments. - * configure: Regenerate. - -2003-03-28 Ulrich Weigand - - * config/s390/s390.md ("literal_pool_31"): Output pool anchor - label even if pool empty when generating PIC. - ("literal_pool_31", "literal_pool_64"): Coding style cleanup. - -2003-03-28 Kazu Hirata , - Dhananjay Deshpande - - PR target/10205 - * config/h8300/h8300.c (h8300_initial_elimination_offset): - Correct the offset computation when TARGET_NORMAL. - -2003-03-28 Eric Botcazou - - PR target/10067 - * config/sparc/sparc.md (jump pattern): Correct order - when issuing the annuling marker. - -2003-03-28 Eric Botcazou - - PR c/8281 - * config/sparc/sparc.md (movdi_insn_sp32_v9): Remove 'f-f' alternative. - (movdi reg/reg split): Match only on sparc32, and v9 when int regs. - -2003-03-28 Alan Modra - - * config/alpha/elf.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary - globalize_label. - * config/arm/unknown-elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * config/i960/i960.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * config/m32r/m32r.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * config/mips/elf.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * config/mips/linux.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * config/sparc/sparc.h (ASM_OUTPUT_ALIGNED_BSS): Likewise. - * config/v850/v850.c (v850_output_aligned_bss): Likewise. - -2003-03-28 Alan Modra - - * loop.c: (find_mem_in_note_1, find_mem_in_note): New functions. - (replace_loop_mems): Add "written" param. Remove invalid REG_EQUAL - notes after hoisting. - (load_mems): Adjust replace_loop_mems call. - -2003-03-28 Eric Botcazou - Richard Henderson - - PR target/10114 and PR target/10084 - * dwarf2out.c (mem_loc_descriptor): Handle LO_SUM. - -2003-03-27 Richard Henderson - - * config/alpha/alpha.md (adddi_er_high_l): Valid only after reload. - -2003-03-27 Roger Sayle - - * fold-const.c (fold_inf_compare): New function to simplify FP - comparisons against +Infinity or -Infinity. - (fold): Optimize floating point comparisons against Infs and NaNs. - -2003-03-27 Janis Johnson - - * libgcov.c: Provide only dummy functions if libc is not available. - -2003-03-27 Richard Henderson - - * real.h (struct real_value): Add signalling. - (EXP_BITS): Decrement. - * real.c (get_canonical_qnan): Don't set MSB-1. - (get_canonical_snan): Likewise. Set signalling. - (real_identical): Compare signalling. - (round_for_format): Remove force-one-bit on code. - (real_nan): Likewise. Set signalling. - (encode_ieee_single): Add force-one-bit code; honor signalling. - (encode_ieee_double, encode_ieee_extended, encode_ieee_quad): Likewise. - (decode_ieee_single): Set signalling. - (decode_ieee_double, decode_ieee_extended, decode_ieee_quad): Likewise. - -2003-03-27 Olivier Hainque - - PR ada/9953 - * ada/Makefile.in (gnatlib configuration for HPUX): Split - the general section for HPUX into specific sections for - HPUX 10 and HPUX 11. Fix the setting of TGT_LIB in the HPUX - 11 case. - -2003-03-27 Glen Nakamura - - PR opt/10087 - * loop.c (loop_givs_reduce): Skip bivs with duplicate locations - while incrementing giv. - (record_biv): Check for duplicate biv locations and - set (struct induction *) v->same if found. - -2003-03-27 David Mosberger - - * unwind-libunwind.c (uw_frame_state_for): Adjust for libunwind - v0.9 API change: replace read of UNW_REG_HANDLER with - unw_get_proc_info(). - (_Unwind_GetLanguageSpecificData): Replace read of UNW_REG_LSDA - with unw_get_proc_info(). - (_Unwind_GetRegionStart): Replace UNW_REG_PROC_START with - unw_get_proc_info(). - -2003-03-27 Vladimir Makarov - - * config/rs6000/8540.md: Use presence_set instead of absence_set. - -2003-03-26 Richard Henderson - - * c-decl.c (finish_function): Always defer if DECL_DECLARED_INLINE_P. - -2003-03-26 Roger Sayle - - PR bootstrap/10051, PR bootstrap/10169. - * mips-tfile.c (init_file): Don't provide a static initializer. - (initialize_init_file): Initialize the contents of init_file. - (add_file): Call initialize_init_file if not already initialized. - -2003-03-26 Ulrich Weigand - - * config/s390/s390.c (s390_optimize_prolog): Do not save/restore - registers used for global asm variables. - (s390_frame_info, s390_arg_frame_offset): Likewise. - (s390_emit_prologue, s390_emit_epilogue): Likewise. - -2003-03-26 Vladimir Makarov - - * config/rs6000/8540.md: New file. - - * config/rs6000/{40x.md, 603.md, 6xx.md, 7450.md, 7xx.md, mpc.md, - power4.md, rios1.md, rios2.md, rs64.md}: Add mult_compare to - reservations for imul. - - * config/rs6000/rs6000.md: Include 8540.md. Change - delayed_compare onto mult_compare for insns generating - multiplication. - (mult_compare, fpsimple, brinc, vecdiv, veccmpsimple, vecfdiv): - New type attribute values. - - * config/rs6000/spe.md (*negsf2_gp, *abssf2_gpr): Use type - fpsimple instead of fp. - (*divsf3_gpr): Use type vecfdiv instead of fp. - (spe_evfsabs, spe_evfsnabs, spe_evfsneg): Use type vecsimple - instead of vecfloat. - (spe_evfsdive): Use type vecfdiv instead of vecfloat. - (spe_brinc): Use type brinc instead of veccomplex. - (spe_evaddw, spe_evaddiw): Use type vecsimple instead of - veccomplex. - (spe_evdivws, spe_evdivwu): Use type vecdiv instead of veccomplex. - (*movv2si_internal, *movv1di_internal, *movv4hi_internal, - *movv2sf_internal): Define type attribute values for all - alternatives. - (cmpsfeq_gpr, cmpsfgt_gpr, cmpsflt_gpr): Use type veccmp instead - of fpcompare. - (tstsfeq_gpr, tstsfgt_gpr, tstsflt_gpr): Use type veccmpsimple - instead of fpcompare. - -2003-03-26 David Edelsohn - - * config/rs6000/power4.md: Allow delay between dispatch and - function units for simple instructions. Correct store units. - Allow branch to occupy as many dispatch slots as necessary. - -2003-03-26 Jakub Jelinek - - * config/ia64/ia64.c (ia64_expand_op_and_fetch): Fix comment. - (ia64_expand_compare_and_swap): Use always DImode ar.ccv, - zero extend old to it. - * config/ia64/ia64.md (cmpxchg_acq_si): Remove mode from ccv - operand. - -2003-03-26 Eric Botcazou - - PR target/7784 - * reload.c (find_reloads_address): Handle - (PLUS (PLUS (REG) (REG)) (CONST_INT)) form for - all base registers. - -2003-03-25 Marcelo Abreu - - PR other/10203 - * version.c: Reference the GCC web site in the URL. - -2003-03-26 Alan Modra - - * c-incpath.c (add_standard_paths): Add both "translated" and - non-translated header paths. - -2003-03-25 Loren James Rittle - - * doc/install.texi (*-*-freebsd*): Update with known status. - -2003-03-21 Jason Merrill - - PR optimization/10171 - * unroll.c (unroll_loop): Don't delete the jump at the end unless - we also delete a jump at the beginning. - -2003-03-25 Stephane Carrez - - * doc/contrib.texi (Contributors): Mention self as 68HC11/68HC12 - contributor. - -Tue Mar 25 20:35:51 CET 2003 Jan Hubicka - - * i386.c (ix86_rtx_costs): For -fpic and x86-64 local symbolic - constants are not expensive. - -Mon Mar 24 20:03:03 CET 2003 Jan Hubicka - - PR opt/10056 - * cfglayout.c (fixup_reorder_chain): Fix dealing with the conditional - jump jumping to the next instruction. - * cfgrtl.c (force_nonfallthru_and_redirect): Likewise. - -2003-03-25 Gerald Pfeifer - - * doc/passes.texi (Passes): Properly document that we do not - perform jump2 any longer; remove command-line option -dJ. - -2003-03-25 Eric Botcazou - - PR optimization/8746 - * config/i386/i386.md (and promoting splitters): Disable HImode to - SImode promoting when the sign bit matters and is not preserved, or - when TARGET_FAST_PREFIX is true. Disable promoting when optimizing - for size. - -2003-03-24 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Extend to support loads - in QImode and HImode. - -2003-03-24 Stephane Carrez - - * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Add _call_far and - _return_far - (MULTILIB_OPTIONS): Don't multilib on -mlong-calls. - (MULTILIB_EXCEPTIONS): Likewise. - * config/m68hc11/m68hc11.md ("call"): Support far calls for 68HC11 - by calling some board support routine. - ("call_value"): Likewise. - ("*return_void"): Likewise for return. - ("*return_16bit"): Likewise. - ("*return_32bit"): Likewise. - * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Generate .far - for 68HC11 too. - (DWARF2_ADDR_SIZE): Use 4 so that addresses can - * config/m68hc11/m68hc11.c (m68hc11_override_options): Accept - -mlong-calls for 68HC11. - * config/m68hc11/larith.asm (declare_near): New macro. - (__premain, ___negsi2, ___one_cmplsi2, ___ashlsi3): Use it. - (___ashrsi3, ___lshrsi3, ___lshrhi3, ___lshlhi3): Likewise. - (___rotrhi3, ___rotlhi3, ___ashrhi3, ___ashrqi3): Likewise. - (___lshlqi3, __divmodhi4, ___mulqi3, ___mulhi3): Likewise. - (__mulhi32): Likewise. - (ret): Update macro for 68HC11. - (__far_trampoline): Implement for 68HC11. - (__call_a16, __call_a32, __return_void, __return_16): New support - routines for 68HC11 memory bank switching calling support. - (__return_32): Likewise. - -2003-03-24 Neil Booth - - * toplev.c (independent_decode_option): Don't skip a 'Y' prefix. - -2003-03-24 Janis Johnson - - * doc/install.texi (Testing): Mention test result links from build - status pages. - -2003-03-24 Mark Mitchell - - * function.c (put_var_into_stack): Change bool parameter to int. - (gen_mem_addressof): Likewise. - * rtl.h (gen_mem_addressof): Likewise. - * tree.h (put_var_into_stack): Likewise. - * config/alpha/alpha.c (alpha_gp_save_rtx): Adjust call to - gen_mem_addressof or put_var_into_stack. - * config/c4x/c4x.c (c4x_expand_builtin): Likewise. - * config/ia64/ia64.c (spill_tfmode_operand): Likewise. - -2003-03-24 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-03-24 Jakub Jelinek - - * dojump.c (do_jump): Handle UNSAVE_EXPR specially. - -2003-03-24 Gerald Pfeifer - - * doc/contrib.texi (Contributors): Update Janis Johnson. - -2003-03-23 Eric Botcazou - - PR target/10072 - * combine.c (simplify_if_then_else): Check that the mode - has MODE_INT class before applying the (OP Z (mult COND C2)) - transformation. - -2003-03-23 Eric Botcazou - - PR optimization/9414 - * config/sparc/sparc.md (widening peepholes): Use - widen_memory_access instead of change_address. - -2003-03-23 Mark Mitchell - - PR c++/7086 - * c-typeck.c (c_mark_addressable): Adjust calls to - put_var_into_stack. - * expr.c (expand_expr): Likewise. - * function.c (put_var_into_stack): Add rescan parameter. Do not - call fixup_var_refs when rescan is false. - (gen_mem_addressof): Likewise. - (assign_parms): Adjust calls to put_var_into_stack. - (setjmp_protect): Likewise. - (setjmp_protect_args): Likewise. - * rtl.h (gen_mem_addressof): Change prototype. - * stmt.c (expand_decl): Adjust calls to put_var_into_stack. - * tree.h (put_var_into_stack): Change prototype. - -2003-03-23 Arpad Beszedes - - PR middle-end/9967 - * builtins.c (expand_builtin_fputs): When optimizing for size, - don't transform fputs into fwrite. - -2003-03-23 Glen Nakamura - - PR c/8224 - * fold-const.c (extract_muldiv_1): Don't pass through type conversions - when signedness changes for division or modulus. - -2003-03-24 Alan Modra - - * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_BSS): Remove unnecessary - globalize_label. - -2003-03-23 Roger Sayle - - PR c/10178 - * stmt.c (expand_end_case_type): Check for overflow in range when - determining whether to use a bit-test implementation. - -2003-03-23 Richard Henderson - - * cfgcleanup.c (try_optimize_cfg): Allow merging of tablejumps - before flow2. - * cfgrtl.c (try_redirect_by_replacing_jump): Similarly. - -2003-03-23 Richard Henderson - - PR opt/10116 - * ifcvt.c (find_if_block): Disallow tablejump insns outgoing - from then_bb or else_bb after flow2. - -2003-03-23 Zack Weinberg - - * configure.in: Check whether it is necessary to link against - libm to use ldexp. - * configure: Regenerate. - * Makefile.in: Add LDEXP_LIB substitution variable. - -2003-03-23 Kazu Hirata - - * config/h8300/h8300.md: Fix comment typos. - -2003-03-22 John David Anglin - - * pa.c (output_cbranch): Fix typo in comment. - -2003-03-22 Richard Henderson - - * cfgcleanup.c (insns_match_p): Do not do EQUIV substitution - after reload. - -2003-03-22 DJ Delorie , - Bruce Korb - - * fixinc/inclhack.def (solaris_mutex_init_1): New; Fix - buggy Solaris 2.6 mutex/cond initializers. - (solaris_mutex_init): Rename to solaris_mutex_init_2. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/pthread.h: Update. - * fixinc/fixincl.c(initialize): be explicit about the default case - and indicate verbose level when being very, very verbose. - * fixinc/check.tpl(VERBOSE): provide a means for passing the value in - -2003-03-22 Andreas Jaeger - - * config/i386/i386.c (ix86_init_machine_status): Return value. - -2003-03-22 John David Anglin - - * pa.c (output_cbranch, output_bb, output_bvb): Output nop for - conditional branch to the following instruction. Use next_real_insn - instead of next_active_insn. - (output_dbra, output_movb, jump_in_call_delay): Use next_real_insn - instead of next_active_insn. - -2003-03-22 Ulrich Weigand - - * config/s390/s390.md ("movti", "*movdi_31", "*movdf_31"): Use 'o' - instead of 'm' constraint in forced-split alternatives. - ("*adddi3_31", "*subdi3_31"): Likewise. Also, pass 0 instead of 1 as - VALIDATE_ADDRESS parameter to operand_subword. - -2003-03-22 Kazu Hirata - - * config/h8300/h8300.c (notice_update_cc): Correctly handle - the case where the set destination is STRICT_LOW_PART. - -2003-03-22 Svein E. Seldal - - * config/c4x/t-c4x (INSTALL_LIBGCC): Make gcc recognize a c33 as a - c30 instead of a c40 processor. - -2003-03-22 Alan Modra - - * combine.c (simplify_comparison ): Use gen_int_mode. Tidy. - -2003-03-21 Zack Weinberg - - * c-common.c: Include intl.h. - (shadow_warning): Rewrite to allow better diagnostic translations. - * c-common.h: Update prototype of shadow_warning. Declare sw_kind enum. - * c-decl.c (warn_if_shadowing): Update calls to shadow_warning; - use it throughout. - * Makefile.in (c-common.o): Add intl.h. - -2003-03-21 Nathanael Nerode - - * config.gcc: Remove 'float_format'. - - * fixproto: Define NULL and size_t in generated stdlib.h and - unistd.h. Kill unused required_stdlib_h, required_unistd_h. - Rearrange file generation loop for readability. Generate time.h, - string.h if missing. - * tsystem.h: Include , unconditionally. - * config.gcc: Blow away POSIX defines. - -2003-03-22 Stephane Carrez - - * config/m68hc11/m68hc11.md ("call_value"): Fix trap check. - -2003-03-22 Stephane Carrez - - * config/m68hc11/m68hc11.h (ASM_DECLARE_FUNCTION_NAME): Fix typo in - writing .interrupt command. - * config/m68hc11/m68hc11.md ("call"): Look at the symbol to see - if it's a far or near function. - ("call_value"): Likewise. - * config/m68hc11/m68hc11.c (m68hc11_attribute_table): Add far and - near attributes. - (m68hc11_handle_fntype_attribute): Accept attributes on methods. - (m68hc11_override_options): Ignore -mlong-calls for 68HC11. - (m68hc11_initial_elimination_offset): Set current_function_far - according to attributes. - (expand_prologue): Likewise. - (trap_handler_symbol): New global to keep track of trap handlers. - (m68hc11_encode_section_info): Mark symbol as far if needed; set - trap symbol. - (m68hc11_is_far_symbol): New function. - (m68hc11_is_trap_symbol): New function. - * config/m68hc11/m68hc11-protos.h (m68hc11_is_far_symbol): Declare. - (m68hc11_is_trap_symbol): Declare. - -2003-03-21 Jan Hubicka - - * i386.c (ix86_compute_frame_layout): Recompute fast prologues - only when amount of saved regs changed. - (ix86_init_machine_status): Initialize use_fast_prologue_epilgoue_nregs. - * i386.h (machine_function): New fields use_fast_prologue_epilgoue_nregs. - -2003-03-21 Jan Hubicka - - PR inline-asm/7916 - * function.c (instantiate_virtual_regs_lossage): New function. - (instantiate_virtual_regs_1): Use it. - (instantiate_virtual_regs): Do not continue in substition when insn has - been deleted. - -2003-03-21 Kazu Hirata - - * combine.c (make_field_assignment): Fix a warning. - -2003-03-21 Kazu Hirata - - * config/h8300/h8300.md (*insv_si_1_n_lshiftrt_16): New. - -2003-03-21 Dale Johannesen - - * config/rs6000/rs6000.h (REG_ALLOC_ORDER): Increase - priority for R2 on Darwin. - (HARD_REGNO_MODE_OK): Don't accept R31 for DFmode. - -2003-03-21 Kazu Hirata - - * combine.c (make_field_assignment): Remove unnecessary AND - when storing into zero_extract. - -2003-03-21 Zack Weinberg - - * aclocal.m4 (gcc_AC_EXAMINE_OBJECT, gcc_AC_C_FLOAT_FORMAT): Delete. - * configure.in: Don't call gcc_AC_C_FLOAT_FORMAT. - * defaults.h: Remove reference to HOST_FLOAT_WORDS_BIG_ENDIAN - in comment. - -2003-03-21 DJ Delorie - - * optabs.c (init_integral_libfuncs): Make sure we init at least up - to "long long" size words. - -2003-03-21 Ulrich Weigand - - * config/s390/s390.h: Do not include fixdfdi.h on s390x. - (TARGET_64BIT): Define as compile-time constant when IN_LIBGCC2. - (MIN_UNITS_PER_WORD): Do not define when IN_LIBGCC2. - -2003-03-21 Volker Reichelt - - PR doc-bug/9813 - * doc/extend.texi: Move misplaced paragraph about underscores in - variables in macros. - -2003-03-21 Eric Botcazou - Richard Henderson - - PR optimization/8366 - * config/sparc/sparc.h: (SYMBOLIC_CONST): New macro. - (GO_IF_LEGITIMATE_ADDRESS): Use it. Reject the form - PIC+SYMBOLIC_CONST in other modes than Pmode. - (GO_IF_MODE_DEPENDENT_ADDRESS): Use it. Mark - the form PIC+SYMBOLIC_CONST as mode dependent. - -2003-03-21 DJ Delorie - - * config/stormy16/stormy16.c (xstormy16_expand_arith): Make - sure we always emit at least one insn. - -2003-03-21 Christopher Faylor - - * config.gcc (i[34567]86-*-cygwin*): Use new common makefile - stub t-cygming. Use common target header cygming.h. Add extra - c_target_obj and cxx_target_obj file. Default cygwin to posix - threading. Enforce i386 as float format. - (i[34567]86-*-mingw*): Use new common makefile stub t-cygming. - Remove cygwin.h as target header. Use common target header - cygming.h Enforce i386 as float format. Correct typo. - * config/i386/cygming.h: New file, containing definitions - common to mingw32 and cygwin. - * config/i386/cygwin.h: Remove definitions common to cygwin and - mingw. Simplify special spec logic. Define "wrappers" around - certain include path defines to accommodate -mno-cygwin. - Remove some #if 0'ed code. - (STANDARD_INCLUDE_DIR) Always define when not cross-compiling. - (LINK_SPEC): Don't use cyg search prefix when -mno-cygwin. - (GCC_DRIVER_HOST_INITIALIZATION): Define as call to mingw_scan. - * config/i386/mingw32.h: Remove definitions common to cygwin and - mingw. - (EXTRA_OS_CPP_BUILTINS): Adjust. - (TARGET_VERSION): Define. - * config/i386/crtdll.h (EXTRA_OS_CPP_BUILTINS): Override - mingw32.h definitions. - (LIBGCC_SPEC): Add libmingwex.a as in mingw32.h. - * config/i386/t-cygwin (EXTRA_GCC_OBJS): Define as cygwin1.o. - Add compilation rules for cygwin1.o cygwin2.o. - * config/i386/cygwin1.c: New file. - * config/i386/cygwin2.c: New file. - * config/i386/t-cygming: New makefile stub. - -2003-03-20 Richard Henderson - - * fold-const.c (extract_muldiv_1): Revert changing order of - operands in case MULT_EXPR of 2003-02-16 patch. - -2003-03-20 Daniel Berlin - Merge changes from new-regalloc-branch - - From Michael Matz - * df.c (df_ref_record_1): Move init of loc to safe point. - Only recurse on interesting things in parallels. - Handle CLASS_CANNOT_CHANGE_MODE smarter. - (df_uses_record): Ditto. - - * df.h (DF_REF_MEM_OK): New enum member, used to mark ref's which - it's already okay to use memory operands in (IE doesn't require - adding another insn or anything). - -2003-03-20 Richard Henderson - - PR middle-end/6348 - * explow.c (allocate_dynamic_stack_space): Handle STACK_SIZE_MODE - different from word_mode. - -2003-03-20 Kazu Hirata - - * config/h8300/h8300.md (*insv_si_1_n_lshiftrt): Restrict the - source operand to those that can be extracted with bld. - -2003-03-20 Richard Earnshaw - - PR 10066 - * arm.md (UNSPEC_PIC_BASE): New constant. - (pic_add_dot_plus_four): Wrap with unspec. - (pic_add_dot_plus_eight): Likewise. - -2003-03-20 Kazu Hirata - - * config/h8300/h8300.md (*insv_si_1_n): New. - (*insv_si_1_n_lshiftrt): Likewise. - -2003-03-20 Roger Sayle - - * fold-const.c (fold_mathfn_compare): New function to simplify - comparisons against built-in math functions. Fold comparisons - of sqrt against constants. - (fold): Call fold_mathfn_compare when appropriate. - -2003-03-20 Richard Earnshaw - - * ifcvt.c (find_if_case_1): If we add a new bb, update the dominance - information. - -2003-03-20 Per Bothner - - Various cleanups to help compile server. - - * cppinit.c (cpp_create_reader): Take extra hash_table* argument, - and pass that to _cpp_init_hashtable. - (cpp_read_main_file): Drop hash_table* argument; don't call - _cpp_init_hashtable. - * cpplib.h: Update declarations to match. - * c-opts.c (c_common_init_options): Pass ident_hash to - cpp_create_reader. - (c_common_post_options): Don't pass ident_hash to cpp_read_main_file. - * fix-header.c (read_scan_file): Likewise pass NULL table to - cpp_create_reader rather than cpp_read_main_file. - - * cppfiles.c (cpp_rename_file): Generalized and renamed - to cpp_change_file. - * cpplib.h: Update declaration to match. - * c-opts.c (push_command_line_line, finish_options): Change - cpp_rename_file calls to cpp_change_file. - - * line-map.c (add_line_map): Allow leaving the outermost file. - Allowing entering an outermost-file after the initial time. - - * toplev.c (pop_srcloc): Allow popping from initial file. - -2003-03-20 Kazu Hirata - - * fold-const.c (fold): Fold A - (A & B) into ~B & A. - -2003-03-20 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-03-20 Kazu Hirata - - * config/h8300/h8300.md (*addsi3_and_r_1): New. - (*addsi3_and_not_r_1): Likewise. - -2003-03-19 Loren James Rittle - - * Makefile.in (STRICT2_WARN): Add @WERROR@. - (GCC_WARN_CFLAGS): Remove $(WERROR). - (fixinc.sh-warn): New. - * ada/Make-lang.in (ada-warn): Add $(WERROR). - * cp/Make-lang.in (cp-warn): Add $(WERROR). - * f/Make-lang.in (f-warn): Add $(WERROR). - * java/Make-lang.in (java-warn): Add $(WERROR). - * treelang/Make-lang.in (treelang-warn): Add $(WERROR). - -2003-03-19 Nathanael Nerode - - * c-common.h (c_dump_tree), c-dump.c (c_dump_tree), - langhooks-def.h (lhd_tree_dump_dump_tree), - langhooks.c (lhd_tree_dump_dump_tree), langhooks.h (*dump_tree): - Change return type from 'int' to 'bool'. Replace 0 and 1 with - true and false in return statements. - -2003-03-19 Kevin Buettner - - * dwarf2out.c (DWARF_INITIAL_LENGTH_SIZE): Define. - (DWARF_COMPILE_UNIT_HEADER_SIZE): Take into account - DWARF_INITIAL_LENGTH_SIZE. - (output_compilation_unit_header, output_pubnames, output_aranges) - (output_line_info): Output 0xffffffff escape value for 64-bit - DWARF extension. - * config/mips/iris6.h (DWARF_INITIAL_LENGTH_SIZE): Define. - -2003-03-19 Ulrich Weigand - - * config/s390/s390.c (s390_preferred_reload_class): Do not - force constants to the pool unless necessary. - (s390_decompose_address): Prefer to use pointer as base, - not index register. - * config/s390/s390.md ("*tsthiCCT_only"): Remove '?' from - Q alternative. - ("*movdi_64", "*movsi", "movhi", "movqi_64", "movqi", - "*movdf_64", "*movsf"): Add '?' to Q->Q alternatives. - ("*extractqi", "*extracthi", "*zero_extendhisi2_31", - "*zero_extendqisi2_31", "*zero_extendqihi2_31", - "*adddi3_31", "*subdi3_31"): Do not set "type" attribute. - -2003-03-19 Jan Hubicka - - * i386.h (machine_function): New fields use_fast_prologue_epilogue. - * i386.c (use_fast_prologue_epilogue): Remove. - (ix86_frame): New field save_regs-using_mov; - (ix86_compute_frame_layout): Decide on fast prologues; - allocate saved registers in red zone. - (ix86_expand_epilogue, ix86_expand_prolgoues): Obey new parameters. - -2003-03-19 Nick Clifton - - * config/mcore/mcore.h (CPP_SPEC): Remove trailing semi-colon. - -2003-03-18 John David Anglin - - PR 10062 - * config/pa/pa-hpux.h (TARGET_HPUX_UNWIND_LIBRARY): Redefine. - * pa-protos.h (output_lbranch): New prototype. - * pa.c (compute_frame_size): Change size of the frame marker on the - 64-bit ports to 48 bytes. - (pa_output_function_prologue): Document why SAVE_SP is set. - (hppa_expand_prologue): Save previous stack pointer into frame marker - on targets which use the hpux unwind library. - (output_cbranch): Use output_lbranch. - (output_lbranch): New function to output long unconditional branches. - * pa.h (TARGET_HPUX_UNWIND_LIBRARY): Define. - (STACK_POINTER_OFFSET): Update offset for 48-byte frame marker on - 64-bit ports. - * pa.md (jump): Use output_lbranch. - (allocate_stack): New expander for dynamic stack allocation. - -2003-03-19 Alan Modra - - * config/rs6000/rs6000.c (rs6000_stack_info): Only require a frame - when debugging on XCOFF targets. Delete "abi" temp. - - PR target/10073 - * combine.c (force_to_mode ): Use gen_int_mode. - -2003-03-18 Jakub Jelinek - - * config/s390/s390.c (s390_output_dwarf_dtprel): New. - * config/s390/s390-protos.h (s390_output_dwarf_dtprel): New proto. - * config/s390/s390.h (ASM_OUTPUT_DWARF_DTPREL): Define. - - * config/ia64/ia64.c (ia64_output_dwarf_dtprel): New. - * config/ia64/ia64-protos.h (ia64_output_dwarf_dtprel): New proto. - * config/ia64/ia64.h (ASM_OUTPUT_DWARF_DTPREL): Define. - -2003-03-18 Geoffrey Keating - - * config/rs6000/rs6000.c (rs6000_emit_prologue): Don't clone - the result of machopic_function_base_name. - * config/darwin.c (machopic_function_base_name): Use a gc-allocated - string rather than a static array. - - * Makefile.in (emit-rtl.o): Add gt-emit-rtl.h to dependencies. - - * gengtype.c: Include rtl.h. - (enum rtx_code): Don't define. - (rtx_format): Make declaration match rtl.h. - (rtx_next_new): Rename from rtx_next to avoid conflict. Change all - users. - (adjust_field_rtx_def): Describe strings in NOTE_LINE_NUMBER notes. - * Makefile.in (gengtype.o): Update dependencies. - -2003-03-18 Andreas Schwab - - * config/m68k/m68k.md (iordi3): Fix setting low half to -1. From - martin@blom.org. - -2003-03-18 Geoffrey Keating - - * function.c (next_block_index): Mark with GTY. - - * config/rs6000/rs6000.md (macho_correct_pic): Correct pattern. - -2003-03-18 Richard Henderson - - * config/ia64/ia64.md (UNSPECV_SETJMP_RECEIVER): New. - (builtin_setjmp_receiver): Delay call to ia64_reload_gp - until after reload. - -2003-03-18 Richard Henderson - - * builtins.c (expand_builtin_unop): New target_mode operand; - use it to convert the result to the correct mode. - (expand_builtin): Update all callers. - -2003-03-18 Ulrich Weigand - - * config/s390/s390.md ("movti", "movhi", "movqi"): Add "type" attribute. - -2003-03-18 Jan Hubicka - - * i386.md: Fix previous commit that mistakely applied the patch - twice. - - * alias.c (rtx_equal_for_memref_p): Assume that X and Y has been - canonicalized. - (memrefs_conflict_p): Likewise. - (addr_side_effect_eval): Canonicalize the constructed address. - -2003-03-18 Jan Hubicka - - * i386.md (cvtts?2si peep2): New. - -2003-03-18 Kazu Hirata - - * config/h8300/h8300.md (*iorsi3_two_qi_zext): New. - -2003-03-18 Andreas Schwab - - * dwarf2out.c (output_file_names): Cast size_t to unsigned long - for format. - -2003-03-17 Jason Merrill - - PR c++/10091 - * expr.c (expand_expr) [ADDR_EXPR]: Disallow taking the address of - an unaligned member of TREE_ADDRESSABLE type. - -2003-03-18 Alan Modra - - * config/rs6000/linux64.h (MASK_PROFILE_KERNEL): Define. - (TARGET_PROFILE_KERNEL): Define. - (SUBTARGET_SWITCHES): Handle -mprofile-kernel. - (PROFILE_BEFORE_PROLOGUE): Don't define. - (PROFILE_KERNEL): Remove hacks. - * config/rs6000/rs6000.c (TARGET_PROFILE_KERNEL): Define default. - (rs6000_stack_info): No need to save lr if just for profiling when - TARGET_PROFILE_KERNEL. - (output_profile_hook): Output nothing when TARGET_PROFILE_KERNEL. - (output_function_profiler): Localize label generation. Emit code - for kernel profiling. - -2003-03-17 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - byte_accesses_mergeable_p. - * config/h8300/h8300.c (byte_accesses_mergeable_p): New. - * config/h8300/h8300.md (*iorhi3_two_qi_mem): Likewise. - (a splitter): Likewise. - (*iorsi3_ashift_16_ashift_24): Likewise. - (*iorsi3_ashift_16_ashift_24_mem): Likewise. - -2003-03-17 Kaveh R. Ghazi - - * dwarf2asm.h: Delete obsolete comment. - (dw2_asm_output_data, dw2_asm_output_delta, dw2_asm_output_offset, - dw2_asm_output_pcrel, dw2_asm_output_addr, - dw2_asm_output_addr_rtx, dw2_asm_output_encoded_addr_rtx, - dw2_asm_output_nstring, dw2_asm_output_data_uleb128, - dw2_asm_output_data_sleb128, dw2_asm_output_delta_uleb128, - dw2_asm_output_delta_sleb128): Add ATTRIBUTE_NULL_PRINTF. - -2003-03-17 Zack Weinberg - - * c-tree.h (struct lang_identifier): Remove error_locus field. - (IDENTIFIER_ERROR_LOCUS): Kill. - (record_function_scope_shadow): New prototype. - * c-typeck.c (build_external_ref): Don't complain if - decl is error_mark_node. When not at file scope, bind the - decl's local value to error_mark_node to suppress further - warnings, instead of setting IDENTIFIER_ERROR_LOCUS. - - * c-decl.c (get_function_binding_level): New static function. - (record_function_scope_shadow): New exported function. - (c_make_fname_decl): Use get_function_binding_level. - -2003-03-17 Steve Ellcey - - * stmt.c (tail_recursion_args): Call promote_mode to set - unsignedp flag correctly before calling convert_move. - -2003-03-17 Zdenek Dvorak - - * loop-unroll.c (decide_peel_completely, - decide_unroll_constant_iterations, decide_unroll_stupid, - decide_unroll_runtime_iterations, decide_peel_simple): Set - loop->has_desc. - -2003-03-17 Jan Hubicka - - * ggc-common.c (ggc_mark_roots): Use htab_traverse_noresize. - -2003-03-17 Olivier Hainque - - * function.c (assign_parms): For a struct value address passed as - first argument, delay the function's result RTL setup code until - after the emission of parameter conversions. - -2003-03-17 Dave Love - Rainer Orth - - * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Define __digital__, - __arch64__ to match Compaq cc. - -2003-03-17 Neil Booth - - * c-opts.c: Default TARGET_EBCDIC to 0 if not defined. - (c_common_init): Set EBCDIC in cpp options. - * cpplex.c (maybe_read_ucs, cpp_parse_escape): Use EBCDIC option, - not conditional compilation. - * cpplib.h (struct cpp_options): New entry EBCDIC. - -2003-03-17 Neil Booth - - * fix-header.c (read_scan_file): Need to malloc arguments to add_path. - -2003-03-17 Michael Hayes - - * function.c (thread_prologue_and_epilogue_insns): Set delete_unused - argument to 0 for redirect_jump. - -2003-03-16 Mark Mitchell - - PR c++/8805 - * except.c (eh_region_u_cleanup): Add prev_try. - (expand_eh_region_end_cleanup): Set it. - (reachable_handlers): Use it to skip over cleanup blocks. - -2003-03-17 Andreas Jaeger - - * Makefile.in (TAGS): Remove obsolete handling of =*.[chy]. - -2003-03-17 Alan Modra - - * config/rs6000/linux64.h (TARGET_64BIT): Redefine. - (TARGET_RELOCATABLE, TARGET_EABI, TARGET_PROTOTYPE): Likewise. - (SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Likewise. - (SUBTARGET_OVERRIDE_OPTIONS, CPP_SYSV_SPEC): Likewise. - -2003-03-16 Richard Henderson - - * simplify-rtx (simplify_binary_operation): Don't abort for - SS_PLUS, US_PLUS, SS_MINUS, US_MINUS. - -2003-03-16 Richard Henderson - - * config/i386/i386.md (movstrictqi, movstrictqi_1): Check - optimize_size as well. - -2003-03-16 Stephane Carrez - - * config/m68hc11/m68hc11.c (print_operand): Handle 'b' modifier - for D register to specify the low part of it, aka B. - (m68hc11_gen_movhi): Use REG_WAS_0 note and increment or decrement - the register if we are loading 1 or -1 to it; avoid using temp - register when moving X/Y to Y/X. - (m68hc11_gen_movqi): Likewise. - (m68hc11_check_z_replacement): Fix last insn setting for compare case. - -2003-03-14 Mark Mitchell - - PR optimization/9016 - * config/i386/i386.c (ix86_expand_move): Force more CONST_DOUBLEs - into the constant pool. - -2003-03-16 Falk Hueffner - - PR target/9164 - * tree.c (get_narrower): For extensions with unchanged bit number, - return the unsignedness of the outer mode. - -2003-03-16 Roger Sayle - - * c-typeck.c (build_component_ref): Turn "for" into "do .. while" - to avoid "may be used uninitialized" warning on ia64-hpux. - * config/ia64/ia64-c.c: Include "tm_p.h" for function prototypes. - -2003-03-16 Andreas Jaeger - - * configure.in: Improve check for memcheck.h. - * configure: Regenerated. - -2003-03-16 Neil Booth - - * doc/cppopts.texi: Remove documentation of -A-. - -2003-03-15 Zack Weinberg - - * doc/libgcc.texi: Remove @tie. - -2003-03-15 Josef Zlomek - - * rtl.h (subrtx_p): Renamed to rtx_referenced_p. - (rtx_pair): Added new element update_label_nuses, renamed to - replace_label_data. - * cfgcleanup.c (outgoing_edges_match, try_crossjump_to_edge): Use - replace_label_data instead of rtx_pair. - * loop.c (load_mems): Likewise. - * rtlanal.c (replace_label): Replace label in pool constants and in - INSN_LIST (in REG_LABEL note). - (subrtx_p): Renamed to rtx_referenced_p. - (subrtx_p_1): Renamed to rtx_referenced_p_1, compare the interior of - LABEL_REF with CODE_LABEL, traverse constants from pool. - -2003-03-15 Aldy Hernandez - Zack Weinberg - - * Makefile.in (TEXI_GCCINT_FILES): Add libgcc.texi. - * doc/libgcc.texi: New file. - * doc/interface.texi: Delete paragraph about libgcc interface. - * doc/gccint.texi: Add libgcc menu entry and @include libgcc.texi. - -2003-03-15 Jason Merrill - - PR debug/9039 - * dwarf2out.c (gen_decl_die): Ignore frontend tree codes. - - PR debug/6387 - * dwarf2out.c (dwarf2out_decl): If we're at -g1, just stick nested - function DIEs at toplevel. - (decls_for_scope): At -g1, don't descend into subblocks. - -2003-03-15 Ulrich Weigand - - * varasm.c (struct rtx_const): Change type of un.addr member - to struct holding an additional 'symbol' member. - (decode_rtx_const): Re-enable optimization to count SYMBOL_REFs - with equal string addresses as equal. - (simplify_subtraction): Adapt to struct rtx_const change. - -2003-03-15 Neil Booth - - * fix-header.c (read_scan_file): Read main file before handling -D. - -2003-03-15 Roger Sayle - - * c-cppbuiltin.c (builtin_define_with_value_n): Fix whitespace. - * c-typeck.c (c_tree_expr_nonnegative_p): Likewise. - * cfgbuild.c (find_many_sub_basic_blocks): Likewise. - (find_sub_basic_blocks): Likewise. - * cgraphunit.c (cgraph_expand_functions): Likewise. - * dwarf2out.c (prune_unused_types): Likewise. - * expr.c (store_field): Likewise. - * genextract.c (print_path): Likewise. - * haifa-sched.c (schedule_insn): Likewise. - * lcm.c (compute_antinout_edge): Likewise. - * loop-unroll.c (decide_peel_once_rolling): Likewise. - * ra-colorize.c (ra_colorize_free_all): Likewise. - * ra-debug.c (dump_igraph): Likewise. - (debug_hard_reg_set): Likewise. - * reg-stack.c (reg_to_stack): Likewise. - * rtlanal.c (refers_to_regno_p): Likewise. - * tracer.c (layout_superblocks): Likewise. - -2003-03-15 Neil Booth - - * fix-header.c (read_scan_file): Fix thinko. - -2003-03-15 Glen Nakamura - - * reload1.c (choose_reload_regs): Use && instead of || - with REG_CANNOT_CHANGE_MODE_P condition. - -2003-03-15 Neil Booth - - * Makefile.in: Update. - * c-common.h (cb_register_builtins): Rename c_cpp_builtins. - * c-lex.c (init_c_lex): Register builtins hook is dead. - * c-opts.c (COMMAND_LINE_OPTIONS, missing_arg): Handle -A, -D and -U. - (c_common_decode_option): Don't call cpp_handle_option. - Handle -A, -D and -U. - (handle_deferred_opts): Simplify. - (finish_options): Define builtins and command line macros. - * c-ppoutput.c (init_pp_output): Register builtins hook is dead. - * cppinit.c: Don't include intl.h. - (init_builtins): Rename cpp_init_builtins. No hook to call. - (init_library): Don't need to sort options. - (cpp_create_reader): Don't set pending. - (cpp_destroy): Don't free pending. - (struct pending_option, cl_directive_handler, struct cpp_pending, - APPEND, free_chain, new_pending_directive, parse_option, opt_comp, - cpp_finish_options, COMMAND_LINE_OPTIONS, DEF_OPT, struct cl_option, - cl_options, cpp_handle_option): Remove. - * cpplib.h (struct cpp_pending, register_builtins, cpp_handle_option, - cpp_finish_options): Remove. - (cpp_init_builtins): New. - * fix-header.c (read_scan_file): Update to handle -D. Fix - handling of -I. Replace call to cpp_finish_options. - -2003-03-15 Michael Hayes - - PR optimization/9387 - * function.c (thread_prologue_and_epilogue_insns): Use redirect_jump - for conditional returns. - -2003-03-14 Jason Merrill - - PR optimization/6871 - * varasm.c (assemble_variable): Leave constant zeroes in .rodata. - -2003-03-14 Neil Booth - - * c-opts.c (finish_options): New. - (COMMAND_LINE_OPTIONS, c_common_decode_option): Add -imacros. - (missing_arg): Handle OPT_include and OPT_imacros. - (c_common_init, c_common_parse_file): Use finish_options. - (handle_deferred_opts): Update. - * cppinit.c (struct cpp_pending): Remove imacros_head and imacros_tail. - (cpp_finish_options): Don't handle -imacros here. - (no_fil): Remove. - (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -imacros. - -2003-03-14 Jakub Jelinek - - * config/rs6000/rs6000.c (rs6000_emit_load_toc_table): Don't call - rs6000_maybe_dead if !fromprolog. - -2003-03-14 Neil Booth - - * Makefile.in: Update. - * c-common.h (fe_file_change, pp_file_change): New. - * c-lex.c (init_c_lex): Don't set cb_file_change. - (c_common_parse_file): Move to c-opts.c. - (cb_file_change): Rename fe_file_change. - * c-opts.c: Include debug.h. - (warn_unused_macros, include_cursor): New. - (push_command_line_include, cb_file_change): New. - (COMMAND_LINE_OPTIONS): Handle -include. - (c_common_decode_option): Use local warn_unused_macros. - Handle OPT_include. - (c_common_post_options): Set file change callback. - (handle_deferred_opts): Skip -include. Don't free the array. - (c_common_init): Call cpp_finish_options here, and push an - initial -include file. - * c-ppoutput.c (cb_file_change): Rename pp_file_change. - (preprocess_file): Don't call cpp_finish_options. - (init_pp_output): Don't set the file change callback. - (pp_file_change): Return if no line commands or no output. - * cpphash.h (next_include_file, first_unused_line): Remove. - * cppinit.c (include_head, include_tail): Remove. - (cpp_destroy): Don't free -include chain. - (cpp_finish_options): Don't handle -include, or worry about - -Wunused-macros. - (_cpp_maybe_push_include_file): Remove. - (COMMAND_LINE_OPTIONS, cpp_handle_option): Don't handle -include. - * cpplib.c (_cpp_pop_buffer): Don't handle -include. - * cppmacro.c (_cpp_warn_if_unused_macro, _cpp_create_definition): - Used flag is set based upon the state of the warn_unused_macros - flag, and so use of first_unused_line is unnecessary. - -2003-03-13 Jan Hubicka - - * cselib.c (clear_table): Do not take argument; always clear just - used slots. - (cselib_process_insn): Update call of clear_table - (cselib_init): Do not call clear_table. - (cselib_finish): Clear table. - - * cse.c (count_reg_usage): Do not check side_effects_p. - * rtlanal.c (set_noop_p): Check side_effects_p only when set looks - like noop. - (find_reg_equal_equiv_note): Do not use find_reg_note. - -2003-03-14 Richard Henderson - - PR target/9700 - * config/alpha/alpha.c (alpha_va_start): Account for - current_function_pretend_args_size in the AP offset. - - * config/alpha/alpha.h (SETUP_INCOMING_VARARGS): Move out of line. - (INITIAL_ELIMINATION_OFFSET): Move out of line. - * config/alpha/alpha.c (alpha_setup_incoming_varargs): New. - (alpha_initial_elimination_offset) New. - * config/alpha/alpha-protos.h: Update. - -2003-03-14 Jakub Jelinek - - * stmt.c (expand_start_case): Call emit_queue (). - -2003-03-14 Chris Demetriou - Alexandre Oliva - - * config/mips/mips.h (FUNCTION_PROFILER): _mcount() doesn't pop 2 - words in new abis. - -2003-03-14 Eric Botcazou - - PR optimization/8396 - * tree-inline.c (initialize_inlined_parameters): Make sure the value - of read-only constant arguments is passed with the right type. - -2003-03-14 Steven Bosscher - - * doc/extend.texi (Function Names): Make the example compilable. - -2003-03-13 David Edelsohn - - * config/rs6000/rs6000.c (processor_target_table): Really allow - GP optional instructions on Power4. - -2003-03-13 Roger Sayle - - * calls.c (flags_from_decl_or_type): Factor and remove redundant - conditional tests. - -2003-03-13 Mike Stump - - * ggc-page.c (struct page_entry): Remove varray.h header. - Add index_by_depth field. - Remove save_in_use_p field. - (struct globals): Add depth_in_use, depth_max, by_depth_in_use, - by_depth_max, by_depth, and save_in_use fields. - (INITIAL_PTE_COUNT): Add. - (save_in_use_p_i): Add. - (save_in_use_p): Add. - (adjust_depth): Add. - (move_ptes_to_front): Add. - (push_depth): Add. - (push_by_depth): Add. - (prefetch): Add. - (free_page): Add support for and use faster data structures. - (ggc_alloc): Likewise. - (init_ggc): Likewise. - (ggc_recalculate_in_use_p): Likewise. - (ggc_pop_context): Likewise. - (clear_marks): Likewise. - (ggc_pch_read): Likewise. - * Makefile.in (ggc-page.o): Remove varray.h. - -2003-03-13 Nathanael Nerode - - * ChangeLog: Rotated last year's entries to... - * ChangeLog.8: New. - - * config/ia64/fde-glibc.c, config/ia64/freebsd.h, - config/ia64/hpux.h, config/ia64/hpux_longdouble.h, - config/ia64/ia64-c.c, config/ia64/ia64-modes.def, - config/ia64/ia64-protos.h, config/ia64/ia64.c, - config/ia64/ia64.h, config/ia64/ia64.md, - config/ia64/itanium1.md, config/ia64/itanium2.md, - config/ia64/quadlib.c, config/ia64/unwind-ia64.c, - config/ia64/unwind-ia64.h: It's GCC, not GNU CC. - -2003-03-13 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_dwarf_register_span): - Differentiate endianness. - (s6000_override_options): Use cpu type instead of TARGET_SPE. - -2003-03-13 Nick Clifton - - * config/arm/arm.c (print_multi_reg): Do not generate a type 2 - LDM instructions with writeback enabled. - (output_return_instruction): Likewise. - - * config/arm/pe.h (FIXED_REGISTERS): Remove definition. - (CALL_USED_REGISTERS): Remove definition. - (SUBTARGET_CONDITIONAL_REGISTER_USAGE): Define. - -2003-03-13 Alan Modra - - * config/rs6000/rs6000.c (rs6000_flag_pic): Delete. - (rs6000_xcoff_encode_section_info): #ifdef TARGET_XCOFF. - (rs6000_binds_local_p, TARGET_BINDS_LOCAL_P): #if TARGET_MACHO. - (rs6000_override_options): Don't clear flag_pic for ABI_AIX. - (rs6000_legitimize_address): Formatting. - (rs6000_emit_move): Likewise. - (rs6000_return_addr): Test ABI_AIX as well as flag_pic. - (rs6000_emit_prologue ): Likewise. - (rs6000_elf_select_section): Comment reason for shlib being - set for ABI_AIX. - (rs6000_elf_unique_section): Likewise. - (rs6000_elf_encode_section_info): Test !TARGET_AIX as well as ABI_AIX. - * config/rs6000/rs6000.h (LEGITIMATE_LO_SUM_ADDRESS_P): Test ABI_AIX - as well as flag_pic. - * config/rs6000/sysv4.h (SUBTARGET_OVERRIDE_OPTIONS): Likewise. - (MINIMAL_TOC_SECTION_ASM_OP): Likewise. - * config/rs6000/linux64.h (TARGET_ENCODE_SECTION_INFO): Don't define. - -2003-03-13 Richard Henderson - - * emit-rtl.c (try_split): Handle 1-1 splits of call insns properly. - - * config/ia64/ia64.c (TARGET_FUNCTION_OK_FOR_SIBCALL): New. - (ia64_gp_save_reg): Remove. - (struct ia64_frame_info): Move to the beginning of the file; - add reg_save_gp. - (ia64_expand_call): Rearrange for new call patterns. - (ia64_reload_gp): New. - (ia64_split_call): New. - (ia64_compute_frame_size): Allocate reg_save_gp. - (ia64_expand_prologue): Save reg_save_gp. - (ia64_expand_epilogue): Don't restore gp. - (ia64_hard_regno_rename_ok): Remove R4 hack. - (ia64_function_ok_for_sibcall): New. - (ia64_output_mi_thunk): Set reload_completed, no_new_pseudos; - call try_split on sibcall pattern. - * config/ia64/ia64-protos.h: Update. - * config/ia64/ia64.md (call_nogp, call_value_nogp, sibcall_nogp): - Rename from nopic versions. Confiscate 2nd argument to call as - a marker. - (call_pic, call_value_pic, sibcall_pic): Remove. - (call_gp, call_value_gp, sibcall_gp): New. - (builtin_setjmp_setup): Remove. - (builtin_setjmp_receiver): Call ia64_reload_gp. - -2003-03-12 Nathanael Nerode - - * config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, - config/dsp16xx/dsp16xx.h, config/dsp16xx/dsp16xx.md: Replace - "GNU CC" with "GCC". - - * config/c4x/c4x-c.c, config/c4x/c4x-modes.def, - config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, - config/c4x/c4x.md, config/c4x/libgcc.S, config/c4x/rtems.h: - GCC, not GNU CC. - - * genattrtab.h, hosthooks-def.h, hosthooks.h, langhooks-def.h, - langhooks.h, tree-inline.h: Replace "GNU CC" with "GCC". - - * c-pch.c, dummy-conditions.c, genautomata.c, genconditions.c, - langhooks.c, tree-inline.c, unwind-dw2-fde-darwin.c, - unwind-dw2-fde-glibc.c, unwind-libunwind.c, vmsdbgout.c: Replace - "GNU CC" with "GCC". - - * config/v850/lib1funcs.asm, config/v850/rtems.h, - config/v850/v850-c.c, config/v850/v850-protos.h, - config/v850/v850.c, config/v850/v850.h, config/v850/v850.md: - GCC, not GNU CC. - - * config/vax/bsd.h, config/vax/elf.h, config/vax/netbsd-elf.h, - config/vax/netbsd.h, config/vax/openbsd.h, config/vax/openbsd1.h, - config/vax/ultrix.h, config/vax/vax-protos.h, config/vax/vax.c, - config/vax/vax.h, config/vax/vax.md, config/vax/vaxv.h: GCC, not - GNU CC. - -2003-03-12 Benjamin Kosnik - - * cpppch.c (cpp_valid_state): Use DL_WARNING_SYSHDR, not DL_WARNING. - -2003-03-12 Nathanael Nerode - - * fixinc/fixinc.interix: Remove dead code (most of it). - * fixinc/fixinc.dgux: Remove. - - * ginclude/float.h, ginclude/iso646.h, ginclude/stdarg.h, - ginclude/stdbool.h, ginclude/stddef.h: GCC, not GNU CC. - -2003-03-12 John David Anglin - - * pa.c (pa_init_builtins): Fix warning. - -2003-03-12 Steve Ellcey - - * config/ia64/ia64.h (ASM_OUTPUT_XDATA_CHAR): Remove. - (ASM_OUTPUT_XDATA_SHORT): Remove. - (ASM_OUTPUT_XDATA_INT): Remove. - (ASM_OUTPUT_XDATA_DOUBLE_INT): Remove. - (ASM_OUTPUT_ADDR_DIFF_ELT): Handled 32 bit address diffs. - (ASM_PREFERRED_EH_DATA_FORMAT): Handle 32 bit EH pointers. - (CASE_VECTOR_MODE): Handle 32 bit pointers in case statement. - -2003-03-12 Andrew Lewycky - - PR c++/7050 - * expr.c (store_expr): Don't attempt to store void-typed trees, - just evaluate them for side effects. - -2003-03-12 Neil Booth - - * cppfiles.c (cpp_rename_file, cpp_push_include): New. - * cppinit.c (push_include): Move with changes to cppfiles.c. - (cpp_read_main_file): Mark named operators here... - (cpp_finish_options): ...not here. Update. - (_cpp_maybe_push_include_file): Update. - * cpplib.h (cpp_push_include, cpp_rename_file): New. - -2003-03-12 Nathanael Nerode - - * aclocal.m4: Introduce gcc_GAS_VERSION_GTE_IFELSE, - _gcc_COMPUTE_GAS_VERSION. - * configure.in: Use them. - * configure: Regenerate. - -2003-03-12 Bob Wilson - - * config/xtensa/xtensa.md (adddi3): Don't clobber source operand used - to detect carry. - (subdi3): Reorder emitted instructions. - -2003-03-12 Andreas Jaeger - - * config/i386/netbsd64.h (TARGET_OS_CPP_BUILTINS): Remove call to - NETBSD_OS_CPP_BUILTINS_LP64. - -2003-03-12 Nathanael Nerode - - * Makefile.in: Eliminate all.indirect. Update and clean up comments. - Rearrange. Reorganize. - * configure.in: Rearrange. - * configure: Regenerate. - -2003-03-12 Andreas Jaeger - - * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for - LP64 targets. - - * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and - _LP64. - - * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define - _LP64 macros here. - * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise. - - * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to - NETBSD_OS_CPP_BUILTINS_LP64. - * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise. - * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise. - - * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove. - -2003-03-12 Jan Hubicka - - * i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128. - -2003-03-12 Daniel Jacobowitz - - Fix PR target/9797 and PR c/9853. - * stmt.c (expand_decl_init): Call push_temp_slots () and - pop_temp_slots (). - -2003-03-12 J"orn Rennecke - - * sh.c: Include basic-block.h. - (sh_output_mi_thunk, emit_load_ptr): New functions. - (TARGET_ASM_OUTPUT_MI_THUNK, TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine. - -2003-03-12 Nick Clifton - - * config/arm/pe.h (FIXED_REGISTERS): Add Maverick registers. - (CALL_USED_REGISTERS): Likewise. - * config/arm/arm.h (FIRST_PSEUDO_REGISTER): Update comment - describing how this value is calculated. - -2003-03-12 Hans-Peter Nilsson - - * configure.in (rlim_t): Define to long if no valid definition - found in sys/resource.h. - * config.in, configure: Regenerate. - -2003-03-12 Neil Booth - - * config/mcore/mcore-elf.h (CPP_PREDEFINES): Replace with - TARGET_OS_CPP_BUILTINS. - * config/mcore/mcore-pe.h: Similarly. - * config/mcore/mcore.h: Replace CPP_PREDEFINES and part of - CPP_SPEC with TARGET_CPU_CPP_BUILTINS. - -2003-03-12 Eric Botcazou - - PR c/9928 - * c-decl.c (duplicate_decls): Discard the initializer of the new decl - only if it is a VAR_DECL. - -2003-03-12 Eric Botcazou - - PR optimization/9888 - * config/i386/i386.md (jcc_1): Fix range. - (jcc_2): Likewise. - (jump): LIkewise. - (doloop_end_internal): Likewise. - -2003-03-12 Danny Smith - - * config/i386/winnt.c (DLL_IMPORT_PREFIX): New define. - Use throughout instead of DLL_IMPORT_EXPORT_PREFIX and "e." - (DLL_EXPORT_PREFIX): New define. Use throughout instead of - DLL_IMPORT_EXPORT_PREFIX and "i." - (i386_pe_dllexport_name_p): Here. - (i386_pe_dllimport_name_p): Here. - (i386_pe_mark_dllexport): Here. Remove DLL_IMPORT_PREFIX, - not 9 chars when getting identifier name. - (i386_pe_mark_dllimport): Here. - (i386_pe_encode_section_info): Here. Remove DLL_IMPORT_PREFIX, - not 9 chars when getting identifier name. Correct comment. - (i386_pe_strip_name_encoding): Here. Add comments for different - cases. - (gen_fastcall_suffix): Break down xmalloc() argument to - components. - (gen_stdcall_suffix): Likewise. - Update copyright year. - -2003-03-12 Eric Botcazou - - PR optimization/9888 - * config/i386/i386.md (movsi_1): Remove special alternatives - for %eax register. - (movsi_1_nointernunit): Likewise. - (movhi_1): Likewise. - * config/i386/i386.c (memory_address_length): Do not use - short displacement when there is no base. - (ix86_attr_length_address_default): Handle LEA instructions. - -2003-03-12 Neil Booth - - * c-cppbuiltin.c (builtin_define_std): Make non-static. - -2003-03-11 Loren James Rittle - - * config/freebsd-spec.h (FBSD_CPP_PREDEFINES): Remove. - (FBSD_TARGET_OS_CPP_BUILTINS): New port-specific macro. - (FBSD_TARGET_CPU_CPP_BUILTINS): New port-specific macro. - * config/freebsd.h (CPP_PREDEFINES): Remove. - (TARGET_OS_CPP_BUILTINS): New. - * config/alpha/freebsd.h: Use overridden FBSD_TARGET_CPU_CPP_BUILTINS - instead of TARGET_OS_CPP_BUILTINS. - * config/sparc/freebsd.h (CPP_PREDEFINES): Remove. - -2003-03-11 Geoffrey Keating - - * c-cppbuiltin.c (builtin_define_std): Add ATTRIBUTE_UNUSED. - -2003-03-11 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_stack_info): Remove - insn_chain_scanned. Use insn_chain_scanned_p in machine_function. - - * config/rs6000/rs6000.h (machine_function): Add insn_chain_scanned_p. - -2003-03-11 Alexandre Oliva - - * toplev.c (independent_decode_option): Return success for --help, - --target-help and --version. - -2003-03-11 Alexandre Oliva - - * config/mips/linux64.h (DRIVER_SELF_SPECS): Add endian_spec. - Default to -mips3 on -mabi=64. Don't add -mips* flag if -march is - specified. - (SUBTARGET_ASM_SPEC): Remove -mips*-adding code obviated by - DRIVER_SELF_SPECS. - (LINK_SPEC): Let endian options affect the linker emulation name. - -2003-03-11 J"orn Rennecke - - * sh.md (reload_inqi): Fix mode for source in second set. - -2003-03-11 Jan Hubicka - - * cselib.c (cselib_invalidate_mem_1): Move too ... - (cselib_invalidate_mem): ... here; use new list - (dummy_val, first_containing_mem): New static variables. - (clear_table): Initialize first_containing_mem. - (discard_useless_values): Compact the containing_mem list. - (add_mem_for_addr): Add to the list. - * cselib.h (cselib_val): Add next_containing_mem. - -2003-03-11 Aldy Hernandez - - * config/rs6000/rs6000.c (rs6000_override_options): Disable string - instructions for e500. - -2003-03-11 Neil Booth - - * Makefile.in: Update. - * c-cppbuiltin.c: Include tm_p.h. - -2003-03-11 Aldy Hernandez - - * doc/tm.texi (Frame Registers): Document DWARF_REG_TO_UNWIND_COLUMN. - - * unwind-dw2.c (DWARF_REG_TO_UNWIND_COLUMN): Define. - (_Unwind_GetGR): Use DWARF_REG_TO_UNWIND_COLUMN. - (_Unwind_SetGR): Same. - (_Unwind_GetGRPtr): New. - (_Unwind_SetGRPtr): New. - (uw_update_context_1): Use accesor functions instead of accessing - context->reg[] directly. - (uw_install_context_1): Same. - (execute_cfa_program): Same. - (__frame_state_for): Same. - - * config/rs6000/rs6000.c (spe_synthesize_frame_save): Use 1200 as - the synthetic register offset. - - * config/rs6000/rs6000.h (DWARF_REG_TO_UNWIND_COLUMN): New. - -2003-03-11 Hans-Peter Nilsson - - * config/cris/cris.md: Remove lingering EGCS reference. - ("*extopqihi_side_biap"): For HI operation, match - cris_additive_operand_extend_operator, not - cris_operand_extend_operator. Adjust condition. - ("*extopqihi_side", "*extopqihi"): Ditto. - ("*extopqisi_side_biap"): Correct operand numbers in condition. - ("*extophisi_side_biap", "*extopqisi_swap_side_biap"): Ditto. - ("*extophisi_swap_side_biap", "*extopqisi_swap"): Ditto. - ("*extophisi_swap"): Ditto. - ("*extopqihi_swap_side_biap"): For HI operation, match a simple - PLUS, not cris_operand_extend_operator. Adjust condition and - output template. - ("*extopqihi_swap_side", "*extopqihi_swap"): Ditto. - * config/cris/cris.h (PREDICATE_CODES): Add - cris_additive_operand_extend_operator. - * config/cris/cris.c (cris_additive_operand_extend_operator): - New predicate. - -2003-03-11 Hartmut Penner - - * df.c (read_modify_subreg_p): Change from static to global. - * df.h (read_modify_subreg_p): Add prototype. - * sched-deps.c (sched_analyze_1): Generate true dependency for - strict_low_part, certain subregs and zero/sign_extract. - -2003-03-11 Neil Booth - - * Makefile.in: Update. - * c-common.c: Don't include real.h or except.h. - (REGISTER_PREFIX): Remove. - (builtin_define_std, builtin_define_with_value, - builtin_define_with_int_value, builtin_define_with_hex_fp_value, - builtin_define_type_max, builtin_define_type_precision, - builtin_define_float_constants): Move to c-cppbuiltin.c. - (c_stddef_cpp_builtins): New. - * c-common.h (builtin_define_with_value, c_stddef_cpp_builtins): New. - * c-cppbuiltin.c: New, extracted from c-common.c. - (define__GNUC__): New. - * cppspec.c (lang_specific_driver): Remove support of -no-gcc. - * gcc.c: Remove support of %v1, %v2 and %v3 specs. - (cpp_unique_options): Don't support no-gcc. - (do_spec_1): Remove support of version specs. - * doc/invoke.texi: Remove documentation of %v1, %v2 and %v3. - * doc/passes.texi: Update. - * doc/tm.texi: Update. - -2003-03-10 Aldy Hernandez - - * dwarf2out.c (multiple_reg_loc_descriptor): Fix thinko. - -2003-03-10 Andrew Pinski - - * config/darwin.c (machopic_function_base_name): If dynamic-no-pic - is on should not get here. - (machopic_indirect_data_reference): If dynamic-no-pic is on just - generate high/low parts of the address. - (machopic_legitimize_pic_address): Change MACHOPIC_PURE to - MACHOPIC_INDIRECT. Dynamic-no-pic uses 0 as the pic base. Generate - symbol and labels with a new reg. Dynamic-no-pic does not have a - pic_offset_table_rtx. - (machopic_select_section): Change references of flag_pic to - MACHOPIC_INDIRECT. - (machopic_asm_out_destructor): Likewise. - * config/darwin.h (ASM_DECLARE_UNRESOLVED_REFERENCE): Change - reference of flag_pic to MACHOPIC_INDIRECT. - (MACHO_DYNAMIC_NO_PIC_P): Define as TARGET_DYNAMIC_NO_PIC. - (MACHOPIC_INDIRECT): Is also true when dynamic-no-pic is on. - (MACHOPIC_JUST_INDIRECT): Is also true when dynamic-no-pic is on. - (MACHOPIC_PURE): Is not pure when dynamic-no-pic is on. - * config/i386/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define as - 0 for right now as dynamic-no-pic is not implemented on Darwin/ia32. - * config/rs6000/darwin.h (MASK_MACHO_DYNAMIC_NO_PIC): Define. - (TARGET_DYNAMIC_NO_PIC): Define. - (SUBTARGET_SWITCHES): Define, have sub-target switches for - dynamic-no-pic. - (SUBTARGET_OVERRIDE_OPTIONS): Move check for -fpic from - rs6000_override_options to here. Dynamic-no-pic overrides - pic. - (CC1_SPEC): Change from not static then pic to not static and not - dynamic-no-pic then pic. - * config/rs6000/rs6000.c (rs6000_override_options): Move the - check for -fpic and DARWIN_ABI to config/rs6000/darwin.h - (rs6000_legitimize_reload_address): Add case for loading floating in - dynamic-no-pic. - (rs6000_emit_move): Add case for dynamic-no-pic. Change reference - of flag_pic to MACHOPIC_INDIRECT. - (secondary_reload_class): Conditional change the reference of - flag_pic to MACHOPIC_INDIRECT. - (rs6000_output_mi_thunk): Change reference of flag_pic to - MACHOPIC_INDIRECT. - (output_profile_hook): Likewise. - (machopic_output_stub): Non-pure (dynamic-no-pic) is now supported. - * config/rs6000/rs6000.md (movdf_low): Add the case for - MACHO_DYNAMIC_NO_PIC_P. - (call): Change references for flag_pic in TARGET_MACHO to - MACHOPIC_INDIRECT. - (SUBTARGET_OVERRIDE_OPTIONS): Add case where -fpic is on and - -mdynamic-no-pic is on. Also move case for -fpic from rs6000.c. - * doc/invoke.texi (-mdynamic-no-pic): Document. - -2003-03-10 Devang Patel - - PR c++/9394 - * gcc.c (DEFAULT_SWITCH_TAKES_ARG): Remove. - (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove. - * gcc.h (DEFAULT_SWITCH_TAKES_ARG): Add. - (DEFAULT_WORD_SWITCH_TAKES_ARG): Add. - * cppspec.c (DEFAULT_SWITCH_TAKES_ARG): Remove. - (DEFAULT_WORD_SWITCH_TAKES_ARG): Remove. - -2003-03-10 Steven Bosscher - - PR optimization/7189 - * toplev.c (rest_of_compilation): Move - check_function_return_warnings up to just after - delete_unreachable_blocks. - -2003-03-10 Stephane Carrez - - * config/m68hc11/m68hc11.h (HARD_REGNO_RENAME_OK): Define. - * config/m68hc11/m68hc11-protos.h (m68hc11_hard_regno_rename_ok): - Declare. - * config/m68hc11/m68hc11.c (m68hc11_hard_regno_rename_ok): New function - for reg rename optimization to avoid using Z and Y registers. - -2003-03-10 Stephane Carrez - - * config/m68hc11/m68hc11.md ("*addhi3_68hc12"): Accept any constant - when adding to X and Y since leax/leay are fast. - ("*addhi3"): Accept 'I' constraint when adding to address register. - ("rotlhi3"): Operand 1 must be a register_operand. - (peephole2): New peephole to optimize some adds. - * config/m68hc11/m68hc11.h (CONST_OK_FOR_LETTER_P): Use 'I' constraint - to represent -2 .. 2 small integer range. - -2003-03-10 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_gen_rotate): Set carry before - each 16-bit rotation. - -2003-03-10 Zack Weinberg - - * c-opts.c (add_prefixed_path): Don't use concat. When - prefixing with cpp_GCC_INCLUDE_DIR, copy only the first - cpp_GCC_INCLUDE_DIR_len characters. - -2003-03-10 Segher Boessenkool - - * testsuite/gcc.dg/altivec-9.c: New file. - - * config/rs6000/rs6000.c (altivec_frame_fixup): Remove. - (rs6000_emit_prologue): Use rs6000_frame_related instead. - -2003-03-10 Aldy Hernandez - - * config/rs6000/spe.h: Define __ev64_*64__ to use single element - vectors. - (__ev_convert_u64): Remove macro. Define as inline. - (__ev_convert_s64): Same. - -2003-03-10 Aldy Hernandez - - * config/rs6000/rs6000.h (DWARF_FRAME_REGISTERS): Define. - (rs6000_stack_t): Add spe_64bit_regs_used. - - * config/rs6000/rs6000.c (rs6000_stack_info): Calculate - spe_64bit_regs_used, and use it to determine the size of the - frame. - (spe_func_has_64bit_regs_p): New. - (spe_synthesize_frame_save): New. - (rs6000_frame_related): Handle SPE synthetic registers. - (rs6000_emit_prologue): Only save in 64-bits if the function used - any registers in 64-bit mode. - (rs6000_emit_epilogue): Same, but for restore. - -2003-03-10 Richard Earnshaw - - * arm.h (enum floating_point_type): Delete. Replace with... - (enum fputype): ... new. - (FPUTYPE_DEFAULT): Renamed from FP_DEFAULT. Values reworked. - * linux-elf.h (FPUTYPE_DEFAULT): Likewise. - * arm.md (attr fpu): Reworked for new underlying enum values. - * arm.c (arm_fpu_arch): Now enum fputype. - (arm_fpu_tune): Renamed from arm_fpu. Now enum fputype. - (arm_override_options, arm_output_epilogue, arm_expand_prologue): - Update uses of arm_fpu_arch and arm_fpu_tune. - -2003-03-10 Josef Zlomek - - * cfgcleanup.c (outgoing_edges_match): Compare the jump tables. - (try_crossjump_to_edge): Replace refereces to one jump table by - references to identical jump table. - * loop.c (load_mems): Moved setting the JUMP_LABEL to replace_label. - (replace_label): Moved to rtlanal.c. - (struct rtx_pair): Moved to rtl.h. - * rtl.h (struct rtx_pair): Moved from loop.c. - (replace_label): New extern function. - (subrtx_p): New extern function. - (tablejump_p): New extern function. - * rtlanal.c (replace_label): Moved from loop.c. - (subrtx_p_1): New static function. - (subrtx_p): New function. - (tablejump_p): New function. - -2003-03-10 Jan Hubicka - - * cfgcleanup.c (try_optimize_cfg): Fix thinko in previous patch. - - * cfgcleanup.c (merge_blocks): Return where to iterate next. - (try_optimize_cfg): Use return value of merge_blocks - -2003-03-10 Michael Matz - - * cfg.c (unchecked_make_edge): New. - (cached_make_edge): Use it. - * basic-block.h (unchecked_make_edge): Declare. - * cfglayout.c (cfg_layout_duplicate_bb): Use it. - -2003-03-10 Richard Earnshaw - - * fpa.md: New file. Move all patterns relating to FPA co-processor - to here... - * arm.md: ... from here. - (cirrus.md, fpa.md): Include at end of description. - (divsf3, divdf3, modsf3, movdf3, sqrtsf2, sqrtdf2): New expands. - (pic_load_addr_based): Remove register constraint from expander. - (seq, sne, sgt, sle, slt, sge, sgeu, sleu, sgtu, sltu, sunordered) - (sordered, sungt, sunle, sunge, sunlt): Likewise. - (eh_epilogue, tablejump): Likewise. - -2003-03-09 Richard Kenner - - * tree.c (substitute_in_expr, case 'e'): Only make recursive call - on operands if it has a PLACEHOLDER_EXPR. - -2003-03-09 David Edelsohn - Mostafa Hagog - - * config/rs6000/rs6000.md (movsi_update1): Add TARGET_UPDATE final - condition. - -2003-03-09 Neil Booth - - * config/frv/frv.h: Use TARGET_CPU_CPP_BUILTINS, not CPP_PREDEFINES. - * config/ip2k/ip2k.h: Similarly. - * config/m32r/m32r.h: Similarly. - * config/m68hc11/m68hc11.h: Similarly. - * config/mn10200/mn10200.h: Similarly. - * config/mn10300/mn10300.h: Similarly. - * config/pdp11/pdp11.h: Similarly. - * config/v850/v850.h: Similarly. - * config/rs6000/vxworks.h: Similarly for TARGET_OS_CPP_BUILTINS. - * config/v850/retms.h: Similarly for TARGET_OS_CPP_BUILTINS. - * config/mips/iris3.h: Remove #if 0 block. - -2003-03-09 Roger Sayle - Joern Rennecke - - * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch. Don't handle - pending argument upon return from handle_braces here. - (do_spec_2): Instead handle it upon return from do_spec_1 here. - -2003-03-09 Roger Sayle - Joern Rennecke - - * gcc.c (do_spec_1) ['{']: Revert 2003-02-24 patch. Don't handle - pending argument upon return from handle_braces here. - (do_spec_2): Instead handle it upon return from do_spec_1 here. - -2003-03-09 Franz Sirl - - * varasm.c (make_decl_one_only): Use declare_weak(). - -2003-03-09 John David Anglin - - PR middle-end/9986 - * c-common.c (c_common_nodes_and_builtins): Initialize target builtins - after the common builtins. - * pa-hpux.h (DONT_HAVE_FPUTC_UNLOCKED): Define. - * pa.c (TARGET_INIT_BUILTINS): Define. - (pa_init_builtins): New function. - - * pa.md (call, call_value, sibcall, sibcall_value): When sufficient - space has been allocated for the outgoing arguments, set the arg - pointer for a call emitted after virtuals have been instantiated - using the stack pointer offset, otherwise abort. - -2003-03-09 DJ Delorie - - * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): Revert. - -2003-03-09 Richard Earnshaw - - * arm.md (fix_truncsfsi2, fix_truncdfsi2, arm_fix_truncsfsi2) - (arm_fix_truncdfsi2): Add missing fix in floating point mode before - conversion to integer. - * cirrus.md (cirrus_truncsfsi2, cirrus_truncdfsi2): Likewise. - -2003-03-09 Roger Sayle - - * builtins.def: Fix typo and improve grammar. - * loop-unroll.c (decide_peel_completely): Tidy log message. - -2003-03-09 Kazu Hirata - - * config/h8300/h8300.md (*tstsi_upper_bit): New. - (*iorsi3_e2f): Likewise. - -2003-03-08 Kazu Hirata - - * config/h8300/h8300.c (h8300_and_costs): Return the number of - assembly instructions needed. - (h8300_shift_costs): Likewise. - -2003-03-09 Hans-Peter Nilsson - - * config/cris/aout.h (ENDFILE_SPEC): Undef. - - * optabs.c (gen_move_insn): Move logic for synthesizing MODE_CC - moves from here ... - * expr.c (emit_move_insn_1): ... to here. - - * config/cris/aout.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__AOUT__ to... - (TARGET_OS_CPP_BUILTINS): New macro. - * config/cris/cris.h (CRIS_CPP_SUBTARGET_SPEC): Move -D__ELF__ to... - (TARGET_OS_CPP_BUILTINS): New macro. - (CPP_PREDEFINES): Don't define. Move old definitions and... - (CPP_SPEC): ...move -D__CRIS_ABI_version=2 to... - (TARGET_CPU_CPP_BUILTINS): New macro. - * config/cris/linux.h (CRIS_CPP_SUBTARGET_SPEC): Move constant - definitions and the optional __PIC__, __pic__ and - __NO_UNDERSCORES__ definitions to... - (TARGET_OS_CPP_BUILTINS): New macro. - - * flags.h (flag_leading_underscore): Declare. - - * c-opts.c (c_common_post_options): On fopen failure, return - false, not NULL. - -2003-03-08 Hans-Peter Nilsson - - * config/cris/cris_abi_symbol.c: #include tconfig.h and tm.h, not - config.h. - * config/cris/cris.h (HAVE_GAS_HIDDEN): Don't define here. - * config/cris/aout.h (HAVE_GAS_HIDDEN): Undef. - -2003-03-08 Neil Booth - - * config/sh/rtemself.h (TARGET_OS_CPP_BUILTINS): Use instead of - CPP_PREDEFINES. - * config/sh/rtems.h (TARGET_OS_CPP_BUILTINS): Use instead of - CPP_PREDEFINES. - -2003-03-08 Neil Booth - - * c-common.h (c_common_init, c_common_post_options): Update. - * c-objc-common.c (c_objc_common_init): Update for new prototype. - * c-opts.c (saved_lineno): New. - (c_common_post_options, c_common_init): Update prototypes, - move call to cpp_read_main_file from latter to former. - * c-tree.h (c_ojbc_common_init): Update. - * langhooks-def.h (lhd_post_options): New. - (LANG_HOOKS_INIT, LANG_HOOKS_POST_OPTIONS): Update. - * langhooks.c (lhd_post_options): New. - * langhooks.h (struct lang_hooks): Update post_options and init hooks. - * toplev.c (no_backend): New. - (process_options): Call post_options hook and set main_input_filename - and input_filename here. - (lang_dependent_init, do_compile): post_options hook moved to - process_options. - * objc/objc-act.c (objc_init): Update prototype. - * objc/objc-act.h (objc_init): Update prototype. - -2003-03-08 Roger Sayle - - * emit-rtl.c (gen_lowpart): Don't attempt to load a part of - a complex or vector type, using a load in the original mode. - -2003-03-08 Jan Hubicka - - * Makefile.in (cgraph.o): Depend on gt-cgraph.h and varray.h. - * gt-cgraph.h: New GC file. - * cgraph.c (known_fns): New static variable. - (cgraph_node): Add the decl into varray. - -2003-03-08 Hans-Peter Nilsson - - * config/mmix/mmix.md ("*movcc_expanded"): Add missing alternatives. - -2003-03-08 Richard Earnshaw - - * arm.c (fpa_rhs_operand, fpa_add_operand, const_double_rtx_ok_for_fpa) - (neg_const_double_ok_for_fpa, output_mov_long_double_fpa_from_arm) - (output_mov_long_double_arm_from_fpa, output_mov_double_fpa_from_arm) - (output_mov_double_arm_from_fpa): Renamed to use fpa instead of fpu. - All callers changed. - * arm.md, arm.h, arm-protos.h: Updated. - - * arm.h (enum reg_class FPA_REGS): Renamed from FPU_REGS. - (CLASS_MAX_NREGS, REGISTER_MOVE_COST, REG_CLASS_FROM_LETTER): Updated. - * arm.c (arm_regno_class, f_register_operand): Updated. - -2003-03-08 Hans-Peter Nilsson - - * config/cris/cris.h: Remove EGCS references. - (CPP_SPEC): Remove "-$". - (INIT_CUMULATIVE_ARGS): Adjust parameter name to FNDECL. - -2003-03-08 Neil Booth - - * config/stormy16/stormy16.h (TARGET_CPU_CPP_BUILTINS): Use in - preference to CPP_PREDEFINES. - -2003-03-08 Neil Booth - - * cppinit.c (cpp_finish_options): Set first_unused_line to -1. - -2003-03-08 Kazu Hirata - - * config/h8300/h8300.md (*extzv_16_8): New. - -2003-03-08 Jan Hubicka - - * c-decl.c: (finish_function): Update call of tree_inlinable_function_p. - * cgraph.h: (cgraph_local_info): Add can_inline_once - (cgraph_global_info): Add inline_once. - (cgraph_node): Add previous. - (cgraph_remove_node): New. - * cgraphunit.c (cgraph_mark_functions_to_inline_once): New static - function. - (cgraph_optimize): Call it. - (cgraph_finalize_function): Set inlinable flags. - (cgraph_finalize_compilation_unit): Actually remove the reclaimed nodes. - (cgraph_mark_functions_to_output): Use new inlining heuristics flags. - (cgraph_expand_function): Likewise. - * cgraph.c - (cgraph_node): Put nodes into doubly linked chain. - (cgraph_remove_node): New function. - * flags.h (flag_inline_functions_called_once): Declare. - * tree-inline.c: Include cgraph.h - (inlinable_functions_p): Add extra argument to bypass limits. - (expand_call_inline): Obey cgraph flag. - * tree-inline.h (tree_inlinable_function_p): Update prototype. - -2003-03-08 Zdenek Dvorak - - * gcse.c (bypass_block, bypass_conditional_jumps): Do not create - irreducible loops. - - * loop-unroll.c (unroll_loop_runtime_iterations): Update irreducible - loops info correctly. - -2003-03-08 Eric Botcazou - - PR middle-end/7796 - * unroll.c (calculate_giv_inc): Handle constants being - loaded with LSHIFTRT. - -2003-03-07 David Edelsohn - - * config/rs6000/rs6000.c (processor_target_table): Do not disable - GP optional instructions on Power3, Power4, 620, and 630. - -2003-03-07 Kazu Hirata - - * calls.c: Fix comment formatting. - * cfgloopanal.c: Likewise. - * cfgloopmanip.c: Likewise. - * combine.c: Likewise. - * dwarf2out.c: Likewise. - * ggc-common.c: Likewise. - * langhooks.c: Likewise. - * loop-unroll.c: Likewise. - * loop.c: Likewise. - * ra-build.c: Likewise. - * sbitmap.c: Likewise. - * toplev.c: Likewise. - -2003-03-07 James E Wilson - - * config/sh/sh.h (HARD_REGNO_NREGS): Round up the XD register count. - -2003-03-07 Geoffrey Keating - - * objc/lang-specs.h (objective-c-header): Use .gch not .pch; - support -no-integrated-cpp. - - * c-pch.c (get_ident): Use c_language_kind and flag_objc rather - than langhooks.name. - -2003-03-07 Michael Matz - - * df.h (enum df_ref_flags.DF_REF_STRIPPED): New. - (DF_FOR_REGALLOC): New. - * df.c (df_ref_record): Set DF_REF_STRIPPED. - (read_modify_subreg_p): Simplify. - (df_def_record_1, df_uses_record): Set DF_REF_MODE_CHANGE more often. - Use DF_FOR_REGALLOC. - * ra.h (struct web): New member subreg_stripped. - (invalid_mode_change_regs): Declare. - * ra.c (invalid_mode_change_regs): New. - (init_ra): Initialize it. - * ra-build.c (init_one_web_common, remember_web_was_spilled): Use it. - Use CANNOT_CHANGE_MODE_CLASS as ifdef guard. - (reinit_one_web, parts_to_web_1): Deal with subreg_stripped. - * ra-colorize.c (colorize_one_web): Use invalid_mode_change_regs. - Use CANNOT_CHANGE_MODE_CLASS as ifdef guard. - -2003-03-07 Richard Earnshaw - - * arm.md (addsf3, adddf3, subsf3, subdf3, mulsf3, muldf3, negsf2) - (negdf2, abssi2, abssf2, absdf2, floatsisf2, floatsidf2) - (fix_truncsfsi2, fix_truncdfsi2, truncdfsf2): Moved back into main - machine description file from ... - * cirrus.md: ... here. - -2003-03-06 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Don't use - reg_overlap_mentioned_p. - -2003-03-06 Geoffrey Keating - - * c-pch.c: Include langhooks.h. - (IDENT_LENGTH): New. - (get_ident): New. - (pch_ident): Delete. - (pch_init): Use get_ident, IDENT_LENGTH. - (c_common_valid_pch): Likewise. Also, use actual language - in warning message. - * Makefile.in (c-pch.o): Add langhooks.h to dependencies. - - * objc/config-lang.in (gtfiles): Add objc-act.c. Remove duplicate - c-parse.in. - * objc/Make-lang.in (objc/objc-act.o): Add dependency on - gt-objc-objc-act.h. - (gt-objc-objc-act.h): New rule. - * objc/lang-specs.h: Support PCH. - * objc/objc-act.c: Include gt-objc-objc-act.h. - (objc_add_static_instance): Move num_static_inst out, mark for PCH. - (build_selector_reference_decl): Move idx out, mark for PCH. - (build_class_reference_decl): Likewise. - (build_objc_string_decl): Move *_idx out, mark for PCH. - (build_tmp_function_decl): Move xxx out, mark for PCH. - -2003-03-06 Dale Johannesen - - * config/rs6000/rs6000.c (rs6000_binds_local_p): Consider - global functions for inlining on Darwin. - -2003-03-06 Vladimir Makarov - - * haifa-sched.c (schedule_block): Don't call reorder when sorting - is prohibited. - -2003-03-06 Neil Booth - - * Makefile.in (c-ppoutput.o): Update. - * c-common.h (init_pp_output): New. - (preprocess_file): Update. - * c-lex.c (init_c_lex): Move mbchar initialization to cpplib. - Register builtins. - * c-opts.c (c_common_init): Call init_pp_output if preprocessing. - Make call to cpp_read_main_file common to whether preprocessing - or not. Don't register builtins. - * c-ppoutput.c: Include c-pragma.h. - (setup_callbacks): Rename init_pp_output. - (preprocess_file): No longer setup callbacks or call - cpp_read_main_file. - * cpphash.h (_cpp_init_mbchar): New. - * cppinit.c (init_library): Call _cpp_init_mbchar. - * cpplex.c (_cpp_init_mbchar): New. - -2003-03-06 Roger Sayle - - * emit-rtl.c (gen_lowpart): When requesting the low-part of a - MEM, try loading the MEM into a register and taking the low-part - of that, to help CSE see the use of the MEM in its true mode. - -2003-03-05 Tom Tromey - - * config/stormy16/stormy16.h (DWARF_LINE_MIN_INSTR_LENGTH): - Define. - -2003-03-05 Nick Clifton - - * config/stormy16/stormy16.md ("*eqbranchsi"): Remove '+' on - operand 2. - ("*ineqbranchsi"): Likewise. - -2003-03-05 Andrew Haley - - * config/stormy16/stormy16.c (xstormy16_expand_prologue): Delete - mem_fake_push_rtx. Instead construct a SEQUENCE to show the - register store followed by a stack increment. - -2003-03-05 Chris Moller - - * config/stormy16/stormy16.c (REG_NEEDS_SAVE): added a term - to inhibit saving CARRY_REGS. - - * config/stormy16/stormy16.c (xs_hi_general_operand): - added predicate to detect and error-out on out-of-range - const_ints for movhi. - * config/stormy16/stormy16.md (movhi): use - xs_hi_general_operand. - - * config/stormy16/stormy16.c (xstormy16_expand_prologue): - added a check for local vbl size overflow. - * config/stormy16/stormy16.c (xs_hi_nonmemory_operand): - added predicate to detect and error-out on out-of-range - const_ints for addhi and subhi. - * config/stormy16/stormy16.md (addhi3, addchi4, addchi5, - subhi3, subchi4, subchi5): used xs_hi_nonmemory_operand. - - * config/stormy16/stormy16.c (xstormy16_legitimate_address_p): - add a term to accept PRE_MODIFY addresses. - * config/stormy16/stormy16.c (xstormy16_expand_move): - add code to expand PRE_MODIFY addresses to an add followed - by a move. - -2003-03-06 Jason Merrill - - * tree-inline.c (inlinable_function_p): Revert earlier change - pending investigation. - -2003-03-06 Kazu Hirata - - * config/h8300/h8300.md (a new peephole2): New. - -2003-03-06 Jan Hubicka - - * cgraph.c (cgraph_node): Do not confuse nested functions and methods. - -2003-03-06 Zdenek Dvorak - - * dwarf2out.c (size_of_die): Compute size of external reference to - die correctly. - -2003-03-06 Hans-Peter Nilsson - - * config/mmix/mmix.md ("*movcc_expanded"): New pattern. - ("movcc", "movcc_uns", "movcc_fp", "movcc_fpeq", "movcc_fun"): New - expanders. - -2003-03-05 Roger Sayle - - * expr.h (lang_expand_expr): Delete obsolete prototype. - -2003-03-05 Kazu Hirata - - * emit-rtl.c (gen_highpart_mode): Fix a comment typo. - -2003-03-05 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Generalize to - accept a memory operand. - -2003-03-05 Olivier Hainque - - * config/alpha/alpha.h (PRINT_OPERAND_PUNCT_VALID_P): Add '+'. - * config/alpha/alpha.c (print_operand, case '+'): New. - * config/alpha/alpha.md (call_osf_1_noreturn): Document and use. - (call_value_osf_1_noreturn): Likewise. - -2003-03-05 Richard Kenner - - * stmt.c (fixup_gotos): Change meaning of DONT_JUMP_IN. - (expand_end_bindings): Likewise. - -2003-03-05 John David Anglin - - * pa.md (return_external_pic): Add !TARGET_PA_20 to constraint. - (epilogue): Don't generate return_external_pic when emitting PA 2.0 - code. - -2003-03-05 Aldy Hernandez - - * doc/tm.texi: Document TARGET_DWARF_REGISTER_SPAN. - - * config/rs6000/rs6000.c (rs6000_dwarf_register_span): New. - - * hooks.c (hook_rtx_rtx_null): New. - - * hooks.h (hook_rtx_rtx_null): Protoize. - - * target-def.h (TARGET_DWARF_REGISTER_SPAN): New macro. - (TARGET_INITIALIZER): Add TARGET_DWARF_REGISTER_SPAN. - - * target.h (struct gcc_target): Add dwarf_register_span. - - * dwarf2out.c (multiple_reg_loc_descriptor): New. - (one_reg_loc_descriptor): New. - (reg_loc_descriptor): Add support for values that span more than - one register. - -2003-03-05 Jan Hubicka - - * Makefile.in (calls.o, toplev.o alias.o): Depend on cgraph.h - * alias.c: Include cgraph.h - (mark_constant_function): Use cgraph_rtl_info. - * calls.c: Include cgraph.h - (flags_from_decl_or_type): Use cgraph_rtl_info to find pure and const - calls. - (expand_call): Use cgraph_rtl_info to set preferred stack boundary. - * cgraph.c (cgraph_rtl_info): New function. - * cgraph.h (cgraph_rtl_info): Declare - (cgraph_rtl_info): Likewise. - * function.h (struct function): Add recursive_call_emit. - * toplev.c: Include cgraph.h. - (rest_of_compilation): Set preferred_incoming_stack_boundary. - -2003-03-05 Kazu Hirata - - * config/h8300/h8300.c (output_simode_bld): Clear the - destination first if possible. - * config/h8300/h8300.md (extzv_1_r_h8300hs): Add an - alternative. - (extzv_1_r_inv_h8300hs): Likewise. - -2003-03-05 Zdenek Dvorak - - * basic-block.h (EDGE_IRREDUCIBLE_LOOP, EDGE_ALL_FLAGS): New. - * cfg.c (dump_edge_info): Add EDGE_IRREDUCIBLE_LOOP flag dump. - * cfgloop.c (flow_loop_free): Made global. - (establish_preds): New static function. - (flow_loop_tree_node_add): Handle subloops of added loop correctly. - (get_loop_exit_edges): New. - (verify_loop_structure): Verify EDGE_IRREDUCIBLE_LOOP flags. - * cfgloop.h (flow_loop_free, get_loop_exit_edges, unloop): Declare. - * cfgloopanal.c (mark_irreducible_loops): Mark edges in irreducible - loops. - * cfgloopmanip.c (loop_delete_branch_edge): Allow to test for - removability of an edge. - (fix_irreducible_loops): New static function. - (find_path, remove_path): Add ability to remove enclosing loops. - (unloop): New. - (copy_bbs, duplicate_loop_to_header_edge): Use EDGE_IRREDUCIBLE_LOOP - flags. - * cfgrtl.c (verify_flow_info): Handle EDGE_IRREDUCIBLE_LOOP flag. - * loop-unroll.c (peel_loops_completely): Do not duplicate loop if - not neccessary. - (decide_peel_completely, peel_loops_completely): Allow complete peeling - of non-duplicable once rolling loops. - * loop-unswitch.c (unswitch_loop): Update EDGE_IRREDUCIBLE_LOOP flags. - -2003-03-05 J"orn Rennecke - - * sh.h (OVERRIDE_OPTIONS): For TARGET_SHMEDIA, the minimum value - for align_jumps is 4. - - (SECONDARY_INPUT_RELOAD_CLASS): If reloading a PLUS into FPUL, - use GENERAL_REGS. - -2003-03-05 Stephane Carrez - - * config/m68hc11/m68hc11.h (PAD_VARARGS_DOWN): Define and return - according to va_arg type. - (EXPAND_BUILTIN_VA_ARG): Remove. - * config/m68hc11/m68hc11.c (m68hc11_va_arg): Remove. - * config/m68hc11/m68hc11-protos.h (m68hc11_va_arg): Remove. - -2003-03-05 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_variable_issue): Remove unnecessary - else clauses. - -2003-03-05 Michael Matz - - * i386/i386.c (ix86_save_reg): Also test - current_function_uses_const_pool. - -2003-03-05 Michael Matz - - * unwind.h: Add the GPL exception. - * Makefile.in (USER_H): Add unwind.h. - -2003-03-05 Eric Botcazou - - PR c/9799 - * c-typeck.c (push_init_level): Add sanity check. - -2003-03-05 Jan Hubicka - - * toplev.c (rest_of_compilation): Defer RTL compilation only when - RTL inlining is done. - - * cgraphunit.c (cgraph_mark_local_functions): New local function. - (cgraph_optimize): Mark local functions. - * i386-protos.h (init_cumulative_args): Update prototype. - * i386.c (init_cumulative_args): Use register passing convention for - local functions. - - * cgraph.c (cgraph_global_info_ready): New global variable - (cgraph_local_info, cgraph_global_info): New functions. - * cgraph.h (struct cgraph_local_info, cgraph_global_info): New - structures. - (cgraph_local_info, cgraph_global_info, cgraph_global_info_ready): - Declare. - * cgraphunit.c (cgraph_finalize_function): Set inline_many. - (cgraph_mark_functions_to_output): Use inline_many. - (cgraph_expand_function): Free DECL_SAVED_TREE uncondtionally. - (cgraph_expand_functions): Expand inline functions last. - (cgraph_optimize): Do not emit uneeded functions. - -2003-03-04 Steve Ellcey - - * expr.c (convert_modes): Check for legal hard register. - -2003-03-04 Tom Tromey - - * doc/sourcebuild.texi (Front End Directory): Document tags. - * configure: Rebuilt. - * configure.in (target_list): Added tags. - * Makefile.in (TAGS): Depend on lang.clean. Include subdirectory - TAGS files by reference. - * objc/Make-lang.in (objc.tags): New target. - -2003-03-04 Zdenek Dvorak - - * gcov-io.h (gcov_save_position, gcov_reserve_length, gcov_resync, - gcov_skip, gcov_skip_string, gcov_write_unsigned, gcov_write_counter, - gcov_write_string, gcov_read_unsigned, gcov_read_counter, - gcov_read_string, gcov_write_length): Modified to enable reading/ - writing of whole .da file just once. - (da_file_open, da_file_close, da_file_eof, da_file_error, - da_file_position, da_file_seek, da_file_write, da_file_read): New - functions. - (actual_da_file, actual_da_file_position, actual_da_file_length, - actual_da_file_buffer, actual_da_file_buffer_size): New static - functions. - * libgcov.c (gcov_exit): Modified to read/write the whole .da file at - just once. - - -2003-03-04 Andreas Schwab - - * config/m68k/m68k.c (m68k_output_function_prologue): Fix CFA - offset without frame pointer. - -2003-03-04 Steve Ellcey - - * expr.c (expand_expr): Call promote_mode to set unsignedp. - -2003-03-04 Daniel Jacobowitz - - * configure.in: Don't always define TARGET_SYSTEM_ROOT. - * configure: Regenerated. - * gcc.c: Check whether TARGET_SYSTEM_ROOT is defined. - -2003-03-04 Andreas Jaeger - - * configure.in: Check for . - * configure: Regenerated. - - * config.in: Define HAVE_MEMCHECK_H. - - * ggc-common.c: Use if available instead of - . - * ggc-page.c: Likewise. - * cppfiles.c: Likewise. - -2003-03-04 Kazu Hirata - - * config/h8300/h8300.md (*extzv_8_8): Fix cc and lengths. - -2003-03-04 Eric Botcazou - - PR c/9262 - * c-typeck.c (do_case): Attach the first case label to the SWITCH_BODY. - (c_finish_case): Rechain the next statements to the SWITCH_STMT. - -2003-03-04 Jan Hubicka - - * doc/invoke.texi: Document that unit-at-a-time is enabled for -O3 - * toplev.c (parse_options_and_default_flags): Enable flag_unit_at_a_time - for -O3. - -2003-03-04 Nathanael Nerode - - * configure.in: Delete three unused variables. Move a variable - definition closer to its use. Simplify use_collect2 logic. Start to - organize. Simplify tests for in-tree gas and ld. - * configure: Regenerate. - -2003-03-04 Neil Booth - - * Makefile.in: Update. - * c-common.c (flag_no_line_commands, flag_no_output, - flag_dump_macros, flag_dump_includes): New. - * c-common.h (flag_no_line_commands, flag_no_output, - flag_dump_macros, flag_dump_includes, preprocess_file): New. - (init_c_lex): Update prototype. - * c-lex.c (init_c_lex): Update prototype; move some code to - c_common_init. - * c-opts.c (preprocess_file): Subsume into c_common_init. - (c_common_decode_option): Update flags. - (c_common_init): Move code from preprocess_file and init_c_lex. - (sanitize_cpp_opts): Update. - * c-ppoutput.c: New, cppmain.c almost verbatim. - * cpphash.h (struct printer): Remove. - (struct cpp_reader): Remove print. - * cpplib.h (dump_none, dump_only, dump_names, dump_definitions, - cpp_preprocess_file): Remove. - (struct cpp_options): Remove no_output, no_line_commands, dump_macros - and dump_includes. - * cppmain.c: Remove. - * doc/passes.texi: Update. - -2003-03-04 John David Anglin - - * function.c (STACK_ALIGNMENT_NEEDED): New macro. Default to 1. - (assign_stack_local_1): Perform overall stack alignment only when - STACK_ALIGNMENT_NEEDED is nonzero. - * doc/tm.texi (STACK_ALIGNMENT_NEEDED): Document. - - * pa.c (compute_frame_size): Rename fsize to size. Account for - alignment to a word boundary before general register save block. Only - account for double-word alignment before floating point register save - block if one or more are saved. Don't allocate space for %r3 when - frame pointer is needed. - (hppa_expand_prologue): Include alignment to word boundary in local - frame size. - * pa.h (STARTING_FRAME_OFFSET): Define to 8 on both 32 and 64-bit ports. - (STACK_ALIGNMENT_NEEDED): Define. - -2003-03-04 Kevin Buettner - - * dwarf2out.c (rtl_for_decl_location): Don't return NULL_RTX for - global register variables. - -2003-03-04 Alexandre Oliva - - * reload.c (reload_adjust_reg_for_mode): New function. - (subst_reloads): Call it. - (operands_match_p): Adjust registers using HARD_REGNO_NREGS. - * reload.h (reload_adjust_reg_for_mode): Declare. - * reload1.c (emit_input_reload_insns, emit_output_reload_insns): - Call it. - -2003-03-03 James E Wilson - - * optabs.c (add_equal_note): Delete SUBREG_REG use. - Fixes PR c/7872. - -2003-03-03 Kazu Hirata - - * config/h8300/h8300.md (*ixorsi3_ashift_16): New. - (*ixorsi3_lshiftrt_16): New. - (*iorsi3_ashift_16): Remove. - -2003-03-03 Kazu Hirata - - * config/h8300/h8300.md (*extzv_8_8): Use '?' to simplify the - pattern. - -2003-03-03 Geoffrey Keating - - * doc/install.texi (Specific): Update entry for powerpc-darwin. - -2003-03-03 Richard Henderson - - * config/ia64/ia64.h (HAVE_AS_LTOFFX_LDXMOV_RELOCS): Default to 0. - -2003-03-03 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_multipass_dfa_lookahead): Delete. - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Delete. - (rs6000_variable_issue): Do not return negative value. - (rs6000_issue_rate): Uniformly set issue rate to 1 for first - scheduling pass. - -2003-03-03 Zdenek Dvorak - - * dwarf2out.c (dwarf2out_finish): Swap order of break_out_includes and - prune_unused_types calls. - -2003-03-03 Jason Merrill - - * tree-inline.c (find_builtin_longjmp_call): Save and restore - lineno and input_filename. - (find_alloca_call): Likewise. - (inlinable_function_p): Run the langhook earlier. - - * calls.c (compute_argument_addresses): Give the new MEMs a - minimum alignment of PARM_BOUNDARY. - -2003-03-03 J"orn Rennecke - - * config/sh/sh.h (EXTRA_SPECS): Add subtarget_asm_relax_spec and - subtarget_asm_isa_spec. - (SUBTARGET_ASM_RELAX_SPEC, SUBTARGET_ASM_ISA_SPEC): Define. - (ASM_SPEC): Define as SH_ASM_SPEC. - (SH_ASM_SPEC): New; take the role of ASM_SPEC, but safe from svr4.h. - Use subtarget_asm_relax_spec and subtarget_asm_isa_spec. - * config/sh/elf.h (ASM_SPEC): Use SH_ASM_SPEC. - (SUBTARGET_ASM_ISA_SPEC): Undef / define. - - * sh.h (OVERRIDE_OPTIONS): Set default values for align_loops - and align_jumps if not set. - Force align_jumps to be at least 2. - When relaxing, force align_functions to be at least the maximum of - align_loops, align_jumps and 4. - * sh.c (find_barrier, barrier_align): Honour align_jumps_log. - (sh_loop_align): Honour align_loops_log. - - * sh.md (length attribute): Use prev_nonnote_insn instead of PREV_INSN - to check for indirect_jump_scratch. - (indirect_jump_scratch): Add second set. - * sh.c (output_far_jump): Use prev_nonnote_insn instead of PREV_INSN - when looking for indirect_jump_scratch. - Extract scratch register taking new structure of indirect_jump_scratch - into account. - (gen_block_redirect): Set INSN_SCOPE for indirect_jump_scratch. - -2003-03-03 Jan Hubicka - - * calls.c (rtx_for_function_call): Take the address as an argument - (expand_call): Do not modify the expression. - - * toplev.c (rest_of_compilation): Avoid cfg_cleanup calls when not - optimizing. - -2003-03-03 Kazu Hirata - - * config/h8300/h8300.md (*ixorsi3_zext_hi): Restrict to - TARGET_H8300H and TARGET_H8300S. - -2003-03-03 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-03-03 Kazu Hirata - - * config/h8300/h8300.md (*extzv_8_8): Use shorter code when - operands[0] and operands[1] are different. - -2003-03-03 Kazu Hirata - - * reload1.c (reload_cse_move2add): Remove variable success. - -2003-03-02 Kaveh R. Ghazi - - * ggc-common.c (ggc_rlimit_bound): Cast RLIM_INFINITY to avoid - warnings. - -2003-03-02 Richard Henderson - - * configure.in (HAVE_AS_LTOFFX_LDXMOV_RELOCS): New ia64 test. - * config.in, configure: Rebuild. - * config/ia64/ia64.c (ia64_ld_address_bypass_p): Accept lo_sum. - * config/ia64/ia64.md (load_symptr): Use high/lo_sum for the - paired ldtoffx and ldxmov annotations. - (load_symptr_internal1): Remove. - (load_symptr_high, load_symptr_low): New. - -2003-03-02 Neil Booth - - * c-incpath.c (add_path): Fix sysp assignment. - -2003-03-02 Kurt Garloff - - * params.def: Introduce parameter max-inline-insns-rtl for - a separate limit for the RTL inliner. - * params.h: Likewise. - * integrate.c (function_cannot_inline_p): Use it. - * toplev.c (decode_f_option): Set multiple parameters - controlling inlining with -finline-limit. - * params.def: Fix orthographic and typographic errors. - * doc/invoke.texi: Document parameters controlling inlining - and the way -finline-limit sets multiple of them. - - * tree.h (struct tree_decl): Introduce inlined_function_flag, - recording whether the function became eligible for inlining - by a compiler flag rather than the declaration. - Provide DID_INLINE_FUNC macro to access it. - * c-decl.c (grokdeclarator): Set DID_INLINE_FUNC. - * cp/decl.c (grokfndecl): Likewise. - * toplev.c (rest_of_compilation): Likewise. - * cp/optimize (maybe_clone_body): Copy DID_INLINE_FUNC. - * print-tree.c (print_node): Report it. - * params.def: Introduce new max-inline-insns-auto limit. - * params.h: Likewise. - * tree-inline.c (inlinable_function_p): Apply it to functions - with DID_INLINE_FUNC set. - * toplev.c (decode_f_option): Initialize it from -finline-limit - value. - * doc/invoke.texi: Document new parameter. - -2003-03-02 Geoffrey Keating - - * fix-header.c (read_scan_file): Don't reference simplify_path. - -2003-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_override_options): Don't enable - min/max instructions by default as may result in reload errors. - -2003-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.md ("mulqi3"): Allow address register to - avoid reload problems; define split for it. - -2003-03-02 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_shift_operator): New function. - * config/m68hc11/m68hc11-protos.h (m68hc11_shift_operator): Declare. - * config/m68hc11/m68hc11.h (PREDICATE_CODES): Register. - * config/m68hc11/m68hc11.md ("rotrhi3", "rotlhi3"): New patterns for - rotatert and rotate. - ("rotrhi3_const", "rotlhi3_const"): Rename of old 'rotrhi3' insns. - ("*rotrhi3", "*rotlhi3"): New insn pattern for non-const rotatert. - ("*rotrhi3_addr"): New split for shift insns on address register. - ("*lshrhi3", "*ashrhi3", "*ashlhi3_2"): Use new split. - * config/m68hc11/larith.asm (___rotlhi3): New asm function. - (___rotrhi3): Likewise. - * config/m68hc11/t-m68hc11-gas (LIB1ASMFUNCS): Build them. - -2003-03-02 Neil Booth - - * toplev.c (aux_base_name): Moved from toplev.h. - (filename): Constify. - (lang_dependent_init): Don't duplicate name. - (process_options): Set aux_base_name here, not... - (do_compile): ...here. Change protoype. - (toplev_main): Move some code from do_compile. - * toplev.h: Remove aux_base_name. - -2003-03-02 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - iorxor_operator. - * config/h8300/h8300.c (print_operand): Handle 'c'. - (iorxor_operator): New. - * config/h8300/h8300.h (PREDICATE_CODES): Add iorxor_operator. - * config/h8300/h8300.md (*iorhi3_zext): Remove. - (*iorsi3_zexthi): Likewise. - (*iorsi3_zextsi): Likewise. - (*xorhi3_zextqi): Likewise. - (*xorsi3_zexthi): Likewise. - (*xorsi3_zextsi): Likewise. - (*ixorhi3_zext): New. - (*ixorsi3_zext_qi): Likewise. - (*ixorsi3_zext_hi): Likewise. - -2003-03-02 Neil Booth - - * c-incpath.c (remove_component_p, simplify_path): Move back to - cppfiles.c. - (remove_duplicates): Use cpp_simplify_path. - * c-incpath.h (simplify_path): Remove. - * c-lex.c: Don't include c-incpath.h. - (init_c_lex): Remove simplify_path. - * cppfiles.c (remove_component_p, cpp_simplify_path): Restore. - (find_or_create_entry, validate_pch): Revert. - -2003-03-02 Ashif Harji - - * gcc.c (default_compilers): Add -no-integrated-cpp flag to invoke - an external cpp during compilation. - (option_map): Likewise. - * objc/lang-specs.h (default_compilers): Similarly. - * doc/invoke.texi: Document -no-integrated-cpp flag. - -2003-03-02 Kazu Hirata - - * config/h8300/h8300.md (zero_extendqisi2): Change to an - expander. - (*zero_extendqisi2_h8300): New. - (*zero_extendqisi2_h8300hs): New. - (two splitters): New. - -2003-03-02 Kaveh R. Ghazi - - * fp-bit.h (float_to_usi): Fix condition wrapping prototype. - -2003-03-01 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Remove dead code. - -2003-03-01 Roger Sayle - - PR c++/9367 - * builtin-types.def (DEF_FUNCTION_TYPE_VAR_3): New macro. - (BT_FN_INT_CONST_STRING_VALIST_ARG, - BT_FN_INT_STRING_CONST_STRING_VALIST_ARG, - BT_FN_INT_CONST_STRING_CONST_STRING_VALIST_ARG, - BT_FN_INT_STRING_SIZE_CONST_STRING_VALIST_ARG, - BT_FN_INT_STRING_CONST_STRING_VAR, - BT_FN_INT_CONST_STRING_CONST_STRING_VAR, - BT_FN_INT_STRING_SIZE_CONST_STRING_VAR): New built-in types. - * builtin-attrs.def (ATTR_NONNULL_1, ATTR_NONNULL_2, - ATTR_NONNULL_3): Also include the nothrow attribute. - (sprintf, scanf, sscanf, vprintf, vsprintf, snprintf, - vsnprintf, vscanf, vsscanf): Don't define attributes here. - * builtins.def (putchar, puts): Make full C89 built-ins. - (snprintf, sprintf, scanf, sscanf, vprintf, vscanf, - vsscanf, vsnprintf, vsprintf): New built-ins. - * c-common.c (c_common_nodes_and_builtins): Handle new macro - DEF_FUNCTION_TYPE_VAR_3. - - * doc/extend.texi: Document these new built-in functions. - -2003-03-01 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-03-01 Richard Earnshaw - - * predict.c (estimate_bb_frequencies): Correctly set - real_values_initialized after initialization. - -2003-03-01 Neil Booth - - * Makefile.in (C_AND_OBJC_OBJS, c-incpath.o, c-lex.o, LIBCPP_OBJS, - cppinit.o, cppdefault.o, fix-header): Update. - * c-incpath.c: New file. - * c-incpath.h: New file. - * c-lex.c: Include c-incpath.h. - (init_c_lex): Register path simplifier. - * c-opts.c: Include cppdefault.h and c-incpath.h. - (TARGET_SYSTEM_ROOT, verbose, iprefix, sysroot, std_inc, - std_cxx_inc, quote_chain_split, add_prefixed_path): New. - (COMMAND_LINE_OPTIONS): Add more options from cpplib. - (missing_arg, c_common_decode_option): Handle them. - (c_common_post_options): Register include chains. - (print_help): Update. - * cppdefault.h (struct default include): Update. - Move some macros to ... - * cppdefault.c: ... here. - (cpp_include_defaults): Add extra field add_sysroot. - * cppfiles.c (include_file, search_from, find_or_create_entry, - cpp_included, find_include_file, remap_filename): Update for - renaming of search_path to cpp_path, and of the chain headers. - (remove_component_p, _cpp_simplify_pathname): Move to c-incpath.c. - * cpphash.h (struct search_path): Move to cpplib.h. - (struct cpp_buffer, struct cpp_reader): Update. - (_cpp_simplify_pathname): Remove. - * cppinit.c: Don't include prefix.h and cppdefault.h. - (INO_T_EQ, INO_T_COPY, path_include, append_include_chain, - remove_dup_dir, remove_dup_nonsys_dirs, remove_dup_dirs, - init_standard_includes, BRACKET, SYSTEM, AFTER, no_dir, - no_pth, cpp_handle_options): Remove. - (struct pending_option): Remove chain members. - (cpp_destroy, cpp_read_main_file, COMMAND_LINE_OPTIONS, - cpp_handle_option): Update. - * cpplib.h (struct cpp_path, cpp_set_include_chains): New. - (struct cpp_options): Remove quote_include, bracket_include, - include_prefix, include_prefix_len, verbose, ignore_srcdir, - no_standard_includes, no_standard_cplusplus_includes. - (struct cpp_callbacks): Add simplify_path. - (cpp_handle_options): Remove. - * fix-header.c: Include c-incpath.h. - (read_scan_file): Update to use c-incpath functionality. - * doc/passes.texi: Update. - -2003-03-01 Kazu Hirata - - * config/h8300/h8300.c (bit_operand): Accept MEM only if it - satisfies EXTRA_CONSTRAINT 'U'. - -2003-03-01 Kazu Hirata - - * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Take a scratch - register. - (*tst_extzv_memqi_1_n): Change to a splitter. - (a peephole2): Update. - -2003-03-01 Richard Earnshaw - - * predict.c (estimate_bb_frequencies): Initialize the sreal - constants once per compilation. - -2003-02-28 Richard Henderson - - * toplev.c (flag_eliminate_unused_debug_types): Enable by default. - -2003-02-28 scott snyder - - * flags.h: Add flag_eliminate_unused_debug_types. - * toplev.c: Add flag_eliminate_unused_debug_types. - (f_options): Add -feliminate-unused-debug-types. - * dwarf2out.c (struct file_table): Add emitted member. - (splice_child_die): Fix the parent pointer for the child being - spliced. - (lookup_filename): Maintain file_table.emitted array. Don't - output .file directive here. - (maybe_emit_file): (new) - (init_file_table): Set up file_table.emitted. - (dwarf2out_source_line): Use maybe_emit_file. - (dwarf2out_start_source_file): Use maybe_emit_file. - (dwarf2out_init): Use maybe_emit_file. - (prune_unused_types_walk_attribs): (new) - (prune_unused_types_mark): (new) - (prune_unused_types_walk): (new) - (prune_unused_types_prune): (new) - (prune_unused_types): (new) - (dwarf2out_finish): Call prune_unused_types if - flag_eliminate_unused_debug_types is set. - * doc/invoke.texi (Option Summary): Add - -feliminate-unused-debug-types. - (Debugging Options): Likewise. - -2003-02-28 Geoffrey Keating - - * doc/invoke.texi: Change .pch to .gch. - * cppfiles.c (open_file_pch): Likewise. - * gcc.c (default_compilers): Likewise. - -2003-02-28 Aldy Hernandez - - * floatlib.c: Remove. - -2003-02-28 Jason Merrill - - * stor-layout.c (variable_size): Leave a "minus 1" outside the - SAVE_EXPR. - -2003-02-28 David Edelsohn - - * config/rs6000/power4.md: Add compare bypass. - -2003-02-28 Jason Thorpe - - * config/netbsd.h: Update copyright years. - (NETBSD_CPP_SPEC): Define _REENTRANT and _PTHREADS if - -pthread is specified on the command line. - -2003-02-28 Dale Johannesen - - * loop.c (struct movable): Add insert_temp, shrink savemode. - (scan_loop): Accept invariants that require copying; mark as - insert_temp. - (combine_movables): Don't combine insert_temp movables. - (move_movables): Insert copies for insert_temp movables. - Don't record the info based on regno for insert_temp's. - -2003-02-28 Joel Sherrill - - PR 9638/other - * config/i386/i386.c (DEFAULT_PCC_STRUCT_RETURN): Ensure the - this constant defaults to 1. - -2003-02-28 Bob Wilson - - * config.gcc (xtensa-*-linux*): Add t-slibgcc-elf-ver to tmake_file. - -2003-02-28 Richard Earnshaw - - * arm.md (mulhisi3, mulhisi3addsi, mulhidi3adddi): Enable for any - ARMv5e processor, not just for XScale. Instructions are predicable. - (mulhisi3tb, mulhisi3bt, mulhisi3tt): New patterns for ARMv5e. - -2003-02-28 Nick Clifton - - * config/arm/arm.c (note_invalid_constants): Change parameter type - from bool to int. - -2003-02-28 Kazu Hirata - - * config/h8300/h8300.md (*tst_extzv_bitqi_1_n): Accept the - test of bit 7. - (*tst_extzv_memqi_1_n): Likewise. - (a peephole2): New. - -2003-02-28 Richard Sandiford - - * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Wrap in - #ifndef __mips16. - -2003-02-28 Jan Hubicka - - * combine.c (gen_lowpart_for_combine): Update handling of - subregs_of_mode - * flow.c (life_analysis, mark_used_regs): Likewise. - * regclass.c (subregs_of_mode): Turn into single bitmap. - (cannot_change-mode_set_regs, invalid_mode_change_p): Update - dealing with subregs_of_mode - * regs.h (subregs_of_mode): Update prototype. - -2003-02-28 Josef Zlomek - - * emit-rtl.c (set_reg_attrs_for_parm): New function. - * rtl.h (set_reg_attrs_for_parm): New exported function. - * function.c (assign_parms): Use set_reg_attrs_for_parm instead of - set_reg_attrs_from_mem. - -2003-02-27 Roger Sayle - Zack Weinberg - - * gcc.c (do_spec_1): Treat %U like %u for unique associations. - -2003-02-27 Kazu Hirata - - * reload1.c (sext_for_mode): Remove. - (reload_cse_move2add): Use trunc_int_for_mode instead of - sext_for_mode. - (move2add_note_store): Likewise. - Reset register information if we see a set in non-integer - mode. - -2003-02-27 David Edelsohn - - * config/rs6000/aix43.h (ASM_SPEC): Only emit -mppc64 if no -mcpu - option. - (ASM_CPU_SPEC): Use -m620 for Power3, Power4, 620, 630. - * config/rs6000/aix51.h: Same. - * config/rs6000/aix52.h: Same. - * config/rs6000/power4.md: Additional VMX bypasses. - -2003-02-27 Geert Bosch - - * toplev.c (print_version): Add indentation for GGC heuristics and - output after printing version information. - -2003-02-27 James E Wilson - - * combine.c (simplify_comparison): Require integral mode when - permuting SUBREG with AND. - -2003-02-27 Steve Ellcey - - * config/ia64/hpux.h (STARTFILE_PREFIX_SPEC): Remove. - -2003-02-27 Nick Clifton - - * config/arm/arm.md (extendsfdf2): Add pattern accidentally - deleted when cirrus instructions were added. - -2003-02-27 Jason Thorpe - - * config.gcc (*-*-netbsd[2-9]*, *-*-netbsdelf[2-9]*): Enable - POSIX thread support by default. - -2003-02-27 Roger Sayle - - * config/i386/cygwin.h: Don't include any other files directly. - * config/i386/mingw32.h: Don't include cygwin.h directly. - * config.gcc (cygwin, mingw32, uwin): Instead make these files - explicit in the tm_files variable. - -2003-02-27 Alan Modra - - * config/rs6000/rs6000.md: Add TI constant splitter. - -2003-02-26 Alexandre Oliva - - * builtins.c (purge_builtin_constant_p): Handle subreg of - constant_p_rtx too. - - * function.c (assign_stack_local_1): Truncate constant added to - frame_pointer_rtx or virtual_stack_vars_rtx for Pmode. - -2003-02-26 David Edelsohn - - * config.gcc: Add power4 to PowerPC with_cpu list. - -2003-02-26 Jan Hubicka - - * objc-act.c: (mark_referenced_methods): Fix compilation problem. - -2003-02-26 Zdenek Dvorak - - * gcov-dump.c (print_prefix): Fix signedness warning. - * gcov-io.h (struct counter_section, struct counter_section_data): New. - (struct function_info): n_arc_counts field removed, n_counter_sections, - counter_sections fields added. - (struct gcov_info): arc_counts, n_arc_counts fields removed, - n_counter_sections, counter_sections fields added. - * libgcov.c (gcov_exit, __gcov_flush): Add support for multiple - profile sections. - * profile.h (MAX_COUNTER_SECTIONS): New. - (struct section_info): New. - (struct profile_info): count_instrumented_edges, - count_edges_instrumented_now fields removed, n_sections, section_info - fields added. - (find_counters_section): Declare. - * profile.c (struct function_list): count_edges field removed, - n_counter_sections, counter_sections fields added. - (set_purpose, label_for_tag, build_counter_section_fields, - build_counter_section_value, build_counter_section_data_fields, - build_counter_section_data_value, build_function_info_fields, - build_function_info_value, build_gcov_info_fields, - build_gcov_info_value): New static functions. - (find_counters_section): New function. - (instrument_edges, get_exec_counts, compute_branch_probabilities, - branch_prob, create_profiler): Modified to support multiple profile - sections. - -2003-02-26 John David Anglin - - * pa.c (compute_frame_size): Don't assume PREFERRED_STACK_BOUNDARY - is 8 * STACK_BOUNDARY. - * pa.h (PREFERRED_STACK_BOUNDARY): Change to 128 on 64-bit port. - -2003-02-26 Michael Matz - - * ra-colorize.c (merge_moves): Fix list handling. - -2003-02-26 Nick Clifton - - * config/arm/arm.c (is_load_address): Rename to... - (arm_memory_load_p) ... this and make it check for SUBREGs and - constant loads that will be converted into loads from the - minipool. - (is_cirrus_insn): Rename to ... - (arm_cirrus_insn_p): ... this, for consistency. Replace test - of CIRRUS_NO with CIRRUS_NOT. - (cirrus_reorg): Use renamed functions. - (note_invalid_constants): Change from a void function to bool. - Add an extra parameter, saying whether the fixups should be - pushed. Return true if fixups are needed. - (arm_reorg): Use renamed functions. Use INSN_P. Replace test - of CIRRUS_NO with CIRRUS_NOT. - * config/arm/arm.h (FLOAT_WORDS_BIG_ENDIAN): Mention that - other floating point co-processors can also affect this. - * config/arm/arm.md ("type" attribute): Add mav_farith and - mav_dmult. Replace references to "cirrus_type" attribute with - "type". - * config/arm/cirrus.md ("cirrus_fpu" attribute): Delete. - ("cirrus_type" attribute): Delete - use "type" instead. - ("cirrus" attribute): Replace 'no' with 'not' and 'yes' with - 'normal'. - -2003-02-25 Jan Hubicka - - * objc-act.c: Include cgraph.h - (mark_referenced_methods): New function. - (objc_init): Call it. - * objc-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Set. - - * c-decl.c (finish_function): Honor can_defer_p even in unit-at-a-time - mode. - - * optabs.c (expand_fix): Do not widen the input operand. - - * expr.c (emit_group_store): Fix crash when converting single - register into complex register. - - * Makefile.in (jump.o, regclass.o, alias.o): Add dependency on timevar.h - * alias.c: Include timevar.h - (init_alias_analysis): Set timevar - * jump.c: Include timevar.h - (rebuild_jump_labels): Set timevar - * regcalss.c: Include timevar.h - (reg_scan): Set timevar - * timevar.def (TV_ALIAS_ANALYSIS, TV_REG_SCAN, TV_REBUILD_JUMP): New - -2003-02-26 Zdenek Dvorak - - * cse.c (count_reg_usage): Fix handling of REG_EQUAL notes. - - * Makefile.in (loop-unroll.o): New. - * cfgloop.h (UAP_PEEL, UAP_UNROLL, UAP_UNROLL_ALL): New. - (unroll_and_peel_loops): Declare. - * alias.c (init_alias_analysis): Flag_unroll_loops renamed to - flag_old_unroll_loops. - * loop.c (loop_invariant_p): Ditto. - * unroll.c (unroll_loop): Flag_unroll_all_loops renamed to - flag_old_unroll_all_loops. - * flags.h (flag_unroll_loops): Renamed to flag_old_unroll_loops. - (flag_unroll_all_loops): Renamed to flag_old_unroll_all_loops. - * params.def (PARAM_MAX_UNROLLED_INSNS): Default value changed. - (PARAM_MAX_AVERAGE_UNROLLED_INSNS, PARAM_MAX_UNROLL_TIMES, - PARAM_MAX_PEELED_INSNS, PARAM_MAX_PEEL_TIMES, - PARAM_MAX_COMPLETELY_PEELED_INSNS, PARAM_MAX_COMPLETELY_PEEL_TIMES, - PARAM_MAX_ONCE_PEELED_INSNS): New. - * toplev.h (flag_old_unroll_loops, flag_old_unroll_all_loops): New. - (flag_unroll_loops, flag_unroll_all_loops): Used for new unroller - instead of old one. - (flag_peel_loops): New. - (lang_independent_options): The new flags added. - (rest_of_compilation): Call new unroller. - (process_options): Setup flags for coexistence of old and new unroller. - * doc/invoke.texi: Document new options. - * doc/passes.texi: Document new unroller pass. - -2003-02-26 David Billinghurst - - * fixinc/fixincl.x: Regenerate - -2003-02-26 Josef Zlomek - - * function.c (assign_parms): Set reg_attrs for parameters passed in - registers. - -2003-02-26 Alan Modra - - PR target/9681 - * tlink.c (scan_linker_output): Drop leading '.' from symbol names. - -2003-02-25 David Edelsohn - - * config/rs6000/xcoff.h (ASM_FILE_START): Do not emit machine - pseudo-op. - -2003-02-25 Roger Sayle - - * combine.c (combine_simplify_rtx, simplfy_comparison): Use CC0_P. - * cse.c (invalidate_skipped_set): Likewise. - * integrate.c (subst_constants): Likewise. - * jump.c (reversed_comparison_code_parts): Likewise. - * loop.c (canonicalize_condition): Likewise. - * simplify-rtx.c (simplify_relational_operation): Likewise. - -2003-02-25 Roger Sayle - - * builtins.def (DEF_LIB_ALWAYS_BUILTIN, DEF_UNUSED_BUILTIN): Delete. - (abs, labs, fabs, fabsf, fabsl, abort, exit, _exit, _Exit): Use - the appropriate macro to define built-in function. - (fmod,fmodf,fmodl): New built-in functions. - - * doc/extend.texi (fmod,fmodf,fmodl): Document new built-ins. - -2003-02-25 Richard Henderson - - * config/i386/i386.c (function_arg): Pass variable sized - structures correctly on the stack. - -2003-02-25 Kazu Hirata - - * reload1.c (reload_cse_move2add): Use STRICT_LOW_PART if PLUS - does not reduce the cost of SET. - -2003-02-25 Franz Sirl - - PR target/9732 - * config/rs6000/rs6000.c (first_reg_to_save): Handle - PIC_OFFSET_TABLE_REGNUM for -fPIC too. - (rs6000_emit_prologue): Likewise. - (rs6000_emit_epilogue): Likewise. - * config/rs6000/rs6000.h (CONDITIONAL_REGISTER_USAGE): Make - PIC_OFFSET_TABLE_REGNUM a fixed register for -fPIC. - -2003-02-25 Richard Henderson - - * real.c (real_to_integer2): Force overflow result only for - unsigned overflow. - -2003-02-25 Kazu Hirata - - * gcse.c (cprop_jump): Revert the 2003-02-23 change. - -2003-02-25 Vladimir Makarov - Richard Henderson - - * sched-ebb.c (add_deps_for_risky_insns): Add the dependence when - there is no similar load. - -2003-02-25 Vladimir Makarov - Richard Henderson - - * sched-int.h (INSN_TRAP_CLASS, WORST_CLASS): Move them from - sched-rgn.c. - (add_forward_dependence): New function prototype. - - * sched-rgn.c (INSN_TRAP_CLASS, WORST_CLASS): Move them to - sched-init.h. - (CONST_BASED_ADDRESS_P, may_trap_exp, haifa_classify_insn): Move - them to haifa-sched.c. - - * haifa-sched.c (CONST_BASED_ADDRESS_P, may_trap_exp, - haifa_classify_insn): Move them from sched-rgn.c. - - * sched-deps.c (add_dependence): Return flag of creating a new - entry. - (add_forward_dependence): New function. - (compute_forward_dependences): Use the function. - - * sched-ebb.c (earliest_block_with_similiar_load): New function. - (add_deps_for_risky_insns): New function. - (schedule_ebb): Call the function. - -2003-02-20 Aldy Hernandez - - * doc/tm.texi: Document Rename TARGET_VECTOR_TYPES_COMPATIBLE to - TARGET_VECTOR_OPAQUE_P. Document accordingly. - - * testsuite/gcc.dg/20030218-1.c: Check that initialization of - opaque types fail. - - * c-typeck.c (comptypes): Change call to vector_types_compatible - to vector_opaque_p. - (convert_for_assignment): Call vector_opaque_p instead of - vector_types_compatible. - (really_start_incremental_init): Disallow initialization of opaque - types. - - * target-def.h: Remove TARGET_VECTOR_TYPES_COMPATIBLE. - Define TARGET_VECTOR_OPAQUE_P. - (TARGET_INITIALIZER): Same. - - * target.h (struct gcc_target): Remove vector_types_compatible. - Add vector_opaque_p. - - * config/rs6000/rs6000.c (rs6000_spe_vector_types_compatible): - Remove. - (is_ev64_opaque_type): Check for TARGET_SPE and make sure type is - a vector type. Change return type to bool. - (TARGET_VECTOR_TYPES_COMPATIBLE): Remove. - (TARGET_VECTOR_OPAQUE_P): Define. - - * cp/parser.c (cp_parser_init_declarator): Call vector_opaque_p - target hook. - Include target.h. - (cp_parser_init_declarator): Fix typo in function comments. - -2003-02-25 Jan Hubicka - - * Makefile.in (lcm.o): Add dependency on function.h - * lcm.c (function.h): Include. - * i386.c (machine_function, ix86_stack_locals, - * ix86_save_varrargs_registers) : Move to - ... - * i386.h (machine_function, ix86_stack_locals, - ix86_save_varrargs_registers): ... here; add optimize_mode_switching - (ix86_optimize_mode_switching): New. - * i386.md (fix patterns): Set ix86_optimize_mode_switching - -2003-02-25 Nick Clifton - - * config/d30v/d30v.c (d30v_init_cumulative_args): Fix typo. Name - of fourth arg is 'fndecl' not 'indirect'. Update comment - describing the function's parameters. - -2003-02-24 Jan Hubicka - - * combine.c (simplify_shift_const): Fix previous patch. - -2003-02-24 Jeff Law - - * i386.md (testdi_1_rex64): Discourage reload from using the %eax - alternative. - (testsi_1, testhi_1, testqi_1): Likewise. - -2003-02-24 Rainer Orth - - * config/alpha/osf.h (TARGET_OS_CPP_BUILTINS): Rename - __EXTERN_PREFIX to __PRAGMA_EXTERN_PREFIX. - * doc/extend.texi (Tru64 Pragmas): Reflect this. - - * fixinc/inclhack.def (alpha___extern_prefix): Indicate #pragma - extern_prefix support for Tru64 UNIX V5 . - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/sys/stat.h [ALPHA___EXTERN_PREFIX_CHECK]: New - testcase. - Fixes PR c/5059, c/6126, other/9671. - -2003-02-24 Roger Sayle - - * gcc.c (do_spec_1) ['{']: Handle pending argument upon return - from handle_braces in "%{...}". - -2003-02-24 Kaz Kojima - - * config/sh/sh.c (TARGET_HAVE_TLS): Conditionally define. - (prepare_move_operands): Handle TLS operands. - (tls_symbolic_operand): New. - (nonpic_symbol_mentioned_p): Handle TLS UNSPECs. - (legitimize_pic_address): Do nothing for the TLS symbol. - (sh_encode_section_info): Handle TLS case. - (sh_strip_name_encoding): Drop TLS encoding. - * config/sh/sh-protos.h (tls_symbolic_operand): Add prototype. - * config/sh/sh.h (SH_TLS_ENCODING): Define. - (TLS_SYMNAME_P, STRIP_TLS_ENCODING): Likewise. - (ASM_OUTPUT_LABELREF): Drop TLS encoding. - (OUTPUT_ADDR_CONST_EXTRA): Handle TLS UNSPECs. - * config/sh/sh.md: Define TLS UNSPEC constants. - (type): Add tls_load. - ("tls_global_dynamic", "tls_local_dynamic"): New insns. - ("sym2DTPOFF", "symDTPOFF2reg", "sym2GOTTPOFF"): New expanders. - ("tls_initial_exec"): New insn. - ("sym2TPOFF", "symTPOFF2reg"): New expanders. - ("load_gbr"): New insn. - - * configure.in (HAVE_AS_TLS): Add sh-*-* and sh[34]*-*-* cases. - * configure: Regenerate. - -2003-02-24 Alan Modra - - PR 9297, PR 9722 - * calls.c (store_one_arg): Revert 1999-02-16 change. Revert - 2000-12-17 change. Pass EXPAND_STACK_PARM to expand_expr. - * expr.h (enum expand_modifier): Define EXPAND_STACK_PARM. - (enum block_op_methods): Reorder for better store_expr optimization. - * expr.c (store_expr): Test bit 1 of "want_value" for call param - stores, test bit 0 for original want_value meaning. Pass - BLOCK_OP_CALL_PARM to emit_block_move when bit 1 set. Adjust - recursive calls, and calls to expand_param. - (expand_expr): Handle EXPAND_STACK_PARM modifier. When cse - expected, set target to 0 rather than to subtarget. Formatting. - -2003-02-23 Kazu Hirata - - * gcse.c (cprop_jump): Use the REG_EQUAL note if available. - -2003-02-23 Kaveh R. Ghazi - - * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Document - new default behavior. - * ggc-common.c: Include sys/resource.h. - (ggc_rlimit_bound): New function. - (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic): Update - defaults to account for rlimits. - -2003-02-22 Richard Henderson - - * i386.c, i386.h (TUNEMASK): Rename from CPUMASK. - -2003-02-22 Kelley Cook - - * i386.h, i386.c, i386.md (ix86_tune): Rename from ix86_cpu. - (ix86_tune_string): Rename from ix86_cpu_string. - -2003-02-22 Kelley Cook - - * config/i386/i386.c: Replace "mcpu" with "mtune". - * config/i386/i386.h (TARGET_OPTIONS): Likewise. - (CC1_CPU_SPEC): Likewise. New warning for "-mcpu". - * doc/invoke.texi (i386 and x86-64 Options): Replace "mcpu" - with "mtune". Note that "mcpu" is a deprecated synonym for "mtune". - -2003-02-23 Andreas Schwab - - * config.gcc: Delete references to m68k/t-linux and - m68k/t-linux-aout. - * config/m68k/t-linux, config/m68k/t-linux-aout: Removed. - -2003-02-22 Jan Hubicka - - * toplev.c (rest_of_compilation): Apply fotgotten hunk - of track scheduling patch. - -2003-02-22 Jan Hubicka - - * config/linux.h (TARGET_HAS_F_SETLKW): Define. - * config/alpha/linux.h (TARGET_HAS_F_SETLKW): Likewise - -2003-02-22 Jan Hubicka - - * c-decl.c (c_expand_body_1): Fix. - -2003-02-22 Jan Hubicka - - * expmed.c (expand_divmod): Undo sign extensions for unsigned operands - - * cfgcleanup.c (try_forward_edges): Don't check loop structures - when not optimizing. - (cleanup_cfg): Do not iterate trought delete_trivially_dead_insns - when not expensive. - * toplev.c (rest_of_compilation): Duplicate loop headers only when - optimizing; Delete trivially dead insns early; fix optimize check. - - * Makefile.in (c-decl.o, c-objc-common.o, cgraph.o, tree-inline.o): Add - dependency on cgraph.h - * c-decl.c: Include cgraph.h - (finish_function): Update call of tree_inlinable_function_p. - * c-objc-common.c: Include cgraph.h - * cgraph.h: New file. - * cgraphunit.c: New file. - * cgraph.c (cgraph_node, cgraph_edge): Move into cgraph.h - (cgraph_nodes, cgraph_n_nodes): Globalize. - (cgraph_finalize_function, cgraph_finalize_compilation_unit - cgraph_create_edges, cgraph_optimize, cgraph_mark_needed_node): - Move into cgraphunit.c - * tree-inline.c: Include cgraph.h - * tree-inline.c: Include cgraph.h - -2003-02-22 Josef Zlomek - - * config/i386/i386.md: Use gen_lowpart instead of gen_rtx_REG - for copying a register. - -2003-02-22 Steven Bosscher - - PR other/3782 - * toplev.c (process_options): If flag_detailed_statistics is set, - then set time_report as well. - - PR c/8828 - * jump.c (never_reached_warning): Don't fall through BARRRIER - insns. Update comments to reflect what the function really does. - -2003-02-21 Roger Sayle - - * fold-const.c (omit_one_operand): No longer static. - * tree.h (omit_one_operand): Prototype here. - (div_and_round_double): Keep fold-const.c prototypes together. - * builtins.c (builtin_mathfn_code): Handle binary built-in - funtions, such as "pow" and "atan2". - (fold_builtin): Optimize both pow(x,0.0) and pow(1.0,y) to 1.0. - Simplify optimizations using "type" the builtin's return type. - -2003-02-22 Hans-Peter Nilsson - - * config/cris/cris.c (cris_rtx_costs): Blockify dangling else. - Fix functionalization typo. - - * regmove.c (optimize_reg_copy_1): Do not replace a hard register - in an asm. - -2003-02-21 Kaveh R. Ghazi - - * Makefile.in (ggc-common.o): Depend on $(PARAMS_H) - * doc/invoke.texi (ggc-min-expand, ggc-min-heapsize): Update - documentation. - * ggc-common.c: Include params.h - (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic, - init_ggc_heuristics): New functions. - * ggc.h (ggc_min_expand_heuristic, ggc_min_heapsize_heuristic, - init_ggc_heuristics): Prototype. - * toplev.c (print_version): Output GGC heuristics. - (parse_options_and_default_flags): Call init_ggc_heuristics. - -2003-02-22 Jan Hubicka - - * i386.c (def_builtin): Special case 64bit builtins. - (MASK_SSE164, MASK_SSE264): New constants. - (builtin_description): Add 64bit builtins. - (ix86_init_mmx_sse_builtins): Likewise. - * i386.h (enum ix86_builtins): Likewise. - * i386.md (cvtss2siq, cvttss2siq, cvtsd2siq, cvttsd2siq, cvtsi2sdq, - sse2_movq2dq_rex64, sse2_movsq2q_rex64): New. - (sse2_movq2dq, sse2_movsq2q): Disable for 64bit. - * mmintrin.h (_mm_cvtsi64x_si64, _mm_set_pi64x, _mm_cvtsi64_si64x): New. - * xmmintrin.h (_mm_cvtss_si64x, _mm_cvttss_si64x, _mm_cvtsi64x_ss, - _mm_set_epi64x, _mm_set1_epi64x, _mm_cvtsd_si64x, _mm_cvttsd_si64x, - _mm_cvtsi64x_sd, _mm_cvtsi64x_si128, _mm_cvtsi128_si64x): New. - -2003-02-22 Jan Hubicka - - * i386.c (builtin_description): Add __builtin_ia32_paddq and - __builtin_ia32_psubq. Fix __builtin_ia32_paddq128 - and __builtin_ia32_psubq128. - * i386.h (IX86_BUILTIN_PADDQ, IX86_BUILTIN_PSUBQ): New. - * i386.md (addv*, mmx_ior*, mmx_xoe*, mmx_and*): Add missing '%'. - (mmx_adddi3, mmx_subdi3): New. - * mmintrin.h (_mm_add_si64, _mm_sub_si64): New. - * xmmintrin.h (_mm_movepi64_pi64): New. - (_mm_add_epi64, _mm_sub_epi64): fix. - (_mm_mul_pu16): Rename to... - (_mm_mul_su32): ... this one. - - * builtins.c (expand_builtin_expect): Do not predict - flag_guess_branch_prob is not set. - * c-semantics.c (expand_stmt): Likewise. - * predict.c (predict_insn): Likewise. - * stmt.c (expand_continue_loop): Likewise. - * toplev.c (rest_of_compilation): Do not call - note_prediction_to_br_prob and note_prediction_to_br_prob - when not optimizing. - -2003-02-21 Jan Hubicka - - * cfgrtl.c (commit_edge_insertions): Call - find_many_sub_basic_block only when some code has been emitted. - (commit_edge_insertions_watch_calls): Bring into sync with - commit_edge_insertions - -2003-02-21 J"orn Rennecke - - * sh.h (OVERRIDE_OPTIONS): Fix code that clears 'e' register class. - - * sh.md (binary_sf_op): Use extra constant operand instead of - negating constant operand 4. - * sh.c (sh_expand_binop_v2sf): Supply it. - -2003-02-21 Zack Weinberg - - * cpphash.h (struct lexer_state): Add directive_wants_padding. - * cpplib.c (_cpp_handle_directive): Set directive_wants_padding - for directives of type INCL. - (glue_header_name, parse_include): Use get_token_no_padding. - * cppmacro.c (replace_args): If directive_wants_padding, - provide padding tokens. - -2003-02-21 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-02-21 Jan Hubicka - - * cfgrtl.c (commit_one_edge_insertion): Only mark BB for splitting. - (commit_edge_insertions): Call find_many_sub_basic_blocks - - * reg-stack.c (convert_regs): Cleax aux for blocks. - -2003-02-21 Jan Hubicka - - * toplev.c (parse_options_and_default_flags): Undo accidental commit. - -2003-02-21 Glen Nakamura - - PR optimization/8613 - * builtins.c (expand_builtin): Emit postincrements before expanding - builtin functions. - -2003-02-21 Ben Elliston - - PR other/5634 - * doc/install.texi (Configuration): Explain using $HOME instead of - the ~ metacharacter when referring to home directories. - -2003-02-20 Alexandre Oliva - - * configure.in (TARGET_SYSTEM_ROOT): Set default to - ${exec_prefix}/${target_alias}/sys-root. Match explicit - '${exec_prefix}' (in addition to the expansion thereof) as - relocatable. - * configure: Rebuilt. - -2003-02-20 Kazu Hirata - - * config/h8300/h8300.md (addhi3_incdec): Change the name to - *addhi3_incdec. - (addsi3_incdec): Change the name to *addsi3_incdec. - -2003-02-20 Roger Sayle - - * explow.c (force_reg): Avoid useless REG_EQUAL notes. - -2003-02-20 Toon Moene - - PR fortran/9038 - * c-opts.c (sanitize_cpp_opts): Add Fortran front end - options to be ignored. - (c_common_decode_option): Ignore them when preprocessing. - -2003-02-20 Jan Hubicka - - * toplev.c (flag_sched2_use_superblocks, flag_sched2_use_traces): New - global variables. - (lang_independent_options): Add -fsched2-use-superblocks - -fsced2-use-traces. - (rest_of_compilation): Deal with it. - * invoke.texi (-fsched2-use-traces, fsched2-use-superblocks): Declare. - * flags.h (flag_sched2_use_superblocks, flag_sched2_use_traces): - Declare. - * rtl.h (reg_to_stack): Update prototype. - * reg-stack.c (reg_to_stack): Return when something has changed; - update liveness when executing after superblock scheduling. - - * combine.c (simplify_shift_const): Simplify few special cases - into constants. - -2003-02-20 David Edelsohn - - * config/rs6000/rs6000.md: (attr "type"): Add fast_compare. - (add.,subf.,neg.): Change attribute to fast_compare. - All DFA descriptions updated. - -2003-02-20 Nathan Sidwell - - Change base class access representation. - * tree.h (TREE_VIA_PUBLIC, TREE_VIA_PROTECTED, - TREE_VIA_PRIVATE): Remove. - (BINFO_BASEACCESSES): New binfo elt. - (BINFO_BASEACCESS): New accessor. - (BINFO_ELTS): Increase. - (TI_ACCESS_PUBLIC, TI_ACCESS_PROTECTED, TI_ACCESS_PRIVATE): New. - (access_public_node, access_protected_node, - access_private_node): New global nodes. - * tree.c (build_common_tree_nodes_2): Initialize access nodes. - * dbxout.c (dbxout_type): Adjust. - * dwarf2out.c (gen_inheritance_die): Add access parameter. - (gen_member_die): Adjust. - * dwarfout.c (output_inheritance_die): ARG is array of two trees. - (output_type): Adjust. - * tree-dump.c (dequeue_and_dump): Adjust binfo dumping. - - Change base class access representation. Share virtual base - binfos. - * cp/call.c (build_special_member_call): Remove binfo_for_vbase - call. - * cp/class.c (build_base_path): Likewise. - (build_primary_vtable): Adjust BINFO_NEW_VTABLE_MARKED use. - (build_secondary_vtable): Remove FOR_TYPE arg. Adjust. - (make_new_vtable): Adjust. - (force_canonical_binfo_r): Delete. - (force_canonical_binfo): Delete. - (mark_primary_virtual_base): Delete. - (dfs_unshared_virtual_bases): Delete. - (mark_primary_bases): Adjust. - (maybe_warn_about_overly_private_class): Adjust. - (dfs_base_derived_from): Delete. - (base_derived_from): Follow the inheritance chain. - (struct find_final_overrider_data): Add vpath member. - (dfs_find_final_overrider): Adjust. - (dfs_find_final_overrider_q, dfs_find_final_overrider_post): New. - (find_final_overrider): Adjust. - (update_vtable_entry_for_fn): Adjust. - (modify_all_vtables): Adjust. - (walk_subobject_offsets): Adjust. - (layout_nonempty_base_or_field): Adjust. - (layout_empty_base): Remove last parameter. Adjust. - (build_base_field): Adjust. - (build_base_fields): Adjust. - (propagate_binfo_offsets): Remove last parameter. Adjust. - (dfs_set_offset_for_unshared_vbases): Delete. - (layout_virtual_bases): Adjust. - (finish_struct_1): Adjust. - (init_class_processing): Don't init access nodes. - (dfs_get_primary_binfo): Delete. - (get_primary_binfo): Adjust. - (dump_class_hierarchy_r): Remove most derived arg, add IGO - parameter. Adjust. - (dump_class_hierarchy): Adjust. - (finish_vtbls): Adjust. - (get_original_base): Delete. - (build_vtt_inits): Adjust. - (dfs_build_secondary_vptr_vtt_inits): Adjust. - (dfs_ctor_vtable_bases_queue_p): Adjust. - (build_ctor_vtbl_group): Adjust. - (dfs_accumulate_vtbl_inits): Adjust. - (build_vtbl_initializer): Adjust. - (build_vbase_offset_vtbl_entries): Adjust. - (add_vcall_offset_vtbl_entries_1): Adjust. - * cp/cp-tree.h (CPTI_ACCESS_*): Remove. - (access_*_node): Remove. - (CANONICAL_BINFO): Delete. - (BINFO_UNSHARED_MARKED): Remove. - (BINFO_MARKED): Set LANG_FLAG_0 directly. - (SET_BINFO_MARKED, CLEAR_BINFO_MARKED): Delete. - (BINFO_VTABLE_PATH_MARKED): Set LANG_FLAG_3 directly. - (SET_BINFO_VTABLE_PATH_MARKED, CLEAR_BINFO_VTABLE_PATH_MARKED): - Delete. - (BINFO_NEW_VTABLE_MARKED): Set LANG_FLAG_4 directly. - (SET_BINFO_NEW_VTABLE_MARKED): Adjust. - (SET_BINFO_PUSHDECLS_MARKED, CLEAR_BINFO_PUSHDECLS_MARKED): - Delete. - (BINFO_DEPENDENT_BASE_P): New. - (dfs_walk, dfs_walk_real): Queue function takes derived binfo and - index. - (markedp, unmarkedp): Adjust. - (dfs_unmarked_real_bases_queue_p, dfs_marked_real_bases_queue_p, - dfs_skip_vbases, marked_vtable_pathp, unmarked_vtable_pathp, - find_vbase_instance, binfo_for_vbase): Delete. - (copied_binfo, original_binfo): Declare. - (finish_base_specifier): Add virtual_p arg. - (unshare_base_binfos): Delete. - (copy_base_binfos): Declare. - (reverse_path): Delete. - * cp/decl.c (xref_basetypes): Access and virtuality passed - differently. Don't copy direct base binfos here. Call - copy_base_binfos. - * cp/init.c (dfs_initialize_vtbl_ptrs): Adjust. - (initialize_vtbl_ptrs): Adjust. - (expand_member_init): Adjust. - * cp/parser.c (cp_parser_base_specifier): Adjust. - * cp/pt.c (instantiate_class_template): Adjust. - (get_template_base_recursive): Adjust. - * cp/rtti.c (get_pseudo_ti_init): Adjust. - (get_pseudo_ti_desc): Adjust. - * cp/tree.c (unshare_base_binfos): Rename to ... - (copy_base_binfos): ... here, reimplement. - (make_binfo): Set BINFO_DEPENDENT_BASE_P. - (reverse_path): Remove. - * cp/typeck.c (get_delta_difference): Adjust error messages. - * cp/semantics.c (finish_base_specifier): Add virtual arg, adjust. - * cp/search.c (lookup_base_r): Adjust. - (dynamic_cast_base_recurse): Adjust. - (canonical_binfo): Remove. - (dfs_canonical_queue): Remove. - (dfs_assert_unmarked_p): Remove. - (assert_canonical_unmarked): Remove. - (shared_marked_p, shared_unmarked_p): Remove. - (BINFO_ACCESS, SET_BINFO_ACCESS): Use TREE_PUBLIC & TREE_PRIVATE. - (dfs_access_in_type): Adjust. - (access_in_type): Adjust. - (dfs_accessible_queue_p): Adjust. - (dfs_accessible_p): Adjust. - (is_subobject_of_p_1, is_subobject_of_p): Remove. - (struct lookup_field_info): Remove from_dep_base_p field. - (lookup_field_queue_p): Adjust, test BINFO_DEPENDENT_BASE_P. - (lookup_field_r): Remove dependent base code. - (lookup_member): Likewise. - (dfs_walk, dfs_walk_real): Add access arg to queue fn. - (dfs_unmarked_real_bases_queue_p): Remove. - (dfs_marked_real_bases_queue_p): Remove. - (dfs_skip_vbases): Remove. - (dfs_get_pure_virtuals): Adjust. - (markedp, unmarkedp): Adjust. - (marked_vtable_pathp, unmarked_vtable_pathp): Remove. - (marked_pushdecls_p, unmarked_pushdecls_p): Adjust. - (dfs_unmark): Adjust. - (dfs_get_vbase_types):Remove. - (dfs_build_inheritance_graph_order): Remove. - (get_vbase_types): Remove - (dfs_find_vbase_instance): Remove. - (find_vbase_instance): Remove. - (dfs_debug_unmarkedp): Adjust. - (dependent_base_p): Remove. - (dfs_push_type_decls): Adjust. - (dfs_push_decls): Adjust. - (dfs_no_overlap_yet): Adjust. - (copied_binfo): New function. - (original_binfo): New function. - (binfo_for_vbase): Remove. - - Change base class access representation. - * java/class.c (set_super_info): Don't set TREE_VIA_PUBLIC. - (add_interface_do): Likewise. - -2003-02-20 David Edelsohn - - * config/rs6000/sysv4.h (ASM_OUTPUT_MAX_SKIP_ALIGN): Define. - * config/rs6000/power4.md (power4-store,power4-vecstore): New - insn reservations. - (power4-fpstore): Compact. - -2003-02-20 Kazu Hirata - - * config/h8300/h8300.md (*iorsi3_w): New. - -2003-02-20 Josef Zlomek - - * combine.c (distribute_notes): Kill REG_EXEC_COUNT. - * rtl.c (reg_note_name): Likewise. - * rtl.h (enum reg_note): Likewise. - * doc/invoke.texi: Likewise. - * doc/rtl.texi: Likewise. - -2003-02-20 Josef Zlomek - - * bb-reorder.c (find_traces_1_round): Fix comment typo. - -2003-02-19 Roger Sayle - - * fold-const.c (fold_real_zero_addition_p): Don't fold a zero - addition in the presence of signaling NaNs. - -2003-02-19 Krister Walfridsson - - * tm.texi (INIT_CUMULATIVE_ARGS): Fix typo. - -2003-02-19 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Optimize or.l when - ORing with 0xffff??00 with the highest bit of the ?? part set. - (compute_logical_op_length): Update. - (compute_logical_op_cc): Likewise. - -2003-02-19 Josef Zlomek - - * bb-reorder.c (find_traces_1_round): Fixed condition for small - destination block with multiple predecessors. - (connect_traces): Check whether the block is a start of trace. - -2003-02-19 Jan Hubicka - - * calls.c (expand_call): Update call of INIT_CUMULATIVE_ARGS - * function.c (assign_params): Likewise. - * arm-protos.h (arm_init_cumulative_args): Update prototype. - * arm.c (arm_init_cumulative_args): Update function. - * arm.h (INIT_CUMULATIVE_ARGS): Update. - * avr-protos.h (init_cumulative_args): Update prototype. - * avr.c (init_cumulative_args): Update function. - * avr.h (INIT_CUMULATIVE_ARGS): Update. - * d30v-protos.h (d30v_init_cumulative_args): Update prototype. - * d30v.c (d30v_init_cumulative_args): Update function. - * d30v.h (INIT_CUMULATIVE_ARGS): Update. - * frv-protos.h (frv_init_cumulative_args): Update prototype. - * frv.c (frv_init_cumulative_args): Update function. - * frv.h (INIT_CUMULATIVE_ARGS): Update. - * mips.c (mips_expand_prolgue): Update call of INIT_CUMULATIVE_ARGS. - * pa.h (INIT_CUMULATIVE_ARGS): Update. - * sparc-protos.h (init_cumulative_args): Update prototype. - * sparc.c (init_cumulative_args): Update function. - * sparc.h (INIT_CUMULATIVE_ARGS): Update. - * tm.texi (INIT_CUMULATIVE_ARGS): Update documentation. - -2003-02-19 Kazu Hirata - - * config/h8300/h8300.md (*iorsi3_two_qi_sext): New. - (*ashiftsi_sextqi_7): Likewise. - -2003-02-19 Rainer Orth - - * config/mips/iris6.h (TARGET_OS_CPP_BUILTINS): Define __c99 for - ISO C99 and C++. - - * fixinc/inclhack.def (irix___restrict): Don't change __restrict - for C++ on IRIX 6.5.1[89]. - * fixinc/tests/base/internal/sgimacros.h: New file. - - * fixinc/inclhack.def (irix_wcsftime): Use XPG5 variant for C99. - * fixinc/tests/base/internal/wchar_core.h: New file. - - * fixinc/inclhack.def (irix_socklen_t): Fix broken IRIX 6.5.1[78] - socklen_t definition. - * fixinc/fixincl.x: Regenerate. - * fixinc/tests/base/sys/socket.h: New file. - Fixes PR libgcj/9652. - -2003-02-19 Jan Hubicka - - * i386.md (movsfcc_1, movdfcc_1): Fix constrains. - -2003-02-19 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_override_options): Initialize - align_jumps_max_skip and align_loops_max_skip. - -2003-02-19 Thierry Moreau - - * config/rs6000/rs6000.c (rs6000_encode_section_info): Do not - test size if named section. - -2003-02-19 Daniel Jacobowitz - - * expr.c (expand_expr): Use gen_int_mode for the argument - to gen_rtx_MULT. - -2003-02-19 Jan Hubicka - - * i386.md (cosxf2): Fix conditional. - -2003-02-19 Kazu Hirata - - * config/h8300/h8300.md (extendqisi2): Change to an expander. - (*extendqisi2_h8300): New. - (*extendqisi2_h8300hs): Likewise. - -2003-02-19 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype for - split_adds_subs. Remove the prototypes for - const_int_le_2_operand and const_int_le_6_operand. - * config/h8300/h8300.c (split_adds_sub): Don't output inc/dec. - (const_int_le_2_operand): Remove. - (const_int_le_6_operand): Likewise. - * config/h8300/h8300.h (PREDICATE_CODES): Remove the entries - for const_int_le_2_operand and const_int_le_6_operand. - * config/h8300/h8300.md: Update all uses of split_adds_subs. - (a peephole2): New. - -2003-02-18 Jan Hubicka - - * cgraph.c (NPREDECESORC, SET_NPREDECESORS): Kill. - (cgraph_expand_function): Rewrite. - -2003-02-18 Matt Austern - - * toplev.c, langhooks.c, langhooks-def.h: Move - write_global_declarations from toplev.c to langhooks.c. - -2003-02-18 Kazu Hirata - - * config/h8300/h8300.c (general_operand_src): Always check - MODE. - (general_operand_dst): Likewise. - -2003-02-18 Roger Sayle - - * convert.c (convert_to_real): Also optimize (float)log(x) into - logf(x) where x is a float, i.e. also handle BUILT_IN_LOG{,L}. - -2003-02-18 Kaz Kojima - - * config/sh/sh.c (unspec_caller_rtx_p): New. - (sh_cannot_copy_insn_p): New. - (TARGET_CANNOT_COPY_INSN_P): New. - -2003-02-18 Richard Henderson - - * c-common.c (handle_used_attribute): Accept static data too. - -2003-02-18 Nick Clifton - Aldy Hernandez - - * testsuite/gcc.dg/20030218-1.c: New. - - * doc/tm.texi: Document TARGET_VECTOR_TYPES_COMPATIBLE. - - * target-def.h (TARGET_INITIALIZER): Add - TARGET_VECTOR_TYPES_COMPATIBLE. - (TARGET_VECTOR_TYPES_COMPATIBLE): New macro. - - * target.h (struct gcc_target): Add field vector_types_compatible. - - * c-typeck.c (comptypes): Take into account - TARGET_VECTOR_TYPES_COMPATIBLE. - (convert_for_assignment): Same. - - * config/rs6000/rs6000.c (is_ev64_opaque_type): New. - (rs6000_spe_vector_types_compatible): New. - (TARGET_VECTOR_TYPES_COMPATIBLE): Define. - -2003-02-19 Andreas Schwab - - * Makefile.in (toplev.o): Depend on $(LANGHOOKS_DEF_H). - * toplev.c: Include langhooks-def.h. - -2003-02-18 Chris Demetriou - - * config/mips/mips.h (enum processor_type): Sort entries - alphabetically. - * config/mips/mips.md (define_attr cpu): Sync with processor_type - enum values, including adding entries that were missing. - -2003-02-18 J"orn Rennecke - - * sh.c (calc_live_regs): Also check GET_CODE when checking if - initial value for PR_REG is still the PR_REG register. - -2003-02-18 Jim Wilson - - * config/ia64/ia64.md (floatdidf2, floatdisf2): Add %, before second - instruction in output template. - (bsp_value): Change output template from string to C code, add %, - before actual instruction. - (flushrs): Mark as not predicable. - -2003-02-18 Krister Walfridsson - - * inclhack.def (netbsd_bogus_semicolon): New fix. - * fixincl.x: Rebuilt. - * tests/base/ctype.h: Update. - -2003-02-18 Roger Sayle - - * fold-const.c (negate_expr_p): New function to determine whether - an expression can be negated cheaply. - (fold) [MINUS_EXPR]: Use it to determine whether to transform - -A - B into -B - A for floating point types. - -2003-02-18 Roger Sayle - - * sbitmap.c (sbitmap_resize): New function. - * sbitmap.h (sbitmap_resize): Prototype here. - * recog.c (split_all_insns): Use sbitmap_resize. - -2003-02-18 Kazu Hirata - - * config/h8300/h8300.md (*zero_extendhisi2_h8300): Fix the - insn length. - (extendqisi2): Likewise. - (*extendhisi2_h8300): Likewise. - -2003-02-18 Matt Austern - - * langhooks.h, langhooks-def.h: introduce new langhook, - final_write_globals, with write_global_declarations as default. - * toplev.c: Move invocation of wrapup_global_declarations from - compile_file to new function, write_global_declarations. Change - compile_file to use final_write_globals hook. Change - wrapup_global_declarations so writing to DECL_DEFER_OUTPUT is - conditional. - -2003-02-18 John David Anglin - - * pa.md: Correct and enhance comment. - -2003-02-18 Geoffrey Keating - - * gcc.c (validate_switches): Don't scan past closing '}'. - -2003-02-18 Ben Elliston - - PR c++/1607 - * doc/extend.texi (Function Attributes): Document the effect of - the C++ "this" parameter on the counting of arguments for the - "format" and "format_arg" attributes. - -2003-02-17 Aldy Hernandez - - * config/rs6000/spe.h (__ev_stdd): Cast 2nd arg. - (__ev_stdw): Same. - (__ev_stdh): Same. - -2003-02-17 Jan Hubicka - - * recog.c (split_all_insns): Fix memory overflow. - -2003-02-17 Kazu Hirata - - * config/h8300/h8300.md (cmpqi): Remove mode from compare. - (cmphi): Likewise. - (*cmphi_h8300): Likewise. - (*cmphi_h8300hs): Likewise. - (cmpsi): Likewise. - (7 peephole2): Likewise. - -2003-02-16 Jan Hubicka - - * c-typeck.c (build_c_cast): Fold constant variables into - initial values. - -2003-02-16 Gerald Pfeifer - - * doc/install.texi (Specific): Fix link for m68k-att-sysv. - (Binaries): Ditto for Sinix/Reliant Unix. - -2003-02-16 Richard Earnshaw - - * arm.c (arm_reload_in_hi): Ensure that the scratch register does - not overlap the final result register. - -2003-02-16 Arend Bayer - Richard Henderson - - PR c/8068 - * fold-const.c (extract_muldiv_1): Rename from extract_muldiv; - rearrange mult arguments for less recursion. - (extract_muldiv): New. Prevent runaway recursion. - -2003-02-16 Danny Smith - - * config/i386/cygwin.h (TARGET_SUBTARGET_DEFAULT): Set - MASK_ALIGN_DOUBLE. - -2003-02-15 Roger Sayle - - * config/i386/i386.c (x86_ext_80387_constants): Use 80387 insns - to load mathematical constants on K6, Athlon, Pentium 4 and PPro. - (ext_80387_constants_table): Global table of 80387 special constants - guarded by ext_80387_constants_init flag when not initialized. - (init_ext_80387_constants): New function to initialize this table. - (standard_80387_constant_p): Extend to recognize extra 80387 - constants, in XFmode, on processors where this is a win. - (standard_80387_constant_opcode): New function to return the - opcode associated with standard_80387_constant_p. - (standard_80387_constant_rtx): New function to return the XFmode - CONST_DOUBLE associated with standard_80387_constant_p. - (ix86_rtx_costs): Give the new constants the same cost as 1.0. - - * config/i386/i386-protos.h (standard_80387_constant_opcode): - Prototype here. - (standard_80387_constant_rtx): Likewise. - - * config/i386/i386.md (*movsf1, *movsf1_nointerunit, *movdf_nointeger, - *movdf_integer, *movxf_nointeger, *movtf_nointeger, *movxf_integer, - *movtf_integer): Simplify using new standard_80387_constant_opcode. - -2003-02-15 Geoffrey Keating - - * doc/invoke.texi (Optimize Options): Correct @option syntax. - -2003-02-15 Richard Henderson - - * Makefile.in (cfglayout.o): Depend on TARGET_H. - * cfglayout.c: Include target.h. - (cfg_layout_can_duplicate_bb_p): Check targetm.cannot_copy_insn_p. - * target-def.h (TARGET_CANNOT_COPY_INSN_P): New. - * target.h (struct gcc_target): Add cannot_copy_insn_p. - - * config/alpha/alpha.c (alpha_cannot_copy_insn_p): New. - (TARGET_CANNOT_COPY_INSN_P): New. - (override_options): Revert 2003-02-08 hack. - -2003-02-15 Richard Henderson - - * gcse.c (bypass_block): Use BLOCK_FOR_INSN for resolving LABEL_REFs. - (bypass_conditional_jumps): Accept computed_jump_p insns as well. - -2003-02-15 David Edelsohn - - * config/rs6000/rs6000.h (processor_type): Add PPC440. - * config/rs6000/rs6000.c (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, - TARGET_SCHED_VARIABLE_ISSUE): Define. - (rs6000_use_dfa_pipeline_interface): New function. - (rs6000_multipass_dfa_lookahead): New Function. - (rs6000_variable_issue): New function. - (rs6000_adjust_cost): Add CMP and DELAYED_CR types. - (rs6000_issue_rate): Add PPC440. - * config/rs6000/rs6000.md (unspec list): Correct typo. - (attr "type"): Add load_ext, load_ext_u, load_ext_ux, load_u, - store_ux, store_u, fpload_ux, fpload_u, fpstore_ux, fpstore_u, - cmp, delayed_cr, mfcr, mtcr. - (automata_option): Set "ndfa". - (extendMMNN2): Update attributes. - (movcc_internal1): Discourage move to non-cr0. Update - attributes. - (movMM_update): Update attributes. - (cmpMM_internal): Update attributes. - (sCC CR materialization): Update attributes. - (branch patterns): Do not discourage non-cr0. - (cr logical patterns): Prefer destructive register allocation. - Update attributes. - (movesi_from_cr): Update attribute. - (mtcrf_operation): Update attribute. - (mtcrfsi): Update attribute. - * config/rs6000/40x.md: New file. - * config/rs6000/603.md: New file. - * config/rs6000/6xx.md: New file. - * config/rs6000/7450.md: New file. - * config/rs6000/7xx.md: New file. - * config/rs6000/mpc.md: New file. - * config/rs6000/power4.md: New file. - * config/rs6000/rios1.md: New file. - * config/rs6000/rios2.md: New file. - * config/rs6000/rs64.md: New file. - [Some DFA descriptions based on work by Michael Hayes] - -2003-02-15 Richard Henderson - - * bb-reorder.c (find_traces_1_round): Don't connect easy to copy - successors with multiple predecessors. - (connect_traces): Try harder to copy traces of length 1. - - * function.h (struct function): Add computed_goto_common_label, - computed_goto_common_reg. - * function.c (free_after_compilation): Zap them. - * stmt.c (expand_computed_goto): Use them to produce one - indirect branch per function. - -2003-02-15 Richard Henderson - - * cfgcleanup.c: Include params.h. - (try_crossjump_bb): Use PARAM_MAX_CROSSJUMP_EDGES. Fix test for - too many outgoing edges from a block. - * Makefile.in (cfgcleanup.o): Depend on PARAMS_H. - * params.def (max-crossjump-edges): New. - * doc/invoke.texi: Document it. - -2003-02-15 Richard Henderson - - * recog.c (split_all_insns): Include new blocks in life update; - do a global life update. - -2003-02-15 Danny Smith - - * config/i386/mingw32.h (LIBGCC_SPEC): Add libmingwex.a. - Update copyright. - * config/i386/cygwin.h (LIBGCC_SPEC): Add libmingwex.a for - -mno-cygwin case. - -2003-02-14 Falk Hueffner - - PR optimization/7702 - * reload1.c (reload_cse_simplify_set): Honor - CANNOT_CHANGE_MODE_CLASS. - -2003-02-14 Alexandre Oliva - - * config/mn10300/mn10300.c (mn10300_wide_const_load_uses_clr): New - function. - * config/mn10300/mn10300-protos.h: Declare it. - * config/mn10300/mn10300.md (movdi, movdf): Use it to compute - attribute cc of instructions that may use clr. - -2003-02-14 Kazu Hirata - - * simplify-rtx.c (simplify_binary_operation): Simplify ~y when - (x - (x & y)) is found. - -2003-02-14 Rainer Orth - - * configure.in: Fix typo. - * configure: Regenerate. - -2003-02-14 Kazu Hirata - - * config/h8300/h8300.md (*iorsi2_and_1_lshiftrt_1): New. - -2003-02-13 Adam Nemet - - PR opt/2391 - * combine.c: Fix spelling in comment. - (cached_nonzero_bits): New function. - (cached_num_sign_bit_copies): New function. - (nonzero_bits_with_known): New macro. - (num_sign_bit_copies_with_known): New macro. - (nonzero_bits1): Rename from nonzero_bits. Add three new - arguments. Change calls from nonzero_bits to - nonzero_bits_with_known. - (num_sign_bit_copies1): Rename from num_sign_bit_copies. Add - three new arguments. Change calls from num_sign_bit_copies to - num_sign_bit_copies_with_known. - (nonzero_bits): New macro. - (num_sign_bit_copies): New macro. - (update_table_tick): Don't traverse identical subexpression more - than once. - (get_last_value_validate): Likewise. - -2003-02-13 Zack Weinberg - - * emit-rtl.c (init_emit): Use ggc_alloc for regno_reg_rtx. - * function.h (struct emit_status): Length of regno_pointer_align - and x_regno_reg_rtx as seen by gengtype is only x_reg_rtx_no, - not regno_pointer_align_length (i.e. length actually used, not - length as allocated) - - * config/i386/i386.c (struct stack_local_entry): New. - (struct machine_function): Replace huge array with alist. - (assign_386_stack_local): Change to match. - -2003-02-13 John David Anglin - - * inclhack.def (hpux_long_double): Tighten select and add bypass - regexp. - * fixincl.x: Rebuilt. - -2003-02-13 Josef Zlomek - - * cfgcleanup.c (outgoing_edges_match): When there is single outgoing - edge and block ends with a jump insn it must be simple jump. - -2003-02-13 Daniel Jacobowitz - - * Makefile.in (PREPROCESSOR_DEFINES): Add - @TARGET_SYSTEM_ROOT_DEFINE@. - * configure.in (PREFIX_INCLUDE_DIR): Don't define if $with_sysroot - is specified or if building a cross compiler. - (TARGET_SYSTEM_ROOT_DEFINE): Add TARGET_SYSTEM_ROOT_RELOCATABLE - if the sysroot is under $exec_prefix. - * configure: Regenerated. - * cppdefault.h: Use native include paths if TARGET_SYSTEM_ROOT is - defined. - (struct default_include): Add add_sysroot field. - (cpp_SYSROOT): Declare. - * cppdefault.c (cpp_include_defaults): Fill in add_sysroot - field. - (cpp_SYSROOT): New variable. - * cppinit.c (cpp_create_reader): Initialize - CPP_OPTION (pfile, sysroot). - (init_standard_includes): Handle add_sysroot. Do not - add unrelocated copies of relocated directories. - (COMMAND_LINE_OPTIONS): Add -isysroot. - (cpp_handle_option): Handle -isysroot. - * cpplib.h (struct cpp_options): Add sysroot member. - * gcc.c (The Specs Language): Update description of %I. - (target_system_root_changed): New variable. - (process_command): Conditionalize make_relative_prefix call - on !VMS and TARGET_SYSTEM_ROOT_RELOCATABLE. Set - target_system_root_changed. - (do_spec_1): Add -isysroot to %I. - * doc/invoke.texi (Spec Files): Update description of %I. - * doc/install.texi (--with-sysroot): Update comment about - relocation. - -2003-02-13 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-02-13 Robert Lipe - Gerald Pfeifer - - * doc/install.texi (Specific): Update three SCO-related URLs. - -2003-02-13 Andreas Schwab - - * cgraph.c (SET_NPREDECESORS): Add intermediate cast to size_t. - Parenthesize properly. - (NPREDECESORS): Parenthesize properly. - -2003-02-13 Gabriel Dos Reis - - * timevar.h (POP_TIMEVAR_AND_RETURN): New macro. - -2003-02-12 Roger Sayle - - * config/i386/i386.md (UNSPEC_FPATAN): New UNSPEC constant. - (atan2sf3, atan2df3, atan2xf3, atan2tf3): New patterns. - - * reg-stack.c (subst_stack_regs_pat): Add support for binary - UNSPEC instructions (e.g. "fpatan"). - -2003-02-12 Mike Stump - - * varray.c (element_size): Remove. - (uses_ggc): Remove. - (element): Add. - (varray_init): Use new interface. - (varray_grow): Use new interface. - (varray_clear): Use new interface. - -2003-02-12 Aldy Hernandez - - * config/rs6000/spe.h: Add casts to the arguments of the following - macros: evfsabs, evfsnabs, evfsneg, evfsadd, evfssub, evfsmul, - evfsdiv, evfscfui, evfscfsi evfscfuf evfscfsf, evfsctui, evfsctsi, - evfsctuf, evfsctsf, evfsctuiz, evfsctsiz, __ev_get_upper*, - __ev_get_lower*, __ev_get_u32, __ev_get_s32, __ev_get_fs, - __ev_get_u16, __ev_get_s16. - -2003-02-12 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): New. - -2003-02-12 Jan Hubicka - - * Makefile.in (CRTSTUFF_CFLAGS): Add -fno-unit-at-a-time - (OBJS): Add cgraph.o - (cgraph.o): New. - * c-decl.c (expand_body_1): Break out from ... - (expand_body): This one; change calling convention - (finish_function): Move some of expand_body logic here. - (c_expand_deferred_function): Update call of expand_body - (c_expand_stmt): Use c_expand_body_1. - * c-lang.c (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Define. - * c-objc-commin.c (c_objc_common_finish_file): Use callgraph code. - * c-tree.h (c_expand_body): Declare. - * cgraph.c: New file. - * flags.h (flag_unit_at_a_time): Declare. - * langhooks.h (LANG_HOOKS_CALLGRAPH_LOWER_FUNCTION, - LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION, - LANG_HOOKS_CALLGRAPH_INITIALIZER): New macros. - * langhooks.h (struct lang_hooks_for_callgraph): New. - (struct lang_hooks): Add callgraph field. - * toplev.c (flag_unit_at_a_time): New. - (lang_independent_options): Add flag_unit_at_a_time. - (process_options): Disable unit-at-a-time mode for frontends not - supporting callgraph. - * tree-inline.c (typedef struct inline_data): Add "decl" - (expand_call_inline): Update callgraph. - (optimize_inline_calls): Set id.decl. - * tree.h (cgraph_finalize_function, cgraph_finalize_compilation_unit, - cgraph_create_edges, dump_cgraph, cgraph_optimize, cgraph_remove_call - cgraph_calls_p): Declare. - * invoke.texi (-funit-at-a-time): Document. - -2003-02-12 Aldy Hernandez - - * config/rs6000/spe.h: Fix misc formatting. - (__ev_create_ufix32_fs): Cast ev argument. - (__ev_create_sfix32_fs): Same. - (__ev_get_sfix32_fs_internal): Cast arguments to builtins. - (__ev_get_ufix32_fs_internal): Same. - -2003-02-12 Ranjit Mathew - - * doc/tm.texi (MODIFY_JNI_METHOD_CALL): Document. - * config/i386/cygwin.h (MODIFY_JNI_METHOD_CALL): New macro. - -2003-02-12 Zack Weinberg - - * cpplib.c (do_include_common): Move warnings for - #include_next and #import out to callers. Use early-return - instead of nested ifs. Don't do check_eol here. - (parse_include): Do check_eol here with the rest of the - parsing stuff. - (do_include_next, do_import): Now handle warnings. - -2003-02-11 Gerald Pfeifer - - * doc/install.texi (Specific): Update AVR- and Darwin-related URLs. - -2003-02-12 Jan Hubicka - - * predict.c (estimate_probability): Fix roundoff error. - -2003-02-12 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Don't handle 65535. - (two peephole2): New. - -2003-02-12 Kazu Hirata - - * config/h8300/h8300.md (several peephole2): Replace - find_regno_note with peep2_reg_dead_p. - -2003-02-11 Richard Henderson - - * gcse.c (lookup_set): Remove unused argument PAT. Update - both callers. - -2003-02-11 Geoffrey Keating - - * diagnostic.c (real_abort): New. - (diagnostic_report_diagnostic): Call real_abort on error. - * diagnostic.h (diagnostic_abort_on_error): New. - (struct diagnostic_context): Add abort_on_error field. - * toplev.c (setup_core_dumping): New. - (decode_d_option): Handle 'H' case. - * doc/invoke.texi (Debugging Options): Document -dH. - -2003-02-11 Nathanael Nerode - - * Makefile.in: Remove pointless setting of CXXFLAGS for dejagnu - which refers to obsolete directories. - -2003-02-11 Richard Henderson - - * config/alpha/linux.h (TARGET_C99_FUNCTIONS): New. - -2002-10-21 Jan Hubicka - - * i386.c (contains_128bit_aligned_vector_p): New function. - (ix86_function_arg_boundary): Properly align vector modes. - -2003-02-11 Bob Wilson - - * config/xtensa/xtensa.md (set_frame_ptr): Change rtl to set reg a7. - * config/xtensa/xtensa.c (xtensa_reorg): Search for UNSPECV_SET_FP - as a SET pattern. - -2003-02-11 Roger Sayle - - * builtins.c: Fix failure caused by commiting wrong patch. - -2003-02-11 Dale Johannesen - * ra-build.c (compare_and_free_webs): Relax checking. - * config/rs6000/darwin.h (HOT_TEXT_SECTION_NAME): Define. - (UNLIKELY_EXECUTED_TEXT_SECTION_NAME): Define. - -2003-02-11 Falk Hueffner - - PR optimization/9651 - * rtlanal.c (may_trap_p): Handle FIX. - -2003-02-11 Dave Jones - - * config/i386/i386.c (override_options): Define c3-2 as a 686 with SSE. - * doc/invoke.texi: Extra alias. - -2003-02-11 Geoffrey Keating - - * config/rs6000/host-darwin.c: Fix comment. - -2003-02-11 David Edelsohn - - * config/rs6000/rs6000.md (divmodsi4): Use register_operand - predicate for mod result. - -2003-02-11 John David Anglin - - * inclhack.def (hpux_long_double, hpux10_ctype_declarations1, - hpux10_ctype_declarations2, hpux_ctype_macros): New hacks. - * fixincl.x: Rebuilt. - * tests/base/stdlib.h: Update. - * tests/base/ctype.h: New file. - -2003-02-11 Jan Hubicka - - * emit-rtl.c (emit_copy_of_insn_after): Copy insn recog cache too. - -2003-02-11 Richard Henderson - - * config/i386/i386.c (ix86_expand_movstr): Fail if esi or edi - appropriated as globals. - (ix86_expand_clrstr): Similarly. - * config/i386/i386.md (cmpstrsi): Similarly. - -2003-02-11 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Add a case of 255. - -2003-02-11 Roger Sayle - - * optabs.h (enum optab_index): Add new OTI_pow and OTI_atan2. - (pow_optab, atan2_optab): Define corresponding macros. - * optabs.c (init_optabs): Initialize pow_optab and atan2_optab. - * genopinit.c (optabs): Implement pow_optab and atan2_optab - using pow?f3 and atan2?f3 patterns. - * builtins.c (expand_errno_check): New function to update errno - if necessary, split out from expand_builtin_mathfn. - (expand_builtin_mathfn): Use expand_errno_check. - (expand_builtin_mathfn_2): New function to handle expanding binary - math functions, reusing the code in expand_errno_check. - (expand_builtin): Handle the pow and atan2 math built-ins, - BUILT_IN_{POW,POWF,POWL,ATAN2,ATAN2F,ATAN2L} via the new function - expand_builtin_mathfn_2. - - * doc/md.texi: Document new pow?f3 and atan2?f3 patterns. - -2003-02-11 Jan Hubicka - - * combine.c (combine_simplify_rtx): Fix folding of - nested float_truncates. - -2003-02-11 Kazu Hirata - - * config/h8300/h8300.md (a peephole2): Fix a typo. - -2003-02-11 Richard Earnshaw - - * arm.mc (return_address_mask): Use CC_REGNUM for the condition code - register number. - -2003-02-11 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - gtuleu_operator. - * config/h8300/h8300.c (gtuleu_operator): New. - * config/h8300/h8300.h (PREDICATE_CODES): Add gtuleu_operator. - * config/h8300/h8300.md (a peephole2): New. - -2003-02-11 Jan Hubicka - - * sched-ebb.c (schedule_ebbs): Do not verify_flow_info. - -2003-02-11 Jan Hubicka - - * predict.c (choose_function_section): Choose sections correctly. - -2003-02-10 John David Anglin - - * reload1.c (first_label_num): New. - (reload): Index offsets_known_at and offsets_at using difference of - label number and first label number. Don't use offset pointers. - (set_label_offsets, set_initial_label_offsets): Likewise. - -2003-02-10 Roger Sayle - - * mips-tfile.c (init_file): Add missing initializers in the - "#ifdef __alpha" case. - (file_offset, max_file_offset): Declare as unsigned long. - (write_varray): Cast to "unsigned long" in comparisons against - either file_offset or max_file_offset. - (write_object): Likewise. - (read_seek): Likewise. - (copy_object): Likewise. Declare "ifd" as int to match its use - in add_ext_symbol, and avoid signed/unsigned conditional warning. - -2003-02-10 Nick Clifton - Aldy Hernandez - - * config/rs6000/eabispe.h (SUBSUBTARGET_OVERRIDE_OPTIONS): Do not - override options which have been specified on the command line. - -2003-02-10 Kazu Hirata - - * config/h8300/h8300.md (abssf2): New. - (*abssf2_h8300): Likewise. - (*abssf2_h8300hs): Likewise. - -2003-02-10 Phil Edwards - - * tree.c (build_tree_list): Fix parameter names in comment. - -2003-02-10 Janis Johnson - - * config/rs6000/ppc64-fp.c: New file. - * config/rs6000/t-linux64 (LIB2FUNCS_EXTRA): Add ppc64-fp.c. - -2003-02-10 Josef Zlomek - - * Makefile.in (bb-reorder.o): Add dependency on $(FIBHEAP_H). - * bb-reorder.c (make_reorder_chain): Deleted. - (make_reorder_chain_1): Deleted. - (find_traces): New function. - (rotate_loop): New function. - (mark_bb_visited): New function. - (find_traces_1_round): New function. - (copy_bb): New function. - (bb_to_key): New function. - (better_edge_p): New function. - (connect_traces): New function. - (copy_bb_p): New function. - (get_uncond_jump_length): New function. - (reorder_basic_blocks): Use new functions (Software Trace Cache). - * cfgcleanup.c (outgoing_edges_match): Enable crossjumping across loop - boundaries. - -2003-02-10 Aldy Hernandez - - * config/rs6000/rs6000.c (bdesc_2arg): Change spe_evxor to xorv2si3. - -2003-02-09 Dan Nicolaescu - - * tree.h (struct tree_decl): Remove unused live_range_rtl field. - (DECL_LIVE_RANGE_RTL): Remove. - -2003-02-10 Nick Clifton - - * config/arm/aof.h, config/arm/aout.h, config/arm/arm-modes.def, - config/arm/arm-protos.h, config/arm/arm.c, config/arm/arm.h, - config/arm/arm.md, config/arm/cirrus.md, config/arm/coff.h, - config/arm/conix-elf.h, config/arm/ecos-elf.h, config/arm/elf.h, - config/arm/freebsd.h, config/arm/linux-elf.h, - config/arm/linux-gas.h, config/arm/netbsd-elf.h, - config/arm/netbsd.h, config/arm/pe.c, config/arm/pe.h, - config/arm/rtems-elf.h, config/arm/semi.h, config/arm/semiaof.h, - config/arm/strongarm-coff.h, config/arm/strongarm-elf.h, - config/arm/strongarm-pe.h, config/arm/uclinux-elf.h, - config/arm/unknown-elf-oabi.h, config/arm/unknown-elf.h, - config/arm/xscale-elf.h: Replace occurances of "GNU CC" with "GCC" - and reformat as appropriate. - -2003-02-10 Kazu Hirata - - * config/h8300/clzsi2.c: Remove. - * config/h8300/ctzsi2.c: Likewise. - * config/h8300/paritysi2.c: Likewise. - * config/h8300/popcountsi2.c: Likewise. - * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Remove clzsi2, - ctzsi2, paritysi2, and popcountsi2. - -2003-02-10 Eric Botcazou - Christian Ehrhardt - - PR c/7741 - * c-decl.c (duplicate_decls): Discard the initializer of the - new decl when the types are conflicting. - -2003-02-10 Josef Zlomek - - * Makefile.in (sreal.o): Added. - (predict.o): Depends on sreal.h instead of real.h. - * sreal.c: New file. - * sreal.h: New file. - * predict.c: Use sreal.c instead of real.c. - -2003-02-10 Nick Clifton - - * Contributed support for the Cirrus EP9312 "Maverick" - floating point co-processor. Written by Aldy Hernandez - . - (config/arm/arm.c): Add Cirrus support. - (config/arm/arm.h): Likewise. - (config/arm/aout.h): Likewise. - (config/arm/arm.md): Likewise. - (config/arm/arm-protos.h): Likewise. - (config.gcc): Likewise. - (doc/invoke.texi): Describe new -mcpu value and new - -mcirrus-fix-invalid-insns switch, - (cirrus.md): New file. - -2003-02-10 Jan Hubicka - - * combine.c (combine_simplify_rtx): Simplify using - (float_truncate (float x)) is (float x) - (float_extend (float_extend x)) is (float_extend x). - -2003-02-10 Alan Modra - - * calls.c (try_to_integrate): Tidy stack_usage_map access. - (emit_library_call_value_1): Likewise. Formatting. - (store_one_arg): Likewise. - -2003-02-09 Nick Clifton - Aldy Hernandez - - * config/rs6000/spe.md: spe_evlhhesplat, spe_evlhhossplat, - spe_evlhhousplat, spe_evlwhsplat, spe_evlwwsplat, spe_evldd, - spe_evldh, spe_evldw, spe_evlwhe, spe_evlwhos, spe_evlwhou, - spe_evstdd, spe_evstdh, spe_evstdw, spe_evstdwx, spe_evstwhe, - spe_evstwho, spe_evstwwe, spe_evstwwo: Fix syntax to match newest - docs. Add range test for immediate value. - -2003-02-09 Aldy Hernandez - - Rename spe_evxor to xorv2si3. - (xorv4hi3): New. - (xorv1di3): New. - -2003-02-10 Glen Nakamura - - * doc/extend.texi (C++98 Thread-Local Edits): Add missing @item - tag. - -2003-02-10 Jan Hubicka - - * i386.c (vector_move_operand): New predicate. - (ix86_expand_vector_move): Be happy about 0. - * i386.h (PREDICATE_CODES): Add sse-move_operand. - * i386.md (mov*_internal): Add 'C' alternative. - -2003-02-09 Jan Hubicka - - * i386.md (floathi*): Deal with SSE. - -2003-02-09 Jan Hubicka - - * simplify-rtx.c (simplify_unary_operation, - simplify_binary_operation): Deal with vector modes - (simplify_ternary_operation): Deal with no-op VEC_MERGE. - -2003-02-09 Richard Sandiford - - * toplev.c (rest_of_compilation): Recompute register usage after - split_all_insns. - -2003-02-09 Richard Henderson - - * libgcc-std.ver (__clztf2): New. - (__ctztf2, __popcounttf2, __paritytf2): New. - * libgcc2.c (__clzSI2, __clzDI2, __ctzSI2, __ctzDI2, __popcountSI2, - __popcountDI2, __paritySI2, __parityDI2): Use UWmode and UDWmode; - adjust code to match the different type sizes. - * libgcc2.h (__clzSI2, __ctzSI2, __popcountSI2, __paritySI2, - __clzDI2, __ctzDI2, __popcountDI2, __parityDI2): New macros. - - * optabs.c (init_integral_libfuncs): Don't hard-code SImode and - TImode; select word_mode and twice that. - (init_floating_libfuncs): Don't hard-code SFmode and TFmode; - select the modes from float, double, and long double. - (init_optabs): Remove duplicate initializations. - -2003-02-09 Wolfgang Bangerth - - * doc/install.texi: Squeeze and streamline section on - testing and regression checking. - -2003-02-09 Jan Hubicka - - * i386.md (ahi?v*3): Set third operand type to TImode. - * i386.c (ix86_expand_binop_builtin): Extend operand when needed. - - * simplify-rtx.c (simplify_subreg): Fix conversion from vector into - integer mode. - - * rtl.def (VEC_MERGE, VEC_SELECT, VEC_CONCAT, VEC_DUPLICATE): - Change code so they are arithmetic expressions now. - * simplify-rtx.c (simplify_unary_operation, simplify_binary_operation, - simplify_ternary_operation): Deal with VEC_* expressions. - - * i386.md (vmaskcmp, pinsrw, movd patterns): Fix RTL representation. - -2003-02-08 Jan Hubicka - - * cfgrtl.c (verify_flow_info): Use control_flow_insn_p. - * reload1.c (fixup_abnormal_edges): Split basic blocks when EH edges - possibly got duplicated. - -2003-02-08 Richard Henderson - - * config/alpha/alpha.c (override_options): Turn off explicit - relocs until post-peep2 code duplication resolved. - -2003-02-08 Kazu Hirata - - * optabs.c (expand_unop): Widen clz properly when clz is done - via libcall. - -2003-02-08 Kazu Hirata - - * config/h8300/clzsi2.c: Replace "GNU CC" with "GCC". - * config/h8300/crti.asm: Likewise. - * config/h8300/crtn.asm: Likewise. - * config/h8300/ctzsi2.c: Likewise. - * config/h8300/fixunssfsi.c: Likewise. - * config/h8300/h8300-protos.h: Likewise. - * config/h8300/h8300.c: Likewise. - * config/h8300/h8300.h: Likewise. - * config/h8300/h8300.md: Likewise. - * config/h8300/paritysi2.c: Likewise. - * config/h8300/popcountsi2.c: Likewise. - * config/h8300/rtems.h: Likewise. - -2003-02-08 Zdenek Dvorak - - * doc/invoke.texi: Documentation for my previous commit. - * doc/passes.texi: Ditto. - -2003-02-08 Zdenek Dvorak - - * cfgloop.h (fix_loop_placement, can_duplicate_loop_p, - duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb): - Declare. - (DLTHE_FLAG_UPDATE_FREQ): New. - * cfgloopmanip.c (duplicate_loop, duplicate_subloops, copy_loops_to, - loop_redirect_edge, loop_delete_branch_edge, copy_bbs, remove_bbs, - rpe_enum_p, find_branch, alp_enum_p, add_loop, fix_loop_placements, - fix_bb_placement, fix_bb_placements, place_new_loop, - scale_loop_frequencies, scale_bbs_frequencies, record_exit_edges): - New static functions. - (fix_loop_placement, can_duplicate_loop_p, - duplicate_loop_to_header_edge, loopify, remove_path, split_loop_bb): - New functions. - - * cfgloop.h (loop_optimizer_init, loop_optimizer_finalize, - unswitch_loops): Declare. - * loop-init.c: New file. - * loop-unswitch.c: New file. - * Makefile.in (loop-init.o, loop-unswitch.o): New. - * params.def (PARAM_MAX_UNSWITCH_INSNS, PARAM_MAX_UNSWITCH_LEVEL): New. - * toplev.c (DFI_loop2): New dump. - (flag_unswitch_loops): New. - (lang_independent_options): Add it. - (rest_of_compilation): Call new loop optimizer. - (parse_options_and_default_flags): Turn flag_unswitch_loops on with -O3. - -2003-02-08 Kazu Hirata - - * config/h8300/clzsi2.c: New. - * config/h8300/ctzsi2.c: Likewise. - * config/h8300/paritysi2.c: Likewise. - * config/h8300/popcountsi2.c: Likewise. - * config/h8300/t-h8300 (LIB2FUNCS_EXTRA): Add above files. - -2003-02-07 David Edelsohn - - * config/rs6000/rs6000.h (CLZ_DEFINED_VALUE_AT_ZERO): Define. - * config/rs6000/rs6000.md (clzsi2): Rename from cntlzw2. - (ctzsi2): New pattern. - (ffssi2): Use clz instead of unspec. - (clzdi2): Rename from cntlzd2. - (ctzdi2): New pattern. - (ffsdi2): Use clz instead of unspec. - -2003-02-07 Loren James Rittle - - * config/alpha/freebsd.h (LINK_SPEC): Weaken error to notice. - * config/ia64/freebsd.h (LINK_SPEC): Likewise. - * config/sparc/freebsd.h (LINK_SPEC): Likewise. - * config/i386/freebsd.h (LINK_SPEC): Add clause to mirror other arches. - -2003-02-07 Wolfgang Bangerth - - * doc/trouble.texi: Document pitfalls of two-stage name lookup. - -2003-02-07 Richard Henderson - - PR 9226 - * gcse.c (local_cprop_find_used_regs): New. - (local_cprop_pass): Use it. - -2003-02-07 Fred Fish - - * mips-tfile.c (parse_def): Parenthesize assignments to fix - precedence bugs. - -2003-02-07 Segher Boessenkool - - * genoutput.c (output_get_insn_name): Handle NOOP_MOVE_INSN_CODE. - -2003-02-07 Roger Sayle - - * builtin-types.def (BT_FN_FLOAT_FLOAT_FLOAT): New built-in type. - (BT_FN_LONG_DOUBLE_LONG_DOUBLE_LONG_DOUBLE): Likewise. - (BT_FN_DOUBLE_DOUBLE_DOUBLE): Likewise. - * builtins.def: Define pow, powf, powl, atan2, atan2f and atan2l - builtin functions (and their __builtin_* variants). - * builtins.c (mathfn_built_in): Handle missing log{,f,l} cases. - (expand_builtin): Don't expand log{,f,l}, pow{,f,l} or atan2{,f,l} - when not optimizing. - - * doc/extend.texi: Document new pow and atan2 builtins, and - their float and long double variants. Realphabetize builtins. - -2003-02-07 Jan Hubicka - - * i386.md (sse2_nandv2di3): Fix. - -2003-03-07 Danny Smith - - * config/i386/i386.h (MS_AGGREGATE_RETURN): New define. - * config/i386/cygwin.h (MS_AGGREGATE_RETURN): Override default - definition. - * config/i386/i386.h (ix86_return_in_memory): Return aggregate - types of up to 8 bytes via registers if MS_AGGREGATE_RETURN. - -2003-02-07 Jan Hubicka - - * i386.md (movdi_rex64_1): Fix mmx<->int move opcode. - -2003-02-07 Daniel Berlin - - * cfg.c (dump_flow_info): Add back accidently deleted line. - -2003-02-07 Andrey Petrov - - * optabs.c (expand_float): Search wider integer modes first. - -2003-02-07 Bob Wilson - - * config/xtensa/xtensa.h (LIBGCC2_WORDS_BIG_ENDIAN): Set this - based on preprocessor flag. - -2003-02-07 Roger Sayle - Richard Henderson - - * gcse.c (implicit_sets): New. - (compute_hash_table_work): Include them in hash table. - (find_implicit_sets, fis_get_condition): New. - (one_cprop_pass): Allocate and free implicit_sets; call - find_implicit_sets before building hash table. - -2003-02-07 Jason Thorpe - - * config/t-netbsd (USER_H): Revert previous change. - -2003-02-07 Gabor Greif - - * doc/c-tree.texi (Namespaces): Fix typo. - -2003-02-07 Jan Hubicka - - * regrename.c (do_replace, find_oldest_value_reg, - copyprop_hardreg_forward_1): Update register attributes. - -2003-02-06 Vladimir Makarov - - * genautomata.c (VLA_PTR_CREATE, VLA_PTR_EXPAND, VLA_PTR_ADD, - VLA_HWINT_CREATE, VLA_HWINT_EXPAND, VLA_HWINT_ADD): Use temporay - variables starting with underscore. - (struct unit_usage): New structure. - (unit_usages, cycle_alt_unit_usages): New global variables. - (check_unit_distribution_in_reserv): Remove it. - (store_alt_unit_usage): New function. - (check_regexp_units_distribution): Rewrite it. - -2003-02-06 John David Anglin - - * config.gcc (hppa*-*-linux*): Set MASK_NO_SPACE_REGS in - target_cpu_default. - * pa.c (attr_length_call): Add 8 to call length (long indirect PA 1.X) - if not MASK_NO_SPACE_REGS. - (output_call): Adjust return pointer, don't load new space register - into %sr0, and use %sr4 for call if TARGET_NO_SPACE_REGS is true. - (pa_asm_output_mi_thunk): Don't load new space register into %sr0 if - TARGET_NO_SPACE_REGS is true. - * pa.md (return_external_pic): Add TARGET_NO_SPACE_REGS to insn - conditions. - (epilogue): Always use return_internal if TARGET_NO_SPACE_REGS is true. - (interspace_jump): Add new pattern for when TARGET_NO_SPACE_REGS is - true. Use bve when TARGET_64BIT is true. - -2003-02-06 Richard Henderson - - * combine.c (nonzero_bits): Fix double break. - -2003-02-06 Eric Botcazou - Richard Henderson - - PR c/9530 - * config/i386/i386.c (ix86_function_ok_for_sibcall): Forbid sibcalls - from functions that return a float to functions that don't. - -2003-02-06 Jan Hubicka - - * i386.c (x86_inter_unit_moves): New variable. - (ix86_secondary_memory_needed): Fix 64bit case, honor - TARGET_INTER_UNIT_MOVES - * i386.h (x86_inter_unit_moves): Declare. - (TARGET_INTER_UNIT_MOVES): New macro. - * i386.md (movsi_1): Cleanup constraints; disable - when not doing inter-unit moves. - (movsi_1_nointernunit): New. - (movdi_1_rex64): Fix constraints; deal with SSE->GPR moves. - (movdi_1_rex64_nointerunit): New. - (mivsf_1): disable when not doing inter-unit moves. - (movsf_1_nointerunit): New. - - * basic-block.h (inside_basic_block_p): Declare. - * cfgbuild.c (inside_basic_block_p): Make global. - * haifa-sched.c (unlink_other_notes): Deal with NOT_INSN_BASIC_BLOCK. - * scheudle-ebb.c (schedule_ebb): Return last basic block of trace; - update CFG. - (fix_basic_block_boundaries, add_missing_bbs): New. - (rank): Use profile. - (scheudle_ebbs): Rely on CFG; update coments. - -2003-02-05 Geoffrey Keating - - * Makefile.in (host_hook_obj): New. - (OBJS): Add $(host_hook_obj). - (host_default.o): New rule. - * config.gcc (host_hook_obj): New, default to host-default.o. - (powerpc-*-darwin*): Use host-darwin.o. - (out_host_hook_obj): New. - * configure: Regenerate. - * configure.in: Print information about out_host_hook_obj, substitute - into output files. - * host-default.c: New file. - * hosthooks.h: New file. - * toplev.c (general_init): Call host_hooks.extra_signals. - * config/rs6000/host-darwin.c: New file. - * config/rs6000/x-darwin: New file. - * doc/hostconfig.texi: Add documentation for new host hook. - Rearrange existing documentation. - -2003-02-05 Roger Sayle - - * dwarf2out.c (mem_loc_descriptor): Replace ASM_SIMPLIFY_DWARF_ADDR - with *targetm.delegitimize_address. - (rtl_for_decl_location): Likewise. - * dwarfout.c (output_mem_loc_descriptor): Likewise. Include target.h. - * Makefile.in (dwarf2out.c, dwarfout.c): Depend upon $(TARGET_H) - - * config/i386/i386.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition. - * config/i386/i386-protos.h (i386_simplify_dwarf_addr): Remove - prototype. - * config/i386/i386.c (ix86_delegitimize_address): Renamed from - i386_simplify_dwarf_addr. Made static. Prototyped. - (TARGET_DELEGITIMIZE_ADDRESS): Update definition from - i386_simplify_dwarf_addr to ix86_delegitimize_address. - (ix86_find_base_term): Likewise. - (maybe_get_pool_constant): Likewise. - - * config/s390/s390.h (ASM_SIMPLIFY_DWARF_ADDR): Remove definition. - * config/s390/s390-protos.h (s390_simplify_dwarf_addr): Remove - prototype. - * config/s390/s390.c (s390_delegitimize_address): Renamed from - s390_simplify_dwarf_addr. Made static. Prototyped. - (TARGET_DELEGITIMIZE_ADDRESS): Define as s390_delegitimize_address. - -2003-02-05 Richard Henderson - - PR c/8602 - * integrate.c (output_inline_function): Reset input_filename - and lineno from the decl before rest_of_compilation. - -2003-02-05 Richard Henderson - - * defaults.h (CLZ_DEFINED_VALUE_AT_ZERO): New. - (CTZ_DEFINED_VALUE_AT_ZERO): New. - * doc/rtl.texi, doc/tm.texi: Document them. - - * combine.c (nonzero_bits) [CLZ, CTZ]: Handle the definedness - of the value at zero properly. - * fold-const.c (tree_expr_nonnegative_p): Likewise. - * simplify-rtx.c (simplify_unary_operation): Likewise. - - * config/alpha/alpha.h (CLZ_DEFINED_VALUE_AT_ZERO): New. - (CTZ_DEFINED_VALUE_AT_ZERO): New. - - * config/arm/arm.c (TARGET_INIT_BUILTINS): Remove. - (TARGET_EXPAND_BUILTIN): Remove. - (def_builtin, arm_init_builtins, arm_expand_builtin): Remove. - * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO): New. - (enum arm_builtins): Remove. - * config/arm/arm.md (UNSPEC_CLZ): Remove. - (clzsi2): Rename from clz; use clz instead of unspec. - (ctzsi2): New. - * config/arm/arm-protos.h: Update. - -2003-02-05 Jan Hubicka - - * i386-protos.h (x86_emit_floatuns): Declare. - * i386.c (x86_emit_floatuns): New global function. - * i386.md (floatunssisf2, floatunsdisf2, - floatunsdidf2): New patterns. - -2003-01-25 Zdenek Dvorak - - * cfgloopmanip.c (force_single_succ_latches): Fix missindentation. - -2003-02-05 Hans Boehm - - * config/ia64/unwind-ia64.c: include coretypes.h, tm.h to get - config/ia64/linux.h - -2003-02-05 Roger Sayle - - * cfgloop.h (flow_bb_inside_loop_p): Correct prototype again. - -2003-02-05 Jakub Jelinek - - PR optimization/8555 - * config/i386/i386.md (sse_mov?fcc split): Handle op2 == op3 case - instead of aborting. - -2003-02-04 Richard Henderson - - * config/i386/i386.md (UNSPEC_BSF): Remove. - (ffssi2): Split into cmove and no_cmove insns and splitters; - lose pentium float trick for now. - (ffssi_1): Add * to name; use CTZ instead of UNSPEC. - (ctzsi2, clzsi2, bsr): New. - -2003-02-04 Richard Henderson - - * config/ia64/ia64.c (rtx_needs_barrier): Handle POPCOUNT, - UNSPEC_GETF_EXP; remove UNSPEC_POPCNT. - * config/ia64/ia64.md (UNSPEC_POPCNT): Remove. - (ffsdi2): Use popcount instead of unspec. - (popcountdi2): Rename from *popcnt. - (ctzdi2, clzdi2, getf_exp_tf): New. - -2003-02-04 Kazu Hirata - - * genconfig.c (main): Generate CC0_P. - * rtl.h (CC0_P): Remove. - -2003-02-04 Richard Henderson - - * libgcc2.h, libgcc2.c (__ffsSI2): New. - (__ffsDI2): Rename from __ffsdi2. - * mklibgcc.in (lib2funcs): Add _ffssi2. - -2003-02-04 Richard Henderson - - * libgcc2.c (__paritysi2, __paritydi2): Replace last two reduction - rounds with a "bit table" lookup. - -2003-02-04 Ulrich Weigand - - * reload.c (find_reloads): Do not use the mode specified in the insn - pattern as reload mode for address operands. Do not generate optional - reloads for operands where a mandatory reload was already pushed. - -2003-02-04 Richard Henderson - - * longlong.h [alpha] (count_leading_zeros, count_trailing_zeros): Use - builtins instead of inline assembly. - -2003-02-04 Falk Hueffner - - PR c/9376 - * libgcc2.c (__subvdi3): Fix typo. - -2003-02-04 Jan Hubicka - - * i386.md (movti_rex64): Fix constraint. - -2003-02-04 Jan Hubicka - - * i386.md (vector push splitters): Fix typo in resolving conflict. - -2003-02-04 Rodney Brown - - * config/i386/i386.c (x86_function_profiler): Fix typo in format. - -2003-02-04 Phil Edwards - - * doc/install.texi (*-*-linux-gnu): Mention glibc requirements - for recent libstdc++. Remove formatting cruft. - -2003-02-04 Jakub Jelinek - - * dwarf2out.c (dwarf2out_finish): Add AT_comp_dir - attribute even if input file name is absolute, but one of the - includes is relative. - -2003-02-04 Joseph S. Myers - - * doc/gcc.texi, doc/gccint.texi, doc/gcov.texi, - doc/include/fdl.texi, doc/invoke.texi: Update to GFDL 1.2. - * doc/install.texi: Update copyright dates. Update to GFDL 1.2. - -2003-02-03 Richard Henderson - - * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, - __popcountsi2, __popcountdi2, __paritysi2, __paritydi2): Change - return type to "int". Shuffle declarations and undef int trap. - * libgcc2.h: Remove their declarations. - * optabs.c (expand_unop): Force outmode to int for bitops. - -2003-02-03 Bob Wilson - - * config/xtensa/xtensa.c (order_regs_for_local_alloc): Order the - coprocessor registers before floating-point registers. - * config/xtensa/xtensa.h (REG_ALLOC_ORDER): Adjust register numbers - to account for a previously removed register. - (SPEC_REG_FIRST, SPEC_REG_LAST, SPEC_REG_NUM, COUNT_REGISTER_REGNUM): - Delete unused macros. - -2003-02-03 Jan Hubicka - - * i386.c (ix86_expand_store_builtin): Always force op1 to register. - (mov*_internal): Fix predicates; require one of operands to not be - memory. - (SSE?MMX move expanders): Fix predicates; force one of operands to - register. - (SSE/MMX push patterns): Reorganize; fix x86-64 code generation. - (movups/movupd/movdqu patterns): Force one of operands to not be - memory. - -2003-02-03 Roger Sayle - - * hooks.c (hook_rtx_rtx_identity): Generic hook function that - takes a single rtx and returns it unmodified. - * hooks.h (hook_rtx_rtx_identity): Prototype here. - * target.h (struct gcc_target): Add "delegitimize_address" - field to target structure. - * target-def.h (TARGET_DELEGITIMIZE_ADDRESS): Provide default - for delegitimize_address target using hook_rtx_rtx_identity. - (TARGET_INITIALIZER): Initialize delegitimize_address field - using TARGET_DELEGITIMIZE_ADDRESS macro. - * simplify-rtx.c (avoid_constant_pool_reference): Handle float - extensions of constant pool references. Use delegitimize_address - to undo the obfuscation of "-fpic". - * Makefile.in (simplify-rtx.o): Add dependency on target.h. - - * config/i386/i386.c (TARGET_DELEGITIMIZE_ADDRESS): Define as - i386_simplify_dwarf_addr. - (ix86_find_base_term): Simplify using i386_simplify_dwarf_addr. - (maybe_get_pool_constant): Likewise. - -2003-02-03 Jan Hubicka - - * i386.c (ix86_expand_int_movcc): Fix setcc sign bit case. - -2003-02-03 Jan Hubicka - - * regclass.c (cannot_change_mode_set_regs): Correct argument order. - -2003-02-02 Kaveh R. Ghazi - - * mips/_tilib.c: Don't include tsystem.h or defaults.h. Don't - define LIBGCC2_WORDS_BIG_ENDIAN. Include coretypes.h and tm.h. - -2003-02-02 Andreas Schwab - - * varasm.c (asm_output_aligned_bss): Declare as possibly unused. - -2003-02-02 Richard Earnshaw - - * arm.md (sibcall_epilogue): Set the "conds" to "clob". - (epilogue_insns): Likewise. - -2003-02-02 John David Anglin - - * doc/install.texi (hppa*-hp-hpux11*): Update installation notes. - -2003-02-02 John David Anglin - - * pa-protos.h (attr_length_millicode_call): Remove second argument. - (attr_length_indirect_call, attr_length_indirect_call, - attr_length_save_restore_dltp): New prototypes. - * pa.c (attr_length_millicode_call): Remove second argument. Check - INSN_ADDRESSES_SET_P in distance calculation. - (output_millicode_call): Check INSN_ADDRESSES_SET_P before using - INSN_ADDRESSES. - (attr_length_call): Check INSN_ADDRESSES_SET_P in distance calculation. - (output_call): Check INSN_ADDRESSES_SET_P before using INSN_ADDRESSES. - Call attr_length_call directly. - (attr_length_indirect_call, output_indirect_call, - attr_length_save_restore_dltp): New functions. - * pa.md (attr_length_millicode_call): Drop second argument from all - patterns. - (return_internal_pic): Delete. - (return_external_pic): Remove use of PIC register and pic operand and - flag checks. - (epilogue): Use return_internal for both normal and pic code. - (call, call_value): Emit new 32-bit pic patterns for symref and - indirect calls. Remove uses for arg pointer and pic register. - (call_symref_pic, call_symref_pic_post_reload, call_reg_pic, - call_reg_pic_post_reload, call_val_symref_pic, - call_val_symref_pic_post_reload, call_val_reg_pic, - call_val_reg_pic_post_reload): New pre and post reload insn patterns. - Implement define_split and define_peephole2 patterns for pre reload - patterns. - (call_symref_64bit, call_internal_reg_64bit, call_value_symref_64bit, - call_value_internal_reg_64bit): Shorten names. - (all call patterns): Explicitly indicate registers used and clobbered. - Use attr_length_indirect_call and attr_length_save_restore_dltp for - attribute length calculation. Move code generation for indirect calls - to output_indirect_call. - (sibcall, sibcall_value): Don't restore PIC register. - (exception_receiver, builtin_setjmp_receiver): Add blockage after PIC - register retore. - -2003-02-02 Gerald Pfeifer - - * doc/install.texi (Testing): Simplify and compress instructions - concerning Dejagnu. - -2003-02-01 John David Anglin - - * collect2.c (pexecute_pid): Rename to pid. - (collect_wait, collect_execute, scan_prog_file, scan_libraries): Use - pid. - -2003-02-01 Geoffrey Keating - - * doc/extend.texi (Function Attributes): Remove documentation - for PowerPC Windows NT function attributes.. - -2003-02-01 Daniel Jacobowitz - - * dwarf2out.c (gen_type_die): Check for typedefs before calling - for TYPE_MAIN_VARIANT. - -2003-02-01 Richard Henderson - - * libgcc2.c: Include auto-host.h. - (ATTRIBUTE_HIDDEN): New. - (__clz_tab): Don't declare here for clz and ctz. - (__clzsi2, __clzdi2): Use count_leading_zeros. - (__ctzsi2, __ctzdi2): Use count_trailing_zeros. - (__popcount_tab): Mark ATTRIBUTE_HIDDEN. - (__paritysi2, __paritydi2): Use shifts instead of __popcount_tab. - * longlong.h (__clz_tab): Mark ATTRIBUTE_HIDDEN. - -2003-02-01 Richard Henderson - - * config/i386/i386.md (addsi_1_zext splitter): Add TARGET_64BIT - to the conditional. - (ashlsi3_1_zext splitter): Likewise. - -2003-02-01 Richard Henderson - - * optabs.c (expand_unop): Use word_mode for outmode of bit scaners. - * libgcc2.c (__ffsdi2, __clzsi2, __clzdi2, __ctzsi2, __ctzdi2, - __popcountsi2, __popcountdi2, __paritysi2 __paritydi2): Change - return type to Wtype. - - * libgcc-std.ver (GCC_3.4): Fix inheritance. - - * config/i386/i386.md (ffssi2): Use nonimmediate_operand for - expander input constraint. - -2003-02-01 Falk Hueffner - - * optabs.h (optab_index): Add OTI_clz, OTI_ctz, OTI_popcount and - OTI_parity. - (clz_optab, ctz_optab, popcount_optab, parity_optab): New. - * optabs.c (widen_clz, expand_parity): New. - (expand_unop): Handle clz and parity. Hardcode SImode as outmode - for libcalls to clz, ctz, popcount, and parity. - (init_optabs): Init clz_optab, ctz_optab, popcount_optab and - parity_optab, and set up libfunc handlers. - * libgcc2.c (__clzsi2, __clzdi2, __ctzsi2, __ctzdi2, - __popcountsi2, __popcountdi2, __paritysi2 __paritydi2, - __popcount_tab): New. - * libgcc2.h: Declare them. - * libgcc-std.ver (GCC_3.4): Add new functions from libgcc2.c. - * genopinit.c (optabs): Add clz_optab, ctz_optab, popcount_optab - and parity_optab. - * builtin-types.def (BT_FN_INT_LONG, BT_FN_INT_LONGLONG): New. - * builtins.def (BUILT_IN_CLZ, BUILT_IN_CTZ, BUILT_IN_POPCOUNT, - BUILT_IN_PARITY, BUILT_IN_FFSL, BUILT_IN_CLZL, BUILT_IN_CTZL, - BUILT_IN_POPCOUNTL, BUILT_IN_PARITYL, BUILT_IN_FFSLL, - BUILT_IN_CLZLL, BUILT_IN_CTZLL, BUILT_IN_POPCOUNTLL, - BUILT_IN_PARITYLL): New. - * builtins.c (expand_builtin_unop): Rename from expand_builtin_ffs - and add optab argument. - (expand_builtin): Expand BUILT_IN_{FFS,CLZ,POPCOUNT,PARITY}*. - * tree.def (CLZ_EXPR, CTZ_EXPR, POPCOUNT_EXPR, PARITY_EXPR): New. - * expr.c (expand_expr): Handle them. - * fold-const.c (tree_expr_nonnegative_p): Likewise. - * rtl.def (CLZ, CTZ, POPCOUNT, PARITY): New. - * reload1.c (eliminate_regs): Handle them. - (elimination_effects): Likewise. - * function.c (instantiate_virtual_regs_1): Likewise - * genattrtab.c (check_attr_value): Likewise. - * simplify-rtx.c (simplify_unary_operation): Likewise. - * c-common.c (c_common_truthvalue_conversion): Handle POPCOUNT_EXPR. - * combine.c (combine_simplify_rtx): Handle POPCOUNT and PARITY. - (nonzero_bits): Handle CLZ, CTZ, POPCOUNT and PARITY. - * config/alpha/alpha.md (clzdi2, ctzdi2, popcountdi2): New. - * config/arm/arm.c (arm_init_builtins): Rename __builtin_clz to - __builtin_arm_clz. - * Makefile.in (LIB2FUNCS_1, LIB2FUNCS_2): Move... - * mklibgcc.in (lib2funcs): ...here and merge. Add new members. - * doc/extend.texi (Other Builtins): Add new builtins. - * doc/md.texi (Standard Names): Add new patterns. - -2003-02-01 Ulrich Weigand - - * reload.c: Revert 2003-01-31 change. - -2003-02-01 Jan Hubicka - - * combine.c (combine_simplify_rtx): Use reversed_comparison_code_parts. - -2003-02-01 Richard Sandiford - - * flags.h (flag_volatile): Remove declaration. - (flag_volatile_global, flag_volatile_static): Likewise. - * c-typeck.c (build_indirect_ref): Don't check flag_volatile. - * toplev.c (flag_volatile): Remove definition. - (flag_volatile_global, flag_volatile_static): Likewise. - (f_options): Remove corresponding entries here. - * varasm.c (make_decl_rtl): Don't check flag_volatile_global - or flag_volatile_static. - * doc/invoke.texi: Remove documentation of -fvolatile, - -fvolatile-global and -fvolatile-static. - -2003-01-31 John David Anglin - - * pa.c (pa_output_function_prologue, pa_output_function_epilogue): Move - updating of total_code_bytes from prologue to epilogue. - -2003-01-31 Ulrich Weigand - - * reload.c (find_reloads): Do not use the mode specified in the insn - pattern as reload mode for address operands. Do not generate optional - reloads for operands where a mandatory reload was already pushed. - Generate optional reloads only in the final pass though find_reloads. - (have_replacement_p): New function. - -2003-01-31 Gerald Pfeifer - - * doc/install.texi (Testing): Remove a reference to our obsolete - /testresults web pages and strip redundant information concerning - test results. - (Binaries): Refer to Microsoft Windows instead of listing all - possible variants. - -2003-02-01 Jan Hubicka - - * loop.c (emit_prefetch_instructions): Do conversion at right place in - RTL chain. - - * combine.c (simplify_set): Reverse order of ragumetns to - REG_CANNOT_CHANGE_MODE_P - * df.c (df_def_record_1): Likewise. - * recog.c (register_operand): Likewise. - * simplify-rtx.c (simplify_subreg): Likewise. - * hard-reg-set.h (REG_CANNOT_CHANGE_MODE_P): Update use of - CANNOT_CHANGE_MODE_CLASS. - * regclass.c (cannot_change_mode_set_regs, invalid_mode_change_p): - Likewise. - * reload.c (push_reload): Likewise. - * alpha.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * ia64.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * mips.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * mips-protos.h (mips_cannot_change_mode_class): Update prototype. - * mips.c (mips_cannot_change_mode_class): Update. - * pa64-regs.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * rs6000.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * s390.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * sh.h (CANNOT_CHANGE_MODE_CLASS): Update definition. - * sh-protos.h (sh_cannot_change_mode_class): Update prototype. - * sh.c (sh_cannot_change_mode_class): Update. - * i386.h (CANNOT_CHANGE_MODE_CLASS): New. - * tm.texi (CANNOT_CHANGE_MODE_CLASS): Update documentation. - -2003-01-31 Geoffrey Keating - - * config/darwin.h (LINK_COMMAND_SPEC): Update for Nathan's recent - change to LINK_COMMAND_SPEC in gcc.c. - -2003-01-31 Jan Hubicka - - PR c/9506 - * i386.c (override_options): Use DEFAULT_PCC_STRUCT_RETURN. - -2003-01-31 John David Anglin - - * pa32-regs.h (REGNO_REG_CLASS, REG_CLASS_FROM_LETTER): Delete - duplicated code. - -2003-01-31 Nathan Sidwell - - * tree.h (TYPE_BINFO_SIZE, TYPE_BINFO_SIZE_UNIT): Remove. - (BINFO_ELTS): New #define. - * stor-layout.c (finalize_record_size): Don't set them. - * cp/cp-tree.h (BINFO_SUBVTT_INDEX, BINFO_VPTR_INDEX, - BINFO_PRIMARY_BASE_OF): Use BINFO_ELTS. - (BINFO_LANG_ELTS): New #define. - * cp/tree.c (make_binfo): Use BINFO_LANG_ELTS. - * java/class.c (make_class): Use BINFO_ELTS. - (set_super_info): Likewse. - (add_interface_do): Likewise. - * objc/objc-act.c (start_class): Use BINFO_ELTS. - -2003-01-31 Danny Smith - - * timevar.c (getrusage): Don't ever declare if not HAVE_GETRUSAGE. - (times): Don't ever declare if not HAVE_TIMES. - (clock): Don't ever declare if not HAVE_CLOCK. - -2003-01-30 Richard Henderson - - * flow.c (update_life_info): Zap life info after cleanup_cfg. - (regno_uninitialized): Use correct live at function entry set. - (regno_clobbered_at_setjmp): Likewise. - - * expr.c (store_expr): Promote all MEM intermediates to regs. - -2003-01-30 Kazu Hirata - - * config/arm/arm.c: Fix comment typos. - * config/arm/arm.h: Likewise. - * config/arm/netbsd-elf.h: Likewise. - * config/arm/netbsd.h: Likewise. - -2003-01-30 Geoffrey Keating - - * gengtype.c (struct walk_type_data): Add needs_cast_p. - (walk_type): Set needs_cast_p in walk_type_data. - (write_types_process_field): Supply casts when required to suppress - warnings. - (write_root): Cast gt_pch_n_S to suppress warning. - * Makefile.in: Remove -Wno-error from gtype-desc.o and c-decl.o. - * config/rs6000/rs6000.c (print_operand): Mask off high bits only - when they might exist. - * config/rs6000/t-rs6000: Remove -Wno-error from varasm.o, - insn-conditions.o, and rs6000.o. - -2003-01-30 Richard Henderson - - * ggc-page.c (G.context_depth_allocations): New. - (G.context_depth_collections): New. - (alloc_page): Set G.context_depth_allocations. - (ggc_collect): Set G.context_depth_collections. - (ggc_push_context): Limit to HOST_BITS_PER_LONG contexts. - (ggc_pop_context): Early exit for no allocations or collections. - -2003-01-30 Richard Henderson - - * tree-inline.c (walk_tree): Streamline duplicate hash table lookup. - -2003-01-30 Richard Earnshaw - - * arm.c (arm_compute_initial_elimination_offset): If optimizing for - size, the link register is always saved if any other register is - saved. - -2003-01-30 Kazu Hirata - - * config/h8300/h8300-protos.h: Update the prototype for - compute_plussi_cc. - (cpp_reader): Declare before it is used. - * config/h8300/h8300.c (compute_plussi_cc): Change the return - type to int. - * config/h8300/h8300.md (monitor_prologue): Call abort() if we - see an unknown H8 variant. - -2003-01-30 Ralf Corsepius - - PR target/9316 - * config/rs6000/rtems.h: Add CPP_OS_DEFAULT_SPEC. - * config/rs6000/sysv4.h: Add CPP_OS_RTEMS_SPEC. - * config/rs6000/t-rtems: New file. multilib variants to match OS. - * config.gcc (powerpc-*-rtems*): Use rs6000/t-rtems instead of - rs6000/t-ppcgas so we get the desired multilibs. - -2003-01-30 Nick Clifton - - * config/arm/arm.c (arm_output_epilogue): Update stack pointer - when popping saved IP register off the stack. - -2003-01-30 Kazu Hirata - - * config/rs6000/aix43.h: Fix comment typos. - * config/rs6000/aix51.h: Likewise. - * config/rs6000/aix52.h: Likewise. - * config/rs6000/altivec.h: Likewise. - * config/rs6000/rs6000.c: Likewise. - * config/rs6000/rs6000.h: Likewise. - * config/rs6000/rs6000.md: Likewise. - * config/rs6000/spe.md: Likewise. - -2003-01-29 Mark Mitchell - - * c-common.c (builtin_define_float_constants): Define - ___HAS_INFINITY__ and ___HAS_QUIET_NAN__. - -2003-01-30 Kazu Hirata - - * config/sh/lib1funcs.asm: Fix comment typos. - * config/sh/linux.h: Likewise. - * config/sh/sh.c: Likewise. - * config/sh/sh.md: Likewise. - -2003-01-30 Loren James Rittle - - * objc/Make-lang.in (objc-parse.y): Find c-parse.in in $(srcdir). - -2003-01-30 Alexandre Oliva - - * config/fp-bit.h (__make_dp): Declare if TMODES. - -2003-01-29 Kazu Hirata - - * config/h8300/h8300.h (PREDICATE_CODES): Add entries for - general_operand_src and general_operand_dst. - -2003-01-29 David Edelsohn - - * config/rs6000/rs6000.c (function_arg_pass_by_reference): - Return true for variable sized types. - (rs6000_va_arg): Handle variable sized types passed by reference - on non-SVR4 ABI. - -2003-01-29 Richard Earnshaw - - * arm.c (arm_legtimize_address): New function. - * arm-protos.h (arm_legtimize_address): Add prototype. - * arm.h (ARM_LEGITIMIZE_ADDRESS): Use arm_legitimize_address. - (LEGITIMIZE_ADDRESS, THUMB_LEGITIMIZE_ADDRESS): Wrap with - do ... while (0) - -2003-01-29 Joel Sherrill - - PR bootstrap/9296 - * gthr-rtems.h: Define __GTHREAD_MUTEX_INIT. Apparently no code - depended on it being defined until now. - -2003-01-29 Joel Sherrill - - PR target/9295 - * config/mips/rtems.h: Predefine __USE_INIT_FINI__ so generic - RTEMS code knows which C++ initialization style the toolset - configuration is using. - -2003-01-29 Joel Sherrill - - PR bootstrap/9293 - * config/m68k/t-crtstuff: Replace spaces with tabs, add - $(MULTILIB_CFLAGS) as compiler option and multilib crtbegin/end.o. - -2003-01-29 Joel Sherrill - - PR bootstrap/9292 - * config.gcc (hppa1.1-rtems): Did not include t-rtems nor enable - RTEMS threads. - * config/pa/rtems.h (LIB_SPEC): Use -N when linking. - -2003-01-29 Nick Clifton - - * Makefile.in (c-parse.o): Locate source file in $(parsedir) - not $(srcdir). - -2003-01-29 Andrew Haley - - * tree-inline.c (walk_tree): Add CHAR_TYPE. - -2003-01-29 Jan Hubicka - - * i386.md (subdi3_carry_rex64): Fix typo. - -2003-01-28 Stan Shebs - - * coretypes.h (cpp_reader): Forward declare struct. - * c-pragma.h (cpp_reader): Remove forward declaration. - * hashtable.h (cpp_reader): Likewise. - * scan.h (cpp_reader): Likewise. - * tree.h (cpp_reader): Likewise. - * config/darwin-protos.h (cpp_reader): Likewise. - * config/arm/arm-protos.h (cpp_reader): Likewise. - * config/rs6000/rs6000-protos.h: Remove GCC_CPPLIB_H ifdef, use - struct cpp_reader in prototypes. - -2003-01-28 Christian Cornelssen - - * doc/install.texi: Add documentation for installation into - tooldirs and with DESTDIR. - -2003-01-28 Richard Henderson - - * config.gcc (ia64*-*-aix*): Remove. - * config/ia64/aix.h, config/ia64/t-aix: Remove file. - * config/ia64/unwind-aix.c: Remove file. - -2003-01-28 Andreas Schwab - - * config/m68k/m68k.md (tablejump+2): Don't sign extend an address - register. - * config/m68k/apollo68.h (ASM_RETURN_CASE_JUMP): Likewise. - * config/m68k/coff.h (ASM_RETURN_CASE_JUMP): Likewise. - * config/m68k/linux.h (ASM_RETURN_CASE_JUMP): Likewise. - * config/m68k/m68kelf.h (ASM_RETURN_CASE_JUMP): Likewise. - * config/m68k/mot3300.h (ASM_RETURN_CASE_JUMP): Likewise. - * config/m68k/netbsd-elf.h (ASM_RETURN_CASE_JUMP): Likewise. - * config/m68k/pbb.h (ASM_RETURN_CASE_JUMP): Likewise. - -2003-01-28 Richard Sandiford - - * combine.c (nonzero_bits): Fix check for negative divide operands. - -2003-01-28 Richard Henderson - - * config/ia64/ia64.c (ia64_rwreloc_section_type_flags): New. - * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): New. - -2003-01-28 Richard Henderson - - * cse.c (find_best_addr): Kill !ADDRESS_COST code. - - * config/cris/cris.c (cris_address_cost): Make static. - (TARGET_RTX_COSTS, TARGET_ADDRESS_COST): New. - * config/cris/cris.h (ADDRESS_COST): Remove. - * config/cris/cris-protos.h: Update. - -2003-01-23 Mike Stump - - * regclass.c (init_reg_autoinc): New function. - (regclass): Move initialization of forbidden_inc_dec_class from - here... - (init_regs): to here. Avoids reinitialization for each function, - saving compilation time. - -2003-01-28 Jason Merrill - - * cpplib.h (struct cpp_options): Add warn_deprecated field. - * cppinit.c (cpp_create_reader): Turn it on by default. - * c-opts.c (c_common_decode_option): Set it. - * cpplib.c (do_pragma_once): Only complain about #pragma once - if warn_deprecated is set. - -2003-01-28 Dale Johannesen - - * emit-rtl.c (const_double_htab_hash): Use mode in the hash. - * loop.c (scan_loop): Move movables on -Os rich-register targets. - * config/rs6000/rs6000.md (sibcall*): Use match_operand for LR. - -2003-01-28 Richard Henderson - - * target.h (targetm.address_cost): New. - * target-def.h (TARGET_ADDRESS_COST): New. - (TARGET_RTX_COSTS): Uncomment. Oops. - * cse.c (address_cost): Use new target hook. - (default_address_cost): New. - * output.h (default_address_cost): Declare. - * hooks.c (hook_int_rtx_0): New. - * hooks.h (hook_int_rtx_0): Declare. - * loop.c (combine_givs_p): Remove if 0 code. - * system.h (ADDRESS_COST): Poison. - - * config/alpha/alpha.c, config/alpha/alpha.h, config/d30v/d30v.c, - config/d30v/d30v.h, config/ia64/ia64.c, config/ia64/ia64.h, - config/m32r/m32r.c, config/m32r/m32r.h, config/mcore/mcore.c, - config/mcore/mcore.h, config/mmix/mmix.c, config/mmix/mmix.h, - config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/sparc/sparc.c, - config/sparc/sparc.h, config/v850/v850.c, config/v850/v850.h, - config/xtensa/xtensa.c, config/xtensa/xtensa.h - (TARGET_ADDRESS_COST): Define as hook_int_rtx_0. - (ADDRESS_COST): Remove. - - * config/arc/arc-protos.h, config/arc/arc.c, config/arc/arc.h, - config/avr/avr-protos.h, config/avr/avr.c, config/avr/avr.h, - config/c4x/c4x-protos.h, config/c4x/c4x.c, config/c4x/c4x.h, - config/dsp16xx/dsp16xx-protos.h, config/dsp16xx/dsp16xx.c, - config/dsp16xx/dsp16xx.h, config/i386/i386-protos.h, - config/i386/i386.c, config/i386/i386.h, config/i960/i960-protos.h, - config/i960/i960.c, config/i960/i960.h, config/ip2k/ip2k-protos.h, - config/ip2k/ip2k.c, config/ip2k/ip2k.h, config/mips/mips-protos.h, - config/mips/mips.c, config/mips/mips.h, - config/m68hc11/m68hc11-protos.h, config/m68hc11/m68hc11.c, - config/m68hc11/m68hc11.h, config/ns32k/ns32k-protos.h, - config/ns32k/ns32k.c, config/ns32k/ns32k.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/vax/vax-protos.h, - config/vax/vax.c, config/vax/vax.h - (foo_address_cost): Make static. - (TARGET_ADDRESS_COST): New. - (ADDRESS_COST): Remove. - - * config/arm/arm.h, config/arm/arm.c, config/m88k/m88k.h, - config/m88k/m88k.c, config/romp/romp.h, config/romp/romp.c, - config/sh/sh.c, config/sh/sh.h, config/stormy16/stormy16.c, - config/stormy16/stormy16.h - (ADDRESS_COST): Move code ... - (foo_address_cost): ... here. - (TARGET_ADDRESS_COST): New. - - * config/m32r/m32r.c (m32r_address_cost): Remove. - * config/m32r/m32r-protos.h: Update. - - * config/mmix/mmix.c (mmix_address_cost): Remove. - * config/mmix/mmix-protos.h: Update. - - * config/mn10300/mn10300.c (mn10300_address_cost_1): Rename from - mn10300_address_cost; move unsig allocation ... - (mn10300_address_cost): ... here. - (TARGET_ADDRESS_COST): New. - * config/mn10300/mn10300-protos.h: Update. - * config/mn10300/mn10300.h (ADDRESS_COST): Remove. - - * doc/tm.texi: Update. - -2003-01-28 Vladimir Makarov - - * haifa-sched.c (schedule_insn): Return necessary cycle advance - after issuing the insn. - (rank_for_schedule): Make a insn with /S the highest priority - insn. - (move_insn): Ignore schedule groups. Clear SCHED_GROUP_P. - (choose_ready): Check SCHED_GROUP_P. - (schedule_block): Advance cycle after issuing insn if it is - necessary. Don't reorder insns if there is an insn with /S. - (set_priorities): Ignore schedule groups. - - * sched-deps.c (remove_dependence, group_leader): Remove the - functions. - (add_dependence): Ignore schedule groups. - (set_sched_group_p): Don't make copy of dependencies from previous - insn of the schedule group. Add anti-dependency to the previous - insn of the schedule group. - (compute_forward_dependences): Ignore schedule groups. - - * sched-ebb.c (init_ready_list): Ignore schedule groups. - - * sched-rgn.c (init_ready_list): Ditto. - (can_schedule_ready_p): Ditto. - -2003-01-28 Vladimir Makarov - - * config/i386/i386.md (*movsi_1): Use movdqa to move one xmm - register to another one. - -2003-01-28 Richard Henderson - - * calls.c (default_must_pass_in_stack): Fix typo in !type case. - -2003-01-28 Roger Sayle - - * cse.c (cse_insn): Avoid redundant REG_EQUAL notes. - -2003-01-28 Richard Sandiford - - * config/sh/sh.h (CLASS_MAX_NREGS): If TARGET_SHMEDIA, and the given - class contains a floating-point register, return the size of the - mode in half words. - -2003-01-28 Jan Hubicka - - * i386.c (ix86_carry_flag_operator): New predicate. - (fcmov_operator): Fix whitespace. - (ix86_expand_carry_flag_compare): Deal with floating point. - (ix86_expand_int_movcc): Deal with fp; update insn expansion - (ix86_expand_int_addcc): Likewise. - (ix86_expand_strlensi_unroll_1): likewsie. - * i386.h (PREDICATE_CODES): Add ix86_carry_flag_operator. - * i386.md (add?i_carry_rex64): Use new predicate. - (sub?i3_carry_rex64): Likewise. - (x86_mov?icc_0_m1*): Likewise. - -2003-01-28 Andreas Schwab - - * cfgloopmanip.c (create_preheader): Initialize src to avoid - warning. - - * expmed.c (emit_store_flag): Fix cast to avoid sign - comparison warning. - - * combine.c (force_to_mode): Add cast to fix warning when - STORE_FLAG_VALUE is negative. - -2003-01-27 Richard Henderson - - * Makefile.in (cse.o): Depend on TARGET_H. - * cse.c (rtx_cost): Use targetm.rtx_costs. - * system.h (CONST_COSTS RTX_COSTS DEFAULT_RTX_COSTS): Poison. - * doc/tm.texi: Update. - - * target.h (targetm.rtx_costs): New. - * target-def.h (TARGET_RTX_COSTS): New. - * hooks.c (hook_bool_rtx_int_int_intp_false): New. - * hooks.h: Update. - - * config/alpha/alpha.c (alpha_rtx_cost_data): New. - (alpha_rtx_costs, TARGET_RTX_COSTS): New. - * config/alpha/alpha.h (PROCESSOR_MAX): New. - (CONST_COSTS, RTX_COSTS): Remove. - - * config/arc/arc.c, config/arc/arc.h, config/c4x/c4x.c, - config/c4x/c4x.h, config/cris/cris.c, config/cris/cris.h, - config/d30v/d30v.c, config/d30v/d30v.h, config/dsp16xx/dsp16xx.c, - config/dsp16xx/dsp16xx.h, config/frv/frv.c, config/frv/frv.h, - config/h8300/h8300.c, config/h8300/h8300.h, config/i370/i370.c, - config/i370/i370.h, config/i386/i386.c, config/i386/i386.h, - config/i960/i960.c, config/i960/i960.h, config/ia64/ia64.c, - config/ia64/ia64.h, config/m32r/m32r.c, config/m32r/m32r.h, - config/m68k/m68k.c, config/m68k/m68k.h, config/m88k/m88k.c, - config/m88k/m88k.h, config/mcore/mcore.c, config/mcore/mcore.h, - config/mips/mips.c, config/mips/mips.h, config/mn10200/mn10200.c, - config/mn10200/mn10200.h, config/mn10300/mn10300.c, - config/mn10300/mn10300.h, config/ns32k/ns32k.c, config/ns32k/ns32k.h, - config/pa/pa.c, config/pa/pa.h, config/pdp11/pdp11.c, - config/pdp11/pdp11.h, config/romp/romp.c, config/romp/romp.h, - config/rs6000/rs6000.c, config/rs6000/rs6000.h, config/s390/s390.c, - config/s390/s390.h, config/sh/sh.c, config/sh/sh.h, - config/stormy16/stormy16.c, config/stormy16/stormy16.h, - config/v850/v850.c, config/v850/v850.h, - config/xtensa/xtensa.c, config/xtensa/xtensa.h - (CONST_COSTS, RTX_COSTS): Move code ... - (foo_rtx_costs, TARGET_RTX_COSTS): ... here. - - * config/arm/arm.c (arm_rtx_costs_1): Rename from arm_rtx_costs. - (arm_rtx_costs, TARGET_RTX_COSTS): New. - * config/arm/arm-protos.h: Update. - * config/arm/arm.h (DEFAULT_RTX_COSTS): Remove. - - * config/avr/avr.h (CONST_COSTS): Move code ... - * config/avr/avr.c (avr_rtx_costs): ... here. - (default_rtx_costs): Make static. - * config/avr/avr-protos.h: Update. - - * config/h8300/h8300.c (const_costs): Make static. - (h8300_and_costs, h8300_shift_costs): Likewise. - * config/h8300/h8300-protos.h: Update. - - * config/ip2k/ip2k.h (DEFAULT_RTX_COSTS): Remove. - (CONST_COSTS): Move code ... - * config/ip2k/ip2k.c (ip2k_rtx_costs): ... here. Rename from - default_rtx_costs; update for signature change. - * config/ip2k/ip2k-protos.h: Update. - - * config/m68hc11/m68hc11.h (RTX_COSTS): Remove. - (CONST_COSTS): Move code ... - * config/m68hc11/m68hc11.c (m68hc11_rtx_costs): ... here. - (TARGET_RTX_COSTS): New. - (m68hc11_rtx_costs_1): Rename from m68hc11_rtx_costs; make static. - * config/m68hc11/m68hc11-protos.h: Update. - - * config/m68k/m68k.c (const_int_cost): Make static. - * config/m68k/m68k-protos.h: Update. - - * config/mcore/mcore.c (mcore_const_costs): Make static. - (mcore_and_cost, mcore_ior_cost): Likewise. - * config/mcore/mcore-protos.h: Update. - - * config/mmix/mmix.c (mmix_rtx_costs, TARGET_RTX_COSTS): New. - (mmix_rtx_cost_recalculated): Remove. - * config/mmix/mmix.h (DEFAULT_RTX_COSTS): Remove. - * config/mmix/mmix-protos.h: Update. - - * config/sh/sh.c (shiftcosts): Make static. - (addsubcosts, andcosts, multcosts): Likewise. - * config/sh/sh-protos.h: Update. - - * config/sparc/sparc.c (TARGET_RTX_COSTS): New. - (sparc_rtx_costs): Make static; update for change in signature. - * config/sparc/sparc.h (RTX_COSTS_CASES, RTX_COSTS): Remove. - * config/sparc/sparc-protos.h: Update. - - * config/v850/v850.c (const_costs): Make static. - * config/v850/v850-protos.h: Update. - - * config/vax/vax.h (RTX_COSTS): Remove. - (CONST_COSTS): Move code ... - * config/vax/vax.c (vax_rtx_costs_1): ... here; rename - from vax_rtx_cost. - (vax_rtx_costs, TARGET_RTX_COSTS): New. - -2003-01-27 Richard Henderson - - * config/vax/vax.h (ASM_OUTPUT_MI_THUNK): Remove. Really. - * config/vax/vax-protos.h: Update. Really. - -2003-01-28 Alexandre Oliva - - * config/mips/mips.h (UNITS_PER_HWFPVALUE): Renamed from... - (UNITS_PER_FPVALUE): Defined as the width of a long double, or - zero if no hardware floating point. - (LONG_DUBLE_TYPE_SIZE): Set to 128 on N32 and N64. - (MAX_FIXED_MODE_SIZE): Define to LONG_DOUBLE_TYPE_SIZE. - (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Define. - (BIGGEST_ALIGNMENT): Same as LONG_DOUBLE_TYPE_SIZE. - (FUNCTION_VALUE_REGNO_P): Set for FP_RETURN+2 on N32 and N64. - * config/mips/mips.c (mips_arg_info): Pass TFmode values in - even FP registers on N32 and N64. - (mips_setup_incoming_varargs): Use UNITS_PER_HWFPVALUE. - (mips_va_start): Adjust alignment of ARG_POINTER_REGNUM. - (mips_va_arg): Use UNITS_PER_HWFPVALUE. Impose additional - even-register-like alignment to 128-bit arguments. - (save_restore_insns): Use UNITS_PER_HWFPVALUE. - (mips_function_value): Likewise. Return TFmode in $f0 and $f2 - on N32 or N64. - * config/mips/_tilib.c (__negti2, __ashlti3, __lshrti3): New. - * config/mips/t-iris6 (LIB2FUNCS_EXTRA): Add _tilib.c. - (TPBIT): Set to tp-bit.c. - (tp-bit.c): Create out of fp-bit.c. - -2003-01-28 Gabriel Dos Reis - - * c-parse.in: Remove '%expect 32' directive in objc mode. - -2003-01-27 Nathan Sidwell - - * Makefile.in (LIB2FUNCS_ST): Remove _gcov. - (LIBGCOV): New variable. - (libgcc.mk): Add LIBGCOV. - (LIBGCC_DEPS): Add libgcov.c. - (libgcov.a): New target. - (clean): Remove libgcov.a. - (install-libgcc): Do libgcov too. - (stage1-start, stage2-start, stage3-start, stage4-start): Deal - with libgcov.a. - * libgcc2.c (L_gcov): Move into ... - * libgcov.c: ... here. New file. - * mklibgcc.in: Add libgcov rules. - * gcc.c (LINK_COMMAND_SPEC): Add -lgcov when profiling. - - * doc/invoke.texi (profile-arcs, test-coverage): Update and - clarify. - - * profile.c (index_counts_file): Remove duplicate check for open file. - -2003-01-27 Jerry Quinn - - * gcc/doc/invoke.texi (Optimization Options): Group together - optional and experimental flags. Move trapv and bounds-check - out of this section. Group floating point flags together. - (Code Gen Options): Move trapv and bounds-check to here. - -2003-01-27 Josef Zlomek - - * gcse.c (constprop_register): Check NEXT_INSN (insn) != NULL. - -2003-01-27 Richard Earnshaw - - PR optimization/9090 - * function.c (purge_addressof_1): After pushing an addressed register - onto the stack, simplify the result. - -2003-01-27 Volker Reichelt - - * doc/extend.texi: Fix typo. - -2003-01-27 Volker Reichelt - - * doc/cppopts.texi: Fix typo. - * doc/objc.texi: Likewise. - * doc/passes.texi: Likewise. - -2003-01-27 Alexandre Oliva - - * real.c (ibm_extended_format): Add 53 to minimum exponent. - (encode_ibm_extended): Adjust. - -2003-01-26 Gabriel Dos Reis - - * timevar.def (TV_OVERLOAD, TV_TEMPLATE_INSTANTIATION): New - timevar_id enumerations. - -2003-01-26 Kazu Hirata - - * combine.c: Fix formatting. - -2003-01-26 Kazu Hirata - - * doc/gccint.texi: Update the copyright. - -2003-01-26 Kazu Hirata - - * doc/cpp.texi: Fix typos. - * doc/extend.texi: Likewise. - * doc/gty.texi: Likewise. - * doc/install.texi: Likewise. - * doc/passes.texi: Likewise. - * doc/rtl.texi: Likewise. - * doc/tm.texi: Likewise. - -2003-01-26 Kazu Hirata - - * config/ia64/fde-glibc.c: Fix comment typos. - * config/ia64/hpux.h: Likewise. - * config/ia64/ia64.c: Likewise. - * config/ia64/ia64.h: Likewise. - * config/ia64/unwind-ia64.c: Likewise. - -2003-01-26 Kazu Hirata - - * config/i386/i386-modes.def: Fix comment typos. - * config/i386/i386.c: Likewise. - * config/i386/i386.md: Likewise. - -2003-01-26 Steven Bosscher - - * config/avr/avr.h, config/cris/aout.h, config/elfos.h, - config/i386/freebsd-aout.h, config/mips/iris6.h: Undefine - ASM_FINISH_DECLARE_OBJECT before defining it. - * toplev.c (rest_of_decl_compilation): Don't define - ASM_FINISH_DECLARE_OBJECT. Only use it if it is defined. - (rest_of_type_compilation): Don't ATTRIBUTE_UNUSED function - parameters for DWARF2 targets because they _are_ used. - -2003-01-26 Alexandre Oliva - - * fp-bit.h: Define macros for TFmode floating-point constants - in IBM-extended TFmode types. - (TMODES): Define if __LDBL_MANT_DIG__ has the newly-supported - widths. - * config/fp-bit.c (pack_d, unpack_d): Support IBM-extended - TFmode type. - - * config/fp-bit.h: Define macros for TFmode floating-point - constants in IEEE quad TFmode type. Declare functions according - to L_ macros. - (TMODES): Define if __LDBL_MANT_DIG__ is 113. - (TFtype, TItype, UTItype): Define if TMODES is defined. - (MAX_UDI_INT, MAX_DI_INT, BITS_PER_DI): Likewise. - (F_T_BITOFF, D_T_BITOFF): Define. - (IMPLICIT_1, IMPLICIT_2): Cast constants to types that are - guaranteed to be wide enough. - * config/fp-bit.c: Check for L_ macros for tf functions. - (__thenan_tf): New. - (nan): Adjust. - (pack_d, unpack_d): Support IEEE 854 quad type. - (_fpmul_parts): Support TFmode. Compute exponent adjustment - from FRAC_NBITS, FRAC_BITS and NGARDS. - (usi_to_float): Cast constants to be shifted to fractype - instead of assuming long long is wide enough. - (sf_to_tf, df_to_tf, __make_tp, tf_to_df, tf_to_sf): New. - -2003-01-26 Andreas Jaeger - - * df.c: Remove prototype of unused function df_regno_rtl_debug. - -2003-01-26 Alexandre Oliva - - * Makefile.in (FPBIT_FUNCS): Added _sf_to_tf. - (DBBIT_FUNCS): Added _df_to_tf. - (TPBIT_FUNCS): New. - (libgcc.mk): Pass TPBIT and TPBIT_FUNCS down. - (LIBGCC_DEPS): Added TPBIT. - * mklibgcc.in: Support TPBIT and TPBIT_FUNCS. - - * optabs.c (expand_binop) : Return xtarget if we haven't - been able to move the result to target. - - * expr.c (emit_group_store): Initialize dst with CONST0_RTX - for the appropriate mode. - - * calls.c (emit_library_call_value_1): Handle return values - in a PARALLEL. - - * rtl.c (get_mode_alignment): Moved to... - * stor-layout.c: ... here. - - * print-rtl.c (print_rtx): Don't print MEM details in - GENERATOR_FILEs. - -2003-01-26 Michael Hayes - - * df.h: Update comments, tidy formatting. - (DF_FORWARD, DF_REVERSE, DF_UNION, DF_INTERSECTION): Rename from FORWARD, - REVERSE, UNION, INTERSECTION. All uses updated. - (OLD_DF_INTERFACE): Remove. - (struct insn_info): Remove commented out insn field. - * df.c: Update comments, tidy formatting. - (df_def_table_realloc): Remove. - - -2003-01-26 Alan Modra - - * calls.c (save_fixed_argument_area): Tidy. - (restore_fixed_argument_area): Tidy. Set alignment of stack_area. - (expand_call): Comment typo fixes. Don't init low_to_save. Start - call chain loop at 1 if !try_tail_call. Formatting. - (emit_library_call_value_1): Don't init low_to_save or high_to_save. - Use save_fixed_argument_area and restore_fixed_argument_area. - -2003-01-26 Michael Hayes - - * df.c (df_uses_record): Handle CC0. - -2003-01-25 Ulrich Weigand - - * reload.c (maybe_memory_address_p): New function. - (find_reloads_address): Use it instead of memory_address_p. - -2003-01-25 Kaz Kojima - - * final.c (shorten_branches): Align the address of code label - when computing initial lengths and addresses. - -2003-01-25 Kazu Hirata - - * config/m68hc11/m68hc11.md: Fix a comment typo. - -2003-01-25 Andreas Jaeger - - * config/i386/i386.c (x86_output_mi_thunk): Correct test for - TARGET_MACHO. - -2003-01-25 Roger Sayle - - * gcse.c (bypass_last_basic_block): New global variable. - (bypass_block): Use redirect_edge_and_branch_force to redirect - fall-through edges. Use bypass_last_basic_block to determine - which blocks have valid PRE information. - (bypass_conditional_jumps): Initialize bypass_last_basic_block. - -2003-01-25 Jan Hubicka - - * gcse.c (local_cprop_pass): Update reg_sets table when needed. - -2003-01-25 Jan Hubicka - Eric Botcazou - - PR opt/8492 - * gcse.c (one_cprop_pass): Delete unreachable blocks. - -2003-01-25 Richard Henderson - - * config/ia64/ia64.c (ia64_rwreloc_select_rtx_section): Rename - from ia64_aix_select_rtx_section. - (ia64_rwreloc_select_section): Simlarly; use default*_1 function - instead of saving and restoring flag_pic. - (ia64_rwreloc_unique_section): Similarly. - * config/ia64/aix.h (TARGET_ASM_SELECT_SECTION, - TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): Update. - * config/ia64/hpux.h (TARGET_ASM_SELECT_SECTION, - TARGET_ASM_UNIQUE_SECTION, TARGET_ASM_SELECT_RTX_SECTION): New. - -2003-01-25 Kazu Hirata - - * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Update a - comment. - -2003-01-25 Richard Henderson - - * config/m68k/m68k-none.h (ASM_SPEC): Adjust inter-option spacing. - -2003-01-25 Kelley Cook - - * ggc-simple.c (debug_ggc_tree): Add PTR cast. - -2003-01-25 Segher Boessenkool - - * bitmap.h (BITMAP_WORD): New typedef: fundamental storage - type for bitmaps. Use unsigned long. - (nBITMAP_WORD_BITS): New macro. - (BITMAP_WORD_BITS): New macro. - (rest of file): Use it. - * bitmap.c: Use it. - -2003-01-25 Richard Henderson - - 2002-02-19 Robert Lipe - * config/i386/t-sco5gas: (CRTSTUFF_T_CFLAGS_S): Delete -mcoff. - -2003-01-25 Roger Sayle - - * builtins.c (purge_builtin_constant_p): Scan insn stream - sequentially rather than by basic block. - * function.c (purge_addressof): Simplify test with INSN_P. - -2003-01-25 Kazu Hirata - - * combine.c (simplify_comparison, case AND): Remove a redundant test. - -2003-01-25 Roger Sayle - - * function.h (struct function): New field calls_constant_p. - (current_function_calls_constant_p): New macro for above. - * function.c (prepare_function_start): Initialize calls_eh_return - and calls_constant_p. - * builtins.c (expand_builtin_constant_p): Set calls_constant_p. - * toplev.c (rest_of_compilation): Only call purge_builtin_constant_p - when the current_function_calls_constant_p. - * integrate.c (expand_inline_function): Set calls_constant_p if - the function being inlined has calls_constant_p set. - -2003-01-25 Roger Sayle - - * cse.c (fold_rtx): Instantiate CONSTANT_P_RTX to 0 when not - optimizing, even if flag_gcse is true. - * toplev.c (rest_of_compilation): purge_builtin_constant_p - only needs to be called when "optimize > 0 && flag_gcse". - -2003-01-25 Roger Sayle - - * stmt.c (emit_case_bit_tests): New routine to implement suitable - switch statements using the equivalent of "if ((1< - - * config/ia64/crtend.asm [HAVE_INITFINI_ARRAY]: Make - __do_global_ctors_aux hidden global and don't put it in - .init_array. - * config/ia64/crtbegin.asm [HAVE_INITFINI_ARRAY]: Put it here - instead so that it comes first. - -2003-01-25 Jan Hubicka - - * df.c (read_modify_subreg_p): When osize == UNITS_PER_WORD, - subreg is read/modify. - -2003-01-25 Jan Hubicka - - * i386.c (ix86_expand_movstr, ix86_expand_clrstr): Consistently - do libcall for large blocks. - * i386.md (comi patterns): Set type to ssecomi. - (sse2_unpck?pd): Fix mode of vec_select. - - * cse.c: Include except.h - (cse_set_around_loop): Do not create new basic blocks. - * Makefile.in (cse.o): Add dependnecy on except.h - -2003-01-25 Jan Hubicka - - * builtins.c (fold_trunc_transparent_mathfn): New function. - (fold_builtin): Use it. - * convert.c (convert_to_real): Re-enable code to convert - math functions; add support for floor familly functions. - -2003-01-25 Zdenek Dvorak - - * Makefile.in (cfgloop.o, cfgloopanal.o, cfgloopmanip.o): Add - dependencies on coretypes.h and $(TM_H). - -2003-01-25 Jan Hubicka - - * builtins.c (fold_trunc_transparent_mathfn): Undo accidental commit. - -2003-01-24 Stuart Hastings - - * config/i386/i386.c (x86_output_mi_thunk): Add Darwin/x86 support. - -2003-01-25 Michael Hayes - - * config/c4x/c4x.md (UNSPEC_BU): New constants. - (UNSPEC_RPTS, UNSPEC_LSH, UNSPEC_CMPHI, UNSPEC_RCPF): Likewise. - (UNSPEC_RND, UNSPEC_RPTB_FILL, UNSPEC_LOADHF_INT): Likewise. - (UNSPEC_STOREHF_INT, UNSPEC_RSQRF, UNSPEC_LOADQF_INT): Likewise. - (UNSPEC_STOREQF_INT, UNSPEC_LDIV, UNSPEC_PUSH_ST): Likewise. - (UNSPEC_POP_ST, UNSPEC_PUSH_DP, UNSPEC_POP_DP): Likewise. - (UNSPEC_POPQI, UNSPEC_POPQF, UNSPEC_ANDN_ST): Likewise. - (UNSPEC_RPTB_INIT, UNSPEC_TOIEEE, UNSPEC_FRIEEE): Likewise. - -2003-01-24 Jan Hubicka - - * emit-rtl.c (reg_attrs_htab): New static variable. - (reg_attrs_htab_hash, reg_attrs_htab_eq, get_reg_attrs): New static - functions. - (reg_rtx): Do not maintain regno_decl. - (gen_rtx_REG_offset, set_reg_attrs_from_mem, set_delc_rtx, - set_mem_attrs_from_reg): New global function. - (init_emit): Do not initialize regno_decl. - (init_emit_once): initialize reg_attrs_htab. - * final.c (alter_subreg): Do not replace REG by SUBREG. - (gen_mem_expr_from_op): Improve output. - (output_asm_operands): Likewise. - * function.c (assign_params): Do not set REGNO_DECL. - * function.h (struct function): Kill regno_decl. - (REGNO_DECL): Kill. - * gengtype.c (adjust_field_rtx_def): Handle new field of reg. - * print_rtl.c (print_rtx): Output REG information. - * regclass.c (reg_scan_mark_refs): Update attrs. - * reload1.c (alter_reg): Likewise. - * simplify_rtx.c (simplify_subreg): Likewise. - * stmt.c (expand_decl): Likewise. - * rtl.def (REG): Add new field. - * rtl.h (struct reg_attrs): New. - (rtunion_def): At rtreg. - (X0MEMATTR): Add checking. - (X0REGATTR, REG_ATTRS, REG_EXPR, REG_OFFSET): New macro. - (set_reg_attrs_from_mem, set_mem_attrs_from_reg, gen_rtx_REG_offset): - Declare. - * tree.h (SET_DECL_RTL): Call set_decl_rtl. - -2003-01-24 Bob Wilson - - * config/xtensa/xtensa.c: Remove unused include of machmode.h. - (xtensa_emit_call, print_operand): Fix printf format strings - to avoid compile warnings. - (xtensa_function_prologue, xtensa_function_epilogue): Change type - of "size" argument to HOST_WIDE_INT to fix compile warnings. - * config/xtensa/xtensa-protos.h - (xtensa_function_prologue, xtensa_function_epilogue): Ditto. - -2003-01-24 Jan Hubicka - - * builtins.c (DEF_BUILTIN): Accept 10 arguments. - (implicit_built_in_decls): New global array. - (mathfn_built_in): New global function. - (fold_trunc_transparent_mathfn): New static function - (expand_builtin_strstr, expand_bultin_strchr, - expand_builtin_strpbrk, expand_builtin_strcpy, - expand_builtin_strncpy, expand_bultin_strcmp, - expand_bultin_strncat, expand_builtin_fputs): Use - implicint_built_in_decls. - (fold_builtin): Fold floor/trunc/round/ceil/nearbyint. - * builtins.def: Fix comments. - (DEF_GCC_BUILTIN, DEF_FALLBACK_BUILTIN, DEF_EXT_FALLBACK_BUILTIN, - DEF_LIB_BUILTIN, DEF_LIB_ALWAYS_BUILTIN, DEF_EXT_LIB_BUILTIN, - DEF_C99_BULTIN, DEF_FRONT_END_LIB_BUILTIN, - DEF_EXT_FRONT_END_LIB_BUILTIN): Pass implicit as needed. - (DEF_C99_C90RES_BULTIN): New. - (*f, *l builtins): Update. - * c-common.c (DEF_BUILTIN): Initialize implicit array. - (c_expand_builtin_printf, c_expand_builtin_fprintf): Update. - * convert.c (strip_float_extensions): New global function. - * tree.h (DEF_BUILTIN): Accept 10 arguments. - (implicit_built_in_decls, mathfn_built_in, strip_float_extension): - Declare. - * java/builtins.c (define_builtin): Handle implicit. - (DEF_BUILTIN): Update. - * tm.texi (TARGET_C99_FUNCTIONS): Document. - * defaults.h (TARGET_C99_FUNCTIONS): Default to 0. - * config/linux.h (TARGET_C99_FUNCTIONS): Default to 1 - when using glibc2. - -2003-01-24 Bob Wilson - - * config.gcc (xtensa-*-elf*): Removed assignments to with_newlib, - extra_parts, and fixincludes. Add xtensa/t-elf tmake_file. - (xtensa-*-linux*): Add xtensa/t-linux tmake_file. - * config/xtensa/crti.asm: New file. - * config/xtensa/crtn.asm: New file. - * config/xtensa/t-elf: New file. - * config/xtensa/t-linux: New file. - * config/xtensa/t-xtensa: Add rules for crti.o and crtn.o. - Move various CFLAGS settings to new t-elf file. - -2003-01-24 Richard Henderson - - PR optimization/4382 - * tree-inline.c (find_builtin_longjmp_call_1): New. - (find_builtin_longjmp_call): New. - (inlinable_function_p): Use it. - -2003-01-24 Zdenek Dvorak - - * config/i386/i386-protos.h (function_arg_pass_by_reference): Declare. - * config/i386/i386.h (FUNCTION_ARG_PASS_BY_REFERENCE): Use it. - * config/i386/i386.c (function_arg_pass_by_reference): New. - (ix86_va_arg): Support arguments passed by reference. - -2003-01-24 Zdenek Dvorak - - * cfgloopanal.c: New file. - * cfgloopmanip.c: New file. - * Makefile.in (cfgloopanal.o, cfgloopmanip.o): New. - (toplev.o, loop.o, doloop.o, unroll.o, cfgloop.o, predict.o, - cfglayout.o): Add dependency on cfgloop.h. - (cfgloop.o): Add flags.h dependency. - * basic-block.h (BB_IRREDUCIBLE_LOOP, BB_SUPERBLOCK): New flags. - (VLS_EXPECT_PREHEADERS, VLS_EXPECT_SIMPLE_LATCHES): Removed. - (struct loop, struct loops, flow_loops_find, flow_loops_update, - flow_loops_free, flow_loops_dump, flow_loop_dump, - flow_loop_scan, flow_loop_tree_node_add, flow_loop_tree_node_remove, - LOOP_TREE,,LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES, - LOOP_ALL, flow_loop_outside_edge_p, flow_loop_nested_p, - flow_bb_inside_loop_p, get_loop_body, loop_preheader_edge, - loop_latch_edge, add_bb_to_loop, remove_bb_from_loops, - find_common_loop, verify_loop_structure): Declarations moved to ... - * cfgloop.h: New file. - * bb-reorder.c (reorder_basic_blocks): Modified. - * cfglayout.c: Include cfgloop.h. - (cleanup_unconditional_jumps, cfg_layout_redirect_edge, - cfg_layout_duplicate_bb, cfg_layout_initialize): Update loop structure. - (break_superblocks): New static function. - (cfg_layout_finalize): Use it. - (cfg_layout_split_block): New function. - * cfglayout.h (struct reorder_block_def): Add copy and duplicated - fields. - (cfg_layout_initialize, cfg_layout_redirect_edge): Declaration - changed. - (cfg_layout_split_block): Declare. - * cfgloop.c: Include cfgloop.h and flags.h. - (flow_loop_dump, flow_loops_free, flow_loop_exit_edges_find, - get_loop_body): Avoid signed versus unsigned comparison warnings. - (make_forwarder_block, flow_loops_find, loop_preheader_edge, - loop_latch_edge): Modified. - (verify_loop_structure): Modified to use flags stored in loop structure; - check irreducible loops. - (cancel_loop, cancel_loop_tree): New functions. - (estimate_probability): Use loop analysis code for predictions. - (estimate_loops_at_level): Avoid signed versus unsigned comparison - warnings. - * doloop.c: Include cfgloop.h. - * loop.c: Include cfgloop.h. - * predict.c: Include cfgloop.h. - * toplev.c: Include cfgloop.h. - * unroll.c: Include cfgloop.h. - * tracer.c (tracer): Modified. - -2003-01-24 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Fix a typo. - -2003-01-24 Ulrich Weigand - - * configure.in (HAVE_AS_TLS): Add s390-*-* and s390x-*-* cases. - * configure: Regenerate. - - * config/s390/s390-protos.h (tls_symbolic_operand): Add prototype. - (tls_symbolic_reference_mentioned_p): Add prototype. - (s390_tls_get_offset): Add prototype. - (emit_pic_move): Remove prototype, replace by ... - (emit_symbolic_move): .. this new prototype. - - * config/s390/s390.c (TARGET_HAVE_TLS): Conditionally define. - (tls_model_chars): New global variable. - (s390_encode_section_info): Encode TLS model. - Use targetm.binds_local_p to check for local symbols. - (s390_strip_name_encoding): New function. - (TARGET_STRIP_NAME_ENCODING): Define. - - (get_thread_pointer): New function. - (legitimize_tls_address): New function. - (legitimize_address): Call it. - (emit_pic_move): Remove, replace by ... - (emit_symbolic_move): ... this new function. - - (larl_operand): Handle TLS operands. - (legitimate_constant_p): Likewise. - (s390_decompose_address): Likewise. - (s390_cannot_force_const_mem): New function. - (TARGET_CANNOT_FORCE_CONST_MEM): Define. - - (s390_output_symbolic_const): Handle TLS unspecs. - (print_operand): New code 'J'. - (machine_function): Add struct member 'some_ld_name'. - (get_some_local_dynamic_name, get_some_local_dynamic_name_1): New. - - (enum s390_builtin): New type. - (code_for_builtin_64, code_for_builtin_31): New global variables. - (s390_init_builtins, s390_expand_builtin): New functions. - (TARGET_INIT_BUILTINS, TARGET_EXPAND_BUILTIN): Define. - - * config/s390/s390.h (TLS_SYMBOLIC_CONST): New macro. - (ASM_OUTPUT_LABELREF): Define. - (ASM_OUTPUT_SPECIAL_POOL_ENTRY): Handle TLS constants. - - * config/s390/s390.md: Define TLS UNSPEC constants. - ("movdi", "movsi"): Handle TLS operands. - ("get_tp_64", "get_tp_31", "set_tp_64", "set_tp_31"): New insns. - ("*tls_load_64", "*tls_load_31"): New insns. - ("call_value_tls", "call_value_tls_exp"): New expanders. - ("brasl_tls", "bras_tls", "basr_tls_64", "basr_tls_31", - "bas_tls_64", "bas_tls_31"): New insns. - -2003-01-24 Nathan Sidwell - - * config/rs6000/rs6000.c (rs6000_parse_abi_options): Make sure - spe ABI is configured, if requested. - -2003-01-24 Volker Reichelt - - * doc/passes.texi: Fix typo. - -2003-01-24 Andreas Schwab - - * stor-layout.c (excess_unit_span): Only define if used. - -2003-01-24 Jerry Quinn - - * gcc/doc/invoke.texi (Optimization Options): List -O levels - for each optimization flag. - -2003-01-24 Kazu Hirata - - * config/h8300/h8300.md (*andsi3_ashift_n_lower): New. - -2003-01-24 Volker Reichelt - - * doc/bugreport.texi: Use @command instead of @code for commands. - * doc/collect2.texi: Likewise. - * doc/headerdirs.texi: Likewise. - * doc/invoke.texi: Likewise. - * doc/standards.texi: Likewise. - * doc/tm.texi: Likewise. - * doc/trouble.texi: Likewise. - -2003-01-24 Nick Clifton - - * config/arm/arm.c (use_return_insn): Do not use a single return - instruction for interrupt handelrs which have to create a stack - frame. - (arm_expand_prologue): Do not pre-bias the return address of - interrupt handlers which create a stack frame. - -2003-01-24 Nick Clifton - - * Add sh2e support: - - 2002-08-12 Alexandre Oliva - - * config/sh/sh.c (output_branch) [TARGET_SH2E]: Handle - med_cbranches. Fix logic in short_cbranches. - - 2002-04-03 Alexandre Oliva - - * config/sh/sh.md (delay for cbranch): Don't annul delay - slots on SH2e. - * config/sh/sh.c (sh_insn_length_adjustment): Add 2 for - cbranch with unfilled delay slot on SH2e. - (output_branch): Fill with a nop the delay slot of a - branch that required a delay slot but didn't get one. - - 2002-04-02 Alexandre Oliva - - * doc/invoke.texi (SH options): Document -m2e. - * config/sh/crt1.asm: Add __SH2E__ Next to __SH3E__. - * config/sh/lib1funcs.asm: Likewise. - * config/sh/sh.c: Replace all uses of TARGET_SH3E with SH2E. - * config/sh/sh.h (CPP_SPEC): Define __SH2E__ for -m2e, and - not __sh1__. - (CONDITIONAL_REGISTER_USAGE): Don't disable FP regs from - SH2E up. - (SH3E_BIT): Renamed to... - (SH_E_BIT): ... this. Replace all uses. - (TARGET_SH2E): Define from SH_E_BIT and TARGET_SH2. - Replace all uses of TARGET_SH3E with TARGET_SH2E. - (TARGET_SWITCHES): Added 2e. - (OVERRIDE_OPTIONS): Set sh_cpu for SH2E. - (processor_type): Added PROCESSOR_SH2E. - * config/sh/sh.md: Replace all uses of TARGET_SH3E with - TARGET_SH2E, except in sqrtsf2_i. - (attribute cpu): Added sh2e. - * config/sh/t-sh (MULTILIB_OPTIONS): Replace m3e with m2e. - (MULTILIB_MATCHES): Use m2e multilib for m3e. - * config.gcc: Add sh2e target support. - -2003-01-24 Phil Edwards - - Rename -W to -Wextra. - * c-decl.c: Update comments. - * c-typeck.c: Likewise. - * flags.h: Likewise. - * function.c: Likewise. - * stmt.c: Likewise. - * toplev.c: Update comments. - (W_options): Add 'extra'. - (display_help): Remove '-W'. - (decode_W_option): Special warn_uninitialized treatment in the case - of -Wextra. - * doc/invoke.texi: Update with new entries. - -2003-01-23 Richard Henderson - - * ifcvt.c (noce_process_if_block): Re-add check vs X being changed - in no-else-block case. Add commentary. - -2003-01-23 Kaveh R. Ghazi - - * configure.in: Revert last change. - -2003-01-23 Kaveh R. Ghazi - - * configure.in: Don't include ansidecl.h in tconfig.h. - * gcov-io.h (PARAMS, ATTRIBUTE_UNUSED): Define if IN_LIBGCC2. - * unwind-dw2-fde.h (last_fde): Use __attribute__, not - ATTRIBUTE_UNUSED. - - * configure: Regenerate. - -2003-01-23 Franz Sirl - - PR java/6748 - * config/rs6000/linux.h (MD_FALLBACK_FRAME_STATE_FOR): Don't destroy - regs->nip. Fix rt_sigreturn frame layout. Add support for newer - kernels. - -2003-01-23 Kaveh R. Ghazi - - * cpplex.c (cpp_interpret_charconst): Squelch warning with cast. - -2003-01-23 Ulrich Weigand - - * genattrtab.c (write_attr_get): Mark 'insn' paramter - as ATTRIBUTE_UNUSED. - -2003-01-23 Richard Earnshaw - - * arm.c (thumb_base_register_rtx_p): New function. - (thumb_index_register_rtx_p): New function. - (thumb_legitimate_address_p): New function. - (thumb_legitimate_offset_p): New function. - * arm.h (REG_STRICT_P): Define according to setting of REG_OK_STRICT. - (ARM_GO_IF_LEGITIMATE_ADDRESS): Use REG_STRICT_P to avoid duplicate - definitions. - (THUMB_GO_IF_LEGITIMATE_ADDRESS): Use thumb_legitimate_address_p. - (THUMB_LEGITIMATE_OFFSET): Delte. - (THUMB_LEGITIMIZE_RELOAD_ADDRESS): Use thumb_legitimate_offset. - * arm-protos.h (thumb_legitimate_address_p): Add prototype. - (thumb_legitimate_offset_p): Likewise. - -2003-01-23 Andreas Schwab - - * unwind.h (_Unwind_GetTextRelBase): Mark parameter as unused. - -2003-01-23 Kaveh R. Ghazi - - * fixinc/Makefile.in (FL_LIST): Revert last change. - -2003-01-23 Volker Reichelt - - PR other/7341 - * invoke.texi (ftest-coverage): Fix broken cross-reference. - Change @code to @command for gcov command. - - * gcc.texi: Adjust title of gcov section. - Adjust copyright. - * gcov.texi: Likewise. - -2003-01-22 Roger Sayle - - PR optimization/8423 - * cse.c (fold_rtx): Only eliminate a CONSTANT_P_RTX to 1 when - its argument is constant, or 0 if !flag_gcse. - * simplify-rtx.c (simplify_rtx): Convert CONSTANT_P_RTX to 1 - if it's argument is constant. - * gcse.c (want_to_gcse_p): Ignore CONSTANT_P_RTX nodes. - (hash_scan_set): Don't record CONSTANT_P_RTX expressions. - (do_local_cprop): Don't propagate CONSTANT_P_RTX constants. - * builtins.c (purge_builtin_constant_p): New function to force - instantiation of any remaining CONSTANT_P_RTX nodes. - * rtl.h (purge_builtin_constant_p): Prototype here. - * toplev.c (rest_of_compilation): Invoke purge_builtin_constant_p - pass after GCSE and before loop. - (flag_gcse): No longer static. - * flags.h (flag_gcse): Prototype here. - -2003-01-22 Ulrich Weigand - - * config/s390/s390.h (HARD_REGNO_MODE_OK): Fix warning regression - introduced by last change. - -2003-01-22 Andreas Schwab - - * ra-rewrite.c (rewrite_program2): Initialize bb to avoid warning. - -2003-01-22 Kazu Hirata - - * config/h8300/h8300.c (h8300_shift_needs_scratch_p): Don't - request a scratch reg on H8S when the shift count is 8. - -2003-01-22 Ulrich Weigand - - * config/s390/s390-protos.h (preferred_la_operand_p): - Remove second parameter. - * config/s390/s390.c (preferred_la_operand_p): Likewise. - * config/s390/s390.h (FRAME_REGNO_P, FRAME_REG_P): New macros. - (HARD_REGNO_MODE_OK): Use FRAME_REGNO_P. - * config/s390/s390.md ("*la_cc_64", "*la_cc_31", splitters): Remove. - Add peepholes to transform ADD to LOAD ADDRESS. - -2003-01-22 Richard Earnshaw - - * arm.c (arm_address_register_rtx_p): New function. - (arm_legitimate_address_p): New function. - (arm_legitimate_index_p): New function. - (legitimize_pic_address): Use arm_legitimate_index_p. - * arm-protos.h (arm_legtimate_address_p): Add prototype. - * arm.h (ARM_GO_IF_LEGITIMATE_INDEX): Delete. - (ARM_GO_IF_LEGITIMATE_ADDRESS): Call arm_legitimate_address_p. - -2003-01-22 Hartmut Penner - - * config/s390/s390.md (floatdfdi2): Insn has type 'itof'. - * config/s390/2064.md (define_bypass): Correct 'Load' and - 'Load-address' bypass values. - -2003-01-22 Andreas Schwab - - * config/ia64/t-ia64 (insn-attrtab.o-warn): Define as -Wno-error. - -2003-01-21 Zack Weinberg - - * genautomata.c (output_internal_insn_latency_func, - output_print_reservation_func): Short circuit when there is no - automaton to generate code for. - -2003-01-21 Kaveh R. Ghazi - - * Makefile.in (ssa-ccp.o): Depend on coretypes.h $(TM_H). - (df.o): Delete duplicate dependency on coretypes.h $(TM_H). - -2003-01-21 Geoffrey Keating - - * config/rs6000/rs6000.md: Remove warning. - (builtin_setjmp_receiver): Likewise. - * config/darwin.c (update_stubs): Slightly improve terrible hack - with identifiers. Add comment pointing out problems with it. - (update_non_lazy_ptrs): Likewise. - -2003-01-21 Richard Henderson - - * dwarf2out.c (lookup_filename): Fix printf format warning. - * system.h (fread_unlocked, fwrite_unlocked): Undef. - - * fixinc/Makefile.in (FL_LIST): Add $($@-warn) hook. - (fixincl.o-warn, gnu-regex.o-warn): New. - * fixinc/fixfixes.c (FIX_PROC_HEAD): Mark parameters unused. - * fixinc/fixtests.c (TEST_FOR_FIX_PROC_HEAD): Likewise. - * fixinc/fixincl.c (process): Fix printf format warning. - -2003-01-21 Ulrich Weigand - - * dwarf2out (output_file_names): Don't crash if called - with empty file_table. - -2003-01-21 Zack Weinberg - - * genautomata.c (output_internal_insn_latency_func): Add - missing break statement to generated code. - -2003-01-21 Roger Sayle - - * stmt.c (same_case_target_p): New function to determine whether - two case labels branch to the same target. Split out from... - (group_case_nodes): ... here. Use same_case_target_p instead. - (strip_default_case_nodes): Remove explicit case nodes - that branch to the default destination. - (expand_end_case_type): Call strip_default_case_nodes after - group_case_nodes, to simplify the case-list before we count it. - Only generate table_label RTX when actually needed. Try to share - thiscase->exit_label and thiscase->data.case_stmt.default_label - when a switch has no explicit default case. Simplify test for - constant index. - -2003-01-21 Kazu Hirata - - * config/h8300/h8300.md (*negsf2_h8300): Use \\t instead of - \t. - (*negsf2_h8300hs): Likewise. - (*addsi3_lshiftrt_16_zexthi): Likewise. - (*iorhi3_lshiftrt_8): Likewise. - -2003-01-21 Ulrich Weigand - - * dwarf2out.c (fde_table_in_use): Mark GTY. - (dwarf2out_cfi_label_num): New variable, marked GTY. - (dwarf2out_cfi_label): Use it instead of static label_num. - * emit-rtl.c (label_num): Mark GTY. - -2003-01-21 Kazu Hirata - - * config/h8300/h8300.c (output_plussi): Support H8/300. - (compute_plussi_length): Likewise. - (compute_plussi_cc): Likewise. - * config/h8300/h8300.md (addsi_h8300): Use output_plussi to - output assembly instructions. - -2003-01-21 Kaveh R. Ghazi - - * calls.c (fix_unsafe_tree): Prototype. - - * Makefile.in (GCC_WARN_CFLAGS): Add $(WERROR) $($@-warn) - (gtype-desc.o-warn, c-decl.o-warn, varasm.o-warn, gcc.o-warn, - insn-conditions.o-warn, out_object_file, gengtype-yacc.o-warn, - c-parse.o-warn): Add -Wno-error. - (STAGE2_FLAGS_TO_PASS): Add WERROR="@WERROR@". - - * configure.in (--enable-werror): Add new flag. - * doc/install.texi (--enable-werror): Document. - * configure: Regenerate. - - * objc/Make-lang.in (objc/objc-parse.o-warn): Add -Wno-error. - -2003-01-21 Andreas Schwab - - * genautomata.c (output_internal_insn_latency_func): Fix missing - close paren in output. - -2003-01-21 Zack Weinberg - - * genautomata.c: Space savings in generated code: - (output_dfa_insn_code_func): Split out the table-enlargement - path to an out-of-line static function, dfa_insn_code_enlarge. - (output_internal_insn_latency_func): Use a lookup table for the - default latencies. - (output_print_reservation_func): Use a lookup table for the - strings. - -2003-01-21 Christian Ehrhardt - - PR opt/7507 - * calls.c (fix_unsafe_tree): Split out from ... - (expand_call): ... here. Use it on the function address too. - -2003-01-20 Richard Henderson - - * expr.h (default_must_pass_in_stack): Move decl outside ifdef. - -2003-01-20 Richard Henderson - - PR opt/7154 - * stmt.c (expand_asm_operands): Validize memory operands. - -2003-01-20 Richard Henderson - - PR opt/8848 - * ifcvt.c (noce_process_if_block): Correct arguments to - modified_between_p for no-else-block case. - -2003-01-20 Kazu Hirata - - * config/h8300/h8300.c (const_costs): Remove a warning. - (output_plussi): Likewise. - (compute_plussi_length): Likewise. - (compute_plussi_cc): Likewise. - -2003-01-20 Kazu Hirata - - * config/h8300/h8300.md (addsi_h8300): Remove the last - alternative. - -2003-01-20 Kazu Hirata - - * config/h8300/h8300.c (get_shift_alg): Remove redundant code. - -2003-01-20 Kaveh R. Ghazi - - * system.h (__NO_STRING_INLINES): Define. - -2003-01-20 John David Anglin - - * ifcvt.c (noce_emit_store_flag): Don't emit store flag if mode of x - is not a scalar int mode. - -2003-01-20 Roger Sayle - - * cse.c (cse_insn): Avoid RTL sharing when updating the RETVAL - insn's notes following a substitution inside a libcall. - -2003-01-20 Zack Weinberg - - * configure.in: Check for system-provided 'uchar' type. - * configure, config.in: Regenerate. - * cpphash.h: Only typedef 'uchar' if the system doesn't. - -2003-01-20 Richard Henderson - - * expr.h (MUST_PASS_IN_STACK): Move implementation... - * calls.c (default_must_pass_in_stack): ... here. - -2003-01-20 Vladimir Makarov - - * genattrtab.h (INSN_ALTS_FUNC_NAME): Move it from genautomata.c. - - * genautomata.c (INSN_ALTS_FUNC_NAME): Move it into genattrtab.h. - - * genattr.c (main): Output default definition of AUTOMATON_ALTS. - Wrap up definition of `insn_alts'. - - * genattrtab.c (main): Wrap up `insn_alts'. - -2003-01-20 Kaveh R. Ghazi - - * collect2.c (ldgetname): Check HAVE_DECL_LDGETNAME before - prototyping. - * configure.in: Check for and ldgetname() prototype. - - * config.in, configure: Regenerate. - -2003-01-20 Nick Clifton - - * config/arm/arm.md (sibcall_epilogue): Add an - UNSPEC_PROLOGUE_USE to prevent the link register from being - considered dead. - -2003-01-20 Jan Hubicka - - * i386.md (SSE cmov splitter): Handle memory operand in operand 5. - -2003-01-20 Andreas Schwab - - * system.h: Don't declare strsignal if the decl test hasn't been - run yet. - -2003-01-20 Kazu Hirata - - * config/h8300/h8300.c (notice_update_cc): Don't assume that - recog_data.operands[0] is always associated with cc0. - -2003-01-19 David Edelsohn - - * collect2.c (ldgetname): Expand declaration to prototype. - * read-rtl.c (atoll): Add prototype. - * system.h (strsignal): Also declare if no declaration found. - -2003-01-19 Alexandre Oliva - - * config.gcc (mips64*-*-linux*): Added. - * config/mips/linux64.h, config/mips/t-linux64: New file. - * config/mips/iris6.h (MIPS_TFMODE_FORMAT): Define. - * config/mips/mips.c (override_options): Use it. - * config/mips/mips.h (TARGET_SWITCHES): Added... - (SUBTARGET_TARGET_SWITCHES): New, empty by default. - * Makefile.in (SPECS): New. - (STAGESTUFF, specs, mostlyclean, install-common): Use it. - * gcc.c (process_command): Move self-spec processing past spec - file loading. - * doc/tm.texi (DRIVER_SELF_SPECS): Document the change. - * doc/fragments.texi (MULTILIB_EXTRA_OPTS): Document need for - CRTSTUFF_T_CFLAGS. - (SPECS): Document. - * doc/invoke.texi (-mabi-fake-default): Document. - -2003-01-19 Stephane Carrez - - * config/m68hc11/m68hc11.c (stack_push_word, stack_pop_word, - z_reg, z_reg_qi): Declare static and GTY(). - (da_reg): Remove. - (create_regs_rtx): Don't create da_reg. - ("gt-m68hc11.h"): Include for GTY roots. - * config/m68hc11/m68hc11.h (ix_reg, iy_reg, d_reg): Declare extern - and GTY() here. - (m68hc11_compare_op0, m68hc11_compare_op1): Likewise. - (m68hc11_soft_tmp_reg): Likewise. - * config/m68hc11/m68hc11-protos.h: Remove above declarations. - -2003-01-18 Kazu Hirata - - * basic-block.h: Fix comment formatting. - * calls.c: Likewise. - * combine.c: Likewise. - * convert.c: Likewise. - * gcov.c: Likewise. - * haifa-sched.c: Likewise. - * libgcc2.c: Likewise. - * loop.c: Likewise. - * profile.c: Likewise. - * system.h: Likewise. - -2003-01-18 Roger Sayle - - * config/pa/pa.md (muldi3): Avoid invalid sharing of SUBREG RTXs. - -2003-01-17 Kaveh R. Ghazi - - * ra-build.c (undef_to_size_word): Avoid `switch' warning. - -2003-01-17 Dale Johannesen - - * config/rs6000/rs6000.md (*floatsidf2_internal): Add earlyclobbers. - (*floatunssidf2_internal): Ditto. - -2003-01-17 Kazu Hirata - - * alias.c: Fix comment typos. - * basic-block.h: Likewise. - * c-common.c: Likewise. - * c-common.h: Likewise. - * c-decl.c: Likewise. - * c-opts.c: Likewise. - * c-pragma.c: Likewise. - * c-pretty-print.h: Likewise. - * cfg.c: Likewise. - * cfganal.c: Likewise. - * cfgbuild.c: Likewise. - * cfgcleanup.c: Likewise. - * cfglayout.c: Likewise. - * cfgrtl.c: Likewise. - * convert.c: Likewise. - * cpphash.h: Likewise. - * cpplex.c: Likewise. - * cpplib.h: Likewise. - * df.h: Likewise. - * diagnostic.c: Likewise. - * diagnostic.h: Likewise. - * dwarf2.h: Likewise. - -2003-01-17 Stan Shebs - - * config/darwin-protos.h: Forward-declare struct cpp_reader. - -2003-01-17 Douglas B Rupp - - * config/alpha/alpha.c (alpha_need_linkage): Fix obvious - mistake in last checkin. - -2003-01-17 Kazu Hirata - - * et-forest.c: Fix comment typos. - * et-forest.h: Likewise. - * except.c: Likewise. - * expr.c: Likewise. - * flags.h: Likewise. - * flow.c: Likewise. - * gcc.c: Likewise. - * gcse.c: Likewise. - * genattrtab.c: Likewise. - * genautomata.c: Likewise. - * gengtype.c: Likewise. - * genrecog.c: Likewise. - * global.c: Likewise. - * gthr-rtems.h: Likewise. - -2003-01-17 Kaveh R. Ghazi - - * i386.c (x86_function_profiler): Fix format specifier. - -2003-01-17 Richard Henderson - - * gengtype.c (walk_type): Allow paramN_is. - -2003-01-17 Nick Clifton - - * config/i960/t-960bare (i960-c.o): Add missing newline escape. - -2003-01-16 Richard Henderson - - * config/alpha/linux-elf.h (LIB_SPEC): Adjust inter-option spacing. - -2003-01-16 Richard Henderson - - * config/alpha/alpha.c (alpha_sr_alias_set): Mark GTY. - (alpha_next_sequence_number): Likewise. - (alpha_this_literal_sequence_number): Likewise. - (alpha_this_gpdisp_sequence_number): Likewise. - (struct alpha_funcs, alpha_funcs_num): Likewise. - (struct alpha_links): Fix branch merge error. - (alpha_need_linkage, alpha_use_linkage): Use GC for alpha_funcs. - -2003-01-17 Alexandre Oliva - - * config/mips/mips.h: Don't use #elif. Reported by Kaveh - R. Ghazi. - -2003-01-16 Kazu Hirata - - * ifcvt.c: Fix comment typos. - * lcm.c: Likewise. - * libgcc2.c: Likewise. - * local-alloc.c: Likewise. - * loop.c: Likewise. - * predict.c: Likewise. - * ra-build.c: Likewise. - * ra.c: Likewise. - * ra-colorize.c: Likewise. - * ra.h: Likewise. - * ra-rewrite.c: Likewise. - * regmove.c: Likewise. - * reload.h: Likewise. - * rtlanal.c: Likewise. - * toplev.c: Likewise. - * tree.h: Likewise. - * unwind-dw2-fde-glibc.c: Likewise. - * vmsdbgout.c: Likewise. - -2003-01-16 Richard Henderson - - * dwarf2out.c (struct file_table): Remove. - (FILE_TABLE_INCREMENT): Remove. - (file_table): Make a varray; mark for GC. Update all users. - (file_table_last_lookup_index): Extract from struct file_table. - (output_file_names): Fix unsigned compare warnings. - (add_name_attribute): Remove inline marker. - (add_comp_dir_attribute): Split out from gen_compile_unit_die. - (lookup_filename): Don't manage size of file_table. - (init_file_table): Allocate file_table with GC. - (dwarf2out_init): Don't record main_input_filename here. - (dwarf2out_finish): Do it here instead. - -2003-01-16 Bruce Korb - - * gcc/fixinc/inclhack.def(limits_ifndef): QNX needs a bypass, too. - -2003-01-16 Kaz Kojima - - * config/sh/sh.c (sh_initialize_trampoline): Emit rotrdi3_mextr - instead of rotldi3_mextr. - -2003-01-16 Vladimir Makarov - - * haifa-sched.c (move_insn): Restore moving all schedule group. - (set_priorities): Restore taking SCHED_GROUP_P into account. - - * sched-deps.c (add_dependence): Restore processing the last group - insn. - (remove_dependence, group_leader): Restore the functions. - (set_sched_group_p): Restore adding dependencies from previous insn - in the group. - (compute_forward_dependences): Restore usage of group_leader. - - * sched-ebb.c (init_ready_list): Restore taking SCHED_GROUP_P into - account. - - * sched-rgn.c (init_ready_list): Restore taking SCHED_GROUP_P into - account. - (can_schedule_ready_p): Ditto. - (add_branch_dependences): Restore skipping over the group insns. - -2003-01-16 Stephane Carrez - - * config/m68hc11/m68hc11.c (m68hc11_check_z_replacement): Fix handling - 68HC12 pre/post inc/dec side effects. - -2003-01-16 Stephane Carrez - - * config/m68hc11/m68hc11.h (MASK_M6812): Define. - -2003-01-16 J"orn Rennecke - - * sh.md (mshflo_w_x): Fix description of operation. - -2003-01-16 Zack Weinberg - - * config/rs6000/rs6000.h: Mention Altivec registers in - commentary. Fix typo. - -2003-01-16 David Edelsohn - - * config/rs6000/rs6000.md (movti_string): Remove clobber. - * config/rs6000/rs6000.c (rs6000_emit_move, TImode): Explicitly - generate PARALLEL with clobber for TARGET_POWER. - -2003-01-16 Kaveh R. Ghazi - - * ra-colorize.c (colorize_one_web): Initialize variable. - * regmove.c (fixup_match_1): Likewise. - * reload1.c (reload_as_needed): Likewise. - * sdbout.c (SET_KNOWN_TYPE_TAG): Add cast. - -2003-01-16 Zdenek Dvorak - - * cfgloop.c (flow_loops_find): Fix handling of abnormal edges. - -2003-01-16 Kaveh R. Ghazi - - * dbxout.c (lastfile, cwd): Fix `unused' warning. - * dwarf2out.c (fde_table_in_use, current_funcdef_fde, - dw_cfi_oprnd1_desc, dw_cfi_oprnd2_desc, next_die_offset, - is_main_source, file_table, decl_die_table_in_use, - abbrev_die_table_in_use, line_info_table_in_use, - separate_line_info_table_in_use, pubname_table_in_use, - arange_table_in_use, ranges_table_in_use, - current_function_has_inlines): Likewise. - * flow.c (life_analysis): Likewise. - * genemit.c (gen_insn): Likewise. - * protoize.c (cplus_suffix): Likewise. - - * arm.c (ROUND_UP_WORD): Renamed from ROUND_UP. - * arm.h (ROUND_UP_WORD): Likewise. - - * arm.h (CONDITIONAL_REGISTER_USAGE): Avoid signed/unsigned - warning. - * emit-rtl.c (gen_rtx_REG, set_mem_attributes_minus_bitpos, - init_emit_once): Likewise. - * flow.c (mark_regs_live_at_end, calculate_global_regs_live): - Likewise. - * function.c (assign_stack_temp_for_type): Likewise. - * loop.c (loop_invariant_p): Likewise. - * recog.c (push_operand): Likewise. - * regclass.c (init_reg_sets_1): Likewise. - * reload.c (update_auto_inc_notes): Likewise. - * reload1.c (reload_as_needed, emit_input_reload_insns): Likewise. - * stmt.c (expand_asm_operands): Likewise. - * stor-layout.c (start_record_layout): Likewise. - -2003-01-16 Herman A.J. ten Brugge - - * config/c4x/c4x.md (epilogue): Correct last patch. - -2003-01-15 Richard Henderson - - * config/alpha/alpha.c (find_lo_sum_using_gp): Rename from find_lo_sum; - also check that GP is being used. - (alpha_find_lo_sum_using_gp): New. - (alpha_does_function_need_gp): Use get_attr_usegp. - * config/alpha/alpha-protos.h: Update. - * config/alpha/alpha.md (attr usegp): New. Annotate patterns - as needed. - -2003-01-15 Roger Sayle - - * gcse.c (one_cprop_pass): Change function arguments to take both - cprop_jumps and bypass_jumps flags instead of just alter_jumps. - (gcse_main): Update calls to one_cprop_pass, disabling bypassing. - (bypass_jumps): New function to perform separate jump bypassing pass. - * rtl.h (bypass_jumps): Add function prototype. - * timevar.def (TV_BYPASS): New timing variable. - * toplev.c (enum dump_file_index): Add new entry DFI_bypass. - (dump_file): New entry for the bypass RTL dump file. - (rest_of_compilation): Insert new jump bypassing optimization - pass after loop. - * doc/passes.texi: Document new pass. - -2003-01-15 John David Anglin - - * som.h (SUPPORTS_WEAK, SUPPORTS_ONE_ONLY, MAKE_DECL_ONE_ONLY, - ASM_WEAKEN_LABEL, GTHREAD_USE_WEAK): Define. - * pa.h (TARGET_SOM_SDEF): Define. - * pa-hpux11.h (TARGET_SOM_SDEF): Define. - -2003-01-16 Stephane Carrez - - * config/m68hc11/m68hc11.c (expand_prologue): Use push/pop to - allocate 4-bytes of locals on 68HC11. - (expand_epilogue): Likewise. - (m68hc11_memory_move_cost): Increase cost of HI/QI soft registers. - -2003-01-15 Stephane Carrez - - * config/m68hc11/m68hc11.h (ASM_SPEC): Handle -m68hcs12; Pass -mshort - and -mshort-double to the assembler to specify the ABI. - (LINK_SPEC): Likewise. - (CPP_SPEC): Pass HCS12 specific define. - (MASK_M68S12): New define. - (TARGET_M68S12): Likewise. - (TARGET_SWITCHES): New options -m68hcs12 and -m68S12. - (TARGET_VERSION): Update. - * config/m68hc11/m68hc12.h (CPP_SPEC): Pass HCS12 specific define. - (LINK_SPEC): Update. - (ASM_SPEC): Update. - * config/m68hc11/m68hc11.c (m68hc11_asm_file_start): Update. - * doc/invoke.texi (M68hc1x Options): Document -m68hcs12. - -2003-01-15 Stephane Carrez - - * config/m68hc11/m68hc11.md ("return"): Use emit_jump_insn to emit - the return code. - -2003-01-15 Josef Zlomek - - * cfganal.c (set_edge_can_fallthru_flag): Clear the EDGE_CAN_FALLTHRU - flag before setting it. - -2003-01-15 Roger Sayle - - * c-semantics.c (genrtl_while_stmt): Improve initial RTL generation - when loop condition is known true, i.e. "while (1) { ... }". - (genrtl_for_stmt): Similarly for "for" statements. - -2003-01-15 Roger Sayle - - * real.c (real_sqrt): Return a bool result indicating whether - a floating point exception or trap should be raised. - * real.h (real_sqrt): Update function prototype. - * builtins.c (fold_builtin): Only fold non-trapping square - roots unless we're ignoring errno and trapping math. - -2003-01-15 John David Anglin - - * expr.h (emit_conditional_add): Add PARAMS to declaration. - * gengtype-lex.l (malloc, realloc): Move defines after include of - system.h. Remove duplicate include of system.h. - -2003-01-15 Roger Sayle - - PR middle-end/9009 - * optabs.c (expand_unop): When manipulating the FP sign bit - using integer operations, account for targets with different - integer and FP word orders. - (expand_abs): Likewise. - -2003-01-15 David Edelsohn - - * config/rs6000/rs6000.c (rs6000_gen_section_name): Do not include - file extension in section name. - -2003-01-15 Richard Earnshaw - - * flow.c (find_auto_inc): Also try to generate a PRE_MODIFY with - constant offset. - -2003-01-15 Richard Earnshaw - - * arm.h (HAVE_PRE_MODIFY_DISP, HAVE_PRE_MODIFY_REG): Define. - (HAVE_POST_MODIFY_DISP, HAVE_POST_MODIFY_REG): Define. - (ARM_GO_IF_LEGITIMATE_ADDRESS): Handle pre/post-modify addresses. - (ARM_PRINT_OPERAND_ADDRESS): Likewise. - -2003-01-15 Jan Hubicka - - PR f/9258 - * global.c (struct allocno): Add no_stack_reg. - (global_conflicts): Set no_stack_reg. - (find_reg): Use it. - - * convert.c (convert_to_real): Fold - and abs only when profitable. - * fold-const.c (fold): Fold truncates in - and abs. - -2003-01-15 Josef Zlomek - - Segher Boessenkool - - * predict.c (real_inv_br_prob_base): New variable. - (propagate_freq): Use multiply by reciprocal instead of - division. Don't divide by 1.0 at all. - (estimate_bb_frequencies): Similar. - -2003-01-15 Alexandre Oliva - - * configure.in (libgcc_visibility): Force disabled on IRIX 6 too. - * configure: Rebuilt. - -2003-01-15 Hartmut Penner - - * config/s390/s390.c (s390_safe_attr_type): New function. - (s390_use_dfa_pipeline_interface): New function, return true for z900. - (s390_issue_rate): New function. - (s390_agen_dep_p): New function. - (addr_generation_dependency_p): Use 's390_safe_attr_type'. - (s390_adjust_cost): Return 'cost' if new DFA is used. - (s390_adjust_priority): Delete function. - * config/s390/s390-protos.h: (s390_agen_dep_p): New prototype. - * config/s390/s390.md (atype attribute): Attribute 'atype' default - determined by 'op_type'. - (type attribute): Added more type attributes. - * config/s390/2064.md: New DFA description for z900 pipeline. - -2003-01-15 Alexandre Oliva - - * config/i386/i386.c (ix86_expand_vector_move): Validize constant - forced to memory. Fixes PR bootstrap/9036. - - * config/mips/mips.h (CRT_CALL_STATIC_FUNCTION): Define so as - to set $gp before the call. - -2003-01-14 Richard Henderson - - * config/alpha/alpha.c (alpha_expand_mov): Use correct mode - for force_const_mem. - -2003-01-14 Kaveh R. Ghazi - - * genattr.c (main): Rearrange output to avoid prototype warning. - * genautomata.c (transform_3): Fix ambiguous-else warning. - * local-alloc.c (requires_inout): Add parentheses around - assignment used as truth-value. - * timevar.c: Move system includes above local includes. Include - toplev.h - * Makefile.in (timevar.o): Depend on toplev.h. - -2003-01-14 Denis Chertykov - - * config/ip2k/ip2k.h (VALID_MACHINE_DECL_ATTRIBUTE): Remove. - (VALID_MACHINE_TYPE_ATTRIBUTE): Remove. - - * config/ip2k/ip2k.c (ip2k_attribute_table): New table of - attributes. - (TARGET_ATTRIBUTE_TABLE): New macro. - (valid_machine_type_attribute): Remove. - (valid_machine_decl_attribute): Remove. - (ip2k_handle_progmem_attribute): New function. - (ip2k_handle_fndecl_attribute): New function. - -2003-01-10 Andrew Haley - - * config/i386/linux64.h (MD_FALLBACK_FRAME_STATE_FOR): Rename - registers to be in correct order. Add rip. - -2003-01-14 Kazu Hirata - - * config/h8300/h8300.md (*andsi3_lshiftrt_9_sb): New. - (*iorsi3_and_lshiftrt_9_sb): Likewise. - -2003-01-14 Jan Hubicka - - * convert.c (strip_float_extensions): Look for narrowest type handling - FP constants. - - * fold-const.c (fold): Fold (double)float1 CMP (double)float2 into - float1 CMP float2. - * convert.c (strip_float_extensions): Make global. - * tree.h (strip_float_extensions): Declare. - -2003-01-14 Gabriel Dos Reis - - * timevar.def: define TV_NAME_LOOKUP. - * timevar.c (timevar_pop): Be verbose when aborting. - -2003-01-13 Andreas Schwab - - * Makefile.in ($(parsedir)/gengtype-lex.c): Don't change to - $(parsedir), just move the temporary file at the end. - ($(parsedir)/gengtype-yacc.c): Likewise. - -2003-01-13 Alexandre Oliva - - * aclocal.m4 (gcc_AC_PROG_GNAT): Don't try to prepend - ${ac_tool_prefix} to ADAC or CC. Protect them from word - splitting. - * configure: Rebuilt. - -2003-01-13 Kaveh R. Ghazi - - * config/sparc/gmon-sol2.c (moncontrol, monstartup, _mcleanup, - internal_mcount): Don't use PARAMS. - (monstartup, _mcleanup, internal_mcount, moncontrol): Convert to - ISO C style. - (internal_mcount): Use __attribute__, not ATTRIBUTE_UNUSED. - -2003-01-13 Andreas Schwab - - * config/rs6000/sysv4.h (ASM_OUTPUT_ALIGNED_LOCAL): Output type - directive. - -2003-01-13 Kazu Hirata - - * config/h8300/h8300.md (*andsi3_lshift_n_sb): New. - (*iorsi3_and_lshiftrt_n_sb): Likewise. - -2003-01-12 Mark Mitchell - - PR c++/9264 - * c-lex.c (c_lex): Set the token value to error_mark_node for - invalid numeric constants. - -2003-01-12 Kaveh R. Ghazi - - * c-pch.c (asm_file_startpos): Change to `long'. - (pch_init): Use ftell, not ftello. - (c_common_write_pch): Use ftell/fseek, not ftello/fseeko. - Use `long' instead of `off_t'. - (c_common_read_pch): Likewise. - * ggc-common.c (gt_pch_save): Use long/ftell instead of - off_t/ftello. - -2003-01-12 Alan Modra - - * expr.c (expand_expr ): Correct recursive call args. - -2003-01-11 Richard Earnshaw (rearnsha@arm.com) - - * arm-protos.h (struct cpp_reader): Add declaration. - -2003-01-11 Jan Hubicka - - PR target/9068 - * i386.c (output_fp_compare): Fix typo. - -2003-01-10 David Edelsohn - - * config/rs6000/rs6000.c (common_mode_defined): Mark for PCH. - -2003-01-10 Geoffrey Keating - - * Makefile.in (parsedir): New variable. - (docobjdir): New variable. - (c-parse.o, c-parse.c, c-parse.y, gengtype-lex.o, gengtype-yacc.o, - gengtype-lex.c, gengtype-yacc.c): Use parsedir. - (info, cpp.info, gcc.info, gccint.info, gccinstall.info, - cppinternals.info, generated-manpages, gcov.1, cpp.1, gcc.1, gfdl.7, - gpl.7, fsf-funding.7, maintainer-clean, install-info, install-man): - Use docobjdir. - * objc/Make-lang.in (objc/objc-parse.c, objc/objc-parse.y, - objc.maintainer-clean): Use parsedir. - - * varasm.c (struct constant_descriptor_rtx): Remove unused - `label' field. - - * toplev.c (documented_lang_options): Document -Winvalid-pch. - -2003-01-10 Richard Henderson - - * config/alpha/alpha.h (NO_PROFILE_COUNTERS): Set. - (ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Kill. - -2003-01-10 Richard Henderson - - * combine.c (make_compound_operation): Use SCALAR_INT_MODE_P, - not INTEGRAL_MODE_P when widening extensions. - -2003-01-10 Richard Henderson - - * config/alpha/alpha.c (decl_has_samegp): True for !TREE_PUBLIC. - -2003-01-10 Geoffrey Keating - - * ggc-page.c (ggc_collect): Avoid overflow computing - min_expand. - - * Makefile.in (RANLIB_FOR_TARGET): Use RANLIB when native. - (RANLIB_TEST_FOR_TARGET): Delete. Don't pass down to sub-makes. - Remove calls. - * mklibgcc.in: Remove uses of RANLIB_TEST_FOR_TARGET. - -2003-01-10 Jan Hubicka - - * ifcvt.c (noce_try_addcc): Do not call emit_conditional_add - with weird operands. - -2003-01-10 Dale Johannesen - - * calls.c (load_register_parameters): Add is_sibcall, sibcall_failure - parameters. Call check_sibcall_argument_overlap if indicated. - (check_sibcall_argument_overlap): Add mark_stored_args_map - parameter. Don't mark parameter area as clobbered if not set. - (expand_call): Adjust calls to above. - -2003-01-10 Kelley Cook - - * configure.in (linker read-only and read-write section mixing): - Squelch some assembler warnings. - * configure: Likewise. - -2003-01-10 Hartmut Penner - - * doc/invoke.texi: Document -mtune, delete -mcpu - option for S/390 and zSeries. - * config/s390/s390.c (s390_tune_string) New variable. - (s390_cpu_string) Delete variable. - (override_options): Use s390_tune_string instead of - s390_cpu_string. - * config/s390/s390.h: (TARGET_OPTIONS) '-mtune' instead of '-mcpu'. - -2003-01-10 Kazu Hirata - - * config/h8300/h8300.md (*iorsi3_ashift_31): New. - -2003-01-10 Josef Zlomek - - * jump.c (next_nonnote_insn_in_loop): New function. - (copy_loop_headers): Use next_nonnote_insn_in_loop instead of - next_nonnote_insn. - (duplicate_loop_exit_test). Likewise. - -2003-01-09 Geoffrey Keating - - Merge from pch-branch: - - 2003-01-06 Geoffrey Keating - - * ggc-page.c (ggc_pch_read): Update the statistics after a PCH - load. - - 2002-12-24 Geoffrey Keating - - * cpplib.c (count_registered_pragmas): New function. - (save_registered_pragmas): New function. - (_cpp_save_pragma_names): New function. - (restore_registered_pragmas): New function. - (_cpp_restore_pragma_names): New function. - * cpphash.h (_cpp_save_pragma_names): Prototype. - (_cpp_restore_pragma_names): Likewise. - * cpppch.c (struct save_macro_item): Split from save_macro_data. - (struct save_macro_data): New field 'saved_pragmas'. - (save_macros): Update for changes to struct save_macro_data. - (cpp_prepare_state): Call _cpp_save_pragma_names, update - for changes to struct save_macro_data. - (cpp_read_state): Call _cpp_restore_pragma_names, update - for changes to struct save_macro_data. - - * cpppch.c (cpp_read_state): Restore the hashtable references - in the cpp_reader. - - * tree.h (built_in_decls): Mark for PCH. - - * dbxout.c (lastfile): Don't mark for PCH. - - * ggc.h: Document PCH calls into memory managers. - - 2002-12-18 Geoffrey Keating - - * doc/invoke.texi (Precompiled Headers): Document the - directory form of PCH. - * cppfiles.c (validate_pch): New function. - (open_file_pch): Search suitably-named directories for PCH files. - - 2002-12-14 Geoffrey Keating - - * doc/gty.texi (GTY Options): Document chain_next, chain_prev, - reorder options. - (Type Information): Mention that the information is also - used to implement PCH. - * doc/passes.texi (Passes): Improve documentation of - language-specific files. - - 2002-12-11 Geoffrey Keating - - * gengtype.c (struct write_types_data): Add reorder_note_routine field. - (struct walk_type_data): Add reorder_fn field. - (walk_type): Process 'reorder' option. - (write_types_process_field): Reorder parameters to gt_pch_note_object, - call reorder_note_routine. - (write_func_for_structure): Reorder parameters to gt_pch_note_object. - (ggc_wtd): Update for change to struct write_types_data. - (pch_wtd): Likewise. - * ggc.h (gt_pch_note_object): Reorder parameters. - (gt_handle_reorder): New definition. - (gt_pch_note_reorder): New prototype. - * ggc-common.c (struct ptr_data): Add reorder_fn. - (gt_pch_note_object): Reorder parameters. - (gt_pch_note_reorder): New. - (gt_pch_save): Call reorder_fn. - * stringpool.c (gt_pch_n_S): Update for change to gt_pch_note_object. - - * dbxout.c (cwd): Don't mark for PCH. - - 2002-12-09 Geoffrey Keating - - * gengtype.c (finish_root_table): Fix some warnings. - (write_root): Handle TYPE_STRING. - * ggc.h (gt_ggc_m_S): Add prototype. - * stringpool.c (gt_ggc_m_S): New function. - - 2002-11-30 Geoffrey Keating - - * dwarf2out.c (dw2_string_counter): New. - (AT_string_form): Use it. - (same_dw_val_p): Update for removal of hashtable.h hash tables. - - 2002-11-22 Geoffrey Keating - - * dbxout.c: Include gt-dbxout.h. - (lastfile): Mark for PCH/GGC. - (cwd): Likewise. - (struct typeinfo): Likewise. - (typevec): Likewise. - (typevec_len): Likewise. - (next_type_number): Likewise. - (struct dbx_file): Likewise. - (current_file): Likewise. - (next_file_number): Likewise. - (dbxout_init): Allocate typevec, struct dbx_file with GGC. - (dbxout_start_source_file): Allocate struct dbx_file with GGC. - (dbxout_end_source_file): Don't free struct dbx_file. - (dbxout_type): Use GGC to allocate typevec. - * Makefile.in (dbxout.o): Depend on gt-dbxout.h, $(GGC_H). - (GTFILES): Add dbxout.c. - (gt-dbxout.h): New rule. - - * Makefile.in (c-pch.o): Add debug.h as dependency. - * c-pch.c: Include debug.h. - (pch_init): Call start_source_file to keep nesting right. - (c_common_read_pch): Add orig_name parameter. Call - start_source_file debug hook. Call end_source_file debug hook. - * c-common.h (c_common_read_pch): Update prototype. - * cpplib.h (struct cpp_callbacks): Add fourth field to read_pch - callback. - * cppfiles.c (struct include_file): Add new field `header_name'. - (find_or_create_entry): Default it to `name'. - (open_file_pch): Set it to the original header file searched for. - (stack_include_file): Don't stack an empty buffer, just handle - PCH files immediately. Pass header_name field to read_pch callback. - - 2002-11-19 Geoffrey Keating - - * function.c (funcdef_no): Mark to be saved in a PCH. - - 2002-11-15 Geoffrey Keating - - * ggc-page.c (ggc_pch_read): Remove unused 'bmap_size'. - - * cpppch.c (cpp_read_state): Correct size reallocated for 'defn'. - - 2002-11-14 Geoffrey Keating - - * optabs.h (code_to_optab): Add GTY marker. - - 2002-11-13 Geoffrey Keating - - * Makefile.in (GTFILES): Add cpplib.h. - * c-common.h (struct c_common_identifier): Don't skip 'node' field. - * c-decl.c (build_compound_literal): Don't use var_labelno. - * cpplib.h (struct cpp_hashnode): Use gengtype to mark. - * dwarf2asm.c (dw2_force_const_mem): Don't use const_labelno. - * varasm.c (const_labelno): Use gengtype to mark. - (var_labelno): Likewise. - (in_section): Likewise. - (in_named_name): Likewise. - (struct in_named_entry): Likewise. - (in_named_htab): Likewise. - (set_named_section_flags): Use GGC to allocate struct in_named_entry. - (init_varasm_once): Use GGC to allocate in_named_htab. - * config/darwin.c (current_pic_label_num): Mark for PCH. - - 2002-11-11 Geoffrey Keating - - * ggc-simple.c (init_ggc_pch): New stub procedure. - (ggc_pch_count_object): Likewise. - (ggc_pch_total_size): Likewise. - (ggc_pch_this_base): Likewise. - (ggc_pch_alloc_object): Likewise. - (ggc_pch_prepare_write): Likewise. - (ggc_pch_write_object): Likewise - (ggc_pch_finish): Likewise. - (ggc_pch_read): Likewise. - - 2002-11-08 Geoffrey Keating - - * c-pch.c (c_common_write_pch): Write the macro definitions after - the GCed data. - (c_common_read_pch): Call cpp_prepare_state. Restore the macro - definitions after the GCed data. - * cpplib.c (save_macros): New. - (reset_ht): New. - (cpp_write_pch_deps): Split out of cpp_write_pch. - (cpp_write_pch_state): Split out of cpp_write_pch. - (cpp_write_pch): Delete. - (struct save_macro_data): Delete. - (cpp_prepare_state): New. - (cpp_read_state): Erase and restore initial macro definitions. - * cpplib.h (struct save_macro_data): Forward-declare. - (cpp_write_pch_deps): Prototype. - (cpp_write_pch_state): Prototype. - (cpp_write_pch): Delete prototype. - (cpp_prepare_state): Prototype. - (cpp_read_state): Add fourth argument. - - 2002-11-04 Geoffrey Keating - - * gengtype.c (adjust_field_rtx_def): Don't use skip on valid fields. - (write_array): Remove warning. - - * gengtype.c (contains_scalar_p): New. - (finish_root_table): Add the table to all languages, even if it's - empty. - (write_roots): Output gt_pch_scalar_rtab. - * ggc-common.c (gt_pch_save): Write out scalars. - (gt_pch_restore): Read scalars back. - - * ggc-page.c (OBJECTS_IN_PAGE): New macro. - (struct page_entry): Delete pch_page field. - (ggc_recalculate_in_use_p): Use OBJECTS_IN_PAGE. - (clear_marks): Likewise. - (sweep_pages): Likewise. - (poison_pages): Likewise. - (ggc_print_statistics): Likewise. - (ggc_pch_read): Don't free objects read from a PCH. - Properly set up in_use_p and page_tails. - - 2002-10-25 Geoffrey Keating - - * gengtype.c (struct write_types_data): New. - (struct walk_type_data): Make `cookie' const; add extra - prev_val item; add `orig_s' field. - (walk_type): Update prev_val[3]. - (write_types_process_field): New. - (write_func_for_structure): Take write_types_data structure. - (write_types): New. - (ggc_wtd): New. - (pch_wtd): New. - (write_types_local_process_field): New. - (gc_mark_process_field): Delete. - (write_local_func_for_structure): New. - (gc_mark_func_name): Delete. - (write_gc_types): Delete. - (write_local): New. - (finish_root_table): Don't include 'ggc_' in PFX. - (write_root): Rename from write_root. Fill pchw field of structures. - (write_array): New. - (write_roots): Rename from write_gc_roots. Split out to write_array. - Update to changes to other routines. Write gt_pch_cache_rtab table. - (main): Write PCH walking routines. - * ggc-common.c: Include toplev.h, sys/mman.h. - (ggc_mark_roots): For cache hashtables, also mark the hash table - and the array of entries. - (saving_htab): New. - (struct ptr_data): New. - (POINTER_HASH): New. - (gt_pch_note_object): New. - (saving_htab_hash): New. - (saving_htab_eq): New. - (struct traversal_state): New. - (call_count): New. - (call_alloc): New. - (compare_ptr_data): New. - (relocate_ptrs): New. - (write_pch_globals): New. - (struct mmap_info): New. - (gt_pch_save): New. - (gt_pch_restore): New. - * ggc-page.c (ROUND_UP_VALUE): New. - (ROUND_UP): New. - (struct page_entry): Add field `pch_page'. - (init_ggc): Use ROUND_UP. - (struct ggc_pch_data): Declare. - (init_ggc_pch): New. - (ggc_pch_count_object): New. - (ggc_pch_total_size): New. - (ggc_pch_this_base): New. - (ggc_pch_alloc_object): New. - (ggc_pch_prepare_write): New. - (ggc_pch_write_object): New. - (ggc_pch_finish): New. - (ggc_pch_read): New. - * ggc.h (gt_pointer_operator): New. - (gt_note_pointers): New. - (gt_pch_note_object): New prototype. - (gt_pointer_walker): New. - (struct ggc_root_tab): Use gt_pointer_walker, add `pchw' field. - (LAST_GGC_ROOT_TAB): Update. - (gt_pch_cache_rtab): Declare. - (gt_pch_scalar_rtab): Declare. - (struct ggc_cache_tab): Use gt_pointer_walker, add `pchw' field. - (LAST_GGC_CACHE_TAB): Update. - (gt_pch_save_stringpool): Declare. - (gt_pch_restore_stringpool): Declare. - (gt_pch_p_S): Declare. - (gt_pch_n_S): Declare. - (struct ggc_pch_data): Forward-declare. - (init_ggc_pch): Declare. - (ggc_pch_count_object): Declare. - (ggc_pch_total_size): Declare. - (ggc_pch_this_base): Declare. - (ggc_pch_alloc_object): Declare. - (ggc_pch_prepare_write): Declare. - (ggc_pch_write_object): Declare. - (ggc_pch_finish): Declare. - (ggc_pch_read): Declare. - (gt_pch_save): Declare. - (gt_pch_restore): Declare. - * fold-const.c (size_int_type_wide): Allocate size_htab using GGC. - * emit-rtl.c (init_emit_once): Allocate const_int_htab, - const_double_htab, mem_attrs_htab using GGC. - * c-pch.c: Include ggc.h. - (pch_init): Allow reading PCH file back. - (c_common_write_pch): Call gt_pch_save. - (c_common_read_pch): Call gt_pch_restore. - * c-parse.in (init_reswords): Delete now-untrue comment. - Allocate ridpointers using GGC. - * c-objc-common.c (c_objc_common_finish_file): Write PCH before - calling expand_deferred_fns. - * c-common.h (ridpointers): Mark for GTY machinery. - * Makefile.in (stringpool.o): Update dependencies. - (c-pch.o): Update dependencies. - (ggc-common.o): Update dependencies. - * stringpool.c: Include gt-stringpool.h. - (gt_pch_p_S): New. - (gt_pch_n_S): New. - (struct string_pool_data): New. - (spd): New. - (gt_pch_save_stringpool): New. - (gt_pch_restore_stringpool): New. - * tree.c (init_ttree): Make type_hash_table allocated using GC. - - 2002-10-04 Geoffrey Keating - - * gengtype.c (adjust_field_rtx_def): Don't pass size_t to printf. - (output_mangled_typename): Don't pass size_t to printf. - - * tree.h (union tree_type_symtab): Add tag to `address' field. - (union tree_decl_u2): Add tag to 'i' field. - * varasm.c (union rtx_const_un): Add tags to all fields. - * gengtype.c (struct walk_type_data): New. - (output_escaped_param): Take struct walk_type_data parameter. - (write_gc_structure_fields): Delete. - (walk_type): New. - (write_gc_marker_routine_for_structure): Delete. - (write_func_for_structure): New. - (gc_mark_process_field): New. - (gc_mark_func_name): New. - (gc_counter): Delete. - (write_gc_types): Use write_func_for_structure. - (write_gc_roots): Use walk_type. - - 2002-10-02 Geoffrey Keating - - * ggc-common.c (ggc_mark_roots): Delete 'x'. - (ggc_splay_dont_free): Fix warning about unused 'x'. - (ggc_print_common_statistics): Remove warnings. - - 2002-10-01 Mike Stump - - * ggc-common.c (ggc_splay_alloc): Actually return the allocated area. - * gengtype.c (write_gc_structure_fields): Handle param[digit]_is. - - 2002-09-01 Geoffrey Keating - Catherine Moore - - * Makefile (c-pch.o): Update dependencies. - (LIBCPP_OBJS): Add cpppch.o. - (cpppch.o): New. - * c-common.c (c_common_init): Don't call pch_init here. - * c-common.h (c_common_read_pch): Update prototype. - * c-lex.c (c_common_parse_file): Call pch_init here. - * c-opts.c (COMMAND_LINE_OPTIONS): Add -Winvalid-pch, -fpch-deps. - (c_common_decode_option): Handle them. - * c-pch.c: Include c-pragma.h. - (save_asm_offset): Delete. - (pch_init): Move contents of save_asm_offset into here, call - cpp_save_state. - (c_common_write_pch): Call cpp_write_pch. - (c_common_valid_pch): Warn only when -Winvalid-pch. Call - cpp_valid_state. - (c_common_read_pch): Add NAME parameter. Call cpp_read_state. - * cppfiles.c (stack_include_file): Update for change to - parameters of cb.read_pch. - * cpphash.h (struct cpp_reader): Add `savedstate' field. - * cpplib.h (struct cpp_options): Add `warn_invalid_pch' and - `restore_pch_deps' fields. - (struct cpp_callbacks): Add NAME parameter to `read_pch'. - (cpp_save_state): Prototype. - (cpp_write_pch): Prototype. - (cpp_valid_state): Prototype. - (cpp_read_state): Prototype. - * cpppch.c: New file. - * flags.h (version_flag): Remove prototype. - * mkdeps.c (deps_save): New. - (deps_restore): New. - * mkdeps.h (deps_save): Prototype. - (deps_restore): Prototype. - * toplev.c (late_init_hook): Delete. - (version_flag): Make static again. - (compile_file): Don't call late_init_hook. - * toplev.h (late_init_hook): Delete. - * doc/cppopts.texi: Document -fpch-deps. - * doc/invoke.texi (Warning Options): Document -Winvalid-pch. - - 2002-08-27 Geoffrey Keating - - * c-pch.c (c_common_write_pch): Rename from c_write_pch, change - callers. - (c_common_valid_pch): Rename from c_valid_pch, change callers. - (c_common_read_pch): Rename from c_read_pch, change callers. - - * c-opts.c (COMMAND_LINE_OPTIONS): Allow -output-pch= to have - a space between it and its argument. - - 2002-08-24 Geoffrey Keating - - * c-pch.c: New file. - * toplev.h (late_init_hook): Declare. - * toplev.c (late_init_hook): Define. - (version_flag): Make globally visible. - (compile_file): Call late_init_hook. - (init_asm_output): Make output file seekable. - * gcc.c (default_compilers): Update c-header rule. - * flags.h (version_flag): Declare. - * cpplib.h (struct cpp_callbacks): Add 'valid_pch' and 'read_pch' - fields. - * cppfiles.c (struct include_file): Add 'pch' field. - (INCLUDE_PCH_P): New. - (open_file_pch): New. - (stack_include_file): Handle PCH files specially. - (find_include_file): Call open_file_pch instead of open_file. - (_cpp_read_file): Explain why open_file is used instead of - open_file_pch. - * c-opts.c (c_common_decode_option): Correct OPT__output_pch case. - * c-objc-common.c (c_objc_common_finish_file): Call c_write_pch. - * c-lex.c (init_c_lex): Set valid_pch and read_pch fields - in cpplib callbacks. - * c-common.c (pch_file): Correct comment. - (allow_pch): Define. - (c_common_init): Call pch_init. - * c-common.h (allow_pch): Declare. - (pch_init): Declare. - (c_valid_pch): Declare. - (c_read_pch): Declare. - (c_write_pch): Declare. - * Makefile.in (c-pch.o): New. - (C_AND_OBJC_OBJS): Add c-pch.o. - * doc/invoke.texi (Precompiled Headers): Add index entries, - complete truncated paragraph. - - 2002-08-17 Geoffrey Keating - - * c-common.c: (pch_file): Define. - * c-common.h (pch_file): Declare. - * c-opts.c (COMMAND_LINE_OPTIONS): Add --output-pch=. - (missing_arg): Require --output-pch= to have an argument. - (c_common_decode_option): Handle --output-pch=. - * gcc.c: Document new %V. - (default_compilers): Handle compiling C header files. - (do_spec_1): Implement %V. - (main): Handle "gcc foo.h" without trying to run linker. - * doc/invoke.texi (Invoking GCC): Add new menu item for PCH. - (Overall Options): Document what the driver does with header files, - document new -x option possibilities. - (Invoking G++): More documentation for PCH. - (Precompiled Headers): New. - - 2002-08-09 Geoffrey Keating - - * ggc.h: Don't include varray.h. Rearrange functions to be more - organized. - (ggc_add_root): Delete. - (ggc_mark_rtx): Delete. - (ggc_mark_tree): Delete. - (struct ggc_statistics): Remove contents. - * ggc-common.c: Remove unneeded includes. - (struct ggc_root): Delete. - (roots): Delete. - (ggc_add_root): Delete. - (ggc_mark_roots): Don't mark `roots'. Call ggc_mark_stringpool. - (ggc_print_common_statistics): Remove most of the contents. - * Makefile.in (GGC_H): No longer uses varray.h. - (ggc-common.o): Update dependencies. - (c-parse.o): Add varray.h to dependencies. - (c-common.o): Add varray.h. - * stringpool.c (mark_ident): Use mangled name for tree marker routine. - (mark_ident_hash): Rename to ggc_mark_stringpool. - (init_stringpool): Don't use ggc_add_root. - * c-parse.in: Include varray.h. - * c-common.c: Include varray.h. - * objc/Make-lang.in (objc-act.o): Add varray.h. - * objc/objc-act.c: Include varray.h. - - 2002-07-25 Geoffrey Keating - - * dwarf2out.c (dw_cfi_oprnd2_desc): Fix ISO-only function definition. - (dw_cfi_oprnd1_desc): Likewise. - - 2002-07-17 Geoffrey Keating - - * config/alpha/alpha.c (struct alpha_links): Use gengtype to mark; - move out of ifdef. - (alpha_links): Use gengtype to mark; move out of ifdef. - (mark_alpha_links_node): Delete. - (mark_alpha_links): Delete. - (alpha_need_linkage): Use GGC to allocate splay tree, struct - alpha_links, strings. Don't use ggc_add_root. - * ggc-common.c (ggc_splay_alloc): New. - (ggc_splay_dont_free): New. - * ggc.h (ggc_mark_rtx): Update for changed name mangling. - (ggc_mark_tree): Likewise. - (splay_tree_new_ggc): New. - (ggc_splay_alloc): Declare. - (ggc_splay_dont_free): Declare. - * dwarf2asm.c: Include gt-dwarf2asm.h. - (mark_indirect_pool_entry): Delete. - (mark_indirect_pool): Delete. - (indirect_pool): Use gengtype to mark. - (dw2_force_const_mem): Don't use ggc_add_root. - * Makefile.in (dwarf2asm.o): Depend on gt-dwarf2asm.h. - (GTFILES): Add SPLAY_TREE_H, dwarf2asm.c. - (gt-dwarf2asm.h): Depend on s-gtype. - - 2002-07-08 Geoffrey Keating - - * tree.h (union tree_type_symtab): Mark `die' field. - * Makefile.in (dwarf2out.o): Update dependencies. - * dwarf2out.c: Use GGC to allocate all structures. Convert to htab_t - hash tables. - (dw_cfi_oprnd1_desc): New function. - (dw_cfi_oprnd2_desc): New function. - (indirect_string_alloc): Delete. - (debug_str_do_hash): New function. - (debug_str_eq): New function. - (mark_limbo_die_list): Delete. - (dwarf2out_init): Don't call ggc_add_root. - -2003-01-09 Vladimir Makarov - - The following changes are merged from itanium-sched-branch: - - 2003-01-08 David Edelsohn - - * doc/md.texi: Clarify assignment of units to automata description. - - 2003-01-08 Vladimir Makarov - - * genautomata.c (unit_decl): Remove members - `the_same_automaton_unit' and - `the_same_automaton_message_reported_p'. - (process_unit_to_form_the_same_automaton_unit_lists, - form_the_same_automaton_unit_lists_from_regexp, - form_the_same_automaton_unit_lists, the_same_automaton_lists): - Remove them. - (annotation_message_reported_p): New global variable. - (check_unit_distribution_in_reserv, - check_regexp_units_distribution): New functions. - (check_unit_distributions_to_automata): Rewrite it. - - 2003-01-04 Vladimir Makarov - - * genautomata.c (form_the_same_automaton_unit_lists_from_regexp): - Use continue instead of break if cycle is too big. - - 2002-12-20 Vladimir Makarov - - * genautomata.c (check_unit_distributions_to_automata): Output at - most one message for a unit. - (process_unit_to_form_the_same_automaton_unit_lists): Check - automaton of units instead of units themself. - - * doc/md.texi: Describe the constraint about assigning unit to - automata. - - 2002-12-20 Jan Hubicka - Vladimir Makarov - - * genautomata.c (unit_decl): Add new members `min_occ_cycle_num' - and `in_set_p'. - (gen_cpu_unit): Initialize the new members. - (process_regexp_cycles): Calculate minimal finish cycle too. Set - up `min_occ_cycle_num'. - (evaluate_max_reserv_cycles): Change the function call. - (CLEAR_BIT): New macro. - (states_union, state_shift): Use the mask. - (initiate_excl_sets, form_reserv_sets_list): Set up `in_set_p'. - (form_reservs_matter): New function. - (make_automaton): Call the function and use the mask. - (estimate_one_automaton_bound): Take `min_occ_cycle_num' into - account. - - 2002-12-17 Vladimir Makarov - - * config/ia64/itanium2.md (lfetch): Change the insn reservation. - - 2002-12-17 Vladimir Makarov - - * config/ia64/ia64.c (bundling): Try to insert 2 nops for M insn - for Itanium. - - 2002-12-17 Vladimir Makarov - - * config/ia64/ia64.c (ia64_override_options): Make itanium2 as - default cpu. - - 2002-12-17 Vladimir Makarov - 2002-10-31 Dale Johannesen - - * haifa-sched.c (find_set_reg_weight): New function. - (find_insn_reg_weight): Use the new function. - (schedule_block): Do sorting ready queue always - after insn issue. - - 2002-11-27 Vladimir Makarov - - * config/ia64/ia64.c (bundling): Use MFI template instead of MLX. - - 2002-11-19 Vladimir Makarov - - * haifa-sched.c (choice_entry): New structure. - (choice_stack, cycle_issued_insns): New variables. - (max_issue): Rewrite it. - (choose_ready): Set up ready_try for unknown insns too. - (schedule_block): Allocate and free choice_stack. Set up - and modify cycle_issued_insns. - - * config/ia64/ia64.c (issue_nops_and_insn): Combine insn issue - with and without filling the bundle. - (bundling): Combine calls of issue_nops_and_insn. - - 2002-10-17 Vladimir Makarov - - * config/ia64/itanium1.md: New file. - - * config/ia64/itanium2.md: New file. - - * config/ia64/ia64.md: Move DFA descriptions into the new files. - Remove the old pipeline description. - - * config/ia64/ia64.c (ia64_override_options): Add aliases of - itanium processor names. - - 2002-10-16 Vladimir Makarov - - * config/ia64/ia64.c (bundling): Print states for Itanium2 too. - (ia64_reorg): Set up queried unit codes for Itanium2 too. - - * config/ia64/ia64.md: Add descriptions for Itanium2. - - 2002-10-08 Vladimir Makarov - - * config/ia64/ia64.h (processor_type): New enumeration. - (ia64_tune, ia64_tune_string): New external declarations. - (TARGET_OPTIONS): Add option `tune='. - - * config/ia64/ia64.c (ia64_tune, ia64_tune_string): New global - variables. - (ia64_override_options): Set up `ia64_tune'. - (ia64_sched_reorder2): Set up `clocks' only for Itanium. - (ia64_dfa_new_cycle): Set up `add_cycles' only for Itanium. - (bundling): Add nops for MM-insns only for Itanium. - (ia64_reorg): Allocate and free `clocks' and `add_cycles' only for - Itanium. - - * config/ia64/ia64.md (cpu): New attribute. - (DFA description): Enable it only for Itanium. - - 2002-10-08 Vladimir Makarov - Richard Henderson - - * config/ia64/ia64.h (MASK_TUNE_STOP_BITS): Rename it to - MASK_EARLY_STOP_BITS. - (TARGET_TUNE_STOP_BITS): Rename it to TARGET_EARLY_STOP_BITS. - (TARGET_SWITCHES): Rename option `tune-stop-bits' to - `early-stop-bits'. - - * config/ia64/ia64.c (ia64_dfa_new_cycle, - final_emit_insn_group_barriers): Use TARGET_EARLY_STOP_BITS - instead of TARGET_TUNE_STOP_BITS. - - * doc/invoke.texi: Rename option `-mtune-stop-bits' to - `-mearly-stop-bits'. - - * config/ia64/ia64.c (automata_option "v"): Comment it. - - 2002-10-07 Vladimir Makarov - - * config/ia64/ia64.h (MASK_TUNE_STOP_BITS, TARGET_TUNE_STOP_BITS): - New macros. - (TARGET_SWITCHES): Add entries for the new option. - - * config/ia64/ia64.c (dfa_stop_insn, last_scheduled_insn, rtx - dfa_pre_cycle_insn, ia64_nop): Don't make them as roots for GC. - (stops_p, stop_before_p, clocks_length, clocks, add_cycles): New - global variables. - (ia64_sched_reorder2): Set up `clocks'. - (ia64_variable_issue): Set up `stops_p' and reset `stop_before_p'. - (ia64_dfa_new_cycle): Set up add_cycle. Permit sorting ready - queue when TARGET_TUNE_STOP_BITS. - (bundling): Insert additional nops for MM-insns. - (final_emit_insn_group_barriers): Add insertion of stop bits - according `stops_p'. - (ia64_reorg): Initiate the new varibales. - - * doc/invoke.texi: Add description of option `-mtune-stop-bits'. - - 2002-10-02 Vladimir Makarov - - * haifa-sched.c (schedule_block): Modify INSN_TICK of depended - insns at the end of block insn scheduling. - - 2002-09-30 Vladimir Makarov - - * sched-deps.c (remove_dependence, group_leader): Remove it. - (add_dependence): Add dependence to group leader to. - (set_sched_group_p): Add dependence to the first insn of the - schedule group too. - (sched_analyze_insn): Make dependence to jump as anti-dependence. - Change true dependence by anti-dependence when - `reg_pending_barrier'. - - * sched-rgn.c (init_ready_list, can_schedule_ready_p, - add_branch_dependences): Ignore schedule groups. - - * sched-ebb.c (init_ready_list): Ditto. - - * (move_insn, set_priorities): Ditto. - - * config/ia64/ia64.c (ia64_sched_init): Check that schedule group - flag is clear after reload. - (adjust_cost): Change cost only for output dependencies. - - * config/ia64/ia64.md: Add more insns into bypass for MM-insns. - - 2002-09-26 Vladimir Makarov - - * Makefile.in (sched-ebb.o): Add `$(TARGET_H)' to the entry. - - * target.h (gcc_target): Add member - `dependencies_evaluation_hook'. - - * target-def.h (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): New - macro. - (TARGET_SCHED): Add initiatialization of the new member. - - * sched-ebb.c: Include `target.h'. - (schedule_ebb): Call `dependencies_evaluation_hook'. - - * sched-rgn.c (schedule_region): Call - `dependencies_evaluation_hook'. - - * config/ia64/ia64.c (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): - New macro. - (ia64_dependencies_evaluation_hook): New function. - - * doc/tm.texi (TARGET_SCHED_DEPENDENCIES_EVALUATION_HOOK): - Describe the new hook. - - 2002-09-25 Vladimir Makarov - - * target.h (gcc_target): Add members - `first_cycle_multipass_dfa_lookahead_guard' and `dfa_new_cycle'. - - * target-def.h (TARGET_SCHED_DFA_NEW_CYCLE, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD): New - macros. - (TARGET_SCHED): Add initiatialization of the new members. - - * haifa-sched.c (schedule_insn): Update last_clock_var for the 1st - insn scheduling too. - (choose_ready): Use `first_cycle_multipass_dfa_lookahead_guard' to - initialize `ready_try'. - (schedule_block): Use `dfa_new_cycle'. Sort `ready' only unless - `dfa_new_cycle' says not to do it. - - * config/ia64/ia64.md: Add DFA Itanium 1 description for insn - bundling. - - * config/ia64/ia64.h (CPU_UNITS_QUERY): New macro. - - * config/ia64/ia64.c: Include `hashtab.h'. - (ia64_first_cycle_multipass_dfa_lookahead_guard, - ia64_dfa_new_cycle, final_emit_insn_group_barriers, - ia64_dfa_sched_reorder, get_free_bundle_state, free_bundle_state, - initiate_bundle_states, finish_bundle_states, bundle_state_hash, - bundle_state_eq_p, insert_bundle_state, - initiate_bundle_state_table, finish_bundle_state_table, - try_issue_nops, try_issue_insn, issue_nops_and_insn, get_max_pos, - get_template, get_next_important_insn, bundling): New functions. - (ia64_internal_sched_reorder): Remove it. - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, - TARGET_SCHED_DFA_NEW_CYCLE): New macros. - (ia64_safe_itanium_requires_unit0): Remove it. - (group_barrier_needed_p): Place group barrier right before a real - insn. - (bundle, ia64_packet, NR_PACKETS, type_names, packets, packets): - Remove them. - (bundle_name): New variable. - (_0mii_, _0mmi_, _0mfi_, _0mmf_, _0bbb_, _0mbb_, _0mib_, _0mmb_, - _0mfb_, _0mlx_, _1mii_, _1mmi_, _1mfi_, _1mmf_, _1bbb_, _1mbb_, - _1mib_, _1mmb_, _1mfb_, _1mlx_, pos_1, pos_2, pos_3, pos_4, pos_5, - pos_6, dfa_stop_insn, last_scheduled_insn, dfa_state_size, - temp_dfa_state, prev_cycle_state): New global variables. - (insn_matches_slot, maybe_rotate, finish_last_head, - rotate_one_bundle, rotate_one_bundles, nop_cycles_until, - cycle_end_fill_slots, packet_matches_p, get_split, find_best_insn, - find_best_packet, itanium_reorder, dump_current_packet, - schedule_stop, gen_nop_type, ia64_emit_nops): Remove them. - (sched_data, sched_ready, sched_types): Remove them. - (ia64_sched_init): Initiate only `last_scheduled_insn' and call - `init_insn_group_barriers'. - (ia64_sched_reorder, ia64_sched_reorder2): Call - ia64_dfa_sched_reorder. - (ia64_variable_issue): Rewrite it. - (bundle_state): New structure. - (index_to_bundle_states, bundle_states_num, - allocated_bundle_states_chain, free_bundle_state_chain): New - global variables. - (ia64_sched_finish): Add stop bits and call `bundling' after the - 2nd insn scheduling. - (ia64_use_dfa_pipeline_interface): Return zero always. - (ia64_first_cycle_multipass_dfa_lookahead): Return 6 for the 2nd - insn scheduling. - (ia64_init_dfa_pre_cycle_insn): Initialize `dfa_state_size', - `temp_dfa_state', `prev_cycle_state', and `dfa_stop_insn'. - (ia64_reorg): Add bundling insns. - - * doc/tm.texi - (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD_GUARD, - TARGET_SCHED_DFA_NEW_CYCLE): Describe the new hooks. - - 2002-09-23 Vladimir Makarov - - * config/ia64/ia64.md: Add Itanium1 DFA description. - (itanium_class): Add `nop' and `pre_cycle'. Add - define_function_unit for `nop'. - (nop): Change attribute `itanium_class'. - (pre_cycle): New define_insn. - - * config/ia64/ia64-protos.h (bundling_p): New external variable. - (ia64_st_address_bypass_p, ia64_ld_address_bypass_p, - ia64_produce_address_p): New function prototypes. - - * config/ia64/ia64.c (bundling_p): New global variable. - (ia64_use_dfa_pipeline_interface, - ia64_first_cycle_multipass_dfa_lookahead, - ia64_init_dfa_pre_cycle_insn, ia64_dfa_pre_cycle_insn): New - functions. - (TARGET_SCHED_USE_DFA_PIPELINE_INTERFACE, - TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD, - TARGET_SCHED_INIT_DFA_PRE_CYCLE_INSN, - TARGET_SCHED_DFA_PRE_CYCLE_INSN): New macros. - (ia64_sched_init, ia64_sched_reorder, ia64_sched_reorder2, - ia64_variable_issue, ia64_sched_finish): Do nothing before reload. - (dfa_pre_cycle_insn): New variable. - - 2002-09-20 Vladimir Makarov - - * rtl.def (FINAL_PRESENCE_SET, FINAL_ABSENCE_SET): New - constructions. - - * genattrtab.h (gen_final_presence_set, gen_final_absence_set): - New function prototypes. - - * genattrtab.c (main): Process the new constructions. - - * genautomata.c (gen_presence_absence_set, - process_presence_absence_names, process_presence_absence_patterns, - add_presence_absence, check_absence_pattern_sets): Add parameter - `final_p'. - (unit_decl): Add new members `final_presence_list' and - `final_absence_list'. - (unit_pattern_rel_decl): Add new member `final_p'. - (gen_final_presence_set, gen_final_absence_set): New functions. - (process_decls): Use member `final_p'. - (temp_reserv): New global variable. - (reserv_sets_are_intersected): Add processing `final_presence_set' - and `final_absence_set'. - (initiate_states): Allocate `temp_reserv'. - (unit_final_presence_set_table, unit_final_absence_set_table): New - gloabal variables. - (initiate_presence_absence_pattern_sets): Initiate them. - (NDFA_to_DFA): Fix typo. - (output_description): Output `final_presence_set' and - `final_absence_set'. - - * doc/md.texi (final_presence_set, final_absence_set): Describe - them. - - 2002-09-20 Vladimir Makarov - - * genautomata.c (transform_3): Process a missing case (nothing on - unit place). - - 2002-09-20 Vladimir Makarov - - * rtl.def (DEFINE_QUERY_CPU_UNIT, AUTOMATA_OPTION): Change - comments about queried units and the minimization. - - * doc/md.texi: Ditto. - - * genautomata.c (create_composed_state): Return nonzero if the new - state has been created. - (first_cycle_unit_presence): New function. - (state_is_differed): Add new parameter. Use the new function. - Take queried units into account. - (partition_equiv_class): Pass additional parameter to - `state_is_differed'. - (merge_states): Process composed states too. - (build_automaton, create_automata, output_min_issue_delay_table, - output_tables, output_statistics): Output more information. - (output_reserved_units_table): Use function - `first_cycle_unit_presence'. - (output_tables): Output table of queried units even if the - minimization is switched on. - (write_automata): Output code for querying units even if the - minimization is switched on. - - 2002-09-19 Vladimir Makarov - - * rtl.def (PRESENCE_SET, ABSENCE_SET): Add comments about extended - syntax of the constructions. - - * doc/md.texi (PRESENCE_SET, ABSENCE_SET): Add description of - extended syntax of the constructions. - - * genautomata.c (unit_rel_decl): Rename it to - `unit_pattern_rel_decl'. - (pattern_set_el, pattern_reserv): New structures. - (pattern_set_el_t, pattern_reserv_t): New types. - (gen_presence_absence_set): New function. - (process_presence_absence): Remove it. - (process_presence_absence_names, - process_presence_absence_patterns): New functions. - (get_presence_absence_set): Remove it. - (initiate_presence_absence_sets): Rename it on - `initiate_presence_absence_pattern_sets'. Use new function - `form_reserv_sets_list'. - (form_reserv_sets_list, check_presence_pattern_sets, - check_absence_pattern_sets, output_pattern_set_el_list): New - functions. - (unit_decl): Change types of members `presence_list' and - `absence_list'. - (unit_rel_decl): Rename member `names_num' to `all_names_num'. - (decl): Change types of members `excl', `presence', and `absence'. - (get_str_vect): Rename `par_flag' to `paren_p'. Add null element - at the end of the vector. - (gen_cpu_unit, gen_query_cpu_unit, gen_bypass, gen_excl_set, - gen_automaton, gen_regexp_repeat, gen_regexp_allof, - gen_regexp_oneof, gen_regexp_sequence): Use boolean values. - (gen_presence_set, gen_absence_set): Use new function - `gen_presence_absence_set'. - (add_presence_absence): Process `pattern_list' instead of - `source_list'. - (process_decls): USe new functions - `process_presence_absence_names' and - `process_presence_absence_patterns'. - (reserv_sets_are_intersected): Use new function - `check_presence_pattern_sets'. - (presence_set, absence_set): Remove them. - (unit_presence_set_table, unit_absence_set_table): New global - variables. - (output_description): Use new function - `output_pattern_set_el_list'. - (generate): Use `initiate_presence_absence_pattern_sets'. - - 2002-09-18 Vladimir Makarov - - * genattr.c (main): Add output of prototype of new interface - function `dfa_clean_insn_cache'. - - * genautomata.c (output_dfa_clean_insn_cache_func): New function. - (DFA_CLEAN_INSN_CACHE_FUNC_NAME): New macro. - (output_dfa_start_func): Use function `dfa_clean_insn_cache' in - the generated code. - (write_automata): Call the new function. - -2003-01-09 Jan Hubicka - - * i386.md (unit, prefix_0f, memory attributes): Hanlde sseicvt - correctly. - -2003-01-09 Paolo Carlini - - * doc/tm.texi (EXTRA_ADDRESS_CONSTRAINT): Fix typo. - -2003-01-09 J"orn Rennecke - - * defaults.h (EXTRA_MEMORY_CONSTRAINT): Add STR argument. - (EXTRA_ADDRESS_CONSTRAINT): Likewise. - (CONSTRAINT_LEN): Provide default definition. - (CONST_OK_FOR_CONSTRAINT_P): Likewise. - (CONST_DOUBLE_OK_FOR_CONSTRAINT_P): Likewise. - (EXTRA_CONSTRAINT_STR): Likewise. - (REG_CLASS_FROM_CONSTRAINT): Define. - * genoutput.c (check_constraint_len, constraint_len): New functions. - (validate_insn_alternatives): Check CONSTRAINT_LEN for each - constraint / modifier. - (gen_insn): Call check_constraint_len. - * local-alloc.c (block_alloc): Update to use new macros / pass - second argument to EXTRA_{MEMORY,ADDRESS}_CONSTRAINT. - * ra-build.c (handle_asm_insn): Likewise. - * recog.c (asm_operand_ok, preprocess_constraints): Likewise. - (constrain_operands, peep2_find_free_register): Likewise. - * regclass.c (record_operand_costs, record_reg_classes): Likewise. - * regmove.c (find_matches): Likewise. - * reload.c (push_secondary_reload, find_reloads): Likewise. - (alternative_allows_memconst): Likewise. - * reload1.c (maybe_fix_stack_asms): Likewise. - (reload_cse_simplify_operands): Likewise. - * stmt.c (parse_output_constraint, parse_input_constraint): Likewise. - * doc/tm.texi (CONSTRAINT_LEN, REG_CLASS_FROM_CONSTRAINT): Document. - (CONST_OK_FOR_CONSTRAINT_P): Likewise. - (CONST_DOUBLE_OK_FOR_CONSTRAINT_P, EXTRA_CONSTRAINT_STR): Likewise. - (EXTRA_MEMORY_CONSTRAINT, EXTRA_ADDRESS_CONSTRAINT): Add STR argument. - * config/s390/s390.h (EXTRA_MEMORY_CONSTRAINT): Likewise. - - * sh.h (OVERRIDE_OPTIONS): Allow first scheduling pass for SH5. - -2003-01-09 Kazu Hirata - - * config/h8300/h8300.md (*extzv_1_r_h8300): Correct the insn - length. - (*extzv_1_r_h8300hs): Likewise. - (*extzv_1_r_inv_h8300): Likewise. - (*extzv_1_r_inv_h8300hs): Likewise. - -2003-01-09 Kazu Hirata - - * config/h8300/h8300.h (PREDICATE_CODES): New. - -2003-01-09 Kazu Hirata - - * config/h8300/h8300.md (*addsi3_upper): New. - (*iorsi3_shift): Likewise. - (two splitters): Likewise. - (*addsi3_shift): Likewise. - (two splitters): Likewise. - -2003-01-09 Josef Zlomek - - * Makefile.in (optabs.o): Add dependency on basic-block.h. - * basic-block.h (control_flow_insn_p): Fuction was exported. - * cfgbuild.c (control_flow_insn_p): Fuction was made non-static. - * optabs.c (emit_libcall_block): Emit REG_LIBCALL and REG_RETVAL - notes only when the region is contained in a single basic block. - -2003-01-09 Eric Botcazou - - PR inline-asm/8832 - * tree.h (expand_asm): New prototype. - * stmt.c (expand_asm): Set the MEM_VOLATILE_P flag if instructed - to do so. - * c-semantics (genrtl_asm_stmt): Pass the RID_VOLATILE qualifier - down to expand_asm. - * c-typeck.c (simple_asm_stmt): Set the RID_VOLATILE qualifier. - * rtlanal.c (volatile_insn_p) [ASM_INPUT]: Test the MEM_VOLATILE_P flag. - (volatile_refs_p) [ASM_INPUT]: Likewise. - (side_effects_p) [ASM_INPUT]: Likewise. - -2003-01-09 Jan Hubicka - - * i386.md (*mul*): FIx constraints; remove confused comment; fix - athlon_decode attributes - (imul/k8 optimization peep2s): New. - - * athlon.md (athlon_ssecmp*): Handle ssecomi as well. - * i386.md (type attribute): Add ssecomi. - (unit, memory, prefix attributes): Handle ssecomi. - (cvt?2? patterns): Fix athlon_decode attribute - (comi patterns): Set attribute to ssecomi. - - PR target/8343 - * m68k.md (umulsidi, mulsidi expanders): Use register operand. - -2003-01-09 Richard Sandiford - - * config/mips/mips.h (PREDICATE_CODES): Add ADDRESSOF for predicates - that match register_operands. - * config/mips/mips.c (reg_or_0_operand, true_reg_or_0_operand): Make - register_operand the default case. - -2003-01-09 Eric Botcazou - - PR c/8032 - * c-typeck.c (process_init_element) [RECORD_TYPE]: For - an empty element, do not advance the pointer to unfilled - fields if there are pending initializers. - -2003-01-09 Christian Cornelssen - - * Makefile.in (ORDINARY_FLAGS_TO_PASS): Also pass DESTDIR. - (install-gcc-tooldir, install-cpp, installdirs, - install-common, install-driver, install-info, install-man, - install-headers, install-include-dir, install-headers-tar, - install-headers-cpio, install-headers-cp, install-mkheaders, - install-collect2, uninstall): Prepend $(DESTDIR) to - destination paths in all (un)installation commands. - (install-driver): Rewrite $(LN) commands to support DESTDIR - with "ln" as well as with "ln -s". - (installdirs): Simply use mkinstalldirs. - (install-libgcc, install-multilib): Also pass DESTDIR. - * mklibgcc.in: Prepend $(DESTDIR) to $(libsubdir) in the - installation destination variable ldir. - * config/alpha/t-osf4, config/arm/t-netbsd, - config/ia64/t-hpux, config/mips/t-iris5-6, - config/pa/t-hpux-shlib, config/rs6000/t-aix43, - config/rs6000/t-aix52, config/t-slibgcc-elf-ver, - config/t-slibgcc-sld: Prepend $$(DESTDIR) to $$(slibdir) - in the definition of SHLIB_INSTALL. - * config/arc/t-arc (install-multilib-arc): Prepend $(DESTDIR) to - $(libsubdir) in the installation commands. - -2003-01-08 Kaz Kojima - - * config/sh/sh.h (CASE_VECTOR_MODE): Use SImode for a - non-optimizing compile. - (ASM_OUTPUT_ADDR_VEC_ELT): Use .long for a non-optimizing - compile. - -2003-01-08 Douglas B Rupp - - * config/i386/i386.c (ix86_attribute_table): Add new attributes - ms_struct and gcc_struct. - (ix86_handle_struct_attribute): New function. - (ix86_ms_bitfield_layout_p): Update to take new attributes - into account. - * doc/extend.texi: Document new attributes. - * testsuite/gcc.dg/bf-ms-attrib.c: New test. - -2003-01-08 Danny Smith - - PR optimization/8750 - * config/i386/i386.c (ix86_expand_prologue): Don't allow - scheduling pass to move insns across __alloca call. - -2003-01-08 Dale Johannesen - - * config/rs6000/rs6000.md: Replace *store_multiple_string - with *stmsi[3-8]. - -2003-01-08 Jeff Sturm - - PR target/9210 - * config/rs6000/rs6000.c (rs6000_elf_encode_section_info): - Set SYMBOL_REF_FLAG on local data sym_ref. - -2003-01-08 Dale Johannesen - - * function.c (assign_parms): Don't set pretend_args_size if - REG_PARM_STACK_SPACE. - config/rs6000/rs6000.c (setup_incoming_varargs): Don't set - pretend_args_size. - -2003-01-08 Nathanael Nerode - - * gcc.hlp: Delete. - -2003-01-09 Jan Hubicka - - * i386.c (ix86_expand_int_addcc): Fix thinko. - -2003-01-08 David Edelsohn - - * config/rs6000/rs6000.h (FUNCTION_MODE): Always use SImode. - * config/rs6000/rs6000.c (TARGET_ASM_CAN_OUTPUT_MI_THUNK): Redefine - as hook_bool_tree_hwi_hwi_tree_true. - (rs6000_emit_allocate_stack): Use TARGET_32BIT. - (rs6000_emit_epilogue): Same. - (rs6000_output_mi_thunk): Re-implement as RTL. - * config/rs6000/xcoff.h (ASM_DECLARE_FUNCTION_NAME): Call - xcoffout_declare_function if any debugging enabled. - -2003-01-08 Chris Demetriou - - * config.gcc (mipsisa32r2-*-elf*, mipsisa32r2el-*-elf*): New - targets, to support MIPS32 Release 2 (MIPS32R2) configurations. - * config/mips/mips.h (enum processor_type): Rename - PROCESSOR_R4KC to PROCESSOR_4KC, PROCESSOR_R5KC to - PROCESSOR_5KC, and PROCESSOR_R20KC to PROCESSOR_20KC. - Add PROCESSOR_M4K. - (TARGET_MIPS4KC, TARGET_MIPS5KC): Update for the renaming. - (ISA_MIPS32R2): New define. - (GENERATE_MULT3_SI, ISA_HAS_CONDMOVE, ISA_HAS_8CC) - (ISA_HAS_MADD_MSUB, ISA_HAS_CLZ_CLO) - (ISA_HAS_PREFETCH): Add support for MIPS32R2. - (MIPS_ISA_DEFAULT): Likewise. Also, fix indentation. - (TARGET_CPU_CPP_BUILTINS): Add support for MIPS32R2. Add new - predefine __mips_isa_rev for MIPS32, MIPS32R2, and MIPS64. - (ISA_HAS_ROTR_SI): Add support for MIPS32R2, and avoid if - compiling MIPS16 code. - (ISA_HAS_ROTR_DI): Do not use if compiling MIPS16 code, and fix - comment. - (ISA_HAS_SEB_SEH): New define. - (ASM_SPEC, LINK_SPEC): Pass -mips32r2 to assembler and linker. - * config/mips/mips.c (mips_cpu_info_table): Adjust for enum - processor_type value renaming. Add support for MIPS32R2. - Clean up comments, and move "sb1" entry with other MIPS64 CPU - entries. - (override_options): Reimplement -mipsN option handling so that - it will work correctly for -mips32r2. Avoid branch-likely - instructions on MIPS32R2. - * config/mips/mips.md (mulsi3_mult3): Add support for MIPS32R2. - (extendhisi2): Use extendhisi2_hw if ISA_HAS_SEB_SEH. - (extendqisi2): Use extendqisi2_hw if ISA_HAS_SEB_SEH. - (extendhisi2_hw, extendqisi2_hw): New. - * config/mips/netbsd.h (TARGET_CPU_CPP_BUILTINS): Add support - for MIPS32R2. Add new predefine __mips_isa_rev for MIPS32, - MIPS32R2, and MIPS64. - (LINK_SPEC): Pass -mips32r2 to linker. - * config/mips/t-isa3264: Built -mips32r2 multilibs. - * doc/invoke.texi (MIPS Options): Add -mips32r2, add support - for mips32r2 in the -march description. Alphabetically sort - CPU names in the -march description. Add long-missed -mips32 - and -mips64 to MIPS option summary. - - * config.gcc: Update copyright years to include 2003. - * config/mips/mips.c: Likewise. - * config/mips/mips.h: Likewise. - * config/mips/mips.md: Likewise. - * config/mips/netbsd.h: Likewise. - * doc/invoke.texi: Likewise. - -2003-01-08 Andreas Schwab - - * aclocal.m4 (gcc_AC_INITFINI_ARRAY): Fix spelling of cache - variable. - * configure: Regenerated. - -2003-01-08 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Replace byte/word - extraction of det with b0, b1, w0, w2, etc. - (compute_logical_op_length): Likewise. - (compute_logical_op_cc): Likewise. - -2003-01-08 Kazu Hirata - - * config/h8300/h8300.h (CONSTANT_ADDRESS_P): Allow CONST and - HIGH on all variants. - -2003-01-08 Josef Zlomek - - * Makefile.in (PARTITION_H): New. - (BASIC_BLOCK_H): Added hard-reg-set.h and $(PARTITION_H). - * basic-block.h: Include hard-reg-set.h. - -2003-01-08 Richard Earnshaw - - * arm.h (ENABLE_XF_PATTERNS): Delete. - * arm.md (addxf3, subxf3, mulxf3, divxf3, modxf3, negxf2, absxf2) - (sqrtxf2, floatsixf2, fix_truncxfsi2, truncxfsf2, truncxfdf2) - (extendsfxf2, extenddfxf2, movxf, cmpxf, cmpxf_insn) - (cmpxf_trap): Delete. - (movxf_hard_insn): Remove test of ENABLE_XF_PATTERNS. - -2003-01-08 Jan Hubicka - - * i386.md (adddi3_carry_rex64, subdi3_carry_rex64): Name pattern. - (addhi3_carry, addqi3_carry, subhi3_carry, subqi3_carry): New patterns. - (add??cc): New expanders. - * i386.c (expand_int_addcc): New function. - * i386-protos.h (expand_int_addcc): Declare. - - * alias.c (memory_modified_1): New static function. - (memory_modified): New static varaible. - (memory_modified_in_insn_p): New global function. - * rtl.h (memory_modified_in_insn_p): Declare. - * rtlanal.c (modified_between_p, modified_in_p): Be smart about memory - references. - - * expr.h (emit_conditional_add): Declare. - -2003-01-07 Janis Johnson - - PR other/8947 - * doc/invoke.texi (-malign-double): Explain that the option breaks - binary compatibility. - -2003-01-08 Andreas Schwab - - * config.gcc (m68k-*-linux*): Don't set extra_parts and gnu_ld, - should come from the generic *-*-linux* entry. - -2003-01-07 Jan Hubicka - - * cselib.c (cselib_current_insn_in_libcall): New static variable. - (new_elt_loc_list, cselib_process_insn, cselib_init): Keep track on whether - we are inside libcall. - * cselib.h (elt_loc_list): Add in_libcall. - * gcse.c (do_local_cprop): Do not copy propagate using insns - in libcalls. - -2003-01-07 David Edelsohn - - * doc/tm.texi (TARGET_SCHED_VARIABLE_ISSUE): CLOBBER and USE do - not normally affect to issue rate. - -2003-01-07 Jan Hubicka - - * genopinit.c (optabs): Add addc_optab. - * ifcvt.c (noce_try_store_flag): Rename to ... - (noce_try_addcc): ... this one; handle generic conditional increment. - (noce_process_if_block): Update noce_try_addcc call. - * optabs.c (emit_conditional_add): New. - (init_obtabs): Initialize addc_optab. - * optabs.h (optab_index): Add OTI_addcc. - (addcc_optab): New macro. - * md.texi: Document addMcc - - PR target/8322 - * i386.c (ix86_init_mmx_sse_builtins): Constify arguments of loads. - * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. - * xmmintrin.h (_mm_load*_si128. _mm_store*_si128): Add casts. - - * reload1.c (delete_output_reload): Avoid repeated attempts - to delete insn. - -2003-01-07 Andreas Schwab - - * configure.in: Restore CFLAGS before gcc_AC_INITFINI_ARRAY. - Move --enable-initfini-array check ... - * aclocal.m4 (gcc_AC_INITFINI_ARRAY): ... here. Define - HAVE_INITFINI_ARRAY also when --enable-initfini-array is given. - Don't AC_SUBST gcc_cv_initfinit_array. Use AC_TRY_RUN. - * configure: Rebuild. - -2003-01-07 Richard Henderson - - * alias.c (find_base_value): Only use new_reg_base_value shortcut - if the register is set once. - -2003-01-07 Sylvain Pion - - * config/i386/i386.c (ix86_init_mmx_sse_builtins): - __builtin_ia32_ldmxcsr and __builtin_ia32_stmxcsr are SSE, not MXX. - * config/i386/i386.md (ldmxcsr, stmxcsr): SSE, not MMX. - -2003-01-07 Benjamin Kosnik - Sunil Davasam - - PR libstdc++/9076 - * unwind-dw2.c (execute_cfa_program): DW_CFA_undefined, - DW_CFA_same_value, read next and ignore. - -2003-01-07 Richard Henderson - - * cfganal.c (flow_call_edges_add): Don't crash on noreturn call. - -2003-01-07 Daniel Berlin - - * cfg.c: Include alloc-pool.h - (edge_pool): New pool. - (bb_pool): New pool. - (first_deleted_edge): Remove. - (first_deleted_block): Remove. - (init_flow): Alloc/free the pools. - (free_edge): Use pools. - (alloc_block): Ditto. - (expunge_block): Ditto. - (cached_make_edge): Ditto. - - * Makefile.in (cfg.o): Add alloc-pool.h dependency. - -2003-01-07 Daniel Berlin - - * et-forest.c: Include alloc-pool.h. - (struct et_forest): Add node_pool and occur_pool. - (et_forest_create): Create the new pools. - (et_forest_delete): Delete them. - (et_forest_add_node): Allocate and free using pools. - (et_forest_add_edge): Ditto. - (et_forest_remove_node): Ditto. - (et_forest_remove_edge): Ditto. - - * Makefile.in (et-forest.o): Add alloc-pool.h dependency. - -2003-01-07 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Simplify and - optimize the handling of SImode. - * config/h8300/h8300.c (compute_logical_op_length): Update - accordingly. - * config/h8300/h8300.c (compute_logical_op_cc): Likewise. - -2003-01-07 Richard Sandiford - - * config/mips/mips.c (mips_va_arg): In the EABI code, apply the - big-endian correction to indirect arguments too. - -2003-01-06 Aldy Hernandez - - Segher Boessenkool - - * config/rs6000/rs6000.c (rs6000_reg_names): Add missing registers. - (alt_reg_names): Ditto, fix formatting. - * config/rs6000/rs6000.h (DEBUG_REGISTER_NAMES): Fix formatting. - -2003-01-06 Kazu Hirata - - * config/h8300/h8300.c (final_prescan_insn): Constify uid. - (output_logical_op): Constify intval and det. - (compute_logical_length): Likewise. - (compute_logical_cc): Likewise. - (output_a_shift): Constify mask. - (h8300_encode_label): Constify len. - -2003-01-06 Kazu Hirata - - * config/h8300/h8300.c (h8300_expand_prologue): Remove fsize. - (h8300_expand_epilogue): Likewise. - -2003-01-06 Aldy Hernandez - - Segher Boessenkool - - * config/rs6000/altivec.md: Remove spaces from assembler - instruction argument lists. - -2003-01-07 Michael Hayes - - * config/c4x/c4x.c (c4x_naked_function_p): Rename from - c4x_assembler_function_p. - (c4x_null_epilogue_p): Complement return value, all uses updated. - (c4x_insert_attributes): Add naked. - * config/c4x/c4x.md (c4x_null_epilogue_p): Changes uses. - * doc/extend.texi: Update C4x function attributes. - -2003-01-06 Richard Henderson - - * config/alpha/alpha.c (alpha_encode_section_info): Adjust symbol_str - properly when changing "local-ness". - * config/alpha/alpha.md (movdi_er_high_g): Allow all symbols. - -2003-01-06 Dale Johannesen - - * config/darwin-protos.h: Add prototypes for new section functions. - -2003-01-06 Chris Demetriou - - * config.gcc (mipsisa32-*-elf*, mipsisa32el-*-elf*): Default ABI - to EABI. - -2003-01-06 Zack Weinberg - - * hwint.h: If the current compiler has no 64-bit type at all, - make HOST_WIDEST_INT 32 bits. - -2003-01-06 Eric Christopher - - * config/mips/mips.md (movdf_internal2): Fix constraints. - -2003-01-06 Kazu Hirata - - * config/h8300/h8300.md (*twoshifts_l16_r1): New. - -2003-01-06 Richard Sandiford - - * config/mips/mips.md (leadi): Use dla rather than la. - -2003-01-06 Svein E. Seldal - - * config/c4x/c4x.h: Updated specs for new gas format. Fixed bug - in C33_FLAG. Added proper C33 support in ASM_FILE_START macro. - -2003-01-06 Herman A.J. ten Brugge - - * config/c4x/c4x.h: Remove hwint.h include and HOST_WIDE_INT_PRINT_HEX - redefinition. - -2003-01-05 Kazu Hirata - - * config/h8300/h8300.md (*extzv_8_23): New. - -2003-01-05 John David Anglin - - * pa64-hpux.h (JCR_SECTION_NAME): Define. - (PA_INIT_FRAME_DUMMY_ASM_OP): Check EH_FRAME_SECTION_NAME instead of - USE_EH_FRAME_REGISTRY when defining. - -2003-01-05 Kazu Hirata - - * config/h8300/h8300.c (output_a_shift): Do not output a - variable shift. - * config/h8300/h8300.md (two splitters): New. - -2003-01-05 Richard Sandiford - - * config/mips/mips.md: Disable the movstrsi define_split. - -2003-01-05 Kaveh R. Ghazi - - * alloc-pool.c: Don't include "libiberty.h". - * config/sparc/gmon-sol2.c: Include . - * convert.c (convert_to_real): Hide unused variable. - -2003-01-04 Kaveh R. Ghazi - - * Makefile.in (gtyp-gen.h): Const-ify. - * gcov-dump.c (tag_table): Likewise. - -2003-01-04 Bruce Korb - - * fixinc/fixfixes.c(wrap_fix): the wrapper guard must be a function - of *both* the file name and the fix name. - -2003-01-04 John David Anglin - - * config.gcc (hppa*64*-*-hpux11*): Define extra_parts. Don't use - collect2. - * pa-hpux11.h (LDD_SUFFIX, PARSE_LDD_OUTPUT): Undefine. - (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Define. - * pa64-hpux.h (HP_INIT_ARRAY_SECTION_ASM_OP, - GNU_INIT_ARRAY_SECTION_ASM_OP, HP_FINI_ARRAY_SECTION_ASM_OP, - GNU_FINI_ARRAY_SECTION_ASM_OP): Define. - (CTORS_SECTION_ASM_OP, DTORS_SECTION_ASM_OP): Define when not using - elfos.h. - (EH_FRAME_IN_DATA_SECTION): Delete define. - (HAS_INIT_SECTION, LD_INIT_SWITCH, LD_FINI_SWITCH): Undefine. - (STARTFILE_SPEC): Use crtbegin.o. - (ENDFILE_SPEC): Use crtend.o. - (INIT_SECTION_ASM_OP, FINI_SECTION_ASM_OP, CRT_CALL_STATIC_FUNCTION, - SUPPORTS_INIT_PRIORITY, PA_CXA_FINALIZE_STUB, PA_INIT_FINI_HACK, - PA_INIT_FRAME_DUMMY_ASM_OP, PA_JV_REGISTERCLASSES_STUB, - DTOR_LIST_BEGIN): Define. - * pa.c (TARGET_ASM_CONSTRUCTOR): Define. - (pa_asm_out_constructor, pa_asm_out_destructor): New functions. - * som.h (SUPPORTS_INIT_PRIORITY): Delete define. - -2002-12-31 Larin Hennessy - - * fixinc/fixinc.svr4: Remove references to i860, Sony NewsOS, and spur. - * fixinc/inclhack.def: Remove tests for Apple A/UX, ARM/RISCiX, DG/UX, - m88k-*-sysv3*, Sony NewsOS. Remove references to i860. - Cleanup handling of replacement text. - * fixinc/mkfixinc.sh: Remove reference to i?86-*-osf1* - -2003-01-04 Bruce Korb - - * fixinc/tests/base/math.h: removed obsolete results - * fixinc/tests/base/stdlib.h: ditto - * fixinc/tests/base/sys/param.h: ditto - * fixinc/tests/base/sys/stat.h: ditto - * fixinc/tests/base/time.h: ditto - * fixinc/tests/base/X11/Intrinsic.h: removed obsolete file - * fixinc/tests/base/sys/byteorder.h: ditto - * fixinc/inclhack.def: Remove superfluous backslashes - -2003-01-04 Kazu Hirata - - * config/h8300/h8300-protos.h: Add prototypes for - the new functions defined below. - * config/h8300/h8300.c (TARGET_ASM_FUNCTION_PROLOGUE): Do not - define. - (dosize): Emit RTL instead of assembly code. - (push): Likewise. - (pop): Likewise. - (h8300_output_function_prologue): Remove. - (h8300_expand_prologue): New. - (h8300_expand_epilogue): New. - (h8300_output_function_epilogue): Do only the reset of - pragma_saveall. - * config/h8300/h8300.md (push_h8300): New. - (push_h8300hs): Likewise. - (pop_h8300): Likewise. - (pop_h8300hs): Likewise. - (*stm_h8300s_2): Change the name to stm_h8300s_2. - (*stm_h8300s_3): Change the name to stm_h8300s_3. - (*stm_h8300s_4): Change the name to stm_h8300s_4. - (*ldm_h8300s_2): New. - (*ldm_h8300s_3): Likewise. - (*ldm_h8300s_4): Likewise. - (return): Likewise. - (*return_1): Likewise. - (prologue): Likewise. - (epilogue): Likewise. - (monitor_prologue): Likewise. - -2003-01-03 Dale Johannesen - - * config/darwin.h: (EXTRA_SECTIONS): Add machopic_symbol_stub1, - machopic_picsymbol_stub1. - (EXTRA_SECTION_FUNCTIONS): Ditto. - * rs6000/rs6000.c: Update copyright. - (machopic_output_stub): Use them. Remove an insn from stub code. - -2003-01-02 Jason Merrill - - * fold-const.c (fold) [COND_EXPR]: Avoid NOP_EXPRs better. - - * integrate.c (copy_decl_for_inlining): Don't clear the rtl for - static/external decls. - - * c-common.c (finish_fname_decls): Put the DECL_STMTs inside the - outermost scope. - * c-decl.c (c_make_fname_decl): Push the decls there, too. - -2003-01-03 Kazu Hirata - - * config/h8300/h8300-protos.h: Add a prototype for - h8300_current_function_interrupt_function_p. - * config/h8300/h8300.c (interrupt_handler): Remove. - (os_task): Likewise. - (monitor): Likewise. - (pragma_interrupt): New. - (WORD_REG_USED): Use - h8300_current_function_interrupt_function_p. - (dosize): Likewise. - (h8300_output_function_prologue): Likewise. - Do not set interrupt_handler, os_task, monitor. - (h8300_output_function_prologue): Use - h8300_current_function_interrupt_function_p. - Do not set interrupt_handler, os_task, monitor. - (h8300_current_function_interrupt_function_p): New. - (h8300_pr_interrupt): Set pragma_interrupt. - (h8300_insert_attributes): Reset pragma_interrupt. - -2003-01-03 Gerald Pfeifer - - * doc/install.texi (Configuration): Fix markup for reference to - gcc/config.gcc. - -2003-01-02 Kazu Hirata - - * config/h8300/h8300.md (*iorhi3_zext): Relax the condition. - (*iorhi3_two_qi): Likewise. - (*iorsi3_zexthi): Likewise. - (*xorhi3_zextqi): Likewise. - (*xorsi3_zexthi): Likewise. - (*xorsi3_zextqi): Likewise. - -2003-01-02 Kazu Hirata - - * config/h8300/h8300.c (stack_pointer_operand): New. - (const_int_gt_2_operand): Likewise. - (const_int_ge_8_operand): Likewise. - * config/h8300/h8300.md (a splitter): Likewise. - (a peephole2): Likewise. - * config/h8300/h8300-protos.h: Add prototypes for the new - functions above. - -2003-01-02 Steven Bosscher - - * objc/Make-lang.in, objc/config-lang.in, objc/lang-specs.h, - objc/objc-act.h: Fix copyright years. - -2003-01-02 Steven Bosscher - - * doc/passes.texi: Fix documentation for -fssa-ccp - -2003-01-02 Neil Booth - - * gccbug.in: Update for new categories. - -2003-01-01 Kazu Hirata - - * config/h8300/h8300.md: Reorder some patterns. - -2003-01-01 Kazu Hirata - - * config/h8300/h8300.c (output_logical_op): Fix a warning. - -2003-01-01 Neil Booth - - * config/darwin-protos.h, config/c4x/c4x-protos.h, - config/cris/cris-protos.h, config/i370/i370-protos.h, - config/i960/i960-protos.h, config/ia64/ia64-protos.h, - config/v850/v850-protos.h: Use struct, and don't conditionally - compile on GCC_C_PRAGMA_H. - -2003-01-01 Kazu Hirata - - * config/arm/arm-protos.h: Remove #ifdef GCC_C_PRAGMA_H. - * config/h8300/h8300-protos.h: Likewise. - * config/sh/sh-protos.h: Likewise. - -2003-01-01 Kazu Hirata - - * config/arm/arm-protos.h: Use struct cpp_reader instead of - cpp_reader. - * config/h8300/h8300-protos.h: Likewise. - * config/sh/sh-protos.h: Likewise. - -2003-01-01 Neil Booth - - * config/arm/arm.c (arm_pr_long_calls, arm_pr_no_long_calls, - arm_pr_long_calls_off): Use struct. - * config/h8300/h8300.c (h8300_pr-interrupt, h8300_pr_saveall) - : Similarly. - Don't include cpplib.h. - * config/sh/sh.c (sh_pr_interrupt, sh_pr_trapa, - sh_pr_nosave_low_regs): Similarly. - -2003-01-01 Kazu Hirata - - * config/h8300/h8300.c: Include cpplib.h. - -2003-01-01 Steven Bosscher - - * objc/Make-lang.in, objc/config-lang.in, objc/lang-options.h, - objc/lang-specs.h, objc/objc-act.c, objc/objc-act.h, - objc/objc-lang.c, objc/objc-tree.def: Replace "GNU CC" with - "GCC" in the copyright header. - -2003-01-01 Neil Booth - - * c-pragma.c (c_register_pragma): New. - (init_pragma): Use it. - * c-pragma.h (cpp_register_pragma): Don't declare. - (c_register_pragma): New. - * cpplib.h: Remove #ifdef GCC_C_PRAGMA_H. - * config/darwin.h (REGISTER_TARGET_PRAGMAS): Update. - * config/arm/arm.h (REGISTER_TARGET_PRAGMAS): Update. - * config/c4x/c4x.h (REGISTER_TARGET_PRAGMAS): Update. - * config/h8300/h8300.h (REGISTER_TARGET_PRAGMAS): Update. - * config/i370/i370.h (REGISTER_TARGET_PRAGMAS): Update. - * config/i960/i960.h (REGISTER_TARGET_PRAGMAS): Update. - * config/ia64/hpux.h (REGISTER_TARGET_PRAGMAS): Update. - * config/rs6000/rs6000.h (REGISTER_TARGET_PRAGMAS): Update. - * 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. -- cgit v1.2.1