diff options
author | Aleksei Sidorin <a.sidorin@samsung.com> | 2017-11-21 11:27:47 +0000 |
---|---|---|
committer | Aleksei Sidorin <a.sidorin@samsung.com> | 2017-11-21 11:27:47 +0000 |
commit | 124f5de84134095ac4cfa88eecfec1cf39995516 (patch) | |
tree | dd6c67848cf533eabd2f2211dac58b18387b1e94 /llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp | |
parent | 7ac9be1ab7def8af270ea4af430fb59eb89a2239 (diff) | |
download | bcm5719-llvm-124f5de84134095ac4cfa88eecfec1cf39995516.tar.gz bcm5719-llvm-124f5de84134095ac4cfa88eecfec1cf39995516.zip |
[Analyzer] Stable iteration on indirect goto LabelDecl's to avoid non-determinism (attempt 2)
CFG wass built in non-deterministic order due to the fact that indirect
goto labels' declarations (LabelDecl's) are stored in the llvm::SmallSet
container. LabelDecl's are pointers, whose order is not deterministic,
and llvm::SmallSet sorts them by their non-deterministic addresses after
"small" container is exceeded. This leads to non-deterministic processing
of the elements of the container.
The fix is to use llvm::SmallSetVector that was designed to have
deterministic iteration order.
Patch by Ilya Palachev!
Differential Revision: https://reviews.llvm.org/D40073
llvm-svn: 318754
Diffstat (limited to 'llvm/lib/Target/ARM/MCTargetDesc/ARMMCAsmInfo.cpp')
0 files changed, 0 insertions, 0 deletions