Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | Split A8/A9 itins - they already were too big. | Anton Korobeynikov | 2010-04-07 | 3 | -603/+614 |
| | | | | llvm-svn: 100672 | ||||
* | Add some crude itin approximation for VFP load / stores on A9 | Anton Korobeynikov | 2010-04-07 | 1 | -0/+54 |
| | | | | llvm-svn: 100671 | ||||
* | Add some crude approximation for neon load/store instructions | Anton Korobeynikov | 2010-04-07 | 1 | -1/+55 |
| | | | | llvm-svn: 100670 | ||||
* | Add some A8-based approximation for instructions with unknown cycle times | Anton Korobeynikov | 2010-04-07 | 1 | -0/+52 |
| | | | | llvm-svn: 100669 | ||||
* | Move NEON-VFP domain fixer upper, so post-RA scheduler would benefit from it. | Anton Korobeynikov | 2010-04-07 | 1 | -4/+6 |
| | | | | llvm-svn: 100668 | ||||
* | Since tblgen bug was fixed (thanks Jakob!) we don't need InstrStage2 hack ↵ | Anton Korobeynikov | 2010-04-07 | 1 | -259/+266 |
| | | | | | | anymore. llvm-svn: 100667 | ||||
* | Fix A8 FP NEON MAC itins | Anton Korobeynikov | 2010-04-07 | 1 | -2/+2 |
| | | | | llvm-svn: 100666 | ||||
* | A9 NEON FP itins | Anton Korobeynikov | 2010-04-07 | 1 | -0/+66 |
| | | | | llvm-svn: 100665 | ||||
* | Some permute goodness for A9 | Anton Korobeynikov | 2010-04-07 | 1 | -1/+85 |
| | | | | llvm-svn: 100664 | ||||
* | More shift itins for A9 | Anton Korobeynikov | 2010-04-07 | 1 | -0/+21 |
| | | | | llvm-svn: 100663 | ||||
* | More fixes for itins | Anton Korobeynikov | 2010-04-07 | 1 | -24/+26 |
| | | | | llvm-svn: 100662 | ||||
* | Fix invalid itins for 32-bit varians of VMLAL and friends | Anton Korobeynikov | 2010-04-07 | 1 | -14/+14 |
| | | | | llvm-svn: 100661 | ||||
* | Add MAC stuff for A9 | Anton Korobeynikov | 2010-04-07 | 1 | -1/+59 |
| | | | | llvm-svn: 100660 | ||||
* | Fix invalid NEON MAC itins on A8 | Anton Korobeynikov | 2010-04-07 | 1 | -4/+4 |
| | | | | llvm-svn: 100659 | ||||
* | Fix itins for VPAL | Anton Korobeynikov | 2010-04-07 | 1 | -3/+17 |
| | | | | llvm-svn: 100658 | ||||
* | Fix itins for VABA | Anton Korobeynikov | 2010-04-07 | 3 | -23/+76 |
| | | | | llvm-svn: 100657 | ||||
* | Correct VMVN itinerary: operand is read in the second cycle, not in the first. | Anton Korobeynikov | 2010-04-07 | 1 | -2/+2 |
| | | | | llvm-svn: 100656 | ||||
* | More A9 itineraries | Anton Korobeynikov | 2010-04-07 | 2 | -2/+30 |
| | | | | llvm-svn: 100655 | ||||
* | Correct itinerary class for VPADD | Anton Korobeynikov | 2010-04-07 | 1 | -86/+40 |
| | | | | llvm-svn: 100654 | ||||
* | VP{MAX, MIN} are of IIC_VSUBi4D itin class as well. | Anton Korobeynikov | 2010-04-07 | 1 | -10/+35 |
| | | | | llvm-svn: 100653 | ||||
* | VHADD differs from VHSUB at least on A9 - the former reads both operands in ↵ | Anton Korobeynikov | 2010-04-07 | 3 | -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 A9 | Anton Korobeynikov | 2010-04-07 | 1 | -1/+53 |
| | | | | llvm-svn: 100651 | ||||
* | Define new itin classes for ARM <-> VFP reg moves to distinguish from NEON ↵ | Anton Korobeynikov | 2010-04-07 | 3 | -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 Korobeynikov | 2010-04-07 | 1 | -2/+2 |
| | | | | | | both A8 and A9. llvm-svn: 100649 | ||||
* | Proper cycle times for locks, since wbck latency can be larger than fwd latency. | Anton Korobeynikov | 2010-04-07 | 1 | -52/+57 |
| | | | | llvm-svn: 100648 | ||||
* | Add new itin classes for FP16 <-> FP32 conversions and make uise of them for A9. | Anton Korobeynikov | 2010-04-07 | 3 | -4/+20 |
| | | | | llvm-svn: 100647 | ||||
* | Make use of new reserved/required scheduling stuff: introduce VFP and NEON ↵ | Anton Korobeynikov | 2010-04-07 | 2 | -22/+77 |
| | | | | | | locks to model domain cross stalls precisly. llvm-svn: 100646 | ||||
* | Initial support for different kinds of FU reservation. | Anton Korobeynikov | 2010-04-07 | 2 | -12/+44 |
| | | | | llvm-svn: 100645 | ||||
* | Factor out scoreboard into separate class. This way we might have several ↵ | Anton Korobeynikov | 2010-04-07 | 2 | -58/+70 |
| | | | | | | different score boards. llvm-svn: 100644 | ||||
* | Some bits of A9 scheduling: VFP | Anton Korobeynikov | 2010-04-07 | 2 | -1/+102 |
| | | | | llvm-svn: 100643 | ||||
* | Separate const from non-const stuff during mergeing | Anton Korobeynikov | 2010-04-07 | 1 | -21/+35 |
| | | | | llvm-svn: 100642 | ||||
* | Some initial version of global merger | Anton Korobeynikov | 2010-04-07 | 4 | -1/+144 |
| | | | | llvm-svn: 100641 | ||||
* | Add hook to insert late LLVM=>LLVM passes just before isel | Anton Korobeynikov | 2010-04-07 | 1 | -0/+2 |
| | | | | llvm-svn: 100640 | ||||
* | fix 80 col violation, patch by Alastair Lynn | Chris Lattner | 2010-04-07 | 1 | -1/+2 |
| | | | | llvm-svn: 100639 | ||||
* | add a comment line that got dropped | Chris Lattner | 2010-04-07 | 1 | -5/+4 |
| | | | | llvm-svn: 100638 | ||||
* | fix a latent bug my inline asm stuff exposed: | Chris Lattner | 2010-04-07 | 1 | -0/+2 |
| | | | | | | MachineOperand::isIdenticalTo wasn't handling metadata operands. llvm-svn: 100636 | ||||
* | Remove unused method. | Benjamin Kramer | 2010-04-07 | 2 | -19/+0 |
| | | | | llvm-svn: 100620 | ||||
* | Workaround the breakage in r100616 by guarding all timers with | Torok Edwin | 2010-04-07 | 3 | -32/+74 |
| | | | | | | TimePassesIsEnabled. This should allow make check to pass. llvm-svn: 100618 | ||||
* | Use the "NamedGroupTimer" class to categorize DWARF emission better. | Bill Wendling | 2010-04-07 | 4 | -41/+28 |
| | | | | llvm-svn: 100616 | ||||
* | Use raw_ostream. | Benjamin Kramer | 2010-04-07 | 1 | -22/+14 |
| | | | | llvm-svn: 100615 | ||||
* | Add comments for missed opportunities. | Evan Cheng | 2010-04-07 | 1 | -1/+4 |
| | | | | llvm-svn: 100610 | ||||
* | Fix typo. | Evan Cheng | 2010-04-07 | 1 | -1/+1 |
| | | | | llvm-svn: 100609 | ||||
* | Have the inst emitter add the !srcloc mdnode to the machine instr. | Chris Lattner | 2010-04-07 | 2 | -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 Lattner | 2010-04-07 | 1 | -3/+2 |
| | | | | llvm-svn: 100606 | ||||
* | Three changes: | Chris Lattner | 2010-04-07 | 6 | -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(), XXXX | Chris Lattner | 2010-04-07 | 2 | -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 Gupta | 2010-04-07 | 3 | -20/+38 |
| | | | | llvm-svn: 100601 | ||||
* | Clean up some signedness oddities in this code noticed by clang. | John McCall | 2010-04-07 | 1 | -5/+6 |
| | | | | llvm-svn: 100599 | ||||
* | Move printing of target-indepedent DEBUG_VALUE comments | Dale Johannesen | 2010-04-07 | 3 | -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 Cheng | 2010-04-07 | 2 | -11/+169 |
| | | | | llvm-svn: 100592 |