[llvm-branch-commits] [clang] [Serialization] Code cleanups and polish 83233 (PR #83237)
Chuanqi Xu via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Apr 6 23:08:03 PDT 2024
ChuanqiXu9 wrote:
Thanks for the reduced test case. It is pretty helpful. I've added it to the current patch.
The root cause of the issue comes from an oversight in https://github.com/llvm/llvm-project/pull/83108/files#diff-dffd10772d07fb8c737cdf812839afa0173447c4812698c0c19618c34d92daddR806-R829. That we calculate the ODR Hash for class template specialization twice. Then for the example you described, the linear recursive computation becomes to somewhat similar to fibonacci computation:
```
wrap<40> -> wrap<39> -> wrap<38> -> ...
| -> wrap<38>
-> wrap<39> -> wrap<38>
-> wrap<38>
```
This test case passes quickly now after I remove the duplicated ODR computation.
https://github.com/llvm/llvm-project/pull/83237
More information about the llvm-branch-commits
mailing list