base: Use M5_UNLIKELY with conditional DPRINTF family functions.

Most DPRINTFs will be skipped over most of the time, and when they
aren't they'll already have overhead from string handling, output to the
console and/or a file, etc, which will drown out the behavior of a
branch.

Change-Id: I5475d7b5add63b44f60c0a1d46b4b14e6bf30fd3
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/34818
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Maintainer: Jason Lowe-Power <power.jg@gmail.com>
Tested-by: kokoro <noreply+kokoro@google.com>
This commit is contained in:
Gabe Black
2020-09-17 20:50:27 -07:00
parent 89ffa84de6
commit c8cde1fefa

View File

@@ -182,14 +182,14 @@ class Named
#define DDUMP(x, data, count) do { \
using namespace Debug; \
if (DTRACE(x)) \
if (M5_UNLIKELY(DTRACE(x))) \
Trace::getDebugLogger()->dump( \
curTick(), name(), data, count, #x); \
} while (0)
#define DPRINTF(x, ...) do { \
using namespace Debug; \
if (DTRACE(x)) { \
if (M5_UNLIKELY(DTRACE(x))) { \
Trace::getDebugLogger()->dprintf_flag( \
curTick(), name(), #x, __VA_ARGS__); \
} \
@@ -197,7 +197,7 @@ class Named
#define DPRINTFS(x, s, ...) do { \
using namespace Debug; \
if (DTRACE(x)) { \
if (M5_UNLIKELY(DTRACE(x))) { \
Trace::getDebugLogger()->dprintf_flag( \
curTick(), s->name(), #x, __VA_ARGS__); \
} \
@@ -205,7 +205,7 @@ class Named
#define DPRINTFR(x, ...) do { \
using namespace Debug; \
if (DTRACE(x)) { \
if (M5_UNLIKELY(DTRACE(x))) { \
Trace::getDebugLogger()->dprintf_flag( \
(Tick)-1, std::string(), #x, __VA_ARGS__); \
} \