[LLVMdev] dragonegg polly support broken?

Jack Howarth
Sun, 21 Oct 2012 17:57:36 -0000

On Sun, Oct 21, 2012 at 10:38:48AM -0700, Tobias Grosser
wrote:
> On 10/21/2012 09:13 AM, Jack Howarth wrote:
>> On Sun, Oct 21, 2012 at 08:38:21AM -0700, Tobias Grosser wrote:
>>> On 10/20/2012 05:38 PM, Jack Howarth wrote:
>>>> Duncan,
>>>>       Is the documentation for using Polly support in dragonegg
correct? I built llvm/polly/dragonegg
>>>> using the documentation at
http://polly.llvm.org/example_load_Polly_into_dragonegg.html
>>>> with...
>>>>
>>>> GCC=/sw/lib/gcc4.7/bin/gcc-4
LLVM_CONFIG=/sw/opt/llvm-3.2/bin/llvm-config ENABLE_LLVM_PLUGINS=1 make
CPPFLAGS="-DENABLE_LTO -I/sw/include"
>>>>
>>>> The resulting dragonegg plugin works fine as...
>>>>
>>>> /sw/lib/gcc4.7/bin/gcc-4
-fplugin=/sw/lib/gcc4.7/lib/dragonegg.so -O3  himenoBMTxpa.c
>>>>
>>>> but if I try to invoke polly with...
>>>>
>>>> /sw/lib/gcc4.7/bin/gcc-4
-fplugin=/sw/lib/gcc4.7/lib/dragonegg.so -O3
-fplugin-arg-dragonegg-llvm-option=load:/sw/opt/llvm-3.2/lib/LLVMPolly.dylib
himenoBMTxpa.c
>>>>
>>>>
>>>> I get the error...
>>>>
>>>> cc1: Unknown command line argument
'load=/sw/opt/llvm-3.2/lib/LLVMPolly.dylib'.  Try: 'cc1 -help'
>>>
>>> I think the website is wrong. You probably need to add a
'-' before the
>>> 'load'. See the following:
>>>
>>>
"-fplugin-arg-dragonegg-llvm-option=-load:/sw/opt/llvm-3.2/lib/LLVMPolly.dylib"
>>>
>>> Please let me know if this works, such that I can update the
website.
>>
>> Tobias,
>>     This solves the previous problem but exposes another...
>
> Great, I checked in the website fix in:
>
> https://llvm.org/svn/llvm-project/polly/trunk at 166396
>
>>
>> [MacBookPro:~] howarth% /sw/lib/gcc4.7/bin/gcc-4
-fplugin=/sw/lib/gcc4.7/lib/dragonegg.so -O3
-fplugin-arg-dragonegg-llvm-option=-load:/sw/opt/llvm-3.2/lib/LLVMPolly.dylib
himenoBMTxpa.c -v
>> himenoBMTxpa.c:248:5: warning: incompatible implicit declaration of
built-in function ‘free’ [enabled by default]
>> dyld: lazy symbol binding failed: fast lazy bind offset out of range
(39257, max=7640) in image
/sw/lib/gcc4.7/libexec/gcc/x86_64-apple-darwin11.4.2/4.7.2/cc1
>> dyld: fast lazy bind offset out of range (39257, max=7640) in image
/sw/lib/gcc4.7/libexec/gcc/x86_64-apple-darwin11.4.2/4.7.2/cc1
>> gcc-4: internal compiler error: Trace/BPT trap: 5 (program cc1)
>> Please submit a full bug report,
>> with preprocessed source if appropriate.
>> See <http://gcc.gnu.org/bugs.html> for instructions.
>>
>> I'll open a bugzilla for this one.
>
> Yes, please do. This is an interesting problem. I have no solution of
> the top of my head.

Done... http://llvm.org/bugs/show_bug.cgi?id=14140. I'll ping the MacPorts
maintainers of their llvm-3.2 package to update
it to contain polly as well. This, with a rebuild of their dragonegg-3.2
package, should provide the Apple programmers with
pre-built binaries to debug this issue without tainting themselves with GPLv3
code.

Can you take a look at lvm.org/bugs/show_bug.cgi?id=14135 as well? We need to
avoid using LLVM_SHLIBEXT in the test
subdirectory because this is defined to '.dylib' on darwin while Polly
correctly builds the loadable module with the
'.so' suffix causing almost all of the testsuite to fail with 'make
test-polly'. Thanks in advance.
          Jack

>
> Tobi