Skip to content

Commit

Permalink
finish device TAPA codegen for CSR single PE
Browse files Browse the repository at this point in the history
  • Loading branch information
Sibylau committed Apr 23, 2024
1 parent 8aab4f0 commit 15ddc00
Show file tree
Hide file tree
Showing 8 changed files with 697 additions and 499 deletions.
3 changes: 1 addition & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,5 +40,4 @@ add_definitions(${LLVM_DEFINITIONS})
add_subdirectory(include)
add_subdirectory(lib)
add_subdirectory(test)
add_subdirectory(unisparse-opt)
add_subdirectory(unisparse-translate)
add_subdirectory(tools)
17 changes: 15 additions & 2 deletions include/IR/UniSparseAffineMap.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,8 @@ class CompressMap: public AffineMap {

CompressMap(): AffineMap(), trimIndex({}), fuseIndex({}) {}

// CompressMap(const CompressMap& A) = default;

explicit CompressMap(const std::vector<int>& _trimIndex, const std::vector<int>& _fuseIndex):
AffineMap(), trimIndex(_trimIndex), fuseIndex(_fuseIndex) {}

Expand All @@ -31,6 +33,11 @@ class CompressMap: public AffineMap {
return 1;
}

bool operator != (const CompressMap& A) const {
if (*this == A) return 0;
return 1;
}

std::vector<int> getTrimIndex() const { return trimIndex; }
std::vector<int> getFuseIndex() const { return fuseIndex; }

Expand All @@ -55,7 +62,9 @@ class CompressMap: public AffineMap {
class CrdMap: public AffineMap {
public:

CrdMap(): AffineMap(), isIndirect({}), indirectExpr({}) {}
CrdMap(): AffineMap(), isIndirect({}), indirectExpr({}) {};

// CrdMap(const CrdMap& A) = default;

explicit CrdMap(const AffineMap& amap,
const std::vector<bool>& _isIndirect,
Expand All @@ -81,6 +90,10 @@ class CrdMap: public AffineMap {
std::vector<bool> getIsIndirect() const { return this->isIndirect; }
std::vector< std::vector<AffineExpr> > getIndirectExpr() const { return this->indirectExpr; }

void setAffineMap(const AffineMap& amap) {
AffineMap::operator=(amap);
}

void Print() {
this->dump();
std::cout << "isIndirect: (";
Expand All @@ -99,7 +112,7 @@ class SumPrim: public AffineMap {
public:

SumPrim(): AffineMap(), groupBy({}), valMap({}), is_empty(true) {}

SumPrim(const SumPrim& A): groupBy(A.groupBy), valMap(A.valMap), is_empty(A.is_empty) {}
explicit SumPrim(const std::vector<unsigned>& _groupBy, const std::map<std::string, int>& _valMap):
AffineMap(), groupBy(_groupBy), valMap(_valMap) {
is_empty = false;
Expand Down
Loading

0 comments on commit 15ddc00

Please sign in to comment.