Lu Mitnick
2011-Mar-09 22:13 UTC
[LLVMdev] Question about TableGen when adding LLVM Backend.
Hello all, I have some question about usage of TableGen when adding a new LLVM Backend. There are three place to use TableGen in basic steps of document "Writing an LLVM Compiler Backend": 2. Describe the register set of the target. Use "TableGen" to generate code for register definition, register aliases, and register classes from a target-specific RegisterInfo.td input file. 3. Describe the instruction set of the target. Use "TableGen" to generate code for target-specific instructions from target-specific versions of TargetInstrFormats.td andTargetInstrInfo.td. 4. Describe the selection and conversion of the LLVM IR from a Directed Acyclic Graph (DAG) representation of instructions to native target-specific instructions. Use "TableGen" to generate code that matches patterns and selects instructions based on additional information in a target-specific version of TargetInstrInfo.td. I have already read the document "TableGen Fundamentals" and write correspond .td files in each steps. However I don't know which TableGen options should I use in 2, 3 or 4 steps as above. Would anyone mind to tell me?? thanks a lot yi-hong -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110310/dec7192e/attachment.html>
Jakob Stoklund Olesen
2011-Mar-09 22:44 UTC
[LLVMdev] Question about TableGen when adding LLVM Backend.
On Mar 9, 2011, at 2:13 PM, Lu Mitnick wrote:> Hello all, > > I have some question about usage of TableGen when adding a new LLVM Backend. There are three place to use TableGen in basic steps of document "Writing an LLVM Compiler > Backend": > > 2. Describe the register set of the target. Use "TableGen" to generate code for register definition, register aliases, and register classes from a target-specific RegisterInfo.td input file. > > 3. Describe the instruction set of the target. Use "TableGen" to generate code for target-specific instructions from target-specific versions of TargetInstrFormats.td andTargetInstrInfo.td. > > 4. Describe the selection and conversion of the LLVM IR from a Directed Acyclic Graph (DAG) representation of instructions to native target-specific instructions. Use "TableGen" to generate code that matches patterns and selects instructions based on additional information in a target-specific version of TargetInstrInfo.td. > > I have already read the document "TableGen Fundamentals" and write correspond .td files in each steps. However I don't know which TableGen options should I use in 2, 3 or 4 steps as above. Would anyone mind to tell me??Look at Makefile.rules in the LLVM top-level directory. There is a bunch of targets executing $(TableGen). You can also run 'make VERBOSE=1' to see the commands used to build the existing targets. /jakob
Lu Mitnick
2011-Mar-10 04:15 UTC
[LLVMdev] Question about TableGen when adding LLVM Backend.
Hello Jakob, Is this means that TableGen execution is handled in Makefile. Porting programmer doesn't need to execute TableGen by hand? thanks 2011/3/10 Jakob Stoklund Olesen <stoklund at 2pi.dk>> > On Mar 9, 2011, at 2:13 PM, Lu Mitnick wrote: > > > Hello all, > > > > I have some question about usage of TableGen when adding a new LLVM > Backend. There are three place to use TableGen in basic steps of document > "Writing an LLVM Compiler > > Backend": > > > > 2. Describe the register set of the target. Use "TableGen" to generate > code for register definition, register aliases, and register classes from a > target-specific RegisterInfo.td input file. > > > > 3. Describe the instruction set of the target. Use "TableGen" to generate > code for target-specific instructions from target-specific versions of > TargetInstrFormats.td andTargetInstrInfo.td. > > > > 4. Describe the selection and conversion of the LLVM IR from a Directed > Acyclic Graph (DAG) representation of instructions to native target-specific > instructions. Use "TableGen" to generate code that matches patterns and > selects instructions based on additional information in a target-specific > version of TargetInstrInfo.td. > > > > I have already read the document "TableGen Fundamentals" and write > correspond .td files in each steps. However I don't know which TableGen > options should I use in 2, 3 or 4 steps as above. Would anyone mind to tell > me?? > > Look at Makefile.rules in the LLVM top-level directory. There is a bunch of > targets executing $(TableGen). > > You can also run 'make VERBOSE=1' to see the commands used to build the > existing targets. > > /jakob > >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20110310/44221788/attachment.html>
Seemingly Similar Threads
- [LLVMdev] Question about TableGen when adding LLVM Backend.
- [LLVMdev] Question about TableGen when adding LLVM Backend.
- [LLVMdev] Concerning not relevant argument count in TableGen Patterns.
- [LLVMdev] Question about porting LLVM - code selection without assembler feature
- increment in tablegen