📄 vrp24.c
字号:
/* { dg-do compile } *//* { dg-options "-O2 -fdump-tree-vrp1-details" } */struct rtx_def;typedef struct rtx_def *rtx;union rtunion_def{ rtx rt_rtx;};typedef union rtunion_def rtunion;struct rtx_def{ int code; union u { rtunion fld[1]; } u;};sss (rtx insn, int code1, int code2, int code3){ _Bool D1562; struct rtx_def * body; int i; int n_sets; int D1544; body = insn->u.fld[5].rt_rtx; D1544 = body->code; n_sets = 1; if (D1544 == 55) goto L7; else goto L1;L1: n_sets = 0; if (code3 == 99) goto L2; else goto L11;L2: D1562 = code1 == 10; n_sets = (int) D1562; if (n_sets > 0) goto L7; else goto L11;L37: if (code2 == 42) goto L8; else goto L9;L8: arf ();L9: i = i + 1; if (i < n_sets) goto L37; else goto L32;L32:L11: if (n_sets > 1) goto L12; else goto L15;L12: nit ();L14: i = 0; goto L38;L15: if (n_sets > 0) goto L14; else goto L16;L38: frob (); i = i + 1; if (n_sets > i) goto L38; else goto L16;L16: return;L7: i = 0; goto L37;}/* The first n_sets > 0 test can be simplfiied into n_sets == 1 since n_sets can only have the values [0, 1] as it's the result of a boolean operation. The second n_sets > 0 test can also be simplified into n_sets == 1 as the only way to reach the tests is when n_sets <= 1 and the only value which satisfies both conditions is n_sets == 1. *//* { dg-final { scan-tree-dump-times "Simplified relational" 2 "vrp1" } } *//* { dg-final { cleanup-tree-dump "vrp1" } } */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -