aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target
Commit message (Collapse)AuthorAgeFilesLines
* add a note, this is actually not too bad to implement.Chris Lattner2008-04-101-1/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49466 91177308-0d34-0410-b5e6-96231b3b80d8
* move the x86-32 part of PR2108 here.Chris Lattner2008-04-101-0/+48
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49465 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the x86-64 side of PR2108 by adding a v2f64 version ofChris Lattner2008-04-101-0/+10
| | | | | | | | | MOVZQI2PQIrr. This would be better handled as a dag combine (with the goal of eliminating the bitconvert) but I don't know how to do that safely. Thoughts welcome. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49463 91177308-0d34-0410-b5e6-96231b3b80d8
* Make isVectorClearMaskLegal's operand list const.Dan Gohman2008-04-092-4/+5
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49446 91177308-0d34-0410-b5e6-96231b3b80d8
* Add XMM1 as a second return value register for f32 and f64 on x86-64. ThisDan Gohman2008-04-091-4/+4
| | | | | | | | is needed for the x86-64-ABI handling of structs that contain floating-point members that are returned by value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49441 91177308-0d34-0410-b5e6-96231b3b80d8
* Add DX as a second return value register for i16 on x86.Dan Gohman2008-04-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49440 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename -disable-required-unwind-tables to unwind-tables-optional.Dale Johannesen2008-04-081-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49389 91177308-0d34-0410-b5e6-96231b3b80d8
* Handle the situation in 2008-01-25-EmptyFunction.llDale Johannesen2008-04-081-10/+11
| | | | | | | | correctly when unwind info is being generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49366 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement new llc flag -disable-required-unwind-tables.Dale Johannesen2008-04-083-3/+12
| | | | | | | | Corresponds to -fno-unwind-tables (usually default in gcc). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49361 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename MemOperand to MachineMemOperand. This was suggested byDan Gohman2008-04-072-3/+3
| | | | | | | | review feedback from Chris quite a while ago. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49348 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-commit of the r48822, where the infinite looping problem discoveredRoman Levenstein2008-04-073-8/+8
| | | | | | | | by Dan Gohman is fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49330 91177308-0d34-0410-b5e6-96231b3b80d8
* API changes for class Use size reduction, wave 1.Gabor Greif2008-04-061-1/+1
| | | | | | | | | Specifically, introduction of XXX::Create methods for Users that have a potentially variable number of Uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49277 91177308-0d34-0410-b5e6-96231b3b80d8
* Favors pshufd over shufps when shuffling elements from one vector. pshufd is ↵Evan Cheng2008-04-052-48/+52
| | | | | | faster than shufps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49244 91177308-0d34-0410-b5e6-96231b3b80d8
* strdup needs <cstring>. This fixes a build error with g++-4.3.Edwin Török2008-04-041-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49218 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-enable SSE4.Evan Cheng2008-04-031-3/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49158 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix x86-64 encoding bug. REX prefix must always follow 0x0F prefix. For ↵Evan Cheng2008-04-031-10/+13
| | | | | | example, extractps in 64bit mode: 66 REX 0F 3A 17, not 66 0F 3A REX 17. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49157 91177308-0d34-0410-b5e6-96231b3b80d8
* CosmeticEvan Cheng2008-04-031-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49156 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily disabling SSE4 until we fix the encoding issues.Evan Cheng2008-04-031-2/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49129 91177308-0d34-0410-b5e6-96231b3b80d8
* Backing out 48222 temporarily.Evan Cheng2008-04-033-8/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49124 91177308-0d34-0410-b5e6-96231b3b80d8
* Suppress the 128-bit integer typedef on 32-bit targets, becauseDan Gohman2008-04-021-6/+12
| | | | | | | it causes compile errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49122 91177308-0d34-0410-b5e6-96231b3b80d8
* Partial CBackend support for 128-bit integers. This is neededDan Gohman2008-04-021-2/+9
| | | | | | | | now that llvm-gcc is lowering appropriately-sized struct returns to i128 on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49109 91177308-0d34-0410-b5e6-96231b3b80d8
* Cosmetic changes per EH patch review feedback.Dale Johannesen2008-04-022-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49096 91177308-0d34-0410-b5e6-96231b3b80d8
* Add new CC lowering rule: provide a list of registers, which can be 'shadowed',Anton Korobeynikov2008-04-022-6/+21
| | | | | | | | when some another register is used for argument passing. Currently is used on Win64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49079 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommitting EH patch; this should answer most of theDale Johannesen2008-04-025-10/+16
| | | | | | | | | | | | | | | | | review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49064 91177308-0d34-0410-b5e6-96231b3b80d8
* ReMat of load from stub in pic mode extends the life of pic base. Currently ↵Evan Cheng2008-04-011-0/+6
| | | | | | spiller doesn't do a good job of estimating the impact. Disable for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49059 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove unnecessary and non-deterministic checking code. Re-enable remat of ↵Evan Cheng2008-04-011-11/+0
| | | | | | load from gv stub. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49054 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't use __bzero for memset if the second argument isn't zero.Dan Gohman2008-04-011-1/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49050 91177308-0d34-0410-b5e6-96231b3b80d8
* Speculatively micro-optimize memory-zeroing calls on Darwin 10.Dan Gohman2008-04-013-5/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49048 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 49006 for the moment.Dale Johannesen2008-04-014-14/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49046 91177308-0d34-0410-b5e6-96231b3b80d8
* Disabling remat of load from gv stub (temporarily) again to fix llvmgcc ↵Evan Cheng2008-04-011-0/+3
| | | | | | bootstrap miscompare. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49037 91177308-0d34-0410-b5e6-96231b3b80d8
* Unbreak ARM / Thumb soft FP support.Evan Cheng2008-04-011-6/+10
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49012 91177308-0d34-0410-b5e6-96231b3b80d8
* Accept 'y' constraint (MMX) in inline asm.Dale Johannesen2008-04-011-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49011 91177308-0d34-0410-b5e6-96231b3b80d8
* Emit exception handling info for functions which areDale Johannesen2008-03-314-8/+14
| | | | | | | | | | | | | not marked nounwind, or for all functions when -enable-eh is set, provided the target supports Dwarf EH. llvm-gcc generates nounwind in the right places; other FEs will need to do so also. Given such a FE, -enable-eh should no longer be needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49006 91177308-0d34-0410-b5e6-96231b3b80d8
* It's not safe to fold a load from GV stub or constantpool into a two-address ↵Evan Cheng2008-03-311-0/+8
| | | | | | use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49002 91177308-0d34-0410-b5e6-96231b3b80d8
* Move reMaterialize() from TargetRegisterInfo to TargetInstrInfo.Evan Cheng2008-03-3120-137/+72
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48995 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-apply 48911.Evan Cheng2008-03-311-8/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48977 91177308-0d34-0410-b5e6-96231b3b80d8
* Moved from PR1570.Nick Lewycky2008-03-301-0/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48965 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix "Control reaches the end of non-void function" warnings, Chris Lattner2008-03-306-0/+11
| | | | | | | patch by David Chisnall. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48963 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a tokenfactor node to use the load chain rather than theDan Gohman2008-03-281-1/+1
| | | | | | | load value. This fixes PR2177. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48932 91177308-0d34-0410-b5e6-96231b3b80d8
* Backing out 48911 for now. It's breaking stuff.Evan Cheng2008-03-281-12/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48922 91177308-0d34-0410-b5e6-96231b3b80d8
* New entry.Evan Cheng2008-03-281-0/+44
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48912 91177308-0d34-0410-b5e6-96231b3b80d8
* Load from stub is already re-materializable.Evan Cheng2008-03-281-8/+12
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48911 91177308-0d34-0410-b5e6-96231b3b80d8
* Code clean up.Evan Cheng2008-03-271-14/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48856 91177308-0d34-0410-b5e6-96231b3b80d8
* Allow certain lea instructions to be rematerialized.Evan Cheng2008-03-273-35/+68
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48855 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an unused command line option.Evan Cheng2008-03-271-6/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48854 91177308-0d34-0410-b5e6-96231b3b80d8
* Use a linked data structure for the uses lists of an SDNode, just like Roman Levenstein2008-03-263-8/+8
| | | | | | | | | | | | | | | LLVM Value/Use does and MachineRegisterInfo/MachineOperand does. This allows constant time for all uses list maintenance operations. The idea was suggested by Chris. Reviewed by Evan and Dan. Patch is tested and approved by Dan. On normal use-cases compilation speed is not affected. On very big basic blocks there are compilation speedups in the range of 15-20% or even better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48822 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix some SSE4.1 instruction encoding bugs.Evan Cheng2008-03-261-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48815 91177308-0d34-0410-b5e6-96231b3b80d8
* Use ## for comment delimiter on darwin x86-32, soDale Johannesen2008-03-252-12/+13
| | | | | | | | | | llvm's output .s files will go through gcc -std=c99 without triggering preprocesser errors. Approach suggested by Daveed Vandevoorde. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48808 91177308-0d34-0410-b5e6-96231b3b80d8
* Smaller function alignment when optimizing for size.Evan Cheng2008-03-253-6/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48805 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename option -optimizefor-size to -optimize-size.Evan Cheng2008-03-251-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48804 91177308-0d34-0410-b5e6-96231b3b80d8