summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [NVPTX,CUDA] Added llvm.nvvm.fns intrinsic and matching __nvvm_fns builtin ↵Artem Belevich2017-12-065-0/+75
| | | | | | | | in clang. Differential Revision: https://reviews.llvm.org/D40872 llvm-svn: 319909
* [CUDA] Added overloads for '[unsigned] long' variants of shfl builtins.Artem Belevich2017-12-061-0/+18
| | | | | | Differential Revision: https://reviews.llvm.org/D40871 llvm-svn: 319908
* AMDGPU Tests: Change a case to be run with -O0Zvi Rackover2017-12-062-49/+45
| | | | | | | D40231 requires to run case with -O0 to prevent InstructionSimplify from transforming an extractelement with undef index. llvm-svn: 319907
* [Sanitizers] Use SANITIZER_* macros in lib/interceptionKamil Rytarowski2017-12-068-45/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Unlike the rest of the sanitizer code, lib/interception uses native macros like __linux__ to check for specific targets instead of the common ones like SANITIZER_LINUX. When working on the Solaris port of the sanitizers, the current style was found to not only be inconsistent, but clumsy to use because the canonical way to check for Solaris is to check for __sun__ && __svr4__ which is a mouthful. Therefore, this patch switches to use SANITIZER_* macros instead. Tested on x86_64-pc-linux-gnu. Reviewers: kcc, vitalybuka Reviewed By: vitalybuka Subscribers: #sanitizers, srhines, krytarowski, llvm-commits, fedor.sergeev Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D39798 llvm-svn: 319906
* [SystemZ] Add IntrWriteMem flag to int_s390_tabort intrinsicJonas Paulsson2017-12-062-3/+2
| | | | | | | | | Tabort (transaction abort) does not load from memory. mayLoad flag removed from corresponding TABORT machine instruction. Review: Ulrich Weigand llvm-svn: 319905
* Stringizing raw string literals containing newlineTaewook Oh2017-12-064-71/+128
| | | | | | | | | | | | | | Summary: This patch implements 4.3 of http://open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4220.pdf. If a raw string contains a newline character, replace each newline character with the \n escape code. Without this patch, included test case (macro_raw_string.cpp) results compilation failure. Reviewers: rsmith, doug.gregor, jkorous-apple Reviewed By: jkorous-apple Subscribers: jkorous-apple, vsapsai, cfe-commits Differential Revision: https://reviews.llvm.org/D39279 llvm-svn: 319904
* [scudo] Correct performance regression in SecondaryKostya Kortchinsky2017-12-061-8/+10
| | | | | | | | | | | | | | | | | | | | | | Summary: This wasn't noticed: `RoundUpTo` doesn't produce a constant expression, so the sizes were not constant either. Enforce them to be static const, replace `RoundUpTo` by its expression. The compiler can now optimize the associated computations accordingly. Also looking at the produced assembly, `PageSize` was fetched multiple times during `Allocate`, so keep a local value of it. As a result it's fetched once and kept in a register. Reviewers: alekseyshl, flowerhack Reviewed By: alekseyshl Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D40862 llvm-svn: 319903
* [opt-viewer] Suppress noisy Swift remarksAdam Nemet2017-12-067-2/+377
| | | | | | | | | Most likely, this is not how we want to handle this in the long term. This code should probably be in the Swift repo and somehow plugged into the opt-viewer. This is still however very experimental at this point so I don't want to over-engineer it at this point. llvm-svn: 319902
* [Hexagon] Generate HVX code for vector construction and accessKrzysztof Parzyszek2017-12-0623-248/+8333
| | | | | | | | | | Support for: - build vector, - extract vector element, subvector, - insert vector element, subvector, - shuffle. llvm-svn: 319901
* [X86][AVX512] Tag BROADCAST instruction scheduler classesSimon Pilgrim2017-12-063-81/+105
| | | | llvm-svn: 319900
* [ARM][AArch64][DAG] Reenable post-legalize store mergeNirav Dave2017-12-0611-63/+466
| | | | | | | | | | | | | | | | | | | | Reenable post-legalize stores with constant merging computation and corresponding test case. * Properly truncate store merge constants * Disable merging of truncated stores floating points * Ensure merges of constant stores into a single vector are constructed from legal elements. Reviewers: eastig, efriedma Reviewed By: eastig Subscribers: spatel, rengolin, aemerson, javed.absar, kristof.beyls, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D40701 llvm-svn: 319899
* [cmake] Move CMAKE_(C|CXX)_COMPILER variables before CROSS_TOOLCHAIN_FLAGS soDon Hinton2017-12-061-2/+2
| | | | | | | | | | | | | | | | | | | | | they can be overridden when cross compiling. Summary: Since CROSS_TOOLCHAN_FLAGS can set CMAKE_(C|CXX)_COMPILER variables, move the compiler variables up front so they can be overridden. This is a followup to https://reviews.llvm.org/D40229 committed in rL319620. Thanks to Pavel Labath for reporting this issue. Reviewers: labath, beanz Subscribers: mgorny, llvm-commits Differential Revision: https://reviews.llvm.org/D40896 llvm-svn: 319898
* [OPENMP] Improve error message for mapping union members.Alexey Bataev2017-12-063-3/+3
| | | | llvm-svn: 319897
* [OPENMP] Initial codegen for `teams distribute simd` directive.Alexey Bataev2017-12-069-16/+1792
| | | | | | Host + default devices codegen for `teams distribute simd` directive. llvm-svn: 319896
* [X86][AVX512] Regenerate vpmovm2*/vpmov*2m avx512 schedule testsSimon Pilgrim2017-12-061-125/+125
| | | | llvm-svn: 319895
* [InstSimplify] Fold insertelement into undef if index is out of boundsIgor Laevsky2017-12-064-3/+41
| | | | | | Differential Revision: https://reviews.llvm.org/D40650 llvm-svn: 319894
* [compiler-rt][xray][cmake] Fix a build issue caused by set/item mixupSimon Dardis2017-12-061-1/+1
| | | | | | | | | | | | | | | | r319165 introduced a change to CMakeLists.txt for xray where the set of supported architectures for XRay was iterated over, tested if they could be targeted then passed to add_compiler_rt_object_libraries. However all targets were passed, rather than the architecture that was just tested. For cases such as MIPS, where mips and mips64 are supported, cmake would then test if mips64 could be targetted resulting in an attempt to produce multiple identical logical target names, falling afowl of CMP0002. Reviewers: dberris Differential Revision: https://reviews.llvm.org/D40890 llvm-svn: 319893
* [SystemZ] Bugfix in expandRxSBG()Jonas Paulsson2017-12-062-2/+33
| | | | | | | | | | | | Csmith discovered a program that caused wrong code generation with -O0: When handling a SIGN_EXTEND in expandRxSBG(), RxSBG.BitSize may be less than the Input width (if a truncate was previously traversed), so maskMatters() should be called with a masked based on the width of the sign extend result instead. Review: Ulrich Weigand llvm-svn: 319892
* [X86] Avoid unused variable warning in Release builds. NFCI.Benjamin Kramer2017-12-061-3/+3
| | | | llvm-svn: 319891
* [X86][AVX512] Drop default NoItinerary arguments that aren't neededSimon Pilgrim2017-12-061-6/+6
| | | | | | Requires reordering of AVX512_maskable_common arguments, but helps track what is still missing itinerary tags llvm-svn: 319890
* [SCEV][NFC] Check NoWrap flags before lexicographical comparison of SCEVsMax Kazantsev2017-12-061-0/+8
| | | | | | | | | | | | | | | | Lexicographical comparison of SCEV trees is potentially expensive for big expression trees. We can define ordering between them for AddRecs and N-ary operations by SCEV NoWrap flags to make non-equality check cheaper. This change does not prevent grouping eqivalent SCEVs together and is not supposed to have any meaningful impact on behavior of any transforms. Reviewed By: sanjoy Differential Revision: https://reviews.llvm.org/D40645 llvm-svn: 319889
* [mips] Fix definition of 'bc' instructionSimon Dardis2017-12-063-5/+5
| | | | llvm-svn: 319888
* [X86][AVX512] Tag Mask<->Vector instructions scheduler classesSimon Pilgrim2017-12-061-2/+4
| | | | llvm-svn: 319887
* [CodeGen] Fix formatting error from r319885Francis Visoiu Mistrih2017-12-061-1/+1
| | | | llvm-svn: 319886
* [CodeGen] Better handling of detached MachineOperandsFrancis Visoiu Mistrih2017-12-061-33/+39
| | | | | | | Basically use getMFIfAvailable to check if we can crawl up to the function. llvm-svn: 319885
* [X86][AVX512] Cleanup scalar move scheduler classesSimon Pilgrim2017-12-061-31/+31
| | | | llvm-svn: 319884
* [OpenCL] Fix layering violation by getOpenCLTypeAddrSpaceSven van Haastregt2017-12-066-37/+76
| | | | | | | | | | | | Commit 7ac28eb0a5 / r310911 ("[OpenCL] Allow targets to select address space per type", 2017-08-15) made Basic depend on AST, introducing a circular dependency. Break this dependency by adding the OpenCLTypeKind enum in Basic and map from AST types to this enum in ASTContext. Differential Revision: https://reviews.llvm.org/D40838 llvm-svn: 319883
* [[Machine]Dominators] Improved printout when verifyDomTree fails [NFC]Mikael Holmen2017-12-062-2/+4
| | | | | | Include the function name in the printout. llvm-svn: 319882
* [libclang] Add function to get the buffer for a fileErik Verbruggen2017-12-062-1/+37
| | | | | | | | | | This can be used by clients in conjunction with an offset returned by e.g. clang_getFileLocation. Now those clients do not need to also open/read the file. Differential Revision: https://reviews.llvm.org/D40643 llvm-svn: 319881
* [SCEV][NFC] Share value cache between SCEVs in GroupByComplexityMax Kazantsev2017-12-061-22/+26
| | | | | | | | | | | | | Current implementation of `compareSCEVComplexity` is being unreasonable with `SCEVUnknown`s: every time it sees one, it creates a new value cache and tries to prove equality of two values using it. This cache reallocates and gets lost from SCEV to SCEV. This patch changes this behavior: now we create one cache for all values and share it between SCEVs. Reviewed By: sanjoy Differential Revision: https://reviews.llvm.org/D40597 llvm-svn: 319880
* [ELF] - Show .plt symbols in -Map output.George Rimar2017-12-063-43/+70
| | | | | | | | | | As mentioned in PR35471, shared functions for which .plt entry address is used shows up in bfd's map files. Patch teaches LLD to do the same. Differential revision: https://reviews.llvm.org/D40839 llvm-svn: 319879
* [X86] Split 512-bit vector extends from types other than vXi1 out of ↵Craig Topper2017-12-061-42/+36
| | | | | | | | LowerZERO_EXTEND_AVX512/LowerSIGN_EXTEND_AVX512. NFCI Most of the code in these routines is for handling extends from vXi1 types. The 512-bit handling for other extends is very much like the AVX2 code. So make the special routines just do vXi1 types and move the other 512-bit handling to the place that handles AVX2. llvm-svn: 319878
* Make this test a bit less confusing.Rafael Espindola2017-12-061-0/+1
| | | | | | Before this patch foo and bar have the same address as .text is empty. llvm-svn: 319877
* [WebAssembly] Remove wasm/Strings.cpp+hSam Clegg2017-12-066-55/+8
| | | | | | | | | This file contained only a single function that was only really needed in one place, so just inline it. Differential Revision: https://reviews.llvm.org/D40870 llvm-svn: 319876
* Fix a bunch of wrong "tautological unsigned enum compare" diagnostics in C++.Richard Smith2017-12-062-27/+33
| | | | | | | An enumeration with a fixed underlying type can have any value in its underlying type, not just those spanned by the values of its enumerators. llvm-svn: 319875
* Fix a crash.Rafael Espindola2017-12-062-2/+13
| | | | | | | This is a constructed testcase I noticed while working on another patch. llvm-svn: 319874
* Revert r319482 and r319483 "[memcpyopt] Teach memcpyopt to optimize across ↵Hans Wennborg2017-12-065-204/+3
| | | | | | | | | | | | | | | | | | | | | | | | basic blocks" This caused PR35519. > [memcpyopt] Teach memcpyopt to optimize across basic blocks > > This teaches memcpyopt to make a non-local memdep query when a local query > indicates that the dependency is non-local. This notably allows it to > eliminate many more llvm.memcpy calls in common Rust code, often by 20-30%. > > Fixes PR28958. > > Differential Revision: https://reviews.llvm.org/D38374 > > [memcpyopt] Commit file missed in r319482. > > This change was meant to be included with r319482 but was accidentally > omitted. llvm-svn: 319873
* Fix typo fcvr -> fcvt and attempt to unbreak MSan/!NetBSDKamil Rytarowski2017-12-061-1/+1
| | | | llvm-svn: 319872
* Fix typo gcvr -> gcvt and attempt to unbreak MSan/!NetBSDKamil Rytarowski2017-12-061-1/+1
| | | | llvm-svn: 319871
* [WebAssembly] Only emit stack pointer delcaration in BinFormatWasm assemblyDerek Schuff2017-12-061-2/+4
| | | | llvm-svn: 319870
* Do not use default arguments of DataLayout::getPointer*. NFCFangrui Song2017-12-061-5/+0
| | | | | | | | | | | | | | Summary: There are "FIXME"s in include/llvm/IR/DataLayout.h to remove the default arguments. Reviewers: zturner, clayborg Reviewed By: zturner Subscribers: bjope Differential Revision: https://reviews.llvm.org/D40064 llvm-svn: 319869
* Support pthread_key_create symbol alias in MSan/NetBSDKamil Rytarowski2017-12-061-0/+10
| | | | | | | | | | | | | | | | | | | | | Summary: NetBSD uses indirection symbol for a set of threading functions. Add alias to handle __libc_thr_keycreate the same way as pthread_key_create. Sponsored by <The NetBSD Foundation> Reviewers: joerg, dvyukov, eugenis, vitalybuka Reviewed By: vitalybuka Subscribers: llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D40767 llvm-svn: 319868
* Revert "[DAGCombine] Move AND nodes to multiple load leaves"Vlad Tsyrklevich2017-12-062-361/+355
| | | | | | | This reverts commit r319773. It was causing some buildbots to hang, e.g. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-android/builds/5589 llvm-svn: 319867
* Disable absent functions in MSan/NetBSD interceptorsKamil Rytarowski2017-12-061-7/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Disable for NetBSD missing functions missing in this OS: - mempcpy, - __libc_memalign, - malloc_usable_size, - stpcpy, - gcvt, - wmempcpy, - fcvt. Sponsored by <The NetBSD Foundation> Reviewers: joerg, dvyukov, eugenis, vitalybuka, kcc Reviewed By: vitalybuka Subscribers: llvm-commits, #sanitizers Tags: #sanitizers Differential Revision: https://reviews.llvm.org/D40764 llvm-svn: 319866
* [WebAssembly] Fix test breakage from r319810Derek Schuff2017-12-061-1/+1
| | | | llvm-svn: 319865
* Regex out the local hash comparison test.Zachary Turner2017-12-061-11/+11
| | | | | | | | | Since the local hash is a different number of bytes depending on host architecture, we don't have a consistent value. I will need to re-do this test for both x86 and x64. For now it accepts any value for the local hash. llvm-svn: 319864
* Fix broken .gnu.hash section if -no-rosegment is given.Rui Ueyama2017-12-062-0/+25
| | | | | | | | We fill executable sections with trap instructions (0xcc or equivalent). If a .gnu.hash section was put into an executable segment, we created corrupted .gnu.hash section. This patch fixes the issue. llvm-svn: 319863
* Fix error in llvm-pdbutil.Zachary Turner2017-12-061-6/+7
| | | | | | | A recent change made this print the wrong value, breaking some tests. This is now fixed. llvm-svn: 319862
* [X86] Update to getSetCCResultType to be more robust to EVT types.Craig Topper2017-12-061-28/+17
| | | | | | Attempt to determine what the type will be legalized to and then analyze that to see if we will be able to use a vXi1 compare. llvm-svn: 319861
* [lld] Fix handling of wildcards in dynamic lists.Evgeniy Stepanov2017-12-062-2/+55
| | | | | | | | | | Reviewers: pcc, ruiu Subscribers: llvm-commits, emaste Differential Revision: https://reviews.llvm.org/D40868 llvm-svn: 319860
OpenPOWER on IntegriCloud