Terminology: Instance

The other day, I was discussing per-instance metadata with someone and the overloading of the term “instance” was getting confusing:

  • The “instance” in “per-instance metadata” refers to a particular piece of instantiated design – you can point to the area of the chip it uses. There may be many instances of a particular module.
  • The “instance” in InstanceOp means an instantiation site. I don’t know how common it is to refer to an instantiation site as an “instance”.

This gets particularly bad when one is designing a frontend needs to support both while trying to maintain as much terminological consistency with CIRCT as possible, as I am.

Thoughts? Is there alternative terminology I could use?

I don’t know what is correct here, but I use “instance” to mean an InstanceOp and “instance path” to refer to a (potentially fully realized, potentially partial) instance specifier.