Tablegen problem in LLVM 1.8

Hi,

Today I downloaded LLVM 1.8 (until yesterday I used 1.7) and I tried to build it (Slackware 10.2 with default GCC 3.3.6). However, the build process fails each time it reaches lib/Target/XXX/XXXISelDAGToDAG.cpp for all backends (XXX=X86, ARM, ...), e.g. like:

/.../llvm-build/lib/Target/ARM/ARMGenDAGISel.inc:145: error: syntax
   error before `{' token
... [lots of other errors generated by the previous one]

/.../llvm-build/lib/Target/ARM/ARMGenDAGISel.inc:191: error: syntax
   error before `{' token
... [lots of other errors generated by the previous one]

...

The NOINLINE-macro after each method's argument list and right before the "{" in the various lib/Target/XXX/XXXGenDAGISel.inc-files seems to be the culprit, e.g. in llvm-build/lib/Target/ARM/ARMGenDAGISel.inc (line 145):

void Emit_0(SDOperand &Result, SDOperand &N, unsigned Opc0, SDOperand &Chain, SDOperand &N1, bool HasInFlag) NOINLINE {
    ...

If I remove all NOINLINE appearances, everything compiles although I get 47 unexpected failures upon lib/test-ing (test results in attachment). I didn't have these compilation problems with 1.7, although I remember LLVM had unexpected failures back then too.

Did anyone experience similar problems?

Kind regards,

Bram Adams
GH-SEL, INTEC, Ghent University (Belgium)

testresults.tar.bz2 (20.3 KB)

Is this patch incorporated on the 1.8 branch?

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060731/036455.html

g.

Hi,

Gordon Henriksen wrote:

Is this patch incorporated on the 1.8 branch?

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060731/036455.html

This patch does work (tried it out), but for some reason I get one more unexpected lib/test-failure in favor of an expected pass (see attachment).

Kind regards,

Bram Adams
GH-SEL, INTEC, Ghent University (Belgium)

testresults.tar.bz2 (20.5 KB)

Is this patch incorporated on the 1.8 branch?

http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20060731/036455.html

This patch does work (tried it out), but for some reason I get one more unexpected lib/test-failure in favor of an expected pass (see attachment).

Thanks for finding this. I spoke with Chris and he felt it was an important enough fix to include in the 1.8 release. I have uploaded a new tar labeled llvm-1.8a.tar.gz to avoid confusion. The release branch in cvs has also been updated.

-Tanya