• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆-161  評論-223  文章-30  trackbacks-0
            1. 目的是識別循環(huán)中那種在每個迭代都產(chǎn)生相同值的計算,并將它們移到循環(huán)之外。注意,如果一個計算出現(xiàn)在嵌套循環(huán)內(nèi),對外循環(huán)的特定迭代而言,內(nèi)循環(huán)的每個迭代都產(chǎn)生相同的值,但外循環(huán)的不同迭代產(chǎn)生不同的值,那么這種計算將移到內(nèi)循環(huán)外,而非外循環(huán)外

            2. 識別循環(huán)不變量可以基于數(shù)據(jù)流分析求得的use-def鏈,一條指令是循環(huán)不變的,當(dāng)它的每個操作數(shù)滿足以下條件之一
            a)該操作數(shù)是常數(shù)
            b)該操作數(shù)的所有到達定值在循環(huán)之外。因為若有一個在循環(huán)內(nèi),則該指令就可能是循環(huán)變化的,除非那個定值是循環(huán)不變量
            c)該操作數(shù)只存在一個為循環(huán)不變量的到達定值,且該指令之前沒有對其左部變量(若有)的使用。因為若有多個這樣的定值,則該指令就可能是循環(huán)變化的,除非多個定值結(jié)果都一樣;因為若前面有對其左部變量的使用,則該指令的賦值就殺死了左部變量的初值,這樣外提后左部變量第一次迭代就會使用錯誤的定值

            3. 由于以上條件沒考慮到控制流分析,不能保證循環(huán)不變量在每個迭代中執(zhí)行,以及循環(huán)不變量之左部變量的所有使用都是相同的值。因此為了保證外提后的代碼行為正確,還需要滿足條件:循環(huán)不變量所在基本塊必須是循環(huán)中所有使用了其左部變量的基本塊和所有出口基本塊的必經(jīng)結(jié)點。當(dāng)外提循環(huán)不變量后,考慮到循環(huán)有可能執(zhí)行0次即一開始就不滿足循環(huán)進入條件,可以用是否進入循環(huán)的測試條件來保護前置塊,即識別終止條件是否一開始就為false,來保護它。這種方法總是安全的,但增加了代碼體積。不過若終止條件恒為true或false,則常數(shù)傳播分析會刪除這個冗余測試,如果為false,那么還會刪除前置塊
            posted on 2023-09-06 23:30 春秋十二月 閱讀(72) 評論(0)  編輯 收藏 引用 所屬分類: Compiler
            国产毛片欧美毛片久久久| 人人狠狠综合久久88成人| 久久99久久无码毛片一区二区| 久久99国产精品99久久| 精品久久久久久无码中文字幕| 日本久久中文字幕| 久久国产精品无码HDAV| 久久嫩草影院免费看夜色| 久久久久久曰本AV免费免费| 国产亚洲欧美精品久久久| 久久综合久久鬼色| 国产91色综合久久免费| 久久午夜无码鲁丝片午夜精品| 久久夜色精品国产噜噜噜亚洲AV| 97久久精品人人澡人人爽| 人妻无码精品久久亚瑟影视| 久久九九全国免费| 精品伊人久久大线蕉色首页| 国产精品VIDEOSSEX久久发布| 漂亮人妻被中出中文字幕久久 | 大伊人青草狠狠久久| 久久久精品无码专区不卡| 国产成人无码精品久久久性色| 香蕉久久夜色精品国产小说| 伊人久久综合无码成人网| 久久精品国产第一区二区| 久久综合久久综合久久综合| 久久久久久夜精品精品免费啦| 综合久久精品色| 亚洲精品成人久久久| 久久久黄片| 老司机午夜网站国内精品久久久久久久久 | 久久婷婷五月综合色奶水99啪| 亚洲精品99久久久久中文字幕 | 久久久久亚洲爆乳少妇无| 亚洲国产成人久久综合一| 国产亚洲精品自在久久| 91精品国产91久久综合| 久久精品国产秦先生| 久久精品国产久精国产| 国内精品欧美久久精品|