OSDN Git Service

PR middle-end/49029
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 81f3210..1b91045 100644 (file)
@@ -1,3 +1,447 @@
+2011-05-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/49029
+       * expmed.c (extract_fixed_bit_field): Test whether target can be used
+       only after deciding which mode to use.
+
+2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.md (setjmp): Handle PIC mode and use the hard
+       frame pointer.
+
+2011-05-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * config/sparc/sparc.c (eligible_for_return_delay): Do not return
+       false if there are call-saved registers here...
+       (sparc_can_use_return_insn_p): ...but here instead.
+       (save_or_restore_regs): Fix thinko.
+       (sparc_expand_prologue): Use current_function_is_leaf.
+       (sparc_frame_pointer_required): Likewise.
+
+2011-05-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR bootstrap/49086
+       * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return NULL
+       for PHI args that are SSA_NAME_IS_DEFAULT_DEF.
+
+2011-05-20  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/49079
+       * tree-dfa.c (get_ref_base_and_extent): Handle view-converting
+       MEM_REFs correctly for the trailing array access detection.
+       Special case constants the same way as decls for overall size
+       constraining.
+
+2011-05-20  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/49073
+       * gimple-fold.c (and_comparisons_1, or_comparisons_1): Return
+       NULL if PHI argument is SSA_NAME, whose def_stmt is dominated
+       by the PHI.
+       * tree-ssa-ifcombine.c (tree_ssa_ifcombine): Calculate dominators.
+
+2011-05-19  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.c (option_override_internal): Enable TARGET_CMOVE
+       when TARGET_RDRND is active.
+       (ix86_expand_builtin) <case IX86_BUILTIN_RDRAND{16,32,64}_STEP>:
+       Generate dummy SImode target register when target is NULL.
+
+2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       Backport from mainline
+       2011-05-18  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/49002
+       * config/i386/sse.md (avx_<avxmodesuffixp><avxmodesuffix>_<avxmodesuffixp>):
+       Properly handle load cast.
+
+2011-05-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/49039
+       * tree-vrp.c (extract_range_from_binary_expr): For
+       MIN_EXPR <~[a, b], ~[c, d]> and MAX_EXPR <~[a, b], ~[c, d]>
+       return ~[MAX_EXPR <a, c>, MIN_EXPR <b, d>].
+
+2011-05-18  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/49018
+       * gimple.c (gimple_has_side_effects): Volatile asms have side-effects.
+       * tree-ssa-ifcombine.c (bb_no_side_effects_p): Use
+       gimple_has_side_effects.
+
+2011-05-18  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2011-04-19  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48207
+       * tree.c (free_lang_data): Do not reset the decl-assembler-name
+       langhook.
+
+       2011-04-21  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48703
+       * tree.c (free_lang_data_in_decl): Do not zero TREE_TYPE of
+       DECL_NAME.
+
+2011-05-18  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2011-05-12  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48172
+       * tree-vect-loop-manip.c (vect_vfa_segment_size): Do not exclude
+       the number of iterations from the segment size calculation.
+       (vect_create_cond_for_alias_checks): Adjust.
+
+       2011-05-13  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48172
+       * tree-vect-loop-manip.c (vect_vfa_segment_size): Avoid
+       multiplying by number of iterations for equal step.
+       (vect_create_cond_for_alias_checks): Likewise.
+
+2011-05-18  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/49000
+       * tree-ssa.c (execute_update_addresses_taken): Call
+       maybe_rewrite_mem_ref_base on debug stmt value.  If it couldn't
+       be rewritten and decl has been marked for renaming, reset
+       the debug stmt.
+
+2011-05-17  Nick Clifton  <nickc@redhat.com>
+
+       Import these patches from the mainline:
+
+       2011-05-17  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.c (rx_memory_move_cost): Include cost of register
+       moves.
+
+       * config/rx/rx.md: Add peephole to remove redundant extensions
+       after loads.
+       (bitset_in_memory): Use rx_restricted_mem_operand.
+       (bitinvert_in_memory): Likewise.
+       (bitclr_in_memory): Likewise.
+
+       2011-05-17  Kazuhio Inaoka  <kazuhiro.inaoka.ud@renesas.com>
+           Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.md: Add peepholes to match a register move followed
+       by a comparison of the moved register.  Replace these with an
+       addition of zero that does both actions in one instruction.
+
+2011-05-17  Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/48986
+       * config/i386/sync.md (sync_old_add<mode>): Relax operand 2
+       predicate to allow CONST_INT.
+
+2011-05-16  Joseph Myers  <joseph@codesourcery.com>
+
+       PR preprocessor/48677
+       * cppspec.c (lang_specific_driver): Set new_decoded_options[0]
+       from decoded_options[0], not from itself.
+
+2011-05-16  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movxf_internal): Disable CONST_DOUBLE
+       optimization for CM_MEDIUM and CM_LARGE code models.  Fix usage
+       of standard_80387_constant_p.
+       (*movxf_internal_nointeger): Ditto.
+       (*movdf_internal): Remove dead code-size optimization.
+       (*movdf_internal_rex64): Fix usage of standard_80387_constant_p.
+       (*movdf_internal_nointeger): Ditto.
+       (*movsf_internal): Ditto.
+       (floating point move splitters): Ditto.
+       * config/i386/constraints.md (G): Ditto.
+       * config/i386/i386.c (ix86_preferred_reload_class): Ditto.
+
+2011-05-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48975
+       * tree-if-conv.c (combine_blocks): Call free_bb_predicate
+       on all bbs here and free and clear ifc_bbs at the end.
+
+2011-05-12  Richard Guenther  <rguenther@suse.de>
+
+       Backport from mainline
+       2011-05-02  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48822
+       * tree-ssa-sccvn.c (set_ssa_val_to): Never go up the lattice.
+       (process_scc): Indicate which iteration we start.
+
+2011-05-12  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/48967
+       * var-tracking.c (use_narrower_mode_test) <case REG>: Return 1
+       if validate_subreg fails.
+
+2011-05-12  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.h (HAVE_PRE_DECREMENT): Fix typo.
+       * config/rx/rx.c (rx_is_legitimate_constant): Use gcc_unreachable
+       instead of abort.
+       (rx_align_for_label): Test label before extracting its number of
+       uses.
+       (rx_max_skip_for_label): Ignore debug insns.
+
+2011-05-11  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/48159
+       * tree-ssa.c (reset_debug_uses): New function.
+       * tree-flow.h (reset_debug_uses): New prototype.
+       * tree-data-ref.c (stmts_from_loop): Ignore debug stmts.
+       * tree-loop-distribution.c (generate_loops_for_partition): Call
+       reset_debug_uses on the stmts that will be removed.  Keep around
+       all debug stmts, don't count them as bits in partition bitmap.
+       (generate_builtin): Don't count debug stmts or labels as bits in
+       partition bitmap.
+
+2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       Backport from mainline
+       2011-05-10  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/48857, 48495
+       * config/rs6000/rs6000.h (VSX_SCALAR_MODE): Delete.
+       (VSX_MODE): Ditto.
+       (VSX_MOVE_MODE): Ditto.
+       (ALTIVEC_OR_VSX_VECTOR_MODE): New macro, combine all Altivec and
+       VSX vector types.  Add V2DImode.
+       (HARD_REGNO_CALLER_SAVE_MODE): Use it instead of
+       ALTIVEC_VECTOR_MODE and VSX_VECTOR_MODE calls.
+       (MODES_TIEABLE_P): Ditto.
+
+       * config/rs6000/rs6000.c (rs6000_emit_move): Use
+       ALTIVEC_OR_VSX_MODE instead of ALTIVEC_VECTOR_MODE and
+       VSX_VECTOR_MODE.
+       (init_cumulative_args): Ditto.
+       (rs6000_function_arg_boundary): Ditto.
+       (rs6000_function_arg_advance_1): Ditto.
+       (rs6000_function_arg): Ditto.
+       (rs6000_function_ok_for_sibcall): Ditto.
+       (emit_frame_save): Ditto.
+       (rs6000_function_value): Ditto.
+       (rs6000_libcall_value): Ditto.
+
+2011-05-10  Nick Clifton  <nickc@redhat.com>
+
+       * config/rx/rx.c (rx_memory_move_cost): Reduce the cost for
+       stores.
+
+2011-05-10  DJ Delorie  <dj@redhat.com>
+
+       * config/rx/rx.h (JUMP_ALIGN, LABEL_ALIGN, LOOP_ALIGN): Define.
+       (LABEL_ALIGN_AFTER_BARRIER): Pass label to rx_align_for_label
+       * config/rx/rx.c (rx_align_for_label): Add label and
+       uses_threshold parameters.  Do not align when the label is not
+       used enough.
+       * config/rx/rx-protos.h (rx_align_for_label): Update prototype.
+
+2011-05-10  Jakub Jelinek  <jakub@redhat.com>
+
+       Backported from mainline
+       2011-05-07  Zdenek Dvorak  <ook@ucw.cz>
+
+       PR tree-optimization/48837
+       * tree-tailcall.c (tree_optimize_tail_calls_1): Do not mark tailcalls
+       when accumulator transformation is performed.
+
+2011-05-10  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48611
+       PR tree-optimization/48794
+       * tree-eh.c (remove_unreachable_handlers): Don't remove regions
+       referenced from RESX or EH_DISPATCH arguments.
+
+2011-05-09  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.md (TD/TF mem to reg move splitter): Make the
+       temporary register to match Pmode.
+
+2011-05-09  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * var-tracking.c (find_mem_expr_in_1pdv): Fix thinko.
+       (dataflow_set_preserve_mem_locs): Likewise.
+
+2011-05-06  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movdf_internal_nointeger): Apply "*"
+       constraint modifier to "r".
+
+2011-05-06  Alan Modra  <amodra@gmail.com>
+
+       PR target/48900
+       * config/rs6000/rs6000.c (rs6000_legitimize_tls_address): Use
+       const0_rtx as the arg to the dummy __tls_get_addr libcall.
+
+2011-05-06  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
+
+       * config/s390/s390.c (s390_asm_trampoline_template): Comment
+       instruction sizes.
+       (s390_trampoline_init): Replace UNITS_PER_WORD with UNITS_PER_LONG.
+
+2011-05-06  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
+
+       PR target/48252
+       * config/arm/neon.md (neon_vtrn<mode>): Fix typo from earlier commit.
+
+2011-05-05  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       * config/rs6000/rs6000.c (rs6000_handle_option): Add missing break
+       for OPT_mfpu_ case.
+
+2011-05-05  Jason Merrill  <jason@redhat.com>
+
+       PR c++/40975
+       * tree-inline.c (copy_tree_r): Handle STATEMENT_LIST.
+
+2011-05-05  Julian Brown  <julian@codesourcery.com>
+
+       * config/arm/neon.md (vec_set<mode>_internal): Fix misplaced
+       parenthesis in D-register case.
+
+2011-05-05  Ira Rosen  <ira.rosen@linaro.org>
+
+       Backport from mainline:
+       2011-04-18  Ulrich Weigand  <ulrich.weigand@linaro.org>
+                   Ira Rosen  <ira.rosen@linaro.org>
+
+       PR target/48252
+       * config/arm/arm.c (neon_emit_pair_result_insn): Swap arguments
+       to match neon_vzip/vuzp/vtrn_internal.
+       * config/arm/neon.md (neon_vtrn<mode>_internal): Make both
+       outputs explicitly dependent on both inputs.
+       (neon_vzip<mode>_internal, neon_vuzp<mode>_internal): Likewise.
+
+2011-05-04  Uros Bizjak  <ubizjak@gmail.com>
+
+       * config/i386/i386.md (*movdi_internal_rex64) <TYPE_SSEMOV>:
+       Use %v prefix in insn mnemonic to handle TARGET_AVX.
+       (*movdi_internal): Use "maybe_vex" instead of "vex" in "prefix"
+       attribute calculation.
+       (*movdf_internal): Output AVX mnemonics.  Add "prefix" attribute.
+       * config/i386/sse.md (*sse2_storeq_rex64): Do not emit %v prefix
+       for mov{q} mnemonic.
+       (*vec_extractv2di_1_rex64_avx): Ditto.
+
+2011-05-03  Uros Bizjak  <ubizjak@gmail.com>
+           Jakub Jelinek  <jakub@redhat.com>
+
+       PR target/48774
+       * config/i386/i386.c (ix86_match_ccmode): For CC{A,C,O,S}mode
+       only succeed if req_mode is the same as set_mode.
+
+2011-05-03  Richard Guenther  <rguenther@suse.de>
+
+       PR lto/48846
+       * lto-streamer-in.c (unpack_ts_decl_common_value_fields):
+       Stream decl_common.off_align instead of the derived DECL_OFFSET_ALIGN.
+       * lto-streamer-out.c (pack_ts_decl_common_value_fields): Likewise.
+
+2011-05-03  Eric Botcazou  <ebotcazou@adacore.com>
+
+       PR target/48723
+       * config/i386/i386.c (ix86_expand_prologue): Do not probe the stack
+       for -fstack-check if the size to allocate is negative.
+
+2011-04-30  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48809
+       * tree-switch-conversion.c (build_arrays): Compute tidx in unsigned
+       type.
+       (gen_inbound_check): Don't compute index_expr - range_min in utype
+       again, instead reuse SSA_NAME initialized in build_arrays.
+       Remove two useless gsi_for_stmt calls.
+
+2011-04-28  Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       Backport from mainline
+       2011-04-01  Andrew Pinski  <pinskia@gmail.com>
+           Michael Meissner  <meissner@linux.vnet.ibm.com>
+
+       PR target/48262
+       * config/rs6000/vector.md (movmisalign<mode>): Allow for memory
+       operands, as per the specifications.
+
+       * config/rs6000/altivec.md (vec_extract_evenv4si): Correct modes.
+       (vec_extract_evenv4sf): Ditto.
+       (vec_extract_evenv8hi): Ditto.
+       (vec_extract_evenv16qi): Ditto.
+       (vec_extract_oddv4si): Ditto.
+
+2011-04-28  Jakub Jelinek  <jakub@redhat.com>
+
+       PR middle-end/48597
+       * final.c (final_scan_insn): Call dwarf2out_frame_debug even for
+       inline asm.
+
+2011-04-27  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/48742
+       * c-typeck.c (build_binary_op): Don't wrap arguments if
+       int_operands is true.
+
+2011-04-26  Jakub Jelinek  <jakub@redhat.com>
+
+       PR debug/48768
+       * tree-ssa.c (insert_debug_temp_for_var_def): If degenerate_phi_result
+       is error_mark_node, set value to NULL.
+
+       PR tree-optimization/48734
+       * tree-ssa-reassoc.c (eliminate_redundant_comparison): Give up
+       if return value from maybe_fold_*_comparsions isn't something
+       the code is prepared to handle.
+
+2011-04-26  Richard Guenther  <rguenther@suse.de>
+
+       PR tree-optimization/48731
+       * ipa-inline.c (cgraph_flatten): Test if function is inlinable.
+
+2011-04-24  Paolo Carlini  <paolo.carlini@oracle.com>
+
+       PR other/48748
+       * doc/extend.texi (Type Traits): Document __is_standard_layout,
+       __is_literal_type, and __is_trivial; update throughout about
+       possibly cv-qualified void types.
+
+2011-04-23  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/48685
+       * fold-const.c (fold_convert_loc): Add NOP_EXPR when casting
+       to VOID_TYPE even around MODIFY_EXPR.
+
+2011-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR tree-optimization/48717
+       * tree-ssa-forwprop.c (associate_plusminus): For A + ~A and
+       ~A + A optimizations use build_int_cst_type instead of build_int_cst.
+
+2011-04-22  Jakub Jelinek  <jakub@redhat.com>
+
+       PR c/48716
+       * gimplify.c (gimplify_bind_expr): Mark as GOVD_LOCAL also
+       TREE_STATIC variables declared inside of some OpenMP construct.
+
+2011-04-21  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/48708
+       * config/i386/i386.c (ix86_expand_vector_set) <V2DImode>: Generate
+       vec_extract and vec_concat for non-SSE4_1 targets.
+
+2011-04-21  Richard Guenther  <rguenther@suse.de>
+
+       PR middle-end/48695
+       * tree-ssa-alias.c (aliasing_component_refs_p): Compute base
+       objects and types here.  Adjust for their offset before comparing.
+
+2011-04-21  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * gimple.c (walk_gimple_op) <GIMPLE_CALL>: Fix couple of oversights.
+
 2011-04-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
 
        PR target/48288
 2011-04-13  Jakub Jelinek  <jakub@redhat.com>
 
        PR middle-end/48591
