[turbofan] OSR loops assign all local variables.
R=mstarzinger@chromium.org BUG= Review URL: https://codereview.chromium.org/886733005 Cr-Commit-Position: refs/heads/master@{#26493}
This commit is contained in:
parent
51c59ede18
commit
d9892bbd5a
@ -103,6 +103,8 @@ class BitVector : public ZoneObject {
|
||||
data_[i / kDataBits] |= (kOne << (i % kDataBits));
|
||||
}
|
||||
|
||||
void AddAll() { memset(data_, -1, sizeof(uintptr_t) * data_length_); }
|
||||
|
||||
void Remove(int i) {
|
||||
DCHECK(i >= 0 && i < length());
|
||||
data_[i / kDataBits] &= ~(kOne << (i % kDataBits));
|
||||
|
@ -30,6 +30,8 @@ void ALAA::Enter(IterationStatement* loop) {
|
||||
int num_variables = 1 + info()->scope()->num_parameters() +
|
||||
info()->scope()->num_stack_slots();
|
||||
BitVector* bits = new (zone()) BitVector(num_variables, zone());
|
||||
if (info()->is_osr() && info()->osr_ast_id() == loop->OsrEntryId())
|
||||
bits->AddAll();
|
||||
loop_stack_.push_back(bits);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user