summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
Commit message (Collapse)AuthorAgeFilesLines
* Further constify Record::isSubClassOf.Ted Kremenek2009-03-131-1/+1
| | | | llvm-svn: 66970
* Fix escaping in asm string literals correctly by having tblgen unescape Chris Lattner2009-03-132-7/+16
| | | | | | them, then the asmprinter emitter reescape them. llvm-svn: 66958
* add a horrible hack to fix the build.Chris Lattner2009-03-131-0/+9
| | | | llvm-svn: 66957
* add support for a few simple escape characters in tblgen strings.Chris Lattner2009-03-131-1/+25
| | | | llvm-svn: 66949
* add a new TGError class and use it to propagate location info withChris Lattner2009-03-133-20/+26
| | | | | | | | | | | | | | | | | | | | | errors when thrown. This gets us nice errors like this from tblgen: CMOVL32rr: (set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2)) /Users/sabre/llvm/Debug/bin/tblgen: error: Included from X86.td:116: Parsing X86InstrInfo.td:922: In CMOVL32rr: X86cmov node requires exactly 4 operands! def CMOVL32rr : I<0x4C, MRMSrcReg, // if <s, GR32 = GR32 ^ instead of just: CMOVL32rr: (set GR32:i32:$dst, (X86cmov GR32:$src1, GR32:$src2)) /Users/sabre/llvm/Debug/bin/tblgen: In CMOVL32rr: X86cmov node requires exactly 4 operands! This is all I plan to do with this, but it should be easy enough to improve if anyone cares (e.g. keeping more loc info in "dag" expr records in tblgen. llvm-svn: 66898
* give each Record a location.Chris Lattner2009-03-134-15/+29
| | | | llvm-svn: 66897
* make "locations" a class instead of a typedef.Chris Lattner2009-03-137-58/+82
| | | | llvm-svn: 66895
* Unbreak build, bring in std::string for GCC 4.3Argyrios Kyrtzidis2009-03-131-0/+1
| | | | llvm-svn: 66876
* Unbreak build.Evan Cheng2009-03-131-0/+1
| | | | llvm-svn: 66874
* split buffer management and diagnostic printing out of the tblgenChris Lattner2009-03-136-70/+228
| | | | | | lexer into its own TGSourceMgr class. llvm-svn: 66873
* implement support for C-style string literal concatenation in td files.Chris Lattner2009-03-111-2/+14
| | | | llvm-svn: 66663
* Change various llvm utilities to use PrettyStackTraceProgram inChris Lattner2009-03-061-0/+3
| | | | | | | their main routines. This makes the tools print their argc/argv commands if they crash. llvm-svn: 66248
* 'append_cmd' should split its argument.Mikhail Glushenkov2009-02-271-1/+6
| | | | | | Makes '(append_cmd "-foo a b c")' work. llvm-svn: 65623
* these utils don't need exports.Chris Lattner2009-02-261-0/+3
| | | | llvm-svn: 65559
* Added support to have TableGen provide information if an intrinsic (coreMon P Wang2009-02-242-1/+23
| | | | | | or target) can be overloaded or not. llvm-svn: 65404
* Overhaul my earlier submission due to feedback. It's a large patch, but most ofBill Wendling2009-02-241-3/+1
| | | | | | | | | | | | them are generic changes. - Use the "fast" flag that's already being passed into the asm printers instead of shoving it into the DwarfWriter. - Instead of calling "MI->getParent()->getParent()" for every MI, set the machine function when calling "runOnMachineFunction" in the asm printers. llvm-svn: 65379
* - Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emitBill Wendling2009-02-241-1/+2
| | | | | | | | | | a DBG_LABEL or not. We want to fall back to the original way of emitting debug info when we're in -O0/-fast mode. - Add plumbing in to pass the "Fast" flag to places that need it. - XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I need to investigate still. llvm-svn: 65367
* We have logic in there to emit a default debugging label at the beginning of aBill Wendling2009-02-201-4/+3
| | | | | | | | | function. Emitting another label after the prologue messes up the debugging. We are doing that because the first DebugLoc object it sees is different from the previous, which was nothing. Check for this situation, and don't emit one if it's the first. llvm-svn: 65180
* Add an accessor method to DwarfWriter to tell of debugging info should be ↵Bill Wendling2009-02-201-1/+2
| | | | | | emitted. llvm-svn: 65092
* Print out a new label only if the debug location *tuple* is different. The debugBill Wendling2009-02-191-6/+9
| | | | | | locations may change, but the tuples may be the same. llvm-svn: 65039
* Forgot to check that debug information is supported.Bill Wendling2009-02-191-2/+2
| | | | llvm-svn: 65034
* Put code that generates debug labels into TableGen so that it can be used byBill Wendling2009-02-181-0/+11
| | | | | | everyone. llvm-svn: 64978
* Add explicit keywords.Dan Gohman2009-02-182-2/+2
| | | | llvm-svn: 64915
* Unbreak the build on win32.Cedric Venet2009-02-142-3/+3
| | | | | | | | | | Cleanup some warning. Remark: when struct/class are declared differently than they are defined, this make problem for VC++ since it seems to mangle class differently that struct. These error are very hard to understand and find. So please, try to keep your definition/declaration in sync. Only tested with VS2008. hope it does not break anything. feel free to revert. llvm-svn: 64554
* Generalize some alias analysis logic from atomicDuncan Sands2009-02-142-0/+36
| | | | | | intrinsics to any IntrWriteArgMem intrinsics. llvm-svn: 64551
* Eliminate a 'control reaches end of non-void function' warning.Evan Cheng2009-02-091-0/+1
| | | | llvm-svn: 64111
* Get rid of one more non-DebugLoc getNode andDale Johannesen2009-02-061-1/+2
| | | | | | | its corresponding getTargetNode. Lots of caller changes. llvm-svn: 63904
* Remove a non-DebugLoc version of getNode.Dale Johannesen2009-02-051-2/+2
| | | | llvm-svn: 63889
* Reapply 63765. Patches for clang and llvm-gcc to follow.Dale Johannesen2009-02-057-24/+79
| | | | llvm-svn: 63812
* Remove non-DebugLoc forms of CopyToReg and CopyFromReg.Dale Johannesen2009-02-041-0/+1
| | | | | | Adjust callers. llvm-svn: 63789
* Reverting 63765. This broke the build of both clangDale Johannesen2009-02-047-79/+24
| | | | | | and llvm-gcc. llvm-svn: 63786
* New feature: add support for target intrinsics being defined in theNate Begeman2009-02-047-24/+79
| | | | | | | | | target directories themselves. This also means that VMCore no longer needs to know about every target's list of intrinsics. Future work will include converting the PowerPC target to this interface as an example implementation. llvm-svn: 63765
* Fix PR3453 and probably a bunch of other potentialDuncan Sands2009-02-011-1/+1
| | | | | | | | | crashes or wrong code with codegen of large integers: eliminate the legacy getIntegerVTBitMask and getIntegerVTSignBit methods, which returned their value as a uint64_t, so couldn't handle huge types. llvm-svn: 63494
* Explain why this is here.Bill Wendling2009-01-291-0/+1
| | | | llvm-svn: 63342
* - Add DebugLoc to getTargetNode(). Bill Wendling2009-01-291-0/+3
| | | | | | | | | - Modify TableGen to add the DebugLoc when calling getTargetNode. (The light-weight wrappers are only temporary. The non-DebugLoc version will be removed once the whole debug info stuff is finished with.) llvm-svn: 63273
* Move the code that starts printing the Select_* functionsDan Gohman2009-01-291-3/+3
| | | | | | | | after the code that sorts the patterns. This doesn't affect the output, but it makes the code a little easier to follow. llvm-svn: 63265
* Typo.Mikhail Glushenkov2009-01-281-1/+1
| | | | llvm-svn: 63174
* Add three new option properties.Mikhail Glushenkov2009-01-281-32/+116
| | | | | | Adds new option properties 'multi_val', 'one_or_more' and 'zero_or_one'. llvm-svn: 63172
* Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and ↵Evan Cheng2009-01-222-80/+3
| | | | | | SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead. llvm-svn: 62762
* Make tblgen more portable, allowing it to build with ICC.Chris Lattner2009-01-221-2/+2
| | | | | | Patch by Robert Zeh! llvm-svn: 62750
* Change the hook API back to prevent memory leaks.Mikhail Glushenkov2009-01-211-1/+1
| | | | llvm-svn: 62686
* Allow hooks with arguments.Mikhail Glushenkov2009-01-211-43/+212
| | | | llvm-svn: 62685
* Avoid triggering an assertion failure when an instruction patternDan Gohman2009-01-161-1/+2
| | | | | | is a leaf node. Patch by Brandner! llvm-svn: 62361
* Add support for instructions with multiple ComplexPatterns, byDan Gohman2009-01-161-7/+7
| | | | | | | adding more information to the temporary variables names so that they don't conflict. llvm-svn: 62296
* Rename getABITypeSize to getTypePaddedSize, asDuncan Sands2009-01-121-1/+1
| | | | | | suggested by Chris. llvm-svn: 62099
* make tblgen autogenerate the nocapture intrinsics for Chris Lattner2009-01-121-7/+22
| | | | | | | llvm.memcpy/memset/memmove. This allows removal of some hackish code from basicaa. llvm-svn: 62071
* add scaffolding to emit argument attributes. No functionality Chris Lattner2009-01-121-2/+31
| | | | | | change. llvm-svn: 62067
* make tblgen emit the entire Intrinsic::getAttributes method, Chris Lattner2009-01-121-0/+7
| | | | | | not a random piece of it. No functionality change. llvm-svn: 62066
* add nocapture attribute to llvm.mem* intrinsics and have tblgenChris Lattner2009-01-122-5/+12
| | | | | | parse them. tblgen doesn't yet do anything with this info though. llvm-svn: 62065
* Improve support for type-generic vector intrinsics by teaching TableGen howBob Wilson2009-01-072-5/+46
| | | | | | | | to handle LLVMMatchType intrinsic parameters, and by adding new subclasses of LLVMMatchType to match vector types with integral elements that are either twice as wide or half as wide as the elements of the matched type. llvm-svn: 61834
OpenPOWER on IntegriCloud