Loop Unrolling 迴圈展開

2022-03-03 14:02:37 字數 462 閱讀 5118

以書中計算陣列和的兩段**為例:

1.未展開:

void psum1(float a, float p, long int n)

2.展開:

void psum2(float a, float p, long int n)

/* for odd n, finish remaining element */

if (i < n)

p[i] = p[i-1] + a[i];

}

以上兩段**在功能上是相等的(計算陣列和),但是經過展開的**執行起來會更快。關鍵在於,展開後的**使得編譯器需要執行的指令減少了。

當迴圈未展開時,採用for迴圈對整個陣列進行迭代,每次執行一次疊加操作——這意味著,陣列有多長,編譯器就會執行多少次對for迴圈條件的判斷運算

for迴圈 while迴圈

迴圈結構 當重複執行相同的 或者是相似的 時。迴圈三要素 1 迴圈變數的宣告 用於控制迴圈次數的迴圈因子 2 迴圈條件 用於判斷是否執行相同或相似內容 迴圈體 的條件 3 迴圈變數的改變方向 向著迴圈結束的方向改變。1 for迴圈 語法 for 變數的宣告和初始化 迴圈條件 變數的改變方向 執行邏輯...

python while迴圈 for迴圈

1變數的初始化 while 條件2 條件滿足時候 執行該 條件滿足時候 執行該 3變數的更新 1 while 迴圈輸出1 100所有的數 while 迴圈輸出20次我愛你 迴圈輸出1 100累加和 1 100之間所有數的和 1變數的初始化 i 0 sum 0 儲存和 判斷條件 while i 100...

python while 迴圈 if 迴圈

python 程式設計中 while 語句用於迴圈執行程式,即在某條件下,迴圈執行某段程式,以處理需要重複處理的相同任務。其基本形式為 執行語句可以是單個語句或語句塊。判斷條件可以是任何表示式,任何非零 或非空 null 的值均為true。當判斷條件假false時,迴圈結束。執行流程圖如下 prin...