Re: [PATCH 02/25] tracing: Improve "if" macro code generation
From: Josh Poimboeuf
Date: Mon Mar 18 2019 - 19:37:35 EST
On Mon, Mar 18, 2019 at 04:38:42PM +0100, Peter Zijlstra wrote:
> With CONFIG_PROFILE_ALL_BRANCHES, the "if" macro converts the
> conditional to an array index. This can cause GCC to create horrible
> code. When there are nested ifs, the generated code uses register
> values to encode branching decisions.
>
> Make it easier for GCC to optimize by keeping the conditional as a
> conditional rather than converting it to an integer. This shrinks the
> generated code quite a bit, and also makes the code sane enough for
> objtool to understand.
>
> Cc: rostedt@xxxxxxxxxxx
> Cc: valentin.schneider@xxxxxxx
> Cc: luto@xxxxxxxxxxxxxx
> Cc: brgerst@xxxxxxxxx
> Cc: catalin.marinas@xxxxxxx
> Cc: mingo@xxxxxxxxxx
> Cc: dvlasenk@xxxxxxxxxx
> Cc: will.deacon@xxxxxxx
> Cc: julien.thierry@xxxxxxx
> Cc: torvalds@xxxxxxxxxxxxxxxxxxxx
> Cc: dvyukov@xxxxxxxxxx
> Cc: bp@xxxxxxxxx
> Cc: tglx@xxxxxxxxxxxxx
> Cc: james.morse@xxxxxxx
> Cc: luto@xxxxxxxxxx
> Cc: hpa@xxxxxxxxx
> Reported-by: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Signed-off-by: Josh Poimboeuf <jpoimboe@xxxxxxxxxx>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx>
> Link: https://lkml.kernel.org/r/20190307174802.46fmpysxyo35hh43@treble
Missing "From" me.
--
Josh