Minor cleanups, hopefully fixing an issue with VC's /Ze option on the way.

BUG=2859
R=titzer@chromium.org

Review URL: https://codereview.chromium.org/23553002

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16349 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 3dff01ad
......@@ -102,10 +102,11 @@ class InductionVariableBlocksTable BASE_EMBEDDED {
int current_dominated_block_;
};
HGraph* graph() { return graph_; }
HBasicBlock* loop_header() { return loop_header_; }
Element* at(int index) { return &(elements_.at(index)); }
Element* at(HBasicBlock* block) { return at(block->block_id()); }
HGraph* graph() const { return graph_; }
Counters* counters() const { return graph()->isolate()->counters(); }
HBasicBlock* loop_header() const { return loop_header_; }
Element* at(int index) const { return &(elements_.at(index)); }
Element* at(HBasicBlock* block) const { return at(block->block_id()); }
void AddCheckAt(HBasicBlock* block) {
at(block->block_id())->set_has_check();
......@@ -258,23 +259,17 @@ class InductionVariableBlocksTable BASE_EMBEDDED {
// all checks are done on constants: if all check are done against the same
// constant limit we will use that instead of the induction limit.
bool has_upper_constant_limit = true;
InductionVariableData::InductionVariableCheck* current_check = check;
int32_t upper_constant_limit =
current_check != NULL && current_check->HasUpperLimit() ?
current_check->upper_limit() : 0;
while (current_check != NULL) {
if (check->HasUpperLimit()) {
if (check->upper_limit() != upper_constant_limit) {
has_upper_constant_limit = false;
}
} else {
has_upper_constant_limit = false;
}
current_check->check()->block()->graph()->isolate()->counters()->
bounds_checks_eliminated()->Increment();
check != NULL && check->HasUpperLimit() ? check->upper_limit() : 0;
for (InductionVariableData::InductionVariableCheck* current_check = check;
current_check != NULL;
current_check = current_check->next()) {
has_upper_constant_limit =
has_upper_constant_limit &&
check->HasUpperLimit() &&
check->upper_limit() == upper_constant_limit;
counters()->bounds_checks_eliminated()->Increment();
current_check->check()->set_skip_check();
current_check = current_check->next();
}
// Choose the appropriate limit.
......@@ -303,8 +298,7 @@ class InductionVariableBlocksTable BASE_EMBEDDED {
zone, context, limit, check->check()->length());
hoisted_check->InsertBefore(pre_header->end());
hoisted_check->set_allow_equality(true);
hoisted_check->block()->graph()->isolate()->counters()->
bounds_checks_hoisted()->Increment();
counters()->bounds_checks_hoisted()->Increment();
}
void CollectInductionVariableData(HBasicBlock* bb) {
......@@ -341,8 +335,7 @@ class InductionVariableBlocksTable BASE_EMBEDDED {
// TODO(mmassi): skip OSR values for check->length().
if (check->length() == data->limit() ||
check->length() == data->additional_upper_limit()) {
check->block()->graph()->isolate()->counters()->
bounds_checks_eliminated()->Increment();
counters()->bounds_checks_eliminated()->Increment();
check->set_skip_check();
continue;
}
......@@ -407,4 +400,3 @@ void HBoundsCheckHoistingPhase::HoistRedundantBoundsChecks() {
}
} } // namespace v8::internal
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