//~/android-6.0.1_r62/art/compiler/optimizing/code_generator.cc中
123 void CodeGenerator::CompileBaseline(CodeAllocator* allocator, bool is_leaf) {
124 Initialize();
125 if (!is_leaf) {
126 MarkNotLeaf();
127 }
128 const bool is_64_bit = Is64BitInstructionSet(GetInstructionSet());
129 InitializeCodeGeneration(GetGraph()->GetNumberOfLocalVRegs()
130 + GetGraph()->GetTemporariesVRegSlots()
131 + 1 /* filler */,
132 0, /* the baseline compiler does not have live registers at slow path */
133 0, /* the baseline compiler does not have live registers at slow path */
134 GetGraph()->GetMaximumNumberOfOutVRegs()
135 + (is_64_bit ? 2 : 1) /* current method */,
136 GetGraph()->GetBlocks());
137 CompileInternal(allocator, /* is_baseline */ true);
138 }
1/先进行Initialize()
2/判断是否是叶子方法,如果不是,则:
242 void MarkNotLeaf() {
243 is_leaf_ = false;
244 requires_current_method_ = true;
245 }
3/判断是否是64位架构
4/
233 void CodeGenerator::InitializeCodeGeneration(size_t number_of_spill_slots,
234 size_t maximum_number_of_live_core_registers,
235 size_t maximum_number_of_