summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Enable DebugInfo support for COFF object files.Devang Patel2011-02-2418-5/+127
| | | | | | Patch by Nathan Jeffords! llvm-svn: 126425
* Enable support for vector sext and trunc:Nadav Rotem2011-02-241-10/+17
| | | | | | | | | | Limit the folding of any_ext and sext into the load operation to scalars. Limit the active-bits trunc optimization to scalars. Document vector trunc and vector sext in LangRef. Similar to commit 126080 (for enabling zext). llvm-svn: 126424
* Fix llvm-gcc bootstrap with gnu ld.Rafael Espindola2011-02-241-0/+7
| | | | | | | | | | | The problem was codegen guessing the wrong values and printing .section .eh_frame,"aMS",@progbits,4 It is not clear at all if Codegen should try to guess, MC is the one that should know the default flags. llvm-svn: 126421
* Do not use DIFactory. Use DIBuilder.Devang Patel2011-02-241-6/+7
| | | | llvm-svn: 126398
* Do not use DIFactory.Devang Patel2011-02-241-3/+4
| | | | llvm-svn: 126397
* Add XCore intrinsic for eeu instruction.Richard Osborne2011-02-241-0/+4
| | | | llvm-svn: 126384
* Plug some leaks in edis.Benjamin Kramer2011-02-241-0/+4
| | | | | | | - Don't leak parsed operands during tokenization. - Don't leak printed insts in llvm-mc. llvm-svn: 126381
* Merge information about the number of zero, one, and sign bits of live-outCameron Zwarich2011-02-242-1/+122
| | | | | | | registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. llvm-svn: 126380
* Add a getNumSignBits() method to APInt.Cameron Zwarich2011-02-241-6/+1
| | | | llvm-svn: 126379
* Add a mechanism for invalidating the LiveOutInfo of a PHI, and use it wheneverCameron Zwarich2011-02-241-1/+18
| | | | | | a block is visited before all of its predecessors. llvm-svn: 126378
* Track blocks visited in reverse postorder.Cameron Zwarich2011-02-242-0/+5
| | | | llvm-svn: 126377
* Refactor the LiveOutInfo interface into a few methods on FunctionLoweringInfoCameron Zwarich2011-02-242-17/+9
| | | | | | and make the actual map private. llvm-svn: 126376
* Have isel visit blocks in reverse postorder rather than an undefined order. ThisCameron Zwarich2011-02-241-2/+5
| | | | | | allows for the information propagated across basic blocks to be merged at phis. llvm-svn: 126375
* wire TargetLibraryInfo into simplify libcalls and use it in a couple ofChris Lattner2011-02-241-7/+17
| | | | | | trivial places. This pass needs a lot of work. llvm-svn: 126367
* move a massive amount of code out into its own helper functionChris Lattner2011-02-241-676/+643
| | | | | | to reduce nesting. This needs to be turned into a table. llvm-svn: 126366
* change instcombine to not turn a call to non-varargs bitcast ofChris Lattner2011-02-241-5/+15
| | | | | | | | | function prototype into a call to a varargs prototype. We do allow the xform if we have a definition, but otherwise we don't want to risk that we're changing the abi in a subtle way. On X86-64, for example, varargs require passing stuff in %al. llvm-svn: 126363
* Fix bug in X86 folding / unfolding table. Int_CMPSDrm and Int_CMPSSrm memoryEvan Cheng2011-02-241-2/+2
| | | | | | | | operands starts at index 2, not 1. rdar://9045024 PR9305 llvm-svn: 126359
* Use the same spill slot for all live ranges that descend form the same originalJakob Stoklund Olesen2011-02-241-4/+13
| | | | | | | | | register. This avoids some silly stack slot shuffling when both sides of a copy get spilled. llvm-svn: 126353
* Use DW_FORM_data2 for DW_AT_language and let users use ↵Devang Patel2011-02-231-1/+1
| | | | | | DW_LANG_lo_user=0x8000 to DW_LANG_hi_user=0xffff range. llvm-svn: 126339
* Revert r125595, which is an X86-only undocumented assembly syntax extensionJim Grosbach2011-02-231-18/+0
| | | | | | | | | | enabled for all targets. Non-X86 targets should not have this behavior enabled by default. Joerg, if you would like to resubmit with the behavior conditionalized to be X86-ELF only, that's fine. llvm-svn: 126336
* Put in the symbol table symbols only used in a .globl statement.Rafael Espindola2011-02-231-1/+5
| | | | | | Fixes PR9292. llvm-svn: 126330
* Add XCore intrinsic for clre instruction.Richard Osborne2011-02-231-1/+3
| | | | llvm-svn: 126322
* Add llvm.xcore.waitevent intrinsic. The effect of this intrinsic is to enableRichard Osborne2011-02-231-1/+7
| | | | | | | events on the thread and wait until a resource is ready to event. The vector of the resource that is ready is returned. llvm-svn: 126320
* It is safe to ignore LastSplitPoint when the variable is not live out.Jakob Stoklund Olesen2011-02-231-2/+2
| | | | | | No code will be inserted after the split point anyway. llvm-svn: 126319
* Add XCore intrinsic for the setv instruction.Richard Osborne2011-02-231-1/+6
| | | | llvm-svn: 126315
* Fix format for setc instruction.Richard Osborne2011-02-231-1/+1
| | | | llvm-svn: 126314
* Add XCore intrinsic for settw instruction.Richard Osborne2011-02-231-1/+5
| | | | llvm-svn: 126313
* Fixed a bug in the enhanced disassembler that causedSean Callanan2011-02-231-3/+17
| | | | | | | | it to ignore valid uses of FS and GS as additional base registers in address computations. Added a test case for this. llvm-svn: 126302
* Change VFPNeonA8 definition to make the code easier to read.Evan Cheng2011-02-232-8/+3
| | | | llvm-svn: 126298
* Omit private_extern declarations of extern symbols; followup toStuart Hastings2011-02-233-3/+9
| | | | | | r124468. Patch by Rafael Avila de Espindola! llvm-svn: 126297
* More fcopysign correctness and performance fix.Evan Cheng2011-02-231-33/+63
| | | | | | | | | | | | | The previous codegen for the slow path (when values are in VFP / NEON registers) was incorrect if the source is NaN. The new codegen uses NEON vbsl instruction to copy the sign bit. e.g. vmov.i32 d1, #0x80000000 vbsl d1, d2, d0 If NEON is not available, it uses integer instructions to copy the sign bit. rdar://9034702 llvm-svn: 126295
* Keep track of how many times a live range has been dequeued, and prioritize ↵Jakob Stoklund Olesen2011-02-231-0/+7
| | | | | | | | | | | new ranges. When a large live range is evicted, it will usually be split when it comes around again. By deferring evicted live ranges, the splitting happens at a time when the interference pattern is more realistic. This prevents repeated splitting and evictions. llvm-svn: 126282
* Fix a bug in determining if there is only a single interfering register.Jakob Stoklund Olesen2011-02-231-2/+1
| | | | llvm-svn: 126277
* Be more aggressive about evicting interference.Jakob Stoklund Olesen2011-02-231-26/+88
| | | | | | | | | | | | | Use interval sizes instead of spill weights to determine if it is legal to evict interference. A smaller interval can evict interference if all interfering live ranges are larger. Allow multiple interferences to be evicted as along as they are all larger than the live range being allocated. Spill weights are still used to select the preferred eviction candidate. llvm-svn: 126276
* [AVX] General VUNPCKL codegen support.David Greene2011-02-222-0/+20
| | | | llvm-svn: 126264
* Change the RAGreedy register assignment order so large live ranges are ↵Jakob Stoklund Olesen2011-02-223-47/+69
| | | | | | | | | | | | | | allocated first. This is based on the observation that long live ranges are more difficult to allocate, so there is a better chance of solving the puzzle by handling the big pieces first. The allocator will evict and split long alive ranges when they get in the way. RABasic is still using spill weights for its priority queue, so the interface to the queue has been virtualized. llvm-svn: 126259
* 80 Col.Jakob Stoklund Olesen2011-02-221-2/+1
| | | | llvm-svn: 126258
* Make LoopDeletion work on loops with multiple edges, as long as the incomingCameron Zwarich2011-02-221-8/+15
| | | | | | values from all of the loop's exiting blocks are equal. Patch by Andrew Clinton. llvm-svn: 126253
* Use the same (%dx) hack for in[bwl] as for out[bwl].Joerg Sonnenberger2011-02-221-0/+13
| | | | llvm-svn: 126244
* VFP single precision arith instructions can go down to NEON pipeline, but on ↵Evan Cheng2011-02-226-109/+114
| | | | | | Cortex-A8 only. llvm-svn: 126238
* Follow LLVM coding style. Devang Patel2011-02-221-77/+77
| | | | | | clang uses DBuilder, so it requries corresponding change. llvm-svn: 126231
* Stack alignment is 16 bytes on FreeBSD/i386 too.Roman Divacky2011-02-222-3/+5
| | | | llvm-svn: 126226
* Bug#9172: Don't use static in file scope, use an attribute on theJoerg Sonnenberger2011-02-221-5/+5
| | | | | | parser. llvm-svn: 126225
* MachineConstantPoolValues are not uniqued, so they need to be freed if theyCameron Zwarich2011-02-221-1/+7
| | | | | | | | | share entries. Add a DenseSet to MachineConstantPool for the MachineCPVs that it owns. This will hopefully fix the MC/ARM/elf-reloc-01.ll failure on the leaks bots. llvm-svn: 126218
* Guard against de-referencing MBB.end().Evan Cheng2011-02-221-1/+4
| | | | llvm-svn: 126192
* available_externally (hidden or not) GVs are always accessed via stubs. ↵Evan Cheng2011-02-221-1/+3
| | | | | | rdar://9027648. llvm-svn: 126191
* VirtRegRewriter assertion fix.Andrew Trick2011-02-221-2/+4
| | | | | | | Apparently it's ok for multiple operands to "kill" the same register. Fixes PR9237. llvm-svn: 126190
* Roll out r126169 and r126170 in an attempt to fix the selfhost bot.Cameron Zwarich2011-02-223-59/+9
| | | | llvm-svn: 126185
* Only use blx for external function calls on thumb, these could be fixedEric Christopher2011-02-221-12/+26
| | | | | | | | | up by the dynamic linker, but it's better to use the correct instruction to begin with. Fixes rdar://9011034 llvm-svn: 126176
* Merge information about the number of zero, one, and sign bits of live-out ↵Cameron Zwarich2011-02-223-7/+54
| | | | | | | | | registers at phis. This enables us to eliminate a lot of pointless zexts during the DAGCombine phase. This fixes <rdar://problem/8760114>. llvm-svn: 126170
OpenPOWER on IntegriCloud