IPO: Add use-list-order verifier

Add a -verify-use-list-order pass, which shuffles use-list order, writes
to bitcode, reads back, and verifies that the (shuffled) order matches.

  - The utility functions live in lib/IR/UseListOrder.cpp.

  - Moved (and renamed) the command-line option to enable writing
    use-lists, so that this pass can return early if the use-list orders
    aren't being serialized.

It's not clear that this pass is the right direction long-term (perhaps
a separate tool instead?), but short-term it's a great way to test the
use-list order prototype.  I've added an XFAIL-ed testcase that I'm
hoping to get working pretty quickly.

This is part of PR5680.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@213945 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Duncan P. N. Exon Smith
2014-07-25 14:49:26 +00:00
parent db4f73f6d9
commit 7bf73bd378
11 changed files with 621 additions and 7 deletions

View File

@@ -39,6 +39,7 @@ add_llvm_library(LLVMCore
Type.cpp
TypeFinder.cpp
Use.cpp
UseListOrder.cpp
User.cpp
Value.cpp
ValueSymbolTable.cpp