DenseMapAPIntKeyInfo is now located in lib/IR/LLVMContextImpl.h.
Moved it into include/ADT/DenseMapInfo.h to use it.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
llvm/include/llvm/ADT/DenseMapInfo.h | ||
---|---|---|
352 | It seems that, it is possible to specify arbitrary key info traits for DenseSet. This specialization might not be desirable for every use case since static_cast<unsigned> discards information. Maybe we want to do this in the Attributor like the way LLVMContextImpl.h was doing it ? |
llvm/include/llvm/ADT/DenseMapInfo.h | ||
---|---|---|
352 | Sorry, I didn't understand what you mean.
This specialization has already been in LLVMContextImpl.h and I didn't change anything. I want to use it in Attributor, but it exists under /lib directory and we were not able to include it directly. |
llvm/include/llvm/ADT/DenseMapInfo.h | ||
---|---|---|
352 | What I was saying is that you made this the default for APInt. I was talking about keeping it as DenseMapAPIntKeyInfo. |
llvm/include/llvm/ADT/DenseMapInfo.h | ||
---|---|---|
352 |
I understood the point. I'm sorry for my misunderstanding. TBH, I'm also not sure whether making it the default is appropriate or not. Hmm..., I feel we should hear from others on this issue.
I'm sorry, I noticed your comment after landing this patch. |
llvm/include/llvm/ADT/DenseMapInfo.h | ||
---|---|---|
352 |
Post review comments are not cause for grief. Git is flexible and we can augment and change things even after a commit. So no worries :)
I think this is appropriate. We had one APInt DenseMapInfo specialization, now we have two, both using the same technique. If you don't like the default, people can specify a different one, but not making the only used one the default seems unhelpful as people then will reimplement something without knowing there is a version available. |
llvm/include/llvm/ADT/DenseMapInfo.h | ||
---|---|---|
352 | Thank you for giving a comment on this! I will leave this as is. |
It seems that, it is possible to specify arbitrary key info traits for DenseSet.
This was what DenseMapAPIntKeyInfo in LLVMContextImpl.h was dong.
It would declare a DenseSet like this:
DenseSet<APInt, DenseMapAPIntKeyInfo>
This specialization might not be desirable for every use case since static_cast<unsigned> discards information.
Maybe we want to do this in the Attributor like the way LLVMContextImpl.h was doing it ?