Мене цікавить оптимізація графіків потоку даних та керуючих потоків, зокрема, більш обчислювально складних. Але також буде цікаво дізнатися про новітні винаходи в області оптимізацій маточок.
Мене цікавить оптимізація графіків потоку даних та керуючих потоків, зокрема, більш обчислювально складних. Але також буде цікаво дізнатися про новітні винаходи в області оптимізацій маточок.
Відповіді:
Я не впевнений, наскільки це роман, або якщо він занадто великий на застосованій стороні для вашого інтересу, але Hoopl показує, як можна оптимізувати оптимізацію потоку управління / передачі даних, при цьому поширення фактів про вершини контрольних графіків не залежить від мова та специфічна оптимізація.
Вони посилаються на алгоритм Лернера, Гроув та Чамберс 2002 року, який складає прості оптимізації в "суперпептимізацію".
Я припускаю, що метод насичення рівності , оскільки інший підхід до проблеми оптимізації проходить впорядкування, був би актуальним. Наскільки мені відомо, це все ще не виявилося практичним конкретною реалізацією в повноцінному компіляторі. Наступні Оптимізація компілятора з доказів може також зацікавити.
Відбулось трохи пожвавлення у перевірених оптимізаторах компіляторів. Окрім статті Лернера (згаданої у попередньому коментарі), ви можете подивитися на проект CompCert під керівництвом Ксав'єра Леруа. Вони зробили кілька цікавих матеріалів із зазначенням оптимізацій як доказів, які можна перевірити машиною (використовуючи Coq ). Я ще не читав документи, але проект Verified Software Toolchain в Прінстоні також здається, що він дає цікаві результати в цій галузі.
Визнаючи, що baz [i] + = сила (foo [i], foo [j]) у подвійному циклі FOR має незалежні результати для (i, j) та переупорядкування викликів у кривій заповнення простору на (i, j) для скоротити кеш-пропуски.
Не зовсім "вигляд", але отримувати кеш-поведінку для "безкоштовно", це приємно.