- Jan 31, 2020
-
-
Roland McGrath authored
This is never appropriate on Fuchsia and any future needs for system library dependencies of compiler-supplied runtimes will be addressed via .deplibs instead of driver hacks. Patch By: mcgrathr Differential Revision: https://reviews.llvm.org/D73734
-
David Tenty authored
The test fix added by "D39306: Fix CodeGen/AMDGPU/fcanonicalize-elimination.ll on FreeBSD 11.0" uses a test prefix which is not actually used in the FileCheck stanza. Thus the problem originally encountered still exists and the tests fails for host triples that contain "1.0", including AIX 7.1.0.
-
Mehdi Amini authored
This allows consumer to override in a cleaner way while still prevent them from hitting bug without knowing they run an unsupported configuration. Differential Revision: https://reviews.llvm.org/D73677
-
Matt Arsenault authored
This is already checked by the pattern subtarget predicate.
-
Matt Arsenault authored
There's not much value to this separate node from the intrinsic. Make the operand structure the same as the intrinsic, so we can reuse the same pattern for GlobalISel.
-
Nikita Popov authored
The IRBuilder will automatically add instructions to the worklist. Adding it manually is unnecessary, but may mess up worklist order.
-
Nikita Popov authored
In line with current conventions, create new instructions rather than modify two operands in place and performing manual worklist management. This should be NFC apart from possible worklist order changes.
-
Reid Kleckner authored
Saves these transitive includes:
-
Kostya Kortchinsky authored
Summary: The Secondary's cache needs to be released when the Combined's `releaseToOS` function is called (via `M_PURGE`) for example, which this CL adds. Additionally, if doing a forced release, we'll release the transfer batch class as well since now we can do that. There is a couple of other house keeping changes as well: - read the page size only once in the Secondary Cache `store` - remove the interval check for `CanRelease`: we are going to make that configurable via `mallopt` so this needs not be set in stone there. Reviewers: cferris, hctim, pcc, eugenis Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D73730
-
Raphael Isemann authored
-
Alex Zinenko authored
Summary: MLIR materializes various enumeration-based LLVM IR operands as enumeration attributes using ODS. This requires bidirectional conversion between different but very similar enums, currently hardcoded. Extend the ODS modeling of LLVM-specific enumeration attributes to include the name of the corresponding enum in the LLVM C++ API as well as the names of specific enumerants. Use this new information to automatically generate the conversion functions between enum attributes and LLVM API enums in the two-way conversion between the LLVM dialect and LLVM IR proper. Differential Revision: https://reviews.llvm.org/D73468
-
Sergey Dmitriev authored
Reviewers: ABataev Reviewed By: ABataev Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73738
-
hsmahesha authored
Summary: Added file headers for files which implement iterative lightweight scheduling strategies. Which is basically an exercise which I undertook in order to get used to LLVM development process. Reviewers: arsenm, vpykhtin, cdevadas Reviewed By: vpykhtin Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, javed.absar, kerbowa, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73417
-
Alex Langford authored
-
Siva Chandra Reddy authored
Also, other EXPECT_* and ASSERT_* macros have been extended to accept bool values. Reviewers: abrachet, gchatelet Subscribers: MaskRay, tschuett, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D73668
-
River Riddle authored
Differential Revision: https://reviews.llvm.org/D73504
-
River Riddle authored
Differential Revision: https://reviews.llvm.org/D73503
-
River Riddle authored
Summary: This revision switches over many operations to use the declarative methods for defining the assembly specification. This updates operations in the NVVM, ROCDL, Standard, and VectorOps dialects. Differential Revision: https://reviews.llvm.org/D73407
-
River Riddle authored
Summary: This revision add support, and testing, for generating the parser and printer from the declarative operation format. Differential Revision: https://reviews.llvm.org/D73406
-
River Riddle authored
Summary: This is the first revision in a series that adds support for declaratively specifying the asm format of an operation. This revision focuses solely on parsing the format. Future revisions will add support for generating the proper parser/printer, as well as transitioning the syntax definition of many existing operations. This was originally proposed here: https://llvm.discourse.group/t/rfc-declarative-op-assembly-format/340 Differential Revision: https://reviews.llvm.org/D73405
-
Jonas Devlieghere authored
When recording the result from the LLDB_RECORD_RESULT macro, we need to update the boundary so we capture the copy constructor. However, when called to record the this pointer of the (copy) constructor itself, the boundary should not be toggled, because it is called from the LLDB_RECORD_CONSTRUCTOR macro, which might be followed by other API calls. This manifested itself as an object encountered during replay that we hadn't seen before. The index-to-object mapping would return a nullptr and lldb would crash.
-
Sean Fertile authored
- Extends the comments related to function descriptors, noting how they are only used on AIX. - Changes the condition used to gate the creation of the current function symbol in AsmPrinter::SetupMachineFunction to reflect being AIX specific. The creation of the symbol is different because of AIXs linkage conventions, not because AIX uses function descriptors. Differential Revision: https://reviews.llvm.org/D73115
-
Fangrui Song authored
Summary: For -fpatchable-function-entry=N,0 -mbranch-protection=bti, after 9a24488c, we place the NOP sled after the initial BTI. ``` .Lfunc_begin0: bti c nop nop .section __patchable_function_entries,"awo",@progbits,f,unique,0 .p2align 3 .xword .Lfunc_begin0 ``` This patch adds a label after the initial BTI and changes the __patchable_function_entries entry to reference the label: ``` .Lfunc_begin0: bti c .Lpatch0: nop nop .section __patchable_function_entries,"awo",@progbits,f,unique,0 .p2align 3 .xword .Lpatch0 ``` This placement is compatible with the resolution in https://gcc.gnu.org/bugzilla/show_bug.cgi?id=92424 . A local linkage function whose address is not taken does not need a BTI. Placing the patch label after BTI has the advantage that code does not need to differentiate whether the function has an initial BTI. Reviewers: mrutland, nickdesaulniers, nsz, ostannard Subscribers: kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73680
-
Reid Kleckner authored
Avoid recursively instantiating importSeq. Use initializer list expansion to stamp out a single instantiation of std::tuple of the deduced sequence of types, and thread the error around that tuple type. Avoids needlessly instantiating std::tuple N-1 times. new time to compile: 0m25.985s old time to compile: 0m35.563s new obj size: 10,000kb old obj size: 12,332kb I found the slow TU by looking at ClangBuildAnalyzer results, and looked at -ftime-trace for the file in chrome://tracing to find this. Tested with: clang-cl, MSVC, and GCC. Reviewed By: martong Differential Revision: https://reviews.llvm.org/D73667
-
Huihui Zhang authored
Side notes from D73669, no need to guard the iteration on vectors, as it is explicitly looking for a ConstantVector/ConstantDataVector, which is not expected to be scalable at the moment. So, add the test only.
-
Saar Raz authored
'this' context was missing in instantiation of member requires clause.
-
Saar Raz authored
Do not attempt to check a dependent requires clause in a function constraint (may be triggered by, for example, DiagnoseUseOfDecl).
-
Saar Raz authored
We previously checked for containsUnexpandedParameterPack in CSEs by observing the property in the converted arguments of the CSE. This may not work if the argument is an expanded type-alias that contains a pack-expansion (see added test). Check the as-written arguments when determining containsUnexpandedParameterPack and isInstantiationDependent.
-
Huihui Zhang authored
Summary: Similar to issue D71445. Scalable vector should not be evaluated element by element. Add support to handle scalable vector UndefValue. Reviewers: sdesmalen, efriedma, apazos, huntergr, willlovett Reviewed By: efriedma Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73678
-
Danilo Carvalho Grael authored
Summary: Add remaining SVE2 mla indexed intrinsics: - sqdmlalb, sqdmlalt, sqdmlslb, sqdmlslt Add suffix _lanes and switch immediate types to i32 for all mla indexed intrinsics to align with ACLE builtin definitions. Reviewers: efriedma, sdesmalen, cameron.mcinally, c-rhodes, rengolin, kmclaughlin Subscribers: tschuett, kristof.beyls, hiraditya, rkruppe, arphaman, psnobl, llvm-commits, amehsan Tags: #llvm Differential Revision: https://reviews.llvm.org/D73633
-
Sergey Dmitriev authored
Summary: With OpenMP offloading host compilation is done in two phases to capture host IR that is passed to all device compilations as input. But it turns out that we currently run entire LLVM optimization pipeline on host IR on both compilations which may have unpredictable effects on the resulting code. This patch fixes this problem by disabling LLVM passes on the first compilation, so the host IR that is passed to device compilations will be captured right after front end. Reviewers: ABataev, jdoerfert, hfinkel Reviewed By: ABataev Subscribers: guansong, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D73721
-
Teresa Johnson authored
Summary: Disable the always importing of constants introduced in D70404 by default under a new internal option, since it is causing order of magnitude compile time regressions during the thin link. Will continue investigating why the regressions occur. Reviewers: evgeny777, wmi Subscribers: mehdi_amini, inglorion, hiraditya, steven_wu, dexonsmith, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D73724
-
Steven Wu authored
Summary: Preserve the old ABI for __cxa_exception and __cxa_dependent_exception on 64 bit platforms or ARM_EHABI platforms. After r276215, libunwind in llvm-project labels _Unwind_Exception to be double word aligned. That change implictly adds a padding before unwindHeader field in __cxa_exception and __cxa_dependent_exception. Preserve the same negative offsets in those struct by moving the padding to the beginning of the field. The assumption here is that if the ABI is not aware of the padding before unwindHeader and put the referenceCount/primaryException in there, no padding should exist before unwindHeader. Reviewers: EricWF, mclow.lists, ldionne, jroelofs, dexonsmith, rjmccall, compnerd, phosek, ahatanak Reviewed By: rjmccall Subscribers: hans, smeenai, kristof.beyls, christof, jkorous, ributzka, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D72543
-
Whitney Tsang authored
from FC0.ExitBlock to FC1.ExitBlock when proven safe. Summary: Currently LoopFusion give up when the second loop nest guard block or the first loop nest exit block is not empty. For example: if (0 < N) { for (int i = 0; i < N; ++i) {} x+=1; } y+=1; if (0 < N) { for (int i = 0; i < N; ++i) {} } The above example should be safe to fuse. This PR moves instructions in FC1 guard block (e.g. y+=1;) to FC0 guard block, or instructions in FC0 exit block (e.g. x+=1;) to FC1 exit block, which then LoopFusion is able to fuse them. Reviewer: kbarton, jdoerfert, Meinersbur, dmgreen, fhahn, hfinkel, bmahjour, etiotto Reviewed By: jdoerfert Subscribers: hiraditya, llvm-commits Tag: LLVM Differential Revision: https://reviews.llvm.org/D73641 -
Nikita Popov authored
fadd/fmul reductions without reassoc are lowered to VECREDUCE_STRICT_FADD/FMUL nodes, which don't have legalization support. Until that is in place, expand these intrinsics on ARM and AArch64. Other targets always expand the vector reduction intrinsics. Additionally expand fmax/fmin reductions without nonan flag on AArch64, as the backend asserts that the flag is present when lowering VECREDUCE_FMIN/FMAX. This fixes https://bugs.llvm.org/show_bug.cgi?id=44600. Differential Revision: https://reviews.llvm.org/D73135
-
Nathan James authored
-
Siva Chandra Reddy authored
I had removed it to verify a review comment, but forgot to put it back.
-
Roman Lebedev authored
-
Alexey Bataev authored
regions. If the lastprivate conditional is passed as shared in inner region, we shall check if it was ever changed and use this updated value after exit from the inner region as an update value.
-
Yonghong Song authored
The recommended optimization level for BPF programs is O2 since (1). BPF is running inside the kernel and linux kernel won't work at -O0 level, and (2). Verifier is not able to handle O0 code properly, e.g., potential large stack size and a lot of spills. But we should keep -O0 at least compiling. This patch fixed a bug in BPFMISimplifyPatchable phase where with -O0, a segmentation fault will happen for a simple program like: int test(int a, int b) { return a + b; } A test case is added to capture such a case. Differential Revision: https://reviews.llvm.org/D73681
-