From: "Jin, Yao" <yao.jin@linux.intel.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
mingo@infradead.org, alexander.shishkin@linux.intel.com,
linux-kernel@vger.kernel.org, ak@linux.intel.com,
kan.liang@intel.com, yao.jin@intel.com
Subject: Re: [PATCH v2 3/3] perf report: Implement visual marker for macro fusion in annotate
Date: Tue, 20 Jun 2017 09:54:36 +0800 [thread overview]
Message-ID: <f4b0a69a-b0e6-efa0-ddcf-4ba37d7e34d0@linux.intel.com> (raw)
In-Reply-To: <20170620013742.GE13640@kernel.org>
>> Reference for macro fusion is the optimization guide,
>> http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-optimization-manual.html
>> 2.3.2.1
>> — In Intel microarchitecture code name Nehalem: CMP, TEST.
>> — In Intel microarchitecture code name Sandy Bridge: CMP, TEST, ADD, SUB,
>> AND, INC, DEC
>> — These instructions can fuse if The first source / destination operand is a
>> register.
>>
>> The second source operand (if exists) is one of: immediate, register, or non
>> RIP-relative memory.
>> The second instruction of the macro-fusable pair is a conditional branch.
>>
>> We probably don't need the full rules, just a simple test for
>> CMP/TEST/ADD/SUB/AND/INC/DEC and second instruction a Jcc condition branch.
>> Also I don't think we need to distinguish Nehalem/Sandy Bridge and other
>> core platforms. A simple test may be acceptable.
> Humm, then we need to make sure somehow that this may or may not be
> happening, with the above rules and optimization guide URL and pages
> mentioned in the documentation.
>
> I think that as we improve the disassembler, the more precise we can go
> the better. If we know that the machine is x86 _and_ Nehalem, then we
> should do this fusing visual cue onlyu for CMP and TEST, etc.
>
> - Arnaldo
>
I will add checking for Nehalem (CMP, TEST). For other newer Intel CPUs
just check it by default (CMP, TEST, ADD, SUB, AND, INC, DEC).
Thanks
Jin Yao
prev parent reply other threads:[~2017-06-20 1:54 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-19 2:55 [PATCH v2 0/3] perf report: Implement visual marker for macro fusion in annotate Jin Yao
2017-06-19 2:55 ` [PATCH v2 1/3] perf util: Return arch from symbol__disassemble and save it in browser Jin Yao
2017-06-20 9:02 ` [tip:perf/core] perf annotate: Return arch from symbol__disassemble() " tip-bot for Jin Yao
2017-06-19 2:55 ` [PATCH v2 2/3] perf util: Check for fused instruction Jin Yao
2017-06-19 2:55 ` [PATCH v2 3/3] perf report: Implement visual marker for macro fusion in annotate Jin Yao
2017-06-19 17:35 ` Arnaldo Carvalho de Melo
2017-06-19 19:13 ` Arnaldo Carvalho de Melo
2017-06-20 1:25 ` Jin, Yao
2017-06-20 1:37 ` Arnaldo Carvalho de Melo
2017-06-20 1:54 ` Jin, Yao [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f4b0a69a-b0e6-efa0-ddcf-4ba37d7e34d0@linux.intel.com \
--to=yao.jin@linux.intel.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@infradead.org \
--cc=peterz@infradead.org \
--cc=yao.jin@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox