我正在尝试使用findInputsOutputs()
获取循环的输入和输出值,如下面的代码所示:
DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
CodeExtractor Extractor(DT, *L);
Extractor.findInputsOutputs(inputs, outputs);
当我打印以下测试代码的输入和输出值时:
void aFunc(void)
{
int sum=0;
puts("aFunc()");
for (int i = 0; i < 10; i++)
{
int fact=i*2;
sum=sum+i+fact;
}
printf("%d",sum);
}
我得到以下内容:
Inputs
type i32* name i
type i32* name fact
type i32* name sum
Outputs
但是,我期待输出为:
Inputs
type i32* name sum
Outputs
type i32* name sum
因为据我所知,i
和fact
在循环中被声明,因此它们既不是输入也不是输出。其次,sum
在循环外使用,因此应出现在输出中。
我是对的吗?