+2002-05-18 Richard Henderson <rth@redhat.com>
+
+ * final.c (HAVE_READONLY_DATA_SECTION): New.
+ (shorten_branches): Use it instead of ifdefs.
+ * varasm.c (enum in_section): Add in_readonly_data.
+ (text_section, data_section): Tidy.
+ (readonly_data_section): Use READONLY_DATA_SECTION_ASM_OP if present.
+
+ * config/darwin.h, config/nextstep.h, config/h8300/elf.h,
+ config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h
+ (READONLY_DATA_SECTION): Don't undef.
+
+ * config/alpha/unicosmk.h, config/h8300/elf.h, config/i386/aix386ng.h,
+ config/i860/paragon.h, config/m68k/dpx2.h, config/m68k/hp320.h,
+ config/rs6000/lynx.h (READONLY_DATA_SECTION_ASM_OP): Undef.
+
+ * config/elfos.h, config/svr3.h, config/alpha/alpha-interix.h,
+ config/alpha/elf.h, config/c4x/c4x.h, config/i386/i386-interix.h,
+ config/i386/sco5.h, config/i386/svr3gas.h, config/i860/sysv3.h,
+ config/m88k/m88k.h, config/pa/pa64-hpux.h (USE_CONST_SECTION): Remove.
+
+ * config/elfos.h, config/netware.h, config/alpha/alpha-interix.h,
+ config/alpha/elf.h, config/alpha/vms.h, config/arc/arc.h,
+ config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
+ config/i386/dgux.h, config/i386/i386-interix.h, config/i386/sco5.h,
+ config/ia64/hpux.h, config/m32r/m32r.h, config/m68k/tower-as.h,
+ config/m88k/m88k.h, config/mcore/mcore-pe.h, config/mips/iris6.h,
+ config/mips/mips.h, config/mmix/mmix.h, config/pa/pa64-hpux.h,
+ config/sparc/sysv4.h (READONLY_DATA_SECTION_ASM_OP): Rename from
+ CONST_SECTION_ASM_OP/READONLY_SECTION_ASM_OP/RDATA_SECTION_ASM_OP.
+
+ * config/elfos.h, config/netware.h, config/1750a/1750a.h,
+ config/a29k/a29k.h, config/alpha/alpha-interix.h, config/alpha/alpha.h,
+ config/arm/coff.h, config/h8300/h8300.h, config/i386/aix386ng.h,
+ config/i386/i386-interix.h, config/i386/osfrose.h, config/mmix/mmix.h,
+ config/pa/pa64-hpux.h, config/sparc/litecoff.h
+ (EXTRA_SECTIONS, EXTRA_SECTION_FUNCTIONS): Remove.
+
+ * config/elfos.h, config/netware.h, config/svr3.h,
+ config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
+ config/arm/coff.h, config/c4x/c4x.h, config/dsp16xx/dsp16xx.h,
+ config/h8300/h8300.h, config/i386/i386-interix.h,
+ config/i386/osfrose.h, config/i386/svr3gas.h, config/mmix/mmix.h,
+ config/pa/pa64-hpux.h (READONLY_DATA_SECTION): Remove.
+
+ * config/elfos.h, config/netware.h, config/svr3.h,
+ config/alpha/alpha-interix.h, config/alpha/alpha.h, config/alpha/elf.h,
+ config/c4x/c4x.h, config/i386/aix386ng.h, config/i386/i386-interix.h,
+ config/i386/sco5.h, config/i386/svr3gas.h, config/mmix/mmix.h,
+ config/pa/pa64-hpux.h (CONST_SECTION_FUNCTION): Remove.
+
+ * config/lynx.h, config/svr3.h, config/alpha/elf.h, config/alpha/vms.h,
+ config/c4x/c4x.h, config/dsp16xx/dsp16xx.h, config/i386/sco5.h,
+ config/i386/svr3gas.h, config/i860/sysv3.h, config/i860/sysv4.h,
+ config/ia64/sysv4.h, config/m32r/m32r.h, config/m88k/m88k.h,
+ config/mcore/mcore-elf.h, config/mcore/mcore-pe.h, config/mips/elf.h,
+ config/mips/elf64.h, config/mips/iris6.h, config/mips/linux.h,
+ config/mips/mips.h, config/mips/rtems64.h, config/mips/vxworks.h,
+ config/rs6000/sysv4.h, config/v850/v850.h
+ (EXTRA_SECTIONS): Remove in_const/in_rdata.
+ (EXTRA_SECTION_FUNCTIONS): Remove accompanying function.
+
+ * config/svr3.h, config/c4x/c4x.h, config/i386/dgux.h,
+ config/i386/sco5.h, config/i386/svr3gas.h, config/ia64/aix.h,
+ config/m88k/dgux.h, config/mcore/mcore-pe.h, config/mmix/mmix.h,
+ config/sparc/sysv4.h (SELECT_RTX_SECTION): Use readonly_data_section.
+ * config/alpha/alpha.c (alpha_start_function): Likewise.
+ (alpha_write_linkage): Likewise.
+ * config/m32r/m32r.c (m32r_select_section): Likewise.
+ * config/m88k/m88k.c (m88k_select_section): Likewise.
+ * config/mips/mips.c (mips_select_rtx_section): Likewise.
+ * config/rs6000/rs6000.c (rs6000_select_rtx_section): Likewise.
+ (rs6000_elf_select_section): Likewise.
+ * config/v850/v850.c (v850_select_section): Likewise.
+
+ * config/1750a/1750a.h, config/i860/sysv3.h
+ (READONLY_DATA_SECTION_ASM_OP): New.
+ READONLY_DATA_SECTION_ASM_OP.
+ * config/i386/interix.c, config/i386/winnt.c
+ (i386_pe_unique_section): Always use .rdata prefix.
+ * config/pa/som.h (readonly_data): Always switch to read-only section.
+ (READONLY_DATA_SECTION): Predicate on flag_pic.
+ * config/we32k/we32k.h (READONLY_DATA_SECTION): Remove parenthesis.
+ * doc/tm.texi (READONLY_DATA_SECTION_ASM_OP): New.
+ (READONLY_DATA_SECTION): Update.
+
+2002-05-18 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * c-common.c (c_common_post_options): Warn if -Wformat-zero-length
+ is used without -Wformat.
+ * c-common.h (warn_format_zero_length): Declare extern.
+ * c-decl.c (warn_options): Add "format-zero-length".
+ * c-format.c (warn_format_zero_length): Declare.
+ (set_Wformat): Set warn_format_zero_length for -Wformat.
+ (check_format_info): Only warn about zero-length formats if
+ warn_format_zero_length is true. Include the format type
+ name in the warning message.
+ * doc/invoke.texi: Document -Wformat-zero-length.
+ * testsuite/gcc.dg/format/zero-length-1.c: New test.
+
+2002-05-18 Kazu Hirata <kazu@cs.umass.edu>
+
+ * timevar.c: Fix formatting.
+ * tlink.c: Likewise.
+ * toplev.c: Likewise.
+ * tree-dump.c: Likewise.
+ * tree-inline.c: Likewise.
+
+2002-05-18 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * cppinit.c (cpp_post_options): If preprocessed, turn off
+ traditional. If traditional, turn off column numbers.
+ * cpplib.c (cpp_push_buffer): Lex from stage 3 if traditional.
+ * cpptrad.c (handle_newline): Update line_base.
+ (skip_comment): Handle -Wcomment.
+
+2002-05-17 Zack Weinberg <zack@codesourcery.com>
+
+ * cppinit.c (struct builtin): Remove unused fields.
+ (CPLUS, BUILTIN, OPERATOR, O, builtin_array_end): Kill.
+ (operator_array): New - was second half of builtin_array.
+ (init_builtins): Simplify loop over builtin_array/operator_array.
+
+2002-05-18 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * defaults.h (UNIQUE_SECTION): Remove.
+ * system.h (UNIQUE_SECTION, SELECT_SECTION): Poison.
+
+2002-05-17 Richard Henderson <rth@redhat.com>
+
+ * expr.c (init_expr_once): Don't use start/end_sequence.
+ Use rtx_alloc instead of emit_insn.
+ * toplev.c (lang_dependent_init): Run init_expr_once here ...
+ (lang_independent_init): ... not here.
+
+2002-05-17 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * config/sh/lib1funcs.asm (GLOBAL): Use __USER_LABEL_PREFIX__.
+
+2002-05-17 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ * config/avr/avr.c (avr_regs_to_save): New function. Also check
+ for fixed registers, possibly used for global register variables.
+ (initial_elimination_offset, avr_output_function_prologue,
+ avr_output_function_epilogue): Move common code to avr_regs_to_save.
+
+2002-05-17 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * Makefile.in: Update for cpptrad.c.
+ * cpphash.h (struct cpp_buffer): New members for buffer
+ overlays.
+ (struct cpp_reader): New members for traditional output.
+ (_cpp_read_logical_line, _cpp_overlay_buffer): New.
+ * cppinit.c (cpp_create_reader): Set trad_line.
+ (cpp_destroy): Free trad_out_base if used.
+ (cpp_read_main_file): Overlay an empty buffer if traditional.
+ (cpp_finish_options): Don't do builtins.
+ (COMMAND_LINE_OPTIONS): Add -traditional-cpp.
+ (cpp_handle_option): Handle it.
+ * cpplex.c (continue_after_nul): New.
+ (_cpp_lex_direct): Use handle_nul.
+ * cpplib.h (struct cpp_options): New traditional option.
+ * cpptrad.c: New file.
+
+2002-05-17 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * c-common.c (c_common_init_options): Use C89 for Objective-C,
+ and set the options flag.
+ * cppinit.c (lang_flags): Remove objc.
+ (lang_defaults): Remove OBJC and OBJCXX.
+ (set_lang): Update.
+ (COMMAND_LINE_OPTIONS): Remove -+ and -lang-objc++.
+ (cpp_handle_option): Remove -+ and -lang-objc++.
+ For ObjC, just set a flag.
+ (print_help): Update.
+ * cpplib.h (enum c_lang): Remove CLK_OBJC and CLK_OBJCXX.
+
+2002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * doc/install.texi (Specific, mips-sgi-irix6): Document need to
+ bootstrap with -mips3.
+
+2002-05-17 Kazu Hirata <kazu@cs.umass.edu>
+
+ * final.c: Fix formatting.
+ * fix-header.c: Likewise.
+ * flow.c: Likewise.
+ * fold-const.c: Likewise.
+ * function.c: Likewise.
+
+2002-05-17 David S. Miller <davem@redhat.com>
+
+ PR c/6689, PR optimization/6615
+ * local-alloc.c (struct equivalence): Rename 'src' to 'src_p'
+ and make it a pointer to rtx. Update comments.
+ (update_equiv_regs): When scanning for equivalences, record
+ address of SET_SRC (set) in reg_equiv[].src_p. Dereference
+ it while making the equiv replacements.
+
+2002-05-17 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * config/sparc/sparc.c (sparc_aout_select_section): Fixed typo.
+
+2002-05-17 kaz Kojima <kkojima@rr.iij4u.or.jp>
+
+ * config/sh/sh.h (ENCODE_SECTION_INFO): Consider MODULE_LOCAL_P
+ when encoding visibility into SYMBOL_REF_FLAG.
+
+2002-05-17 Richard Sandiford <rsandifo@redhat.com>
+
+ * expr.c (force_operand): Fix reversed move.
+
+2002-05-17 Kurt Wall <kwall@kurtwerks.com>
+
+ * doc/install.texi (Testing): Mention two common DejaGnu warnings
+ that can be ignored.
+
+2002-05-16 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Final install): Recommend to install into a
+ "clean" target directory.
+
+2002-05-17 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.md: Use braced strings instead of quoted strings
+ for code blocks. Tidy whitespace.
+
+2002-05-17 Richard Henderson <rth@redhat.com>
+
+ * hooks.c (hook_tree_bool_false): New.
+ * hooks.h: Declare it.
+ * target-def.h (TARGET_ASM_SELECT_SECTION): New.
+ (TARGET_ASM_UNIQUE_SECTION, TARGET_IN_SMALL_DATA_P): New.
+ * target.h (select_section, unique_section): New.
+ (in_small_data_p): New.
+ * varasm.c (resolve_unique_section): Use hooks instead of macros.
+ (variable_section, output_constant_def_contents): Likewise.
+ (default_select_section, default_unique_section): New.
+ (categorize_decl_for_section, default_elf_select_section): New.
+ * output.h: Declare them.
+
+ * config/darwin.h (ALIAS_SECTION, try_section_alias): Remove.
+ (TARGET_ASM_SELECT_SECTION): New.
+ (SELECT_SECTION): Move ...
+ * config/darwin.c (machopic_select_section): ... here.
+ * config/darwin-protos.h: Update.
+
+ * config/nextstep.h (TARGET_ASM_SELECT_SECTION): New.
+ (SELECT_SECTION): Move ...
+ * config/nextstep.c (nextstep_select_section): ... here.
+ * config/nextstep-protos.h: Update.
+
+ * config/elfos.h (UNIQUE_SECTION, SELECT_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION): New.
+ * config/svr3.h (SELECT_SECTION): Remove.
+
+ * config/alpha/alpha.c (unicosmk_unique_section): Make static.
+ (TARGET_ASM_UNIQUE_SECTION) [UNICOS]: New.
+ (TARGET_IN_SMALL_DATA_P, alpha_in_small_data_p): New.
+ (alpha_encode_section_info): Use it.
+ * config/alpha/alpha-protos.h: Update.
+ * config/alpha/elf.h (DO_SELECT_SECTION): Remove.
+ (SELECT_SECTION, UNIQUE_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION): New.
+ * config/alpha/unicosmk.h (UNIQUE_SECTION): Remove.
+
+ * config/arm/pe.h (UNIQUE_SECTION): Remove.
+ (TARGET_ASM_UNIQUE_SECTION): New.
+
+ * config/avr/avr.c (TARGET_ASM_UNIQUE_SECTION): New.
+ (avr_unique_section): Rename from unique_section; make static.
+ * config/avr/avr-protos.h: Update.
+ * config/avr/avr.h (UNIQUE_SECTION): Remove.
+
+ * config/c4x/c4x.h (SELECT_SECTION): Remove.
+
+ * config/i386/cygwin.h (UNIQUE_SECTION): Remove.
+ (TARGET_ASM_UNIQUE_SECTION): New.
+ * config/i386/i386-interix.h: Likewise.
+ * config/i386/win32.h: Likewise.
+ * config/i386/djgpp.h (UNIQUE_SECTION): Remove.
+ * config/i386/i386.c (ix86_asm_file_end): Use target hook not macro.
+ * config/i386/sco5.h (SELECT_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION): New.
+ * config/i386/svr3gas.h (SELECT_SECTION): Remove.
+
+ * config/i860/paragon.h: Undef TARGET_ASM_SELECT_SECTION
+ instead of SELECT_SECTION.
+ * config/m68k/dpx2.h: Likewise.
+ * config/rs6000/lynx.h: Likewise.
+
+ * config/ia64/aix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
+ * config/ia64/ia64.c (TARGET_IN_SMALL_DATA_P): New.
+ (ia64_in_small_data_p): New.
+ (ia64_encode_section_info): Use it. Reorganize overlarge conditional.
+ (ia64_aix_select_section, ia64_aix_unique_section): New.
+ * config/ia64/sysv4.h (DO_SELECT_SECTION): Remove.
+ (SELECT_SECTION, UNIQUE_SECTION): Remove.
+
+ * config/m32r/m32r.h (SELECT_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION): New.
+ * config/m32r/m32r.c (m32r_select_section): Take align argument.
+ * config/m32r/m32r-protos.h: Update.
+
+ * config/m88k/m88k.h (TARGET_ASM_SELECT_SECTION): New.
+ (SELECT_SECTION): Move ...
+ * config/m88k/m88k.c (m88k_select_section): ... here.
+
+ * config/mcore/mcore-pe.h (SELECT_SECTION): Remove.
+ * config/mcore/mcore.h (UNIQUE_SECTION): Remove.
+ * config/mcore/mcore.c (TARGET_ASM_UNIQUE_SECTION): New.
+ (mcore_unique_section): Make static.
+ * config/mcore/mcore-protos.h: Update.
+
+ * config/mips/elf.h (UNIQUE_SECTION): Remove.
+ (TARGET_ASM_UNIQUE_SECTION): New.
+ * config/mips/elf64.h: Likewise.
+ * config/mips/iris6gld.h: Likewise.
+ * config/mips/linux.h: Likewise.
+ * config/mips/mips-protos.h: Update.
+ * config/mips/mips.c (mips_select_section): Add align argument.
+ * config/mips/mips.h (SELECT_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION): New.
+
+ * config/mmix/mmix.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
+ * config/mmix/mmix.c (mmix_select_section): Remove.
+ (mmix_unique_section): Remove.
+ * config/mmix/mmix-protos.h: Update.
+
+ * config/pa/pa.h (TARGET_ASM_SELECT_SECTION): New.
+ (SELECT_SECTION): Move ...
+ * config/pa/pa.c (pa_select_section): ... here.
+ * config/pa/pa64-hpux.h (UNIQUE_SECTION): Remove.
+
+ * config/rs6000/rs6000.c (rs6000_elf_select_section): Rename
+ from rs6000_select_section and make static.
+ (rs6000_elf_unique_section): Similarly.
+ (rs6000_xcoff_select_section): From xcoff.h.
+ (rs6000_xcoff_unique_section): Likewise.
+ * config/rs6000/rs6000-protos.h: Update.
+ * config/rs6000/sysv4.h (SELECT_SECTION, UNIQUE_SECTION): Remove.
+ (TARGET_ASM_SELECT_SECTION, TARGET_ASM_UNIQUE_SECTION): New.
+ * config/rs6000/xcoff.h: Likewise.
+
+ * config/sparc/aout.h (TARGET_ASM_SELECT_SECTION): New.
+ (SELECT_SECTION): Move ...
+ * config/sparc/sparc.c (sparc_aout_select_section): ... here.
+
+ * config/v850/v850.h (SELECT_SECTION): Move ...
+ * config/v850/v850.c (v850_select_section): ... here.
+ (TARGET_ASM_SELECT_SECTION): New.
+
+ * config/vax/vms.h (SELECT_SECTION): Move ...
+ * config/vax/vax.c (vms_select_section): ... here.
+ (TARGET_ASM_SELECT_SECTION): New.
+
+ * doc/tm.texi: Update SELECT_SECTION and UNIQUE_SECTION docs
+ for the target hooks.
+
+2002-05-17 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * config/arm/arm.c (emit_multi_reg_push): Do not set
+ RTX_FRAME_RELATED_P on the SEQUENCE.
+
+2002-05-16 Richard Henderson <rth@redhat.com>
+
+ * config/ia64/ia64.c (ia64_reorg): Rebuild bb_for_insn before
+ splitting. Use split_all_insns; update_life_info_in_dirty_blocks.
+
+2002-05-16 Richard Henderson <rth@redhat.com>
+
+ * config/alpha/unicosmk.h (TARGET_OS_CPP_BUILTINS): Fix typo.
+
+ * config/ia64/ia64.c (saveable_obstack): Do not declare.
+
+2002-05-16 Richard Henderson <rth@redhat.com>
+
+ * basic-block.h, bb-reorder.c, cfg.c, cfganal.c, cfgbuild.c,
+ cfgcleanup.c, cfglayout.c, cfgloop.c, cfgrtl.c, combine.c,
+ conflict.c, df.c, df.h, dominance.c, final.c, flow.c, function.c,
+ gcse.c, global.c, graph.c, haifa-sched.c, ifcvt.c, lcm.c,
+ local-alloc.c, loop.c, predict.c, print-rtl.c, profile.c,
+ recog.c, reg-stack.c, regclass.c, regmove.c, regrename.c,
+ reload1.c, reorg.c, resource.c, sbitmap.c, sched-deps.c,
+ sched-ebb.c, sched-rgn.c, sibcall.c, ssa-ccp.c, ssa-dce.c, ssa.c:
+ Revert "Basic block renumbering removal", and two followup patches.
+
+2002-05-16 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * lcm.c (optimize_mode_switching): Revert previous change.
+
+2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * sched-rgn.c (schedule_insns): Initialize large_region_blocks
+ with only extant block numbers.
+
+2002-05-16 Jason Thorpe <thorpej@wasabisystems.com>
+
+ * lcm.c (optimize_mode_switching): Fix typo.
+
+2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ * flow.c (calculate_global_regs_live): Queue blocks in program order.
+
+2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * doc/install.texi (Configuration): Document PWDCMD.
+
+2002-05-16 Dale Johannesen <dalej@apple.com>
+
+ * combine.c (cant_combine_insn_p): Reenable combinations
+ involving hard regs unless CLASS_LIKELY_SPILLED_P.
+
+2002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * c-common.c (cb_register_builtins): Handle more built-ins
+ here rather than in gcc.c specs.
+ * gcc.c (cpp_unique_options): Move many built-ins to c-common.c.
+ (cpp_options): Pass -O flags even when only preprocessing.
+ * toplev.c (set_fast_math_flags): New prototype.
+ (fast_math_flags_set_p): New.
+ (set_no_fast_math_flags): Remove.
+ (decode_f_option): Update.
+ * toplev.h (set_fast_math_flags): Update.
+ (fast_math_flags_set_p): New.
+ (set_no_fast_math_flags): Remove.
+config:
+ * c4x/c4x.c (c4x_override_options): Update.
+
+2002-05-16 Zack Weinberg <zack@codesourcery.com>
+
+ * c-common.c (STDC_0_IN_SYSTEM_HEADERS, REGISTER_PREFIX):
+ Default-define here.
+ (builtin_define_with_value): Can now wrap the expansion in
+ quotation marks if such is wanted.
+ (cb_register_builtins): Update calls to builtin_define_with_value.
+ Define __REGISTER_PREFIX__, __USER_LABEL_PREFIX__, and __VERSION__
+ here.
+ (c_common_init): Set options->stdc_0_in_system_headers.
+ * c-lex.h: Update prototype of builtin_define_with_value.
+ * cppdefault.h: Remove default definitions of USER_LABEL_PREFIX
+ and REGISTER_PREFIX.
+
+ * cppinit.c (VERS, ULP, C, X): Kill.
+ (builtin_array): Remove entries for __VERSION__,
+ __USER_LABEL_PREFIX__, __REGISTER_PREFIX__, and
+ __HAVE_BUILTIN_SETJMP__. Make __STDC__ always a builtin, not
+ a constant.
+ (init_builtins): Kill off a bunch of now-dead code.
+ (COMMAND_LINE_OPTIONS): Remove -fleading-underscore and
+ -fno-leading-underscore.
+ (cpp_handle_option): Remove code to set user_label_prefix.
+ (cpp_post_options): Likewise.
+
+ * cpplib.h (struct cpp_options): Remove user_label_prefix.
+ (stdc_0_in_system_headers): New.
+ * cppmacro.c (builtin_macro): Check CPP_OPTION (pfile,
+ stdc_0_in_system_headers) too to decide the value of __STDC__.
+
+ * tradcpp.c (user_label_prefix): Kill.
+ (main): Remove code handling -f(no-)leading-underscore.
+ (initialize_builtins): Don't define __REGISTER_PREFIX__
+ or __USER_LABEL_PREFIX__.
+ (install_value): Wrap compound statement in dummy loop so the
+ macro works properly in an if statement.
+
+
+2002-05-16 Janis Johnson <janis187@us.ibm.com>
+
+ * loop.h (struct loop_info): Add member has_prefetch.
+ * loop.c (PREFETCH_CONDITIONAL): Change default to 1.
+ (prescan_loop): Initialize has_prefetch.
+ (struct prefetch_info): Change prefetch_in_loop and
+ prefetch_before_loop from bit fields to ints.
+ (emit_prefetch_instructions): Several small fixes.
+ (check_dbra_loop): Don't reverse loop that uses prefetch.
+
+2002-05-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
+
+ * Makefile.in: Allow for PWDCMD to override hardcoded pwd.
+ * configure.in: Likewise.
+ * fixinc/check.tpl: Likewise.
+ * fixinc/fixinc.dgux: Likewise.
+ * fixinc/fixinc.svr4: Likewise.
+ * fixinc/fixinc.winnt: Likewise.
+ * fixinc/fixincl.sh: Likewise.
+ * fixproto: Likewise.
+ * configure: Regenerate.
+
+2002-05-16 Zdenek Dvorak <rakdver@atrey.karlin.mff.cuni.cz>
+
+ Basic block renumbering removal:
+ * basic_block.h (struct basic_block_def): Renamed index to sindex,
+ added prev_bb and next_bb fields.
+ (n_basic_blocks): Renamed to num_basic_blocks.
+ (last_basic_block): New, index of last basic block.
+ (FOR_BB_BETWEEN, FOR_ALL_BB, FOR_ALL_BB_REVERSE): New macros for
+ traversing basic block chain.
+ (BLOCK_NUM): index -> sindex.
+ (create_basic_block_structure, create_basic_block): Declaration changed.
+ (debug_num2bb): Declare.
+ (expunge_block_nocompact): Declaration removed.
+ (link_block, unlink_block, compact_blocks): Declare.
+ * bb-reorder.c (make_reorder_chain, make_reorder_chain_1): Modified.
+ * cfg.c (entry_exit_blocks): Initialize new fields.
+ (clear_edges, alloc_block, expunge_block, cached_make_edge,
+ redirect_edge_pred, dump_flow_info, dump_edge_info,
+ alloc_aux_for_blocks, clear_aux_for_blocks, alloc_aux_for_edges,
+ free_aux_for_edges): Modified.
+ (link_block, unlink_block, compact_blocks, debug_num2bb): New.
+ (expunge_block_nocompact): Removed.
+ * cfganal.c (can_fallthru, mark_dfs_back_edges, flow_call_edges_add,
+ find_unreachable_blocks, create_edge_list, print_edge_list,
+ verify_edge_list, flow_edge_list_print, remove_fake_successors,
+ remove_fake_edges, flow_reverse_top_sort_order_compute,
+ flow_depth_first_order_compute, flow_preorder_transversal_compute,
+ flow_dfs_compute_reverse_init, flow_dfs_compute_reverse_add_bb,
+ flow_dfs_compute_reverse_execute): Modified.
+ * cfgbuild.c (make_edges, make_eh_edge, find_basic_blocks_1,
+ find_basic_blocks, find_many_sub_basic_blocks, find_sub_basic_blocks):
+ Modified.
+ * cfgcleanup.c (try_simplify_condjump, try_forward_edges,
+ merge_blocks_move_predecessor_nojumps,
+ merge_blocks_move_successor_nojumps, merge_blocks,
+ outgoing_edges_match, try_crossjump_to_edge, try_crossjump_bb,
+ try_optimize_cfg, delete_unreachable_blocks, cleanup_cfg): Modified.
+ * cfglayout.c (skip_insns_after_block, label_for_bb,
+ record_effective_endpoints, scope_to_insns_finalize,
+ fixup_reorder_chain, verify_insn_chain, cleanup_unconditional_jumps,
+ fixup_fallthru_exit_predecessor, cfg_layout_redirect_edge,
+ cfg_layout_duplicate_bb): Modified.
+ * cfgloop.c (flow_loops_cfg_dump, flow_loop_dump, flow_loops_dump,
+ flow_loop_entry_edges_find, flow_loop_exit_edges_find,
+ flow_loop_nodes_find, flow_loop_pre_header_find, flow_loop_scan,
+ flow_loops_find, flow_loop_outside_edge_p): Modified.
+ * cfgrtl.c (create_basic_block_structure, create_basic_block,
+ flow_delete_block, compute_bb_for_insn, split_block,
+ try_redirect_by_replacing_jump, redirect_edge_and_branch,
+ force_nonfallthru_and_redirect, tidy_fallthru_edge,
+ back_edge_of_syntactic_loop_p, split_edge, commit_one_edge_insertion,
+ commit_edge_insertions, commit_edge_insertions_watch_calls,
+ dump_bb, print_rtl_with_bb, verify_flow_info, purge_dead_edges,
+ purge_all_dead_edges): Modified.
+ * combine.c (combine_instructions, set_nonzero_bits_and_sign_copies,
+ try_combine, nonzero_bits, num_sign_bit_copies, get_last_value_validate,
+ get_last_value, reg_dead_at_p, distribute_notes, distribute_links):
+ Modified.
+ * conflict.c (conflict_graph_compute): Modified.
+ * df.c (FOR_ALL_BBS): Removed.
+ (df_bitmaps_alloc, df_bitmaps_free, df_alloc, df_analyse_1,
+ df_modified_p, df_analyse, df_refs_unlink, df_insn_modify,
+ df_dump, hybrid_search_bitmap, iterative_dataflow_sbitmap): Modified.
+ * df.h (DF_BB_INFO, DF_REF_BBNO): Modified.
+ * dominance.c (init_dom_info, calc_dfs_tree_nonrec, calc_dfs_tree,
+ calc_idoms, idoms_to_doms, calculate_dominance_info): Modified.
+ * final.c (compute_alignments, final_scan_insn): Modified.
+ * flow.c (verify_local_live_at_start, update_life_info,
+ update_life_info_in_dirty_blocks, free_basic_block_vars,
+ delete_noop_moves, calculate_global_regs_live,
+ initialize_uninitialized_subregs, allocate_bb_life_data,
+ regno_uninitialized, regno_clobbered_at_setjmp, mark_set_1,
+ mark_used_reg, count_or_remove_death_notes): Modified.
+ * function.c (thread_prologue_and_epilogue_insns): Modified.
+ * gcse.c (struct null_pointer_info): Change typo of current_block
+ to basic_block.
+ (gcse_main, alloc_gcse_mem, compute_local_properties, compute_sets,
+ oprs_unchanged_p, load_killed_in_block_p, record_last_reg_set_info,
+ compute_hash_table, alloc_rd_mem, handle_rd_kill_set, compute_kill_rd,
+ alloc_avail_expr_mem, expr_killed_p, compute_ae_kill,
+ expr_reaches_here_p_work, expr_reaches_here_p, handle_avail_expr,
+ classic_gcse, one_classic_gcse_pass, compute_transp, cprop,
+ one_cprop_pass, compute_pre_data, pre_expr_reaches_here_p_work,
+ pre_expr_reaches_here_p, insert_insn_end_bb, pre_edge_insert,
+ pre_delete, one_pre_gcse_pass, compute_transpout,
+ invalidate_nonnull_info, delete_null_pointer_checks_1,
+ free_code_hoist_mem, compute_code_hoist_vbeinout,
+ hoist_expr_reaches_here_p, hoist_code, one_code_hoisting_pass,
+ compute_ld_motion_mems, store_ops_ok, find_moveable_store,
+ compute_store_table, build_store_vectors, insert_insn_start_bb,
+ insert_store, replace_store_insn, free_store_memory, store_motion):
+ Modified.
+ * global.c (global_alloc, global_conflicts, mark_elimination,
+ build_insn_chain): Modified.
+ * graph.c (print_rtl_graph_with_bb): Modified.
+ * haifa-sched.c (sched_init): Modified.
+ * ifcvt.c (SET_ORIG_INDEX, ORIG_INDEX): Removed.
+ (find_if_block, find_cond_trap, find_if_case_1, find_if_case_2,
+ if_convert): Modified.
+ * lcm.c (compute_antinout_edge, compute_earliest, compute_laterin,
+ compute_insert_delete, pre_edge_lcm, compute_available,
+ compute_farthest, compute_nearerout, compute_rev_insert_delete,
+ pre_edge_rev_lcm, make_preds_opaque, optimize_mode_switching):
+ Modified.
+ * local-alloc.c (alloc_qty, local_alloc, update_equiv_regs): Modified.
+ * loop.c (loop_dump_aux): Modified.
+ * predict.c (combine_predictions_for_insn, estimate_probability,
+ last_basic_block_p, process_note_prediction, process_note_predictions,
+ note_prediction_to_br_prob, propagate_freq, counts_to_freqs,
+ expensive_function_p, estimate_bb_frequencies,
+ compute_function_frequency): Modified.
+ * print-rtl.c (print_rtx): Modified.
+ * profile.c (GCOV_INDEX_TO_BB, BB_TO_GCOV_INDEX, instrument_edges,
+ get_exec_counts, compute_branch_probabilities, compute_checksum,
+ branch_prob, find_spanning_tree): Modified.
+ * recog.c (split_all_insns, peephole2_optimize): Modified.
+ * reg-stack.c (reg_to_stack, convert_regs_entry, compensate_edge,
+ convert_regs_1, convert_regs_2, convert_regs): Modified.
+ * regclass.c (scan_one_insn, regclass): Modified.
+ * regmove.c (mark_flags_life_zones, regmove_optimize,
+ combine_stack_adjustments): Modified.
+ * regrename.c (regrename_optimize, copyprop_hardreg_forward): Modified.
+ * reload1.c (reload, reload_combine, copy_eh_notes): Modified.
+ * reorg.c (dbr_schedule): Modified.
+ * resource.c (find_basic_block, init_resource_info): Modified.
+ * sbitmap.c (sbitmap_intersection_of_succs,
+ sbitmap_intersection_of_preds, sbitmap_union_of_succs,
+ sbitmap_union_of_preds): Modified.
+ * sched-deps.c (init_dependency_caches): Modified.
+ * sched-ebb.c (schedule_ebbs): Modified.
+ * sched-rgn.c (is_cfg_nonregular, build_control_flow, debug_regions,
+ find_rgns, compute_trg_info, init_regions, schedule_insns): Modified.
+ * sibcall.c (optimize_sibling_and_tail_recursive_call): Modified.
+ * ssa-ccp.c (examine_flow_edges, optimize_unexecutable_edges,
+ ssa_ccp_substitute_constants, ssa_ccp_df_delete_unreachable_insns,
+ ssa_const_prop): Modified.
+ * ssa-dce.c (set_control_dependent_block_to_edge_map_,
+ find_control_dependence, find_pdom, ssa_eliminate_dead_code): Modified.
+ * ssa.c (remove_phi_alternative, find_evaluations,
+ compute_dominance_frontiers_1, compute_iterated_dominance_frontiers,
+ insert_phi_node, rename_block, convert_to_ssa, eliminate_phi,
+ make_regs_equivalent_over_bad_edges,
+ make_equivalent_phi_alternatives_equival,
+ compute_conservative_reg_partition,
+ coalesce_regs_in_successor_phi_nodes, compute_coalesced_reg_partition,
+ rename_equivalent_regs, convert_from_ssa, for_each_successor_phi):
+ Modified.
+
+2002-05-16 Mark Mitchell <mark@codesourcery.com>
+
+ * cfgrtl.c (purge_dead_edges): Correct handling of EDGE_EH.
+
+2002-05-16 Nick Clifton <nickc@cambridge.redhat.com>
+
+ * config/arm/arm.c (arm_rtx_costs): Check for RTX being a
+ SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
+ (arm_adjust_cost): Check for RTX being a SYMBOL_REF before
+ calling CONSTANT_POOL_ADDRESS_P.
+ * config/arm/arm.h (TARGET_CPU_CPP_BUILTINS): Fix typo in code
+ to decide whether to define __arm__ or __thumb.
+ (THUMB_GO_IF_LEGITIMATE_ADDRESS): Check for RTX being a
+ SYMBOL_REF before calling CONSTANT_POOL_ADDRESS_P.
+
+2002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * config/arc/arc.h (CPP_PREDEFINES): Remove.
+ (CPP_SPEC): Update.
+ (TARGET_CPU_CPP_BUILTINS): New.
+
+2002-05-16 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * cpphash.h (cpp_macro): Move here, and make expansion a union.
+ * cppmacro.c (cpp_macro): Remove.
+ (enter_macro_context, replace_args, warn_of_redefinition,
+ _cpp_create_definition, cpp_macro_definition): Update.
+
+2002-05-16 Jason Merrill <jason@redhat.com>
+
+ * config/mips/mips.c (mips_output_external): Don't do sdata
+ optimization for a variable with DECL_COMDAT set.
+
+2002-05-15 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/altivec.h: Cleanups for tighter typechecking.
+ Cleanups for accepting modifiers on pointers.
+ Fix predicate typos.
+ Allow long pointers as well as int pointers.
+
+2002-05-15 Richard Henderson <rth@redhat.com>
+
+ * varasm.c (merge_weak): Remove special case for extern and common.
+
+2002-05-15 Matt Hiller <hiller@redhat.com>
+
+ * testsuite/gcc.c-torture/compile/20000804-1.x: Don't return 1 if
+ XFAILing.
+ * testsuite/gcc.c-torture/compile/20001226-1.x: Ditto.
+ * testsuite/gcc.c-torture/compile/920520-1.x: Ditto.
+ * testsuite/gcc.c-torture/compile/mipscop-1.x: XFAIL for now.
+ * testsuite/gcc.c-torture/compile/mipscop-2.x: Ditto.
+ * testsuite/gcc.c-torture/compile/mipscop-3.x: Ditto.
+ * testsuite/gcc.c-torture/compile/mipscop-4.x: Ditto.
+
+2002-05-15 Aldy Hernandez <aldyh@redhat.com>
+
+ * reload1.c (forget_old_reloads_1): Do not use subreg offset.
+
+2002-05-15 Aldy Hernandez <aldyh@redhat.com>
+
+ * config/rs6000/rs6000.md ("altivec_mtvscr"): Set VSCR register.
+ ("altivec_mfvscr"): Read from VSCR.
+
+ Add vscr sets for the following insns: altivec_vctuxs,
+ altivec_vaddubs, altivec_vaddsbs, altivec_vadduhs,
+ altivec_vaddshs, altivec_vadduws, altivec_vaddsws, altivec_vctsxs,
+ altivec_vmhaddshs, altivec_vmhraddshs, altivec_vmsumuhs,
+ altivec_vmsumshs, altivec_vpkuhss, altivec_vpkshss,
+ altivec_vpkuwss, altivec_vpkswss, altivec_vpkuhus,
+ altivec_vpkshus, altivec_vpkuwus, altivec_vpkswus,
+ altivec_vsububs, altivec_vsubsbs, altivec_vsubuhs,
+ altivec_vsubshs, altivec_vsubuws, altivec_vsubsws,
+ altivec_vsum4ubs, altivec_vsum4sbs, altivec_vsum4shs,
+ altivec_vsum2sws, altivec_vsumsws.
+
+ * config/rs6000/rs6000.h: Add VSCR fixed register.
+ (CALL_REALLY_USED_REGISTERS): Add vscr.
+ (CALL_USED_REGISTERS): Same.
+ (FIXED_REGISTERS): Same.
+ (REG_ALLOC_ORDER): Same.
+ (reg_class): Add VSCR_REGS.
+ (REG_CLASS_NAMES): Same.
+ (REG_CLASS_CONTENTS): Same.
+ (VSCR_REGNO): New.
+ (REGISTER_NAMES): Add vscr.
+ (DEBUG_REGISTER_NAMES): Same.
+ (ADDITIONAL_REGISTER_NAMES): Same.
+ (FIRST_PSEUDO_REGISTER): Increment.
+ (CONDITIONAL_REGISTER_USAGE): Set VSCR as a global register.
+
+2002-05-15 Jakub Jelinek <jakub@redhat.com>
+
+ * fold-const.c (fold): Fix a typo.
+
+2002-05-15 Eric Botcazou <ebotcazou@multimania.com>
+
+ * fold-const.c (fold) [LT_EXPR]: Move the transformation of a
+ comparison against the highest or lowest integer value before
+ the 'X >= CST to X > (CST - 1)' and 'X < CST to X <= (CST - 1)'
+ transformation and that of an unsigned comparison against 0
+ right after.
+
+2002-05-15 Richard Henderson <rth@redhat.com>
+
+ * varasm.c (merge_weak): Error for any weakening after definition.
+ Adjust weakening after use warning to catch more cases.
+ (assemble_alias): Set TREE_USED and TREE_ASM_WRITTEN consistently.
+ * config/alpha/alpha.c (alpha_encode_section_info): Do not abort.
+
+Wed May 15 10:38:27 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * invoke.texi (-malign-double): Re-add lost warning.
+
+ * i386-protos.h (x86_output_mi_thunk): Declare.
+ * unix.h (ASM_OUTPUT_MI_THUNK): Move offline to ...
+ * i386.c (x86_output_mi_thunk): ... here; handle 64bits.
+
+ * dwarf2out.c (output_call_frame_info): Do not skip unwind info
+ when flag_asynchronous_unwind_tables is set.
+
+ * flags.h (flag_reorder_functions): Declare.
+ * function.c (prepare_function_start): Initialize frequnecy.
+ * params.def (HOT_BB_COUNT_FRACTION, HOT_BB_FREQUENCY_FRACTION): New.
+ * Makefile.in (predict.o): Add dependency on target.h and params.h
+ * defaults.h (HOT_TEXT_SECTION_NAME,
+ UNLIKELY_EXECUTED_TEXT_SECTION_NAME): New macros.
+ * predict.c (choose_function_section): New function.
+ (estimate_bb_frequencies): Use it.
+ * toplev.c (flag_reorder_functions): New global variable.
+ (lang_independent_options): New.
+ (parse_options_and_default_flags): Set.
+ * varasm.c (assemble_start_function): Bypass functdion alignment
+ for never executed functions.
+ * invoke.texi (-freorder-blocks, -freorder-functions): Document.
+ (param hot-bb-count-fraction, hot-bb-frequency-fraction): New.
+ * tm.texi (HOT_TEXT_SECTION_NAME, UNLIKELY_EXECUTED_TEXT_SECTION_NAME):
+ Document.
+
+ Thu Jan 3 21:52:09 CET 2002 Jan Hubicka <jh@suse.cz>
+
+ * predict.c: Inlude profile.h
+ (MIN_COUNT): Rename to MIN_COUNT_FRACTION
+ (maybe_hot_bb_p, probably_cold_bb_p, probably_never_executed_bb_p):
+ Use the information about maximal counter in the program.
+
+ Thu Dec 20 22:14:00 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * basic-block.h (maybe_hot_bb_p, probably_cold_bb_p,
+ probably_never_executed_bb_p): New functions.
+ * cfgcleanup.c (outgoing_edges_match): Use them.
+ * predict.c (MIN_COUNT, MIN_FREQUENCY): New macros.
+ (maybe_hot_bb_p, probably_cold_bb_p,
+ probably_never_executed_bb_p): New functions.
+
+ * function.h (function): Add new field function_frequency.
+ * predict.c (compute_function_frequency): New function.
+ (estimate_probability): Call it.
+
+2002-03-09 Jakub Jelinek <jakub@redhat.com>
+
+ PR optimization/5172, optimization/5200
+ * gcse.c (gcse_main): Disable store_motion.
+
+2002-05-14 Zack Weinberg <zack@codesourcery.com>
+
+ * c-parse.in (MODIFIED_WCHAR_TYPE): New macro.
+ (c_common_nodes_and_builtins): Use it.
+ (builtin_define_with_value): New function.
+ (cb_register_builtins): Define __SIZE_TYPE__,
+ __PTRDIFF_TYPE__, __WCHAR_TYPE__, and __WINT_TYPE__ here,
+ using builtin_define_with_value. Use consistent notation when
+ defining __GXX_WEAK__.
+ (WCHAR_TYPE_SIZE): Don't redefine.
+ (combine_strings): Don't use WCHAR_TYPE_SIZE.
+
+ * cppdefault.h: Don't provide defaults for SIZE_TYPE,
+ PTRDIFF_TYPE, WCHAR_TYPE, or WINT_TYPE.
+ * cppinit.c (builtin_array): Remove entries for __SIZE_TYPE__ etc.
+ * tradcpp.c (initialize_builtins): Likewise.
+ * gcc.c (cpp_unique_options): Don't muck with __WCHAR_TYPE__.
+
+ * c-lex.h (builtin_define_with_value): Prototype.
+ * system.h: Poison NO_BUILTIN_SIZE_TYPE, NO_BUILTIN_WCHAR_TYPE,
+ NO_BUILTIN_PTRDIFF_TYPE, and NO_BUILTIN_WINT_TYPE.
+ * doc/tm.texi: Remove mention of NO_BUILTIN_SIZE_TYPE etc.
+
+ * config/avr/avr.h, config/h8300/h8300.h, config/i386/i386.h,
+ config/ia64/ia64.h, config/mips/dec-osf1.h, config/mips/iris6.h,
+ config/mips/linux.h, config/mips/mips.h, config/mips/netbsd.h,
+ config/mips/osfrose.h, config/mips/sni-svr4.h, config/rs6000/aix51.h,
+ config/s390/linux.h, config/sh/sh.h, config/sh/sh64.h,
+ config/sparc/linux64.h, config/sparc/netbsd-elf.h,
+ config/sparc/sol2-bi.h, config/sparc/sparc.h:
+ Do not define NO_BUILTIN_SIZE_TYPE etc. Remove all references
+ to __SIZE_TYPE__ etc from all spec strings. When this makes
+ extra specs empty, delete them.
+
+2002-05-14 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * pa.c (override_options): Override TARGET_JUMP_IN_DELAY when scheduling
+ for PA8000 or generating dwarf2 call frame information.
+ (output_call): Remove DO_FRAME_NOTES check from return pointer
+ optimization.
+ (following_call): Return 0 when scheduling for PA8000 or generating
+ dwarf2 call frame information. Revise comment.
+
+2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
+
+config/alpha:
+ * alpha.h (TARGET_CPU_CPP_BUILTINS): Define __IEEE_FP
+ and __IEEE_FP_INEXACT as appropriate.
+ (CPLUSPLUS_CPP_SPEC): Don't define __cplusplus.
+ (CPP_SPEC): Remove ieee defines.
+ * freebsd.h, netbsd.h: Remove ieee defines and cpp_cpu.
+
+2002-05-14 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.c (ix86_save_reg): Make regno unsigned.
+ (ix86_safe_length, ix86_safe_length_prefix, ix86_safe_memory): Kill.
+
+2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * arm/arm.h (TARGET_CPU_CPP_BUILTINS): Define.
+ (CPP_SPEC): Update.
+ (CPP_APCS_PC_SPEC, CPP_APCS_PC_DEFAULT_SPEC,
+ CPP_FLOAT_SPEC, CPP_FLOAT_DEFAULT_SPEC, CPP_ENDIAN_SPEC,
+ CPP_ENDIAN_DEFAULT_SPEC, CPP_INTERWORK_DEFAULT_SPEC,
+ CPP_INTERWORK_SPEC, CPP_PREDEFINES): Remove.
+ (EXTRA_SPECS): Update.
+ * arm/conix-elf.h, arm/linux-elf.h, arm/netbsd.h, arm/riscix.h,
+ arm/riscix1-1.h, arm/rtems-elf.h, arm/semiaof.h, arm/unknown-elf.h,
+ arm/unknown-elf-oabi.h, arm/vxarm.h: Remove CPP_PREDEFINES and
+ define TARGET_OS_CPP_BUILTINS if necessary.
+
+2002-05-14 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * gcc.c (cpp_options): Must pass -m* and -f* options
+ to the front end even when only preprocessing.
+ (cc1_options): Remove redundant -lang-c.
+ * tradcpp.c (main): Ignore -m options.
+objc:
+ * lang-specs.h: Similarly.
+
+2002-05-14 Vladimir Makarov <vmakarov@redhat.com>
+
+ * genautomata.c (transform_3): Add code for transformation
+ `(A,B,...)+C -> A+C,B,...'.
+
+Tue May 14 12:48:22 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * final.c (end_final): Do not output profile_arcs constructor, when
+ no functions are instrumented.
+
+Tue May 14 12:38:30 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (testsi to testqi_zext_1 splitter): Fix typo.
+
+2002-05-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi: Remove special markup originally required for
+ HTML generation with texi2html.
+
+2002-05-14 Andreas Schwab <schwab@suse.de>
+
+ * config/ia64/sysv4.h (DO_SELECT_SECTION): Factored out of
+ SELECT_SECTION.
+ (UNIQUE_SECTION): Define to get small data correctly.
+
+ * varasm.c (resolve_unique_section): Add third parameter
+ flag_function_or_data_sections and use it instead of
+ flag_function_sections.
+ (assemble_start_function): Pass flag_function_sections.
+ (asm_emit_uninitialised): Pass flag_data_sections.
+ (assemble_variable): Likewise.
+
+2002-05-14 Richard Henderson <rth@redhat.com>
+
+ * config/i386/i386.md: Use define_constants for unspec numbers.
+ * config/i386/i386.c: Likewise.
+
+2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * doc/contrib.texi: Update my entry.
+
+2002-05-13 Mark Mitchell <mark@codesourcery.com>
+
+ * fixinc/inclhack.def (winidss_valist): Limit applicability.
+ * fixinc/fixincl.x: Regenerated.
+ * fixinc/tests/base/math.h: Update.
+ * fixinc/tests/base/testing.h: Likewise.
+
+2002-05-13 Zack Weinberg <zack@codesourcery.com>
+
+ * genattr.c (gen_attr): Don't emit a comma after the last
+ enumerator.
+
+2002-05-13 Richard Henderson <rth@redhat.com>
+
+ * cfgrtl.c (purge_dead_edges): Handle abnormal call edges created
+ by non-local gotos.
+ * recog.c (peephole2_optimize): Likewise.
+
+2002-05-13 Andris Pavenis <pavenis@lanet.lv>
+
+ * cppfiles.c (open_file): Change mode (DJGPP only) of redirected
+ input to O_BINARY.
+
+2002-05-13 Jeffrey A Law (law@redhat.com)
+
+ * flow.c (invalidate_mems_from_autoinc): Rewrite to use for_each_rtx.
+ Update prototype and callers.
+ (propagate_one_insn): Stack pointer adjustments kill MEMs on
+ the mem_set_list which reference the stack pointer, as do
+ calls to constant functions as they may clobber outgoing
+ argument space.
+
+ * i386.c (ia32_multipass_dfa_lookahead): Prototype.
+
+ * i386.c (TARGET_SCHED_FIRST_CYCLE_MULTIPASS_DFA_LOOKAHEAD): Define.
+ (ia32_multipass_dfa_lookahead): New function.
+
+2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * gcc.c (SWITCH_TAKES_ARG): Remove 'V'.
+ (translate_options): Remove 'V'.
+ (process_command): Similarly.
+doc:
+ * invoke.texi: Remove documentation of 'V'.
+
+2002-05-13 Ulrich Weigand <uweigand@de.ibm.com>
+
+ * config/s390/linux.h: Revert 2002-04-22 changes.
+
+2002-05-13 Scott Marks <SMarks@mobile-mind.com>
+
+ * config/fr30/fr30.md: Only allow splits of immediate loads
+ if the destination is a register.
+
+2002-05-13 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * Makefile.in (c-common.o, cppinit.o): Update.
+ * c-common.c: Include except.h.
+ (cb_register_builtins): Handle __USING_SJLJ_EXCEPTIONS__.
+ Call TARGET_CPU_CPP_BUILTINS and TARGET_OS_CPP_BUILTINS.
+ * cppinit.c (__USING_SJLJ_EXCEPTIONS): Not here.
+ * defaults.h (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS,
+ CPP_PREDEFINES): Handle here.
+config:
+ * alpha/alpha-interix.h, alpha/gnu.h, alpha/linux.h,
+ alpha/netbsd.h, alpha/openbsd.h, alpha/osf.h, alpha/unicosmk.h,
+ alpha/vms.h, alpha/vxworks.h: Remove CPP_PREDEFINES, define
+ TARGET_OS_CPP_BUILTINS.
+ * alpha/alpha.h (TARGET_CPU_CPP_BUILTINS): Define.
+ (CPP_SPEC, EXTRA_SPECS): Update.
+ (CPP_AM_BWX_SPEC, CPP_AM_MAX_SPEC, CPP_AM_FIX_SPEC,
+ CPP_AM_CIX_SPEC, CPP_IM_EV4_SPEC, CPP_IM_EV5_SPEC,
+ CPP_IM_EV6_SPEC, CPP_CPU_EV4_SPEC, CPP_CPU_EV5_SPEC,
+ CPP_CPU_EV56_SPEC, CPP_CPU_PCA56_SPEC, CPP_CPU_EV6_SPEC,
+ CPP_CPU_EV67_SPEC, CPP_CPU_DEFAULT_SPEC, CPP_CPU_SPEC): Remove.
+doc:
+ * tm.texi (TARGET_REGISTER_CPP_BUILTINS): Remove.
+ (TARGET_OS_CPP_BUILTINS, TARGET_CPU_CPP_BUILTINS): Define.
+
+2002-05-12 Zack Weinberg <zack@codesourcery.com>
+
+ * emit-rtl.c (global_rtl): Update comment.
+ (const_double_htab, const_double_htab_hash,
+ const_double_htab_hash, lookup_const_double): New.
+ (const_int_htab_hash, const_int_htab_eq): Remove const
+ qualifiers, which cause tons of warnings with RTL checking on.
+ (gen_rtx_CONST_DOUBLE): Deleted.
+ (const_double_from_real_value): New function - bears some
+ resemblance to the former immed_real_const_1.
+ (immed_double_const): Moved here from varasm.c and
+ simplified.
+ (gen_rtx_REG): Make REGNO unsigned to squelch warnings.
+ (gen_rtx_SUBREG): Use gen_rtx_raw_SUBREG.
+ (gen_rtx): Use immed_double_const.
+ (init_emit_once): Initialize the const_double_htab. Use
+ REAL_VALUE_FROM_INT where possible. Can now use
+ CONST_DOUBLE_FROM_REAL_VALUE when setting up const_tiny_rtx.
+ * varasm.c (struct varasm_status): Remove x_const_double_chain.
+ (const_double_chain, immed_real_const, clear_const_double_mem): Delete.
+ (immed_double_const, immed_real_const_1): Moved to emit-rtl.c.
+ (init_varasm_status, mark_varasm_status): Don't touch
+ x_const_double_chain.
+
+ * output.h: Delete prototype for clear_const_double_mem.
+ * real.h: Make REAL_VALUE_TYPE a macro again. Remove leading
+ '0' slot from all CONST_DOUBLE_FORMAT definitions. Prototype
+ const_double_from_real_value, not immed_real_const_1, and use
+ it to define CONST_DOUBLE_FROM_REAL_VALUE. Define new macro
+ CONST_DOUBLE_ATOF.
+ * rtl.h (CONST_DOUBLE_CHAIN): Kill.
+ (CONST_DOUBLE_LOW, CONST_DOUBLE_HIGH): Adjust.
+ (gen_rtx_CONST_DOUBLE, immed_real_const): Delete prototypes.
+ (gen_rtx_REG): Second arg is unsigned.
+
+ * gengenrtl.c (special_rtx): Take out CONST_DOUBLE.
+ (excluded_rtx): New, return true for CONST_DOUBLE.
+ (genmacro): Write nothing for excluded codes.
+ * combine.c (combine_simplify_rtx): Use CONST_DOUBLE_FROM_REAL_VALUE.
+ * expr.c (expand_expr): Likewise.
+ * ggc-common.c (ggc_mark_rtx_children_1): Don't mark the
+ CONST_DOUBLE_CHAIN.
+ * toplev.c (rest_of_compilation): Don't call
+ clear_const_double_mem.
+
+ * config/rs6000/rs6000.c (rs6000_float_const): Delete.
+ (rs6000_hash_constant): Remove CONST_DOUBLE special case.
+ (toc_hash_eq): Remove CONST_DOUBLE and LABEL_REF special cases.
+ * config/rs6000/rs6000-protos.h: Don't prototype rs6000_float_const.
+ * config/c4x/c4x.md, config/rs6000/rs6000.md: Use CONST_DOUBLE_ATOF.
+ * config/dsp16xx/dsp16xx.md, config/mips/mips.md,
+ config/pa/pa.md: Use CONST_DOUBLE_FROM_REAL_VALUE.
+ * config/sparc/sparc.md, config/sparc/sparc.c: Use immed_double_const.
+
+2002-05-12 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
+
+ * mips/iris6.h (CPLUSPLUS_CPP_SPEC): Define.
+
+2002-05-12 Tom Tromey <tromey@redhat.com>
+
+ * tree.h (copy_node): Don't mention TREE_PERMANENT.
+
+2002-05-12 Zack Weinberg <zack@codesourcery.com>
+
+ * gensupport.c (n_comma_elts): Moved here from genattrtab.c.
+ (scan_comma_elt): New function. Accepts whitespace in comma lists.
+ * gensupport.h: Prototype new routines.
+ * genattr.c (gen_attr): Use scan_comma_elt. Avoid unnecessary
+ use of printf.
+ * genattrtab.c (n_comma_elts): Moved to gensupport.c.
+ (next_comma_elt): Use scan_comma_elt.
+
+ * config/i386/i386.md: Use new attribute notation to break up
+ long lines in define_attr forms.
+
+2002-05-12 Richard Henderson <rth@redhat.com>
+
+ * expr.c (compress_float_constant): New.
+ (emit_move_insn): Use it.
+ (float_extend_from_mem): New.
+ (init_expr_once): Initialize it.
+ * real.c (exact_real_truncate): New.
+
+ * config/i386/i386.h (CONST_COSTS): Assume CONST_DOUBLE gets
+ dropped into memory; penalize for size.
+ (RTX_COSTS): FLOAT_EXTEND is free.
+ * config/i386/i386.md (extendsfdf2, extendsfxf2, extendsftf2,
+ extenddfxf2, extenddftf2): Accept constants and drop them to memory.
+
+2002-05-12 Richard Henderson <rth@redhat.com>
+
+ * profile.h (profile_info): Add missing extern to declaration.
+ * profile.c (profile_info): Define it.
+
+2002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * pa/pa32-regs.h (HARD_REGNO_MODE_OK): Revise sets of general registers
+ used for DImode and TImode.
+
+2002-05-11 Neil Booth <neil@daikokuya.demon.co.uk>
+
+ * cpplex.c (_cpp_lex_direct): When in a directive at EOF
+ fake a newline.
+
+2002-05-11 Zack Weinberg <zack@codesourcery.com>
+
+ * config/rs6000/rs6000.c (rs6000_default_long_calls,
+ rs6000_longcall_switch, rs6000_set_default_type_attributes): New.
+ (TARGET_SET_DEFAULT_TYPE_ATTRIBUTES): Set it.
+ (rs6000_override_options): Handle -m(no-)longcall.
+ (init_cumulative_args, output_mi_thunk): Check for both
+ longcall and shortcall attributes on the function.
+ (rs6000_attribute_table): Add "shortcall".
+ (rs6000_handle_longcall_attribute): Update comment.
+ (altivec_expand_unop_builtin, altivec_expand_binop_builtin,
+ altivec_expand_ternop_builtin): Add default clauses to switches
+ to silence warnings.
+
+ * config/rs6000/rs6000.h: Declare rs6000_longcall_switch and
+ rs6000_default_long_calls. Define REGISTER_TARGET_PRAGMAS.
+ (TARGET_OPTIONS): Add longcall and no-longcall.
+
+ * config/rs6000/rs6000.md (call_nonlocal_sysv,
+ call_value_nonlocal_sysv): Split by alternatives. One pair
+ accepts only SYMBOL_REFs and rejects if CALL_LONG is set in
+ the call cookie. The other pair accepts only LR/CTR and has
+ no restriction.
+
+ * config.gcc (rs6000-*-* | powerpc*-*-* trailer stanza):
+ Set c_target_objs, cxx_target_objs; add t-rs6000-c-rule to
+ tmake_file.
+ * config/rs6000/rs6000-c.c: New file.
+ * config/rs6000/t-rs6000-c-rule: New file.
+ * config/rs6000/rs6000-protos.c: Add multiple-include guard.
+ Prototype rs6000_pragma_longcall.
+
+ * doc/extend.texi: Document shortcall attribute.
+ * doc/invoke.texi: Document -mlongcall, -mno-longcall.
+
+2002-05-11 John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+ * reorg.c (dbr_schedule): Remove unnecessary test.
+
+Sat May 11 14:34:35 CEST 2002 Jan Hubicka <jh@suse.cz>
+
+ * i386.md (testsi to testqi spliters): New.
+
+ 2002-01-14 Josef Zlomek <zlomek@matfyz.cz>
+
+ cfg.c (dump_edge_info): added dumping of EDGE_CAN_FALLTHRU.
+
+ Wed Jan 9 2002 Josef Zlomek <zlomj9am@artax.karlin.mff.cuni.cz>
+
+ * basic-block.h: New flag EDGE_CAN_FALLTHRU
+ * cfganal.c (set_edge_can_fallthru_flag): New function; marks the edges
+ that can be made fallthru.
+
+ Mon Nov 12 16:25:53 CET 2001 Jan Hubicka <jh@suse.cz>
+
+ * cfglayout.c (cleanup_unconditional_jumps): New static function.
+ (cfg_layout_initialize): Use it.
+
+2002-05-11 Marek Michalkiewicz <marekm@amelek.gda.pl>
+
+ * config/avr/avr.c (avr_mcu_types): Update supported devices.
+ * config/avr/avr.h (CPP_SPEC, LINK_SPEC, CRT_BINUTILS_SPECS): Likewise.
+ * config/avr/t-avr (MULTILIB_MATCHES): Likewise.
+
+2002-05-11 Kazu Hirata <kazu@cs.umass.edu>
+
+ * dbxout.c: Fix formatting.
+ * dependence.c: Likewise.
+ * df.c: Likewise.
+ * diagnostic.c: Likewise.
+ * doloop.c: Likewise.
+ * dominance.c: Likewise.
+ * doschk.c: Likewise.
+ * dwarf2asm.c: Likewise.
+ * dwarf2out.c: Likewise.
+ * dwarfout.c: Likewise.
+
+2002-05-10 Richard Henderson <rth@redhat.com>
+
+ * final.c (end_final): Tidy whitespace. Don't honor flag_pack_struct.
+ Convert integers constants as needed. Replace "nwords" field with
+ "sizeof_bb".
+ (final): Save profile data if cfun->arc_profile, not profile_arc_flag.
+ * function.h: Fix typo in comment.
+ * libgcc2.c (struct bb): Replace "nwords" with "sizeof_bb".
+
+2002-05-10 Roger Sayle <roger@eyesopen.com>
+
+ * fold-const.c (build_range_check): Optimize (c>=1) && (c<=127)
+ into the equivalent (signed char)c > 0.
+
+2002-05-10 Janis Johnson <janis187@us.ibm.com>
+
+ * loop.c: (PREFETCH_EXTREME_DIFFERENCE, PREFETCH_BEFORE_LOOP): New.
+ (PREFETCH_CONDITIONAL): Renamed from PREFETCH_NOT_ALWAYS.
+ (struct prefetch_info): Fix spelling of member bytes_accessed.
+ (emit_prefetch_instructions): Make dump messages more regular;
+ restructure code to add more dump messages; use new macros for
+ heuristics. (There are no code generation changes in any of this).
+
+2002-05-10 David S. Miller <davem@redhat.com>
+
+ * rtl.h (INSN_ANNULLED_BRANCH_P): Accept INSN too, update comment.
+ (struct rtx_def): Update unchanging flag comment.
+ * doc/rtl.texi (INSN_ANNULLED_BRANCH_P): Update description.
+ * reorg.c (delete_from_delay_list): INSN_ANNULLED_BRANCH_P needs
+ to be handled to INSN too.
+ (dbr_schedule): Likewise.
+ * resource.c (next_insn_no_annul): Likewise.
+
+ * cse.c (rtx_cost): Remove multiplication by power of 2 special
+ casing.
+
+2002-05-14 Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at>
+
+ * doc/install.texi (Specific, *-*-solaris2*): Update passus on
+ setting CONFIG_SHELL to /bin/ksh and remove alternate trick to
+ (possibly) work around broken /bin/sh.
+
2002-05-10 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* config/mips/t-iris6 (SHLIB_SLIBDIR_SUFFIXES): Use mabi=64 and
* final.c (end_final): Use C trees to output data structures for profiling.
* Makefile.in (LIBGCC_DEPS): Added missing dependency on gcov-io.h
- (profile.o): New dependency profile.h
- (final.o): New dependency profile.h
- * profile.h: New file. New global structure profile_info.
- * final.h (count_edges_instrumented_now): Declare.
- (current_function_cfg_checksum): Declare.
- (function_list): New structure.
- (functions_head, functions_tail): New static variables.
- (end_final): Emits more data, removed some -ax stuff.
- (final): Stores function names and chcksums.
- * gcov-io.h (__write_gcov_string): New function.
- (__read_gcov_string): New function.
- * gcov.c (read_profile): New function.
- (create_program_flow_graph): Uses read_profile instead of reading
+ (profile.o): New dependency profile.h
+ (final.o): New dependency profile.h
+ * profile.h: New file. New global structure profile_info.
+ * final.h (count_edges_instrumented_now): Declare.
+ (current_function_cfg_checksum): Declare.
+ (function_list): New structure.
+ (functions_head, functions_tail): New static variables.
+ (end_final): Emits more data, removed some -ax stuff.
+ (final): Stores function names and chcksums.
+ * gcov-io.h (__write_gcov_string): New function.
+ (__read_gcov_string): New function.
+ * gcov.c (read_profile): New function.
+ (create_program_flow_graph): Uses read_profile instead of reading
da_file.
- (read_files): Removed da_file checking, it's done by read_profile now.
- * libgcc2.c (bb_function_info): New structure.
- (bb): New field in structure, removed some -ax stuff.
- (__bb_exit_func): Changed structure of da_file.
- * profile.c (count_edges_instrumented_now): New global variable.
- (current_function_cfg_checksum): New global variable.
- (max_counter_in_program): New global variable.
- (get_exec_counts): New function.
- (compute_checksum): New function.
- (instrument_edges): Sets count_edges_instrumented_now.
- (compute_branch_probabilities): Uses get_exec_counts instead of
+ (read_files): Removed da_file checking, it's done by read_profile now.
+ * libgcc2.c (bb_function_info): New structure.
+ (bb): New field in structure, removed some -ax stuff.
+ (__bb_exit_func): Changed structure of da_file.
+ * profile.c (count_edges_instrumented_now): New global variable.
+ (current_function_cfg_checksum): New global variable.
+ (max_counter_in_program): New global variable.
+ (get_exec_counts): New function.
+ (compute_checksum): New function.
+ (instrument_edges): Sets count_edges_instrumented_now.
+ (compute_branch_probabilities): Uses get_exec_counts instead of
reading da_file.
- (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
- (init_branch_prob): Removed da_file checking, done in get_exec_counts
+ (branch_prob): Calls compute_checksum and writes extra data to bbg_file.
+ (init_branch_prob): Removed da_file checking, done in get_exec_counts
now.
- (end_branch_prob): Removed da_file checking, done in get_exec_counts
+ (end_branch_prob): Removed da_file checking, done in get_exec_counts
now.
- * gcov.texi: Updated information about gcov file format.
+ * gcov.texi: Updated information about gcov file format.
2002-05-09 Kazu Hirata <kazu@cs.umass.edu>
* config/arm/t-arm-elf (MULTILIB): Do not allow big-endian/
little-endian multilibs to override arm/thumb multilibs.
- Do not build hardware floating point multilibs, nor apcs-26
+ Do not build hardware floating point multilibs, nor apcs-26
multilibs for the Thumb.
2002-05-08 Mark Mitchell <mark@codesourcery.com>
2002-05-07 Aldy Hernandez <aldyh@redhat.com>
- * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
+ * config/rs6000/rs6000.c (bdesc_2arg): Fix vmax typos.
2002-05-06 David S. Miller <davem@redhat.com>