summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Some permute goodness for A9Anton Korobeynikov2010-04-071-1/+85
| | | | llvm-svn: 100664
* More shift itins for A9Anton Korobeynikov2010-04-071-0/+21
| | | | llvm-svn: 100663
* More fixes for itinsAnton Korobeynikov2010-04-071-24/+26
| | | | llvm-svn: 100662
* Fix invalid itins for 32-bit varians of VMLAL and friendsAnton Korobeynikov2010-04-071-14/+14
| | | | llvm-svn: 100661
* Add MAC stuff for A9Anton Korobeynikov2010-04-071-1/+59
| | | | llvm-svn: 100660
* Fix invalid NEON MAC itins on A8Anton Korobeynikov2010-04-071-4/+4
| | | | llvm-svn: 100659
* Fix itins for VPALAnton Korobeynikov2010-04-071-3/+17
| | | | llvm-svn: 100658
* Fix itins for VABAAnton Korobeynikov2010-04-073-23/+76
| | | | llvm-svn: 100657
* Correct VMVN itinerary: operand is read in the second cycle, not in the first.Anton Korobeynikov2010-04-071-2/+2
| | | | llvm-svn: 100656
* More A9 itinerariesAnton Korobeynikov2010-04-072-2/+30
| | | | llvm-svn: 100655
* Correct itinerary class for VPADDAnton Korobeynikov2010-04-071-86/+40
| | | | llvm-svn: 100654
* VP{MAX, MIN} are of IIC_VSUBi4D itin class as well.Anton Korobeynikov2010-04-071-10/+35
| | | | llvm-svn: 100653
* VHADD differs from VHSUB at least on A9 - the former reads both operands in ↵Anton Korobeynikov2010-04-073-17/+71
| | | | | | the second cycle, while the latter reads second operand in first cycle. Introduce new itin classes to catch this behavior. Whether this is true for A8 as well is WIP. llvm-svn: 100652
* Some easy NEON scheduling goodness for A9Anton Korobeynikov2010-04-071-1/+53
| | | | llvm-svn: 100651
* Define new itin classes for ARM <-> VFP reg moves to distinguish from NEON ↵Anton Korobeynikov2010-04-073-7/+38
| | | | | | ops. Define proper scheduling itinerary for them on A9. A8 TRM does not specify latency for them at all :( llvm-svn: 100650
* FCONST{S,D} behaves the same way as FP unary instructions. This is true for ↵Anton Korobeynikov2010-04-071-2/+2
| | | | | | both A8 and A9. llvm-svn: 100649
* Proper cycle times for locks, since wbck latency can be larger than fwd latency.Anton Korobeynikov2010-04-071-52/+57
| | | | llvm-svn: 100648
* Add new itin classes for FP16 <-> FP32 conversions and make uise of them for A9.Anton Korobeynikov2010-04-073-4/+20
| | | | llvm-svn: 100647
* Make use of new reserved/required scheduling stuff: introduce VFP and NEON ↵Anton Korobeynikov2010-04-072-22/+77
| | | | | | locks to model domain cross stalls precisly. llvm-svn: 100646
* Initial support for different kinds of FU reservation.Anton Korobeynikov2010-04-072-12/+44
| | | | llvm-svn: 100645
* Factor out scoreboard into separate class. This way we might have several ↵Anton Korobeynikov2010-04-072-58/+70
| | | | | | different score boards. llvm-svn: 100644
* Some bits of A9 scheduling: VFPAnton Korobeynikov2010-04-072-1/+102
| | | | llvm-svn: 100643
* Separate const from non-const stuff during mergeingAnton Korobeynikov2010-04-071-21/+35
| | | | llvm-svn: 100642
* Some initial version of global mergerAnton Korobeynikov2010-04-074-1/+144
| | | | llvm-svn: 100641
* Add hook to insert late LLVM=>LLVM passes just before iselAnton Korobeynikov2010-04-071-0/+2
| | | | llvm-svn: 100640
* fix 80 col violation, patch by Alastair LynnChris Lattner2010-04-071-1/+2
| | | | llvm-svn: 100639
* add a comment line that got droppedChris Lattner2010-04-071-5/+4
| | | | llvm-svn: 100638
* fix a latent bug my inline asm stuff exposed: Chris Lattner2010-04-071-0/+2
| | | | | | MachineOperand::isIdenticalTo wasn't handling metadata operands. llvm-svn: 100636
* Remove unused method.Benjamin Kramer2010-04-072-19/+0
| | | | llvm-svn: 100620
* Workaround the breakage in r100616 by guarding all timers withTorok Edwin2010-04-073-32/+74
| | | | | | TimePassesIsEnabled. This should allow make check to pass. llvm-svn: 100618
* Use the "NamedGroupTimer" class to categorize DWARF emission better.Bill Wendling2010-04-074-41/+28
| | | | llvm-svn: 100616
* Use raw_ostream.Benjamin Kramer2010-04-071-22/+14
| | | | llvm-svn: 100615
* Add comments for missed opportunities.Evan Cheng2010-04-071-1/+4
| | | | llvm-svn: 100610
* Fix typo.Evan Cheng2010-04-071-1/+1
| | | | llvm-svn: 100609
* Have the inst emitter add the !srcloc mdnode to the machine instr.Chris Lattner2010-04-072-2/+18
| | | | | | | Have the asmprinter use the mdnode to scavenge a source location if present. Document this nonsense in langref. llvm-svn: 100607
* remove another magic number.Chris Lattner2010-04-071-3/+2
| | | | llvm-svn: 100606
* Three changes:Chris Lattner2010-04-076-62/+96
| | | | | | | | | | | | | | | 1. Introduce some enums and accessors in the InlineAsm class that eliminate a ton of magic numbers when handling inline asm SDNode. 2. Add a new MDNodeSDNode selection dag node type that holds a MDNode (shocking!) 3. Add a new argument to ISD::INLINEASM nodes that hold !srcloc metadata, propagating it to the instruction emitter, which drops it. No functionality change. llvm-svn: 100605
* fix a crash on invalid metadata, e.g.: call i32 @foo(), XXXXChris Lattner2010-04-072-3/+5
| | | | | | | | We would return the error without inserting the new instruction into the program, so it wouldn't get deallocated, and an abort would trigger when the module was deleted. llvm-svn: 100602
* Fix memory leaks for external symbol name strings.Sanjiv Gupta2010-04-073-20/+38
| | | | llvm-svn: 100601
* Clean up some signedness oddities in this code noticed by clang.John McCall2010-04-071-5/+6
| | | | llvm-svn: 100599
* Move printing of target-indepedent DEBUG_VALUE commentsDale Johannesen2010-04-073-52/+79
| | | | | | | into AsmPrinter. Target-dependent form is still generated by FastISel and still handled in X86 code. llvm-svn: 100596
* Post regalloc LICM. Work in progress.Evan Cheng2010-04-072-11/+169
| | | | llvm-svn: 100592
* Do not emit specification DIE with DW_AT_specification attribute for member ↵Devang Patel2010-04-061-2/+17
| | | | | | functions of a funcation local class. This trips gdb's partial scan of DIEs at load time. Fixes Radar 7833483. llvm-svn: 100586
* Fix a number of clang -Wsign-compare warnings that didn't have an obviousJohn McCall2010-04-065-5/+5
| | | | | | | solution. The only reason these don't fire with gcc-4.2 is that gcc turns off part of -Wsign-compare in C++ on accident. llvm-svn: 100581
* Revert 100573, it's causing some testsuite problems.Dale Johannesen2010-04-062-60/+71
| | | | llvm-svn: 100578
* Move printing of DEBUG_VALUE comments to target-independent place.Dale Johannesen2010-04-062-71/+60
| | | | | | There is probably a more elegant way to do this. llvm-svn: 100573
* Expand SELECT and SELECT_CC for NEON vector types.Bob Wilson2010-04-061-0/+2
| | | | | | Radar 7770501. llvm-svn: 100568
* Allow for the possibility that a debug-value pointsDale Johannesen2010-04-061-2/+13
| | | | | | to a SDNode that didn't have code generated for it. llvm-svn: 100566
* Reverting 100530 & 100531 due to regressions in the GDB test suite.Stuart Hastings2010-04-062-25/+8
| | | | llvm-svn: 100563
* Fix PR6696 and PR6663Jim Grosbach2010-04-065-14/+84
| | | | | | | | | | | | | | | | | When a frame pointer is not otherwise required, and dynamic stack alignment is necessary solely due to the spilling of a register with larger alignment requirements than the default stack alignment, the frame pointer can be both used as a general purpose register and a frame pointer. That goes poorly, for obvious reasons. This patch brings back a bit of old logic for identifying the use of such registers and conservatively reserves the frame pointer during register allocation in such cases. For now, implement for X86 only since it's 32-bit linux which is hitting this, and we want a targeted fix for 2.7. As a follow-on, this will be expanded to handle other targets, as theoretically the problem could arise elsewhere as well. llvm-svn: 100559
OpenPOWER on IntegriCloud