Thread View: de.comp.lang.c++
2 messages
2 total messages
Started by Olaf Krzikalla
Sun, 17 Sep 1995 11:16
Optimieren mit WATCOM C++ 10.0
Author: Olaf Krzikalla
Date: Sun, 17 Sep 1995 11:16
Date: Sun, 17 Sep 1995 11:16
27 lines
1360 bytes
1360 bytes
Hi Leute,
ich habe eine Klassenfunktion
void a::b() {
viele arithmetische Anweisungen mit Daten aus a
}
Aufgerufen wird die Sache immer mit a->b.
Der Compiler erzeugt dann Code, wobei er aber vor jede Anweisung die Adresse
von a neu in eax laedt, dann aber natuerlich mit eax weiterrechnet (und sonst
eigentlich keine Register braucht). Da das ganze aber oft durchlaufener
Bestandteil eines Interrupts ist, ist Geschwindigkeit angebracht. Wie kann ich
dem Compiler sagen, dass er gefälligst den Ptr auf a in einem Register zu halten
hat (es sind ja noch ebx...edx frei). Als ich in C mit einer Zeigerübergabe
gearbeitet habe, sahs so aus:
void b (a *var) {
register a *new = var
alles mit new
}
funktionierte aber auch nicht.
Muss ich wirklich alles in Assembler umschreiben ???
Ciao Olaf
Re: Optimieren mit WATCOM C++ 10.0
Author: Ullrich von Bassewitz
Date: Sun, 17 Sep 1995 19:51
Date: Sun, 17 Sep 1995 19:51
28 lines
1442 bytes
1442 bytes
Olaf Krzikalla (ok4@irz.inf.tu-dresden.de) wrote:
> Der Compiler erzeugt dann Code, wobei er aber vor jede Anweisung die Adresse
> von a neu in eax laedt, dann aber natuerlich mit eax weiterrechnet (und sonst
> eigentlich keine Register braucht). Da das ganze aber oft durchlaufener
> Bestandteil eines Interrupts ist, ist Geschwindigkeit angebracht. Wie kann ich
> dem Compiler sagen, dass er gefälligst den Ptr auf a in einem Register zu halten
> hat (es sind ja noch ebx...edx frei).
Normalerweise ist der Compiler dazu sehr wohl in der Lage.
1. Optimierung einschalten (-oneatx)
2. Debugging ausschalten bzw. auf Stufe 1 setzen. Der Compiler erzeugt
entgegen den Behauptungen im Handbuch immer nicht oder nur wenig
optimierten Code, wenn -d2 oder -d3 angegeben ist.
D.h. auf der Kommandozeile sollte "-d1 -oneatx" o. ae. stehen.
Ueblicher Fallstrick ist normalerweise 2.
Gruss
Uz
--
Ullrich von Bassewitz uz@ibb.schwaben.com
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads