[BOLT] Use MCInstPrinter in createRetpolineFunctionTag
authorAmir Ayupov <aaupov@fb.com>
Tue, 9 May 2023 01:48:40 +0000 (18:48 -0700)
committerAmir Ayupov <aaupov@fb.com>
Tue, 9 May 2023 01:50:49 +0000 (18:50 -0700)
commit19941b0468c746a8d7ea543600fb491fe9808b04
tree87a43072d770edccd20c1cd270848a145211dd89
parent793c5b12b9a70e363be40c5da2e26d7151fbbf41
[BOLT] Use MCInstPrinter in createRetpolineFunctionTag

Make retpoline functions invariant of X86 register numbers.
retpoline-synthetic.test is known to fail NFC testing due to shifting
register numbers. Use canonical register names instead of tablegen
numbers.

Before:
```
__retpoline_r51_
__retpoline_mem_r58+DATAat0x200fe8
__retpoline_mem_r51+0
__retpoline_mem_r132+0+8*53
```

After:
```
__retpoline_%rax_
__retpoline_mem_%rip+DATAat0x200fe8
__retpoline_mem_%rax+0
__retpoline_mem_%r12+0+8*%rbx
```

Test Plan:
- Revert 67bd3c58c0c7389e39c5a2f4d3b1a30459ccf5b7 that touches X86RegisterInfo.td.
- retpoline-synthetic.test passes in NFC mode with this diff, fails without it.

Reviewed By: #bolt, rafauler

Differential Revision: https://reviews.llvm.org/D150138
bolt/lib/Passes/RetpolineInsertion.cpp
bolt/test/CMakeLists.txt
bolt/test/lit.cfg.py
bolt/test/runtime/X86/retpoline-synthetic.test