[testsuite] Add @ lines to check-function-bodies fluff
authorMatthew Malcomson <matthew.malcomson@arm.com>
Wed, 11 Mar 2020 14:06:21 +0000 (14:06 +0000)
committerMatthew Malcomson <matthew.malcomson@arm.com>
Wed, 11 Mar 2020 14:06:21 +0000 (14:06 +0000)
When using `check-function-bodies`, the subroutine `parse_function_bodies` uses
the `fluff` regexp to remove uninteresting assembly lines.

Arm targets generate assembly with some lines prefixed by `@`, these lines are
left by this process.

As an example of some lines prefixed by `@': the assembly output from the
`stacktest1` function in "bfloat16_simd_3_1.c" is:

        .align  2
        .global stacktest1
        .arch armv8.2-a
        .syntax unified
        .arm
        .fpu neon-fp-armv8
        .type   stacktest1, %function
stacktest1:
        @ args = 0, pretend = 0, frame = 8
        @ frame_needed = 0, uses_anonymous_args = 0
        @ link register save eliminated.
        sub     sp, sp, #8
        add     r3, sp, #6
        vst1.16 {d0[0]}, [r3]
        vld1.16 {d0[0]}, [r3]
        add     sp, sp, #8
        @ sp needed
        bx      lr
        .size   stacktest1, .-stacktest1

It seems that previous uses of `check-function-bodies` in the arm backend have
avoided problems with such lines since they use the `...` regexp in each place
such fluff occurs.

I'm currently writing a patch that I'd like to match the entire function body,
so I'd like to remove such `@` lines automatically.

gcc/testsuite/ChangeLog:

2020-03-11  Matthew Malcomson  <matthew.malcomson@arm.com>

* lib/scanasm.exp (parse_function_bodies): Lines starting with '@' also
counted as fluff.

gcc/testsuite/ChangeLog
gcc/testsuite/lib/scanasm.exp

index f43da846ec19b33c409b756e67aa3c3f15497d65..0e8d77ab9ddf01545ddf1fc9cfdb66b5bd9df43a 100644 (file)
@@ -1,3 +1,8 @@
+2020-03-11  Matthew Malcomson  <matthew.malcomson@arm.com>
+
+       * lib/scanasm.exp (parse_function_bodies): Lines starting with '@' also
+       counted as fluff.
+
 2020-03-11  Richard Wai  <richard@annexi-strayline.com>
 
        * gnat.dg/subpools1.adb: New test.
index 5ca58d4042027683da12bc2a1d161195cd6439e7..f7d27735112f8edd8a39a326020c3d08dd36e765 100644 (file)
@@ -569,7 +569,7 @@ proc parse_function_bodies { filename result } {
     set terminator {^\s*\.size}
 
     # Regexp for lines that aren't interesting.
-    set fluff {^\s*(?:\.|//)}
+    set fluff {^\s*(?:\.|//|@)}
 
     set fd [open $filename r]
     set in_function 0