David Ung [Wed, 15 Jun 2005 12:17:08 +0000 (12:17 +0000)]
mips.h (GENERATE_MIPS16E): New definition.
* config/mips/mips.h (GENERATE_MIPS16E): New definition.
* config/mips/mips.md (zero_extend<SHORT:mode><GPR:mode>2):
Changed expand condition to exclude generating of "and" if
GENERATE_MIPS16E is true.
(*zero_extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for
matching mips16e zeb/zeh.
(*extend<SHORT:mode><GPR:mode>2_mips16e): New pattern for matching
mips16e seb/seh.
(*extend<SHORT:mode><GPR:mode>2): Disable this pattern for
GENERATE_MIPS16E.
* doc/invoke.texi (MIPS Options): Add comment to -mips16
indicating MIPS16e ASE is used if targetting for MIPS32 or MIPS64.
Bernd Schmidt [Wed, 15 Jun 2005 09:35:15 +0000 (09:35 +0000)]
Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
* Makefile.in (local-alloc.o): Depend on $(GGC_H) and reload.h.
* local-alloc.c: Include "ggc.h" and "reload.h".
(struct equivalence): New member is_arg_equivalence.
(local_alloc): Always call update_equiv_regs.
(update_equiv_regs): Allocate reg_equiv_init; set reg_equiv_init_size.
Detect equivalences made by stores to memory in a second pass.
Return early if not optimizing.
Initialize reg_equiv_init for all equivalences; treat equivalences for
REG_EQUIV notes existing before this pass specially.
(no_equiv): Don't clear reg_equiv_init or remove notes if the
is_arg_equivalence field is set.
* reload.h (reg_equiv_init, reg_equiv_init_size): Declare.
* reload1.c (reg_equiv_init): No longer static.
(reg_equiv_init_size): New variable.
(reload): Don't allocate reg_equiv_init; don't free it when done but
clear it.
Restructure equivalence set up code not to set reg_equiv_init, but to
clear it when we can't use an equivalence.
Undo change disabling equivalences for MEM_READONLY_P memrefs.
Dump equivalencing insns to dump_file.
Keith Seitz [Wed, 15 Jun 2005 03:07:49 +0000 (03:07 +0000)]
ArrayId.java: New file.
* gnu/classpath/jdwp/id/ArrayId.java: New file.
* gnu/classpath/jdwp/id/ArrayReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/ClassLoaderId.java: New file.
* gnu/classpath/jdwp/id/ClassObjectId.java: New file.
* gnu/classpath/jdwp/id/ClassReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/JdwpId.java: New file.
* gnu/classpath/jdwp/id/ObjectId.java: New file.
* gnu/classpath/jdwp/id/ReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/StringId.java: New file.
* gnu/classpath/jdwp/id/ThreadGroupId.java: New file.
* gnu/classpath/jdwp/id/ThreadId.java: New file.
* config/mips/mips.c (machine_function): Add varargs_size field.
(mips_setup_incoming_varargs): Store the amount of extra stack space
there rather than in *pretend_size. When saving registers, always
expect virtual_incoming_args_rtx to point to the start of the
pretend arguments.
(mips_va_start): Remove alignment hack. Handle all
!EABI_FLOAT_VARARGS_P cases in the same way.
(compute_frame_size): Handle varargs_size. Remove the redundant
!TARGET_OLDABI condition in the handling of pretend_args_size.
(mips_initial_elimination_offset): Remove the now-redundant check
of TARGET_NEWABI.
* opt-functions.awk (global_state_p, needs_state_p, static_var): New.
(var_ref): Take the option's flags as a second parameter. Check
static_var.
* optc-gen.awk: Declare local state variables. Pass flags to var_ref.
Roger Sayle [Tue, 14 Jun 2005 05:57:26 +0000 (05:57 +0000)]
re PR rtl-optimization/22053 (ACATS ICE cxg2002 cxg2008 cxg2019 cxg2020 cxg2021 compensate_edge, at reg-stack.c:2671)
PR rtl-optimization/22053
* reg-stack.c (compensate_edge): Correct mistake in the assertion
checking of EDGE_ABNORMAL_CALL edges; complex return values can
result in the top two stack slots, st(0) and st(1), being live.
Keith Seitz [Tue, 14 Jun 2005 00:28:08 +0000 (00:28 +0000)]
ArrayId.java: New file.
* gnu/classpath/jdwp/id/ArrayId.java: New file.
* gnu/classpath/jdwp/id/ArrayReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/ClassLoaderId.java: New file.
* gnu/classpath/jdwp/id/ClassObjectId.java: New file.
* gnu/classpath/jdwp/id/ClassReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/JdwpId.java: New file.
* gnu/classpath/jdwp/id/ObjectId.java: New file.
* gnu/classpath/jdwp/id/ReferenceTypeId.java: New file.
* gnu/classpath/jdwp/id/StringId.java: New file.
* gnu/classpath/jdwp/id/ThreadGroupId.java: New file.
* gnu/classpath/jdwp/id/ThreadId.java: New file.
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.