|
|
|
|
|
by DannyBee
4857 days ago
|
|
Once you get past generic dataflow based optimizations that have some notion of optimality[1], yes, you start to write optimizations that target idioms. For example: Most compilers started doing structure layout and reorg optimizations (transforming structures with arrays into arrays of structures, and vice versa) to tackle specific benchmarks. In some cases, they discovered it also was useful generally. But whatever the benchmarks are, that's often what gets targeted. You can't optimize in a vacuum, you need to know what you are trying to develop optimization algorithms to do. This usually occurs by taking user complaints/programs/whatever, finding out why they are slow, seeing if there is a common solution, and developing an optimization to do it. So yeah, if you are targeting certain patterns, and the patterns change, .. [1] IE You've removed all possible redundant computations, made it so everything is only computed among paths it is actually used, the calculations occur in lifetime optimal fashion, etc. |
|