Release Notes: RegisterScheduler::setDefault removed; by Mehdi Amini
[oota-llvm.git] / docs / TableGen / Deficiencies.rst
1 =====================
2 TableGen Deficiencies
3 =====================
4
5 .. contents::
6    :local:
7
8 Introduction
9 ============
10
11 Despite being very generic, TableGen has some deficiencies that have been
12 pointed out numerous times. The common theme is that, while TableGen allows
13 you to build Domain-Specific-Languages, the final languages that you create
14 lack the power of other DSLs, which in turn increase considerably the size
15 and complexity of TableGen files.
16
17 At the same time, TableGen allows you to create virtually any meaning of
18 the basic concepts via custom-made back-ends, which can pervert the original
19 design and make it very hard for newcomers to understand it.
20
21 There are some in favour of extending the semantics even more, but making sure
22 back-ends adhere to strict rules. Others suggesting we should move to more
23 powerful DSLs designed with specific purposes, or even re-using existing
24 DSLs.
25
26 Known Problems
27 ==============
28
29 TODO: Add here frequently asked questions about why TableGen doesn't do
30 what you want, how it might, and how we could extend/restrict it to
31 be more use friendly.