Commit 2987a4ea authored by Lu Yahan's avatar Lu Yahan Committed by V8 LUCI CQ

[riscv] Port [log][compiler] Enable first-execution logging

Port commit b2576418


Bug: v8:13146
Change-Id: Ie3727e873614f6e3e0749cb8cc10b287cd9643c2
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3885380Reviewed-by: 's avatarji qiu <qiuji@iscas.ac.cn>
Commit-Queue: Yahan Lu <yahan@iscas.ac.cn>
Cr-Commit-Position: refs/heads/main@{#83120}
parent 62635a72
...@@ -213,18 +213,29 @@ void MacroAssembler::MaybeOptimizeCodeOrTailCallOptimizedCodeSlot( ...@@ -213,18 +213,29 @@ void MacroAssembler::MaybeOptimizeCodeOrTailCallOptimizedCodeSlot(
DCHECK(!AreAliased(flags, feedback_vector)); DCHECK(!AreAliased(flags, feedback_vector));
UseScratchRegisterScope temps(this); UseScratchRegisterScope temps(this);
temps.Include(t0, t1); temps.Include(t0, t1);
Label maybe_has_optimized_code; Label maybe_has_optimized_code, maybe_needs_logging;
// Check if optimized code is available. // Check if optimized code is available.
{ {
UseScratchRegisterScope temps(this); UseScratchRegisterScope temps(this);
Register scratch = temps.Acquire(); Register scratch = temps.Acquire();
And(scratch, flags, And(scratch, flags,
Operand(FeedbackVector::kFlagsTieringStateIsAnyRequested)); Operand(FeedbackVector::kFlagsTieringStateIsAnyRequested));
Branch(&maybe_has_optimized_code, eq, scratch, Operand(zero_reg), Branch(&maybe_needs_logging, eq, scratch, Operand(zero_reg),
Label::Distance::kNear); Label::Distance::kNear);
} }
GenerateTailCallToReturnedCode(Runtime::kCompileOptimized); GenerateTailCallToReturnedCode(Runtime::kCompileOptimized);
bind(&maybe_needs_logging);
{
UseScratchRegisterScope temps(this);
Register scratch = temps.Acquire();
And(scratch, flags, Operand(FeedbackVector::LogNextExecutionBit::kMask));
Branch(&maybe_has_optimized_code, eq, scratch, Operand(zero_reg),
Label::Distance::kNear);
}
GenerateTailCallToReturnedCode(Runtime::kFunctionLogNextExecution);
bind(&maybe_has_optimized_code); bind(&maybe_has_optimized_code);
Register optimized_code_entry = flags; Register optimized_code_entry = flags;
LoadAnyTaggedField( LoadAnyTaggedField(
......
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