Skip to content

Commit 779dfaa

Browse files
rmacnak-googlecommit-bot@chromium.org
authored andcommitted
[vm, compiler] Remove some unnecessary loads of null on ARM64.
TEST=ci Change-Id: Ie3cb4bb919a200d22853184c0c28903efc2e5bd9 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218783 Reviewed-by: Alexander Markov <[email protected]> Commit-Queue: Ryan Macnak <[email protected]>
1 parent 536ca0b commit 779dfaa

File tree

2 files changed

+4
-8
lines changed

2 files changed

+4
-8
lines changed

runtime/vm/compiler/backend/flow_graph_compiler_arm64.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,13 +360,11 @@ void FlowGraphCompiler::EmitPrologue() {
360360
}
361361

362362
__ Comment("Initialize spill slots");
363-
if (num_locals > 1 || (num_locals == 1 && args_desc_slot == -1)) {
364-
__ LoadObject(R0, Object::null_object());
365-
}
366363
for (intptr_t i = 0; i < num_locals; ++i) {
367364
const intptr_t slot_index =
368365
compiler::target::frame_layout.FrameSlotForVariableIndex(-i);
369-
Register value_reg = slot_index == args_desc_slot ? ARGS_DESC_REG : R0;
366+
Register value_reg =
367+
slot_index == args_desc_slot ? ARGS_DESC_REG : NULL_REG;
370368
__ StoreToOffset(value_reg, FP, slot_index * kWordSize);
371369
}
372370
}

runtime/vm/compiler/backend/il_arm64.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2705,10 +2705,8 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler,
27052705
// R3: new object end address.
27062706
// R8: iterator which initially points to the start of the variable
27072707
// data area to be initialized.
2708-
// R6: null
27092708
if (num_elements > 0) {
27102709
const intptr_t array_size = instance_size - sizeof(UntaggedArray);
2711-
__ LoadObject(R6, Object::null_object());
27122710
__ AddImmediate(R8, AllocateArrayABI::kResultReg,
27132711
sizeof(UntaggedArray) - kHeapObjectTag);
27142712
if (array_size < (kInlineArraySize * kCompressedWordSize)) {
@@ -2718,7 +2716,7 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler,
27182716
AllocateArrayABI::kResultReg,
27192717
compiler::Address(R8, current_offset, compiler::Address::Offset,
27202718
compiler::kObjectBytes),
2721-
R6);
2719+
NULL_REG);
27222720
current_offset += kCompressedWordSize;
27232721
}
27242722
} else {
@@ -2730,7 +2728,7 @@ static void InlineArrayAllocation(FlowGraphCompiler* compiler,
27302728
AllocateArrayABI::kResultReg,
27312729
compiler::Address(R8, 0, compiler::Address::Offset,
27322730
compiler::kObjectBytes),
2733-
R6);
2731+
NULL_REG);
27342732
__ AddImmediate(R8, kCompressedWordSize);
27352733
__ b(&init_loop);
27362734
__ Bind(&end_loop);

0 commit comments

Comments
 (0)