[PATCH] D76709: [Target][ARM] Adding MVE VPT Optimisation Pass

Pierre van Houtryve via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Mar 29 23:57:40 PDT 2020


Pierre-vh marked 7 inline comments as done.
Pierre-vh added inline comments.


================
Comment at: llvm/lib/Target/ARM/MVEVPTOptimisationsPass.cpp:141
+MachineInstrBuilder
+MVEVPTOptimisations::BuildVPNOTBefore(MachineBasicBlock &MBB,
+                                      MachineInstr &Instr) {
----------------
dmgreen wrote:
> How much does this function add? It doesn't seem to do a huge amount.
Sure, it doesn't add much, I'll remove it.


================
Comment at: llvm/lib/Target/ARM/MVEVPTOptimisationsPass.cpp:158-159
+    // Ignore predicated instructions.
+    if (getVPTInstrPredicate(Instr) != ARMVCC::None)
+      continue;
+
----------------
dmgreen wrote:
> Do you have any tests for this bit?
Not yet, I'll add some.


================
Comment at: llvm/test/CodeGen/Thumb2/mve-vpt-optimisations.mir:154-155
+    liveins: $q0, $q1
+    renamable $vpr = MVE_VCMPf16 renamable $q0, renamable $q1, 10, 0, $noreg
+    renamable $vpr = MVE_VCMPf16 renamable $q0, renamable $q1, 11, 0, $noreg
+
----------------
dmgreen wrote:
> I was expecting these registers to be virtual, given where this is in the pipeline. Will they be physical instead?
In the pipeline, they'd be virtual.
Should I replace all $vpr/$q0/$q1 here with virtual registers ? It won't make much of a difference testing wise but I can understand that virtual registers would be preferred. 


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

https://reviews.llvm.org/D76709





More information about the llvm-commits mailing list