<table border="1" cellspacing="0" cellpadding="8">
<tr>
<th>Issue</th>
<td>
<a href=https://github.com/llvm/llvm-project/issues/129519>129519</a>
</td>
</tr>
<tr>
<th>Summary</th>
<td>
[bolt][relocation] In rewiteInstance, an error relocation is generated
</td>
</tr>
<tr>
<th>Labels</th>
<td>
BOLT
</td>
</tr>
<tr>
<th>Assignees</th>
<td>
</td>
</tr>
<tr>
<th>Reporter</th>
<td>
WangJee
</td>
</tr>
</table>
<pre>
In the RISC V architecture, when rewirteInstance.cpp processes relocation, In the following code, the final value of the variable Value is 0x004006B7ffb08617, as shown in the following assembly, which is two consecutive instructions; but the auip and load instructions in this program are not two consecutive instructions, their correct values should be 0x0044e63603ffb08617, so the relocation result is incorrect, which eventually leads to segmentation failure.
```
ErrorOr<uint64_t> Value =
BC->getUnsignedValueAtAddress(Rel.getOffset(), RelSize);
```
```
**_7bde24: ffb08617 auipc a2, 0xffb08_**
7bde28: 004006b7 lui a3, 0x400
7bde2c: ffbc0597 auipc a1, 0xffbc0
7bde30: ff8c9717 auipc a4, 0xff8c9
7bde34: ff8c9797 auipc a5, 0xff8c9
7bde38: fd070713 addi a4, a4, -0x30
7bde3c: cdb87057 vsetivli zero, 0x10, e64, m8, ta, ma
7bde40: 02077407 vle64.v v8, (a4)
7bde44: 5cc58593 addi a1, a1, 0x5cc
7bde48: 04c78713 addi a4, a5, 0x4c
7bde4c: 08058793 addi a5, a1, 0x80
7bde50: 0207f427 vse64.v v8, (a5)
7bde54: 02077407 vle64.v v8, (a4)
7bde58: ff8c9717 auipc a4, 0xff8c9
_**7bde5c: 44e63603 ld a2, 0x44e(a2)**_
7bde60: 10058793 addi a5, a1, 0x100
7bde64: 0207f427 vse64.v v8, (a5)
```
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVV2P4yYU_TXkBU2E-bDxgx-S-ZC2qrTSbLt9HGF87VAREwHOzOyvr8AZO52ZVt1GVkwI5557DheuCsEMI0CDxB6Ju42a4sH55g81Dr8AbFrXvTZfRhwPgB-_fLvF37Hy-mAi6Dh5QPQWPx9gxB6ejY_wZQxRjRq2-nTCJ-80hAABe7BOq2jcmACXcL2z1j2bccDadTlSnjWjsvis7ATY9XnqrLxRrQX8Pc-agMkLIZyQcl_1fUtkWVQJrgIOB_c8YvOeQIUAx9a-zukafUhB4rPD2o0B9BTNGbAZQ_STTlkGxPa4nWIOoyZzwmrssHWq-9uqmciEpHTw6oiVBzy6-O-hZ6HGY-28Bx1nsQGje4okQXK_DMLBTbbDLcyCOZSsJOxacnA5xdVf7CFMNiZ9ZrwQrKrhDGOclLWv2ILqAo4OBxiOMMYZ3StjJw9bRHbpKcnlIbt7753_6hG7ncwYS_4UEbu_7Ahid4jscP7sb28Qux8g_j7mwurykl3cdZ2HEBCVj2C3A8SvfR8gIioRrVOGj2C_mR-QfrH9O3KM300gmp6nqu2AcsR2-M2UnAMiddo0nd40xSYv-f-nGZYDZqhM0LmU2gVqJ5OAbAZyQtb1-kKliag_UhULlV4xjMwYqevqk_T4G0bqesXwFfMJj_gUk7X0HalIVbAF03VmoZm_b8gLu0ovS9JdKysiFqpzgGjONkF_gHczX0HSG8oc5ShzHas8Vks4ntUSSqqKkzWchZJvz2mUYYjKlMuaPM-ChdZCivpD8tnXN3eF1its3j-uK_mPmi9m8StUlkwkEbL6SCauyeRqlFiU9ZxeG_VBmbhWJvj_MkTIn6uaS2VnaJb3dlksRd1dHQbOITHSfPLyQVqIyyyzIP_BnOLqZJT8J91ZDvOma1hXs1ptoCkqXhDCiKw3h4aXda9U3fOCl7KuK61UXdV9SUrNStmzjWkooYIwwopCSFJvSU9YzajSVBMpKo44gaMydmvt-bh1ftiYECZoClqLot5Y1YINue9Ruv_662-I0tQBfZPW37TTEBAn1oQY1gjRRJt7ZetsROIOif1VcxN3qbmlXri2wmzZiCHdn9cXtQl4gBG8itBtJm-bQ4yngNgO0QdEHwYTD1O71e6I6EOiv7xuTt79mS_1h6wmIPpwEXRu6F8BAAD__yUEOYk">