[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[libc++] Make optional::iterator experimental (#173470)
We haven't yet decided what we want the `optional::iterator` type to be
in the end, so let's make it experimental for now so that we don't
commit to an ABI yet.
[TableGen] Remove deprecated !getop and !setop (#175155)
They have been deprecated for more than five years in favor of !getdagop
and !setdagop. See https://reviews.llvm.org/D89814.
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[SPIR-V] Initial support for SPIR-V in `gpuintrin.h` (#174910)
Summary:
https://github.com/llvm/llvm-project/pull/174862 and
https://github.com/llvm/llvm-project/pull/174655 provided the intrinsics
required to get the fundamental operations working for these. This patch
sets up the basic support (as far as I know).
This should be the first step towards allowing SPIR-V to build things
like the LLVM libc and the OpenMP Device Runtime Library. The
implementations here are intentionally inefficient, such as not using
the dedicated SPIR-V opcode for read firstlane. This is just to start
and hopefully start testing things later.
Would appreciate someone more familiar with the backend double-checking
these.
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[flang][mlir] Add checks and test for linear clause on omp.wsloop and omp.simd (#174916)
This PR adds additional checks and tests for linear clause on omp.wsloop
and omp.simd (both standalone and composite). For composite simd
constructs, the translation to LLVMIR uses the same
`LinearClauseProcessor` under `convertOmpSimd`, as already present in
previous PRs like https://github.com/llvm/llvm-project/pull/150386 and
https://github.com/llvm/llvm-project/pull/139386
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[clang][CodeGen] Fix ConstantInt::get for i1 in EmitScalarPrePostIncDec (#175152)
In ScalarExprEmitter::EmitScalarPrePostIncDec we create ConstantInt
values that are either 1 or -1. There is a special case when the type is
i1 (e.g. for unsigned _BitInt(1)) when we need to be able to create a
"i1 true" value for both inc and dec.
To avoid triggering the assertions added by the pull request #171456 we
now treat the ConstantInt as unsigned for increments and as signed for
decrements.
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[CommandLine] Use DenseMap instead of StringMap (NFC) (#174988)
StringMap duplicates the option name to a new allocation for every
option, which is not necessary. Instead we can use the same StringRef
that the Option already uses inside a DenseMap. This reduces the amount
of allocations when loading libLLVM.
[flang][OpenMP] Prevent `omp.map.info` ops with user-defined mappers from being marked as parial maps (#175133)
The following test was triggering a runtime crash **on the host before
launching the kernel**:
```fortran
program test_omp_target_map_bug_v5
implicit none
type nested_type
real, allocatable :: alloc_field(:)
end type nested_type
type nesting_type
integer :: int_field
type(nested_type) :: derived_field
end type nesting_type
type(nesting_type) :: config
allocate(config%derived_field%alloc_field(1))
[62 lines not shown]
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[AMDGPU] Regenerate all MC checks after #164424 (#175156)
Includes one manual fix to add -filetype=null to a RUN line in
test/MC/AMDGPU/gfx1250_asm_sop1.s. Everything else is autogenerated.
[OpenMP][flang] Move `todo` for checking reduction support status on the GPU
Moves a `todo` to check for the current level of support for by-ref
reductions to the `FunctionFiltering` pass. This guarantees that the
check does not trigger when the same module is compiled twice: on the
CPU and on the GPU.
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[mlir][Analysis][NFC] Improve `RegionBranchOpInterface` API usage (#173983)
Remove a helper function and query the `RegionBranchOpInterface`
instead. (Which does the same thing.) Also add a TODO for a bug in the
implementation of `SliceWalk.cpp`. (The bug is not fixed yet.)
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[clang] Fix string literal parsing on some attributes (#171017)
At the time ParseAttributeArgumentList is called, the first argument
of an attribute may have already been parsed. We need to take this into
account when accessing ParsedAttributeArgumentsProperties mask, which
specifies which of the attribute arguments are string literals.
Pull Request: https://github.com/llvm/llvm-project/pull/171017
[CodeGen] Introduce MI flag for Live Range split instructions
For some targets, it is required to identify the COPY instruction
corresponds to the RA inserted live range split. Adding the new
flag `MachineInstr::LRSplit` to serve the purpose.
[flang-rt][build] Disable build-time warning of '-Wshift-count-negative' from g++ compiler and remove unsupported floating-point data. (#174915)
When building the flang-rt project with the g++ compiler on Linux-X86_64
machine, the compiler gives the following warning:
```
llvm-project/flang-rt/lib/runtime/extensions.cpp:455:26: warning: left shift count is negative [-Wshift-count-negative]
455 | mask = ~(unsigned)0u << ((8 - digits) * 4 + 1);
| ~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
```
All the discussion records see:
https://github.com/llvm/llvm-project/pull/173955
Co-authored-by: liao jun <liaojun at ultrarisc.com>