carbon-lang
carbon-lang copied to clipboard
SemIR fidelity when representing rewrite semantics
The toolchain's Semantic IR should start off modeling the full, complex, and rich library-based and generic extension point semantics of Carbon without eliding any layers or rewrites for compile time efficiency. We shouldn't front-load elision or optimization when implementing the designs.
Once we have a full-fidelity implementation, we should work to build an efficient elision, short-circuit, or common case simplification into the design itself sufficient to make the SemIR model efficient. Only if we cannot find a reasonable approach for that should we diverge the SemIR model to optimize its efficiency, and we should preserve full fidelity in an optional mode.
(the brief diff issues should be fixed now, sorry for that)
(Fixed weird mis-merge, sorry about that)
Ping? It's been a while since update...