summaryrefslogtreecommitdiffstats
path: root/llvm/utils
Commit message (Collapse)AuthorAgeFilesLines
* Allow transformation from GlobalAddress to TargetGlobalAddress andEvan Cheng2006-01-121-13/+24
| | | | | | ExternalSymbol to TargetExternalSymbol. llvm-svn: 25252
* GlobalAddress -> TargetGlobalAddress; ExternalSymbol -> TargetExternalSymbolEvan Cheng2006-01-121-2/+14
| | | | llvm-svn: 25245
* Some minor fixes.Evan Cheng2006-01-111-26/+19
| | | | llvm-svn: 25227
* Always select target registers to themselvesChris Lattner2006-01-111-0/+1
| | | | llvm-svn: 25218
* Emit an error instead of an assertion if trying to do bogus things in result ↵Chris Lattner2006-01-111-2/+2
| | | | | | patterns. llvm-svn: 25194
* Added support for the extractelement operation.Robert Bocchino2006-01-101-81/+81
| | | | llvm-svn: 25181
* * 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. llvm-svn: 25154
* Pattern complexity calculation fix.Evan Cheng2006-01-061-4/+9
| | | | llvm-svn: 25133
* Tweak pattern complexity calc.Evan Cheng2006-01-061-9/+4
| | | | llvm-svn: 25122
* Bug fix wrt chain operand.Evan Cheng2006-01-061-7/+4
| | | | llvm-svn: 25115
* 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. llvm-svn: 25076
* 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++. llvm-svn: 25075
* Remove obsolete comment, make things look a bit nicerChris Lattner2006-01-041-2/+1
| | | | llvm-svn: 25070
* 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. llvm-svn: 25069
* 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. llvm-svn: 25068
* HP-UX DVDs are crunchy and good to eatDuraid Madina2005-12-301-1/+1
| | | | llvm-svn: 25052
* almost got the HP-UX tester up.. :)Duraid Madina2005-12-302-7/+7
| | | | llvm-svn: 25051
* Add support for generating v4i32 altivec codeNate Begeman2005-12-303-97/+180
| | | | llvm-svn: 25046
* This gets most of the backends building with HP HappyC++.Duraid Madina2005-12-271-1/+2
| | | | llvm-svn: 25029
* 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. llvm-svn: 25017
* more standards-compliance stuffDuraid Madina2005-12-262-0/+3
| | | | llvm-svn: 25014
* support targetexternalsymAndrew Lenharth2005-12-241-0/+4
| | | | llvm-svn: 25005
* * Support for hasInFlag and hasOutFlag (on instructions). Remove nameless FLAGEvan Cheng2005-12-234-109/+122
| | | | | | | support which is fragile. * Fixed a number of bugs. llvm-svn: 24996
* silence some bogus gcc warningsChris Lattner2005-12-221-2/+2
| | | | llvm-svn: 24962
* Attempt to fix a crash on WIN32.Evan Cheng2005-12-221-15/+16
| | | | llvm-svn: 24936
* * 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. llvm-svn: 24933
* Allows instructions which no explicit operands. e.g. X86 RET which has butEvan Cheng2005-12-211-6/+5
| | | | | | an implicit flag operand. llvm-svn: 24916
* Eliminate some GCC warnings from the generated codeChris Lattner2005-12-211-10/+18
| | | | llvm-svn: 24897
* Fix the semantic of Requires<[cond]> to mean if (!cond) goto PXXFail;Evan Cheng2005-12-201-1/+1
| | | | llvm-svn: 24883
* 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. llvm-svn: 24882
* Now support instructions with implicit write to non-flag registers.Evan Cheng2005-12-201-51/+91
| | | | llvm-svn: 24878
* Added a break that I meant to include originally, for efficiency. BasicallyPatrick Meredith2005-12-201-0/+1
| | | | | | | | | | it keeps it from trying to add the same node to the node set over and over if it matches multiple given patterns. Also in cases where there are a lot of patterns to be matched, and it matches an early one, this will make the script run slightly faster. It's more there because it logically should be, than anything else, I mean, Python is never going to be fast ;-) llvm-svn: 24876
* Lefted out a fix in the previous check in.Evan Cheng2005-12-201-1/+7
| | | | llvm-svn: 24873
* Fix another bug related to chain / flag.Evan Cheng2005-12-191-8/+20
| | | | llvm-svn: 24868
* Fixes for a number of bugs: save flag results in CodeGenMap, folded chainsEvan Cheng2005-12-191-23/+33
| | | | | | may not all have ResNo == 0. llvm-svn: 24858
* This is a script to extract nodes and edges associated with those nodesPatrick Meredith2005-12-191-0/+110
| | | | | | | | | | | | | | | from a dot file that is the output of DSA. Nodes to extract are specified by giving the name of the node seen in the graphical representation, i.e. in the .ps if the node is specified %xyz asking for just x, xy, or xyz will retain it in the output file. Because it operates on substrings underspecifying may result in additional unexpected nodes. Be as specific as possible. Obviously, however, if you ask for %xyz and there is a getelementptr of %xyz you will get both nodes. Some manual editing may still be necessary because of this, but this script can pare down 10,000 line files to 20 line files, making like easier. llvm-svn: 24851
* Handle basic block nodesChris Lattner2005-12-181-0/+1
| | | | llvm-svn: 24833
* More fixes for Selection of copyto/fromreg with a flagChris Lattner2005-12-181-11/+10
| | | | llvm-svn: 24829
* Select copytoreg and copyfromreg nodes that have flag operands correctly.Chris Lattner2005-12-181-9/+37
| | | | llvm-svn: 24827
* Support for read / write from explicit registers with FlagVT type.Evan Cheng2005-12-173-42/+112
| | | | llvm-svn: 24753
* Added support to specify predicates.Evan Cheng2005-12-142-39/+88
| | | | llvm-svn: 24715
* Skip over srcvalue nodes when generating ISEL code.Evan Cheng2005-12-141-1/+7
| | | | llvm-svn: 24704
* Bug fix: CodeGenMap[N] = ... -> CodeGenMap[N.getValue(0)] = ...Evan Cheng2005-12-121-1/+1
| | | | llvm-svn: 24680
* 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. llvm-svn: 24679
* 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. llvm-svn: 24669
* Send an indicator to llvm-testresults if the build failedChris Lattner2005-12-111-1/+1
| | | | llvm-svn: 24665
* 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. llvm-svn: 24657
* Stop emitting a redudant type check for complex pattern node.Evan Cheng2005-12-101-5/+0
| | | | llvm-svn: 24655
* For instructions which produce no result, e.g. store, chain's Resno == 0.Evan Cheng2005-12-101-4/+6
| | | | llvm-svn: 24652
* 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. llvm-svn: 24649
OpenPOWER on IntegriCloud