今天是2024年11月25日 第48周 星期一
代人,时大变了。
我们生活在大地上,但我们的梦想超越天空。
火车头 (信息学竞赛)
RainbowDash(讨论 | 贡献)2020年8月16日 (日) 22:49的版本
火车头是一种信息学竞赛中使用的,用来提升代码运行速度的预处理优化。一般在正规的比赛中被禁止,在正式的开发中亦无应用。通常火车头中包含大量的冗余优化以及玄学成分
示例
这是一个常见的火车头 <syntaxhighlight lang = "cpp">
- pragma GCC optimize(3)
- pragma GCC target("avx")
- pragma GCC optimize("Ofast")
- pragma GCC optimize("inline")
- pragma GCC optimize("-fgcse")
- pragma GCC optimize("-fgcse-lm")
- pragma GCC optimize("-fipa-sra")
- pragma GCC optimize("-ftree-pre")
- pragma GCC optimize("-ftree-vrp")
- pragma GCC optimize("-fpeephole2")
- pragma GCC optimize("-ffast-math")
- pragma GCC optimize("-fsched-spec")
- pragma GCC optimize("unroll-loops")
- pragma GCC optimize("-falign-jumps")
- pragma GCC optimize("-falign-loops")
- pragma GCC optimize("-falign-labels")
- pragma GCC optimize("-fdevirtualize")
- pragma GCC optimize("-fcaller-saves")
- pragma GCC optimize("-fcrossjumping")
- pragma GCC optimize("-fthread-jumps")
- pragma GCC optimize("-funroll-loops")
- pragma GCC optimize("-fwhole-program")
- pragma GCC optimize("-freorder-blocks")
- pragma GCC optimize("-fschedule-insns")
- pragma GCC optimize("inline-functions")
- pragma GCC optimize("-ftree-tail-merge")
- pragma GCC optimize("-fschedule-insns2")
- pragma GCC optimize("-fstrict-aliasing")
- pragma GCC optimize("-fstrict-overflow")
- pragma GCC optimize("-falign-functions")
- pragma GCC optimize("-fcse-skip-blocks")
- pragma GCC optimize("-fcse-follow-jumps")
- pragma GCC optimize("-fsched-interblock")
- pragma GCC optimize("-fpartial-inlining")
- pragma GCC optimize("no-stack-protector")
- pragma GCC optimize("-freorder-functions")
- pragma GCC optimize("-findirect-inlining")
- pragma GCC optimize("-fhoist-adjacent-loads")
- pragma GCC optimize("-frerun-cse-after-loop")
- pragma GCC optimize("inline-small-functions")
- pragma GCC optimize("-finline-small-functions")
- pragma GCC optimize("-ftree-switch-conversion")
- pragma GCC optimize("-foptimize-sibling-calls")
- pragma GCC optimize("-fexpensive-optimizations")
- pragma GCC optimize("-funsafe-loop-optimizations")
- pragma GCC optimize("inline-functions-called-once")
- pragma GCC optimize("-fdelete-null-pointer-checks")
- pragma GCC optimize(2)
</syntaxhighlight> (事实上对于此份优化,仅保留前四行即可)