-
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
Change fgMorphMultiOp to fgMorphHWIntrinsic #103732
Conversation
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch |
c22bf4d
to
aa736cf
Compare
aa736cf
to
60ee682
Compare
|
||
if (vnStore != nullptr) | ||
{ | ||
fgValueNumberTreeConst(vecCon); |
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.
nit: fgUpdateConstTreeValueNumber
since it does vnStore != nullptr
under the hood
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.
There's a few places doing this that can switch, I'll get them updated in a follow up PR.
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.
Opened #103771
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.
lgtm
* Remove a dead optimization from fgMorphMultiOp * Change fgMorphMultiOp to fgMorphHWIntrinsic * Move a couple of folding operations from `fgOptimizeHWIntrinsic` to `gtFoldExprHWIntrinsic` * Fix the query for if an intrinsic is commutative * Don't propagate vector constants unnecessarily
This is just a simple iterative cleanup. Namely it simplifies
fgMorphMultiOp
to just befgMorphHWIntrinsic
as that was the only user (and likely will be the only user for the foreseeable future).It additionally moves a couple of optimizations out of
fgOptimizeHWIntrinsic
down intofgFoldExprHWIntrinsic
as they are simple folding operations removing nodes and/or producing constants. They are not more advanced transformations which would be producing new trees.