dotnet/runtime
Auf GitHub ansehenEnable specification of function ranges for JIT config values
Open
#13.307 geöffnet am 23. Aug. 2019
area-CodeGen-coreclrhelp wanted
Repository-Metriken
- Stars
- (17.886 Stars)
- PR-Merge-Metriken
- (Durchschn. Merge 12T 11h) (661 gemergte PRs in 30 T)
Beschreibung
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