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

llvm-svn: 47712
This commit is contained in:
Gabor Greif 2008-02-28 08:38:45 +00:00
parent e1d3e0958b
commit fd0fb616f8
2 changed files with 13 additions and 6 deletions

View File

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