[an error occurred while processing this directive]
|
1. Для указателей - restrict - гарантия того, что доступ к тому на что указывает указатель пойдет только через него. Это позволяет компилятору генерить код, который делает несколько доступов к !!!разным!!! адресам в один цикл. Это касается также и доступа со смещением - те пусть
restrict int *a;
restrict int *a;
Тогда
a[x] и b[y] - не должны обращаться к одной ячейке памяти. Если Вы так делаете, то сам себе злобный буратино.
При использовании массива - restrict - гарантия того, что Вы работаете с массивом только по его имени, а не делаете потом так
restrict int a[100];
int* b = &a[10]'
2. Может позволить компилятору не генерить две версии кода - с малым и большим количеством итераций. Читайте про software pipelining
Если счетчики неизвестны будет сгенерено две версии кода.
E-mail: info@telesys.ru