mirror of
https://github.com/dart-lang/sdk
synced 2024-11-05 18:22:09 +00:00
Don't emit the lazy deopt sequence when we can't deopt.
Saves 3.2% of instructions size for precompiled hello world on ARM. R=fschneider@google.com Review URL: https://codereview.chromium.org//1367573002 .
This commit is contained in:
parent
66f9abc7e3
commit
8c44721965
5 changed files with 5 additions and 5 deletions
|
@ -1109,7 +1109,7 @@ void FlowGraphCompiler::CompileGraph() {
|
||||||
ASSERT(assembler()->constant_pool_allowed());
|
ASSERT(assembler()->constant_pool_allowed());
|
||||||
GenerateDeferredCode();
|
GenerateDeferredCode();
|
||||||
|
|
||||||
if (is_optimizing()) {
|
if (is_optimizing() && Compiler::allow_recompilation()) {
|
||||||
// Leave enough space for patching in case of lazy deoptimization from
|
// Leave enough space for patching in case of lazy deoptimization from
|
||||||
// deferred code.
|
// deferred code.
|
||||||
for (intptr_t i = 0;
|
for (intptr_t i = 0;
|
||||||
|
|
|
@ -1110,7 +1110,7 @@ void FlowGraphCompiler::CompileGraph() {
|
||||||
ASSERT(assembler()->constant_pool_allowed());
|
ASSERT(assembler()->constant_pool_allowed());
|
||||||
GenerateDeferredCode();
|
GenerateDeferredCode();
|
||||||
|
|
||||||
if (is_optimizing()) {
|
if (is_optimizing() && Compiler::allow_recompilation()) {
|
||||||
// Leave enough space for patching in case of lazy deoptimization from
|
// Leave enough space for patching in case of lazy deoptimization from
|
||||||
// deferred code.
|
// deferred code.
|
||||||
for (intptr_t i = 0;
|
for (intptr_t i = 0;
|
||||||
|
|
|
@ -1128,7 +1128,7 @@ void FlowGraphCompiler::CompileGraph() {
|
||||||
__ int3();
|
__ int3();
|
||||||
GenerateDeferredCode();
|
GenerateDeferredCode();
|
||||||
|
|
||||||
if (is_optimizing()) {
|
if (is_optimizing() && Compiler::allow_recompilation()) {
|
||||||
// Leave enough space for patching in case of lazy deoptimization from
|
// Leave enough space for patching in case of lazy deoptimization from
|
||||||
// deferred code.
|
// deferred code.
|
||||||
__ nop(CallPattern::pattern_length_in_bytes());
|
__ nop(CallPattern::pattern_length_in_bytes());
|
||||||
|
|
|
@ -1126,7 +1126,7 @@ void FlowGraphCompiler::CompileGraph() {
|
||||||
__ break_(0);
|
__ break_(0);
|
||||||
GenerateDeferredCode();
|
GenerateDeferredCode();
|
||||||
|
|
||||||
if (is_optimizing()) {
|
if (is_optimizing() && Compiler::allow_recompilation()) {
|
||||||
// Leave enough space for patching in case of lazy deoptimization from
|
// Leave enough space for patching in case of lazy deoptimization from
|
||||||
// deferred code.
|
// deferred code.
|
||||||
for (intptr_t i = 0;
|
for (intptr_t i = 0;
|
||||||
|
|
|
@ -1128,7 +1128,7 @@ void FlowGraphCompiler::CompileGraph() {
|
||||||
// Emit function patching code. This will be swapped with the first 13 bytes
|
// Emit function patching code. This will be swapped with the first 13 bytes
|
||||||
// at entry point.
|
// at entry point.
|
||||||
|
|
||||||
if (is_optimizing()) {
|
if (is_optimizing() && Compiler::allow_recompilation()) {
|
||||||
// Leave enough space for patching in case of lazy deoptimization from
|
// Leave enough space for patching in case of lazy deoptimization from
|
||||||
// deferred code.
|
// deferred code.
|
||||||
__ nop(ShortCallPattern::pattern_length_in_bytes());
|
__ nop(ShortCallPattern::pattern_length_in_bytes());
|
||||||
|
|
Loading…
Reference in a new issue