summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [AMDGPU] Match v_swap_b32Stanislav Mekhanoshin2018-10-293-0/+739
| | | | | | Differential Revision: https://reviews.llvm.org/D52677 llvm-svn: 345514
* [X86] Enable the MachineVerifier by defaultFrancis Visoiu Mistrih2018-10-2910-18/+23
| | | | | | | | | | | | | | | The machine verifier was disabled for x86 by default. There are now only 9 tests failing, compared to what previously was between 20 and 30. This is a good opportunity to file bugs for all the remaining issues, then explicitly disable the failing tests and enabling the machine verifier by default. This allows us to avoid adding new tests that break the verifier. PR27481 llvm-svn: 345513
* [Intrinsic] Signed and Unsigned Saturation Subtraction IntirnsicsLeonard Chan2018-10-2916-41/+546
| | | | | | | | | | | | Add an intrinsic that takes 2 integers and perform saturation subtraction on them. This is a part of implementing fixed point arithmetic in clang where some of the more complex operations will be implemented as intrinsics. Differential Revision: https://reviews.llvm.org/D53783 llvm-svn: 345512
* [AArch64] Return address signing B key supportLuke Cheeseman2018-10-292-3/+43
| | | | | | | | | | | - Add support to generate AUTIBSP, PACIBSP, RETAB instructions for return address signing - The key used to sign the function is controlled by the function attribute "sign-return-address-key" Differential Revision: https://reviews.llvm.org/D51427 llvm-svn: 345511
* [AST] Only store the needed data in SwitchStmtBruno Ricci2018-10-299-78/+232
| | | | | | | | | | | | | | | | Don't store the data for the init statement and condition variable if not needed. This cuts the size of SwitchStmt by up to 2 pointers. The order of the children is intentionally kept the same. Also use the newly available space in the bit-fields of Stmt to store the bit representing whether all enums have been covered instead of using a PointerIntPair. Differential Revision: https://reviews.llvm.org/D53714 Reviewed By: rjmccall llvm-svn: 345510
* [OpenMP][NVPTX] Use single loops when generating code for distribute ↵Gheorghe-Teodor Bercea2018-10-2913-213/+529
| | | | | | | | | | | | | | | | parallel for Summary: This patch adds a new code generation path for bound sharing directives containing distribute parallel for. The new code generation scheme applies to chunked schedules on distribute and parallel for directives. The scheme simplifies the code that is being generated by eliminating the need for an outer for loop over chunks for both distribute and parallel for directives. In the case of distribute it applies to any sized chunk while in the parallel for case it only applies when chunk size is 1. Reviewers: ABataev, caomhin Reviewed By: ABataev Subscribers: jholewinski, guansong, cfe-commits Differential Revision: https://reviews.llvm.org/D53448 llvm-svn: 345509
* [LLVM-C] Add Builder Bindings to Common Memory IntrinsicsRobert Widmann2018-10-292-0/+53
| | | | | | | | | | | | | | Summary: Add IRBuilder bindings for memmove, memcpy, and memset. Reviewers: whitequark, deadalnix Reviewed By: whitequark Subscribers: harlanhaskins, llvm-commits Differential Revision: https://reviews.llvm.org/D53555 llvm-svn: 345508
* [OpenMP][NVPTX] Enable default scheduling for parallel for in non-SPMD cases.Gheorghe-Teodor Bercea2018-10-292-7/+30
| | | | | | | | | | | | | | Summary: This patch enables the choosing of the default schedule for parallel for loops even in non-SPMD cases. Reviewers: ABataev, caomhin Reviewed By: ABataev Subscribers: jholewinski, guansong, cfe-commits Differential Revision: https://reviews.llvm.org/D53443 llvm-svn: 345507
* [AST] Check that GNU range case statements are correctly imported.Bruno Ricci2018-10-292-0/+16
| | | | | | | | | | The test for case statements did not cover GNU range case statements. Differential Revision: https://reviews.llvm.org/D53610 Reviewed By: rjmccall llvm-svn: 345506
* [OPENMP] Do not capture private loop counters.Alexey Bataev2018-10-2910-31/+116
| | | | | | | | If the loop counter is not declared in the context of the loop and it is private, such loop counters should not be captured in the outlined regions. llvm-svn: 345505
* [git/svn] Ignore Visual Studio's CMakeSettings.json.Michael Kruse2018-10-291-0/+2
| | | | | | | | When using Visual Studio's built-in support for CMake, the CMakeSettings.json contains the build configurations (build dir, generator, toolchain, cmake variables, etc). It is specific to the build machine, therefore should not be versioned. Differential Revision: https://reviews.llvm.org/D53775 llvm-svn: 345504
* [llvm-objdump] Don't crash when using `-a` on non-archivesJames Henderson2018-10-292-4/+29
| | | | | | | | | | | | | This fixes PR39402. The crash was caused when dereferencing nullptr in DumpObject and printArchiveChild. Reviewed By: jhenderson Differential Revision: https://reviews.llvm.org/D53690 Patch by Xing GUO llvm-svn: 345503
* Add the isStaticLocal() AST matcher for matching on local static variables.Aaron Ballman2018-10-294-0/+35
| | | | | | Patch by Joe Ranieri. llvm-svn: 345502
* [X86] Remove outdated testFrancis Visoiu Mistrih2018-10-291-288/+0
| | | | | | | | | | | This test breaks the X86 MachineVerifier. It looks like the MIR part is completely useless. The original author suggests that it can be removed. Differential Revision: https://reviews.llvm.org/D53767 llvm-svn: 345501
* [llvm-mca] Lower to mca::Instructon before the pipeline is run.Andrea Di Biagio2018-10-297-59/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | Before this change, the lowering of instructions from llvm::MCInst to mca::Instruction was done as part of the first stage of the pipeline (i.e. the FetchStage). In particular, FetchStage was responsible for picking the next instruction from the source sequence, and lower it to an mca::Instruction with the help of an object of class InstrBuilder. The dependency on InstrBuilder was problematic for a number of reasons. Class InstrBuilder only knows how to lower from llvm::MCInst to mca::Instruction. That means, it is hard to support a different scenario where instructions in input are not instances of class llvm::MCInst. Even if we managed to specialize InstrBuilder, and generalize most of its internal logic, the dependency on InstrBuilder in FetchStage would have caused more troubles (other than complicating the pipeline logic). With this patch, the lowering step is done before the pipeline is run. The pipeline is no longer responsible for lowering from MCInst to mca::Instruction. As a consequence of this, the FetchStage no longer needs to interact with an InstrBuilder. The mca::SourceMgr class now simply wraps a reference to a sequence of mca::Instruction objects. This simplifies the logic of FetchStage, and increases the usability of it. As a result, on a debug build, we see a 7-9% speedup; on a release build, the speedup is around 3-4%. llvm-svn: 345500
* [llvm-mca][UpdateTestChecks] Don't try to align blocks that have already ↵Greg Bedwell2018-10-291-4/+8
| | | | | | | | been subject to alignment in update_mca_test_checks.py This fixes PR39466. llvm-svn: 345499
* [LLDB] - Fix outdated comment. NFC.George Rimar2018-10-291-2/+1
| | | | llvm-svn: 345498
* [OpenCL] Fix serialization of OpenCLExtensionDeclsAndrew Savonichev2018-10-293-36/+55
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: I recently discovered that adding the following code into `opencl-c.h` causes failure of `test/Headers/opencl-c-header.cl`: ``` #pragma OPENCL EXTENSION cl_my_ext : begin void cl_my_ext_foobarbaz(); #pragma OPENCL EXTENSIOn cl_my_ext : end ``` Clang crashes at the assertion is `ASTReader::getGlobalSubmoduleID()`: ``` assert(I != M.SubmoduleRemap.end() && "Invalid index into submodule index remap"); ``` The root cause of the problem that to deserialize `OPENCL_EXTENSION_DECLS` section `ASTReader` needs to deserialize a Decl contained in it. In turn, deserializing a Decl requires information about whether this declaration is part of a (sub)module, but this information is not read yet because it is located further in a module file. Reviewers: Anastasia, yaxunl, JDevlieghere Reviewed By: Anastasia Subscribers: sidorovd, cfe-commits, asavonic Differential Revision: https://reviews.llvm.org/D53200 llvm-svn: 345497
* [ASTImporter] Import overrides before importing the rest of the chainGabor Marton2018-10-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | Summary: During method import we check for structural eq of two methods. In the structural eq check we check for their isVirtual() flag. That flag, however, may depend on the number of overrides. Before this change we imported the overrides *after* we had imported the rest of the redecl chain. So, during the import of another decl from the chain IsVirtual() gave false result. Writing tests for this is not really possible, because there is no way to remove an overridden method via the AST API. (We should access the private ASTContext::OverriddenMethods container.) Also, we should do the remove in the middle of the import process. Reviewers: a_sidorin, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, cfe-commits Differential Revision: https://reviews.llvm.org/D53704 llvm-svn: 345496
* [llvm-objdump] Add '--full-contents' as alias for '-s'James Henderson2018-10-292-1/+52
| | | | | | | | | | | | This fixes PR39404. Reviewed By: jhenderson Patch by Xing Guo Differential Revision: https://reviews.llvm.org/D53576 llvm-svn: 345495
* Mark test/tsan/getline_nohang as XFAIL for NetBSDKamil Rytarowski2018-10-291-0/+3
| | | | llvm-svn: 345493
* Disable the GNU strerror_r TSan test for NetBSDKamil Rytarowski2018-10-291-5/+3
| | | | | | | | | Revert older change that was incorrect in this test. It was already reverted in the past after an attempt to port it to Darwin. While there, mark FreeBSD as unsupported as well. llvm-svn: 345492
* [ARM][NFC] Fix test inlineasm-X-allocation.llSjoerd Meijer2018-10-291-15/+14
| | | | | | Differential Revision: https://reviews.llvm.org/D53748 llvm-svn: 345491
* Mark test/tsan/ignore_lib5 as unsupported for NetBSDKamil Rytarowski2018-10-291-1/+3
| | | | | | ReadProcMaps() on NetBSD does not handle >=1MB of memory layout information. llvm-svn: 345490
* [XRay] Guard call to postCurrentThreadFCT()Dean Michael Berris2018-10-291-5/+16
| | | | | | | | | | | | | | | | | | | | | Summary: Some cases where `postCurrentThreadFCT()` are not guarded by our recursion guard. We've observed that sometimes these can lead to deadlocks when some functions (like memcpy()) gets outlined and the version of memcpy is XRay-instrumented, which can be materialised by the compiler in the implementation of lower-level components used by the profiling runtime. This change ensures that all calls to `postCurrentThreadFCT` are guarded by our thread-recursion guard, to prevent deadlocks. Reviewers: mboerger, eizan Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53805 llvm-svn: 345489
* [X86] Force floating point values in constant pool decoding to print in ↵Craig Topper2018-10-2949-491/+492
| | | | | | | | | | scientific notation so they can't be confused with integers. When the floating point constants are whole numbers they have no decimal point so look like integers, but mean something very different in something like an 'and' instruction. Ideally we would just print a decimal point and a 0, but I couldn't see how to make APFloat::toString do that. llvm-svn: 345488
* Revert "Support for groups of attributes in #pragma clang attribute"Erik Pilkington2018-10-299-141/+66
| | | | | | | | | This reverts commit r345486. Looks like it causes some old versions of GCC to crash, I'll see if I can work around it and recommit... llvm-svn: 345487
* Support for groups of attributes in #pragma clang attributeErik Pilkington2018-10-299-66/+141
| | | | | | | | | | | | | | | | | | This commit enables pushing an empty #pragma clang attribute push, then adding multiple attributes to it, then popping them all with #pragma clang attribute pop, just like #pragma clang diagnostic. We still support the current way of adding these, #pragma clang attribute push(__attribute__((...))), by treating it like a combined push/attribute. This is needed to create macros like: DO_SOMETHING_BEGIN(attr1, attr2, attr3) // ... DO_SOMETHING_END rdar://45496947 Differential revision: https://reviews.llvm.org/D53621 llvm-svn: 345486
* [XRay] Use more portable control blockDean Michael Berris2018-10-293-60/+75
| | | | | | | | | | | | | | | | | | | | Summary: In D53560, we assumed a specific layout for memory without using an explicit structure. This follow-up change uses more portable layout control by using unions in a struct, and consolidating the memory management code in the buffer queue. We also take the opportunity to improve the documentation on the types and operations, along with simplifying some of the logic in the buffer queue implementation. Reviewers: mboerger, eizan Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53802 llvm-svn: 345485
* [X86] Recognize constant splats in LowerFCOPYSIGN.Craig Topper2018-10-282-7/+5
| | | | llvm-svn: 345484
* [X86] Add test case to show failure to handle splat vectors in the constant ↵Craig Topper2018-10-281-0/+20
| | | | | | check in LowerFCOPYSIGN. llvm-svn: 345483
* Revert "Revert "DebugInfo: reduce DIE range verification on object files""Saleem Abdulrasool2018-10-283-15/+107
| | | | | | | This reverts commit 836c763dadbd9478fa35b1a291a38bf17aa206ba. Default initialize the values that MSAN caught. llvm-svn: 345482
* [SelectionDAG] Fix bad indentation. NFCCraig Topper2018-10-281-4/+4
| | | | llvm-svn: 345481
* [llvm-exegesis] Fix SNB counter definition and handling.Clement Courbet2018-10-281-3/+4
| | | | | | | | | | | | Summary: SNB is the only one that has P23 as a single proc res. Reviewers: gchatelet Subscribers: tschuett, llvm-commits Differential Revision: https://reviews.llvm.org/D53766 llvm-svn: 345480
* AST: extend MS decoration handling for extended vectorsSaleem Abdulrasool2018-10-282-12/+18
| | | | | | | | | | | | | | | | | We correctly handled extended vectors of non-floating point types. However, we have the Intel style builtins which MSVC also supports which do overlap in sizes with the floating point extended vectors. This would result in overloading of floating point extended vector types which matched sizes (e.g. <3 x float> would be backed by a <4 x float> and thus match sizes) to be mangled similarly. Extended vectors are a clang extension which live outside of the builtins, so mangle them all similarly. This change just extends the current scheme to treat floating point types similar to the way that we treat other types currently. This now allows the swift runtime to be built for Windows again. llvm-svn: 345479
* [TargetLowering] Move i64/vXi64 to f32/vXf32 UINT_TO_FP handling to ↵Simon Pilgrim2018-10-282-56/+72
| | | | | | TargetLowering::expandUINT_TO_FP. llvm-svn: 345478
* [AST] Fix an use-of-uninitialized bug introduced in CaseStmtBruno Ricci2018-10-281-2/+2
| | | | | | SwitchCaseBits.CaseStmtIsGNURange needs to be initialized first. llvm-svn: 345477
* [X86][NFC] sse42-schedule.ll: disable XOP for BdVer2 testsRoman Lebedev2018-10-281-3/+3
| | | | | | Else we are clearly testing the wrong instruction. llvm-svn: 345476
* [X86][NFC] sse41-schedule.ll: disable XOP for BdVer2 testsRoman Lebedev2018-10-281-3/+3
| | | | | | Else we are clearly testing the wrong instruction. llvm-svn: 345475
* [X86][NFC] sse2-schedule.ll: disable XOP for BdVer2 testsRoman Lebedev2018-10-281-13/+13
| | | | | | Else we are clearly testing the wrong instruction. llvm-svn: 345474
* [VectorLegalizer] Enable TargetLowering::expandFP_TO_UINT support.Simon Pilgrim2018-10-286-182/+185
| | | | | | | | Add vector support to TargetLowering::expandFP_TO_UINT. This exposes an issue in X86TargetLowering::LowerVSELECT which was assuming that the select mask was the same width as the LHS/RHS ops - as long as the result is a sign splat we can easily sext/trunk this. llvm-svn: 345473
* [AST] Don't store data for GNU range case statement if not neededBruno Ricci2018-10-289-75/+213
| | | | | | | | | | | | | | | | Don't store the data for case statements of the form LHS ... RHS if not needed. This cuts the size of CaseStmt by 1 pointer + 1 SourceLocation in the common case. Also use the newly available space in the bit-fields of Stmt to store the keyword location of SwitchCase and move the small accessor SwitchCase::getSubStmt to the header. Differential Revision: https://reviews.llvm.org/D53609 Reviewed By: rjmccall llvm-svn: 345472
* [XRay] Refcount backing store for buffersDean Michael Berris2018-10-282-8/+67
| | | | | | | | | | | | | | | | | | | | Summary: This change implements the ref-counting for backing stores associated with generational buffer management. We do this as an implementation detail of the buffer queue, instead of exposing this to the interface. This change allows us to keep the buffer queue interface and usage model the same. Depends on D53551. Reviewers: mboerger, eizan Subscribers: jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D53560 llvm-svn: 345471
* Reapply Pass the nopie flag to the linker when linking with -pg.Brad Smith2018-10-282-2/+2
| | | | llvm-svn: 345470
* [DAGCombiner] Better constant vector support for FCOPYSIGN.Craig Topper2018-10-282-18/+6
| | | | | | | | Enable constant folding when both operands are vectors of constants. Turn into FNEG/FABS when the RHS is a splat constant vector. llvm-svn: 345469
* [X86] Add test cases showing missed opportunities for optimizing vector ↵Craig Topper2018-10-281-0/+84
| | | | | | fcopysign when the RHS is a splat constant. llvm-svn: 345468
* [utils] collect_and_build_with_pgo.py: revert part already fixed in rL345461Fangrui Song2018-10-271-8/+8
| | | | | | The change was inadvertently included in my last commit. llvm-svn: 345467
* [utils] Fix _run_benchmark in collect_and_build_with_pgo.pyFangrui Song2018-10-271-15/+8
| | | | | | | | | | | | Summary: Also fix a FIXME in _build_stage1_clang: clang llvm-profdata profile are sufficient Reviewers: george.burgess.iv Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D53795 llvm-svn: 345466
* Revert r344172: [LV] Add a new reduction pattern matchRenato Golin2018-10-273-737/+7
| | | | | | | | This patch has caused fast-math issues in the reduction pattern. Will re-work and land again. llvm-svn: 345465
* [AST] Only store the needed data in IfStmtBruno Ricci2018-10-2710-104/+314
| | | | | | | | | | | | | | | | | | | | | | | | Only store the needed data in IfStmt. This cuts the size of IfStmt by up to 3 pointers + 1 SourceLocation. The order of the children is intentionally kept the same even though it would be more convenient to put the optional trailing objects last. Additionally use the newly available space in the bit-fields of Stmt to store the location of the "if". The result of this is that for the common case of an if statement of the form: if (some_cond) some_statement the size of IfStmt is brought down to 8 bytes + 2 pointers, instead of 8 bytes + 5 pointers + 2 SourceLocation. Differential Revision: https://reviews.llvm.org/D53607 Reviewed By: rjmccall llvm-svn: 345464
OpenPOWER on IntegriCloud