summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* [BBVectorize] Don't vectorize selects with a scalar condition and vector ↵Michael Kuperstein2016-05-262-1/+41
| | | | | | | | | | operands. This fixes PR27879. Differential Revision: http://reviews.llvm.org/D20659 llvm-svn: 270888
* Add test/CodeGen/MIR/Hexagon/lit.local.cfgKrzysztof Parzyszek2016-05-261-0/+2
| | | | | | Require that Hexagon is a registered target. llvm-svn: 270887
* [OpenMP] Codegen for target update directive.Samuel Antao2016-05-264-27/+331
| | | | | | | | | | | | Summary: This patch implements the code generation for the `target update` directive. The implemntation relies on the logic already in place for target data standalone directives, i.e. target enter/exit data. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev Subscribers: caomhin, cfe-commits Differential Revision: http://reviews.llvm.org/D20650 llvm-svn: 270886
* Do not rename registers that do not start an independent live rangeKrzysztof Parzyszek2016-05-262-0/+60
| | | | llvm-svn: 270885
* Make LIBOMP_USE_ITT_NOTIFY a setting that can be enabled or disabledJonathan Peyton2016-05-264-5/+9
| | | | | | | | | | | | | On Blue Gene/Q, having LIBOMP_USE_ITT_NOTIFY support compiled into a statically-linked binary causes a failure at runtime because dlopen fails. This patch changes LIBOMP_USE_ITT_NOTIFY to a cacheable configuration setting that can be disabled. Patch by John Mellor-Crummey Differential Revision: http://reviews.llvm.org/D20517 llvm-svn: 270884
* coff: fix the value of weak definitions.Rafael Espindola2016-05-262-1/+34
| | | | | | It looks like this doesn't get a lot of use. llvm-svn: 270883
* [OpenMP] Parsing and sema support for the from clauseSamuel Antao2016-05-2621-40/+532
| | | | | | | | | | | | | | | Summary: The patch contains the parsing and sema support for the `from` clause. Patch based on the original post by Kelvin Li. Reviewers: hfinkel, carlo.bertolli, kkwli0, arpith-jacob, ABataev Subscribers: caomhin, cfe-commits Differential Revision: http://reviews.llvm.org/D18488 llvm-svn: 270882
* Don't allocate in APInt::slt. NFC.Pete Cooper2016-05-262-25/+37
| | | | | | | | | | | | | | | | | | | | | | | APInt::slt was copying the LHS and RHS in to temporaries then making them unsigned so that it could use an unsigned comparision. It did this even on the paths which were trivial to give results for, such as the sign bit of the LHS being set while RHS was not set. This changes the logic to return out immediately in the trivial cases, and use an unsigned comparison in the remaining cases. But this time, just use the unsigned comparison directly without creating any temporaries. This works because, for example: true = (-2 slt -1) = (0xFE ult 0xFF) Also added some tests explicitly for slt with APInt's larger than 64-bits so that this new code is tested. Using the memory for 'opt -O2 verify-uselistorder.lto.opt.bc -o opt.bc' (see r236629 for details), this reduces the number of allocations from 26.8M to 23.9M. llvm-svn: 270881
* [OpenMP] Parsing and sema support for the to clauseSamuel Antao2016-05-2625-186/+768
| | | | | | | | | | | | | | | Summary: The patch contains the parsing and sema support for the `to` clause. Patch based on the original post by Kelvin Li. Reviewers: carlo.bertolli, hfinkel, kkwli0, arpith-jacob, ABataev Subscribers: caomhin, cfe-commits Differential Revision: http://reviews.llvm.org/D18597 llvm-svn: 270880
* [CaptureTracking] Volatile operations capture their memory locationDavid Majnemer2016-05-263-12/+46
| | | | | | | | | | The memory location that corresponds to a volatile operation is very special. They are observed by the machine in ways which we cannot reason about. Differential Revision: http://reviews.llvm.org/D20555 llvm-svn: 270879
* [OpenMP] Parsing and sema support for target update directiveSamuel Antao2016-05-2627-7/+552
| | | | | | | | | | | | | | | Summary: This patch is to add parsing and sema support for `target update` directive. Support for the `to` and `from` clauses will be added by a different patch. This patch also adds support for other clauses that are already implemented upstream and apply to `target update`, e.g. `device` and `if`. This patch is based on the original post by Kelvin Li. Reviewers: hfinkel, carlo.bertolli, kkwli0, arpith-jacob, ABataev Subscribers: caomhin, cfe-commits Differential Revision: http://reviews.llvm.org/D15944 llvm-svn: 270878
* Init member structs in constructor.Artem Belevich2016-05-261-3/+9
| | | | | | | Fixes build error on windows where MSVC does not support list initialization inside member initializer list. llvm-svn: 270877
* Revert 270865 -- unexplained bot failure on linux/ppcleXinliang David Li2016-05-261-1/+1
| | | | llvm-svn: 270876
* Add segment prefix for darwinXinliang David Li2016-05-261-1/+6
| | | | llvm-svn: 270875
* [Orc] Merge some common code for creating CompileCallbackManagers andLang Hames2016-05-268-128/+68
| | | | | | IndirectStubsManagers. llvm-svn: 270874
* Init tsan with .preinit_array sectionVitaly Buka2016-05-263-5/+93
| | | | | | | | | | | | Summary: Some libraries, like OpenSSL, runs code from .init section. Reviewers: kcc, eugenis Subscribers: kubabrecka, llvm-commits Differential Revision: http://reviews.llvm.org/D20646 llvm-svn: 270873
* [NVPTX] Added NVVMIntrRange passArtem Belevich2016-05-265-13/+213
| | | | | | | | | | | | NVVMIntrRange adds !range metadata to calls of NVVM intrinsics that return values within known limited range. This allows LLVM to generate optimal code for indexing arrays based on tid/ctaid which is a frequently used pattern in CUDA code. Differential Revision: http://reviews.llvm.org/D20644 llvm-svn: 270872
* [AMDGPU][llvm-mc] s_getreg/setreg* - hwreg - factor out strings/literals etc.Artem Tamazov2016-05-2610-170/+207
| | | | | | | | | | | Hwreg(...) syntax implementation unified with sendmsg(...). Common strings moved to Utils MathExtras.h functionality utilized. Added missing build dependency in Disassembler. Differential Revision: http://reviews.llvm.org/D20381 llvm-svn: 270871
* [OpenMP] Add support for the 'private pointer' flag to signal variables ↵Samuel Antao2016-05-263-78/+220
| | | | | | | | | | | | | | captured in target regions and used in first-private clauses. Summary: If a variable is implicitly mapped (doesn't show in a map clause), the runtime library has to be informed if the corresponding capture shows up in first-private clause, so that the storage previously allocated in the device is used. This patch adds the support for that. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev Subscribers: caomhin, cfe-commits Differential Revision: http://reviews.llvm.org/D20112 llvm-svn: 270870
* Guard against the C++ destructor chain by not letting the debugger list ↵Greg Clayton2016-05-261-67/+49
| | | | | | | | | | clean up after itself in the C++ destructor chain. If users call "static void lldb::SBDebugger::Terminate()" we will clean up the debugger list, and users can individually destroy debugger instances with "static void lldb::SBDebugger::Destroy(SBDebugger &)". But if we let the C++ destructor chain tear down this list, other threads that might still be running as the main thread exits can now crash if they access the debugger list. We stop this by leaking the debugger list and its mutex. <rdar://problem/26372169> llvm-svn: 270869
* [OpenMP] Adjust map type bits according to latest spec and use zero size ↵Samuel Antao2016-05-268-225/+348
| | | | | | | | | | | | | | array sections for pointers. Summary: This patch changes the bits used to specify the map types according to the latest version of the libomptarget document and add the support for zero size array section when pointers are being implicitly mapped. This completes the missing new 4.5 map semantics. Reviewers: hfinkel, carlo.bertolli, arpith-jacob, kkwli0, ABataev Subscribers: caomhin, cfe-commits Differential Revision: http://reviews.llvm.org/D20111 llvm-svn: 270868
* Add a test case for microtask dispatch with many argumentsHal Finkel2016-05-261-0/+38
| | | | | | This is a cleaned-up version of the test case posted in the D19879 review. llvm-svn: 270867
* [CMake] Restrict libxar linkage to just llvm-objdumpChris Bieneman2016-05-263-5/+4
| | | | | | At some point we're going to need libObject to have this dependency, but as it is now this is causing too many headaches. This commit will reduce the linkage to just llvm-objdump where it is strictly needed, and we'll cross the libObject bridge later when we need it. llvm-svn: 270866
* Use new interface in Triple /NFCXinliang David Li2016-05-261-1/+1
| | | | llvm-svn: 270865
* Fix windows bot failureXinliang David Li2016-05-261-0/+2
| | | | llvm-svn: 270864
* [cmake] Remove the LLDB versions of the exception-controlling variablesPavel Labath2016-05-261-22/+0
| | | | | | | | | | | | | | | Summary: One can still use the LLVM variables to control this: LLVM_ENABLE_EH, LLVM_ENABLE_RTTI. It's not clear to me why one would want to control these at lldb level and it's generally not even a good idea to compile parts of the same binary with different values of these flags. Reviewers: zturner, tfiala Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D20673 llvm-svn: 270863
* [profile] pre-allocate a small counter set in profile runtimeXinliang David Li2016-05-261-18/+23
| | | | | | | | Tested with relavant benchmarks in SPEC2006 Differential Revision: http://reviews.llvm.org/D20651 llvm-svn: 270862
* Undo a suboptimal clang-format decision. NFCAdrian Prantl2016-05-261-4/+2
| | | | llvm-svn: 270861
* Since some time clang itself figures out the default for ↵Ismail Donmez2016-05-261-13/+0
| | | | | | | | | | ms-compatibility-version and uses it. Trying to figure it out during build is redundant and also will not work when the environment variable VSINSTALLDIR is not defined (which is not defined if you don't install whole Visual Studio but use Visual C++ Build Tools package). Tested by bootstrapping clang with clang-cl. Differential Revision: http://reviews.llvm.org/D20672 llvm-svn: 270860
* Fix build warning introduced in r270552 "[AMDGPU][llvm-mc] Disassembler: ↵Artem Tamazov2016-05-261-1/+2
| | | | | | support for TTMP/TBA/TMA registers." llvm-svn: 270859
* [X86][SSE] When lowering a 256-bit shuffle as PMOVZX, reduce the input ↵Simon Pilgrim2016-05-262-5/+9
| | | | | | | | vector to the lower 128-bit subvector. Most often as not this is what it started out as, the extraction is zero-cost on AVX and the PMOVZX/PMOVSX folding logic is based around 128-bit loads. llvm-svn: 270858
* [Hexagon] Select the aggressive anti-dependency breakerKrzysztof Parzyszek2016-05-261-0/+2
| | | | llvm-svn: 270857
* [AMDGPU] Remove exit-on-error flag from test (PR27762)Diana Picus2016-05-262-2/+4
| | | | | | | | | | Similar to r269948, but for argument lowering. Fixes PR27762 Differential Revision: http://reviews.llvm.org/D20430 llvm-svn: 270856
* [BPF] Remove exit-on-error flag in test (PR27767)Diana Picus2016-05-262-1/+2
| | | | | | | | | | | | The exit-on-error flag is needed to avoid an assert where llvm::SelectionDAGISel::LowerArguments doesn't create enough arguments. Fill up with zeroes to reach the right number of args. Fixes PR27767. Differential Revision: http://reviews.llvm.org/D20571 llvm-svn: 270855
* [cmake] Add a big warning about a libstdc++ issuePavel Labath2016-05-261-0/+24
| | | | | | | | | | | | | | | | | | | | | | | Summary: Recent increase in the usage of std::weak_ptr has caused us to rediscover an issue in libstdc++ versions prior to 4.9 <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59656>, which make this class unusable without exceptions in the presence of multiple threads. It's virtualy impossible to work around this issue without implementing our own shared_ptr/weak_ptr substitutes, which does not seem like a good idea. Therefore, I am adding a big CMake warning which warns you about this issue if you're attempting a to do a build which is suceptible to this problem and suggests possible alternatives. Right now, nothing spectacular will happen if you ignore this warning (all the crashes I have seen occur during process shutdown), but there's no guarantee the situation will not change in the future. Reviewers: tberghammer, tfiala, nitesh.jain, omjavaid, emaste, krytarowski Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D20671 llvm-svn: 270854
* [InstCombine] Catch more bswap cases missed due to zext and truncs.Chad Rosier2016-05-263-18/+114
| | | | | | | Fixes PR27824. Differential Revision: http://reviews.llvm.org/D20591. llvm-svn: 270853
* [X86][SSE] Added load_zext_16i8_to_8i32 testSimon Pilgrim2016-05-261-0/+56
| | | | | | Odd issue with input vector not being folded into pmovzx on AVX2+ targets llvm-svn: 270852
* Adding missing _mm512_castsi512_si256 intrinsic. Michael Zuckerman2016-05-262-0/+13
| | | | llvm-svn: 270851
* [ThinLTO] Resolve LinkOnceAnyTeresa Johnson2016-05-264-26/+45
| | | | | | | | | | | | | | | | | Summary: Ensure we keep prevailing copy of LinkOnceAny by converting it to WeakAny. Rename odr_resolution test to the now more appropriate weak_resolution (weak in the linker sense includes linkonce). Reviewers: joker.eph Subscribers: llvm-commits, joker.eph Differential Revision: http://reviews.llvm.org/D20634 llvm-svn: 270850
* [Analyzer] Correct stack address escape diagnosticSean Eveson2016-05-262-3/+8
| | | | | | | | | | | | | | | | | | Summary: Leaking a stack address via a static variable refers to it in the diagnostic as a 'global'. This patch corrects the diagnostic for static variables. Patch by Phil Camp, SN Systems Reviewers: dcoughlin, zaks.anna Subscribers: xazax.hun, cfe-commits Differential Revision: http://reviews.llvm.org/D19866 Patch by Phil Camp llvm-svn: 270849
* Add "-gmodules" support to the test suite.Todd Fiala2016-05-2613-29/+108
| | | | | | | | | | | | | | This change adds the capability of building test inferiors with the -gmodules flag to enable module debug info support. Windows is excluded per @zturner. Reviewers: granata.enrico, aprantl, zturner, labath Subscribers: zturner, labath, lldb-commits Differential Revision: http://reviews.llvm.org/D19998 llvm-svn: 270848
* Removed redundant argument. NFC.George Rimar2016-05-263-11/+7
| | | | llvm-svn: 270847
* [AArch64] Generate a BFI/BFXIL from 'or (and X, MaskImm), OrImm'.Chad Rosier2016-05-262-1/+180
| | | | | | | | | | | | | | | | | | | | | | | If and only if the value being inserted sets only known zero bits. This combine transforms things like and w8, w0, #0xfffffff0 movz w9, #5 orr w0, w8, w9 into movz w8, #5 bfxil w0, w8, #0, #4 The combine is tuned to make sure we always reduce the number of instructions. We avoid churning code for what is expected to be performance neutral changes (e.g., converted AND+OR to OR+BFI). Differential Revision: http://reviews.llvm.org/D20387 llvm-svn: 270846
* Fix crash while parsing variable template with variadic template argumentsOlivier Goffart2016-05-262-1/+7
| | | | | | | | | | It is only a crash if the compiler optimize for this!=nullptr because LocalInstantiationScope::getPartiallySubstitutedPack checks if 'this' is null (This is crashing when clang is compiled with GCC6) Differential Revision: http://reviews.llvm.org/D20511 llvm-svn: 270845
* Use shouldAssumeDSOLocal on AArch64.Rafael Espindola2016-05-265-62/+69
| | | | | | This reduces code duplication and now AArch64 also handles PIE. llvm-svn: 270844
* [AVX512] Fix intrinsic cmp{sd|ss} lowering.Igor Breger2016-05-262-16/+12
| | | | | | Differential Revision: http://reviews.llvm.org/D20615 llvm-svn: 270843
* [driver][mips] Specify stdlib used in the tests explicitlySimon Atanasyan2016-05-262-0/+28
| | | | | | That allows to pass the tests even if default stdlib is not libstdc++. llvm-svn: 270842
* clang-tools-extra/test/clang-tidy/cppcoreguidelines-pro-type-vararg.cpp: ↵NAKAMURA Takumi2016-05-261-1/+1
| | | | | | Tweak for r270775. llvm-svn: 270841
* [sanitizer] Fix a typo in config-ix.cmake causing all Darwin embedded ↵Kuba Brecka2016-05-261-1/+1
| | | | | | platforms to be built with the 'iossim' SDK. llvm-svn: 270840
* Add auto-exporting of symbols from tools so that plugins work on WindowsJohn Brawn2016-05-265-13/+577
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | The problem with plugins on Windows is that when building a plugin DLL it needs to explicitly link against something (an exe or DLL) if it uses symbols from that thing, and that thing must explicitly export those symbols. Also there's a limit of 65535 symbols that can be exported. This means that currently plugins only work on Windows when using BUILD_SHARED_LIBS, and that doesn't work with MSVC. This patch adds an LLVM_EXPORT_SYMBOLS_FOR_PLUGINS option, which when enabled automatically exports from all LLVM tools the symbols that a plugin could want to use so that a plugin can link against a tool directly. Plugins can specify what tool they link against by using PLUGIN_TOOL argument to llvm_add_library. The option can also be enabled on Linux, though there all it should do is restrict the set of symbols that are exported as by default all symbols are exported. This option is currently OFF by default, as while I've verified that it works with MSVC, linux gcc, and cygwin gcc, I haven't tried mingw gcc and I have no idea what will happen on OSX. Also unfortunately we can't turn on LLVM_ENABLE_PLUGINS when the option is ON as bugpoint-passes needs to be loaded by both bugpoint.exe and opt.exe which is incompatible with this approach. Also currently clang plugins don't work with this approach, which will be fixed in future patches. Differential Revision: http://reviews.llvm.org/D18826 llvm-svn: 270839
OpenPOWER on IntegriCloud