Я работаю над Clang вилкой для AVR: https://github.com/4ntoine/clang/tree/avr-supportМожет ли Clang использовать LLVM TableGen для изготовления заголовков?
AVR подзадач описаны в LLVM бэкэнд вилкой для AVR AVR.td и LLVM TableGen генерирует AVRSubtarget.h в lib/Target/AVR/
I'de любят использовать AVRSubTypeKV
в AVRTargetInfo.hasFeature()
в Targets.cpp от генерируется AVRGenSubtargetInfo.inc
, чтобы проверить, если функция поддерживается CPU (MCU):
// Sorted (by key) array of values for CPU subtype.
extern const llvm::SubtargetFeatureKV AVRSubTypeKV[] = {
{ "at43usb320", "Select the at43usb320 processor", AVR::FeatureAVR31, 0ULL },
{ "at43usb355", "Select the at43usb355 processor", AVR::FeatureAVR3, 0ULL },
{ "at76c711", "Select the at76c711 processor", AVR::FeatureAVR3, 0ULL },
{ "at86rf401", "Select the at86rf401 processor", AVR::FeatureRF401, 0ULL },
{ "at90c8534", "Select the at90c8534 processor", AVR::FeatureAVR2, 0ULL },
{ "at90can128", "Select the at90can128 processor", AVR::FeatureAVR51, 0ULL },
{ "at90can32", "Select the at90can32 processor", AVR::FeatureAVR5, 0ULL },
...
I'v e пытался #include <AVRSubtarget.h>
от LLVM в Targets.cpp, но он не может быть найден.
Так как я могу использовать файлы LLVM TableGen, созданные в Clang?
Я не уверен, что Transforms является правильным каталогом для него, связанным с Targets, а не Transforms. – 4ntoine
@ 4ntoine жаль, что я спешил, когда написал ответ. Вы абсолютно правы. Заголовки должны быть в подкаталоге, связанном с их использованием. Я отредактировал свой ответ. –