[PATCH] D111617: [RISCV] Lazily add RVV C intrinsics.

Kito Cheng via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sun Jan 16 02:04:07 PST 2022


kito-cheng added a comment.

TL;DR:
------

- Binary size of clang increase ~200k, which is +0.07%  for debug build and +0.13% for release build.
- Single file compilation speed up ~33x speed up for debug build and ~8.5x speed up for release build
- Regression time reduce ~10% (`ninja check-all`, enable all targets)

Header size change
------------------

         |      size |     LoC |
  ------------------------------
  Before | 4,434,725 |  69,749 |
  After  |     6,140 |     162 |



Single File Compilation Time
----------------------------

Testcase:

  #include <riscv_vector.h>
  
  vint32m1_t test_vadd_vv_vfloat32m1_t(vint32m1_t op1, vint32m1_t op2, size_t vl) {
    return vadd(op1, op2, vl);
  }

Debug build:
------------

Before:

  real    0m19.352s
  user    0m19.252s
  sys     0m0.092s

After:

  real    0m0.576s
  user    0m0.552s
  sys     0m0.024s

~33x speed up for debug build

Release build:
--------------

Before:

  real    0m0.773s
  user    0m0.741s
  sys     0m0.032s

After:

  real    0m0.092s
  user    0m0.080s
  sys     0m0.012s

~8.5x speed up for release build

Regression time
---------------

Note: the failed case is `tools/llvm-debuginfod-find/debuginfod.test` which is unrelated to this patch.

Debug build
-----------

Before:

  Testing Time: 1358.38s
    Skipped          :    11
    Unsupported      :   446
    Passed           : 75767
    Expectedly Failed:   190
    Failed           :     1

After

  Testing Time: 1220.29s
    Skipped          :    11
    Unsupported      :   446
    Passed           : 75767
    Expectedly Failed:   190
    Failed           :     1

Release build
-------------

Before:

  Testing Time: 381.98s
    Skipped          :    12
    Unsupported      :  1407
    Passed           : 74765
    Expectedly Failed:   176
    Failed           :     1

After:

  Testing Time: 346.25s
    Skipped          :    12
    Unsupported      :  1407
    Passed           : 74765
    Expectedly Failed:   176
    Failed           :     1



Binary size of clang
--------------------

Debug build
-----------

Before

     text    data     bss     dec     hex filename
  335261851       12726004         552812 348540667       14c64efb        bin/clang

After

     text    data     bss     dec     hex filename
  335442803       12798708         552940 348794451       14ca2e53        bin/clang

+253K, +0.07% code size

Release build
-------------

Before

     text    data     bss     dec     hex filename
  144123975       8374648  483140 152981763       91e5103 bin/clang

After

     text    data     bss     dec     hex filename
  144255762       8447296  483268 153186326       9217016 bin/clang

+204K, +0.13%


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D111617/new/

https://reviews.llvm.org/D111617



More information about the cfe-commits mailing list