-
Notifications
You must be signed in to change notification settings - Fork 367
Instrumentation cleanup when operation was removed #3061
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
Instrumentation cleanup when operation was removed #3061
Conversation
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
Signed-off-by: Alexandre Eichenberger <[email protected]>
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!
Jenkins Linux s390x Build #16227 [push] Instrumentation cleanup ... started at 14:25 |
Jenkins Linux ppc64le Build #15254 [push] Instrumentation cleanup ... started at 14:45 |
Jenkins Linux amd64 Build #16225 [push] Instrumentation cleanup ... started at 13:26 |
Jenkins Linux amd64 Build #16225 [push] Instrumentation cleanup ... passed after 1 hr 17 min |
Jenkins Linux s390x Build #16227 [push] Instrumentation cleanup ... passed after 1 hr 27 min |
Jenkins Linux ppc64le Build #15254 [push] Instrumentation cleanup ... passed after 2 hr 32 min |
Signed-off-by: Alexandre Eichenberger <[email protected]>
When some later optimizations remove an op that is instrumented, we still get the BEFORE/AFTER instrumentation back to back without anything in between.
That makes it harder to detect if a given optimization removes operations or not. For example, when
-enable-compiler-stick-unstick
succeeds or not in removing unneeded stick/unstick.This PR adds a pass just before lowering instrumentation and detects if there are 2 consecutive instrumentation call (one BEFORE and one AFTER tags) that do not also initialize the instrumentation. When the is the case, then these two instrumentation operations are removed.
Now we can directly see if an optimization add/remove operations using the
make-report.py
and get more informative profiling information as the number of calls more precisely reflect the number of actual operations executed.Measurement without compiler gen stick/unstick (1 stick/unstick only):
Measurement with compiler gen stick/unstick (3 stick/unstick):