OSDN Git Service

* config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index b27996f..f3d9bc6 100644 (file)
@@ -1,3 +1,411 @@
+2003-04-25  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Back out previous
+       addition of __PIC__ and __pic__ macros.
+       * config/xtensa/xtensa.h: Clean up indentation.
+
+2003-04-25  Bob Wilson  <bob.wilson@acm.org>
+
+       * config/xtensa/linux.h (TARGET_OS_CPP_BUILTINS): Remove definition of
+       _GNU_SOURCE.  Add definitions of __PIC__ and __pic__.
+       (SUBTARGET_CPP_SPEC): Define.
+       (LIB_SPEC): Delete.
+       * config/xtensa/xtensa-protos.h (xtensa_declare_object): Delete.
+       * config/xtensa/xtensa.c (xtensa_declare_object): Delete.
+       * config/xtensa/xtensa.h (CPP_SPEC, SUBTARGET_CPP_SPEC, EXTRA_SPECS):
+       Define.
+       (ASM_OUTPUT_COMMON, ASM_OUTPUT_LOCAL): Delete.
+       (ASM_OUTPUT_ALIGNED_BSS, BSS_SECTION_ASM_OP): Define.
+
+2003-04-25  H.J. Lu <hjl@gnu.org>
+
+       * config/ia64/ia64.c (ia64_expand_compare_and_swap): Add rmode
+       for return mode.
+       (ia64_expand_builtin): Set rmode to SImode for
+       IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_SI,
+       IA64_BUILTIN_VAL_COMPARE_AND_SWAP_SI and
+       IA64_BUILTIN_BOOL_COMPARE_AND_SWAP_DI. Set remode to DImode
+       for IA64_BUILTIN_VAL_COMPARE_AND_SWAP_DI.
+
+2003-04-25  Phil Edwards  <pme@gcc.gnu.org>
+
+       * configure.in (make_compare_target):  Test for GNU cmp and set this
+       variable appropriately.
+       * Makefile.in (compare, compare3, compare4, compare-lean, compare3-lean,
+       compare4-lean): Rename actual targets to slowcompare*.  New compare*
+       targets depend on names based on make_compare_target.
+       * configure:  Regenerated.
+
+2003-04-25  Richard Henderson  <rth@redhat.com>
+
+       * config/ia64/ia64.c (ia64_compute_frame_size): Allow inline asm
+       to clobber ar.pfs and ar.unat.
+       (ia64_expand_prologue): Force alloc instruction if ar.pfs saved;
+       fix test for spilling ar.pfs to the stack.
+
+2003-04-25  Richard Henderson  <rth@redhat.com>
+
+        PR opt/10315 
+        * config/rs6000/rs6000.c (rs6000_emit_move): Only elide proper
+        checks during reload; use validize_mem instead of adjust_address.
+
+2003-04-26  Ben Elliston  <bje@wasabisystems.com>
+
+       * config/arm/arm.c (arm_adjust_cost): Correct logic that tests the
+       return values from recog_memoized().
+
+2003-04-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+       PR opt/8705
+       * gcse.c (try_replace_reg): On a successful substitution of a constant
+       into a single set, try to simplify the source of the set.
+       * loop.c (scan_loop): Don't try to optimize a MODE_CC set with a
+       constant source.
+
+2003-04-24  Neil Booth  <neil@daikokuya.co.uk>
+
+       * cpplex.c (cpp_token_len): Tighten up.
+       (cpp_token_as_text): Need extra byte now.
+       * cpplib.c (glue_header_name): Need extra 2 bytes.
+       * cppmacro.c (cpp_macro_definition): Need extra byte.
+
+2003-04-24  Alexander Kabaev <kan@FreeBSD.ORG>
+
+       * config/sparc/sparc.md (umulsidi3, mulsidi3): Avoid using
+       const_umulsidi3_sp32 and const_mulsidi3_sp32 on 64bit targets 
+       where they might be not present. Use their _sp64 equivalent
+       instead.
+
+Thu Apr 24 20:42:12 CEST 2003  Jan Hubicka  <jh@suse.cz>
+
+       * i386.md (cvtsi2sdq): Fix typo in previous patch.
+       
+2003-04-24  Krister Walfridsson  <cato@df.lth.se>
+
+       * configure.in: Check whether mbstowcs works.
+       * configure, config.in: Regenerate.
+       * intl.c: Use HAVE_WORKING_MBSTOWCS.
+
+2003-04-24  H.J. Lu <hjl@gnu.org>
+
+       * config/ia64/ia64.c (ia64_init_builtins): Add si_ftype_pdi_di_di
+       for __sync_bool_compare_and_swap_di for int return type.
+
+       * config/ia64/ia64intrin.h (__sync_bool_compare_and_swap_di):
+       Change return type to int.
+       (__sync_bool_compare_and_swap): Likewise.
+
+Thu Apr 24 16:55:26 CEST 2003  Jan Hubicka  <jh@suse.cz>
+
+       * cfgbuild.c (make_edges):  Do not use next_nonnote_insn when
+       looking for fallthru edge.
+
+       * athlon.md (athlon-agu, athlon-store, athlon-fany, athlon-faddmul):
+       Fix.
+       (athlon-load2, athlon-store2, athlon-fpsched, athlon-fpload,
+       athlon-fvector): New.
+       (athlon_*): Revisit to match new optimization guide.
+       * i386.c (ix86_adjust_cost):  Fix memory operand costs on Athlon/k8
+       * i386.md (cvt??2?? patterns): Fix modes.
+       (fistp patterns): Set modes.
+
+       Accidentaly commited with my earlier reload patch:
+       PR c/10308
+       * reload.c (find_reloads_address_1): Reload plus at the place of
+       index register.
+       
+2003-04-24  Nathan Sidwell  <nathan@codesourcery.com>
+
+       New GCOV_TAG_FUNCTION layout
+       * coverage.c (struct function_list): Replace name with ident.
+       (struct counts_entry): Likewise.
+       (fn_ident): New.
+       (htab_counts_entry_hash, htab_counts_entry_eq,
+       htab_counts_entry_del): Adjust.
+       (reads_count_file, get_coverage_counts,
+       coverage_begin_output, coverage_end_function): Adjust.
+       (build_fn_info_type, build_fn_info_value): Likewise.
+       * gcov-dump.c (tag_function): Adjust.
+       * gcov-io.c (gcov_write_string, gcov_read_string): Not in LIBGCOV.
+       * gcov-io.h (gcov_write_string, gcov_read_string): Not in LIBGCOV.
+       * gcov.c (struct function_info): Add ident.
+       (read_graph_file, read_count_file): Adjust.
+       * libgcov.c (gcov_exit): Adjust.
+
+2003-04-23  Richard Henderson  <rth@redhat.com>
+
+       PR opt/8300
+       * toplev.c (rest_of_compilation): Delay no_new_pseudos until
+       after initialize_uninitialized_subregs; update reg info assuming
+       new pseudos were created.
+
+2003-04-23  Neil Booth  <neil@daikokuya.co.uk>
+
+       * Makefile.in (c-lex.o, LIBCPP_OBJS, cpplex.o): Update.
+       * c-lex.c (MULTIBYTE_CHARS): Remove conditionals.
+       (lex_string): Take cpp_string with full spelling.
+       (cb_ident): Update.
+       (c_lex): Update diagnostics.
+       * cpplex.c (SPELL_NUMBER, SPELL_STRING): Combine into SPELL_LITERAL.
+       (create_literal): New.
+       (lex_string): Unterminated literals have type CPP_OTHER.
+       (_cpp_lex_direct): Update calls to lex_string.  Use create_literal
+       for CPP_OTHER.
+       (cpp_token_len, cpp_spell_token, cpp_output_token): Simplify.
+       (_cpp_equiv_tokens, cpp_interpret_charconst): Update.
+       * cpplib.c (parse_include, do_line, do_linemarker,
+       destringize_and_run): Update for token storing full spelling.
+       * cpplib.h: Update token spelling types.
+       * cppmacro.c (stringify_arg, check_trad_stringification):
+       Update for token storing full spelling.
+
+2003-04-23  Ulrich Weigand  <uweigand@de.ibm.com>
+
+       * config/s390/s390.c (s390_expand_cmpstr): Disable CLC loop.
+
+2003-04-23  Richard Earnshaw  <rearnsha@arm.com>
+
+       * arm.h (TARGET_OPTIONS): Add value field.
+
+2003-04-23  Mark Mitchell  <mark@codesourcery.com>
+
+       * doc/extend.texi: Remove duplicate 2003 copyright date.
+
+2003-04-23  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * Makefile.in (LIBGCC_DEPS): Add gcov headers.
+       (libgcov.a): Depends on LIBGCC_DEPS.
+       * basic-block.h (profile_info): Moved here from coverage.h. Made
+       a pointer.
+       * coverage.c (struct function_list): Fixed array of counter types.
+       (struct counts_entry): Keyed by counter type, contains summary.
+       (profile_info): Moved to profile.c.
+       (prg_ctr_mask, prg_n_ctrs, fn_ctr_mask, fn_n_ctrs): New global
+       vars.
+       (profiler_label): Remove.
+       (ctr_labels): New.
+       (set_purpose, label_for_tag, build_counter_section_fields,
+       build_counter_section_value, build_counter_section_data_fields,
+       build_counter_section_data_values, build_function_info_fields,
+       build_function_info_value, gcov_info_fields, gcov_info_value): Remove.
+       (build_fn_info_type, build_fn_info_value, build_ctr_info_type,
+       build_ctr_info_value, build_gcov_info): New.
+       (htab_counts_entry_hash, htab_counts_entry_eq): Adjust.
+       (reads_counts_file): Adjust.
+       (get_coverage_counts): Takes counter number. Add summary
+       parameter. Adjust.
+       (coverage_counter_ref): Tkaes counter number. Adjust. Lazily
+       create counter array labels.
+       (coverage_end_function): Adjust.
+       (create_coverage): Adjust.
+       (find_counters_section): Remove.
+       * coverage.h (MAX_COUNTER_SECTIONS): Remove.
+       (struct section_info, struct profile_info): Remove.
+       (profile_info): Moved to basic-block.h.
+       (coverage_counter_ref): Takes a counter number.
+       (get_coverage_counts): Takes a counter number. Added summary
+       parameter.
+       (find_counters_section): Remove.
+       * gcov-dump.c (tag_arc_counts): Rename to ...
+       (tag_counters): ... here. Adjust.
+       (tag_table): Move tag_counters to 3rd entry. Remove
+       PROGRAM_PLACEHOLDER and PROGRAM_INCORRECT entries.
+       (dump_file): Check for counter tag values here.
+       (tag_summary): Adjust.
+       * gcov-io.c (gcov_write_summary, gcov_read_summary): Adjust.
+       * gcov-io.h (GCOV_LOCKED): New.
+       (GCOV_TAG_ARC_COUNTS): Rename to ...
+       (GCOV_TAG_COUNTS_BASE): ... here.
+       (GCOV_TAG_PLACEHOLDER_SUMMARY, GCOV_TAG_INCORRECT_SUMMARY):
+       Remove.
+       (GCOV_COUNTER_ARCS, GCOV_COUNTERS, GCOV_NAMES): New.
+       (GCOV_TAG_FOR_COUNTER, GCOV_COUNTER_FOR_TAG,
+       GCOV_TAG_IS_COUNTER): New.
+       (struct gcov_ctr_summary): New.
+       (struct gcov_summary): Adjust.
+       (struct gcov_counter_section): Remove.
+       struct gcov_counter_section_data): Remove.
+       (struct gcov_function_info): Rename to ...
+       (struct gcov_fn_info): ... here. Adjust.
+       (struct gcov_ctr_info): New.
+       (struct gcov_info): Adjust.
+       * gcov.c (read_count_file): Adjust.
+       (output_lines): Adjust.
+       * libgcov.c (gcov_exit): Adjust.
+       (__gcov_flush): Adjust.
+       * mklibgcc.in (libgcc2_c_dep): Add gcov headers.
+       * predict.c (maybe_hot_bb_p, probably_cold_bb_p,
+       probably_never_executed_bb_p, compute_frequency_function): Adjust
+       profile_info use.
+       * profile.c (struct counts_entry): Remove.
+       (profile_info): Define here.
+       (get_exec_counts): Adjust get_coverage_counts call.
+       (compute_branch_probablilities): Remove find_counters_section
+       call.
+       (gen_edge_profiler): Adjust coverage_counter_ref call.
+       * tracer.c (tail_duplicate): Adjust profile_info use.
+
+2003-04-23  Roger Sayle  <roger@eyesopen.com>
+
+       PR optimization/10339
+       * builtins.c (expand_builtin_strcmp): Try to emit cmpstrsi insn
+       directly instead of unsafely transforming call into a memcmp.
+       (expand_builtin_strncmp): Likewise.
+
+2003-04-22  Roger Sayle  <roger@eyesopen.com>
+
+       * alias.c (mark_constant_function):  Check for constancy and
+       purity even of void functions.  Update both the function decl
+       and the cgraph RTL info with the results.
+
+2003-04-22  Roger Sayle  <roger@eyesopen.com>
+
+       * real.c (do_add): Change to return a bool indicating that the
+       result of the operation may be inexact due to loss of precision.
+       (do_multiply): Likewise.
+       (do_divide): Likewise.
+
+2003-04-22  Geoffrey Keating  <geoffk@apple.com>
+           Loren James Rittle  <ljrittle@acm.org>
+
+       * dwarf2out.c (fde_table_allocated): Mark with GTY.
+       (decl_die_table_allocated): Likewise.
+       (abbrev_die_table_allocated): Likewise.
+       (line_info_table_allocated): Likewise.
+       (separate_line_info_table_allocated): Likewise.
+       (pubname_table_allocated): Likewise.
+       (arange_table_allocated): Likewise.
+       (ranges_table_allocated): Likewise.
+       (decl_die_table_in_use): Unconditionalize; mark with GTY.
+       (abbrev_die_table_in_use): Likewise.
+       (line_info_table_in_use): Likewise.
+       (separate_line_info_table_in_use): Likewise.
+       (pubname_table_in_use): Likewise.
+       (arange_table_in_use): Likewise.
+       (ranges_table_in_use): Likewise.
+       (have_location_lists): Likewise.
+       (emitcount): New GTY-marked static, moved...
+       (maybe_emit_file): ...from here.
+       (label_num): New GTY-marked static, moved...
+       (gen_internal_sym): ...from here.
+
+2003-04-22  Richard Henderson  <rth@redhat.com>
+
+        PR 8866
+        * rtl.h (MEM_NOTRAP_P): New.
+        (MEM_COPY_ATTRIBUTES): Copy it.
+        * rtlanal.c (may_trap_p): Check it.
+        * expr.c (do_tablejump): Set it.
+       * doc/rtl.texi (Flags): Document it.
+
+        * cfgrtl.c (try_redirect_by_replacing_jump): Revert last three changes.
+
+2003-04-22  Olivier Hainque  <hainque@act-europe.fr>
+
+       * config/alpha/alpha.c (alpha_expand_prologue [OPEN_VMS_ABI]): Don't
+       set FRP on stack adjustment for outgoing args if frame_pointer_needed.
+
+2003-04-22  Vincent Celier <celier@gnat.com>
+
+        * gthr-gnat.h, gthr-gnat.c: new sources for implementation of
+        --enable-threads=gnat.
+        * Makefile.in: Add gthr-gnat.c to LIB2ADDEH.
+        * configure.in: Add gnat to the list of thread packages
+        * configure: Rebuild.
+        * config/t-linux: Add gthr-gnat.c to LIB2ADDEH and LIB2ADDEHDEP
+
+2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
+
+       * cpplex.c (_cpp_get_fresh_line): Pop the buffer if return_at_eof.
+
+2003-04-22  Devang Patel  <dpatel@apple.com>
+
+       * cpptrad.c (_cpp_replacement_text_len): Add check for macro
+       parameter count.
+       (_cpp_copy_replacement_text): Same.
+       
+2003-04-22  Neil Booth  <neil@daikokuya.co.uk>
+
+       * c-lex.c (c_lex): Handle CPP_OTHER differently.
+       * cppexp.c (_cpp_parse_expr): Similarly.
+       * cpplex.c (SPELL_CHAR): Remove.
+       (_cpp_lex_direct): Stray chars are saved as byte strings.
+       (cpp_spell_token, cpp_output_token, _cpp_equiv_token): Don't
+       handle SPELL_CHAR.
+       (cpp_avoid_paste): Update handling of CPP_OTHER.
+       * cpplib.h: Spell CPP_OTHER like a number.
+       (struct cpp_token): Remove member c.
+       * cppmacro.c (stringify_arg): Update handling of CPP_OTHER.
+
+2003-04-22  David Turner <novalis@gnu.org>
+
+       * gbl-ctors.h: Add special license exception.
+       * libgcc2.h: Likewise.
+       * tsystem.h: Likewise.
+       * gcov-io.h: Likewise.
+
+2003-04-22  David Edelsohn  <edelsohn@gnu.org>
+
+       * fold-const.c (fold_range_test): Use RANGE_TEST_NON_SHORT_CIRCUIT
+       macro defaulting to original BRANCH_COST heuristic.
+       * doc/tm.texi (RANGE_TEST_NON_SHORT_CIRCUIT): Document.
+
+       * config/rs6000/rs6000.h (RANGE_TEST_NON_SHORT_CIRCUIT): Define.
+
+2003-04-22  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/t-spe: Merge in t-fprules into file.
+
+        * config.gcc: Add t-spe to powerpc-eabispe.
+
+2003-04-22  Kean Johnston  <jkj@sco.com>
+
+       * tlink.c (recompile_files): Add missing '=' to putenv calls
+
+2003-04-22  Nathan Sidwell  <nathan@codesourcery.com>
+
+       * ginclude/stddef.h: Provide C++ safe offsetof.
+
+2003-04-22  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * function.c (purge_addressof_1): In (mem (addressof (reg))) case
+       for reg notes, if there are no substitutions, just use a SUBREG.
+
+2003-04-21  Mark Mitchell  <mark@codesourcery.com>
+
+       * Makefile.in (calls.o): Depend on except.h.
+       * calls.c: Include except.h.
+       (emit_call_1): Call note_eh_region_may_contain_throw if
+       appropriate.
+       * except.c (eh_region): Add may_contain_throw.
+       (expand_eh_region_end_cleanup): Do not include handler code when
+       it cannot be reached.
+       (note_eh_region_may_contain_throw): New function.
+       * except.h (note_eh_region_may_contain_throw): New function.
+
+2003-04-21  Mark Mitchell  <mark@codesourcery.com>
+
+       * config/i386/winnt.c (i386_pe_mark_dllimport): Revert previous
+       changes.
+
+2003-04-21  Aldy Hernandez  <aldyh@redhat.com>
+
+        * config/rs6000/rs6000.c (rs6000_override_options): No SPE means
+        64-bit long doubles.
+
+2003-04-21  Olivier Hainque  <hainque@act-europe.fr>
+
+       * fold-const.c (fold, case PLUS_EXPR and case MULT_EXPR): Restore
+       a number of conversions required for type consistency and previously
+       stripped off by STRIP_NOPS.
+
+       * calls.c (expand_call): Prevent sibcall optimization for calls to
+       nested subprograms.
+
+       * expmed.c (extract_bit_field): Reverse operands of && condition to
+        prevent a potential division by zero in the previously first branch.
+       * config/pa/pa.md (extv, extzv): FAIL if the bitfield length is zero.
+
 2003-04-21  Joel Brobecker  <brobecker@gnat.com>
 
        * dwarf2out.c (is_ada, is_ada_subrange_type): New functions.
        * cpplib.h (struct cpp_callbacks): Change prototype of include.
 
 2003-04-21  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
-
+       
+       * doc/rtl.texi (RTX_UNCHANGING_P): Point to true_dependence for
+       details of conflict handling.
+       
        * fold-const.c (extract_muldiv, case CONVERT_EXPR): Detect case
        when conversion overflows.