Frank Winter via llvm-dev
2016-Feb-03 16:16 UTC
[llvm-dev] opt with Polly doesn't find the passes
On 02/03/2016 11:06 AM, Tobias Grosser wrote:> On 02/03/2016 04:46 PM, Frank Winter via llvm-dev wrote: >> >> >> On 02/03/2016 10:41 AM, Tobias Grosser wrote: >>> On 02/03/2016 04:37 PM, Frank Winter wrote: >>>> Hi Tobias, >>>> >>>> I tried to invoke other passes and none of them are available, e.g.: >>>> >>>> ~/toolchain/install/llvm-3.8/bin/opt -load >>>> ~/toolchain/install/llvm-3.8/lib/libPolly.so -polly-cleanup >>>> >>>> opt: Unknown command line argument '-polly-cleanup'. Try: >>>> '/home/fwinter/toolchain/install/llvm-3.8/bin/opt -help' >>>> opt: Did you mean '-polly-tiling'? >>> >>> I assume -polly-cleanup still shows in -help-hidden? >> >> No, it doesn't show. It never did. It looks to me that only the clang >> options show in -help-hidden but not the passes. Can that be right? > > No, it can not. Interesting observation. > >>>> I am just shooting around hoping to get a clue what's going on... >>>> >>>> On thing.. I recall reading the polly documentation that there was the >>>> option to link opt statically with the polly library which I did not >>>> select. But that's likely not the problem since a lot of polly options >>>> are apparently there. >>>> >>>> Out of ideas for now. >>> >>> This is surprising, indeed. >>> >>> The option is: LINK_POLLY_INTO_TOOLS:BOOL=ON. It might be worth giving >>> it a try. >>> >>> What ubuntu version are you on precisely? I can try the 3.8 branch >>> tonight myself. >> >> Ubuntu 14.04 LTS x86-64. > > Thanks. If you have cycles to try a LINK_POLLY_INTO_TOOLS:BOOL=ON build > on your side, this would be great. > > Another data-point that might be of help is to just run the script at > http://polly.llvm.org/get_started.html to install everything. This > installs trunk the way it is tested and run by us day-to-day (myself > using Ubuntu x86-64). This should be the most basic test that should work. >The polly.sh script builds LLVM with static linkage and thus would create a libPolly.a, right? This cannot be loaded into 'opt' nor would 'opt' be linked with polly. I'd need a polly-enabled opt. I can try and build trunk (instead of the release_38 branch). Best, Frank> Best, > Tobias
Tobias Grosser via llvm-dev
2016-Feb-03 16:28 UTC
[llvm-dev] opt with Polly doesn't find the passes
On 02/03/2016 05:16 PM, Frank Winter wrote:> > > On 02/03/2016 11:06 AM, Tobias Grosser wrote: >> On 02/03/2016 04:46 PM, Frank Winter via llvm-dev wrote: >>> >>> >>> On 02/03/2016 10:41 AM, Tobias Grosser wrote: >>>> On 02/03/2016 04:37 PM, Frank Winter wrote: >>>>> Hi Tobias, >>>>> >>>>> I tried to invoke other passes and none of them are available, e.g.: >>>>> >>>>> ~/toolchain/install/llvm-3.8/bin/opt -load >>>>> ~/toolchain/install/llvm-3.8/lib/libPolly.so -polly-cleanup >>>>> >>>>> opt: Unknown command line argument '-polly-cleanup'. Try: >>>>> '/home/fwinter/toolchain/install/llvm-3.8/bin/opt -help' >>>>> opt: Did you mean '-polly-tiling'? >>>> >>>> I assume -polly-cleanup still shows in -help-hidden? >>> >>> No, it doesn't show. It never did. It looks to me that only the clang >>> options show in -help-hidden but not the passes. Can that be right? >> >> No, it can not. Interesting observation. >> >>>>> I am just shooting around hoping to get a clue what's going on... >>>>> >>>>> On thing.. I recall reading the polly documentation that there was the >>>>> option to link opt statically with the polly library which I did not >>>>> select. But that's likely not the problem since a lot of polly options >>>>> are apparently there. >>>>> >>>>> Out of ideas for now. >>>> >>>> This is surprising, indeed. >>>> >>>> The option is: LINK_POLLY_INTO_TOOLS:BOOL=ON. It might be worth giving >>>> it a try. >>>> >>>> What ubuntu version are you on precisely? I can try the 3.8 branch >>>> tonight myself. >>> >>> Ubuntu 14.04 LTS x86-64. >> >> Thanks. If you have cycles to try a LINK_POLLY_INTO_TOOLS:BOOL=ON build >> on your side, this would be great. >> >> Another data-point that might be of help is to just run the script at >> http://polly.llvm.org/get_started.html to install everything. This >> installs trunk the way it is tested and run by us day-to-day (myself >> using Ubuntu x86-64). This should be the most basic test that should >> work. >> > > The polly.sh script builds LLVM with static linkage and thus would > create a libPolly.a, right? This cannot be loaded into 'opt' nor would > 'opt' be linked with polly. I'd need a polly-enabled opt.By default it builds as a loadable module (not using LINK_POLLY_INTO_TOOLS), if this is what you mean by 'static linkage'. Even when using LINK_POLLY_INTO_TOOLS=ON, Polly will be available in both clang and opt (as it will be linked into both).> I can try and build trunk (instead of the release_38 branch).This could give us at least another data point, as I don't really see what is going on here. Best, Tobias
Frank Winter via llvm-dev
2016-Feb-03 16:49 UTC
[llvm-dev] opt with Polly doesn't find the passes
On 02/03/2016 11:28 AM, Tobias Grosser wrote:> On 02/03/2016 05:16 PM, Frank Winter wrote: >> >> >> On 02/03/2016 11:06 AM, Tobias Grosser wrote: >>> On 02/03/2016 04:46 PM, Frank Winter via llvm-dev wrote: >>>> >>>> >>>> On 02/03/2016 10:41 AM, Tobias Grosser wrote: >>>>> On 02/03/2016 04:37 PM, Frank Winter wrote: >>>>>> Hi Tobias, >>>>>> >>>>>> I tried to invoke other passes and none of them are available, e.g.: >>>>>> >>>>>> ~/toolchain/install/llvm-3.8/bin/opt -load >>>>>> ~/toolchain/install/llvm-3.8/lib/libPolly.so -polly-cleanup >>>>>> >>>>>> opt: Unknown command line argument '-polly-cleanup'. Try: >>>>>> '/home/fwinter/toolchain/install/llvm-3.8/bin/opt -help' >>>>>> opt: Did you mean '-polly-tiling'? >>>>> >>>>> I assume -polly-cleanup still shows in -help-hidden? >>>> >>>> No, it doesn't show. It never did. It looks to me that only the clang >>>> options show in -help-hidden but not the passes. Can that be right? >>> >>> No, it can not. Interesting observation. >>> >>>>>> I am just shooting around hoping to get a clue what's going on... >>>>>> >>>>>> On thing.. I recall reading the polly documentation that there was >>>>>> the >>>>>> option to link opt statically with the polly library which I did not >>>>>> select. But that's likely not the problem since a lot of polly >>>>>> options >>>>>> are apparently there. >>>>>> >>>>>> Out of ideas for now. >>>>> >>>>> This is surprising, indeed. >>>>> >>>>> The option is: LINK_POLLY_INTO_TOOLS:BOOL=ON. It might be worth giving >>>>> it a try. >>>>> >>>>> What ubuntu version are you on precisely? I can try the 3.8 branch >>>>> tonight myself. >>>> >>>> Ubuntu 14.04 LTS x86-64. >>> >>> Thanks. If you have cycles to try a LINK_POLLY_INTO_TOOLS:BOOL=ON build >>> on your side, this would be great. >>> >>> Another data-point that might be of help is to just run the script at >>> http://polly.llvm.org/get_started.html to install everything. This >>> installs trunk the way it is tested and run by us day-to-day (myself >>> using Ubuntu x86-64). This should be the most basic test that should >>> work. >>> >> >> The polly.sh script builds LLVM with static linkage and thus would >> create a libPolly.a, right? This cannot be loaded into 'opt' nor would >> 'opt' be linked with polly. I'd need a polly-enabled opt. > > By default it builds as a loadable module (not using > LINK_POLLY_INTO_TOOLS), if this is what you mean by 'static linkage'. >By static linkage I mean building LLVM with -DBUILD_SHARED_LIBS="OFF" (or omitting the option entirely, as I think that is the default). I built the release_38 branch (llvm,clang and polly) with cmake -G "Unix Makefiles" \ -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE \ -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX \ -DLLVM_TARGETS_TO_BUILD=$LLVM_TARGETS_TO_BUILD \ $SRC and that created the 'libPolly.a' and polly was not linked into 'opt'. What I am building at the minute is: svn co http://llvm.org/svn/llvm-project/llvm/trunk llvm-trunk svn co http://llvm.org/svn/llvm-project/polly/trunk llvm-trunk/tools/polly svn co http://llvm.org/svn/llvm-project/cfe/trunk llvm-trunk/tools/clang SRC=$HOME/svn/llvm-trunk CMAKE_BUILD_TYPE="Debug" CMAKE_INSTALL_PREFIX="$HOME/toolchain/install/llvm-trunk" LLVM_TARGETS_TO_BUILD="X86" cmake -G "Unix Makefiles" \ -DBUILD_SHARED_LIBS="ON" \ -DCMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE \ -DCMAKE_INSTALL_PREFIX=$CMAKE_INSTALL_PREFIX \ -DLLVM_TARGETS_TO_BUILD=$LLVM_TARGETS_TO_BUILD \ $SRC make -j $number_of_CPUs Thus, the only difference is that it uses trunk instead of release_38. If the created 'opt' still doesn't find the polly passes I will go with your suggestion and add the option LINK_POLLY_INTO_TOOLS=ON. However, I have a strong feeling there's something haywire in the release_38 branch regards this. Best, Frank> Even when using LINK_POLLY_INTO_TOOLS=ON, Polly will be available in > both clang and opt (as it will be linked into both). > >> I can try and build trunk (instead of the release_38 branch). > > This could give us at least another data point, as I don't really see > what is going on here. > > Best, > Tobias