dotnet/runtime
GitHub で見るEnable specification of function ranges for JIT config values
Open
#13,307 opened on 2019年8月23日
area-CodeGen-coreclrhelp wanted
Repository metrics
- Stars
- (17,886 stars)
- PR merge metrics
- (平均マージ 12d 11h) (30d で 661 merged PRs)
説明
Currently there is ifdefed out in several places in the JIT that take a low and high hash value to enable binary search for optimization or register allocation issues:
minoptshashlo/minoptshashhiin compiler.cppJitStressRegsHashLo/JitStressRegsHashHiin lsra.cppstructpromohashlo/structpromohashhiin morph.cpploopclonehashlo/loopclonehashhiin optimizer.cpploophoisthashlo/loophoisthashhiin optimizer.cpp
Each of these does their own processing.
There's also COMPlus_JitFunctionFile that allows the specification of a file with a list of functions.
It would be good to have a general mechanism to specify:
- A range of method hash values
- A range of method count (Compiler::jitTotalMethodCompiled) - useful when the JIT order is reasonably stable and there are many methods with the same hash and/or in combination with a range of hash values when multiple methods must be included to reproduce a failure. This was valuable in tracking down dotnet/runtime#12993.
- A
COMPlusvalue that is enabled only for the methods included in the set
category:implementation theme:jit-coding-style skill-level:beginner cost:small