+2011-11-11 Uros Bizjak <ubizjak@gmail.com>
+
+ PR target/50762
+ * config/i386/constraints.md (j): New address constraint.
+ * config/i386/predicates.md (lea_address_operand): Redefine as
+ special predicate.
+ * config/i386/i386.md (*lea_3_zext): Use "j" constraint for operand 1.
+ (*lea_4_zext): Ditto.
+
2011-11-11 David S. Miller <davem@davemloft.net>
Revert
* tree-sra.c (build_accesses_from_assign): Ignore clobbers.
* tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Clobbers of
SSA names aren't necessary.
- (propagate_necessity): Accept and ignore constructors on the rhs,
- tidy.
+ (propagate_necessity): Accept and ignore constructors on the rhs, tidy.
* gimple.c (walk_gimple_op): Accept constructors like mem_rhs.
* tree-ssa-structalias.c (find_func_aliases): Clobbers don't store
any known value.
* trans-mem.c: New file.
* trans-mem.h: New file.
- * opts.c (finish_options): Error out when using -flto and
- -fgnu-tm.
+ * opts.c (finish_options): Error out when using -flto and -fgnu-tm.
* config/i386/i386.c: Define TARGET_VECTORIZE* transactional variants.
(ix86_handle_tm_regparm_attribute, struct bdesc_tm,
2011-11-07 H.J. Lu <hongjiu.lu@intel.com>
* dwarf2cfi.c (dwarf2out_frame_debug_expr): Check
- HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx
- in Rule 18.
+ HARD_FRAME_POINTER_REGNUM instead of hard_frame_pointer_rtx in Rule 18.
2011-11-07 Jakub Jelinek <jakub@redhat.com>
* tree-data-ref.h (initialize_data_dependence_relation,
compute_self_dependence): New prototypes.
* tree-vect-data-refs.c (vect_check_gather): New function.
- (vect_analyze_data_refs): Detect possible gather load data
- refs.
+ (vect_analyze_data_refs): Detect possible gather load data refs.
* tree-vectorizer.h (struct _stmt_vec_info): Add gather_p field.
(STMT_VINFO_GATHER_P): Define.
(vect_check_gather): New prototype.
(avx2_gathersi<mode>, *avx2_gathersi<mode>): Use <VEC_GATHER_IDXSI>
instead of <VEC_GATHER_MODE>.
(avx2_gatherdi<mode>): Use <VEC_GATHER_IDXDI> instead of
- <<AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
+ <AVXMODE48P_DI> and <VEC_GATHER_SRCDI> instead of VEC_GATHER_MODE
on src and mask operands.
(*avx2_gatherdi<mode>): Likewise. Use VEC_GATHER_MODE iterator
instead of AVXMODE48P_DI.
2011-11-07 Uros Bizjak <ubizjak@gmail.com>
- * config/i386/f16cintrin: Remove extra _X86INTRIN_H_INCLUDED check.
+ * config/i386/f16cintrin.h: Remove extra _X86INTRIN_H_INCLUDED check.
2011-11-07 Tristan Gingold <gingold@adacore.com>
2011-11-6 Richard Guenther <rguenther@suse.de>
- * ipa-prop.c (ipa_modify_call_arguments): Re-compute
- inlinable flag.
+ * ipa-prop.c (ipa_modify_call_arguments): Re-compute inlinable flag.
2011-11-06 Ira Rosen <ira.rosen@linaro.org>
;;; Unused letters:
;;; B H T W
-;;; h jk v
+;;; h k v
;; Integer register constraints.
;; It is not necessary to define 'r' here.
(and (not (match_test "TARGET_X32"))
(match_operand 0 "memory_operand")))
+(define_address_constraint "j"
+ "@internal Address operand that can be zero extended in LEA instruction."
+ (and (not (match_code "const_int"))
+ (match_operand 0 "address_operand")))
+
;; Integer constant constraints.
(define_constraint "I"
"Integer constant in the range 0 @dots{} 31, for 32-bit shifts."
(define_insn "*lea_3_zext"
[(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI
- (subreg:SI (match_operand:DI 1 "lea_address_operand" "p") 0)))]
+ (subreg:SI (match_operand:DI 1 "lea_address_operand" "j") 0)))]
"TARGET_64BIT"
"lea{l}\t{%a1, %k0|%k0, %a1}"
[(set_attr "type" "lea")
(define_insn "*lea_4_zext"
[(set (match_operand:DI 0 "register_operand" "=r")
(zero_extend:DI
- (match_operand:SI 1 "lea_address_operand" "p")))]
+ (match_operand:SI 1 "lea_address_operand" "j")))]
"TARGET_64BIT"
"lea{l}\t{%a1, %k0|%k0, %a1}"
[(set_attr "type" "lea")