Commit d9892bbd authored by titzer's avatar titzer Committed by Commit bot

[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}
parent 51c59ede
......@@ -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);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment