summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Call getFiller only when filler is not zero.Rui Ueyama2017-04-112-17/+15
| | | | llvm-svn: 300004
* Remove xgene1 from host detectionYi Kong2017-04-111-11/+1
| | | | | | | | | This is not a supported mcpu tuning option. We should treat it as "generic" variant. Also, add record for cortex-a35. llvm-svn: 300003
* [lld] --export-dynamic overrides --dynamic-list.Evgeniy Stepanov2017-04-112-0/+62
| | | | | | | | | Fixes PR32573. --export-dynamic exports everything, even in the presence of a --dynamic-list, or --export-dynamic-symbol. llvm-svn: 300002
* Revert r298824 & r298816, recommit r298742 & r298754Richard Trieu2017-04-114-111/+385
| | | | | | | | | | | | | r299989 fixes the underlying issue by waiting long enough to late parsed arguments to be processed before doing an calculating the hash. r298742 [ODRHash] Add error messages for mismatched parameters in methods. r298754 [ODRHash] Add support for array and decayed types. llvm-svn: 300001
* AMDGPU: Insert wait at start of callee functionsMatt Arsenault2017-04-113-1/+40
| | | | llvm-svn: 300000
* AMDGPU: Refactor SIMachineFunctionInfo slightlyMatt Arsenault2017-04-114-23/+45
| | | | | | Prepare for handling non-entry functions. llvm-svn: 299999
* AMDGPU: Refactor argument loweringMatt Arsenault2017-04-1111-278/+378
| | | | | | | Split into smaller functions and prepare for handling non-entry functions. llvm-svn: 299998
* AMDGPU: Fix folding reg_sequence into copy to phys regMatt Arsenault2017-04-112-0/+17
| | | | | | | This was producing an illegal reg_sequence defining a physical register with virtual register inputs. llvm-svn: 299997
* AMDGPU: Prune unecessary includeMatt Arsenault2017-04-111-2/+0
| | | | llvm-svn: 299996
* [asan] Give global metadata private linkage.Evgeniy Stepanov2017-04-112-6/+7
| | | | | | | Internal linkage preserves names like "__asan_global_foo" which may account to 2% of unstripped binary size. llvm-svn: 299995
* [AArch64] Fix scheduling info for INS(vector, general) instruction.Balaram Makam2017-04-112-1/+6
| | | | llvm-svn: 299994
* Avoid some string copies, NFCVedant Kumar2017-04-111-2/+2
| | | | llvm-svn: 299993
* [Sema][ObjC] Check whether a variable has a definition, rather thanAkira Hatanaka2017-04-112-1/+17
| | | | | | | | | | | | | | | | checking its storage class, when determining whether casting a C pointer to an ObjC pointer is allowed. This change allows casting variables whose declarations are directly contained in a linkage specification to an ObjC pointer type. Those variables are treated as if they contain the extern specifier for the purpose of determining whether they are definitions or not. rdar://problem/29249853 Differential Revision: https://reviews.llvm.org/D31673 llvm-svn: 299992
* Minor updates to floating point intrinsic documentationAndrew Kaylor2017-04-111-24/+21
| | | | llvm-svn: 299991
* InstSimplify: A shuffle of a splat is always the splat itselfZvi Rackover2017-04-112-6/+91
| | | | | | | | | | | | | | | | Summary: Fold: shuffle (splat-shuffle), undef, M --> splat-shuffle Reviewers: spatel, RKSimon, craig.topper Reviewed By: RKSimon Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31527 llvm-svn: 299990
* [ODRHash] Improve handling of hash valuesRichard Trieu2017-04-115-14/+28
| | | | | | | | | | | Calculating the hash in Sema::ActOnTagFinishDefinition could happen before all sub-Decls were parsed or processed, which would produce the wrong hash value. Change to calculating the hash on the first use and storing the value instead. Also, avoid using the macros that were only for Boolean fields and use an explicit checker during the DefintionData merge. No functional change, but was this blocking other ODRHash patches. llvm-svn: 299989
* [DAGCombine] Add more test cases for shuffle of splat. NFC.Zvi Rackover2017-04-111-0/+56
| | | | | | Tests added contain splat-masks with undef elements. llvm-svn: 299988
* Modular Codegen: Support homing debug info for types in modular objectsDavid Blaikie2017-04-1114-22/+68
| | | | | | | | | Matching the function-homing support for modular codegen. Any type implicitly (implicit template specializations) or explicitly defined in a module is attached to that module's object file and omitted elsewhere (only a declaration used if necessary for references). llvm-svn: 299987
* [x86] Relax the check in areLoadsFromSameBasePtrEaswaran Raman2017-04-112-23/+20
| | | | | | | | | Check if the scale operand is identical (doesn't have to be 1) and do not check the chaain operand. Differential revision: https://reviews.llvm.org/D31833 llvm-svn: 299986
* [LV] Avoid vectorizing first order recurrence when phi uses are outside loopAnna Thomas2017-04-114-8/+48
| | | | | | | | | | | | | | | | | | In the vectorization of first order recurrence, we vectorize such that the last element in the vector will be the one extracted to pass into the scalar remainder loop. However, this is not true when there is a phi (other than the primary induction variable) is used outside the loop. In such a case, we need the value from the second last iteration (i.e. the phi value), not the last iteration (which would be the phi update). I've added a test case for this. Also see PR32396. A follow up patch would generate the correct code gen for such cases, and turn this vectorization on. Differential Revision: https://reviews.llvm.org/D31910 Reviewers: mssimpso llvm-svn: 299985
* [InstSimplify] add tests for chains of shuffles; NFCSanjay Patel2017-04-111-0/+45
| | | | llvm-svn: 299984
* [ExternalASTMerger] Removed a move constructor to address MSVC build failureSean Callanan2017-04-111-1/+1
| | | | llvm-svn: 299983
* Modular Codegen: Add/use a bit in serialized function definitions to track ↵David Blaikie2017-04-1119-41/+104
| | | | | | | | | | | | | | | | | | | | | whether they are the subject of modular codegen Some decls are created not where they are written, but in other module files/users (implicit special members and function template implicit specializations). To correctly identify them, use a bit next to the definition to track the modular codegen property. Discussed whether the module file bit could be omitted in favor of reconstituting from the modular codegen decls list - best guess today is that the efficiency improvement of not having to deserialize the whole list whenever any function is queried by a module user is worth it for the small size increase of this redundant (list + bit-on-def) representation. Reviewers: rsmith Differential Revision: https://reviews.llvm.org/D29901 llvm-svn: 299982
* Add const children() accessors to match the existing non-const children() ↵Aaron Ballman2017-04-113-10/+169
| | | | | | accessors. llvm-svn: 299981
* MemorySSA: Move to Analysis, from Transforms/Utils. It's used asDaniel Berlin2017-04-1138-24/+24
| | | | | | | | Analysis, it has Analysis passes, and once NewGVN is made an Analysis, this removes the cross dependency from Analysis to Transform/Utils. NFC. llvm-svn: 299980
* Implement standalone lsan interceptors for OS XFrancis Ricci2017-04-118-32/+131
| | | | | | | | | | | | | | Summary: Mimicks the existing tsan and asan implementations of Darwin interception. Reviewers: kubamracek, kcc, glider Subscribers: llvm-commits, mgorny Differential Revision: https://reviews.llvm.org/D31889 llvm-svn: 299979
* Don't delete lsan thread-local data until it's no longer requiredFrancis Ricci2017-04-112-2/+17
| | | | | | | | | | | | | | | | | | | | | | | Summary: The routines for thread destruction in the thread registry require the lsan thread index, which is stored in pthread tls on OS X. This means that we need to make sure that the lsan tls isn't destroyed until after the thread registry tls. This change ensures that we don't delete the lsan tls until we've finished destroying the thread in the registry, ensuring that the destructor for the lsan tls runs after the destructor for the thread registry tls. This patch also adds a check to ensure that the thread ID is valid before returning it in GetThreadID(), to ensure that the above behavior is working correctly. Reviewers: dvyukov, kubamracek, kcc Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31884 llvm-svn: 299978
* [ExternalASTMerger] Fix the MSVC buildSean Callanan2017-04-111-3/+3
| | | | llvm-svn: 299977
* [clang-import-test] Lookup inside contextsSean Callanan2017-04-1121-52/+331
| | | | | | | | | | | | | | | | | | | clang-import-test has until now been only able to report top-level Decls. This is clearly insufficient; we should be able to look inside structs and namespaces also. This patch adds new test cases for a variety of lookups inside existing ASTContexts, and adds the functionality necessar to make most of these testcases work. (One testcase is known to fail because of ASTImporter limitations when importing templates; I'll look into that separately.) This patch also separates the core functionality out into ExternalASTMerger, an interface that allows clients like LLDB to make use of it. clang-import-test now only has the machinery necessary to set up the tests. Differential revision: https://reviews.llvm.org/D30435 llvm-svn: 299976
* MIR: Allow parsing of empty machine functionsJustin Bogner2017-04-1110-46/+21
| | | | | | | | | | | | If you run llc -stop-after=codegenprepare and feed the resulting MIR to llc -start-after=codegenprepare, you'll have an empty machine function since we haven't run any isel yet. Of course, this only works if the MIRParser believes you that this is okay. This is essentially a revert of r241862 with a fix for the problem it was papering over. llvm-svn: 299975
* [AArch64] Simplify MacroFusionEvandro Menezes2017-04-111-79/+89
| | | | | | | | | | | | This patch assumes that the dependents to be scanned for the ExitSU are its predecessors; otherwise, the successors of the instr are scanned. Furthermore, sometimes the ExitSU was being fused twice, since it may be fused once when scanning the successors from the beginning of the BB and then again when scanning the predecessors of ExitSU. Thus, when scanning the successors of an instr, skip the ExitSU. llvm-svn: 299974
* [X86] Create the correct ADC/SBB SDNode when lowering add.Davide Italiano2017-04-112-2/+31
| | | | | | Differential Revision: https://reviews.llvm.org/D31911 llvm-svn: 299973
* [AddDiscriminators] Assign discriminators to MemIntrinsic calls.Andrea Di Biagio2017-04-112-1/+119
| | | | | | | | | | | | | | | | | | | | | | | Before this patch, pass AddDiscriminators always avoided to assign discriminators to intrinsic calls. This was done mainly for two reasons: 1) We wanted to minimize the number of based discriminators used. 2) We wanted to avoid non-deterministic discriminator assignment for different debug levels. Unfortunately, that approach was problematic for MemIntrinsic calls. MemIntrinsic calls can be split by SROA into loads and stores, and each new load/store instruction would obtain the debug location from the original intrinsic call. If we don't assign a discriminator to MemIntrinsic calls, then we cannot correctly set the discriminator for the newly created loads and stores. This may have a negative impact on the basic block weight computation performed by the SampleLoader. This patch fixes the issue by letting MemIntrinsic calls have a discriminator. Differential Revision: https://reviews.llvm.org/D31900 llvm-svn: 299972
* [InstCombine] Add testcases for (B&A)^A -> ~B & A and (B|A)^A -> B & ~ACraig Topper2017-04-111-0/+88
| | | | llvm-svn: 299971
* Fix spelling compliment->complement. Mostly refering to 2s complement. NFCCraig Topper2017-04-115-7/+7
| | | | llvm-svn: 299970
* [LV] Move first order recurrence test to common folder. NFCAnna Thomas2017-04-111-0/+0
| | | | llvm-svn: 299969
* [libFuzzer] fix type in signal name.Vitaly Buka2017-04-111-1/+1
| | | | | | | | Fixes PR32576. Patch by Jakub Zawadzki. llvm-svn: 299968
* llvm-lto2: Move the LTO::run() action behind a subcommand.Peter Collingbourne2017-04-1136-86/+107
| | | | | | | | | | | | | Move LTO::run() to a "run" subcommand so that we can introduce new subcommands for testing different parts of the LTO implementation. This doesn't use llvm::cl subcommands because it doesn't appear to be currently possible to pass an argument not associated with a subcommand to a subcommand (e.g. -lto-use-new-pm, -mcpu=yonah). Differential Revision: https://reviews.llvm.org/D31410 llvm-svn: 299967
* [InstCombine] Use ConstantExpr::getBinOpIdentity to implement getIdentityValue.Craig Topper2017-04-111-7/+2
| | | | | | This removes a TODO in getIdentityValue and may allow some transforms to occur earlier. But I was unable to find any transforms we didn't already handle. llvm-svn: 299966
* [OpenCL] Map default address space to alloca address spaceYaxun Liu2017-04-1117-49/+178
| | | | | | | | | | | | | | For OpenCL, the private address space qualifier is 0 in AST. Before this change, 0 address space qualifier is always mapped to target address space 0. As now target private address space is specified by alloca address space in data layout, address space qualifier 0 needs to be mapped to alloca addr space specified by the data layout. This change has no impact on targets whose alloca addr space is 0. With contributions from Matt Arsenault, Tony Tye and Wen-Heng (Jack) Chung Differential Revision: https://reviews.llvm.org/D31404 llvm-svn: 299965
* [AMDGPU] Add A5 to data layout for amdgiz environmentYaxun Liu2017-04-113-3/+3
| | | | | | Differential Revision: https://reviews.llvm.org/D31589 llvm-svn: 299964
* Implement LWG#2873: 'Add noexcept to several shared_ptr related functions' ↵Marshall Clow2017-04-117-41/+76
| | | | | | This issue missed a couple, so I added those as well (see LWG#2942) llvm-svn: 299963
* [ASTPrinter] Print nested name specifiers for out-of-line functionsAlex Lorenz2017-04-115-7/+70
| | | | | | rdar://31501863 llvm-svn: 299962
* Add the definition of P in the clang tidy exampleSylvestre Ledru2017-04-111-0/+2
| | | | llvm-svn: 299961
* Revert 299954 : test failure needs to be fixedXinliang David Li2017-04-111-14/+0
| | | | llvm-svn: 299960
* Revert 299953 : test failure needs to be fixedXinliang David Li2017-04-111-14/+0
| | | | llvm-svn: 299959
* [PDB] Emit index/offset pairs for TPI and IPI streamsReid Kleckner2017-04-115-21/+129
| | | | | | | | | | | | | | | | | | | Summary: This lets PDB readers lookup type record data by type index in O(log n) time. It also enables makes `cvdump -t` work on PDBs produced by LLD. cvdump will not dump a PDB that doesn't have an index-to-offset table. The table is sorted by type index, and has an entry every 8KB. Looking up a type record by index is a binary search of this table, followed by a scan of at most 8KB. Reviewers: ruiu, zturner, inglorion Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D31636 llvm-svn: 299958
* [lsan] Fix typo in test/lsan/lit.common.cfgMaxim Ostapenko2017-04-111-1/+1
| | | | llvm-svn: 299957
* Revert temporarily D29877 "Warn about unused static file scope function ↵Vassil Vassilev2017-04-113-32/+7
| | | | | | | | | | | | | template declarations." We need to address cases (breaking libc++) such as template <class _Up> static int __test(...); template<typename _Tp> auto v = __test<_Tp>(0); llvm-svn: 299956
* revert r299851 - [InstCombine] fix matching of or-of-icmps constants (PR32524)Sanjay Patel2017-04-112-19/+16
| | | | | | This is a candidate culprit for multiple bot fails, so reverting pending investigation. llvm-svn: 299955
OpenPOWER on IntegriCloud