Commit Graph

537187 Commits

Author SHA1 Message Date
agozillon
f687ed9ff7 [Flang][OpenMP] Initial defaultmap implementation (#135226)
This aims to implement most of the initial arguments for defaultmap
aside from firstprivate and none, and some of the more recent OpenMP 6
additions which will come in subsequent updates (with the OpenMP 6
variants needing parsing/semantic support first).
2025-05-12 16:30:43 +02:00
Chao Chen
db42345dc6 [MLIR][XeGPU] Add unroll patterns for XeGPU (1/N) (#137010)
Similar to vector ops, XeGPU ops need to be unrolled into smaller shapes
such that they can be dispatched into a hardware instruction. This PR
marks the initial phase of a series dedicated to incorporating unroll
patterns for XeGPU operations. In this installment, we introduce
patterns for the following operations:
1. createNd
2. updateNd
3. prefetchNd
4. loadNd
5. storeNd
6. dpas
2025-05-12 09:16:21 -05:00
Florian Hahn
d39ca81fdd [LoopPeel] Add initial tests for peeling the last iteration.
Precommit tests for upcoming PR.
2025-05-12 14:56:21 +01:00
Fraser Cormack
87978ea272 [libclc] Move tan to the CLC library (#139547)
There was already a __clc_tan in the OpenCL layer. This commit moves the
function over whilst vectorizing it.

The function __clc_tan is no longer a public symbol, which should have
never been the case.
2025-05-12 14:55:27 +01:00
Alexey Bataev
2e13f7ab01 [SLP][NFC]Add a test with the incorrect vectorization for the pointers with distance difference > 2^32 2025-05-12 06:30:05 -07:00
Ramkumar Ramachandra
c1e678b134 [LAA] Improve code in replaceSymbolicStrideSCEV (NFC) (#139532)
Prefer DenseMap::lookup over DenseMap::find.
2025-05-12 14:18:26 +01:00
Jinsong Ji
ed81a8144a [NFC][Clang] Don't check hardcode op num (#135375)
The num will change for any downstream customization.
2025-05-12 09:10:16 -04:00
Simon Pilgrim
2de0c927ae [X86] Use X86 check prefix for 32-bit instead of X32 in tail call tests. NFC.
X32 is supposed to be used for gnux32 test coverage
2025-05-12 13:56:45 +01:00
Feng Zou
980a7e75bc [X86][AVX10] Fix assertion with strict fcmp (#139500)
Check the strict mode and return MERGE_VALUES to fix the assertion of
invalid index for values defined in Res node.
2025-05-12 20:56:34 +08:00
Feng Zou
80547cd705 [X86][APX] Fix issues of suppressing APX for relocation (#139285)
1. There is ADD64rm_ND instruction emitted with GOTPCREL relocation.
Handled it in "Suppress APX for relocation" pass and transformed it to
ADD64rm with register operand in non-rex2 register class. The relocation
type R_X86_64_CODE_6_GOTPCRELX will be added later for APX enabled with
relocation.
2. The register class for operands in instruction with relocation is
updated to non-rex2 one in "Suppress APX for relocation" pass, but it
may be updated/recomputed to larger register class (like
GR64_NOREX2RegClass to GR64RegClass). Fixed by not updating the register
class if it's non-rex2 register class and APX support for relocation is
disabled.
3. After "Suppress APX for relocation" pass, the instruction with
relocation may be folded with add NDD instruction to a add NDD
instruction with relocation. The later will be emitted to instruction
with APX relocation type which breaks backward compatibility. Fixed by
not folding instruction with GOTPCREL relocation with NDD instruction.
4. If the register in operand 0 of instruction with relocation is used
in the PHI instruction, it may be replaced with operand 0 of PHI
instruction (maybe EGPR) after PHI elimination and Machine Copy
Propagation pass. Fixed by suppressing EGPR in operand 0 of PHI
instruction to avoid APX relocation types emitted.
2025-05-12 20:56:07 +08:00
Michael Buch
cede236fa5 [llvm][DebugInfo] Drop \01 mangling prefix when inserting linkage name into accelerator table (#138852)
On some platforms (particularly macOS), a `\01` prefix gets added to the
name in an `asm` label. This gets stripped when we emit the
[`DW_AT_linkage_name`](2f877c2722/llvm/lib/CodeGen/AsmPrinter/DwarfUnit.cpp (L531)).
But we weren't stripping this prefix when inserting the linkage name
into accelerator tables.

This manifested in an issue where LLDB tried to look up a name in the
index by linkage name, but wasn't able to find it because we indexed it
with the `\01` unstripped.

This patch strips the prefix before indexing.
2025-05-12 13:34:02 +01:00
Md Asghar Ahmad Shahid
d78ff5f6a9 [MLIR][Linalg] Introduce transpose/broadcast semantic to linalg.batch… (#130944)
…_reduce_matmul.

This patch exposes broadcast and transpose semantics on
'batch_reduce_matmul'. This is the last one in continuation of other two
variant of matmul ops.

The broadcast and transpose semantic are as follows:

Broadcast and Transpose semantics can be appiled by specifying the
explicit attribute 'indexing_maps' as shown below. This is a list
attribute, so must include maps for all arguments if specified.

    Example Transpose:
    ```
    linalg.batch_reduce_matmul indexing_maps = [
       affine_map<(d0, d1, d2, d3) -> (d0, d3, d1)>, // transpose
       affine_map<(d0, d1, d2, d3) -> (d0, d3, d2)>,
       affine_map<(d0, d1, d2, d3) -> (d1, d2)>
       ]
          ins(%arg0, %arg1 : memref<2x5x3xf32>,memref<2x5x7xf32>)
          outs(%arg2: memref<3x7xf32>)
    ```

    Example Broadcast:
    ```
    linalg.batch_reduce_matmul indexing_maps = [
       affine_map<(d0, d1, d2, d3) -> (d3)>,         // broadcast
       affine_map<(d0, d1, d2, d3) -> (d0, d3, d2)>,
       affine_map<(d0, d1, d2, d3) -> (d1, d2)>
       ]
          ins(%arg0, %arg1 : memref<5xf32>, memref<2x5x7xf32>)
          outs(%arg2: memref<3x7xf32>)
    ```

    Example Broadcast and Transpose:
    ```
    linalg.batch_reduce_matmul indexing_maps = [
       affine_map<(d0, d1, d2, d3) -> (d1, d3)>,     // broadcast
       affine_map<(d0, d1, d2, d3) -> (d0, d2, d3)>, // transpose
       affine_map<(d0, d1, d2, d3) -> (d1, d2)>
       ]
          ins(%arg0, %arg1 : memref<3x5xf32>, memref<2x7x5xf32>)
          outs(%arg2: memref<3x7xf32>)
    ```

RFCs and related PR:

https://discourse.llvm.org/t/rfc-linalg-opdsl-constant-list-attribute-definition/80149
https://discourse.llvm.org/t/rfc-op-explosion-in-linalg/82863
https://discourse.llvm.org/t/rfc-mlir-linalg-operation-tree/83586
https://github.com/llvm/llvm-project/pull/115319
https://github.com/llvm/llvm-project/pull/122275
2025-05-12 13:29:34 +01:00
Liam Semeria
3ffde4a1ac [APInt] Removed redundant assert and condition in APInt::SetBits (#138038)
During [pull request](https://github.com/llvm/llvm-project/pull/137098) it was suggested that I remove these redundant parts of APInt::SetBits.
2025-05-12 13:24:41 +01:00
Dhruv Srivastava
39f5a420b6 [lldb][AIX] Support for XCOFF Sections (#131304)
This PR is in reference to porting LLDB on AIX.

Link to discussions on llvm discourse and github:

1. https://discourse.llvm.org/t/port-lldb-to-ibm-aix/80640
2. https://github.com/llvm/llvm-project/issues/101657
The complete changes for porting are present in this draft PR:
https://github.com/llvm/llvm-project/pull/102601

Incremental PR on ObjectFileXCOFF.cpp
This PR is intended to handle XCOFF sections.
2025-05-12 17:52:02 +05:30
Fangyi Zhou
6078f5eb21 Reland [Clang][analyzer] replace Stmt* with ConstCFGElement in SymbolConjured (#137355)
Closes #57270.

This PR changes the `Stmt *` field in `SymbolConjured` with
`CFGBlock::ConstCFGElementRef`. The motivation is that, when conjuring a
symbol, there might not always be a statement available, causing
information to be lost for conjured symbols, whereas the CFGElementRef
can always be provided at the callsite.

Following the idea, this PR changes callsites of functions to create
conjured symbols, and replaces them with appropriate `CFGElementRef`s.

There is a caveat at loop widening, where the correct location is the
CFG terminator (which is not an element and does not have a ref). In
this case, the first element in the block is passed as a location.

Previous PR #128251, Reverted at #137304.
2025-05-12 14:19:44 +02:00
Aaron Ballman
d5974524de [OpenMP] Fix crash with invalid argument to simd collapse (#139313)
Same as with other recent crash fixes, this is checking whether the
argument expression contains errors or not.

Fixes #138493
2025-05-12 08:04:22 -04:00
Han-Kuan Chen
53df6400af [SLP] Fix incorrect operand order in interchangeable instruction. (#139225) 2025-05-12 20:03:45 +08:00
Florian Hahn
2f55123cbb [VPlan] Handle early exit before forming regions. (NFC) (#138393)
Move early-exit handling up front to original VPlan construction, before
introducing early exits.

This builds on https://github.com/llvm/llvm-project/pull/137709, which
adds exiting edges to the original VPlan, instead of adding exit blocks
later.

This retains the exit conditions early, and means we can handle early
exits before forming regions, without the reliance on VPRecipeBuilder.

Once we retain all exits initially, handling early exits before region
construction ensures the regions are valid; otherwise we would leave
edges exiting the region from elsewhere than the latch.

Removing the reliance on VPRecipeBuilder removes the dependence on
mapping IR BBs to VPBBs and unblocks predication as VPlan transform:
https://github.com/llvm/llvm-project/pull/128420.

Depends on https://github.com/llvm/llvm-project/pull/137709 (included in
PR).

PR: https://github.com/llvm/llvm-project/pull/138393
2025-05-12 12:53:20 +01:00
Ilia Kuklin
3aacd74594 [lldb][TypeSystemClang] Allow arrays to be dereferenced in C/C++. (#135843)
Add a function `GetDereferencedType` to `CompilerType` and allow
`TypeSystemClang` to dereference arrays.
2025-05-12 16:46:58 +05:00
Simon Pilgrim
f1043b1643 [AMDGPU] combine_vloads.ll regenerate test checks
Make it easier to detect regressions
2025-05-12 12:33:53 +01:00
Benjamin Kramer
3197909694 [bazel] Fix lldb-dap-Info.plist.in path after 6f84ec3496 2025-05-12 13:27:10 +02:00
Christian Ulmann
292cfa715a [LLVM][Transforms] Add unit test for resolved cloning bug (#139223)
This commit introduces a new unit test that covers a block address
cloning bug. Specifically, this test covers the bug tracked in
http://github.com/llvm/llvm-project/issues/47769 which has been resolved
in the meantime.
2025-05-12 13:03:49 +02:00
Fraser Cormack
4f107cd8f8 [libclc] Move sin, cos & sincos to CLC library (#139527)
This commit moves the remaining FP64 sin and cos helper functions to the
CLC library. As a consequence, it formally moves all sin, cos and sincos
builtins to the CLC library. Previously, the FP16 and FP32 were
nominally there but still in the OpenCL layer while waiting for the FP64
ones.

The FP64 builtins are now vectorized as the FP16 and FP32 ones were
earlier.

One helper table had to be changed. It was previously a table of bytes
loaded by each work-item as uint4. Since this doesn't vectorize well,
the table was split to load two ulongNs per work-item. While this might
not be as efficient on some devices, one mitigating factor is that we
were previously loading 48 bytes per work-item in total, but only using
40 of them. With this commit we only load the bytes we need.
2025-05-12 11:32:15 +01:00
Ricardo Jesus
2ec13c513f [AArch64][SVE] Add patterns for bit-select instructions. (#138689)
This patch adds patterns to select SVE2 bit-sel instructions such as BSL
from (or (and a, c), (and b, (vnot c)))) and other similar patterns. For
example:
```cpp
svuint64_t bsl(svuint64_t a, svuint64_t b, svuint64_t c) {
  return (a & c) | (b & ~c);
}
```
Currently:
```gas
bsl:
  and     z0.d, z2.d, z0.d
  bic     z1.d, z1.d, z2.d
  orr     z0.d, z0.d, z1.d
  ret
```
Becomes:
```gas
bsl:
  bsl     z0.d, z0.d, z1.d, z2.d
  ret
```
2025-05-12 10:57:18 +01:00
Ricardo Jesus
af03d6b518 [AArch64][SVE] Refactor getPTrue to return splat(1) when pattern=all. (#139236)
Similarly to #135016, refactor getPTrue to return splat (1) for
all-active patterns. The main motivation for this is to improve
code gen for fixed-length vector loads/stores that are converted to SVE
masked memory ops when the vectors are wider than Neon. Emitting the
mask as a splat helps DAGCombiner simplify all-active masked
loads/stores into unmaked ones, for which it already has suitable
combines and ISel has suitable patterns.
2025-05-12 10:35:30 +01:00
Simon Pilgrim
d27d0c7a52 [X86] atomic-load-store.ll - add SSE/AVX level coverage for future vector atomic memory operations
Help #138635 where we need to ensure correct SSE/AVX load instructions
2025-05-12 10:35:12 +01:00
Simon Pilgrim
4e535601b0 [AMDGPU] ashr.v2i16.ll - regenerate to match shl/lshr v2i16 test coverage 2025-05-12 10:35:12 +01:00
Rolf Morel
ba739c166d [MLIR][Linalg][Python] Improve bindings for linalg.elementwise (#139462)
Adds wrappers for ElementWiseOp, in particular to ensure appropriate
default indexing maps are derived.
2025-05-12 11:34:55 +02:00
Mel Chen
688bccb290 [TTI][LV] Simplify the prototype of preferPredicatedReductionSelect. nfc (#139265) 2025-05-12 17:24:37 +08:00
Hongren Zheng
d102e90de5 [mlir][MLProgram][NFC] Migrate to OpAsmAttrInterface for ASM alias generation (#130481)
After the introduction of `OpAsmAttrInterface`, it is favorable to
migrate code using `OpAsmDialectInterface` for ASM alias generation,
which lives in `Dialect.cpp`, to use `OpAsmAttrInterface`, which lives
in `Attrs.td`. In this way, attribute behavior is placed near its
tablegen definition and people won't need to go through other files to
know what other (unexpected) hooks comes into play.

See #124721 for the interface itself and #128191 and #130479 for prior
migrations.

Note that `MLProgramOpAsmInterface` has no content now. However, if we
delete it, a failure related to dialect resource handling will occur

```
within split at llvm-project/mlir/test/IR/invalid-file-metadata.mlir:60 offset :7:7: error: unexpected error: unexpected 'resource' section for dialect 'ml_program'
```

To support resource such interface must be registered.
2025-05-12 17:21:44 +08:00
Hongren Zheng
d9ac4d62f8 [mlir][LLVMIR][NFC] Migrate to OpAsmAttrInterface for ASM alias generation (#130479)
After the introduction of `OpAsmAttrInterface`, it is favorable to
migrate code using `OpAsmDialectInterface` for ASM alias generation,
which lives in `Dialect.cpp`, to use `OpAsmAttrInterface`, which lives
in `Attrs.td`. In this way, attribute behavior is placed near its
tablegen definition and people won't need to go through other files to
know what other (unexpected) hooks comes into play.

See #124721 for the interface itself and #128191 for prior migration for
Builtin Attributes.

See #131504 for the `genMnemonicAlias` tablegen field.
2025-05-12 17:21:13 +08:00
John Brawn
7d867c6d09 [LoopVersioningLICM] Only mark pointers with generated checks as noalias (#135168)
Currently when we version a loop all loads and stores have the noalias
metadata added to them. If there were some pointers that could not be
analysed, and thus we could not generate runtime aliasing checks for,
then we should not mark loads and stores using these pointers as
noalias.

This is done by getting rid of setNoAliasToLoop and instead using
annotateLoopWithNoAlias, as that already correctly handles partial alias
information. This does result in slightly different aliasing metadata
being generated, but it looks like it's more precise.

Currently this doesn't result in any change to the transforms that
LoopVersioningLICM does, as LoopAccessAnalysis discards all results if
it couldn't analyse every pointer leading to no loop versioning
happening, but an upcoming patch will change that and we need this first
otherwise we incorrectly mark some pointers as noalias even when they
aren't.
2025-05-12 10:15:22 +01:00
Jim Lin
9e27db0a50 [RISCV] Add Andes XAndesVPackFPH (Andes Vector Packed FP16) extension. (#138827)
The spec can be found at:

https://github.com/andestech/andes-v5-isa/releases/tag/ast-v5_4_0-release.

This patch only supports assembler.

Intrinsics support will be added in a later patch.
2025-05-12 16:58:39 +08:00
Donát Nagy
9600a12f0d [analyzer] Workaround for slowdown spikes (unintended scope increase) (#136720)
Recently some users reported that they observed large increases of
runtime (up to +600% on some translation units) when they upgraded to a
more recent (slightly patched, internal) clang version. Bisection
revealed that the bulk of this increase was probably caused by my
earlier commit bb27d5e5c6 ("Don't assume
third iteration in loops").

As I evaluated that earlier commit on several open source project, it
turns out that on average it's runtime-neutral (or slightly helpful: it
reduced the total analysis time by 1.5%) but it can cause runtime spikes
on some code: in particular it more than doubled the time to analyze
`tmux` (one of the smaller test projects).

Further profiling and investigation proved that these spikes were caused
by an _increase of analysis scope_ because there was an heuristic that
placed functions on a "don't inline this" blacklist if they reached the
`-analyzer-max-loop` limit (anywhere, on any one execution path) --
which became significantly rarer when my commit ensured the analyzer no
longer "just assumes" four iterations. (With more inlining significantly
more entry points use up their allocated budgets, which leads to the
increased runtime.)

I feel that this heuristic for the "don't inline" blacklist is
unjustified and arbitrary, because reaching the "retry without inlining"
limit on one path does not imply that inlining the function won't be
valuable on other paths -- so I hope that we can eventually replace it
with more "natural" limits of the analysis scope.

However, the runtime increases are annoying for the users whose project
is affected, so I created this quick workaround commit that approximates
the "don't inline" blacklist effects of ambiguous loops (where the
analyzer doesn't understand the loop condition) without fully reverting
the "Don't assume third iteration" commit (to avoid reintroducing the
false positives that were eliminated by it).

Investigating this issue was a team effort: I'm grateful to Endre Fülöp
(gamesh411) who did the bisection and shared his time measurement setup,
and Gábor Tóthvári (tigbr) who helped me in profiling.
2025-05-12 10:56:29 +02:00
Andrzej Warzyński
c45cc3e420 [mlir][vector] Standardize base Naming Across Vector Ops (NFC) (#137859)
[mlir][vector] Standardize base Naming Across Vector Ops (NFC)

This change standardizes the naming convention for the argument
representing the value to read from or write to in Vector ops that
interface with Tensors or MemRefs. Specifically, it ensures that all
such ops use the name `base` (i.e., the base address or location to
which offsets are applied).

Updated operations:

* `vector.transfer_read`,
* `vector.transfer_write`.

For reference, these ops already use `base`:

* `vector.load`, `vector.store`, `vector.scatter`, `vector.gather`,
  `vector.expandload`, `vector.compressstore`, `vector.maskedstore`,
  `vector.maskedload`.

This is a non-functional change (NFC) and does not alter the semantics of these
operations. However, it does require users of the XFer ops to switch from
`op.getSource()` to `op.getBase()`.

To ease the transition, this PR temporarily adds a `getSource()` interface
method for compatibility. This is intended for downstream use only and should
not be relied on upstream. The method will be removed prior to the LLVM 21
release.

Implements #131602
2025-05-12 09:44:50 +01:00
Serge Pavlov
5a1edf0f51 [NFC] Optimize file kind determination (#139492)
There are checks in clang codebase that determine the type of source
file, associated with a given location - specifically, if it is an
ordonary file or comes from sources like command-line options or a
built-in definitions. These checks often rely on calls to
`getPresumedLoc`, which is relatively expensive. In certain cases, these
checks are combined, leading to repeated calculations of the costly
function negatively affecting compile time.

This change tries to optimize such checks. It must fix compile time
regression introduced in
https://github.com/llvm/llvm-project/pull/137306/.

---------

Co-authored-by: cor3ntin <corentinjabot@gmail.com>
2025-05-12 15:22:44 +07:00
Simon Pilgrim
63f3a5babd [PhaseOrdering][X86] Add test coverage for #48223
The X86 backend shuffle combining is saving us from some poor vectorised IR
2025-05-12 09:16:13 +01:00
Matt Arsenault
4b89339899 AMDGPU: Reorganize fmed3 intrinsic instcombine tests (#139498) 2025-05-12 10:05:03 +02:00
David Green
3c03108765 [ARM] Enable verifyInstructionPredicates (#139262)
All the tests pass and a bootstrap and run of the llvm-test-suite passed
successfully. Enable verifyInstructionPredicates so that instructions
which are invalid with the current set of features produce an error.
2025-05-12 09:04:48 +01:00
Juan Manuel Martinez Caamaño
fbf08a68b8 [ObjectiveC] -rewrite-objc was treating inputs as preprocessed files (#137623)
`-rewrite-objc` passes `-x objective-c++-cpp-output` as input type to
the preprocessor job. This is not correct since we would be
preprocessing a preprocessed file. The correct input type is
`objective-c++`.
2025-05-12 09:50:15 +02:00
Juan Manuel Martinez Caamaño
ca3121b898 [Clang][Driver] Fix condition in combineBackendCompile when using -no-integrated-cpp (#136853)
When using -no-integrated-cpp, before, the driver won't collapse actions
when the input was not llvm-ir
or it would collapse them too aggressively with -save-temps

The original code was checking the action type (which is IR too for
preprocessed->bc actions) instead of the action inputs.
2025-05-12 09:49:59 +02:00
Sudharsan Veeravalli
47ce75e1a6 [Hexagon] Use TargetInstrInfo::RegSubRegPair (#138637)
Use the RegSubRegPair struct defined in TargetInstrInfo instead of the
custom definitions in HexagonGenPredicates and
HexagonConstantPropogation.

This patch addresses the FIXME's that were there in these passes.
2025-05-12 13:08:27 +05:30
Srinivasa Ravi
7c49ab0f62 [MLIR][NVVM] Add dot.accumulate.4way OP (#139043)
This change adds the `dot.accumulate.4way` Op to the NVVM dialect to
perform four-way byte dot product-accumulate operation.

PTX Spec Reference:
https://docs.nvidia.com/cuda/parallel-thread-execution/#integer-arithmetic-instructions-dp4a
2025-05-12 12:34:00 +05:30
Jason Molenda
48a814c711 Don't run TestUnwindFramelessFaulted.py on Linux
There's something still wrong with how it's building
the test file.
2025-05-11 23:57:53 -07:00
Jason Molenda
b957cc0c7e [lldb] Provide lr value in faulting frame on arm64 (#138805)
Re-landing this patch with small tweaks to address CI bot failures
as it was run on many different configurations.  I think the test
may run on aarch64 Linux systems now.

When a frameless function faults or is interrupted asynchronously, the
UnwindPlan MAY have no register location rule for the return address
register (lr on arm64); the value is simply live in the lr register when
it was interrupted, and the frame below this on the stack -- e.g.
sigtramp on a Unix system -- has the full register context, including
that register.

RegisterContextUnwind::SavedLocationForRegister, when asked to find the
caller's pc value, will first see if there is a pc register location. If
there isn't, on a Return Address Register architecture like
arm/mips/riscv, we rewrite the register request from "pc" to "RA
register", and search for a location.

On frame 0 (the live frame) and an interrupted frame, the UnwindPlan may
have no register location rule for the RA Reg, that is valid. A
frameless function that never calls another may simply keep the return
address in the live register the whole way. Our instruction emulation
unwind plans explicitly add a rule (see Pavel's May 2024 change
https://github.com/llvm/llvm-project/pull/91321 ), but an UnwindPlan
sourced from debug_frame may not.

I've got a case where this exactly happens - clang debug_frame for arm64
where there is no register location for the lr in a frameless function.
There is a fault in the middle of this frameless function and we only
get the lr value from the fault handler below this frame if lr has a
register location of `IsSame`, in line with Pavel's 2024 change.

Similar to how we see a request of the RA Reg from frame 0 after failing
to find an unwind location for the pc register, the same style of
special casing is needed when this is a function that was interrupted.

Without this change, we can find the pc of the frame that was executing
when it was interrupted, but we need $lr to find its caller, and we
don't descend down to the trap handler to get that value, truncating the
stack.

rdar://145614545
2025-05-11 23:39:35 -07:00
Koakuma
87b4cacf2d [SPARC][IAS][NFC] Rename CBCOND -> CPBCOND
This is in prep for OSA2011 instruction definitions, which has a CBCond
instruction family.

Reviewers: rorth, s-barannikov, brad0

Reviewed By: s-barannikov

Pull Request: https://github.com/llvm/llvm-project/pull/138402
2025-05-12 13:28:15 +07:00
Koakuma
cf19c6b5e2 [SPARC][IAS] Add definitions for UA 2007 instructions
Reviewers: rorth, s-barannikov, brad0

Reviewed By: s-barannikov

Pull Request: https://github.com/llvm/llvm-project/pull/138401
2025-05-12 13:26:56 +07:00
Pavel Labath
9e44f0d669 Reapply "[lldb] Inherit DuplicateFileAction(HANDLE, HANDLE) handles on windows (#137978)" (#138896)
This reverts commit
a0260a95ec,
reapplying

7c5f5f3ef8,
with a fix that makes *both*
pipe handles inheritable.

The original commit description was:

This is a follow-up to https://github.com/llvm/llvm-project/pull/126935,
which enables passing handles to a child
process on windows systems. Unlike on unix-like systems, the handles
need to be created with the "inheritable" flag because there's to way to
change the flag value after it has been created. This is why I don't
respect the child_process_inherit flag but rather always set the flag to
true. (My next step is to delete the flag entirely.)

This does mean that pipe may be created as inheritable even if its not
necessary, but I think this is offset by the fact that windows (unlike
unixes, which pass all ~O_CLOEXEC descriptors through execve and *all*
descriptors through fork) has a way to specify the precise set of
handles to pass to a specific child process.

If this turns out to be insufficient, instead of a constructor flag, I'd
rather go with creating a separate api to create an inheritable copy of
a handle (as typically, you only want to inherit one end of the pipe).
2025-05-12 07:57:43 +02:00
Fangrui Song
80c61dec2d [llvm-objcopy] Fix some namespace style issues
Similar to https://reviews.llvm.org/D104693
2025-05-11 22:51:18 -07:00
Rux124
35255cce20 [RISCV][SLEEF] Fix incorrect vector function mapping for llvm.exp.f64 (#121641)
The element count needs to be SCALABLE(4) to generate operations with
lmul == 2 for the f64 type.
2025-05-12 13:34:46 +08:00