You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
109 lines
2.5 KiB
109 lines
2.5 KiB
; ModuleID = 'asdf'
|
|
|
|
declare i32 @getchar()
|
|
|
|
declare i32 @putchar(i32)
|
|
|
|
define i32 @main() {
|
|
%malloccall = tail call i8* @malloc(i32 mul (i32 ptrtoint (i8* getelementptr (i8* null, i32 1) to i32), i32 100))
|
|
call void @llvm.memset.p0i8.i32(i8* %malloccall, i8 0, i32 100, i32 1, i1 false)
|
|
%1 = getelementptr i8* %malloccall, i32 50
|
|
%2 = load i8* %1
|
|
%3 = add i8 %2, 1
|
|
store i8 %3, i8* %1
|
|
%4 = load i8* %1
|
|
%5 = add i8 %4, 1
|
|
store i8 %5, i8* %1
|
|
%6 = load i8* %1
|
|
%7 = add i8 %6, 1
|
|
store i8 %7, i8* %1
|
|
%8 = load i8* %1
|
|
%9 = add i8 %8, 1
|
|
store i8 %9, i8* %1
|
|
%10 = load i8* %1
|
|
%11 = add i8 %10, 1
|
|
store i8 %11, i8* %1
|
|
%12 = load i8* %1
|
|
%13 = add i8 %12, 1
|
|
store i8 %13, i8* %1
|
|
%14 = load i8* %1
|
|
%15 = add i8 %14, 1
|
|
store i8 %15, i8* %1
|
|
%16 = load i8* %1
|
|
%17 = add i8 %16, 1
|
|
store i8 %17, i8* %1
|
|
%18 = load i8* %1
|
|
%19 = add i8 %18, 1
|
|
store i8 %19, i8* %1
|
|
%20 = load i8* %1
|
|
%21 = add i8 %20, 1
|
|
store i8 %21, i8* %1
|
|
%22 = load i8* %1
|
|
%23 = add i8 %22, 1
|
|
store i8 %23, i8* %1
|
|
%24 = load i8* %1
|
|
%25 = add i8 %24, 1
|
|
store i8 %25, i8* %1
|
|
%26 = load i8* %1
|
|
%27 = add i8 %26, 1
|
|
store i8 %27, i8* %1
|
|
%28 = load i8* %1
|
|
%29 = add i8 %28, 1
|
|
store i8 %29, i8* %1
|
|
%30 = load i8* %1
|
|
%31 = add i8 %30, 1
|
|
store i8 %31, i8* %1
|
|
%32 = load i8* %1
|
|
%33 = add i8 %32, 1
|
|
store i8 %33, i8* %1
|
|
%34 = load i8* %1
|
|
%35 = add i8 %34, 1
|
|
store i8 %35, i8* %1
|
|
%36 = load i8* %1
|
|
%37 = add i8 %36, 1
|
|
store i8 %37, i8* %1
|
|
%38 = load i8* %1
|
|
%39 = add i8 %38, 1
|
|
store i8 %39, i8* %1
|
|
%40 = load i8* %1
|
|
%41 = add i8 %40, 1
|
|
store i8 %41, i8* %1
|
|
%42 = load i8* %1
|
|
%43 = add i8 %42, 1
|
|
store i8 %43, i8* %1
|
|
%44 = load i8* %1
|
|
%45 = add i8 %44, 1
|
|
store i8 %45, i8* %1
|
|
%46 = load i8* %1
|
|
%47 = add i8 %46, 1
|
|
store i8 %47, i8* %1
|
|
%48 = load i8* %1
|
|
%49 = add i8 %48, 1
|
|
store i8 %49, i8* %1
|
|
%50 = load i8* %1
|
|
%51 = icmp ne i8 %50, 0
|
|
br i1 %51, label %52, label %62
|
|
|
|
; <label>:52 ; preds = %52, %0
|
|
%53 = getelementptr i8* %1, i32 1
|
|
%54 = getelementptr i8* %53, i32 -1
|
|
%55 = load i8* %54
|
|
%56 = sext i8 %55 to i32
|
|
%57 = call i32 @putchar(i32 %56)
|
|
%58 = load i8* %54
|
|
%59 = sub i8 %58, 1
|
|
store i8 %59, i8* %54
|
|
%60 = load i8* %54
|
|
%61 = icmp ne i8 %60, 0
|
|
br i1 %61, label %52, label %62
|
|
|
|
; <label>:62 ; preds = %52, %0
|
|
tail call void @free(i8* %malloccall)
|
|
ret i32 0
|
|
}
|
|
|
|
declare noalias i8* @malloc(i32)
|
|
|
|
declare void @llvm.memset.p0i8.i32(i8* nocapture, i8, i32, i32, i1) nounwind
|
|
|
|
declare void @free(i8*)
|
|
|