On 21 April 2016 at 09:48, Aurelien Jarno <aurel...@aurel32.net> 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 <peter.mayd...@linaro.org>
and applied to master.

-- PMM

Reply via email to