public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Mark variables addressable if they are copied using libcall in RTL expander
@ 2011-06-21  2:15 Easwaran Raman
  2011-06-21  9:02 ` Richard Guenther
  0 siblings, 1 reply; 14+ messages in thread
From: Easwaran Raman @ 2011-06-21  2:15 UTC (permalink / raw)
  To: gcc-patches; +Cc: Richard Guenther

This fixes bugs introduced by r175063. OK for trunk if there are no
test regressions?

-Easwaran


2011-06-20  Easwaran Raman  <eraman@google.com>

        PR rtl-optimization/49429
        * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
        MEM_EXPR(y) addressable if emit_block_move_via_libcall is
        used to copy y into x.

Index: gcc/expr.c
===================================================================
--- gcc/expr.c  (revision 175081)
+++ gcc/expr.c  (working copy)
@@ -1181,8 +1181,19 @@ emit_block_move_hints (rtx x, rtx y, rtx size, enu
   else if (may_use_call
           && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
           && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
-    retval = emit_block_move_via_libcall (x, y, size,
-                                         method == BLOCK_OP_TAILCALL);
+    {
+      /* Since x and y are passed to a libcall, mark the corresponding
+         tree EXPR as addressable.  */
+      tree y_expr = MEM_EXPR (y);
+      tree x_expr = MEM_EXPR (x);
+      if (y_expr)
+        mark_addressable (y_expr);
+      if (x_expr)
+        mark_addressable (x_expr);
+      retval = emit_block_move_via_libcall (x, y, size,
+                                           method == BLOCK_OP_TAILCALL);
+    }
+
   else
     emit_block_move_via_loop (x, y, size, align);

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-21  2:15 Mark variables addressable if they are copied using libcall in RTL expander Easwaran Raman
@ 2011-06-21  9:02 ` Richard Guenther
  2011-06-22 13:15   ` Eric Botcazou
  2011-06-22 14:26   ` Eric Botcazou
  0 siblings, 2 replies; 14+ messages in thread
From: Richard Guenther @ 2011-06-21  9:02 UTC (permalink / raw)
  To: Easwaran Raman; +Cc: gcc-patches, Eric Botcazou

On Tue, Jun 21, 2011 at 3:38 AM, Easwaran Raman <eraman@google.com> wrote:
> This fixes bugs introduced by r175063. OK for trunk if there are no
> test regressions?

I fear this isn't enough considering pass-by-value aggregates that
are callee copied.  And I guess there are other cases.  Eric, what
do you suggest here?

Thanks,
Richard.

