MIPSr6: Fix COPY of reg:fgr64cc without fcmp in the same BB (#185820)
There may be some BB to COPY fgr64cc register, and the fgr64cc register
is set by the previous BB.
We add a new pass called MipsSetMachineRegisterFlags, in which we set
We introduce a new pass called MipsSetMachineRegisterFlags, in which we
set NoSWrap flag for all instructions that works with fgr64cc registers.
And in copyPhyRegister, we allow the COPY instruction with NoSignWrap
from the double float registers to gpr32.
[flang] Improve error message for missing primary expression (#185484)
Don't mention the possible expectation that the extension %LOC() could
appear when emitting the error messages for a completely missing primary
expression; it's just confusing.
[flang][cuda] Emit CUDA attributes in type declarations in mod files (#185462)
The compiler implements CUDA object entity attributes in module files by
emitting "attributes()" statements after the type declaration statement
for the object. This works fine for variables, but not at all for
derived type components -- the "attributes()" statement is not allowed
in a derived type definition, and the module file isn't readable later
when USE'd. The fix is to emit the attribute as part of the type
declaration statement or component declaration statement instead.
[lldb] Update TestProcessCrashInfo for MTE (#185808)
With MTE, the issue is caught by hardware and libmalloc records a
different message: "BUG IN CLIENT OF LIBMALLOC: MTE tag mismatch
(probable double-free)". Update the test accordingly.
[lldb] Use raw address in "memory history" command (#185812)
The `memory history` command was using `ToAddress` for its address
argument, which strips non-addressable bits (including MTE tag bits) via
`FixAnyAddress`. This caused us to pass a stripped address to
`__asan_get_alloc_stack`/`__asan_get_free_stack`, which is incorrect.
Switch to `ToRawAddress` to preserve the complete address, including the
MTE tag, so we can look up the correct address.
[lldb] Use SBProcess.FixAddress in address_ranges_helper.py (#185802)
Use `SBProcess.FixAddress` in `address_ranges_helper.py` to support
arm64e and ARM's Memory Tagging Extension (MTE) which rely on TBI to
encode data in the top byte, which in this mode is ignored by the HW.
This fixes TestFindInMemory.py and TestFindRangesInMemory.py when
running the LLDB test suite with MTE.
[mlir][OpenMP] Translate omp.declare_simd to LLVM IR
This mod aim to generate same vector ABI [1] for declare simd as Clang
and reuse function paramater mangling and codegen logic authored by
@alexey-bataev in [2].
Codegen for AArch64 is not included in this patch.
For each omp.declare_simd, lowering computes:
ParamAttrs: one entry per function argument, classifying it as
Vector / Uniform / Linear (+ step or var-stride) / Aligned.
Branch kind: Undefined / Inbranch / Notinbranch.
VLEN: either from simdlen(...) or derived from the CDT size.
llvm then emits x86 declare-simd variants by attaching mangled
function attributes of the form:
_ZGV _
where:
[11 lines not shown]
[CIR] Preserve attributes when converting call to try_call (#185782)
This adds code to preserve any attributes, including parameter and
return value attributes, that were present on a call operation that is
being replaced with a try_call operation.
[DirectX] Specify element-aligned vectors (#180622)
Use the new "ve" Data Layout specifier to indicate that vectors are
element-aligned for the target.
Part of #123968
[RISCV][P-ext] Remove unncessary patterns for setgt/setugt. NFC (#185971)
We mark these CondCodes as Expand so LegalizeDAG will turn them into
setlt/setult.
[lldb][bytecode] Add swift output to Python->bytecode compiler (#185773)
For swift projects using the compiler, having a swift output option will
make it easier to integrate bytecode formatters into the build.
[LLDB] Fix null pointer dereference. (#185985)
The code was declaring a shared poiner and then immediately trying to
dereference it to initialize it's contents, but the dereference was
giving a seg fault. This fixes that issue.
[ObjC] Emit class msgSend stub calls (#183923)
Instead of translating class messages to `objc_msgSend` calls, clang now
emits calls to stub functions that are synthesized by the linker. Each
stub loads the class reference and the selector name and forwards them
to `objc_msgSend`.
The stub function is named using the following format:
`objc_msgSendClass$selName$_OBJC_CLASS_$_className`
Note that the optimization is disabled in the following cases:
- When the class name is unknown at compile time (e.g, `[id
classMethod]`).
- The selector name contains a `$`, which serves as the delimiter in
stub
function names.
- The class is annotated with either `objc_class_stub` or
`objc_runtime_visible`.
[14 lines not shown]
Revert "[libclc][NFC] Change include style from <...> to "..."" (#185888)
Reverts llvm/llvm-project#185788. This change is causing test
regressions in libclc, so it's definitely not "NFC", and with its size
it's hard to figure out what exactly went wrong.
[CIR] Add support for size parameter with array delete (#185768)
This implements reading the array cookie and passing a size parameter to
the array delete operator for simple cases that require a size
parameter.
[RISCV] Make selectShiftMask32/selectShiftMask64 a template function. NFC (#185957)
I may need selectShiftMask16 and selectShiftMask8 for P extension shift
instructions.
[libc] Add entrypoint for iswxdigit (#185574)
This PR intends to add entrypoints and some smoke tests for `iswxdigit`
function
Changes made are :-
- Added entrypoint for `iswxdigit` in wctype.yaml
- Added CMake entrypoint object for `iswxdigit`
- Added Header and implementation in `iswxdigit.h` and `iswxdigit.cpp`
- Added test for `iswxdigit` in iswxdigit_test.cpp
- Added `iswxdigit` in entrypoints.txt for available platforms
Tested using = `ninja libc.test.src.wctype.iswxdigit_test.__unit__`
passes all tests
part of #185136
AMDGPU/GlobalISel: RegBankLegalize cvt_pk_u16/i16/pkrtz (#185534)
There are regressions that can be seen in pkrtz test regarding undefs
and fneg folding when swapping to GlobalISel with new register bank
select. Hopefully these can be cleaned up in a later patch.
[lldb] Reinstate ~PluginInstances assertion (#185537)
This re-enables the assertion in the PluginInstances destructor that
catches plugins that were not unregistered in their Terminate method. It
also adds a helpful message to quickly identify the plugin.