Related articles |
---|
Optimization Wanted rrhauser@ingr.com (Robert R. Hauser) (1996-02-09) |
Re: Optimization Wanted meissner@cygnus.com (Michael Meissner) (1996-02-14) |
From: | "Robert R. Hauser" <rrhauser@ingr.com> |
Newsgroups: | comp.compilers |
Date: | 9 Feb 1996 17:12:41 -0500 |
Organization: | Compilers Central |
Keywords: | C, optimize, question |
Do any C compilers support the following optimization (below).
(Desc: I want to inline functions without introducing a forced
branch. See how the optimized codeflow races straight for the
return statement in 99.99% of the cases. This avoids branching
reduces the instruction cache consumption, etc, etc,).
Bob
Pre Optimized Codeflow:
Func1() {
status = somefunc()
if (SUCCESS(status)) {
status = Func2();
if (SUCCESS(status)) {
someotherfunc();
return STATUS_SUCCESS;
}
// error handling
} else {
// error handling
}
return status; // failure
}
Func2() {
status = some3rdfunc();
if (SUCCESS(status)) {
// stuff
return STATUS_SUCCESS;
}
// error handling
return status; // failure
}
Post-Optimization (inlined Func2)
Func1() {
status = somefunc()
if (SUCCESS(status)) {
status = some3rdfunc(); // INLINED FUNC2
if (SUCCESS(status)) { // INLINED FUNC2
// stuff // INLINED FUNC2
someotherfunc();
return STATUS_SUCCESS;
}
// error handling for Func2 // INLINED FUNC2
// error handling
} else {
// error handling
}
return status; // failure
}
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.