[Bug target/65169] [5 Regression] r210201 miscompiles LLVM's TableGen on ppc64

amodra at gmail dot com gcc-bugzilla@gcc.gnu.org
Tue Feb 24 07:01:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65169

Alan Modra <amodra at gmail dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |amodra at gmail dot com

--- Comment #2 from Alan Modra <amodra at gmail dot com> ---
I couldn't reproduce this using svn llvm rev 230301, gcc-5 20150223, and
binutils 2.25.51.20150223.  I was building on a power7 box (because that's
where I happened to have my latest gcc build), so used -mcpu=power7
-mno-strict-align.  That ought to trigger the same block move code as
-mcpu=power8, and a quick visual inspection showed that to be the case.

I'm guessing that the "s/break/  eak/" difference Markus sees comes from
utils/TableGen/IntrinsicEmitter.cpp IntrinsicEmitter::EmitAttributes
    if (numAttrs) {
      OS << "      NumAttrs = " << numAttrs << ";\n";
      OS << "      break;\n";
      OS << "      }\n";

My generated code for the above looked good, and ran properly on power7. 
-mcpu=power8 code didn't look much different.

Markus, are you using gold?  (I wasn't.)  The strings are in a string merge
section, and I'm wondering if gold miscalculates some string offset.



More information about the Gcc-bugs mailing list