[llvm-dev] (no subject) (original) (raw)
Alberto Barbaro via llvm-dev llvm-dev at lists.llvm.org
Sun Jan 20 01:48:57 PST 2019
- Previous message: [llvm-dev] Google Summer of Code 2019: projects needed
- Next message: [llvm-dev] (no subject)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hi all, I have the following C code:
#include<stdio.h>
int main(int argc, char *argv[]) {
printf("%s\n", argv[0]);
return argc;
}
that generates the following IR for the main function:
; Function Attrs: noinline nounwind optnone uwtable define i32 @main(i32, i8**) #0 { %3 = alloca i32, align 4 %4 = alloca i32, align 4 %5 = alloca i8**, align 8 store i32 0, i32* %3, align 4 store i32 %0, i32* %4, align 4 store i8** %1, i8*** %5, align 8 %6 = load i8**, i8*** %5, align 8 %7 = getelementptr inbounds i8*, i8** %6, i64 0 %8 = load i8*, i8** %7, align 8 %9 = call i32 (i8*, ...) @printf(i8* getelementptr inbounds ([4 x i8], [4 x i8]* @.str, i32 0, i32 0), i8* %8) %10 = load i32, i32* %4, align 4 ret i32 %10 }
I think %8 will contain the address of argv[0], so %7 was storing a pointer to pointer to argv? I'm not sure of that.
Considering that I can access the GenericValue set by visitGetElementPtrInst. How can I obtain the value of argv[0] at runtime using the Interpreter class?
Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190120/949253e7/attachment.html>
- Previous message: [llvm-dev] Google Summer of Code 2019: projects needed
- Next message: [llvm-dev] (no subject)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]