Commit ca097584 authored by plind44@gmail.com's avatar plind44@gmail.com

MIPS: Optimize DoCheckMaps.

This simple change moves the Deoptimize call into the Deopt table
where it belongs, and shortens the inline map-check.

Gives a surprisingly large performance gain, around 4% on Octane.

BUG=
R=gergely@homejinni.com

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

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@16115 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent fb5857ce
......@@ -5253,11 +5253,11 @@ void LCodeGen::DoCheckMaps(LCheckMaps* instr) {
__ CompareMapAndBranch(map_reg, map, &success, eq, &success);
}
Handle<Map> map = map_set->last();
__ CompareMapAndBranch(map_reg, map, &success, eq, &success);
// Do the CompareMap() directly within the Branch() and DeoptimizeIf().
if (instr->hydrogen()->has_migration_target()) {
__ Branch(deferred->entry());
__ Branch(deferred->entry(), ne, map_reg, Operand(map));
} else {
DeoptimizeIf(al, instr->environment());
DeoptimizeIf(ne, instr->environment(), map_reg, Operand(map));
}
__ bind(&success);
......
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