Commit
99718d53770186746dc360ea1d85ac23f7708c92
by llvm-dev[X86][SSE] Add signbit tests to show cmpss/cmpsd ops not recognised as 'allbits' results.
|
 | llvm/test/CodeGen/X86/known-signbits-vector.ll |
Commit
e4aa6ad132164839a4a97dff0d433ea4766f77f1
by llvm-dev[X86][SSE] X86ISD::FSETCC nodes (cmpss/cmpsd) return a 0/-1 allbits signbits result
Annoyingly, i686 cmpsd handling still fails to remove the unnecessary neg(and(x,1))
|
 | llvm/test/CodeGen/X86/known-signbits-vector.ll |
 | llvm/lib/Target/X86/X86ISelLowering.cpp |
Commit
d2e4ccc79023fcc5fb87ec6873a7856250e55eaa
by sander.desmalen[LV] Ignore candidate VFs with invalid costs.
This follows on from discussion on the mailing-list: https://lists.llvm.org/pipermail/llvm-dev/2021-June/151047.html
to interpret an Invalid cost as 'infinitely expensive', as this simplifies some of the legalization issues with scalable vectors.
Reviewed By: dmgreen
Differential Revision: https://reviews.llvm.org/D105473
|
 | llvm/lib/Transforms/Vectorize/LoopVectorize.cpp |
 | llvm/test/Transforms/LoopVectorize/AArch64/scalable-call.ll |
Commit
26e59cc19f8646ca59e2d699882c611980f2b563
by zinenko[mlir] factor math-to-llvm out of standard-to-llvm
After the Math has been split out of the Standard dialect, the conversion to the LLVM dialect remained as a huge monolithic pass. This is undesirable for the same complexity management reasons as having a huge Standard dialect itself, and is even more confusing given the existence of a separate dialect. Extract the conversion of the Math dialect operations to LLVM into a separate library and a separate conversion pass.
Reviewed By: silvas
Differential Revision: https://reviews.llvm.org/D105702
|
 | mlir/test/Conversion/MathToLLVM/math-to-llvm.mlir |
 | mlir/include/mlir/Conversion/Passes.h |
 | mlir/lib/Conversion/MathToLLVM/CMakeLists.txt |
 | mlir/lib/Conversion/CMakeLists.txt |
 | mlir/include/mlir/Conversion/Passes.td |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
 | mlir/test/Conversion/ComplexToStandard/full-conversion.mlir |
 | mlir/test/Conversion/StandardToLLVM/standard-to-llvm.mlir |
 | mlir/lib/Conversion/MathToLLVM/MathToLLVM.cpp |
 | mlir/include/mlir/Conversion/MathToLLVM/MathToLLVM.h |
Commit
10f5e08a7124d2efb5b3a58a041363dbe291fefd
by omair.javaid[LLDB] Testsuite: Add helper to check for AArch64 target
This patch adds a helper function to test target architecture is AArch64 or not. This also tightens isAArch64* helpers by adding an extra architecture check.
Reviewed By: DavidSpickett
Differential Revision: https://reviews.llvm.org/D105483
|
 | lldb/test/API/functionalities/memory/tag/TestMemoryTag.py |
 | lldb/test/API/functionalities/return-value/TestReturnValue.py |
 | lldb/packages/Python/lldbsuite/test/lldbtest.py |
 | lldb/test/API/tools/lldb-server/registers-target-xml-reading/TestGdbRemoteTargetXmlPacket.py |
Commit
41ba96f53127902ede26606e6f15a053b5f9c096
by dvyukovsanitizer_common: rename Mutex to MutexState
We have 3 different mutexes (RWMutex, BlockingMutex __tsan::Mutex), each with own set of downsides. I want to unify them under a name Mutex. But it will conflict with Mutex in the deadlock detector, which is a way too generic name. Rename it to MutexState.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105773
|
 | compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector2.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp |
Commit
0da172b1766e1559ef677aa836dce4f1995dfef3
by dvyukovsanitizer_common: add thread safety annotations
Enable clang Thread Safety Analysis for sanitizers: https://clang.llvm.org/docs/ThreadSafetyAnalysis.html
Thread Safety Analysis can detect inconsistent locking, deadlocks and data races. Without GUARDED_BY annotations it has limited value. But this does all the heavy lifting to enable analysis and allows to add GUARDED_BY incrementally.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105716
|
 | compiler-rt/lib/sanitizer_common/sanitizer_mac.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_mutex.h |
 | compiler-rt/lib/scudo/scudo_allocator.cpp |
 | compiler-rt/lib/scudo/scudo_tsd.h |
 | compiler-rt/lib/scudo/scudo_tsd_exclusive.inc |
 | compiler-rt/CMakeLists.txt |
 | compiler-rt/lib/asan/asan_allocator.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_solaris.cpp |
 | compiler-rt/lib/sanitizer_common/CMakeLists.txt |
 | compiler-rt/lib/sanitizer_common/sanitizer_addrhashmap.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_combined.h |
 | compiler-rt/lib/lsan/lsan_common.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_fuchsia.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_secondary.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_win.cpp |
 | compiler-rt/lib/tsan/rtl/tsan_rtl.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_quarantine.h |
 | compiler-rt/lib/cfi/cfi.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_thread_safety.h |
 | compiler-rt/lib/memprof/memprof_allocator.cpp |
Commit
41ce5ec5f6f3a03d70e0010e3a140fe129800637
by nemanja.i.ibm[PowerPC] Remove unnecessary 64-bit guards from altivec.h
A number of functions in the header have guards for 64-bit only that were presumably added as some of the functions in the blocks use vector __int128 which is only available in 64-bit mode. A more appropriate guard (__SIZEOF_INT128__) has been added for those functions since, making the 64-bit guards redundant. This patch removes those guards as they inadvertently guard code that uses vector long long which does not actually require 64-bit mode.
|
 | clang/lib/Headers/altivec.h |
 | clang/test/CodeGen/builtins-ppc-32bit-vec-ll.c |
 | clang/test/CodeGen/builtins-ppc-quadword-noi128.c |
Commit
fedbff75f46b4b9e055ab4947960fa95a08a78ed
by protze[OpenMP][OMPT] Fix compile-time assertion in ompt-multiplex.h
The compile-time assertion is supposed to prevent double-free caused by unexpected combination of preprocessor defines passed by an OMPT tool. The current defines are not used, so this patch replaces the check with macros actually used in ompt-multiplex.h
Reported by: Semih Burak
Differential Revision: https://reviews.llvm.org/D104633
|
 | openmp/tools/multiplex/ompt-multiplex.h |
Commit
c305557acdaad453e32309d575fe9c6c7090c099
by david.truby[llvm][sve] Lowering for VLS truncating stores
This adds custom lowering for truncating stores when operating on fixed length vectors in SVE. It also includes a DAG combine to fold extends followed by truncating stores into non-truncating stores in order to prevent this pattern appearing once truncating stores are supported.
Currently truncating stores are not used in certain cases where the size of the vector is larger than the target vector width.
Differential Revision: https://reviews.llvm.org/D104471
|
 | llvm/lib/Target/AMDGPU/R600ISelLowering.h |
 | llvm/test/CodeGen/AArch64/sve-fixed-length-trunc-stores.ll |
 | llvm/include/llvm/CodeGen/TargetLowering.h |
 | llvm/test/CodeGen/Mips/cconv/byval.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/test/CodeGen/AArch64/sve-fixed-length-masked-gather.ll |
 | llvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp |
 | llvm/test/CodeGen/Mips/llvm-ir/store.ll |
 | llvm/test/CodeGen/Mips/cconv/vector.ll |
Commit
326b0054fd32ecaa6da0c7ae014fb9bbf1e80048
by dvyukovsanitizer_common: use 0 for empty stack id
We use 0 for empty stack id from stack depot. Deadlock detector 1 is the only place that uses -1 as a special case. Use 0 because there is a number of checks of the form "if (stack id) ...".
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105776
|
 | compiler-rt/lib/sanitizer_common/sanitizer_deadlock_detector1.cpp |
Commit
6b1668397fd33440847f5a82675c5b83c4137018
by nicolas.vasilache[mlir][Linalg] Improve comprehensive bufferization for scf.yield.
Previously, comprehensive bufferization of scf.yield did not have enough information to detect whether an enclosing scf::for bbargs would bufferize to a buffer equivalent to that of the matching scf::yield operand. As a consequence a separate sanity check step would be required to determine whether bufferization occured properly. This late check would miss the case of calling a function in an loop.
Instead, we now pass and update aliasInfo during bufferization and it is possible to imrpove bufferization of scf::yield and drop that post-pass check.
Add an example use case that was failing previously. This slightly modifies the error conditions, which are also updated as part of this revision.
Differential Revision: https://reviews.llvm.org/D105803
|
 | mlir/test/Dialect/Linalg/comprehensive-module-bufferize-invalid.mlir |
 | mlir/lib/Dialect/Linalg/Transforms/ComprehensiveBufferize.cpp |
