diff options
Diffstat (limited to 'src/compiler/CompilerUtility.h')
| -rw-r--r-- | src/compiler/CompilerUtility.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compiler/CompilerUtility.h b/src/compiler/CompilerUtility.h index d7612ffc2f..a68ee5fb0a 100644 --- a/src/compiler/CompilerUtility.h +++ b/src/compiler/CompilerUtility.h @@ -58,8 +58,20 @@ typedef struct GrowableListIterator { */ struct ArenaBitVector { bool expandable; /* expand bitmap if we run out? */ + bool firstDirty; /* when true, don't believe firstBitSet */ + bool lastDirty; /* when true, don't believe lastBitSet */ u4 storageSize; /* current size, in 32-bit words */ u4* storage; + /* + * Opportunistically remember first and + * last set bits. This yeilds a performance + * advantage in cases where large + * sparse vectors are repeatedly scanned + * (something that can happen a lot during + * dataflow analysis. + */ + int firstBitSet; + int lastBitSet; }; /* Handy iterator to walk through the bit positions set to 1 */ |