Trivial hello world program compiles with -O3, but with -O4: (BTW, is there a guide to what different -On mean?) llvm-g++ -O4 Hello.cc -o Hello -v Using built-in specs. Target: x86_64-unknown-linux-gnu Configured with: ../llvm-gcc4.2-2.4.source/configure --program-prefix=llvm- --enable-llvm=/home/nbecker/llvm-2.4 --enable-languages=c,c++ Thread model: posix gcc version 4.2.1 (Based on Apple Inc. build 5623) (LLVM build) /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.2.1/cc1plus -quiet -v -D_GNU_SOURCE Hello.cc -emit-llvm-bc -o /tmp/ccSmWWEd.o -quiet -dumpbase Hello.cc -mtune=generic -auxbase Hello -O4 -version ignoring nonexistent directory "NONE/include" ignoring nonexistent directory "/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../x86_64-unknown-linux-gnu/include" #include "..." search starts here: #include <...> search starts here: /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../include/c++/4.2.1 /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../include/c++/4.2.1/x86_64-unknown-linux-gnu /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../include/c++/4.2.1/backward /usr/local/include /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/include /usr/include End of search list. GNU C++ version 4.2.1 (Based on Apple Inc. build 5623) (LLVM build) (x86_64-unknown-linux-gnu) compiled by GNU C version 4.2.1 (Based on Apple Inc. build 5623) (LLVM build). GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 Compiler executable checksum: 26eb4db010da15498df7bcf5e48c8f45 /usr/local/libexec/gcc/x86_64-unknown-linux-gnu/4.2.1/collect2 --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o Hello /usr/lib/../lib64/crt1.o /usr/lib/../lib64/crti.o /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/crtbegin.o -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1 -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../../../lib64 -L/lib/../lib64 -L/usr/lib/../lib64 -L/usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/../../.. /tmp/ccSmWWEd.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/local/lib/gcc/x86_64-unknown-linux-gnu/4.2.1/crtend.o /usr/lib/../lib64/crtn.o /tmp/ccSmWWEd.o: file not recognized: File format not recognized collect2: ld returned 1 exit status
On Wed, Nov 12, 2008 at 6:40 PM, Neal Becker <ndbecker2 at gmail.com> wrote:> Trivial hello world program compiles with -O3, but with -O4:Correct. O4 emits bytecode. Your linker should be able to "understand" LLVM IR in .o files. -- With best regards, Anton Korobeynikov Faculty of Mathematics and Mechanics, Saint Petersburg State University