https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92902
--- Comment #19 from Jean-Christophe Dubois <gcc at tribudubois dot net> --- (In reply to Andrew Pinski from comment #16) > (In reply to Jean-Christophe Dubois from comment #15) > > Am I missing something? > > YES. Most likely it will not be loaded in the instruction cache as it is > larger than the cache line size. Maybe this is not a big issue but couldn't the end of the jump table be loaded in instruction cache (depending on function alignment) with the beginning of the function it will be used with (when code is compiled with -Os functions don't seem to be aligned on cache line size) Or the beginning of the jump table with the end of the previous function. This might be only few bytes of instruction cache each time and maybe it is not an issue overall. And when you mix data and code there will also be some instruction that will enter the data cache if things are not aligned on cache line size. Maybe this is not an issue performance wise either.