gcc/
* rtl.h (simplify_replace_fn_rtx): Declare.
(wrap_constant, unwrap_constant): Delete.
* cfgexpand.c (unwrap_constant, wrap_constant): Delete.
(expand_debug_expr): Don't call wrap_constant.
* combine.c (rtx_subst_pair): Only define for AUTO_INC_DEC.
(auto_adjust_pair): Fold into...
(propagate_for_debug_subst): ...here. Only define for AUTO_INC_DEC.
Just return a new value.
(propagate_for_debug): Use simplify_replace_fn_rtx for AUTO_INC_DEC,
otherwise use simplify_replace_rtx.
* cselib.c (wrap_constant): Reinstate old definition.
(cselib_expand_value_rtx_1): Don't wrap constants.
* gcse.c (try_replace_reg): Don't use copy_rtx in the call to
simplify_replace_rtx.
(bypass_block): Fix formatting in calls to simplify_replace_rtx.
* reload1.c (reload): Skip all uses for an insn before adjusting it.
Use simplify_replace_rtx.
* simplify-rtx.c (simplify_replace_fn_rtx): New function,
adapted from...
(simplify_replace_rtx): ...here. Turn into a wrapper for
simplify_replace_fn_rtx.
(simplify_unary_operation): Don't unwrap CONSTs.
* var-tracking.c (check_wrap_constant): Delete.
(vt_expand_loc_callback): Don't call it.
(vt_expand_loc): Likewise.
From-SVN: r153037
2009-10-20 Richard Guenther <rguenther@suse.de>
* ggc-page.c: Include cfgloop.h.
(struct max_alignment): Drop long double, add void *.
(extra_order_size_table): Add low non-power-of-two multiples
of MAX_ALIGNMENT. Drop small type-based entries, add
tree_type, cgraph_node and loop.
* alloc-pool.c (struct allocation_object_def): Drop long double
aligning element.
From-SVN: r153014
* tree-sra.c (build_ref_for_offset_1) <RECORD_TYPE>: Skip fields
without size or with size that can't be represented as a host integer.
From-SVN: r153008
2009-10-20 Wolfgang Gellerich <gellerich@de.ibm.com>
* config/s390/s390.md: Added agen condition to operand
forwarding bypasses.
Added bypass for early address generation use of int results.
Updated comments.
From-SVN: r153006
2009-10-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41706
* resolve.c (resolve_arg_exprs): New function.
(resolve_class_compcall): Call the above.
(resolve_class_typebound_call): The same.
2009-10-20 Paul Thomas <pault@gcc.gnu.org>
PR fortran/41706
* gfortran.dg/class_9 : New test.
From-SVN: r153004
2009-10-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/41586
* parse.c (parse_derived): Correctly set 'alloc_comp' and 'pointer_comp'
for CLASS variables.
* trans-array.c (structure_alloc_comps): Handle deallocation and
nullification of allocatable scalar components.
* trans-decl.c (gfc_get_symbol_decl): Remember allocatable scalars for
automatic deallocation.
(gfc_trans_deferred_vars): Automatically deallocate allocatable scalars.
2009-10-19 Janus Weil <janus@gcc.gnu.org>
PR fortran/41586
* gfortran.dg/auto_dealloc_1.f90: New test case.
From-SVN: r152988
* gimple-low.c (struct lower_data): Add cannot_fallthru field.
(lower_stmt) <GIMPLE_BIND>: Add comment.
<GIMPLE_COND, GIMPLE_GOTO, GIMPLE_SWITCH>: Set cannot_fallthru to true
and return.
<GIMPLE_RETURN>: Remove the statement if cannot_fallthru is set.
Otherwise lower it and set cannot_fallthru to true.
<GIMPLE_TRY>: Update cannot_fallthru for GIMPLE_TRY_FINALLY and return.
<GIMPLE_CATCH, GIMPLE_EH_FILTER>; Set cannot_fallthru to false.
<GIMPLE_CALL>: Set cannot_fallthru to false for BUILT_IN_SETJMP and
to true for a noreturn call. Do not remove statements.
<GIMPLE_OMP_PARALLEL, GIMPLE_OMP_TASK>: Set cannot_fallthru to false.
Set cannot_fallthru to false on function exit.
(gimple_stmt_may_fallthru) <GIMPLE_SWITCH>: Really return false.
<GIMPLE_ASSIGN>: Remove.
From-SVN: r152984
2009-10-19 Andreas Krebbel <Andreas.Krebbel@de.ibm.com>
* config/s390/s390.c (s390_z10_optimize_cmp): Use
next/prev_active_insn to skip DEBUG_INSNs as well.
From-SVN: r152978
* config/arm/arm.c (output_move_neon): Use DImode in call to
adjust_address.
testsuite:
* gcc.target/arm/neon-thumb2-move.c: New test.
From-SVN: r152977
2009-10-18 Richard Guenther <rguenther@suse.de>
PR fortran/41494
* trans-expr.c (gfc_trans_scalar_assign): Do not call
gfc_evaluate_now.
From-SVN: r152973
* tree-nested.c (convert_nonlocal_reference_stmt) <GIMPLE_COND>: New
case. Force using values to replace references within the statement.
(convert_local_reference_stmt): Likewise.
From-SVN: r152960
2009-10-17 Andy Hutchinson <hutchinsonandy@aim.com>
* config/avr.md (*movqi): Add zero as equally preferable constraint as general register.
(*movhi): Ditto.
From-SVN: r152958
2009-10-17 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/41608
* decl.c (gfc_match_data_decl): Add BT_CLASS for undefined type
and empty type errors.
* parse.c (gfc_build_block_ns): Only set recursive if parent ns
has a proc_name.
PR fortran/41629
PR fortran/41618
PR fortran/41587
* gfortran.h : Add class_ok bitfield to symbol_attr.
* decl.c (build_sym): Set attr.class_ok if dummy, pointer or
allocatable.
(build_struct): Use gfc_try 't' to carry errors past the call
to encapsulate_class_symbol.
(attr_decl1): For a CLASS object, apply the new attribute to
the data component.
* match.c (gfc_match_select_type): Set attr.class_ok for an
assigned selector.
* resolve.c (resolve_fl_variable_derived): Check a CLASS object
is dummy, pointer or allocatable by testing the class_ok and
the use_assoc attribute.
2009-10-17 Janus Weil <janus@gcc.gnu.org>
Paul Thomas <pault@gcc.gnu.org>
PR fortran/41629
* gfortran.dg/class_6.f90: New test.
PR fortran/41608
PR fortran/41587
* gfortran.dg/class_7.f90: New test.
PR fortran/41618
* gfortran.dg/class_8.f90: New test.
Co-Authored-By: Paul Thomas <pault@gcc.gnu.org>
From-SVN: r152955