I came across this statement at : auto-vectorization in intel compiler
#pragma ivdep
void copy(char *cp_a, char *cp_b, int n) {
for (int i = 0; i < n; i++) {
cp_a[i] = cp_b[i];
}
if the loop is guaranteed to operate on non-overlapping memory regions, you can provide this information to the compiler by means of a #pragma ivdep hint before the loop, which informs the compiler that conservatively assumed data dependencies that prevent vectorization can be ignored. This results in vectorization of the loop without run-time data-dependency testing.
So who performs these RUN TIME DATA DEPENDENCY TEST ? Is it done by the compiler at run time ?
Aucun commentaire:
Enregistrer un commentaire