aboutsummaryrefslogtreecommitdiff
path: root/documentation/bookmark/optimization.md
blob: 3df2cd1aea6033765c96e2c2fe2be841e78a325f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# Inlining

0. [Defunctionalization](https://en.wikipedia.org/wiki/Defunctionalization)

# Hashing

0. [Fibonacci Hashing: The Optimization that the World Forgot (or: a Better Alternative to Integer Modulo)](https://probablydance.com/2018/06/16/fibonacci-hashing-the-optimization-that-the-world-forgot-or-a-better-alternative-to-integer-modulo/)

# Arithmetic | Math

0. [ensmallen: flexible C++ library for efficient numerical optimization](http://ensmallen.org/docs.html)
0. [Labor of Division (Episode I)](https://ridiculousfish.com/blog/posts/labor-of-division-episode-i.html)

# Compilation

0. ["Outperforming Imperative with Pure Functional Languages" by Richard Feldman](https://www.youtube.com/watch?v=vzfy4EKwG_Y)
0. [CompilerGym: Making compiler optimizations accessible to all](https://ai.facebook.com/blog/compilergym-making-compiler-optimizations-accessible-to-all)
0. [Future Directions for Optimizing Compilers](https://arxiv.org/abs/1809.02161)

# Pre-fetching

0. [Prefetching in Functional Languages](https://www.cl.cam.ac.uk/~tmj32/papers/docs/ainsworth20-ismm.pdf)

# Partial evaluation

0. [AnyDSL - A Partial Evaluation Framework for Programming High-Performance Libraries](https://anydsl.github.io/)

# For the compiler

0. [Self Hosting a Million-Lines-Per-Second Parser](https://bjou-lang.org/blog/7-10-2019-self-hosting-a-million-lines-per-second-parser/7-10-2019-self-hosting-a-million-lines-per-second-parser.html)

# Reference

0. [Refterm Lecture Part 1 - Philosophies of Optimization](https://www.youtube.com/watch?v=pgoetgxecw8)
0. [Optimizations enabled by -ffast-math](https://kristerw.github.io/2021/10/19/fast-math/)
0. [Simple Code, High Performance](https://www.youtube.com/watch?v=Ge3aKEmZcqY)
0. [Negotiating with Compilers](https://en.algorithmica.org/hpc/analyzing-performance/compilation/)
0. [Do Low-level Optimizations Matter?](https://cantrip.org/sortfast.html)
0. [Inline caching](https://bernsteinbear.com/blog/inline-caching/)
0. [Weird and Wonderful Division Tricks](https://saml98.github.io/jekyll/update/2020/02/21/weird-division.htmls)
0. [Towards a Domain-Extensible Compiler: Optimizingan Image Processing Pipeline on Mobile CPUs](https://thok.eu/publications/2021/cgo.pdf)
0. [Compiler Detection of Function Call Side Effects](https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=B3D92D05C88C3D9C165785594350C169?doi=10.1.1.70.2096&rep=rep1&type=pdf)
0. [A Language for Describing Optimization Strategies](https://arxiv.org/abs/2002.02268)
0. https://docs.google.com/presentation/d/1tpeJZFObkeick4CF-mx0L3CeCgvT15B96aJeRpxEPcE/preview?slide=id.p
0. https://www.quora.com/What-is-the-future-of-optimizing-compilers?share=1
0. https://advancedweb.hu/2016/05/27/jvm_jit_optimization_techniques/ &&& https://advancedweb.hu/2016/06/28/jvm_jit_optimization_techniques_part_2/
0. http://www.scala-native.org/en/latest/blog/interflow.html
0. https://github.com/roman01la/closure-compiler-handbook
0. http://hubicka.blogspot.com/2018/06/gcc-8-link-time-and-interprocedural.html
0. [CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”](https://www.youtube.com/watch?v=bSkpMdDe4g4)
0. http://duriansoftware.com/joe/Optimizing-is-multiple-checks-with-modular-arithmetic.html?
0. https://www.ericsson.com/research-blog/outperforming-state-art-compilers-unison/
0. http://compileroptimizations.com/index.html
0. https://polly.llvm.org/
0. http://paulcavallaro.com/blog/optimizing-function-placement-with-call-chain-clustering/
0. http://leto.net/docs/C-optimization.php
0. https://engineering.purdue.edu/~eigenman/ECE663/Handouts/bacon-compiling4hpc.pdf
0. http://venge.net/graydon/talks/CompilerTalk-2019.pdf
0. http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/6620/pdf/imm6620.pdf
0. [Lost in translation: Exposing hidden compiler optimization opportunities](https://arxiv.org/pdf/1903.11397.pdf)
0. https://kristerw.blogspot.com/2019/04/how-llvm-optimizes-geometric-sums.html
0. https://nfrechette.github.io/2019/05/08/sign_flip_optimization/
0. https://grin-tech.github.io/
0. [Loop Optimizations in LLVM - Michael Kruse](https://www.youtube.com/watch?v=oAPgGYr8T3Y)
0. [Don’t think, just defunctionalize](https://www.joachim-breitner.de/blog/778-Don%E2%80%99t_think%2C_just_defunctionalize)

# JavaScript

0. [Javascript Array.push is 945x faster than Array.concat](https://dev.to/uilicious/javascript-array-push-is-945x-faster-than-array-concat-1oki)