[PATCH] D85638: [ARM] Unrestrict Armv8-a IT when at minsize

Nicholas Guy via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 10 05:51:42 PDT 2020


NickGuy accepted this revision.
NickGuy added a comment.
This revision is now accepted and ready to land.

LGTM, if no one else has any issues.



================
Comment at: llvm/test/CodeGen/ARM/codesize-ifcvt.mir:2
 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
-# RUN: llc -mtriple=thumbv7 -run-pass=if-converter %s -o - | FileCheck %s
+# RUN: llc -mtriple=thumbv7 -run-pass=if-converter %s -o - | FileCheck %s --check-prefix=V7
+# RUN: llc -mtriple=thumbv8 -run-pass=if-converter %s -o - | FileCheck %s --check-prefix=V8
----------------
samparker wrote:
> samparker wrote:
> > NickGuy wrote:
> > > NickGuy wrote:
> > > > Could we also have a test for V8 with -Oz? Given that that is what this change effects most
> > > Nit: Shouldn't this be CHECK-V7? I haven't seen any tests that don't follow that convention.
> > -Oz is a clang frontend option so we can't use it for testing with llc. With LLVM IR, we attach attributes on the functions for optsize (Os) and minsize (Oz):
> > 
> > ```
> >   attributes #0 = { optsize }
> >   attributes #1 = { minsize }
> > ```
> fair enough.
Thanks


================
Comment at: llvm/test/CodeGen/ARM/codesize-ifcvt.mir:2-3
 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
-# RUN: llc -mtriple=thumbv7 -run-pass=if-converter %s -o - | FileCheck %s
+# RUN: llc -mtriple=thumbv7 -run-pass=if-converter %s -o - | FileCheck %s --check-prefix=V7
+# RUN: llc -mtriple=thumbv8 -run-pass=if-converter %s -o - | FileCheck %s --check-prefix=V8
 --- |
----------------
NickGuy wrote:
> samparker wrote:
> > samparker wrote:
> > > NickGuy wrote:
> > > > NickGuy wrote:
> > > > > Could we also have a test for V8 with -Oz? Given that that is what this change effects most
> > > > Nit: Shouldn't this be CHECK-V7? I haven't seen any tests that don't follow that convention.
> > > -Oz is a clang frontend option so we can't use it for testing with llc. With LLVM IR, we attach attributes on the functions for optsize (Os) and minsize (Oz):
> > > 
> > > ```
> > >   attributes #0 = { optsize }
> > >   attributes #1 = { minsize }
> > > ```
> > fair enough.
> Thanks
Ah, I'd missed that part. Ignore me here :)


================
Comment at: llvm/test/CodeGen/ARM/codesize-ifcvt.mir:223-251
+  ; V8:   tTAILJMPdND @extfunc, 14 /* CC::al */, $noreg, implicit $sp, implicit $sp
   ; CHECK-LABEL: name: test_nosize
   ; CHECK: bb.0 (%ir-block.0):
   ; CHECK:   successors: %bb.2(0x40000000), %bb.1(0x40000000)
   ; CHECK:   liveins: $lr, $r7
   ; CHECK:   renamable $r0 = t2MOVi 1, 14 /* CC::al */, $noreg, $noreg
   ; CHECK:   t2CMPri killed renamable $r0, 0, 14 /* CC::al */, $noreg, implicit-def $cpsr
----------------
samparker wrote:
> NickGuy wrote:
> > Is any of this needed now? It looks identical to the V7 block.
> Ah! cheers.
👍 


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

https://reviews.llvm.org/D85638



More information about the llvm-commits mailing list