Skip to content
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

throw away report that is lineage of current constant-propagated frame #37

Merged
merged 12 commits into from
Sep 22, 2020

Conversation

aviatesk
Copy link
Owner

@aviatesk aviatesk commented Sep 21, 2020

fixes #36

@aviatesk aviatesk changed the title report throw-away by looking for lineage of this frame throw away report that is lineage of current constant-propagated frame Sep 21, 2020
aviatesk and others added 5 commits September 21, 2020 17:12
…ous" frames

- previous "cache clean up" logic potentially throws away true positive 
errors, while we need that to surpress false positives that can be 
revealed by constant propagation
- this commit removes the whole reconstructions of cached reports, and 
just force inference on those "erronesout" `MethodInstance`s by 
returning `default` fallback value to `CC.get(tpc::TPCache, 
mi::MethodInstance, default)`
- as a result, those "erronesous" frames will always re-run inference 
and
so constant propagation will reveal false/true positives whatever it's 
cached
(just because it ignores the cache)
- this may slow down abstract interpretation performance, but cache 
ignorance
is only done partially and so hopefully performance won't get so worse 
(I hope)
- at the cost of that, this will simplify the whole code **a lot** and 
also resolves
the previous problems of cache clean up of true positive reports
rm reconstruction of cached reports, just force inference on "errorne…
@codecov-commenter
Copy link

codecov-commenter commented Sep 22, 2020

Codecov Report

Merging #37 into master will decrease coverage by 1.49%.
The diff coverage is 95.45%.

Impacted file tree graph

@@            Coverage Diff             @@
##           master      #37      +/-   ##
==========================================
- Coverage   87.14%   85.65%   -1.50%     
==========================================
  Files           9        9              
  Lines         731      676      -55     
==========================================
- Hits          637      579      -58     
- Misses         94       97       +3     
Flag Coverage Δ
#unittests 85.65% <95.45%> (-1.50%) ⬇️

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/TypeProfiler.jl 44.44% <ø> (ø)
src/reports.jl 92.52% <93.33%> (-1.83%) ⬇️
src/abstractinterpretation.jl 96.36% <100.00%> (-0.61%) ⬇️
src/abstractinterpreterinterface.jl 86.95% <100.00%> (+0.59%) ⬆️
src/tfuncs.jl 100.00% <100.00%> (ø)
src/tpcache.jl 92.30% <100.00%> (-4.36%) ⬇️

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 76d846a...c51a811. Read the comment docs.

@aviatesk aviatesk force-pushed the avi/constantpropagation branch 2 times, most recently from ae1e7ec to 9d31e37 Compare September 22, 2020 07:39
FIXME: this insanely slows down profiling performance, but more correct 
at least
@aviatesk aviatesk merged commit a97a07d into master Sep 22, 2020
@aviatesk aviatesk deleted the avi/constantpropagation branch September 22, 2020 10:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

more careful report throw-away by "constant propagated"-interpretation
2 participants