Как заставить ScalarEvolution пересчитывать значения SCEV? - PullRequest
0 голосов
/ 30 октября 2019

Я пишу проход для LLVM. Я клонирую и переставляю петли, что можно сделать несколько раз. Проблема в том, что после первого раза, когда я делаю это, SCEV становятся типами SCEVUnknown, когда они должны быть SCEVAddRecExpr.

Однако, если я перезапущу весь проход, используя вывод первой итерации, онбудет правильно идентифицировать их как SCEVAddRecExpr.

Я уже пытался вызвать функцию ForgetAllLoops Scalar Evolution, но это не работает. Я также пытался вызвать runOnFuction с прохода ScalarEvolution, но это также не сработало.

Мой вопрос: есть ли способ повторно выполнить проход анализа во время моего прохода? Или как я могу заставить ScalarEvolution пересчитать значения SCEV для неизвестных SCEV.

...