5 #include "src/compiler/bytecode-liveness-map.h" 11 BytecodeLiveness::BytecodeLiveness(
int register_count, Zone* zone)
12 : in(new (zone) BytecodeLivenessState(register_count, zone)),
13 out(new (zone) BytecodeLivenessState(register_count, zone)) {}
15 BytecodeLivenessMap::BytecodeLivenessMap(
int bytecode_size, Zone* zone)
16 : liveness_map_(base::bits::RoundUpToPowerOfTwo32(bytecode_size / 4 + 1),
17 base::KeyEqualityMatcher<
int>(),
18 ZoneAllocationPolicy(zone)) {}
20 uint32_t OffsetHash(
int offset) {
return offset; }
22 BytecodeLiveness& BytecodeLivenessMap::InitializeLiveness(
int offset,
26 .LookupOrInsert(offset, OffsetHash(offset),
27 [&]() {
return BytecodeLiveness(register_count, zone); },
28 ZoneAllocationPolicy(zone))
32 BytecodeLiveness& BytecodeLivenessMap::GetLiveness(
int offset) {
33 return liveness_map_.Lookup(offset, OffsetHash(offset))->value;
36 const BytecodeLiveness& BytecodeLivenessMap::GetLiveness(
int offset)
const {
37 return liveness_map_.Lookup(offset, OffsetHash(offset))->value;