Dorit Nuzman [Thu, 18 Aug 2005 16:07:54 +0000 (16:07 +0000)]
re PR tree-optimization/22228 (ICE with -ftree-vectorize in verify_ssa)
PR tree-optimization/22228
* tree-ssa-loop (pass_vectorize): Add TODO_verify_loops to todo_flags_start.
* tree-vect-transform.c (vect_transform_loop): Mark the variables that
are recorded in vect_vnames_to_rename for renaming.
* tree-vectorizer.c (vect_vnames_to_rename): New global bitmap.
(slpeel_update_phi_nodes_for_guard1): Record virtual vars for renaming
in vect_vnames_to_rename.
(vectorize_loops): Allocate and free the vect_vnames_to_rename bitmap.
* tree-vectorizer.h (vect_vnames_to_rename): New extern variable.
Tom Tromey [Wed, 17 Aug 2005 20:44:10 +0000 (20:44 +0000)]
class.c (make_class_data): Always emit JV_STATE_PRELOADING for class' initial state.
gcc/java:
* class.c (make_class_data): Always emit JV_STATE_PRELOADING for
class' initial state.
libjava:
* java/lang/Class.h (_Jv_IsBinaryCompatibilityABI): Declare as
friend.
* include/jvm.h (_Jv_IsBinaryCompatibilityABI): New function.
* testsuite/libjava.lang/bclink.java: New file.
* testsuite/libjava.lang/bclink.out: New file.
* link.cc (print_class_loaded): Changed ABI test to look at
various _syms fields.
Mark Kettenis [Wed, 17 Aug 2005 17:30:47 +0000 (17:30 +0000)]
floatformat.c (floatformat_always_valid): Change type of last argument to `void *'.
[libiberty]
* floatformat.c (floatformat_always_valid): Change type of last
argument to `void *'.
(floatformat_i387_ext_is_valid): Likewise.
(floatformat_to_double): Change type of second argument to `const
void *'.
(floatformat_from_double): Change type of last argument to `void
*'.
(floatformat_is_valid): Change type of last argument to `const
void *'.
(ieee_test): Remove redundant casts.
[include]
* floatformat.h (struct floatformat): Change type of large
argument for is_valid member to `const void *'.
(floatformat_to_double): Change type of second argument to `const
void *'.
(floatformat_from_double): Change type of last argument to `void
*'.
(floatformat_is_valid): Change type of last argument to `const
void *'.
Steven Bosscher [Wed, 17 Aug 2005 07:27:47 +0000 (07:27 +0000)]
re PR tree-optimization/21574 (store_ccp doesn't see through a store.)
PR tree-optimization/21574
* tree-ssa-ccp.c (likely_value): If the right hand side is a
constant, return CONSTANT.
(ccp_lattice_meet): Use operand_equal_p instead of simple_cst_equal.
(ccp_fold, visit_assignment): Likewise.
(evaluate_stmt): Handle UNDEFINED and UNKNOWN_VAL the same way.
c-typeck.c (build_function_call): Call fold_buildN_initializer or fold_buildN instead of buildN then...
2005-08-16 James A. Morrison <phython@gcc.gnu.org>
* c-typeck.c (build_function_call): Call fold_buildN_initializer or
fold_buildN instead of buildN then fold_initializer or fold.
(build_unary_op): Likewise.
(build_binary_op): Likewise.
* fold-const.c (fold_initializer): Remove.
(fold_build1_initializer): New function.
(fold_build2_initializer): New function.
(fold_build3_initializer): New function.
* tree.h (fold_initializer): Remove.
(fold_build1_initializer): New function.
(fold_build2_initializer): New function.
(fold_build3_initializer): New function.
fold-const.c (optimize_bit_field_compare): Remove extra fold call.
2005-08-16 James A. Morrison <phython@gcc.gnu.org>
* fold-const.c (optimize_bit_field_compare): Remove extra fold call.
(try_move_mult_to_index): Call fold_build2 instead of build2.
(fold_binary): Don't call fold after calls to try_move_mult_to_index.
* tree-ssa-loop-niter.c (inverse): Call int_const_binop instead of
fold_binary_to_constant.
(infer_loop_bounds_from_undefined): Call fold_build2 instead of
fold (build.
* tree-data-ref.c (tree_fold_divides_p): Use tree_int_cst_equal to
check if A == gcd (A, B). Remove TYPE argument.
(analyze_offset) Use fold_build2 instead of fold (build.
(create_data_ref): Likewise.
(analyze_siv_subscript_cst_affine): Update calls to tree_fold_divides_p. * tree-ssa-ccp.c (widen_bitfield): Call fold_build2 instead of build2
then fold.
Andrew Pinski [Wed, 17 Aug 2005 01:55:05 +0000 (01:55 +0000)]
re PR tree-optimization/23402 (error: statement makes a memory store, but has no V_MAY_DEFS nor V_MUST_DEFS)
2005-08-16 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/23402
* gcc.c-torture/compile/zero-strct-3.c: New test.
* gcc.c-torture/compile/zero-strct-4.c: New test.
2005-08-16 Andrew Pinski <pinskia@physics.uc.edu>
PR tree-opt/23402
* gimplify.c (zero_sized_type): New function.
(gimplify_modify_expr_rhs): If we have a zero sized type,
replace the statement with an empty statement.
Ian Lance Taylor [Tue, 16 Aug 2005 22:07:44 +0000 (22:07 +0000)]
re PR c++/23337 (ICE initializing array of vectors in C++)
./ PR c++/23337
* gimplify.c (gimplify_init_ctor_eval): If we see an element of
vector type, don't try to construct it element by element. Add an
assertion that we use a FIELD_DECL when building a COMPONENT_REF.
testsuite/
PR c++/23337
* g++.dg/ext/vector2.C: New.
Ranjit Mathew [Tue, 16 Aug 2005 18:32:14 +0000 (18:32 +0000)]
More testsuite adjustments for PR java/19870.
* testsuite/libjava.lang/PR19870_2.java: New testcase.
* testsuite/libjava.lang/PR19870_2.out: Expected output for the
new testcase.
* testsuite/libjava.jacks/jacks.xfail: Remove
8.5.2-non-static-member-usage-2 and add 15.12.3-explicit-constructor-9.
Ranjit Mathew [Tue, 16 Aug 2005 18:22:31 +0000 (18:22 +0000)]
re PR java/19870 (gcj -C doesn't generate accessors for private members across nested class boundaries)
PR java/19870
* parse.y (nested_field_access_p): Rename to nested_member_access_p
and expand to handle method accesses across nested classes.
(build_outer_method_access_method): Rename to
build_nested_method_access_method. Minor adjustments to comments.
(resolve_expression_name): Use the newly-renamed
nested_member_access_p method.
(resolve_qualified_expression_name): Likewise.
(patch_method_invocation): Also consider static methods for access
method generation. Minor adjustments to comments.
(maybe_use_access_method): Use the more general
nested_memeber_access_p to determine access across nested class
boundaries. Allow THIS_ARG to be NULL (for static methods).
Richard Earnshaw [Tue, 16 Aug 2005 09:27:52 +0000 (09:27 +0000)]
re PR target/23355 (size optimizer did not eliminateing useless Push and pop instructions at ARM/Thumb machine)
PR target/23355
* arm.c (thumb_compute_save_reg_mask): Use similar logic to
arm_compure_save_reg0_reg12_mask to determine when the PIC register
must be saved.
re PR middle-end/23369 (build_range_check generates wrong code for funcptr comparison)
PR middle-end/23369
* fold-const.c (build_range_check): Disable optimization for function
pointer expressions on targets that require function pointer
canonicalization.
DJ Delorie [Tue, 16 Aug 2005 00:31:39 +0000 (20:31 -0400)]
mov.md (movqi_op): Immediates can't be moved to the stack.
* config/m32c/mov.md (movqi_op): Immediates can't be moved to
the stack.
(movsi_splittable): Allow, but split, moves to the stack.
* config/m32c/m32c.c (m32c_split_move): Always split moves to the
stack.
* cp-tree.h (can_convert_arg, fn_type_unification): New argument.
* call.c (add_template_candidate_real): Pass down 'flags' to
fn_type_unification.
(can_convert_arg): New 'flags' argument. Pass it to call to
implicit_conversion instead of LOOKUP_NORMAL.
(can_convert): Add LOOKUP_NORMAL to call to can_convert_arg.
* class.c (resolve_address_of_overloaded_function): Ditto.
(resolve_address_of_overloaded_function): Ditto.
* decl.c (reshape_init, check_default_argument): Ditto.
* typeck.c (build_ptrmemfunc): Ditto.
* pt.c (type_unification_real): Add 'flags' argument.
(fn_type_unification): Pass 'flags' to type_unification_real.
(type_unification_real): Pass new 'flags' argument to call to
can_convert_arg.
David Edelsohn [Mon, 15 Aug 2005 17:58:58 +0000 (17:58 +0000)]
rs6000.md (QHSI): New mode macro.
* config/rs6000/rs6000.md (QHSI): New mode macro.
(wd): Extend mode attr for QImode and HImode
(dbits): New mode attr.
(zero_extend<mode>di2): Convert to mode macro.
configure.ac: Test for the name of the symbol used for the entry point...
* configure.ac: Test for the name of the symbol used for the entry
point; define ENTRY_POINT to the result.
* configure: Regenerate.
* config.h.in: Regenerate.
* mf-heuristics.c: Replace _start with ENTRY_POINT throughout.
Ulrich Weigand [Sun, 14 Aug 2005 19:38:34 +0000 (19:38 +0000)]
mf-runtime.c (__mf_state_1): Initialize to reentrant.
* mf-runtime.c (__mf_state_1): Initialize to reentrant.
(__mf_init): Set thread state active.
* mf-hooks3.c (__mf_pthread_spawner): Always set thread
state active.
(pthread_create wrapper): Always use thread spawner.
PR fortran/21432.
* gfortran.dg/namelist_print_1.f: New test of functionality of
PRINT namelist.
* gfortran.dg/namelist_print_2.f: New test to check that PRINT
namelist generates error with -std=f95.
Ira Rosen [Sun, 14 Aug 2005 06:28:03 +0000 (06:28 +0000)]
re PR tree-optimization/23320 (ICE in in base_addr_differ_p, at tree-data-ref.c:430)
PR tree-optimization/23320
* tree-data-ref.c (base_addr_differ_p): Add comment. Check
data-refs' types instead of base object nullness. Add check for
pointer type data-refs before first location comparison. Remove
assert.