tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Removing ARCNET stuffs



On 1 June 2015 at 02:15, Anders Magnusson <ragge%ludd.ltu.se@localhost> wrote:
> Andrew Cagney skrev den 2015-06-01 03:24:
>>
>> systems and generates reasonable code.  Unfortunately, and sorry PCC
>> (stabs, really?),
>
> Feel free to add dwarf, the source is out there, and it wouldn't be
> especially difficult to do it.  I just haven't had time.
> Stabs was "for free" :-)

I'm not so sure (a year back I looked at the code with that in mind),
and wonder if any quick hack would end up being opportunity lost.

PCC, as a "classic" C compiler, only generates debug information at
-O0.  This this is because the stabs code is restricted to the
un-optimized code generator path.  Having the backend restricted to
DWARF when '-O0' might just be ok, were it not for SSA (static single
assignment).

To my mind, and I'm assuming a pure SSA compiler design, having SSA
forces issues like:

- new back-ends that talk SSA (GCC still seems to be unable to
eliminate RTL); and one day generate debug information

- intermediate debug information paired with the SSA so that, at -O0,
"front end -> SSA -> backend" can generate debug information

- the expectation that "-O -g" works - untouched SSA results in code
far far worse than PCC at -O0 (the basic backend has a lot of smarts
that deserve credit)

Just the SSA side of things (if debugging is ignored) is a lot of work
(LLVM's solution was to largely ignore debugging.  I once asked
Lattner directly about this and he answered that he considered it a
"back-end problem").

If PCC starts generating DWARF then be sure I'll find and report bugs;
however I think that would be a distraction.

Andrew

(I've got to admit that I wonder if C is the best language for an
optimizing compiler; but then, it is what we have)


Home | Main Index | Thread Index | Old Index