search for: tablegenfundamentals

Displaying 20 results from an estimated 25 matches for "tablegenfundamentals".

2014 Mar 18
4
[LLVMdev] TableGen docs
Hi folks, It took a while, but I finally have some bandwidth to look at this. I've been reading the two existing TableGen documents: http://llvm.org/docs/TableGenFundamentals.html http://llvm.org/docs/TableGen/LangRef.html the first is linked from the index, but LangRef is not (though it has some remains in the metadata). I'm wondering what's the relationship between them two. My plan is to have three docs: 1. What is TableGen; No info about language, back-en...
2010 Mar 26
2
[LLVMdev] X86 Target instruction definitions
All, Where are the SSE instructions defined? Specifically, I cannot find the def for ADDSDrr. Aran -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 194 bytes Desc: This is a digitally signed message part. URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20100326/130b2e02/attachment.sig>
2005 Apr 24
0
[LLVMdev] trig language-like code generator generator
...u are starting a new port, we recommend that you write the > instruction selector using the SelectionDAG infrastructure." > > any other things i should know before i write one? You should read these: http://llvm.cs.uiuc.edu/docs/WritingAnLLVMBackend.html http://llvm.cs.uiuc.edu/docs/TableGenFundamentals.html If you're unsure of how things are implemented, take a look at how similar things are done in X86, PowerPC, Alpha or IA64, they all have SelectionDAG-based instruction selectors (*ISelPattern.cpp). If that doesn't clear things up, ask on the list or IRC channel. -- Misha Brukman ::...
2012 Aug 06
2
[LLVMdev] Tablegen foreach
...gt; To: Villmow, Micah > Cc: llvmdev at cs.uiuc.edu (LLVMdev at cs.uiuc.edu) > Subject: Re: [LLVMdev] Tablegen foreach > > I think a multiclass may be a better fit for what you are trying to > do. In fact, this is the canonical example for multiclasses: > <http://llvm.org/docs/TableGenFundamentals.html#multiclass-definitions- > and-instances>. > > --Sean Silva > > On Mon, Aug 6, 2012 at 1:55 PM, Villmow, Micah <Micah.Villmow at amd.com> > wrote: > > I'm trying to find examples of the foreach pattern being used in > tablegen > > files. > >...
2005 May 06
0
[LLVMdev] initialize 'dag' variable and interpret asmstring in tablegen .td file
...nnot find any document on initializing the 'dag' type variable, > and I cannot understand the syntax of "asmstring" either. The DAG operator is just a nested set of parens, e.g. (X (Y Z), Q), where X,Y,Z,Q are tblgen defs. This is described here: http://llvm.cs.uiuc.edu/docs/TableGenFundamentals.html#values > how does the x86 asmwrite interpret the "AsmString" ? The X86 has two asm formats: Intel and AT&T. Things in {}'s get split up and treated as one or the other. The 0 part is AT&T, the 1th part is Intel. It might make it more clear to just say that this...
2012 Aug 06
0
[LLVMdev] Tablegen foreach
I think a multiclass may be a better fit for what you are trying to do. In fact, this is the canonical example for multiclasses: <http://llvm.org/docs/TableGenFundamentals.html#multiclass-definitions-and-instances>. --Sean Silva On Mon, Aug 6, 2012 at 1:55 PM, Villmow, Micah <Micah.Villmow at amd.com> wrote: > I’m trying to find examples of the foreach pattern being used in tablegen > files. > > The problem I am trying to solve is to simplify t...
2005 May 06
1
[LLVMdev] initialize 'dag' variable and interpret asmstring in tablegen .td file
...n initializing the 'dag' type variable, > > and I cannot understand the syntax of "asmstring" either. > > The DAG operator is just a nested set of parens, e.g. (X (Y Z), Q), where > X,Y,Z,Q are tblgen defs. This is described here: > http://llvm.cs.uiuc.edu/docs/TableGenFundamentals.html#values > > > how does the x86 asmwrite interpret the "AsmString" ? > > The X86 has two asm formats: Intel and AT&T. Things in {}'s get split up > and treated as one or the other. The 0 part is AT&T, the 1th part is > Intel. It might make it more...
2005 May 06
2
[LLVMdev] initialize 'dag' variable and interpret asmstring in tablegen .td file
llvm/lib/Target/X86/X86InstrInfo.td: class X86Inst<bits<8> opcod, Format f, ImmType i, dag ops, string AsmStr> : Instruction { .... dag OperandList = ops; string AsmString = AsmStr; } def MOV32mi : Ii32<0xC7, MRM0m, (ops i32mem:$dst, i32imm:$src), "mov{l} {$src, $dst|$dst, $src}">; I cannot find any document on initializing the
2012 Aug 06
2
[LLVMdev] Tablegen foreach
I'm trying to find examples of the foreach pattern being used in tablegen files. The problem I am trying to solve is to simplify the amount of tablegen code I have to produce because each operand of an instruction can be a register or a literal. So for binary, we have 4 instructions, ternary, 8, and quaternary 16 combinations. Instead of writing all the combinations out, I'd like to use
2005 Apr 24
4
[LLVMdev] trig language-like code generator generator
i'd like to know if there is any plan or existing work to add a Aho's trig language like code generator generator? "...If you are starting a new port, we recommend that you write the instruction selector using the SelectionDAG infrastructure." any other things i should know before i write one? thank you.
2012 Aug 06
0
[LLVMdev] Tablegen foreach
...>> Cc: llvmdev at cs.uiuc.edu (LLVMdev at cs.uiuc.edu) >> Subject: Re: [LLVMdev] Tablegen foreach >> >> I think a multiclass may be a better fit for what you are trying to >> do. In fact, this is the canonical example for multiclasses: >> <http://llvm.org/docs/TableGenFundamentals.html#multiclass-definitions- >> and-instances>. >> >> --Sean Silva >> >> On Mon, Aug 6, 2012 at 1:55 PM, Villmow, Micah <Micah.Villmow at amd.com> >> wrote: >> > I'm trying to find examples of the foreach pattern being used in >> table...
2008 Sep 10
0
[LLVMdev] Custom Lowering and fneg
...registers and the instructions(i.e. mul_x2 GPR0, GPR1_neg, GPR2_abs, > which is equivalent to GPR0 = (-GPR1 * abs(GPR2)*2)? No examples I know of, but I don't think there should be any issues using multiclass, as long as there aren't too many possible modifiers; see http://llvm.org/docs/TableGenFundamentals.html and various uses in the code for how that works. -Eli
2008 Sep 10
2
[LLVMdev] Custom Lowering and fneg
So, I have this small test program that I figured would cause no problems but want to test all the various data types and operations with my modified sparc backend. I've been working on LLVM for about 3 days now, so this might be a problem with not knowing enough yet, so thanks for bearing with me. The code that I based my example off of is compiled to LLVM-IR from: void
2008 Sep 10
3
[LLVMdev] Custom Lowering and fneg
...registers and the instructions(i.e. mul_x2 GPR0, GPR1_neg, GPR2_abs, > which is equivalent to GPR0 = (-GPR1 * abs(GPR2)*2)? No examples I know of, but I don't think there should be any issues using multiclass, as long as there aren't too many possible modifiers; see http://llvm.org/docs/TableGenFundamentals.html and various uses in the code for how that works. Thanks, I'll go back to that and see if I can get it to work how I want. -Eli _______________________________________________ LLVM Developers mailing list LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu http://lists.cs.uiuc.edu/mai...
2009 Jan 30
0
[LLVMdev] Writing an LLVM Compiler Backend
...VM, consider reading some documents and looking at some of the presentations here: http://llvm.org/docs/#llvmdesign . You can also see how other backends are implemented in LLVM: http://llvm.org/svn/llvm-project/llvm/trunk/lib/Target/ . You'll want to read about Tablegen: http://llvm.org/docs/TableGenFundamentals.html which will tell you how to write the .td files to describe your target, and then write the correct components (code generator, assembly printer, etc.) for your target. Good luck! Misha -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/p...
2012 May 23
1
[LLVMdev] tblgen for generation of Haskell bindings to LLVM intrinsics
...sses. Now I wonder whether it is better to use tablegen to generate the Haskell code. The tblgen man page says, that tablegen emits C++. This would not be a big problem, since I could let it write C++ code that in turn writes Haskell code. Unfortunately the section "http://llvm.org/docs/TableGenFundamentals.html#backends" is not yet written. Is it possible to use the llvm-tblgen binary without modification or do I have to extend llvm-tblgen or do I have to write my own C++ code that uses some of the functions from the tblgen library? Are there any (simple) examples of custom tblgen backends...
2004 Feb 05
0
[LLVMdev] New TableGen document
As the first tentative step towards documenting the LLVM code generator (and generally closing one of the massive holes in the dox), I just wrote up the "TableGen Fundamentals" document, and uploaded it here: http://llvm.cs.uiuc.edu/docs/TableGenFundamentals.html This describes the basic idea behind TableGen, the type system and expression syntax it uses, why it's useful, etc. If you are interested in TableGen or the LLVM code generator, I would recommend taking a look at it, then sending me feedback. :) The current plan is to continue to flesh...
2006 Sep 01
0
[LLVMdev] New tblgen feature
...c.edu/pipermail/llvm-commits/Week-of-Mon-20060828/037344.html More could be done in the sparc backend if desired, such as factoring out commonality between the float and double patterns, etc, but this isn't a super high priority for me :). The feature is described here: http://llvm.org/docs/TableGenFundamentals.html#multiclass -Chris -- http://nondot.org/sabre/ http://llvm.org/
2012 May 07
1
[LLVMdev] TableGen backend API refactoring.
...orementioned prototype for each one of the backends and all of the backends can be their own nicely self-contained .cpp file. Clang has its own backends, but the makeover would be identical. I'll also take the opportunity to fill in the sorely needed TODO at the end of <http://llvm.org/docs/TableGenFundamentals.html>. Finally :))))) Finally, does anyone foresee me needing to make any changes to be build system? If so, some advice would be appreciated. Any objections? --Sean Silva -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-...
2006 Oct 02
0
[LLVMdev] Instruction descriptions question
..."mov{b} {$src, $dst|$dst, $src}", []>, isSameSize($dst, > $src); We already have something like this, but it's a little more general. The X86 backend hasn't been converted to use it. This is the 'multiclass' facility in tblgen: http://llvm.org/docs/TableGenFundamentals.html#multiclass Basically this lets you use one definition to implement multiple different instructions. For example, most instructions in the sparc target come in "reg,reg" and "reg,imm" forms. As such, it defines: multiclass F3_12<string OpcStr, bits<6> Op3Val,...