summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Change this to work with renamed intrinsics.Chris Lattner2006-03-031-1/+7
| | | | llvm-svn: 26484
* Make this work with renamed intrinsics.Chris Lattner2006-03-031-26/+25
| | | | llvm-svn: 26482
* updates for recent changesChris Lattner2006-03-031-2/+4
| | | | llvm-svn: 26481
* remove the read/write port/io intrinsics.Chris Lattner2006-03-038-174/+12
| | | | llvm-svn: 26479
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-033-12/+30
| | | | | | PR709, and paving the way for future progress. llvm-svn: 26476
* Simplify the autoupgrade interfaceChris Lattner2006-03-021-6/+3
| | | | llvm-svn: 26475
* Split memcpy/memset/memmove intrinsics into i32/i64 versions, resolvingChris Lattner2006-03-023-139/+128
| | | | | | | | | | | PR709, and paving the way for future progress. Significantly refactor autoupgrading code, to handle the more complex case (where we upgrade one argument in a function), and fix some bugs in it. Testcase here: llvm/test/Regression/Bytecode/memcpy.ll llvm-svn: 26474
* add a noteChris Lattner2006-03-021-0/+7
| | | | llvm-svn: 26472
* - Fixed some priority calculation bugs that were causing bug 478. Among them:Evan Cheng2006-03-021-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
* Generalize the REM folding code to handle another case Nick LewyckyChris Lattner2006-03-021-13/+43
| | | | | | pointed out: realize the AND can provide factors and look through Casts. llvm-svn: 26469
* Support for enumerations.Jim Laskey2006-03-012-2/+57
| | | | llvm-svn: 26466
* Don't print llvm constant in assmebly file. Assembler won't like comments thatEvan Cheng2006-03-011-1/+3
| | | | | | span multiple lines. llvm-svn: 26463
* Back out my last check-in. Wrong place to fix it.Evan Cheng2006-03-011-0/+3
| | | | llvm-svn: 26462
* AsmWriter should not print LLVM constant in comment. Assembler won't likeEvan Cheng2006-03-011-4/+0
| | | | | | multi-line comments. llvm-svn: 26461
* Fix CodeGen/Generic/2006-03-01-dagcombineinfloop.ll, an infinite loopChris Lattner2006-03-011-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 otherJim Laskey2006-03-012-55/+103
| | | | | | debug forms. llvm-svn: 26455
* Fix a typo evan noticedChris Lattner2006-03-011-1/+1
| | | | llvm-svn: 26454
* Use context and not compile unit.Jim Laskey2006-03-011-11/+13
| | | | llvm-svn: 26453
* I guess I can handle large type sizes.Jim Laskey2006-03-011-2/+1
| | | | llvm-svn: 26452
* Basic array support.Jim Laskey2006-03-012-10/+197
| | | | llvm-svn: 26451
* Implement CodeGen/PowerPC/or-addressing-mode.ll, which is also PR668.Chris Lattner2006-03-011-18/+59
| | | | llvm-svn: 26450
* add a noteChris Lattner2006-03-011-0/+18
| | | | llvm-svn: 26448
* Compile this:Chris Lattner2006-03-015-13/+42
| | | | | | | | | | | | | | | | | | | | | | | | | void foo(float a, int *b) { *b = a; } to this: _foo: fctiwz f0, f1 stfiwx f0, 0, r4 blr instead of this: _foo: fctiwz f0, f1 stfd f0, -8(r1) lwz r2, -4(r1) stw r2, 0(r4) blr This implements CodeGen/PowerPC/stfiwx.ll, and also incidentally does the right thing for GCC bugzilla 26505. llvm-svn: 26447
* Use a target-specific dag-combine to implement CodeGen/PowerPC/fp-int-fp.ll.Chris Lattner2006-03-013-25/+42
| | | | llvm-svn: 26445
* Add support for target-specific dag combinesChris Lattner2006-03-011-13/+58
| | | | llvm-svn: 26443
* Add interfaces for targets to provide target-specific dag combiner ↵Chris Lattner2006-03-011-0/+8
| | | | | | optimizations. llvm-svn: 26442
* Add a new AddToWorkList method, start using itChris Lattner2006-03-011-57/+63
| | | | llvm-svn: 26441
* Pull shifts by a constant through multiplies (a form of reassociation),Chris Lattner2006-03-011-0/+27
| | | | | | implementing Regression/CodeGen/X86/mul-shift-reassoc.ll llvm-svn: 26440
* Vector op lowering.Evan Cheng2006-03-012-6/+35
| | | | llvm-svn: 26438
* Vector ops lowering.Evan Cheng2006-03-013-50/+76
| | | | llvm-svn: 26436
* New type v2f32.Evan Cheng2006-03-011-2/+3
| | | | llvm-svn: 26435
* - Added VConstant as an abstract version of ConstantVec.Evan Cheng2006-03-011-12/+19
| | | | | | | - All abstrct vector nodes must have # of elements and element type as their first two operands. llvm-svn: 26432
* Another entry.Evan Cheng2006-02-281-0/+16
| | | | llvm-svn: 26430
* Don't match x << 1 to LEAL. It's better to emit x + x.Evan Cheng2006-02-281-1/+4
| | | | llvm-svn: 26429
* Add const, volatile, restrict support.Jim Laskey2006-02-282-5/+67
| | | | | | Add array of debug descriptor support. llvm-svn: 26428
* Fix a regression in a patch from a couple of days ago. This fixesChris Lattner2006-02-281-1/+3
| | | | | | Transforms/InstCombine/2006-02-28-Crash.ll llvm-svn: 26427
* Add a subtarget feature for the stfiwx instruction. I know the G5 has it,Chris Lattner2006-02-282-2/+6
| | | | | | | but I don't know what other PPC impls do. If someone could update the proc table, I would appreciate it :) llvm-svn: 26421
* Compile:Chris Lattner2006-02-281-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
* remove implemented itemChris Lattner2006-02-281-17/+0
| | | | llvm-svn: 26418
* Fold "and (LOAD P), 255" -> zextload. This allows us to compile:Chris Lattner2006-02-281-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 Lattner2006-02-281-3/+11
| | | | llvm-svn: 26416
* Implement rem.ll:test[7-9] and PR712Chris Lattner2006-02-281-6/+22
| | | | llvm-svn: 26415
* Simplify some code now that the RHS of a rem can't be 0Chris Lattner2006-02-281-8/+6
| | | | llvm-svn: 26413
* Rearrange some code, fold "rem X, 0", implementing rem.ll:test6Chris Lattner2006-02-281-38/+39
| | | | llvm-svn: 26411
* Add support for output memory constraints.Chris Lattner2006-02-271-7/+38
| | | | llvm-svn: 26410
* Qualify dwarf namespace inside llvm namespace.Jim Laskey2006-02-272-2/+5
| | | | llvm-svn: 26409
* readme updatesNate Begeman2006-02-271-21/+26
| | | | llvm-svn: 26405
* Partial enabling of functions.Jim Laskey2006-02-271-1/+1
| | | | llvm-svn: 26404
* Don't print constant initializers, they may span lines now.Chris Lattner2006-02-271-2/+0
| | | | llvm-svn: 26403
* Supporting multiple compile units.Jim Laskey2006-02-271-136/+185
| | | | llvm-svn: 26402
OpenPOWER on IntegriCloud