Adds a JitGcStress compiler knob that will cause codegen to insert calls to a GC-triggering helper after each safe point in the method. This makes GC holes dramatically easier to reproduce. I've now used this successfully to root cause the problem in #2514. We should also consider enabling this on some of our tests, though this change does not do that.
I am also making two tweaks to make the Checked build faster here:
1) Parallelize the writing of bitcode. This will also help large compiles.
2) Disable writing out of textual IR by default (can still be enabled via --codegenopt:JitCheckLlvmIR=1). I've found that the tradeoff this makes in making the checked build slower means I am almost always using a Release build + llvm-dis instead.
Adds a
JitGcStress
compiler knob that will cause codegen to insert calls to a GC-triggering helper after each safe point in the method. This makes GC holes dramatically easier to reproduce. I've now used this successfully to root cause the problem in #2514. We should also consider enabling this on some of our tests, though this change does not do that.I am also making two tweaks to make the Checked build faster here: 1) Parallelize the writing of bitcode. This will also help large compiles. 2) Disable writing out of textual IR by default (can still be enabled via
--codegenopt:JitCheckLlvmIR=1
). I've found that the tradeoff this makes in making the checked build slower means I am almost always using a Release build +llvm-dis
instead.