Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Move the available queue to being inside the ListSchedule method, since it | Chris Lattner | 2006-03-05 | 1 | -10/+15 |
| | | | | | | bounds its lifetime. llvm-svn: 26550 | ||||
* | Reinstate this now that the offending opposite xform has been removed. | Chris Lattner | 2006-03-05 | 1 | -0/+7 |
| | | | | llvm-svn: 26548 | ||||
* | print arbitrary constant pool entries | Chris Lattner | 2006-03-05 | 1 | -0/+9 |
| | | | | llvm-svn: 26545 | ||||
* | Back out fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) for now. | Evan Cheng | 2006-03-05 | 1 | -7/+0 |
| | | | | | | It's causing an infinite loop compiling ldecod on x86 / Darwin. llvm-svn: 26544 | ||||
* | Add some simple copysign folds | Chris Lattner | 2006-03-05 | 2 | -7/+61 |
| | | | | llvm-svn: 26543 | ||||
* | Codegen copysign[f] into a FCOPYSIGN node | Chris Lattner | 2006-03-05 | 3 | -4/+63 |
| | | | | llvm-svn: 26542 | ||||
* | fold (mul (add x, c1), c2) -> (add (mul x, c2), c1*c2) | Chris Lattner | 2006-03-04 | 1 | -1/+14 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fold (shl (add x, c1), c2) -> (add (shl x, c2), c1<<c2) This allows us to compile CodeGen/PowerPC/addi-reassoc.ll into: _test1: slwi r2, r4, 4 add r2, r2, r3 lwz r3, 36(r2) blr _test2: mulli r2, r4, 5 add r2, r2, r3 lbz r2, 11(r2) extsb r3, r2 blr instead of: _test1: addi r2, r4, 2 slwi r2, r2, 4 add r2, r3, r2 lwz r3, 4(r2) blr _test2: addi r2, r4, 2 mulli r2, r2, 5 add r2, r3, r2 lbz r2, 1(r2) extsb r3, r2 blr llvm-svn: 26535 | ||||
* | Added support for dwarf block data entries. | Jim Laskey | 2006-03-03 | 1 | -49/+248 |
| | | | | llvm-svn: 26509 | ||||
* | Adding basic structure support. | Jim Laskey | 2006-03-03 | 2 | -4/+46 |
| | | | | llvm-svn: 26505 | ||||
* | Add more vector NodeTypes: VSDIV, VUDIV, VAND, VOR, and VXOR. | Evan Cheng | 2006-03-03 | 2 | -8/+20 |
| | | | | llvm-svn: 26504 | ||||
* | SDOperand::isOperand should not be a forwarding. It must check *this against ↵ | Evan Cheng | 2006-03-03 | 1 | -0/+7 |
| | | | | | | N's operands. llvm-svn: 26502 | ||||
* | Added isOperand(N): true if this is an operand of N | Evan Cheng | 2006-03-03 | 1 | -0/+7 |
| | | | | llvm-svn: 26501 | ||||
* | A bit more tweaking | Evan Cheng | 2006-03-03 | 1 | -6/+24 |
| | | | | llvm-svn: 26500 | ||||
* | Fix VC++ compilation errors. | Jeff Cohen | 2006-03-03 | 1 | -4/+4 |
| | | | | llvm-svn: 26498 | ||||
* | Move #include "llvm/CodeGen/AsmPrinter.h" to top since it's the interface. | Evan Cheng | 2006-03-03 | 1 | -1/+1 |
| | | | | llvm-svn: 26493 | ||||
* | remove the read/write port/io intrinsics. | Chris Lattner | 2006-03-03 | 3 | -91/+0 |
| | | | | llvm-svn: 26479 | ||||
* | Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolving | Chris Lattner | 2006-03-03 | 2 | -9/+24 |
| | | | | | | PR709, and paving the way for future progress. llvm-svn: 26476 | ||||
* | - Fixed some priority calculation bugs that were causing bug 478. Among them: | Evan Cheng | 2006-03-02 | 1 | -64/+98 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | a predecessor appearing more than once in the operand list was counted as multiple predecessor; priority1 should be updated during scheduling; CycleBound was updated after the node is inserted into priority queue; one of the tie breaking condition was flipped. - Take into consideration of two address opcodes. If a predecessor is a def&use operand, it should have a higher priority. - Scheduler should also favor floaters, i.e. nodes that do not have real predecessors such as MOV32ri. - The scheduling fixes / tweaks fixed bug 478: .text .align 4 .globl _f _f: movl 4(%esp), %eax movl 8(%esp), %ecx movl %eax, %edx imull %ecx, %edx imull %eax, %eax imull %ecx, %ecx addl %eax, %ecx leal (%ecx,%edx,2), %eax ret It is also a slight performance win (1% - 3%) for most tests. llvm-svn: 26470 | ||||
* | Support for enumerations. | Jim Laskey | 2006-03-01 | 2 | -2/+57 |
| | | | | llvm-svn: 26466 | ||||
* | Don't print llvm constant in assmebly file. Assembler won't like comments that | Evan Cheng | 2006-03-01 | 1 | -1/+3 |
| | | | | | | span multiple lines. llvm-svn: 26463 | ||||
* | Fix CodeGen/Generic/2006-03-01-dagcombineinfloop.ll, an infinite loop | Chris Lattner | 2006-03-01 | 1 | -4/+9 |
| | | | | | | in the dag combiner on 176.gcc on x86. llvm-svn: 26459 | ||||
* | Switch back to using actual dwarf tags. Simplifies code without loss to other | Jim Laskey | 2006-03-01 | 2 | -55/+103 |
| | | | | | | debug forms. llvm-svn: 26455 | ||||
* | Fix a typo evan noticed | Chris Lattner | 2006-03-01 | 1 | -1/+1 |
| | | | | llvm-svn: 26454 | ||||
* | Use context and not compile unit. | Jim Laskey | 2006-03-01 | 1 | -11/+13 |
| | | | | llvm-svn: 26453 | ||||
* | I guess I can handle large type sizes. | Jim Laskey | 2006-03-01 | 1 | -2/+1 |
| | | | | llvm-svn: 26452 | ||||
* | Basic array support. | Jim Laskey | 2006-03-01 | 2 | -10/+197 |
| | | | | llvm-svn: 26451 | ||||
* | Add support for target-specific dag combines | Chris Lattner | 2006-03-01 | 1 | -13/+58 |
| | | | | llvm-svn: 26443 | ||||
* | Add a new AddToWorkList method, start using it | Chris Lattner | 2006-03-01 | 1 | -57/+63 |
| | | | | llvm-svn: 26441 | ||||
* | Pull shifts by a constant through multiplies (a form of reassociation), | Chris Lattner | 2006-03-01 | 1 | -0/+27 |
| | | | | | | implementing Regression/CodeGen/X86/mul-shift-reassoc.ll llvm-svn: 26440 | ||||
* | Vector ops lowering. | Evan Cheng | 2006-03-01 | 3 | -50/+76 |
| | | | | llvm-svn: 26436 | ||||
* | - Added VConstant as an abstract version of ConstantVec. | Evan Cheng | 2006-03-01 | 1 | -12/+19 |
| | | | | | | | - All abstrct vector nodes must have # of elements and element type as their first two operands. llvm-svn: 26432 | ||||
* | Add const, volatile, restrict support. | Jim Laskey | 2006-02-28 | 2 | -5/+67 |
| | | | | | | Add array of debug descriptor support. llvm-svn: 26428 | ||||
* | Compile: | Chris Lattner | 2006-02-28 | 1 | -10/+17 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | unsigned foo4(unsigned short *P) { return *P & 255; } unsigned foo5(short *P) { return *P & 255; } to: _foo4: lbz r3,1(r3) blr _foo5: lbz r3,1(r3) blr not: _foo4: lhz r2, 0(r3) rlwinm r3, r2, 0, 24, 31 blr _foo5: lhz r2, 0(r3) rlwinm r3, r2, 0, 24, 31 blr llvm-svn: 26419 | ||||
* | Fold "and (LOAD P), 255" -> zextload. This allows us to compile: | Chris Lattner | 2006-02-28 | 1 | -0/+33 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | unsigned foo3(unsigned *P) { return *P & 255; } as: _foo3: lbz r3, 3(r3) blr instead of: _foo3: lwz r2, 0(r3) rlwinm r3, r2, 0, 24, 31 blr and: unsigned short foo2(float a) { return a; } as: _foo2: fctiwz f0, f1 stfd f0, -8(r1) lhz r3, -2(r1) blr instead of: _foo2: fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) rlwinm r3, r2, 0, 16, 31 blr llvm-svn: 26417 | ||||
* | fold (sra (sra x, c1), c2) -> (sra x, c1+c2) | Chris Lattner | 2006-02-28 | 1 | -3/+11 |
| | | | | llvm-svn: 26416 | ||||
* | Add support for output memory constraints. | Chris Lattner | 2006-02-27 | 1 | -7/+38 |
| | | | | llvm-svn: 26410 | ||||
* | Qualify dwarf namespace inside llvm namespace. | Jim Laskey | 2006-02-27 | 1 | -1/+1 |
| | | | | llvm-svn: 26409 | ||||
* | Partial enabling of functions. | Jim Laskey | 2006-02-27 | 1 | -1/+1 |
| | | | | llvm-svn: 26404 | ||||
* | Supporting multiple compile units. | Jim Laskey | 2006-02-27 | 1 | -136/+185 |
| | | | | llvm-svn: 26402 | ||||
* | Re-orging file. | Jim Laskey | 2006-02-27 | 1 | -556/+357 |
| | | | | llvm-svn: 26401 | ||||
* | remove some completed notes | Chris Lattner | 2006-02-27 | 1 | -4/+0 |
| | | | | llvm-svn: 26390 | ||||
* | Print ConstantPoolSDNode offset field. | Evan Cheng | 2006-02-26 | 1 | -0/+5 |
| | | | | llvm-svn: 26381 | ||||
* | Added an offset field to ConstantPoolSDNode. | Evan Cheng | 2006-02-25 | 2 | -9/+14 |
| | | | | llvm-svn: 26371 | ||||
* | Fix a bug that Evan exposed with some changes he's making, and that was | Chris Lattner | 2006-02-25 | 1 | -9/+23 |
| | | | | | | | | | exposed with a fastcc problem (breaking pcompress2 on x86 with -enable-x86-fastcc). When reloading a reused reg, make sure to invalidate the reloaded reg, and check to see if there are any other pending uses of the same register. llvm-svn: 26369 | ||||
* | Remove debugging printout :) | Chris Lattner | 2006-02-25 | 1 | -5/+6 |
| | | | | | | Add a minor compile time win, no codegen change. llvm-svn: 26368 | ||||
* | Refactor some code from being inline to being out in a new class with methods. | Chris Lattner | 2006-02-25 | 1 | -42/+97 |
| | | | | | | | | This gets rid of two gotos, which is always nice, and also adds some comments. No functionality change, this is just a refactor. llvm-svn: 26367 | ||||
* | Use the PrintAsmMemoryOperand to print addressing modes. | Chris Lattner | 2006-02-24 | 1 | -4/+19 |
| | | | | llvm-svn: 26364 | ||||
* | Pass all the flags to the asm printer, not just the # operands. | Chris Lattner | 2006-02-24 | 2 | -3/+5 |
| | | | | llvm-svn: 26362 | ||||
* | rename NumOps -> NumVals to avoid shadowing a NumOps var in an outer scope. | Chris Lattner | 2006-02-24 | 1 | -5/+11 |
| | | | | | | Add support for addressing modes. llvm-svn: 26361 | ||||
* | Refactor operand adding out to a new AddOperand method | Chris Lattner | 2006-02-24 | 1 | -66/+81 |
| | | | | llvm-svn: 26358 |