[InferAttrs] Mark ceil and round as memory(none) (#170694)
This probably should've been done in
https://github.com/llvm/llvm-project/pull/124742, but it wasn't. The
floor, ceil, round, and trunc family of functions all behave the same.
AMDGPU: Avoid crashing on statepoint-like pseudoinstructions
At the moment the MIR tests are somewhat redundant. The waitcnt
one is needed to ensure we actually have a load, given we are
currently just emitting an error on ExternalSymbol. The asm printer
one is more redundant for the moment, since it's stressed by the IR
test. However I am planning to change the error path for the IR test,
so it will soon not be redundant.
AMDGPU: Create a dummy call sequence when emitting call error
At least one special case call lowering tries to parse the call
sequence and asserts when it can't find a callseq_end.
[lldb] improve the heuristics for checking if a terminal supports Unicode (#168603)
This patch improves the way lldb checks if the terminal it's opened in
(if any) supports Unicode or not.
On POSIX systems, we check if `LANG` contains `UTF-8`.
On Windows, we always return `true` since we use the `WriteToConsoleW`
api.
Document the community RFC process (#116386)
This adds documentation about how the community RFC process works, based
on how the community typically runs RFCs. The goal is to roughly
document the process as-is and then post a follow-up explaining how the
new governance model ties in to the RFC process. From there, we can
discuss any changes to the process we would like to make via... an RFC.
DAG: Use more RTLIB helper functions for getting libcall from type (#170563)
We had a set of utilities which was only used for some set of
floating point libcalls. Add more, most of which are for integer
operations.
Ideally we would generate these functions from tablegen.
[flang][docs] Tweak in-progress warning in the release notes page
Reformat the in-progress warning message in the release notes page. This
is now rendered in a style similar to that of clang. The warning will
be hidden on release builds of the documentation.
[llvm-readobj][MachO] Add support for CPU_TYPE_ARM64_32 (#170193)
This adds support for ARM64_32 (ILP32) cpu type and subtype in
llvm-readobj --file-headers. The support was previously added for
llvm-objdump but was accidentally omitted from llvm-readobj.
[flang/flang-rt] Implement show_descriptor intrinsic, a non-standard extension. (#170389)
This is a reapply the original patch (#169137) with the flang-rt unit
test changes limiting it to linux platform only.
Additionally accommodated style changes from Peter Klausler (#170227)
show_descriptor intrinsic prints details of a descriptor (extended
Fortran pointer).
It accepts a descriptor for any type and rank, including scalars.
Requires use of flang_debug module.
Example:
```
program test
use flang_debug
implicit none
integer :: a(4) = (/ 1,3,5,7 /)
call show_descriptor(a(1:3))
end program test
[13 lines not shown]
[OpenACC] Adjust rules of 'routine' required clauses (#170667)
The interaction between various clauses on 'routine' was not implemented
QUITE right, as I discovered when looking into the implementation of the
ACC dialect. This patch fixes it up so that there can only be 1 of the
special clauses per device_type VALUE (including nvidia ==
acc_device_nvidia).
This patch also does a refactor/unification of this with the rules of
other clauses, as we now know they are effectively the same.
[AArch64][GlobalISel] Add basic scalar handling for i32 lround and lrint (#170175)
This covers the "windows" variants, where long == i32. We can treat them
as legal and generate the expected fcvtas instruction. The
lround/llround and lrint/llrint were rejigged to allow the common parts
to legalise in the same manner.
Reapply "[clangd] Enable lit internal shell by default" (#170676)
This reverts commit 4cfbc44ebe26692c209655c37aeb0b6cbf1d479b.
There was an issue setting up the PATH variable in
system-include-extractor.test which prevented chmod from being resolved.
Ubuntu 18.04 puts all the standard Linux utilities in `/bin` which sits
at the end of `$PATH` on that system. We were not removing the newline
after python's print of `$PATH`, which caused lit to not be able to
properly resolve the path.
[Flang][OpenMP] Add lowering support for is_device_ptr clause (#169331)
Add support for OpenMP is_device_ptr clause for target directives.
[MLIR][OpenMP] Add OpenMPToLLVMIRTranslation support for is_device_ptr #169367
This PR adds support for the OpenMP is_device_ptr clause in the MLIR to LLVM IR translation for target regions. The is_device_ptr clause allows device pointers (allocated via OpenMP runtime APIs) to be used directly in target regions without implicit mapping.
Reapply "[clangd] Enable lit internal shell by default"
This reverts commit 4cfbc44ebe26692c209655c37aeb0b6cbf1d479b.
There was an issue setting up the PATH variable in
system-include-extractor.test which prevented chmod from being resolved.
Reapply "[clangd] Enable lit internal shell by default"
This reverts commit 4cfbc44ebe26692c209655c37aeb0b6cbf1d479b.
There was an issue setting up the PATH variable in
system-include-extractor.test which prevented chmod from being resolved.
[BOLT] Make safe ICF work with relative vtable (#170629)
To support relative vtable, we divide each vtable entry address by 4
instead of 8 when tracking addresses covered by vtable using bitvector.
This guarantees accuracy, saves the trouble of checking for each vtable
whether it is relative, and is also necessary for libraries for which
some contributing compilation units are compiled with relative vtable
while others are not.
[LangRef] Specify icmp on pointers to only compare address (#163936)
This changes LangRef to specify that pointer icmp only compares the
address bits of the pointers. That is, `icmp pred %a, %b` is equivalent
to `icmp pred ptrtoaddr(%a), ptrtoaddr(%b)`.
Similarly, it specifies that the `nonnull` attribute requires that the
address bits are non-zero.
There are a couple of motivations for this:
* For inequality comparisons, this is really the only sensible
semantics. Relational comparison of address and metadata bits as a
single integer is generally meaningless (unless the metadata bits are
equal).
* This matches (as far as I understand) the behavior of existing CHERI
implementations.
* LLVM can only reason about the address bits. These semantics allow
pointers with non-address bits to receive essentially the same
[16 lines not shown]
Reapply "[clangd] Enable lit internal shell by default"
This reverts commit 4cfbc44ebe26692c209655c37aeb0b6cbf1d479b.
There was an issue setting up the PATH variable in
system-include-extractor.test which prevented chmod from being resolved.
Fix a use-after-free crash in ResetObjCLayout (#170360)
operator[] can potentially cause reallocation and invalidate live
iterators if it's called with a key that isn't present in the DenseMap.
Call lookup() instead to prevent the function from inserting new entries
into the DenseMap for ObjC classes that don't have any subclasses.
rdar://165448332
[mlir][NVVM] Add support for few more fence Ops (#170251)
This commit adds support for the following fence Ops:
- fence.sync_restrict
- fence.proxy.sync_restrict
The commit also moves memory.barrier into the Membar/Fence section, migrates fence.mbarrier.init to intrinsics and consolidates fence related tests under nvvm/fence.mlir and nvvm/fence-invalid.mlir