tree a0c8c41ee3e717b24f89a9567ecf49303d7e8657
parent 4ba27780d34916d4a856e6593035b15a5cace56e
author Dominik Steenken <dost@de.ibm.com> 1746182578 +0200
committer GitHub <noreply@github.com> 1746182578 +0200
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsFcBAABCAAQBQJoFKGyCRC1aQ7uu5UhlAAAgzIQAGwHAZsQg08VlbREkN2KDnpD
 eIbTVRbtgKGFniMfZjxwVQf2WxZ7SWkuqZoHywqDoKqhtiTIy9QK9AEUxpbL/YhP
 aps4zYfxNO17PpKJco4U58Al6FPX2FbFXoji9Azai0cAT34lu1/NjzW95jKOD3uV
 wNud9hxJyfW4BlF6MNhzbc1wbISX2NlmqRihSFDKRc5YXBJ00NtTviXcGD5C4XAV
 +IUZgY92ghp4Hg9h8pEc1oiExjgY6+BHMya3Qk+PzMUU08p/GDk2PS7fQDh5+/lK
 ay2Z6VwnB2MluWM1PeldyfTqffqXv2bwatQHBJbltU9FKnO/Gy4Tc69/sDJpzNI9
 RHMLc0A6pk+kgnE+JYkwoYlxbRxi+5cCpxe1WvV/rRvGhiuE1WLl64C7ZymtronD
 UwJji9E90H4PoYy2us67dfWP4ecMrsviR528N6E5s0q3fIz9upK1gJhImSGqwMJF
 KZPfAvZnREhngTMZkX2cqdMwxjv9lMKk1exkASeZeFVcfx5JsiMqYDJwQOxqtf/c
 AhsVXxRca5ef/NN+f95hMwV+zF4oghFHvnl1sjvXnCxKLF+h9LxDVRyrNG4TPsf/
 VFZ44YB0Cnpay8yDgaqqeB6r8tQJ12HSspQaqdbkEo7TiKZpmC+In0a9PV3LFII2
 5JlrnYym/dXjf09x1ZIg
 =5x4r
 -----END PGP SIGNATURE-----
 

[SystemZ] Add proper mcount handling (#135767)

When compiling with `-pg`, the `EntryExitInstrumenterPass` will insert
calls to the glibc function `mcount` at the begining of each
`MachineFunction`.

On SystemZ, these calls require special handling:

- The call to `mcount` needs to happen at the beginning of the prologue.
- Prior to the call to `mcount`, register `%r14`, the return address of
the callee function, must be stored 8 bytes above the stack pointer
`%r15`. After the call to `mcount` returns, that register needs to be
restored.

This commit adds some special handling to the EntryExitInstrumenterPass
that keeps the insertion of the mcount function into the module, but
skips over insertion of the actual call in order to perform this
insertion in the `emitPrologue` function. There, a simple sequence of
store/call/load is inserted, which implements the above.

The desired change in the `EntryExitInstrumenterPass` necessitated the
addition of a new attribute and attribute kind to each function, which
is used to trigger the postprocessing, aka call insertion, in
`emitPrologue`. Note that the new attribute must be of a different kind
than the `mcount` atribute, since otherwise it would replace that
attribute and later be deleted by the code that intended to delete
`mcount`. The new attribnute is called `insert-mcount`, while the
attribute kind is `systemz-backend`, to clearly mark it as a
SystemZ-specific backend concern.

This PR should address issue #121137 . The test inserted here is derived
from the example given in that issue.