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: | Michael Meissner <meissner@cygnus.com> |
Newsgroups: | comp.compilers |
Date: | 14 Feb 1996 21:32:58 -0500 |
Organization: | Compilers Central |
References: | 96-02-095 |
Keywords: | C, optimize |
| 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,).
GNU C will do it if you reorder your functions such that Func2 occurs
before Func1 and you use -O3 (or -O/-O2 with the -finline-functions
switch or -O/-O2 and add the __inline__ keyword to the Func2
declaration). GNU C will not do it in the order you wrote because GNU
processes a function at a time, and writes out the resulting assembly
language at the end of the function. If the function is inlinable
(see above switches), it will keep the function around in virtual
memory, rather than freeing it up at the end. For best results, you
probably want to use the static keyword on Func2 so that the compiler
will not generate an outline function if it inlines it.
--
Michael Meissner, Cygnus Support (East Coast)
Suite 105, 48 Grove Street, Somerville, MA 02144, USA
meissner@cygnus.com, 617-629-3016 (office), 617-629-3010 (fax)
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.