Related articles |
---|
Compiler Output gm@amdahl.amdahl.com (1987-12-08) |
Re: Compiler Output rab@mimsy.UUCP (1987-12-09) |
Re: Compiler Output ll-xn!ames!oliveb!felix!preston@BBN.COM (1987-12-11) |
Re: Compiler Output haddock!uunet!uiucdcs!ccvaxa!aglew (1987-12-19) |
From: | haddock!uunet!uiucdcs!ccvaxa!aglew |
Newsgroups: | comp.compilers |
Date: | 19 Dec 87 21:36:00 GMT |
References: | <777@ima.ISC.COM> |
Nf-Id: | #R:ima.ISC.COM:777:ccvaxa:35300002:000:1567 |
Nf-From: | ccvaxa.UUCP!aglew Dec 19 15:36:00 1987 |
..> Compilers generating assembly or object code
An example: PCC compilers usually generate assembly, so there are
utilities like "inline" in BSD 4.3 that perform inline expansion
of assembly language functions, and permit access via what seems to be
a function call to C, to all the special instructions of your machine,
without paying the overhead of an assembly language wrapper.
Eg. I just finished inlining all the special instructions on my machine, but
notably double precision arithmetic, access to special registers, and a
few special arithmetic operations like Shift and Count Zeroes - FFS.
All of these instructions fell naturally into our calling sequence,
so could be directly inlined to look like a function.
Of course, it's nicer when the compiler does inlining, but I haven't seen
cross-language inlining yet. Providing assembly language intermediate
code permits the creation of special purpose optimizations like BSD inline,
without having to learn the internal structure of the compiler.
And now I'm going to look at writing an improved assembly to assembly
lnaguage pipeline optimizer and code reorganizer. But, I don't want to
learn the innards of our compiler to do this.
Andy "Krazy" Glew. Gould CSD-Urbana. 1101 E. University, Urbana, IL 61801
aglew@mycroft.gould.com ihnp4!uiucdcs!ccvaxa!aglew aglew@gswd-vms.arpa
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.