2

我一直在探索 alloca 值的 def-use 。

我有以下 IR 代码 -

continuation:                                     ; No predecessors!
  %iftmp = phi i32 [ 8, %then ], [ 20, %else ]
  store i32 %iftmp, i32* %datasize
  %res = alloca i8
  store i8 -113, i8* %res
  store i8 -127, i8* %res
  %res3 = load i8, i8* %res
  ret i8 %res3

在运行 "%res" 的 def-use 链,并打印正在使用 "%res" 的指令。以下是输出 -

for val=
  %res = alloca i8

instruction with usage=
  %res3 = load i8, i8* %res

instruction with usage=
  store i8 -127, i8* %res

instruction with usage=
  store i8 -113, i8* %res

我发现在存储之前可以看到负载。有没有办法让 alloca 值的“使用”与它们出现在 IR 中的指令顺序完全相同?

4

0 回答 0