File tree Expand file tree Collapse file tree 2 files changed +4
-0
lines changed
cpp/ql/src/semmle/code/cpp/ir/implementation Expand file tree Collapse file tree 2 files changed +4
-0
lines changed Original file line number Diff line number Diff line change @@ -647,6 +647,8 @@ module DefUse {
647
647
/**
648
648
* Holds if the specified `useLocation` is live on entry to `block`. This holds if there is a use of `useLocation`
649
649
* that is reachable from the start of `block` without passing through a definition that overlaps `useLocation`.
650
+ * Note that even a partially-overlapping definition blocks liveness, because such a definition will insert a `Chi`
651
+ * instruction whose result totally overlaps the ___location.
650
652
*/
651
653
predicate locationLiveOnEntryToBlock ( Alias:: MemoryLocation useLocation , OldBlock block ) {
652
654
definitionHasPhiNode ( useLocation , block ) or
Original file line number Diff line number Diff line change @@ -647,6 +647,8 @@ module DefUse {
647
647
/**
648
648
* Holds if the specified `useLocation` is live on entry to `block`. This holds if there is a use of `useLocation`
649
649
* that is reachable from the start of `block` without passing through a definition that overlaps `useLocation`.
650
+ * Note that even a partially-overlapping definition blocks liveness, because such a definition will insert a `Chi`
651
+ * instruction whose result totally overlaps the ___location.
650
652
*/
651
653
predicate locationLiveOnEntryToBlock ( Alias:: MemoryLocation useLocation , OldBlock block ) {
652
654
definitionHasPhiNode ( useLocation , block ) or
You can’t perform that action at this time.
0 commit comments