summaryrefslogtreecommitdiffstats
path: root/compiler/utils/arena_bit_vector.h
diff options
context:
space:
mode:
authorVladimir Marko <vmarko@google.com>2014-01-17 17:49:33 +0000
committerVladimir Marko <vmarko@google.com>2014-03-17 14:27:16 +0000
commitbfea9c29e809e04bde4a46591fea64c5a7b922fb (patch)
tree8c50357e0de293f105affd95941acc08ac33cd04 /compiler/utils/arena_bit_vector.h
parent341a84af890a328a6c8f719beb3f670dd1a369b4 (diff)
downloadart-bfea9c29e809e04bde4a46591fea64c5a7b922fb.zip
art-bfea9c29e809e04bde4a46591fea64c5a7b922fb.tar.gz
art-bfea9c29e809e04bde4a46591fea64c5a7b922fb.tar.bz2
Class initialization check elimination.
Also, move null check elimination temporaries to the ScopedArenaAllocator and reuse the same variables in the class initialization check elimination. Change-Id: Ic746f95427065506fa6016d4931e4cb8b34937af
Diffstat (limited to 'compiler/utils/arena_bit_vector.h')
-rw-r--r--compiler/utils/arena_bit_vector.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/compiler/utils/arena_bit_vector.h b/compiler/utils/arena_bit_vector.h
index 1a3d6a3..485ed76 100644
--- a/compiler/utils/arena_bit_vector.h
+++ b/compiler/utils/arena_bit_vector.h
@@ -19,6 +19,7 @@
#include "base/bit_vector.h"
#include "utils/arena_allocator.h"
+#include "utils/scoped_arena_allocator.h"
namespace art {
@@ -38,6 +39,7 @@ enum OatBitMapKind {
kBitMapRegisterV,
kBitMapTempSSARegisterV,
kBitMapNullCheck,
+ kBitMapClInitCheck,
kBitMapTmpBlockV,
kBitMapPredecessors,
kNumBitMapKinds
@@ -52,11 +54,16 @@ class ArenaBitVector : public BitVector {
public:
ArenaBitVector(ArenaAllocator* arena, uint32_t start_bits, bool expandable,
OatBitMapKind kind = kBitMapMisc);
+ ArenaBitVector(ScopedArenaAllocator* arena, uint32_t start_bits, bool expandable,
+ OatBitMapKind kind = kBitMapMisc);
~ArenaBitVector() {}
static void* operator new(size_t size, ArenaAllocator* arena) {
return arena->Alloc(sizeof(ArenaBitVector), kArenaAllocGrowableBitMap);
}
+ static void* operator new(size_t size, ScopedArenaAllocator* arena) {
+ return arena->Alloc(sizeof(ArenaBitVector), kArenaAllocGrowableBitMap);
+ }
static void operator delete(void* p) {} // Nop.
private: