Как выяснить, зависит ли конкретная инструкция LLVM от другой? - PullRequest
4 голосов
/ 21 февраля 2012

Я пытаюсь написать проход оптимизации LLVM. И мне нужен способ определить, влияет ли одна инструкция LLVM на другую (или зависит от другой).

Эти зависимости могут иметь различную природу:

  1. первая инструкция создает значение, другая использует его как операнд
  2. первая инструкция записывает в память, другая читает оттуда
  3. другие возможности?

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

Я понимаю, что могу использовать цепочки use-def для поиска зависимостей типа 1, и AliasAnalysis может помочь мне с зависимостями типа 2. Но я боюсь, что могут быть другие типы зависимостей ...

Предоставляет ли LLVM какой-либо общий механизм для этого?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...