Fix http://llvm.org/bugs/show_bug.cgi?id=2104 by ordering lexicographically what gets printed. Be const-correct in PrintResults and uninline it too

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47712 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Gabor Greif 2008-02-28 08:38:45 +00:00
parent e526d8a955
commit c0734e3c99
2 changed files with 13 additions and 6 deletions

View File

@ -31,6 +31,7 @@
#include "llvm/Support/Compiler.h" #include "llvm/Support/Compiler.h"
#include "llvm/Support/Streams.h" #include "llvm/Support/Streams.h"
#include <set> #include <set>
#include <sstream>
using namespace llvm; using namespace llvm;
namespace { namespace {
@ -80,12 +81,18 @@ namespace {
FunctionPass *llvm::createAAEvalPass() { return new AAEval(); } FunctionPass *llvm::createAAEvalPass() { return new AAEval(); }
static inline void PrintResults(const char *Msg, bool P, Value *V1, Value *V2, static void PrintResults(const char *Msg, bool P, const Value *V1, const Value *V2,
Module *M) { const Module *M) {
if (P) { if (P) {
cerr << " " << Msg << ":\t"; std::stringstream s1, s2;
WriteAsOperand(*cerr.stream(), V1, true, M) << ", "; WriteAsOperand(s1, V1, true, M);
WriteAsOperand(*cerr.stream(), V2, true, M) << "\n"; WriteAsOperand(s2, V2, true, M);
std::string o1(s1.str()), o2(s2.str());
if (o2 < o1)
std::swap(o1, o2);
cerr << " " << Msg << ":\t"
<< o1 << ", "
<< o2 << "\n";
} }
} }

View File

@ -1,6 +1,6 @@
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {9 no alias} ; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {9 no alias}
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {6 may alias} ; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {6 may alias}
; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {MayAlias:.*i32\\* %Jpointer, i32\\* %Ipointer} ; RUN: llvm-as %s -o - | opt -basicaa -aa-eval -print-all-alias-modref-info -disable-output |& grep {MayAlias:.*i32\\* %Ipointer, i32\\* %Jpointer}
define void @foo(i32* noalias %p, i32* noalias %q, i32 %i, i32 %j) { define void @foo(i32* noalias %p, i32* noalias %q, i32 %i, i32 %j) {
%Ipointer = getelementptr i32* %p, i32 %i %Ipointer = getelementptr i32* %p, i32 %i