area-CodeGen-coreclrhelp wantedtenet-performance
仓库指标
- Star
- (17,886 star)
- PR 合并指标
- (平均合并 12天 11小时) (30 天内合并 661 个 PR)
描述
public class Program
{
public static void Main(string[] args)
{
for (int i = 0; i < 100; i++)
{
F();
Thread.Sleep(16);
}
}
static int f;
[MethodImpl(MethodImplOptions.NoInlining)]
static void F() => f++;
}
Codegen for Tier0 and Tier1 for method F():
; Assembly listing for method Program:F()
; Tier-0 compilation
55 push rbp
488BEC mov rbp, rsp
FF05CEDB1900 inc dword ptr [(reloc 0x7ffa7536f918)]
5D pop rbp
C3 ret
; Assembly listing for method Program:F()
; Tier-1 compilation
48B818F93675FA7F0000 mov rax, 0x7FFA7536F918
FF00 inc dword ptr [rax]
C3 ret
Tier0 managed to use a reloc for inc while tier1 does not (the address remains the same)
category:cq theme:tiering skill-level:intermediate cost:small impact:medium