Аккордовые графы и программы форм SSA

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

что я знаю о хордовом графе из Википедии

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

вот простой пример

введите описание изображения здесь

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

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

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

Вот ссылка на полную лекцию: https://www.cs.cmu.edu/~rjsimmon/15411-f15/lec/03-regalloc.pdf

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

введите описание изображения здесь

Опять же, я не вижу, как это хордовый граф, например, как первый граф связан с любым из более поздних графов, как я могу получить преимущества оптимальности использования формы SSA при распределении регистров (из-за ее строгой природы и того, что каждое использование является доминирующим по своему определению и потому, что каждая переменная имеет одну природу определения формы SSA), и я видел примеры того, как это улучшает распределение регистров, но что я не понимаю, как программы SSA формируют (точнее пересечение 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/papers/ifg_ssa.pdf

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

Любая помощь приветствуется заранее.

0 ответов

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

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

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

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

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

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

Другие вопросы по тегам