summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
Commit message (Collapse)AuthorAgeFilesLines
* Escape double quotes in 'help'.Mikhail Glushenkov2010-01-261-2/+17
| | | | llvm-svn: 94543
* Modified the register matcher function in AsmMatcher toSean Callanan2010-01-231-3/+5
| | | | | | | | | | | be static. Also made it possible for clients to get it and no other functions from ...GenAsmMatcher.inc by defining REGISTERS_ONLY before including GenAsmMatcher.inc. This sets the stage for target-specific lexers that can identify registers and return AsmToken::Register as appropriate. llvm-svn: 94266
* AsmMatcher: Add a comment.Daniel Dunbar2010-01-231-0/+4
| | | | llvm-svn: 94261
* Remove DEBUG_DECLARE, looks like we don't need it.Dale Johannesen2010-01-153-16/+5
| | | | | | Also, DEBUG_VALUE has side effects. llvm-svn: 93498
* Split the TargetAsmParser "ParseInstruction" interface in half:Chris Lattner2010-01-141-9/+13
| | | | | | | | | | | the new ParseInstruction method just parses and returns a list of target operands. A new MatchInstruction interface is used to turn the operand list into an MCInst. This requires new/deleting all the operands, but it also gives targets the ability to use polymorphic operands if they want to. llvm-svn: 93469
* Reimplement getToken and SplitString as "StringRef helper functions"Benjamin Kramer2010-01-111-1/+3
| | | | | | | | | - getToken is modeled after StringRef::split but it can split on multiple separator chars and skips leading seperators. - SplitString is a StringRef::split variant for more than 2 elements with the same behaviour as getToken. llvm-svn: 93161
* Add DEBUG_DECLARE. Not used yet.Dale Johannesen2010-01-093-5/+16
| | | | llvm-svn: 93040
* Add DEBUG_VALUE. Not used yet.Dale Johannesen2010-01-083-5/+16
| | | | llvm-svn: 93030
* Partially address a README by having functionattrs consider calls toDuncan Sands2010-01-061-1/+1
| | | | | | | | | | memcpy, memset and other intrinsics that only access their arguments to be readnone if the intrinsic's arguments all point to local memory. This improves the testcase in the README to readonly, but it could in theory be made readnone, however this would involve more sophisticated analysis that looks through the memcpy. llvm-svn: 92829
* Don't use the ISD::NodeType enum for SDNode opcodes, as CodeGenDan Gohman2010-01-051-1/+1
| | | | | | | uses several kinds of opcode values which are not declared within that enum. This fixes PR5946. llvm-svn: 92794
* Add an !eq() operator to TableGen. It operates on strings only.David Greene2010-01-055-2/+20
| | | | | | Use !cast<string>() to compare other types of objects. llvm-svn: 92754
* Have TableGen emit code that uses dbgs() rather than errs().David Greene2010-01-051-2/+2
| | | | llvm-svn: 92738
* Change SelectCode's argument from SDValue to SDNode *, to make it moreDan Gohman2010-01-051-75/+102
| | | | | | | | | clear what information these functions are actually using. This is also a micro-optimization, as passing a SDNode * around is simpler than passing a { SDNode *, int } by value or reference. llvm-svn: 92564
* tblgen/OptParser: Use EmitSourceFileHeader.Daniel Dunbar2010-01-041-20/+4
| | | | llvm-svn: 92521
* Replace some special-case code which probably was buggy with an assertionDan Gohman2010-01-041-6/+1
| | | | | | verifying that the special case does not occur. llvm-svn: 92504
* Remove the CPAttrParentAsRoot code, which is unused, and inconvenientDan Gohman2010-01-043-26/+3
| | | | | | for a refactoring I'm working on. llvm-svn: 92503
* Typo.Mikhail Glushenkov2010-01-011-1/+1
| | | | llvm-svn: 92392
* Make CheckForSuperfluousOptions handle list form of 'switch_on' correctly.Mikhail Glushenkov2010-01-011-5/+18
| | | | llvm-svn: 92391
* Minor simplifications.Mikhail Glushenkov2010-01-011-1/+1
| | | | llvm-svn: 92390
* Better error message.Mikhail Glushenkov2010-01-011-1/+1
| | | | llvm-svn: 92389
* Use the 'MadeChange' variable instead of returning 'false' all of the time.Bill Wendling2009-12-251-3/+2
| | | | llvm-svn: 92155
* Don't emit trailing semicolon.Daniel Dunbar2009-12-241-1/+1
| | | | llvm-svn: 92133
* Cosmetic issue: more consistent naming.Mikhail Glushenkov2009-12-231-55/+55
| | | | llvm-svn: 91998
* Allow (set_option SwitchOption, true).Mikhail Glushenkov2009-12-231-12/+29
| | | | llvm-svn: 91997
* Suppress compiler warning.Daniel Dunbar2009-12-231-0/+2
| | | | llvm-svn: 91959
* Fixes to the X86 disassembler:Sean Callanan2009-12-221-3/+3
| | | | | | | | Made LEA memory operands emit only 4 MCInst operands. Made the scale operand equal 1 for instructions that have no SIB byte. llvm-svn: 91919
* Fix a bug in !subst where TableGen would go and resubstitute text it hadDavid Greene2009-12-211-1/+3
| | | | | | | just substituted. This could cause infinite looping in certain pathological cases. llvm-svn: 91843
* fix build and while at it remove a redudant includeNuno Lopes2009-12-192-2/+1
| | | | llvm-svn: 91774
* More bzero -> memset that I missed.Daniel Dunbar2009-12-192-13/+13
| | | | llvm-svn: 91757
* Add missing newlines at EOF (for clang++).Daniel Dunbar2009-12-192-2/+2
| | | | llvm-svn: 91756
* Table-driven disassembler for the X86 architecture (16-, 32-, and 64-bit Sean Callanan2009-12-198-0/+2425
| | | | | | | | | | | | | | | | | | | | incarnations), integrated into the MC framework. The disassembler is table-driven, using a custom TableGen backend to generate hierarchical tables optimized for fast decode. The disassembler consumes MemoryObjects and produces arrays of MCInsts, adhering to the abstract base class MCDisassembler (llvm/MC/MCDisassembler.h). The disassembler is documented in detail in - lib/Target/X86/Disassembler/X86Disassembler.cpp (disassembler runtime) - utils/TableGen/DisassemblerEmitter.cpp (table emitter) You can test the disassembler by running llvm-mc -disassemble for i386 or x86_64 targets. Please let me know if you encounter any problems with it. llvm-svn: 91749
* Fix a comment.Dan Gohman2009-12-191-2/+2
| | | | llvm-svn: 91741
* Make 'set_option' work with list options.Mikhail Glushenkov2009-12-181-10/+23
| | | | | | This works now: (set_option "list_opt", ["val_1", "val_2", "val_3"]) llvm-svn: 91679
* Add a 'set_option' action for use in OptionPreprocessor.Mikhail Glushenkov2009-12-171-16/+64
| | | | llvm-svn: 91594
* Refactoring, no functionality change.Mikhail Glushenkov2009-12-171-120/+149
| | | | llvm-svn: 91593
* s/TokenizeCmdline/TokenizeCmdLine/Mikhail Glushenkov2009-12-171-14/+13
| | | | llvm-svn: 91592
* Add @earlyclobber TableGen constraintJim Grosbach2009-12-161-4/+24
| | | | llvm-svn: 91554
* Revert 90628, which was incorrect.Dan Gohman2009-12-152-8/+10
| | | | llvm-svn: 91448
* whitespaceJim Grosbach2009-12-151-26/+26
| | | | llvm-svn: 91442
* Convert llvmc tests to FileCheck.Mikhail Glushenkov2009-12-151-1/+1
| | | | llvm-svn: 91420
* Support hook invocation from 'append_cmd'.Mikhail Glushenkov2009-12-151-37/+62
| | | | llvm-svn: 91419
* Validate the generated C++ code in llvmc tests.Mikhail Glushenkov2009-12-151-19/+20
| | | | | | | | | | Checks that the code generated by 'tblgen --emit-llvmc' can be actually compiled. Also fixes two bugs found in this way: - forward_transformed_value didn't work with non-list arguments - cl::ZeroOrOne is now called cl::Optional llvm-svn: 91404
* Allow $CALL(Hook, '$INFILE') for non-join tools.Mikhail Glushenkov2009-12-151-37/+74
| | | | llvm-svn: 91402
* Remove unneeded ';' and a class/struct mismatch (noticed by clang).Daniel Dunbar2009-12-093-3/+3
| | | | llvm-svn: 90934
* Simplify a bit.Mikhail Glushenkov2009-12-071-13/+5
| | | | llvm-svn: 90785
* Throw 'const char*' instead of 'std::string'.Mikhail Glushenkov2009-12-071-11/+10
| | | | llvm-svn: 90784
* Deprecate 'unpack_values'.Mikhail Glushenkov2009-12-071-45/+41
| | | | | | Use 'forward_values' + 'comma_separated' instead. llvm-svn: 90774
* Implement 'forward_value' and 'forward_transformed_value'.Mikhail Glushenkov2009-12-071-28/+143
| | | | llvm-svn: 90770
* Refactoring, no functionality change.Mikhail Glushenkov2009-12-071-98/+163
| | | | llvm-svn: 90764
* Minor code simplification.Dan Gohman2009-12-052-10/+8
| | | | llvm-svn: 90628
OpenPOWER on IntegriCloud