summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* GlobalISel: allow extractvalue to extract an aggregate.Tim Northover2016-08-192-1/+12
| | | | llvm-svn: 279287
* [Hexagon] Fixes for new-value jump formationKrzysztof Parzyszek2016-08-192-10/+94
| | | | | | | - Recognize C2_cmpgtui, S2_tstbit_i, and S4_ntstbit_i. - Avoid creating new-value instructions with both source operands equal. llvm-svn: 279286
* GlobalISel: support translation of extractvalue instructions.Tim Northover2016-08-196-4/+37
| | | | llvm-svn: 279285
* [CostModel][X86] Add fdiv + frem cost testsSimon Pilgrim2016-08-191-2/+32
| | | | llvm-svn: 279283
* [InstCombine] use local variables to reduce code in foldICmpShlConstant; NFCSanjay Patel2016-08-191-21/+15
| | | | llvm-svn: 279282
* [Hexagon] Fix a few omissions in HexagonInstrInfoKrzysztof Parzyszek2016-08-191-0/+3
| | | | llvm-svn: 279280
* [InstCombine] rename variables in foldICmpShlConstant(); NFCSanjay Patel2016-08-191-34/+34
| | | | llvm-svn: 279279
* GlobalISel: support overflow arithmetic intrinsics.Tim Northover2016-08-199-45/+265
| | | | | | | | | | | | Unsigned addition and subtraction can reuse the instructions created to legalize large width operations (i.e. both produce and consume a carry flag). Signed operations and multiplies get a dedicated op-with-overflow instruction. Once this is produced the two values are combined into a struct register (which will almost always be merged with a corresponding G_EXTRACT as part of legalization). llvm-svn: 279278
* Revert "[asan] Optimize store size in FunctionStackPoisoner::poisonRedZones"Vitaly Buka2016-08-194-63/+47
| | | | | | | | This reverts commit r279178. Speculative revert in hope to fix asan crash on arm. llvm-svn: 279277
* Revert "[asan] Fix size of shadow incorrectly calculated in r279178"Vitaly Buka2016-08-192-3/+4
| | | | | | | | This reverts commit r279222. Speculative revert in hope to fix asan crash on arm. llvm-svn: 279276
* [RuntimeDyld] Revert r279182 and 279201 -- they broke some ARM bots.Lang Hames2016-08-1911-26/+10
| | | | llvm-svn: 279275
* [AliasSetTracker] Degrade AliasSetTracker when may-alias sets get too large.Michael Kuperstein2016-08-193-23/+203
| | | | | | | | | | | | | | | | | | Repeated inserts into AliasSetTracker have quadratic behavior - inserting a pointer into AST is linear, since it requires walking over all "may" alias sets and running an alias check vs. every pointer in the set. We can avoid this by tracking the total number of pointers in "may" sets, and when that number exceeds a threshold, declare the tracker "saturated". This lumps all pointers into a single "may" set that aliases every other pointer. (This is a stop-gap solution until we migrate to MemorySSA) This fixes PR28832. Differential Revision: https://reviews.llvm.org/D23432 llvm-svn: 279274
* [X86][SSE] Generalised combining to VZEXT_MOVL to any vector sizeSimon Pilgrim2016-08-193-6/+85
| | | | | | This doesn't change tests codegen as we already combined to blend+zero which is what we lower VZEXT_MOVL to on SSE41+ targets, but it does put us in a better position when we improve shuffling for optsize. llvm-svn: 279273
* [Hexagon] Enforce LLSC packetization rulesKrzysztof Parzyszek2016-08-192-0/+30
| | | | | | | | | Ensure that load locked and store conditional instructions are only packetized with ALU32 instructions. Patch by Ben Craig. llvm-svn: 279272
* Fix regression in InstCombine introduced by r278944Reid Kleckner2016-08-192-3/+17
| | | | | | | | | | | The intended transform is: // Simplify icmp eq (or (ptrtoint P), (ptrtoint Q)), 0 // -> and (icmp eq P, null), (icmp eq Q, null). P and Q are both pointer types, but may have different types. We need two calls to getNullValue() to make the icmps. llvm-svn: 279271
* MachineScheduler: Make some GenericScheduler member variables protectedTom Stellard2016-08-191-12/+14
| | | | | | | | | | | | Summary: We will need these in AMDGPU's new SchedStrategy implmentation. Reviewers: MatzeB, atrick Subscribers: llvm-commits, MatzeB Differential Revision: https://reviews.llvm.org/D23679 llvm-svn: 279270
* [Hexagon] Minor updates to register definitionsKrzysztof Parzyszek2016-08-191-4/+5
| | | | llvm-svn: 279269
* [CloneFunction] Don't remove unrelated nodes from the CGSSCDavid Majnemer2016-08-192-2/+30
| | | | | | | | CGSCC use a WeakVH to track call sites. RAUW a call within a function can result in that WeakVH getting confused about whether or not the call site is still around. llvm-svn: 279268
* [Hexagon] Fix incorrect generation of S4_subi_asl_riKrzysztof Parzyszek2016-08-192-14/+99
| | | | | | Patch by Jyotsna Verma. llvm-svn: 279267
* [InstCombine] use m_APInt to allow icmp (shl 1, Y), C folds for splat ↵Sanjay Patel2016-08-192-28/+13
| | | | | | constant vectors llvm-svn: 279266
* [Hexagon] Add missing pattern for C4_cmplteKrzysztof Parzyszek2016-08-191-0/+2
| | | | llvm-svn: 279265
* [ELF] - Fix for PR28976 - Corrupted section contents when using linker scriptsGeorge Rimar2016-08-195-3/+22
| | | | | | | | | | | | This is fix for PR28976. Problem was that in scanRelocs, we computed relocation offset too early for case when linkerscript was used. Patch fixes the issue delaying the calculation. Differential revision: https://reviews.llvm.org/D23655 llvm-svn: 279264
* [InstCombine] use m_APInt to allow icmp X, C folds for splat constant vectorsSanjay Patel2016-08-192-7/+16
| | | | | | | | | Of course, we really need to refactor and fix all of the cmp predicates, but this one is interesting because without it, we later perform an information-losing transform of icmp (shl 1, Y), C, and we can't recover the better fold. llvm-svn: 279263
* [ELF] - Give automatically generated __start_* and __stop_* symbols default ↵George Rimar2016-08-196-25/+45
| | | | | | | | | | | | | | | | visibility. This patch is opposite to D19024, which made this symbols to be hidden by default. Unfortunately FreeBSD loader wants to see start_set_modmetadata_set/stop_set_modmetadata_set in the dynamic symbol table. They were not placed there because had hidden visibility. Patch makes them to have default visibility again. Differential revision: https://reviews.llvm.org/D23552 llvm-svn: 279262
* [LTO] Remove dead-code: collectUsedGlobalVariables has been moved to Thin ↵Mehdi Amini2016-08-191-3/+1
| | | | | | and LTO specifc path (NFC) llvm-svn: 279261
* [InstCombine] add tests for missing vector icmp foldsSanjay Patel2016-08-191-0/+17
| | | | llvm-svn: 279259
* [ELF] - Linkerscript: set correct dynamic tag entries values when LS is used.George Rimar2016-08-193-6/+37
| | | | | | | | | | | | Previously DT_PREINIT_ARRAYSZ, DT_INIT_ARRAYSZ and DT_FINI_ARRAYSZ were set to zero when lincerscript was used becase sections sizes are calculated later that were taken. Patch delays values calculation for these entries. Testcase is provided. Differential revision: https://reviews.llvm.org/D23663 llvm-svn: 279258
* [InstCombine] add missing tests for basic icmp foldsSanjay Patel2016-08-191-0/+19
| | | | | | | These are implicitly included as part of larger test cases, but they don't exist stand-alone (and don't happen for vectors...). llvm-svn: 279257
* [ELF] - Linkerscript: implemented SUBALIGN() command.George Rimar2016-08-193-1/+52
| | | | | | | | | | | You can force input section alignment within an output section by using SUBALIGN. The value specified overrides any alignment given by input sections, whether larger or smaller. SUBALIGN is used in many projects in the wild. Differential revision: https://reviews.llvm.org/D23063 llvm-svn: 279256
* [Hexagon] Make p0 an explicit operand in VA1_clr* subinstructions, NFCKrzysztof Parzyszek2016-08-192-10/+15
| | | | llvm-svn: 279255
* [Hexagon] Add explicit default constructor for HexagonSelectionDAGInfoKrzysztof Parzyszek2016-08-191-0/+2
| | | | llvm-svn: 279254
* build: allow building a specific set of sanitizersSaleem Abdulrasool2016-08-193-40/+48
| | | | | | | | | | | Introduce a new CMake option `COMPILER_RT_SANITIZERS_TO_BUILD` which takes either a special token `all` (default) which will preserve the current behaviour or a CMake list of sanitizers to build. It will still perform the normal checks if the sanitizer is requested. It only permits a further means to exclude a particular sanitizer. This gives finer grained control than `COMPILER_RT_BUILD_SANITIZERS` which only gives an all or nothing control. llvm-svn: 279253
* Unxfail passing tests on HexagonKrzysztof Parzyszek2016-08-192-2/+0
| | | | llvm-svn: 279252
* [Hexagon] Allow tail-call optimization when mixing C and fast calling convKrzysztof Parzyszek2016-08-192-3/+31
| | | | | | Patch by Arnold Schwaighofer. llvm-svn: 279251
* clang-format: [JS] handle object literals with casts.Martin Probst2016-08-192-1/+3
| | | | | | | | | | | | Summary: E.g. `{a: 1} as b`. Reviewers: djasper Subscribers: cfe-commits, klimek Differential Revision: https://reviews.llvm.org/D23714 llvm-svn: 279250
* [Hexagon] Check for empty live intervalKrzysztof Parzyszek2016-08-192-0/+49
| | | | | | Patch by Brendon Cahoon. llvm-svn: 279249
* [Hexagon] Consider zext/sext of a load to i32 to be freeKrzysztof Parzyszek2016-08-192-0/+27
| | | | llvm-svn: 279248
* Revert r279242 - it's failing the testsAnton Korobeynikov2016-08-192-779/+117
| | | | llvm-svn: 279247
* [Hexagon] Handle J2_jumptpt and J2_jumpfpt instructionsKrzysztof Parzyszek2016-08-193-2/+16
| | | | llvm-svn: 279246
* [Hexagon] Fix indentation, NFCKrzysztof Parzyszek2016-08-191-3/+3
| | | | llvm-svn: 279245
* [Hexagon] Remove unnecessary llvm::, NFCKrzysztof Parzyszek2016-08-191-1/+1
| | | | llvm-svn: 279244
* [Hexagon] Rename the HEXAGON_MC namespace to Hexagon_MC, NFCKrzysztof Parzyszek2016-08-193-4/+4
| | | | llvm-svn: 279243
* Fix PR27500: on MSP430 the branch destination offset is measured in words, ↵Anton Korobeynikov2016-08-192-117/+779
| | | | | | | | | | | | not bytes. In addition, the branch instructions will have proper BB destinations, not offsets, like before. Patch by Vadzim Dambrouski! Differential Revision: https://reviews.llvm.org/D20162 llvm-svn: 279242
* [Hexagon] Mark PS_jumpret as pseudo-instruction, expand it into J2_jumprKrzysztof Parzyszek2016-08-195-27/+31
| | | | llvm-svn: 279241
* Fixed a typo (compilation_commands.json --> compile_commands.json).Andrey Bokhanko2016-08-191-1/+1
| | | | llvm-svn: 279240
* [Hexagon] Improvements to handling and generation of FP instructionsKrzysztof Parzyszek2016-08-197-17/+247
| | | | | | | | | Improved handling of fma, floating point min/max, additional load/store instructions for floating point types. Patch by Jyotsna Verma. llvm-svn: 279239
* Fix 32-bit builds after r279232Pavel Labath2016-08-191-2/+3
| | | | | | | GetByteSize() of a DataBuffer returns a uint64_t (it probably shouldn't), which isn't implicitly convertible to size_t. llvm-svn: 279238
* Cleanup: Move the *AddressDescription printing code to Print() members ↵Filipe Cabecinhas2016-08-193-108/+159
| | | | | | | | | | | | | | | | inside those structs. Summary: The Print() members might take optional access_size and bug_type parameters to still be able to provide the same information Reviewers: kcc, samsonov Subscribers: kubabrecka, llvm-commits Differential Revision: https://reviews.llvm.org/D23658 llvm-svn: 279237
* [ELF] - Removed excessive llvm-readobj call from linkerscript-ouputformat.s. ↵George Rimar2016-08-191-1/+0
| | | | | | NFC. llvm-svn: 279236
* [AMDGPU] add s_incperflevel/s_decperflevel builtinsValery Pykhtin2016-08-193-0/+30
| | | | | | Differential revision: https://reviews.llvm.org/D23668 llvm-svn: 279235
OpenPOWER on IntegriCloud