[PATCH] D28934: Write a new SSAUpdater
Davide Italiano via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue May 30 21:18:56 PDT 2017
davide added a comment.
@dberlin I just came back to this while I was looking at NewGVN PRE.
I decided to give it a try to see how the API looked like and I personally didn't find any problems with it (I might just used it wrong, FWIW).
https://reviews.llvm.org/P7997
In particular, the old API `getValueInTheMiddleOfTheBlock` has been source of confusion (at least to me).
With your patch and my patch on top of it, I saw still one test failing:
--- /home/davide/old.ll 2017-05-30 20:56:21.058869000 -0700
+++ /home/davide/new.ll 2017-05-30 20:56:30.450514797 -0700
@@ -316,7 +316,7 @@
br label %block4
block4: ; preds = %block3, %block2
- %D = phi i32 [ 87, %block2 ], [ 97, %block3 ]
+ %D = phi i32 [ 97, %block3 ], [ 87, %block2 ]
%A = phi i32 [ -1, %block2 ], [ 42, %block3 ]
br i1 %cmpxy, label %block5, label %exit
@@ -350,7 +350,7 @@
br label %loop
loop: ; preds = %loop, %entry
- %Y2 = phi i8 [ %Y, %entry ], [ 0, %loop ]
+ %Y2 = phi i8 [ 0, %loop ], [ %Y, %entry ]
%i = phi i32 [ 4, %entry ], [ 192, %loop ]
%X2 = getelementptr i8, i8* %p, i32 %i
%cond = call i1 @cond2()
@@ -372,7 +372,7 @@
br label %loop
loop: ; preds = %cont, %entry
- %Y2 = phi i8 [ %Y, %entry ], [ %Y2.pre, %cont ]
+ %Y2 = phi i8 [ %Y2.pre, %cont ], [ %Y, %entry ]
%i = phi i32 [ 4, %entry ], [ 3, %cont ]
%X2 = getelementptr i8, i8* %p, i32 %i
%cond = call i1 @cond2()
I guess this is because we don't have a consistent ordering of PHI args. If that's the only problem, I might consider looking at it next (and then keep converting the remaining users).
https://reviews.llvm.org/D28934
More information about the llvm-commits
mailing list