vast
vast copied to clipboard
Overridable naming
Prerequisites
- [X] I have read the documentation and the proposed feature is not implemented.
Description
Right now VAST employs a few techniques for naming things. For example, it uses name mangling for declarations, and for some anonymous types, it has to invent names. I would like for users to be able to override the generation of all names. The implied contract here is that the user overrides are trusted to maintain the same scope/uniqueness constraints on the names. The current naming code for all things (operations, types, etc.) should be factored out as providing the default/fallback implementations of these name functions.
An addendum to this issue is that lowering to LLVM IR should also implement some kind of overridable callback mechanism that asks the user to convert a high-level name to an llvm-compatible name. The default implementation is the identity transform.