[Bug target/23828] local calling convention not used when using --combine

2005-09-25 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-25 
20:15 ---
Fixed.

-- 
   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution||FIXED
   Target Milestone|--- |4.1.0


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


[Bug target/23828] local calling convention not used when using --combine

2005-09-25 Thread cvs-commit at gcc dot gnu dot org

--- Additional Comments From cvs-commit at gcc dot gnu dot org  2005-09-25 
20:01 ---
Subject: Bug 23828

CVSROOT:/cvs/gcc
Module name:gcc
Changes by: [EMAIL PROTECTED]   2005-09-25 20:01:11

Modified files:
gcc: ChangeLog 
gcc/config/i386: i386.c 

Log message:
PR 23828
* config/i386/i386.c (ix86_function_regparm): Fix the test for
a nested function.

Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.diff?cvsroot=gcc&r1=2.10018&r2=2.10019
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/config/i386/i386.c.diff?cvsroot=gcc&r1=1.860&r2=1.861



-- 


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


[Bug target/23828] local calling convention not used when using --combine

2005-09-21 Thread dann at godzilla dot ics dot uci dot edu

--- Additional Comments From dann at godzilla dot ics dot uci dot edu  
2005-09-21 17:43 ---
(In reply to comment #8)
> (In reply to comment #4)

> Instead of the above check, change it to:
> if (local_regparm == 3 &&  DECL_STRUCT_FUNCTION (fn)->static_chain_decl)
>   local_regparm = 2;

DECL_STRUCT_FUNCTION does not work, it ICEs when running the testsuite... 


-- 


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


[Bug target/23828] local calling convention not used when using --combine

2005-09-15 Thread pinskia at gcc dot gnu dot org

--- Additional Comments From pinskia at gcc dot gnu dot org  2005-09-15 
20:12 ---
Confirmed, reduced testcase:
file1.c:
int g(void);

int main(void)
{
  return g();
}

file2.c:
static int f(int a, int b, int c) __attribute__((noinline));
static int f(int a, int b, int c)
{
  return a+b+c;
}

int g(void)
{
  return f(1,2,3);
}



This was discussed on IRC on my suggesstion in comment #8 does not work well 
but replacing 
DECL_CONTEX with decl_function_context should work.

-- 
   What|Removed |Added

   Severity|normal  |minor
 Status|UNCONFIRMED |NEW
  Component|middle-end  |target
 Ever Confirmed||1
   Last reconfirmed|-00-00 00:00:00 |2005-09-15 20:12:27
   date||
Summary|local calling convention not|local calling convention not
   |used when using -fwhole-|used when using --combine
   |program --combine   |


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