setting loop buffer size in the gcc

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

 



Hi gcc-help,

I am trying to figure out how gcc can set loop buffer size in the
aarch64 backend.
Could someone kindly give some hint or point me to the relevant code
where this is being set.

I have collected following information from code browsing.

To my understanding, Loop Buffer is like i-cache which contain
pre-decoded instruction which can be re-used if branch instruction
loopbacks to an instruction still present in the buffer.
In some architecture, decoder queue may also acts as loop buffer.


In config/aarch64.c, I found align_loops variable in
aarch64_override_options_after_change() function.
In config/i386/i386.c, TARGET_LOOP_UNROLL_ADJUST is set to
ix86_loop_unroll_adjust (unsigned nunroll, struct loop *loop)
function.
>From comments – “This function decides the unroll factor using number
of memory references (value 32 is used) as a heuristic”.

However, it seems above is not exactly loop buffer size. align_loops
set the alignment at the start of a loop & TARGET_LOOP_UNROLL_ADJUST
update the loop unrolling factors.
So any guidance on how can I set the loop buffer size?

Thanks in advance for your time.

-- 
with regards,
Virendra Kumar Pathak




[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux