i386.c (ix86_expand_special_args_builtin): Use ix86_zero_extend_to_Pmode where appropriate.

* config/i386/i386.c (ix86_expand_special_args_builtin): Use
	ix86_zero_extend_to_Pmode where appropriate.
	(ix86_expand_builtin): Ditto.

From-SVN: r205236
This commit is contained in:
Uros Bizjak 2013-11-22 00:36:31 +01:00
parent 51b83fdd47
commit 8c55ffeb2a
2 changed files with 21 additions and 18 deletions

View File

@ -1,3 +1,9 @@
2013-11-21 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.c (ix86_expand_special_args_builtin): Use
ix86_zero_extend_to_Pmode where appropriate.
(ix86_expand_builtin): Ditto.
2013-11-21 Cary Coutant <ccoutant@google.com> 2013-11-21 Cary Coutant <ccoutant@google.com>
* dwarf2out.c (want_pubnames): Don't do pubnames for -g1. * dwarf2out.c (want_pubnames): Don't do pubnames for -g1.
@ -96,8 +102,7 @@
2013-11-21 Richard Biener <rguenther@suse.de> 2013-11-21 Richard Biener <rguenther@suse.de>
PR tree-optimization/59058 PR tree-optimization/59058
* tree-loop-distribution.c (struct partition_s): Add plus_one * tree-loop-distribution.c (struct partition_s): Add plus_one member.
member.
(build_size_arg_loc): Apply niter adjustment here. (build_size_arg_loc): Apply niter adjustment here.
(generate_memset_builtin): Adjust. (generate_memset_builtin): Adjust.
(generate_memcpy_builtin): Likewise. (generate_memcpy_builtin): Likewise.
@ -145,13 +150,13 @@
2013-11-20 Andrew MacLeod <amacleod@redhat.com> 2013-11-20 Andrew MacLeod <amacleod@redhat.com>
* gimplify.h (gimplify_hasher : typed_free_remove, struct gimplify_ctx): * gimplify.h (gimplify_hasher:typed_free_remove, struct gimplify_ctx):
Move to gimplify.c. Move to gimplify.c.
(free_gimplify_stack): Add prototype. (free_gimplify_stack): Add prototype.
* gimplify.c (gimplify_hasher:typed_free_remove): Relocate here. * gimplify.c (gimplify_hasher:typed_free_remove): Relocate here.
(struct gimplify_ctx): Relocate here. (struct gimplify_ctx): Relocate here.
(gimplify_ctxp): Make static. (gimplify_ctxp): Make static.
(ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New. Manage a (ctx_pool, ctx_alloc, ctx_free, free_gimplify_stack): New. Manage a
list of struct gimplify_ctx. list of struct gimplify_ctx.
(push_gimplify_context): Add default parameters and allocate a struct (push_gimplify_context): Add default parameters and allocate a struct
from the pool. from the pool.
@ -184,8 +189,7 @@
new pseudos. new pseudos.
(lra_create_new_reg_with_unique_value): Pass new argument value. (lra_create_new_reg_with_unique_value): Pass new argument value.
(lra_emit_add, lra_emit_move): Ditto. (lra_emit_add, lra_emit_move): Ditto.
* lra-constraints.c (in_class_p): Add check for move for a new * lra-constraints.c (in_class_p): Add check for move for a new insn.
insn.
(change_class): Rename to lra_change_class. Move to lra-int.h. (change_class): Rename to lra_change_class. Move to lra-int.h.
(get_reload_reg, narrow_reload_pseudo_class): Adjust calls of (get_reload_reg, narrow_reload_pseudo_class): Adjust calls of
change_class. change_class.
@ -279,7 +283,8 @@
2013-11-20 Jan Hubicka <jh@suse.cz> 2013-11-20 Jan Hubicka <jh@suse.cz>
* opts.c (finish_options): Imply -ffat-lto-objects with -fno-use-linker-plugin. * opts.c (finish_options): Imply -ffat-lto-objects with
-fno-use-linker-plugin.
* common.opt (fuse-linker-plugin): Add var. * common.opt (fuse-linker-plugin): Add var.
2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com> 2013-11-20 Ilya Enkovich <ilya.enkovich@intel.com>
@ -373,8 +378,7 @@
Remove inline and related attributes. Remove inline and related attributes.
(__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort) (__TM_nesting_depth, __TM_is_user_abort, __TM_is_named_user_abort)
(__TM_is_illegal, __TM_is_footprint_exceeded) (__TM_is_illegal, __TM_is_footprint_exceeded)
(__TM_is_nested_too_deep, __TM_is_conflict): Fix format value (__TM_is_nested_too_deep, __TM_is_conflict): Fix format value check.
check.
2013-11-20 Richard Biener <rguenther@suse.de> 2013-11-20 Richard Biener <rguenther@suse.de>
@ -394,8 +398,7 @@
* gcc/config/aarch64/aarch64-builtins.c * gcc/config/aarch64/aarch64-builtins.c
(aarch64_simd_itype): Remove. (aarch64_simd_itype): Remove.
(aarch64_simd_builtin_datum): Remove itype, add (aarch64_simd_builtin_datum): Remove itype, add qualifiers pointer.
qualifiers pointer.
(VAR1): Use qualifiers. (VAR1): Use qualifiers.
(aarch64_build_scalar_type): New. (aarch64_build_scalar_type): New.
(aarch64_build_vector_type): Likewise. (aarch64_build_vector_type): Likewise.

View File

@ -32577,7 +32577,7 @@ ix86_expand_special_args_builtin (const struct builtin_description *d,
gcc_assert (target == 0); gcc_assert (target == 0);
if (memory) if (memory)
{ {
op = force_reg (Pmode, convert_to_mode (Pmode, op, 1)); op = ix86_zero_extend_to_Pmode (op);
target = gen_rtx_MEM (tmode, op); target = gen_rtx_MEM (tmode, op);
} }
else else
@ -32622,7 +32622,7 @@ ix86_expand_special_args_builtin (const struct builtin_description *d,
if (i == memory) if (i == memory)
{ {
/* This must be the memory operand. */ /* This must be the memory operand. */
op = force_reg (Pmode, convert_to_mode (Pmode, op, 1)); op = ix86_zero_extend_to_Pmode (op);
op = gen_rtx_MEM (mode, op); op = gen_rtx_MEM (mode, op);
gcc_assert (GET_MODE (op) == mode gcc_assert (GET_MODE (op) == mode
|| GET_MODE (op) == VOIDmode); || GET_MODE (op) == VOIDmode);
@ -32870,7 +32870,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
mode1 = insn_data[icode].operand[1].mode; mode1 = insn_data[icode].operand[1].mode;
mode2 = insn_data[icode].operand[2].mode; mode2 = insn_data[icode].operand[2].mode;
op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1)); op0 = ix86_zero_extend_to_Pmode (op0);
op0 = gen_rtx_MEM (mode1, op0); op0 = gen_rtx_MEM (mode1, op0);
if (!insn_data[icode].operand[0].predicate (op0, mode0)) if (!insn_data[icode].operand[0].predicate (op0, mode0))
@ -32902,7 +32902,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
op0 = expand_normal (arg0); op0 = expand_normal (arg0);
icode = CODE_FOR_sse2_clflush; icode = CODE_FOR_sse2_clflush;
if (!insn_data[icode].operand[0].predicate (op0, Pmode)) if (!insn_data[icode].operand[0].predicate (op0, Pmode))
op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1)); op0 = ix86_zero_extend_to_Pmode (op0);
emit_insn (gen_sse2_clflush (op0)); emit_insn (gen_sse2_clflush (op0));
return 0; return 0;
@ -32915,7 +32915,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
op1 = expand_normal (arg1); op1 = expand_normal (arg1);
op2 = expand_normal (arg2); op2 = expand_normal (arg2);
if (!REG_P (op0)) if (!REG_P (op0))
op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1)); op0 = ix86_zero_extend_to_Pmode (op0);
if (!REG_P (op1)) if (!REG_P (op1))
op1 = copy_to_mode_reg (SImode, op1); op1 = copy_to_mode_reg (SImode, op1);
if (!REG_P (op2)) if (!REG_P (op2))
@ -33172,7 +33172,7 @@ ix86_expand_builtin (tree exp, rtx target, rtx subtarget,
op0 = expand_normal (arg0); op0 = expand_normal (arg0);
icode = CODE_FOR_lwp_llwpcb; icode = CODE_FOR_lwp_llwpcb;
if (!insn_data[icode].operand[0].predicate (op0, Pmode)) if (!insn_data[icode].operand[0].predicate (op0, Pmode))
op0 = force_reg (Pmode, convert_to_mode (Pmode, op0, 1)); op0 = ix86_zero_extend_to_Pmode (op0);
emit_insn (gen_lwp_llwpcb (op0)); emit_insn (gen_lwp_llwpcb (op0));
return 0; return 0;
@ -33468,7 +33468,7 @@ addcarryx:
/* Force memory operand only with base register here. But we /* Force memory operand only with base register here. But we
don't want to do it on memory operand for other builtin don't want to do it on memory operand for other builtin
functions. */ functions. */
op1 = force_reg (Pmode, convert_to_mode (Pmode, op1, 1)); op1 = ix86_zero_extend_to_Pmode (op1);
if (!insn_data[icode].operand[1].predicate (op0, mode0)) if (!insn_data[icode].operand[1].predicate (op0, mode0))
op0 = copy_to_mode_reg (mode0, op0); op0 = copy_to_mode_reg (mode0, op0);