summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2018-10-05AMDGPU/GlobalISel: Add support for G_INTTOPTRlinaro-local/ci/tcwg-llvm-kernel-baseline-armv8l-master-stable-defconfig_nolselinaro-local/ci/tcwg-llvm-kernel-baseline-armv8l-master-stablelinaro-local/ci/tcwg-llvm-kernel-baseline-aarch64-master-ltsTom Stellard
Summary: This is a no-op. Reviewers: arsenm Reviewed By: arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, rovka, kristof.beyls, dstuttard, tpr, t-tye, llvm-commits Differential Revision: https://reviews.llvm.org/D52916
2018-10-05[WebAssembly] abs and sqrt builtinslinaro-local/ci/tcwg-llvm-kernel-baseline-aarch64-master-mainlineThomas Lively
Summary: Depends on D52910. Reviewers: aheejin, dschuff, craig.topper Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D52913
2018-10-05[WebAssembly] any_true and all_true builtinsThomas Lively
Summary: Depends on D52858. Reviewers: aheejin, dschuff, craig.topper Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D52910
2018-10-05[WebAssembly] saturating arithmetic builtinsThomas Lively
Summary: Depends on D52856. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D52858
2018-10-05[WebAssembly] __builtin_wasm_replace_lane_* builtinsThomas Lively
Summary: Depends on D52852. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D52856
2018-10-05[WebAssembly] __builtin_wasm_extract_lane_* builtinsThomas Lively
Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, kristina, cfe-commits Differential Revision: https://reviews.llvm.org/D52852
2018-10-05[WebAssembly] Saturating arithmetic intrinsicsThomas Lively
Summary: Depends on D52805. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Differential Revision: https://reviews.llvm.org/D52813
2018-10-05[cmake] Also create lowercase extension WinSDK symlinksShoaib Meenai
Some projects rely on using libraries from the Windows SDK with their original casing, just with a lowercase extension. E.g. the WinSock2 lib is named WS2_32.Lib in the Windows SDK, and we would previously only create a ws2_32.lib symlink for it (i.e. all lowercase). Also create a WS2_32.lib symlink (i.e. original casing with lowercase extension) to cover users of this casing. As a drive-by fix, only create these symlinks when they differ from the original name to reduce the amount of noise in the library symlinks directory.
2018-10-04Thread safety analysis: Examine constructor argumentsAaron Puchert
Summary: Instead of only examining call arguments, we also examine constructor arguments applying the same rules. That was an opportunity for refactoring the examination procedure to work with iterators instead of integer indices. For the case of CallExprs no functional change is intended. Reviewers: aaron.ballman, delesley Reviewed By: delesley Subscribers: JonasToth, cfe-commits Differential Revision: https://reviews.llvm.org/D52443
2018-10-04[WebAssembly] Fixed missing "global" symbol type in AsmParser.Wouter van Oortmerssen
Summary: These are emitted by the wasm backend for e.g. __stack_pointer@GLOBAL which previously wasn't accepted by the assembler. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, llvm-commits, sunfish Differential Revision: https://reviews.llvm.org/D52911
2018-10-04[globalisel][combine] When placing truncates, handle the case when the BB is ↵Daniel Sanders
empty GlobalISel uses MIR with implicit fallthrough on each basic block. As a result, getFirstNonPhi() can return end().
2018-10-04[SimplifyCFG] Pass AggressiveInsts to DominatesMergePoint by reference. ↵Craig Topper
Remove null check. Summary: At some point in the past the recursion in DominatesMergePoint used to pass null for AggressiveInsts as part of the recursion. It no longer does this. So there is no way for AggressiveInsts to be null. This passes it by reference and removes the null check to make this explicit. Reviewers: efriedma, reames Reviewed By: efriedma Subscribers: xbolva00, llvm-commits Differential Revision: https://reviews.llvm.org/D52575
2018-10-04[WebAssembly] Ignore DBG_VALUE in WebAssemblyCFGStackify pass when looking ↵Yury Delendik
for block start Summary: Fixes https://bugs.llvm.org/show_bug.cgi?id=39158 and regression caused by D49034. Though it is possible the problem was existed before and was exposed by additional DBG_VALUEs. Reviewers: sunfish, dschuff, aheejin Reviewed By: aheejin Subscribers: sbc100, aheejin, llvm-commits, alexcrichton, jgravelle-google Differential Revision: https://reviews.llvm.org/D52837
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