📄 loop-ivopts-2.c
字号:
/* PR rtl-optimization/20290 */ /* We used to mis-optimize the second loop in main on at least ppc and arm, because tree loop would change the loop to something like: ivtmp.65 = &l[i]; ivtmp.16 = 113; goto <bb 4> (<L4>);<L3>:; *(ivtmp.65 + 4294967292B) = 9; i = i + 1;<L4>:; ivtmp.16 = ivtmp.16 - 1; ivtmp.65 = ivtmp.65 + 4B; if (ivtmp.16 != 0) goto <L3>; We used to consider the increment of i as executed in every iteration, so we'd miscompute the final value. */extern void abort (void);voidcheck (unsigned int *l){ int i; for (i = 0; i < 288; i++) if (l[i] != 7 + (i < 256 || i >= 280) + (i >= 144 && i < 256)) abort ();}intmain (void){ int i; unsigned int l[288]; for (i = 0; i < 144; i++) l[i] = 8; for (; i < 256; i++) l[i] = 9; for (; i < 280; i++) l[i] = 7; for (; i < 288; i++) l[i] = 8; check (l); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -