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 depdendancy 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 H8/S. (get_shift_alg): Generate special code for 25-bit shifts on H8/S. 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 H8/S. (shift_alg_qi): Use special code for 21-bit shifts on H8/S. (get_shift_alg): Generate special code for 21-bit shifts on H8/S. 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 defintion 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-reoder.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 favour 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): Initialise 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 comparision 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 opimisation 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_reoder_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_FUNCITON): 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 havn'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_depdendant): 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 dedendancy 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 wehther edges has been cleaned up. * reload1.c: Inlucde 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 non-zero 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 initialised 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 initialised 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_funciton_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_funciton_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.