capisco ciò che t'interessa, dipende essenzialmente da alcune "unità" della cpu, sicuramente il branch predictor e prefetching/indirizzamento/load+store (un sorgente di un qualsiasi linguaggio è di per sé imprevedibile ed anche il modo come il compilatore crea, durante la compilazione, le liste/alberi/altre strutture) ed in genere l'elaborazione è relegata alle sole unità INT.
A memoria (è da zen2 che non guardo lo schema e potrebbe esserci qualche imprecisione contrassegnata con "*"):
Fino a Zen+ ci sono 4 pipeline di elaborazione INT, 2 di generazione d'indirizzo oltre ad *1 load + 1 store.
Zen2 ci sono 4 pipeline di elaborazione INT,
3 di generazione d'indirizzo oltre ad *
2 load + 1 store.
Zen3 vedremo

ho omesso le unità simd perché che sappia sono poco utilizzate nella compilazione.
p.s. per curiosità che compilatore utilizzi? (gli ultimi che utilizzai in ordine furono v.Studio, Icc e Gcc ma i progetti erano piccoli e di fatto, se non facevo una rebuild di tutto, il tempo impiegato andava da pochi decimi a 2-3 secondi)
edit: ho omesso anche il branch predictor in quanto non ne ricordo mai le caratteristiche
