Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | [Hexagon] Properly handle 'q' constraint in 128-byte vector mode | Krzysztof Parzyszek | 2017-03-02 | 1 | -22/+10 | |
| | | | | llvm-svn: 296772 | |||||
* | [RDF] Replace {} with explicit constructor, since not all compilers like it | Krzysztof Parzyszek | 2017-03-01 | 1 | -1/+1 | |
| | | | | llvm-svn: 296666 | |||||
* | [RDF] Add recursion limit to getAllReachingDefsRec | Krzysztof Parzyszek | 2017-03-01 | 3 | -9/+40 | |
| | | | | | | | For large programs this function can take significant amounts of time. Let it abort gracefully when the program is too complex. llvm-svn: 296662 | |||||
* | [Hexagon] Fix lowering of formal arguments of type i1 | Krzysztof Parzyszek | 2017-03-01 | 1 | -3/+20 | |
| | | | | | | | | | | | On Hexagon, values of type i1 are passed in registers of type i32, even though i1 is not a legal value for these registers. This is a special case and needs special handling to maintain consistency of the lowering information. This fixes PR32089. llvm-svn: 296645 | |||||
* | [Hexagon] Generate extract instructions more aggressively | Krzysztof Parzyszek | 2017-02-28 | 1 | -1/+201 | |
| | | | | llvm-svn: 296537 | |||||
* | [Hexagon] Fix instruction selection for sign-extending i1 to i64 | Krzysztof Parzyszek | 2017-02-28 | 1 | -27/+28 | |
| | | | | llvm-svn: 296532 | |||||
* | [Hexagon] Defs and clobbers can overlap | Krzysztof Parzyszek | 2017-02-27 | 1 | -5/+4 | |
| | | | | llvm-svn: 296365 | |||||
* | [Hexagon] Undo shift folding where it could simplify addressing mode | Krzysztof Parzyszek | 2017-02-24 | 1 | -3/+75 | |
| | | | | | | | | | | | | For example, avoid (single shift): r0 = and(##536870908,lsr(r0,#3)) r0 = memw(r1+r0<<#0) in favor of (two shifts): r0 = lsr(r0,#5) r0 = memw(r1+r0<<#2) llvm-svn: 296196 | |||||
* | [Hexagon] Prettify code in HexagonDAGToDAGISel::Select | Krzysztof Parzyszek | 2017-02-24 | 1 | -47/+13 | |
| | | | | llvm-svn: 296187 | |||||
* | [Hexagon] Handle saturations in Hexagon bit tracker | Krzysztof Parzyszek | 2017-02-23 | 1 | -0/+14 | |
| | | | | llvm-svn: 296026 | |||||
* | [Hexagon] Allow setting register in BitVal without storing into map | Krzysztof Parzyszek | 2017-02-23 | 2 | -6/+13 | |
| | | | | | | | | | | | In the bit tracker, references to other bit values in which the register is 0 are prohibited. This means that generating self-referential register cells like { w:32 [0-15]:s[0-15] [16-31]:s[15] } is impossible. In order to get a self-referential cell, it had to be stored into a map and then reloaded from it. To avoid this step, add a function that will set the register to a given value without going through the map. llvm-svn: 296025 | |||||
* | [Hexagon] Avoid IMPLICIT_DEFs as new-value producers | Krzysztof Parzyszek | 2017-02-23 | 1 | -0/+2 | |
| | | | | llvm-svn: 295997 | |||||
* | [Hexagon] Patterns for CTPOP, BSWAP and BITREVERSE | Krzysztof Parzyszek | 2017-02-23 | 3 | -23/+16 | |
| | | | | llvm-svn: 295981 | |||||
* | [Hexagon] Implement @llvm.readcyclecounter() | Krzysztof Parzyszek | 2017-02-22 | 6 | -9/+34 | |
| | | | | llvm-svn: 295892 | |||||
* | [RDF] Support for partial structural aliases in RegisterAggr | Krzysztof Parzyszek | 2017-02-22 | 2 | -61/+67 | |
| | | | | llvm-svn: 295883 | |||||
* | [Hexagon] Add intrinsics for masked vector stores | Krzysztof Parzyszek | 2017-02-22 | 1 | -0/+19 | |
| | | | | | | Patch by Harsha Jagasia. llvm-svn: 295879 | |||||
* | [RDF] Skip undef uses when calculating kill flags | Krzysztof Parzyszek | 2017-02-22 | 1 | -1/+1 | |
| | | | | llvm-svn: 295856 | |||||
* | [RDF] Only access block live-ins when tracking liveness | Krzysztof Parzyszek | 2017-02-22 | 1 | -2/+4 | |
| | | | | llvm-svn: 295855 | |||||
* | Fix 'variable set but not used' warning when assertions are disabled. | Simon Pilgrim | 2017-02-19 | 1 | -0/+2 | |
| | | | | llvm-svn: 295585 | |||||
* | [Hexagon] Start using regmasks on calls | Krzysztof Parzyszek | 2017-02-17 | 18 | -116/+271 | |
| | | | | | | Reapply r295371 with a fix for the Windows bot failures. llvm-svn: 295504 | |||||
* | Revert "[Hexagon] Start using regmasks on calls" | Rafael Espindola | 2017-02-17 | 18 | -270/+115 | |
| | | | | | | | | | | This reverts commit r295371. It broke windows bots: http://bb.pgr.jp/builders/ninja-clang-i686-msc19-R/builds/11402/steps/test-llvm/logs/stdio llvm-svn: 295402 | |||||
* | Fix -Wunused-lambda-capture by removing some unused lambda captures | David Blaikie | 2017-02-16 | 1 | -2/+2 | |
| | | | | llvm-svn: 295373 | |||||
* | [Hexagon] Start using regmasks on calls | Krzysztof Parzyszek | 2017-02-16 | 18 | -115/+270 | |
| | | | | | | All the cool targets are doing it... llvm-svn: 295371 | |||||
* | [RDF] Aggregate shadow phi uses into one cluster when propagating live info | Krzysztof Parzyszek | 2017-02-16 | 2 | -70/+68 | |
| | | | | llvm-svn: 295366 | |||||
* | [RDF] Differentiate between defining and clobbering nodes | Krzysztof Parzyszek | 2017-02-16 | 4 | -13/+88 | |
| | | | | | | | | | | Defining nodes should not alias with one another, while clobbering nodes can. When pushing defs on stacks, push clobbers first, link non-clobbering defs, then push the defs. The data flow in a statement is now: uses -> clobbers -> defs. llvm-svn: 295356 | |||||
* | [RDF] Move normalize(RegisterRef) to PhysicalRegisterInfo | Krzysztof Parzyszek | 2017-02-16 | 6 | -45/+36 | |
| | | | | | | Remove the duplicate from DFG and make some members of PRI private. llvm-svn: 295351 | |||||
* | [Hexagon] Remove leftover debugging code | Krzysztof Parzyszek | 2017-02-14 | 1 | -4/+0 | |
| | | | | llvm-svn: 295078 | |||||
* | Fix "left shift of negative value -1" introduced by r294805 | Vitaly Buka | 2017-02-11 | 1 | -1/+1 | |
| | | | | llvm-svn: 294843 | |||||
* | Move symbols from the global namespace into (anonymous) namespaces. NFC. | Benjamin Kramer | 2017-02-11 | 2 | -5/+3 | |
| | | | | llvm-svn: 294837 | |||||
* | [Hexagon] Introduce Hexagon V62 | Krzysztof Parzyszek | 2017-02-10 | 18 | -61/+4032 | |
| | | | | llvm-svn: 294805 | |||||
* | [Hexagon] Remove unused .td files | Krzysztof Parzyszek | 2017-02-10 | 7 | -2572/+0 | |
| | | | | llvm-svn: 294775 | |||||
* | [Hexagon] Replace instruction definitions with auto-generated ones | Krzysztof Parzyszek | 2017-02-10 | 37 | -12829/+48409 | |
| | | | | llvm-svn: 294753 | |||||
* | Drop graph_ prefix | Daniel Berlin | 2017-02-09 | 4 | -7/+7 | |
| | | | | llvm-svn: 294621 | |||||
* | GraphTraits: Add range versions of graph traits functions (graph_nodes, ↵ | Daniel Berlin | 2017-02-09 | 4 | -32/+17 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | graph_children, inverse_graph_nodes, inverse_graph_children). Summary: Convert all obvious node_begin/node_end and child_begin/child_end pairs to range based for. Sending for review in case someone has a good idea how to make graph_children able to be inferred. It looks like it would require changing GraphTraits to be two argument or something. I presume inference does not happen because it would have to check every GraphTraits in the world to see if the noderef types matched. Note: This change was 3-staged with clang as well, which uses Dominators/etc from LLVM. Reviewers: chandlerc, tstellarAMD, dblaikie, rsmith Subscribers: arsenm, llvm-commits, nhaehnle Differential Revision: https://reviews.llvm.org/D29767 llvm-svn: 294620 | |||||
* | [Hexagon] Fix decoding conflict between A2_zxtb and A4_ext | Krzysztof Parzyszek | 2017-02-08 | 2 | -1/+3 | |
| | | | | llvm-svn: 294472 | |||||
* | [Hexagon] Update instruction types | Krzysztof Parzyszek | 2017-02-07 | 7 | -31/+77 | |
| | | | | | | | | | Remove TypeXTYPE, TypeALU32, TypeSYSTEM, TypeJR, and instead use their architecture counterparts. Patch by Colin LeMahieu. llvm-svn: 294321 | |||||
* | [Hexagon] Remove encoding bits from mapped instructions | Krzysztof Parzyszek | 2017-02-07 | 4 | -18/+48 | |
| | | | | | | | | | | - Map A2_zxtb to A2_andir. - Map PS_call_nr J2_call. - Map A2_tfr[t|f][new] to A2_padd[t|f][new]. Patch by Colin LeMahieu. llvm-svn: 294320 | |||||
* | [Hexagon] Address ASAN and UBSAN failures after r294226 | Krzysztof Parzyszek | 2017-02-07 | 4 | -16/+18 | |
| | | | | | | Reinstate r294256 with a fix. llvm-svn: 294269 | |||||
* | Revert "[Hexagon] Address ASAN and UBSAN failures after r294226" | Krzysztof Parzyszek | 2017-02-06 | 3 | -15/+13 | |
| | | | | | | | This reverts commit r294256. It seems to be causing more problems instead of solving them. llvm-svn: 294259 | |||||
* | [Hexagon] Adding gp+ to the syntax of gp-relative instructions | Krzysztof Parzyszek | 2017-02-06 | 2 | -9/+65 | |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 294258 | |||||
* | [Hexagon] Address ASAN and UBSAN failures after r294226 | Krzysztof Parzyszek | 2017-02-06 | 3 | -13/+15 | |
| | | | | llvm-svn: 294256 | |||||
* | [Hexagon] Update MCTargetDesc | Krzysztof Parzyszek | 2017-02-06 | 22 | -704/+1072 | |
| | | | | | | | | | | Changes include: - Updates to the instruction descriptor flags. - Improvements to the packet shuffler and checker. - Updates to the handling of certain relocations. - Better handling of duplex instructions. llvm-svn: 294226 | |||||
* | [Hexagon] Adding opExtentBits and opExtentAlign to GPrel instructions | Krzysztof Parzyszek | 2017-02-02 | 4 | -12/+62 | |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 293933 | |||||
* | [Hexagon] Fix relocation kind for extended predicated calls | Krzysztof Parzyszek | 2017-02-02 | 1 | -5/+7 | |
| | | | | | | Patch by Sid Manning. llvm-svn: 293931 | |||||
* | [Hexagon] Remove A4_ext_* pseudo instructions | Krzysztof Parzyszek | 2017-02-02 | 6 | -38/+35 | |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 293929 | |||||
* | [Hexagon] Fix insertBranch for loops with multiple ENDLOOP instructions | Krzysztof Parzyszek | 2017-02-02 | 1 | -18/+24 | |
| | | | | llvm-svn: 293925 | |||||
* | [Hexagon] Emitting individual instructions without copying them | Krzysztof Parzyszek | 2017-02-02 | 2 | -97/+82 | |
| | | | | | | Patch by Colin LeMahieu. llvm-svn: 293899 | |||||
* | [Hexagon] Rename TypeCOMPOUND to TypeCJ | Krzysztof Parzyszek | 2017-02-02 | 8 | -16/+15 | |
| | | | | llvm-svn: 293894 | |||||
* | Shut up GCC warning about operator precedence. NFC. | Michael Kuperstein | 2017-01-31 | 1 | -3/+3 | |
| | | | | | | | | Technically, this is actually changes the expression and the original assert was "wrong", but since the conjunction is with true, it doesn't matter in this case. llvm-svn: 293709 | |||||
* | [RDF] Add support for regmasks | Krzysztof Parzyszek | 2017-01-30 | 4 | -79/+272 | |
| | | | | llvm-svn: 293538 |