[OpenMP][MLIR] Modify OpenMP Dialect lowering to support attach mapping (#179023)
This PR adjusts the LLVM-IR lowering to support the new attach map type
that the runtime uses to link data and pointer together, this swaps the
mapping from the older OMP_MAP_PTR_AND_OBJ map type in most cases and
allows slightly more complicated ref_ptr/ptee and attach semantics.
[clang][NFC] Remove `macro_begin` and `macro_end` from `Preprocessor` (#197817)
Use `macros()` wherever posible. This gives us the following advantages:
1. We can use the range-base for loop for simpler looking code.
2. We more ergonomically use algorithms.
3. We can avoid the duplicate work of checking if we need to call
`ExternalSource->ReadDefinedMacros()` that was in both `macro_begin` and
`macro_end`. In some cases, we save this extra work once per loop
iteration, not just one extra total.
4. No user confusion deciding which version they should call
5. Reduce the size of `Preprocessor.h` and the number of members in
`Preprocessor`.
Using `macros` ends up being the better solution in every case, so since
all callers were migrated from `macro_begin` and `macro_end` to
`macros`, get rid of `macro_begin` and `macro_end`.
---------
Co-authored-by: Victor Chernyakin <chernyakin.victor.j at outlook.com>
[lldb][Clang] Removed redundant code in DWARFASTParserClang (#197802)
decl_up is initialized here but doesn't appear to be used or moved
anywhere before it goes out of scope. If the Declaration info isn't
needed for the FunctionSP, it should probably be removed.
[clang] Implement constexpr DesignatedInitUpdateExpr. (#196427)
DesignatedInitUpdateExpr exists to handle some obscure edge cases in C,
where the usual InitListExpr canonicalization can't be performed.
Previously, we didn't need constant evaluation for this, but C23
constexpr means we need to evaluate this before codegen.
Implementation is mostly straightforward: just need to evaluate the two
subexpressions, in order, and skip any NoInitExprs.
Along the way, I ran into an issue with the way we manage array APValues
for non-bytecode constant evaluation; fix reallocation to work
correctly.
Fixes #193373. Fixes #196450.
[Flang][MLIR][OpenMP] Add distinct var_ptr_ptr_type to omp.map.info operations & remove ref_ptr_ptee (#177302)
This is a precursor patch to attach and ref_ptr/ptee mapping that I
intend to upstream
over the next few weeks. The attach maps require both the type of the
descriptor and
the pointed to data to calculate the appropriate offload/base pointers
and size. In
the base case of ref_ptr_ptee all of this information can be gathered
from the pointer
and pointee maps, but in cases where we have only one (i.e.
ref_ptr/ref_ptee) we will
be missing one of the key elements required to create an corresponding
attach map.
So, this PR basically adds the ability to ferry around the type of both
var_ptr and
var_ptr_ptr as opposed to just var_ptr, then we can emit attach maps as
seperate
[8 lines not shown]
[Flang][OpenMP][MLIR] Add attach and ref map type lowering to MLIR (#177301)
This doesn't implement the functionality, just the relevant map type
lowering to MLIR's omp.map.info. The more complicated changes to
MapInfoFinalizationPass.cpp and OpenMPTOLLVMIRTranslation.cpp to support
attach map and the various ref/attach semantics will come in a
subsequent set of PRs. This just helps compartmentalize the changeset.
Reland "[DirectX][ObjectYAML] Add ILDN part support" (#197749)
This relands #194508, which was reverted in #197348.
This reland addresses the revert reasons:
- Rename `DXContainerYAML::DebugName::DebugName` to `Filename` to avoid
compilation failures on older `cl.exe` versions due to field name
matching
its class name.
- Fix layering by reverting the MC -> Object dependency introduced
previously:
`ILDNData` is no longer defined in `llvm/Object/DXContainer.h` and used
by MC. Instead, ILDN fields are represented by `mcdxbc::DebugName` in
`llvm/MC/DXContainerInfo.h`, and Object uses that type (Object already
depends on MC).
[AArch64] Make width of stack protector guard value load configurable. (#195379)
Certain embedded targets store the value of the stack protector global
in an MMIO register, which requires a load of a specific width. Allow
changing the backend to emit a 4-byte load for the value of the stack
protector, instead of an 8-byte load. (Or vice versa for an ilp32
target.)
The current version of the patch has a limitation: it still allocates a
pointer-sized stack slot for the guard. This could be fixed in the
future, if it becomes relevant.
Cloud releases: Switch to firstboot_pkg_upgrade
Cloud images are deployed with base system packages. Introduce a
firstboot package auto updater to patch the base system on first boot.
MFC after: 1 hour
MFC to: stable/15
Reviewed by: cperciva
Sponsored by: Google Cloud
Differential Revision: https://reviews.freebsd.org/D56890
(cherry picked from commit 464a351267dc0d1843b919dd72ad1c70c24815ce)
[lldb] Use identity hashing for HashToISAMap in ObjCLanguageRuntime (#197759)
The keys of HashToISAMap are already hashes, and can be used as-is.
---------
Co-authored-by: Adrian Prantl <adrian.prantl at gmail.com>
nfsd: Allow vfs.nfsd.srvmaxio to be up to 4Mbytes
Without this patch, the maximum setting for
vfs.nfsd.srvmaxio was 1Mbyte. This patch increases
that to 4Mbytes.
The same as for any setting above 128Kbytes, settings up to
4Mbytes require that kern.ipc.maxsockbuf be increased.
(A message generated after setting vfs.nfsd.srvmaxio via
the /etc/rc.conf variable nfs_server_maxio will indicate
the minimum setting, which will be somewhat greater than
four times the setting of vfs.nfsd.srvmaxio.)
Requested by: Cedric Blancher <cedric.blancher at gmail.com>
MFC after: 2 weeks
Fixes: 13d3bd165e22 ("subr_uio.c: Remove a KASSERT() for large NFS server I/O")