fpetrogalli added a comment.
In D141581#4056464 <https://reviews.llvm.org/D141581#4056464>, @lebedev.ri
wrote:
> Why is it not sufficient to link to `RISCVTargetParserTableGen`, but is
> sufficient to link to `LLVMTargetParser`?
This is because the sources of clangBasic and clangDriver might be compiled
before LLVMTargetParser is ready. In this case, compilation would fail because
both libraries include the header file `llvm/TargetParser/RISCVTargetParser.h`,
which needs the `inc` file generated by `RISCVTargetParserTableGen`.
// quoting code from llvm/TargetParser/RISCVTargetParser.h
enum CPUKind : unsigned {
#define PROC(ENUM, NAME, FEATURES, DEFAULT_MARCH) CK_##ENUM,
#define TUNE_PROC(ENUM, NAME) CK_##ENUM,
#include "llvm/TargetParser/RISCVTargetParserDef.inc"
};
> Does `RISCVTargetParserTableGen` itself not link to `LLVMTargetParser`?
Nope, there is no "linking" between these two components. It is just that
`LLVMTargetParser` requires `RISCVTargetParserTableGen`. Therefore, if we say
that `clangDriver` and `clangBasic` depend on `LLVMTargetParser` we make sure
that the inclusion of the tablegen-generated file resolves correctly.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D141581/new/
https://reviews.llvm.org/D141581
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits