search for: tgparser

Displaying 20 results from an estimated 56 matches for "tgparser".

2010 Sep 01
3
[LLVMdev] Assertion failure in tablegen: rationale ?
...alue optimized out>, line=633, function=0x5abb20 "virtual llvm::RecTy* llvm::UnOpInit::getFieldType(const std::string&) const") at assert.c:81 #3 0x000000000050ddc8 in llvm::UnOpInit::getFieldType (this=0x850f00, FieldName=...) at Record.cpp:633 #4 0x0000000000543f64 in llvm::TGParser::ParseValue (this=0x7fffffffd480, CurRec=0x8511d0, ItemType=0x851540) at TGParser.cpp:1342 #5 0x0000000000544574 in llvm::TGParser::ParseValueList (this=0x7fffffffd480, CurRec=0x8511d0, ArgsRec=0x8510d0, EltTy=0x0) at TGParser.cpp:1405 #6 0x000000000053e520 in llvm::TGParser::ParseSubClassReferen...
2010 Sep 01
0
[LLVMdev] Assertion failure in tablegen: rationale ?
...ut>, line=633, > function=0x5abb20 "virtual llvm::RecTy* llvm::UnOpInit::getFieldType(const std::string&) const") at assert.c:81 > #3 0x000000000050ddc8 in llvm::UnOpInit::getFieldType (this=0x850f00, FieldName=...) at Record.cpp:633 > #4 0x0000000000543f64 in llvm::TGParser::ParseValue (this=0x7fffffffd480, CurRec=0x8511d0, ItemType=0x851540) at TGParser.cpp:1342 > #5 0x0000000000544574 in llvm::TGParser::ParseValueList (this=0x7fffffffd480, CurRec=0x8511d0, ArgsRec=0x8510d0, EltTy=0x0) at TGParser.cpp:1405 > #6 0x000000000053e520 in llvm::TGParser::ParseSubCl...
2010 Sep 01
1
[LLVMdev] Assertion failure in tablegen: rationale ?
...gt; function=0x5abb20 "virtual llvm::RecTy* > llvm::UnOpInit::getFieldType(const std::string&) const") at assert.c:81 > > #3 0x000000000050ddc8 in llvm::UnOpInit::getFieldType (this=0x850f00, > FieldName=...) at Record.cpp:633 > > #4 0x0000000000543f64 in llvm::TGParser::ParseValue > (this=0x7fffffffd480, CurRec=0x8511d0, ItemType=0x851540) at > TGParser.cpp:1342 > > #5 0x0000000000544574 in llvm::TGParser::ParseValueList > (this=0x7fffffffd480, CurRec=0x8511d0, ArgsRec=0x8510d0, EltTy=0x0) at > TGParser.cpp:1405 > > #6 0x000000000053e520...
2012 Jan 20
1
[LLVMdev] TableGen Crash
Hi LLVMers, I found a bug in TGParser that is causing llvm-tblgen to crash on bad input. The reduced testcase is attached. The output follows: $ ./llvm-tblgen --version Low Level Virtual Machine (http://llvm.org/): LLVM version 3.1svn DEBUG build with assertions. Built Jan 20 2012 (15:46:08). Default target: x86_64-apple-darwi...
2014 Sep 25
5
[LLVMdev] New type of smart pointer for LLVM
Hello everyone, I bring to discussion the necessity/design of a new type of smart pointer. r215176 and r217791 rise the problem, D5443 <http://reviews.llvm.org/D5443> is devoted to the solution. r215176 applies several temporary ugly fixes of memory leaks in TGParser.cpp which would be great to be refactored using smart pointers. D5443 <http://reviews.llvm.org/D5443> demonstrates how the solution with a certain type of smart pointer would look like (see changes in TGParser::ParseDef(), TGParser::InstantiateMulticlassDef() and TGParser::ParseSimpleValu...
2008 Nov 13
0
[LLVMdev] 'struct' now seen using 'class'
...cpp" in one of the make files (didn't spend time to figure out why), following which CMake produced a nice working Visual Studio 2008 solution file. I opened this up in VS 2008 Express and everything seems to build properly except for the following errors: 1>c:\llvm\utils\tablegen\TGParser.h(69) : warning C4099: 'llvm::SubClassReference' : type name first seen using 'struct' now seen using 'class' 1> c:\llvm\utils\tablegen\TGParser.h(26) : see declaration of 'llvm::SubClassReference' 1>c:\llvm\utils\tablegen\Record.h(38) : warning C409...
2014 Oct 01
4
[LLVMdev] New type of smart pointer for LLVM
...designed for here, in my experience, doesn't seem to come up often enough to justify a custom ADT - but the more general tool of sometimes-owning smart pointer seems common enough (& problematic enough) to warrant a generic data structure (and such a structure would also be appliable to the TGParser use case where this came up). I'd love to hear some more opinions, but maybe we're not going to get them... > > The main goal of the wrapper is to eliminate leaks like those in TGParser.cpp > - r215176 > <http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/TableGen/TGParser...
2009 Jan 22
1
[LLVMdev] Patch to get llvm compiling with the Intel 11.0.066 compiler
I've been trying to get llvm to compile under windows with the Intel C+ + 11.0.066 compiler without killing the compiler. I filed a bug report with Intel, and Intel says that their compiler has a problem with RecTy and Init being declared with "class" in utils \TableGen\TGParser.h but defined with "struct" in utils\TableGen \Record.h. The attached patch changes TGParser.h to use struct. -------------- next part -------------- A non-text attachment was scrubbed... Name: intel-patch.diff Type: application/octet-stream Size: 386 bytes Desc: not available URL: &l...
2012 Jul 03
0
[LLVMdev] tablegen multiple inheritance question
Seems to just be a byproduct of TGParser::AddSubClass() begin called twice. This means that TGParser::AddValue() is being called once for the "i" of each class, and the "last one wins". Not sure if it is intended, but this behavior seems to more-or-less "make sense". --Sean Silva On Mon, Jul 2, 2012 at 4:5...
2017 Apr 15
2
About TableGen RangeList
...One thing I believe also bothers someone else. Say we have the following code snippet: bits<32> insnEncoding; let insnEncoding{15-12} = 0b0100; Can we write the let expression with range list like this, with the same meaning? let insnEncoding{12-15} = 0b0100; I take a look on TGParser::ParseRangePiece (lib/TableGen/TGParser.cpp), seems the answer is YES. Can anyone confirm this? Thanks. Regards, chenwj -- Wei-Ren Chen (陳韋任) Homepage: https://people.cs.nctu.edu.tw/~chenwj -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org...
2010 Dec 10
1
[LLVMdev] tblgen internals
Attached patch for removing for the first trivial RecordKeeper:: getAllDerivedDefinitions(...) dependency on the global RecordKeeper Records instance. The real work will be removing this dependency from the other Record.h classes/structs, and from TGParser. Thinking this would be implemented as some sort of context structure/class holding a RecordKeeper instance passed to TGParser which in turn would set this RecordKeeper instance on the various Record classes/ structures. Not sure about this yet. Free to direct if you wish. :-) I checked this with...
2012 Jul 02
2
[LLVMdev] tablegen multiple inheritance question
class one { int i = 0; } class two { int i = 1; } class multiple: one, two; This causes the first i to be ignored and the second i to replace it. This is a useful property if you want to specialize classes. But I don't know if it was intended to work that way or not. For example, if you have an instruction class with no patterns, you can merge it with one that defines the pattern
2013 Jan 31
2
[LLVMdev] std::string suffices for Init* argument?
Hi Jakob, How is `FieldName`, which is a std::string, being passed as the third argument to SetValue on line 1848 of TGParser.cpp, which is declared as being an Init*? The nearly identical (FIXME) codepath in ParseDeclaration immediately puts the string into a StringInit, which makes sense, but how on earth is the std::string being passed in? This is really freaking me out. -- Sean Silva
2011 Oct 07
0
[LLVMdev] Enhancing TableGen
...mple enough to understand and maintain, at least I believe so. [Why preprocessor?] I admit that a preprocessor is probably not the best solution. And we can implement for-loop without a preprocessor. The only reason I chose a preprocessor is because (I believe) this would add least changes to the TGParser.cpp. The TGParser.cpp as its current form parses and emits the results in one-pass. That means it would emit the for-loop body even before we are done parsing the entire for-loop. So I believe a non-preprocessor approach would require 2 passes. The first pass parses the input and generates a simp...
2020 Aug 06
3
Newbie question on building with Visual Studio
I made a simple edit to TGlexer.h, which is part of TableGen. Then, in Visual Studio, I asked it to build Tablegen. I got the following output: 1>------ Build started: Project: LLVMTableGen, Configuration: Release x64 ------ 1>Main.cpp 1>TGLexer.cpp 1>TGParser.cpp 1>LLVMTableGen.vcxproj -> D:\LLVM\Build\Release\lib\LLVMTableGen.lib ========== Build: 1 succeeded, 0 failed, 3 up-to-date, 0 skipped ========== Makes sense to me. But why doesn't it continue on and relink llvm-tblgen.exe? I spent about half an hour searching the interwebs, but all I...
2011 Oct 06
3
[LLVMdev] Enhancing TableGen
On Oct 6, 2011, at 12:42 PM, David A. Greene wrote: > Jakob Stoklund Olesen <jolesen at apple.com> writes: > >> On Oct 6, 2011, at 7:59 AM, David A. Greene wrote: >> >>> For example, I want to be able to do this: >>> >>> defm MOVH : >>> vs1x_fps_binary_vv_node_rmonly< >>> 0x16, "movh", undef, 0, >>>
2012 Jul 03
3
[LLVMdev] bug in tablegen?
Not sure what you mean. I.OutOperandList == (outs CPU16Regs:$rx) I.InOperandList == (ins CPU16Regs:$ry, CPU16Regs:$rz) On 07/02/2012 09:26 PM, Sean Silva wrote: > I think you're missing the template args for `FRRR16_ins` in the first > argument. The switch in TGParser::ParseType() doesn't cover the case > of types with template args though... which makes me wonder what is > going on inside of TableGen to make `I.f` and `I.AsmString` valid... > > --Sean Silva > > On Mon, Jul 2, 2012 at 8:07 PM, reed kotler<rkotler at mips.com> wrote:...
2011 Oct 07
4
[LLVMdev] Enhancing TableGen
.... Perhaps that's not worth it, however. I can live with this level of duplication. I would also like to replace #NAME# with a "real" Record field that is automatically added to def-type Records. This removes a lot of the hackiness of #NAME#. > [Why preprocessor?] > > The TGParser.cpp as its current form parses and emits the results in > one-pass. That means it would emit the for-loop body even before we > are done parsing the entire for-loop. It doesn't have to. I'm working on a for loop that is not preprocessor based. It uses the same technique as the mult...
2010 Dec 12
2
[LLVMdev] tblgen internals
...wing patch removes all global references to a RecordKeeper instance for the tblgen utility. This effort was motivated by the FIXME remark, in TableGen.cpp. Although a few files were touched, the main change was to Record.h. The patch takes the simple approach of adding a RecordKeeper reference to TGParser, and any needed emitter helper classes. In addition, since some of the classes, and methods in Record reference the previously global RecordKeeper instance, I added another RecordKeeper reference to Record, along with such a typed argument to Record's constructor, and a corresponding factor...
2014 Oct 02
3
[LLVMdev] New type of smart pointer for LLVM
...doesn't seem > to come up often enough to justify a custom ADT - but the more > general tool of sometimes-owning smart pointer seems common enough > (& problematic enough) to warrant a generic data structure (and > such a structure would also be appliable to the TGParser use case > where this came up). > David, could you, please, clarify the concept of the "maybe owning pointer"? > > I'd love to hear some more opinions, but maybe we're not going to > get them... > > > I strongly agree that the example here isn&...