我想知道我是否可以看到 C 程序的循环展开形式。例如,我有以下 for 循环
// The following code mimics functionality of a logic circuit whose
//inputs are a,b,c and d
//output f
//At every for loop iteration, fresh values of a,b,c and d are input
//to the code whereas k value is used from the previous iteration.
bool k = 0;
bool a,b,c,d;
bool g,h,n,j,f;
for(i = 1; i < 100; i++)
{
h = !(a | b); //nor gate
g = (b & c); //and gate
n = !(c & d); //nand gate
f = (k==0) ? h : g; //mux
j = n ^ f; //xor gate
k = j;
}
问题是“是否有可能以可读格式查看该程序的循环展开形式”。我有兴趣了解 gcc 编译器如何表达 h99、g99、n99、f99、j99 和 k99(第 99 次循环迭代中的 h、g、n、f、j 和 k 的值)是否可以这样做?或者应该怎么做才能看到从输入 a99、b99、c99、d99 到 a1、b1、c1 和 d1 的 h99、g99、n99、f99、j99 和 k99 的表达式?
简而言之,我想在每次迭代“i”时进行符号模拟,即用输入 ai、bi、ci、di 表示输出 hi、gi、ni、fi、ji 和 ki,直到 a1、b1、c1 和d1。
请让我知道,如果你有任何问题。