mirror of
https://github.com/paboyle/Grid.git
synced 2026-08-28 05:19:35 +01:00
Merge with Christoph GPT checksum debug
This commit is contained in:
@@ -106,6 +106,47 @@ public:
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#ifdef GRID_LOG_VIEWS
|
||||
// Little autoscope assister
|
||||
template<class View>
|
||||
class ViewCloser
|
||||
{
|
||||
View v; // Take a copy of view and call view close when I go out of scope automatically
|
||||
const char* filename; int line, mode;
|
||||
public:
|
||||
ViewCloser(View &_v, const char* _filename, int _line, int _mode) :
|
||||
v(_v), filename(_filename), line(_line), mode(_mode) {
|
||||
|
||||
switch (mode){
|
||||
case AcceleratorRead:
|
||||
case AcceleratorWrite:
|
||||
case CpuRead:
|
||||
case CpuWrite:
|
||||
ViewLogger::Log(filename, line, 1, mode, &v[0], v.size() * sizeof(v[0]));
|
||||
break;
|
||||
}
|
||||
|
||||
};
|
||||
~ViewCloser() {
|
||||
|
||||
switch (mode) {
|
||||
case AcceleratorWriteDiscard:
|
||||
case AcceleratorWrite:
|
||||
case CpuWrite:
|
||||
ViewLogger::Log(filename, line, -1, mode, &v[0], v.size() * sizeof(v[0]));
|
||||
break;
|
||||
}
|
||||
|
||||
v.ViewClose();
|
||||
}
|
||||
};
|
||||
|
||||
#define autoView(l_v,l,mode) \
|
||||
auto l_v = l.View(mode); \
|
||||
ViewCloser<decltype(l_v)> _autoView##l_v(l_v,__FILE__,__LINE__,mode);
|
||||
|
||||
#else
|
||||
// Little autoscope assister
|
||||
template<class View>
|
||||
class ViewCloser
|
||||
@@ -119,6 +160,7 @@ class ViewCloser
|
||||
#define autoView(l_v,l,mode) \
|
||||
auto l_v = l.View(mode); \
|
||||
ViewCloser<decltype(l_v)> _autoView##l_v(l_v);
|
||||
#endif
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Lattice expression types used by ET to assemble the AST
|
||||
|
||||
Reference in New Issue
Block a user