aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* Use the 32-bit version for nowChris Lattner2005-09-301-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23534 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a bunch of patterns for F64 FP ops, add some more integer opsChris Lattner2005-09-292-38/+84
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23533 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove code for patterns that are autogeneratedChris Lattner2005-09-291-30/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23532 91177308-0d34-0410-b5e6-96231b3b80d8
* begining alpha subtarget supportAndrew Lenharth2005-09-297-19/+86
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23531 91177308-0d34-0410-b5e6-96231b3b80d8
* tblgen autogens this pattern nowChris Lattner2005-09-291-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23530 91177308-0d34-0410-b5e6-96231b3b80d8
* copy and paste errorAndrew Lenharth2005-09-291-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23528 91177308-0d34-0410-b5e6-96231b3b80d8
* now that tblgen is smarter, this pattern is not needed. Also, tblgenChris Lattner2005-09-291-3/+1
| | | | | | | now inverts commuted versions of ANDC/ORC with the current .td file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23527 91177308-0d34-0410-b5e6-96231b3b80d8
* consistency with other cases, no functionality changeChris Lattner2005-09-291-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23524 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the JIT default to the DAG isel instead of the pattern isel, like LLC.Chris Lattner2005-09-291-1/+4
| | | | | | | | | | The Pattern isel has some strange memory corruption issues going on. :( This should have been converted over anyway, but it got forgotten somehow when switching to the dag isel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23523 91177308-0d34-0410-b5e6-96231b3b80d8
* Never rely on ReplaceAllUsesWith when selecting, use CodeGenMap instead.Chris Lattner2005-09-291-34/+29
| | | | | | | | ReplaceAllUsesWith does not replace scalars SDOperand floating around on the stack, permitting things to be selected multiple times. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23515 91177308-0d34-0410-b5e6-96231b3b80d8
* Codegen ADD X, IMM -> addis/addi if needed.Chris Lattner2005-09-281-2/+12
| | | | | | | This implements PowerPC/fold-li.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23514 91177308-0d34-0410-b5e6-96231b3b80d8
* Autogen MUL, move FP cases togetherChris Lattner2005-09-281-24/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23512 91177308-0d34-0410-b5e6-96231b3b80d8
* disentangle FP from INT versions of div/mulChris Lattner2005-09-281-18/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23511 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the autogenerated matcher for ADD/SUBChris Lattner2005-09-281-30/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23510 91177308-0d34-0410-b5e6-96231b3b80d8
* add a patter for SUBFICChris Lattner2005-09-281-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23509 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark int binops as int-only, add FP binops. Mark FADD/FMUL as commutative butChris Lattner2005-09-281-15/+23
| | | | | | | not associative. Add [SU]REM. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23508 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FP versions of the binary operators, keeping the int and fp worlds seperate.Chris Lattner2005-09-283-114/+120
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23506 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FP versions of the binary operators, keeping the int and fp worlds seperate.Chris Lattner2005-09-284-97/+108
| | | | | | | | | Though I have done extensive testing, it is possible that this will break things in configs I can't test. Please let me know if this causes a problem and I'll fix it ASAP. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23505 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark associative nodes as associativeChris Lattner2005-09-281-6/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23503 91177308-0d34-0410-b5e6-96231b3b80d8
* Nate pointed out that mulh[us] are commutative as well. Thanks!Chris Lattner2005-09-281-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23500 91177308-0d34-0410-b5e6-96231b3b80d8
* expose commutativity informationChris Lattner2005-09-281-8/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23498 91177308-0d34-0410-b5e6-96231b3b80d8
* All (xor *) cases are autogenerated nowChris Lattner2005-09-281-43/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23497 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for missed eqv testsChris Lattner2005-09-281-0/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23496 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement PowerPC/eqv-andc-orc-nor.ll:EQV3Chris Lattner2005-09-281-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23494 91177308-0d34-0410-b5e6-96231b3b80d8
* learn to codegen not as NOR instead of xoris/xoriChris Lattner2005-09-281-1/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23490 91177308-0d34-0410-b5e6-96231b3b80d8
* These nodes are all autogeneratedChris Lattner2005-09-281-44/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23489 91177308-0d34-0410-b5e6-96231b3b80d8
* Darwin, like many BSD systems, has a setjmp/longjmp which saves the signal maskChris Lattner2005-09-271-0/+3
| | | | | | | | | | on setjmp calls and restores it on longjmp calls (both of which require syscalls). This makes the calls REALLY slow. Use _setjmp/_longjmp instead. This speeds up hexxagon from 120.31s to 15.68s: from 5.53x slower than GCC to 28% faster than GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23482 91177308-0d34-0410-b5e6-96231b3b80d8
* fix CBackend/2005-09-27-VolatileFuncPtr.llChris Lattner2005-09-272-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23475 91177308-0d34-0410-b5e6-96231b3b80d8
* Make sure to clear the CodeGenMap after each basic block is selected to avoidChris Lattner2005-09-271-0/+1
| | | | | | | cross MBB pollution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23470 91177308-0d34-0410-b5e6-96231b3b80d8
* Move the post-lsr simplify cfg pass after lowereh, so it can clean up afterChris Lattner2005-09-271-2/+6
| | | | | | | eh lowering as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23459 91177308-0d34-0410-b5e6-96231b3b80d8
* minor pattern shufflingChris Lattner2005-09-261-8/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23458 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the dag isel generator how to construct arbitrary immediates. TheChris Lattner2005-09-241-1/+6
| | | | | | | generated isel now tries li then lis, then lis+ori. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23418 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement the isLoadFromStackSlot interfaceChris Lattner2005-09-192-0/+28
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23387 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement hook for ppcChris Lattner2005-09-172-0/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23374 91177308-0d34-0410-b5e6-96231b3b80d8
* disable this for nowChris Lattner2005-09-151-0/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23366 91177308-0d34-0410-b5e6-96231b3b80d8
* Give all operands namesChris Lattner2005-09-141-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23357 91177308-0d34-0410-b5e6-96231b3b80d8
* give all operands namesChris Lattner2005-09-142-12/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23356 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some issues exposed by more testing. XORIS had the wrong operandsChris Lattner2005-09-141-5/+5
| | | | | | | | specified. The various *imm operands defined by PPC are really all i32, even though the actual immediate is restricted to a smaller value in it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23352 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some bugs noticed by new checking codeChris Lattner2005-09-141-8/+14
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23350 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a major regression from my patch this afternoonChris Lattner2005-09-141-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23347 91177308-0d34-0410-b5e6-96231b3b80d8
* we don't need this proto any longerChris Lattner2005-09-131-1/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23342 91177308-0d34-0410-b5e6-96231b3b80d8
* move the #include for the generated code into the isel class body so weChris Lattner2005-09-131-1/+3
| | | | | | | can use/define class methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23339 91177308-0d34-0410-b5e6-96231b3b80d8
* Change the arg lowering code to use copyfromreg from vregs associatedChris Lattner2005-09-131-12/+17
| | | | | | | | | with incoming arguments instead of the pregs themselves. This fixes the scheduler from causing problems by moving a copyfromreg for an argument to after a select_cc node (now it can, and bad things won't happen). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23334 91177308-0d34-0410-b5e6-96231b3b80d8
* This has been moved to the target-indep codeChris Lattner2005-09-132-44/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23333 91177308-0d34-0410-b5e6-96231b3b80d8
* This code is no longer needed, it is moved to the target-indep codeChris Lattner2005-09-132-49/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23332 91177308-0d34-0410-b5e6-96231b3b80d8
* Majik numbers are badChris Lattner2005-09-131-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23330 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove some dead vectorsChris Lattner2005-09-131-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23329 91177308-0d34-0410-b5e6-96231b3b80d8
* PowerPC cannot truncstore i1 nativelyChris Lattner2005-09-103-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23304 91177308-0d34-0410-b5e6-96231b3b80d8
* I forgot that we always spill fp values as 64-bits. Implement spill foldingChris Lattner2005-09-091-3/+10
| | | | | | | for FP as well. This triggers a couple dozen times on 177.mesa (for example). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23299 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a problem that Nate noticed, where spill code was not getting coallescedChris Lattner2005-09-092-0/+32
| | | | | | | | | | | | | | | | | | | | | | with copies, leading to code like this: lwz r4, 380(r1) or r10, r4, r4 ;; Last use of r4 By teaching the PPC backend how to fold spills into copies, we now get this code: lwz r10, 380(r1) wow. :) This reduces a testcase nate sent me from 1505 instructions to 1484. Note that this could handle FP values but doesn't currently, for reasons mentioned in the patch git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23298 91177308-0d34-0410-b5e6-96231b3b80d8