This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: MEM tracking, round 3
- To: kenner at vlsi1 dot ultra dot nyu dot edu
- Subject: Re: MEM tracking, round 3
- From: Jan van Male <jan dot vanmale at fenk dot wau dot nl>
- Date: Wed, 4 Jul 2001 14:35:51 +0200
- Cc: gcc-patches at gcc dot gnu dot org
- Reply-To: jan dot vanmale at fenk dot wau dot nl
On i686-pc-linux-gnu the following warning regression is caused by your patch
../../gcc/gcc/config/i386/i386.c: In function `ix86_expand_builtin':
../../gcc/gcc/config/i386/i386.c:9877: warning: `op0' might be used uninitialized in this function
I think this part of your patch contains a typo:
*************** ix86_expand_builtin (exp, target, subtar
*** 10198,10213 ****
case IX86_BUILTIN_SETPS:
target = assign_386_stack_local (V4SFmode, 0);
- op0 = adjust_address (target, SFmode, 0);
arg0 = TREE_VALUE (arglist);
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
! emit_move_insn (op0,
expand_expr (arg0, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adj_offsettable_operand (op0, 4),
expand_expr (arg1, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adj_offsettable_operand (op0, 8),
expand_expr (arg2, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adj_offsettable_operand (op0, 12),
expand_expr (arg3, NULL_RTX, VOIDmode, 0));
op0 = gen_reg_rtx (V4SFmode);
--- 10190,10204 ----
case IX86_BUILTIN_SETPS:
target = assign_386_stack_local (V4SFmode, 0);
arg0 = TREE_VALUE (arglist);
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
! emit_move_insn (adjust_address (op0, SFmode, 0),
expand_expr (arg0, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (op0, SFmode, 4),
expand_expr (arg1, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (op0, SFmode, 8),
expand_expr (arg2, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (op0, SFmode, 12),
expand_expr (arg3, NULL_RTX, VOIDmode, 0));
op0 = gen_reg_rtx (V4SFmode);
When you apply the following on top of the current sources, things should be ok
again.
Thanks,
jan
*** /loc_home/vanmale/cvsorg/gcc/gcc/config/i386/i386.c Tue Jul 3 21:44:09 2001
--- i386.c Wed Jul 4 14:24:36 2001
*************** ix86_expand_builtin (exp, target, subtar
*** 10193,10205 ****
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
! emit_move_insn (adjust_address (op0, SFmode, 0),
expand_expr (arg0, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (op0, SFmode, 4),
expand_expr (arg1, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (op0, SFmode, 8),
expand_expr (arg2, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (op0, SFmode, 12),
expand_expr (arg3, NULL_RTX, VOIDmode, 0));
op0 = gen_reg_rtx (V4SFmode);
emit_insn (gen_sse_movaps (op0, target));
--- 10193,10205 ----
arg1 = TREE_VALUE (TREE_CHAIN (arglist));
arg2 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (arglist)));
arg3 = TREE_VALUE (TREE_CHAIN (TREE_CHAIN (TREE_CHAIN (arglist))));
! emit_move_insn (adjust_address (target, SFmode, 0),
expand_expr (arg0, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (target, SFmode, 4),
expand_expr (arg1, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (target, SFmode, 8),
expand_expr (arg2, NULL_RTX, VOIDmode, 0));
! emit_move_insn (adjust_address (target, SFmode, 12),
expand_expr (arg3, NULL_RTX, VOIDmode, 0));
op0 = gen_reg_rtx (V4SFmode);
emit_insn (gen_sse_movaps (op0, target));