Аккордовые графы и программы форм SSA - PullRequest
0 голосов
/ 30 ноября 2018

Мой вопрос о том, почему каждая программа формы SSA по умолчанию соответствует хордальному графу. Википедия определяет хордовые графы как

. Хордовый граф - это тот, в котором все циклы из четырех или более вершин имеют хорду, которая является ребром, которое не является частью цикла, носоединяет две вершины цикла

Вот простой пример, взятый из некоторых примечаний к лекциям Я следовал ради понимания преимущества формы SSA для регистрации распределения.Авторы пишут:

[...] следующую программу и соответствующий хордальный граф:

confusing example

Во-первых: Я не понимаю, как этот график хордовый.Я понимаю, что программа не в форме SSA.Затем автор преобразует его в форму SSA, чтобы получить этот график помех

post-ssa example interference graph

Но снова я не вижу, как этохордовый граф или как первый граф связан с любым из более поздних графов.

Все это очень затруднило понимание того, как программы SSA приводят к графам хордовых пересечений.

Вотнекоторые источники, которые я изучил:

  1. https://pdfs.semanticscholar.org/db6b/c047856bee4eb4e7d04f1b934864dca4b065.pdf?_ga=2.67844629.501567003.1543477413-723933249.1539714051

  2. https://homepages.dcc.ufmg.br/~fernando/publications/papers/APLAS05.pdf

  3. http://compilers.cs.uni -saarland.de / paper / ifg_ssa.pdf

  4. https://homepages.dcc.ufmg.br/~fernando/classes/dcc888/ementa/slides/SSABasedRA.pdf

1 Ответ

0 голосов
/ 04 декабря 2018

Что касается программы, которую вы перечислили в разделе 6 примечаний к лекции:

Я не понимаю, как этот график является хордовым.Я понимаю, что программа не в форме SSA.

Вы правы, что исходная программа не в форме SSA.Вы также по праву смущены тем, почему его «хордовый граф» является хордовым: это не .Авторы допустили небольшую ошибку.Там, где они написали «хордальный граф» в отношении этой первой программы, они означали для написания «интерференционного графа».

Этот второй граф, на который вы ссылаетесь, является тривиально аккорд, потому что он не содержит циклов.Запомните определение хордального графа, который вы дали:

хордальный граф - это тот, в котором все циклы из четырех или более вершин имеют хорду , то есть ребро, которое не является ребромчасть цикла, но соединяет две вершины цикла

Если есть нулевые циклы, то в вакууме все этих циклов содержат аккорд.

...