[PATCH] D126085: [RISCV] Add a subtarget feature to enable unaligned loads

Craig Topper via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 25 11:44:46 PDT 2022


craig.topper added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVISelLowering.cpp:11820
 
-  return false;
+  return Subtarget.enableUnalignedMem();
 }
----------------
reames wrote:
> reames wrote:
> > reames wrote:
> > > craig.topper wrote:
> > > > reames wrote:
> > > > > craig.topper wrote:
> > > > > > This seems like it should be a different feature for vectors.
> > > > > There might be such a target where scalar vs vector matters, but on the motivating case, this is not expected to matter.  We can split later if needed.
> > > > There are no vector tests and the description in the .td file says “scalar”. The patch should at least be self consistent.
> > > You're absolutely correct on that.  I'd originally had it split, then changed my mind.  Let me rebase and correct both of those!
> > It turns out writing vector tests was a useful exercise.  :)
> > 
> > From what I can tell, we aggressively canonicalize towards byte element loads and stores for vectors.  As such, no plain vector load or store is every treated as unaligned.
> > 
> > However, some indexed and strided load tests did fail if I asserted the fallthrough return was never taken.
> > 
> > For the moment, I decided to restrict the scope to only the scalar case.  Mostly because there look to be enough other opportunities around indexed loads that this didn't seem terribly useful.  
> > 
> > With that, I could go in two directions here.
> > 1) Rename this to scalar and add a separate flag later for vector cases as warranted.
> > 2) Document the intent that this covers all access, but leave the indexed/strided case currently unimplemented.
> > 
> > I have no strong preference and will do as reviewers request.  
> @craig.topper ping?
Let's rename it to scalar and add a separate flag for vector later as warranted.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126085/new/

https://reviews.llvm.org/D126085



More information about the llvm-commits mailing list