JIT: update jit config defaults for PGO (#49267)
authorAndy Ayers <andya@microsoft.com>
Tue, 9 Mar 2021 16:35:15 +0000 (08:35 -0800)
committerGitHub <noreply@github.com>
Tue, 9 Mar 2021 16:35:15 +0000 (08:35 -0800)
commita4c765d9f4c4221c7bb0c9d6336bf1f3c92d5db9
treeb346e44133ec611184f79cc2e328da8744fccaf4
parent0c20962f56ac1fb954d375a2a735a3c6508e9b95
JIT: update jit config defaults for PGO (#49267)

Enable edge profiling by default, when jitting, or when prejitting for R2R.
Keep block profiling there for classic ngen (so there is an entry probe).

Enable minimal probing by default, when jitting. Keep full probing there for
prejitting so presence of counts in a method implies method was executed.

Enable class profiling by default when jitting. Still TBD if we will also
do this when prejitting.

Enable guarded devirtualization by default (will only kick in for PGO).

Adjust experimental CI legs to reflect the above.

Net effect is that when jitting, COMPlus_TieredPGO=1 turns on dynamic PGO
with the expected set of behaviors, without any other options.

We'll still need to set COMPlus_TC_QuickJitForLoops=1 to have methods with
loops pass through Tier0.
eng/pipelines/common/templates/runtimes/run-test-job.yml
src/coreclr/jit/fgprofile.cpp
src/coreclr/jit/jitconfigvalues.h
src/tests/Common/testenvironment.proj