aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* daniel remembered why this was needed.Chris Lattner2010-02-171-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96440 91177308-0d34-0410-b5e6-96231b3b80d8
* add a comment explaining why darwin/i386 uses ## as a comment.Chris Lattner2010-02-171-0/+2
| | | | | | | | It's not clear why this is really required, but it was explicitly added in r48808 with no real explanation or rdar #. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96438 91177308-0d34-0410-b5e6-96231b3b80d8
* record input chains.Chris Lattner2010-02-171-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96437 91177308-0d34-0410-b5e6-96231b3b80d8
* prefix captured value names with $ so they look likeChris Lattner2010-02-172-5/+4
| | | | | | | | variables. Use the fancy OpNo variable instead of i, which has the right index including chains. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96436 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial implementation of PIC16 Cloner pass.Sanjiv Gupta2010-02-172-0/+254
| | | | | | | | | | | | | | | This pass is supposed to be run on the linked .bc module. It traveses the module call graph twice. Once starting from the main function and marking each reached function as "ML". Again, starting from the ISR and cloning any reachable function that was marked as "ML". After cloning the function, it remaps all the call sites in IL functions to call the cloned functions. Currently only marking is being done. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96435 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't check for comments, which vary between subtargets.Dan Gohman2010-02-171-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96434 91177308-0d34-0410-b5e6-96231b3b80d8
* improve comments on OPC_Record to say what we're recording a node.Chris Lattner2010-02-173-3/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96433 91177308-0d34-0410-b5e6-96231b3b80d8
* Fold bswap(undef) to undef.Dan Gohman2010-02-172-0/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96432 91177308-0d34-0410-b5e6-96231b3b80d8
* Delete some unneeded casts.Dan Gohman2010-02-171-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96429 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't attempt to divide INT_MIN by -1; consider such cases toDan Gohman2010-02-172-0/+30
| | | | | | | have overflowed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96428 91177308-0d34-0410-b5e6-96231b3b80d8
* make the new isel's interpreter loop call the generated Chris Lattner2010-02-172-6/+10
| | | | | | | | | | CheckComplexPattern function. Though it is logically const, I don't have the fortitude to clean up all the targets now, and it not being const doesn't block anything. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96426 91177308-0d34-0410-b5e6-96231b3b80d8
* improve comments in generated matcher a bit.Chris Lattner2010-02-171-12/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96422 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the operand and format specifier match, and print allDan Gohman2010-02-171-1/+1
| | | | | | | 64 bits, fixing a variety of problems. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96421 91177308-0d34-0410-b5e6-96231b3b80d8
* make the new isel generator plop out a CheckComplexPattern functionChris Lattner2010-02-174-6/+52
| | | | | | | | for evaluating complex patterns. Some cleanup has to happen before this can be used though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96419 91177308-0d34-0410-b5e6-96231b3b80d8
* Wrap lines to 80 columns and generally try to clean up whitespace andBob Wilson2010-02-171-312/+216
| | | | | | | indentation. No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96418 91177308-0d34-0410-b5e6-96231b3b80d8
* roundss is an sse 4 thing, fix the test on non-sse41 buildersChris Lattner2010-02-171-1/+1
| | | | | | | like llvm-gcc-x86_64-darwin10-selfhost git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96417 91177308-0d34-0410-b5e6-96231b3b80d8
* fix inverted condition.Chris Lattner2010-02-171-1/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96416 91177308-0d34-0410-b5e6-96231b3b80d8
* Make g5 target explicit; scheduling affects register choice.Dale Johannesen2010-02-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96413 91177308-0d34-0410-b5e6-96231b3b80d8
* complex patterns don't get 'record' nodes, they implicitlyChris Lattner2010-02-161-1/+20
| | | | | | | record all their results. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96412 91177308-0d34-0410-b5e6-96231b3b80d8
* clean up some code, eliminate NodeIsComplexPattern, whichChris Lattner2010-02-161-18/+5
| | | | | | | does the same thing as getComplexPatternInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96411 91177308-0d34-0410-b5e6-96231b3b80d8
* Make error statement more personal.Bill Wendling2010-02-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96410 91177308-0d34-0410-b5e6-96231b3b80d8
* fix indentationChris Lattner2010-02-161-62/+66
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96409 91177308-0d34-0410-b5e6-96231b3b80d8
* fix rdar://7653908, a crash on a case where we would fold a loadChris Lattner2010-02-164-49/+62
| | | | | | | | | | | | into a roundss intrinsic, producing a cyclic dag. The root cause of this is badness handling ComplexPattern nodes in the old dagisel that I noticed through inspection. Eliminate a copy of the of the code that handled ComplexPatterns by making EmitChildMatchCode call into EmitMatchCode. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96408 91177308-0d34-0410-b5e6-96231b3b80d8
* Adjust register numbers in tests to compensate for theDale Johannesen2010-02-164-14/+14
| | | | | | | | new lack of R2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96407 91177308-0d34-0410-b5e6-96231b3b80d8
* filecheckizeChris Lattner2010-02-161-3/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96404 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle tGPR register class in a few more places. This fixes some llvm-gccBob Wilson2010-02-161-0/+10
| | | | | | | build failures due to my fix for pr6111. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96402 91177308-0d34-0410-b5e6-96231b3b80d8
* Add SMC (Secure Monitor Call) system instruction for disassembly only.Johnny Chen2010-02-161-2/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96401 91177308-0d34-0410-b5e6-96231b3b80d8
* Really reserve R2 on PPC Darwin. PR 6314.Dale Johannesen2010-02-161-8/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96399 91177308-0d34-0410-b5e6-96231b3b80d8
* Use line and column number to distinguish two lexical blocks at the same level.Devang Patel2010-02-162-7/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96395 91177308-0d34-0410-b5e6-96231b3b80d8
* 80 column cleanupJim Grosbach2010-02-163-21/+24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96393 91177308-0d34-0410-b5e6-96231b3b80d8
* New testcase.Devang Patel2010-02-161-0/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96391 91177308-0d34-0410-b5e6-96231b3b80d8
* Look for SSE and instructions of this form: (and x, (build_vector c1,c2,c3,c4)).Evan Cheng2010-02-163-5/+62
| | | | | | | | | | | | | | If there exists a use of a build_vector that's the bitwise complement of the mask, then transform the node to (and (xor x, (build_vector -1,-1,-1,-1)), (build_vector ~c1,~c2,~c3,~c4)). Since this transformation is only useful when 1) the given build_vector will become a load from constpool, and 2) (and (xor x -1), y) matches to a single instruction, I decided this is appropriate as a x86 specific transformation. rdar://7323335 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96389 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove trailing whitespaceJim Grosbach2010-02-163-46/+46
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96388 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename SuccessorNumber to GetSuccessorNumber.Bob Wilson2010-02-163-11/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96387 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for emitting non-temporal stores for DAGs markedDavid Greene2010-02-163-13/+115
| | | | | | | | | | | non-temporal. Fix from r96241 for botched encoding of MOVNTDQ. Add documentation for !nontemporal metadata. Add a simpler movnt testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96386 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase for critical edge splitting with load PRE.Bob Wilson2010-02-161-0/+27
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96385 91177308-0d34-0410-b5e6-96231b3b80d8
* Update Thumb2 to not use CarryDefIsUnused or CarryDefIsUsed predicates, butJim Grosbach2010-02-162-21/+25
| | | | | | | | | | to have the predicate on the pattern itself instead. Support for the new ISel. Remove definitions of CarryDefIsUnused and CarryDefIsUsed since they are no longer used anywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96384 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove redundant setting of Defs. CPSR is already marked by the block level ↵Jim Grosbach2010-02-161-3/+0
| | | | | | set of Defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96383 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor rewriting for PHI nodes into a separate function.Dan Gohman2010-02-161-49/+70
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96382 91177308-0d34-0410-b5e6-96231b3b80d8
* First step in eliminating the CarryDefIsUnused and CarryDefIsUsed predicates.Jim Grosbach2010-02-161-18/+33
| | | | | | | | | | | | They won't work with the new ISel mechanism, as Requires predicates are no longer allowed to reference the node being selected. Moving the predicate to the patterns instead solves the problem. This patch handles ARM mode. Thumb2 will follow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96381 91177308-0d34-0410-b5e6-96231b3b80d8
* Added for disassembly the following instructions:Johnny Chen2010-02-161-3/+128
| | | | | | | | | o Store Return State (SRSW, SRS) o Load/Store Coprocessor (LDC/STC and friends) o MSR (immediate) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96380 91177308-0d34-0410-b5e6-96231b3b80d8
* Split critical edges as needed for load PRE.Bob Wilson2010-02-163-9/+43
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96378 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor to share code to find the position of a basic block successor in theBob Wilson2010-02-163-19/+23
| | | | | | | terminator's list of successors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96377 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix whitespace.Dan Gohman2010-02-161-3/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96372 91177308-0d34-0410-b5e6-96231b3b80d8
* Function attributes have index ~0, not 0Kenneth Uildriks2010-02-161-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96370 91177308-0d34-0410-b5e6-96231b3b80d8
* simplify this code. In the new world order there is noChris Lattner2010-02-161-27/+24
| | | | | | | need to scan the entire subtree of the pattern anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96369 91177308-0d34-0410-b5e6-96231b3b80d8
* convert the new matcher to check intermediate nodes for a singleChris Lattner2010-02-165-47/+32
| | | | | | | | | | use and only call IsProfitableToFold/IsLegalToFold on the load being folded, like the old dagiselemitter does. This substantially simplifies the code and improves opportunities for sharing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96368 91177308-0d34-0410-b5e6-96231b3b80d8
* change dag isel emitter to only call 'IsProfitableToFold' on nodesChris Lattner2010-02-161-3/+13
| | | | | | | | | with chains. On interior nodes that lead up to them, we just directly check that there is a single use. This generates slightly more efficient code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96366 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix pr6111: Avoid using the LR register for the target address of an indirectBob Wilson2010-02-163-4/+27
| | | | | | | | | branch in ARM v4 code, since it gets clobbered by the return address before it is used. Instead of adding a new register class containing all the GPRs except LR, just use the existing tGPR class. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96360 91177308-0d34-0410-b5e6-96231b3b80d8
* Introduce isOpaqueTy and use it rather than isa<OpaqueType>. Also, move someDuncan Sands2010-02-1610-34/+38
| | | | | | | methods to try to have the type predicates be more logically positioned. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96349 91177308-0d34-0410-b5e6-96231b3b80d8