| Subject: | [Bug tree-optimization/37024] [4.4 Regression] bad tail call from tuples merge |
|---|---|
| From: | "pinskia at gcc dot gnu dot org" |
| Date: | 5 Aug 2008 00:22:07 -0000 |
------- Comment #3 from pinskia at gcc dot gnu dot org 2008-08-05 00:22 -------
Note the reason why this "works" on x86 and not rs6000 or really any other
backend is that the x86 back-end assumes that the middle-end asks about some
calls that could return in different locations:
/* Check that the return value locations are the same. Like
...
This is also the place we notice
differences in the return value ABI. Note that it is ok for one
of the functions to have void return type as long as the return
value of the other is passed in a register. */
....
if (STACK_REG_P (a) || STACK_REG_P (b))
{
if (!rtx_equal_p (a, b))
return false;
}
else if (VOID_TYPE_P (TREE_TYPE (DECL_RESULT (cfun->decl))))
;
else if (!rtx_equal_p (a, b))
return false;
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37024
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| ||
| Previous by Date: | [Bug c++/37012] numerous stackalign related testsuite failures on i686-apple-darwin9, hjl dot tools at gmail dot com |
|---|---|
| Next by Date: | [Bug c++/37012] numerous stackalign related testsuite failures on i686-apple-darwin9, howarth at nitro dot med dot uc dot edu |
| Previous by Thread: | [Bug tree-optimization/37024] [4.4 Regression] bad tail call from tuples merge, pinskia at gcc dot gnu dot org |
| Next by Thread: | [Bug tree-optimization/37024] [4.4 Regression] bad tail call from tuples merge, rguenth at gcc dot gnu dot org |
| Indexes: | [Date] [Thread] [Top] [All Lists] |