vendredi 6 mars 2015

C++ techniques for reducing CPU instruction sizes?

Each CPU instruction consumes a number of bytes. The smaller the size, the most instructions which can be held in the CPU cache.


What techniques are available when writing C++ code which allow you to reduce CPU instruction sizes?


One example could be reducing the number of FAR jumps (literally, jumps to code across larger addresses). Because the offset is a smaller number, the type used is smaller and the overall instruction is smaller.


I thought GCC's __builtin_expect may reduce jump instruction sizes by putting unlikely instructions further away.


I think I have seen somewhere that its better to use an int32_t rather than int16_t due to being the native CPU integer size and therefore more efficient CPU instructions.


Or is something which can only be done whilst writing assembly?


Aucun commentaire:

Enregistrer un commentaire