[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-03-02 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu added inline comments. Comment at: clang/test/CoverageMapping/deferred-region.cpp:43 if (true) -return; // CHECK: Gap,File 0, [[@LINE]]:11 +return; else vsk wrote: > I'm confused by this change. Do we lose the gap here? I assumed it was

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-03-02 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu updated this revision to Diff 327661. zequanwu marked an inline comment as done. zequanwu added a comment. - Deprecate deferred region. Use the notion of gap region inserted in VisitStmt to replace deferred region. - Emit gap region with OutCounter from last statement if exists. - Move

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-03-02 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added a comment. Thanks for the patient explanation. Comment at: clang/lib/CodeGen/CoverageMappingGen.cpp:1391 +// Clear DeferredRegion because we don't need to complete it after switch. +DeferredRegion = None; + Is the reason why we don't need to

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-03-01 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu added inline comments. Comment at: clang/lib/CodeGen/CoverageMappingGen.cpp:942 pushRegion(Counter::getZero()); -auto = getRegion(); -ZeroRegion.setDeferred(true); -LastTerminatedRegion = {EndLoc, RegionStack.size()}; +if (!HasTerminateStmt) { +

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-03-01 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added inline comments. Comment at: clang/lib/CodeGen/CoverageMappingGen.cpp:942 pushRegion(Counter::getZero()); -auto = getRegion(); -ZeroRegion.setDeferred(true); -LastTerminatedRegion = {EndLoc, RegionStack.size()}; +if (!HasTerminateStmt) { +

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-02-23 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu added inline comments. Comment at: clang/lib/CodeGen/CoverageMappingGen.cpp:593 MostRecentLocation = *StartLoc; - completeDeferred(Count, MostRecentLocation); } vsk wrote: > Does this mean a deferred gap region following a `break;`

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-02-23 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu updated this revision to Diff 325947. zequanwu marked an inline comment as done. zequanwu added a comment. - Revert the deletion of completeDeferred in pushRegion. - Emit zero gap region only if OutCounter is different from parentCounter in whil, for statements. - Update test cases.

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-02-22 Thread Vedant Kumar via Phabricator via cfe-commits
vsk added inline comments. Comment at: clang/lib/CodeGen/CoverageMappingGen.cpp:559 - /// Location of the last terminated region. - Optional> LastTerminatedRegion; + /// If there is a return, co_return, goto or throw inside. + bool HasTerminateStmt = false;

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-02-22 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu updated this revision to Diff 325516. zequanwu added a comment. Herald added a project: Sanitizers. Herald added a subscriber: Sanitizers. Rebase and fix runtime-counter-relocation.c > Do we have to revert D85036 in the same > patch in order to keep

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-02-22 Thread Reid Kleckner via Phabricator via cfe-commits
rnk added a comment. Are the check-profile presubmit test failures related to this patch? Do we have to revert D85036 in the same patch in order to keep the integration tests green? Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION

[PATCH] D97101: [Coverage] Emit zero count gap region between statements if first statements contains return, throw, goto, co_return

2021-02-19 Thread Zequan Wu via Phabricator via cfe-commits
zequanwu created this revision. zequanwu added reviewers: vsk, efriedma, rnk, pirama. Herald added a subscriber: lxfind. zequanwu requested review of this revision. Herald added a project: clang. Herald added a subscriber: cfe-commits. This solves the problems that D85036