-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Canonicalize IR to disallow throwing GlobalRef in value position (#36450
) In anticipation of making the SSA IR more of an interface that packages can use to implement custom compiler transformation, I'd like to do some cleanup first. The is the first of the items on my list: Disallowing GlobalRef in value position if it could potentially throw (because the binding doesn't exist yet). This is done as part of SSA conversion, because we don't know whether a binding will exist during parsing/lowering and we don't modify the IR at all between lowering and the end of type inference, so doing it during SSA conversion is the first possible opportunity. The reason to do this is to simplify transformation passes that want to replace calls with sequences of other instructions. By moving those GlobalRef that could potentially throw into statement position, the order of argument evaluation does not matter (this isn't quite true yet due to static parameters, but I'd like to fix that in a separate commit). I think that's a desirable property to simplify the life os pass authors.
- Loading branch information
Showing
3 changed files
with
36 additions
and
12 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
39c278b
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Executing the daily benchmark build, I will reply here when finished:
@nanosoldier
runbenchmarks(ALL, isdaily = true)
39c278b
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Your benchmark job has completed - possible performance regressions were detected. A full report can be found here. cc @ararslan