[RTG][Elaboration] Move ConstantLike check after TypeSwitch for better performance #7998
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The
hasTrait
check is quite expensive. Most operations in the IR are likely not constants, thus doing the TypeSwitch and Visitor dispatch first, should lead to better performance in most cases.Reduces runtime of example in #7986 but with 10x more iterations from ~6.8 sec to ~3.7 sec (1.84x speedup).
Increases runtime of an example containing a single
rtg.test
containing 10 mioindex.constant
(and nothing else) from 1.67 sec to 1.85 sec (10% slowdown).