- 01 Sep, 2021 5 commits
-
-
Clemens Backes authored
This is a reland of 6ae18c2d, with {CompileWasmCapiCallWrapper} fixed to also contain a {CodeSpaceWriteScope}. Original change's description: > [wasm] Move write scope out of NativeModule::AddCode > > {NativeModule::AddCode} is a central method that should usually be > called in batches, where the caller holds a {CodeSpaceWriteScope} for a > longer time (over several compilations). > This CL moves us closer to that by removing the scope from that central > method and instead putting it in callers where it becomes more visible. > There are already TODOs to introduce caching or batching to avoid some > switching, and one more TODO is added. > > Drive-by: Remove an unneeded {CodeSpaceMemoryModificationScope}. > > R=jkummerow@chromium.org > > Bug: v8:11974 > Change-Id: Ia13c601abc766e5fca6ca053bf1fc4d647b53ed0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3098186 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#76344} Bug: v8:11974 Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_dbg_ng Cq-Include-Trybots: luci.v8.try:v8_mac_arm64_rel_ng Change-Id: I6367bbd9dc52c403513eb1a168aa1f6eb4044ca1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3129703Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#76626}
-
Jakob Gruber authored
Broken by crrev.com/c/3129420 error: ‘CompilationDependency::AsTransition() const’ defined but not used. Bug: v8:7790 Change-Id: I06839c4d33d3a52909e0e5a276c567eca83e910f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3133147 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/main@{#76623}
-
Pierre Langlois authored
Building with v8_use_perfetto requires that the categories passed to TRACE_EVENT* be a constexpr. Change-Id: Iee4b713d8fe0b3f52f6e5cfe5baef0ced87f9855 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3135575Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Pierre Langlois <pierre.langlois@arm.com> Cr-Commit-Position: refs/heads/main@{#76620}
-
Jakob Gruber authored
JSFunctionData has a fairly heavy serialized payload, and likewise consistency validation validates many fields and thus has many opportunities to fail. We therefore want to avoid or reduce validation whenever possible. This CL adds tracking s.t. we know which fields were actually used, and we limit validation to used fields. Drive-by: Make serialized_ debug-only. Drive-by: Don't create deps for context/native_context/shared. Bug: v8:7790 Change-Id: Ic32c9919f0c75a76d9c36e4396b6bce383151b62 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3132962 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76614}
-
Shu-yu Guo authored
This CL does the following for x64: - Add seq cst TSAN helpers. - Refactors codegen's handling of TSAN helpers to also support seq cst accesses. - Perform stores only once instead twice under TSAN, since duplicating stores is unsound. Previously this was "fine" because all duplicated stores were relaxed. SeqCst stores are used for synchronization, however, and duplicating them breaks the synchronization. Bug: v8:7790, v8:11600, v8:11995 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Change-Id: I43071b0ed516cb0917a10f3b2b9861d74edca041 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3103308 Commit-Queue: Shu-yu Guo <syg@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Cr-Commit-Position: refs/heads/main@{#76612}
-
- 31 Aug, 2021 7 commits
-
-
Milad Fa authored
This CL takes advantage of the z15 `load byte reverse element` instruction to optimize Simd Load and Zero opcodes. On the simulator we only run `load element` as reversing is not required. Change-Id: I868bda865249cdc525f804c8ddf4d45df5977a86 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3132965Reviewed-by:
Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#76610}
-
Ng Zhi An authored
Wasm stubs (C to Wasm and Wasm to JS) aren't logged, so they show up as ??? in GDB backtraces. Emit a CodeCreateEvent in the finalization phase of the compilation job so that the JitCodeLogger can keep track of it. With this, a backtrace shows up like (truncated): -(gdb) bt -#0 v8::internal::Runtime_WasmArrayCopy -#1 0x00007fc69d2e155f in Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit -#2 0x00001c368159fcfc in Function:wasm-function[0]-0-turbofan -#3 0x000000fa00044096 in Stub:c-wasm-entry:i:i -#4 0x00007fc69dc76b76 in v8::internal::GeneratedCode -#5 0x00007fc69dc75b25 in v8::internal::Execution::CallWasm -#6 0x000056506d1a2b6b in v8::internal::wasm::test_gc::WasmGCTester::CallFunctionImpl Bug: v8:11908 Change-Id: I1223b496091f99a94f2e4e665831462cc9617286 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3109050Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76608}
-
Pierre Langlois authored
The PipelineRunScope scope is live on every Run() phase and it isn't allowed to nest. This means we cannot open a new PipelineRunScope during TraceScheduleAndVerify() because it can be called in the middle of a Run(), which we do during effect-control-linearization in the JS pipeline. We can fix this by directly using a RuntimeCallTimerScope and a tracing event, instead of relying on PipelineRunScope to do that. Change-Id: I3c17b2c0a58ff3cac0d1dcc796f54d29b3444468 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3132506 Auto-Submit: Pierre Langlois <pierre.langlois@arm.com> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76603}
-
Georg Neis authored
Fixed: v8:12154, v8:7790 Change-Id: Ib5f3617f6d992b5916faf623ddced06d6e81bbfd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3132960Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76602}
-
Jakob Gruber authored
Bug: v8:7790,v8:12149 Change-Id: I0c23b2c1126b2a950efe848973618407f64afeb7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3132268 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76601}
-
Jakob Gruber authored
- Move the compilation-dependency.h header contents into compilation-dependencies.cc; - add macro lists to define type checks and casts; - add invalidated dependency tracing to the --trace-compilation-dependencies flag (renamed from --trace-code-dependencies). Bug: v8:7790 Change-Id: I34b950cd0b79b8d2673b1195599aec763f6b60d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3129420 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76596}
-
Lu Yahan authored
Bug: v8:12151 Change-Id: I97d15e9089164c05715b3121839d4bd6ba08cb70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3131782Reviewed-by:
Ji Qiu <qiuji@iscas.ac.cn> Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#76594}
-
- 30 Aug, 2021 11 commits
-
-
Georg Neis authored
... by removing some obsolete code. Bug: v8:7790 Change-Id: Iad31b60de5905ba05e1c622e81c3234071752e9f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124806 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76584}
-
Georg Neis authored
... by removing some obsolete code. Bug: v8:7790 Change-Id: I3a244ef5fc7fe15321e5bb1c9bb2fe794030ba3b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124801 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76582}
-
Georg Neis authored
... by removing some obsolete code. Bug: v8:7790 Change-Id: I722031158d45335f3e086eb335a447fbc5066cac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124798 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76580}
-
Milad Fa authored
Port 67113424 Original Commit Message: Like https://chromium-review.googlesource.com/c/v8/v8/+/2994804, but for arm and arm64. R=thakis@chromium.org, joransiu@ca.ibm.com, junyan@redhat.com, midawson@redhat.com BUG= LOG=N Change-Id: I4fbc42c48db2c43e55279ab40681c0735106d454 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3129640Reviewed-by:
Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#76577}
-
Georg Neis authored
... by removing some obsolete code. Bug: v8:7790 Change-Id: I32880d2a4fbd943ea0e485d8e8aff07ac9903e9d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124795 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76576}
-
Georg Neis authored
... by removing some obsolete code. Bug: v8:7790 Change-Id: Ie098055a1849de5d853c126e0c7275164f964ce8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124774 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76575}
-
Georg Neis authored
Instead create the appropriate data on demand. Note that this changes behavior of the default configuration. Bug: v8:7790 Change-Id: Ia6bfcaace655c0fd72e2dcc0c2547195dc1cc4a7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123419Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76570}
-
Georg Neis authored
Bug: v8:7790 Change-Id: Iaa2f7e0e0ae552089867d2789ec4e541df2d6a24 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123413Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76567}
-
Georg Neis authored
We can now tighten the return type of FindRootMap and remove some related code. Bug: v8:7790 Change-Id: I08325e7e4f4c9261c45770f7674b6644cc5c2b80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123411Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76564}
-
Georg Neis authored
These methods are called only during the inlining phase, so even in the default configuration we follow the same branch as concurrent inlining and ignore the serialized data. We can thus tighten their return types and cut down JSBoundFunctionData. Bug: v8:7790 Change-Id: Ic48f8f2651d684440dc5f6a9934de2ae3a5b5132 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123410Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/main@{#76561}
-
Yu Yin authored
Change-Id: I49276c44d4b457d65be0e5e922c7c473bb64071e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124216 Auto-Submit: Yu Yin <xwafish@gmail.com> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#76557}
-
- 27 Aug, 2021 4 commits
-
-
Ng Zhi An authored
Handle all 4 selects that wasm-compiler generates. Also modify unittest to allow optional operations (select operations are not supported on all archs). Bug: v8:12136 Change-Id: Ia54d7a71cffaa1c5cc8203520a1f3d812997bbb1 Fixed: v8:12136 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3119991Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76539}
-
Lu Yahan authored
This is causing a warning on newer build configs (crrev.com/c/3117087) Change-Id: I8cf7644861c27b9959283510163ecf8acdb6bdc8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3124174 Auto-Submit: Yahan Lu <yahan@iscas.ac.cn> Commit-Queue: Ji Qiu <qiuji@iscas.ac.cn> Reviewed-by:
Ji Qiu <qiuji@iscas.ac.cn> Cr-Commit-Position: refs/heads/main@{#76523}
-
Yu Yin authored
Change-Id: Ibbe1882f043dd58ccea051e120a88bc4df1b9095 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123653 Commit-Queue: Yu Yin <xwafish@gmail.com> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Auto-Submit: Yu Yin <xwafish@gmail.com> Reviewed-by:
Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/main@{#76521}
-
Ng Zhi An authored
1. Move Abspd, Negpd from MacroAssembler into TurboAssembler so that we can use it in code-generator 2. Add Absps and Negps (float32 versions of the instructions in 1) 3. Refactor SSE/AVX float32/float64 abs/neg to use these macro-assembler helpers. 4. Use these helpers in Liftoff too This has the benefit of not requiring to set up the masks in a temporary register, and loading the constants via an ExternalReference instead. It does require (in ins-sel) to have the input be in a Register, since the ExternalReference is an operand (and the instruction can only have 1 operand input). Bug: v8:11589 Change-Id: I68fafaf31b19ab05ee391aa3d54c45d547a85b34 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3123635Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76520}
-
- 26 Aug, 2021 7 commits
-
-
Milad Fa authored
This CL takes advantage of the z15 `load byte reverse element` instruction to optimize Simd LoadExtend opcodes. On the simulator we only run `load element` as reversing is not required. Change-Id: Ia34ac86f93e987656596b3116771a30f64009416 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3119048Reviewed-by:
Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#76517}
-
Ng Zhi An authored
No functionality change, moved the i8x16.popcnt algorithm into shared-macro-assembler. Bug: v8:11589 Change-Id: I3dd9d01589bf0176df1e33433f4c3c0c717c253d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3122572Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76516}
-
Ng Zhi An authored
Also move Pshufb definition into shared-macro-assembler. We define a Pshufb that handles both SSE and AVX, and in SSE case will move src to dst if they are not the same. Define operator== and operator!= in ia32's Operand class that will check against XMMRegister, we can then use DCHECK_NE to ensure that a register doesn't alias a operand wrapping a register. Bug: v8:11589 Change-Id: I7c30881e8a9b322b736bb7301dde0c5424efacdd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3119997 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76515}
-
Manos Koukoutos authored
When introducing LoadImmutable, we missed a couple of places where it can be used like Load. Change-Id: If02f6f1ad01d9b68ee757b38689e9f6336a6fb1d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3118545Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#76512}
-
Ng Zhi An authored
Bug: v8:11589 Change-Id: I7c97920d8ab94408b5cde4e90e7ff1aa9bcaeeba Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3119995Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76511}
-
Leszek Swirski authored
This is causing a warning on newer build configs (crrev.com/c/3117087) Change-Id: I56afc0e5b0df4b345f8d1b27520b7c35ba31b2df Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3122170Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#76509}
-
Ng Zhi An authored
This should be the last remaining thing that fails the -Wunreachable-code-aggressive warning. Currently V8 DEPS update is failing due to the update containing https://crrev.com/c/3115354, with this, the update should then be fine. Bug: chromium:1066980 Change-Id: Ic74b3a95f90204333b0724d30463c6953047e5f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3119999 Commit-Queue: Zhi An Ng <zhin@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Auto-Submit: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Shu-yu Guo <syg@chromium.org> Owners-Override: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#76496}
-
- 25 Aug, 2021 3 commits
-
-
Ng Zhi An authored
Bug: v8:11589 Change-Id: I7b55efa76f60eacf31700a544f54042eec963f57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3115545Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76495}
-
Ng Zhi An authored
We create a ExternalReferenceAsOperand helper function in SharedTurboAssemblerBase that delegates to the actual arch specific implementation of TurboAssembler, because the ia32 and x64 ExternalReferenceAsOperand differs slightly in their implementation. Bug: v8:11589 Change-Id: I378ea6b72fb2bba1a37482cc31cd58db0ba35721 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3114604Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76494}
-
Milad Fa authored
This CL takes advantage of the z15 `load reverse and replicate` instruction to optimize Simd LoadSplat opcodes. On the simulator we only run `load replicate` as reversing is not required. We will need to implement the rest of the `load transform` ops before enabling this from wasm-compiler on BE machines. Change-Id: I81ffedf51c3d35dbbc2a6455a2756cad25434127 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3115142Reviewed-by:
Junliang Yan <junyan@redhat.com> Commit-Queue: Milad Fa <mfarazma@redhat.com> Cr-Commit-Position: refs/heads/main@{#76490}
-
- 24 Aug, 2021 3 commits
-
-
Ng Zhi An authored
These instructions are all single instruction lowering, so it's a matter of changing the code-gen to call macro-assembler functions (that will do the AVX check). Bug: v8:11217 Change-Id: I472eacf74933f4b504299fc85f63fd07062db320 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3114602Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76476}
-
Ng Zhi An authored
Bug: v8:11589 Change-Id: Ie51cfd6cd6315f7f14f0c584f190a478ed565b0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3114603Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76475}
-
Ng Zhi An authored
We also set these operations to explicitly require Register for the second operand (rhs) even if AVX is supported. Although AVX instructions support unaligned operands, there is potentially a performance hit, especially on older hardware. This matches the x64 instruction selector as well. Bug: v8:11217 Change-Id: Iae11ec23cc607842a034250028f7667fb2fcb0d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3114601Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#76474}
-