[PATCH] D68720: Support -fstack-clash-protection for x86

serge via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Oct 15 03:00:09 PDT 2019


serge-sans-paille added a comment.

Some benchmarks, running the python performance suite from recompiled cpython build, one built with `-O2` (baseline) and one built with `-O2 -fstack-clash-protection` (protection). Surprisingly enough, the stack protection makes the code faster in various scenario, but none of these changes present significant regression, according to me.

  baseline.json
  =============
  
  Performance version: 0.9.1
  Report on Linux-3.10.0-891.el7.x86_64-x86_64-with-redhat-7.5-Maipo
  Number of logical CPUs: 8
  Start date: 2019-10-15 11:16:28.425344
  End date: 2019-10-15 11:37:55.064599
  
  protection.json
  ===============
  
  Performance version: 0.9.1
  Report on Linux-3.10.0-891.el7.x86_64-x86_64-with-redhat-7.5-Maipo
  Number of logical CPUs: 8
  Start date: 2019-10-15 10:55:24.270166
  End date: 2019-10-15 11:16:27.195366
  
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | Benchmark               | baseline.json | protection.json | Change       | Significance          |
  +=========================+===============+=================+==============+=======================+
  | 2to3                    | 435 ms        | 448 ms          | 1.03x slower | Significant (t=-4.26) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | chameleon               | 15.0 ms       | 14.7 ms         | 1.02x faster | Significant (t=4.76)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | chaos                   | 176 ms        | 174 ms          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | crypto_pyaes            | 153 ms        | 150 ms          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | deltablue               | 11.9 ms       | 11.9 ms         | 1.00x slower | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | django_template         | 210 ms        | 223 ms          | 1.06x slower | Significant (t=-3.84) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | dulwich_log             | 96.1 ms       | 102 ms          | 1.06x slower | Significant (t=-8.42) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | fannkuch                | 703 ms        | 698 ms          | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | float                   | 161 ms        | 160 ms          | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | genshi_text             | 45.5 ms       | 45.5 ms         | 1.00x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | genshi_xml              | 95.3 ms       | 95.2 ms         | 1.00x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | go                      | 392 ms        | 382 ms          | 1.03x faster | Significant (t=5.95)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | hexiom                  | 16.0 ms       | 15.9 ms         | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | html5lib                | 137 ms        | 135 ms          | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | json_dumps              | 18.8 ms       | 17.9 ms         | 1.05x faster | Significant (t=4.81)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | json_loads              | 41.3 us       | 40.2 us         | 1.03x faster | Significant (t=2.53)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | logging_format          | 17.4 us       | 17.5 us         | 1.00x slower | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | logging_silent          | 509 ns        | 500 ns          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | logging_simple          | 14.3 us       | 14.8 us         | 1.04x slower | Significant (t=-5.64) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | mako                    | 30.6 ms       | 30.4 ms         | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | meteor_contest          | 134 ms        | 130 ms          | 1.03x faster | Significant (t=4.07)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | nbody                   | 186 ms        | 180 ms          | 1.03x faster | Significant (t=4.87)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | nqueens                 | 152 ms        | 145 ms          | 1.05x faster | Significant (t=5.26)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | pathlib                 | 29.5 ms       | 27.7 ms         | 1.07x faster | Significant (t=4.33)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | pickle                  | 15.7 us       | 15.6 us         | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | pickle_dict             | 45.1 us       | 43.2 us         | 1.04x faster | Significant (t=34.35) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | pickle_list             | 6.05 us       | 5.67 us         | 1.07x faster | Significant (t=5.15)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | pickle_pure_python      | 766 us        | 786 us          | 1.03x slower | Significant (t=-3.19) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | pidigits                | 206 ms        | 208 ms          | 1.01x slower | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | python_startup          | 12.4 ms       | 12.7 ms         | 1.03x slower | Significant (t=-8.03) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | python_startup_no_site  | 7.62 ms       | 7.75 ms         | 1.02x slower | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | raytrace                | 830 ms        | 805 ms          | 1.03x faster | Significant (t=15.48) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | regex_compile           | 264 ms        | 261 ms          | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | regex_dna               | 195 ms        | 195 ms          | 1.00x slower | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | regex_effbot            | 3.59 ms       | 3.50 ms         | 1.02x faster | Significant (t=7.90)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | regex_v8                | 30.0 ms       | 29.3 ms         | 1.02x faster | Significant (t=7.10)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | richards                | 122 ms        | 120 ms          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | scimark_fft             | 466 ms        | 462 ms          | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | scimark_lu              | 358 ms        | 334 ms          | 1.07x faster | Significant (t=5.46)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | scimark_monte_carlo     | 167 ms        | 155 ms          | 1.08x faster | Significant (t=4.68)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | scimark_sor             | 346 ms        | 328 ms          | 1.05x faster | Significant (t=7.55)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | scimark_sparse_mat_mult | 5.49 ms       | 5.14 ms         | 1.07x faster | Significant (t=13.23) |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | spectral_norm           | 209 ms        | 199 ms          | 1.05x faster | Significant (t=4.10)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | sympy_expand            | 650 ms        | 638 ms          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | sympy_integrate         | 30.8 ms       | 30.2 ms         | 1.02x faster | Significant (t=9.94)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | sympy_str               | 425 ms        | 407 ms          | 1.04x faster | Significant (t=4.26)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | sympy_sum               | 248 ms        | 248 ms          | 1.00x slower | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | telco                   | 9.63 ms       | 9.37 ms         | 1.03x faster | Significant (t=9.26)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | tornado_http            | 371 ms        | 369 ms          | 1.00x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | unpack_sequence         | 60.1 ns       | 59.0 ns         | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | unpickle                | 19.3 us       | 18.9 us         | 1.02x faster | Significant (t=8.65)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | unpickle_list           | 4.72 us       | 4.67 us         | 1.01x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | unpickle_pure_python    | 576 us        | 562 us          | 1.02x faster | Significant (t=7.27)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | xml_etree_generate      | 156 ms        | 153 ms          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | xml_etree_iterparse     | 157 ms        | 146 ms          | 1.08x faster | Significant (t=6.27)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | xml_etree_parse         | 187 ms        | 183 ms          | 1.02x faster | Significant (t=4.14)  |
  +-------------------------+---------------+-----------------+--------------+-----------------------+
  | xml_etree_process       | 126 ms        | 123 ms          | 1.02x faster | Not significant       |
  +-------------------------+---------------+-----------------+--------------+-----------------------+


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D68720





More information about the llvm-commits mailing list