URL
https://opencores.org/ocsvn/openrisc_me/openrisc_me/trunk
Subversion Repositories openrisc_me
[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [testsuite/] [gcc.dg/] [tree-ssa/] [ssa-sink-5.c] - Rev 298
Compare with Previous | Blame | View Log
/* { dg-do compile } */ /* { dg-options "-Os -fdump-tree-sink-stats" } */ typedef short int16_t; typedef unsigned char uint8_t; void foo(int16_t runs[], uint8_t alpha[], int x, int count) { int16_t* next_runs = runs + x; uint8_t* next_alpha = alpha + x; while (x > 0) { int n = runs[0]; if (x < n) { alpha[x] = alpha[0]; runs[0] = (int16_t)(x); runs[x] = (int16_t)(n - x); break; } runs += n; alpha += n; x -= n; } runs = next_runs; alpha = next_alpha; x = count; for (;;) { int n = runs[0]; if (x < n) { alpha[x] = alpha[0]; break; } x -= n; runs += n; } } /* We should not sink the next_runs = runs + x calculation after the loop. */ /* { dg-final { scan-tree-dump-times "Sunk statements:" 0 "sink" } } */ /* { dg-final { cleanup-tree-dump "sink" } } */