Zack Weinberg [Tue, 30 Nov 2004 19:35:26 +0000 (19:35 +0000)]
mklibgcc.in: Correct calculation of libgcc_s_soname and libunwind_soname.
* mklibgcc.in: Correct calculation of libgcc_s_soname and
libunwind_soname. Use $out, not $outS, in commands for
no-shared-library case. Move EXTRA_MULTILIB_PARTS rules above
library build rules, make $libunwind_so and $libgcc_s_so
depend on them in the normal fashion, and filter those objects
out of @shlib_objs@.
Andrew Pinski [Tue, 30 Nov 2004 15:38:43 +0000 (15:38 +0000)]
re PR tree-optimization/18298 (bad code from lim ssa pass with strcmp)
2004-11-30 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/18298
* tree-optimize.c (init_tree_optimization_passes): Add a may_alias
pass right after fold builtins.
2004-11-30 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/18298
* gcc.c-torture/execute/p18298.c: New test.
Mark Dettinger [Tue, 30 Nov 2004 15:14:05 +0000 (15:14 +0000)]
s390.c (struct processor_costs): New data type.
2004-11-30 Mark Dettinger <dettinge@de.ibm.com>
* config/s390/s390.c (struct processor_costs): New data type.
(s390_cost, z900_cost, z990_cost): New global variables.
(override_options): Initialize s390_cost.
(s390_rtx_costs): Reimplement.
Daniel Berlin [Tue, 30 Nov 2004 14:49:37 +0000 (14:49 +0000)]
re PR tree-optimization/18673 (Tree-PRE is O(N^4) in the depth of the dominator tree)
2004-11-29 Daniel Berlin <dberlin@dberlin.org>
Fix PR tree-optimization/18673
* tree-ssa-pre.c: Remove splay-tree.h include.
(bitmap_value_replace_in_set): Fix to add if it does not exist.
(find_or_generate_expression): Remove now-wrong condition.
(create_expression_by_pieces): Fix condition and comment reason
for it.
(insert_aux): Fix condition and comment reasons for it.
Factor insertion code from here.
(insert_into_preds_of_block): To here. Fix conditions in factored
function and comment reasons for them.
Dorit Naishlos [Tue, 30 Nov 2004 13:19:54 +0000 (13:19 +0000)]
tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for decls that are assembled before vectorization takes place.
* tree-vectorizer.c (vect_can_force_dr_alignment_p): Return false for
decls that are assembled before vectorization takes place.
(vect_compute_data_ref_alignment): Set DECL_USER_ALIGN to 1.
Zack Weinberg [Tue, 30 Nov 2004 08:15:42 +0000 (08:15 +0000)]
* gthr-gnat.c, gthr-gnat.h, gthr.h, libgcc2.h, unwind-dw2-fde.h
* unwind.h: Surround all visibility pragmas with #ifndef HIDE_EXPORTS.
* mklibgcc.in: Drastic restructure for comprehensibility.
Remove the old hidden-directive hack.
Eliminate support for .txt files in LIB2ADD etc (never used).
Eliminate support for assembly source files in LIB2ADDEH* and
LIBUNWIND (also never used).
Build up dependency lists for libraries incrementally.
If we have SHLIB_LINK, compile each file twice, once for the
static and once for the shared library; also probe for
-fvisibility=hidden in the generated libgcc.mk. If found,
pass that and -DHIDE_EXPORTS to the compilation of every C
source file going into the static library. If found, generate
hidden-directive lists for every assembly source file going
into the static library, but incorporate them with -include
instead of ld -r.
Write comments into generated libgcc.mk to facilitate debugging.
* Makefile.in: Pass ASM_HIDDEN_OP to mklibgcc.
* config/t-slibgcc-darwin: Define ASM_HIDDEN_OP.
* config/darwin.h (REAL_LIBGCC_SPEC): Put -lgcc back in
-Zdynamiclib case.
Mark Mitchell [Mon, 29 Nov 2004 20:10:18 +0000 (20:10 +0000)]
re PR c++/18368 (C++ error message regression)
PR c++/18368
* parser.c (cp_parser_check_for_definition_in_return_type): Take
the defined type as a parameter, and inform the user about the
possibility of a missing semicolon.
(cp_parser_explicit_instantiation): Adjust call to
cp_parser_check_for_definition_in_return_type.
(cp_parser_init_declarator): Likewise.
(cp_parser_member_declaration): Likewise.
PR c++/18674
* cp-tree.def (TYPENAME_TYPE): Remove discussion of implicit
typename from comments.
* cp-tree.h (TYPENAME_IS_ENUM_P): New macro.
(TYPENAME_IS_CLASS_P): Likewise.
(make_typename_type): Change prototype.
* decl.c (struct_typename_info): New type.
(typename_compare): Expect the second argument to be a
typename_info, not a tree.
(build_typename_type): Add tag_type parameter. Do not create a
new type until necessary.
(make_typename_type): Add tag_type parameter.
* error.c (TYPENAME_TYPE): Print tags other than "typename" if
appropriate.
* friend.c (make_friend_class): Adjust call to make_typename_type.
* parser.c (cp_parser_make_typename_type): Likewise.
(cp_parser_primary_expression): Adjust call to
cp_parser_lookup_name.
(cp_parser_unqualified_id): Adjust calls to cp_parser_class_name.
(cp_parser_class_or_namespace_name): Likewise.
(cp_parser_postfix_expression): Adjust calls to
make_typename_type.
(cp_parser_mem_initializer_id): Adjust calls to
cp_parser_class_name.
(cp_parser_type_parameter): Adjust calls to cp_parser_lookup_name.
(cp_parser_template_name): Likewise.
(cp_parser_template_argument): Likewise.
(cp_parser_type_name): Adjust call to cp_parser_class_name.
(cp_parser_elaborated_type_specifier): Adjust calls to
make_typename_type and cp_parser_lookup_name.
(cp_parser_namespace_name): Likewise.
(cp_parser_class_name): Replace type_p parameter with tag_type.
Adjust calls to make_typename_type and cp_parser_lookup_name.
(cp_parser_class_head): Adjust calls to cp_parser_class_name.
(cp_parser_base_specifier): Likewise.
(cp_parser_lookup_name): Replace is_type parameter with tag_type.
Adjust calls to make_typename_type and lookup_qualified_name.
(cp_parser_lookup_name_simple): Adjust call to
cp_parser_lookup_name.
(cp_parser_constructor_declarator_p): Adjust call to
cp_parser_class_name.
* pt.c (convert_template_argument): Adjust all to
make_typename_type.
(tsubst_decl): Do not pre-substitute the type of the declaration.
(tsubst): Hand off declarations more quickly. Adjust call to
make_typename_type.
Paolo Carlini [Mon, 29 Nov 2004 12:59:53 +0000 (12:59 +0000)]
re PR libstdc++/18654 (Shrink-to-fit std::string::reserve() calls can reallocate & copy string contents unnecessarily)
2004-11-29 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/18654
* include/bits/basic_string.tcc (_Rep::_S_create): When shrinking,
do not round to pagesize.
* testsuite/21_strings/basic_string/capacity/char/18654.cc: New.
* testsuite/21_strings/basic_string/capacity/wchar_t/18654.cc: New.
Richard Kenner [Mon, 29 Nov 2004 01:08:41 +0000 (01:08 +0000)]
tree-ssa-operands.c (build_ssa_operands, [...]): Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
PR/18664
* tree-ssa-operands.c (build_ssa_operands, case MODIFY_EXPR):
Ignore a VIEW_CONVERT_EXPR on LHS when deciding if must or may def.
* tree-ssa-ccp.c (visit_assignment): If LHS is a VIEW_CONVERT_EXPR,
add an inverse VIEW_CONVERT_EXPR to const_val.
Richard Kenner [Mon, 29 Nov 2004 00:59:25 +0000 (00:59 +0000)]
tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove special code for assigning to non-pointer.
* tree-ssa-alias.c (compute_points_to_and_addr_escapes): Remove
special code for assigning to non-pointer.
(is_escape_site): If RHS is a conversion between pointer and integer
types, this is an escape site.
Richard Kenner [Mon, 29 Nov 2004 00:56:58 +0000 (00:56 +0000)]
gcse.c (insert_store): Error if try to insert store on abnormal edge.
* gcse.c (insert_store): Error if try to insert store on abnormal edge.
(store_motion): Don't move store if any edge we'd want to move it
to is abnormal.
Matt Kraai [Mon, 29 Nov 2004 00:37:54 +0000 (00:37 +0000)]
re PR other/17594 (GCC does not error about unknown options which starts with a valid option)
(gcc)
PR diagnostic/17594
* opts.c (find_opt): Require that the input match a switch exactly
or that the switch take a joined option to be interpreted as a
match for another language.
Theodore A. Roth [Sun, 28 Nov 2004 23:15:59 +0000 (23:15 +0000)]
avr.c (avr_handle_fndecl_attribute): Generate a warning if the function name does not begin with "__vector" and the...
* config/avr/avr.c (avr_handle_fndecl_attribute): Generate a
warning if the function name does not begin with "__vector" and the
function has either the 'signal' or 'interrupt' attribute.
Steven Bosscher [Sun, 28 Nov 2004 12:01:20 +0000 (12:01 +0000)]
vax.h (CASE_DROPS_THROUGH): Don't define.
* config/vax/vax.h (CASE_DROPS_THROUGH): Don't define.
* config/vax/vax.md (casesi): Emit a test-and-branch to make sure
that the case is in range, to make sure the casesi insn is always
in range and never falls through.
(casesi1): Add comment to explain why casesi never falls through.
Remove the unnamed special case casesi pattern.
re PR target/18331 (mmix-knuth-mmixware testsuite failure: execute/ieee/fp-cmp-8.c gcc.dg/20040625-1.c)
PR target/18331
* config/mmix/mmix.md ("*movdicc_real_reversible"): Rename from
"*movdicc_real". Only match reversible comparisons.
("*movdicc_real_nonreversible"): New pattern, split from
"*movdicc_real". Match only nonreversible comparisons. Exclude
reversed alternatives.
("*movdfcc_real_reversible", "*movdfcc_real_nonreversible"):
Similar.
Per Bothner [Sun, 28 Nov 2004 06:49:48 +0000 (22:49 -0800)]
jcf-parse.c (set_source_filename): Improvement to Andrew's fix...
* jcf-parse.c (set_source_filename): Improvement to Andrew's fix:
Fix fencepost error in 'i', which got executed one too many times.
Also, fold memcpy into explicit loop, as originally intended.
Also, free temporary 'buf' which otherwise leaks.