[关闭]
@donghanyuan0609 2022-10-18T18:57:08.000000Z 字数 1281 阅读 183

LLVM 说明

LLVM 提交说明:

样例输入 testfile.txt

  1. int main() {
  2. int res;
  3. res = getint();
  4. printf("res = %d\n", res);
  5. return 0;
  6. }

样例输出1 llvm_ir.txt (采用单个字符方式输出)

  1. declare i32 @getint()
  2. declare void @putint(i32)
  3. declare void @putch(i32)
  4. define i32 @main() {
  5. %1 = call i32 @getint()
  6. call void @putch(i32 114) ; 'r'
  7. call void @putch(i32 101) ; 'e'
  8. call void @putch(i32 115) ; 's'
  9. call void @putch(i32 32) ; ' '
  10. call void @putch(i32 61) ; '='
  11. call void @putch(i32 32) ; ' '
  12. call void @putint(i32 %1)
  13. call void @putch(i32 10) ; '\n'
  14. ret i32 0
  15. }

样例输出2 llvm_ir.txt (采用字符串方式输出)

  1. declare i32 @getint()
  2. declare void @putint(i32)
  3. declare void @putstr(i8*)
  4. @_str_1 = constant [7 x i8] c"res = \00"
  5. @_str_2 = constant [2 x i8] c"\0a\00"
  6. define i32 @main() {
  7. %1 = call i32 @getint()
  8. %2 = getelementptr inbounds [7 x i8], [7 x i8]* @_str_1, i32 0, i32 0
  9. call void @putstr(i8* %2)
  10. call void @putint(i32 %1)
  11. %3 = getelementptr inbounds [2 x i8], [2 x i8]* @_str_2, i32 0, i32 0
  12. call void @putstr(i8* %3)
  13. ret i32 0
  14. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注