[Bug target/12674] [3.4 Regression] codegen bug using unit-at-a-time

hubicka at ucw dot cz gcc-bugzilla@gcc.gnu.org
Sat Oct 18 21:29:00 GMT 2003


PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.

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



------- Additional Comments From hubicka at ucw dot cz  2003-10-18 21:24 -------
Subject: Re:  [3.4 Regression] codegen bug using unit-at-a-time

> PLEASE REPLY TO gcc-bugzilla@gcc.gnu.org ONLY, *NOT* gcc-bugs@gcc.gnu.org.
> 
> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=12674
> 
> 
> pinskia at gcc dot gnu dot org changed:
> 
>            What    |Removed                     |Added
> ----------------------------------------------------------------------------
>           Component|c                           |target
>            Keywords|                            |wrong-code
>             Summary|codegen bug using unit-at-a-|[3.4 Regression] codegen bug
>                    |time                        |using unit-at-a-time
>    Target Milestone|---                         |3.4
> 
> 
> ------- Additional Comments From pinskia at gcc dot gnu dot org  2003-10-18 20:03 -------
> I wonder if the definition of FUNCTION_PROFILER is wrong for netbsd-elf.

Some function profiles do use the registers used for argument pasing
(i386/linux used to do so too).  It is probably easiest to disable
register passing conventions when profiling>
OK?
Sat Oct 18 23:23:11 CEST 2003  Jan Hubicka  <jh@suse.cz>
	* i386.c (ix86_function_regparm): Disable implicit register passing conventions
	when profiling.
Index: i386.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/config/i386/i386.c,v
retrieving revision 1.608
diff -c -3 -p -r1.608 i386.c
*** i386.c	17 Oct 2003 12:28:29 -0000	1.608
--- i386.c	18 Oct 2003 21:22:59 -0000
*************** ix86_function_regparm (tree type, tree d
*** 1688,1694 ****
  
        /* Use register calling convention for local functions when possible.  */
        if (!TARGET_64BIT && !user_convention && decl
! 	  && flag_unit_at_a_time)
  	{
  	  struct cgraph_local_info *i = cgraph_local_info (decl);
  	  if (i && i->local)
--- 1688,1694 ----
  
        /* Use register calling convention for local functions when possible.  */
        if (!TARGET_64BIT && !user_convention && decl
! 	  && flag_unit_at_a_time && !profile_flag)
  	{
  	  struct cgraph_local_info *i = cgraph_local_info (decl);
  	  if (i && i->local)



More information about the Gcc-bugs mailing list