On Wed, May 11, 2016 at 2:26 AM, Ilya Enkovich <enkovich....@gmail.com> wrote: > 2016-05-10 21:13 GMT+03:00 H.J. Lu <hjl.to...@gmail.com>: >> On Tue, May 10, 2016 at 9:19 AM, Ilya Enkovich <enkovich....@gmail.com> >> wrote: >>> Hi, >>> >>> Curretly CSE may modify CFG and leave invalid dominance info. This patch >>> improves track of CFG changes by CSE passes and frees dominance info if >>> required. This allows to remove corresponding workaround from STV pass. >>> >>> Does it look OK? >>> >>> Bootstrapped and regtested on x86-64-unknown-linux-gnu. >>> >> >>> diff --git a/gcc/testsuite/gcc.dg/pr70807.c b/gcc/testsuite/gcc.dg/pr70807.c >>> new file mode 100644 >>> index 0000000..9ef2a4d >>> --- /dev/null >>> +++ b/gcc/testsuite/gcc.dg/pr70807.c >>> @@ -0,0 +1,18 @@ >>> +/* PR middle-end/70807 */ >>> +/* { dg-do compile } */ >>> +/* { dg-options "-O2" } */ >>> + >>> +typedef int INT; >>> +int a, b, c, d, e, f; >>> +void fn1() { >>> + INT g; >>> + if (d && a) >>> + ; >>> + else if (e && b) >>> + ; >>> + else if (!a && !b && c) >>> + ; >>> + else if (b && d || a && e) >>> + a = 0; >>> + f = g || d; >>> +} >> >> Does this test fail without the fix? > > Yes, I creduced it from a libgcc build fail caused by the trigger > patch from the tracker. >
This test only uses int, which is 32-bit. How does it trigger STV? -- H.J.