• <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>
            隨筆-162  評論-223  文章-30  trackbacks-0
            1. 目的是識別循環(huán)中那種在每個迭代都產生相同值的計算,并將它們移到循環(huán)之外。注意,如果一個計算出現(xiàn)在嵌套循環(huán)內,對外循環(huán)的特定迭代而言,內循環(huán)的每個迭代都產生相同的值,但外循環(huán)的不同迭代產生不同的值,那么這種計算將移到內循環(huán)外,而非外循環(huán)外

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

            3. 由于以上條件沒考慮到控制流分析,不能保證循環(huán)不變量在每個迭代中執(zhí)行,以及循環(huán)不變量之左部變量的所有使用都是相同的值。因此為了保證外提后的代碼行為正確,還需要滿足條件:循環(huán)不變量所在基本塊必須是循環(huán)中所有使用了其左部變量的基本塊和所有出口基本塊的必經結點。當外提循環(huán)不變量后,考慮到循環(huán)有可能執(zhí)行0次即一開始就不滿足循環(huán)進入條件,可以用是否進入循環(huán)的測試條件來保護前置塊,即識別終止條件是否一開始就為false,來保護它。這種方法總是安全的,但增加了代碼體積。不過若終止條件恒為true或false,則常數(shù)傳播分析會刪除這個冗余測試,如果為false,那么還會刪除前置塊
            posted on 2023-09-06 23:30 春秋十二月 閱讀(78) 評論(0)  編輯 收藏 引用 所屬分類: Compiler
            久久丫精品国产亚洲av不卡| 91精品国产91久久久久久蜜臀| 青青草原综合久久大伊人导航| 亚洲国产成人久久笫一页| 久久综合给合久久国产免费 | 一级做a爰片久久毛片人呢| 青青草国产成人久久91网| 久久婷婷人人澡人人爽人人爱| a级成人毛片久久| 久久中文字幕人妻丝袜| 国产精品伊人久久伊人电影| 久久久噜噜噜久久熟女AA片| 久久久这里只有精品加勒比| 99久久99久久精品国产片果冻| 偷窥少妇久久久久久久久| 久久精品国产99国产电影网| 99久久综合狠狠综合久久止| 一97日本道伊人久久综合影院| 久久九九全国免费| 日韩AV无码久久一区二区| 日本久久中文字幕| 狠狠人妻久久久久久综合| 久久精品国产99国产精品| 99久久精品免费看国产| 精品永久久福利一区二区| 国内精品久久久久久久97牛牛| 香港aa三级久久三级老师2021国产三级精品三级在| 亚洲精品无码久久久久久| 亚洲中文字幕无码久久2020| 久久国产劲爆AV内射—百度| 久久黄色视频| 久久最新免费视频| 青春久久| 综合久久精品色| 亚洲国产香蕉人人爽成AV片久久 | 亚洲国产成人久久综合一| 2022年国产精品久久久久 | 国产亚洲精久久久久久无码AV| 久久综合丝袜日本网| 久久国产精品一区二区| 99久久99久久精品国产片|