dotnet/runtime
Vedi su GitHubEnable specification of function ranges for JIT config values
Open
#13.307 aperta il 23 ago 2019
area-CodeGen-coreclrhelp wanted
Metriche repository
- Star
- (17.886 star)
- Metriche merge PR
- (Merge medio 12g 11h) (661 PR mergiate in 30 g)
Descrizione
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