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
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to