Skip to content

Commit 606f51c

Browse files
committed
Move vals & exprs to cpp
1 parent 3214d81 commit 606f51c

File tree

2 files changed

+56
-42
lines changed

2 files changed

+56
-42
lines changed

csrc/ir/storage.cpp

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,58 @@
1515

1616
namespace nvfuser {
1717

18+
//! Return values in insertion order
19+
const std::deque<Val*> IrStorage::deterministic_vals() const noexcept {
20+
std::deque<Val*> vals_deque;
21+
std::transform(
22+
vals_up_.begin(),
23+
vals_up_.end(),
24+
std::back_inserter(vals_deque),
25+
[](const std::unique_ptr<Val>& val_up) { return val_up.get(); });
26+
return vals_deque;
27+
}
28+
29+
//! Return expression in insertion order
30+
const std::deque<Expr*> IrStorage::deterministic_exprs() const noexcept {
31+
std::deque<Expr*> exprs_deque;
32+
std::transform(
33+
exprs_up_.begin(),
34+
exprs_up_.end(),
35+
std::back_inserter(exprs_deque),
36+
[](const std::unique_ptr<Expr>& expr_up) { return expr_up.get(); });
37+
return exprs_deque;
38+
}
39+
40+
//! Return mapping from value to integer id
41+
const std::unordered_map<Val*, int64_t> IrStorage::deterministic_vals_map()
42+
const noexcept {
43+
std::unordered_map<Val*, int64_t> vals_map;
44+
int64_t count = 0;
45+
std::transform(
46+
vals_up_.begin(),
47+
vals_up_.end(),
48+
std::inserter(vals_map, vals_map.end()),
49+
[&count](const std::unique_ptr<Val>& val_up) {
50+
return std::make_pair(val_up.get(), count++);
51+
});
52+
return vals_map;
53+
}
54+
55+
//! Return mapping from expression to integer id
56+
const std::unordered_map<Expr*, int64_t> IrStorage::deterministic_exprs_map()
57+
const noexcept {
58+
std::unordered_map<Expr*, int64_t> exprs_map;
59+
int64_t count = 0;
60+
std::transform(
61+
exprs_up_.begin(),
62+
exprs_up_.end(),
63+
std::inserter(exprs_map, exprs_map.end()),
64+
[&count](const std::unique_ptr<Expr>& expr_up) {
65+
return std::make_pair(expr_up.get(), count++);
66+
});
67+
return exprs_map;
68+
}
69+
1870
void IrStorage::swap(IrStorage& a, IrStorage& b) noexcept {
1971
FUSER_PERF_SCOPE("Fusion swap");
2072

csrc/ir/storage.h

Lines changed: 4 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -43,56 +43,18 @@ class IrStorage {
4343
}
4444

4545
//! Return values in insertion order
46-
const std::deque<Val*> deterministic_vals() const noexcept {
47-
std::deque<Val*> vals_deque;
48-
std::transform(
49-
vals_up_.begin(),
50-
vals_up_.end(),
51-
std::back_inserter(vals_deque),
52-
[](const std::unique_ptr<Val>& val_up) { return val_up.get(); });
53-
return vals_deque;
54-
}
46+
const std::deque<Val*> deterministic_vals() const noexcept;
5547

5648
//! Return expression in insertion order
57-
const std::deque<Expr*> deterministic_exprs() const noexcept {
58-
std::deque<Expr*> exprs_deque;
59-
std::transform(
60-
exprs_up_.begin(),
61-
exprs_up_.end(),
62-
std::back_inserter(exprs_deque),
63-
[](const std::unique_ptr<Expr>& expr_up) { return expr_up.get(); });
64-
return exprs_deque;
65-
}
49+
const std::deque<Expr*> deterministic_exprs() const noexcept;
6650

6751
//! Return mapping from value to integer id
6852
const std::unordered_map<Val*, int64_t> deterministic_vals_map()
69-
const noexcept {
70-
std::unordered_map<Val*, int64_t> vals_map;
71-
int64_t count = 0;
72-
std::transform(
73-
vals_up_.begin(),
74-
vals_up_.end(),
75-
std::inserter(vals_map, vals_map.end()),
76-
[&count](const std::unique_ptr<Val>& val_up) {
77-
return std::make_pair(val_up.get(), count++);
78-
});
79-
return vals_map;
80-
}
53+
const noexcept;
8154

8255
//! Return mapping from expression to integer id
8356
const std::unordered_map<Expr*, int64_t> deterministic_exprs_map()
84-
const noexcept {
85-
std::unordered_map<Expr*, int64_t> exprs_map;
86-
int64_t count = 0;
87-
std::transform(
88-
exprs_up_.begin(),
89-
exprs_up_.end(),
90-
std::inserter(exprs_map, exprs_map.end()),
91-
[&count](const std::unique_ptr<Expr>& expr_up) {
92-
return std::make_pair(expr_up.get(), count++);
93-
});
94-
return exprs_map;
95-
}
57+
const noexcept;
9658

9759
//! Return the set of Exprs registered with this fusion. Warning: This will
9860
//! return exprs outside inputs/outputs, so can be unsafe for use with

0 commit comments

Comments
 (0)