[llvm] r364775 - [UpdateTestChecks][PowerPC] Avoid empty string when scrubbing loop comments

Jinsong Ji via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 1 07:37:48 PDT 2019


Author: jsji
Date: Mon Jul  1 07:37:48 2019
New Revision: 364775

URL: http://llvm.org/viewvc/llvm-project?rev=364775&view=rev
Log:
[UpdateTestChecks][PowerPC] Avoid empty string when scrubbing loop comments

Summary:
SCRUB_LOOP_COMMENT_RE was introduced in https://reviews.llvm.org/D31285
This works for some loops.

However, we may generate lines with loop comments only.
And since we don't scrub leading white spaces, this will leave an empty
line there, and FileCheck will complain it.

eg: llvm/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll:27:15:
error: found empty check string with prefix 'CHECK:'
; CHECK-NEXT:

This prevented us from using the `update_llc_test_checks.py` for quite some cases.

We should still keep the comment token there, so that we can safely
scrub the loop comment without breaking FileCheck.

Reviewers: timshen, hfinkel, lebedev.ri, RKSimon

Subscribers: nemanjai, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63957

Modified:
    llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll
    llvm/trunk/utils/UpdateTestChecks/asm.py

Modified: llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll?rev=364775&r1=364774&r2=364775&view=diff
==============================================================================
--- llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll (original)
+++ llvm/trunk/test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll Mon Jul  1 07:37:48 2019
@@ -10,61 +10,133 @@
 
 define signext i32 @main() {
 ; CHECK-LABEL: main:
-; CHECK:    li 3, -32477
-; CHECK:    li 6, 234
-; CHECK:    sth 3, 46(1)
-; CHECK:    lis 3, 0
-; CHECK:    ori 4, 3, 33059
-; CHECK:    sync
-; CHECK:  .LBB0_1: # %L.entry
-; CHECK:    lharx 3, 0, 5
-; CHECK:    cmpw 4, 3
-; CHECK:    bne 0, .LBB0_3
-; CHECK:    sthcx. 6, 0, 5
-; CHECK:    bne 0, .LBB0_1
-; CHECK:    b .LBB0_4
-; CHECK:  .LBB0_3: # %L.entry
-; CHECK:    sthcx. 3, 0, 5
-; CHECK:  .LBB0_4: # %L.entry
-; CHECK:    cmplwi 3, 33059
-; CHECK:    lwsync
-; CHECK:    lhz 3, 46(1)
-; CHECK:    cmplwi 3, 234
+; CHECK:       # %bb.0: # %L.entry
+; CHECK-NEXT:    mflr 0
+; CHECK-NEXT:    std 0, 16(1)
+; CHECK-NEXT:    stdu 1, -48(1)
+; CHECK-NEXT:    .cfi_def_cfa_offset 48
+; CHECK-NEXT:    .cfi_offset lr, 16
+; CHECK-NEXT:    li 3, -32477
+; CHECK-NEXT:    li 6, 234
+; CHECK-NEXT:    addi 5, 1, 46
+; CHECK-NEXT:    sth 3, 46(1)
+; CHECK-NEXT:    lis 3, 0
+; CHECK-NEXT:    ori 4, 3, 33059
+; CHECK-NEXT:    sync
+; CHECK-NEXT:  .LBB0_1: # %L.entry
+; CHECK-NEXT:    #
+; CHECK-NEXT:    lharx 3, 0, 5
+; CHECK-NEXT:    cmpw 4, 3
+; CHECK-NEXT:    bne 0, .LBB0_3
+; CHECK-NEXT:  # %bb.2: # %L.entry
+; CHECK-NEXT:    #
+; CHECK-NEXT:    sthcx. 6, 0, 5
+; CHECK-NEXT:    bne 0, .LBB0_1
+; CHECK-NEXT:    b .LBB0_4
+; CHECK-NEXT:  .LBB0_3: # %L.entry
+; CHECK-NEXT:    sthcx. 3, 0, 5
+; CHECK-NEXT:  .LBB0_4: # %L.entry
+; CHECK-NEXT:    cmplwi 3, 33059
+; CHECK-NEXT:    lwsync
+; CHECK-NEXT:    bne 0, .LBB0_7
+; CHECK-NEXT:  # %bb.5: # %L.B0000
+; CHECK-NEXT:    lhz 3, 46(1)
+; CHECK-NEXT:    cmplwi 3, 234
+; CHECK-NEXT:    bne 0, .LBB0_8
+; CHECK-NEXT:  # %bb.6: # %L.B0001
+; CHECK-NEXT:    addis 3, 2, .Lstr.2 at toc@ha
+; CHECK-NEXT:    addi 3, 3, .Lstr.2 at toc@l
+; CHECK-NEXT:    bl puts
+; CHECK-NEXT:    nop
+; CHECK-NEXT:    li 3, 0
+; CHECK-NEXT:    b .LBB0_10
+; CHECK-NEXT:  .LBB0_7: # %L.B0003
+; CHECK-NEXT:    addis 3, 2, .Lstr at toc@ha
+; CHECK-NEXT:    addi 3, 3, .Lstr at toc@l
+; CHECK-NEXT:    b .LBB0_9
+; CHECK-NEXT:  .LBB0_8: # %L.B0005
+; CHECK-NEXT:    addis 3, 2, .Lstr.1 at toc@ha
+; CHECK-NEXT:    addi 3, 3, .Lstr.1 at toc@l
+; CHECK-NEXT:  .LBB0_9: # %L.B0003
+; CHECK-NEXT:    bl puts
+; CHECK-NEXT:    nop
+; CHECK-NEXT:    li 3, 1
+; CHECK-NEXT:  .LBB0_10: # %L.B0003
+; CHECK-NEXT:    addi 1, 1, 48
+; CHECK-NEXT:    ld 0, 16(1)
+; CHECK-NEXT:    mtlr 0
+; CHECK-NEXT:    blr
 ;
 ; CHECK-P7-LABEL: main:
-; CHECK-P7:    li 3, -32477
-; CHECK-P7:    lis 5, 0
-; CHECK-P7:    li 7, 0
-; CHECK-P7:    sth 3, 46(1)
-; CHECK-P7:    li 6, 234
-; CHECK-P7:    ori 5, 5, 33059
-; CHECK-P7:    rlwinm 3, 4, 3, 27, 27
-; CHECK-P7:    ori 7, 7, 65535
-; CHECK-P7:    sync
-; CHECK-P7:    slw 6, 6, 3
-; CHECK-P7:    slw 8, 5, 3
-; CHECK-P7:    slw 5, 7, 3
-; CHECK-P7:    rldicr 4, 4, 0, 61
-; CHECK-P7:    and 7, 6, 5
-; CHECK-P7:    and 8, 8, 5
-; CHECK-P7:  .LBB0_1: # %L.entry
-; CHECK-P7:    lwarx 9, 0, 4
-; CHECK-P7:    and 6, 9, 5
-; CHECK-P7:    cmpw 6, 8
-; CHECK-P7:    bne 0, .LBB0_3
-; CHECK-P7:    andc 9, 9, 5
-; CHECK-P7:    or 9, 9, 7
-; CHECK-P7:    stwcx. 9, 0, 4
-; CHECK-P7:    bne 0, .LBB0_1
-; CHECK-P7:    b .LBB0_4
-; CHECK-P7:  .LBB0_3: # %L.entry
-; CHECK-P7:    stwcx. 9, 0, 4
-; CHECK-P7:  .LBB0_4: # %L.entry
-; CHECK-P7:    srw 3, 6, 3
-; CHECK-P7:    lwsync
-; CHECK-P7:    cmplwi 3, 33059
-; CHECK-P7:    lhz 3, 46(1)
-; CHECK-P7:    cmplwi 3, 234
+; CHECK-P7:       # %bb.0: # %L.entry
+; CHECK-P7-NEXT:    mflr 0
+; CHECK-P7-NEXT:    std 0, 16(1)
+; CHECK-P7-NEXT:    stdu 1, -48(1)
+; CHECK-P7-NEXT:    .cfi_def_cfa_offset 48
+; CHECK-P7-NEXT:    .cfi_offset lr, 16
+; CHECK-P7-NEXT:    li 3, -32477
+; CHECK-P7-NEXT:    lis 5, 0
+; CHECK-P7-NEXT:    addi 4, 1, 46
+; CHECK-P7-NEXT:    li 7, 0
+; CHECK-P7-NEXT:    sth 3, 46(1)
+; CHECK-P7-NEXT:    li 6, 234
+; CHECK-P7-NEXT:    ori 5, 5, 33059
+; CHECK-P7-NEXT:    rlwinm 3, 4, 3, 27, 27
+; CHECK-P7-NEXT:    ori 7, 7, 65535
+; CHECK-P7-NEXT:    sync
+; CHECK-P7-NEXT:    slw 6, 6, 3
+; CHECK-P7-NEXT:    slw 8, 5, 3
+; CHECK-P7-NEXT:    slw 5, 7, 3
+; CHECK-P7-NEXT:    rldicr 4, 4, 0, 61
+; CHECK-P7-NEXT:    and 7, 6, 5
+; CHECK-P7-NEXT:    and 8, 8, 5
+; CHECK-P7-NEXT:  .LBB0_1: # %L.entry
+; CHECK-P7-NEXT:    #
+; CHECK-P7-NEXT:    lwarx 9, 0, 4
+; CHECK-P7-NEXT:    and 6, 9, 5
+; CHECK-P7-NEXT:    cmpw 6, 8
+; CHECK-P7-NEXT:    bne 0, .LBB0_3
+; CHECK-P7-NEXT:  # %bb.2: # %L.entry
+; CHECK-P7-NEXT:    #
+; CHECK-P7-NEXT:    andc 9, 9, 5
+; CHECK-P7-NEXT:    or 9, 9, 7
+; CHECK-P7-NEXT:    stwcx. 9, 0, 4
+; CHECK-P7-NEXT:    bne 0, .LBB0_1
+; CHECK-P7-NEXT:    b .LBB0_4
+; CHECK-P7-NEXT:  .LBB0_3: # %L.entry
+; CHECK-P7-NEXT:    stwcx. 9, 0, 4
+; CHECK-P7-NEXT:  .LBB0_4: # %L.entry
+; CHECK-P7-NEXT:    srw 3, 6, 3
+; CHECK-P7-NEXT:    lwsync
+; CHECK-P7-NEXT:    cmplwi 3, 33059
+; CHECK-P7-NEXT:    bne 0, .LBB0_7
+; CHECK-P7-NEXT:  # %bb.5: # %L.B0000
+; CHECK-P7-NEXT:    lhz 3, 46(1)
+; CHECK-P7-NEXT:    cmplwi 3, 234
+; CHECK-P7-NEXT:    bne 0, .LBB0_8
+; CHECK-P7-NEXT:  # %bb.6: # %L.B0001
+; CHECK-P7-NEXT:    addis 3, 2, .Lstr.2 at toc@ha
+; CHECK-P7-NEXT:    addi 3, 3, .Lstr.2 at toc@l
+; CHECK-P7-NEXT:    bl puts
+; CHECK-P7-NEXT:    nop
+; CHECK-P7-NEXT:    li 3, 0
+; CHECK-P7-NEXT:    b .LBB0_10
+; CHECK-P7-NEXT:  .LBB0_7: # %L.B0003
+; CHECK-P7-NEXT:    addis 3, 2, .Lstr at toc@ha
+; CHECK-P7-NEXT:    addi 3, 3, .Lstr at toc@l
+; CHECK-P7-NEXT:    b .LBB0_9
+; CHECK-P7-NEXT:  .LBB0_8: # %L.B0005
+; CHECK-P7-NEXT:    addis 3, 2, .Lstr.1 at toc@ha
+; CHECK-P7-NEXT:    addi 3, 3, .Lstr.1 at toc@l
+; CHECK-P7-NEXT:  .LBB0_9: # %L.B0003
+; CHECK-P7-NEXT:    bl puts
+; CHECK-P7-NEXT:    nop
+; CHECK-P7-NEXT:    li 3, 1
+; CHECK-P7-NEXT:  .LBB0_10: # %L.B0003
+; CHECK-P7-NEXT:    addi 1, 1, 48
+; CHECK-P7-NEXT:    ld 0, 16(1)
+; CHECK-P7-NEXT:    mtlr 0
+; CHECK-P7-NEXT:    blr
 L.entry:
   %value.addr = alloca i16, align 2
   store i16 -32477, i16* %value.addr, align 2

Modified: llvm/trunk/utils/UpdateTestChecks/asm.py
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/utils/UpdateTestChecks/asm.py?rev=364775&r1=364774&r2=364775&view=diff
==============================================================================
--- llvm/trunk/utils/UpdateTestChecks/asm.py (original)
+++ llvm/trunk/utils/UpdateTestChecks/asm.py Mon Jul  1 07:37:48 2019
@@ -215,8 +215,8 @@ def scrub_asm_powerpc(asm, args):
   asm = common.SCRUB_WHITESPACE_RE.sub(r' ', asm)
   # Expand the tabs used for indentation.
   asm = string.expandtabs(asm, 2)
-  # Stripe unimportant comments
-  asm = SCRUB_LOOP_COMMENT_RE.sub(r'', asm)
+  # Stripe unimportant comments, but leave the token '#' in place.
+  asm = SCRUB_LOOP_COMMENT_RE.sub(r'#', asm)
   # Strip trailing whitespace.
   asm = common.SCRUB_TRAILING_WHITESPACE_RE.sub(r'', asm)
   return asm




More information about the llvm-commits mailing list