llvm

What is the reason for the creation of LLVM?

What are the differences between an LLVM and a regular compiler? Is it more dynamic and thus can be used to compile normally very dynamic languages (i.e. Javascript) into static binary code? What are the principles behind creating one? I know the Dragon Book for compilers, but is there such a thing for a LLVM? Thanks in advance, Omer....

Build 32-bit with 64-bit llvm-gcc

I have a 64-bit version of llvm-gcc, but I want to be able to build both 32-bit and 64-bit binaries. Is there a flag for this? I tried passing -m32 (which works on the regular gcc), but I get an error message like this: [jay@andesite]$ llvm-gcc -m32 test.c -o test Warning: Generation of 64-bit code for a 32-bit processor requested. Warn...

Xcode 3.2.1 GCC CLANG and LLVM demystification

The readme included with the new Xcode 3.2.1 this week says the following: Static code analysis is fully integrated within the Xcode IDE via the Build and Analyze option under the Build menu or via custom build settings GCC 4.2 is the default system compiler for the 10.6 SDK The optional LLVM compiler is included using two different fr...

Is LLVM an exception to the rule for avoiding dynamic casts?

LLVM has it's own hand rolled alternative to RTTI that is a speed improvement over built-in RTTI and allows dynamic casting to classes with no vtable (dyn_cast). However, it can still be used in exactly the way that dynamic_cast<> is used though it does allow it to be used with more classes. dyn_cast<> template documentation LLVM is a ...

How to detect LLVM and its version through #define directives?

The question is quite clear I think. I'm trying to write a compiler detection header to be able to include in the application information on which compiler was used and which version. This is part of the code I'm using: /* GNU C Compiler Detection */ #elif defined __GNUC__ #ifdef __MINGW32__ #define COMPILER "MinGW GCC %d.%...

Built in Analyzer in Xcode 3.1.4

Hi all, I wonder if the built in Analyzer in Xcode 3.1.4 makes it redundant to use LLVM/Clang Static Analyzer separately? Please refer to the original article here: Finding memory leaks with the LLVM/Clang Static Analyzer Thanks. ...

LLVM Clang 2.6 and Xcode 3.2!

So, I've just downloaded the LLVM Clang (2.6) binaries. Mac OS X 10.6 comes with Clang 1.0.Do you know how to integrate a later version of Clang with the Xcode 3.2.x IDE? Just overwriting files seems a little bit risky. ...

When choosing a functional programming language for use with LLVM, what are the trade-offs?

Let's assume for the moment that C++ is not a functional programming language. If you want to write a compiler using LLVM for the back-end, and you want to use a functional programming language and its bindings to LLVM to do your work, you have two choices as far as I know: Objective Caml and Haskell. If there are others, then I'd like...

LLVM MinGW installation on Vista?

From llvm.org I've downloaded llvm-2.6-x86-mingw32.tar.bz2 into c:\llvm and llvm-gcc-4.2-2.6-x86-mingw32-tar.bz2 into c:\llvm-gcc as well as setup a desktop shortcut the following batch file in c:\llvm-gcc which attempts to setup an environment for compiling via the llvm-gcc command line too: @echo off color 0E echo Configuring LLVM env...

Call the LLVM Jit from c program

Hello, I am new with LLVM and i just played around with it for a couple of days. I generated a bc file with the online compiler on llvm.org and i would like to know if it was possible to load this bc file from a c or c++ program, execute the IR in the bc file with the llvm jit (programmatically in the c program) and get the result back...

How do I see the llvm intermidiate representation in Xcode

I'm compiling with clang-llvm 1.0 on Xcode 3.2.1 I want to see LLVM's intermidiate representation. How do I do this ? Thanks. ...

Bootstrapping a language on LLVM

I'm bootstrapping a programming language compiler on top of LLVM. Currently I'm mostly done writing a compiler for a subset of C which is self-compiling. When I'm finished with that, I'll bootstrap my language away from C, maintaining self-compilation as I go. Since the compiler is self-compiling, any features of C that I use I will h...

Pros/Cons of Static and Dynamic Instrumentation

There are many static and dynamic instrumentation tools. Soot is a static instrumentation tool for Java bytecode. Pin and Valgrind are dynamic instrumentation tools for binaries. What are pros and cons for static and dynamic instrumentation tools? I think static instrumentation tools are better in terms of runtime performance, whereas d...

How to build LLVM using GCC 4 on Windows?

I have been able to build LLVM 2.6 (the llvm-2.6.tar.gz package) using MinGW GCC 3.4.5. I haven't tested properly, but it seems to work. The trouble is, I have libraries of my own which don't build using GCC3, but which work fine in GCC4 (template issues). I believe the first official GCC4 version for MinGW is GCC 4.4.0. EDIT Declutte...

Why isn't there a good scheme/lisp on llvm?

There is Gambit scheme, MIT scheme, PLT scheme, chicken scheme, bigloo, larceny, ...; then there are all the lisps. Yet, there's not (to my knowledge) a single popular scheme/lisp on LLVM, even though LLVM provides lots of nice things like: easier to generate code than x85 easy to make C ffi calls ... So why is it that there isn't a...

How to generate LLVM IR with ANTLR and C target

Hi, im currently trying to generate LLVM IR with ANTLR3. But the problem ist, that i need the C target (C++ would be better but is not working yet, or is it?) but from C i can't call the LLVM C++ API for Building the IR. The Tutorial from Terence Parr uses Java and the StringTemplate lib. But as i know the StringTemplate lib ist not a...

Can gems be used by ruby code compiled with macrubyc

MacRuby 0.5 includes a ruby compiler built on LLVM called macrubyc. Does anyone know if it would be possible to dynamically load gems from compiled code? Or compile the gems and link them in? Is this planned? Or how compiled code will be able to make use of gems in general. ...

try/throw blocks when writing new front-end for llvm

llvm-config puts -fno-exceptions in the LDFLAGS for linking llvm itself. Am I right in assuming this means that I cannot use normal C++ try/throw blocks in code (such as a new language front-end) that link against the llvm compiler? I'm not talking about programs the compiler produces, but the compiler itself. I do not want to meddle ...

GCC Undefined symbols

I recently ditched MacPorts for Homebrew, as a result im now experiencing some issues with make. Namely this error: /Developer/usr/bin/llvm-gcc -rdynamic -o zsh main.o `cat stamp-modobjs` -liconv -ldl -ltermcap -lm -lc Undefined symbols: "_libiconv_open", referenced from: llvm bitcode in utils.o "_libiconv_close", refer...

Debugging an llvm pass with gdb

Is it possible to debug an llvm pass using gdb? I couldn't find any docs on the llvm site. ...