2004-08-26 Daniel Berlin <dberlin@dberlin.org>
* Makefile.in (lambda-code.o): New.
(lambda-trans.o): Ditto.
(TREE_DATA_REF_H): Ditto.
(LAMBDA_H): Ditto.
(lambda-mat.o): Use LAMBDA_H.
(tree-data-ref.o): Ditto.
* lambda-code.c: New file. Lambda code generation algorithm.
* lambda-trans.c: Ditto. Lambda transformation matrix support.
* lambda.h: Add lambda loop structures.
Add lambda loopnest structures.
Add lambda body vector structure.
Add lambda linear expression structures.
Add prototypes for functions in new files.
* lambda-mat.c: Include tree.h
2004-08-26 Daniel Berlin <dberlin@dberlin.org>
Sebastian Pop <pop@cri.ensmp.fr>
* tree-data-ref.h: Include lambda.h
(free_dependence_relation): Declared here.
(free_dependence_relations): Ditto.
(free_data_refs): Ditto.
* tree-data-ref.c (free_dependence_relation): New function.
(free_dependence_relations): Ditto.
(free_data_refs): Ditot.
(analyze_all_data_dependences): Free datarefs and dependence_relations.
(build_classic_dist_vector): Store in the dependence_relations the
information. Each arc in the dependence_relations graph is labelled
with the distance and direction vectors.
(build_classic_dir_vector): Ditto.
(compute_rw_wr_ww_dependences): Renamed again compute_all_dependences.
Now computes again the whole dependence graph including read-read
relations.
(compute_data_dependences_for_loop): Now dependence_relations contains
all the data, and thus it doesn't need to initialize the classic_dir
and classic_dist vectors.
(analyze_all_data_dependences): Adjusted for using the new interface of
compute_data_dependences_for_loop. Remove the statistics dump.
Co-Authored-By: Sebastian Pop <pop@cri.ensmp.fr>
From-SVN: r86627
2004-08-26 Mark Wielaard <mark@klomp.org>
Fixes PR libgcj/17002:
* java/util/TimeZone.java (defaultZone): Try a couple of ways to get
a TimeZoneId string and then try to convert that to a TimeZone with
getDefaultSystemTimeZone(String).
(timezones0): Changed type from Hashtable to HashMap.
(timezones): Create HashMap, not Hashtable.
(getDefaultTimeZone): New method, rewritten from CNI version.
(readTimeZoneFile): New method.
(readtzFile): Likewise.
(skipFully): Likewise.
* java/util/natTimeZone.cc (getSystemTimeZone): Renamed to
getDefaultTimeZoneId and rewritten.
(getDefaultTimeZoneId): Rewritten in java.
From-SVN: r86623
PR target/17119.
config/m32r.c (gen_compare): Use reg_or_int16_operand when checking for a
valid constant, regardless of sign.
testsuite/gcc.c-torture/compile/pr17119.c: New test (for this failure)
From-SVN: r86619
PR target/16480
* config/rs6000/rs6000.c (rs6000_split_multireg_move): Don't abort
on "(mem (symbol_ref ..))" rtl. Look at LO_SUM base regs as well
as PLUS base regs.
From-SVN: r86598
fortran/
* expr.c (gfc_check_assign): Add comment. Add new warning.
* trans-expr.c (gfc_conv_function_call): Correctly dereference
result of pointer valued function when not in pointer assignment.
testsuite/
* gfortran.dg/assignment_1.f90: New test.
From-SVN: r86585
2004-08-25 Andrew MacLeod <amacleod@redhat.com>
* tree-ssa-operands.h (struct ssa_operand_iterator_d): New. SSA operand
iterator controlling structure.
(SSA_OP_USE, SSA_OP_DEF, SSA_OP_VUSE, SSA_OP_VMAYUSE, SSA_OP_VMAYDEF,
SSA_OP_VMUSTDEF, SSA_OP_VIRTUAL_USES, SSA_OP_VIRTUAL_DEFS,
SSA_OP_ALL_USES, SSA_OP_ALL_DEFS, SSA_OP_ALL_OPERANDS): New. Operand
iterator flags.
(FOR_EACH_SSA_TREE_OPERAND): New. Iterate over operands as trees.
(FOR_EACH_SSA_USE_OPERAND): New. Iterate over operands as uses.
(FOR_EACH_SSA_DEF_OPERAND): New. Iterate over operands as defs.
(FOR_EACH_SSA_MAYDEF_OPERAND): New. Iterate over V_MAY_DEFs.
* tree-ssa-operands.c (NULL_DEF_OPERAND_P, NULL_USE_OPERAND_P): New.
Empty operand pointers.
* tree-flow-inline.h (op_iter_done): New. Return true if finished.
(op_iter_next_use): New. Return next use_operand_p.
(op_iter_next_def): New. Return next def_operand_p.
(op_iter_next_tree): New. Return next operands as a tree.
(op_iter_init): New. Initialize an iterator structure.
(op_iter_init_use): New. Initialize structure and get the first use.
(op_iter_init_def): New. Initialize structure and get the first def.
(op_iter_init_tree): New. Initialize structure and get the first tree.
(op_iter_next_maydef): New. Return next V_MAY_DEF operands.
(op_iter_init_maydef): New. Initialize structure and get the first
V_MAY_DEF operands.
* tree-cfg.c (tree_duplicate_bb): Use new operand iterator.
* tree-dfa.c (compute_immediate_uses_for_stmt,
redirect_immediate_uses): Use new operand iterator.
(v_may_defs_disappeared_p, v_must_defs_disappeared_p): Delete.
(mark_new_vars_to_rename): Use new operand iterator. Count virtual
operands instead of using *_disappeared_p routines.
* tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites, rewrite_stmt,
ssa_rewrite_stmt): Use new operand iterator.
* tree-outof-ssa.c (check_replaceable, find_replaceable_in_bb,
rewrite_trees): Use new operand iterator.
* tree-pretty-print.c (dump_vops): Use new operand iterator.
* tree-sra.c (mark_all_v_defs): Use new operand iterator.
* tree-ssa-alias.c (compute_points_to_and_addr_escape,
dump_points_to_info): Use new operand iterator.
* tree-ssa-ccp.c (cp_lattice_meet, visit_stmt, initialize,
replace_uses_in, replace_vuse_in, likely_value, set_rhs): Use new
operand iterator.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary,
propagate_necessity): Use new operand iterator.
* tree-ssa-dom.c (cprop_into_stmt, optimize_stmt): Use operand iterator.
(register_definitions_for_stmt): Use new operand iterator. Take stmt as
a parameter instead of a stmt_ann_t.
* tree-ssa-live.c (create_ssa_var_map, calculate_live_on_entry,
build_tree_conflict_graph): Use new operand iterator.
* tree-ssa-loop-im.c (determine_max_movement, single_reachable_address,
rewrite_mem_refs): Use new operand iterator.
* tree-ssa-loop-manip.c (find_uses_to_rename_stmt,
check_loop_closed_ssa_use): Use new operand iterator.
* tree-ssa.c (verify_ssa, replace_immediate_uses): Use operand iterator.
* tree-ssanames.c (release_defs): Use new operand iterator.
* tree-vectorizer.c (vect_create_data_ref): Use new operand iterator.
From-SVN: r86583
* tlink.c (initial_cwd): New variable.
(tlink_init): Initialize it.
(recompile_files): Use tlink_execute() instead of system(). Don't
duplicate verbose output of collect_execute. Restore initial_cwd.
Update comment before the function.
From-SVN: r86577
PR middle-end/16693
PR tree-optimization/16372
* decl.c (finish_enum): Make the precision of the enumerated type
the same width as the underlying integer type.
* g++.dg/opt/pr16372-1.C: New test case.
* g++.dg/opt/pr16693-1.C: New test case.
* g++.dg/opt/pr16693-2.C: New test case.
From-SVN: r86576
[gcc/ChangeLog]
2004-08-25 Ziemowit Laski <zlaski@apple.com>
* c-typeck.c (build_c_cast): In ObjC, always preserve (and silently
accept) a cast from one Objective-C pointer type to another.
[gcc/testsuite/ChangeLog]
2004-08-25 Ziemowit Laski <zlaski@apple.com>
* objc.dg/proto-lossage-4.m: New test.
From-SVN: r86574
PR c++/17155
* lex.c (build_lang_decl): Set DECL_NO_STATIC_CHAIN for all C++
functions.
PR c++/17155
* g++.dg/inherit/local2.C: New test.
From-SVN: r86571
* config/mips/mips.md (any_shift): New code macro.
(optab, insn): New code attributes.
({ashl,ashr,lshr}[sd]i3): Redefine using :GPR and any_shift.
Use the standard rather than internal patterns for the MIPS16
double-shift optimization.
(*{ashl,ashr,lshr}[sd]i3): New names for the non-mips16 shift patterns.
Redefine using :GPR and any_shift.
(*{ashl,ashr,lshr}si3_extend): Generalize ashlsi3_internal1_extend
to cover all three shifts.
(*{ashl,ashr,lshr}si3_mips16): New names for the mips16 SImode shifts.
Redefine using any_shift. Use :GPR and any_shift to combine splitters.
(*{ashl,ashr,lshr}di3_mips16): New names for the mips16 DImode shifts.
From-SVN: r86566
PR libstdc++/17005 (fix for HP-UX 11.11)
* config.gcc (hppa*-*-*): Move MASK_BIG_SWITCH to target_cpu_default2.
(hppa*-*-hpux*): Consolidate hppa1.0-*-* code. Rework handling of
tm_file including pa-hpux1010.h or pa-hpux1111.h when appropriate.
* config/pa/pa-hpux1010.h, config/pa/pa-hpux1111.h: New files.
* config/pa/pa-hpux.h (TARGET_HPUX): Define.
(LINK_SPEC): Handle march=1.0 option.
* config/pa/pa-hpux10.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
and _XOPEN_SOURCE_EXTENDED for UNIX 95.
(SUBTARGET_OPTIONS): New define.
(LINK_SPEC): Handle march=1.0 option.
(STARTFILE_SPEC): New define.
* config/pa/pa-hpux11.h (TARGET_OS_CPP_BUILTINS): Predefine _XOPEN_UNIX
and _XOPEN_SOURCE_EXTENDED for UNIX 95. Additionally, predefine
_INCLUDE__STDC_A1_SOURCE and _INCLUDE_XOPEN_SOURCE_500 for UNIX 98.
(SUBTARGET_OPTIONS): New define.
(LINK_SPEC): Handle march=1.0 option.
(STARTFILE_SPEC): New define.
* config/pa/pa.c (override_options): Add code to process -munix= option.
* config/pa/pa.h (pa_unix_string, flag_pa_unix): Declare.
(TARGET_HPUX, TARGET_HPUX_10_10, TARGET_HPUX_11_11): Provide default
defines.
(TARGET_OPTIONS): Add SUBTARGET_OPTIONS to option list.
(SUBTARGET_OPTIONS): Provide default define.
* config/pa/pa64-hpux.h (STANDARD_STARTFILE_PREFIX_1,
STANDARD_STARTFILE_PREFIX_2): New defines.
(STARTFILE_SPEC): Provide unix95.o or unix98.o startfiles as necessary.
(ENDFILE_SPEC): Use %O.
* doc/install.texi (hppa*-*-hpux*): Reword paragraph on -g and gas.
Mention issue caused by changing namespace and runtime to UNIX 95/98.
* doc/invoke.texi (HPPA options): Move misplaced text to FRV options.
Document -munix=std option.
From-SVN: r86561
PR fortran/17144
* trans-array.c (gfc_trans_allocate_temp_array): Remove
string_length argument.
(gfc_trans_array_ctor_element): New function.
(gfc_trans_array_constructor_subarray): Use it.
(gfc_trans_array_constructor_value): Ditto. Handle constant
character arrays.
(get_array_ctor_var_strlen, get_array_ctor_strlen): New functions.
(gfc_trans_array_constructor): Use them.
(gfc_add_loop_ss_code): Update to new gfc_ss layout.
(gfc_conv_ss_descriptor): Remember section string length.
(gfc_conv_scalarized_array_ref): Ditto. Remove dead code.
(gfc_conv_resolve_dependencies): Update to new gfc_ss layout.
(gfc_conv_expr_descriptor): Ditto.
(gfc_conv_loop_setup): Ditto. Spelling fixes.
* trans-array.h (gfc_trans_allocate_temp_array): Update prototype.
* trans-const.c (gfc_conv_constant): Update to new gfc_ss layout.
* trans-expr.c (gfc_conv_component_ref): Turn error into ICE.
(gfc_conv_variable): Set string_length from section.
(gfc_conv_function_call): Remove extra argument.
(gfc_conv_expr, gfc_conv_expr_reference): Update to new gfc_ss layout.
* trans-types.c (gfc_get_character_type_len): New function.
(gfc_get_character_type): Use it.
(gfc_get_dtype): Return zero for internal types.
* trans-types.h (gfc_get_character_type_len): Add prototype.
* trans.h (struct gfc_ss): Move string_length out of union.
testsuite/
* gfortran.dg/string_ctor_1.f90: New test.
From-SVN: r86558
PR c++/14428
* pt.c (redeclare_class_template): Check the type of non-type and
template template parameter.
* g++.dg/template/redecl2.C: New test.
From-SVN: r86550