- Jan 16, 2020
-
-
Benjamin Kramer authored
This reverts commit 4624a1e8. Causing problems downstream.
-
Teresa Johnson authored
I noticed one bot failure due to 24a00ef2 because the wildcard matching was not working as intended, fixed it to act similar to other checks of CGSCCToFunctionPassAdaptor.
-
evgeny authored
This patch imports constant variables even when they can't be internalized (which results in promotion). This offers some extra constant folding opportunities. Differential revision: https://reviews.llvm.org/D70404
-
Arkady Shlykov authored
Summary: Current peeling implementation bails out in case of loop nests. The patch introduces a field in TargetTransformInfo structure that certain targets can use to relax the constraints if it's profitable (disabled by default). Also additional option is added to enable peeling manually for experimenting and testing purposes. Reviewers: fhahn, lebedev.ri, xbolva00 Reviewed By: xbolva00 Subscribers: xbolva00, hiraditya, zzheng, llvm-commits Differential Revision: https://reviews.llvm.org/D70304
-
Sanjay Patel authored
As discussed in the motivating PR44509: https://bugs.llvm.org/show_bug.cgi?id=44509 ...we can end up with worse code using fast-math than without. This is because the reassociate pass greedily transforms fsub into fneg/fadd and apparently (based on the regression tests seen here) expects instcombine to clean that up if it wasn't profitable. But we were missing this fold: (X - Y) - Z --> X - (Y + Z) There's another, more specific case that I think we should handle as shown in the "fake" fneg test (but missed with a real fneg), but that's another patch. That may be tricky to get right without conflicting with existing transforms for fneg. Differential Revision: https://reviews.llvm.org/D72521
-
Nicolas Vasilache authored
-
Nicolas Vasilache authored
Summary: This diff moves the conversion pass declaration closer to its definition and makes the namespacing of passes consistent with the rest of the infrastructure (i.e. `mlir::linalg::createXXXPass` -> `mlir::createXXXPass`). Reviewers: ftynse, jpienaar, mehdi_amini Subscribers: rriddle, burmako, shauheen, antiagainst, arpith-jacob, mgester, lucyrfox, aartbik, liufengdb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72766
-
Lang Hames authored
This patch makes the target triple available via the LLJIT interface, and moves the IRTransformLayer from LLLazyJIT down into LLJIT. Together these changes make it easier to use the lazyReexports utility with LLJIT, and to apply IR transforms to code as it is compiled in LLJIT (rather than requiring transforms to be applied manually before code is added). An code example is added in llvm/examples/LLJITExamples/LLJITWithLazyReexports
-
Lang Hames authored
A bug in the existing implementation meant that lazyReexports would not work if the aliased name differed from the alias's name, i.e. all lazy reexports had to be of the form (lib1, name) -> (lib2, name). This patch fixes the issue by capturing the alias's name in the NotifyResolved callback. To simplify this capture, and the LazyCallThroughManager code in general, the NotifyResolved callback is updated to use llvm::unique_function rather than a custom class. No test case yet: This can only be tested at runtime, and the only in-tree client (lli) always uses aliases with matching names. I will add a new LLJIT example shortly that will directly test the lazyReexports API and the non-trivial alias use case.
-
- Jan 15, 2020
-
-
Hubert Tong authored
Summary: This patch implements `formatv()` formatting for `dwarf::LineNumberOps` and makes use of it for the `llvm-dwarfdump --debug-line` dump. Previously, unknown line number standard opcodes would lead to undefined behaviour. The code would attempt to format the data pointer of an empty `StringRef` (a null pointer) using `%s`. According to the description for `format()`, use of that interface carries the "risk of `printf`". Passing a null pointer in place of an array to a C library function results in undefined behaviour. Reviewers: jhenderson, daltenty, stevewan Reviewed By: jhenderson Subscribers: aprantl, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72369
-
Hubert Tong authored
Summary: The IBM XL compiler uses `-qfuncsect` for `-ffunction-sections`. The comment about sanitizers and `-f[no-]function-sections` is corrected also, as it is pertinent to this patch. The sanitizer-related use of `-fno-function-sections` is associated with powerpc64le, a target for which there is an IBM XL compiler, so that use is updated in this patch to apply `-qnofuncsect` in case a build using the XL compiler is viable on that platform. This patch has been verified with the XL compiler on AIX only. Reviewers: daltenty, stevewan Reviewed By: daltenty Subscribers: mgorny, steven.zhang, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D72335
-
Nicolas Vasilache authored
-
Georgii Rymar authored
After recent changes (D71872) in yaml2obj, it is possible so cleanup testing of the SHT_RELR sections. Differential revision: https://reviews.llvm.org/D71874
-
Teresa Johnson authored
This restores 2af97be8 (reverted at 6288f86e), with all the fixes I had applied at the time, along with a new fix for non-determinism in the ordering of a couple of passes due to being accessed as parameters on the same call. I've also added --dump-input=fail to the new tests so I can more thoroughly fix any additional failures.
-
Kadir Cetinkaya authored
-
Nico Weber authored
-
Simon Tatham authored
This is applied to the vector types defined in <arm_mve.h> for use with the intrinsics for the ARM MVE vector architecture. Its purpose is to inhibit lax vector conversions, but only in the context of overload resolution of the MVE polymorphic intrinsic functions. This solves an ambiguity problem with polymorphic MVE intrinsics that take a vector and a scalar argument: the scalar argument can often have the wrong integer type due to default integer promotions or unsuffixed literals, and therefore, the type of the vector argument should be considered trustworthy when resolving MVE polymorphism. As part of the same change, I've added the new attribute to the declarations generated by the MveEmitter Tablegen backend (and corrected a namespace issue with the other attribute while I was there). Reviewers: aaron.ballman, dmgreen Reviewed By: aaron.ballman Subscribers: kristof.beyls, JDevlieghere, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72518
-
Kadir Cetinkaya authored
Summary: Moves type/returntype into its own line as it is more readable in cases where the type is long. Also gives parameter lists a heading, `Parameters:` to make them stand out. Leaves the `right arrow` instead of `Returns: ` before Return Type to make output more symmetric. ``` function foo Returns: ret_type Parameters: - int x ``` vs ``` function foo 🡺 ret_type Parameters: - int x ``` Reviewers: sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72623
-
Kadir Cetinkaya authored
Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72622
-
Nico Weber authored
-
Nicolas Vasilache authored
Summary: This diff removes the dependency of LinalgOps and VectorOps on EDSCs. Reviewers: jpienaar, ftynse Reviewed By: ftynse Subscribers: merge_guards_bot, mgorny, mehdi_amini, rriddle, burmako, shauheen, antiagainst, csigg, arpith-jacob, mgester, lucyrfox, herhut, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D72481
-
Alex Richardson authored
This assertion was added as part of D70659 but did not account for .bss input sections. I noticed that this assert was incorrectly triggering while building FreeBSD for MIPS64. Fixed by relaxing the assert to also account for SHT_NOBITS input sections and adjust the test mips-jalr-non-function.s to link a file with a .bss section first. Reviewed By: MaskRay, grimar Differential Revision: https://reviews.llvm.org/D72567
-
Kadir Cetinkaya authored
Summary: This currently populates only the Name with the expression's type and Value if expression is evaluatable. Fixes https://github.com/clangd/clangd/issues/56 Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, usaxena95, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D72500
-
Ulrich Weigand authored
Remove a bit of code duplication between CreateFCmp and CreateFCmpS by creating a shared helper function.
-
Alex Zinenko authored
The current implementation of the LLVM-to-MLIR translation could not handle functions used as constant values in instructions. The handling is added trivially as `llvm.mlir.constant` can define constants of function type using SymbolRef attributes, which works even for functions that have not been declared yet.
-
Matt Arsenault authored
Bitcast only really applies between scalars and vectors. Implement as an unmerge and remerge. The test needs to tolerate failure since one of the unmerges currently fails to legalize.
-
Matt Arsenault authored
The 16 bank LDS case is complicated due to using multiple instructions. If I attempt to write a pattern for it, the generated selector incorrectly places the copy to m0 after the first instruction, so that needs to be separately addressed. Also fix not gluing the copy to m0 to the second operation in the second half of the 16 bank lowering.
-
Matt Arsenault authored
This is nearly the same as G_ZEXT.
-
Matt Arsenault authored
Some register related machinery relies on uniqued, static pointers for register classes and subregisters, so try to make sure these are never copied.
-
Matt Arsenault authored
These return temporary Optional<> values which are immediately destroyed. I'm not sure why no sanitizers seem to have caught this, but I encountered crashes on these in a future patch.
-
Matt Arsenault authored
The maps for dealing with the relationships between different register classes and subregister indexes rely on unique pointers for every class/index. By constructing a second copy of CodeGenRegBank, two different pointer values existed for a given subregister depending on where you were querying. Use the existing CodeGenRegBank owned by the CodeGenTarget instead of constructing a second copy. This avoids incorrectly failing map lookups in a future change.
-
Luís Marques authored
Summary: Use an `i` constraint in the test, to correctly trigger the code for handling the `z` constraint modifier. Reviewers: asb, lenary, jrtc27 Reviewed By: lenary, jrtc27 Tags: #llvm Differential Revision: https://reviews.llvm.org/D72134
-
Soumi Manna authored
The core issue is that simple-template-id is ambiguous between class-name and type-name. This fixes PR43966.
-
Djordje Todorovic authored
Draw a plot showing the difference in debug loc coverage on two files provided. Differential Revision: https://reviews.llvm.org/D71870
-
Nemanja Ivanovic authored
These intrinsics and the corresponding ISD nodes were recently added. PPC has instructions that do this for vectors. Legalize them and add patterns to emit the satuarting instructions. Differential revision: https://reviews.llvm.org/D71940
-
Hans Wennborg authored
and clear the release notes.
-
Simon Pilgrim authored
Revert rG6078f2fe - "[AArch64][GlobalISel]: Support @llvm.{return,frame}address selection." These intrinsics expand to a variable number of instructions so just like in ISelLowering.cpp we use custom code to deal with them. Committing Tim's original patch. Differential Revision: https://reviews.llvm.org/D65656 ---- Breaks EXPENSIVE_CHECKS builds.
-
Zakk Chen authored
if users don't specific -mattr, the default target-feature come from IR attribute. Reviewers: lenary, asb Reviewed By: lenary, asb Tags: #llvm Differential Revision: https://reviews.llvm.org/D70837
-
Simon Pilgrim authored
-