HomePhabricator

Revert "Revert r341269: [Constant Hoisting] Hoisting Constant GEP Expressions"

Description

Revert "Revert r341269: [Constant Hoisting] Hoisting Constant GEP Expressions"

Reland r341269. Use std::stable_sort when sorting constant condidates.

Reverting commit, r341365:

Revert r341269: [Constant Hoisting] Hoisting Constant GEP Expressions

One of the tests is failing 50% of the time when expensive checks are
enabled. Not sure how deep the problem is so just reverting while the
author can investigate so that the bots stop repeatedly failing and
blaming things incorrectly. Will respond with details on the original
commit.

Original commit, r341269:

[Constant Hoisting] Hoisting Constant GEP Expressions

Leverage existing logic in constant hoisting pass to transform constant GEP
expressions sharing the same base global variable. Multi-dimensional GEPs are
rewritten into single-dimensional GEPs.

https://reviews.llvm.org/D51396

Differential Revision: https://reviews.llvm.org/D51654