From 26b40f5c41e7084449406b0ccba80b653e75da7e Mon Sep 17 00:00:00 2001 From: David Lide Date: Tue, 3 May 2016 10:54:30 -0400 Subject: [PATCH] added performance improvement in find_slots routine to skip full bit map words in search` --- ti/runtime/hplib/src/bm_alloc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ti/runtime/hplib/src/bm_alloc.c b/ti/runtime/hplib/src/bm_alloc.c index 5e17633..c79efc5 100755 --- a/ti/runtime/hplib/src/bm_alloc.c +++ b/ti/runtime/hplib/src/bm_alloc.c @@ -137,6 +137,7 @@ static int inline bmFindSlots(BM_MALLOC_STATE_T *p, uint32_t size) if ((szinpages * p->PSZ) < size) szinpages+=1; for(i=0,c=0;iNPAGES/(8*sizeof(uint32_t)) && (c< szinpages) ;) { + if ((!flag) && (*pW == 0xffffffff)) {pW+=1;i+=1;continue;} for(j=0;j<(8*sizeof(uint32_t));j++) { if (!flag) @@ -149,7 +150,7 @@ static int inline bmFindSlots(BM_MALLOC_STATE_T *p, uint32_t size) } else { - if (c==szinpages) continue; //skipping rest of inner loop + if (c==szinpages) break; //skipping rest of inner loop if(*pW & (1<<(31-j)) ) { //not large enough -- 2.26.2