[TargetLowering][RISCV] Disable the special illegal type expansion of ISD::AVGFLOORU on RV32 (#181073)
RISC-V doesn't have a carry flag which makes the UADDO expansion
expensive to emulate.
I've disabled the code by checking if UADDO is not supported for the
type that will be legalized too. Unfortunatley, we have custom lowering
of UADDO on RV64 so this doesn't disable this code there.
[X86][AVX10] Change MINMAX sign control to select the sign of compare result (#183452)
The imm8[3:2] controls the sign bit behavior. 0b01 represents to select
the sign of compare result, while 0b00 select the sign of Src1.
[RISCV] Add processor definitions for XuanTie C910V2 and C920V2 (#174056)
XuanTie C910V2 and C920V2 are 64-bit superscalar out-of-order CPUs:
https://www.xrvm.com/community/download?id=4530178488929423360
C910V2 is a C920V2 version without vector, zvfbfmin, zvfbfwma, zvfh and
xtheadvdot extensions.
Scheduling model will be added in a further PR.
[clang][Sema] Guard polymorphic check in TransformCXXTypeidExpr for incomplete record types (#180442)
This ensures that when querying the typeid of a record type, it is fully defined.
Fixes #176397
Fixes #63242
[SystemZ] Emit external aliases for indirect function descriptors in the ADA section
This is the last of the three patches aimed to support indirect symbol handling for
the SystemZ backend.
An external alias is emitted for indirect function descriptors within the ADA
section, rather than a temporary alias, while also setting all of the appropriate
symbol attributes that are needed for the HLASM streamer to emit the correct XATTR
and ALIAS instructions for the indirect symbols.
Moreover, this patch updates the `CodeGen/SystemZ/zos-ada-relocations.ll` test
as the ADA section is currently the only user of indirect symbols on z/OS.
[SystemZ] Emit external aliases required for indirect symbol handling support
This is the second of three patches aimed to support indirect symbol handling for
the SystemZ backend. An external name is added for both MC sections and symbols
and makes the relevant printers and writers utilize the external name when present.
Furthermore, the ALIAS HLASM instruction is emitted after every XATTR instruction.
[SystemZ] Add indirect reference bit XATTR REFERENCE(INDIRECT) for indirect symbol handling support
This is the first of three patches aimed to support indirect symbol handling for
the SystemZ backend. This PR introduces a `GOFF:ERAttr` to represent indirect
references, handles indirect symbols within `setSymbolAttribute()` by setting
the indirect reference bit, and also updates the HLASM streamer to emit
`XATTR REFERENCE(INDIRECT)` and various other combinations.
[BOLT][merge-fdata] Skip truncated lines in raw profile data (#183187)
Raw profile data file may contain lines truncated due to unexpected
app exit. This change is to have merge_fdata check number of fields
in each line of raw profile data file and ignore a line if the number
is not expected.
[RISCV] Add MERGE, MVM, and MVMN to isSignExtendedW in RISCVOptWInstrs. (#183433)
These instructions are a combination of AND/OR/XOR which return sign
extended values if all inputs are sign extended.
[RISCV] Partial support for using PPAIRE.B/H to optimize unaligned load sequences. (#183423)
Patterns are based on patterns we use for Zbkb. We can't copy all
patterns because PPAIRE.B/H are a little different than PACKW/PACKH.
PACKW packs the first 16 bits of rs1 and rs2 and sign extends the upper
32 bits of rd. PACKH packs the first 8 bits of rs1 and rs2 and puts
zeros in bits 16 of rd.
PPAIRE.B copies the even bytes of rs1 to the even bytes of rd and copies
the even bytes of rs2 to the odd bytes of rd. PPAIRE.H is similar, but
copys halfwords instead of bytes. We can treat them equivalently to
PACKH/PACKW when we know that we only care about the lower halfword or
word, respectively of the result.
[SystemZ] Emit external aliases for indirect function descriptors in the ADA section
This is the last of the three patches aimed to support indirect symbol handling for
the SystemZ backend.
An external alias is emitted for indirect function descriptors within the ADA
section, rather than a temporary alias, while also setting all of the appropriate
symbol attributes that are needed for the HLASM streamer to emit the correct XATTR
and ALIAS instructions for the indirect symbols.
Moreover, this patch updates the `CodeGen/SystemZ/zos-ada-relocations.ll` test
as the ADA section is currently the only user of indirect symbols on z/OS.
[RISCV] Treat zext.h as a separate instruction from pack(w) with Zbkb. (#183364)
The Zbb encoding for zext.h is a subset of the encoding for pack(w).
There is a statement in the ISA manual that says "For RV32, the pack
instruction with rs2=x0 is the zext.h instruction. Hence, for RV32, any
extension that contains the pack instruction also contains the zext.h
instruction"
This patch makes the zext.h instruction mnemonic canonical when only
Zbkb is enabled. -Mno-aliases will not disable the printing of zext.h. I
believe this matches binutils.
I've taught the assembler to remap PACK/PACKW to ZEXT_H to make printing
parsed assembly match the disassembler output.
[SystemZ] Emit external aliases required for indirect symbol handling support
This is the second of three patches aimed to support indirect symbol handling for
the SystemZ backend. An external name is added for both MC sections and symbols
and makes the relevant printers and writers utilize the external name when present.
Furthermore, the ALIAS HLASM instruction is emitted after every XATTR instruction.
[libc][math][c23] implement `asinpif` function (#181511)
Implementing `asinpi` for single-precision. it continues what is done in
#152690 that implemented `asinpif16` with header-only approach that is
followed since #147386
[clang] Don't use `VarDecl` of local variables as `ManglingContextDecl` for lambdas (#179035)
Currently, in a C++20 modules context, a `VarDecl` of a local variable
can wrongly end up as a `ManglingContextDecl` for a lambda.
Fix this by removing `ContextKind::NonInlineInModulePurview` in
`Sema::getCurrentMangleNumberContext` and add
`IsExternallyVisibleInModulePurview` checks in the appropriate places:
- For externally visible functions defined in a module purview, add a
check to `isInInlineFunction`, renaming it to
`IsInFunctionThatRequiresMangling`
- For externally visible variables defined in a module purview, add a
new `ContextKind::ExternallyVisibleVariableInModulePurview` and an
appropriate check to the `VarDecl` case
Fixes #178893
---------
[2 lines not shown]
[MLIR][Python] Handle errors in dialect conversion properly (#183320)
Before this, MLIR error capture in `apply_partial_conversion` and
`apply_full_conversion` wasn’t handled, which meant any `emitError`
would crash the entire program. This PR adds the handling.