- Oct 05, 2020
-
-
Nikita Popov authored
-
Sam McCall authored
Differential Revision: https://reviews.llvm.org/D88822
-
Mircea Trofin authored
Continuing from D88499, we can now model the normalization function as a virtual member of VirtRegAuxInfo. Note that the default (normalizeSpillWeight) is also used stand-alone in RAGreedy. Differential Revision: https://reviews.llvm.org/D88713
-
Saleem Abdulrasool authored
API Notes are a feature which allows annotation of headers by an auxiliary file that contains metadata for declarations pertaining to the associated module. This enables adding attributes to declarations without requiring modification of the headers, enabling finer grained control for library headers for consumers without having to modify external headers. Differential Revision: https://reviews.llvm.org/D88446 Reviewed By: Richard Smith, Marcel Hlopko
-
David Sherwood authored
I have fixed up a number of warnings resulting from TypeSize -> uint64_t casts and calling getVectorNumElements() on scalable vector types. I think most of the changes are fairly trivial except for those in DAGTypeLegalizer::SplitVecRes_MSTORE I've tried to ensure we create the MachineMemoryOperands in a sensible way for scalable vectors. I have added a CHECK line to the following test: CodeGen/AArch64/sve-split-store.ll that ensures no new warnings are added. Differential Revision: https://reviews.llvm.org/D86928
-
Alexander Shaposhnikov authored
This change fixes the build issue introduced by 32c8435e (detected by the buildbot fuchsia-x86_64-linux). Test plan: make check-all
-
Amara Emerson authored
If a CSEMIRBuilder query hits the instruction at the current insert point, move insert point ahead one so that subsequent uses of the builder don't end up with uses before defs. This fix also shows that AMDGPU was also affected by this bug often, but got away with it because it was using a G_IMPLICIT_DEF before the use. Differential Revision: https://reviews.llvm.org/D88605
-
Simon Pilgrim authored
Use m_Specific instead of m_Value followed by an equality check - we already do this for the similar folds above, it looks like an oversight in rG2b459fe7e1e where the original pattern match code looked a little different.
-
Amara Emerson authored
This reverts commit 2573cf3c. These seem to break some lit tests.
-
Alexander Shaposhnikov authored
This diff adds support for universal binaries to llvm-objcopy. Test plan: make check-all Differential revision: https://reviews.llvm.org/D88400
-
Qiu Chaofan authored
This reverts partial of a2fb5446 (actually, 2508ef01) about removing negated FP constant immediately if it has no uses. However, as discussed in bug 47517, there're cases when NegX is folded into constant from other places while NegY is removed by that line of code and NegX is equal to NegY. In these cases, NegX is deleted before used and crash happens. So revert the code and add necessary test case.
-
Simon Pilgrim authored
This was already #if'd out when it was added back in 2010 at rG18d7fc8fc6767 and has never been touched since.
-
Nikita Popov authored
This reverts commit a3caf7f6. The ReleaseLTO-g test-suite configuration has been failing to build since this commit, because clang segfaults while building 7zip.
-
Benjamin Kramer authored
-
Mehdi Amini authored
Fix the build for some toolchain and config.
-
Andrzej Warzynski authored
Currently Flang uses TextDiagnostic, TextDiagnosticPrinter & TestDiagnosticBuffer classes from Clang (more specifically, from libclangFrontend). This patch introduces simplified equivalents of these classes in Flang (i.e. it removes the dependency on libclangFrontend). Flang only needs these diagnostics classes for the compiler driver diagnostics. This is unlike in Clang in which similar diagnostic classes are used for e.g. Lexing/Parsing/Sema diagnostics. For this reason, the implementations introduced here are relatively basic. We can extend them in the future if this is required. This patch also enhances how the diagnostics are printed. In particular, this is the diagnostic that you'd get _before_ the changes introduced here (no text formatting): ``` $ bin/flang-new error: no input files ``` This is the diagnostic that you get _after_ the changes introduced here (in terminals that support it, the text is formatted - bold + red): ``` $ bin/flang-new flang-new: error: no input files ``` Tests are updated accordingly and options related to enabling/disabling color diagnostics are flagged as supported by Flang. Reviewed By: sameeranjoshi, CarolineConcatto Differential Revision: https://reviews.llvm.org/D87774
-
Joseph Huber authored
Reverting because detecting architecture size doesn't work on all platforms. This reverts commit eaf73293.
-
Cameron McInally authored
Differential Revision: https://reviews.llvm.org/D88707
-
Simon Pilgrim authored
Added missing test coverage for shl(add(and(lshr(x,c1),c2),y),c1) -> add(and(x,c2<<c1),shl(y,c1)) combine Rename tests as 'foo' and 'bar' isn't very extensible Added vector tests with undefs and nonuniform constants
-
Simon Pilgrim authored
If we know the shift amount is less than the bitwidth we should be able to convert this to a funnel shift
-
Simon Pilgrim authored
-
Louis Dionne authored
This reverts commit c7d4aa71. I am still investigating the issue, but it looks like that commit has an interaction with ld64 that causes new/delete weak re-exports not to work properly anymore. This is weird because this commit did not touch the exports of new/delete -- I am still investigating.
-
Christian Sigg authored
The previous code did the lowering to alloca, malloc, and aligned_malloc in a single class with different code paths that are somewhat difficult to follow. This change moves the common code to a base class and has a separte derived class per lowering target that contains the specifics. Reviewed By: ftynse Differential Revision: https://reviews.llvm.org/D88696
-
Michael Kruse authored
Motivated by D88183, this seeks to clarify the current loop nomenclature with added illustrations, examples for possibly unexpected situations (infinite loops not part of the "parent" loop, logical loops sharing the same header, ...), and clarification on what other sources may consider a loop. The current document also has multiple errors that are fixed here. Some selected errors: * Loops a defined as strongly-connected components. A component a partition of all nodes, i.e. a subloop can never be a component. That is, the document as it currently is only covers top-level loops, even it also uses the term SCC for subloops. * "a block can be the header of two separate loops at the same time" (it is considered a single loop by LoopInfo) * "execute before some interesting event happens" (some interesting event is not well-defined) Reviewed By: baziotis, Whitney Differential Revision: https://reviews.llvm.org/D88408
-
Wenlei He authored
As was brought up in D87169 by @craig.topper we shouldn't map llvm.sqrt to svml since there is a faster native instruction. https://software.intel.com/sites/landingpage/IntrinsicsGuide/#text=_mm_sqrt_p&expand=5824,5823,5356,5823,5825,5365,5356 Reviewed By: craig.topper Differential Revision: https://reviews.llvm.org/D88620
-
Joseph Huber authored
Summary: This patch adds an error to Clang that detects if OpenMP offloading is used between two architectures with incompatible pointer sizes. This ensures that the data mapping can be done correctly and solves an issue in code generation generating the wrong size pointer. This patch adds a new lit substitution, %omp_powerpc_triple that, if the system is 32-bit or 64-bit, sets the powerpc triple accordingly. This was required to fix some OpenMP tests that automatically populated the target architecture. Reviewers: jdoerfert Subscribers: cfe-commits guansong sstefan1 yaxunl delcypher Tags: OpenMP clang LLVM Differential Revision: https://reviews.llvm.org/D88594
-
Joachim Protze authored
The worker thread can start execution of the task before creation of the second task Fixes the spurious failure reported in https://reviews.llvm.org/D61657
-
Jonas Paulsson authored
Support VRI, VRR, VRS, VRV, VRX, VSI instruction formats with the .insn directive. Review: Ulrich Weigand Differential Revision: https://reviews.llvm.org/D88357
-
Sam Tebbs authored
This folds a select_cc or select(set_cc) of a max or min vector reduction with a scalar value into a VMAXV or VMINV. Differential Revision: https://reviews.llvm.org/D87836
-
Nicolas Vasilache authored
This canonicalization is the counterpart of MemRefCastOp -> LinalgOp but on tensors. This is needed to properly canonicalize post linalg tiling on tensors. Differential Revision: https://reviews.llvm.org/D88729
-
Florian Hahn authored
Update the code responsible for deleting VPBBs and recipes to properly update users and release operands. This is another preparation for D84680 & following patches towards enabling modeling def-use chains in VPlan.
-
Simon Pilgrim authored
[Parser] ParseMicrosoftAsmStatement - Replace bit '|' operator with logical '||' operator. (PR47071) Fixes static analysis warning.
-
Haojian Wu authored
This will be used in rename for doing basic name validation. Differential Revision: https://reviews.llvm.org/D88810
-
David Green authored
This just reruns the update script to add the new [[LOOP0:!llvm.loop !.*]] checks to remove them from other diffs.
-
Simon Pilgrim authored
Fixes OSS Fuzz #26135
-
Gabor Marton authored
Differential Revision: https://reviews.llvm.org/D88665
-
Carl Ritson authored
-
Dmitry Preobrazhensky authored
This change implements generation of a function which may be used by a backend to check if a given instruction is supported for a specific subtarget. Reviewers: sdesmalen Differential Revision: https://reviews.llvm.org/D88214
-
Haojian Wu authored
-
Haojian Wu authored
We should not capture the type if the function return type is undeduced. Reviewed By: adamcz Differential Revision: https://reviews.llvm.org/D87350
-