]> granicus.if.org Git - llvm/commitdiff
[UpdateTestChecks][PowerPC] Avoid empty string when scrubbing loop comments
authorJinsong Ji <jji@us.ibm.com>
Mon, 1 Jul 2019 14:37:48 +0000 (14:37 +0000)
committerJinsong Ji <jji@us.ibm.com>
Mon, 1 Jul 2019 14:37:48 +0000 (14:37 +0000)
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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@364775 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/PowerPC/PR35812-neg-cmpxchg.ll
utils/UpdateTestChecks/asm.py

index aa0e1fc1f3951b4fd8833954897ddfc711a4b0f7..5ecce5ed4d964bf7988f365ccf4a8c939b5a50c7 100644 (file)
 
 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@toc@ha
+; CHECK-NEXT:    addi 3, 3, .Lstr.2@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@toc@ha
+; CHECK-NEXT:    addi 3, 3, .Lstr@toc@l
+; CHECK-NEXT:    b .LBB0_9
+; CHECK-NEXT:  .LBB0_8: # %L.B0005
+; CHECK-NEXT:    addis 3, 2, .Lstr.1@toc@ha
+; CHECK-NEXT:    addi 3, 3, .Lstr.1@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@toc@ha
+; CHECK-P7-NEXT:    addi 3, 3, .Lstr.2@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@toc@ha
+; CHECK-P7-NEXT:    addi 3, 3, .Lstr@toc@l
+; CHECK-P7-NEXT:    b .LBB0_9
+; CHECK-P7-NEXT:  .LBB0_8: # %L.B0005
+; CHECK-P7-NEXT:    addis 3, 2, .Lstr.1@toc@ha
+; CHECK-P7-NEXT:    addi 3, 3, .Lstr.1@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
index ab649497e8af9774e2b245677ab1df2ebb188b01..2dc174e0b4d8256433afb8a5bb6a57d4dba7debd 100644 (file)
@@ -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