-       * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is
-       NULL.
+       * omp-low.c (expand_omp_atomic_fetch_op): Return false if decl is NULL.
        (expand_omp_atomic_pipeline): Return false if cmpxchg is NULL.
 
 2011-04-13  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
 2011-04-08  Steven G. Kargl  <kargl@gcc.gnu.org>
 
        PR target/47829
-       gcc/config.gcc: disable unwind table generation for crtbegin/crtend
+       config.gcc: disable unwind table generation for crtbegin/crtend
        on i386-*-freebsd.
 
 2011-04-08  Jakub Jelinek  <jakub@redhat.com>
 
        PR tree-optimization/48377
-       * tree-vect-data-refs.c (vector_alignment_reachable_p): Set
-       is_packed to true even for types with smaller TYPE_ALIGN than
-       TYPE_SIZE.
+       * tree-vect-data-refs.c (vector_alignment_reachable_p): Set is_packed
+       to true even for types with smaller TYPE_ALIGN than TYPE_SIZE.
 
 2011-04-07  Uros Bizjak  <ubizjak@gmail.com>
 
 
 2011-03-08  Georg-Johann Lay  <avr@gjlay.de>
 
-       * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
-       * config/avr/avr.c (TARGET_REGISTER_MOVE_COST,
-       TARGET_MEMORY_MOVE_COST): Define.
-       (avr_register_move_cost, avr_memory_move_cost): New Functions.
+       * config/avr/avr.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST): Remove.
+       * config/avr/avr.c (TARGET_REGISTER_MOVE_COST)
+       (TARGET_MEMORY_MOVE_COST): Define.
+       (avr_register_move_cost, avr_memory_move_cost): New Functions.
 
 2011-03-08  Jakub Jelinek  <jakub@redhat.com>