This is an archive of the discontinued LLVM Phabricator instance.

[StaticAnalyzer] LoopWidening: Adding replayWithWidening in case of maxBlockVisitOnPath exceeded
Needs ReviewPublic

Authored by szepet on Aug 24 2017, 7:04 AM.

Details

Summary

In case of nested loops if we encounter an inner loop block it is possible that the analysis will be stopped there and we lost coverage even with 'conservative-loop-widen' option.
So in these cases we could retry to analyze the outer loop with a widened state which could result better coverage. (eg. see nested loop testcases)

Note: This revision contains copy-pasted codelines from LoopUnrolling.cpp. The main point is the idea here and in case it is accepted, then merging the two files (LoopUnrolling.cpp, LoopWidening.cpp) into one (eg. LoopModelling.cpp) would be worth considering.

Diff Detail

Event Timeline

szepet created this revision.Aug 24 2017, 7:04 AM
szepet updated this revision to Diff 112553.Aug 24 2017, 7:07 AM

Unnecessary comment removed.

szepet edited the summary of this revision. (Show Details)Aug 24 2017, 7:15 AM