public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
* [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level
@ 2004-11-08 13:55 nathan at gcc dot gnu dot org
  2004-11-08 13:58 ` [Bug tree-optimization/18374] " nathan at gcc dot gnu dot org
                   ` (4 more replies)
  0 siblings, 5 replies; 8+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-11-08 13:55 UTC (permalink / raw)
  To: gcc-bugs

This is a catch-all report to mention that we should really be doing ABI
mandated argument and return value marshalling at the tree level. These
operations can involve sign/zero extension (at the very least) and should be
exposed to the tree optimizers.

-- 
           Summary: Argument and return value marshalling at tree level
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: tree-optimization
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: nathan at gcc dot gnu dot org
                CC: gcc-bugs at gcc dot gnu dot org


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374


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

* [Bug tree-optimization/18374] Argument and return value marshalling at tree level
  2004-11-08 13:55 [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level nathan at gcc dot gnu dot org
@ 2004-11-08 13:58 ` nathan at gcc dot gnu dot org
  2004-11-08 14:01 ` nathan at gcc dot gnu dot org
                   ` (3 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-11-08 13:58 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |16797
              nThis|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374


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

* [Bug tree-optimization/18374] Argument and return value marshalling at tree level
  2004-11-08 13:55 [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level nathan at gcc dot gnu dot org
  2004-11-08 13:58 ` [Bug tree-optimization/18374] " nathan at gcc dot gnu dot org
@ 2004-11-08 14:01 ` nathan at gcc dot gnu dot org
  2004-11-08 14:02 ` [Bug tree-optimization/18374] [meta-bug] " pinskia at gcc dot gnu dot org
                   ` (2 subsequent siblings)
  4 siblings, 0 replies; 8+ messages in thread
From: nathan at gcc dot gnu dot org @ 2004-11-08 14:01 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
OtherBugsDependingO|                            |16802
              nThis|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374


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

* [Bug tree-optimization/18374] [meta-bug] Argument and return value marshalling at tree level
  2004-11-08 13:55 [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level nathan at gcc dot gnu dot org
  2004-11-08 13:58 ` [Bug tree-optimization/18374] " nathan at gcc dot gnu dot org
  2004-11-08 14:01 ` nathan at gcc dot gnu dot org
@ 2004-11-08 14:02 ` pinskia at gcc dot gnu dot org
  2004-11-17 13:13 ` pinskia at gcc dot gnu dot org
  2004-11-17 15:53 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-08 14:02 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
           Severity|normal                      |enhancement
           Keywords|                            |meta-bug, missed-
                   |                            |optimization
            Summary|Argument and return value   |[meta-bug] Argument and
                   |marshalling at tree level   |return value marshalling at
                   |                            |tree level


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374


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

* [Bug tree-optimization/18374] [meta-bug] Argument and return value marshalling at tree level
  2004-11-08 13:55 [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level nathan at gcc dot gnu dot org
                   ` (2 preceding siblings ...)
  2004-11-08 14:02 ` [Bug tree-optimization/18374] [meta-bug] " pinskia at gcc dot gnu dot org
@ 2004-11-17 13:13 ` pinskia at gcc dot gnu dot org
  2004-11-17 15:53 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-17 13:13 UTC (permalink / raw)
  To: gcc-bugs


------- Additional Comments From pinskia at gcc dot gnu dot org  2004-11-17 13:13 -------
Here is a bug which says the oposite should be done (as arguments are already done): PR 15484.

-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374


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

* [Bug tree-optimization/18374] [meta-bug] Argument and return value marshalling at tree level
  2004-11-08 13:55 [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level nathan at gcc dot gnu dot org
                   ` (3 preceding siblings ...)
  2004-11-17 13:13 ` pinskia at gcc dot gnu dot org
@ 2004-11-17 15:53 ` pinskia at gcc dot gnu dot org
  4 siblings, 0 replies; 8+ messages in thread
From: pinskia at gcc dot gnu dot org @ 2004-11-17 15:53 UTC (permalink / raw)
  To: gcc-bugs



-- 
           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|                            |1
   Last reconfirmed|0000-00-00 00:00:00         |2004-11-17 15:53:28
               date|                            |


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374


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

* [Bug tree-optimization/18374] [meta-bug] Argument and return value marshalling at tree level
       [not found] <bug-18374-4@http.gcc.gnu.org/bugzilla/>
@ 2013-02-26 11:33 ` rguenth at gcc dot gnu.org
  0 siblings, 0 replies; 8+ messages in thread
From: rguenth at gcc dot gnu.org @ 2013-02-26 11:33 UTC (permalink / raw)
  To: gcc-bugs


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18374

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> 2013-02-26 11:33:15 UTC ---
On the other hand we do have a mismatch between caller and callee, for C at
least:

short barshort (short a)
{
  return a;
}
short foo1short (short a)
{
  return barshort(a);
}


;; Function barshort (null)
;; enabled by -tree-original

{
  return a;
}

;; Function foo1short (null)
;; enabled by -tree-original

{
  return barshort ((int) a);
}


this at least makes us need to "fixup" arguments during inlining which
should not be necessary with a consistent IL (also see the DECL_ARG_TYPE
wart we have ... in this case it says 'int' for 'a').


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

* [Bug tree-optimization/18374] [meta-bug] Argument and return value marshalling at tree level
@ 2004-11-17 17:43 Paul Schlie
  0 siblings, 0 replies; 8+ messages in thread
From: Paul Schlie @ 2004-11-17 17:43 UTC (permalink / raw)
  To: gcc-bugs

> Additional Comments From pinskia at gcc dot gnu dot org  2004-11-17
> Here is a bug which says the oposite should be done (as arguments are
> already > done): PR 15484.

Unless I misunderstand; C's promotion/evaluation semantics need not
be literally applied, but must only yield equivalent results to as if
they were. 

Thereby providing opportunities to the compiler to avoid the otherwise
needless promotion of expression/argument precision if it's known that
their use in an alternate form will not affect a resulting utilized
variable or control flow state.

Thereby enabling the compiler to avoid the promotion of arguments to
functions, and correspondingly only require their promotion within
functions if required.

If an ABI specifies that this may not be done, then that's that; but
if it's allowed, or not specified, the compiler should be enabled to
perform this type of global optimization, I would think. (although
GCC may not presently takes full advantage of this potential today.)




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

end of thread, other threads:[~2013-02-26 11:33 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2004-11-08 13:55 [Bug tree-optimization/18374] New: Argument and return value marshalling at tree level nathan at gcc dot gnu dot org
2004-11-08 13:58 ` [Bug tree-optimization/18374] " nathan at gcc dot gnu dot org
2004-11-08 14:01 ` nathan at gcc dot gnu dot org
2004-11-08 14:02 ` [Bug tree-optimization/18374] [meta-bug] " pinskia at gcc dot gnu dot org
2004-11-17 13:13 ` pinskia at gcc dot gnu dot org
2004-11-17 15:53 ` pinskia at gcc dot gnu dot org
2004-11-17 17:43 Paul Schlie
     [not found] <bug-18374-4@http.gcc.gnu.org/bugzilla/>
2013-02-26 11:33 ` rguenth at gcc dot gnu.org

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).