Jeff Law [Mon, 13 Jun 2005 23:24:47 +0000 (17:24 -0600)]
tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer simplify DIV, MOD or ABS expressions using VRP information.
* tree-ssa-dom.c (simplify_rhs_and_lookup_avail_expr): No longer
simplify DIV, MOD or ABS expressions using VRP information.
Remove WALK_DATA parameter. Prototype and all callers updated.
(eliminate_redundant_computations): Remove WALK_DATA parameter.
Prototype and all callers updated.
(optimize_stmt): WALK_DATA parameter is now unused.
* tree-vrp.c (local_fold): New function. Like fold, but
strips useless type conversions in the result.
(simplify_using_ranges): New function, largely cribbed from
tree-ssa-dom.c::simplify_rhs_and_lookup_avail_expr.
(vrp_finalize): Call simplify_using_ranges.
* gcc.dg/tree-ssa/20030807-10.c: VRP is now expected to
perform the desired transformations.
* gcc.dg/tree-ssa/20030806-6.c: Similarly.
* gcc.dg/tree-ssa/20040514-2.c: Similarly.
Per Bothner [Mon, 13 Jun 2005 19:30:47 +0000 (12:30 -0700)]
expr.c (int highest_label_pc_this_method, [...]): New globals.
* expr.c (int highest_label_pc_this_method,
start_label_pc_this_method): New globals.
(lookup_label): Add start_label_pc_this_method to pc for label, and
update highest_label_pc_this_method. This prevents conflicts between
labels from different methods.
* java-tree.h: Declare new globals.
* jcf-parse.c (parse_class_file): If needed bump
start_label_pc_this_method and reset highest_label_pc_this_method.
Nathan Sidwell [Mon, 13 Jun 2005 15:58:10 +0000 (15:58 +0000)]
re PR c++/20789 (ICE with incomplete type in template)
cp:
PR c++/20789
* decl.c (cp_finish_decl): Clear runtime runtime initialization if
in-class decl's initializer is bad.
PR c++/21929
* parser.c (struct cp_parser): Document that scope could be
error_mark.
(cp_parser_diagnose_invalid_type_name): Cope with error_mark for
scope.
(cp_parser_nested_name_specifier): Return NULL_TREE on error.
(cp_parser_postfix_expression): Deal with null or error_mark
scope.
(cp_parser_elaborated_type_specifier): Adjust
cp_parser_nested_name_specifier call.
Jakub Jelinek [Mon, 13 Jun 2005 15:24:54 +0000 (17:24 +0200)]
trans-expr.c (gfc_conv_function_call): Return int instead of void.
* trans-expr.c (gfc_conv_function_call): Return int instead of
void. Use a local variable for has_alternate_specifier and
return it. Avoid modification of function type's return value
in place, since it may be shared.
* trans.h (has_alternate_specifier): Remove.
(gfc_conv_function_call): Change return type.
* trans-stmt.c (has_alternate_specifier): Remove.
(gfc_trans_call): Add a local has_alternate_specifier variable,
set it from gfc_conv_function_call return value.
Zack Weinberg [Mon, 13 Jun 2005 08:26:05 +0000 (08:26 +0000)]
top level:
* depcomp: Update from automake CVS. Add 'ia64hp' stanza.
In 'cpp' stanza, support '#line' as well as '# '.
config:
* depstand.m4, lead-dot.m4: New files.
libcpp:
* configure.ac: Invoke ZW_CREATE_DEPDIR and
ZW_PROG_COMPILER_DEPENDENCIES.
* aclocal.m4, configure: Regenerate.
* Makefile.in (DEPMODE, DEPDIR, depcomp, COMPILE.base, COMPILE):
New variables.
(distclean): Clean up $(DEPDIR) and its contents.
(.c.o): Use $(COMPILE).
Include $(DEPDIR)/*.Po for most object->header dependencies.
re PR tree-optimization/21994 (complex throwing functions cause ICE)
PR tree-opt/21994
* tree-complex.c (update_complex_components_on_edge): New.
(update_parameter_components): Use it.
(update_phi_components): Likewise.
(expand_complex_move): Likewise for is_ctrl_altering_stmt.
Tobias Schlüter [Sun, 12 Jun 2005 15:21:12 +0000 (17:21 +0200)]
trans-expr.c (gfc_conv_variable): POINTER results don't need f2c calling conventions.
fortran/
* trans-expr.c (gfc_conv_variable): POINTER results don't need f2c
calling conventions. Look at sym instead of sym->result.
* trans-types.c (gfc_sym_type): Remove workaround for frontend bug.
Remove condition which is always false with workaround removed.
(gfc_return_by_reference): Always look at sym, never at sym->result.
testsuite/
* gfortran.dg/f2c_7.f90: New test.
re PR tree-optimization/14796 ([tree-ssa] combine two shifts into one)
2005-06-12 James A. Morrison <phython@gcc.gnu.org>
PR tree-optimization/14796
* fold-const.c (fold_binary): Transform (A >> C) << C into
one BIT_AND_EXPR.
<shift>: Transform (A OP c1) OP c2 into A OP (c1 + c2).
* tree-ssa-structalias.c (struct variable_info): Add has_union
member.
(create_variable_info_for): Mark variables containing unions.
Don't sort the field stack if notokay is true.
(find_what_p_points_to): Convert variables containing unions back
to their SFT's if necessary.
Thomas Koenig [Sat, 11 Jun 2005 19:39:13 +0000 (19:39 +0000)]
[multiple changes]
2005-06-11 Thomas Koenig <Thomas.Koenig@onlinde.de>
PR libfortran/21333
* Makefile.am: Add in_pack_c4.c, in_pack_c8.c, in_unpack_c4.c
and in_unpack_c8.c.
* Makefile.in: Regenerate.
* libgfortran.h: Declare internal_pack_c4, internal_pack_c8,
internal_unpack_c4 and internal_unpack_c8.
* m4/in_pack.m4: Use rtype_ccode insteald of rtype_kind
in function name.
Use sizeof (rtype_name) as size for memory allocation.
* m4/in_unpack.m4: Use rtype_ccode insteald of rtype_kind
in function name.
Use sizeof (rtype_name) for calculation of sizes for memcpy.
* runtime/in_pack_generic.c: For real, integer and logical
call internal_pack_4 if size==4 and internal_pack_8 if
size==8.
For complex, call internal_pack_c4 if size==8 and
internal_pack_c8 if size==16.
* runtime/in_unpack_generic.c: For real, integer and logical
call internal_unpack_4 if size==4 and internal_unpack_8 if
size==8.
For complex, call internal_unpack_c4 if size==8 and
internal_unpack_c8 if size==16.
* generated/in_pack_i4.c: Regenerated.
* generated/in_pack_i8.c: Regenerated.
* generated/in_unpack_i4.c: Regenerated.
* generated/in_unpack_i8.c: Regenerated.
* generated/in_pack_c4.c: New file.
* generated/in_pack_c8.c: New file.
* generated/in_unpack_c4.c: New file.
* generated/in_unpack_c8.c: New file.
2005-05-11 Thomas Koenig <Thomas.Koenig@online.de>
* gfortran.fortran-torture/execute/in-pack.f90: New test.
Daniel Berlin [Fri, 10 Jun 2005 19:23:26 +0000 (19:23 +0000)]
lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten slightly.
2005-06-10 Daniel Berlin <dberlin@dberlin.org>
* lambda-code.c (replace_uses_of_x_with_y): Renamed and rewritten
slightly.
(exit_phi_for_loop_p): New function.
(can_put_in_inner_loop): Ditto.
(can_convert_to_perfect_nest): Ditto.
(perfect_nestify): Create iv with right type.
Rewrite statements in correct order.
Dorit Nuzman [Fri, 10 Jun 2005 14:52:01 +0000 (14:52 +0000)]
tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose dependence-distance modulo VF is 0 are recorded in the...
* tree-vect-analyze.c (vect_analyze_data_ref_dependence): DRs whose
dependence-distance modulo VF is 0 are recorded in the
SAME_ALIGN_REFs VEC in each DR.
(vect_enhance_data_refs_alignment): Avoid 80 column overflow. The
alignment information of DRs that are in the SAME_ALIGN_REFs VEC of the
DR we want to peel for, is set to 0.
* tree-vect-transform.c (vect_do_peeling_for_loop_bound): Fix printout.
* tree-vectorizer.c (destroy_loop_vec_info): Free the SAME_ALIGN_REFs
VEC.
* tree-vectorizer.h (dr_p): New type. Defined to use the VEC API.
(_stmt_vec_info): Added new field same_align_refs.
(STMT_VINFO_SAME_ALIGN_REFS): New macro.
Alan Modra [Fri, 10 Jun 2005 01:44:59 +0000 (01:44 +0000)]
linux.h (NO_PROFILE_COUNTERS): Define.
* config/rs6000/linux.h (NO_PROFILE_COUNTERS): Define.
* config/rs6000/linux64.h (NO_PROFILE_COUNTERS): Define as 1.
* config/rs6000/rs6000.c (output_function_profiler): Obey
NO_PROFILE_COUNTERS. Handle TARGET_SECURE_PLT. Use "bcl 20,31"
for -fPIC. Delete save_lr and substitute its value into strings.
ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
* config/ia64/ia64.c (update_set_flags): Just return for IF_THEN_ELSE.
Use SCALAR_FLOAT_MODE_P.
* config/ia64/vect.md (vcondv2sf): Remove code check on comparison.
(fselect): Rename from fpcmp; use %F.
(fpcmp): New.
Jan Hubicka [Thu, 9 Jun 2005 16:21:36 +0000 (18:21 +0200)]
cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize local statics when doing unit-at-a-time.
* cgraphunit.c (cgraph_create_edges): Do not walk BLOCK; finalize
local statics when doing unit-at-a-time.
(cgraph_varpool_assemble_pending_decls): Output debug info.
* dwarf2out.c (decls_for_scope): Skip local statics.
(dwarf2out_decl): Handle local statics.
* passes.c (rest_of_decl_compilation): Do not differentiate
local and global statics in unit-at-a-time.
* tree-inline.c (remap_decls): Put local static into
unexpanded_vars_list rather than introducing duplicated VAR_DECL
node.
target.h (insn_valid_within_doloop): Rename into "invalid_within_doloop".
2005-06-09 Adrian Straetling <straetling@de.ibm.com>
* target.h (insn_valid_within_doloop): Rename into
"invalid_within_doloop". Change return type to "const char *".
Update Comment.
* targhooks.h (default_insn_valid_within_doloop): Rename into
"default_invalid_within_doloop".
* targhooks.c (default_insn_valid_within_doloop): Likewise.
Update Comment.
* target-def.h (TARGET_INSN_VALID_WITHIN_DOLOOP): Rename target hook
into "TARGET_INVALID_WITHIN_DOLOOP". Default it to
"default_invalid_within_doloop".
* hooks.c (hook_constcharptr_rtx_null): New function.
(hook_bool_rtx_true): Remove.
* hooks.h (hook_constcharptr_rtx_null): Declare.
(hook_bool_rtx_true): Remove.
* loop-doloop.c (doloop_valid_p): Temporarily store return value of
"invalid_within_doloop" and print error message if non-null.
Update Comment.
* doc/tm.texi: Update documentation.
* config/s390/s390.c: Adjust to new hook name and new default hook.
* config/rs6000/rs6000.c: (rs6000_insn_valid_within_doloop): Rename
into "rs6000_invalid_within_doloop".
(rs6000_invalid_within_doloop): Change return type to "static const
char *" and replace return values. Update Comment.
Dale Johannesen [Thu, 9 Jun 2005 03:53:24 +0000 (03:53 +0000)]
darwin.c (darwin_binds_local_p): New.
2005-06-08 Dale Johannesen <dalej@apple.com>
* config/darwin.c (darwin_binds_local_p): New.
* config/darwin-protos.h (darwin_binds_local_p): Declare it.
* config/i386/i386.c (TARGET_BINDS_LOCAL_P): Use it for TARGET_MACHO.
* config/rs6000/rs6000.c (rs6000_binds_local_p): Remove.
(TARGET_BINDS_LOCAL_P): Change it to darwin_binds_local_p.
re PR target/20666 (SPARC builtins should be folded if possible)
2005-06-08 James A. Morrison <phython@gcc.gnu.org>
PR target/20666
* config/sparc/sparc.c (sparc_fold_builtin): New function
(sparc_vis_mul8x16): New function.
(sparc_handle_vis_mul8x16): New function.
(TARGET_FOLD_BUILTIN): Define to sparc_fold_builtin.
David Ayers [Wed, 8 Jun 2005 15:13:17 +0000 (17:13 +0200)]
NXConstStr.h, [...]: Do not include Objective-C headers as system headers.
2005-06-08 David Ayers <d.ayers@inode.at>
* objc/NXConstStr.h, objc/Object.h, objc/Protocol.h,
objc/encoding.h, objc/hash.h, objc/objc-api.h,
objc/runtime.h, objc/sarray.h, objc/thr.h,
objc/typedstream.h: Do not include Objective-C headers as
system headers.
Sebastian Pop [Wed, 8 Jun 2005 08:47:05 +0000 (10:47 +0200)]
tree-data-ref.c (compute_estimated_nb_iterations, [...]): Fixed to use chrec_contains_undetermined to test the values of...
* tree-data-ref.c (compute_estimated_nb_iterations,
analyze_array_indexes, compute_overlap_steps_for_affine_1_2,
analyze_subscript_affine_affine, find_data_references_in_loop):
Fixed to use chrec_contains_undetermined to test the values of
loop->estimated_nb_iterations.
* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop):
Compute the estimation only when loop->estimated_nb_iterations
has not yet been initialized.
(convert_step_widening, scev_probably_wraps_p): Add a call to
estimate_numbers_of_iterations_loop.
* tree-vrp.c (execute_vrp): Don't call estimate_numbers_of_iterations.