summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* [libFuzzer] properly hide the memcmp interceptor from msanKostya Serebryany2017-02-031-1/+1
| | | | llvm-svn: 294061
* [PGO] Add select instr profile in graph dumpXinliang David Li2017-02-031-3/+32
| | | | | | Differential Revision: http://reviews.llvm.org/D29474 llvm-svn: 294055
* [AArch64] Fix some Include What You Use warnings; other minor fixes (NFC).Eugene Zelenko2017-02-034-25/+46
| | | | | | This is preparation to reduce MCExpr.h dependencies. llvm-svn: 294053
* [ARM] Fix some Include What You Use warnings; other minor fixes (NFC).Eugene Zelenko2017-02-032-2/+9
| | | | | | This is preparation to reduce MCExpr.h dependencies. llvm-svn: 294052
* [XCore] Fix some Include What You Use warnings; other minor fixes (NFC).Eugene Zelenko2017-02-032-3/+9
| | | | | | This is preparation to reduce MCExpr.h dependencies. llvm-svn: 294051
* [InstCombine] fix operand-complexity-based canonicalization (PR28296)Sanjay Patel2017-02-0315-35/+42
| | | | | | | | | | | | | | | | | | | The code comments didn't match the code logic, and we didn't actually distinguish the fake unary (not/neg/fneg) operators from arguments. Adding another level to the weighting scheme provides more structure and can help simplify the pattern matching in InstCombine and other places. I fixed regressions that would have shown up from this change in: rL290067 rL290127 But that doesn't mean there are no pattern-matching logic holes left; some combines may just be missing regression tests. Should fix: https://llvm.org/bugs/show_bug.cgi?id=28296 Differential Revision: https://reviews.llvm.org/D27933 llvm-svn: 294049
* [AMDGPU][mc][tests][NFC] Add coverage/smoke Gfx7 asm test (3rd attempt)Artem Tamazov2017-02-031-0/+63289
| | | | llvm-svn: 294047
* Properly parse the TypeServer2 record.Zachary Turner2017-02-039-29/+94
| | | | llvm-svn: 294046
* [InstCombine] auto-generate better test checks; NFCSanjay Patel2017-02-031-16/+38
| | | | llvm-svn: 294040
* AMDGPU: AsmParser cleanupsMatt Arsenault2017-02-031-17/+24
| | | | | | Use typedef, remove unnecessary enum, line wraps. llvm-svn: 294039
* AMDGPU: Cleanup scalar_to_vector testMatt Arsenault2017-02-031-13/+13
| | | | llvm-svn: 294038
* [libfuzzer] chromium-related compilation fixesMike Aizatsky2017-02-033-10/+13
| | | | | | | | Reviewers: kcc Differential Revision: https://reviews.llvm.org/D29502 llvm-svn: 294035
* [InstCombine] auto-generate better test checks; NFCSanjay Patel2017-02-031-95/+116
| | | | llvm-svn: 294034
* [AMDGPU] Bump -amdgpu-unroll-threshold-private to 2000Stanislav Mekhanoshin2017-02-031-1/+1
| | | | | | | | | | | This has quite positive performance impact according to measurements. Before previous fixes to limit the optimization that was too high and blowed compile time and scratch usage, but now this is gone and we can bump the threshold. Differential Revision: https://reviews.llvm.org/D29505 llvm-svn: 294032
* AMDGPU: Set MCAsmInfo::PointerSizeMatt Arsenault2017-02-032-0/+27
| | | | llvm-svn: 294031
* AMDGPU: Don't unroll for private with dynamic allocasMatt Arsenault2017-02-032-1/+35
| | | | | | | This won't be elimnated, so this will just bloat code if/when these are ever used/supported. llvm-svn: 294030
* [SLP] Make sortMemAccesses explicitly return an error. NFC.Michael Kuperstein2017-02-033-31/+31
| | | | llvm-svn: 294029
* [TLI] Robustize SDAG LibFunc proto checking by merging it into TLI.Ahmed Bougacha2017-02-039-425/+132
| | | | | | | | | | | | | | | | | | | | | | | This re-applies commit r292189, reverted in r292191. SelectionDAGBuilder recognizes libfuncs using some homegrown parameter type-checking. Use TLI instead, removing another heap of redundant code. This isn't strictly NFC, as the SDAG code was too lax. Concretely, this means changes are required to a few tests: - calling a non-variadic function via a variadic prototype isn't OK; it just happens to work on x86_64 (but not on, e.g., aarch64). - mempcpy has a size_t parameter; the SDAG code accepts any integer type, which meant using i32 on x86_64 worked. - a handful of SystemZ tests check the SDAG support for lax prototype checking: Ulrich agrees on removing them. I don't think it's worth supporting any of these (IMO) invalid testcases. Instead, fix them to be more meaningful. llvm-svn: 294028
* [SLP] Use SCEV to sort memory accesses.Michael Kuperstein2017-02-033-26/+162
| | | | | | | | | | This generalizes memory access sorting to use differences between SCEVs, instead of relying on constant offsets. That allows us to properly do SLP vectorization of non-sequentially ordered loads within loops bodies. Differential Revision: https://reviews.llvm.org/D29425 llvm-svn: 294027
* GlobalISel: translate dynamic alloca instructions.Tim Northover2017-02-035-16/+181
| | | | llvm-svn: 294022
* Fix a bug in llvm-obdump(1) with the -objc-meta-data flag with -machoKevin Enderby2017-02-033-1/+4
| | | | | | | | which caused a hang on a malformed binary with bad bind info. rdar://29672108 llvm-svn: 294021
* [X86][SSE] Add support for combining scalar_to_vector(extract_vector_elt) ↵Simon Pilgrim2017-02-034-11/+20
| | | | | | | | into a target shuffle. Correctly flagging upper elements as undef. llvm-svn: 294020
* [X86][SSE] Renamed all_of/any_of reduction patterns testsSimon Pilgrim2017-02-032-150/+150
| | | | | | Make it clear these tests sign-extend the comparison result. Some patterns zero-extend to a bool result that we still need to handle. llvm-svn: 294018
* NFC: [LoopUnroll] More meaningful message in tracingAnna Thomas2017-02-031-1/+1
| | | | llvm-svn: 294017
* IRMover: Merge flags LinkModuleInlineAsm and IsPerformingImport.Peter Collingbourne2017-02-035-18/+13
| | | | | | | | | Currently these flags are always the inverse of each other, so there is no need to keep them separate. Differential Revision: https://reviews.llvm.org/D29471 llvm-svn: 294016
* ModuleLinker: Remove importing support. NFCI.Peter Collingbourne2017-02-032-66/+13
| | | | | | Differential Revision: https://reviews.llvm.org/D29470 llvm-svn: 294015
* FunctionImport: Use IRMover directly.Peter Collingbourne2017-02-034-22/+25
| | | | | | | | | | | | The importer was previously using ModuleLinker in a sort of "IRMover mode". Use IRMover directly instead in order to remove a level of indirection. I will remove all importing support from ModuleLinker in a separate change. Differential Revision: https://reviews.llvm.org/D29468 llvm-svn: 294014
* Object: Handle files without a dynamic symbol table.Peter Collingbourne2017-02-032-0/+4
| | | | | | Differential Revision: https://reviews.llvm.org/D29482 llvm-svn: 294013
* [mips] Remove absolute size assertion for end directiveSimon Dardis2017-02-032-4/+26
| | | | | | | | | | | | | | The .end <symbol> directive for MIPS marks the end of a symbol and sets the symbol's size. Previously, the corresponding emitDirective handler asserted that a function's size could be evaluated to an absolute value at that point in time. This cannot be done with when directives like .align have been encountered, instead set the function's size to the corresponding symbolic expression and let ELFObjectWriter resolve the expression to an absolute value. This avoids a redundant call to evaluateAsAbsolute. llvm-svn: 294012
* [NVPTX] Enable combineRepeatedFPDivisors for NVPTX.Justin Lebar2017-02-032-0/+46
| | | | | | | | | | Reviewers: tra Subscribers: jholewinski, llvm-commits Differential Revision: https://reviews.llvm.org/D29477 llvm-svn: 294011
* [ADT] Fix comment on StringRef::take_back. NFCJustin Lebar2017-02-031-1/+1
| | | | llvm-svn: 294010
* [globalisel] Fix missing break.Daniel Sanders2017-02-031-0/+1
| | | | | | The instruction selector has been emitting the register bank information too. llvm-svn: 294007
* [AMDGPU][mc] Fix AddressSanitizer leftover issue in gfx7_asm_all testArtem Tamazov2017-02-033-9/+11
| | | | | | Issue occurs when assembling "ds_ordered_count v0, v0 gds". llvm-svn: 294004
* [SelectionDAG] Fix for PR30775: Assertion `NodeToMatch->getOpcode() !=Alexey Bataev2017-02-032-8/+253
| | | | | | | | | | | | ISD::DELETED_NODE && "NodeToMatch was removed partway through selection"' failed. NodeToMatch can be modified during matching, but code does not handle this situation. Differential Revision: https://reviews.llvm.org/D29292 llvm-svn: 294003
* [ARM] Change TCReturn to tBL if tailcall optimization fails.Sanne Wouda2017-02-033-6/+39
| | | | | | | | | | | | | | | | | | Summary: The tail call optimisation is performed before register allocation, so at that point we don't know if LR is being spilt or not. If LR was spilt to the stack, then we cannot do a tail call optimisation. That would involve popping back into LR which is not possible in Thumb1 code. Reviewers: rengolin, jmolloy, rovka, olista01 Reviewed By: olista01 Subscribers: llvm-commits, aemerson Differential Revision: https://reviews.llvm.org/D29020 llvm-svn: 294000
* [LLC] Add an inline assembly diagnostics handler.Sanne Wouda2017-02-039-8/+19
| | | | | | | | | | | | | | | | Summary: llc would hit a fatal error for errors in inline assembly. The diagnostics message is now printed. Reviewers: rengolin, MatzeB, javed.absar, anemet Reviewed By: anemet Subscribers: jyknight, nemanjai, llvm-commits Differential Revision: https://reviews.llvm.org/D29408 llvm-svn: 293999
* Test commit: remove a blank line.Sanne Wouda2017-02-031-1/+0
| | | | | | Testing commit access. llvm-svn: 293998
* [SLP] Fix for PR31690: Allow using of extra values in horizontal reductions.Alexey Bataev2017-02-032-146/+181
| | | | | | | | | | | | | | | | | | | | | Currently LLVM supports vectorization of horizontal reduction instructions with initial value set to 0. Patch supports vectorization of reduction with non-zero initial values. Also it supports a vectorization of instructions with some extra arguments, like: float f(float x[], int a, int b) { float p = a % b; p += x[0] + 3; for (int i = 1; i < 32; i++) p += x[i]; return p; } Patch allows vectorization of this kind of horizontal reductions. Differential Revision: https://reviews.llvm.org/D28961 llvm-svn: 293994
* Revert "[ThinLTO] Add an auto-hide feature"Mehdi Amini2017-02-0312-127/+52
| | | | | | | | | This reverts commit r293970. After more discussion, this belongs to the linker side and there is no added value to do it at this level. llvm-svn: 293993
* [AMDGPU] Unroll preferences improvementsStanislav Mekhanoshin2017-02-032-1/+148
| | | | | | | | | | | Exit loop analysis early if suitable private access found. Do not account for GEPs which are invariant to loop induction variable. Do not account for Allocas which are too big to fit into register file anyway. Add option for tuning: -amdgpu-unroll-threshold-private. Differential Revision: https://reviews.llvm.org/D29473 llvm-svn: 293991
* [Support] Accept macosx triple as 'darwin' in Host unittest. NFC.Ahmed Bougacha2017-02-031-0/+1
| | | | | | | If LLVM was configured with an x86_64-apple-macosx host triple, this test would fail, as the API works but the triple isn't in the whitelist. llvm-svn: 293990
* [sanitizer coverage] Fix Instrumentation to work on Windows.Marcos Pividori2017-02-031-21/+29
| | | | | | | | | | | | | | | | | | | | | On Windows, the symbols "___stop___sancov_guards" and "___start___sancov_guards" are not defined automatically. So, we need to take a different approach. We define 3 sections: Section ".SCOV$A" will only hold a variable ___start___sancov_guard. Section ".SCOV$M" will hold the main data. Section ".SCOV$Z" will only hold a variable ___stop___sancov_guards. When linking, they will be merged sorted by the characters after the $, so we can use the pointers of the variables ___[start|stop]___sancov_guard to know the actual range of addresses of that section. In this diff, I updated instrumentation to include all the guard arrays in section ".SCOV$M". Differential Revision: https://reviews.llvm.org/D28434 llvm-svn: 293987
* AMDGPU: Fold fneg into fmin/fmax_legacyMatt Arsenault2017-02-033-2/+103
| | | | llvm-svn: 293972
* DebugInfo: ensure type and namespace names are included in pubnames/pubtypes ↵David Blaikie2017-02-036-14/+125
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | even when they are only present in type units While looking to add support for placing singular types (types that will only be emitted in one place (such as attached to a strong vtable or explicit template instantiation definition)) not in type units (since type units have overhead) I stumbled across that change causing an increase in pubtypes. Turns out we were missing some types from type units if they were only referenced from other type units and not from the debug_info section. This fixes that, following GCC's line of describing the offset of such entities as the CU die (since there's no compile unit-relative offset that would describe such an entity - they aren't in the CU). Also like GCC, this change prefers to describe the type stub within the CU rather than the "just use the CU offset" fallback where possible. This may give the DWARF consumer some opportunity to find the extra info in the type stub - though I'm not sure GDB does anything with this currently. The size of the pubnames/pubtypes sections now match exactly with or without type units enabled. This nearly triples (+189%) the pubtypes section for a clang self-host and grows pubnames by 0.07% (without compression). For a total of 8% increase in debug info sections of the objects of a Split DWARF build when using type units. llvm-svn: 293971
* [ThinLTO] Add an auto-hide featureMehdi Amini2017-02-0312-52/+127
| | | | | | | | | | | | | | | When a symbol is not exported outside of the DSO, it is can be hidden. Usually we try to internalize as much as possible, but it is not always possible, for instance a symbol can be referenced outside of the LTO unit, or there can be cross-module reference in ThinLTO. This is a recommit of r293912 after fixing build failures, and a recommit of r293918 after fixing LLD tests. Differential Revision: https://reviews.llvm.org/D28978 llvm-svn: 293970
* [X86] Mark 256-bit and 512-bit INSERT_SUBVECTOR operations as legal and ↵Craig Topper2017-02-031-27/+6
| | | | | | remove the custom lowering. llvm-svn: 293969
* AMDGPU: Fold fneg into fminnum/fmaxnumMatt Arsenault2017-02-032-0/+294
| | | | llvm-svn: 293968
* llvm-readobj: fix next note entry calculation and print unknown note typesKonstantin Zhuravlyov2017-02-022-2/+10
| | | | | | Differential Revision: https://reviews.llvm.org/D29131 llvm-svn: 293964
* AMDGPU: Check if users of fneg can fold modsMatt Arsenault2017-02-026-80/+566
| | | | | | In multi-use cases this can save a few instructions. llvm-svn: 293962
* Revert "[ThinLTO] Add an auto-hide feature"Mehdi Amini2017-02-0212-127/+52
| | | | | | This reverts commit r293918, one lld test does not pass. llvm-svn: 293961
OpenPOWER on IntegriCloud