diff options
| author | Tor Aamodt <[email protected]> | 2020-05-21 08:57:11 -0700 |
|---|---|---|
| committer | GitHub <[email protected]> | 2020-05-21 08:57:11 -0700 |
| commit | 76217d80d9aa33126b4254f5e899f882bbc6f2fd (patch) | |
| tree | 4f461a6f417f76956748fafcfb89b664f54bf6a9 /src/trace.h | |
| parent | e7fbfaa347c0acf8a6702c1e684a8e2ad8d3f733 (diff) | |
| parent | e9e9fcf5957530ecb927aecb5ea238e4b78a4f45 (diff) | |
Merge pull request #178 from purdue-aalp/dev
Merging with the last few months of work at Purdue
Diffstat (limited to 'src/trace.h')
| -rw-r--r-- | src/trace.h | 94 |
1 files changed, 53 insertions, 41 deletions
diff --git a/src/trace.h b/src/trace.h index a79b4a0..8d74151 100644 --- a/src/trace.h +++ b/src/trace.h @@ -7,23 +7,24 @@ // // Redistributions of source code must retain the above copyright notice, this // list of conditions and the following disclaimer. -// Redistributions in binary form must reproduce the above copyright notice, this -// list of conditions and the following disclaimer in the documentation and/or -// other materials provided with the distribution. -// Neither the name of The University of British Columbia nor the names of its -// contributors may be used to endorse or promote products derived from this -// software without specific prior written permission. +// Redistributions in binary form must reproduce the above copyright notice, +// this list of conditions and the following disclaimer in the documentation +// and/or other materials provided with the distribution. Neither the name of +// The University of British Columbia nor the names of its contributors may be +// used to endorse or promote products derived from this software without +// specific prior written permission. // -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -// FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -// SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -// CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -// OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE +// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +// POSSIBILITY OF SUCH DAMAGE. // This file is inspired by the trace system in gem5. // This is a highly simplified version adpated for gpgpusim @@ -31,50 +32,61 @@ #ifndef __TRACE_H__ #define __TRACE_H__ -extern unsigned long long gpu_sim_cycle; -extern unsigned long long gpu_tot_sim_cycle; - namespace Trace { #define TS_TUP_BEGIN(X) enum X { #define TS_TUP(X) X -#define TS_TUP_END(X) }; +#define TS_TUP_END(X) \ + } \ + ; #include "trace_streams.tup" #undef TS_TUP_BEGIN #undef TS_TUP #undef TS_TUP_END - extern bool enabled; - extern int sampling_core; - extern int sampling_memory_partition; - extern const char* trace_streams_str[]; - extern bool trace_streams_enabled[NUM_TRACE_STREAMS]; - extern const char* config_str; - - void init(); +extern bool enabled; +extern int sampling_core; +extern int sampling_memory_partition; +extern const char* trace_streams_str[]; +extern bool trace_streams_enabled[NUM_TRACE_STREAMS]; +extern const char* config_str; -} // namespace Trace +void init(); +} // namespace Trace #if TRACING_ON #define SIM_PRINT_STR "GPGPU-Sim Cycle %llu: %s - " #define DTRACE(x) ((Trace::trace_streams_enabled[Trace::x]) && Trace::enabled) -#define DPRINTF(x, ...) do {\ - if (DTRACE(x)) {\ - printf( SIM_PRINT_STR,\ - gpu_sim_cycle + gpu_tot_sim_cycle,\ - Trace::trace_streams_str[Trace::x] );\ - printf(__VA_ARGS__);\ - }\ -} while (0) +#define DPRINTF(x, ...) \ + do { \ + if (DTRACE(x)) { \ + printf(SIM_PRINT_STR, m_gpu->gpu_sim_cycle + m_gpu->gpu_tot_sim_cycle, \ + Trace::trace_streams_str[Trace::x]); \ + printf(__VA_ARGS__); \ + } \ + } while (0) +#define DPRINTFG(x, ...) \ + do { \ + if (DTRACE(x)) { \ + printf(SIM_PRINT_STR, gpu_sim_cycle + gpu_tot_sim_cycle, \ + Trace::trace_streams_str[Trace::x]); \ + printf(__VA_ARGS__); \ + } \ + } while (0) -#else +#else #define DTRACE(x) (false) -#define DPRINTF(x, ...) do {} while (0) +#define DPRINTF(x, ...) \ + do { \ + } while (0) +#define DPRINTFG(x, ...) \ + do { \ + } while (0) -#endif +#endif -#endif +#endif |
