summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
diff options
context:
space:
mode:
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-07-29 01:13:56 +0000
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>2014-07-29 01:13:56 +0000
commit3f0fc7bca9f9a065755f513ec90aceb23c3f2047 (patch)
tree11065dc26a75bb53b7e891230f3a7b95ea821e45 /llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
parentfee1f5013cb281407d217a6fa2964a1dbb38feb2 (diff)
downloadbcm5719-llvm-3f0fc7bca9f9a065755f513ec90aceb23c3f2047.tar.gz
bcm5719-llvm-3f0fc7bca9f9a065755f513ec90aceb23c3f2047.zip
Bitcode: Correctly compare a Use against itself
Fix the sort of expected order in the reader to correctly return `false` when comparing a `Use` against itself. This was caught by test/Bitcode/binaryIntInstructions.3.2.ll, so I'm adding a `RUN` line using `llvm-uselistorder` for every test in `test/Bitcode` that passes. A few tests still fail, so I'll investigate those next. This is part of PR5680. llvm-svn: 214157
Diffstat (limited to 'llvm/lib/Bitcode/Writer/ValueEnumerator.cpp')
-rw-r--r--llvm/lib/Bitcode/Writer/ValueEnumerator.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
index 273ea06c641..f0f9f7430c5 100644
--- a/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
+++ b/llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
@@ -106,6 +106,9 @@ static void predictValueUseListOrderImpl(const Value *V, const Function *F,
[&OM, ID](const Entry &L, const Entry &R) {
const Use *LU = L.first;
const Use *RU = R.first;
+ if (LU == RU)
+ return false;
+
auto LID = OM.lookup(LU->getUser()).first;
auto RID = OM.lookup(RU->getUser()).first;
// If ID is 4, then expect: 7 6 5 1 2 3.
OpenPOWER on IntegriCloud