Jyotsna Verma
2012-Aug-28 18:01 UTC
[LLVMdev] TableGen backend support to express relations between instruction
Hi Jakob, Here is the first draft of the patch to add TableGen backend support for the instruction mapping tables. Please take a look and let me know your suggestions. As of now, I create one mapping table per relation which results into a long .inc file. So, I'm planning to combine everything into a single table and will include APIs (one per relation) to query from this table. Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma Sent: Tuesday, August 21, 2012 12:42 PM To: 'Jakob Stoklund Olesen' Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen related question for the Hexagon backend Sounds good. I've started adding TableGen backend support to emit relationship table into a .inc file. Hoping to finish it soon. Thanks for all your help. -Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk] Sent: Tuesday, August 21, 2012 11:28 AM To: Jyotsna Verma Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen related question for the Hexagon backend On Aug 20, 2012, at 9:22 PM, Jyotsna Verma <jverma at codeaurora.org> wrote:> Jakob, > > One more question. You had suggested 'ValueCols' as of type > list<list<string> >. Does the TableGen know how to extract it? It > appears to me that we may have to add support for that.You just start from getValueAsListInit() and go from there. /jakob _______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev -------------- next part -------------- A non-text attachment was scrubbed... Name: 0001-Add-TableGen-support-to-create-relationship-maps-bet.patch Type: application/octet-stream Size: 18976 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20120828/76cff500/attachment.obj>
Hal Finkel
2012-Aug-28 18:27 UTC
[LLVMdev] TableGen backend support to express relations between instruction
Jyotsna, I hadn't been following this, so I apologize if this has already been provided, but can you give a quick example of how this functionality is used? Thanks in advance, Hal On Tue, 28 Aug 2012 13:01:17 -0500 "Jyotsna Verma" <jverma at codeaurora.org> wrote:> Hi Jakob, > > Here is the first draft of the patch to add TableGen backend support > for the instruction mapping tables. Please take a look and let me > know your suggestions. As of now, I create one mapping table per > relation which results into a long .inc file. So, I'm planning to > combine everything into a single table and will include APIs (one per > relation) to query from this table. > > Thanks, > Jyotsna > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. > > > -----Original Message----- > From: llvmdev-bounces at cs.uiuc.edu > [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma > Sent: Tuesday, August 21, 2012 12:42 PM > To: 'Jakob Stoklund Olesen' > Cc: llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] TableGen related question for the Hexagon > backend > > Sounds good. I've started adding TableGen backend support to emit > relationship table into a .inc file. Hoping to finish it soon. > > Thanks for all your help. > > -Jyotsna > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. > > > -----Original Message----- > From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk] > Sent: Tuesday, August 21, 2012 11:28 AM > To: Jyotsna Verma > Cc: llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] TableGen related question for the Hexagon > backend > > > On Aug 20, 2012, at 9:22 PM, Jyotsna Verma <jverma at codeaurora.org> > wrote: > > > Jakob, > > > > One more question. You had suggested 'ValueCols' as of type > > list<list<string> >. Does the TableGen know how to extract it? It > > appears to me that we may have to add support for that. > > You just start from getValueAsListInit() and go from there. > > /jakob > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
Jyotsna Verma
2012-Aug-28 19:11 UTC
[LLVMdev] TableGen backend support to express relations between instruction
Hi Hal, I will try to explain the functionality using a simple example. Let's say that we have three formats for 'ADD' instruction and we want to relate them. ADD - non-predicated form ADD_pt : predicate true ADD_pf : predicate false We can define the relationship between the non-predicated instructions and their predicate formats as follows: def getPredOpcode : InstrMapping { // InstrMapping is a new class defined in Target.td // Used to filter instructions that have this kind of relationship let FilterClass = "PredRel"; // Instructions with the same BaseOpcode value form a row. let RowFields = ["BaseOpcode"]; // Instructions with the same predicate sense form a column. let ColFields = ["PredSense"]; // The key column is the unpredicated instructions. let KeyCol = ["nopred"]; // Value columns are PredSense=true and PredSense=false let ValueCols = [["true"], ["false"]]; } Instructions need to set some fields in order for the TableGen to relate them using the information provided in 'getPredOpcode'. Def ADD: PredRel { let BaseOpcode = "ADD"; let PredSense = "nopred"; } Def ADD_pt: PredRel { let BaseOpcode = "ADD"; let PredSense = "true"; } Def ADD_pf: PredRel { let BaseOpcode = "ADD"; let PredSense = "false"; } Here, BaseOpcode and PredSense are the new fields added to the (Hexagon) Instructions. Other targets can define their own relations and add new fields if necessary. TableGen will output relations as a table which can be queried using a function getPredOpcode(Opcode, predsense) { If (predsense == true) return getPredOpcodeTable[Opcode][0] if (predsense == false) return getPredOpcodeTable[Opcode][1] } Let me know if something is not clear and I will try to explain it further. Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: Hal Finkel [mailto:hfinkel at anl.gov] Sent: Tuesday, August 28, 2012 1:27 PM To: Jyotsna Verma Cc: 'Jakob Stoklund Olesen'; llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen backend support to express relations between instruction Jyotsna, I hadn't been following this, so I apologize if this has already been provided, but can you give a quick example of how this functionality is used? Thanks in advance, Hal On Tue, 28 Aug 2012 13:01:17 -0500 "Jyotsna Verma" <jverma at codeaurora.org> wrote:> Hi Jakob, > > Here is the first draft of the patch to add TableGen backend support > for the instruction mapping tables. Please take a look and let me know > your suggestions. As of now, I create one mapping table per relation > which results into a long .inc file. So, I'm planning to combine > everything into a single table and will include APIs (one per > relation) to query from this table. > > Thanks, > Jyotsna > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. > > > -----Original Message----- > From: llvmdev-bounces at cs.uiuc.edu > [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma > Sent: Tuesday, August 21, 2012 12:42 PM > To: 'Jakob Stoklund Olesen' > Cc: llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] TableGen related question for the Hexagon > backend > > Sounds good. I've started adding TableGen backend support to emit > relationship table into a .inc file. Hoping to finish it soon. > > Thanks for all your help. > > -Jyotsna > -- > Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. > > > -----Original Message----- > From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk] > Sent: Tuesday, August 21, 2012 11:28 AM > To: Jyotsna Verma > Cc: llvmdev at cs.uiuc.edu > Subject: Re: [LLVMdev] TableGen related question for the Hexagon > backend > > > On Aug 20, 2012, at 9:22 PM, Jyotsna Verma <jverma at codeaurora.org> > wrote: > > > Jakob, > > > > One more question. You had suggested 'ValueCols' as of type > > list<list<string> >. Does the TableGen know how to extract it? It > > appears to me that we may have to add support for that. > > You just start from getValueAsListInit() and go from there. > > /jakob > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev-- Hal Finkel Postdoctoral Appointee Leadership Computing Facility Argonne National Laboratory
Jyotsna Verma
2012-Aug-31 15:11 UTC
[LLVMdev] TableGen backend support to express relations between instruction
Hi Jakob, Did you get a chance to look at the patch? Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma Sent: Tuesday, August 28, 2012 1:01 PM To: 'Jakob Stoklund Olesen' Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen backend support to express relations between instruction Hi Jakob, Here is the first draft of the patch to add TableGen backend support for the instruction mapping tables. Please take a look and let me know your suggestions. As of now, I create one mapping table per relation which results into a long .inc file. So, I'm planning to combine everything into a single table and will include APIs (one per relation) to query from this table. Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma Sent: Tuesday, August 21, 2012 12:42 PM To: 'Jakob Stoklund Olesen' Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen related question for the Hexagon backend Sounds good. I've started adding TableGen backend support to emit relationship table into a .inc file. Hoping to finish it soon. Thanks for all your help. -Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk] Sent: Tuesday, August 21, 2012 11:28 AM To: Jyotsna Verma Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen related question for the Hexagon backend On Aug 20, 2012, at 9:22 PM, Jyotsna Verma <jverma at codeaurora.org> wrote:> Jakob, > > One more question. You had suggested 'ValueCols' as of type > list<list<string> >. Does the TableGen know how to extract it? It > appears to me that we may have to add support for that.You just start from getValueAsListInit() and go from there. /jakob _______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Jyotsna Verma
2012-Aug-31 15:27 UTC
[LLVMdev] TableGen backend support to express relations between instruction
Jakob, I didn't notice your response at llvm-commits at cs.uiuc.edu. I will work on your comments and send out the revised patch. Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma Sent: Friday, August 31, 2012 10:12 AM To: 'Jakob Stoklund Olesen' Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen backend support to express relations between instruction Hi Jakob, Did you get a chance to look at the patch? Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma Sent: Tuesday, August 28, 2012 1:01 PM To: 'Jakob Stoklund Olesen' Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen backend support to express relations between instruction Hi Jakob, Here is the first draft of the patch to add TableGen backend support for the instruction mapping tables. Please take a look and let me know your suggestions. As of now, I create one mapping table per relation which results into a long .inc file. So, I'm planning to combine everything into a single table and will include APIs (one per relation) to query from this table. Thanks, Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Jyotsna Verma Sent: Tuesday, August 21, 2012 12:42 PM To: 'Jakob Stoklund Olesen' Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen related question for the Hexagon backend Sounds good. I've started adding TableGen backend support to emit relationship table into a .inc file. Hoping to finish it soon. Thanks for all your help. -Jyotsna -- Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum. -----Original Message----- From: Jakob Stoklund Olesen [mailto:stoklund at 2pi.dk] Sent: Tuesday, August 21, 2012 11:28 AM To: Jyotsna Verma Cc: llvmdev at cs.uiuc.edu Subject: Re: [LLVMdev] TableGen related question for the Hexagon backend On Aug 20, 2012, at 9:22 PM, Jyotsna Verma <jverma at codeaurora.org> wrote:> Jakob, > > One more question. You had suggested 'ValueCols' as of type > list<list<string> >. Does the TableGen know how to extract it? It > appears to me that we may have to add support for that.You just start from getValueAsListInit() and go from there. /jakob _______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev _______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Apparently Analagous Threads
- [LLVMdev] TableGen backend support to express relations between instruction
- [LLVMdev] TableGen backend support to express relations between instruction
- [LLVMdev] TableGen related question for the Hexagon backend
- [LLVMdev] TableGen related question for the Hexagon backend
- [LLVMdev] TableGen related question for the Hexagon backend