Bonjour,


Est-ce qu'une bonne �me voudrait bien me fournir un bout de code qui permettrait de mettre en �vidence les optimisations possibles lors de l'usage d'un pointeur restreint sous GCC 4.7.2.5 ?


Je viens d'essayer de faire un programme (un peu bateau) de copie de m�moire :
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
//using namespace std;
#define IT 900000
void mcp ( int nb, 
           #ifdef WITH
           const char * const restrict ptr_src,
           char * const restrict ptr_dst
           #else
           const char * const ptr_src,
           char * const  ptr_dst
           #endif
          ){
        for (int i=0; i<nb; i++)
                *(ptr_dst+i)=*(ptr_src+i);
}
 
int main(void){
        int tab[IT];
        for (int i = 0; i < IT; i++)
                *(tab+i)=i;
        int tb[IT];
        mcp(IT * sizeof(int),(char*) tab,(char*) tb);
        return 0;
}
J'obtiens exactement le m�me code assembleur dans tous les niveaux d'optimisation possibles que j'utilise le mot clef restrict ou pas...

Du coup je ne vois pas trop l'utilit� du truc.

Merci d'avance.