summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/HexagonInstrInfo.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* [Hexagon] Update the Hexagon packetizerKrzysztof Parzyszek2015-12-161-1/+38
| | | | llvm-svn: 255807
* [Hexagon] Add "const" to function parameters in HexagonInstrInfoKrzysztof Parzyszek2015-12-141-24/+25
| | | | llvm-svn: 255544
* fix 'the the '; NFCSanjay Patel2015-12-071-1/+1
| | | | llvm-svn: 254928
* [Hexagon] Hexagon V60 HVX intrinsic defintionsKrzysztof Parzyszek2015-11-261-0/+29
| | | | | Author: Ron Lieberman <ronl@codeaurora.org> llvm-svn: 254165
* [Hexagon] HVX vector register classes and more isel patternsKrzysztof Parzyszek2015-11-261-0/+80
| | | | llvm-svn: 254132
* [Hexagon] Treat transfers of FP immediates are pseudo instructionsKrzysztof Parzyszek2015-11-251-0/+14
| | | | | | | | This is a temporary fix to address ICE on 2005-10-21-longlonggtu.ll. The proper fix will be to use A2_tfrsi, but it will need more work to teach all users of A2_tfrsi to also expect a floating-point operand. llvm-svn: 254099
* [Hexagon] Add missing include of <cctype>Krzysztof Parzyszek2015-11-241-0/+1
| | | | | | | Lack thereof breaks Windows builds due to the use of std::isspace in HexagonInstrInfo.cpp. llvm-svn: 253987
* [Hexagon] Bring HexagonInstrInfo up to dateKrzysztof Parzyszek2015-11-241-1047/+2643
| | | | llvm-svn: 253986
* [Hexagon] Change Based->Base in getBasedWithImmOffsetKrzysztof Parzyszek2015-10-201-2/+2
| | | | llvm-svn: 250848
* Hexagon: Remove implicit ilist iterator conversions, NFCDuncan P. N. Exon Smith2015-10-201-10/+9
| | | | | | | | | | | | | | | | | | | There are two things out of the ordinary in this commit. First, I made a loop obviously "infinite" in HexagonInstrInfo.cpp. After checking if an instruction was at the beginning of a basic block (in which case, `break`), the loop decremented and checked the iterator for `nullptr` as the loop condition. This has never been possible (the prev pointers are always been circular, so even with the weird ilist/iplist implementation, this isn't been possible), so I removed the condition. Second, in HexagonAsmPrinter.cpp there was another case of comparing a `MachineBasicBlock::instr_iterator` against `MachineBasicBlock::end()` (which returns `MachineBasicBlock::iterator`). While not incorrect, it's fragile. I switched this to `::instr_end()`. All that said, no functionality change intended here. llvm-svn: 250778
* [Hexagon] Add an early if-conversion passKrzysztof Parzyszek2015-10-061-17/+78
| | | | llvm-svn: 249423
* Pass BranchProbability/BlockMass by value instead of const& as they are ↵Cong Hou2015-09-101-3/+3
| | | | | | small. NFC. llvm-svn: 247357
* PseudoSourceValue: Replace global manager with a manager in a machine function.Alex Lorenz2015-08-111-12/+6
| | | | | | | | | | | | | | | | | | | | | | This commit removes the global manager variable which is responsible for storing and allocating pseudo source values and instead it introduces a new manager class named 'PseudoSourceValueManager'. Machine functions now own an instance of the pseudo source value manager class. This commit also modifies the 'get...' methods in the 'MachinePointerInfo' class to construct pseudo source values using the instance of the pseudo source value manager object from the machine function. This commit updates calls to the 'get...' methods from the 'MachinePointerInfo' class in a lot of different files because those calls now need to pass in a reference to a machine function to those methods. This change will make it easier to serialize pseudo source values as it will enable me to transform the mips specific MipsCallEntry PseudoSourceValue subclass into two target independent subclasses. Reviewers: Akira Hatanaka llvm-svn: 244693
* [CodeGen] ArrayRef'ize cond/pred in various TII APIs. NFC.Ahmed Bougacha2015-06-111-7/+6
| | | | llvm-svn: 239553
* [InstrInfo] Refactor foldOperandImpl to thread through InsertPt. NFCKeno Fischer2015-06-081-4/+3
| | | | | | | | | | | | | | | | | | Summary: This was a longstanding FIXME and is a necessary precursor to cases where foldOperandImpl may have to create more than one instruction (e.g. to constrain a register class). This is the split out NFC changes from D6262. Reviewers: pete, ributzka, uweigand, mcrosier Reviewed By: mcrosier Subscribers: mcrosier, ted, llvm-commits Differential Revision: http://reviews.llvm.org/D10174 llvm-svn: 239336
* [Hexagon] Update AnalyzeBranch, etc target hooksBrendon Cahoon2015-05-081-266/+333
| | | | | | | | | | | | | Improved the AnalyzeBranch, InsertBranch, and RemoveBranch functions in order to handle more of our branch instructions. This requires changes to analyzeCompare and PredicateInstructions. Specifically, we've added support for new value compare jumps, improved handling of endloop, added more compare instructions, and improved support for predicate instructions. Differential Revision: http://reviews.llvm.org/D9559 llvm-svn: 236876
* [Hexagon] Use constant extenders to fix up hardware loopsBrendon Cahoon2015-04-271-3/+24
| | | | | | | | | | Use a loop instruction with a constant extender for a hardware loop instruction that is too far away from the start of the loop. This is cheaper than changing the SA register value. Differential Revision: http://reviews.llvm.org/D9262 llvm-svn: 235882
* [Hexagon] Use A2_tfrsi for constant pool and jump table addressesKrzysztof Parzyszek2015-04-221-1/+2
| | | | llvm-svn: 235535
* [Hexagon] Consider constant-extended offsets to be validKrzysztof Parzyszek2015-04-221-9/+14
| | | | llvm-svn: 235529
* [Hexagon] Overhaul of stack object allocationKrzysztof Parzyszek2015-04-221-0/+6
| | | | | | | | - Use static allocation for aligned stack objects. - Simplify dynamic stack object allocation. - Simplify elimination of frame-indices. llvm-svn: 235521
* Expand MUX instructions early on HexagonKrzysztof Parzyszek2015-03-311-3/+2
| | | | | | This time with all files included. llvm-svn: 233696
* Revert 233694. Weak SVN-fu.Krzysztof Parzyszek2015-03-311-2/+3
| | | | llvm-svn: 233695
* Expand MUX instructions early on HexagonKrzysztof Parzyszek2015-03-311-3/+2
| | | | llvm-svn: 233694
* [Hexagon] Add support for vector instructionsKrzysztof Parzyszek2015-03-191-0/+51
| | | | llvm-svn: 232728
* [Hexagon] ENDLOOP is a non-reversible conditional branchKrzysztof Parzyszek2015-03-191-0/+2
| | | | llvm-svn: 232725
* [Hexagon] Use pseudo-instructions for true/false predicate valuesKrzysztof Parzyszek2015-03-181-0/+18
| | | | llvm-svn: 232657
* [Hexagon] Intrinsics for circular and bit-reversed loads and storesKrzysztof Parzyszek2015-03-181-1/+14
| | | | llvm-svn: 232645
* [Hexagon] Handle ENDLOOP0 in InsertBranch and RemoveBranchKrzysztof Parzyszek2015-03-181-19/+28
| | | | llvm-svn: 232643
* Remove subtarget dependence from HexagonRegisterInfo.Eric Christopher2015-03-101-4/+2
| | | | llvm-svn: 231887
* [Hexagon] Use single tailcall pseudoinst and fix checking for label jumping ↵Colin LeMahieu2015-03-091-4/+27
| | | | | | versus tail calling. llvm-svn: 231713
* [Hexagon] Reapply r231699. Remove assumption that second operand is an ↵Colin LeMahieu2015-03-091-2/+2
| | | | | | immediate when checking if A2_tfrsi is combinable. llvm-svn: 231710
* ArrayRefize memory operand folding. NFC.Benjamin Kramer2015-02-281-4/+3
| | | | llvm-svn: 230846
* Fix the clang -Werror build (-Wunused-variable)David Blaikie2015-02-101-3/+0
| | | | llvm-svn: 228635
* [Hexagon] Removing more V4 predicates since V4 is the required minimum.Colin LeMahieu2015-02-091-21/+4
| | | | llvm-svn: 228614
* [Hexagon] Renaming A2_addi and formatting.Colin LeMahieu2015-02-051-4/+4
| | | | llvm-svn: 228318
* [Hexagon] Adding encoding information for absolute-reg mode stores. ↵Colin LeMahieu2015-02-041-6/+6
| | | | | | Xfailing a test until constant extenders are correctly put in the same packet. llvm-svn: 228158
* [Hexagon] Replacing old versions of stores and loads.Colin LeMahieu2015-01-151-17/+0
| | | | llvm-svn: 226065
* [Hexagon] Replacing old version of convert and load f64.Colin LeMahieu2015-01-141-1/+0
| | | | llvm-svn: 226057
* [Hexagon] Removing old versions of cmph and updating references.Colin LeMahieu2015-01-141-12/+10
| | | | llvm-svn: 226013
* [Hexagon] Removing old versions of cmpb and updating references.Colin LeMahieu2015-01-141-10/+8
| | | | llvm-svn: 226006
* [Hexagon] Deleting versions of compare-not that don't have encoding ↵Colin LeMahieu2015-01-141-2/+2
| | | | | | information. Updating references. llvm-svn: 226003
* [Hexagon] Adding dealloc_return encoding and absolute address stores.Colin LeMahieu2015-01-061-22/+22
| | | | llvm-svn: 225267
* [Hexagon] Adding add/sub with carry, logical shift left by immediate and ↵Colin LeMahieu2015-01-051-43/+43
| | | | | | memop instructions. Removing old defs without bits and updating references. llvm-svn: 225210
* Replace several 'assert(false' with 'llvm_unreachable' or fold a condition ↵Craig Topper2015-01-051-1/+1
| | | | | | into the assert. llvm-svn: 225160
* [Hexagon] Removing old newvalue store variants. Adding postincrement ↵Colin LeMahieu2014-12-301-5/+5
| | | | | | immediate newvalue stores. llvm-svn: 225009
* [Hexagon] Adding indexed store new-value variants.Colin LeMahieu2014-12-301-1/+1
| | | | llvm-svn: 225007
* [Hexagon] Adding indexed store of immediates.Colin LeMahieu2014-12-301-9/+9
| | | | llvm-svn: 225006
* [Hexagon] Adding indexed stores.Colin LeMahieu2014-12-301-7/+8
| | | | llvm-svn: 225005
* [Hexagon] Adding reg-reg indexed load forms.Colin LeMahieu2014-12-301-24/+24
| | | | llvm-svn: 224997
* [Hexagon] Adding post-increment register form stores and register-immediate ↵Colin LeMahieu2014-12-291-36/+26
| | | | | | form stores with tests. llvm-svn: 224952
OpenPOWER on IntegriCloud