ChuanqiXu9 wrote:

Would you like to explain more why this fail previously in more detail?

Also I am thinking if we can make the process more efficiently:
(1) Can we avoid the visitor in the writing process?
(2) Can we delay the loading of lambdas to the load of definitions of the 
functions?

I immediately expectation is that (1) is possible but (2) may not be not safe.

For (1), my idea is to record/register the information during the writing of 
LambdaExpr in ASTWriterStmt and then we can write this record after we write 
all the decls and types. Then we need to read this record eagerly. Maybe we can 
optimize it further by adding a slot in FunctionDecl to record the offset of 
such informations. So we can avoid the eager linear reading process.

For (2), whether or not it is safe is, can we we load the lambdas without 
loading the definition of the functions? If not, we can add a code when getting 
the definition of the functions like:

```
if (lambdas not loaded)
     getCanonicalDecl()->loadLambdas();
```

Then we can delay the loading of the lambdas to make it more efficient.


https://github.com/llvm/llvm-project/pull/109167
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to