[polly] r300211 - [DeLICM] Export Known and Written to DeLICMTests. NFC.
Michael Kruse via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 13 09:32:40 PDT 2017
Author: meinersbur
Date: Thu Apr 13 11:32:39 2017
New Revision: 300211
URL: http://llvm.org/viewvc/llvm-project?rev=300211&view=rev
Log:
[DeLICM] Export Known and Written to DeLICMTests. NFC.
This will allow unittesting of new functionality based on
Known and Written.
Modified:
polly/trunk/include/polly/DeLICM.h
polly/trunk/lib/Transform/DeLICM.cpp
polly/trunk/unittests/DeLICM/DeLICMTest.cpp
Modified: polly/trunk/include/polly/DeLICM.h
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/include/polly/DeLICM.h?rev=300211&r1=300210&r2=300211&view=diff
==============================================================================
--- polly/trunk/include/polly/DeLICM.h (original)
+++ polly/trunk/include/polly/DeLICM.h Thu Apr 13 11:32:39 2017
@@ -33,9 +33,11 @@ llvm::Pass *createDeLICMPass();
///
/// Used by unittesting.
bool isConflicting(isl::union_set ExistingOccupied,
- isl::union_set ExistingUnused, isl::union_set ExistingWrites,
+ isl::union_set ExistingUnused, isl::union_map ExistingKnown,
+ isl::union_map ExistingWrites,
isl::union_set ProposedOccupied,
- isl::union_set ProposedUnused, isl::union_set ProposedWrites,
+ isl::union_set ProposedUnused, isl::union_map ProposedKnown,
+ isl::union_map ProposedWrites,
llvm::raw_ostream *OS = nullptr, unsigned Indent = 0);
} // namespace polly
Modified: polly/trunk/lib/Transform/DeLICM.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/DeLICM.cpp?rev=300211&r1=300210&r2=300211&view=diff
==============================================================================
--- polly/trunk/lib/Transform/DeLICM.cpp (original)
+++ polly/trunk/lib/Transform/DeLICM.cpp Thu Apr 13 11:32:39 2017
@@ -536,6 +536,14 @@ public:
checkConsistency();
}
+ /// Create a new object with the given members.
+ Knowledge(isl::union_set Occupied, isl::union_set Unused,
+ isl::union_map Known, isl::union_map Written)
+ : Occupied(std::move(Occupied)), Unused(std::move(Unused)),
+ Known(std::move(Known)), Written(std::move(Written)) {
+ checkConsistency();
+ }
+
/// Return whether this object was not default-constructed.
bool isUsable() const { return (Occupied || Unused) && Known && Written; }
@@ -1806,17 +1814,16 @@ INITIALIZE_PASS_DEPENDENCY(ScopInfoWrapp
INITIALIZE_PASS_END(DeLICM, "polly-delicm", "Polly - DeLICM/DePRE", false,
false)
-bool polly::isConflicting(isl::union_set ExistingOccupied,
- isl::union_set ExistingUnused,
- isl::union_set ExistingWrites,
- isl::union_set ProposedOccupied,
- isl::union_set ProposedUnused,
- isl::union_set ProposedWrites, llvm::raw_ostream *OS,
- unsigned Indent) {
+bool polly::isConflicting(
+ isl::union_set ExistingOccupied, isl::union_set ExistingUnused,
+ isl::union_map ExistingKnown, isl::union_map ExistingWrites,
+ isl::union_set ProposedOccupied, isl::union_set ProposedUnused,
+ isl::union_map ProposedKnown, isl::union_map ProposedWrites,
+ llvm::raw_ostream *OS, unsigned Indent) {
Knowledge Existing(std::move(ExistingOccupied), std::move(ExistingUnused),
- std::move(ExistingWrites));
+ std::move(ExistingKnown), std::move(ExistingWrites));
Knowledge Proposed(std::move(ProposedOccupied), std::move(ProposedUnused),
- std::move(ProposedWrites));
+ std::move(ProposedKnown), std::move(ProposedWrites));
return Knowledge::isConflicting(Existing, Proposed, OS, Indent);
}
Modified: polly/trunk/unittests/DeLICM/DeLICMTest.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/unittests/DeLICM/DeLICMTest.cpp?rev=300211&r1=300210&r2=300211&view=diff
==============================================================================
--- polly/trunk/unittests/DeLICM/DeLICMTest.cpp (original)
+++ polly/trunk/unittests/DeLICM/DeLICMTest.cpp Thu Apr 13 11:32:39 2017
@@ -109,21 +109,30 @@ bool checkIsConflictingNonsymmetric(Know
completeLifetime(Universe, ExistingOccupied, ExistingUnused);
completeLifetime(Universe, ProposedOccupied, ProposedUnused);
- auto Result =
- isConflicting(ExistingOccupied, ExistingUnused, ExistingWritten,
- ProposedOccupied, ProposedUnused, ProposedWritten);
+ auto ParamSpace = isl::manage(isl_union_set_get_space(Universe.keep()));
+ auto EmptyUnionMap = isl::union_map::empty(ParamSpace);
+ auto ExistingWrittenMap =
+ isl::manage(isl_union_map_from_domain(ExistingWritten.copy()));
+ auto ProposedWrittenMap =
+ isl::manage(isl_union_map_from_domain(ProposedWritten.copy()));
+ auto Result = isConflicting(
+ ExistingOccupied, ExistingUnused, EmptyUnionMap, ExistingWrittenMap,
+ ProposedOccupied, ProposedUnused, EmptyUnionMap, ProposedWrittenMap);
// isConflicting does not require ExistingOccupied nor ProposedUnused and are
// implicitly assumed to be the remainder elements. Test the implicitness as
// well.
EXPECT_EQ(Result,
- isConflicting(ExistingOccupied, ExistingUnused, ExistingWritten,
- ProposedOccupied, {}, ProposedWritten));
+ isConflicting(ExistingOccupied, ExistingUnused, EmptyUnionMap,
+ ExistingWrittenMap, ProposedOccupied, {},
+ EmptyUnionMap, ProposedWrittenMap));
EXPECT_EQ(Result,
- isConflicting({}, ExistingUnused, ExistingWritten, ProposedOccupied,
- ProposedUnused, ProposedWritten));
- EXPECT_EQ(Result, isConflicting({}, ExistingUnused, ExistingWritten,
- ProposedOccupied, {}, ProposedWritten));
+ isConflicting({}, ExistingUnused, EmptyUnionMap, ExistingWrittenMap,
+ ProposedOccupied, ProposedUnused, EmptyUnionMap,
+ ProposedWrittenMap));
+ EXPECT_EQ(Result, isConflicting({}, ExistingUnused, EmptyUnionMap,
+ ExistingWrittenMap, ProposedOccupied, {},
+ EmptyUnionMap, ProposedWrittenMap));
return Result;
}
More information about the llvm-commits
mailing list