Commit
de59f564400de1b0fe30ae07f3c800562a025e27
by aaron[OpenMP] Support OpenMP 5.1 attributes
OpenMP 5.1 added support for writing OpenMP directives using [[]] syntax in addition to using #pragma and this introduces support for the new syntax.
In OpenMP, the attributes take one of two forms: [[omp::directive(...)]] or [[omp::sequence(...)]]. A directive attribute contains an OpenMP directive clause that is identical to the analogous #pragma syntax. A sequence attribute can contain either sequence or directive arguments and is used to ensure that the attributes are processed sequentially for situations where the order of the attributes matter (remember: https://eel.is/c++draft/dcl.attr.grammar#4.sentence-4).
The approach taken here is somewhat novel and deserves mention. We could refactor much of the OpenMP parsing logic to work for either pragma annotation tokens or for attribute clauses. It would be a fair amount of effort to share the logic for both, but it's certainly doable. However, the semantic attribute system is not designed to handle the arbitrarily complex arguments that OpenMP directives contain. Adding support to thread the novel parsed information until we can produce a semantic attribute would be considerably more effort. What's more, existing OpenMP constructs are not (often) represented as semantic attributes. So doing this through Attr.td would be a massive undertaking that would likely only benefit OpenMP and comes with additional risks. Rather than walk down that path, I am taking advantage of the fact that the syntax of the directives within the directive clause is identical to that of the #pragma form. Once the parser recognizes that we're processing an OpenMP attribute, it caches all of the directive argument tokens and then replays them as though the user wrote a pragma. This reuses the same OpenMP parsing and semantic logic directly, but does come with a risk if the OpenMP committee decides to purposefully diverge their pragma and attribute syntaxes. So, despite this being a novel approach that does token replay, I think it's actually a better approach than trying to do this through the declarative syntax in Attr.td.
|
 | clang/lib/Parse/ParseStmt.cpp |
 | clang/test/OpenMP/unroll_codegen_unroll_for_attr.cpp |
 | clang/lib/Basic/Attributes.cpp |
 | clang/test/OpenMP/masked_messages_attr.cpp |
 | clang/lib/Parse/ParseCXXInlineMethods.cpp |
 | clang/include/clang/Basic/TokenKinds.def |
 | clang/lib/Parse/Parser.cpp |
 | clang/test/OpenMP/critical_codegen_attr.cpp |
 | clang/test/OpenMP/openmp_attribute_compat.cpp |
 | clang/test/OpenMP/allocate_codegen_attr.cpp |
 | clang/test/OpenMP/assumes_messages_attr.c |
 | clang/include/clang/Basic/DiagnosticParseKinds.td |
 | clang/test/OpenMP/teams_distribute_parallel_for_simd_num_teams_messages_attr.cpp |
 | clang/lib/Parse/ParseDeclCXX.cpp |
 | clang/test/OpenMP/taskloop_reduction_messages_attr.cpp |
 | clang/lib/Parse/ParseOpenMP.cpp |
 | clang/test/OpenMP/target_map_names_attr.cpp |
 | clang/include/clang/Basic/DiagnosticGroups.td |
 | clang/include/clang/Parse/Parser.h |
 | clang/test/OpenMP/openmp_attribute_parsing.cpp |
 | clang/test/OpenMP/openmp_attribute.cpp |
 | clang/docs/OpenMPSupport.rst |
 | clang/lib/Parse/ParseDecl.cpp |
