aboutsummaryrefslogtreecommitdiff
path: root/tools/llvm-diff/DifferenceEngine.cpp
AgeCommit message (Collapse)Author
2010-07-29Make the header self-contained and follow #include guidelines.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109774 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29Centralize the logic to permanently unify two instructions and make sureJohn McCall
it establishes a context and does a complaining diff. Also make sure we unify the prelude and postlude of a diff after a block-diff call. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109744 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29Diagnose non-structural differences in the case where blocks wereJohn McCall
structurally identical. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109743 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29When unifying instructions during a block diff, actually complain aboutJohn McCall
any differences we see. This should only happen if there are "non-structural" differences between the instructions, i.e. differences which wouldn't cause diff to return true. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109742 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29Somehow I was getting reasonable results for the test cases I was interestedJohn McCall
in despite not ever incrementing any path costs, so that the only nonzero costs arose from the all-left path in the first column. Anyway. Perform the diff starting from the beginning of the block to avoid capturing (say) loads of allocas. Vastly improves diff results on code that hasn't been mem2reg'ed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109741 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29Cache the result of errs() and implement formatted logging.John McCall
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109740 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-29Add the llvm-diff tool, which performs a relatively naive structuralJohn McCall
diff of a function. There's a lot of cruft in the current version, and it's pretty far from perfect, but it's usable. Currently only capable of comparing functions. Currently ignores metadata. Currently ignores most attributes of functions and instructions. Patches welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109739 91177308-0d34-0410-b5e6-96231b3b80d8