Dale Johannesen [Tue, 3 Aug 2004 18:23:35 +0000 (18:23 +0000)]
rs6000.c (machopic_output_stub): Align Darwin stubs.
2004-08-03 Dale Johannesen <dalej@apple.com>
* config/rs6000/rs6000.c (machopic_output_stub): Align Darwin stubs.
* c-common.c: Include opts.h.
(c_common_get_alias_set): Fix check for a single input file.
* toplev.c: Remove current_file_decl.
* tree.h: Ditto.
David Edelsohn [Tue, 3 Aug 2004 15:31:38 +0000 (15:31 +0000)]
rs6000.c (rs6000_rtx_costs): Calculate cost of constants more accurately.
* config/rs6000/rs6000.c (rs6000_rtx_costs): Calculate cost of
constants more accurately. Adjust costs for FMA instructions.
Add cases for most logical and float operations. Recurse into
most operands.
Co-Authored-By: Dale Johannesen <dalej@apple.com> Co-Authored-By: Roger Sayle <roger@eyesopen.com>
From-SVN: r85488
* arm/gentune.sh: New file.
* arm/t-arm: New file.
* arm/arm-tune.md: New file (autogenerated).
* config.gcc (arm*-*-*): Add t-arm to tmake_file for all variants.
* arm.md (attribute tune): Delete. Include arm-tune.md.
Paolo Bonzini [Tue, 3 Aug 2004 09:35:46 +0000 (09:35 +0000)]
Makefile.def (host-modules): Add gcc.
2004-08-03 Paolo Bonzini <bonzini@gnu.org>
* Makefile.def (host-modules): Add gcc.
* Makefile.in: Regenerate.
* Makefile.tpl (sorry): New rule.
(configure-host, all-host, [+make_target+]-host, do-check,
install-host): Do not add gcc as a special case.
(host modules): Add a small special-casing for gcc. Export
extra_make_flags through the environment.
(maybe-configure-gcc, configure-gcc, maybe-all-gcc, all-gcc,
maybe-check-gcc, check-gcc, maybe-install-gcc, install-gcc,
other recursive targets for gcc): Remove.
(all, do-[+make_target+], do-check): Wrap between unstage and stage.
(stage, unstage): New rules.
(stage[+id+]-start, stage[+id+]-end, [+compare-target+],
distclean-stage[+id+]): Use stage_current.
([+bootstrap-target+], profiledbootstrap): Do not invoke manually
the stage*-start rules.
* dwarf2out.c (output_call_frame_info): Don't change data format
due to TARGET_USES_WEAK_UNWIND_INFO. Always refer to the local
label. Use 'true' not '1'.
* doc/install.texi (powerpc-*-darwin*): Mention cctools version
required.
Mark Mitchell [Mon, 2 Aug 2004 20:28:22 +0000 (20:28 +0000)]
Makefile.am (hosted_source): Add libmath and testsuite.
* Makefile.am (hosted_source): Add libmath and testsuite.
(SUBDIRS): Remove them.
* acinclude.m4: (GLIBCXX_ENABLED_HOSTED): Default to freestanding
on arm*-*-symbianelf*.
* crossconfig.m4: Add arm*-*-symbianelf* support.
* include/c_std/std/std_cstdlib.h (stdlib.h): Do not include it
when freestanding. Do not bring names into std:: namespace with
"using" when freestanding. Declare required functions and macros
when freestanding.
* libsupc++/Makefile.am (c_sources): Do not include cp-demangle.c
when freestanding.
* libsupc++/del_op.cc: Declare "free" only when freestanding.
* libsupc++/eh_alloc.cc (cstring): Include it only when hosted.
(malloc): Declare when freestanding.
(free): Likewise.
(memset): Likewise.
(__cxa_allocate_exception): Call malloc, not std::malloc. Likewise
for memset.
(__cxa_free_exception): Likewise for free.
* libsupc++/new_op.cc: Declare "malloc" when freestanding.
* libsupc++/pure.cc (writestr): Define to nothing when
freestanding.
* libsupc++/vterminate.cc: Do not define anything when
freestanding.
* Makefile.in: Regenerated.
* aclocal.m4: Likewise.
* configure: Likewise.
* include/Makefile.in: Likewise.
* libmath/Makefile.in: Likewise.
* libsupc++/Makefile.in: Likewise.
* po/Makefile.in: Likewise.
* src/Makefile.in: Likewise.
* testsuite/Makefile.in: Likewise.
libiberty.h (XDELETE, [...]): Remove any const-qualification before disposal.
include/
* libiberty.h (XDELETE, XDELETEVEC, XRESIZEVEC): Remove any
const-qualification before disposal.
gcc/
* vec.h (DEF_VEC_P): Add proper cast to uses of vec_o_reserve and
vec_p_reserve.
* langhooks.h (lang_hooks::builtin_function): Rename parameter
from "class" to "bt_class".
gengtype.h (options::info): Change type to const char *.
* gengtype.h (options::info): Change type to const char *.
(enum gc_used_enum): Move out of struct type scope.
* gengtype.c (create_option): Convert initializer for
option::info to
appropiate type.
(adjust_field_type, walk_type, write_func_for_structure,
write_root, write_roots): Remove pointless cast.
Zack Weinberg [Mon, 2 Aug 2004 03:23:01 +0000 (03:23 +0000)]
ia64.c (got_symbolic_operand): Do require a symbol+offset operand to have its offset be zero mod 0x3fff when...
* config/ia64/ia64.c (got_symbolic_operand): Do require a
symbol+offset operand to have its offset be zero mod 0x3fff
when GOT entries are in use. Clarify logic in SYMBOL_REF
case. Clarify comments.
(ia64_expand_load_address): Split a symbol+offset load when
the offset is nonzero mod 0x3fff, not 0x1fff.
testsuite:
* gcc.dg/ia64-got-1.c: New test case.
rs6000.c (rs6000_split_multireg_move): Just abort if trying to *store* to a non-offsettable address.
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Just abort
if trying to *store* to a non-offsettable address.
* config/rs6000/rs6000.md (movtf_internal): Don't move GPRs to
a nonoffsettable address.
(movdi_internal32): Don't move GPRs to a nonoffsettable address.
Clean up.
(movti_string): Don't move GPRs to a nonoffsettable address.
(movti_ppc64): Don't move GPRs to a nonoffsettable address. Clean up.
Roger Sayle [Sun, 1 Aug 2004 21:37:21 +0000 (21:37 +0000)]
options.c (gfc_init_options): Don't warn about the use GNU extensions by default.
* options.c (gfc_init_options): Don't warn about the use GNU
extensions by default.
(gfc_post_options): Warn about GNU extensions with -pedantic.
(gfc_handle_option): Don't warn about GNU extensions with -std=gnu.
* doc/invoke.texi: In the MIPS options section, remove the passage
saying that -mexplicit-relocs is usually disabled for -mabicalls
-fno-unit-at-a-time.
* config/mips/mips.c (override_options): Remove the code that enforced
this rule.
* config/mips/mips.md (cprestore): Provide two alternatives, one for
an in-range offset and one for an out-of-range offset. Wrap the latter
in .set macro/.set nomacro if it's inside a .set nomacro block.
* config/mips/mips-protos.h (mips_gp_save_slot): Remove.
(mips_restore_gp): Declare.
* config/mips/mips.c (mips_add_offset): Add a scratch register
argument. Reimplement in rtl only, reusing MIPS16 logic from
mips_output_mi_thunk.
(mips_legitimize_address, mips_legitimize_const_move): Adjust calls
to mips_add_offset.
(mips_gp_save_slot): Delete.
(mips_restore_gp): New function.
(mips_set_return_address, mips_output_mi_thunk): Use mips_add_offset.
* config/mips/mips.md (exception_receiver): Turn into a
define_insn_and_split. Use mips_restore_gp to do the split.
(call_internal, call_value_internal, call_value_multiple_internal): Use
mips_restore_gp to restore $gp.
Joseph Myers [Sat, 31 Jul 2004 17:21:27 +0000 (18:21 +0100)]
c-decl.c (diagnose_mismatched_decls): Give error for external redeclaration of identifier declared with no linkage...
* c-decl.c (diagnose_mismatched_decls): Give error for external
redeclaration of identifier declared with no linkage, not just
warning with -Wtraditional. Do not check DECL_CONTEXT to give
error for redeclaration with no linkage.
Paolo Carlini [Sat, 31 Jul 2004 09:00:09 +0000 (09:00 +0000)]
locale_facets.tcc (num_get<>::_M_extract_float, [...]): In the main parsing loop delay the life of __q to the actual use point.
2004-07-30 Paolo Carlini <pcarlini@suse.de>
* include/bits/locale_facets.tcc (num_get<>::_M_extract_float,
num_get<>::_M_extract_int): In the main parsing loop delay the
life of __q to the actual use point.
rs6000.c (legitimate_lo_sum_address_p): Permit non-offsettable addresses even for DImode.
2004-07-30 Geoffrey Keating <geoffk@apple.com>
* config/rs6000/rs6000.c (legitimate_lo_sum_address_p): Permit
non-offsettable addresses even for DImode.
(rs6000_split_multireg_move): Cope with non-offsettable addresses
being moved into multiple GPRs.
* config/rs6000/rs6000.c (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Default
to 64.
(rs6000_override_options): Use RS6000_DEFAULT_LONG_DOUBLE_SIZE.
* config/rs6000/darwin.h (RS6000_DEFAULT_LONG_DOUBLE_SIZE): Define
to 128.
* config/rs6000/darwin-ldouble.c (isless): New macro.
(inf): New macro.
(nonfinite): New macro.
(FPKINF): Delete.
(_xlqadd): Completely rewrite.
(_xlqmul): Correct overflow handling.
(_xlqdiv): Correct overflow handling.
* config/rs6000/darwin-ldouble-format: New file.
Diego Novillo [Fri, 30 Jul 2004 19:40:30 +0000 (19:40 +0000)]
tree-ssa-alias.c (compute_points_to_and_addr_escape): If a pointer escapes through a function call...
* tree-ssa-alias.c (compute_points_to_and_addr_escape): If a
pointer escapes through a function call, assume that the
callee will dereference it.
(add_pointed_to_var): Assume that VALUE is always an
ADDR_EXPR.
(collect_points_to_info_r): Only call add_pointed_to_var if
the value is an ADDR_EXPR.
Diego Novillo [Thu, 29 Jul 2004 20:16:26 +0000 (20:16 +0000)]
tree-ssa.c (verify_flow_sensitive_alias_info): When comparing points-to sets of different pointers...
* tree-ssa.c (verify_flow_sensitive_alias_info): When
comparing points-to sets of different pointers, make sure the
second pointer is actually referenced in the code.
Mark Mitchell [Thu, 29 Jul 2004 17:59:31 +0000 (17:59 +0000)]
c-common.h (lang_post_pch_load): New variable.
* c-common.h (lang_post_pch_load): New variable.
* c-pch.c (lang_post_pch_load): Define it.
(c_common_read_pch): Use it.
* cgraphunit.c (record_call_1): Give the front end a chance to
record additional needed entities when a variable is marked as
needed.
* tlink.c (recompile_files): Robustify.
(scan_linker_output): If a symbol is assigned to a file,
but after recompilation is not present there, issue an error
message.
* cp-tree.h (IDENTIFIER_REPO_CHOSEN): Define.
(lang_decl_flags): Narrow the width of "languages". Add
repo_available_p.
(DECL_NEEDED_P): Remove.
(FOR_EACH_CLONE): New macro.
(DECL_REPO_AVAILABLE_P): Likewise.
(DECL_TINFO_P): Likewise.
(set_linkage_according_to_type): Declare.
(import_export_vtable): Remove.
(import_export_tinfo): Likewise.
(mark_needed): New function.
(decl_needed_p): Likewise.
(note_vauge_linkage_fn): Likewise.
(init_repo): Change prototype.
(repo_template_used): Remove.
(repo_template_instantiated): Likewise.
(repo_emit_p): New function.
(repo_export_class_p): Likewise.
(no_linkage_check): Change prototype.
* class.c (set_linkage_according_to_type): New function.
(build_vtable): Use it. Do not call import_export_vtable. Set
DECL_IGNORED_P if appropriate.
* decl.c (duplicate_decls): Preserve DECL_REPO_AVAILABLE_P.
(make_rtL_for_nonlocal_decls): Check for template instantiations
explicitly.
(grokfndecl): Adjust call to no_linkage_check.
(set_linkage_for_static_data_member): New function.
(grokvardecl): Use it. Adjust call to no_linkage_check.
(grokdeclarator): Use set_linkage_for_static_data_member.
* decl2.c (note_vague_linkage_fn): New function.
(note_vague_linkage_var): Likewise.
(finish_static_data_member_decl): Use it.
(import_export_vtable): Remove.
(import_export_class): Use repo_export_class_p.
(var_finalized_p): Simplify.
(maybe_emit_vtables): Simplify.
(mark_needed): New function.
(decl_needed_p): Likewise.
(import_export_decl): Add documentation and consistency checks.
Use repo_emit_p. Handle virtual tables and RTTI information
here.
(import_export_tinfo): Remove.
(write_out_vars): Call import_export_decl.
(cxx_callgraph_analyze_expr): Ensure that all vtables are emitted
whenever one is.
(finish_file): Use decl_needed_p. Do not call import_export_decl
for undefined static data members. Do not warn about undefined
inlines when using a repository.
(mark_used): Use note_vague_linkage_fn. Always defer template
instantiations.
* lex.c (cxx_init): Adjust call to init_repo. Always set
flag_unit_at_a-time.
* method.c (synthesize_method): Remove unncessary
import_export_decl call.
(implicitly_declare_fn): Use set_linkage_according_to_type.
* optimize.c (maybe_clone_body): Use FOR_EACH_CLONE.
* pt.c (instantiate_class_template): Don't redundantly add classes
to keyed_classes. Don't call repo_template_used.
(tsubst_decl): Set DECL_INTERFACE_KNOWN for instantiations of
templates with internal linkage.
(check_instantiated_args): Adjust call to no_linkage_check.
(instantiate_template): Use FOR_EACH_CLONE.
(mark_definable): New function.
(mark_decl_instantiated): Use it.
(do_decl_instantiation): Adjust tests for explicit instantiation
after "extern template".
(instantiate_class_member): Do not use repo_template_instantiated.
(do_type_instantiation): Simplify.
(instantiate_decl): Use mark_definable. Check repo_emit_p.
Simplify.
* repo.c (repo_get_id): Remove.
(original_repo): Remove.
(IDENTIFIER_REPO_USED): Remove.
(IDENTIFIER_REPO_CHOSEN): Remove.
Remove all #if 0'd code.
(repo_template_used): Remove.
(repo_template_instantiated): Remove.
(temporary_obstack_initialized_p): New variable.
(init_repo): Register with lang_post_pch_load. Avoid creating
identifiers unnecessarily. Don't use original_repo. Close the
file here.
(reopen_repo_file_for_write): Not here.
(finish_repo): Always write out a new repository file.
(repo_emit_p): New function.
(repo_export_class_p): Likewise.
* rtti.c (get_tinfo_decl): Use set_linkage_according_to_type.
(involves_incomplete_p): New function.
(tinfo_base_init): Use it.
(ptr_initializer): Remove non_public_ptr parameter.
(ptm_initializer): Likewise.
(get_pseudo_ti_init): Likewise.
(unemitted_tinfo_decl_p): Remove.
(emit_tinfo_decl): Use import_export_decl.
* semantics.c (expand_body): Move updates of static_ctors and
static_dtors to ...
(expand_or_defer_fn): ... here.
* tree.c (no_linkage_check): Add relaxed_p parameter.
tree-ssa-loop-im.c (force_move_till_expr, [...]): Take orig_loop argument and pass it to set_level.
* tree-ssa-loop-im.c (force_move_till_expr, force_move_till):
Take orig_loop argument and pass it to set_level.
(schedule_sm): Pass the correct orig_loop to force_move_till.
cfgloop.c (update_latch_info): Update dominator of the new block.
* cfgloop.c (update_latch_info): Update dominator of the new block.
(canonicalize_loop_headers, flow_loops_find): Do not free dominance
info.
* dominance.c (verify_dominators): Check that the dominance tree is
connected.
(recount_dominator): Ignore unreachable blocks.
(iterate_fix_dominators): Cleanup old dominance information before
recomputing it.
Joseph Myers [Thu, 29 Jul 2004 17:11:25 +0000 (18:11 +0100)]
implement-c.texi: Add C90 subclause references.
* doc/implement-c.texi: Add C90 subclause references. Point to
preprocessor documentation instead of duplicating it. Add points
only present in C90. Fill in documentation for all points.
Phil Edwards [Thu, 29 Jul 2004 08:47:34 +0000 (08:47 +0000)]
index.html: Update version references.
2004-07-29 Phil Edwards <phil@codesourcery.com>
* docs/html/faq/index.html: Update version references. Make
clear that code from SGI has diverged greatly. Remove references
to library snapshots and what's-new sections.
* docs/html/faq/index.txt: Regenerate.