Jakub (Kuba) Kuderski via llvm-dev
2019-Jan-28 18:23 UTC
[llvm-dev] How to generate .bc file using configure && make on Mac OS X?
I did a sanity check and run some of the bitcode I complied with gllvm and it seems to work fine under lli. The only issues is to make sure you load all the (external) libraries the bitcode needs. I highly suggest you run a debug version of lli under a debugger and see what exactly happens. On Mon, Jan 28, 2019 at 12:45 PM Peng Yu <pengyu.ut at gmail.com> wrote:> It seems that it does not really work. When I run the generated .bc > file, it gives me the following error. Do you what is wrong? > > $ lli bash.bc > Stack dump: > 0. Program arguments: lli bash.bc > 0 lli 0x0000000105153922 > llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 37 > 1 lli 0x0000000105153d26 SignalHandler(int) + 200 > 2 libsystem_platform.dylib 0x00007fff7d6daf5a _sigtramp + 26 > 3 libsystem_platform.dylib 0x00007ffeeb06cb20 _sigtramp + 1838750688 > 4 lli 0x0000000104ed5045 > llvm::MCJIT::runFunction(llvm::Function*, > llvm::ArrayRef<llvm::GenericValue>) + 535 > 5 lli 0x0000000104e67ae7 > llvm::ExecutionEngine::runFunctionAsMain(llvm::Function*, > std::__1::vector<std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> >, > std::__1::allocator<std::__1::basic_string<char, > std::__1::char_traits<char>, std::__1::allocator<char> > > > const&, > char const* const*) + 1159 > 6 lli 0x0000000104b94b84 main + 9104 > 7 libdyld.dylib 0x00007fff7d3cc015 start + 1 > Segmentation fault: 11 > > On Mon, Jan 28, 2019 at 10:40 AM Jakub (Kuba) Kuderski > <kubakuderski at gmail.com> wrote: > >> > >> but doesn't emit optnone and nounwind attributes > > > > s/nounwind/noinline > > > > On Mon, Jan 28, 2019 at 11:35 AM Jakub (Kuba) Kuderski < > kubakuderski at gmail.com> wrote: > >> > >> As far as I understand, gllvm doesn't run LTO pipeline or any > cross-module optimization, and the optimization level provided is only used > to compile each Translation Unit separately. > >> If you want to have LTO-like build, you can first run gllvm with `-O3 > -Xclang -disable-llvm-optzns` (builds code with no optimizations, but > doesn't emit optnone and nounwind attributes) and later run opt on the > final bitcode. Note that the results might not be the same as running a > proper LTO build because of different pass manager pipelines. > >> > >> On Mon, Jan 28, 2019 at 11:24 AM Peng Yu <pengyu.ut at gmail.com> wrote: > >>> > >>> This works great. > >>> > >>> > You can also try using the gllvm wrapper: > https://github.com/SRI-CSL/gllvm ; it's quite reliable and easy to use in > my experience. > >>> > >>> Just to be sure. Only one version of bc file will be generated that > >>> corresponds to the compiler options provide at configure? > >>> > >>> The original approach using ld.gold will provide several .bc files > >>> that correspond to different stages of the optimization. > >>> > >>> I think using gllvm, I need to specify the corresponding -O? option to > >>> the correct optimization stage of the bc file? Thanks. > >>> > >>> -- > >>> Regards, > >>> Peng > >> > >> > >> > >> -- > >> Jakub Kuderski > > > > > > > > -- > > Jakub Kuderski > > > > -- > Regards, > Peng >-- Jakub Kuderski -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190128/96112ac6/attachment.html>
Peng Yu via llvm-dev
2019-Jan-28 18:44 UTC
[llvm-dev] How to generate .bc file using configure && make on Mac OS X?
Could you try the bash source code to see if you see the same errors? It should just take a few minutes to configure/compile. Thanks. https://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz> I did a sanity check and run some of the bitcode I complied with gllvm and it seems to work fine under lli. The only issues is to make sure you load all the (external) libraries the bitcode needs. I highly suggest you run a debug version of lli under a debugger and see what exactly happens.-- Regards, Peng
Jakub (Kuba) Kuderski via llvm-dev
2019-Jan-28 19:30 UTC
[llvm-dev] How to generate .bc file using configure && make on Mac OS X?
It did work for me with llvm-5.0. I don't have time run it on newer versions. ``` wget https://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz tar xvf bash-5.0.tar.gz cd bash-5.0 mkdir build; cd build export LLVM_COMPILER_PATH=my_llvm_dir/bin export CC=gclang export CXX=gclang++ ../configure make -j32 for i in $(find . -executable -and -type f) ; do echo $i ; extract-bc $i ; done lli bash.bc -c "echo 'test''" ``` On Mon, Jan 28, 2019 at 1:44 PM Peng Yu <pengyu.ut at gmail.com> wrote:> Could you try the bash source code to see if you see the same errors? > It should just take a few minutes to configure/compile. Thanks. > > https://ftp.gnu.org/gnu/bash/bash-5.0.tar.gz > > > I did a sanity check and run some of the bitcode I complied with gllvm > and it seems to work fine under lli. The only issues is to make sure you > load all the (external) libraries the bitcode needs. I highly suggest you > run a debug version of lli under a debugger and see what exactly happens. > > -- > Regards, > Peng >-- Jakub Kuderski -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190128/30e14731/attachment.html>