diff options
author | Nicolas Geoffray <ngeoffray@google.com> | 2014-07-22 17:47:56 +0100 |
---|---|---|
committer | Nicolas Geoffray <ngeoffray@google.com> | 2014-07-22 17:47:56 +0100 |
commit | 73e80c3ae76fafdb53afe3a85306dcb491fb5b00 (patch) | |
tree | 6c437ad0e24f0ed66251e8f37c13b6e6675db1f2 /compiler/optimizing/code_generator.cc | |
parent | 16fc9f617e395758eb95b5f2124c79a828186b55 (diff) | |
download | android_art-73e80c3ae76fafdb53afe3a85306dcb491fb5b00.tar.gz android_art-73e80c3ae76fafdb53afe3a85306dcb491fb5b00.tar.bz2 android_art-73e80c3ae76fafdb53afe3a85306dcb491fb5b00.zip |
Make unit test tell if a method is a leaf.
The runtime is not initialized completely in gtests, so we
cannot run code (such as explicit stack overflow checks) that
look at tls values.
Change-Id: I74a4449b01eb203f1b411dda700e9459878d0d55
Diffstat (limited to 'compiler/optimizing/code_generator.cc')
-rw-r--r-- | compiler/optimizing/code_generator.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/compiler/optimizing/code_generator.cc b/compiler/optimizing/code_generator.cc index c0964e6481..bd8c27ec3e 100644 --- a/compiler/optimizing/code_generator.cc +++ b/compiler/optimizing/code_generator.cc @@ -30,16 +30,16 @@ namespace art { -void CodeGenerator::CompileBaseline(CodeAllocator* allocator) { +void CodeGenerator::CompileBaseline(CodeAllocator* allocator, bool is_leaf) { const GrowableArray<HBasicBlock*>& blocks = GetGraph()->GetBlocks(); DCHECK(blocks.Get(0) == GetGraph()->GetEntryBlock()); DCHECK(GoesToNextBlock(GetGraph()->GetEntryBlock(), blocks.Get(1))); block_labels_.SetSize(blocks.Size()); DCHECK_EQ(frame_size_, kUninitializedFrameSize); - // The baseline compiler does not do graph analysis prior to generating - // code. - MarkNotLeaf(); + if (!is_leaf) { + MarkNotLeaf(); + } ComputeFrameSize(GetGraph()->GetMaximumNumberOfOutVRegs() + GetGraph()->GetNumberOfLocalVRegs() + GetGraph()->GetNumberOfTemporaries() |