FreeTensor
Loading...
Searching...
No Matches
memoized_schedules.h
Go to the documentation of this file.
1#ifndef FREE_TENSOR_MEMORIZED_SCHEDULES_H
2#define FREE_TENSOR_MEMORIZED_SCHEDULES_H
3
4#include <mutex>
5#include <unordered_set>
6
8
9namespace freetensor {
10
26 std::unordered_set<ScheduleLog> memoized_;
27 std::mutex lock_;
28
29 public:
38 std::lock_guard<std::mutex> guard(lock_);
39 if (auto it = memoized_.find(log); it != memoized_.end()) {
40 return *it;
41 } else {
42 memoized_.insert(log);
43 return log;
44 }
45 }
46};
47
48} // namespace freetensor
49
50#endif // FREE_TENSOR_MEMORIZED_SCHEDULES_H
Definition: memoized_schedules.h:25
ScheduleLog lookupOrCreate(const ScheduleLog &log)
Definition: memoized_schedules.h:37
Definition: allocator.h:9