Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [Hexagon] Use general purpose registers to spill pred/mod registers into | Krzysztof Parzyszek | 2016-01-22 | 4 | -78/+310 | |
| | | | | | | Patch by Tobias Edler Von Koch. llvm-svn: 258527 | |||||
* | PR26172: unnecessary indirection in HexagonCopyToCombine.cpp | Krzysztof Parzyszek | 2016-01-21 | 1 | -1/+1 | |
| | | | | llvm-svn: 258395 | |||||
* | Fixed MSVC Win64 warning of implicit conversion of 32-bit shift to 64-bits. | Simon Pilgrim | 2016-01-18 | 1 | -1/+1 | |
| | | | | llvm-svn: 258084 | |||||
* | [Hexagon] Recognize more copy-equivalents in RDF optimizations | Krzysztof Parzyszek | 2016-01-18 | 1 | -14/+59 | |
| | | | | llvm-svn: 258076 | |||||
* | [RDF] Improvements to copy propagation | Krzysztof Parzyszek | 2016-01-18 | 2 | -72/+145 | |
| | | | | | | | - Allow any instruction to define equality between registers. - Keep the DFG updated. llvm-svn: 258075 | |||||
* | [RDF] Improve compile-time performance of dead code elimination | Krzysztof Parzyszek | 2016-01-18 | 2 | -12/+42 | |
| | | | | llvm-svn: 258074 | |||||
* | [RDF] Allow unlinking ref nodes from data-flow chains only | Krzysztof Parzyszek | 2016-01-18 | 3 | -14/+23 | |
| | | | | llvm-svn: 258073 | |||||
* | GlobalValue: use getValueType() instead of getType()->getPointerElementType(). | Manuel Jacob | 2016-01-16 | 1 | -1/+1 | |
| | | | | | | | | | | | | Reviewers: mjacob Subscribers: jholewinski, arsenm, dsanders, dblaikie Patch by Eduard Burtescu. Differential Revision: http://reviews.llvm.org/D16260 llvm-svn: 257999 | |||||
* | [Hexagon] Generate CONST64 when optimizing for size in copy-to-combine | Krzysztof Parzyszek | 2016-01-15 | 1 | -11/+64 | |
| | | | | llvm-svn: 257891 | |||||
* | [Hexagon] Handle DBG_VALUE instructions in copy-to-combine | Krzysztof Parzyszek | 2016-01-15 | 1 | -7/+49 | |
| | | | | llvm-svn: 257890 | |||||
* | [Hexagon] Use S2_lsr_i_r instead of S2_extractu to obtain upper halfword | Krzysztof Parzyszek | 2016-01-14 | 1 | -3/+2 | |
| | | | | llvm-svn: 257815 | |||||
* | [Hexagon] Handle HVX registers in bit simplification | Krzysztof Parzyszek | 2016-01-14 | 1 | -0/+6 | |
| | | | | llvm-svn: 257811 | |||||
* | Update to use new name alignTo(). | Rui Ueyama | 2016-01-14 | 1 | -2/+2 | |
| | | | | llvm-svn: 257804 | |||||
* | [Hexagon] Expand pseudo instruction Insert4 | Krzysztof Parzyszek | 2016-01-14 | 1 | -0/+30 | |
| | | | | llvm-svn: 257771 | |||||
* | [Hexagon] Handle branches with non-mbb operands | Krzysztof Parzyszek | 2016-01-14 | 2 | -0/+7 | |
| | | | | llvm-svn: 257768 | |||||
* | Convert a few assert failures into proper errors. | Rafael Espindola | 2016-01-13 | 1 | -3/+4 | |
| | | | | | | Fixes PR25944. llvm-svn: 257697 | |||||
* | [Hexagon] Fix the options controlling jump table generation | Krzysztof Parzyszek | 2016-01-13 | 1 | -2/+2 | |
| | | | | llvm-svn: 257679 | |||||
* | [Hexagon] Do not insert non-phis before phis in bit simplification | Krzysztof Parzyszek | 2016-01-13 | 1 | -7/+19 | |
| | | | | llvm-svn: 257606 | |||||
* | Replace inherited constructor with an explicit one | Krzysztof Parzyszek | 2016-01-12 | 1 | -2/+2 | |
| | | | | | | Some bots failed when the inherited constructor was used. llvm-svn: 257508 | |||||
* | [Hexagon] Implement RDF-based post-RA optimizations | Krzysztof Parzyszek | 2016-01-12 | 5 | -2/+372 | |
| | | | | | | | | - Handle simple cases of register copies (what current RDF CP allows). - Hexagon-specific dead code elimination: handles dead address updates in post-increment instructions. llvm-svn: 257504 | |||||
* | RDF: Copy propagation | Krzysztof Parzyszek | 2016-01-12 | 3 | -0/+229 | |
| | | | | | | | | | | This is a very limited implementation of DFG-based copy propagation. It only handles actual COPY instructions (does not handle other equivalents such as add-immediate with a 0 operand). The major limitation is that it does not update the DFG: that will be the change required to make it more robust (hopefully coming up soon). llvm-svn: 257490 | |||||
* | RDF: Dead code elimination | Krzysztof Parzyszek | 2016-01-12 | 3 | -0/+270 | |
| | | | | | | Utility class to perform DFG-based dead code elimination. llvm-svn: 257485 | |||||
* | Fix compiler warnings from r257477 | Krzysztof Parzyszek | 2016-01-12 | 1 | -2/+2 | |
| | | | | llvm-svn: 257483 | |||||
* | RDF: Implement register liveness analysis | Krzysztof Parzyszek | 2016-01-12 | 3 | -0/+955 | |
| | | | | | | Compute block live-ins and operand kill flags from the DFG. llvm-svn: 257480 | |||||
* | Register Data Flow: data flow graph | Krzysztof Parzyszek | 2016-01-12 | 3 | -0/+2558 | |
| | | | | | | | | | Target independent, SSA-based data flow framework for representing data flow between physical registers. This commit implements the creation of the actual data flow graph. llvm-svn: 257477 | |||||
* | [Hexagon] Make helper function static. NFC. | Benjamin Kramer | 2016-01-12 | 1 | -3/+3 | |
| | | | | llvm-svn: 257476 | |||||
* | [Hexagon] Add check for nullptr in getFixupNoBits | Krzysztof Parzyszek | 2016-01-11 | 1 | -15/+15 | |
| | | | | llvm-svn: 257338 | |||||
* | [Hexagon] Add implicit uses of GP to GP-relative loads and stores | Krzysztof Parzyszek | 2016-01-11 | 1 | -1/+3 | |
| | | | | llvm-svn: 257337 | |||||
* | [Hexagon] Mark D14 and GP as reserved registers | Krzysztof Parzyszek | 2016-01-11 | 1 | -0/+2 | |
| | | | | llvm-svn: 257336 | |||||
* | [Hexagon] Replace a static member variable in HexagonCVIResource (NFC) | Tobias Edler von Koch | 2016-01-08 | 2 | -20/+19 | |
| | | | | | | | This creates one instance of TUL per HexagonShuffler, which avoids thread-safety issues with future changes. llvm-svn: 257215 | |||||
* | [Hexagon] Add system instructions for cache manipulation | Krzysztof Parzyszek | 2016-01-06 | 2 | -0/+115 | |
| | | | | llvm-svn: 256936 | |||||
* | [TableGen] Modify the AsmMatcherEmitter to only apply the table growth from ↵ | Craig Topper | 2015-12-31 | 1 | -0/+5 | |
| | | | | | | | | | | | | | | r252440 to the Hexagon target. This restores the previous behavior of not including the mnemonic in the classes table for every target that starts instruction lines with the mnemonic. Not only did the table size increase by 1 entry, but the class enum increased in size which caused every class in the array to increase in size. It also grew the size of the function that parsers tokens into classes by a substantial amount. This adds a new HasMnemonicFirst flag to all AsmParsers. It's set to 1 by default and Hexagon target overrides it to 0. For the X86 target alone this recovers 324KB of size on the llvm-mc executable. I believe the current state is still a bad design choice for the Hexagon target as it causes most of the parsing to do a linear search through the entire match table to comparing operands against every instruction until it finds one that works. At least for the other targets we do a binary search based on mnemonic over which to do the linear scan. llvm-svn: 256669 | |||||
* | [Hexagon] Add PIC support | Krzysztof Parzyszek | 2015-12-18 | 7 | -153/+155 | |
| | | | | llvm-svn: 256025 | |||||
* | [Hexagon] Misc fixes to r255807 | Krzysztof Parzyszek | 2015-12-16 | 1 | -8/+3 | |
| | | | | llvm-svn: 255811 | |||||
* | [Hexagon] Update the Hexagon packetizer | Krzysztof Parzyszek | 2015-12-16 | 4 | -888/+1235 | |
| | | | | llvm-svn: 255807 | |||||
* | [Hexagon] Make memcpy lowering thread-safe | Tobias Edler von Koch | 2015-12-16 | 3 | -21/+38 | |
| | | | | | | | | This removes an unpleasant hack involving a global variable for special lowering of certain memcpy calls. These are now lowered as intended in EmitTargetCodeForMemcpy in the same way that other targets do it. llvm-svn: 255785 | |||||
* | [Hexagon] Preprocess mapped instructions before lowering to MC | Krzysztof Parzyszek | 2015-12-15 | 3 | -3/+391 | |
| | | | | llvm-svn: 255653 | |||||
* | [Hexagon] Add "const" to function parameters in HexagonInstrInfo | Krzysztof Parzyszek | 2015-12-14 | 2 | -35/+37 | |
| | | | | llvm-svn: 255544 | |||||
* | [Packetizer] Add AliasAnalysis as a parameter to the packetizer | Krzysztof Parzyszek | 2015-12-14 | 1 | -1/+1 | |
| | | | | | | | | This will make the depedence graph more accurate if an alias analysis is provided. If nullptr is specified in its place, the behavior will remain as it is currently. llvm-svn: 255540 | |||||
* | Add "const" to function arguments in DFAPacketizer | Krzysztof Parzyszek | 2015-12-14 | 1 | -7/+7 | |
| | | | | llvm-svn: 255526 | |||||
* | [Hexagon] Subtarget features/default CPU corrections | Krzysztof Parzyszek | 2015-12-14 | 6 | -15/+22 | |
| | | | | llvm-svn: 255501 | |||||
* | Normalize MBB's successors' probabilities in several locations. | Cong Hou | 2015-12-13 | 1 | -1/+2 | |
| | | | | | | | | | | | | This patch adds some missing calls to MBB::normalizeSuccProbs() in several locations where it should be called. Those places are found by checking if the sum of successors' probabilities is approximate one in MachineBlockPlacement pass with some instrumented code (not in this patch). Differential revision: http://reviews.llvm.org/D15259 llvm-svn: 255455 | |||||
* | [Hexagon] Add NewValueJump support for C4_cmpneq, C4_cmplte, C4_cmplteu | Ron Lieberman | 2015-12-08 | 1 | -0/+18 | |
| | | | | llvm-svn: 255027 | |||||
* | fix 'the the '; NFC | Sanjay Patel | 2015-12-07 | 2 | -2/+2 | |
| | | | | llvm-svn: 254928 | |||||
* | Use make_range to reduce mentions of iterator type. NFC | Craig Topper | 2015-12-06 | 1 | -2/+1 | |
| | | | | llvm-svn: 254872 | |||||
* | [Hexagon] Don't call getNumImplicitDefs and then iterate over the count. ↵ | Craig Topper | 2015-12-05 | 1 | -24/+25 | |
| | | | | | | getNumImplicitDefs contains a loop so its better to just loop over the null terminated implicit def list. NFC llvm-svn: 254852 | |||||
* | Replace uint16_t with the MCPhysReg typedef in many places. A lot of ↵ | Craig Topper | 2015-12-05 | 5 | -32/+32 | |
| | | | | | | physical register arrays already use this typedef. llvm-svn: 254843 | |||||
* | [Hexagon] Simplify LowerCONCAT_VECTORS, handle different types better | Krzysztof Parzyszek | 2015-12-04 | 1 | -58/+55 | |
| | | | | llvm-svn: 254724 | |||||
* | [Hexagon] Using multiply instead of shift on signed number which can be UB | Colin LeMahieu | 2015-12-04 | 1 | -2/+2 | |
| | | | | llvm-svn: 254719 | |||||
* | [Hexagon] Adding shuffling resources for HVX instructions and tests for ↵ | Colin LeMahieu | 2015-12-03 | 2 | -7/+131 | |
| | | | | | | instruction encodings. llvm-svn: 254652 |