循环不变式外提是什么
把循环里「每轮算的都一样」的式子提到循环外,叫【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(调用方, 函数体,