From 013e926646c2670c030d890125b0256da66fea26 Mon Sep 17 00:00:00 2001 From: Razya Ladelsky Date: Tue, 31 Jul 2007 08:09:49 +0000 Subject: [PATCH] matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring to an unallocated space. 2007-07-31 Razya Ladelsky * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring to an unallocated space. From-SVN: r127082 --- gcc/ChangeLog | 5 +++++ gcc/matrix-reorg.c | 12 ++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8f7453bf1e9..ed544bd514a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2007-07-31 Razya Ladelsky + + * matrix-reorg.c (analyze_matrix_allocation_site): Avoid referring + to an unallocated space. + 2007-07-30 Jan Sjodin * tree-data-ref.c diff --git a/gcc/matrix-reorg.c b/gcc/matrix-reorg.c index 946690b280d..46fd6e25a59 100644 --- a/gcc/matrix-reorg.c +++ b/gcc/matrix-reorg.c @@ -818,11 +818,15 @@ analyze_matrix_allocation_site (struct matrix_info *mi, tree stmt, return; } } - /* This is a call to malloc. Check to see if this is the first - call in this indirection level; if so, mark it; if not, mark - as escaping. */ + /* This is a call to malloc of level 'level'. + mi->max_malloced_level-1 == level means that we've + seen a malloc statement of level 'level' before. + If the statement is not the same one that we've + seen before, then there's another malloc statement + for the same level, which means that we need to mark + it escaping. */ if (mi->malloc_for_level - && mi->malloc_for_level[level] + && mi->max_malloced_level-1 == level && mi->malloc_for_level[level] != stmt) { mark_min_matrix_escape_level (mi, level, stmt); -- 2.30.2