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 の値) をどのように表現できるかを知りたいです。または、h99、g99、n99、f99、j99、および k99 の式を入力 a99、b99、c99、d99 から a1、b1、c1、および d1 まで下げるにはどうすればよいでしょうか。
一言で言えば、すべての反復 "i" でシンボリック シミュレーションを実行したいと考えています。 d1.
ご不明な点がございましたら、お知らせください。