Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Run local optimizations before inlining #216

Open
reiner-dolp opened this issue Jan 23, 2019 · 1 comment
Open

Run local optimizations before inlining #216

reiner-dolp opened this issue Jan 23, 2019 · 1 comment
Projects

Comments

@reiner-dolp
Copy link
Contributor

Inlining before running all optimization is suboptimal, since locally optimizable code has to be optimized at each call site. A better strategy is:

1.) Local optimizations
2.) Inline
3.) Local optimizations

@reiner-dolp
Copy link
Contributor Author

reiner-dolp commented Jan 23, 2019

Tests show that this is slower for big mjtests:

BENCHMARK bench_conways_game_of_life.input
==========================================

optimization phase                                               925.60000 +/-   50.95724ms    5 samples      +8.715%     1m 48s ago
  opt #0: Inline                                                 131.40000 +/-    5.35164ms    5 samples     +13.081%     1m 48s ago
  opt #1: ConstantFolding                                        662.80000 +/-   31.90235ms    5 samples      +7.041%     1m 48s ago
  opt #2: ControlFlow                                            130.20000 +/-   21.99454ms    5 samples     +13.217%     1m 48s ago


BENCHMARK bench_math.input
==========================

optimization phase                                              5392.80000 +/-  196.32463ms    5 samples      +6.902%     1m 52s ago
  opt #0: Inline                                                 504.60000 +/-   77.56958ms    5 samples     +12.936%     1m 52s ago
  opt #1: ConstantFolding                                       3975.40000 +/-   87.43821ms    5 samples      +3.171%     1m 52s ago
  opt #2: ControlFlow                                            912.20000 +/-  151.10844ms    5 samples     +22.740%     1m 52s ago


BENCHMARK bench_BigTensorProduct.input
======================================

optimization phase                                               630.20000 +/-   37.64784ms    5 samples      +4.096%     1m 53s ago
  opt #0: Inline                                                  78.60000 +/-    4.49889ms    5 samples      -3.440%     1m 53s ago
  opt #1: ConstantFolding                                        508.20000 +/-   40.50383ms    5 samples      +4.740%     1m 53s ago
  opt #2: ControlFlow                                             42.40000 +/-    5.04381ms    5 samples     +12.169%     1m 53s ago


BENCHMARK bench_binarytrees
===========================

optimization phase                                               237.20000 +/-   10.90688ms    5 samples      +4.678%     1m 54s ago
  opt #0: Inline                                                  25.00000 +/-    2.09762ms    5 samples      +7.759%     1m 54s ago
  opt #1: ConstantFolding                                        201.00000 +/-   10.44988ms    5 samples      +4.906%     1m 54s ago
  opt #2: ControlFlow                                             10.40000 +/-    0.48990ms    5 samples      +1.961%     1m 54s ago


BENCHMARK bench_fannkuchredux
=============================

optimization phase                                               111.40000 +/-   33.93287ms    5 samples     +22.418%     1m 54s ago
  opt #0: Inline                                                   7.20000 +/-    0.40000ms    5 samples      -5.263%     1m 54s ago
  opt #1: ConstantFolding                                         97.00000 +/-   31.63542ms    5 samples     +26.302%     1m 54s ago
  opt #2: ControlFlow                                              6.60000 +/-    2.24499ms    5 samples     +26.923%     1m 54s ago
BENCHMARK bench_conways_game_of_life.input
==========================================

optimization phase                                               849.40000 +/-    7.11618ms    5 samples      -8.232%     3m 18s ago
  opt #0: ConstantFolding                                         99.20000 +/-    6.01332ms    5 samples    n/a      ago
  opt #1: ControlFlow                                              4.80000 +/-    0.40000ms    5 samples    n/a      ago
  opt #2: Inline                                                 106.40000 +/-    4.40908ms    5 samples    n/a      ago
  opt #3: ConstantFolding                                        587.40000 +/-    6.28013ms    5 samples    n/a      ago
  opt #4: ControlFlow                                             49.40000 +/-    1.62481ms    5 samples    n/a      ago


BENCHMARK bench_math.input
==========================

optimization phase                                              5461.20000 +/-   36.17402ms    5 samples      +1.268%     3m 17s ago
  opt #0: ConstantFolding                                        282.40000 +/-    2.05913ms    5 samples    n/a      ago
  opt #1: ControlFlow                                             11.20000 +/-    0.40000ms    5 samples    n/a      ago
  opt #2: Inline                                                 460.40000 +/-    7.08802ms    5 samples    n/a      ago
  opt #3: ConstantFolding                                       4012.60000 +/-   30.42762ms    5 samples    n/a      ago
  opt #4: ControlFlow                                            692.40000 +/-    2.05913ms    5 samples    n/a      ago


BENCHMARK bench_BigTensorProduct.input
======================================

optimization phase                                               826.80000 +/-   15.63841ms    5 samples     +31.196%     3m 17s ago
  opt #0: ConstantFolding                                        219.80000 +/-    4.21426ms    5 samples    n/a      ago
  opt #1: ControlFlow                                              7.80000 +/-    0.40000ms    5 samples    n/a      ago
  opt #2: Inline                                                  74.40000 +/-    3.38231ms    5 samples    n/a      ago
  opt #3: ConstantFolding                                        499.00000 +/-   10.48809ms    5 samples    n/a      ago
  opt #4: ControlFlow                                             24.00000 +/-    0.00000ms    5 samples    n/a      ago


BENCHMARK bench_binarytrees
===========================

optimization phase                                               269.80000 +/-   11.65161ms    5 samples     +13.744%     3m 17s ago
  opt #0: ConstantFolding                                         39.20000 +/-    4.11825ms    5 samples    n/a      ago
  opt #1: ControlFlow                                              1.80000 +/-    0.40000ms    5 samples    n/a      ago
  opt #2: Inline                                                  24.80000 +/-    3.48712ms    5 samples    n/a      ago
  opt #3: ConstantFolding                                        193.20000 +/-    4.26146ms    5 samples    n/a      ago
  opt #4: ControlFlow                                              9.00000 +/-    0.00000ms    5 samples    n/a      ago


BENCHMARK bench_fannkuchredux
=============================

optimization phase                                               131.20000 +/-    8.40000ms    5 samples     +17.774%     3m 17s ago
  opt #0: ConstantFolding                                         48.80000 +/-    3.31059ms    5 samples    n/a      ago
  opt #1: ControlFlow                                              2.60000 +/-    0.48990ms    5 samples    n/a      ago
  opt #2: Inline                                                   6.60000 +/-    0.80000ms    5 samples    n/a      ago
  opt #3: ConstantFolding                                         67.60000 +/-    4.54313ms    5 samples    n/a      ago
  opt #4: ControlFlow                                              3.80000 +/-    0.40000ms    5 samples    n/a      ago

@problame problame added this to Todo Optimization in Endspurt Feb 4, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Endspurt
  
Todo Optimization
Development

No branches or pull requests

1 participant