- Apr 24, 2020
-
-
Vedant Kumar authored
When using reversedInstructionsWithoutDebug to construct a range from a pair of MachineInstrBundleIterators, the range unexpectedly leaves out an element. This results in mis-optimization as @mstorsjo points out in https://reviews.llvm.org/D78157. The problem is that when we convert a MachineInstrBundleIterator to a reverse iterator, the result gets incremented: MachineInstrBundleIterator(++I.getReverse()) The comment there explains that the "resulting iterator will dereference ... to the previous node, which is somewhat unexpected; but converting the two endpoints in a range will give the same range in reverse". This makes it hard to understand what reversedInstructionsWithoutDebug will do: I've removed the helper to prevent similar mistakes in the future.
-
Adrian Prantl authored
This patch fixes a bug when synthesizing an ObjC property from -gmodules debug info. Because the method declaration that is injected via the non-modular property implementation is not added to the ObjCInterfaceDecl's lookup pointer, a second copy of the accessor would be generated when processing the ObjCPropertyDecl. This can be avoided by finding the existing method decl in ClangExternalASTSourceCallbacks::FindExternalVisibleDeclsByName() and adding it to the LookupPtr. Differential Revision: https://reviews.llvm.org/D78333
-
Mircea Trofin authored
Reviewers: dblaikie, craig.topper Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78794
-
Craig Topper authored
This intrinsic isn't overloaded so we should query with types. Doing so causes the backend to miss the intrinsic and not codegen it. This eventually leads to a linker error.
-
Sanjay Patel authored
Values named 'tmp' can cause problems for the auto-generated check script.
-
Stella Laurenzo authored
Subscribers: mehdi_amini, rriddle, jpienaar, shauheen, antiagainst, nicolasvasilache, arpith-jacob, mgester, lucyrfox, liufengdb, Joonsoo, grosul1, frgossen, Kayjukh, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78774
-
Simon Pilgrim authored
-
Simon Pilgrim authored
We only require to include MCRegister.h and SmallVector.h.
-
Christopher Tetreault authored
Summary: - Whether or not a vector is scalable is a function of its type. Since all instances of ScalableVectorType will have true for this value and all instances of FixedVectorType will have false for this value, there is no need to store it as a class member. Reviewers: efriedma, fpetrogalli, kmclaughlin Reviewed By: fpetrogalli Subscribers: tschuett, hiraditya, rkruppe, psnobl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78601
-
Craig Topper authored
[CostModel][X86] Account for splitting cost when vector zext/sext type legalize to the same size vector.
-
Florian Hahn authored
This patch slightly improves the formatting of the debug output, adds a few missing outputs and makes some existing outputs more consistent with the rest.
-
Alexandre Ganea authored
Differential Revision: https://reviews.llvm.org/D78775
-
Samuel Thibault authored
The current code for GNU/Linux is actually completely generic, and can be moved to ToolChains/Gnu.cpp, so that it can benefit GNU/Hurd and GNU/kFreeBSD. Reviewed By: MaskRay, phosek Differential Revision: https://reviews.llvm.org/D73845
-
Mircea Trofin authored
Summary: This simplifies testing in scenarios where we want to set up module-wide analyses for inlining. The patch enables treating inlining and its function cleanups, as a module pass. The alternative would be for tests to describe the pipeline, which is tedious and adds maintenance overhead. Reviewers: davidxl, dblaikie, jdoerfert, sstefan1 Subscribers: hiraditya, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78512
-
Florian Hahn authored
There is no need to check if the starting access for is a write clobber and all of its uses have already been checked.
-
Sanjay Patel authored
As discussed in PR45478: https://bugs.llvm.org/show_bug.cgi?id=45478 ...propagating FMF from the outer (second) call is not correct, so intersect them instead. I suspect we could do better (see TODO comment), but mismatched FMF is probably too rare to care about. Differential Revision: https://reviews.llvm.org/D78631
-
Jonas Devlieghere authored
This patch ensures we don't crash in GetSoftwareBreakpointTrapOpcode for not-yet-supported architectures but rather continue with degraded behavior. I found the issue in the context of an invalid ArchSpec, which should be handled further up the chain. In this patch I've also added an assert to cover that, so we can still catch those issues. Differential revision: https://reviews.llvm.org/D78588
-
Pablo Barrio authored
Summary: It is important to emit HINT instructions instead of PAC ones when PAC is disabled. This allows compatibility with other assemblers (e.g. GAS). This was implemented in commit da33762d. Still, developers of assembly code will want to write code that is compatible with both pre- and post-PAC CPUs. They could use HINT mnemonics, but the new mnemonics are a lot more readable (e.g. paciaz instead of hint #24), and they will result in the same encodings. So, while LLVM should not *emit* the new mnemonics when PAC is disabled, this patch will at least make LLVM *accept* assembly code that uses them. Reviewers: danielkiss, chill, olista01, LukeCheeseman, simon_tatham Subscribers: kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D78372
-
Nico Weber authored
-
Fangrui Song authored
Follow-up of D78082 (x86-64). This change avoids dynamic relocations in `xray_instr_map` for ARM/AArch64/powerpc64le. MIPS64 cannot use 64-bit PC-relative addresses because R_MIPS_PC64 is not defined. Because MIPS32 shares the same code, for simplicity, we don't use PC-relative addresses for MIPS32 as well. Tested on AArch64 Linux and ppc64le Linux. Reviewed By: ianlevesque Differential Revision: https://reviews.llvm.org/D78590
-
Simon Pilgrim authored
The forward declarations are already present in the header.
-
Simon Pilgrim authored
We need to include MipsABIFlagsSection.h already
-
Simon Pilgrim authored
Reduce Function.h include to (already existing) forward declaration. Remove unused GCNSubtarget/TargetMachine forward declarations.
-
LLVM GN Syncbot authored
-
Nico Weber authored
-
Louis Dionne authored
-
Luke Geeson authored
This patch upstreams support for the Armv8.6-a Matrix Multiplication Extension. A summary of the features can be found here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a This patch includes: - Command line options to enable these features with +i8mm, +f32mm, or f64mm Note: +f32mm and +f64mm are optional and so are not enabled by default This is part of a patch series, starting with BFloat16 support and the other components in the armv8.6a extension (in previous patches linked in phabricator) Based on work by: - Luke Geeson - Oliver Stannard - Luke Cheeseman Reviewers: t.p.northover, DavidSpickett Reviewed By: DavidSpickett Subscribers: DavidSpickett, ostannard, kristof.beyls, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77875
-
Luke Geeson authored
This patch upstreams support for the Armv8.6-a Matrix Multiplication Extension. A summary of the features can be found here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a This patch includes: - Assembly support for AArch32 and Assembly Parsing D77872 has already added the MC representations of the instructions so that they can be used in code gen; this patch fills in the details needed to make assembly parsing work, and adds tests for asm and disasm This is part of a patch series, starting with BFloat16 support and the other components in the armv8.6a extension (in previous patches linked in phabricator) Based on work by: - Luke Geeson - Oliver Stannard - Luke Cheeseman Reviewers: t.p.northover, simon_tatham Reviewed By: simon_tatham Subscribers: simon_tatham, ostannard, kristof.beyls, hiraditya, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77874
-
Luke Geeson authored
This patch upstreams support for the Armv8.6-a Matrix Multiplication Extension. A summary of the features can be found here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a This patch includes: - Assembly support for AArch64 Scalable Vector Instructions (in line with the Scalable Vector Extension - SVE) This is part of a patch series, starting with BFloat16 support and the other components in the armv8.6a extension (in previous patches linked in phabricator) Based on work by: - Luke Geeson - Oliver Stannard - Luke Cheeseman Reviewers: t.p.northover, rengolin, c-rhodes Reviewed By: c-rhodes Subscribers: c-rhodes, ostannard, tschuett, kristof.beyls, hiraditya, danielkiss, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D77873
-
Luke Geeson authored
This patch upstreams support for the Armv8.6-a Matrix Multiplication Extension. A summary of the features can be found here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a This patch includes: - Assembly support for AArch32 - Intrinsics Support for AArch32 Neon Intrinsics for Matrix Multiplication Note: these extensions are optional in the 8.6a architecture and so have to be enabled by default No additional IR types or C Types are needed for this extension. This is part of a patch series, starting with BFloat16 support and the other components in the armv8.6a extension (in previous patches linked in phabricator) Based on work by: - Luke Geeson - Oliver Stannard - Luke Cheeseman Reviewers: t.p.northover, miyuki Reviewed By: miyuki Subscribers: miyuki, ostannard, kristof.beyls, hiraditya, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77872
-
Luke Geeson authored
This patch upstreams support for the Armv8.6-a Matrix Multiplication Extension. A summary of the features can be found here: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/arm-architecture-developments-armv8-6-a This patch includes: - Assembly support for AArch64 only (no SVE or Neon) - Intrinsics Support for AArch64 Armv8.6a Matrix Multiplication Instructions (No bfloat16 matrix multiplication) No IR types or C Types are needed for this extension. This is part of a patch series, starting with BFloat16 support and the other components in the armv8.6a extension (in previous patches linked in phabricator) Based on work by: - Luke Geeson - Oliver Stannard - Luke Cheeseman Reviewers: ostannard, t.p.northover, rengolin, kmclaughlin Reviewed By: kmclaughlin Subscribers: kmclaughlin, kristof.beyls, hiraditya, danielkiss, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D77871
-
Tres Popp authored
Summary: This is to specify that ParallelOp does not have side effects on its own but has the effects of all operations executed in its region. Differential Revision: https://reviews.llvm.org/D78707
-
Simon Pilgrim authored
We include their headers already.
-
Simon Pilgrim authored
We need to include Error.h already
-
Simon Pilgrim authored
-
Nico Weber authored
-
Lei Zhang authored
This can help provide a common interface for view-like ops so that for example Linalg's dependency analysis can avoid relying on concrete ops. Differential Revision: https://reviews.llvm.org/D78645
-
Nico Weber authored
-
Alexey Bataev authored
Summary: Patch forces codegen to use the new runtime functions for task reductions where the issue with passing the address of the original variables to the UDR initializers is fixed. Also, this patch is required for upcoming support of task modifier inreduction clause. Reviewers: jdoerfert Subscribers: yaxunl, guansong, cfe-commits, caomhin Tags: #clang Differential Revision: https://reviews.llvm.org/D78733
-
Lei Zhang authored
Now both Operation::operand_range and Operation::result_range have .begin() and .end() for ranged-based for loop and we have ValueRange for wrapping a single Value. We can remove the SmallVector materialization! Differential Revision: https://reviews.llvm.org/D78766
-