Re: Question about JUMP and LINK

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Bill,

On Thu, Mar 15, 2012 at 11:52 PM, bill4carson <bill4carson@xxxxxxxxx> wrote:
> Hi, All
>
> The question is simple.
>
> func_a {
>
>    call func_b
> }
>
> func_b {
>
>    call func_c
> }
>
> func_c {
>
>        return to func_a
> }
>
>
> The compiler I use let func_c to return func_a directly, IOW when func_b
> calls func_c, it use JUMP, other JUMP and LINK, and it's definitely not
> a question about inline or noinline.
>
> So can I ask why how to let the compiler use JUMP and LINK when func_b
> calls func_c?

This is called Tail Optimization. See
http://c2.com/cgi/wiki?TailCallOptimization

gcc (I'm using 4.4.4) with -O3 does this.

> If it's not the right place to post this, sorry for the noise.

The kernel newbies list is probably not the right place (since this
has nothing to do with the kernel). It also has nothing to do with
binutils. It's a gcc optimization, so picking a gcc list would
probably be more appropriate.

-- 
Dave Hylands
Shuswap, BC, Canada
http://www.davehylands.com

_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux