Replace its functionality with a TableGen InstrInfo relational
instruction mapping. Although arguably more complex than the TableGen
backend, the relational mapping is a smaller maintenance burden than a
TableGen backend.
Details
Diff Detail
- Repository
- rL LLVM
Event Timeline
Hah, generally looks even neater :)
lib/Target/WebAssembly/WebAssemblyInstrFormats.td | ||
---|---|---|
21 ↗ | (On Diff #169884) | Why does this need to be a string instead of a bit? |
lib/Transforms/IPO/HotColdSplitting.cpp | ||
---|---|---|
153 ↗ | (On Diff #169884) | I think this change has been committed, so you can remove this change |
lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp | ||
---|---|---|
36 ↗ | (On Diff #169884) | Probably should #undef GET_INSTRMAP_INFO afterwards just for completeness. |
lib/Target/WebAssembly/WebAssemblyInstrFormats.td | ||
---|---|---|
21 ↗ | (On Diff #169884) | I specified that the values of the StackBased form the columns of the relational mapping. Internally, TableGen will uses these values to form identifiers in an enum. I guess since the values are used as part of identifiers, TableGen requires them to be strings. It seemed better to make this field a string than to introduce a redundant string field that contains the same information. |
lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp | ||
36 ↗ | (On Diff #169884) | This is done automatically inside WebAssemblyGenInstrInfo.inc. Other includes of TableGen files do not have an undef either. |
lib/Transforms/IPO/HotColdSplitting.cpp | ||
153 ↗ | (On Diff #169884) | Oops! I didn't mean to get this in here. |
Thanks!
utils/TableGen/WebAssemblyDisassemblerEmitter.cpp | ||
---|---|---|
51 ↗ | (On Diff #170222) | This looks a bit arcane.. but it's pre-existing, so fine I guess. |
lib/Target/WebAssembly/WebAssemblyInstrFormats.td | ||
---|---|---|
21 ↗ | (On Diff #169884) | Ah ok, thanks. |