Skip to content

Instantly share code, notes, and snippets.

@aamedina
Last active August 29, 2015 14:01
Show Gist options
  • Select an option

  • Save aamedina/b23811fa7d0909b279a3 to your computer and use it in GitHub Desktop.

Select an option

Save aamedina/b23811fa7d0909b279a3 to your computer and use it in GitHub Desktop.
declare i8* @dlopen(i8*, i32)
declare i8* @dlsym(i8*, i8*)
declare i32 @dlclose(i8*)
declare i32 @puts(i8*)
declare i32 @printf(i8*, ...) nounwind
declare i8* @LLVMModuleCreateWithName(i8*)
declare void @LLVMDumpModule(i8*)
@.str = private constant [4 x i8] c"%s\0A\00"
@.llvm = private constant [29 x i8] c"/usr/local/lib/libLLVM.dylib\00"
@.name = constant [8 x i8] c"clojure\00"
define i32 @main(i32 %argc, i8** %argv) {
%path = getelementptr [29 x i8]* @.llvm, i32 0, i32 0
%dylib = call i8* @dlopen(i8* %path, i32 2)
%name = getelementptr [8 x i8]* @.name, i32 0, i32 0
%module = call i8* @LLVMModuleCreateWithName(i8* %name)
call void @LLVMDumpModule(i8* %module)
call i32 @dlclose(i8* %dylib)
ret i32 0
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment