zygoloid wrote:

> what the code does is: when we write a on-disk hash table, try to write the 
> imported merged hash table in the same process so that we don't need to read 
> these tables again. However, in line 329 the function will try to omit the 
> data from imported table with the same key which already emitted by the 
> current module file. This is the root cause of the problem.

It's been a while since I looked at this, but as I recall, a fundamental 
assumption of MultiObDiskHashTable is that if we have a lookup result for a key 
K in the current file, that result supersedes any results from dependency 
files. So lookup won't look in those files if we have a local result (they are 
overridden) and merging doesn't take results from those files either.

So I think the problem probably is that when we form a local result, we need to 
(but presumably don't) add all the imported results with the same key to the 
local result.

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