我一直在探索 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 中的指令顺序完全相同?