LLVM/project 24c2c69llvm/utils instrumentor-config-wizard.py

[Instrumentor] Improve the config wizard script

This makes the config wizard script more generic as we grow
instrumentation opportunities. Better output, e.g., clear paths, are
also displayed now.

Prepared with Claude (AI) and tested by me afterwards.
DeltaFile
+267-153llvm/utils/instrumentor-config-wizard.py
+267-1531 files

LLVM/project a01ddddclang/lib/CIR/CodeGen CIRGenCleanup.cpp, clang/test/CIR/CodeGen cleanup-conditional-with-wrapper-eh.cpp cleanup-conditional-with-wrapper.cpp

[CIR] Fix a problem with hoisting allocas out of nested cleanup scopes (#199093)

A recent change to the code that hoists allocas out of a cleanup scope
introduced an assertion that triggers when we're trying to hoist an
alloca that is in a cleanup scope that is nested within the cleanup
scope we're processing. I didn't think that could happen, but it turns
out the LLVM code itself triggers it.

This change removes the assertion and updates the check for the alloca
being contained within the cleanup scope we're processing so that it can
handle the case with nested scopes.

Assisted-by: Cursor / claude-opus-4.7-thinking-xhigh
DeltaFile
+168-0clang/test/CIR/CodeGen/cleanup-conditional-with-wrapper-eh.cpp
+116-0clang/test/CIR/CodeGen/cleanup-conditional-with-wrapper.cpp
+6-15clang/lib/CIR/CodeGen/CIRGenCleanup.cpp
+290-153 files

LLVM/project 07363e4llvm/include/llvm/Transforms/IPO Instrumentor.h InstrumentorUtils.h, llvm/lib/Transforms/IPO Instrumentor.cpp InstrumentorUtils.cpp

[Instrumentor][FIX] Ensure we indicate changes properly.

We now indicate changes whenever we might have changed things even if
the filter will rule out instrumentation. The issue was that we need to
get the argument to check the filter and that process might create new
IR, e.g., a global variable containing the function name.
DeltaFile
+13-8llvm/lib/Transforms/IPO/Instrumentor.cpp
+4-2llvm/include/llvm/Transforms/IPO/Instrumentor.h
+5-1llvm/lib/Transforms/IPO/InstrumentorUtils.cpp
+1-1llvm/include/llvm/Transforms/IPO/InstrumentorUtils.h
+23-124 files

LLVM/project e9d88calibcxx/include/__iterator move_iterator.h access.h, libcxx/test/libcxx/diagnostics iterator.nodiscard.verify.cpp

[libc++][iterator] Applied `[[nodiscard]]` (#172200)

`[[nodiscard]]` should be applied to functions where discarding the
return value is most likely a correctness issue.

- https://libcxx.llvm.org/CodingGuidelines.htm
- https://wg21.link/iterators

Also moves the test to the correct location:
`libcxx/test/libcxx/iterators/nodiscard.verify.cpp`

Towards #172124

---------

Co-authored-by: Hristo Hristov <zingam at outlook.com>
DeltaFile
+369-0libcxx/test/libcxx/iterators/nodiscard.verify.cpp
+23-18libcxx/include/__iterator/move_iterator.h
+0-38libcxx/test/libcxx/diagnostics/iterator.nodiscard.verify.cpp
+15-13libcxx/include/__iterator/access.h
+16-11libcxx/include/__iterator/reverse_iterator.h
+17-10libcxx/include/__iterator/reverse_access.h
+440-9013 files not shown
+490-13019 files

LLVM/project 62085edllvm/include/llvm/Frontend/OpenMP OMPIRBuilder.h, llvm/lib/Frontend/OpenMP OMPIRBuilder.cpp

[OpenMP][mlir] Support iterator modifier LLVM lowering for map/motion

Lower iterator modifiers on map and motion
(target_data/target_data_begin/target_data_end/target_update) by
building dynamic offload map arrays in OpenMPIRBuilder and populating
them from iterator-expanded map entries during MLIR OpenMP to LLVM IR
translation.

Hoist runtime-sized offload map array allocation for target data with
iterator modifiers so the dynamic count and arrays dominate runtime calls.

This patch is part of feature work for #188061.

Assisted with copilot.
DeltaFile
+240-17llvm/lib/Frontend/OpenMP/OMPIRBuilder.cpp
+217-0mlir/test/Target/LLVMIR/openmp-iterator.mlir
+155-10mlir/lib/Target/LLVMIR/Dialect/OpenMP/OpenMPToLLVMIRTranslation.cpp
+119-0offload/test/offloading/fortran/map-motion-iterator.f90
+18-64mlir/test/Target/LLVMIR/openmp-todo.mlir
+34-4llvm/include/llvm/Frontend/OpenMP/OMPIRBuilder.h
+783-956 files

LLVM/project 0717721clang/lib/Format QualifierAlignmentFixer.cpp, clang/unittests/Format QualifierFixerTest.cpp

[clang-format] Fix unrecognized qualifiers breaking east-const (#198656)

Long time reader, first time contributor. :3

I've been experimenting with `_Nullable` and `_Nonnull` qualifiers in my
project for which the `.clang-format` configures:
```
QualifierAlignment: Custom
QualifierOrder: [type, const, volatile]
```

This results in the following form:
```cpp
T const* _Nullable const identifier =
```
Formatting as:
```cpp
T const* _Nullable identifier const =
```

    [10 lines not shown]
DeltaFile
+19-0clang/unittests/Format/QualifierFixerTest.cpp
+6-0clang/lib/Format/QualifierAlignmentFixer.cpp
+25-02 files

LLVM/project c12d113flang/lib/Lower ConvertExprToHLFIR.cpp, flang/test/Lower/Intrinsics bge.f90 bgt.f90

[flang] Implement lowering for BOZ literal arguments in BGE, BLE, BGT, BLT (#191874)

BGE/BGT/BLE/BLT allow one or both arguments to be a BOZ literal
constant. Unlike other intrinsics that accept BOZ arguments, these do
not convert the BOZ to a typed value during semantic analysis.

When both arguments are constants, the comparison is folded at compile
time in `fold-logical.cpp`. However, when the non-BOZ argument is a
variable, folding is skipped and the BOZ literal constant persists in
the expression tree through to lowering.

The lowering implementation wraps the `BOZLiteralConstant]` in a
`Constant<LargestInt>` and feeds it through the existing
`convertConstant` infrastructure. Since BOZ is always a scalar, this
always produces a trivial SSA value. This follows the same pattern as
`gen(Constant<T>)` for the trivial scalar path. The `AddrOfOp` branch
from that template is intentionally omitted because a scalar i128
constant never produces a global reference. The
`outlineBigConstantInReadOnlyMemory` parameter is set to false to make

    [10 lines not shown]
DeltaFile
+52-0flang/test/Lower/Intrinsics/bge.f90
+38-0flang/test/Lower/Intrinsics/bgt.f90
+38-0flang/test/Lower/Intrinsics/ble.f90
+38-0flang/test/Lower/Intrinsics/blt.f90
+6-1flang/lib/Lower/ConvertExprToHLFIR.cpp
+172-15 files

LLVM/project 8a7f785.ci/metrics Dockerfile

[CI] Pin base container in metrics Dockerfile (#198879)

https://github.com/llvm/llvm-project/security/code-scanning/1309
DeltaFile
+1-1.ci/metrics/Dockerfile
+1-11 files

LLVM/project 73f2dd8flang/lib/Semantics resolve-names.cpp

[flang][OpenMP] Remove unnecessary code from OmpVisitor, NFC (#198865)
DeltaFile
+21-66flang/lib/Semantics/resolve-names.cpp
+21-661 files

LLVM/project 0d55de9.github/workflows/containers/github-action-ci-tooling Dockerfile

[Github] Use --require-hashes when installing python dependencies for tooling container (#198880)

https://github.com/llvm/llvm-project/security/code-scanning/1501
https://github.com/llvm/llvm-project/security/code-scanning/1502
DeltaFile
+2-2.github/workflows/containers/github-action-ci-tooling/Dockerfile
+2-21 files

LLVM/project 957d833flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp, flang/lib/Optimizer/OpenMP MapInfoFinalization.cpp

[Flang][OpenMP] Support iterator modifiers in map and motion clauses

Support iterated array elements and array sections in map and motion clauses for
target data, target enter data, target exit data, and target update constructs.

Preserve mapper resolution for iterated entries, including explicit mappers,
user-defined default mappers, declare mapper entries, and implicit default
mappers.

This PR stacked on top of #197047 and #197752.

This patch is part of the feature work for #188061.

Assisted with copilot.
DeltaFile
+507-0flang/test/Lower/OpenMP/motion-iterator.f90
+183-0flang/lib/Lower/OpenMP/Utils.cpp
+96-12flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+25-0flang/test/Lower/OpenMP/declare-mapper-iterator.f90
+15-0flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
+12-0flang/lib/Lower/OpenMP/Utils.h
+838-123 files not shown
+838-399 files

LLVM/project 5c5f736llvm/lib/Target/SPIRV SPIRVInstructionSelector.cpp, llvm/test/CodeGen/SPIRV/hlsl-intrinsics reversebits.ll

[HLSL][SPIRV] Correct reversebit 64 split (#197849)

Replace the split-lanes + OpCompositeConstruct sequence in
selectBitreverse64 with a single OpVectorShuffle to swap the high/low
32-bit halves, simplifying both the selector logic, the emitted SPIR-V
and fixing the bug.

fix: #197810 
Assisted by: Claude Opus 4.6
DeltaFile
+6-20llvm/test/CodeGen/SPIRV/hlsl-intrinsics/reversebits.ll
+11-9llvm/lib/Target/SPIRV/SPIRVInstructionSelector.cpp
+17-292 files

LLVM/project 6667af2flang/lib/Semantics resolve-names.cpp

Fix merge error
DeltaFile
+2-4flang/lib/Semantics/resolve-names.cpp
+2-41 files

LLVM/project 20cb1cclldb/cmake/modules AddLLDB.cmake, lldb/source/Host CMakeLists.txt

[lldb][CMake] Enforce lldbUtility and lldbHost layering invariants (#198952)

lldbUtility cannot depend on any other lldb library, and lldbHost can
only depend on lldbUtility. Breaking those invariants is an easy mistake
to make and has happened repeatedly: most recently in #198931.

Because LLDB statically links its libraries on macOS, a stray LINK_LIBS
entry, or a stray cross-library #include without a matching CMake
dependency, both succeed at link time and only surface much later as a
layering bug.

Add two configure-time checks in `add_lldb_library` so the build fails
fast when these invariants are broken:

1. A new `ALLOWED_INTERNAL_DEPENDENCIES <list>` parameter allowlists
which `^lldb`-prefixed `LINK_LIBS` entries a target may depend on. The
existing `NO_INTERNAL_DEPENDENCIES` flag is the empty-allowlist case and
continues to work.


    [21 lines not shown]
DeltaFile
+116-4lldb/cmake/modules/AddLLDB.cmake
+3-0lldb/source/Host/CMakeLists.txt
+0-2lldb/source/Utility/FileSpecList.cpp
+1-0lldb/source/Host/macosx/objcxx/CMakeLists.txt
+120-64 files

LLVM/project f783105flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp, flang/lib/Optimizer/OpenMP MapInfoFinalization.cpp

[Flang][OpenMP] Support iterator modifiers in map and motion clauses

Support iterated array elements and array sections in map and motion clauses for
target data, target enter data, target exit data, and target update constructs.

Preserve mapper resolution for iterated entries, including explicit mappers,
user-defined default mappers, declare mapper entries, and implicit default
mappers.

This PR stacked on top of #197047 and #197752.

This patch is part of the feature work for #188061.

Assisted with copilot.
DeltaFile
+507-0flang/test/Lower/OpenMP/motion-iterator.f90
+183-0flang/lib/Lower/OpenMP/Utils.cpp
+97-12flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+25-0flang/test/Lower/OpenMP/declare-mapper-iterator.f90
+15-0flang/lib/Optimizer/OpenMP/MapInfoFinalization.cpp
+13-0flang/lib/Lower/OpenMP/Utils.h
+840-123 files not shown
+840-399 files

LLVM/project 6c296e4llvm/lib/Target/RISCV RISCVISelLowering.cpp, llvm/test/CodeGen/RISCV/rvv bitcast-cmp.ll

[RISCV] Fold Bitcast long bitwidth int to vector type (#194788)

Prevent bitcasts from `i256` to `<16 x i16>` or `<8 x i32>` from falling
back to scalar types.

Fixes: https://github.com/llvm/llvm-project/issues/180910

---------

Signed-off-by: ZakyHermawan <zaky.hermawan9615 at gmail.com>
DeltaFile
+139-0llvm/test/CodeGen/RISCV/rvv/bitcast-cmp.ll
+62-4llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+201-42 files

LLVM/project d5ba663clang/docs ReleaseNotes.rst, clang/lib/Driver ToolChain.cpp

[AIX][clang][compiler_rt] rename libatomic archive to libclang_rt (#197485)

This PR implements the following on AIX to avoid conflicts between LLVM
libatomic and the GNU libatomic in the AIX toolbox as they share the
same library name:

- Updates the clang driver to use `-lcompiler_rt` instead of `-latomic`
- Renames the compiler-rt archive from `libatomic.a` to
`libcompiler_rt.a`

Only the archive and not the shared object (`libatomic.so.1`) is renamed
because renaming one component is enough to distinguish between the LLVM
and GNU libatomic libraries. This also allows us to add additional
shared objects to the `libcompiler_rt.a` archive in the future if
needed.
DeltaFile
+4-1clang/lib/Driver/ToolChain.cpp
+2-2compiler-rt/lib/builtins/CMakeLists.txt
+4-0clang/docs/ReleaseNotes.rst
+2-2clang/test/Driver/fprofile-update.c
+1-1clang/lib/Driver/ToolChains/AIX.cpp
+13-65 files

LLVM/project 5c5710blldb/tools/lldb-dap/extension package-lock.json, llvm/test/CodeGen/NVPTX machine-cse-predicate-inversion.ll

Merge branch 'main' into users/kparzysz/d02-cleanup
DeltaFile
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-2,353llvm/test/CodeGen/X86/horizontal-reduce-umax.ll
+0-2,223llvm/test/CodeGen/X86/horizontal-reduce-smin.ll
+0-2,220llvm/test/CodeGen/X86/horizontal-reduce-smax.ll
+0-2,099llvm/test/CodeGen/X86/horizontal-reduce-umin.ll
+6,407-10,180901 files not shown
+34,183-21,908907 files

LLVM/project 3b5bbe9flang/lib/Optimizer/Dialect FIROps.cpp, flang/lib/Optimizer/Transforms FIRToMemRef.cpp

[flang] Canonicalize sliced array access by fir.array_coor. (#197845)

This patch adds a canonicalization pattern for pulling rank-reducing
slices into `fir.array_coor`. This is helpful to preserve the original
rank of the array in `fir.array_coor`, which then helps representing
slice accesses in memref dialect as accesses to the original array.
This way, further conversion to affine dialect has benefits of
exposing the math applied to indices of all array dimensions.

For example, if a non-scalar slice depends on a loop IV, pulling
this into the original array access allows building access maps
enabling affine dependency analysis.

I considered the following three models for the addressing used
in `fir.array_coor` with rank reducing slices:

1) Mixed model:
  - Encoding
    * Scalar-sliced dims: index is slice_lb

    [38 lines not shown]
DeltaFile
+269-10flang/test/Fir/array-coor-canonicalization.fir
+143-10flang/lib/Optimizer/Dialect/FIROps.cpp
+28-0flang/test/Transforms/FIRToMemRef/array-coor-slice-shift.mlir
+20-4flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
+460-244 files

LLVM/project cb9c800llvm/utils instrumentor-config-wizard.py

[Instrumentor] Improve the config wizard script

This makes the config wizard script more generic as we grow
instrumentation opportunities. Better output, e.g., clear paths, are
also displayed now.
DeltaFile
+267-153llvm/utils/instrumentor-config-wizard.py
+267-1531 files

LLVM/project e57ade6clang/lib/Format ContinuationIndenter.cpp ContinuationIndenter.h, clang/unittests/Format AlignBracketsTest.cpp

[clang-format] Stop indenting the closing brace for the initializer (#197590)

new

```C++
SomeStruct //
    s = {
        "xxxxxxxxxxxxx",
};
```

old

```C++
SomeStruct //
    s = {
        "xxxxxxxxxxxxx",
    };
```

See the comment.  https://github.com/llvm/llvm-project/pull/192299#issuecomment-4414273071
DeltaFile
+47-0clang/unittests/Format/AlignBracketsTest.cpp
+20-1clang/lib/Format/ContinuationIndenter.cpp
+4-0clang/lib/Format/ContinuationIndenter.h
+71-13 files

LLVM/project 1db51d5clang/include/clang/Serialization ASTRecordReader.h, clang/lib/AST ASTContext.cpp Type.cpp

trivial changes
DeltaFile
+20-14clang/lib/Sema/SemaOpenMP.cpp
+18-14clang/lib/AST/ASTContext.cpp
+16-15clang/lib/Sema/SemaTemplate.cpp
+14-11clang/lib/AST/Type.cpp
+14-8clang/lib/AST/ASTDiagnostic.cpp
+11-6clang/include/clang/Serialization/ASTRecordReader.h
+93-6833 files not shown
+202-15239 files

LLVM/project 4a74106clang/include/clang/AST ASTContext.h, clang/lib/AST ASTContext.cpp ItaniumMangle.cpp

[clang] implement CWG2064: ignore value dependence for decltype

The 'decltype' for a value-dependent (but non-type-dependent) should be known,
so this patch makes them non-opaque instead.

This patch also implements what's neceessary to allow overloading
on pure differences in instantiation dependence, making `std::void_t`
usable for SFINAE purposes.

This also readds a few test cases from da98651, which was a previous attempt
at resolving CWG2064.

Fixes #8740
Fixes #61818
Fixes #190388
DeltaFile
+888-161clang/lib/AST/ASTContext.cpp
+328-12clang/test/SemaTemplate/instantiation-dependence.cpp
+176-96clang/lib/AST/ItaniumMangle.cpp
+100-98clang/lib/Sema/SemaCXXScopeSpec.cpp
+62-57clang/lib/AST/Type.cpp
+88-11clang/include/clang/AST/ASTContext.h
+1,642-43571 files not shown
+2,405-79677 files

LLVM/project 6249356flang/lib/Lower/OpenMP Utils.cpp ClauseProcessor.cpp

[flang][OpenMP][NFC] Share declare mapper helpers for iterator modifier lowering

Move mapper lookup and implicit default mapper creation into reusable
OpenMP lowering helpers so regular map lowering and iterator-generated
map entries can use the same resolution path.

This prepares Flang iterator modifier lowering for map and motion clauses
without changing the generated IR for existing non-iterator maps.
DeltaFile
+153-0flang/lib/Lower/OpenMP/Utils.cpp
+6-142flang/lib/Lower/OpenMP/ClauseProcessor.cpp
+7-0flang/lib/Lower/OpenMP/Utils.h
+166-1423 files

LLVM/project 35e9bf3clang/test/AST ast-dump-lambda-json.cpp ast-dump-template-json-win32-mangler-crash.cpp, lldb/tools/lldb-dap/extension package-lock.json

Merge branch 'main' into users/kasuga-fj/da-consolidate-acc-gcd
DeltaFile
+23,873-20,923llvm/lib/Support/UnicodeNameToCodepointGenerated.cpp
+12,365-0llvm/test/CodeGen/AMDGPU/llvm.amdgcn.av.load.b128.ll
+3,903-0llvm/test/CodeGen/NVPTX/machine-cse-predicate-inversion.ll
+2,504-1,285lldb/tools/lldb-dap/extension/package-lock.json
+0-3,387clang/test/AST/ast-dump-lambda-json.cpp
+7-3,217clang/test/AST/ast-dump-template-json-win32-mangler-crash.cpp
+42,652-28,8122,331 files not shown
+128,995-73,0182,337 files

LLVM/project 6768170clang/include/clang/AST DeclTemplate.h ASTNodeTraverser.h, clang/lib/AST DeclTemplate.cpp

[Clang][AST] Fix ExplicitInstantiationDecl accessors for variable templates with tag types (#197856)

Several `ExplicitInstantiationDecl` accessors assumed that
`TypeSourceInfo` always encodes a class entity, but for variable
templates the `TypeSourceInfo` holds the *declared type* (e.g. `Plain`,
`Color`, `Wrap<int>`). When that declared type happened to be a
`TagType` or `TemplateSpecializationType`, the accessors would
misinterpret it:

- `getTypeAsWritten()` returned `nullptr` → crash in `DeclPrinter`
- `getQualifierLoc()` leaked the type's qualifier into the variable name
- `getTagKWLoc()` returned the type's elaborated keyword
- `getNumTemplateArgs` / angle-loc getters extracted from the type
instead of the variable's template arguments

Add a private `getClassTypeLoc()` helper that returns the entity
`TypeLoc` only for class-like instantiations
(`isa<RecordDecl>(getSpecialization())`), and guard all `TypeSourceInfo`
fallback paths with it. For non-class entities the accessors now

    [10 lines not shown]
DeltaFile
+107-0clang/test/AST/explicit-instantiation-source-info.cpp
+33-32clang/lib/AST/DeclTemplate.cpp
+65-0clang/test/AST/ast-print-explicit-instantiation.cpp
+22-20clang/include/clang/AST/DeclTemplate.h
+5-3clang/include/clang/AST/ASTNodeTraverser.h
+3-3clang/lib/Sema/SemaTemplate.cpp
+235-582 files not shown
+240-628 files

LLVM/project 928541ellvm/lib/Transforms/Vectorize SLPVectorizer.cpp, llvm/test/Transforms/SLPVectorizer/AArch64 invoke-extract.ll

[SLP] Treat ExtractElement from terminator results as gather

When canReuseExtract sees an ExtractElement bundle whose source vector
is produced by a terminator instruction (invoke or callbr), the SLP
vectorizer used to mark the bundle as Vectorize and reuse the
terminator result as the bundle's vectorized value. For external uses
of the bundle, vectorizeTree later sets the IRBuilder insertion point
to next(VecI), which lands past the terminator and produces an invalid
CFG (a new extractelement is inserted after the terminator in the
predecessor block).

Fixes #199021

Reviewers: 

Pull Request: https://github.com/llvm/llvm-project/pull/199089
DeltaFile
+46-0llvm/test/Transforms/SLPVectorizer/X86/callbr-extract.ll
+44-0llvm/test/Transforms/SLPVectorizer/AArch64/invoke-extract.ll
+5-1llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
+95-13 files

LLVM/project a78e400llvm/lib/Target/PowerPC PPCInstrInfo.td PPCInstr64Bit.td

[PowerPC] Change arguments of PPCEmitTimePseudo

Like #198861 but for PPCEmitTimePseudo.

This is not NFC. The asm name of LDtocBA was set to #LDtocCPT,
which is the name of the instruction before. This looks like a
cut`n`paste error, and I changed the asm name.
DeltaFile
+34-59llvm/lib/Target/PowerPC/PPCInstrInfo.td
+30-53llvm/lib/Target/PowerPC/PPCInstr64Bit.td
+10-20llvm/lib/Target/PowerPC/PPCInstrMMA.td
+4-3llvm/lib/Target/PowerPC/PPCInstrFormats.td
+78-1354 files

LLVM/project 7a83597flang/lib/Optimizer/Transforms FIRToMemRef.cpp, flang/test/Transforms/FIRToMemRef array-coor-rebox-slice-shape.mlir array-coor-slice-shift.mlir

[flang][FIRToMemRef] Fixed array_coor with box/shape/slice. (#198933)

A `fir.array_coor` with box input, a slice and a shape without
a shift, should also be converted using dimensions information
stored in the input box (case (c) in the updated code).
DeltaFile
+70-0flang/test/Transforms/FIRToMemRef/array-coor-rebox-slice-shape.mlir
+25-0flang/test/Transforms/FIRToMemRef/array-coor-slice-shift.mlir
+19-1flang/lib/Optimizer/Transforms/FIRToMemRef.cpp
+114-13 files

LLVM/project 5053b88flang/include/flang/Semantics openmp-utils.h, flang/lib/Semantics resolve-names.cpp openmp-utils.cpp

[flang][OpenMP] Limit scope creation to constructs with data environment (#198780)

Identify specific constructs that require data envorinments, and only
create scopes for them. This avoids scopes for loop-transformation
constructs, for example.

This isn't a correctness fix, but a clarification and a simplification
of the name-resolution code for OpenMP.
DeltaFile
+13-64flang/lib/Semantics/resolve-names.cpp
+31-0flang/lib/Semantics/openmp-utils.cpp
+6-7flang/test/Semantics/OpenMP/affected-loops.f90
+2-0flang/include/flang/Semantics/openmp-utils.h
+52-714 files