koparasy wrote:

Thanks @andykaylor, agreed!

Your comments fall into two categories:

1. Target-derived — CXXABI, size_t/guard width, isOSDarwin, comdat/Wasm. These 
all follow from the triple, which is already in the module. I'll build the 
LowerModule's TargetInfo from the module triple instead of the invocation
2.  Genuine LangOpts flags (e.g. Exceptions (506)). These have no module 
representation today, so I'll serialize them at CIRGen, following the pattern 
from #215921.

One clarification on the mechanism: LowerModule is really a derived holder. 
It's job is turning the triple into a `clang::TargetInfo` and caching the ABI 
lowering info. I read your comments as: "keep LowerModule, but construct it 
from the module's attributes (triple + serialized facts) rather than the 
invocation". Is that what you have in mind, or would you rather the passes read 
the attributes directly without a LowerModule at all?

https://github.com/llvm/llvm-project/pull/219048
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to