search for: tablgen

Displaying 20 results from an estimated 20 matches for "tablgen".

Did you mean: tablegen
2014 Aug 11
2
[LLVMdev] tablegen pattern
...So I tried to define a pattern “ def Pat<( i32 ( llvm.irmod vf432:$src)), (extractelt( mod v4f32:$src ), 0)>”, but it reports ERROR” Cannot use “extractelt” in an output pattern”. I knew I can easily do it via lowering operation by separating the “extractelt” node out. But can I do it via tablgen? Best kevin -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20140811/989a8c06/attachment.html>
2017 Jun 06
2
Putting "tied-to" constraints on virtual registers in SelectionDAGISel's Select() method
...my C++ code 2 getCopyToReg() calls to the same virtual register - this gives me the following error: "getVRegDef assumes a single definition or no definition" later, after instruction selection. Therefore, I try to use 2 virtual registers for the same physical register. I know in TablGen instruction specs we can give "tied-to" constraints on virtual registers of the form: string Constraints = "$regInput = $regOutput"; Can we put such "tied-to" constraints programatically also at instruction selection, in the Select() method of the Selecti...
2020 Jul 15
2
[Beginner] Understanding Tablegen language
...3, Rotate Right via llvm-dev < > llvm-dev at lists.llvm.org> wrote: > > > > Is there a backend to Tablegen which can dump a map of > pattern-to-matched to instruction-to-be-generated? > > --help doesn't seem to indicate anything like that. > > > If you run tablgen with no arguments, it produces the fully expanded > tablegen. You can directly view what ends up getting interpreted there > > -Matt > _______________________________________________ > LLVM Developers mailing list > llvm-dev at lists.llvm.org > https://lists.llvm.org/cgi-bin/ma...
2016 Jan 22
2
meaning of $ in tablegen
What is the meaning of a $ sign in tablgen? Here is an example // Pattern fragments def vextract_sext_i8 : PatFrag<(ops node:$vec, node:$idx), (MipsVExtractSExt node:$vec, node:$idx, i8)>; Taken from https://github.com/llvm-mirror/llvm/blob/fd031a51c35d1781c066a42e221a7ae28610be3f/lib/...
2007 Nov 29
0
[LLVMdev] LLVM on MinGW
...h Cygwin (i.e. "gcc -mno-cygwin") and using Cygwin tools > (make, ...). Of course, I could probably install MSYS/MinGW just to > compile LLVM and produce the libraries. The short answer is: don't use cygwin shell with mingw compiler to build LLVM. Reason actually is: LLVM uses tablgen in it's build process. Tablegen is compiled with mingw for you, thus it won't work in cygwin shell without some extra hacks. There are two possibilities: 1. Use the hack used to cross-compilation of LLVM. In this case you'll need cygwin-built tablgen. However, this won't work out-...
2009 Jan 15
2
[LLVMdev] Use two ComplexPatterns (possible bug of TableGen?)
...:03 Brandner Florian wrote: > I have a patch against llvm 2.4 that fixes this issue, but did not have > the time to post the patch here. I'll do so by tomorrow. here is the patch, still against llvm 2.4. I had a short look on trunk, but it seems that there are several conflicts. Maybe a tablgen expert should have a look at this - I also do not know if there are changes needed for the FastISelEmitter. I hope this is a starting point for you, florian ps: We have a working compiler here that relies on these changes, so it does not seem to break anything, at least for our private backend...
2005 Jul 26
3
[LLVMdev] A compliation target with multiple "profiles"
...quot;. For example, there are totally 32 hardware registers available, but the three profiles, namely: * Low register usage profile - use 8 registers at most * Medium register usage profile - use 16 registers at most * High register useage profile - use 32 registers at most I could define a "TablGen target" for each of the profile: llc -march={low,medium,high} but it's tedious. Is there any alternative way to do it? The maximum number of registers used is just for example, and there are still some minor difference among profiles, e.g. some hardware instructions are not supported...
2007 Oct 05
1
[LLVMdev] Instruction selector internals
...w is the instruction scheduler run (i'm asking since LLVM is modular and it could take place after as well as prior register allocation). > > 1. Is the SelectionDAG selection phase restricted to matching single- > > output > > patterns? > No such restriction. It's just tablgen syntax doesn't support multi- > output nodes. It can be extended if needed. OK. > The current selector is non-optimal. It seems like you have something > else in mind? Oh, OK, it's not a BURG-style selector, didn't notice that. But it is a tree pattern matcher, right? I mean...
2020 Jul 15
2
[Beginner] Understanding Tablegen language
Is there a backend to Tablegen which can dump a map of pattern-to-matched to instruction-to-be-generated? --help doesn't seem to indicate anything like that. On Tue, Jul 14, 2020 at 2:13 PM Rotate Right <rightrotate5 at gmail.com> wrote: > Thanks Matt and Thomas. I will go through them. > > On Tue, Jul 14, 2020, 1:35 PM Matt P. Dziubinski <matdzb at gmail.com> wrote:
2007 Nov 28
5
[LLVMdev] LLVM on MinGW
Hello, I'm trying to use LLVM on Windows, using the MinGW toolchain that comes with Cygwin (gcc -mno-cygwin, not the standalone msys package). Has anyone successfully built LLVM from sources with this toolchain? The ./configure scripts automatically detects a Cygwin environment. I've spent some time trying to let it know that it should compile for MinGW. FWIW, here's what I've
2009 Jan 14
2
[LLVMdev] Use two ComplexPatterns (possible bug of TableGen?)
It seems that it's not allowed to two same 'ComplexPattern's in a 'def', because TableGen generate the same variable names for the two ComplexPatterns. If I understand the source code of TableGen correctly, it's not designed to use more than one ComplexPattern instance (no matter they are the same or not). In the following example, two 'regsw' are used to match
2009 Jan 14
0
[LLVMdev] Use two ComplexPatterns (possible bug of TableGen?)
Alex schrieb: > It seems that it's not allowed to two same 'ComplexPattern's in a 'def', > because TableGen generate the same variable names for the two ComplexPatterns. > If I understand the source code of TableGen correctly, it's not designed to > use more than one ComplexPattern instance (no matter they are the same or not). I've run into this too, the
2009 Jan 16
0
[LLVMdev] Use two ComplexPatterns (possible bug of TableGen?)
...have a patch against llvm 2.4 that fixes this issue, but did not >> have >> the time to post the patch here. I'll do so by tomorrow. > > here is the patch, still against llvm 2.4. I had a short look on > trunk, but it > seems that there are several conflicts. Maybe a tablgen expert > should have a > look at this - I also do not know if there are changes needed for the > FastISelEmitter. > > I hope this is a starting point for you, > florian > > ps: We have a working compiler here that relies on these changes, so > it does > not seem to...
2012 Aug 23
0
[LLVMdev] % in tablegen
...s used in the instruction string. error: unable to find register for '' (which matches register prefix) I have copied an example (not the original). Note that i added %prefix_ before $sp register. Tablegen seems to interpret % as placeholder for inserting register. Is there any way to make tablgen ignore the %? I have tried '\' character, and two "%%". None worked. // ADD <Rd>, sp, #<imm8> // This is rematerializable, which is particularly useful for taking the // address of locals. let isReMaterializable = 1 in def tADDrSPi : T1I<(outs tGPR:$dst), (ins GPR:...
2013 Jun 25
0
[LLVMdev] Length restriction in tablegen
On Jun 25, 2013, at 1:45 AM, Anitha B Gollamudi <anitha.boyapati at gmail.com> wrote: > Is there some sort of restriction over class length names in td files. Only your own sanity, as far as I know. > For e.g. something like below gives an abort with tablegen. The abort goes away when I reduce the name "my_target_intrinsics_class..." to something shorter. I have not
2013 Jun 25
2
[LLVMdev] Length restriction in tablegen
Hi Is there some sort of restriction over class length names in td files. For e.g. something like below gives an abort with tablegen. The abort goes away when I reduce the name "my_target_intrinsics_class..." to something shorter. I have not counted the exact length limit though. Is this a known issue? defm target_intrinsic:
2009 Jun 28
0
[LLVMdev] The document fault in llvm doc. And a comiling error
...ystem/platform/firmware/PECOFFdwn.mspx An In-Depth Look into the Win32 Portable Executable File Format http://msdn.microsoft.com/en-us/magazine/cc301805.aspx Object file converter http://www.agner.org/optimize/#objconv Damn good staff On windows 7 platfrom once I compiling with gcc or msvc, the tablgen can't running fine: Assertion failed: errorcode == 0, file d:/svn/llvm/lib/System/Win32/ThreadLocal. inc, line 46 This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. make[2]: *** [include/llvm/Int...
2007 Oct 05
1
[LLVMdev] Instruction selector internals
Hi there first of all, many thanks to some people out there for their advice on building LLVM on Cygwin (this would be Aaron Gray, Reid Spencer, Tanya and Chris Lattner i suppose). LLVM 2.1 seems to build in debug mode on my "old" Cygwin (1.5.15). At least everything except tblgen is build. For tblgen i use the supplied mingw binaries, many thanks for that! I would like now to ask you
2020 Sep 29
3
TableGen processing of target-specific intrinsics
Each of the main TableGen files for the supported targets includes include "llvm/Target/Target.td" In turn, Target.td includes include "llvm/IR/Intrinsics.td" The final lines of Instrinsics.td are include "llvm/IR/IntrinsicsPowerPC.td" include "llvm/IR/IntrinsicsX86.td" include "llvm/IR/IntrinsicsARM.td" include
2017 Jul 27
2
Are there some strong naming conventions in TableGen?
Hi, For the development of a new micro-controller backend, I try to lowering the following store SDNode: t5: ch = store<ST2[%ptr2](align=4)> t0, Constant:i16<3>, FrameIndex:i16<1>, undef:i16 I have defined the following instruction and associated DAG pattern. def MOVSUTO_A_i32o : CLPFPU_A_i32o_Inst<0b1000001101,