This is an archive of the discontinued LLVM Phabricator instance.

[Polly] Use containers with deterministic iteration order
AbandonedPublic

Authored by ctetreau on Aug 3 2020, 4:08 PM.

Details

Summary

Use MapVector in BlockGenerators and SmallSetVector in IslNodeBuilder.
DenseMap and SmallSet have non-deterministic iteration order, resulting
in differences in code generation between runs of the compiler on the
same input

Diff Detail

Event Timeline

ctetreau created this revision.Aug 3 2020, 4:08 PM
Herald added a project: Restricted Project. · View Herald Transcript
ctetreau requested review of this revision.Aug 3 2020, 4:08 PM
efriedma added inline comments.Aug 3 2020, 4:30 PM
polly/include/polly/CodeGen/BlockGenerators.h
37

Where do we iterate over an AllocaMapTy?

polly/include/polly/CodeGen/IslNodeBuilder.h
291

Where do we iterate over PreloadedPtrs?

ctetreau abandoned this revision.Aug 3 2020, 4:49 PM