1*9880d681SAndroid Build Coastguard Worker===================== 2*9880d681SAndroid Build Coastguard WorkerTableGen Deficiencies 3*9880d681SAndroid Build Coastguard Worker===================== 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker.. contents:: 6*9880d681SAndroid Build Coastguard Worker :local: 7*9880d681SAndroid Build Coastguard Worker 8*9880d681SAndroid Build Coastguard WorkerIntroduction 9*9880d681SAndroid Build Coastguard Worker============ 10*9880d681SAndroid Build Coastguard Worker 11*9880d681SAndroid Build Coastguard WorkerDespite being very generic, TableGen has some deficiencies that have been 12*9880d681SAndroid Build Coastguard Workerpointed out numerous times. The common theme is that, while TableGen allows 13*9880d681SAndroid Build Coastguard Workeryou to build Domain-Specific-Languages, the final languages that you create 14*9880d681SAndroid Build Coastguard Workerlack the power of other DSLs, which in turn increase considerably the size 15*9880d681SAndroid Build Coastguard Workerand complexity of TableGen files. 16*9880d681SAndroid Build Coastguard Worker 17*9880d681SAndroid Build Coastguard WorkerAt the same time, TableGen allows you to create virtually any meaning of 18*9880d681SAndroid Build Coastguard Workerthe basic concepts via custom-made back-ends, which can pervert the original 19*9880d681SAndroid Build Coastguard Workerdesign and make it very hard for newcomers to understand it. 20*9880d681SAndroid Build Coastguard Worker 21*9880d681SAndroid Build Coastguard WorkerThere are some in favour of extending the semantics even more, but making sure 22*9880d681SAndroid Build Coastguard Workerback-ends adhere to strict rules. Others suggesting we should move to more 23*9880d681SAndroid Build Coastguard Workerpowerful DSLs designed with specific purposes, or even re-using existing 24*9880d681SAndroid Build Coastguard WorkerDSLs. 25*9880d681SAndroid Build Coastguard Worker 26*9880d681SAndroid Build Coastguard WorkerKnown Problems 27*9880d681SAndroid Build Coastguard Worker============== 28*9880d681SAndroid Build Coastguard Worker 29*9880d681SAndroid Build Coastguard WorkerTODO: Add here frequently asked questions about why TableGen doesn't do 30*9880d681SAndroid Build Coastguard Workerwhat you want, how it might, and how we could extend/restrict it to 31*9880d681SAndroid Build Coastguard Workerbe more use friendly. 32