[LLVMdev] Re: llvm-gcc goes 10 rounds against the GNU mascot and loses, film at 11

Chris Lattner sabre at nondot.org
Sun Dec 15 11:58:01 PST 2002

Brian was kind enough to test llvmgcc against a bunch of GNU code.  This
exposed all kinds of bugs, fixes below.

> recode   -- fails (bad headers, many ICEs)
Can you give me a list of headers it wants?  It's usally pretty easy to
add them if I know what it needs...

> cpio     -- fails (dstring.c -- weird ssa bug)
Fixed.  This was a C frontend bug (problem assigning temporary reg nums).

> diffutils-- fails (analyze.c, diff.c and others)

The analyze.c bug is tested here:

and fixed here:

diff.c doesn't compile with the platform CC.

> gnuchess -- fails (eval.c, main.c and others)

eval.c works now, perhaps because of other fixes.

main.c is tested here:

This was a bug in the C frontend treating 'char foo[] = "abcd";' as a
constant because the initializer was a const, even though the variable
itself wasn't const.  Whoops.  :)

Another interesting part of my fix was that I discovered I wasn't marking
nearly as many globals as constant as I should (for example 'const int X =
7').  This is also fixed, tested here:

> a2ps     -- fails (fonts.c at -O2, and several others)

This works now, presumably because of other fixes

> grep     -- fails (regex.c)
> rx       -- fails (rxgnucomp.c)

These is because of a known problem passing structures by value.  I added
a new testcase distilled from it, which is somewhat simpler than the
previously existing one:

New: http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20021209/001961.html
Old: test/Regression/CFrontend/2002-04-10-StructParameters.c

I will fix this eventually.  :)

> enscript -- fails (afm.c)

This calls setjmp, which isn't supported yet.

Thanks for all of the reports!!



More information about the llvm-dev mailing list