[Llvm-bgq-discuss] Patches for r176829-20130309 (the current vesta version)

Michael Kruse llvm-bgq-discuss at meinersbur.de
Wed Apr 17 12:22:47 CDT 2013


Hi,

originally I intended to send the following as part of a collection
with more problems I found and you might be interested in. But because
I do not have time at the moment for closer investigation, I just send
it now and will send the other problems sometime later. Please excuse
the premature style.



1. I found two cases where bgclang segfaults on code that works fine
with xlc (see added files).
The first is some inline asm, but I don't know whether inline asm is
supposed to work in clang.
The second uses IBM-style builtins.


2. bgclang is quite unreliable on inline assemble. With this:
asm (
            "dcbt       0,%[ptr]  \n"
            "dcbt  %[c64],%[ptr]  \n"
            "dcbt %[c128],%[ptr]  \n"
            "dcbt %[c192],%[ptr]  \n"
            "dcbt %[c256],%[ptr]  \n"
            "dcbt %[c320],%[ptr]  \n"
            : :
                [ptr] "+r" (ptr),
              [c64]  "b" (64),
              [c128] "b" (128),
              [c192] "b" (192),
              [c256] "b" (256),
              [c320] "b" (320)
        );

I sometimes get
error: invalid input constraint '+r' in asm
other times
fatal error: error in backend: Do not know how to split the result of
this operator!
(though I am not sure it's this piece of code, clang doesn't give me a location)


3. There is some issue with the inline functions. The IBM header files
seem to assume -fgnu89-inline (with -std=c99), otherwise I get
multiple definitions errors from the linker. I don't really
understand, because the IBM-supported gcc compiler shouldn't have this
problem either.


4. The unimplemented-errors using _Complex data type and compound
expressions ("+=") are inherited from clang?


Michael

2013/3/30 Hal Finkel <hfinkel at anl.gov>:
> Hello everyone,
>
> I've attached the patches for the currently-installed version on vesta (r176829-20130309). These apply to upstream revision r176829. This is the first released version to contain QPX autovectorization for single-precision values (in addition to many other improvements). I've also included the bgclang wrapper script and the libc++ build script (and the llvm build script and the exception_ptr.h wrapper header).
>
> Another user-visible change to mention: You no longer need to explicitly include the qpxintrin.h header to use the IBM-style QPX intrinsics. This header is now automatically included for you.
>
> For any of you doing first-time on-your-own installs (or anyone else), please feel free to ask questions about how all of this needs to be setup in practice.
>
> Sincerely,
> Hal
>
> --
> Hal Finkel
> Postdoctoral Appointee
> Leadership Computing Facility
> Argonne National Laboratory
>
> _______________________________________________
> llvm-bgq-discuss mailing list
> llvm-bgq-discuss at lists.alcf.anl.gov
> https://lists.alcf.anl.gov/mailman/listinfo/llvm-bgq-discuss
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: inlineasm.c
Type: text/x-csrc
Size: 6876 bytes
Desc: not available
URL: <http://lists.alcf.anl.gov/pipermail/llvm-bgq-discuss/attachments/20130417/961df000/attachment.c>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: lowercall64svr4.c
Type: text/x-csrc
Size: 7069 bytes
Desc: not available
URL: <http://lists.alcf.anl.gov/pipermail/llvm-bgq-discuss/attachments/20130417/961df000/attachment-0001.c>


More information about the llvm-bgq-discuss mailing list