> -Easwaran
>
>
> 2011-06-20  Easwaran Raman  <eraman@google.com>
>
>        PR rtl-optimization/49429
>        * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
>        MEM_EXPR(y) addressable if emit_block_move_via_libcall is
>        used to copy y into x.
>
> Index: gcc/expr.c
> ===================================================================
> --- gcc/expr.c  (revision 175081)
> +++ gcc/expr.c  (working copy)
> @@ -1181,8 +1181,19 @@ emit_block_move_hints (rtx x, rtx y, rtx size, enu
>   else if (may_use_call
>           && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
>           && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
> -    retval = emit_block_move_via_libcall (x, y, size,
> -                                         method == BLOCK_OP_TAILCALL);
> +    {
> +      /* Since x and y are passed to a libcall, mark the corresponding
> +         tree EXPR as addressable.  */
> +      tree y_expr = MEM_EXPR (y);
> +      tree x_expr = MEM_EXPR (x);
> +      if (y_expr)
> +        mark_addressable (y_expr);
> +      if (x_expr)
> +        mark_addressable (x_expr);
> +      retval = emit_block_move_via_libcall (x, y, size,
> +                                           method == BLOCK_OP_TAILCALL);
> +    }
> +
>   else
>     emit_block_move_via_loop (x, y, size, align);
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-21  9:02 ` Richard Guenther
@ 2011-06-22 13:15   ` Eric Botcazou
  2011-06-22 13:53     ` Jakub Jelinek
  2011-06-22 14:26   ` Eric Botcazou
  1 sibling, 1 reply; 14+ messages in thread
From: Eric Botcazou @ 2011-06-22 13:15 UTC (permalink / raw)
  To: Richard Guenther; +Cc: Easwaran Raman, gcc-patches

> I fear this isn't enough considering pass-by-value aggregates that
> are callee copied.  And I guess there are other cases.  Eric, what
> do you suggest here?

I agree that there are probably other cases, but this seems to be the best way 
out for now.  There is still similar code in the expander for asm operands 
(dominated by the same code in the gimplifier) so calling mark_addressable 
this late is presumably acceptable.

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-22 13:15   ` Eric Botcazou
@ 2011-06-22 13:53     ` Jakub Jelinek
  2011-06-22 13:54       ` Richard Guenther
  0 siblings, 1 reply; 14+ messages in thread
From: Jakub Jelinek @ 2011-06-22 13:53 UTC (permalink / raw)
  To: Eric Botcazou; +Cc: Richard Guenther, Easwaran Raman, gcc-patches

On Wed, Jun 22, 2011 at 03:08:21PM +0200, Eric Botcazou wrote:
> > I fear this isn't enough considering pass-by-value aggregates that
> > are callee copied.  And I guess there are other cases.  Eric, what
> > do you suggest here?
> 
> I agree that there are probably other cases, but this seems to be the best way 
> out for now.  There is still similar code in the expander for asm operands 
> (dominated by the same code in the gimplifier) so calling mark_addressable 
> this late is presumably acceptable.

Won't that cause problems later on during expansion of the same function?
The decl won't suddenly be a gimple reg anymore.  I mean, shouldn't the
marking be postponed until expansion finishes?

	Jakub

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-22 13:53     ` Jakub Jelinek
@ 2011-06-22 13:54       ` Richard Guenther
  0 siblings, 0 replies; 14+ messages in thread
From: Richard Guenther @ 2011-06-22 13:54 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: Eric Botcazou, Easwaran Raman, gcc-patches

On Wed, Jun 22, 2011 at 3:14 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Wed, Jun 22, 2011 at 03:08:21PM +0200, Eric Botcazou wrote:
>> > I fear this isn't enough considering pass-by-value aggregates that
>> > are callee copied.  And I guess there are other cases.  Eric, what
>> > do you suggest here?
>>
>> I agree that there are probably other cases, but this seems to be the best way
>> out for now.  There is still similar code in the expander for asm operands
>> (dominated by the same code in the gimplifier) so calling mark_addressable
>> this late is presumably acceptable.
>
> Won't that cause problems later on during expansion of the same function?
> The decl won't suddenly be a gimple reg anymore.  I mean, shouldn't the
> marking be postponed until expansion finishes?

It's not a register anyway as we've seen a MEM_EXPR with it.

Richard.

>        Jakub
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-21  9:02 ` Richard Guenther
  2011-06-22 13:15   ` Eric Botcazou
@ 2011-06-22 14:26   ` Eric Botcazou
  2011-06-22 19:39     ` Easwaran Raman
  1 sibling, 1 reply; 14+ messages in thread
From: Eric Botcazou @ 2011-06-22 14:26 UTC (permalink / raw)
  To: Richard Guenther; +Cc: Easwaran Raman, gcc-patches

> I fear this isn't enough considering pass-by-value aggregates that
> are callee copied.

It's indeed not sufficient for arguments passed by reference but callee-copied.

This is PR target/49454.  For gcc.c-torture/execute/20000717-1.c:

typedef struct trio { int a, b, c; } trio;

int
foo (trio t, int i)
{
  return bar (i, t);
}

yiedls in the .optimized dump:

foo (struct trio t, int i)
{
  int D.1968;
  struct trio t.0;

<bb 2>:
  t.0 = t;
  D.1968_2 = bar (i_1(D), t.0);
  return D.1968_2;
}

and the aggregate copy is elided by DSE because t.0 isn't may_be_aliased.  This 
seems to be a pre-existing bug though: its address is passed to bar in RTL.

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-22 14:26   ` Eric Botcazou
@ 2011-06-22 19:39     ` Easwaran Raman
  2011-06-23 10:00       ` Eric Botcazou
  0 siblings, 1 reply; 14+ messages in thread
From: Easwaran Raman @ 2011-06-22 19:39 UTC (permalink / raw)
  To: Eric Botcazou; +Cc: Richard Guenther, gcc-patches

On Wed, Jun 22, 2011 at 7:13 AM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> I fear this isn't enough considering pass-by-value aggregates that
>> are callee copied.
>
> It's indeed not sufficient for arguments passed by reference but callee-copied.
>
> This is PR target/49454.  For gcc.c-torture/execute/20000717-1.c:
>
> typedef struct trio { int a, b, c; } trio;
>
> int
> foo (trio t, int i)
> {
>  return bar (i, t);
> }
>
> yiedls in the .optimized dump:
>
> foo (struct trio t, int i)
> {
>  int D.1968;
>  struct trio t.0;
>
> <bb 2>:
>  t.0 = t;
>  D.1968_2 = bar (i_1(D), t.0);
>  return D.1968_2;
> }
>
> and the aggregate copy is elided by DSE because t.0 isn't may_be_aliased.  This
> seems to be a pre-existing bug though: its address is passed to bar in RTL.
>
> --
> Eric Botcazou
>

Is the following patch a reasonable fix for this case?  I assume I
should add similar code inside emit_library_call_value_1.

-Easwaran


--- gcc/calls.c	(revision 175081)
+++ gcc/calls.c	(working copy)
@@ -1073,6 +1073,8 @@ initialize_argument_information (int num_actuals A
 	  callee_copies
 	    = reference_callee_copied (args_so_far, TYPE_MODE (type),
 				       type, argpos < n_named_args);
+          if (callee_copies)
+            mark_addressable (args[i].tree_value);

 	  /* If we're compiling a thunk, pass through invisible references
 	     instead of making a copy.  */

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-22 19:39     ` Easwaran Raman
@ 2011-06-23 10:00       ` Eric Botcazou
  2011-06-23 10:32         ` Richard Guenther
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Botcazou @ 2011-06-23 10:00 UTC (permalink / raw)
  To: Easwaran Raman; +Cc: Richard Guenther, gcc-patches

> Is the following patch a reasonable fix for this case?

The lines should be moved to within the first branch of the subsequent "if". 
They aren't needed if the second branch is taken because, in this case, we're 
back to the usual caller-copied scheme where we pass the address of the copy.

> I assume I should add similar code inside emit_library_call_value_1.

Yes, we need the same treatment for 'val' in the MEM_P (val) && !must_copy case 
as the one applied in emit_block_move_hints.


But these problems show that there is a slight discrepancy between what dse.c 
really needs (is the address of the variable taken?) and what may_be_aliased 
answers (might the variable be indirectly modified?).  Another viewpoint is to 
say that there is a slight discrepancy between Tree and RTL level when it comes 
to the address-taken property.  Not clear what to do about it so I think that 
we should try this kludgy way and see how it fares.

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-23 10:00       ` Eric Botcazou
@ 2011-06-23 10:32         ` Richard Guenther
  2011-06-23 11:07           ` Eric Botcazou
  0 siblings, 1 reply; 14+ messages in thread
From: Richard Guenther @ 2011-06-23 10:32 UTC (permalink / raw)
  To: Eric Botcazou; +Cc: Easwaran Raman, gcc-patches

On Thu, Jun 23, 2011 at 10:00 AM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> Is the following patch a reasonable fix for this case?
>
> The lines should be moved to within the first branch of the subsequent "if".
> They aren't needed if the second branch is taken because, in this case, we're
> back to the usual caller-copied scheme where we pass the address of the copy.
>
>> I assume I should add similar code inside emit_library_call_value_1.
>
> Yes, we need the same treatment for 'val' in the MEM_P (val) && !must_copy case
> as the one applied in emit_block_move_hints.
>
>
> But these problems show that there is a slight discrepancy between what dse.c
> really needs (is the address of the variable taken?) and what may_be_aliased
> answers (might the variable be indirectly modified?).  Another viewpoint is to
> say that there is a slight discrepancy between Tree and RTL level when it comes
> to the address-taken property.  Not clear what to do about it so I think that
> we should try this kludgy way and see how it fares.

Yeah, I agree.  Unless we want to really do alias analysis on RTL (and not just
export what the tree level has in some way) let's go forward with this.

So, what's the patch(es) that need approval now?

Thanks,
Richard.

> --
> Eric Botcazou
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-23 10:32         ` Richard Guenther
@ 2011-06-23 11:07           ` Eric Botcazou
  2011-06-23 19:16             ` Easwaran Raman
  0 siblings, 1 reply; 14+ messages in thread
From: Eric Botcazou @ 2011-06-23 11:07 UTC (permalink / raw)
  To: Richard Guenther; +Cc: Easwaran Raman, gcc-patches

> So, what's the patch(es) that need approval now?

Original expr.c patch for PR rtl-optimization/49429 + adjusted and augmented 
calls.c patch for PR target/49454.  Everything is in this thread.

Easwaran, would you mind posting a consolidated patch?

-- 
Eric Botcazou

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-23 11:07           ` Eric Botcazou
@ 2011-06-23 19:16             ` Easwaran Raman
  2011-06-23 19:32               ` Jakub Jelinek
  0 siblings, 1 reply; 14+ messages in thread
From: Easwaran Raman @ 2011-06-23 19:16 UTC (permalink / raw)
  To: Eric Botcazou; +Cc: Richard Guenther, gcc-patches

On Thu, Jun 23, 2011 at 3:22 AM, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> So, what's the patch(es) that need approval now?
>
> Original expr.c patch for PR rtl-optimization/49429 + adjusted and augmented
> calls.c patch for PR target/49454.  Everything is in this thread.
>
> Easwaran, would you mind posting a consolidated patch?
>
> --
> Eric Botcazou
>
Here is the revised patch. Bootstraps and all tests pass on
x86_64-unknown-linux. OK for trunk?


2011-06-23  Easwaran Raman  <eraman@google.com>

       PR rtl-optimization/49429
       PR target/49454
       * expr.c (emit_block_move_hints):  Mark MEM_EXPR(x) and
       MEM_EXPR(y) addressable if emit_block_move_via_libcall is
       used to copy y into x.
       * calls.c (initialize_argument_information): Mark
       an argument addressable if it is passed by invisible reference.
       (emit_library_call_value_1): Mark  MEM_EXPR (val) addressable
       if it is passed by reference.

Index: gcc/expr.c
===================================================================
--- gcc/expr.c	(revision 175346)
+++ gcc/expr.c	(working copy)
@@ -1181,8 +1181,19 @@ emit_block_move_hints (rtx x, rtx y, rtx size, enu
   else if (may_use_call
 	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
 	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
-    retval = emit_block_move_via_libcall (x, y, size,
-					  method == BLOCK_OP_TAILCALL);
+    {
+      /* Since x and y are passed to a libcall, mark the corresponding
+         tree EXPR as addressable.  */
+      tree y_expr = MEM_EXPR (y);
+      tree x_expr = MEM_EXPR (x);
+      if (y_expr)
+        mark_addressable (y_expr);
+      if (x_expr)
+        mark_addressable (x_expr);
+      retval = emit_block_move_via_libcall (x, y, size,
+					    method == BLOCK_OP_TAILCALL);
+    }
+
   else
     emit_block_move_via_loop (x, y, size, align);

Index: gcc/calls.c
===================================================================
--- gcc/calls.c	(revision 175346)
+++ gcc/calls.c	(working copy)
@@ -1084,6 +1084,8 @@ initialize_argument_information (int num_actuals A
 		  && TREE_CODE (base) != SSA_NAME
 		  && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
 	    {
+              mark_addressable (args[i].tree_value);
+
 	      /* We can't use sibcalls if a callee-copied argument is
 		 stored in the current function's frame.  */
 	      if (!call_from_thunk_p && DECL_P (base) && !TREE_STATIC (base))
@@ -3524,7 +3526,12 @@ emit_library_call_value_1 (int retval, rtx orgfun,
 	    }

 	  if (MEM_P (val) && !must_copy)
-	    slot = val;
+            {
+              tree val_expr = MEM_EXPR (val);
+              if (val_expr)
+                mark_addressable (val_expr);
+	      slot = val;
+            }
 	  else
 	    {
 	      slot = assign_temp (lang_hooks.types.type_for_mode (mode, 0),

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-23 19:16             ` Easwaran Raman
@ 2011-06-23 19:32               ` Jakub Jelinek
  2011-06-23 21:56                 ` Easwaran Raman
  0 siblings, 1 reply; 14+ messages in thread
From: Jakub Jelinek @ 2011-06-23 19:32 UTC (permalink / raw)
  To: Easwaran Raman; +Cc: gcc-patches

On Thu, Jun 23, 2011 at 12:02:35PM -0700, Easwaran Raman wrote:
> +      if (y_expr)
> +        mark_addressable (y_expr);

Please watch formatting, a tab should be used instead of 8 spaces.

> +      if (x_expr)
> +        mark_addressable (x_expr);

Ditto.

> @@ -1084,6 +1084,8 @@ initialize_argument_information (int num_actuals A
>  		  && TREE_CODE (base) != SSA_NAME
>  		  && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
>  	    {
> +              mark_addressable (args[i].tree_value);
> +

Likewise, plus the line is indented too much, each level should be indented
by 2 chars.

	Jakub

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-23 19:32               ` Jakub Jelinek
@ 2011-06-23 21:56                 ` Easwaran Raman
  2011-06-24  9:00                   ` Richard Guenther
  0 siblings, 1 reply; 14+ messages in thread
From: Easwaran Raman @ 2011-06-23 21:56 UTC (permalink / raw)
  To: Jakub Jelinek; +Cc: gcc-patches

[-- Attachment #1: Type: text/plain, Size: 844 bytes --]

On Thu, Jun 23, 2011 at 12:16 PM, Jakub Jelinek <jakub@redhat.com> wrote:
> On Thu, Jun 23, 2011 at 12:02:35PM -0700, Easwaran Raman wrote:
>> +      if (y_expr)
>> +        mark_addressable (y_expr);
>
> Please watch formatting, a tab should be used instead of 8 spaces.
>
>> +      if (x_expr)
>> +        mark_addressable (x_expr);
>
> Ditto.
>
>> @@ -1084,6 +1084,8 @@ initialize_argument_information (int num_actuals A
>>                 && TREE_CODE (base) != SSA_NAME
>>                 && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
>>           {
>> +              mark_addressable (args[i].tree_value);
>> +
>
> Likewise, plus the line is indented too much, each level should be indented
> by 2 chars.
>
>        Jakub
>

I have attached a new patch that fixes the formatting  issues.

Thanks,
Easwaran

[-- Attachment #2: dse_fix.patch --]
[-- Type: text/x-patch, Size: 1798 bytes --]

Index: gcc/expr.c
===================================================================
--- gcc/expr.c	(revision 175346)
+++ gcc/expr.c	(working copy)
@@ -1181,8 +1181,19 @@ emit_block_move_hints (rtx x, rtx y, rtx size, enu
   else if (may_use_call
 	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (x))
 	   && ADDR_SPACE_GENERIC_P (MEM_ADDR_SPACE (y)))
-    retval = emit_block_move_via_libcall (x, y, size,
-					  method == BLOCK_OP_TAILCALL);
+    {
+      /* Since x and y are passed to a libcall, mark the corresponding
+	 tree EXPR as addressable.  */
+      tree y_expr = MEM_EXPR (y);
+      tree x_expr = MEM_EXPR (x);
+      if (y_expr)
+	mark_addressable (y_expr);
+      if (x_expr)
+	mark_addressable (x_expr);
+      retval = emit_block_move_via_libcall (x, y, size,
+					    method == BLOCK_OP_TAILCALL);
+    }
+
   else
     emit_block_move_via_loop (x, y, size, align);
 
Index: gcc/calls.c
===================================================================
--- gcc/calls.c	(revision 175346)
+++ gcc/calls.c	(working copy)
@@ -1084,6 +1084,8 @@ initialize_argument_information (int num_actuals A
 		  && TREE_CODE (base) != SSA_NAME
 		  && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
 	    {
+	      mark_addressable (args[i].tree_value);
+
 	      /* We can't use sibcalls if a callee-copied argument is
 		 stored in the current function's frame.  */
 	      if (!call_from_thunk_p && DECL_P (base) && !TREE_STATIC (base))
@@ -3524,7 +3526,12 @@ emit_library_call_value_1 (int retval, rtx orgfun,
 	    }
 
 	  if (MEM_P (val) && !must_copy)
-	    slot = val;
+	    {
+	      tree val_expr = MEM_EXPR (val);
+	      if (val_expr)
+		mark_addressable (val_expr);
+	      slot = val;
+	    }
 	  else
 	    {
 	      slot = assign_temp (lang_hooks.types.type_for_mode (mode, 0),

^ permalink raw reply	[flat|nested] 14+ messages in thread

* Re: Mark variables addressable if they are copied using libcall in RTL expander
  2011-06-23 21:56                 ` Easwaran Raman
@ 2011-06-24  9:00                   ` Richard Guenther
  0 siblings, 0 replies; 14+ messages in thread
From: Richard Guenther @ 2011-06-24  9:00 UTC (permalink / raw)
  To: Easwaran Raman; +Cc: Jakub Jelinek, gcc-patches

On Thu, Jun 23, 2011 at 11:47 PM, Easwaran Raman <eraman@google.com> wrote:
> On Thu, Jun 23, 2011 at 12:16 PM, Jakub Jelinek <jakub@redhat.com> wrote:
>> On Thu, Jun 23, 2011 at 12:02:35PM -0700, Easwaran Raman wrote:
>>> +      if (y_expr)
>>> +        mark_addressable (y_expr);
>>
>> Please watch formatting, a tab should be used instead of 8 spaces.
>>
>>> +      if (x_expr)
>>> +        mark_addressable (x_expr);
>>
>> Ditto.
>>
>>> @@ -1084,6 +1084,8 @@ initialize_argument_information (int num_actuals A
>>>                 && TREE_CODE (base) != SSA_NAME
>>>                 && (!DECL_P (base) || MEM_P (DECL_RTL (base)))))
>>>           {
>>> +              mark_addressable (args[i].tree_value);
>>> +
>>
>> Likewise, plus the line is indented too much, each level should be indented
>> by 2 chars.
>>
>>        Jakub
>>
>
> I have attached a new patch that fixes the formatting  issues.

Ok.

Thanks,
Richard.

> Thanks,
> Easwaran
>

^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2011-06-24  8:25 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-06-21  2:15 Mark variables addressable if they are copied using libcall in RTL expander Easwaran Raman
2011-06-21  9:02 ` Richard Guenther
2011-06-22 13:15   ` Eric Botcazou
2011-06-22 13:53     ` Jakub Jelinek
2011-06-22 13:54       ` Richard Guenther
2011-06-22 14:26   ` Eric Botcazou
2011-06-22 19:39     ` Easwaran Raman
2011-06-23 10:00       ` Eric Botcazou
2011-06-23 10:32         ` Richard Guenther
2011-06-23 11:07           ` Eric Botcazou
2011-06-23 19:16             ` Easwaran Raman
2011-06-23 19:32               ` Jakub Jelinek
2011-06-23 21:56                 ` Easwaran Raman
2011-06-24  9:00                   ` Richard Guenther

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).