How to link funcrtion definitions, optimized for certain arch at link time ?

Branko brankob@s5tehnika.net
Wed Mar 20 06:34:00 GMT 2019


I know that this isn't exactly 100% gcc topic, but since it is 
intimately coupled to binutils and its linker, I thought

at least someone here has done something similar....

Say   yo want to call  one of the foo_xxx functions, depending on the 
certain functionality of the machine ( like having AVX2 unit etc)

You could check necessary condition during runtimne and call 
correspondding function, however that would present indirect jump 
penalty that would burden cachelines etc.


If one yould check that condition during dynamic linking or customized 
dl-opening of a needed DSO, one could simply do all the needed job there 
- ie

check the condition and relocate all the calls to foo to land on foo_A, 
or foo_B etc.

That way, there would be no runtime speed penalties...





.





More information about the Gcc-help mailing list