From decb4503bfb846d039c7048f48c9680fc6e7595b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Wed, 10 Jul 2019 19:52:30 +0200 Subject: [PATCH] grid: prefetch cells in grid_row() --- grid.h | 1 + terminal.c | 8 ++++---- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/grid.h b/grid.h index 5d87f495..4a25d218 100644 --- a/grid.h +++ b/grid.h @@ -20,6 +20,7 @@ grid_row(struct grid *grid, int row_no) grid->rows[real_row] = row; } + __builtin_prefetch(row->cells, 1, 3); return row; } diff --git a/terminal.c b/terminal.c index f0fa3cfc..5b4b0f50 100644 --- a/terminal.c +++ b/terminal.c @@ -164,8 +164,8 @@ term_scroll_partial(struct terminal *term, struct scroll_region region, int rows * 2) prefetch the cells - this makes life easier for erase_line() below */ for (int r = max(region.end - rows, 0); r < term->rows; r++) { - struct row *row = grid_row(term->grid, r); - __builtin_prefetch(row->cells, 1, 3); + struct row *row __attribute__((unused)) = grid_row(term->grid, r); + //__builtin_prefetch(row->cells, 1, 3); } /* Top non-scrolling region. */ @@ -207,8 +207,8 @@ term_scroll_reverse_partial(struct terminal *term, term->grid->view = term->grid->offset; for (int r = 0; r < min(region.start + rows, region.end); r++) { - struct row *row = grid_row(term->grid, r); - __builtin_prefetch(row->cells, 1, 3); + struct row *row __attribute__((unused)) = grid_row(term->grid, r); + //__builtin_prefetch(row->cells, 1, 3); } /* Bottom non-scrolling region */