aboutsummaryrefslogtreecommitdiffstats
path: root/utils/TableGen
Commit message (Collapse)AuthorAgeFilesLines
* Type inferencing bugEvan Cheng2006-01-151-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25337 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow transformation from GlobalAddress to TargetGlobalAddress andEvan Cheng2006-01-121-13/+24
| | | | | | | ExternalSymbol to TargetExternalSymbol. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25252 91177308-0d34-0410-b5e6-96231b3b80d8
* GlobalAddress -> TargetGlobalAddress; ExternalSymbol -> TargetExternalSymbolEvan Cheng2006-01-121-2/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25245 91177308-0d34-0410-b5e6-96231b3b80d8
* Some minor fixes.Evan Cheng2006-01-111-26/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25227 91177308-0d34-0410-b5e6-96231b3b80d8
* Always select target registers to themselvesChris Lattner2006-01-111-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25218 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit an error instead of an assertion if trying to do bogus things in result ↵Chris Lattner2006-01-111-2/+2
| | | | | | patterns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25194 91177308-0d34-0410-b5e6-96231b3b80d8
* Added support for the extractelement operation.Robert Bocchino2006-01-101-81/+81
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25181 91177308-0d34-0410-b5e6-96231b3b80d8
* * Remove instruction fields hasInFlag / hasOutFlag and added SNDPInFlag andEvan Cheng2006-01-094-46/+58
| | | | | | | | | | SNDPOutFlag to DAG nodes. These properties do not belong to target specific instructions. * Added DAG node property SNDPOptInFlag. It's same as SNDPInFlag except it's optional. Used by ret / call, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25154 91177308-0d34-0410-b5e6-96231b3b80d8
* Pattern complexity calculation fix.Evan Cheng2006-01-061-4/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25133 91177308-0d34-0410-b5e6-96231b3b80d8
* Tweak pattern complexity calc.Evan Cheng2006-01-061-9/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25122 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fix wrt chain operand.Evan Cheng2006-01-061-7/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25115 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace fix with one less disruptive to the original code.Jeff Cohen2006-01-041-4/+3
| | | | | | | Also note that GCC 4.1 also correctly flags the syntax error. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25076 91177308-0d34-0410-b5e6-96231b3b80d8
* Tblgen was generating syntactically illegal C++ code like:Jeff Cohen2006-01-041-3/+4
| | | | | | | | | | SDOperand Tmp0,Tmp1,Tmp2,Tmp3,; GCC has a bug (24907) in which is fails to catch this, but VC++ correctly notes its illegality, so tblgen must be taught to only generate legal C++. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25075 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove obsolete comment, make things look a bit nicerChris Lattner2006-01-041-2/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25070 91177308-0d34-0410-b5e6-96231b3b80d8
* reduce stack usage of the recursive SelectCode function by out-lining eachChris Lattner2006-01-041-44/+61
| | | | | | | case of the switch statement into its own method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25069 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove my previous ugly hack that tries to reduce the stack space usageChris Lattner2006-01-031-68/+25
| | | | | | | of SelectCode to make way for a better solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25068 91177308-0d34-0410-b5e6-96231b3b80d8
* HP-UX DVDs are crunchy and good to eatDuraid Madina2005-12-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25052 91177308-0d34-0410-b5e6-96231b3b80d8
* almost got the HP-UX tester up.. :)Duraid Madina2005-12-302-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25051 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for generating v4i32 altivec codeNate Begeman2005-12-303-97/+180
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25046 91177308-0d34-0410-b5e6-96231b3b80d8
* This gets most of the backends building with HP HappyC++.Duraid Madina2005-12-271-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25029 91177308-0d34-0410-b5e6-96231b3b80d8
* Added field noResults to Instruction.Evan Cheng2005-12-263-4/+3
| | | | | | | | | | | | | Currently tblgen cannot tell which operands in the operand list are results so it assumes the first one is a result. This is bad. Ideally we would fix this by separating results from inputs, e.g. (res R32:$dst), (ops R32:$src1, R32:$src2). But that's a more distruptive change. Adding 'let noResults = 1' is the workaround to tell tblgen that the instruction does not produces a result. It works for now since tblgen does not support instructions which produce multiple results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25017 91177308-0d34-0410-b5e6-96231b3b80d8
* more standards-compliance stuffDuraid Madina2005-12-262-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25014 91177308-0d34-0410-b5e6-96231b3b80d8
* support targetexternalsymAndrew Lenharth2005-12-241-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@25005 91177308-0d34-0410-b5e6-96231b3b80d8
* * Support for hasInFlag and hasOutFlag (on instructions). Remove nameless FLAGEvan Cheng2005-12-234-109/+122
| | | | | | | | support which is fragile. * Fixed a number of bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24996 91177308-0d34-0410-b5e6-96231b3b80d8
* silence some bogus gcc warningsChris Lattner2005-12-221-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24962 91177308-0d34-0410-b5e6-96231b3b80d8
* Attempt to fix a crash on WIN32.Evan Cheng2005-12-221-15/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24936 91177308-0d34-0410-b5e6-96231b3b80d8
* * Added support for FLAG - a special nameless flag register. Can be used asEvan Cheng2005-12-222-65/+68
| | | | | | | | either an operand or a result. * Fixed some more flag / chain bugs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24933 91177308-0d34-0410-b5e6-96231b3b80d8
* Allows instructions which no explicit operands. e.g. X86 RET which has butEvan Cheng2005-12-211-6/+5
| | | | | | | an implicit flag operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24916 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate some GCC warnings from the generated codeChris Lattner2005-12-211-10/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24897 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the semantic of Requires<[cond]> to mean if (!cond) goto PXXFail;Evan Cheng2005-12-201-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24883 91177308-0d34-0410-b5e6-96231b3b80d8
* This ugly patch works around a GCC bug where it is compiling SelectCode toChris Lattner2005-12-201-22/+56
| | | | | | | | | | | | | | use too much stack space, overflowing the stack for large functions. Instead of emitting new SDOperands in each match block, we emit some common ones at the top of SelectCode then reuse them when possible. This reduces the stack size of SelectCode from 28K to 21K. Note that GCC compiles it to 512 bytes :-/ I've filed GCC PR 25505 to track this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24882 91177308-0d34-0410-b5e6-96231b3b80d8
* Now support instructions with implicit write to non-flag registers.Evan Cheng2005-12-201-51/+91
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24878 91177308-0d34-0410-b5e6-96231b3b80d8
* Lefted out a fix in the previous check in.Evan Cheng2005-12-201-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24873 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix another bug related to chain / flag.Evan Cheng2005-12-191-8/+20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24868 91177308-0d34-0410-b5e6-96231b3b80d8
* Fixes for a number of bugs: save flag results in CodeGenMap, folded chainsEvan Cheng2005-12-191-23/+33
| | | | | | | may not all have ResNo == 0. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24858 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle basic block nodesChris Lattner2005-12-181-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24833 91177308-0d34-0410-b5e6-96231b3b80d8
* More fixes for Selection of copyto/fromreg with a flagChris Lattner2005-12-181-11/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24829 91177308-0d34-0410-b5e6-96231b3b80d8
* Select copytoreg and copyfromreg nodes that have flag operands correctly.Chris Lattner2005-12-181-9/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24827 91177308-0d34-0410-b5e6-96231b3b80d8
* Support for read / write from explicit registers with FlagVT type.Evan Cheng2005-12-173-42/+112
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24753 91177308-0d34-0410-b5e6-96231b3b80d8
* Added support to specify predicates.Evan Cheng2005-12-142-39/+88
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24715 91177308-0d34-0410-b5e6-96231b3b80d8
* Skip over srcvalue nodes when generating ISEL code.Evan Cheng2005-12-141-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24704 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fix: CodeGenMap[N] = ... -> CodeGenMap[N.getValue(0)] = ...Evan Cheng2005-12-121-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24680 91177308-0d34-0410-b5e6-96231b3b80d8
* At top of generated isel SelectCode() is this:Evan Cheng2005-12-121-4/+2
| | | | | | | | | | | | | | | | | | | | | | | if (!N.Val->hasOneUse()) { std::map<SDOperand, SDOperand>::iterator CGMI = CodeGenMap.find(N); if (CGMI != CodeGenMap.end()) return CGMI->second; } Suppose a DAG like this: X ^ ^ / \ USE1 USE2 Suppose USE1 is being selected first and during which X is selected and returned a new node. After this, USE1 is no longer an use of X. During USE2 selection, X will be selected again since it has only one use! The fix is to always query CodeGenMap. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24679 91177308-0d34-0410-b5e6-96231b3b80d8
* Bug fix: finding the correct incoming chain for pattern with nested src ↵Evan Cheng2005-12-121-14/+17
| | | | | | operand. And a minor change to make output code slightly more readible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24669 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for TargetConstantPool nodes to the dag isel emitter, and useNate Begeman2005-12-101-0/+2
| | | | | | | | them in the PPC backend, to simplify some logic out of Select and SelectAddr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24657 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop emitting a redudant type check for complex pattern node.Evan Cheng2005-12-101-5/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24655 91177308-0d34-0410-b5e6-96231b3b80d8
* For instructions which produce no result, e.g. store, chain's Resno == 0.Evan Cheng2005-12-101-4/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24652 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a new SDTCisPtrTy constraint, which indicates that an operand must haveChris Lattner2005-12-092-2/+8
| | | | | | | the same type as the pointer type for a target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24649 91177308-0d34-0410-b5e6-96231b3b80d8
* * Do not allow nodes which produce chain results (e.g. loads) to be folded ifEvan Cheng2005-12-092-420/+414
| | | | | | | | | | it has more than one real use (non-chain uses). * Record folded chain producing node in CodeGenMap. * Do not fold a chain producing node if it has already been selected as an operand of a chain use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24647 91177308-0d34-0410-b5e6-96231b3b80d8
* Prevent folding of instructions which produce chains that have more than 1 ↵Evan Cheng2005-12-092-4/+9
| | | | | | real use git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24643 91177308-0d34-0410-b5e6-96231b3b80d8