mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-03 17:31:50 +00:00
1625937ddb
This is mainly a movement of content around to give place to new content allowing different people to add bits to it in the right place. There is some new content, but mostly to fill the gaps left by text movement. I'm dropping the old syntax documentation as it has the problem of being quickly outdated by changes and largely unnecessary to people not involved in creating the language, but using it, which is the whole point of the documentation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@204351 91177308-0d34-0410-b5e6-96231b3b80d8
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.
|