This is an archive of the discontinued LLVM Phabricator instance.

[LegacyPM] Use MapVector for OnTheFlyPassManagers.
ClosedPublic

Authored by fhahn on May 24 2018, 4:25 AM.

Details

Summary

Currently the iteration order of OnTheFlyManagers is not deterministic
between executions, which means some of test/Other/opt-*-pipeline.ll
tests fail non-deterministically if an additional on-the-fly manager is
added, as in D45330.

By using MapVector, we always iterate in the insertion order. As we are
not removing elements, there shouldn't be a performance hit, except that
we store an additional vector with the keys.

Diff Detail

Event Timeline

fhahn created this revision.May 24 2018, 4:25 AM
This revision is now accepted and ready to land.May 24 2018, 11:14 AM
This revision was automatically updated to reflect the committed changes.