mirror of
https://github.com/RPCS3/llvm.git
synced 2024-12-29 07:53:33 +00:00
32 lines
1.1 KiB
ReStructuredText
32 lines
1.1 KiB
ReStructuredText
|
=====================
|
||
|
TableGen Deficiencies
|
||
|
=====================
|
||
|
|
||
|
.. contents::
|
||
|
:local:
|
||
|
|
||
|
Introduction
|
||
|
============
|
||
|
|
||
|
Despite being very generic, TableGen has some deficiencies that have been
|
||
|
pointed out numerous times. The common theme is that, while TableGen allows
|
||
|
you to build Domain-Specific-Languages, the final languages that you create
|
||
|
lack the power of other DSLs, which in turn increase considerably the size
|
||
|
and complexity of TableGen files.
|
||
|
|
||
|
At the same time, TableGen allows you to create virtually any meaning of
|
||
|
the basic concepts via custom-made back-ends, which can pervert the original
|
||
|
design and make it very hard for newcomers to understand it.
|
||
|
|
||
|
There are some in favour of extending the semantics even more, but making sure
|
||
|
back-ends adhere to strict rules. Others suggesting we should move to more
|
||
|
powerful DSLs designed with specific purposes, or even re-using existing
|
||
|
DSLs.
|
||
|
|
||
|
Known Problems
|
||
|
==============
|
||
|
|
||
|
TODO: Add here frequently asked questions about why TableGen doesn't do
|
||
|
what you want, how it might, and how we could extend/restrict it to
|
||
|
be more use friendly.
|