- Previously, we were only generating .h.inc files. We foresee the need to also generate implementations and this is a step towards that.
- Discussed in https://llvm.discourse.group/t/generating-cpp-inc-files-for-dialects/3732/2
- Deviates from the discussion above by generating a default destructor in the .cpp.inc file (and adding a tablegen bit that disables this in case if this is user provided). The Test dialect uses this feature but others appear not to.
- Generating the destructor started as a way to flush out the missing includes (produces a link error), but it is a strict improvement on its own that is worth doing (i.e. by emitting key methods in the .cpp file, we root vtables in one translation unit, which is a non-controversial improvement).
No: I added it because the test dialect does define its own destructor and I needed to support that (it appears to be the only one). Open to other ways to do this, but it seemed neighborly to leave the option open to folks who need it.