Commit
fde34d9f891b92539e0e8eff96057390ee7b1bdf
by dvyukovsanitizer_common: remove debugging logic from the internal allocator
The internal allocator adds 8-byte header for debugging purposes. The problem with it is that it's not possible to allocate nicely-sized objects without a significant overhead. For example, if we allocate 512-byte objects, that will be rounded up to 768 or something. This logic migrated from tsan where it was added during initial development, I don't remember that it ever caught anything (we don't do bugs!). Remove it so that it's possible to allocate nicely-sized objects without overheads.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105777
|
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator.cpp |
Commit
8bbf2f7a44f907d54ad39a98d166a17be61dd66f
by dvyukovsanitizer_common: make sem_trywait as non-blocking
sem_trywait never blocks. Use REAL instead of COMMON_INTERCEPTOR_BLOCK_REAL.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105775
|
 | compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc |
Commit
84e429693fe5f225fe68b9dd54043cddb9c4cd4c
by nemanja.i.ibm[PowerPC] Fix rounding mode for vec_round in altivec.h
The function is supposed to be the equivalent of rint() (as in round to nearest, ties to even) rather than round() (round to nearest, ties away from zero). In fact, the instruction we emit without VSX is vrfin which is correct. However, with VSX we emit xvrspi which is the equivalent of round() and therefore incorrect. Since there is no equivalent VSX instruction, simply use vrfin regardless of availability of VSX.
|
 | clang/lib/Headers/altivec.h |
 | clang/test/CodeGen/builtins-ppc-vsx.c |
Commit
a95c336b5e3b72def68f75c67f3e5a134d3029e5
by yrouban[RS4GC] Add a test to demonstrate duplication of base generation. NFC
This new test demonstrates a case where a base ptr is generated twice for the same value: the first one is generated while the gc.get.pointer.base() is inlined, the second is generated for the statepoint. This happens because the methods inlineGetBaseAndOffset() and insertParsePoints() do not share their defining value cache used by the findBasePointer() method.
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D103238
|
 | llvm/test/Transforms/RewriteStatepointsForGC/intrinsics-bare.ll |
Commit
88024a724c3bac4aa902dc85d16d3285caac4377
by yrouban[RS4GC] Use one DVCache for both inlineGetBaseAndOffset() and insertParsePoints()
This new test demonstrates a case where a base ptr is generated twice for the same value: the first one is generated while the gc.get.pointer.base() is inlined, the second is generated for the statepoint. This happens because the methods inlineGetBaseAndOffset() and insertParsePoints() do not share their defining value cache used by the findBasePointer() method.
Reviewed By: reames Differential Revision: https://reviews.llvm.org/D103240
|
 | llvm/test/Transforms/RewriteStatepointsForGC/intrinsics-bare.ll |
 | llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp |
Commit
8266b7ea7dac95b60843a1fdde31b42475687fe5
by medismail.bennani[lldb/Target] Fix event handling during process launch
This patch fixes process event handling when the events are broadcasted at launch. To do so, the patch introduces a new listener to fetch events by hand off the event queue and then resending them ensure the event ordering.
Differental Revision: https://reviews.llvm.org/D105698
Signed-off-by: Med Ismail Bennani <medismail.bennani@gmail.com>
|
 | lldb/source/Target/Process.cpp |
Commit
f042e0a0f88391c611002e55afec5c37604b5819
by aaronFix the Clang documentation builder; NFC.
It was broken three days ago by the changes in D95561.
|
 | clang/include/clang/Basic/AttrDocs.td |
Commit
10158b52dcb3b9f1db44d9bd56993ad8cd68912a
by dvyukovsanitizer_common: fix 32-bit build
https://reviews.llvm.org/D105716 enabled thread safety annotations, and that broke 32-bit build: https://green.lab.llvm.org/green/job/lldb-cmake/33604/consoleFull#-77815080549ba4694-19c4-4d7e-bec5-911270d8a58c
1. Enable thread-safety analysis in unit tests (this catches the breakage even in 64-bit mode). 2. Add NO_THREAD_SAFETY_ANALYSIS to sanitizer_allocator_primary32.h to unbreak the build.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105808
|
 | compiler-rt/CMakeLists.txt |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary32.h |
Commit
8747234032c9c6270a6198ab3cca14ce2bd18721
by aaronPartially implement P1401R5 (Narrowing contextual conversions to bool)
Support Narrowing conversions to bool in if constexpr condition under C++23 language mode.
Only if constexpr is implemented as the behavior of static_assert is already conforming. Still need to work on explicit(bool) to complete support.
|
 | clang/include/clang/Sema/Sema.h |
 | clang/lib/Sema/SemaExprCXX.cpp |
 | clang/test/SemaCXX/static-assert.cpp |
 | clang/www/cxx_status.html |
 | clang/test/CXX/stmt.stmt/stmt.select/stmt.if/p2.cpp |
 | clang/include/clang/Basic/DiagnosticSemaKinds.td |
 | clang/lib/Sema/SemaOverload.cpp |
Commit
0c6fad233aa7d1e4564b88136702853f58660d05
by thakis[gn build] (semi-manually) port 0da172b1766e
|
 | llvm/utils/gn/secondary/compiler-rt/lib/sanitizer_common/BUILD.gn |
Commit
f73334c46d59ffdbf12353932d5985049335a6c7
by david.green[AArch64] Set the latency of Cortex-A55 stores to 1
This sets the latency of stores to 1 in the Cortex-A55 scheduling model, to better match the values given in the software optimization guide.
The latency of a store in normal llvm scheduling does not appear to have a lot of uses. If the store has no outputs then the latency is somewhat meaningless (and pre/post increment update operands use the WriteAdr write for those operands instead). The one place it does alter things is the latency between a store and the end of the scheduling region, which can in turn have an effect on the critical path length. As a result a latency of 1 is more correct and offers ever-so-slightly better scheduling of instructions near the end of the block.
They are marked as RetireOOO to keep the llvm-mca from introducing stalls where non would exist.
Differential Revision: https://reviews.llvm.org/D105541
|
 | llvm/test/tools/llvm-mca/AArch64/Cortex/A55-all-stats.s |
 | llvm/lib/Target/AArch64/AArch64SchedA55.td |
 | llvm/test/tools/llvm-mca/AArch64/Cortex/A55-load-store-alias.s |
 | llvm/test/tools/llvm-mca/AArch64/Cortex/A55-basic-instructions.s |
 | llvm/test/tools/llvm-mca/AArch64/Cortex/A55-in-order-retire.s |
 | llvm/test/tools/llvm-mca/AArch64/Cortex/A55-out-of-order-retire.s |
 | llvm/test/tools/llvm-mca/AArch64/Cortex/A55-all-views.s |
Commit
eecd5d0aa8c3114235ffe9730009470d63910b24
by thakis[gn build] port 0da172b1766e more
|
 | llvm/utils/gn/build/BUILD.gn |
Commit
96b4117d5155e9a903c9260c587a73779c74f3d6
by llvm-dev[CostModel][X86] Adjust truncate SSE/AVX legalized costs based on llvm-mca reports.
Update truncation costs based on the worst case costs from the script in D103695.
Move to using legalized types wherever possible, which allows us to prune the cost tables.
|
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp |
 | llvm/test/Analysis/CostModel/X86/sse-itoi.ll |
 | llvm/test/Analysis/CostModel/X86/fptosi.ll |
 | llvm/test/Analysis/CostModel/X86/arith-overflow.ll |
 | llvm/test/Analysis/CostModel/X86/rem.ll |
 | llvm/test/Analysis/CostModel/X86/fptoui.ll |
 | llvm/test/Transforms/SLPVectorizer/X86/arith-fix.ll |
 | llvm/test/Analysis/CostModel/X86/min-legal-vector-width.ll |
 | llvm/test/Analysis/CostModel/X86/trunc.ll |
 | llvm/test/Analysis/CostModel/X86/arith.ll |
 | llvm/test/Analysis/CostModel/X86/arith-fix.ll |
 | llvm/test/Analysis/CostModel/X86/intrinsic-cost-kinds.ll |
 | llvm/test/Analysis/CostModel/X86/slm-arith-costs.ll |
 | llvm/test/Analysis/CostModel/X86/cast.ll |
Commit
b4e843ba3a9e759f7104d61b3d801344a604d412
by gysit[mlir][linalg][python] Add auto-generated file warning (NFC).
Annotate LinalgNamedStructuredOps.yaml with a comment stating the file is auto-generated and should not be edited manually.
Reviewed By: nicolasvasilache
Differential Revision: https://reviews.llvm.org/D105809
|
 | mlir/include/mlir/Dialect/Linalg/IR/LinalgNamedStructuredOps.yaml |
 | mlir/python/mlir/dialects/linalg/opdsl/dump_oplib.py |
Commit
4b9d698243c4170e4ecf7f4336cd2824d2641e2a
by spatel[InstCombine][tests] add tests for signbit + logic; NFC
PR50816
|
 | llvm/test/Transforms/InstCombine/icmp.ll |
Commit
a488c7879e688f40647f0deacd7e09ec3082e4a4
by spatel[InstCombine] reduce signbit test of logic ops to cmp with zero
This is the pattern from the description of: https://llvm.org/PR50816
There might be a way to generalize this to a smaller or more generic pattern, but I have not found it yet.
https://alive2.llvm.org/ce/z/ShzJoF
define i1 @src(i8 %x) { %add = add i8 %x, -1 %xor = xor i8 %x, -1 %and = and i8 %add, %xor %r = icmp slt i8 %and, 0 ret i1 %r }
define i1 @tgt(i8 %x) { %r = icmp eq i8 %x, 0 ret i1 %r }
|
 | llvm/test/Transforms/InstCombine/icmp.ll |
 | llvm/lib/Transforms/InstCombine/InstCombineCompares.cpp |
Commit
96421af5f8b48a35f5375a026c9fbc14cb18a178
by paulsson[SystemZ] Bugfix for the 'N' code for inline asm operand.
Don't use a local MachineOperand copy in SystemZAsmPrinter::PrintAsmOperand() and change the register as it may break the MRI tracking of register uses. Use an MCOperand instead.
Review: Ulrich Weigand
Differential Revision: https://reviews.llvm.org/D105757
|
 | llvm/lib/Target/SystemZ/SystemZAsmPrinter.cpp |
 | llvm/test/CodeGen/SystemZ/inline-asm-i128.ll |
Commit
8253fa229833e138619efc707cae1625a91455cf
by michael.hliaoFix warning '-Wparentheses'. NFC.
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
9e42675103e29642bf546c14b2272c9c2bb7c12c
by cullen.rhodes[AArch64] Add target features for Armv9-A Scalable Matrix Extension (SME)
First patch in a series adding MC layer support for the Arm Scalable Matrix Extension.
This patch adds the following features:
sme, sme-i64, sme-f64
The sme-i64 and sme-f64 flags are for the optional I16I64 and F64F64 features.
If a target supports I16I64 then the following instructions are implemented:
* 64-bit integer ADDHA and ADDVA variants (D105570). * SMOPA, SMOPS, SUMOPA, SUMOPS, UMOPA, UMOPS, USMOPA, and USMOPS instructions that accumulate 16-bit integer outer products into 64-bit integer tiles.
If a target supports F64F64 then the FMOPA and FMOPS instructions that accumulate double-precision floating-point outer products into double-precision tiles are implemented.
Outer products are implemented in D105571.
The reference can be found here: https://developer.arm.com/documentation/ddi0602/2021-06
Reviewed By: CarolineConcatto
Differential Revision: https://reviews.llvm.org/D105569
|
 | llvm/lib/Target/AArch64/AArch64SchedFalkor.td |
 | llvm/lib/Target/AArch64/AArch64SchedThunderX.td |
 | llvm/lib/Support/AArch64TargetParser.cpp |
 | llvm/include/llvm/Support/AArch64TargetParser.h |
 | llvm/test/MC/AArch64/SME/feature.s |
 | llvm/lib/Target/AArch64/AArch64Subtarget.h |
 | llvm/lib/Target/AArch64/AArch64SchedA53.td |
 | llvm/lib/Target/AArch64/AArch64SchedKryo.td |
 | llvm/lib/Target/AArch64/AArch64SchedThunderX2T99.td |
 | llvm/lib/Target/AArch64/AArch64SchedA57.td |
 | llvm/lib/Target/AArch64/AArch64SchedExynosM4.td |
 | llvm/lib/Target/AArch64/AArch64SchedCyclone.td |
 | llvm/include/llvm/Support/AArch64TargetParser.def |
 | llvm/lib/Target/AArch64/AArch64SchedExynosM3.td |
 | llvm/lib/Target/AArch64/AArch64SchedExynosM5.td |
 | llvm/unittests/Support/TargetParserTest.cpp |
 | llvm/lib/Target/AArch64/AArch64.td |
 | llvm/lib/Target/AArch64/AArch64InstrInfo.td |
Commit
ed1f149b54c234efe55ef4f35f80e470858c547a
by frgossen[MLIR][StandardToLLVM] Move `copyUnrankedDescriptors` to pattern
Make the function `copyUnrankedDescriptors` accessible in `ConvertToLLVMPattern`.
Differential Revision: https://reviews.llvm.org/D105810
|
 | mlir/include/mlir/Conversion/LLVMCommon/Pattern.h |
 | mlir/lib/Conversion/LLVMCommon/Pattern.cpp |
 | mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp |
Commit
7177c5951ab4fefcd8986a7808d895ffeeace037
by Raphael Isemann[lldb][NFC] Use ArrayRef in TypeSystemClang::SetFunctionParameters
The implementation converts the pointer/size pair anyway back to ArrayRef.
|
 | lldb/source/Plugins/SymbolFile/PDB/PDBASTParser.cpp |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h |
 | lldb/source/Plugins/SymbolFile/NativePDB/PdbAstBuilder.cpp |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
 | lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp |
Commit
b3bd8850174fb7e5ef03768ba05205701ffc10b2
by dvyukovsanitizer_common: allow COMMON_INTERCEPTOR_ENTER to use labels
The memcpy interceptor is the only one that uses COMMON_INTERCEPTOR_ENTER more than once in a single function. This does not allow COMMON_INTERCEPTOR_ENTER to use labels, because they are global for the whole function (not block scoped). Don't include COMMON_INTERCEPTOR_ENTER code twice.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105774
|
 | compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc |
Commit
187e050b33bbee1ef210c83f5595c283ba671909
by flx[clang-tidy] performance-unnecessary-copy-initialization: Disable structured bindings.
Structured bindings can currently trigger the check and lead to a wrong fix. Because the DecompositionDecl itself is not used and the check does not iterate through its the decl's bindings to verify whether the bindings' holding vars are used this leads to the whole statement to be deleted.
To support structured bindings properly 3 cases would need to be considered.
1. All holding vars are not used -> The statement can be deleted. 2. All holding vars are used as const or not used -> auto can be converted to const auto&. 3. Neither case is true -> leave unchanged.
In the check we'll have to separate the logic that determines this from the code that produces the diagnostic and fixes and first determine which of the cases we're dealing with before creating fixes.
Since this is a bigger refactoring we'll disable structured bindings for now to prevent incorrect fixes.
Differential Revision: https://reviews.llvm.org/D105727
Reviewed-by: ymandel
|
 | clang-tools-extra/test/clang-tidy/checkers/performance-unnecessary-copy-initialization.cpp |
 | clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp |
Commit
f192616ce9835f427686b8a364c9cc53bf42447d
by Louis Dionne[libc++] NFC: Fix synopsis comments and sort includes in ranges
|
 | libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/bidirectional_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/contiguous_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/forward_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/random_access_range.compile.pass.cpp |
 | libcxx/include/__ranges/drop_view.h |
Commit
0da3573a9ef9dd4450e8121e9a2b501938fc0f79
by benny.kra[AArch64] Silence unused variable warning. NFC.
AArch64ISelLowering.cpp:15167:8: warning: unused variable 'OpCode' [-Wunused-variable] auto OpCode = N->getOpcode(); ^
|
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
Commit
1af97c9d0b02002586473b4b9845b0c390504a27
by vsavchenko[analyzer] LoopUnrolling: fix crash when a loop counter is captured in a lambda by reference
Reviewed By: vsavchenko
Differential Revision: https://reviews.llvm.org/D102273
|
 | clang/lib/StaticAnalyzer/Core/LoopUnrolling.cpp |
 | clang/test/Analysis/loop-unrolling.cpp |
Commit
e49985bb6065d4f5ea69fe578e326ec6d43a6b24
by simon.tathamRemove unused parameter from parseMSInlineAsm.
No implementation uses the `LocCookie` parameter at all. Errors are reported from inside that function by `llvm::SourceMgr`, and the instance of that at the clang call site arranges to pass the error messages back to a `ClangAsmParserCallback`, which is where the clang SourceLocation for the error is computed.
(This is part of a patch series working towards the ability to make SourceLocation into a 64-bit type to handle larger translation units. But this particular change seems beneficial in its own right.)
Reviewed By: miyuki
Differential Revision: https://reviews.llvm.org/D105490
|
 | llvm/lib/MC/MCParser/AsmParser.cpp |
 | clang/lib/Parse/ParseStmtAsm.cpp |
 | llvm/lib/MC/MCParser/MasmParser.cpp |
 | llvm/include/llvm/MC/MCParser/MCAsmParser.h |
Commit
6ca7247866f5265f1b9076927c909eb4e165cec0
by dvyukovsanitizer_common: support printing __m128i type
__m128i is vector SSE type used in tsan. It's handy to be able to print it for debugging.
Reviewed By: vitalybuka
Differential Revision: https://reviews.llvm.org/D102167
|
 | compiler-rt/lib/sanitizer_common/sanitizer_printf.cpp |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_printf_test.cpp |
Commit
0d17b5d0af6f7f00f9efc7bb5f524bf9c9800d7c
by spatel[SLP] add test for multiple logical reductions; NFC
More coverage for: D105730
|
 | llvm/test/Transforms/SLPVectorizer/X86/reduction-logical.ll |
Commit
85cce4d4858945aa2f3ed3e20b29dcfcd8e51b2d
by Louis Dionne[libc++] Test on Clang ToT by default
This is what ffccf96e90d6b should have enabled, however the symlink in the Docker image was not pointing to the right compiler, so we were testing with Clang 12 instead of ToT.
|
 | libcxx/utils/ci/Dockerfile |
Commit
396f2e9d6d17d4288616218f07aa93daf01fbe5d
by thakis[lld/mac] Make tbd files in one test valid
No behavior change, but ld64 can't load .tbd files without the trailing `...`, so include them to make it easier to run tests with l64 too.
|
 | lld/test/MachO/dylink-ordinal.s |
Commit
112c09039bbf111c4fa448a0c84ba68b12fed2d6
by bradley.smith[SelectionDAG] Simplify PromoteIntRes_INSERT_SUBVECTOR to only handle result
Let other parts of legalization handle the rest of the node, this allows re-use of existing optimizations elsewhere.
Differential Revision: https://reviews.llvm.org/D105624
|
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
 | llvm/test/CodeGen/AArch64/insert-subvector-res-legalization.ll |
Commit
11b47c103a36371576711cae1f7527c26f78efb5
by v.g.vassilevReland "[clang-repl] Implement partial translation units and error recovery."
Original commit message:
[clang-repl] Implement partial translation units and error recovery.
https://reviews.llvm.org/D96033 contained a discussion regarding efficient modeling of error recovery. @rjmccall has outlined the key ideas:
Conceptually, we can split the translation unit into a sequence of partial translation units (PTUs). Every declaration will be associated with a unique PTU that owns it.
The first key insight here is that the owning PTU isn't always the "active" (most recent) PTU, and it isn't always the PTU that the declaration "comes from". A new declaration (that isn't a redeclaration or specialization of anything) does belong to the active PTU. A template specialization, however, belongs to the most recent PTU of all the declarations in its signature - mostly that means that it can be pulled into a more recent PTU by its template arguments.
The second key insight is that processing a PTU might extend an earlier PTU. Rolling back the later PTU shouldn't throw that extension away. For example, if the second PTU defines a template, and the third PTU requires that template to be instantiated at float, that template specialization is still part of the second PTU. Similarly, if the fifth PTU uses an inline function belonging to the fourth, that definition still belongs to the fourth. When we go to emit code in a new PTU, we map each declaration we have to emit back to its owning PTU and emit it in a new module for just the extensions to that PTU. We keep track of all the modules we've emitted for a PTU so that we can unload them all if we decide to roll it back.
Most declarations/definitions will only refer to entities from the same or earlier PTUs. However, it is possible (primarily by defining a previously-declared entity, but also through templates or ADL) for an entity that belongs to one PTU to refer to something from a later PTU. We will have to keep track of this and prevent unwinding to later PTU when we recognize it. Fortunately, this should be very rare; and crucially, we don't have to do the bookkeeping for this if we've only got one PTU, e.g. in normal compilation. Otherwise, PTUs after the first just need to record enough metadata to be able to revert any changes they've made to declarations belonging to earlier PTUs, e.g. to redeclaration chains or template specialization lists.
It should even eventually be possible for PTUs to provide their own slab allocators which can be thrown away as part of rolling back the PTU. We can maintain a notion of the active allocator and allocate things like Stmt/Expr nodes in it, temporarily changing it to the appropriate PTU whenever we go to do something like instantiate a function template. More care will be required when allocating declarations and types, though.
We would want the PTU to be efficiently recoverable from a Decl; I'm not sure how best to do that. An easy option that would cover most declarations would be to make multiple TranslationUnitDecls and parent the declarations appropriately, but I don't think that's good enough for things like member function templates, since an instantiation of that would still be parented by its original class. Maybe we can work this into the DC chain somehow, like how lexical DCs are.
We add a different kind of translation unit `TU_Incremental` which is a complete translation unit that we might nonetheless incrementally extend later. Because it is complete (and we might want to generate code for it), we do perform template instantiation, but because it might be extended later, we don't warn if it declares or uses undefined internal-linkage symbols.
This patch teaches clang-repl how to recover from errors by disconnecting the most recent PTU and update the primary PTU lookup tables. For instance:
```./clang-repl clang-repl> int i = 12; error; In file included from <<< inputs >>>:1: input_line_0:1:13: error: C++ requires a type specifier for all declarations int i = 12; error; ^ error: Parsing failed. clang-repl> int i = 13; extern "C" int printf(const char*,...); clang-repl> auto r1 = printf("i=%d\n", i); i=13 clang-repl> quit ```
Differential revision: https://reviews.llvm.org/D104918
|
 | clang/include/clang/Basic/LangOptions.h |
 | clang/unittests/Interpreter/InterpreterTest.cpp |
 | clang/lib/Serialization/ASTReader.cpp |
 | clang/include/clang/Interpreter/Transaction.h |
 | clang/include/clang/Lex/Preprocessor.h |
 | clang/lib/Interpreter/IncrementalParser.h |
 | clang/include/clang/Interpreter/PartialTranslationUnit.h |
 | clang/unittests/Lex/PPCallbacksTest.cpp |
 | clang/lib/Interpreter/Interpreter.cpp |
 | clang/unittests/Interpreter/IncrementalProcessingTest.cpp |
 | clang/lib/Sema/Sema.cpp |
 | clang/include/clang/Interpreter/Interpreter.h |
 | clang/lib/Frontend/ASTUnit.cpp |
 | clang/lib/Frontend/CompilerInstance.cpp |
 | clang/unittests/AST/ASTVectorTest.cpp |
 | clang/include/clang/AST/Redeclarable.h |
 | clang/lib/Interpreter/IncrementalParser.cpp |
 | clang/tools/clang-import-test/clang-import-test.cpp |
 | clang/include/clang/AST/Decl.h |
 | clang/lib/AST/Decl.cpp |
 | clang/lib/AST/ASTContext.cpp |
 | clang/include/clang/Sema/Sema.h |
 | clang/include/clang/AST/ASTContext.h |
 | lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp |
 | clang/lib/AST/DeclBase.cpp |
Commit
2071ce9d4559d444a065d78248a7381bf121b766
by bmahjour[Altivec] Use signed comparison for vec_all_* and vec_any_* interfaces
We are currently being inconsistent in using signed vs unsigned comparisons for vec_all_* and vec_any_* interfaces that use vector bool types. For example we use signed comparison for vec_all_ge(vector signed char, vector bool char) but unsigned comparison for when the arguments are swapped. GCC and XL use signed comparison instead. This patch makes clang consistent with itself and with XL and GCC.
Reviewed By: nemanjai
Differential Revision: https://reviews.llvm.org/D105666
|
 | clang/test/CodeGen/builtins-ppc-altivec.c |
 | clang/lib/Headers/altivec.h |
 | clang/test/CodeGen/builtins-ppc-vsx.c |
Commit
f74bb95bbe4d7f9137398ed4c13dac180bf9870e
by listmail[langref] attempt to clarify semantics of inttoptr/ptrtoint for non-integral types
In review discussion on D104322, Eli and Roman quite reasonable raised concerns about the LangRef not really providing a precise definition for inttoptr/ptrtoint on non-integral types. These had previously been disallowed, but I'd pragmatically allowed them in ac81cb7e6. This is my attempt to improve the situation.
Differential Revision: https://reviews.llvm.org/D104547
|
 | llvm/docs/LangRef.rst |
Commit
561b9446d69e12bb5cea263c7aa080009fc21469
by benny.krasanitizer_common: Fix the build for platforms that use shared TSDs
Looks like an oversight in 0da172b1766e1559ef677aa836dce4f1995dfef3
compiler-rt/lib/scudo/scudo_tsd_shared.inc:53:1: error: mutex 'TSD->Mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis] } ^ compiler-rt/lib/scudo/scudo_tsd_shared.inc:49:12: note: mutex acquired here if (TSD->tryLock()) ^
|
 | compiler-rt/lib/scudo/scudo_tsd_shared.inc |
Commit
6f6131815e2cedac66bf63d918d36da38526ccbe
by benny.krasanitizer_common: Suppress another thread safety warning
Another follow-up to 0da172b1766e1559ef677aa836dce4f1995dfef3
compiler-rt/lib/scudo/scudo_tsd_shared.cpp:103:1: error: mutex 'CandidateTSD->Mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis] } ^ compiler-rt/lib/scudo/scudo_tsd_shared.cpp:95:21: note: mutex acquired here CandidateTSD->lock(); ^ compiler-rt/lib/scudo/scudo_tsd_shared.cpp:103:1: error: mutex 'TSD->Mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis] } ^ compiler-rt/lib/scudo/scudo_tsd_shared.cpp:101:8: note: mutex acquired here TSD->lock(); ^ compiler-rt/lib/scudo/scudo_tsd_shared.cpp:103:1: error: mutex 'TSDs[Index].Mutex' is not held on every path through here [-Werror,-Wthread-safety-analysis] } ^ compiler-rt/lib/scudo/scudo_tsd_shared.cpp:80:23: note: mutex acquired here if (TSDs[Index].tryLock()) { ^
|
 | compiler-rt/lib/scudo/scudo_tsd_shared.cpp |
Commit
0144e625b9672d27b25196346134a7ac40e00e29
by i[llvm-objcopy] Improve performance of long pattern lists
Some users use a long list of fixed patterns (PR50404) and O(|patterns|*|symbols|) can be too slow. Such usage typically does not use --regex or --wildcard. We can use a DenseSet<CachedHashStringRef> to optimize name lookups.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D105218
|
 | llvm/tools/llvm-objcopy/CommonConfig.h |
Commit
ef49d925e2a788248473b847a0e51835c6ca854f
by albionapc[PowerPC] Implement trap and conversion builtins for XL compatibility
This patch implements trap and FP to and from double conversions. The builtins generate code that mirror what is generated from the XL compiler. Intrinsics are named conventionally with builtin_ppc, but are aliased to provide the same builtin names as the XL compiler.
Differential Revision: https://reviews.llvm.org/D103668
|
 | clang/test/CodeGen/builtins-ppc-xlcompat-trap-64bit-only.c |
 | llvm/include/llvm/IR/IntrinsicsPowerPC.td |
 | llvm/test/CodeGen/PowerPC/builtins-ppc-xlcompat-conversionfunc.ll |
 | clang/test/CodeGen/builtins-ppc-xlcompat-conversionfunc.c |
 | llvm/test/CodeGen/PowerPC/builtins-ppc-xlcompat-trap-64bit-only.ll |
 | clang/lib/Sema/SemaChecking.cpp |
 | llvm/lib/Target/PowerPC/PPCInstrInfo.td |
 | llvm/lib/Target/PowerPC/PPCInstr64Bit.td |
 | clang/test/CodeGen/builtins-ppc-xlcompat-trap.c |
 | llvm/test/CodeGen/PowerPC/builtins-ppc-xlcompat-trap.ll |
 | clang/include/clang/Basic/BuiltinsPPC.def |
 | clang/test/CodeGen/builtins-ppc-xlcompat-error.c |
 | clang/lib/Basic/Targets/PPC.cpp |
Commit
88b73a980ff28fc7123df1e857b5c4dda4a62a5a
by Louis Dionne[libc++] Remove random [[nodiscard]] in the test suite
|
 | libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.input/subsumption.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.sentinel/sentinel_for.subsumption.compile.pass.cpp |
 | libcxx/test/support/test_iterators.h |
 | libcxx/test/std/concepts/concepts.object/regular.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.lang/concepts.arithmetic/arithmetic.h |
 | libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.cust/iterator.cust.move/iter_move.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.forward/subsumption.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.iterator/subsumption.compile.pass.cpp |
 | libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp |
 | libcxx/test/support/compare_types.h |
 | libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.strictweakorder/strict_weak_order.subsumption.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.predicate/predicate.subsumption.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.invocable/invocable.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.pass.cpp |
 | libcxx/test/std/concepts/concepts.lang/concept.swappable/swappable_with.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.relation/relation.subsumption.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.cust/unqualified_lookup_wrapper.h |
 | libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.inc/subsumption.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.equiv/equivalence_relation.subsumption.compile.pass.cpp |
 | libcxx/test/std/concepts/concepts.callable/concept.regularinvocable/regular_invocable.compile.pass.cpp |
 | libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/iter_value_t.pass.cpp |
Commit
681055ea694b1de21a52b319329e5d4f9b1b807d
by protze[OpenMP] Remove TSAN annotations from libomp
The annotations in libomp were never built by default. The annotations are also superseded by the annotations which the OMPT tool libarcher.so provides. With respect to libarcher, libomp behaves as if libarcher would be the last element of OMP_TOOL_LIBARARIES. I.e., if no other OMPT tool gets active, libarcher will check if an OpenMP application is built with TSan.
Since libarcher gets loaded by default, enabling LIBOMP_TSAN_SUPPORT would result in redundant annotations for TSan, which slightly differ in details and coverage (e.g. task dependencies are not handled well by the annotations in libomp).
This patch removes all TSan annotations from the OpenMP runtime code.
Differential Revision: https://reviews.llvm.org/D103767
|
 | openmp/runtime/CMakeLists.txt |
 | openmp/runtime/src/CMakeLists.txt |
 | openmp/runtime/src/z_Linux_util.cpp |
 | openmp/runtime/src/kmp_config.h.cmake |
 | openmp/runtime/src/kmp_tasking.cpp |
 | openmp/runtime/src/tsan_annotations.cpp |
 | openmp/runtime/src/kmp_barrier.cpp |
 | openmp/runtime/src/kmp_runtime.cpp |
 | openmp/runtime/src/kmp_lock.cpp |
 | openmp/runtime/src/exports_so.txt |
 | openmp/runtime/src/tsan_annotations.h |
Commit
af6f136a8c6a842acd20ca1f9f76076fcb212a94
by david.green[ARM] Expand types in VQDMULH tests. NFC
|
 | llvm/test/CodeGen/Thumb2/mve-vqdmulh.ll |
Commit
28fb69e00a4d3f3e59ccd63cf5c56c4af66a475c
by Jinsong Ji[AIX] Emit version string in .file directive
AIX .file directive support including compiler version string. https://www.ibm.com/docs/en/aix/7.2?topic=ops-file-pseudo-op
This patch adds the support so that it will be easier to identify build compiler in objects.
Reviewed By: #powerpc, shchenz
Differential Revision: https://reviews.llvm.org/D105743
|
 | llvm/include/llvm/MC/MCObjectStreamer.h |
 | llvm/test/CodeGen/PowerPC/aix-filename-special-character-single-quotation.ll |
 | llvm/lib/CodeGen/AsmPrinter/AsmPrinter.cpp |
 | llvm/lib/MC/MCAsmInfoXCOFF.cpp |
 | llvm/lib/MC/MCObjectStreamer.cpp |
 | llvm/include/llvm/MC/MCAsmInfo.h |
 | llvm/include/llvm/MC/MCStreamer.h |
 | llvm/lib/MC/MCAsmStreamer.cpp |
 | llvm/lib/MC/MCStreamer.cpp |
 | llvm/test/CodeGen/PowerPC/aix-filename-absolute-path.ll |
 | llvm/test/CodeGen/PowerPC/aix-filename-special-character-double-quotation.ll |
 | llvm/test/CodeGen/PowerPC/aix-filename-relative-path.ll |
Commit
a95f56f60089ce810dd1d66a640042133f56ccd8
by i[test] Move AMDGPU reloc test from Object to tools/llvm-readobj and simplify it
We already have some reloc-types-elf-*.test serving the similar purpose.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D105783
|
 | llvm/test/tools/llvm-readobj/ELF/reloc-types-elf-amdgpu.test |
 | llvm/test/Object/AMDGPU/elf64-relocs.yaml |
Commit
5a4e7760101581c394aa4235c55885ec960c8b3b
by rob.suderman[mlir][tosa] Added more shape inference for tosa ops
Added shape inference for: - scatter - gather - transpose - slice - pad - concat - reduction operations
Also updated reshape for more aggressive shape inference.
Differential Revision: https://reviews.llvm.org/D105383
|
 | mlir/include/mlir/Dialect/Tosa/IR/TosaOps.td |
 | mlir/lib/Dialect/Tosa/IR/TosaOps.cpp |
 | mlir/test/Dialect/Tosa/tosa-infer-shapes.mlir |
 | mlir/test/Dialect/Tosa/tosa_infer_shapes.mlir |
Commit
fe892114e33b8f98bf3537a0dd6d6798821cb849
by andrzej.warzynski[flang][nfc] Simplify CMake
Folds `list(APPEND <list> [<element>...])` into the definition of `<list>`.
|
 | flang/test/CMakeLists.txt |
Commit
46580d43fc70dcecf21d2cedceeb4910c756fa6e
by i[llvm-readobj] Switch command line parsing from llvm::cl to OptTable
Users should generally observe no difference as long as they don't use unintended option forms. Behavior changes:
* `-t=d` is removed. Use `-t d` instead. * `--demangle=false` and `--demangle=0` cannot be used. Omit the option or use `--no-demangle`. Other flag-style options don't have `--no-` forms. * `--help-list` is removed. This is a `cl::` specific option. * llvm-readobj now supports grouped short options as well. * `--color` is removed. This is generally not useful (only apply to errors/warnings) but was inherited from Support.
Some adjustment to the canonical forms (usually from GNU readelf; currently llvm-readobj has too many redundant aliases):
* --dyn-syms is canonical. --dyn-symbols is a hidden alias * --file-header is canonical. --file-headers is a hidden alias * --histogram is canonical. --elf-hash-histogram is a hidden alias * --relocs is canonical. --relocations is a hidden alias * --section-groups is canonical. --elf-section-groups is a hidden alias
OptTable avoids global option collision if we decide to support multiplexing for binary utilities.
* Most one-dash long options are still supported. `-dt, -sd, -st, -sr` are dropped due to their conflict with grouped short options. * `--section-mapping=false` (D57365) is strange but is kept for now. * Many `cl::opt` variables were unnecessarily external. I added `static` whenever appropriate.
Reviewed By: jhenderson
Differential Revision: https://reviews.llvm.org/D105532
|
 | llvm/test/tools/llvm-readobj/ELF/grouped.test |
 | llvm/docs/CommandGuide/llvm-readobj.rst |
 | llvm/tools/llvm-readobj/Opts.td |
 | llvm/tools/llvm-readobj/llvm-readobj.cpp |
 | llvm/tools/llvm-readobj/llvm-readobj.h |
 | utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
 | llvm/test/tools/yaml2obj/ELF/shstrtab.yaml |
 | llvm/test/Object/invalid.test |
 | llvm/test/tools/llvm-readobj/ELF/string-dump.test |
 | llvm/utils/gn/secondary/llvm/tools/llvm-readobj/BUILD.gn |
 | llvm/test/tools/llvm-readobj/ELF/output-style.test |
 | llvm/test/tools/llvm-readobj/basic.test |
 | llvm/tools/llvm-readobj/CMakeLists.txt |
 | llvm/test/Support/check-default-options.txt |
 | llvm/test/tools/llvm-readobj/ELF/demangle.test |
 | llvm/docs/CommandGuide/llvm-readelf.rst |
 | llvm/test/tools/llvm-readobj/ELF/hex-dump.test |
Commit
d5c97f4bf0449f8a4ad6260c75cbf6ff3605ac04
by craig.topper[X86] Teach X86FloatingPoint's handleCall to only erase the FP stack if there is a regmask operand that clobbers the FP stack.
There are some calls to functions like `__alloca` that are missing a regmask operand. Lack of a regmask operand means that all registers that aren't mentioned by def operands are preserved. __alloca only updates EAX and ESP and has def operands for them so this is ok. Because there is no regmask the register allocator won't spill the FP registers across the call. Assuming we want to keep the FP stack untoched across these calls, we need to handle this is in the FP stackifier.
We might want to add a proper regmask operand to the code that creates these calls to indicate all registers are preserved, but we'd still need this change to the FP stackifier to know to preserve the FP stack for such a regmask.
The test is kind of long, but bugpoint wasn't able to reduce it any further.
Fixes PR50782
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D105762
|
 | llvm/lib/Target/X86/X86FloatingPoint.cpp |
 | llvm/test/CodeGen/X86/pr50782.ll |
Commit
b270c3fbdeae62d4e1aeb90d848eec4fdd22b5de
by leonardchan[NFC][compiler-rt][hwasan] Move shadow bound variables to hwasan.cpp
This way, other platforms can define these values.
Differential Revision: https://reviews.llvm.org/D105744
|
 | compiler-rt/lib/hwasan/hwasan_linux.cpp |
 | compiler-rt/lib/hwasan/hwasan.cpp |
Commit
072669521456a369409cf9db30739a3fac740173
by dvyukovsanitizer_common: optimize memory drain
Currently we allocate MemoryMapper per size class. MemoryMapper mmap's and munmap's internal buffer. This results in 50 mmap/munmap calls under the global allocator mutex. Reuse MemoryMapper and the buffer for all size classes. This radically reduces number of mmap/munmap calls. Smaller size classes tend to have more objects allocated, so it's highly likely that the buffer allocated for the first size class will be enough for all subsequent size classes.
Reviewed By: melver
Differential Revision: https://reviews.llvm.org/D105778
|
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h |
Commit
cbabfc63b1be274316552d3eaaf7b2ad88c4c073
by tlively[WebAssembly] Custom combines for f32x4.demote_zero_f64x2
Replace the clang builtin function and LLVM intrinsic for f32x4.demote_zero_f64x2 with combines from normal SDNodes. Also add missing combines for i32x4.trunc_sat_zero_f64x2_{s,u}, which share the same pattern.
Differential Revision: https://reviews.llvm.org/D105755
|
 | llvm/lib/Target/WebAssembly/WebAssemblyInstrSIMD.td |
 | llvm/test/CodeGen/WebAssembly/simd-conversions.ll |
 | clang/include/clang/Basic/BuiltinsWebAssembly.def |
 | clang/lib/Headers/wasm_simd128.h |
 | clang/test/CodeGen/builtins-wasm.c |
 | llvm/lib/Target/WebAssembly/WebAssemblyISD.def |
 | clang/lib/CodeGen/CGBuiltin.cpp |
 | llvm/test/CodeGen/WebAssembly/simd-intrinsics.ll |
 | clang/test/Headers/wasm.c |
 | llvm/include/llvm/IR/IntrinsicsWebAssembly.td |
 | llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp |
Commit
f21801dab249df506af4c62c70af34a11fa3d3e1
by thakis[lld/mac] Implement -application_extension
Differential Revision: https://reviews.llvm.org/D105818
|
 | lld/MachO/SyntheticSections.cpp |
 | lld/test/MachO/application-extension.s |
 | lld/MachO/InputFiles.cpp |
 | lld/MachO/Config.h |
 | lld/MachO/Driver.cpp |
 | lld/MachO/Options.td |
 | lld/MachO/InputFiles.h |
Commit
2377eca93c03e5de755bcb022b5eb424eec8b512
by Jinsong Ji[PowerPC] Custom Lowering BUILD_VECTOR for v2i64 for P7 as well
The lowering for v2i64 is now guarded with hasDirectMove, however, the current lowering can handle the pattern correctly, only lowering it when there is efficient patterns and corresponding instructions.
The original guard was added in D21135, and was for Legal action. The code has evloved now, this guard is not necessary anymore.
Reviewed By: #powerpc, nemanjai
Differential Revision: https://reviews.llvm.org/D105596
|
 | llvm/test/CodeGen/PowerPC/load-and-splat.ll |
 | llvm/lib/Target/PowerPC/PPCISelLowering.cpp |
 | llvm/test/CodeGen/PowerPC/vector-popcnt-128-ult-ugt.ll |
 | llvm/test/CodeGen/PowerPC/aix-vec-arg-spills.ll |
 | llvm/test/CodeGen/PowerPC/build-vector-allones.ll |
 | llvm/test/CodeGen/PowerPC/aix-vec-arg-spills-mir.ll |
Commit
5208ec5c66dc610a6cf4af999bb9211b945e1b33
by Louis Dionne[libc++] Update Google benchmark to v 1.5.5
|
 | libcxx/utils/google-benchmark/mingw.py |
 | libcxx/utils/google-benchmark/docs/tools.md |
 | libcxx/utils/google-benchmark/README.LLVM |
 | libcxx/utils/google-benchmark/test/memory_manager_test.cc |
 | libcxx/utils/google-benchmark/bindings/python/build_defs.bzl |
 | libcxx/utils/google-benchmark/src/perf_counters.cc |
 | libcxx/utils/google-benchmark/test/perf_counters_test.cc |
 | libcxx/utils/google-benchmark/test/internal_threading_test.cc |
 | libcxx/utils/google-benchmark/src/mutex.h |
 | libcxx/utils/google-benchmark/setup.py |
 | libcxx/utils/google-benchmark/.github/workflows/test_bindings.yml |
 | libcxx/utils/google-benchmark/test/BUILD |
 | libcxx/utils/google-benchmark/cmake/GoogleTest.cmake |
 | libcxx/utils/google-benchmark/test/fixture_test.cc |
 | libcxx/utils/google-benchmark/cmake/CXXFeatureCheck.cmake |
 | libcxx/utils/google-benchmark/.github/workflows/build-and-test-perfcounters.yml |
 | libcxx/utils/google-benchmark/dependencies.md |
 | libcxx/utils/google-benchmark/bindings/python/pybind11.BUILD |
 | libcxx/utils/google-benchmark/src/counter.cc |
 | libcxx/utils/google-benchmark/src/benchmark_api_internal.cc |
 | libcxx/utils/google-benchmark/.github/workflows/bazel.yml |
 | libcxx/utils/google-benchmark/tools/gbench/report.py |
 | libcxx/utils/google-benchmark/bindings/python/BUILD |
 | libcxx/utils/google-benchmark/tools/compare.py |
 | libcxx/utils/google-benchmark/src/CMakeLists.txt |
 | libcxx/utils/google-benchmark/src/string_util.cc |
 | libcxx/utils/google-benchmark/test/benchmark_gtest.cc |
 | libcxx/utils/google-benchmark/test/map_test.cc |
 | libcxx/utils/google-benchmark/bindings/python/google_benchmark/benchmark.cc |
 | libcxx/utils/google-benchmark/test/user_counters_thousands_test.cc |
 | libcxx/utils/google-benchmark/src/benchmark_runner.h |
 | libcxx/utils/google-benchmark/test/user_counters_tabular_test.cc |
 | libcxx/utils/google-benchmark/cmake/std_regex.cpp |
 | libcxx/utils/google-benchmark/tools/requirements.txt |
 | libcxx/utils/google-benchmark/src/benchmark.cc |
 | libcxx/utils/google-benchmark/src/statistics.cc |
 | libcxx/utils/google-benchmark/src/commandlineflags.h |
 | libcxx/utils/google-benchmark/test/statistics_gtest.cc |
 | libcxx/utils/google-benchmark/test/filter_test.cc |
 | libcxx/utils/google-benchmark/.travis.yml |
 | libcxx/utils/google-benchmark/include/benchmark/benchmark.h |
 | libcxx/utils/google-benchmark/_config.yml |
 | libcxx/utils/google-benchmark/docs/_config.yml |
 | libcxx/utils/google-benchmark/test/commandlineflags_gtest.cc |
 | libcxx/utils/google-benchmark/src/cycleclock.h |
 | libcxx/utils/google-benchmark/src/reporter.cc |
 | libcxx/utils/google-benchmark/bindings/python/requirements.txt |
 | libcxx/utils/google-benchmark/test/register_benchmark_test.cc |
 | libcxx/utils/google-benchmark/tools/gbench/util.py |
 | libcxx/utils/google-benchmark/cmake/posix_regex.cpp |
 | libcxx/utils/google-benchmark/BUILD.bazel |
 | libcxx/utils/google-benchmark/src/csv_reporter.cc |
 | libcxx/utils/google-benchmark/.travis-libcxx-setup.sh |
 | libcxx/utils/google-benchmark/test/reporter_output_test.cc |
 | libcxx/utils/google-benchmark/src/complexity.cc |
 | libcxx/utils/google-benchmark/test/benchmark_name_gtest.cc |
 | libcxx/utils/google-benchmark/src/benchmark_name.cc |
 | libcxx/utils/google-benchmark/test/output_test_helper.cc |
 | libcxx/utils/google-benchmark/AUTHORS |
 | libcxx/utils/google-benchmark/tools/BUILD.bazel |
 | libcxx/utils/google-benchmark/.github/.libcxx-setup.sh |
 | libcxx/utils/google-benchmark/test/complexity_test.cc |
 | libcxx/utils/google-benchmark/CMakeLists.txt |
 | libcxx/utils/google-benchmark/src/sysinfo.cc |
 | libcxx/utils/google-benchmark/.github/ISSUE_TEMPLATE/feature_request.md |
 | libcxx/utils/google-benchmark/.github/workflows/pylint.yml |
 | libcxx/utils/google-benchmark/bindings/python/python_headers.BUILD |
 | libcxx/utils/google-benchmark/cmake/benchmark.pc.in |
 | libcxx/utils/google-benchmark/test/benchmark_random_interleaving_gtest.cc |
 | libcxx/utils/google-benchmark/src/benchmark_runner.cc |
 | libcxx/utils/google-benchmark/src/commandlineflags.cc |
 | libcxx/utils/google-benchmark/docs/random_interleaving.md |
 | libcxx/utils/google-benchmark/WORKSPACE |
 | libcxx/utils/google-benchmark/test/perf_counters_gtest.cc |
 | libcxx/utils/google-benchmark/test/CMakeLists.txt |
 | libcxx/utils/google-benchmark/bindings/python/google_benchmark/BUILD |
 | libcxx/utils/google-benchmark/src/counter.h |
 | libcxx/utils/google-benchmark/.github/workflows/build-and-test.yml |
 | libcxx/utils/google-benchmark/test/AssemblyTests.cmake |
 | libcxx/utils/google-benchmark/.clang-format |
 | libcxx/utils/google-benchmark/docs/AssemblyTests.md |
 | libcxx/utils/google-benchmark/appveyor.yml |
 | libcxx/utils/google-benchmark/.gitignore |
 | libcxx/utils/google-benchmark/releasing.md |
 | libcxx/utils/google-benchmark/test/output_test.h |
 | libcxx/utils/google-benchmark/src/thread_manager.h |
 | libcxx/utils/google-benchmark/cmake/GoogleTest.cmake.in |
 | libcxx/utils/google-benchmark/docs/releasing.md |
 | libcxx/utils/google-benchmark/test/multiple_ranges_test.cc |
 | libcxx/utils/google-benchmark/src/string_util.h |
 | libcxx/utils/google-benchmark/README.md |
 | libcxx/utils/google-benchmark/src/benchmark_api_internal.h |
 | libcxx/utils/google-benchmark/test/string_util_gtest.cc |
 | libcxx/utils/google-benchmark/src/benchmark_register.cc |
 | libcxx/utils/google-benchmark/tools/gbench/Inputs/test1_run2.json |
 | libcxx/utils/google-benchmark/tools/gbench/Inputs/test4_run.json |
 | libcxx/utils/google-benchmark/src/json_reporter.cc |
 | libcxx/utils/google-benchmark/src/internal_macros.h |
 | libcxx/utils/google-benchmark/.github/workflows/sanitizer.yml |
 | libcxx/utils/google-benchmark/src/thread_timer.h |
 | libcxx/utils/google-benchmark/test/user_counters_test.cc |
 | libcxx/utils/google-benchmark/src/timers.cc |
 | libcxx/utils/google-benchmark/test/args_product_test.cc |
 | libcxx/utils/google-benchmark/CONTRIBUTORS |
 | libcxx/utils/google-benchmark/test/basic_test.cc |
 | libcxx/utils/google-benchmark/test/cxx03_test.cc |
 | libcxx/utils/google-benchmark/bindings/python/google_benchmark/__init__.py |
 | libcxx/utils/google-benchmark/.github/ISSUE_TEMPLATE/bug_report.md |
 | libcxx/utils/google-benchmark/cmake/HandleGTest.cmake |
 | libcxx/utils/google-benchmark/src/benchmark_register.h |
 | libcxx/utils/google-benchmark/bindings/python/google_benchmark/example.py |
 | libcxx/utils/google-benchmark/requirements.txt |
 | libcxx/utils/google-benchmark/docs/perf_counters.md |
 | libcxx/utils/google-benchmark/src/sleep.cc |
 | libcxx/utils/google-benchmark/cmake/gnu_posix_regex.cpp |
 | libcxx/utils/google-benchmark/cmake/GetGitVersion.cmake |
 | libcxx/utils/google-benchmark/src/perf_counters.h |
 | libcxx/utils/google-benchmark/test/skip_with_error_test.cc |
 | libcxx/utils/google-benchmark/tools/gbench/Inputs/test1_run1.json |
 | libcxx/utils/google-benchmark/test/repetitions_test.cc |
 | libcxx/utils/google-benchmark/src/console_reporter.cc |
 | libcxx/utils/google-benchmark/test/state_assembly_test.cc |
 | libcxx/utils/google-benchmark/test/options_test.cc |
 | libcxx/utils/google-benchmark/cmake/AddCXXCompilerFlag.cmake |
Commit
97661b86345d2db084b147a0a36c63042eb1bc50
by nikita.ppvRevert "sanitizer_common: optimize memory drain"
This reverts commit 072669521456a369409cf9db30739a3fac740173.
This causes the following build failure with gcc 10.3.0:
/home/nikic/llvm-project/compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h:114:31: error: declaration of ‘typedef class __sanitizer::MemoryMapper<__sanitizer::SizeClassAllocator64<Params> > __sanitizer::SizeClassAllocator64<Params>::MemoryMapper’ changes meaning of ‘MemoryMapper’ [-fpermissive] 114 | typedef MemoryMapper<ThisT> MemoryMapper;
|
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_local_cache.h |
 | compiler-rt/lib/sanitizer_common/sanitizer_allocator_primary64.h |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_allocator_test.cpp |
Commit
6ebbf755b61539788919163853446e73fcff74c2
by gcmn[Bazel] Update configuration to HEAD
Bazel configuration updates for https://github.com/llvm/llvm-project/commit/75e5f0aac97d, https://github.com/llvm/llvm-project/commit/c282d55a3857, and https://github.com/llvm/llvm-project/commit/26e59cc19f86
Tested: `bazel test ... @llvm-project//...`
Differential Revision: https://reviews.llvm.org/D105830
|
 | utils/bazel/llvm-project-overlay/mlir/test/BUILD.bazel |
 | utils/bazel/llvm-project-overlay/mlir/BUILD.bazel |
Commit
5d1464cbfe907ba2e75fb97386164c1d30151f95
by nikita.ppv[Attributes] Make type attribute handling more generic (NFCI)
Followup to D105658 to make AttrBuilder automatically work with new type attributes. TableGen is tweaked to emit First/LastTypeAttr markers, based on which we can handle type attributes programmatically.
Differential Revision: https://reviews.llvm.org/D105763
|
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
 | llvm/utils/TableGen/Attributes.cpp |
 | llvm/include/llvm/IR/Attributes.h |
 | llvm/lib/IR/Attributes.cpp |
Commit
8ba53152d7791e19b38e117b4e92473c5d902c07
by Krzysztof.DrewniakAdd newline to fix documentation build
Reviewed By: xgupta
Differential Revision: https://reviews.llvm.org/D105825
|
 | llvm/docs/AMDGPUUsage.rst |
Commit
b4a6fa12d1fdcc9a446432218d9990a6c6797c83
by Vitaly BukaRevert "sanitizer_common: add simpler ThreadRegistry ctor"
Breaks https://lab.llvm.org/buildbot/#/builders/sanitizer-x86_64-linux-android
This reverts commit 6062c672bc5e560a4c3dc73741f9e82b39d08527. This reverts commit 8e489b4b96e31cfb004e03cfa1393c425c504013.
|
 | compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.cpp |
 | compiler-rt/lib/asan/asan_thread.cpp |
 | compiler-rt/lib/sanitizer_common/tests/sanitizer_thread_registry_test.cpp |
 | compiler-rt/lib/asan/asan_thread.h |
 | compiler-rt/lib/memprof/memprof_thread.cpp |
 | compiler-rt/lib/sanitizer_common/sanitizer_thread_registry.h |
 | compiler-rt/lib/memprof/memprof_thread.h |
 | compiler-rt/lib/lsan/lsan_thread.cpp |
Commit
3fb0621fafbb16ea157830b308c26a77ba0a04e3
by nikita.ppv[Attributes] Assert correct attribute constructor is used (NFCI)
Assert that enum/int/type attributes go through the constructor they are supposed to use.
To make sure this can't happen via invalid bitcode, explicitly verify that the attribute kind if correct there.
|
 | llvm/include/llvm/IR/Attributes.h |
 | llvm/lib/IR/Attributes.cpp |
 | llvm/lib/Bitcode/Reader/BitcodeReader.cpp |
Commit
363e12ae6fceea3870898bc230841c8b0b00925a
by nikita.ppv[Attributes] Simplify attribute sorting (NFCI)
It's not necessary to explicitly sort by enum/int/type attribute, as the attribute kinds are already sorted this way. We can directly sort by kind.
|
 | llvm/lib/IR/Attributes.cpp |
Commit
798fe3c774a1af75c8735933ded749fa62f39594
by wanyu9511[PowerPC][AIX] Fix Zero-width bit fields wrt MaxFieldAlign.
On AIX when there is a pragma pack, or pragma align in effect then zero-width bitfields should pad out to the end of the bitfield container but not increase the alignment requirements of the struct greater then the max field align.
Reviewed By: ZarkoCA
Differential Revision: https://reviews.llvm.org/D105635
|
 | clang/lib/AST/RecordLayoutBuilder.cpp |
 | clang/test/Layout/aix-packed-bitfields.c |
 | clang/test/Layout/aix-bitfield-alignment.c |
Commit
87bfc49db5d441c6e917daeb695e105cc1982ed2
by Louis Dionne[libc++][ci] Add arch and os tags to the macOS CI builders
|
 | libcxx/utils/ci/macos-ci-setup |
Commit
6b3eba7c285c9399f1a198d5490ac9522f2fd614
by marksl[ARC] Add disassembly for the conditioned move immediate instruction
This change is a step towards implementing codegen for __builtin_clz(). Full support for CLZ with a regression test will follow shortly. Differential Revision: https://reviews.llvm.org/D105560
|
 | llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.cpp |
 | llvm/lib/Target/ARC/ARCInstrInfo.td |
 | llvm/lib/Target/ARC/MCTargetDesc/ARCInstPrinter.h |
 | llvm/lib/Target/ARC/Disassembler/ARCDisassembler.cpp |
 | llvm/lib/Target/ARC/ARCInstrFormats.td |
Commit
ae0d73ac3bb842a9a043986f2925efb08f8c569a
by llvm-dev[CostModel][X86] Adjust fptosi/fptoui SSE/AVX legalized costs based on llvm-mca reports.
Update (mainly) vXf32/vXf64 -> vXi8/vXi16 fptosi/fptoui costs based on the worst case costs from the script in D103695.
Move to using legalized types wherever possible, which allows us to prune the cost tables.
|
 | llvm/lib/Target/X86/X86TargetTransformInfo.cpp |
 | llvm/test/Transforms/SLPVectorizer/X86/fptoui.ll |
 | llvm/test/Analysis/CostModel/X86/fptosi.ll |
 | llvm/test/Transforms/LoopVectorize/X86/fp_to_sint8-cost-model.ll |
 | llvm/test/Analysis/CostModel/X86/fptoui.ll |
Commit
1ca748608dd45d7c2975715528b4f06d348e5e5a
by Louis Dionne[libc++] Exit from macos-ci-setup upon error
|
 | libcxx/utils/ci/macos-ci-setup |
Commit
279c3a5be3b4f3030584033823f19752325d08ce
by gcmn[Bazel] ignore build files under libcxx's copy of google-benchmark
https://github.com/llvm/llvm-project/commit/5208ec5c66dc updated the of google-benchmark under libcxx adding a BUILD.bazel file. This upsets Bazel in our overlay configuration because it tries to interpret this file.
Currently this is breaking the CI: https://buildkite.com/llvm-project/upstream-bazel-rbe/builds/1828
Tested (same command the CI uses) `bazel query //... + @llvm-project//... | xargs bazel test --config=generic-clang --config=rbe --test_output=errors --test_tag_filters=-nobuildkite --build_tag_filters=-nobuildkite`
Differential Revision: https://reviews.llvm.org/D105833
|
 | utils/bazel/llvm-project-overlay/.bazelignore |
Commit
6ac32872ee2fa02bdce54b25641d9a21cfbcfa9a
by nikita.ppv[Attributes] Replace doesAttrKindHaveArgument() (NFC)
This is now the same as isIntAttrKind(), so use that instead, as it does not require manual maintenance. The naming is also more accurate in that both int and type attributes have an argument, but this method was only targeting int attributes.
I initially wanted to tighten the AttrBuilder assertion, but we have some in-tree uses that would violate it.
|
 | llvm/lib/IR/AttributeImpl.h |
 | llvm/lib/IR/Verifier.cpp |
 | llvm/lib/Transforms/Utils/AssumeBundleBuilder.cpp |
 | llvm/include/llvm/IR/Attributes.h |
 | llvm/lib/Analysis/AssumeBundleQueries.cpp |
 | mlir/lib/Target/LLVMIR/ModuleTranslation.cpp |
 | llvm/lib/IR/Attributes.cpp |
Commit
59bb72262425a0206bdb4a2ff3f54653bc898e14
by nikita.ppv[Attributes] Remove duplicate attribute in typeIncompatible() (NFC)
InAlloca was listed twice, once as a normal attribute, once as a type attribute.
|
 | llvm/lib/IR/Attributes.cpp |
Commit
0a9afaf7363bb101b9836ac188f5180d7ceb8db6
by Louis Dionne[libc++] Encode the arch and OS in buildkite agent tags
|
 | libcxx/utils/ci/Dockerfile |
Commit
1689d14ed1b826e9e9ef1a70e078ae413fdd538c
by aardappel[WebAssembly] fix typo in range check for Asm locals
|
 | llvm/lib/Target/WebAssembly/AsmParser/WebAssemblyAsmTypeCheck.cpp |
Commit
e5e291e13502cdce6eafcb971c8e8beb2754f244
by zoecarver[libcxx][docs] Update the ranges status document to reflect the current state of the world.
Marks a few things as done. Marks a few things as in progress. Assigns a few things to me.
|
 | libcxx/docs/Status/RangesPaper.csv |
Commit
7ed3e87825b48747bc5e4fb6daa1f08b543c4ec9
by nikita.ppv[Attributes] Determine attribute properties from TableGen data
Continuing from D105763, this allows placing certain properties about attributes in the TableGen definition. In particular, we store whether an attribute applies to fn/param/ret (or a combination thereof). This information is used by the Verifier, as well as the ForceFunctionAttrs pass. I also plan to use this in LLParser, which also duplicates info on which attributes are valid where.
This keeps metadata about attributes in one place, and makes it more likely that it stays in sync, rather than in various functions spread across the codebase.
Differential Revision: https://reviews.llvm.org/D105780
|
 | llvm/unittests/IR/VerifierTest.cpp |
 | llvm/include/llvm/IR/Attributes.h |
 | llvm/utils/TableGen/Attributes.cpp |
 | llvm/lib/IR/Attributes.cpp |
 | llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp |
 | llvm/include/llvm/IR/Attributes.td |
 | llvm/lib/IR/Verifier.cpp |
Commit
8ea1a630d66f4d70a7177c6eb522a3efff21b1be
by walter erquinigo[vscode] fix ubsan problem in the progress event reporter
The error
UndefinedBehaviorSanitizer: undefined-behavior /Users/buildslave/jenkins/workspace/lldb-cmake-sanitized/llvm-project/lldb/tools/lldb-vscode/ProgressEvent.cpp:89:64 in
was found in https://green.lab.llvm.org/green/view/LLDB/job/lldb-cmake-sanitized/1910/consoleFull#-15641370498254eaf0-7326-4999-85b0-388101f2d404
It turns out that we were not setting m_event_type when initializatin and update case. The fix is very simple.
Differential Revision: https://reviews.llvm.org/D105832
|
 | lldb/tools/lldb-vscode/ProgressEvent.cpp |
Commit
0ec812023b43992810499b04222348fdbdb41ef2
by flx[clang-tidy] performance-unnecessary-copy-initialization: Do not remove comments on new lines.
When deleting the copy assignment statement because copied variable is not used only remove trailing comments on the same line.
Differential Revision: https://reviews.llvm.org/D105734
Reviewed-by: ymandel
|
 | clang-tools-extra/test/clang-tidy/checkers/performance-unnecessary-copy-initialization.cpp |
 | clang-tools-extra/clang-tidy/performance/UnnecessaryCopyInitialization.cpp |
Commit
d5d477780cf8ffb418975742d837bb2ccb5837f7
by martin[libcxx] [test] Fix spurious failures in the thread join test on Windows
Make sure that the detached thread has started up before exiting the process.
This is exactly the same fix as D105592, with the same pattern being present in a different test case.
Differential Revision: https://reviews.llvm.org/D105736
|
 | libcxx/test/std/thread/thread.threads/thread.thread.class/thread.thread.member/join.pass.cpp |
Commit
40843347b37cc73fd0208c63a19359df6b2bf67b
by gusss[mlir][sparse] Add Merger unit tests (with gcc5 build fix)
This is a fix of https://reviews.llvm.org/D104956, which broke the gcc5 build.
We opt to use unit tests rather than check tests as the lattice/merger code is a small C++ component with a well-defined API. Testing this API via check tests would be far less direct and readable. In addition, as the check tests will only be able to test the API indirectly, the tests may break based on unrelated changes; e.g. changes in linalg.
Reviewed By: aartbik
Differential Revision: https://reviews.llvm.org/D105828
|
 | mlir/unittests/Dialect/SparseTensor/MergerTest.cpp |
 | mlir/unittests/Dialect/CMakeLists.txt |
 | mlir/unittests/Dialect/SparseTensor/CMakeLists.txt |
Commit
8fe058dbe49b060c85f490ece2268c32b0fad7c8
by Yaxun.Liu[clang] Document llvm options controlling pragma unroll
Reviewed by: Artem Belevich
Differential Revision: https://reviews.llvm.org/D105035
|
 | clang/docs/LanguageExtensions.rst |
Commit
877e97a9546462a8a930642e14100b0b2acd4da4
by Louis Dionne[libc++] Use 'os' tags to target Linux libc++ builders
|
 | libcxx/docs/AddingNewCIJobs.rst |
 | libcxx/utils/ci/buildkite-pipeline.yml |
Commit
15df9c9881aebf58dd54fb4e8dd1c1a77684fd7f
by Louis Dionne[libc++][ci] Clean up the Docker image
- Remove symlinks that are not used anymore - Stop installing GCC 10, which isn't tested anymore
|
 | libcxx/utils/ci/Dockerfile |
Commit
35909ff6cf27373efa6f1974d4ad349beb6959a0
by amy.kwan1[PowerPC] Fix the splat immediate in PPCMIPeephole depending on if we have an Altivec and VSX splat instruction.
An assertion of the following can occur because Altivec and VSX splats use a different operand number for the immediate: ``` int64_t llvm::MachineOperand::getImm() const: Assertion `isImm() && "Wrong MachineOperand accessor"' failed. ``` This patch updates PPCMIPeephole.cpp assign the correct splat immediate.
Differential Revision: https://reviews.llvm.org/D105790
|
 | llvm/test/CodeGen/PowerPC/aix-vsx-splatimm.ll |
 | llvm/lib/Target/PowerPC/PPCMIPeephole.cpp |
Commit
379f24ffde03d1730f1e8332574865277a5478fe
by jinghamRevert "Revert "Reset the wakeup timeout when we re-enter the continue wait.""
This reverts commit 82a38837150099288a1262391ef43e1fd69ffde4.
The original version had a copy-paste error: using the Interrupt timeout for the ResumeSynchronous wait, which is clearly wrong. This error would have been evident with real use, but the interrupt is long enough that it only caused one testsuite failure (in the Swift fork).
Anyway, I found that mistake and fixed it and checked all the other places where I had to plumb through a timeout, and added a test with a short interrupt timeout stepping over a function that takes 3x the interrupt timeout to complete, so that should detect a similar mistake in the future.
|
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.h |
 | lldb/test/API/functionalities/step-vrs-interrupt/TestStepVrsInterruptTimeout.py |
 | lldb/unittests/Process/gdb-remote/GDBRemoteClientBaseTest.cpp |
 | lldb/test/API/functionalities/step-vrs-interrupt/main.cpp |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.cpp |
 | lldb/unittests/tools/lldb-server/tests/TestClient.cpp |
 | lldb/source/Target/Process.cpp |
 | lldb/test/API/functionalities/gdb_remote_client/TestHaltFails.py |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp |
 | lldb/unittests/Process/gdb-remote/GDBRemoteCommunicationClientTest.cpp |
 | lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp |
 | lldb/source/Target/TargetProperties.td |
 | lldb/include/lldb/Target/Process.h |
 | lldb/test/API/functionalities/step-vrs-interrupt/Makefile |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteClientBase.h |
 | lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp |
 | lldb/source/Plugins/Platform/gdb-server/PlatformRemoteGDBServer.cpp |
Commit
cb30d597c4efe7842e32f19780144e3654884747
by Louis Dionne[libc++] Add the 'os=macos' tag to macOS nodes to workaround lack of wildcard matching
|
 | libcxx/utils/ci/macos-ci-setup |
Commit
e47444e2164c92712f0e6822d7796258b82fe4ba
by Louis Dionne[libc++] ci: Properly target macOS nodes per-os
|
 | libcxx/utils/ci/buildkite-pipeline.yml |
Commit
ec1cdee6aaaf7b51c0e0271ad09136b47a76608b
by efriedma[SelectionDAG][RISCV] Support @llvm.vscale.i64() on 32-bit targets.
Not really useful on its own, but D105673 depends on it.
Differential Revision: https://reviews.llvm.org/D105840
|
 | llvm/test/CodeGen/RISCV/rvv/rvv-vscale.i64.ll |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp |
 | llvm/lib/CodeGen/SelectionDAG/LegalizeTypes.h |
Commit
622eb169f650ad0502829cf4b068a5d9f7f7a209
by ajcbik[mlir][sparse] add restrictive versions of division support
Right now, we only accept x/c with nonzero c, since this conceptually can be treated as a x*(1/c) conjunction for both FP and INT as far as lattice computations go. The codegen keeps the division though to preserve precise semantics.
See discussion: https://llvm.discourse.group/t/sparse-tensors-in-mlir/3389/28
Reviewed By: gussmith23
Differential Revision: https://reviews.llvm.org/D105731
|
 | mlir/test/Dialect/SparseTensor/sparse_fp_ops.mlir |
 | mlir/test/Dialect/SparseTensor/sparse_int_ops.mlir |
 | mlir/include/mlir/Dialect/SparseTensor/Utils/Merger.h |
 | mlir/lib/Dialect/SparseTensor/Transforms/Sparsification.cpp |
 | mlir/lib/Dialect/SparseTensor/Utils/Merger.cpp |
Commit
b568c11b4090ce25bcb5e5efa9c1c504e0074bd7
by aardappel[WebAssembly] Fixed LLD generation of 64-bit __wasm_init_memory
Differential Revision: https://reviews.llvm.org/D105849
|
 | lld/wasm/Writer.cpp |
 | lld/test/wasm/data-segments.ll |
Commit
6c04b7dd4fb4bfcc5db10b844d6235abbb21b805
by efriedma[AArch64] Optimize overflow checks for [s|u]mul.with.overflow.i32.
Saves one instruction for signed, uses a cheaper instruction for unsigned.
Differential Revision: https://reviews.llvm.org/D105770
|
 | llvm/test/CodeGen/AArch64/arm64-xaluo.ll |
 | llvm/lib/Target/AArch64/AArch64ISelLowering.cpp |
 | llvm/lib/Target/AArch64/AArch64FastISel.cpp |