In D138323#4072561, @nhaehnle wrote:Yes, that's indeed an issue for what you're trying to do. IMHO it is also an issue for the maintainability of these backends as they are today. So I'd say we should try to separate the state-machine generation code from the printing code. It could be moved to CodeGenTarget, though I think it'd be better to keep things slightly more modular and instead split up the current DecoderEmitter into parts:
- A Decoder class contains all the state-machine description. Think of it as an "intermediate representation for a decoder/disassembler": it contains the data describing the decoder, but essentially no logic.
- A separate createDecoder function creates a Decoder given a CodeGenTarget
- The emitDecoder function writes out the generated C++ for a given Decoder object
Does that make sense to you?
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Feed Advanced Search
Advanced Search
Advanced Search
Feb 9 2023
Feb 9 2023
Rot127 added a comment to D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
Jan 19 2023
Jan 19 2023
Rot127 added a comment to D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
Thank you for the feedback!
Its my first time with LLVM so your critique is very valuable for me.
Jan 18 2023
Jan 18 2023
Jan 14 2023
Jan 14 2023
Rot127 added a comment to D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
Thanks for the feedback so far!
Dec 30 2022
Dec 30 2022
Rot127 updated the diff for D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
Removes the PrinterInterface. New language printer should simply inherit from PrinterLLVM.
Nov 24 2022
Nov 24 2022
Rot127 added a comment to D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
In D138323#3948239, @0x59616e wrote:Wouldn't this break the 'open-close principle' and 'Interface segregation principle' ?
Nov 22 2022
Nov 22 2022
Rot127 retitled D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output from {TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output to [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
Nov 18 2022
Nov 18 2022
Rot127 added a comment to D138323: [TableGen] RegisterInfo backend - Add abstraction layer between code generation logic and syntax output.
To test the output after the refactor I used the following simple scripts:
There is now an implementation open for review: https://reviews.llvm.org/D138323
Oct 27 2022
Oct 27 2022
Rot127 added a comment to D136808: Refactor Tblgen DecoderEmitter to allow multiple language output.
In D136808#3888821, @myhsu wrote:
Rot127 added a comment to D136808: Refactor Tblgen DecoderEmitter to allow multiple language output.
In D136808#3888064, @0x59616e wrote:Thanks for this patch !
It is difficult to see the changes you made. Could you separate this into two patches -- the first one contains the all the changes except the functional change; the second one contains the functional change you made.
Rot127 updated the diff for D136808: Refactor Tblgen DecoderEmitter to allow multiple language output.
Add diff of Printer implementation.
Rot127 updated the diff for D136808: Refactor Tblgen DecoderEmitter to allow multiple language output.
Adds the decoder split up/refactor as single diff. separated from the Printer implementation.
Oct 26 2022
Oct 26 2022
Rot127 requested review of D136808: Refactor Tblgen DecoderEmitter to allow multiple language output.