summaryrefslogtreecommitdiffstats
path: root/llvm/docs/TableGen/Deficiencies.rst
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/docs/TableGen/Deficiencies.rst')
-rw-r--r--llvm/docs/TableGen/Deficiencies.rst31
1 files changed, 31 insertions, 0 deletions
diff --git a/llvm/docs/TableGen/Deficiencies.rst b/llvm/docs/TableGen/Deficiencies.rst
new file mode 100644
index 00000000000..a00aecd342d
--- /dev/null
+++ b/llvm/docs/TableGen/Deficiencies.rst
@@ -0,0 +1,31 @@
+=====================
+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.
OpenPOWER on IntegriCloud