[CGP] Ensure splitgep gives deterministic output
authorDavid Green <david.green@arm.com>
Wed, 12 Sep 2018 10:19:10 +0000 (10:19 +0000)
committerDavid Green <david.green@arm.com>
Wed, 12 Sep 2018 10:19:10 +0000 (10:19 +0000)
commite27e87cdcb0b4dd56806434bc31fabe8e24e9972
treedb23aeee10eeec3140c7a1b13e1f0450682703df
parent10fb67728593478671d75403c6bf8683db60c9d3
[CGP] Ensure splitgep gives deterministic output

The output of splitLargeGEPOffsets does not appear to be deterministic because
of the way that we iterate over a DenseMap. I've changed it to a MapVector for
consistent output.

The test here isn't particularly great, only showing a consmetic difference in
output. The original reproducer is much larger but show a diffierence in
instruction ordering, leading to different codegen.

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

llvm-svn: 342043
llvm/lib/CodeGen/CodeGenPrepare.cpp
llvm/test/Transforms/CodeGenPrepare/ARM/splitgep.ll [new file with mode: 0644]