summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Grosser <grosser@fim.uni-passau.de>2013-07-13 20:41:24 +0000
committerTobias Grosser <grosser@fim.uni-passau.de>2013-07-13 20:41:24 +0000
commitb58f6a4211b5bd2760ecb88df8142c167e6ef057 (patch)
treed745be899d0b01e8de89b1b65bc6d0073032aa98
parentf799e3f9441c2a348af0357a61020cc1e397e66b (diff)
downloadbcm5719-llvm-b58f6a4211b5bd2760ecb88df8142c167e6ef057.tar.gz
bcm5719-llvm-b58f6a4211b5bd2760ecb88df8142c167e6ef057.zip
ScopInfo: Add getTupe() method to MemoryAccess
We also move the enum to UPPERCASE. llvm-svn: 186259
-rwxr-xr-xpolly/include/polly/ScopInfo.h29
-rw-r--r--polly/lib/Analysis/ScopInfo.cpp12
2 files changed, 23 insertions, 18 deletions
diff --git a/polly/include/polly/ScopInfo.h b/polly/include/polly/ScopInfo.h
index 9fc370ce5ce..8c56582f8ea 100755
--- a/polly/include/polly/ScopInfo.h
+++ b/polly/include/polly/ScopInfo.h
@@ -60,11 +60,7 @@ class Comparison;
//===----------------------------------------------------------------------===//
/// @brief Represent memory accesses in statements.
class MemoryAccess {
- // DO NOT IMPLEMENT
- MemoryAccess(const MemoryAccess &);
- // DO NOT IMPLEMENT
- const MemoryAccess &operator=(const MemoryAccess &);
-
+public:
/// @brief The access type of a memory access
///
/// There are three kind of access types:
@@ -86,11 +82,17 @@ class MemoryAccess {
/// contain a new value if there is actually a write or the old value may
/// remain, if no write happens.
enum AccessType {
- Read,
- MustWrite,
- MayWrite
+ READ,
+ MUST_WRITE,
+ MAY_WRITE
};
+private:
+ // DO NOT IMPLEMENT
+ MemoryAccess(const MemoryAccess &);
+ // DO NOT IMPLEMENT
+ const MemoryAccess &operator=(const MemoryAccess &);
+
isl_map *AccessRelation;
enum AccessType Type;
@@ -122,18 +124,21 @@ public:
~MemoryAccess();
+ /// @brief Get the type of a memory access.
+ enum AccessType getType() { return Type; }
+
/// @brief Is this a read memory access?
- bool isRead() const { return Type == MemoryAccess::Read; }
+ bool isRead() const { return Type == MemoryAccess::READ; }
/// @brief Is this a must-write memory access?
- bool isMustWrite() const { return Type == MemoryAccess::MustWrite; }
+ bool isMustWrite() const { return Type == MemoryAccess::MUST_WRITE; }
/// @brief Is this a may-write memory access?
- bool isMayWrite() const { return Type == MemoryAccess::MayWrite; }
+ bool isMayWrite() const { return Type == MemoryAccess::MAY_WRITE; }
/// @brief Is this a write memory access?
bool isWrite() const {
- return Type == MemoryAccess::MustWrite || Type == MemoryAccess::MayWrite;
+ return Type == MemoryAccess::MUST_WRITE || Type == MemoryAccess::MAY_WRITE;
}
isl_map *getAccessRelation() const;
diff --git a/polly/lib/Analysis/ScopInfo.cpp b/polly/lib/Analysis/ScopInfo.cpp
index acb76a0b564..c0aeb0c0aab 100644
--- a/polly/lib/Analysis/ScopInfo.cpp
+++ b/polly/lib/Analysis/ScopInfo.cpp
@@ -288,11 +288,11 @@ MemoryAccess::MemoryAccess(const IRAccess &Access, const Instruction *AccInst,
// access must or may happen. However, for write accesses it is important to
// differentiate between writes that must happen and writes that may happen.
AccessRelation = isl_map_from_basic_map(createBasicAccessMap(Statement));
- Type = Access.isRead() ? Read : MayWrite;
+ Type = Access.isRead() ? READ : MAY_WRITE;
return;
}
- Type = Access.isRead() ? Read : MustWrite;
+ Type = Access.isRead() ? READ : MUST_WRITE;
isl_pw_aff *Affine = SCEVAffinator::getPwAff(Statement, Access.getOffset());
@@ -325,7 +325,7 @@ void MemoryAccess::realignParams() {
MemoryAccess::MemoryAccess(const Value *BaseAddress, ScopStmt *Statement) {
newAccessRelation = NULL;
BaseAddr = BaseAddress;
- Type = Read;
+ Type = READ;
statement = Statement;
isl_basic_map *BasicAccessMap = createBasicAccessMap(Statement);
@@ -336,13 +336,13 @@ MemoryAccess::MemoryAccess(const Value *BaseAddress, ScopStmt *Statement) {
void MemoryAccess::print(raw_ostream &OS) const {
switch (Type) {
- case Read:
+ case READ:
OS.indent(12) << "ReadAccess := \n";
break;
- case MustWrite:
+ case MUST_WRITE:
OS.indent(12) << "MustWriteAccess := \n";
break;
- case MayWrite:
+ case MAY_WRITE:
OS.indent(12) << "MayWriteAccess := \n";
break;
}
OpenPOWER on IntegriCloud