bzip2: move runningOrder[] back to stack - 256 bytes is not much
authorDenys Vlasenko <vda.linux@googlemail.com>
Sat, 3 Feb 2018 21:52:11 +0000 (22:52 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Sat, 3 Feb 2018 21:52:55 +0000 (22:52 +0100)
function                                             old     new   delta
mainSort                                            1119    1108     -11

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
archival/libarchive/bz/blocksort.c
archival/libarchive/bz/bzlib_private.h

index 7c5b6c552116bf29c41d7df220295db7231a3dbc..0a9a597d034a71d97034a41d8c7bfdc8e33b1d73 100644 (file)
@@ -113,9 +113,8 @@ void fallbackQSort3(uint32_t* fmap,
                int32_t   loSt,
                int32_t   hiSt)
 {
-       int32_t unLo, unHi, ltLo, gtHi, n, m;
-       int32_t sp, lo, hi;
-       uint32_t med, r, r3;
+       int32_t sp;
+       uint32_t r;
        int32_t stackLo[FALLBACK_QSORT_STACK_SIZE];
        int32_t stackHi[FALLBACK_QSORT_STACK_SIZE];
 
@@ -125,6 +124,11 @@ void fallbackQSort3(uint32_t* fmap,
        fpush(loSt, hiSt);
 
        while (sp > 0) {
+               int32_t unLo, unHi, ltLo, gtHi, n, m;
+               int32_t lo, hi;
+               uint32_t med;
+               uint32_t r3;
+
                AssertH(sp < FALLBACK_QSORT_STACK_SIZE - 1, 1004);
 
                fpop(lo, hi);
@@ -730,12 +734,11 @@ void mainSort(EState* state)
 {
        int32_t  i, j;
        Bool     bigDone[256];
-       /* bbox: moved to EState to save stack
        uint8_t  runningOrder[256];
+       /* bbox: moved to EState to save stack
        int32_t  copyStart[256];
        int32_t  copyEnd  [256];
        */
-#define runningOrder (state->mainSort__runningOrder)
 #define copyStart    (state->mainSort__copyStart)
 #define copyEnd      (state->mainSort__copyEnd)
 
index 8b8bbe3eb55a654e44e8965144bd79a42600a356..ef75ef08ab02dfeaecc41ef35a4a7b5c0ee0bfb1 100644 (file)
@@ -196,7 +196,6 @@ typedef struct EState {
        int32_t  BZ2_hbMakeCodeLengths__weight[BZ_MAX_ALPHA_SIZE * 2];
        int32_t  BZ2_hbMakeCodeLengths__parent[BZ_MAX_ALPHA_SIZE * 2];
 
-       uint8_t  mainSort__runningOrder[256];
        int32_t  mainSort__copyStart[256];
        int32_t  mainSort__copyEnd[256];
 } EState;