[TableGen] Print MVT name in the isel table when it doesn't require a VBR. NFC (#175128)
If the MVT is small enough, we can emit the enum name instead of
printing its encoding.
[AArch64][llvm] Add extra dependencies for recently added features
Add a couple of extra dependencies, for recently added features:
```
FeatureMTETC -> enable FeatureMTE (aka memtag)
FeatureMOPS_GO -> enable FeatureMTE and FeatureMOPS
```
[AArch64][VecLib] Add vector function mappings for the modf, sincos, sincospi vector intrinsics (#175098)
Following the improvements introduced in #109833 and the most recent
development of the libamath library (used by `-fveclib=ArmPL`), this
patch adds the missing mappings for the functions that return literal
struct values.
[CIR] Handle empty unions in record lowering and LLVM conversion (#172666)
Handle empty unions in CIR record lowering and LLVM conversion by
emitting padding when needed, guarding `getLargestMember` for
empty/padded unions, and lowering to empty or padded LLVM structs based
on language rules.
Added regression tests for C and C++ empty union lowering in
`clang/test/CIR/CodeGen/empty-union.c` and `empty-union.cpp`.
[AArch64][llvm] Add extra dependencies for recently added features
Add a couple of extra dependencies, for recently added features:
```
FeatureMTETC -> enable FeatureMTE (aka memtag)
FeatureMOPS_GO -> enable FeatureMTE and FeatureMOPS
```
[asan][AIX] Set allocator size and beginning (#144784)
On 64-bit AIX, set allocator size to 256G and set beginning to
0x0a00000000000000.
Issue: #138916
---------
Co-authored-by: Hubert Tong <hubert.reinterpretcast at gmail.com>
[LLVM][TableGen] Use integers instead of string in CodeEmitterGen CaseMap (#172885)
CodeEmitterGen CaseMap values is always a vector of integer IDs (HwMode
or instruction opcode). So change the map values to be a vector of
integers instead of strings and instead print the string form when
emitting the case statements. This will help reduce the memory footprint
by not storing potentially long strings (for opcode names) in the map.
[RISCV] Prevent P extension from creating unaligned scalar load/store insructions. (#174878)
The P extension requires us to use base ISA load/store instructions for
small vectors. We need to make sure we don't generate misaligned
instructions.
We'll need to do more work here if we want P and V to be enabled at the
same time, but that's a future problem.
[lldb] Fix crash when passing a folder in as the executable (#175181)
This is another instance where we weren't checking that the result of
FileSystem::CreateDataBuffer and unconditionally accessing it, similar
to the bug in SourceManager last week. In this particular case,
ObjectFile was assuming that we can read the contents non-zero, which
isn't true for directory nodes.
Jim figured this one out yesterday. I'm just putting up the patch and
adding a test.
rdar://167796036
[Clang][Driver] Disable crash-ir-repro.cpp on UBSan
UBSan causes the test to raise a signal, which violates the not
expectations after recent lit expectations.
[flang] Visit "source" member in all AST nodes
Some AST nodes had their "source" member visited by the parse tree
visitor, while others, in particular those that were handled by the
trait-based visitors, did not.
Make sure that we call the Walk function on the "source" member for
all classes that have it.
[RISCV] Merge multiple QC_EXTU patterns using ImmLeaf and SDNodeXForm. (#175119)
Instead of matching 6 different masks, use an ImmLeaf to detect any of
the 6 masks.
This isn't NFC because using an immediate directly will call
computeKnownBits to fill in bits that are expected to be 1, but have
been cleared because they are known 0 in the LHS of the and. We don't
have tests for this, if it's important we can switch to a ComplexPattern
to restore that behavior.
[AMDGPU][GlobalISel] Add RegBankLegalize support for G_PTRMASK (#174889)
Add support for G_PTRMASK but we are missing p8 (buffer resource) due to
a legalizer issue in GlobalISel which does not occur on SelectionDAG:
`LLVM ERROR: unable to legalize instruction: %17:_(p8) = G_PTRMASK %0:_,
%22:_(s128) (in function: v_ptrmask_buffer_resource_variable_i48)`
Added a FIXME to indicate this issue.