summaryrefslogtreecommitdiffstats
path: root/llvm/utils/TableGen
Commit message (Collapse)AuthorAgeFilesLines
...
* Rename usesCustomDAGSchedInserter to usesCustomInserter, and update aDan Gohman2009-10-294-5/+4
| | | | | | | | bunch of associated comments, because it doesn't have anything to do with DAGs or scheduling. This is another step in decoupling MachineInstr emitting from scheduling. llvm-svn: 85517
* Sorry to break the build.Johnny Chen2009-10-291-1158/+0
| | | | | | | I was trying to check the WIP file to some local repository, but ended up checking in the llvm repository. Oops! llvm-svn: 85470
* Minor tweak to forgo the the curly braces for most case blocks, except whenJohnny Chen2009-10-291-0/+1158
| | | | | | declaring local variables. llvm-svn: 85467
* 80-col violation.Mikhail Glushenkov2009-10-271-1/+2
| | | | llvm-svn: 85215
* Move DataTypes.h to include/llvm/System, update all users. This breaks the lastChandler Carruth2009-10-263-3/+3
| | | | | | direct inclusion edge from System to Support. llvm-svn: 85086
* Make 'unset_option' work on list options.Mikhail Glushenkov2009-10-221-6/+6
| | | | llvm-svn: 84827
* Implement any_[not_]empty and list versions of switch_on and [not_]empty.Mikhail Glushenkov2009-10-211-60/+146
| | | | | | Useful for OptionPreprocessor. llvm-svn: 84728
* More refactoring...Mikhail Glushenkov2009-10-191-46/+55
| | | | llvm-svn: 84537
* Refactoring, no functionality change.Mikhail Glushenkov2009-10-181-69/+158
| | | | llvm-svn: 84450
* Move UnescapeString to a static function for its sole client; its ↵Daniel Dunbar2009-10-171-0/+23
| | | | | | inefficient and broken. llvm-svn: 84358
* Use raw_ostream::write_escaped instead of EscapeString.Daniel Dunbar2009-10-172-12/+13
| | | | llvm-svn: 84356
* First draft of the OptionPreprocessor.Mikhail Glushenkov2009-10-171-32/+191
| | | | | | More to follow... llvm-svn: 84352
* This variable is never used.Mikhail Glushenkov2009-10-171-2/+1
| | | | llvm-svn: 84351
* Disallow multiple instances of PluginPriority.Mikhail Glushenkov2009-10-171-4/+10
| | | | | | | Several instances of PluginPriority in a single file most probably signifies a programming error. llvm-svn: 84350
* Report errors correctly for unselected target intrinsics.Jakob Stoklund Olesen2009-10-152-2/+12
| | | | llvm-svn: 84193
* Omit the 'out_file_index != -1' check when possible.Mikhail Glushenkov2009-10-091-6/+54
| | | | llvm-svn: 83619
* Input files should go before all other options.Mikhail Glushenkov2009-10-081-14/+24
| | | | | | Important, for example, when calling 'gcc a.o b.o c.o -lD -lE -lF'. llvm-svn: 83524
* Add instruction flags: hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. WhenEvan Cheng2009-10-013-0/+6
| | | | | | | | | | set, these flags indicate the instructions source / def operands have special register allocation requirement that are not captured in their register classes. Post-allocation passes (e.g. post-alloc scheduler) should not change their allocations. e.g. ARM::LDRD require the two definitions to be allocated even / odd register pair. llvm-svn: 83196
* Introduce the TargetInstrInfo::KILL machine instruction and get rid of theJakob Stoklund Olesen2009-09-284-9/+11
| | | | | | | | | | unused DECLARE instruction. KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places where IMPLICIT_DEF is just used to alter liveness of physical registers. llvm-svn: 83006
* Add a way to query the number of input files.Mikhail Glushenkov2009-09-281-5/+21
| | | | llvm-svn: 82957
* A bit prettier formatting.Mikhail Glushenkov2009-09-281-3/+3
| | | | llvm-svn: 82955
* Improve MachineMemOperand handling.Dan Gohman2009-09-251-18/+11
| | | | | | | | | | | | | | | | | | | | | - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. llvm-svn: 82794
* Rename getTargetNode to getMachineNode, for consistency with theDan Gohman2009-09-251-3/+3
| | | | | | | | naming scheme used in SelectionDAG, where there are multiple kinds of "target" nodes, but "machine" nodes are nodes which represent a MachineInstr. llvm-svn: 82790
* Make the end-of-itinerary mark explicit. Some cleanup.David Goodwin2009-09-241-5/+3
| | | | llvm-svn: 82709
* Use raw_ostream::indent instead of passing strings.Mikhail Glushenkov2009-09-211-145/+163
| | | | llvm-svn: 82456
* convert some stuff to StringRef to avoid temporary std::strings.Chris Lattner2009-09-182-47/+47
| | | | llvm-svn: 82244
* add a comment.Chris Lattner2009-09-181-0/+5
| | | | llvm-svn: 82236
* slightly increase prettiness.Chris Lattner2009-09-141-2/+2
| | | | llvm-svn: 81742
* emit the register table as a massive string to avoid relocations.Chris Lattner2009-09-141-5/+16
| | | | llvm-svn: 81741
* move StringToOffsetTable out to its own header.Chris Lattner2009-09-142-56/+77
| | | | llvm-svn: 81740
* factor string table generation out to its own class. This changesChris Lattner2009-09-141-50/+73
| | | | | | the encoding of the AsmStrs table saving a byte or two. llvm-svn: 81739
* eliminate the TargetRegisterDesc::AsmName field, the asmprinters now have ↵Chris Lattner2009-09-131-6/+1
| | | | | | this table. llvm-svn: 81728
* the tblgen produced 'getRegisterName' method does not accessChris Lattner2009-09-131-1/+1
| | | | | | the object, make it static instead of const. llvm-svn: 81711
* make tblgen produce a function that returns the name for a physreg.Chris Lattner2009-09-132-8/+49
| | | | | | Nothing is using this info yet. llvm-svn: 81707
* Eliminate some unnecessary implicit constructors in generated DAG ISel code.Owen Anderson2009-09-111-1/+1
| | | | | | Partial fix for PR4946. llvm-svn: 81518
* PHI nodes can never reach the asmprinter, assert and die instead of printingChris Lattner2009-09-111-1/+2
| | | | | | out an illegal "PHINODE" instruction. llvm-svn: 81495
* Distinguish between 'empty' and empty DAG marker.Mikhail Glushenkov2009-09-101-1/+1
| | | | llvm-svn: 81448
* Add a logical 'not' operator to llvmc's TableGen dialect.Mikhail Glushenkov2009-09-101-0/+12
| | | | llvm-svn: 81447
* remove DebugLoc from MCInst and eliminate "Comment printing" fromChris Lattner2009-09-091-4/+0
| | | | | | | | | | | | | the MCInst path of the asmprinter. Instead, pull comment printing out of the autogenerated asmprinter into each target that uses the autogenerated asmprinter. This causes code duplication into each target, but in a way that will be easier to clean up later when more asmprinter stuff is commonized into the base AsmPrinter class. This also fixes an xcore strangeness where it inserted two tabs before every instruction. llvm-svn: 81396
* Fix a subtle bug in "return;" generation which caused us to missChris Lattner2009-09-091-22/+3
| | | | | | | | a return in one case. Instead of sprinking return handling code throughout the asmprinter generator, just treat it like any other normal statement. llvm-svn: 81395
* hoist the call to processDebugLoc out of the generatedChris Lattner2009-09-091-2/+0
| | | | | | | | | | | | | asm printer into the "printInstruction" routine. This fixes a problem where the experimental asmprinter would drop debug labels in some cases, and fixes issues on ppc/xcore where pseudo instructions like "mr" didn't get debug locs properly. It is annoying that this moves the call from one place into each target, but a future set of more invasive refactorings will fix that problem. llvm-svn: 81377
* Remove some unused variables and methods warned about byDuncan Sands2009-09-061-1/+0
| | | | | | icc (#177, partial). Patch by Erick Tryzelaar. llvm-svn: 81106
* PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's typeBob Wilson2009-08-292-35/+46
| | | | | | | | | | | | | | | inferencing. As far as I can tell, these are equivalent to the existing MVT::fAny, iAny and vAny types, and having both of them makes it harder to reason about and modify the type inferencing code. The specific problem in PR4795 occurs when updating a vAny type to be fAny or iAny, or vice versa. Both iAny and fAny include vector types -- they intersect with the set of types represented by vAny. When merging them, choose fAny/iAny to represent the intersection. This is not perfect, since fAny/iAny also include scalar types, but it is good enough for TableGen's type inferencing. llvm-svn: 80423
* Fix bad length argument to substr calls. Apparently I'm the first one toBob Wilson2009-08-261-2/+2
| | | | | | attempt more than 2 constraints on an instruction. llvm-svn: 80169
* Make LLVM command-line tools overwrite their output files without -f.Dan Gohman2009-08-251-2/+1
| | | | | | | | | | | | | | | | This is conventional command-line tool behavior. -f now just means "enable binary output on terminals". Add a -f option to llvm-extract and llvm-link, for consistency. Remove F_Force from raw_fd_ostream and enable overwriting and truncating by default. Introduce an F_Excl flag to permit users to enable a failure when the file already exists. This flag is currently unused. Update Makefiles and documentation accordingly. llvm-svn: 79990
* prune the #includes in raw_ostream.h by moving a Chris Lattner2009-08-241-0/+1
| | | | | | | member out of line. ftostr is not particularly speedy, so that method is presumably not perf sensitive. llvm-svn: 79885
* Prune #includes from llvm/Linker.h and llvm/System/Path.h,Chris Lattner2009-08-231-3/+3
| | | | | | | | | | | | | | | | | | forcing them down into various .cpp files. This change also: 1. Renames TimeValue::toString() and Path::toString() to ::str() for similarity with the STL. 2. Removes all stream insertion support for sys::Path, forcing clients to call .str(). 3. Removes a use of Config/alloca.h from bugpoint, using smallvector instead. 4. Weans llvm-db off <iostream> sys::Path really needs to be gutted, but I don't have the desire to do it at this point. llvm-svn: 79869
* Try to fix MSVC build after r79846.Benjamin Kramer2009-08-232-4/+7
| | | | llvm-svn: 79850
* Fix non-determinism in DAGISel emitter.Daniel Dunbar2009-08-234-7/+23
| | | | | | | | | | | | | | | | | | | | | | | - This manifested as non-determinism in the .inc output in rare cases (when two distinct patterns ended up being equivalent, which is rather rare). That meant the pattern matching was non-deterministic, which could eventually mean the code generator selected different instructions based on the arch. - It's probably worth making the DAGISel ensure a total ordering (or force the user to), but the simple fix here is to totally order the Record* maps based on a unique ID. - PR4672, PR4711. Yay: -- ddunbar@giles:~$ cat ~/llvm.obj.64/lib/Target/*/*.inc | shasum d1099ff34b21459a5a3e7021c225c080e6017ece - ddunbar@giles:~$ cat ~/llvm.obj.ppc/lib/Target/*/*.inc | shasum d1099ff34b21459a5a3e7021c225c080e6017ece - -- llvm-svn: 79846
* Change Pass::print to take a raw ostream instead of std::ostream,Chris Lattner2009-08-231-1/+1
| | | | | | update all code that this affects. llvm-svn: 79830
OpenPOWER on IntegriCloud