TGViewer
PLComp PLComp @plcomp · 843 subscribers
Post #64 793
Размещение сотен промежуточных значений современных программ в десятках регистров типичных процессоров - одна из первых проблем, с которой столкнулись разработчики языков высокого яровня. Со временем было показано, что в общем случае задача распределения регистров является NP-полной, что предполагает множество эвристических и частичных решений.

"A survey on register allocation" - обзор темы РР на 2008 год с пояснением ключевой терминологи и перечислением наиболее эффективных подходов к проблеме.

Много внимания уделяется вариантам алгоритмов раскраски графа, линейного сканирования (linear scan) и перспективным на момент написания статьи альтернативным подходам (целочисленное линейное программирование, multi-commodity flow problem и др.).

В 2008 году все крупные компиляторы перешли к использованию внутренних представляний со статически однократным присваиванием (SSA). Поэтому естественно, что половина обзора посвящена рассмотрению полезных в РР свойств популярнейшего представления и адаптации ключевых алгоритмов к нему.

Интересно, что в обзоре почти не упоминаются легковесное локальное (внутри базовых блоков) РР и тяжелое точное РР; рассматриваются прежде всего популярные в больших промышленных компиляторах решения.

Материал написан доступно и явно ориентирован на введение в курс дела старшекурсников или аспирантов; автор не только разбирается в материале, но и умеет его донести.

#registerallocation #survey

http://compilers.cs.ucla.edu/fernando/publications/drafts/survey.pdf
More from @plcomp
  1. Oct 10, 2025В наше время может сложиться впечатление, что компиляторы вне LLVM уже не создаются. Это,…
  2. Jun 16, 2025#видеозаписи Начинаем публиковать видео докладов sysconf 2025. Первым — выступление Петра…
  3. May 21, 2025Недавно удалось лично пообщаться с несколькими известными преподавателями разработки компи…
  4. Nov 26, 2024В ближайшее время в Москве пройдет три конференции, связанные с системным программирование…
  5. Sep 29, 2024Я и мой студент, Кирилл Павлов, опубликовали статью "Библиотека llvm2py для анализа промеж…
  6. Jul 23, 2024Первый интерпретатор просто использует эти функции напрямую для рекурсивного аннотирования…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →