|
|
@ -66,9 +66,14 @@ int main(){
|
|
|
|
2. 在`report.md`内回答[思考题](#思考题)
|
|
|
|
2. 在`report.md`内回答[思考题](#思考题)
|
|
|
|
|
|
|
|
|
|
|
|
### 运行说明
|
|
|
|
### 运行说明
|
|
|
|
- 利用LLVM的命令`lli`,可以执行`*.ll`文件
|
|
|
|
- 你需要使用 `clang --version` 和 `lli --version` 检查本机的Clang和LLVM版本
|
|
|
|
|
|
|
|
- 你可以使用 `which lli` 来查找 `lli` 命令的位置
|
|
|
|
|
|
|
|
- 利用LLVM的命令 `lli`,可以执行`*.ll`文件;如果版本过低,可能会遇到`error: expected top-level entity`等问题
|
|
|
|
|
|
|
|
- 你也可以使用 `clang go_upstairs.ll -o go_upstairs` 来生成可执行文件
|
|
|
|
- `$?`的内容是上一条命令所返回的结果,而`echo $?`可以将其输出到终端中
|
|
|
|
- `$?`的内容是上一条命令所返回的结果,而`echo $?`可以将其输出到终端中
|
|
|
|
- 使用`clang`时,注意扩展名为`sy`的文件是SysYF语言的程序文件,`clang`是无法直接识别的
|
|
|
|
- 使用`clang`时,注意扩展名为`sy`的文件是SysYF语言的程序文件,`clang`是无法直接识别的,你可以将`sy`文件复制为`c`文件来用`clang`编译
|
|
|
|
|
|
|
|
|
|
|
|
### 思考题
|
|
|
|
### 思考题
|
|
|
|
请在`report/report.md`中详细回答下述思考题。
|
|
|
|
请在`report/report.md`中详细回答下述思考题:
|
|
|
|
|
|
|
|
1-1 请给出while语句对应的LLVM IR的代码布局特点,重点解释其中涉及的几个`br`指令的含义(包含各个参数的含义)
|
|
|
|
|
|
|
|
1-2 请简述函数调用语句对应的LLVM IR的代码特点
|
|
|
|