[llvm-dev] [RFC] Moving tools/llvm-mca/lib into lib/MCA

Clement Courbet via llvm-dev llvm-dev at lists.llvm.org
Wed Dec 12 06:26:07 PST 2018


Indeed, done.

On Wed, Dec 12, 2018 at 3:13 PM Greg Bedwell <gregbedwell at gmail.com> wrote:

> Makes sense to me.  Should CODE_OWNERS.TXT also be updated to reflect the
> move too?
>
> On Wed, 12 Dec 2018 at 12:52, Andrea Di Biagio <andrea.dibiagio at gmail.com>
> wrote:
>
>> Thanks Clement for working on this.
>>
>> I like the idea of moving the core abstractions of llvm-mca in llvm/lib,
>> as it potentially enables a number of interesting use cases and future
>> developments.
>>
>> As you wrote, the patch is very simple (a pretty mechanical change).
>> From my point of view, this all looks good. Let see if other people have
>> the same opinion on this.
>>
>> -Andrea
>>
>>
>> On Wed, Dec 12, 2018 at 11:58 AM Clement Courbet <courbet at google.com>
>> wrote:
>>
>>> (on the correct mailing list)
>>>
>>>
>>> Hi all,
>>>
>>> tl;dr: We'd like to propose moving tools/llvm-mca/lib into lib/MCA and
>>> create a new MCA library in LLVM.
>>>
>>> llvm-mca has recently been split
>>> <https://bugs.llvm.org/show_bug.cgi?id=37696> into its core part and
>>> the tool part.
>>>
>>>    -
>>>
>>>    The core part simulates the execution of a basic block of machine
>>>    instructions as modeled by the llvm SchedModel.
>>>    -
>>>
>>>    The tool part deals with the plumbing and interacting with the user.
>>>
>>>
>>> The core part can be used by parts of LLVM that deal with cost modeling
>>> (e.g. scheduling and vectorization). MCA provides a more realistic target
>>> for optimization than the heuristics typically used to drive these passes.
>>> We think that using approaches based on fine-grained cost modeling can
>>> greatly improve the performance of critically hot code, by trading compile
>>> time for performance.
>>>
>>> As an example of how MCA can be used to improve scheduling, we have
>>> built a prototype machine scheduler that optimizes the simulated latency of
>>> a block of code under the constraints of the scheduling DAG. We've had
>>> interesting wins of 2-3% on assembly kernels for webp
>>> <https://github.com/webmproject/libwebp/commit/67748b41dbb21a43e88f2b6ddf6117f4338873a3>
>>> and gemmlowp <https://github.com/google/gemmlowp/pull/91>*.
>>>
>>> The patch is completely mechanical and can be seen here
>>> <https://reviews.llvm.org/D55557>. It only moves the files and updates
>>> all references.
>>>
>>> We'd like to hear if there are any things comments/objections to this
>>> change.
>>>
>>> Thanks !
>>>
>>> *note: We did this before llvm-mca was released and were using a
>>> different simulator, but the idea remains the same.
>>>
>>> On Wed, Dec 12, 2018 at 11:44 AM Clement Courbet <courbet at google.com>
>>> wrote:
>>>
>>>> Hi all,
>>>>
>>>> tl;dr: We'd like to propose moving tools/llvm-mca/lib into lib/MCA and
>>>> create a new MCA library in LLVM.
>>>>
>>>> llvm-mca has recently been split
>>>> <https://bugs.llvm.org/show_bug.cgi?id=37696> into its core part and
>>>> the tool part.
>>>>
>>>>    -
>>>>
>>>>    The core part simulates the execution of a basic block of machine
>>>>    instructions as modeled by the llvm SchedModel.
>>>>    -
>>>>
>>>>    The tool part deals with the plumbing and interacting with the user.
>>>>
>>>>
>>>> The core part can be used by parts of LLVM that deal with cost modeling
>>>> (e.g. scheduling and vectorization). MCA provides a more realistic target
>>>> for optimization than the heuristics typically used to drive these passes.
>>>> We think that using approaches based on fine-grained cost modeling can
>>>> greatly improve the performance of critically hot code, by trading compile
>>>> time for performance.
>>>>
>>>> As an example of how MCA can be used to improve scheduling, we have
>>>> built a prototype machine scheduler that optimizes the simulated latency of
>>>> a block of code under the constraints of the scheduling DAG. We've had
>>>> interesting wins of 2-3% on assembly kernels for webp
>>>> <https://github.com/webmproject/libwebp/commit/67748b41dbb21a43e88f2b6ddf6117f4338873a3>
>>>> and gemmlowp <https://github.com/google/gemmlowp/pull/91>*.
>>>>
>>>> The patch is completely mechanical and can be seen here
>>>> <https://reviews.llvm.org/D55557>. It only moves the files and updates
>>>> all references.
>>>>
>>>> We'd like to hear if there are any things comments/objections to this
>>>> change.
>>>>
>>>> Thanks !
>>>>
>>>> *note: We did this before llvm-mca was released and were using a
>>>> different simulator, but the idea remains the same.
>>>>
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20181212/ac25832d/attachment.html>


More information about the llvm-dev mailing list