-
Notifications
You must be signed in to change notification settings - Fork 4.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Revert "Revert Allow some intrinsics in Tier0" #82354
Conversation
/azp run runtime-coreclr outerloop, runtime-coreclr pgo, runtime-coreclr libraries-pgo |
Azure Pipelines successfully started running 3 pipeline(s). |
There are other places that assume that only relops appear under runtime/src/coreclr/jit/lower.cpp Line 3471 in edce5ea
runtime/src/coreclr/jit/optimizer.cpp Line 860 in edce5ea
These may not run under tier 0, but if that is the IR invariant I don't think we should be breaking it in tier 0 (or, we should change the IR invariant simultaneously everywhere). Can we avoid the folding in morph instead? |
@jakobbotsch thanks, I eliminated two sources of such possabilities:
|
/azp run runtime-coreclr outerloop, runtime-coreclr pgo, runtime-coreclr libraries-pgo |
Azure Pipelines successfully started running 3 pipeline(s). |
/azp run runtime-coreclr outerloop |
Azure Pipelines successfully started running 1 pipeline(s). |
PTAL @dotnet/jit-contrib @jakobbotsch @AndyAyersMS |
Failure is #82352 (comment) |
Reverts #82079 revert.
It turned out Morph folded some of those intrinsics to 0/1 (e.g. typeof() comparisons and IsKnownConstant) and we've got
JTRUE(0/1)
that was never cleaned up in Tier0.I plan to enable a limited version of constant folding in tier0 (mainly, to remove dead branches = call VM less = better TP), e.g.
Currently, in tier0 we don't fold these dead branches (but at least this PR folds comparisons to 0/1).
so this PR is expected to bring the wins back ^
Will run outerloop CI