-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Print indices of assertions instead of raw bitsets #54928
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
Print indices of assertions instead of raw bitsets #54928
Conversation
820ff19 to
11b1a20
Compare
|
cc @AndyAyersMS |
sandreenko
left a comment
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, I like the new dump on small methods.
cc @dotnet/jit-contrib
|
I like the symbolic output. IMO, we don't need to dump anything for the actual dataflow propagation; that output is only useful if you're debugging that dataflow algorithm, which shouldn't be frequent, whereas debugging which assertions are in/out could be more generally useful. I'd I'd put in/out output (post-dataflow) on separate lines (and aligned). |
|
I've pushed out two changes, as per Bruce's feedback: 1) Changed the format of the final output for the assertions: BB01:
in = #NA
out = #NA
BB02:
in = #NA
out = #02
BB06 = #01
BB03:
in = #02
out = #02 #03 #04 #05
BB04:
in = #02 #03 #04 #05
out = #02 #03 #04 #05
BB06 = #01 #02 #03 #04 #05
BB05:
in = #02 #03 #04 #05
out = #02 #03 #04 #05
BB06:
in = #NA
out = #02
BB08 = #01
BB07:
in = #02
out = #02 #06
BB08:
in = #NA
out = #NA
BB09:
in = #02 #03 #04 #05
out = #02 #03 #04 #05
BB10:
in = #02 #03 #04 #05
out = #02 #03 #04 #05 #07
BB11:
in = #02 #03 #04 #05 #07
out = #02 #03 #04 #05 #07It is not what I would call "ideal", but it is aligned. 2) Removed the printing of dataflow from the regular dumps. This is intentionally conditioned on an instance method so that it can be easily enabled via the usual environment variable config switch mechanism if needed. |
BruceForstall
left a comment
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.
Looks good!
|
Can you rebase and ensure there are no formatting issues? (rerun jit-format) |
For use in contexts where some printing method should only be executed when "verbose" is true.
To aid in understanding what assertions are being propagated and merged when reading the dumps.
It can still be enabled if needed.
2ad39fa to
157746d
Compare
|
CI failures do not appear related: 1) |
This is to improve the experience of reading assertion propagation dumps.
Before:
After:
Before:
After
Before:
After:
(This part I am unsure about - would it be worth it to increase the vertical size of the dump to align
ins withouts?)Before:
After:
Before:
After:
The downside to this style of printing is the horizontal size of the dump increases when working with methods that have a large number of assertions. I think it is worth it.
Naturally, no diffs for this change.