AMDGPU: Use fpmath metadata on f16 log/log10 intrinsics (#180489)
result by default, and the old expansion with the afn flag. The
old result was good enough for OpenCL conformance, so consider
the fpmath metadata and use the fast path. This is done in
AMDGPUCodeGenPrepare for the same reason that sqrt is handled here,
which is the DAG does not have a way to access fpmath metadata
from the original instruction.
This is not yet of practical use, because the log calls sourced
from OpenCL are not actually marked with this metadata and there
isn't a method to produce it from the source languages.
[Flang][OpenMP] Fix nested PARALLEL SECTIONS validation (#179419)
### Problem
Flang’s OpenMP semantic checker was mistakenly rejecting valid nested
constructs such as PARALLEL SECTIONS, PARALLEL DO, and other combined
parallel work-sharing directives.
The checker treated all work-sharing constructs identically and enforced
the work-sharing region nesting rules, even for a combined parallel
work-sharing construct that defined its own parallel region.
This resulted in the checker reporting the use of nested PARALLEL
SECTIONS within another parallel region as illegal OpenMP code
### Fixes: https://github.com/llvm/llvm-project/issues/179250
---------
Co-authored-by: Jay Satish Kumar Patel <kumarpat at pe31.hpc.amslabs.hpecorp.net>
[Clang][Modules] Ensure global diagnostic overrides are respected in system modules (#180684)
When a template is instantiated from a system module, the
location-specific
diagnostic state (from 'Diag.GetDiagStateForLoc(Loc)') often has
'SuppressSystemWarnings' set to true because the location itself is
within
a system header defined by the module map.
Clang provides mechanisms like 'AllowWarningInSystemHeaders' RAII
(used for deprecated warnings in 'SemaAvailability.cpp') that are
intended
to temporarily override this suppression. Previously, this was done by
modifying the current diagnostic state's 'SuppressSystemWarnings' bit.
However, since 'getDiagnosticSeverity' checks the state associated with
the
diagnostic's location, this current-state override was ignored for code
inside system modules.
[30 lines not shown]
[SafeStack] Use ptrmask instead of ptrtoint+and+inttoptr (#181649)
Use the provenance-preserving ptrmask intrinsic instead of
ptrtoint+and+inttoptr for pointer alignment.
[AMDGPU] Add missing comma between export target and first export data (#181641)
The new format matches the official ISA spec and ensures the
disassembler prints 'export mrt0, v0, off, off, off' instead of 'export
mrt0 v0, off, off, off'.
No functional encoding changes; printing/AsmString only.
Mk/Uses/cabal.mk: Support for USE_CABAL in separate Makefile.cabal
Like we already do have in Mk/Uses/cargo.mk for Makefile.crates.
* Adopt www/hs-postgrest to this change in framework.
Reviewed by: vvd@
Approved by: portmgr@ (arrowd@)
Approved by: db@, yuri@ (Mentors, implicit)
Differential Revision: https://reviews.freebsd.org/D51936
[OMPIRBuilder] Hoist alloca's to entry blocks of compiler-emitted GPU reduction functions (#181359)
Fixes a bug in GPU reductions when `-O0` was used to compile GPU
reductions. There were invalid memory accesses at runtime for the
following example:
```fortran
program test_array_reduction()
integer :: red_array(1)
integer :: i
red_array = 0
!$omp target teams distribute parallel do reduction(+:red_array)
do i = 1, 100
red_array(1) = red_array(1) + 4422
end do
!$omp end target teams distribute parallel do
[9 lines not shown]