Related articles |
---|
Compiling for DSP chips tatge@m2.csc.ti.com (1990-09-07) |
Re: Compiling for DSP chips kuusama@news.funet.fi.tut.fi (1990-09-11) |
Re: Compiling for DSP chips avi@taux01.nsc.com (1990-09-24) |
Re: Compiling for DSP chips pardo@cs.washington.edu (1990-09-26) |
Re: Compiling for DSP chips seanf@sco.COM (Sean Fagan) (1990-09-30) |
Re: Compiling for DSP chips pardo@cs.washington.edu (1990-10-02) |
Newsgroups: | comp.compilers |
From: | pardo@cs.washington.edu (David Keppel) |
Keywords: | C, optimize, DSP |
Organization: | University of Washington, Computer Science, Seattle |
References: | <9009071606.AA22759@m2.csc.ti.com> <1990Sep11.075042.937@funet.fi> <4751@taux01.nsc.com> <13148@june.cs.washington.edu> <7949@scolex.sco.COM> |
Date: | 2 Oct 90 01:40:00 GMT |
>pardo@cs.washington.edu (David Keppel) writes:
>>[Tell gcc hard regs clobbered -> optimize around them.]
>>[If md knows about magic instructions can optimize over them,
>> even the compiler doesn't kow how to emit them.]
In article <7949@scolex.sco.COM> Sean Fagan <seanf@sco.COM> writes:
>[For example, `_inline_memcpy', `__inline_sin'.]
Gcc has the capability to do two things:
* Register allocation and code motion of `asm'-ed stuff. That's
what Sean described.
* Optimization of instructions that the compiler doesn't know
how to emit, provided the instructions are in the machine
description.
I'm much fuzzier on the latter, but I think it works something
like this:
* The machine description contains information about how to
emit the "div" and "mod" instructions.
* The machine description contains a description of a peephole
optimization that says something like ``if there's a "div"
instruction next to a "rem" instruction, and they operate on
the same operands, then trash the "div" instruction and get
the results from the "rem" which computes "div" as a side-
effect".
* The compiler has no way of producing a "rem" instruction.
* The user defines an "asm" that emits a "rem" instruction.
* If the peephole matches, the optimization occurs, even tho'
the compiler never emitted the "rem".
I don't think this feature is used often on most targets because C
and the gcc IR are pretty well matched. However, I could immagine
the optimizations to be useful on e.g., DSP machines where there are
some machine primitives that match poorly with C semantics but for
which various optimizations could be done with neighboring
instructions.
;-D on ( Looking for a few good digital signals ) Pardo
--
pardo@cs.washington.edu
{rutgers,cornell,ucsd,ubc-cs,tektronix}!uw-beaver!june!pardo
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.