Class members in CPU Registern



  • Hallo,

    wie kann ich den gcc dazu bringen, Klassenvariablen in den CPU Registern zu halten?

    Beispiel:

    class iterator {
       int _a;
       unsigned _b;
       unsigned _c;
       iterator(a, b) {
          _a = a;
          _b = b;
          _c = 0;
       }
       inline void operator++ () {
          ++a;
          b += a;
          c = a + b;
       }
       inline unsinged operator* () {
          return c;
       }
    }
    
    int main() {
       volatile unsinged x;
       iterator iter = iterator(1,2);
       for (int i = 0; i < 10000; ++i, ++iter) {
          x = *iter;  
       }
       return 0;
    }
    

    Damit die Schleife schnell ist, sollten _a, _b und _c dabei in CPU Registern stehen.

    Danke und Gruß,
    Fred75



  • es gibt ein keyword 'register', aber dem kann man nicht trauen.
    mach's mit inline assembler...


Anmelden zum Antworten