This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Projects for beginners
On Wed, Jan 31, 2001 at 06:33:47PM -0500, Daniel Berlin wrote:
> > Optimizer/back end improvements:
> >
> > These require some knowledge of compiler internals and substantial
> > programming skills, but not detailed knowledge of GCC internals.
> > I think.
>
> Yer, right, i have only lmited knowledg eof gcc internals, and the
> register allocator so far has only taken 1 week, working in my spare time.
>
> >
> > Make insn-recog.c use a byte-coded DFA.
> > - RTH and I started this back in 1999 but never finished. I
> > may still be able to find the code.
> > - Order of 10x size reduction in insn-recog.o, which is huge
> > (432K on i386)
> >
> > Make GCSE (and CSE?) capable of digging inside PARALLELs.
> > - Needed for GCSE to do any good at all on i386.
>
> Wait, it can't?
> Oh, the clobbers.
Actually I would imagine gcse handles clobbers just fine and dandy, since it
uses single_set which strips off the clobbers/uses if there is only one set.
What it doesn't handle is a parallel that has two sets, which on the x86 is for
setting the condition code register. This probably applies to more phases than
just gcse (look for single_set). Another place a parallel with 2 sets is used
is for machines that do both the divide and modulus in one step.
>
>
> I have the SSA global value numbering dig inside of parallels, but we
> don't do the deletion just yet, because I figured PRE would take care of
> it if we just renumbered the registers.
>
> >
> > Teach the combiner to delete no-op moves it generates.
> > - Including unrecognizable no-op moves. You can get things
> > like (set (cc0) (cc0)) or (set (pc) (pc)) neither of which is
> > a valid insn, but throwing them out would win. See thread at
> > http://gcc.gnu.org/ml/gcc-patches/2000-07/msg00580.html.
>
> >
> > Find all the places that simplify RTL and make them use
> > simplify-rtx.c.
> >
> > Convert reorg.c to use the flow graph. Then we can throw away
> > resource.c.
> > - Long term we want reorg folded into the scheduler, but
> > that's much harder.
> >
> > Improve dwarf2out.c.
> > - DWARF2 can handle all kinds of heavy optimizations that we'd
> > like to do, but our generator doesn't know how just yet. At
> > the very least it'd be nice if -gdwarf-2 -fomit-frame-pointer
> > could give you a clean backtrace on all targets. (This is
> > definitely possible.)
> > - Need to coordinate with gdb team.
>
> Until more targets move off of stabs as the default, this won't happen,
> because there is no motivation.
Start moving targets such as Linux from stabs to dwarf-2 would be another
task.
> It's the same reason gdb still scans the prologue the hard way when we
> could just use the info dwarf2 gives us. It's hard to convince people to
> implement it when their target doesn't default to stabs.
--
Michael Meissner, Red Hat, Inc. (GCC group)
PMB 198, 174 Littleton Road #3, Westford, Massachusetts 01886, USA
Work: meissner@redhat.com phone: +1 978-486-9304
Non-work: meissner@spectacle-pond.org fax: +1 978-692-4482