summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-04Fix typos.linaro-local/ci/tcwg-llvm-kernel-baseline-armv8l-master-mainline-defconfig_nolselinaro-local/ci/tcwg-llvm-kernel-baseline-armv8l-master-mainlineBruce Mitchener
Reviewers: lldb-commits Subscribers: srhines, ki.stfu Differential Revision: https://reviews.llvm.org/D52884
2018-10-04[COFF, ARM64] Add __getReg intrinsicMandeep Singh Grang
Reviewers: rnk, mstorsjo, compnerd, TomTan, haripul, javed.absar, efriedma Reviewed By: efriedma Subscribers: peter.smith, efriedma, kristof.beyls, chrib, cfe-commits Differential Revision: https://reviews.llvm.org/D52838
2018-10-04[llvm-mca] Remove unused/stale forward decl. NFC.Matt Davis
2018-10-04[RISCV] Support named operands for CSR instructions.Ana Pazos
Reviewers: asb, mgrang Reviewed By: asb Subscribers: jocewei, mgorny, jfb, PkmX, MartinMosbeck, brucehoult, the_o, rkruppe, rogfer01, rbar, johnrusso, simoncook, jordy.potman.lists, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones Differential Revision: https://reviews.llvm.org/D46759
2018-10-04[globalisel][combine] Fix a rare crash when encountering an instruction ↵Daniel Sanders
whose op0 isn't a reg The simplest instance of this is an intrinsic with no results which will have the intrinsic ID as operand 0. Also fix some benign incorrectness when op0 is a reg but isn't a def that was guarded against by checking for the extension opcodes.
2018-10-04ReleaseNotes: remove superfluous 's' in 'can promotes'Ed Maste
2018-10-04[InstCombine] drop poison flags in SimplifyVectorDemandedEltsSanjay Patel
We established the (unfortunately complicated) rules for UB/poison propagation with vector ops in: D48893 D48987 D49047 It's clear from the affected tests that we are potentially creating poison where none existed before the transforms. For add/sub/mul, the answer is simple: just drop the flags because the extra undef vector lanes are generally more valuable for analysis and codegen.
2018-10-04[clang-doc] Clean up Markdown outputJulie Hockett
Make the output for the MDGenerator cleaner and more readable. Differential Revision: https://reviews.llvm.org/D52754
2018-10-04[X86][LegalizeVectorOps] Use MERGE_VALUES to return two results from ↵Craig Topper
LowerLoad. Remove special case code in LegalizeVectorOps that allowed us to only return one result. Previously we replaced the chain use ourself and return the data result. LegalizeVectorOps then detected that we'd done this and assumed the chain had already been handled. This commit instead returns a MERGE_VALUES node with two results joined from nodes. This allows LegalizeVectorOps to do all the replacements for us without any special casing. The MERGE_VALUES will be removed by DAG combine.
2018-10-04[SimplifyCFG] Change recursive calls to llvm::SimplifyCFG to instead use an ↵Craig Topper
outer while loop to revisit. Summary: The llvm::SimplifyCFG function creates a SimplifyCFGOpt object and calls run on it. There were numerous places reached from this run function that called back out llvm::SimplifyCFG which would create another SimplifyCFGOpt object. This is an inefficient use of stack space at minimum. We are also not passing along the LoopHeaders pointer passed into the outer llvm::SimplifyCFG call. So if its not null we lose it on the first recursion and get nullptr from there on. This patch adds an outer loop around the main BasicBlock simplifying code and adds a flag to the SimplifyCFGOpt class that can be set by to request another iteration. I don't think we can iterate based just on the change flag alone since some of the simplifications delete a basic block entirely leaving nothing to iterate on. Reviewers: bogner, eli.friedman, reames Reviewed By: reames Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D52760
2018-10-04Esan for FreeBSD, forgotten file.David Carlier
2018-10-04[WebAssembly] Don't modify preds/succs iterators while erasing from themHeejin Ahn
Summary: This caused out-of-bound bugs. Found by `-DLLVM_ENABLE_EXPENSIVE_CHECKS=ON`. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52902
2018-10-04AMDGPU: Rename isAmdCodeObjectV2 -> isAmdHsaOrMesaKonstantin Zhuravlyov
The isAmdCodeObjectV2 is a misleading name which actually checks whether the os is amdhsa or mesa. Also add a test to make sure we do not generate old kernel header for code object v3. Differential Revision: https://reviews.llvm.org/D52897
2018-10-04[Esan] Port cache frag to FreeBSDDavid Carlier
Data involving struct accesses accounting work (plan to support only efficiency-cache-frag flag in the frontend side). Reviewers: krytarowski, vitalybuka, jfb Reviewed By : vitalybuka Differential Revision: https://reviews.llvm.org/D52608
2018-10-04[COFF] [X86] Don't use llvm_unreachable for unsupported relocation typesMartin Storsjo
This can happen if assembling a reference to _GLOBAL_OFFSET_TABLE_. While it doesn't make sense to try to assemble that for COFF, the fact that we previously used llvm_unreachable meant that the code had undefined behaviour if something tried to assemble that. The configure script of libgmp would try to assemble such a snippet (which should signal a failure). If llvm is built without assertions, the undefined behaviour meant a (near) infinite loop. Differential Revision: https://reviews.llvm.org/D52903
2018-10-04The Python 3 part of the script was missed when adding OpenBSD support.Brad Smith
2018-10-04Update Clang Windows getting started docsReid Kleckner
Summary: - Update the example VS project generation to use VS2017. - Add docs for generating ninja build files, since they are popular. - Remove reference to "make update" which no longer exists. Mention the monorepo instead. - Try to explain gnuwin32/coreutils requirements better. - Use https:// links where possible Reviewers: zturner, STL_MSFT Subscribers: jfb, cfe-commits Differential Revision: https://reviews.llvm.org/D52843
2018-10-04[AST] Revert mangling changes from r339428Shoaib Meenai
As discussed in https://reviews.llvm.org/D50144, we want Obj-C classes to have the same mangling as C++ structs, to support headers like the following: ``` @class I; struct I; void f(I *); ``` since the header can be used from both C++ and Obj-C++ TUs, and we want a consistent mangling across the two to prevent link errors. Itanium mangles both the same way, and so should the MS ABI. The main concern with having the same mangling for C++ structs and Obj-C classes was that we want to treat them differently for the purposes of exception handling, e.g. we don't want a C++ catch statement for a struct to be able to catch an Obj-C class with the same name as the struct. We can accomplish this by mangling Obj-C class names differently in their RTTI, which I'll do in a follow-up patch. Differential Revision: https://reviews.llvm.org/D52581
2018-10-04[NestedNameSpecifier] Add missing stream-specific dump methodsStephen Kelly
Reviewers: aaron.ballman Subscribers: cfe-commits Differential Revision: https://reviews.llvm.org/D52870
2018-10-04[InstCombine] reduce code duplication in SimplifyDemandedVectorElts; NFCISanjay Patel
2018-10-04Give same-named members unique timestamps on Darwin in llvm-ar.James Y Knight
This change ensures that the (membername,timestamp) tuple uniquely identifies an entry in an archive for format=darwin, in deterministic mode (which is the default). That, then, enables lldb and dsymutil to locate the appropriate object within the archive. Differential Revision: https://reviews.llvm.org/D47659
2018-10-04[globalisel][combine] Improve the truncate placement for the extending-loads ↵Daniel Sanders
combine This brings the extending loads patch back to the original intent but minus the PHI bug and with another small improvement to de-dupe truncates that are inserted into the same block. The truncates are sunk to their uses unless this would require inserting before a phi in which case it sinks to the _beginning_ of the predecessor block for that path (but no earlier than the def). The reason for choosing the beginning of the predecessor is that it makes de-duping multiple truncates in the same block simple, and optimized code is going to run a scheduler at some point which will likely change the position anyway.
2018-10-04[x86] add test for SSE sqrtss register dep (PR22206)Sanjay Patel
2018-10-04[clangd] Simplify Dex query tree logic and fix missing-posting-list bugSam McCall
Summary: The bug being fixed: when a posting list doesn't exist in the index, it was previously just dropped from the query rather than being treated as empty. Now that we have the FALSE iterator, we can use it instead. The query tree logic previously had a bunch of special cases to detect whether subtrees are empty. Now we just naively build the whole tree, and rely on the query optimizations to drop the trivial parts. Finally, there was a bug in trigram generation: the empty query would generate a single trigram "$$$" instead of no trigrams. This had no effect (there was no posting list, so the other bug cancelled it out). But we now have to fix this bug too. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52796
2018-10-04[clangd] Dex: FALSE iterator, peephole optimizations, fix AND bugSam McCall
Summary: The FALSE iterator will be used in a followup patch to fix a logic bug in Dex (currently, tokens that don't have posting lists in the index are simply dropped from the query, changing semantics). It can usually be optimized away, so added the following opmitizations: - simplify booleans inside AND/OR - replace effectively-empty AND/OR with booleans - flatten nested AND/ORs While working on this, found a bug in the AND iterator: its constructor sync() assumes that ReachedEnd is set if applicable, but the constructor never sets it. This crashes if a non-first iterator is nonempty. Reviewers: ilya-biryukov Subscribers: ioeric, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52789
2018-10-04[clangd] Add std::move for converting-return to satisfy older compilersSam McCall
2018-10-04AArch64: Fix XSeqPairs/WSeqPairs problemsMatthias Braun
- Fix spill/reloads of XSeqPairs failing with vregs (only physregs worked correctly) - Add missing spill/reload code for WSeqPairs class Differential Revision: https://reviews.llvm.org/D52761
2018-10-04[AMDGPU] Match signed dot4/8 pattern.Farhana Aleen
Summary: This patch matches signed dot4 and dot8 pattern. Author: FarhanaAleen Reviewed By: msearles Differential Revision: https://reviews.llvm.org/D52520
2018-10-04[clang-tidy] fix failing unit testsJonas Toth
The removal from the FIX-IT notes through the check-clang-tidy script was done incorrect. I did not detect beforehand but adjusted the script and tests accordingly
2018-10-04[clangd] fix another ambigous constructor in DexTestJonas Toth
2018-10-04[llvm-mca][x86] Add PR36951 ReadAfterLd test caseSimon Pilgrim
2018-10-04[InstCombine] allow bitcast to/from FP for vector insert/extract transformSanjay Patel
This is a follow-up to rL343482 / D52439. This was a pattern that initially caused the commit to be reverted because the transform requires a bitcast as shown here.
2018-10-04[clangd] Fix ambiguous constructor in DexTestlinaro-local/ci/tcwg-llvm-kernel-baseline-armv8l-master-lts-defconfig_nolselinaro-local/ci/tcwg-llvm-kernel-baseline-armv8l-master-ltsSam McCall
2018-10-04[clang-tidy] NFC use CHECK-NOTES in tests for fuchsia-default-argumentsJonas Toth
Reviewers: alexfh, aaron.ballman, hokein Reviewed By: alexfh Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D52688
2018-10-04[clang-tidy] NFC use CHECK-NOTES in tests for performance-move-constructor-initJonas Toth
Reviewers: alexfh, aaron.ballman, hokein Reviewed By: alexfh Subscribers: lebedev.ri, xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D52691
2018-10-04[clang] Add the exclude_from_explicit_instantiation attributeLouis Dionne
Summary: This attribute allows excluding a member of a class template from being part of an explicit template instantiation of that class template. This also makes sure that code using such a member will not take for granted that an external instantiation exists in another translation unit. The attribute was discussed on cfe-dev at [1] and is primarily motivated by the removal of always_inline in libc++ to control what's part of the ABI (see links in [1]). [1]: http://lists.llvm.org/pipermail/cfe-dev/2018-August/059024.html rdar://problem/43428125 Reviewers: rsmith Subscribers: dexonsmith, cfe-commits Differential Revision: https://reviews.llvm.org/D51789
2018-10-04[clang-tidy] fix PR39167, bugprone-exception-escape hangs-upJonas Toth
Summary: The check bugprone-exception-escape should not register if -fno-exceptions is set for the compile options. Bailing out on non-cplusplus and non-exceptions language options resolves the issue. Reviewers: alexfh, aaron.ballman, baloghadamsoftware Reviewed By: alexfh Subscribers: lebedev.ri, xazax.hun, rnkovacs, cfe-commits Differential Revision: https://reviews.llvm.org/D52880
2018-10-04[clang-tidy] Added pointer types to clang-tidy readability-identifier-naming ↵Jonas Toth
check. Summary: Option to check for different naming conventions on the following types: - GlobalConstantPointer - GlobalPointer - LocalConstantPointer - LocalPointer - PointerParameter - ConstantPointerParameter When not specified, the conventions for the non pointer types will be applied (GlobalConstant, GlobalVariable, LocalConstant, ...). Patch by ffigueras! Reviewers: alexfh, kbobyrev Reviewed By: alexfh Subscribers: xazax.hun, cfe-commits Differential Revision: https://reviews.llvm.org/D52882
2018-10-04[llvm-mca] Move field 'AllowZeroMoveEliminationOnly' to class RegisterFile. NFC.Andrea Di Biagio
Flag 'AllowZeroMoveEliminationOnly' should have been a property of the PRF, and not set at register granularity. This change also restricts move elimination to writes that update a full physical register. We assume that there is a strong correlation between logical registers that allow move elimination, and how those same registers are allocated to physical registers by the register renamer. This is still a no functional change, because this experimental code path is disabled for now. This is done in preparation for another patch that will add the ability to describe how move elimination works in scheduling models.
2018-10-04[X86][AVX] Add PR39161 test case for v4f64 zzww shuffleSimon Pilgrim
2018-10-04[OpenMP][OMPT] Fix unsafe initialization of ompt_data_t objectsJonathan Peyton
Initializing an ompt_data_t object using the pointer union member is potentially unsafe in 32-bit programs. This change fixes the issue by using the constant, ompt_data_none. Patch by Hansang Bae Differential Revision: https://reviews.llvm.org/D52046
2018-10-04[ELF][HEXAGON] Add support for GOT relocations.Sid Manning
The GOT is referenced through the symbol _GLOBAL_OFFSET_TABLE_ . The relocation added calculates the offset into the global offset table for the entry of a symbol. In order to get the correct TargetVA I needed to create an new relocation expression, HEXAGON_GOT. It does Sym.getGotVA() - In.GotPlt->getVA(). Differential Revision: https://reviews.llvm.org/D52744
2018-10-04[utils] Ensure that update_mca_test_checks.py writes prefixes in ↵Greg Bedwell
alphabetical order
2018-10-04[utils] simple refactor in update_mca_test_checks.py to make intent more ↵Greg Bedwell
readable
2018-10-04[RISCV] Remove overzealous is64Bit checksAlex Bradbury
lowerGlobalAddress, lowerBlockAddress, and insertIndirectBranch contain overzealous checks for is64Bit. These functions are all safe as-implemented for RV64.
2018-10-04[clangd] expose MergedIndex classSam McCall
Summary: This allows inheriting from it, so index() can ga away and allowing TestTU::index) to be fixed. Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52250
2018-10-04[clangd] clangd-indexer gathers refs and stores them in index files.Sam McCall
Reviewers: ioeric Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52531
2018-10-04[clangd] Remove one-segment-skipping from Dex trigrams.Sam McCall
Summary: Currently queries like "ab" can match identifiers like a_yellow_bee. The value of allowing this for exactly one segment but no more seems dubious. It costs ~3% of overall ram (~9% of posting list ram) and some quality. Reviewers: ilya-biryukov, ioeric Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52885
2018-10-04[X86] Set correct MMO offset on scalarized load piecesDavid Greene
When scalarizing a load, be sure to update the offset in the MachineMemOperand for each scalar load.
2018-10-04[cland] Dex: fix/simplify short-trigram generationSam McCall
Summary: 1) Instead of x$$ for a short-query trigram, just use x 2) Make rules more coherent: prefixes of length 1-2, and first char + next head 3) Fix Dex::fuzzyFind to mark results as incomplete, because short-trigram rules only yield a subset of results. Reviewers: ioeric Subscribers: ilya-biryukov, jkorous, mgrang, arphaman, kadircet, cfe-commits Differential Revision: https://reviews.llvm.org/D52808