aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2024-03-13[𝘀𝗽𝗿] initial versionusers/dc03-work/spr/aarch64globalisel-avoid-splitting-loads-of-large-vector-types-into-individual-element-loads-1Dhruv Chawla7-770/+379
Created using spr 1.3.5
2024-03-13[𝘀𝗽𝗿] changes to main this commit is based onusers/dc03-work/spr/main.aarch64globalisel-avoid-splitting-loads-of-large-vector-types-into-individual-element-loads-1Dhruv Chawla5-163/+779
Created using spr 1.3.5 [skip ci]
2024-03-12[llvm-objcopy] Remove unneeded #include. NFCFangrui Song2-2/+2
2024-03-12[llvm-objcopy] Use SmallVector to make some structs smaller. NFCFangrui Song2-10/+9
2024-03-12[tsan] Disabled test dead locking on glibc-2.38Vitaly Buka2-1/+5
https://github.com/google/sanitizers/issues/1733
2024-03-12[libc] Include additional baremetal entrypoints (#85020)Petr Hosek3-0/+90
These functions are usable on embedded platforms and are sometimes used in various baremetal projects.
2024-03-12[libc] Add an empty definition of mbstate_t (#84993)Petr Hosek9-0/+63
We expect to eventually provide a complete implementation, but having an empty definition is necessary to unblock the use of libc++ in embedded environments. See #84884 for more details.
2024-03-13[mlir][ods] Fix generation of optional custom parsers (#84821)Jeff Niu8-10/+48
We need to generate `.has_value` for `OptionalParseResult`, also ensure that `auto result` doesn't conflict with `result` which is the variable name for `OperationState`.
2024-03-13Revert "[llvm][LoongArch] Improve loongarch_lasx_xvpermi_q instrinsic" (#84708)Lu Weining2-54/+1
Reverts llvm/llvm-project#82984 See the discussion in https://github.com/llvm/llvm-project/pull/83540.
2024-03-12[libc][math] Adds entrypoint and test for `nextafterf128` (#84882)Michael Flanders13-3/+118
2024-03-13[NFC] [C++20] [Modules] Refactor ReducedBMIGeneratorChuanqi Xu3-22/+36
Changes: - Don't lookup the emitting module from HeaderSearch. We will use the module from the ASTContext directly. - Remove some useless arguments. Let's addback in the future if required.
2024-03-13Update BUILD.bazel for 0ebf511ad011a83022edb171e044c98d9d16b1faSterling Augustine1-0/+1
2024-03-12[libc] Move `struct timespec` from POSIX to StdC (#85010)Petr Hosek3-4/+5
`struct timespec` is actually defined in the C standard, not POSIX.
2024-03-13Add missing dependency after 80ab8234ac309418637488b97e0a62d8377b2ecfSterling Augustine1-0/+1
2024-03-12[mlir][sparse] Fix sparse_generate test (#85009)Yinying Li1-12/+5
std::uniform_int_distribution may behave differently in different systems.
2024-03-13[NFC] [C++20] [Modules] [P1689] [Scanner] Don't use thread pool in P1689 per ↵Chuanqi Xu1-95/+100
file mode (#84285) I suddenly found that the clang scan deps may use all concurrent threads to scan the files. It makes sense in the batch mode. But in P1689 per file mode, it simply wastes times and resources. This patch itself should be a NFC patch. It simply moves codes.
2024-03-12[libc] Use __builtin_ffsll for RPC lane mask (#85000)Petr Hosek1-1/+1
src/__support/GPU/utils.h doesn't compile on a 32-bit platforms because __builtin_ffsl uses long which is a 32-bit number. Use __builtin_ffsll which uses long long which is guaranteed to be at least 64-bits.
2024-03-12[FuzzMutate] Only use undef when explictly asked to (#84959)Peter Rong1-1/+7
Per discussion in https://github.com/SecurityLab-UCD/IRFuzzer/issues/49, generating undef during fuzzing seems to be less fruitful. Let's eliminate undef in favor of poison unless the user explicitly asked for it. Signed-off-by: Peter Rong <PeterRong96@gmail.com>
2024-03-12[mlir][sparse] Finish migrating integration tests to use sparse_tensor.print ↵Yinying Li19-533/+670
(#84997)
2024-03-12[sanitizer][windows] report symbols in clang_rt. or \compiler-rt\lib\ as ↵Charlie Barto1-0/+4
internal. (#84971) This is the windows equivalent to the existing filters. Work from https://github.com/llvm/llvm-project/pull/81677 that can be applied separately (and is actually not critical for that PR)
2024-03-12[LangRef] Fix mistake in example (#84849)Vitaly Buka1-3/+3
2024-03-13[Clang][Sema] Allow access to a public template alias declaration that ↵Qizhi Hu3-3/+29
refers to friend's private nested type (#83847) This patch attempts to fix https://github.com/llvm/llvm-project/issues/25708 Current access check missed qualifier(`NestedNameSpecifier`) in friend class checking. Add it to `Records` of `EffectiveContext` by changing the `DeclContext` makes `MatchesFriend` work. Co-authored-by: huqizhi <836744285@qq.com>
2024-03-13[gn build] Port 2aacb56e8361LLVM GN Syncbot1-0/+1
2024-03-13[llvm][Mips] Use a Target ISD opcode for PseudoD_SELECT (#84294)Roger Ferrer Ibáñez3-4/+10
The Mips target uses two TargetOpcode enumerators called `PseudoD_SELECT_I` and `PseudoD_SELECT_I64`. A SDAG node is created using these enumerators which is manually selected in `MipsSEISelDAGToDAG.cpp` and ultimately expanded in `EmitInstrWithCustomInserter` in `MipsISelLowering.cpp`. This is not causing any upstream build to fail at the moment but it is not guaranteed that these enumerators do not clash with Target ISD nodes (i.e. those in the `MipsISD` namespace). We have seen this happening in our downstream builds in which `Mips::PseudoD_SELECT_I` ends having the same integer value as `MipsISD::VEXTRACT_ZEXT_ELT`. This confuses the function `trySelect` in `MipsSEISelDAGToDAG.cpp` and causes a crash in 3 tests. This change adds a new Target ISD opcode for these two cases and uses them for the SDAG nodes. No test is included because this is a potential error in the future not one that can be demonstrated in the current codebase.
2024-03-13BPF address space insn (#84410)4ast21-0/+615
This commit aims to support BPF arena kernel side [feature](https://lore.kernel.org/bpf/20240209040608.98927-1-alexei.starovoitov@gmail.com/): - arena is a memory region accessible from both BPF program and userspace; - base pointers for this memory region differ between kernel and user spaces; - `dst_reg = addr_space_cast(src_reg, dst_addr_space, src_addr_space)` translates src_reg, a pointer in src_addr_space to dst_reg, equivalent pointer in dst_addr_space, {src,dst}_addr_space are immediate constants; - number 0 is assigned to kernel address space; - number 1 is assigned to user address space. On the LLVM side, the goal is to make load and store operations on arena pointers "transparent" for BPF programs: - assume that pointers with non-zero address space are pointers to arena memory; - assume that arena is identified by address space number; - assume that address space zero corresponds to kernel address space; - assume that every BPF-side load or store from arena is done via pointer in user address space, thus convert base pointers using `addr_space_cast(src_reg, 0, 1)`; Only load, store, cmpxchg and atomicrmw IR instructions are handled by this transformation. For example, the following C code: ```c #define __as __attribute__((address_space(1))) void copy(int __as *from, int __as *to) { *to = *from; } ``` Compiled to the following IR: ```llvm define void @copy(ptr addrspace(1) %from, ptr addrspace(1) %to) { entry: %0 = load i32, ptr addrspace(1) %from, align 4 store i32 %0, ptr addrspace(1) %to, align 4 ret void } ``` Is transformed to: ```llvm %to2 = addrspacecast ptr addrspace(1) %to to ptr ;; ! %from1 = addrspacecast ptr addrspace(1) %from to ptr ;; ! %0 = load i32, ptr %from1, align 4, !tbaa !3 store i32 %0, ptr %to2, align 4, !tbaa !3 ret void ``` And compiled as: ```asm r2 = addr_space_cast(r2, 0, 1) r1 = addr_space_cast(r1, 0, 1) r1 = *(u32 *)(r1 + 0) *(u32 *)(r2 + 0) = r1 exit ``` Co-authored-by: Eduard Zingerman <eddyz87@gmail.com>
2024-03-12[tsan] Add missing link option to tsan test after #84923Dave Clausen1-1/+1
Pull Request: https://github.com/llvm/llvm-project/pull/85003
2024-03-12[GISEL] Add G_VSCALE instruction (#84542)Michael Maitland8-0/+92
2024-03-12[lldb][debugserver] Update flags past to app launch requestJason Molenda1-0/+2
rdar://117421999
2024-03-12[MLIR][ROCDL] Add BallotOp and lit test (#84856)Zahi Moudallal2-0/+17
2024-03-12[libc] Include FP_* macros in math.h (#84996)Petr Hosek1-0/+6
These are used unconditionally by libc++ math.h. This is related to issue #84879.
2024-03-12Relax test to work with newer versions of lldbAdrian Prantl1-3/+2
2024-03-12[mlir][sparse] reuse tensor.insert operation to insert elements into … ↵Peiming Liu26-182/+106
(#84987) …a sparse tensor.
2024-03-12[llvm-exegesis] Use LLVM Support to get thread IDAiden Grossman3-16/+7
This patch switches from manually using the Linux syscall to get the current thread ID to using the relevant LLVM Support libraries that abstract over the low level system details.
2024-03-12Reland "[llvm-exegesis] Add thread IDs to subprocess memory names (#84451)"Aiden Grossman4-15/+34
This reverts commit aefad27096bba513f06162fac2763089578f3de4. This relands commit 6bbe8a296ee91754d423c59c35727eaa624f7140. This patch was casuing build failures on non-Linux platforms due to the default implementations for the functions not being updated. This ended up causing out-of-line definition errors. Fixed for the relanding.
2024-03-13[MIPS] Introduce NAL instruction support for Mipsr6 and prer6 (#84429)anbbna6-2/+65
NAL is an assembly idiom on Pre-R6 instruction sets (which is implemented in binutils), or an actual instruction on Release 6 instruction set, and is used to read the PC, due to the nature of the MIPS architecture. Since we can't read the PC directly, on pre-R6 we use a always-not-taken Branch and Link operation to the address of the next instruction, which effectively writes the address to $31, thus PC is read with offset +8. MIPS Release 6 removed the conventional Branch and Link instructions, but kept NAL as an actual instruction for compatibility on the assembly level. The instruction has the same encoding of the pre-R6 ones, and with the same behavior: PC + 8 -> $31.
2024-03-12Modernize llgdb script and make it easier to debug.Adrian Prantl1-4/+10
2024-03-12Relax tests to also work with newer versions of lldb.Adrian Prantl2-8/+8
- result variables are optional - static members may print their values - public/protected shows up in ptype output
2024-03-12[BOLT] Add support for Linux kernel PCI fixup section (#84982)Maksim Panchenko2-33/+134
.pci_fixup section contains a table with entries allowing to invoke a fixup hook whenever a problem is encountered with a PCI device. The hookup code typically points to the start of a function. As we are not relocating functions in the kernel (at least not yet), verify this assumption while reading the table and ignore any functions with a fixup code in the middle.
2024-03-12Fix race in the implementation of __tsan_acquire() (#84923)Dave Clausen2-1/+44
`__tsan::Acquire()`, which is called by `__tsan_acquire()`, has a performance optimization which attempts to avoid acquiring the atomic variable's mutex if the variable has no associated memory model state. However, if the atomic variable was recently written to by a `compare_exchange_weak/strong` on another thread, the memory model state may be created *after* the atomic variable is updated. This is a data race, and can cause the thread calling `Acquire()` to not realize that the atomic variable was previously written to by another thread. Specifically, if you have code that writes to an atomic variable using `compare_exchange_weak/strong`, and then in another thread you read the value using a relaxed load, followed by an `atomic_thread_fence(memory_order_acquire)`, followed by a call to `__tsan_acquire()`, TSAN may not realize that the store happened before the fence, and so it will complain about any other variables you access from both threads if the thread-safety of those accesses depended on the happens-before relationship between the store and the fence. This change eliminates the unsafe optimization in `Acquire()`. Now, `Acquire()` acquires the mutex before checking for the existence of the memory model state.
2024-03-12[lldb][test] TestExprCompletion.py: add tests for completion of reserved ↵Michael Buch4-0/+19
identifiers (#84890)
2024-03-12[clang][CodeCompletion] Allow debuggers to code-complete reserved ↵Michael Buch2-1/+10
identifiers (#84891)
2024-03-12Update GettingStarted.rst doc with negative refspec to filter user branches ↵Mehdi Amini1-3/+7
(#75015) This allows to keep fetching release branches as well.
2024-03-12Fix unittest after #84460: only applicable if the platform supports JITStefan Gränitz1-0/+22
2024-03-12[Arm64EC] Copy import descriptors to the EC Map (#84834)Daniel Paoliello5-6/+39
As noted in <https://github.com/llvm/llvm-project/pull/78537>, MSVC places import descriptors in both the EC and regular map - that PR moved the descriptors to ONLY the regular map, however this causes linking errors when linking as Arm64EC: ``` bcryptprimitives.lib(bcryptprimitives.dll) : error LNK2001: unresolved external symbol __IMPORT_DESCRIPTOR_bcryptprimitives (EC Symbol) ``` This change copies import descriptors from the regular map to the EC map, which fixes this linking error.
2024-03-12AMDGPU: Copy TSFlags from Pseudo to DS_Real (#84977)Changpeng Fang1-0/+1
We need TSFalgs from pseudo to real.
2024-03-12[TableGen] DecoderEmitter clean-ups and modernization. (#84832)Jason Eckhardt1-336/+317
The decoder emitter is showing some signs of age. This patch makes a few kinds of clean-ups: - Use ranged-for more widely, including using enumerate() for those loops maintaining a loop index along with the items. - Reduce the number of arguments to fieldFromInsn (removes an out reference parameter: CodingStandards). The insn_t argument to insnWithID can/should probably be removed soon too since modern C++ allows us to return a local container without a copy. - Use raw strings for the large emitted code segments. This enhances both readability and modifiability.
2024-03-12[DirectX][NFC] Model precise overload type specification of DXIL Ops (#83917)S. Bharadwaj Yadavalli9-75/+203
Implement an abstraction to specify precise overload types supported by DXIL ops. These overload types are typically a subset of LLVM intrinsics. Implement the corresponding changes in DXILEmitter backend. Add tests to verify expected errors for unsupported overload types at code generation time. Add tests to check for correct overload error output.
2024-03-12[Fuchsia] Add LLDB_TEST_USE_VENDOR_PACKAGES to boostrap passthroughDaniel Thornburgh1-0/+1
2024-03-12[SLP][NFC]Add a test with non-profitable alternate vectorizedAlexey Bataev1-0/+190
instructions.
2024-03-12Get rid of noisy debug log in verifyOpAndAdjustFlags. (#84677)Justin Lebar1-3/+0
This debug log adds noise to a large fraction of *other* debug logs when you run with -debug, because it prints "Verifying operation: blah blah\n" whenever those other debug logs dump an op. You can use -debug-only to get around this, but sometimes -debug really is what's called for!