Hi Eric, here is my -emit-llvm -S -v output: Using built-in specs. COLLECT_GCC=gcc-4.5 COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.5.1/lto-wrapper Target: i686-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro 4.5.1-7ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.5 --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-plugin --enable-gold --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all --disable-werror --with-arch-32=i686 --with-tune=generic --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu --target=i686-linux-gnu Thread model: posix gcc version 4.5.1 (Ubuntu/Linaro 4.5.1-7ubuntu2) COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' /usr/lib/gcc/i686-linux-gnu/4.5.1/cc1 -quiet -v -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin hello.c -D_FORTIFY_SOURCE=2 -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version -fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so -o hello.s -fstack-protector GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version 3.0.0-p3, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Versions of loaded plugins: dragonegg: ignoring nonexistent directory "/usr/local/include/i686-linux-gnu" ignoring nonexistent directory "/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../i686-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/include /usr/lib/gcc/i686-linux-gnu/4.5.1/include /usr/lib/gcc/i686-linux-gnu/4.5.1/include-fixed /usr/include/i686-linux-gnu /usr/include End of search list. GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version 3.0.0-p3, MPC version 0.8.2 GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Versions of loaded plugins: dragonegg: Compiler executable checksum: ee807c30bb3adc8f3aa917a64443d0ec COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/ LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../:/lib/:/usr/lib/:/usr/lib/i686-linux-gnu/ COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' Eric Christopher-2 wrote:> > > On Mar 21, 2011, at 6:36 PM, stackunderflow wrote: > >> >> I try to generate a human readable .ll file on Linux. I installed >> llvm-gcc >> but as I see it can generate only assembly code (-S option). Is there any >> way to get something like what is generated by llvm online compiler? >> >> That's what I get with llvm-gcc -S -emit-llvm hello.c on Ubuntu 10.10: > > llvm-gcc -v ? > > -eric > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-- View this message in context: http://old.nabble.com/-emit-llvm-on-ubuntu-is-broken-tp31206382p31206493.html Sent from the LLVM - Dev mailing list archive at Nabble.com.
Looks like something wonky with DragonEgg. Duncan? -eric On Mar 21, 2011, at 7:05 PM, stackunderflow wrote:> > Hi Eric, > > here is my -emit-llvm -S -v output: > > Using built-in specs. > COLLECT_GCC=gcc-4.5 > COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.5.1/lto-wrapper > Target: i686-linux-gnu > Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro > 4.5.1-7ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs > --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr > --program-suffix=-4.5 --enable-shared --enable-multiarch > --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib > --without-included-gettext --enable-threads=posix > --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib --enable-nls > --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug > --enable-libstdcxx-time=yes --enable-plugin --enable-gold > --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all > --disable-werror --with-arch-32=i686 --with-tune=generic > --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu > --target=i686-linux-gnu > Thread model: posix > gcc version 4.5.1 (Ubuntu/Linaro 4.5.1-7ubuntu2) > COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' > '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' > /usr/lib/gcc/i686-linux-gnu/4.5.1/cc1 -quiet -v > -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin hello.c > -D_FORTIFY_SOURCE=2 -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin > -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version > -fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so -o hello.s > -fstack-protector > GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) > compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version 3.0.0-p3, > MPC version 0.8.2 > GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 > Versions of loaded plugins: > dragonegg: > ignoring nonexistent directory "/usr/local/include/i686-linux-gnu" > ignoring nonexistent directory > "/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../i686-linux-gnu/include" > #include "..." search starts here: > #include <...> search starts here: > /usr/local/include > /usr/lib/gcc/i686-linux-gnu/4.5.1/include > /usr/lib/gcc/i686-linux-gnu/4.5.1/include-fixed > /usr/include/i686-linux-gnu > /usr/include > End of search list. > GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) > compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version 3.0.0-p3, > MPC version 0.8.2 > GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 > Versions of loaded plugins: > dragonegg: > Compiler executable checksum: ee807c30bb3adc8f3aa917a64443d0ec > COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/ > LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../:/lib/:/usr/lib/:/usr/lib/i686-linux-gnu/ > COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' > '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' > > > > > > Eric Christopher-2 wrote: >> >> >> On Mar 21, 2011, at 6:36 PM, stackunderflow wrote: >> >>> >>> I try to generate a human readable .ll file on Linux. I installed >>> llvm-gcc >>> but as I see it can generate only assembly code (-S option). Is there any >>> way to get something like what is generated by llvm online compiler? >>> >>> That's what I get with llvm-gcc -S -emit-llvm hello.c on Ubuntu 10.10: >> >> llvm-gcc -v ? >> >> -eric >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >> >> > > -- > View this message in context: http://old.nabble.com/-emit-llvm-on-ubuntu-is-broken-tp31206382p31206493.html > Sent from the LLVM - Dev mailing list archive at Nabble.com. > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
I am new to LLVM, what do you mean by Duncan? Btw, I installed llvm from the repository: sudo apt-get install llvm llvm-gcc Eric Christopher-2 wrote:> > Looks like something wonky with DragonEgg. > > Duncan? > > -eric > > On Mar 21, 2011, at 7:05 PM, stackunderflow wrote: > >> >> Hi Eric, >> >> here is my -emit-llvm -S -v output: >> >> Using built-in specs. >> COLLECT_GCC=gcc-4.5 >> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.5.1/lto-wrapper >> Target: i686-linux-gnu >> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro >> 4.5.1-7ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs >> --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr >> --program-suffix=-4.5 --enable-shared --enable-multiarch >> --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib >> --without-included-gettext --enable-threads=posix >> --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib >> --enable-nls >> --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug >> --enable-libstdcxx-time=yes --enable-plugin --enable-gold >> --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all >> --disable-werror --with-arch-32=i686 --with-tune=generic >> --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu >> --target=i686-linux-gnu >> Thread model: posix >> gcc version 4.5.1 (Ubuntu/Linaro 4.5.1-7ubuntu2) >> COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' >> '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' >> /usr/lib/gcc/i686-linux-gnu/4.5.1/cc1 -quiet -v >> -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin hello.c >> -D_FORTIFY_SOURCE=2 -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin >> -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello >> -version >> -fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so -o hello.s >> -fstack-protector >> GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) >> compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version >> 3.0.0-p3, >> MPC version 0.8.2 >> GGC heuristics: --param ggc-min-expand=100 --param >> ggc-min-heapsize=131072 >> Versions of loaded plugins: >> dragonegg: >> ignoring nonexistent directory "/usr/local/include/i686-linux-gnu" >> ignoring nonexistent directory >> "/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../i686-linux-gnu/include" >> #include "..." search starts here: >> #include <...> search starts here: >> /usr/local/include >> /usr/lib/gcc/i686-linux-gnu/4.5.1/include >> /usr/lib/gcc/i686-linux-gnu/4.5.1/include-fixed >> /usr/include/i686-linux-gnu >> /usr/include >> End of search list. >> GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) >> compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version >> 3.0.0-p3, >> MPC version 0.8.2 >> GGC heuristics: --param ggc-min-expand=100 --param >> ggc-min-heapsize=131072 >> Versions of loaded plugins: >> dragonegg: >> Compiler executable checksum: ee807c30bb3adc8f3aa917a64443d0ec >> COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/ >> LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../:/lib/:/usr/lib/:/usr/lib/i686-linux-gnu/ >> COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' >> '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' >> >> >> >> >> >> Eric Christopher-2 wrote: >>> >>> >>> On Mar 21, 2011, at 6:36 PM, stackunderflow wrote: >>> >>>> >>>> I try to generate a human readable .ll file on Linux. I installed >>>> llvm-gcc >>>> but as I see it can generate only assembly code (-S option). Is there >>>> any >>>> way to get something like what is generated by llvm online compiler? >>>> >>>> That's what I get with llvm-gcc -S -emit-llvm hello.c on Ubuntu 10.10: >>> >>> llvm-gcc -v ? >>> >>> -eric >>> _______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/-emit-llvm-on-ubuntu-is-broken-tp31206382p31206493.html >> Sent from the LLVM - Dev mailing list archive at Nabble.com. >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-- View this message in context: http://old.nabble.com/-emit-llvm-on-ubuntu-is-broken-tp31206382p31206558.html Sent from the LLVM - Dev mailing list archive at Nabble.com.
Hi Eric,> Looks like something wonky with DragonEgg.you need to use -fplugin-arg-dragonegg-emit-ir or -flto with dragonegg, not -emit-llvm. Also, you currently have to use -S (getting human readable IR) rather than -c because with -c gcc will run cc1 with -S (getting human readable IR) then pass the result to the system assembler which of course barfs. This is documented on the web-page and in the README. Ciao, Duncan.> > Duncan? > > -eric > > On Mar 21, 2011, at 7:05 PM, stackunderflow wrote: > >> >> Hi Eric, >> >> here is my -emit-llvm -S -v output: >> >> Using built-in specs. >> COLLECT_GCC=gcc-4.5 >> COLLECT_LTO_WRAPPER=/usr/lib/gcc/i686-linux-gnu/4.5.1/lto-wrapper >> Target: i686-linux-gnu >> Configured with: ../src/configure -v --with-pkgversion='Ubuntu/Linaro >> 4.5.1-7ubuntu2' --with-bugurl=file:///usr/share/doc/gcc-4.5/README.Bugs >> --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr >> --program-suffix=-4.5 --enable-shared --enable-multiarch >> --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib >> --without-included-gettext --enable-threads=posix >> --with-gxx-include-dir=/usr/include/c++/4.5 --libdir=/usr/lib --enable-nls >> --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug >> --enable-libstdcxx-time=yes --enable-plugin --enable-gold >> --with-plugin-ld=ld.gold --enable-objc-gc --enable-targets=all >> --disable-werror --with-arch-32=i686 --with-tune=generic >> --enable-checking=release --build=i686-linux-gnu --host=i686-linux-gnu >> --target=i686-linux-gnu >> Thread model: posix >> gcc version 4.5.1 (Ubuntu/Linaro 4.5.1-7ubuntu2) >> COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' >> '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' >> /usr/lib/gcc/i686-linux-gnu/4.5.1/cc1 -quiet -v >> -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin hello.c >> -D_FORTIFY_SOURCE=2 -iplugindir=/usr/lib/gcc/i686-linux-gnu/4.5.1/plugin >> -quiet -dumpbase hello.c -mtune=generic -march=i686 -auxbase hello -version >> -fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so -o hello.s >> -fstack-protector >> GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) >> compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version 3.0.0-p3, >> MPC version 0.8.2 >> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 >> Versions of loaded plugins: >> dragonegg: >> ignoring nonexistent directory "/usr/local/include/i686-linux-gnu" >> ignoring nonexistent directory >> "/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../i686-linux-gnu/include" >> #include "..." search starts here: >> #include<...> search starts here: >> /usr/local/include >> /usr/lib/gcc/i686-linux-gnu/4.5.1/include >> /usr/lib/gcc/i686-linux-gnu/4.5.1/include-fixed >> /usr/include/i686-linux-gnu >> /usr/include >> End of search list. >> GNU C (Ubuntu/Linaro 4.5.1-7ubuntu2) version 4.5.1 (i686-linux-gnu) >> compiled by GNU C version 4.5.1, GMP version 4.3.2, MPFR version 3.0.0-p3, >> MPC version 0.8.2 >> GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 >> Versions of loaded plugins: >> dragonegg: >> Compiler executable checksum: ee807c30bb3adc8f3aa917a64443d0ec >> COMPILER_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/:/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/ >> LIBRARY_PATH=/usr/lib/gcc/i686-linux-gnu/4.5.1/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/i686-linux-gnu/4.5.1/../../../:/lib/:/usr/lib/:/usr/lib/i686-linux-gnu/ >> COLLECT_GCC_OPTIONS='-fplugin=/usr/lib/gcc/i686-linux-gnu/4.5/plugin/dragonegg.so' >> '-emit-llvm' '-S' '-v' '-mtune=generic' '-march=i686' >> >> >> >> >> >> Eric Christopher-2 wrote: >>> >>> >>> On Mar 21, 2011, at 6:36 PM, stackunderflow wrote: >>> >>>> >>>> I try to generate a human readable .ll file on Linux. I installed >>>> llvm-gcc >>>> but as I see it can generate only assembly code (-S option). Is there any >>>> way to get something like what is generated by llvm online compiler? >>>> >>>> That's what I get with llvm-gcc -S -emit-llvm hello.c on Ubuntu 10.10: >>> >>> llvm-gcc -v ? >>> >>> -eric >>> _______________________________________________ >>> LLVM Developers mailing list >>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >>> >>> >> >> -- >> View this message in context: http://old.nabble.com/-emit-llvm-on-ubuntu-is-broken-tp31206382p31206493.html >> Sent from the LLVM - Dev mailing list archive at Nabble.com. >> >> _______________________________________________ >> LLVM Developers mailing list >> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu >> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >
PS: I assume this is with debian's dragonegg package which has a script called "llvm-gcc" which runs gcc-4.5+dragonegg. It would be neat if the script intercepted -emit-llvm and turned it into the right thing, but last time I look this wasn't implemented.