diff options
author | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-07-29 01:13:56 +0000 |
---|---|---|
committer | Duncan P. N. Exon Smith <dexonsmith@apple.com> | 2014-07-29 01:13:56 +0000 |
commit | 3f0fc7bca9f9a065755f513ec90aceb23c3f2047 (patch) | |
tree | 11065dc26a75bb53b7e891230f3a7b95ea821e45 /llvm/lib/Bitcode/Writer/ValueEnumerator.cpp | |
parent | fee1f5013cb281407d217a6fa2964a1dbb38feb2 (diff) | |
download | bcm5719-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.cpp | 3 |
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. |