[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 1/2] tcg: use tcg_debug_assert instead of assert
Re: [Qemu-devel] [PATCH 1/2] tcg: use tcg_debug_assert instead of assert (fix performance regression)
Thu, 21 Apr 2016 16:42:15 +0100
On 21 April 2016 at 09:48, Aurelien Jarno <address@hidden> wrote:
> The TCG code is quite performance sensitive, but at the same time can
> also be quite tricky. That is why asserts that can be enabled with the
> --enable-debug-tcg configure option.
> This used to work the following way:
> | #include "config.h"
> | ...
> | #if !defined(CONFIG_DEBUG_TCG) && !defined(NDEBUG)
> | /* define it to suppress various consistency checks (faster) */
> | #define NDEBUG
> | #endif
> | ...
> | #include <assert.h>
> Since commit 757e725b (tcg: Clean up includes) "config.h" as been
> replaced by "qemu/osdep.h" which itself includes <assert.h>. As a
> consequence the assertions are always enabled, even when using
> --disable-debug-tcg, causing a performance regression, especially on
> targets with many registers. For instance on qemu-system-ppc the
> speed difference is about 15%.
> tcg_debug_assert is controlled directly by CONFIG_DEBUG_TCG and already
> uses in some places. This patch replaces all the calls to assert into
> calss to tcg_debug_assert.
Thanks, both patches
Reviewed-by: Peter Maydell <address@hidden>
and applied to master.