summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Remarks][NFC] Rename RemarkParser to YAMLRemarkParserFrancis Visoiu Mistrih2019-03-051-19/+20
| | | | | | Rename it to reflect that it's parsing YAML remarks. llvm-svn: 355441
* [cmake] Add libRemarks to LLVM_DISTRIBUTION_COMPONENTSFrancis Visoiu Mistrih2019-03-051-0/+1
| | | | | | | Add this in the Apple-stage2.cmake to ship the remark tooling library with the compiler. llvm-svn: 355440
* [OptRemarks] Make OptRemarks more generic: rename OptRemarks to RemarksFrancis Visoiu Mistrih2019-03-0520-578/+579
| | | | | | | | | | | | | | | Getting rid of the name "optimization remarks" for anything that involves handling remarks on the client side. It's safer to do this now, before we get stuck with that name in all the APIs and public interfaces we decide to export to users in the future. This renames llvm/tools/opt-remarks to llvm/tools/remarks-shlib, and now generates `libRemarks.dylib` instead of `libOptRemarks.dylib`. Differential Revision: https://reviews.llvm.org/D58535 llvm-svn: 355439
* [WebAssembly] Test change after disabling MachineBlockPlacementHeejin Ahn2019-03-051-1/+1
| | | | | | | | | | | | | | | | Summary: We disabled MachineBlockPlacement pass in D58953, and this test result changes as the result of it. Reviewers: kripken Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58954 llvm-svn: 355438
* [WebAssembly] Disable MachineBlockPlacement passHeejin Ahn2019-03-057-432/+77
| | | | | | | | | | | | | | | | | Summary: This pass hurts code size for wasm and sometimes generates irreducible control flow. Context: https://github.com/emscripten-core/emscripten/pull/8233 Reviewers: kripken, dschuff Subscribers: sunfish, sbc100, jgravelle-google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58953 llvm-svn: 355437
* [NFC][CodeGen][X86][AArch64] Add tests for C++ std::midpoint() pattern (PR40965)Roman Lebedev2019-03-055-0/+10752
| | | | | | | | | | | | | Tests only for integers, not floating point or pointers. The scalar 8-bit case uses branch instead of CMOV, because there is no no 8-bit CMOV. Vector tests are for consistency, since it can be vectorized. https://bugs.llvm.org/show_bug.cgi?id=40965 llvm-svn: 355436
* Add logging to SBCompileUnit::GetNumLineEntries.Jason Molenda2019-03-051-1/+6
| | | | llvm-svn: 355435
* [clang-format] Fix lambdas returning template specialization that contains ↵Jan Korous2019-03-052-0/+109
| | | | | | | | | | | | operator in parameter A template specialization of a template foo<int N> can contain integer constants and a whole bunch of operators - e. g. foo< 1 ? !0 : (3+1)%4 > Inspired by https://reviews.llvm.org/D58922 Differential Revision: https://reviews.llvm.org/D58934 llvm-svn: 355434
* Revert r355224 "[TableGen][SelectionDAG][X86] Add specific isel matchers for ↵Craig Topper2019-03-0512-137/+68
| | | | | | | | immAllZerosV/immAllOnesV. Remove bitcasts from X86 patterns that are no longer necessary." This caused the first matcher in the isel table for many targets to Opc_Scope instead of Opc_SwitchOpcode. This leads to a significant increase in isel match failures. llvm-svn: 355433
* [PGO] Clang part of change for context-sensitive PGO (part2)Rong Xu2019-03-055-0/+141
| | | | | | | | Part 2 of CSPGO change in Clang: Add test cases. Differential Revision: https://reviews.llvm.org/D54176 llvm-svn: 355432
* [Subtarget] Merge ProcSched and ProcDesc arrays in MCSubtargetInfo into a ↵Craig Topper2019-03-056-78/+23
| | | | | | | | | | | | single array. These arrays are both keyed by CPU name and go into the same tablegenerated file. Merge them so we only need to store keys once. This also removes a weird space saving quirk where we used the ProcDesc.size() to create to build an ArrayRef for ProcSched. Differential Revision: https://reviews.llvm.org/D58939 llvm-svn: 355431
* [X86] In X86DomainReassignment.cpp add enclosed registers to EnclosedEdgesGuozhi Wei2019-03-051-0/+1
| | | | | | | | | | The variable X86DomainReassignment::EnclosedEdges is used to store registers that have been enclosed in some closure, so those registers will be ignored when create new closures. But there is no registers has ever been put into this set, so a single register can be enclosed in multiple closures, it significantly increase compile time. This patch adds a register into EnclosedEdges when it is enclosed into a closure. Differential Revision: https://reviews.llvm.org/D58646 llvm-svn: 355430
* [Subtarget] Create a separate SubtargetSubtargetKV struct for ProcDesc to ↵Craig Topper2019-03-055-18/+37
| | | | | | | | | | | | remove fields from the stack tables that aren't needed for CPUs The description for CPUs was just the CPU name wrapped with "Select the " and " processor". We can just do that directly in the help printer instead of making a separate version in the binary for each CPU. Also remove the Value field that isn't needed and was always 0. Differential Revision: https://reviews.llvm.org/D58938 llvm-svn: 355429
* [Subtarget] Move SubtargetFeatureKV/SubtargetInfoKV from SubtargetFeature.h ↵Craig Topper2019-03-054-245/+224
| | | | | | | | | | | | | | | | to MCSubtargetInfo.h. Move all code that operates on ProcFeatures and ProcDesc arrays to MCSubtargetInfo. The SubtargetFeature class managed a list of features as strings. And it also had functions for setting bits in a FeatureBitset. The methods that operated on the Feature list as strings are used in other parts of the backend. But the parts that operate on FeatureBitset are very tightly coupled to MCSubtargetInfo and requires passing in the arrays that MCSubtargetInfo owns. And the same struct type is used for ProcFeatures and ProcDesc. This has led to MCSubtargetInfo having 2 arrays keyed by CPU name. One containing a mapping from a CPU name to its features. And one containing a mapping from CPU name to its scheduler model. I would like to make a single CPU array containing all CPU information and remove some unneeded fields the ProcDesc array currently has. But I don't want to make SubtargetFeatures.h have to know about the scheduler model type and have to forward declare or pull in the header file. Differential Revision: https://reviews.llvm.org/D58937 llvm-svn: 355428
* Reinstate libc++ patches now that the lldb formatter has been updated.Davide Italiano2019-03-056-281/+856
| | | | | | | | "[libc++] Fix <atomic> failures on GCC" "[libc++] Change memory_order to an enum class" "[libc++] decoupling Freestanding atomic<T> from libatomic.a" llvm-svn: 355427
* AMDGPU: Preserve undef flag when expanding SI_IFMatt Arsenault2019-03-052-10/+40
| | | | | | Fixes undefined value verifier error. llvm-svn: 355426
* [X86] Enable 8-bit SHL to convert to LEACraig Topper2019-03-054-9/+13
| | | | | | Differential Revision: https://reviews.llvm.org/D58870 llvm-svn: 355425
* [X86] Allow 8-bit INC/DEC to be converted to LEA.Craig Topper2019-03-054-18/+19
| | | | | | | | We already do this for 16/32/64 as well as 8-bit add with register/immediate. Might as well do it for 8-bit INC/DEC too. Differential Revision: https://reviews.llvm.org/D58869 llvm-svn: 355424
* [X86] Enable 8-bit OR with disjoint bits to convert to LEACraig Topper2019-03-0516-103/+146
| | | | | | | | We already support 8-bits adds in convertToThreeAddress. But we can also support 8-bit OR if the bits are disjoint. We already do this for 16/32/64. Differential Revision: https://reviews.llvm.org/D58863 llvm-svn: 355423
* [DataFormatters] Fix regression in libc++ std::atomic formatter caused by ↵Shafik Yaghmour2019-03-052-6/+64
| | | | | | | | https://reviews.llvm.org/D56913 rdar://problem/48568543 llvm-svn: 355422
* [CUDA][HIP][Sema] Fix template kernel with function as template parameterYaxun Liu2019-03-054-3/+16
| | | | | | | | | | | | | | | | | | | | If a kernel template has a function as its template parameter, a device function should be allowed as template argument since a kernel can call a device function. However, currently if the kernel template is instantiated in a host function, clang will emit an error message saying the device function is an invalid candidate for the template parameter. This happens because clang checks the reference to the device function during parsing the template arguments. At this point, the template is not instantiated yet. Clang incorrectly assumes the device function is called by the host function and emits the error message. This patch fixes the issue by disabling checking of device function during parsing template arguments and deferring the check to the instantion of the template. At that point, the template decl is already available, therefore the check can be done against the instantiated function template decl. Differential Revision: https://reviews.llvm.org/D56411 llvm-svn: 355421
* [SLP] Fix invalid triple in X86 testsFlorian Hahn2019-03-052-30/+37
| | | | | | | | | | | | | | x86-64 is an invalid architecture in triples. Changing it to the correct triple (x86_64) changes some tests, because SLP is not deemed profitable any more. Reviewers: ABataev, RKSimon, spatel Reviewed By: RKSimon Differential Revision: https://reviews.llvm.org/D58931 llvm-svn: 355420
* Allow bundle size to be 0 in clang-offload-bundlerYaxun Liu2019-03-051-1/+1
| | | | | | | | | | | | | | HIP uses clang-offload-bundler to create fat binary. The bundle for host is empty. Currently clang-offload-bundler checks if the bundle size is 0 when unbundling. If so it will exit without unbundling the remaining bundles. This causes clang-offload-bundler not being able to unbundle fat binaries generated for HIP. This patch allows bundles size to be 0 when clang-offload-bundler unbundles input files. Differential Revision: https://reviews.llvm.org/D58057 llvm-svn: 355419
* [OPENMP]Target region: emit const firstprivates as globals with constantAlexey Bataev2019-03-057-68/+171
| | | | | | | | | | | | memory. If the variable with the constant non-scalar type is firstprivatized in the target region, the local copy is created with the data copying. Instead, we allocate the copy in the constant memory and avoid extra copying in the outlined target regions. This global copy is used in the target regions without loss of the performance. llvm-svn: 355418
* [libcxx] Revert set of atomic patches that broke lldb.Davide Italiano2019-03-056-856/+281
| | | | | | | | | | | Revert "[libc++] Fix <atomic> failures on GCC" Revert "[libc++] Change memory_order to an enum class" Revert "[libc++] decoupling Freestanding atomic<T> from libatomic.a" The lldb formatter nededs to be updated. Shafik and Louis will coordinate to do so. llvm-svn: 355417
* [scudo][standalone] Add bytemap classesKostya Kortchinsky2019-03-054-0/+178
| | | | | | | | | | | | | | | | | | | | Summary: The bytemap classes will be used by the primary32 allocator to associate classes with memory regions. It's similar to the sanitizer_common one except for the fact that the base (level1) maps are mapped instead of being static to reduce the memory footprint of an uninitialized allocator. Reviewers: vitalybuka, eugenis, morehouse, flowerhack, dmmoore415, mcgrathr Reviewed By: vitalybuka, morehouse Subscribers: mgorny, delcypher, jfb, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D58723 llvm-svn: 355416
* Revert "[lldbtest] Check against the correct name for libcxxabi (macOS)."Davide Italiano2019-03-051-1/+1
| | | | | | | This passes locally but breaks on the bots. Maybe an SDK difference. Reverting while I investigate. llvm-svn: 355415
* TableGen: Allow lists to be concatenated through '#'Javed Absar2019-03-054-4/+78
| | | | | | | | | | | | | | | | | | | Currently one can concatenate strings using hash(#), but not lists, although that would be a natural thing to do. This patch allows one to write something like: def : A<!listconcat([1,2], [3,4])>; simply as : def : A<[1,2] # [3,4]>; This was missing feature was highlighted by Nicolai at FOSDEM talk. Reviewed by: nhaehnle, hfinkel Differential Revision: https://reviews.llvm.org/D58895 llvm-svn: 355414
* [lldb] Disable some of TestJITLoaderGDB.py tests on WindowsYury Delendik2019-03-051-0/+2
| | | | | | | | | | | | The test expect sample executable code be built, but fails on Windows. Review comment https://reviews.llvm.org/D57689#1418597 Tags: #lldb Differential Revision: https://reviews.llvm.org/D57689 llvm-svn: 355413
* [X86][SSE] Regenerate vector zero testsSimon Pilgrim2019-03-051-16/+51
| | | | llvm-svn: 355412
* [SDAG] move FP constant folding to helper function; NFCSanjay Patel2019-03-052-67/+77
| | | | llvm-svn: 355411
* [HIP] Do not unbundle object files for -fno-gpu-rdcYaxun Liu2019-03-053-12/+22
| | | | | | | | | | | | | | | | When -fno-gpu-rdc is set, device code is compiled, linked, and assembled into fat binary and embedded as string in object files. The object files are normal object files which can be linked by host linker. In the linking stage, the object files should not be unbundled when -fno-gpu-rdc is set since they are normal object files, not bundles. The object files only need to be unbundled when -fgpu-rdc is set. Currently clang always unbundles object files, disregarding -fgpu-rdc option. This patch fixes that. Differential Revision: https://reviews.llvm.org/D58917 llvm-svn: 355410
* [libc++] Fix <atomic> failures on GCCLouis Dionne2019-03-052-103/+103
| | | | | | | | | | | | | | | | Summary: In https://reviews.llvm.org/D58201, we turned memory_order into an enum class in C++20 mode. However, we were not casting memory_order to its underlying type correctly for the GCC implementation, which broke the build bots. I also fixed a test that was failing in C++17 mode on GCC 5. Reviewers: EricWF, jfb, mclow.lists Subscribers: zoecarver Differential Revision: https://reviews.llvm.org/D58966 llvm-svn: 355409
* Revert "[GlobalISel][AArch64] Add selection support for G_EXTRACT_VECTOR_ELT"Jessica Paquette2019-03-055-332/+18
| | | | | | | | | | | This broke test-suite::aarch64_neon_intrinsics.test Reverting while I look into it. Example failure: http://lab.llvm.org:8011/builders/clang-cmake-aarch64-quick/builds/17740 llvm-svn: 355408
* [X86] Add SMULO/UMULO combine testsSimon Pilgrim2019-03-051-0/+136
| | | | | | Include scalar and vector test variants covering the folds in DAGCombiner (vector isn't currently supported - PR40442) llvm-svn: 355407
* Revert "Fix embedded Python initialization according to changes in version 3.7"Tatyana Krasnukha2019-03-051-13/+1
| | | | | | Testsuite hangs on Windows likely due to these changes. llvm-svn: 355406
* Fix typo in constant vectorSimon Pilgrim2019-03-051-4/+4
| | | | llvm-svn: 355405
* [X86] Add SADDO/UADDO and SSUBO/USUBO combine testsSimon Pilgrim2019-03-052-0/+464
| | | | | | Include scalar and vector test variants covering the folds in DAGCombiner (vector isn't currently supported - PR40442) llvm-svn: 355404
* [libc++] Change memory_order to an enum classLouis Dionne2019-03-054-59/+115
| | | | | | | | | This implements P0439R0. Thanks to Zoe Carver for the patch. Differential Revision: https://reviews.llvm.org/D58201 llvm-svn: 355403
* Adds property to force enabling of GDB JIT loader for MacOSYury Delendik2019-03-055-12/+149
| | | | | | | | | | | | | | | | | Summary: Based on https://gist.github.com/thlorenz/30bf0a3f67b1d97b2945#patching-and-rebuilding The functionality was disabled at https://github.com/llvm/llvm-project/commit/521c2278abb16f0148cef1bd061cadb01ef43192 Reviewers: jingham Subscribers: lldb-commits Tags: #lldb Differential Revision: https://reviews.llvm.org/D57689 llvm-svn: 355402
* [clang-tidy] Fix bugprone-string-constructor crashAlexander Kornienko2019-03-052-1/+10
| | | | llvm-svn: 355401
* [X86] Add test cases for D58874Simon Pilgrim2019-03-051-0/+45
| | | | | | Add scalar and vector test cases for missing (add (add (xor a, -1), b), 1) -> (sub b, a) fold llvm-svn: 355400
* [llvm-objcopy] - Simplify `isCompressable` and fix the issue relative.George Rimar2019-03-052-11/+43
| | | | | | | | | | | | When --compress-debug-sections is given, llvm-objcopy do not compress sections that have "ZLIB" header in data. Normally this signature is used in zlib-gnu compression format. But if zlib-gnu used then the name of the compressed section should start from .z* (e.g .zdebug_info). If it does not, then it is not a zlib-gnu format and section should be treated as a normal uncompressed section. Differential revision: https://reviews.llvm.org/D58908 llvm-svn: 355399
* One more UserIDResolver fixPavel Labath2019-03-053-3/+3
| | | | | | | | | | | | | | | | | The intention in r355323 has been to implement a no-op resolver in the HostInfoBase class, which will then be shadowed a an implementation in the HostInfoPosix class. However, I add the shadowing declaration in HostInfoPosix.h, and instead had implemented the HostInfoBase function in HostInfoPosix.cpp. This has lead to undefined symbols on windows, and a subsequent implementation of a no-op resolver in HostInfoWindows (r355329). Since now there is no point on having a no-op resolver in the base class, I just remove the base declaration altogether, and have HostInfoPosix implement the (newly-declared) HostInfoPosix version of that function. llvm-svn: 355398
* [sanitizers] Don't use Windows Trace Logging with Clang in MSVC mode eitherMartin Storsjo2019-03-051-1/+1
| | | | | | | | | | | | | | | The TraceLoggingProvider.h header does work with clang-cl in general these days with Win SDK 10.0.17763.0, but when compiled in 32 bit x86 mode, with the -Z7 flag, compilation fails with the following error: fatal error: error in backend: assembler label '' can not be undefined With older Win SDKs, there are other build failures (regardless of architecture or the -Z7 flag). Differential Revision: https://reviews.llvm.org/D58958 llvm-svn: 355397
* [analyzer] Fix taint propagation in GenericTaintCheckerKristof Umann2019-03-052-1/+8
| | | | | | | | | | | The gets function has no SrcArgs. Because the default value for isTainted was false, it didn't mark its DstArgs as tainted. Patch by Gábor Borsik! Differential Revision: https://reviews.llvm.org/D58828 llvm-svn: 355396
* [ASTMatchers] Improved formatting in a documentation commentDmitri Gribenko2019-03-051-2/+1
| | | | llvm-svn: 355395
* [AMDGPU] Fix DPP operand order in atomic optimizerCarl Ritson2019-03-056-7/+16
| | | | | | | | | | | | | | | | | | | Summary: Ensure order of operands in DPP atomic optimizer final WWM step is appropriate for sub instructions. Change-Id: I631d050e1c00a3b4bc7c11a90437064403c4cf30 Reviewers: sheredom, tpr Reviewed By: sheredom Subscribers: arsenm, kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, t-tye, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58900 llvm-svn: 355394
* [SCEV] Ensure that isHighCostExpansion takes into account what is being dividedDavid Green2019-03-053-59/+22
| | | | | | | | | | | | | A SCEV is not low-cost just because you can divide it by a power of 2. We need to also check what we are dividing to make sure it too is not a high-code expansion. This helps to not expand the exit value of certain loops, helping not to bloat the code. The change in no-iv-rewrite.ll is reverting back to what it was testing before rL194116, and looks a lot like the other tests in replace-loop-exit-folds.ll. Differential Revision: https://reviews.llvm.org/D58435 llvm-svn: 355393
* [lldb] Fix linux host build after r355342Alexander Kornienko2019-03-051-0/+1
| | | | llvm-svn: 355392
OpenPOWER on IntegriCloud