循环不变式外提是什么

把循环里「每轮算的都一样」的式子提到循环外,叫【0】。 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑 n 次、展开因子 factor,un

开始练习 →

循环展开的代价是什么

把循环体复制几份来减少跳转,代价是【0】。 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑 n 次、展开因子 factor,unroll_c

开始练习 →

展开因子 4 跑几轮

按模型,循环跑 10 次、展开因子 4,unroll_count(10, 4) 交回几轮? 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑

开始练习 →

补全:判断循环不变

补全 is_invariant:式子不含循环变量就是循环不变。 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑 n 次、展开因子 facto

开始练习 →

补全:数能外提的

补全 hoistable:数有几条式子不含循环变量。 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑 n 次、展开因子 factor,unr

开始练习 →

补全:展开跑几轮

补全 unroll_count:n 次、因子 factor,跑几整轮。 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑 n 次、展开因子 f

开始练习 →

补全:展开余几次

补全 remainder:展开后收尾还剩几次。 循环优化模型:is_invariant(用到的变量, 循环变量)=式子不含循环变量就是循环不变、可外提;hoistable 数能外提的条数;循环跑 n 次、展开因子 factor,unroll

开始练习 →

函数内联是什么

函数内联做的是【0】。 内联模型:should_inline(体大小, 阈值)=不超阈值才内联;calls_saved=省下的调用次数;size_after(调用方, 函数体, 调用数)=每个调用点用函数体替换后的大小;worth_it(函

开始练习 →

内联为什么要有取舍

内联不能无脑做,因为【0】。 内联模型:should_inline(体大小, 阈值)=不超阈值才内联;calls_saved=省下的调用次数;size_after(调用方, 函数体, 调用数)=每个调用点用函数体替换后的大小;worth_i

开始练习 →

内联后调用方多大

按模型,调用方 8 条、函数体 3 条、内联 2 处,size_after 交回几? 内联模型:should_inline(体大小, 阈值)=不超阈值才内联;calls_saved=省下的调用次数;size_after(调用方, 函数体,

开始练习 →