JIT-Optimierer

Hallo zusammen,

neulich hatet ich folgenden unschönen Effekt. Beim Programmieren mit C# lief in der Degub-Version auf dem Desktop alles hervorragend, aber in der Release-Version auf dem Laptop sahen die Ergebnisse so aus, als würden Array-Inizes durcheinandergebracht.

Ich hab den Fehler dann tatsächlich soweit verfolgt, dass ich verifizieren konnte, dass der JIT-Compiler mit eingeschalteter Optimierungsfunktion offensichtlich (jedenfalls in der Disassembly sichtbar) Fehler erzeugt, die man folgendermaßen charakterisieren kann: Konstruktionen in Array-Indizes im Source-Code wie etwa
arrayVariable[3 * i + 2]
werden vom JIT-Compiler mit eingeschalteter Optimierung, aber nur bei bestimmten Ziel-CPUs interpretiert als:
arrayVariable[3 * (i + 2)]

Jetzt zur Frage. Ist das ein bekannter Bug? Hat sonst noch jemand ähnliche Erfahrungen gemacht? Gibt es einen Patch? Kann man das umgehen?

Schon jetzt vielen Dank
Stefan

Hi,
auch wenn es ein bekannter Bug ist, so willst du ja wohl nicht darauf warten bis ein Fix kommt. Also Klammer den Ausdruck doch schon in deinem Code.

Gruss
Joey

Hallo Joey,

Also Klammer den Ausdruck
doch schon in deinem Code.

Klar, ist längst gemacht. Ich kann nur nicht sicherstellen, dass ich den Bug vollständig kenne. Es besteht die Möglichkeit, dass es auch noch andere Kriterien für da Auftreten des Bugs gibt und die kenne ich noch nicht.

Viele Grüße
Stefan