summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Delete an unused variable and simplify the code.Dan Gohman2009-01-051-10/+7
| | | | llvm-svn: 61732
* Handle iAny and fAny types in TreePatternNode::UpdateNodeType.Bob Wilson2009-01-051-5/+7
| | | | llvm-svn: 61713
* Fix spelling in some comments.Bob Wilson2009-01-052-2/+2
| | | | llvm-svn: 61702
* Use dyn_cast intead of isa + cast in the generated DAGISel code. ThisDan Gohman2008-12-191-7/+13
| | | | | | reduces the amount of code slightly when assertions are enabled. llvm-svn: 61249
* Added support for vector widening.Mon P Wang2008-12-181-0/+6
| | | | llvm-svn: 61209
* Fix typo in error message.Mikhail Glushenkov2008-12-181-1/+1
| | | | llvm-svn: 61191
* Some enhancements for the 'case' expression.Mikhail Glushenkov2008-12-171-7/+27
| | | | | | Add (error) and (empty). llvm-svn: 61117
* Put Edge* classes into anonymous namespace.Mikhail Glushenkov2008-12-111-7/+7
| | | | | | Prevents conflicts between plugins. llvm-svn: 60871
* Make 'extern' an option property.Mikhail Glushenkov2008-12-071-38/+19
| | | | | | Makes (forward) work better. llvm-svn: 60667
* Better error message.Mikhail Glushenkov2008-12-071-1/+6
| | | | llvm-svn: 60664
* Re-apply Cedric's changes.Mikhail Glushenkov2008-12-071-24/+24
| | | | | | | Use B instead of Beg (for consistency), but NodeA and NodeB instead of A and B. llvm-svn: 60663
* Try to guess when the auto-generated cl::Sink option should be marked 'extern'.Mikhail Glushenkov2008-12-071-5/+20
| | | | | | | This would be much easier to do if the CommandLine library didn't use global state. Global state is evil. llvm-svn: 60659
* Add a (progn)-like construct for (actions). Implemented as a DAG list.Mikhail Glushenkov2008-12-071-10/+37
| | | | llvm-svn: 60658
* Use (actions) instead of option properties, support external options.Mikhail Glushenkov2008-12-071-975/+885
| | | | | | | Also includes a major refactoring. See documentation for more information. llvm-svn: 60656
* The use of the construct:Cedric Venet2008-12-051-12/+12
| | | | | | | | for(Type1 B = ...;;) { Type2 B ; ... } is bad: code is hard to read and VS VS don't like it (it ignore the second declaration of B). This patch fix the problem in tablegen. Please don't write code like this. llvm-svn: 60590
* Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.Dan Gohman2008-12-033-3/+3
| | | | llvm-svn: 60487
* Mark x86's V_SET0 and V_SETALLONES with isSimpleLoad, and teach X86'sDan Gohman2008-12-031-9/+0
| | | | | | | | | | | | foldMemoryOperand how to "fold" them, by converting them into constant-pool loads. When they aren't folded, they use xorps/cmpeqd, but for example when register pressure is high, they may now be folded as memory operands, which reduces register pressure. Also, mark V_SET0 isAsCheapAsAMove so that two-address-elimination will remat it instead of copying zeros around (V_SETALLONES was already marked). llvm-svn: 60461
* Add a sanity-check to tablegen to catch the case where isSimpleLoadDan Gohman2008-12-032-1/+10
| | | | | | | | | is set but mayLoad is not set. Fix all the problems this turned up. Change code to not use isSimpleLoad instead of mayLoad unless it really wants isSimpleLoad. llvm-svn: 60459
* Support multiple compilation graph definitions. Not terribly useful, but ↵Mikhail Glushenkov2008-11-281-42/+51
| | | | | | makes the code more generic. llvm-svn: 60199
* Add 'hidden' and 'really_hidden' option properties.Mikhail Glushenkov2008-11-281-1/+43
| | | | llvm-svn: 60198
* On x86 favors folding short immediate into some arithmetic operations (e.g. ↵Evan Cheng2008-11-271-2/+2
| | | | | | | | | | | | | | | add, and, xor, etc.) because materializing an immediate in a register is expensive in turns of code size. e.g. movl 4(%esp), %eax addl $4, %eax is 2 bytes shorter than movl $4, %eax addl 4(%esp), %eax llvm-svn: 60139
* Small fix: the error message was incorrect in some cases.Mikhail Glushenkov2008-11-261-3/+3
| | | | llvm-svn: 60099
* Support dependencies between plugins by priority-sorting.Mikhail Glushenkov2008-11-171-5/+19
| | | | llvm-svn: 59449
OpenPOWER on IntegriCloud