-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Print indices of assertions instead of raw bitsets #54928
Conversation
820ff19
to
11b1a20
Compare
cc @AndyAyersMS |
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 #07 It 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. |
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
in
s without
s?)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.