<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/66059>66059</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            [Inliner] Should we inline llvm.frameaddress?
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue,
            llvm:optimizations
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          bzEq
      </td>
    </tr>
</table>

<pre>
    For code
```c++
#include <iostream>

void foo() {
  std::cout << __builtin_frame_address(0) << std::endl;
}

int main() {
 std::cout << __builtin_frame_address(0) << std::endl;
  foo();
  return 0;
}
```
With `-O2`, the output is
```
0x7ffd0501a2c0
0x7ffd0501a2a0
```
With `-O3`, the output is
```
0x7ffd97138270
0x7ffd97138270
```
We have `InlinerPass` enabled at `O3`, which inlines callee's `llvm.frameaddress`. The different behaviors at `O2` and `O3` affects IBM OpenXL C/C++ compiler when compiling and running `compiler-rt/test/asan/TestCases/Posix/stack-overflow.cpp`.
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJysVN-L4zYQ_mvGL0OCPEqc9YMfdpMzHLTcQQ_at0WWxrFaRUolObneX1_kZPeO3tJSOBCWNb--T_N5rFKyR8_cwfYJtodKzXkKsRu-vPuzGoL5q-tDRB0MgziAeIRG3JYGeirrZiVpvXazYQS5tyHlyOoE8t3dvTwvwRocQwB6AGoRdvdkxJQNyEeQjzrMuVQAucfn52G2Llv_PEZ14mdlTOSUgB7Ekn6Lek1lbxzIFz67w7fI1mc8Keu_Q_7hwPj1gt_YIuc5ehRv8Htp5-34q80TQiNWH6jYaI95YgxzPs8ZbXozR3zejaMRW1Er0m_YlPgPKPk_odpdLR9o9y-2f0IxTurCBe29d9Zz_KhSgkYgezU4Nqhycb4yuU5WT2iX2IRaOccMtEslyLnLab0I86JLI9b4aWI0dhw5ss848KQuNsT0Urh0E5U3ryioxpF1Tvj-6Wf8cGb_20-4B-r3t68adTidreOI14n9_WT9cakRZ-_LexmCe9gqZqA-cyqbSsoD9Z845b1KnID6jyHZz0B9ykr_sQoXjqML17U-nwv7ynTStLJVFXd10262dS3atpq6QdOW5EY2RtZiaLVo2k3TmHbDrWo0icp2JEiKtibRylq262GoWyVoeBjYKDYKNoJPyrr10rYQj5VNaeauacS2rZwa2KVl8ok8X3FxAhHQHohKDsjHcM72ZL-obINPxbk9VLErztUwHxNshLMpp68Q2Wa3_E_uasP2gL9MYXYGr3yXFb_XUfbVHF035XxOZbSoB-qPNk_zsNbhBNQvhG7b6hzD76xLvxfSpcvLpf4OAAD___hAaDY">