[PATCH] [NaryReassoc] reassociate GEP for CSE
Bjarke Hammersholt Roune
broune at google.com
Tue May 19 17:53:00 PDT 2015
================
Comment at: lib/Transforms/Scalar/NaryReassociate.cpp:402
@@ +401,3 @@
+ if (RHS->getType() != IntPtrTy)
+ RHS = Builder.CreateSExt(RHS, IntPtrTy);
+ if (IndexedSize != ElementSize) {
----------------
Suppose that RHS is 64 bits and pointers are 32 bits (or if RHS is >64 bits), do we then need CreateSExtOrTrunc here instead of CreateSExt?
================
Comment at: lib/Transforms/Scalar/NaryReassociate.cpp:264
@@ +263,3 @@
+ default:
+ llvm_unreachable("should be filtered out by isPotentiallyNaryReassociable");
+ }
----------------
jingyue wrote:
> broune wrote:
> > What's the motivation behind doing it this way instead of returning null here and then not needing isPotentiallyNaryReassociable?
> If `!isPotentiallyNaryReassociable`, we don't need to add `I` to `SeenExprs`. I could merge `SeenExprs[SE->getSCEV(I)].push_back(I)` to `tryReassociate`; then `tryReassociate` should probably be renamed to `tryReassociateAndAddCandidate`?
I'm fine with it as it is now. Merging it into tryReassociate seems fine too.
http://reviews.llvm.org/D9802
EMAIL PREFERENCES
http://reviews.llvm.org/settings/panel/emailpreferences/
More information about the llvm-commits
mailing list