Skip to content

Commit d498eb8

Browse files
committed
[TSAR, Memory, Dep] Fix, set "no redundant" if alias node owns at least one location with this trait.
1 parent 4bcddaa commit d498eb8

File tree

4 files changed

+7
-2
lines changed

4 files changed

+7
-2
lines changed

lib/Analysis/Memory/DIDependenceAnalysis.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -602,6 +602,9 @@ void combineTraits(bool IgnoreRedundant, DIAliasTrait &DIATrait) {
602602
if (!(DIMTraitItr->is<trait::Redundant>() &&
603603
DIATrait.getNode() == DIMTraitItr->getMemory()->getAliasNode()))
604604
DIATrait.unset<trait::Redundant>();
605+
if (!(DIMTraitItr->is<trait::NoRedundant>() &&
606+
DIATrait.getNode() == DIMTraitItr->getMemory()->getAliasNode()))
607+
DIATrait.unset<trait::NoRedundant>();
605608
if (IgnoreRedundant && DIMTraitItr->is<trait::Redundant>()) {
606609
DIATrait.set<trait::NoAccess>();
607610
DIATrait.unset<trait::HeaderAccess, trait::AddressAccess>();

test/analysis/da_di/address_6.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ int foo() {
2121
//CHECK: <I:8[8:3], 4>:[Int,0,10,1]
2222
//CHECK: reduction:
2323
//CHECK: <S:6, 4>:mult
24+
//CHECK: no promoted scalar:
25+
//CHECK: <X:6:7, ?>
2426
//CHECK: lock:
2527
//CHECK: <I:8[8:3], 4> | <X:6:7, ?>
2628
//CHECK: header access:

test/analysis/da_di/interproc_5.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ int bar(int N, float * restrict A) {
2525
//CHECK: header access:
2626
//CHECK: <I:2[2:4], 4>
2727
//CHECK: explicit access:
28-
//CHECK: <A:1, 8> | <I:2[2:4], 4> | <X:1, 8>
28+
//CHECK: <*X:1, 8> | <A:1, 8> | <I:2[2:4], 4> | <X:1, 8>
2929
//CHECK: explicit access (separate):
3030
//CHECK: <*X:1, 8> <A:1, 8> <I:2[2:4], 4> <X:1, 8>
3131
//CHECK: lock (separate):

test/analysis/da_di/interproc_6.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ int bar(int N, float * restrict A) {
3030
//CHECK: header access:
3131
//CHECK: <I:2[2:4], 4>
3232
//CHECK: explicit access:
33-
//CHECK: <A:1, 8> | <I:2[2:4], 4> | <X:1, 8>
33+
//CHECK: <*X:1, 8> | <A:1, 8> | <I:2[2:4], 4> | <X:1, 8>
3434
//CHECK: explicit access (separate):
3535
//CHECK: <*X:1, 8> <A:1, 8> <I:2[2:4], 4> <X:1, 8>
3636
//CHECK: lock (separate):

0 commit comments

Comments
 (0)