[Llvm-bgq-discuss] qpxintrin.h not compatible with asm files

Thomas Gooding tgooding at us.ibm.com
Thu Jun 20 16:45:53 CDT 2013


Hi,

I'm not sure if this is a known issue, but it appears that qpxintrin.h is
included when the source file is assembly run through the C preprocessor.
Digging around a bit, i'd guess there should be an additional check
somewhere in src/tools/clang/lib/Frontend/CompilerInvocation.cpp to prevent
the include.  But i'm not quite sure what it should be:
           // FIXME: Should be check target arch. also?
           if (Args.getLastArgValue(OPT_target_cpu) == "a2q" &&
               !Args.hasArg(OPT_mno_qpx))
             Opts.Includes.push_back("qpxintrin.h");

I was able to workaround by adding -D_QPXINTRIN_H_INCLUDED to my build.

Example:
      [tgooding at bgqfen6 src]$ cat foo.S
      // foo

      [tgooding at bgqfen6
      src]$ /bghome/tgooding/llvm/r184137-20130617/bin/bgclang -c foo.S
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:
 Assembler messages:
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:27:
 Error: Unrecognized opcode: `typedef'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:33:
 Error: Unrecognized opcode: `static'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:34:
 Error: Unrecognized opcode: `vec_ld'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:35:
 Error: Unrecognized opcode: `return'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:36:
 Error: junk at end of line, first unrecognized character is `}'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:38:
 Error: Unrecognized opcode: `static'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:39:
 Error: Unrecognized opcode: `vec_lda'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:40:
 Error: Unrecognized opcode: `return'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:41:
 Error: junk at end of line, first unrecognized character is `}'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:43:
 Error: Unrecognized opcode: `static'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:44:
 Error: Unrecognized opcode: `vec_ld'
      /bghome/tgooding/llvm/r184137-20130617/bin/../lib/clang/3.4/include/qpxintrin.h:45:
 Error: Unrecognized opcode: `return'
      ....  many more errors ....


Thanks!
Tom

Tom Gooding
Senior Engineer / Blue Gene Kernels
507-253-0747  (internal:  553-0747)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alcf.anl.gov/pipermail/llvm-bgq-discuss/attachments/20130620/753fa237/attachment.html>


More information about the llvm-bgq-discuss mailing list