aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorAlexander Monakov <amonakov@gcc.gnu.org>2009-01-29 13:53:15 +0300
committerAlexander Monakov <amonakov@gcc.gnu.org>2009-01-29 13:53:15 +0300
commit72a54528dbba23fab21e2997bb6a3d80bf6f1a13 (patch)
treee1c0f02d0bea7bb353dc7730715660e5d5155263 /gcc/testsuite
parentd748c4062c7c457d19048217b0adb28021d4b058 (diff)
downloadgcc-72a54528dbba23fab21e2997bb6a3d80bf6f1a13.zip
gcc-72a54528dbba23fab21e2997bb6a3d80bf6f1a13.tar.gz
gcc-72a54528dbba23fab21e2997bb6a3d80bf6f1a13.tar.bz2
[multiple changes]
2009-01-29 Andrey Belevantsev <abel@ispras.ru> Alexander Monakov <amonakov@ispras.ru> PR middle-end/38857 * sel-sched.c (count_occurrences_1): Check that *cur_rtx is a hard register. (move_exprs_to_boundary): Change return type and pass through should_move from move_op. Relax assert. Update usage ... (schedule_expr_on_boundary): ... here. Use should_move instead of cant_move. (move_op_orig_expr_found): Indicate that insn was disconnected from stream. (code_motion_process_successors): Do not call after_merge_succs callback if original expression was not found when traversing any of the branches. (code_motion_path_driver): Change return type. Update prototype. (move_op): Update comment. Add a new parameter (should_move). Update prototype. Set *should_move based on indication provided by move_op_orig_expr_found. 2009-01-29 Steve Ellcey <sje@cup.hp.com> PR middle-end/38857 * gcc.c-torture/compile/pr38857.c: New test. From-SVN: r143753
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/pr38857.c22
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 99844ee..b609538 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,8 @@
+2009-01-29 Steve Ellcey <sje@cup.hp.com>
+
+ PR middle-end/38857
+ * gcc.c-torture/compile/pr38857.c: New test.
+
2009-01-28 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38852
diff --git a/gcc/testsuite/gcc.c-torture/compile/pr38857.c b/gcc/testsuite/gcc.c-torture/compile/pr38857.c
new file mode 100644
index 0000000..2492b77
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/pr38857.c
@@ -0,0 +1,22 @@
+static const int vs_total_ac_bits = 2680;
+typedef struct EncBlockInfo {
+ short mb[64];
+ unsigned char next[64];
+} EncBlockInfo;
+inline void dv_guess_qnos(EncBlockInfo* blks, int* qnos) {
+ int size[5];
+ int j, k, a, prev;
+ EncBlockInfo* b;
+ for(a=2; a==2 || vs_total_ac_bits < size[0]; a+=a){
+ for (j=0; j<6*5; j++, b++) {
+ for (k= b->next[prev]; k<64; k= b->next[k]) {
+ if(b->mb[k] < a && b->mb[k] > -a){
+ b->next[prev] = b->next[k];
+ }
+ else{
+ prev = k;
+ }
+ }
+ }
+ }
+}