summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
...
* Reduce (cmp 0, and_su (foo, bar)) into (bit foo, bar). This saves extra ↵Anton Korobeynikov2009-12-081-1/+65
| | | | | | instruction. Patch inspired by Brian Lucas! llvm-svn: 90819
* Don't enable the post-RA scheduler on x86 except at -O3. In itsDan Gohman2009-12-071-1/+1
| | | | | | current form, it is too expensive in compile time. llvm-svn: 90781
* Some pretty-printingAnton Korobeynikov2009-12-071-0/+1
| | | | llvm-svn: 90742
* Add lowering of returnaddr and frameaddr intrinsics. Shamelessly stolen from ↵Anton Korobeynikov2009-12-073-1/+65
| | | | | | x86 :) llvm-svn: 90740
* Initial codegen support for MSP430 ISRsAnton Korobeynikov2009-12-074-8/+54
| | | | llvm-svn: 90739
* Add ability to select hw multiplier mode and select appropriate libcalls.Anton Korobeynikov2009-12-071-0/+29
| | | | llvm-svn: 90737
* Dynamic stack realignment use of sp register as source/dest registerAnton Korobeynikov2009-12-061-4/+27
| | | | | | | | | | in "bic sp, sp, #15" leads to unpredicatble behaviour in Thumb2 mode. Emit the following code instead: mov r4, sp bic r4, r4, #15 mov sp, r4 llvm-svn: 90724
* Calling InvalidateEntry during the refinement was breaking the bootstrap.Bill Wendling2009-12-051-2/+12
| | | | llvm-svn: 90656
* Final cleanups:Bill Wendling2009-12-051-14/+2
| | | | | | | - Privatize a typedef. - Call the InvalidateEntry when refining a type. llvm-svn: 90655
* Inline methods which are called only once.Bill Wendling2009-12-051-15/+3
| | | | llvm-svn: 90640
* Refactor some code. No functionality change.Bill Wendling2009-12-051-9/+13
| | | | llvm-svn: 90639
* Remove the target hook TargetInstrInfo::BlockHasNoFallThrough in favor ofDan Gohman2009-12-0523-193/+0
| | | | | | | MachineBasicBlock::canFallThrough(), which is target-independent and more thorough. llvm-svn: 90634
* Remove an unneeded include.David Greene2009-12-041-1/+0
| | | | llvm-svn: 90625
* Have hasLoad/StoreFrom/ToStackSlot return the relevant MachineMemOperand.David Greene2009-12-042-9/+21
| | | | llvm-svn: 90608
* Some code cleanup. No functionality change.Bill Wendling2009-12-041-15/+10
| | | | llvm-svn: 90588
* remove out of date FIXME.Jim Grosbach2009-12-031-1/+0
| | | | llvm-svn: 90490
* expand note.Chris Lattner2009-12-031-0/+15
| | | | llvm-svn: 90429
* add a noteChris Lattner2009-12-031-0/+32
| | | | llvm-svn: 90428
* fix a build problem with VC++, PR5664, patch by Alp Toker!Chris Lattner2009-12-031-2/+4
| | | | llvm-svn: 90419
* Recognize canonical forms of vector shuffles where the same vector is used forBob Wilson2009-12-031-1/+87
| | | | | | | | both source operands. In the canonical form, the 2nd operand is changed to an undef and the shuffle mask is adjusted to only reference elements from the 1st operand. Radar 7434842. llvm-svn: 90417
* Revert r90371. It was causing build failures.Bill Wendling2009-12-031-23/+42
| | | | llvm-svn: 90383
* Further improvements: refactoring code that does the same thing into oneBill Wendling2009-12-031-42/+23
| | | | | | | function, converting "dyn_cast" to "cast", asserting the correct things, and other general cleanups. llvm-svn: 90371
* yay for case insensitive file systems (?)Chris Lattner2009-12-031-1/+1
| | | | llvm-svn: 90370
* remove some dead std::ostream using code.Chris Lattner2009-12-031-9/+0
| | | | llvm-svn: 90366
* improve portability to avoid conflicting with std::next in c++'0x.Chris Lattner2009-12-0317-35/+37
| | | | | | Patch by Howard Hinnant! llvm-svn: 90365
* This initial code is meant to convert TargetData to use an AbstractTypesUser soBill Wendling2009-12-031-59/+38
| | | | | | | | | that it doesn't have dangling pointers when abstract types are resolved. This modifies it somewhat to address comments: making the "StructLayoutMap" an anonymous structure, calling "removeAbstractTypeUser" when appropriate, and adding asserts where helpful. llvm-svn: 90362
* Factor the stack alignment calculations out into a target independent pass.Jim Grosbach2009-12-026-132/+5
| | | | | | No functionality change. llvm-svn: 90336
* Thumb1 exception handling setjmpJim Grosbach2009-12-013-0/+42
| | | | llvm-svn: 90246
* For VLDM/VSTM (Advanced SIMD), set encoding bits Inst{11-8} to 0b1011.Johnny Chen2009-12-011-2/+2
| | | | llvm-svn: 90243
* For VMOV (immediate), make some of the encoding bits (cmode and op) unspecified.Johnny Chen2009-12-011-4/+4
| | | | | | | | For VMOVv*i[16,32], op bit is don't care, and some cmode bits vary depending on the immediate values. Ref: Table A7-15 Modified immediate values for Advanced SIMD instructions. llvm-svn: 90173
* Minor whitespace fixes.Dan Gohman2009-11-302-2/+1
| | | | llvm-svn: 90166
* Fix a minor inconsistency.Dan Gohman2009-11-301-1/+1
| | | | llvm-svn: 90165
* Remove isProfitableToDuplicateIndirectBranch target hook. It is profitableBob Wilson2009-11-306-19/+0
| | | | | | | | | for all the processors where I have tried it, and even when it might not help performance, the cost is quite low. The opportunities for duplicating indirect branches are limited by other factors so code size does not change much due to tail duplicating indirect branches aggressively. llvm-svn: 90144
* Fix some more ARM unified syntax warnings.Bob Wilson2009-11-301-4/+4
| | | | llvm-svn: 90141
* Added support to allow clients to custom widen. For X86, custom widen ↵Mon P Wang2009-11-301-0/+21
| | | | | | | | | vectors for divide/remainder since these operations can trap by unroll them and adding undefs for the resulting vector. llvm-svn: 90108
* update and consolidate the load pre notes.Chris Lattner2009-11-291-43/+42
| | | | llvm-svn: 90050
* add a deadargelim note.Chris Lattner2009-11-271-0/+23
| | | | llvm-svn: 90009
* This testcase is actually only partially redundant, and requiresChris Lattner2009-11-271-2/+2
| | | | | | the FIXME I added yesterday to be implemented. llvm-svn: 90008
* this (and probably several others) are now done.Chris Lattner2009-11-271-33/+0
| | | | llvm-svn: 89982
* Teach memdep to phi translate bitcasts. This allows us to compileChris Lattner2009-11-261-2/+0
| | | | | | | | | | | | | | | | | | | | | | | the example in GCC PR16799 to: LBB1_2: ## %bb1 movl %eax, %eax subq %rax, %rdi movq %rdi, (%rcx) movl (%rdi), %eax testl %eax, %eax je LBB1_2 instead of: LBB1_2: ## %bb1 movl (%rdi), %ecx subq %rcx, %rdi movq %rdi, (%rax) cmpl $0, (%rdi) je LBB1_2 llvm-svn: 89978
* Teach basicaa that x|c == x+c when the c bits of x are clear. ThisChris Lattner2009-11-261-17/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | allows us to compile the example in readme.txt into: LBB1_1: ## %bb movl 4(%rdx,%rax), %ecx movl %ecx, %esi imull (%rdx,%rax), %esi imull %esi, %ecx movl %esi, 8(%rdx,%rax) imull %ecx, %esi movl %ecx, 12(%rdx,%rax) movl %esi, 16(%rdx,%rax) imull %ecx, %esi movl %esi, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 instead of: LBB1_1: movl (%rdx,%rax), %ecx imull 4(%rdx,%rax), %ecx movl %ecx, 8(%rdx,%rax) imull 4(%rdx,%rax), %ecx movl %ecx, 12(%rdx,%rax) imull 8(%rdx,%rax), %ecx movl %ecx, 16(%rdx,%rax) imull 12(%rdx,%rax), %ecx movl %ecx, 20(%rdx,%rax) addq $16, %rax cmpq $4000, %rax jne LBB1_1 GCC (4.2) doesn't seem to be able to eliminate the loads in this testcase either, it generates: L2: movl (%rdx), %eax imull 4(%rdx), %eax movl %eax, 8(%rdx) imull 4(%rdx), %eax movl %eax, 12(%rdx) imull 8(%rdx), %eax movl %eax, 16(%rdx) imull 12(%rdx), %eax movl %eax, 20(%rdx) addl $4, %ecx addq $16, %rdx cmpl $1002, %ecx jne L2 llvm-svn: 89952
* teach basicaa that A[i] != A[i+1].Chris Lattner2009-11-261-2/+0
| | | | llvm-svn: 89951
* update some notes slightlyChris Lattner2009-11-261-3/+5
| | | | llvm-svn: 89913
* Rollback changes r89516: Added two SubtargetFeatures::AddFeatures methods, ↵Viktor Kutuzov2009-11-251-27/+0
| | | | | | which accept a comma-separated string or already parsed command line parameters as input, and some code re-factoring to use these new methods. llvm-svn: 89893
* Tail duplicate indirect branches for PowerPC, too.Bob Wilson2009-11-251-0/+2
| | | | | | | With the testcase for pr3120, the "threaded interpreter" runtime decreases from 1788 to 1413 with this change. llvm-svn: 89877
* Avoid some possibly unsafe uses of StringRef::data().Benjamin Kramer2009-11-251-4/+2
| | | | llvm-svn: 89873
* Use StringRef (again) in DebugInfo interface.Devang Patel2009-11-251-4/+4
| | | | llvm-svn: 89866
* Based on the testcase for pr3120, running on my MacPro with Xeon processors,Bob Wilson2009-11-251-0/+2
| | | | | | | it is definitely profitable to tail duplicate indirect branches for x86. This is likely to be true to various degrees for all modern x86 processors. llvm-svn: 89865
* Support PIC loading of constant pool entriesBruno Cardoso Lopes2009-11-252-13/+20
| | | | llvm-svn: 89863
* Sketch structure for X86 disassembler.Daniel Dunbar2009-11-254-1/+52
| | | | llvm-svn: 89850
OpenPOWER on IntegriCloud