summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [APInt] Use SignExtend64 instead of reinventing it. NFCCraig Topper2017-04-191-2/+1
| | | | llvm-svn: 300747
* [SCEV] Make SCEV or modeling more aggressive.Eli Friedman2017-04-192-22/+44
| | | | | | | | | | Use haveNoCommonBitsSet to figure out whether an "or" instruction is equivalent to addition. This handles more cases than just checking for a constant on the RHS. Differential Revision: https://reviews.llvm.org/D32239 llvm-svn: 300746
* [sanitizer-coverage] remove run-time support for the deprecated ↵Kostya Serebryany2017-04-195-145/+0
| | | | | | -fsanitize-coverage=8bit-counters llvm-svn: 300745
* [sanitizer-coverage] deprecate -fsanitize-coverage=8bit-countersKostya Serebryany2017-04-192-8/+6
| | | | llvm-svn: 300744
* [libc++] Use _LIBCPP_ABI_MICROSOFT instead of _MSC_VERShoaib Meenai2017-04-191-8/+8
| | | | | | | | _LIBCPP_ABI_MICROSOFT is more appropriate to use here, since the conditionals are controlling Microsoft mangling. It wasn't used originally since it didn't exist at the time. llvm-svn: 300743
* Using address range map to speedup finding inline stack for address.Dehao Chen2017-04-195-52/+99
| | | | | | | | | | | | | | | | | | | | Summary: In the current implementation, to find inline stack for an address incurs expensive linear search in 2 places: * linear search for the top-level DIE * recursive linear traverse the DIE tree to find the path to the leaf DIE In this patch, a map is built from address to its corresponding leaf DIE. The inline stack is built by traversing from the leaf DIE up to the root DIE. This speeds up batch symbolization by ~10X without noticible memory overhead. Reviewers: dblaikie Reviewed By: dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32177 llvm-svn: 300742
* Parse backend options during thinlto backend compile actionsDavid Blaikie2017-04-192-6/+18
| | | | llvm-svn: 300741
* Update the madd.ll test with utils/update_llc_test_checks.py (NFC)Dehao Chen2017-04-191-48/+264
| | | | llvm-svn: 300740
* [sanitizer-coverage] deprecate some of the stale coverage variantsKostya Serebryany2017-04-193-58/+7
| | | | llvm-svn: 300738
* PR32710: Disable using PMADDWD for unsigned short.Dehao Chen2017-04-192-6/+56
| | | | | | | | | | | | | | Summary: PMADDWD can only handle signed short. Reviewers: mkuper, wmi Reviewed By: mkuper Subscribers: andreadb, llvm-commits Differential Revision: https://reviews.llvm.org/D32236 llvm-svn: 300737
* AMDGPU: Don't emit amd_kernel_code_t for callable functionsMatt Arsenault2017-04-192-8/+21
| | | | | | | | | | | | This is inserted directly in the text section. The relocation for the function ends up resolving to the beginning of the amd_kernel_code_t header rather than the actual function entry point. Also skip some of the comments for initialization that only makes sense for kernels. llvm-svn: 300736
* [tblgen] GCC/MS builtin to target intrisics map.Aditya Nandakumar2017-04-192-7/+17
| | | | | | | | | | | Patch by Ettore Speziale Allow TableGen to generate static functions to perform GCC/MS builtin name to target specific intrinsic ID mapping. https://reviews.llvm.org/D31150 llvm-svn: 300735
* [AMDGPU][mc][tests][NFC] Update bulk ISA tests for Gfx7 and Gfx8Artem Tamazov2017-04-192-4377/+10806
| | | | | | Added approx. 1100 gfx7 and 1040 gfx8 test cases. llvm-svn: 300734
* Add CopyDiagnostic to the DiagnosticManager.Jim Ingham2017-04-192-0/+11
| | | | | | | | From Gregor Milos (gmilos@apple.com), for: https://reviews.llvm.org/D32078 llvm-svn: 300733
* StructurizeCFG: Directly invert cmp instructionsMatt Arsenault2017-04-198-112/+184
| | | | | | | | | | | | | | | | The most common case for a branch condition is a single use compare. Directly invert the branch predicate rather than adding a lot of xor i1 true which the DAG will have to fold later. This produces nicer to read structurizer output. This produces some random changes in codegen due to the DAG swapping branch conditions itself, and then does a poor job of dealing with those inverts. llvm-svn: 300732
* [GVN] Don't coerce non-integral pointers to integers or vice versaSanjoy Das2017-04-193-0/+83
| | | | | | | | | | | | | | | | | Summary: See http://llvm.org/docs/LangRef.html#non-integral-pointer-type The NewGVN test does not fail without these changes (perhaps it does try to coerce pointers <-> integers to begin with?), but I added the test case anyway. Reviewers: dberlin Subscribers: mcrosier, llvm-commits, Prazek Differential Revision: https://reviews.llvm.org/D32208 llvm-svn: 300730
* [Utility/StringLexer] Remove dead code.Davide Italiano2017-04-192-6/+0
| | | | | | Differential Revision: https://reviews.llvm.org/D32148 llvm-svn: 300729
* Update comment to match r300252.Richard Smith2017-04-191-1/+1
| | | | llvm-svn: 300728
* Teach RenderScriptRuntime about changed context representation.David Gross2017-04-191-30/+39
| | | | | | | | | | | | | | | | Summary: The runtime discovers contexts through RenderScriptRuntime::Capture*() methods. These methods see the low-level context representation. However, the runtime calls APIs that require the high-level context representation. Therefore, it needs to call yet another API to find the high-level representation associated with a given low-level representation. Subscribers: lldb-commits Differential Revision: https://reviews.llvm.org/D32184 llvm-svn: 300727
* ARM: TLS calling convention doesn't preserve r9 or r12 on Darwin.Tim Northover2017-04-192-3/+27
| | | | llvm-svn: 300726
* [DAG] add splat vector support for 'and' in SimplifyDemandedBitsSanjay Patel2017-04-195-31/+9
| | | | | | | | | | | | | | | | | | | | | The patch itself is simple: stop discriminating against vectors in visitAnd() and again in SimplifyDemandedBits(). Some notes for reference: 1. We're not consistent about calls to SimplifyDemandedBits in the various visitXXX functions. Sometimes, we check if the RHS is a constant first. Other times (like here), we just dive in. 2. I'd like to break the vector shackles in steps for the sake of risk minimization, but we could make similar simultaneous changes in other places if we think that would be better. 3. I don't know what the intent of the changed tests in this patch was supposed to be, but since they wiggled in a positive way, I'm just going with that. :) 4. In the rotate tests, note that we can see through non-splat constants. This is a result of D24253. 5. My motivation for being here now is to make D31944 look better, so this is step 1 of N towards improving the vector codegen in that patch without writing any actual new code. Differential Revision: https://reviews.llvm.org/D32230 llvm-svn: 300725
* IR: Remove some comments that are documenting the obvious. NFC.Peter Collingbourne2017-04-191-4/+0
| | | | llvm-svn: 300724
* [Coverage] Don't emit mappings for functions in dependent contexts (fixes ↵Vedant Kumar2017-04-192-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | PR32679) The coverage implementation marks functions which won't be emitted as 'deferred', so that it can emit empty coverage regions for them later (once their linkages are known). Functions in dependent contexts are an exception: if there isn't a full instantiation of a function, it shouldn't be marked 'deferred'. We've been breaking that rule without much consequence because we just ended up with useless, extra, empty coverage mappings. With PR32679, this behavior finally caused a crash, because clang marked a partial template specialization as 'deferred', causing the MS mangler to choke in its delayed-template-parsing mode: error: cannot mangle this template type parameter type yet (http://bugs.llvm.org/show_bug.cgi?id=32679) Fix this by checking if a decl's context is a dependent context before marking it 'deferred'. Based on a patch by Adam Folwarczny! Differential Revision: https://reviews.llvm.org/D32144 llvm-svn: 300723
* [Sema][ObjC] Disallow jumping into ObjC fast enumeration loops.Akira Hatanaka2017-04-194-0/+36
| | | | | | | | rdar://problem/31635406 Differential Revision: https://reviews.llvm.org/D32187 llvm-svn: 300722
* [MathExtras] Fix undefined behavior (shift by bit width)Benjamin Kramer2017-04-192-1/+6
| | | | | | While there add some unit tests for uint64_t. Found by ubsan. llvm-svn: 300721
* AMDGPU: Don't align callable functions to 256Matt Arsenault2017-04-193-1/+34
| | | | llvm-svn: 300720
* AMDGPU: Change DivergenceAnalysis for function argumentsMatt Arsenault2017-04-193-598/+780
| | | | | | Stop assuming all functions are kernels. llvm-svn: 300719
* Prefer addAttr(Attribute::AttrKind) over the AttributeList overloadReid Kleckner2017-04-198-86/+52
| | | | | | | | This should simplify the call sites, which typically want to tweak one attribute at a time. It should also avoid creating ephemeral AttributeLists that live forever. llvm-svn: 300718
* [InstCombine] Reduce visitLoadInst() code duplication. NFCI.Davide Italiano2017-04-191-20/+18
| | | | llvm-svn: 300717
* Skip tests that use 'llvm_xray' for standalone builds.Keith Wyss2017-04-193-0/+7
| | | | | | | | | | | | | | | | | | | | | | | Summary: Tests that generate output with compiler-rt and verify it with the llvm_xray command (built from the llvm tree) are extremely convenient, but compiler-rt can be built out of tree and llvm_xray is not built for every target. This change intends to disable tests for out of tree builds, but does nothing to detect whether llvm_xray can be found elsewhere on the path, is fresh enough, or is part of a build target for the in tree build. Tested: Tested that this didn't break check-xray. Haven't reproduced bots or standalone builds. Reviewers: dberris, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32150 llvm-svn: 300716
* [APInt] Move the 'return *this' from the slow cases of assignment operators ↵Craig Topper2017-04-192-27/+25
| | | | | | | | inline. We should let the compiler see that the fast/slow cases both return *this. I don't think we chain assignments together very often so this shouldn't matter much. llvm-svn: 300715
* [InstSimplify] fold identity shuffles (recursing if needed)Sanjay Patel2017-04-192-27/+117
| | | | | | | | | | | | | | | | | This patch simplifies the examples from D31509 and D31927 (PR30630) and catches the basic identity shuffle tests that Zvi recently added. I'm not sure if we have something like this in DAGCombiner, but we should? It's worth noting that "MaxRecurse / RecursionLimit" is only 3 on entry at the moment. We might want to bump that up if there are longer shuffle chains like this in the wild. For now, we're ignoring shuffles that have undef mask elements because it's not clear how those should be handled. Differential Revision: https://reviews.llvm.org/D31960 llvm-svn: 300714
* use 'auto' with 'dyn_cast' and fix formatting; NFCSanjay Patel2017-04-191-8/+7
| | | | llvm-svn: 300713
* Add #pragma clang attribute support to the external_source_symbol attributeAlex Lorenz2017-04-195-43/+136
| | | | | | | | | | | | | | | | | | | Prior to this commit the external_source_symbol attribute wasn't supported by #pragma clang attribute for the following two reasons: - The Named attribute subject hasn't been supported by TableGen. - There was no way to specify a subject match rule for #pragma clang attribute that could operate on a set of attribute subjects (e.g. the ones that derive from NamedDecl). This commit fixes the two issues and thus adds external_source_symbol support to #pragma clang attribute. rdar://31169028 Differential Revision: https://reviews.llvm.org/D32176 llvm-svn: 300712
* Add an #include for <climits> for CHAR_BIT.Zachary Turner2017-04-191-0/+1
| | | | llvm-svn: 300711
* [Support] Add some helpers to generate bitmasks.Zachary Turner2017-04-192-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | Frequently you you want a bitmask consisting of a specified number of 1s, either at the beginning or end of a word. The naive way to do this is to write template<typename T> T leadingBitMask(unsigned N) { return (T(1) << N) - 1; } but using this function you cannot produce a word with every bit set to 1 (i.e. leadingBitMask<uint8_t>(8)) because left shift is undefined when N is greater than or equal to the number of bits in the word. This patch provides an efficient, branch-free implementation that works for all values of N in [0, CHAR_BIT*sizeof(T)] Differential Revision: https://reviews.llvm.org/D32212 llvm-svn: 300710
* Remove eol-style:native from MathExtras.hZachary Turner2017-04-190-0/+0
| | | | llvm-svn: 300709
* Revert r300697 which causes buildbot failure.Dehao Chen2017-04-194-58/+52
| | | | llvm-svn: 300708
* [Hexagon] Generate proper offset in opt-addr-modeKrzysztof Parzyszek2017-04-193-11/+33
| | | | | | | | | Also, make a few changes to allow using the pass in .mir testcases. Among other things, change the abbreviation from opt-amode to amode-opt, because otherwise lit would expand the "opt" part to the full path to the opt binary. llvm-svn: 300707
* [Hexagon] Remove RDefMap, use Liveness:getNearestAliasedRef insteadKrzysztof Parzyszek2017-04-191-48/+5
| | | | llvm-svn: 300706
* [RDF] Switch NodeList to SmallVector from std::vectorKrzysztof Parzyszek2017-04-191-1/+2
| | | | | | | The list has a single element 75+% of the time, reservation of 4 elements is sufficient in 95% of cases. llvm-svn: 300705
* [RDF] Use faster version of findBlockKrzysztof Parzyszek2017-04-191-1/+1
| | | | llvm-svn: 300704
* Remove unnecessary condition as suggested by clang-tidy. NFCGabor Horvath2017-04-191-4/+2
| | | | | | | | Patch by: Gergely Angeli! Differential Revision: https://reviews.llvm.org/D31938 llvm-svn: 300703
* [RDF] Cache register units for reg masks instead of recalculating themKrzysztof Parzyszek2017-04-192-31/+29
| | | | llvm-svn: 300702
* [Hexagon] Cache reached blocks in bit tracker instead of scanning listKrzysztof Parzyszek2017-04-192-10/+10
| | | | llvm-svn: 300701
* [PowerPC] add test and auto-generate checks; NFCSanjay Patel2017-04-191-19/+33
| | | | llvm-svn: 300700
* [clang-tidy] misc-misplaced-widening-cast: Disable checking of implicit ↵Gabor Horvath2017-04-192-1/+1
| | | | | | | | | | widening casts by default. Patch by Ádám Balogh! Differential Revision: https://reviews.llvm.org/D32164 llvm-svn: 300699
* [ARM] add test and auto-generate checks; NFCSanjay Patel2017-04-191-122/+440
| | | | llvm-svn: 300698
* Using address range map to speedup finding inline stack for address.Dehao Chen2017-04-194-52/+58
| | | | | | | | | | | | | | | | | | | | Summary: In the current implementation, to find inline stack for an address incurs expensive linear search in 2 places: * linear search for the top-level DIE * recursive linear traverse the DIE tree to find the path to the leaf DIE In this patch, a map is built from address to its corresponding leaf DIE. The inline stack is built by traversing from the leaf DIE up to the root DIE. This speeds up batch symbolization by ~10X without noticible memory overhead. Reviewers: dblaikie Reviewed By: dblaikie Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D32177 llvm-svn: 300697
* [InstSimplify] Deduce correct type for vector GEP.Davide Italiano2017-04-192-1/+27
| | | | | | | | | | InstSimplify returned the wrong type when simplifying a vector GEP and we ended up crashing when trying to replace all uses with the new value. Fixes PR32697. Differential Revision: https://reviews.llvm.org/D32180 llvm-svn: 300693
OpenPOWER on IntegriCloud